summaryrefslogtreecommitdiff
path: root/arm9/modules
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/modules')
-rw-r--r--arm9/modules/05/asm/module_05.s164
-rw-r--r--arm9/modules/06/asm/module_06.s118
-rw-r--r--arm9/modules/07/asm/module_07.s4
-rw-r--r--arm9/modules/08/asm/module_08.s99964
-rw-r--r--arm9/modules/11/asm/module_11.s197298
-rw-r--r--arm9/modules/12/asm/module_12.s18
-rw-r--r--arm9/modules/14/asm/module_14.s2
-rw-r--r--arm9/modules/16/asm/module_16.s56
-rw-r--r--arm9/modules/17/asm/module_17.s8
-rw-r--r--arm9/modules/18/asm/module_18.s12
-rw-r--r--arm9/modules/28/asm/module_28.s6
-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/58/asm/module_58.s2
-rw-r--r--arm9/modules/63/asm/module_63.s14
-rw-r--r--arm9/modules/65/asm/module_65.s6
-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.s14
-rw-r--r--arm9/modules/75/asm/module_75.s4
-rw-r--r--arm9/modules/80/asm/module_80.s2
-rw-r--r--arm9/modules/81/asm/module_81.s10
-rw-r--r--arm9/modules/84/asm/module_84.s30
-rw-r--r--arm9/modules/85/asm/module_85.s16
27 files changed, 148892 insertions, 148892 deletions
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index a05f9c76..c9e94636 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -13157,7 +13157,7 @@ _021DD9CC:
ldr r4, [r6, #8]
mov r0, #0
str r0, [r4]
- bl rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
mov r1, #3
bl _u32_div_f
add r0, r1, #1
str r0, [r4, #4]
- bl rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
mov r1, #1
and r0, r1
add r0, r0, #4
str r0, [r5, #8]
- bl rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
mov r1, #0x14
bl _u32_div_f
mov r0, #0x27
@@ -13710,7 +13710,7 @@ _021DDDF0:
str r0, [sp, #0x1c]
b _021DDE5C
_021DDE48:
- bl rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
mov r1, #6
bl _u32_div_f
add r1, #0x12
str r1, [r5, #4]
- bl rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
mov r1, #0x18
bl _u32_div_f
mov r0, #1
lsl r0, r0, #8
add r0, r1, r0
str r0, [sp, #0x18]
- bl rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
mov r1, #5
bl _u32_div_f
add r0, r1, #7
str r0, [r5, #4]
- bl rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
mov r1, #6
bl _u32_div_f
add r0, r1, #3
str r0, [r5, #0x10]
- bl rand_MT
+ bl MTRandom
mov r1, #5
bl _u32_div_f
add r0, r1, #4
str r0, [r5, #0x14]
- bl rand_MT
+ bl MTRandom
mov r1, #0x14
bl _u32_div_f
str r1, [sp, #8]
add r0, sp, #0x10
add r1, r4, #0
bl MOD05_021DD168
- bl rand_MT
+ bl MTRandom
mov r1, #6
lsl r1, r1, #6
bl _u32_div_f
sub r1, #0x40
str r1, [sp, #0x10]
- bl rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
neg r1, r7
bl _u32_div_f
sub r1, r6, r1
b _021DF8AA
_021DF89E:
- bl rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
mov r1, #3
and r0, r1
str r0, [sp, #8]
@@ -17150,12 +17150,12 @@ _021DF958:
_021DF978:
b _021DFA96
_021DF97A:
- bl rand_MT
+ bl MTRandom
mov r1, #0x14
bl _u32_div_f
add r1, #0xa
str r1, [r4, #8]
- bl rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
mov r1, #0x14
bl _u32_div_f
add r1, #0xa
str r1, [r4, #8]
- bl rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
mov r1, #0xf
bl _u32_div_f
add r1, #0xa
str r1, [r4, #8]
- bl rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
mov r1, #0x14
bl _u32_div_f
add r1, #0xa
str r1, [r4, #8]
- bl rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
ldr r1, _021DFFFC ; =0x000001FF
and r0, r1
str r0, [sp, #0x18]
- bl rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
mov r0, #1
str r0, [r5, #0xc]
ldr r0, [sp, #0xc]
str r0, [r5]
ldr r0, [sp, #8]
str r0, [r5, #0x18]
- bl rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
mov r1, #0x14
bl _u32_div_f
mov r0, #0x27
@@ -18565,7 +18565,7 @@ _021E0478:
str r0, [sp, #0x24]
b _021E04F0
_021E04DE:
- bl rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
mov r1, #0xf
bl _u32_div_f
str r1, [r4, #0x10]
b _021E06BE
_021E069E:
- bl rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
ldr r1, _021E0938 ; =0x000001FF
and r0, r1
sub r0, #0x80
str r0, [sp, #8]
- bl rand_MT
+ bl MTRandom
mov r1, #0xc0
bl _u32_div_f
add r1, #8
str r1, [sp, #0xc]
b _021E0912
_021E08E0:
- bl rand_MT
+ bl MTRandom
ldr r1, _021E0938 ; =0x000001FF
and r0, r1
sub r0, #0x80
str r0, [sp, #8]
- bl rand_MT
+ bl MTRandom
mov r1, #0x7f
and r0, r1
add r0, #0x40
str r0, [sp, #0xc]
b _021E0912
_021E08FA:
- bl rand_MT
+ bl MTRandom
ldr r1, _021E0938 ; =0x000001FF
and r0, r1
sub r0, #0x80
str r0, [sp, #8]
- bl rand_MT
+ bl MTRandom
mov r1, #0x1f
and r0, r1
add r0, #0xa0
@@ -21000,7 +21000,7 @@ _021E17BE:
mov r7, #1
b _021E182E
_021E17DE:
- bl rand_LC
+ bl LCRandom
mov r1, #0x64
bl _s32_div_f
cmp r1, #0x32
@@ -43595,7 +43595,7 @@ _021EC8EC:
blt _021EC8D8
cmp r7, #2
bne _021EC90E
- bl rand_LC
+ bl LCRandom
ldr r1, _021EC940 ; =0x00007FFF
cmp r0, r1
blo _021EC90A
@@ -43615,7 +43615,7 @@ _021EC90E:
bl GetBoxMonData
cmp r0, #0xe5
bne _021EC938
- bl rand_LC
+ bl LCRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
add r4, r0, #0
bl GetNatureFromPersonality
cmp r6, r0
@@ -43730,7 +43730,7 @@ _021EC9E0:
add r6, sp, #8
add r7, #2
_021EC9F4:
- bl rand_LC
+ bl LCRandom
mov r1, #6
sub r1, r1, r5
bl _s32_div_f
@@ -43749,7 +43749,7 @@ _021EC9F4:
add r6, #1
mov r7, #0x1f
_021ECA1E:
- bl rand_LC
+ bl LCRandom
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 rand_ALT
+ bl PRandom
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 rand_LC
+ bl LCRandom
mov r1, #0x64
mul r1, r0
add r0, r1, #0
@@ -45434,7 +45434,7 @@ _021ED6B4:
beq _021ED788
_021ED774:
add r0, r7, #0
- bl rand_ALT
+ bl PRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
lsr r1, r0, #0x1f
lsl r2, r0, #0x1c
sub r2, r2, r1
@@ -60929,7 +60929,7 @@ _021F4DDE:
bl FUN_0202A9C0
cmp r5, r0
bne _021F4E42
- bl rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -63125,7 +63125,7 @@ _021F5E24:
MOD05_021F5E30: ; 0x021F5E30
push {r4, lr}
add r4, r0, #0
- bl rand_LC
+ bl LCRandom
lsr r1, r0, #0x1f
lsl r0, r0, #0x1e
sub r0, r0, r1
diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s
index a7f8e367..6819127d 100644
--- a/arm9/modules/06/asm/module_06.s
+++ b/arm9/modules/06/asm/module_06.s
@@ -5149,7 +5149,7 @@ _0223BD2E:
add r2, sp, #0x20
bl MOD06_0223CF14
add r6, r0, #0
- bl rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -6060,7 +6060,7 @@ _0223C4D4:
bls _0223C4EC
mov r4, #0x64
_0223C4EC:
- bl rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
sub r1, r4, r5
add r1, r1, #1
lsl r1, r1, #0x18
@@ -6523,7 +6523,7 @@ _0223C802:
cmp r0, #0x2e
bne _0223C84C
_0223C82C:
- bl rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
ldr r1, _0223C964 ; =0x00005556
bl _s32_div_f
lsl r0, r0, #0x10
@@ -6597,7 +6597,7 @@ _0223C8A6:
_0223C8BE:
cmp r0, #0x1c
bne _0223C8E0
- bl rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
ldr r1, _0223CD78 ; =0x00001746
bl _s32_div_f
lsl r0, r0, #0x10
@@ -7149,7 +7149,7 @@ _0223CD1A:
cmp r0, #0x2e
bne _0223CD4C
_0223CD36:
- bl rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
lsl r0, r0, #1
lsr r4, r0, #0x10
cmp r4, #2
@@ -7722,7 +7722,7 @@ _0223D16E:
mov r4, #0
b _0223D19E
_0223D176:
- bl rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
lsl r0, r0, #1
lsr r6, r0, #0x10
cmp r6, #2
@@ -23252,7 +23252,7 @@ _02244DF4:
mov r2, #2
b _02244E10
_02244DF8:
- bl rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
ldr r1, _0224518C ; =0x0000071D
bl _s32_div_f
lsl r0, r0, #0x10
@@ -25503,7 +25503,7 @@ MOD06_02245EC0: ; 0x02245EC0
add r1, sp, #0x10
bl FUN_02020064
mov r0, #0
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
add r0, r4, #0
bl FUN_02020088
@@ -25715,7 +25715,7 @@ MOD06_02246034: ; 0x02246034
lsl r0, r3, #0x11
str r0, [r4, #0x4c]
mov r0, #0x2d
- bl FUN_0201B988
+ bl Cos_Wrap
ldr r2, [r4, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -25729,7 +25729,7 @@ MOD06_02246034: ; 0x02246034
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B970
+ bl Sin_Wrap
ldr r2, [r4, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -25757,7 +25757,7 @@ MOD06_02246034: ; 0x02246034
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
ldr r0, [r4, #0x68]
bl FUN_02020088
@@ -25801,7 +25801,7 @@ MOD06_02246034: ; 0x02246034
add r1, sp, #0
bl FUN_02020064
mov r0, #0
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
add r0, r4, #0
bl FUN_02020088
@@ -25851,7 +25851,7 @@ _022461C6:
str r0, [r5, #0x4c]
_022461D2:
mov r0, #0x2d
- bl FUN_0201B988
+ bl Cos_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -25865,7 +25865,7 @@ _022461D2:
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B970
+ bl Sin_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -26005,7 +26005,7 @@ _022462F4:
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B988
+ bl Cos_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -26014,7 +26014,7 @@ _022462F4:
mul r0, r1
str r0, [r5, #0x14]
mov r0, #0x80
- bl FUN_0201B970
+ bl Sin_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -26042,7 +26042,7 @@ _02246338:
lsl r0, r0, #4
lsr r0, r0, #0x10
str r1, [r5, #0x38]
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
add r0, r4, #0
bl FUN_02020088
@@ -26185,7 +26185,7 @@ _022463F6:
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
ldr r0, [r4, #0x68]
bl FUN_02020088
@@ -26235,7 +26235,7 @@ _022464C4:
str r0, [r5, #0x48]
_022464CE:
ldr r0, _022465AC ; =0x0000013B
- bl FUN_0201B988
+ bl Cos_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -26249,7 +26249,7 @@ _022464CE:
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B970
+ bl Sin_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -26314,7 +26314,7 @@ _02246560:
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
add r0, r4, #0
bl FUN_02020088
@@ -28322,7 +28322,7 @@ MOD06_0224743C: ; 0x0224743C
add r1, sp, #0x10
bl FUN_02020064
add r0, r7, #0
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
add r0, r4, #0
bl FUN_02020088
@@ -29398,7 +29398,7 @@ MOD06_02247C0C: ; 0x02247C0C
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
ldr r0, [r4, #0x58]
bl FUN_02020088
@@ -29431,7 +29431,7 @@ MOD06_02247CB4: ; 0x02247CB4
str r0, [r5, #0x4c]
_02247CD4:
ldr r0, _02247DB4 ; =0x0000013B
- bl FUN_0201B988
+ bl Cos_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -29445,7 +29445,7 @@ _02247CD4:
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B970
+ bl Sin_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -29509,7 +29509,7 @@ _02247D64:
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
add r0, r4, #0
bl FUN_02020088
@@ -29610,7 +29610,7 @@ MOD06_02247DC4: ; 0x02247DC4
lsl r0, r7, #0x11
str r0, [r4, #0x4c]
lsr r0, r6, #0xc
- bl FUN_0201B988
+ bl Cos_Wrap
ldr r2, [r4, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -29624,7 +29624,7 @@ MOD06_02247DC4: ; 0x02247DC4
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B970
+ bl Sin_Wrap
ldr r2, [r4, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -29652,7 +29652,7 @@ MOD06_02247DC4: ; 0x02247DC4
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
ldr r0, [r4, #0x58]
bl FUN_02020088
@@ -29701,7 +29701,7 @@ MOD06_02247DC4: ; 0x02247DC4
add r1, sp, #0
bl FUN_02020064
mov r0, #0
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
add r0, r4, #0
bl FUN_02020088
@@ -29746,7 +29746,7 @@ _02247F58:
str r0, [r5, #0x4c]
_02247F64:
ldr r0, _02248098 ; =0x0000013B
- bl FUN_0201B988
+ bl Cos_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -29760,7 +29760,7 @@ _02247F64:
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B970
+ bl Sin_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -29827,7 +29827,7 @@ _02247FFA:
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
add r0, r4, #0
bl FUN_02020088
@@ -29973,7 +29973,7 @@ _02248120:
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B988
+ bl Cos_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -29982,7 +29982,7 @@ _02248120:
mul r0, r1
str r0, [r5, #0x14]
mov r0, #0x80
- bl FUN_0201B970
+ bl Sin_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -30818,7 +30818,7 @@ _0224879E:
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
_022487AC:
- bl rand_LC
+ bl LCRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
add r1, r4, #0
bl _u32_div_f
add r0, sp, #0
@@ -39651,7 +39651,7 @@ _0224CBE0:
_0224CBF0:
mov r7, #0
_0224CBF2:
- bl rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
lsl r0, r0, #1
lsr r4, r0, #0x10
cmp r4, #2
diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s
index c9c4dd87..8b0751c8 100644
--- a/arm9/modules/07/asm/module_07.s
+++ b/arm9/modules/07/asm/module_07.s
@@ -733,7 +733,7 @@ _02212450:
_02212454:
sub r0, r0, #6
ldrsb r4, [r5, r0]
- bl rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
add r1, r4, #0
bl _s32_div_f
lsr r0, r4, #0x1f
diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s
index e09211f8..b61f4de3 100644
--- a/arm9/modules/08/asm/module_08.s
+++ b/arm9/modules/08/asm/module_08.s
@@ -1,49983 +1,49983 @@
- .include "asm/macros.inc"
- .include "global.inc"
- .section .text
- .balign 4, 0
-
- thumb_func_start MOD08_02211E60
-MOD08_02211E60: ; 0x02211E60
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- beq _02211E70
- lsl r1, r0, #2
- ldr r0, _02211E74 ; =0x0222A9E4
- ldr r0, [r0, r1]
- bx lr
-_02211E70:
- ldr r0, _02211E78 ; =0x0222A780
- bx lr
- .align 2, 0
-_02211E74: .word 0x0222A9E4
-_02211E78: .word 0x0222A780
-
- thumb_func_start MOD08_02211E7C
-MOD08_02211E7C: ; 0x02211E7C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r0, r1, #0
- add r4, r3, #0
- bl MOD08_02211E60
- ldr r3, [sp, #0x10]
- add r1, r0, #0
- mov r0, #0x20
- lsl r3, r3, #0x14
- str r0, [sp]
- add r0, r5, #0
- add r2, r4, #0
- lsr r3, r3, #0x10
- bl FUN_02003054
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02211EA0
-MOD08_02211EA0: ; 0x02211EA0
- add r1, r0, #0
- add r1, #0x8d
- ldrb r1, [r1]
- cmp r1, #0
- bne _02211EB2
- ldr r1, _02211EC0 ; =MOD08_02211EC4
- add r0, #0xbc
- str r1, [r0]
- bx lr
-_02211EB2:
- add r1, r0, #0
- add r1, #0x8d
- ldrb r1, [r1]
- add r0, #0x8d
- sub r1, r1, #1
- strb r1, [r0]
- bx lr
- .align 2, 0
-_02211EC0: .word MOD08_02211EC4
-
- thumb_func_start MOD08_02211EC4
-MOD08_02211EC4: ; 0x02211EC4
- push {r4, lr}
- add r4, r0, #0
-_02211EC8:
- ldr r0, [r4, #0x18]
- ldr r0, [r0]
- bl MOD08_0221533C
- add r1, r0, #0
- add r0, r4, #0
- blx r1
- add r0, r4, #0
- add r0, #0x8d
- ldrb r0, [r0]
- cmp r0, #0
- bne _02211EE6
- ldr r0, [r4, #0x10]
- cmp r0, #1
- beq _02211EC8
-_02211EE6:
- pop {r4, pc}
-
- thumb_func_start MOD08_02211EE8
-MOD08_02211EE8: ; 0x02211EE8
- push {r3, r4, r5, lr}
- add r5, r2, #0
- add r4, r3, #0
- cmp r0, #1
- beq _02211EF8
- cmp r0, #2
- beq _02211F06
- b _02211F14
-_02211EF8:
- add r0, r1, #0
- add r0, #0x8e
- ldrh r0, [r0]
- add r1, #0x8e
- add r0, r0, #1
- strh r0, [r1]
- b _02211F18
-_02211F06:
- add r0, r1, #0
- add r0, #0x90
- ldrh r0, [r0]
- add r1, #0x90
- add r0, r0, #1
- strh r0, [r1]
- b _02211F18
-_02211F14:
- bl ErrorHandling
-_02211F18:
- ldr r2, [sp, #0x10]
- add r0, r5, #0
- add r1, r4, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02211F24
-MOD08_02211F24: ; 0x02211F24
- push {r4, lr}
- add r4, r2, #0
- cmp r0, #1
- beq _02211F32
- cmp r0, #2
- beq _02211F40
- b _02211F4E
-_02211F32:
- add r0, r1, #0
- add r0, #0x8e
- ldrh r0, [r0]
- add r1, #0x8e
- sub r0, r0, #1
- strh r0, [r1]
- b _02211F52
-_02211F40:
- add r0, r1, #0
- add r0, #0x90
- ldrh r0, [r0]
- add r1, #0x90
- sub r0, r0, #1
- strh r0, [r1]
- b _02211F52
-_02211F4E:
- bl ErrorHandling
-_02211F52:
- add r0, r4, #0
- bl FUN_0200CAB4
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02211F5C
-MOD08_02211F5C: ; 0x02211F5C
- push {r3, r4, r5, lr}
- mov r1, #0x69
- lsl r1, r1, #2
- add r5, r0, #0
- bl AllocFromHeap
- add r4, r0, #0
- bne _02211F78
- cmp r4, #0
- bne _02211F74
- bl ErrorHandling
-_02211F74:
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02211F78:
- mov r2, #0x69
- mov r1, #0
- lsl r2, r2, #2
- bl memset
- mov r1, #0x47
- str r5, [r4]
- mov r0, #0
- str r0, [r4, #8]
- ldr r0, [r4]
- lsl r1, r1, #2
- bl AllocFromHeap
- add r1, r4, #0
- add r1, #0xc0
- str r0, [r1]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- cmp r0, #0
- bne _02211FAC
- bne _02211FA8
- bl ErrorHandling
-_02211FA8:
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02211FAC:
- mov r2, #0x47
- mov r1, #0
- lsl r2, r2, #2
- bl memset
- mov r1, #0
- str r1, [r4, #0xc]
- str r1, [r4, #0x18]
- add r2, r4, #0
- add r3, r1, #0
-_02211FC0:
- add r0, r2, #0
- add r0, #0xcc
- add r1, r1, #1
- add r2, r2, #4
- str r3, [r0]
- cmp r1, #4
- blt _02211FC0
- mov r0, #0x59
- add r2, r4, #0
- mov r1, #0
- lsl r0, r0, #2
-_02211FD6:
- add r3, r3, #1
- str r1, [r2, r0]
- add r2, r2, #4
- cmp r3, #5
- blt _02211FD6
- mov r0, #0x5e
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r0, #1
- str r0, [r4, #0xc]
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02211FF0
-MOD08_02211FF0: ; 0x02211FF0
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- cmp r5, #0
- bne _02211FFE
- bl ErrorHandling
-_02211FFE:
- str r4, [r5, #8]
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02212004
-MOD08_02212004: ; 0x02212004
- push {r4, lr}
- add r4, r0, #0
- bne _0221200E
- bl ErrorHandling
-_0221200E:
- ldr r0, [r4, #8]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02212014
-MOD08_02212014: ; 0x02212014
- push {r4, lr}
- add r4, r0, #0
- bne _0221201E
- bl ErrorHandling
-_0221201E:
- ldr r0, [r4]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02212024
-MOD08_02212024: ; 0x02212024
- push {r4, lr}
- add r4, r0, #0
- bl MOD08_022123CC
- cmp r0, #0
- bne _02212034
- mov r0, #0
- pop {r4, pc}
-_02212034:
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- bl FreeToHeap
- add r0, r4, #0
- bl FreeToHeap
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_02212048
-MOD08_02212048: ; 0x02212048
- push {r4, r5, r6, r7, lr}
- sub sp, #0x3c
- add r4, r0, #0
- add r5, r1, #0
- str r2, [sp]
- str r3, [sp, #4]
- bl MOD08_0221268C
- add r0, r4, #0
- bl MOD08_022123CC
- cmp r0, #0
- bne _02212068
- add sp, #0x3c
- mov r0, #0
- pop {r4, r5, r6, r7, pc}
-_02212068:
- mov r3, #0
- mov r2, #1
- add r1, r3, #0
-_0221206E:
- add r0, r4, r3
- add r0, #0x6c
- strb r2, [r0]
- add r0, r4, r3
- add r0, #0x7c
- add r3, r3, #1
- strb r1, [r0]
- cmp r3, #0x10
- blt _0221206E
- add r3, r4, #0
- mov r0, #0
-_02212084:
- add r2, r3, #0
- add r2, #0x94
- add r1, r1, #1
- add r3, r3, #4
- str r0, [r2]
- cmp r1, #0xa
- blt _02212084
- add r3, r4, #0
- mov r2, #0
-_02212096:
- str r2, [r3, #0x30]
- add r1, r3, #0
- str r2, [r3, #0x28]
- add r1, #0x2c
- strb r2, [r1]
- add r1, r3, #0
- add r1, #0x2d
- add r0, r0, #1
- add r3, #0xc
- strb r2, [r1]
- cmp r0, #3
- blt _02212096
- add r0, r4, #0
- add r0, #0xc0
- ldrb r1, [r5]
- ldr r0, [r0]
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldrb r1, [r5, #1]
- ldr r0, [r0]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r0, #0xc0
- ldrh r1, [r5, #2]
- ldr r0, [r0]
- strh r1, [r0, #2]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r5, #4]
- ldr r0, [r0]
- str r1, [r0, #4]
- add r0, r4, #0
- add r0, #0xc0
- ldrh r1, [r5, #8]
- ldr r0, [r0]
- strh r1, [r0, #8]
- add r0, r4, #0
- add r0, #0xc0
- ldrh r1, [r5, #0xc]
- ldr r0, [r0]
- strh r1, [r0, #0xa]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r5, #0x10]
- ldr r0, [r0]
- str r1, [r0, #0xc]
- add r0, r4, #0
- add r0, #0xc0
- ldrh r1, [r5, #0xa]
- ldr r0, [r0]
- strh r1, [r0, #0x10]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r5, #0x54]
- ldr r0, [r0]
- strh r1, [r0, #0x12]
- add r0, r4, #0
- add r0, #0xc0
- ldrh r1, [r5, #0x14]
- ldr r0, [r0]
- strh r1, [r0, #0x14]
- add r0, r4, #0
- add r0, #0xc0
- ldrh r1, [r5, #0x16]
- ldr r0, [r0]
- strh r1, [r0, #0x16]
- ldrh r0, [r5, #0xe]
- lsl r0, r0, #0x1e
- lsr r2, r0, #0x1f
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- mov r0, #0x46
- lsl r0, r0, #2
- str r2, [r1, r0]
- ldr r0, [sp, #4]
- ldr r1, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, #0xac
- str r1, [r0]
- ldr r0, [sp, #4]
- ldr r0, [r0]
- cmp r0, #0
- bne _02212148
- bl ErrorHandling
-_02212148:
- ldr r0, [sp, #4]
- mov r5, #0
- ldr r1, [r0, #4]
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- ldr r0, [sp, #4]
- ldr r2, [sp, #4]
- ldr r1, [r0, #8]
- add r0, r4, #0
- add r0, #0xc8
- str r1, [r0]
- ldr r0, [sp, #4]
- add r3, r5, #0
- ldr r1, [r0, #0x30]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r7, r5, #0
- add r0, #0xd4
- str r1, [r0]
- add r0, r2, #0
- mov ip, r0
-_02212176:
- add r1, r4, #0
- add r1, #0xc0
- ldr r1, [r1]
- ldr r0, [r2, #0xc]
- add r1, r1, r3
- add r1, #0xb0
- str r0, [r1]
- ldr r0, [sp, #4]
- add r1, r0, r5
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- ldrb r6, [r1, #0x1c]
- add r0, r0, r5
- add r0, #0xc0
- strb r6, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- ldr r6, [r2, #0x20]
- add r0, r0, r3
- add r0, #0xc4
- str r6, [r0]
- mov r0, ip
- ldrh r6, [r0, #0x34]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, r0, r7
- add r0, #0xd8
- strh r6, [r0]
- add r0, r1, #0
- add r0, #0x3c
- ldrb r6, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r7, r7, #2
- add r0, r0, r5
- add r0, #0xe0
- strb r6, [r0]
- add r0, r1, #0
- add r0, #0x40
- ldrb r6, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r1, #0x44
- add r0, r0, r5
- add r0, #0xe4
- strb r6, [r0]
- ldrb r0, [r1]
- add r1, r4, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r1, r1, r5
- add r1, #0xe8
- strb r0, [r1]
- add r1, r4, #0
- add r1, #0xc0
- ldr r1, [r1]
- ldr r0, [r2, #0x48]
- add r1, r1, r3
- add r1, #0xec
- str r0, [r1]
- add r1, r4, #0
- add r1, #0xc0
- ldr r1, [r1]
- ldr r0, [r2, #0x58]
- add r1, r1, r3
- add r1, #0xfc
- str r0, [r1]
- mov r0, ip
- add r0, r0, #2
- add r5, r5, #1
- add r2, r2, #4
- add r3, r3, #4
- mov ip, r0
- cmp r5, #4
- blt _02212176
- ldr r5, [sp, #4]
- mov r2, #0x61
- lsl r2, r2, #2
- add r5, #0x6c
- add r3, r4, r2
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- ldr r0, [sp, #4]
- add r0, #0x84
- ldr r3, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- add r0, r2, #0
- sub r0, #0x78
- str r3, [r1, r0]
- ldr r0, [sp, #4]
- add r0, #0x8c
- ldr r3, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- add r0, r2, #0
- sub r0, #0x70
- str r3, [r1, r0]
- ldr r0, [sp, #4]
- add r0, #0x88
- ldr r3, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- add r0, r2, #0
- sub r0, #0x74
- str r3, [r1, r0]
- ldr r0, [sp]
- sub r2, #0x62
- cmp r0, r2
- bne _02212296
- ldr r5, _0221236C ; =0x0222AB18
- add r3, sp, #8
- mov r2, #6
-_02212270:
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _02212270
- ldr r0, [r5]
- str r0, [r3]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- ldrh r0, [r0, #0x12]
- cmp r0, #0xc
- blo _0221228E
- mov r0, #0xa1
- str r0, [sp]
- b _02212296
-_0221228E:
- lsl r1, r0, #2
- add r0, sp, #8
- ldr r0, [r0, r1]
- str r0, [sp]
-_02212296:
- ldr r0, [sp]
- cmp r0, #0
- beq _022122A2
- ldr r1, _02212370 ; =0x000001D3
- cmp r0, r1
- ble _022122A6
-_022122A2:
- mov r0, #1
- str r0, [sp]
-_022122A6:
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x68]
- str r0, [r4, #4]
- ldr r1, [sp]
- ldr r2, [r4]
- bl AllocAndReadWholeNarcMemberByIdPair
- str r0, [r4, #0x14]
- cmp r0, #0
- bne _022122C6
- bne _022122C0
- bl ErrorHandling
-_022122C0:
- add sp, #0x3c
- mov r0, #0
- pop {r4, r5, r6, r7, pc}
-_022122C6:
- str r0, [r4, #0x18]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- mov r1, #0
- bl FUN_02018884
- mov r1, #0x1a
- lsl r1, r1, #4
- strb r0, [r4, r1]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- mov r1, #1
- bl FUN_02018884
- ldr r1, _02212374 ; =0x000001A1
- strb r0, [r4, r1]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- mov r1, #2
- bl FUN_02018884
- ldr r1, _02212378 ; =0x000001A2
- strb r0, [r4, r1]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- mov r1, #3
- bl FUN_02018884
- ldr r1, _0221237C ; =0x000001A3
- mov r3, #0
- strb r0, [r4, r1]
- add r2, r4, #0
- add r1, r3, #0
-_02212310:
- add r0, r2, #0
- add r0, #0xdc
- add r3, r3, #1
- add r2, r2, #4
- str r1, [r0]
- cmp r3, #0xa
- blt _02212310
- mov r2, #0x4f
- lsl r2, r2, #2
- add r3, r2, #0
- add r5, r4, #0
- mov r0, #0
- add r3, #0x14
-_0221232A:
- str r0, [r5, r2]
- str r0, [r5, r3]
- add r1, r1, #1
- add r5, r5, #4
- cmp r1, #5
- blt _0221232A
- mov r1, #6
- lsl r1, r1, #6
- str r0, [r4, r1]
- add r1, r4, #0
- ldr r2, _02212380 ; =MOD08_02211EC4
- add r1, #0xbc
- str r2, [r1]
- add r1, r4, #0
- add r1, #0x8d
- strb r0, [r1]
- add r0, r4, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _0221235C
- mov r0, #0x67
- mov r1, #7
- lsl r0, r0, #2
- b _02212362
-_0221235C:
- mov r1, #0xff
- add r0, r1, #0
- add r0, #0x9d
-_02212362:
- str r1, [r4, r0]
- mov r0, #1
- str r0, [r4, #0x10]
- add sp, #0x3c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0221236C: .word 0x0222AB18
-_02212370: .word 0x000001D3
-_02212374: .word 0x000001A1
-_02212378: .word 0x000001A2
-_0221237C: .word 0x000001A3
-_02212380: .word MOD08_02211EC4
-
- thumb_func_start MOD08_02212384
-MOD08_02212384: ; 0x02212384
- push {r4, lr}
- add r4, r0, #0
- bl MOD08_022123CC
- cmp r0, #0
- bne _02212394
- mov r0, #0
- pop {r4, pc}
-_02212394:
- add r0, r4, #0
- add r4, #0xbc
- ldr r1, [r4]
- blx r1
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_022123A0
-MOD08_022123A0: ; 0x022123A0
- ldr r0, [r0, #0x10]
- cmp r0, #1
- bne _022123AA
- mov r0, #1
- bx lr
-_022123AA:
- mov r0, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022123B0
-MOD08_022123B0: ; 0x022123B0
- push {r3, lr}
- ldr r0, [r0, #0x14]
- cmp r0, #0
- bne _022123C2
- bne _022123BE
- bl ErrorHandling
-_022123BE:
- mov r0, #0
- pop {r3, pc}
-_022123C2:
- bl FreeToHeap
- mov r0, #1
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022123CC
-MOD08_022123CC: ; 0x022123CC
- cmp r0, #0
- bne _022123D4
- mov r0, #0
- bx lr
-_022123D4:
- ldr r0, [r0, #0xc]
- cmp r0, #1
- bne _022123DE
- mov r0, #1
- bx lr
-_022123DE:
- mov r0, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022123E4
-MOD08_022123E4: ; 0x022123E4
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r6, r0, #0
- add r5, r1, #0
- add r4, r2, #0
- str r3, [sp]
- mov r0, #1
- add r1, r6, #0
- add r2, r5, #0
- add r3, r4, #0
- bl MOD08_02211EE8
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-
- thumb_func_start MOD08_02212400
-MOD08_02212400: ; 0x02212400
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, _02212418 ; =0x0000044C
- add r4, r1, #0
- add r3, r2, #0
- str r0, [sp]
- mov r0, #1
- add r1, r5, #0
- add r2, r4, #0
- bl MOD08_02211EE8
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02212418: .word 0x0000044C
-
- thumb_func_start MOD08_0221241C
-MOD08_0221241C: ; 0x0221241C
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r6, r0, #0
- add r5, r1, #0
- add r4, r2, #0
- str r3, [sp]
- mov r0, #2
- add r1, r6, #0
- add r2, r5, #0
- add r3, r4, #0
- bl MOD08_02211EE8
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-
- thumb_func_start MOD08_02212438
-MOD08_02212438: ; 0x02212438
- add r3, r0, #0
- add r2, r1, #0
- add r1, r3, #0
- ldr r3, _02212444 ; =MOD08_02211F24
- mov r0, #1
- bx r3
- .align 2, 0
-_02212444: .word MOD08_02211F24
-
- thumb_func_start MOD08_02212448
-MOD08_02212448: ; 0x02212448
- add r3, r0, #0
- add r2, r1, #0
- add r1, r3, #0
- ldr r3, _02212454 ; =MOD08_02211F24
- mov r0, #2
- bx r3
- .align 2, 0
-_02212454: .word MOD08_02211F24
-
- thumb_func_start MOD08_02212458
-MOD08_02212458: ; 0x02212458
- add r0, #0xc0
- ldr r0, [r0]
- ldrh r0, [r0, #0x14]
- bx lr
-
- thumb_func_start MOD08_02212460
-MOD08_02212460: ; 0x02212460
- add r0, #0xc0
- ldr r0, [r0]
- ldrh r0, [r0, #0x16]
- bx lr
-
- thumb_func_start MOD08_02212468
-MOD08_02212468: ; 0x02212468
- add r0, #0xc0
- ldr r1, [r0]
- ldr r0, [r1, #0x18]
- lsl r0, r0, #2
- add r0, r1, r0
- ldr r0, [r0, #0x1c]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02212478
-MOD08_02212478: ; 0x02212478
- add r0, #0xc0
- ldr r2, [r0]
- lsl r0, r1, #2
- add r0, r2, r0
- ldr r0, [r0, #0x1c]
- bx lr
-
- thumb_func_start MOD08_02212484
-MOD08_02212484: ; 0x02212484
- add r0, #0xc0
- ldr r2, [r0]
- lsl r0, r1, #2
- add r0, r2, r0
- ldr r0, [r0, #0x5c]
- bx lr
-
- thumb_func_start MOD08_02212490
-MOD08_02212490: ; 0x02212490
- add r0, #0xc4
- ldr r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02212498
-MOD08_02212498: ; 0x02212498
- push {r3, r4, r5, lr}
- add r5, r1, #0
- add r4, r0, #0
- cmp r5, #0xa
- blt _022124A6
- bl ErrorHandling
-_022124A6:
- lsl r0, r5, #2
- add r0, r4, r0
- add r0, #0x94
- ldr r0, [r0]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_022124B0
-MOD08_022124B0: ; 0x022124B0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- cmp r4, #0xa
- blt _022124BE
- bl ErrorHandling
-_022124BE:
- cmp r5, #0
- bne _022124C6
- bl ErrorHandling
-_022124C6:
- add r5, #0xdc
- lsl r4, r4, #2
- ldr r0, [r5, r4]
- cmp r0, #0
- bne _022124D4
- bl ErrorHandling
-_022124D4:
- ldr r0, [r5, r4]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_022124D8
-MOD08_022124D8: ; 0x022124D8
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- cmp r4, #5
- blt _022124E6
- bl ErrorHandling
-_022124E6:
- cmp r5, #0
- bne _022124EE
- bl ErrorHandling
-_022124EE:
- mov r0, #0x4f
- lsl r0, r0, #2
- add r5, r5, r0
- lsl r4, r4, #2
- ldr r0, [r5, r4]
- cmp r0, #0
- bne _02212500
- bl ErrorHandling
-_02212500:
- ldr r0, [r5, r4]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02212504
-MOD08_02212504: ; 0x02212504
- push {r4, lr}
- add r4, r0, #0
- bne _0221250E
- bl ErrorHandling
-_0221250E:
- mov r0, #0x4e
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02212518
-MOD08_02212518: ; 0x02212518
- add r0, #0xcc
- ldr r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02212520
-MOD08_02212520: ; 0x02212520
- add r0, #0xc0
- ldr r0, [r0]
- add r0, #0xac
- ldr r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_0221252C
-MOD08_0221252C: ; 0x0221252C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5]
- mov r1, #0x3c
- bl AllocFromHeap
- add r4, r0, #0
- bne _02212544
- bl ErrorHandling
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02212544:
- mov r1, #0
- mov r2, #0x3c
- bl memset
- add r0, r5, #0
- add r0, #0x90
- ldrh r0, [r0]
- add r5, #0x90
- add r0, r0, #1
- strh r0, [r5]
- add r0, r4, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_0221255C
-MOD08_0221255C: ; 0x0221255C
- ldr r3, _02212568 ; =FUN_0200CA44
- str r0, [r1, #0x38]
- ldr r0, _0221256C ; =MOD08_02212574
- ldr r2, _02212570 ; =0x0000044C
- bx r3
- nop
-_02212568: .word FUN_0200CA44
-_0221256C: .word MOD08_02212574
-_02212570: .word 0x0000044C
-
- thumb_func_start MOD08_02212574
-MOD08_02212574: ; 0x02212574
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4]
- add r5, r0, #0
- add r0, r4, #0
- lsl r2, r1, #2
- ldr r1, _022125B0 ; =0x0222AAC4
- ldr r1, [r1, r2]
- blx r1
- cmp r0, #0
- bne _022125AE
- ldr r0, [r4, #0x38]
- add r1, r0, #0
- add r1, #0x90
- ldrh r1, [r1]
- cmp r1, #0
- beq _022125A2
- add r1, r0, #0
- add r1, #0x90
- ldrh r1, [r1]
- add r0, #0x90
- sub r1, r1, #1
- strh r1, [r0]
-_022125A2:
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_022125AE:
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022125B0: .word 0x0222AAC4
-
- thumb_func_start MOD08_022125B4
-MOD08_022125B4: ; 0x022125B4
- mov r0, #0
- bx lr
-
- thumb_func_start MOD08_022125B8
-MOD08_022125B8: ; 0x022125B8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldrb r1, [r5, #4]
- add r0, r1, #1
- strb r0, [r5, #4]
- ldrb r0, [r5, #3]
- cmp r1, r0
- bhs _022125CC
- mov r0, #1
- pop {r3, r4, r5, pc}
-_022125CC:
- mov r0, #0
- strb r0, [r5, #4]
- ldr r2, [r5, #0x14]
- ldr r1, [r5, #0x10]
- mov r4, #1
- add r1, r2, r1
- str r1, [r5, #0x14]
- ldr r1, [r5, #0x10]
- cmp r1, #0
- bne _022125E4
- add r4, r0, #0
- b _022125FC
-_022125E4:
- ldr r2, [r5, #0xc]
- ldr r1, [r5, #8]
- cmp r1, r2
- ldr r1, [r5, #0x14]
- bge _022125F6
- cmp r1, r2
- blt _022125FC
- add r4, r0, #0
- b _022125FC
-_022125F6:
- cmp r1, r2
- bgt _022125FC
- add r4, r0, #0
-_022125FC:
- ldr r0, [r5, #0x14]
- bl FUN_0200554C
- ldrh r0, [r5, #0x1a]
- bl FUN_02005508
- cmp r0, #0
- bne _0221260E
- mov r4, #0
-_0221260E:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02212614
-MOD08_02212614: ; 0x02212614
- ldr r3, _02212618 ; =MOD08_022125B8
- bx r3
- .align 2, 0
-_02212618: .word MOD08_022125B8
-
- thumb_func_start MOD08_0221261C
-MOD08_0221261C: ; 0x0221261C
- ldr r3, _02212620 ; =MOD08_022125B8
- bx r3
- .align 2, 0
-_02212620: .word MOD08_022125B8
-
- thumb_func_start MOD08_02212624
-MOD08_02212624: ; 0x02212624
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldrb r1, [r5, #4]
- add r0, r1, #1
- strb r0, [r5, #4]
- ldrb r0, [r5, #3]
- cmp r1, r0
- bhs _02212638
- mov r0, #1
- pop {r3, r4, r5, pc}
-_02212638:
- mov r0, #0
- strb r0, [r5, #4]
- ldrb r0, [r5, #0x18]
- mov r4, #1
- sub r0, r0, #1
- strb r0, [r5, #0x18]
- ldrh r0, [r5, #0x1a]
- bl FUN_020054C8
- ldrh r0, [r5, #0x1a]
- ldr r1, _02212660 ; =0x0000FFFF
- ldr r2, [r5, #0x14]
- bl FUN_02005530
- ldrb r0, [r5, #0x18]
- cmp r0, #0
- bne _0221265C
- mov r4, #0
-_0221265C:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02212660: .word 0x0000FFFF
-
- thumb_func_start MOD08_02212664
-MOD08_02212664: ; 0x02212664
- push {r4, lr}
- add r4, r0, #0
- ldrb r2, [r4, #3]
- mov r0, #1
- sub r1, r2, #1
- strb r1, [r4, #3]
- cmp r2, #0
- bne _02212686
- ldrh r0, [r4, #0x1a]
- bl FUN_020054C8
- ldrh r0, [r4, #0x1a]
- ldr r1, _02212688 ; =0x0000FFFF
- ldr r2, [r4, #0x14]
- bl FUN_02005530
- mov r0, #0
-_02212686:
- pop {r4, pc}
- .align 2, 0
-_02212688: .word 0x0000FFFF
-
- thumb_func_start MOD08_0221268C
-MOD08_0221268C: ; 0x0221268C
- push {r3, lr}
- ldr r0, _022126A0 ; =0x04000050
- mov r3, #8
- mov r1, #0
- mov r2, #0x3f
- str r3, [sp]
- bl G2x_SetBlendAlpha_
- pop {r3, pc}
- nop
-_022126A0: .word 0x04000050
-
- thumb_func_start MOD08_022126A4
-MOD08_022126A4: ; 0x022126A4
- push {r3, r4}
- add r2, r0, #0
- mov r1, #1
- add r2, #0x8d
- strb r1, [r2]
- ldr r3, _022126D8 ; =0x021C48B8
- lsl r2, r1, #9
- ldr r4, [r3, #0x44]
- tst r2, r4
- beq _022126D4
- add r2, r1, #0
- add r2, #0xff
- tst r2, r4
- beq _022126D4
- ldr r2, [r3, #0x48]
- lsl r1, r1, #0xa
- tst r1, r2
- beq _022126D4
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- mov r1, #0
- add r0, #0x8d
- strb r1, [r0]
-_022126D4:
- pop {r3, r4}
- bx lr
- .align 2, 0
-_022126D8: .word 0x021C48B8
-
- thumb_func_start MOD08_022126DC
-MOD08_022126DC: ; 0x022126DC
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r2, [r1]
- add r1, r0, #0
- add r1, #0x8d
- strb r2, [r1]
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r1, _022126F8 ; =MOD08_02211EA0
- add r0, #0xbc
- str r1, [r0]
- bx lr
- .align 2, 0
-_022126F8: .word MOD08_02211EA0
-
- thumb_func_start MOD08_022126FC
-MOD08_022126FC: ; 0x022126FC
- add r1, r0, #0
- add r1, #0x8e
- ldrh r1, [r1]
- cmp r1, #0
- bne _02212714
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- mov r1, #0
- add r0, #0x8d
- strb r1, [r0]
- bx lr
-_02212714:
- mov r1, #1
- add r0, #0x8d
- strb r1, [r0]
- bx lr
-
- thumb_func_start MOD08_0221271C
-MOD08_0221271C: ; 0x0221271C
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r3, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- cmp r3, #0xa
- bhs _0221273A
- lsl r1, r3, #2
- add r0, r0, r1
- add r0, #0x94
- str r2, [r0]
-_0221273A:
- bx lr
-
- thumb_func_start MOD08_0221273C
-MOD08_0221273C: ; 0x0221273C
- ldr r1, [r0, #0x18]
- mov r3, #0
- add r1, r1, #4
- str r1, [r0, #0x18]
- add r2, r3, #0
-_02212746:
- add r1, r0, #0
- add r1, #0x94
- add r3, r3, #1
- add r0, r0, #4
- str r2, [r1]
- cmp r3, #0xa
- blt _02212746
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02212758
-MOD08_02212758: ; 0x02212758
- cmp r1, #5
- bhi _022127A4
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02212768: ; jump table
- .short _02212774 - _02212768 - 2 ; case 0
- .short _0221277C - _02212768 - 2 ; case 1
- .short _02212784 - _02212768 - 2 ; case 2
- .short _0221278C - _02212768 - 2 ; case 3
- .short _02212794 - _02212768 - 2 ; case 4
- .short _0221279C - _02212768 - 2 ; case 5
-_02212774:
- add r0, #0xc0
- ldr r0, [r0]
- ldr r0, [r0, #4]
- bx lr
-_0221277C:
- add r0, #0xc0
- ldr r0, [r0]
- ldrh r0, [r0, #8]
- bx lr
-_02212784:
- add r0, #0xc0
- ldr r0, [r0]
- ldrh r0, [r0, #0xa]
- bx lr
-_0221278C:
- add r0, #0xc0
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- bx lr
-_02212794:
- add r0, #0xc0
- ldr r0, [r0]
- ldrh r0, [r0, #0x10]
- bx lr
-_0221279C:
- add r0, #0xc0
- ldr r0, [r0]
- ldrh r0, [r0, #0x12]
- bx lr
-_022127A4:
- mov r0, #0
- bx lr
-
- thumb_func_start MOD08_022127A8
-MOD08_022127A8: ; 0x022127A8
- push {r3, r4, r5, r6, r7, lr}
- mov r4, #0
- add r3, r0, #0
- add r0, r1, #0
- str r2, [sp]
- add r6, r4, #0
- add r5, r0, #0
- mov ip, r4
- add r7, r0, #0
-_022127BA:
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r1, r1, r6
- add r1, #0xb0
- ldr r1, [r1]
- str r1, [r5, #8]
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r1, r1, r6
- add r1, #0xc4
- ldr r1, [r1]
- str r1, [r5, #0x18]
- add r1, r3, #0
- add r1, #0xc0
- ldr r2, [r1]
- mov r1, ip
- add r1, r2, r1
- add r1, #0xd8
- ldrh r1, [r1]
- add r2, r0, r4
- add r2, #0x30
- strh r1, [r7, #0x28]
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r7, r7, #2
- add r1, r1, r4
- add r1, #0xe0
- ldrb r1, [r1]
- strb r1, [r2]
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r2, r0, r4
- add r1, r1, r4
- add r1, #0xe4
- ldrb r1, [r1]
- add r2, #0x34
- strb r1, [r2]
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r2, r0, r4
- add r1, r1, r4
- add r1, #0xe8
- ldrb r1, [r1]
- add r2, #0x38
- strb r1, [r2]
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r2, r0, r4
- add r1, r1, r6
- add r1, #0xec
- ldr r1, [r1]
- add r2, #0x4c
- str r1, [r5, #0x3c]
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r6, r6, #4
- add r1, r1, r4
- add r1, #0xc0
- ldrb r1, [r1]
- add r4, r4, #1
- add r5, r5, #4
- strb r1, [r2]
- mov r1, ip
- add r1, r1, #2
- mov ip, r1
- cmp r4, #4
- blt _022127BA
- ldr r1, [sp]
- cmp r1, #3
- bhi _022128B8
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02212860: ; jump table
- .short _02212868 - _02212860 - 2 ; case 0
- .short _0221287C - _02212860 - 2 ; case 1
- .short _02212890 - _02212860 - 2 ; case 2
- .short _022128A4 - _02212860 - 2 ; case 3
-_02212868:
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r3, #0xc0
- ldrh r1, [r1, #0x14]
- str r1, [r0]
- ldr r1, [r3]
- ldrh r1, [r1, #0x16]
- str r1, [r0, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0221287C:
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r3, #0xc0
- ldrh r1, [r1, #0x14]
- str r1, [r0]
- ldr r1, [r3]
- ldrh r1, [r1, #0x14]
- str r1, [r0, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_02212890:
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r3, #0xc0
- ldrh r1, [r1, #0x14]
- str r1, [r0]
- ldr r1, [r3]
- ldrh r1, [r1, #0x14]
- str r1, [r0, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_022128A4:
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r3, #0xc0
- ldrh r1, [r1, #0x14]
- str r1, [r0]
- ldr r1, [r3]
- ldrh r1, [r1, #0x14]
- str r1, [r0, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_022128B8:
- bl ErrorHandling
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022128C0
-MOD08_022128C0: ; 0x022128C0
- push {r3, r4, r5, lr}
- sub sp, #0x50
- add r5, r0, #0
- ldr r1, [r5, #0x18]
- add r1, r1, #4
- str r1, [r5, #0x18]
- ldr r4, [r1]
- add r1, r1, #4
- str r1, [r5, #0x18]
- add r1, sp, #0
- add r2, r4, #0
- bl MOD08_022127A8
- cmp r4, #2
- add r0, sp, #0
- bne _022128EA
- ldr r1, [r5]
- bl MOD08_0222A568
- add sp, #0x50
- pop {r3, r4, r5, pc}
-_022128EA:
- cmp r4, #3
- bne _022128F8
- ldr r1, [r5]
- bl MOD08_0222A2A4
- add sp, #0x50
- pop {r3, r4, r5, pc}
-_022128F8:
- ldr r1, [r5]
- bl MOD08_0222A294
- add sp, #0x50
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02212904
-MOD08_02212904: ; 0x02212904
- push {r4, lr}
- sub sp, #0x50
- add r4, r0, #0
- ldr r1, [r4, #0x18]
- add r1, r1, #4
- str r1, [r4, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- str r1, [r4, #0x18]
- add r1, sp, #0
- bl MOD08_022127A8
- ldr r1, [r4]
- add r0, sp, #0
- bl MOD08_0222A494
- add sp, #0x50
- pop {r4, pc}
-
- thumb_func_start MOD08_02212928
-MOD08_02212928: ; 0x02212928
- ldr r1, [r0, #0x18]
- mov r2, #0
- add r1, r1, #4
- str r1, [r0, #0x18]
- add r3, r0, #0
-_02212932:
- ldr r1, [r3, #0x30]
- cmp r1, #1
- beq _0221295E
- mov r1, #0xc
- mul r1, r2
- mov r2, #1
- add r1, r0, r1
- str r2, [r1, #0x30]
- add r2, r1, #0
- mov r3, #0
- add r2, #0x2c
- strb r3, [r2]
- ldr r2, [r0, #0x18]
- ldr r3, [r2]
- add r2, r1, #0
- add r2, #0x2d
- strb r3, [r2]
- ldr r2, [r0, #0x18]
- add r2, r2, #4
- str r2, [r0, #0x18]
- str r2, [r1, #0x28]
- bx lr
-_0221295E:
- add r2, r2, #1
- add r3, #0xc
- cmp r2, #3
- blt _02212932
- bx lr
-
- thumb_func_start MOD08_02212968
-MOD08_02212968: ; 0x02212968
- push {r3, r4}
- ldr r1, [r0, #0x18]
- add r3, r0, #0
- add r1, r1, #4
- add r3, #0x18
- str r1, [r0, #0x18]
- mov r2, #2
-_02212976:
- ldr r1, [r3, #0x30]
- cmp r1, #0
- beq _022129AA
- add r4, r2, #0
- mov r1, #0xc
- add r2, r0, #0
- mul r4, r1
- add r2, #0x2c
- ldrb r1, [r2, r4]
- add r1, r1, #1
- strb r1, [r2, r4]
- ldrb r3, [r2, r4]
- add r2, r0, r4
- add r1, r2, #0
- add r1, #0x2d
- ldrb r1, [r1]
- cmp r3, r1
- bne _022129A2
- mov r0, #0
- str r0, [r2, #0x30]
- pop {r3, r4}
- bx lr
-_022129A2:
- ldr r1, [r2, #0x28]
- str r1, [r0, #0x18]
- pop {r3, r4}
- bx lr
-_022129AA:
- sub r3, #0xc
- sub r2, r2, #1
- bpl _02212976
- pop {r3, r4}
- bx lr
-
- thumb_func_start MOD08_022129B4
-MOD08_022129B4: ; 0x022129B4
- push {r3, r4, r5, r6, r7, lr}
- ldr r1, _02212BB0 ; =0x0000017E
- add r5, r0, #0
- ldrb r0, [r5, r1]
- mov r6, #0
- cmp r0, #1
- bhs _022129D2
- add r0, r5, #0
- mov r2, #1
- add r0, #0x8d
- strb r2, [r0]
- ldrb r0, [r5, r1]
- add r0, r0, #1
- strb r0, [r5, r1]
- pop {r3, r4, r5, r6, r7, pc}
-_022129D2:
- add r7, r6, #0
- add r4, r6, #0
-_022129D6:
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, r0, r4
- ldr r0, [r0, #0x1c]
- cmp r0, #0
- beq _022129EA
- bl FUN_020133C8
- add r6, r6, r0
-_022129EA:
- add r7, r7, #1
- add r4, r4, #4
- cmp r7, #0x10
- blt _022129D6
- cmp r6, #0
- bne _02212A0A
- add r0, r5, #0
- add r0, #0x8e
- ldrh r0, [r0]
- cmp r0, #0
- bne _02212A0A
- add r0, r5, #0
- add r0, #0x90
- ldrh r0, [r0]
- cmp r0, #0
- beq _02212A1A
-_02212A0A:
- add r0, r5, #0
- mov r1, #1
- add r0, #0x8d
- strb r1, [r0]
- ldr r0, _02212BB4 ; =0x0000017D
- mov r1, #0
- strb r1, [r5, r0]
- pop {r3, r4, r5, r6, r7, pc}
-_02212A1A:
- bl FUN_02005514
- cmp r0, #0
- beq _02212A44
- ldr r0, _02212BB4 ; =0x0000017D
- ldrb r1, [r5, r0]
- add r1, r1, #1
- strb r1, [r5, r0]
- ldrb r1, [r5, r0]
- cmp r1, #0x5a
- bls _02212A3C
- mov r1, #0
- strb r1, [r5, r0]
- add r0, r5, #0
- add r0, #0x8d
- strb r1, [r0]
- b _02212A44
-_02212A3C:
- mov r0, #1
- add r5, #0x8d
- strb r0, [r5]
- pop {r3, r4, r5, r6, r7, pc}
-_02212A44:
- ldr r0, _02212BB4 ; =0x0000017D
- mov r1, #0
- strb r1, [r5, r0]
- add r0, r0, #1
- strb r1, [r5, r0]
- add r0, r5, #0
- add r2, r1, #0
-_02212A52:
- add r1, r1, #1
- str r2, [r0, #0x1c]
- add r0, r0, #4
- cmp r1, #3
- blt _02212A52
- add r1, r5, #0
- mov r4, #0
-_02212A60:
- add r0, r1, #0
- str r4, [r1, #0x28]
- add r0, #0x2c
- strb r4, [r0]
- add r0, r1, #0
- add r0, #0x2d
- strb r4, [r0]
- str r4, [r1, #0x30]
- add r2, r2, #1
- add r1, #0xc
- cmp r2, #3
- blt _02212A60
- add r7, r5, #0
- mov r6, #0
-_02212A7C:
- add r0, r7, #0
- add r0, #0xcc
- ldr r1, [r0]
- cmp r1, #0
- beq _02212A94
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, #0xac
- ldr r0, [r0]
- bl FUN_0200C398
-_02212A94:
- add r0, r7, #0
- add r0, #0xcc
- add r4, r4, #1
- add r7, r7, #4
- str r6, [r0]
- cmp r4, #4
- blt _02212A7C
-_02212AA2:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02213454
- add r6, r6, #1
- cmp r6, #5
- blt _02212AA2
- mov r6, #0
- add r4, r6, #0
- add r7, r6, #0
-_02212AB6:
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, r0, r4
- ldr r0, [r0, #0x1c]
- cmp r0, #0
- beq _02212AD2
- bl MOD08_02215B40
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, r0, r4
- str r7, [r0, #0x1c]
-_02212AD2:
- add r6, r6, #1
- add r4, r4, #4
- cmp r6, #0x10
- blt _02212AB6
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- cmp r1, #0
- beq _02212AE8
- mov r1, #0
- str r1, [r5, r0]
-_02212AE8:
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #0
- bne _02212B3C
- bl MOD11_02231678
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02215588
- add r4, r0, #0
- add r0, r5, #0
- bl MOD08_02212014
- add r3, r0, #0
- lsl r0, r4, #0x18
- mov r1, #1
- lsr r0, r0, #0x18
- lsl r1, r1, #0xe
- mov r2, #0
- bl FUN_02017F18
- add r0, r5, #0
- bl MOD08_02212490
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02215588
- add r1, r0, #0
- lsl r1, r1, #0x18
- add r0, r4, #0
- lsr r1, r1, #0x18
- bl FUN_02018744
- mov r0, #2
- mov r1, #1
- bl FUN_0201797C
- b _02212B40
-_02212B3C:
- bl MOD12_02233560
-_02212B40:
- mov r1, #0x1a
- lsl r1, r1, #4
- ldrb r1, [r5, r1]
- mov r0, #0
- bl FUN_020178BC
- ldr r1, _02212BB8 ; =0x000001A1
- mov r0, #1
- ldrb r1, [r5, r1]
- bl FUN_020178BC
- ldr r1, _02212BBC ; =0x000001A2
- mov r0, #2
- ldrb r1, [r5, r1]
- bl FUN_020178BC
- ldr r1, _02212BC0 ; =0x000001A3
- mov r0, #3
- ldrb r1, [r5, r1]
- bl FUN_020178BC
- add r0, r5, #0
- add r0, #0xc4
- mov r2, #0
- ldr r0, [r0]
- mov r1, #2
- add r3, r2, #0
- bl FUN_020179E0
- add r0, r5, #0
- add r0, #0xc4
- ldr r0, [r0]
- mov r1, #2
- mov r2, #3
- mov r3, #0
- bl FUN_020179E0
- add r0, r5, #0
- add r0, #0xc4
- mov r2, #0
- ldr r0, [r0]
- mov r1, #3
- add r3, r2, #0
- bl FUN_020179E0
- add r0, r5, #0
- add r0, #0xc4
- mov r1, #3
- ldr r0, [r0]
- add r2, r1, #0
- mov r3, #0
- bl FUN_020179E0
- mov r0, #0
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02212BB0: .word 0x0000017E
-_02212BB4: .word 0x0000017D
-_02212BB8: .word 0x000001A1
-_02212BBC: .word 0x000001A2
-_02212BC0: .word 0x000001A3
-
- thumb_func_start MOD08_02212BC4
-MOD08_02212BC4: ; 0x02212BC4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r4, [r0]
- add r1, r0, #4
- str r1, [r5, #0x18]
- ldr r0, [r1]
- str r0, [sp]
- add r0, r1, #4
- str r0, [r5, #0x18]
- ldr r7, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- str r4, [r0, #0x18]
- add r0, r5, r4
- add r0, #0x7c
- ldrb r0, [r0]
- cmp r0, #0
- beq _02212C22
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r6, r4, #2
- add r0, r0, r6
- ldr r0, [r0, #0x1c]
- add r1, sp, #4
- bl FUN_020133EC
- mov r0, #0
- ldr r1, [sp, #8]
- mvn r0, r0
- mul r0, r1
- str r0, [sp, #8]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r1, sp, #4
- add r0, r0, r6
- ldr r0, [r0, #0x1c]
- bl FUN_020133FC
-_02212C22:
- add r0, r5, #0
- add r0, #0xc0
- add r1, r5, r4
- add r1, #0x6c
- ldr r0, [r0]
- lsl r6, r4, #2
- add r0, r0, r6
- ldrb r1, [r1]
- ldr r0, [r0, #0x1c]
- bl FUN_02013440
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- ldr r1, [sp]
- add r0, r0, r6
- ldr r0, [r0, #0x1c]
- add r2, r7, #0
- add r3, r5, #0
- bl MOD08_02215B2C
- add r5, #0xc0
- ldr r1, [r5]
- str r0, [r1, #0x5c]
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02212C58
-MOD08_02212C58: ; 0x02212C58
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r4, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r7, [r0]
- add r1, r0, #4
- str r1, [r5, #0x18]
- ldr r0, [r1]
- add r1, r1, #4
- str r1, [r5, #0x18]
- str r0, [sp, #4]
- ldr r0, [r1]
- str r0, [sp]
- add r0, r1, #4
- str r0, [r5, #0x18]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- str r4, [r0, #0x18]
- add r0, r5, r4
- add r0, #0x7c
- ldrb r0, [r0]
- cmp r0, #0
- beq _02212CBE
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r6, r4, #2
- add r0, r0, r6
- ldr r0, [r0, #0x1c]
- add r1, sp, #8
- bl FUN_020133EC
- mov r0, #0
- ldr r1, [sp, #0xc]
- mvn r0, r0
- mul r0, r1
- str r0, [sp, #0xc]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r1, sp, #8
- add r0, r0, r6
- ldr r0, [r0, #0x1c]
- bl FUN_020133FC
-_02212CBE:
- add r0, r5, #0
- add r0, #0xc0
- add r1, r5, r4
- add r1, #0x6c
- ldr r0, [r0]
- lsl r6, r4, #2
- add r0, r0, r6
- ldrb r1, [r1]
- ldr r0, [r0, #0x1c]
- bl FUN_02013440
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- ldr r1, [sp, #4]
- add r0, r0, r6
- ldr r0, [r0, #0x1c]
- ldr r2, [sp]
- add r3, r5, #0
- bl MOD08_02215B2C
- add r5, #0xc0
- ldr r2, [r5]
- lsl r1, r7, #2
- add r1, r2, r1
- str r0, [r1, #0x5c]
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02212CF8
-MOD08_02212CF8: ; 0x02212CF8
- push {r4, r5, r6, lr}
- sub sp, #0x90
- ldr r5, _02212D4C ; =0x0222AB4C
- add r4, r0, #0
- add r3, sp, #0
- mov r2, #0x12
-_02212D04:
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _02212D04
- add r0, r4, #0
- bl MOD08_02212458
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212460
- add r6, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- add r1, r6, #0
- bl MOD08_02227468
- mov r1, #0x18
- add r3, r5, #0
- mul r3, r1
- add r2, sp, #0
- lsl r1, r0, #2
- add r0, r2, r3
- ldr r4, [r1, r0]
- cmp r4, #0xff
- bne _02212D44
- bl ErrorHandling
-_02212D44:
- sub r0, r4, #1
- add sp, #0x90
- pop {r4, r5, r6, pc}
- nop
-_02212D4C: .word 0x0222AB4C
-
- thumb_func_start MOD08_02212D50
-MOD08_02212D50: ; 0x02212D50
- push {r4, r5, r6, lr}
- sub sp, #0x90
- ldr r5, _02212DA4 ; =0x0222ABDC
- add r4, r0, #0
- add r3, sp, #0
- mov r2, #0x12
-_02212D5C:
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _02212D5C
- add r0, r4, #0
- bl MOD08_02212458
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212460
- add r6, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- add r1, r6, #0
- bl MOD08_02227468
- mov r1, #0x18
- add r3, r5, #0
- mul r3, r1
- add r2, sp, #0
- lsl r1, r0, #2
- add r0, r2, r3
- ldr r4, [r1, r0]
- cmp r4, #0xff
- bne _02212D9C
- bl ErrorHandling
-_02212D9C:
- add r0, r4, #0
- add sp, #0x90
- pop {r4, r5, r6, pc}
- nop
-_02212DA4: .word 0x0222ABDC
-
- thumb_func_start MOD08_02212DA8
-MOD08_02212DA8: ; 0x02212DA8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- add r5, r0, #0
- ldr r1, [r5, #0x18]
- add r0, #0x18
- add r1, r1, #4
- str r1, [r5, #0x18]
- ldr r4, [r1]
- add r1, r1, #4
- str r1, [r5, #0x18]
- mov r1, #0
- add r2, sp, #0x10
-_02212DC0:
- ldr r3, [r5, #0x18]
- add r1, r1, #1
- ldr r3, [r3]
- str r3, [r2]
- ldr r3, [r0]
- add r2, r2, #4
- add r3, r3, #4
- str r3, [r0]
- cmp r1, #6
- blt _02212DC0
- ldr r1, [r5, #0x18]
- ldr r1, [r1]
- str r1, [sp]
- ldr r1, [r0]
- add r1, r1, #4
- str r1, [r0]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- str r4, [r0, #0x18]
- add r0, r5, r4
- add r0, #0x7c
- ldrb r0, [r0]
- cmp r0, #0
- beq _02212E1E
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r6, r4, #2
- add r0, r0, r6
- ldr r0, [r0, #0x1c]
- add r1, sp, #4
- bl FUN_020133EC
- mov r0, #0
- ldr r1, [sp, #8]
- mvn r0, r0
- mul r0, r1
- str r0, [sp, #8]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r1, sp, #4
- add r0, r0, r6
- ldr r0, [r0, #0x1c]
- bl FUN_020133FC
-_02212E1E:
- add r0, r5, #0
- bl MOD08_02212CF8
- add r7, r0, #0
- add r0, r5, #0
- add r0, #0xc0
- add r1, r5, r4
- add r1, #0x6c
- ldr r0, [r0]
- lsl r6, r4, #2
- add r0, r0, r6
- ldrb r1, [r1]
- ldr r0, [r0, #0x1c]
- bl FUN_02013440
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r2, r7, #2
- add r0, r0, r6
- add r1, sp, #0x10
- ldr r1, [r1, r2]
- ldr r0, [r0, #0x1c]
- ldr r2, [sp]
- add r3, r5, #0
- bl MOD08_02215B2C
- add r5, #0xc0
- ldr r1, [r5]
- str r0, [r1, #0x5c]
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02212E60
-MOD08_02212E60: ; 0x02212E60
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- add r5, r0, #0
- ldr r1, [r5, #0x18]
- add r0, #0x18
- add r1, r1, #4
- str r1, [r5, #0x18]
- ldr r4, [r1]
- add r1, r1, #4
- str r1, [r5, #0x18]
- mov r1, #0
- add r2, sp, #0x10
-_02212E78:
- ldr r3, [r5, #0x18]
- add r1, r1, #1
- ldr r3, [r3]
- str r3, [r2]
- ldr r3, [r0]
- add r2, r2, #4
- add r3, r3, #4
- str r3, [r0]
- cmp r1, #4
- blt _02212E78
- ldr r1, [r5, #0x18]
- ldr r1, [r1]
- str r1, [sp]
- ldr r1, [r0]
- add r1, r1, #4
- str r1, [r0]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- str r4, [r0, #0x18]
- add r0, r5, r4
- add r0, #0x7c
- ldrb r0, [r0]
- cmp r0, #0
- beq _02212ED6
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r6, r4, #2
- add r0, r0, r6
- ldr r0, [r0, #0x1c]
- add r1, sp, #4
- bl FUN_020133EC
- mov r0, #0
- ldr r1, [sp, #8]
- mvn r0, r0
- mul r0, r1
- str r0, [sp, #8]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r1, sp, #4
- add r0, r0, r6
- ldr r0, [r0, #0x1c]
- bl FUN_020133FC
-_02212ED6:
- add r0, r5, #0
- bl MOD08_02212D50
- add r7, r0, #0
- add r0, r5, #0
- add r0, #0xc0
- add r1, r5, r4
- add r1, #0x6c
- ldr r0, [r0]
- lsl r6, r4, #2
- add r0, r0, r6
- ldrb r1, [r1]
- ldr r0, [r0, #0x1c]
- bl FUN_02013440
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r2, r7, #2
- add r0, r0, r6
- add r1, sp, #0x10
- ldr r1, [r1, r2]
- ldr r0, [r0, #0x1c]
- ldr r2, [sp]
- add r3, r5, #0
- bl MOD08_02215B2C
- add r5, #0xc0
- ldr r1, [r5]
- str r0, [r1, #0x5c]
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02212F18
-MOD08_02212F18: ; 0x02212F18
- push {r3, r4, r5, r6, r7, lr}
- mov r6, #0
- add r5, r0, #0
- add r7, r6, #0
- add r4, r6, #0
-_02212F22:
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, r0, r4
- ldr r0, [r0, #0x1c]
- cmp r0, #0
- beq _02212F36
- bl FUN_020133C8
- add r6, r6, r0
-_02212F36:
- add r7, r7, #1
- add r4, r4, #4
- cmp r7, #0x10
- blt _02212F22
- cmp r6, #0
- bne _02212F50
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- mov r0, #0
- add r5, #0x8d
- strb r0, [r5]
- pop {r3, r4, r5, r6, r7, pc}
-_02212F50:
- mov r0, #1
- add r5, #0x8d
- strb r0, [r5]
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02212F58
-MOD08_02212F58: ; 0x02212F58
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r4, r1, #2
- add r0, r0, r4
- ldr r0, [r0, #0x1c]
- cmp r0, #0
- beq _02212F7C
- bl ErrorHandling
-_02212F7C:
- ldr r0, [r5, #0x18]
- mov r2, #0
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r5]
- bl MOD08_02215AA4
- add r1, r5, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r1, r1, r4
- str r0, [r1, #0x1c]
- add r0, r5, #0
- mov r1, #2
- add r0, #0x8d
- strb r1, [r0]
- ldr r0, _02212FA8 ; =MOD08_02211EA0
- add r5, #0xbc
- str r0, [r5]
- pop {r3, r4, r5, pc}
- nop
-_02212FA8: .word MOD08_02211EA0
-
- thumb_func_start MOD08_02212FAC
-MOD08_02212FAC: ; 0x02212FAC
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- add r0, r0, #4
- str r0, [r5, #0x18]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r4, r1, #2
- add r0, r0, r4
- ldr r0, [r0, #0x1c]
- cmp r0, #0
- beq _02212FD2
- bl ErrorHandling
-_02212FD2:
- ldr r0, [r5, #0x18]
- mov r1, #0x64
- ldr r2, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r5]
- mov r3, #0
- bl MOD08_02215ACC
- add r1, r5, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r1, r1, r4
- str r0, [r1, #0x1c]
- add r0, r5, #0
- mov r1, #2
- add r0, #0x8d
- strb r1, [r0]
- ldr r0, _02213000 ; =MOD08_02211EA0
- add r5, #0xbc
- str r0, [r5]
- pop {r3, r4, r5, pc}
- nop
-_02213000: .word MOD08_02211EA0
-
- thumb_func_start MOD08_02213004
-MOD08_02213004: ; 0x02213004
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r4, r1, #2
- add r0, r0, r4
- ldr r0, [r0, #0x1c]
- bl MOD08_02215B40
- add r5, #0xc0
- ldr r0, [r5]
- mov r1, #0
- add r0, r0, r4
- str r1, [r0, #0x1c]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02213030
-MOD08_02213030: ; 0x02213030
- ldr r1, [r0, #0x18]
- mov r3, #0
- add r1, r1, #4
- str r1, [r0, #0x18]
- add r2, r0, #0
-_0221303A:
- ldr r1, [r2, #0x1c]
- cmp r1, #0
- bne _02213056
- ldr r1, [r0, #0x18]
- add r2, r1, #4
- lsl r1, r3, #2
- add r1, r0, r1
- str r2, [r1, #0x1c]
- ldr r2, [r0, #0x18]
- ldr r1, [r2]
- lsl r1, r1, #2
- add r1, r2, r1
- str r1, [r0, #0x18]
- bx lr
-_02213056:
- add r3, r3, #1
- add r2, r2, #4
- cmp r3, #3
- blt _0221303A
- bx lr
-
- thumb_func_start MOD08_02213060
-MOD08_02213060: ; 0x02213060
- ldr r1, [r0, #0x18]
- add r3, r0, #0
- add r1, r1, #4
- str r1, [r0, #0x18]
- mov r2, #2
- add r3, #8
-_0221306C:
- ldr r1, [r3, #0x1c]
- cmp r1, #0
- beq _02213082
- add r3, r0, #0
- add r3, #0x1c
- lsl r2, r2, #2
- ldr r1, [r3, r2]
- str r1, [r0, #0x18]
- mov r0, #0
- str r0, [r3, r2]
- bx lr
-_02213082:
- sub r3, r3, #4
- sub r2, r2, #1
- bpl _0221306C
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_0221308C
-MOD08_0221308C: ; 0x0221308C
- push {r3, r4}
- ldr r2, [r0, #0x18]
- add r1, r0, #0
- add r2, r2, #4
- str r2, [r0, #0x18]
- ldr r4, [r2]
- add r2, r2, #4
- str r2, [r0, #0x18]
- ldr r3, [r2]
- add r2, r2, #4
- str r2, [r0, #0x18]
- lsl r2, r4, #2
- add r2, r0, r2
- add r2, #0x94
- ldr r2, [r2]
- add r1, #0x18
- cmp r3, r2
- bne _022130BA
- ldr r1, [r0, #0x18]
- ldr r1, [r1]
- str r1, [r0, #0x18]
- pop {r3, r4}
- bx lr
-_022130BA:
- ldr r0, [r1]
- add r0, r0, #4
- str r0, [r1]
- pop {r3, r4}
- bx lr
-
- thumb_func_start MOD08_022130C4
-MOD08_022130C4: ; 0x022130C4
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x18]
- add r0, r0, #4
- str r0, [r4, #0x18]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- bl MOD08_02215350
- cmp r0, #0
- ldr r0, [r4, #0x18]
- beq _022130E4
- ldr r0, [r0]
- str r0, [r4, #0x18]
- pop {r4, pc}
-_022130E4:
- add r0, r0, #4
- str r0, [r4, #0x18]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022130EC
-MOD08_022130EC: ; 0x022130EC
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x18]
- add r1, r0, #4
- str r1, [r4, #0x18]
- ldr r0, [r1]
- add r1, r1, #4
- str r1, [r4, #0x18]
- bl MOD08_02218C48
- add r7, r0, #0
- ldr r0, [r4, #0x18]
- add r2, r4, #0
- ldr r5, [r0]
- add r0, r0, #4
- add r2, #0x18
- mov r3, #0
- str r0, [r4, #0x18]
- cmp r5, #0
- bls _0221312E
- add r6, r4, #0
-_02213116:
- ldr r0, [r4, #0x18]
- add r3, r3, #1
- ldr r1, [r0]
- add r0, r6, #0
- add r0, #0x94
- str r1, [r0]
- ldr r0, [r2]
- add r6, r6, #4
- add r0, r0, #4
- str r0, [r2]
- cmp r3, r5
- blo _02213116
-_0221312E:
- cmp r3, #0xa
- bge _02213146
- lsl r0, r3, #2
- add r2, r4, r0
- mov r1, #0
-_02213138:
- add r0, r2, #0
- add r0, #0x94
- add r3, r3, #1
- add r2, r2, #4
- str r1, [r0]
- cmp r3, #0xa
- blt _02213138
-_02213146:
- add r0, r4, #0
- blx r7
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0221314C
-MOD08_0221314C: ; 0x0221314C
- ldr r2, [r0, #0x18]
- add r1, r0, #0
- add r2, r2, #4
- str r2, [r0, #0x18]
- add r2, r0, #0
- add r2, #0xc0
- ldr r2, [r2]
- add r1, #0x18
- ldrh r3, [r2, #0x10]
- mov r2, #1
- tst r2, r3
- beq _0221316A
- ldr r2, [r1]
- add r2, r2, #4
- str r2, [r1]
-_0221316A:
- ldr r2, [r0, #0x18]
- ldr r1, [r2]
- lsl r1, r1, #2
- add r1, r2, r1
- str r1, [r0, #0x18]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02213178
-MOD08_02213178: ; 0x02213178
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #0x18]
- add r1, r1, #4
- str r1, [r4, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- str r1, [r4, #0x18]
- cmp r2, #0
- bne _0221319A
- add r1, r4, #0
- add r1, #0xc0
- ldr r1, [r1]
- ldrh r1, [r1, #0x14]
- bl MOD08_02227470
- b _022131A6
-_0221319A:
- add r1, r4, #0
- add r1, #0xc0
- ldr r1, [r1]
- ldrh r1, [r1, #0x16]
- bl MOD08_02227470
-_022131A6:
- cmp r0, #4
- bne _022131B0
- ldr r0, [r4, #0x18]
- add r0, r0, #4
- str r0, [r4, #0x18]
-_022131B0:
- ldr r1, [r4, #0x18]
- ldr r0, [r1]
- lsl r0, r0, #2
- add r0, r1, r0
- str r0, [r4, #0x18]
- pop {r4, pc}
-
- thumb_func_start MOD08_022131BC
-MOD08_022131BC: ; 0x022131BC
- push {r4, r5}
- sub sp, #0x10
- ldr r5, _02213214 ; =0x0222AA3C
- add r2, sp, #0
- add r4, r0, #0
- add r3, r2, #0
- ldmia r5!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r5!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r1, [r4, #0x18]
- add r0, r4, #0
- add r1, r1, #4
- str r1, [r4, #0x18]
- add r1, r4, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r0, #0x18
- ldr r1, [r1, #0xc]
- cmp r1, #0
- beq _02213202
- ldr r2, [r0]
- add r2, r2, #4
- str r2, [r0]
- mov r2, #0
-_022131EE:
- ldr r5, [r3]
- tst r5, r1
- bne _02213202
- ldr r5, [r0]
- add r2, r2, #1
- add r5, r5, #4
- add r3, r3, #4
- str r5, [r0]
- cmp r2, #4
- blo _022131EE
-_02213202:
- ldr r1, [r4, #0x18]
- ldr r0, [r1]
- lsl r0, r0, #2
- add r0, r1, r0
- str r0, [r4, #0x18]
- add sp, #0x10
- pop {r4, r5}
- bx lr
- nop
-_02213214: .word 0x0222AA3C
-
- thumb_func_start MOD08_02213218
-MOD08_02213218: ; 0x02213218
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #0x18]
- add r1, r1, #4
- str r1, [r4, #0x18]
- bl MOD08_02212004
- cmp r0, #1
- bne _02213236
- ldr r1, [r4, #0x18]
- ldr r0, [r1]
- lsl r0, r0, #2
- add r0, r1, r0
- str r0, [r4, #0x18]
- pop {r4, pc}
-_02213236:
- ldr r0, [r4, #0x18]
- add r0, r0, #4
- str r0, [r4, #0x18]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02213240
-MOD08_02213240: ; 0x02213240
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r1, [r5, #0x18]
- add r1, r1, #4
- str r1, [r5, #0x18]
- add r1, r5, #0
- add r1, #0xc0
- ldr r1, [r1]
- ldrh r1, [r1, #0x14]
- bl MOD08_02227470
- add r1, r5, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r4, r0, #0
- ldrh r1, [r1, #0x16]
- add r0, r5, #0
- bl MOD08_02227470
- cmp r4, r0
- bne _02213276
- ldr r1, [r5, #0x18]
- ldr r0, [r1]
- lsl r0, r0, #2
- add r0, r1, r0
- str r0, [r5, #0x18]
- pop {r3, r4, r5, pc}
-_02213276:
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02213280
-MOD08_02213280: ; 0x02213280
- ldr r2, [r0, #0x18]
- add r1, r0, #0
- add r2, r2, #4
- str r2, [r0, #0x18]
- ldr r3, [r2]
- add r2, r2, #4
- str r2, [r0, #0x18]
- add r2, r0, #0
- add r2, #0xc0
- ldr r2, [r2]
- add r1, #0x18
- ldrh r2, [r2, #0x10]
- cmp r3, r2
- bne _022132AA
- ldr r0, [r0, #0x18]
- ldr r2, [r1]
- ldr r0, [r0]
- lsl r0, r0, #2
- add r0, r2, r0
- str r0, [r1]
- bx lr
-_022132AA:
- ldr r0, [r1]
- add r0, r0, #4
- str r0, [r1]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022132B4
-MOD08_022132B4: ; 0x022132B4
- ldr r1, [r0, #0x18]
- add r2, r1, #4
- str r2, [r0, #0x18]
- ldr r1, [r2]
- lsl r1, r1, #2
- add r1, r2, r1
- str r1, [r0, #0x18]
- bx lr
-
- thumb_func_start MOD08_022132C4
-MOD08_022132C4: ; 0x022132C4
- push {r4, r5, r6, lr}
- add r4, r0, #0
- cmp r1, #7
- bhi _022133A2
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022132D8: ; jump table
- .short _022132E8 - _022132D8 - 2 ; case 0
- .short _022132F0 - _022132D8 - 2 ; case 1
- .short _022132F8 - _022132D8 - 2 ; case 2
- .short _02213306 - _022132D8 - 2 ; case 3
- .short _02213314 - _022132D8 - 2 ; case 4
- .short _0221333A - _022132D8 - 2 ; case 5
- .short _02213360 - _022132D8 - 2 ; case 6
- .short _02213382 - _022132D8 - 2 ; case 7
-_022132E8:
- add r4, #0xc0
- ldr r0, [r4]
- ldrh r6, [r0, #0x14]
- b _022133A2
-_022132F0:
- add r4, #0xc0
- ldr r0, [r4]
- ldrh r6, [r0, #0x16]
- b _022133A2
-_022132F8:
- add r4, #0xc0
- ldr r1, [r4]
- ldrh r1, [r1, #0x14]
- bl MOD08_022274C0
- add r6, r0, #0
- b _022133A2
-_02213306:
- add r4, #0xc0
- ldr r1, [r4]
- ldrh r1, [r1, #0x16]
- bl MOD08_022274C0
- add r6, r0, #0
- b _022133A2
-_02213314:
- mov r6, #0xff
- mov r5, #0
-_02213318:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02215490
- cmp r0, #0
- beq _02213328
- cmp r0, #2
- bne _0221332C
-_02213328:
- add r6, r5, #0
- b _02213332
-_0221332C:
- add r5, r5, #1
- cmp r5, #4
- blt _02213318
-_02213332:
- cmp r6, #0xff
- bne _022133A2
- mov r6, #0
- b _022133A2
-_0221333A:
- mov r6, #0xff
- mov r5, #0
-_0221333E:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02215490
- cmp r0, #1
- beq _0221334E
- cmp r0, #3
- bne _02213352
-_0221334E:
- add r6, r5, #0
- b _02213358
-_02213352:
- add r5, r5, #1
- cmp r5, #4
- blt _0221333E
-_02213358:
- cmp r6, #0xff
- bne _022133A2
- mov r6, #0
- b _022133A2
-_02213360:
- mov r6, #0xff
- mov r5, #0
-_02213364:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02215490
- cmp r0, #4
- bne _02213374
- add r6, r5, #0
- b _0221337A
-_02213374:
- add r5, r5, #1
- cmp r5, #4
- blt _02213364
-_0221337A:
- cmp r6, #0xff
- bne _022133A2
- mov r6, #0
- b _022133A2
-_02213382:
- mov r6, #0xff
- mov r5, #0
-_02213386:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02215490
- cmp r0, #5
- bne _02213396
- add r6, r5, #0
- b _0221339C
-_02213396:
- add r5, r5, #1
- cmp r5, #4
- blt _02213386
-_0221339C:
- cmp r6, #0xff
- bne _022133A2
- mov r6, #0
-_022133A2:
- add r0, r6, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022133A8
-MOD08_022133A8: ; 0x022133A8
- push {r4, r5, r6, lr}
- add r5, r1, #0
- ldrb r0, [r5, #5]
- cmp r0, #0
- beq _022133C4
- ldrb r0, [r5, #4]
- add r0, r0, #1
- strb r0, [r5, #4]
- ldrb r1, [r5, #4]
- ldrb r0, [r5, #5]
- cmp r1, r0
- bne _022133F2
- mov r0, #0
- strb r0, [r5, #4]
-_022133C4:
- ldr r0, [r5, #8]
- mov r1, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- ldr r0, [r5, #8]
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- ldr r0, [r5, #8]
- mov r1, #0x29
- bl FUN_0200782C
- sub r0, r4, r0
- lsl r0, r0, #0x10
- asr r2, r0, #0x10
- ldr r0, [r5]
- add r1, r6, #0
- bl FUN_0200C714
-_022133F2:
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_022133F4
-MOD08_022133F4: ; 0x022133F4
- push {r4, r5, r6, lr}
- add r5, r1, #0
- ldrb r0, [r5, #5]
- cmp r0, #0
- beq _02213410
- ldrb r0, [r5, #4]
- add r0, r0, #1
- strb r0, [r5, #4]
- ldrb r1, [r5, #4]
- ldrb r0, [r5, #5]
- cmp r1, r0
- bne _02213452
- mov r0, #0
- strb r0, [r5, #4]
-_02213410:
- ldr r0, [r5, #8]
- mov r1, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- ldr r0, [r5, #8]
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- ldr r0, [r5, #8]
- mov r1, #0x29
- bl FUN_0200782C
- sub r0, r4, r0
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- sub r6, #0x28
- ldr r0, [r5]
- mov r1, #2
- mov r2, #0
- neg r3, r6
- bl FUN_020179E0
- sub r4, #0x28
- ldr r0, [r5]
- mov r1, #2
- mov r2, #3
- neg r3, r4
- bl FUN_020179E0
-_02213452:
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_02213454
-MOD08_02213454: ; 0x02213454
- push {r3, r4, r5, lr}
- add r4, r0, #0
- cmp r1, #4
- bne _02213480
- mov r0, #0x5e
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- cmp r0, #0
- beq _0221349E
- ldr r0, [r0, #0xc]
- bl FUN_0200CAB4
- mov r0, #0x5e
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl FreeToHeap
- mov r0, #0x5e
- mov r1, #0
- lsl r0, r0, #2
- str r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_02213480:
- mov r0, #0x59
- lsl r0, r0, #2
- lsl r5, r1, #2
- add r4, r4, r0
- ldr r0, [r4, r5]
- cmp r0, #0
- beq _0221349E
- ldr r0, [r0, #0xc]
- bl FUN_0200CAB4
- ldr r0, [r4, r5]
- bl FreeToHeap
- mov r0, #0
- str r0, [r4, r5]
-_0221349E:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_022134A0
-MOD08_022134A0: ; 0x022134A0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022134A4
-MOD08_022134A4: ; 0x022134A4
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022134A8
-MOD08_022134A8: ; 0x022134A8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r5, r0, #0
- ldr r1, [r5, #0x18]
- add r2, r1, #4
- str r2, [r5, #0x18]
- ldr r1, [r2]
- add r2, r2, #4
- str r2, [r5, #0x18]
- ldr r4, [r2]
- add r2, r2, #4
- str r2, [r5, #0x18]
- bl MOD08_022132C4
- add r6, r0, #0
- add r0, r5, #0
- add r0, #0xc0
- ldr r1, [r0]
- lsl r0, r6, #2
- add r0, r1, r0
- add r0, #0xb0
- ldr r1, [r0]
- ldr r0, [r1, #4]
- str r0, [sp, #0x14]
- ldr r0, [r1, #8]
- str r0, [sp, #0x10]
- ldr r0, [r1]
- str r0, [sp, #0x18]
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _022134FE
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_022154A8
- bl MOD08_0222A6C8
- cmp r0, #1
- bne _022134FE
- mov r7, #0xc9
- b _02213500
-_022134FE:
- mov r7, #0xc8
-_02213500:
- mov r0, #2
- bl FUN_020187B0
- mov r2, #0x19
- mov r1, #0
- lsl r2, r2, #8
- bl MI_CpuFill8
- mov r0, #2
- mov r1, #0
- bl FUN_0201797C
- mov r0, #0
- str r0, [sp]
- add r0, r5, #0
- add r0, #0xc4
- mov r3, #0x32
- ldr r0, [r0]
- ldr r2, [sp, #0x18]
- mov r1, #2
- lsl r3, r3, #6
- bl FUN_02017E14
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #0x80
- str r0, [sp, #8]
- add r0, r5, #0
- add r0, #0xc8
- ldr r0, [r0]
- ldr r1, [sp, #0x14]
- ldr r2, [sp, #0x10]
- ldr r3, [r5]
- bl FUN_020030E8
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- ldr r0, [r5]
- add r2, r5, #0
- str r0, [sp, #0xc]
- add r2, #0xc4
- ldr r2, [r2]
- mov r0, #7
- add r1, r7, #0
- mov r3, #2
- bl FUN_020068C8
- cmp r4, #1
- bne _022135AC
- ldr r0, [r5]
- mov r1, #0x10
- bl AllocFromHeap
- mov r1, #0x5e
- lsl r1, r1, #2
- str r0, [r5, r1]
- add r0, r5, #0
- add r0, #0xc4
- ldr r2, [r0]
- ldr r0, [r5, r1]
- add r1, r6, #0
- str r2, [r0]
- add r0, r5, #0
- bl MOD08_022154D4
- mov r1, #0x5e
- lsl r1, r1, #2
- ldr r2, [r5, r1]
- str r0, [r2, #8]
- ldr r0, [r5, r1]
- mov r2, #0
- strb r2, [r0, #4]
- ldr r0, [r5, r1]
- strb r2, [r0, #5]
- ldr r0, _02213628 ; =MOD08_022133F4
- ldr r1, [r5, r1]
- ldr r2, _0221362C ; =0x00001001
- bl FUN_0200CA44
- mov r1, #0x5e
- lsl r1, r1, #2
- ldr r1, [r5, r1]
- str r0, [r1, #0xc]
-_022135AC:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_022154D4
- mov r1, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r7, r0, #0x10
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_022154D4
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_022154D4
- mov r1, #0x29
- bl FUN_0200782C
- sub r0, r4, r0
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- add r0, r5, #0
- add r0, #0xc4
- sub r7, #0x28
- ldr r0, [r0]
- mov r1, #2
- mov r2, #0
- neg r3, r7
- bl FUN_020179E0
- add r0, r5, #0
- add r0, #0xc4
- sub r4, #0x28
- ldr r0, [r0]
- mov r1, #2
- mov r2, #3
- neg r3, r4
- bl FUN_020179E0
- mov r0, #2
- mov r1, #1
- bl FUN_0201797C
- add r0, r5, #0
- bl MOD08_02215574
- add r1, r0, #0
- lsl r1, r1, #0x18
- mov r0, #2
- lsr r1, r1, #0x18
- bl FUN_020178BC
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- nop
-_02213628: .word MOD08_022133F4
-_0221362C: .word 0x00001001
-
- thumb_func_start MOD08_02213630
-MOD08_02213630: ; 0x02213630
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x18]
- add r0, r0, #4
- add r0, r0, #4
- str r0, [r4, #0x18]
- mov r0, #2
- bl FUN_020187B0
- mov r2, #0x19
- mov r1, #0
- lsl r2, r2, #8
- bl MI_CpuFill8
- add r0, r4, #0
- mov r1, #4
- bl MOD08_02213454
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02213658
-MOD08_02213658: ; 0x02213658
- push {r4, lr}
- sub sp, #0x18
- ldr r3, _022136CC ; =0x0222AA7C
- add r2, sp, #0
- add r4, r0, #0
- 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, #0x18]
- add r0, r0, #4
- str r0, [r4, #0x18]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, #0xac
- ldr r0, [r0]
- bl FUN_0200BB34
- mov r1, #0x4e
- lsl r1, r1, #2
- str r0, [r4, r1]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- ldr r1, [r4, r1]
- add r0, #0xac
- ldr r0, [r0]
- mov r2, #5
- bl FUN_0200BBF0
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, #0xac
- ldr r0, [r0]
- bl FUN_0200BB68
- mov r2, #0x11
- mov r1, #0
- lsl r2, r2, #0x10
- bl FUN_02008D24
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- mov r1, #0x4e
- add r0, #0xac
- lsl r1, r1, #2
- ldr r0, [r0]
- ldr r1, [r4, r1]
- add r2, sp, #0
- bl FUN_0200BF60
- add sp, #0x18
- pop {r4, pc}
- .align 2, 0
-_022136CC: .word 0x0222AA7C
-
- thumb_func_start MOD08_022136D0
-MOD08_022136D0: ; 0x022136D0
- push {r3, r4, r5, lr}
- sub sp, #0x18
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- ldr r1, _0221377C ; =0x00004E21
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r2, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r4, r2, r1
- ldrh r3, [r0, #0x14]
- lsr r2, r1, #2
- add r0, #0xac
- mul r2, r3
- add r4, r4, r2
- mov r2, #0
- str r2, [sp]
- mov r2, #1
- str r2, [sp, #4]
- str r4, [sp, #8]
- lsr r1, r1, #6
- ldr r0, [r0]
- ldr r1, [r5, r1]
- mov r2, #0x1b
- mov r3, #0x28
- bl FUN_0200C00C
- mov r0, #0x1b
- str r0, [sp]
- mov r3, #0x27
- str r3, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- add r2, r5, #0
- add r0, r5, #0
- str r4, [sp, #0x14]
- add r2, #0xc0
- ldr r2, [r2]
- add r0, #0xc8
- add r2, #0xac
- lsl r3, r3, #3
- ldr r0, [r0]
- ldr r2, [r2]
- ldr r3, [r5, r3]
- mov r1, #2
- bl FUN_0200C0DC
- mov r0, #0
- str r0, [sp]
- add r0, r5, #0
- mov r1, #0x4e
- str r4, [sp, #4]
- add r0, #0xc0
- ldr r0, [r0]
- lsl r1, r1, #2
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r5, r1]
- mov r2, #0x1b
- mov r3, #0x29
- bl FUN_0200C124
- mov r0, #0
- str r0, [sp]
- add r0, r5, #0
- mov r1, #0x4e
- str r4, [sp, #4]
- add r0, #0xc0
- ldr r0, [r0]
- lsl r1, r1, #2
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r5, r1]
- mov r2, #0x1b
- mov r3, #0x2a
- bl FUN_0200C13C
- add sp, #0x18
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221377C: .word 0x00004E21
-
- thumb_func_start MOD08_02213780
-MOD08_02213780: ; 0x02213780
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x70
- add r4, r0, #0
- ldr r1, [r4, #0x18]
- ldr r6, _02213994 ; =0x00004E21
- add r2, r1, #4
- str r2, [r4, #0x18]
- ldr r1, [r2]
- add r2, r2, #4
- str r2, [r4, #0x18]
- mov ip, r1
- ldr r1, [r2]
- add r2, r2, #4
- str r2, [r4, #0x18]
- str r1, [sp, #0x10]
- ldr r1, [r2]
- add r2, r2, #4
- str r2, [r4, #0x18]
- str r1, [sp, #0xc]
- ldr r1, [r2]
- add r2, r2, #4
- str r2, [r4, #0x18]
- add r2, r4, #0
- add r2, #0xc0
- ldr r2, [r2]
- add r1, r1, r6
- ldrh r3, [r2, #0x14]
- lsr r2, r6, #2
- mul r2, r3
- add r2, r1, r2
- str r2, [sp, #0x58]
- add r2, r4, #0
- add r2, #0xc0
- ldr r2, [r2]
- ldrh r3, [r2, #0x14]
- lsr r2, r6, #2
- mul r2, r3
- add r2, r1, r2
- str r2, [sp, #0x5c]
- add r2, r4, #0
- add r2, #0xc0
- ldr r2, [r2]
- ldrh r3, [r2, #0x14]
- lsr r2, r6, #2
- mul r2, r3
- add r2, r1, r2
- str r2, [sp, #0x60]
- add r2, r4, #0
- add r2, #0xc0
- ldr r2, [r2]
- lsr r3, r6, #2
- ldrh r2, [r2, #0x14]
- mul r3, r2
- add r1, r1, r3
- str r1, [sp, #0x64]
- mov r1, #0
- str r1, [sp, #0x68]
- str r1, [sp, #0x6c]
- mov r1, ip
- bl MOD08_022132C4
- str r0, [sp, #0x1c]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- ldr r0, [sp, #0x1c]
- lsl r0, r0, #2
- add r0, r1, r0
- add r0, #0xb0
- ldr r1, [r0]
- ldr r0, [r1, #4]
- str r0, [sp, #0x18]
- ldr r0, [r1, #8]
- str r0, [sp, #0x14]
- ldr r0, [r1]
- ldr r1, [sp, #0x1c]
- str r0, [sp, #0x20]
- add r0, r4, #0
- bl MOD08_022154D4
- add r6, r0, #0
- beq _02213848
- mov r1, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r7, r0, #0x10
- add r0, r6, #0
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- add r0, r6, #0
- mov r1, #0x29
- bl FUN_0200782C
- sub r0, r5, r0
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
-_02213848:
- add r0, sp, #0x24
- strh r7, [r0]
- strh r5, [r0, #2]
- mov r1, #0
- strh r1, [r0, #4]
- strh r1, [r0, #6]
- mov r0, #0x64
- str r0, [sp, #0x2c]
- mov r0, #1
- str r1, [sp, #0x30]
- str r0, [sp, #0x34]
- str r0, [sp, #0x50]
- str r1, [sp, #0x54]
- add r2, sp, #0x58
- add r3, sp, #0x24
-_02213866:
- ldr r0, [r2]
- add r1, r1, #1
- str r0, [r3, #0x14]
- add r2, r2, #4
- add r3, r3, #4
- cmp r1, #6
- blt _02213866
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- mov r1, #0x4e
- add r0, #0xac
- lsl r1, r1, #2
- ldr r0, [r0]
- ldr r1, [r4, r1]
- add r2, sp, #0x24
- bl FUN_0200C154
- add r7, r0, #0
- cmp r6, #0
- bne _02213898
- mov r1, #0
- bl FUN_0200C644
- b _022138AC
-_02213898:
- add r0, r6, #0
- mov r1, #6
- bl FUN_0200782C
- cmp r0, #1
- bne _022138AC
- add r0, r7, #0
- mov r1, #0
- bl FUN_0200C644
-_022138AC:
- add r0, r4, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _022138CE
- ldr r1, [sp, #0x1c]
- add r0, r4, #0
- bl MOD08_022154A8
- bl MOD08_0222A6C8
- cmp r0, #1
- bne _022138CE
- add r0, r7, #0
- mov r1, #1
- bl FUN_0200C8D0
-_022138CE:
- ldr r1, [sp, #0x1c]
- add r0, r4, #0
- bl MOD08_022154D4
- cmp r0, #0
- beq _022138F0
- ldr r0, [r7]
- bl FUN_02020350
- add r1, r0, #0
- mov r3, #0x32
- ldr r1, [r1, #4]
- ldr r2, [sp, #0x20]
- mov r0, #0x13
- lsl r3, r3, #6
- bl FUN_0201C2C8
-_022138F0:
- ldr r1, [sp, #0x1c]
- add r0, r4, #0
- bl MOD08_022154D4
- cmp r0, #0
- beq _02213926
- ldr r0, [r7]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- mov r1, #2
- str r1, [sp]
- mov r1, #0x20
- lsl r0, r0, #0x14
- str r1, [sp, #4]
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0xc8
- ldr r0, [r0]
- ldr r1, [sp, #0x18]
- ldr r2, [sp, #0x14]
- ldr r3, [r4]
- bl FUN_020030E8
-_02213926:
- ldr r0, [sp, #0xc]
- lsl r5, r0, #2
- mov r0, #0x4f
- lsl r0, r0, #2
- add r6, r4, r0
- ldr r0, [r6, r5]
- cmp r0, #0
- beq _0221393A
- bl ErrorHandling
-_0221393A:
- mov r0, #0x15
- str r7, [r6, r5]
- mov r2, #1
- add r1, r4, r5
- lsl r0, r0, #4
- str r2, [r1, r0]
- ldr r0, [sp, #0x10]
- cmp r0, #1
- bne _02213990
- ldr r1, [sp, #0x1c]
- add r0, r4, #0
- bl MOD08_022154D4
- cmp r0, #0
- beq _02213990
- mov r0, #0x59
- lsl r0, r0, #2
- add r6, r4, r0
- ldr r0, [r4]
- mov r1, #0x10
- bl AllocFromHeap
- str r0, [r6, r5]
- ldr r0, [r6, r5]
- ldr r1, [sp, #0x1c]
- str r7, [r0]
- add r0, r4, #0
- bl MOD08_022154D4
- ldr r1, [r6, r5]
- ldr r2, _02213998 ; =0x00001001
- str r0, [r1, #8]
- ldr r0, [r6, r5]
- mov r1, #0
- strb r1, [r0, #4]
- ldr r0, [r6, r5]
- strb r1, [r0, #5]
- ldr r0, _0221399C ; =MOD08_022133A8
- ldr r1, [r6, r5]
- bl FUN_0200CA44
- ldr r1, [r6, r5]
- str r0, [r1, #0xc]
-_02213990:
- add sp, #0x70
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02213994: .word 0x00004E21
-_02213998: .word 0x00001001
-_0221399C: .word MOD08_022133A8
-
- thumb_func_start MOD08_022139A0
-MOD08_022139A0: ; 0x022139A0
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x18]
- add r0, r0, #4
- str r0, [r4, #0x18]
- mov r0, #0x4e
- lsl r0, r0, #2
- ldr r1, [r4, r0]
- cmp r1, #0
- beq _022139C2
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, #0xac
- ldr r0, [r0]
- bl FUN_0200C398
-_022139C2:
- mov r0, #0x4e
- mov r1, #0
- lsl r0, r0, #2
- str r1, [r4, r0]
- pop {r4, pc}
-
- thumb_func_start MOD08_022139CC
-MOD08_022139CC: ; 0x022139CC
- push {r4, r5, r6, lr}
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- mov r0, #0x4f
- lsl r0, r0, #2
- lsl r4, r1, #2
- add r6, r5, r0
- ldr r0, [r6, r4]
- cmp r0, #0
- beq _022139EE
- bl FUN_0200C3DC
-_022139EE:
- mov r0, #0x15
- mov r2, #0
- add r1, r5, r4
- lsl r0, r0, #4
- str r2, [r1, r0]
- str r2, [r6, r4]
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_022139FC
-MOD08_022139FC: ; 0x022139FC
- push {r3, lr}
- ldr r2, [r1, #0xc]
- cmp r2, #0
- bne _02213A0A
- bl FUN_0200CAB4
- pop {r3, pc}
-_02213A0A:
- mov r0, #0x4e
- ldr r2, [r1]
- lsl r0, r0, #2
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _02213A1C
- ldr r0, [r1, #4]
- bl FUN_0200BC1C
-_02213A1C:
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02213A20
-MOD08_02213A20: ; 0x02213A20
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- add r6, r5, #0
- add r1, r0, #4
- str r1, [r5, #0x18]
- ldr r0, [r1]
- add r6, #0x54
- str r0, [sp]
- add r0, r1, #4
- str r0, [r5, #0x18]
- ldr r2, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- add r0, r5, #0
- lsl r4, r2, #4
- str r0, [sp, #8]
- add r0, #0x4c
- lsl r1, r1, #2
- str r0, [sp, #8]
- str r5, [r0, r4]
- mov r0, #0x4e
- lsl r0, r0, #2
- ldr r3, [r5, r0]
- add r2, r5, r4
- str r3, [r2, #0x50]
- add r1, r5, r1
- add r0, r0, #4
- ldr r0, [r1, r0]
- mov r1, #0
- str r0, [r6, r4]
- mov r0, #1
- str r0, [r2, #0x58]
- ldr r0, [r6, r4]
- bl FUN_0200C644
- add r0, r5, #0
- bl MOD08_0221553C
- cmp r0, #1
- beq _02213A7C
- b _02213BCA
-_02213A7C:
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227468
- str r0, [sp, #4]
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227468
- add r7, r0, #0
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD08_022132C4
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022154D4
- cmp r0, #0
- beq _02213AB8
- mov r1, #6
- bl FUN_0200782C
- b _02213ABA
-_02213AB8:
- mov r0, #0
-_02213ABA:
- cmp r0, #1
- ldr r0, [r6, r4]
- bne _02213AC8
- mov r1, #0
- bl FUN_0200C644
- b _02213ACE
-_02213AC8:
- mov r1, #1
- bl FUN_0200C644
-_02213ACE:
- ldr r0, [sp]
- cmp r0, #3
- bhi _02213BBC
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02213AE0: ; jump table
- .short _02213AE8 - _02213AE0 - 2 ; case 0
- .short _02213B36 - _02213AE0 - 2 ; case 1
- .short _02213B0E - _02213AE0 - 2 ; case 2
- .short _02213B7A - _02213AE0 - 2 ; case 3
-_02213AE8:
- ldr r0, [sp, #4]
- sub r0, r0, #3
- cmp r0, #1
- bhi _02213AFA
- ldr r0, [r6, r4]
- mov r1, #1
- bl FUN_0200C6C4
- b _02213BBC
-_02213AFA:
- add r5, #0x54
- ldr r0, [r5, r4]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r5, r4]
- mov r1, #0xff
- bl FUN_0200C6C4
- b _02213BBC
-_02213B0E:
- ldr r0, [sp, #4]
- cmp r0, #5
- beq _02213B18
- cmp r0, #2
- bne _02213B22
-_02213B18:
- ldr r0, [r6, r4]
- mov r1, #1
- bl FUN_0200C6C4
- b _02213BBC
-_02213B22:
- add r5, #0x54
- ldr r0, [r5, r4]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r5, r4]
- mov r1, #0xff
- bl FUN_0200C6C4
- b _02213BBC
-_02213B36:
- cmp r7, #5
- bhi _02213BBC
- add r0, r7, r7
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02213B46: ; jump table
- .short _02213BBC - _02213B46 - 2 ; case 0
- .short _02213BBC - _02213B46 - 2 ; case 1
- .short _02213B52 - _02213B46 - 2 ; case 2
- .short _02213B5C - _02213B46 - 2 ; case 3
- .short _02213B66 - _02213B46 - 2 ; case 4
- .short _02213B70 - _02213B46 - 2 ; case 5
-_02213B52:
- ldr r0, [r6, r4]
- mov r1, #0xff
- bl FUN_0200C6C4
- b _02213BBC
-_02213B5C:
- ldr r0, [r6, r4]
- mov r1, #1
- bl FUN_0200C6C4
- b _02213BBC
-_02213B66:
- ldr r0, [r6, r4]
- mov r1, #1
- bl FUN_0200C6C4
- b _02213BBC
-_02213B70:
- ldr r0, [r6, r4]
- mov r1, #0xff
- bl FUN_0200C6C4
- b _02213BBC
-_02213B7A:
- cmp r7, #5
- bhi _02213BBC
- add r0, r7, r7
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02213B8A: ; jump table
- .short _02213BBC - _02213B8A - 2 ; case 0
- .short _02213BBC - _02213B8A - 2 ; case 1
- .short _02213B96 - _02213B8A - 2 ; case 2
- .short _02213BA0 - _02213B8A - 2 ; case 3
- .short _02213BAA - _02213B8A - 2 ; case 4
- .short _02213BB4 - _02213B8A - 2 ; case 5
-_02213B96:
- ldr r0, [r6, r4]
- mov r1, #1
- bl FUN_0200C6C4
- b _02213BBC
-_02213BA0:
- ldr r0, [r6, r4]
- mov r1, #0xff
- bl FUN_0200C6C4
- b _02213BBC
-_02213BAA:
- ldr r0, [r6, r4]
- mov r1, #0xff
- bl FUN_0200C6C4
- b _02213BBC
-_02213BB4:
- ldr r0, [r6, r4]
- mov r1, #1
- bl FUN_0200C6C4
-_02213BBC:
- ldr r1, [sp, #8]
- mov r2, #1
- ldr r0, _02213BD0 ; =MOD08_022139FC
- add r1, r1, r4
- lsl r2, r2, #0xc
- bl FUN_0200CA44
-_02213BCA:
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02213BD0: .word MOD08_022139FC
-
- thumb_func_start MOD08_02213BD4
-MOD08_02213BD4: ; 0x02213BD4
- ldr r1, [r0, #0x18]
- mov r2, #0
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r3, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- lsl r1, r3, #4
- add r0, r0, r1
- str r2, [r0, #0x58]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02213BEC
-MOD08_02213BEC: ; 0x02213BEC
- ldr r1, [r0, #0x18]
- ldr r3, _02213BFC ; =MOD08_02213454
- add r2, r1, #4
- str r2, [r0, #0x18]
- ldr r1, [r2]
- add r2, r2, #4
- str r2, [r0, #0x18]
- bx r3
- .align 2, 0
-_02213BFC: .word MOD08_02213454
-
- thumb_func_start MOD08_02213C00
-MOD08_02213C00: ; 0x02213C00
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r3, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- add r0, r0, r3
- add r0, #0x6c
- strb r2, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02213C1C
-MOD08_02213C1C: ; 0x02213C1C
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r3, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- add r0, r0, r3
- add r0, #0x7c
- strb r2, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02213C38
-MOD08_02213C38: ; 0x02213C38
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02213C3C
-MOD08_02213C3C: ; 0x02213C3C
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02213C40
-MOD08_02213C40: ; 0x02213C40
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r5, r0, #0
- ldrh r1, [r1, #0x14]
- add r0, r4, #0
- add r6, r2, #0
- bl MOD08_02227470
- add r7, r0, #0
- add r0, r4, #0
- add r4, #0xc0
- ldr r1, [r4]
- ldrh r1, [r1, #0x16]
- bl MOD08_02227470
- lsl r1, r6, #2
- add r1, r5, r1
- ldr r1, [r1, #0x1c]
- cmp r1, #2
- bne _02213C84
- cmp r7, r0
- bne _02213C7C
- cmp r0, #3
- beq _02213C78
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02213C78:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02213C7C:
- cmp r0, #3
- bne _02213C90
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02213C84:
- cmp r1, #0
- beq _02213C90
- cmp r0, #3
- bne _02213C90
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02213C90:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02213C94
-MOD08_02213C94: ; 0x02213C94
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r7, r0, #0
- add r5, r1, #0
- add r0, r3, #0
- mov r1, #0
- add r4, r2, #0
- str r3, [sp, #0x10]
- bl MOD08_022156AC
- add r1, r0, #0
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- ldr r0, [r5]
- add r2, r5, #0
- str r0, [sp, #0xc]
- add r2, #0xc4
- ldr r2, [r2]
- mov r0, #7
- add r3, r4, #0
- bl FUN_0200687C
- ldr r0, [sp, #0x10]
- mov r1, #1
- bl MOD08_022156AC
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0x90
- str r0, [sp, #8]
- add r0, r5, #0
- add r0, #0xc8
- ldr r0, [r0]
- ldr r3, [r5]
- mov r1, #7
- bl FUN_020030E8
- add r0, r5, #0
- add r0, #0xc4
- lsl r1, r4, #0x18
- ldr r0, [r0]
- lsr r1, r1, #0x18
- bl FUN_02018744
- add r0, r5, #0
- mov r6, #2
- bl MOD08_02212004
- cmp r0, #1
- bne _02213D08
- mov r6, #4
- b _02213D18
-_02213D08:
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #7
- bl MOD08_02213C40
- cmp r0, #1
- bne _02213D18
- mov r6, #3
-_02213D18:
- ldr r0, [sp, #0x10]
- add r1, r6, #0
- bl MOD08_022156AC
- add r1, r0, #0
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- ldr r0, [r5]
- add r5, #0xc4
- str r0, [sp, #0xc]
- ldr r2, [r5]
- mov r0, #7
- add r3, r4, #0
- bl FUN_020068C8
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02213D40
-MOD08_02213D40: ; 0x02213D40
- lsl r0, r0, #0x10
- and r0, r1
- cmp r1, r0
- bne _02213D4C
- mov r0, #1
- bx lr
-_02213D4C:
- mov r0, #0
- bx lr
-
- thumb_func_start MOD08_02213D50
-MOD08_02213D50: ; 0x02213D50
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- ldr r3, _02213DA0 ; =0x0222AA2C
- add r2, sp, #0
- add r5, r0, #0
- add r4, r2, #0
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r7, _02213DA4 ; =0x0222AADC
- mov r6, #0
-_02213D68:
- ldr r0, [r5, #0x18]
- ldr r1, [r4]
- bl MOD08_02213D40
- cmp r0, #0
- beq _02213D92
- ldr r0, [r4]
- mov r1, #0
- lsr r2, r0, #0x10
- cmp r2, #2
- blt _02213D8A
-_02213D7E:
- lsr r0, r2, #0x1f
- add r0, r2, r0
- asr r2, r0, #1
- add r1, r1, #1
- cmp r2, #2
- bge _02213D7E
-_02213D8A:
- lsl r1, r1, #2
- ldr r1, [r7, r1]
- add r0, r5, #0
- blx r1
-_02213D92:
- add r6, r6, #1
- add r4, r4, #4
- cmp r6, #4
- blo _02213D68
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02213DA0: .word 0x0222AA2C
-_02213DA4: .word 0x0222AADC
-
- thumb_func_start MOD08_02213DA8
-MOD08_02213DA8: ; 0x02213DA8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5]
- mov r1, #0x4c
- bl AllocFromHeap
- add r4, r0, #0
- bne _02213DC0
- bl ErrorHandling
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02213DC0:
- mov r1, #0
- mov r2, #0x4c
- bl memset
- mov r0, #0
- str r0, [r4]
- strb r0, [r4, #5]
- str r5, [r4, #0x48]
- strb r0, [r4, #9]
- mov r0, #0x1f
- strb r0, [r4, #0xa]
- mov r0, #0x1d
- strb r0, [r4, #0xb]
- mov r0, #2
- strb r0, [r4, #0xc]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- cmp r0, #1
- bne _02213DFA
- mov r0, #0
- strb r0, [r4, #9]
- mov r0, #0x1f
- strb r0, [r4, #0xa]
- mov r0, #0xf
- strb r0, [r4, #0xb]
- mov r0, #7
- strb r0, [r4, #0xc]
-_02213DFA:
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- cmp r0, #2
- bne _02213E16
- mov r0, #7
- strb r0, [r4, #9]
- mov r0, #0xf
- strb r0, [r4, #0xa]
- mov r0, #0x1d
- strb r0, [r4, #0xb]
- mov r0, #2
- strb r0, [r4, #0xc]
-_02213E16:
- mov r1, #0
- add r2, r5, #0
- add r3, r4, #0
-_02213E1C:
- add r0, r2, #0
- add r0, #0x94
- ldr r0, [r0]
- add r1, r1, #1
- str r0, [r3, #0x1c]
- add r2, r2, #4
- add r3, r3, #4
- cmp r1, #0xa
- blt _02213E1C
- mov r0, #0x5f
- mov r1, #1
- lsl r0, r0, #2
- strb r1, [r5, r0]
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02213E3C
-MOD08_02213E3C: ; 0x02213E3C
- push {r3, r4, r5, lr}
- add r5, r1, #0
- ldrb r0, [r5, #5]
- cmp r0, #0
- beq _02213E50
- cmp r0, #1
- beq _02213E8E
- cmp r0, #2
- beq _02213EE0
- b _02213F2A
-_02213E50:
- ldr r0, [r5, #0x48]
- mov r1, #2
- bl MOD08_0221477C
- ldr r0, [r5, #0x48]
- mov r1, #2
- bl MOD08_02215600
- add r4, r0, #0
- ldr r0, [r5, #0x48]
- mov r1, #1
- bl MOD08_02215600
- lsl r1, r4, #0x18
- mov r0, #3
- lsr r1, r1, #0x18
- bl FUN_020178BC
- lsl r1, r4, #0x18
- mov r0, #2
- lsr r1, r1, #0x18
- bl FUN_020178BC
- mov r0, #2
- mov r1, #1
- bl FUN_0201797C
- ldrb r0, [r5, #5]
- add r0, r0, #1
- strb r0, [r5, #5]
- b _02213F2E
-_02213E8E:
- ldr r0, [r5, #0x48]
- mov r1, #3
- add r0, #0xc4
- ldr r0, [r0]
- mov r2, #2
- add r3, r1, #0
- bl FUN_020170F4
- ldr r0, [r5, #0x48]
- bl MOD08_02212004
- cmp r0, #1
- beq _02213EB8
- ldr r0, [r5, #0x48]
- mov r2, #0
- add r0, #0xc4
- ldr r0, [r0]
- mov r1, #3
- add r3, r2, #0
- bl FUN_020170F4
-_02213EB8:
- ldr r1, [r5, #0x48]
- ldr r3, [r5, #0x10]
- add r0, r5, #0
- mov r2, #3
- bl MOD08_02213C94
- ldrb r0, [r5, #9]
- mov r1, #4
- mov r2, #8
- str r0, [sp]
- ldrb r3, [r5, #0xa]
- ldr r0, _02213F34 ; =0x04000050
- bl G2x_SetBlendAlpha_
- add r0, r5, #0
- bl MOD08_02213D50
- ldrb r0, [r5, #5]
- add r0, r0, #1
- strb r0, [r5, #5]
-_02213EE0:
- ldrb r1, [r5, #9]
- ldrb r0, [r5, #0xb]
- mov r2, #0
- cmp r1, r0
- bhs _02213EF0
- add r0, r1, #2
- strb r0, [r5, #9]
- b _02213EF2
-_02213EF0:
- add r2, r2, #1
-_02213EF2:
- ldrb r1, [r5, #0xa]
- ldrb r0, [r5, #0xc]
- cmp r1, r0
- bls _02213F00
- sub r0, r1, #2
- strb r0, [r5, #0xa]
- b _02213F02
-_02213F00:
- add r2, r2, #1
-_02213F02:
- cmp r2, #2
- bne _02213F14
- ldrb r0, [r5, #0xb]
- strb r0, [r5, #9]
- ldrb r0, [r5, #0xc]
- strb r0, [r5, #0xa]
- ldrb r0, [r5, #5]
- add r0, r0, #1
- strb r0, [r5, #5]
-_02213F14:
- ldrb r0, [r5, #9]
- ldrb r1, [r5, #0xa]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _02213F38 ; =0x04000052
- strh r1, [r0]
- ldrb r0, [r5, #5]
- cmp r0, #2
- beq _02213F2E
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02213F2A:
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02213F2E:
- mov r0, #1
- pop {r3, r4, r5, pc}
- nop
-_02213F34: .word 0x04000050
-_02213F38: .word 0x04000052
-
- thumb_func_start MOD08_02213F3C
-MOD08_02213F3C: ; 0x02213F3C
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r4, r1, #0
- ldrb r0, [r4, #5]
- cmp r0, #4
- bls _02213F4A
- b _0221411C
-_02213F4A:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02213F56: ; jump table
- .short _02213F60 - _02213F56 - 2 ; case 0
- .short _02213F6E - _02213F56 - 2 ; case 1
- .short _02213FB0 - _02213F56 - 2 ; case 2
- .short _02213FF6 - _02213F56 - 2 ; case 3
- .short _022140F8 - _02213F56 - 2 ; case 4
-_02213F60:
- mov r0, #2
- mov r1, #1
- bl FUN_0201797C
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
-_02213F6E:
- ldr r0, [r4, #0x48]
- mov r1, #2
- bl MOD08_02215600
- add r5, r0, #0
- ldr r0, [r4, #0x48]
- mov r1, #1
- bl MOD08_02215600
- lsl r1, r5, #0x18
- mov r0, #3
- lsr r1, r1, #0x18
- bl FUN_020178BC
- lsl r1, r5, #0x18
- mov r0, #2
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldrb r0, [r4, #0xa]
- mov r1, #4
- mov r2, #8
- str r0, [sp]
- ldrb r3, [r4, #9]
- ldr r0, _02214128 ; =0x04000050
- bl G2x_SetBlendAlpha_
- add r0, r4, #0
- bl MOD08_02213D50
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
-_02213FB0:
- ldrb r1, [r4, #9]
- ldrb r0, [r4, #0xb]
- mov r2, #0
- cmp r1, r0
- bhs _02213FC0
- add r0, r1, #2
- strb r0, [r4, #9]
- b _02213FC2
-_02213FC0:
- add r2, r2, #1
-_02213FC2:
- ldrb r1, [r4, #0xa]
- ldrb r0, [r4, #0xc]
- cmp r1, r0
- bls _02213FD0
- sub r0, r1, #2
- strb r0, [r4, #0xa]
- b _02213FD2
-_02213FD0:
- add r2, r2, #1
-_02213FD2:
- cmp r2, #2
- bne _02213FE8
- ldrb r0, [r4, #0xb]
- add r0, r0, #2
- strb r0, [r4, #9]
- ldrb r0, [r4, #0xc]
- sub r0, r0, #2
- strb r0, [r4, #0xa]
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
-_02213FE8:
- ldrb r0, [r4, #0xa]
- ldrb r1, [r4, #9]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221412C ; =0x04000052
- strh r1, [r0]
- b _02214122
-_02213FF6:
- add r0, r4, #0
- add r0, #0x44
- ldrh r0, [r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- cmp r0, #1
- bne _0221400A
- ldr r0, [r4, #0x48]
- bl MOD08_02214524
-_0221400A:
- add r0, r4, #0
- add r0, #0x44
- ldrh r0, [r0]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- cmp r0, #1
- bne _0221401E
- ldr r0, [r4, #0x48]
- bl MOD08_02214524
-_0221401E:
- ldr r0, [r4, #0x48]
- mov r2, #0
- add r0, #0xc4
- ldr r0, [r0]
- mov r1, #3
- add r3, r2, #0
- bl FUN_020179E0
- ldr r0, [r4, #0x48]
- mov r1, #3
- add r0, #0xc4
- ldr r0, [r0]
- add r2, r1, #0
- mov r3, #0
- bl FUN_020179E0
- ldr r0, [r4, #0x48]
- mov r1, #3
- add r0, #0xc4
- ldr r0, [r0]
- mov r2, #2
- mov r3, #4
- bl FUN_020170F4
- ldr r0, [r4, #0x48]
- bl MOD08_02212004
- cmp r0, #0
- bne _02214078
- ldr r0, [r4, #0x48]
- mov r1, #3
- add r0, #0xc4
- ldr r0, [r0]
- mov r2, #0
- mov r3, #1
- bl FUN_020170F4
- ldr r0, [r4, #0x48]
- mov r1, #3
- bl MOD08_02215638
- ldr r0, [r4, #0x48]
- bl MOD08_02215660
- b _022140CC
-_02214078:
- ldr r2, [r4, #0x48]
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- ldr r0, [r2]
- mov r1, #0x61
- lsl r1, r1, #2
- str r0, [sp, #0xc]
- ldr r0, [r2, r1]
- add r1, r1, #4
- ldr r1, [r2, r1]
- add r2, #0xc4
- ldr r2, [r2]
- mov r3, #3
- bl FUN_0200687C
- mov r2, #0x66
- lsl r2, r2, #2
- add r1, r2, #0
- ldr r3, [r4, #0x48]
- mov r0, #0
- str r0, [sp]
- ldr r0, [r3, r2]
- sub r1, #0x14
- lsl r0, r0, #5
- str r0, [sp, #4]
- sub r0, r2, #4
- ldr r0, [r3, r0]
- sub r2, #0xc
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- add r0, r3, #0
- add r0, #0xc8
- ldr r0, [r0]
- ldr r1, [r3, r1]
- ldr r2, [r3, r2]
- ldr r3, [r3]
- bl FUN_020030E8
-_022140CC:
- ldr r2, [r4, #0x48]
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- ldr r0, [r2]
- mov r1, #0x61
- lsl r1, r1, #2
- str r0, [sp, #0xc]
- ldr r0, [r2, r1]
- add r1, #0xc
- ldr r1, [r2, r1]
- add r2, #0xc4
- ldr r2, [r2]
- mov r3, #3
- bl FUN_020068C8
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
- b _02214122
-_022140F8:
- ldr r0, [r4, #0x48]
- bl MOD08_02212004
- cmp r0, #0
- bne _02214108
- bl MOD11_02231678
- b _0221410C
-_02214108:
- bl MOD12_02233560
-_0221410C:
- ldr r0, [r4, #0x48]
- mov r1, #2
- bl MOD08_02214850
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
- b _02214122
-_0221411C:
- add sp, #0x10
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02214122:
- mov r0, #1
- add sp, #0x10
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02214128: .word 0x04000050
-_0221412C: .word 0x04000052
-
- thumb_func_start MOD08_02214130
-MOD08_02214130: ; 0x02214130
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- ldrb r0, [r4, #5]
- cmp r0, #0
- beq _02214142
- cmp r0, #1
- beq _022141BE
- b _0221423A
-_02214142:
- ldrb r0, [r4, #0xd]
- ldr r2, [r4, #0x48]
- cmp r0, #0
- bne _02214180
- mov r3, #0
- str r3, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- mov r5, #0x67
- add r0, r2, #0
- str r3, [sp, #8]
- lsl r5, r5, #2
- ldr r2, [r2, r5]
- add r0, #0xc8
- lsl r2, r2, #0x10
- ldr r0, [r0]
- mov r1, #1
- lsr r2, r2, #0x10
- bl FUN_02003210
- mov r1, #0
- str r1, [sp]
- ldr r0, [r4, #0x48]
- add r2, r5, #0
- add r0, #0xc8
- ldr r0, [r0]
- add r2, #0x64
- mov r3, #0x10
- bl FUN_02003A64
- b _022141B8
-_02214180:
- mov r3, #0
- str r3, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- ldr r0, _02214254 ; =0x0000FFFF
- mov r5, #0x67
- str r0, [sp, #8]
- add r0, r2, #0
- lsl r5, r5, #2
- ldr r2, [r2, r5]
- add r0, #0xc8
- lsl r2, r2, #0x10
- ldr r0, [r0]
- mov r1, #1
- lsr r2, r2, #0x10
- bl FUN_02003210
- ldr r0, _02214254 ; =0x0000FFFF
- add r2, r5, #0
- str r0, [sp]
- ldr r0, [r4, #0x48]
- mov r1, #0
- add r0, #0xc8
- ldr r0, [r0]
- add r2, #0x64
- mov r3, #0x10
- bl FUN_02003A64
-_022141B8:
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
-_022141BE:
- ldr r0, [r4, #0x48]
- add r0, #0xc8
- ldr r0, [r0]
- bl FUN_020038E4
- cmp r0, #0
- bne _0221424E
- ldr r0, [r4, #0x48]
- mov r2, #0
- add r0, #0xc4
- ldr r0, [r0]
- mov r1, #3
- add r3, r2, #0
- bl FUN_020170F4
- ldr r1, [r4, #0x48]
- ldr r3, [r4, #0x10]
- add r0, r4, #0
- mov r2, #3
- bl MOD08_02213C94
- ldrb r0, [r4, #0xd]
- cmp r0, #0
- bne _02214208
- mov r0, #0x10
- str r0, [sp]
- mov r3, #0
- str r3, [sp, #4]
- str r3, [sp, #8]
- ldr r0, [r4, #0x48]
- mov r1, #1
- add r0, #0xc8
- ldr r0, [r0]
- lsl r2, r1, #9
- bl FUN_02003210
- b _02214222
-_02214208:
- mov r0, #0x10
- str r0, [sp]
- mov r3, #0
- ldr r0, _02214254 ; =0x0000FFFF
- str r3, [sp, #4]
- str r0, [sp, #8]
- ldr r0, [r4, #0x48]
- mov r1, #1
- add r0, #0xc8
- ldr r0, [r0]
- lsl r2, r1, #9
- bl FUN_02003210
-_02214222:
- add r0, r4, #0
- bl MOD08_02213D50
- mov r0, #0x5f
- ldr r1, [r4, #0x48]
- mov r2, #2
- lsl r0, r0, #2
- strb r2, [r1, r0]
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
- b _0221424E
-_0221423A:
- ldr r0, [r4, #0x48]
- add r0, #0xc8
- ldr r0, [r0]
- bl FUN_020038E4
- cmp r0, #0
- bne _0221424E
- add sp, #0xc
- mov r0, #0
- pop {r4, r5, pc}
-_0221424E:
- mov r0, #1
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-_02214254: .word 0x0000FFFF
-
- thumb_func_start MOD08_02214258
-MOD08_02214258: ; 0x02214258
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r4, r1, #0
- ldrb r0, [r4, #5]
- cmp r0, #3
- bls _02214266
- b _02214462
-_02214266:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02214272: ; jump table
- .short _0221427A - _02214272 - 2 ; case 0
- .short _02214286 - _02214272 - 2 ; case 1
- .short _02214300 - _02214272 - 2 ; case 2
- .short _022143F0 - _02214272 - 2 ; case 3
-_0221427A:
- add r0, r4, #0
- bl MOD08_02213D50
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
-_02214286:
- ldrb r0, [r4, #0xd]
- cmp r0, #0
- bne _022142C2
- mov r3, #0
- str r3, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r3, [sp, #8]
- ldr r0, [r4, #0x48]
- mov r1, #1
- add r0, #0xc8
- ldr r0, [r0]
- lsl r2, r1, #9
- bl FUN_02003210
- ldr r3, [r4, #0x48]
- mov r1, #0
- mov r2, #0x67
- add r0, r3, #0
- str r1, [sp]
- lsl r2, r2, #2
- ldr r2, [r3, r2]
- add r0, #0xc8
- lsl r2, r2, #0x10
- ldr r0, [r0]
- lsr r2, r2, #0x10
- mov r3, #0x10
- bl FUN_02003A64
- b _022142FA
-_022142C2:
- mov r3, #0
- str r3, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- ldr r0, _0221448C ; =0x0000FFFF
- mov r1, #1
- str r0, [sp, #8]
- ldr r0, [r4, #0x48]
- lsl r2, r1, #9
- add r0, #0xc8
- ldr r0, [r0]
- bl FUN_02003210
- mov r2, #0x67
- ldr r3, [r4, #0x48]
- ldr r0, _0221448C ; =0x0000FFFF
- lsl r2, r2, #2
- str r0, [sp]
- add r0, r3, #0
- ldr r2, [r3, r2]
- add r0, #0xc8
- lsl r2, r2, #0x10
- ldr r0, [r0]
- mov r1, #0
- lsr r2, r2, #0x10
- mov r3, #0x10
- bl FUN_02003A64
-_022142FA:
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
-_02214300:
- ldr r0, [r4, #0x48]
- add r0, #0xc8
- ldr r0, [r0]
- bl FUN_020038E4
- cmp r0, #0
- beq _02214310
- b _02214486
-_02214310:
- add r0, r4, #0
- add r0, #0x44
- ldrh r0, [r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- cmp r0, #1
- bne _02214324
- ldr r0, [r4, #0x48]
- bl MOD08_02214524
-_02214324:
- add r0, r4, #0
- add r0, #0x44
- ldrh r0, [r0]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- cmp r0, #1
- bne _02214338
- ldr r0, [r4, #0x48]
- bl MOD08_02214524
-_02214338:
- mov r0, #3
- mov r1, #0
- bl FUN_0201797C
- ldr r0, [r4, #0x48]
- bl MOD08_02212004
- cmp r0, #0
- bne _0221436A
- ldr r0, [r4, #0x48]
- mov r1, #3
- add r0, #0xc4
- ldr r0, [r0]
- mov r2, #0
- mov r3, #1
- bl FUN_020170F4
- ldr r0, [r4, #0x48]
- mov r1, #3
- bl MOD08_02215638
- ldr r0, [r4, #0x48]
- bl MOD08_02215660
- b _022143BE
-_0221436A:
- ldr r2, [r4, #0x48]
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- ldr r0, [r2]
- mov r1, #0x61
- lsl r1, r1, #2
- str r0, [sp, #0xc]
- ldr r0, [r2, r1]
- add r1, r1, #4
- ldr r1, [r2, r1]
- add r2, #0xc4
- ldr r2, [r2]
- mov r3, #3
- bl FUN_0200687C
- mov r2, #0x66
- lsl r2, r2, #2
- add r1, r2, #0
- ldr r3, [r4, #0x48]
- mov r0, #0
- str r0, [sp]
- ldr r0, [r3, r2]
- sub r1, #0x14
- lsl r0, r0, #5
- str r0, [sp, #4]
- sub r0, r2, #4
- ldr r0, [r3, r0]
- sub r2, #0xc
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- add r0, r3, #0
- add r0, #0xc8
- ldr r0, [r0]
- ldr r1, [r3, r1]
- ldr r2, [r3, r2]
- ldr r3, [r3]
- bl FUN_020030E8
-_022143BE:
- ldr r2, [r4, #0x48]
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- ldr r0, [r2]
- mov r1, #0x61
- lsl r1, r1, #2
- str r0, [sp, #0xc]
- ldr r0, [r2, r1]
- add r1, #0xc
- ldr r1, [r2, r1]
- add r2, #0xc4
- ldr r2, [r2]
- mov r3, #3
- bl FUN_020068C8
- mov r0, #3
- mov r1, #1
- bl FUN_0201797C
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
-_022143F0:
- ldr r0, [r4, #0x48]
- mov r2, #0
- add r0, #0xc4
- ldr r0, [r0]
- mov r1, #3
- add r3, r2, #0
- bl FUN_020179E0
- ldr r0, [r4, #0x48]
- mov r1, #3
- add r0, #0xc4
- ldr r0, [r0]
- add r2, r1, #0
- mov r3, #0
- bl FUN_020179E0
- ldrb r0, [r4, #0xd]
- ldr r2, [r4, #0x48]
- cmp r0, #0
- bne _0221443A
- mov r0, #0x10
- str r0, [sp]
- mov r3, #0
- str r3, [sp, #4]
- mov r5, #0x67
- add r0, r2, #0
- str r3, [sp, #8]
- lsl r5, r5, #2
- ldr r2, [r2, r5]
- add r0, #0xc8
- lsl r2, r2, #0x10
- ldr r0, [r0]
- mov r1, #1
- lsr r2, r2, #0x10
- bl FUN_02003210
- b _0221445C
-_0221443A:
- mov r0, #0x10
- str r0, [sp]
- mov r3, #0
- mov r5, #0x67
- ldr r0, _0221448C ; =0x0000FFFF
- str r3, [sp, #4]
- str r0, [sp, #8]
- add r0, r2, #0
- lsl r5, r5, #2
- ldr r2, [r2, r5]
- add r0, #0xc8
- lsl r2, r2, #0x10
- ldr r0, [r0]
- mov r1, #1
- lsr r2, r2, #0x10
- bl FUN_02003210
-_0221445C:
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
-_02214462:
- ldr r0, [r4, #0x48]
- add r0, #0xc8
- ldr r0, [r0]
- bl FUN_020038E4
- cmp r0, #0
- bne _02214486
- mov r0, #0x5f
- ldr r1, [r4, #0x48]
- mov r2, #2
- lsl r0, r0, #2
- strb r2, [r1, r0]
- ldrb r0, [r4, #5]
- add sp, #0x10
- add r0, r0, #1
- strb r0, [r4, #5]
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02214486:
- mov r0, #1
- add sp, #0x10
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221448C: .word 0x0000FFFF
-
- thumb_func_start MOD08_02214490
-MOD08_02214490: ; 0x02214490
- push {r3, lr}
- add r0, r1, #0
- bl MOD08_02213D50
- mov r0, #0
- pop {r3, pc}
-
- thumb_func_start MOD08_0221449C
-MOD08_0221449C: ; 0x0221449C
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- bl MOD08_02213D50
- add r0, r4, #0
- add r0, #0x44
- ldrh r0, [r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- cmp r0, #1
- bne _022144BA
- ldr r0, [r4, #0x48]
- bl MOD08_02214524
-_022144BA:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022144C0
-MOD08_022144C0: ; 0x022144C0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0x18]
- cmp r0, #1
- bne _022144DA
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
-_022144DA:
- mov r3, #4
- mov r1, #8
- ldrsh r2, [r4, r3]
- ldrsh r0, [r4, r1]
- add r0, r2, r0
- strh r0, [r4, #4]
- mov r0, #6
- ldrsh r2, [r4, r0]
- mov r0, #0xa
- ldrsh r0, [r4, r0]
- add r0, r2, r0
- strh r0, [r4, #6]
- ldrsh r0, [r4, r1]
- cmp r0, #0
- beq _02214508
- ldr r1, [r4, #0xc]
- ldrsh r3, [r4, r3]
- lsl r1, r1, #0x18
- ldr r0, [r4]
- lsr r1, r1, #0x18
- mov r2, #0
- bl FUN_020179E0
-_02214508:
- mov r0, #0xa
- ldrsh r0, [r4, r0]
- cmp r0, #0
- beq _02214522
- ldr r1, [r4, #0xc]
- mov r3, #6
- lsl r1, r1, #0x18
- ldrsh r3, [r4, r3]
- ldr r0, [r4]
- lsr r1, r1, #0x18
- mov r2, #3
- bl FUN_020179E0
-_02214522:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02214524
-MOD08_02214524: ; 0x02214524
- push {r4, lr}
- add r4, r0, #0
- bne _0221452E
- bl ErrorHandling
-_0221452E:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- cmp r1, #0
- beq _0221453C
- mov r0, #1
- str r0, [r1, #0x18]
-_0221453C:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02214540
-MOD08_02214540: ; 0x02214540
- mov r1, #0x67
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD08_02214548
-MOD08_02214548: ; 0x02214548
- mov r0, #0
- bx lr
-
- thumb_func_start MOD08_0221454C
-MOD08_0221454C: ; 0x0221454C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #0x48]
- mov r1, #0x20
- ldr r0, [r0]
- bl AllocFromHeap
- add r4, r0, #0
- ldr r0, [r5, #0x48]
- mov r2, #6
- add r0, #0xc4
- ldr r0, [r0]
- str r0, [r4]
- ldr r0, [r5, #0x48]
- add r0, #0x9c
- ldr r0, [r0]
- strh r0, [r4, #4]
- ldr r0, [r5, #0x48]
- add r0, #0xa0
- ldr r0, [r0]
- strh r0, [r4, #6]
- ldr r0, [r5, #0x48]
- add r0, #0x94
- ldr r0, [r0]
- strh r0, [r4, #8]
- ldr r0, [r5, #0x48]
- add r0, #0x98
- ldr r0, [r0]
- strh r0, [r4, #0xa]
- mov r0, #3
- str r0, [r4, #0xc]
- str r0, [r4, #0x10]
- ldr r1, [r5, #0x48]
- add r0, r5, #0
- bl MOD08_02213C40
- cmp r0, #1
- bne _022145C0
- mov r0, #8
- ldrsh r1, [r4, r0]
- sub r0, #9
- mul r0, r1
- strh r0, [r4, #8]
- mov r0, #0xa
- ldrsh r1, [r4, r0]
- sub r0, #0xb
- mul r0, r1
- strh r0, [r4, #0xa]
- mov r0, #4
- ldrsh r1, [r4, r0]
- sub r0, r0, #5
- mul r0, r1
- strh r0, [r4, #4]
- mov r0, #6
- ldrsh r1, [r4, r0]
- sub r0, r0, #7
- mul r0, r1
- strh r0, [r4, #6]
-_022145C0:
- mov r0, #1
- str r0, [r4, #0x14]
- mov r1, #0
- str r1, [r4, #0x18]
- mov r1, #6
- ldr r2, [r5, #0x48]
- lsl r1, r1, #6
- str r4, [r2, r1]
- add r1, r5, #0
- add r1, #0x44
- ldrh r2, [r1]
- mov r1, #1
- add r5, #0x44
- bic r2, r1
- orr r0, r2
- strh r0, [r5]
- ldr r0, _022145F0 ; =MOD08_022144C0
- ldr r2, _022145F4 ; =0x00001001
- add r1, r4, #0
- bl FUN_0200CA44
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_022145F0: .word MOD08_022144C0
-_022145F4: .word 0x00001001
-
- thumb_func_start MOD08_022145F8
-MOD08_022145F8: ; 0x022145F8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- ldr r4, [r0, #0x48]
- str r0, [sp]
- ldr r0, [r4]
- mov r1, #0x20
- bl AllocFromHeap
- add r6, r0, #0
- ldr r0, [r4]
- mov r1, #0xc4
- bl AllocFromHeap
- str r0, [r6, #0x1c]
- mov r0, #6
- lsl r0, r0, #6
- str r6, [r4, r0]
- ldr r0, [sp]
- mov r1, #2
- add r0, #0x44
- ldrh r0, [r0]
- add r2, r0, #0
- ldr r0, [sp]
- orr r2, r1
- add r0, #0x44
- strh r2, [r0]
- mov r0, #0
- str r0, [r6, #0x18]
- add r0, r4, #0
- bl MOD08_022155C4
- bl MOD08_022189A0
- add r5, r0, #0
- mov r0, #0
- add r1, r0, #0
- bl MOD08_02218998
- add r1, r0, #0
- ldr r2, [r4]
- add r0, r5, #0
- bl MOD08_022187F4
- mov r4, #0
- ldr r1, [r6, #0x1c]
- ldr r7, _022146C8 ; =0x0222AAF8
- add r1, #0xc0
- str r0, [r1]
- str r4, [sp, #4]
- add r5, r4, #0
-_0221465C:
- ldr r0, [r6, #0x1c]
- strh r4, [r0, r5]
- ldr r0, [r6, #0x1c]
- add r1, r0, r5
- ldrsh r0, [r0, r5]
- add r0, #8
- strh r0, [r1, #2]
- mov r0, #0
- ldrsh r1, [r7, r0]
- ldr r0, [r6, #0x1c]
- add r0, r0, r5
- strh r1, [r0, #4]
- ldr r0, [r6, #0x1c]
- add r1, r0, r5
- mov r0, #0
- strh r0, [r1, #6]
- add r1, r0, #0
- bl MOD08_02218998
- ldr r1, [r6, #0x1c]
- mov r2, #6
- add r1, r1, r5
- str r0, [r1, #8]
- ldr r0, [sp]
- add r1, r0, #0
- ldr r1, [r1, #0x48]
- bl MOD08_02213C40
- cmp r0, #1
- bne _022146A6
- ldr r0, [r6, #0x1c]
- mov r1, #4
- add r0, r0, r5
- ldrsh r2, [r0, r1]
- sub r1, r1, #5
- mul r1, r2
- strh r1, [r0, #4]
-_022146A6:
- ldr r0, [sp, #4]
- add r4, #8
- add r0, r0, #1
- add r5, #0xc
- add r7, r7, #2
- str r0, [sp, #4]
- cmp r0, #0x10
- blt _0221465C
- mov r2, #1
- ldr r0, _022146CC ; =MOD08_022146E4
- add r1, r6, #0
- lsl r2, r2, #0xc
- bl FUN_0200CA44
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022146C8: .word 0x0222AAF8
-_022146CC: .word MOD08_022146E4
-
- thumb_func_start MOD08_022146D0
-MOD08_022146D0: ; 0x022146D0
- add r1, r0, #0
- add r1, #0x44
- ldrh r2, [r1]
- mov r1, #2
- add r0, #0x44
- orr r1, r2
- strh r1, [r0]
- mov r0, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022146E4
-MOD08_022146E4: ; 0x022146E4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- add r6, r0, #0
- ldr r0, [r5, #0x18]
- ldr r4, [r5, #0x1c]
- cmp r0, #1
- bne _02214712
- add r4, #0xc0
- ldr r0, [r4]
- bl MOD08_02218870
- ldr r0, [r5, #0x1c]
- bl FreeToHeap
- add r0, r5, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_02214712:
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- bl MOD08_02218894
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
-_02214722:
- mov r0, #6
- ldrsh r1, [r4, r0]
- mov r0, #4
- ldrsh r0, [r4, r0]
- add r0, r1, r0
- strh r0, [r4, #6]
- mov r0, #0
- ldrsh r6, [r4, r0]
- mov r0, #2
- ldrsh r0, [r4, r0]
- cmp r6, r0
- bge _0221476A
- ldr r0, [sp]
- lsl r1, r6, #2
- add r5, r0, r1
- mov r7, #2
-_02214742:
- ldr r1, [r4, #8]
- mov r2, #6
- lsl r0, r1, #0x10
- asr r1, r1, #0x10
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- lsl r1, r1, #0x10
- ldrsh r2, [r4, r2]
- asr r0, r0, #0x10
- lsr r1, r1, #0x10
- add r0, r0, r2
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl MOD08_02218998
- stmia r5!, {r0}
- ldrsh r0, [r4, r7]
- add r6, r6, #1
- cmp r6, r0
- blt _02214742
-_0221476A:
- ldr r0, [sp, #4]
- add r4, #0xc
- add r0, r0, #1
- str r0, [sp, #4]
- cmp r0, #0x10
- blt _02214722
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221477C
-MOD08_0221477C: ; 0x0221477C
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r4, r1, #0
- mov r1, #2
- add r5, r0, #0
- bl MOD08_02215600
- add r1, r0, #0
- lsl r0, r4, #0x18
- lsl r1, r1, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_020178BC
- lsl r0, r4, #0x18
- lsr r0, r0, #0x18
- mov r1, #0
- bl FUN_0201797C
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _022147C0
- add r0, r5, #0
- add r0, #0xc4
- lsl r1, r4, #0x18
- ldr r0, [r0]
- lsr r1, r1, #0x18
- mov r2, #2
- mov r3, #4
- bl FUN_020170F4
- b _022147E4
-_022147C0:
- add r0, r5, #0
- add r0, #0xc4
- lsl r1, r4, #0x18
- ldr r0, [r0]
- lsr r1, r1, #0x18
- mov r2, #0
- mov r3, #1
- bl FUN_020170F4
- add r0, r5, #0
- add r0, #0xc4
- lsl r1, r4, #0x18
- ldr r0, [r0]
- lsr r1, r1, #0x18
- mov r2, #2
- mov r3, #4
- bl FUN_020170F4
-_022147E4:
- add r0, r5, #0
- add r0, #0xc4
- lsl r1, r4, #0x18
- ldr r0, [r0]
- lsr r1, r1, #0x18
- bl FUN_02018744
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02214822
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- ldr r0, [r5]
- mov r1, #0x61
- add r2, r5, #0
- lsl r1, r1, #2
- str r0, [sp, #0xc]
- ldr r0, [r5, r1]
- add r1, r1, #4
- add r2, #0xc4
- ldr r1, [r5, r1]
- ldr r2, [r2]
- add r3, r4, #0
- bl FUN_0200687C
- b _0221482A
-_02214822:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02215638
-_0221482A:
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- ldr r0, [r5]
- mov r1, #0x61
- lsl r1, r1, #2
- str r0, [sp, #0xc]
- ldr r0, [r5, r1]
- add r1, #0xc
- ldr r1, [r5, r1]
- add r5, #0xc4
- ldr r2, [r5]
- add r3, r4, #0
- bl FUN_020068C8
- add sp, #0x10
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02214850
-MOD08_02214850: ; 0x02214850
- push {r3, r4, r5, lr}
- add r4, r1, #0
- mov r1, #1
- add r5, r0, #0
- bl MOD08_02215600
- add r1, r0, #0
- lsl r0, r4, #0x18
- lsl r1, r1, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_020178BC
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02214888
- add r0, r5, #0
- add r0, #0xc4
- lsl r1, r4, #0x18
- ldr r0, [r0]
- lsr r1, r1, #0x18
- mov r2, #2
- mov r3, #3
- bl FUN_020170F4
- b _022148AC
-_02214888:
- add r0, r5, #0
- add r0, #0xc4
- lsl r1, r4, #0x18
- mov r2, #0
- ldr r0, [r0]
- lsr r1, r1, #0x18
- add r3, r2, #0
- bl FUN_020170F4
- add r0, r5, #0
- add r0, #0xc4
- lsl r1, r4, #0x18
- ldr r0, [r0]
- lsr r1, r1, #0x18
- mov r2, #2
- mov r3, #3
- bl FUN_020170F4
-_022148AC:
- add r5, #0xc4
- lsl r1, r4, #0x18
- ldr r0, [r5]
- lsr r1, r1, #0x18
- bl FUN_02018744
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022148BC
-MOD08_022148BC: ; 0x022148BC
- add r1, r0, #0
- add r1, #0x44
- ldrh r2, [r1]
- mov r1, #1
- add r0, #0x44
- bic r2, r1
- mov r1, #1
- orr r1, r2
- strh r1, [r0]
- mov r0, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022148D4
-MOD08_022148D4: ; 0x022148D4
- push {r3, lr}
- ldr r0, [r0, #0x48]
- bl MOD08_02214524
- mov r0, #0
- pop {r3, pc}
-
- thumb_func_start MOD08_022148E0
-MOD08_022148E0: ; 0x022148E0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldr r2, [r4, #0x14]
- add r5, r0, #0
- lsl r3, r2, #2
- ldr r2, _0221490C ; =0x0222AA64
- ldr r2, [r2, r3]
- blx r2
- cmp r0, #0
- bne _0221490A
- mov r0, #0x5f
- ldr r1, [r4, #0x48]
- mov r2, #0
- lsl r0, r0, #2
- strb r2, [r1, r0]
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_0221490A:
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221490C: .word 0x0222AA64
-
- thumb_func_start MOD08_02214910
-MOD08_02214910: ; 0x02214910
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl MOD08_02213DA8
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- strb r0, [r4, #0xd]
- ldr r0, [r5, #0x18]
- ldr r2, _02214954 ; =0x0000044C
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- str r0, [r4, #0x10]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- lsl r0, r1, #0x10
- lsr r0, r0, #0x10
- str r0, [r4, #0x14]
- ldr r0, _02214958 ; =0xFFFF0000
- and r0, r1
- lsr r0, r0, #0x10
- str r0, [r4, #0x18]
- ldr r0, _0221495C ; =MOD08_022148E0
- add r1, r4, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02214954: .word 0x0000044C
-_02214958: .word 0xFFFF0000
-_0221495C: .word MOD08_022148E0
-
- thumb_func_start MOD08_02214960
-MOD08_02214960: ; 0x02214960
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r3, [r1]
- add r2, r1, #4
- str r2, [r0, #0x18]
- ldr r1, [r2]
- add r2, r2, #4
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- str r2, [r0, #0x18]
- cmp r3, #3
- bhi _022149B4
- add r2, r3, r3
- add r2, pc
- ldrh r2, [r2, #6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_02214986: ; jump table
- .short _0221498E - _02214986 - 2 ; case 0
- .short _02214998 - _02214986 - 2 ; case 1
- .short _022149A2 - _02214986 - 2 ; case 2
- .short _022149AC - _02214986 - 2 ; case 3
-_0221498E:
- mov r2, #6
- lsl r2, r2, #6
- ldr r0, [r0, r2]
- strh r1, [r0, #8]
- bx lr
-_02214998:
- mov r2, #6
- lsl r2, r2, #6
- ldr r0, [r0, r2]
- strh r1, [r0, #0xa]
- bx lr
-_022149A2:
- mov r2, #6
- lsl r2, r2, #6
- ldr r0, [r0, r2]
- strh r1, [r0, #4]
- bx lr
-_022149AC:
- mov r2, #6
- lsl r2, r2, #6
- ldr r0, [r0, r2]
- strh r1, [r0, #4]
-_022149B4:
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022149B8
-MOD08_022149B8: ; 0x022149B8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl MOD08_02213DA8
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- strb r0, [r4, #0xd]
- ldr r0, [r5, #0x18]
- ldr r2, _02214A00 ; =0x0000044C
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- str r0, [r4, #0x10]
- ldr r0, [r5, #0x18]
- add r1, r0, #4
- str r1, [r5, #0x18]
- ldr r0, [r1]
- add r1, r1, #4
- str r1, [r5, #0x18]
- lsl r1, r0, #0x10
- lsr r1, r1, #0x10
- add r1, r1, #3
- str r1, [r4, #0x14]
- ldr r1, _02214A04 ; =0xFFFF0000
- and r0, r1
- lsr r0, r0, #0x10
- str r0, [r4, #0x18]
- ldr r0, _02214A08 ; =MOD08_022148E0
- add r1, r4, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, pc}
- nop
-_02214A00: .word 0x0000044C
-_02214A04: .word 0xFFFF0000
-_02214A08: .word MOD08_022148E0
-
- thumb_func_start MOD08_02214A0C
-MOD08_02214A0C: ; 0x02214A0C
- mov r1, #0x5f
- lsl r1, r1, #2
- ldrb r1, [r0, r1]
- cmp r1, #2
- bne _02214A24
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- mov r1, #0
- add r0, #0x8d
- strb r1, [r0]
- bx lr
-_02214A24:
- mov r1, #1
- add r0, #0x8d
- strb r1, [r0]
- bx lr
-
- thumb_func_start MOD08_02214A2C
-MOD08_02214A2C: ; 0x02214A2C
- mov r1, #0x5f
- lsl r1, r1, #2
- ldrb r1, [r0, r1]
- cmp r1, #0
- bne _02214A44
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- mov r1, #0
- add r0, #0x8d
- strb r1, [r0]
- bx lr
-_02214A44:
- mov r1, #1
- add r0, #0x8d
- strb r1, [r0]
- bx lr
-
- thumb_func_start MOD08_02214A4C
-MOD08_02214A4C: ; 0x02214A4C
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- mov r1, #0
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r4, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- add r0, r4, #0
- bl MOD08_022156AC
- add r1, r0, #0
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- ldr r0, [r5]
- add r2, r5, #0
- str r0, [sp, #0xc]
- add r2, #0xc4
- ldr r2, [r2]
- mov r0, #7
- mov r3, #3
- bl FUN_0200687C
- add r0, r4, #0
- mov r1, #1
- bl MOD08_022156AC
- mov r2, #0
- str r2, [sp]
- add r1, r0, #0
- ldr r0, [r5]
- add r3, r2, #0
- str r0, [sp, #4]
- mov r0, #7
- bl FUN_02006930
- add r0, r4, #0
- mov r1, #2
- bl MOD08_022156AC
- add r1, r0, #0
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- ldr r0, [r5]
- add r5, #0xc4
- str r0, [sp, #0xc]
- ldr r2, [r5]
- mov r0, #7
- mov r3, #3
- bl FUN_020068C8
- add sp, #0x10
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02214AC8
-MOD08_02214AC8: ; 0x02214AC8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- bl MOD08_02213DA8
- add r4, r0, #0
- ldr r0, [r5, #0x18]
- add r1, r0, #4
- str r1, [r5, #0x18]
- ldr r0, [r1]
- str r0, [sp]
- add r0, r1, #4
- str r0, [r5, #0x18]
- ldr r7, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r6, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02214AFA
- str r6, [r4, #0x10]
- b _02214B12
-_02214AFA:
- add r0, r5, #0
- add r5, #0xc0
- ldr r1, [r5]
- ldrh r1, [r1, #0x16]
- bl MOD08_02227470
- cmp r0, #3
- bne _02214B0E
- str r7, [r4, #0x10]
- b _02214B12
-_02214B0E:
- ldr r0, [sp]
- str r0, [r4, #0x10]
-_02214B12:
- ldr r0, _02214B20 ; =MOD08_022148E0
- ldr r2, _02214B24 ; =0x0000044C
- add r1, r4, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02214B20: .word MOD08_022148E0
-_02214B24: .word 0x0000044C
-
- thumb_func_start MOD08_02214B28
-MOD08_02214B28: ; 0x02214B28
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02214B2C
-MOD08_02214B2C: ; 0x02214B2C
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02214B30
-MOD08_02214B30: ; 0x02214B30
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02214B34
-MOD08_02214B34: ; 0x02214B34
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02214B38
-MOD08_02214B38: ; 0x02214B38
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02214B3C
-MOD08_02214B3C: ; 0x02214B3C
- ldr r1, [r0, #0x18]
- ldr r3, _02214B50 ; =FUN_020054C8
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- lsl r0, r2, #0x10
- lsr r0, r0, #0x10
- bx r3
- .align 2, 0
-_02214B50: .word FUN_020054C8
-
- thumb_func_start MOD08_02214B54
-MOD08_02214B54: ; 0x02214B54
- ldr r1, [r0, #0x18]
- ldr r3, _02214B6C ; =FUN_020054F0
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- lsl r0, r2, #0x10
- lsr r0, r0, #0x10
- mov r1, #0
- bx r3
- nop
-_02214B6C: .word FUN_020054F0
-
- thumb_func_start MOD08_02214B70
-MOD08_02214B70: ; 0x02214B70
- push {r3, r4, r5, lr}
- ldr r1, [r0, #0x18]
- add r2, r1, #4
- str r2, [r0, #0x18]
- ldr r1, [r2]
- lsl r1, r1, #0x10
- lsr r4, r1, #0x10
- add r1, r2, #4
- str r1, [r0, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- lsl r1, r2, #0x18
- asr r1, r1, #0x18
- bl MOD08_02215354
- add r5, r0, #0
- add r0, r4, #0
- bl FUN_020054C8
- ldr r1, _02214BA4 ; =0x0000FFFF
- add r0, r4, #0
- add r2, r5, #0
- bl FUN_02005530
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02214BA4: .word 0x0000FFFF
-
- thumb_func_start MOD08_02214BA8
-MOD08_02214BA8: ; 0x02214BA8
- push {r3, lr}
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- lsl r1, r2, #0x18
- asr r1, r1, #0x18
- bl MOD08_02215354
- bl FUN_0200554C
- pop {r3, pc}
-
- thumb_func_start MOD08_02214BC4
-MOD08_02214BC4: ; 0x02214BC4
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl MOD08_0221252C
- mov r1, #0
- mov r2, #0x3c
- add r4, r0, #0
- bl memset
- mov r0, #1
- strb r0, [r4]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strh r0, [r4, #0x1a]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- str r0, [r4, #8]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- str r0, [r4, #0xc]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- str r0, [r4, #0x10]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strb r0, [r4, #3]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r4, #8]
- add r0, r5, #0
- lsl r1, r1, #0x18
- asr r1, r1, #0x18
- bl MOD08_02215354
- str r0, [r4, #8]
- ldr r1, [r4, #0xc]
- add r0, r5, #0
- lsl r1, r1, #0x18
- asr r1, r1, #0x18
- bl MOD08_02215354
- str r0, [r4, #0xc]
- ldr r0, [r4, #8]
- ldr r1, [r4, #0xc]
- ldr r2, [r4, #0x10]
- lsl r0, r0, #0x18
- lsl r1, r1, #0x18
- lsl r2, r2, #0x18
- asr r0, r0, #0x18
- asr r1, r1, #0x18
- asr r2, r2, #0x18
- bl MOD08_0221540C
- str r0, [r4, #0x10]
- ldrh r0, [r4, #0x1a]
- bl FUN_020054C8
- ldrh r0, [r4, #0x1a]
- ldr r1, _02214C60 ; =0x0000FFFF
- ldr r2, [r4, #8]
- bl FUN_02005530
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_0221255C
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02214C60: .word 0x0000FFFF
-
- thumb_func_start MOD08_02214C64
-MOD08_02214C64: ; 0x02214C64
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl MOD08_0221252C
- mov r1, #0
- mov r2, #0x3c
- add r4, r0, #0
- bl memset
- mov r0, #2
- strb r0, [r4]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strh r0, [r4, #0x1a]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [r4, #8]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [r4, #0xc]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [r4, #0x10]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strb r0, [r4, #3]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldrh r0, [r4, #0x1a]
- bl FUN_020054C8
- ldrh r0, [r4, #0x1a]
- ldr r1, _02214CD8 ; =0x0000FFFF
- ldr r2, [r4, #8]
- bl FUN_02005530
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_0221255C
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02214CD8: .word 0x0000FFFF
-
- thumb_func_start MOD08_02214CDC
-MOD08_02214CDC: ; 0x02214CDC
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl MOD08_0221252C
- mov r1, #0
- mov r2, #0x3c
- add r4, r0, #0
- bl memset
- mov r0, #1
- strb r0, [r4]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strh r0, [r4, #0x1a]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [r4, #8]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [r4, #0xc]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [r4, #0x10]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strb r0, [r4, #3]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r4, #8]
- add r0, r5, #0
- lsl r1, r1, #0x18
- asr r1, r1, #0x18
- bl MOD08_02215354
- str r0, [r4, #8]
- ldr r1, [r4, #0xc]
- add r0, r5, #0
- lsl r1, r1, #0x18
- asr r1, r1, #0x18
- bl MOD08_02215354
- str r0, [r4, #0xc]
- ldr r1, [r4, #0x10]
- add r0, r5, #0
- lsl r1, r1, #0x18
- asr r1, r1, #0x18
- bl MOD08_02215354
- str r0, [r4, #0x10]
- ldrh r0, [r4, #0x1a]
- bl FUN_020054C8
- ldrh r0, [r4, #0x1a]
- ldr r1, _02214D7C ; =0x0000FFFF
- ldr r2, [r4, #8]
- bl FUN_02005530
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_0221255C
- pop {r3, r4, r5, pc}
- nop
-_02214D7C: .word 0x0000FFFF
-
- thumb_func_start MOD08_02214D80
-MOD08_02214D80: ; 0x02214D80
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl MOD08_0221252C
- mov r1, #0
- mov r2, #0x3c
- add r4, r0, #0
- bl memset
- mov r0, #4
- strb r0, [r4]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strh r0, [r4, #0x1a]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [r4, #0x14]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strb r0, [r4, #3]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strb r0, [r4, #0x18]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldrb r0, [r4, #3]
- strb r0, [r4, #4]
- ldr r1, [r4, #0x14]
- add r0, r5, #0
- lsl r1, r1, #0x18
- asr r1, r1, #0x18
- bl MOD08_02215354
- str r0, [r4, #0x14]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_0221255C
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02214DE4
-MOD08_02214DE4: ; 0x02214DE4
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl MOD08_0221252C
- mov r1, #0
- mov r2, #0x3c
- add r4, r0, #0
- bl memset
- mov r0, #5
- strb r0, [r4]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strh r0, [r4, #0x1a]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [r4, #0x14]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strb r0, [r4, #3]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r4, #0x14]
- add r0, r5, #0
- lsl r1, r1, #0x18
- asr r1, r1, #0x18
- bl MOD08_02215354
- str r0, [r4, #0x14]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_0221255C
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02214E3C
-MOD08_02214E3C: ; 0x02214E3C
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02214E40
-MOD08_02214E40: ; 0x02214E40
- push {r4, lr}
- add r4, r0, #0
- add r0, #0x90
- ldrh r0, [r0]
- cmp r0, #0
- beq _02214E5C
- add r0, r4, #0
- mov r1, #1
- add r0, #0x8d
- strb r1, [r0]
- ldr r0, _02214E94 ; =0x0000017D
- mov r1, #0
- strb r1, [r4, r0]
- pop {r4, pc}
-_02214E5C:
- bl FUN_02005514
- cmp r0, #0
- beq _02214E80
- ldr r0, _02214E94 ; =0x0000017D
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- ldrb r1, [r4, r0]
- cmp r1, #0x5a
- bls _02214E78
- mov r1, #0
- strb r1, [r4, r0]
- pop {r4, pc}
-_02214E78:
- mov r0, #1
- add r4, #0x8d
- strb r0, [r4]
- pop {r4, pc}
-_02214E80:
- add r0, r4, #0
- mov r1, #0
- add r0, #0x8d
- strb r1, [r0]
- ldr r0, _02214E94 ; =0x0000017D
- strb r1, [r4, r0]
- ldr r0, [r4, #0x18]
- add r0, r0, #4
- str r0, [r4, #0x18]
- pop {r4, pc}
- .align 2, 0
-_02214E94: .word 0x0000017D
-
- thumb_func_start MOD08_02214E98
-MOD08_02214E98: ; 0x02214E98
- push {r3, lr}
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r3, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- lsl r0, r2, #0x10
- lsr r0, r0, #0x10
- str r0, [sp]
- lsl r3, r3, #0x10
- ldr r0, _02214EC4 ; =0x04001050
- mov r1, #1
- mov r2, #2
- lsr r3, r3, #0x10
- bl G2x_SetBlendAlpha_
- pop {r3, pc}
- nop
-_02214EC4: .word 0x04001050
-
- thumb_func_start MOD08_02214EC8
-MOD08_02214EC8: ; 0x02214EC8
- ldr r3, _02214ECC ; =MOD08_0221268C
- bx r3
- .align 2, 0
-_02214ECC: .word MOD08_0221268C
-
- thumb_func_start MOD08_02214ED0
-MOD08_02214ED0: ; 0x02214ED0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02214ED4
-MOD08_02214ED4: ; 0x02214ED4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- add r6, r5, #0
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r7, [r0]
- add r0, r0, #4
- lsl r4, r1, #2
- add r6, #0xcc
- str r0, [r5, #0x18]
- ldr r0, [r6, r4]
- cmp r0, #0
- beq _02214EFC
- bl ErrorHandling
-_02214EFC:
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, #0xac
- ldr r0, [r0]
- bl FUN_0200BB34
- str r0, [r6, r4]
- ldr r0, [r6, r4]
- cmp r0, #0
- bne _02214F16
- bl ErrorHandling
-_02214F16:
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- ldr r1, [r6, r4]
- add r0, #0xac
- ldr r0, [r0]
- add r2, r7, #0
- bl FUN_0200BBF0
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, #0xac
- ldr r0, [r0]
- bl FUN_0200BB68
- mov r2, #0x11
- mov r1, #0
- lsl r2, r2, #0x10
- bl FUN_02008D24
- add r0, r5, #0
- mov r1, #0
- add r2, sp, #0
- add r0, #0x18
-_02214F48:
- ldr r3, [r5, #0x18]
- add r1, r1, #1
- ldr r3, [r3]
- str r3, [r2]
- ldr r3, [r0]
- add r2, r2, #4
- add r3, r3, #4
- str r3, [r0]
- cmp r1, #6
- blt _02214F48
- add r5, #0xc0
- ldr r0, [r5]
- ldr r1, [r6, r4]
- add r0, #0xac
- ldr r0, [r0]
- add r2, sp, #0
- bl FUN_0200BF60
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02214F70
-MOD08_02214F70: ; 0x02214F70
- push {lr}
- sub sp, #0xc
- add r2, r0, #0
- ldr r0, [r2, #0x18]
- add r0, r0, #4
- str r0, [r2, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r2, #0x18]
- ldr r3, [r0]
- add r0, r0, #4
- str r0, [r2, #0x18]
- mov r0, #1
- str r0, [sp]
- str r0, [sp, #4]
- ldr r0, _02214FB0 ; =0x00001388
- lsl r1, r1, #2
- add r0, r3, r0
- str r0, [sp, #8]
- add r0, r2, #0
- add r1, r2, r1
- add r0, #0xc0
- ldr r0, [r0]
- add r1, #0xcc
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r1]
- mov r2, #0x15
- bl FUN_0200C00C
- add sp, #0xc
- pop {pc}
- .align 2, 0
-_02214FB0: .word 0x00001388
-
- thumb_func_start MOD08_02214FB4
-MOD08_02214FB4: ; 0x02214FB4
- push {r4, lr}
- sub sp, #0x18
- add r4, r0, #0
- ldr r0, [r4, #0x18]
- add r0, r0, #4
- str r0, [r4, #0x18]
- ldr r3, [r0]
- add r0, r0, #4
- str r0, [r4, #0x18]
- ldr r1, [r0]
- add r2, r0, #4
- str r2, [r4, #0x18]
- ldr r0, [r2]
- add r2, r2, #4
- str r2, [r4, #0x18]
- mov r2, #0x16
- str r2, [sp]
- str r1, [sp, #4]
- mov r2, #0
- str r2, [sp, #8]
- mov r2, #1
- str r2, [sp, #0xc]
- str r0, [sp, #0x10]
- ldr r0, _0221500C ; =0x00001388
- add r2, r4, #0
- add r0, r1, r0
- str r0, [sp, #0x14]
- add r2, #0xc0
- ldr r2, [r2]
- lsl r3, r3, #2
- add r0, r4, #0
- add r3, r4, r3
- add r0, #0xc8
- add r2, #0xac
- add r3, #0xcc
- ldr r0, [r0]
- ldr r2, [r2]
- ldr r3, [r3]
- mov r1, #2
- bl FUN_0200C0DC
- add sp, #0x18
- pop {r4, pc}
- nop
-_0221500C: .word 0x00001388
-
- thumb_func_start MOD08_02215010
-MOD08_02215010: ; 0x02215010
- push {r3, lr}
- sub sp, #8
- add r2, r0, #0
- ldr r0, [r2, #0x18]
- add r0, r0, #4
- str r0, [r2, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r2, #0x18]
- ldr r3, [r0]
- add r0, r0, #4
- str r0, [r2, #0x18]
- mov r0, #1
- str r0, [sp]
- ldr r0, _02215050 ; =0x00001388
- lsl r1, r1, #2
- add r0, r3, r0
- str r0, [sp, #4]
- add r0, r2, #0
- add r1, r2, r1
- add r0, #0xc0
- ldr r0, [r0]
- add r1, #0xcc
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r1]
- mov r2, #0x17
- bl FUN_0200C124
- add sp, #8
- pop {r3, pc}
- nop
-_02215050: .word 0x00001388
-
- thumb_func_start MOD08_02215054
-MOD08_02215054: ; 0x02215054
- push {r3, lr}
- sub sp, #8
- add r2, r0, #0
- ldr r0, [r2, #0x18]
- add r0, r0, #4
- str r0, [r2, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r2, #0x18]
- ldr r3, [r0]
- add r0, r0, #4
- str r0, [r2, #0x18]
- mov r0, #1
- str r0, [sp]
- ldr r0, _02215094 ; =0x00001388
- lsl r1, r1, #2
- add r0, r3, r0
- str r0, [sp, #4]
- add r0, r2, #0
- add r1, r2, r1
- add r0, #0xc0
- ldr r0, [r0]
- add r1, #0xcc
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r1]
- mov r2, #0x18
- bl FUN_0200C13C
- add sp, #8
- pop {r3, pc}
- nop
-_02215094: .word 0x00001388
-
- thumb_func_start MOD08_02215098
-MOD08_02215098: ; 0x02215098
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x40
- add r4, r0, #0
- ldr r1, [r4, #0x18]
- add r1, r1, #4
- str r1, [r4, #0x18]
- ldr r5, [r1]
- add r2, r1, #4
- str r2, [r4, #0x18]
- ldr r1, [r2]
- str r1, [sp]
- add r1, r2, #4
- str r1, [r4, #0x18]
- bl MOD08_02212460
- add r6, r0, #0
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #0
- bl MOD08_02217B98
- add r1, sp, #0xc
- strh r0, [r1]
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #1
- bl MOD08_02217B98
- add r2, sp, #0xc
- strh r0, [r2, #2]
- mov r1, #0
- strh r1, [r2, #4]
- strh r1, [r2, #6]
- mov r0, #0x64
- str r0, [sp, #0x14]
- mov r0, #1
- str r0, [sp, #0x1c]
- str r0, [sp, #0x38]
- add r0, r4, #0
- ldr r3, _022151A0 ; =0x00001388
- str r1, [sp, #0x18]
- str r1, [sp, #0x3c]
- add r2, sp, #0xc
- add r0, #0x18
-_022150F0:
- ldr r6, [r4, #0x18]
- add r1, r1, #1
- ldr r6, [r6]
- add r6, r6, r3
- str r6, [r2, #0x14]
- ldr r6, [r0]
- add r2, r2, #4
- add r6, r6, #4
- str r6, [r0]
- cmp r1, #6
- blt _022150F0
- mov r0, #0x41
- lsl r0, r0, #2
- add r3, sp, #0xc
- add r2, r4, r0
- mov r6, #6
-_02215110:
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- sub r6, r6, #1
- bne _02215110
- ldr r0, [r3]
- lsl r7, r5, #2
- str r0, [r2]
- add r0, r4, #0
- str r0, [sp, #8]
- add r0, #0xcc
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- ldr r1, [sp, #8]
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r1, r7]
- add r2, sp, #0xc
- bl FUN_0200C154
- str r0, [sp, #4]
- ldr r0, [r4, #0x18]
- add r2, r4, #0
- ldr r3, [r0]
- add r0, r0, #4
- add r2, #0x18
- mov r6, #0
- str r0, [r4, #0x18]
- cmp r3, #0
- ble _02215168
- add r5, r4, #0
-_02215150:
- ldr r0, [r4, #0x18]
- add r6, r6, #1
- ldr r1, [r0]
- add r0, r5, #0
- add r0, #0x94
- str r1, [r0]
- ldr r0, [r2]
- add r5, r5, #4
- add r0, r0, #4
- str r0, [r2]
- cmp r6, r3
- blt _02215150
-_02215168:
- cmp r6, #0xa
- bge _02215180
- lsl r0, r6, #2
- add r2, r4, r0
- mov r1, #0
-_02215172:
- add r0, r2, #0
- add r0, #0x94
- add r6, r6, #1
- add r2, r2, #4
- str r1, [r0]
- cmp r6, #0xa
- blt _02215172
-_02215180:
- ldr r0, [sp]
- bl MOD08_02218C5C
- add r5, r0, #0
- add r0, r4, #0
- add r4, #0xc0
- ldr r1, [r4]
- ldr r2, [sp, #8]
- add r1, #0xac
- ldr r1, [r1]
- ldr r2, [r2, r7]
- ldr r3, [sp, #4]
- blx r5
- add sp, #0x40
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022151A0: .word 0x00001388
-
- thumb_func_start MOD08_022151A4
-MOD08_022151A4: ; 0x022151A4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x34
- add r5, r0, #0
- ldr r1, [r5, #0x18]
- add r1, r1, #4
- str r1, [r5, #0x18]
- ldr r4, [r1]
- add r1, r1, #4
- str r1, [r5, #0x18]
- ldr r7, [r1]
- add r1, r1, #4
- str r1, [r5, #0x18]
- bl MOD08_02212460
- add r6, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0
- bl MOD08_02217B98
- add r1, sp, #0
- strh r0, [r1]
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #1
- bl MOD08_02217B98
- add r2, sp, #0
- strh r0, [r2, #2]
- mov r1, #0
- strh r1, [r2, #4]
- strh r1, [r2, #6]
- mov r0, #0x64
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0x10]
- str r0, [sp, #0x2c]
- add r0, r5, #0
- ldr r3, _02215254 ; =0x00001388
- str r1, [sp, #0xc]
- str r1, [sp, #0x30]
- add r2, sp, #0
- add r0, #0x18
-_022151FA:
- ldr r6, [r5, #0x18]
- add r1, r1, #1
- ldr r6, [r6]
- add r6, r6, r3
- str r6, [r2, #0x14]
- ldr r6, [r0]
- add r2, r2, #4
- add r6, r6, #4
- str r6, [r0]
- cmp r1, #6
- blt _022151FA
- mov r0, #0x41
- lsl r0, r0, #2
- add r6, sp, #0
- add r3, r5, r0
- mov r2, #6
-_0221521A:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0221521A
- ldr r0, [r6]
- lsl r1, r4, #2
- str r0, [r3]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r1, r5, r1
- add r0, #0xac
- add r1, #0xcc
- ldr r0, [r0]
- ldr r1, [r1]
- add r2, sp, #0
- bl FUN_0200C154
- add r5, #0xdc
- lsl r4, r7, #2
- add r6, r0, #0
- ldr r0, [r5, r4]
- cmp r0, #0
- beq _0221524E
- bl ErrorHandling
-_0221524E:
- str r6, [r5, r4]
- add sp, #0x34
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02215254: .word 0x00001388
-
- thumb_func_start MOD08_02215258
-MOD08_02215258: ; 0x02215258
- push {r3, r4, r5, lr}
- ldr r1, [r0, #0x18]
- add r5, r0, #0
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- add r5, #0xcc
- lsl r4, r2, #2
- str r1, [r0, #0x18]
- ldr r1, [r5, r4]
- cmp r1, #0
- beq _0221527E
- add r0, #0xc0
- ldr r0, [r0]
- add r0, #0xac
- ldr r0, [r0]
- bl FUN_0200C398
-_0221527E:
- mov r0, #0
- str r0, [r5, r4]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02215284
-MOD08_02215284: ; 0x02215284
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r3, [r1]
- add r2, r1, #4
- str r2, [r0, #0x18]
- ldr r1, [r2]
- add r2, r2, #4
- str r2, [r0, #0x18]
- lsl r2, r3, #2
- add r2, r0, r2
- mov r0, #0x4f
- lsl r0, r0, #2
- ldr r3, _022152A4 ; =FUN_0200C644
- ldr r0, [r2, r0]
- bx r3
- .align 2, 0
-_022152A4: .word FUN_0200C644
-
- thumb_func_start MOD08_022152A8
-MOD08_022152A8: ; 0x022152A8
- ldr r3, _022152AC ; =ErrorHandling
- bx r3
- .align 2, 0
-_022152AC: .word ErrorHandling
-
- thumb_func_start MOD08_022152B0
-MOD08_022152B0: ; 0x022152B0
- push {r4, r5, lr}
- sub sp, #0xc
- add r5, r0, #0
- ldr r1, [r5, #0x18]
- add r1, r1, #4
- str r1, [r5, #0x18]
- ldr r4, [r1]
- add r1, r1, #4
- str r1, [r5, #0x18]
- ldr r1, [r1]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- lsl r1, r1, #0x18
- asr r1, r1, #0x18
- bl MOD08_02215354
- add r3, r0, #0
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- add r0, r5, #0
- add r0, #0xc0
- ldr r2, [r0]
- mov r0, #0x46
- lsl r0, r0, #2
- str r1, [sp]
- ldr r1, [r2, r0]
- sub r0, #0xc
- str r1, [sp, #4]
- ldr r1, [r5]
- str r1, [sp, #8]
- add r1, r4, #0
- ldrh r4, [r2, #0x14]
- ldr r0, [r2, r0]
- lsl r4, r4, #1
- add r2, r2, r4
- add r2, #0xd8
- ldrh r2, [r2]
- bl FUN_02069FB0
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221530C
-MOD08_0221530C: ; 0x0221530C
- push {r4, lr}
- add r4, r0, #0
- bl FUN_02005670
- cmp r0, #0
- bne _02215330
- ldr r0, [r4, #0x18]
- add r1, r0, #4
- str r1, [r4, #0x18]
- ldr r0, [r1]
- add r1, r1, #4
- str r1, [r4, #0x18]
- mov r1, #0
- add r4, #0x8d
- strb r1, [r4]
- bl FUN_02005614
- pop {r4, pc}
-_02215330:
- mov r0, #1
- add r4, #0x8d
- strb r0, [r4]
- pop {r4, pc}
-
- thumb_func_start MOD08_02215338
-MOD08_02215338: ; 0x02215338
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_0221533C
-MOD08_0221533C: ; 0x0221533C
- cmp r0, #0x55
- bls _02215344
- mov r0, #0
- bx lr
-_02215344:
- lsl r1, r0, #2
- ldr r0, _0221534C ; =0x0222AC6C
- ldr r0, [r0, r1]
- bx lr
- .align 2, 0
-_0221534C: .word 0x0222AC6C
-
- thumb_func_start MOD08_02215350
-MOD08_02215350: ; 0x02215350
- ldrb r0, [r0, #1]
- bx lr
-
- thumb_func_start MOD08_02215354
-MOD08_02215354: ; 0x02215354
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD08_02212458
- add r7, r0, #0
- add r0, r5, #0
- bl MOD08_02212460
- add r6, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- bl MOD08_02227470
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02227470
- add r0, r5, #0
- add r1, r7, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _02215390
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02227470
- cmp r0, #4
- beq _022153F6
-_02215390:
- add r0, r5, #0
- add r1, r7, #0
- bl MOD08_02227470
- cmp r0, #4
- bne _022153B0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _022153B0
- mov r0, #0
- mvn r0, r0
- mul r4, r0
- b _022153F6
-_022153B0:
- add r0, r5, #0
- add r1, r7, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _022153D4
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _022153D4
- cmp r4, #0
- ble _022153F6
- mov r0, #0
- mvn r0, r0
- mul r4, r0
- b _022153F6
-_022153D4:
- add r0, r5, #0
- add r1, r7, #0
- bl MOD08_02227470
- cmp r0, #4
- bne _022153F6
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02227470
- cmp r0, #4
- bne _022153F6
- cmp r4, #0
- bge _022153F6
- mov r0, #0
- mvn r0, r0
- mul r4, r0
-_022153F6:
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02215406
- mov r0, #0
- mvn r0, r0
- mul r4, r0
-_02215406:
- lsl r0, r4, #0x18
- asr r0, r0, #0x18
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0221540C
-MOD08_0221540C: ; 0x0221540C
- push {r3, lr}
- cmp r0, r1
- bge _0221541E
- add r0, r2, #0
- bl abs
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- pop {r3, pc}
-_0221541E:
- cmp r0, r1
- ble _02215430
- add r0, r2, #0
- bl abs
- neg r0, r0
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- pop {r3, pc}
-_02215430:
- mov r0, #0
- pop {r3, pc}
-
- thumb_func_start MOD08_02215434
-MOD08_02215434: ; 0x02215434
- push {r3, r4, r5, lr}
- ldr r4, [r0, #0x18]
- add r3, r0, #0
- add r4, r4, #4
- str r4, [r0, #0x18]
- ldr r5, [r4]
- add r4, r4, #4
- add r3, #0x18
- str r4, [r0, #0x18]
- cmp r5, r2
- beq _02215456
- cmp r5, r2
- beq _02215452
- bl ErrorHandling
-_02215452:
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02215456:
- mov r4, #0
- cmp r2, #0
- ble _02215470
-_0221545C:
- ldr r5, [r0, #0x18]
- add r4, r4, #1
- ldr r5, [r5]
- str r5, [r1]
- ldr r5, [r3]
- add r1, r1, #4
- add r5, r5, #4
- str r5, [r3]
- cmp r4, r2
- blt _0221545C
-_02215470:
- mov r0, #1
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02215474
-MOD08_02215474: ; 0x02215474
- push {r3, r4}
- add r4, r0, #0
- mov r0, #0x41
- lsl r0, r0, #2
- add r3, r1, r0
- mov r2, #6
-_02215480:
- ldmia r3!, {r0, r1}
- stmia r4!, {r0, r1}
- sub r2, r2, #1
- bne _02215480
- ldr r0, [r3]
- str r0, [r4]
- pop {r3, r4}
- bx lr
-
- thumb_func_start MOD08_02215490
-MOD08_02215490: ; 0x02215490
- add r0, #0xc0
- ldr r0, [r0]
- add r0, r0, r1
- add r0, #0xc0
- ldrb r0, [r0]
- bx lr
-
- thumb_func_start MOD08_0221549C
-MOD08_0221549C: ; 0x0221549C
- add r0, #0xc0
- ldr r0, [r0]
- add r0, r0, r1
- add r0, #0xe0
- ldrb r0, [r0]
- bx lr
-
- thumb_func_start MOD08_022154A8
-MOD08_022154A8: ; 0x022154A8
- add r0, #0xc0
- ldr r2, [r0]
- lsl r0, r1, #1
- add r0, r2, r0
- add r0, #0xd8
- ldrh r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022154B8
-MOD08_022154B8: ; 0x022154B8
- add r0, #0xc0
- ldr r0, [r0]
- add r0, r0, r1
- add r0, #0xe8
- ldrb r0, [r0]
- bx lr
-
- thumb_func_start MOD08_022154C4
-MOD08_022154C4: ; 0x022154C4
- add r0, #0xc0
- ldr r2, [r0]
- lsl r0, r1, #2
- add r0, r2, r0
- add r0, #0xec
- ldr r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022154D4
-MOD08_022154D4: ; 0x022154D4
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r4, r1, #2
- add r0, r0, r4
- add r0, #0xc4
- ldr r0, [r0]
- cmp r0, #0
- bne _022154EC
- mov r0, #0
- pop {r3, r4, r5, pc}
-_022154EC:
- bl FUN_02008268
- cmp r0, #0
- beq _02215500
- add r5, #0xc0
- ldr r0, [r5]
- add r0, r0, r4
- add r0, #0xc4
- ldr r0, [r0]
- pop {r3, r4, r5, pc}
-_02215500:
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02215504
-MOD08_02215504: ; 0x02215504
- add r0, #0xc8
- ldr r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_0221550C
-MOD08_0221550C: ; 0x0221550C
- add r0, #0xc0
- ldr r2, [r0]
- lsl r0, r1, #2
- add r0, r2, r0
- add r0, #0xb0
- ldr r0, [r0]
- ldr r0, [r0, #8]
- bx lr
-
- thumb_func_start MOD08_0221551C
-MOD08_0221551C: ; 0x0221551C
- add r0, #0xc0
- ldr r2, [r0]
- lsl r0, r1, #2
- add r0, r2, r0
- add r0, #0xb0
- ldr r0, [r0]
- ldr r0, [r0, #4]
- bx lr
-
- thumb_func_start MOD08_0221552C
-MOD08_0221552C: ; 0x0221552C
- add r0, #0xc0
- ldr r2, [r0]
- lsl r0, r1, #2
- add r0, r2, r0
- add r0, #0xb0
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- bx lr
-
- thumb_func_start MOD08_0221553C
-MOD08_0221553C: ; 0x0221553C
- add r0, #0xc0
- ldr r0, [r0]
- add r0, #0xd4
- ldr r1, [r0]
- mov r0, #2
- tst r0, r1
- beq _0221554E
- mov r0, #1
- bx lr
-_0221554E:
- mov r0, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02215554
-MOD08_02215554: ; 0x02215554
- add r0, #0xc0
- ldr r2, [r0]
- lsl r0, r1, #2
- add r0, r2, r0
- add r0, #0xfc
- ldr r1, [r0]
- ldr r0, _02215570 ; =0x200400C0
- tst r0, r1
- beq _0221556A
- mov r0, #1
- bx lr
-_0221556A:
- mov r0, #0
- bx lr
- nop
-_02215570: .word 0x200400C0
-
- thumb_func_start MOD08_02215574
-MOD08_02215574: ; 0x02215574
- push {r3, lr}
- bl MOD08_02212004
- cmp r0, #1
- bne _02215582
- mov r0, #2
- pop {r3, pc}
-_02215582:
- mov r0, #1
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02215588
-MOD08_02215588: ; 0x02215588
- push {r3, r4, r5, lr}
- sub sp, #0x18
- ldr r3, _022155C0 ; =0x0222AAAC
- add r2, sp, #0
- add r5, r0, #0
- add r4, r1, #0
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _022155B4
- add r0, sp, #0xc
- lsl r1, r4, #2
- add sp, #0x18
- ldr r0, [r0, r1]
- pop {r3, r4, r5, pc}
-_022155B4:
- lsl r1, r4, #2
- add r0, sp, #0
- ldr r0, [r0, r1]
- add sp, #0x18
- pop {r3, r4, r5, pc}
- nop
-_022155C0: .word 0x0222AAAC
-
- thumb_func_start MOD08_022155C4
-MOD08_022155C4: ; 0x022155C4
- push {r3, r4, r5, lr}
- sub sp, #0x18
- ldr r3, _022155FC ; =0x0222AA94
- add r2, sp, #0
- add r5, r0, #0
- add r4, r1, #0
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _022155F0
- add r0, sp, #0xc
- lsl r1, r4, #2
- add sp, #0x18
- ldr r0, [r0, r1]
- pop {r3, r4, r5, pc}
-_022155F0:
- lsl r1, r4, #2
- add r0, sp, #0
- ldr r0, [r0, r1]
- add sp, #0x18
- pop {r3, r4, r5, pc}
- nop
-_022155FC: .word 0x0222AA94
-
- thumb_func_start MOD08_02215600
-MOD08_02215600: ; 0x02215600
- push {r3, lr}
- cmp r1, #3
- bhi _02215636
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02215612: ; jump table
- .short _0221561A - _02215612 - 2 ; case 0
- .short _02215622 - _02215612 - 2 ; case 1
- .short _0221562A - _02215612 - 2 ; case 2
- .short _02215632 - _02215612 - 2 ; case 3
-_0221561A:
- bl MOD08_02212004
- mov r0, #0
- pop {r3, pc}
-_02215622:
- bl MOD08_02212004
- mov r0, #1
- pop {r3, pc}
-_0221562A:
- bl MOD08_02212004
- mov r0, #3
- pop {r3, pc}
-_02215632:
- bl MOD08_02215574
-_02215636:
- pop {r3, pc}
-
- thumb_func_start MOD08_02215638
-MOD08_02215638: ; 0x02215638
- push {r3, lr}
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- add r0, r2, #0
- add r2, #0xc0
- ldr r3, [r2]
- mov r2, #0x11
- add r0, #0xc4
- lsl r2, r2, #4
- lsl r1, r1, #0x18
- ldr r2, [r3, r2]
- mov r3, #1
- ldr r0, [r0]
- lsr r1, r1, #0x18
- lsl r3, r3, #0x10
- bl FUN_02017E14
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02215660
-MOD08_02215660: ; 0x02215660
- push {r3, lr}
- mov r2, #2
- add r1, r0, #0
- lsl r2, r2, #8
- str r2, [sp]
- add r1, #0xc0
- add r0, #0xc8
- ldr r1, [r1]
- sub r2, #0xec
- ldr r1, [r1, r2]
- mov r2, #0
- ldr r0, [r0]
- add r3, r2, #0
- bl FUN_02003054
- pop {r3, pc}
-
- thumb_func_start MOD08_02215680
-MOD08_02215680: ; 0x02215680
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl MOD08_022132C4
- add r4, r0, #0
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _022156A8
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_022154A8
- bl MOD08_0222A6C8
- cmp r0, #1
- bne _022156A8
- mov r0, #1
- pop {r3, r4, r5, pc}
-_022156A8:
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_022156AC
-MOD08_022156AC: ; 0x022156AC
- mov r2, #0x14
- mul r2, r0
- ldr r0, _022156BC ; =0x0222ADC0
- lsl r1, r1, #2
- add r0, r0, r2
- ldr r0, [r1, r0]
- bx lr
- nop
-_022156BC: .word 0x0222ADC0
-
- thumb_func_start MOD08_022156C0
-MOD08_022156C0: ; 0x022156C0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x90
- ldr r3, _02215900 ; =0x0222AA4C
- add r6, r2, #0
- add r2, sp, #0x78
- add r7, r0, #0
- add r5, r1, #0
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- add r0, r5, #0
- mov r1, #0x58
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- str r6, [r4, #4]
- add r0, r7, #0
- bl MOD11_02230078
- str r0, [r4, #8]
- add r0, r7, #0
- bl MOD11_02230080
- str r0, [r4, #0xc]
- add r0, r7, #0
- bl MOD11_022300CC
- str r0, [r4, #0x10]
- mov r6, #0
- add r5, r4, #0
-_02215704:
- mov r0, #0
- str r0, [r5, #0x24]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_022312D0
- str r0, [r5, #0x34]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #4
- blt _02215704
- add r1, r4, #0
- add r0, r7, #0
- add r1, #0x44
- bl MOD11_02231504
- add r1, r4, #0
- add r0, r7, #0
- add r1, #0x48
- bl MOD11_02231534
- mov r6, #0
- add r7, r6, #0
-_02215732:
- ldr r0, [r4, #4]
- cmp r6, r0
- beq _0221573C
- cmp r0, #0xff
- bne _0221579E
-_0221573C:
- ldr r1, _02215904 ; =0x0000D903
- str r7, [sp]
- add r2, r6, r1
- ldr r1, _02215908 ; =0x00001388
- mov r3, #0x28
- mul r1, r0
- mov r0, #1
- add r5, r2, r1
- str r0, [sp, #4]
- str r5, [sp, #8]
- ldr r0, [r4, #8]
- ldr r1, [r4, #0xc]
- mov r2, #0x1b
- bl FUN_0200C00C
- mov r0, #0x1b
- str r0, [sp]
- mov r0, #0x27
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- str r5, [sp, #0x14]
- ldr r0, [r4, #0x10]
- ldr r2, [r4, #8]
- ldr r3, [r4, #0xc]
- mov r1, #2
- bl FUN_0200C0DC
- mov r0, #0
- str r0, [sp]
- str r5, [sp, #4]
- ldr r0, [r4, #8]
- ldr r1, [r4, #0xc]
- mov r2, #0x1b
- mov r3, #0x29
- bl FUN_0200C124
- mov r0, #0
- str r0, [sp]
- str r5, [sp, #4]
- ldr r0, [r4, #8]
- ldr r1, [r4, #0xc]
- mov r2, #0x1b
- mov r3, #0x2a
- bl FUN_0200C13C
-_0221579E:
- add r6, r6, #1
- cmp r6, #4
- blt _02215732
- mov r0, #0
- str r0, [sp, #0x24]
- add r7, r4, #0
-_022157AA:
- ldr r1, [r4, #4]
- ldr r0, [sp, #0x24]
- cmp r0, r1
- beq _022157B8
- cmp r1, #0xff
- beq _022157B8
- b _022158EC
-_022157B8:
- ldr r2, _02215904 ; =0x0000D903
- ldr r0, [sp, #0x24]
- add r3, r1, #0
- add r0, r0, r2
- ldr r2, _02215908 ; =0x00001388
- mul r3, r2
- add r1, r0, r3
- str r1, [r7, #0x14]
- ldr r1, [r4, #4]
- add r3, r1, #0
- mul r3, r2
- add r1, r0, r3
- str r1, [sp, #0x60]
- ldr r1, [r4, #4]
- add r3, r1, #0
- mul r3, r2
- add r1, r0, r3
- str r1, [sp, #0x64]
- ldr r1, [r4, #4]
- add r3, r1, #0
- mul r3, r2
- add r1, r0, r3
- str r1, [sp, #0x68]
- ldr r1, [r4, #4]
- mul r2, r1
- mov r1, #0
- add r0, r0, r2
- str r0, [sp, #0x6c]
- str r1, [sp, #0x70]
- str r1, [sp, #0x74]
- ldr r2, [r7, #0x34]
- ldr r5, [r7, #0x48]
- ldr r0, [r2, #4]
- cmp r5, #0
- str r0, [sp, #0x20]
- ldr r0, [r2, #8]
- str r0, [sp, #0x1c]
- ldr r0, [r2]
- str r0, [sp, #0x18]
- beq _022158EC
- add r0, r5, #0
- bl FUN_0200782C
- str r0, [sp, #0x28]
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- add r0, r5, #0
- mov r1, #0x29
- bl FUN_0200782C
- sub r2, r6, r0
- ldr r0, [sp, #0x28]
- add r1, sp, #0x2c
- strh r0, [r1]
- strh r2, [r1, #2]
- mov r0, #0
- strh r0, [r1, #4]
- strh r0, [r1, #6]
- ldr r1, [sp, #0x24]
- add r3, sp, #0x2c
- add r1, r4, r1
- add r1, #0x44
- ldrb r1, [r1]
- lsl r2, r1, #2
- add r1, sp, #0x78
- ldr r1, [r1, r2]
- str r0, [sp, #0x38]
- str r1, [sp, #0x34]
- mov r1, #1
- str r1, [sp, #0x3c]
- str r1, [sp, #0x58]
- str r0, [sp, #0x5c]
- add r2, sp, #0x60
-_02215852:
- ldr r1, [r2]
- add r0, r0, #1
- str r1, [r3, #0x14]
- add r2, r2, #4
- add r3, r3, #4
- cmp r0, #6
- blt _02215852
- ldr r0, [r4, #8]
- ldr r1, [r4, #0xc]
- add r2, sp, #0x2c
- bl FUN_0200C154
- add r6, r0, #0
- bl FUN_0200C5A8
- str r6, [r7, #0x24]
- cmp r5, #0
- bne _02215880
- add r0, r6, #0
- mov r1, #0
- bl FUN_0200C644
- b _022158A8
-_02215880:
- add r0, r5, #0
- bl FUN_02008268
- cmp r0, #0
- bne _02215894
- add r0, r6, #0
- mov r1, #0
- bl FUN_0200C644
- b _022158A8
-_02215894:
- add r0, r5, #0
- mov r1, #6
- bl FUN_0200782C
- cmp r0, #1
- bne _022158A8
- add r0, r6, #0
- mov r1, #0
- bl FUN_0200C644
-_022158A8:
- cmp r5, #0
- beq _022158C2
- ldr r0, [r6]
- bl FUN_02020350
- add r1, r0, #0
- mov r3, #0x32
- ldr r1, [r1, #4]
- ldr r2, [sp, #0x18]
- mov r0, #0x13
- lsl r3, r3, #6
- bl FUN_0201C2C8
-_022158C2:
- cmp r5, #0
- beq _022158EC
- ldr r0, [r6]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- mov r1, #2
- str r1, [sp]
- mov r1, #0x20
- lsl r0, r0, #0x14
- str r1, [sp, #4]
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r0, [r4, #0x10]
- ldr r1, [sp, #0x20]
- ldr r2, [sp, #0x1c]
- ldr r3, [r4]
- bl FUN_020030E8
-_022158EC:
- ldr r0, [sp, #0x24]
- add r7, r7, #4
- add r0, r0, #1
- str r0, [sp, #0x24]
- cmp r0, #4
- bge _022158FA
- b _022157AA
-_022158FA:
- add r0, r4, #0
- add sp, #0x90
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02215900: .word 0x0222AA4C
-_02215904: .word 0x0000D903
-_02215908: .word 0x00001388
-
- thumb_func_start MOD08_0221590C
-MOD08_0221590C: ; 0x0221590C
- ldr r3, _02215914 ; =MOD08_022156C0
- mov r2, #0xff
- bx r3
- nop
-_02215914: .word MOD08_022156C0
-
- thumb_func_start MOD08_02215918
-MOD08_02215918: ; 0x02215918
- push {r4, r5, r6, lr}
- add r5, r0, #0
- mov r6, #0
- add r4, r5, #0
-_02215920:
- ldr r0, [r4, #0x24]
- cmp r0, #0
- beq _0221593C
- ldr r0, [r5, #0xc]
- ldr r1, [r4, #0x14]
- bl FUN_0200C358
- ldr r0, [r5, #0xc]
- ldr r1, [r4, #0x14]
- bl FUN_0200C368
- ldr r0, [r4, #0x24]
- bl FUN_0200C3DC
-_0221593C:
- add r6, r6, #1
- add r4, r4, #4
- cmp r6, #4
- blt _02215920
- add r0, r5, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_0221594C
-MOD08_0221594C: ; 0x0221594C
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- add r7, r1, #0
- mov r4, #0
- add r5, r6, #0
-_02215956:
- cmp r4, r7
- bne _02215976
- ldr r0, [r5, #0x24]
- cmp r0, #0
- beq _02215976
- ldr r0, [r6, #0xc]
- ldr r1, [r5, #0x14]
- bl FUN_0200C358
- ldr r0, [r6, #0xc]
- ldr r1, [r5, #0x14]
- bl FUN_0200C368
- ldr r0, [r5, #0x24]
- bl FUN_0200C3DC
-_02215976:
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #4
- blt _02215956
- add r0, r6, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02215988
-MOD08_02215988: ; 0x02215988
- push {r4, lr}
- add r4, r0, #0
- bne _02215992
- bl ErrorHandling
-_02215992:
- ldr r0, [r4, #4]
- add r0, r4, r0
- add r0, #0x44
- ldrb r0, [r0]
- pop {r4, pc}
-
- thumb_func_start MOD08_0221599C
-MOD08_0221599C: ; 0x0221599C
- push {r4, lr}
- sub sp, #8
- mov r1, #0x12
- lsl r1, r1, #0xa
- add r4, r0, #0
- bl AllocFromHeap
- add r2, r0, #0
- mov r0, #1
- str r0, [sp]
- mov r3, #0x12
- ldr r0, _022159DC ; =MOD08_02215A68
- ldr r1, _022159E0 ; =MOD08_02215A84
- lsl r3, r3, #0xa
- str r4, [sp, #4]
- bl FUN_02012CDC
- add r4, r0, #0
- bl FUN_0201343C
- add r2, r0, #0
- beq _022159D4
- mov r0, #1
- mov r1, #0xe1
- lsl r0, r0, #0xc
- lsl r1, r1, #0xe
- bl FUN_0201EC94
-_022159D4:
- add r0, r4, #0
- add sp, #8
- pop {r4, pc}
- nop
-_022159DC: .word MOD08_02215A68
-_022159E0: .word MOD08_02215A84
-
- thumb_func_start MOD08_022159E4
-MOD08_022159E4: ; 0x022159E4
- push {r4, lr}
- sub sp, #8
- mov r1, #0x42
- lsl r1, r1, #8
- add r4, r0, #0
- bl AllocFromHeap
- add r2, r0, #0
- mov r0, #1
- str r0, [sp]
- mov r3, #0x42
- ldr r0, _02215A24 ; =MOD08_02215A68
- ldr r1, _02215A28 ; =MOD08_02215A84
- lsl r3, r3, #8
- str r4, [sp, #4]
- bl FUN_02012CDC
- add r4, r0, #0
- bl FUN_0201343C
- add r2, r0, #0
- beq _02215A1C
- mov r0, #1
- mov r1, #0xe1
- lsl r0, r0, #0xc
- lsl r1, r1, #0xe
- bl FUN_0201EC94
-_02215A1C:
- add r0, r4, #0
- add sp, #8
- pop {r4, pc}
- nop
-_02215A24: .word MOD08_02215A68
-_02215A28: .word MOD08_02215A84
-
- thumb_func_start MOD08_02215A2C
-MOD08_02215A2C: ; 0x02215A2C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl FUN_020133E8
- add r4, r0, #0
- add r0, r5, #0
- bl FUN_02012DE4
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02215A44
-MOD08_02215A44: ; 0x02215A44
- push {r3, lr}
- bl FUN_020222AC
- bl FUN_02013348
- cmp r0, #0
- beq _02215A66
- bl FUN_02013364
- cmp r0, #0
- ble _02215A62
- bl FUN_020222AC
- bl FUN_020B02C8
-_02215A62:
- bl FUN_02013388
-_02215A66:
- pop {r3, pc}
-
- thumb_func_start MOD08_02215A68
-MOD08_02215A68: ; 0x02215A68
- push {r4, lr}
- ldr r3, _02215A80 ; =0x021064B8
- mov r2, #0
- ldr r3, [r3]
- blx r3
- add r4, r0, #0
- bl FUN_0201327C
- lsl r0, r4, #0x10
- lsr r0, r0, #0xd
- pop {r4, pc}
- nop
-_02215A80: .word 0x021064B8
-
- thumb_func_start MOD08_02215A84
-MOD08_02215A84: ; 0x02215A84
- push {r4, lr}
- ldr r3, _02215A9C ; =0x021064C0
- mov r2, #0
- ldr r3, [r3]
- blx r3
- add r4, r0, #0
- bl FUN_020132BC
- lsl r0, r4, #0x10
- lsr r0, r0, #0xd
- pop {r4, pc}
- nop
-_02215A9C: .word 0x021064C0
-
- thumb_func_start MOD08_02215AA0
-MOD08_02215AA0: ; 0x02215AA0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02215AA4
-MOD08_02215AA4: ; 0x02215AA4
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r6, r1, #0
- add r7, r2, #0
- bl MOD08_0221599C
- add r4, r0, #0
- mov r0, #0x1d
- add r1, r6, #0
- add r2, r5, #0
- bl FUN_0201318C
- add r1, r0, #0
- add r0, r4, #0
- mov r2, #0xa
- add r3, r7, #0
- bl FUN_02013194
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02215ACC
-MOD08_02215ACC: ; 0x02215ACC
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r6, r1, #0
- add r7, r2, #0
- str r3, [sp]
- bl MOD08_0221599C
- add r4, r0, #0
- add r0, r6, #0
- add r1, r7, #0
- add r2, r5, #0
- bl FUN_0201318C
- add r1, r0, #0
- ldr r3, [sp]
- add r0, r4, #0
- mov r2, #0xa
- bl FUN_02013194
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02215AF8
-MOD08_02215AF8: ; 0x02215AF8
- ldr r3, _02215AFC ; =NARC_AllocAndReadWholeMember
- bx r3
- .align 2, 0
-_02215AFC: .word NARC_AllocAndReadWholeMember
-
- thumb_func_start MOD08_02215B00
-MOD08_02215B00: ; 0x02215B00
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r7, r2, #0
- add r0, r5, #0
- str r3, [sp]
- bl MOD08_022159E4
- add r4, r0, #0
- add r0, r6, #0
- add r1, r7, #0
- add r2, r5, #0
- bl MOD08_02215AF8
- add r1, r0, #0
- ldr r3, [sp]
- add r0, r4, #0
- mov r2, #0xa
- bl FUN_02013194
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02215B2C
-MOD08_02215B2C: ; 0x02215B2C
- push {r4, lr}
- lsl r4, r2, #2
- ldr r2, _02215B3C ; =0x0222B248
- ldr r2, [r2, r4]
- bl FUN_020133AC
- pop {r4, pc}
- nop
-_02215B3C: .word 0x0222B248
-
- thumb_func_start MOD08_02215B40
-MOD08_02215B40: ; 0x02215B40
- ldr r3, _02215B44 ; =MOD08_02215A2C
- bx r3
- .align 2, 0
-_02215B44: .word MOD08_02215A2C
-
- thumb_func_start MOD08_02215B48
-MOD08_02215B48: ; 0x02215B48
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- add r7, r2, #0
- mov r4, #1
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_02227468
- cmp r5, #5
- bhi _02215B84
- add r0, r5, r5
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02215B6E: ; jump table
- .short _02215B84 - _02215B6E - 2 ; case 0
- .short _02215B7A - _02215B6E - 2 ; case 1
- .short _02215B84 - _02215B6E - 2 ; case 2
- .short _02215B7E - _02215B6E - 2 ; case 3
- .short _02215B84 - _02215B6E - 2 ; case 4
- .short _02215B82 - _02215B6E - 2 ; case 5
-_02215B7A:
- sub r4, r4, #2
- b _02215B84
-_02215B7E:
- sub r4, r4, #2
- b _02215B84
-_02215B82:
- sub r4, r4, #2
-_02215B84:
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02215B88
-MOD08_02215B88: ; 0x02215B88
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02215B8C
-MOD08_02215B8C: ; 0x02215B8C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x34
- add r5, r0, #0
- bl FUN_0201341C
- add r4, r0, #0
- bl MOD08_02212458
- add r0, r4, #0
- bl MOD08_02212460
- add r0, r4, #0
- bl MOD08_02212468
- add r6, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD08_02227470
- cmp r0, #3
- bne _02215BC2
- add r0, r4, #0
- mov r1, #1
- add r2, sp, #0x28
- bl MOD08_0222771C
- b _02215BFA
-_02215BC2:
- add r0, r4, #0
- mov r1, #1
- bl MOD08_02227468
- str r0, [sp]
- bl MOD08_02227524
- str r0, [sp, #4]
- add r0, r6, #0
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r4, r0, #0
- ldr r0, [sp, #4]
- add r1, sp, #0x28
- add r2, r4, #0
- add r3, r7, #0
- bl MOD08_0222765C
- ldr r0, [sp]
- add r1, sp, #0x1c
- add r2, r4, #0
- add r3, r7, #0
- bl MOD08_0222765C
-_02215BFA:
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #0x28]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r1, r0
- str r0, [r5, #0x28]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #0x2c]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r5, #0x2c]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #0x30]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r5, #0x30]
- mov r0, #1
- add r1, sp, #0x10
- bl MOD08_02227974
- add r0, r6, #0
- bl FUN_0201343C
- add r4, r0, #0
- add r0, sp, #8
- add r1, r4, #0
- bl FUN_0201F014
- add r0, sp, #8
- add r1, r4, #0
- bl FUN_0201EF90
- add sp, #0x34
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02215C44
-MOD08_02215C44: ; 0x02215C44
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r5, r0, #0
- bl FUN_0201341C
- add r4, r0, #0
- bl MOD08_02212460
- add r6, r0, #0
- add r0, r4, #0
- bl MOD08_02212468
- add r7, r0, #0
- add r0, r4, #0
- mov r1, #0
- add r2, sp, #0xc
- bl MOD08_0222771C
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #0xc]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r1, r0
- str r0, [r5, #0x28]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #0x10]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r5, #0x2c]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #0x14]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r5, #0x30]
- add r0, r6, #0
- add r1, sp, #0
- bl MOD08_02227974
- add r0, r7, #0
- add r1, sp, #0
- bl FUN_020133FC
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02215CA0
-MOD08_02215CA0: ; 0x02215CA0
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r0, #0
- bl FUN_0201341C
- add r5, r0, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- add r2, sp, #0
- bl MOD08_0222771C
- ldr r0, [r4, #0x20]
- ldr r1, [sp]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r1, r0
- str r0, [r4, #0x28]
- ldr r0, [r4, #0x20]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r4, #0x2c]
- ldr r0, [r4, #0x20]
- ldr r1, [sp, #8]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r4, #0x30]
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02215CE4
-MOD08_02215CE4: ; 0x02215CE4
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r0, #0
- bl FUN_0201341C
- add r5, r0, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- add r2, sp, #0
- bl MOD08_0222771C
- ldr r0, [r4, #0x20]
- ldr r1, [sp]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r1, r0
- str r0, [r4, #0x28]
- ldr r0, [r4, #0x20]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r4, #0x2c]
- ldr r0, [r4, #0x20]
- ldr r1, [sp, #8]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r4, #0x30]
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02215D28
-MOD08_02215D28: ; 0x02215D28
- push {r3, r4, r5, r6, lr}
- sub sp, #0xc
- add r5, r0, #0
- bl FUN_0201341C
- add r4, r0, #0
- bl MOD08_02212458
- add r6, r0, #0
- add r0, r4, #0
- bl MOD08_02212460
- add r0, r4, #0
- add r1, r6, #0
- add r2, sp, #0
- bl MOD08_0222771C
- ldr r0, [r5, #0x20]
- ldr r1, [sp]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r1, r0
- str r0, [r5, #0x28]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r5, #0x2c]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #8]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r5, #0x30]
- add sp, #0xc
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02215D74
-MOD08_02215D74: ; 0x02215D74
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r0, #0
- bl FUN_0201341C
- add r6, r0, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_02227470
- cmp r0, #3
- beq _02215DA0
- mov r4, #1
- b _02215DA2
-_02215DA0:
- mov r4, #0
-_02215DA2:
- add r0, r6, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r4, #0
- add r1, sp, #0
- add r3, r7, #0
- bl MOD08_0222765C
- ldr r0, [r5, #0x20]
- ldr r1, [sp]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r1, r0
- str r0, [r5, #0x28]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r5, #0x2c]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #8]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r5, #0x30]
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02215DDC
-MOD08_02215DDC: ; 0x02215DDC
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r0, #0
- bl FUN_0201341C
- add r6, r0, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r6, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_02227470
- cmp r0, #3
- beq _02215E08
- mov r4, #1
- b _02215E0A
-_02215E08:
- mov r4, #0
-_02215E0A:
- add r0, r6, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r4, #0
- add r1, sp, #0
- add r3, r7, #0
- bl MOD08_0222765C
- ldr r0, [r5, #0x20]
- ldr r1, [sp]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r1, r0
- str r0, [r5, #0x28]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r5, #0x2c]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #8]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r5, #0x30]
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02215E44
-MOD08_02215E44: ; 0x02215E44
- push {r4, r5, r6, r7, lr}
- sub sp, #0x9c
- add r5, r0, #0
- add r1, sp, #0
- mov r0, #0
- strh r0, [r1]
- strh r0, [r1, #2]
- strh r0, [r1, #4]
- strh r0, [r1, #6]
- strh r0, [r1, #8]
- strh r0, [r1, #0xa]
- ldr r3, _02215EE4 ; =0x0222B2A4
- add r2, sp, #0x54
- mov r1, #0x24
-_02215E60:
- ldrh r0, [r3]
- add r3, r3, #2
- strh r0, [r2]
- add r2, r2, #2
- sub r1, r1, #1
- bne _02215E60
- ldr r3, _02215EE8 ; =0x0222B2EC
- add r2, sp, #0xc
- mov r1, #0x24
-_02215E72:
- ldrh r0, [r3]
- add r3, r3, #2
- strh r0, [r2]
- add r2, r2, #2
- sub r1, r1, #1
- bne _02215E72
- bl FUN_0201341C
- add r4, r0, #0
- bl MOD08_02212458
- add r6, r0, #0
- add r0, r4, #0
- bl MOD08_02212460
- add r7, r0, #0
- add r0, r4, #0
- add r1, r6, #0
- bl MOD08_02227468
- add r6, r0, #0
- add r0, r4, #0
- add r1, r7, #0
- bl MOD08_02227468
- lsl r2, r0, #1
- mov r0, #0xc
- add r1, r6, #0
- mul r1, r0
- add r0, sp, #0x54
- add r0, r0, r1
- ldrsh r4, [r2, r0]
- mov r3, #0xac
- add r0, r4, #0
- ldr r4, [r5, #0x20]
- mul r0, r3
- ldr r4, [r4]
- ldr r4, [r4, #4]
- add r0, r0, r4
- str r0, [r5, #0x28]
- add r0, sp, #0xc
- add r0, r0, r1
- ldrsh r0, [r2, r0]
- add r1, r0, #0
- ldr r0, [r5, #0x20]
- mul r1, r3
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r5, #0x2c]
- ldr r0, [r5, #0x20]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- str r0, [r5, #0x30]
- add sp, #0x9c
- pop {r4, r5, r6, r7, pc}
- nop
-_02215EE4: .word 0x0222B2A4
-_02215EE8: .word 0x0222B2EC
-
- thumb_func_start MOD08_02215EEC
-MOD08_02215EEC: ; 0x02215EEC
- push {r3, r4}
- add r3, r2, #0
- add r3, #8
- cmp r0, #7
- bhi _02215F7C
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02215F02: ; jump table
- .short _02215F7C - _02215F02 - 2 ; case 0
- .short _02215F12 - _02215F02 - 2 ; case 1
- .short _02215F1C - _02215F02 - 2 ; case 2
- .short _02215F26 - _02215F02 - 2 ; case 3
- .short _02215F30 - _02215F02 - 2 ; case 4
- .short _02215F42 - _02215F02 - 2 ; case 5
- .short _02215F54 - _02215F02 - 2 ; case 6
- .short _02215F66 - _02215F02 - 2 ; case 7
-_02215F12:
- ldr r0, [r2]
- mul r1, r0
- str r1, [r2]
- pop {r3, r4}
- bx lr
-_02215F1C:
- ldr r0, [r2, #4]
- mul r1, r0
- str r1, [r2, #4]
- pop {r3, r4}
- bx lr
-_02215F26:
- ldr r0, [r3]
- mul r1, r0
- str r1, [r3]
- pop {r3, r4}
- bx lr
-_02215F30:
- ldr r0, [r2]
- add r3, r0, #0
- mul r3, r1
- str r3, [r2]
- ldr r0, [r2, #4]
- mul r1, r0
- str r1, [r2, #4]
- pop {r3, r4}
- bx lr
-_02215F42:
- ldr r0, [r2]
- add r4, r0, #0
- mul r4, r1
- str r4, [r2]
- ldr r0, [r3]
- mul r1, r0
- str r1, [r3]
- pop {r3, r4}
- bx lr
-_02215F54:
- ldr r0, [r2, #4]
- add r4, r0, #0
- mul r4, r1
- str r4, [r2, #4]
- ldr r0, [r3]
- mul r1, r0
- str r1, [r3]
- pop {r3, r4}
- bx lr
-_02215F66:
- ldr r0, [r2]
- add r4, r0, #0
- mul r4, r1
- str r4, [r2]
- ldr r0, [r2, #4]
- add r4, r0, #0
- mul r4, r1
- str r4, [r2, #4]
- ldr r0, [r3]
- mul r1, r0
- str r1, [r3]
-_02215F7C:
- pop {r3, r4}
- bx lr
-
- thumb_func_start MOD08_02215F80
-MOD08_02215F80: ; 0x02215F80
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r6, r2, #0
- add r5, r1, #0
- add r1, r3, #0
- add r7, sp, #0x10
- mov r2, #0
- str r2, [r7]
- ldr r3, [sp, #0x30]
- str r2, [r7, #4]
- ldr r4, [sp, #0x38]
- str r2, [r7, #8]
- cmp r3, #5
- bhi _0221602A
- add r3, r3, r3
- add r3, pc
- ldrh r3, [r3, #6]
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- add pc, r3
-_02215FA8: ; jump table
- .short _0221602A - _02215FA8 - 2 ; case 0
- .short _02215FB4 - _02215FA8 - 2 ; case 1
- .short _02215FDA - _02215FA8 - 2 ; case 2
- .short _02215FEE - _02215FA8 - 2 ; case 3
- .short _02215FF6 - _02215FA8 - 2 ; case 4
- .short _02216000 - _02215FA8 - 2 ; case 5
-_02215FB4:
- add r0, r5, #0
- add r1, r7, #0
- bl FUN_02013628
- add r1, sp, #0x20
- mov r0, #0x14
- ldrsb r0, [r1, r0]
- ldr r1, [sp, #0x10]
- add r2, r1, #0
- mul r2, r0
- ldr r1, [sp, #0x14]
- str r2, [sp, #0x10]
- add r2, r1, #0
- mul r2, r0
- ldr r1, [sp, #0x18]
- str r2, [sp, #0x14]
- mul r0, r1
- str r0, [sp, #0x18]
- b _0221602A
-_02215FDA:
- str r2, [sp, #0x10]
- add r1, sp, #0x20
- mov r0, #0x14
- ldrsb r1, [r1, r0]
- mov r0, #0x32
- lsl r0, r0, #6
- mul r0, r1
- str r0, [sp, #0x14]
- str r2, [sp, #0x18]
- b _0221602A
-_02215FEE:
- add r2, r7, #0
- bl MOD08_0222771C
- b _0221602A
-_02215FF6:
- add r1, r6, #0
- add r2, r7, #0
- bl MOD08_0222771C
- b _0221602A
-_02216000:
- add r1, sp, #0
- str r2, [r1]
- str r2, [r1, #4]
- str r2, [r1, #8]
- str r2, [r1, #0xc]
- mov r2, #4
- bl MOD08_02215434
- ldr r0, [sp]
- add r2, sp, #0x20
- str r0, [sp, #0x10]
- ldr r0, [sp, #4]
- mov r1, #0x14
- str r0, [sp, #0x14]
- ldr r0, [sp, #8]
- str r0, [sp, #0x18]
- ldrsb r1, [r2, r1]
- ldr r0, [sp, #0xc]
- add r2, r7, #0
- bl MOD08_02215EEC
-_0221602A:
- ldr r1, [sp, #0x10]
- ldr r0, [r4]
- sub r0, r1, r0
- str r0, [sp, #0x10]
- ldr r1, [sp, #0x14]
- ldr r0, [r4, #4]
- sub r0, r1, r0
- str r0, [sp, #0x14]
- ldr r1, [sp, #0x18]
- ldr r0, [r4, #8]
- sub r0, r1, r0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, sp, #0x10
- bl FUN_02013610
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02216050
-MOD08_02216050: ; 0x02216050
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r6, r2, #0
- add r5, r1, #0
- add r1, r3, #0
- add r7, sp, #0x10
- mov r2, #0
- str r2, [r7]
- ldr r3, [sp, #0x30]
- str r2, [r7, #4]
- ldr r4, [sp, #0x38]
- str r2, [r7, #8]
- cmp r3, #5
- bhi _022160FA
- add r3, r3, r3
- add r3, pc
- ldrh r3, [r3, #6]
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- add pc, r3
-_02216078: ; jump table
- .short _022160FA - _02216078 - 2 ; case 0
- .short _02216084 - _02216078 - 2 ; case 1
- .short _022160AA - _02216078 - 2 ; case 2
- .short _022160BE - _02216078 - 2 ; case 3
- .short _022160C6 - _02216078 - 2 ; case 4
- .short _022160D0 - _02216078 - 2 ; case 5
-_02216084:
- add r0, r5, #0
- add r1, r7, #0
- bl FUN_02013548
- add r1, sp, #0x20
- mov r0, #0x14
- ldrsb r0, [r1, r0]
- ldr r1, [sp, #0x10]
- add r2, r1, #0
- mul r2, r0
- ldr r1, [sp, #0x14]
- str r2, [sp, #0x10]
- add r2, r1, #0
- mul r2, r0
- ldr r1, [sp, #0x18]
- str r2, [sp, #0x14]
- mul r0, r1
- str r0, [sp, #0x18]
- b _022160FA
-_022160AA:
- str r2, [sp, #0x10]
- add r1, sp, #0x20
- mov r0, #0x14
- ldrsb r1, [r1, r0]
- mov r0, #0x32
- lsl r0, r0, #6
- mul r0, r1
- str r0, [sp, #0x14]
- str r2, [sp, #0x18]
- b _022160FA
-_022160BE:
- add r2, r7, #0
- bl MOD08_0222771C
- b _022160FA
-_022160C6:
- add r1, r6, #0
- add r2, r7, #0
- bl MOD08_0222771C
- b _022160FA
-_022160D0:
- add r1, sp, #0
- str r2, [r1]
- str r2, [r1, #4]
- str r2, [r1, #8]
- str r2, [r1, #0xc]
- mov r2, #4
- bl MOD08_02215434
- ldr r0, [sp]
- add r2, sp, #0x20
- str r0, [sp, #0x10]
- ldr r0, [sp, #4]
- mov r1, #0x14
- str r0, [sp, #0x14]
- ldr r0, [sp, #8]
- str r0, [sp, #0x18]
- ldrsb r1, [r2, r1]
- ldr r0, [sp, #0xc]
- add r2, r7, #0
- bl MOD08_02215EEC
-_022160FA:
- ldr r1, [sp, #0x10]
- ldr r0, [r4]
- sub r0, r1, r0
- str r0, [sp, #0x10]
- ldr r1, [sp, #0x14]
- ldr r0, [r4, #4]
- sub r0, r1, r0
- str r0, [sp, #0x14]
- ldr r1, [sp, #0x18]
- ldr r0, [r4, #8]
- sub r0, r1, r0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, sp, #0x10
- bl FUN_02013530
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02216120
-MOD08_02216120: ; 0x02216120
- push {r4, r5, r6, r7, lr}
- sub sp, #0x94
- add r6, r0, #0
- add r7, r2, #0
- add r4, r1, #0
- str r3, [sp, #0xc]
- bl MOD08_02212468
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_02227468
- str r0, [sp, #0x10]
- ldr r1, [sp, #0xc]
- add r0, r6, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r6, #0
- add r1, sp, #0x7c
- mov r2, #3
- bl MOD08_02215434
- add r0, r6, #0
- add r1, sp, #0x70
- mov r2, #3
- bl MOD08_02215434
- add r0, r6, #0
- add r1, sp, #0x58
- mov r2, #3
- bl MOD08_02215434
- add r0, r6, #0
- add r1, sp, #0x64
- mov r2, #3
- bl MOD08_02215434
- add r0, r6, #0
- add r1, sp, #0x40
- mov r2, #3
- bl MOD08_02215434
- add r0, r6, #0
- add r1, sp, #0x34
- mov r2, #3
- bl MOD08_02215434
- add r0, r6, #0
- add r1, sp, #0x4c
- mov r2, #3
- bl MOD08_02215434
- ldr r0, [sp, #0x10]
- cmp r0, #5
- bhi _022161A8
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221619C: ; jump table
- .short _022161A8 - _0221619C - 2 ; case 0
- .short _022161B8 - _0221619C - 2 ; case 1
- .short _022161CE - _0221619C - 2 ; case 2
- .short _02216202 - _0221619C - 2 ; case 3
- .short _0221624C - _0221619C - 2 ; case 4
- .short _02216280 - _0221619C - 2 ; case 5
-_022161A8:
- ldr r1, [sp, #0x7c]
- add r0, sp, #0x14
- strh r1, [r0]
- ldr r1, [sp, #0x80]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x84]
- strh r1, [r0, #4]
- b _022162C8
-_022161B8:
- ldr r0, [sp, #0x7c]
- neg r1, r0
- add r0, sp, #0x14
- strh r1, [r0]
- ldr r1, [sp, #0x80]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x84]
- neg r1, r1
- strh r1, [r0, #4]
- b _022162C8
-_022161CE:
- cmp r5, #3
- add r0, sp, #0x14
- bne _022161E2
- ldr r1, [sp, #0x70]
- strh r1, [r0]
- ldr r1, [sp, #0x74]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x78]
- strh r1, [r0, #4]
- b _022162C8
-_022161E2:
- cmp r5, #5
- bne _022161F4
- ldr r1, [sp, #0x58]
- strh r1, [r0]
- ldr r1, [sp, #0x5c]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x60]
- strh r1, [r0, #4]
- b _022162C8
-_022161F4:
- ldr r1, [sp, #0x64]
- strh r1, [r0]
- ldr r1, [sp, #0x68]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x6c]
- strh r1, [r0, #4]
- b _022162C8
-_02216202:
- cmp r5, #2
- bne _0221621C
- ldr r0, [sp, #0x70]
- neg r1, r0
- add r0, sp, #0x14
- strh r1, [r0]
- ldr r1, [sp, #0x74]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x78]
- neg r1, r1
- strh r1, [r0, #4]
- b _022162C8
-_0221621C:
- cmp r5, #5
- bne _02216236
- ldr r0, [sp, #0x64]
- neg r1, r0
- add r0, sp, #0x14
- strh r1, [r0]
- ldr r1, [sp, #0x68]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x6c]
- neg r1, r1
- strh r1, [r0, #4]
- b _022162C8
-_02216236:
- ldr r0, [sp, #0x40]
- neg r1, r0
- add r0, sp, #0x14
- strh r1, [r0]
- ldr r1, [sp, #0x44]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x48]
- neg r1, r1
- strh r1, [r0, #4]
- b _022162C8
-_0221624C:
- cmp r5, #3
- add r0, sp, #0x14
- bne _02216260
- ldr r1, [sp, #0x40]
- strh r1, [r0]
- ldr r1, [sp, #0x44]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x48]
- strh r1, [r0, #4]
- b _022162C8
-_02216260:
- cmp r5, #5
- bne _02216272
- ldr r1, [sp, #0x34]
- strh r1, [r0]
- ldr r1, [sp, #0x38]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x3c]
- strh r1, [r0, #4]
- b _022162C8
-_02216272:
- ldr r1, [sp, #0x4c]
- strh r1, [r0]
- ldr r1, [sp, #0x50]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x54]
- strh r1, [r0, #4]
- b _022162C8
-_02216280:
- cmp r5, #3
- bne _0221629A
- ldr r0, [sp, #0x4c]
- neg r1, r0
- add r0, sp, #0x14
- strh r1, [r0]
- ldr r1, [sp, #0x50]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x54]
- neg r1, r1
- strh r1, [r0, #4]
- b _022162C8
-_0221629A:
- cmp r5, #2
- bne _022162B4
- ldr r0, [sp, #0x58]
- neg r1, r0
- add r0, sp, #0x14
- strh r1, [r0]
- ldr r1, [sp, #0x5c]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x60]
- neg r1, r1
- strh r1, [r0, #4]
- b _022162C8
-_022162B4:
- ldr r0, [sp, #0x34]
- neg r1, r0
- add r0, sp, #0x14
- strh r1, [r0]
- ldr r1, [sp, #0x38]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x3c]
- neg r1, r1
- strh r1, [r0, #4]
-_022162C8:
- ldr r2, [sp, #0xc]
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_02215B48
- add r5, r0, #0
- add r1, sp, #0x28
- mov r0, #0
- str r0, [r1]
- str r0, [r1, #4]
- str r0, [r1, #8]
- add r0, r6, #0
- mov r2, #3
- bl MOD08_02215434
- add r0, r6, #0
- add r1, r7, #0
- add r2, sp, #0x1c
- bl MOD08_0222771C
- ldr r0, [sp, #0x28]
- cmp r0, #0
- bne _02216334
- ldr r0, [sp, #0x2c]
- cmp r0, #0
- bne _02216334
- ldr r0, [sp, #0x30]
- cmp r0, #0
- bne _02216334
- add r3, sp, #0x1c
- ldmia r3!, {r0, r1}
- add r2, sp, #0x88
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- str r0, [r2]
- ldr r1, [r4, #0x20]
- ldr r0, [sp, #0x1c]
- ldr r1, [r1]
- ldr r1, [r1, #4]
- add r0, r0, r1
- str r0, [r4, #0x28]
- ldr r1, [r4, #0x20]
- ldr r0, [sp, #0x20]
- ldr r1, [r1]
- ldr r1, [r1, #8]
- add r0, r0, r1
- str r0, [r4, #0x2c]
- ldr r1, [r4, #0x20]
- ldr r0, [sp, #0x24]
- ldr r1, [r1]
- ldr r1, [r1, #0xc]
- add r0, r0, r1
- str r0, [r4, #0x30]
- b _02216388
-_02216334:
- ldr r2, [sp, #0x28]
- ldr r1, [sp, #0x2c]
- ldr r0, [sp, #0x30]
- str r2, [sp, #0x88]
- str r1, [sp, #0x8c]
- str r0, [sp, #0x90]
- cmp r2, #0
- bne _0221634E
- mov r0, #0x32
- lsl r0, r0, #6
- cmp r1, r0
- bne _0221634E
- mov r5, #1
-_0221634E:
- ldr r1, [sp, #0x88]
- add r0, r1, #0
- ldr r1, [sp, #0x8c]
- mul r0, r5
- add r2, r1, #0
- mul r2, r5
- ldr r1, [sp, #0x24]
- str r2, [sp, #0x8c]
- add r2, r1, #0
- mul r2, r5
- str r0, [sp, #0x88]
- str r2, [sp, #0x90]
- ldr r1, [r4, #0x20]
- ldr r1, [r1]
- ldr r1, [r1, #4]
- add r0, r0, r1
- str r0, [r4, #0x28]
- ldr r1, [r4, #0x20]
- ldr r0, [sp, #0x8c]
- ldr r1, [r1]
- ldr r1, [r1, #8]
- add r0, r0, r1
- str r0, [r4, #0x2c]
- ldr r1, [r4, #0x20]
- ldr r0, [sp, #0x90]
- ldr r1, [r1]
- ldr r1, [r1, #0xc]
- add r0, r0, r1
- str r0, [r4, #0x30]
-_02216388:
- ldr r0, [sp, #0xa8]
- cmp r0, #0
- beq _022163C6
- cmp r0, #1
- beq _02216398
- cmp r0, #2
- beq _022163B0
- b _022163C6
-_02216398:
- ldr r0, [sp, #0xac]
- ldr r3, [sp, #0xc]
- str r0, [sp]
- str r5, [sp, #4]
- add r0, sp, #0x88
- str r0, [sp, #8]
- add r0, r6, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD08_02215F80
- b _022163C6
-_022163B0:
- ldr r0, [sp, #0xac]
- ldr r3, [sp, #0xc]
- str r0, [sp]
- str r5, [sp, #4]
- add r0, sp, #0x88
- str r0, [sp, #8]
- add r0, r6, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD08_02216050
-_022163C6:
- add r1, sp, #0x14
- ldrh r2, [r1]
- add r0, r4, #0
- add r0, #0x50
- strh r2, [r0]
- add r0, r4, #0
- ldrh r2, [r1, #2]
- add r0, #0x52
- add r4, #0x54
- strh r2, [r0]
- ldrh r0, [r1, #4]
- strh r0, [r4]
- add sp, #0x94
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022163E4
-MOD08_022163E4: ; 0x022163E4
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r7, r0, #0
- add r5, r1, #0
- add r4, r2, #0
- bl FUN_0201341C
- add r6, r0, #0
- bl MOD08_02212458
- str r0, [sp, #8]
- add r0, r6, #0
- bl MOD08_02212460
- add r3, r0, #0
- str r5, [sp]
- ldr r2, [sp, #8]
- add r0, r6, #0
- add r1, r7, #0
- str r4, [sp, #4]
- bl MOD08_02216120
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02216414
-MOD08_02216414: ; 0x02216414
- ldr r3, _0221641C ; =MOD08_022163E4
- mov r1, #0
- add r2, r1, #0
- bx r3
- .align 2, 0
-_0221641C: .word MOD08_022163E4
-
- thumb_func_start MOD08_02216420
-MOD08_02216420: ; 0x02216420
- ldr r3, _02216428 ; =MOD08_022163E4
- mov r1, #1
- add r2, r1, #0
- bx r3
- .align 2, 0
-_02216428: .word MOD08_022163E4
-
- thumb_func_start MOD08_0221642C
-MOD08_0221642C: ; 0x0221642C
- ldr r3, _02216434 ; =MOD08_022163E4
- mov r1, #1
- mov r2, #2
- bx r3
- .align 2, 0
-_02216434: .word MOD08_022163E4
-
- thumb_func_start MOD08_02216438
-MOD08_02216438: ; 0x02216438
- ldr r3, _02216440 ; =MOD08_022163E4
- mov r1, #1
- mov r2, #3
- bx r3
- .align 2, 0
-_02216440: .word MOD08_022163E4
-
- thumb_func_start MOD08_02216444
-MOD08_02216444: ; 0x02216444
- ldr r3, _0221644C ; =MOD08_022163E4
- mov r1, #1
- mov r2, #4
- bx r3
- .align 2, 0
-_0221644C: .word MOD08_022163E4
-
- thumb_func_start MOD08_02216450
-MOD08_02216450: ; 0x02216450
- ldr r3, _02216458 ; =MOD08_022163E4
- mov r1, #1
- mov r2, #5
- bx r3
- .align 2, 0
-_02216458: .word MOD08_022163E4
-
- thumb_func_start MOD08_0221645C
-MOD08_0221645C: ; 0x0221645C
- ldr r3, _02216464 ; =MOD08_022163E4
- mov r1, #2
- mov r2, #1
- bx r3
- .align 2, 0
-_02216464: .word MOD08_022163E4
-
- thumb_func_start MOD08_02216468
-MOD08_02216468: ; 0x02216468
- ldr r3, _02216470 ; =MOD08_022163E4
- mov r1, #2
- add r2, r1, #0
- bx r3
- .align 2, 0
-_02216470: .word MOD08_022163E4
-
- thumb_func_start MOD08_02216474
-MOD08_02216474: ; 0x02216474
- ldr r3, _0221647C ; =MOD08_022163E4
- mov r1, #2
- mov r2, #3
- bx r3
- .align 2, 0
-_0221647C: .word MOD08_022163E4
-
- thumb_func_start MOD08_02216480
-MOD08_02216480: ; 0x02216480
- ldr r3, _02216488 ; =MOD08_022163E4
- mov r1, #2
- mov r2, #4
- bx r3
- .align 2, 0
-_02216488: .word MOD08_022163E4
-
- thumb_func_start MOD08_0221648C
-MOD08_0221648C: ; 0x0221648C
- ldr r3, _02216494 ; =MOD08_022163E4
- mov r1, #2
- mov r2, #5
- bx r3
- .align 2, 0
-_02216494: .word MOD08_022163E4
-
- thumb_func_start MOD08_02216498
-MOD08_02216498: ; 0x02216498
- push {r4, r5, r6, lr}
- sub sp, #8
- add r5, r0, #0
- bl FUN_0201341C
- add r4, r0, #0
- bl MOD08_02212458
- add r6, r0, #0
- add r0, r4, #0
- bl MOD08_02212460
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- add r0, r4, #0
- add r1, r5, #0
- add r3, r6, #0
- bl MOD08_02216120
- add sp, #8
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022164C8
-MOD08_022164C8: ; 0x022164C8
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldr r2, [r4, #0x14]
- add r5, r0, #0
- cmp r2, #0
- beq _022164D8
- bl MOD08_0221658C
-_022164D8:
- ldr r0, [r4, #0x18]
- cmp r0, #0
- beq _022164E6
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_022168C0
-_022164E6:
- ldr r0, [r4, #0x1c]
- cmp r0, #0
- beq _022164F4
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02217124
-_022164F4:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02217158
- ldr r0, [r4, #0xc]
- cmp r0, #0
- beq _0221650A
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02217168
-_0221650A:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_0221650C
-MOD08_0221650C: ; 0x0221650C
- push {r3, r4, r5, r6, r7, lr}
- ldr r4, [r1]
- add r6, r2, #0
- add r0, r4, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r4, #0
- bl MOD08_02227470
- cmp r0, #3
- beq _02216534
- mov r5, #1
- b _02216536
-_02216534:
- mov r5, #0
-_02216536:
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_0222765C
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221654C
-MOD08_0221654C: ; 0x0221654C
- push {r3, r4, r5, r6, r7, lr}
- ldr r4, [r1]
- add r6, r2, #0
- add r0, r4, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r4, #0
- bl MOD08_02227470
- cmp r0, #3
- beq _02216574
- mov r5, #1
- b _02216576
-_02216574:
- mov r5, #0
-_02216576:
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_0222765C
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221658C
-MOD08_0221658C: ; 0x0221658C
- push {r3, r4, r5, r6, lr}
- sub sp, #0xbc
- add r4, r1, #0
- ldr r2, [r4, #0x14]
- add r5, r0, #0
- cmp r2, #0x64
- bgt _022165F4
- blt _0221659E
- b _02216768
-_0221659E:
- cmp r2, #0x22
- bhi _022165FA
- add r3, r2, r2
- add r3, pc
- ldrh r3, [r3, #6]
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- add pc, r3
-_022165AE: ; jump table
- .short _02216872 - _022165AE - 2 ; case 0
- .short _022165FC - _022165AE - 2 ; case 1
- .short _02216608 - _022165AE - 2 ; case 2
- .short _02216704 - _022165AE - 2 ; case 3
- .short _02216740 - _022165AE - 2 ; case 4
- .short _02216754 - _022165AE - 2 ; case 5
- .short _02216614 - _022165AE - 2 ; case 6
- .short _02216620 - _022165AE - 2 ; case 7
- .short _022166EC - _022165AE - 2 ; case 8
- .short _022166F8 - _022165AE - 2 ; case 9
- .short _0221662C - _022165AE - 2 ; case 10
- .short _02216638 - _022165AE - 2 ; case 11
- .short _02216794 - _022165AE - 2 ; case 12
- .short _022167A4 - _022165AE - 2 ; case 13
- .short _02216644 - _022165AE - 2 ; case 14
- .short _02216650 - _022165AE - 2 ; case 15
- .short _0221665C - _022165AE - 2 ; case 16
- .short _02216668 - _022165AE - 2 ; case 17
- .short _02216674 - _022165AE - 2 ; case 18
- .short _02216680 - _022165AE - 2 ; case 19
- .short _0221668C - _022165AE - 2 ; case 20
- .short _02216698 - _022165AE - 2 ; case 21
- .short _022166A4 - _022165AE - 2 ; case 22
- .short _022166B0 - _022165AE - 2 ; case 23
- .short _022166BC - _022165AE - 2 ; case 24
- .short _022166C8 - _022165AE - 2 ; case 25
- .short _022166D4 - _022165AE - 2 ; case 26
- .short _022166E0 - _022165AE - 2 ; case 27
- .short _022167B4 - _022165AE - 2 ; case 28
- .short _02216872 - _022165AE - 2 ; case 29
- .short _02216804 - _022165AE - 2 ; case 30
- .short _022167DA - _022165AE - 2 ; case 31
- .short _0221683C - _022165AE - 2 ; case 32
- .short _022167C0 - _022165AE - 2 ; case 33
- .short _022167CE - _022165AE - 2 ; case 34
-_022165F4:
- cmp r2, #0x65
- bne _022165FA
- b _0221677E
-_022165FA:
- b _02216872
-_022165FC:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222771C
- b _02216872
-_02216608:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_0222771C
- b _02216872
-_02216614:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222774C
- b _02216872
-_02216620:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_0222774C
- b _02216872
-_0221662C:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222777C
- b _02216872
-_02216638:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_0222777C
- b _02216872
-_02216644:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_022277AC
- b _02216872
-_02216650:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_022277AC
- b _02216872
-_0221665C:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_022277DC
- b _02216872
-_02216668:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_022277DC
- b _02216872
-_02216674:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222780C
- b _02216872
-_02216680:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_0222780C
- b _02216872
-_0221668C:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222783C
- b _02216872
-_02216698:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_0222783C
- b _02216872
-_022166A4:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222786C
- b _02216872
-_022166B0:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_0222786C
- b _02216872
-_022166BC:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222789C
- b _02216872
-_022166C8:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_0222789C
- b _02216872
-_022166D4:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_022278CC
- b _02216872
-_022166E0:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_022278CC
- b _02216872
-_022166EC:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222792C
- b _02216872
-_022166F8:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_0222792C
- b _02216872
-_02216704:
- ldr r0, [r4]
- add r1, sp, #0xa0
- mov r2, #4
- bl MOD08_02215434
- add r0, r4, #0
- bl MOD08_0221727C
- strb r0, [r4, #8]
- ldr r0, [sp, #0xa4]
- str r0, [sp, #0xb0]
- ldr r0, [sp, #0xa8]
- str r0, [sp, #0xb4]
- ldr r0, [sp, #0xac]
- str r0, [sp, #0xb8]
- ldr r0, [sp, #0xa0]
- cmp r0, #1
- bne _0221672C
- mov r0, #1
- strb r0, [r4, #8]
-_0221672C:
- mov r0, #8
- ldrsb r1, [r4, r0]
- ldr r2, [sp, #0xb0]
- mul r1, r2
- str r1, [sp, #0xb0]
- ldrsb r0, [r4, r0]
- ldr r1, [sp, #0xb4]
- mul r0, r1
- str r0, [sp, #0xb4]
- b _02216872
-_02216740:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222771C
- add r0, r4, #0
- add r1, sp, #0xb0
- bl MOD08_0221734C
- b _02216872
-_02216754:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_0222771C
- add r0, r4, #0
- add r1, sp, #0xb0
- bl MOD08_0221734C
- b _02216872
-_02216768:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222771C
- ldr r1, [r4, #0x24]
- add r0, r4, #0
- add r2, sp, #0xb0
- bl MOD08_022172C0
- b _02216872
-_0221677E:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_0222771C
- ldr r1, [r4, #0x28]
- add r0, r4, #0
- add r2, sp, #0xb0
- bl MOD08_022172C0
- b _02216872
-_02216794:
- add r2, sp, #0xb0
- bl MOD08_0221654C
- add r0, r4, #0
- add r1, sp, #0xb0
- bl MOD08_0221734C
- b _02216872
-_022167A4:
- add r2, sp, #0xb0
- bl MOD08_0221650C
- add r0, r4, #0
- add r1, sp, #0xb0
- bl MOD08_0221734C
- b _02216872
-_022167B4:
- ldr r0, _022168A8 ; =0x00002CE0
- str r0, [sp, #0xb0]
- mov r0, #0
- str r0, [sp, #0xb4]
- str r0, [sp, #0xb8]
- b _02216872
-_022167C0:
- ldr r0, _022168AC ; =0xFFFFEC78
- str r0, [sp, #0xb0]
- ldr r0, _022168B0 ; =0xFFFFE890
- str r0, [sp, #0xb4]
- mov r0, #0
- str r0, [sp, #0xb8]
- b _02216872
-_022167CE:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222771C
- b _02216872
-_022167DA:
- ldr r6, _022168B4 ; =0x0222B344
- add r3, sp, #0x70
- mov r2, #6
-_022167E0:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _022167E0
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- bl MOD08_02227468
- lsl r1, r0, #3
- add r0, sp, #0x70
- ldr r0, [r0, r1]
- str r0, [sp, #0xb0]
- add r0, sp, #0x74
- ldr r0, [r0, r1]
- str r0, [sp, #0xb4]
- mov r0, #0
- str r0, [sp, #0xb8]
- b _02216872
-_02216804:
- ldr r6, _022168B8 ; =0x0222B3DC
- add r3, sp, #0x38
- mov r2, #7
-_0221680A:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0221680A
- ldr r0, [r4]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216820
- mov r0, #6
- b _02216828
-_02216820:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- bl MOD08_02227468
-_02216828:
- lsl r1, r0, #3
- add r0, sp, #0x38
- ldr r0, [r0, r1]
- str r0, [sp, #0xb0]
- add r0, sp, #0x3c
- ldr r0, [r0, r1]
- str r0, [sp, #0xb4]
- mov r0, #0
- str r0, [sp, #0xb8]
- b _02216872
-_0221683C:
- ldr r6, _022168BC ; =0x0222B3A4
- add r3, sp, #0
- mov r2, #7
-_02216842:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _02216842
- ldr r0, [r4]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216858
- mov r0, #6
- b _02216860
-_02216858:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- bl MOD08_02227468
-_02216860:
- lsl r1, r0, #3
- add r0, sp, #0
- ldr r0, [r0, r1]
- str r0, [sp, #0xb0]
- add r0, sp, #4
- ldr r0, [r0, r1]
- str r0, [sp, #0xb4]
- mov r0, #0
- str r0, [sp, #0xb8]
-_02216872:
- add r2, sp, #0xb0
- ldmia r2!, {r0, r1}
- add r4, #0x2c
- stmia r4!, {r0, r1}
- ldr r0, [r2]
- str r0, [r4]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #0xb0]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r1, r0
- str r0, [r5, #0x28]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #0xb4]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r5, #0x2c]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #0xb8]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r5, #0x30]
- add sp, #0xbc
- pop {r3, r4, r5, r6, pc}
- nop
-_022168A8: .word 0x00002CE0
-_022168AC: .word 0xFFFFEC78
-_022168B0: .word 0xFFFFE890
-_022168B4: .word 0x0222B344
-_022168B8: .word 0x0222B3DC
-_022168BC: .word 0x0222B3A4
-
- thumb_func_start MOD08_022168C0
-MOD08_022168C0: ; 0x022168C0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x148
- str r0, [sp]
- str r1, [sp, #4]
- ldr r0, [r1]
- ldr r1, [r1, #0x24]
- bl MOD08_02227468
- str r0, [sp, #0x18]
- ldr r0, [sp, #4]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r1, [r1, #0x28]
- bl MOD08_02227468
- str r0, [sp, #0x14]
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x18]
- cmp r0, #0x1a
- bls _022168EC
- bl _022170F2
-_022168EC:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022168F8: ; jump table
- .short _0221692E - _022168F8 - 2 ; case 0
- .short _0221693A - _022168F8 - 2 ; case 1
- .short _0221693A - _022168F8 - 2 ; case 2
- .short _02217024 - _022168F8 - 2 ; case 3
- .short _022169A2 - _022168F8 - 2 ; case 4
- .short _02216A5C - _022168F8 - 2 ; case 5
- .short _02216D90 - _022168F8 - 2 ; case 6
- .short _02216D90 - _022168F8 - 2 ; case 7
- .short _02216B16 - _022168F8 - 2 ; case 8
- .short _02216B16 - _022168F8 - 2 ; case 9
- .short _02216B7E - _022168F8 - 2 ; case 10
- .short _02216B7E - _022168F8 - 2 ; case 11
- .short _02216BCC - _022168F8 - 2 ; case 12
- .short _02216BCC - _022168F8 - 2 ; case 13
- .short _02216C14 - _022168F8 - 2 ; case 14
- .short _02216C14 - _022168F8 - 2 ; case 15
- .short _02216C5C - _022168F8 - 2 ; case 16
- .short _02216C5C - _022168F8 - 2 ; case 17
- .short _02216D00 - _022168F8 - 2 ; case 18
- .short _02216D00 - _022168F8 - 2 ; case 19
- .short _02216D48 - _022168F8 - 2 ; case 20
- .short _02216D48 - _022168F8 - 2 ; case 21
- .short _02217038 - _022168F8 - 2 ; case 22
- .short _022170F2 - _022168F8 - 2 ; case 23
- .short _022170C4 - _022168F8 - 2 ; case 24
- .short _02217080 - _022168F8 - 2 ; case 25
- .short _02217092 - _022168F8 - 2 ; case 26
-_0221692E:
- mov r1, #0
- add r0, sp, #0x20
- strh r1, [r0]
- strh r1, [r0, #2]
- strh r1, [r0, #4]
- b _022170F2
-_0221693A:
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216974
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x10]
- cmp r0, #2
- add r0, sp, #0x20
- bne _02216962
- ldr r1, _02216CA4 ; =0xFFFFF2F8
- strh r1, [r0]
- mov r1, #0x73
- lsl r1, r1, #4
- strh r1, [r0, #2]
- mov r1, #0x2e
- lsl r1, r1, #4
- strh r1, [r0, #4]
- b _022170F2
-_02216962:
- mov r1, #0x92
- lsl r1, r1, #4
- strh r1, [r0]
- ldr r1, _02216CA8 ; =0xFFFFFA60
- strh r1, [r0, #2]
- mov r1, #0x2e
- lsl r1, r1, #4
- strh r1, [r0, #4]
- b _022170F2
-_02216974:
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02216CAC ; =0x0222BB44
- add r2, r2, r0
- ldr r3, [r1, r2]
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _02216CB0 ; =0x0222BB48
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02216CB4 ; =0x0222BB4C
- add r0, r3, r0
- ldr r1, [r1, r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- strh r0, [r2, #4]
- b _022170F2
-_022169A2:
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _022169DE
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02216CAC ; =0x0222BB44
- add r2, r2, r0
- ldr r2, [r1, r2]
- neg r3, r2
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _02216CB0 ; =0x0222BB48
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02216CB4 ; =0x0222BB4C
- add r0, r3, r0
- ldr r1, [r1, r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- strh r0, [r2, #4]
- b _022170F2
-_022169DE:
- ldr r0, [sp, #4]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r1, [r1, #0x24]
- bl MOD08_02227470
- add r4, r0, #0
- ldr r0, [sp, #4]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r1, [r1, #0x28]
- bl MOD08_02227470
- cmp r4, r0
- bne _02216A2A
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02216CAC ; =0x0222BB44
- add r2, r2, r0
- ldr r3, [r1, r2]
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _02216CB0 ; =0x0222BB48
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02216CB4 ; =0x0222BB4C
- add r0, r3, r0
- ldr r1, [r1, r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- strh r0, [r2, #4]
- b _022170F2
-_02216A2A:
- ldr r0, [sp, #4]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r1, [r1, #0x24]
- bl MOD08_02227470
- cmp r0, #3
- add r0, sp, #0x20
- bne _02216A4E
- mov r1, #0x3b
- lsl r1, r1, #6
- strh r1, [r0]
- mov r1, #0x21
- lsl r1, r1, #6
- strh r1, [r0, #2]
- ldr r1, _02216CB8 ; =0x000005FC
- strh r1, [r0, #4]
- b _022170F2
-_02216A4E:
- ldr r1, _02216CBC ; =0xFFFFEF7C
- strh r1, [r0]
- ldr r1, _02216CC0 ; =0xFFFFF558
- strh r1, [r0, #2]
- ldr r1, _02216CB8 ; =0x000005FC
- strh r1, [r0, #4]
- b _022170F2
-_02216A5C:
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216A98
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02216CAC ; =0x0222BB44
- add r2, r2, r0
- ldr r2, [r1, r2]
- neg r3, r2
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _02216CB0 ; =0x0222BB48
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02216CB4 ; =0x0222BB4C
- add r0, r3, r0
- ldr r1, [r1, r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- strh r0, [r2, #4]
- b _022170F2
-_02216A98:
- ldr r0, [sp, #4]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r1, [r1, #0x24]
- bl MOD08_02227470
- add r4, r0, #0
- ldr r0, [sp, #4]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r1, [r1, #0x28]
- bl MOD08_02227470
- cmp r4, r0
- bne _02216AE4
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02216CAC ; =0x0222BB44
- add r2, r2, r0
- ldr r3, [r1, r2]
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _02216CB0 ; =0x0222BB48
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02216CB4 ; =0x0222BB4C
- add r0, r3, r0
- ldr r1, [r1, r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- strh r0, [r2, #4]
- b _022170F2
-_02216AE4:
- ldr r0, [sp, #4]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r1, [r1, #0x24]
- bl MOD08_02227470
- cmp r0, #3
- add r0, sp, #0x20
- bne _02216B08
- mov r1, #0x3b
- lsl r1, r1, #6
- strh r1, [r0]
- mov r1, #0x21
- lsl r1, r1, #6
- strh r1, [r0, #2]
- ldr r1, _02216CB8 ; =0x000005FC
- strh r1, [r0, #4]
- b _022170F2
-_02216B08:
- ldr r1, _02216CBC ; =0xFFFFEF7C
- strh r1, [r0]
- ldr r1, _02216CC0 ; =0xFFFFF558
- strh r1, [r0, #2]
- ldr r1, _02216CB8 ; =0x000005FC
- strh r1, [r0, #4]
- b _022170F2
-_02216B16:
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216B50
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x10]
- cmp r0, #2
- add r0, sp, #0x20
- bne _02216B3E
- ldr r1, _02216CC4 ; =0xFFFFF6E0
- strh r1, [r0]
- mov r1, #0x5a
- lsl r1, r1, #4
- strh r1, [r0, #2]
- mov r1, #0x2e
- lsl r1, r1, #4
- strh r1, [r0, #4]
- b _022170F2
-_02216B3E:
- mov r1, #0x92
- lsl r1, r1, #4
- strh r1, [r0]
- ldr r1, _02216CA8 ; =0xFFFFFA60
- strh r1, [r0, #2]
- mov r1, #0x2e
- lsl r1, r1, #4
- strh r1, [r0, #4]
- b _022170F2
-_02216B50:
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02216CC8 ; =0x0222B484
- add r2, r2, r0
- ldr r3, [r1, r2]
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _02216CCC ; =0x0222B488
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02216CD0 ; =0x0222B48C
- add r0, r3, r0
- ldr r1, [r1, r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- strh r0, [r2, #4]
- b _022170F2
-_02216B7E:
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216B9E
- ldr r1, _02216CC4 ; =0xFFFFF6E0
- add r0, sp, #0x20
- strh r1, [r0]
- mov r1, #0x5a
- lsl r1, r1, #4
- strh r1, [r0, #2]
- mov r1, #0x2e
- lsl r1, r1, #4
- strh r1, [r0, #4]
- b _022170F2
-_02216B9E:
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02216CD4 ; =0x0222B634
- add r2, r2, r0
- ldr r3, [r1, r2]
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _02216CCC ; =0x0222B488
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02216CD0 ; =0x0222B48C
- add r0, r3, r0
- ldr r1, [r1, r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- strh r0, [r2, #4]
- b _022170F2
-_02216BCC:
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216BEC
- ldr r1, _02216CD8 ; =0xFFFFF488
- add r0, sp, #0x20
- strh r1, [r0]
- mov r1, #0x5a
- lsl r1, r1, #4
- strh r1, [r0, #2]
- mov r1, #0x2e
- lsl r1, r1, #4
- strh r1, [r0, #4]
- b _022170F2
-_02216BEC:
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02216CDC ; =0x0222B994
- add r2, r2, r0
- ldr r3, [r1, r2]
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _02216CE0 ; =0x0222B998
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02216CE4 ; =0x0222B99C
- add r0, r3, r0
- ldr r0, [r1, r0]
- strh r0, [r2, #4]
- b _022170F2
-_02216C14:
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216C34
- ldr r1, _02216CC4 ; =0xFFFFF6E0
- add r0, sp, #0x20
- strh r1, [r0]
- mov r1, #0x5a
- lsl r1, r1, #4
- strh r1, [r0, #2]
- mov r1, #0x2e
- lsl r1, r1, #4
- strh r1, [r0, #4]
- b _022170F2
-_02216C34:
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02216CE8 ; =0x0222BCF4
- add r2, r2, r0
- ldr r3, [r1, r2]
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _02216CEC ; =0x0222BCF8
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02216CF0 ; =0x0222BCFC
- add r0, r3, r0
- ldr r0, [r1, r0]
- strh r0, [r2, #4]
- b _022170F2
-_02216C5C:
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216C7C
- ldr r1, _02216CC4 ; =0xFFFFF6E0
- add r0, sp, #0x20
- strh r1, [r0]
- mov r1, #0x5a
- lsl r1, r1, #4
- strh r1, [r0, #2]
- mov r1, #0x2e
- lsl r1, r1, #4
- strh r1, [r0, #4]
- b _022170F2
-_02216C7C:
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02216CF4 ; =0x0222B7E4
- add r2, r2, r0
- ldr r3, [r1, r2]
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _02216CF8 ; =0x0222B7E8
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02216CFC ; =0x0222B7EC
- add r0, r3, r0
- ldr r0, [r1, r0]
- strh r0, [r2, #4]
- b _022170F2
- .align 2, 0
-_02216CA4: .word 0xFFFFF2F8
-_02216CA8: .word 0xFFFFFA60
-_02216CAC: .word 0x0222BB44
-_02216CB0: .word 0x0222BB48
-_02216CB4: .word 0x0222BB4C
-_02216CB8: .word 0x000005FC
-_02216CBC: .word 0xFFFFEF7C
-_02216CC0: .word 0xFFFFF558
-_02216CC4: .word 0xFFFFF6E0
-_02216CC8: .word 0x0222B484
-_02216CCC: .word 0x0222B488
-_02216CD0: .word 0x0222B48C
-_02216CD4: .word 0x0222B634
-_02216CD8: .word 0xFFFFF488
-_02216CDC: .word 0x0222B994
-_02216CE0: .word 0x0222B998
-_02216CE4: .word 0x0222B99C
-_02216CE8: .word 0x0222BCF4
-_02216CEC: .word 0x0222BCF8
-_02216CF0: .word 0x0222BCFC
-_02216CF4: .word 0x0222B7E4
-_02216CF8: .word 0x0222B7E8
-_02216CFC: .word 0x0222B7EC
-_02216D00:
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216D20
- ldr r1, _02217044 ; =0xFFFFF6E0
- add r0, sp, #0x20
- strh r1, [r0]
- mov r1, #0x5a
- lsl r1, r1, #4
- strh r1, [r0, #2]
- mov r1, #0x2e
- lsl r1, r1, #4
- strh r1, [r0, #4]
- b _022170F2
-_02216D20:
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02217048 ; =0x0222BEA4
- add r2, r2, r0
- ldr r3, [r1, r2]
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _0221704C ; =0x0222BEA8
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02217050 ; =0x0222BEAC
- add r0, r3, r0
- ldr r0, [r1, r0]
- strh r0, [r2, #4]
- b _022170F2
-_02216D48:
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216D68
- ldr r1, _02217054 ; =0xFFFFEF10
- add r0, sp, #0x20
- strh r1, [r0]
- mov r1, #0x5a
- lsl r1, r1, #4
- strh r1, [r0, #2]
- mov r1, #0x2e
- lsl r1, r1, #4
- strh r1, [r0, #4]
- b _022170F2
-_02216D68:
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02217058 ; =0x0222C054
- add r2, r2, r0
- ldr r3, [r1, r2]
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _0221705C ; =0x0222C058
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02217060 ; =0x0222C05C
- add r0, r3, r0
- ldr r0, [r1, r0]
- strh r0, [r2, #4]
- b _022170F2
-_02216D90:
- ldr r4, _02217064 ; =0x0222B414
- add r3, sp, #0xd8
- mov r2, #0xe
-_02216D96:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _02216D96
- ldr r3, _02217068 ; =0x0222B334
- add r2, sp, #0x58
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- add r1, sp, #0xc8
- mov r0, #0
- str r1, [sp, #0xc]
- add r1, sp, #0xb8
- mov ip, r0
- str r1, [sp, #0x1c]
- add r0, sp, #0xd8
- add r7, sp, #0xa8
- add r6, sp, #0x98
- add r5, sp, #0x88
- add r1, sp, #0x78
- add r2, sp, #0x68
-_02216DC2:
- ldr r4, [r0]
- ldr r3, [sp, #0xc]
- str r4, [r3]
- ldr r4, [r0, #0x10]
- ldr r3, [sp, #0x1c]
- str r4, [r3]
- ldr r3, [r0, #0x20]
- stmia r7!, {r3}
- ldr r3, [r0, #0x30]
- stmia r6!, {r3}
- ldr r3, [r0, #0x40]
- stmia r5!, {r3}
- ldr r3, [r0, #0x50]
- stmia r1!, {r3}
- ldr r3, [r0, #0x60]
- add r0, r0, #4
- stmia r2!, {r3}
- ldr r3, [sp, #0xc]
- add r3, r3, #4
- str r3, [sp, #0xc]
- ldr r3, [sp, #0x1c]
- add r3, r3, #4
- str r3, [sp, #0x1c]
- mov r3, ip
- add r3, r3, #1
- mov ip, r3
- cmp r3, #4
- blt _02216DC2
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216E3E
- mov r0, #0
- str r0, [sp, #8]
- add r0, sp, #0x58
- str r0, [sp, #0x10]
- add r7, sp, #0xc8
- add r6, sp, #0xb8
- add r0, sp, #0xa8
- add r1, sp, #0x98
- add r2, sp, #0x88
- add r3, sp, #0x78
- add r4, sp, #0x68
-_02216E1C:
- ldr r5, [sp, #0x10]
- ldr r5, [r5]
- stmia r7!, {r5}
- stmia r6!, {r5}
- stmia r0!, {r5}
- stmia r1!, {r5}
- stmia r2!, {r5}
- stmia r3!, {r5}
- stmia r4!, {r5}
- ldr r5, [sp, #0x10]
- add r5, r5, #4
- str r5, [sp, #0x10]
- ldr r5, [sp, #8]
- add r5, r5, #1
- str r5, [sp, #8]
- cmp r5, #4
- blt _02216E1C
-_02216E3E:
- ldr r0, [sp, #0x18]
- cmp r0, #5
- bhi _02216E5C
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02216E50: ; jump table
- .short _02216E5C - _02216E50 - 2 ; case 0
- .short _02216E6C - _02216E50 - 2 ; case 1
- .short _02216E98 - _02216E50 - 2 ; case 2
- .short _02216ED0 - _02216E50 - 2 ; case 3
- .short _02216F5E - _02216E50 - 2 ; case 4
- .short _02216F96 - _02216E50 - 2 ; case 5
-_02216E5C:
- ldr r1, [sp, #0xc8]
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0xcc]
- strh r1, [r0, #2]
- ldr r1, [sp, #0xd0]
- strh r1, [r0, #4]
- b _022170F2
-_02216E6C:
- ldr r0, [sp, #0xd4]
- cmp r0, #1
- bne _02216E82
- ldr r1, [sp, #0xc8]
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0xcc]
- strh r1, [r0, #2]
- ldr r1, [sp, #0xd0]
- strh r1, [r0, #4]
- b _022170F2
-_02216E82:
- ldr r0, [sp, #0xc8]
- neg r1, r0
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0xcc]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0xd0]
- neg r1, r1
- strh r1, [r0, #4]
- b _022170F2
-_02216E98:
- ldr r0, [sp, #0x14]
- cmp r0, #3
- bne _02216EAE
- ldr r1, [sp, #0xb8]
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0xbc]
- strh r1, [r0, #2]
- ldr r1, [sp, #0xc0]
- strh r1, [r0, #4]
- b _022170F2
-_02216EAE:
- cmp r0, #5
- add r0, sp, #0x20
- bne _02216EC2
- ldr r1, [sp, #0x98]
- strh r1, [r0]
- ldr r1, [sp, #0x9c]
- strh r1, [r0, #2]
- ldr r1, [sp, #0xa0]
- strh r1, [r0, #4]
- b _022170F2
-_02216EC2:
- ldr r1, [sp, #0xa8]
- strh r1, [r0]
- ldr r1, [sp, #0xac]
- strh r1, [r0, #2]
- ldr r1, [sp, #0xb0]
- strh r1, [r0, #4]
- b _022170F2
-_02216ED0:
- ldr r0, [sp, #0x14]
- cmp r0, #2
- bne _02216F02
- ldr r0, [sp, #0xc4]
- cmp r0, #1
- bne _02216EEC
- ldr r1, [sp, #0xb8]
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0xbc]
- strh r1, [r0, #2]
- ldr r1, [sp, #0xc0]
- strh r1, [r0, #4]
- b _022170F2
-_02216EEC:
- ldr r0, [sp, #0xb8]
- neg r1, r0
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0xbc]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0xc0]
- neg r1, r1
- strh r1, [r0, #4]
- b _022170F2
-_02216F02:
- cmp r0, #5
- bne _02216F32
- ldr r0, [sp, #0xb4]
- cmp r0, #1
- bne _02216F22
- ldr r0, [sp, #0x88]
- neg r1, r0
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x8c]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x90]
- neg r1, r1
- strh r1, [r0, #4]
- b _022170F2
-_02216F22:
- ldr r1, [sp, #0x88]
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x8c]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x90]
- strh r1, [r0, #4]
- b _022170F2
-_02216F32:
- ldr r0, [sp, #0x84]
- cmp r0, #1
- bne _02216F48
- ldr r1, [sp, #0x78]
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x7c]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x80]
- strh r1, [r0, #4]
- b _022170F2
-_02216F48:
- ldr r0, [sp, #0x78]
- neg r1, r0
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x7c]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x80]
- neg r1, r1
- strh r1, [r0, #4]
- b _022170F2
-_02216F5E:
- ldr r0, [sp, #0x14]
- cmp r0, #3
- bne _02216F74
- ldr r1, [sp, #0x78]
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x7c]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x80]
- strh r1, [r0, #4]
- b _022170F2
-_02216F74:
- cmp r0, #5
- add r0, sp, #0x20
- bne _02216F88
- ldr r1, [sp, #0x68]
- strh r1, [r0]
- ldr r1, [sp, #0x6c]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x70]
- strh r1, [r0, #4]
- b _022170F2
-_02216F88:
- ldr r1, [sp, #0x88]
- strh r1, [r0]
- ldr r1, [sp, #0x8c]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x90]
- strh r1, [r0, #4]
- b _022170F2
-_02216F96:
- ldr r0, [sp, #0x14]
- cmp r0, #3
- bne _02216FC8
- ldr r0, [sp, #0xc4]
- cmp r0, #1
- bne _02216FB2
- ldr r1, [sp, #0x88]
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x8c]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x90]
- strh r1, [r0, #4]
- b _022170F2
-_02216FB2:
- ldr r0, [sp, #0x88]
- neg r1, r0
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x8c]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x90]
- neg r1, r1
- strh r1, [r0, #4]
- b _022170F2
-_02216FC8:
- cmp r0, #2
- bne _02216FF8
- ldr r0, [sp, #0xc4]
- cmp r0, #1
- bne _02216FE2
- ldr r1, [sp, #0x98]
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x9c]
- strh r1, [r0, #2]
- ldr r1, [sp, #0xa0]
- strh r1, [r0, #4]
- b _022170F2
-_02216FE2:
- ldr r0, [sp, #0x98]
- neg r1, r0
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x9c]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0xa0]
- neg r1, r1
- strh r1, [r0, #4]
- b _022170F2
-_02216FF8:
- ldr r0, [sp, #0xc4]
- cmp r0, #1
- bne _0221700E
- ldr r1, [sp, #0x68]
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x6c]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x70]
- strh r1, [r0, #4]
- b _022170F2
-_0221700E:
- ldr r0, [sp, #0x68]
- neg r1, r0
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x6c]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x70]
- neg r1, r1
- strh r1, [r0, #4]
- b _022170F2
-_02217024:
- ldr r1, _0221706C ; =0xFFFFFCE0
- add r0, sp, #0x20
- strh r1, [r0]
- mov r1, #0x4b
- lsl r1, r1, #4
- strh r1, [r0, #2]
- mov r1, #0x7d
- lsl r1, r1, #2
- strh r1, [r0, #4]
- b _022170F2
-_02217038:
- ldr r1, _02217070 ; =0xFFFFF2AE
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, _02217074 ; =0xFFFFF5AC
- b _02217078
- nop
-_02217044: .word 0xFFFFF6E0
-_02217048: .word 0x0222BEA4
-_0221704C: .word 0x0222BEA8
-_02217050: .word 0x0222BEAC
-_02217054: .word 0xFFFFEF10
-_02217058: .word 0x0222C054
-_0221705C: .word 0x0222C058
-_02217060: .word 0x0222C05C
-_02217064: .word 0x0222B414
-_02217068: .word 0x0222B334
-_0221706C: .word 0xFFFFFCE0
-_02217070: .word 0xFFFFF2AE
-_02217074: .word 0xFFFFF5AC
-_02217078:
- strh r1, [r0, #2]
- mov r1, #0
- strh r1, [r0, #4]
- b _022170F2
-_02217080:
- ldr r1, _02217114 ; =0xFFFFF290
- add r0, sp, #0x20
- strh r1, [r0]
- mov r1, #0x7a
- lsl r1, r1, #4
- strh r1, [r0, #2]
- mov r1, #0
- strh r1, [r0, #4]
- b _022170F2
-_02217092:
- ldr r0, [sp, #4]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r1, [r1, #0x24]
- bl MOD08_02227470
- cmp r0, #3
- add r0, sp, #0x20
- bne _022170B6
- mov r1, #0x3b
- lsl r1, r1, #6
- strh r1, [r0]
- mov r1, #0x21
- lsl r1, r1, #6
- strh r1, [r0, #2]
- mov r1, #0
- strh r1, [r0, #4]
- b _022170F2
-_022170B6:
- ldr r1, _02217118 ; =0xFFFFE890
- strh r1, [r0]
- ldr r1, _0221711C ; =0xFFFFF768
- strh r1, [r0, #2]
- mov r1, #0
- strh r1, [r0, #4]
- b _022170F2
-_022170C4:
- ldr r4, _02217120 ; =0x0222B374
- add r3, sp, #0x28
- mov r2, #6
-_022170CA:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _022170CA
- ldr r0, [sp, #4]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r1, [r1, #0x24]
- bl MOD08_02227468
- lsl r2, r0, #3
- add r0, sp, #0x28
- ldr r1, [r0, r2]
- add r0, sp, #0x20
- strh r1, [r0]
- add r1, sp, #0x2c
- ldr r1, [r1, r2]
- strh r1, [r0, #2]
- mov r1, #0
- strh r1, [r0, #4]
-_022170F2:
- add r1, sp, #0x20
- ldr r0, [sp]
- ldrh r2, [r1]
- add r0, #0x50
- strh r2, [r0]
- ldr r0, [sp]
- ldrh r2, [r1, #2]
- add r0, #0x52
- strh r2, [r0]
- ldr r0, [sp]
- ldrh r1, [r1, #4]
- add r0, #0x54
- str r0, [sp]
- strh r1, [r0]
- add sp, #0x148
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02217114: .word 0xFFFFF290
-_02217118: .word 0xFFFFE890
-_0221711C: .word 0xFFFFF768
-_02217120: .word 0x0222B374
-
- thumb_func_start MOD08_02217124
-MOD08_02217124: ; 0x02217124
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r5, r1, #0
- bl MOD08_022178CC
- add r6, r0, #0
- mov r4, #0
- cmp r6, #0
- ble _02217154
-_02217136:
- add r0, r4, #0
- bl MOD08_022178A4
- ldr r1, [r5, #0x1c]
- and r1, r0
- cmp r0, r1
- bne _0221714E
- add r0, r4, #0
- add r1, r7, #0
- add r2, r5, #0
- bl MOD08_0221788C
-_0221714E:
- add r4, r4, #1
- cmp r4, r6
- blt _02217136
-_02217154:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217158
-MOD08_02217158: ; 0x02217158
- add r3, r0, #0
- add r2, r1, #0
- add r1, r3, #0
- ldr r3, _02217164 ; =MOD08_02217B04
- ldr r0, [r2, #0x20]
- bx r3
- .align 2, 0
-_02217164: .word MOD08_02217B04
-
- thumb_func_start MOD08_02217168
-MOD08_02217168: ; 0x02217168
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- bl MOD08_02227468
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- bl MOD08_02227468
- ldr r1, [r4, #0xc]
- cmp r1, #3
- bhi _022171B0
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02217190: ; jump table
- .short _022171B0 - _02217190 - 2 ; case 0
- .short _02217198 - _02217190 - 2 ; case 1
- .short _022171A6 - _02217190 - 2 ; case 2
- .short _022171B0 - _02217190 - 2 ; case 3
-_02217198:
- cmp r0, #0
- bne _022171A2
- mov r5, #1
- lsl r5, r5, #8
- b _022171B0
-_022171A2:
- ldr r5, _022171C4 ; =0xFFFFEC00
- b _022171B0
-_022171A6:
- cmp r0, #0
- bne _022171AE
- mov r5, #0
- b _022171B0
-_022171AE:
- ldr r5, _022171C8 ; =0xFFFFEB00
-_022171B0:
- ldr r0, [r4, #4]
- bl FUN_02013448
- ldr r0, [r6, #0x20]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r5, r0
- str r0, [r6, #0x30]
- pop {r4, r5, r6, pc}
- nop
-_022171C4: .word 0xFFFFEC00
-_022171C8: .word 0xFFFFEB00
-
- thumb_func_start MOD08_022171CC
-MOD08_022171CC: ; 0x022171CC
- push {r4, r5, r6, lr}
- add r6, r0, #0
- bl FUN_0201341C
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x38
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02212468
- str r0, [r4, #4]
- add r1, r4, #0
- ldr r0, [r4]
- add r1, #0xc
- mov r2, #6
- bl MOD08_02215434
- ldr r0, [r4, #0x10]
- cmp r0, #4
- bhi _02217214
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221720A: ; jump table
- .short _02217214 - _0221720A - 2 ; case 0
- .short _02217226 - _0221720A - 2 ; case 1
- .short _02217238 - _0221720A - 2 ; case 2
- .short _0221724A - _0221720A - 2 ; case 3
- .short _0221725C - _0221720A - 2 ; case 4
-_02217214:
- ldr r0, [r4]
- bl MOD08_02212458
- str r0, [r4, #0x24]
- ldr r0, [r4]
- bl MOD08_02212460
- str r0, [r4, #0x28]
- b _0221726C
-_02217226:
- ldr r0, [r4]
- bl MOD08_02212460
- str r0, [r4, #0x24]
- ldr r0, [r4]
- bl MOD08_02212458
- str r0, [r4, #0x28]
- b _0221726C
-_02217238:
- ldr r0, [r4]
- bl MOD08_02212458
- str r0, [r4, #0x24]
- ldr r0, [r4]
- bl MOD08_02212460
- str r0, [r4, #0x28]
- b _0221726C
-_0221724A:
- ldr r0, [r4]
- bl MOD08_02212460
- str r0, [r4, #0x24]
- ldr r0, [r4]
- bl MOD08_02212458
- str r0, [r4, #0x28]
- b _0221726C
-_0221725C:
- ldr r0, [r4]
- bl MOD08_02212458
- str r0, [r4, #0x24]
- ldr r0, [r4]
- bl MOD08_02212460
- str r0, [r4, #0x28]
-_0221726C:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD08_022164C8
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_0221727C
-MOD08_0221727C: ; 0x0221727C
- push {r4, r5, r6, lr}
- add r6, r0, #0
- ldr r0, [r6]
- ldr r1, [r6, #0x24]
- mov r4, #1
- bl MOD08_02227468
- add r5, r0, #0
- ldr r0, [r6]
- ldr r1, [r6, #0x28]
- bl MOD08_02227468
- cmp r5, #5
- bhi _022172BA
- add r0, r5, r5
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022172A4: ; jump table
- .short _022172BA - _022172A4 - 2 ; case 0
- .short _022172B0 - _022172A4 - 2 ; case 1
- .short _022172BA - _022172A4 - 2 ; case 2
- .short _022172B4 - _022172A4 - 2 ; case 3
- .short _022172BA - _022172A4 - 2 ; case 4
- .short _022172B8 - _022172A4 - 2 ; case 5
-_022172B0:
- sub r4, r4, #2
- b _022172BA
-_022172B4:
- sub r4, r4, #2
- b _022172BA
-_022172B8:
- sub r4, r4, #2
-_022172BA:
- add r0, r4, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022172C0
-MOD08_022172C0: ; 0x022172C0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- add r5, r0, #0
- add r0, sp, #0x20
- mov r4, #0
- str r4, [r0]
- str r4, [r0, #4]
- add r6, r1, #0
- add r7, r2, #0
- str r4, [r0, #8]
-_022172D4:
- ldr r0, [r5]
- add r1, r6, #0
- bl MOD08_02227468
- cmp r4, r0
- ldr r0, [r5]
- bne _022172EC
- add r1, sp, #0x10
- mov r2, #4
- bl MOD08_02215434
- b _022172F4
-_022172EC:
- add r1, sp, #0
- mov r2, #4
- bl MOD08_02215434
-_022172F4:
- add r4, r4, #1
- cmp r4, #6
- blt _022172D4
- add r0, r5, #0
- bl MOD08_0221727C
- strb r0, [r5, #8]
- ldr r0, [sp, #0x14]
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x18]
- str r0, [sp, #0x24]
- ldr r0, [sp, #0x1c]
- str r0, [sp, #0x28]
- ldr r0, [sp, #0x10]
- cmp r0, #1
- bne _02217318
- mov r0, #1
- strb r0, [r5, #8]
-_02217318:
- mov r1, #8
- ldrsb r0, [r5, r1]
- ldr r2, [sp, #0x20]
- ldr r3, [sp, #0x24]
- mul r0, r2
- str r0, [sp, #0x20]
- ldrsb r2, [r5, r1]
- mul r2, r3
- str r2, [sp, #0x24]
- ldrsb r1, [r5, r1]
- ldr r2, [sp, #0x28]
- mul r1, r2
- str r1, [sp, #0x28]
- ldr r1, [r7]
- add r0, r1, r0
- str r0, [r7]
- ldr r1, [r7, #4]
- ldr r0, [sp, #0x24]
- add r0, r1, r0
- str r0, [r7, #4]
- ldr r1, [r7, #8]
- ldr r0, [sp, #0x28]
- add r0, r1, r0
- str r0, [r7, #8]
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0221734C
-MOD08_0221734C: ; 0x0221734C
- push {r4, r5, lr}
- sub sp, #0x1c
- add r5, r0, #0
- add r4, r1, #0
- add r1, sp, #0
- mov r0, #0
- str r0, [r1]
- str r0, [r1, #4]
- str r0, [r1, #8]
- ldr r0, [r5]
- add r1, sp, #0xc
- mov r2, #4
- bl MOD08_02215434
- add r0, r5, #0
- bl MOD08_0221727C
- strb r0, [r5, #8]
- ldr r0, [sp, #0x10]
- str r0, [sp]
- ldr r0, [sp, #0x14]
- str r0, [sp, #4]
- ldr r0, [sp, #0x18]
- str r0, [sp, #8]
- ldr r0, [sp, #0xc]
- cmp r0, #1
- bne _02217386
- mov r0, #1
- strb r0, [r5, #8]
-_02217386:
- mov r1, #8
- ldrsb r0, [r5, r1]
- ldr r2, [sp]
- ldr r3, [sp, #4]
- mul r0, r2
- str r0, [sp]
- ldrsb r2, [r5, r1]
- mul r2, r3
- str r2, [sp, #4]
- ldrsb r1, [r5, r1]
- ldr r2, [sp, #8]
- mul r1, r2
- str r1, [sp, #8]
- ldr r1, [r4]
- add r0, r1, r0
- str r0, [r4]
- ldr r1, [r4, #4]
- ldr r0, [sp, #4]
- add r0, r1, r0
- str r0, [r4, #4]
- ldr r1, [r4, #8]
- ldr r0, [sp, #8]
- add r0, r1, r0
- str r0, [r4, #8]
- add sp, #0x1c
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022173BC
-MOD08_022173BC: ; 0x022173BC
- ldr r3, _022173C4 ; =MOD08_02215434
- ldr r0, [r0]
- mov r2, #5
- bx r3
- .align 2, 0
-_022173C4: .word MOD08_02215434
-
- thumb_func_start MOD08_022173C8
-MOD08_022173C8: ; 0x022173C8
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_022173CC
-MOD08_022173CC: ; 0x022173CC
- push {r4, r5, lr}
- sub sp, #0x1c
- add r5, r0, #0
- add r4, r1, #0
- add r1, sp, #0
- mov r0, #0
- strh r0, [r1]
- strh r0, [r1, #2]
- strh r0, [r1, #4]
- add r0, r4, #0
- add r1, sp, #8
- bl MOD08_022173BC
- add r0, r4, #0
- bl MOD08_0221727C
- strb r0, [r4, #8]
- ldr r0, [sp, #0xc]
- cmp r0, #1
- bne _022173F8
- mov r0, #1
- strb r0, [r4, #8]
-_022173F8:
- ldr r0, [sp, #8]
- cmp r0, #3
- bgt _02217416
- cmp r0, #0
- blt _02217482
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0221740E: ; jump table
- .short _0221741A - _0221740E - 2 ; case 0
- .short _02217446 - _0221740E - 2 ; case 1
- .short _02217482 - _0221740E - 2 ; case 2
- .short _02217482 - _0221740E - 2 ; case 3
-_02217416:
- cmp r0, #0xff
- b _02217482
-_0221741A:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_02013514
- add r2, sp, #0
- mov r0, #0
- mov r1, #8
- ldrsh r3, [r2, r0]
- ldrsb r0, [r4, r1]
- mul r0, r3
- strh r0, [r2]
- mov r0, #2
- ldrsh r3, [r2, r0]
- ldrsb r0, [r4, r1]
- mul r0, r3
- strh r0, [r2, #2]
- mov r0, #4
- ldrsh r3, [r2, r0]
- ldrsb r0, [r4, r1]
- mul r0, r3
- strh r0, [r2, #4]
- b _02217482
-_02217446:
- ldr r0, [sp, #0x10]
- add r2, sp, #0
- strh r0, [r2]
- ldr r0, [sp, #0x14]
- mov r1, #8
- strh r0, [r2, #2]
- ldr r0, [sp, #0x18]
- strh r0, [r2, #4]
- mov r0, #0
- ldrsh r3, [r2, r0]
- ldrsb r0, [r4, r1]
- mul r0, r3
- strh r0, [r2]
- mov r0, #2
- ldrsh r3, [r2, r0]
- ldrsb r0, [r4, r1]
- mul r0, r3
- strh r0, [r2, #2]
- mov r0, #4
- ldrsh r3, [r2, r0]
- ldrsb r0, [r4, r1]
- add r1, sp, #0
- mul r0, r3
- strh r0, [r2, #4]
- add r0, r5, #0
- bl FUN_02013514
- add sp, #0x1c
- mov r0, #1
- pop {r4, r5, pc}
-_02217482:
- add r1, sp, #0
- mov r0, #0
- ldrsh r2, [r1, r0]
- ldr r0, [r4, #0x2c]
- sub r0, r2, r0
- strh r0, [r1]
- mov r0, #2
- ldrsh r2, [r1, r0]
- ldr r0, [r4, #0x30]
- sub r0, r2, r0
- strh r0, [r1, #2]
- mov r0, #4
- ldrsh r2, [r1, r0]
- ldr r0, [r4, #0x34]
- sub r0, r2, r0
- strh r0, [r1, #4]
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_02013514
- mov r0, #1
- add sp, #0x1c
- pop {r4, r5, pc}
-
- thumb_func_start MOD08_022174B0
-MOD08_022174B0: ; 0x022174B0
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_022174B4
-MOD08_022174B4: ; 0x022174B4
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_022174B8
-MOD08_022174B8: ; 0x022174B8
- push {r4, r5, r6, lr}
- sub sp, #0x20
- add r5, r0, #0
- add r4, r1, #0
- add r1, sp, #0
- mov r0, #0
- str r0, [r1]
- str r0, [r1, #4]
- str r0, [r1, #8]
- add r0, r4, #0
- add r1, sp, #0xc
- bl MOD08_022173BC
- add r0, r4, #0
- bl MOD08_0221727C
- strb r0, [r4, #8]
- ldr r0, [sp, #0x10]
- cmp r0, #1
- bne _022174E4
- mov r0, #1
- strb r0, [r4, #8]
-_022174E4:
- ldr r0, [sp, #0xc]
- cmp r0, #3
- bgt _02217502
- cmp r0, #0
- blt _02217562
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022174FA: ; jump table
- .short _02217506 - _022174FA - 2 ; case 0
- .short _0221752A - _022174FA - 2 ; case 1
- .short _0221754C - _022174FA - 2 ; case 2
- .short _02217558 - _022174FA - 2 ; case 3
-_02217502:
- cmp r0, #0xff
- b _02217562
-_02217506:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_02013548
- mov r0, #8
- ldrsb r1, [r4, r0]
- ldr r2, [sp]
- mul r1, r2
- str r1, [sp]
- ldrsb r1, [r4, r0]
- ldr r2, [sp, #4]
- mul r1, r2
- str r1, [sp, #4]
- ldrsb r0, [r4, r0]
- ldr r1, [sp, #8]
- mul r0, r1
- str r0, [sp, #8]
- b _02217562
-_0221752A:
- ldr r2, [sp, #0x14]
- ldr r1, [sp, #0x18]
- ldr r0, [sp, #0x1c]
- str r2, [sp]
- str r1, [sp, #4]
- str r0, [sp, #8]
- mov r3, #8
- ldrsb r6, [r4, r3]
- mul r6, r2
- str r6, [sp]
- ldrsb r2, [r4, r3]
- mul r2, r1
- str r2, [sp, #4]
- ldrsb r1, [r4, r3]
- mul r1, r0
- str r1, [sp, #8]
- b _02217562
-_0221754C:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0
- bl MOD08_0222771C
- b _02217562
-_02217558:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0
- bl MOD08_0222771C
-_02217562:
- ldr r1, [sp]
- ldr r0, [r4, #0x2c]
- sub r0, r1, r0
- str r0, [sp]
- ldr r1, [sp, #4]
- ldr r0, [r4, #0x30]
- sub r0, r1, r0
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_02013530
- mov r0, #1
- add sp, #0x20
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_02217580
-MOD08_02217580: ; 0x02217580
- push {r3, r4, r5, lr}
- sub sp, #0x18
- add r5, r0, #0
- add r4, r1, #0
- mov r1, #0
- add r0, sp, #0
- strh r1, [r0]
- add r0, r4, #0
- add r1, sp, #4
- bl MOD08_022173BC
- add r0, r4, #0
- bl MOD08_0221727C
- strb r0, [r4, #8]
- ldr r0, [sp, #8]
- cmp r0, #1
- bne _022175A8
- mov r0, #1
- strb r0, [r4, #8]
-_022175A8:
- ldr r0, [sp, #4]
- cmp r0, #3
- bgt _022175C6
- cmp r0, #0
- blt _022175F4
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022175BE: ; jump table
- .short _022175CA - _022175BE - 2 ; case 0
- .short _022175E2 - _022175BE - 2 ; case 1
- .short _022175F4 - _022175BE - 2 ; case 2
- .short _022175F4 - _022175BE - 2 ; case 3
-_022175C6:
- cmp r0, #0xff
- b _022175F4
-_022175CA:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_02013594
- add r1, sp, #0
- mov r0, #0
- ldrsh r2, [r1, r0]
- mov r0, #8
- ldrsb r0, [r4, r0]
- mul r0, r2
- strh r0, [r1]
- b _022175F4
-_022175E2:
- ldr r0, [sp, #0xc]
- add r1, sp, #0
- strh r0, [r1]
- mov r0, #0
- ldrsh r2, [r1, r0]
- mov r0, #8
- ldrsb r0, [r4, r0]
- mul r0, r2
- strh r0, [r1]
-_022175F4:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_0201357C
- mov r0, #1
- add sp, #0x18
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217604
-MOD08_02217604: ; 0x02217604
- push {r3, r4, r5, lr}
- sub sp, #0x18
- add r5, r0, #0
- add r4, r1, #0
- mov r1, #0
- add r0, sp, #0
- strh r1, [r0]
- add r0, r4, #0
- add r1, sp, #4
- bl MOD08_022173BC
- add r0, r4, #0
- bl MOD08_0221727C
- strb r0, [r4, #8]
- ldr r0, [sp, #8]
- cmp r0, #1
- bne _0221762C
- mov r0, #1
- strb r0, [r4, #8]
-_0221762C:
- ldr r0, [sp, #4]
- cmp r0, #3
- bgt _0221764A
- cmp r0, #0
- blt _02217674
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02217642: ; jump table
- .short _0221764E - _02217642 - 2 ; case 0
- .short _02217664 - _02217642 - 2 ; case 1
- .short _02217674 - _02217642 - 2 ; case 2
- .short _02217674 - _02217642 - 2 ; case 3
-_0221764A:
- cmp r0, #0xff
- b _02217674
-_0221764E:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_020135C4
- add r1, sp, #0
- mov r0, #8
- ldrh r2, [r1]
- ldrsb r0, [r4, r0]
- mul r0, r2
- strh r0, [r1]
- b _02217674
-_02217664:
- ldr r0, [sp, #0xc]
- add r1, sp, #0
- strh r0, [r1]
- mov r0, #8
- ldrh r2, [r1]
- ldrsb r0, [r4, r0]
- mul r0, r2
- strh r0, [r1]
-_02217674:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_020135B0
- mov r0, #1
- add sp, #0x18
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217684
-MOD08_02217684: ; 0x02217684
- push {r3, r4, r5, lr}
- sub sp, #0x18
- add r5, r0, #0
- add r4, r1, #0
- mov r1, #0
- add r0, sp, #0
- strh r1, [r0]
- add r0, r4, #0
- add r1, sp, #4
- bl MOD08_022173BC
- add r0, r4, #0
- bl MOD08_0221727C
- strb r0, [r4, #8]
- ldr r0, [sp, #8]
- cmp r0, #1
- bne _022176AC
- mov r0, #1
- strb r0, [r4, #8]
-_022176AC:
- ldr r1, [sp, #4]
- cmp r1, #3
- bgt _022176CA
- cmp r1, #0
- blt _022176DE
- add r0, r1, r1
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022176C2: ; jump table
- .short _022176CE - _022176C2 - 2 ; case 0
- .short _022176D8 - _022176C2 - 2 ; case 1
- .short _022176DE - _022176C2 - 2 ; case 2
- .short _022176DE - _022176C2 - 2 ; case 3
-_022176CA:
- cmp r1, #0xff
- b _022176DE
-_022176CE:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_020135F4
- b _022176DE
-_022176D8:
- ldr r1, [sp, #0xc]
- add r0, sp, #0
- strh r1, [r0]
-_022176DE:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_020135E0
- mov r0, #1
- add sp, #0x18
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_022176EC
-MOD08_022176EC: ; 0x022176EC
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_022176F0
-MOD08_022176F0: ; 0x022176F0
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_022176F4
-MOD08_022176F4: ; 0x022176F4
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_022176F8
-MOD08_022176F8: ; 0x022176F8
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_022176FC
-MOD08_022176FC: ; 0x022176FC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- add r7, r0, #0
- add r4, r1, #0
- add r1, sp, #0
- mov r0, #0
- str r0, [r1]
- str r0, [r1, #4]
- str r0, [r1, #8]
- add r0, r4, #0
- add r1, sp, #0xc
- bl MOD08_022173BC
- add r0, r4, #0
- bl MOD08_0221727C
- strb r0, [r4, #8]
- ldr r0, [sp, #0x10]
- cmp r0, #1
- bne _02217728
- mov r0, #1
- strb r0, [r4, #8]
-_02217728:
- ldr r0, [sp, #0xc]
- cmp r0, #4
- bgt _02217748
- cmp r0, #0
- blt _022177E2
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0221773E: ; jump table
- .short _0221774C - _0221773E - 2 ; case 0
- .short _02217770 - _0221773E - 2 ; case 1
- .short _022177CC - _0221773E - 2 ; case 2
- .short _022177D8 - _0221773E - 2 ; case 3
- .short _02217792 - _0221773E - 2 ; case 4
-_02217748:
- cmp r0, #0xff
- b _022177E2
-_0221774C:
- add r0, r7, #0
- add r1, sp, #0
- bl FUN_02013628
- mov r0, #8
- ldrsb r1, [r4, r0]
- ldr r2, [sp]
- mul r1, r2
- str r1, [sp]
- ldrsb r1, [r4, r0]
- ldr r2, [sp, #4]
- mul r1, r2
- str r1, [sp, #4]
- ldrsb r0, [r4, r0]
- ldr r1, [sp, #8]
- mul r0, r1
- str r0, [sp, #8]
- b _022177E2
-_02217770:
- ldr r2, [sp, #0x14]
- ldr r1, [sp, #0x18]
- ldr r0, [sp, #0x1c]
- str r2, [sp]
- str r1, [sp, #4]
- str r0, [sp, #8]
- mov r3, #8
- ldrsb r5, [r4, r3]
- mul r5, r2
- str r5, [sp]
- ldrsb r2, [r4, r3]
- mul r2, r1
- str r2, [sp, #4]
- ldrsb r1, [r4, r3]
- mul r1, r0
- str r1, [sp, #8]
- b _022177E2
-_02217792:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0
- bl MOD08_0222771C
- ldr r1, [sp]
- ldr r5, [sp, #0x14]
- add r0, r1, #0
- ldr r6, [sp, #0x18]
- mul r0, r5
- add r1, r6, #0
- bl _s32_div_f
- ldr r1, [sp, #4]
- str r0, [sp]
- add r0, r1, #0
- mul r0, r5
- add r1, r6, #0
- bl _s32_div_f
- ldr r1, [sp, #8]
- str r0, [sp, #4]
- add r0, r1, #0
- mul r0, r5
- add r1, r6, #0
- bl _s32_div_f
- str r0, [sp, #8]
- b _022177E2
-_022177CC:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0
- bl MOD08_0222771C
- b _022177E2
-_022177D8:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0
- bl MOD08_0222771C
-_022177E2:
- ldr r1, [sp]
- ldr r0, [r4, #0x2c]
- sub r0, r1, r0
- str r0, [sp]
- ldr r1, [sp, #4]
- ldr r0, [r4, #0x30]
- sub r0, r1, r0
- str r0, [sp, #4]
- ldr r1, [sp, #8]
- ldr r0, [r4, #0x34]
- sub r0, r1, r0
- str r0, [sp, #8]
- add r0, r7, #0
- add r1, sp, #0
- bl FUN_02013610
- mov r0, #1
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02217808
-MOD08_02217808: ; 0x02217808
- push {r3, r4, r5, lr}
- sub sp, #0x18
- add r5, r0, #0
- add r4, r1, #0
- mov r1, #0
- add r0, sp, #0
- strh r1, [r0]
- add r0, r4, #0
- add r1, sp, #4
- bl MOD08_022173BC
- add r0, r4, #0
- bl MOD08_0221727C
- strb r0, [r4, #8]
- ldr r0, [sp, #8]
- cmp r0, #1
- bne _02217830
- mov r0, #1
- strb r0, [r4, #8]
-_02217830:
- ldr r0, [sp, #4]
- cmp r0, #3
- bgt _0221784E
- cmp r0, #0
- blt _0221787C
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02217846: ; jump table
- .short _02217852 - _02217846 - 2 ; case 0
- .short _0221786A - _02217846 - 2 ; case 1
- .short _0221787C - _02217846 - 2 ; case 2
- .short _0221787C - _02217846 - 2 ; case 3
-_0221784E:
- cmp r0, #0xff
- b _0221787C
-_02217852:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_02013674
- add r1, sp, #0
- mov r0, #0
- ldrsh r2, [r1, r0]
- mov r0, #8
- ldrsb r0, [r4, r0]
- mul r0, r2
- strh r0, [r1]
- b _0221787C
-_0221786A:
- ldr r0, [sp, #0xc]
- add r1, sp, #0
- strh r0, [r1]
- mov r0, #0
- ldrsh r2, [r1, r0]
- mov r0, #8
- ldrsb r0, [r4, r0]
- mul r0, r2
- strh r0, [r1]
-_0221787C:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_0201365C
- mov r0, #1
- add sp, #0x18
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221788C
-MOD08_0221788C: ; 0x0221788C
- push {r3, lr}
- add r3, r0, #0
- add r0, r1, #0
- add r1, r2, #0
- ldr r2, _022178A0 ; =0x0222C204
- lsl r3, r3, #2
- ldr r2, [r2, r3]
- blx r2
- pop {r3, pc}
- nop
-_022178A0: .word 0x0222C204
-
- thumb_func_start MOD08_022178A4
-MOD08_022178A4: ; 0x022178A4
- push {r3, r4, r5}
- sub sp, #0x3c
- ldr r4, _022178C8 ; =0x0222C23C
- add r5, r0, #0
- add r3, sp, #0
- mov r2, #7
-_022178B0:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _022178B0
- ldr r0, [r4]
- lsl r1, r5, #2
- str r0, [r3]
- add r0, sp, #0
- ldr r0, [r0, r1]
- add sp, #0x3c
- pop {r3, r4, r5}
- bx lr
- .align 2, 0
-_022178C8: .word 0x0222C23C
-
- thumb_func_start MOD08_022178CC
-MOD08_022178CC: ; 0x022178CC
- push {r4, r5, r6, lr}
- mov r4, #0
- ldr r6, _022178F4 ; =0x0000FEFE
- add r5, r4, #0
-_022178D4:
- add r0, r4, #0
- bl MOD08_022178A4
- add r4, r4, #1
- cmp r0, r6
- beq _022178E6
- add r5, r5, #1
- cmp r5, #0xff
- blt _022178D4
-_022178E6:
- cmp r5, #0xff
- blt _022178EE
- mov r0, #0
- pop {r4, r5, r6, pc}
-_022178EE:
- add r0, r4, #0
- pop {r4, r5, r6, pc}
- nop
-_022178F4: .word 0x0000FEFE
-
- thumb_func_start MOD08_022178F8
-MOD08_022178F8: ; 0x022178F8
- ldr r3, _02217900 ; =MOD08_02215434
- ldr r0, [r0]
- mov r2, #4
- bx r3
- .align 2, 0
-_02217900: .word MOD08_02215434
-
- thumb_func_start MOD08_02217904
-MOD08_02217904: ; 0x02217904
- push {r3, lr}
- sub sp, #8
- add r2, sp, #0
- mov r0, #0
- strh r0, [r2]
- strh r0, [r2, #2]
- strh r0, [r2, #4]
- strh r0, [r2, #6]
- ldr r0, [r1, #4]
- bl FUN_0201343C
- add r1, r0, #0
- add r0, sp, #0
- bl FUN_0201EF90
- mov r0, #1
- add sp, #8
- pop {r3, pc}
-
- thumb_func_start MOD08_02217928
-MOD08_02217928: ; 0x02217928
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- ldr r1, _02217960 ; =0x0222C278
- add r0, sp, #0
- ldrh r2, [r1, #0x20]
- strh r2, [r0]
- ldrh r2, [r1, #0x22]
- strh r2, [r0, #2]
- ldrh r2, [r1, #0x24]
- ldrh r1, [r1, #0x26]
- strh r2, [r0, #4]
- strh r1, [r0, #6]
- ldr r0, [r4, #4]
- bl FUN_0201343C
- add r5, r0, #0
- ldr r0, [r4, #4]
- mov r1, #1
- bl FUN_02013440
- add r0, sp, #0
- add r1, r5, #0
- bl FUN_0201EF90
- mov r0, #1
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02217960: .word 0x0222C278
-
- thumb_func_start MOD08_02217964
-MOD08_02217964: ; 0x02217964
- push {r4, lr}
- sub sp, #0x18
- add r4, r1, #0
- add r1, sp, #0
- mov r0, #0
- strh r0, [r1]
- strh r0, [r1, #2]
- strh r0, [r1, #4]
- strh r0, [r1, #6]
- add r0, r4, #0
- add r1, sp, #8
- bl MOD08_022178F8
- ldr r1, [sp, #0xc]
- add r0, sp, #0
- strh r1, [r0]
- ldr r1, [sp, #0x10]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x14]
- strh r1, [r0, #4]
- ldr r0, [r4, #4]
- bl FUN_0201343C
- add r1, r0, #0
- add r0, sp, #0
- bl FUN_0201EF90
- mov r0, #1
- add sp, #0x18
- pop {r4, pc}
-
- thumb_func_start MOD08_022179A0
-MOD08_022179A0: ; 0x022179A0
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- ldr r1, _022179D8 ; =0x0222C278
- add r0, sp, #0
- ldrh r2, [r1, #0x18]
- strh r2, [r0]
- ldrh r2, [r1, #0x1a]
- strh r2, [r0, #2]
- ldrh r2, [r1, #0x1c]
- ldrh r1, [r1, #0x1e]
- strh r2, [r0, #4]
- strh r1, [r0, #6]
- ldr r0, [r4, #4]
- bl FUN_0201343C
- add r5, r0, #0
- ldr r0, [r4, #4]
- mov r1, #1
- bl FUN_02013440
- add r0, sp, #0
- add r1, r5, #0
- bl FUN_0201EF90
- mov r0, #1
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022179D8: .word 0x0222C278
-
- thumb_func_start MOD08_022179DC
-MOD08_022179DC: ; 0x022179DC
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r4, r1, #0
- ldr r1, _02217A38 ; =0x0222C278
- add r0, sp, #0
- ldrh r2, [r1, #0x10]
- strh r2, [r0, #8]
- ldrh r2, [r1, #0x12]
- strh r2, [r0, #0xa]
- ldrh r2, [r1, #0x14]
- strh r2, [r0, #0xc]
- ldrh r2, [r1, #0x16]
- strh r2, [r0, #0xe]
- ldrh r2, [r1, #0x28]
- strh r2, [r0]
- ldrh r2, [r1, #0x2a]
- strh r2, [r0, #2]
- ldrh r2, [r1, #0x2c]
- strh r2, [r0, #4]
- ldrh r1, [r1, #0x2e]
- strh r1, [r0, #6]
- ldr r0, [r4, #4]
- bl FUN_0201343C
- add r5, r0, #0
- ldr r0, [r4, #4]
- mov r1, #1
- bl FUN_02013440
- ldr r0, [r4]
- bl MOD08_02212004
- cmp r0, #1
- bne _02217A2A
- add r0, sp, #8
- add r1, r5, #0
- bl FUN_0201EF90
- b _02217A32
-_02217A2A:
- add r0, sp, #0
- add r1, r5, #0
- bl FUN_0201EF90
-_02217A32:
- mov r0, #1
- add sp, #0x10
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02217A38: .word 0x0222C278
-
- thumb_func_start MOD08_02217A3C
-MOD08_02217A3C: ; 0x02217A3C
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- ldr r1, _02217A74 ; =0x0222C278
- add r0, sp, #0
- ldrh r2, [r1]
- strh r2, [r0]
- ldrh r2, [r1, #2]
- strh r2, [r0, #2]
- ldrh r2, [r1, #4]
- ldrh r1, [r1, #6]
- strh r2, [r0, #4]
- strh r1, [r0, #6]
- ldr r0, [r4, #4]
- bl FUN_0201343C
- add r5, r0, #0
- ldr r0, [r4, #4]
- mov r1, #1
- bl FUN_02013440
- add r0, sp, #0
- add r1, r5, #0
- bl FUN_0201EF90
- mov r0, #1
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02217A74: .word 0x0222C278
-
- thumb_func_start MOD08_02217A78
-MOD08_02217A78: ; 0x02217A78
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- ldr r1, _02217AB0 ; =0x0222C278
- add r0, sp, #0
- ldrh r2, [r1, #8]
- strh r2, [r0]
- ldrh r2, [r1, #0xa]
- strh r2, [r0, #2]
- ldrh r2, [r1, #0xc]
- ldrh r1, [r1, #0xe]
- strh r2, [r0, #4]
- strh r1, [r0, #6]
- ldr r0, [r4, #4]
- bl FUN_0201343C
- add r5, r0, #0
- ldr r0, [r4, #4]
- mov r1, #1
- bl FUN_02013440
- add r0, sp, #0
- add r1, r5, #0
- bl FUN_0201EF90
- mov r0, #1
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02217AB0: .word 0x0222C278
-
- thumb_func_start MOD08_02217AB4
-MOD08_02217AB4: ; 0x02217AB4
- push {r4, r5, lr}
- sub sp, #0xc
- add r5, r1, #0
- ldr r0, [r5, #4]
- bl FUN_0201343C
- add r4, r0, #0
- ldr r0, [r5]
- ldr r1, [r5, #0x24]
- add r2, sp, #0
- bl MOD08_022278FC
- add r0, sp, #0
- add r1, r4, #0
- bl FUN_0201F04C
- mov r0, #1
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217ADC
-MOD08_02217ADC: ; 0x02217ADC
- push {r4, r5, lr}
- sub sp, #0xc
- add r5, r1, #0
- ldr r0, [r5, #4]
- bl FUN_0201343C
- add r4, r0, #0
- ldr r0, [r5]
- ldr r1, [r5, #0x28]
- add r2, sp, #0
- bl MOD08_022278FC
- add r0, sp, #0
- add r1, r4, #0
- bl FUN_0201F04C
- mov r0, #1
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217B04
-MOD08_02217B04: ; 0x02217B04
- push {r3, lr}
- add r3, r0, #0
- add r0, r1, #0
- add r1, r2, #0
- ldr r2, _02217B18 ; =0x0222C2A8
- lsl r3, r3, #2
- ldr r2, [r2, r3]
- blx r2
- pop {r3, pc}
- nop
-_02217B18: .word 0x0222C2A8
-
- thumb_func_start MOD08_02217B1C
-MOD08_02217B1C: ; 0x02217B1C
- push {r3, r4, r5, r6}
- cmp r2, #0
- beq _02217B32
- mov r4, #0x18
- add r6, r0, #0
- mul r6, r4
- ldr r4, _02217B48 ; =0x0222C2CC
- lsl r5, r1, #2
- add r4, r4, r6
- ldrsh r4, [r5, r4]
- strh r4, [r2]
-_02217B32:
- cmp r3, #0
- beq _02217B44
- mov r2, #0x18
- mul r2, r0
- ldr r0, _02217B4C ; =0x0222C2CE
- lsl r1, r1, #2
- add r0, r0, r2
- ldrsh r0, [r1, r0]
- strh r0, [r3]
-_02217B44:
- pop {r3, r4, r5, r6}
- bx lr
- .align 2, 0
-_02217B48: .word 0x0222C2CC
-_02217B4C: .word 0x0222C2CE
-
- thumb_func_start MOD08_02217B50
-MOD08_02217B50: ; 0x02217B50
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r5, r1, #0
- add r4, r2, #0
- add r6, r3, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02217B70
- mov r0, #0
- add r1, r5, #2
- add r2, r4, #0
- add r3, r6, #0
- bl MOD08_02217B1C
- pop {r3, r4, r5, r6, r7, pc}
-_02217B70:
- add r0, r7, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _02217B88
- mov r0, #1
- sub r1, r5, #2
- add r2, r4, #0
- add r3, r6, #0
- bl MOD08_02217B1C
- pop {r3, r4, r5, r6, r7, pc}
-_02217B88:
- mov r0, #0
- add r1, r5, #0
- add r2, r4, #0
- add r3, r6, #0
- bl MOD08_02217B1C
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217B98
-MOD08_02217B98: ; 0x02217B98
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r6, r2, #0
- bl MOD08_02227468
- add r4, r0, #0
- add r0, r7, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _02217BB2
- mov r5, #1
- b _02217BB4
-_02217BB2:
- mov r5, #0
-_02217BB4:
- add r0, r7, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02217BC0
- add r4, r4, #2
-_02217BC0:
- cmp r6, #3
- bhi _02217BF8
- add r0, r6, r6
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02217BD0: ; jump table
- .short _02217BD8 - _02217BD0 - 2 ; case 0
- .short _02217BE8 - _02217BD0 - 2 ; case 1
- .short _02217BD8 - _02217BD0 - 2 ; case 2
- .short _02217BE8 - _02217BD0 - 2 ; case 3
-_02217BD8:
- mov r0, #0x18
- add r2, r5, #0
- mul r2, r0
- ldr r0, _02217C00 ; =0x0222C2CC
- lsl r1, r4, #2
- add r0, r0, r2
- ldrsh r0, [r1, r0]
- pop {r3, r4, r5, r6, r7, pc}
-_02217BE8:
- mov r0, #0x18
- add r2, r5, #0
- mul r2, r0
- ldr r0, _02217C04 ; =0x0222C2CE
- lsl r1, r4, #2
- add r0, r0, r2
- ldrsh r0, [r1, r0]
- pop {r3, r4, r5, r6, r7, pc}
-_02217BF8:
- bl ErrorHandling
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02217C00: .word 0x0222C2CC
-_02217C04: .word 0x0222C2CE
-
- thumb_func_start MOD08_02217C08
-MOD08_02217C08: ; 0x02217C08
- push {r3, lr}
- ldr r0, [r0]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- pop {r3, pc}
-
- thumb_func_start MOD08_02217C1C
-MOD08_02217C1C: ; 0x02217C1C
- push {r4, r5, r6, lr}
- add r6, r0, #0
- mov r5, #1
- bl MOD08_02227470
- add r4, r0, #0
- add r0, r6, #0
- bl MOD08_02212004
- cmp r0, #0
- beq _02217C3A
- cmp r4, #3
- bne _02217C40
- sub r5, r5, #2
- b _02217C40
-_02217C3A:
- cmp r4, #4
- bne _02217C40
- sub r5, r5, #2
-_02217C40:
- add r0, r5, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_02217C44
-MOD08_02217C44: ; 0x02217C44
- push {r4, lr}
- mov r4, #1
- bl MOD08_02227470
- cmp r0, #4
- bne _02217C52
- sub r4, r4, #2
-_02217C52:
- add r0, r4, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217C58
-MOD08_02217C58: ; 0x02217C58
- ldr r3, _02217C60 ; =0x020C50B8
- sub r0, r1, r0
- lsl r1, r2, #0xc
- bx r3
- .align 2, 0
-_02217C60: .word 0x020C50B8
-
- thumb_func_start MOD08_02217C64
-MOD08_02217C64: ; 0x02217C64
- push {r3, lr}
- sub r0, r1, r0
- add r1, r2, #0
- bl FX_Div
- add r1, sp, #0
- str r0, [sp]
- bl FX_Modf
- cmp r0, #0
- beq _02217C84
- mov r0, #1
- ldr r1, [sp]
- lsl r0, r0, #0xc
- add r0, r1, r0
- str r0, [sp]
-_02217C84:
- ldr r0, [sp]
- cmp r0, #0
- bge _02217C8C
- neg r0, r0
-_02217C8C:
- str r0, [sp]
- asr r0, r0, #0xc
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217C94
-MOD08_02217C94: ; 0x02217C94
- push {r4, lr}
- add r4, r0, #0
- add r0, r1, #0
- mov r1, #0
- ldrsh r1, [r4, r1]
- add r1, r2, r1
- mov r2, #2
- ldrsh r2, [r4, r2]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add r2, r3, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C714
- pop {r4, pc}
-
- thumb_func_start MOD08_02217CB4
-MOD08_02217CB4: ; 0x02217CB4
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- add r1, sp, #4
- add r2, sp, #0
- bl MOD08_0221825C
- ldr r1, [sp, #4]
- ldr r2, [sp]
- add r0, r4, #0
- bl FUN_0200C884
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD08_02217CD0
-MOD08_02217CD0: ; 0x02217CD0
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- mov r1, #0
- add r6, r3, #0
- ldrsh r3, [r5, r1]
- add r0, r4, #0
- add r2, r2, r3
- bl FUN_02007558
- mov r2, #2
- ldrsh r2, [r5, r2]
- add r0, r4, #0
- mov r1, #1
- add r2, r6, r2
- bl FUN_02007558
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_02217CF4
-MOD08_02217CF4: ; 0x02217CF4
- push {r3, r4, r5, lr}
- add r5, r0, #0
- mov r2, #0
- add r4, r1, #0
- ldrsh r2, [r5, r2]
- add r0, r4, #0
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #2
- ldrsh r2, [r5, r2]
- add r0, r4, #0
- mov r1, #0xd
- bl FUN_02007558
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02217D14
-MOD08_02217D14: ; 0x02217D14
- push {r3, r4, r5, lr}
- add r4, r3, #0
- add r5, r0, #0
- ldr r3, [sp, #0x1c]
- ldr r0, [sp, #0x14]
- str r3, [r5, #4]
- str r1, [r5, #8]
- str r0, [r5, #0xc]
- ldr r0, [sp, #0x18]
- str r4, [r5, #0x10]
- str r0, [r5, #0x14]
- sub r0, r2, r1
- add r1, r3, #0
- bl _s32_div_f
- str r0, [r5, #0x18]
- add r0, sp, #0
- ldrh r0, [r0, #0x10]
- ldr r1, [sp, #0x1c]
- sub r0, r0, r4
- bl _s32_div_f
- str r0, [r5, #0x1c]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02217D44
-MOD08_02217D44: ; 0x02217D44
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r4, r1, #0
- add r7, r2, #0
- str r3, [sp]
- cmp r5, #0
- bne _02217D56
- bl ErrorHandling
-_02217D56:
- cmp r4, r7
- bls _02217D62
- add r0, sp, #8
- ldrh r1, [r0, #0x1c]
- neg r1, r1
- strh r1, [r0, #0x1c]
-_02217D62:
- add r1, sp, #8
- mov r0, #0x1c
- ldrsh r6, [r1, r0]
- lsl r0, r4, #0xc
- lsl r1, r7, #0xc
- lsl r2, r6, #0xc
- bl MOD08_02217C64
- str r0, [r5, #4]
- ldr r0, [sp, #0x1c]
- str r4, [r5, #8]
- str r0, [r5, #0xc]
- ldr r0, [sp]
- str r0, [r5, #0x10]
- ldr r0, [sp, #0x20]
- str r0, [r5, #0x14]
- str r6, [r5, #0x18]
- add r0, sp, #8
- ldrh r1, [r0, #0x10]
- ldr r0, [sp]
- sub r0, r1, r0
- ldr r1, [r5, #4]
- bl _s32_div_f
- str r0, [r5, #0x1c]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217D98
-MOD08_02217D98: ; 0x02217D98
- push {r4, lr}
- add r4, r0, #0
- bne _02217DA2
- bl ErrorHandling
-_02217DA2:
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _02217E26
- ldr r1, [r4, #8]
- ldr r0, [r4, #0x18]
- add r0, r1, r0
- str r0, [r4, #8]
- ldr r1, [r4, #0x10]
- ldr r0, [r4, #0x1c]
- add r0, r1, r0
- str r0, [r4, #0x10]
- ldr r0, [r4, #8]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [r4, #8]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [r4, #0x10]
- ldr r0, [r4, #4]
- sub r0, r0, #1
- str r0, [r4, #4]
- ldr r0, [r4, #8]
- ldr r2, [r4, #0xc]
- asr r0, r0, #4
- lsl r1, r0, #2
- ldr r0, _02217E2C ; =0x020FFA38
- asr r3, r2, #0x1f
- ldrsh r0, [r0, r1]
- asr r1, r0, #0x1f
- bl _ll_mul
- mov r2, #2
- mov r3, #0
- lsl r2, r2, #0xa
- add r2, r0, r2
- adc r1, r3
- lsl r0, r1, #0x14
- lsr r1, r2, #0xc
- orr r1, r0
- asr r0, r1, #0xc
- strh r0, [r4]
- ldr r0, [r4, #0x10]
- ldr r2, [r4, #0x14]
- asr r0, r0, #4
- lsl r0, r0, #1
- add r0, r0, #1
- lsl r1, r0, #1
- ldr r0, _02217E2C ; =0x020FFA38
- asr r3, r2, #0x1f
- ldrsh r0, [r0, r1]
- asr r1, r0, #0x1f
- bl _ll_mul
- mov r2, #2
- mov r3, #0
- lsl r2, r2, #0xa
- add r2, r0, r2
- adc r1, r3
- lsl r0, r1, #0x14
- lsr r1, r2, #0xc
- orr r1, r0
- asr r0, r1, #0xc
- strh r0, [r4, #2]
- mov r0, #1
- pop {r4, pc}
-_02217E26:
- mov r0, #0
- pop {r4, pc}
- nop
-_02217E2C: .word 0x020FFA38
-
- thumb_func_start MOD08_02217E30
-MOD08_02217E30: ; 0x02217E30
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r4, r1, #0
- add r6, r2, #0
- add r7, r3, #0
- bl MOD08_02217D98
- cmp r0, #0
- beq _02217E52
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- add r3, r6, #0
- bl MOD08_02217C94
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02217E52:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217E58
-MOD08_02217E58: ; 0x02217E58
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r4, r1, #0
- add r6, r2, #0
- add r7, r3, #0
- bl MOD08_02217D98
- cmp r0, #0
- beq _02217E7A
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- add r3, r6, #0
- bl MOD08_02217CD0
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02217E7A:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217E80
-MOD08_02217E80: ; 0x02217E80
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- add r4, r1, #0
- add r6, r3, #0
- str r2, [sp]
- cmp r5, #0
- bne _02217E94
- bl ErrorHandling
-_02217E94:
- strh r4, [r5]
- strh r6, [r5, #2]
- add r0, sp, #0x10
- ldrh r7, [r0, #0x14]
- lsl r0, r4, #0xc
- str r0, [sp, #4]
- str r7, [r5, #4]
- ldr r1, [sp]
- add r2, r7, #0
- lsl r1, r1, #0xc
- bl MOD08_02217C58
- str r0, [r5, #8]
- lsl r4, r6, #0xc
- add r2, sp, #0x10
- mov r1, #0x10
- ldrsh r1, [r2, r1]
- add r0, r4, #0
- add r2, r7, #0
- lsl r1, r1, #0xc
- bl MOD08_02217C58
- str r0, [r5, #0xc]
- ldr r0, [sp, #4]
- str r0, [r5, #0x10]
- str r4, [r5, #0x14]
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02217ECC
-MOD08_02217ECC: ; 0x02217ECC
- push {r4, lr}
- add r4, r0, #0
- bne _02217ED6
- bl ErrorHandling
-_02217ED6:
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _02217F02
- ldr r1, [r4, #0x10]
- ldr r0, [r4, #8]
- add r0, r1, r0
- str r0, [r4, #0x10]
- ldr r1, [r4, #0x14]
- ldr r0, [r4, #0xc]
- add r0, r1, r0
- str r0, [r4, #0x14]
- ldr r0, [r4, #0x10]
- asr r0, r0, #0xc
- strh r0, [r4]
- ldr r0, [r4, #0x14]
- asr r0, r0, #0xc
- strh r0, [r4, #2]
- ldr r0, [r4, #4]
- sub r0, r0, #1
- str r0, [r4, #4]
- mov r0, #1
- pop {r4, pc}
-_02217F02:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217F08
-MOD08_02217F08: ; 0x02217F08
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD08_02217ECC
- cmp r0, #0
- beq _02217F26
- mov r2, #0
- add r0, r5, #0
- add r1, r4, #0
- add r3, r2, #0
- bl MOD08_02217C94
- mov r0, #1
- pop {r3, r4, r5, pc}
-_02217F26:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217F2C
-MOD08_02217F2C: ; 0x02217F2C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD08_02217ECC
- cmp r0, #0
- beq _02217F4A
- mov r2, #0
- add r0, r5, #0
- add r1, r4, #0
- add r3, r2, #0
- bl MOD08_02217CD0
- mov r0, #1
- pop {r3, r4, r5, pc}
-_02217F4A:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217F50
-MOD08_02217F50: ; 0x02217F50
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r5, r1, #0
- add r4, sp, #0x10
- mov r1, #0x14
- ldrsh r1, [r4, r1]
- str r1, [sp]
- ldrh r1, [r4, #0x18]
- str r1, [sp, #4]
- add r1, r2, #0
- add r2, r3, #0
- mov r3, #0x10
- ldrsh r3, [r4, r3]
- bl MOD08_02217E80
- mov r1, #0
- strh r1, [r5]
- ldr r0, _02217F94 ; =0x0000BFFF
- strh r1, [r5, #2]
- str r0, [sp]
- ldr r0, [sp, #0x2c]
- str r1, [sp, #4]
- str r0, [sp, #8]
- add r0, r4, #0
- ldrh r0, [r0, #0x18]
- ldr r3, _02217F98 ; =0x00003FFF
- add r2, r1, #0
- str r0, [sp, #0xc]
- add r0, r5, #0
- bl MOD08_02217D14
- add sp, #0x10
- pop {r3, r4, r5, pc}
- nop
-_02217F94: .word 0x0000BFFF
-_02217F98: .word 0x00003FFF
-
- thumb_func_start MOD08_02217F9C
-MOD08_02217F9C: ; 0x02217F9C
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r4, r1, #0
- cmp r5, #0
- bne _02217FAA
- bl ErrorHandling
-_02217FAA:
- cmp r4, #0
- bne _02217FB2
- bl ErrorHandling
-_02217FB2:
- add r0, r5, #0
- bl MOD08_02217ECC
- add r6, r0, #0
- add r0, r4, #0
- bl MOD08_02217D98
- mov r2, #0
- ldrsh r3, [r5, r2]
- ldrsh r1, [r4, r2]
- add r1, r3, r1
- strh r1, [r5]
- mov r1, #2
- ldrsh r3, [r5, r1]
- ldrsh r1, [r4, r1]
- add r1, r3, r1
- strh r1, [r5, #2]
- cmp r6, r0
- bne _02217FE0
- cmp r6, #0
- bne _02217FE0
- add r0, r2, #0
- pop {r4, r5, r6, pc}
-_02217FE0:
- mov r0, #1
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_02217FE4
-MOD08_02217FE4: ; 0x02217FE4
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r2, #0
- bl MOD08_02217F9C
- cmp r0, #0
- beq _02218002
- mov r2, #0
- add r0, r5, #0
- add r1, r4, #0
- add r3, r2, #0
- bl MOD08_02217C94
- mov r0, #1
- pop {r3, r4, r5, pc}
-_02218002:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218008
-MOD08_02218008: ; 0x02218008
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r6, r1, #0
- add r7, r2, #0
- add r4, r3, #0
- cmp r5, #0
- bne _0221801A
- bl ErrorHandling
-_0221801A:
- str r6, [r5]
- lsl r0, r6, #0xc
- lsl r1, r7, #0xc
- add r2, r4, #0
- str r4, [r5, #4]
- bl MOD08_02217C58
- asr r0, r0, #0xc
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218030
-MOD08_02218030: ; 0x02218030
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r6, r1, #0
- add r7, r2, #0
- add r4, r3, #0
- cmp r5, #0
- bne _02218042
- bl ErrorHandling
-_02218042:
- str r6, [r5]
- lsl r6, r6, #0xc
- add r0, r6, #0
- lsl r1, r7, #0xc
- add r2, r4, #0
- str r4, [r5, #4]
- bl MOD08_02217C58
- str r0, [r5, #8]
- str r6, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02218058
-MOD08_02218058: ; 0x02218058
- push {r4, lr}
- add r4, r0, #0
- bne _02218062
- bl ErrorHandling
-_02218062:
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _0221807A
- ldr r1, [r4]
- ldr r0, [r4, #8]
- add r0, r1, r0
- str r0, [r4]
- ldr r0, [r4, #4]
- sub r0, r0, #1
- str r0, [r4, #4]
- mov r0, #1
- pop {r4, pc}
-_0221807A:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218080
-MOD08_02218080: ; 0x02218080
- push {r4, lr}
- add r4, r0, #0
- bne _0221808A
- bl ErrorHandling
-_0221808A:
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _022180A6
- ldr r1, [r4, #0xc]
- ldr r0, [r4, #8]
- add r0, r1, r0
- str r0, [r4, #0xc]
- asr r0, r0, #0xc
- str r0, [r4]
- ldr r0, [r4, #4]
- sub r0, r0, #1
- str r0, [r4, #4]
- mov r0, #1
- pop {r4, pc}
-_022180A6:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022180AC
-MOD08_022180AC: ; 0x022180AC
- push {r3, r4, r5, lr}
- ldr r4, [sp, #0x10]
- add r5, r0, #0
- str r4, [r5, #4]
- str r1, [r5, #8]
- sub r0, r2, r1
- add r1, r4, #0
- str r3, [r5, #0xc]
- bl _u32_div_f
- str r0, [r5, #0x10]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_022180C4
-MOD08_022180C4: ; 0x022180C4
- push {r4, lr}
- add r4, r0, #0
- bne _022180CE
- bl ErrorHandling
-_022180CE:
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _02218116
- ldr r1, [r4, #8]
- ldr r0, [r4, #0x10]
- add r0, r1, r0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [r4, #8]
- ldr r0, [r4, #4]
- sub r0, r0, #1
- str r0, [r4, #4]
- ldr r0, [r4, #8]
- ldr r2, [r4, #0xc]
- asr r0, r0, #4
- lsl r0, r0, #1
- add r0, r0, #1
- lsl r1, r0, #1
- ldr r0, _0221811C ; =0x020FFA38
- asr r3, r2, #0x1f
- ldrsh r0, [r0, r1]
- asr r1, r0, #0x1f
- bl _ll_mul
- mov r2, #2
- mov r3, #0
- lsl r2, r2, #0xa
- add r2, r0, r2
- adc r1, r3
- lsl r0, r1, #0x14
- lsr r1, r2, #0xc
- orr r1, r0
- asr r0, r1, #0xc
- str r0, [r4]
- mov r0, #1
- pop {r4, pc}
-_02218116:
- mov r0, #0
- pop {r4, pc}
- nop
-_0221811C: .word 0x020FFA38
-
- thumb_func_start MOD08_02218120
-MOD08_02218120: ; 0x02218120
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- add r7, r3, #0
- cmp r4, #0
- bne _02218132
- bl ErrorHandling
-_02218132:
- ldr r0, [sp, #0x18]
- add r1, r6, #0
- str r0, [r4, #4]
- lsl r0, r5, #8
- bl _s32_div_f
- add r5, r0, #0
- lsl r0, r7, #8
- add r1, r6, #0
- bl _s32_div_f
- add r1, r0, #0
- ldr r2, [sp, #0x18]
- lsl r0, r5, #0xc
- lsl r1, r1, #0xc
- bl MOD08_02217C58
- str r0, [r4, #8]
- lsl r0, r5, #0x10
- asr r0, r0, #0x10
- strh r0, [r4]
- strh r0, [r4, #2]
- mov r0, #0
- ldrsh r0, [r4, r0]
- lsl r0, r0, #0xc
- str r0, [r4, #0x10]
- mov r0, #2
- ldrsh r0, [r4, r0]
- lsl r0, r0, #0xc
- str r0, [r4, #0x14]
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02218170
-MOD08_02218170: ; 0x02218170
- push {r4, lr}
- add r4, r0, #0
- bne _0221817A
- bl ErrorHandling
-_0221817A:
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _022181A4
- sub r0, r0, #1
- str r0, [r4, #4]
- ldr r1, [r4, #0x10]
- ldr r0, [r4, #8]
- add r0, r1, r0
- str r0, [r4, #0x10]
- ldr r1, [r4, #0x14]
- ldr r0, [r4, #8]
- add r0, r1, r0
- str r0, [r4, #0x14]
- ldr r0, [r4, #0x10]
- asr r0, r0, #0xc
- strh r0, [r4]
- ldr r0, [r4, #0x14]
- asr r0, r0, #0xc
- strh r0, [r4, #2]
- mov r0, #1
- pop {r4, pc}
-_022181A4:
- mov r0, #0
- pop {r4, pc}
-
- thumb_func_start MOD08_022181A8
-MOD08_022181A8: ; 0x022181A8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r6, r1, #0
- add r7, r2, #0
- str r3, [sp]
- cmp r5, #0
- bne _022181BA
- bl ErrorHandling
-_022181BA:
- ldr r0, [sp, #0x20]
- add r1, sp, #8
- str r0, [r5, #4]
- mov r0, #0x14
- ldrsh r4, [r1, r0]
- lsl r0, r6, #8
- add r1, r4, #0
- bl _s32_div_f
- add r6, r0, #0
- lsl r0, r7, #8
- add r1, r4, #0
- bl _s32_div_f
- add r1, r0, #0
- ldr r2, [sp, #0x20]
- lsl r0, r6, #0xc
- lsl r1, r1, #0xc
- bl MOD08_02217C58
- str r0, [r5, #8]
- ldr r0, [sp]
- add r1, r4, #0
- lsl r0, r0, #8
- bl _s32_div_f
- add r7, r0, #0
- add r1, sp, #8
- mov r0, #0x10
- ldrsh r0, [r1, r0]
- add r1, r4, #0
- lsl r0, r0, #8
- bl _s32_div_f
- add r1, r0, #0
- ldr r2, [sp, #0x20]
- lsl r0, r7, #0xc
- lsl r1, r1, #0xc
- bl MOD08_02217C58
- str r0, [r5, #0xc]
- strh r6, [r5]
- strh r7, [r5, #2]
- mov r0, #0
- ldrsh r0, [r5, r0]
- lsl r0, r0, #0xc
- str r0, [r5, #0x10]
- mov r0, #2
- ldrsh r0, [r5, r0]
- lsl r0, r0, #0xc
- str r0, [r5, #0x14]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218224
-MOD08_02218224: ; 0x02218224
- push {r4, lr}
- add r4, r0, #0
- bne _0221822E
- bl ErrorHandling
-_0221822E:
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _02218258
- sub r0, r0, #1
- str r0, [r4, #4]
- ldr r1, [r4, #0x10]
- ldr r0, [r4, #8]
- add r0, r1, r0
- str r0, [r4, #0x10]
- ldr r1, [r4, #0x14]
- ldr r0, [r4, #0xc]
- add r0, r1, r0
- str r0, [r4, #0x14]
- ldr r0, [r4, #0x10]
- asr r0, r0, #0xc
- strh r0, [r4]
- ldr r0, [r4, #0x14]
- asr r0, r0, #0xc
- strh r0, [r4, #2]
- mov r0, #1
- pop {r4, pc}
-_02218258:
- mov r0, #0
- pop {r4, pc}
-
- thumb_func_start MOD08_0221825C
-MOD08_0221825C: ; 0x0221825C
- push {r4, r5, r6, lr}
- add r5, r0, #0
- mov r0, #0
- ldrsh r0, [r5, r0]
- add r4, r1, #0
- add r6, r2, #0
- bl _fflt
- ldr r1, _02218288 ; =0x43800000
- bl _fdiv
- str r0, [r4]
- mov r0, #2
- ldrsh r0, [r5, r0]
- bl _fflt
- ldr r1, _02218288 ; =0x43800000
- bl _fdiv
- str r0, [r6]
- pop {r4, r5, r6, pc}
- nop
-_02218288: .word 0x43800000
-
- thumb_func_start MOD08_0221828C
-MOD08_0221828C: ; 0x0221828C
- push {r3, r4, lr}
- sub sp, #4
- lsl r1, r1, #1
- mov r0, #0x50
- sub r0, r0, r1
- lsl r4, r0, #0xc
- asr r1, r4, #0x1f
- add r0, r4, #0
- asr r3, r2, #0x1f
- bl _ll_mul
- mov r2, #2
- mov r3, #0
- lsl r2, r2, #0xa
- add r0, r0, r2
- adc r1, r3
- lsl r1, r1, #0x14
- lsr r0, r0, #0xc
- orr r0, r1
- lsl r1, r2, #9
- bl FX_Div
- sub r0, r4, r0
- add r1, sp, #0
- bl FX_Modf
- cmp r0, #0
- beq _022182CA
- mov r1, #2
- lsl r1, r1, #0xa
- add r0, r0, r1
-_022182CA:
- ldr r1, [sp]
- add r0, r1, r0
- asr r1, r0, #0xc
- lsr r0, r1, #0x1f
- add r0, r1, r0
- lsl r0, r0, #0xf
- asr r0, r0, #0x10
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_022182DC
-MOD08_022182DC: ; 0x022182DC
- push {r4, r5, r6, lr}
- add r6, r2, #0
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- add r1, r6, #0
- add r2, r3, #0
- bl MOD08_0221828C
- add r2, r0, #0
- ldr r0, [sp, #0x10]
- cmp r0, #1
- bne _02218306
- mov r0, #0
- mvn r0, r0
- mul r0, r2
- lsl r0, r0, #0x10
- asr r2, r0, #0x10
- sub r0, r4, r6
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
-_02218306:
- add r0, r5, #0
- mov r1, #1
- add r2, r4, r2
- bl FUN_02007558
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218314
-MOD08_02218314: ; 0x02218314
- push {r3, r4, r5, r6, r7, lr}
- add r7, r2, #0
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- add r2, r3, #0
- bl MOD08_0221828C
- add r4, r0, #0
- ldr r0, [sp, #0x18]
- cmp r0, #1
- bne _0221833E
- mov r0, #0
- mvn r0, r0
- mul r0, r4
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- sub r0, r5, r7
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
-_0221833E:
- add r1, sp, #0
- add r0, r6, #0
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- add r2, sp, #0
- mov r1, #2
- ldrsh r1, [r2, r1]
- add r2, r5, r4
- lsl r2, r2, #0x10
- add r0, r6, #0
- asr r2, r2, #0x10
- bl FUN_0200C714
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218360
-MOD08_02218360: ; 0x02218360
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD08_02218170
- cmp r0, #0
- beq _0221837A
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02217CB4
- mov r0, #1
- pop {r3, r4, r5, pc}
-_0221837A:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218380
-MOD08_02218380: ; 0x02218380
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD08_02218170
- cmp r0, #0
- beq _0221839A
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02217CF4
- mov r0, #1
- pop {r3, r4, r5, pc}
-_0221839A:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022183A0
-MOD08_022183A0: ; 0x022183A0
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD08_02218224
- cmp r0, #0
- beq _022183BA
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02217CF4
- mov r0, #1
- pop {r3, r4, r5, pc}
-_022183BA:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022183C0
-MOD08_022183C0: ; 0x022183C0
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r6, r1, #0
- add r4, r2, #0
- add r7, r3, #0
- cmp r5, #0
- bne _022183D2
- bl ErrorHandling
-_022183D2:
- str r7, [r5, #4]
- ldr r0, [sp, #0x18]
- str r7, [r5, #8]
- str r0, [r5, #0xc]
- mov r1, #0
- str r1, [r5, #0x10]
- str r6, [r5, #0x14]
- str r4, [r5, #0x18]
- neg r0, r6
- str r0, [r5, #0x1c]
- neg r0, r4
- str r0, [r5, #0x20]
- strh r1, [r5]
- strh r1, [r5, #2]
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_022183F0
-MOD08_022183F0: ; 0x022183F0
- push {r4, lr}
- add r4, r0, #0
- bne _022183FA
- bl ErrorHandling
-_022183FA:
- ldr r0, [r4, #0xc]
- cmp r0, #0
- beq _0221844E
- ldr r0, [r4, #4]
- add r1, r0, #1
- str r1, [r4, #4]
- ldr r0, [r4, #8]
- cmp r1, r0
- blt _0221844A
- mov r2, #0
- str r2, [r4, #4]
- ldrsh r0, [r4, r2]
- ldr r1, [r4, #0x1c]
- str r0, [r4, #0x1c]
- cmp r1, #0
- bne _0221841E
- strh r2, [r4]
- b _02218422
-_0221841E:
- neg r0, r1
- strh r0, [r4]
-_02218422:
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #0x20]
- str r0, [r4, #0x20]
- cmp r1, #0
- bne _02218432
- mov r0, #0
- b _02218434
-_02218432:
- neg r0, r1
-_02218434:
- strh r0, [r4, #2]
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- cmp r0, #4
- blt _0221844A
- mov r0, #0
- str r0, [r4, #0x10]
- ldr r0, [r4, #0xc]
- sub r0, r0, #1
- str r0, [r4, #0xc]
-_0221844A:
- mov r0, #1
- pop {r4, pc}
-_0221844E:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218454
-MOD08_02218454: ; 0x02218454
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r4, r1, #0
- add r6, r2, #0
- add r7, r3, #0
- bl MOD08_022183F0
- cmp r0, #0
- beq _02218476
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- add r3, r6, #0
- bl MOD08_02217CD0
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02218476:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221847C
-MOD08_0221847C: ; 0x0221847C
- push {r3, r4, r5, r6, r7, lr}
- mov ip, r1
- str r0, [sp]
- strh r3, [r0]
- add r0, sp, #8
- mov r1, #0x10
- ldrsh r3, [r0, r1]
- ldr r1, [sp]
- mov r6, #0
- strh r3, [r1, #2]
- add r1, #0x94
- str r2, [r1]
- ldr r1, [sp]
- ldrh r2, [r0, #0x14]
- add r1, #0xa8
- strh r2, [r1]
- ldr r1, [sp]
- add r1, #0xaa
- strh r6, [r1]
- ldr r1, [sp]
- ldrb r7, [r0, #0x18]
- add r1, #0xac
- strb r7, [r1]
- ldr r1, [sp]
- add r1, #0xad
- strb r6, [r1]
- ldrb r1, [r0, #0x1c]
- ldr r0, [sp]
- add r0, #0xae
- strb r1, [r0]
- cmp r7, #0
- ble _022184D8
- ldr r5, [sp]
-_022184BE:
- mov r4, ip
- add r3, r5, #4
- mov r2, #4
-_022184C4:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _022184C4
- ldr r0, [r4]
- add r6, r6, #1
- str r0, [r3]
- add r5, #0x24
- cmp r6, r7
- blt _022184BE
-_022184D8:
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- add r0, #0x98
- str r1, [r0]
- ldr r0, [sp]
- ldr r1, [sp, #0x2c]
- add r0, #0x9c
- str r1, [r0]
- ldr r0, [sp]
- ldr r1, [sp, #0x30]
- add r0, #0xa0
- str r1, [r0]
- ldr r0, [sp]
- ldr r1, [sp, #0x34]
- add r0, #0xa4
- str r1, [r0]
- ldr r0, [sp]
- mov r5, #0
- add r0, #0xac
- ldrb r0, [r0]
- cmp r0, #0
- ble _02218522
- ldr r4, [sp]
- add r6, r5, #0
-_02218508:
- add r0, r4, #0
- add r0, #0x98
- ldr r0, [r0]
- add r1, r6, #0
- bl FUN_0200C644
- ldr r0, [sp]
- add r5, r5, #1
- add r0, #0xac
- ldrb r0, [r0]
- add r4, r4, #4
- cmp r5, r0
- blt _02218508
-_02218522:
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02218524
-MOD08_02218524: ; 0x02218524
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- add r5, r0, #0
- mov r0, #0
- add r2, sp, #0x10
- mov r1, #1
-_02218530:
- add r0, r0, #1
- stmia r2!, {r1}
- cmp r0, #4
- blt _02218530
- add r0, r5, #0
- add r0, #0xa8
- ldrh r2, [r0]
- add r0, r5, #0
- add r0, #0xaa
- ldrh r0, [r0]
- cmp r2, r0
- bhi _02218570
- add r0, r5, #0
- add r0, #0xad
- ldrb r0, [r0]
- lsl r0, r0, #2
- add r0, r5, r0
- add r0, #0x98
- ldr r0, [r0]
- bl FUN_0200C644
- add r0, r5, #0
- add r0, #0xad
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r5, #0
- add r0, #0xad
- strb r1, [r0]
- add r0, r5, #0
- mov r1, #0
- add r0, #0xaa
- strh r1, [r0]
-_02218570:
- add r0, r5, #0
- add r0, #0xad
- ldrb r1, [r0]
- add r0, r5, #0
- add r0, #0xac
- ldrb r0, [r0]
- cmp r1, r0
- bhs _0221858E
- add r0, r5, #0
- add r0, #0xaa
- ldrh r0, [r0]
- add r1, r0, #1
- add r0, r5, #0
- add r0, #0xaa
- strh r1, [r0]
-_0221858E:
- mov r0, #0
- str r0, [sp]
- add r0, r5, #0
- add r0, #0xad
- ldrb r0, [r0]
- cmp r0, #0
- ble _0221862E
- add r0, sp, #0x10
- add r7, r5, #4
- str r0, [sp, #4]
- add r6, r5, #0
- add r4, r5, #0
-_022185A6:
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r7, #0
- blx r1
- ldr r1, [sp, #4]
- cmp r0, #0
- str r0, [r1]
- beq _02218604
- add r0, r5, #0
- add r0, #0xae
- ldrb r0, [r0]
- cmp r0, #0
- bne _022185EA
- mov r1, #0
- mov r2, #4
- ldrsh r1, [r5, r1]
- ldrsh r2, [r6, r2]
- add r0, r4, #0
- add r0, #0x98
- add r1, r1, r2
- mov r2, #2
- ldrsh r3, [r5, r2]
- mov r2, #6
- ldrsh r2, [r6, r2]
- lsl r1, r1, #0x10
- ldr r0, [r0]
- add r2, r3, r2
- lsl r2, r2, #0x10
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C714
- b _02218610
-_022185EA:
- add r0, r7, #0
- add r1, sp, #0xc
- add r2, sp, #8
- bl MOD08_0221825C
- add r0, r4, #0
- add r0, #0x98
- ldr r0, [r0]
- ldr r1, [sp, #0xc]
- ldr r2, [sp, #8]
- bl FUN_0200C884
- b _02218610
-_02218604:
- add r0, r4, #0
- add r0, #0x98
- ldr r0, [r0]
- mov r1, #0
- bl FUN_0200C644
-_02218610:
- ldr r0, [sp, #4]
- add r7, #0x24
- add r0, r0, #4
- str r0, [sp, #4]
- ldr r0, [sp]
- add r6, #0x24
- add r0, r0, #1
- str r0, [sp]
- add r0, r5, #0
- add r0, #0xad
- ldrb r1, [r0]
- ldr r0, [sp]
- add r4, r4, #4
- cmp r0, r1
- blt _022185A6
-_0221862E:
- add r5, #0xac
- ldrb r2, [r5]
- mov r3, #0
- cmp r2, #0
- ble _0221864E
- add r1, sp, #0x10
-_0221863A:
- ldr r0, [r1]
- cmp r0, #1
- bne _02218646
- add sp, #0x20
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02218646:
- add r3, r3, #1
- add r1, r1, #4
- cmp r3, r2
- blt _0221863A
-_0221864E:
- mov r0, #0
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02218654
-MOD08_02218654: ; 0x02218654
- push {r3, r4, r5, lr}
- sub sp, #0x10
- ldr r3, _02218684 ; =0x0000FFFF
- add r4, r1, #0
- mov r1, #2
- str r3, [sp]
- lsl r1, r1, #0x10
- str r1, [sp, #4]
- ldr r1, _02218688 ; =0xFFFF8000
- add r5, r0, #0
- str r1, [sp, #8]
- str r2, [sp, #0xc]
- mov r1, #0
- add r2, r3, #0
- add r3, r1, #0
- bl MOD08_02217D14
- ldr r0, [r5, #4]
- add r1, r0, #0
- mul r1, r4
- str r1, [r5, #4]
- add sp, #0x10
- pop {r3, r4, r5, pc}
- nop
-_02218684: .word 0x0000FFFF
-_02218688: .word 0xFFFF8000
-
- thumb_func_start MOD08_0221868C
-MOD08_0221868C: ; 0x0221868C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02217ECC
- cmp r0, #0
- bne _022186A8
- mov r0, #1
- str r0, [r4, #0x24]
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
-_022186A8:
- mov r0, #0
- ldrsh r1, [r4, r0]
- cmp r1, #0
- bge _022186B2
- strh r0, [r4]
-_022186B2:
- mov r0, #2
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bge _022186BE
- mov r0, #0
- strh r0, [r4, #2]
-_022186BE:
- mov r0, #0
- ldrsh r1, [r4, r0]
- mov r0, #2
- ldrsh r0, [r4, r0]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _022186D0 ; =0x04000052
- strh r1, [r0]
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022186D0: .word 0x04000052
-
- thumb_func_start MOD08_022186D4
-MOD08_022186D4: ; 0x022186D4
- push {r4, r5, r6, lr}
- sub sp, #8
- add r6, sp, #8
- mov r5, #0x10
- ldrsh r5, [r6, r5]
- add r4, r0, #0
- str r5, [sp]
- ldr r5, [sp, #0x1c]
- lsl r5, r5, #0x10
- lsr r5, r5, #0x10
- str r5, [sp, #4]
- bl MOD08_02217E80
- mov r2, #0
- ldr r0, _02218700 ; =MOD08_0221868C
- add r1, r4, #0
- str r2, [r4, #0x24]
- bl FUN_0200CA44
- add sp, #8
- pop {r4, r5, r6, pc}
- nop
-_02218700: .word MOD08_0221868C
-
- thumb_func_start MOD08_02218704
-MOD08_02218704: ; 0x02218704
- ldr r0, [r0, #0x24]
- bx lr
-
- thumb_func_start MOD08_02218708
-MOD08_02218708: ; 0x02218708
- push {r3, lr}
- ldr r0, [r1, #8]
- cmp r0, #0
- beq _0221871C
- mov r0, #1
- str r0, [r1, #0xc]
- ldr r0, [r1, #0x18]
- ldr r1, [r1, #0x10]
- blx r1
- pop {r3, pc}
-_0221871C:
- bl FUN_020129C8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218724
-MOD08_02218724: ; 0x02218724
- push {r4, lr}
- add r4, r1, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _0221873E
- ldr r0, [r4, #0xc]
- cmp r0, #0
- beq _0221873E
- ldr r0, [r4, #0x18]
- ldr r1, [r4, #0x14]
- blx r1
- mov r0, #0
- str r0, [r4, #0xc]
-_0221873E:
- pop {r4, pc}
-
- thumb_func_start MOD08_02218740
-MOD08_02218740: ; 0x02218740
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r4, r1, #0
- add r6, r2, #0
- add r7, r3, #0
- cmp r5, #0
- bne _02218752
- bl ErrorHandling
-_02218752:
- mov r0, #1
- str r0, [r5, #8]
- mov r2, #0
- str r2, [r5, #0xc]
- str r4, [r5, #0x18]
- str r6, [r5, #0x10]
- ldr r0, _02218778 ; =MOD08_02218708
- str r7, [r5, #0x14]
- add r1, r5, #0
- bl FUN_0200CA98
- str r0, [r5, #4]
- ldr r0, _0221877C ; =MOD08_02218724
- add r1, r5, #0
- mov r2, #0
- bl FUN_0200CA60
- str r0, [r5]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02218778: .word MOD08_02218708
-_0221877C: .word MOD08_02218724
-
- thumb_func_start MOD08_02218780
-MOD08_02218780: ; 0x02218780
- push {r4, lr}
- add r4, r0, #0
- bne _0221878A
- bl ErrorHandling
-_0221878A:
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _02218794
- bl FUN_0200CAB4
-_02218794:
- ldr r0, [r4]
- cmp r0, #0
- beq _0221879E
- bl FUN_0200CAB4
-_0221879E:
- bl FUN_020129C8
- pop {r4, pc}
-
- thumb_func_start MOD08_022187A4
-MOD08_022187A4: ; 0x022187A4
- push {r4, lr}
- add r4, r0, #0
- bne _022187AE
- bl ErrorHandling
-_022187AE:
- mov r0, #0
- str r0, [r4, #8]
- pop {r4, pc}
-
- thumb_func_start MOD08_022187B4
-MOD08_022187B4: ; 0x022187B4
- push {r3, r4, r5, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x1c]
- bl FUN_0201299C
- add r5, r0, #0
- bl FUN_020129C8
- mov r1, #0x62
- lsl r1, r1, #4
- ldr r1, [r4, r1]
- add r0, r5, #0
- mov r2, #4
- mov r3, #1
- bl FUN_020129D8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022187D8
-MOD08_022187D8: ; 0x022187D8
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x1c]
- bl FUN_020129B4
- add r0, r4, #0
- bl MOD08_022187B4
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022187EC
-MOD08_022187EC: ; 0x022187EC
- ldr r3, _022187F0 ; =MOD08_022187B4
- bx r3
- .align 2, 0
-_022187F0: .word MOD08_022187B4
-
- thumb_func_start MOD08_022187F4
-MOD08_022187F4: ; 0x022187F4
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r7, r2, #0
- add r5, r0, #0
- ldr r1, _02218864 ; =0x00000624
- add r0, r7, #0
- bl AllocFromHeap
- ldr r2, _02218864 ; =0x00000624
- mov r1, #0
- add r4, r0, #0
- bl memset
- cmp r4, #0
- bne _02218816
- bl ErrorHandling
-_02218816:
- mov r2, #0x32
- add r1, r4, #0
- lsl r2, r2, #4
- add r0, r7, #0
- add r1, #0x20
- add r2, r4, r2
- bl FUN_02012944
- str r0, [r4, #0x1c]
- cmp r0, #0
- bne _02218830
- bl ErrorHandling
-_02218830:
- mov r0, #0x62
- lsl r0, r0, #4
- add r1, r4, #0
- mov r2, #3
- str r5, [r4, r0]
- add r0, r6, #0
- add r1, #0x20
- lsl r2, r2, #8
- bl MIi_CpuClear32
- mov r2, #0x32
- lsl r2, r2, #4
- add r1, r4, r2
- add r0, r6, #0
- sub r2, #0x20
- bl MIi_CpuClear32
- ldr r2, _02218868 ; =MOD08_022187D8
- ldr r3, _0221886C ; =MOD08_022187EC
- add r0, r4, #0
- add r1, r4, #0
- bl MOD08_02218740
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02218864: .word 0x00000624
-_02218868: .word MOD08_022187D8
-_0221886C: .word MOD08_022187EC
-
- thumb_func_start MOD08_02218870
-MOD08_02218870: ; 0x02218870
- push {r4, lr}
- add r4, r0, #0
- bne _0221887A
- bl ErrorHandling
-_0221887A:
- add r0, r4, #0
- bl MOD08_02218780
- ldr r0, [r4, #0x1c]
- cmp r0, #0
- beq _0221888A
- bl FUN_02012974
-_0221888A:
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218894
-MOD08_02218894: ; 0x02218894
- push {r4, lr}
- add r4, r0, #0
- bne _0221889E
- bl ErrorHandling
-_0221889E:
- ldr r0, [r4, #0x1c]
- bl FUN_02012988
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022188A8
-MOD08_022188A8: ; 0x022188A8
- push {r4, lr}
- add r4, r0, #0
- bne _022188B2
- bl ErrorHandling
-_022188B2:
- add r0, r4, #0
- bl MOD08_022187A4
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022188BC
-MOD08_022188BC: ; 0x022188BC
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x1c]
- bl FUN_02012B30
- ldr r0, [r4, #0x1c]
- bl FUN_02012B68
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022188D0
-MOD08_022188D0: ; 0x022188D0
- ldr r3, _022188D8 ; =FUN_02012B68
- ldr r0, [r0, #0x1c]
- bx r3
- nop
-_022188D8: .word FUN_02012B68
-
- thumb_func_start MOD08_022188DC
-MOD08_022188DC: ; 0x022188DC
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r7, r0, #0
- str r1, [sp, #0x14]
- ldr r0, [sp, #0x40]
- mov r1, #0x20
- str r2, [sp, #0x18]
- add r5, r3, #0
- bl AllocFromHeap
- add r4, r0, #0
- bne _022188F8
- bl ErrorHandling
-_022188F8:
- add r0, r4, #0
- mov r1, #0
- mov r2, #0x20
- bl memset
- ldr r0, [sp, #0x34]
- bl MOD08_022189A0
- add r6, r0, #0
- ldr r0, [sp, #0x40]
- bl FUN_02012A00
- str r0, [r4, #0x1c]
- str r5, [sp]
- add r1, sp, #0x20
- mov r0, #0x10
- ldrsh r0, [r1, r0]
- add r1, r7, #0
- str r0, [sp, #4]
- ldr r0, [sp, #0x3c]
- str r6, [sp, #8]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x38]
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x1c]
- ldr r2, [sp, #0x14]
- ldr r3, [sp, #0x18]
- bl FUN_02012A30
- ldr r2, _02218944 ; =MOD08_022188BC
- ldr r3, _02218948 ; =MOD08_022188D0
- add r0, r4, #0
- add r1, r4, #0
- bl MOD08_02218740
- add r0, r4, #0
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02218944: .word MOD08_022188BC
-_02218948: .word MOD08_022188D0
-
- thumb_func_start MOD08_0221894C
-MOD08_0221894C: ; 0x0221894C
- push {r4, lr}
- add r4, r0, #0
- bne _02218956
- bl ErrorHandling
-_02218956:
- add r0, r4, #0
- bl MOD08_02218780
- ldr r0, [r4, #0x1c]
- cmp r0, #0
- beq _02218966
- bl FUN_02012B00
-_02218966:
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218970
-MOD08_02218970: ; 0x02218970
- push {r4, lr}
- add r4, r0, #0
- bne _0221897A
- bl ErrorHandling
-_0221897A:
- ldr r0, [r4, #0x1c]
- bl FUN_02012B20
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218984
-MOD08_02218984: ; 0x02218984
- push {r4, lr}
- add r4, r0, #0
- bne _0221898E
- bl ErrorHandling
-_0221898E:
- add r0, r4, #0
- bl MOD08_022187A4
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218998
-MOD08_02218998: ; 0x02218998
- lsl r1, r1, #0x10
- orr r0, r1
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022189A0
-MOD08_022189A0: ; 0x022189A0
- cmp r0, #3
- bhi _022189C6
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022189B0: ; jump table
- .short _022189B8 - _022189B0 - 2 ; case 0
- .short _022189BC - _022189B0 - 2 ; case 1
- .short _022189C0 - _022189B0 - 2 ; case 2
- .short _022189C4 - _022189B0 - 2 ; case 3
-_022189B8:
- ldr r0, _022189C8 ; =0x04000010
- bx lr
-_022189BC:
- ldr r0, _022189CC ; =0x04000014
- bx lr
-_022189C0:
- ldr r0, _022189D0 ; =0x04000018
- bx lr
-_022189C4:
- ldr r0, _022189D4 ; =0x0400001C
-_022189C6:
- bx lr
- .align 2, 0
-_022189C8: .word 0x04000010
-_022189CC: .word 0x04000014
-_022189D0: .word 0x04000018
-_022189D4: .word 0x0400001C
-
- thumb_func_start MOD08_022189D8
-MOD08_022189D8: ; 0x022189D8
- add r2, r0, r2
- lsr r0, r2, #0x1f
- add r0, r2, r0
- asr r2, r0, #1
- ldr r0, [sp]
- add r1, r1, r3
- strh r2, [r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r1, r0, #1
- ldr r0, [sp, #4]
- strh r1, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022189F4
-MOD08_022189F4: ; 0x022189F4
- push {r3, lr}
- sub r1, r1, r3
- neg r1, r1
- sub r0, r0, r2
- lsl r1, r1, #0x10
- lsl r0, r0, #0x10
- asr r1, r1, #0x10
- add r2, r1, #0
- asr r0, r0, #0x10
- mul r2, r1
- add r1, r0, #0
- mul r1, r0
- add r0, r2, r1
- lsl r0, r0, #0xc
- bl FX_Sqrt
- ldr r1, [sp, #8]
- str r0, [r1]
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218A1C
-MOD08_02218A1C: ; 0x02218A1C
- push {r4, r5, r6, lr}
- add r6, r0, #0
- sub r0, r1, r3
- neg r0, r0
- lsl r0, r0, #0x10
- sub r1, r6, r2
- asr r4, r0, #0x10
- lsl r1, r1, #0x10
- ldr r5, [sp, #0x10]
- lsl r0, r4, #0xc
- asr r1, r1, #4
- bl FX_Atan2
- strh r0, [r5]
- ldrh r1, [r5]
- cmp r1, #0
- beq _02218A4C
- cmp r4, #0
- bge _02218A4C
- ldr r0, _02218A50 ; =0x00007FFF
- sub r1, r1, r0
- ldr r0, _02218A54 ; =0x0000FFFF
- mul r0, r1
- strh r0, [r5]
-_02218A4C:
- pop {r4, r5, r6, pc}
- nop
-_02218A50: .word 0x00007FFF
-_02218A54: .word 0x0000FFFF
-
- thumb_func_start MOD08_02218A58
-MOD08_02218A58: ; 0x02218A58
- cmp r2, #0
- ldr r3, [r0]
- bge _02218A70
- add r2, r3, r2
- cmp r2, r1
- ble _02218A6A
- str r2, [r0]
- mov r0, #0
- bx lr
-_02218A6A:
- str r1, [r0]
- mov r0, #1
- bx lr
-_02218A70:
- add r2, r3, r2
- cmp r2, r1
- bge _02218A7C
- str r2, [r0]
- mov r0, #0
- bx lr
-_02218A7C:
- str r1, [r0]
- mov r0, #1
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02218A84
-MOD08_02218A84: ; 0x02218A84
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- ldr r0, [r4]
- cmp r0, #0
- beq _02218AF4
- mov r0, #0x17
- ldrsb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, #0x17]
- ldrsb r1, [r4, r0]
- mov r0, #0x16
- ldrsb r0, [r4, r0]
- cmp r1, r0
- blt _02218AF4
- mov r0, #0
- strb r0, [r4, #0x17]
- ldrb r0, [r4, #0x14]
- str r0, [sp]
- ldrh r0, [r4, #0x10]
- str r0, [sp, #4]
- ldrh r2, [r4, #0xc]
- ldrh r3, [r4, #0xe]
- ldr r0, [r4, #0x18]
- ldr r1, [r4, #8]
- bl FUN_020039E8
- ldrb r3, [r4, #0x13]
- ldrb r1, [r4, #0x14]
- cmp r1, r3
- bne _02218ACA
- mov r0, #0
- add sp, #8
- str r0, [r4]
- pop {r4, pc}
-_02218ACA:
- mov r0, #0x15
- ldrsb r2, [r4, r0]
- add r1, r1, r2
- lsl r0, r1, #0x18
- asr r0, r0, #0x18
- cmp r2, #0
- ble _02218AE8
- cmp r0, r3
- ble _02218AE2
- add sp, #8
- strb r3, [r4, #0x14]
- pop {r4, pc}
-_02218AE2:
- add sp, #8
- strb r1, [r4, #0x14]
- pop {r4, pc}
-_02218AE8:
- cmp r0, r3
- bge _02218AF2
- add sp, #8
- strb r3, [r4, #0x14]
- pop {r4, pc}
-_02218AF2:
- strb r1, [r4, #0x14]
-_02218AF4:
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD08_02218AF8
-MOD08_02218AF8: ; 0x02218AF8
- push {r4, lr}
- add r4, r0, #0
- bne _02218B02
- bl ErrorHandling
-_02218B02:
- ldr r0, [r4]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218B08
-MOD08_02218B08: ; 0x02218B08
- push {r4, lr}
- add r4, r0, #0
- bne _02218B12
- bl ErrorHandling
-_02218B12:
- ldr r0, [r4, #4]
- bl FUN_0200CAB4
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
-
- thumb_func_start MOD08_02218B20
-MOD08_02218B20: ; 0x02218B20
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r0, r1, #0
- mov r1, #0x1c
- add r6, r2, #0
- add r7, r3, #0
- bl AllocFromHeap
- add r4, r0, #0
- bne _02218B38
- bl ErrorHandling
-_02218B38:
- str r5, [r4, #0x18]
- str r6, [r4, #8]
- strh r7, [r4, #0xc]
- add r1, sp, #8
- ldrh r0, [r1, #0x10]
- strh r0, [r4, #0xe]
- ldrh r0, [r1, #0x24]
- strh r0, [r4, #0x10]
- ldrb r2, [r1, #0x1c]
- add r0, sp, #0x28
- ldrb r0, [r0]
- strb r2, [r4, #0x12]
- strb r0, [r4, #0x13]
- strb r2, [r4, #0x14]
- mov r0, #0x14
- ldrsb r0, [r1, r0]
- strb r0, [r4, #0x16]
- strb r0, [r4, #0x17]
- ldrb r2, [r4, #0x12]
- ldrb r0, [r4, #0x13]
- cmp r2, r0
- bhs _02218B6A
- mov r0, #0x18
- ldrsb r0, [r1, r0]
- b _02218B70
-_02218B6A:
- mov r0, #0x18
- ldrsb r0, [r1, r0]
- neg r0, r0
-_02218B70:
- strb r0, [r4, #0x15]
- mov r0, #1
- str r0, [r4]
- ldr r0, _02218B88 ; =MOD08_02218A84
- ldr r2, [sp, #0x30]
- add r1, r4, #0
- bl FUN_0200CA44
- str r0, [r4, #4]
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02218B88: .word MOD08_02218A84
-
- thumb_func_start MOD08_02218B8C
-MOD08_02218B8C: ; 0x02218B8C
- push {r4, r5, r6, r7}
- mov r7, #0
- cmp r1, #0
- ble _02218BCE
- mov r2, #0x97
-_02218B96:
- ldrh r6, [r0]
- mov r3, #0x1f
- add r7, r7, #1
- asr r4, r6, #0xa
- and r4, r3
- add r5, r4, #0
- mov r3, #0x1d
- mul r5, r3
- mov r3, #0x1f
- and r3, r6
- mov r4, #0x4c
- mul r4, r3
- asr r6, r6, #5
- mov r3, #0x1f
- and r3, r6
- add r6, r3, #0
- mul r6, r2
- add r3, r4, r6
- add r3, r5, r3
- asr r5, r3, #8
- lsl r4, r5, #0xa
- lsl r3, r5, #5
- orr r3, r4
- orr r3, r5
- strh r3, [r0]
- add r0, r0, #2
- cmp r7, r1
- blt _02218B96
-_02218BCE:
- pop {r4, r5, r6, r7}
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02218BD4
-MOD08_02218BD4: ; 0x02218BD4
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl MOD08_02215504
- mov r1, #0
- bl FUN_02003204
- add r4, r0, #0
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02218BF8
- add r0, r4, #0
- mov r1, #0x30
- bl MOD08_02218B8C
- pop {r3, r4, r5, pc}
-_02218BF8:
- add r0, r4, #0
- mov r1, #0x80
- bl MOD08_02218B8C
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218C04
-MOD08_02218C04: ; 0x02218C04
- push {r3, r4, r5, lr}
- sub sp, #8
- add r5, r0, #0
- bl MOD08_02215504
- add r4, r0, #0
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02218C30
- mov r1, #0
- str r1, [sp]
- mov r0, #0x60
- str r0, [sp, #4]
- add r0, r4, #0
- add r2, r1, #0
- add r3, r1, #0
- bl FUN_020031B8
- add sp, #8
- pop {r3, r4, r5, pc}
-_02218C30:
- mov r1, #0
- mov r0, #1
- str r1, [sp]
- lsl r0, r0, #8
- str r0, [sp, #4]
- add r0, r4, #0
- add r2, r1, #0
- add r3, r1, #0
- bl FUN_020031B8
- add sp, #8
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02218C48
-MOD08_02218C48: ; 0x02218C48
- cmp r0, #0x54
- blo _02218C50
- mov r0, #0
- bx lr
-_02218C50:
- lsl r1, r0, #2
- ldr r0, _02218C58 ; =0x0222C384
- ldr r0, [r0, r1]
- bx lr
- .align 2, 0
-_02218C58: .word 0x0222C384
-
- thumb_func_start MOD08_02218C5C
-MOD08_02218C5C: ; 0x02218C5C
- cmp r0, #0x21
- blo _02218C64
- mov r0, #0
- bx lr
-_02218C64:
- lsl r1, r0, #2
- ldr r0, _02218C6C ; =0x0222C300
- ldr r0, [r0, r1]
- bx lr
- .align 2, 0
-_02218C6C: .word 0x0222C300
-
- thumb_func_start MOD08_02218C70
-MOD08_02218C70: ; 0x02218C70
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02218C74
-MOD08_02218C74: ; 0x02218C74
- push {r4, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _02218C86
- cmp r0, #1
- beq _02218C8C
- pop {r4, pc}
-_02218C86:
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, pc}
-_02218C8C:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
-
- thumb_func_start MOD08_02218C9C
-MOD08_02218C9C: ; 0x02218C9C
- push {r4, lr}
- add r4, r0, #0
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r2, r0, #0
- mov r0, #0
- strb r0, [r2]
- mov r3, #1
- ldr r1, _02218CC0 ; =MOD08_02218C74
- add r0, r4, #0
- lsl r3, r3, #0xc
- str r4, [r2, #4]
- bl MOD08_022123E4
- pop {r4, pc}
- nop
-_02218CC0: .word MOD08_02218C74
-
- thumb_func_start MOD08_02218CC4
-MOD08_02218CC4: ; 0x02218CC4
- push {r4, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _02218CD6
- cmp r0, #1
- beq _02218CDC
- pop {r4, pc}
-_02218CD6:
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, pc}
-_02218CDC:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212448
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
-
- thumb_func_start MOD08_02218CEC
-MOD08_02218CEC: ; 0x02218CEC
- push {r4, lr}
- add r4, r0, #0
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r2, r0, #0
- mov r0, #0
- strb r0, [r2]
- mov r3, #1
- ldr r1, _02218D10 ; =MOD08_02218CC4
- add r0, r4, #0
- lsl r3, r3, #0xc
- str r4, [r2, #4]
- bl MOD08_0221241C
- pop {r4, pc}
- nop
-_02218D10: .word MOD08_02218CC4
-
- thumb_func_start MOD08_02218D14
-MOD08_02218D14: ; 0x02218D14
- push {r4, lr}
- add r4, r1, #0
- ldrb r1, [r4]
- cmp r1, #0
- beq _02218D24
- cmp r1, #1
- beq _02218D2A
- pop {r4, pc}
-_02218D24:
- add r0, r1, #1
- strb r0, [r4]
- pop {r4, pc}
-_02218D2A:
- bl FUN_0200CAB4
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218D38
-MOD08_02218D38: ; 0x02218D38
- push {r4, lr}
- add r4, r0, #0
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r1, r0, #0
- mov r0, #0
- strb r0, [r1]
- mov r2, #1
- ldr r0, _02218D58 ; =MOD08_02218D14
- lsl r2, r2, #0xc
- str r4, [r1, #4]
- bl FUN_0200CA44
- pop {r4, pc}
- .align 2, 0
-_02218D58: .word MOD08_02218D14
-
- thumb_func_start MOD08_02218D5C
-MOD08_02218D5C: ; 0x02218D5C
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- ldrb r0, [r5]
- cmp r0, #0
- beq _02218D6E
- cmp r0, #1
- beq _02218DB4
- pop {r4, r5, r6, pc}
-_02218D6E:
- ldr r0, [r5, #0x14]
- ldr r0, [r0]
- bl FUN_0200C59C
- ldr r0, [r5, #0x18]
- ldr r0, [r0]
- bl FUN_0200C59C
- ldr r0, [r5, #0x1c]
- ldr r0, [r0]
- bl FUN_0200C59C
- ldr r0, [r5, #0x14]
- mov r1, #1
- ldr r0, [r0]
- mov r2, #0
- bl FUN_0200C7FC
- ldr r0, [r5, #0x18]
- mov r1, #0
- ldr r0, [r0]
- mvn r1, r1
- mov r2, #0
- bl FUN_0200C7FC
- ldr r0, [r5, #0x1c]
- mov r1, #1
- ldr r0, [r0]
- add r2, r1, #0
- bl FUN_0200C7FC
- ldr r0, [r5, #0xc]
- bl FUN_0200BC1C
- pop {r4, r5, r6, pc}
-_02218DB4:
- ldr r0, [r5, #0x10]
- ldr r4, [r5, #4]
- bl FUN_0200C3DC
- add r0, r5, #0
- bl FreeToHeap
- add r0, r4, #0
- add r1, r6, #0
- bl MOD08_02212438
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_02218DCC
-MOD08_02218DCC: ; 0x02218DCC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- add r6, r1, #0
- mov r1, #0x73
- str r0, [sp]
- mov r0, #5
- lsl r1, r1, #2
- add r7, r2, #0
- add r5, r3, #0
- bl AllocFromHeap
- add r4, r0, #0
- bne _02218DEA
- bl ErrorHandling
-_02218DEA:
- mov r0, #0
- strb r0, [r4]
- str r6, [r4, #8]
- str r7, [r4, #0xc]
- ldr r0, [sp]
- str r5, [r4, #0x10]
- str r0, [r4, #4]
- ldr r1, [sp]
- add r0, sp, #4
- bl MOD08_02215474
- str r5, [r4, #0x14]
- mov r6, #1
- add r5, r4, #4
- add r7, sp, #4
-_02218E08:
- ldr r0, [r4, #8]
- ldr r1, [r4, #0xc]
- add r2, r7, #0
- bl FUN_0200C154
- str r0, [r5, #0x14]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #3
- blt _02218E08
- mov r3, #1
- ldr r0, [sp]
- ldr r1, _02218E30 ; =MOD08_02218D5C
- add r2, r4, #0
- lsl r3, r3, #0xc
- bl MOD08_022123E4
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02218E30: .word MOD08_02218D5C
-
- thumb_func_start MOD08_02218E34
-MOD08_02218E34: ; 0x02218E34
- push {r4, lr}
- mov r1, #0xc
- add r2, r1, #0
- add r2, #0xf4
- add r4, r0, #0
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- add r0, r4, #0
- add r2, #0xf3
- bl FUN_02007558
- pop {r4, pc}
-
- thumb_func_start MOD08_02218E50
-MOD08_02218E50: ; 0x02218E50
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r2, r0, #0
- ldrb r0, [r5, #4]
- cmp r0, #0
- beq _02218E62
- cmp r0, #1
- beq _02218E84
- b _02218F4E
-_02218E62:
- mov r0, #0x26
- ldrsh r0, [r5, r0]
- mov r1, #0x20
- mov r2, #0x22
- str r0, [sp]
- mov r3, #0x24
- add r0, r5, #0
- ldrsh r1, [r5, r1]
- ldrsh r2, [r5, r2]
- ldrsh r3, [r5, r3]
- add r0, #0x7c
- bl MOD08_022183C0
- ldrb r0, [r5, #4]
- add r0, r0, #1
- strb r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_02218E84:
- add r0, r5, #0
- add r0, #0x7c
- bl MOD08_022183F0
- cmp r0, #0
- bne _02218E98
- ldrb r0, [r5, #4]
- add r0, r0, #1
- strb r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_02218E98:
- ldr r2, [r5, #0x28]
- mov r1, #1
- lsl r1, r1, #8
- add r0, r2, #0
- and r0, r1
- cmp r0, r1
- bne _02218EE4
- ldr r0, [r5]
- mov r6, #0
- cmp r0, #0
- ble _02218F32
- add r4, r5, #0
- mov r7, #0x32
-_02218EB2:
- ldr r0, [r4, #0x34]
- cmp r0, #0
- beq _02218ED8
- mov r2, #0x7c
- mov r3, #0x30
- ldrsh r2, [r5, r2]
- ldrsh r3, [r4, r3]
- mov r1, #0
- add r2, r2, r3
- bl FUN_02007558
- mov r2, #0x7e
- ldrsh r3, [r5, r2]
- ldrsh r2, [r4, r7]
- ldr r0, [r4, #0x34]
- mov r1, #1
- add r2, r3, r2
- bl FUN_02007558
-_02218ED8:
- ldr r0, [r5]
- add r6, r6, #1
- add r4, #0x14
- cmp r6, r0
- blt _02218EB2
- b _02218F32
-_02218EE4:
- lsl r0, r1, #1
- and r2, r0
- cmp r2, r0
- bne _02218F32
- ldr r0, [r5]
- mov r6, #0
- cmp r0, #0
- ble _02218F2C
- add r4, r5, #0
- mov r7, #0x32
-_02218EF8:
- ldr r0, [r4, #0x38]
- cmp r0, #0
- beq _02218F22
- mov r1, #0x7c
- mov r2, #0x30
- ldrsh r1, [r5, r1]
- ldrsh r2, [r4, r2]
- add r1, r1, r2
- mov r2, #0x7e
- ldrsh r3, [r5, r2]
- ldrsh r2, [r4, r7]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add r2, r3, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C714
- ldr r0, [r4, #0x38]
- bl FUN_0200C5A8
-_02218F22:
- ldr r0, [r5]
- add r6, r6, #1
- add r4, #0x14
- cmp r6, r0
- blt _02218EF8
-_02218F2C:
- ldr r0, [r5, #0x10]
- bl FUN_0200BC1C
-_02218F32:
- mov r0, #1
- ldr r1, [r5, #0x28]
- lsl r0, r0, #0xa
- and r1, r0
- cmp r1, r0
- bne _02218F5C
- mov r3, #0x7c
- ldrsh r3, [r5, r3]
- ldr r0, [r5, #0x18]
- mov r1, #3
- mov r2, #0
- bl FUN_020179E0
- pop {r3, r4, r5, r6, r7, pc}
-_02218F4E:
- ldr r0, [r5, #8]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl FreeToHeap
-_02218F5C:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218F60
-MOD08_02218F60: ; 0x02218F60
- push {r3, r4, r5, lr}
- mov r1, #0xa0
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #4
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- strh r0, [r4, #0x20]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- strh r0, [r4, #0x22]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- strh r0, [r4, #0x24]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- strh r0, [r4, #0x26]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- mov r2, #1
- lsl r2, r2, #8
- str r0, [r4, #0x28]
- add r1, r0, #0
- and r0, r2
- cmp r0, r2
- bne _02218FC0
- add r2, r4, #0
- add r0, r5, #0
- add r2, #0x2c
- add r3, r4, #0
- bl MOD08_02227BAC
- b _02218FD6
-_02218FC0:
- lsl r0, r2, #1
- add r3, r1, #0
- and r3, r0
- cmp r3, r0
- bne _02218FD6
- add r2, r4, #0
- add r0, r5, #0
- add r2, #0x2c
- add r3, r4, #0
- bl MOD08_02227F88
-_02218FD6:
- ldr r0, [r4, #8]
- ldr r1, _02218FE4 ; =MOD08_02218E50
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- nop
-_02218FE4: .word MOD08_02218E50
-
- thumb_func_start MOD08_02218FE8
-MOD08_02218FE8: ; 0x02218FE8
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0x1c]
- cmp r0, #3
- bhi _022190B2
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02219000: ; jump table
- .short _02219008 - _02219000 - 2 ; case 0
- .short _02219026 - _02219000 - 2 ; case 1
- .short _02219068 - _02219000 - 2 ; case 2
- .short _02219074 - _02219000 - 2 ; case 3
-_02219008:
- ldrh r0, [r4, #0x18]
- mov r1, #4
- mov r2, #0x39
- str r0, [sp]
- ldrh r3, [r4, #0x16]
- ldr r0, _02219154 ; =0x04000050
- bl G2x_SetBlendAlpha_
- mov r0, #2
- mov r1, #1
- bl FUN_0201797C
- ldrb r0, [r4, #0x1c]
- add r0, r0, #1
- strb r0, [r4, #0x1c]
-_02219026:
- ldrh r1, [r4, #8]
- ldrh r2, [r4, #0x16]
- mov r0, #0
- sub r1, r1, #2
- cmp r2, r1
- bge _02219038
- add r1, r2, #2
- strh r1, [r4, #0x16]
- b _0221903A
-_02219038:
- add r0, r0, #1
-_0221903A:
- ldrh r1, [r4, #0x18]
- cmp r1, #9
- bls _02219046
- sub r1, r1, #2
- strh r1, [r4, #0x18]
- b _02219048
-_02219046:
- add r0, r0, #1
-_02219048:
- cmp r0, #2
- bne _0221905A
- ldrh r0, [r4, #8]
- strh r0, [r4, #0x16]
- mov r0, #7
- strh r0, [r4, #0x18]
- ldrb r0, [r4, #0x1c]
- add r0, r0, #1
- strb r0, [r4, #0x1c]
-_0221905A:
- ldrh r0, [r4, #0x18]
- ldrh r1, [r4, #0x16]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _02219158 ; =0x04000052
- strh r1, [r0]
- b _022190CA
-_02219068:
- ldr r1, [r4, #4]
- cmp r1, #0
- beq _022190CA
- add r0, r0, #1
- strb r0, [r4, #0x1c]
- b _022190CA
-_02219074:
- ldrh r0, [r4, #0x16]
- mov r1, #0
- cmp r0, #2
- bls _02219082
- sub r0, r0, #2
- strh r0, [r4, #0x16]
- b _02219084
-_02219082:
- add r1, r1, #1
-_02219084:
- ldrh r0, [r4, #0x18]
- cmp r0, #0x1d
- bhs _02219090
- add r0, r0, #2
- strh r0, [r4, #0x18]
- b _02219092
-_02219090:
- add r1, r1, #1
-_02219092:
- cmp r1, #2
- bne _022190A4
- mov r0, #0
- strh r0, [r4, #0x16]
- mov r0, #0x1f
- strh r0, [r4, #0x18]
- ldrb r0, [r4, #0x1c]
- add r0, r0, #1
- strb r0, [r4, #0x1c]
-_022190A4:
- ldrh r0, [r4, #0x18]
- ldrh r1, [r4, #0x16]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _02219158 ; =0x04000052
- strh r1, [r0]
- b _022190CA
-_022190B2:
- mov r0, #2
- mov r1, #0
- bl FUN_0201797C
- ldr r0, [r4, #0x20]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
-_022190CA:
- mov r1, #0x10
- ldrsh r3, [r4, r1]
- cmp r3, #0
- ble _022190DC
- mov r0, #0xc
- ldrsh r2, [r4, r0]
- lsl r0, r1, #5
- cmp r2, r0
- bge _022190EA
-_022190DC:
- cmp r3, #0
- bge _022190EE
- mov r0, #0xc
- ldrsh r1, [r4, r0]
- ldr r0, _0221915C ; =0xFFFFFE64
- cmp r1, r0
- bgt _022190EE
-_022190EA:
- mov r0, #1
- str r0, [r4, #4]
-_022190EE:
- mov r0, #0xa
- ldrsh r1, [r4, r0]
- mov r0, #0xe
- ldrsh r0, [r4, r0]
- add r0, r1, r0
- strh r0, [r4, #0xa]
- mov r0, #0xc
- ldrsh r2, [r4, r0]
- mov r0, #0x10
- ldrsh r1, [r4, r0]
- add r1, r2, r1
- strh r1, [r4, #0xc]
- ldrh r2, [r4, #0x12]
- ldrh r1, [r4, #0x14]
- cmp r2, r1
- bhs _02219132
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bge _02219118
- add r0, r0, #1
- b _0221911A
-_02219118:
- mov r0, #0
-_0221911A:
- strh r0, [r4, #0x10]
- mov r0, #0xe
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bge _02219128
- add r0, r0, #1
- b _0221912A
-_02219128:
- mov r0, #0
-_0221912A:
- strh r0, [r4, #0xe]
- mov r0, #0
- strh r0, [r4, #0x14]
- b _02219136
-_02219132:
- add r0, r1, #1
- strh r0, [r4, #0x14]
-_02219136:
- mov r3, #0xa
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #0x30]
- mov r1, #2
- mov r2, #0
- bl FUN_020179E0
- mov r3, #0xc
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #0x30]
- mov r1, #2
- mov r2, #3
- bl FUN_020179E0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02219154: .word 0x04000050
-_02219158: .word 0x04000052
-_0221915C: .word 0xFFFFFE64
-
- thumb_func_start MOD08_02219160
-MOD08_02219160: ; 0x02219160
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- mov r1, #0xb8
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r1, r4, #0
- add r0, r5, #0
- add r1, #0x1c
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- strh r0, [r4, #0xa]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- strh r0, [r4, #0xc]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- strh r0, [r4, #0xe]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- strh r0, [r4, #0x10]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- str r0, [r4]
- add r0, r5, #0
- mov r1, #6
- bl MOD08_02212498
- strh r0, [r4, #8]
- add r0, r5, #0
- mov r1, #7
- bl MOD08_02212498
- strh r0, [r4, #0x12]
- mov r0, #0
- strh r0, [r4, #0x14]
- ldr r0, [r4]
- cmp r0, #0
- beq _0221920C
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227470
- cmp r0, #4
- bne _0221920C
- mov r0, #0xa
- ldrsh r1, [r4, r0]
- sub r0, #0xb
- mul r0, r1
- strh r0, [r4, #0xa]
- mov r1, #0xc
- add r0, r1, #0
- ldrsh r2, [r4, r1]
- sub r0, #0xd
- mul r0, r2
- strh r0, [r4, #0xc]
- mov r0, #0xe
- ldrsh r2, [r4, r0]
- sub r0, #0xf
- mul r0, r2
- strh r0, [r4, #0xe]
- mov r0, #0x10
- ldrsh r2, [r4, r0]
- sub r0, #0x11
- mul r0, r2
- strh r0, [r4, #0x10]
- ldrsh r0, [r4, r1]
- sub r0, #0x54
- strh r0, [r4, #0xc]
- b _02219214
-_0221920C:
- mov r0, #0xc
- ldrsh r0, [r4, r0]
- add r0, #0x54
- strh r0, [r4, #0xc]
-_02219214:
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02219228
- mov r0, #0xe
- ldrsh r1, [r4, r0]
- sub r0, #0xf
- mul r0, r1
- strh r0, [r4, #0xe]
-_02219228:
- mov r1, #0
- strh r1, [r4, #0x16]
- mov r0, #0x1f
- strh r0, [r4, #0x18]
- mov r0, #2
- str r1, [r4, #4]
- bl FUN_0201797C
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- mov r1, #0
- add r7, r0, #0
- bl MOD08_022156AC
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212014
- mov r1, #0
- str r1, [sp]
- str r1, [sp, #4]
- mov r1, #1
- str r1, [sp, #8]
- str r0, [sp, #0xc]
- ldr r2, [r4, #0x30]
- mov r0, #7
- add r1, r6, #0
- mov r3, #2
- bl FUN_0200687C
- add r0, r7, #0
- mov r1, #1
- bl MOD08_022156AC
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212014
- add r3, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0x90
- str r0, [sp, #8]
- ldr r0, [r4, #0x34]
- mov r1, #7
- add r2, r6, #0
- bl FUN_020030E8
- ldr r0, [r4, #0x30]
- mov r1, #2
- bl FUN_02018744
- add r0, r5, #0
- mov r6, #2
- bl MOD08_02212004
- cmp r0, #1
- bne _022192A8
- mov r6, #4
- b _022192BC
-_022192A8:
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227470
- cmp r0, #4
- bne _022192BC
- mov r6, #3
-_022192BC:
- add r0, r7, #0
- add r1, r6, #0
- bl MOD08_022156AC
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212014
- mov r1, #0
- str r1, [sp]
- str r1, [sp, #4]
- mov r1, #1
- str r1, [sp, #8]
- str r0, [sp, #0xc]
- ldr r2, [r4, #0x30]
- mov r0, #7
- add r1, r6, #0
- mov r3, #2
- bl FUN_020068C8
- mov r3, #0xa
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #0x30]
- mov r1, #2
- mov r2, #0
- bl FUN_020179E0
- mov r3, #0xc
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #0x30]
- mov r1, #2
- mov r2, #3
- bl FUN_020179E0
- ldr r0, [r4, #0x20]
- ldr r1, _02219310 ; =MOD08_02218FE8
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02219310: .word MOD08_02218FE8
-
- thumb_func_start MOD08_02219314
-MOD08_02219314: ; 0x02219314
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0x1c]
- cmp r0, #3
- bhi _022193DA
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0221932C: ; jump table
- .short _02219334 - _0221932C - 2 ; case 0
- .short _02219352 - _0221932C - 2 ; case 1
- .short _02219390 - _0221932C - 2 ; case 2
- .short _0221939C - _0221932C - 2 ; case 3
-_02219334:
- ldrh r0, [r4, #0x18]
- mov r1, #4
- mov r2, #0x39
- str r0, [sp]
- ldrh r3, [r4, #0x16]
- ldr r0, _0221947C ; =0x04000050
- bl G2x_SetBlendAlpha_
- mov r0, #2
- mov r1, #1
- bl FUN_0201797C
- ldrb r0, [r4, #0x1c]
- add r0, r0, #1
- strb r0, [r4, #0x1c]
-_02219352:
- ldrh r0, [r4, #0x16]
- mov r1, #0
- cmp r0, #0x10
- bhs _02219360
- add r0, r0, #2
- strh r0, [r4, #0x16]
- b _02219362
-_02219360:
- add r1, r1, #1
-_02219362:
- ldrh r0, [r4, #0x18]
- cmp r0, #4
- bls _0221936E
- sub r0, r0, #2
- strh r0, [r4, #0x18]
- b _02219370
-_0221936E:
- add r1, r1, #1
-_02219370:
- cmp r1, #2
- bne _02219382
- mov r0, #0x10
- strh r0, [r4, #0x16]
- mov r0, #4
- strh r0, [r4, #0x18]
- ldrb r0, [r4, #0x1c]
- add r0, r0, #1
- strb r0, [r4, #0x1c]
-_02219382:
- ldrh r0, [r4, #0x18]
- ldrh r1, [r4, #0x16]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _02219480 ; =0x04000052
- strh r1, [r0]
- b _022193F2
-_02219390:
- ldr r1, [r4, #4]
- cmp r1, #0
- beq _022193F2
- add r0, r0, #1
- strb r0, [r4, #0x1c]
- b _022193F2
-_0221939C:
- ldrh r0, [r4, #0x16]
- mov r1, #0
- cmp r0, #2
- bls _022193AA
- sub r0, r0, #2
- strh r0, [r4, #0x16]
- b _022193AC
-_022193AA:
- add r1, r1, #1
-_022193AC:
- ldrh r0, [r4, #0x18]
- cmp r0, #0x10
- bhs _022193B8
- add r0, r0, #2
- strh r0, [r4, #0x18]
- b _022193BA
-_022193B8:
- add r1, r1, #1
-_022193BA:
- cmp r1, #2
- bne _022193CC
- mov r0, #0
- strh r0, [r4, #0x16]
- mov r0, #0x1f
- strh r0, [r4, #0x18]
- ldrb r0, [r4, #0x1c]
- add r0, r0, #1
- strb r0, [r4, #0x1c]
-_022193CC:
- ldrh r0, [r4, #0x18]
- ldrh r1, [r4, #0x16]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _02219480 ; =0x04000052
- strh r1, [r0]
- b _022193F2
-_022193DA:
- mov r0, #2
- mov r1, #0
- bl FUN_0201797C
- ldr r0, [r4, #0x20]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
-_022193F2:
- mov r1, #0x10
- ldrsh r3, [r4, r1]
- cmp r3, #0
- ble _02219404
- mov r0, #0xc
- ldrsh r2, [r4, r0]
- lsl r0, r1, #5
- cmp r2, r0
- bge _02219412
-_02219404:
- cmp r3, #0
- bge _02219416
- mov r0, #0xc
- ldrsh r1, [r4, r0]
- ldr r0, _02219484 ; =0xFFFFFE64
- cmp r1, r0
- bgt _02219416
-_02219412:
- mov r0, #1
- str r0, [r4, #4]
-_02219416:
- mov r0, #0xa
- ldrsh r1, [r4, r0]
- mov r0, #0xe
- ldrsh r0, [r4, r0]
- add r0, r1, r0
- strh r0, [r4, #0xa]
- mov r0, #0xc
- ldrsh r2, [r4, r0]
- mov r0, #0x10
- ldrsh r1, [r4, r0]
- add r1, r2, r1
- strh r1, [r4, #0xc]
- ldrh r2, [r4, #0x12]
- ldrh r1, [r4, #0x14]
- cmp r2, r1
- bhs _0221945A
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bge _02219440
- add r0, r0, #1
- b _02219442
-_02219440:
- mov r0, #0
-_02219442:
- strh r0, [r4, #0x10]
- mov r0, #0xe
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bge _02219450
- add r0, r0, #1
- b _02219452
-_02219450:
- mov r0, #0
-_02219452:
- strh r0, [r4, #0xe]
- mov r0, #0
- strh r0, [r4, #0x14]
- b _0221945E
-_0221945A:
- add r0, r1, #1
- strh r0, [r4, #0x14]
-_0221945E:
- mov r3, #0xa
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #0x30]
- mov r1, #2
- mov r2, #0
- bl FUN_020179E0
- mov r3, #0xc
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #0x30]
- mov r1, #2
- mov r2, #3
- bl FUN_020179E0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221947C: .word 0x04000050
-_02219480: .word 0x04000052
-_02219484: .word 0xFFFFFE64
-
- thumb_func_start MOD08_02219488
-MOD08_02219488: ; 0x02219488
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- mov r1, #0xb8
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r1, r4, #0
- add r0, r5, #0
- add r1, #0x1c
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- strh r0, [r4, #0xa]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- strh r0, [r4, #0xc]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- strh r0, [r4, #0xe]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- strh r0, [r4, #0x10]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- str r0, [r4]
- add r0, r5, #0
- mov r1, #6
- bl MOD08_02212498
- strh r0, [r4, #8]
- add r0, r5, #0
- mov r1, #7
- bl MOD08_02212498
- strh r0, [r4, #0x12]
- mov r0, #0
- strh r0, [r4, #0x14]
- ldr r0, [r4]
- cmp r0, #0
- beq _02219534
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227470
- cmp r0, #4
- bne _02219534
- mov r0, #0xa
- ldrsh r1, [r4, r0]
- sub r0, #0xb
- mul r0, r1
- strh r0, [r4, #0xa]
- mov r1, #0xc
- add r0, r1, #0
- ldrsh r2, [r4, r1]
- sub r0, #0xd
- mul r0, r2
- strh r0, [r4, #0xc]
- mov r0, #0xe
- ldrsh r2, [r4, r0]
- sub r0, #0xf
- mul r0, r2
- strh r0, [r4, #0xe]
- mov r0, #0x10
- ldrsh r2, [r4, r0]
- sub r0, #0x11
- mul r0, r2
- strh r0, [r4, #0x10]
- ldrsh r0, [r4, r1]
- sub r0, #0x54
- strh r0, [r4, #0xc]
- b _0221953C
-_02219534:
- mov r0, #0xc
- ldrsh r0, [r4, r0]
- add r0, #0x54
- strh r0, [r4, #0xc]
-_0221953C:
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02219550
- mov r0, #0xe
- ldrsh r1, [r4, r0]
- sub r0, #0xf
- mul r0, r1
- strh r0, [r4, #0xe]
-_02219550:
- mov r0, #4
- strh r0, [r4, #0x16]
- mov r0, #0x10
- strh r0, [r4, #0x18]
- mov r1, #0
- strh r1, [r4, #0x16]
- strh r0, [r4, #0x18]
- mov r0, #2
- str r1, [r4, #4]
- bl FUN_0201797C
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- mov r1, #0
- add r7, r0, #0
- bl MOD08_022156AC
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212014
- mov r1, #0
- str r1, [sp]
- str r1, [sp, #4]
- mov r1, #1
- str r1, [sp, #8]
- str r0, [sp, #0xc]
- ldr r2, [r4, #0x30]
- mov r0, #7
- add r1, r6, #0
- mov r3, #2
- bl FUN_0200687C
- add r0, r7, #0
- mov r1, #1
- bl MOD08_022156AC
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212014
- add r3, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0x90
- str r0, [sp, #8]
- ldr r0, [r4, #0x34]
- mov r1, #7
- add r2, r6, #0
- bl FUN_020030E8
- ldr r0, [r4, #0x30]
- mov r1, #2
- bl FUN_02018744
- add r0, r5, #0
- mov r6, #2
- bl MOD08_02212004
- cmp r0, #1
- bne _022195D6
- mov r6, #4
- b _022195EA
-_022195D6:
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227470
- cmp r0, #4
- bne _022195EA
- mov r6, #3
-_022195EA:
- add r0, r7, #0
- add r1, r6, #0
- bl MOD08_022156AC
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212014
- mov r1, #0
- str r1, [sp]
- str r1, [sp, #4]
- mov r1, #1
- str r1, [sp, #8]
- str r0, [sp, #0xc]
- ldr r2, [r4, #0x30]
- mov r0, #7
- add r1, r6, #0
- mov r3, #2
- bl FUN_020068C8
- mov r3, #0xa
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #0x30]
- mov r1, #2
- mov r2, #0
- bl FUN_020179E0
- mov r3, #0xc
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #0x30]
- mov r1, #2
- mov r2, #3
- bl FUN_020179E0
- ldr r0, [r4, #0x20]
- ldr r1, _0221963C ; =MOD08_02219314
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221963C: .word MOD08_02219314
-
- thumb_func_start MOD08_02219640
-MOD08_02219640: ; 0x02219640
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _02219656
- cmp r0, #1
- beq _02219656
- cmp r0, #2
- beq _02219688
- pop {r3, r4, r5, pc}
-_02219656:
- add r0, r4, #0
- add r0, #0xc
- bl MOD08_02218058
- cmp r0, #1
- bne _02219672
- ldr r2, [r4, #0xc]
- ldr r0, [r4, #8]
- lsl r2, r2, #0x10
- mov r1, #9
- lsr r2, r2, #0x10
- bl FUN_02007558
- pop {r3, r4, r5, pc}
-_02219672:
- add r0, r4, #0
- ldr r1, [r4, #0xc]
- ldr r2, [r4, #0x20]
- ldr r3, [r4, #0x24]
- add r0, #0xc
- bl MOD08_02218008
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02219688:
- ldr r0, [r4, #8]
- mov r1, #0xa
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #8]
- mov r1, #0xb
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #8]
- mov r1, #9
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022196B8
-MOD08_022196B8: ; 0x022196B8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x2c
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4]
- str r5, [r4, #4]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [r4, #0x24]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r4, #0x20]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- add r7, r0, #0
- beq _022196F2
- cmp r7, #2
- bne _022196FC
-_022196F2:
- ldr r0, [r4, #4]
- bl MOD08_02212460
- str r0, [sp]
- b _02219704
-_022196FC:
- ldr r0, [r4, #4]
- bl MOD08_02212458
- str r0, [sp]
-_02219704:
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- add r2, r0, #0
- add r0, r4, #0
- ldr r1, [r4, #0x20]
- ldr r3, [r4, #0x24]
- add r0, #0xc
- bl MOD08_02218008
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD08_02217C1C
- add r6, r0, #0
- ldr r0, [r4, #0x14]
- add r1, r0, #0
- mul r1, r6
- str r1, [r4, #0x14]
- cmp r7, #2
- bne _02219736
- mov r0, #0
- mvn r0, r0
- mul r6, r0
-_02219736:
- ldr r0, [r4, #4]
- ldr r1, [sp]
- bl MOD08_022154D4
- str r0, [r4, #8]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- cmp r0, #1
- bne _02219760
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- strh r0, [r4, #0x28]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- b _02219768
-_02219760:
- mov r0, #0x28
- add r1, r6, #0
- mul r1, r0
- strh r1, [r4, #0x28]
-_02219768:
- strh r0, [r4, #0x2a]
- mov r2, #0x28
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #8]
- mov r1, #0xa
- bl FUN_02007558
- mov r2, #0x2a
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #8]
- mov r1, #0xb
- bl FUN_02007558
- ldr r0, [r4, #4]
- ldr r1, _02219790 ; =MOD08_02219640
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02219790: .word MOD08_02219640
-
- thumb_func_start MOD08_02219794
-MOD08_02219794: ; 0x02219794
- push {r3, r4, r5, lr}
- add r4, r1, #0
- mov r1, #0x2c
- mov r2, #0x2e
- add r5, r0, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r3, [r4, #0x28]
- add r0, r4, #4
- bl MOD08_02217E58
- cmp r0, #0
- bne _022197E0
- mov r2, #0x2c
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x28]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x2e
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x28]
- mov r1, #1
- sub r2, #8
- bl FUN_02007558
- ldr r0, [r4, #0x28]
- mov r1, #9
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_022197E0:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022197E4
-MOD08_022197E4: ; 0x022197E4
- push {r4, r5, r6, lr}
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x30
- bl AllocFromHeap
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #0
- str r5, [r4]
- bl MOD08_02212498
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- add r2, r0, #0
- add r0, r4, #4
- add r1, r6, #0
- bl MOD08_02218654
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- cmp r0, #8
- bgt _0221982E
- cmp r0, #2
- blt _022198A0
- beq _02219834
- cmp r0, #4
- beq _02219850
- cmp r0, #8
- beq _02219874
- b _022198A0
-_0221982E:
- cmp r0, #0x10
- beq _02219886
- b _022198A0
-_02219834:
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0x28]
- mov r0, #0
- ldr r1, [r4, #0x10]
- mvn r0, r0
- mul r0, r1
- str r0, [r4, #0x10]
- b _022198A4
-_02219850:
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022274C0
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0x28]
- mov r0, #0
- ldr r1, [r4, #0x10]
- mvn r0, r0
- mul r0, r1
- str r0, [r4, #0x10]
- b _022198A4
-_02219874:
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0x28]
- b _022198A4
-_02219886:
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022274C0
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0x28]
- b _022198A4
-_022198A0:
- bl ErrorHandling
-_022198A4:
- ldr r0, [r4, #0x28]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x2c]
- ldr r0, [r4, #0x28]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x2e]
- mov r0, #0x2e
- ldrsh r0, [r4, r0]
- ldr r1, _022198CC ; =MOD08_02219794
- add r2, r4, #0
- add r0, #8
- strh r0, [r4, #0x2e]
- ldr r0, [r4]
- bl MOD08_02212400
- pop {r4, r5, r6, pc}
- .align 2, 0
-_022198CC: .word MOD08_02219794
-
- thumb_func_start MOD08_022198D0
-MOD08_022198D0: ; 0x022198D0
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r5, r0, #0
- ldr r0, [r5, #0x14]
- add r4, r1, #0
- mov r1, #1
- add r6, r2, #0
- bl FUN_0200C644
- ldr r0, [r5, #0x14]
- add r1, r4, #0
- add r2, r6, #0
- bl FUN_0200C714
- mov r0, #0
- str r0, [r5, #0x40]
- mov r0, #4
- mov r1, #0xa
- add r5, #0x18
- str r0, [sp]
- add r0, r5, #0
- add r2, r1, #0
- mov r3, #0xe
- bl MOD08_02218120
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02219908
-MOD08_02219908: ; 0x02219908
- push {r3, r4, lr}
- sub sp, #4
- add r4, r0, #0
- ldr r1, [r4, #0x14]
- add r0, #0x18
- bl MOD08_02218360
- cmp r0, #0
- bne _02219944
- ldr r0, [r4, #0x40]
- cmp r0, #0
- beq _0221992E
- ldr r0, [r4, #0x14]
- mov r1, #0
- bl FUN_0200C644
- add sp, #4
- mov r0, #1
- pop {r3, r4, pc}
-_0221992E:
- mov r0, #1
- str r0, [r4, #0x40]
- mov r0, #2
- add r4, #0x18
- str r0, [sp]
- add r0, r4, #0
- mov r1, #0xe
- mov r2, #0xa
- mov r3, #0xc
- bl MOD08_02218120
-_02219944:
- mov r0, #0
- add sp, #4
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221994C
-MOD08_0221994C: ; 0x0221994C
- push {r3, r4, r5, lr}
- add r4, r0, #0
- ldr r1, [r4, #0x48]
- mov r5, #0
- cmp r1, #4
- bhi _022199E4
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02219964: ; jump table
- .short _0221996E - _02219964 - 2 ; case 0
- .short _02219994 - _02219964 - 2 ; case 1
- .short _022199A4 - _02219964 - 2 ; case 2
- .short _022199D2 - _02219964 - 2 ; case 3
- .short _022199E2 - _02219964 - 2 ; case 4
-_0221996E:
- mov r1, #0x4c
- ldrsh r3, [r4, r1]
- ldr r2, [r4, #0x3c]
- mov r1, #0x18
- mul r1, r2
- mov r2, #0x4e
- ldrsh r2, [r4, r2]
- add r1, r3, r1
- lsl r1, r1, #0x10
- sub r2, #0x10
- lsl r2, r2, #0x10
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_022198D0
- ldr r0, [r4, #0x48]
- add r0, r0, #1
- str r0, [r4, #0x48]
- b _022199E4
-_02219994:
- bl MOD08_02219908
- cmp r0, #0
- beq _022199E4
- ldr r0, [r4, #0x48]
- add r0, r0, #1
- str r0, [r4, #0x48]
- b _022199E4
-_022199A4:
- ldr r1, [r4, #0x44]
- sub r1, r1, #1
- str r1, [r4, #0x44]
- bpl _022199E4
- ldr r1, [r4, #0x48]
- add r1, r1, #1
- str r1, [r4, #0x48]
- mov r1, #0x4c
- ldrsh r3, [r4, r1]
- ldr r2, [r4, #0x3c]
- mov r1, #0x18
- mul r1, r2
- mov r2, #0x4e
- ldrsh r2, [r4, r2]
- sub r1, r3, r1
- lsl r1, r1, #0x10
- sub r2, #0x18
- lsl r2, r2, #0x10
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_022198D0
- b _022199E4
-_022199D2:
- bl MOD08_02219908
- cmp r0, #0
- beq _022199E4
- ldr r0, [r4, #0x48]
- add r0, r0, #1
- str r0, [r4, #0x48]
- b _022199E4
-_022199E2:
- mov r5, #1
-_022199E4:
- add r0, r5, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_022199E8
-MOD08_022199E8: ; 0x022199E8
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #0
- beq _022199FA
- cmp r0, #1
- beq _02219A0C
- b _02219A22
-_022199FA:
- add r0, r4, #0
- bl MOD08_0221994C
- cmp r0, #0
- beq _02219A22
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02219A22
-_02219A0C:
- ldr r0, [r4, #0x14]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
-_02219A22:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02219A2C
-MOD08_02219A2C: ; 0x02219A2C
- push {r3, r4, r5, r6, r7, lr}
- add r7, r1, #0
- mov r1, #0x50
- add r5, r0, #0
- str r2, [sp]
- add r6, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- ldr r0, [sp]
- str r7, [r4, #4]
- str r0, [r4, #8]
- str r6, [r4, #0x14]
- add r0, r6, #0
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x14]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r4, #0x14]
- mov r1, #0
- bl FUN_0200C644
- mov r0, #4
- str r0, [r4, #0x44]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C1C
- str r0, [r4, #0x3c]
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #0
- add r5, r0, #0
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x4c
- strh r0, [r1]
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x4e
- strh r0, [r1]
- ldr r0, [r4]
- ldr r1, _02219AB4 ; =MOD08_022199E8
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02219AB4: .word MOD08_022199E8
-
- thumb_func_start MOD08_02219AB8
-MOD08_02219AB8: ; 0x02219AB8
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- bl FUN_020038E4
- cmp r0, #0
- bne _02219AD6
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
-_02219AD6:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02219AD8
-MOD08_02219AD8: ; 0x02219AD8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- mov r1, #8
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02215504
- str r0, [r4, #4]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- cmp r0, #0
- beq _02219B06
- cmp r0, #1
- beq _02219B12
- cmp r0, #2
- beq _02219B18
- b _02219B1E
-_02219B06:
- add r0, r5, #0
- bl MOD08_02214540
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- b _02219B22
-_02219B12:
- mov r6, #1
- lsl r6, r6, #8
- b _02219B22
-_02219B18:
- mov r6, #2
- lsl r6, r6, #8
- b _02219B22
-_02219B1E:
- bl ErrorHandling
-_02219B22:
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [sp, #0xc]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- str r0, [sp, #0x10]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- ldr r1, [sp, #0xc]
- lsl r0, r0, #0x10
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- str r1, [sp]
- ldr r1, [sp, #0x10]
- lsl r3, r7, #0x18
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- str r1, [sp, #4]
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r0, [r4, #4]
- mov r1, #1
- add r2, r6, #0
- asr r3, r3, #0x18
- bl FUN_02003210
- ldr r0, [r4]
- ldr r1, _02219B7C ; =MOD08_02219AB8
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_02219B7C: .word MOD08_02219AB8
-
- thumb_func_start MOD08_02219B80
-MOD08_02219B80: ; 0x02219B80
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #5
- bhi _02219C28
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02219B98: ; jump table
- .short _02219BA4 - _02219B98 - 2 ; case 0
- .short _02219BBC - _02219B98 - 2 ; case 1
- .short _02219BCE - _02219B98 - 2 ; case 2
- .short _02219BE0 - _02219B98 - 2 ; case 3
- .short _02219BF8 - _02219B98 - 2 ; case 4
- .short _02219C1A - _02219B98 - 2 ; case 5
-_02219BA4:
- ldr r0, [r4, #0x14]
- mov r1, #0
- str r0, [sp]
- ldr r0, [r4, #4]
- ldr r2, [r4, #0x18]
- ldr r3, [r4, #0x10]
- bl FUN_02007E68
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_02219BBC:
- ldr r0, [r4, #4]
- bl FUN_02007F20
- cmp r0, #0
- bne _02219C28
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_02219BCE:
- ldr r1, [r4, #0x1c]
- cmp r1, #0
- bne _02219BDA
- add r0, r0, #1
- str r0, [r4, #8]
- b _02219BE0
-_02219BDA:
- sub r0, r1, #1
- str r0, [r4, #0x1c]
- pop {r3, r4, r5, pc}
-_02219BE0:
- ldr r0, [r4, #0x14]
- mov r2, #0
- str r0, [sp]
- ldr r0, [r4, #4]
- ldr r1, [r4, #0x18]
- ldr r3, [r4, #0x10]
- bl FUN_02007E68
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_02219BF8:
- ldr r0, [r4, #4]
- bl FUN_02007F20
- cmp r0, #0
- bne _02219C28
- ldr r0, [r4, #0xc]
- sub r0, r0, #1
- str r0, [r4, #0xc]
- cmp r0, #0
- bgt _02219C14
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_02219C14:
- mov r0, #0
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_02219C1A:
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
-_02219C28:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02219C2C
-MOD08_02219C2C: ; 0x02219C2C
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x20
- add r4, r0, #0
- bl MOD08_02228064
- add r6, r0, #0
- str r4, [r6]
- mov r1, #0
- add r0, r4, #0
- str r1, [r6, #4]
- bl MOD08_02212498
- ldr r2, _02219DF4 ; =0x00000802
- cmp r0, r2
- bgt _02219C66
- bge _02219CEC
- cmp r0, #8
- bgt _02219C60
- cmp r0, #2
- blt _02219C5E
- beq _02219C7E
- cmp r0, #4
- beq _02219C90
- cmp r0, #8
- beq _02219CB6
-_02219C5E:
- b _02219DA4
-_02219C60:
- cmp r0, #0x10
- beq _02219CC8
- b _02219DA4
-_02219C66:
- add r1, r2, #6
- cmp r0, r1
- bgt _02219C76
- bge _02219D48
- add r1, r2, #2
- cmp r0, r1
- beq _02219D1C
- b _02219DA4
-_02219C76:
- add r2, #0xe
- cmp r0, r2
- beq _02219D78
- b _02219DA4
-_02219C7E:
- add r0, r4, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_022154D4
- str r0, [r6, #4]
- b _02219DA8
-_02219C90:
- add r0, r4, #0
- bl MOD08_0221553C
- cmp r0, #1
- beq _02219C9C
- b _02219DA8
-_02219C9C:
- ldr r0, [r6]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_022274C0
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_022154D4
- str r0, [r6, #4]
- b _02219DA8
-_02219CB6:
- add r0, r4, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_022154D4
- str r0, [r6, #4]
- b _02219DA8
-_02219CC8:
- add r0, r4, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _02219DA8
- ldr r0, [r6]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_022274C0
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_022154D4
- str r0, [r6, #4]
- b _02219DA8
-_02219CEC:
- mov r7, #0xff
- mov r5, #0
-_02219CF0:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02215490
- cmp r0, #0
- beq _02219D00
- cmp r0, #2
- bne _02219D04
-_02219D00:
- add r7, r5, #0
- b _02219D0A
-_02219D04:
- add r5, r5, #1
- cmp r5, #4
- blt _02219CF0
-_02219D0A:
- cmp r7, #0xff
- bne _02219D10
- mov r7, #0
-_02219D10:
- ldr r0, [r6]
- add r1, r7, #0
- bl MOD08_022154D4
- str r0, [r6, #4]
- b _02219DA8
-_02219D1C:
- mov r7, #0xff
- mov r5, #0
-_02219D20:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02215490
- cmp r0, #4
- bne _02219D30
- add r7, r5, #0
- b _02219D36
-_02219D30:
- add r5, r5, #1
- cmp r5, #4
- blt _02219D20
-_02219D36:
- cmp r7, #0xff
- bne _02219D3C
- mov r7, #0
-_02219D3C:
- ldr r0, [r6]
- add r1, r7, #0
- bl MOD08_022154D4
- str r0, [r6, #4]
- b _02219DA8
-_02219D48:
- mov r7, #0xff
- mov r5, #0
-_02219D4C:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02215490
- cmp r0, #1
- beq _02219D5C
- cmp r0, #3
- bne _02219D60
-_02219D5C:
- add r7, r5, #0
- b _02219D66
-_02219D60:
- add r5, r5, #1
- cmp r5, #4
- blt _02219D4C
-_02219D66:
- cmp r7, #0xff
- bne _02219D6C
- mov r7, #0
-_02219D6C:
- ldr r0, [r6]
- add r1, r7, #0
- bl MOD08_022154D4
- str r0, [r6, #4]
- b _02219DA8
-_02219D78:
- mov r7, #0xff
- mov r5, #0
-_02219D7C:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02215490
- cmp r0, #5
- bne _02219D8C
- add r7, r5, #0
- b _02219D92
-_02219D8C:
- add r5, r5, #1
- cmp r5, #4
- blt _02219D7C
-_02219D92:
- cmp r7, #0xff
- bne _02219D98
- mov r7, #0
-_02219D98:
- ldr r0, [r6]
- add r1, r7, #0
- bl MOD08_022154D4
- str r0, [r6, #4]
- b _02219DA8
-_02219DA4:
- bl ErrorHandling
-_02219DA8:
- ldr r0, [r6, #4]
- cmp r0, #0
- bne _02219DB6
- add r0, r6, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_02219DB6:
- add r0, r4, #0
- mov r1, #1
- bl MOD08_02212498
- str r0, [r6, #0x10]
- add r0, r4, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [r6, #0xc]
- add r0, r4, #0
- mov r1, #3
- bl MOD08_02212498
- str r0, [r6, #0x14]
- add r0, r4, #0
- mov r1, #4
- bl MOD08_02212498
- str r0, [r6, #0x18]
- add r0, r4, #0
- mov r1, #5
- bl MOD08_02212498
- str r0, [r6, #0x1c]
- ldr r0, [r6]
- ldr r1, _02219DF8 ; =MOD08_02219B80
- add r2, r6, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02219DF4: .word 0x00000802
-_02219DF8: .word MOD08_02219B80
-
- thumb_func_start MOD08_02219DFC
-MOD08_02219DFC: ; 0x02219DFC
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #4
- bls _02219E0C
- b _02219F60
-_02219E0C:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02219E18: ; jump table
- .short _02219E22 - _02219E18 - 2 ; case 0
- .short _02219E70 - _02219E18 - 2 ; case 1
- .short _02219EC2 - _02219E18 - 2 ; case 2
- .short _02219EEC - _02219E18 - 2 ; case 3
- .short _02219F4E - _02219E18 - 2 ; case 4
-_02219E22:
- ldr r0, [r4, #0x4c]
- asr r0, r0, #0x10
- str r0, [sp]
- ldr r1, [r4, #0x3c]
- ldr r2, [r4, #0x44]
- ldr r3, [r4, #0x40]
- add r0, r4, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- add r0, #0x14
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_02218120
- add r0, r4, #0
- add r0, #0x14
- add r1, sp, #8
- add r2, sp, #4
- bl MOD08_0221825C
- ldr r0, [r4, #0x50]
- cmp r0, #1
- bne _02219E5E
- ldr r1, [sp, #8]
- mov r0, #0
- bl _fsub
- str r0, [sp, #8]
-_02219E5E:
- ldr r0, [r4, #0x10]
- ldr r1, [sp, #8]
- ldr r2, [sp, #4]
- bl FUN_0200C884
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02219F60
-_02219E70:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- add r5, r0, #0
- add r0, r4, #0
- add r0, #0x14
- add r1, sp, #8
- add r2, sp, #4
- bl MOD08_0221825C
- ldr r0, [r4, #0x50]
- cmp r0, #1
- bne _02219E96
- ldr r1, [sp, #8]
- mov r0, #0
- bl _fsub
- str r0, [sp, #8]
-_02219E96:
- ldr r0, [r4, #0x10]
- ldr r1, [sp, #8]
- ldr r2, [sp, #4]
- bl FUN_0200C884
- cmp r5, #0
- beq _02219EBA
- mov r0, #0
- str r0, [sp]
- mov r1, #0xc
- mov r2, #0xe
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- ldr r3, [r4, #0x28]
- bl MOD08_02218314
- b _02219F60
-_02219EBA:
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02219F60
-_02219EC2:
- ldr r0, [r4, #0x4c]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp]
- ldr r1, [r4, #0x40]
- ldr r2, [r4, #0x44]
- ldr r3, [r4, #0x3c]
- add r0, r4, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- add r0, #0x14
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_02218120
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02219F60
-_02219EEC:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- add r5, r0, #0
- add r0, r4, #0
- add r0, #0x14
- add r1, sp, #8
- add r2, sp, #4
- bl MOD08_0221825C
- ldr r0, [r4, #0x50]
- cmp r0, #1
- bne _02219F12
- ldr r1, [sp, #8]
- mov r0, #0
- bl _fsub
- str r0, [sp, #8]
-_02219F12:
- ldr r0, [r4, #0x10]
- ldr r1, [sp, #8]
- ldr r2, [sp, #4]
- bl FUN_0200C884
- cmp r5, #0
- beq _02219F36
- mov r0, #0
- str r0, [sp]
- mov r1, #0xc
- mov r2, #0xe
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- ldr r3, [r4, #0x28]
- bl MOD08_02218314
- b _02219F60
-_02219F36:
- ldr r0, [r4, #0x48]
- sub r0, r0, #1
- str r0, [r4, #0x48]
- cmp r0, #0
- bgt _02219F48
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02219F60
-_02219F48:
- mov r0, #0
- str r0, [r4, #8]
- b _02219F60
-_02219F4E:
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add sp, #0xc
- pop {r4, r5, pc}
-_02219F60:
- ldr r0, [r4, #4]
- bl FUN_0200BC1C
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02219F6C
-MOD08_02219F6C: ; 0x02219F6C
- push {r4, r5, r6, lr}
- mov r1, #0x54
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02212504
- str r0, [r4, #4]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- cmp r0, #0
- bne _02219FAE
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_0221552C
- b _02219FCC
-_02219FAE:
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_0221552C
-_02219FCC:
- strh r0, [r4, #0xe]
- add r0, r6, #0
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0xc]
- add r0, r6, #0
- mov r1, #0x29
- bl FUN_0200782C
- mov r1, #0xc
- ldrsh r1, [r4, r1]
- sub r0, r1, r0
- strh r0, [r4, #0xc]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- str r0, [r4, #0x38]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [r4, #0x3c]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- str r0, [r4, #0x40]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- str r0, [r4, #0x44]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- str r0, [r4, #0x48]
- add r0, r5, #0
- mov r1, #6
- bl MOD08_02212498
- str r0, [r4, #0x4c]
- add r0, r5, #0
- mov r1, #7
- bl MOD08_02212498
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022124D8
- str r0, [r4, #0x10]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #0x10]
- mov r1, #2
- bl FUN_0200C840
- ldr r1, [r4, #0x38]
- mov r2, #0x10
- ldr r0, [r4]
- sub r2, r2, r1
- bl MOD08_02227994
- ldr r0, [r4]
- ldr r1, _0221A08C ; =MOD08_02219DFC
- add r2, r4, #0
- bl MOD08_02212400
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- cmp r0, #0
- beq _0221A07A
- mov r1, #1
- b _0221A07C
-_0221A07A:
- mov r1, #0
-_0221A07C:
- ldr r0, [r4]
- bl MOD08_02215680
- cmp r0, #1
- bne _0221A08A
- mov r0, #1
- str r0, [r4, #0x50]
-_0221A08A:
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0221A08C: .word MOD08_02219DFC
-
- thumb_func_start MOD08_0221A090
-MOD08_0221A090: ; 0x0221A090
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #5
- bls _0221A0A0
- b _0221A1DC
-_0221A0A0:
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0221A0AC: ; jump table
- .short _0221A0B8 - _0221A0AC - 2 ; case 0
- .short _0221A0FC - _0221A0AC - 2 ; case 1
- .short _0221A12C - _0221A0AC - 2 ; case 2
- .short _0221A140 - _0221A0AC - 2 ; case 3
- .short _0221A186 - _0221A0AC - 2 ; case 4
- .short _0221A1C8 - _0221A0AC - 2 ; case 5
-_0221A0B8:
- ldr r0, [r4, #0x40]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- ldr r0, [r4, #0x44]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #4]
- ldr r0, [r4, #0x4c]
- asr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r1, [r4, #0x34]
- ldr r2, [r4, #0x38]
- ldr r3, [r4, #0x3c]
- add r0, r4, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- add r0, #0x10
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_022181A8
- add r0, r4, #0
- ldr r1, [r4, #0xc]
- add r0, #0x10
- bl MOD08_02218380
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_0221A0FC:
- add r0, r4, #0
- ldr r1, [r4, #0xc]
- add r0, #0x10
- bl MOD08_022183A0
- cmp r0, #0
- beq _0221A122
- mov r0, #0
- str r0, [sp]
- mov r1, #8
- mov r2, #0xa
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- ldr r3, [r4, #0x24]
- bl MOD08_022182DC
- add sp, #0xc
- pop {r4, r5, pc}
-_0221A122:
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_0221A12C:
- ldr r1, [r4, #0x50]
- cmp r1, #0
- bne _0221A138
- add r0, r0, #1
- str r0, [r4, #4]
- b _0221A140
-_0221A138:
- sub r0, r1, #1
- add sp, #0xc
- str r0, [r4, #0x50]
- pop {r4, r5, pc}
-_0221A140:
- ldr r0, [r4, #0x3c]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- ldr r0, [r4, #0x44]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #4]
- ldr r0, [r4, #0x4c]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r1, [r4, #0x38]
- ldr r2, [r4, #0x34]
- ldr r3, [r4, #0x40]
- add r0, r4, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- add r0, #0x10
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_022181A8
- add r0, r4, #0
- ldr r1, [r4, #0xc]
- add r0, #0x10
- bl MOD08_022183A0
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_0221A186:
- add r0, r4, #0
- ldr r1, [r4, #0xc]
- add r0, #0x10
- bl MOD08_022183A0
- cmp r0, #0
- beq _0221A1AC
- mov r0, #0
- str r0, [sp]
- mov r1, #8
- mov r2, #0xa
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- ldr r3, [r4, #0x24]
- bl MOD08_022182DC
- add sp, #0xc
- pop {r4, r5, pc}
-_0221A1AC:
- ldr r0, [r4, #0x48]
- sub r0, r0, #1
- str r0, [r4, #0x48]
- cmp r0, #0
- bgt _0221A1C0
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_0221A1C0:
- mov r0, #0
- add sp, #0xc
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_0221A1C8:
- ldr r0, [r4, #0xc]
- bl MOD08_02218E34
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
-_0221A1DC:
- add sp, #0xc
- pop {r4, r5, pc}
-
- thumb_func_start MOD08_0221A1E0
-MOD08_0221A1E0: ; 0x0221A1E0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x54
- add r5, r0, #0
- mov r1, #0x54
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #0
- str r5, [r4]
- bl MOD08_02212498
- ldr r2, _0221A3E4 ; =0x00000802
- cmp r0, r2
- bgt _0221A224
- bge _0221A290
- mov r2, #0x42
- lsl r2, r2, #2
- cmp r0, r2
- bgt _0221A21C
- sub r1, r2, #6
- cmp r0, r1
- blt _0221A21A
- beq _0221A23C
- sub r1, r2, #4
- cmp r0, r1
- beq _0221A23C
- cmp r0, r2
- beq _0221A266
-_0221A21A:
- b _0221A346
-_0221A21C:
- add r2, #8
- cmp r0, r2
- beq _0221A266
- b _0221A346
-_0221A224:
- add r1, r2, #6
- cmp r0, r1
- bgt _0221A234
- bge _0221A2EC
- add r1, r2, #2
- cmp r0, r1
- beq _0221A2C0
- b _0221A346
-_0221A234:
- add r2, #0xe
- cmp r0, r2
- beq _0221A31C
- b _0221A346
-_0221A23C:
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_0221552C
- strh r0, [r4, #0xa]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- add r1, r0, #0
- ldr r0, [r4]
- add r2, sp, #4
- add r3, sp, #0
- bl MOD08_02227BAC
- ldr r0, [sp, #0xc]
- str r0, [r4, #0xc]
- b _0221A346
-_0221A266:
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_0221552C
- strh r0, [r4, #0xa]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- add r1, r0, #0
- ldr r0, [r4]
- add r2, sp, #4
- add r3, sp, #0
- bl MOD08_02227BAC
- ldr r0, [sp, #0xc]
- str r0, [r4, #0xc]
- b _0221A346
-_0221A290:
- mov r7, #0xff
- mov r6, #0
-_0221A294:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02215490
- cmp r0, #0
- beq _0221A2A4
- cmp r0, #2
- bne _0221A2A8
-_0221A2A4:
- add r7, r6, #0
- b _0221A2AE
-_0221A2A8:
- add r6, r6, #1
- cmp r6, #4
- blt _0221A294
-_0221A2AE:
- cmp r7, #0xff
- bne _0221A2B4
- mov r7, #0
-_0221A2B4:
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- b _0221A346
-_0221A2C0:
- mov r7, #0xff
- mov r6, #0
-_0221A2C4:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02215490
- cmp r0, #4
- bne _0221A2D4
- add r7, r6, #0
- b _0221A2DA
-_0221A2D4:
- add r6, r6, #1
- cmp r6, #4
- blt _0221A2C4
-_0221A2DA:
- cmp r7, #0xff
- bne _0221A2E0
- mov r7, #0
-_0221A2E0:
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- b _0221A346
-_0221A2EC:
- mov r7, #0xff
- mov r6, #0
-_0221A2F0:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02215490
- cmp r0, #1
- beq _0221A300
- cmp r0, #3
- bne _0221A304
-_0221A300:
- add r7, r6, #0
- b _0221A30A
-_0221A304:
- add r6, r6, #1
- cmp r6, #4
- blt _0221A2F0
-_0221A30A:
- cmp r7, #0xff
- bne _0221A310
- mov r7, #0
-_0221A310:
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- b _0221A346
-_0221A31C:
- mov r7, #0xff
- mov r6, #0
-_0221A320:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02215490
- cmp r0, #5
- bne _0221A330
- add r7, r6, #0
- b _0221A336
-_0221A330:
- add r6, r6, #1
- cmp r6, #4
- blt _0221A320
-_0221A336:
- cmp r7, #0xff
- bne _0221A33C
- mov r7, #0
-_0221A33C:
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_022154D4
- str r0, [r4, #0xc]
-_0221A346:
- ldr r0, [r4, #0xc]
- cmp r0, #0
- bne _0221A356
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0x54
- pop {r4, r5, r6, r7, pc}
-_0221A356:
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #8]
- ldr r0, [r4, #0xc]
- mov r1, #0x29
- bl FUN_0200782C
- strh r0, [r4, #0xa]
- mov r0, #0xa
- ldrsh r0, [r4, r0]
- mov r1, #1
- add r0, #0x10
- strh r0, [r4, #0xa]
- add r0, r5, #0
- bl MOD08_02212498
- str r0, [r4, #0x34]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [r4, #0x38]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- str r0, [r4, #0x3c]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- str r0, [r4, #0x40]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- str r0, [r4, #0x44]
- add r0, r5, #0
- mov r1, #6
- bl MOD08_02212498
- str r0, [r4, #0x48]
- add r0, r5, #0
- mov r1, #7
- bl MOD08_02212498
- str r0, [r4, #0x4c]
- add r0, r5, #0
- mov r1, #6
- bl MOD08_02212498
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [r4, #0x48]
- add r0, r5, #0
- mov r1, #6
- bl MOD08_02212498
- asr r0, r0, #0x10
- str r0, [r4, #0x50]
- ldr r0, [r4]
- ldr r1, _0221A3E8 ; =MOD08_0221A090
- add r2, r4, #0
- bl MOD08_02212400
- add r1, r4, #0
- bl MOD08_0221A090
- add sp, #0x54
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0221A3E4: .word 0x00000802
-_0221A3E8: .word MOD08_0221A090
-
- thumb_func_start MOD08_0221A3EC
-MOD08_0221A3EC: ; 0x0221A3EC
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- add r0, #8
- bl MOD08_02218704
- cmp r0, #0
- beq _0221A40E
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- pop {r3, r4, r5, pc}
-_0221A40E:
- ldr r0, [r4, #4]
- bl FUN_0200BC1C
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221A418
-MOD08_0221A418: ; 0x0221A418
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- mov r1, #0x30
- add r7, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r7, [r4]
- add r0, r7, #0
- bl MOD08_02212504
- str r0, [r4, #4]
- add r0, r7, #0
- mov r1, #0
- bl MOD08_02212498
- add r6, r0, #0
- mov r5, #0
-_0221A43C:
- mov r0, #1
- lsl r0, r5
- tst r0, r6
- beq _0221A452
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_022124D8
- mov r1, #1
- bl FUN_0200C90C
-_0221A452:
- add r5, r5, #1
- cmp r5, #4
- blt _0221A43C
- add r0, r7, #0
- mov r1, #1
- bl MOD08_02212498
- add r5, r0, #0
- add r0, r7, #0
- mov r1, #3
- bl MOD08_02212498
- str r0, [sp, #8]
- ldr r0, [r4]
- ldr r2, [sp, #8]
- add r1, r5, #0
- bl MOD08_02227994
- add r0, r7, #0
- mov r1, #2
- bl MOD08_02212498
- add r6, r0, #0
- add r0, r7, #0
- mov r1, #4
- bl MOD08_02212498
- str r0, [sp, #0xc]
- add r0, r7, #0
- mov r1, #5
- bl MOD08_02212498
- ldr r1, [sp, #0xc]
- ldr r3, [sp, #8]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- str r1, [sp]
- str r0, [sp, #4]
- add r0, r4, #0
- lsl r1, r5, #0x10
- lsl r2, r6, #0x10
- lsl r3, r3, #0x10
- add r0, #8
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_022186D4
- ldr r0, [r4]
- ldr r1, _0221A4C0 ; =MOD08_0221A3EC
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221A4C0: .word MOD08_0221A3EC
-
- thumb_func_start MOD08_0221A4C4
-MOD08_0221A4C4: ; 0x0221A4C4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r6, r0, #0
- mov r1, #1
- bl MOD08_02212498
- add r5, r0, #0
- add r0, r6, #0
- mov r1, #0
- bl MOD08_02212498
- add r1, r0, #0
- add r0, r6, #0
- add r2, sp, #4
- add r3, sp, #0
- bl MOD08_02227BAC
- ldr r0, [sp]
- mov r4, #0
- cmp r0, #0
- ble _0221A512
- mov r7, #6
-_0221A4F0:
- ldr r1, [sp, #0x14]
- add r0, r6, #0
- bl MOD08_02215554
- cmp r0, #1
- bne _0221A500
- cmp r5, #0
- beq _0221A50A
-_0221A500:
- ldr r0, [sp, #0xc]
- add r1, r7, #0
- add r2, r5, #0
- bl FUN_02007558
-_0221A50A:
- ldr r0, [sp]
- add r4, r4, #1
- cmp r4, r0
- blt _0221A4F0
-_0221A512:
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221A518
-MOD08_0221A518: ; 0x0221A518
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r1, [r4, #4]
- ldr r0, [r4, #8]
- cmp r1, r0
- blt _0221A566
- ldr r0, [r4]
- cmp r0, #0
- ldr r0, [r4, #0x14]
- bne _0221A546
- mov r1, #6
- mov r2, #0
- bl FUN_02007558
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4, #0x3c]
- add r1, r5, #0
- bl MOD08_02212438
- pop {r3, r4, r5, pc}
-_0221A546:
- mov r1, #6
- bl FUN_0200782C
- add r3, r0, #0
- mov r2, #1
- ldr r0, [r4, #0x14]
- mov r1, #6
- eor r2, r3
- bl FUN_02007558
- ldr r0, [r4]
- sub r0, r0, #1
- str r0, [r4]
- mov r0, #0
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
-_0221A566:
- add r0, r1, #1
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_0221A56C
-MOD08_0221A56C: ; 0x0221A56C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- mov r1, #0x40
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #0
- str r5, [r4, #0x3c]
- bl MOD08_02212498
- lsl r0, r0, #1
- str r0, [r4]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- add r1, r4, #0
- str r0, [r4, #8]
- add r0, r5, #0
- add r1, #0x20
- bl MOD08_02227B70
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022154D4
- str r0, [r4, #0x14]
- ldr r0, [r4, #0x3c]
- ldr r1, _0221A5B8 ; =MOD08_0221A518
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- nop
-_0221A5B8: .word MOD08_0221A518
-
- thumb_func_start MOD08_0221A5BC
-MOD08_0221A5BC: ; 0x0221A5BC
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- add r2, r0, #0
- add r0, r4, #0
- add r0, #0x24
- ldrb r0, [r0]
- cmp r0, #0
- beq _0221A5D4
- cmp r0, #1
- beq _0221A608
- b _0221A632
-_0221A5D4:
- mov r0, #0x16
- ldrsh r3, [r4, r0]
- mov r0, #0x14
- ldrsh r1, [r4, r0]
- mov r2, #0xc
- str r3, [sp]
- ldr r0, [r4, #8]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #4]
- ldrsh r2, [r4, r2]
- add r0, r4, #0
- add r0, #0x40
- add r2, r1, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl MOD08_02217E80
- add r0, r4, #0
- add r0, #0x24
- ldrb r0, [r0]
- add r4, #0x24
- add sp, #8
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, pc}
-_0221A608:
- add r0, r4, #0
- add r0, #0x40
- bl MOD08_02217ECC
- cmp r0, #0
- bne _0221A622
- add r0, r4, #0
- add r0, #0x24
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x24
- strb r1, [r0]
-_0221A622:
- mov r2, #0x40
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x18]
- mov r1, #0
- bl FUN_02007558
- add sp, #8
- pop {r4, pc}
-_0221A632:
- ldr r0, [r4, #0x64]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD08_0221A644
-MOD08_0221A644: ; 0x0221A644
- push {r4, r5, r6, lr}
- mov r1, #0x68
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4, #0x64]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- strh r0, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- mov r6, #0xff
- add r1, r6, #0
- add r1, #9
- cmp r0, r1
- bgt _0221A690
- add r1, r6, #3
- cmp r0, r1
- blt _0221A6E6
- beq _0221A69A
- add r1, r6, #5
- cmp r0, r1
- beq _0221A6A4
- add r1, r6, #0
- add r1, #9
- cmp r0, r1
- beq _0221A6C0
- b _0221A6E6
-_0221A690:
- add r1, r6, #0
- add r1, #0x11
- cmp r0, r1
- beq _0221A6CA
- b _0221A6E6
-_0221A69A:
- add r0, r5, #0
- bl MOD08_02212458
- add r6, r0, #0
- b _0221A6EA
-_0221A6A4:
- add r0, r5, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _0221A6EA
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r6, r0, #0
- b _0221A6EA
-_0221A6C0:
- add r0, r5, #0
- bl MOD08_02212460
- add r6, r0, #0
- b _0221A6EA
-_0221A6CA:
- add r0, r5, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _0221A6EA
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r6, r0, #0
- b _0221A6EA
-_0221A6E6:
- bl ErrorHandling
-_0221A6EA:
- cmp r6, #0xff
- bne _0221A6F6
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
-_0221A6F6:
- add r1, r4, #0
- add r0, r5, #0
- add r1, #0x24
- bl MOD08_02227B70
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_022154D4
- add r1, r4, #0
- add r1, #0x14
- str r0, [r4, #0x18]
- bl MOD08_02227B2C
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02217C1C
- cmp r0, #0
- bgt _0221A728
- mov r0, #0xc
- ldrsh r1, [r4, r0]
- sub r0, #0xd
- mul r0, r1
- strh r0, [r4, #0xc]
-_0221A728:
- ldr r0, [r4, #0x64]
- ldr r1, _0221A734 ; =MOD08_0221A5BC
- add r2, r4, #0
- bl MOD08_02212400
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0221A734: .word MOD08_0221A5BC
-
- thumb_func_start MOD08_0221A738
-MOD08_0221A738: ; 0x0221A738
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- add r2, r0, #0
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- cmp r0, #0
- beq _0221A750
- cmp r0, #1
- beq _0221A792
- b _0221A7BC
-_0221A750:
- ldr r0, [r4, #0x14]
- cmp r0, #0
- bne _0221A760
- mov r0, #0xff
- add r4, #0x20
- add sp, #8
- strb r0, [r4]
- pop {r4, pc}
-_0221A760:
- mov r0, #0x12
- ldrsh r3, [r4, r0]
- mov r0, #0x10
- ldrsh r1, [r4, r0]
- mov r2, #0x64
- str r3, [sp]
- ldr r0, [r4, #8]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #4]
- ldrsh r2, [r4, r2]
- add r0, r4, #0
- add r0, #0x3c
- add r2, r1, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl MOD08_02217E80
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x20
- strb r1, [r0]
-_0221A792:
- add r0, r4, #0
- add r0, #0x3c
- bl MOD08_02217ECC
- cmp r0, #0
- bne _0221A7AC
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x20
- strb r1, [r0]
-_0221A7AC:
- mov r2, #0x3c
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x14]
- mov r1, #0
- bl FUN_02007558
- add sp, #8
- pop {r4, pc}
-_0221A7BC:
- ldr r0, [r4, #0x60]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #8
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221A7D0
-MOD08_0221A7D0: ; 0x0221A7D0
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x68
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4, #0x60]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- add r1, r4, #0
- add r1, #0x64
- strh r0, [r1]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- add r1, r4, #0
- add r7, r0, #0
- add r0, r5, #0
- add r1, #0x20
- bl MOD08_02227B70
- mov r6, #0xff
- add r0, r6, #0
- add r0, #9
- cmp r7, r0
- bgt _0221A82C
- add r0, r6, #3
- cmp r7, r0
- blt _0221A882
- beq _0221A836
- add r0, r6, #5
- cmp r7, r0
- beq _0221A840
- add r0, r6, #0
- add r0, #9
- cmp r7, r0
- beq _0221A85C
- b _0221A882
-_0221A82C:
- add r0, r6, #0
- add r0, #0x11
- cmp r7, r0
- beq _0221A866
- b _0221A882
-_0221A836:
- add r0, r5, #0
- bl MOD08_02212458
- add r6, r0, #0
- b _0221A886
-_0221A840:
- add r0, r5, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _0221A886
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r6, r0, #0
- b _0221A886
-_0221A85C:
- add r0, r5, #0
- bl MOD08_02212460
- add r6, r0, #0
- b _0221A886
-_0221A866:
- add r0, r5, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _0221A886
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r6, r0, #0
- b _0221A886
-_0221A882:
- bl ErrorHandling
-_0221A886:
- cmp r6, #0xff
- bne _0221A892
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_0221A892:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_022154D4
- add r1, r4, #0
- add r1, #0x10
- str r0, [r4, #0x14]
- bl MOD08_02227B2C
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02217C1C
- cmp r0, #0
- bgt _0221A8C0
- mov r0, #0x64
- ldrsh r1, [r4, r0]
- sub r0, #0x65
- add r2, r1, #0
- mul r2, r0
- add r0, r4, #0
- add r0, #0x64
- strh r2, [r0]
-_0221A8C0:
- add r0, r5, #0
- bl MOD08_02212004
- ldr r0, [r4, #0x60]
- ldr r1, _0221A8D8 ; =MOD08_0221A738
- add r2, r4, #0
- bl MOD08_02212400
- add r1, r4, #0
- bl MOD08_0221A738
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221A8D8: .word MOD08_0221A738
-
- thumb_func_start MOD08_0221A8DC
-MOD08_0221A8DC: ; 0x0221A8DC
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #3
- bls _0221A8EC
- b _0221AA6A
-_0221A8EC:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221A8F8: ; jump table
- .short _0221A900 - _0221A8F8 - 2 ; case 0
- .short _0221A962 - _0221A8F8 - 2 ; case 1
- .short _0221A9AC - _0221A8F8 - 2 ; case 2
- .short _0221A9FA - _0221A8F8 - 2 ; case 3
-_0221A900:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- cmp r0, #1
- bne _0221A958
- add r0, r4, #0
- add r0, #0x38
- bl MOD08_022183F0
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x16
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0xd
- bl FUN_02007558
- mov r2, #0x38
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_020079E0
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x28]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221A958:
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221A962:
- ldrb r0, [r4, #9]
- add r0, r0, #1
- strb r0, [r4, #9]
- ldrb r1, [r4, #9]
- ldrb r0, [r4, #0xa]
- cmp r1, r0
- bhi _0221A972
- b _0221AA78
-_0221A972:
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl MOD08_02212498
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl MOD08_02212498
- add r6, r0, #0
- ldr r0, [r4, #0xc]
- mov r1, #3
- bl MOD08_02212498
- str r0, [sp]
- add r0, r4, #0
- lsl r1, r5, #0x10
- lsl r3, r6, #0x10
- add r0, #0x14
- asr r1, r1, #0x10
- mov r2, #0x64
- asr r3, r3, #0x10
- bl MOD08_02218120
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221A9AC:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- cmp r0, #1
- bne _0221A9F0
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x16
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x28]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221A9F0:
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221A9FA:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- cmp r0, #1
- ldr r0, [r4, #0x10]
- bne _0221AA3E
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x16
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x28]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221AA3E:
- mov r1, #0xc
- add r2, r1, #0
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #0x10]
- add r2, #0xf3
- bl FUN_02007558
- mov r2, #2
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_02007558
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221AA6A:
- ldr r0, [r4, #0xc]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221AA78:
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-
- thumb_func_start MOD08_0221AA7C
-MOD08_0221AA7C: ; 0x0221AA7C
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x5c
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4, #8]
- strb r0, [r4]
- str r5, [r4, #0xc]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- mov r0, #0
- strb r0, [r4, #9]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- strb r0, [r4, #0xa]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #2]
- ldr r0, [r4, #0xc]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD08_0221552C
- str r0, [r4, #4]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [sp]
- add r0, r4, #0
- mov r1, #0x64
- lsl r3, r6, #0x10
- add r0, #0x14
- add r2, r1, #0
- asr r3, r3, #0x10
- bl MOD08_02218120
- mov r0, #0xa
- str r0, [sp]
- add r0, r4, #0
- mov r2, #0
- add r0, #0x38
- mov r1, #2
- add r3, r2, #0
- bl MOD08_022183C0
- ldr r0, [r4, #0xc]
- ldr r1, _0221AB14 ; =MOD08_0221A8DC
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- nop
-_0221AB14: .word MOD08_0221A8DC
-
- thumb_func_start MOD08_0221AB18
-MOD08_0221AB18: ; 0x0221AB18
- push {r3, r4, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #3
- bls _0221AB28
- b _0221ACA8
-_0221AB28:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221AB34: ; jump table
- .short _0221AB3C - _0221AB34 - 2 ; case 0
- .short _0221AB9E - _0221AB34 - 2 ; case 1
- .short _0221ABEA - _0221AB34 - 2 ; case 2
- .short _0221AC38 - _0221AB34 - 2 ; case 3
-_0221AB3C:
- add r0, r4, #0
- add r0, #0x20
- bl MOD08_02218224
- cmp r0, #1
- bne _0221AB94
- add r0, r4, #0
- add r0, #0x44
- bl MOD08_022183F0
- mov r2, #0x20
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x22
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #0xd
- bl FUN_02007558
- mov r2, #0x44
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #0
- bl FUN_020079E0
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x34]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #0xc
- pop {r3, r4, pc}
-_0221AB94:
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221AB9E:
- ldrb r0, [r4, #9]
- add r0, r0, #1
- strb r0, [r4, #9]
- ldrb r1, [r4, #9]
- ldrb r0, [r4, #0xa]
- cmp r1, r0
- bhi _0221ABAE
- b _0221ACB6
-_0221ABAE:
- ldr r3, [r4, #0x10]
- ldr r2, [r4, #0xc]
- lsl r0, r3, #0x18
- lsr r0, r0, #0x18
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- asr r1, r2, #0x10
- mov r0, #0x64
- str r0, [sp, #4]
- ldr r0, [r4, #0x14]
- lsl r2, r2, #0x18
- lsr r2, r2, #0x18
- asr r3, r3, #0x10
- str r0, [sp, #8]
- add r0, r4, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- add r0, #0x20
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_022181A8
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221ABEA:
- add r0, r4, #0
- add r0, #0x20
- bl MOD08_02218224
- cmp r0, #1
- bne _0221AC2E
- mov r2, #0x20
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x22
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x34]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #0xc
- pop {r3, r4, pc}
-_0221AC2E:
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221AC38:
- add r0, r4, #0
- add r0, #0x20
- bl MOD08_02218224
- cmp r0, #1
- ldr r0, [r4, #0x1c]
- bne _0221AC7C
- mov r2, #0x20
- ldrsh r2, [r4, r2]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x22
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x34]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #0xc
- pop {r3, r4, pc}
-_0221AC7C:
- mov r1, #0xc
- add r2, r1, #0
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #0x1c]
- add r2, #0xf3
- bl FUN_02007558
- mov r2, #2
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #1
- bl FUN_02007558
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221ACA8:
- ldr r0, [r4, #0x18]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221ACB6:
- add sp, #0xc
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221ACBC
-MOD08_0221ACBC: ; 0x0221ACBC
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x68
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4, #8]
- strb r0, [r4]
- str r5, [r4, #0x18]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0x18]
- bl MOD08_022154D4
- str r0, [r4, #0x1c]
- mov r0, #0
- strb r0, [r4, #9]
- add r0, r5, #0
- mov r1, #6
- bl MOD08_02212498
- strb r0, [r4, #0xa]
- ldr r0, [r4, #0x18]
- mov r1, #3
- bl MOD08_02212498
- str r0, [r4, #0xc]
- ldr r0, [r4, #0x18]
- mov r1, #4
- bl MOD08_02212498
- str r0, [r4, #0x10]
- ldr r0, [r4, #0x18]
- mov r1, #5
- bl MOD08_02212498
- str r0, [r4, #0x14]
- ldr r0, [r4, #0x18]
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- mov r2, #0
- add r3, r4, #2
- bl MOD08_02217B50
- ldr r0, [r4, #0x18]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0x18]
- bl MOD08_0221552C
- str r0, [r4, #4]
- mov r1, #2
- ldrsh r1, [r4, r1]
- add r0, r1, r0
- strh r0, [r4, #2]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- asr r0, r0, #0x10
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #0x10]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- lsl r0, r0, #0x10
- asr r7, r0, #0x10
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- asr r0, r0, #0x10
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #0xc]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- str r6, [sp]
- mov r1, #0x64
- str r1, [sp, #4]
- str r0, [sp, #8]
- add r0, r4, #0
- ldr r1, [sp, #0x10]
- ldr r3, [sp, #0xc]
- add r0, #0x20
- add r2, r7, #0
- bl MOD08_022181A8
- mov r0, #0xa
- str r0, [sp]
- add r0, r4, #0
- mov r2, #0
- add r0, #0x44
- mov r1, #2
- add r3, r2, #0
- bl MOD08_022183C0
- ldr r0, [r4, #0x18]
- ldr r1, _0221ADBC ; =MOD08_0221AB18
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_0221ADBC: .word MOD08_0221AB18
-
- thumb_func_start MOD08_0221ADC0
-MOD08_0221ADC0: ; 0x0221ADC0
- push {r3, r4, r5, lr}
- mov r2, #1
- lsl r2, r2, #0x1a
- add r5, r0, #0
- add r4, r1, #0
- ldr r1, [r2]
- ldr r0, _0221ADEC ; =0xFFFF1FFF
- and r0, r1
- str r0, [r2]
- ldr r0, [r4, #8]
- mov r1, #2
- bl MOD08_02214850
- ldr r0, [r4, #8]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
- nop
-_0221ADEC: .word 0xFFFF1FFF
-
- thumb_func_start MOD08_0221ADF0
-MOD08_0221ADF0: ; 0x0221ADF0
- push {r3, r4, r5, lr}
- add r5, r0, #0
- mov r1, #0x28
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- add r0, r5, #0
- add r1, r4, #4
- bl MOD08_02227B70
- ldr r0, [r4, #8]
- mov r1, #2
- bl MOD08_0221477C
- ldr r0, [r4, #8]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x24]
- mov r1, #2
- bl FUN_0200C90C
- ldr r0, [r4, #0x24]
- mov r1, #2
- bl FUN_0200C840
- ldr r1, _0221AE70 ; =0x3F99999A
- ldr r0, [r4, #0x24]
- add r2, r1, #0
- bl FUN_0200C884
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r2, [r0]
- ldr r1, _0221AE74 ; =0xFFFF1FFF
- and r2, r1
- lsr r1, r0, #0xb
- orr r1, r2
- str r1, [r0]
- add r0, #0x4a
- ldrh r2, [r0]
- mov r1, #0x3f
- bic r2, r1
- mov r1, #0x1b
- orr r1, r2
- strh r1, [r0]
- ldrh r2, [r0]
- ldr r1, _0221AE78 ; =0xFFFFC0FF
- and r2, r1
- mov r1, #7
- lsl r1, r1, #8
- orr r1, r2
- strh r1, [r0]
- ldr r0, [r4, #8]
- ldr r1, _0221AE7C ; =MOD08_0221ADC0
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- nop
-_0221AE70: .word 0x3F99999A
-_0221AE74: .word 0xFFFF1FFF
-_0221AE78: .word 0xFFFFC0FF
-_0221AE7C: .word MOD08_0221ADC0
-
- thumb_func_start MOD08_0221AE80
-MOD08_0221AE80: ; 0x0221AE80
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- add r2, r0, #0
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- cmp r0, #0
- beq _0221AE98
- cmp r0, #1
- beq _0221AED4
- b _0221AF0A
-_0221AE98:
- mov r0, #0x12
- ldrsh r3, [r4, r0]
- mov r0, #0x10
- ldrsh r1, [r4, r0]
- mov r0, #0x66
- ldrsh r0, [r4, r0]
- mov r2, #0x64
- add r0, r3, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- ldr r0, [r4, #8]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #4]
- ldrsh r2, [r4, r2]
- add r0, r4, #0
- add r0, #0x3c
- add r2, r1, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl MOD08_02217E80
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x20
- strb r1, [r0]
-_0221AED4:
- add r0, r4, #0
- add r0, #0x3c
- bl MOD08_02217ECC
- cmp r0, #0
- bne _0221AEEE
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x20
- strb r1, [r0]
-_0221AEEE:
- mov r2, #0x3c
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x14]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x3e
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_02007558
- add sp, #8
- pop {r4, pc}
-_0221AF0A:
- ldr r0, [r4, #0x60]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD08_0221AF1C
-MOD08_0221AF1C: ; 0x0221AF1C
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x68
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4, #0x60]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- add r1, r4, #0
- add r1, #0x64
- strh r0, [r1]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- add r1, r4, #0
- add r1, #0x66
- strh r0, [r1]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- add r1, r4, #0
- add r7, r0, #0
- add r0, r5, #0
- add r1, #0x20
- bl MOD08_02227B70
- mov r6, #0xff
- add r0, r6, #0
- add r0, #9
- cmp r7, r0
- bgt _0221AF86
- add r0, r6, #3
- cmp r7, r0
- blt _0221AFDC
- beq _0221AF90
- add r0, r6, #5
- cmp r7, r0
- beq _0221AF9A
- add r0, r6, #0
- add r0, #9
- cmp r7, r0
- beq _0221AFB6
- b _0221AFDC
-_0221AF86:
- add r0, r6, #0
- add r0, #0x11
- cmp r7, r0
- beq _0221AFC0
- b _0221AFDC
-_0221AF90:
- add r0, r5, #0
- bl MOD08_02212458
- add r6, r0, #0
- b _0221AFE0
-_0221AF9A:
- add r0, r5, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _0221AFE0
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r6, r0, #0
- b _0221AFE0
-_0221AFB6:
- add r0, r5, #0
- bl MOD08_02212460
- add r6, r0, #0
- b _0221AFE0
-_0221AFC0:
- add r0, r5, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _0221AFE0
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r6, r0, #0
- b _0221AFE0
-_0221AFDC:
- bl ErrorHandling
-_0221AFE0:
- cmp r6, #0xff
- bne _0221AFEC
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_0221AFEC:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_022154D4
- str r0, [r4, #0x14]
- cmp r0, #0
- bne _0221B002
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_0221B002:
- add r1, r4, #0
- add r1, #0x10
- bl MOD08_02227B2C
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02217C1C
- cmp r0, #0
- bgt _0221B036
- mov r0, #0x64
- ldrsh r1, [r4, r0]
- sub r0, #0x65
- add r2, r1, #0
- mul r2, r0
- add r0, r4, #0
- add r0, #0x64
- strh r2, [r0]
- mov r0, #0x66
- ldrsh r1, [r4, r0]
- sub r0, #0x67
- add r2, r1, #0
- mul r2, r0
- add r0, r4, #0
- add r0, #0x66
- strh r2, [r0]
-_0221B036:
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _0221B050
- mov r0, #0x66
- ldrsh r1, [r4, r0]
- sub r0, #0x67
- add r2, r1, #0
- mul r2, r0
- add r0, r4, #0
- add r0, #0x66
- strh r2, [r0]
-_0221B050:
- ldr r0, [r4, #0x60]
- ldr r1, _0221B064 ; =MOD08_0221AE80
- add r2, r4, #0
- bl MOD08_02212400
- add r1, r4, #0
- bl MOD08_0221AE80
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221B064: .word MOD08_0221AE80
-
- thumb_func_start MOD08_0221B068
-MOD08_0221B068: ; 0x0221B068
- push {r3, r4, r5, lr}
- add r4, r1, #0
- mov r1, #0x20
- mov r2, #0x22
- add r5, r0, #0
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r3, [r4, #0x24]
- add r0, #0x30
- bl MOD08_02217E58
- cmp r0, #0
- bne _0221B0AC
- mov r2, #0x20
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x24]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x22
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x24]
- mov r1, #1
- sub r2, #8
- bl FUN_02007558
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221B0AC:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221B0B0
-MOD08_0221B0B0: ; 0x0221B0B0
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- mov r1, #0x54
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- add r2, r4, #0
- add r1, r0, #0
- add r0, r5, #0
- add r2, #0x1c
- add r3, sp, #0
- bl MOD08_02227BAC
- mov r0, #0x22
- ldrsh r0, [r4, r0]
- mov r1, #1
- add r0, #8
- strh r0, [r4, #0x22]
- add r0, r5, #0
- bl MOD08_02212498
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- add r2, r0, #0
- add r0, r4, #0
- add r0, #0x30
- add r1, r6, #0
- bl MOD08_02218654
- ldr r1, [r4, #0x3c]
- add r2, r4, #0
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- str r0, [r4, #0x3c]
- ldr r1, [r4, #0x44]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- str r0, [r4, #0x44]
- ldr r0, [r4, #4]
- ldr r1, _0221B124 ; =MOD08_0221B068
- bl MOD08_02212400
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-_0221B124: .word MOD08_0221B068
-
- thumb_func_start MOD08_0221B128
-MOD08_0221B128: ; 0x0221B128
- push {r4, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- bne _0221B160
- add r0, r4, #0
- add r0, #0x30
- bl MOD08_02217ECC
- cmp r0, #0
- bne _0221B146
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221B146:
- mov r2, #0x30
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x24]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x32
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x24]
- mov r1, #1
- bl FUN_02007558
- pop {r4, pc}
-_0221B160:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
-
- thumb_func_start MOD08_0221B170
-MOD08_0221B170: ; 0x0221B170
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- mov r1, #0x5c
- add r6, r0, #0
- bl MOD08_02228064
- add r5, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- bl MOD08_02227B70
- add r0, r6, #0
- mov r1, #0
- bl MOD08_02212498
- add r4, r0, #0
- add r0, r6, #0
- mov r1, #1
- bl MOD08_02212498
- add r7, r0, #0
- cmp r4, #8
- bgt _0221B1AE
- cmp r4, #2
- blt _0221B1EC
- beq _0221B1B4
- cmp r4, #4
- beq _0221B1BE
- cmp r4, #8
- beq _0221B1D0
- b _0221B1EC
-_0221B1AE:
- cmp r4, #0x10
- beq _0221B1DA
- b _0221B1EC
-_0221B1B4:
- add r0, r6, #0
- bl MOD08_02212458
- str r0, [sp, #8]
- b _0221B1F0
-_0221B1BE:
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022274C0
- str r0, [sp, #8]
- b _0221B1F0
-_0221B1D0:
- add r0, r6, #0
- bl MOD08_02212460
- str r0, [sp, #8]
- b _0221B1F0
-_0221B1DA:
- add r0, r6, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022274C0
- str r0, [sp, #8]
- b _0221B1F0
-_0221B1EC:
- bl ErrorHandling
-_0221B1F0:
- add r2, r5, #0
- ldr r1, [sp, #8]
- add r0, r6, #0
- add r2, #0x54
- bl MOD08_022275C0
- add r2, r5, #0
- add r0, r6, #0
- add r1, r4, #0
- add r2, #0x1c
- add r3, sp, #0xc
- bl MOD08_02227BAC
- add r0, r5, #0
- mov r1, #0
- add r0, #0x58
- strh r1, [r0]
- add r0, r5, #0
- add r0, #0x5a
- strh r1, [r0]
- ldr r0, [r5, #4]
- ldr r1, [sp, #8]
- bl MOD08_02227470
- cmp r0, #3
- bne _0221B22A
- mov r1, #0x4f
- mvn r1, r1
- b _0221B22E
-_0221B22A:
- mov r1, #0x15
- lsl r1, r1, #4
-_0221B22E:
- add r0, r5, #0
- add r0, #0x58
- strh r1, [r0]
- mov r0, #0x22
- ldrsh r3, [r5, r0]
- lsl r0, r7, #0x10
- lsr r0, r0, #0x10
- str r3, [sp]
- str r0, [sp, #4]
- mov r1, #0x20
- mov r2, #0x58
- add r0, r5, #0
- ldrsh r1, [r5, r1]
- ldrsh r2, [r5, r2]
- add r0, #0x30
- bl MOD08_02217E80
- ldr r0, [r5, #4]
- ldr r1, _0221B260 ; =MOD08_0221B128
- add r2, r5, #0
- bl MOD08_02212400
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221B260: .word MOD08_0221B128
-
- thumb_func_start MOD08_0221B264
-MOD08_0221B264: ; 0x0221B264
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- mov r1, #0x5c
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [sp, #0xc]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- add r7, r0, #0
- cmp r6, #8
- bgt _0221B2AC
- cmp r6, #2
- blt _0221B2EA
- beq _0221B2B2
- cmp r6, #4
- beq _0221B2BC
- cmp r6, #8
- beq _0221B2CE
- b _0221B2EA
-_0221B2AC:
- cmp r6, #0x10
- beq _0221B2D8
- b _0221B2EA
-_0221B2B2:
- add r0, r5, #0
- bl MOD08_02212458
- str r0, [sp, #8]
- b _0221B2EE
-_0221B2BC:
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- str r0, [sp, #8]
- b _0221B2EE
-_0221B2CE:
- add r0, r5, #0
- bl MOD08_02212460
- str r0, [sp, #8]
- b _0221B2EE
-_0221B2D8:
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- str r0, [sp, #8]
- b _0221B2EE
-_0221B2EA:
- bl ErrorHandling
-_0221B2EE:
- add r2, r4, #0
- ldr r1, [sp, #8]
- add r0, r5, #0
- add r2, #0x54
- bl MOD08_022275C0
- add r2, r4, #0
- add r0, r5, #0
- add r1, r6, #0
- add r2, #0x1c
- add r3, sp, #0x10
- bl MOD08_02227BAC
- add r0, r4, #0
- mov r1, #0
- add r0, #0x58
- strh r1, [r0]
- add r0, r4, #0
- add r0, #0x5a
- strh r1, [r0]
- ldr r0, [r4, #4]
- ldr r1, [sp, #8]
- bl MOD08_02227470
- cmp r0, #3
- bne _0221B328
- mov r1, #0x4f
- mvn r1, r1
- b _0221B32C
-_0221B328:
- mov r1, #0x15
- lsl r1, r1, #4
-_0221B32C:
- add r0, r4, #0
- add r0, #0x58
- strh r1, [r0]
- ldr r0, [sp, #0xc]
- cmp r0, #0
- bne _0221B356
- mov r0, #0x22
- ldrsh r3, [r4, r0]
- lsl r0, r7, #0x10
- lsr r0, r0, #0x10
- str r3, [sp]
- str r0, [sp, #4]
- mov r1, #0x20
- mov r2, #0x58
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- add r0, #0x30
- bl MOD08_02217E80
- b _0221B37A
-_0221B356:
- ldr r1, [sp, #8]
- add r0, r5, #0
- mov r2, #0
- bl MOD08_02217B98
- add r2, r0, #0
- mov r0, #0x22
- ldrsh r3, [r4, r0]
- lsl r0, r7, #0x10
- lsr r0, r0, #0x10
- str r3, [sp]
- str r0, [sp, #4]
- mov r1, #0x58
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- add r0, #0x30
- bl MOD08_02217E80
-_0221B37A:
- ldr r0, [r4, #4]
- ldr r1, _0221B388 ; =MOD08_0221B128
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0221B388: .word MOD08_0221B128
-
- thumb_func_start MOD08_0221B38C
-MOD08_0221B38C: ; 0x0221B38C
- push {r3, r4, r5, r6, lr}
- sub sp, #0x1c
- mov r1, #0
- add r5, r0, #0
- bl MOD08_02212498
- add r4, r0, #0
- cmp r4, #8
- bgt _0221B3AE
- cmp r4, #2
- blt _0221B3EC
- beq _0221B3B4
- cmp r4, #4
- beq _0221B3BE
- cmp r4, #8
- beq _0221B3D0
- b _0221B3EC
-_0221B3AE:
- cmp r4, #0x10
- beq _0221B3DA
- b _0221B3EC
-_0221B3B4:
- add r0, r5, #0
- bl MOD08_02212458
- add r6, r0, #0
- b _0221B3F0
-_0221B3BE:
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r6, r0, #0
- b _0221B3F0
-_0221B3D0:
- add r0, r5, #0
- bl MOD08_02212460
- add r6, r0, #0
- b _0221B3F0
-_0221B3DA:
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r6, r0, #0
- b _0221B3F0
-_0221B3EC:
- bl ErrorHandling
-_0221B3F0:
- add r0, r5, #0
- add r1, r6, #0
- add r2, sp, #0
- bl MOD08_022275C0
- add r0, r5, #0
- add r1, r4, #0
- add r2, sp, #8
- add r3, sp, #4
- bl MOD08_02227BAC
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_0221552C
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- mov r1, #0
- add r2, sp, #0
- ldrsh r2, [r2, r1]
- ldr r0, [sp, #0x10]
- bl FUN_02007558
- add r3, sp, #0
- mov r2, #2
- ldrsh r2, [r3, r2]
- ldr r0, [sp, #0x10]
- mov r1, #1
- add r2, r2, r4
- bl FUN_02007558
- add sp, #0x1c
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221B434
-MOD08_0221B434: ; 0x0221B434
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0x30]
- bl MOD08_02218AF8
- cmp r0, #0
- bne _0221B458
- ldr r0, [r4, #0x30]
- bl MOD08_02218B08
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221B458:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221B45C
-MOD08_0221B45C: ; 0x0221B45C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x30
- mov r1, #0x34
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [sp, #0x1c]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- str r0, [sp, #0x20]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- str r0, [sp, #0x24]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- add r2, r4, #0
- str r0, [sp, #0x28]
- add r0, r5, #0
- add r1, r7, #0
- add r2, #0x1c
- add r3, sp, #0x2c
- bl MOD08_02227F88
- ldr r0, [r4, #0x28]
- ldr r0, [r0]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- add r7, r0, #0
- add r0, r5, #0
- bl MOD08_02212014
- add r1, r0, #0
- mov r0, #0x10
- str r0, [sp]
- lsl r0, r6, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #4]
- ldr r0, [sp, #0x1c]
- lsl r3, r7, #0x14
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #8]
- ldr r0, [sp, #0x20]
- mov r2, #2
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x24]
- lsr r3, r3, #0x10
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x28]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x14]
- ldr r0, _0221B520 ; =0x0000044C
- str r0, [sp, #0x18]
- ldr r0, [r4, #0x18]
- bl MOD08_02218B20
- str r0, [r4, #0x30]
- ldr r0, [r4, #4]
- ldr r1, _0221B524 ; =MOD08_0221B434
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x30
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221B520: .word 0x0000044C
-_0221B524: .word MOD08_0221B434
-
- thumb_func_start MOD08_0221B528
-MOD08_0221B528: ; 0x0221B528
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- bne _0221B59C
- ldr r0, [r4, #0x4c]
- add r1, r0, #1
- str r1, [r4, #0x4c]
- ldr r0, [r4, #0x44]
- cmp r1, r0
- blt _0221B5B0
- mov r1, #0
- str r1, [r4, #0x4c]
- ldr r0, [r4, #0x48]
- cmp r0, #0
- ldr r0, [r4, #0x54]
- bne _0221B560
- cmp r0, #0
- bge _0221B552
- str r1, [r4, #0x54]
-_0221B552:
- ldr r0, [r4, #0x54]
- cmp r0, #0
- bne _0221B574
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221B574
-_0221B560:
- cmp r0, #0x50
- ble _0221B568
- mov r0, #0x50
- str r0, [r4, #0x54]
-_0221B568:
- ldr r0, [r4, #0x54]
- cmp r0, #0x50
- bne _0221B574
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221B574:
- ldr r0, [r4, #0x24]
- ldr r2, [r4, #0x54]
- mov r1, #0x12
- bl FUN_02007558
- ldr r0, [r4, #0x24]
- ldr r2, [r4, #0x50]
- mov r1, #1
- bl FUN_02007558
- mov r0, #0x42
- ldrsh r1, [r4, r0]
- ldr r2, [r4, #0x50]
- sub r1, r2, r1
- str r1, [r4, #0x50]
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #0x54]
- add r0, r1, r0
- str r0, [r4, #0x54]
- pop {r3, r4, r5, pc}
-_0221B59C:
- ldr r0, [r4, #0x24]
- bl MOD08_02218E34
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221B5B0:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221B5B4
-MOD08_0221B5B4: ; 0x0221B5B4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- mov r1, #0x58
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- add r6, r0, #0
- add r2, r4, #0
- add r0, r5, #0
- add r1, r6, #0
- add r2, #0x1c
- add r3, sp, #4
- bl MOD08_02227BAC
- cmp r6, #8
- bgt _0221B5F6
- cmp r6, #2
- blt _0221B634
- beq _0221B5FC
- cmp r6, #4
- beq _0221B606
- cmp r6, #8
- beq _0221B618
- b _0221B634
-_0221B5F6:
- cmp r6, #0x10
- beq _0221B622
- b _0221B634
-_0221B5FC:
- add r0, r5, #0
- bl MOD08_02212458
- add r7, r0, #0
- b _0221B638
-_0221B606:
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r7, r0, #0
- b _0221B638
-_0221B618:
- add r0, r5, #0
- bl MOD08_02212460
- add r7, r0, #0
- b _0221B638
-_0221B622:
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r7, r0, #0
- b _0221B638
-_0221B634:
- bl ErrorHandling
-_0221B638:
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- str r0, [r4, #0x48]
- cmp r0, #0
- ldr r0, [r4, #0x24]
- bne _0221B68C
- mov r1, #1
- bl FUN_0200782C
- str r0, [r4, #0x50]
- ldr r0, [r4, #0x24]
- mov r1, #0x12
- bl FUN_0200782C
- mov r1, #0x50
- sub r0, r1, r0
- str r0, [r4, #0x54]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- add r1, r4, #0
- add r1, #0x40
- strh r0, [r1]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- add r1, r4, #0
- add r1, #0x42
- strh r0, [r1]
- mov r0, #0x42
- ldrsh r1, [r4, r0]
- sub r0, #0x43
- add r2, r1, #0
- mul r2, r0
- add r0, r4, #0
- add r0, #0x42
- strh r2, [r0]
- b _0221B6BA
-_0221B68C:
- mov r1, #1
- bl FUN_0200782C
- str r0, [r4, #0x50]
- ldr r0, [r4, #0x24]
- mov r1, #0x12
- bl FUN_0200782C
- str r0, [r4, #0x54]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- add r1, r4, #0
- add r1, #0x40
- strh r0, [r1]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- add r1, r4, #0
- add r1, #0x42
- strh r0, [r1]
-_0221B6BA:
- mov r0, #0
- str r0, [r4, #0x30]
- str r0, [r4, #0x34]
- mov r0, #0x50
- str r0, [r4, #0x38]
- add r0, r5, #0
- add r1, r7, #0
- bl MOD08_0221552C
- mov r1, #0x50
- sub r0, r1, r0
- str r0, [r4, #0x3c]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- str r0, [r4, #0x44]
- mov r0, #0
- str r0, [r4, #0x4c]
- ldr r0, [r4, #0x3c]
- str r0, [sp]
- ldr r0, [r4, #0x24]
- ldr r1, [r4, #0x30]
- ldr r2, [r4, #0x34]
- ldr r3, [r4, #0x38]
- bl FUN_02007E40
- ldr r0, [r4, #4]
- ldr r1, _0221B700 ; =MOD08_0221B528
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221B700: .word MOD08_0221B528
-
- thumb_func_start MOD08_0221B704
-MOD08_0221B704: ; 0x0221B704
- push {r3, r4, r5, lr}
- add r5, r0, #0
- mov r4, #0
- cmp r1, #8
- bgt _0221B71E
- cmp r1, #2
- blt _0221B754
- beq _0221B724
- cmp r1, #4
- beq _0221B72C
- cmp r1, #8
- beq _0221B73C
- b _0221B754
-_0221B71E:
- cmp r1, #0x10
- beq _0221B744
- b _0221B754
-_0221B724:
- bl MOD08_02212458
- add r4, r0, #0
- b _0221B758
-_0221B72C:
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r4, r0, #0
- b _0221B758
-_0221B73C:
- bl MOD08_02212460
- add r4, r0, #0
- b _0221B758
-_0221B744:
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r4, r0, #0
- b _0221B758
-_0221B754:
- bl ErrorHandling
-_0221B758:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_0221B75C
-MOD08_0221B75C: ; 0x0221B75C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221B76E
- cmp r0, #1
- beq _0221B7B4
- pop {r3, r4, r5, pc}
-_0221B76E:
- ldr r0, [r4, #0x24]
- add r1, r0, #1
- str r1, [r4, #0x24]
- ldr r0, [r4, #0x20]
- cmp r1, r0
- blt _0221B7E6
- mov r0, #0
- str r0, [r4, #0x24]
- mov r0, #0x1c
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #0x44]
- add r2, r1, r0
- str r2, [r4, #0x44]
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_02007558
- mov r0, #0x1c
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #0x3c]
- sub r1, r1, r0
- str r1, [r4, #0x3c]
- ldr r0, [r4, #0x40]
- cmp r1, r0
- ble _0221B7A8
- str r0, [r4, #0x3c]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221B7A8:
- ldr r0, [r4, #0x30]
- ldr r2, [r4, #0x3c]
- mov r1, #0x12
- bl FUN_02007558
- pop {r3, r4, r5, pc}
-_0221B7B4:
- ldr r0, [r4, #0x30]
- mov r1, #0xe
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #0x30]
- ldr r2, [r4, #0x48]
- mov r1, #1
- bl FUN_02007558
- ldr r0, [r4, #0x30]
- ldr r2, [r4, #0x40]
- mov r1, #0x12
- bl FUN_02007558
- ldr r0, [r4, #0x30]
- bl MOD08_02218E34
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221B7E6:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_0221B7E8
-MOD08_0221B7E8: ; 0x0221B7E8
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221B7FA
- cmp r0, #1
- beq _0221B83E
- pop {r3, r4, r5, pc}
-_0221B7FA:
- ldr r0, [r4, #0x24]
- add r1, r0, #1
- str r1, [r4, #0x24]
- ldr r0, [r4, #0x20]
- cmp r1, r0
- blt _0221B870
- mov r0, #0
- str r0, [r4, #0x24]
- mov r0, #0x1c
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #0x44]
- add r2, r1, r0
- str r2, [r4, #0x44]
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_02007558
- mov r0, #0x1c
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #0x3c]
- sub r0, r1, r0
- str r0, [r4, #0x3c]
- bpl _0221B832
- mov r0, #0
- str r0, [r4, #0x3c]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221B832:
- ldr r0, [r4, #0x30]
- ldr r2, [r4, #0x3c]
- mov r1, #0x12
- bl FUN_02007558
- pop {r3, r4, r5, pc}
-_0221B83E:
- ldr r0, [r4, #0x30]
- mov r1, #0xe
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #0x30]
- ldr r2, [r4, #0x48]
- mov r1, #1
- bl FUN_02007558
- ldr r0, [r4, #0x30]
- ldr r2, [r4, #0x40]
- mov r1, #0x12
- bl FUN_02007558
- ldr r0, [r4, #0x30]
- bl MOD08_02218E34
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221B870:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221B874
-MOD08_0221B874: ; 0x0221B874
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221B886
- cmp r0, #1
- beq _0221B8C8
- pop {r3, r4, r5, pc}
-_0221B886:
- ldr r0, [r4, #0x24]
- add r1, r0, #1
- str r1, [r4, #0x24]
- ldr r0, [r4, #0x20]
- cmp r1, r0
- blt _0221B8E6
- mov r0, #0
- str r0, [r4, #0x24]
- mov r1, #0x1c
- ldrsh r2, [r4, r1]
- ldr r3, [r4, #0x3c]
- sub r2, r3, r2
- str r2, [r4, #0x3c]
- ldrsh r1, [r4, r1]
- ldr r2, [r4, #0x40]
- add r1, r2, r1
- str r1, [r4, #0x40]
- ldr r1, [r4, #0x3c]
- cmp r1, #0
- bge _0221B8B6
- str r0, [r4, #0x3c]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221B8B6:
- ldr r0, [r4, #0x40]
- mov r1, #0
- str r0, [sp]
- ldr r0, [r4, #0x30]
- ldr r2, [r4, #0x3c]
- mov r3, #0x50
- bl FUN_02007E40
- pop {r3, r4, r5, pc}
-_0221B8C8:
- ldr r0, [r4, #0x30]
- mov r1, #0xe
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #0x30]
- bl MOD08_02218E34
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221B8E6:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_0221B8E8
-MOD08_0221B8E8: ; 0x0221B8E8
- push {r4, r5, r6, lr}
- sub sp, #8
- mov r1, #0x50
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- strh r0, [r4, #0x1c]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- str r0, [r4, #0x20]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- add r6, r0, #0
- add r2, r4, #0
- add r0, r5, #0
- add r1, r6, #0
- add r2, #0x28
- add r3, sp, #4
- bl MOD08_02227BAC
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_0221B704
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- cmp r0, #0
- beq _0221B96A
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_0221552C
- mov r3, #0x50
- sub r0, r3, r0
- str r0, [r4, #0x3c]
- mov r1, #0
- str r1, [r4, #0x40]
- str r1, [sp]
- ldr r0, [r4, #0x30]
- ldr r2, [r4, #0x3c]
- bl FUN_02007E40
- ldr r0, [r4, #4]
- ldr r1, _0221B9DC ; =MOD08_0221B874
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #8
- pop {r4, r5, r6, pc}
-_0221B96A:
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_0200782C
- str r0, [r4, #0x44]
- str r0, [r4, #0x48]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_0221552C
- mov r3, #0x50
- sub r0, r3, r0
- str r0, [r4, #0x3c]
- str r0, [r4, #0x40]
- mov r0, #0x1c
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _0221B9AA
- ldr r0, [r4, #0x3c]
- mov r1, #0
- str r0, [sp]
- ldr r0, [r4, #0x30]
- add r2, r1, #0
- bl FUN_02007E40
- ldr r0, [r4, #4]
- ldr r1, _0221B9E0 ; =MOD08_0221B7E8
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #8
- pop {r4, r5, r6, pc}
-_0221B9AA:
- mov r0, #0
- str r0, [r4, #0x3c]
- ldr r1, [r4, #0x44]
- ldr r0, [r4, #0x40]
- add r2, r1, r0
- str r2, [r4, #0x44]
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_02007558
- ldr r0, [r4, #0x3c]
- mov r1, #0
- str r0, [sp]
- ldr r0, [r4, #0x30]
- add r2, r1, #0
- mov r3, #0x50
- bl FUN_02007E40
- ldr r0, [r4, #4]
- ldr r1, _0221B9E4 ; =MOD08_0221B75C
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #8
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0221B9DC: .word MOD08_0221B874
-_0221B9E0: .word MOD08_0221B7E8
-_0221B9E4: .word MOD08_0221B75C
-
- thumb_func_start MOD08_0221B9E8
-MOD08_0221B9E8: ; 0x0221B9E8
- push {r3, r4, lr}
- sub sp, #4
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221B9FC
- cmp r0, #1
- beq _0221BA1C
- b _0221BAAC
-_0221B9FC:
- ldr r0, [r4, #0x10]
- str r0, [sp]
- ldr r1, [r4, #4]
- ldr r2, [r4, #8]
- add r0, r4, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r3, [r4, #0xc]
- add r0, #0xd4
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_022183C0
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221BA1C:
- add r0, r4, #0
- add r0, #0xd4
- bl MOD08_022183F0
- cmp r0, #0
- bne _0221BA70
- ldrb r1, [r4, #1]
- ldr r0, [r4, #0x18]
- cmp r1, r0
- ldrb r0, [r4]
- blt _0221BA36
- add r0, r0, #1
- b _0221BA38
-_0221BA36:
- sub r0, r0, #1
-_0221BA38:
- strb r0, [r4]
- ldr r0, [r4, #0x20]
- cmp r0, #0
- beq _0221BA50
- ldr r1, [r4, #0x1c]
- mov r2, #0
- lsl r1, r1, #0x18
- ldr r0, [r4, #0x28]
- lsr r1, r1, #0x18
- add r3, r2, #0
- bl FUN_020179E0
-_0221BA50:
- ldr r0, [r4, #0x24]
- cmp r0, #0
- beq _0221BA66
- ldr r1, [r4, #0x1c]
- ldr r0, [r4, #0x28]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- mov r2, #3
- mov r3, #0
- bl FUN_020179E0
-_0221BA66:
- ldrb r0, [r4, #1]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4, #1]
- pop {r3, r4, pc}
-_0221BA70:
- mov r3, #0xd4
- ldrsh r0, [r4, r3]
- cmp r0, #0
- beq _0221BA8C
- mov r0, #1
- str r0, [r4, #0x20]
- ldr r1, [r4, #0x1c]
- ldrsh r3, [r4, r3]
- lsl r1, r1, #0x18
- ldr r0, [r4, #0x28]
- lsr r1, r1, #0x18
- mov r2, #0
- bl FUN_020179E0
-_0221BA8C:
- mov r3, #0xd6
- ldrsh r0, [r4, r3]
- cmp r0, #0
- beq _0221BABA
- mov r0, #1
- str r0, [r4, #0x24]
- ldr r1, [r4, #0x1c]
- ldrsh r3, [r4, r3]
- lsl r1, r1, #0x18
- ldr r0, [r4, #0x28]
- lsr r1, r1, #0x18
- mov r2, #3
- bl FUN_020179E0
- add sp, #4
- pop {r3, r4, pc}
-_0221BAAC:
- ldr r0, [r4, #0x2c]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221BABA:
- add sp, #4
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221BAC0
-MOD08_0221BAC0: ; 0x0221BAC0
- push {r3, r4, r5, lr}
- mov r1, #0xf8
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4]
- strb r0, [r4, #1]
- str r5, [r4, #0x2c]
- add r0, r5, #0
- bl MOD08_02212504
- str r0, [r4, #0x30]
- ldr r0, [r4, #0x2c]
- bl MOD08_02212490
- str r0, [r4, #0x28]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r4, #4]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- str r0, [r4, #8]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [r4, #0xc]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- str r0, [r4, #0x10]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- str r0, [r4, #0x18]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- cmp r0, #0
- bne _0221BB26
- mov r0, #3
- b _0221BB28
-_0221BB26:
- mov r0, #2
-_0221BB28:
- str r0, [r4, #0x1c]
- ldr r0, [r4, #0x2c]
- ldr r1, _0221BB38 ; =MOD08_0221B9E8
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- nop
-_0221BB38: .word MOD08_0221B9E8
-
- thumb_func_start MOD08_0221BB3C
-MOD08_0221BB3C: ; 0x0221BB3C
- push {r4, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldr r0, [r4, #0x2c]
- ldr r3, [r4, #0x24]
- cmp r3, r0
- beq _0221BB50
- ldr r1, [r4, #0x28]
- cmp r1, r0
- bne _0221BB60
-_0221BB50:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
-_0221BB60:
- mov r1, #0x20
- ldrsh r2, [r4, r1]
- cmp r2, #0
- bge _0221BB82
- add r2, r3, r2
- cmp r2, #0
- ble _0221BB7A
- str r2, [r4, #0x24]
- ldrsh r0, [r4, r1]
- ldr r2, [r4, #0x28]
- add r0, r2, r0
- str r0, [r4, #0x28]
- b _0221BB9A
-_0221BB7A:
- str r0, [r4, #0x24]
- ldr r0, [r4, #0x2c]
- str r0, [r4, #0x28]
- b _0221BB9A
-_0221BB82:
- add r2, r3, r2
- cmp r2, #0xf
- bge _0221BB94
- str r2, [r4, #0x24]
- ldrsh r0, [r4, r1]
- ldr r2, [r4, #0x28]
- add r0, r2, r0
- str r0, [r4, #0x28]
- b _0221BB9A
-_0221BB94:
- str r0, [r4, #0x24]
- ldr r0, [r4, #0x2c]
- str r0, [r4, #0x28]
-_0221BB9A:
- ldr r0, [r4, #0x1c]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x28]
- ldr r1, [r4, #0x24]
- lsl r0, r0, #4
- orr r1, r0
- ldr r0, _0221BBB4 ; =0x0400004D
- strb r1, [r0]
- ldr r0, [r4, #0xc]
- bl FUN_0200BC1C
- pop {r4, pc}
- .align 2, 0
-_0221BBB4: .word 0x0400004D
-
- thumb_func_start MOD08_0221BBB8
-MOD08_0221BBB8: ; 0x0221BBB8
- push {r3, r4, r5, lr}
- mov r1, #0x30
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- ldr r0, [r4, #4]
- mov r1, #1
- bl MOD08_02212498
- strh r0, [r4, #0x20]
- ldr r0, [r4, #4]
- mov r1, #2
- bl MOD08_02212498
- str r0, [r4, #0x24]
- ldr r0, [r4, #4]
- mov r1, #3
- bl MOD08_02212498
- str r0, [r4, #0x28]
- ldr r0, [r4, #4]
- mov r1, #0
- bl MOD08_02212498
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022124D8
- mov r1, #1
- str r0, [r4, #0x1c]
- bl FUN_0200C644
- mov r0, #0x20
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bge _0221BC0E
- mov r0, #0
- b _0221BC10
-_0221BC0E:
- mov r0, #0xf
-_0221BC10:
- str r0, [r4, #0x2c]
- ldr r0, [r4, #0x1c]
- mov r1, #1
- bl FUN_0200C8F8
- ldr r0, [r4, #4]
- ldr r1, _0221BC2C ; =MOD08_0221BB3C
- add r2, r4, #0
- bl MOD08_02212400
- add r1, r4, #0
- bl MOD08_0221BB3C
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221BC2C: .word MOD08_0221BB3C
-
- thumb_func_start MOD08_0221BC30
-MOD08_0221BC30: ; 0x0221BC30
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r4]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- strh r0, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- strh r0, [r4, #0xe]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- strh r0, [r4, #4]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- strh r0, [r4, #6]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- str r0, [r4, #8]
- add r0, r5, #0
- mov r1, #6
- bl MOD08_02212498
- str r0, [r4, #0x10]
- add r0, r5, #0
- mov r1, #8
- bl MOD08_02212498
- str r0, [r4, #0x30]
- add r0, r5, #0
- mov r1, #7
- bl MOD08_02212498
- ldr r2, _0221BCFC ; =0xFFFF0000
- mov r1, #0
- and r2, r0
- lsl r0, r0, #0x10
- str r1, [r4, #0x1c]
- lsr r2, r2, #0x10
- str r2, [r4, #0x20]
- lsr r0, r0, #0x10
- str r0, [r4, #0x24]
- ldr r0, [r4, #0x20]
- cmp r0, #0
- bne _0221BCA6
- str r1, [r4, #0x20]
-_0221BCA6:
- ldr r0, [r4, #0x24]
- cmp r0, #0
- bne _0221BCB0
- mov r0, #0xff
- str r0, [r4, #0x24]
-_0221BCB0:
- ldr r1, [r4]
- add r0, r5, #0
- bl MOD08_02212484
- str r0, [r4, #0x38]
- add r0, r5, #0
- bl MOD08_02212468
- str r0, [r4, #0x34]
- ldr r0, [r4, #0x10]
- cmp r0, #0
- bne _0221BCDA
- add r0, r5, #0
- bl MOD08_02212458
- str r0, [r4, #0x14]
- add r0, r5, #0
- bl MOD08_02212460
- str r0, [r4, #0x18]
- b _0221BCEE
-_0221BCDA:
- cmp r0, #1
- bne _0221BCEE
- add r0, r5, #0
- bl MOD08_02212460
- str r0, [r4, #0x14]
- add r0, r5, #0
- bl MOD08_02212458
- str r0, [r4, #0x18]
-_0221BCEE:
- ldr r0, [r4, #0x38]
- cmp r0, #0
- bne _0221BCF8
- bl ErrorHandling
-_0221BCF8:
- pop {r3, r4, r5, pc}
- nop
-_0221BCFC: .word 0xFFFF0000
-
- thumb_func_start MOD08_0221BD00
-MOD08_0221BD00: ; 0x0221BD00
- ldr r0, [r0, #8]
- mov r1, #0
- cmp r0, #0
- beq _0221BD12
-_0221BD08:
- ldrh r2, [r0, #0x26]
- ldrh r3, [r0, #0x24]
- ldr r0, [r0]
- cmp r0, #0
- bne _0221BD08
-_0221BD12:
- cmp r2, r3
- beq _0221BD18
- mov r1, #1
-_0221BD18:
- add r0, r1, #0
- bx lr
-
- thumb_func_start MOD08_0221BD1C
-MOD08_0221BD1C: ; 0x0221BD1C
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- ldr r0, [r5, #0x38]
- bl MOD08_0221BD00
- add r4, r0, #0
- mov r0, #4
- ldrsh r0, [r5, r0]
- ldr r1, [r5, #0x28]
- cmp r1, r0
- bge _0221BD3A
- add r0, r1, #1
- str r0, [r5, #0x28]
- pop {r4, r5, r6, pc}
-_0221BD3A:
- add r0, r5, #0
- add r0, #0xa8
- bl MOD08_02217ECC
- cmp r0, #0
- bne _0221BD62
- cmp r4, #0
- bne _0221BD62
- ldr r0, [r5, #0x34]
- ldr r1, [r5, #0x38]
- bl FUN_020133DC
- ldr r0, [r5, #0x40]
- add r1, r6, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl MOD08_02228094
- pop {r4, r5, r6, pc}
-_0221BD62:
- ldr r1, [r5, #0x1c]
- ldr r0, [r5, #0x20]
- cmp r0, r1
- bgt _0221BD70
- ldr r0, [r5, #0x24]
- cmp r0, r1
- bge _0221BD76
-_0221BD70:
- ldr r0, [r5, #0x24]
- cmp r0, #0xff
- bne _0221BDD4
-_0221BD76:
- mov r0, #0xa8
- ldrsh r2, [r5, r0]
- ldr r1, [r5, #0x38]
- mov r3, #0xac
- add r0, r2, #0
- ldr r2, [r1, #0x20]
- mul r0, r3
- ldr r2, [r2]
- ldr r2, [r2, #4]
- add r0, r0, r2
- str r0, [r1, #0x28]
- mov r0, #0xaa
- ldrsh r4, [r5, r0]
- ldr r2, [r5, #0x38]
- add r1, r4, #0
- mul r1, r3
- ldr r3, [r2, #0x20]
- ldr r3, [r3]
- ldr r3, [r3, #8]
- add r1, r1, r3
- str r1, [r2, #0x2c]
- ldr r1, [r5, #0x30]
- cmp r1, #0
- beq _0221BDD4
- mov r1, #6
- ldrsh r1, [r5, r1]
- add r0, #0xbe
- bl _s32_div_f
- ldr r1, [r5, #0x2c]
- add r0, r1, r0
- str r0, [r5, #0x2c]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0201B970
- mov r1, #0xaa
- ldrsh r2, [r5, r1]
- mov r1, #0xac
- mul r1, r2
- add r2, r1, r0
- ldr r1, [r5, #0x38]
- ldr r0, [r1, #0x20]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r2, r0
- str r0, [r1, #0x2c]
-_0221BDD4:
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221BDD8
-MOD08_0221BDD8: ; 0x0221BDD8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- mov r1, #0x41
- lsl r1, r1, #2
- add r6, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r1, r4, #0
- add r0, r6, #0
- add r1, #0x3c
- bl MOD08_02227B70
- add r0, r6, #0
- add r1, r4, #0
- bl MOD08_0221BC30
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_02217C1C
- add r5, r0, #0
- ldr r1, [r4, #0x14]
- add r0, r6, #0
- add r2, sp, #0x18
- bl MOD08_0222771C
- ldr r1, [r4, #0x18]
- add r0, r6, #0
- add r2, sp, #0xc
- bl MOD08_0222771C
- ldr r0, [sp, #0x18]
- mov r1, #0xac
- bl _s32_div_f
- add r6, r0, #0
- ldr r0, [sp, #0xc]
- mov r1, #0xac
- bl _s32_div_f
- add r7, r0, #0
- ldr r0, [sp, #0x1c]
- mov r1, #0xac
- bl _s32_div_f
- str r0, [sp, #8]
- ldr r0, [sp, #0x10]
- mov r1, #0xac
- bl _s32_div_f
- mov r1, #0xe
- ldrsh r1, [r4, r1]
- add r2, r1, #0
- mul r2, r5
- add r0, r0, r2
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- ldrh r0, [r4, #6]
- lsl r1, r6, #0x10
- mov r2, #0xc
- str r0, [sp, #4]
- ldrsh r2, [r4, r2]
- add r0, r4, #0
- add r0, #0xa8
- add r3, r2, #0
- mul r3, r5
- add r2, r7, r3
- ldr r3, [sp, #8]
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_02217E80
- cmp r5, #0
- ldr r2, _0221BEFC ; =0x00005C71
- ble _0221BE90
- ldr r1, _0221BF00 ; =0x00000E38
- add r0, r4, #0
- add r0, #0xf0
- mul r1, r5
- mul r2, r5
- mov r3, #0xa
- bl MOD08_02218008
- b _0221BEA0
-_0221BE90:
- ldr r1, _0221BF04 ; =0x00003FFF
- add r0, r4, #0
- add r0, #0xf0
- mul r1, r5
- mul r2, r5
- mov r3, #0xa
- bl MOD08_02218008
-_0221BEA0:
- ldr r0, [r4, #0x20]
- mov r5, #0
- cmp r0, #0
- ble _0221BEBA
- add r6, r4, #0
- add r6, #0xa8
-_0221BEAC:
- add r0, r6, #0
- bl MOD08_02217ECC
- ldr r0, [r4, #0x20]
- add r5, r5, #1
- cmp r5, r0
- blt _0221BEAC
-_0221BEBA:
- ldr r0, [r4, #0x24]
- cmp r0, #0xff
- beq _0221BEC4
- add r0, r0, #1
- str r0, [r4, #0x1c]
-_0221BEC4:
- mov r0, #0xa8
- ldrsh r3, [r4, r0]
- ldr r1, [r4, #0x38]
- mov r2, #0xac
- add r0, r3, #0
- ldr r3, [r1, #0x20]
- mul r0, r2
- ldr r3, [r3]
- ldr r3, [r3, #4]
- add r0, r0, r3
- str r0, [r1, #0x28]
- mov r1, #0xaa
- ldrsh r1, [r4, r1]
- ldr r0, [r4, #0x38]
- mul r2, r1
- ldr r1, [r0, #0x20]
- ldr r1, [r1]
- ldr r1, [r1, #8]
- add r1, r2, r1
- str r1, [r0, #0x2c]
- ldr r0, [r4, #0x40]
- ldr r1, _0221BF08 ; =MOD08_0221BD1C
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- nop
-_0221BEFC: .word 0x00005C71
-_0221BF00: .word 0x00000E38
-_0221BF04: .word 0x00003FFF
-_0221BF08: .word MOD08_0221BD1C
-
- thumb_func_start MOD08_0221BF0C
-MOD08_0221BF0C: ; 0x0221BF0C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- mov r1, #0x41
- lsl r1, r1, #2
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r1, r4, #0
- add r0, r5, #0
- add r1, #0x3c
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r4]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- str r0, [r4, #0x10]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- strh r0, [r4, #6]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- strh r0, [r4, #4]
- mov r0, #0
- str r0, [r4, #0x28]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- ldr r2, _0221C098 ; =0xFFFF0000
- mov r1, #0
- and r2, r0
- lsl r0, r0, #0x10
- str r1, [r4, #0x1c]
- lsr r2, r2, #0x10
- str r2, [r4, #0x20]
- lsr r0, r0, #0x10
- str r0, [r4, #0x24]
- ldr r0, [r4, #0x20]
- cmp r0, #0
- bne _0221BF7E
- str r1, [r4, #0x20]
-_0221BF7E:
- ldr r0, [r4, #0x24]
- cmp r0, #0
- bne _0221BF88
- mov r0, #0xff
- str r0, [r4, #0x24]
-_0221BF88:
- ldr r1, [r4]
- add r0, r5, #0
- bl MOD08_02212484
- str r0, [r4, #0x38]
- add r0, r5, #0
- bl MOD08_02212468
- str r0, [r4, #0x34]
- ldr r0, [r4, #0x10]
- cmp r0, #0
- bne _0221BFB0
- add r0, r5, #0
- bl MOD08_02212458
- str r0, [r4, #0x14]
- add r0, r5, #0
- bl MOD08_02212458
- b _0221BFBE
-_0221BFB0:
- add r0, r5, #0
- bl MOD08_02212460
- str r0, [r4, #0x14]
- add r0, r5, #0
- bl MOD08_02212460
-_0221BFBE:
- str r0, [r4, #0x18]
- ldr r0, [r4, #0x38]
- cmp r0, #0
- bne _0221BFCA
- bl ErrorHandling
-_0221BFCA:
- ldr r1, [r4, #0x14]
- add r0, r5, #0
- add r2, sp, #0x14
- bl MOD08_0222771C
- ldr r1, [r4, #0x18]
- add r0, r5, #0
- add r2, sp, #8
- bl MOD08_0222771C
- cmp r6, #0
- bne _0221BFEE
- add r0, sp, #0x14
- bl MOD08_0222795C
- ldr r0, [sp, #8]
- str r0, [sp, #0x14]
- b _0221BFF8
-_0221BFEE:
- add r0, sp, #8
- bl MOD08_0222795C
- ldr r0, [sp, #0x14]
- str r0, [sp, #8]
-_0221BFF8:
- ldr r0, [sp, #0x14]
- mov r1, #0xac
- bl _s32_div_f
- add r5, r0, #0
- ldr r0, [sp, #8]
- mov r1, #0xac
- bl _s32_div_f
- add r6, r0, #0
- ldr r0, [sp, #0x18]
- mov r1, #0xac
- bl _s32_div_f
- add r7, r0, #0
- ldr r0, [sp, #0xc]
- mov r1, #0xac
- bl _s32_div_f
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- ldrh r0, [r4, #6]
- lsl r1, r5, #0x10
- lsl r2, r6, #0x10
- str r0, [sp, #4]
- add r0, r4, #0
- lsl r3, r7, #0x10
- add r0, #0xa8
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_02217E80
- ldr r0, [r4, #0x20]
- mov r5, #0
- cmp r0, #0
- ble _0221C056
- add r6, r4, #0
- add r6, #0xa8
-_0221C048:
- add r0, r6, #0
- bl MOD08_02217ECC
- ldr r0, [r4, #0x20]
- add r5, r5, #1
- cmp r5, r0
- blt _0221C048
-_0221C056:
- ldr r0, [r4, #0x24]
- cmp r0, #0xff
- beq _0221C060
- add r0, r0, #1
- str r0, [r4, #0x1c]
-_0221C060:
- mov r0, #0xa8
- ldrsh r3, [r4, r0]
- ldr r1, [r4, #0x38]
- mov r2, #0xac
- add r0, r3, #0
- ldr r3, [r1, #0x20]
- mul r0, r2
- ldr r3, [r3]
- ldr r3, [r3, #4]
- add r0, r0, r3
- str r0, [r1, #0x28]
- mov r1, #0xaa
- ldrsh r1, [r4, r1]
- ldr r0, [r4, #0x38]
- mul r2, r1
- ldr r1, [r0, #0x20]
- ldr r1, [r1]
- ldr r1, [r1, #8]
- add r1, r2, r1
- str r1, [r0, #0x2c]
- ldr r0, [r4, #0x40]
- ldr r1, _0221C09C ; =MOD08_0221BD1C
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221C098: .word 0xFFFF0000
-_0221C09C: .word MOD08_0221BD1C
-
- thumb_func_start MOD08_0221C0A0
-MOD08_0221C0A0: ; 0x0221C0A0
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- ldr r0, [r5, #0x38]
- bl MOD08_0221BD00
- add r4, r0, #0
- add r0, r5, #0
- add r1, r5, #0
- add r0, #0xa8
- add r1, #0xcc
- bl MOD08_02217F9C
- cmp r0, #0
- bne _0221C0DA
- cmp r4, #0
- bne _0221C0DA
- ldr r0, [r5, #0x34]
- ldr r1, [r5, #0x38]
- bl FUN_020133DC
- ldr r0, [r5, #0x40]
- add r1, r6, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl MOD08_02228094
- pop {r4, r5, r6, pc}
-_0221C0DA:
- mov r1, #0xa8
- ldrsh r1, [r5, r1]
- ldr r0, [r5, #0x38]
- mov r2, #0xac
- add r3, r1, #0
- ldr r1, [r0, #0x20]
- mul r3, r2
- ldr r1, [r1]
- ldr r1, [r1, #4]
- add r1, r3, r1
- str r1, [r0, #0x28]
- mov r1, #0xaa
- ldrsh r1, [r5, r1]
- ldr r0, [r5, #0x38]
- mul r2, r1
- ldr r1, [r0, #0x20]
- ldr r1, [r1]
- ldr r1, [r1, #8]
- add r1, r2, r1
- str r1, [r0, #0x2c]
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_0221C104
-MOD08_0221C104: ; 0x0221C104
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- mov r1, #0x41
- lsl r1, r1, #2
- add r6, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r1, r4, #0
- add r0, r6, #0
- add r1, #0x3c
- bl MOD08_02227B70
- add r0, r6, #0
- add r1, r4, #0
- bl MOD08_0221BC30
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_02217C1C
- add r5, r0, #0
- ldr r1, [r4, #0x14]
- add r0, r6, #0
- add r2, sp, #0x20
- bl MOD08_0222771C
- ldr r1, [r4, #0x18]
- add r0, r6, #0
- add r2, sp, #0x14
- bl MOD08_0222771C
- ldr r0, [sp, #0x20]
- mov r1, #0xac
- bl _s32_div_f
- add r6, r0, #0
- ldr r0, [sp, #0x14]
- mov r1, #0xac
- bl _s32_div_f
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x24]
- mov r1, #0xac
- bl _s32_div_f
- add r7, r0, #0
- ldr r0, [sp, #0x18]
- mov r1, #0xac
- bl _s32_div_f
- lsl r1, r7, #0x10
- asr r1, r1, #0x10
- str r1, [sp]
- mov r1, #0xe
- ldrsh r1, [r4, r1]
- mov r3, #0xc
- add r2, r1, #0
- mul r2, r5
- add r0, r0, r2
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #4]
- ldrh r0, [r4, #6]
- lsl r2, r6, #0x10
- add r1, r4, #0
- str r0, [sp, #8]
- ldr r0, [r4, #8]
- add r1, #0xcc
- lsl r0, r0, #0xc
- neg r0, r0
- str r0, [sp, #0xc]
- ldrsh r6, [r4, r3]
- add r0, r4, #0
- add r0, #0xa8
- add r3, r6, #0
- ldr r6, [sp, #0x10]
- mul r3, r5
- add r3, r6, r3
- lsl r3, r3, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_02217F50
- cmp r5, #0
- ldr r2, _0221C23C ; =0x00005C71
- ble _0221C1CA
- ldr r1, _0221C240 ; =0x00000E38
- add r0, r4, #0
- add r0, #0xf0
- mul r1, r5
- mul r2, r5
- mov r3, #0xa
- bl MOD08_02218008
- b _0221C1DA
-_0221C1CA:
- ldr r1, _0221C244 ; =0x00003FFF
- add r0, r4, #0
- add r0, #0xf0
- mul r1, r5
- mul r2, r5
- mov r3, #0xa
- bl MOD08_02218008
-_0221C1DA:
- ldr r0, [r4, #0x20]
- mov r5, #0
- cmp r0, #0
- ble _0221C1FA
- add r6, r4, #0
- add r7, r4, #0
- add r6, #0xa8
- add r7, #0xcc
-_0221C1EA:
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_02217F9C
- ldr r0, [r4, #0x20]
- add r5, r5, #1
- cmp r5, r0
- blt _0221C1EA
-_0221C1FA:
- ldr r0, [r4, #0x24]
- cmp r0, #0xff
- beq _0221C204
- add r0, r0, #1
- str r0, [r4, #0x1c]
-_0221C204:
- mov r0, #0xa8
- ldrsh r3, [r4, r0]
- ldr r1, [r4, #0x38]
- mov r2, #0xac
- add r0, r3, #0
- ldr r3, [r1, #0x20]
- mul r0, r2
- ldr r3, [r3]
- ldr r3, [r3, #4]
- add r0, r0, r3
- str r0, [r1, #0x28]
- mov r1, #0xaa
- ldrsh r1, [r4, r1]
- ldr r0, [r4, #0x38]
- mul r2, r1
- ldr r1, [r0, #0x20]
- ldr r1, [r1]
- ldr r1, [r1, #8]
- add r1, r2, r1
- str r1, [r0, #0x2c]
- ldr r0, [r4, #0x40]
- ldr r1, _0221C248 ; =MOD08_0221C0A0
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- nop
-_0221C23C: .word 0x00005C71
-_0221C240: .word 0x00000E38
-_0221C244: .word 0x00003FFF
-_0221C248: .word MOD08_0221C0A0
-
- thumb_func_start MOD08_0221C24C
-MOD08_0221C24C: ; 0x0221C24C
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- ldr r0, [r5, #0x38]
- bl MOD08_0221BD00
- add r4, r0, #0
- add r0, r5, #0
- add r0, #0x58
- bl MOD08_02217D98
- cmp r0, #0
- bne _0221C282
- cmp r4, #0
- bne _0221C282
- ldr r0, [r5, #0x34]
- ldr r1, [r5, #0x38]
- bl FUN_020133DC
- ldr r0, [r5, #0x40]
- add r1, r6, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
-_0221C282:
- add r0, r5, #0
- add r0, #0x8c
- ldr r2, [r0]
- mov r0, #0x5a
- ldrsh r0, [r5, r0]
- mov r3, #0xac
- add r1, r0, #0
- mul r1, r3
- add r1, r2, r1
- add r2, r5, #0
- add r2, #0x88
- ldr r4, [r2]
- mov r2, #0x58
- ldrsh r2, [r5, r2]
- ldr r0, [r5, #0x38]
- mul r3, r2
- ldr r2, [r0, #0x20]
- add r3, r4, r3
- ldr r2, [r2]
- ldr r2, [r2, #4]
- add r2, r3, r2
- str r2, [r0, #0x28]
- ldr r2, [r5, #0x38]
- ldr r0, [r2, #0x20]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r2, #0x2c]
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_0221C2BC
-MOD08_0221C2BC: ; 0x0221C2BC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- mov r1, #0x94
- add r4, r0, #0
- bl MOD08_02228064
- add r5, r0, #0
- add r1, r5, #0
- add r0, r4, #0
- add r1, #0x3c
- bl MOD08_02227B70
- add r0, r4, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r5]
- add r0, r4, #0
- mov r1, #1
- bl MOD08_02212498
- str r0, [r5, #4]
- add r0, r4, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [r5, #0xc]
- add r0, r4, #0
- mov r1, #3
- bl MOD08_02212498
- str r0, [r5, #8]
- add r0, r4, #0
- mov r1, #4
- bl MOD08_02212498
- str r0, [r5, #0x10]
- add r0, r4, #0
- mov r1, #5
- bl MOD08_02212498
- str r0, [r5, #0x14]
- add r0, r4, #0
- mov r1, #6
- bl MOD08_02212498
- str r0, [r5, #0x18]
- add r0, r4, #0
- mov r1, #7
- bl MOD08_02212498
- str r0, [r5, #0x1c]
- add r0, r4, #0
- mov r1, #8
- bl MOD08_02212498
- str r0, [r5, #0x20]
- cmp r0, #0
- bne _0221C33A
- add r0, r4, #0
- bl MOD08_02212458
- b _0221C340
-_0221C33A:
- add r0, r4, #0
- bl MOD08_02212460
-_0221C340:
- str r0, [r5, #0x24]
- add r2, r5, #0
- ldr r1, [r5, #0x24]
- add r0, r4, #0
- add r2, #0x88
- bl MOD08_0222771C
- ldr r1, [r5]
- add r0, r4, #0
- bl MOD08_02212484
- str r0, [r5, #0x38]
- add r0, r4, #0
- mov r1, #9
- bl MOD08_02212498
- add r1, r0, #0
- add r0, r4, #0
- bl MOD08_02212478
- str r0, [r5, #0x34]
- ldr r1, [r5, #4]
- ldr r0, _0221C420 ; =0x0000FFFF
- mul r0, r1
- mov r1, #0x5a
- lsl r1, r1, #2
- bl _s32_div_f
- add r4, r0, #0
- ldr r1, [r5, #0xc]
- ldr r0, _0221C420 ; =0x0000FFFF
- mul r0, r1
- mov r1, #0x5a
- lsl r1, r1, #2
- bl _s32_div_f
- add r6, r0, #0
- ldr r1, [r5, #8]
- ldr r0, _0221C420 ; =0x0000FFFF
- mul r0, r1
- mov r1, #0x5a
- lsl r1, r1, #2
- bl _s32_div_f
- add r7, r0, #0
- ldr r1, [r5, #0x10]
- ldr r0, _0221C420 ; =0x0000FFFF
- mul r0, r1
- mov r1, #0x5a
- lsl r1, r1, #2
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp]
- ldr r0, [r5, #0x14]
- lsl r1, r4, #0x10
- lsl r0, r0, #0xc
- str r0, [sp, #4]
- ldr r0, [r5, #0x18]
- lsl r2, r6, #0x10
- lsl r0, r0, #0xc
- str r0, [sp, #8]
- ldr r0, [r5, #0x1c]
- lsl r3, r7, #0x10
- str r0, [sp, #0xc]
- add r0, r5, #0
- add r0, #0x58
- lsr r1, r1, #0x10
- lsr r2, r2, #0x10
- lsr r3, r3, #0x10
- bl MOD08_02217D14
- add r0, r5, #0
- add r0, #0x58
- bl MOD08_02217D98
- add r0, r5, #0
- add r0, #0x8c
- ldr r2, [r0]
- mov r0, #0x5a
- ldrsh r0, [r5, r0]
- mov r3, #0x58
- mov r4, #0xac
- add r1, r0, #0
- add r0, r5, #0
- mul r1, r4
- ldrsh r3, [r5, r3]
- add r0, #0x88
- add r2, r2, r1
- ldr r1, [r5, #0x38]
- ldr r0, [r0]
- mul r4, r3
- add r3, r0, r4
- ldr r0, [r1, #0x20]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r3, r0
- str r0, [r1, #0x28]
- ldr r1, [r5, #0x38]
- ldr r0, [r1, #0x20]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r2, r0
- str r0, [r1, #0x2c]
- ldr r0, [r5, #0x40]
- ldr r1, _0221C424 ; =MOD08_0221C24C
- add r2, r5, #0
- bl MOD08_02212400
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221C420: .word 0x0000FFFF
-_0221C424: .word MOD08_0221C24C
-
- thumb_func_start MOD08_0221C428
-MOD08_0221C428: ; 0x0221C428
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0x1c]
- bl FUN_0200C608
- cmp r0, #0
- ldr r0, [r4, #0x1c]
- bne _0221C44E
- bl FUN_0200C3DC
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
-_0221C44E:
- bl FUN_0200C5A8
- ldr r0, [r4, #0x10]
- bl FUN_0200BC1C
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221C45C
-MOD08_0221C45C: ; 0x0221C45C
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x20
- add r5, r0, #0
- add r4, r3, #0
- bl MOD08_02228064
- add r7, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #0
- str r4, [r7, #0x1c]
- bl MOD08_02212498
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- lsl r0, r0, #0x10
- asr r2, r0, #0x10
- add r0, r4, #0
- add r1, r6, #0
- bl FUN_0200C82C
- ldr r0, [r7, #4]
- ldr r1, _0221C4A0 ; =MOD08_0221C428
- add r2, r7, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221C4A0: .word MOD08_0221C428
-
- thumb_func_start MOD08_0221C4A4
-MOD08_0221C4A4: ; 0x0221C4A4
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r4, r0, #0
- ldrb r0, [r5]
- cmp r0, #0
- beq _0221C4B6
- cmp r0, #1
- beq _0221C534
- b _0221C59E
-_0221C4B6:
- ldr r1, [r5, #0x34]
- ldr r0, _0221C5C4 ; =0x0222C4D4
- lsl r2, r1, #1
- ldrsh r4, [r0, r2]
- add r0, r1, #1
- str r0, [r5, #0x34]
- cmp r4, #0xff
- beq _0221C506
- cmp r4, #0
- bne _0221C4FA
- ldr r0, [r5, #0x1c]
- bl FUN_0200C6A4
- add r6, r0, #0
- ldr r0, [r5, #4]
- bl MOD08_02215574
- cmp r6, r0
- ldr r0, [r5, #4]
- bne _0221C4EE
- mov r1, #2
- bl MOD08_02215600
- add r1, r0, #0
- ldr r0, [r5, #0x1c]
- bl FUN_0200C6B0
- b _0221C4FA
-_0221C4EE:
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r5, #0x1c]
- bl FUN_0200C6B0
-_0221C4FA:
- ldr r0, [r5, #0x1c]
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200C82C
- b _0221C5B4
-_0221C506:
- ldr r0, [r5, #0x1c]
- mov r1, #2
- bl FUN_0200C840
- add r0, r5, #0
- ldr r2, _0221C5C8 ; =0x00001FFF
- add r0, #0x20
- mov r1, #0
- mov r3, #8
- bl MOD08_02218008
- mov r1, #7
- ldr r0, [r5, #0x1c]
- mvn r1, r1
- mov r2, #0x10
- bl FUN_0200C8DC
- mov r0, #0
- str r0, [r5, #0x34]
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
- b _0221C5B4
-_0221C534:
- add r0, r5, #0
- add r0, #0x20
- bl MOD08_02218058
- cmp r0, #1
- bne _0221C54E
- ldr r1, [r5, #0x20]
- ldr r0, [r5, #0x1c]
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl FUN_0200C898
- b _0221C5B4
-_0221C54E:
- ldr r0, [r5, #0x34]
- cmp r0, #3
- ble _0221C55C
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
- b _0221C5B4
-_0221C55C:
- add r0, r0, #1
- str r0, [r5, #0x34]
- cmp r0, #1
- beq _0221C56E
- cmp r0, #2
- beq _0221C57E
- cmp r0, #3
- beq _0221C58E
- b _0221C5B4
-_0221C56E:
- add r0, r5, #0
- ldr r1, _0221C5C8 ; =0x00001FFF
- ldr r2, _0221C5CC ; =0xFFFFE001
- add r0, #0x20
- mov r3, #8
- bl MOD08_02218008
- b _0221C5B4
-_0221C57E:
- ldr r1, _0221C5CC ; =0xFFFFE001
- add r0, r5, #0
- add r0, #0x20
- lsr r2, r1, #0x13
- mov r3, #8
- bl MOD08_02218008
- b _0221C5B4
-_0221C58E:
- add r0, r5, #0
- ldr r1, _0221C5C8 ; =0x00001FFF
- add r0, #0x20
- mov r2, #0
- mov r3, #8
- bl MOD08_02218008
- b _0221C5B4
-_0221C59E:
- ldr r0, [r5, #0x1c]
- bl FUN_0200C3DC
- ldr r0, [r5, #4]
- add r1, r4, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
-_0221C5B4:
- ldr r0, [r5, #0x1c]
- bl FUN_0200C5A8
- ldr r0, [r5, #0x10]
- bl FUN_0200BC1C
- pop {r4, r5, r6, pc}
- nop
-_0221C5C4: .word 0x0222C4D4
-_0221C5C8: .word 0x00001FFF
-_0221C5CC: .word 0xFFFFE001
-
- thumb_func_start MOD08_0221C5D0
-MOD08_0221C5D0: ; 0x0221C5D0
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x38
- add r5, r0, #0
- add r6, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- str r6, [r4, #0x1c]
- mov r0, #0
- str r0, [r4, #0x34]
- add r0, r5, #0
- bl MOD08_02212460
- add r7, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- mov r2, #0
- bl MOD08_02217B98
- add r6, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- mov r2, #1
- bl MOD08_02217B98
- add r2, r0, #0
- ldr r0, [r4, #0x1c]
- add r1, r6, #0
- bl FUN_0200C714
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227470
- cmp r0, #4
- ldr r0, [r4, #0x1c]
- bne _0221C630
- mov r1, #1
- bl FUN_0200C5C0
- b _0221C636
-_0221C630:
- mov r1, #0
- bl FUN_0200C5C0
-_0221C636:
- ldr r0, [r4, #4]
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r4, #0x1c]
- bl FUN_0200C6B0
- ldr r0, [r4, #0x1c]
- mov r1, #0
- mov r2, #0xc
- bl FUN_0200C82C
- ldr r0, [r4, #4]
- ldr r1, _0221C65C ; =MOD08_0221C4A4
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221C65C: .word MOD08_0221C4A4
-
- thumb_func_start MOD08_0221C660
-MOD08_0221C660: ; 0x0221C660
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0x1c]
- bl FUN_0200C608
- cmp r0, #0
- ldr r0, [r4, #0x1c]
- bne _0221C686
- bl FUN_0200C3DC
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
-_0221C686:
- bl FUN_0200C5A8
- ldr r0, [r4, #0x10]
- bl FUN_0200BC1C
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221C694
-MOD08_0221C694: ; 0x0221C694
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x38
- add r5, r0, #0
- add r6, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- add r0, r5, #0
- str r6, [r4, #0x1c]
- bl MOD08_02212460
- add r7, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- mov r2, #0
- bl MOD08_02217B98
- add r6, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- mov r2, #1
- bl MOD08_02217B98
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _0221C6DC
- mov r6, #0x48
- mov r2, #0x20
- mov r5, #0
- b _0221C6F2
-_0221C6DC:
- ldr r0, [r4, #4]
- add r1, r7, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _0221C6EE
- mov r2, #0x7e
- mov r5, #1
- b _0221C6F2
-_0221C6EE:
- mov r2, #0x20
- mov r5, #0
-_0221C6F2:
- ldr r0, [r4, #0x1c]
- add r1, r6, #0
- bl FUN_0200C714
- ldr r0, [r4, #0x1c]
- add r1, r5, #0
- bl FUN_0200C5C0
- ldr r0, [r4, #4]
- mov r1, #2
- bl MOD08_02215600
- add r1, r0, #0
- ldr r0, [r4, #0x1c]
- bl FUN_0200C6B0
- ldr r0, [r4, #4]
- ldr r1, _0221C720 ; =MOD08_0221C660
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221C720: .word MOD08_0221C660
-
- thumb_func_start MOD08_0221C724
-MOD08_0221C724: ; 0x0221C724
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #3
- bhi _0221C816
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221C73E: ; jump table
- .short _0221C746 - _0221C73E - 2 ; case 0
- .short _0221C76C - _0221C73E - 2 ; case 1
- .short _0221C784 - _0221C73E - 2 ; case 2
- .short _0221C7C0 - _0221C73E - 2 ; case 3
-_0221C746:
- mov r0, #0xa0
- str r0, [sp]
- mov r3, #0x70
- mov r0, #1
- str r3, [sp, #4]
- mov r2, #0x15
- str r2, [sp, #8]
- lsl r0, r0, #0x12
- str r0, [sp, #0xc]
- add r0, r4, #0
- add r0, #0x24
- add r1, #0x48
- sub r2, #0x33
- bl MOD08_02217F50
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221C82E
-_0221C76C:
- add r0, r4, #0
- ldr r2, [r4, #0x1c]
- add r0, #0x24
- add r1, #0x48
- bl MOD08_02217FE4
- cmp r0, #0
- bne _0221C82E
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221C82E
-_0221C784:
- ldr r0, [r4, #0x1c]
- bl FUN_0200C608
- cmp r0, #0
- bne _0221C82E
- ldr r0, [r4, #0x1c]
- mov r1, #1
- bl FUN_0200C90C
- add r0, r4, #0
- add r2, r4, #0
- mov r1, #0x10
- add r0, #0x20
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0x21
- strb r1, [r0]
- add r1, r4, #0
- add r1, #0x20
- add r2, #0x21
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4, #4]
- bl MOD08_02227994
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221C82E
-_0221C7C0:
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- cmp r0, #0
- beq _0221C7D8
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- sub r1, r0, #1
- add r0, r4, #0
- add r0, #0x20
- strb r1, [r0]
-_0221C7D8:
- add r0, r4, #0
- add r0, #0x21
- ldrb r0, [r0]
- cmp r0, #0x10
- bhs _0221C7F0
- add r0, r4, #0
- add r0, #0x21
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x21
- strb r1, [r0]
-_0221C7F0:
- add r0, r4, #0
- add r0, #0x20
- ldrb r1, [r0]
- add r0, r4, #0
- add r0, #0x21
- ldrb r0, [r0]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221C840 ; =0x04000052
- strh r1, [r0]
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- cmp r0, #0
- bne _0221C82E
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221C82E
-_0221C816:
- ldr r0, [r4, #0x1c]
- bl FUN_0200C3DC
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0x10
- pop {r3, r4, r5, pc}
-_0221C82E:
- ldr r0, [r4, #0x1c]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x10]
- bl FUN_0200BC1C
- add sp, #0x10
- pop {r3, r4, r5, pc}
- nop
-_0221C840: .word 0x04000052
-
- thumb_func_start MOD08_0221C844
-MOD08_0221C844: ; 0x0221C844
- push {r4, r5, r6, lr}
- mov r1, #0x6c
- add r6, r0, #0
- add r5, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r6, #0
- add r1, r4, #0
- bl MOD08_02227B70
- mov r1, #0x1d
- str r5, [r4, #0x1c]
- add r0, r5, #0
- mvn r1, r1
- mov r2, #0xa0
- bl FUN_0200C714
- ldr r0, [r4, #4]
- mov r1, #2
- bl MOD08_02215600
- add r1, r0, #0
- ldr r0, [r4, #0x1c]
- bl FUN_0200C6B0
- ldr r0, [r4, #4]
- ldr r1, _0221C884 ; =MOD08_0221C724
- add r2, r4, #0
- bl MOD08_02212400
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0221C884: .word MOD08_0221C724
-
- thumb_func_start MOD08_0221C888
-MOD08_0221C888: ; 0x0221C888
- push {r4, lr}
- mov r1, #0
- add r4, r0, #0
- bl MOD08_02212498
- cmp r0, #0
- beq _0221C89E
- add r0, r4, #0
- bl MOD08_02218BD4
- pop {r4, pc}
-_0221C89E:
- add r0, r4, #0
- bl MOD08_02218C04
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221C8A8
-MOD08_0221C8A8: ; 0x0221C8A8
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r4, r0, #0
- ldrb r0, [r4]
- cmp r0, #0x18
- bls _0221C8B6
- b _0221CAAA
-_0221C8B6:
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0221C8C2: ; jump table
- .short _0221C8F4 - _0221C8C2 - 2 ; case 0
- .short _0221CAAA - _0221C8C2 - 2 ; case 1
- .short _0221CAAA - _0221C8C2 - 2 ; case 2
- .short _0221CAAA - _0221C8C2 - 2 ; case 3
- .short _0221CAAA - _0221C8C2 - 2 ; case 4
- .short _0221C9A0 - _0221C8C2 - 2 ; case 5
- .short _0221C9A0 - _0221C8C2 - 2 ; case 6
- .short _0221C9CA - _0221C8C2 - 2 ; case 7
- .short _0221CAAA - _0221C8C2 - 2 ; case 8
- .short _0221CAAA - _0221C8C2 - 2 ; case 9
- .short _0221C9E4 - _0221C8C2 - 2 ; case 10
- .short _0221C9E4 - _0221C8C2 - 2 ; case 11
- .short _0221CA0E - _0221C8C2 - 2 ; case 12
- .short _0221CAAA - _0221C8C2 - 2 ; case 13
- .short _0221CAAA - _0221C8C2 - 2 ; case 14
- .short _0221CA26 - _0221C8C2 - 2 ; case 15
- .short _0221CA26 - _0221C8C2 - 2 ; case 16
- .short _0221CA50 - _0221C8C2 - 2 ; case 17
- .short _0221CAAA - _0221C8C2 - 2 ; case 18
- .short _0221CAAA - _0221C8C2 - 2 ; case 19
- .short _0221CAAA - _0221C8C2 - 2 ; case 20
- .short _0221CAAA - _0221C8C2 - 2 ; case 21
- .short _0221CA68 - _0221C8C2 - 2 ; case 22
- .short _0221CA68 - _0221C8C2 - 2 ; case 23
- .short _0221CA92 - _0221C8C2 - 2 ; case 24
-_0221C8F4:
- ldr r0, [r4, #0x34]
- ldr r1, _0221CAF0 ; =0xFFFF1FFF
- cmp r0, #0
- bne _0221C94E
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r2, [r0]
- add r5, r0, #0
- and r2, r1
- lsr r1, r0, #0xd
- orr r1, r2
- str r1, [r0]
- add r5, #0x48
- ldrh r3, [r5]
- mov r2, #0x3f
- mov r1, #0xf
- bic r3, r2
- orr r1, r3
- mov r3, #0x20
- orr r1, r3
- strh r1, [r5]
- add r5, r0, #0
- add r5, #0x4a
- ldrh r6, [r5]
- mov r1, #0x1f
- bic r6, r2
- orr r1, r6
- orr r1, r3
- strh r1, [r5]
- add r1, r0, #0
- mov r2, #0x80
- add r1, #0x40
- strh r2, [r1]
- ldr r1, _0221CAF4 ; =0x0000A0C0
- add r0, #0x44
- strh r1, [r0]
- bl rand_LC
- mov r1, #5
- bl _s32_div_f
- add r1, #0x23
- add sp, #4
- str r1, [r4, #0x3c]
- pop {r3, r4, r5, r6, pc}
-_0221C94E:
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r2, [r0]
- add r5, r0, #0
- and r2, r1
- lsr r1, r0, #0xd
- orr r1, r2
- str r1, [r0]
- add r5, #0x48
- ldrh r3, [r5]
- mov r2, #0x3f
- mov r1, #0xf
- bic r3, r2
- orr r1, r3
- mov r3, #0x20
- orr r1, r3
- strh r1, [r5]
- add r5, r0, #0
- add r5, #0x4a
- ldrh r6, [r5]
- mov r1, #0x1f
- bic r6, r2
- orr r1, r6
- orr r1, r3
- strh r1, [r5]
- add r1, r0, #0
- lsl r2, r3, #0xa
- add r1, #0x40
- strh r2, [r1]
- ldr r1, _0221CAF8 ; =0x000056C0
- add r0, #0x44
- strh r1, [r0]
- bl rand_LC
- mov r1, #5
- bl _s32_div_f
- add r1, #0x23
- add sp, #4
- str r1, [r4, #0x3c]
- pop {r3, r4, r5, r6, pc}
-_0221C9A0:
- bl rand_LC
- lsr r2, r0, #0x1f
- lsl r1, r0, #0x1f
- sub r1, r1, r2
- mov r0, #0x1f
- ror r1, r0
- add r0, r2, r1
- beq _0221C9D0
- ldr r0, [r4, #0x38]
- cmp r0, #0
- bne _0221C9D0
- add r0, r0, #1
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x1c]
- mov r1, #0
- mov r2, #4
- bl FUN_0200C82C
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221C9CA:
- ldr r0, [r4, #0x38]
- cmp r0, #1
- bne _0221C9D2
-_0221C9D0:
- b _0221CAEC
-_0221C9D2:
- add r0, r0, #1
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x1c]
- mov r1, #0
- mov r2, #4
- bl FUN_0200C82C
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221C9E4:
- bl rand_LC
- lsr r2, r0, #0x1f
- lsl r1, r0, #0x1f
- sub r1, r1, r2
- mov r0, #0x1f
- ror r1, r0
- add r0, r2, r1
- beq _0221CAEC
- ldr r0, [r4, #0x38]
- cmp r0, #1
- bne _0221CAEC
- add r0, r0, #1
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x1c]
- mov r1, #0
- mov r2, #4
- bl FUN_0200C82C
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221CA0E:
- ldr r0, [r4, #0x38]
- cmp r0, #2
- beq _0221CAEC
- add r0, r0, #1
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x1c]
- mov r1, #0
- mov r2, #4
- bl FUN_0200C82C
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221CA26:
- bl rand_LC
- lsr r2, r0, #0x1f
- lsl r1, r0, #0x1f
- sub r1, r1, r2
- mov r0, #0x1f
- ror r1, r0
- add r0, r2, r1
- beq _0221CAEC
- ldr r0, [r4, #0x38]
- cmp r0, #2
- bne _0221CAEC
- add r0, r0, #1
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x1c]
- mov r1, #0
- mov r2, #4
- bl FUN_0200C82C
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221CA50:
- ldr r0, [r4, #0x38]
- cmp r0, #3
- beq _0221CAEC
- add r0, r0, #1
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x1c]
- mov r1, #0
- mov r2, #4
- bl FUN_0200C82C
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221CA68:
- bl rand_LC
- lsr r2, r0, #0x1f
- lsl r1, r0, #0x1f
- sub r1, r1, r2
- mov r0, #0x1f
- ror r1, r0
- add r0, r2, r1
- beq _0221CAEC
- ldr r0, [r4, #0x38]
- cmp r0, #3
- bne _0221CAEC
- add r0, r0, #1
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x1c]
- mov r1, #0
- mov r2, #8
- bl FUN_0200C82C
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221CA92:
- ldr r0, [r4, #0x38]
- cmp r0, #4
- beq _0221CAEC
- add r0, r0, #1
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x1c]
- mov r1, #0
- mov r2, #8
- bl FUN_0200C82C
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221CAAA:
- ldr r1, [r4, #0x3c]
- cmp r0, r1
- ble _0221CAEC
- ldr r0, [r4, #0x38]
- cmp r0, #0x14
- ldr r0, [r4, #0x1c]
- bge _0221CAE6
- mov r1, #0
- mov r2, #4
- bl FUN_0200C82C
- add r1, sp, #0
- ldr r0, [r4, #0x1c]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- add r0, sp, #0
- mov r1, #0
- ldrsh r0, [r0, r1]
- cmp r0, #0x82
- ble _0221CADC
- ldr r0, [r4, #0x1c]
- bl FUN_0200C644
-_0221CADC:
- ldr r0, [r4, #0x38]
- add sp, #4
- add r0, r0, #1
- str r0, [r4, #0x38]
- pop {r3, r4, r5, r6, pc}
-_0221CAE6:
- mov r1, #0
- bl FUN_0200C644
-_0221CAEC:
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-_0221CAF0: .word 0xFFFF1FFF
-_0221CAF4: .word 0x0000A0C0
-_0221CAF8: .word 0x000056C0
-
- thumb_func_start MOD08_0221CAFC
-MOD08_0221CAFC: ; 0x0221CAFC
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0x30]
- cmp r0, #0
- beq _0221CB0E
- add r0, r4, #0
- bl MOD08_0221C8A8
-_0221CB0E:
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- ldrb r1, [r4]
- ldr r0, [r4, #0x24]
- cmp r1, r0
- blt _0221CB66
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r2, [r0]
- ldr r1, _0221CB74 ; =0xFFFF1FFF
- and r1, r2
- add r2, r0, #0
- str r1, [r0]
- add r2, #0x48
- ldrh r3, [r2]
- mov r1, #0x3f
- bic r3, r1
- strh r3, [r2]
- add r2, r0, #0
- add r2, #0x4a
- ldrh r3, [r2]
- bic r3, r1
- strh r3, [r2]
- add r2, r0, #0
- mov r1, #0
- add r2, #0x40
- strh r1, [r2]
- add r0, #0x44
- strh r1, [r0]
- ldr r0, [r4, #0x1c]
- bl FUN_0200C644
- ldr r0, [r4, #0xc]
- bl FUN_0200BC1C
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
-_0221CB66:
- ldr r0, [r4, #0x1c]
- bl FUN_0200C5A8
- ldr r0, [r4, #0xc]
- bl FUN_0200BC1C
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221CB74: .word 0xFFFF1FFF
-
- thumb_func_start MOD08_0221CB78
-MOD08_0221CB78: ; 0x0221CB78
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x40
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r4, #0x20]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- str r0, [r4, #0x24]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [r4, #0x28]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- str r0, [r4, #0x2c]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- str r0, [r4, #0x30]
- add r0, r5, #0
- mov r1, #6
- bl MOD08_02212498
- str r0, [r4, #0x34]
- ldr r0, [r4, #4]
- ldr r1, [r4, #0x20]
- bl MOD08_022124D8
- str r0, [r4, #0x1c]
- mov r0, #0
- str r0, [r4, #0x38]
- ldr r1, [r4, #0x28]
- cmp r1, #0xff
- beq _0221CBEA
- add r0, r5, #0
- bl MOD08_02215600
- add r1, r0, #0
- ldr r0, [r4, #0x1c]
- bl FUN_0200C6B0
-_0221CBEA:
- ldr r1, [r4, #0x2c]
- cmp r1, #0xff
- beq _0221CBF6
- ldr r0, [r4, #0x1c]
- bl FUN_0200C6C4
-_0221CBF6:
- add r0, r5, #0
- bl MOD08_0221553C
- cmp r0, #1
- beq _0221CC28
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- cmp r0, #2
- beq _0221CC18
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- cmp r0, #3
- bne _0221CC28
-_0221CC18:
- ldr r0, [r4, #0x1c]
- mov r1, #0
- bl FUN_0200C644
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_0221CC28:
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- add r7, r0, #0
- add r0, r5, #0
- bl MOD08_02212458
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212460
- str r0, [sp]
- ldr r0, [r4, #0x2c]
- cmp r0, #0xff
- beq _0221CC76
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02227468
- add r6, r0, #0
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD08_02227468
- cmp r7, #3
- bhi _0221CC76
- add r1, r7, r7
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0221CC6A: ; jump table
- .short _0221CC72 - _0221CC6A - 2 ; case 0
- .short _0221CCFC - _0221CC6A - 2 ; case 1
- .short _0221CCB8 - _0221CC6A - 2 ; case 2
- .short _0221CD40 - _0221CC6A - 2 ; case 3
-_0221CC72:
- cmp r6, #5
- bls _0221CC78
-_0221CC76:
- b _0221CD82
-_0221CC78:
- add r0, r6, r6
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221CC84: ; jump table
- .short _0221CD82 - _0221CC84 - 2 ; case 0
- .short _0221CD82 - _0221CC84 - 2 ; case 1
- .short _0221CC90 - _0221CC84 - 2 ; case 2
- .short _0221CC9A - _0221CC84 - 2 ; case 3
- .short _0221CCA4 - _0221CC84 - 2 ; case 4
- .short _0221CCAE - _0221CC84 - 2 ; case 5
-_0221CC90:
- ldr r0, [r4, #0x1c]
- mov r1, #0x14
- bl FUN_0200C6C4
- b _0221CD82
-_0221CC9A:
- ldr r0, [r4, #0x1c]
- mov r1, #0xa
- bl FUN_0200C6C4
- b _0221CD82
-_0221CCA4:
- ldr r0, [r4, #0x1c]
- mov r1, #0xa
- bl FUN_0200C6C4
- b _0221CD82
-_0221CCAE:
- ldr r0, [r4, #0x1c]
- mov r1, #0x14
- bl FUN_0200C6C4
- b _0221CD82
-_0221CCB8:
- cmp r6, #5
- bhi _0221CD82
- add r0, r6, r6
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221CCC8: ; jump table
- .short _0221CD82 - _0221CCC8 - 2 ; case 0
- .short _0221CD82 - _0221CCC8 - 2 ; case 1
- .short _0221CCD4 - _0221CCC8 - 2 ; case 2
- .short _0221CCDE - _0221CCC8 - 2 ; case 3
- .short _0221CCE8 - _0221CCC8 - 2 ; case 4
- .short _0221CCF2 - _0221CCC8 - 2 ; case 5
-_0221CCD4:
- ldr r0, [r4, #0x1c]
- mov r1, #0xa
- bl FUN_0200C6C4
- b _0221CD82
-_0221CCDE:
- ldr r0, [r4, #0x1c]
- mov r1, #0x14
- bl FUN_0200C6C4
- b _0221CD82
-_0221CCE8:
- ldr r0, [r4, #0x1c]
- mov r1, #0x14
- bl FUN_0200C6C4
- b _0221CD82
-_0221CCF2:
- ldr r0, [r4, #0x1c]
- mov r1, #0xa
- bl FUN_0200C6C4
- b _0221CD82
-_0221CCFC:
- cmp r0, #5
- bhi _0221CD82
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221CD0C: ; jump table
- .short _0221CD82 - _0221CD0C - 2 ; case 0
- .short _0221CD82 - _0221CD0C - 2 ; case 1
- .short _0221CD18 - _0221CD0C - 2 ; case 2
- .short _0221CD22 - _0221CD0C - 2 ; case 3
- .short _0221CD2C - _0221CD0C - 2 ; case 4
- .short _0221CD36 - _0221CD0C - 2 ; case 5
-_0221CD18:
- ldr r0, [r4, #0x1c]
- mov r1, #0x14
- bl FUN_0200C6C4
- b _0221CD82
-_0221CD22:
- ldr r0, [r4, #0x1c]
- mov r1, #0xa
- bl FUN_0200C6C4
- b _0221CD82
-_0221CD2C:
- ldr r0, [r4, #0x1c]
- mov r1, #0xa
- bl FUN_0200C6C4
- b _0221CD82
-_0221CD36:
- ldr r0, [r4, #0x1c]
- mov r1, #0x14
- bl FUN_0200C6C4
- b _0221CD82
-_0221CD40:
- cmp r0, #5
- bhi _0221CD82
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221CD50: ; jump table
- .short _0221CD82 - _0221CD50 - 2 ; case 0
- .short _0221CD82 - _0221CD50 - 2 ; case 1
- .short _0221CD5C - _0221CD50 - 2 ; case 2
- .short _0221CD66 - _0221CD50 - 2 ; case 3
- .short _0221CD70 - _0221CD50 - 2 ; case 4
- .short _0221CD7A - _0221CD50 - 2 ; case 5
-_0221CD5C:
- ldr r0, [r4, #0x1c]
- mov r1, #0xa
- bl FUN_0200C6C4
- b _0221CD82
-_0221CD66:
- ldr r0, [r4, #0x1c]
- mov r1, #0x14
- bl FUN_0200C6C4
- b _0221CD82
-_0221CD70:
- ldr r0, [r4, #0x1c]
- mov r1, #0x14
- bl FUN_0200C6C4
- b _0221CD82
-_0221CD7A:
- ldr r0, [r4, #0x1c]
- mov r1, #0xa
- bl FUN_0200C6C4
-_0221CD82:
- ldr r0, [r4, #4]
- ldr r1, _0221CD90 ; =MOD08_0221CAFC
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221CD90: .word MOD08_0221CAFC
-
- thumb_func_start MOD08_0221CD94
-MOD08_0221CD94: ; 0x0221CD94
- push {r4, r5, r6, lr}
- add r6, r1, #0
- add r2, r0, #0
- ldr r0, [r6, #0x2c]
- cmp r0, #0
- bne _0221CDB0
- ldr r0, [r6, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r6, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
-_0221CDB0:
- sub r0, r0, #1
- str r0, [r6, #0x2c]
- mov r4, #0
- add r5, r6, #0
-_0221CDB8:
- ldr r0, [r5, #0x1c]
- cmp r0, #0
- beq _0221CDC2
- bl FUN_0200C5A8
-_0221CDC2:
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #4
- blt _0221CDB8
- ldr r0, [r6, #0xc]
- bl FUN_0200BC1C
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221CDD4
-MOD08_0221CDD4: ; 0x0221CDD4
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x34
- add r4, r0, #0
- bl MOD08_02228064
- add r7, r0, #0
- add r0, r4, #0
- add r1, r7, #0
- bl MOD08_02227B70
- add r0, r4, #0
- mov r1, #0
- bl MOD08_02212498
- cmp r0, #0
- bne _0221CDF8
- mov r0, #3
- b _0221CE00
-_0221CDF8:
- add r0, r4, #0
- mov r1, #0
- bl MOD08_02212498
-_0221CE00:
- ldr r5, _0221CE38 ; =0x0222D5A0
- str r0, [r7, #0x2c]
- mov r6, #0
- add r4, r7, #0
-_0221CE08:
- ldr r0, [r7, #4]
- add r1, r6, #0
- bl MOD08_022124D8
- str r0, [r4, #0x1c]
- cmp r0, #0
- beq _0221CE1C
- ldr r1, [r5]
- bl FUN_0200C6C4
-_0221CE1C:
- add r6, r6, #1
- add r4, r4, #4
- add r5, r5, #4
- cmp r6, #4
- blt _0221CE08
- ldr r0, [r7, #4]
- ldr r1, _0221CE3C ; =MOD08_0221CD94
- add r2, r7, #0
- bl MOD08_02212400
- add r1, r7, #0
- bl MOD08_0221CD94
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221CE38: .word 0x0222D5A0
-_0221CE3C: .word MOD08_0221CD94
-
- thumb_func_start MOD08_0221CE40
-MOD08_0221CE40: ; 0x0221CE40
- push {r3, r4, r5, r6, lr}
- sub sp, #0x14
- add r5, r1, #0
- add r4, r0, #0
- ldrb r0, [r5, #8]
- cmp r0, #0
- beq _0221CE54
- cmp r0, #1
- beq _0221CE9A
- b _0221CEB2
-_0221CE54:
- mov r0, #0
- str r0, [r5]
- ldr r0, [r5, #0xc]
- mov r1, #2
- bl MOD08_022155C4
- add r4, r0, #0
- mov r0, #0
- add r1, r0, #0
- bl MOD08_02218998
- add r6, r0, #0
- ldr r0, [r5, #0xc]
- bl MOD08_02212014
- mov r1, #0xc8
- str r1, [sp]
- mov r3, #2
- str r4, [sp, #4]
- mov r1, #0
- str r1, [sp, #8]
- str r6, [sp, #0xc]
- str r0, [sp, #0x10]
- add r0, r1, #0
- mov r1, #0xa0
- mov r2, #0xb6
- lsl r3, r3, #0x10
- bl MOD08_022188DC
- str r0, [r5, #0x24]
- ldrb r0, [r5, #8]
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r5, #8]
- pop {r3, r4, r5, r6, pc}
-_0221CE9A:
- ldr r0, [r5]
- add r1, r0, #1
- str r1, [r5]
- ldr r0, [r5, #4]
- cmp r1, r0
- blt _0221CEC0
- ldr r0, [r5, #0x24]
- bl MOD08_0221894C
- ldrb r0, [r5, #8]
- add r0, r0, #1
- strb r0, [r5, #8]
-_0221CEB2:
- ldr r0, [r5, #0xc]
- add r1, r4, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl FreeToHeap
-_0221CEC0:
- add sp, #0x14
- pop {r3, r4, r5, r6, pc}
-
- thumb_func_start MOD08_0221CEC4
-MOD08_0221CEC4: ; 0x0221CEC4
- push {r3, r4, r5, lr}
- mov r1, #0x28
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r1, r4, #0
- add r0, r5, #0
- add r1, #8
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r4, #4]
- ldr r0, [r4, #0xc]
- ldr r1, _0221CEF0 ; =MOD08_0221CE40
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221CEF0: .word MOD08_0221CE40
-
- thumb_func_start MOD08_0221CEF4
-MOD08_0221CEF4: ; 0x0221CEF4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r4, r1, #0
- str r0, [sp, #0xc]
- ldrb r0, [r4]
- cmp r0, #3
- bls _0221CF04
- b _0221D076
-_0221CF04:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221CF10: ; jump table
- .short _0221CF18 - _0221CF10 - 2 ; case 0
- .short _0221CFCA - _0221CF10 - 2 ; case 1
- .short _0221CFE8 - _0221CF10 - 2 ; case 2
- .short _0221D042 - _0221CF10 - 2 ; case 3
-_0221CF18:
- ldrb r0, [r4, #4]
- mov r7, #0
- add r1, r7, #0
- add r0, r0, #1
- strb r0, [r4, #4]
- ldr r0, [r4, #8]
- bl MOD08_02212498
- cmp r0, #0
- ble _0221CF8E
- ldr r6, _0221D0E4 ; =0x0222C536
- add r5, r4, #0
-_0221CF30:
- add r1, sp, #0x10
- ldr r0, [r5, #0x14]
- add r1, #2
- add r2, sp, #0x10
- bl FUN_0200C7A0
- ldrb r1, [r4, #4]
- ldrb r0, [r6]
- cmp r1, r0
- blo _0221CF74
- add r0, r4, r7
- ldrb r1, [r0, #1]
- add r1, r1, #1
- strb r1, [r0, #1]
- ldrb r2, [r0, #1]
- ldrb r1, [r6, #1]
- cmp r2, r1
- blo _0221CF7C
- mov r1, #0
- strb r1, [r0, #1]
- ldr r0, [r5, #0x14]
- bl FUN_0200C658
- cmp r0, #1
- ldr r0, [r5, #0x14]
- bne _0221CF6C
- mov r1, #0
- bl FUN_0200C644
- b _0221CF7C
-_0221CF6C:
- mov r1, #1
- bl FUN_0200C644
- b _0221CF7C
-_0221CF74:
- ldr r0, [r5, #0x14]
- mov r1, #0
- bl FUN_0200C644
-_0221CF7C:
- ldr r0, [r4, #8]
- mov r1, #0
- add r5, r5, #4
- add r6, r6, #2
- add r7, r7, #1
- bl MOD08_02212498
- cmp r7, r0
- blt _0221CF30
-_0221CF8E:
- ldrb r0, [r4, #4]
- cmp r0, #0x2d
- blo _0221D02C
- mov r5, #0
- ldr r0, [r4, #8]
- add r1, r5, #0
- bl MOD08_02212498
- cmp r0, #0
- ble _0221CFBE
- add r6, r4, #0
- mov r7, #1
-_0221CFA6:
- ldr r0, [r6, #0x14]
- add r1, r7, #0
- bl FUN_0200C644
- ldr r0, [r4, #8]
- mov r1, #0
- add r6, r6, #4
- add r5, r5, #1
- bl MOD08_02212498
- cmp r5, r0
- blt _0221CFA6
-_0221CFBE:
- mov r0, #0
- strb r0, [r4, #4]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221D0B0
-_0221CFCA:
- mov r1, #0x64
- str r1, [sp]
- str r1, [sp, #4]
- mov r0, #0xa
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x20
- mov r2, #0x3c
- add r3, r1, #0
- bl MOD08_022181A8
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221D0B0
-_0221CFE8:
- add r0, r4, #0
- add r0, #0x20
- bl MOD08_02218224
- cmp r0, #1
- bne _0221D02E
- mov r5, #0
- ldr r0, [r4, #8]
- add r1, r5, #0
- bl MOD08_02212498
- cmp r0, #0
- ble _0221D0B0
- add r7, r4, #0
- add r6, r4, #0
- add r7, #0x20
-_0221D008:
- add r0, r7, #0
- add r1, sp, #0x18
- add r2, sp, #0x14
- bl MOD08_0221825C
- ldr r0, [r6, #0x14]
- ldr r1, [sp, #0x18]
- ldr r2, [sp, #0x14]
- bl FUN_0200C884
- ldr r0, [r4, #8]
- mov r1, #0
- add r6, r6, #4
- add r5, r5, #1
- bl MOD08_02212498
- cmp r5, r0
- blt _0221D008
-_0221D02C:
- b _0221D0B0
-_0221D02E:
- ldrb r0, [r4, #4]
- add r0, r0, #1
- strb r0, [r4, #4]
- ldrb r0, [r4, #4]
- cmp r0, #0x2d
- blo _0221D0B0
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221D0B0
-_0221D042:
- ldrb r0, [r4, #5]
- cmp r0, #0
- beq _0221D04C
- sub r0, r0, #1
- strb r0, [r4, #5]
-_0221D04C:
- ldrb r0, [r4, #6]
- cmp r0, #0xf
- bhs _0221D056
- add r0, r0, #1
- strb r0, [r4, #6]
-_0221D056:
- ldrb r0, [r4, #5]
- cmp r0, #0
- bne _0221D068
- ldrb r0, [r4, #6]
- cmp r0, #0xf
- bne _0221D068
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221D068:
- ldrb r0, [r4, #6]
- ldrb r1, [r4, #5]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221D0E8 ; =0x04000052
- strh r1, [r0]
- b _0221D0B0
-_0221D076:
- mov r5, #0
- ldr r0, [r4, #8]
- add r1, r5, #0
- bl MOD08_02212498
- cmp r0, #0
- ble _0221D09E
- add r6, r4, #0
- add r7, r5, #0
-_0221D088:
- ldr r0, [r6, #0x14]
- bl FUN_0200C3DC
- ldr r0, [r4, #8]
- add r1, r7, #0
- add r6, r6, #4
- add r5, r5, #1
- bl MOD08_02212498
- cmp r5, r0
- blt _0221D088
-_0221D09E:
- ldr r0, [r4, #8]
- ldr r1, [sp, #0xc]
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
-_0221D0B0:
- mov r5, #0
- ldr r0, [r4, #8]
- add r1, r5, #0
- bl MOD08_02212498
- cmp r0, #0
- ble _0221D0DA
- add r6, r4, #0
- add r7, r5, #0
-_0221D0C2:
- ldr r0, [r6, #0x14]
- ldr r0, [r0]
- bl FUN_0200C59C
- ldr r0, [r4, #8]
- add r1, r7, #0
- add r6, r6, #4
- add r5, r5, #1
- bl MOD08_02212498
- cmp r5, r0
- blt _0221D0C2
-_0221D0DA:
- ldr r0, [r4, #0x10]
- bl FUN_0200BC1C
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0221D0E4: .word 0x0222C536
-_0221D0E8: .word 0x04000052
-
- thumb_func_start MOD08_0221D0EC
-MOD08_0221D0EC: ; 0x0221D0EC
- push {r4, r5, r6, r7, lr}
- sub sp, #0x3c
- str r0, [sp]
- add r5, r1, #0
- add r6, r2, #0
- add r7, r3, #0
- bl MOD08_02212014
- mov r1, #0x44
- bl AllocFromHeap
- add r4, r0, #0
- bne _0221D10A
- bl ErrorHandling
-_0221D10A:
- mov r0, #0
- strb r0, [r4, #4]
- strb r0, [r4]
- str r5, [r4, #0xc]
- ldr r0, [sp]
- str r6, [r4, #0x10]
- str r0, [r4, #8]
- ldr r1, [sp]
- add r0, sp, #8
- bl MOD08_02215474
- mov r1, #0
- mvn r1, r1
- ldr r0, [r4, #8]
- add r2, r1, #0
- bl MOD08_02227994
- mov r0, #0xf
- strb r0, [r4, #5]
- mov r0, #0
- strb r0, [r4, #6]
- ldrb r0, [r4, #6]
- ldrb r1, [r4, #5]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221D21C ; =0x04000052
- strh r1, [r0]
- ldr r0, [sp]
- str r7, [r4, #0x14]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [sp]
- bl MOD08_02227470
- cmp r0, #3
- bne _0221D166
- ldr r0, [sp]
- bl MOD08_02212004
- add r1, r0, #0
- mov r0, #0
- add r2, sp, #4
- bl MOD08_02227564
- b _0221D176
-_0221D166:
- ldr r0, [sp]
- bl MOD08_02212004
- add r1, r0, #0
- mov r0, #1
- add r2, sp, #4
- bl MOD08_02227564
-_0221D176:
- ldr r0, [r4, #8]
- mov r1, #0
- mov r6, #1
- bl MOD08_02212498
- cmp r0, #1
- ble _0221D1B0
- add r5, r4, #4
- add r7, sp, #4
-_0221D188:
- ldr r0, [r4, #0xc]
- ldr r1, [r4, #0x10]
- add r2, sp, #8
- bl FUN_0200C154
- str r0, [r5, #0x14]
- mov r1, #0
- mov r2, #2
- ldrsh r1, [r7, r1]
- ldrsh r2, [r7, r2]
- bl FUN_0200C714
- ldr r0, [r4, #8]
- mov r1, #0
- add r5, r5, #4
- add r6, r6, #1
- bl MOD08_02212498
- cmp r6, r0
- blt _0221D188
-_0221D1B0:
- add r3, sp, #4
- mov r1, #0
- mov r2, #2
- ldrsh r1, [r3, r1]
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #0x14]
- bl FUN_0200C714
- mov r6, #0
- ldr r0, [r4, #8]
- add r1, r6, #0
- bl MOD08_02212498
- cmp r0, #0
- ble _0221D20A
- add r5, r4, #0
- add r7, r6, #0
-_0221D1D2:
- add r1, r4, r6
- mov r0, #0
- strb r0, [r1, #1]
- ldr r0, [r5, #0x14]
- mov r1, #2
- bl FUN_0200C840
- mov r2, #0x20
- sub r2, r2, r7
- lsl r2, r2, #0x10
- ldr r0, [r5, #0x14]
- mov r1, #0
- asr r2, r2, #0x10
- bl FUN_0200C82C
- ldr r0, [r5, #0x14]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #8]
- mov r1, #0
- add r5, r5, #4
- add r7, r7, #4
- add r6, r6, #1
- bl MOD08_02212498
- cmp r6, r0
- blt _0221D1D2
-_0221D20A:
- mov r3, #1
- ldr r0, [sp]
- ldr r1, _0221D220 ; =MOD08_0221CEF4
- add r2, r4, #0
- lsl r3, r3, #0xc
- bl MOD08_022123E4
- add sp, #0x3c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0221D21C: .word 0x04000052
-_0221D220: .word MOD08_0221CEF4
-
- thumb_func_start MOD08_0221D224
-MOD08_0221D224: ; 0x0221D224
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #5
- bls _0221D234
- b _0221D404
-_0221D234:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221D240: ; jump table
- .short _0221D24C - _0221D240 - 2 ; case 0
- .short _0221D2AE - _0221D240 - 2 ; case 1
- .short _0221D2C8 - _0221D240 - 2 ; case 2
- .short _0221D2EC - _0221D240 - 2 ; case 3
- .short _0221D346 - _0221D240 - 2 ; case 4
- .short _0221D394 - _0221D240 - 2 ; case 5
-_0221D24C:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- cmp r0, #1
- bne _0221D2A4
- add r0, r4, #0
- add r0, #0x38
- bl MOD08_022183F0
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x16
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0xd
- bl FUN_02007558
- mov r2, #0x38
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_020079E0
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x28]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221D2A4:
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221D2AE:
- mov r0, #0x1f
- str r0, [sp]
- mov r1, #0
- ldr r0, [r4, #0x10]
- mov r2, #0xa
- add r3, r1, #0
- bl FUN_02007E68
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221D2C8:
- ldr r0, [r4, #0x10]
- bl FUN_02007F20
- cmp r0, #0
- bne _0221D2F6
- mov r0, #0x1f
- str r0, [sp]
- mov r2, #0
- ldr r0, [r4, #0x10]
- mov r1, #0xa
- add r3, r2, #0
- bl FUN_02007E68
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221D2EC:
- ldr r0, [r4, #0x10]
- bl FUN_02007F20
- cmp r0, #0
- beq _0221D2F8
-_0221D2F6:
- b _0221D412
-_0221D2F8:
- ldrb r0, [r4, #8]
- add r0, r0, #1
- strb r0, [r4, #8]
- ldrb r0, [r4, #8]
- cmp r0, #3
- blo _0221D33E
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl MOD08_02212498
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl MOD08_02212498
- add r6, r0, #0
- ldr r0, [r4, #0xc]
- mov r1, #3
- bl MOD08_02212498
- str r0, [sp]
- add r0, r4, #0
- lsl r1, r5, #0x10
- lsl r3, r6, #0x10
- add r0, #0x14
- asr r1, r1, #0x10
- mov r2, #0x64
- asr r3, r3, #0x10
- bl MOD08_02218120
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221D33E:
- mov r0, #1
- add sp, #4
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221D346:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- cmp r0, #1
- bne _0221D38A
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x16
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x28]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221D38A:
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221D394:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- cmp r0, #1
- ldr r0, [r4, #0x10]
- bne _0221D3D8
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x16
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x28]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221D3D8:
- mov r1, #0xc
- add r2, r1, #0
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #0x10]
- add r2, #0xf3
- bl FUN_02007558
- mov r2, #2
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_02007558
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221D404:
- ldr r0, [r4, #0xc]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221D412:
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221D418
-MOD08_0221D418: ; 0x0221D418
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x5c
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4, #8]
- strb r0, [r4]
- str r5, [r4, #0xc]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #2]
- ldr r0, [r4, #0xc]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD08_0221552C
- str r0, [r4, #4]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [sp]
- add r0, r4, #0
- mov r1, #0x64
- lsl r3, r6, #0x10
- add r0, #0x14
- add r2, r1, #0
- asr r3, r3, #0x10
- bl MOD08_02218120
- mov r0, #0xa
- str r0, [sp]
- add r0, r4, #0
- mov r2, #0
- add r0, #0x38
- mov r1, #2
- add r3, r2, #0
- bl MOD08_022183C0
- ldr r0, [r4, #0xc]
- ldr r1, _0221D4A0 ; =MOD08_0221D224
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- nop
-_0221D4A0: .word MOD08_0221D224
-
- thumb_func_start MOD08_0221D4A4
-MOD08_0221D4A4: ; 0x0221D4A4
- push {r3, r4, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #4
- bls _0221D4B4
- b _0221D6CC
-_0221D4B4:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221D4C0: ; jump table
- .short _0221D4CA - _0221D4C0 - 2 ; case 0
- .short _0221D530 - _0221D4C0 - 2 ; case 1
- .short _0221D594 - _0221D4C0 - 2 ; case 2
- .short _0221D5F8 - _0221D4C0 - 2 ; case 3
- .short _0221D65C - _0221D4C0 - 2 ; case 4
-_0221D4CA:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218224
- cmp r0, #1
- bne _0221D50E
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x24]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #0xc
- pop {r3, r4, pc}
-_0221D50E:
- mov r1, #0x96
- str r1, [sp]
- mov r0, #0x64
- str r0, [sp, #4]
- mov r0, #0xa
- str r0, [sp, #8]
- add r0, r4, #0
- mov r2, #0x32
- add r0, #0x10
- add r3, r2, #0
- bl MOD08_022181A8
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221D530:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218224
- cmp r0, #1
- bne _0221D574
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x24]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #0xc
- pop {r3, r4, pc}
-_0221D574:
- mov r2, #0x64
- str r2, [sp]
- str r2, [sp, #4]
- mov r0, #5
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x10
- mov r1, #0x32
- mov r3, #0x96
- bl MOD08_022181A8
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221D594:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218224
- cmp r0, #1
- bne _0221D5D8
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x24]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #0xc
- pop {r3, r4, pc}
-_0221D5D8:
- mov r2, #0x96
- mov r1, #0x64
- str r2, [sp]
- str r1, [sp, #4]
- mov r0, #5
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x10
- add r3, r1, #0
- bl MOD08_022181A8
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221D5F8:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218224
- cmp r0, #1
- bne _0221D63C
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x24]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #0xc
- pop {r3, r4, pc}
-_0221D63C:
- mov r2, #0x64
- str r2, [sp]
- str r2, [sp, #4]
- mov r0, #5
- str r0, [sp, #8]
- add r0, r4, #0
- mov r1, #0x96
- add r0, #0x10
- add r3, r1, #0
- bl MOD08_022181A8
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221D65C:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218224
- cmp r0, #1
- ldr r0, [r4, #0xc]
- bne _0221D6A0
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x24]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #0xc
- pop {r3, r4, pc}
-_0221D6A0:
- mov r1, #0xc
- add r2, r1, #0
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #0xc]
- add r2, #0xf3
- bl FUN_02007558
- mov r2, #2
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_02007558
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221D6CC:
- ldr r0, [r4, #8]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0xc
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221D6E0
-MOD08_0221D6E0: ; 0x0221D6E0
- push {r4, r5, lr}
- sub sp, #0xc
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x58
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4]
- str r5, [r4, #8]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #2]
- ldr r0, [r4, #8]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_0221552C
- str r0, [r4, #4]
- mov r0, #0x32
- str r0, [sp]
- mov r1, #0x64
- str r1, [sp, #4]
- mov r0, #0xa
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x10
- mov r2, #0x96
- add r3, r1, #0
- bl MOD08_022181A8
- ldr r0, [r4, #8]
- ldr r1, _0221D748 ; =MOD08_0221D4A4
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0xc
- pop {r4, r5, pc}
- nop
-_0221D748: .word MOD08_0221D4A4
-
- thumb_func_start MOD08_0221D74C
-MOD08_0221D74C: ; 0x0221D74C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r5, r1, #0
- add r2, r0, #0
- ldrb r0, [r5, #1]
- cmp r0, #0
- beq _0221D766
- cmp r0, #1
- beq _0221D84C
- cmp r0, #2
- bne _0221D764
- b _0221D8AE
-_0221D764:
- b _0221D8E2
-_0221D766:
- ldrb r3, [r5]
- mov r0, #0x1f
- lsr r2, r3, #0x1f
- lsl r1, r3, #0x1f
- sub r1, r1, r2
- ror r1, r0
- add r0, r2, r1
- lsl r0, r0, #1
- add r1, r3, #1
- str r0, [sp, #0xc]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- str r0, [sp, #8]
- ldr r1, [sp, #0xc]
- mov r0, #6
- mul r0, r1
- ldr r1, _0221D900 ; =0x0222C59A
- ldrsh r2, [r1, r0]
- ldr r1, [sp, #8]
- sub r7, r2, r1
- mov r1, #0xa
- ldrsh r3, [r5, r1]
- ldr r1, _0221D904 ; =0x0222C598
- ldrsh r6, [r1, r0]
- mov r1, #8
- ldrsh r2, [r5, r1]
- ldr r1, _0221D908 ; =0x0222C596
- ldrsh r4, [r1, r0]
- lsl r0, r7, #0x10
- str r3, [sp]
- add r1, r2, r4
- lsr r0, r0, #0x10
- add r2, r2, r6
- str r0, [sp, #4]
- add r0, r5, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- add r0, #0x28
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_02217E80
- mov r0, #0xa
- ldrsh r3, [r5, r0]
- mov r0, #8
- ldrsh r2, [r5, r0]
- lsl r0, r7, #0x10
- lsr r0, r0, #0x10
- sub r1, r2, r4
- str r3, [sp]
- sub r2, r2, r6
- str r0, [sp, #4]
- add r0, r5, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- add r0, #0x4c
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_02217E80
- ldr r0, [sp, #0xc]
- add r1, r0, #1
- mov r0, #6
- mul r0, r1
- ldr r1, _0221D900 ; =0x0222C59A
- ldrsh r2, [r1, r0]
- ldr r1, [sp, #8]
- sub r7, r2, r1
- mov r1, #0xa
- ldrsh r3, [r5, r1]
- ldr r1, _0221D904 ; =0x0222C598
- ldrsh r6, [r1, r0]
- mov r1, #8
- ldrsh r2, [r5, r1]
- ldr r1, _0221D908 ; =0x0222C596
- ldrsh r4, [r1, r0]
- lsl r0, r7, #0x10
- str r3, [sp]
- add r1, r2, r4
- lsr r0, r0, #0x10
- add r2, r2, r6
- str r0, [sp, #4]
- add r0, r5, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- add r0, #0x70
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_02217E80
- mov r0, #0xa
- ldrsh r3, [r5, r0]
- mov r0, #8
- ldrsh r2, [r5, r0]
- lsl r0, r7, #0x10
- lsr r0, r0, #0x10
- sub r1, r2, r4
- str r3, [sp]
- sub r2, r2, r6
- str r0, [sp, #4]
- add r0, r5, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- add r0, #0x94
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_02217E80
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
- ldrb r0, [r5, #1]
- add r0, r0, #1
- strb r0, [r5, #1]
-_0221D84C:
- mov r0, #0
- add r7, r5, #0
- str r0, [sp, #0x10]
- str r0, [sp, #0x14]
- add r7, #0x28
- add r6, r5, #0
- add r4, r5, #0
-_0221D85A:
- add r0, r7, #0
- bl MOD08_02217ECC
- cmp r0, #0
- bne _0221D870
- ldr r0, [sp, #0x10]
- add r0, r0, #1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x10]
- b _0221D87E
-_0221D870:
- mov r1, #0x28
- mov r2, #0x2a
- ldrsh r1, [r6, r1]
- ldrsh r2, [r6, r2]
- ldr r0, [r4, #0x18]
- bl FUN_0200C714
-_0221D87E:
- ldr r0, [r4, #0x18]
- bl FUN_0200C5A8
- ldr r0, [sp, #0x14]
- add r7, #0x24
- add r0, r0, #1
- add r6, #0x24
- add r4, r4, #4
- str r0, [sp, #0x14]
- cmp r0, #4
- blt _0221D85A
- ldr r0, [sp, #0x10]
- cmp r0, #4
- bne _0221D8F4
- ldrb r0, [r5]
- cmp r0, #9
- bne _0221D8A8
- ldrb r0, [r5, #1]
- add r0, r0, #1
- strb r0, [r5, #1]
- b _0221D8F4
-_0221D8A8:
- mov r0, #0
- strb r0, [r5, #1]
- b _0221D8F4
-_0221D8AE:
- ldrb r0, [r5, #4]
- cmp r0, #0
- beq _0221D8B8
- sub r0, r0, #1
- strb r0, [r5, #4]
-_0221D8B8:
- ldrb r0, [r5, #5]
- cmp r0, #0xf
- bhs _0221D8C2
- add r0, r0, #1
- strb r0, [r5, #5]
-_0221D8C2:
- ldrb r0, [r5, #4]
- cmp r0, #0
- bne _0221D8D4
- ldrb r0, [r5, #5]
- cmp r0, #0xf
- bne _0221D8D4
- ldrb r0, [r5, #1]
- add r0, r0, #1
- strb r0, [r5, #1]
-_0221D8D4:
- ldrb r0, [r5, #5]
- ldrb r1, [r5, #4]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221D90C ; =0x04000052
- strh r1, [r0]
- b _0221D8F4
-_0221D8E2:
- ldr r0, [r5, #0xc]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl FreeToHeap
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
-_0221D8F4:
- ldr r0, [r5, #0x14]
- bl FUN_0200BC1C
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221D900: .word 0x0222C59A
-_0221D904: .word 0x0222C598
-_0221D908: .word 0x0222C596
-_0221D90C: .word 0x04000052
-
- thumb_func_start MOD08_0221D910
-MOD08_0221D910: ; 0x0221D910
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- str r0, [sp, #0x18]
- bl MOD08_02212014
- mov r1, #0xb8
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4, #1]
- strb r0, [r4]
- ldr r0, [sp, #0x18]
- str r0, [r4, #0xc]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #8]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0xa]
- ldr r0, [r4, #0x10]
- mov r1, #0x29
- bl FUN_0200782C
- mov r1, #0xa
- ldrsh r1, [r4, r1]
- sub r0, r1, r0
- strh r0, [r4, #0xa]
- ldr r0, [r4, #0xc]
- bl MOD08_02212504
- str r0, [r4, #0x14]
- mov r0, #8
- strb r0, [r4, #4]
- mov r1, #6
- strb r1, [r4, #5]
- sub r1, r1, #7
- ldr r0, [r4, #0xc]
- add r2, r1, #0
- bl MOD08_02227994
- ldrb r0, [r4, #5]
- ldrb r1, [r4, #4]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221DB90 ; =0x04000052
- strh r1, [r0]
- ldr r0, [r4, #0xc]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD08_0221550C
- str r0, [sp, #0x20]
- ldr r0, [r4, #0xc]
- bl MOD08_02215574
- add r7, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD08_0221551C
- str r0, [sp, #0x1c]
- mov r6, #0
- add r5, r4, #0
-_0221D9AE:
- ldr r0, [r4, #0xc]
- add r1, r6, #0
- bl MOD08_022124D8
- mov r1, #1
- str r0, [r5, #0x18]
- bl FUN_0200C90C
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #4
- blt _0221D9AE
- ldr r0, [r4, #0xc]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD08_02227470
- cmp r0, #3
- ldr r0, [r4, #0x18]
- bne _0221DA9E
- mov r1, #0xa
- bl FUN_0200C6C4
- ldr r0, [r4, #0x1c]
- mov r1, #0xa
- bl FUN_0200C6C4
- ldr r0, [r4, #0x20]
- mov r1, #0x14
- bl FUN_0200C6C4
- ldr r0, [r4, #0x24]
- mov r1, #0x14
- bl FUN_0200C6C4
- ldr r0, [r4, #0x18]
- add r1, r7, #0
- bl FUN_0200C6B0
- ldr r0, [r4, #0x1c]
- add r1, r7, #0
- bl FUN_0200C6B0
- ldr r0, [r4, #0x20]
- add r1, r7, #0
- bl FUN_0200C6B0
- ldr r0, [r4, #0x24]
- add r1, r7, #0
- bl FUN_0200C6B0
- ldr r0, [r4, #0x18]
- ldr r0, [r0]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- ldr r0, [r4, #0xc]
- bl MOD08_02215504
- add r6, r0, #0
- ldr r0, [sp, #0x18]
- bl MOD08_02212014
- add r3, r0, #0
- mov r0, #2
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- lsl r0, r5, #0x14
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- str r0, [sp, #0x14]
- ldr r1, [sp, #0x1c]
- ldr r2, [sp, #0x20]
- add r0, r6, #0
- bl FUN_02003B40
- ldr r0, [r4, #0x20]
- ldr r0, [r0]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- ldr r0, [r4, #0xc]
- bl MOD08_02215504
- add r6, r0, #0
- ldr r0, [sp, #0x18]
- bl MOD08_02212014
- add r3, r0, #0
- mov r0, #2
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- lsl r0, r5, #0x14
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- mov r0, #0xc4
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- str r0, [sp, #0x14]
- ldr r1, [sp, #0x1c]
- ldr r2, [sp, #0x20]
- add r0, r6, #0
- bl FUN_02003B40
- b _0221DB80
-_0221DA9E:
- mov r1, #0x14
- bl FUN_0200C6C4
- ldr r0, [r4, #0x1c]
- mov r1, #0x14
- bl FUN_0200C6C4
- ldr r0, [r4, #0x20]
- mov r1, #0xa
- bl FUN_0200C6C4
- ldr r0, [r4, #0x24]
- mov r1, #0xa
- bl FUN_0200C6C4
- ldr r0, [r4, #0x18]
- add r1, r7, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x1c]
- add r1, r7, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x20]
- add r1, r7, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x24]
- add r1, r7, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x18]
- add r1, r7, #0
- bl FUN_0200C6B0
- ldr r0, [r4, #0x1c]
- add r1, r7, #0
- bl FUN_0200C6B0
- ldr r0, [r4, #0x20]
- add r1, r7, #0
- bl FUN_0200C6B0
- ldr r0, [r4, #0x24]
- add r1, r7, #0
- bl FUN_0200C6B0
- ldr r0, [r4, #0x18]
- ldr r0, [r0]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- ldr r0, [r4, #0xc]
- bl MOD08_02215504
- add r6, r0, #0
- ldr r0, [sp, #0x18]
- bl MOD08_02212014
- add r3, r0, #0
- mov r0, #2
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- lsl r0, r5, #0x14
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- mov r0, #0xc4
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- str r0, [sp, #0x14]
- ldr r1, [sp, #0x1c]
- ldr r2, [sp, #0x20]
- add r0, r6, #0
- bl FUN_02003B40
- ldr r0, [r4, #0x20]
- ldr r0, [r0]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- ldr r0, [r4, #0xc]
- bl MOD08_02215504
- add r6, r0, #0
- ldr r0, [sp, #0x18]
- bl MOD08_02212014
- add r3, r0, #0
- mov r0, #2
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- lsl r0, r5, #0x14
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- str r0, [sp, #0x14]
- ldr r1, [sp, #0x1c]
- ldr r2, [sp, #0x20]
- add r0, r6, #0
- bl FUN_02003B40
-_0221DB80:
- ldr r0, [r4, #0xc]
- ldr r1, _0221DB94 ; =MOD08_0221D74C
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- nop
-_0221DB90: .word 0x04000052
-_0221DB94: .word MOD08_0221D74C
-
- thumb_func_start MOD08_0221DB98
-MOD08_0221DB98: ; 0x0221DB98
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221DBAA
- cmp r0, #1
- beq _0221DC04
- b _0221DC44
-_0221DBAA:
- ldrb r1, [r4, #2]
- ldr r5, _0221DC54 ; =0x0222C531
- mov r2, #0x64
- lsl r0, r1, #1
- add r3, r1, r0
- ldr r0, _0221DC58 ; =0x0222C532
- ldr r1, _0221DC5C ; =0x0222C530
- ldrb r0, [r0, r3]
- ldrb r1, [r1, r3]
- ldrb r3, [r5, r3]
- str r0, [sp]
- add r0, r4, #0
- add r0, #0xc
- bl MOD08_02218120
- ldrb r0, [r4, #2]
- cmp r0, #0
- ldr r0, _0221DC60 ; =0x00007FFF
- bne _0221DBE0
- str r0, [sp]
- mov r1, #0
- ldr r0, [r4, #8]
- mov r2, #6
- add r3, r1, #0
- bl FUN_02007E68
- b _0221DBEE
-_0221DBE0:
- str r0, [sp]
- mov r2, #0
- ldr r0, [r4, #8]
- mov r1, #6
- add r3, r2, #0
- bl FUN_02007E68
-_0221DBEE:
- ldrb r1, [r4, #2]
- mov r0, #1
- eor r0, r1
- strb r0, [r4, #2]
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_0221DC04:
- add r0, r4, #0
- add r0, #0xc
- bl MOD08_02218170
- cmp r0, #0
- bne _0221DC2C
- ldr r0, [r4, #8]
- bl FUN_02007F20
- cmp r0, #0
- bne _0221DC2C
- ldrb r0, [r4, #1]
- cmp r0, #4
- ldrb r0, [r4]
- bhs _0221DC28
- sub r0, r0, #1
- strb r0, [r4]
- b _0221DC2C
-_0221DC28:
- add r0, r0, #1
- strb r0, [r4]
-_0221DC2C:
- mov r1, #0xc
- ldrsh r2, [r4, r1]
- ldr r0, [r4, #8]
- bl FUN_02007558
- mov r2, #0xe
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #8]
- mov r1, #0xd
- bl FUN_02007558
- pop {r3, r4, r5, pc}
-_0221DC44:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221DC54: .word 0x0222C531
-_0221DC58: .word 0x0222C532
-_0221DC5C: .word 0x0222C530
-_0221DC60: .word 0x00007FFF
-
- thumb_func_start MOD08_0221DC64
-MOD08_0221DC64: ; 0x0221DC64
- push {r3, r4, r5, lr}
- mov r1, #0x30
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4]
- strb r0, [r4, #2]
- strb r0, [r4, #1]
- str r5, [r4, #4]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #8]
- ldr r0, [r4, #4]
- ldr r1, _0221DC98 ; =MOD08_0221DB98
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- nop
-_0221DC98: .word MOD08_0221DB98
-
- thumb_func_start MOD08_0221DC9C
-MOD08_0221DC9C: ; 0x0221DC9C
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221DCB0
- cmp r0, #1
- beq _0221DCEA
- b _0221DD42
-_0221DCB0:
- ldrb r1, [r4, #1]
- ldr r2, _0221DD54 ; =0x0222C578
- ldr r5, _0221DD58 ; =0x0222C579
- lsl r0, r1, #2
- add r3, r1, r0
- ldr r0, _0221DD5C ; =0x0222C57A
- ldr r1, _0221DD60 ; =0x0222C577
- ldrb r0, [r0, r3]
- ldrb r1, [r1, r3]
- ldrb r2, [r2, r3]
- str r0, [sp]
- mov r0, #0x64
- str r0, [sp, #4]
- ldr r0, _0221DD64 ; =0x0222C57B
- ldrb r0, [r0, r3]
- ldrb r3, [r5, r3]
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_022181A8
- ldrb r0, [r4, #1]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, pc}
-_0221DCEA:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218224
- cmp r0, #0
- bne _0221DD08
- ldrb r0, [r4, #1]
- cmp r0, #3
- ldrb r0, [r4]
- bhs _0221DD04
- sub r0, r0, #1
- strb r0, [r4]
- b _0221DD08
-_0221DD04:
- add r0, r0, #1
- strb r0, [r4]
-_0221DD08:
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- mov r1, #4
- ldrsh r0, [r4, r0]
- ldrsh r1, [r4, r1]
- ldr r2, [r4, #0x24]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #0xc
- pop {r4, r5, pc}
-_0221DD42:
- ldr r0, [r4, #8]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-_0221DD54: .word 0x0222C578
-_0221DD58: .word 0x0222C579
-_0221DD5C: .word 0x0222C57A
-_0221DD60: .word 0x0222C577
-_0221DD64: .word 0x0222C57B
-
- thumb_func_start MOD08_0221DD68
-MOD08_0221DD68: ; 0x0221DD68
- push {r3, r4, r5, lr}
- mov r1, #0x34
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4]
- strb r0, [r4, #1]
- str r5, [r4, #8]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #2]
- ldr r0, [r4, #8]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_0221552C
- strh r0, [r4, #4]
- ldr r0, [r4, #8]
- ldr r1, _0221DDB0 ; =MOD08_0221DC9C
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221DDB0: .word MOD08_0221DC9C
-
- thumb_func_start MOD08_0221DDB4
-MOD08_0221DDB4: ; 0x0221DDB4
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #5
- bls _0221DDC4
- b _0221DF24
-_0221DDC4:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221DDD0: ; jump table
- .short _0221DDDC - _0221DDD0 - 2 ; case 0
- .short _0221DE16 - _0221DDD0 - 2 ; case 1
- .short _0221DE58 - _0221DDD0 - 2 ; case 2
- .short _0221DE82 - _0221DDD0 - 2 ; case 3
- .short _0221DEA4 - _0221DDD0 - 2 ; case 4
- .short _0221DEE2 - _0221DDD0 - 2 ; case 5
-_0221DDDC:
- ldrb r1, [r4, #1]
- ldr r2, _0221DF64 ; =0x0222C550
- ldr r5, _0221DF68 ; =0x0222C551
- lsl r0, r1, #2
- add r3, r1, r0
- ldr r0, _0221DF6C ; =0x0222C552
- ldr r1, _0221DF70 ; =0x0222C54F
- ldrb r0, [r0, r3]
- ldrb r1, [r1, r3]
- ldrb r2, [r2, r3]
- str r0, [sp]
- mov r0, #0x64
- str r0, [sp, #4]
- ldr r0, _0221DF74 ; =0x0222C553
- ldrb r0, [r0, r3]
- ldrb r3, [r5, r3]
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_022181A8
- ldrb r0, [r4, #1]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, pc}
-_0221DE16:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218224
- cmp r0, #0
- bne _0221DE28
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221DE28:
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #0
- str r0, [sp]
- mov r1, #2
- mov r2, #6
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- ldr r3, [r4, #0x24]
- bl MOD08_022182DC
- add sp, #0xc
- pop {r4, r5, pc}
-_0221DE58:
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- mov r1, #0
- add r3, r0, #0
- lsl r3, r3, #0x10
- str r1, [sp]
- mov r0, #5
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x10
- add r2, r1, #0
- asr r3, r3, #0x10
- bl MOD08_02217E80
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, pc}
-_0221DE82:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02217ECC
- cmp r0, #0
- bne _0221DE94
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221DE94:
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_02007558
- add sp, #0xc
- pop {r4, r5, pc}
-_0221DEA4:
- ldrb r1, [r4, #1]
- ldr r2, _0221DF64 ; =0x0222C550
- ldr r5, _0221DF68 ; =0x0222C551
- lsl r0, r1, #2
- add r3, r1, r0
- ldr r0, _0221DF6C ; =0x0222C552
- ldr r1, _0221DF70 ; =0x0222C54F
- ldrb r0, [r0, r3]
- ldrb r1, [r1, r3]
- ldrb r2, [r2, r3]
- str r0, [sp]
- mov r0, #0x64
- str r0, [sp, #4]
- ldr r0, _0221DF74 ; =0x0222C553
- ldrb r0, [r0, r3]
- ldrb r3, [r5, r3]
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_022181A8
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #2]
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, pc}
-_0221DEE2:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218224
- cmp r0, #0
- bne _0221DEF4
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221DEF4:
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #1
- str r0, [sp]
- mov r1, #2
- mov r2, #6
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- ldr r3, [r4, #0x24]
- bl MOD08_022182DC
- add sp, #0xc
- pop {r4, r5, pc}
-_0221DF24:
- mov r2, #4
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_02007558
- ldr r0, [r4, #0xc]
- mov r1, #6
- mov r2, #1
- bl FUN_02007558
- mov r1, #0xc
- add r2, r1, #0
- ldr r0, [r4, #0xc]
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #0xc]
- add r2, #0xf3
- bl FUN_02007558
- ldr r0, [r4, #8]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-_0221DF64: .word 0x0222C550
-_0221DF68: .word 0x0222C551
-_0221DF6C: .word 0x0222C552
-_0221DF70: .word 0x0222C54F
-_0221DF74: .word 0x0222C553
-
- thumb_func_start MOD08_0221DF78
-MOD08_0221DF78: ; 0x0221DF78
- push {r3, r4, r5, lr}
- mov r1, #0x34
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4]
- strb r0, [r4, #1]
- str r5, [r4, #8]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #2]
- mov r0, #2
- ldrsh r0, [r4, r0]
- strh r0, [r4, #4]
- ldr r0, [r4, #8]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_0221552C
- strh r0, [r4, #6]
- ldr r0, [r4, #8]
- ldr r1, _0221DFC8 ; =MOD08_0221DDB4
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- nop
-_0221DFC8: .word MOD08_0221DDB4
-
- thumb_func_start MOD08_0221DFCC
-MOD08_0221DFCC: ; 0x0221DFCC
- push {r3, r4, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #4
- bhi _0221E0B6
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221DFE6: ; jump table
- .short _0221DFF0 - _0221DFE6 - 2 ; case 0
- .short _0221E02A - _0221DFE6 - 2 ; case 1
- .short _0221E048 - _0221DFE6 - 2 ; case 2
- .short _0221E05E - _0221DFE6 - 2 ; case 3
- .short _0221E098 - _0221DFE6 - 2 ; case 4
-_0221DFF0:
- ldr r0, [r4, #8]
- bl MOD08_02214540
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- ldr r0, _0221E0C8 ; =0x00007FFF
- mov r1, #1
- str r0, [sp, #8]
- lsl r2, r2, #0x10
- ldr r0, [r4, #4]
- lsr r2, r2, #0x10
- sub r3, r1, #3
- bl FUN_02003210
- mov r1, #0
- str r1, [sp]
- ldr r0, [r4, #0x10]
- mov r2, #0x10
- add r3, r1, #0
- bl FUN_02007E68
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221E02A:
- ldr r0, [r4, #4]
- bl FUN_020038E4
- cmp r0, #0
- bne _0221E0C4
- ldr r0, [r4, #0x10]
- bl FUN_02007F20
- cmp r0, #0
- bne _0221E0C4
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221E048:
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4, #1]
- cmp r0, #5
- bls _0221E0C4
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221E05E:
- ldr r0, [r4, #8]
- bl MOD08_02214540
- add r2, r0, #0
- mov r0, #0x10
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- ldr r0, _0221E0C8 ; =0x00007FFF
- mov r1, #1
- str r0, [sp, #8]
- lsl r2, r2, #0x10
- ldr r0, [r4, #4]
- lsr r2, r2, #0x10
- sub r3, r1, #3
- bl FUN_02003210
- mov r2, #0
- str r2, [sp]
- ldr r0, [r4, #0x10]
- mov r1, #0x10
- add r3, r2, #0
- bl FUN_02007E68
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221E098:
- ldr r0, [r4, #4]
- bl FUN_020038E4
- cmp r0, #0
- bne _0221E0C4
- ldr r0, [r4, #0x10]
- bl FUN_02007F20
- cmp r0, #0
- bne _0221E0C4
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221E0B6:
- ldr r0, [r4, #8]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221E0C4:
- add sp, #0xc
- pop {r3, r4, pc}
- .align 2, 0
-_0221E0C8: .word 0x00007FFF
-
- thumb_func_start MOD08_0221E0CC
-MOD08_0221E0CC: ; 0x0221E0CC
- push {r3, r4, r5, lr}
- mov r1, #0x14
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4, #8]
- add r0, r5, #0
- bl MOD08_02215504
- str r0, [r4, #4]
- ldr r0, [r4, #8]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- ldr r0, [r4, #8]
- ldr r1, _0221E100 ; =MOD08_0221DFCC
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- nop
-_0221E100: .word MOD08_0221DFCC
-
- thumb_func_start MOD08_0221E104
-MOD08_0221E104: ; 0x0221E104
- push {r3, r4, r5, r6, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221E118
- cmp r0, #1
- beq _0221E184
- b _0221E1F8
-_0221E118:
- ldrb r1, [r4, #1]
- ldr r2, _0221E20C ; =0x0222C55A
- ldr r5, _0221E210 ; =0x0222C55B
- lsl r0, r1, #2
- add r3, r1, r0
- ldr r0, _0221E214 ; =0x0222C55C
- ldr r1, _0221E218 ; =0x0222C559
- ldrb r0, [r0, r3]
- ldrb r1, [r1, r3]
- ldrb r2, [r2, r3]
- str r0, [sp]
- mov r0, #0x64
- str r0, [sp, #4]
- ldr r0, _0221E21C ; =0x0222C55D
- ldrb r0, [r0, r3]
- ldrb r3, [r5, r3]
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_022181A8
- ldrb r1, [r4, #1]
- ldr r6, _0221E220 ; =0x0222C53C
- lsl r0, r1, #1
- add r5, r1, r0
- mov r0, #4
- ldrsh r3, [r4, r0]
- ldr r0, _0221E224 ; =0x0222C53D
- mov r1, #0
- ldrb r0, [r0, r5]
- add r2, r1, #0
- add r0, r3, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- ldr r0, _0221E228 ; =0x0222C53E
- ldrb r0, [r0, r5]
- ldrb r5, [r6, r5]
- str r0, [sp, #4]
- add r3, r3, r5
- add r0, r4, #0
- lsl r3, r3, #0x10
- add r0, #0x34
- asr r3, r3, #0x10
- bl MOD08_02217E80
- ldrb r0, [r4, #1]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221E184:
- add r0, r4, #0
- add r0, #0x10
- mov r5, #0
- bl MOD08_02218224
- cmp r0, #0
- bne _0221E194
- add r5, r5, #1
-_0221E194:
- add r0, r4, #0
- add r0, #0x34
- bl MOD08_02217ECC
- cmp r0, #0
- bne _0221E1A2
- add r5, r5, #1
-_0221E1A2:
- cmp r5, #2
- blt _0221E1C8
- ldrb r0, [r4, #1]
- cmp r0, #3
- blo _0221E1C4
- ldrb r0, [r4, #2]
- add r0, r0, #1
- strb r0, [r4, #2]
- mov r0, #0
- strb r0, [r4, #1]
- ldrb r0, [r4, #2]
- cmp r0, #3
- blo _0221E1C8
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221E1C8
-_0221E1C4:
- mov r0, #0
- strb r0, [r4]
-_0221E1C8:
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #0
- str r0, [sp]
- mov r1, #0x36
- mov r2, #6
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- ldr r3, [r4, #0x24]
- bl MOD08_022182DC
- add sp, #0xc
- pop {r3, r4, r5, r6, pc}
-_0221E1F8:
- ldr r0, [r4, #8]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0xc
- pop {r3, r4, r5, r6, pc}
- nop
-_0221E20C: .word 0x0222C55A
-_0221E210: .word 0x0222C55B
-_0221E214: .word 0x0222C55C
-_0221E218: .word 0x0222C559
-_0221E21C: .word 0x0222C55D
-_0221E220: .word 0x0222C53C
-_0221E224: .word 0x0222C53D
-_0221E228: .word 0x0222C53E
-
- thumb_func_start MOD08_0221E22C
-MOD08_0221E22C: ; 0x0221E22C
- push {r3, r4, r5, lr}
- mov r1, #0x58
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4]
- strb r0, [r4, #1]
- str r5, [r4, #8]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #4]
- ldr r0, [r4, #8]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_0221552C
- strh r0, [r4, #6]
- ldr r0, [r4, #8]
- ldr r1, _0221E274 ; =MOD08_0221E104
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221E274: .word MOD08_0221E104
-
- thumb_func_start MOD08_0221E278
-MOD08_0221E278: ; 0x0221E278
- push {r4, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221E28E
- cmp r0, #1
- beq _0221E2A6
- cmp r0, #2
- beq _0221E2C6
- b _0221E308
-_0221E28E:
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4, #1]
- cmp r0, #0xa
- blo _0221E324
- mov r0, #0
- strb r0, [r4, #1]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221E324
-_0221E2A6:
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200C644
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C644
- ldr r0, [r4, #0x10]
- mov r1, #2
- bl FUN_0200C90C
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221E324
-_0221E2C6:
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4, #1]
- cmp r0, #0xa
- blo _0221E324
- ldr r0, _0221E338 ; =0x0400004A
- mov r1, #0x3f
- ldrh r2, [r0]
- bic r2, r1
- mov r1, #0x1f
- orr r2, r1
- strh r2, [r0]
- ldrh r3, [r0]
- ldr r2, _0221E33C ; =0xFFFFC0FF
- lsl r1, r1, #8
- and r2, r3
- orr r1, r2
- strh r1, [r0]
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200C644
- mov r0, #0
- strb r0, [r4, #1]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221E324
-_0221E308:
- mov r3, #1
- lsl r3, r3, #0x1a
- ldr r1, [r3]
- ldr r0, _0221E340 ; =0xFFFF1FFF
- and r0, r1
- str r0, [r3]
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
-_0221E324:
- ldr r0, [r4, #0xc]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x10]
- bl FUN_0200C5A8
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- pop {r4, pc}
- .align 2, 0
-_0221E338: .word 0x0400004A
-_0221E33C: .word 0xFFFFC0FF
-_0221E340: .word 0xFFFF1FFF
-
- thumb_func_start MOD08_0221E344
-MOD08_0221E344: ; 0x0221E344
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- mov r1, #0x14
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4, #4]
- add r0, r5, #0
- bl MOD08_02212504
- str r0, [r4, #8]
- ldr r0, [r4, #4]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0xc]
- ldr r0, [r4, #4]
- mov r1, #1
- bl MOD08_022124D8
- str r0, [r4, #0x10]
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r2, [r0]
- ldr r1, _0221E41C ; =0xFFFF1FFF
- and r2, r1
- lsr r1, r0, #0xb
- orr r1, r2
- str r1, [r0]
- add r0, #0x4a
- ldrh r2, [r0]
- mov r1, #0x3f
- bic r2, r1
- mov r1, #0x1f
- orr r1, r2
- strh r1, [r0]
- ldrh r2, [r0]
- ldr r1, _0221E420 ; =0xFFFFC0FF
- and r2, r1
- mov r1, #0x12
- lsl r1, r1, #8
- orr r1, r2
- strh r1, [r0]
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_0221550C
- add r7, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_0221551C
- str r0, [sp, #0x18]
- ldr r0, [r4, #0xc]
- ldr r0, [r0]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- add r6, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02215504
- str r0, [sp, #0x1c]
- add r0, r5, #0
- bl MOD08_02212014
- add r3, r0, #0
- mov r0, #2
- str r0, [sp]
- mov r1, #0x20
- lsl r0, r6, #0x14
- str r1, [sp, #4]
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- add r1, #0xe0
- str r1, [sp, #0xc]
- str r1, [sp, #0x10]
- str r1, [sp, #0x14]
- ldr r0, [sp, #0x1c]
- ldr r1, [sp, #0x18]
- add r2, r7, #0
- bl FUN_02003B40
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #4]
- ldr r1, _0221E424 ; =MOD08_0221E278
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221E41C: .word 0xFFFF1FFF
-_0221E420: .word 0xFFFFC0FF
-_0221E424: .word MOD08_0221E278
-
- thumb_func_start MOD08_0221E428
-MOD08_0221E428: ; 0x0221E428
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #3
- bls _0221E438
- b _0221E61A
-_0221E438:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221E444: ; jump table
- .short _0221E44C - _0221E444 - 2 ; case 0
- .short _0221E45E - _0221E444 - 2 ; case 1
- .short _0221E576 - _0221E444 - 2 ; case 2
- .short _0221E5AE - _0221E444 - 2 ; case 3
-_0221E44C:
- ldr r0, [r4, #0xc]
- mov r1, #0xe
- mov r2, #1
- bl FUN_02007558
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221E636
-_0221E45E:
- mov r0, #0
- add r6, r4, #0
- ldr r7, _0221E640 ; =0x0222C52C
- str r0, [sp, #0x10]
- str r0, [sp, #0x14]
- add r5, r4, #0
- add r6, #0x20
-_0221E46C:
- ldrb r0, [r5, #0x18]
- cmp r0, #0
- beq _0221E478
- cmp r0, #1
- beq _0221E4A6
- b _0221E4F4
-_0221E478:
- ldrb r0, [r5, #0x19]
- add r0, r0, #1
- strb r0, [r5, #0x19]
- ldrb r1, [r5, #0x19]
- ldrb r0, [r7]
- cmp r1, r0
- blo _0221E4FA
- mov r0, #5
- str r0, [sp]
- mov r0, #0x64
- str r0, [sp, #4]
- mov r0, #5
- mov r1, #0x64
- str r0, [sp, #8]
- add r0, r6, #0
- mov r2, #5
- add r3, r1, #0
- bl MOD08_022181A8
- ldrb r0, [r5, #0x18]
- add r0, r0, #1
- strb r0, [r5, #0x18]
- b _0221E4FA
-_0221E4A6:
- add r0, r6, #0
- bl MOD08_02218224
- cmp r0, #0
- bne _0221E4B8
- ldrb r0, [r5, #0x18]
- add r0, r0, #1
- strb r0, [r5, #0x18]
- b _0221E4FA
-_0221E4B8:
- add r0, r6, #0
- add r1, sp, #0x28
- add r2, sp, #0x24
- bl MOD08_0221825C
- mov r0, #8
- ldrsb r0, [r4, r0]
- bl _fflt
- add r1, r0, #0
- ldr r0, [sp, #0x28]
- bl _fmul
- add r1, r0, #0
- ldr r0, [r5, #0x1c]
- ldr r2, [sp, #0x24]
- bl FUN_0200C884
- mov r0, #0
- str r0, [sp]
- mov r1, #2
- ldr r2, [r4, #4]
- ldrsh r1, [r4, r1]
- lsl r2, r2, #0x10
- ldr r0, [r5, #0x1c]
- ldr r3, [r5, #0x34]
- asr r2, r2, #0x10
- bl MOD08_02218314
- b _0221E4FA
-_0221E4F4:
- ldr r0, [sp, #0x10]
- add r0, r0, #1
- str r0, [sp, #0x10]
-_0221E4FA:
- ldr r0, [r5, #0x1c]
- bl FUN_0200C5A8
- ldr r0, [sp, #0x14]
- add r5, #0x2c
- add r0, r0, #1
- add r7, r7, #1
- add r6, #0x2c
- str r0, [sp, #0x14]
- cmp r0, #3
- blt _0221E46C
- ldr r0, [sp, #0x10]
- cmp r0, #3
- bge _0221E518
- b _0221E636
-_0221E518:
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4, #1]
- cmp r0, #3
- bhs _0221E56E
- mov r6, #0
- add r5, r4, #0
- add r7, r6, #0
-_0221E52A:
- add r1, sp, #0x18
- ldr r0, [r5, #0x1c]
- add r1, #2
- add r2, sp, #0x18
- bl FUN_0200C7A0
- add r2, sp, #0x18
- mov r1, #2
- ldrsh r1, [r2, r1]
- mov r2, #2
- ldrsh r2, [r4, r2]
- ldr r0, [r5, #0x1c]
- bl FUN_0200C714
- mov r0, #8
- ldrsb r0, [r4, r0]
- bl _fflt
- add r1, r0, #0
- mov r2, #0xfe
- ldr r0, [r5, #0x1c]
- lsl r2, r2, #0x16
- bl FUN_0200C884
- strb r7, [r5, #0x18]
- strb r7, [r5, #0x19]
- add r6, r6, #1
- add r5, #0x2c
- cmp r6, #3
- blt _0221E52A
- ldrb r0, [r4]
- sub r0, r0, #1
- strb r0, [r4]
- b _0221E636
-_0221E56E:
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221E636
-_0221E576:
- add r5, r4, #0
- mov r7, #0
- add r6, r4, #0
- add r5, #0x20
-_0221E57E:
- ldr r0, [r6, #0x1c]
- mov r1, #0
- bl FUN_0200C90C
- mov r0, #0x64
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #5
- mov r1, #5
- str r0, [sp, #8]
- add r0, r5, #0
- mov r2, #0x64
- add r3, r1, #0
- bl MOD08_022181A8
- add r7, r7, #1
- add r6, #0x2c
- add r5, #0x2c
- cmp r7, #3
- blt _0221E57E
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221E636
-_0221E5AE:
- mov r7, #0
- add r6, r4, #0
- str r7, [sp, #0xc]
- add r6, #0x20
- add r5, r4, #0
-_0221E5B8:
- add r0, r6, #0
- bl MOD08_02218224
- cmp r0, #0
- bne _0221E5C6
- add r7, r7, #1
- b _0221E600
-_0221E5C6:
- add r0, r6, #0
- add r1, sp, #0x20
- add r2, sp, #0x1c
- bl MOD08_0221825C
- mov r0, #8
- ldrsb r0, [r4, r0]
- bl _fflt
- add r1, r0, #0
- ldr r0, [sp, #0x20]
- bl _fmul
- add r1, r0, #0
- ldr r0, [r5, #0x1c]
- ldr r2, [sp, #0x1c]
- bl FUN_0200C884
- mov r0, #0
- str r0, [sp]
- mov r1, #2
- ldr r2, [r4, #4]
- ldrsh r1, [r4, r1]
- lsl r2, r2, #0x10
- ldr r0, [r5, #0x1c]
- ldr r3, [r5, #0x34]
- asr r2, r2, #0x10
- bl MOD08_02218314
-_0221E600:
- ldr r0, [sp, #0xc]
- add r6, #0x2c
- add r0, r0, #1
- add r5, #0x2c
- str r0, [sp, #0xc]
- cmp r0, #3
- blt _0221E5B8
- cmp r7, #3
- blt _0221E636
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221E636
-_0221E61A:
- ldr r0, [r4, #0xc]
- mov r1, #0xe
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #0x10]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
-_0221E636:
- ldr r0, [r4, #0x14]
- bl FUN_0200BC1C
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0221E640: .word 0x0222C52C
-
- thumb_func_start MOD08_0221E644
-MOD08_0221E644: ; 0x0221E644
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x9c
- str r0, [sp]
- bl MOD08_02228064
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4]
- strb r0, [r4, #1]
- ldr r0, [sp]
- str r0, [r4, #0x10]
- bl MOD08_02212504
- str r0, [r4, #0x14]
- ldr r0, [r4, #0x10]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0x10]
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #2]
- ldr r0, [r4, #0xc]
- mov r1, #0x29
- bl FUN_0200782C
- mov r1, #2
- ldrsh r1, [r4, r1]
- sub r0, r1, r0
- strh r0, [r4, #2]
- ldr r0, [r4, #0x10]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0x10]
- bl MOD08_0221552C
- mov r1, #0
- str r0, [r4, #4]
- mvn r1, r1
- ldr r0, [r4, #0x10]
- add r2, r1, #0
- bl MOD08_02227994
- mov r6, #0
- ldr r1, _0221E720 ; =0x0000060C
- ldr r0, _0221E724 ; =0x04000052
- add r5, r4, #0
- strh r1, [r0]
- add r7, r6, #0
-_0221E6B0:
- strb r7, [r5, #0x18]
- strb r7, [r5, #0x19]
- ldr r0, [r4, #0x10]
- add r1, r6, #0
- bl MOD08_022124D8
- str r0, [r5, #0x1c]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r5, #0x1c]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r5, #0x1c]
- add r1, r6, #1
- bl FUN_0200C6C4
- add r6, r6, #1
- add r5, #0x2c
- cmp r6, #3
- blt _0221E6B0
- ldr r0, [sp]
- mov r1, #0
- bl MOD08_02215680
- cmp r0, #1
- bne _0221E6EE
- mov r0, #0
- mvn r0, r0
- b _0221E6F0
-_0221E6EE:
- mov r0, #1
-_0221E6F0:
- strb r0, [r4, #8]
- mov r6, #0
- add r5, r4, #0
- mov r7, #8
-_0221E6F8:
- ldrsb r0, [r4, r7]
- bl _fflt
- add r1, r0, #0
- mov r2, #0xfe
- ldr r0, [r5, #0x1c]
- lsl r2, r2, #0x16
- bl FUN_0200C884
- add r6, r6, #1
- add r5, #0x2c
- cmp r6, #3
- blt _0221E6F8
- ldr r0, [r4, #0x10]
- ldr r1, _0221E728 ; =MOD08_0221E428
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221E720: .word 0x0000060C
-_0221E724: .word 0x04000052
-_0221E728: .word MOD08_0221E428
-
- thumb_func_start MOD08_0221E72C
-MOD08_0221E72C: ; 0x0221E72C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #3
- bls _0221E73C
- b _0221E866
-_0221E73C:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221E748: ; jump table
- .short _0221E750 - _0221E748 - 2 ; case 0
- .short _0221E782 - _0221E748 - 2 ; case 1
- .short _0221E796 - _0221E748 - 2 ; case 2
- .short _0221E7F2 - _0221E748 - 2 ; case 3
-_0221E750:
- ldr r0, [r4, #0xc]
- bl MOD08_02215504
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD08_02214540
- add r2, r0, #0
- mov r1, #0
- lsl r2, r2, #0x10
- str r1, [sp]
- mov r0, #0xa
- str r0, [sp, #4]
- str r1, [sp, #8]
- mov r1, #1
- add r0, r5, #0
- lsr r2, r2, #0x10
- add r3, r1, #0
- bl FUN_02003210
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, r7, pc}
-_0221E782:
- ldr r0, [r4, #0xc]
- bl MOD08_02215504
- bl FUN_020038E4
- cmp r0, #0
- bne _0221E874
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221E796:
- mov r0, #5
- str r0, [sp]
- ldrb r1, [r4, #1]
- add r0, r4, #0
- add r0, #0xb4
- lsl r2, r1, #1
- ldr r1, _0221E878 ; =0x0222C586
- ldrsh r1, [r1, r2]
- mov r2, #0
- add r3, r2, #0
- bl MOD08_022183C0
- ldrb r0, [r4, #2]
- cmp r0, #0
- ldr r0, [r4, #0xc]
- bne _0221E7C8
- bl MOD08_02215504
- mov r1, #0
- mov r2, #0xff
- mov r3, #0xa
- str r1, [sp]
- bl FUN_02003A64
- b _0221E7DA
-_0221E7C8:
- bl MOD08_02215504
- ldr r1, _0221E87C ; =0x00007FFF
- mov r2, #0xff
- str r1, [sp]
- mov r1, #0
- mov r3, #0xa
- bl FUN_02003A64
-_0221E7DA:
- mov r0, #3
- strb r0, [r4, #3]
- ldrb r1, [r4, #2]
- mov r0, #1
- eor r0, r1
- strb r0, [r4, #2]
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221E7F2:
- add r0, r4, #0
- add r0, #0xb4
- bl MOD08_022183F0
- cmp r0, #0
- bne _0221E810
- ldrb r0, [r4, #1]
- cmp r0, #8
- ldrb r0, [r4]
- blo _0221E80C
- add r0, r0, #1
- strb r0, [r4]
- b _0221E810
-_0221E80C:
- sub r0, r0, #1
- strb r0, [r4]
-_0221E810:
- ldrb r0, [r4, #3]
- cmp r0, #0
- beq _0221E832
- sub r0, r0, #1
- strb r0, [r4, #3]
- ldrb r0, [r4, #3]
- cmp r0, #0
- bne _0221E832
- ldr r0, [r4, #0xc]
- bl MOD08_02215504
- mov r1, #0
- mov r2, #0xff
- add r3, r1, #0
- str r1, [sp]
- bl FUN_02003A64
-_0221E832:
- mov r6, #0
- add r5, r4, #0
- mov r7, #0x14
-_0221E838:
- ldr r0, [r5, #0x1c]
- cmp r0, #0
- beq _0221E84C
- mov r2, #0xb4
- ldrsh r3, [r4, r2]
- ldrsh r2, [r5, r7]
- mov r1, #0
- add r2, r3, r2
- bl FUN_02007558
-_0221E84C:
- add r6, r6, #1
- add r5, #0x14
- cmp r6, #4
- blt _0221E838
- mov r3, #0xb4
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #8]
- mov r1, #3
- mov r2, #0
- bl FUN_020179E0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-_0221E866:
- ldr r0, [r4, #0xc]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221E874:
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0221E878: .word 0x0222C586
-_0221E87C: .word 0x00007FFF
-
- thumb_func_start MOD08_0221E880
-MOD08_0221E880: ; 0x0221E880
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0xd8
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4]
- strb r0, [r4, #1]
- str r5, [r4, #0xc]
- add r0, r5, #0
- bl MOD08_02212504
- str r0, [r4, #0x10]
- ldr r0, [r4, #0xc]
- bl MOD08_02212490
- str r0, [r4, #8]
- ldr r0, [r4, #0xc]
- bl MOD08_0221553C
- cmp r0, #1
- bne _0221E8B2
- mov r1, #0x40
- b _0221E8B4
-_0221E8B2:
- mov r1, #0xa
-_0221E8B4:
- add r2, r4, #0
- add r0, r5, #0
- add r2, #0x14
- add r3, r4, #4
- bl MOD08_02227BAC
- ldr r0, [r4, #4]
- mov r6, #0
- cmp r0, #0
- ble _0221E8EA
- add r5, r4, #0
- add r7, r6, #0
-_0221E8CC:
- ldr r0, [r5, #0x1c]
- add r1, r7, #0
- bl FUN_0200782C
- strh r0, [r5, #0x14]
- ldr r0, [r5, #0x1c]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r5, #0x16]
- ldr r0, [r4, #4]
- add r6, r6, #1
- add r5, #0x14
- cmp r6, r0
- blt _0221E8CC
-_0221E8EA:
- ldr r0, [r4, #0xc]
- ldr r1, _0221E8F8 ; =MOD08_0221E72C
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221E8F8: .word MOD08_0221E72C
-
- thumb_func_start MOD08_0221E8FC
-MOD08_0221E8FC: ; 0x0221E8FC
- push {r4, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- bne _0221E946
- add r0, r4, #0
- add r0, #0x40
- bl MOD08_02217ECC
- cmp r0, #0
- bne _0221E91A
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221E91A:
- add r0, r4, #0
- add r0, #0x1c
- bl MOD08_022183F0
- add r0, r4, #0
- add r0, #0x64
- bl MOD08_02218704
- mov r1, #0x40
- mov r2, #0x42
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x18]
- bl FUN_0200C714
- ldr r0, [r4, #0x18]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x10]
- bl FUN_0200BC1C
- pop {r4, pc}
-_0221E946:
- ldr r0, [r4, #0xc]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221E958
-MOD08_0221E958: ; 0x0221E958
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- mov r1, #0x8c
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4]
- strb r0, [r4, #1]
- str r5, [r4, #0xc]
- add r0, r5, #0
- bl MOD08_02212504
- str r0, [r4, #0x10]
- ldr r0, [r4, #0xc]
- bl MOD08_02212490
- str r0, [r4, #8]
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x18]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- cmp r0, #0
- ldr r0, [r4, #0xc]
- bne _0221E99C
- bl MOD08_02212460
- b _0221E9A0
-_0221E99C:
- bl MOD08_02212458
-_0221E9A0:
- add r6, r0, #0
- ldr r0, [r4, #0xc]
- add r1, r6, #0
- bl MOD08_022154D4
- str r0, [r4, #0x14]
- add r1, r4, #4
- bl MOD08_02227B2C
- ldr r0, [r4, #0x14]
- mov r1, #0x29
- bl FUN_0200782C
- mov r1, #6
- ldrsh r1, [r4, r1]
- sub r0, r1, r0
- strh r0, [r4, #6]
- ldr r0, [r4, #0xc]
- add r1, r6, #0
- bl MOD08_02217C1C
- add r7, r0, #0
- ldr r0, [r4, #0xc]
- add r1, r6, #0
- bl MOD08_02217C44
- add r6, r0, #0
- mov r0, #6
- ldrsh r3, [r4, r0]
- mov r0, #4
- ldrsh r1, [r4, r0]
- mov r2, #0x14
- add r0, r6, #0
- mul r0, r2
- add r0, r3, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- str r2, [sp, #4]
- sub r2, #0x28
- mul r2, r7
- add r2, r1, r2
- add r0, r4, #0
- lsl r2, r2, #0x10
- add r0, #0x40
- asr r2, r2, #0x10
- bl MOD08_02217E80
- add r0, r5, #0
- mov r1, #2
- bl MOD08_022155C4
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD08_022155C4
- mov r5, #1
- add r3, r5, #0
- lsl r3, r6
- add r1, r0, #0
- add r6, r3, #0
- mov r2, #0x20
- add r3, r5, #0
- orr r6, r2
- lsl r3, r1
- add r1, r6, #0
- orr r1, r3
- sub r2, #0x21
- ldr r0, [r4, #0xc]
- orr r1, r5
- add r3, r2, #0
- bl MOD08_022279D0
- mov r1, #0x1f
- mov r2, #0
- str r1, [sp]
- mov r0, #0xf
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x64
- add r3, r2, #0
- bl MOD08_022186D4
- ldr r0, [r4, #0x18]
- add r1, r5, #0
- bl FUN_0200C90C
- ldr r0, [r4, #0xc]
- ldr r1, _0221EA60 ; =MOD08_0221E8FC
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221EA60: .word MOD08_0221E8FC
-
- thumb_func_start MOD08_0221EA64
-MOD08_0221EA64: ; 0x0221EA64
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221EA76
- cmp r0, #1
- beq _0221EAB6
- b _0221EAE6
-_0221EA76:
- ldrb r0, [r4, #1]
- cmp r0, #0
- ldrb r0, [r4, #2]
- bne _0221EA88
- lsl r3, r0, #3
- ldr r0, _0221EB00 ; =0x0222C5B0
- ldr r2, [r0, r3]
- neg r1, r2
- b _0221EA90
-_0221EA88:
- lsl r3, r0, #3
- ldr r0, _0221EB00 ; =0x0222C5B0
- ldr r1, [r0, r3]
- neg r2, r1
-_0221EA90:
- ldr r5, _0221EB04 ; =0x0222C5B4
- add r0, r4, #0
- ldr r3, [r5, r3]
- add r0, #0x5c
- bl MOD08_02218008
- ldrb r0, [r4, #1]
- cmp r0, #1
- bne _0221EAA8
- ldrb r0, [r4, #2]
- add r0, r0, #1
- strb r0, [r4, #2]
-_0221EAA8:
- ldrb r1, [r4, #1]
- mov r0, #1
- eor r0, r1
- strb r0, [r4, #1]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221EAB6:
- add r0, r4, #0
- add r0, #0x5c
- bl MOD08_02218058
- cmp r0, #1
- bne _0221EAD2
- ldr r2, [r4, #0x5c]
- ldr r0, [r4, #0x28]
- lsl r2, r2, #0x10
- mov r1, #9
- lsr r2, r2, #0x10
- bl FUN_02007558
- pop {r3, r4, r5, pc}
-_0221EAD2:
- ldrb r0, [r4, #2]
- cmp r0, #5
- ldrb r0, [r4]
- blo _0221EAE0
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_0221EAE0:
- sub r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_0221EAE6:
- ldr r0, [r4, #0x28]
- mov r1, #9
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221EB00: .word 0x0222C5B0
-_0221EB04: .word 0x0222C5B4
-
- thumb_func_start MOD08_0221EB08
-MOD08_0221EB08: ; 0x0221EB08
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221EB1C
- cmp r0, #1
- beq _0221EB40
- b _0221EB6A
-_0221EB1C:
- mov r0, #0x22
- ldrsh r0, [r4, r0]
- mov r1, #0x1c
- mov r2, #0x1e
- str r0, [sp]
- mov r3, #0x20
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- add r0, #0x38
- bl MOD08_022183C0
- ldrb r0, [r4]
- add sp, #8
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, pc}
-_0221EB40:
- ldr r0, [r4, #0x2c]
- add r1, sp, #4
- bl MOD08_02227B2C
- add r0, r4, #0
- add r3, sp, #4
- mov r1, #0
- mov r2, #2
- ldrsh r1, [r3, r1]
- ldrsh r2, [r3, r2]
- ldr r3, [r4, #0x2c]
- add r0, #0x38
- bl MOD08_02218454
- cmp r0, #0
- bne _0221EB78
- ldrb r0, [r4]
- add sp, #8
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, pc}
-_0221EB6A:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221EB78:
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD08_0221EB7C
-MOD08_0221EB7C: ; 0x0221EB7C
- push {r4, r5, r6, lr}
- mov r1, #0x70
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #0x28]
- ldr r0, [r4, #4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #0x2c]
- ldr r0, [r4, #0x28]
- mov r1, #0xb
- mov r2, #0x64
- bl FUN_02007558
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- strh r0, [r4, #0x1c]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- strh r0, [r4, #0x1e]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- strh r0, [r4, #0x20]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- strh r0, [r4, #0x22]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- str r0, [r4, #0x24]
- cmp r6, #0
- ldr r0, [r4, #4]
- bne _0221EC06
- ldr r1, _0221EC10 ; =MOD08_0221EA64
- add r2, r4, #0
- bl MOD08_02212400
- pop {r4, r5, r6, pc}
-_0221EC06:
- ldr r1, _0221EC14 ; =MOD08_0221EB08
- add r2, r4, #0
- bl MOD08_02212400
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0221EC10: .word MOD08_0221EA64
-_0221EC14: .word MOD08_0221EB08
-
- thumb_func_start MOD08_0221EC18
-MOD08_0221EC18: ; 0x0221EC18
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r2, r0, #0
- ldrb r0, [r5]
- cmp r0, #0
- beq _0221EC2A
- cmp r0, #1
- beq _0221EC4C
- b _0221ECA0
-_0221EC2A:
- ldr r2, [r5, #0x48]
- mov r0, #0xa
- add r1, r2, #2
- str r0, [sp]
- add r0, r5, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- add r0, #0x4c
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- mov r3, #0
- bl MOD08_022183C0
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
- pop {r3, r4, r5, r6, r7, pc}
-_0221EC4C:
- add r0, r5, #0
- add r0, #0x4c
- bl MOD08_022183F0
- cmp r0, #0
- bne _0221EC60
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
- pop {r3, r4, r5, r6, r7, pc}
-_0221EC60:
- mov r6, #0
- add r4, r5, #0
- mov r7, #0x28
-_0221EC66:
- ldr r0, [r4, #0x38]
- cmp r0, #0
- beq _0221EC7A
- mov r2, #0x4c
- ldrsh r3, [r5, r2]
- ldrsh r2, [r4, r7]
- mov r1, #0
- add r2, r3, r2
- bl FUN_02007558
-_0221EC7A:
- add r6, r6, #1
- add r4, r4, #4
- cmp r6, #4
- blt _0221EC66
- mov r3, #0x4c
- ldrsh r3, [r5, r3]
- ldr r0, [r5, #0x14]
- mov r1, #3
- mov r2, #0
- bl FUN_020179E0
- mov r3, #0x4e
- mov r1, #3
- ldrsh r3, [r5, r3]
- ldr r0, [r5, #0x14]
- add r2, r1, #0
- bl FUN_020179E0
- pop {r3, r4, r5, r6, r7, pc}
-_0221ECA0:
- ldr r0, [r5, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0221ECB0
-MOD08_0221ECB0: ; 0x0221ECB0
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x70
- add r4, r0, #0
- bl MOD08_02228064
- add r7, r0, #0
- add r0, r4, #0
- add r1, r7, #0
- bl MOD08_02227B70
- ldr r0, [r7, #4]
- mov r1, #1
- bl MOD08_02212758
- cmp r0, #0x46
- bgt _0221ECE0
- bge _0221ED02
- cmp r0, #0x1e
- bgt _0221ECDA
- beq _0221ED0E
- b _0221ED14
-_0221ECDA:
- cmp r0, #0x32
- beq _0221ED08
- b _0221ED14
-_0221ECE0:
- cmp r0, #0x6e
- bgt _0221ECEC
- bge _0221ECF6
- cmp r0, #0x5a
- beq _0221ECFC
- b _0221ED14
-_0221ECEC:
- cmp r0, #0x96
- bne _0221ED14
- mov r0, #6
- str r0, [r7, #0x48]
- b _0221ED18
-_0221ECF6:
- mov r0, #5
- str r0, [r7, #0x48]
- b _0221ED18
-_0221ECFC:
- mov r0, #4
- str r0, [r7, #0x48]
- b _0221ED18
-_0221ED02:
- mov r0, #3
- str r0, [r7, #0x48]
- b _0221ED18
-_0221ED08:
- mov r0, #2
- str r0, [r7, #0x48]
- b _0221ED18
-_0221ED0E:
- mov r0, #1
- str r0, [r7, #0x48]
- b _0221ED18
-_0221ED14:
- mov r0, #0
- str r0, [r7, #0x48]
-_0221ED18:
- add r5, r7, #0
- mov r6, #0
- add r4, r7, #0
- add r5, #0x28
-_0221ED20:
- ldr r0, [r7, #4]
- add r1, r6, #0
- bl MOD08_022154D4
- str r0, [r4, #0x38]
- cmp r0, #0
- beq _0221ED34
- add r1, r5, #0
- bl MOD08_02227B2C
-_0221ED34:
- add r6, r6, #1
- add r4, r4, #4
- add r5, r5, #4
- cmp r6, #4
- blt _0221ED20
- ldr r0, [r7, #4]
- ldr r1, _0221ED4C ; =MOD08_0221EC18
- add r2, r7, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221ED4C: .word MOD08_0221EC18
-
- thumb_func_start MOD08_0221ED50
-MOD08_0221ED50: ; 0x0221ED50
- push {r3, r4, lr}
- sub sp, #4
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221ED64
- cmp r0, #1
- beq _0221ED92
- b _0221EE00
-_0221ED64:
- mov r0, #0xa
- str r0, [sp]
- add r0, r4, #0
- mov r2, #0
- add r0, #0x40
- mov r1, #0x14
- add r3, r2, #0
- bl MOD08_022183C0
- mov r0, #0xa
- str r0, [sp]
- add r0, r4, #0
- mov r2, #0
- add r0, #0x64
- mov r1, #2
- add r3, r2, #0
- bl MOD08_022183C0
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221ED92:
- add r0, r4, #0
- add r0, #0x40
- bl MOD08_022183F0
- cmp r0, #0
- bne _0221EDA6
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221EDF6
-_0221EDA6:
- mov r1, #0x2c
- ldrsh r2, [r4, r1]
- mov r1, #0x40
- ldrsh r1, [r4, r1]
- ldr r0, [r4, #0x38]
- add r1, r2, r1
- mov r2, #0x2e
- ldrsh r3, [r4, r2]
- mov r2, #0x42
- ldrsh r2, [r4, r2]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add r2, r3, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C714
- mov r1, #0x40
- ldrsh r2, [r4, r1]
- mov r1, #0x2c
- ldrsh r1, [r4, r1]
- ldr r0, [r4, #0x3c]
- sub r1, r2, r1
- mov r2, #0x2e
- ldrsh r3, [r4, r2]
- mov r2, #0x42
- ldrsh r2, [r4, r2]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add r2, r3, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C714
- ldr r0, [r4, #0x38]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x3c]
- bl FUN_0200C5A8
-_0221EDF6:
- ldr r0, [r4, #0xc]
- bl FUN_0200BC1C
- add sp, #4
- pop {r3, r4, pc}
-_0221EE00:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #4
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221EE14
-MOD08_0221EE14: ; 0x0221EE14
- push {r3, r4, r5, lr}
- mov r1, #0x88
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- ldr r0, [r4, #4]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x38]
- ldr r0, [r4, #4]
- mov r1, #1
- bl MOD08_022124D8
- str r0, [r4, #0x3c]
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #0x30]
- ldr r0, [r4, #4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #0x34]
- add r1, r4, #0
- ldr r0, [r4, #0x30]
- add r1, #0x28
- bl MOD08_02227B2C
- add r1, r4, #0
- ldr r0, [r4, #0x34]
- add r1, #0x2c
- bl MOD08_02227B2C
- ldr r0, [r4, #4]
- ldr r1, _0221EE7C ; =MOD08_0221ED50
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221EE7C: .word MOD08_0221ED50
-
- thumb_func_start MOD08_0221EE80
-MOD08_0221EE80: ; 0x0221EE80
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- ldr r2, [r4, #0x38]
- add r0, #0x8c
- add r1, #0xb0
- bl MOD08_02217FE4
- cmp r0, #0
- bne _0221EEAC
- ldr r0, [r4, #0x38]
- bl FUN_0200C3DC
- ldr r0, [r4, #0x14]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl MOD08_02228094
- pop {r3, r4, r5, pc}
-_0221EEAC:
- add r0, r4, #0
- add r0, #0xd4
- bl MOD08_02218058
- cmp r0, #1
- bne _0221EEC8
- add r1, r4, #0
- add r1, #0xd4
- ldr r1, [r1]
- ldr r0, [r4, #0x38]
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl FUN_0200C898
-_0221EEC8:
- ldr r0, [r4, #0x38]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x20]
- bl FUN_0200BC1C
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221EED8
-MOD08_0221EED8: ; 0x0221EED8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- mov r1, #0xe8
- add r6, r0, #0
- add r7, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r1, r4, #0
- add r0, r6, #0
- add r1, #0x10
- bl MOD08_02227B70
- add r0, r6, #0
- mov r1, #0
- bl MOD08_02212498
- strh r0, [r4, #0xc]
- add r0, r6, #0
- mov r1, #1
- bl MOD08_02212498
- strh r0, [r4, #0xe]
- add r0, r6, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [r4, #4]
- add r0, r6, #0
- mov r1, #3
- bl MOD08_02212498
- str r0, [r4, #8]
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_02217C1C
- add r5, r0, #0
- add r0, r7, #0
- mov r1, #2
- str r7, [r4, #0x38]
- bl FUN_0200C840
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022154D4
- str r0, [r4, #0x44]
- add r0, r6, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022154D4
- str r0, [r4, #0x58]
- add r1, r4, #0
- ldr r0, [r4, #0x44]
- add r1, #0x40
- bl MOD08_02227B2C
- add r1, r4, #0
- ldr r0, [r4, #0x58]
- add r1, #0x54
- bl MOD08_02227B2C
- mov r0, #0x42
- ldrsh r0, [r4, r0]
- mov r3, #0x54
- str r0, [sp]
- mov r0, #0x56
- ldrsh r2, [r4, r0]
- mov r0, #0xe
- ldrsh r0, [r4, r0]
- add r1, r0, #0
- mul r1, r5
- add r0, r2, r1
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #4]
- ldr r0, [r4, #4]
- add r1, r4, #0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r0, [r4, #8]
- mov r2, #0x40
- lsl r0, r0, #0xc
- str r0, [sp, #0xc]
- ldrsh r3, [r4, r3]
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- mov ip, r3
- mov r3, #0xc
- ldrsh r3, [r4, r3]
- add r0, #0x8c
- add r1, #0xb0
- add r7, r3, #0
- mul r7, r5
- mov r3, ip
- add r3, r3, r7
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- bl MOD08_02217F50
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_02215490
- cmp r0, #4
- bne _0221EFE0
- add r0, r6, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_02215490
- cmp r0, #2
- bne _0221EFE0
- mov r0, #0
- mvn r0, r0
- mul r5, r0
-_0221EFE0:
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_02215490
- cmp r0, #5
- bne _0221F00A
- add r0, r6, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_02215490
- cmp r0, #3
- bne _0221F00A
- mov r0, #0
- mvn r0, r0
- mul r5, r0
-_0221F00A:
- cmp r5, #0
- ldr r2, _0221F064 ; =0x00005C71
- ble _0221F022
- ldr r1, _0221F068 ; =0x00000E38
- add r0, r4, #0
- add r0, #0xd4
- mul r1, r5
- mul r2, r5
- mov r3, #0xa
- bl MOD08_02218008
- b _0221F032
-_0221F022:
- ldr r1, _0221F06C ; =0x00003FFF
- add r0, r4, #0
- add r0, #0xd4
- mul r1, r5
- mul r2, r5
- mov r3, #0xa
- bl MOD08_02218008
-_0221F032:
- add r1, r4, #0
- add r1, #0xd4
- ldr r1, [r1]
- ldr r0, [r4, #0x38]
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl FUN_0200C898
- add r0, r4, #0
- add r1, r4, #0
- ldr r2, [r4, #0x38]
- add r0, #0x8c
- add r1, #0xb0
- bl MOD08_02217FE4
- ldr r0, [r4, #0x38]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x14]
- ldr r1, _0221F070 ; =MOD08_0221EE80
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221F064: .word 0x00005C71
-_0221F068: .word 0x00000E38
-_0221F06C: .word 0x00003FFF
-_0221F070: .word MOD08_0221EE80
-
- thumb_func_start MOD08_0221F074
-MOD08_0221F074: ; 0x0221F074
- push {r4, r5, lr}
- sub sp, #0x1c
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0x18]
- cmp r0, #3
- bls _0221F084
- b _0221F1F0
-_0221F084:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221F090: ; jump table
- .short _0221F098 - _0221F090 - 2 ; case 0
- .short _0221F0C8 - _0221F090 - 2 ; case 1
- .short _0221F168 - _0221F090 - 2 ; case 2
- .short _0221F17A - _0221F090 - 2 ; case 3
-_0221F098:
- mov r0, #0x12
- ldrsh r2, [r4, r0]
- mov r0, #0x96
- mov r3, #0x3c
- str r0, [sp]
- mov r1, #0x64
- str r1, [sp, #4]
- mov r0, #0xc
- mul r1, r2
- mul r3, r2
- lsl r2, r3, #0x10
- str r0, [sp, #8]
- add r0, r4, #0
- lsl r1, r1, #0x10
- add r0, #0x9c
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- mov r3, #5
- bl MOD08_022181A8
- ldrb r0, [r4, #0x18]
- add r0, r0, #1
- strb r0, [r4, #0x18]
- b _0221F20E
-_0221F0C8:
- add r0, r4, #0
- add r0, #0x9c
- bl MOD08_02218224
- cmp r0, #0
- bne _0221F106
- mov r0, #0x12
- ldrsh r2, [r4, r0]
- mov r0, #0xa
- mov r1, #0x3c
- str r0, [sp]
- mov r0, #0x64
- str r0, [sp, #4]
- mov r0, #0xc
- mul r1, r2
- str r0, [sp, #8]
- add r0, r4, #0
- lsl r1, r1, #0x10
- mov r3, #0x96
- add r5, r2, #0
- mul r5, r3
- lsl r2, r5, #0x10
- add r0, #0x9c
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_022181A8
- ldrb r0, [r4, #0x18]
- add r0, r0, #1
- strb r0, [r4, #0x18]
- b _0221F20E
-_0221F106:
- add r0, r4, #0
- add r0, #0x9c
- add r1, sp, #0x18
- add r2, sp, #0x14
- bl MOD08_0221825C
- ldr r0, [r4, #0x40]
- ldr r1, [sp, #0x18]
- ldr r2, [sp, #0x14]
- bl FUN_0200C884
- mov r0, #0x16
- add r2, r4, #0
- add r2, #0xb0
- ldrsh r0, [r4, r0]
- ldr r2, [r2]
- mov r1, #0x10
- bl MOD08_0221828C
- mov r2, #0x16
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- mov r1, #0x14
- ldrsh r1, [r4, r1]
- add r2, r2, r3
- lsl r2, r2, #0x10
- ldr r0, [r4, #0x40]
- asr r2, r2, #0x10
- bl FUN_0200C714
- ldrb r1, [r4, #0xc]
- ldrb r0, [r4, #0x10]
- cmp r1, r0
- bhs _0221F14E
- add r0, r1, #1
- strb r0, [r4, #0xc]
-_0221F14E:
- ldrb r1, [r4, #0xd]
- ldrb r0, [r4, #0x11]
- cmp r1, r0
- bls _0221F15A
- sub r0, r1, #1
- strb r0, [r4, #0xd]
-_0221F15A:
- ldrb r0, [r4, #0xd]
- ldrb r1, [r4, #0xc]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221F220 ; =0x04000052
- strh r1, [r0]
- b _0221F20E
-_0221F168:
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- cmp r0, #4
- blt _0221F20E
- ldrb r0, [r4, #0x18]
- add r0, r0, #1
- strb r0, [r4, #0x18]
- b _0221F20E
-_0221F17A:
- add r0, r4, #0
- add r0, #0x9c
- bl MOD08_02218224
- cmp r0, #0
- bne _0221F18E
- ldrb r0, [r4, #0x18]
- add r0, r0, #1
- strb r0, [r4, #0x18]
- b _0221F20E
-_0221F18E:
- add r0, r4, #0
- add r0, #0x9c
- add r1, sp, #0x10
- add r2, sp, #0xc
- bl MOD08_0221825C
- ldr r0, [r4, #0x40]
- ldr r1, [sp, #0x10]
- ldr r2, [sp, #0xc]
- bl FUN_0200C884
- mov r0, #0x16
- add r2, r4, #0
- add r2, #0xb0
- ldrsh r0, [r4, r0]
- ldr r2, [r2]
- mov r1, #0x10
- bl MOD08_0221828C
- mov r2, #0x16
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- mov r1, #0x14
- ldrsh r1, [r4, r1]
- add r2, r2, r3
- lsl r2, r2, #0x10
- ldr r0, [r4, #0x40]
- asr r2, r2, #0x10
- bl FUN_0200C714
- ldrb r1, [r4, #0xc]
- ldrb r0, [r4, #0xe]
- cmp r1, r0
- bls _0221F1D6
- sub r0, r1, #1
- strb r0, [r4, #0xc]
-_0221F1D6:
- ldrb r1, [r4, #0xd]
- ldrb r0, [r4, #0xf]
- cmp r1, r0
- bhs _0221F1E2
- add r0, r1, #1
- strb r0, [r4, #0xd]
-_0221F1E2:
- ldrb r0, [r4, #0xd]
- ldrb r1, [r4, #0xc]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221F220 ; =0x04000052
- strh r1, [r0]
- b _0221F20E
-_0221F1F0:
- ldr r0, [r4, #0x44]
- bl FUN_0200C3DC
- ldr r0, [r4, #0x48]
- bl FUN_0200C3DC
- ldr r0, [r4, #0x1c]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl MOD08_02228094
- add sp, #0x1c
- pop {r4, r5, pc}
-_0221F20E:
- ldr r0, [r4, #0x40]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x28]
- bl FUN_0200BC1C
- add sp, #0x1c
- pop {r4, r5, pc}
- nop
-_0221F220: .word 0x04000052
-
- thumb_func_start MOD08_0221F224
-MOD08_0221F224: ; 0x0221F224
- push {r4, r5, lr}
- sub sp, #0x14
- mov r1, #0xd4
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r1, r4, #0
- add r0, r5, #0
- add r1, #0x18
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #0
- bl MOD08_022124B0
- str r0, [r4, #0x44]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_022124B0
- mov r1, #0
- str r0, [r4, #0x48]
- mvn r1, r1
- ldr r0, [r4, #0x1c]
- add r2, r1, #0
- bl MOD08_02227994
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- mov r1, #0
- strb r1, [r4, #0xc]
- mov r0, #0x1f
- strb r0, [r4, #0xd]
- strb r1, [r4, #0xe]
- strb r0, [r4, #0xf]
- strb r0, [r4, #0x10]
- mov r0, #4
- strb r0, [r4, #0x11]
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _0221F2B4
- ldr r0, [r4, #0x44]
- mov r1, #0
- str r0, [r4, #0x40]
- ldr r0, [r4, #0x48]
- bl FUN_0200C644
- ldr r0, [r4, #0x40]
- mov r1, #0
- bl FUN_0200C5C0
- mov r0, #0xb3
- strh r0, [r4, #0x14]
- mov r0, #0x78
- strh r0, [r4, #0x16]
- add r0, r5, #0
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r4, #0x40]
- add r1, r1, #1
- bl FUN_0200C6B0
- mov r0, #0
- mvn r0, r0
- strh r0, [r4, #0x12]
- b _0221F314
-_0221F2B4:
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227470
- cmp r0, #4
- bne _0221F2E4
- ldr r0, [r4, #0x48]
- mov r1, #0
- str r0, [r4, #0x40]
- ldr r0, [r4, #0x44]
- bl FUN_0200C644
- ldr r0, [r4, #0x40]
- mov r1, #1
- bl FUN_0200C5C0
- mov r0, #0x90
- strh r0, [r4, #0x14]
- mov r0, #0x40
- strh r0, [r4, #0x16]
- b _0221F310
-_0221F2E4:
- ldr r0, [r4, #0x44]
- mov r1, #0
- str r0, [r4, #0x40]
- ldr r0, [r4, #0x48]
- bl FUN_0200C644
- ldr r0, [r4, #0x40]
- mov r1, #0
- bl FUN_0200C5C0
- mov r0, #0x4c
- strh r0, [r4, #0x14]
- mov r0, #0x78
- strh r0, [r4, #0x16]
- add r0, r5, #0
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r4, #0x40]
- add r1, r1, #1
- bl FUN_0200C6B0
-_0221F310:
- mov r0, #1
- strh r0, [r4, #0x12]
-_0221F314:
- mov r1, #0x14
- mov r2, #0x16
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x40]
- bl FUN_0200C714
- ldr r0, [r4, #0x40]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r4, #0x40]
- mov r1, #1
- bl FUN_0200C90C
- mov r0, #0x12
- ldrsh r0, [r4, r0]
- mov r3, #0x64
- add r1, r0, #0
- mov r0, #5
- str r0, [sp]
- mul r1, r3
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- str r3, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x9c
- add r2, r1, #0
- bl MOD08_022181A8
- add r0, r4, #0
- add r0, #0x9c
- bl MOD08_02218224
- add r0, r4, #0
- add r0, #0x9c
- add r1, sp, #0x10
- add r2, sp, #0xc
- bl MOD08_0221825C
- ldr r0, [r4, #0x40]
- ldr r1, [sp, #0x10]
- ldr r2, [sp, #0xc]
- bl FUN_0200C884
- mov r0, #0x16
- add r2, r4, #0
- add r2, #0xb0
- ldrsh r0, [r4, r0]
- ldr r2, [r2]
- mov r1, #0x10
- bl MOD08_0221828C
- mov r2, #0x16
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- mov r1, #0x14
- ldrsh r1, [r4, r1]
- add r2, r2, r3
- lsl r2, r2, #0x10
- ldr r0, [r4, #0x40]
- asr r2, r2, #0x10
- bl FUN_0200C714
- ldr r0, [r4, #0x1c]
- ldr r1, _0221F3A8 ; =MOD08_0221F074
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x14
- pop {r4, r5, pc}
- nop
-_0221F3A8: .word MOD08_0221F074
-
- thumb_func_start MOD08_0221F3AC
-MOD08_0221F3AC: ; 0x0221F3AC
- push {r4, r5, r6, r7, lr}
- sub sp, #0x3c
- add r4, r1, #0
- str r0, [sp, #0x10]
- ldrb r0, [r4]
- cmp r0, #8
- bls _0221F3BC
- b _0221F710
-_0221F3BC:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221F3C8: ; jump table
- .short _0221F3DA - _0221F3C8 - 2 ; case 0
- .short _0221F412 - _0221F3C8 - 2 ; case 1
- .short _0221F46C - _0221F3C8 - 2 ; case 2
- .short _0221F486 - _0221F3C8 - 2 ; case 3
- .short _0221F4BA - _0221F3C8 - 2 ; case 4
- .short _0221F53E - _0221F3C8 - 2 ; case 5
- .short _0221F5D0 - _0221F3C8 - 2 ; case 6
- .short _0221F66E - _0221F3C8 - 2 ; case 7
- .short _0221F6B6 - _0221F3C8 - 2 ; case 8
-_0221F3DA:
- ldrb r1, [r4, #0xc]
- ldr r2, _0221F6F4 ; =0x0222C569
- ldr r5, _0221F6F8 ; =0x0222C56A
- lsl r0, r1, #2
- add r3, r1, r0
- ldr r0, _0221F6FC ; =0x0222C56B
- ldr r1, _0221F700 ; =0x0222C568
- ldrb r0, [r0, r3]
- ldrb r1, [r1, r3]
- ldrb r2, [r2, r3]
- str r0, [sp]
- mov r0, #0x64
- str r0, [sp, #4]
- ldr r0, _0221F704 ; =0x0222C56C
- ldrb r0, [r0, r3]
- ldrb r3, [r5, r3]
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0xcc
- bl MOD08_022181A8
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221F74A
-_0221F412:
- add r0, r4, #0
- add r0, #0xcc
- bl MOD08_02218224
- cmp r0, #1
- bne _0221F458
- mov r2, #0xcc
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0xce
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #0x20
- add r2, r4, #0
- add r2, #0xe0
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #0x24]
- ldr r2, [r2]
- bl MOD08_0221828C
- mov r2, #0x20
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- b _0221F74A
-_0221F458:
- ldrb r0, [r4, #0xc]
- cmp r0, #3
- ldrb r0, [r4]
- blo _0221F466
- add r0, r0, #1
- strb r0, [r4]
- b _0221F74A
-_0221F466:
- sub r0, r0, #1
- strb r0, [r4]
- b _0221F74A
-_0221F46C:
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4, #1]
- cmp r0, #0xf
- blo _0221F54A
- mov r0, #0
- strb r0, [r4, #1]
- strb r0, [r4, #0xc]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221F74A
-_0221F486:
- add r1, sp, #0x2c
- ldr r0, [r4, #0x30]
- add r1, #2
- add r2, sp, #0x2c
- bl FUN_0200C7A0
- add r1, sp, #0x14
- mov r0, #0x18
- ldrsh r0, [r1, r0]
- cmp r0, #0x68
- bgt _0221F4B2
- ldr r0, [r4, #0x30]
- mov r1, #0
- mov r2, #2
- bl FUN_0200C82C
- ldr r0, [r4, #0x7c]
- mov r1, #0
- mov r2, #2
- bl FUN_0200C82C
- b _0221F74A
-_0221F4B2:
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221F74A
-_0221F4BA:
- add r1, sp, #0x28
- ldr r0, [r4, #0x30]
- add r1, #2
- add r2, sp, #0x28
- bl FUN_0200C7A0
- add r1, sp, #0x14
- mov r0, #0x14
- ldrsh r0, [r1, r0]
- cmp r0, #0x68
- bgt _0221F4E6
- ldr r0, [r4, #0x30]
- mov r1, #0
- mov r2, #2
- bl FUN_0200C82C
- ldr r0, [r4, #0x7c]
- mov r1, #0
- mov r2, #2
- bl FUN_0200C82C
- b _0221F4F2
-_0221F4E6:
- ldr r0, _0221F708 ; =0x04000052
- mov r1, #0x10
- strh r1, [r0]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221F4F2:
- ldrb r0, [r4, #1]
- mov r1, #0x10
- add r2, r1, #0
- add r0, r0, #1
- strb r0, [r4, #1]
- add r0, r4, #4
- bl MOD08_02218A58
- mov r1, #0
- add r0, r4, #0
- add r2, r1, #0
- add r0, #8
- sub r2, #0x10
- bl MOD08_02218A58
- ldr r0, [r4, #8]
- ldr r1, [r4, #4]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221F708 ; =0x04000052
- strh r1, [r0]
- ldrb r0, [r4, #1]
- cmp r0, #0xa
- bne _0221F52C
- ldr r0, [r4, #0x30]
- mov r1, #0
- mov r2, #0x10
- bl FUN_0200C82C
-_0221F52C:
- ldrb r0, [r4, #1]
- cmp r0, #0xc
- bne _0221F54A
- ldr r0, [r4, #0x7c]
- mov r1, #0
- mov r2, #0x10
- bl FUN_0200C82C
- b _0221F74A
-_0221F53E:
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4, #1]
- cmp r0, #0xf
- bhs _0221F54C
-_0221F54A:
- b _0221F74A
-_0221F54C:
- mov r0, #0
- strb r0, [r4, #1]
- add r1, sp, #0x24
- ldr r0, [r4, #0x30]
- add r1, #2
- add r2, sp, #0x24
- bl FUN_0200C7A0
- add r1, sp, #0x20
- ldr r0, [r4, #0x7c]
- add r1, #2
- add r2, sp, #0x20
- bl FUN_0200C7A0
- add r0, r4, #0
- add r0, #0xc8
- str r0, [sp]
- add r0, r4, #0
- add r0, #0xca
- str r0, [sp, #4]
- add r3, sp, #0x14
- mov r0, #0x12
- mov r1, #0x10
- mov r2, #0xe
- mov r5, #0xc
- ldrsh r0, [r3, r0]
- ldrsh r1, [r3, r1]
- ldrsh r2, [r3, r2]
- ldrsh r3, [r3, r5]
- bl MOD08_022189D8
- add r0, r4, #0
- add r0, #0x2c
- str r0, [sp]
- mov r3, #0xca
- add r2, sp, #0x14
- mov r0, #0x12
- mov r1, #0x10
- ldrsh r0, [r2, r0]
- ldrsh r1, [r2, r1]
- mov r2, #0xc8
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- bl MOD08_022189F4
- add r0, r4, #0
- add r0, #0x28
- str r0, [sp]
- mov r3, #0xca
- add r2, sp, #0x14
- mov r0, #0x12
- mov r1, #0x10
- ldrsh r0, [r2, r0]
- ldrsh r1, [r2, r1]
- mov r2, #0xc8
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- bl MOD08_02218A1C
- mov r0, #0xa
- lsl r0, r0, #0xe
- str r0, [r4, #0x2c]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221F74A
-_0221F5D0:
- ldr r3, _0221F70C ; =0x0222C545
- add r2, sp, #0x30
- mov r1, #0xa
-_0221F5D6:
- ldrb r0, [r3]
- add r3, r3, #1
- strb r0, [r2]
- add r2, r2, #1
- sub r1, r1, #1
- bne _0221F5D6
- add r1, sp, #0x1c
- ldr r0, [r4, #0x30]
- add r1, #2
- add r2, sp, #0x1c
- bl FUN_0200C7A0
- add r1, sp, #0x18
- ldr r0, [r4, #0x7c]
- add r1, #2
- add r2, sp, #0x18
- bl FUN_0200C7A0
- add r3, sp, #0x14
- mov r0, #8
- ldrsh r0, [r3, r0]
- mov r2, #0xa
- str r0, [sp]
- mov r0, #4
- ldrsh r0, [r3, r0]
- str r0, [sp, #4]
- str r2, [sp, #8]
- ldrb r1, [r4, #0xc]
- ldr r0, [r4, #0x2c]
- lsl r5, r1, #1
- add r1, sp, #0x30
- ldrsb r1, [r1, r5]
- mov r5, #6
- mul r1, r0
- str r1, [sp, #0xc]
- ldrsh r2, [r3, r2]
- add r0, r4, #0
- add r1, r4, #0
- ldrsh r3, [r3, r5]
- add r0, #0x34
- add r1, #0x58
- bl MOD08_02217F50
- add r3, sp, #0x14
- mov r0, #4
- ldrsh r0, [r3, r0]
- mov r5, #0xa
- str r0, [sp]
- mov r0, #8
- ldrsh r0, [r3, r0]
- str r0, [sp, #4]
- str r5, [sp, #8]
- ldrb r1, [r4, #0xc]
- ldr r0, [r4, #0x2c]
- lsl r2, r1, #1
- add r1, sp, #0x30
- add r1, #1
- ldrsb r1, [r1, r2]
- mov r2, #6
- mul r1, r0
- str r1, [sp, #0xc]
- ldrsh r2, [r3, r2]
- add r0, r4, #0
- add r1, r4, #0
- ldrsh r3, [r3, r5]
- add r0, #0x80
- add r1, #0xa4
- bl MOD08_02217F50
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221F74A
-_0221F66E:
- add r0, r4, #0
- ldr r2, [r4, #0x30]
- add r0, #0x34
- add r1, #0x58
- mov r5, #0
- bl MOD08_02217FE4
- cmp r0, #0
- bne _0221F686
- add r0, r5, #1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
-_0221F686:
- add r0, r4, #0
- add r1, r4, #0
- ldr r2, [r4, #0x7c]
- add r0, #0x80
- add r1, #0xa4
- bl MOD08_02217FE4
- cmp r0, #0
- bne _0221F69E
- add r0, r5, #1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
-_0221F69E:
- cmp r5, #2
- bne _0221F74A
- ldrb r0, [r4, #0xc]
- cmp r0, #5
- ldrb r0, [r4]
- bne _0221F6B0
- add r0, r0, #1
- strb r0, [r4]
- b _0221F74A
-_0221F6B0:
- sub r0, r0, #1
- strb r0, [r4]
- b _0221F74A
-_0221F6B6:
- mov r5, #0
- add r0, r4, #4
- add r1, r5, #0
- sub r2, r5, #2
- bl MOD08_02218A58
- cmp r0, #1
- bne _0221F6C8
- add r5, r5, #1
-_0221F6C8:
- add r0, r4, #0
- add r0, #8
- mov r1, #0x10
- mov r2, #2
- bl MOD08_02218A58
- cmp r0, #1
- bne _0221F6DA
- add r5, r5, #1
-_0221F6DA:
- ldr r0, [r4, #8]
- ldr r1, [r4, #4]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221F708 ; =0x04000052
- cmp r5, #2
- strh r1, [r0]
- bne _0221F74A
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221F74A
- nop
-_0221F6F4: .word 0x0222C569
-_0221F6F8: .word 0x0222C56A
-_0221F6FC: .word 0x0222C56B
-_0221F700: .word 0x0222C568
-_0221F704: .word 0x0222C56C
-_0221F708: .word 0x04000052
-_0221F70C: .word 0x0222C545
-_0221F710:
- mov r6, #0
- ldr r0, [r4, #0x10]
- add r1, r6, #0
- bl MOD08_02212498
- cmp r0, #0
- ble _0221F738
- add r5, r4, #0
- add r7, r6, #0
-_0221F722:
- ldr r0, [r5, #0x30]
- bl FUN_0200C3DC
- ldr r0, [r4, #0x10]
- add r1, r7, #0
- add r5, #0x4c
- add r6, r6, #1
- bl MOD08_02212498
- cmp r6, r0
- blt _0221F722
-_0221F738:
- ldr r0, [r4, #0x10]
- ldr r1, [sp, #0x10]
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0x3c
- pop {r4, r5, r6, r7, pc}
-_0221F74A:
- mov r6, #0
- ldr r0, [r4, #0x10]
- add r1, r6, #0
- bl MOD08_02212498
- cmp r0, #0
- ble _0221F7B6
- add r5, r4, #0
- add r7, sp, #0x14
-_0221F75C:
- add r1, sp, #0x14
- ldr r0, [r5, #0x30]
- add r1, #2
- add r2, sp, #0x14
- bl FUN_0200C7A0
- mov r0, #0
- ldrsh r0, [r7, r0]
- cmp r0, #0x50
- bge _0221F780
- ldr r0, [r4, #0x10]
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r5, #0x30]
- bl FUN_0200C6B0
- b _0221F7A6
-_0221F780:
- mov r0, #2
- ldrsh r0, [r7, r0]
- cmp r0, #0x80
- ldr r0, [r4, #0x10]
- ble _0221F798
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r5, #0x30]
- bl FUN_0200C6B0
- b _0221F7A6
-_0221F798:
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r5, #0x30]
- add r1, r1, #1
- bl FUN_0200C6B0
-_0221F7A6:
- ldr r0, [r4, #0x10]
- mov r1, #0
- add r5, #0x4c
- add r6, r6, #1
- bl MOD08_02212498
- cmp r6, r0
- blt _0221F75C
-_0221F7B6:
- ldrb r0, [r4]
- cmp r0, #4
- blo _0221F7EA
- mov r5, #0
- ldr r0, [r4, #0x10]
- add r1, r5, #0
- bl MOD08_02212498
- cmp r0, #0
- ble _0221F7E4
- add r6, r4, #0
- add r7, r5, #0
-_0221F7CE:
- ldr r0, [r6, #0x30]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x10]
- add r1, r7, #0
- add r6, #0x4c
- add r5, r5, #1
- bl MOD08_02212498
- cmp r5, r0
- blt _0221F7CE
-_0221F7E4:
- ldr r0, [r4, #0x18]
- bl FUN_0200BC1C
-_0221F7EA:
- add sp, #0x3c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221F7F0
-MOD08_0221F7F0: ; 0x0221F7F0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- add r5, r1, #0
- mov r1, #0xf0
- str r0, [sp]
- add r6, r2, #0
- add r7, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- mov r1, #0
- strb r1, [r4]
- ldr r0, [sp]
- strb r1, [r4, #1]
- str r0, [r4, #0x10]
- str r6, [r4, #0x18]
- str r5, [r4, #0x14]
- str r1, [r4, #4]
- mov r0, #0x10
- str r0, [r4, #8]
- ldr r0, [r4, #0x10]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0x10]
- bl MOD08_022154D4
- str r0, [r4, #0x1c]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x20]
- ldr r0, [r4, #0x10]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0x10]
- bl MOD08_0221552C
- str r0, [r4, #0x24]
- ldr r0, [sp]
- mov r1, #2
- bl MOD08_022155C4
- add r5, r0, #0
- ldr r0, [sp]
- mov r1, #1
- bl MOD08_022155C4
- mov r2, #1
- add r1, r2, #0
- add r3, r0, #0
- lsl r1, r5
- add r5, r2, #0
- lsl r5, r3
- orr r1, r5
- orr r1, r2
- sub r2, r2, #2
- ldr r0, [r4, #0x10]
- add r3, r2, #0
- bl MOD08_022279D0
- ldr r0, [r4, #8]
- ldr r1, [r4, #4]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221F92C ; =0x04000052
- strh r1, [r0]
- ldr r1, [sp]
- add r0, sp, #4
- bl MOD08_02215474
- str r7, [r4, #0x30]
- ldr r0, [r4, #0x10]
- mov r1, #0
- mov r6, #1
- bl MOD08_02212498
- cmp r0, #1
- ble _0221F8B2
- add r5, r4, #0
- add r5, #0x4c
- add r7, sp, #4
-_0221F896:
- ldr r0, [r4, #0x14]
- ldr r1, [r4, #0x18]
- add r2, r7, #0
- bl FUN_0200C154
- str r0, [r5, #0x30]
- ldr r0, [r4, #0x10]
- mov r1, #0
- add r5, #0x4c
- add r6, r6, #1
- bl MOD08_02212498
- cmp r6, r0
- blt _0221F896
-_0221F8B2:
- mov r6, #0
- ldr r0, [r4, #0x10]
- add r1, r6, #0
- bl MOD08_02212498
- cmp r0, #0
- ble _0221F8EC
- add r5, r4, #0
- mov r7, #1
-_0221F8C4:
- ldr r0, [r5, #0x30]
- add r1, r7, #0
- bl FUN_0200C90C
- ldr r0, [r4, #0x10]
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r5, #0x30]
- add r1, r1, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x10]
- mov r1, #0
- add r5, #0x4c
- add r6, r6, #1
- bl MOD08_02212498
- cmp r6, r0
- blt _0221F8C4
-_0221F8EC:
- ldr r0, [sp]
- bl MOD08_02212004
- cmp r0, #1
- ldr r0, [r4, #0x30]
- bne _0221F90C
- mov r1, #0xa0
- mov r2, #0x2c
- bl FUN_0200C714
- ldr r0, [r4, #0x7c]
- mov r1, #0x50
- mov r2, #0x1d
- bl FUN_0200C714
- b _0221F91E
-_0221F90C:
- mov r1, #0x64
- mov r2, #0x2c
- bl FUN_0200C714
- ldr r0, [r4, #0x7c]
- mov r1, #0xb4
- mov r2, #0x1d
- bl FUN_0200C714
-_0221F91E:
- ldr r0, [r4, #0x10]
- ldr r1, _0221F930 ; =MOD08_0221F3AC
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221F92C: .word 0x04000052
-_0221F930: .word MOD08_0221F3AC
-
- thumb_func_start MOD08_0221F934
-MOD08_0221F934: ; 0x0221F934
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r7, r0, #0
- ldrb r0, [r5]
- cmp r0, #0
- beq _0221F946
- cmp r0, #1
- beq _0221F9BA
- b _0221F9EE
-_0221F946:
- ldrb r0, [r5, #6]
- cmp r0, #0xf
- bhs _0221F950
- add r0, r0, #1
- strb r0, [r5, #6]
-_0221F950:
- ldrb r0, [r5, #7]
- cmp r0, #0
- beq _0221F95A
- sub r0, r0, #1
- strb r0, [r5, #7]
-_0221F95A:
- ldrb r0, [r5, #7]
- ldrb r1, [r5, #6]
- mov r6, #0
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221FA3C ; =0x04000052
- strh r1, [r0]
- ldrb r0, [r5, #4]
- add r0, r0, #1
- strb r0, [r5, #4]
- ldrb r0, [r5, #5]
- cmp r0, #0
- ble _0221F9AC
- ldr r4, _0221FA40 ; =0x0222C5DC
- add r7, r5, #0
-_0221F978:
- add r1, sp, #0
- ldr r0, [r7, #0x14]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- ldrb r1, [r5, #4]
- ldrb r0, [r4]
- cmp r1, r0
- blo _0221F9A0
- add r0, r5, r6
- ldrb r1, [r0, #1]
- add r1, r1, #1
- strb r1, [r0, #1]
- ldrb r2, [r0, #1]
- ldrb r1, [r4, #1]
- cmp r2, r1
- blo _0221F9A0
- mov r1, #0
- strb r1, [r0, #1]
-_0221F9A0:
- ldrb r0, [r5, #5]
- add r6, r6, #1
- add r7, r7, #4
- add r4, r4, #2
- cmp r6, r0
- blt _0221F978
-_0221F9AC:
- ldrb r0, [r5, #4]
- cmp r0, #0x2d
- blo _0221FA18
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
- b _0221FA18
-_0221F9BA:
- ldrb r0, [r5, #6]
- cmp r0, #0
- beq _0221F9C4
- sub r0, r0, #1
- strb r0, [r5, #6]
-_0221F9C4:
- ldrb r0, [r5, #7]
- cmp r0, #0xf
- bhs _0221F9CE
- add r0, r0, #1
- strb r0, [r5, #7]
-_0221F9CE:
- ldrb r0, [r5, #6]
- cmp r0, #0
- bne _0221F9E0
- ldrb r0, [r5, #7]
- cmp r0, #0xf
- bne _0221F9E0
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
-_0221F9E0:
- ldrb r0, [r5, #7]
- ldrb r1, [r5, #6]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221FA3C ; =0x04000052
- strh r1, [r0]
- b _0221FA18
-_0221F9EE:
- ldrb r0, [r5, #5]
- mov r6, #0
- cmp r0, #0
- ble _0221FA08
- add r4, r5, #0
-_0221F9F8:
- ldr r0, [r4, #0x14]
- bl FUN_0200C3DC
- ldrb r0, [r5, #5]
- add r6, r6, #1
- add r4, r4, #4
- cmp r6, r0
- blt _0221F9F8
-_0221FA08:
- ldr r0, [r5, #8]
- add r1, r7, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_0221FA18:
- ldrb r0, [r5, #5]
- mov r6, #0
- cmp r0, #0
- ble _0221FA34
- add r4, r5, #0
-_0221FA22:
- ldr r0, [r4, #0x14]
- ldr r0, [r0]
- bl FUN_0200C59C
- ldrb r0, [r5, #5]
- add r6, r6, #1
- add r4, r4, #4
- cmp r6, r0
- blt _0221FA22
-_0221FA34:
- ldr r0, [r5, #0x10]
- bl FUN_0200BC1C
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221FA3C: .word 0x04000052
-_0221FA40: .word 0x0222C5DC
-
- thumb_func_start MOD08_0221FA44
-MOD08_0221FA44: ; 0x0221FA44
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- add r7, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- str r3, [sp]
- bl MOD08_02212014
- mov r1, #0x44
- bl AllocFromHeap
- add r4, r0, #0
- bne _0221FA62
- bl ErrorHandling
-_0221FA62:
- mov r0, #0
- strb r0, [r4, #4]
- strb r0, [r4]
- str r5, [r4, #0xc]
- str r6, [r4, #0x10]
- add r0, sp, #4
- add r1, r7, #0
- str r7, [r4, #8]
- bl MOD08_02215474
- mov r1, #0
- mvn r1, r1
- ldr r0, [r4, #8]
- add r2, r1, #0
- bl MOD08_02227994
- ldr r0, [r4, #8]
- mov r1, #0
- bl MOD08_02212498
- strb r0, [r4, #5]
- mov r0, #0
- strb r0, [r4, #6]
- mov r0, #0xf
- strb r0, [r4, #7]
- ldrb r0, [r4, #7]
- ldrb r1, [r4, #6]
- mov r6, #1
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221FBA8 ; =0x04000052
- strh r1, [r0]
- ldr r0, [sp]
- str r0, [r4, #0x14]
- ldrb r0, [r4, #5]
- cmp r0, #1
- ble _0221FAC4
- add r5, r4, #4
-_0221FAAE:
- ldr r0, [r4, #0xc]
- ldr r1, [r4, #0x10]
- add r2, sp, #4
- bl FUN_0200C154
- str r0, [r5, #0x14]
- ldrb r0, [r4, #5]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, r0
- blt _0221FAAE
-_0221FAC4:
- add r0, r7, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r7, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _0221FB18
- add r0, r7, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r7, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _0221FB04
- add r0, r7, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r7, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _0221FB04
- ldr r0, [r4, #0x14]
- mov r1, #0
- bl FUN_0200C5C0
- b _0221FB0C
-_0221FB04:
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_0200C5C0
-_0221FB0C:
- ldr r0, [r4, #0x14]
- mov r1, #0x80
- mov r2, #0x50
- bl FUN_0200C714
- b _0221FB58
-_0221FB18:
- add r0, r7, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r7, #0
- bl MOD08_02227470
- cmp r0, #4
- bne _0221FB46
- add r0, r7, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r7, #0
- bl MOD08_02227470
- cmp r0, #4
- bne _0221FB46
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_0200C5C0
- b _0221FB4E
-_0221FB46:
- ldr r0, [r4, #0x14]
- mov r1, #0
- bl FUN_0200C5C0
-_0221FB4E:
- ldr r0, [r4, #0x14]
- mov r1, #0x80
- mov r2, #0x50
- bl FUN_0200C714
-_0221FB58:
- ldrb r0, [r4, #5]
- mov r6, #0
- cmp r0, #0
- ble _0221FB98
- add r5, r4, #0
-_0221FB62:
- add r1, r4, r6
- mov r0, #0
- strb r0, [r1, #1]
- ldr r0, [r5, #0x14]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r5, #0x14]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #8]
- bl MOD08_02212004
- cmp r0, #1
- bne _0221FB8E
- mov r2, #0xfe
- ldr r0, [r5, #0x14]
- ldr r1, _0221FBAC ; =0xBF800000
- lsl r2, r2, #0x16
- bl FUN_0200C884
-_0221FB8E:
- ldrb r0, [r4, #5]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, r0
- blt _0221FB62
-_0221FB98:
- ldr r1, _0221FBB0 ; =MOD08_0221F934
- ldr r3, _0221FBB4 ; =0x0000044C
- add r0, r7, #0
- add r2, r4, #0
- bl MOD08_022123E4
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221FBA8: .word 0x04000052
-_0221FBAC: .word 0xBF800000
-_0221FBB0: .word MOD08_0221F934
-_0221FBB4: .word 0x0000044C
-
- thumb_func_start MOD08_0221FBB8
-MOD08_0221FBB8: ; 0x0221FBB8
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r7, r0, #0
- ldrb r0, [r4]
- mov r6, #0
- cmp r0, #3
- bls _0221FBCA
- b _0221FD70
-_0221FBCA:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221FBD6: ; jump table
- .short _0221FBDE - _0221FBD6 - 2 ; case 0
- .short _0221FC12 - _0221FBD6 - 2 ; case 1
- .short _0221FCEA - _0221FBD6 - 2 ; case 2
- .short _0221FD36 - _0221FBD6 - 2 ; case 3
-_0221FBDE:
- ldrb r0, [r4, #9]
- cmp r0, #0xf
- bhs _0221FBE8
- add r0, r0, #1
- strb r0, [r4, #9]
-_0221FBE8:
- ldrb r0, [r4, #0xa]
- cmp r0, #0
- beq _0221FBF2
- sub r0, r0, #1
- strb r0, [r4, #0xa]
-_0221FBF2:
- ldrb r0, [r4, #9]
- cmp r0, #0xf
- bne _0221FC04
- ldrb r0, [r4, #0xa]
- cmp r0, #0
- bne _0221FC04
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221FC04:
- ldrb r0, [r4, #0xa]
- ldrb r1, [r4, #9]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221FDCC ; =0x04000052
- strh r1, [r0]
- b _0221FD9C
-_0221FC12:
- ldr r0, [r4, #0x30]
- cmp r0, #3
- bhi _0221FC78
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221FC24: ; jump table
- .short _0221FC2C - _0221FC24 - 2 ; case 0
- .short _0221FC46 - _0221FC24 - 2 ; case 1
- .short _0221FC60 - _0221FC24 - 2 ; case 2
- .short _0221FC60 - _0221FC24 - 2 ; case 3
-_0221FC2C:
- ldr r0, [r4, #0x18]
- mov r1, #1
- str r0, [r4, #0x34]
- ldr r0, [r4, #0x24]
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x34]
- bl FUN_0200C644
- ldr r0, [r4, #0x38]
- mov r1, #1
- bl FUN_0200C644
- b _0221FC78
-_0221FC46:
- ldr r0, [r4, #0x1c]
- mov r1, #1
- str r0, [r4, #0x34]
- ldr r0, [r4, #0x20]
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x34]
- bl FUN_0200C644
- ldr r0, [r4, #0x38]
- mov r1, #1
- bl FUN_0200C644
- b _0221FC78
-_0221FC60:
- ldr r0, [r4, #0x28]
- mov r1, #1
- str r0, [r4, #0x34]
- ldr r0, [r4, #0x2c]
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x34]
- bl FUN_0200C644
- ldr r0, [r4, #0x38]
- mov r1, #1
- bl FUN_0200C644
-_0221FC78:
- add r1, sp, #8
- ldr r0, [r4, #0x34]
- add r1, #2
- add r2, sp, #8
- bl FUN_0200C7A0
- ldr r1, [r4, #0x30]
- ldr r0, _0221FDD0 ; =0x0222C614
- lsl r2, r1, #3
- ldrsh r0, [r0, r2]
- ldr r5, _0221FDD4 ; =0x0222C612
- add r3, sp, #8
- str r0, [sp]
- ldr r0, _0221FDD8 ; =0x0222C5D8
- ldrsh r2, [r5, r2]
- ldrb r0, [r0, r1]
- mov r1, #2
- mov r5, #0
- str r0, [sp, #4]
- ldrsh r1, [r3, r1]
- add r0, r4, #0
- ldrsh r3, [r3, r5]
- add r0, #0x3c
- bl MOD08_02217E80
- add r1, sp, #8
- ldr r0, [r4, #0x38]
- add r1, #2
- add r2, sp, #8
- bl FUN_0200C7A0
- ldr r1, [r4, #0x30]
- ldr r0, _0221FDDC ; =0x0222C618
- lsl r2, r1, #3
- ldrsh r0, [r0, r2]
- ldr r5, _0221FDE0 ; =0x0222C616
- add r3, sp, #8
- str r0, [sp]
- ldr r0, _0221FDD8 ; =0x0222C5D8
- ldrsh r2, [r5, r2]
- ldrb r0, [r0, r1]
- mov r1, #2
- mov r5, #0
- str r0, [sp, #4]
- ldrsh r1, [r3, r1]
- add r0, r4, #0
- ldrsh r3, [r3, r5]
- add r0, #0x60
- bl MOD08_02217E80
- ldr r0, [r4, #0x30]
- add r0, r0, #1
- str r0, [r4, #0x30]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221FD9C
-_0221FCEA:
- add r0, r4, #0
- ldr r1, [r4, #0x34]
- add r0, #0x3c
- add r5, r6, #0
- bl MOD08_02217F08
- cmp r0, #0
- bne _0221FCFC
- add r5, r5, #1
-_0221FCFC:
- add r0, r4, #0
- ldr r1, [r4, #0x38]
- add r0, #0x60
- bl MOD08_02217F08
- cmp r0, #0
- bne _0221FD0C
- add r5, r5, #1
-_0221FD0C:
- cmp r5, #2
- blt _0221FD9C
- ldr r0, [r4, #0x30]
- cmp r0, #3
- bgt _0221FD2E
- ldr r0, [r4, #0x34]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x38]
- mov r1, #0
- bl FUN_0200C644
- ldrb r0, [r4]
- sub r0, r0, #1
- strb r0, [r4]
- b _0221FD9C
-_0221FD2E:
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221FD9C
-_0221FD36:
- ldrb r0, [r4, #9]
- cmp r0, #0
- beq _0221FD40
- sub r0, r0, #1
- strb r0, [r4, #9]
-_0221FD40:
- ldrb r0, [r4, #0xa]
- cmp r0, #0xf
- bhs _0221FD4A
- add r0, r0, #1
- strb r0, [r4, #0xa]
-_0221FD4A:
- ldrb r1, [r4, #0xa]
- cmp r1, #7
- blo _0221FD52
- mov r6, #1
-_0221FD52:
- ldrb r0, [r4, #9]
- cmp r0, #0
- bne _0221FD62
- cmp r1, #0xf
- bne _0221FD62
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221FD62:
- ldrb r0, [r4, #0xa]
- ldrb r1, [r4, #9]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221FDCC ; =0x04000052
- strh r1, [r0]
- b _0221FD9C
-_0221FD70:
- ldrb r0, [r4, #8]
- mov r6, #0
- cmp r0, #0
- ble _0221FD8A
- add r5, r4, #0
-_0221FD7A:
- ldr r0, [r5, #0x18]
- bl FUN_0200C3DC
- ldrb r0, [r4, #8]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, r0
- blt _0221FD7A
-_0221FD8A:
- ldr r0, [r4, #0xc]
- add r1, r7, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-_0221FD9C:
- ldrb r0, [r4]
- cmp r0, #3
- bhs _0221FDC2
- cmp r6, #0
- bne _0221FDC2
- ldrb r0, [r4, #8]
- mov r6, #0
- cmp r0, #0
- ble _0221FDC2
- add r5, r4, #0
-_0221FDB0:
- ldr r0, [r5, #0x18]
- ldr r0, [r0]
- bl FUN_0200C59C
- ldrb r0, [r4, #8]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, r0
- blt _0221FDB0
-_0221FDC2:
- ldr r0, [r4, #0x14]
- bl FUN_0200BC1C
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0221FDCC: .word 0x04000052
-_0221FDD0: .word 0x0222C614
-_0221FDD4: .word 0x0222C612
-_0221FDD8: .word 0x0222C5D8
-_0221FDDC: .word 0x0222C618
-_0221FDE0: .word 0x0222C616
-
- thumb_func_start MOD08_0221FDE4
-MOD08_0221FDE4: ; 0x0221FDE4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- str r0, [sp]
- add r5, r1, #0
- add r6, r2, #0
- add r7, r3, #0
- bl MOD08_02212014
- mov r1, #0x84
- bl AllocFromHeap
- add r4, r0, #0
- bne _0221FE02
- bl ErrorHandling
-_0221FE02:
- mov r0, #0
- strb r0, [r4, #7]
- strb r0, [r4]
- str r5, [r4, #0x10]
- str r6, [r4, #0x14]
- str r0, [r4, #0x30]
- ldr r0, [sp]
- ldr r1, [sp]
- str r0, [r4, #0xc]
- add r0, sp, #4
- bl MOD08_02215474
- mov r1, #0
- mvn r1, r1
- ldr r0, [r4, #0xc]
- add r2, r1, #0
- bl MOD08_02227994
- mov r1, #0
- strb r1, [r4, #9]
- mov r0, #0xf
- strb r0, [r4, #0xa]
- ldrb r0, [r4, #0xa]
- ldrb r2, [r4, #9]
- lsl r0, r0, #8
- orr r2, r0
- ldr r0, _0221FF0C ; =0x04000052
- strh r2, [r0]
- ldr r0, [r4, #0xc]
- bl MOD08_02212498
- strb r0, [r4, #8]
- str r7, [r4, #0x18]
- ldrb r0, [r4, #8]
- mov r6, #1
- cmp r0, #1
- ble _0221FE66
- add r5, r4, #4
- add r7, sp, #4
-_0221FE50:
- ldr r0, [r4, #0x10]
- ldr r1, [r4, #0x14]
- add r2, r7, #0
- bl FUN_0200C154
- str r0, [r5, #0x18]
- ldrb r0, [r4, #8]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, r0
- blt _0221FE50
-_0221FE66:
- ldr r0, [r4, #0x18]
- mov r1, #0
- bl FUN_0200C5C0
- ldr r0, [r4, #0x1c]
- mov r1, #0
- bl FUN_0200C5C0
- ldr r0, [r4, #0x20]
- mov r1, #1
- bl FUN_0200C5C0
- ldr r0, [r4, #0x24]
- mov r1, #1
- bl FUN_0200C5C0
- ldr r0, [r4, #0x28]
- mov r1, #2
- bl FUN_0200C5C0
- ldr r0, [r4, #0x2c]
- mov r1, #3
- bl FUN_0200C5C0
- ldr r0, [r4, #0x18]
- mov r1, #1
- bl FUN_0200C8D0
- ldr r0, [r4, #0x24]
- mov r1, #1
- bl FUN_0200C8D0
- ldrb r0, [r4, #8]
- mov r7, #0
- cmp r0, #0
- ble _0221FEDC
- ldr r6, _0221FF10 ; =0x0222C5FA
- add r5, r4, #0
-_0221FEB2:
- ldr r0, [r5, #0x18]
- mov r1, #1
- bl FUN_0200C5E0
- mov r1, #0
- mov r2, #2
- ldrsh r1, [r6, r1]
- ldrsh r2, [r6, r2]
- ldr r0, [r5, #0x18]
- bl FUN_0200C714
- ldr r0, [r5, #0x18]
- mov r1, #1
- bl FUN_0200C90C
- ldrb r0, [r4, #8]
- add r7, r7, #1
- add r5, r5, #4
- add r6, r6, #4
- cmp r7, r0
- blt _0221FEB2
-_0221FEDC:
- ldr r0, [r4, #0x1c]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x20]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x28]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x2c]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [sp]
- ldr r1, _0221FF14 ; =MOD08_0221FBB8
- ldr r3, _0221FF18 ; =0x0000044C
- add r2, r4, #0
- bl MOD08_022123E4
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221FF0C: .word 0x04000052
-_0221FF10: .word 0x0222C5FA
-_0221FF14: .word MOD08_0221FBB8
-_0221FF18: .word 0x0000044C
-
- thumb_func_start MOD08_0221FF1C
-MOD08_0221FF1C: ; 0x0221FF1C
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0xc]
- cmp r0, #7
- bls _0221FF2C
- b _02220084
-_0221FF2C:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221FF38: ; jump table
- .short _0221FF48 - _0221FF38 - 2 ; case 0
- .short _0221FF5C - _0221FF38 - 2 ; case 1
- .short _0221FF7E - _0221FF38 - 2 ; case 2
- .short _0221FFAC - _0221FF38 - 2 ; case 3
- .short _0221FFDA - _0221FF38 - 2 ; case 4
- .short _0221FFF8 - _0221FF38 - 2 ; case 5
- .short _02220020 - _0221FF38 - 2 ; case 6
- .short _02220068 - _0221FF38 - 2 ; case 7
-_0221FF48:
- ldrb r0, [r4, #0xe]
- sub r0, r0, #1
- strb r0, [r4, #0xe]
- ldrb r0, [r4, #0xe]
- cmp r0, #0xa
- bhi _0221FF68
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
- b _02220092
-_0221FF5C:
- ldrb r0, [r4, #0xd]
- add r0, r0, #1
- strb r0, [r4, #0xd]
- ldrb r0, [r4, #0xd]
- cmp r0, #3
- bhs _0221FF6A
-_0221FF68:
- b _02220092
-_0221FF6A:
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C644
- mov r0, #0
- strb r0, [r4, #0xd]
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
- b _02220092
-_0221FF7E:
- ldrb r0, [r4, #0xd]
- add r0, r0, #1
- strb r0, [r4, #0xd]
- ldrb r0, [r4, #0xd]
- cmp r0, #3
- bhi _0221FFA0
- ldr r0, [r4, #0x38]
- ldr r1, _0222009C ; =0x3DCCCCCD
- bl _fadd
- str r0, [r4, #0x38]
- ldr r1, [r4, #0x38]
- ldr r0, [r4, #0x10]
- add r2, r1, #0
- bl FUN_0200C884
- b _02220092
-_0221FFA0:
- mov r0, #0
- strb r0, [r4, #0xd]
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
- b _02220092
-_0221FFAC:
- ldrb r0, [r4, #0xd]
- add r0, r0, #1
- strb r0, [r4, #0xd]
- ldrb r0, [r4, #0xd]
- cmp r0, #3
- bhi _0221FFCE
- ldr r0, [r4, #0x38]
- ldr r1, _0222009C ; =0x3DCCCCCD
- bl _fsub
- str r0, [r4, #0x38]
- ldr r1, [r4, #0x38]
- ldr r0, [r4, #0x10]
- add r2, r1, #0
- bl FUN_0200C884
- b _02220092
-_0221FFCE:
- mov r0, #0
- strb r0, [r4, #0xd]
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
- b _02220092
-_0221FFDA:
- ldrb r0, [r4, #0xe]
- sub r0, r0, #1
- strb r0, [r4, #0xe]
- ldrb r0, [r4, #0xe]
- cmp r0, #0xa
- bhi _02220092
- ldr r0, [r4, #0x3c]
- mov r1, #1
- str r1, [r0]
- mov r0, #0
- strb r0, [r4, #0xd]
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
- b _02220092
-_0221FFF8:
- ldrb r0, [r4, #0xd]
- add r0, r0, #1
- strb r0, [r4, #0xd]
- ldrb r0, [r4, #0xd]
- cmp r0, #0x1e
- bls _02220010
- mov r0, #0
- strb r0, [r4, #0xd]
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
- b _02220092
-_02220010:
- ldr r0, [r4, #0x3c]
- ldr r0, [r0]
- cmp r0, #2
- bne _02220092
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
- b _02220092
-_02220020:
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- add r5, r1, #0
- add r2, sp, #8
- ldr r0, [r4, #0x10]
- add r1, sp, #8
- add r2, #2
- add r5, #0xa
- bl FUN_0200C7A0
- ldrb r0, [r4, #0xf]
- add r3, sp, #8
- mov r1, #0
- lsl r2, r0, #2
- ldr r0, _022200A0 ; =0x0222C5E4
- ldrsh r0, [r0, r2]
- str r0, [sp]
- lsl r0, r5, #0x10
- ldr r5, _022200A4 ; =0x0222C5E2
- lsr r0, r0, #0x10
- str r0, [sp, #4]
- ldrsh r2, [r5, r2]
- add r0, r4, #0
- mov r5, #2
- ldrsh r1, [r3, r1]
- ldrsh r3, [r3, r5]
- add r0, #0x14
- bl MOD08_02217E80
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
- b _02220092
-_02220068:
- add r0, r4, #0
- ldr r1, [r4, #0x10]
- add r0, #0x14
- bl MOD08_02217F08
- cmp r0, #0
- bne _02220092
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200C644
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
-_02220084:
- ldr r0, [r4, #0x3c]
- mov r1, #3
- str r1, [r0]
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
-_02220092:
- ldr r0, [r4, #0x10]
- bl FUN_0200C5A8
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-_0222009C: .word 0x3DCCCCCD
-_022200A0: .word 0x0222C5E4
-_022200A4: .word 0x0222C5E2
-
- thumb_func_start MOD08_022200A8
-MOD08_022200A8: ; 0x022200A8
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #3
- bhi _02220164
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022200C0: ; jump table
- .short _022200C8 - _022200C0 - 2 ; case 0
- .short _022200F4 - _022200C0 - 2 ; case 1
- .short _02220116 - _022200C0 - 2 ; case 2
- .short _02220142 - _022200C0 - 2 ; case 3
-_022200C8:
- ldrb r6, [r4, #2]
- mov r3, #1
- mov r2, #0
- cmp r6, #0
- ble _022200E8
- ldr r0, _0222017C ; =0x00000514
- add r5, r4, #0
-_022200D6:
- ldr r1, [r5, r0]
- cmp r1, #1
- beq _022200E0
- mov r3, #0
- b _022200E8
-_022200E0:
- add r2, r2, #1
- add r5, r5, #4
- cmp r2, r6
- blt _022200D6
-_022200E8:
- cmp r3, #1
- bne _02220174
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _02220174
-_022200F4:
- ldrb r0, [r4, #2]
- mov r5, #0
- cmp r0, #0
- ble _0222010E
- ldr r0, _0222017C ; =0x00000514
- add r3, r4, #0
- mov r2, #2
-_02220102:
- str r2, [r3, r0]
- ldrb r1, [r4, #2]
- add r5, r5, #1
- add r3, r3, #4
- cmp r5, r1
- blt _02220102
-_0222010E:
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _02220174
-_02220116:
- ldrb r5, [r4, #2]
- mov r2, #1
- mov r6, #0
- cmp r5, #0
- ble _02220136
- ldr r0, _0222017C ; =0x00000514
- add r3, r4, #0
-_02220124:
- ldr r1, [r3, r0]
- cmp r1, #3
- beq _0222012E
- mov r2, #0
- b _02220136
-_0222012E:
- add r6, r6, #1
- add r3, r3, #4
- cmp r6, r5
- blt _02220124
-_02220136:
- cmp r2, #1
- bne _02220174
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _02220174
-_02220142:
- ldrb r0, [r4, #2]
- mov r6, #0
- cmp r0, #0
- ble _0222015C
- add r5, r4, #0
-_0222014C:
- ldr r0, [r5, #0x24]
- bl FUN_0200C3DC
- ldrb r0, [r4, #2]
- add r6, r6, #1
- add r5, #0x40
- cmp r6, r0
- blt _0222014C
-_0222015C:
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _02220174
-_02220164:
- ldr r0, [r4, #8]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
-_02220174:
- ldr r0, [r4, #0x10]
- bl FUN_0200BC1C
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0222017C: .word 0x00000514
-
- thumb_func_start MOD08_02220180
-MOD08_02220180: ; 0x02220180
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x50
- str r0, [sp]
- add r5, r1, #0
- add r6, r2, #0
- add r7, r3, #0
- bl MOD08_02212014
- ldr r1, _022202E8 ; =0x00000564
- bl AllocFromHeap
- add r4, r0, #0
- bne _0222019E
- bl ErrorHandling
-_0222019E:
- mov r0, #0
- strb r0, [r4, #1]
- strb r0, [r4]
- str r5, [r4, #0xc]
- ldr r0, [sp]
- str r6, [r4, #0x10]
- str r0, [r4, #8]
- ldr r1, [sp]
- add r0, sp, #0x1c
- bl MOD08_02215474
- mov r1, #0
- mvn r1, r1
- ldr r0, [r4, #8]
- add r2, r1, #0
- bl MOD08_02227994
- ldr r0, [r4, #8]
- mov r1, #0
- bl MOD08_02212498
- strb r0, [r4, #2]
- mov r0, #0xc
- strb r0, [r4, #2]
- mov r0, #0
- str r7, [r4, #0x24]
- str r0, [sp, #4]
- str r0, [sp, #0x14]
- ldrb r0, [r4, #2]
- cmp r0, #0
- ble _022202D8
- ldr r0, _022202EC ; =0x00000514
- add r5, r4, #0
- add r0, r4, r0
- str r0, [sp, #0xc]
- add r0, r4, #0
- str r0, [sp, #8]
- add r0, #0x14
- str r0, [sp, #8]
-_022201EC:
- ldr r0, [sp, #0x14]
- cmp r0, #0
- beq _022201FE
- ldr r0, [r4, #0xc]
- ldr r1, [r4, #0x10]
- add r2, sp, #0x1c
- bl FUN_0200C154
- str r0, [r5, #0x24]
-_022201FE:
- add r1, r5, #0
- ldr r6, [r5, #0x24]
- add r1, #0x20
- mov r0, #0
- strb r0, [r1]
- add r1, r5, #0
- add r1, #0x21
- strb r0, [r1]
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- ldr r0, [sp, #0x14]
- add r1, #0xa
- add r1, r0, r1
- add r0, r5, #0
- add r0, #0x22
- strb r1, [r0]
- bl rand_LC
- mov r1, #6
- bl _s32_div_f
- add r0, r5, #0
- add r0, #0x23
- strb r1, [r0]
- mov r0, #0xfe
- lsl r0, r0, #0x16
- str r0, [r5, #0x4c]
- ldr r0, [r4, #8]
- ldr r1, _022202F0 ; =0x0222C632
- str r0, [r5, #0x14]
- ldr r0, [r4, #0xc]
- str r0, [r5, #0x18]
- ldr r0, [r4, #0x10]
- str r0, [r5, #0x1c]
- ldr r0, [sp, #0xc]
- str r0, [r5, #0x50]
- ldr r0, [sp, #4]
- lsl r0, r0, #3
- str r0, [sp, #0x18]
- add r7, r1, r0
- bl rand_LC
- mov r1, #6
- ldrsh r1, [r7, r1]
- bl _s32_div_f
- mov r0, #2
- ldrsh r0, [r7, r0]
- add r0, r0, r1
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #0x10]
- bl rand_LC
- mov r1, #4
- ldrsh r1, [r7, r1]
- bl _s32_div_f
- ldr r2, _022202F0 ; =0x0222C632
- ldr r0, [sp, #0x18]
- ldrsh r0, [r2, r0]
- add r0, r0, r1
- lsl r0, r0, #0x10
- asr r2, r0, #0x10
- ldr r1, [sp, #0x10]
- add r0, r6, #0
- bl FUN_0200C714
- add r0, r6, #0
- mov r1, #2
- bl FUN_0200C840
- ldr r1, [r5, #0x4c]
- add r0, r6, #0
- add r2, r1, #0
- bl FUN_0200C884
- add r0, r6, #0
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [sp]
- ldr r1, _022202F4 ; =MOD08_0221FF1C
- ldr r2, [sp, #8]
- ldr r3, _022202F8 ; =0x0000044B
- bl MOD08_022123E4
- ldr r0, [sp, #4]
- mov r1, #6
- add r0, r0, #1
- bl _s32_div_f
- ldr r0, [sp, #0xc]
- str r1, [sp, #4]
- add r0, r0, #4
- str r0, [sp, #0xc]
- ldr r0, [sp, #8]
- ldrb r1, [r4, #2]
- add r0, #0x40
- str r0, [sp, #8]
- ldr r0, [sp, #0x14]
- add r5, #0x40
- add r0, r0, #1
- str r0, [sp, #0x14]
- cmp r0, r1
- blt _022201EC
-_022202D8:
- ldr r0, [sp]
- ldr r1, _022202FC ; =MOD08_022200A8
- ldr r3, _02220300 ; =0x0000044D
- add r2, r4, #0
- bl MOD08_022123E4
- add sp, #0x50
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022202E8: .word 0x00000564
-_022202EC: .word 0x00000514
-_022202F0: .word 0x0222C632
-_022202F4: .word MOD08_0221FF1C
-_022202F8: .word 0x0000044B
-_022202FC: .word MOD08_022200A8
-_02220300: .word 0x0000044D
-
- thumb_func_start MOD08_02220304
-MOD08_02220304: ; 0x02220304
- push {r3, r4, r5, r6, lr}
- sub sp, #0x14
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #4]
- cmp r0, #3
- bhi _022203EA
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222031E: ; jump table
- .short _02220326 - _0222031E - 2 ; case 0
- .short _02220344 - _0222031E - 2 ; case 1
- .short _02220396 - _0222031E - 2 ; case 2
- .short _022203C0 - _0222031E - 2 ; case 3
-_02220326:
- ldr r0, [r4, #8]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_022154D4
- mov r1, #6
- mov r2, #1
- bl FUN_02007558
- ldrb r0, [r4, #4]
- add r0, r0, #1
- strb r0, [r4, #4]
- b _02220410
-_02220344:
- add r0, r4, #0
- add r0, #0x2c
- bl MOD08_02218704
- cmp r0, #0
- beq _02220410
- mov r0, #0
- str r0, [r4]
- ldr r0, [r4, #8]
- mov r1, #1
- bl MOD08_022155C4
- add r5, r0, #0
- mov r0, #0
- add r1, r0, #0
- bl MOD08_02218998
- add r6, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_02212014
- mov r1, #0xc8
- str r1, [sp]
- mov r3, #3
- str r5, [sp, #4]
- mov r1, #0
- str r1, [sp, #8]
- str r6, [sp, #0xc]
- str r0, [sp, #0x10]
- add r0, r1, #0
- mov r1, #0xa0
- add r2, r1, #0
- add r2, #0xcc
- lsl r3, r3, #0xe
- bl MOD08_022188DC
- str r0, [r4, #0x28]
- ldrb r0, [r4, #4]
- add r0, r0, #1
- strb r0, [r4, #4]
- b _02220410
-_02220396:
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- cmp r0, #0x78
- blt _02220410
- ldr r0, [r4, #0x28]
- bl MOD08_0221894C
- mov r1, #2
- mov r2, #0x10
- str r1, [sp]
- add r0, r4, #0
- str r2, [sp, #4]
- add r0, #0x2c
- add r3, r2, #0
- bl MOD08_022186D4
- ldrb r0, [r4, #4]
- add r0, r0, #1
- strb r0, [r4, #4]
- b _02220410
-_022203C0:
- add r0, r4, #0
- add r0, #0x2c
- bl MOD08_02218704
- cmp r0, #0
- beq _02220410
- ldr r0, [r4, #8]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_022154D4
- mov r1, #6
- mov r2, #0
- bl FUN_02007558
- ldrb r0, [r4, #4]
- add r0, r0, #1
- strb r0, [r4, #4]
- b _02220410
-_022203EA:
- mov r2, #1
- lsl r2, r2, #0x1a
- ldr r1, [r2]
- ldr r0, _02220428 ; =0xFFFF1FFF
- and r0, r1
- str r0, [r2]
- ldr r0, [r4, #8]
- mov r1, #2
- bl MOD08_02214850
- ldr r0, [r4, #8]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0x14
- pop {r3, r4, r5, r6, pc}
-_02220410:
- ldr r0, [r4, #0x24]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x20]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x10]
- bl FUN_0200BC1C
- add sp, #0x14
- pop {r3, r4, r5, r6, pc}
- nop
-_02220428: .word 0xFFFF1FFF
-
- thumb_func_start MOD08_0222042C
-MOD08_0222042C: ; 0x0222042C
- push {r3, r4, r5, lr}
- sub sp, #8
- mov r1, #0x54
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #4
- bl MOD08_02227B70
- ldr r0, [r4, #8]
- mov r1, #0
- bl MOD08_022124D8
- mov r1, #2
- str r0, [r4, #0x20]
- bl FUN_0200C90C
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r2, [r0]
- ldr r1, _022204C0 ; =0xFFFF1FFF
- and r2, r1
- lsr r1, r0, #0xb
- orr r1, r2
- str r1, [r0]
- add r0, #0x4a
- ldrh r2, [r0]
- mov r1, #0x3f
- bic r2, r1
- mov r1, #0x1b
- orr r1, r2
- strh r1, [r0]
- ldrh r2, [r0]
- ldr r1, _022204C4 ; =0xFFFFC0FF
- and r2, r1
- mov r1, #0x17
- lsl r1, r1, #8
- orr r1, r2
- strh r1, [r0]
- ldr r0, [r4, #8]
- mov r1, #1
- bl MOD08_022124D8
- mov r1, #1
- str r0, [r4, #0x24]
- bl FUN_0200C90C
- mov r1, #0x10
- str r1, [sp]
- add r0, r4, #0
- mov r2, #2
- str r1, [sp, #4]
- add r0, #0x2c
- add r3, r2, #0
- bl MOD08_022186D4
- ldr r0, [r4, #8]
- mov r1, #2
- bl MOD08_0221477C
- mov r0, #2
- mov r1, #1
- bl FUN_0201797C
- ldr r0, [r4, #8]
- ldr r1, _022204C8 ; =MOD08_02220304
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #8
- pop {r3, r4, r5, pc}
- nop
-_022204C0: .word 0xFFFF1FFF
-_022204C4: .word 0xFFFFC0FF
-_022204C8: .word MOD08_02220304
-
- thumb_func_start MOD08_022204CC
-MOD08_022204CC: ; 0x022204CC
- push {r4, lr}
- add r4, r0, #0
- bl FUN_0200C658
- cmp r0, #1
- bne _022204DE
- add r0, r4, #0
- bl FUN_0200C5A8
-_022204DE:
- pop {r4, pc}
-
- thumb_func_start MOD08_022204E0
-MOD08_022204E0: ; 0x022204E0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- str r1, [sp, #4]
- str r0, [sp]
- ldr r0, [sp, #4]
- mov r1, #0x1c
- ldrsh r0, [r0, r1]
- cmp r0, #0
- bgt _02220504
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x30]
- bl MOD08_022204CC
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x34]
- bl MOD08_022204CC
- b _0222050A
-_02220504:
- sub r1, r0, #1
- ldr r0, [sp, #4]
- strh r1, [r0, #0x1c]
-_0222050A:
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x28]
- bl MOD08_022204CC
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x2c]
- bl MOD08_022204CC
- ldr r4, [sp, #4]
- mov r6, #0
- add r7, r6, #0
- add r5, r4, #0
-_02220522:
- mov r0, #0x1e
- ldrsh r0, [r4, r0]
- add r0, r0, #1
- strh r0, [r4, #0x1e]
- mov r0, #0x1e
- ldrsh r0, [r4, r0]
- cmp r0, #0x28
- blt _0222053C
- ldr r0, [r5, #0x28]
- mov r1, #0
- bl FUN_0200C644
- add r6, r6, #1
-_0222053C:
- add r7, r7, #1
- add r4, r4, #2
- add r5, r5, #4
- cmp r7, #4
- blt _02220522
- cmp r6, #4
- bne _02220570
- ldr r4, [sp, #4]
- mov r5, #0
-_0222054E:
- ldr r0, [r4, #0x28]
- bl FUN_0200C3DC
- add r5, r5, #1
- add r4, r4, #4
- cmp r5, #4
- blt _0222054E
- ldr r0, [sp, #4]
- ldr r1, [sp]
- ldr r0, [r0, #4]
- bl MOD08_02212438
- ldr r0, [sp, #4]
- bl FreeToHeap
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_02220570:
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x10]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222057C
-MOD08_0222057C: ; 0x0222057C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x34
- mov r1, #0x38
- add r5, r0, #0
- add r4, r3, #0
- bl MOD08_02228064
- add r6, r0, #0
- mov r0, #0xa
- strh r0, [r6, #0x1c]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02227B70
- ldr r1, [r6, #4]
- add r0, sp, #0
- bl MOD08_02215474
- str r4, [r6, #0x28]
- mov r0, #0
- strh r0, [r6, #0x1e]
- mov r7, #1
- add r4, r6, #2
- add r5, r6, #4
-_022205AC:
- mov r0, #0
- strh r0, [r4, #0x1e]
- ldr r0, [r6, #8]
- ldr r1, [r6, #0x10]
- add r2, sp, #0
- bl FUN_0200C154
- str r0, [r5, #0x28]
- add r7, r7, #1
- add r4, r4, #2
- add r5, r5, #4
- cmp r7, #4
- blt _022205AC
- ldr r0, [r6, #0x28]
- mov r1, #1
- bl FUN_0200C8D0
- ldr r0, [r6, #0x2c]
- mov r1, #1
- bl FUN_0200C8D0
- mov r1, #0x1f
- ldr r0, [r6, #0x28]
- mvn r1, r1
- mov r2, #0
- bl FUN_0200C82C
- mov r1, #0x1f
- ldr r0, [r6, #0x2c]
- mvn r1, r1
- mov r2, #0x20
- bl FUN_0200C82C
- ldr r0, [r6, #0x30]
- mov r1, #0x20
- mov r2, #0
- bl FUN_0200C82C
- mov r1, #0x20
- ldr r0, [r6, #0x34]
- add r2, r1, #0
- bl FUN_0200C82C
- ldr r0, [r6, #4]
- ldr r1, _02220610 ; =MOD08_022204E0
- add r2, r6, #0
- bl MOD08_02212400
- add sp, #0x34
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02220610: .word MOD08_022204E0
-
- thumb_func_start MOD08_02220614
-MOD08_02220614: ; 0x02220614
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r1, #0
- mov r4, #0
- str r0, [sp, #0x1c]
- str r4, [sp, #0x20]
- add r6, r5, #0
- add r7, r5, #0
-_02220624:
- mov r0, #0x22
- ldrsh r0, [r6, r0]
- add r0, r0, #1
- strh r0, [r6, #0x22]
- mov r0, #0x22
- ldrsh r0, [r6, r0]
- cmp r0, #0x14
- blt _02220676
- ldr r0, [r7, #0x2c]
- bl MOD08_022204CC
- mov r0, #0x22
- ldrsh r0, [r5, r0]
- cmp r0, #0x6e
- bne _02220676
- mov r1, #0
- mvn r1, r1
- ldr r0, [r5, #4]
- add r2, r1, #0
- bl MOD08_02227994
- ldr r0, [r5, #0x2c]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r5, #0x30]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r5, #0x34]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r5, #0x38]
- mov r1, #1
- bl FUN_0200C90C
- mov r0, #0xf
- str r0, [r5, #0x54]
- mov r0, #0
- str r0, [r5, #0x58]
-_02220676:
- add r4, r4, #1
- add r6, r6, #2
- add r7, r7, #4
- cmp r4, #4
- blt _02220624
- mov r0, #0x22
- ldrsh r0, [r5, r0]
- cmp r0, #0x32
- bne _022206BA
- ldr r0, [r5, #4]
- bl MOD08_02212014
- add r1, r0, #0
- mov r0, #0x10
- str r0, [sp]
- sub r0, #0x12
- str r0, [sp, #4]
- mov r2, #2
- str r2, [sp, #8]
- mov r0, #0
- str r0, [sp, #0xc]
- mov r0, #0xe
- str r0, [sp, #0x10]
- ldr r0, _02220894 ; =0x0000FFFF
- str r0, [sp, #0x14]
- ldr r0, _02220898 ; =0x000003EA
- str r0, [sp, #0x18]
- ldr r3, [r5, #0x1c]
- ldr r0, [r5, #0x18]
- lsl r3, r3, #0x14
- lsr r3, r3, #0x10
- bl MOD08_02218B20
- str r0, [r5, #0x3c]
-_022206BA:
- mov r0, #0x22
- ldrsh r0, [r5, r0]
- cmp r0, #0x3c
- bne _022206F4
- ldr r0, [r5, #4]
- bl MOD08_02212014
- add r1, r0, #0
- mov r0, #0x10
- str r0, [sp]
- sub r0, #0x12
- str r0, [sp, #4]
- mov r2, #2
- str r2, [sp, #8]
- mov r0, #0xe
- str r0, [sp, #0xc]
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, _02220894 ; =0x0000FFFF
- str r0, [sp, #0x14]
- ldr r0, _02220898 ; =0x000003EA
- str r0, [sp, #0x18]
- ldr r3, [r5, #0x1c]
- ldr r0, [r5, #0x18]
- lsl r3, r3, #0x14
- lsr r3, r3, #0x10
- bl MOD08_02218B20
- str r0, [r5, #0x40]
-_022206F4:
- mov r0, #0x22
- ldrsh r0, [r5, r0]
- cmp r0, #0x46
- bne _0222072E
- ldr r0, [r5, #4]
- bl MOD08_02212014
- add r1, r0, #0
- mov r0, #0x10
- str r0, [sp]
- sub r0, #0x12
- str r0, [sp, #4]
- mov r2, #2
- str r2, [sp, #8]
- mov r0, #0
- str r0, [sp, #0xc]
- mov r0, #0xe
- str r0, [sp, #0x10]
- ldr r0, _02220894 ; =0x0000FFFF
- str r0, [sp, #0x14]
- ldr r0, _02220898 ; =0x000003EA
- str r0, [sp, #0x18]
- ldr r3, [r5, #0x1c]
- ldr r0, [r5, #0x18]
- lsl r3, r3, #0x14
- lsr r3, r3, #0x10
- bl MOD08_02218B20
- str r0, [r5, #0x44]
-_0222072E:
- mov r0, #0x22
- ldrsh r0, [r5, r0]
- cmp r0, #0x50
- bne _02220768
- ldr r0, [r5, #4]
- bl MOD08_02212014
- add r1, r0, #0
- mov r0, #0x10
- str r0, [sp]
- sub r0, #0x12
- str r0, [sp, #4]
- mov r2, #2
- str r2, [sp, #8]
- mov r0, #0xe
- str r0, [sp, #0xc]
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, _02220894 ; =0x0000FFFF
- str r0, [sp, #0x14]
- ldr r0, _02220898 ; =0x000003EA
- str r0, [sp, #0x18]
- ldr r3, [r5, #0x1c]
- ldr r0, [r5, #0x18]
- lsl r3, r3, #0x14
- lsr r3, r3, #0x10
- bl MOD08_02218B20
- str r0, [r5, #0x48]
-_02220768:
- mov r0, #0x22
- ldrsh r0, [r5, r0]
- cmp r0, #0x5a
- bne _022207A2
- ldr r0, [r5, #4]
- bl MOD08_02212014
- add r1, r0, #0
- mov r0, #0x10
- str r0, [sp]
- sub r0, #0x12
- str r0, [sp, #4]
- mov r2, #2
- str r2, [sp, #8]
- mov r0, #0
- str r0, [sp, #0xc]
- mov r0, #0xe
- str r0, [sp, #0x10]
- ldr r0, _02220894 ; =0x0000FFFF
- str r0, [sp, #0x14]
- ldr r0, _02220898 ; =0x000003EA
- str r0, [sp, #0x18]
- ldr r3, [r5, #0x1c]
- ldr r0, [r5, #0x18]
- lsl r3, r3, #0x14
- lsr r3, r3, #0x10
- bl MOD08_02218B20
- str r0, [r5, #0x4c]
-_022207A2:
- mov r0, #0x22
- ldrsh r0, [r5, r0]
- cmp r0, #0x64
- bne _022207DC
- ldr r0, [r5, #4]
- bl MOD08_02212014
- add r1, r0, #0
- mov r0, #0x10
- str r0, [sp]
- sub r0, #0x12
- str r0, [sp, #4]
- mov r2, #2
- str r2, [sp, #8]
- mov r0, #0xe
- str r0, [sp, #0xc]
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, _02220894 ; =0x0000FFFF
- str r0, [sp, #0x14]
- ldr r0, _02220898 ; =0x000003EA
- str r0, [sp, #0x18]
- ldr r3, [r5, #0x1c]
- ldr r0, [r5, #0x18]
- lsl r3, r3, #0x14
- lsr r3, r3, #0x10
- bl MOD08_02218B20
- str r0, [r5, #0x50]
-_022207DC:
- mov r1, #0x22
- ldrsh r0, [r5, r1]
- cmp r0, #0x6e
- bne _02220816
- sub r1, #0x23
- ldr r0, [r5, #4]
- add r2, r1, #0
- bl MOD08_02227994
- ldr r0, [r5, #0x2c]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r5, #0x30]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r5, #0x34]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r5, #0x38]
- mov r1, #1
- bl FUN_0200C90C
- mov r0, #0xf
- str r0, [r5, #0x54]
- mov r0, #0
- str r0, [r5, #0x58]
-_02220816:
- mov r0, #0x22
- ldrsh r0, [r5, r0]
- cmp r0, #0x6e
- blt _0222084E
- ldr r0, [r5, #0x54]
- cmp r0, #0
- ble _02220828
- sub r0, r0, #1
- str r0, [r5, #0x54]
-_02220828:
- ldr r0, [r5, #0x58]
- cmp r0, #0xf
- bge _02220832
- add r0, r0, #1
- str r0, [r5, #0x58]
-_02220832:
- ldr r0, [r5, #0x58]
- ldr r1, [r5, #0x54]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0222089C ; =0x04000052
- strh r1, [r0]
- ldr r0, [r5, #0x54]
- cmp r0, #0
- bne _0222084E
- ldr r0, [r5, #0x58]
- cmp r0, #0xf
- bne _0222084E
- mov r0, #4
- str r0, [sp, #0x20]
-_0222084E:
- ldr r0, [sp, #0x20]
- cmp r0, #4
- bne _0222088A
- mov r6, #0
- add r4, r5, #0
-_02220858:
- ldr r0, [r4, #0x2c]
- bl FUN_0200C3DC
- add r6, r6, #1
- add r4, r4, #4
- cmp r6, #4
- blt _02220858
- mov r6, #0
- add r4, r5, #0
-_0222086A:
- ldr r0, [r4, #0x3c]
- bl MOD08_02218B08
- add r6, r6, #1
- add r4, r4, #4
- cmp r6, #6
- blt _0222086A
- ldr r0, [r5, #4]
- ldr r1, [sp, #0x1c]
- bl MOD08_02212438
- add r0, r5, #0
- bl FreeToHeap
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
-_0222088A:
- ldr r0, [r5, #0x10]
- bl FUN_0200BC1C
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02220894: .word 0x0000FFFF
-_02220898: .word 0x000003EA
-_0222089C: .word 0x04000052
-
- thumb_func_start MOD08_022208A0
-MOD08_022208A0: ; 0x022208A0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x40
- mov r1, #0x5c
- str r0, [sp]
- add r5, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- mov r0, #0xa
- strh r0, [r4, #0x20]
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD08_02227B70
- ldr r1, [r4, #4]
- add r0, sp, #0xc
- bl MOD08_02215474
- str r5, [r4, #0x2c]
- mov r0, #0
- strh r0, [r4, #0x22]
- mov r0, #1
- str r0, [sp, #8]
- mov r7, #5
- add r6, r4, #2
- add r5, r4, #4
-_022208D4:
- bl rand_LC
- lsr r1, r0, #0x1f
- lsl r2, r0, #0x1e
- sub r2, r2, r1
- mov r0, #0x1e
- ror r2, r0
- add r0, r1, r2
- add r0, r7, r0
- strh r0, [r6, #0x22]
- ldr r0, [r4, #8]
- ldr r1, [r4, #0x10]
- add r2, sp, #0xc
- bl FUN_0200C154
- str r0, [r5, #0x2c]
- ldr r0, [sp, #8]
- add r7, r7, #5
- add r0, r0, #1
- add r6, r6, #2
- add r5, r5, #4
- str r0, [sp, #8]
- cmp r0, #4
- blt _022208D4
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_0200C8D0
- ldr r0, [r4, #0x34]
- mov r1, #1
- bl FUN_0200C8D0
- ldr r0, [sp]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [sp]
- bl MOD08_022154D4
- mov r1, #0
- add r5, r0, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #4]
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200782C
- add r0, r5, #0
- mov r1, #0x29
- bl FUN_0200782C
- ldr r0, [sp]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [sp]
- bl MOD08_02227470
- cmp r0, #3
- bne _02220956
- mov r7, #0x8c
- b _02220958
-_02220956:
- mov r7, #0x54
-_02220958:
- mov r6, #0
- add r5, r4, #0
-_0222095C:
- ldr r0, [r5, #0x2c]
- ldr r1, [sp, #4]
- add r2, r7, #0
- bl FUN_0200C714
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #4
- blt _0222095C
- ldr r0, [sp]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [sp]
- bl MOD08_02227470
- cmp r0, #3
- ldr r0, [r4, #0x2c]
- bne _022209A2
- mov r1, #0xa
- bl FUN_0200C6C4
- ldr r0, [r4, #0x34]
- mov r1, #0xa
- bl FUN_0200C6C4
- ldr r0, [r4, #0x30]
- mov r1, #0x12
- bl FUN_0200C6C4
- ldr r0, [r4, #0x38]
- mov r1, #0x12
- bl FUN_0200C6C4
- b _022209C0
-_022209A2:
- mov r1, #0x12
- bl FUN_0200C6C4
- ldr r0, [r4, #0x34]
- mov r1, #0x12
- bl FUN_0200C6C4
- ldr r0, [r4, #0x30]
- mov r1, #0xa
- bl FUN_0200C6C4
- ldr r0, [r4, #0x38]
- mov r1, #0xa
- bl FUN_0200C6C4
-_022209C0:
- mov r1, #0x1f
- ldr r0, [r4, #0x2c]
- mvn r1, r1
- mov r2, #0
- bl FUN_0200C82C
- mov r1, #0x27
- ldr r0, [r4, #0x38]
- mvn r1, r1
- mov r2, #4
- bl FUN_0200C82C
- ldr r0, [r4, #0x34]
- mov r1, #0x20
- mov r2, #0
- bl FUN_0200C82C
- ldr r0, [r4, #0x30]
- mov r1, #0x28
- mov r2, #4
- bl FUN_0200C82C
- ldr r0, [r4, #0x2c]
- bl FUN_0200C68C
- str r0, [r4, #0x1c]
- ldr r0, [r4, #4]
- ldr r1, _02220A04 ; =MOD08_02220614
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x40
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02220A04: .word MOD08_02220614
-
- thumb_func_start MOD08_02220A08
-MOD08_02220A08: ; 0x02220A08
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- bne _02220A8E
- add r0, r4, #0
- add r0, #0x60
- bl MOD08_02218224
- cmp r0, #0
- bne _02220A4C
- ldr r0, [r4, #0x28]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x3c]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x3c]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl MOD08_02228094
- add sp, #0xc
- pop {r4, r5, pc}
-_02220A4C:
- add r0, r4, #0
- add r0, #0x60
- add r1, sp, #8
- add r2, sp, #4
- bl MOD08_0221825C
- ldr r0, [r4, #0x28]
- ldr r1, [sp, #8]
- ldr r2, [sp, #4]
- bl FUN_0200C884
- mov r0, #0
- str r0, [sp]
- mov r1, #0x58
- mov r2, #0x5a
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x28]
- ldr r3, [r4, #0x74]
- bl MOD08_02218314
- ldr r0, [r4, #0x28]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x3c]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x50]
- bl FUN_0200C5A8
- ldr r0, [r4, #0xc]
- bl FUN_0200BC1C
-_02220A8E:
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02220A94
-MOD08_02220A94: ; 0x02220A94
- push {r4, r5, lr}
- sub sp, #0xc
- mov r1, #0x84
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- ldr r0, [r4, #4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- mov r1, #1
- str r0, [r4, #0x24]
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x58
- strh r0, [r1]
- mov r0, #0x58
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0x5c
- strh r1, [r0]
- ldr r0, [r4, #4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_0221552C
- add r1, r4, #0
- add r1, #0x5a
- strh r0, [r1]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x28]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_022124D8
- str r0, [r4, #0x3c]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_022124D8
- str r0, [r4, #0x50]
- ldr r0, [r4, #0x28]
- mov r1, #2
- bl FUN_0200C840
- add r0, r5, #0
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r4, #0x28]
- bl FUN_0200C6B0
- add r0, r5, #0
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r4, #0x3c]
- bl FUN_0200C6B0
- add r0, r5, #0
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r4, #0x50]
- bl FUN_0200C6B0
- ldr r0, [r4, #4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02215490
- sub r0, r0, #3
- cmp r0, #1
- ldr r0, [r4, #0x28]
- bhi _02220B62
- mov r1, #0x1e
- bl FUN_0200C6C4
- ldr r0, [r4, #0x3c]
- mov r1, #0x32
- bl FUN_0200C6C4
- ldr r0, [r4, #0x50]
- mov r1, #0x46
- bl FUN_0200C6C4
- b _02220B78
-_02220B62:
- mov r1, #0x3c
- bl FUN_0200C6C4
- ldr r0, [r4, #0x3c]
- mov r1, #0x46
- bl FUN_0200C6C4
- ldr r0, [r4, #0x50]
- mov r1, #0x32
- bl FUN_0200C6C4
-_02220B78:
- mov r2, #0x14
- mov r1, #0x64
- str r2, [sp]
- str r1, [sp, #4]
- mov r0, #0xa
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x60
- add r3, r1, #0
- bl MOD08_022181A8
- ldr r0, [r4, #4]
- ldr r1, _02220B9C ; =MOD08_02220A08
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-_02220B9C: .word MOD08_02220A08
-
- thumb_func_start MOD08_02220BA0
-MOD08_02220BA0: ; 0x02220BA0
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _02220BB4
- cmp r0, #1
- beq _02220CB2
- b _02220D00
-_02220BB4:
- add r0, r4, #0
- add r0, #0xa0
- ldrb r0, [r0]
- cmp r0, #0
- bne _02220C2E
- mov r0, #0x22
- ldrsh r3, [r4, r0]
- mov r0, #0x20
- ldrsh r1, [r4, r0]
- mov r0, #3
- add r2, r1, #0
- str r3, [sp]
- add r2, #0x30
- str r0, [sp, #4]
- add r0, r4, #0
- lsl r2, r2, #0x10
- add r0, #0x34
- asr r2, r2, #0x10
- bl MOD08_02217E80
- mov r0, #0x22
- ldrsh r1, [r4, r0]
- mov r0, #0xa4
- ldrsh r0, [r4, r0]
- add r2, r1, r0
- mov r0, #0x20
- ldrsh r1, [r4, r0]
- lsl r0, r2, #0x10
- asr r3, r0, #0x10
- add r2, r1, #0
- add r2, #0x30
- lsl r2, r2, #0x10
- str r3, [sp]
- mov r0, #6
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x58
- asr r2, r2, #0x10
- bl MOD08_02217E80
- mov r0, #0x22
- ldrsh r1, [r4, r0]
- mov r0, #0xa4
- ldrsh r0, [r4, r0]
- add r2, r1, r0
- mov r0, #0x20
- ldrsh r1, [r4, r0]
- lsl r0, r2, #0x10
- asr r3, r0, #0x10
- add r2, r1, #0
- add r2, #0x30
- lsl r2, r2, #0x10
- str r3, [sp]
- mov r0, #8
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x7c
- asr r2, r2, #0x10
- bl MOD08_02217E80
- b _02220C9C
-_02220C2E:
- mov r0, #0x22
- ldrsh r3, [r4, r0]
- mov r0, #0x20
- ldrsh r2, [r4, r0]
- mov r0, #3
- add r1, r2, #0
- str r3, [sp]
- add r1, #0x30
- str r0, [sp, #4]
- add r0, r4, #0
- lsl r1, r1, #0x10
- add r0, #0x34
- asr r1, r1, #0x10
- bl MOD08_02217E80
- mov r0, #0x22
- ldrsh r1, [r4, r0]
- mov r0, #0xa4
- ldrsh r0, [r4, r0]
- add r1, r1, r0
- mov r0, #0x20
- ldrsh r2, [r4, r0]
- lsl r0, r1, #0x10
- asr r3, r0, #0x10
- add r1, r2, #0
- add r1, #0x30
- lsl r1, r1, #0x10
- str r3, [sp]
- mov r0, #6
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x58
- asr r1, r1, #0x10
- bl MOD08_02217E80
- mov r0, #0x22
- ldrsh r1, [r4, r0]
- mov r0, #0xa4
- ldrsh r0, [r4, r0]
- add r1, r1, r0
- mov r0, #0x20
- ldrsh r2, [r4, r0]
- lsl r0, r1, #0x10
- asr r3, r0, #0x10
- add r1, r2, #0
- add r1, #0x30
- lsl r1, r1, #0x10
- str r3, [sp]
- mov r0, #9
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x7c
- asr r1, r1, #0x10
- bl MOD08_02217E80
-_02220C9C:
- add r0, r4, #0
- add r0, #0xa0
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xa0
- strb r1, [r0]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _02220D12
-_02220CB2:
- add r0, r4, #0
- ldr r1, [r4, #0x28]
- add r0, #0x58
- mov r5, #0
- bl MOD08_02217F08
- cmp r0, #0
- bne _02220CC4
- add r5, r5, #1
-_02220CC4:
- add r0, r4, #0
- ldr r1, [r4, #0x24]
- add r0, #0x34
- bl MOD08_02217F2C
- cmp r0, #0
- bne _02220CD4
- add r5, r5, #1
-_02220CD4:
- add r0, r4, #0
- ldr r1, [r4, #0x30]
- add r0, #0x7c
- bl MOD08_02217F08
- cmp r0, #0
- bne _02220CE4
- add r5, r5, #1
-_02220CE4:
- cmp r5, #3
- blt _02220D12
- add r0, r4, #0
- add r0, #0xa0
- ldrb r0, [r0]
- cmp r0, #1
- ldrb r0, [r4]
- bne _02220CFA
- sub r0, r0, #1
- strb r0, [r4]
- b _02220D12
-_02220CFA:
- add r0, r0, #1
- strb r0, [r4]
- b _02220D12
-_02220D00:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl MOD08_02228094
- add sp, #8
- pop {r3, r4, r5, pc}
-_02220D12:
- ldr r0, [r4, #0x28]
- bl FUN_0200C5A8
- ldr r0, [r4, #0xc]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02220D24
-MOD08_02220D24: ; 0x02220D24
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- mov r1, #0xa8
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- add r0, r4, #0
- mov r1, #0
- add r0, #0xa1
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #8
- add r0, #0xa2
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0xa3
- strb r1, [r0]
- sub r1, #9
- ldr r0, [r4, #4]
- add r2, r1, #0
- bl MOD08_02227994
- add r0, r4, #0
- add r0, #0xa2
- ldrb r1, [r0]
- add r0, r4, #0
- add r0, #0xa3
- ldrb r0, [r0]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _02220E94 ; =0x04000052
- strh r1, [r0]
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #0x24]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x20]
- ldr r0, [r4, #0x24]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x22]
- ldr r0, [r4, #4]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x28]
- ldr r0, [r4, #4]
- mov r1, #1
- bl MOD08_022124D8
- str r0, [r4, #0x30]
- ldr r0, [r4, #0x24]
- mov r1, #0x29
- bl FUN_0200782C
- neg r1, r0
- add r0, r4, #0
- add r0, #0xa4
- strh r1, [r0]
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_0221550C
- add r7, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_0221551C
- str r0, [sp, #0x18]
- ldr r0, [r4, #4]
- ldr r5, [r4, #0x28]
- bl MOD08_02215574
- add r1, r0, #0
- add r0, r5, #0
- add r1, r1, #1
- bl FUN_0200C6B0
- ldr r0, [r5]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- add r6, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02215504
- str r0, [sp, #0x1c]
- ldr r0, [r4, #4]
- bl MOD08_02212014
- add r3, r0, #0
- mov r0, #2
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- lsl r0, r6, #0x14
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- mov r0, #0xc4
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x1c]
- ldr r1, [sp, #0x18]
- add r2, r7, #0
- bl FUN_02003B40
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #4]
- ldr r5, [r4, #0x30]
- bl MOD08_02215574
- add r1, r0, #0
- add r0, r5, #0
- add r1, r1, #1
- bl FUN_0200C6B0
- ldr r0, [r5]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- add r6, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02215504
- str r0, [sp, #0x20]
- ldr r0, [r4, #4]
- bl MOD08_02212014
- add r3, r0, #0
- mov r0, #2
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- lsl r0, r6, #0x14
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- mov r0, #0xc4
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x20]
- ldr r1, [sp, #0x18]
- add r2, r7, #0
- bl FUN_02003B40
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #4]
- ldr r1, _02220E98 ; =MOD08_02220BA0
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- nop
-_02220E94: .word 0x04000052
-_02220E98: .word MOD08_02220BA0
-
- thumb_func_start MOD08_02220E9C
-MOD08_02220E9C: ; 0x02220E9C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- mov r6, #0
- str r0, [sp]
- str r1, [sp, #4]
- add r7, r6, #0
- add r4, r1, #0
- add r5, r1, #0
-_02220EAC:
- mov r0, #0x1e
- ldrsh r0, [r4, r0]
- add r0, r0, #1
- strh r0, [r4, #0x1e]
- mov r0, #0x1e
- ldrsh r0, [r4, r0]
- cmp r0, #0x20
- blt _02220ED4
- ldr r0, [r5, #0x30]
- bl MOD08_022204CC
- mov r0, #0x1e
- ldrsh r0, [r4, r0]
- cmp r0, #0xa0
- blt _02220ED4
- ldr r0, [r5, #0x30]
- mov r1, #0
- bl FUN_0200C644
- add r6, r6, #1
-_02220ED4:
- add r7, r7, #1
- add r4, r4, #2
- add r5, r5, #4
- cmp r7, #8
- blt _02220EAC
- cmp r6, #8
- bne _02220F08
- ldr r4, [sp, #4]
- mov r5, #0
-_02220EE6:
- ldr r0, [r4, #0x30]
- bl FUN_0200C3DC
- add r5, r5, #1
- add r4, r4, #4
- cmp r5, #8
- blt _02220EE6
- ldr r0, [sp, #4]
- ldr r1, [sp]
- ldr r0, [r0, #4]
- bl MOD08_02212438
- ldr r0, [sp, #4]
- bl FreeToHeap
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_02220F08:
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x10]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02220F14
-MOD08_02220F14: ; 0x02220F14
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x58
- mov r1, #0x74
- add r6, r0, #0
- add r5, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- mov r0, #0xa
- strh r0, [r4, #0x1c]
- add r0, r6, #0
- add r1, r4, #0
- bl MOD08_02227B70
- ldr r1, [r4, #4]
- add r0, sp, #0x24
- bl MOD08_02215474
- str r5, [r4, #0x30]
- mov r6, #1
- add r5, r4, #4
- mov r7, #0x1f
-_02220F40:
- ldr r0, [r4, #8]
- ldr r1, [r4, #0x10]
- add r2, sp, #0x24
- bl FUN_0200C154
- str r0, [r5, #0x30]
- lsr r1, r6, #0x1f
- lsl r0, r6, #0x1f
- sub r0, r0, r1
- ror r0, r7
- add r0, r1, r0
- beq _02220F60
- ldr r0, [r5, #0x30]
- mov r1, #1
- bl FUN_0200C8D0
-_02220F60:
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #8
- blt _02220F40
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- mov r1, #0
- add r5, r0, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r7, r0, #0x10
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- ldr r0, [r4, #4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- mov r1, #0
- str r0, [sp, #0x1c]
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- ldr r0, [sp, #0x1c]
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- mov r0, #0x14
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x50
- add r1, r7, #0
- add r2, r6, #0
- add r3, r5, #0
- bl MOD08_02217E80
- mov r7, #0
- ldr r0, [r4, #4]
- add r6, r7, #0
- str r7, [sp, #0x14]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02227470
- cmp r0, #4
- bne _02220FE4
- mov r0, #1
- str r0, [sp, #0x14]
-_02220FE4:
- add r0, r4, #0
- str r0, [sp, #0x20]
- add r0, #0x50
- add r5, r4, #0
- str r0, [sp, #0x20]
-_02220FEE:
- ldr r0, [sp, #0x20]
- bl MOD08_02217ECC
- str r0, [sp, #0x18]
- lsr r2, r7, #0x1f
- lsl r1, r7, #0x1f
- sub r1, r1, r2
- mov r0, #0x1f
- ror r1, r0
- add r0, r2, r1
- beq _02221026
- ldr r0, [sp, #0x14]
- cmp r0, #0
- bne _02221022
- cmp r6, #8
- bge _02221026
- mov r1, #0x50
- mov r2, #0x52
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r5, #0x30]
- bl FUN_0200C714
- add r5, r5, #4
- add r6, r6, #1
- b _02221026
-_02221022:
- mov r0, #0
- str r0, [sp, #0x14]
-_02221026:
- ldr r0, [sp, #0x18]
- add r7, r7, #1
- cmp r0, #1
- beq _02220FEE
- ldr r0, [r4, #4]
- mov r1, #1
- bl MOD08_02215600
- str r0, [sp, #0x10]
- ldr r0, [r4, #4]
- mov r1, #2
- bl MOD08_02215600
- add r7, r0, #0
- mov r6, #0
- str r4, [sp, #0xc]
- add r5, r4, #0
-_02221048:
- mov r0, #8
- sub r0, r0, r6
- str r0, [sp, #8]
- lsl r1, r0, #2
- ldr r0, [sp, #0xc]
- strh r1, [r0, #0x1e]
- ldr r0, [r4, #4]
- bl MOD08_02212004
- cmp r0, #0
- bne _022210A4
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02227470
- cmp r0, #3
- bne _02221086
- cmp r6, #4
- ldr r0, [r5, #0x30]
- bge _0222107E
- add r1, r7, #0
- bl FUN_0200C6B0
- b _0222109A
-_0222107E:
- ldr r1, [sp, #0x10]
- bl FUN_0200C6B0
- b _0222109A
-_02221086:
- cmp r6, #4
- ldr r0, [r5, #0x30]
- blt _02221094
- add r1, r7, #0
- bl FUN_0200C6B0
- b _0222109A
-_02221094:
- ldr r1, [sp, #0x10]
- bl FUN_0200C6B0
-_0222109A:
- ldr r0, [r5, #0x30]
- ldr r1, [sp, #8]
- bl FUN_0200C6C4
- b _022210B4
-_022210A4:
- ldr r0, [r5, #0x30]
- add r1, r6, #0
- bl FUN_0200C6C4
- ldr r0, [r5, #0x30]
- add r1, r7, #0
- bl FUN_0200C6B0
-_022210B4:
- ldr r0, [sp, #0xc]
- add r6, r6, #1
- add r0, r0, #2
- add r5, r5, #4
- str r0, [sp, #0xc]
- cmp r6, #8
- blt _02221048
- ldr r0, [r4, #4]
- ldr r1, _022210D0 ; =MOD08_02220E9C
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x58
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022210D0: .word MOD08_02220E9C
-
- thumb_func_start MOD08_022210D4
-MOD08_022210D4: ; 0x022210D4
- push {r4, r5, lr}
- sub sp, #0x1c
- add r5, r1, #0
- add r4, r0, #0
- ldrb r0, [r5]
- cmp r0, #0
- beq _022210EA
- cmp r0, #1
- beq _02221178
- cmp r0, #2
- b _022211D6
-_022210EA:
- ldr r0, [r5, #0x28]
- cmp r0, #0xe
- ble _02221140
- ldr r0, [r5, #0x30]
- ldr r1, _0222121C ; =0x3E4CCCCD
- bl _fsub
- str r0, [r5, #0x30]
- ldr r0, [r5, #0x2c]
- ldr r1, _0222121C ; =0x3E4CCCCD
- bl _fadd
- str r0, [r5, #0x2c]
- ldr r0, [r5, #0x30]
- bl _f2d
- ldr r2, _02221220 ; =0x9999999A
- ldr r3, _02221224 ; =0x3FC99999
- bl _dleq
- bhi _02221124
- ldrb r0, [r5]
- mov r1, #0
- add r0, r0, #1
- strb r0, [r5]
- ldr r0, [r5, #0x1c]
- bl FUN_0200C644
- b _022211FE
-_02221124:
- mov r0, #0x36
- ldrsb r0, [r5, r0]
- bl _fflt
- add r1, r0, #0
- ldr r0, [r5, #0x2c]
- bl _fmul
- add r1, r0, #0
- ldr r0, [r5, #0x1c]
- ldr r2, [r5, #0x30]
- bl FUN_0200C884
- b _022211FE
-_02221140:
- add r0, r5, #0
- add r0, #0x34
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r5, #0
- add r0, #0x34
- strb r1, [r0]
- add r0, r5, #0
- add r0, #0x35
- ldrb r0, [r0]
- sub r1, r0, #1
- add r0, r5, #0
- add r0, #0x35
- strb r1, [r0]
- add r0, r5, #0
- add r0, #0x34
- ldrb r1, [r0]
- add r0, r5, #0
- add r0, #0x35
- ldrb r0, [r0]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _02221228 ; =0x04000052
- strh r1, [r0]
- ldr r0, [r5, #0x28]
- add r0, r0, #1
- str r0, [r5, #0x28]
- b _022211FE
-_02221178:
- ldr r0, [r5, #0x3c]
- bl MOD08_02218AF8
- cmp r0, #0
- bne _022211FE
- ldr r0, [r5, #0x38]
- bl MOD08_02218B08
- ldr r0, [r5, #0x3c]
- bl MOD08_02218B08
- ldr r0, [r5, #0x24]
- ldr r0, [r0]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- add r4, r0, #0
- ldr r0, [r5, #4]
- bl MOD08_02212014
- add r1, r0, #0
- mov r0, #0x10
- str r0, [sp]
- mov r2, #0
- lsl r3, r4, #0x14
- str r2, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- mov r0, #0xf
- str r0, [sp, #0xc]
- str r2, [sp, #0x10]
- ldr r0, _0222122C ; =0x0000FFFF
- mov r2, #2
- str r0, [sp, #0x14]
- ldr r0, _02221230 ; =0x0000044C
- lsr r3, r3, #0x10
- str r0, [sp, #0x18]
- ldr r0, [r5, #0x18]
- bl MOD08_02218B20
- str r0, [r5, #0x3c]
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
- b _022211FE
-_022211D6:
- ldr r0, [r5, #0x3c]
- bl MOD08_02218AF8
- cmp r0, #0
- bne _022211FE
- ldr r0, [r5, #0x20]
- bl FUN_0200C5A8
- ldr r0, [r5, #0x3c]
- bl MOD08_02218B08
- ldr r0, [r5, #4]
- add r1, r4, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl FreeToHeap
- add sp, #0x1c
- pop {r4, r5, pc}
-_022211FE:
- ldr r0, [r5, #0x1c]
- bl FUN_0200C5A8
- ldr r0, [r5, #0x20]
- bl FUN_0200C5A8
- ldr r0, [r5, #0x24]
- bl FUN_0200C5A8
- ldr r0, [r5, #0xc]
- bl FUN_0200BC1C
- add sp, #0x1c
- pop {r4, r5, pc}
- nop
-_0222121C: .word 0x3E4CCCCD
-_02221220: .word 0x9999999A
-_02221224: .word 0x3FC99999
-_02221228: .word 0x04000052
-_0222122C: .word 0x0000FFFF
-_02221230: .word 0x0000044C
-
- thumb_func_start MOD08_02221234
-MOD08_02221234: ; 0x02221234
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x30
- mov r1, #0x40
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- ldr r0, [r4, #4]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x1c]
- ldr r0, [r4, #4]
- mov r1, #1
- bl MOD08_022124D8
- str r0, [r4, #0x20]
- ldr r0, [r4, #4]
- mov r1, #2
- bl MOD08_022124D8
- str r0, [r4, #0x24]
- mov r6, #0
- str r6, [r4, #0x28]
- add r0, r5, #0
- sub r6, #0x20
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02217C1C
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- mul r0, r6
- add r6, r0, #0
- mov r0, #0xfe
- lsl r0, r0, #0x16
- str r0, [r4, #0x2c]
- str r0, [r4, #0x30]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02215680
- cmp r0, #1
- bne _0222129E
- mov r1, #0
- mvn r1, r1
- b _022212A0
-_0222129E:
- mov r1, #1
-_022212A0:
- add r0, r4, #0
- add r0, #0x36
- strb r1, [r0]
- add r1, sp, #0x24
- ldr r0, [r4, #0x20]
- add r1, #2
- add r2, sp, #0x24
- bl FUN_0200C7A0
- add r2, sp, #0x24
- mov r1, #2
- ldrsh r1, [r2, r1]
- mov r3, #0
- ldrsh r2, [r2, r3]
- add r1, r1, r6
- lsl r1, r1, #0x10
- ldr r0, [r4, #0x1c]
- asr r1, r1, #0x10
- bl FUN_0200C714
- ldr r0, [r4, #0x1c]
- mov r1, #2
- bl FUN_0200C840
- mov r0, #0x36
- ldrsb r0, [r4, r0]
- bl _fflt
- add r1, r0, #0
- ldr r0, [r4, #0x2c]
- bl _fmul
- add r1, r0, #0
- ldr r0, [r4, #0x1c]
- ldr r2, [r4, #0x30]
- bl FUN_0200C884
- ldr r0, [r4, #0x1c]
- ldr r0, [r0]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212014
- add r1, r0, #0
- mov r0, #0x10
- str r0, [sp]
- mov r2, #0
- lsl r3, r6, #0x14
- str r2, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- str r2, [sp, #0xc]
- mov r0, #0xf
- str r0, [sp, #0x10]
- ldr r0, _0222147C ; =0x0000FFFF
- mov r2, #2
- str r0, [sp, #0x14]
- ldr r0, _02221480 ; =0x0000044C
- lsr r3, r3, #0x10
- str r0, [sp, #0x18]
- ldr r0, [r4, #0x18]
- bl MOD08_02218B20
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x24]
- ldr r0, [r0]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212014
- add r1, r0, #0
- mov r0, #0x10
- str r0, [sp]
- mov r2, #0
- lsl r3, r6, #0x14
- str r2, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- str r2, [sp, #0xc]
- mov r0, #0xf
- str r0, [sp, #0x10]
- ldr r0, _0222147C ; =0x0000FFFF
- mov r2, #2
- str r0, [sp, #0x14]
- ldr r0, _02221480 ; =0x0000044C
- lsr r3, r3, #0x10
- str r0, [sp, #0x18]
- ldr r0, [r4, #0x18]
- bl MOD08_02218B20
- str r0, [r4, #0x3c]
- ldr r0, [r4, #4]
- bl MOD08_02212458
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- ldr r0, [r4, #4]
- add r1, r6, #0
- bl MOD08_02227468
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- ldr r0, [r4, #4]
- bl MOD08_02212004
- add r1, r0, #0
- add r0, r5, #0
- add r2, sp, #0x2c
- bl MOD08_02227564
- add r2, sp, #0x28
- ldr r0, [r4, #0x1c]
- add r1, sp, #0x28
- add r2, #2
- bl FUN_0200C7A0
- ldr r0, [r4, #4]
- add r1, r6, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _022213BC
- ldr r0, [r4, #0x1c]
- mov r1, #1
- mov r5, #0
- bl FUN_0200C6B0
- ldr r0, [r4, #0x1c]
- add r1, r5, #0
- bl FUN_0200C6C4
- b _022213CE
-_022213BC:
- ldr r0, [r4, #0x1c]
- mov r1, #2
- bl FUN_0200C6B0
- ldr r0, [r4, #0x1c]
- mov r1, #0
- bl FUN_0200C6C4
- mov r5, #2
-_022213CE:
- ldr r0, [r4, #4]
- bl MOD08_02212460
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- ldr r0, [r4, #4]
- add r1, r6, #0
- bl MOD08_022154A8
- add r7, r0, #0
- ldr r0, [r4, #4]
- add r1, r6, #0
- bl MOD08_0221549C
- str r0, [sp, #0x1c]
- ldr r0, [r4, #4]
- add r1, r6, #0
- bl MOD08_022154B8
- str r0, [sp, #0x20]
- ldr r0, [r4, #4]
- add r1, r6, #0
- bl MOD08_022154C4
- ldr r1, [sp, #0x1c]
- ldr r3, [sp, #0x20]
- str r0, [sp]
- lsl r0, r7, #0x10
- lsl r1, r1, #0x18
- lsl r2, r5, #0x18
- lsl r3, r3, #0x18
- lsr r0, r0, #0x10
- lsr r1, r1, #0x18
- lsr r2, r2, #0x18
- lsr r3, r3, #0x18
- bl FUN_02068E88
- add r2, r0, #0
- add r5, sp, #0x24
- mov r3, #0xa
- ldrsh r3, [r5, r3]
- mov r1, #4
- ldrsh r1, [r5, r1]
- add r2, r3, r2
- lsl r2, r2, #0x10
- ldr r0, [r4, #0x1c]
- asr r2, r2, #0x10
- bl FUN_0200C714
- ldr r0, [r4, #0x1c]
- mov r1, #1
- bl FUN_0200C644
- add r0, r4, #0
- mov r1, #0
- add r0, #0x34
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #0xf
- add r0, #0x35
- strb r1, [r0]
- sub r1, #0x10
- ldr r0, [r4, #4]
- add r2, r1, #0
- bl MOD08_02227994
- add r0, r4, #0
- add r0, #0x34
- ldrb r1, [r0]
- add r0, r4, #0
- add r0, #0x35
- ldrb r0, [r0]
- add r2, r4, #0
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _02221484 ; =0x04000052
- strh r1, [r0]
- ldr r0, [r4, #4]
- ldr r1, _02221488 ; =MOD08_022210D4
- bl MOD08_02212400
- add r1, r4, #0
- bl MOD08_022210D4
- add sp, #0x30
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0222147C: .word 0x0000FFFF
-_02221480: .word 0x0000044C
-_02221484: .word 0x04000052
-_02221488: .word MOD08_022210D4
-
- thumb_func_start MOD08_0222148C
-MOD08_0222148C: ; 0x0222148C
- push {r3, r4, r5, lr}
- sub sp, #0x58
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _022214A0
- cmp r0, #1
- beq _022214E6
- b _02221560
-_022214A0:
- ldr r0, [r4, #0x68]
- mov r1, #0x20
- lsl r0, r0, #2
- add r2, r4, r0
- ldr r0, [r2, #0x78]
- lsl r0, r0, #0x10
- asr r3, r0, #0x10
- str r3, [sp]
- mov r0, #0xf
- str r0, [sp, #4]
- ldr r2, [r2, #0x6c]
- add r0, r4, #0
- lsl r2, r2, #0x10
- ldrsh r1, [r4, r1]
- add r0, #0x30
- asr r2, r2, #0x10
- bl MOD08_02217E80
- ldr r2, [r4, #0x68]
- ldr r0, [r4, #0x24]
- lsl r2, r2, #2
- add r2, r4, r2
- add r2, #0x84
- ldr r2, [r2]
- mov r1, #2
- bl FUN_02007558
- ldr r0, [r4, #0x24]
- mov r1, #0x2c
- mov r2, #1
- bl FUN_02007558
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_022214E6:
- add r0, r4, #0
- add r0, #0x30
- bl MOD08_02217ECC
- cmp r0, #0
- bne _02221544
- ldr r0, [r4, #0x68]
- add r0, r0, #1
- str r0, [r4, #0x68]
- cmp r0, #2
- ble _02221504
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0222153A
-_02221504:
- ldr r0, [r4, #0x58]
- cmp r0, #0
- bne _02221536
- ldr r0, [r4, #4]
- add r1, sp, #8
- mov r2, #3
- bl MOD08_022127A8
- ldr r0, [r4, #0x68]
- cmp r0, #2
- ldr r0, [r4, #4]
- bne _0222152A
- bl MOD08_02212014
- add r1, r0, #0
- add r0, sp, #8
- bl MOD08_0222A494
- b _02221536
-_0222152A:
- bl MOD08_02212014
- add r1, r0, #0
- add r0, sp, #8
- bl MOD08_0222A2A4
-_02221536:
- mov r0, #0
- strb r0, [r4]
-_0222153A:
- ldr r0, [r4, #0x24]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x20]
-_02221544:
- mov r2, #0x30
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x24]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x32
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x24]
- mov r1, #1
- bl FUN_02007558
- add sp, #0x58
- pop {r3, r4, r5, pc}
-_02221560:
- ldr r0, [r4, #0x24]
- mov r1, #0x2c
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0x58
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_0222157C
-MOD08_0222157C: ; 0x0222157C
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- mov r1, #0x90
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r6, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- add r2, r4, #0
- ldr r0, [r4, #4]
- add r2, #0x5c
- bl MOD08_022275C0
- ldr r0, [r4, #4]
- bl MOD08_02212460
- add r1, r0, #0
- add r2, r4, #0
- ldr r0, [r4, #4]
- add r2, #0x60
- bl MOD08_022275C0
- ldr r0, [r4, #4]
- add r1, r6, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _022215CE
- mov r1, #1
- b _022215D2
-_022215CE:
- mov r1, #0
- mvn r1, r1
-_022215D2:
- add r0, r4, #0
- add r0, #0x54
- strh r1, [r0]
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02227470
- add r6, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02227470
- cmp r6, r0
- bne _022215FE
- mov r0, #1
- b _02221600
-_022215FE:
- mov r0, #0
-_02221600:
- str r0, [r4, #0x58]
- mov r1, #0
- add r0, r5, #0
- str r1, [r4, #0x68]
- bl MOD08_02212498
- add r2, r4, #0
- add r1, r0, #0
- add r0, r5, #0
- add r2, #0x1c
- add r3, sp, #0
- bl MOD08_02227BAC
- ldr r0, [r4, #0x24]
- mov r1, #1
- bl FUN_0200782C
- mov r1, #0x5e
- ldrsh r2, [r4, r1]
- mov r3, #0x54
- sub r0, r0, r2
- ldrsh r2, [r4, r3]
- cmp r2, #0
- ble _02221672
- add r2, r3, #0
- add r2, #0xfb
- str r2, [r4, #0x6c]
- sub r3, #0xa4
- str r3, [r4, #0x70]
- mov r2, #0x5c
- ldrsh r2, [r4, r2]
- str r2, [r4, #0x74]
- ldrsh r2, [r4, r1]
- add r2, r2, r0
- str r2, [r4, #0x78]
- mov r2, #0x62
- ldrsh r2, [r4, r2]
- add r2, r2, r0
- str r2, [r4, #0x7c]
- ldrsh r1, [r4, r1]
- add r1, r1, r0
- add r0, r4, #0
- add r0, #0x80
- str r1, [r0]
- add r0, r4, #0
- mov r1, #0xa
- add r0, #0x84
- str r1, [r0]
- add r0, r4, #0
- ldr r1, _022216C8 ; =0xFFFFFD76
- add r0, #0x88
- str r1, [r0]
- ldr r0, [r4, #0x24]
- mov r1, #2
- bl FUN_0200782C
- b _022216B2
-_02221672:
- add r2, r3, #0
- sub r2, #0xa4
- str r2, [r4, #0x6c]
- add r3, #0xfb
- str r3, [r4, #0x70]
- mov r2, #0x5c
- ldrsh r2, [r4, r2]
- str r2, [r4, #0x74]
- ldrsh r2, [r4, r1]
- add r2, r2, r0
- str r2, [r4, #0x78]
- mov r2, #0x62
- ldrsh r2, [r4, r2]
- add r2, r2, r0
- str r2, [r4, #0x7c]
- ldrsh r1, [r4, r1]
- add r1, r1, r0
- add r0, r4, #0
- add r0, #0x80
- str r1, [r0]
- add r0, r4, #0
- ldr r1, _022216C8 ; =0xFFFFFD76
- add r0, #0x84
- str r1, [r0]
- add r0, r4, #0
- mov r1, #0xa
- add r0, #0x88
- str r1, [r0]
- ldr r0, [r4, #0x24]
- mov r1, #2
- bl FUN_0200782C
-_022216B2:
- add r1, r4, #0
- add r1, #0x8c
- str r0, [r1]
- ldr r0, [r4, #4]
- ldr r1, _022216CC ; =MOD08_0222148C
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- nop
-_022216C8: .word 0xFFFFFD76
-_022216CC: .word MOD08_0222148C
-
- thumb_func_start MOD08_022216D0
-MOD08_022216D0: ; 0x022216D0
- push {r3, r4, lr}
- sub sp, #4
- add r4, r2, #0
- ldr r2, [sp, #0x10]
- str r2, [sp]
- mov r2, #0x50
- sub r2, r2, r3
- add r3, r4, #0
- bl FUN_02007E40
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_022216E8
-MOD08_022216E8: ; 0x022216E8
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r4, r1, #0
- add r2, r0, #0
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- cmp r0, #3
- bls _022216FC
- b _0222181E
-_022216FC:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02221708: ; jump table
- .short _02221710 - _02221708 - 2 ; case 0
- .short _0222176C - _02221708 - 2 ; case 1
- .short _022217AE - _02221708 - 2 ; case 2
- .short _02221804 - _02221708 - 2 ; case 3
-_02221710:
- ldr r2, [r4, #0x10]
- add r2, #0x4f
- str r2, [r4, #0x10]
- cmp r2, #0x50
- blt _02221738
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add sp, #4
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x20
- strb r1, [r0]
- ldr r1, [r4, #0x14]
- mov r0, #1
- eor r0, r1
- str r0, [r4, #0x14]
- mov r0, #0
- str r0, [r4, #0x10]
- pop {r3, r4, r5, r6, pc}
-_02221738:
- ldr r0, [r4, #0x14]
- cmp r0, #0
- bne _02221754
- mov r0, #2
- str r0, [sp]
- ldr r3, [r4]
- ldr r0, [r4, #0x1c]
- add r3, r3, #2
- mov r1, #0
- lsl r3, r3, #1
- bl MOD08_022216D0
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_02221754:
- mov r0, #2
- str r0, [sp]
- ldr r3, [r4]
- mov r1, #0x50
- add r3, r3, #2
- ldr r0, [r4, #0x1c]
- sub r1, r1, r2
- lsl r3, r3, #1
- bl MOD08_022216D0
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0222176C:
- ldr r0, [r4, #4]
- mov r3, #0xff
- sub r0, r0, #1
- str r0, [r4, #4]
- ldr r0, [r4, #0xc]
- lsl r3, r3, #8
- add r2, r0, #1
- str r2, [r4, #0xc]
- ldr r6, [r4, #8]
- ldr r1, [r4, #4]
- lsl r0, r6, #8
- add r5, r0, #0
- add r6, #0x50
- lsl r0, r6, #0x18
- and r5, r3
- lsr r0, r0, #0x18
- lsl r1, r1, #8
- orr r5, r0
- ldr r0, _02221868 ; =0x04000040
- and r3, r1
- lsl r1, r2, #0x18
- lsr r1, r1, #0x18
- strh r5, [r0]
- orr r1, r3
- strh r1, [r0, #4]
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r4, #0x20
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_022217AE:
- ldr r0, [r4, #4]
- mov r3, #0xff
- sub r0, r0, #1
- str r0, [r4, #4]
- ldr r0, [r4, #0xc]
- lsl r3, r3, #8
- add r2, r0, #1
- str r2, [r4, #0xc]
- ldr r6, [r4, #8]
- ldr r1, [r4, #4]
- lsl r0, r6, #8
- add r5, r0, #0
- add r6, #0x50
- lsl r0, r6, #0x18
- and r5, r3
- lsr r0, r0, #0x18
- lsl r1, r1, #8
- orr r5, r0
- ldr r0, _02221868 ; =0x04000040
- and r3, r1
- lsl r1, r2, #0x18
- lsr r1, r1, #0x18
- strh r5, [r0]
- orr r1, r3
- strh r1, [r0, #4]
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- cmp r0, #0x26
- ble _022217FA
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r4, #0x20
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_022217FA:
- mov r0, #0
- add r4, #0x20
- add sp, #4
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_02221804:
- ldr r0, [r4, #0x1c]
- mov r1, #0xe
- mov r2, #0
- bl FUN_02007558
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r4, #0x20
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0222181E:
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r3, [r0]
- ldr r1, _0222186C ; =0xFFFF1FFF
- and r1, r3
- add r3, r0, #0
- str r1, [r0]
- add r3, #0x48
- ldrh r5, [r3]
- mov r1, #0x3f
- bic r5, r1
- strh r5, [r3]
- add r3, r0, #0
- add r3, #0x4a
- ldrh r5, [r3]
- bic r5, r1
- add r1, r0, #0
- strh r5, [r3]
- mov r3, #0
- add r1, #0x40
- strh r3, [r1]
- add r0, #0x44
- strh r3, [r0]
- ldr r0, [r4, #0x24]
- add r1, r2, #0
- bl MOD08_02212438
- ldr r0, [r4, #0x1c]
- ldr r2, [r4, #0x18]
- mov r1, #0x17
- bl FUN_02007558
- add r0, r4, #0
- bl FreeToHeap
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-_02221868: .word 0x04000040
-_0222186C: .word 0xFFFF1FFF
-
- thumb_func_start MOD08_02221870
-MOD08_02221870: ; 0x02221870
- push {r4, r5, r6, lr}
- mov r1, #0x50
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r1, r4, #0
- add r0, r5, #0
- add r1, #0x20
- bl MOD08_02227B70
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022154D4
- str r0, [r4, #0x1c]
- mov r0, #0
- str r0, [r4]
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227468
- cmp r0, #3
- beq _022218B0
- cmp r0, #4
- bne _022218C4
-_022218B0:
- add r0, r5, #0
- bl MOD08_02215574
- add r1, r0, #0
- sub r1, r1, #1
- lsl r1, r1, #0x18
- mov r0, #2
- lsr r1, r1, #0x18
- bl FUN_020178BC
-_022218C4:
- ldr r0, [r4, #0x1c]
- mov r1, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- ldr r0, [r4, #0x1c]
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- ldr r0, [r4, #0x1c]
- mov r1, #0x29
- bl FUN_0200782C
- sub r0, r5, r0
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- ldr r0, [r4, #0x1c]
- mov r1, #0x17
- bl FUN_0200782C
- str r0, [r4, #0x18]
- ldr r0, [r4, #0x1c]
- mov r1, #0x17
- mov r2, #8
- bl FUN_02007558
- sub r6, #0x28
- str r6, [r4, #8]
- add r5, #0x28
- mov r6, #1
- lsl r6, r6, #0x1a
- add r3, r6, #0
- str r5, [r4, #4]
- mov r1, #0
- str r1, [r4, #0x10]
- ldr r0, [r4, #4]
- add r3, #0x48
- str r0, [r4, #0xc]
- str r1, [r4, #0x14]
- ldr r1, [r6]
- ldr r0, _0222197C ; =0xFFFF1FFF
- and r1, r0
- lsr r0, r6, #0xd
- orr r0, r1
- str r0, [r6]
- ldrh r2, [r3]
- mov r1, #0x3f
- mov r0, #0x1f
- bic r2, r1
- orr r0, r2
- mov r2, #0x20
- orr r0, r2
- strh r0, [r3]
- add r3, r6, #0
- add r3, #0x4a
- ldrh r5, [r3]
- mov r0, #0x1b
- bic r5, r1
- orr r0, r5
- orr r0, r2
- strh r0, [r3]
- ldr r2, [r4, #8]
- mov r0, #0xff
- lsl r1, r2, #8
- add r2, #0x50
- lsl r0, r0, #8
- lsl r2, r2, #0x18
- and r1, r0
- lsr r2, r2, #0x18
- orr r2, r1
- add r1, r6, #0
- ldr r5, [r4, #0xc]
- ldr r3, [r4, #4]
- add r1, #0x40
- strh r2, [r1]
- lsl r1, r3, #8
- and r1, r0
- lsl r0, r5, #0x18
- lsr r0, r0, #0x18
- orr r0, r1
- add r6, #0x44
- strh r0, [r6]
- ldr r0, [r4, #0x24]
- ldr r1, _02221980 ; =MOD08_022216E8
- add r2, r4, #0
- bl MOD08_02212400
- pop {r4, r5, r6, pc}
- nop
-_0222197C: .word 0xFFFF1FFF
-_02221980: .word MOD08_022216E8
-
- thumb_func_start MOD08_02221984
-MOD08_02221984: ; 0x02221984
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- mov r1, #0xe8
- mov r2, #0xea
- add r5, r0, #0
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r3, [r4, #8]
- add r0, #0xc
- bl MOD08_02217E58
- str r0, [sp]
- add r0, r4, #0
- add r0, #0x38
- bl MOD08_02218524
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- ldr r0, [r4, #4]
- bl FUN_0200BC1C
- mov r1, #0
- add r2, sp, #0
-_022219B8:
- ldr r0, [r2]
- cmp r0, #1
- beq _022219EE
- add r1, r1, #1
- add r2, r2, #4
- cmp r1, #3
- blt _022219B8
- mov r2, #0xe8
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0xea
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #8]
- mov r1, #1
- sub r2, #8
- bl FUN_02007558
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_022219EE:
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022219F4
-MOD08_022219F4: ; 0x022219F4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x44
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0xf0
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02212504
- str r0, [r4, #4]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #0
- str r0, [r4, #8]
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0xe8
- strh r0, [r1]
- ldr r0, [r4, #8]
- mov r1, #1
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0xea
- strh r0, [r1]
- ldr r0, [r4, #8]
- mov r1, #0x29
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0xec
- strh r0, [r1]
- mov r0, #0xea
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xea
- add r1, #8
- strh r1, [r0]
- add r0, r4, #0
- add r0, #0xc
- mov r1, #1
- mov r2, #8
- bl MOD08_02218654
- add r0, sp, #0x20
- mov r1, #1
- mov r2, #0xa
- bl MOD08_02218654
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C1C
- ldr r1, [r4, #0x18]
- mov r6, #0
- add r2, r1, #0
- mul r2, r0
- str r2, [r4, #0x18]
- ldr r1, [sp, #0x2c]
- add r5, r4, #0
- mul r0, r1
- str r0, [sp, #0x2c]
- mov r7, #0x64
-_02221A8C:
- ldr r0, [r4]
- add r1, r6, #0
- bl MOD08_022124D8
- str r0, [r5, #0x30]
- add r1, r7, #0
- bl FUN_0200C6C4
- ldr r0, [r5, #0x30]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [r5, #0x30]
- mov r1, #1
- bl FUN_0200C90C
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #2
- blt _02221A8C
- mov r0, #0xea
- ldrsh r1, [r4, r0]
- mov r0, #0xec
- ldrsh r0, [r4, r0]
- mov r3, #0xe8
- ldr r2, _02221B04 ; =MOD08_02217D98
- sub r0, r1, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- mov r0, #2
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4, #0x30]
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x34]
- str r0, [sp, #0x14]
- str r1, [sp, #0x18]
- str r1, [sp, #0x1c]
- add r0, r4, #0
- ldrsh r3, [r4, r3]
- add r0, #0x38
- add r1, sp, #0x20
- bl MOD08_0221847C
- mov r1, #0
- mvn r1, r1
- ldr r0, [r4]
- add r2, r1, #0
- bl MOD08_02227994
- ldr r0, [r4]
- ldr r1, _02221B08 ; =MOD08_02221984
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x44
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02221B04: .word MOD08_02217D98
-_02221B08: .word MOD08_02221984
-
- thumb_func_start MOD08_02221B0C
-MOD08_02221B0C: ; 0x02221B0C
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #6
- bls _02221B1C
- b _02221C62
-_02221B1C:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02221B28: ; jump table
- .short _02221B36 - _02221B28 - 2 ; case 0
- .short _02221B78 - _02221B28 - 2 ; case 1
- .short _02221BAE - _02221B28 - 2 ; case 2
- .short _02221BC6 - _02221B28 - 2 ; case 3
- .short _02221BF6 - _02221B28 - 2 ; case 4
- .short _02221C0E - _02221B28 - 2 ; case 5
- .short _02221C32 - _02221B28 - 2 ; case 6
-_02221B36:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02217ECC
- cmp r0, #0
- beq _02221B58
- mov r2, #0x48
- mov r3, #0x4a
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- ldr r1, [r4, #0xc]
- add r0, #0x10
- bl MOD08_02217CD0
- add sp, #8
- pop {r3, r4, r5, pc}
-_02221B58:
- mov r2, #0
- str r2, [sp]
- mov r0, #2
- str r0, [sp, #4]
- mov r1, #0x10
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- add r0, #0x10
- add r3, r2, #0
- bl MOD08_02217E80
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
-_02221B78:
- add r0, r4, #0
- add r0, #0x34
- bl MOD08_02218058
- cmp r0, #0
- beq _02221B92
- ldr r0, [r4, #0xc]
- ldr r2, [r4, #0x34]
- mov r1, #9
- bl FUN_02007558
- add sp, #8
- pop {r3, r4, r5, pc}
-_02221B92:
- add r0, r4, #0
- ldr r1, [r4, #0x34]
- add r0, #0x34
- mov r2, #0
- mov r3, #4
- bl MOD08_02218008
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- mov r0, #2
- strh r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_02221BAE:
- mov r0, #8
- ldrsh r1, [r4, r0]
- sub r1, r1, #1
- strh r1, [r4, #8]
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bge _02221C62
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
-_02221BC6:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02217ECC
- cmp r0, #0
- beq _02221BE8
- mov r2, #0x48
- mov r3, #0x4a
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- ldr r1, [r4, #0xc]
- add r0, #0x10
- bl MOD08_02217CD0
- add sp, #8
- pop {r3, r4, r5, pc}
-_02221BE8:
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- mov r0, #0x20
- strh r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_02221BF6:
- mov r0, #8
- ldrsh r1, [r4, r0]
- sub r1, r1, #1
- strh r1, [r4, #8]
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bge _02221C62
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
-_02221C0E:
- add r0, r4, #0
- add r0, #0x34
- bl MOD08_02218058
- cmp r0, #0
- beq _02221C28
- ldr r0, [r4, #0xc]
- ldr r2, [r4, #0x34]
- mov r1, #9
- bl FUN_02007558
- add sp, #8
- pop {r3, r4, r5, pc}
-_02221C28:
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
-_02221C32:
- mov r2, #0x48
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x4a
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_02007558
- ldr r0, [r4, #0xc]
- mov r1, #9
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_02221C62:
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02221C68
-MOD08_02221C68: ; 0x02221C68
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0xf0
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- mov r0, #0
- str r0, [r4, #4]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #0
- str r0, [r4, #0xc]
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x48
- strh r0, [r1]
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x4a
- strh r0, [r1]
- mov r1, #0
- add r0, r4, #0
- str r1, [sp]
- mov r2, #3
- str r2, [sp, #4]
- add r0, #0x10
- sub r2, #0x23
- add r3, r1, #0
- bl MOD08_02217E80
- add r0, r4, #0
- ldr r2, _02221D78 ; =0x00000E38
- add r0, #0x34
- mov r1, #0
- mov r3, #8
- bl MOD08_02218008
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C1C
- ldr r1, [r4, #0x18]
- add r2, r1, #0
- mul r2, r0
- str r2, [r4, #0x18]
- ldr r1, [r4, #0x3c]
- mul r0, r1
- str r0, [r4, #0x3c]
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C1C
- add r7, r0, #0
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227470
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227470
- cmp r6, #3
- bne _02221D36
- cmp r0, #3
- bne _02221D36
- mov r1, #0xa
- add r2, r1, #0
- ldr r0, [r4, #0xc]
- sub r2, #0x32
- bl FUN_02007558
- ldr r0, [r4, #0xc]
- mov r1, #0xb
- mov r2, #0x28
- bl FUN_02007558
- b _02221D6A
-_02221D36:
- cmp r6, #4
- bne _02221D54
- cmp r0, #4
- bne _02221D54
- ldr r0, [r4, #0xc]
- mov r1, #0xa
- mov r2, #0x28
- bl FUN_02007558
- ldr r0, [r4, #0xc]
- mov r1, #0xb
- mov r2, #0x28
- bl FUN_02007558
- b _02221D6A
-_02221D54:
- mov r2, #0x28
- ldr r0, [r4, #0xc]
- mov r1, #0xa
- mul r2, r7
- bl FUN_02007558
- ldr r0, [r4, #0xc]
- mov r1, #0xb
- mov r2, #0x28
- bl FUN_02007558
-_02221D6A:
- ldr r0, [r4]
- ldr r1, _02221D7C ; =MOD08_02221B0C
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02221D78: .word 0x00000E38
-_02221D7C: .word MOD08_02221B0C
-
- thumb_func_start MOD08_02221D80
-MOD08_02221D80: ; 0x02221D80
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r0, r1, #0
- add r1, r2, #0
- add r2, r3, #0
- ldr r4, [sp, #0x10]
- bl FUN_0200C154
- str r0, [r5]
- add r6, r4, #4
- add r3, r5, #4
- mov r2, #4
-_02221D98:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _02221D98
- ldr r0, [r6]
- add r2, r5, #0
- str r0, [r3]
- add r3, r4, #0
- add r3, #0x28
- ldmia r3!, {r0, r1}
- add r2, #0x28
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- str r0, [r2]
- mov r0, #0x3c
- ldrsh r0, [r4, r0]
- strh r0, [r5, #0x3c]
- mov r0, #0x3e
- ldrsh r0, [r4, r0]
- strh r0, [r5, #0x3e]
- mov r0, #0x40
- ldrsh r1, [r4, r0]
- add r0, r5, #0
- add r0, #0x40
- strh r1, [r0]
- ldr r0, [r4, #0x44]
- mov r1, #0
- str r0, [r5, #0x44]
- str r1, [r5, #0x48]
- ldr r0, [r5]
- bl FUN_0200C644
- ldr r0, [r5]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r5]
- mov r1, #1
- bl FUN_0200C6B0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02221DF0
-MOD08_02221DF0: ; 0x02221DF0
- ldr r3, _02221DF8 ; =FUN_0200C3DC
- ldr r0, [r0]
- bx r3
- nop
-_02221DF8: .word FUN_0200C3DC
-
- thumb_func_start MOD08_02221DFC
-MOD08_02221DFC: ; 0x02221DFC
- ldr r3, _02221E04 ; =FUN_0200C644
- ldr r0, [r0]
- bx r3
- nop
-_02221E04: .word FUN_0200C644
-
- thumb_func_start MOD08_02221E08
-MOD08_02221E08: ; 0x02221E08
- push {r4, lr}
- sub sp, #0x10
- add r4, r0, #0
- ldr r0, [r4, #0x48]
- cmp r0, #0
- bne _02221E1A
- add sp, #0x10
- mov r0, #1
- pop {r4, pc}
-_02221E1A:
- ldr r0, [r4, #0x44]
- cmp r0, #0
- beq _02221E2A
- cmp r0, #1
- beq _02221E2A
- cmp r0, #2
- beq _02221EAC
- b _02221EB2
-_02221E2A:
- add r0, r4, #4
- bl MOD08_02217D98
- cmp r0, #0
- beq _02221E6A
- add r0, r4, #0
- add r0, #0x28
- bl MOD08_022180C4
- mov r0, #0x3c
- ldrsh r1, [r4, r0]
- ldr r0, [r4, #0x28]
- add r0, r1, r0
- str r0, [r4, #0x1c]
- mov r1, #0x3e
- ldrsh r2, [r4, r1]
- mov r1, #4
- ldrsh r1, [r4, r1]
- ldr r0, [r4]
- add r1, r2, r1
- mov r2, #0x40
- ldrsh r3, [r4, r2]
- mov r2, #6
- ldrsh r2, [r4, r2]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add r2, r3, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C714
- b _02221EB2
-_02221E6A:
- ldr r0, [r4, #0x44]
- cmp r0, #1
- bge _02221EA4
- cmp r0, #0
- bne _02221E92
- ldr r1, [r4, #0xc]
- ldr r2, _02221EB8 ; =0x00007FFF
- lsl r1, r1, #0x10
- str r2, [sp]
- ldr r0, [r4, #0x10]
- lsr r1, r1, #0x10
- str r0, [sp, #4]
- ldr r0, [r4, #0x18]
- add r3, r1, #0
- str r0, [sp, #8]
- ldr r0, _02221EBC ; =0x0000071C
- str r0, [sp, #0xc]
- add r0, r4, #4
- bl MOD08_02217D44
-_02221E92:
- ldr r0, [r4, #8]
- ldr r2, _02221EC0 ; =0x0000FFFF
- str r0, [sp]
- add r0, r4, #0
- ldr r3, _02221EC4 ; =0xFFFFF000
- add r0, #0x28
- mov r1, #0
- bl MOD08_022180AC
-_02221EA4:
- ldr r0, [r4, #0x44]
- add r0, r0, #1
- str r0, [r4, #0x44]
- b _02221EB2
-_02221EAC:
- add sp, #0x10
- mov r0, #0
- pop {r4, pc}
-_02221EB2:
- mov r0, #1
- add sp, #0x10
- pop {r4, pc}
- .align 2, 0
-_02221EB8: .word 0x00007FFF
-_02221EBC: .word 0x0000071C
-_02221EC0: .word 0x0000FFFF
-_02221EC4: .word 0xFFFFF000
-
- thumb_func_start MOD08_02221EC8
-MOD08_02221EC8: ; 0x02221EC8
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r7, r0, #0
- add r0, r4, #0
- add r0, #0xf0
- ldr r0, [r0]
- cmp r0, #6
- bhi _02221F3C
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02221EE4: ; jump table
- .short _02221EF2 - _02221EE4 - 2 ; case 0
- .short _02221F0A - _02221EE4 - 2 ; case 1
- .short _02221F56 - _02221EE4 - 2 ; case 2
- .short _02221F6C - _02221EE4 - 2 ; case 3
- .short _0222200C - _02221EE4 - 2 ; case 4
- .short _02222036 - _02221EE4 - 2 ; case 5
- .short _02222076 - _02221EE4 - 2 ; case 6
-_02221EF2:
- add r0, r4, #0
- add r0, #0xc
- bl MOD08_02221E08
- add r0, r4, #0
- add r0, #0xf0
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xf0
- str r1, [r0]
- b _022220A0
-_02221F0A:
- add r0, r4, #0
- add r0, #0xfc
- ldr r1, [r0]
- add r0, r4, #0
- add r1, #0xa
- add r0, #0xfc
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xfc
- ldr r0, [r0]
- mov r1, #0xa
- bl _s32_div_f
- mov r1, #0x1f
- sub r1, r1, r0
- lsl r1, r1, #8
- orr r1, r0
- ldr r0, _022220A8 ; =0x04000052
- strh r1, [r0]
- add r0, r4, #0
- add r0, #0xfc
- ldr r1, [r0]
- ldr r0, _022220AC ; =0x00000136
- cmp r1, r0
- bge _02221F3E
-_02221F3C:
- b _022220A0
-_02221F3E:
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl FUN_0200C90C
- add r0, r4, #0
- add r0, #0xf0
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xf0
- str r1, [r0]
- b _022220A0
-_02221F56:
- ldr r1, _022220B0 ; =0x0000FFFF
- ldr r0, _022220A8 ; =0x04000052
- strh r1, [r0]
- add r0, r4, #0
- add r0, #0xf0
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xf0
- str r1, [r0]
- b _022220A0
-_02221F6C:
- add r0, r4, #0
- add r0, #0xf4
- ldr r0, [r0]
- cmp r0, #0
- bgt _02221FB0
- add r0, r4, #0
- add r0, #0xf8
- ldr r0, [r0]
- mov r2, #0x4c
- add r3, r0, #0
- mul r3, r2
- add r0, r4, r3
- mov r1, #1
- add r0, #0xa0
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xf8
- ldr r0, [r0]
- mul r2, r0
- add r0, r4, r2
- ldr r0, [r0, #0x58]
- bl FUN_0200C644
- add r0, r4, #0
- add r0, #0xf8
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xf8
- str r1, [r0]
- add r0, r4, #0
- mov r1, #8
- add r0, #0xf4
- str r1, [r0]
-_02221FB0:
- add r0, r4, #0
- add r0, #0xf8
- ldr r0, [r0]
- cmp r0, #2
- bge _02221FC8
- add r0, r4, #0
- add r0, #0xf4
- ldr r0, [r0]
- sub r1, r0, #1
- add r0, r4, #0
- add r0, #0xf4
- str r1, [r0]
-_02221FC8:
- add r0, r4, #0
- add r0, #0xc
- bl MOD08_02221E08
- add r5, r4, #0
- add r6, r0, #0
- mov r7, #0
- add r5, #0x58
-_02221FD8:
- add r0, r5, #0
- bl MOD08_02221E08
- str r0, [sp]
- cmp r0, #0
- bne _02221FEC
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02221DFC
-_02221FEC:
- ldr r0, [sp]
- add r7, r7, #1
- orr r6, r0
- add r5, #0x4c
- cmp r7, #2
- blt _02221FD8
- cmp r6, #0
- bne _022220A0
- add r0, r4, #0
- add r0, #0xf0
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xf0
- str r1, [r0]
- b _022220A0
-_0222200C:
- ldr r0, [r4, #0xc]
- bl FUN_0200C5A8
- ldr r0, [r4, #0xc]
- ldr r0, [r0]
- bl FUN_02020388
- cmp r0, #0
- bne _022220A0
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200C90C
- add r0, r4, #0
- add r0, #0xf0
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xf0
- str r1, [r0]
- b _022220A0
-_02222036:
- add r0, r4, #0
- add r0, #0xfc
- ldr r1, [r0]
- add r0, r4, #0
- sub r1, #0xa
- add r0, #0xfc
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xfc
- ldr r0, [r0]
- mov r1, #0xa
- bl _s32_div_f
- mov r1, #0x1f
- sub r1, r1, r0
- lsl r1, r1, #8
- orr r1, r0
- ldr r0, _022220A8 ; =0x04000052
- strh r1, [r0]
- add r0, r4, #0
- add r0, #0xfc
- ldr r0, [r0]
- cmp r0, #0
- bgt _022220A0
- add r0, r4, #0
- add r0, #0xf0
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xf0
- str r1, [r0]
- b _022220A0
-_02222076:
- add r5, r4, #0
- mov r6, #0
- add r5, #0x58
-_0222207C:
- add r0, r5, #0
- bl MOD08_02221DF0
- add r6, r6, #1
- add r5, #0x4c
- cmp r6, #2
- blt _0222207C
- ldr r0, [r4, #0xc]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_022220A0:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022220A8: .word 0x04000052
-_022220AC: .word 0x00000136
-_022220B0: .word 0x0000FFFF
-
- thumb_func_start MOD08_022220B4
-MOD08_022220B4: ; 0x022220B4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x48
- add r5, r0, #0
- add r6, r1, #0
- add r7, r2, #0
- str r3, [sp, #0x10]
- bl MOD08_02212014
- mov r1, #1
- lsl r1, r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- str r6, [r4, #4]
- str r7, [r4, #8]
- mov r1, #8
- add r0, #0xf4
- str r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf8
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xf0
- str r1, [r0]
- add r0, r5, #0
- bl MOD08_02212458
- add r6, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02217C1C
- ldr r1, [sp, #0x10]
- lsl r0, r0, #0x11
- str r1, [r4, #0xc]
- mov r1, #0
- str r1, [r4, #0x50]
- ldr r2, _022221EC ; =0x0000BFFF
- neg r0, r0
- str r2, [sp]
- str r0, [sp, #4]
- ldr r1, _022221F0 ; =0xFFFF8000
- ldr r0, _022221F4 ; =0x0000071C
- str r1, [sp, #8]
- str r0, [sp, #0xc]
- add r0, r4, #0
- lsr r1, r1, #0x12
- add r0, #0x10
- add r3, r1, #0
- bl MOD08_02217D44
- ldr r0, [r4, #0x14]
- ldr r2, _022221F8 ; =0x0000FFFF
- str r0, [sp]
- add r0, r4, #0
- ldr r3, _022221FC ; =0xFFFFF000
- add r0, #0x34
- mov r1, #0
- bl MOD08_022180AC
- add r0, r4, #0
- ldr r1, [r4, #0x28]
- add r0, #0x48
- strh r1, [r0]
- mov r0, #1
- str r0, [r4, #0x54]
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0
- bl MOD08_02217B98
- add r1, r4, #0
- add r1, #0x4a
- strh r0, [r1]
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #1
- bl MOD08_02217B98
- add r1, r4, #0
- add r1, #0x4c
- strh r0, [r1]
- mov r1, #0x4a
- mov r2, #0x4c
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- bl FUN_0200C714
- ldr r0, [r4, #0xc]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r1, [r4]
- add r0, sp, #0x14
- bl MOD08_02215474
- mov r0, #0x4a
- ldrsh r0, [r4, r0]
- add r1, sp, #0x14
- add r5, r4, #0
- strh r0, [r1]
- mov r0, #0x4c
- ldrsh r0, [r4, r0]
- add r7, r4, #0
- mov r6, #0
- strh r0, [r1, #2]
- add r5, #0x58
- add r7, #0xc
-_0222219A:
- str r7, [sp]
- ldr r1, [r4, #4]
- ldr r2, [r4, #8]
- add r0, r5, #0
- add r3, sp, #0x14
- bl MOD08_02221D80
- add r6, r6, #1
- add r5, #0x4c
- cmp r6, #2
- blt _0222219A
- add r0, r4, #0
- mov r1, #0
- add r0, #0xfc
- str r1, [r0]
- ldr r0, [r4]
- mov r2, #0x1f
- bl MOD08_02227994
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200C90C
- mov r6, #0
- add r5, r4, #0
- mov r7, #1
-_022221CE:
- ldr r0, [r5, #0x58]
- add r1, r7, #0
- bl FUN_0200C90C
- add r6, r6, #1
- add r5, #0x4c
- cmp r6, #2
- blt _022221CE
- ldr r0, [r4]
- ldr r1, _02222200 ; =MOD08_02221EC8
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x48
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022221EC: .word 0x0000BFFF
-_022221F0: .word 0xFFFF8000
-_022221F4: .word 0x0000071C
-_022221F8: .word 0x0000FFFF
-_022221FC: .word 0xFFFFF000
-_02222200: .word MOD08_02221EC8
-
- thumb_func_start MOD08_02222204
-MOD08_02222204: ; 0x02222204
- push {r4, lr}
- sub sp, #8
- add r4, r0, #0
- mov r2, #0x60
- ldrsh r3, [r4, r2]
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x5c]
- mov r1, #0
- add r2, r3, r2
- bl FUN_02007558
- mov r2, #0x62
- ldrsh r3, [r4, r2]
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x5c]
- mov r1, #1
- add r2, r3, r2
- bl FUN_02007558
- mov r1, #0x60
- ldrsh r2, [r4, r1]
- mov r1, #0x10
- ldrsh r1, [r4, r1]
- ldr r0, [r4, #0x58]
- add r1, r2, r1
- mov r2, #0x62
- ldrsh r3, [r4, r2]
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add r3, r3, r2
- mov r2, #0x66
- ldrsh r2, [r4, r2]
- sub r2, r3, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C714
- add r0, r4, #0
- add r0, #0x34
- add r1, sp, #4
- add r2, sp, #0
- bl MOD08_0221825C
- mov r0, #0x64
- ldrsh r0, [r4, r0]
- bl _fflt
- add r1, r0, #0
- ldr r0, _02222298 ; =0x3DCCCCCD
- bl _fmul
- add r1, r0, #0
- ldr r0, [sp, #4]
- bl _fadd
- add r1, r0, #0
- str r1, [sp, #4]
- ldr r0, [r4, #0x58]
- ldr r2, [sp]
- bl FUN_0200C884
- mov r0, #0x64
- ldrsh r1, [r4, r0]
- sub r0, #0x65
- add r4, #0x64
- mul r0, r1
- strh r0, [r4]
- add sp, #8
- pop {r4, pc}
- nop
-_02222298: .word 0x3DCCCCCD
-
- thumb_func_start MOD08_0222229C
-MOD08_0222229C: ; 0x0222229C
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r2, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _022222B4
- cmp r0, #1
- beq _022222EE
- cmp r0, #2
- beq _0222232A
- b _0222233C
-_022222B4:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_022183F0
- add r0, r4, #0
- add r0, #0x34
- bl MOD08_02218224
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02222204
- cmp r5, #0
- bne _0222233C
- mov r2, #0xa
- str r2, [sp]
- str r2, [sp, #4]
- mov r0, #4
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x34
- mov r1, #0xc
- mov r3, #0xf
- bl MOD08_022181A8
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _0222233C
-_022222EE:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_022183F0
- add r0, r4, #0
- add r0, #0x34
- bl MOD08_02218224
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02222204
- cmp r5, #0
- bne _0222233C
- mov r2, #0x60
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x5c]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x62
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x5c]
- mov r1, #1
- bl FUN_02007558
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _0222233C
-_0222232A:
- ldr r0, [r4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0xc
- pop {r4, r5, pc}
-_0222233C:
- ldr r0, [r4, #4]
- bl FUN_0200BC1C
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02222348
-MOD08_02222348: ; 0x02222348
- push {r4, r5, lr}
- sub sp, #0xc
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x68
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02212504
- str r0, [r4, #4]
- mov r0, #0
- str r0, [r4, #8]
- str r0, [r4, #0xc]
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #0
- str r0, [r4, #0x5c]
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x60
- strh r0, [r1]
- ldr r0, [r4, #0x5c]
- mov r1, #1
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x62
- strh r0, [r1]
- ldr r0, [r4, #0x5c]
- mov r1, #0x29
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x66
- strh r0, [r1]
- mov r0, #6
- str r0, [sp]
- add r0, r4, #0
- add r0, #0x10
- mov r1, #2
- mov r2, #0
- mov r3, #1
- bl MOD08_022183C0
- ldr r0, [r4]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x58]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #0x58]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r4, #0x58]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x58]
- mov r1, #1
- bl FUN_0200C6B0
- mov r0, #0xf
- str r0, [sp]
- mov r1, #0xa
- str r1, [sp, #4]
- mov r0, #7
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x34
- mov r2, #0xc
- add r3, r1, #0
- bl MOD08_022181A8
- add r0, r4, #0
- mov r1, #1
- add r0, #0x64
- strh r1, [r0]
- ldr r0, [r4]
- mov r1, #0x1c
- mov r2, #0xf
- bl MOD08_02227994
- ldr r0, [r4]
- ldr r1, _02222414 ; =MOD08_0222229C
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-_02222414: .word MOD08_0222229C
-
- thumb_func_start MOD08_02222418
-MOD08_02222418: ; 0x02222418
- mov r2, #0x12
- ldrsh r2, [r0, r2]
- mov r3, #0x10
- ldrsh r0, [r0, r3]
- neg r2, r2
- lsl r2, r2, #0x10
- neg r0, r0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- orr r0, r2
- mov r2, #3
- ldr r3, _02222434 ; =0x020CE1FC
- lsl r2, r2, #8
- bx r3
- .align 2, 0
-_02222434: .word 0x020CE1FC
-
- thumb_func_start MOD08_02222438
-MOD08_02222438: ; 0x02222438
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- bl MOD08_02218970
- str r0, [sp, #0xc]
- ldr r1, [sp, #0xc]
- add r0, r5, #0
- bl MOD08_02222418
- add r0, r5, #0
- add r0, #0x1c
- bl MOD08_02217ECC
- str r0, [sp, #8]
- mov r0, #0x14
- ldrsh r4, [r5, r0]
- mov r0, #0x16
- ldrsh r0, [r5, r0]
- cmp r4, r0
- bgt _022224D8
- ldr r1, [sp, #0xc]
- lsl r2, r4, #2
- add r1, r1, r2
- str r1, [sp]
-_0222246C:
- ldr r1, [sp]
- sub r0, r0, r4
- ldr r2, [r1]
- lsl r1, r2, #0x10
- asr r1, r1, #0x10
- str r1, [sp, #4]
- lsr r1, r2, #0x10
- lsl r1, r1, #0x10
- asr r7, r1, #0x10
- mov r1, #0x1e
- ldrsh r1, [r5, r1]
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- sub r0, r7, r0
- lsl r0, r0, #0x10
- asr r7, r0, #0x10
- mov r0, #0x1c
- ldrsh r1, [r5, r0]
- mov r0, #0x14
- ldrsh r0, [r5, r0]
- add r0, #0x28
- sub r0, r0, r4
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- ldr r1, [sp, #4]
- sub r0, r1, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #4]
- sub r6, r4, #1
- bpl _022224B4
- add r6, #0xc0
-_022224B4:
- ldr r0, [sp, #4]
- lsl r1, r7, #0x10
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- lsr r1, r1, #0x10
- bl MOD08_02218998
- ldr r1, [sp, #0xc]
- lsl r2, r6, #2
- str r0, [r1, r2]
- ldr r0, [sp]
- add r4, r4, #1
- add r0, r0, #4
- str r0, [sp]
- mov r0, #0x16
- ldrsh r0, [r5, r0]
- cmp r4, r0
- ble _0222246C
-_022224D8:
- ldr r0, [sp, #8]
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022224E0
-MOD08_022224E0: ; 0x022224E0
- push {r4, r5, r6, lr}
- sub sp, #8
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #4
- bhi _02222548
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022224FA: ; jump table
- .short _02222504 - _022224FA - 2 ; case 0
- .short _02222536 - _022224FA - 2 ; case 1
- .short _0222255E - _022224FA - 2 ; case 2
- .short _022225AE - _022224FA - 2 ; case 3
- .short _022225CE - _022224FA - 2 ; case 4
-_02222504:
- add r0, r4, #0
- bl MOD08_02222438
- cmp r0, #0
- bne _02222548
- ldr r0, [r4, #4]
- mov r1, #0x1f
- add r0, r0, #1
- str r0, [r4, #4]
- ldr r0, [r4]
- mov r2, #0
- bl MOD08_02227A00
- mov r1, #0x1f
- mov r2, #0
- str r1, [sp]
- mov r0, #0x10
- add r4, #0x40
- str r0, [sp, #4]
- add r0, r4, #0
- add r3, r2, #0
- bl MOD08_022186D4
- add sp, #8
- pop {r4, r5, r6, pc}
-_02222536:
- add r0, r4, #0
- bl MOD08_02222438
- add r0, r4, #0
- add r0, #0x40
- bl MOD08_02218704
- cmp r0, #0
- bne _0222254A
-_02222548:
- b _02222650
-_0222254A:
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- ldr r0, [r4, #0x18]
- bl MOD08_02218984
- mov r0, #0
- add sp, #8
- str r0, [r4, #8]
- pop {r4, r5, r6, pc}
-_0222255E:
- ldr r0, [r4]
- bl MOD08_02212490
- mov r3, #0x10
- ldrsh r3, [r4, r3]
- mov r1, #2
- mov r2, #0
- neg r3, r3
- bl FUN_020179E0
- ldr r0, [r4]
- bl MOD08_02212490
- mov r3, #0x12
- ldrsh r3, [r4, r3]
- mov r1, #2
- mov r2, #3
- neg r3, r3
- bl FUN_020179E0
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- cmp r0, #8
- ble _02222650
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- add r0, r4, #0
- mov r2, #0x1f
- add r0, #0x40
- add r3, r2, #0
- bl MOD08_022186D4
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, r6, pc}
-_022225AE:
- add r0, r4, #0
- add r0, #0x40
- bl MOD08_02218704
- cmp r0, #0
- beq _02222650
- ldr r0, [r4, #0xc]
- mov r1, #6
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, r6, pc}
-_022225CE:
- ldr r0, [r4, #0x18]
- bl MOD08_0221894C
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r5, r0, #0
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215600
- add r1, r0, #0
- lsl r0, r5, #0x18
- lsl r1, r1, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldr r0, [r4]
- bl MOD08_02215574
- add r1, r0, #0
- lsl r1, r1, #0x18
- mov r0, #0
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02212014
- add r3, r0, #0
- lsl r0, r5, #0x18
- mov r1, #1
- lsr r0, r0, #0x18
- lsl r1, r1, #0xe
- mov r2, #0
- bl FUN_02017F18
- ldr r0, [r4]
- bl MOD08_02212490
- add r5, r0, #0
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r1, r0, #0
- lsl r1, r1, #0x18
- add r0, r5, #0
- lsr r1, r1, #0x18
- bl FUN_02018744
- ldr r0, [r4]
- add r1, r6, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_02222650:
- add sp, #8
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_02222654
-MOD08_02222654: ; 0x02222654
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x68
- bl AllocFromHeap
- mov r1, #0
- mov r2, #0x68
- add r4, r0, #0
- bl memset
- ldr r1, _022227BC ; =MOD08_022224E0
- str r5, [r4]
- add r0, r5, #0
- add r2, r4, #0
- bl MOD08_02212400
- str r0, [sp, #0x14]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x10]
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x12]
- ldr r0, [r4, #0xc]
- mov r1, #0x29
- bl FUN_0200782C
- mov r1, #0x12
- ldrsh r2, [r4, r1]
- sub r0, r2, r0
- strh r0, [r4, #0x12]
- mov r0, #0x10
- ldrsh r0, [r4, r0]
- mov r2, #1
- sub r0, #0x28
- strh r0, [r4, #0x10]
- ldrsh r0, [r4, r1]
- mov r1, #6
- sub r0, #0x28
- strh r0, [r4, #0x12]
- ldr r0, [r4, #0xc]
- bl FUN_02007558
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C1C
- add r6, r0, #0
- mov r0, #0x12
- ldrsh r1, [r4, r0]
- sub r1, #8
- strh r1, [r4, #0x14]
- ldrsh r0, [r4, r0]
- add r0, #0x58
- strh r0, [r4, #0x16]
- mov r0, #0x14
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bge _022226F0
- mov r0, #0
- strh r0, [r4, #0x14]
-_022226F0:
- mov r0, #0x16
- ldrsh r0, [r4, r0]
- cmp r0, #0xc0
- ble _022226FC
- mov r0, #0xc0
- strh r0, [r4, #0x16]
-_022226FC:
- add r0, r5, #0
- mov r1, #1
- bl MOD08_022155C4
- add r7, r0, #0
- ldr r0, [sp, #0x14]
- bl FUN_0201B6CC
- str r0, [sp, #0x18]
- ldrh r0, [r4, #0x10]
- ldrh r1, [r4, #0x12]
- bl MOD08_02218998
- str r0, [sp, #0x1c]
- add r0, r5, #0
- bl MOD08_02212014
- mov r1, #0x50
- str r1, [sp]
- ldr r1, [sp, #0x18]
- str r7, [sp, #4]
- add r1, r1, #1
- str r1, [sp, #8]
- ldr r1, [sp, #0x1c]
- ldr r2, _022227C0 ; =0x0000038E
- str r1, [sp, #0xc]
- str r0, [sp, #0x10]
- mov r0, #0x14
- mov r1, #0x16
- ldrsh r0, [r4, r0]
- ldrsh r1, [r4, r1]
- lsl r3, r6, #0xf
- lsl r0, r0, #0x18
- lsl r1, r1, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl MOD08_022188DC
- str r0, [r4, #0x18]
- mov r0, #0x28
- str r0, [sp]
- mov r0, #0x18
- str r0, [sp, #4]
- add r0, r4, #0
- mov r1, #0
- add r0, #0x1c
- mov r2, #0x50
- add r3, r1, #0
- bl MOD08_02217E80
- ldr r0, [r4, #0x24]
- add r1, r0, #0
- mul r1, r6
- str r1, [r4, #0x24]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02227468
- sub r0, r0, #3
- cmp r0, #1
- bhi _022227AE
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02215574
- add r1, r0, #0
- lsl r0, r5, #0x18
- lsl r1, r1, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldr r0, [r4]
- bl MOD08_02215574
- add r1, r0, #0
- add r1, r1, #1
- lsl r1, r1, #0x18
- mov r0, #0
- lsr r1, r1, #0x18
- bl FUN_020178BC
-_022227AE:
- ldr r0, [sp, #0x14]
- add r1, r4, #0
- bl MOD08_022224E0
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022227BC: .word MOD08_022224E0
-_022227C0: .word 0x0000038E
-
- thumb_func_start MOD08_022227C4
-MOD08_022227C4: ; 0x022227C4
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r2, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #3
- bhi _02222874
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022227DE: ; jump table
- .short _022227E6 - _022227DE - 2 ; case 0
- .short _0222280C - _022227DE - 2 ; case 1
- .short _0222281E - _022227DE - 2 ; case 2
- .short _02222862 - _022227DE - 2 ; case 3
-_022227E6:
- add r0, r4, #0
- add r0, #0x38
- bl MOD08_02218080
- ldr r2, [r4, #0x38]
- mov r1, #0x1f
- sub r1, r1, r2
- lsl r1, r1, #8
- orr r2, r1
- ldr r1, _02222880 ; =0x04000052
- cmp r0, #0
- strh r2, [r1]
- bne _02222874
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- mov r0, #0
- str r0, [r4, #0xc]
- b _02222874
-_0222280C:
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- cmp r0, #0x20
- ble _02222874
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02222874
-_0222281E:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- add r5, r0, #0
- add r0, r4, #0
- add r0, #0x14
- add r1, sp, #4
- add r2, sp, #0
- bl MOD08_0221825C
- ldr r0, [r4, #0x4c]
- cmp r0, #1
- bne _02222844
- ldr r1, [sp, #4]
- mov r0, #0
- bl _fsub
- str r0, [sp, #4]
-_02222844:
- ldr r0, [r4, #0x10]
- ldr r1, [sp, #4]
- ldr r2, [sp]
- bl FUN_0200C884
- cmp r5, #0
- bne _02222874
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02222874
-_02222862:
- ldr r0, [r4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #8
- pop {r3, r4, r5, pc}
-_02222874:
- ldr r0, [r4, #4]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, pc}
- nop
-_02222880: .word 0x04000052
-
- thumb_func_start MOD08_02222884
-MOD08_02222884: ; 0x02222884
- push {r4, r5, lr}
- sub sp, #0xc
- add r5, r1, #0
- add r2, r0, #0
- ldr r0, [r5, #4]
- cmp r0, #0
- beq _022228A0
- cmp r0, #1
- beq _02222928
- cmp r0, #2
- bne _0222289C
- b _022229B4
-_0222289C:
- add sp, #0xc
- pop {r4, r5, pc}
-_022228A0:
- add r0, r5, #0
- add r0, #0x14
- bl MOD08_022183F0
- mov r2, #0x38
- mov r3, #0x3a
- add r0, r5, #0
- ldrsh r2, [r5, r2]
- ldrsh r3, [r5, r3]
- ldr r1, [r5, #8]
- add r0, #0x14
- bl MOD08_02217CD0
- ldr r0, [r5, #0x10]
- cmp r0, #1
- bne _022228DA
- mov r3, #0x3a
- ldrsh r4, [r5, r3]
- ldr r3, [r5, #0x3c]
- mov r2, #0x38
- sub r3, r4, r3
- add r0, r5, #0
- lsl r3, r3, #0x10
- ldrsh r2, [r5, r2]
- ldr r1, [r5, #0xc]
- add r0, #0x14
- asr r3, r3, #0x10
- bl MOD08_02217C94
-_022228DA:
- ldr r0, [r5, #8]
- bl FUN_02007F20
- cmp r0, #0
- bne _022229C2
- mov r2, #0
- str r2, [sp]
- ldr r0, [r5, #8]
- mov r1, #0x10
- add r3, r2, #0
- bl FUN_02007E68
- ldr r0, [r5, #0x10]
- cmp r0, #1
- bne _0222291E
- ldr r0, [r5, #0xc]
- bl MOD08_02217C08
- mov r1, #1
- add r4, r1, #0
- lsl r4, r0
- ldr r0, [r5]
- bl MOD08_02215504
- mov r1, #0x10
- str r1, [sp]
- mov r3, #0
- lsl r2, r4, #0x10
- str r3, [sp, #4]
- mov r1, #4
- lsr r2, r2, #0x10
- str r3, [sp, #8]
- bl FUN_02003210
-_0222291E:
- ldr r0, [r5, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r5, #4]
- pop {r4, r5, pc}
-_02222928:
- add r0, r5, #0
- add r0, #0x14
- bl MOD08_022183F0
- mov r2, #0x38
- mov r3, #0x3a
- add r0, r5, #0
- ldrsh r2, [r5, r2]
- ldrsh r3, [r5, r3]
- ldr r1, [r5, #8]
- add r0, #0x14
- bl MOD08_02217CD0
- ldr r0, [r5, #0x10]
- cmp r0, #1
- bne _02222962
- mov r3, #0x3a
- ldrsh r4, [r5, r3]
- ldr r3, [r5, #0x3c]
- mov r2, #0x38
- sub r3, r4, r3
- add r0, r5, #0
- lsl r3, r3, #0x10
- ldrsh r2, [r5, r2]
- ldr r1, [r5, #0xc]
- add r0, #0x14
- asr r3, r3, #0x10
- bl MOD08_02217C94
-_02222962:
- ldr r0, [r5, #8]
- bl FUN_02007F20
- cmp r0, #0
- bne _022229C2
- mov r2, #0x38
- ldrsh r2, [r5, r2]
- ldr r0, [r5, #8]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x3a
- ldrsh r2, [r5, r2]
- ldr r0, [r5, #8]
- mov r1, #1
- bl FUN_02007558
- ldr r0, [r5, #0x10]
- cmp r0, #1
- bne _022229AA
- ldr r0, [r5, #8]
- mov r1, #6
- mov r2, #0
- bl FUN_02007558
- mov r2, #0x3a
- ldrsh r3, [r5, r2]
- ldr r2, [r5, #0x3c]
- mov r1, #0x38
- sub r2, r3, r2
- lsl r2, r2, #0x10
- ldrsh r1, [r5, r1]
- ldr r0, [r5, #0xc]
- asr r2, r2, #0x10
- bl FUN_0200C714
-_022229AA:
- ldr r0, [r5, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r5, #4]
- pop {r4, r5, pc}
-_022229B4:
- ldr r0, [r5]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl FreeToHeap
-_022229C2:
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022229C8
-MOD08_022229C8: ; 0x022229C8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x50
- bl AllocFromHeap
- add r4, r0, #0
- mov r1, #0
- mov r2, #0x50
- bl memset
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02212504
- str r0, [r4, #4]
- add r0, r5, #0
- bl MOD08_02212004
- str r0, [r4, #0x4c]
- ldr r0, [r4]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x10]
- mov r0, #8
- str r0, [sp]
- add r0, r4, #0
- mov r2, #0xa
- add r0, #0x14
- mov r1, #0xe
- add r3, r2, #0
- bl MOD08_02218120
- add r0, r4, #0
- add r0, #0x38
- mov r1, #0
- mov r2, #0x10
- mov r3, #8
- bl MOD08_02218030
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4]
- mov r1, #0
- mov r2, #0x1f
- bl MOD08_02227994
- ldr r0, [r4, #0x10]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r4, #0x4c]
- cmp r0, #1
- ldr r0, [r4, #0x10]
- bne _02222A48
- ldr r1, _02222A6C ; =0xBFB33333
- ldr r2, _02222A70 ; =0x3FB33333
- bl FUN_0200C884
- b _02222A50
-_02222A48:
- ldr r1, _02222A70 ; =0x3FB33333
- add r2, r1, #0
- bl FUN_0200C884
-_02222A50:
- ldr r0, [r4, #0x10]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [r4]
- ldr r1, _02222A74 ; =MOD08_022227C4
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02222A6C: .word 0xBFB33333
-_02222A70: .word 0x3FB33333
-_02222A74: .word MOD08_022227C4
-
- thumb_func_start MOD08_02222A78
-MOD08_02222A78: ; 0x02222A78
- push {r4, r5, lr}
- sub sp, #0xc
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x40
- bl AllocFromHeap
- add r4, r0, #0
- mov r1, #0
- mov r2, #0x40
- bl memset
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #8]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x38]
- ldr r0, [r4, #8]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x3a]
- ldr r0, [r4, #8]
- mov r1, #0x29
- bl FUN_0200782C
- str r0, [r4, #0x3c]
- mov r1, #4
- add r0, r4, #0
- str r1, [sp]
- add r0, #0x14
- mov r2, #0
- mov r3, #1
- bl MOD08_022183C0
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C1C
- mov r1, #0x14
- ldrsh r1, [r4, r1]
- mov r2, #0x10
- add r0, r1, r0
- mov r1, #0
- strh r0, [r4, #0x14]
- str r1, [sp]
- ldr r0, [r4, #8]
- add r3, r1, #0
- bl FUN_02007E68
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_022124D8
- str r0, [r4, #0xc]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02227468
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02227468
- cmp r5, #2
- bne _02222B24
- cmp r0, #4
- beq _02222B2C
-_02222B24:
- cmp r5, #5
- bne _02222B5E
- cmp r0, #3
- bne _02222B5E
-_02222B2C:
- ldr r0, [r4, #0xc]
- bl MOD08_02217C08
- mov r1, #1
- add r5, r1, #0
- lsl r5, r0
- ldr r0, [r4]
- bl MOD08_02215504
- mov r3, #0
- lsl r2, r5, #0x10
- str r3, [sp]
- mov r1, #0x10
- str r1, [sp, #4]
- mov r1, #4
- lsr r2, r2, #0x10
- str r3, [sp, #8]
- bl FUN_02003210
- mov r2, #1
- str r2, [r4, #0x10]
- ldr r0, [r4, #8]
- mov r1, #6
- bl FUN_02007558
-_02222B5E:
- ldr r0, [r4]
- ldr r1, _02222B6C ; =MOD08_02222884
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-_02222B6C: .word MOD08_02222884
-
- thumb_func_start MOD08_02222B70
-MOD08_02222B70: ; 0x02222B70
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r0, #0
- ldr r0, [r4, #8]
- mov r5, #0
- cmp r0, #3
- bhi _02222BEC
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02222B8A: ; jump table
- .short _02222B92 - _02222B8A - 2 ; case 0
- .short _02222BAA - _02222B8A - 2 ; case 1
- .short _02222BD0 - _02222B8A - 2 ; case 2
- .short _02222BEA - _02222B8A - 2 ; case 3
-_02222B92:
- add r0, r4, #0
- add r0, #0x1c
- bl MOD08_02218704
- cmp r0, #1
- bne _02222BEC
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- mov r0, #0x20
- str r0, [r4, #0x44]
- b _02222BEC
-_02222BAA:
- ldr r0, [r4, #0x44]
- sub r0, r0, #1
- str r0, [r4, #0x44]
- bpl _02222BEC
- ldr r0, [r4, #8]
- mov r1, #8
- add r0, r0, #1
- str r0, [r4, #8]
- mov r0, #0x10
- str r0, [sp]
- mov r0, #0x18
- add r4, #0x1c
- str r0, [sp, #4]
- add r0, r4, #0
- add r2, r5, #0
- add r3, r1, #0
- bl MOD08_022186D4
- b _02222BEC
-_02222BD0:
- add r0, r4, #0
- add r0, #0x1c
- bl MOD08_02218704
- cmp r0, #1
- bne _02222BEC
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- ldr r0, [r4, #0x14]
- bl MOD08_0221894C
- b _02222BEC
-_02222BEA:
- mov r5, #1
-_02222BEC:
- add r0, r5, #0
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02222BF4
-MOD08_02222BF4: ; 0x02222BF4
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _02222C0A
- cmp r0, #1
- beq _02222C2C
- cmp r0, #2
- beq _02222C3E
- pop {r4, r5, r6, pc}
-_02222C0A:
- ldr r0, [r4, #0x48]
- bl FUN_0200C658
- cmp r0, #1
- bne _02222C1E
- ldr r0, [r4, #0x10]
- mov r1, #6
- mov r2, #1
- bl FUN_02007558
-_02222C1E:
- add r0, r4, #0
- bl MOD08_02222B70
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, r6, pc}
-_02222C2C:
- add r0, r4, #0
- bl MOD08_02222B70
- cmp r0, #0
- beq _02222CC4
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, r6, pc}
-_02222C3E:
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r5, r0, #0
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215600
- add r1, r0, #0
- lsl r0, r5, #0x18
- lsl r1, r1, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldr r0, [r4]
- bl MOD08_02215574
- add r1, r0, #0
- lsl r1, r1, #0x18
- mov r0, #0
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldr r0, [r4, #0x10]
- mov r1, #6
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02212014
- add r3, r0, #0
- lsl r0, r5, #0x18
- mov r1, #1
- lsr r0, r0, #0x18
- lsl r1, r1, #0xe
- mov r2, #0
- bl FUN_02017F18
- ldr r0, [r4]
- bl MOD08_02212490
- add r5, r0, #0
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r1, r0, #0
- lsl r1, r1, #0x18
- add r0, r5, #0
- lsr r1, r1, #0x18
- bl FUN_02018744
- ldr r0, [r4]
- add r1, r6, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_02222CC4:
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02222CC8
-MOD08_02222CC8: ; 0x02222CC8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- mov r1, #0x4c
- add r7, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r7, [r4]
- add r0, r7, #0
- bl MOD08_02215504
- str r0, [r4, #0x18]
- ldr r0, [r4]
- mov r1, #0
- mov r2, #0x10
- bl MOD08_02227A00
- mov r2, #8
- str r2, [sp]
- mov r0, #0x18
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x1c
- mov r1, #0
- mov r3, #0x10
- bl MOD08_022186D4
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #0
- str r0, [r4, #0x10]
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- ldr r0, [r4, #0x10]
- mov r1, #0x29
- bl FUN_0200782C
- sub r0, r5, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- sub r0, #0x28
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- ldr r0, [r4]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x48]
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02227468
- cmp r0, #5
- beq _02222D58
- cmp r0, #2
- bne _02222D6A
-_02222D58:
- ldr r0, [r4, #0x48]
- mov r1, #1
- bl FUN_0200C644
- ldr r0, [r4, #0x48]
- mov r1, #2
- bl FUN_0200C6B0
- b _02222DA6
-_02222D6A:
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- str r0, [sp, #0x14]
- ldr r0, [r4]
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [sp, #0x14]
- lsl r1, r1, #0x18
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldr r0, [r4]
- bl MOD08_02215574
- add r1, r0, #0
- add r1, r1, #1
- lsl r1, r1, #0x18
- mov r0, #0
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldr r0, [r4, #0x48]
- mov r1, #0
- bl FUN_0200C644
-_02222DA6:
- add r0, r7, #0
- mov r1, #1
- bl MOD08_022155C4
- neg r1, r5
- lsl r1, r1, #0x10
- sub r6, #0x28
- str r0, [sp, #0x18]
- lsl r0, r6, #0x10
- asr r0, r0, #0x10
- neg r0, r0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- lsr r1, r1, #0x10
- bl MOD08_02218998
- add r6, r0, #0
- add r0, r7, #0
- bl MOD08_02212014
- mov r1, #0x64
- str r1, [sp]
- ldr r1, [sp, #0x18]
- mov r3, #5
- str r1, [sp, #4]
- mov r1, #0
- str r1, [sp, #8]
- str r6, [sp, #0xc]
- str r0, [sp, #0x10]
- lsl r0, r5, #0x18
- add r5, #0x50
- lsl r1, r5, #0x18
- ldr r2, _02222E14 ; =0x0000038E
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- lsl r3, r3, #0xc
- bl MOD08_022188DC
- mov r2, #1
- str r0, [r4, #0x14]
- mov r1, #0
- str r1, [sp]
- ldr r0, [r4, #0x18]
- lsl r2, r2, #8
- mov r3, #8
- bl FUN_02003A64
- ldr r0, [r4]
- ldr r1, _02222E18 ; =MOD08_02222BF4
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- nop
-_02222E14: .word 0x0000038E
-_02222E18: .word MOD08_02222BF4
-
- thumb_func_start MOD08_02222E1C
-MOD08_02222E1C: ; 0x02222E1C
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #3
- bhi _02222F1E
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02222E36: ; jump table
- .short _02222E3E - _02222E36 - 2 ; case 0
- .short _02222E8E - _02222E36 - 2 ; case 1
- .short _02222ECC - _02222E36 - 2 ; case 2
- .short _02222F06 - _02222E36 - 2 ; case 3
-_02222E3E:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- cmp r0, #1
- bne _02222E70
- add r0, r4, #0
- add r0, #0x14
- add r1, sp, #8
- add r2, sp, #4
- bl MOD08_0221825C
- ldr r0, [r4, #0x54]
- bl _fflt
- add r1, r0, #0
- ldr r0, [sp, #8]
- bl _fmul
- add r1, r0, #0
- ldr r0, [r4, #0x10]
- ldr r2, [sp, #4]
- bl FUN_0200C884
- b _02222F1E
-_02222E70:
- ldr r0, [r4, #0xc]
- mov r1, #0xa
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #5
- str r0, [r4, #0x4c]
- mov r0, #8
- str r0, [sp]
- add r0, r4, #0
- add r0, #0x14
- add r2, r1, #0
- mov r3, #1
- bl MOD08_02218120
- b _02222F1E
-_02222E8E:
- add r0, r4, #0
- add r0, #0x38
- bl MOD08_02218058
- ldr r1, [r4, #0x38]
- add r5, r0, #0
- lsl r1, r1, #0x10
- ldr r0, [r4, #0x10]
- lsr r1, r1, #0x10
- bl FUN_0200C898
- cmp r5, #0
- bne _02222F1E
- ldr r0, [r4, #0x4c]
- cmp r0, #0
- ble _02222EC4
- sub r0, r0, #1
- str r0, [r4, #0x4c]
- add r0, r4, #0
- ldr r1, [r4, #0x38]
- ldr r2, [r4, #0x50]
- add r0, #0x38
- mov r3, #4
- str r1, [r4, #0x50]
- bl MOD08_02218008
- b _02222F1E
-_02222EC4:
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02222F1E
-_02222ECC:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- cmp r0, #1
- bne _02222EFE
- add r0, r4, #0
- add r0, #0x14
- add r1, sp, #8
- add r2, sp, #4
- bl MOD08_0221825C
- ldr r0, [r4, #0x54]
- bl _fflt
- add r1, r0, #0
- ldr r0, [sp, #8]
- bl _fmul
- add r1, r0, #0
- ldr r0, [r4, #0x10]
- ldr r2, [sp, #4]
- bl FUN_0200C884
- b _02222F1E
-_02222EFE:
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02222F1E
-_02222F06:
- ldr r0, [r4, #0x10]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0xc
- pop {r4, r5, pc}
-_02222F1E:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- add sp, #0xc
- pop {r4, r5, pc}
-
- thumb_func_start MOD08_02222F28
-MOD08_02222F28: ; 0x02222F28
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r6, r1, #0
- mov r1, #0x58
- add r5, r0, #0
- add r7, r2, #0
- str r3, [sp, #4]
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- str r6, [r4, #4]
- str r7, [r4, #8]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C1C
- add r7, r0, #0
- ldr r0, [r4]
- mov r1, #0
- bl MOD08_02215680
- cmp r0, #1
- bne _02222F68
- mov r0, #0
- mvn r0, r0
- str r0, [r4, #0x54]
- neg r6, r7
- b _02222F6E
-_02222F68:
- mov r0, #1
- str r0, [r4, #0x54]
- add r6, r7, #0
-_02222F6E:
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- mov r2, #0
- bl MOD08_02217B98
- str r0, [sp, #8]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- mov r2, #1
- bl MOD08_02217B98
- str r0, [sp, #0xc]
- ldr r0, [sp, #4]
- mov r1, #2
- str r0, [r4, #0x10]
- bl FUN_0200C840
- mov r1, #0xfe
- lsl r1, r1, #0x16
- ldr r0, [r4, #0x10]
- add r2, r1, #0
- bl FUN_0200C884
- ldr r0, [r4, #0x10]
- ldr r1, [sp, #8]
- ldr r2, [sp, #0xc]
- bl FUN_0200C714
- mov r1, #0x28
- mul r1, r7
- lsl r1, r1, #0x10
- ldr r0, [r4, #0x10]
- asr r1, r1, #0x10
- mov r2, #0
- bl FUN_0200C82C
- ldr r0, [r4, #0x10]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C6B0
- mov r1, #0xb
- mvn r1, r1
- mul r1, r6
- lsl r1, r1, #0x10
- ldr r0, [r4, #0x10]
- asr r1, r1, #0x10
- mov r2, #0xc
- bl FUN_0200C8DC
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227470
- cmp r0, #4
- ldr r0, [r4, #0x10]
- bne _02223000
- mov r1, #1
- bl FUN_0200C5C0
- b _02223006
-_02223000:
- mov r1, #0
- bl FUN_0200C5C0
-_02223006:
- mov r0, #8
- str r0, [sp]
- add r0, r4, #0
- mov r2, #0xa
- add r0, #0x14
- mov r1, #1
- add r3, r2, #0
- bl MOD08_02218120
- cmp r6, #0
- blt _0222302E
- add r0, r4, #0
- ldr r1, _02223050 ; =0x0000FF48
- ldr r2, _02223054 ; =0x0000E38D
- add r0, #0x38
- mov r3, #4
- bl MOD08_02218008
- ldr r0, _02223050 ; =0x0000FF48
- b _0222303E
-_0222302E:
- add r0, r4, #0
- ldr r2, _02223058 ; =0x00001C71
- add r0, #0x38
- mov r1, #0
- mov r3, #4
- bl MOD08_02218008
- mov r0, #0
-_0222303E:
- str r0, [r4, #0x50]
- ldr r0, [r4]
- ldr r1, _0222305C ; =MOD08_02222E1C
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02223050: .word 0x0000FF48
-_02223054: .word 0x0000E38D
-_02223058: .word 0x00001C71
-_0222305C: .word MOD08_02222E1C
-
- thumb_func_start MOD08_02223060
-MOD08_02223060: ; 0x02223060
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r5, r0, #0
- str r1, [r5]
- add r6, r3, #0
- mov r3, #8
- mov r1, #0xa
- add r4, r2, #0
- add r0, r5, #4
- add r2, r1, #0
- str r3, [sp]
- bl MOD08_02218120
- mov r0, #3
- str r0, [r5, #0x2c]
- mov r0, #8
- str r0, [r5, #0x30]
- mov r0, #0xa
- str r0, [r5, #0x34]
- ldr r0, [sp, #0x18]
- add r1, r4, #0
- str r0, [r5, #0x28]
- ldr r0, [r5]
- add r2, r6, #0
- bl FUN_0200C714
- ldr r0, [r5]
- add r1, r4, #0
- add r2, r6, #0
- bl FUN_0200C714
- ldr r0, [r5]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r5]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r5]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [sp, #0x18]
- cmp r0, #0
- beq _022230C8
- mov r2, #0xfe
- ldr r0, [r5]
- ldr r1, _022230D4 ; =0xBF800000
- lsl r2, r2, #0x16
- bl FUN_0200C884
-_022230C8:
- ldr r0, [r5]
- mov r1, #0
- bl FUN_0200C644
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-_022230D4: .word 0xBF800000
-
- thumb_func_start MOD08_022230D8
-MOD08_022230D8: ; 0x022230D8
- ldr r3, _022230E0 ; =FUN_0200C3DC
- ldr r0, [r0]
- bx r3
- nop
-_022230E0: .word FUN_0200C3DC
-
- thumb_func_start MOD08_022230E4
-MOD08_022230E4: ; 0x022230E4
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4]
- mov r1, #1
- bl FUN_0200C644
- ldr r0, [r4]
- mov r1, #1
- bl FUN_0200C5E0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022230FC
-MOD08_022230FC: ; 0x022230FC
- push {r3, r4, lr}
- sub sp, #0xc
- add r4, r0, #0
- add r0, r4, #4
- bl MOD08_02218170
- cmp r0, #1
- bne _02223140
- add r0, r4, #4
- add r1, sp, #8
- add r2, sp, #4
- bl MOD08_0221825C
- ldr r0, [r4, #0x28]
- cmp r0, #0
- beq _02223132
- ldr r1, [sp, #8]
- mov r0, #0
- bl _fsub
- add r1, r0, #0
- mov r2, #0xfe
- ldr r0, [r4]
- lsl r2, r2, #0x16
- bl FUN_0200C884
- b _02223172
-_02223132:
- mov r2, #0xfe
- ldr r0, [r4]
- ldr r1, [sp, #8]
- lsl r2, r2, #0x16
- bl FUN_0200C884
- b _02223172
-_02223140:
- ldr r0, [r4, #0x2c]
- cmp r0, #0
- ble _0222316C
- sub r0, r0, #1
- str r0, [r4, #0x2c]
- mov r0, #8
- str r0, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [r4, #0x34]
- lsl r1, r1, #0x10
- lsl r3, r3, #0x10
- add r0, r4, #4
- asr r1, r1, #0x10
- mov r2, #0xa
- asr r3, r3, #0x10
- bl MOD08_02218120
- ldr r1, [r4, #0x30]
- ldr r0, [r4, #0x34]
- str r0, [r4, #0x30]
- str r1, [r4, #0x34]
- b _02223172
-_0222316C:
- add sp, #0xc
- mov r0, #0
- pop {r3, r4, pc}
-_02223172:
- mov r0, #1
- add sp, #0xc
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_02223178
-MOD08_02223178: ; 0x02223178
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r7, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #3
- bhi _02223244
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02223190: ; jump table
- .short _02223198 - _02223190 - 2 ; case 0
- .short _022231CA - _02223190 - 2 ; case 1
- .short _022231E8 - _02223190 - 2 ; case 2
- .short _02223208 - _02223190 - 2 ; case 3
-_02223198:
- ldr r0, [r4, #0x10]
- cmp r0, #4
- blt _022231C2
- mov r0, #0
- str r0, [r4, #0x10]
- ldr r1, [r4, #0x14]
- add r2, r4, #0
- mov r0, #0x38
- add r2, #0x44
- mul r0, r1
- add r0, r2, r0
- bl MOD08_022230E4
- ldr r0, [r4, #0x14]
- add r0, r0, #1
- str r0, [r4, #0x14]
- cmp r0, #4
- blt _022231C2
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
-_022231C2:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- b _02223244
-_022231CA:
- mov r1, #0x1c
- mov r2, #0x1e
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r3, [r4, #0x18]
- add r0, #0x20
- bl MOD08_02218454
- cmp r0, #0
- bne _02223244
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02223244
-_022231E8:
- add r5, r4, #0
- mov r6, #0
- add r5, #0x44
-_022231EE:
- add r0, r5, #0
- bl MOD08_022230FC
- add r6, r6, #1
- add r5, #0x38
- cmp r6, #4
- blt _022231EE
- cmp r0, #0
- bne _02223244
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02223244
-_02223208:
- mov r2, #0x1c
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x18]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x1e
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x18]
- mov r1, #1
- bl FUN_02007558
- add r5, r4, #0
- mov r6, #0
- add r5, #0x44
-_02223226:
- add r0, r5, #0
- bl MOD08_022230D8
- add r6, r6, #1
- add r5, #0x38
- cmp r6, #4
- blt _02223226
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_02223244:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222324C
-MOD08_0222324C: ; 0x0222324C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x48
- str r1, [sp, #4]
- mov r1, #0x4a
- lsl r1, r1, #2
- add r4, r0, #0
- str r2, [sp, #8]
- str r3, [sp, #0xc]
- bl MOD08_02228064
- add r7, r0, #0
- ldr r0, [sp, #4]
- str r4, [r7]
- str r0, [r7, #4]
- ldr r0, [sp, #8]
- str r0, [r7, #8]
- add r0, r4, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r7]
- bl MOD08_022154D4
- str r0, [r7, #0x18]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r7, #0x1c]
- ldr r0, [r7, #0x18]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r7, #0x1e]
- add r0, r7, #0
- mov r3, #1
- add r0, #0x20
- mov r1, #4
- mov r2, #0
- str r3, [sp]
- bl MOD08_022183C0
- mov r0, #0x1e
- ldrsh r4, [r7, r0]
- ldr r1, [r7]
- add r0, sp, #0x14
- add r4, #0x10
- mov r5, #0
- bl MOD08_02215474
- add r0, r5, #0
- add r6, r7, #0
- str r0, [sp, #0x10]
- add r6, #0x44
-_022232B6:
- ldr r0, [sp, #0x10]
- cmp r0, #0
- bne _022232D0
- str r5, [sp]
- mov r2, #0x1c
- lsl r3, r4, #0x10
- ldrsh r2, [r7, r2]
- ldr r1, [sp, #0xc]
- add r0, r6, #0
- asr r3, r3, #0x10
- bl MOD08_02223060
- b _022232EC
-_022232D0:
- ldr r0, [sp, #4]
- ldr r1, [sp, #8]
- add r2, sp, #0x14
- bl FUN_0200C154
- lsl r3, r4, #0x10
- add r1, r0, #0
- str r5, [sp]
- mov r2, #0x1c
- ldrsh r2, [r7, r2]
- add r0, r6, #0
- asr r3, r3, #0x10
- bl MOD08_02223060
-_022232EC:
- mov r0, #1
- eor r5, r0
- ldr r0, [sp, #0x10]
- sub r4, #0xa
- add r0, r0, #1
- add r6, #0x38
- str r0, [sp, #0x10]
- cmp r0, #4
- blt _022232B6
- ldr r0, [r7]
- ldr r1, _0222330C ; =MOD08_02223178
- add r2, r7, #0
- bl MOD08_02212400
- add sp, #0x48
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0222330C: .word MOD08_02223178
-
- thumb_func_start MOD08_02223310
-MOD08_02223310: ; 0x02223310
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #6
- bls _02223320
- b _022234D2
-_02223320:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222332C: ; jump table
- .short _0222333A - _0222332C - 2 ; case 0
- .short _0222337C - _0222332C - 2 ; case 1
- .short _022233DC - _0222332C - 2 ; case 2
- .short _0222341C - _0222332C - 2 ; case 3
- .short _0222343C - _0222332C - 2 ; case 4
- .short _0222347A - _0222332C - 2 ; case 5
- .short _022234BA - _0222332C - 2 ; case 6
-_0222333A:
- add r0, r4, #0
- add r0, #0x18
- bl MOD08_02217ECC
- cmp r0, #0
- beq _0222335C
- mov r2, #0x14
- mov r3, #0x16
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- ldr r1, [r4, #0x10]
- add r0, #0x18
- bl MOD08_02217CD0
- add sp, #0x10
- pop {r3, r4, r5, pc}
-_0222335C:
- mov r2, #0
- str r2, [sp]
- mov r0, #2
- str r0, [sp, #4]
- mov r1, #0x18
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- add r0, #0x18
- add r3, r2, #0
- bl MOD08_02217E80
- ldr r0, [r4, #0xc]
- add sp, #0x10
- add r0, r0, #1
- str r0, [r4, #0xc]
- pop {r3, r4, r5, pc}
-_0222337C:
- add r0, r4, #0
- add r0, #0x18
- bl MOD08_02217ECC
- cmp r0, #0
- beq _0222339E
- mov r2, #0x14
- mov r3, #0x16
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- ldr r1, [r4, #0x10]
- add r0, #0x18
- bl MOD08_02217CD0
- add sp, #0x10
- pop {r3, r4, r5, pc}
-_0222339E:
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x16
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_02007558
- mov r1, #0
- str r1, [sp]
- mov r0, #4
- str r0, [sp, #4]
- ldr r2, [r4, #0x3c]
- add r0, r4, #0
- lsl r2, r2, #5
- neg r2, r2
- lsl r2, r2, #0x10
- add r0, #0x18
- asr r2, r2, #0x10
- add r3, r1, #0
- bl MOD08_02217E80
- ldr r0, [r4, #0xc]
- add sp, #0x10
- add r0, r0, #1
- str r0, [r4, #0xc]
- pop {r3, r4, r5, pc}
-_022233DC:
- add r0, r4, #0
- ldr r2, [r4, #0x48]
- add r0, #0x4c
- add r1, #0x70
- bl MOD08_02217FE4
- cmp r0, #0
- bne _022234D2
- mov r0, #0x46
- ldrsh r0, [r4, r0]
- add r1, r4, #0
- mov r2, #0x44
- str r0, [sp]
- mov r0, #0x16
- ldrsh r0, [r4, r0]
- mov r3, #0x14
- add r1, #0x70
- str r0, [sp, #4]
- mov r0, #0xa
- str r0, [sp, #8]
- ldr r0, _022234DC ; =0xFFFE0000
- str r0, [sp, #0xc]
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- add r0, #0x4c
- bl MOD08_02217F50
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _022234D2
-_0222341C:
- add r0, r4, #0
- ldr r2, [r4, #0x48]
- add r0, #0x4c
- add r1, #0x70
- bl MOD08_02217FE4
- cmp r0, #0
- bne _022234D2
- ldr r0, [r4, #0x48]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _022234D2
-_0222343C:
- add r0, r4, #0
- add r0, #0x18
- bl MOD08_02217ECC
- cmp r0, #0
- beq _0222345C
- mov r2, #0x14
- mov r3, #0x16
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- ldr r1, [r4, #0x10]
- add r0, #0x18
- bl MOD08_02217CD0
- b _022234D2
-_0222345C:
- mov r2, #0
- str r2, [sp]
- mov r0, #4
- str r0, [sp, #4]
- mov r1, #0x18
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- add r0, #0x18
- add r3, r2, #0
- bl MOD08_02217E80
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _022234D2
-_0222347A:
- add r0, r4, #0
- add r0, #0x18
- bl MOD08_02217ECC
- cmp r0, #0
- beq _0222349A
- mov r2, #0x14
- mov r3, #0x16
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- ldr r1, [r4, #0x10]
- add r0, #0x18
- bl MOD08_02217CD0
- b _022234D2
-_0222349A:
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x16
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_02007558
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _022234D2
-_022234BA:
- ldr r0, [r4, #0x48]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0x10
- pop {r3, r4, r5, pc}
-_022234D2:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- add sp, #0x10
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022234DC: .word 0xFFFE0000
-
- thumb_func_start MOD08_022234E0
-MOD08_022234E0: ; 0x022234E0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r7, r1, #0
- mov r1, #0x94
- add r5, r0, #0
- str r2, [sp, #0x10]
- add r6, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- ldr r0, [sp, #0x10]
- str r7, [r4, #4]
- str r0, [r4, #8]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C1C
- str r0, [r4, #0x3c]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x14]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x16]
- mov r1, #0
- str r1, [sp]
- mov r0, #4
- str r0, [sp, #4]
- ldr r2, [r4, #0x3c]
- add r0, r4, #0
- lsl r2, r2, #4
- neg r2, r2
- lsl r2, r2, #0x10
- add r0, #0x18
- asr r2, r2, #0x10
- add r3, r1, #0
- bl MOD08_02217E80
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #0
- str r0, [r4, #0x40]
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x44
- strh r0, [r1]
- ldr r0, [r4, #0x40]
- mov r1, #1
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x46
- strh r0, [r1]
- add r0, r6, #0
- mov r1, #1
- str r6, [r4, #0x48]
- bl FUN_0200C5E0
- ldr r0, [r4, #0x48]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x48]
- mov r1, #1
- bl FUN_0200C6B0
- mov r0, #0x16
- ldrsh r0, [r4, r0]
- add r1, r4, #0
- mov r2, #0x14
- str r0, [sp]
- mov r0, #0x46
- ldrsh r0, [r4, r0]
- mov r3, #0x44
- add r1, #0x70
- str r0, [sp, #4]
- mov r0, #0xa
- str r0, [sp, #8]
- mov r0, #2
- lsl r0, r0, #0x10
- str r0, [sp, #0xc]
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- add r0, #0x4c
- bl MOD08_02217F50
- ldr r0, [r4]
- ldr r1, _022235C8 ; =MOD08_02223310
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_022235C8: .word MOD08_02223310
-
- thumb_func_start MOD08_022235CC
-MOD08_022235CC: ; 0x022235CC
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- add r2, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #3
- bhi _02223676
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022235E6: ; jump table
- .short _022235EE - _022235E6 - 2 ; case 0
- .short _0222361A - _022235E6 - 2 ; case 1
- .short _0222363E - _022235E6 - 2 ; case 2
- .short _02223664 - _022235E6 - 2 ; case 3
-_022235EE:
- mov r2, #0x1a
- ldrsh r3, [r4, r2]
- mov r2, #0x68
- ldrsh r2, [r4, r2]
- mov r1, #0x18
- ldrsh r1, [r4, r1]
- sub r2, r3, r2
- add r0, r4, #0
- lsl r2, r2, #0x10
- ldr r3, [r4, #0x14]
- add r0, #0x1c
- asr r2, r2, #0x10
- bl MOD08_02217E30
- cmp r0, #0
- bne _02223676
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- mov r0, #0x10
- str r0, [r4, #0xc]
- b _02223676
-_0222361A:
- ldr r0, [r4, #0xc]
- sub r0, r0, #1
- str r0, [r4, #0xc]
- bpl _02223676
- ldr r0, [r4, #8]
- mov r2, #0x10
- add r0, r0, #1
- str r0, [r4, #8]
- mov r1, #0
- str r1, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x40
- add r3, r2, #0
- bl MOD08_022186D4
- b _02223676
-_0222363E:
- add r0, r4, #0
- add r0, #0x40
- bl MOD08_02218704
- cmp r0, #0
- beq _02223676
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_0200C644
- ldr r0, [r4, #0x10]
- mov r1, #6
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02223676
-_02223664:
- ldr r0, [r4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #8
- pop {r4, pc}
-_02223676:
- ldr r0, [r4, #4]
- bl FUN_0200BC1C
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD08_02223680
-MOD08_02223680: ; 0x02223680
- push {r4, r5, r6, lr}
- sub sp, #8
- mov r1, #0x6c
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02212504
- str r0, [r4, #4]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C1C
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x18]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x1a]
- ldr r0, [r4, #0x10]
- mov r1, #0x29
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x68
- strh r0, [r1]
- mov r0, #0x1a
- ldrsh r0, [r4, r0]
- mov r1, #0
- add r0, #8
- strh r0, [r4, #0x1a]
- ldr r0, [r4]
- bl MOD08_022124D8
- str r0, [r4, #0x14]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #0x10]
- mov r1, #6
- mov r2, #1
- bl FUN_02007558
- add r0, r4, #0
- add r0, #0x1c
- mov r1, #2
- mov r2, #0x10
- bl MOD08_02218654
- ldr r0, [r4]
- mov r1, #0x10
- mov r2, #0
- bl MOD08_02227994
- mov r1, #0x10
- str r1, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- add r0, r4, #0
- mov r2, #0
- add r0, #0x40
- add r3, r2, #0
- bl MOD08_022186D4
- ldr r0, [r4, #0x28]
- add r2, r4, #0
- add r1, r0, #0
- mul r1, r6
- str r1, [r4, #0x28]
- ldr r0, [r4]
- ldr r1, _02223740 ; =MOD08_022235CC
- bl MOD08_02212400
- ldr r0, [r4, #4]
- bl FUN_0200BC1C
- add sp, #8
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02223740: .word MOD08_022235CC
-
- thumb_func_start MOD08_02223744
-MOD08_02223744: ; 0x02223744
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #0x38]
- mov r4, #0
- cmp r0, #0
- beq _0222375A
- cmp r0, #1
- beq _0222378E
- cmp r0, #2
- beq _022237BA
- b _022237BC
-_0222375A:
- add r0, r5, #0
- add r0, #0x14
- bl MOD08_02218170
- cmp r0, #0
- beq _02223774
- mov r2, #0x16
- ldrsh r2, [r5, r2]
- ldr r0, [r5, #0x10]
- mov r1, #0xd
- bl FUN_02007558
- b _022237BC
-_02223774:
- ldr r0, [r5, #0x38]
- mov r2, #0xa
- add r0, r0, #1
- str r0, [r5, #0x38]
- mov r0, #0xc
- add r5, #0x14
- str r0, [sp]
- add r0, r5, #0
- mov r1, #0xf
- add r3, r2, #0
- bl MOD08_02218120
- b _022237BC
-_0222378E:
- add r0, r5, #0
- add r0, #0x14
- bl MOD08_02218170
- cmp r0, #0
- ldr r0, [r5, #0x10]
- beq _022237A8
- mov r2, #0x16
- ldrsh r2, [r5, r2]
- mov r1, #0xd
- bl FUN_02007558
- b _022237BC
-_022237A8:
- mov r1, #0xd
- add r2, r1, #0
- add r2, #0xf3
- bl FUN_02007558
- ldr r0, [r5, #0x38]
- add r0, r0, #1
- str r0, [r5, #0x38]
- b _022237BC
-_022237BA:
- mov r4, #1
-_022237BC:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_022237C0
-MOD08_022237C0: ; 0x022237C0
- push {r3, r4, r5, lr}
- sub sp, #8
- add r5, r0, #0
- ldr r0, [r5, #0x40]
- mov r4, #0
- cmp r0, #0
- beq _022237D8
- cmp r0, #1
- beq _0222381E
- cmp r0, #2
- beq _0222383A
- b _0222383C
-_022237D8:
- add r0, r5, #0
- ldr r1, [r5, #0x3c]
- add r0, #0x44
- bl MOD08_02218360
- add r0, r5, #0
- add r0, #0x68
- bl MOD08_02217ECC
- cmp r0, #0
- beq _02223802
- mov r2, #0xb4
- mov r3, #0xb6
- add r0, r5, #0
- ldrsh r2, [r5, r2]
- ldrsh r3, [r5, r3]
- ldr r1, [r5, #0x3c]
- add r0, #0x68
- bl MOD08_02217C94
- b _0222383C
-_02223802:
- ldr r0, [r5, #0x40]
- mov r1, #0x10
- add r0, r0, #1
- str r0, [r5, #0x40]
- str r1, [sp]
- mov r0, #8
- add r5, #0x8c
- str r0, [sp, #4]
- add r0, r5, #0
- add r2, r4, #0
- mov r3, #0xe
- bl MOD08_022186D4
- b _0222383C
-_0222381E:
- add r0, r5, #0
- add r0, #0x8c
- bl MOD08_02218704
- cmp r0, #0
- beq _0222383C
- ldr r0, [r5, #0x3c]
- add r1, r4, #0
- bl FUN_0200C644
- ldr r0, [r5, #0x40]
- add r0, r0, #1
- str r0, [r5, #0x40]
- b _0222383C
-_0222383A:
- mov r4, #1
-_0222383C:
- add r0, r4, #0
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02223844
-MOD08_02223844: ; 0x02223844
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #0
- beq _02223856
- cmp r0, #1
- beq _0222386E
- b _02223884
-_02223856:
- add r0, r4, #0
- bl MOD08_02223744
- add r0, r4, #0
- bl MOD08_022237C0
- cmp r0, #0
- beq _02223884
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02223884
-_0222386E:
- ldr r0, [r4, #0x3c]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
-_02223884:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_0222388C
-MOD08_0222388C: ; 0x0222388C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r5, r1, #0
- mov r1, #0xb8
- add r6, r0, #0
- add r7, r2, #0
- str r3, [sp, #8]
- bl MOD08_02228064
- add r4, r0, #0
- str r6, [r4]
- str r5, [r4, #4]
- str r7, [r4, #8]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C1C
- str r0, [sp, #0xc]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C44
- add r5, r0, #0
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #0
- str r0, [r4, #0x10]
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r7, r0, #0x10
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- mov r0, #0xc
- str r0, [sp]
- add r0, r4, #0
- mov r1, #0xa
- add r0, #0x14
- add r2, r1, #0
- mov r3, #0xf
- bl MOD08_02218120
- ldr r0, [sp, #8]
- mov r1, #1
- str r0, [r4, #0x3c]
- bl FUN_0200C5E0
- ldr r0, [r4, #0x3c]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r4, #0x3c]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #0x3c]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x3c]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [sp, #0xc]
- lsl r0, r0, #5
- add r1, r7, r0
- add r0, r4, #0
- add r0, #0xb4
- strh r1, [r0]
- add r0, r4, #0
- add r0, #0xb6
- strh r6, [r0]
- cmp r5, #0
- bge _02223942
- mov r1, #7
- b _02223944
-_02223942:
- mov r1, #0x17
-_02223944:
- mvn r1, r1
- add r0, r1, #0
- mul r0, r5
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- mov r1, #0
- mov r0, #0x20
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x68
- add r2, r1, #0
- add r3, r1, #0
- bl MOD08_02217E80
- mov r0, #0x20
- str r0, [sp]
- add r0, r4, #0
- add r0, #0x44
- mov r1, #5
- mov r2, #0xa
- mov r3, #0xc
- bl MOD08_02218120
- mov r0, #0x1a
- str r0, [sp]
- ldr r0, _02223994 ; =0x04000050
- mov r1, #0
- mov r2, #0x3f
- mov r3, #0x1f
- bl G2x_SetBlendAlpha_
- ldr r0, [r4]
- ldr r1, _02223998 ; =MOD08_02223844
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02223994: .word 0x04000050
-_02223998: .word MOD08_02223844
-
- thumb_func_start MOD08_0222399C
-MOD08_0222399C: ; 0x0222399C
- push {r3, lr}
- sub sp, #8
- ldr r1, [r0, #0x68]
- cmp r1, #5
- bhi _02223A50
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022239B2: ; jump table
- .short _022239BE - _022239B2 - 2 ; case 0
- .short _022239D4 - _022239B2 - 2 ; case 1
- .short _022239EE - _022239B2 - 2 ; case 2
- .short _02223A08 - _022239B2 - 2 ; case 3
- .short _02223A22 - _022239B2 - 2 ; case 4
- .short _02223A38 - _022239B2 - 2 ; case 5
-_022239BE:
- mov r2, #0x28
- str r2, [sp]
- mov r1, #8
- str r1, [sp, #4]
- mov r1, #0
- add r0, #0x18
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_022239D4:
- mov r1, #0x4f
- mvn r1, r1
- str r1, [sp]
- mov r1, #8
- str r1, [sp, #4]
- mov r1, #0
- add r0, #0x18
- add r2, r1, #0
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_022239EE:
- mov r1, #0x50
- str r1, [sp]
- mov r1, #8
- str r1, [sp, #4]
- mov r1, #0
- add r2, r1, #0
- add r0, #0x18
- sub r2, #0x50
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_02223A08:
- mov r1, #0x4f
- mvn r1, r1
- str r1, [sp]
- mov r1, #8
- str r1, [sp, #4]
- mov r1, #0
- add r0, #0x18
- add r2, r1, #0
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_02223A22:
- mov r2, #0x50
- str r2, [sp]
- mov r1, #8
- str r1, [sp, #4]
- mov r1, #0
- add r0, #0x18
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_02223A38:
- mov r2, #0x27
- mvn r2, r2
- str r2, [sp]
- mov r1, #8
- str r1, [sp, #4]
- mov r1, #0
- add r0, #0x18
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_02223A50:
- bl ErrorHandling
- add sp, #8
- pop {r3, pc}
-
- thumb_func_start MOD08_02223A58
-MOD08_02223A58: ; 0x02223A58
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #4
- bls _02223A68
- b _02223B7C
-_02223A68:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02223A74: ; jump table
- .short _02223A7E - _02223A74 - 2 ; case 0
- .short _02223A9A - _02223A74 - 2 ; case 1
- .short _02223B1C - _02223A74 - 2 ; case 2
- .short _02223B52 - _02223A74 - 2 ; case 3
- .short _02223B64 - _02223A74 - 2 ; case 4
-_02223A7E:
- ldr r0, [r4, #0x6c]
- add r0, r0, #1
- str r0, [r4, #0x6c]
- cmp r0, #4
- ble _02223B7C
- add r0, r4, #0
- bl MOD08_0222399C
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #0
- str r0, [r4, #0x6c]
- b _02223B7C
-_02223A9A:
- add r0, r4, #0
- add r0, #0x18
- bl MOD08_02217ECC
- cmp r0, #0
- beq _02223ABA
- mov r2, #0x64
- mov r3, #0x66
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- ldr r1, [r4, #0x14]
- add r0, #0x18
- bl MOD08_02217C94
- b _02223B7C
-_02223ABA:
- ldr r0, [r4, #0x68]
- add r0, r0, #1
- str r0, [r4, #0x68]
- cmp r0, #6
- bge _02223AEA
- mov r0, #0
- str r0, [r4, #0xc]
- mov r0, #0x64
- ldrsh r1, [r4, r0]
- mov r0, #0x18
- ldrsh r0, [r4, r0]
- add r1, r1, r0
- add r0, r4, #0
- add r0, #0x64
- strh r1, [r0]
- mov r0, #0x66
- ldrsh r1, [r4, r0]
- mov r0, #0x1a
- ldrsh r0, [r4, r0]
- add r1, r1, r0
- add r0, r4, #0
- add r0, #0x66
- strh r1, [r0]
- b _02223B7C
-_02223AEA:
- ldr r0, [r4, #0xc]
- mov r1, #1
- add r0, r0, #1
- str r0, [r4, #0xc]
- ldr r0, [r4, #0x14]
- bl FUN_0200C90C
- mov r1, #0x10
- add r0, r4, #0
- mov r2, #0
- str r1, [sp]
- add r0, #0x3c
- add r3, r2, #0
- str r1, [sp, #4]
- bl MOD08_022186D4
- ldr r0, _02223B88 ; =0x00007FFF
- mov r1, #0
- str r0, [sp]
- ldr r0, [r4, #0x10]
- mov r2, #0xa
- add r3, r1, #0
- bl FUN_02007E68
- b _02223B7C
-_02223B1C:
- add r0, r4, #0
- add r0, #0x3c
- bl MOD08_02218704
- cmp r0, #0
- beq _02223B30
- ldr r0, [r4, #0x14]
- mov r1, #0
- bl FUN_0200C644
-_02223B30:
- ldr r0, [r4, #0x10]
- bl FUN_02007F20
- cmp r0, #0
- bne _02223B7C
- ldr r0, [r4, #0xc]
- mov r2, #0
- add r0, r0, #1
- str r0, [r4, #0xc]
- ldr r0, _02223B88 ; =0x00007FFF
- mov r1, #0xa
- str r0, [sp]
- ldr r0, [r4, #0x10]
- add r3, r2, #0
- bl FUN_02007E68
- b _02223B7C
-_02223B52:
- ldr r0, [r4, #0x10]
- bl FUN_02007F20
- cmp r0, #0
- bne _02223B7C
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02223B7C
-_02223B64:
- ldr r0, [r4, #0x14]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #8
- pop {r3, r4, r5, pc}
-_02223B7C:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, pc}
- nop
-_02223B88: .word 0x00007FFF
-
- thumb_func_start MOD08_02223B8C
-MOD08_02223B8C: ; 0x02223B8C
- push {r3, r4, r5, r6, r7, lr}
- add r7, r1, #0
- mov r1, #0x70
- add r5, r0, #0
- str r2, [sp]
- add r6, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- ldr r0, [sp]
- str r7, [r4, #4]
- str r0, [r4, #8]
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- str r6, [r4, #0x14]
- add r0, r6, #0
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_0200C6B0
- add r1, r4, #0
- add r2, r4, #0
- ldr r0, [r4, #0x14]
- add r1, #0x64
- add r2, #0x66
- bl FUN_0200C7A0
- ldr r0, [r4]
- ldr r1, _02223BE4 ; =MOD08_02223A58
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02223BE4: .word MOD08_02223A58
-
- thumb_func_start MOD08_02223BE8
-MOD08_02223BE8: ; 0x02223BE8
- push {r3, lr}
- sub sp, #8
- ldr r1, [r0, #0x50]
- cmp r1, #3
- bhi _02223C6A
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02223BFE: ; jump table
- .short _02223C06 - _02223BFE - 2 ; case 0
- .short _02223C1C - _02223BFE - 2 ; case 1
- .short _02223C36 - _02223BFE - 2 ; case 2
- .short _02223C50 - _02223BFE - 2 ; case 3
-_02223C06:
- mov r2, #0x50
- str r2, [sp]
- mov r1, #4
- str r1, [sp, #4]
- mov r1, #0
- add r0, #0x28
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_02223C1C:
- mov r1, #0x4f
- mvn r1, r1
- str r1, [sp]
- mov r1, #4
- str r1, [sp, #4]
- mov r1, #0
- add r0, #0x28
- add r2, r1, #0
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_02223C36:
- mov r1, #0x50
- str r1, [sp]
- mov r1, #4
- str r1, [sp, #4]
- mov r1, #0
- add r2, r1, #0
- add r0, #0x28
- sub r2, #0x50
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_02223C50:
- mov r1, #0x27
- mvn r1, r1
- str r1, [sp]
- mov r1, #4
- str r1, [sp, #4]
- mov r1, #0
- add r0, #0x28
- mov r2, #0x28
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_02223C6A:
- bl ErrorHandling
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02223C74
-MOD08_02223C74: ; 0x02223C74
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #6
- bhi _02223D7E
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02223C8E: ; jump table
- .short _02223C9C - _02223C8E - 2 ; case 0
- .short _02223CB8 - _02223C8E - 2 ; case 1
- .short _02223D24 - _02223C8E - 2 ; case 2
- .short _02223D80 - _02223C8E - 2 ; case 3
- .short _02223DE2 - _02223C8E - 2 ; case 4
- .short _02223E02 - _02223C8E - 2 ; case 5
- .short _02223E30 - _02223C8E - 2 ; case 6
-_02223C9C:
- ldr r0, [r4, #0x54]
- add r0, r0, #1
- str r0, [r4, #0x54]
- cmp r0, #1
- ble _02223D7E
- add r0, r4, #0
- bl MOD08_02223BE8
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #0
- str r0, [r4, #0x54]
- b _02223E48
-_02223CB8:
- add r0, r4, #0
- add r0, #0x28
- bl MOD08_02217ECC
- cmp r0, #0
- beq _02223CD8
- mov r2, #0x4c
- mov r3, #0x4e
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- ldr r1, [r4, #0x24]
- add r0, #0x28
- bl MOD08_02217C94
- b _02223E48
-_02223CD8:
- ldr r0, [r4, #0x50]
- add r0, r0, #1
- str r0, [r4, #0x50]
- cmp r0, #4
- bge _02223D08
- mov r0, #0
- str r0, [r4, #0xc]
- mov r0, #0x4c
- ldrsh r1, [r4, r0]
- mov r0, #0x28
- ldrsh r0, [r4, r0]
- add r1, r1, r0
- add r0, r4, #0
- add r0, #0x4c
- strh r1, [r0]
- mov r0, #0x4e
- ldrsh r1, [r4, r0]
- mov r0, #0x2a
- ldrsh r0, [r4, r0]
- add r1, r1, r0
- add r0, r4, #0
- add r0, #0x4e
- strh r1, [r0]
- b _02223E48
-_02223D08:
- ldr r0, [r4, #0xc]
- mov r1, #1
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #8
- str r0, [r4, #0x54]
- ldr r0, [r4, #0x24]
- bl FUN_0200C5C0
- ldr r0, [r4, #0x24]
- mov r1, #1
- bl FUN_0200C5E0
- b _02223E48
-_02223D24:
- ldr r0, [r4, #0x54]
- sub r0, r0, #1
- str r0, [r4, #0x54]
- bpl _02223D7E
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- ldr r0, [r4]
- bl MOD08_02215504
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02214540
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- ldr r0, _02223E54 ; =0x0000FFFF
- mov r1, #1
- lsl r2, r2, #0x10
- add r3, r1, #0
- str r0, [sp, #8]
- add r0, r5, #0
- lsr r2, r2, #0x10
- sub r3, #9
- bl FUN_02003210
- ldr r7, _02223E54 ; =0x0000FFFF
- mov r6, #0
- add r5, r4, #0
-_02223D64:
- ldr r0, [r5, #0x14]
- cmp r0, #0
- beq _02223D76
- mov r1, #0xe
- mov r2, #0x10
- mov r3, #0
- str r7, [sp]
- bl FUN_02007E68
-_02223D76:
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #4
- blt _02223D64
-_02223D7E:
- b _02223E48
-_02223D80:
- ldr r0, [r4]
- bl MOD08_02215504
- bl FUN_020038E4
- cmp r0, #0
- bne _02223E48
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- ldr r0, [r4]
- bl MOD08_02215504
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02214540
- add r2, r0, #0
- mov r0, #0x10
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- ldr r0, _02223E54 ; =0x0000FFFF
- mov r1, #1
- lsl r2, r2, #0x10
- add r3, r1, #0
- str r0, [sp, #8]
- add r0, r5, #0
- lsr r2, r2, #0x10
- sub r3, #9
- bl FUN_02003210
- ldr r7, _02223E54 ; =0x0000FFFF
- mov r6, #0
- add r5, r4, #0
-_02223DC6:
- ldr r0, [r5, #0x14]
- cmp r0, #0
- beq _02223DD8
- mov r2, #0
- mov r1, #2
- add r3, r2, #0
- str r7, [sp]
- bl FUN_02007E68
-_02223DD8:
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #4
- blt _02223DC6
- b _02223E48
-_02223DE2:
- ldr r0, [r4]
- bl MOD08_02215504
- bl FUN_020038E4
- cmp r0, #0
- bne _02223E48
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #4
- str r0, [r4, #0x54]
- str r0, [r4, #0x50]
- mov r0, #0
- str r0, [r4, #0x58]
- b _02223E48
-_02223E02:
- ldr r0, [r4, #0x54]
- sub r0, r0, #1
- str r0, [r4, #0x54]
- bpl _02223E48
- mov r0, #4
- str r0, [r4, #0x54]
- ldr r0, [r4, #0x50]
- sub r0, r0, #1
- str r0, [r4, #0x50]
- bpl _02223E1E
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02223E48
-_02223E1E:
- ldr r0, [r4, #0x24]
- ldr r1, [r4, #0x58]
- bl FUN_0200C644
- ldr r1, [r4, #0x58]
- mov r0, #1
- eor r0, r1
- str r0, [r4, #0x58]
- b _02223E48
-_02223E30:
- ldr r0, [r4, #0x24]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-_02223E48:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02223E54: .word 0x0000FFFF
-
- thumb_func_start MOD08_02223E58
-MOD08_02223E58: ; 0x02223E58
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r6, r1, #0
- mov r1, #0x5c
- add r5, r0, #0
- str r2, [sp, #4]
- add r7, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- ldr r0, [sp, #4]
- str r6, [r4, #4]
- str r0, [r4, #8]
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- mov r6, #0
- add r5, r4, #0
-_02223E88:
- ldr r0, [r4]
- add r1, r6, #0
- bl MOD08_022154D4
- str r0, [r5, #0x14]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #4
- blt _02223E88
- str r7, [r4, #0x24]
- add r0, r7, #0
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x24]
- mov r1, #1
- bl FUN_0200C6B0
- add r1, r4, #0
- add r2, r4, #0
- ldr r0, [r4, #0x24]
- add r1, #0x4c
- add r2, #0x4e
- bl FUN_0200C7A0
- mov r1, #0x4c
- ldrsh r2, [r4, r1]
- add r0, r4, #0
- add r0, #0x4c
- sub r2, #0x28
- strh r2, [r0]
- mov r2, #0x4e
- ldrsh r3, [r4, r2]
- add r0, r4, #0
- add r0, #0x4e
- sub r3, #0x28
- strh r3, [r0]
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x24]
- bl FUN_0200C714
- ldr r0, [r4, #0x24]
- mov r1, #1
- bl FUN_0200C90C
- mov r0, #0xf
- mvn r0, r0
- str r0, [r4, #0x54]
- mov r0, #0x1a
- str r0, [sp]
- ldr r0, _02223F08 ; =0x04000050
- mov r1, #0
- mov r2, #0x3f
- mov r3, #0x1f
- bl G2x_SetBlendAlpha_
- ldr r0, [r4]
- ldr r1, _02223F0C ; =MOD08_02223C74
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02223F08: .word 0x04000050
-_02223F0C: .word MOD08_02223C74
-
- thumb_func_start MOD08_02223F10
-MOD08_02223F10: ; 0x02223F10
- push {r3, r4, r5, lr}
- ldr r2, _02223F50 ; =0x00000AAA
- add r4, r0, #0
- add r5, r1, #0
- add r0, #0x10
- mov r1, #0
- mov r3, #3
- bl MOD08_02218030
- cmp r5, #0
- beq _02223F3C
- mov r0, #0
- ldr r1, [r4, #0x18]
- mvn r0, r0
- mul r0, r1
- str r0, [r4, #0x18]
- ldr r0, [r4, #8]
- mov r1, #0xa
- mov r2, #0x10
- bl FUN_02007558
- b _02223F48
-_02223F3C:
- mov r1, #0xa
- add r2, r1, #0
- ldr r0, [r4, #8]
- sub r2, #0x1a
- bl FUN_02007558
-_02223F48:
- mov r0, #0
- str r0, [r4, #0x4c]
- str r0, [r4, #0x50]
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02223F50: .word 0x00000AAA
-
- thumb_func_start MOD08_02223F54
-MOD08_02223F54: ; 0x02223F54
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r0, #0
- ldr r0, [r4, #0x4c]
- mov r5, #0
- cmp r0, #3
- bhi _0222405E
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02223F6E: ; jump table
- .short _02223F76 - _02223F6E - 2 ; case 0
- .short _02223FB6 - _02223F6E - 2 ; case 1
- .short _02224012 - _02223F6E - 2 ; case 2
- .short _0222405C - _02223F6E - 2 ; case 3
-_02223F76:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218080
- ldr r0, [r4, #8]
- ldr r2, [r4, #0x10]
- mov r1, #9
- bl FUN_02007558
- ldr r0, [r4, #0x50]
- sub r0, r0, #1
- str r0, [r4, #0x50]
- bpl _0222405E
- ldr r0, [r4, #0x4c]
- add r0, r0, #1
- str r0, [r4, #0x4c]
- mov r0, #0xe
- ldrsh r3, [r4, r0]
- mov r0, #0xc
- ldrsh r1, [r4, r0]
- add r0, r3, #2
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- mov r0, #2
- add r4, #0x24
- str r0, [sp, #4]
- add r0, r4, #0
- add r2, r1, #0
- bl MOD08_02217E80
- b _0222405E
-_02223FB6:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218080
- cmp r0, #0
- beq _02223FCC
- ldr r0, [r4, #8]
- ldr r2, [r4, #0x10]
- mov r1, #9
- bl FUN_02007558
-_02223FCC:
- add r0, r4, #0
- ldr r1, [r4, #8]
- add r0, #0x24
- bl MOD08_02217F2C
- cmp r0, #0
- bne _0222405E
- ldr r0, [r4, #0x4c]
- mov r2, #0
- add r0, r0, #1
- str r0, [r4, #0x4c]
- ldr r1, [r4, #0x10]
- add r0, r4, #0
- lsl r1, r1, #0x10
- add r0, #0x10
- asr r1, r1, #0x10
- mov r3, #3
- bl MOD08_02218030
- mov r0, #0xe
- ldrsh r3, [r4, r0]
- mov r0, #0xc
- ldrsh r1, [r4, r0]
- mov r0, #2
- add r4, #0x24
- str r3, [sp]
- add r3, r3, #2
- lsl r3, r3, #0x10
- str r0, [sp, #4]
- add r0, r4, #0
- add r2, r1, #0
- asr r3, r3, #0x10
- bl MOD08_02217E80
- b _0222405E
-_02224012:
- add r0, r4, #0
- ldr r1, [r4, #8]
- add r0, #0x24
- bl MOD08_02217F2C
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218080
- cmp r0, #0
- ldr r0, [r4, #8]
- beq _02224034
- ldr r2, [r4, #0x10]
- mov r1, #9
- bl FUN_02007558
- b _0222405E
-_02224034:
- mov r2, #0xc
- ldrsh r2, [r4, r2]
- add r1, r5, #0
- bl FUN_02007558
- mov r2, #0xe
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #8]
- mov r1, #1
- bl FUN_02007558
- ldr r0, [r4, #8]
- mov r1, #9
- add r2, r5, #0
- bl FUN_02007558
- ldr r0, [r4, #0x4c]
- add r0, r0, #1
- str r0, [r4, #0x4c]
- b _0222405E
-_0222405C:
- mov r5, #1
-_0222405E:
- add r0, r5, #0
- add sp, #8
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02224064
-MOD08_02224064: ; 0x02224064
- push {r4, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldr r0, [r4]
- cmp r0, #0
- beq _02224076
- cmp r0, #1
- beq _022240A8
- pop {r4, pc}
-_02224076:
- add r0, r4, #0
- bl MOD08_02223F54
- cmp r0, #0
- beq _022240B6
- ldr r0, [r4, #0x48]
- add r0, r0, #1
- str r0, [r4, #0x48]
- cmp r0, #4
- bge _022240A0
- ldr r1, [r4, #0x54]
- mov r0, #1
- eor r1, r0
- add r0, r4, #0
- str r1, [r4, #0x54]
- bl MOD08_02223F10
- add r0, r4, #0
- bl MOD08_02223F54
- pop {r4, pc}
-_022240A0:
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- pop {r4, pc}
-_022240A8:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_022240B6:
- pop {r4, pc}
-
- thumb_func_start MOD08_022240B8
-MOD08_022240B8: ; 0x022240B8
- push {r4, r5, r6, lr}
- mov r1, #0x58
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4, #4]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02217C1C
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- cmp r0, #0
- bne _02224104
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #8]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0xc]
- ldr r0, [r4, #8]
- mov r1, #1
- bl FUN_0200782C
- b _02224124
-_02224104:
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #8]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0xc]
- ldr r0, [r4, #8]
- mov r1, #1
- bl FUN_0200782C
-_02224124:
- strh r0, [r4, #0xe]
- ldr r0, [r4, #8]
- mov r1, #0xb
- mov r2, #0x32
- bl FUN_02007558
- cmp r6, #1
- bne _02224138
- mov r0, #0
- b _0222413A
-_02224138:
- mov r0, #1
-_0222413A:
- str r0, [r4, #0x54]
- ldr r1, [r4, #0x54]
- add r0, r4, #0
- bl MOD08_02223F10
- ldr r0, [r4, #4]
- ldr r1, _02224150 ; =MOD08_02224064
- add r2, r4, #0
- bl MOD08_02212400
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02224150: .word MOD08_02224064
-
- thumb_func_start MOD08_02224154
-MOD08_02224154: ; 0x02224154
- push {r3, r4, r5, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x38]
- mov r5, #0
- cmp r0, #3
- bhi _02224210
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222416C: ; jump table
- .short _02224174 - _0222416C - 2 ; case 0
- .short _022241A4 - _0222416C - 2 ; case 1
- .short _022241C6 - _0222416C - 2 ; case 2
- .short _022241F6 - _0222416C - 2 ; case 3
-_02224174:
- add r0, r4, #0
- ldr r1, [r4, #0xc]
- add r0, #0x10
- bl MOD08_02218380
- cmp r0, #0
- beq _0222419C
- add r0, r5, #0
- str r0, [sp]
- ldr r1, [r4, #0x3c]
- ldr r2, [r4, #0x40]
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r4, #0xc]
- ldr r3, [r4, #0x24]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_022182DC
- b _02224210
-_0222419C:
- ldr r0, [r4, #0x38]
- add r0, r0, #1
- str r0, [r4, #0x38]
- b _02224210
-_022241A4:
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- bpl _02224210
- ldr r0, [r4, #0x38]
- mov r2, #0xa
- add r0, r0, #1
- str r0, [r4, #0x38]
- mov r0, #8
- add r4, #0x10
- str r0, [sp]
- add r0, r4, #0
- mov r1, #0xf
- add r3, r2, #0
- bl MOD08_02218120
- b _02224210
-_022241C6:
- add r0, r4, #0
- ldr r1, [r4, #0xc]
- add r0, #0x10
- bl MOD08_02218380
- cmp r0, #0
- beq _022241EE
- add r0, r5, #0
- str r0, [sp]
- ldr r1, [r4, #0x3c]
- ldr r2, [r4, #0x40]
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r4, #0xc]
- ldr r3, [r4, #0x24]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_022182DC
- b _02224210
-_022241EE:
- ldr r0, [r4, #0x38]
- add r0, r0, #1
- str r0, [r4, #0x38]
- b _02224210
-_022241F6:
- mov r1, #0xc
- add r2, r1, #0
- ldr r0, [r4, #0xc]
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #0xc]
- add r2, #0xf3
- bl FUN_02007558
- mov r5, #1
-_02224210:
- add r0, r5, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02224214
-MOD08_02224214: ; 0x02224214
- push {r4, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _0222422A
- cmp r0, #1
- beq _02224240
- cmp r0, #2
- beq _02224250
- pop {r4, pc}
-_0222422A:
- add r0, r4, #0
- bl MOD08_02224154
- cmp r0, #0
- beq _0222425E
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- mov r0, #0x10
- str r0, [r4, #8]
- pop {r4, pc}
-_02224240:
- ldr r0, [r4, #8]
- sub r0, r0, #1
- str r0, [r4, #8]
- bpl _0222425E
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, pc}
-_02224250:
- ldr r0, [r4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0222425E:
- pop {r4, pc}
-
- thumb_func_start MOD08_02224260
-MOD08_02224260: ; 0x02224260
- push {r3, r4, r5, lr}
- mov r1, #0x44
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- mov r0, #8
- str r0, [sp]
- add r0, r4, #0
- mov r1, #0xa
- add r0, #0x10
- add r2, r1, #0
- mov r3, #0xf
- bl MOD08_02218120
- mov r0, #4
- str r0, [r4, #0x34]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_0221552C
- str r0, [r4, #0x40]
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- str r0, [r4, #0x3c]
- ldr r0, [r4]
- ldr r1, _022242BC ; =MOD08_02224214
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- nop
-_022242BC: .word MOD08_02224214
-
- thumb_func_start MOD08_022242C0
-MOD08_022242C0: ; 0x022242C0
- push {r4, r5, r6, lr}
- sub sp, #8
- add r5, r0, #0
- ldr r0, [r5, #0x74]
- mov r1, #0x64
- bl _s32_div_f
- add r4, r0, #0
- ldr r0, [r5, #0x78]
- mov r1, #0x64
- bl _s32_div_f
- add r6, r0, #0
- ldr r0, [r5, #0x70]
- mov r1, #0x64
- bl _s32_div_f
- str r0, [sp]
- add r0, r5, #0
- lsl r1, r4, #0x10
- lsl r3, r6, #0x10
- add r0, #0x18
- asr r1, r1, #0x10
- mov r2, #0xa
- asr r3, r3, #0x10
- bl MOD08_02218120
- ldr r0, [r5]
- mov r1, #0x10
- mov r2, #0
- bl MOD08_02227994
- ldr r0, [r5, #0x70]
- mov r1, #0x64
- bl _s32_div_f
- mov r1, #6
- str r1, [sp]
- lsl r0, r0, #1
- str r0, [sp, #4]
- add r0, r5, #0
- add r0, #0x3c
- mov r1, #0x10
- mov r2, #0xa
- mov r3, #0
- bl MOD08_022186D4
- mov r0, #0
- str r0, [r5, #0x64]
- str r0, [r5, #0x68]
- add sp, #8
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_02224328
-MOD08_02224328: ; 0x02224328
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x64]
- mov r5, #0
- cmp r0, #3
- bhi _022243FC
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02224340: ; jump table
- .short _02224348 - _02224340 - 2 ; case 0
- .short _0222438E - _02224340 - 2 ; case 1
- .short _022243E4 - _02224340 - 2 ; case 2
- .short _022243FA - _02224340 - 2 ; case 3
-_02224348:
- add r0, r4, #0
- ldr r1, [r4, #0x14]
- add r0, #0x18
- bl MOD08_02218360
- cmp r0, #0
- bne _022243FC
- ldr r0, [r4, #0x78]
- mov r1, #0x64
- bl _s32_div_f
- add r6, r0, #0
- ldr r0, [r4, #0x74]
- mov r1, #0x64
- bl _s32_div_f
- add r7, r0, #0
- ldr r0, [r4, #0x70]
- mov r1, #0x64
- bl _s32_div_f
- str r0, [sp]
- add r0, r4, #0
- lsl r1, r6, #0x10
- lsl r3, r7, #0x10
- add r0, #0x18
- asr r1, r1, #0x10
- mov r2, #0xa
- asr r3, r3, #0x10
- bl MOD08_02218120
- ldr r0, [r4, #0x64]
- add r0, r0, #1
- str r0, [r4, #0x64]
- b _022243FC
-_0222438E:
- add r0, r4, #0
- ldr r1, [r4, #0x14]
- add r0, #0x18
- bl MOD08_02218360
- cmp r0, #0
- bne _022243FC
- ldr r0, [r4, #0x68]
- add r0, r0, #1
- str r0, [r4, #0x68]
- cmp r0, #2
- bge _022243DC
- add r0, r5, #0
- str r0, [r4, #0x64]
- ldr r0, [r4, #0x74]
- mov r1, #0x64
- bl _s32_div_f
- add r6, r0, #0
- ldr r0, [r4, #0x78]
- mov r1, #0x64
- bl _s32_div_f
- add r7, r0, #0
- ldr r0, [r4, #0x70]
- mov r1, #0x64
- bl _s32_div_f
- lsl r1, r6, #0x10
- lsl r3, r7, #0x10
- add r4, #0x18
- str r0, [sp]
- add r0, r4, #0
- asr r1, r1, #0x10
- mov r2, #0xa
- asr r3, r3, #0x10
- bl MOD08_02218120
- b _022243FC
-_022243DC:
- ldr r0, [r4, #0x64]
- add r0, r0, #1
- str r0, [r4, #0x64]
- b _022243FC
-_022243E4:
- add r0, r4, #0
- add r0, #0x3c
- bl MOD08_02218704
- cmp r0, #0
- beq _022243FC
- ldr r0, [r4, #0x64]
- mov r5, #1
- add r0, r0, #1
- str r0, [r4, #0x64]
- b _022243FC
-_022243FA:
- mov r5, #1
-_022243FC:
- add r0, r5, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02224400
-MOD08_02224400: ; 0x02224400
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r1, [r5, #0x7c]
- mov r4, #0
- cmp r1, #0
- beq _02224416
- cmp r1, #1
- beq _02224428
- cmp r1, #2
- beq _02224472
- b _02224474
-_02224416:
- bl MOD08_022242C0
- add r0, r5, #0
- bl MOD08_02224328
- ldr r0, [r5, #0x7c]
- add r0, r0, #1
- str r0, [r5, #0x7c]
- b _02224474
-_02224428:
- bl MOD08_02224328
- cmp r0, #0
- beq _02224474
- ldr r0, [r5, #0x6c]
- sub r0, r0, #1
- str r0, [r5, #0x6c]
- bmi _02224468
- ldr r0, [r5, #0x70]
- mov r1, #3
- bl _s32_div_f
- ldr r1, [r5, #0x70]
- sub r0, r1, r0
- str r0, [r5, #0x70]
- ldr r0, [r5, #0x74]
- mov r1, #3
- bl _s32_div_f
- ldr r1, [r5, #0x74]
- sub r0, r1, r0
- str r0, [r5, #0x74]
- ldr r0, [r5, #0x78]
- mov r1, #3
- bl _s32_div_f
- ldr r1, [r5, #0x78]
- sub r0, r1, r0
- str r0, [r5, #0x78]
- add r0, r4, #0
- str r0, [r5, #0x7c]
- b _02224474
-_02224468:
- ldr r0, [r5, #0x7c]
- mov r4, #1
- add r0, r0, #1
- str r0, [r5, #0x7c]
- b _02224474
-_02224472:
- mov r4, #1
-_02224474:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02224478
-MOD08_02224478: ; 0x02224478
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #4
- bls _02224488
- b _022245A8
-_02224488:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02224494: ; jump table
- .short _0222449E - _02224494 - 2 ; case 0
- .short _022244E4 - _02224494 - 2 ; case 1
- .short _02224544 - _02224494 - 2 ; case 2
- .short _02224574 - _02224494 - 2 ; case 3
- .short _02224590 - _02224494 - 2 ; case 4
-_0222449E:
- add r0, r4, #0
- bl MOD08_02224400
- cmp r0, #0
- beq _022245A8
- ldr r0, [r4, #0xc]
- mov r1, #0
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #0x1e
- str r0, [r4, #0x10]
- ldr r0, [r4, #0x14]
- bl FUN_0200C5C0
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_0200C5E0
- mov r1, #0xfe
- lsl r1, r1, #0x16
- ldr r0, [r4, #0x14]
- add r2, r1, #0
- bl FUN_0200C884
- mov r1, #0
- mov r2, #0x10
- str r1, [sp]
- mov r0, #4
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x3c
- add r3, r2, #0
- bl MOD08_022186D4
- b _022245A8
-_022244E4:
- ldr r0, [r4, #0x10]
- cmp r0, #0
- bne _02224502
- mov r0, #1
- str r0, [sp]
- mov r0, #8
- mov r1, #0x10
- mov r2, #0
- mov r3, #0xd
- bl FUN_0200A208
- mov r0, #0
- mvn r0, r0
- str r0, [r4, #0x10]
- b _02224508
-_02224502:
- ble _02224508
- sub r0, r0, #1
- str r0, [r4, #0x10]
-_02224508:
- mov r0, #0
- ldr r1, [r4, #0x10]
- mvn r0, r0
- cmp r1, r0
- bne _02224532
- mov r0, #1
- bl FUN_0200A344
- cmp r0, #0
- beq _02224532
- mov r0, #1
- str r0, [sp]
- mov r0, #8
- mov r1, #0
- mov r2, #0x10
- mov r3, #0xd
- bl FUN_0200A208
- mov r0, #1
- mvn r0, r0
- str r0, [r4, #0x10]
-_02224532:
- ldr r0, [r4, #0x14]
- bl FUN_0200C608
- cmp r0, #0
- bne _022245A8
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _022245A8
-_02224544:
- mov r0, #1
- bl FUN_0200A344
- cmp r0, #0
- beq _022245A8
- ldr r0, [r4, #0xc]
- mov r1, #0x10
- add r0, r0, #1
- str r0, [r4, #0xc]
- ldr r0, [r4]
- mov r2, #0
- bl MOD08_02227994
- mov r1, #0x10
- mov r2, #0
- str r1, [sp]
- mov r0, #8
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x3c
- add r3, r2, #0
- bl MOD08_022186D4
- b _022245A8
-_02224574:
- add r0, r4, #0
- add r0, #0x3c
- bl MOD08_02218704
- cmp r0, #0
- beq _022245A8
- ldr r0, [r4, #0x14]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _022245A8
-_02224590:
- ldr r0, [r4, #0x14]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #8
- pop {r3, r4, r5, pc}
-_022245A8:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022245B4
-MOD08_022245B4: ; 0x022245B4
- push {r3, r4, r5, r6, r7, lr}
- add r7, r1, #0
- mov r1, #0x80
- add r6, r0, #0
- str r2, [sp]
- add r5, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r6, [r4]
- ldr r0, [sp]
- str r7, [r4, #4]
- str r0, [r4, #8]
- str r5, [r4, #0x14]
- add r0, r5, #0
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x14]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #0x14]
- mov r1, #4
- bl FUN_0200C61C
- mov r0, #3
- str r0, [r4, #0x6c]
- mov r0, #0x19
- lsl r0, r0, #4
- str r0, [r4, #0x70]
- ldr r0, _02224618 ; =0x000005DC
- ldr r1, _0222461C ; =MOD08_02224478
- str r0, [r4, #0x74]
- mov r0, #0xfa
- lsl r0, r0, #2
- str r0, [r4, #0x78]
- ldr r0, [r4]
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02224618: .word 0x000005DC
-_0222461C: .word MOD08_02224478
-
- thumb_func_start MOD08_02224620
-MOD08_02224620: ; 0x02224620
- push {r3, lr}
- sub sp, #8
- ldr r1, [r0, #0x34]
- cmp r1, #3
- bhi _02224668
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02224636: ; jump table
- .short _0222463E - _02224636 - 2 ; case 0
- .short _02224656 - _02224636 - 2 ; case 1
- .short _0222463E - _02224636 - 2 ; case 2
- .short _02224656 - _02224636 - 2 ; case 3
-_0222463E:
- mov r1, #0x20
- str r1, [sp]
- mov r1, #6
- str r1, [sp, #4]
- mov r1, #0
- add r0, #0x10
- add r2, r1, #0
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_02224656:
- mov r1, #0
- str r1, [sp]
- mov r2, #6
- str r2, [sp, #4]
- add r0, #0x10
- add r2, r1, #0
- mov r3, #0x20
- bl MOD08_02217E80
-_02224668:
- add sp, #8
- pop {r3, pc}
-
- thumb_func_start MOD08_0222466C
-MOD08_0222466C: ; 0x0222466C
- push {r4, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldr r0, [r4]
- cmp r0, #0
- beq _02224682
- cmp r0, #1
- beq _02224690
- cmp r0, #2
- beq _022246C8
- pop {r4, pc}
-_02224682:
- add r0, r4, #0
- bl MOD08_02224620
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- pop {r4, pc}
-_02224690:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02217ECC
- cmp r0, #0
- beq _022246B0
- mov r2, #0xc
- mov r3, #0xe
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- ldr r1, [r4, #8]
- add r0, #0x10
- bl MOD08_02217CD0
- pop {r4, pc}
-_022246B0:
- ldr r0, [r4, #0x34]
- add r0, r0, #1
- str r0, [r4, #0x34]
- cmp r0, #4
- bge _022246C0
- mov r0, #0
- str r0, [r4]
- pop {r4, pc}
-_022246C0:
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- pop {r4, pc}
-_022246C8:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
-
- thumb_func_start MOD08_022246D8
-MOD08_022246D8: ; 0x022246D8
- push {r3, r4, r5, lr}
- mov r1, #0x38
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4, #4]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #8]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0xc]
- ldr r0, [r4, #8]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0xe]
- mov r0, #0
- str r0, [r4, #0x34]
- ldr r0, [r4, #4]
- ldr r1, _02224718 ; =MOD08_0222466C
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02224718: .word MOD08_0222466C
-
- thumb_func_start MOD08_0222471C
-MOD08_0222471C: ; 0x0222471C
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- add r2, r0, #0
- ldr r0, [r4]
- cmp r0, #6
- bhi _0222477E
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02224736: ; jump table
- .short _02224744 - _02224736 - 2 ; case 0
- .short _02224762 - _02224736 - 2 ; case 1
- .short _022247DA - _02224736 - 2 ; case 2
- .short _0222481E - _02224736 - 2 ; case 3
- .short _0222485C - _02224736 - 2 ; case 4
- .short _022248A4 - _02224736 - 2 ; case 5
- .short _022248D4 - _02224736 - 2 ; case 6
-_02224744:
- add r0, r4, #0
- add r0, #0x14
- mov r1, #1
- mov r2, #0x40
- bl MOD08_02218654
- ldr r1, [r4, #0x20]
- ldr r0, [r4, #8]
- add sp, #8
- mul r0, r1
- str r0, [r4, #0x20]
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- pop {r4, pc}
-_02224762:
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- mov r1, #0x10
- add r0, r4, #0
- add r2, #8
- lsl r2, r2, #0x10
- ldrsh r1, [r4, r1]
- ldr r3, [r4, #0xc]
- add r0, #0x14
- asr r2, r2, #0x10
- bl MOD08_02217E58
- cmp r0, #0
- beq _02224780
-_0222477E:
- b _022248E2
-_02224780:
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_02007558
- mov r0, #0x10
- ldrsh r1, [r4, r0]
- mov r3, #0
- mov r0, #2
- add r2, r1, #0
- str r3, [sp]
- add r2, #0x20
- str r0, [sp, #4]
- add r0, r4, #0
- lsl r2, r2, #0x10
- add r0, #0x14
- asr r2, r2, #0x10
- bl MOD08_02217E80
- ldr r1, [r4, #0x1c]
- ldr r0, [r4, #8]
- mul r0, r1
- str r0, [r4, #0x1c]
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02217ECC
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl FUN_02007558
- add sp, #8
- pop {r4, pc}
-_022247DA:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02217ECC
- cmp r0, #0
- beq _022247F6
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl FUN_02007558
- add sp, #8
- pop {r4, pc}
-_022247F6:
- mov r0, #0x3c
- ldrsh r1, [r4, r0]
- mov r3, #0
- mov r0, #2
- str r3, [sp]
- str r0, [sp, #4]
- ldr r2, [r4, #8]
- add r0, r4, #0
- lsl r2, r2, #5
- add r2, r1, r2
- lsl r2, r2, #0x10
- add r0, #0x40
- asr r2, r2, #0x10
- bl MOD08_02217E80
- ldr r0, [r4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4]
- pop {r4, pc}
-_0222481E:
- add r0, r4, #0
- add r0, #0x40
- bl MOD08_02217ECC
- cmp r0, #0
- beq _0222483A
- mov r2, #0x40
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x38]
- mov r1, #0
- bl FUN_02007558
- add sp, #8
- pop {r4, pc}
-_0222483A:
- mov r3, #0
- str r3, [sp]
- mov r0, #8
- str r0, [sp, #4]
- mov r1, #0x14
- mov r2, #0x10
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- add r0, #0x14
- bl MOD08_02217E80
- ldr r0, [r4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4]
- pop {r4, pc}
-_0222485C:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02217ECC
- cmp r0, #0
- ldr r0, [r4, #0xc]
- beq _02224878
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- mov r1, #0
- bl FUN_02007558
- add sp, #8
- pop {r4, pc}
-_02224878:
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- mov r1, #0
- bl FUN_02007558
- mov r3, #0
- str r3, [sp]
- mov r0, #8
- str r0, [sp, #4]
- mov r1, #0x40
- mov r2, #0x3c
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- add r0, #0x40
- bl MOD08_02217E80
- ldr r0, [r4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4]
- pop {r4, pc}
-_022248A4:
- add r0, r4, #0
- add r0, #0x40
- bl MOD08_02217ECC
- cmp r0, #0
- ldr r0, [r4, #0x38]
- beq _022248C0
- mov r2, #0x40
- ldrsh r2, [r4, r2]
- mov r1, #0
- bl FUN_02007558
- add sp, #8
- pop {r4, pc}
-_022248C0:
- mov r2, #0x3c
- ldrsh r2, [r4, r2]
- mov r1, #0
- bl FUN_02007558
- ldr r0, [r4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4]
- pop {r4, pc}
-_022248D4:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_022248E2:
- add sp, #8
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022248E8
-MOD08_022248E8: ; 0x022248E8
- push {r3, r4, r5, lr}
- mov r1, #0x64
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4, #4]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02217C1C
- str r0, [r4, #8]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x10]
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x12]
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #0x38]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x3c]
- ldr r0, [r4, #0x38]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x3e]
- ldr r0, [r4, #4]
- ldr r1, _02224958 ; =MOD08_0222471C
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- nop
-_02224958: .word MOD08_0222471C
-
- thumb_func_start MOD08_0222495C
-MOD08_0222495C: ; 0x0222495C
- push {lr}
- sub sp, #0xc
- mov r1, #0
- str r1, [r0, #0x40]
- mov r1, #8
- str r1, [sp]
- mov r1, #0xa
- str r1, [sp, #4]
- mov r2, #2
- str r2, [sp, #8]
- add r0, #0x1c
- mov r2, #9
- add r3, r1, #0
- bl MOD08_022181A8
- add sp, #0xc
- pop {pc}
- .align 2, 0
-
- thumb_func_start MOD08_02224980
-MOD08_02224980: ; 0x02224980
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r0, #0
- ldr r0, [r4, #0x40]
- mov r5, #0
- cmp r0, #3
- bhi _02224A72
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222499A: ; jump table
- .short _022249A2 - _0222499A - 2 ; case 0
- .short _022249E8 - _0222499A - 2 ; case 1
- .short _02224A2A - _0222499A - 2 ; case 2
- .short _02224A70 - _0222499A - 2 ; case 3
-_022249A2:
- add r0, r4, #0
- ldr r1, [r4, #0x18]
- add r0, #0x1c
- bl MOD08_022183A0
- cmp r0, #0
- beq _022249C6
- add r0, r5, #0
- str r0, [sp]
- mov r1, #0x44
- mov r2, #0x46
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x18]
- ldr r3, [r4, #0x30]
- bl MOD08_022182DC
- b _02224A72
-_022249C6:
- ldr r0, [r4, #0x40]
- mov r1, #9
- add r0, r0, #1
- str r0, [r4, #0x40]
- mov r0, #0xf
- str r0, [sp]
- mov r0, #0xa
- str r0, [sp, #4]
- mov r0, #2
- add r4, #0x1c
- str r0, [sp, #8]
- add r0, r4, #0
- mov r2, #0xb
- mov r3, #8
- bl MOD08_022181A8
- b _02224A72
-_022249E8:
- add r0, r4, #0
- ldr r1, [r4, #0x18]
- add r0, #0x1c
- bl MOD08_022183A0
- cmp r0, #0
- beq _02224A0C
- add r0, r5, #0
- str r0, [sp]
- mov r1, #0x44
- mov r2, #0x46
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x18]
- ldr r3, [r4, #0x30]
- bl MOD08_022182DC
- b _02224A72
-_02224A0C:
- ldr r0, [r4, #0x40]
- mov r2, #0xa
- add r0, r0, #1
- str r0, [r4, #0x40]
- str r2, [sp]
- str r2, [sp, #4]
- mov r0, #2
- add r4, #0x1c
- str r0, [sp, #8]
- add r0, r4, #0
- mov r1, #0xb
- mov r3, #0xf
- bl MOD08_022181A8
- b _02224A72
-_02224A2A:
- add r0, r4, #0
- ldr r1, [r4, #0x18]
- add r0, #0x1c
- bl MOD08_022183A0
- cmp r0, #0
- beq _02224A4E
- add r0, r5, #0
- str r0, [sp]
- mov r1, #0x44
- mov r2, #0x46
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x18]
- ldr r3, [r4, #0x30]
- bl MOD08_022182DC
- b _02224A72
-_02224A4E:
- mov r1, #0xc
- add r2, r1, #0
- ldr r0, [r4, #0x18]
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #0x18]
- add r2, #0xf3
- bl FUN_02007558
- ldr r0, [r4, #0x40]
- mov r5, #1
- add r0, r0, #1
- str r0, [r4, #0x40]
- b _02224A72
-_02224A70:
- mov r5, #1
-_02224A72:
- add r0, r5, #0
- add sp, #0xc
- pop {r4, r5, pc}
-
- thumb_func_start MOD08_02224A78
-MOD08_02224A78: ; 0x02224A78
- push {r3, r4, r5, lr}
- add r4, r2, #0
- mov r2, #0
- str r2, [r1]
- add r5, r0, #0
- mov r1, #0x64
- bl FUN_0200C6C4
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200C6B0
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200C644
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200C5E0
- add r0, r5, #0
- add r1, r4, #0
- bl FUN_0200C5F4
- add r0, r5, #0
- mov r1, #0
- bl FUN_0200C5C0
- add r0, r5, #0
- mov r1, #0
- bl FUN_0200C61C
- mov r1, #0x37
- add r0, r5, #0
- lsl r1, r1, #0xc
- bl FUN_0200C5B4
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02224AC4
-MOD08_02224AC4: ; 0x02224AC4
- push {r3, r4, r5, lr}
- add r5, r1, #0
- ldr r1, [r5]
- mov r4, #0
- cmp r1, #0
- beq _02224AD6
- cmp r1, #1
- beq _02224AE8
- b _02224AEC
-_02224AD6:
- bl FUN_0200C608
- cmp r0, #0
- bne _02224AEE
- ldr r0, [r5]
- mov r4, #1
- add r0, r0, #1
- str r0, [r5]
- b _02224AEE
-_02224AE8:
- mov r4, #1
- b _02224AEE
-_02224AEC:
- mov r4, #1
-_02224AEE:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02224AF4
-MOD08_02224AF4: ; 0x02224AF4
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r7, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #5
- bls _02224B02
- b _02224C14
-_02224B02:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02224B0E: ; jump table
- .short _02224B1A - _02224B0E - 2 ; case 0
- .short _02224B3E - _02224B0E - 2 ; case 1
- .short _02224B76 - _02224B0E - 2 ; case 2
- .short _02224BA6 - _02224B0E - 2 ; case 3
- .short _02224BCC - _02224B0E - 2 ; case 4
- .short _02224BF2 - _02224B0E - 2 ; case 5
-_02224B1A:
- add r0, r4, #0
- bl MOD08_0222495C
- ldr r0, [r4, #0x10]
- add r1, r4, #0
- lsl r2, r0, #2
- add r0, r4, r2
- add r1, #0x60
- add r1, r1, r2
- mov r2, #2
- ldr r0, [r0, #0x48]
- lsl r2, r2, #0xc
- bl MOD08_02224A78
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02224C14
-_02224B3E:
- add r0, r4, #0
- bl MOD08_02224980
- add r5, r0, #0
- ldr r0, [r4, #0x10]
- add r1, r4, #0
- lsl r2, r0, #2
- add r0, r4, r2
- add r1, #0x60
- ldr r0, [r0, #0x48]
- add r1, r1, r2
- bl MOD08_02224AC4
- cmp r5, r0
- bne _02224C14
- cmp r5, #1
- bne _02224C14
- ldr r0, [r4, #0x10]
- mov r1, #1
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r0, [r0, #0x48]
- bl FUN_0200C5C0
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02224C14
-_02224B76:
- ldr r0, [r4, #0x10]
- add r2, r4, #0
- add r2, #0x78
- lsl r1, r0, #2
- ldr r0, [r2, r1]
- sub r0, r0, #1
- str r0, [r2, r1]
- ldr r1, [r4, #0x10]
- lsl r0, r1, #2
- add r0, r4, r0
- ldr r0, [r0, #0x78]
- cmp r0, #0
- bge _02224C14
- add r0, r1, #1
- str r0, [r4, #0x10]
- cmp r0, #6
- bge _02224B9E
- mov r0, #0
- str r0, [r4, #0xc]
- b _02224C14
-_02224B9E:
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02224C14
-_02224BA6:
- add r6, r4, #0
- mov r7, #0
- add r6, #0x60
- add r5, r4, #0
-_02224BAE:
- mov r2, #2
- ldr r0, [r5, #0x48]
- add r1, r6, #0
- lsl r2, r2, #0xc
- bl MOD08_02224A78
- add r7, r7, #1
- add r6, r6, #4
- add r5, r5, #4
- cmp r7, #6
- blt _02224BAE
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02224C14
-_02224BCC:
- add r6, r4, #0
- mov r7, #0
- add r6, #0x60
- add r5, r4, #0
-_02224BD4:
- ldr r0, [r5, #0x48]
- add r1, r6, #0
- bl MOD08_02224AC4
- add r7, r7, #1
- add r6, r6, #4
- add r5, r5, #4
- cmp r7, #6
- blt _02224BD4
- cmp r0, #1
- bne _02224C14
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02224C14
-_02224BF2:
- mov r6, #0
- add r5, r4, #0
-_02224BF6:
- ldr r0, [r5, #0x48]
- bl FUN_0200C3DC
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #6
- blt _02224BF6
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_02224C14:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02224C1C
-MOD08_02224C1C: ; 0x02224C1C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x50
- str r1, [sp]
- mov r1, #0x90
- add r4, r0, #0
- str r2, [sp, #4]
- str r3, [sp, #8]
- bl MOD08_02228064
- ldr r1, [sp]
- str r4, [r0]
- str r1, [r0, #4]
- ldr r1, [sp, #4]
- str r0, [sp, #0x14]
- str r1, [r0, #8]
- ldr r0, [r0]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [sp, #0x14]
- ldr r0, [r0]
- bl MOD08_022154D4
- ldr r1, [sp, #0x14]
- str r0, [r1, #0x18]
- mov r1, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r7, r0, #0x10
- ldr r0, [sp, #0x14]
- mov r1, #1
- ldr r0, [r0, #0x18]
- bl FUN_0200782C
- ldr r1, [sp, #0x14]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add r1, #0x44
- str r0, [sp, #0xc]
- strh r0, [r1]
- ldr r0, [sp, #0x14]
- ldr r0, [r0]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [sp, #0x14]
- ldr r0, [r0]
- bl MOD08_0221552C
- ldr r1, [sp, #0x14]
- add r1, #0x46
- strh r0, [r1]
- ldr r1, [sp, #0x14]
- add r0, sp, #0x1c
- ldr r1, [r1]
- bl MOD08_02215474
- ldr r5, [sp, #0x14]
- mov r4, #0
-_02224C94:
- cmp r4, #0
- bne _02224C9C
- ldr r0, [sp, #8]
- b _02224CA6
-_02224C9C:
- ldr r0, [sp]
- ldr r1, [sp, #4]
- add r2, sp, #0x1c
- bl FUN_0200C154
-_02224CA6:
- str r0, [r5, #0x48]
- ldr r0, [r5, #0x48]
- mov r1, #0
- bl FUN_0200C644
- lsr r0, r4, #0x1f
- add r0, r4, r0
- asr r1, r0, #1
- ldr r0, _02224D6C ; =0x00001555
- mov r2, #3
- mul r0, r1
- asr r0, r0, #4
- lsl r0, r0, #2
- ldr r1, _02224D70 ; =0x020FFA38
- str r0, [sp, #0x18]
- add r1, r1, r0
- mov r0, #2
- ldrsh r0, [r1, r0]
- lsl r2, r2, #0x10
- mov r3, #0
- asr r1, r0, #0x1f
- bl _ll_mul
- mov r2, #2
- lsl r2, r2, #0xa
- add r2, r0, r2
- ldr r0, _02224D74 ; =0x00000000
- adc r1, r0
- lsl r0, r1, #0x14
- lsr r1, r2, #0xc
- orr r1, r0
- lsl r0, r1, #4
- asr r6, r0, #0x10
- mov r2, #3
- ldr r1, _02224D70 ; =0x020FFA38
- ldr r0, [sp, #0x18]
- lsl r2, r2, #0x10
- ldrsh r0, [r1, r0]
- mov r3, #0
- asr r1, r0, #0x1f
- bl _ll_mul
- mov r2, #2
- lsl r2, r2, #0xa
- add r0, r0, r2
- ldr r2, _02224D74 ; =0x00000000
- adc r1, r2
- lsl r1, r1, #0x14
- lsr r0, r0, #0xc
- orr r0, r1
- lsl r0, r0, #4
- asr r0, r0, #0x10
- str r0, [sp, #0x10]
- lsr r2, r4, #0x1f
- lsl r1, r4, #0x1f
- sub r1, r1, r2
- mov r0, #0x1f
- ror r1, r0
- add r0, r2, r1
- bne _02224D2E
- add r0, r7, r6
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- ldr r0, [r5, #0x48]
- mov r1, #1
- bl FUN_0200C8D0
- b _02224D34
-_02224D2E:
- sub r0, r7, r6
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
-_02224D34:
- ldr r1, [sp, #0xc]
- ldr r0, [sp, #0x10]
- sub r0, r1, r0
- lsl r0, r0, #0x10
- asr r2, r0, #0x10
- ldr r0, [r5, #0x48]
- add r1, r6, #0
- bl FUN_0200C714
- cmp r4, #2
- bge _02224D4E
- mov r0, #8
- b _02224D50
-_02224D4E:
- mov r0, #0
-_02224D50:
- add r4, r4, #1
- str r0, [r5, #0x78]
- add r5, r5, #4
- cmp r4, #6
- blt _02224C94
- ldr r0, [sp, #0x14]
- ldr r1, _02224D78 ; =MOD08_02224AF4
- ldr r0, [r0]
- ldr r2, [sp, #0x14]
- bl MOD08_02212400
- add sp, #0x50
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02224D6C: .word 0x00001555
-_02224D70: .word 0x020FFA38
-_02224D74: .word 0x00000000
-_02224D78: .word MOD08_02224AF4
-
- thumb_func_start MOD08_02224D7C
-MOD08_02224D7C: ; 0x02224D7C
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #5
- bhi _02224DBC
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02224D96: ; jump table
- .short _02224DA2 - _02224D96 - 2 ; case 0
- .short _02224DB2 - _02224D96 - 2 ; case 1
- .short _02224E12 - _02224D96 - 2 ; case 2
- .short _02224E6E - _02224D96 - 2 ; case 3
- .short _02224E9E - _02224D96 - 2 ; case 4
- .short _02224EC2 - _02224D96 - 2 ; case 5
-_02224DA2:
- ldr r0, [r4, #0x5c]
- mov r1, #1
- bl FUN_0200C5E0
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02224EDA
-_02224DB2:
- ldr r0, [r4, #0x5c]
- bl FUN_0200C608
- cmp r0, #0
- beq _02224DBE
-_02224DBC:
- b _02224EDA
-_02224DBE:
- ldr r0, [r4, #0x5c]
- mov r1, #0
- bl FUN_0200C5E0
- ldr r0, [r4, #0xc]
- mov r1, #0xa
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #8
- str r0, [sp]
- add r0, r4, #0
- add r0, #0x14
- add r2, r1, #0
- mov r3, #0
- bl MOD08_02218120
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200782C
- add r5, r0, #0
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- add r3, r0, #0
- mov r0, #0x8a
- ldrsh r0, [r4, r0]
- lsl r1, r5, #0x10
- lsl r3, r3, #0x10
- str r0, [sp]
- mov r0, #8
- str r0, [sp, #4]
- mov r2, #0x88
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- add r0, #0x38
- asr r1, r1, #0x10
- asr r3, r3, #0x10
- bl MOD08_02217E80
- b _02224EDA
-_02224E12:
- add r0, r4, #0
- ldr r1, [r4, #0x10]
- add r0, #0x38
- bl MOD08_02217F2C
- add r0, r4, #0
- ldr r1, [r4, #0x10]
- add r0, #0x14
- bl MOD08_02218380
- cmp r0, #0
- bne _02224EDA
- ldr r0, [r4, #0x10]
- mov r1, #6
- mov r2, #1
- bl FUN_02007558
- mov r1, #0xc
- add r2, r1, #0
- ldr r0, [r4, #0x10]
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #0x10]
- add r2, #0xf3
- bl FUN_02007558
- ldr r0, [r4, #0x5c]
- mov r1, #1
- bl FUN_0200C5C0
- mov r1, #1
- ldr r0, [r4, #0x5c]
- lsl r1, r1, #0xc
- bl FUN_0200C5F4
- ldr r0, [r4, #0x5c]
- mov r1, #1
- bl FUN_0200C5E0
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02224EDA
-_02224E6E:
- ldr r0, [r4, #0x5c]
- bl FUN_0200C608
- cmp r0, #0
- bne _02224EDA
- ldr r0, [r4, #0x5c]
- mov r1, #0
- bl FUN_0200C5E0
- ldr r0, [r4, #0xc]
- mov r1, #0
- add r0, r0, #1
- str r0, [r4, #0xc]
- str r1, [sp]
- mov r0, #8
- str r0, [sp, #4]
- mov r3, #0x8a
- add r0, r4, #0
- ldrsh r3, [r4, r3]
- add r0, #0x60
- add r2, r1, #0
- bl MOD08_02217E80
- b _02224EDA
-_02224E9E:
- add r0, r4, #0
- add r0, #0x60
- bl MOD08_02217ECC
- cmp r0, #0
- beq _02224EBA
- mov r1, #0x88
- mov r2, #0x62
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x5c]
- bl FUN_0200C714
- b _02224EDA
-_02224EBA:
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02224EDA
-_02224EC2:
- ldr r0, [r4, #0x5c]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #8
- pop {r3, r4, r5, pc}
-_02224EDA:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02224EE4
-MOD08_02224EE4: ; 0x02224EE4
- push {r3, r4, r5, r6, r7, lr}
- add r7, r1, #0
- mov r1, #0x8c
- add r5, r0, #0
- str r2, [sp]
- add r6, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- ldr r0, [sp]
- str r7, [r4, #4]
- str r0, [r4, #8]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #6
- mov r2, #0
- str r0, [r4, #0x10]
- bl FUN_02007558
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- mov r2, #0
- bl MOD08_02217B98
- add r1, r4, #0
- add r1, #0x88
- strh r0, [r1]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- mov r2, #1
- bl MOD08_02217B98
- add r1, r4, #0
- add r1, #0x8a
- strh r0, [r1]
- str r6, [r4, #0x5c]
- add r0, r6, #0
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x5c]
- mov r1, #1
- bl FUN_0200C6B0
- mov r1, #0x88
- mov r2, #0x8a
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x5c]
- bl FUN_0200C714
- ldr r0, [r4]
- ldr r1, _02224F70 ; =MOD08_02224D7C
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02224F70: .word MOD08_02224D7C
-
- thumb_func_start MOD08_02224F74
-MOD08_02224F74: ; 0x02224F74
- push {r3, r4, lr}
- sub sp, #4
- add r4, r0, #0
- add r0, r1, #0
- bl MOD08_02217C08
- mov r1, #1
- add r2, r1, #0
- lsl r2, r0
- mov r0, #0
- lsl r2, r2, #0x10
- add r4, #0xc4
- str r0, [sp]
- ldr r0, [r4]
- mov r1, #2
- lsr r2, r2, #0x10
- mov r3, #8
- bl FUN_02003A64
- add sp, #4
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02224FA0
-MOD08_02224FA0: ; 0x02224FA0
- push {r3, r4, lr}
- sub sp, #0x14
- add r4, r0, #0
- mov r1, #0xa
- mov r0, #0x14
- str r0, [sp]
- str r1, [sp, #4]
- mov r0, #8
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x28
- add r2, r1, #0
- add r3, r1, #0
- bl MOD08_022181A8
- mov r0, #4
- str r0, [sp]
- add r0, r4, #0
- mov r1, #0xa
- add r0, #0x4c
- add r2, r1, #0
- mov r3, #1
- bl MOD08_02218120
- add r0, r4, #0
- mov r1, #0
- add r0, #0x94
- str r1, [r0]
- add r0, r4, #0
- mov r1, #6
- add r0, #0x98
- str r1, [r0]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02227468
- add r1, r0, #0
- lsl r2, r1, #1
- ldr r1, _0222503C ; =0x0222C664
- ldr r0, [r4, #0x20]
- ldrh r1, [r1, r2]
- bl FUN_0200C644
- ldr r0, [r4, #0x18]
- mov r1, #1
- bl FUN_0200C644
- add r0, r4, #0
- add r0, #0x28
- add r1, sp, #0x10
- add r2, sp, #0xc
- bl MOD08_0221825C
- add r0, r4, #0
- add r0, #0xc8
- ldr r0, [r0]
- cmp r0, #1
- bne _02225024
- ldr r1, [sp, #0x10]
- mov r0, #0
- bl _fsub
- str r0, [sp, #0x10]
-_02225024:
- ldr r0, [r4, #0x18]
- ldr r1, [sp, #0x10]
- ldr r2, [sp, #0xc]
- bl FUN_0200C884
- ldr r1, [r4, #0x18]
- add r0, r4, #0
- bl MOD08_02224F74
- add sp, #0x14
- pop {r3, r4, pc}
- nop
-_0222503C: .word 0x0222C664
-
- thumb_func_start MOD08_02225040
-MOD08_02225040: ; 0x02225040
- push {r4, r5, lr}
- sub sp, #0x14
- add r5, r0, #0
- add r0, #0x94
- ldr r0, [r0]
- mov r4, #0
- cmp r0, #0
- beq _0222505C
- cmp r0, #1
- beq _022250E4
- cmp r0, #2
- bne _0222505A
- b _02225164
-_0222505A:
- b _02225166
-_0222505C:
- add r0, r5, #0
- add r0, #0x28
- bl MOD08_02218224
- add r0, r5, #0
- add r0, #0x28
- add r1, sp, #0x10
- add r2, sp, #0xc
- bl MOD08_0221825C
- add r0, r5, #0
- add r0, #0xc8
- ldr r0, [r0]
- cmp r0, #1
- bne _02225084
- ldr r1, [sp, #0x10]
- add r0, r4, #0
- bl _fsub
- str r0, [sp, #0x10]
-_02225084:
- ldr r0, [r5, #0x18]
- ldr r1, [sp, #0x10]
- ldr r2, [sp, #0xc]
- bl FUN_0200C884
- mov r0, #0
- str r0, [sp]
- ldr r1, [r5, #0x14]
- ldr r2, [r5, #0x10]
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r5, #0x18]
- ldr r3, [r5, #0x3c]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_02218314
- add r0, r5, #0
- add r0, #0x98
- ldr r0, [r0]
- sub r1, r0, #1
- add r0, r5, #0
- add r0, #0x98
- str r1, [r0]
- add r0, r5, #0
- add r0, #0x98
- ldr r0, [r0]
- cmp r0, #0
- bge _02225166
- add r0, r5, #0
- add r0, #0x94
- ldr r0, [r0]
- mov r3, #0x14
- add r1, r0, #1
- add r0, r5, #0
- add r0, #0x94
- str r1, [r0]
- str r3, [sp]
- mov r1, #0xa
- str r1, [sp, #4]
- mov r0, #4
- add r5, #0x28
- str r0, [sp, #8]
- add r0, r5, #0
- mov r2, #1
- bl MOD08_022181A8
- b _02225166
-_022250E4:
- add r0, r5, #0
- add r0, #0x28
- bl MOD08_02218224
- add r0, r5, #0
- add r0, #0x4c
- bl MOD08_02218170
- cmp r0, #0
- beq _02225142
- mov r0, #0x4c
- ldrsh r0, [r5, r0]
- add r1, sp, #0x10
- add r2, sp, #0xc
- strh r0, [r5, #0x28]
- add r0, r5, #0
- add r0, #0x28
- bl MOD08_0221825C
- add r0, r5, #0
- add r0, #0xc8
- ldr r0, [r0]
- cmp r0, #1
- bne _0222511E
- ldr r1, [sp, #0x10]
- add r0, r4, #0
- bl _fsub
- str r0, [sp, #0x10]
-_0222511E:
- ldr r0, [r5, #0x18]
- ldr r1, [sp, #0x10]
- ldr r2, [sp, #0xc]
- bl FUN_0200C884
- mov r0, #0
- str r0, [sp]
- ldr r1, [r5, #0x14]
- ldr r2, [r5, #0x10]
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r5, #0x18]
- ldr r3, [r5, #0x3c]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_02218314
- b _02225166
-_02225142:
- add r0, r5, #0
- add r0, #0x94
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r5, #0
- add r0, #0x94
- str r1, [r0]
- ldr r0, [r5, #0x20]
- add r1, r4, #0
- bl FUN_0200C644
- ldr r0, [r5, #0x18]
- add r1, r4, #0
- bl FUN_0200C644
- mov r4, #1
- b _02225166
-_02225164:
- mov r4, #1
-_02225166:
- add r0, r4, #0
- add sp, #0x14
- pop {r4, r5, pc}
-
- thumb_func_start MOD08_0222516C
-MOD08_0222516C: ; 0x0222516C
- push {r4, lr}
- sub sp, #0x18
- add r4, r0, #0
- add r1, sp, #0xc
- ldr r0, [r4, #0x1c]
- add r1, #2
- add r2, sp, #0xc
- bl FUN_0200C7A0
- add r1, sp, #0xc
- mov r0, #0
- ldrsh r3, [r1, r0]
- mov r0, #2
- ldrsh r1, [r1, r0]
- mov r0, #8
- str r3, [sp]
- sub r3, #0x40
- str r0, [sp, #4]
- add r0, r4, #0
- lsl r3, r3, #0x10
- add r0, #0x70
- add r2, r1, #0
- asr r3, r3, #0x10
- bl MOD08_02217E80
- mov r2, #0xa
- str r2, [sp]
- str r2, [sp, #4]
- mov r0, #8
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x28
- mov r1, #2
- mov r3, #0x14
- bl MOD08_022181A8
- add r0, r4, #0
- add r0, #0x28
- add r1, sp, #0x14
- add r2, sp, #0x10
- bl MOD08_0221825C
- add r0, r4, #0
- add r0, #0xcc
- ldr r0, [r0]
- cmp r0, #1
- bne _022251D4
- ldr r1, [sp, #0x14]
- mov r0, #0
- bl _fsub
- str r0, [sp, #0x14]
-_022251D4:
- ldr r0, [r4, #0x1c]
- ldr r1, [sp, #0x14]
- ldr r2, [sp, #0x10]
- bl FUN_0200C884
- add r0, r4, #0
- ldr r1, [r4, #0x1c]
- add r0, #0x70
- bl MOD08_02217F08
- add r0, r4, #0
- mov r1, #0
- add r0, #0x94
- str r1, [r0]
- add r0, r4, #0
- mov r1, #6
- add r0, #0x98
- str r1, [r0]
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02227468
- add r1, r0, #0
- lsl r2, r1, #1
- ldr r1, _02225228 ; =0x0222C664
- ldr r0, [r4, #0x24]
- ldrh r1, [r1, r2]
- bl FUN_0200C644
- ldr r0, [r4, #0x1c]
- mov r1, #1
- bl FUN_0200C644
- ldr r1, [r4, #0x1c]
- add r0, r4, #0
- bl MOD08_02224F74
- add sp, #0x18
- pop {r4, pc}
- .align 2, 0
-_02225228: .word 0x0222C664
-
- thumb_func_start MOD08_0222522C
-MOD08_0222522C: ; 0x0222522C
- push {r4, r5, r6, lr}
- sub sp, #8
- add r5, r0, #0
- add r0, #0x94
- ldr r0, [r0]
- mov r4, #0
- cmp r0, #0
- beq _02225246
- cmp r0, #1
- beq _02225276
- cmp r0, #2
- beq _022252C8
- b _022252CA
-_02225246:
- add r0, r5, #0
- add r0, #0x98
- ldr r0, [r0]
- sub r1, r0, #1
- add r0, r5, #0
- add r0, #0x98
- str r1, [r0]
- add r0, r5, #0
- ldr r1, [r5, #0x1c]
- add r0, #0x70
- bl MOD08_02217F08
- add r0, r5, #0
- add r0, #0x98
- ldr r0, [r0]
- cmp r0, #0
- bge _022252CA
- add r0, r5, #0
- add r0, #0x94
- ldr r0, [r0]
- add r5, #0x94
- add r0, r0, #1
- str r0, [r5]
- b _022252CA
-_02225276:
- add r0, r5, #0
- ldr r1, [r5, #0x1c]
- add r0, #0x70
- bl MOD08_02217F08
- add r0, r5, #0
- add r0, #0x28
- bl MOD08_02218224
- add r6, r0, #0
- add r0, r5, #0
- add r0, #0x28
- add r1, sp, #4
- add r2, sp, #0
- bl MOD08_0221825C
- add r0, r5, #0
- add r0, #0xcc
- ldr r0, [r0]
- cmp r0, #1
- bne _022252AA
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl _fsub
- str r0, [sp, #4]
-_022252AA:
- ldr r0, [r5, #0x1c]
- ldr r1, [sp, #4]
- ldr r2, [sp]
- bl FUN_0200C884
- cmp r6, #0
- bne _022252CA
- add r0, r5, #0
- add r0, #0x94
- ldr r0, [r0]
- add r5, #0x94
- add r0, r0, #1
- str r0, [r5]
- mov r4, #1
- b _022252CA
-_022252C8:
- mov r4, #1
-_022252CA:
- add r0, r4, #0
- add sp, #8
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_022252D0
-MOD08_022252D0: ; 0x022252D0
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- add r2, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #6
- bhi _022253AA
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022252EA: ; jump table
- .short _022252F8 - _022252EA - 2 ; case 0
- .short _0222531C - _022252EA - 2 ; case 1
- .short _02225336 - _022252EA - 2 ; case 2
- .short _0222534C - _022252EA - 2 ; case 3
- .short _02225362 - _022252EA - 2 ; case 4
- .short _02225388 - _022252EA - 2 ; case 5
- .short _0222539C - _022252EA - 2 ; case 6
-_022252F8:
- ldr r0, [r4]
- mov r1, #0
- mov r2, #0x10
- bl MOD08_02227994
- mov r2, #8
- str r2, [sp]
- add r0, r4, #0
- str r2, [sp, #4]
- add r0, #0x9c
- mov r1, #0
- mov r3, #0x10
- bl MOD08_022186D4
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022253AA
-_0222531C:
- add r0, r4, #0
- add r0, #0x9c
- bl MOD08_02218704
- cmp r0, #0
- beq _022253AA
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- add r0, r4, #0
- bl MOD08_02224FA0
- b _022253AA
-_02225336:
- add r0, r4, #0
- bl MOD08_02225040
- cmp r0, #0
- beq _022253AA
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- mov r0, #2
- str r0, [r4, #0xc]
- b _022253AA
-_0222534C:
- ldr r0, [r4, #0xc]
- sub r0, r0, #1
- str r0, [r4, #0xc]
- bpl _022253AA
- add r0, r4, #0
- bl MOD08_0222516C
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022253AA
-_02225362:
- add r0, r4, #0
- bl MOD08_0222522C
- cmp r0, #0
- beq _022253AA
- ldr r0, [r4, #8]
- mov r1, #8
- add r0, r0, #1
- str r0, [r4, #8]
- mov r0, #0x10
- str r0, [sp]
- add r0, r4, #0
- add r0, #0x9c
- mov r2, #0
- add r3, r1, #0
- str r1, [sp, #4]
- bl MOD08_022186D4
- b _022253AA
-_02225388:
- add r0, r4, #0
- add r0, #0x9c
- bl MOD08_02218704
- cmp r0, #0
- beq _022253AA
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022253AA
-_0222539C:
- ldr r0, [r4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_022253AA:
- ldr r0, [r4, #4]
- bl FUN_0200BC1C
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD08_022253B4
-MOD08_022253B4: ; 0x022253B4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- mov r1, #0xd0
- add r6, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r6, [r4]
- add r0, r6, #0
- bl MOD08_02212504
- str r0, [r4, #4]
- ldr r0, [r4]
- bl MOD08_02215504
- add r1, r4, #0
- add r1, #0xc4
- str r0, [r1]
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #0
- add r7, r0, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- add r0, r7, #0
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- add r0, r7, #0
- mov r1, #0x29
- bl FUN_0200782C
- sub r0, r5, r0
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- add r0, r6, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #0
- str r0, [sp, #4]
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r7, r0, #0x10
- ldr r0, [sp, #4]
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- ldr r0, [sp, #4]
- mov r1, #0x29
- bl FUN_0200782C
- sub r0, r6, r0
- lsl r0, r0, #0x10
- str r5, [r4, #0x14]
- asr r6, r0, #0x10
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_0221552C
- str r0, [r4, #0x10]
- ldr r0, [r4]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x18]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x18]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x18]
- ldr r1, [sp]
- add r2, r5, #0
- bl FUN_0200C714
- ldr r0, [r4, #0x18]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x18]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #0x18]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_022124D8
- str r0, [r4, #0x1c]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x1c]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x1c]
- add r1, r7, #0
- add r2, r6, #0
- bl FUN_0200C714
- ldr r0, [r4, #0x1c]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x1c]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #0x1c]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r4, #0x1c]
- mov r1, #0
- mov r2, #0x28
- bl FUN_0200C8DC
- ldr r0, [r4]
- mov r1, #0
- bl MOD08_02215680
- add r1, r4, #0
- add r1, #0xc8
- str r0, [r1]
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215680
- add r1, r4, #0
- add r1, #0xcc
- str r0, [r1]
- ldr r0, [r4]
- mov r1, #2
- bl MOD08_022124D8
- str r0, [r4, #0x20]
- ldr r0, [r4]
- mov r1, #3
- bl MOD08_022124D8
- str r0, [r4, #0x24]
- ldr r0, [r4, #0x20]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x24]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4]
- ldr r1, _02225520 ; =MOD08_022252D0
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02225520: .word MOD08_022252D0
-
- thumb_func_start MOD08_02225524
-MOD08_02225524: ; 0x02225524
- push {r4, lr}
- sub sp, #0x20
- mov r2, #0xa
- add r4, r0, #0
- add r0, #0xf8
- mov r1, #0x19
- add r3, r2, #0
- str r2, [sp]
- bl MOD08_02218120
- mov r0, #0x3a
- ldrsh r0, [r4, r0]
- add r1, r4, #0
- mov r3, #0x38
- str r0, [sp]
- mov r0, #9
- str r0, [sp, #4]
- mov r0, #3
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- ldr r0, [r4, #0x44]
- ldr r2, _02225570 ; =MOD08_02218170
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x40]
- add r1, #0xf8
- str r0, [sp, #0x14]
- ldr r0, [r4, #0x3c]
- str r0, [sp, #0x18]
- mov r0, #0
- str r0, [sp, #0x1c]
- add r0, r4, #0
- ldrsh r3, [r4, r3]
- add r0, #0x48
- bl MOD08_0221847C
- add sp, #0x20
- pop {r4, pc}
- .align 2, 0
-_02225570: .word MOD08_02218170
-
- thumb_func_start MOD08_02225574
-MOD08_02225574: ; 0x02225574
- push {r4, lr}
- sub sp, #0x20
- add r4, r0, #0
- mov r0, #6
- str r0, [sp]
- add r0, r4, #0
- mov r1, #0xa
- add r0, #0xf8
- add r2, r1, #0
- mov r3, #0x19
- bl MOD08_02218120
- mov r0, #0x3a
- ldrsh r0, [r4, r0]
- add r1, r4, #0
- mov r3, #0x38
- str r0, [sp]
- mov r0, #5
- str r0, [sp, #4]
- mov r0, #3
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- ldr r0, [r4, #0x3c]
- ldr r2, _022255CC ; =MOD08_02218170
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x40]
- add r1, #0xf8
- str r0, [sp, #0x14]
- ldr r0, [r4, #0x44]
- str r0, [sp, #0x18]
- mov r0, #0
- str r0, [sp, #0x1c]
- add r0, r4, #0
- ldrsh r3, [r4, r3]
- add r0, #0x48
- bl MOD08_0221847C
- ldr r0, [r4, #0x3c]
- mov r1, #1
- bl FUN_0200C644
- add sp, #0x20
- pop {r4, pc}
- .align 2, 0
-_022255CC: .word MOD08_02218170
-
- thumb_func_start MOD08_022255D0
-MOD08_022255D0: ; 0x022255D0
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r7, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #4
- bhi _02225688
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022255E8: ; jump table
- .short _022255F2 - _022255E8 - 2 ; case 0
- .short _02225600 - _022255E8 - 2 ; case 1
- .short _0222562E - _022255E8 - 2 ; case 2
- .short _02225652 - _022255E8 - 2 ; case 3
- .short _02225666 - _022255E8 - 2 ; case 4
-_022255F2:
- add r0, r4, #0
- bl MOD08_02225524
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02225688
-_02225600:
- add r0, r4, #0
- add r0, #0x48
- bl MOD08_02218524
- cmp r0, #0
- bne _02225688
- ldr r0, [r4, #0x3c]
- mov r1, #1
- bl FUN_0200C644
- ldr r0, [r4, #0xc]
- mov r1, #4
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #6
- str r0, [sp]
- add r0, r4, #0
- add r0, #0x14
- mov r2, #0
- mov r3, #1
- bl MOD08_022183C0
- b _02225688
-_0222562E:
- mov r1, #0x38
- mov r2, #0x3a
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r3, [r4, #0x10]
- add r0, #0x14
- bl MOD08_02218454
- cmp r0, #0
- bne _02225688
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- add r0, r4, #0
- bl MOD08_02225574
- b _02225688
-_02225652:
- add r0, r4, #0
- add r0, #0x48
- bl MOD08_02218524
- cmp r0, #0
- bne _02225688
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02225688
-_02225666:
- mov r6, #0
- add r5, r4, #0
-_0222566A:
- ldr r0, [r5, #0x3c]
- bl FUN_0200C3DC
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #3
- blt _0222566A
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_02212438
- pop {r3, r4, r5, r6, r7, pc}
-_02225688:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02225690
-MOD08_02225690: ; 0x02225690
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- add r6, r1, #0
- mov r1, #0x47
- lsl r1, r1, #2
- add r5, r0, #0
- str r2, [sp]
- add r7, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- ldr r0, [sp]
- str r6, [r4, #4]
- str r0, [r4, #8]
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x38]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x3a]
- ldr r0, [r4, #0x10]
- mov r1, #0x29
- bl FUN_0200782C
- mov r1, #0x3a
- ldrsh r1, [r4, r1]
- sub r0, r1, r0
- strh r0, [r4, #0x3a]
- add r0, sp, #4
- add r1, r5, #0
- bl MOD08_02215474
- mov r6, #0
- add r5, r4, #0
-_022256EC:
- cmp r6, #0
- bne _022256FC
- add r0, r7, #0
- mov r1, #1
- str r7, [r5, #0x3c]
- bl FUN_0200C5C0
- b _0222570E
-_022256FC:
- ldr r0, [r4, #4]
- ldr r1, [r4, #8]
- add r2, sp, #4
- bl FUN_0200C154
- mov r1, #1
- str r0, [r5, #0x3c]
- bl FUN_0200C90C
-_0222570E:
- ldr r0, [r5, #0x3c]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r5, #0x3c]
- mov r1, #1
- bl FUN_0200C6B0
- mov r1, #0x38
- mov r2, #0x3a
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r5, #0x3c]
- bl FUN_0200C714
- ldr r0, [r5, #0x3c]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r5, #0x3c]
- mov r1, #2
- bl FUN_0200C840
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #3
- blt _022256EC
- ldr r0, [r4]
- ldr r1, _02225754 ; =MOD08_022255D0
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02225754: .word MOD08_022255D0
-
- thumb_func_start MOD08_02225758
-MOD08_02225758: ; 0x02225758
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r0, #0
- mov r7, #0
- add r6, r5, #0
- str r1, [sp, #0x10]
- add r6, #0x30
- add r4, r7, #0
-_02225768:
- mov r0, #0
- str r0, [sp]
- mov r0, #0x32
- lsl r0, r0, #0xc
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #0x30
- mov r1, #0
- str r0, [sp, #0xc]
- ldr r2, _022257A8 ; =0x00007FFF
- add r0, r6, #0
- add r3, r1, #0
- bl MOD08_02217D14
- ldr r0, [r5, #0x38]
- add r7, r7, #1
- add r0, r0, r4
- str r0, [r5, #0x38]
- ldr r1, [r5, #0x48]
- ldr r0, [sp, #0x10]
- add r6, #0x24
- mul r0, r1
- str r0, [r5, #0x48]
- ldr r0, _022257AC ; =0x00002AAA
- add r5, #0x24
- add r4, r4, r0
- cmp r7, #6
- blt _02225768
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_022257A8: .word 0x00007FFF
-_022257AC: .word 0x00002AAA
-
- thumb_func_start MOD08_022257B0
-MOD08_022257B0: ; 0x022257B0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r6, r0, #0
- mov r0, #0
- str r0, [sp, #4]
- add r0, r6, #0
- str r0, [sp]
- add r0, #0x30
- str r0, [sp]
- add r5, r6, #0
- add r4, r6, #0
-_022257C6:
- ldr r0, [sp]
- bl MOD08_02217D98
- ldr r1, [r5, #0x38]
- mov r2, #0xa
- lsl r0, r1, #2
- add r0, r1, r0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- asr r0, r0, #4
- lsl r1, r0, #2
- ldr r0, _0222586C ; =0x020FFA38
- ldr r3, [r6, #0x14]
- ldrsh r0, [r0, r1]
- lsl r2, r2, #0xc
- mul r2, r3
- asr r1, r0, #0x1f
- asr r3, r2, #0x1f
- bl _ll_mul
- add r3, r1, #0
- mov r1, #0x13
- lsl r1, r1, #4
- mov r2, #0x30
- add r7, r0, #0
- ldrsh r1, [r6, r1]
- ldrsh r2, [r5, r2]
- ldr r0, [r4, #0x18]
- add r1, r1, r2
- ldr r2, _02225870 ; =0x00000132
- lsl r1, r1, #0x10
- ldrsh r2, [r6, r2]
- asr r1, r1, #0x10
- mov ip, r2
- mov r2, #2
- lsl r2, r2, #0xa
- add r7, r7, r2
- ldr r2, _02225874 ; =0x00000000
- adc r3, r2
- lsl r2, r3, #0x14
- lsr r3, r7, #0xc
- orr r3, r2
- lsl r2, r3, #4
- asr r2, r2, #0x10
- mov r3, ip
- add r2, r3, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C714
- ldr r1, [r5, #0x38]
- ldr r0, _02225878 ; =0x00003FFF
- cmp r1, r0
- blt _02225842
- ldr r0, _0222587C ; =0x0000BF49
- cmp r1, r0
- bgt _02225842
- ldr r0, [r4, #0x18]
- mov r1, #1
- bl FUN_0200C6B0
- b _02225852
-_02225842:
- ldr r0, [r6]
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r4, #0x18]
- add r1, r1, #1
- bl FUN_0200C6B0
-_02225852:
- ldr r0, [sp]
- add r5, #0x24
- add r0, #0x24
- str r0, [sp]
- ldr r0, [sp, #4]
- add r4, r4, #4
- add r0, r0, #1
- str r0, [sp, #4]
- cmp r0, #6
- blt _022257C6
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0222586C: .word 0x020FFA38
-_02225870: .word 0x00000132
-_02225874: .word 0x00000000
-_02225878: .word 0x00003FFF
-_0222587C: .word 0x0000BF49
-
- thumb_func_start MOD08_02225880
-MOD08_02225880: ; 0x02225880
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r4, r1, #0
- add r7, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #4
- bhi _02225966
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222589A: ; jump table
- .short _022258A4 - _0222589A - 2 ; case 0
- .short _022258DA - _0222589A - 2 ; case 1
- .short _022258FA - _0222589A - 2 ; case 2
- .short _02225926 - _0222589A - 2 ; case 3
- .short _02225942 - _0222589A - 2 ; case 4
-_022258A4:
- ldr r0, [r4]
- mov r1, #1
- mov r2, #0xf
- bl MOD08_02227994
- mov r0, #0
- str r0, [sp]
- mov r0, #0xa
- str r0, [sp, #4]
- add r0, #0xfe
- add r0, r4, r0
- mov r1, #1
- mov r2, #0x10
- mov r3, #0xf
- bl MOD08_022186D4
- ldr r1, [r4, #0x14]
- add r0, r4, #0
- bl MOD08_02225758
- add r0, r4, #0
- bl MOD08_022257B0
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02225966
-_022258DA:
- add r0, r4, #0
- bl MOD08_022257B0
- mov r0, #0x42
- lsl r0, r0, #2
- add r0, r4, r0
- bl MOD08_02218704
- cmp r0, #0
- beq _02225966
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #0x1c
- str r0, [r4, #0x10]
- b _02225966
-_022258FA:
- add r0, r4, #0
- bl MOD08_022257B0
- ldr r0, [r4, #0x10]
- sub r0, r0, #1
- str r0, [r4, #0x10]
- bpl _02225966
- ldr r0, [r4, #0xc]
- mov r1, #0x10
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #0xf
- str r0, [sp]
- mov r0, #0xa
- str r0, [sp, #4]
- add r0, #0xfe
- add r0, r4, r0
- mov r2, #1
- mov r3, #0
- bl MOD08_022186D4
- b _02225966
-_02225926:
- add r0, r4, #0
- bl MOD08_022257B0
- mov r0, #0x42
- lsl r0, r0, #2
- add r0, r4, r0
- bl MOD08_02218704
- cmp r0, #0
- beq _02225966
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02225966
-_02225942:
- mov r6, #0
- add r5, r4, #0
-_02225946:
- ldr r0, [r5, #0x18]
- bl FUN_0200C3DC
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #6
- blt _02225946
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_02212438
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_02225966:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02225970
-MOD08_02225970: ; 0x02225970
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- add r5, r1, #0
- mov r1, #0x4d
- lsl r1, r1, #2
- add r4, r0, #0
- str r2, [sp]
- add r7, r3, #0
- bl MOD08_02228064
- add r6, r0, #0
- str r4, [r6]
- ldr r0, [sp]
- str r5, [r6, #4]
- str r0, [r6, #8]
- add r0, r4, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_022154D4
- mov r1, #0
- add r5, r0, #0
- bl FUN_0200782C
- mov r1, #0x13
- lsl r1, r1, #4
- strh r0, [r6, r1]
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200782C
- ldr r1, _02225A14 ; =0x00000132
- strh r0, [r6, r1]
- add r0, sp, #4
- add r1, r4, #0
- bl MOD08_02215474
- mov r4, #0
- add r5, r6, #0
-_022259C2:
- cmp r4, #0
- bne _022259CA
- str r7, [r5, #0x18]
- b _022259D6
-_022259CA:
- ldr r0, [r6, #4]
- ldr r1, [r6, #8]
- add r2, sp, #4
- bl FUN_0200C154
- str r0, [r5, #0x18]
-_022259D6:
- ldr r0, [r5, #0x18]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r5, #0x18]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r5, #0x18]
- mov r1, #1
- bl FUN_0200C5E0
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #6
- blt _022259C2
- ldr r0, [r6]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_02217C1C
- str r0, [r6, #0x14]
- ldr r0, [r6]
- ldr r1, _02225A18 ; =MOD08_02225880
- add r2, r6, #0
- bl MOD08_02212400
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02225A14: .word 0x00000132
-_02225A18: .word MOD08_02225880
-
- thumb_func_start MOD08_02225A1C
-MOD08_02225A1C: ; 0x02225A1C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r7, r1, #0
- add r1, sp, #8
- add r5, r2, #0
- add r1, #2
- add r2, sp, #8
- add r6, r0, #0
- add r4, r3, #0
- bl FUN_0200C7A0
- add r0, sp, #8
- mov r1, #0
- ldrsh r3, [r0, r1]
- mov r1, #2
- ldrsh r2, [r0, r1]
- lsl r0, r4, #7
- neg r0, r0
- add r0, r3, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- lsl r1, r2, #0x10
- lsl r4, r5, #8
- add r2, r2, r4
- str r0, [sp]
- mov r0, #0x3b
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- str r0, [sp, #4]
- add r0, r7, #0
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_02217E80
- add r0, r6, #0
- mov r1, #1
- bl FUN_0200C644
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02225A70
-MOD08_02225A70: ; 0x02225A70
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r4, r0, #0
- add r0, r1, #0
- add r1, r4, #0
- bl MOD08_02217F08
- cmp r0, #0
- beq _02225B2A
- add r1, sp, #8
- add r0, r4, #0
- add r1, #2
- add r2, sp, #8
- bl FUN_0200C7A0
- add r1, sp, #8
- mov r0, #2
- ldrsh r0, [r1, r0]
- mov r1, #0x5b
- lsl r1, r1, #2
- str r0, [sp]
- ldr r0, [sp]
- mov r2, #0xe
- mul r1, r0
- lsl r0, r1, #0x10
- lsr r0, r0, #0x10
- asr r0, r0, #4
- lsl r1, r0, #2
- ldr r0, _02225B30 ; =0x020FFA38
- lsl r2, r2, #0xc
- ldrsh r0, [r0, r1]
- mov r3, #0
- asr r7, r0, #0x1f
- add r1, r7, #0
- str r0, [sp, #4]
- bl _ll_mul
- add r3, r0, #0
- add r5, r1, #0
- add r6, sp, #8
- mov r2, #0
- ldrsh r2, [r6, r2]
- mov r6, #2
- lsl r6, r6, #0xa
- add r0, r4, #0
- add r6, r3, r6
- ldr r3, _02225B34 ; =0x00000000
- ldr r1, [sp]
- adc r5, r3
- lsl r3, r5, #0x14
- lsr r5, r6, #0xc
- orr r5, r3
- lsl r3, r5, #4
- asr r3, r3, #0x10
- add r2, r2, r3
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C714
- mov r2, #0xae
- ldr r0, [sp, #4]
- add r1, r7, #0
- lsl r2, r2, #2
- mov r3, #0
- bl _ll_mul
- mov r2, #2
- mov r3, #0
- 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
- bl _fflt
- ldr r1, _02225B38 ; =0x45800000
- bl _fdiv
- add r1, r0, #0
- mov r0, #0xfe
- lsl r0, r0, #0x16
- bl _fadd
- add r1, r0, #0
- add r0, r4, #0
- add r2, r1, #0
- bl FUN_0200C884
- add sp, #0xc
- mov r0, #0
- pop {r4, r5, r6, r7, pc}
-_02225B2A:
- mov r0, #1
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02225B30: .word 0x020FFA38
-_02225B34: .word 0x00000000
-_02225B38: .word 0x45800000
-
- thumb_func_start MOD08_02225B3C
-MOD08_02225B3C: ; 0x02225B3C
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x9d
- add r7, r0, #0
- lsl r1, r1, #2
- ldr r0, [r7, r1]
- cmp r0, #0xf
- bge _02225B84
- sub r0, r1, #4
- ldr r0, [r7, r0]
- add r2, r0, #1
- sub r0, r1, #4
- str r2, [r7, r0]
- ldr r0, [r7, r0]
- cmp r0, #6
- ble _02225B84
- mov r2, #0
- sub r0, r1, #4
- str r2, [r7, r0]
- ldr r1, [r7, r1]
- add r3, r7, #0
- lsl r0, r1, #2
- mov r2, #0x24
- add r0, r7, r0
- add r3, #0x54
- mul r2, r1
- add r1, r3, r2
- ldr r0, [r0, #0x18]
- ldr r2, [r7, #0x10]
- ldr r3, [r7, #0x14]
- bl MOD08_02225A1C
- mov r0, #0x9d
- lsl r0, r0, #2
- ldr r1, [r7, r0]
- add r1, r1, #1
- str r1, [r7, r0]
-_02225B84:
- mov r0, #0x9d
- lsl r0, r0, #2
- ldr r0, [r7, r0]
- mov r4, #0
- cmp r0, #0
- ble _02225BB0
- add r6, r7, #0
- add r6, #0x54
- add r5, r7, #0
-_02225B96:
- ldr r0, [r5, #0x18]
- add r1, r6, #0
- bl MOD08_02225A70
- str r0, [sp]
- mov r0, #0x9d
- lsl r0, r0, #2
- ldr r0, [r7, r0]
- add r4, r4, #1
- add r6, #0x24
- add r5, r5, #4
- cmp r4, r0
- blt _02225B96
-_02225BB0:
- cmp r0, #0xf
- blt _02225BBE
- ldr r0, [sp]
- cmp r0, #1
- bne _02225BBE
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02225BBE:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02225BC4
-MOD08_02225BC4: ; 0x02225BC4
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r7, r0, #0
- add r0, r6, #0
- bl MOD08_02225B3C
- cmp r0, #0
- beq _02225BF6
- mov r4, #0
- add r5, r6, #0
-_02225BD8:
- ldr r0, [r5, #0x18]
- bl FUN_0200C3DC
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #0xf
- blt _02225BD8
- add r0, r6, #0
- bl FreeToHeap
- ldr r0, [r6]
- add r1, r7, #0
- bl MOD08_02212438
- pop {r3, r4, r5, r6, r7, pc}
-_02225BF6:
- ldr r0, [r6, #8]
- bl FUN_0200BC1C
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02225C00
-MOD08_02225C00: ; 0x02225C00
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x40
- add r5, r1, #0
- mov r1, #0x9e
- lsl r1, r1, #2
- add r4, r0, #0
- str r2, [sp]
- add r7, r3, #0
- bl MOD08_02228064
- add r6, r0, #0
- str r4, [r6]
- ldr r0, [sp]
- str r5, [r6, #4]
- str r0, [r6, #8]
- add r0, r4, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_022154D4
- mov r1, #0
- add r5, r0, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #8]
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #4]
- add r0, sp, #0xc
- add r1, r4, #0
- bl MOD08_02215474
- mov r4, #0
- add r5, r6, #0
-_02225C54:
- cmp r4, #0
- bne _02225C5C
- str r7, [r5, #0x18]
- b _02225C68
-_02225C5C:
- ldr r0, [r6, #4]
- ldr r1, [r6, #8]
- add r2, sp, #0xc
- bl FUN_0200C154
- str r0, [r5, #0x18]
-_02225C68:
- ldr r0, [r5, #0x18]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r5, #0x18]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [r5, #0x18]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r5, #0x18]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r5, #0x18]
- ldr r1, [sp, #8]
- ldr r2, [sp, #4]
- bl FUN_0200C714
- add r0, r4, #0
- mov r1, #3
- bl _s32_div_f
- ldr r0, [r5, #0x18]
- bl FUN_0200C5C0
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #0xf
- blt _02225C54
- ldr r0, [r6]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_02217C1C
- str r0, [r6, #0x10]
- ldr r0, [r6]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_02217C44
- str r0, [r6, #0x14]
- ldr r0, [r6]
- ldr r1, _02225CD8 ; =MOD08_02225BC4
- add r2, r6, #0
- bl MOD08_02212400
- add sp, #0x40
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02225CD8: .word MOD08_02225BC4
-
- thumb_func_start MOD08_02225CDC
-MOD08_02225CDC: ; 0x02225CDC
- ldr r1, [r0, #0x2c]
- cmp r1, #0
- beq _02225CEC
- cmp r1, #1
- beq _02225D00
- cmp r1, #2
- beq _02225D14
- bx lr
-_02225CEC:
- ldr r1, _02225D28 ; =0x00007FFF
- str r1, [r0, #0x18]
- mov r1, #5
- str r1, [r0, #0x24]
- mov r1, #1
- lsl r1, r1, #0x10
- str r1, [r0, #0x1c]
- mov r1, #0x10
- str r1, [r0, #0x28]
- bx lr
-_02225D00:
- ldr r1, _02225D28 ; =0x00007FFF
- str r1, [r0, #0x18]
- mov r1, #4
- mvn r1, r1
- str r1, [r0, #0x24]
- ldr r1, _02225D2C ; =0xFFFF0000
- str r1, [r0, #0x1c]
- mov r1, #0x10
- str r1, [r0, #0x28]
- bx lr
-_02225D14:
- ldr r1, _02225D28 ; =0x00007FFF
- str r1, [r0, #0x18]
- mov r1, #0xa
- str r1, [r0, #0x24]
- lsl r1, r1, #0xd
- str r1, [r0, #0x1c]
- mov r1, #0x10
- str r1, [r0, #0x28]
- bx lr
- nop
-_02225D28: .word 0x00007FFF
-_02225D2C: .word 0xFFFF0000
-
- thumb_func_start MOD08_02225D30
-MOD08_02225D30: ; 0x02225D30
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r0, #0
- ldr r0, [r5, #4]
- bl MOD08_02218894
- str r0, [sp, #8]
- ldr r0, [r5, #0x10]
- str r0, [sp]
- str r0, [sp, #4]
- sub r0, #8
- str r0, [sp, #4]
- ldr r0, [sp]
- add r0, #0x58
- str r0, [sp]
- ldr r0, [sp, #4]
- cmp r0, #0
- bge _02225D58
- mov r0, #0
- str r0, [sp, #4]
-_02225D58:
- ldr r0, [sp]
- cmp r0, #0xc0
- ble _02225D62
- mov r0, #0xc0
- str r0, [sp]
-_02225D62:
- mov r0, #0
- ldr r1, [r5, #0x20]
- mvn r0, r0
- mul r0, r1
- ldr r4, [sp, #4]
- str r0, [r5, #0x20]
- ldr r0, [sp]
- add r1, r4, #0
- cmp r1, r0
- bge _02225E02
-_02225D76:
- mov r0, #2
- tst r0, r4
- ldr r1, [r5, #0x1c]
- beq _02225D86
- ldr r0, [r5, #0x20]
- lsl r0, r0, #0xc
- add r2, r1, r0
- b _02225D8C
-_02225D86:
- ldr r0, [r5, #0x20]
- lsl r0, r0, #0xc
- sub r2, r1, r0
-_02225D8C:
- ldr r1, [sp, #4]
- ldr r0, [r5, #0x18]
- sub r3, r4, r1
- ldr r1, _02225E08 ; =0x00000199
- mul r1, r3
- add r0, r0, r1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- asr r0, r0, #4
- lsl r1, r0, #2
- ldr r0, _02225E0C ; =0x020FFA38
- asr r3, r2, #0x1f
- ldrsh r0, [r0, r1]
- asr r1, r0, #0x1f
- bl _ll_mul
- mov r2, #2
- lsl r2, r2, #0xa
- add r2, r0, r2
- ldr r0, _02225E10 ; =0x00000000
- adc r1, r0
- lsl r0, r1, #0x14
- lsr r1, r2, #0xc
- orr r1, r0
- lsl r0, r1, #4
- asr r7, r0, #0x10
- ldr r0, [r5, #0x14]
- ldr r1, [r5, #0x24]
- sub r0, r4, r0
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- add r0, r7, r0
- lsl r0, r0, #0x10
- ldr r1, [r5, #0x30]
- asr r7, r0, #0x10
- lsl r0, r1, #0x10
- lsr r1, r1, #0x10
- lsl r1, r1, #0x10
- asr r0, r0, #0x10
- asr r1, r1, #0x10
- sub r6, r4, #1
- bpl _02225DE6
- add r6, #0xc0
-_02225DE6:
- add r0, r0, r7
- lsl r0, r0, #0x10
- lsl r1, r1, #0x10
- lsr r0, r0, #0x10
- lsr r1, r1, #0x10
- bl MOD08_02218998
- ldr r1, [sp, #8]
- lsl r2, r6, #2
- str r0, [r1, r2]
- ldr r0, [sp]
- add r4, r4, #1
- cmp r4, r0
- blt _02225D76
-_02225E02:
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02225E08: .word 0x00000199
-_02225E0C: .word 0x020FFA38
-_02225E10: .word 0x00000000
-
- thumb_func_start MOD08_02225E14
-MOD08_02225E14: ; 0x02225E14
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _02225E2A
- cmp r0, #1
- beq _02225E3E
- cmp r0, #2
- beq _02225E68
- pop {r4, r5, r6, pc}
-_02225E2A:
- add r0, r4, #0
- bl MOD08_02225CDC
- add r0, r4, #0
- bl MOD08_02225D30
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- pop {r4, r5, r6, pc}
-_02225E3E:
- ldr r0, [r4, #0x28]
- sub r0, r0, #1
- str r0, [r4, #0x28]
- add r0, r4, #0
- bl MOD08_02225D30
- ldr r0, [r4, #0x28]
- cmp r0, #0
- bge _02225EFA
- ldr r0, [r4, #0x2c]
- add r0, r0, #1
- str r0, [r4, #0x2c]
- cmp r0, #3
- bge _02225E60
- mov r0, #0
- str r0, [r4, #8]
- pop {r4, r5, r6, pc}
-_02225E60:
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- pop {r4, r5, r6, pc}
-_02225E68:
- ldr r0, [r4, #0xc]
- mov r1, #6
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #4]
- bl MOD08_022188A8
- ldr r0, [r4, #4]
- bl MOD08_02218870
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r5, r0, #0
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215600
- add r1, r0, #0
- lsl r0, r5, #0x18
- lsl r1, r1, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldr r0, [r4]
- bl MOD08_02215574
- add r1, r0, #0
- lsl r1, r1, #0x18
- mov r0, #0
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02212014
- add r3, r0, #0
- lsl r0, r5, #0x18
- mov r1, #1
- lsr r0, r0, #0x18
- lsl r1, r1, #0xe
- mov r2, #0
- bl FUN_02017F18
- ldr r0, [r4]
- bl MOD08_02212490
- add r5, r0, #0
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r1, r0, #0
- lsl r1, r1, #0x18
- add r0, r5, #0
- lsr r1, r1, #0x18
- bl FUN_02018744
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r6, #0
- bl MOD08_02212438
-_02225EFA:
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_02225EFC
-MOD08_02225EFC: ; 0x02225EFC
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x34
- add r7, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r7, [r4]
- add r0, r7, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #0
- str r0, [r4, #0xc]
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- ldr r0, [r4, #0xc]
- mov r1, #0x29
- bl FUN_0200782C
- sub r0, r5, r0
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- ldr r0, [r4, #0xc]
- mov r1, #6
- mov r2, #1
- bl FUN_02007558
- sub r6, #0x28
- lsl r0, r6, #0x10
- str r5, [r4, #0x14]
- sub r5, #0x28
- asr r0, r0, #0x10
- neg r0, r0
- neg r1, r5
- lsl r0, r0, #0x10
- lsl r1, r1, #0x10
- str r5, [r4, #0x10]
- lsr r0, r0, #0x10
- lsr r1, r1, #0x10
- bl MOD08_02218998
- str r0, [r4, #0x30]
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_022155C4
- bl MOD08_022189A0
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02212014
- add r2, r0, #0
- ldr r1, [r4, #0x30]
- add r0, r5, #0
- bl MOD08_022187F4
- str r0, [r4, #4]
- mov r0, #1
- str r0, [r4, #0x20]
- add r0, r7, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02227468
- sub r0, r0, #3
- cmp r0, #1
- bhi _02225FD0
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02215574
- add r1, r0, #0
- lsl r0, r5, #0x18
- lsl r1, r1, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldr r0, [r4]
- bl MOD08_02215574
- add r1, r0, #0
- add r1, r1, #1
- lsl r1, r1, #0x18
- mov r0, #0
- lsr r1, r1, #0x18
- bl FUN_020178BC
-_02225FD0:
- ldr r0, [r4]
- ldr r1, _02225FDC ; =MOD08_02225E14
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02225FDC: .word MOD08_02225E14
-
- thumb_func_start MOD08_02225FE0
-MOD08_02225FE0: ; 0x02225FE0
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #5
- bls _02225FF0
- b _02226134
-_02225FF0:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02225FFC: ; jump table
- .short _02226008 - _02225FFC - 2 ; case 0
- .short _0222604E - _02225FFC - 2 ; case 1
- .short _02226088 - _02225FFC - 2 ; case 2
- .short _022260C2 - _02225FFC - 2 ; case 3
- .short _0222610E - _02225FFC - 2 ; case 4
- .short _02226126 - _02225FFC - 2 ; case 5
-_02226008:
- mov r2, #0
- str r2, [sp]
- mov r0, #8
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0xc
- mov r1, #0x7f
- add r3, r2, #0
- bl MOD08_02217E80
- mov r2, #1
- lsl r2, r2, #0x1a
- ldr r1, [r2]
- ldr r0, _02226138 ; =0xFFFF1FFF
- and r1, r0
- lsr r0, r2, #0xd
- orr r0, r1
- str r0, [r2]
- mov r1, #0
- ldr r0, [r4]
- add r2, r1, #0
- bl MOD08_02227A4C
- ldr r1, _0222613C ; =0x04000040
- mov r0, #0xff
- strh r0, [r1]
- mov r0, #0xbf
- strh r0, [r1, #4]
- mov r0, #7
- str r0, [r4, #8]
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_0222604E:
- ldr r0, [r4, #8]
- sub r0, r0, #1
- str r0, [r4, #8]
- bpl _02226134
- ldr r0, [r4]
- bl MOD08_02215504
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02214540
- add r2, r0, #0
- mov r3, #0
- lsl r2, r2, #0x10
- str r3, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- ldr r0, _02226140 ; =0x0000FFFF
- mov r1, #1
- str r0, [sp, #8]
- add r0, r5, #0
- lsr r2, r2, #0x10
- bl FUN_02003210
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_02226088:
- add r0, r4, #0
- add r0, #0xc
- bl MOD08_02217ECC
- cmp r0, #0
- beq _022260B8
- mov r0, #0xc
- ldrsh r2, [r4, r0]
- mov r0, #0x7f
- add sp, #0xc
- sub r0, r0, r2
- lsl r1, r0, #8
- mov r0, #0xff
- lsl r0, r0, #8
- add r2, #0x80
- and r1, r0
- lsl r0, r2, #0x18
- lsr r0, r0, #0x18
- orr r0, r1
- ldr r1, _0222613C ; =0x04000040
- strh r0, [r1]
- mov r0, #0xbf
- strh r0, [r1, #4]
- pop {r4, r5, pc}
-_022260B8:
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_022260C2:
- ldr r0, [r4]
- bl MOD08_02215504
- bl FUN_020038E4
- cmp r0, #0
- bne _02226134
- ldr r0, [r4, #4]
- mov r2, #1
- add r0, r0, #1
- str r0, [r4, #4]
- lsl r2, r2, #0x1a
- ldr r1, [r2]
- ldr r0, _02226138 ; =0xFFFF1FFF
- and r0, r1
- str r0, [r2]
- ldr r0, [r4]
- bl MOD08_02215504
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02214540
- add r2, r0, #0
- mov r0, #0x10
- str r0, [sp]
- mov r3, #0
- lsl r2, r2, #0x10
- ldr r0, _02226140 ; =0x0000FFFF
- str r3, [sp, #4]
- str r0, [sp, #8]
- add r0, r5, #0
- mov r1, #1
- lsr r2, r2, #0x10
- bl FUN_02003210
- add sp, #0xc
- pop {r4, r5, pc}
-_0222610E:
- ldr r0, [r4]
- bl MOD08_02215504
- bl FUN_020038E4
- cmp r0, #0
- bne _02226134
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_02226126:
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
-_02226134:
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-_02226138: .word 0xFFFF1FFF
-_0222613C: .word 0x04000040
-_02226140: .word 0x0000FFFF
-
- thumb_func_start MOD08_02226144
-MOD08_02226144: ; 0x02226144
- push {r4, lr}
- mov r1, #0x34
- add r4, r0, #0
- bl MOD08_02228064
- add r2, r0, #0
- ldr r1, _0222615C ; =MOD08_02225FE0
- add r0, r4, #0
- str r4, [r2]
- bl MOD08_02212400
- pop {r4, pc}
- .align 2, 0
-_0222615C: .word MOD08_02225FE0
-
- thumb_func_start MOD08_02226160
-MOD08_02226160: ; 0x02226160
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #4
- bhi _02226210
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222617A: ; jump table
- .short _02226184 - _0222617A - 2 ; case 0
- .short _022261AA - _0222617A - 2 ; case 1
- .short _022261BE - _0222617A - 2 ; case 2
- .short _022261E4 - _0222617A - 2 ; case 3
- .short _022261F8 - _0222617A - 2 ; case 4
-_02226184:
- ldr r0, [r4]
- mov r1, #0
- mov r2, #0x10
- bl MOD08_02227994
- mov r1, #0
- mov r2, #0x10
- str r1, [sp]
- mov r0, #8
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x14
- add r3, r2, #0
- bl MOD08_022186D4
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02226210
-_022261AA:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218704
- cmp r0, #0
- beq _02226210
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02226210
-_022261BE:
- ldr r0, [r4, #0x10]
- bl FUN_0200C608
- cmp r0, #0
- bne _02226210
- ldr r0, [r4, #0xc]
- mov r2, #0
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r1, #0x10
- str r1, [sp]
- mov r0, #8
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x14
- add r3, r2, #0
- bl MOD08_022186D4
- b _02226210
-_022261E4:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218704
- cmp r0, #0
- beq _02226210
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02226210
-_022261F8:
- ldr r0, [r4, #0x10]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #8
- pop {r3, r4, r5, pc}
-_02226210:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222621C
-MOD08_0222621C: ; 0x0222621C
- push {r3, r4, r5, r6, r7, lr}
- add r7, r1, #0
- mov r1, #0x3c
- add r6, r0, #0
- str r2, [sp]
- add r5, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r6, [r4]
- ldr r0, [sp]
- str r7, [r4, #4]
- str r0, [r4, #8]
- str r5, [r4, #0x10]
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200C5E0
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4]
- ldr r1, _02226254 ; =MOD08_02226160
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02226254: .word MOD08_02226160
-
- thumb_func_start MOD08_02226258
-MOD08_02226258: ; 0x02226258
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #4
- bhi _0222631C
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02226272: ; jump table
- .short _0222627C - _02226272 - 2 ; case 0
- .short _022262E6 - _02226272 - 2 ; case 1
- .short _02226328 - _02226272 - 2 ; case 2
- .short _02226394 - _02226272 - 2 ; case 3
- .short _022263E6 - _02226272 - 2 ; case 4
-_0222627C:
- ldr r0, [r4, #0x68]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- ldr r0, [r4, #0x6c]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #4]
- ldr r0, [r4, #0x74]
- asr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r1, [r4, #0x5c]
- ldr r2, [r4, #0x60]
- ldr r3, [r4, #0x64]
- add r0, r4, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- add r0, #0x14
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_022181A8
- mov r1, #0xa
- mov r2, #8
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r3, [r4, #0x10]
- add r0, #0x38
- bl MOD08_02218454
- add r0, r4, #0
- ldr r1, [r4, #0x10]
- add r0, #0x14
- bl MOD08_022183A0
- mov r0, #0
- str r0, [sp]
- mov r1, #8
- mov r2, #0xc
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- ldr r3, [r4, #0x28]
- bl MOD08_022182DC
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_022262E6:
- mov r1, #0xa
- mov r2, #8
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r3, [r4, #0x10]
- add r0, #0x38
- bl MOD08_02218454
- add r0, r4, #0
- ldr r1, [r4, #0x10]
- add r0, #0x14
- bl MOD08_022183A0
- add r5, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r1, #8
- mov r2, #0xc
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- ldr r3, [r4, #0x28]
- bl MOD08_022182DC
- cmp r5, #0
- beq _0222631E
-_0222631C:
- b _02226424
-_0222631E:
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_02226328:
- ldr r0, [r4, #0x64]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- ldr r0, [r4, #0x6c]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #4]
- ldr r0, [r4, #0x74]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r1, [r4, #0x60]
- ldr r2, [r4, #0x5c]
- ldr r3, [r4, #0x68]
- add r0, r4, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- add r0, #0x14
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_022181A8
- mov r1, #0xa
- mov r2, #8
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r3, [r4, #0x10]
- add r0, #0x38
- bl MOD08_02218454
- add r0, r4, #0
- ldr r1, [r4, #0x10]
- add r0, #0x14
- bl MOD08_022183A0
- mov r0, #0
- str r0, [sp]
- mov r1, #8
- mov r2, #0xc
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- ldr r3, [r4, #0x28]
- bl MOD08_022182DC
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_02226394:
- mov r1, #0xa
- mov r2, #8
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r3, [r4, #0x10]
- add r0, #0x38
- bl MOD08_02218454
- add r0, r4, #0
- ldr r1, [r4, #0x10]
- add r0, #0x14
- bl MOD08_022183A0
- add r5, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r1, #8
- mov r2, #0xc
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- ldr r3, [r4, #0x28]
- bl MOD08_022182DC
- cmp r5, #0
- bne _02226424
- ldr r0, [r4, #0x70]
- sub r0, r0, #1
- str r0, [r4, #0x70]
- cmp r0, #0
- bgt _022263DE
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_022263DE:
- mov r0, #0
- add sp, #0xc
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_022263E6:
- mov r2, #0xa
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_02007558
- mov r2, #8
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_02007558
- mov r1, #0xc
- add r2, r1, #0
- ldr r0, [r4, #0x10]
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #0x10]
- add r2, #0xf3
- bl FUN_02007558
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
-_02226424:
- add sp, #0xc
- pop {r4, r5, pc}
-
- thumb_func_start MOD08_02226428
-MOD08_02226428: ; 0x02226428
- push {r3, r4, r5, lr}
- mov r1, #0x78
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_0221552C
- strh r0, [r4, #0xc]
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #8]
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0xa]
- mov r1, #0xa
- str r1, [r4, #0x5c]
- mov r0, #7
- str r0, [r4, #0x60]
- str r1, [r4, #0x64]
- mov r0, #0x1e
- str r0, [r4, #0x68]
- str r1, [r4, #0x6c]
- mov r3, #1
- ldr r0, _0222649C ; =0x00040003
- str r3, [r4, #0x70]
- str r0, [r4, #0x74]
- mov r1, #2
- add r0, r4, #0
- str r1, [sp]
- add r0, #0x38
- mov r2, #0
- bl MOD08_022183C0
- ldr r0, [r4]
- ldr r1, _022264A0 ; =MOD08_02226258
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- nop
-_0222649C: .word 0x00040003
-_022264A0: .word MOD08_02226258
-
- thumb_func_start MOD08_022264A4
-MOD08_022264A4: ; 0x022264A4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- ldr r1, [r4, #0x2c]
- add r0, #8
- bl MOD08_02217F08
- cmp r0, #0
- bne _022264CE
- ldr r0, [r4, #0x2c]
- bl FUN_0200C3DC
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- pop {r3, r4, r5, pc}
-_022264CE:
- ldr r0, [r4, #4]
- bl FUN_0200BC1C
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022264D8
-MOD08_022264D8: ; 0x022264D8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- mov r1, #0x30
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02212518
- str r0, [r4, #4]
- add r0, r5, #0
- bl MOD08_02212458
- add r6, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _0222651C
- add r0, r5, #0
- mov r1, #0
- bl MOD08_022124B0
- str r0, [r4, #0x2c]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_022124B0
- bl FUN_0200C3DC
- b _02226532
-_0222651C:
- add r0, r5, #0
- mov r1, #1
- bl MOD08_022124B0
- str r0, [r4, #0x2c]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_022124B0
- bl FUN_0200C3DC
-_02226532:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02217C1C
- add r7, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02217C44
- str r0, [sp, #0xc]
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0
- bl MOD08_02217B98
- str r0, [sp, #0x10]
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #1
- bl MOD08_02217B98
- ldr r1, [sp, #0x10]
- lsl r2, r7, #6
- add r6, r1, r2
- ldr r1, [sp, #0xc]
- lsl r1, r1, #4
- neg r1, r1
- add r5, r0, r1
- str r1, [sp, #8]
- lsl r1, r6, #0x10
- lsl r2, r5, #0x10
- ldr r0, [r4, #0x2c]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C714
- ldr r0, [sp, #8]
- mov r2, #0x30
- add r0, r5, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- mul r2, r7
- str r0, [sp]
- mov r0, #6
- add r2, r6, r2
- str r0, [sp, #4]
- add r0, r4, #0
- lsl r1, r6, #0x10
- lsl r2, r2, #0x10
- lsl r3, r5, #0x10
- add r0, #8
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_02217E80
- ldr r0, [r4]
- ldr r1, _022265B0 ; =MOD08_022264A4
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_022265B0: .word MOD08_022264A4
-
- thumb_func_start MOD08_022265B4
-MOD08_022265B4: ; 0x022265B4
- push {r4, r5, r6, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #5
- bls _022265C4
- b _022266E0
-_022265C4:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022265D0: ; jump table
- .short _022265DC - _022265D0 - 2 ; case 0
- .short _022265F6 - _022265D0 - 2 ; case 1
- .short _02226644 - _022265D0 - 2 ; case 2
- .short _02226660 - _022265D0 - 2 ; case 3
- .short _022266A2 - _022265D0 - 2 ; case 4
- .short _022266BA - _022265D0 - 2 ; case 5
-_022265DC:
- mov r1, #4
- add r0, r4, #0
- str r1, [sp]
- add r0, #0x40
- mov r2, #0
- mov r3, #1
- bl MOD08_022183C0
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, r6, pc}
-_022265F6:
- mov r1, #0x18
- mov r2, #0x1a
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r3, [r4, #0x14]
- add r0, #0x40
- bl MOD08_02218454
- cmp r0, #0
- bne _022266E0
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- mov r0, #0x1a
- ldrsh r3, [r4, r0]
- mov r0, #0x18
- ldrsh r1, [r4, r0]
- ldr r2, [r4, #0x10]
- sub r0, #0x1f
- mul r0, r2
- add r0, r3, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- mov r0, #4
- str r0, [sp, #4]
- add r0, r4, #0
- ldr r4, [r4, #0xc]
- mov r2, #0x28
- mul r2, r4
- add r2, r1, r2
- lsl r2, r2, #0x10
- add r0, #0x1c
- asr r2, r2, #0x10
- bl MOD08_02217E80
- add sp, #8
- pop {r4, r5, r6, pc}
-_02226644:
- add r0, r4, #0
- ldr r1, [r4, #0x14]
- add r0, #0x1c
- bl MOD08_02217F2C
- cmp r0, #0
- bne _022266E0
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- mov r0, #8
- str r0, [r4, #8]
- pop {r4, r5, r6, pc}
-_02226660:
- ldr r0, [r4, #8]
- sub r0, r0, #1
- str r0, [r4, #8]
- bpl _022266E0
- ldr r0, [r4, #4]
- mov r5, #0x28
- add r0, r0, #1
- str r0, [r4, #4]
- mov r0, #0x1a
- ldrsh r3, [r4, r0]
- mov r0, #0x18
- ldrsh r2, [r4, r0]
- mov r0, #4
- str r3, [sp]
- str r0, [sp, #4]
- ldr r1, [r4, #0xc]
- add r0, r4, #0
- add r6, r1, #0
- mul r6, r5
- add r1, r2, r6
- lsl r1, r1, #0x10
- ldr r4, [r4, #0x10]
- sub r5, #0x2f
- mul r5, r4
- add r3, r3, r5
- lsl r3, r3, #0x10
- add r0, #0x1c
- asr r1, r1, #0x10
- asr r3, r3, #0x10
- bl MOD08_02217E80
- add sp, #8
- pop {r4, r5, r6, pc}
-_022266A2:
- add r0, r4, #0
- ldr r1, [r4, #0x14]
- add r0, #0x1c
- bl MOD08_02217F2C
- cmp r0, #0
- bne _022266E0
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, r6, pc}
-_022266BA:
- mov r2, #0x18
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x14]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x1a
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_02007558
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
-_022266E0:
- add sp, #8
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_022266E4
-MOD08_022266E4: ; 0x022266E4
- push {r4, r5, r6, lr}
- add r5, r0, #0
- mov r1, #0x64
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- str r5, [r4]
- bl MOD08_02212458
- add r6, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_022154D4
- str r0, [r4, #0x14]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x18]
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x1a]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02217C1C
- str r0, [r4, #0xc]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02217C44
- str r0, [r4, #0x10]
- ldr r0, [r4]
- ldr r1, _02226738 ; =MOD08_022265B4
- add r2, r4, #0
- bl MOD08_02212400
- pop {r4, r5, r6, pc}
- nop
-_02226738: .word MOD08_022265B4
-
- thumb_func_start MOD08_0222673C
-MOD08_0222673C: ; 0x0222673C
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #4
- bls _0222674C
- b _0222685C
-_0222674C:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02226758: ; jump table
- .short _02226762 - _02226758 - 2 ; case 0
- .short _02226798 - _02226758 - 2 ; case 1
- .short _022267C0 - _02226758 - 2 ; case 2
- .short _0222681E - _02226758 - 2 ; case 3
- .short _02226836 - _02226758 - 2 ; case 4
-_02226762:
- mov r0, #0x16
- ldrsh r3, [r4, r0]
- mov r0, #0x14
- ldrsh r1, [r4, r0]
- ldr r0, [r4, #0xc]
- mov r5, #4
- lsl r0, r0, #4
- add r0, r3, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- str r5, [sp, #4]
- ldr r2, [r4, #8]
- sub r5, #0x2c
- mul r5, r2
- add r2, r1, r5
- add r0, r4, #0
- lsl r2, r2, #0x10
- add r0, #0x18
- asr r2, r2, #0x10
- bl MOD08_02217E80
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
-_02226798:
- add r0, r4, #0
- ldr r1, [r4, #0x10]
- add r0, #0x18
- bl MOD08_02217F2C
- cmp r0, #0
- bne _0222685C
- ldr r0, [r4, #4]
- mov r1, #4
- add r0, r0, #1
- str r0, [r4, #4]
- add r4, #0x3c
- add r0, r4, #0
- mov r2, #0
- mov r3, #1
- str r1, [sp]
- bl MOD08_022183C0
- add sp, #8
- pop {r3, r4, r5, pc}
-_022267C0:
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r2, r0, #0x10
- add r0, r4, #0
- ldr r3, [r4, #0x10]
- add r0, #0x3c
- add r1, r5, #0
- bl MOD08_02218454
- cmp r0, #0
- bne _0222685C
- ldr r0, [r4, #4]
- mov r5, #4
- add r0, r0, #1
- str r0, [r4, #4]
- mov r0, #0x16
- ldrsh r3, [r4, r0]
- mov r0, #0x14
- ldrsh r2, [r4, r0]
- add r0, r4, #0
- add r0, #0x18
- str r3, [sp]
- str r5, [sp, #4]
- ldr r1, [r4, #8]
- ldr r4, [r4, #0xc]
- sub r5, #0x2c
- mul r5, r1
- lsl r4, r4, #4
- add r1, r2, r5
- add r3, r3, r4
- lsl r1, r1, #0x10
- lsl r3, r3, #0x10
- asr r1, r1, #0x10
- asr r3, r3, #0x10
- bl MOD08_02217E80
- add sp, #8
- pop {r3, r4, r5, pc}
-_0222681E:
- add r0, r4, #0
- ldr r1, [r4, #0x10]
- add r0, #0x18
- bl MOD08_02217F2C
- cmp r0, #0
- bne _0222685C
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
-_02226836:
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x16
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_02007558
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
-_0222685C:
- add sp, #8
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02226860
-MOD08_02226860: ; 0x02226860
- push {r4, r5, r6, lr}
- add r5, r0, #0
- mov r1, #0x60
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- str r5, [r4]
- bl MOD08_02212460
- add r6, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x14]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x16]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02217C1C
- str r0, [r4, #8]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02217C44
- str r0, [r4, #0xc]
- ldr r0, [r4]
- ldr r1, _022268B4 ; =MOD08_0222673C
- add r2, r4, #0
- bl MOD08_02212400
- pop {r4, r5, r6, pc}
- nop
-_022268B4: .word MOD08_0222673C
-
- thumb_func_start MOD08_022268B8
-MOD08_022268B8: ; 0x022268B8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x3c
- add r7, r1, #0
- add r4, r0, #0
- mov r1, #0xac
- add r6, r2, #0
- str r3, [sp]
- bl MOD08_02228064
- str r4, [r0]
- str r0, [sp, #4]
- str r6, [r0, #0xc]
- add r0, r4, #0
- bl MOD08_02212458
- add r5, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02217C1C
- ldr r1, [sp, #4]
- str r0, [r1, #0x10]
- ldr r1, [r1]
- add r0, sp, #8
- bl MOD08_02215474
- add r0, r4, #0
- add r1, r5, #0
- mov r2, #0
- bl MOD08_02217B98
- add r1, sp, #8
- strh r0, [r1]
- add r0, r4, #0
- add r1, r5, #0
- mov r2, #1
- bl MOD08_02217B98
- add r1, sp, #8
- ldr r5, [sp, #4]
- strh r0, [r1, #2]
- mov r4, #0
-_0222690C:
- cmp r4, #0
- add r2, sp, #8
- bne _02226926
- ldr r0, [sp]
- mov r1, #0
- str r0, [r5, #0x14]
- ldrsh r1, [r2, r1]
- add r3, r2, #0
- mov r2, #2
- ldrsh r2, [r3, r2]
- bl FUN_0200C714
- b _02226930
-_02226926:
- add r0, r7, #0
- add r1, r6, #0
- bl FUN_0200C154
- str r0, [r5, #0x14]
-_02226930:
- ldr r0, [r5, #0x14]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r5, #0x14]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r5, #0x14]
- mov r1, #1
- bl FUN_0200C6B0
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #2
- blt _0222690C
- ldr r0, [sp, #4]
- ldr r1, _02226960 ; =MOD08_02226964
- ldr r0, [r0]
- ldr r2, [sp, #4]
- bl MOD08_02212400
- add sp, #0x3c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02226960: .word MOD08_02226964
-
- thumb_func_start MOD08_02226964
-MOD08_02226964: ; 0x02226964
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r7, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #4
- bhi _02226A48
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222697C: ; jump table
- .short _02226986 - _0222697C - 2 ; case 0
- .short _022269AE - _0222697C - 2 ; case 1
- .short _022269CE - _0222697C - 2 ; case 2
- .short _02226A00 - _0222697C - 2 ; case 3
- .short _02226A26 - _0222697C - 2 ; case 4
-_02226986:
- add r2, r4, #0
- ldr r0, [r4, #0x14]
- ldr r3, [r4, #0x10]
- add r1, #0x1c
- add r2, #0x64
- bl MOD08_02226A50
- add r1, r4, #0
- add r2, r4, #0
- ldr r0, [r4, #0x14]
- add r1, #0x1c
- add r2, #0x64
- bl MOD08_02226AB0
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- mov r0, #8
- str r0, [r4, #8]
- b _02226A48
-_022269AE:
- ldr r0, [r4, #8]
- add r2, r4, #0
- sub r0, r0, #1
- str r0, [r4, #8]
- ldr r0, [r4, #0x14]
- add r1, #0x1c
- add r2, #0x64
- bl MOD08_02226AB0
- ldr r0, [r4, #8]
- cmp r0, #0
- bge _02226A48
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- b _02226A48
-_022269CE:
- add r2, r4, #0
- ldr r0, [r4, #0x18]
- ldr r3, [r4, #0x10]
- add r1, #0x40
- add r2, #0x88
- bl MOD08_02226A50
- add r1, r4, #0
- add r2, r4, #0
- ldr r0, [r4, #0x18]
- add r1, #0x40
- add r2, #0x88
- bl MOD08_02226AB0
- add r1, r4, #0
- add r2, r4, #0
- ldr r0, [r4, #0x14]
- add r1, #0x1c
- add r2, #0x64
- bl MOD08_02226AB0
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- b _02226A48
-_02226A00:
- add r2, r4, #0
- ldr r0, [r4, #0x14]
- add r1, #0x1c
- add r2, #0x64
- bl MOD08_02226AB0
- add r1, r4, #0
- add r2, r4, #0
- ldr r0, [r4, #0x18]
- add r1, #0x40
- add r2, #0x88
- bl MOD08_02226AB0
- cmp r0, #0
- beq _02226A48
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- b _02226A48
-_02226A26:
- mov r6, #0
- add r5, r4, #0
-_02226A2A:
- ldr r0, [r5, #0x14]
- bl FUN_0200C3DC
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #2
- blt _02226A2A
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_02226A48:
- ldr r0, [r4, #0xc]
- bl FUN_0200BC1C
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02226A50
-MOD08_02226A50: ; 0x02226A50
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r6, r1, #0
- add r5, r0, #0
- mov r1, #2
- add r7, r2, #0
- add r4, r3, #0
- bl FUN_0200C840
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200C644
- add r1, sp, #8
- add r0, r5, #0
- add r1, #2
- add r2, sp, #8
- bl FUN_0200C7A0
- add r1, sp, #8
- mov r0, #0
- ldrsh r3, [r1, r0]
- mov r0, #2
- ldrsh r1, [r1, r0]
- add r0, r3, #0
- sub r0, #0x20
- lsl r0, r0, #0x10
- lsl r2, r4, #4
- asr r0, r0, #0x10
- add r2, r1, r2
- str r0, [sp]
- mov r0, #0x20
- lsl r2, r2, #0x10
- str r0, [sp, #4]
- add r0, r6, #0
- asr r2, r2, #0x10
- bl MOD08_02217E80
- mov r0, #0x20
- mov r2, #0xa
- str r0, [sp]
- add r0, r7, #0
- mov r1, #2
- add r3, r2, #0
- bl MOD08_02218120
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02226AB0
-MOD08_02226AB0: ; 0x02226AB0
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r0, r1, #0
- add r4, r2, #0
- add r1, r5, #0
- bl MOD08_02217F08
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02218360
- cmp r0, #0
- beq _02226ACE
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02226ACE:
- add r0, r5, #0
- mov r1, #0
- bl FUN_0200C644
- mov r0, #1
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02226ADC
-MOD08_02226ADC: ; 0x02226ADC
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x3c
- add r6, r0, #0
- add r7, r2, #0
- add r5, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r6, [r4]
- str r7, [r4, #0xc]
- str r5, [r4, #0x10]
- add r0, r5, #0
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #0x10]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x10]
- bl FUN_0200C68C
- str r0, [r4, #8]
- ldr r0, [r4]
- ldr r1, _02226B28 ; =MOD08_02226B2C
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02226B28: .word MOD08_02226B2C
-
- thumb_func_start MOD08_02226B2C
-MOD08_02226B2C: ; 0x02226B2C
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #4
- bhi _02226C18
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02226B46: ; jump table
- .short _02226B50 - _02226B46 - 2 ; case 0
- .short _02226B80 - _02226B46 - 2 ; case 1
- .short _02226BA6 - _02226B46 - 2 ; case 2
- .short _02226BE4 - _02226B46 - 2 ; case 3
- .short _02226C00 - _02226B46 - 2 ; case 4
-_02226B50:
- mov r0, #4
- str r0, [sp]
- mov r0, #0xa
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x14
- mov r1, #0
- mov r2, #0x10
- mov r3, #0x14
- bl MOD08_022186D4
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C644
- ldr r0, [r4]
- mov r1, #0
- mov r2, #0x14
- bl MOD08_02227994
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- b _02226C18
-_02226B80:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218704
- cmp r0, #0
- beq _02226C18
- ldr r0, [r4, #4]
- mov r1, #1
- add r0, r0, #1
- str r0, [r4, #4]
- ldr r0, [r4, #0x10]
- bl FUN_0200C5E0
- mov r1, #1
- ldr r0, [r4, #0x10]
- lsl r1, r1, #0xc
- bl FUN_0200C5F4
- b _02226C18
-_02226BA6:
- ldr r0, [r4, #0x10]
- bl FUN_0200C630
- mov r1, #3
- bl _s32_div_f
- ldr r2, [r4, #8]
- ldr r0, [r4, #0x10]
- add r1, r2, r1
- bl FUN_0200C680
- ldr r0, [r4, #0x10]
- bl FUN_0200C608
- cmp r0, #0
- bne _02226C18
- ldr r0, [r4, #4]
- mov r1, #0x10
- add r0, r0, #1
- str r0, [r4, #4]
- mov r0, #0x14
- str r0, [sp]
- mov r0, #8
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x14
- mov r2, #0
- mov r3, #4
- bl MOD08_022186D4
- b _02226C18
-_02226BE4:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218704
- cmp r0, #0
- beq _02226C18
- ldr r0, [r4, #4]
- mov r1, #0
- add r0, r0, #1
- str r0, [r4, #4]
- ldr r0, [r4, #0x10]
- bl FUN_0200C644
- b _02226C18
-_02226C00:
- ldr r0, [r4, #0x10]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #8
- pop {r3, r4, r5, pc}
-_02226C18:
- ldr r0, [r4, #0xc]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02226C24
-MOD08_02226C24: ; 0x02226C24
- push {r4, r5, r6, r7, lr}
- sub sp, #0x4c
- str r1, [sp, #4]
- str r2, [sp, #8]
- mov r1, #0x54
- add r5, r0, #0
- str r3, [sp, #0xc]
- bl MOD08_02228064
- ldr r1, [sp, #8]
- str r5, [r0]
- str r0, [sp, #0x14]
- str r1, [r0, #8]
- ldr r0, [r0]
- bl MOD08_02212458
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02217C1C
- ldr r1, [sp, #0x14]
- str r0, [sp, #0x10]
- ldr r1, [r1]
- add r0, sp, #0x18
- bl MOD08_02215474
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0
- bl MOD08_02217B98
- add r1, sp, #0x18
- strh r0, [r1]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #1
- bl MOD08_02217B98
- ldr r7, [sp, #0x14]
- ldr r6, [sp, #0x14]
- ldr r5, [sp, #0x14]
- add r1, sp, #0x18
- add r7, #0x3c
- add r6, #0x24
- strh r0, [r1, #2]
- mov r4, #5
- add r5, #0x14
- add r7, #0x14
- add r6, #0x14
-_02226C88:
- cmp r4, #5
- add r2, sp, #0x18
- bne _02226CA2
- ldr r0, [sp, #0xc]
- mov r1, #0
- str r0, [r5, #0xc]
- ldrsh r1, [r2, r1]
- add r3, r2, #0
- mov r2, #2
- ldrsh r2, [r3, r2]
- bl FUN_0200C714
- b _02226CAC
-_02226CA2:
- ldr r0, [sp, #4]
- ldr r1, [sp, #8]
- bl FUN_0200C154
- str r0, [r5, #0xc]
-_02226CAC:
- ldr r0, [r5, #0xc]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r5, #0xc]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [r5, #0xc]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [sp, #0x10]
- add r1, r6, #0
- str r0, [sp]
- ldr r0, [r5, #0xc]
- add r2, r7, #0
- add r3, r4, #0
- bl MOD08_02226CF4
- sub r5, r5, #4
- sub r7, r7, #4
- sub r6, r6, #4
- sub r4, r4, #1
- bpl _02226C88
- ldr r0, [sp, #0x14]
- ldr r1, _02226CF0 ; =MOD08_02226D78
- ldr r0, [r0]
- ldr r2, [sp, #0x14]
- bl MOD08_02212400
- add sp, #0x4c
- pop {r4, r5, r6, r7, pc}
- nop
-_02226CF0: .word MOD08_02226D78
-
- thumb_func_start MOD08_02226CF4
-MOD08_02226CF4: ; 0x02226CF4
- push {r3, r4, r5, r6, r7, lr}
- add r4, r3, #0
- add r6, r1, #0
- lsr r1, r4, #0x1f
- add r1, r4, r1
- asr r1, r1, #1
- add r5, r0, #0
- add r7, r2, #0
- bl FUN_0200C5C0
- lsl r0, r4, #1
- str r0, [r7]
- mov r0, #0x10
- add r1, sp, #0
- str r0, [r6]
- add r0, r5, #0
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- mov r1, #2
- add r6, r1, #0
- add r2, sp, #0
- sub r6, #0xe
- mul r6, r4
- ldr r0, [sp, #0x18]
- ldrsh r3, [r2, r1]
- add r6, #0x28
- add r4, r0, #0
- mul r4, r6
- add r0, r3, r4
- mov r3, #0
- strh r0, [r2, #2]
- ldrsh r0, [r2, r3]
- add r0, #0x28
- strh r0, [r2]
- ldrsh r1, [r2, r1]
- ldrsh r2, [r2, r3]
- add r0, r5, #0
- bl FUN_0200C714
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02226D48
-MOD08_02226D48: ; 0x02226D48
- push {r3, lr}
- ldr r3, [r2]
- cmp r3, #0
- ble _02226D5E
- sub r1, r3, #1
- str r1, [r2]
- bne _02226D74
- mov r1, #1
- bl FUN_0200C644
- b _02226D74
-_02226D5E:
- ldr r2, [r1]
- cmp r2, #0
- ble _02226D6A
- sub r0, r2, #1
- str r0, [r1]
- b _02226D74
-_02226D6A:
- mov r1, #0
- bl FUN_0200C644
- mov r0, #1
- pop {r3, pc}
-_02226D74:
- mov r0, #0
- pop {r3, pc}
-
- thumb_func_start MOD08_02226D78
-MOD08_02226D78: ; 0x02226D78
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- ldr r0, [r1, #4]
- str r1, [sp]
- cmp r0, #0
- beq _02226D8A
- cmp r0, #1
- beq _02226DBC
- b _02226DE0
-_02226D8A:
- add r6, r1, #0
- add r4, r1, #0
- mov r7, #0
- add r6, #0x3c
- add r4, #0x24
- add r5, r1, #0
-_02226D96:
- ldr r0, [r5, #0xc]
- add r1, r4, #0
- add r2, r6, #0
- bl MOD08_02226D48
- add r7, r7, #1
- add r6, r6, #4
- add r4, r4, #4
- add r5, r5, #4
- cmp r7, #6
- blt _02226D96
- cmp r0, #0
- beq _02226DE0
- ldr r0, [sp]
- ldr r0, [r0, #4]
- add r1, r0, #1
- ldr r0, [sp]
- str r1, [r0, #4]
- b _02226DE0
-_02226DBC:
- mov r5, #0
- add r4, r1, #0
-_02226DC0:
- ldr r0, [r4, #0xc]
- bl FUN_0200C3DC
- add r5, r5, #1
- add r4, r4, #4
- cmp r5, #6
- blt _02226DC0
- ldr r0, [sp]
- add r1, r6, #0
- ldr r0, [r0]
- bl MOD08_02212438
- ldr r0, [sp]
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_02226DE0:
- ldr r0, [sp]
- ldr r0, [r0, #8]
- bl FUN_0200BC1C
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02226DEC
-MOD08_02226DEC: ; 0x02226DEC
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r0, #0
- mov r7, #0
- add r6, r5, #0
- str r1, [sp, #0x10]
- add r6, #0x30
- add r4, r7, #0
-_02226DFC:
- mov r0, #0
- str r0, [sp]
- mov r0, #0x32
- lsl r0, r0, #0xc
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #0x30
- mov r1, #0
- str r0, [sp, #0xc]
- ldr r2, _02226E3C ; =0x00007FFF
- add r0, r6, #0
- add r3, r1, #0
- bl MOD08_02217D14
- ldr r0, [r5, #0x38]
- add r7, r7, #1
- add r0, r0, r4
- str r0, [r5, #0x38]
- ldr r1, [r5, #0x48]
- ldr r0, [sp, #0x10]
- add r6, #0x24
- mul r0, r1
- str r0, [r5, #0x48]
- ldr r0, _02226E40 ; =0x00002AAA
- add r5, #0x24
- add r4, r4, r0
- cmp r7, #6
- blt _02226DFC
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_02226E3C: .word 0x00007FFF
-_02226E40: .word 0x00002AAA
-
- thumb_func_start MOD08_02226E44
-MOD08_02226E44: ; 0x02226E44
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- mov r0, #0
- add r7, r6, #0
- str r0, [sp]
- add r7, #0x30
- add r4, r6, #0
- add r5, r6, #0
-_02226E54:
- add r0, r7, #0
- bl MOD08_02217D98
- mov r1, #0x13
- lsl r1, r1, #4
- mov r2, #0x30
- ldrsh r1, [r6, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r5, #0x18]
- add r1, r1, r2
- ldr r2, _02226EB0 ; =0x00000132
- lsl r1, r1, #0x10
- ldrsh r2, [r6, r2]
- asr r1, r1, #0x10
- bl FUN_0200C714
- ldr r1, [r4, #0x38]
- ldr r0, _02226EB4 ; =0x00003FFF
- cmp r1, r0
- blt _02226E8C
- ldr r0, _02226EB8 ; =0x0000BF49
- cmp r1, r0
- bgt _02226E8C
- ldr r0, [r5, #0x18]
- mov r1, #1
- bl FUN_0200C6B0
- b _02226E9C
-_02226E8C:
- ldr r0, [r6]
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r5, #0x18]
- add r1, r1, #1
- bl FUN_0200C6B0
-_02226E9C:
- ldr r0, [sp]
- add r7, #0x24
- add r0, r0, #1
- add r4, #0x24
- add r5, r5, #4
- str r0, [sp]
- cmp r0, #6
- blt _02226E54
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02226EB0: .word 0x00000132
-_02226EB4: .word 0x00003FFF
-_02226EB8: .word 0x0000BF49
-
- thumb_func_start MOD08_02226EBC
-MOD08_02226EBC: ; 0x02226EBC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r4, r1, #0
- add r7, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #4
- bhi _02226FA2
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02226ED6: ; jump table
- .short _02226EE0 - _02226ED6 - 2 ; case 0
- .short _02226F16 - _02226ED6 - 2 ; case 1
- .short _02226F36 - _02226ED6 - 2 ; case 2
- .short _02226F62 - _02226ED6 - 2 ; case 3
- .short _02226F7E - _02226ED6 - 2 ; case 4
-_02226EE0:
- ldr r0, [r4]
- mov r1, #1
- mov r2, #0xf
- bl MOD08_02227994
- mov r0, #0
- str r0, [sp]
- mov r0, #0xa
- str r0, [sp, #4]
- add r0, #0xfe
- add r0, r4, r0
- mov r1, #1
- mov r2, #0x10
- mov r3, #0xf
- bl MOD08_022186D4
- ldr r1, [r4, #0x14]
- add r0, r4, #0
- bl MOD08_02226DEC
- add r0, r4, #0
- bl MOD08_02226E44
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02226FA2
-_02226F16:
- add r0, r4, #0
- bl MOD08_02226E44
- mov r0, #0x42
- lsl r0, r0, #2
- add r0, r4, r0
- bl MOD08_02218704
- cmp r0, #0
- beq _02226FA2
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #0x1c
- str r0, [r4, #0x10]
- b _02226FA2
-_02226F36:
- add r0, r4, #0
- bl MOD08_02226E44
- ldr r0, [r4, #0x10]
- sub r0, r0, #1
- str r0, [r4, #0x10]
- bpl _02226FA2
- ldr r0, [r4, #0xc]
- mov r1, #0x10
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #0xf
- str r0, [sp]
- mov r0, #0xa
- str r0, [sp, #4]
- add r0, #0xfe
- add r0, r4, r0
- mov r2, #1
- mov r3, #0
- bl MOD08_022186D4
- b _02226FA2
-_02226F62:
- add r0, r4, #0
- bl MOD08_02226E44
- mov r0, #0x42
- lsl r0, r0, #2
- add r0, r4, r0
- bl MOD08_02218704
- cmp r0, #0
- beq _02226FA2
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02226FA2
-_02226F7E:
- mov r6, #0
- add r5, r4, #0
-_02226F82:
- ldr r0, [r5, #0x18]
- bl FUN_0200C3DC
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #6
- blt _02226F82
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_02212438
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_02226FA2:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02226FAC
-MOD08_02226FAC: ; 0x02226FAC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- add r5, r1, #0
- mov r1, #0x4d
- lsl r1, r1, #2
- add r4, r0, #0
- str r2, [sp]
- add r7, r3, #0
- bl MOD08_02228064
- add r6, r0, #0
- str r4, [r6]
- ldr r0, [sp]
- str r5, [r6, #4]
- str r0, [r6, #8]
- add r0, r4, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_022154D4
- mov r1, #0
- add r5, r0, #0
- bl FUN_0200782C
- mov r1, #0x13
- lsl r1, r1, #4
- strh r0, [r6, r1]
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200782C
- ldr r1, _02227050 ; =0x00000132
- strh r0, [r6, r1]
- add r0, sp, #4
- add r1, r4, #0
- bl MOD08_02215474
- mov r4, #0
- add r5, r6, #0
-_02226FFE:
- cmp r4, #0
- bne _02227006
- str r7, [r5, #0x18]
- b _02227012
-_02227006:
- ldr r0, [r6, #4]
- ldr r1, [r6, #8]
- add r2, sp, #4
- bl FUN_0200C154
- str r0, [r5, #0x18]
-_02227012:
- ldr r0, [r5, #0x18]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r5, #0x18]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r5, #0x18]
- mov r1, #1
- bl FUN_0200C5E0
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #6
- blt _02226FFE
- ldr r0, [r6]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_02217C1C
- str r0, [r6, #0x14]
- ldr r0, [r6]
- ldr r1, _02227054 ; =MOD08_02226EBC
- add r2, r6, #0
- bl MOD08_02212400
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02227050: .word 0x00000132
-_02227054: .word MOD08_02226EBC
-
- thumb_func_start MOD08_02227058
-MOD08_02227058: ; 0x02227058
- strh r1, [r0, #0xc]
- strh r2, [r0, #0xe]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02227060
-MOD08_02227060: ; 0x02227060
- strh r1, [r0, #0x14]
- strh r2, [r0, #0x16]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02227068
-MOD08_02227068: ; 0x02227068
- push {r4, r5, r6, lr}
- sub sp, #0x10
- add r5, r0, #0
- ldr r0, [r5, #0x1c]
- add r4, r1, #0
- bl MOD08_02212014
- add r6, r0, #0
- ldr r0, [r5, #0x1c]
- mov r1, #3
- bl MOD08_02215600
- add r1, r0, #0
- lsl r0, r4, #0x18
- lsl r1, r1, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_020178BC
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- str r6, [sp, #0xc]
- ldr r1, [r5, #4]
- ldr r0, [r5]
- lsl r2, r1, #4
- ldr r1, _022270F8 ; =0x0222C670
- add r3, r4, #0
- ldr r1, [r1, r2]
- ldr r2, [r5, #0x2c]
- bl FUN_0200687C
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0x80
- str r0, [sp, #8]
- ldr r2, [r5, #4]
- ldr r0, [r5, #0x30]
- lsl r3, r2, #4
- ldr r2, _022270FC ; =0x0222C674
- ldr r1, [r5]
- ldr r2, [r2, r3]
- add r3, r6, #0
- bl FUN_020030E8
- lsl r1, r4, #0x18
- ldr r0, [r5, #0x2c]
- lsr r1, r1, #0x18
- bl FUN_02018744
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- str r6, [sp, #0xc]
- ldr r1, [r5, #4]
- ldr r0, [r5]
- lsl r2, r1, #4
- ldr r1, _02227100 ; =0x0222C678
- add r3, r4, #0
- ldr r1, [r1, r2]
- ldr r2, [r5, #0x2c]
- bl FUN_020068C8
- add sp, #0x10
- pop {r4, r5, r6, pc}
- nop
-_022270F8: .word 0x0222C670
-_022270FC: .word 0x0222C674
-_02227100: .word 0x0222C678
-
- thumb_func_start MOD08_02227104
-MOD08_02227104: ; 0x02227104
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0x18]
- cmp r0, #3
- bhi _022271C0
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0222711C: ; jump table
- .short _02227124 - _0222711C - 2 ; case 0
- .short _02227134 - _0222711C - 2 ; case 1
- .short _0222714C - _0222711C - 2 ; case 2
- .short _0222716C - _0222711C - 2 ; case 3
-_02227124:
- add r0, r4, #0
- mov r1, #2
- bl MOD08_02227068
- ldrb r0, [r4, #0x18]
- add r0, r0, #1
- strb r0, [r4, #0x18]
- b _0222720E
-_02227134:
- ldrh r0, [r4, #0x16]
- mov r1, #4
- mov r2, #0x39
- str r0, [sp]
- ldrh r3, [r4, #0x14]
- ldr r0, _0222725C ; =0x04000050
- bl G2x_SetBlendAlpha_
- ldrb r0, [r4, #0x18]
- add r0, r0, #1
- strb r0, [r4, #0x18]
- b _0222720E
-_0222714C:
- add r1, r4, #0
- add r1, #0x40
- ldrb r1, [r1]
- cmp r1, #0x14
- bls _0222715C
- add r0, r0, #1
- strb r0, [r4, #0x18]
- b _0222720E
-_0222715C:
- add r0, r4, #0
- add r0, #0x40
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x40
- strb r1, [r0]
- b _0222720E
-_0222716C:
- ldrh r0, [r4, #0x14]
- cmp r0, #0
- beq _02227176
- sub r0, r0, #1
- strh r0, [r4, #0x14]
-_02227176:
- ldrh r0, [r4, #0x16]
- cmp r0, #0x10
- bhs _02227180
- add r0, r0, #1
- strh r0, [r4, #0x16]
-_02227180:
- ldrh r0, [r4, #0x14]
- cmp r0, #0
- bne _022271B2
- ldrh r0, [r4, #0x16]
- cmp r0, #0x10
- bne _022271B2
- ldr r0, [r4, #0x2c]
- mov r1, #2
- bl FUN_02018744
- ldr r0, [r4, #0x34]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x38]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x3c]
- mov r1, #0
- bl FUN_0200C644
- ldrb r0, [r4, #0x18]
- add r0, r0, #1
- strb r0, [r4, #0x18]
-_022271B2:
- ldrh r0, [r4, #0x16]
- ldrh r1, [r4, #0x14]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _02227260 ; =0x04000052
- strh r1, [r0]
- b _0222720E
-_022271C0:
- ldr r0, _02227264 ; =0x0400004A
- mov r1, #0x3f
- ldrh r2, [r0]
- bic r2, r1
- mov r1, #0x1f
- orr r2, r1
- strh r2, [r0]
- ldrh r3, [r0]
- ldr r2, _02227268 ; =0xFFFFC0FF
- lsl r1, r1, #8
- and r2, r3
- orr r1, r2
- strh r1, [r0]
- mov r2, #0
- ldr r0, [r4, #0x2c]
- mov r1, #2
- add r3, r2, #0
- bl FUN_020179E0
- ldr r0, [r4, #0x2c]
- mov r1, #2
- mov r2, #3
- mov r3, #0
- bl FUN_020179E0
- mov r2, #1
- lsl r2, r2, #0x1a
- ldr r1, [r2]
- ldr r0, _0222726C ; =0xFFFF1FFF
- and r0, r1
- str r0, [r2]
- ldr r0, [r4, #0x1c]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl MOD08_02228094
- pop {r3, r4, r5, pc}
-_0222720E:
- mov r3, #0x10
- mov r0, #0xc
- ldrsh r1, [r4, r3]
- ldrsh r0, [r4, r0]
- mov r2, #0
- add r0, r1, r0
- strh r0, [r4, #0x10]
- mov r0, #0x12
- ldrsh r1, [r4, r0]
- mov r0, #0xe
- ldrsh r0, [r4, r0]
- add r0, r1, r0
- strh r0, [r4, #0x12]
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #0x2c]
- mov r1, #2
- bl FUN_020179E0
- mov r3, #0x12
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #0x2c]
- mov r1, #2
- mov r2, #3
- bl FUN_020179E0
- ldr r0, [r4, #0x34]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x38]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x3c]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x24]
- bl FUN_0200BC1C
- pop {r3, r4, r5, pc}
- nop
-_0222725C: .word 0x04000050
-_02227260: .word 0x04000052
-_02227264: .word 0x0400004A
-_02227268: .word 0xFFFFC0FF
-_0222726C: .word 0xFFFF1FFF
-
- thumb_func_start MOD08_02227270
-MOD08_02227270: ; 0x02227270
- push {r3, r4, r5, lr}
- add r4, r1, #0
- mov r1, #7
- str r1, [r4]
- add r5, r0, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r4, #4]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02227290
-MOD08_02227290: ; 0x02227290
- push {r4, r5, r6, lr}
- add r5, r1, #0
- mov r1, #0x44
- add r6, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r1, r4, #0
- add r0, r6, #0
- add r1, #0x18
- bl MOD08_02227B70
- add r2, r4, #0
- ldmia r5!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r5!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r5!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r0, [r4, #0x1c]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x34]
- ldr r0, [r4, #0x1c]
- mov r1, #1
- bl MOD08_022124D8
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x1c]
- mov r1, #2
- bl MOD08_022124D8
- str r0, [r4, #0x3c]
- ldr r0, [r4, #0x1c]
- mov r1, #2
- bl MOD08_02215600
- ldr r0, [r4, #0x34]
- mov r1, #2
- bl FUN_0200C6B0
- ldr r0, [r4, #0x38]
- mov r1, #2
- bl FUN_0200C6B0
- ldr r0, [r4, #8]
- cmp r0, #0
- bne _022272FA
- add r0, r6, #0
- bl MOD08_02212458
- b _02227300
-_022272FA:
- add r0, r6, #0
- bl MOD08_02212460
-_02227300:
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r6, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02227338
- ldr r0, [r4, #0x3c]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x1c]
- mov r1, #2
- bl MOD08_02215600
- add r5, r0, #0
- ldr r0, [r4, #0x34]
- add r1, r5, #0
- bl FUN_0200C6B0
- ldr r0, [r4, #0x38]
- add r1, r5, #0
- bl FUN_0200C6B0
- b _0222735C
-_02227338:
- cmp r5, #1
- bhi _02227346
- ldr r0, [r4, #0x3c]
- mov r1, #0
- bl FUN_0200C644
- b _0222735C
-_02227346:
- sub r0, r5, #3
- cmp r0, #1
- ldr r0, [r4, #0x3c]
- bhi _02227356
- mov r1, #3
- bl FUN_0200C6B0
- b _0222735C
-_02227356:
- mov r1, #1
- bl FUN_0200C6B0
-_0222735C:
- ldr r0, _022273A8 ; =0x0400004A
- ldr r1, _022273AC ; =0xFFFFC0FF
- ldrh r2, [r0]
- and r2, r1
- mov r1, #0x16
- lsl r1, r1, #8
- orr r2, r1
- lsr r1, r0, #0xd
- orr r1, r2
- strh r1, [r0]
- ldrh r2, [r0]
- mov r1, #0x3f
- bic r2, r1
- mov r1, #0x1b
- orr r2, r1
- mov r1, #0x20
- orr r2, r1
- strh r2, [r0]
- lsl r3, r1, #0x15
- ldr r2, [r3]
- ldr r0, _022273B0 ; =0xFFFF1FFF
- and r2, r0
- lsl r0, r1, #0xa
- orr r0, r2
- str r0, [r3]
- ldr r0, [r4, #0x38]
- mov r1, #2
- bl FUN_0200C90C
- mov r0, #0
- strh r0, [r4, #0x10]
- strh r0, [r4, #0x12]
- ldr r0, [r4, #0x1c]
- ldr r1, _022273B4 ; =MOD08_02227104
- add r2, r4, #0
- bl MOD08_02212400
- pop {r4, r5, r6, pc}
- .align 2, 0
-_022273A8: .word 0x0400004A
-_022273AC: .word 0xFFFFC0FF
-_022273B0: .word 0xFFFF1FFF
-_022273B4: .word MOD08_02227104
-
- thumb_func_start MOD08_022273B8
-MOD08_022273B8: ; 0x022273B8
- push {r4, lr}
- sub sp, #0x18
- add r1, sp, #0
- add r4, r0, #0
- bl MOD08_02227270
- add r0, sp, #0
- mov r1, #0
- mov r2, #3
- bl MOD08_02227058
- add r0, sp, #0
- mov r1, #0xc
- mov r2, #4
- bl MOD08_02227060
- add r0, r4, #0
- add r1, sp, #0
- bl MOD08_02227290
- add sp, #0x18
- pop {r4, pc}
-
- thumb_func_start MOD08_022273E4
-MOD08_022273E4: ; 0x022273E4
- push {r4, lr}
- sub sp, #0x18
- add r1, sp, #0
- add r4, r0, #0
- bl MOD08_02227270
- mov r1, #0
- add r0, sp, #0
- sub r2, r1, #3
- bl MOD08_02227058
- add r0, sp, #0
- mov r1, #0xc
- mov r2, #4
- bl MOD08_02227060
- add r0, r4, #0
- add r1, sp, #0
- bl MOD08_02227290
- add sp, #0x18
- pop {r4, pc}
-
- thumb_func_start MOD08_02227410
-MOD08_02227410: ; 0x02227410
- push {r4, lr}
- sub sp, #0x18
- add r1, sp, #0
- add r4, r0, #0
- bl MOD08_02227270
- add r0, sp, #0
- mov r1, #0
- mov r2, #3
- bl MOD08_02227058
- add r0, sp, #0
- mov r1, #0xc
- mov r2, #4
- bl MOD08_02227060
- add r0, r4, #0
- add r1, sp, #0
- bl MOD08_02227290
- add sp, #0x18
- pop {r4, pc}
-
- thumb_func_start MOD08_0222743C
-MOD08_0222743C: ; 0x0222743C
- push {r4, lr}
- sub sp, #0x18
- add r1, sp, #0
- add r4, r0, #0
- bl MOD08_02227270
- mov r1, #0
- add r0, sp, #0
- sub r2, r1, #6
- bl MOD08_02227058
- add r0, sp, #0
- mov r1, #0xc
- mov r2, #4
- bl MOD08_02227060
- add r0, r4, #0
- add r1, sp, #0
- bl MOD08_02227290
- add sp, #0x18
- pop {r4, pc}
-
- thumb_func_start MOD08_02227468
-MOD08_02227468: ; 0x02227468
- ldr r3, _0222746C ; =MOD08_02215490
- bx r3
- .align 2, 0
-_0222746C: .word MOD08_02215490
-
- thumb_func_start MOD08_02227470
-MOD08_02227470: ; 0x02227470
- push {r4, lr}
- bl MOD08_02215490
- cmp r0, #5
- bhi _02227498
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02227486: ; jump table
- .short _02227492 - _02227486 - 2 ; case 0
- .short _02227496 - _02227486 - 2 ; case 1
- .short _02227492 - _02227486 - 2 ; case 2
- .short _02227496 - _02227486 - 2 ; case 3
- .short _02227492 - _02227486 - 2 ; case 4
- .short _02227496 - _02227486 - 2 ; case 5
-_02227492:
- mov r4, #3
- b _02227498
-_02227496:
- mov r4, #4
-_02227498:
- add r0, r4, #0
- pop {r4, pc}
-
- thumb_func_start MOD08_0222749C
-MOD08_0222749C: ; 0x0222749C
- push {r4, r5, r6, lr}
- add r6, r0, #0
- add r5, r1, #0
- mov r4, #0
-_022274A4:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD08_02215490
- cmp r0, r5
- bne _022274B4
- add r0, r4, #0
- pop {r4, r5, r6, pc}
-_022274B4:
- add r4, r4, #1
- cmp r4, #4
- blt _022274A4
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022274C0
-MOD08_022274C0: ; 0x022274C0
- push {r4, r5, r6, lr}
- add r6, r0, #0
- bl MOD08_02215490
- add r5, r0, #0
- cmp r5, #1
- bls _02227520
- mov r4, #0
-_022274D0:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD08_02215490
- cmp r5, #5
- bhi _02227514
- add r1, r5, r5
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022274E8: ; jump table
- .short _02227514 - _022274E8 - 2 ; case 0
- .short _02227514 - _022274E8 - 2 ; case 1
- .short _022274F4 - _022274E8 - 2 ; case 2
- .short _02227504 - _022274E8 - 2 ; case 3
- .short _022274FC - _022274E8 - 2 ; case 4
- .short _0222750C - _022274E8 - 2 ; case 5
-_022274F4:
- cmp r0, #4
- bne _02227514
- add r0, r4, #0
- pop {r4, r5, r6, pc}
-_022274FC:
- cmp r0, #2
- bne _02227514
- add r0, r4, #0
- pop {r4, r5, r6, pc}
-_02227504:
- cmp r0, #5
- bne _02227514
- add r0, r4, #0
- pop {r4, r5, r6, pc}
-_0222750C:
- cmp r0, #3
- bne _02227514
- add r0, r4, #0
- pop {r4, r5, r6, pc}
-_02227514:
- add r4, r4, #1
- cmp r4, #4
- blt _022274D0
- bl ErrorHandling
- add r0, r5, #0
-_02227520:
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02227524
-MOD08_02227524: ; 0x02227524
- push {r3, lr}
- cmp r0, #5
- bhi _0222755A
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02227536: ; jump table
- .short _02227542 - _02227536 - 2 ; case 0
- .short _02227546 - _02227536 - 2 ; case 1
- .short _0222754A - _02227536 - 2 ; case 2
- .short _0222754E - _02227536 - 2 ; case 3
- .short _02227552 - _02227536 - 2 ; case 4
- .short _02227556 - _02227536 - 2 ; case 5
-_02227542:
- mov r0, #1
- pop {r3, pc}
-_02227546:
- mov r0, #0
- pop {r3, pc}
-_0222754A:
- mov r0, #3
- pop {r3, pc}
-_0222754E:
- mov r0, #2
- pop {r3, pc}
-_02227552:
- mov r0, #5
- pop {r3, pc}
-_02227556:
- mov r0, #4
- pop {r3, pc}
-_0222755A:
- bl ErrorHandling
- mov r0, #0
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02227564
-MOD08_02227564: ; 0x02227564
- push {r3, r4, r5, r6}
- sub sp, #0x30
- ldr r6, _022275B8 ; =0x0222C6C8
- add r5, sp, #0x18
- mov r4, #0xc
-_0222756E:
- ldrh r3, [r6]
- add r6, r6, #2
- strh r3, [r5]
- add r5, r5, #2
- sub r4, r4, #1
- bne _0222756E
- ldr r6, _022275BC ; =0x0222C6E0
- add r5, sp, #0
- mov r4, #0xc
-_02227580:
- ldrh r3, [r6]
- add r6, r6, #2
- strh r3, [r5]
- add r5, r5, #2
- sub r4, r4, #1
- bne _02227580
- cmp r1, #0
- beq _022275A4
- lsl r3, r0, #2
- add r0, sp, #0
- add r1, r0, r3
- ldrh r0, [r0, r3]
- add sp, #0x30
- strh r0, [r2]
- ldrh r0, [r1, #2]
- strh r0, [r2, #2]
- pop {r3, r4, r5, r6}
- bx lr
-_022275A4:
- lsl r3, r0, #2
- add r0, sp, #0x18
- add r1, r0, r3
- ldrh r0, [r0, r3]
- strh r0, [r2]
- ldrh r0, [r1, #2]
- strh r0, [r2, #2]
- add sp, #0x30
- pop {r3, r4, r5, r6}
- bx lr
- .align 2, 0
-_022275B8: .word 0x0222C6C8
-_022275BC: .word 0x0222C6E0
-
- thumb_func_start MOD08_022275C0
-MOD08_022275C0: ; 0x022275C0
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r4, r2, #0
- bl MOD08_02227468
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212004
- add r1, r0, #0
- add r0, r6, #0
- add r2, r4, #0
- bl MOD08_02227564
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022275E0
-MOD08_022275E0: ; 0x022275E0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1fc
- sub sp, #0x1fc
- sub sp, #0x1fc
- sub sp, #0x1fc
- sub sp, #0x114
- add r7, r2, #0
- mov r2, #0x12
- str r3, [sp]
- ldr r6, _02227654 ; =0x0222C6F8
- add r5, r0, #0
- add r4, r1, #0
- add r3, sp, #4
- lsl r2, r2, #4
-_022275FC:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _022275FC
- cmp r7, #1
- bne _0222761E
- cmp r5, #0
- beq _02227612
- cmp r5, #1
- beq _02227616
- b _0222761A
-_02227612:
- mov r5, #6
- b _0222761E
-_02227616:
- mov r5, #7
- b _0222761E
-_0222761A:
- bl ErrorHandling
-_0222761E:
- mov r0, #0x12
- lsl r0, r0, #4
- add r1, sp, #4
- mul r0, r5
- add r0, r1, r0
- ldr r1, _02227658 ; =0x00000908
- add r1, sp
- ldr r1, [r1, #0x10]
- lsl r2, r1, #1
- ldr r1, [sp]
- add r2, r1, r2
- mov r1, #0xc
- add r3, r2, #0
- mul r3, r1
- add r1, r0, r3
- ldr r2, [r1, #8]
- ldr r1, [r1, #4]
- ldr r0, [r0, r3]
- str r0, [r4]
- str r1, [r4, #4]
- str r2, [r4, #8]
- add sp, #0x1fc
- add sp, #0x1fc
- add sp, #0x1fc
- add sp, #0x1fc
- add sp, #0x114
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02227654: .word 0x0222C6F8
-_02227658: .word 0x00000908
-
- thumb_func_start MOD08_0222765C
-MOD08_0222765C: ; 0x0222765C
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #0
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_0222766C
-MOD08_0222766C: ; 0x0222766C
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #1
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_0222767C
-MOD08_0222767C: ; 0x0222767C
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #2
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_0222768C
-MOD08_0222768C: ; 0x0222768C
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #3
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_0222769C
-MOD08_0222769C: ; 0x0222769C
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #4
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_022276AC
-MOD08_022276AC: ; 0x022276AC
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #5
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_022276BC
-MOD08_022276BC: ; 0x022276BC
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #6
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_022276CC
-MOD08_022276CC: ; 0x022276CC
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #7
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_022276DC
-MOD08_022276DC: ; 0x022276DC
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #8
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_022276EC
-MOD08_022276EC: ; 0x022276EC
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #9
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_022276FC
-MOD08_022276FC: ; 0x022276FC
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #0xa
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_0222770C
-MOD08_0222770C: ; 0x0222770C
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #0xb
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_0222771C
-MOD08_0222771C: ; 0x0222771C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_0222765C
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222774C
-MOD08_0222774C: ; 0x0222774C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_0222766C
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222777C
-MOD08_0222777C: ; 0x0222777C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_0222767C
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_022277AC
-MOD08_022277AC: ; 0x022277AC
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_0222768C
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_022277DC
-MOD08_022277DC: ; 0x022277DC
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_0222769C
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222780C
-MOD08_0222780C: ; 0x0222780C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_022276AC
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222783C
-MOD08_0222783C: ; 0x0222783C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_022276BC
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222786C
-MOD08_0222786C: ; 0x0222786C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_022276CC
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222789C
-MOD08_0222789C: ; 0x0222789C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_022276DC
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_022278CC
-MOD08_022278CC: ; 0x022278CC
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_022276EC
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_022278FC
-MOD08_022278FC: ; 0x022278FC
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_022276FC
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222792C
-MOD08_0222792C: ; 0x0222792C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_0222770C
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222795C
-MOD08_0222795C: ; 0x0222795C
- mov r2, #0
- ldr r1, _02227968 ; =0x000068D0
- str r2, [r0]
- str r1, [r0, #4]
- str r2, [r0, #8]
- bx lr
- .align 2, 0
-_02227968: .word 0x000068D0
-
- thumb_func_start MOD08_0222796C
-MOD08_0222796C: ; 0x0222796C
- push {r3, lr}
- bl MOD08_0222765C
- pop {r3, pc}
-
- thumb_func_start MOD08_02227974
-MOD08_02227974: ; 0x02227974
- push {r3, lr}
- add r3, r1, #0
- cmp r0, #0
- bne _02227984
- add r0, r3, #0
- bl FUN_02013428
- pop {r3, pc}
-_02227984:
- ldr r2, _02227990 ; =0x0222C6BC
- ldmia r2!, {r0, r1}
- stmia r3!, {r0, r1}
- ldr r0, [r2]
- str r0, [r3]
- pop {r3, pc}
- .align 2, 0
-_02227990: .word 0x0222C6BC
-
- thumb_func_start MOD08_02227994
-MOD08_02227994: ; 0x02227994
- push {r3, r4, r5, lr}
- add r5, r1, #0
- mov r1, #0
- mvn r1, r1
- add r4, r2, #0
- cmp r5, r1
- bne _022279A4
- mov r5, #0x1a
-_022279A4:
- mov r1, #0
- mvn r1, r1
- cmp r4, r1
- bne _022279AE
- mov r4, #5
-_022279AE:
- mov r1, #2
- bl MOD08_022155C4
- mov r1, #1
- add r2, r1, #0
- lsl r2, r0
- orr r2, r1
- ldr r0, _022279CC ; =0x04000050
- mov r1, #0
- add r3, r5, #0
- str r4, [sp]
- bl G2x_SetBlendAlpha_
- pop {r3, r4, r5, pc}
- nop
-_022279CC: .word 0x04000050
-
- thumb_func_start MOD08_022279D0
-MOD08_022279D0: ; 0x022279D0
- push {r3, r4, r5, lr}
- mov r0, #0
- add r4, r2, #0
- mvn r0, r0
- add r5, r1, #0
- cmp r4, r0
- bne _022279E0
- mov r4, #0x1a
-_022279E0:
- mov r0, #0
- mvn r0, r0
- cmp r3, r0
- bne _022279EA
- mov r3, #5
-_022279EA:
- ldr r0, _022279FC ; =0x04000050
- str r3, [sp]
- mov r1, #0
- add r2, r5, #0
- add r3, r4, #0
- bl G2x_SetBlendAlpha_
- pop {r3, r4, r5, pc}
- nop
-_022279FC: .word 0x04000050
-
- thumb_func_start MOD08_02227A00
-MOD08_02227A00: ; 0x02227A00
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- mov r0, #0
- add r5, r1, #0
- mvn r0, r0
- add r4, r2, #0
- cmp r5, r0
- bne _02227A12
- mov r5, #0x1a
-_02227A12:
- mov r0, #0
- mvn r0, r0
- cmp r4, r0
- bne _02227A1C
- mov r4, #5
-_02227A1C:
- add r0, r6, #0
- mov r1, #2
- bl MOD08_022155C4
- mov r1, #1
- add r2, r1, #0
- lsl r2, r0
- mov r0, #0x11
- add r7, r2, #0
- orr r7, r0
- add r0, r6, #0
- bl MOD08_022155C4
- mov r1, #1
- lsl r1, r0
- ldr r0, _02227A48 ; =0x04000050
- add r2, r7, #0
- add r3, r5, #0
- str r4, [sp]
- bl G2x_SetBlendAlpha_
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02227A48: .word 0x04000050
-
- thumb_func_start MOD08_02227A4C
-MOD08_02227A4C: ; 0x02227A4C
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r4, r2, #0
- cmp r1, #0
- bne _02227AA0
- mov r1, #1
- bl MOD08_022155C4
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #2
- bl MOD08_022155C4
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #0
- bl MOD08_022155C4
- add r2, r0, #0
- mov r0, #1
- add r3, r0, #0
- add r1, r0, #0
- lsl r3, r7
- lsl r0, r2
- lsl r1, r6
- orr r0, r3
- orr r1, r0
- mov r0, #0x11
- add r2, r1, #0
- orr r2, r0
- ldr r0, _02227B20 ; =0x04000048
- ldrh r1, [r0]
- mov r0, #0x3f
- bic r1, r0
- orr r1, r2
- cmp r4, #0
- beq _02227A9A
- mov r0, #0x20
- orr r1, r0
-_02227A9A:
- ldr r0, _02227B20 ; =0x04000048
- strh r1, [r0]
- b _02227AEA
-_02227AA0:
- mov r1, #1
- bl MOD08_022155C4
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #2
- bl MOD08_022155C4
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #0
- bl MOD08_022155C4
- add r2, r0, #0
- mov r0, #1
- add r3, r0, #0
- add r1, r0, #0
- lsl r0, r2
- lsl r3, r7
- lsl r1, r6
- orr r0, r3
- orr r1, r0
- ldr r2, _02227B20 ; =0x04000048
- add r3, r1, #0
- mov r0, #0x11
- orr r3, r0
- ldrh r1, [r2]
- ldr r0, _02227B24 ; =0xFFFFC0FF
- and r1, r0
- lsl r0, r3, #8
- orr r1, r0
- cmp r4, #0
- beq _02227AE6
- lsr r0, r2, #0xd
- orr r1, r0
-_02227AE6:
- ldr r0, _02227B20 ; =0x04000048
- strh r1, [r0]
-_02227AEA:
- add r0, r5, #0
- mov r1, #0
- bl MOD08_022155C4
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD08_022155C4
- mov r1, #1
- add r2, r1, #0
- lsl r1, r0
- lsl r2, r4
- orr r1, r2
- add r3, r1, #0
- ldr r1, _02227B28 ; =0x0400004A
- mov r0, #0x11
- orr r3, r0
- ldrh r2, [r1]
- mov r0, #0x3f
- bic r2, r0
- orr r2, r3
- mov r0, #0x20
- orr r0, r2
- strh r0, [r1]
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02227B20: .word 0x04000048
-_02227B24: .word 0xFFFFC0FF
-_02227B28: .word 0x0400004A
-
- thumb_func_start MOD08_02227B2C
-MOD08_02227B2C: ; 0x02227B2C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- cmp r5, #0
- bne _02227B3E
- mov r0, #0
- strh r0, [r4]
- strh r0, [r4, #2]
- pop {r3, r4, r5, pc}
-_02227B3E:
- bl FUN_02008268
- cmp r0, #0
- bne _02227B4E
- mov r0, #0
- strh r0, [r4]
- strh r0, [r4, #2]
- pop {r3, r4, r5, pc}
-_02227B4E:
- add r0, r5, #0
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4]
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #2]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02227B64
-MOD08_02227B64: ; 0x02227B64
- ldr r3, _02227B6C ; =FUN_0200C7A0
- add r2, r1, #2
- bx r3
- nop
-_02227B6C: .word FUN_0200C7A0
-
- thumb_func_start MOD08_02227B70
-MOD08_02227B70: ; 0x02227B70
- push {r3, r4, r5, lr}
- add r4, r1, #0
- mov r1, #0
- strb r1, [r4]
- strb r1, [r4, #1]
- strb r1, [r4, #2]
- add r5, r0, #0
- strb r1, [r4, #3]
- str r5, [r4, #4]
- bl MOD08_02212520
- str r0, [r4, #8]
- add r0, r5, #0
- bl MOD08_02212504
- str r0, [r4, #0xc]
- add r0, r5, #0
- bl MOD08_02212518
- str r0, [r4, #0x10]
- add r0, r5, #0
- bl MOD08_02212490
- str r0, [r4, #0x14]
- add r0, r5, #0
- bl MOD08_02215504
- str r0, [r4, #0x18]
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02227BAC
-MOD08_02227BAC: ; 0x02227BAC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r7, r1, #0
- add r4, r3, #0
- mov r1, #0
- str r1, [r4]
- mov r1, #0x40
- and r1, r7
- add r6, r0, #0
- add r5, r2, #0
- cmp r1, #0x40
- beq _02227BC6
- b _02227CE8
-_02227BC6:
- bl MOD08_02212458
- add r7, r0, #0
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_022154D4
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #8]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #8]
- cmp r0, #0
- beq _02227C08
- str r7, [r1, #0x10]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227C08:
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_022274C0
- str r0, [sp, #4]
- ldr r1, [sp, #4]
- add r0, r6, #0
- bl MOD08_022154D4
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #8]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- ldr r1, [r0, #8]
- cmp r1, #0
- beq _02227C50
- ldr r1, [sp, #4]
- str r1, [r0, #0x10]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227C50:
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_02215490
- bl MOD08_02227524
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_0222749C
- add r7, r0, #0
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_022154D4
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #8]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #8]
- cmp r0, #0
- beq _02227CA2
- str r7, [r1, #0x10]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227CA2:
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_022274C0
- add r7, r0, #0
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_022154D4
- ldr r2, [r4]
- mov r1, #0x14
- add r3, r2, #0
- mul r3, r1
- add r2, r5, r3
- str r0, [r2, #8]
- ldr r0, [r4]
- add r2, r0, #0
- mul r2, r1
- add r2, r5, r2
- ldr r0, [r2, #8]
- cmp r0, #0
- beq _02227DCA
- str r7, [r2, #0x10]
- ldr r0, [r4]
- mul r1, r0
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add sp, #0x10
- add r0, r0, #1
- str r0, [r4]
- pop {r3, r4, r5, r6, r7, pc}
-_02227CE8:
- mov r1, #0x20
- and r1, r7
- cmp r1, #0x20
- bne _02227DE8
- bl MOD08_02212458
- add r7, r0, #0
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_022274C0
- str r0, [sp, #8]
- cmp r0, r7
- beq _02227D42
- ldr r1, [sp, #8]
- add r0, r6, #0
- bl MOD08_022154D4
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #8]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- ldr r1, [r0, #8]
- cmp r1, #0
- beq _02227D42
- ldr r1, [sp, #8]
- str r1, [r0, #0x10]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227D42:
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_02215490
- bl MOD08_02227524
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_0222749C
- str r0, [sp]
- cmp r0, r7
- beq _02227D9A
- ldr r1, [sp]
- add r0, r6, #0
- bl MOD08_022154D4
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #8]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- ldr r1, [r0, #8]
- cmp r1, #0
- beq _02227D9A
- ldr r1, [sp]
- str r1, [r0, #0x10]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227D9A:
- ldr r1, [sp]
- add r0, r6, #0
- bl MOD08_022274C0
- str r0, [sp, #0xc]
- cmp r0, r7
- beq _02227DCA
- ldr r1, [sp, #0xc]
- add r0, r6, #0
- bl MOD08_022154D4
- ldr r2, [r4]
- mov r1, #0x14
- add r3, r2, #0
- mul r3, r1
- add r2, r5, r3
- str r0, [r2, #8]
- ldr r0, [r4]
- add r2, r0, #0
- mul r2, r1
- add r2, r5, r2
- ldr r0, [r2, #8]
- cmp r0, #0
- bne _02227DCC
-_02227DCA:
- b _02227F82
-_02227DCC:
- ldr r0, [sp, #0xc]
- str r0, [r2, #0x10]
- ldr r0, [r4]
- mul r1, r0
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add sp, #0x10
- add r0, r0, #1
- str r0, [r4]
- pop {r3, r4, r5, r6, r7, pc}
-_02227DE8:
- mov r1, #2
- and r1, r7
- cmp r1, #2
- bne _02227E42
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022154D4
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #8]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- ldr r0, [r0, #8]
- cmp r0, #0
- beq _02227E42
- add r0, r6, #0
- bl MOD08_02212458
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #0x10]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227E42:
- add r0, r6, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _02227EB8
- mov r0, #4
- and r0, r7
- cmp r0, #4
- bne _02227EB8
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022274C0
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022154D4
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #8]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- ldr r0, [r0, #8]
- cmp r0, #0
- beq _02227EB8
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022274C0
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #0x10]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227EB8:
- mov r0, #8
- and r0, r7
- cmp r0, #8
- bne _02227F14
- add r0, r6, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022154D4
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #8]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- ldr r0, [r0, #8]
- cmp r0, #0
- beq _02227F14
- add r0, r6, #0
- bl MOD08_02212460
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #0x10]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227F14:
- add r0, r6, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _02227F82
- mov r0, #0x10
- and r0, r7
- cmp r0, #0x10
- bne _02227F82
- add r0, r6, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022274C0
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022154D4
- ldr r2, [r4]
- mov r1, #0x14
- add r3, r2, #0
- mul r3, r1
- add r2, r5, r3
- str r0, [r2, #8]
- ldr r0, [r4]
- mul r1, r0
- add r0, r5, r1
- ldr r0, [r0, #8]
- cmp r0, #0
- beq _02227F82
- add r0, r6, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022274C0
- ldr r2, [r4]
- mov r1, #0x14
- add r3, r2, #0
- mul r3, r1
- add r2, r5, r3
- str r0, [r2, #0x10]
- ldr r0, [r4]
- mul r1, r0
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227F82:
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02227F88
-MOD08_02227F88: ; 0x02227F88
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r4, r3, #0
- mov r1, #0
- str r1, [r4]
- mov r1, #2
- and r1, r6
- add r7, r0, #0
- add r5, r2, #0
- cmp r1, #2
- bne _02227FC8
- ldr r1, [r4]
- bl MOD08_022124D8
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #0xc]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #0xc]
- add r1, r1, #4
- bl MOD08_02227B64
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227FC8:
- mov r0, #4
- and r0, r6
- cmp r0, #4
- bne _02227FFC
- ldr r1, [r4]
- add r0, r7, #0
- bl MOD08_022124D8
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #0xc]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #0xc]
- add r1, r1, #4
- bl MOD08_02227B64
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227FFC:
- mov r0, #8
- and r0, r6
- cmp r0, #8
- bne _02228030
- ldr r1, [r4]
- add r0, r7, #0
- bl MOD08_022124D8
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #0xc]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #0xc]
- add r1, r1, #4
- bl MOD08_02227B64
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02228030:
- mov r0, #0x10
- and r0, r6
- cmp r0, #0x10
- bne _02228060
- ldr r1, [r4]
- add r0, r7, #0
- bl MOD08_022124D8
- ldr r2, [r4]
- mov r1, #0x14
- add r3, r2, #0
- mul r3, r1
- add r2, r5, r3
- str r0, [r2, #0xc]
- ldr r0, [r4]
- mul r1, r0
- add r1, r5, r1
- ldr r0, [r1, #0xc]
- add r1, r1, #4
- bl MOD08_02227B64
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02228060:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02228064
-MOD08_02228064: ; 0x02228064
- push {r3, r4, r5, lr}
- add r4, r0, #0
- add r5, r1, #0
- cmp r4, #0
- bne _02228072
- bl ErrorHandling
-_02228072:
- add r0, r4, #0
- bl MOD08_02212014
- add r1, r5, #0
- bl AllocFromHeap
- add r4, r0, #0
- bne _02228086
- bl ErrorHandling
-_02228086:
- add r0, r4, #0
- mov r1, #0
- add r2, r5, #0
- bl memset
- add r0, r4, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02228094
-MOD08_02228094: ; 0x02228094
- push {r4, lr}
- add r4, r0, #0
- bne _0222809E
- bl ErrorHandling
-_0222809E:
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022280A8
-MOD08_022280A8: ; 0x022280A8
- cmp r0, #1
- blt _022280B2
- ldr r1, _022280C0 ; =0x00000113
- cmp r0, r1
- ble _022280B6
-_022280B2:
- mov r0, #4
- b _022280BC
-_022280B6:
- cmp r0, #0xff
- blt _022280BC
- sub r0, #0xff
-_022280BC:
- sub r0, r0, #1
- bx lr
- .align 2, 0
-_022280C0: .word 0x00000113
-
- thumb_func_start MOD08_022280C4
-MOD08_022280C4: ; 0x022280C4
- push {r3, r4, r5}
- sub sp, #0x2c
- ldr r5, _02228100 ; =0x0222D0A4
- add r2, r0, #0
- add r4, sp, #0
- mov r3, #5
-_022280D0:
- ldmia r5!, {r0, r1}
- stmia r4!, {r0, r1}
- sub r3, r3, #1
- bne _022280D0
- ldr r0, [r5]
- str r0, [r4]
- mov r0, #0
- add r3, r0, #0
- add r4, sp, #0
-_022280E2:
- ldr r1, [r4]
- cmp r2, r1
- bne _022280F0
- add sp, #0x2c
- mov r0, #1
- pop {r3, r4, r5}
- bx lr
-_022280F0:
- add r3, r3, #1
- add r4, r4, #4
- cmp r3, #0xb
- blo _022280E2
- add sp, #0x2c
- pop {r3, r4, r5}
- bx lr
- nop
-_02228100: .word 0x0222D0A4
-
- thumb_func_start MOD08_02228104
-MOD08_02228104: ; 0x02228104
- push {r4, r5}
- sub sp, #0x18
- ldr r3, _0222813C ; =0x0222D004
- add r2, sp, #0
- add r5, r0, #0
- add r4, r2, #0
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- mov r0, #0
- add r2, r0, #0
-_02228120:
- ldr r1, [r4]
- cmp r5, r1
- bne _0222812E
- add sp, #0x18
- mov r0, #1
- pop {r4, r5}
- bx lr
-_0222812E:
- add r2, r2, #1
- add r4, r4, #4
- cmp r2, #6
- blo _02228120
- add sp, #0x18
- pop {r4, r5}
- bx lr
- .align 2, 0
-_0222813C: .word 0x0222D004
-
- thumb_func_start MOD08_02228140
-MOD08_02228140: ; 0x02228140
- push {r3, r4, r5}
- sub sp, #0xc
- ldr r5, _02228174 ; =0x0222CFF8
- add r3, r0, #0
- ldmia r5!, {r0, r1}
- add r4, sp, #0
- add r2, r4, #0
- stmia r4!, {r0, r1}
- ldr r0, [r5]
- str r0, [r4]
- mov r0, #1
- mov r4, #0
-_02228158:
- ldr r1, [r2]
- cmp r3, r1
- bne _02228166
- add sp, #0xc
- mov r0, #0
- pop {r3, r4, r5}
- bx lr
-_02228166:
- add r4, r4, #1
- add r2, r2, #4
- cmp r4, #3
- blo _02228158
- add sp, #0xc
- pop {r3, r4, r5}
- bx lr
- .align 2, 0
-_02228174: .word 0x0222CFF8
-
- thumb_func_start MOD08_02228178
-MOD08_02228178: ; 0x02228178
- push {r3, lr}
- bl MOD08_022280A8
- lsl r1, r0, #3
- ldr r0, _02228188 ; =0x0222D208
- ldr r0, [r0, r1]
- pop {r3, pc}
- nop
-_02228188: .word 0x0222D208
-
- thumb_func_start MOD08_0222818C
-MOD08_0222818C: ; 0x0222818C
- push {r3, lr}
- bl MOD08_022280A8
- lsl r1, r0, #3
- ldr r0, _0222819C ; =0x0222D20C
- ldr r0, [r0, r1]
- pop {r3, pc}
- nop
-_0222819C: .word 0x0222D20C
-
- thumb_func_start MOD08_022281A0
-MOD08_022281A0: ; 0x022281A0
- push {r3, lr}
- bl MOD08_022280A8
- mov r1, #0xc
- mul r1, r0
- ldr r0, _022281B0 ; =0x0222D2A8
- ldr r0, [r0, r1]
- pop {r3, pc}
- .align 2, 0
-_022281B0: .word 0x0222D2A8
-
- thumb_func_start MOD08_022281B4
-MOD08_022281B4: ; 0x022281B4
- push {r3, lr}
- bl MOD08_022280A8
- mov r1, #0xc
- mul r1, r0
- ldr r0, _022281C4 ; =0x0222D2B0
- ldr r0, [r0, r1]
- pop {r3, pc}
- .align 2, 0
-_022281C4: .word 0x0222D2B0
-
- thumb_func_start MOD08_022281C8
-MOD08_022281C8: ; 0x022281C8
- push {r3, lr}
- bl MOD08_022280A8
- mov r1, #0xc
- mul r1, r0
- ldr r0, _022281D8 ; =0x0222D2AC
- ldr r0, [r0, r1]
- pop {r3, pc}
- .align 2, 0
-_022281D8: .word 0x0222D2AC
-
- thumb_func_start MOD08_022281DC
-MOD08_022281DC: ; 0x022281DC
- push {r4, lr}
- add r4, r1, #0
- bl MOD08_022280A8
- lsl r2, r0, #4
- ldr r0, _022281F0 ; =0x0222D398
- lsl r1, r4, #2
- add r0, r0, r2
- ldr r0, [r1, r0]
- pop {r4, pc}
- .align 2, 0
-_022281F0: .word 0x0222D398
-
- thumb_func_start MOD08_022281F4
-MOD08_022281F4: ; 0x022281F4
- push {r4, lr}
- mov r1, #0xb8
- add r4, r0, #0
- bl AllocFromHeap
- cmp r0, #0
- bne _0222820A
- bl ErrorHandling
- mov r0, #0
- pop {r4, pc}
-_0222820A:
- add r1, r0, #0
- str r4, [r0]
- mov r2, #0
- add r1, #0x88
- str r2, [r1]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02228218
-MOD08_02228218: ; 0x02228218
- push {r3, r4, r5, lr}
- add r5, r1, #0
- bl MOD08_022281F4
- add r1, r5, #0
- add r4, r0, #0
- bl MOD08_02228244
- mov r1, #0
- str r1, [r4, #0x10]
- add r2, r4, #0
- add r0, r1, #0
-_02228230:
- str r0, [r2, #0x14]
- str r0, [r2, #0x38]
- str r0, [r2, #0x5c]
- add r1, r1, #1
- add r2, r2, #4
- cmp r1, #9
- blt _02228230
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02228244
-MOD08_02228244: ; 0x02228244
- push {r4, lr}
- add r3, r1, #0
- add r4, r0, #0
- ldmia r3!, {r0, r1}
- add r2, r4, #4
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- mov r1, #0xa1
- str r0, [r2]
- ldr r0, [r4, #0xc]
- mov r2, #0
- bl GetMonData
- add r1, r4, #0
- add r1, #0x9c
- str r0, [r1]
- add r0, r4, #0
- add r0, #0x9c
- ldr r0, [r0]
- cmp r0, #0xd
- blt _02228272
- bl ErrorHandling
-_02228272:
- add r0, r4, #0
- add r0, #0x9c
- ldr r0, [r0]
- cmp r0, #0
- bne _0222829E
- add r0, r4, #0
- mov r2, #0
- add r0, #0x94
- str r2, [r0]
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _02228290
- add r4, #0x98
- str r0, [r4]
- pop {r4, pc}
-_02228290:
- ldr r0, [r4, #0xc]
- mov r1, #0x9a
- bl GetMonData
- add r4, #0x98
- str r0, [r4]
- pop {r4, pc}
-_0222829E:
- add r0, r4, #0
- mov r1, #1
- add r0, #0x94
- str r1, [r0]
- ldr r0, [r4, #0xc]
- add r4, #0xa0
- mov r1, #0xaa
- add r2, r4, #0
- bl GetMonData
- pop {r4, pc}
-
- thumb_func_start MOD08_022282B4
-MOD08_022282B4: ; 0x022282B4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r4, r1, #0
- str r0, [sp]
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- cmp r0, #3
- bls _022282C8
- b _02228520
-_022282C8:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022282D4: ; jump table
- .short _022282DC - _022282D4 - 2 ; case 0
- .short _02228376 - _022282D4 - 2 ; case 1
- .short _02228402 - _022282D4 - 2 ; case 2
- .short _0222848E - _022282D4 - 2 ; case 3
-_022282DC:
- ldr r1, [r4]
- mov r0, #0x63
- bl NARC_ctor
- add r1, r4, #0
- add r1, #0x8c
- str r0, [r1]
- add r0, r4, #0
- add r6, r4, #0
- str r0, [sp, #0x14]
- add r0, #0xa0
- mov r5, #0
- add r6, #0x10
- str r0, [sp, #0x14]
-_022282F8:
- ldr r0, [sp, #0x14]
- add r1, r5, #0
- bl FUN_02029CC8
- add r7, r0, #0
- beq _02228360
- bl FUN_02029CE0
- cmp r0, #0
- beq _02228360
- cmp r0, #0x51
- bge _02228360
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_02085FF4
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- str r7, [r0, #0x38]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r0, [r0, #0x14]
- cmp r0, #0
- beq _02228332
- bl ErrorHandling
-_02228332:
- add r0, r4, #0
- add r0, #0x8c
- ldr r0, [r0]
- ldr r1, [r4]
- ldr r2, [sp, #0x10]
- mov r3, #0
- bl MOD08_02215B00
- ldr r1, [r4, #0x10]
- lsl r1, r1, #2
- add r1, r4, r1
- str r0, [r1, #0x14]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r0, [r0, #0x14]
- cmp r0, #0
- bne _0222835A
- bl ErrorHandling
-_0222835A:
- ldr r0, [r6]
- add r0, r0, #1
- str r0, [r6]
-_02228360:
- add r5, r5, #1
- cmp r5, #2
- blt _022282F8
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- add r4, #0x90
- add r0, r0, #1
- add sp, #0x24
- str r0, [r4]
- pop {r4, r5, r6, r7, pc}
-_02228376:
- add r0, r4, #0
- add r6, r4, #0
- str r0, [sp, #0x18]
- add r0, #0xa0
- mov r5, #2
- add r6, #0x10
- str r0, [sp, #0x18]
-_02228384:
- ldr r0, [sp, #0x18]
- add r1, r5, #0
- bl FUN_02029CC8
- add r7, r0, #0
- beq _022283EC
- bl FUN_02029CE0
- cmp r0, #0
- beq _022283EC
- cmp r0, #0x51
- bge _022283EC
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_02085FF4
- str r0, [sp, #4]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- str r7, [r0, #0x38]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r0, [r0, #0x14]
- cmp r0, #0
- beq _022283BE
- bl ErrorHandling
-_022283BE:
- add r0, r4, #0
- add r0, #0x8c
- ldr r0, [r0]
- ldr r1, [r4]
- ldr r2, [sp, #4]
- mov r3, #0
- bl MOD08_02215B00
- ldr r1, [r4, #0x10]
- lsl r1, r1, #2
- add r1, r4, r1
- str r0, [r1, #0x14]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r0, [r0, #0x14]
- cmp r0, #0
- bne _022283E6
- bl ErrorHandling
-_022283E6:
- ldr r0, [r6]
- add r0, r0, #1
- str r0, [r6]
-_022283EC:
- add r5, r5, #1
- cmp r5, #4
- blt _02228384
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- add r4, #0x90
- add r0, r0, #1
- add sp, #0x24
- str r0, [r4]
- pop {r4, r5, r6, r7, pc}
-_02228402:
- add r0, r4, #0
- add r6, r4, #0
- str r0, [sp, #0x1c]
- add r0, #0xa0
- mov r5, #4
- add r6, #0x10
- str r0, [sp, #0x1c]
-_02228410:
- ldr r0, [sp, #0x1c]
- add r1, r5, #0
- bl FUN_02029CC8
- add r7, r0, #0
- beq _02228478
- bl FUN_02029CE0
- cmp r0, #0
- beq _02228478
- cmp r0, #0x51
- bge _02228478
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_02085FF4
- str r0, [sp, #8]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- str r7, [r0, #0x38]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r0, [r0, #0x14]
- cmp r0, #0
- beq _0222844A
- bl ErrorHandling
-_0222844A:
- add r0, r4, #0
- add r0, #0x8c
- ldr r0, [r0]
- ldr r1, [r4]
- ldr r2, [sp, #8]
- mov r3, #0
- bl MOD08_02215B00
- ldr r1, [r4, #0x10]
- lsl r1, r1, #2
- add r1, r4, r1
- str r0, [r1, #0x14]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r0, [r0, #0x14]
- cmp r0, #0
- bne _02228472
- bl ErrorHandling
-_02228472:
- ldr r0, [r6]
- add r0, r0, #1
- str r0, [r6]
-_02228478:
- add r5, r5, #1
- cmp r5, #6
- blt _02228410
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- add r4, #0x90
- add r0, r0, #1
- add sp, #0x24
- str r0, [r4]
- pop {r4, r5, r6, r7, pc}
-_0222848E:
- add r0, r4, #0
- add r6, r4, #0
- str r0, [sp, #0x20]
- add r0, #0xa0
- mov r5, #6
- add r6, #0x10
- str r0, [sp, #0x20]
-_0222849C:
- ldr r0, [sp, #0x20]
- add r1, r5, #0
- bl FUN_02029CC8
- add r7, r0, #0
- beq _02228504
- bl FUN_02029CE0
- cmp r0, #0
- beq _02228504
- cmp r0, #0x51
- bge _02228504
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_02085FF4
- str r0, [sp, #0xc]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- str r7, [r0, #0x38]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r0, [r0, #0x14]
- cmp r0, #0
- beq _022284D6
- bl ErrorHandling
-_022284D6:
- add r0, r4, #0
- add r0, #0x8c
- ldr r0, [r0]
- ldr r1, [r4]
- ldr r2, [sp, #0xc]
- mov r3, #0
- bl MOD08_02215B00
- ldr r1, [r4, #0x10]
- lsl r1, r1, #2
- add r1, r4, r1
- str r0, [r1, #0x14]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r0, [r0, #0x14]
- cmp r0, #0
- bne _022284FE
- bl ErrorHandling
-_022284FE:
- ldr r0, [r6]
- add r0, r0, #1
- str r0, [r6]
-_02228504:
- add r5, r5, #1
- cmp r5, #8
- blt _0222849C
- add r0, r4, #0
- mov r1, #0xff
- add r0, #0x90
- add r4, #0x8c
- str r1, [r0]
- ldr r0, [r4]
- bl NARC_dtor
- ldr r0, [sp]
- bl FUN_0200CAB4
-_02228520:
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02228524
-MOD08_02228524: ; 0x02228524
- push {r4, lr}
- add r4, r0, #0
- add r0, #0x94
- ldr r0, [r0]
- cmp r0, #0
- bne _0222854E
- add r0, r4, #0
- add r0, #0x98
- ldr r0, [r0]
- bl MOD08_02228178
- add r2, r0, #0
- mov r0, #1
- str r0, [r4, #0x10]
- ldr r0, [r4]
- mov r1, #0x63
- mov r3, #0
- bl MOD08_02215ACC
- str r0, [r4, #0x14]
- pop {r4, pc}
-_0222854E:
- mov r1, #0
- add r0, r4, #0
- mov r2, #0xfa
- str r1, [r4, #0x10]
- add r0, #0x90
- str r1, [r0]
- ldr r0, _0222856C ; =MOD08_022282B4
- add r1, r4, #0
- lsl r2, r2, #2
- bl FUN_0200CA44
- add r1, r4, #0
- bl MOD08_022282B4
- pop {r4, pc}
- .align 2, 0
-_0222856C: .word MOD08_022282B4
-
- thumb_func_start MOD08_02228570
-MOD08_02228570: ; 0x02228570
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_02228574
-MOD08_02228574: ; 0x02228574
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- mov r1, #1
- add r0, #0x88
- str r1, [r0]
- bl MOD08_0221268C
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_0222865C
- mov r2, #0xfa
- ldr r0, _022285A0 ; =MOD08_022285BC
- add r1, r5, #0
- lsl r2, r2, #2
- bl FUN_0200CA44
- add r5, #0x84
- str r0, [r5]
- pop {r3, r4, r5, pc}
- nop
-_022285A0: .word MOD08_022285BC
-
- thumb_func_start MOD08_022285A4
-MOD08_022285A4: ; 0x022285A4
- ldr r3, _022285AC ; =MOD08_02228574
- ldr r1, _022285B0 ; =MOD08_02228788
- bx r3
- nop
-_022285AC: .word MOD08_02228574
-_022285B0: .word MOD08_02228788
-
- thumb_func_start MOD08_022285B4
-MOD08_022285B4: ; 0x022285B4
- add r0, #0x88
- ldr r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022285BC
-MOD08_022285BC: ; 0x022285BC
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- str r0, [sp]
- ldr r0, [r6, #0x10]
- mov r7, #0
- cmp r0, #9
- ble _022285CE
- bl ErrorHandling
-_022285CE:
- ldr r0, [r6, #0x10]
- mov r4, #0
- cmp r0, #0
- ble _02228606
- add r5, r6, #0
-_022285D8:
- ldr r0, [r5, #0x14]
- cmp r0, #0
- beq _022285FC
- bl FUN_020133C8
- cmp r0, #0
- bne _022285FA
- ldr r0, [r5, #0x5c]
- cmp r0, #0
- beq _022285FA
- ldr r0, [r5, #0x14]
- bl MOD08_02215B40
- mov r0, #0
- str r0, [r5, #0x14]
- str r0, [r5, #0x5c]
- b _022285FC
-_022285FA:
- mov r7, #1
-_022285FC:
- ldr r0, [r6, #0x10]
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, r0
- blt _022285D8
-_02228606:
- cmp r7, #0
- bne _02228616
- mov r0, #0
- add r6, #0x88
- str r0, [r6]
- ldr r0, [sp]
- bl FUN_0200CAB4
-_02228616:
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02228618
-MOD08_02228618: ; 0x02228618
- ldr r3, _0222861C ; =FreeToHeap
- bx r3
- .align 2, 0
-_0222861C: .word FreeToHeap
-
- thumb_func_start MOD08_02228620
-MOD08_02228620: ; 0x02228620
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #0
- bne _02228654
- ldr r0, [r4, #0xc]
- mov r1, #1
- str r1, [r0]
- ldr r0, [r4, #0x10]
- ldr r2, [r4, #0x18]
- mov r1, #0
- add r3, r4, #0
- bl FUN_020133AC
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_02013440
- add r0, r5, #0
- bl FUN_0200CAB4
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
-_02228654:
- sub r0, r0, #1
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222865C
-MOD08_0222865C: ; 0x0222865C
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- add r0, #0x94
- ldr r0, [r0]
- add r7, r1, #0
- cmp r0, #0
- bne _0222869A
- add r0, r6, #0
- add r0, #0x98
- ldr r0, [r0]
- bl MOD08_0222818C
- add r5, r0, #0
- mov r4, #0
- cmp r5, #0
- ble _0222868E
-_0222867C:
- ldr r0, [r6, #0x14]
- add r1, r4, #0
- add r2, r7, #0
- add r3, r6, #0
- bl FUN_020133AC
- add r4, r4, #1
- cmp r4, r5
- blt _0222867C
-_0222868E:
- mov r1, #1
- str r1, [r6, #0x5c]
- ldr r0, [r6, #0x14]
- bl FUN_02013440
- pop {r3, r4, r5, r6, r7, pc}
-_0222869A:
- ldr r0, [r6, #0x10]
- mov r7, #0
- cmp r0, #0
- ble _02228700
- add r0, r6, #0
- str r0, [sp]
- add r0, #0x5c
- add r5, r6, #0
- str r0, [sp]
-_022286AC:
- ldr r0, [r6]
- mov r1, #0x1c
- bl AllocFromHeap
- add r4, r0, #0
- bne _022286BC
- bl ErrorHandling
-_022286BC:
- str r7, [r4]
- ldr r0, [r6, #4]
- str r0, [r4, #8]
- ldr r0, _02228704 ; =MOD08_022287C4
- str r0, [r4, #0x18]
- mov r0, #0
- str r0, [r5, #0x5c]
- ldr r0, [sp]
- str r0, [r4, #0xc]
- ldr r0, [r5, #0x14]
- str r0, [r4, #0x10]
- ldr r0, [r5, #0x38]
- str r0, [r4, #0x14]
- cmp r0, #0
- bne _022286DE
- bl ErrorHandling
-_022286DE:
- ldr r0, [r4, #0x14]
- bl MOD08_0222A078
- str r0, [r4, #4]
- ldr r0, _02228708 ; =MOD08_02228620
- ldr r2, _0222870C ; =0x000003E9
- add r1, r4, #0
- bl FUN_0200CA44
- ldr r0, [sp]
- add r7, r7, #1
- add r0, r0, #4
- str r0, [sp]
- ldr r0, [r6, #0x10]
- add r5, r5, #4
- cmp r7, r0
- blt _022286AC
-_02228700:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02228704: .word MOD08_022287C4
-_02228708: .word MOD08_02228620
-_0222870C: .word 0x000003E9
-
- thumb_func_start MOD08_02228710
-MOD08_02228710: ; 0x02228710
- push {r3, r4, r5, lr}
- mov r2, #0
- mov r3, #1
- add r5, r0, #0
- add r4, r1, #0
- bl MOD08_0222796C
- cmp r5, #5
- bhi _02228766
- add r0, r5, r5
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222872E: ; jump table
- .short _0222873A - _0222872E - 2 ; case 0
- .short _02228742 - _0222872E - 2 ; case 1
- .short _0222874C - _0222872E - 2 ; case 2
- .short _02228754 - _0222872E - 2 ; case 3
- .short _0222875E - _0222872E - 2 ; case 4
- .short _02228766 - _0222872E - 2 ; case 5
-_0222873A:
- mov r5, #0
- add r0, r5, #0
- sub r0, #0x10
- b _0222876E
-_02228742:
- mov r5, #0xe
- mvn r5, r5
- add r0, r5, #0
- sub r0, #0xa
- b _0222876E
-_0222874C:
- mov r5, #7
- mvn r5, r5
- sub r0, r5, #4
- b _0222876E
-_02228754:
- mov r5, #0xd
- mvn r5, r5
- add r0, r5, #0
- sub r0, #0xb
- b _0222876E
-_0222875E:
- mov r5, #7
- mvn r5, r5
- sub r0, r5, #4
- b _0222876E
-_02228766:
- mov r5, #0xf
- mvn r5, r5
- add r0, r5, #0
- sub r0, #0xd
-_0222876E:
- add r5, #0xa
- ldr r3, [r4]
- mov r1, #0xac
- add r2, r5, #0
- mul r2, r1
- sub r2, r3, r2
- str r2, [r4]
- add r0, #0x20
- ldr r2, [r4, #4]
- mul r1, r0
- sub r0, r2, r1
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02228788
-MOD08_02228788: ; 0x02228788
- push {r3, r4, lr}
- sub sp, #0xc
- add r4, r0, #0
- bl FUN_0201341C
- ldr r0, [r0, #4]
- add r1, sp, #0
- bl MOD08_02228710
- ldr r0, [r4, #0x20]
- ldr r1, [sp]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r1, r0
- str r0, [r4, #0x28]
- ldr r0, [r4, #0x20]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r4, #0x2c]
- ldr r0, [r4, #0x20]
- ldr r1, [sp, #8]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r4, #0x30]
- add sp, #0xc
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022287C4
-MOD08_022287C4: ; 0x022287C4
- push {r3, r4, r5, r6, lr}
- sub sp, #0xc
- add r5, r0, #0
- bl FUN_0201341C
- add r4, r0, #0
- ldr r0, [r4, #8]
- add r1, sp, #0
- bl MOD08_02228710
- ldr r0, [r4, #0x14]
- bl FUN_02029CE0
- bl FUN_02086018
- ldr r0, [r4, #0x14]
- bl FUN_02029CE4
- add r6, r0, #0
- ldr r0, [r4, #0x14]
- bl FUN_02029CE8
- sub r6, #0xbe
- lsl r1, r6, #0x10
- asr r3, r1, #0x10
- ldr r2, [sp]
- mov r1, #0xac
- add r4, r3, #0
- mul r4, r1
- add r3, r2, r4
- mov r4, #0x64
- sub r0, r4, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- ldr r2, [sp, #4]
- mul r1, r0
- add r0, r2, r1
- str r3, [sp]
- str r0, [sp, #4]
- ldr r0, [r5, #0x20]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r3, r0
- str r0, [r5, #0x28]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r5, #0x2c]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #8]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r5, #0x30]
- add sp, #0xc
- pop {r3, r4, r5, r6, pc}
-
- thumb_func_start MOD08_02228838
-MOD08_02228838: ; 0x02228838
- push {r4, lr}
- add r4, r0, #0
- bl FUN_0201341C
- mov r1, #2
- ldrsh r2, [r0, r1]
- mov r1, #0x64
- mov r3, #0xac
- sub r1, r1, r2
- lsl r1, r1, #0x10
- asr r2, r1, #0x10
- add r1, r2, #0
- mov r2, #0
- ldrsh r0, [r0, r2]
- mul r1, r3
- sub r0, #0x81
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add r2, r0, #0
- ldr r0, [r4, #0x20]
- mul r2, r3
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r2, r0
- str r0, [r4, #0x28]
- ldr r0, [r4, #0x20]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r4, #0x2c]
- ldr r0, [r4, #0x20]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- str r0, [r4, #0x30]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02228880
-MOD08_02228880: ; 0x02228880
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #8]
- mov r1, #0x24
- bl AllocFromHeap
- add r4, r0, #0
- bne _02228894
- bl ErrorHandling
-_02228894:
- ldmia r5!, {r0, r1}
- add r2, r4, #0
- stmia r2!, {r0, r1}
- ldmia r5!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r0, [r5]
- str r0, [r2]
- ldr r0, [r4, #0x10]
- cmp r0, #0
- beq _022288B8
- ldr r0, _022288DC ; =0x00000113
- bl MOD08_022281A0
- str r0, [r4, #0x20]
- ldr r0, _022288DC ; =0x00000113
- bl MOD08_022281B4
- b _022288C6
-_022288B8:
- ldr r0, [r4, #4]
- bl MOD08_022281A0
- str r0, [r4, #0x20]
- ldr r0, [r4, #4]
- bl MOD08_022281B4
-_022288C6:
- str r0, [r4, #0x1c]
- ldr r0, [r4, #8]
- ldr r2, [r4, #0x20]
- mov r1, #0x63
- mov r3, #0
- bl MOD08_02215ACC
- str r0, [r4, #0x18]
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- nop
-_022288DC: .word 0x00000113
-
- thumb_func_start MOD08_022288E0
-MOD08_022288E0: ; 0x022288E0
- push {r4, r5, r6, lr}
- add r5, r0, #0
- ldr r1, [r5, #0xc]
- cmp r1, #0xff
- bne _0222893A
- ldr r0, [r5, #0x10]
- cmp r0, #0
- beq _02228910
- ldr r0, [r5, #0x1c]
- mov r4, #0
- cmp r0, #0
- ble _02228944
- ldr r6, _02228950 ; =MOD08_02228838
-_022288FA:
- ldr r0, [r5, #0x18]
- add r1, r4, #0
- add r2, r6, #0
- add r3, r5, #0
- bl FUN_020133AC
- ldr r0, [r5, #0x1c]
- add r4, r4, #1
- cmp r4, r0
- blt _022288FA
- b _02228944
-_02228910:
- ldr r0, [r5, #0x1c]
- mov r4, #0
- cmp r0, #0
- ble _02228944
- ldr r6, _02228950 ; =MOD08_02228838
-_0222891A:
- ldr r0, [r5, #4]
- bl MOD08_022281C8
- cmp r4, r0
- beq _02228930
- ldr r0, [r5, #0x18]
- add r1, r4, #0
- add r2, r6, #0
- add r3, r5, #0
- bl FUN_020133AC
-_02228930:
- ldr r0, [r5, #0x1c]
- add r4, r4, #1
- cmp r4, r0
- blt _0222891A
- b _02228944
-_0222893A:
- ldr r0, [r5, #0x18]
- ldr r2, _02228950 ; =MOD08_02228838
- add r3, r5, #0
- bl FUN_020133AC
-_02228944:
- ldr r0, [r5, #0x18]
- mov r1, #1
- bl FUN_02013440
- pop {r4, r5, r6, pc}
- nop
-_02228950: .word MOD08_02228838
-
- thumb_func_start MOD08_02228954
-MOD08_02228954: ; 0x02228954
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x18]
- bl FUN_020133C8
- cmp r0, #0
- bne _0222896C
- ldr r0, [r4, #0x18]
- bl MOD08_02215B40
- mov r0, #0
- pop {r4, pc}
-_0222896C:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_02228970
-MOD08_02228970: ; 0x02228970
- ldr r3, _02228974 ; =FreeToHeap
- bx r3
- .align 2, 0
-_02228974: .word FreeToHeap
-
- thumb_func_start MOD08_02228978
-MOD08_02228978: ; 0x02228978
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #4]
- cmp r1, #0
- bne _0222898C
- add r1, r1, #1
- str r1, [r4, #4]
- mov r1, #1
- bl MOD08_02229A18
-_0222898C:
- add r0, r4, #0
- mov r1, #2
- bl MOD08_02229A1C
- cmp r0, #1
- bne _0222899C
- mov r0, #0
- pop {r4, pc}
-_0222899C:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_022289A0
-MOD08_022289A0: ; 0x022289A0
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #4]
- cmp r1, #0
- bne _022289B4
- add r1, r1, #1
- str r1, [r4, #4]
- mov r1, #3
- bl MOD08_02229A18
-_022289B4:
- add r0, r4, #0
- mov r1, #4
- bl MOD08_02229A1C
- cmp r0, #1
- bne _022289C4
- mov r0, #0
- pop {r4, pc}
-_022289C4:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_022289C8
-MOD08_022289C8: ; 0x022289C8
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #4]
- cmp r1, #0
- bne _022289DC
- add r1, r1, #1
- str r1, [r4, #4]
- mov r1, #5
- bl MOD08_02229A18
-_022289DC:
- add r0, r4, #0
- mov r1, #6
- bl MOD08_02229A1C
- cmp r0, #1
- bne _022289EC
- mov r0, #0
- pop {r4, pc}
-_022289EC:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_022289F0
-MOD08_022289F0: ; 0x022289F0
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #4]
- cmp r1, #0
- bne _02228A04
- add r1, r1, #1
- str r1, [r4, #4]
- mov r1, #7
- bl MOD08_02229A18
-_02228A04:
- add r0, r4, #0
- mov r1, #0xe
- bl MOD08_02229A1C
- cmp r0, #1
- bne _02228A14
- mov r0, #0
- pop {r4, pc}
-_02228A14:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_02228A18
-MOD08_02228A18: ; 0x02228A18
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #4]
- cmp r1, #0
- bne _02228A2C
- add r1, r1, #1
- str r1, [r4, #4]
- mov r1, #0xf
- bl MOD08_02229A18
-_02228A2C:
- add r0, r4, #0
- mov r1, #0x12
- bl MOD08_02229A1C
- cmp r0, #1
- bne _02228A3C
- mov r0, #0
- pop {r4, pc}
-_02228A3C:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_02228A40
-MOD08_02228A40: ; 0x02228A40
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #4]
- cmp r1, #0
- bne _02228A54
- add r1, r1, #1
- str r1, [r4, #4]
- mov r1, #0x13
- bl MOD08_02229A18
-_02228A54:
- add r0, r4, #0
- mov r1, #0x1b
- bl MOD08_02229A1C
- cmp r0, #1
- bne _02228A64
- mov r0, #0
- pop {r4, pc}
-_02228A64:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_02228A68
-MOD08_02228A68: ; 0x02228A68
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #4]
- cmp r1, #0
- bne _02228A7C
- add r1, r1, #1
- str r1, [r4, #4]
- mov r1, #0x15
- bl MOD08_02229A18
-_02228A7C:
- add r0, r4, #0
- mov r1, #0x16
- bl MOD08_02229A1C
- cmp r0, #1
- bne _02228A8C
- mov r0, #0
- pop {r4, pc}
-_02228A8C:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_02228A90
-MOD08_02228A90: ; 0x02228A90
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #4]
- cmp r1, #0
- bne _02228AA4
- add r1, r1, #1
- str r1, [r4, #4]
- mov r1, #0x17
- bl MOD08_02229A18
-_02228AA4:
- add r0, r4, #0
- mov r1, #0x1b
- bl MOD08_02229A1C
- cmp r0, #1
- bne _02228AB4
- mov r0, #0
- pop {r4, pc}
-_02228AB4:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_02228AB8
-MOD08_02228AB8: ; 0x02228AB8
- str r1, [r0]
- mov r1, #0
- str r1, [r0, #4]
- bx lr
-
- thumb_func_start MOD08_02228AC0
-MOD08_02228AC0: ; 0x02228AC0
- push {r3, lr}
- ldr r1, [r0]
- lsl r2, r1, #2
- ldr r1, _02228AD0 ; =0x0222D034
- ldr r1, [r1, r2]
- blx r1
- pop {r3, pc}
- nop
-_02228AD0: .word 0x0222D034
-
- thumb_func_start MOD08_02228AD4
-MOD08_02228AD4: ; 0x02228AD4
- str r1, [r0, #0x14]
- mov r1, #0
- str r1, [r0, #8]
- str r1, [r0, #0xc]
- str r1, [r0, #0x10]
- bx lr
-
- thumb_func_start MOD08_02228AE0
-MOD08_02228AE0: ; 0x02228AE0
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_02228AE4
-MOD08_02228AE4: ; 0x02228AE4
- push {r4, lr}
- add r4, r0, #0
- bl MOD08_02229114
- cmp r0, #0
- bne _02228AF8
- add r0, r4, #0
- mov r1, #2
- bl MOD08_02228AD4
-_02228AF8:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_02228AFC
-MOD08_02228AFC: ; 0x02228AFC
- push {r3, lr}
- mov r1, #3
- bl MOD08_02228AD4
- mov r0, #1
- pop {r3, pc}
-
- thumb_func_start MOD08_02228B08
-MOD08_02228B08: ; 0x02228B08
- push {r3, r4, lr}
- sub sp, #0x14
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #3
- bhi _02228BD8
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02228B20: ; jump table
- .short _02228B28 - _02228B20 - 2 ; case 0
- .short _02228B7E - _02228B20 - 2 ; case 1
- .short _02228B94 - _02228B20 - 2 ; case 2
- .short _02228BB0 - _02228B20 - 2 ; case 3
-_02228B28:
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_0200C5C0
- add r0, r4, #0
- add r0, #0xa0
- ldr r0, [r0]
- add r2, sp, #0
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x94
- ldr r0, [r0]
- add r1, sp, #0
- str r0, [sp, #8]
- mov r0, #0xff
- str r0, [sp, #0xc]
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x30]
- add r2, #2
- bl FUN_0200C7A0
- add r0, r4, #0
- add r1, r4, #0
- add r0, #0xb4
- add r1, #0x94
- ldr r0, [r0]
- ldr r1, [r1]
- bl MOD08_0221590C
- add r1, r4, #0
- add r1, #0xd8
- str r0, [r1]
- add r0, sp, #0
- bl MOD08_02228880
- add r1, r4, #0
- add r1, #0xd0
- str r0, [r1]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228BE0
-_02228B7E:
- ldr r0, [r4, #0x30]
- bl FUN_0200C630
- cmp r0, #2
- blt _02228BE0
- mov r0, #0
- str r0, [r4, #0x24]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228BE0
-_02228B94:
- add r0, r4, #0
- add r0, #0xd0
- ldr r0, [r0]
- bl MOD08_022288E0
- add r0, r4, #0
- add r0, #0xd8
- ldr r0, [r0]
- bl MOD08_02215918
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228BE0
-_02228BB0:
- add r0, r4, #0
- add r0, #0xd0
- ldr r0, [r0]
- bl MOD08_02228954
- cmp r0, #0
- bne _02228BE0
- ldr r0, [r4, #0x30]
- mov r1, #0
- bl FUN_0200C61C
- add r0, r4, #0
- add r0, #0xd0
- ldr r0, [r0]
- bl MOD08_02228970
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228BE0
-_02228BD8:
- add r0, r4, #0
- mov r1, #4
- bl MOD08_02228AD4
-_02228BE0:
- mov r0, #1
- add sp, #0x14
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02228BE8
-MOD08_02228BE8: ; 0x02228BE8
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_02228BEC
-MOD08_02228BEC: ; 0x02228BEC
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #0xc]
- cmp r1, #0
- bne _02228C2C
- add r1, r4, #0
- add r2, r4, #0
- ldr r0, [r4, #0x30]
- add r1, #0xb8
- add r2, #0xba
- bl FUN_0200C7A0
- add r0, r4, #0
- mov r1, #0x3c
- add r0, #0xbc
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0xb4
- add r0, #0xbe
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0xa
- add r0, #0xc0
- str r1, [r0]
- add r0, r4, #0
- mov r1, #0xc
- add r0, #0xc8
- str r1, [r0]
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02228C3C
-_02228C2C:
- bl MOD08_02229114
- cmp r0, #0
- bne _02228C3C
- add r0, r4, #0
- mov r1, #6
- bl MOD08_02228AD4
-_02228C3C:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_02228C40
-MOD08_02228C40: ; 0x02228C40
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_02228C44
-MOD08_02228C44: ; 0x02228C44
- push {r3, lr}
- mov r1, #8
- bl MOD08_02228AD4
- mov r0, #1
- pop {r3, pc}
-
- thumb_func_start MOD08_02228C50
-MOD08_02228C50: ; 0x02228C50
- push {r3, lr}
- mov r1, #9
- bl MOD08_02228AD4
- mov r0, #1
- pop {r3, pc}
-
- thumb_func_start MOD08_02228C5C
-MOD08_02228C5C: ; 0x02228C5C
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _02228C6E
- cmp r0, #1
- beq _02228CA2
- b _02228CE4
-_02228C6E:
- ldr r0, [r4, #0x30]
- bl FUN_0200C68C
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0xc
- str r0, [sp, #4]
- ldr r0, _02228D00 ; =0x0000037F
- mov r3, #1
- add r5, r3, #0
- str r0, [sp, #8]
- add r0, r4, #0
- lsl r5, r2
- add r0, #0xb0
- lsl r2, r5, #0x10
- ldr r0, [r0]
- mov r1, #4
- lsr r2, r2, #0x10
- sub r3, r3, #2
- bl FUN_02003210
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228CFA
-_02228CA2:
- add r0, r4, #0
- add r0, #0xb0
- ldr r0, [r0]
- bl FUN_020038E4
- cmp r0, #0
- bne _02228CFA
- ldr r0, [r4, #0x30]
- bl FUN_0200C68C
- add r2, r0, #0
- mov r0, #0xc
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- ldr r0, _02228D00 ; =0x0000037F
- mov r3, #1
- add r5, r3, #0
- str r0, [sp, #8]
- add r0, r4, #0
- lsl r5, r2
- add r0, #0xb0
- lsl r2, r5, #0x10
- ldr r0, [r0]
- mov r1, #4
- lsr r2, r2, #0x10
- sub r3, r3, #2
- bl FUN_02003210
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228CFA
-_02228CE4:
- add r0, r4, #0
- add r0, #0xb0
- ldr r0, [r0]
- bl FUN_020038E4
- cmp r0, #0
- bne _02228CFA
- add r0, r4, #0
- mov r1, #0xa
- bl MOD08_02228AD4
-_02228CFA:
- mov r0, #1
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-_02228D00: .word 0x0000037F
-
- thumb_func_start MOD08_02228D04
-MOD08_02228D04: ; 0x02228D04
- push {r3, lr}
- mov r1, #0xb
- bl MOD08_02228AD4
- mov r0, #1
- pop {r3, pc}
-
- thumb_func_start MOD08_02228D10
-MOD08_02228D10: ; 0x02228D10
- push {r3, r4, lr}
- sub sp, #0xc
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _02228D22
- cmp r0, #1
- beq _02228D62
- b _02228D7E
-_02228D22:
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- cmp r0, #1
- blt _02228D7E
- add r1, sp, #8
- ldr r0, [r4, #0x30]
- add r1, #2
- add r2, sp, #8
- bl FUN_0200C7A0
- add r1, sp, #8
- mov r0, #0
- ldrsh r3, [r1, r0]
- mov r0, #2
- ldrsh r1, [r1, r0]
- add r0, r3, #0
- add r0, #0x20
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- mov r0, #0xa
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x48
- add r2, r1, #0
- bl MOD08_02217E80
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228D7E
-_02228D62:
- add r0, r4, #0
- ldr r1, [r4, #0x30]
- add r0, #0x48
- bl MOD08_02217F08
- cmp r0, #0
- bne _02228D7E
- ldr r0, [r4, #8]
- mov r1, #0xd
- add r0, r0, #1
- str r0, [r4, #8]
- add r0, r4, #0
- bl MOD08_02228AD4
-_02228D7E:
- mov r0, #1
- add sp, #0xc
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_02228D84
-MOD08_02228D84: ; 0x02228D84
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_02228D88
-MOD08_02228D88: ; 0x02228D88
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r1, [r5, #8]
- cmp r1, #0
- beq _02228D98
- cmp r1, #1
- beq _02228DAE
- b _02228E0E
-_02228D98:
- ldr r0, [r5, #0x30]
- mov r1, #1
- bl FUN_0200C5C0
- ldr r0, [r5, #0x30]
- mov r1, #0
- bl FUN_0200C61C
- ldr r0, [r5, #8]
- add r0, r0, #1
- str r0, [r5, #8]
-_02228DAE:
- ldr r1, [r5, #0xc]
- mov r0, #6
- add r2, r1, #0
- mul r2, r0
- ldr r0, _02228E18 ; =0x0222D18A
- ldr r1, _02228E1C ; =0x0222D18C
- ldrsh r0, [r0, r2]
- ldrh r1, [r1, r2]
- str r0, [sp]
- ldr r0, [r5, #0x30]
- bl FUN_0200C61C
- ldr r0, [r5, #0xc]
- ldr r4, _02228E20 ; =0x0222D07C
- add r0, r0, #1
- str r0, [r5, #0xc]
- mov r6, #0
- mov r7, #0x75
-_02228DD2:
- ldr r1, [r5, #0xc]
- ldr r0, [r4]
- cmp r1, r0
- bne _02228DE6
- ldr r0, [r4, #4]
- add r1, r7, #0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_020054A8
-_02228DE6:
- add r6, r6, #1
- add r4, #8
- cmp r6, #5
- blt _02228DD2
- ldr r0, [r5, #0xc]
- cmp r0, #0x14
- bgt _02228DFA
- ldr r0, [sp]
- cmp r0, #0xff
- bne _02228E02
-_02228DFA:
- ldr r0, [r5, #8]
- add r0, r0, #1
- str r0, [r5, #8]
- b _02228E14
-_02228E02:
- ldr r0, [r5, #0x30]
- ldr r2, [sp]
- mov r1, #0
- bl FUN_0200C82C
- b _02228E14
-_02228E0E:
- mov r1, #0xe
- bl MOD08_02228AD4
-_02228E14:
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02228E18: .word 0x0222D18A
-_02228E1C: .word 0x0222D18C
-_02228E20: .word 0x0222D07C
-
- thumb_func_start MOD08_02228E24
-MOD08_02228E24: ; 0x02228E24
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_02228E28
-MOD08_02228E28: ; 0x02228E28
- push {r3, lr}
- ldr r1, [r0, #0xc]
- add r1, r1, #1
- str r1, [r0, #0xc]
- cmp r1, #0xe
- blt _02228E44
- ldr r1, [r0, #8]
- add r1, r1, #1
- str r1, [r0, #8]
- mov r1, #0
- str r1, [r0, #0xc]
- mov r1, #0x10
- bl MOD08_02228AD4
-_02228E44:
- mov r0, #1
- pop {r3, pc}
-
- thumb_func_start MOD08_02228E48
-MOD08_02228E48: ; 0x02228E48
- push {r3, lr}
- mov r1, #0x11
- bl MOD08_02228AD4
- mov r0, #1
- pop {r3, pc}
-
- thumb_func_start MOD08_02228E54
-MOD08_02228E54: ; 0x02228E54
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #8]
- cmp r0, #0
- beq _02228E64
- cmp r0, #1
- beq _02228E74
- b _02228EDC
-_02228E64:
- ldr r0, [r5, #0x18]
- cmp r0, #3
- blt _02228E6E
- bl ErrorHandling
-_02228E6E:
- ldr r0, [r5, #8]
- add r0, r0, #1
- str r0, [r5, #8]
-_02228E74:
- ldr r1, [r5, #0x18]
- mov r0, #0x18
- add r3, r1, #0
- mul r3, r0
- ldr r0, _02228EE0 ; =0x0222D0D0
- ldr r1, [r5, #0xc]
- add r0, r0, r3
- lsl r2, r1, #1
- ldrsh r4, [r2, r0]
- add r0, r1, #1
- str r0, [r5, #0xc]
- cmp r0, #0xb
- bgt _02228E92
- cmp r4, #0xff
- bne _02228EB2
-_02228E92:
- ldr r0, [r5, #8]
- mov r1, #0
- add r0, r0, #1
- str r0, [r5, #8]
- ldr r0, [r5, #0x18]
- add r0, r0, #1
- str r0, [r5, #0x18]
- ldr r0, [r5, #0x30]
- bl FUN_0200C898
- add r0, r5, #0
- mov r1, #0x12
- bl MOD08_02228AD4
- mov r0, #1
- pop {r3, r4, r5, pc}
-_02228EB2:
- cmp r0, #5
- bne _02228EBE
- ldr r0, _02228EE4 ; =0x000005FE
- mov r1, #0x75
- bl FUN_020054A8
-_02228EBE:
- ldr r0, [r5, #0x30]
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200C82C
- ldr r0, _02228EE8 ; =0x0001FFFE
- mov r1, #0x5a
- mul r0, r4
- lsl r1, r1, #2
- bl _s32_div_f
- add r1, r0, #0
- ldr r0, [r5, #0x30]
- bl FUN_0200C8BC
-_02228EDC:
- mov r0, #1
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02228EE0: .word 0x0222D0D0
-_02228EE4: .word 0x000005FE
-_02228EE8: .word 0x0001FFFE
-
- thumb_func_start MOD08_02228EEC
-MOD08_02228EEC: ; 0x02228EEC
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_02228EF0
-MOD08_02228EF0: ; 0x02228EF0
- push {r3, lr}
- mov r1, #0x14
- bl MOD08_02228AD4
- mov r0, #1
- pop {r3, pc}
-
- thumb_func_start MOD08_02228EFC
-MOD08_02228EFC: ; 0x02228EFC
- push {r3, lr}
- mov r1, #0x1b
- bl MOD08_02228AD4
- mov r0, #1
- pop {r3, pc}
-
- thumb_func_start MOD08_02228F08
-MOD08_02228F08: ; 0x02228F08
- push {r3, r4, r5, lr}
- sub sp, #0x20
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #3
- bhi _02228FDC
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02228F20: ; jump table
- .short _02228F28 - _02228F20 - 2 ; case 0
- .short _02228F5A - _02228F20 - 2 ; case 1
- .short _02228FA2 - _02228F20 - 2 ; case 2
- .short _02228FB4 - _02228F20 - 2 ; case 3
-_02228F28:
- ldr r0, [r4, #0x30]
- bl FUN_0200C68C
- mov r1, #0
- mov r3, #1
- add r2, r0, #0
- add r5, r3, #0
- lsl r5, r2
- lsl r2, r5, #0x10
- str r1, [sp]
- mov r0, #0xa
- str r0, [sp, #4]
- add r0, r4, #0
- str r1, [sp, #8]
- add r0, #0xb0
- ldr r0, [r0]
- mov r1, #4
- lsr r2, r2, #0x10
- sub r3, r3, #6
- bl FUN_02003210
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228FF2
-_02228F5A:
- add r0, r4, #0
- add r0, #0xb0
- ldr r0, [r0]
- bl FUN_020038E4
- cmp r0, #0
- bne _02228FF2
- add r0, r4, #0
- add r0, #0xa0
- ldr r0, [r0]
- add r1, r4, #0
- str r0, [sp, #0x10]
- add r1, #0x94
- ldr r1, [r1]
- str r1, [sp, #0x14]
- bl MOD08_022281C8
- str r0, [sp, #0x18]
- mov r0, #0
- str r0, [sp, #0x1c]
- add r2, sp, #0xc
- ldr r0, [r4, #0x30]
- add r1, sp, #0xc
- add r2, #2
- bl FUN_0200C7A0
- add r0, sp, #0xc
- bl MOD08_02228880
- add r1, r4, #0
- add r1, #0xd0
- str r0, [r1]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228FF2
-_02228FA2:
- add r0, r4, #0
- add r0, #0xd0
- ldr r0, [r0]
- bl MOD08_022288E0
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228FF2
-_02228FB4:
- add r0, r4, #0
- add r0, #0xd0
- ldr r0, [r0]
- bl MOD08_02228954
- cmp r0, #0
- bne _02228FF2
- ldr r0, [r4, #0x30]
- mov r1, #0
- bl FUN_0200C61C
- add r0, r4, #0
- add r0, #0xd0
- ldr r0, [r0]
- bl MOD08_02228970
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228FF2
-_02228FDC:
- add r0, r4, #0
- add r0, #0xb0
- ldr r0, [r0]
- bl FUN_020038E4
- cmp r0, #0
- bne _02228FF2
- add r0, r4, #0
- mov r1, #0x16
- bl MOD08_02228AD4
-_02228FF2:
- mov r0, #1
- add sp, #0x20
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02228FF8
-MOD08_02228FF8: ; 0x02228FF8
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_02228FFC
-MOD08_02228FFC: ; 0x02228FFC
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r0, #0
- ldr r1, [r4, #8]
- cmp r1, #0
- beq _0222900E
- cmp r1, #1
- beq _02229040
- b _02229054
-_0222900E:
- ldr r0, [r4, #0x30]
- bl FUN_0200C68C
- add r2, r0, #0
- mov r0, #0xa
- str r0, [sp]
- mov r0, #0
- mov r3, #1
- add r5, r3, #0
- str r0, [sp, #4]
- str r0, [sp, #8]
- add r0, r4, #0
- lsl r5, r2
- add r0, #0xb0
- lsl r2, r5, #0x10
- ldr r0, [r0]
- mov r1, #4
- lsr r2, r2, #0x10
- sub r3, r3, #6
- bl FUN_02003210
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _0222905A
-_02229040:
- add r0, #0xb0
- ldr r0, [r0]
- bl FUN_020038E4
- cmp r0, #0
- bne _0222905A
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _0222905A
-_02229054:
- mov r1, #0x18
- bl MOD08_02228AD4
-_0222905A:
- mov r0, #1
- add sp, #0xc
- pop {r4, r5, pc}
-
- thumb_func_start MOD08_02229060
-MOD08_02229060: ; 0x02229060
- push {r3, lr}
- mov r1, #0x19
- bl MOD08_02228AD4
- mov r0, #1
- pop {r3, pc}
-
- thumb_func_start MOD08_0222906C
-MOD08_0222906C: ; 0x0222906C
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #8]
- cmp r1, #0
- beq _0222907C
- cmp r1, #1
- beq _0222908A
- b _022290E2
-_0222907C:
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
-_0222908A:
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- cmp r0, #0
- beq _022290B2
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- sub r1, r0, #1
- add r0, r4, #0
- add r0, #0x20
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0x21
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x21
- strb r1, [r0]
- b _022290CE
-_022290B2:
- add r0, r4, #0
- mov r1, #0
- add r0, #0x20
- strb r1, [r0]
- add r0, r4, #0
- mov r2, #0xf
- add r0, #0x21
- strb r2, [r0]
- ldr r0, [r4, #0x30]
- bl FUN_0200C644
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
-_022290CE:
- add r0, r4, #0
- add r0, #0x20
- add r4, #0x21
- ldrb r1, [r0]
- ldrb r0, [r4]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _022290EC ; =0x04000052
- strh r1, [r0]
- b _022290E8
-_022290E2:
- mov r1, #0x1a
- bl MOD08_02228AD4
-_022290E8:
- mov r0, #1
- pop {r4, pc}
- .align 2, 0
-_022290EC: .word 0x04000052
-
- thumb_func_start MOD08_022290F0
-MOD08_022290F0: ; 0x022290F0
- push {r3, lr}
- mov r1, #0x1b
- bl MOD08_02228AD4
- mov r0, #1
- pop {r3, pc}
-
- thumb_func_start MOD08_022290FC
-MOD08_022290FC: ; 0x022290FC
- mov r0, #0
- bx lr
-
- thumb_func_start MOD08_02229100
-MOD08_02229100: ; 0x02229100
- push {r3, lr}
- ldr r1, [r0, #0x14]
- lsl r2, r1, #2
- ldr r1, _02229110 ; =0x0222D118
- ldr r1, [r1, r2]
- blx r1
- pop {r3, pc}
- nop
-_02229110: .word 0x0222D118
-
- thumb_func_start MOD08_02229114
-MOD08_02229114: ; 0x02229114
- push {r3, r4, lr}
- sub sp, #0x1c
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #3
- bls _02229122
- b _02229322
-_02229122:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222912E: ; jump table
- .short _02229136 - _0222912E - 2 ; case 0
- .short _022291A4 - _0222912E - 2 ; case 1
- .short _0222929E - _0222912E - 2 ; case 2
- .short _02229302 - _0222912E - 2 ; case 3
-_02229136:
- mov r0, #0xba
- ldrsh r0, [r4, r0]
- add r1, r4, #0
- mov r2, #0xb8
- str r0, [sp]
- mov r0, #0xbe
- ldrsh r0, [r4, r0]
- mov r3, #0xbc
- add r1, #0x6c
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0xc8
- ldr r0, [r0]
- lsl r0, r0, #0xc
- str r0, [sp, #0xc]
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- add r0, #0x48
- bl MOD08_02217F50
- add r0, r4, #0
- mov r1, #0
- add r0, #0xc4
- str r1, [r0]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- add r0, r4, #0
- add r0, #0xd4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl MOD08_022280C4
- cmp r0, #1
- bne _0222928C
- bl rand_LC
- mov r1, #0x14
- bl _s32_div_f
- add r1, #0xa
- ldr r0, [r4, #0x30]
- lsl r1, r1, #0xd
- bl FUN_0200C8BC
- b _022293BE
-_022291A4:
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl MOD08_022280C4
- cmp r0, #1
- bne _02229242
- mov r1, #2
- ldr r0, [r4, #0x30]
- lsl r1, r1, #0xc
- bl FUN_0200C8BC
- add r0, r4, #0
- add r0, #0xc4
- ldr r2, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- add r0, #0xa
- cmp r2, r0
- ble _022291DE
- mov r1, #2
- ldr r0, [r4, #0x30]
- lsl r1, r1, #0xc
- bl FUN_0200C8BC
-_022291DE:
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl MOD08_02228104
- cmp r0, #1
- bne _02229242
- add r0, r4, #0
- add r0, #0xc4
- ldr r2, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- add r0, #0xa
- cmp r2, r0
- bne _02229242
- ldr r0, [r4, #0x30]
- bl FUN_0200C68C
- add r3, r0, #0
- mov r0, #0x10
- str r0, [sp]
- sub r0, #0x12
- str r0, [sp, #4]
- mov r2, #2
- add r1, r4, #0
- lsl r3, r3, #0x14
- str r2, [sp, #8]
- mov r0, #0
- str r0, [sp, #0xc]
- mov r0, #0xe
- str r0, [sp, #0x10]
- ldr r0, _022293C4 ; =0x0000FFFF
- add r1, #0x94
- str r0, [sp, #0x14]
- ldr r0, _022293C8 ; =0x000003EA
- lsr r3, r3, #0x10
- str r0, [sp, #0x18]
- add r0, r4, #0
- add r0, #0xb0
- ldr r0, [r0]
- ldr r1, [r1]
- bl MOD08_02218B20
- add r1, r4, #0
- add r1, #0xd4
- str r0, [r1]
-_02229242:
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- cmp r0, #6
- blt _0222927A
- cmp r0, #8
- bgt _0222927A
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r2, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- ldr r1, [r0]
- cmp r1, r2
- ble _0222927A
- add r0, r2, #5
- cmp r1, r0
- blt _0222928C
-_0222927A:
- add r0, r4, #0
- add r1, r4, #0
- ldr r2, [r4, #0x30]
- add r0, #0x48
- add r1, #0x6c
- bl MOD08_02217FE4
- cmp r0, #0
- beq _0222928E
-_0222928C:
- b _022293BE
-_0222928E:
- add r0, r4, #0
- mov r1, #0
- bl MOD08_02229FFC
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022293BE
-_0222929E:
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl MOD08_02228104
- cmp r0, #1
- bne _022292D2
- add r0, r4, #0
- add r0, #0xd4
- ldr r0, [r0]
- cmp r0, #0
- beq _022292D2
- bl MOD08_02218AF8
- cmp r0, #1
- beq _022293BE
- add r0, r4, #0
- add r0, #0xd4
- ldr r0, [r0]
- bl MOD08_02218B08
- mov r0, #1
- str r0, [r4, #0x28]
- add sp, #0x1c
- mov r0, #0
- pop {r3, r4, pc}
-_022292D2:
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- cmp r0, #0xf
- blt _022292E6
- mov r0, #1
- str r0, [r4, #0x28]
- add sp, #0x1c
- mov r0, #0
- pop {r3, r4, pc}
-_022292E6:
- add r0, r4, #0
- add r0, #0xa0
- ldr r1, [r0]
- ldr r0, _022293CC ; =0x00000111
- cmp r1, r0
- bne _022292FA
- ldr r0, _022293D0 ; =0x000007E8
- mov r1, #0x75
- bl FUN_020054A8
-_022292FA:
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022293BE
-_02229302:
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_0200C5C0
- add r0, r4, #0
- mov r1, #1
- bl MOD08_0222A008
- add r0, r4, #0
- mov r1, #0
- add r0, #0xc4
- str r1, [r0]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022293BE
-_02229322:
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- cmp r0, #0xf
- bne _0222937C
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- cmp r0, #0xc
- beq _02229378
- cmp r0, #0xd
- beq _02229378
- ldr r0, [r4, #0x30]
- bl FUN_0200C68C
- add r3, r0, #0
- mov r0, #0x10
- str r0, [sp]
- sub r0, #0x12
- str r0, [sp, #4]
- mov r2, #2
- add r1, r4, #0
- lsl r3, r3, #0x14
- str r2, [sp, #8]
- mov r0, #0
- str r0, [sp, #0xc]
- mov r0, #0xe
- str r0, [sp, #0x10]
- ldr r0, _022293C4 ; =0x0000FFFF
- add r1, #0x94
- str r0, [sp, #0x14]
- ldr r0, _022293C8 ; =0x000003EA
- lsr r3, r3, #0x10
- str r0, [sp, #0x18]
- add r0, r4, #0
- add r0, #0xb0
- ldr r0, [r0]
- ldr r1, [r1]
- bl MOD08_02218B20
- add r1, r4, #0
- add r1, #0xd4
- str r0, [r1]
-_02229378:
- mov r0, #1
- str r0, [r4, #0x28]
-_0222937C:
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- cmp r0, #0xf
- ble _022293BE
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- cmp r0, #0xc
- beq _022293B8
- cmp r0, #0xd
- beq _022293B8
- add r0, r4, #0
- add r0, #0xd4
- ldr r0, [r0]
- bl MOD08_02218AF8
- cmp r0, #1
- beq _022293BE
- add r4, #0xd4
- ldr r0, [r4]
- bl MOD08_02218B08
-_022293B8:
- add sp, #0x1c
- mov r0, #0
- pop {r3, r4, pc}
-_022293BE:
- mov r0, #1
- add sp, #0x1c
- pop {r3, r4, pc}
- .align 2, 0
-_022293C4: .word 0x0000FFFF
-_022293C8: .word 0x000003EA
-_022293CC: .word 0x00000111
-_022293D0: .word 0x000007E8
-
- thumb_func_start MOD08_022293D4
-MOD08_022293D4: ; 0x022293D4
- push {r3, r4, lr}
- sub sp, #0x1c
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #3
- bls _022293E2
- b _022295CE
-_022293E2:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022293EE: ; jump table
- .short _022293F6 - _022293EE - 2 ; case 0
- .short _02229464 - _022293EE - 2 ; case 1
- .short _0222955E - _022293EE - 2 ; case 2
- .short _022295AE - _022293EE - 2 ; case 3
-_022293F6:
- mov r0, #0xba
- ldrsh r0, [r4, r0]
- add r1, r4, #0
- mov r2, #0xb8
- str r0, [sp]
- mov r0, #0xbe
- ldrsh r0, [r4, r0]
- mov r3, #0xbc
- add r1, #0x6c
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0xc8
- ldr r0, [r0]
- lsl r0, r0, #0xc
- str r0, [sp, #0xc]
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- add r0, #0x48
- bl MOD08_02217F50
- add r0, r4, #0
- mov r1, #0
- add r0, #0xc4
- str r1, [r0]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- add r0, r4, #0
- add r0, #0xd4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl MOD08_022280C4
- cmp r0, #1
- bne _0222954C
- bl rand_LC
- mov r1, #0x14
- bl _s32_div_f
- add r1, #0xa
- ldr r0, [r4, #0x30]
- lsl r1, r1, #0xd
- bl FUN_0200C8BC
- b _02229656
-_02229464:
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl MOD08_022280C4
- cmp r0, #1
- bne _02229502
- mov r1, #2
- ldr r0, [r4, #0x30]
- lsl r1, r1, #0xc
- bl FUN_0200C8BC
- add r0, r4, #0
- add r0, #0xc4
- ldr r2, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- add r0, #0xa
- cmp r2, r0
- ble _0222949E
- mov r1, #2
- ldr r0, [r4, #0x30]
- lsl r1, r1, #0xc
- bl FUN_0200C8BC
-_0222949E:
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl MOD08_02228104
- cmp r0, #1
- bne _02229502
- add r0, r4, #0
- add r0, #0xc4
- ldr r2, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- add r0, #0xa
- cmp r2, r0
- bne _02229502
- ldr r0, [r4, #0x30]
- bl FUN_0200C68C
- add r3, r0, #0
- mov r0, #0x10
- str r0, [sp]
- sub r0, #0x12
- str r0, [sp, #4]
- mov r2, #2
- add r1, r4, #0
- lsl r3, r3, #0x14
- str r2, [sp, #8]
- mov r0, #0
- str r0, [sp, #0xc]
- mov r0, #0xe
- str r0, [sp, #0x10]
- ldr r0, _0222965C ; =0x0000FFFF
- add r1, #0x94
- str r0, [sp, #0x14]
- ldr r0, _02229660 ; =0x000003EA
- lsr r3, r3, #0x10
- str r0, [sp, #0x18]
- add r0, r4, #0
- add r0, #0xb0
- ldr r0, [r0]
- ldr r1, [r1]
- bl MOD08_02218B20
- add r1, r4, #0
- add r1, #0xd4
- str r0, [r1]
-_02229502:
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- cmp r0, #6
- blt _0222953A
- cmp r0, #8
- bgt _0222953A
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r2, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- ldr r1, [r0]
- cmp r1, r2
- ble _0222953A
- add r0, r2, #5
- cmp r1, r0
- blt _0222954C
-_0222953A:
- add r0, r4, #0
- add r1, r4, #0
- ldr r2, [r4, #0x30]
- add r0, #0x48
- add r1, #0x6c
- bl MOD08_02217FE4
- cmp r0, #0
- beq _0222954E
-_0222954C:
- b _02229656
-_0222954E:
- add r0, r4, #0
- mov r1, #0
- bl MOD08_02229FFC
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02229656
-_0222955E:
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl MOD08_02228104
- cmp r0, #1
- bne _02229592
- add r0, r4, #0
- add r0, #0xd4
- ldr r0, [r0]
- cmp r0, #0
- beq _02229592
- bl MOD08_02218AF8
- cmp r0, #1
- beq _02229656
- add r0, r4, #0
- add r0, #0xd4
- ldr r0, [r0]
- bl MOD08_02218B08
- mov r0, #1
- str r0, [r4, #0x28]
- add sp, #0x1c
- mov r0, #0
- pop {r3, r4, pc}
-_02229592:
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- cmp r0, #0xf
- blt _022295A6
- mov r0, #1
- str r0, [r4, #0x28]
- add sp, #0x1c
- mov r0, #0
- pop {r3, r4, pc}
-_022295A6:
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02229656
-_022295AE:
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_0200C5C0
- add r0, r4, #0
- mov r1, #0
- bl MOD08_0222A008
- add r0, r4, #0
- mov r1, #0
- add r0, #0xc4
- str r1, [r0]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02229656
-_022295CE:
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- cmp r0, #0xf
- bne _02229622
- ldr r0, [r4, #0x30]
- mov r1, #2
- bl FUN_0200C61C
- ldr r0, [r4, #0x30]
- bl FUN_0200C68C
- add r3, r0, #0
- mov r0, #0x10
- str r0, [sp]
- sub r0, #0x12
- str r0, [sp, #4]
- mov r2, #2
- add r1, r4, #0
- lsl r3, r3, #0x14
- str r2, [sp, #8]
- mov r0, #0
- str r0, [sp, #0xc]
- mov r0, #0xe
- str r0, [sp, #0x10]
- ldr r0, _0222965C ; =0x0000FFFF
- add r1, #0x94
- str r0, [sp, #0x14]
- ldr r0, _02229660 ; =0x000003EA
- lsr r3, r3, #0x10
- str r0, [sp, #0x18]
- add r0, r4, #0
- add r0, #0xb0
- ldr r0, [r0]
- ldr r1, [r1]
- bl MOD08_02218B20
- add r1, r4, #0
- add r1, #0xd4
- str r0, [r1]
- mov r0, #1
- str r0, [r4, #0x28]
-_02229622:
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- cmp r0, #0xf
- ble _02229656
- add r0, r4, #0
- add r0, #0xd4
- ldr r0, [r0]
- bl MOD08_02218AF8
- cmp r0, #1
- beq _02229656
- add r4, #0xd4
- ldr r0, [r4]
- bl MOD08_02218B08
- add sp, #0x1c
- mov r0, #0
- pop {r3, r4, pc}
-_02229656:
- mov r0, #1
- add sp, #0x1c
- pop {r3, r4, pc}
- .align 2, 0
-_0222965C: .word 0x0000FFFF
-_02229660: .word 0x000003EA
-
- thumb_func_start MOD08_02229664
-MOD08_02229664: ; 0x02229664
- push {r3, r4, lr}
- sub sp, #0x14
- add r4, r0, #0
- ldr r1, [r4, #8]
- cmp r1, #7
- bls _02229672
- b _022297EA
-_02229672:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0222967E: ; jump table
- .short _0222968E - _0222967E - 2 ; case 0
- .short _022296CC - _0222967E - 2 ; case 1
- .short _022296FC - _0222967E - 2 ; case 2
- .short _02229732 - _0222967E - 2 ; case 3
- .short _02229742 - _0222967E - 2 ; case 4
- .short _02229770 - _0222967E - 2 ; case 5
- .short _0222979E - _0222967E - 2 ; case 6
- .short _022297CC - _0222967E - 2 ; case 7
-_0222968E:
- mov r1, #0
- bl MOD08_0222A008
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_0200C5C0
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- cmp r0, #2
- blt _022296E2
- ldr r0, [r4, #0x30]
- mov r1, #0
- bl FUN_0200C61C
- add r0, r4, #0
- mov r1, #0
- add r0, #0xc4
- str r1, [r0]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022297F0
-_022296CC:
- add r0, #0xc4
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- cmp r0, #2
- bge _022296E4
-_022296E2:
- b _022297F0
-_022296E4:
- ldr r0, [r4, #0x30]
- mov r1, #2
- bl FUN_0200C61C
- add r0, r4, #0
- mov r1, #0
- add r0, #0xc4
- str r1, [r0]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022297F0
-_022296FC:
- add r0, #0xa0
- ldr r0, [r0]
- add r2, sp, #0
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x94
- ldr r0, [r0]
- add r1, sp, #0
- str r0, [sp, #8]
- mov r0, #0xff
- str r0, [sp, #0xc]
- mov r0, #1
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x30]
- add r2, #2
- bl FUN_0200C7A0
- add r0, sp, #0
- bl MOD08_02228880
- add r1, r4, #0
- add r1, #0xd0
- str r0, [r1]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022297F0
-_02229732:
- add r0, #0xd0
- ldr r0, [r0]
- bl MOD08_022288E0
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022297F0
-_02229742:
- add r0, #0xc4
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- cmp r0, #6
- blt _022297F0
- ldr r0, [r4, #0x30]
- mov r1, #2
- bl FUN_0200C61C
- add r0, r4, #0
- mov r1, #0
- add r0, #0xc4
- str r1, [r0]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022297F0
-_02229770:
- add r0, #0xc4
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- cmp r0, #6
- blt _022297F0
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_0200C61C
- add r0, r4, #0
- mov r1, #0
- add r0, #0xc4
- str r1, [r0]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022297F0
-_0222979E:
- add r0, #0xc4
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- cmp r0, #6
- blt _022297F0
- ldr r0, [r4, #0x30]
- mov r1, #0
- bl FUN_0200C61C
- add r0, r4, #0
- mov r1, #0
- add r0, #0xc4
- str r1, [r0]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022297F0
-_022297CC:
- add r0, #0xd0
- ldr r0, [r0]
- bl MOD08_02228954
- cmp r0, #0
- bne _022297F0
- add r0, r4, #0
- add r0, #0xd0
- ldr r0, [r0]
- bl MOD08_02228970
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022297F0
-_022297EA:
- add sp, #0x14
- mov r0, #0
- pop {r3, r4, pc}
-_022297F0:
- mov r0, #1
- add sp, #0x14
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022297F8
-MOD08_022297F8: ; 0x022297F8
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _02229808
- cmp r0, #1
- beq _0222983C
- b _0222986E
-_02229808:
- ldr r0, [r4, #0x10]
- cmp r0, #0
- bne _0222981E
- ldr r1, _0222987C ; =0xFFFFE001
- add r0, r4, #0
- add r0, #0x34
- lsr r2, r1, #0x13
- mov r3, #0xa
- bl MOD08_02218008
- b _0222982C
-_0222981E:
- add r0, r4, #0
- ldr r1, _02229880 ; =0x00001FFF
- ldr r2, _0222987C ; =0xFFFFE001
- add r0, #0x34
- mov r3, #0xa
- bl MOD08_02218008
-_0222982C:
- ldr r1, [r4, #0x10]
- mov r0, #1
- eor r0, r1
- str r0, [r4, #0x10]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02229876
-_0222983C:
- ldr r1, [r4, #0x34]
- ldr r0, [r4, #0x30]
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl FUN_0200C898
- add r0, r4, #0
- add r0, #0x34
- bl MOD08_02218058
- cmp r0, #0
- bne _02229876
- ldr r0, [r4, #0xc]
- cmp r0, #1
- blt _02229862
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02229876
-_02229862:
- add r0, r0, #1
- str r0, [r4, #0xc]
- ldr r0, [r4, #8]
- sub r0, r0, #1
- str r0, [r4, #8]
- b _02229876
-_0222986E:
- mov r0, #0
- add r4, #0xc4
- str r0, [r4]
- pop {r4, pc}
-_02229876:
- mov r0, #1
- pop {r4, pc}
- nop
-_0222987C: .word 0xFFFFE001
-_02229880: .word 0x00001FFF
-
- thumb_func_start MOD08_02229884
-MOD08_02229884: ; 0x02229884
- push {r3, r4, lr}
- sub sp, #4
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0xff
- bne _02229896
- add sp, #4
- mov r0, #0
- pop {r3, r4, pc}
-_02229896:
- ldr r0, [r4, #0x30]
- cmp r0, #0
- beq _022298BA
- add r1, sp, #0
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- add r1, sp, #0
- mov r0, #2
- ldrsh r2, [r1, r0]
- add r0, r4, #0
- add r0, #0xb8
- strh r2, [r0]
- mov r0, #0
- ldrsh r0, [r1, r0]
- add r4, #0xba
- strh r0, [r4]
-_022298BA:
- mov r0, #1
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_022298C0
-MOD08_022298C0: ; 0x022298C0
- push {r4, lr}
- add r4, r1, #0
- ldr r0, [r4, #0x1c]
- cmp r0, #0
- beq _02229912
- add r0, r4, #0
- add r0, #0xdc
- ldr r0, [r0]
- cmp r0, #0
- ble _022298EA
- add r0, r4, #0
- add r0, #0xdc
- ldr r0, [r0]
- sub r1, r0, #1
- add r0, r4, #0
- add r0, #0xdc
- str r1, [r0]
- ldr r0, [r4, #0x2c]
- bl FUN_0200BC1C
- pop {r4, pc}
-_022298EA:
- add r1, #0x98
- ldr r1, [r1]
- add r0, r4, #0
- lsl r2, r1, #2
- ldr r1, _02229914 ; =0x0222D01C
- ldr r1, [r1, r2]
- blx r1
- cmp r0, #0
- bne _02229900
- mov r0, #0
- str r0, [r4, #0x1c]
-_02229900:
- ldr r0, [r4, #0x24]
- cmp r0, #1
- bne _0222990C
- ldr r0, [r4, #0x30]
- bl FUN_0200C5A8
-_0222990C:
- ldr r0, [r4, #0x2c]
- bl FUN_0200BC1C
-_02229912:
- pop {r4, pc}
- .align 2, 0
-_02229914: .word 0x0222D01C
-
- thumb_func_start MOD08_02229918
-MOD08_02229918: ; 0x02229918
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #4]
- mov r1, #0xe0
- bl AllocFromHeap
- mov r1, #0
- mov r2, #0xe0
- add r4, r0, #0
- bl MI_CpuFill8
- cmp r4, #0
- bne _02229936
- bl ErrorHandling
-_02229936:
- add r3, r4, #0
- add r3, #0x90
- mov r2, #5
-_0222993C:
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222993C
- mov r0, #0
- str r0, [r4, #8]
- str r0, [r4, #0x10]
- str r0, [r4, #0xc]
- str r0, [r4, #0x14]
- str r0, [r4, #0x18]
- str r0, [r4]
- str r0, [r4, #4]
- add r0, r4, #0
- add r0, #0xac
- ldr r0, [r0]
- bl FUN_0200BB34
- str r0, [r4, #0x2c]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xdc
- str r1, [r0]
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl MOD08_02228140
- str r0, [r4, #0x24]
- add r0, r4, #0
- mov r2, #0
- add r0, #0xc4
- str r2, [r0]
- add r0, r4, #0
- mov r1, #0x10
- add r0, #0x20
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0x21
- strb r2, [r0]
- bl MOD08_0221268C
- bl rand_LC
- lsr r1, r0, #0x1f
- lsl r0, r0, #0x1f
- sub r0, r0, r1
- mov r2, #0x1f
- ror r0, r2
- add r0, r1, r0
- beq _022299AA
- add r0, r4, #0
- mov r1, #1
- add r0, #0x22
- strb r1, [r0]
- b _022299B2
-_022299AA:
- add r0, r4, #0
- sub r2, #0x20
- add r0, #0x22
- strb r2, [r0]
-_022299B2:
- add r0, r4, #0
- bl MOD08_02229E40
- add r0, r4, #0
- bl MOD08_02229F64
- add r0, r4, #0
- bl MOD08_02229A90
- mov r0, #1
- str r0, [r4, #0x1c]
- mov r0, #0
- str r0, [r4, #0x28]
- mov r2, #0xfa
- ldr r0, _022299E4 ; =MOD08_022298C0
- add r1, r4, #0
- lsl r2, r2, #2
- bl FUN_0200CA44
- add r1, r4, #0
- add r1, #0xcc
- str r0, [r1]
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- nop
-_022299E4: .word MOD08_022298C0
-
- thumb_func_start MOD08_022299E8
-MOD08_022299E8: ; 0x022299E8
- push {r4, lr}
- add r4, r0, #0
- bne _022299F2
- bl ErrorHandling
-_022299F2:
- ldr r0, [r4, #0x1c]
- cmp r0, #0
- beq _022299FC
- mov r0, #1
- pop {r4, pc}
-_022299FC:
- mov r0, #0
- pop {r4, pc}
-
- thumb_func_start MOD08_02229A00
-MOD08_02229A00: ; 0x02229A00
- push {r4, lr}
- add r4, r0, #0
- bne _02229A0A
- bl ErrorHandling
-_02229A0A:
- ldr r0, [r4, #0x28]
- cmp r0, #0
- beq _02229A14
- mov r0, #1
- pop {r4, pc}
-_02229A14:
- mov r0, #0
- pop {r4, pc}
-
- thumb_func_start MOD08_02229A18
-MOD08_02229A18: ; 0x02229A18
- str r1, [r0, #0x14]
- bx lr
-
- thumb_func_start MOD08_02229A1C
-MOD08_02229A1C: ; 0x02229A1C
- ldr r0, [r0, #0x14]
- cmp r0, r1
- bne _02229A26
- mov r0, #1
- bx lr
-_02229A26:
- mov r0, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02229A2C
-MOD08_02229A2C: ; 0x02229A2C
- push {r4, lr}
- add r4, r0, #0
- bne _02229A36
- bl ErrorHandling
-_02229A36:
- add r0, r4, #0
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r4, #0x2c]
- bl FUN_0200C398
- ldr r0, [r4, #0x30]
- bl FUN_0200C3DC
- add r0, r4, #0
- add r0, #0xcc
- ldr r0, [r0]
- bl FUN_0200CAB4
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02229A5C
-MOD08_02229A5C: ; 0x02229A5C
- add r2, r0, #0
- add r0, #0x98
- str r1, [r0]
- mov r0, #0
- str r0, [r2, #8]
- str r0, [r2, #0xc]
- str r0, [r2, #0x10]
- mov r0, #1
- add r1, r2, #0
- str r0, [r2, #0x1c]
- ldr r0, [r2, #0x30]
- ldr r3, _02229A7C ; =FUN_0200C7A0
- add r1, #0xb8
- add r2, #0xba
- bx r3
- nop
-_02229A7C: .word FUN_0200C7A0
-
- thumb_func_start MOD08_02229A80
-MOD08_02229A80: ; 0x02229A80
- push {r4, lr}
- add r4, r0, #0
- bne _02229A8A
- bl ErrorHandling
-_02229A8A:
- add r4, #0x98
- ldr r0, [r4]
- pop {r4, pc}
-
- thumb_func_start MOD08_02229A90
-MOD08_02229A90: ; 0x02229A90
- push {r4, lr}
- add r4, r0, #0
- add r1, r4, #0
- add r2, r4, #0
- ldr r0, [r4, #0x30]
- add r1, #0xb8
- add r2, #0xba
- bl FUN_0200C7A0
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- cmp r0, #0x11
- bls _02229AAE
- b _02229CF6
-_02229AAE:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02229ABA: ; jump table
- .short _02229ADE - _02229ABA - 2 ; case 0
- .short _02229ADE - _02229ABA - 2 ; case 1
- .short _02229ADE - _02229ABA - 2 ; case 2
- .short _02229ADE - _02229ABA - 2 ; case 3
- .short _02229ADE - _02229ABA - 2 ; case 4
- .short _02229ADE - _02229ABA - 2 ; case 5
- .short _02229AF6 - _02229ABA - 2 ; case 6
- .short _02229B1C - _02229ABA - 2 ; case 7
- .short _02229B50 - _02229ABA - 2 ; case 8
- .short _02229B76 - _02229ABA - 2 ; case 9
- .short _02229B9C - _02229ABA - 2 ; case 10
- .short _02229BC2 - _02229ABA - 2 ; case 11
- .short _02229BE8 - _02229ABA - 2 ; case 12
- .short _02229C14 - _02229ABA - 2 ; case 13
- .short _02229C4C - _02229ABA - 2 ; case 14
- .short _02229C72 - _02229ABA - 2 ; case 15
- .short _02229C9E - _02229ABA - 2 ; case 16
- .short _02229CCA - _02229ABA - 2 ; case 17
-_02229ADE:
- add r1, r4, #0
- add r2, r4, #0
- ldr r0, [r4, #0x30]
- add r1, #0xbc
- add r2, #0xbe
- bl FUN_0200C7A0
- add r0, r4, #0
- mov r1, #0
- add r0, #0xc8
- str r1, [r0]
- b _02229CF6
-_02229AF6:
- mov r0, #0
- add r2, r4, #0
- add r3, r4, #0
- add r1, r0, #0
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x30
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #0x20
- strh r1, [r0]
- b _02229CF6
-_02229B1C:
- add r1, r4, #0
- add r2, r4, #0
- ldr r0, [r4, #0x30]
- add r1, #0xb8
- add r2, #0xba
- bl FUN_0200C7A0
- add r2, r4, #0
- add r3, r4, #0
- mov r0, #1
- mov r1, #4
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x30
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #0x20
- strh r1, [r0]
- b _02229CF6
-_02229B50:
- add r2, r4, #0
- add r3, r4, #0
- mov r0, #1
- mov r1, #2
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x30
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #0x20
- strh r1, [r0]
- b _02229CF6
-_02229B76:
- add r2, r4, #0
- add r3, r4, #0
- mov r0, #0
- mov r1, #1
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x30
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #0x20
- strh r1, [r0]
- b _02229CF6
-_02229B9C:
- add r2, r4, #0
- add r3, r4, #0
- mov r0, #1
- mov r1, #3
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x30
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #0x20
- strh r1, [r0]
- b _02229CF6
-_02229BC2:
- add r2, r4, #0
- add r3, r4, #0
- mov r0, #1
- mov r1, #5
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x30
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #0x20
- strh r1, [r0]
- b _02229CF6
-_02229BE8:
- add r2, r4, #0
- add r3, r4, #0
- mov r0, #0
- mov r1, #1
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x10
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #0x10
- strh r1, [r0]
- mov r0, #0xc
- add r4, #0xc0
- str r0, [r4]
- pop {r4, pc}
-_02229C14:
- add r2, r4, #0
- add r3, r4, #0
- mov r0, #0
- mov r1, #1
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x20
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbc
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbc
- sub r1, #0x14
- strh r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #0x26
- strh r1, [r0]
- mov r0, #0x10
- add r4, #0xc0
- str r0, [r4]
- pop {r4, pc}
-_02229C4C:
- add r0, r4, #0
- mov r1, #0x80
- add r0, #0xbc
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0x40
- add r0, #0xbe
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0x20
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #0x20
- strh r1, [r0]
- b _02229CF6
-_02229C72:
- add r2, r4, #0
- add r3, r4, #0
- mov r0, #0
- mov r1, #1
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x40
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #8
- strh r1, [r0]
- mov r0, #0x10
- add r4, #0xc0
- str r0, [r4]
- pop {r4, pc}
-_02229C9E:
- add r2, r4, #0
- add r3, r4, #0
- mov r0, #1
- mov r1, #3
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x40
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #8
- strh r1, [r0]
- mov r0, #0x10
- add r4, #0xc0
- str r0, [r4]
- pop {r4, pc}
-_02229CCA:
- add r2, r4, #0
- add r3, r4, #0
- mov r0, #1
- mov r1, #5
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x40
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #8
- strh r1, [r0]
- mov r0, #0x10
- add r4, #0xc0
- str r0, [r4]
- pop {r4, pc}
-_02229CF6:
- mov r0, #0x14
- add r4, #0xc0
- str r0, [r4]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02229D00
-MOD08_02229D00: ; 0x02229D00
- push {r4, lr}
- add r0, #0x90
- ldr r0, [r0]
- add r3, r1, #0
- add r4, r2, #0
- cmp r0, #0x11
- bls _02229D10
- b _02229E3C
-_02229D10:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02229D1C: ; jump table
- .short _02229D40 - _02229D1C - 2 ; case 0
- .short _02229D56 - _02229D1C - 2 ; case 1
- .short _02229D6C - _02229D1C - 2 ; case 2
- .short _02229D98 - _02229D1C - 2 ; case 3
- .short _02229D82 - _02229D1C - 2 ; case 4
- .short _02229DAE - _02229D1C - 2 ; case 5
- .short _02229DC4 - _02229D1C - 2 ; case 6
- .short _02229DCE - _02229D1C - 2 ; case 7
- .short _02229DD8 - _02229D1C - 2 ; case 8
- .short _02229DE2 - _02229D1C - 2 ; case 9
- .short _02229DF0 - _02229D1C - 2 ; case 10
- .short _02229DFE - _02229D1C - 2 ; case 11
- .short _02229E0C - _02229D1C - 2 ; case 12
- .short _02229E1A - _02229D1C - 2 ; case 13
- .short _02229E28 - _02229D1C - 2 ; case 14
- .short _02229E32 - _02229D1C - 2 ; case 15
- .short _02229E32 - _02229D1C - 2 ; case 16
- .short _02229E32 - _02229D1C - 2 ; case 17
-_02229D40:
- mov r0, #0
- add r2, r3, #0
- add r1, r0, #0
- add r3, r4, #0
- bl MOD08_02217B1C
- mov r0, #0
- ldrsh r0, [r4, r0]
- add r0, #0x20
- strh r0, [r4]
- pop {r4, pc}
-_02229D56:
- add r2, r3, #0
- mov r0, #0
- mov r1, #1
- add r3, r4, #0
- bl MOD08_02217B1C
- mov r0, #0
- ldrsh r0, [r4, r0]
- add r0, #0x26
- strh r0, [r4]
- pop {r4, pc}
-_02229D6C:
- add r2, r3, #0
- mov r0, #1
- mov r1, #2
- add r3, r4, #0
- bl MOD08_02217B1C
- mov r0, #0
- ldrsh r0, [r4, r0]
- add r0, #0x20
- strh r0, [r4]
- pop {r4, pc}
-_02229D82:
- add r2, r3, #0
- mov r0, #1
- mov r1, #4
- add r3, r4, #0
- bl MOD08_02217B1C
- mov r0, #0
- ldrsh r0, [r4, r0]
- add r0, #0x20
- strh r0, [r4]
- pop {r4, pc}
-_02229D98:
- add r2, r3, #0
- mov r0, #1
- mov r1, #3
- add r3, r4, #0
- bl MOD08_02217B1C
- mov r0, #0
- ldrsh r0, [r4, r0]
- add r0, #0x26
- strh r0, [r4]
- pop {r4, pc}
-_02229DAE:
- add r2, r3, #0
- mov r0, #1
- mov r1, #5
- add r3, r4, #0
- bl MOD08_02217B1C
- mov r0, #0
- ldrsh r0, [r4, r0]
- add r0, #0x26
- strh r0, [r4]
- pop {r4, pc}
-_02229DC4:
- mov r0, #0xa
- strh r0, [r3]
- mov r0, #0x64
- strh r0, [r4]
- pop {r4, pc}
-_02229DCE:
- mov r0, #0xa
- strh r0, [r3]
- mov r0, #0x64
- strh r0, [r4]
- pop {r4, pc}
-_02229DD8:
- mov r0, #0xa
- strh r0, [r3]
- mov r0, #0x64
- strh r0, [r4]
- pop {r4, pc}
-_02229DE2:
- mov r0, #0
- add r2, r3, #0
- add r1, r0, #0
- add r3, r4, #0
- bl MOD08_02217B1C
- pop {r4, pc}
-_02229DF0:
- mov r0, #0
- add r2, r3, #0
- add r1, r0, #0
- add r3, r4, #0
- bl MOD08_02217B1C
- pop {r4, pc}
-_02229DFE:
- mov r0, #0
- add r2, r3, #0
- add r1, r0, #0
- add r3, r4, #0
- bl MOD08_02217B1C
- pop {r4, pc}
-_02229E0C:
- mov r0, #0
- add r2, r3, #0
- add r1, r0, #0
- add r3, r4, #0
- bl MOD08_02217B1C
- pop {r4, pc}
-_02229E1A:
- mov r0, #0
- add r2, r3, #0
- add r1, r0, #0
- add r3, r4, #0
- bl MOD08_02217B1C
- pop {r4, pc}
-_02229E28:
- mov r0, #0xe6
- strh r0, [r3]
- mov r0, #0x20
- strh r0, [r4]
- pop {r4, pc}
-_02229E32:
- mov r0, #0x1d
- mvn r0, r0
- strh r0, [r3]
- mov r0, #0xa0
- strh r0, [r4]
-_02229E3C:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02229E40
-MOD08_02229E40: ; 0x02229E40
- push {r4, r5, r6, r7, lr}
- sub sp, #0x34
- add r5, r0, #0
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r5, #0x2c]
- mov r2, #0xa
- bl FUN_0200BBF0
- add r0, r5, #0
- add r0, #0xa8
- ldr r0, [r0]
- cmp r0, #0
- bne _02229E70
- add r0, r5, #0
- add r0, #0xac
- ldr r0, [r0]
- bl FUN_0200BB68
- mov r2, #0x11
- mov r1, #0
- lsl r2, r2, #0x10
- bl FUN_02008D24
-_02229E70:
- mov r1, #0
- add r2, sp, #0x1c
- mov r0, #0xa
-_02229E76:
- add r1, r1, #1
- stmia r2!, {r0}
- cmp r1, #6
- blt _02229E76
- mov r0, #0
- str r0, [sp, #0x2c]
- str r0, [sp, #0x30]
- add r0, r5, #0
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r5, #0x2c]
- add r2, sp, #0x1c
- bl FUN_0200BF60
- add r0, r5, #0
- add r0, #0xa0
- ldr r0, [r0]
- mov r1, #0
- bl MOD08_022281DC
- add r6, r0, #0
- add r0, r5, #0
- add r0, #0xa0
- ldr r0, [r0]
- mov r1, #1
- bl MOD08_022281DC
- add r4, r0, #0
- add r0, r5, #0
- add r0, #0xa0
- ldr r0, [r0]
- mov r1, #2
- bl MOD08_022281DC
- add r7, r0, #0
- add r0, r5, #0
- add r0, #0xa0
- ldr r0, [r0]
- mov r1, #3
- bl MOD08_022281DC
- str r0, [sp, #0x18]
- mov r0, #1
- str r0, [sp]
- str r0, [sp, #4]
- add r0, r5, #0
- add r0, #0x9c
- ldr r1, [r0]
- ldr r0, _02229F60 ; =0x00001770
- mov r2, #0x1b
- add r0, r1, r0
- str r0, [sp, #8]
- add r0, r5, #0
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r5, #0x2c]
- add r3, r6, #0
- bl FUN_0200C00C
- mov r0, #0x1b
- str r0, [sp]
- add r2, r5, #0
- str r4, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- add r0, r5, #0
- add r0, #0x9c
- ldr r1, [r0]
- ldr r0, _02229F60 ; =0x00001770
- add r2, #0xac
- add r0, r1, r0
- str r0, [sp, #0x14]
- add r0, r5, #0
- add r0, #0xb0
- ldr r0, [r0]
- ldr r2, [r2]
- ldr r3, [r5, #0x2c]
- mov r1, #2
- bl FUN_0200C0DC
- mov r0, #1
- str r0, [sp]
- add r0, r5, #0
- add r0, #0x9c
- ldr r1, [r0]
- ldr r0, _02229F60 ; =0x00001770
- mov r2, #0x1b
- add r0, r1, r0
- str r0, [sp, #4]
- add r0, r5, #0
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r5, #0x2c]
- add r3, r7, #0
- bl FUN_0200C124
- mov r0, #1
- str r0, [sp]
- add r0, r5, #0
- add r0, #0x9c
- ldr r1, [r0]
- ldr r0, _02229F60 ; =0x00001770
- ldr r3, [sp, #0x18]
- add r0, r1, r0
- str r0, [sp, #4]
- add r0, r5, #0
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r5, #0x2c]
- mov r2, #0x1b
- bl FUN_0200C13C
- add sp, #0x34
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02229F60: .word 0x00001770
-
- thumb_func_start MOD08_02229F64
-MOD08_02229F64: ; 0x02229F64
- push {r3, r4, lr}
- sub sp, #0x34
- add r2, sp, #0
- add r1, sp, #0
- add r2, #2
- add r4, r0, #0
- bl MOD08_02229D00
- mov r0, #0
- add r1, sp, #0
- strh r0, [r1, #4]
- strh r0, [r1, #6]
- mov r1, #1
- str r1, [sp, #0x10]
- add r1, r4, #0
- str r0, [sp, #8]
- str r0, [sp, #0xc]
- add r1, #0xa4
- ldr r1, [r1]
- ldr r2, _02229FE0 ; =0x00001770
- str r1, [sp, #0x2c]
- str r0, [sp, #0x30]
- add r3, sp, #0
-_02229F92:
- add r1, r4, #0
- add r1, #0x9c
- ldr r1, [r1]
- add r0, r0, #1
- add r1, r1, r2
- str r1, [r3, #0x14]
- add r3, r3, #4
- cmp r0, #6
- blt _02229F92
- add r0, r4, #0
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r4, #0x2c]
- add r2, sp, #0
- bl FUN_0200C154
- str r0, [r4, #0x30]
- mov r1, #1
- bl FUN_0200C644
- ldr r0, [r4, #0x30]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r4, #0x30]
- mov r1, #0
- bl FUN_0200C61C
- ldr r0, [r4, #0x30]
- mov r1, #0
- bl FUN_0200C5C0
- ldr r0, [r4, #0x30]
- bl FUN_0200C5A8
- bl MOD08_0221268C
- add sp, #0x34
- pop {r3, r4, pc}
- .align 2, 0
-_02229FE0: .word 0x00001770
-
- thumb_func_start MOD08_02229FE4
-MOD08_02229FE4: ; 0x02229FE4
- ldr r3, _02229FEC ; =FUN_0200C644
- ldr r0, [r0, #0x30]
- bx r3
- nop
-_02229FEC: .word FUN_0200C644
-
- thumb_func_start MOD08_02229FF0
-MOD08_02229FF0: ; 0x02229FF0
- ldr r3, _02229FF8 ; =FUN_0200C714
- ldr r0, [r0, #0x30]
- bx r3
- nop
-_02229FF8: .word FUN_0200C714
-
- thumb_func_start MOD08_02229FFC
-MOD08_02229FFC: ; 0x02229FFC
- ldr r3, _0222A004 ; =FUN_0200C898
- ldr r0, [r0, #0x30]
- bx r3
- nop
-_0222A004: .word FUN_0200C898
-
- thumb_func_start MOD08_0222A008
-MOD08_0222A008: ; 0x0222A008
- str r1, [r0, #0x24]
- bx lr
-
- thumb_func_start MOD08_0222A00C
-MOD08_0222A00C: ; 0x0222A00C
- ldr r3, _0222A014 ; =FUN_0200C6C4
- ldr r0, [r0, #0x30]
- bx r3
- nop
-_0222A014: .word FUN_0200C6C4
-
- thumb_func_start MOD08_0222A018
-MOD08_0222A018: ; 0x0222A018
- ldr r3, _0222A020 ; =FUN_0200C6B0
- ldr r0, [r0, #0x30]
- bx r3
- nop
-_0222A020: .word FUN_0200C6B0
-
- thumb_func_start MOD08_0222A024
-MOD08_0222A024: ; 0x0222A024
- add r0, #0xdc
- str r1, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_0222A02C
-MOD08_0222A02C: ; 0x0222A02C
- push {r3, lr}
- sub r1, r1, r3
- neg r1, r1
- sub r0, r0, r2
- lsl r1, r1, #0x10
- lsl r0, r0, #0x10
- asr r1, r1, #0x10
- add r2, r1, #0
- asr r0, r0, #0x10
- mul r2, r1
- add r1, r0, #0
- mul r1, r0
- add r0, r2, r1
- lsl r0, r0, #0xc
- bl FX_Sqrt
- asr r1, r0, #0xb
- lsr r1, r1, #0x14
- add r1, r0, r1
- asr r0, r1, #0xc
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A058
-MOD08_0222A058: ; 0x0222A058
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl FUN_02029CE4
- add r4, r0, #0
- add r0, r5, #0
- bl FUN_02029CE8
- add r1, r0, #0
- add r0, r4, #0
- mov r2, #0xbe
- mov r3, #0x46
- bl MOD08_0222A02C
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A078
-MOD08_0222A078: ; 0x0222A078
- push {r4, lr}
- sub sp, #8
- ldr r3, _0222A0D0 ; =0x0222D4D8
- add r4, r0, #0
- add r2, sp, #0
- mov r1, #7
-_0222A084:
- ldrb r0, [r3]
- add r3, r3, #1
- strb r0, [r2]
- add r2, r2, #1
- sub r1, r1, #1
- bne _0222A084
- add r0, r4, #0
- bl FUN_02029CE0
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_02086018
- cmp r0, #0
- bne _0222A0C6
- add r0, r4, #0
- bl MOD08_0222A058
- cmp r0, #0x38
- blt _0222A0B0
- mov r0, #3
- b _0222A0BE
-_0222A0B0:
- add r0, r0, #1
- mov r1, #0x14
- bl _s32_div_f
- cmp r0, #3
- blt _0222A0BE
- mov r0, #3
-_0222A0BE:
- add r1, sp, #0
- add sp, #8
- ldrb r0, [r1, r0]
- pop {r4, pc}
-_0222A0C6:
- add r0, sp, #0
- ldrb r0, [r0, #1]
- add sp, #8
- pop {r4, pc}
- nop
-_0222A0D0: .word 0x0222D4D8
-
- thumb_func_start MOD08_0222A0D4
-MOD08_0222A0D4: ; 0x0222A0D4
- push {r4, r5, r6, lr}
- add r5, r1, #0
- mov r1, #0x48
- add r6, r0, #0
- bl AllocFromHeap
- add r4, r0, #0
- bne _0222A0EC
- bl ErrorHandling
- mov r0, #0
- pop {r4, r5, r6, pc}
-_0222A0EC:
- bl MOD08_0221268C
- str r6, [r4]
- cmp r5, #0
- beq _0222A0FA
- ldr r0, [r5]
- str r0, [r4, #4]
-_0222A0FA:
- mov r1, #0
- add r2, r4, #0
- add r0, r1, #0
-_0222A100:
- add r1, r1, #1
- str r0, [r2, #8]
- add r2, r2, #4
- cmp r1, #0x10
- blt _0222A100
- add r0, r4, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A110
-MOD08_0222A110: ; 0x0222A110
- push {r4, r5, r6, lr}
- mov r4, #0
- add r5, r4, #0
- add r3, r0, #0
-_0222A118:
- ldr r2, [r3, #8]
- cmp r2, #0
- bne _0222A138
- add r4, r0, #0
- ldr r0, [r0]
- add r4, #8
- lsl r6, r5, #2
- bl MOD08_0222A1A0
- str r0, [r4, r6]
- ldr r0, [r4, r6]
- mov r1, #0
- str r1, [r0, #0x18]
- ldr r4, [r4, r6]
- str r5, [r4]
- b _0222A140
-_0222A138:
- add r5, r5, #1
- add r3, r3, #4
- cmp r5, #0x10
- blt _0222A118
-_0222A140:
- cmp r4, #0
- bne _0222A148
- bl ErrorHandling
-_0222A148:
- add r0, r4, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_0222A14C
-MOD08_0222A14C: ; 0x0222A14C
- push {r4, r5, r6, lr}
- add r6, r0, #0
- mov r4, #0
- add r5, r6, #0
-_0222A154:
- ldr r0, [r5, #8]
- cmp r0, #0
- beq _0222A15E
- bl FreeToHeap
-_0222A15E:
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #0x10
- blt _0222A154
- add r0, r6, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A170
-MOD08_0222A170: ; 0x0222A170
- push {r3, r4, r5, lr}
- add r5, r0, #0
- mov r4, #0
-_0222A176:
- ldr r0, [r5, #8]
- cmp r0, #0
- beq _0222A194
- ldr r0, [r0, #0x10]
- bl MOD08_02215B40
- ldr r1, [r5, #8]
- ldr r0, [r1, #0x20]
- cmp r0, #0
- beq _0222A194
- ldr r0, [r1, #0x18]
- cmp r0, #0
- beq _0222A194
- bl FUN_0200CAB4
-_0222A194:
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #0x10
- blt _0222A176
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A1A0
-MOD08_0222A1A0: ; 0x0222A1A0
- push {r4, r5, r6, lr}
- add r6, r1, #0
- mov r1, #0x24
- add r5, r0, #0
- bl AllocFromHeap
- add r4, r0, #0
- bne _0222A1B8
- bl ErrorHandling
- mov r0, #0
- pop {r4, r5, r6, pc}
-_0222A1B8:
- str r5, [r4, #4]
- ldr r1, [r6]
- ldr r0, [r6, #4]
- str r1, [r4, #8]
- str r0, [r4, #0xc]
- ldr r0, [r4, #8]
- bl MOD08_0222A260
- str r0, [r4, #0x1c]
- ldr r0, [r4, #4]
- ldr r1, [r4, #8]
- mov r2, #1
- bl MOD08_02215AA4
- str r0, [r4, #0x10]
- add r0, r4, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A1DC
-MOD08_0222A1DC: ; 0x0222A1DC
- push {r4, lr}
- add r4, r0, #0
- mov r1, #1
- str r1, [r4, #0x20]
- ldr r1, _0222A1FC ; =MOD08_0222A258
- bl MOD08_0222A22C
- mov r2, #0xfa
- ldr r0, _0222A200 ; =MOD08_0222A208
- add r1, r4, #0
- lsl r2, r2, #2
- bl FUN_0200CA44
- str r0, [r4, #0x18]
- pop {r4, pc}
- nop
-_0222A1FC: .word MOD08_0222A258
-_0222A200: .word MOD08_0222A208
-
- thumb_func_start MOD08_0222A204
-MOD08_0222A204: ; 0x0222A204
- ldr r0, [r0, #0x20]
- bx lr
-
- thumb_func_start MOD08_0222A208
-MOD08_0222A208: ; 0x0222A208
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0x10]
- bl FUN_020133C8
- cmp r0, #0
- bne _0222A228
- mov r0, #0
- str r0, [r4, #0x20]
- ldr r0, [r4, #0x10]
- bl MOD08_02215B40
- add r0, r5, #0
- bl FUN_0200CAB4
-_0222A228:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A22C
-MOD08_0222A22C: ; 0x0222A22C
- push {r4, r5, r6, lr}
- add r5, r0, #0
- ldr r0, [r5, #0x1c]
- add r6, r1, #0
- mov r4, #0
- cmp r0, #0
- ble _0222A24E
-_0222A23A:
- ldr r0, [r5, #0x10]
- add r1, r4, #0
- add r2, r6, #0
- add r3, r5, #0
- bl FUN_020133AC
- ldr r0, [r5, #0x1c]
- add r4, r4, #1
- cmp r4, r0
- blt _0222A23A
-_0222A24E:
- ldr r0, [r5, #0x10]
- ldr r1, [r5, #0xc]
- bl FUN_02013440
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_0222A258
-MOD08_0222A258: ; 0x0222A258
- ldr r3, _0222A25C ; =FUN_0201341C
- bx r3
- .align 2, 0
-_0222A25C: .word FUN_0201341C
-
- thumb_func_start MOD08_0222A260
-MOD08_0222A260: ; 0x0222A260
- push {r3, r4, r5, lr}
- sub sp, #0x58
- ldr r4, _0222A290 ; =0x0222D4E0
- add r5, r0, #0
- add r3, sp, #0
- mov r2, #0xb
-_0222A26C:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222A26C
- sub r0, r5, #5
- cmp r0, #0x16
- blo _0222A284
- bl ErrorHandling
- add sp, #0x58
- mov r0, #0
- pop {r3, r4, r5, pc}
-_0222A284:
- lsl r1, r0, #2
- add r0, sp, #0
- ldr r0, [r0, r1]
- add sp, #0x58
- pop {r3, r4, r5, pc}
- nop
-_0222A290: .word 0x0222D4E0
-
- thumb_func_start MOD08_0222A294
-MOD08_0222A294: ; 0x0222A294
- push {r3, lr}
- add r3, r1, #0
- ldr r1, [r0]
- mov r2, #0
- bl MOD08_0222A2B4
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A2A4
-MOD08_0222A2A4: ; 0x0222A2A4
- push {r3, lr}
- add r3, r1, #0
- ldr r1, [r0, #4]
- mov r2, #1
- bl MOD08_0222A2B4
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A2B4
-MOD08_0222A2B4: ; 0x0222A2B4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- add r5, r0, #0
- ldr r0, [r5]
- add r4, r1, #0
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- add r7, r2, #0
- str r3, [sp, #0x10]
- bl FUN_020080E0
- ldr r0, [r5, #4]
- lsl r1, r0, #1
- add r1, r5, r1
- ldrh r6, [r1, #0x28]
- add r1, r5, r0
- add r1, #0x30
- ldrb r1, [r1]
- add r2, r5, r0
- add r2, #0x38
- str r1, [sp, #0x1c]
- add r1, r5, r0
- lsl r0, r0, #2
- ldrb r2, [r2]
- add r0, r5, r0
- add r1, #0x34
- ldr r0, [r0, #0x3c]
- ldrb r1, [r1]
- str r2, [sp, #0x18]
- str r0, [sp, #0x14]
- cmp r7, #0
- beq _0222A30A
- add r0, r5, r4
- add r0, #0x4c
- ldrb r2, [r0]
- mov r0, #1
- tst r0, r2
- beq _0222A306
- mov r4, #0
- b _0222A31C
-_0222A306:
- mov r4, #2
- b _0222A31C
-_0222A30A:
- add r0, r5, r4
- add r0, #0x4c
- ldrb r2, [r0]
- mov r0, #1
- tst r0, r2
- beq _0222A31A
- mov r4, #2
- b _0222A31C
-_0222A31A:
- mov r4, #0
-_0222A31C:
- lsl r0, r1, #0x18
- lsr r0, r0, #0x18
- str r0, [sp]
- ldr r0, [sp, #0x18]
- ldr r2, [sp, #0x1c]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #4]
- ldr r0, [sp, #0x14]
- lsl r1, r6, #0x10
- lsl r2, r2, #0x18
- lsl r3, r4, #0x18
- str r0, [sp, #8]
- add r0, sp, #0x28
- lsr r1, r1, #0x10
- lsr r2, r2, #0x18
- lsr r3, r3, #0x18
- bl FUN_02068C00
- ldr r0, [r5]
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- bl FUN_020081C0
- add r7, r0, #0
- add r3, sp, #0x28
- add r2, r7, #0
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r0, [r5]
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- bl FUN_020080D0
- ldr r0, [sp, #0x14]
- ldr r2, [sp, #0x10]
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- str r4, [sp, #8]
- ldrh r0, [r7, #6]
- str r0, [sp, #0xc]
- ldr r3, [r5]
- ldrh r0, [r7]
- lsl r3, r3, #2
- add r3, r5, r3
- ldr r3, [r3, #8]
- ldrh r1, [r7, #2]
- ldr r3, [r3]
- bl FUN_02012560
- ldr r1, [r5]
- ldr r3, [sp, #0x18]
- lsl r1, r1, #2
- add r1, r5, r1
- lsl r2, r4, #0x18
- lsl r3, r3, #0x18
- ldrh r0, [r7]
- ldr r1, [r1, #8]
- lsr r2, r2, #0x18
- str r0, [r1, #4]
- ldr r1, [r5]
- ldrh r0, [r7, #4]
- lsl r1, r1, #2
- add r1, r5, r1
- ldr r1, [r1, #8]
- lsr r3, r3, #0x18
- str r0, [r1, #8]
- ldr r0, [sp, #0x14]
- ldr r1, [sp, #0x1c]
- str r0, [sp]
- lsl r0, r6, #0x10
- lsl r1, r1, #0x18
- lsr r0, r0, #0x10
- lsr r1, r1, #0x18
- bl FUN_02068E88
- ldr r1, [r5]
- lsl r1, r1, #2
- add r1, r5, r1
- ldr r1, [r1, #8]
- str r0, [r1, #0xc]
- ldr r0, [r5]
- lsl r1, r0, #2
- add r1, r5, r1
- ldr r1, [r1, #8]
- add r0, r5, r0
- ldr r1, [r1, #0xc]
- add r0, #0x4c
- lsl r1, r1, #0x18
- asr r7, r1, #0x18
- ldrb r0, [r0]
- mov r1, #1
- bl MOD08_0222A6A4
- str r0, [sp, #0x20]
- ldr r0, [r5]
- ldr r2, [sp, #0x20]
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- mov r1, #1
- add r2, r2, r7
- bl FUN_02007558
- cmp r4, #2
- bne _0222A48E
- mov r0, #1
- str r0, [sp]
- add r0, sp, #0x24
- add r0, #2
- mov r1, #0x8a
- mov r2, #0
- add r3, r6, #0
- bl ReadFromNarcMemberByIdPair
- mov r0, #1
- str r0, [sp]
- add r0, sp, #0x24
- add r0, #1
- mov r1, #0x90
- mov r2, #0
- add r3, r6, #0
- bl ReadFromNarcMemberByIdPair
- mov r0, #1
- str r0, [sp]
- add r0, sp, #0x24
- mov r1, #0x8e
- mov r2, #0
- add r3, r6, #0
- bl ReadFromNarcMemberByIdPair
- ldr r0, [r5]
- add r2, sp, #0x24
- lsl r0, r0, #2
- add r0, r5, r0
- ldrb r2, [r2]
- ldr r0, [r0, #0x18]
- mov r1, #0x2e
- bl FUN_02007558
- ldr r0, [r5]
- ldr r2, [sp, #0x20]
- lsl r0, r0, #2
- add r0, r5, r0
- add r2, #0x24
- ldr r0, [r0, #0x18]
- mov r1, #0x14
- str r2, [sp, #0x20]
- bl FUN_02007558
- ldr r0, [r5]
- add r3, sp, #0x24
- lsl r0, r0, #2
- mov r2, #1
- add r0, r5, r0
- ldrsb r2, [r3, r2]
- ldr r0, [r0, #0x18]
- mov r1, #0x15
- bl FUN_02007558
- ldr r0, [r5]
- mov r2, #0x24
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- mov r1, #0x16
- sub r2, r2, r7
- bl FUN_02007558
- ldr r0, [r5]
- add r3, sp, #0x24
- lsl r0, r0, #2
- mov r2, #2
- add r0, r5, r0
- ldrsb r2, [r3, r2]
- ldr r0, [r0, #0x18]
- mov r1, #0x29
- bl FUN_02007558
-_0222A48E:
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A494
-MOD08_0222A494: ; 0x0222A494
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- add r5, r0, #0
- ldr r0, [r5]
- str r1, [sp, #0x10]
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- bl FUN_0200813C
- ldr r0, [r5]
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- bl FUN_020081C0
- add r4, r0, #0
- ldr r0, [r5]
- lsl r1, r0, #1
- add r1, r5, r1
- ldrh r1, [r1, #0x28]
- lsl r3, r0, #2
- str r1, [sp, #0x1c]
- add r1, r5, r0
- add r1, #0x30
- ldrb r1, [r1]
- str r1, [sp, #0x18]
- add r1, r5, r0
- add r1, #0x38
- ldrb r1, [r1]
- add r0, r5, r0
- add r0, #0x4c
- str r1, [sp, #0x14]
- add r1, r5, r3
- ldr r7, [r1, #0x3c]
- ldrb r1, [r0]
- mov r0, #1
- tst r0, r1
- beq _0222A4E6
- mov r6, #2
- b _0222A4E8
-_0222A4E6:
- mov r6, #0
-_0222A4E8:
- str r7, [sp]
- mov r0, #0
- str r0, [sp, #4]
- str r6, [sp, #8]
- ldrh r0, [r4, #6]
- add r3, r5, r3
- ldr r2, [sp, #0x10]
- str r0, [sp, #0xc]
- ldr r3, [r3, #8]
- ldrh r0, [r4]
- ldrh r1, [r4, #2]
- ldr r3, [r3]
- bl FUN_02012560
- ldr r1, [r5]
- ldrh r0, [r4]
- lsl r1, r1, #2
- add r1, r5, r1
- ldr r1, [r1, #8]
- ldr r3, [sp, #0x14]
- str r0, [r1, #4]
- ldr r1, [r5]
- lsl r2, r6, #0x18
- lsl r1, r1, #2
- add r1, r5, r1
- lsl r3, r3, #0x18
- ldrh r0, [r4, #4]
- ldr r1, [r1, #8]
- lsr r2, r2, #0x18
- str r0, [r1, #8]
- ldr r0, [sp, #0x1c]
- ldr r1, [sp, #0x18]
- lsl r0, r0, #0x10
- lsl r1, r1, #0x18
- str r7, [sp]
- lsr r0, r0, #0x10
- lsr r1, r1, #0x18
- lsr r3, r3, #0x18
- bl FUN_02068E88
- ldr r1, [r5]
- lsl r1, r1, #2
- add r1, r5, r1
- ldr r1, [r1, #8]
- str r0, [r1, #0xc]
- ldr r0, [r5]
- mov r1, #1
- lsl r4, r0, #2
- add r0, r5, r0
- add r0, #0x4c
- ldrb r0, [r0]
- bl MOD08_0222A6A4
- add r1, r5, r4
- add r2, r0, #0
- ldr r0, [r1, #8]
- ldr r3, [r0, #0xc]
- ldr r0, [r1, #0x18]
- mov r1, #1
- add r2, r3, r2
- bl FUN_02007558
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222A568
-MOD08_0222A568: ; 0x0222A568
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r0, #0
- ldr r0, [r5]
- add r6, r1, #0
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- bl FUN_020080E0
- mov r0, #0x75
- add r2, sp, #0
- strh r0, [r2, #4]
- mov r0, #0xd2
- strh r0, [r2, #8]
- mov r0, #0
- strh r0, [r2, #0xa]
- strb r0, [r2, #0xc]
- str r0, [sp, #0x10]
- ldr r0, [r5]
- add r1, r5, r0
- add r1, #0x4c
- ldrb r3, [r1]
- mov r1, #1
- tst r1, r3
- beq _0222A5A4
- mov r1, #0xd1
- strh r1, [r2, #6]
- mov r4, #0x87
- b _0222A5AA
-_0222A5A4:
- mov r1, #0xd0
- strh r1, [r2, #6]
- mov r4, #0x86
-_0222A5AA:
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- bl FUN_020081C0
- add r7, r0, #0
- add r3, sp, #4
- add r2, r7, #0
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r0, [r5]
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- bl FUN_020080D0
- ldr r3, [r5]
- ldrh r0, [r7]
- lsl r3, r3, #2
- add r3, r5, r3
- ldr r3, [r3, #8]
- ldrh r1, [r7, #2]
- ldr r3, [r3]
- add r2, r6, #0
- bl FUN_02012420
- ldr r2, [r5]
- add r1, sp, #0
- lsl r2, r2, #2
- add r2, r5, r2
- ldrh r0, [r1, #4]
- ldr r2, [r2, #8]
- str r0, [r2, #4]
- ldr r0, [r5]
- ldrh r1, [r1, #8]
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #8]
- add r2, r4, #0
- str r1, [r0, #8]
- add r0, sp, #0
- mov r1, #0x79
- bl ReadWholeNarcMemberByIdPair
- add r0, sp, #0
- ldrb r1, [r0]
- ldr r0, [r5]
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #8]
- str r1, [r0, #0xc]
- ldr r0, [r5]
- mov r1, #1
- lsl r4, r0, #2
- add r0, r5, r0
- add r0, #0x4c
- ldrb r0, [r0]
- bl MOD08_0222A6A4
- add r2, r5, r4
- ldr r1, [r2, #8]
- ldr r1, [r1, #0xc]
- add r4, r1, r0
- ldr r0, [r2, #0x18]
- mov r1, #1
- add r2, r4, #0
- bl FUN_02007558
- ldr r1, [r5]
- mov r2, #1
- add r0, r5, r1
- add r0, #0x4c
- ldrb r0, [r0]
- tst r0, r2
- beq _0222A69E
- lsl r0, r1, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- mov r1, #0x2e
- bl FUN_02007558
- ldr r0, [r5]
- add r2, sp, #0
- ldrb r3, [r2]
- lsl r0, r0, #2
- add r0, r5, r0
- mov r2, #0x24
- sub r2, r2, r3
- ldr r0, [r0, #0x18]
- mov r1, #0x14
- add r2, r4, r2
- bl FUN_02007558
- ldr r0, [r5]
- mov r1, #0x15
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r5]
- add r2, sp, #0
- lsl r0, r0, #2
- ldrb r3, [r2]
- add r0, r5, r0
- mov r2, #0x24
- ldr r0, [r0, #0x18]
- mov r1, #0x16
- sub r2, r2, r3
- bl FUN_02007558
- ldr r0, [r5]
- mov r1, #0x29
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- mov r2, #0
- bl FUN_02007558
-_0222A69E:
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A6A4
-MOD08_0222A6A4: ; 0x0222A6A4
- cmp r1, #0
- bne _0222A6B0
- lsl r1, r0, #2
- ldr r0, _0222A6C0 ; =0x0222D538
- ldrsh r0, [r0, r1]
- bx lr
-_0222A6B0:
- mov r2, #6
- mul r2, r0
- ldr r0, _0222A6C4 ; =0x0222D550
- lsl r1, r1, #1
- add r0, r0, r2
- ldrsh r0, [r1, r0]
- bx lr
- nop
-_0222A6C0: .word 0x0222D538
-_0222A6C4: .word 0x0222D550
-
- thumb_func_start MOD08_0222A6C8
-MOD08_0222A6C8: ; 0x0222A6C8
- ldr r1, _0222A75C ; =0x0000013B
- cmp r0, r1
- bhi _0222A6F6
- bhs _0222A754
- cmp r0, #0x7d
- bhi _0222A6E4
- bhs _0222A754
- cmp r0, #0x63
- bhi _0222A6DE
- beq _0222A754
- b _0222A758
-_0222A6DE:
- cmp r0, #0x78
- beq _0222A754
- b _0222A758
-_0222A6E4:
- cmp r0, #0xc9
- bhi _0222A6F0
- bhs _0222A754
- cmp r0, #0x9f
- beq _0222A754
- b _0222A758
-_0222A6F0:
- cmp r0, #0xd7
- beq _0222A754
- b _0222A758
-_0222A6F6:
- add r2, r1, #0
- add r2, #0x4a
- cmp r0, r2
- bhi _0222A71E
- add r2, r1, #0
- add r2, #0x4a
- cmp r0, r2
- bhs _0222A754
- add r2, r1, #0
- add r2, #0x14
- cmp r0, r2
- bhi _0222A716
- add r1, #0x14
- cmp r0, r1
- beq _0222A754
- b _0222A758
-_0222A716:
- add r1, #0x2c
- cmp r0, r1
- beq _0222A754
- b _0222A758
-_0222A71E:
- add r2, r1, #0
- add r2, #0x98
- cmp r0, r2
- bhi _0222A74E
- add r2, r1, #0
- add r2, #0x98
- cmp r0, r2
- bhs _0222A754
- add r2, r1, #0
- add r2, #0x5c
- cmp r0, r2
- bhi _0222A758
- add r2, r1, #0
- add r2, #0x5b
- cmp r0, r2
- blo _0222A758
- add r2, r1, #0
- add r2, #0x5b
- cmp r0, r2
- beq _0222A754
- add r1, #0x5c
- cmp r0, r1
- beq _0222A754
- b _0222A758
-_0222A74E:
- add r1, #0x99
- cmp r0, r1
- bne _0222A758
-_0222A754:
- mov r0, #0
- bx lr
-_0222A758:
- mov r0, #1
- bx lr
- .align 2, 0
-_0222A75C: .word 0x0000013B
-
- .section .rodata
- ; 0x0222A760
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD08_02211E60
+MOD08_02211E60: ; 0x02211E60
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02211E70
+ lsl r1, r0, #2
+ ldr r0, _02211E74 ; =0x0222A9E4
+ ldr r0, [r0, r1]
+ bx lr
+_02211E70:
+ ldr r0, _02211E78 ; =0x0222A780
+ bx lr
+ .align 2, 0
+_02211E74: .word 0x0222A9E4
+_02211E78: .word 0x0222A780
+
+ thumb_func_start MOD08_02211E7C
+MOD08_02211E7C: ; 0x02211E7C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ add r4, r3, #0
+ bl MOD08_02211E60
+ ldr r3, [sp, #0x10]
+ add r1, r0, #0
+ mov r0, #0x20
+ lsl r3, r3, #0x14
+ str r0, [sp]
+ add r0, r5, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x10
+ bl FUN_02003054
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02211EA0
+MOD08_02211EA0: ; 0x02211EA0
+ add r1, r0, #0
+ add r1, #0x8d
+ ldrb r1, [r1]
+ cmp r1, #0
+ bne _02211EB2
+ ldr r1, _02211EC0 ; =MOD08_02211EC4
+ add r0, #0xbc
+ str r1, [r0]
+ bx lr
+_02211EB2:
+ add r1, r0, #0
+ add r1, #0x8d
+ ldrb r1, [r1]
+ add r0, #0x8d
+ sub r1, r1, #1
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_02211EC0: .word MOD08_02211EC4
+
+ thumb_func_start MOD08_02211EC4
+MOD08_02211EC4: ; 0x02211EC4
+ push {r4, lr}
+ add r4, r0, #0
+_02211EC8:
+ ldr r0, [r4, #0x18]
+ ldr r0, [r0]
+ bl MOD08_0221533C
+ add r1, r0, #0
+ add r0, r4, #0
+ blx r1
+ add r0, r4, #0
+ add r0, #0x8d
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02211EE6
+ ldr r0, [r4, #0x10]
+ cmp r0, #1
+ beq _02211EC8
+_02211EE6:
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02211EE8
+MOD08_02211EE8: ; 0x02211EE8
+ push {r3, r4, r5, lr}
+ add r5, r2, #0
+ add r4, r3, #0
+ cmp r0, #1
+ beq _02211EF8
+ cmp r0, #2
+ beq _02211F06
+ b _02211F14
+_02211EF8:
+ add r0, r1, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ add r1, #0x8e
+ add r0, r0, #1
+ strh r0, [r1]
+ b _02211F18
+_02211F06:
+ add r0, r1, #0
+ add r0, #0x90
+ ldrh r0, [r0]
+ add r1, #0x90
+ add r0, r0, #1
+ strh r0, [r1]
+ b _02211F18
+_02211F14:
+ bl ErrorHandling
+_02211F18:
+ ldr r2, [sp, #0x10]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02211F24
+MOD08_02211F24: ; 0x02211F24
+ push {r4, lr}
+ add r4, r2, #0
+ cmp r0, #1
+ beq _02211F32
+ cmp r0, #2
+ beq _02211F40
+ b _02211F4E
+_02211F32:
+ add r0, r1, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ add r1, #0x8e
+ sub r0, r0, #1
+ strh r0, [r1]
+ b _02211F52
+_02211F40:
+ add r0, r1, #0
+ add r0, #0x90
+ ldrh r0, [r0]
+ add r1, #0x90
+ sub r0, r0, #1
+ strh r0, [r1]
+ b _02211F52
+_02211F4E:
+ bl ErrorHandling
+_02211F52:
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02211F5C
+MOD08_02211F5C: ; 0x02211F5C
+ push {r3, r4, r5, lr}
+ mov r1, #0x69
+ lsl r1, r1, #2
+ add r5, r0, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _02211F78
+ cmp r4, #0
+ bne _02211F74
+ bl ErrorHandling
+_02211F74:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02211F78:
+ mov r2, #0x69
+ mov r1, #0
+ lsl r2, r2, #2
+ bl memset
+ mov r1, #0x47
+ str r5, [r4]
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ lsl r1, r1, #2
+ bl AllocFromHeap
+ add r1, r4, #0
+ add r1, #0xc0
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02211FAC
+ bne _02211FA8
+ bl ErrorHandling
+_02211FA8:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02211FAC:
+ mov r2, #0x47
+ mov r1, #0
+ lsl r2, r2, #2
+ bl memset
+ mov r1, #0
+ str r1, [r4, #0xc]
+ str r1, [r4, #0x18]
+ add r2, r4, #0
+ add r3, r1, #0
+_02211FC0:
+ add r0, r2, #0
+ add r0, #0xcc
+ add r1, r1, #1
+ add r2, r2, #4
+ str r3, [r0]
+ cmp r1, #4
+ blt _02211FC0
+ mov r0, #0x59
+ add r2, r4, #0
+ mov r1, #0
+ lsl r0, r0, #2
+_02211FD6:
+ add r3, r3, #1
+ str r1, [r2, r0]
+ add r2, r2, #4
+ cmp r3, #5
+ blt _02211FD6
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [r4, #0xc]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02211FF0
+MOD08_02211FF0: ; 0x02211FF0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ cmp r5, #0
+ bne _02211FFE
+ bl ErrorHandling
+_02211FFE:
+ str r4, [r5, #8]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212004
+MOD08_02212004: ; 0x02212004
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221200E
+ bl ErrorHandling
+_0221200E:
+ ldr r0, [r4, #8]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212014
+MOD08_02212014: ; 0x02212014
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221201E
+ bl ErrorHandling
+_0221201E:
+ ldr r0, [r4]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212024
+MOD08_02212024: ; 0x02212024
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD08_022123CC
+ cmp r0, #0
+ bne _02212034
+ mov r0, #0
+ pop {r4, pc}
+_02212034:
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl FreeToHeap
+ add r0, r4, #0
+ bl FreeToHeap
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02212048
+MOD08_02212048: ; 0x02212048
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ add r4, r0, #0
+ add r5, r1, #0
+ str r2, [sp]
+ str r3, [sp, #4]
+ bl MOD08_0221268C
+ add r0, r4, #0
+ bl MOD08_022123CC
+ cmp r0, #0
+ bne _02212068
+ add sp, #0x3c
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_02212068:
+ mov r3, #0
+ mov r2, #1
+ add r1, r3, #0
+_0221206E:
+ add r0, r4, r3
+ add r0, #0x6c
+ strb r2, [r0]
+ add r0, r4, r3
+ add r0, #0x7c
+ add r3, r3, #1
+ strb r1, [r0]
+ cmp r3, #0x10
+ blt _0221206E
+ add r3, r4, #0
+ mov r0, #0
+_02212084:
+ add r2, r3, #0
+ add r2, #0x94
+ add r1, r1, #1
+ add r3, r3, #4
+ str r0, [r2]
+ cmp r1, #0xa
+ blt _02212084
+ add r3, r4, #0
+ mov r2, #0
+_02212096:
+ str r2, [r3, #0x30]
+ add r1, r3, #0
+ str r2, [r3, #0x28]
+ add r1, #0x2c
+ strb r2, [r1]
+ add r1, r3, #0
+ add r1, #0x2d
+ add r0, r0, #1
+ add r3, #0xc
+ strb r2, [r1]
+ cmp r0, #3
+ blt _02212096
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrb r1, [r5]
+ ldr r0, [r0]
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrb r1, [r5, #1]
+ ldr r0, [r0]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrh r1, [r5, #2]
+ ldr r0, [r0]
+ strh r1, [r0, #2]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r5, #4]
+ ldr r0, [r0]
+ str r1, [r0, #4]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrh r1, [r5, #8]
+ ldr r0, [r0]
+ strh r1, [r0, #8]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrh r1, [r5, #0xc]
+ ldr r0, [r0]
+ strh r1, [r0, #0xa]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r5, #0x10]
+ ldr r0, [r0]
+ str r1, [r0, #0xc]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrh r1, [r5, #0xa]
+ ldr r0, [r0]
+ strh r1, [r0, #0x10]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r5, #0x54]
+ ldr r0, [r0]
+ strh r1, [r0, #0x12]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrh r1, [r5, #0x14]
+ ldr r0, [r0]
+ strh r1, [r0, #0x14]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrh r1, [r5, #0x16]
+ ldr r0, [r0]
+ strh r1, [r0, #0x16]
+ ldrh r0, [r5, #0xe]
+ lsl r0, r0, #0x1e
+ lsr r2, r0, #0x1f
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r2, [r1, r0]
+ ldr r0, [sp, #4]
+ ldr r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ str r1, [r0]
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02212148
+ bl ErrorHandling
+_02212148:
+ ldr r0, [sp, #4]
+ mov r5, #0
+ ldr r1, [r0, #4]
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #4]
+ ldr r1, [r0, #8]
+ add r0, r4, #0
+ add r0, #0xc8
+ str r1, [r0]
+ ldr r0, [sp, #4]
+ add r3, r5, #0
+ ldr r1, [r0, #0x30]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r7, r5, #0
+ add r0, #0xd4
+ str r1, [r0]
+ add r0, r2, #0
+ mov ip, r0
+_02212176:
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ ldr r0, [r2, #0xc]
+ add r1, r1, r3
+ add r1, #0xb0
+ str r0, [r1]
+ ldr r0, [sp, #4]
+ add r1, r0, r5
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrb r6, [r1, #0x1c]
+ add r0, r0, r5
+ add r0, #0xc0
+ strb r6, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r6, [r2, #0x20]
+ add r0, r0, r3
+ add r0, #0xc4
+ str r6, [r0]
+ mov r0, ip
+ ldrh r6, [r0, #0x34]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r7
+ add r0, #0xd8
+ strh r6, [r0]
+ add r0, r1, #0
+ add r0, #0x3c
+ ldrb r6, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r7, r7, #2
+ add r0, r0, r5
+ add r0, #0xe0
+ strb r6, [r0]
+ add r0, r1, #0
+ add r0, #0x40
+ ldrb r6, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, #0x44
+ add r0, r0, r5
+ add r0, #0xe4
+ strb r6, [r0]
+ ldrb r0, [r1]
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r1, r1, r5
+ add r1, #0xe8
+ strb r0, [r1]
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ ldr r0, [r2, #0x48]
+ add r1, r1, r3
+ add r1, #0xec
+ str r0, [r1]
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ ldr r0, [r2, #0x58]
+ add r1, r1, r3
+ add r1, #0xfc
+ str r0, [r1]
+ mov r0, ip
+ add r0, r0, #2
+ add r5, r5, #1
+ add r2, r2, #4
+ add r3, r3, #4
+ mov ip, r0
+ cmp r5, #4
+ blt _02212176
+ ldr r5, [sp, #4]
+ mov r2, #0x61
+ lsl r2, r2, #2
+ add r5, #0x6c
+ add r3, r4, r2
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [sp, #4]
+ add r0, #0x84
+ ldr r3, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ add r0, r2, #0
+ sub r0, #0x78
+ str r3, [r1, r0]
+ ldr r0, [sp, #4]
+ add r0, #0x8c
+ ldr r3, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ add r0, r2, #0
+ sub r0, #0x70
+ str r3, [r1, r0]
+ ldr r0, [sp, #4]
+ add r0, #0x88
+ ldr r3, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ add r0, r2, #0
+ sub r0, #0x74
+ str r3, [r1, r0]
+ ldr r0, [sp]
+ sub r2, #0x62
+ cmp r0, r2
+ bne _02212296
+ ldr r5, _0221236C ; =0x0222AB18
+ add r3, sp, #8
+ mov r2, #6
+_02212270:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02212270
+ ldr r0, [r5]
+ str r0, [r3]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x12]
+ cmp r0, #0xc
+ blo _0221228E
+ mov r0, #0xa1
+ str r0, [sp]
+ b _02212296
+_0221228E:
+ lsl r1, r0, #2
+ add r0, sp, #8
+ ldr r0, [r0, r1]
+ str r0, [sp]
+_02212296:
+ ldr r0, [sp]
+ cmp r0, #0
+ beq _022122A2
+ ldr r1, _02212370 ; =0x000001D3
+ cmp r0, r1
+ ble _022122A6
+_022122A2:
+ mov r0, #1
+ str r0, [sp]
+_022122A6:
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x68]
+ str r0, [r4, #4]
+ ldr r1, [sp]
+ ldr r2, [r4]
+ bl AllocAndReadWholeNarcMemberByIdPair
+ str r0, [r4, #0x14]
+ cmp r0, #0
+ bne _022122C6
+ bne _022122C0
+ bl ErrorHandling
+_022122C0:
+ add sp, #0x3c
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_022122C6:
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_02018884
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_02018884
+ ldr r1, _02212374 ; =0x000001A1
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #2
+ bl FUN_02018884
+ ldr r1, _02212378 ; =0x000001A2
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #3
+ bl FUN_02018884
+ ldr r1, _0221237C ; =0x000001A3
+ mov r3, #0
+ strb r0, [r4, r1]
+ add r2, r4, #0
+ add r1, r3, #0
+_02212310:
+ add r0, r2, #0
+ add r0, #0xdc
+ add r3, r3, #1
+ add r2, r2, #4
+ str r1, [r0]
+ cmp r3, #0xa
+ blt _02212310
+ mov r2, #0x4f
+ lsl r2, r2, #2
+ add r3, r2, #0
+ add r5, r4, #0
+ mov r0, #0
+ add r3, #0x14
+_0221232A:
+ str r0, [r5, r2]
+ str r0, [r5, r3]
+ add r1, r1, #1
+ add r5, r5, #4
+ cmp r1, #5
+ blt _0221232A
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ add r1, r4, #0
+ ldr r2, _02212380 ; =MOD08_02211EC4
+ add r1, #0xbc
+ str r2, [r1]
+ add r1, r4, #0
+ add r1, #0x8d
+ strb r0, [r1]
+ add r0, r4, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _0221235C
+ mov r0, #0x67
+ mov r1, #7
+ lsl r0, r0, #2
+ b _02212362
+_0221235C:
+ mov r1, #0xff
+ add r0, r1, #0
+ add r0, #0x9d
+_02212362:
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [r4, #0x10]
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221236C: .word 0x0222AB18
+_02212370: .word 0x000001D3
+_02212374: .word 0x000001A1
+_02212378: .word 0x000001A2
+_0221237C: .word 0x000001A3
+_02212380: .word MOD08_02211EC4
+
+ thumb_func_start MOD08_02212384
+MOD08_02212384: ; 0x02212384
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD08_022123CC
+ cmp r0, #0
+ bne _02212394
+ mov r0, #0
+ pop {r4, pc}
+_02212394:
+ add r0, r4, #0
+ add r4, #0xbc
+ ldr r1, [r4]
+ blx r1
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022123A0
+MOD08_022123A0: ; 0x022123A0
+ ldr r0, [r0, #0x10]
+ cmp r0, #1
+ bne _022123AA
+ mov r0, #1
+ bx lr
+_022123AA:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022123B0
+MOD08_022123B0: ; 0x022123B0
+ push {r3, lr}
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _022123C2
+ bne _022123BE
+ bl ErrorHandling
+_022123BE:
+ mov r0, #0
+ pop {r3, pc}
+_022123C2:
+ bl FreeToHeap
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022123CC
+MOD08_022123CC: ; 0x022123CC
+ cmp r0, #0
+ bne _022123D4
+ mov r0, #0
+ bx lr
+_022123D4:
+ ldr r0, [r0, #0xc]
+ cmp r0, #1
+ bne _022123DE
+ mov r0, #1
+ bx lr
+_022123DE:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022123E4
+MOD08_022123E4: ; 0x022123E4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r6, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ str r3, [sp]
+ mov r0, #1
+ add r1, r6, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl MOD08_02211EE8
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02212400
+MOD08_02212400: ; 0x02212400
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _02212418 ; =0x0000044C
+ add r4, r1, #0
+ add r3, r2, #0
+ str r0, [sp]
+ mov r0, #1
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD08_02211EE8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02212418: .word 0x0000044C
+
+ thumb_func_start MOD08_0221241C
+MOD08_0221241C: ; 0x0221241C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r6, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ str r3, [sp]
+ mov r0, #2
+ add r1, r6, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl MOD08_02211EE8
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02212438
+MOD08_02212438: ; 0x02212438
+ add r3, r0, #0
+ add r2, r1, #0
+ add r1, r3, #0
+ ldr r3, _02212444 ; =MOD08_02211F24
+ mov r0, #1
+ bx r3
+ .align 2, 0
+_02212444: .word MOD08_02211F24
+
+ thumb_func_start MOD08_02212448
+MOD08_02212448: ; 0x02212448
+ add r3, r0, #0
+ add r2, r1, #0
+ add r1, r3, #0
+ ldr r3, _02212454 ; =MOD08_02211F24
+ mov r0, #2
+ bx r3
+ .align 2, 0
+_02212454: .word MOD08_02211F24
+
+ thumb_func_start MOD08_02212458
+MOD08_02212458: ; 0x02212458
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x14]
+ bx lr
+
+ thumb_func_start MOD08_02212460
+MOD08_02212460: ; 0x02212460
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x16]
+ bx lr
+
+ thumb_func_start MOD08_02212468
+MOD08_02212468: ; 0x02212468
+ add r0, #0xc0
+ ldr r1, [r0]
+ ldr r0, [r1, #0x18]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ ldr r0, [r0, #0x1c]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02212478
+MOD08_02212478: ; 0x02212478
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ ldr r0, [r0, #0x1c]
+ bx lr
+
+ thumb_func_start MOD08_02212484
+MOD08_02212484: ; 0x02212484
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ ldr r0, [r0, #0x5c]
+ bx lr
+
+ thumb_func_start MOD08_02212490
+MOD08_02212490: ; 0x02212490
+ add r0, #0xc4
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02212498
+MOD08_02212498: ; 0x02212498
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ cmp r5, #0xa
+ blt _022124A6
+ bl ErrorHandling
+_022124A6:
+ lsl r0, r5, #2
+ add r0, r4, r0
+ add r0, #0x94
+ ldr r0, [r0]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022124B0
+MOD08_022124B0: ; 0x022124B0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ cmp r4, #0xa
+ blt _022124BE
+ bl ErrorHandling
+_022124BE:
+ cmp r5, #0
+ bne _022124C6
+ bl ErrorHandling
+_022124C6:
+ add r5, #0xdc
+ lsl r4, r4, #2
+ ldr r0, [r5, r4]
+ cmp r0, #0
+ bne _022124D4
+ bl ErrorHandling
+_022124D4:
+ ldr r0, [r5, r4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022124D8
+MOD08_022124D8: ; 0x022124D8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ cmp r4, #5
+ blt _022124E6
+ bl ErrorHandling
+_022124E6:
+ cmp r5, #0
+ bne _022124EE
+ bl ErrorHandling
+_022124EE:
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ add r5, r5, r0
+ lsl r4, r4, #2
+ ldr r0, [r5, r4]
+ cmp r0, #0
+ bne _02212500
+ bl ErrorHandling
+_02212500:
+ ldr r0, [r5, r4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02212504
+MOD08_02212504: ; 0x02212504
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221250E
+ bl ErrorHandling
+_0221250E:
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212518
+MOD08_02212518: ; 0x02212518
+ add r0, #0xcc
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02212520
+MOD08_02212520: ; 0x02212520
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_0221252C
+MOD08_0221252C: ; 0x0221252C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ mov r1, #0x3c
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _02212544
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02212544:
+ mov r1, #0
+ mov r2, #0x3c
+ bl memset
+ add r0, r5, #0
+ add r0, #0x90
+ ldrh r0, [r0]
+ add r5, #0x90
+ add r0, r0, #1
+ strh r0, [r5]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0221255C
+MOD08_0221255C: ; 0x0221255C
+ ldr r3, _02212568 ; =FUN_0200CA44
+ str r0, [r1, #0x38]
+ ldr r0, _0221256C ; =MOD08_02212574
+ ldr r2, _02212570 ; =0x0000044C
+ bx r3
+ nop
+_02212568: .word FUN_0200CA44
+_0221256C: .word MOD08_02212574
+_02212570: .word 0x0000044C
+
+ thumb_func_start MOD08_02212574
+MOD08_02212574: ; 0x02212574
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _022125B0 ; =0x0222AAC4
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ bne _022125AE
+ ldr r0, [r4, #0x38]
+ add r1, r0, #0
+ add r1, #0x90
+ ldrh r1, [r1]
+ cmp r1, #0
+ beq _022125A2
+ add r1, r0, #0
+ add r1, #0x90
+ ldrh r1, [r1]
+ add r0, #0x90
+ sub r1, r1, #1
+ strh r1, [r0]
+_022125A2:
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_022125AE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022125B0: .word 0x0222AAC4
+
+ thumb_func_start MOD08_022125B4
+MOD08_022125B4: ; 0x022125B4
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD08_022125B8
+MOD08_022125B8: ; 0x022125B8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrb r1, [r5, #4]
+ add r0, r1, #1
+ strb r0, [r5, #4]
+ ldrb r0, [r5, #3]
+ cmp r1, r0
+ bhs _022125CC
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022125CC:
+ mov r0, #0
+ strb r0, [r5, #4]
+ ldr r2, [r5, #0x14]
+ ldr r1, [r5, #0x10]
+ mov r4, #1
+ add r1, r2, r1
+ str r1, [r5, #0x14]
+ ldr r1, [r5, #0x10]
+ cmp r1, #0
+ bne _022125E4
+ add r4, r0, #0
+ b _022125FC
+_022125E4:
+ ldr r2, [r5, #0xc]
+ ldr r1, [r5, #8]
+ cmp r1, r2
+ ldr r1, [r5, #0x14]
+ bge _022125F6
+ cmp r1, r2
+ blt _022125FC
+ add r4, r0, #0
+ b _022125FC
+_022125F6:
+ cmp r1, r2
+ bgt _022125FC
+ add r4, r0, #0
+_022125FC:
+ ldr r0, [r5, #0x14]
+ bl FUN_0200554C
+ ldrh r0, [r5, #0x1a]
+ bl FUN_02005508
+ cmp r0, #0
+ bne _0221260E
+ mov r4, #0
+_0221260E:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212614
+MOD08_02212614: ; 0x02212614
+ ldr r3, _02212618 ; =MOD08_022125B8
+ bx r3
+ .align 2, 0
+_02212618: .word MOD08_022125B8
+
+ thumb_func_start MOD08_0221261C
+MOD08_0221261C: ; 0x0221261C
+ ldr r3, _02212620 ; =MOD08_022125B8
+ bx r3
+ .align 2, 0
+_02212620: .word MOD08_022125B8
+
+ thumb_func_start MOD08_02212624
+MOD08_02212624: ; 0x02212624
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrb r1, [r5, #4]
+ add r0, r1, #1
+ strb r0, [r5, #4]
+ ldrb r0, [r5, #3]
+ cmp r1, r0
+ bhs _02212638
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02212638:
+ mov r0, #0
+ strb r0, [r5, #4]
+ ldrb r0, [r5, #0x18]
+ mov r4, #1
+ sub r0, r0, #1
+ strb r0, [r5, #0x18]
+ ldrh r0, [r5, #0x1a]
+ bl FUN_020054C8
+ ldrh r0, [r5, #0x1a]
+ ldr r1, _02212660 ; =0x0000FFFF
+ ldr r2, [r5, #0x14]
+ bl FUN_02005530
+ ldrb r0, [r5, #0x18]
+ cmp r0, #0
+ bne _0221265C
+ mov r4, #0
+_0221265C:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02212660: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02212664
+MOD08_02212664: ; 0x02212664
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r2, [r4, #3]
+ mov r0, #1
+ sub r1, r2, #1
+ strb r1, [r4, #3]
+ cmp r2, #0
+ bne _02212686
+ ldrh r0, [r4, #0x1a]
+ bl FUN_020054C8
+ ldrh r0, [r4, #0x1a]
+ ldr r1, _02212688 ; =0x0000FFFF
+ ldr r2, [r4, #0x14]
+ bl FUN_02005530
+ mov r0, #0
+_02212686:
+ pop {r4, pc}
+ .align 2, 0
+_02212688: .word 0x0000FFFF
+
+ thumb_func_start MOD08_0221268C
+MOD08_0221268C: ; 0x0221268C
+ push {r3, lr}
+ ldr r0, _022126A0 ; =0x04000050
+ mov r3, #8
+ mov r1, #0
+ mov r2, #0x3f
+ str r3, [sp]
+ bl G2x_SetBlendAlpha_
+ pop {r3, pc}
+ nop
+_022126A0: .word 0x04000050
+
+ thumb_func_start MOD08_022126A4
+MOD08_022126A4: ; 0x022126A4
+ push {r3, r4}
+ add r2, r0, #0
+ mov r1, #1
+ add r2, #0x8d
+ strb r1, [r2]
+ ldr r3, _022126D8 ; =0x021C48B8
+ lsl r2, r1, #9
+ ldr r4, [r3, #0x44]
+ tst r2, r4
+ beq _022126D4
+ add r2, r1, #0
+ add r2, #0xff
+ tst r2, r4
+ beq _022126D4
+ ldr r2, [r3, #0x48]
+ lsl r1, r1, #0xa
+ tst r1, r2
+ beq _022126D4
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ mov r1, #0
+ add r0, #0x8d
+ strb r1, [r0]
+_022126D4:
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_022126D8: .word 0x021C48B8
+
+ thumb_func_start MOD08_022126DC
+MOD08_022126DC: ; 0x022126DC
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r0, #0
+ add r1, #0x8d
+ strb r2, [r1]
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r1, _022126F8 ; =MOD08_02211EA0
+ add r0, #0xbc
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_022126F8: .word MOD08_02211EA0
+
+ thumb_func_start MOD08_022126FC
+MOD08_022126FC: ; 0x022126FC
+ add r1, r0, #0
+ add r1, #0x8e
+ ldrh r1, [r1]
+ cmp r1, #0
+ bne _02212714
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ mov r1, #0
+ add r0, #0x8d
+ strb r1, [r0]
+ bx lr
+_02212714:
+ mov r1, #1
+ add r0, #0x8d
+ strb r1, [r0]
+ bx lr
+
+ thumb_func_start MOD08_0221271C
+MOD08_0221271C: ; 0x0221271C
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ cmp r3, #0xa
+ bhs _0221273A
+ lsl r1, r3, #2
+ add r0, r0, r1
+ add r0, #0x94
+ str r2, [r0]
+_0221273A:
+ bx lr
+
+ thumb_func_start MOD08_0221273C
+MOD08_0221273C: ; 0x0221273C
+ ldr r1, [r0, #0x18]
+ mov r3, #0
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ add r2, r3, #0
+_02212746:
+ add r1, r0, #0
+ add r1, #0x94
+ add r3, r3, #1
+ add r0, r0, #4
+ str r2, [r1]
+ cmp r3, #0xa
+ blt _02212746
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02212758
+MOD08_02212758: ; 0x02212758
+ cmp r1, #5
+ bhi _022127A4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02212768: ; jump table
+ .short _02212774 - _02212768 - 2 ; case 0
+ .short _0221277C - _02212768 - 2 ; case 1
+ .short _02212784 - _02212768 - 2 ; case 2
+ .short _0221278C - _02212768 - 2 ; case 3
+ .short _02212794 - _02212768 - 2 ; case 4
+ .short _0221279C - _02212768 - 2 ; case 5
+_02212774:
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ bx lr
+_0221277C:
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #8]
+ bx lr
+_02212784:
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #0xa]
+ bx lr
+_0221278C:
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ bx lr
+_02212794:
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x10]
+ bx lr
+_0221279C:
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x12]
+ bx lr
+_022127A4:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD08_022127A8
+MOD08_022127A8: ; 0x022127A8
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ add r3, r0, #0
+ add r0, r1, #0
+ str r2, [sp]
+ add r6, r4, #0
+ add r5, r0, #0
+ mov ip, r4
+ add r7, r0, #0
+_022127BA:
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r1, r1, r6
+ add r1, #0xb0
+ ldr r1, [r1]
+ str r1, [r5, #8]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r1, r1, r6
+ add r1, #0xc4
+ ldr r1, [r1]
+ str r1, [r5, #0x18]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r2, [r1]
+ mov r1, ip
+ add r1, r2, r1
+ add r1, #0xd8
+ ldrh r1, [r1]
+ add r2, r0, r4
+ add r2, #0x30
+ strh r1, [r7, #0x28]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r7, r7, #2
+ add r1, r1, r4
+ add r1, #0xe0
+ ldrb r1, [r1]
+ strb r1, [r2]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r2, r0, r4
+ add r1, r1, r4
+ add r1, #0xe4
+ ldrb r1, [r1]
+ add r2, #0x34
+ strb r1, [r2]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r2, r0, r4
+ add r1, r1, r4
+ add r1, #0xe8
+ ldrb r1, [r1]
+ add r2, #0x38
+ strb r1, [r2]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r2, r0, r4
+ add r1, r1, r6
+ add r1, #0xec
+ ldr r1, [r1]
+ add r2, #0x4c
+ str r1, [r5, #0x3c]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r6, r6, #4
+ add r1, r1, r4
+ add r1, #0xc0
+ ldrb r1, [r1]
+ add r4, r4, #1
+ add r5, r5, #4
+ strb r1, [r2]
+ mov r1, ip
+ add r1, r1, #2
+ mov ip, r1
+ cmp r4, #4
+ blt _022127BA
+ ldr r1, [sp]
+ cmp r1, #3
+ bhi _022128B8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02212860: ; jump table
+ .short _02212868 - _02212860 - 2 ; case 0
+ .short _0221287C - _02212860 - 2 ; case 1
+ .short _02212890 - _02212860 - 2 ; case 2
+ .short _022128A4 - _02212860 - 2 ; case 3
+_02212868:
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r3, #0xc0
+ ldrh r1, [r1, #0x14]
+ str r1, [r0]
+ ldr r1, [r3]
+ ldrh r1, [r1, #0x16]
+ str r1, [r0, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0221287C:
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r3, #0xc0
+ ldrh r1, [r1, #0x14]
+ str r1, [r0]
+ ldr r1, [r3]
+ ldrh r1, [r1, #0x14]
+ str r1, [r0, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02212890:
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r3, #0xc0
+ ldrh r1, [r1, #0x14]
+ str r1, [r0]
+ ldr r1, [r3]
+ ldrh r1, [r1, #0x14]
+ str r1, [r0, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_022128A4:
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r3, #0xc0
+ ldrh r1, [r1, #0x14]
+ str r1, [r0]
+ ldr r1, [r3]
+ ldrh r1, [r1, #0x14]
+ str r1, [r0, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_022128B8:
+ bl ErrorHandling
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022128C0
+MOD08_022128C0: ; 0x022128C0
+ push {r3, r4, r5, lr}
+ sub sp, #0x50
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r4, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ add r1, sp, #0
+ add r2, r4, #0
+ bl MOD08_022127A8
+ cmp r4, #2
+ add r0, sp, #0
+ bne _022128EA
+ ldr r1, [r5]
+ bl MOD08_0222A568
+ add sp, #0x50
+ pop {r3, r4, r5, pc}
+_022128EA:
+ cmp r4, #3
+ bne _022128F8
+ ldr r1, [r5]
+ bl MOD08_0222A2A4
+ add sp, #0x50
+ pop {r3, r4, r5, pc}
+_022128F8:
+ ldr r1, [r5]
+ bl MOD08_0222A294
+ add sp, #0x50
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212904
+MOD08_02212904: ; 0x02212904
+ push {r4, lr}
+ sub sp, #0x50
+ add r4, r0, #0
+ ldr r1, [r4, #0x18]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ add r1, sp, #0
+ bl MOD08_022127A8
+ ldr r1, [r4]
+ add r0, sp, #0
+ bl MOD08_0222A494
+ add sp, #0x50
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02212928
+MOD08_02212928: ; 0x02212928
+ ldr r1, [r0, #0x18]
+ mov r2, #0
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ add r3, r0, #0
+_02212932:
+ ldr r1, [r3, #0x30]
+ cmp r1, #1
+ beq _0221295E
+ mov r1, #0xc
+ mul r1, r2
+ mov r2, #1
+ add r1, r0, r1
+ str r2, [r1, #0x30]
+ add r2, r1, #0
+ mov r3, #0
+ add r2, #0x2c
+ strb r3, [r2]
+ ldr r2, [r0, #0x18]
+ ldr r3, [r2]
+ add r2, r1, #0
+ add r2, #0x2d
+ strb r3, [r2]
+ ldr r2, [r0, #0x18]
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ str r2, [r1, #0x28]
+ bx lr
+_0221295E:
+ add r2, r2, #1
+ add r3, #0xc
+ cmp r2, #3
+ blt _02212932
+ bx lr
+
+ thumb_func_start MOD08_02212968
+MOD08_02212968: ; 0x02212968
+ push {r3, r4}
+ ldr r1, [r0, #0x18]
+ add r3, r0, #0
+ add r1, r1, #4
+ add r3, #0x18
+ str r1, [r0, #0x18]
+ mov r2, #2
+_02212976:
+ ldr r1, [r3, #0x30]
+ cmp r1, #0
+ beq _022129AA
+ add r4, r2, #0
+ mov r1, #0xc
+ add r2, r0, #0
+ mul r4, r1
+ add r2, #0x2c
+ ldrb r1, [r2, r4]
+ add r1, r1, #1
+ strb r1, [r2, r4]
+ ldrb r3, [r2, r4]
+ add r2, r0, r4
+ add r1, r2, #0
+ add r1, #0x2d
+ ldrb r1, [r1]
+ cmp r3, r1
+ bne _022129A2
+ mov r0, #0
+ str r0, [r2, #0x30]
+ pop {r3, r4}
+ bx lr
+_022129A2:
+ ldr r1, [r2, #0x28]
+ str r1, [r0, #0x18]
+ pop {r3, r4}
+ bx lr
+_022129AA:
+ sub r3, #0xc
+ sub r2, r2, #1
+ bpl _02212976
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD08_022129B4
+MOD08_022129B4: ; 0x022129B4
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r1, _02212BB0 ; =0x0000017E
+ add r5, r0, #0
+ ldrb r0, [r5, r1]
+ mov r6, #0
+ cmp r0, #1
+ bhs _022129D2
+ add r0, r5, #0
+ mov r2, #1
+ add r0, #0x8d
+ strb r2, [r0]
+ ldrb r0, [r5, r1]
+ add r0, r0, #1
+ strb r0, [r5, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+_022129D2:
+ add r7, r6, #0
+ add r4, r6, #0
+_022129D6:
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r4
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0
+ beq _022129EA
+ bl FUN_020133C8
+ add r6, r6, r0
+_022129EA:
+ add r7, r7, #1
+ add r4, r4, #4
+ cmp r7, #0x10
+ blt _022129D6
+ cmp r6, #0
+ bne _02212A0A
+ add r0, r5, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _02212A0A
+ add r0, r5, #0
+ add r0, #0x90
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _02212A1A
+_02212A0A:
+ add r0, r5, #0
+ mov r1, #1
+ add r0, #0x8d
+ strb r1, [r0]
+ ldr r0, _02212BB4 ; =0x0000017D
+ mov r1, #0
+ strb r1, [r5, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_02212A1A:
+ bl FUN_02005514
+ cmp r0, #0
+ beq _02212A44
+ ldr r0, _02212BB4 ; =0x0000017D
+ ldrb r1, [r5, r0]
+ add r1, r1, #1
+ strb r1, [r5, r0]
+ ldrb r1, [r5, r0]
+ cmp r1, #0x5a
+ bls _02212A3C
+ mov r1, #0
+ strb r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x8d
+ strb r1, [r0]
+ b _02212A44
+_02212A3C:
+ mov r0, #1
+ add r5, #0x8d
+ strb r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_02212A44:
+ ldr r0, _02212BB4 ; =0x0000017D
+ mov r1, #0
+ strb r1, [r5, r0]
+ add r0, r0, #1
+ strb r1, [r5, r0]
+ add r0, r5, #0
+ add r2, r1, #0
+_02212A52:
+ add r1, r1, #1
+ str r2, [r0, #0x1c]
+ add r0, r0, #4
+ cmp r1, #3
+ blt _02212A52
+ add r1, r5, #0
+ mov r4, #0
+_02212A60:
+ add r0, r1, #0
+ str r4, [r1, #0x28]
+ add r0, #0x2c
+ strb r4, [r0]
+ add r0, r1, #0
+ add r0, #0x2d
+ strb r4, [r0]
+ str r4, [r1, #0x30]
+ add r2, r2, #1
+ add r1, #0xc
+ cmp r2, #3
+ blt _02212A60
+ add r7, r5, #0
+ mov r6, #0
+_02212A7C:
+ add r0, r7, #0
+ add r0, #0xcc
+ ldr r1, [r0]
+ cmp r1, #0
+ beq _02212A94
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200C398
+_02212A94:
+ add r0, r7, #0
+ add r0, #0xcc
+ add r4, r4, #1
+ add r7, r7, #4
+ str r6, [r0]
+ cmp r4, #4
+ blt _02212A7C
+_02212AA2:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02213454
+ add r6, r6, #1
+ cmp r6, #5
+ blt _02212AA2
+ mov r6, #0
+ add r4, r6, #0
+ add r7, r6, #0
+_02212AB6:
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r4
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0
+ beq _02212AD2
+ bl MOD08_02215B40
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r4
+ str r7, [r0, #0x1c]
+_02212AD2:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #0x10
+ blt _02212AB6
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ cmp r1, #0
+ beq _02212AE8
+ mov r1, #0
+ str r1, [r5, r0]
+_02212AE8:
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #0
+ bne _02212B3C
+ bl MOD11_02231678
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02215588
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r3, r0, #0
+ lsl r0, r4, #0x18
+ mov r1, #1
+ lsr r0, r0, #0x18
+ lsl r1, r1, #0xe
+ mov r2, #0
+ bl FUN_02017F18
+ add r0, r5, #0
+ bl MOD08_02212490
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02215588
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ b _02212B40
+_02212B3C:
+ bl MOD12_02233560
+_02212B40:
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ ldrb r1, [r5, r1]
+ mov r0, #0
+ bl FUN_020178BC
+ ldr r1, _02212BB8 ; =0x000001A1
+ mov r0, #1
+ ldrb r1, [r5, r1]
+ bl FUN_020178BC
+ ldr r1, _02212BBC ; =0x000001A2
+ mov r0, #2
+ ldrb r1, [r5, r1]
+ bl FUN_020178BC
+ ldr r1, _02212BC0 ; =0x000001A3
+ mov r0, #3
+ ldrb r1, [r5, r1]
+ bl FUN_020178BC
+ add r0, r5, #0
+ add r0, #0xc4
+ mov r2, #0
+ ldr r0, [r0]
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #2
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r5, #0
+ add r0, #0xc4
+ mov r2, #0
+ ldr r0, [r0]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r5, #0
+ add r0, #0xc4
+ mov r1, #3
+ ldr r0, [r0]
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_020179E0
+ mov r0, #0
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02212BB0: .word 0x0000017E
+_02212BB4: .word 0x0000017D
+_02212BB8: .word 0x000001A1
+_02212BBC: .word 0x000001A2
+_02212BC0: .word 0x000001A3
+
+ thumb_func_start MOD08_02212BC4
+MOD08_02212BC4: ; 0x02212BC4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r4, [r0]
+ add r1, r0, #4
+ str r1, [r5, #0x18]
+ ldr r0, [r1]
+ str r0, [sp]
+ add r0, r1, #4
+ str r0, [r5, #0x18]
+ ldr r7, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ str r4, [r0, #0x18]
+ add r0, r5, r4
+ add r0, #0x7c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02212C22
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ add r1, sp, #4
+ bl FUN_020133EC
+ mov r0, #0
+ ldr r1, [sp, #8]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, sp, #4
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ bl FUN_020133FC
+_02212C22:
+ add r0, r5, #0
+ add r0, #0xc0
+ add r1, r5, r4
+ add r1, #0x6c
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldrb r1, [r1]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02013440
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, [sp]
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ add r2, r7, #0
+ add r3, r5, #0
+ bl MOD08_02215B2C
+ add r5, #0xc0
+ ldr r1, [r5]
+ str r0, [r1, #0x5c]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212C58
+MOD08_02212C58: ; 0x02212C58
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r4, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r7, [r0]
+ add r1, r0, #4
+ str r1, [r5, #0x18]
+ ldr r0, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ str r0, [sp, #4]
+ ldr r0, [r1]
+ str r0, [sp]
+ add r0, r1, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ str r4, [r0, #0x18]
+ add r0, r5, r4
+ add r0, #0x7c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02212CBE
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ add r1, sp, #8
+ bl FUN_020133EC
+ mov r0, #0
+ ldr r1, [sp, #0xc]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, sp, #8
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ bl FUN_020133FC
+_02212CBE:
+ add r0, r5, #0
+ add r0, #0xc0
+ add r1, r5, r4
+ add r1, #0x6c
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldrb r1, [r1]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02013440
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, [sp, #4]
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ ldr r2, [sp]
+ add r3, r5, #0
+ bl MOD08_02215B2C
+ add r5, #0xc0
+ ldr r2, [r5]
+ lsl r1, r7, #2
+ add r1, r2, r1
+ str r0, [r1, #0x5c]
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212CF8
+MOD08_02212CF8: ; 0x02212CF8
+ push {r4, r5, r6, lr}
+ sub sp, #0x90
+ ldr r5, _02212D4C ; =0x0222AB4C
+ add r4, r0, #0
+ add r3, sp, #0
+ mov r2, #0x12
+_02212D04:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02212D04
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD08_02227468
+ mov r1, #0x18
+ add r3, r5, #0
+ mul r3, r1
+ add r2, sp, #0
+ lsl r1, r0, #2
+ add r0, r2, r3
+ ldr r4, [r1, r0]
+ cmp r4, #0xff
+ bne _02212D44
+ bl ErrorHandling
+_02212D44:
+ sub r0, r4, #1
+ add sp, #0x90
+ pop {r4, r5, r6, pc}
+ nop
+_02212D4C: .word 0x0222AB4C
+
+ thumb_func_start MOD08_02212D50
+MOD08_02212D50: ; 0x02212D50
+ push {r4, r5, r6, lr}
+ sub sp, #0x90
+ ldr r5, _02212DA4 ; =0x0222ABDC
+ add r4, r0, #0
+ add r3, sp, #0
+ mov r2, #0x12
+_02212D5C:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02212D5C
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD08_02227468
+ mov r1, #0x18
+ add r3, r5, #0
+ mul r3, r1
+ add r2, sp, #0
+ lsl r1, r0, #2
+ add r0, r2, r3
+ ldr r4, [r1, r0]
+ cmp r4, #0xff
+ bne _02212D9C
+ bl ErrorHandling
+_02212D9C:
+ add r0, r4, #0
+ add sp, #0x90
+ pop {r4, r5, r6, pc}
+ nop
+_02212DA4: .word 0x0222ABDC
+
+ thumb_func_start MOD08_02212DA8
+MOD08_02212DA8: ; 0x02212DA8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r0, #0x18
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r4, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ mov r1, #0
+ add r2, sp, #0x10
+_02212DC0:
+ ldr r3, [r5, #0x18]
+ add r1, r1, #1
+ ldr r3, [r3]
+ str r3, [r2]
+ ldr r3, [r0]
+ add r2, r2, #4
+ add r3, r3, #4
+ str r3, [r0]
+ cmp r1, #6
+ blt _02212DC0
+ ldr r1, [r5, #0x18]
+ ldr r1, [r1]
+ str r1, [sp]
+ ldr r1, [r0]
+ add r1, r1, #4
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ str r4, [r0, #0x18]
+ add r0, r5, r4
+ add r0, #0x7c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02212E1E
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ add r1, sp, #4
+ bl FUN_020133EC
+ mov r0, #0
+ ldr r1, [sp, #8]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, sp, #4
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ bl FUN_020133FC
+_02212E1E:
+ add r0, r5, #0
+ bl MOD08_02212CF8
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0xc0
+ add r1, r5, r4
+ add r1, #0x6c
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldrb r1, [r1]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02013440
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r2, r7, #2
+ add r0, r0, r6
+ add r1, sp, #0x10
+ ldr r1, [r1, r2]
+ ldr r0, [r0, #0x1c]
+ ldr r2, [sp]
+ add r3, r5, #0
+ bl MOD08_02215B2C
+ add r5, #0xc0
+ ldr r1, [r5]
+ str r0, [r1, #0x5c]
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212E60
+MOD08_02212E60: ; 0x02212E60
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r0, #0x18
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r4, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ mov r1, #0
+ add r2, sp, #0x10
+_02212E78:
+ ldr r3, [r5, #0x18]
+ add r1, r1, #1
+ ldr r3, [r3]
+ str r3, [r2]
+ ldr r3, [r0]
+ add r2, r2, #4
+ add r3, r3, #4
+ str r3, [r0]
+ cmp r1, #4
+ blt _02212E78
+ ldr r1, [r5, #0x18]
+ ldr r1, [r1]
+ str r1, [sp]
+ ldr r1, [r0]
+ add r1, r1, #4
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ str r4, [r0, #0x18]
+ add r0, r5, r4
+ add r0, #0x7c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02212ED6
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ add r1, sp, #4
+ bl FUN_020133EC
+ mov r0, #0
+ ldr r1, [sp, #8]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, sp, #4
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ bl FUN_020133FC
+_02212ED6:
+ add r0, r5, #0
+ bl MOD08_02212D50
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0xc0
+ add r1, r5, r4
+ add r1, #0x6c
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldrb r1, [r1]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02013440
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r2, r7, #2
+ add r0, r0, r6
+ add r1, sp, #0x10
+ ldr r1, [r1, r2]
+ ldr r0, [r0, #0x1c]
+ ldr r2, [sp]
+ add r3, r5, #0
+ bl MOD08_02215B2C
+ add r5, #0xc0
+ ldr r1, [r5]
+ str r0, [r1, #0x5c]
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212F18
+MOD08_02212F18: ; 0x02212F18
+ push {r3, r4, r5, r6, r7, lr}
+ mov r6, #0
+ add r5, r0, #0
+ add r7, r6, #0
+ add r4, r6, #0
+_02212F22:
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r4
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0
+ beq _02212F36
+ bl FUN_020133C8
+ add r6, r6, r0
+_02212F36:
+ add r7, r7, #1
+ add r4, r4, #4
+ cmp r7, #0x10
+ blt _02212F22
+ cmp r6, #0
+ bne _02212F50
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ mov r0, #0
+ add r5, #0x8d
+ strb r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_02212F50:
+ mov r0, #1
+ add r5, #0x8d
+ strb r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02212F58
+MOD08_02212F58: ; 0x02212F58
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r4, r1, #2
+ add r0, r0, r4
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0
+ beq _02212F7C
+ bl ErrorHandling
+_02212F7C:
+ ldr r0, [r5, #0x18]
+ mov r2, #0
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r5]
+ bl MOD08_02215AA4
+ add r1, r5, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r1, r1, r4
+ str r0, [r1, #0x1c]
+ add r0, r5, #0
+ mov r1, #2
+ add r0, #0x8d
+ strb r1, [r0]
+ ldr r0, _02212FA8 ; =MOD08_02211EA0
+ add r5, #0xbc
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+ nop
+_02212FA8: .word MOD08_02211EA0
+
+ thumb_func_start MOD08_02212FAC
+MOD08_02212FAC: ; 0x02212FAC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r4, r1, #2
+ add r0, r0, r4
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0
+ beq _02212FD2
+ bl ErrorHandling
+_02212FD2:
+ ldr r0, [r5, #0x18]
+ mov r1, #0x64
+ ldr r2, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r5]
+ mov r3, #0
+ bl MOD08_02215ACC
+ add r1, r5, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r1, r1, r4
+ str r0, [r1, #0x1c]
+ add r0, r5, #0
+ mov r1, #2
+ add r0, #0x8d
+ strb r1, [r0]
+ ldr r0, _02213000 ; =MOD08_02211EA0
+ add r5, #0xbc
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+ nop
+_02213000: .word MOD08_02211EA0
+
+ thumb_func_start MOD08_02213004
+MOD08_02213004: ; 0x02213004
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r4, r1, #2
+ add r0, r0, r4
+ ldr r0, [r0, #0x1c]
+ bl MOD08_02215B40
+ add r5, #0xc0
+ ldr r0, [r5]
+ mov r1, #0
+ add r0, r0, r4
+ str r1, [r0, #0x1c]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02213030
+MOD08_02213030: ; 0x02213030
+ ldr r1, [r0, #0x18]
+ mov r3, #0
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ add r2, r0, #0
+_0221303A:
+ ldr r1, [r2, #0x1c]
+ cmp r1, #0
+ bne _02213056
+ ldr r1, [r0, #0x18]
+ add r2, r1, #4
+ lsl r1, r3, #2
+ add r1, r0, r1
+ str r2, [r1, #0x1c]
+ ldr r2, [r0, #0x18]
+ ldr r1, [r2]
+ lsl r1, r1, #2
+ add r1, r2, r1
+ str r1, [r0, #0x18]
+ bx lr
+_02213056:
+ add r3, r3, #1
+ add r2, r2, #4
+ cmp r3, #3
+ blt _0221303A
+ bx lr
+
+ thumb_func_start MOD08_02213060
+MOD08_02213060: ; 0x02213060
+ ldr r1, [r0, #0x18]
+ add r3, r0, #0
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ mov r2, #2
+ add r3, #8
+_0221306C:
+ ldr r1, [r3, #0x1c]
+ cmp r1, #0
+ beq _02213082
+ add r3, r0, #0
+ add r3, #0x1c
+ lsl r2, r2, #2
+ ldr r1, [r3, r2]
+ str r1, [r0, #0x18]
+ mov r0, #0
+ str r0, [r3, r2]
+ bx lr
+_02213082:
+ sub r3, r3, #4
+ sub r2, r2, #1
+ bpl _0221306C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_0221308C
+MOD08_0221308C: ; 0x0221308C
+ push {r3, r4}
+ ldr r2, [r0, #0x18]
+ add r1, r0, #0
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ ldr r4, [r2]
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ ldr r3, [r2]
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ lsl r2, r4, #2
+ add r2, r0, r2
+ add r2, #0x94
+ ldr r2, [r2]
+ add r1, #0x18
+ cmp r3, r2
+ bne _022130BA
+ ldr r1, [r0, #0x18]
+ ldr r1, [r1]
+ str r1, [r0, #0x18]
+ pop {r3, r4}
+ bx lr
+_022130BA:
+ ldr r0, [r1]
+ add r0, r0, #4
+ str r0, [r1]
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD08_022130C4
+MOD08_022130C4: ; 0x022130C4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl MOD08_02215350
+ cmp r0, #0
+ ldr r0, [r4, #0x18]
+ beq _022130E4
+ ldr r0, [r0]
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+_022130E4:
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022130EC
+MOD08_022130EC: ; 0x022130EC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ add r1, r0, #4
+ str r1, [r4, #0x18]
+ ldr r0, [r1]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ bl MOD08_02218C48
+ add r7, r0, #0
+ ldr r0, [r4, #0x18]
+ add r2, r4, #0
+ ldr r5, [r0]
+ add r0, r0, #4
+ add r2, #0x18
+ mov r3, #0
+ str r0, [r4, #0x18]
+ cmp r5, #0
+ bls _0221312E
+ add r6, r4, #0
+_02213116:
+ ldr r0, [r4, #0x18]
+ add r3, r3, #1
+ ldr r1, [r0]
+ add r0, r6, #0
+ add r0, #0x94
+ str r1, [r0]
+ ldr r0, [r2]
+ add r6, r6, #4
+ add r0, r0, #4
+ str r0, [r2]
+ cmp r3, r5
+ blo _02213116
+_0221312E:
+ cmp r3, #0xa
+ bge _02213146
+ lsl r0, r3, #2
+ add r2, r4, r0
+ mov r1, #0
+_02213138:
+ add r0, r2, #0
+ add r0, #0x94
+ add r3, r3, #1
+ add r2, r2, #4
+ str r1, [r0]
+ cmp r3, #0xa
+ blt _02213138
+_02213146:
+ add r0, r4, #0
+ blx r7
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0221314C
+MOD08_0221314C: ; 0x0221314C
+ ldr r2, [r0, #0x18]
+ add r1, r0, #0
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ add r2, r0, #0
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r1, #0x18
+ ldrh r3, [r2, #0x10]
+ mov r2, #1
+ tst r2, r3
+ beq _0221316A
+ ldr r2, [r1]
+ add r2, r2, #4
+ str r2, [r1]
+_0221316A:
+ ldr r2, [r0, #0x18]
+ ldr r1, [r2]
+ lsl r1, r1, #2
+ add r1, r2, r1
+ str r1, [r0, #0x18]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02213178
+MOD08_02213178: ; 0x02213178
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x18]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ cmp r2, #0
+ bne _0221319A
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ ldrh r1, [r1, #0x14]
+ bl MOD08_02227470
+ b _022131A6
+_0221319A:
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ ldrh r1, [r1, #0x16]
+ bl MOD08_02227470
+_022131A6:
+ cmp r0, #4
+ bne _022131B0
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+_022131B0:
+ ldr r1, [r4, #0x18]
+ ldr r0, [r1]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022131BC
+MOD08_022131BC: ; 0x022131BC
+ push {r4, r5}
+ sub sp, #0x10
+ ldr r5, _02213214 ; =0x0222AA3C
+ add r2, sp, #0
+ add r4, r0, #0
+ add r3, r2, #0
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r1, [r4, #0x18]
+ add r0, r4, #0
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r0, #0x18
+ ldr r1, [r1, #0xc]
+ cmp r1, #0
+ beq _02213202
+ ldr r2, [r0]
+ add r2, r2, #4
+ str r2, [r0]
+ mov r2, #0
+_022131EE:
+ ldr r5, [r3]
+ tst r5, r1
+ bne _02213202
+ ldr r5, [r0]
+ add r2, r2, #1
+ add r5, r5, #4
+ add r3, r3, #4
+ str r5, [r0]
+ cmp r2, #4
+ blo _022131EE
+_02213202:
+ ldr r1, [r4, #0x18]
+ ldr r0, [r1]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ add sp, #0x10
+ pop {r4, r5}
+ bx lr
+ nop
+_02213214: .word 0x0222AA3C
+
+ thumb_func_start MOD08_02213218
+MOD08_02213218: ; 0x02213218
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x18]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02213236
+ ldr r1, [r4, #0x18]
+ ldr r0, [r1]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+_02213236:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02213240
+MOD08_02213240: ; 0x02213240
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ add r1, r5, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ ldrh r1, [r1, #0x14]
+ bl MOD08_02227470
+ add r1, r5, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r4, r0, #0
+ ldrh r1, [r1, #0x16]
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r4, r0
+ bne _02213276
+ ldr r1, [r5, #0x18]
+ ldr r0, [r1]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [r5, #0x18]
+ pop {r3, r4, r5, pc}
+_02213276:
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02213280
+MOD08_02213280: ; 0x02213280
+ ldr r2, [r0, #0x18]
+ add r1, r0, #0
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ ldr r3, [r2]
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ add r2, r0, #0
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r1, #0x18
+ ldrh r2, [r2, #0x10]
+ cmp r3, r2
+ bne _022132AA
+ ldr r0, [r0, #0x18]
+ ldr r2, [r1]
+ ldr r0, [r0]
+ lsl r0, r0, #2
+ add r0, r2, r0
+ str r0, [r1]
+ bx lr
+_022132AA:
+ ldr r0, [r1]
+ add r0, r0, #4
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022132B4
+MOD08_022132B4: ; 0x022132B4
+ ldr r1, [r0, #0x18]
+ add r2, r1, #4
+ str r2, [r0, #0x18]
+ ldr r1, [r2]
+ lsl r1, r1, #2
+ add r1, r2, r1
+ str r1, [r0, #0x18]
+ bx lr
+
+ thumb_func_start MOD08_022132C4
+MOD08_022132C4: ; 0x022132C4
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ cmp r1, #7
+ bhi _022133A2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022132D8: ; jump table
+ .short _022132E8 - _022132D8 - 2 ; case 0
+ .short _022132F0 - _022132D8 - 2 ; case 1
+ .short _022132F8 - _022132D8 - 2 ; case 2
+ .short _02213306 - _022132D8 - 2 ; case 3
+ .short _02213314 - _022132D8 - 2 ; case 4
+ .short _0221333A - _022132D8 - 2 ; case 5
+ .short _02213360 - _022132D8 - 2 ; case 6
+ .short _02213382 - _022132D8 - 2 ; case 7
+_022132E8:
+ add r4, #0xc0
+ ldr r0, [r4]
+ ldrh r6, [r0, #0x14]
+ b _022133A2
+_022132F0:
+ add r4, #0xc0
+ ldr r0, [r4]
+ ldrh r6, [r0, #0x16]
+ b _022133A2
+_022132F8:
+ add r4, #0xc0
+ ldr r1, [r4]
+ ldrh r1, [r1, #0x14]
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _022133A2
+_02213306:
+ add r4, #0xc0
+ ldr r1, [r4]
+ ldrh r1, [r1, #0x16]
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _022133A2
+_02213314:
+ mov r6, #0xff
+ mov r5, #0
+_02213318:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #0
+ beq _02213328
+ cmp r0, #2
+ bne _0221332C
+_02213328:
+ add r6, r5, #0
+ b _02213332
+_0221332C:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02213318
+_02213332:
+ cmp r6, #0xff
+ bne _022133A2
+ mov r6, #0
+ b _022133A2
+_0221333A:
+ mov r6, #0xff
+ mov r5, #0
+_0221333E:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #1
+ beq _0221334E
+ cmp r0, #3
+ bne _02213352
+_0221334E:
+ add r6, r5, #0
+ b _02213358
+_02213352:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _0221333E
+_02213358:
+ cmp r6, #0xff
+ bne _022133A2
+ mov r6, #0
+ b _022133A2
+_02213360:
+ mov r6, #0xff
+ mov r5, #0
+_02213364:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #4
+ bne _02213374
+ add r6, r5, #0
+ b _0221337A
+_02213374:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02213364
+_0221337A:
+ cmp r6, #0xff
+ bne _022133A2
+ mov r6, #0
+ b _022133A2
+_02213382:
+ mov r6, #0xff
+ mov r5, #0
+_02213386:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #5
+ bne _02213396
+ add r6, r5, #0
+ b _0221339C
+_02213396:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02213386
+_0221339C:
+ cmp r6, #0xff
+ bne _022133A2
+ mov r6, #0
+_022133A2:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022133A8
+MOD08_022133A8: ; 0x022133A8
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldrb r0, [r5, #5]
+ cmp r0, #0
+ beq _022133C4
+ ldrb r0, [r5, #4]
+ add r0, r0, #1
+ strb r0, [r5, #4]
+ ldrb r1, [r5, #4]
+ ldrb r0, [r5, #5]
+ cmp r1, r0
+ bne _022133F2
+ mov r0, #0
+ strb r0, [r5, #4]
+_022133C4:
+ ldr r0, [r5, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [r5, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ ldr r0, [r5, #8]
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r2, r0, #0x10
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl FUN_0200C714
+_022133F2:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_022133F4
+MOD08_022133F4: ; 0x022133F4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldrb r0, [r5, #5]
+ cmp r0, #0
+ beq _02213410
+ ldrb r0, [r5, #4]
+ add r0, r0, #1
+ strb r0, [r5, #4]
+ ldrb r1, [r5, #4]
+ ldrb r0, [r5, #5]
+ cmp r1, r0
+ bne _02213452
+ mov r0, #0
+ strb r0, [r5, #4]
+_02213410:
+ ldr r0, [r5, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [r5, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ ldr r0, [r5, #8]
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ sub r6, #0x28
+ ldr r0, [r5]
+ mov r1, #2
+ mov r2, #0
+ neg r3, r6
+ bl FUN_020179E0
+ sub r4, #0x28
+ ldr r0, [r5]
+ mov r1, #2
+ mov r2, #3
+ neg r3, r4
+ bl FUN_020179E0
+_02213452:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02213454
+MOD08_02213454: ; 0x02213454
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ cmp r1, #4
+ bne _02213480
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0221349E
+ ldr r0, [r0, #0xc]
+ bl FUN_0200CAB4
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FreeToHeap
+ mov r0, #0x5e
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02213480:
+ mov r0, #0x59
+ lsl r0, r0, #2
+ lsl r5, r1, #2
+ add r4, r4, r0
+ ldr r0, [r4, r5]
+ cmp r0, #0
+ beq _0221349E
+ ldr r0, [r0, #0xc]
+ bl FUN_0200CAB4
+ ldr r0, [r4, r5]
+ bl FreeToHeap
+ mov r0, #0
+ str r0, [r4, r5]
+_0221349E:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022134A0
+MOD08_022134A0: ; 0x022134A0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022134A4
+MOD08_022134A4: ; 0x022134A4
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022134A8
+MOD08_022134A8: ; 0x022134A8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r2, r1, #4
+ str r2, [r5, #0x18]
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r5, #0x18]
+ ldr r4, [r2]
+ add r2, r2, #4
+ str r2, [r5, #0x18]
+ bl MOD08_022132C4
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsl r0, r6, #2
+ add r0, r1, r0
+ add r0, #0xb0
+ ldr r1, [r0]
+ ldr r0, [r1, #4]
+ str r0, [sp, #0x14]
+ ldr r0, [r1, #8]
+ str r0, [sp, #0x10]
+ ldr r0, [r1]
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022134FE
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154A8
+ bl MOD08_0222A6C8
+ cmp r0, #1
+ bne _022134FE
+ mov r7, #0xc9
+ b _02213500
+_022134FE:
+ mov r7, #0xc8
+_02213500:
+ mov r0, #2
+ bl FUN_020187B0
+ mov r2, #0x19
+ mov r1, #0
+ lsl r2, r2, #8
+ bl MI_CpuFill8
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc4
+ mov r3, #0x32
+ ldr r0, [r0]
+ ldr r2, [sp, #0x18]
+ mov r1, #2
+ lsl r3, r3, #6
+ bl FUN_02017E14
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x80
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ ldr r3, [r5]
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r2, r5, #0
+ str r0, [sp, #0xc]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #7
+ add r1, r7, #0
+ mov r3, #2
+ bl FUN_020068C8
+ cmp r4, #1
+ bne _022135AC
+ ldr r0, [r5]
+ mov r1, #0x10
+ bl AllocFromHeap
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ ldr r0, [r5, r1]
+ add r1, r6, #0
+ str r2, [r0]
+ add r0, r5, #0
+ bl MOD08_022154D4
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ str r0, [r2, #8]
+ ldr r0, [r5, r1]
+ mov r2, #0
+ strb r2, [r0, #4]
+ ldr r0, [r5, r1]
+ strb r2, [r0, #5]
+ ldr r0, _02213628 ; =MOD08_022133F4
+ ldr r1, [r5, r1]
+ ldr r2, _0221362C ; =0x00001001
+ bl FUN_0200CA44
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ str r0, [r1, #0xc]
+_022135AC:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ add r0, r5, #0
+ add r0, #0xc4
+ sub r7, #0x28
+ ldr r0, [r0]
+ mov r1, #2
+ mov r2, #0
+ neg r3, r7
+ bl FUN_020179E0
+ add r0, r5, #0
+ add r0, #0xc4
+ sub r4, #0x28
+ ldr r0, [r0]
+ mov r1, #2
+ mov r2, #3
+ neg r3, r4
+ bl FUN_020179E0
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ mov r0, #2
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02213628: .word MOD08_022133F4
+_0221362C: .word 0x00001001
+
+ thumb_func_start MOD08_02213630
+MOD08_02213630: ; 0x02213630
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ mov r0, #2
+ bl FUN_020187B0
+ mov r2, #0x19
+ mov r1, #0
+ lsl r2, r2, #8
+ bl MI_CpuFill8
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD08_02213454
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02213658
+MOD08_02213658: ; 0x02213658
+ push {r4, lr}
+ sub sp, #0x18
+ ldr r3, _022136CC ; =0x0222AA7C
+ add r2, sp, #0
+ add r4, r0, #0
+ 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, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200BB34
+ mov r1, #0x4e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ add r0, #0xac
+ ldr r0, [r0]
+ mov r2, #5
+ bl FUN_0200BBF0
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200BB68
+ mov r2, #0x11
+ mov r1, #0
+ lsl r2, r2, #0x10
+ bl FUN_02008D24
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ mov r1, #0x4e
+ add r0, #0xac
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ add r2, sp, #0
+ bl FUN_0200BF60
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+_022136CC: .word 0x0222AA7C
+
+ thumb_func_start MOD08_022136D0
+MOD08_022136D0: ; 0x022136D0
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ ldr r1, _0221377C ; =0x00004E21
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r2, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r4, r2, r1
+ ldrh r3, [r0, #0x14]
+ lsr r2, r1, #2
+ add r0, #0xac
+ mul r2, r3
+ add r4, r4, r2
+ mov r2, #0
+ str r2, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ str r4, [sp, #8]
+ lsr r1, r1, #6
+ ldr r0, [r0]
+ ldr r1, [r5, r1]
+ mov r2, #0x1b
+ mov r3, #0x28
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r3, #0x27
+ str r3, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ add r2, r5, #0
+ add r0, r5, #0
+ str r4, [sp, #0x14]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, #0xc8
+ add r2, #0xac
+ lsl r3, r3, #3
+ ldr r0, [r0]
+ ldr r2, [r2]
+ ldr r3, [r5, r3]
+ mov r1, #2
+ bl FUN_0200C0DC
+ mov r0, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0x4e
+ str r4, [sp, #4]
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r1, r1, #2
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, r1]
+ mov r2, #0x1b
+ mov r3, #0x29
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0x4e
+ str r4, [sp, #4]
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r1, r1, #2
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, r1]
+ mov r2, #0x1b
+ mov r3, #0x2a
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221377C: .word 0x00004E21
+
+ thumb_func_start MOD08_02213780
+MOD08_02213780: ; 0x02213780
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x70
+ add r4, r0, #0
+ ldr r1, [r4, #0x18]
+ ldr r6, _02213994 ; =0x00004E21
+ add r2, r1, #4
+ str r2, [r4, #0x18]
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r4, #0x18]
+ mov ip, r1
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r4, #0x18]
+ str r1, [sp, #0x10]
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r4, #0x18]
+ str r1, [sp, #0xc]
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r4, #0x18]
+ add r2, r4, #0
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r1, r1, r6
+ ldrh r3, [r2, #0x14]
+ lsr r2, r6, #2
+ mul r2, r3
+ add r2, r1, r2
+ str r2, [sp, #0x58]
+ add r2, r4, #0
+ add r2, #0xc0
+ ldr r2, [r2]
+ ldrh r3, [r2, #0x14]
+ lsr r2, r6, #2
+ mul r2, r3
+ add r2, r1, r2
+ str r2, [sp, #0x5c]
+ add r2, r4, #0
+ add r2, #0xc0
+ ldr r2, [r2]
+ ldrh r3, [r2, #0x14]
+ lsr r2, r6, #2
+ mul r2, r3
+ add r2, r1, r2
+ str r2, [sp, #0x60]
+ add r2, r4, #0
+ add r2, #0xc0
+ ldr r2, [r2]
+ lsr r3, r6, #2
+ ldrh r2, [r2, #0x14]
+ mul r3, r2
+ add r1, r1, r3
+ str r1, [sp, #0x64]
+ mov r1, #0
+ str r1, [sp, #0x68]
+ str r1, [sp, #0x6c]
+ mov r1, ip
+ bl MOD08_022132C4
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ ldr r0, [sp, #0x1c]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ add r0, #0xb0
+ ldr r1, [r0]
+ ldr r0, [r1, #4]
+ str r0, [sp, #0x18]
+ ldr r0, [r1, #8]
+ str r0, [sp, #0x14]
+ ldr r0, [r1]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp, #0x20]
+ add r0, r4, #0
+ bl MOD08_022154D4
+ add r6, r0, #0
+ beq _02213848
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ add r0, r6, #0
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ add r0, r6, #0
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+_02213848:
+ add r0, sp, #0x24
+ strh r7, [r0]
+ strh r5, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ strh r1, [r0, #6]
+ mov r0, #0x64
+ str r0, [sp, #0x2c]
+ mov r0, #1
+ str r1, [sp, #0x30]
+ str r0, [sp, #0x34]
+ str r0, [sp, #0x50]
+ str r1, [sp, #0x54]
+ add r2, sp, #0x58
+ add r3, sp, #0x24
+_02213866:
+ ldr r0, [r2]
+ add r1, r1, #1
+ str r0, [r3, #0x14]
+ add r2, r2, #4
+ add r3, r3, #4
+ cmp r1, #6
+ blt _02213866
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ mov r1, #0x4e
+ add r0, #0xac
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ add r2, sp, #0x24
+ bl FUN_0200C154
+ add r7, r0, #0
+ cmp r6, #0
+ bne _02213898
+ mov r1, #0
+ bl FUN_0200C644
+ b _022138AC
+_02213898:
+ add r0, r6, #0
+ mov r1, #6
+ bl FUN_0200782C
+ cmp r0, #1
+ bne _022138AC
+ add r0, r7, #0
+ mov r1, #0
+ bl FUN_0200C644
+_022138AC:
+ add r0, r4, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022138CE
+ ldr r1, [sp, #0x1c]
+ add r0, r4, #0
+ bl MOD08_022154A8
+ bl MOD08_0222A6C8
+ cmp r0, #1
+ bne _022138CE
+ add r0, r7, #0
+ mov r1, #1
+ bl FUN_0200C8D0
+_022138CE:
+ ldr r1, [sp, #0x1c]
+ add r0, r4, #0
+ bl MOD08_022154D4
+ cmp r0, #0
+ beq _022138F0
+ ldr r0, [r7]
+ bl FUN_02020350
+ add r1, r0, #0
+ mov r3, #0x32
+ ldr r1, [r1, #4]
+ ldr r2, [sp, #0x20]
+ mov r0, #0x13
+ lsl r3, r3, #6
+ bl FUN_0201C2C8
+_022138F0:
+ ldr r1, [sp, #0x1c]
+ add r0, r4, #0
+ bl MOD08_022154D4
+ cmp r0, #0
+ beq _02213926
+ ldr r0, [r7]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ mov r1, #2
+ str r1, [sp]
+ mov r1, #0x20
+ lsl r0, r0, #0x14
+ str r1, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ ldr r3, [r4]
+ bl FUN_020030E8
+_02213926:
+ ldr r0, [sp, #0xc]
+ lsl r5, r0, #2
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ add r6, r4, r0
+ ldr r0, [r6, r5]
+ cmp r0, #0
+ beq _0221393A
+ bl ErrorHandling
+_0221393A:
+ mov r0, #0x15
+ str r7, [r6, r5]
+ mov r2, #1
+ add r1, r4, r5
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ ldr r0, [sp, #0x10]
+ cmp r0, #1
+ bne _02213990
+ ldr r1, [sp, #0x1c]
+ add r0, r4, #0
+ bl MOD08_022154D4
+ cmp r0, #0
+ beq _02213990
+ mov r0, #0x59
+ lsl r0, r0, #2
+ add r6, r4, r0
+ ldr r0, [r4]
+ mov r1, #0x10
+ bl AllocFromHeap
+ str r0, [r6, r5]
+ ldr r0, [r6, r5]
+ ldr r1, [sp, #0x1c]
+ str r7, [r0]
+ add r0, r4, #0
+ bl MOD08_022154D4
+ ldr r1, [r6, r5]
+ ldr r2, _02213998 ; =0x00001001
+ str r0, [r1, #8]
+ ldr r0, [r6, r5]
+ mov r1, #0
+ strb r1, [r0, #4]
+ ldr r0, [r6, r5]
+ strb r1, [r0, #5]
+ ldr r0, _0221399C ; =MOD08_022133A8
+ ldr r1, [r6, r5]
+ bl FUN_0200CA44
+ ldr r1, [r6, r5]
+ str r0, [r1, #0xc]
+_02213990:
+ add sp, #0x70
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02213994: .word 0x00004E21
+_02213998: .word 0x00001001
+_0221399C: .word MOD08_022133A8
+
+ thumb_func_start MOD08_022139A0
+MOD08_022139A0: ; 0x022139A0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _022139C2
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200C398
+_022139C2:
+ mov r0, #0x4e
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022139CC
+MOD08_022139CC: ; 0x022139CC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ lsl r4, r1, #2
+ add r6, r5, r0
+ ldr r0, [r6, r4]
+ cmp r0, #0
+ beq _022139EE
+ bl FUN_0200C3DC
+_022139EE:
+ mov r0, #0x15
+ mov r2, #0
+ add r1, r5, r4
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ str r2, [r6, r4]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_022139FC
+MOD08_022139FC: ; 0x022139FC
+ push {r3, lr}
+ ldr r2, [r1, #0xc]
+ cmp r2, #0
+ bne _02213A0A
+ bl FUN_0200CAB4
+ pop {r3, pc}
+_02213A0A:
+ mov r0, #0x4e
+ ldr r2, [r1]
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02213A1C
+ ldr r0, [r1, #4]
+ bl FUN_0200BC1C
+_02213A1C:
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02213A20
+MOD08_02213A20: ; 0x02213A20
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r6, r5, #0
+ add r1, r0, #4
+ str r1, [r5, #0x18]
+ ldr r0, [r1]
+ add r6, #0x54
+ str r0, [sp]
+ add r0, r1, #4
+ str r0, [r5, #0x18]
+ ldr r2, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ lsl r4, r2, #4
+ str r0, [sp, #8]
+ add r0, #0x4c
+ lsl r1, r1, #2
+ str r0, [sp, #8]
+ str r5, [r0, r4]
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r3, [r5, r0]
+ add r2, r5, r4
+ str r3, [r2, #0x50]
+ add r1, r5, r1
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ mov r1, #0
+ str r0, [r6, r4]
+ mov r0, #1
+ str r0, [r2, #0x58]
+ ldr r0, [r6, r4]
+ bl FUN_0200C644
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ beq _02213A7C
+ b _02213BCA
+_02213A7C:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227468
+ str r0, [sp, #4]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227468
+ add r7, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD08_022132C4
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022154D4
+ cmp r0, #0
+ beq _02213AB8
+ mov r1, #6
+ bl FUN_0200782C
+ b _02213ABA
+_02213AB8:
+ mov r0, #0
+_02213ABA:
+ cmp r0, #1
+ ldr r0, [r6, r4]
+ bne _02213AC8
+ mov r1, #0
+ bl FUN_0200C644
+ b _02213ACE
+_02213AC8:
+ mov r1, #1
+ bl FUN_0200C644
+_02213ACE:
+ ldr r0, [sp]
+ cmp r0, #3
+ bhi _02213BBC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02213AE0: ; jump table
+ .short _02213AE8 - _02213AE0 - 2 ; case 0
+ .short _02213B36 - _02213AE0 - 2 ; case 1
+ .short _02213B0E - _02213AE0 - 2 ; case 2
+ .short _02213B7A - _02213AE0 - 2 ; case 3
+_02213AE8:
+ ldr r0, [sp, #4]
+ sub r0, r0, #3
+ cmp r0, #1
+ bhi _02213AFA
+ ldr r0, [r6, r4]
+ mov r1, #1
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213AFA:
+ add r5, #0x54
+ ldr r0, [r5, r4]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r5, r4]
+ mov r1, #0xff
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B0E:
+ ldr r0, [sp, #4]
+ cmp r0, #5
+ beq _02213B18
+ cmp r0, #2
+ bne _02213B22
+_02213B18:
+ ldr r0, [r6, r4]
+ mov r1, #1
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B22:
+ add r5, #0x54
+ ldr r0, [r5, r4]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r5, r4]
+ mov r1, #0xff
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B36:
+ cmp r7, #5
+ bhi _02213BBC
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02213B46: ; jump table
+ .short _02213BBC - _02213B46 - 2 ; case 0
+ .short _02213BBC - _02213B46 - 2 ; case 1
+ .short _02213B52 - _02213B46 - 2 ; case 2
+ .short _02213B5C - _02213B46 - 2 ; case 3
+ .short _02213B66 - _02213B46 - 2 ; case 4
+ .short _02213B70 - _02213B46 - 2 ; case 5
+_02213B52:
+ ldr r0, [r6, r4]
+ mov r1, #0xff
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B5C:
+ ldr r0, [r6, r4]
+ mov r1, #1
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B66:
+ ldr r0, [r6, r4]
+ mov r1, #1
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B70:
+ ldr r0, [r6, r4]
+ mov r1, #0xff
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B7A:
+ cmp r7, #5
+ bhi _02213BBC
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02213B8A: ; jump table
+ .short _02213BBC - _02213B8A - 2 ; case 0
+ .short _02213BBC - _02213B8A - 2 ; case 1
+ .short _02213B96 - _02213B8A - 2 ; case 2
+ .short _02213BA0 - _02213B8A - 2 ; case 3
+ .short _02213BAA - _02213B8A - 2 ; case 4
+ .short _02213BB4 - _02213B8A - 2 ; case 5
+_02213B96:
+ ldr r0, [r6, r4]
+ mov r1, #1
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213BA0:
+ ldr r0, [r6, r4]
+ mov r1, #0xff
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213BAA:
+ ldr r0, [r6, r4]
+ mov r1, #0xff
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213BB4:
+ ldr r0, [r6, r4]
+ mov r1, #1
+ bl FUN_0200C6C4
+_02213BBC:
+ ldr r1, [sp, #8]
+ mov r2, #1
+ ldr r0, _02213BD0 ; =MOD08_022139FC
+ add r1, r1, r4
+ lsl r2, r2, #0xc
+ bl FUN_0200CA44
+_02213BCA:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02213BD0: .word MOD08_022139FC
+
+ thumb_func_start MOD08_02213BD4
+MOD08_02213BD4: ; 0x02213BD4
+ ldr r1, [r0, #0x18]
+ mov r2, #0
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ lsl r1, r3, #4
+ add r0, r0, r1
+ str r2, [r0, #0x58]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02213BEC
+MOD08_02213BEC: ; 0x02213BEC
+ ldr r1, [r0, #0x18]
+ ldr r3, _02213BFC ; =MOD08_02213454
+ add r2, r1, #4
+ str r2, [r0, #0x18]
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ bx r3
+ .align 2, 0
+_02213BFC: .word MOD08_02213454
+
+ thumb_func_start MOD08_02213C00
+MOD08_02213C00: ; 0x02213C00
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ add r0, r0, r3
+ add r0, #0x6c
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02213C1C
+MOD08_02213C1C: ; 0x02213C1C
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ add r0, r0, r3
+ add r0, #0x7c
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02213C38
+MOD08_02213C38: ; 0x02213C38
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02213C3C
+MOD08_02213C3C: ; 0x02213C3C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02213C40
+MOD08_02213C40: ; 0x02213C40
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r5, r0, #0
+ ldrh r1, [r1, #0x14]
+ add r0, r4, #0
+ add r6, r2, #0
+ bl MOD08_02227470
+ add r7, r0, #0
+ add r0, r4, #0
+ add r4, #0xc0
+ ldr r1, [r4]
+ ldrh r1, [r1, #0x16]
+ bl MOD08_02227470
+ lsl r1, r6, #2
+ add r1, r5, r1
+ ldr r1, [r1, #0x1c]
+ cmp r1, #2
+ bne _02213C84
+ cmp r7, r0
+ bne _02213C7C
+ cmp r0, #3
+ beq _02213C78
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02213C78:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02213C7C:
+ cmp r0, #3
+ bne _02213C90
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02213C84:
+ cmp r1, #0
+ beq _02213C90
+ cmp r0, #3
+ bne _02213C90
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02213C90:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02213C94
+MOD08_02213C94: ; 0x02213C94
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r0, #0
+ add r5, r1, #0
+ add r0, r3, #0
+ mov r1, #0
+ add r4, r2, #0
+ str r3, [sp, #0x10]
+ bl MOD08_022156AC
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r2, r5, #0
+ str r0, [sp, #0xc]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #7
+ add r3, r4, #0
+ bl FUN_0200687C
+ ldr r0, [sp, #0x10]
+ mov r1, #1
+ bl MOD08_022156AC
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x90
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ ldr r3, [r5]
+ mov r1, #7
+ bl FUN_020030E8
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ add r0, r5, #0
+ mov r6, #2
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02213D08
+ mov r6, #4
+ b _02213D18
+_02213D08:
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #7
+ bl MOD08_02213C40
+ cmp r0, #1
+ bne _02213D18
+ mov r6, #3
+_02213D18:
+ ldr r0, [sp, #0x10]
+ add r1, r6, #0
+ bl MOD08_022156AC
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r5, #0xc4
+ str r0, [sp, #0xc]
+ ldr r2, [r5]
+ mov r0, #7
+ add r3, r4, #0
+ bl FUN_020068C8
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02213D40
+MOD08_02213D40: ; 0x02213D40
+ lsl r0, r0, #0x10
+ and r0, r1
+ cmp r1, r0
+ bne _02213D4C
+ mov r0, #1
+ bx lr
+_02213D4C:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD08_02213D50
+MOD08_02213D50: ; 0x02213D50
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ ldr r3, _02213DA0 ; =0x0222AA2C
+ add r2, sp, #0
+ add r5, r0, #0
+ add r4, r2, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r7, _02213DA4 ; =0x0222AADC
+ mov r6, #0
+_02213D68:
+ ldr r0, [r5, #0x18]
+ ldr r1, [r4]
+ bl MOD08_02213D40
+ cmp r0, #0
+ beq _02213D92
+ ldr r0, [r4]
+ mov r1, #0
+ lsr r2, r0, #0x10
+ cmp r2, #2
+ blt _02213D8A
+_02213D7E:
+ lsr r0, r2, #0x1f
+ add r0, r2, r0
+ asr r2, r0, #1
+ add r1, r1, #1
+ cmp r2, #2
+ bge _02213D7E
+_02213D8A:
+ lsl r1, r1, #2
+ ldr r1, [r7, r1]
+ add r0, r5, #0
+ blx r1
+_02213D92:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blo _02213D68
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02213DA0: .word 0x0222AA2C
+_02213DA4: .word 0x0222AADC
+
+ thumb_func_start MOD08_02213DA8
+MOD08_02213DA8: ; 0x02213DA8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ mov r1, #0x4c
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _02213DC0
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02213DC0:
+ mov r1, #0
+ mov r2, #0x4c
+ bl memset
+ mov r0, #0
+ str r0, [r4]
+ strb r0, [r4, #5]
+ str r5, [r4, #0x48]
+ strb r0, [r4, #9]
+ mov r0, #0x1f
+ strb r0, [r4, #0xa]
+ mov r0, #0x1d
+ strb r0, [r4, #0xb]
+ mov r0, #2
+ strb r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ cmp r0, #1
+ bne _02213DFA
+ mov r0, #0
+ strb r0, [r4, #9]
+ mov r0, #0x1f
+ strb r0, [r4, #0xa]
+ mov r0, #0xf
+ strb r0, [r4, #0xb]
+ mov r0, #7
+ strb r0, [r4, #0xc]
+_02213DFA:
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ cmp r0, #2
+ bne _02213E16
+ mov r0, #7
+ strb r0, [r4, #9]
+ mov r0, #0xf
+ strb r0, [r4, #0xa]
+ mov r0, #0x1d
+ strb r0, [r4, #0xb]
+ mov r0, #2
+ strb r0, [r4, #0xc]
+_02213E16:
+ mov r1, #0
+ add r2, r5, #0
+ add r3, r4, #0
+_02213E1C:
+ add r0, r2, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r1, r1, #1
+ str r0, [r3, #0x1c]
+ add r2, r2, #4
+ add r3, r3, #4
+ cmp r1, #0xa
+ blt _02213E1C
+ mov r0, #0x5f
+ mov r1, #1
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02213E3C
+MOD08_02213E3C: ; 0x02213E3C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrb r0, [r5, #5]
+ cmp r0, #0
+ beq _02213E50
+ cmp r0, #1
+ beq _02213E8E
+ cmp r0, #2
+ beq _02213EE0
+ b _02213F2A
+_02213E50:
+ ldr r0, [r5, #0x48]
+ mov r1, #2
+ bl MOD08_0221477C
+ ldr r0, [r5, #0x48]
+ mov r1, #2
+ bl MOD08_02215600
+ add r4, r0, #0
+ ldr r0, [r5, #0x48]
+ mov r1, #1
+ bl MOD08_02215600
+ lsl r1, r4, #0x18
+ mov r0, #3
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ lsl r1, r4, #0x18
+ mov r0, #2
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ ldrb r0, [r5, #5]
+ add r0, r0, #1
+ strb r0, [r5, #5]
+ b _02213F2E
+_02213E8E:
+ ldr r0, [r5, #0x48]
+ mov r1, #3
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r2, #2
+ add r3, r1, #0
+ bl FUN_020170F4
+ ldr r0, [r5, #0x48]
+ bl MOD08_02212004
+ cmp r0, #1
+ beq _02213EB8
+ ldr r0, [r5, #0x48]
+ mov r2, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020170F4
+_02213EB8:
+ ldr r1, [r5, #0x48]
+ ldr r3, [r5, #0x10]
+ add r0, r5, #0
+ mov r2, #3
+ bl MOD08_02213C94
+ ldrb r0, [r5, #9]
+ mov r1, #4
+ mov r2, #8
+ str r0, [sp]
+ ldrb r3, [r5, #0xa]
+ ldr r0, _02213F34 ; =0x04000050
+ bl G2x_SetBlendAlpha_
+ add r0, r5, #0
+ bl MOD08_02213D50
+ ldrb r0, [r5, #5]
+ add r0, r0, #1
+ strb r0, [r5, #5]
+_02213EE0:
+ ldrb r1, [r5, #9]
+ ldrb r0, [r5, #0xb]
+ mov r2, #0
+ cmp r1, r0
+ bhs _02213EF0
+ add r0, r1, #2
+ strb r0, [r5, #9]
+ b _02213EF2
+_02213EF0:
+ add r2, r2, #1
+_02213EF2:
+ ldrb r1, [r5, #0xa]
+ ldrb r0, [r5, #0xc]
+ cmp r1, r0
+ bls _02213F00
+ sub r0, r1, #2
+ strb r0, [r5, #0xa]
+ b _02213F02
+_02213F00:
+ add r2, r2, #1
+_02213F02:
+ cmp r2, #2
+ bne _02213F14
+ ldrb r0, [r5, #0xb]
+ strb r0, [r5, #9]
+ ldrb r0, [r5, #0xc]
+ strb r0, [r5, #0xa]
+ ldrb r0, [r5, #5]
+ add r0, r0, #1
+ strb r0, [r5, #5]
+_02213F14:
+ ldrb r0, [r5, #9]
+ ldrb r1, [r5, #0xa]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02213F38 ; =0x04000052
+ strh r1, [r0]
+ ldrb r0, [r5, #5]
+ cmp r0, #2
+ beq _02213F2E
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02213F2A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02213F2E:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_02213F34: .word 0x04000050
+_02213F38: .word 0x04000052
+
+ thumb_func_start MOD08_02213F3C
+MOD08_02213F3C: ; 0x02213F3C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldrb r0, [r4, #5]
+ cmp r0, #4
+ bls _02213F4A
+ b _0221411C
+_02213F4A:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02213F56: ; jump table
+ .short _02213F60 - _02213F56 - 2 ; case 0
+ .short _02213F6E - _02213F56 - 2 ; case 1
+ .short _02213FB0 - _02213F56 - 2 ; case 2
+ .short _02213FF6 - _02213F56 - 2 ; case 3
+ .short _022140F8 - _02213F56 - 2 ; case 4
+_02213F60:
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_02213F6E:
+ ldr r0, [r4, #0x48]
+ mov r1, #2
+ bl MOD08_02215600
+ add r5, r0, #0
+ ldr r0, [r4, #0x48]
+ mov r1, #1
+ bl MOD08_02215600
+ lsl r1, r5, #0x18
+ mov r0, #3
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ lsl r1, r5, #0x18
+ mov r0, #2
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldrb r0, [r4, #0xa]
+ mov r1, #4
+ mov r2, #8
+ str r0, [sp]
+ ldrb r3, [r4, #9]
+ ldr r0, _02214128 ; =0x04000050
+ bl G2x_SetBlendAlpha_
+ add r0, r4, #0
+ bl MOD08_02213D50
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_02213FB0:
+ ldrb r1, [r4, #9]
+ ldrb r0, [r4, #0xb]
+ mov r2, #0
+ cmp r1, r0
+ bhs _02213FC0
+ add r0, r1, #2
+ strb r0, [r4, #9]
+ b _02213FC2
+_02213FC0:
+ add r2, r2, #1
+_02213FC2:
+ ldrb r1, [r4, #0xa]
+ ldrb r0, [r4, #0xc]
+ cmp r1, r0
+ bls _02213FD0
+ sub r0, r1, #2
+ strb r0, [r4, #0xa]
+ b _02213FD2
+_02213FD0:
+ add r2, r2, #1
+_02213FD2:
+ cmp r2, #2
+ bne _02213FE8
+ ldrb r0, [r4, #0xb]
+ add r0, r0, #2
+ strb r0, [r4, #9]
+ ldrb r0, [r4, #0xc]
+ sub r0, r0, #2
+ strb r0, [r4, #0xa]
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_02213FE8:
+ ldrb r0, [r4, #0xa]
+ ldrb r1, [r4, #9]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221412C ; =0x04000052
+ strh r1, [r0]
+ b _02214122
+_02213FF6:
+ add r0, r4, #0
+ add r0, #0x44
+ ldrh r0, [r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _0221400A
+ ldr r0, [r4, #0x48]
+ bl MOD08_02214524
+_0221400A:
+ add r0, r4, #0
+ add r0, #0x44
+ ldrh r0, [r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _0221401E
+ ldr r0, [r4, #0x48]
+ bl MOD08_02214524
+_0221401E:
+ ldr r0, [r4, #0x48]
+ mov r2, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r2, #2
+ mov r3, #4
+ bl FUN_020170F4
+ ldr r0, [r4, #0x48]
+ bl MOD08_02212004
+ cmp r0, #0
+ bne _02214078
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r2, #0
+ mov r3, #1
+ bl FUN_020170F4
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ bl MOD08_02215638
+ ldr r0, [r4, #0x48]
+ bl MOD08_02215660
+ b _022140CC
+_02214078:
+ ldr r2, [r4, #0x48]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r2]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r2, r1]
+ add r1, r1, #4
+ ldr r1, [r2, r1]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r3, #3
+ bl FUN_0200687C
+ mov r2, #0x66
+ lsl r2, r2, #2
+ add r1, r2, #0
+ ldr r3, [r4, #0x48]
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r3, r2]
+ sub r1, #0x14
+ lsl r0, r0, #5
+ str r0, [sp, #4]
+ sub r0, r2, #4
+ ldr r0, [r3, r0]
+ sub r2, #0xc
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r3, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ ldr r1, [r3, r1]
+ ldr r2, [r3, r2]
+ ldr r3, [r3]
+ bl FUN_020030E8
+_022140CC:
+ ldr r2, [r4, #0x48]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r2]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r2, r1]
+ add r1, #0xc
+ ldr r1, [r2, r1]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r3, #3
+ bl FUN_020068C8
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+ b _02214122
+_022140F8:
+ ldr r0, [r4, #0x48]
+ bl MOD08_02212004
+ cmp r0, #0
+ bne _02214108
+ bl MOD11_02231678
+ b _0221410C
+_02214108:
+ bl MOD12_02233560
+_0221410C:
+ ldr r0, [r4, #0x48]
+ mov r1, #2
+ bl MOD08_02214850
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+ b _02214122
+_0221411C:
+ add sp, #0x10
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02214122:
+ mov r0, #1
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02214128: .word 0x04000050
+_0221412C: .word 0x04000052
+
+ thumb_func_start MOD08_02214130
+MOD08_02214130: ; 0x02214130
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldrb r0, [r4, #5]
+ cmp r0, #0
+ beq _02214142
+ cmp r0, #1
+ beq _022141BE
+ b _0221423A
+_02214142:
+ ldrb r0, [r4, #0xd]
+ ldr r2, [r4, #0x48]
+ cmp r0, #0
+ bne _02214180
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ mov r5, #0x67
+ add r0, r2, #0
+ str r3, [sp, #8]
+ lsl r5, r5, #2
+ ldr r2, [r2, r5]
+ add r0, #0xc8
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #1
+ lsr r2, r2, #0x10
+ bl FUN_02003210
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4, #0x48]
+ add r2, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ add r2, #0x64
+ mov r3, #0x10
+ bl FUN_02003A64
+ b _022141B8
+_02214180:
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _02214254 ; =0x0000FFFF
+ mov r5, #0x67
+ str r0, [sp, #8]
+ add r0, r2, #0
+ lsl r5, r5, #2
+ ldr r2, [r2, r5]
+ add r0, #0xc8
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #1
+ lsr r2, r2, #0x10
+ bl FUN_02003210
+ ldr r0, _02214254 ; =0x0000FFFF
+ add r2, r5, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x48]
+ mov r1, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ add r2, #0x64
+ mov r3, #0x10
+ bl FUN_02003A64
+_022141B8:
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_022141BE:
+ ldr r0, [r4, #0x48]
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0221424E
+ ldr r0, [r4, #0x48]
+ mov r2, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020170F4
+ ldr r1, [r4, #0x48]
+ ldr r3, [r4, #0x10]
+ add r0, r4, #0
+ mov r2, #3
+ bl MOD08_02213C94
+ ldrb r0, [r4, #0xd]
+ cmp r0, #0
+ bne _02214208
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r4, #0x48]
+ mov r1, #1
+ add r0, #0xc8
+ ldr r0, [r0]
+ lsl r2, r1, #9
+ bl FUN_02003210
+ b _02214222
+_02214208:
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ ldr r0, _02214254 ; =0x0000FFFF
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x48]
+ mov r1, #1
+ add r0, #0xc8
+ ldr r0, [r0]
+ lsl r2, r1, #9
+ bl FUN_02003210
+_02214222:
+ add r0, r4, #0
+ bl MOD08_02213D50
+ mov r0, #0x5f
+ ldr r1, [r4, #0x48]
+ mov r2, #2
+ lsl r0, r0, #2
+ strb r2, [r1, r0]
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+ b _0221424E
+_0221423A:
+ ldr r0, [r4, #0x48]
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0221424E
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, pc}
+_0221424E:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02214254: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02214258
+MOD08_02214258: ; 0x02214258
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldrb r0, [r4, #5]
+ cmp r0, #3
+ bls _02214266
+ b _02214462
+_02214266:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02214272: ; jump table
+ .short _0221427A - _02214272 - 2 ; case 0
+ .short _02214286 - _02214272 - 2 ; case 1
+ .short _02214300 - _02214272 - 2 ; case 2
+ .short _022143F0 - _02214272 - 2 ; case 3
+_0221427A:
+ add r0, r4, #0
+ bl MOD08_02213D50
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_02214286:
+ ldrb r0, [r4, #0xd]
+ cmp r0, #0
+ bne _022142C2
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r4, #0x48]
+ mov r1, #1
+ add r0, #0xc8
+ ldr r0, [r0]
+ lsl r2, r1, #9
+ bl FUN_02003210
+ ldr r3, [r4, #0x48]
+ mov r1, #0
+ mov r2, #0x67
+ add r0, r3, #0
+ str r1, [sp]
+ lsl r2, r2, #2
+ ldr r2, [r3, r2]
+ add r0, #0xc8
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ lsr r2, r2, #0x10
+ mov r3, #0x10
+ bl FUN_02003A64
+ b _022142FA
+_022142C2:
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _0221448C ; =0x0000FFFF
+ mov r1, #1
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x48]
+ lsl r2, r1, #9
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_02003210
+ mov r2, #0x67
+ ldr r3, [r4, #0x48]
+ ldr r0, _0221448C ; =0x0000FFFF
+ lsl r2, r2, #2
+ str r0, [sp]
+ add r0, r3, #0
+ ldr r2, [r3, r2]
+ add r0, #0xc8
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #0
+ lsr r2, r2, #0x10
+ mov r3, #0x10
+ bl FUN_02003A64
+_022142FA:
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_02214300:
+ ldr r0, [r4, #0x48]
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _02214310
+ b _02214486
+_02214310:
+ add r0, r4, #0
+ add r0, #0x44
+ ldrh r0, [r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _02214324
+ ldr r0, [r4, #0x48]
+ bl MOD08_02214524
+_02214324:
+ add r0, r4, #0
+ add r0, #0x44
+ ldrh r0, [r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _02214338
+ ldr r0, [r4, #0x48]
+ bl MOD08_02214524
+_02214338:
+ mov r0, #3
+ mov r1, #0
+ bl FUN_0201797C
+ ldr r0, [r4, #0x48]
+ bl MOD08_02212004
+ cmp r0, #0
+ bne _0221436A
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r2, #0
+ mov r3, #1
+ bl FUN_020170F4
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ bl MOD08_02215638
+ ldr r0, [r4, #0x48]
+ bl MOD08_02215660
+ b _022143BE
+_0221436A:
+ ldr r2, [r4, #0x48]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r2]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r2, r1]
+ add r1, r1, #4
+ ldr r1, [r2, r1]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r3, #3
+ bl FUN_0200687C
+ mov r2, #0x66
+ lsl r2, r2, #2
+ add r1, r2, #0
+ ldr r3, [r4, #0x48]
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r3, r2]
+ sub r1, #0x14
+ lsl r0, r0, #5
+ str r0, [sp, #4]
+ sub r0, r2, #4
+ ldr r0, [r3, r0]
+ sub r2, #0xc
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r3, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ ldr r1, [r3, r1]
+ ldr r2, [r3, r2]
+ ldr r3, [r3]
+ bl FUN_020030E8
+_022143BE:
+ ldr r2, [r4, #0x48]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r2]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r2, r1]
+ add r1, #0xc
+ ldr r1, [r2, r1]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #3
+ mov r1, #1
+ bl FUN_0201797C
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_022143F0:
+ ldr r0, [r4, #0x48]
+ mov r2, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_020179E0
+ ldrb r0, [r4, #0xd]
+ ldr r2, [r4, #0x48]
+ cmp r0, #0
+ bne _0221443A
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ mov r5, #0x67
+ add r0, r2, #0
+ str r3, [sp, #8]
+ lsl r5, r5, #2
+ ldr r2, [r2, r5]
+ add r0, #0xc8
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #1
+ lsr r2, r2, #0x10
+ bl FUN_02003210
+ b _0221445C
+_0221443A:
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ mov r5, #0x67
+ ldr r0, _0221448C ; =0x0000FFFF
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r2, #0
+ lsl r5, r5, #2
+ ldr r2, [r2, r5]
+ add r0, #0xc8
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #1
+ lsr r2, r2, #0x10
+ bl FUN_02003210
+_0221445C:
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_02214462:
+ ldr r0, [r4, #0x48]
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02214486
+ mov r0, #0x5f
+ ldr r1, [r4, #0x48]
+ mov r2, #2
+ lsl r0, r0, #2
+ strb r2, [r1, r0]
+ ldrb r0, [r4, #5]
+ add sp, #0x10
+ add r0, r0, #1
+ strb r0, [r4, #5]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02214486:
+ mov r0, #1
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221448C: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02214490
+MOD08_02214490: ; 0x02214490
+ push {r3, lr}
+ add r0, r1, #0
+ bl MOD08_02213D50
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD08_0221449C
+MOD08_0221449C: ; 0x0221449C
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD08_02213D50
+ add r0, r4, #0
+ add r0, #0x44
+ ldrh r0, [r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _022144BA
+ ldr r0, [r4, #0x48]
+ bl MOD08_02214524
+_022144BA:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022144C0
+MOD08_022144C0: ; 0x022144C0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ bne _022144DA
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+_022144DA:
+ mov r3, #4
+ mov r1, #8
+ ldrsh r2, [r4, r3]
+ ldrsh r0, [r4, r1]
+ add r0, r2, r0
+ strh r0, [r4, #4]
+ mov r0, #6
+ ldrsh r2, [r4, r0]
+ mov r0, #0xa
+ ldrsh r0, [r4, r0]
+ add r0, r2, r0
+ strh r0, [r4, #6]
+ ldrsh r0, [r4, r1]
+ cmp r0, #0
+ beq _02214508
+ ldr r1, [r4, #0xc]
+ ldrsh r3, [r4, r3]
+ lsl r1, r1, #0x18
+ ldr r0, [r4]
+ lsr r1, r1, #0x18
+ mov r2, #0
+ bl FUN_020179E0
+_02214508:
+ mov r0, #0xa
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ beq _02214522
+ ldr r1, [r4, #0xc]
+ mov r3, #6
+ lsl r1, r1, #0x18
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4]
+ lsr r1, r1, #0x18
+ mov r2, #3
+ bl FUN_020179E0
+_02214522:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02214524
+MOD08_02214524: ; 0x02214524
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221452E
+ bl ErrorHandling
+_0221452E:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _0221453C
+ mov r0, #1
+ str r0, [r1, #0x18]
+_0221453C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02214540
+MOD08_02214540: ; 0x02214540
+ mov r1, #0x67
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD08_02214548
+MOD08_02214548: ; 0x02214548
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD08_0221454C
+MOD08_0221454C: ; 0x0221454C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x48]
+ mov r1, #0x20
+ ldr r0, [r0]
+ bl AllocFromHeap
+ add r4, r0, #0
+ ldr r0, [r5, #0x48]
+ mov r2, #6
+ add r0, #0xc4
+ ldr r0, [r0]
+ str r0, [r4]
+ ldr r0, [r5, #0x48]
+ add r0, #0x9c
+ ldr r0, [r0]
+ strh r0, [r4, #4]
+ ldr r0, [r5, #0x48]
+ add r0, #0xa0
+ ldr r0, [r0]
+ strh r0, [r4, #6]
+ ldr r0, [r5, #0x48]
+ add r0, #0x94
+ ldr r0, [r0]
+ strh r0, [r4, #8]
+ ldr r0, [r5, #0x48]
+ add r0, #0x98
+ ldr r0, [r0]
+ strh r0, [r4, #0xa]
+ mov r0, #3
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x10]
+ ldr r1, [r5, #0x48]
+ add r0, r5, #0
+ bl MOD08_02213C40
+ cmp r0, #1
+ bne _022145C0
+ mov r0, #8
+ ldrsh r1, [r4, r0]
+ sub r0, #9
+ mul r0, r1
+ strh r0, [r4, #8]
+ mov r0, #0xa
+ ldrsh r1, [r4, r0]
+ sub r0, #0xb
+ mul r0, r1
+ strh r0, [r4, #0xa]
+ mov r0, #4
+ ldrsh r1, [r4, r0]
+ sub r0, r0, #5
+ mul r0, r1
+ strh r0, [r4, #4]
+ mov r0, #6
+ ldrsh r1, [r4, r0]
+ sub r0, r0, #7
+ mul r0, r1
+ strh r0, [r4, #6]
+_022145C0:
+ mov r0, #1
+ str r0, [r4, #0x14]
+ mov r1, #0
+ str r1, [r4, #0x18]
+ mov r1, #6
+ ldr r2, [r5, #0x48]
+ lsl r1, r1, #6
+ str r4, [r2, r1]
+ add r1, r5, #0
+ add r1, #0x44
+ ldrh r2, [r1]
+ mov r1, #1
+ add r5, #0x44
+ bic r2, r1
+ orr r0, r2
+ strh r0, [r5]
+ ldr r0, _022145F0 ; =MOD08_022144C0
+ ldr r2, _022145F4 ; =0x00001001
+ add r1, r4, #0
+ bl FUN_0200CA44
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022145F0: .word MOD08_022144C0
+_022145F4: .word 0x00001001
+
+ thumb_func_start MOD08_022145F8
+MOD08_022145F8: ; 0x022145F8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ ldr r4, [r0, #0x48]
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r1, #0x20
+ bl AllocFromHeap
+ add r6, r0, #0
+ ldr r0, [r4]
+ mov r1, #0xc4
+ bl AllocFromHeap
+ str r0, [r6, #0x1c]
+ mov r0, #6
+ lsl r0, r0, #6
+ str r6, [r4, r0]
+ ldr r0, [sp]
+ mov r1, #2
+ add r0, #0x44
+ ldrh r0, [r0]
+ add r2, r0, #0
+ ldr r0, [sp]
+ orr r2, r1
+ add r0, #0x44
+ strh r2, [r0]
+ mov r0, #0
+ str r0, [r6, #0x18]
+ add r0, r4, #0
+ bl MOD08_022155C4
+ bl MOD08_022189A0
+ add r5, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD08_02218998
+ add r1, r0, #0
+ ldr r2, [r4]
+ add r0, r5, #0
+ bl MOD08_022187F4
+ mov r4, #0
+ ldr r1, [r6, #0x1c]
+ ldr r7, _022146C8 ; =0x0222AAF8
+ add r1, #0xc0
+ str r0, [r1]
+ str r4, [sp, #4]
+ add r5, r4, #0
+_0221465C:
+ ldr r0, [r6, #0x1c]
+ strh r4, [r0, r5]
+ ldr r0, [r6, #0x1c]
+ add r1, r0, r5
+ ldrsh r0, [r0, r5]
+ add r0, #8
+ strh r0, [r1, #2]
+ mov r0, #0
+ ldrsh r1, [r7, r0]
+ ldr r0, [r6, #0x1c]
+ add r0, r0, r5
+ strh r1, [r0, #4]
+ ldr r0, [r6, #0x1c]
+ add r1, r0, r5
+ mov r0, #0
+ strh r0, [r1, #6]
+ add r1, r0, #0
+ bl MOD08_02218998
+ ldr r1, [r6, #0x1c]
+ mov r2, #6
+ add r1, r1, r5
+ str r0, [r1, #8]
+ ldr r0, [sp]
+ add r1, r0, #0
+ ldr r1, [r1, #0x48]
+ bl MOD08_02213C40
+ cmp r0, #1
+ bne _022146A6
+ ldr r0, [r6, #0x1c]
+ mov r1, #4
+ add r0, r0, r5
+ ldrsh r2, [r0, r1]
+ sub r1, r1, #5
+ mul r1, r2
+ strh r1, [r0, #4]
+_022146A6:
+ ldr r0, [sp, #4]
+ add r4, #8
+ add r0, r0, #1
+ add r5, #0xc
+ add r7, r7, #2
+ str r0, [sp, #4]
+ cmp r0, #0x10
+ blt _0221465C
+ mov r2, #1
+ ldr r0, _022146CC ; =MOD08_022146E4
+ add r1, r6, #0
+ lsl r2, r2, #0xc
+ bl FUN_0200CA44
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022146C8: .word 0x0222AAF8
+_022146CC: .word MOD08_022146E4
+
+ thumb_func_start MOD08_022146D0
+MOD08_022146D0: ; 0x022146D0
+ add r1, r0, #0
+ add r1, #0x44
+ ldrh r2, [r1]
+ mov r1, #2
+ add r0, #0x44
+ orr r1, r2
+ strh r1, [r0]
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022146E4
+MOD08_022146E4: ; 0x022146E4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5, #0x18]
+ ldr r4, [r5, #0x1c]
+ cmp r0, #1
+ bne _02214712
+ add r4, #0xc0
+ ldr r0, [r4]
+ bl MOD08_02218870
+ ldr r0, [r5, #0x1c]
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02214712:
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl MOD08_02218894
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+_02214722:
+ mov r0, #6
+ ldrsh r1, [r4, r0]
+ mov r0, #4
+ ldrsh r0, [r4, r0]
+ add r0, r1, r0
+ strh r0, [r4, #6]
+ mov r0, #0
+ ldrsh r6, [r4, r0]
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ cmp r6, r0
+ bge _0221476A
+ ldr r0, [sp]
+ lsl r1, r6, #2
+ add r5, r0, r1
+ mov r7, #2
+_02214742:
+ ldr r1, [r4, #8]
+ mov r2, #6
+ lsl r0, r1, #0x10
+ asr r1, r1, #0x10
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ lsl r1, r1, #0x10
+ ldrsh r2, [r4, r2]
+ asr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ add r0, r0, r2
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl MOD08_02218998
+ stmia r5!, {r0}
+ ldrsh r0, [r4, r7]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _02214742
+_0221476A:
+ ldr r0, [sp, #4]
+ add r4, #0xc
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #0x10
+ blt _02214722
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221477C
+MOD08_0221477C: ; 0x0221477C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ mov r1, #2
+ add r5, r0, #0
+ bl MOD08_02215600
+ add r1, r0, #0
+ lsl r0, r4, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0
+ bl FUN_0201797C
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022147C0
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ mov r2, #2
+ mov r3, #4
+ bl FUN_020170F4
+ b _022147E4
+_022147C0:
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ mov r2, #0
+ mov r3, #1
+ bl FUN_020170F4
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ mov r2, #2
+ mov r3, #4
+ bl FUN_020170F4
+_022147E4:
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02214822
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ mov r1, #0x61
+ add r2, r5, #0
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ add r2, #0xc4
+ ldr r1, [r5, r1]
+ ldr r2, [r2]
+ add r3, r4, #0
+ bl FUN_0200687C
+ b _0221482A
+_02214822:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02215638
+_0221482A:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ add r1, #0xc
+ ldr r1, [r5, r1]
+ add r5, #0xc4
+ ldr r2, [r5]
+ add r3, r4, #0
+ bl FUN_020068C8
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02214850
+MOD08_02214850: ; 0x02214850
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #1
+ add r5, r0, #0
+ bl MOD08_02215600
+ add r1, r0, #0
+ lsl r0, r4, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02214888
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ mov r2, #2
+ mov r3, #3
+ bl FUN_020170F4
+ b _022148AC
+_02214888:
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ mov r2, #0
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ add r3, r2, #0
+ bl FUN_020170F4
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ mov r2, #2
+ mov r3, #3
+ bl FUN_020170F4
+_022148AC:
+ add r5, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r5]
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022148BC
+MOD08_022148BC: ; 0x022148BC
+ add r1, r0, #0
+ add r1, #0x44
+ ldrh r2, [r1]
+ mov r1, #1
+ add r0, #0x44
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ strh r1, [r0]
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022148D4
+MOD08_022148D4: ; 0x022148D4
+ push {r3, lr}
+ ldr r0, [r0, #0x48]
+ bl MOD08_02214524
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD08_022148E0
+MOD08_022148E0: ; 0x022148E0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r2, [r4, #0x14]
+ add r5, r0, #0
+ lsl r3, r2, #2
+ ldr r2, _0221490C ; =0x0222AA64
+ ldr r2, [r2, r3]
+ blx r2
+ cmp r0, #0
+ bne _0221490A
+ mov r0, #0x5f
+ ldr r1, [r4, #0x48]
+ mov r2, #0
+ lsl r0, r0, #2
+ strb r2, [r1, r0]
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0221490A:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221490C: .word 0x0222AA64
+
+ thumb_func_start MOD08_02214910
+MOD08_02214910: ; 0x02214910
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_02213DA8
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strb r0, [r4, #0xd]
+ ldr r0, [r5, #0x18]
+ ldr r2, _02214954 ; =0x0000044C
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x14]
+ ldr r0, _02214958 ; =0xFFFF0000
+ and r0, r1
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x18]
+ ldr r0, _0221495C ; =MOD08_022148E0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02214954: .word 0x0000044C
+_02214958: .word 0xFFFF0000
+_0221495C: .word MOD08_022148E0
+
+ thumb_func_start MOD08_02214960
+MOD08_02214960: ; 0x02214960
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r2, r1, #4
+ str r2, [r0, #0x18]
+ ldr r1, [r2]
+ add r2, r2, #4
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ str r2, [r0, #0x18]
+ cmp r3, #3
+ bhi _022149B4
+ add r2, r3, r3
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02214986: ; jump table
+ .short _0221498E - _02214986 - 2 ; case 0
+ .short _02214998 - _02214986 - 2 ; case 1
+ .short _022149A2 - _02214986 - 2 ; case 2
+ .short _022149AC - _02214986 - 2 ; case 3
+_0221498E:
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r0, r2]
+ strh r1, [r0, #8]
+ bx lr
+_02214998:
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r0, r2]
+ strh r1, [r0, #0xa]
+ bx lr
+_022149A2:
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r0, r2]
+ strh r1, [r0, #4]
+ bx lr
+_022149AC:
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r0, r2]
+ strh r1, [r0, #4]
+_022149B4:
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022149B8
+MOD08_022149B8: ; 0x022149B8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_02213DA8
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strb r0, [r4, #0xd]
+ ldr r0, [r5, #0x18]
+ ldr r2, _02214A00 ; =0x0000044C
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x18]
+ add r1, r0, #4
+ str r1, [r5, #0x18]
+ ldr r0, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ lsl r1, r0, #0x10
+ lsr r1, r1, #0x10
+ add r1, r1, #3
+ str r1, [r4, #0x14]
+ ldr r1, _02214A04 ; =0xFFFF0000
+ and r0, r1
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x18]
+ ldr r0, _02214A08 ; =MOD08_022148E0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ nop
+_02214A00: .word 0x0000044C
+_02214A04: .word 0xFFFF0000
+_02214A08: .word MOD08_022148E0
+
+ thumb_func_start MOD08_02214A0C
+MOD08_02214A0C: ; 0x02214A0C
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ ldrb r1, [r0, r1]
+ cmp r1, #2
+ bne _02214A24
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ mov r1, #0
+ add r0, #0x8d
+ strb r1, [r0]
+ bx lr
+_02214A24:
+ mov r1, #1
+ add r0, #0x8d
+ strb r1, [r0]
+ bx lr
+
+ thumb_func_start MOD08_02214A2C
+MOD08_02214A2C: ; 0x02214A2C
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ ldrb r1, [r0, r1]
+ cmp r1, #0
+ bne _02214A44
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ mov r1, #0
+ add r0, #0x8d
+ strb r1, [r0]
+ bx lr
+_02214A44:
+ mov r1, #1
+ add r0, #0x8d
+ strb r1, [r0]
+ bx lr
+
+ thumb_func_start MOD08_02214A4C
+MOD08_02214A4C: ; 0x02214A4C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ mov r1, #0
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r4, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r4, #0
+ bl MOD08_022156AC
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r2, r5, #0
+ str r0, [sp, #0xc]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #7
+ mov r3, #3
+ bl FUN_0200687C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD08_022156AC
+ mov r2, #0
+ str r2, [sp]
+ add r1, r0, #0
+ ldr r0, [r5]
+ add r3, r2, #0
+ str r0, [sp, #4]
+ mov r0, #7
+ bl FUN_02006930
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD08_022156AC
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r5, #0xc4
+ str r0, [sp, #0xc]
+ ldr r2, [r5]
+ mov r0, #7
+ mov r3, #3
+ bl FUN_020068C8
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02214AC8
+MOD08_02214AC8: ; 0x02214AC8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl MOD08_02213DA8
+ add r4, r0, #0
+ ldr r0, [r5, #0x18]
+ add r1, r0, #4
+ str r1, [r5, #0x18]
+ ldr r0, [r1]
+ str r0, [sp]
+ add r0, r1, #4
+ str r0, [r5, #0x18]
+ ldr r7, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r6, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02214AFA
+ str r6, [r4, #0x10]
+ b _02214B12
+_02214AFA:
+ add r0, r5, #0
+ add r5, #0xc0
+ ldr r1, [r5]
+ ldrh r1, [r1, #0x16]
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _02214B0E
+ str r7, [r4, #0x10]
+ b _02214B12
+_02214B0E:
+ ldr r0, [sp]
+ str r0, [r4, #0x10]
+_02214B12:
+ ldr r0, _02214B20 ; =MOD08_022148E0
+ ldr r2, _02214B24 ; =0x0000044C
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02214B20: .word MOD08_022148E0
+_02214B24: .word 0x0000044C
+
+ thumb_func_start MOD08_02214B28
+MOD08_02214B28: ; 0x02214B28
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214B2C
+MOD08_02214B2C: ; 0x02214B2C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214B30
+MOD08_02214B30: ; 0x02214B30
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214B34
+MOD08_02214B34: ; 0x02214B34
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214B38
+MOD08_02214B38: ; 0x02214B38
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214B3C
+MOD08_02214B3C: ; 0x02214B3C
+ ldr r1, [r0, #0x18]
+ ldr r3, _02214B50 ; =FUN_020054C8
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ bx r3
+ .align 2, 0
+_02214B50: .word FUN_020054C8
+
+ thumb_func_start MOD08_02214B54
+MOD08_02214B54: ; 0x02214B54
+ ldr r1, [r0, #0x18]
+ ldr r3, _02214B6C ; =FUN_020054F0
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0
+ bx r3
+ nop
+_02214B6C: .word FUN_020054F0
+
+ thumb_func_start MOD08_02214B70
+MOD08_02214B70: ; 0x02214B70
+ push {r3, r4, r5, lr}
+ ldr r1, [r0, #0x18]
+ add r2, r1, #4
+ str r2, [r0, #0x18]
+ ldr r1, [r2]
+ lsl r1, r1, #0x10
+ lsr r4, r1, #0x10
+ add r1, r2, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ lsl r1, r2, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_020054C8
+ ldr r1, _02214BA4 ; =0x0000FFFF
+ add r0, r4, #0
+ add r2, r5, #0
+ bl FUN_02005530
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02214BA4: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02214BA8
+MOD08_02214BA8: ; 0x02214BA8
+ push {r3, lr}
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ lsl r1, r2, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ bl FUN_0200554C
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02214BC4
+MOD08_02214BC4: ; 0x02214BC4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_0221252C
+ mov r1, #0
+ mov r2, #0x3c
+ add r4, r0, #0
+ bl memset
+ mov r0, #1
+ strb r0, [r4]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strh r0, [r4, #0x1a]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ str r0, [r4, #8]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strb r0, [r4, #3]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r4, #8]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ ldr r2, [r4, #0x10]
+ lsl r0, r0, #0x18
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x18
+ asr r0, r0, #0x18
+ asr r1, r1, #0x18
+ asr r2, r2, #0x18
+ bl MOD08_0221540C
+ str r0, [r4, #0x10]
+ ldrh r0, [r4, #0x1a]
+ bl FUN_020054C8
+ ldrh r0, [r4, #0x1a]
+ ldr r1, _02214C60 ; =0x0000FFFF
+ ldr r2, [r4, #8]
+ bl FUN_02005530
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_0221255C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02214C60: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02214C64
+MOD08_02214C64: ; 0x02214C64
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_0221252C
+ mov r1, #0
+ mov r2, #0x3c
+ add r4, r0, #0
+ bl memset
+ mov r0, #2
+ strb r0, [r4]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strh r0, [r4, #0x1a]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #8]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strb r0, [r4, #3]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldrh r0, [r4, #0x1a]
+ bl FUN_020054C8
+ ldrh r0, [r4, #0x1a]
+ ldr r1, _02214CD8 ; =0x0000FFFF
+ ldr r2, [r4, #8]
+ bl FUN_02005530
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_0221255C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02214CD8: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02214CDC
+MOD08_02214CDC: ; 0x02214CDC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_0221252C
+ mov r1, #0
+ mov r2, #0x3c
+ add r4, r0, #0
+ bl memset
+ mov r0, #1
+ strb r0, [r4]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strh r0, [r4, #0x1a]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #8]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strb r0, [r4, #3]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r4, #8]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #0x10]
+ ldrh r0, [r4, #0x1a]
+ bl FUN_020054C8
+ ldrh r0, [r4, #0x1a]
+ ldr r1, _02214D7C ; =0x0000FFFF
+ ldr r2, [r4, #8]
+ bl FUN_02005530
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_0221255C
+ pop {r3, r4, r5, pc}
+ nop
+_02214D7C: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02214D80
+MOD08_02214D80: ; 0x02214D80
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_0221252C
+ mov r1, #0
+ mov r2, #0x3c
+ add r4, r0, #0
+ bl memset
+ mov r0, #4
+ strb r0, [r4]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strh r0, [r4, #0x1a]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #0x14]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strb r0, [r4, #3]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strb r0, [r4, #0x18]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldrb r0, [r4, #3]
+ strb r0, [r4, #4]
+ ldr r1, [r4, #0x14]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_0221255C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02214DE4
+MOD08_02214DE4: ; 0x02214DE4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_0221252C
+ mov r1, #0
+ mov r2, #0x3c
+ add r4, r0, #0
+ bl memset
+ mov r0, #5
+ strb r0, [r4]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strh r0, [r4, #0x1a]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #0x14]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strb r0, [r4, #3]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r4, #0x14]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_0221255C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02214E3C
+MOD08_02214E3C: ; 0x02214E3C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214E40
+MOD08_02214E40: ; 0x02214E40
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x90
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _02214E5C
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x8d
+ strb r1, [r0]
+ ldr r0, _02214E94 ; =0x0000017D
+ mov r1, #0
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_02214E5C:
+ bl FUN_02005514
+ cmp r0, #0
+ beq _02214E80
+ ldr r0, _02214E94 ; =0x0000017D
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ ldrb r1, [r4, r0]
+ cmp r1, #0x5a
+ bls _02214E78
+ mov r1, #0
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_02214E78:
+ mov r0, #1
+ add r4, #0x8d
+ strb r0, [r4]
+ pop {r4, pc}
+_02214E80:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x8d
+ strb r1, [r0]
+ ldr r0, _02214E94 ; =0x0000017D
+ strb r1, [r4, r0]
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+ .align 2, 0
+_02214E94: .word 0x0000017D
+
+ thumb_func_start MOD08_02214E98
+MOD08_02214E98: ; 0x02214E98
+ push {r3, lr}
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ lsl r3, r3, #0x10
+ ldr r0, _02214EC4 ; =0x04001050
+ mov r1, #1
+ mov r2, #2
+ lsr r3, r3, #0x10
+ bl G2x_SetBlendAlpha_
+ pop {r3, pc}
+ nop
+_02214EC4: .word 0x04001050
+
+ thumb_func_start MOD08_02214EC8
+MOD08_02214EC8: ; 0x02214EC8
+ ldr r3, _02214ECC ; =MOD08_0221268C
+ bx r3
+ .align 2, 0
+_02214ECC: .word MOD08_0221268C
+
+ thumb_func_start MOD08_02214ED0
+MOD08_02214ED0: ; 0x02214ED0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214ED4
+MOD08_02214ED4: ; 0x02214ED4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r6, r5, #0
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r7, [r0]
+ add r0, r0, #4
+ lsl r4, r1, #2
+ add r6, #0xcc
+ str r0, [r5, #0x18]
+ ldr r0, [r6, r4]
+ cmp r0, #0
+ beq _02214EFC
+ bl ErrorHandling
+_02214EFC:
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200BB34
+ str r0, [r6, r4]
+ ldr r0, [r6, r4]
+ cmp r0, #0
+ bne _02214F16
+ bl ErrorHandling
+_02214F16:
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, [r6, r4]
+ add r0, #0xac
+ ldr r0, [r0]
+ add r2, r7, #0
+ bl FUN_0200BBF0
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200BB68
+ mov r2, #0x11
+ mov r1, #0
+ lsl r2, r2, #0x10
+ bl FUN_02008D24
+ add r0, r5, #0
+ mov r1, #0
+ add r2, sp, #0
+ add r0, #0x18
+_02214F48:
+ ldr r3, [r5, #0x18]
+ add r1, r1, #1
+ ldr r3, [r3]
+ str r3, [r2]
+ ldr r3, [r0]
+ add r2, r2, #4
+ add r3, r3, #4
+ str r3, [r0]
+ cmp r1, #6
+ blt _02214F48
+ add r5, #0xc0
+ ldr r0, [r5]
+ ldr r1, [r6, r4]
+ add r0, #0xac
+ ldr r0, [r0]
+ add r2, sp, #0
+ bl FUN_0200BF60
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02214F70
+MOD08_02214F70: ; 0x02214F70
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ ldr r0, [r2, #0x18]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ ldr r3, [r0]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02214FB0 ; =0x00001388
+ lsl r1, r1, #2
+ add r0, r3, r0
+ str r0, [sp, #8]
+ add r0, r2, #0
+ add r1, r2, r1
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, #0xcc
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x15
+ bl FUN_0200C00C
+ add sp, #0xc
+ pop {pc}
+ .align 2, 0
+_02214FB0: .word 0x00001388
+
+ thumb_func_start MOD08_02214FB4
+MOD08_02214FB4: ; 0x02214FB4
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ ldr r3, [r0]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ ldr r1, [r0]
+ add r2, r0, #4
+ str r2, [r4, #0x18]
+ ldr r0, [r2]
+ add r2, r2, #4
+ str r2, [r4, #0x18]
+ mov r2, #0x16
+ str r2, [sp]
+ str r1, [sp, #4]
+ mov r2, #0
+ str r2, [sp, #8]
+ mov r2, #1
+ str r2, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _0221500C ; =0x00001388
+ add r2, r4, #0
+ add r0, r1, r0
+ str r0, [sp, #0x14]
+ add r2, #0xc0
+ ldr r2, [r2]
+ lsl r3, r3, #2
+ add r0, r4, #0
+ add r3, r4, r3
+ add r0, #0xc8
+ add r2, #0xac
+ add r3, #0xcc
+ ldr r0, [r0]
+ ldr r2, [r2]
+ ldr r3, [r3]
+ mov r1, #2
+ bl FUN_0200C0DC
+ add sp, #0x18
+ pop {r4, pc}
+ nop
+_0221500C: .word 0x00001388
+
+ thumb_func_start MOD08_02215010
+MOD08_02215010: ; 0x02215010
+ push {r3, lr}
+ sub sp, #8
+ add r2, r0, #0
+ ldr r0, [r2, #0x18]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ ldr r3, [r0]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02215050 ; =0x00001388
+ lsl r1, r1, #2
+ add r0, r3, r0
+ str r0, [sp, #4]
+ add r0, r2, #0
+ add r1, r2, r1
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, #0xcc
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x17
+ bl FUN_0200C124
+ add sp, #8
+ pop {r3, pc}
+ nop
+_02215050: .word 0x00001388
+
+ thumb_func_start MOD08_02215054
+MOD08_02215054: ; 0x02215054
+ push {r3, lr}
+ sub sp, #8
+ add r2, r0, #0
+ ldr r0, [r2, #0x18]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ ldr r3, [r0]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02215094 ; =0x00001388
+ lsl r1, r1, #2
+ add r0, r3, r0
+ str r0, [sp, #4]
+ add r0, r2, #0
+ add r1, r2, r1
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, #0xcc
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x18
+ bl FUN_0200C13C
+ add sp, #8
+ pop {r3, pc}
+ nop
+_02215094: .word 0x00001388
+
+ thumb_func_start MOD08_02215098
+MOD08_02215098: ; 0x02215098
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ add r4, r0, #0
+ ldr r1, [r4, #0x18]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ ldr r5, [r1]
+ add r2, r1, #4
+ str r2, [r4, #0x18]
+ ldr r1, [r2]
+ str r1, [sp]
+ add r1, r2, #4
+ str r1, [r4, #0x18]
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r1, sp, #0xc
+ strh r0, [r1]
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r2, sp, #0xc
+ strh r0, [r2, #2]
+ mov r1, #0
+ strh r1, [r2, #4]
+ strh r1, [r2, #6]
+ mov r0, #0x64
+ str r0, [sp, #0x14]
+ mov r0, #1
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x38]
+ add r0, r4, #0
+ ldr r3, _022151A0 ; =0x00001388
+ str r1, [sp, #0x18]
+ str r1, [sp, #0x3c]
+ add r2, sp, #0xc
+ add r0, #0x18
+_022150F0:
+ ldr r6, [r4, #0x18]
+ add r1, r1, #1
+ ldr r6, [r6]
+ add r6, r6, r3
+ str r6, [r2, #0x14]
+ ldr r6, [r0]
+ add r2, r2, #4
+ add r6, r6, #4
+ str r6, [r0]
+ cmp r1, #6
+ blt _022150F0
+ mov r0, #0x41
+ lsl r0, r0, #2
+ add r3, sp, #0xc
+ add r2, r4, r0
+ mov r6, #6
+_02215110:
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ sub r6, r6, #1
+ bne _02215110
+ ldr r0, [r3]
+ lsl r7, r5, #2
+ str r0, [r2]
+ add r0, r4, #0
+ str r0, [sp, #8]
+ add r0, #0xcc
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, [sp, #8]
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r1, r7]
+ add r2, sp, #0xc
+ bl FUN_0200C154
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x18]
+ add r2, r4, #0
+ ldr r3, [r0]
+ add r0, r0, #4
+ add r2, #0x18
+ mov r6, #0
+ str r0, [r4, #0x18]
+ cmp r3, #0
+ ble _02215168
+ add r5, r4, #0
+_02215150:
+ ldr r0, [r4, #0x18]
+ add r6, r6, #1
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r0, #0x94
+ str r1, [r0]
+ ldr r0, [r2]
+ add r5, r5, #4
+ add r0, r0, #4
+ str r0, [r2]
+ cmp r6, r3
+ blt _02215150
+_02215168:
+ cmp r6, #0xa
+ bge _02215180
+ lsl r0, r6, #2
+ add r2, r4, r0
+ mov r1, #0
+_02215172:
+ add r0, r2, #0
+ add r0, #0x94
+ add r6, r6, #1
+ add r2, r2, #4
+ str r1, [r0]
+ cmp r6, #0xa
+ blt _02215172
+_02215180:
+ ldr r0, [sp]
+ bl MOD08_02218C5C
+ add r5, r0, #0
+ add r0, r4, #0
+ add r4, #0xc0
+ ldr r1, [r4]
+ ldr r2, [sp, #8]
+ add r1, #0xac
+ ldr r1, [r1]
+ ldr r2, [r2, r7]
+ ldr r3, [sp, #4]
+ blx r5
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022151A0: .word 0x00001388
+
+ thumb_func_start MOD08_022151A4
+MOD08_022151A4: ; 0x022151A4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r4, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r7, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r1, sp, #0
+ strh r0, [r1]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r2, sp, #0
+ strh r0, [r2, #2]
+ mov r1, #0
+ strh r1, [r2, #4]
+ strh r1, [r2, #6]
+ mov r0, #0x64
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x2c]
+ add r0, r5, #0
+ ldr r3, _02215254 ; =0x00001388
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x30]
+ add r2, sp, #0
+ add r0, #0x18
+_022151FA:
+ ldr r6, [r5, #0x18]
+ add r1, r1, #1
+ ldr r6, [r6]
+ add r6, r6, r3
+ str r6, [r2, #0x14]
+ ldr r6, [r0]
+ add r2, r2, #4
+ add r6, r6, #4
+ str r6, [r0]
+ cmp r1, #6
+ blt _022151FA
+ mov r0, #0x41
+ lsl r0, r0, #2
+ add r6, sp, #0
+ add r3, r5, r0
+ mov r2, #6
+_0221521A:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0221521A
+ ldr r0, [r6]
+ lsl r1, r4, #2
+ str r0, [r3]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, r5, r1
+ add r0, #0xac
+ add r1, #0xcc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ add r2, sp, #0
+ bl FUN_0200C154
+ add r5, #0xdc
+ lsl r4, r7, #2
+ add r6, r0, #0
+ ldr r0, [r5, r4]
+ cmp r0, #0
+ beq _0221524E
+ bl ErrorHandling
+_0221524E:
+ str r6, [r5, r4]
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02215254: .word 0x00001388
+
+ thumb_func_start MOD08_02215258
+MOD08_02215258: ; 0x02215258
+ push {r3, r4, r5, lr}
+ ldr r1, [r0, #0x18]
+ add r5, r0, #0
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ add r5, #0xcc
+ lsl r4, r2, #2
+ str r1, [r0, #0x18]
+ ldr r1, [r5, r4]
+ cmp r1, #0
+ beq _0221527E
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200C398
+_0221527E:
+ mov r0, #0
+ str r0, [r5, r4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02215284
+MOD08_02215284: ; 0x02215284
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r2, r1, #4
+ str r2, [r0, #0x18]
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ lsl r2, r3, #2
+ add r2, r0, r2
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ ldr r3, _022152A4 ; =FUN_0200C644
+ ldr r0, [r2, r0]
+ bx r3
+ .align 2, 0
+_022152A4: .word FUN_0200C644
+
+ thumb_func_start MOD08_022152A8
+MOD08_022152A8: ; 0x022152A8
+ ldr r3, _022152AC ; =ErrorHandling
+ bx r3
+ .align 2, 0
+_022152AC: .word ErrorHandling
+
+ thumb_func_start MOD08_022152B0
+MOD08_022152B0: ; 0x022152B0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r4, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r1, [r1]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ add r3, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r2, [r0]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r1, [sp]
+ ldr r1, [r2, r0]
+ sub r0, #0xc
+ str r1, [sp, #4]
+ ldr r1, [r5]
+ str r1, [sp, #8]
+ add r1, r4, #0
+ ldrh r4, [r2, #0x14]
+ ldr r0, [r2, r0]
+ lsl r4, r4, #1
+ add r2, r2, r4
+ add r2, #0xd8
+ ldrh r2, [r2]
+ bl FUN_02069FB0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221530C
+MOD08_0221530C: ; 0x0221530C
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02005670
+ cmp r0, #0
+ bne _02215330
+ ldr r0, [r4, #0x18]
+ add r1, r0, #4
+ str r1, [r4, #0x18]
+ ldr r0, [r1]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ mov r1, #0
+ add r4, #0x8d
+ strb r1, [r4]
+ bl FUN_02005614
+ pop {r4, pc}
+_02215330:
+ mov r0, #1
+ add r4, #0x8d
+ strb r0, [r4]
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02215338
+MOD08_02215338: ; 0x02215338
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_0221533C
+MOD08_0221533C: ; 0x0221533C
+ cmp r0, #0x55
+ bls _02215344
+ mov r0, #0
+ bx lr
+_02215344:
+ lsl r1, r0, #2
+ ldr r0, _0221534C ; =0x0222AC6C
+ ldr r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_0221534C: .word 0x0222AC6C
+
+ thumb_func_start MOD08_02215350
+MOD08_02215350: ; 0x02215350
+ ldrb r0, [r0, #1]
+ bx lr
+
+ thumb_func_start MOD08_02215354
+MOD08_02215354: ; 0x02215354
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_02212458
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_02227470
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227470
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _02215390
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ beq _022153F6
+_02215390:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _022153B0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _022153B0
+ mov r0, #0
+ mvn r0, r0
+ mul r4, r0
+ b _022153F6
+_022153B0:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _022153D4
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _022153D4
+ cmp r4, #0
+ ble _022153F6
+ mov r0, #0
+ mvn r0, r0
+ mul r4, r0
+ b _022153F6
+_022153D4:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _022153F6
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _022153F6
+ cmp r4, #0
+ bge _022153F6
+ mov r0, #0
+ mvn r0, r0
+ mul r4, r0
+_022153F6:
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02215406
+ mov r0, #0
+ mvn r0, r0
+ mul r4, r0
+_02215406:
+ lsl r0, r4, #0x18
+ asr r0, r0, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0221540C
+MOD08_0221540C: ; 0x0221540C
+ push {r3, lr}
+ cmp r0, r1
+ bge _0221541E
+ add r0, r2, #0
+ bl abs
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ pop {r3, pc}
+_0221541E:
+ cmp r0, r1
+ ble _02215430
+ add r0, r2, #0
+ bl abs
+ neg r0, r0
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ pop {r3, pc}
+_02215430:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02215434
+MOD08_02215434: ; 0x02215434
+ push {r3, r4, r5, lr}
+ ldr r4, [r0, #0x18]
+ add r3, r0, #0
+ add r4, r4, #4
+ str r4, [r0, #0x18]
+ ldr r5, [r4]
+ add r4, r4, #4
+ add r3, #0x18
+ str r4, [r0, #0x18]
+ cmp r5, r2
+ beq _02215456
+ cmp r5, r2
+ beq _02215452
+ bl ErrorHandling
+_02215452:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02215456:
+ mov r4, #0
+ cmp r2, #0
+ ble _02215470
+_0221545C:
+ ldr r5, [r0, #0x18]
+ add r4, r4, #1
+ ldr r5, [r5]
+ str r5, [r1]
+ ldr r5, [r3]
+ add r1, r1, #4
+ add r5, r5, #4
+ str r5, [r3]
+ cmp r4, r2
+ blt _0221545C
+_02215470:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02215474
+MOD08_02215474: ; 0x02215474
+ push {r3, r4}
+ add r4, r0, #0
+ mov r0, #0x41
+ lsl r0, r0, #2
+ add r3, r1, r0
+ mov r2, #6
+_02215480:
+ ldmia r3!, {r0, r1}
+ stmia r4!, {r0, r1}
+ sub r2, r2, #1
+ bne _02215480
+ ldr r0, [r3]
+ str r0, [r4]
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD08_02215490
+MOD08_02215490: ; 0x02215490
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r1
+ add r0, #0xc0
+ ldrb r0, [r0]
+ bx lr
+
+ thumb_func_start MOD08_0221549C
+MOD08_0221549C: ; 0x0221549C
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r1
+ add r0, #0xe0
+ ldrb r0, [r0]
+ bx lr
+
+ thumb_func_start MOD08_022154A8
+MOD08_022154A8: ; 0x022154A8
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #1
+ add r0, r2, r0
+ add r0, #0xd8
+ ldrh r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022154B8
+MOD08_022154B8: ; 0x022154B8
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r1
+ add r0, #0xe8
+ ldrb r0, [r0]
+ bx lr
+
+ thumb_func_start MOD08_022154C4
+MOD08_022154C4: ; 0x022154C4
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ add r0, #0xec
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022154D4
+MOD08_022154D4: ; 0x022154D4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r4, r1, #2
+ add r0, r0, r4
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _022154EC
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_022154EC:
+ bl FUN_02008268
+ cmp r0, #0
+ beq _02215500
+ add r5, #0xc0
+ ldr r0, [r5]
+ add r0, r0, r4
+ add r0, #0xc4
+ ldr r0, [r0]
+ pop {r3, r4, r5, pc}
+_02215500:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02215504
+MOD08_02215504: ; 0x02215504
+ add r0, #0xc8
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_0221550C
+MOD08_0221550C: ; 0x0221550C
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ bx lr
+
+ thumb_func_start MOD08_0221551C
+MOD08_0221551C: ; 0x0221551C
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ bx lr
+
+ thumb_func_start MOD08_0221552C
+MOD08_0221552C: ; 0x0221552C
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start MOD08_0221553C
+MOD08_0221553C: ; 0x0221553C
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xd4
+ ldr r1, [r0]
+ mov r0, #2
+ tst r0, r1
+ beq _0221554E
+ mov r0, #1
+ bx lr
+_0221554E:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02215554
+MOD08_02215554: ; 0x02215554
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ add r0, #0xfc
+ ldr r1, [r0]
+ ldr r0, _02215570 ; =0x200400C0
+ tst r0, r1
+ beq _0221556A
+ mov r0, #1
+ bx lr
+_0221556A:
+ mov r0, #0
+ bx lr
+ nop
+_02215570: .word 0x200400C0
+
+ thumb_func_start MOD08_02215574
+MOD08_02215574: ; 0x02215574
+ push {r3, lr}
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02215582
+ mov r0, #2
+ pop {r3, pc}
+_02215582:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215588
+MOD08_02215588: ; 0x02215588
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _022155C0 ; =0x0222AAAC
+ add r2, sp, #0
+ add r5, r0, #0
+ add r4, r1, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022155B4
+ add r0, sp, #0xc
+ lsl r1, r4, #2
+ add sp, #0x18
+ ldr r0, [r0, r1]
+ pop {r3, r4, r5, pc}
+_022155B4:
+ lsl r1, r4, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_022155C0: .word 0x0222AAAC
+
+ thumb_func_start MOD08_022155C4
+MOD08_022155C4: ; 0x022155C4
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _022155FC ; =0x0222AA94
+ add r2, sp, #0
+ add r5, r0, #0
+ add r4, r1, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022155F0
+ add r0, sp, #0xc
+ lsl r1, r4, #2
+ add sp, #0x18
+ ldr r0, [r0, r1]
+ pop {r3, r4, r5, pc}
+_022155F0:
+ lsl r1, r4, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_022155FC: .word 0x0222AA94
+
+ thumb_func_start MOD08_02215600
+MOD08_02215600: ; 0x02215600
+ push {r3, lr}
+ cmp r1, #3
+ bhi _02215636
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02215612: ; jump table
+ .short _0221561A - _02215612 - 2 ; case 0
+ .short _02215622 - _02215612 - 2 ; case 1
+ .short _0221562A - _02215612 - 2 ; case 2
+ .short _02215632 - _02215612 - 2 ; case 3
+_0221561A:
+ bl MOD08_02212004
+ mov r0, #0
+ pop {r3, pc}
+_02215622:
+ bl MOD08_02212004
+ mov r0, #1
+ pop {r3, pc}
+_0221562A:
+ bl MOD08_02212004
+ mov r0, #3
+ pop {r3, pc}
+_02215632:
+ bl MOD08_02215574
+_02215636:
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02215638
+MOD08_02215638: ; 0x02215638
+ push {r3, lr}
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ add r0, r2, #0
+ add r2, #0xc0
+ ldr r3, [r2]
+ mov r2, #0x11
+ add r0, #0xc4
+ lsl r2, r2, #4
+ lsl r1, r1, #0x18
+ ldr r2, [r3, r2]
+ mov r3, #1
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ lsl r3, r3, #0x10
+ bl FUN_02017E14
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215660
+MOD08_02215660: ; 0x02215660
+ push {r3, lr}
+ mov r2, #2
+ add r1, r0, #0
+ lsl r2, r2, #8
+ str r2, [sp]
+ add r1, #0xc0
+ add r0, #0xc8
+ ldr r1, [r1]
+ sub r2, #0xec
+ ldr r1, [r1, r2]
+ mov r2, #0
+ ldr r0, [r0]
+ add r3, r2, #0
+ bl FUN_02003054
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02215680
+MOD08_02215680: ; 0x02215680
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_022132C4
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022156A8
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_022154A8
+ bl MOD08_0222A6C8
+ cmp r0, #1
+ bne _022156A8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022156A8:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022156AC
+MOD08_022156AC: ; 0x022156AC
+ mov r2, #0x14
+ mul r2, r0
+ ldr r0, _022156BC ; =0x0222ADC0
+ lsl r1, r1, #2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ bx lr
+ nop
+_022156BC: .word 0x0222ADC0
+
+ thumb_func_start MOD08_022156C0
+MOD08_022156C0: ; 0x022156C0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x90
+ ldr r3, _02215900 ; =0x0222AA4C
+ add r6, r2, #0
+ add r2, sp, #0x78
+ add r7, r0, #0
+ add r5, r1, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r5, #0
+ mov r1, #0x58
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ str r6, [r4, #4]
+ add r0, r7, #0
+ bl MOD11_02230078
+ str r0, [r4, #8]
+ add r0, r7, #0
+ bl MOD11_02230080
+ str r0, [r4, #0xc]
+ add r0, r7, #0
+ bl MOD11_022300CC
+ str r0, [r4, #0x10]
+ mov r6, #0
+ add r5, r4, #0
+_02215704:
+ mov r0, #0
+ str r0, [r5, #0x24]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_022312D0
+ str r0, [r5, #0x34]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _02215704
+ add r1, r4, #0
+ add r0, r7, #0
+ add r1, #0x44
+ bl MOD11_02231504
+ add r1, r4, #0
+ add r0, r7, #0
+ add r1, #0x48
+ bl MOD11_02231534
+ mov r6, #0
+ add r7, r6, #0
+_02215732:
+ ldr r0, [r4, #4]
+ cmp r6, r0
+ beq _0221573C
+ cmp r0, #0xff
+ bne _0221579E
+_0221573C:
+ ldr r1, _02215904 ; =0x0000D903
+ str r7, [sp]
+ add r2, r6, r1
+ ldr r1, _02215908 ; =0x00001388
+ mov r3, #0x28
+ mul r1, r0
+ mov r0, #1
+ add r5, r2, r1
+ str r0, [sp, #4]
+ str r5, [sp, #8]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ mov r2, #0x1b
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x27
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r5, [sp, #0x14]
+ ldr r0, [r4, #0x10]
+ ldr r2, [r4, #8]
+ ldr r3, [r4, #0xc]
+ mov r1, #2
+ bl FUN_0200C0DC
+ mov r0, #0
+ str r0, [sp]
+ str r5, [sp, #4]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ mov r2, #0x1b
+ mov r3, #0x29
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ str r5, [sp, #4]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ mov r2, #0x1b
+ mov r3, #0x2a
+ bl FUN_0200C13C
+_0221579E:
+ add r6, r6, #1
+ cmp r6, #4
+ blt _02215732
+ mov r0, #0
+ str r0, [sp, #0x24]
+ add r7, r4, #0
+_022157AA:
+ ldr r1, [r4, #4]
+ ldr r0, [sp, #0x24]
+ cmp r0, r1
+ beq _022157B8
+ cmp r1, #0xff
+ beq _022157B8
+ b _022158EC
+_022157B8:
+ ldr r2, _02215904 ; =0x0000D903
+ ldr r0, [sp, #0x24]
+ add r3, r1, #0
+ add r0, r0, r2
+ ldr r2, _02215908 ; =0x00001388
+ mul r3, r2
+ add r1, r0, r3
+ str r1, [r7, #0x14]
+ ldr r1, [r4, #4]
+ add r3, r1, #0
+ mul r3, r2
+ add r1, r0, r3
+ str r1, [sp, #0x60]
+ ldr r1, [r4, #4]
+ add r3, r1, #0
+ mul r3, r2
+ add r1, r0, r3
+ str r1, [sp, #0x64]
+ ldr r1, [r4, #4]
+ add r3, r1, #0
+ mul r3, r2
+ add r1, r0, r3
+ str r1, [sp, #0x68]
+ ldr r1, [r4, #4]
+ mul r2, r1
+ mov r1, #0
+ add r0, r0, r2
+ str r0, [sp, #0x6c]
+ str r1, [sp, #0x70]
+ str r1, [sp, #0x74]
+ ldr r2, [r7, #0x34]
+ ldr r5, [r7, #0x48]
+ ldr r0, [r2, #4]
+ cmp r5, #0
+ str r0, [sp, #0x20]
+ ldr r0, [r2, #8]
+ str r0, [sp, #0x1c]
+ ldr r0, [r2]
+ str r0, [sp, #0x18]
+ beq _022158EC
+ add r0, r5, #0
+ bl FUN_0200782C
+ str r0, [sp, #0x28]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ add r0, r5, #0
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r2, r6, r0
+ ldr r0, [sp, #0x28]
+ add r1, sp, #0x2c
+ strh r0, [r1]
+ strh r2, [r1, #2]
+ mov r0, #0
+ strh r0, [r1, #4]
+ strh r0, [r1, #6]
+ ldr r1, [sp, #0x24]
+ add r3, sp, #0x2c
+ add r1, r4, r1
+ add r1, #0x44
+ ldrb r1, [r1]
+ lsl r2, r1, #2
+ add r1, sp, #0x78
+ ldr r1, [r1, r2]
+ str r0, [sp, #0x38]
+ str r1, [sp, #0x34]
+ mov r1, #1
+ str r1, [sp, #0x3c]
+ str r1, [sp, #0x58]
+ str r0, [sp, #0x5c]
+ add r2, sp, #0x60
+_02215852:
+ ldr r1, [r2]
+ add r0, r0, #1
+ str r1, [r3, #0x14]
+ add r2, r2, #4
+ add r3, r3, #4
+ cmp r0, #6
+ blt _02215852
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ add r2, sp, #0x2c
+ bl FUN_0200C154
+ add r6, r0, #0
+ bl FUN_0200C5A8
+ str r6, [r7, #0x24]
+ cmp r5, #0
+ bne _02215880
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_0200C644
+ b _022158A8
+_02215880:
+ add r0, r5, #0
+ bl FUN_02008268
+ cmp r0, #0
+ bne _02215894
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_0200C644
+ b _022158A8
+_02215894:
+ add r0, r5, #0
+ mov r1, #6
+ bl FUN_0200782C
+ cmp r0, #1
+ bne _022158A8
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_0200C644
+_022158A8:
+ cmp r5, #0
+ beq _022158C2
+ ldr r0, [r6]
+ bl FUN_02020350
+ add r1, r0, #0
+ mov r3, #0x32
+ ldr r1, [r1, #4]
+ ldr r2, [sp, #0x18]
+ mov r0, #0x13
+ lsl r3, r3, #6
+ bl FUN_0201C2C8
+_022158C2:
+ cmp r5, #0
+ beq _022158EC
+ ldr r0, [r6]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ mov r1, #2
+ str r1, [sp]
+ mov r1, #0x20
+ lsl r0, r0, #0x14
+ str r1, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #0x20]
+ ldr r2, [sp, #0x1c]
+ ldr r3, [r4]
+ bl FUN_020030E8
+_022158EC:
+ ldr r0, [sp, #0x24]
+ add r7, r7, #4
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #4
+ bge _022158FA
+ b _022157AA
+_022158FA:
+ add r0, r4, #0
+ add sp, #0x90
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02215900: .word 0x0222AA4C
+_02215904: .word 0x0000D903
+_02215908: .word 0x00001388
+
+ thumb_func_start MOD08_0221590C
+MOD08_0221590C: ; 0x0221590C
+ ldr r3, _02215914 ; =MOD08_022156C0
+ mov r2, #0xff
+ bx r3
+ nop
+_02215914: .word MOD08_022156C0
+
+ thumb_func_start MOD08_02215918
+MOD08_02215918: ; 0x02215918
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r6, #0
+ add r4, r5, #0
+_02215920:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ beq _0221593C
+ ldr r0, [r5, #0xc]
+ ldr r1, [r4, #0x14]
+ bl FUN_0200C358
+ ldr r0, [r5, #0xc]
+ ldr r1, [r4, #0x14]
+ bl FUN_0200C368
+ ldr r0, [r4, #0x24]
+ bl FUN_0200C3DC
+_0221593C:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _02215920
+ add r0, r5, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0221594C
+MOD08_0221594C: ; 0x0221594C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r4, #0
+ add r5, r6, #0
+_02215956:
+ cmp r4, r7
+ bne _02215976
+ ldr r0, [r5, #0x24]
+ cmp r0, #0
+ beq _02215976
+ ldr r0, [r6, #0xc]
+ ldr r1, [r5, #0x14]
+ bl FUN_0200C358
+ ldr r0, [r6, #0xc]
+ ldr r1, [r5, #0x14]
+ bl FUN_0200C368
+ ldr r0, [r5, #0x24]
+ bl FUN_0200C3DC
+_02215976:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _02215956
+ add r0, r6, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215988
+MOD08_02215988: ; 0x02215988
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02215992
+ bl ErrorHandling
+_02215992:
+ ldr r0, [r4, #4]
+ add r0, r4, r0
+ add r0, #0x44
+ ldrb r0, [r0]
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0221599C
+MOD08_0221599C: ; 0x0221599C
+ push {r4, lr}
+ sub sp, #8
+ mov r1, #0x12
+ lsl r1, r1, #0xa
+ add r4, r0, #0
+ bl AllocFromHeap
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r3, #0x12
+ ldr r0, _022159DC ; =MOD08_02215A68
+ ldr r1, _022159E0 ; =MOD08_02215A84
+ lsl r3, r3, #0xa
+ str r4, [sp, #4]
+ bl FUN_02012CDC
+ add r4, r0, #0
+ bl FUN_0201343C
+ add r2, r0, #0
+ beq _022159D4
+ mov r0, #1
+ mov r1, #0xe1
+ lsl r0, r0, #0xc
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+_022159D4:
+ add r0, r4, #0
+ add sp, #8
+ pop {r4, pc}
+ nop
+_022159DC: .word MOD08_02215A68
+_022159E0: .word MOD08_02215A84
+
+ thumb_func_start MOD08_022159E4
+MOD08_022159E4: ; 0x022159E4
+ push {r4, lr}
+ sub sp, #8
+ mov r1, #0x42
+ lsl r1, r1, #8
+ add r4, r0, #0
+ bl AllocFromHeap
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r3, #0x42
+ ldr r0, _02215A24 ; =MOD08_02215A68
+ ldr r1, _02215A28 ; =MOD08_02215A84
+ lsl r3, r3, #8
+ str r4, [sp, #4]
+ bl FUN_02012CDC
+ add r4, r0, #0
+ bl FUN_0201343C
+ add r2, r0, #0
+ beq _02215A1C
+ mov r0, #1
+ mov r1, #0xe1
+ lsl r0, r0, #0xc
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+_02215A1C:
+ add r0, r4, #0
+ add sp, #8
+ pop {r4, pc}
+ nop
+_02215A24: .word MOD08_02215A68
+_02215A28: .word MOD08_02215A84
+
+ thumb_func_start MOD08_02215A2C
+MOD08_02215A2C: ; 0x02215A2C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_020133E8
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_02012DE4
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02215A44
+MOD08_02215A44: ; 0x02215A44
+ push {r3, lr}
+ bl FUN_020222AC
+ bl FUN_02013348
+ cmp r0, #0
+ beq _02215A66
+ bl FUN_02013364
+ cmp r0, #0
+ ble _02215A62
+ bl FUN_020222AC
+ bl FUN_020B02C8
+_02215A62:
+ bl FUN_02013388
+_02215A66:
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02215A68
+MOD08_02215A68: ; 0x02215A68
+ push {r4, lr}
+ ldr r3, _02215A80 ; =0x021064B8
+ mov r2, #0
+ ldr r3, [r3]
+ blx r3
+ add r4, r0, #0
+ bl FUN_0201327C
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0xd
+ pop {r4, pc}
+ nop
+_02215A80: .word 0x021064B8
+
+ thumb_func_start MOD08_02215A84
+MOD08_02215A84: ; 0x02215A84
+ push {r4, lr}
+ ldr r3, _02215A9C ; =0x021064C0
+ mov r2, #0
+ ldr r3, [r3]
+ blx r3
+ add r4, r0, #0
+ bl FUN_020132BC
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0xd
+ pop {r4, pc}
+ nop
+_02215A9C: .word 0x021064C0
+
+ thumb_func_start MOD08_02215AA0
+MOD08_02215AA0: ; 0x02215AA0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02215AA4
+MOD08_02215AA4: ; 0x02215AA4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD08_0221599C
+ add r4, r0, #0
+ mov r0, #0x1d
+ add r1, r6, #0
+ add r2, r5, #0
+ bl FUN_0201318C
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #0xa
+ add r3, r7, #0
+ bl FUN_02013194
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02215ACC
+MOD08_02215ACC: ; 0x02215ACC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ str r3, [sp]
+ bl MOD08_0221599C
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl FUN_0201318C
+ add r1, r0, #0
+ ldr r3, [sp]
+ add r0, r4, #0
+ mov r2, #0xa
+ bl FUN_02013194
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215AF8
+MOD08_02215AF8: ; 0x02215AF8
+ ldr r3, _02215AFC ; =NARC_AllocAndReadWholeMember
+ bx r3
+ .align 2, 0
+_02215AFC: .word NARC_AllocAndReadWholeMember
+
+ thumb_func_start MOD08_02215B00
+MOD08_02215B00: ; 0x02215B00
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r7, r2, #0
+ add r0, r5, #0
+ str r3, [sp]
+ bl MOD08_022159E4
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl MOD08_02215AF8
+ add r1, r0, #0
+ ldr r3, [sp]
+ add r0, r4, #0
+ mov r2, #0xa
+ bl FUN_02013194
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02215B2C
+MOD08_02215B2C: ; 0x02215B2C
+ push {r4, lr}
+ lsl r4, r2, #2
+ ldr r2, _02215B3C ; =0x0222B248
+ ldr r2, [r2, r4]
+ bl FUN_020133AC
+ pop {r4, pc}
+ nop
+_02215B3C: .word 0x0222B248
+
+ thumb_func_start MOD08_02215B40
+MOD08_02215B40: ; 0x02215B40
+ ldr r3, _02215B44 ; =MOD08_02215A2C
+ bx r3
+ .align 2, 0
+_02215B44: .word MOD08_02215A2C
+
+ thumb_func_start MOD08_02215B48
+MOD08_02215B48: ; 0x02215B48
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r2, #0
+ mov r4, #1
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_02227468
+ cmp r5, #5
+ bhi _02215B84
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02215B6E: ; jump table
+ .short _02215B84 - _02215B6E - 2 ; case 0
+ .short _02215B7A - _02215B6E - 2 ; case 1
+ .short _02215B84 - _02215B6E - 2 ; case 2
+ .short _02215B7E - _02215B6E - 2 ; case 3
+ .short _02215B84 - _02215B6E - 2 ; case 4
+ .short _02215B82 - _02215B6E - 2 ; case 5
+_02215B7A:
+ sub r4, r4, #2
+ b _02215B84
+_02215B7E:
+ sub r4, r4, #2
+ b _02215B84
+_02215B82:
+ sub r4, r4, #2
+_02215B84:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02215B88
+MOD08_02215B88: ; 0x02215B88
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02215B8C
+MOD08_02215B8C: ; 0x02215B8C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r4, r0, #0
+ bl MOD08_02212458
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r0, r4, #0
+ bl MOD08_02212468
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _02215BC2
+ add r0, r4, #0
+ mov r1, #1
+ add r2, sp, #0x28
+ bl MOD08_0222771C
+ b _02215BFA
+_02215BC2:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD08_02227468
+ str r0, [sp]
+ bl MOD08_02227524
+ str r0, [sp, #4]
+ add r0, r6, #0
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, sp, #0x28
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+ ldr r0, [sp]
+ add r1, sp, #0x1c
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+_02215BFA:
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0x28]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0x2c]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0x30]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ mov r0, #1
+ add r1, sp, #0x10
+ bl MOD08_02227974
+ add r0, r6, #0
+ bl FUN_0201343C
+ add r4, r0, #0
+ add r0, sp, #8
+ add r1, r4, #0
+ bl FUN_0201F014
+ add r0, sp, #8
+ add r1, r4, #0
+ bl FUN_0201EF90
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215C44
+MOD08_02215C44: ; 0x02215C44
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r4, r0, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212468
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #0
+ add r2, sp, #0xc
+ bl MOD08_0222771C
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0xc]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0x10]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0x14]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ add r0, r6, #0
+ add r1, sp, #0
+ bl MOD08_02227974
+ add r0, r7, #0
+ add r1, sp, #0
+ bl FUN_020133FC
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02215CA0
+MOD08_02215CA0: ; 0x02215CA0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl FUN_0201341C
+ add r5, r0, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, sp, #0
+ bl MOD08_0222771C
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r4, #0x30]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215CE4
+MOD08_02215CE4: ; 0x02215CE4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl FUN_0201341C
+ add r5, r0, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, sp, #0
+ bl MOD08_0222771C
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r4, #0x30]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215D28
+MOD08_02215D28: ; 0x02215D28
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r4, r0, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, sp, #0
+ bl MOD08_0222771C
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215D74
+MOD08_02215D74: ; 0x02215D74
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r6, r0, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ beq _02215DA0
+ mov r4, #1
+ b _02215DA2
+_02215DA0:
+ mov r4, #0
+_02215DA2:
+ add r0, r6, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r4, #0
+ add r1, sp, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02215DDC
+MOD08_02215DDC: ; 0x02215DDC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r6, r0, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ beq _02215E08
+ mov r4, #1
+ b _02215E0A
+_02215E08:
+ mov r4, #0
+_02215E0A:
+ add r0, r6, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r4, #0
+ add r1, sp, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02215E44
+MOD08_02215E44: ; 0x02215E44
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x9c
+ add r5, r0, #0
+ add r1, sp, #0
+ mov r0, #0
+ strh r0, [r1]
+ strh r0, [r1, #2]
+ strh r0, [r1, #4]
+ strh r0, [r1, #6]
+ strh r0, [r1, #8]
+ strh r0, [r1, #0xa]
+ ldr r3, _02215EE4 ; =0x0222B2A4
+ add r2, sp, #0x54
+ mov r1, #0x24
+_02215E60:
+ ldrh r0, [r3]
+ add r3, r3, #2
+ strh r0, [r2]
+ add r2, r2, #2
+ sub r1, r1, #1
+ bne _02215E60
+ ldr r3, _02215EE8 ; =0x0222B2EC
+ add r2, sp, #0xc
+ mov r1, #0x24
+_02215E72:
+ ldrh r0, [r3]
+ add r3, r3, #2
+ strh r0, [r2]
+ add r2, r2, #2
+ sub r1, r1, #1
+ bne _02215E72
+ bl FUN_0201341C
+ add r4, r0, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD08_02227468
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD08_02227468
+ lsl r2, r0, #1
+ mov r0, #0xc
+ add r1, r6, #0
+ mul r1, r0
+ add r0, sp, #0x54
+ add r0, r0, r1
+ ldrsh r4, [r2, r0]
+ mov r3, #0xac
+ add r0, r4, #0
+ ldr r4, [r5, #0x20]
+ mul r0, r3
+ ldr r4, [r4]
+ ldr r4, [r4, #4]
+ add r0, r0, r4
+ str r0, [r5, #0x28]
+ add r0, sp, #0xc
+ add r0, r0, r1
+ ldrsh r0, [r2, r0]
+ add r1, r0, #0
+ ldr r0, [r5, #0x20]
+ mul r1, r3
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ str r0, [r5, #0x30]
+ add sp, #0x9c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02215EE4: .word 0x0222B2A4
+_02215EE8: .word 0x0222B2EC
+
+ thumb_func_start MOD08_02215EEC
+MOD08_02215EEC: ; 0x02215EEC
+ push {r3, r4}
+ add r3, r2, #0
+ add r3, #8
+ cmp r0, #7
+ bhi _02215F7C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02215F02: ; jump table
+ .short _02215F7C - _02215F02 - 2 ; case 0
+ .short _02215F12 - _02215F02 - 2 ; case 1
+ .short _02215F1C - _02215F02 - 2 ; case 2
+ .short _02215F26 - _02215F02 - 2 ; case 3
+ .short _02215F30 - _02215F02 - 2 ; case 4
+ .short _02215F42 - _02215F02 - 2 ; case 5
+ .short _02215F54 - _02215F02 - 2 ; case 6
+ .short _02215F66 - _02215F02 - 2 ; case 7
+_02215F12:
+ ldr r0, [r2]
+ mul r1, r0
+ str r1, [r2]
+ pop {r3, r4}
+ bx lr
+_02215F1C:
+ ldr r0, [r2, #4]
+ mul r1, r0
+ str r1, [r2, #4]
+ pop {r3, r4}
+ bx lr
+_02215F26:
+ ldr r0, [r3]
+ mul r1, r0
+ str r1, [r3]
+ pop {r3, r4}
+ bx lr
+_02215F30:
+ ldr r0, [r2]
+ add r3, r0, #0
+ mul r3, r1
+ str r3, [r2]
+ ldr r0, [r2, #4]
+ mul r1, r0
+ str r1, [r2, #4]
+ pop {r3, r4}
+ bx lr
+_02215F42:
+ ldr r0, [r2]
+ add r4, r0, #0
+ mul r4, r1
+ str r4, [r2]
+ ldr r0, [r3]
+ mul r1, r0
+ str r1, [r3]
+ pop {r3, r4}
+ bx lr
+_02215F54:
+ ldr r0, [r2, #4]
+ add r4, r0, #0
+ mul r4, r1
+ str r4, [r2, #4]
+ ldr r0, [r3]
+ mul r1, r0
+ str r1, [r3]
+ pop {r3, r4}
+ bx lr
+_02215F66:
+ ldr r0, [r2]
+ add r4, r0, #0
+ mul r4, r1
+ str r4, [r2]
+ ldr r0, [r2, #4]
+ add r4, r0, #0
+ mul r4, r1
+ str r4, [r2, #4]
+ ldr r0, [r3]
+ mul r1, r0
+ str r1, [r3]
+_02215F7C:
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD08_02215F80
+MOD08_02215F80: ; 0x02215F80
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r2, #0
+ add r5, r1, #0
+ add r1, r3, #0
+ add r7, sp, #0x10
+ mov r2, #0
+ str r2, [r7]
+ ldr r3, [sp, #0x30]
+ str r2, [r7, #4]
+ ldr r4, [sp, #0x38]
+ str r2, [r7, #8]
+ cmp r3, #5
+ bhi _0221602A
+ add r3, r3, r3
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_02215FA8: ; jump table
+ .short _0221602A - _02215FA8 - 2 ; case 0
+ .short _02215FB4 - _02215FA8 - 2 ; case 1
+ .short _02215FDA - _02215FA8 - 2 ; case 2
+ .short _02215FEE - _02215FA8 - 2 ; case 3
+ .short _02215FF6 - _02215FA8 - 2 ; case 4
+ .short _02216000 - _02215FA8 - 2 ; case 5
+_02215FB4:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl FUN_02013628
+ add r1, sp, #0x20
+ mov r0, #0x14
+ ldrsb r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [sp, #0x14]
+ str r2, [sp, #0x10]
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [sp, #0x18]
+ str r2, [sp, #0x14]
+ mul r0, r1
+ str r0, [sp, #0x18]
+ b _0221602A
+_02215FDA:
+ str r2, [sp, #0x10]
+ add r1, sp, #0x20
+ mov r0, #0x14
+ ldrsb r1, [r1, r0]
+ mov r0, #0x32
+ lsl r0, r0, #6
+ mul r0, r1
+ str r0, [sp, #0x14]
+ str r2, [sp, #0x18]
+ b _0221602A
+_02215FEE:
+ add r2, r7, #0
+ bl MOD08_0222771C
+ b _0221602A
+_02215FF6:
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD08_0222771C
+ b _0221602A
+_02216000:
+ add r1, sp, #0
+ str r2, [r1]
+ str r2, [r1, #4]
+ str r2, [r1, #8]
+ str r2, [r1, #0xc]
+ mov r2, #4
+ bl MOD08_02215434
+ ldr r0, [sp]
+ add r2, sp, #0x20
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #4]
+ mov r1, #0x14
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #8]
+ str r0, [sp, #0x18]
+ ldrsb r1, [r2, r1]
+ ldr r0, [sp, #0xc]
+ add r2, r7, #0
+ bl MOD08_02215EEC
+_0221602A:
+ ldr r1, [sp, #0x10]
+ ldr r0, [r4]
+ sub r0, r1, r0
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ ldr r0, [r4, #4]
+ sub r0, r1, r0
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ ldr r0, [r4, #8]
+ sub r0, r1, r0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, sp, #0x10
+ bl FUN_02013610
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02216050
+MOD08_02216050: ; 0x02216050
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r2, #0
+ add r5, r1, #0
+ add r1, r3, #0
+ add r7, sp, #0x10
+ mov r2, #0
+ str r2, [r7]
+ ldr r3, [sp, #0x30]
+ str r2, [r7, #4]
+ ldr r4, [sp, #0x38]
+ str r2, [r7, #8]
+ cmp r3, #5
+ bhi _022160FA
+ add r3, r3, r3
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_02216078: ; jump table
+ .short _022160FA - _02216078 - 2 ; case 0
+ .short _02216084 - _02216078 - 2 ; case 1
+ .short _022160AA - _02216078 - 2 ; case 2
+ .short _022160BE - _02216078 - 2 ; case 3
+ .short _022160C6 - _02216078 - 2 ; case 4
+ .short _022160D0 - _02216078 - 2 ; case 5
+_02216084:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl FUN_02013548
+ add r1, sp, #0x20
+ mov r0, #0x14
+ ldrsb r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [sp, #0x14]
+ str r2, [sp, #0x10]
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [sp, #0x18]
+ str r2, [sp, #0x14]
+ mul r0, r1
+ str r0, [sp, #0x18]
+ b _022160FA
+_022160AA:
+ str r2, [sp, #0x10]
+ add r1, sp, #0x20
+ mov r0, #0x14
+ ldrsb r1, [r1, r0]
+ mov r0, #0x32
+ lsl r0, r0, #6
+ mul r0, r1
+ str r0, [sp, #0x14]
+ str r2, [sp, #0x18]
+ b _022160FA
+_022160BE:
+ add r2, r7, #0
+ bl MOD08_0222771C
+ b _022160FA
+_022160C6:
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD08_0222771C
+ b _022160FA
+_022160D0:
+ add r1, sp, #0
+ str r2, [r1]
+ str r2, [r1, #4]
+ str r2, [r1, #8]
+ str r2, [r1, #0xc]
+ mov r2, #4
+ bl MOD08_02215434
+ ldr r0, [sp]
+ add r2, sp, #0x20
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #4]
+ mov r1, #0x14
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #8]
+ str r0, [sp, #0x18]
+ ldrsb r1, [r2, r1]
+ ldr r0, [sp, #0xc]
+ add r2, r7, #0
+ bl MOD08_02215EEC
+_022160FA:
+ ldr r1, [sp, #0x10]
+ ldr r0, [r4]
+ sub r0, r1, r0
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ ldr r0, [r4, #4]
+ sub r0, r1, r0
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ ldr r0, [r4, #8]
+ sub r0, r1, r0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, sp, #0x10
+ bl FUN_02013530
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02216120
+MOD08_02216120: ; 0x02216120
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x94
+ add r6, r0, #0
+ add r7, r2, #0
+ add r4, r1, #0
+ str r3, [sp, #0xc]
+ bl MOD08_02212468
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_02227468
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0xc]
+ add r0, r6, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r6, #0
+ add r1, sp, #0x7c
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, sp, #0x70
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, sp, #0x58
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, sp, #0x64
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, sp, #0x40
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, sp, #0x34
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, sp, #0x4c
+ mov r2, #3
+ bl MOD08_02215434
+ ldr r0, [sp, #0x10]
+ cmp r0, #5
+ bhi _022161A8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221619C: ; jump table
+ .short _022161A8 - _0221619C - 2 ; case 0
+ .short _022161B8 - _0221619C - 2 ; case 1
+ .short _022161CE - _0221619C - 2 ; case 2
+ .short _02216202 - _0221619C - 2 ; case 3
+ .short _0221624C - _0221619C - 2 ; case 4
+ .short _02216280 - _0221619C - 2 ; case 5
+_022161A8:
+ ldr r1, [sp, #0x7c]
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x80]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x84]
+ strh r1, [r0, #4]
+ b _022162C8
+_022161B8:
+ ldr r0, [sp, #0x7c]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x80]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x84]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022162C8
+_022161CE:
+ cmp r5, #3
+ add r0, sp, #0x14
+ bne _022161E2
+ ldr r1, [sp, #0x70]
+ strh r1, [r0]
+ ldr r1, [sp, #0x74]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x78]
+ strh r1, [r0, #4]
+ b _022162C8
+_022161E2:
+ cmp r5, #5
+ bne _022161F4
+ ldr r1, [sp, #0x58]
+ strh r1, [r0]
+ ldr r1, [sp, #0x5c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x60]
+ strh r1, [r0, #4]
+ b _022162C8
+_022161F4:
+ ldr r1, [sp, #0x64]
+ strh r1, [r0]
+ ldr r1, [sp, #0x68]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x6c]
+ strh r1, [r0, #4]
+ b _022162C8
+_02216202:
+ cmp r5, #2
+ bne _0221621C
+ ldr r0, [sp, #0x70]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x74]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x78]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022162C8
+_0221621C:
+ cmp r5, #5
+ bne _02216236
+ ldr r0, [sp, #0x64]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x68]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x6c]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022162C8
+_02216236:
+ ldr r0, [sp, #0x40]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x44]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x48]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022162C8
+_0221624C:
+ cmp r5, #3
+ add r0, sp, #0x14
+ bne _02216260
+ ldr r1, [sp, #0x40]
+ strh r1, [r0]
+ ldr r1, [sp, #0x44]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x48]
+ strh r1, [r0, #4]
+ b _022162C8
+_02216260:
+ cmp r5, #5
+ bne _02216272
+ ldr r1, [sp, #0x34]
+ strh r1, [r0]
+ ldr r1, [sp, #0x38]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x3c]
+ strh r1, [r0, #4]
+ b _022162C8
+_02216272:
+ ldr r1, [sp, #0x4c]
+ strh r1, [r0]
+ ldr r1, [sp, #0x50]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x54]
+ strh r1, [r0, #4]
+ b _022162C8
+_02216280:
+ cmp r5, #3
+ bne _0221629A
+ ldr r0, [sp, #0x4c]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x50]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x54]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022162C8
+_0221629A:
+ cmp r5, #2
+ bne _022162B4
+ ldr r0, [sp, #0x58]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x5c]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x60]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022162C8
+_022162B4:
+ ldr r0, [sp, #0x34]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x38]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x3c]
+ neg r1, r1
+ strh r1, [r0, #4]
+_022162C8:
+ ldr r2, [sp, #0xc]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_02215B48
+ add r5, r0, #0
+ add r1, sp, #0x28
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r6, #0
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, sp, #0x1c
+ bl MOD08_0222771C
+ ldr r0, [sp, #0x28]
+ cmp r0, #0
+ bne _02216334
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0
+ bne _02216334
+ ldr r0, [sp, #0x30]
+ cmp r0, #0
+ bne _02216334
+ add r3, sp, #0x1c
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x88
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r1, [r4, #0x20]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [r1]
+ ldr r1, [r1, #4]
+ add r0, r0, r1
+ str r0, [r4, #0x28]
+ ldr r1, [r4, #0x20]
+ ldr r0, [sp, #0x20]
+ ldr r1, [r1]
+ ldr r1, [r1, #8]
+ add r0, r0, r1
+ str r0, [r4, #0x2c]
+ ldr r1, [r4, #0x20]
+ ldr r0, [sp, #0x24]
+ ldr r1, [r1]
+ ldr r1, [r1, #0xc]
+ add r0, r0, r1
+ str r0, [r4, #0x30]
+ b _02216388
+_02216334:
+ ldr r2, [sp, #0x28]
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #0x30]
+ str r2, [sp, #0x88]
+ str r1, [sp, #0x8c]
+ str r0, [sp, #0x90]
+ cmp r2, #0
+ bne _0221634E
+ mov r0, #0x32
+ lsl r0, r0, #6
+ cmp r1, r0
+ bne _0221634E
+ mov r5, #1
+_0221634E:
+ ldr r1, [sp, #0x88]
+ add r0, r1, #0
+ ldr r1, [sp, #0x8c]
+ mul r0, r5
+ add r2, r1, #0
+ mul r2, r5
+ ldr r1, [sp, #0x24]
+ str r2, [sp, #0x8c]
+ add r2, r1, #0
+ mul r2, r5
+ str r0, [sp, #0x88]
+ str r2, [sp, #0x90]
+ ldr r1, [r4, #0x20]
+ ldr r1, [r1]
+ ldr r1, [r1, #4]
+ add r0, r0, r1
+ str r0, [r4, #0x28]
+ ldr r1, [r4, #0x20]
+ ldr r0, [sp, #0x8c]
+ ldr r1, [r1]
+ ldr r1, [r1, #8]
+ add r0, r0, r1
+ str r0, [r4, #0x2c]
+ ldr r1, [r4, #0x20]
+ ldr r0, [sp, #0x90]
+ ldr r1, [r1]
+ ldr r1, [r1, #0xc]
+ add r0, r0, r1
+ str r0, [r4, #0x30]
+_02216388:
+ ldr r0, [sp, #0xa8]
+ cmp r0, #0
+ beq _022163C6
+ cmp r0, #1
+ beq _02216398
+ cmp r0, #2
+ beq _022163B0
+ b _022163C6
+_02216398:
+ ldr r0, [sp, #0xac]
+ ldr r3, [sp, #0xc]
+ str r0, [sp]
+ str r5, [sp, #4]
+ add r0, sp, #0x88
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD08_02215F80
+ b _022163C6
+_022163B0:
+ ldr r0, [sp, #0xac]
+ ldr r3, [sp, #0xc]
+ str r0, [sp]
+ str r5, [sp, #4]
+ add r0, sp, #0x88
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD08_02216050
+_022163C6:
+ add r1, sp, #0x14
+ ldrh r2, [r1]
+ add r0, r4, #0
+ add r0, #0x50
+ strh r2, [r0]
+ add r0, r4, #0
+ ldrh r2, [r1, #2]
+ add r0, #0x52
+ add r4, #0x54
+ strh r2, [r0]
+ ldrh r0, [r1, #4]
+ strh r0, [r4]
+ add sp, #0x94
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022163E4
+MOD08_022163E4: ; 0x022163E4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ bl FUN_0201341C
+ add r6, r0, #0
+ bl MOD08_02212458
+ str r0, [sp, #8]
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r3, r0, #0
+ str r5, [sp]
+ ldr r2, [sp, #8]
+ add r0, r6, #0
+ add r1, r7, #0
+ str r4, [sp, #4]
+ bl MOD08_02216120
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02216414
+MOD08_02216414: ; 0x02216414
+ ldr r3, _0221641C ; =MOD08_022163E4
+ mov r1, #0
+ add r2, r1, #0
+ bx r3
+ .align 2, 0
+_0221641C: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216420
+MOD08_02216420: ; 0x02216420
+ ldr r3, _02216428 ; =MOD08_022163E4
+ mov r1, #1
+ add r2, r1, #0
+ bx r3
+ .align 2, 0
+_02216428: .word MOD08_022163E4
+
+ thumb_func_start MOD08_0221642C
+MOD08_0221642C: ; 0x0221642C
+ ldr r3, _02216434 ; =MOD08_022163E4
+ mov r1, #1
+ mov r2, #2
+ bx r3
+ .align 2, 0
+_02216434: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216438
+MOD08_02216438: ; 0x02216438
+ ldr r3, _02216440 ; =MOD08_022163E4
+ mov r1, #1
+ mov r2, #3
+ bx r3
+ .align 2, 0
+_02216440: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216444
+MOD08_02216444: ; 0x02216444
+ ldr r3, _0221644C ; =MOD08_022163E4
+ mov r1, #1
+ mov r2, #4
+ bx r3
+ .align 2, 0
+_0221644C: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216450
+MOD08_02216450: ; 0x02216450
+ ldr r3, _02216458 ; =MOD08_022163E4
+ mov r1, #1
+ mov r2, #5
+ bx r3
+ .align 2, 0
+_02216458: .word MOD08_022163E4
+
+ thumb_func_start MOD08_0221645C
+MOD08_0221645C: ; 0x0221645C
+ ldr r3, _02216464 ; =MOD08_022163E4
+ mov r1, #2
+ mov r2, #1
+ bx r3
+ .align 2, 0
+_02216464: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216468
+MOD08_02216468: ; 0x02216468
+ ldr r3, _02216470 ; =MOD08_022163E4
+ mov r1, #2
+ add r2, r1, #0
+ bx r3
+ .align 2, 0
+_02216470: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216474
+MOD08_02216474: ; 0x02216474
+ ldr r3, _0221647C ; =MOD08_022163E4
+ mov r1, #2
+ mov r2, #3
+ bx r3
+ .align 2, 0
+_0221647C: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216480
+MOD08_02216480: ; 0x02216480
+ ldr r3, _02216488 ; =MOD08_022163E4
+ mov r1, #2
+ mov r2, #4
+ bx r3
+ .align 2, 0
+_02216488: .word MOD08_022163E4
+
+ thumb_func_start MOD08_0221648C
+MOD08_0221648C: ; 0x0221648C
+ ldr r3, _02216494 ; =MOD08_022163E4
+ mov r1, #2
+ mov r2, #5
+ bx r3
+ .align 2, 0
+_02216494: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216498
+MOD08_02216498: ; 0x02216498
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r4, r0, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, r5, #0
+ add r3, r6, #0
+ bl MOD08_02216120
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022164C8
+MOD08_022164C8: ; 0x022164C8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r2, [r4, #0x14]
+ add r5, r0, #0
+ cmp r2, #0
+ beq _022164D8
+ bl MOD08_0221658C
+_022164D8:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _022164E6
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_022168C0
+_022164E6:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _022164F4
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217124
+_022164F4:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217158
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0221650A
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217168
+_0221650A:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0221650C
+MOD08_0221650C: ; 0x0221650C
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r4, [r1]
+ add r6, r2, #0
+ add r0, r4, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ beq _02216534
+ mov r5, #1
+ b _02216536
+_02216534:
+ mov r5, #0
+_02216536:
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221654C
+MOD08_0221654C: ; 0x0221654C
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r4, [r1]
+ add r6, r2, #0
+ add r0, r4, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ beq _02216574
+ mov r5, #1
+ b _02216576
+_02216574:
+ mov r5, #0
+_02216576:
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221658C
+MOD08_0221658C: ; 0x0221658C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xbc
+ add r4, r1, #0
+ ldr r2, [r4, #0x14]
+ add r5, r0, #0
+ cmp r2, #0x64
+ bgt _022165F4
+ blt _0221659E
+ b _02216768
+_0221659E:
+ cmp r2, #0x22
+ bhi _022165FA
+ add r3, r2, r2
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_022165AE: ; jump table
+ .short _02216872 - _022165AE - 2 ; case 0
+ .short _022165FC - _022165AE - 2 ; case 1
+ .short _02216608 - _022165AE - 2 ; case 2
+ .short _02216704 - _022165AE - 2 ; case 3
+ .short _02216740 - _022165AE - 2 ; case 4
+ .short _02216754 - _022165AE - 2 ; case 5
+ .short _02216614 - _022165AE - 2 ; case 6
+ .short _02216620 - _022165AE - 2 ; case 7
+ .short _022166EC - _022165AE - 2 ; case 8
+ .short _022166F8 - _022165AE - 2 ; case 9
+ .short _0221662C - _022165AE - 2 ; case 10
+ .short _02216638 - _022165AE - 2 ; case 11
+ .short _02216794 - _022165AE - 2 ; case 12
+ .short _022167A4 - _022165AE - 2 ; case 13
+ .short _02216644 - _022165AE - 2 ; case 14
+ .short _02216650 - _022165AE - 2 ; case 15
+ .short _0221665C - _022165AE - 2 ; case 16
+ .short _02216668 - _022165AE - 2 ; case 17
+ .short _02216674 - _022165AE - 2 ; case 18
+ .short _02216680 - _022165AE - 2 ; case 19
+ .short _0221668C - _022165AE - 2 ; case 20
+ .short _02216698 - _022165AE - 2 ; case 21
+ .short _022166A4 - _022165AE - 2 ; case 22
+ .short _022166B0 - _022165AE - 2 ; case 23
+ .short _022166BC - _022165AE - 2 ; case 24
+ .short _022166C8 - _022165AE - 2 ; case 25
+ .short _022166D4 - _022165AE - 2 ; case 26
+ .short _022166E0 - _022165AE - 2 ; case 27
+ .short _022167B4 - _022165AE - 2 ; case 28
+ .short _02216872 - _022165AE - 2 ; case 29
+ .short _02216804 - _022165AE - 2 ; case 30
+ .short _022167DA - _022165AE - 2 ; case 31
+ .short _0221683C - _022165AE - 2 ; case 32
+ .short _022167C0 - _022165AE - 2 ; case 33
+ .short _022167CE - _022165AE - 2 ; case 34
+_022165F4:
+ cmp r2, #0x65
+ bne _022165FA
+ b _0221677E
+_022165FA:
+ b _02216872
+_022165FC:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ b _02216872
+_02216608:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ b _02216872
+_02216614:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222774C
+ b _02216872
+_02216620:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222774C
+ b _02216872
+_0221662C:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222777C
+ b _02216872
+_02216638:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222777C
+ b _02216872
+_02216644:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_022277AC
+ b _02216872
+_02216650:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_022277AC
+ b _02216872
+_0221665C:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_022277DC
+ b _02216872
+_02216668:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_022277DC
+ b _02216872
+_02216674:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222780C
+ b _02216872
+_02216680:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222780C
+ b _02216872
+_0221668C:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222783C
+ b _02216872
+_02216698:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222783C
+ b _02216872
+_022166A4:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222786C
+ b _02216872
+_022166B0:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222786C
+ b _02216872
+_022166BC:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222789C
+ b _02216872
+_022166C8:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222789C
+ b _02216872
+_022166D4:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_022278CC
+ b _02216872
+_022166E0:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_022278CC
+ b _02216872
+_022166EC:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222792C
+ b _02216872
+_022166F8:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222792C
+ b _02216872
+_02216704:
+ ldr r0, [r4]
+ add r1, sp, #0xa0
+ mov r2, #4
+ bl MOD08_02215434
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #0xa4]
+ str r0, [sp, #0xb0]
+ ldr r0, [sp, #0xa8]
+ str r0, [sp, #0xb4]
+ ldr r0, [sp, #0xac]
+ str r0, [sp, #0xb8]
+ ldr r0, [sp, #0xa0]
+ cmp r0, #1
+ bne _0221672C
+ mov r0, #1
+ strb r0, [r4, #8]
+_0221672C:
+ mov r0, #8
+ ldrsb r1, [r4, r0]
+ ldr r2, [sp, #0xb0]
+ mul r1, r2
+ str r1, [sp, #0xb0]
+ ldrsb r0, [r4, r0]
+ ldr r1, [sp, #0xb4]
+ mul r0, r1
+ str r0, [sp, #0xb4]
+ b _02216872
+_02216740:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ add r0, r4, #0
+ add r1, sp, #0xb0
+ bl MOD08_0221734C
+ b _02216872
+_02216754:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ add r0, r4, #0
+ add r1, sp, #0xb0
+ bl MOD08_0221734C
+ b _02216872
+_02216768:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ ldr r1, [r4, #0x24]
+ add r0, r4, #0
+ add r2, sp, #0xb0
+ bl MOD08_022172C0
+ b _02216872
+_0221677E:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ ldr r1, [r4, #0x28]
+ add r0, r4, #0
+ add r2, sp, #0xb0
+ bl MOD08_022172C0
+ b _02216872
+_02216794:
+ add r2, sp, #0xb0
+ bl MOD08_0221654C
+ add r0, r4, #0
+ add r1, sp, #0xb0
+ bl MOD08_0221734C
+ b _02216872
+_022167A4:
+ add r2, sp, #0xb0
+ bl MOD08_0221650C
+ add r0, r4, #0
+ add r1, sp, #0xb0
+ bl MOD08_0221734C
+ b _02216872
+_022167B4:
+ ldr r0, _022168A8 ; =0x00002CE0
+ str r0, [sp, #0xb0]
+ mov r0, #0
+ str r0, [sp, #0xb4]
+ str r0, [sp, #0xb8]
+ b _02216872
+_022167C0:
+ ldr r0, _022168AC ; =0xFFFFEC78
+ str r0, [sp, #0xb0]
+ ldr r0, _022168B0 ; =0xFFFFE890
+ str r0, [sp, #0xb4]
+ mov r0, #0
+ str r0, [sp, #0xb8]
+ b _02216872
+_022167CE:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ b _02216872
+_022167DA:
+ ldr r6, _022168B4 ; =0x0222B344
+ add r3, sp, #0x70
+ mov r2, #6
+_022167E0:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022167E0
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ bl MOD08_02227468
+ lsl r1, r0, #3
+ add r0, sp, #0x70
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xb0]
+ add r0, sp, #0x74
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xb4]
+ mov r0, #0
+ str r0, [sp, #0xb8]
+ b _02216872
+_02216804:
+ ldr r6, _022168B8 ; =0x0222B3DC
+ add r3, sp, #0x38
+ mov r2, #7
+_0221680A:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0221680A
+ ldr r0, [r4]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216820
+ mov r0, #6
+ b _02216828
+_02216820:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ bl MOD08_02227468
+_02216828:
+ lsl r1, r0, #3
+ add r0, sp, #0x38
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xb0]
+ add r0, sp, #0x3c
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xb4]
+ mov r0, #0
+ str r0, [sp, #0xb8]
+ b _02216872
+_0221683C:
+ ldr r6, _022168BC ; =0x0222B3A4
+ add r3, sp, #0
+ mov r2, #7
+_02216842:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02216842
+ ldr r0, [r4]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216858
+ mov r0, #6
+ b _02216860
+_02216858:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ bl MOD08_02227468
+_02216860:
+ lsl r1, r0, #3
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xb0]
+ add r0, sp, #4
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xb4]
+ mov r0, #0
+ str r0, [sp, #0xb8]
+_02216872:
+ add r2, sp, #0xb0
+ ldmia r2!, {r0, r1}
+ add r4, #0x2c
+ stmia r4!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r4]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0xb0]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0xb4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0xb8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ add sp, #0xbc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_022168A8: .word 0x00002CE0
+_022168AC: .word 0xFFFFEC78
+_022168B0: .word 0xFFFFE890
+_022168B4: .word 0x0222B344
+_022168B8: .word 0x0222B3DC
+_022168BC: .word 0x0222B3A4
+
+ thumb_func_start MOD08_022168C0
+MOD08_022168C0: ; 0x022168C0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x148
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r0, [r1]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227468
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x28]
+ bl MOD08_02227468
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x18]
+ cmp r0, #0x1a
+ bls _022168EC
+ bl _022170F2
+_022168EC:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022168F8: ; jump table
+ .short _0221692E - _022168F8 - 2 ; case 0
+ .short _0221693A - _022168F8 - 2 ; case 1
+ .short _0221693A - _022168F8 - 2 ; case 2
+ .short _02217024 - _022168F8 - 2 ; case 3
+ .short _022169A2 - _022168F8 - 2 ; case 4
+ .short _02216A5C - _022168F8 - 2 ; case 5
+ .short _02216D90 - _022168F8 - 2 ; case 6
+ .short _02216D90 - _022168F8 - 2 ; case 7
+ .short _02216B16 - _022168F8 - 2 ; case 8
+ .short _02216B16 - _022168F8 - 2 ; case 9
+ .short _02216B7E - _022168F8 - 2 ; case 10
+ .short _02216B7E - _022168F8 - 2 ; case 11
+ .short _02216BCC - _022168F8 - 2 ; case 12
+ .short _02216BCC - _022168F8 - 2 ; case 13
+ .short _02216C14 - _022168F8 - 2 ; case 14
+ .short _02216C14 - _022168F8 - 2 ; case 15
+ .short _02216C5C - _022168F8 - 2 ; case 16
+ .short _02216C5C - _022168F8 - 2 ; case 17
+ .short _02216D00 - _022168F8 - 2 ; case 18
+ .short _02216D00 - _022168F8 - 2 ; case 19
+ .short _02216D48 - _022168F8 - 2 ; case 20
+ .short _02216D48 - _022168F8 - 2 ; case 21
+ .short _02217038 - _022168F8 - 2 ; case 22
+ .short _022170F2 - _022168F8 - 2 ; case 23
+ .short _022170C4 - _022168F8 - 2 ; case 24
+ .short _02217080 - _022168F8 - 2 ; case 25
+ .short _02217092 - _022168F8 - 2 ; case 26
+_0221692E:
+ mov r1, #0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+ b _022170F2
+_0221693A:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216974
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x10]
+ cmp r0, #2
+ add r0, sp, #0x20
+ bne _02216962
+ ldr r1, _02216CA4 ; =0xFFFFF2F8
+ strh r1, [r0]
+ mov r1, #0x73
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216962:
+ mov r1, #0x92
+ lsl r1, r1, #4
+ strh r1, [r0]
+ ldr r1, _02216CA8 ; =0xFFFFFA60
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216974:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CAC ; =0x0222BB44
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CB0 ; =0x0222BB48
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CB4 ; =0x0222BB4C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_022169A2:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022169DE
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CAC ; =0x0222BB44
+ add r2, r2, r0
+ ldr r2, [r1, r2]
+ neg r3, r2
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CB0 ; =0x0222BB48
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CB4 ; =0x0222BB4C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_022169DE:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227470
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x28]
+ bl MOD08_02227470
+ cmp r4, r0
+ bne _02216A2A
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CAC ; =0x0222BB44
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CB0 ; =0x0222BB48
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CB4 ; =0x0222BB4C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_02216A2A:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227470
+ cmp r0, #3
+ add r0, sp, #0x20
+ bne _02216A4E
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ strh r1, [r0]
+ mov r1, #0x21
+ lsl r1, r1, #6
+ strh r1, [r0, #2]
+ ldr r1, _02216CB8 ; =0x000005FC
+ strh r1, [r0, #4]
+ b _022170F2
+_02216A4E:
+ ldr r1, _02216CBC ; =0xFFFFEF7C
+ strh r1, [r0]
+ ldr r1, _02216CC0 ; =0xFFFFF558
+ strh r1, [r0, #2]
+ ldr r1, _02216CB8 ; =0x000005FC
+ strh r1, [r0, #4]
+ b _022170F2
+_02216A5C:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216A98
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CAC ; =0x0222BB44
+ add r2, r2, r0
+ ldr r2, [r1, r2]
+ neg r3, r2
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CB0 ; =0x0222BB48
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CB4 ; =0x0222BB4C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_02216A98:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227470
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x28]
+ bl MOD08_02227470
+ cmp r4, r0
+ bne _02216AE4
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CAC ; =0x0222BB44
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CB0 ; =0x0222BB48
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CB4 ; =0x0222BB4C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_02216AE4:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227470
+ cmp r0, #3
+ add r0, sp, #0x20
+ bne _02216B08
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ strh r1, [r0]
+ mov r1, #0x21
+ lsl r1, r1, #6
+ strh r1, [r0, #2]
+ ldr r1, _02216CB8 ; =0x000005FC
+ strh r1, [r0, #4]
+ b _022170F2
+_02216B08:
+ ldr r1, _02216CBC ; =0xFFFFEF7C
+ strh r1, [r0]
+ ldr r1, _02216CC0 ; =0xFFFFF558
+ strh r1, [r0, #2]
+ ldr r1, _02216CB8 ; =0x000005FC
+ strh r1, [r0, #4]
+ b _022170F2
+_02216B16:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216B50
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x10]
+ cmp r0, #2
+ add r0, sp, #0x20
+ bne _02216B3E
+ ldr r1, _02216CC4 ; =0xFFFFF6E0
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216B3E:
+ mov r1, #0x92
+ lsl r1, r1, #4
+ strh r1, [r0]
+ ldr r1, _02216CA8 ; =0xFFFFFA60
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216B50:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CC8 ; =0x0222B484
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CCC ; =0x0222B488
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CD0 ; =0x0222B48C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_02216B7E:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216B9E
+ ldr r1, _02216CC4 ; =0xFFFFF6E0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216B9E:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CD4 ; =0x0222B634
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CCC ; =0x0222B488
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CD0 ; =0x0222B48C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_02216BCC:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216BEC
+ ldr r1, _02216CD8 ; =0xFFFFF488
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216BEC:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CDC ; =0x0222B994
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CE0 ; =0x0222B998
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CE4 ; =0x0222B99C
+ add r0, r3, r0
+ ldr r0, [r1, r0]
+ strh r0, [r2, #4]
+ b _022170F2
+_02216C14:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216C34
+ ldr r1, _02216CC4 ; =0xFFFFF6E0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216C34:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CE8 ; =0x0222BCF4
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CEC ; =0x0222BCF8
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CF0 ; =0x0222BCFC
+ add r0, r3, r0
+ ldr r0, [r1, r0]
+ strh r0, [r2, #4]
+ b _022170F2
+_02216C5C:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216C7C
+ ldr r1, _02216CC4 ; =0xFFFFF6E0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216C7C:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CF4 ; =0x0222B7E4
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CF8 ; =0x0222B7E8
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CFC ; =0x0222B7EC
+ add r0, r3, r0
+ ldr r0, [r1, r0]
+ strh r0, [r2, #4]
+ b _022170F2
+ .align 2, 0
+_02216CA4: .word 0xFFFFF2F8
+_02216CA8: .word 0xFFFFFA60
+_02216CAC: .word 0x0222BB44
+_02216CB0: .word 0x0222BB48
+_02216CB4: .word 0x0222BB4C
+_02216CB8: .word 0x000005FC
+_02216CBC: .word 0xFFFFEF7C
+_02216CC0: .word 0xFFFFF558
+_02216CC4: .word 0xFFFFF6E0
+_02216CC8: .word 0x0222B484
+_02216CCC: .word 0x0222B488
+_02216CD0: .word 0x0222B48C
+_02216CD4: .word 0x0222B634
+_02216CD8: .word 0xFFFFF488
+_02216CDC: .word 0x0222B994
+_02216CE0: .word 0x0222B998
+_02216CE4: .word 0x0222B99C
+_02216CE8: .word 0x0222BCF4
+_02216CEC: .word 0x0222BCF8
+_02216CF0: .word 0x0222BCFC
+_02216CF4: .word 0x0222B7E4
+_02216CF8: .word 0x0222B7E8
+_02216CFC: .word 0x0222B7EC
+_02216D00:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216D20
+ ldr r1, _02217044 ; =0xFFFFF6E0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216D20:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02217048 ; =0x0222BEA4
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _0221704C ; =0x0222BEA8
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02217050 ; =0x0222BEAC
+ add r0, r3, r0
+ ldr r0, [r1, r0]
+ strh r0, [r2, #4]
+ b _022170F2
+_02216D48:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216D68
+ ldr r1, _02217054 ; =0xFFFFEF10
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216D68:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02217058 ; =0x0222C054
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _0221705C ; =0x0222C058
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02217060 ; =0x0222C05C
+ add r0, r3, r0
+ ldr r0, [r1, r0]
+ strh r0, [r2, #4]
+ b _022170F2
+_02216D90:
+ ldr r4, _02217064 ; =0x0222B414
+ add r3, sp, #0xd8
+ mov r2, #0xe
+_02216D96:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02216D96
+ ldr r3, _02217068 ; =0x0222B334
+ add r2, sp, #0x58
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r1, sp, #0xc8
+ mov r0, #0
+ str r1, [sp, #0xc]
+ add r1, sp, #0xb8
+ mov ip, r0
+ str r1, [sp, #0x1c]
+ add r0, sp, #0xd8
+ add r7, sp, #0xa8
+ add r6, sp, #0x98
+ add r5, sp, #0x88
+ add r1, sp, #0x78
+ add r2, sp, #0x68
+_02216DC2:
+ ldr r4, [r0]
+ ldr r3, [sp, #0xc]
+ str r4, [r3]
+ ldr r4, [r0, #0x10]
+ ldr r3, [sp, #0x1c]
+ str r4, [r3]
+ ldr r3, [r0, #0x20]
+ stmia r7!, {r3}
+ ldr r3, [r0, #0x30]
+ stmia r6!, {r3}
+ ldr r3, [r0, #0x40]
+ stmia r5!, {r3}
+ ldr r3, [r0, #0x50]
+ stmia r1!, {r3}
+ ldr r3, [r0, #0x60]
+ add r0, r0, #4
+ stmia r2!, {r3}
+ ldr r3, [sp, #0xc]
+ add r3, r3, #4
+ str r3, [sp, #0xc]
+ ldr r3, [sp, #0x1c]
+ add r3, r3, #4
+ str r3, [sp, #0x1c]
+ mov r3, ip
+ add r3, r3, #1
+ mov ip, r3
+ cmp r3, #4
+ blt _02216DC2
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216E3E
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, sp, #0x58
+ str r0, [sp, #0x10]
+ add r7, sp, #0xc8
+ add r6, sp, #0xb8
+ add r0, sp, #0xa8
+ add r1, sp, #0x98
+ add r2, sp, #0x88
+ add r3, sp, #0x78
+ add r4, sp, #0x68
+_02216E1C:
+ ldr r5, [sp, #0x10]
+ ldr r5, [r5]
+ stmia r7!, {r5}
+ stmia r6!, {r5}
+ stmia r0!, {r5}
+ stmia r1!, {r5}
+ stmia r2!, {r5}
+ stmia r3!, {r5}
+ stmia r4!, {r5}
+ ldr r5, [sp, #0x10]
+ add r5, r5, #4
+ str r5, [sp, #0x10]
+ ldr r5, [sp, #8]
+ add r5, r5, #1
+ str r5, [sp, #8]
+ cmp r5, #4
+ blt _02216E1C
+_02216E3E:
+ ldr r0, [sp, #0x18]
+ cmp r0, #5
+ bhi _02216E5C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02216E50: ; jump table
+ .short _02216E5C - _02216E50 - 2 ; case 0
+ .short _02216E6C - _02216E50 - 2 ; case 1
+ .short _02216E98 - _02216E50 - 2 ; case 2
+ .short _02216ED0 - _02216E50 - 2 ; case 3
+ .short _02216F5E - _02216E50 - 2 ; case 4
+ .short _02216F96 - _02216E50 - 2 ; case 5
+_02216E5C:
+ ldr r1, [sp, #0xc8]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0xcc]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xd0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216E6C:
+ ldr r0, [sp, #0xd4]
+ cmp r0, #1
+ bne _02216E82
+ ldr r1, [sp, #0xc8]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0xcc]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xd0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216E82:
+ ldr r0, [sp, #0xc8]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0xcc]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xd0]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02216E98:
+ ldr r0, [sp, #0x14]
+ cmp r0, #3
+ bne _02216EAE
+ ldr r1, [sp, #0xb8]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0xbc]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xc0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216EAE:
+ cmp r0, #5
+ add r0, sp, #0x20
+ bne _02216EC2
+ ldr r1, [sp, #0x98]
+ strh r1, [r0]
+ ldr r1, [sp, #0x9c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xa0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216EC2:
+ ldr r1, [sp, #0xa8]
+ strh r1, [r0]
+ ldr r1, [sp, #0xac]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xb0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216ED0:
+ ldr r0, [sp, #0x14]
+ cmp r0, #2
+ bne _02216F02
+ ldr r0, [sp, #0xc4]
+ cmp r0, #1
+ bne _02216EEC
+ ldr r1, [sp, #0xb8]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0xbc]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xc0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216EEC:
+ ldr r0, [sp, #0xb8]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0xbc]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xc0]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F02:
+ cmp r0, #5
+ bne _02216F32
+ ldr r0, [sp, #0xb4]
+ cmp r0, #1
+ bne _02216F22
+ ldr r0, [sp, #0x88]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x8c]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x90]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F22:
+ ldr r1, [sp, #0x88]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x8c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x90]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F32:
+ ldr r0, [sp, #0x84]
+ cmp r0, #1
+ bne _02216F48
+ ldr r1, [sp, #0x78]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x7c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x80]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F48:
+ ldr r0, [sp, #0x78]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x7c]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x80]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F5E:
+ ldr r0, [sp, #0x14]
+ cmp r0, #3
+ bne _02216F74
+ ldr r1, [sp, #0x78]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x7c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x80]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F74:
+ cmp r0, #5
+ add r0, sp, #0x20
+ bne _02216F88
+ ldr r1, [sp, #0x68]
+ strh r1, [r0]
+ ldr r1, [sp, #0x6c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x70]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F88:
+ ldr r1, [sp, #0x88]
+ strh r1, [r0]
+ ldr r1, [sp, #0x8c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x90]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F96:
+ ldr r0, [sp, #0x14]
+ cmp r0, #3
+ bne _02216FC8
+ ldr r0, [sp, #0xc4]
+ cmp r0, #1
+ bne _02216FB2
+ ldr r1, [sp, #0x88]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x8c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x90]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216FB2:
+ ldr r0, [sp, #0x88]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x8c]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x90]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02216FC8:
+ cmp r0, #2
+ bne _02216FF8
+ ldr r0, [sp, #0xc4]
+ cmp r0, #1
+ bne _02216FE2
+ ldr r1, [sp, #0x98]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x9c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xa0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216FE2:
+ ldr r0, [sp, #0x98]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x9c]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xa0]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02216FF8:
+ ldr r0, [sp, #0xc4]
+ cmp r0, #1
+ bne _0221700E
+ ldr r1, [sp, #0x68]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x6c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x70]
+ strh r1, [r0, #4]
+ b _022170F2
+_0221700E:
+ ldr r0, [sp, #0x68]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x6c]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x70]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02217024:
+ ldr r1, _0221706C ; =0xFFFFFCE0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x4b
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x7d
+ lsl r1, r1, #2
+ strh r1, [r0, #4]
+ b _022170F2
+_02217038:
+ ldr r1, _02217070 ; =0xFFFFF2AE
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, _02217074 ; =0xFFFFF5AC
+ b _02217078
+ nop
+_02217044: .word 0xFFFFF6E0
+_02217048: .word 0x0222BEA4
+_0221704C: .word 0x0222BEA8
+_02217050: .word 0x0222BEAC
+_02217054: .word 0xFFFFEF10
+_02217058: .word 0x0222C054
+_0221705C: .word 0x0222C058
+_02217060: .word 0x0222C05C
+_02217064: .word 0x0222B414
+_02217068: .word 0x0222B334
+_0221706C: .word 0xFFFFFCE0
+_02217070: .word 0xFFFFF2AE
+_02217074: .word 0xFFFFF5AC
+_02217078:
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ b _022170F2
+_02217080:
+ ldr r1, _02217114 ; =0xFFFFF290
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x7a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ b _022170F2
+_02217092:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227470
+ cmp r0, #3
+ add r0, sp, #0x20
+ bne _022170B6
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ strh r1, [r0]
+ mov r1, #0x21
+ lsl r1, r1, #6
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ b _022170F2
+_022170B6:
+ ldr r1, _02217118 ; =0xFFFFE890
+ strh r1, [r0]
+ ldr r1, _0221711C ; =0xFFFFF768
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ b _022170F2
+_022170C4:
+ ldr r4, _02217120 ; =0x0222B374
+ add r3, sp, #0x28
+ mov r2, #6
+_022170CA:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022170CA
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227468
+ lsl r2, r0, #3
+ add r0, sp, #0x28
+ ldr r1, [r0, r2]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ add r1, sp, #0x2c
+ ldr r1, [r1, r2]
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+_022170F2:
+ add r1, sp, #0x20
+ ldr r0, [sp]
+ ldrh r2, [r1]
+ add r0, #0x50
+ strh r2, [r0]
+ ldr r0, [sp]
+ ldrh r2, [r1, #2]
+ add r0, #0x52
+ strh r2, [r0]
+ ldr r0, [sp]
+ ldrh r1, [r1, #4]
+ add r0, #0x54
+ str r0, [sp]
+ strh r1, [r0]
+ add sp, #0x148
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02217114: .word 0xFFFFF290
+_02217118: .word 0xFFFFE890
+_0221711C: .word 0xFFFFF768
+_02217120: .word 0x0222B374
+
+ thumb_func_start MOD08_02217124
+MOD08_02217124: ; 0x02217124
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ bl MOD08_022178CC
+ add r6, r0, #0
+ mov r4, #0
+ cmp r6, #0
+ ble _02217154
+_02217136:
+ add r0, r4, #0
+ bl MOD08_022178A4
+ ldr r1, [r5, #0x1c]
+ and r1, r0
+ cmp r0, r1
+ bne _0221714E
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl MOD08_0221788C
+_0221714E:
+ add r4, r4, #1
+ cmp r4, r6
+ blt _02217136
+_02217154:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217158
+MOD08_02217158: ; 0x02217158
+ add r3, r0, #0
+ add r2, r1, #0
+ add r1, r3, #0
+ ldr r3, _02217164 ; =MOD08_02217B04
+ ldr r0, [r2, #0x20]
+ bx r3
+ .align 2, 0
+_02217164: .word MOD08_02217B04
+
+ thumb_func_start MOD08_02217168
+MOD08_02217168: ; 0x02217168
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ bl MOD08_02227468
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ bl MOD08_02227468
+ ldr r1, [r4, #0xc]
+ cmp r1, #3
+ bhi _022171B0
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02217190: ; jump table
+ .short _022171B0 - _02217190 - 2 ; case 0
+ .short _02217198 - _02217190 - 2 ; case 1
+ .short _022171A6 - _02217190 - 2 ; case 2
+ .short _022171B0 - _02217190 - 2 ; case 3
+_02217198:
+ cmp r0, #0
+ bne _022171A2
+ mov r5, #1
+ lsl r5, r5, #8
+ b _022171B0
+_022171A2:
+ ldr r5, _022171C4 ; =0xFFFFEC00
+ b _022171B0
+_022171A6:
+ cmp r0, #0
+ bne _022171AE
+ mov r5, #0
+ b _022171B0
+_022171AE:
+ ldr r5, _022171C8 ; =0xFFFFEB00
+_022171B0:
+ ldr r0, [r4, #4]
+ bl FUN_02013448
+ ldr r0, [r6, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r5, r0
+ str r0, [r6, #0x30]
+ pop {r4, r5, r6, pc}
+ nop
+_022171C4: .word 0xFFFFEC00
+_022171C8: .word 0xFFFFEB00
+
+ thumb_func_start MOD08_022171CC
+MOD08_022171CC: ; 0x022171CC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl FUN_0201341C
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x38
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212468
+ str r0, [r4, #4]
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0xc
+ mov r2, #6
+ bl MOD08_02215434
+ ldr r0, [r4, #0x10]
+ cmp r0, #4
+ bhi _02217214
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221720A: ; jump table
+ .short _02217214 - _0221720A - 2 ; case 0
+ .short _02217226 - _0221720A - 2 ; case 1
+ .short _02217238 - _0221720A - 2 ; case 2
+ .short _0221724A - _0221720A - 2 ; case 3
+ .short _0221725C - _0221720A - 2 ; case 4
+_02217214:
+ ldr r0, [r4]
+ bl MOD08_02212458
+ str r0, [r4, #0x24]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ str r0, [r4, #0x28]
+ b _0221726C
+_02217226:
+ ldr r0, [r4]
+ bl MOD08_02212460
+ str r0, [r4, #0x24]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ str r0, [r4, #0x28]
+ b _0221726C
+_02217238:
+ ldr r0, [r4]
+ bl MOD08_02212458
+ str r0, [r4, #0x24]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ str r0, [r4, #0x28]
+ b _0221726C
+_0221724A:
+ ldr r0, [r4]
+ bl MOD08_02212460
+ str r0, [r4, #0x24]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ str r0, [r4, #0x28]
+ b _0221726C
+_0221725C:
+ ldr r0, [r4]
+ bl MOD08_02212458
+ str r0, [r4, #0x24]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ str r0, [r4, #0x28]
+_0221726C:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_022164C8
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0221727C
+MOD08_0221727C: ; 0x0221727C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6]
+ ldr r1, [r6, #0x24]
+ mov r4, #1
+ bl MOD08_02227468
+ add r5, r0, #0
+ ldr r0, [r6]
+ ldr r1, [r6, #0x28]
+ bl MOD08_02227468
+ cmp r5, #5
+ bhi _022172BA
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022172A4: ; jump table
+ .short _022172BA - _022172A4 - 2 ; case 0
+ .short _022172B0 - _022172A4 - 2 ; case 1
+ .short _022172BA - _022172A4 - 2 ; case 2
+ .short _022172B4 - _022172A4 - 2 ; case 3
+ .short _022172BA - _022172A4 - 2 ; case 4
+ .short _022172B8 - _022172A4 - 2 ; case 5
+_022172B0:
+ sub r4, r4, #2
+ b _022172BA
+_022172B4:
+ sub r4, r4, #2
+ b _022172BA
+_022172B8:
+ sub r4, r4, #2
+_022172BA:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022172C0
+MOD08_022172C0: ; 0x022172C0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0
+ add r0, sp, #0x20
+ mov r4, #0
+ str r4, [r0]
+ str r4, [r0, #4]
+ add r6, r1, #0
+ add r7, r2, #0
+ str r4, [r0, #8]
+_022172D4:
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl MOD08_02227468
+ cmp r4, r0
+ ldr r0, [r5]
+ bne _022172EC
+ add r1, sp, #0x10
+ mov r2, #4
+ bl MOD08_02215434
+ b _022172F4
+_022172EC:
+ add r1, sp, #0
+ mov r2, #4
+ bl MOD08_02215434
+_022172F4:
+ add r4, r4, #1
+ cmp r4, #6
+ blt _022172D4
+ add r0, r5, #0
+ bl MOD08_0221727C
+ strb r0, [r5, #8]
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x1c]
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x10]
+ cmp r0, #1
+ bne _02217318
+ mov r0, #1
+ strb r0, [r5, #8]
+_02217318:
+ mov r1, #8
+ ldrsb r0, [r5, r1]
+ ldr r2, [sp, #0x20]
+ ldr r3, [sp, #0x24]
+ mul r0, r2
+ str r0, [sp, #0x20]
+ ldrsb r2, [r5, r1]
+ mul r2, r3
+ str r2, [sp, #0x24]
+ ldrsb r1, [r5, r1]
+ ldr r2, [sp, #0x28]
+ mul r1, r2
+ str r1, [sp, #0x28]
+ ldr r1, [r7]
+ add r0, r1, r0
+ str r0, [r7]
+ ldr r1, [r7, #4]
+ ldr r0, [sp, #0x24]
+ add r0, r1, r0
+ str r0, [r7, #4]
+ ldr r1, [r7, #8]
+ ldr r0, [sp, #0x28]
+ add r0, r1, r0
+ str r0, [r7, #8]
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0221734C
+MOD08_0221734C: ; 0x0221734C
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ add r4, r1, #0
+ add r1, sp, #0
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ ldr r0, [r5]
+ add r1, sp, #0xc
+ mov r2, #4
+ bl MOD08_02215434
+ add r0, r5, #0
+ bl MOD08_0221727C
+ strb r0, [r5, #8]
+ ldr r0, [sp, #0x10]
+ str r0, [sp]
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _02217386
+ mov r0, #1
+ strb r0, [r5, #8]
+_02217386:
+ mov r1, #8
+ ldrsb r0, [r5, r1]
+ ldr r2, [sp]
+ ldr r3, [sp, #4]
+ mul r0, r2
+ str r0, [sp]
+ ldrsb r2, [r5, r1]
+ mul r2, r3
+ str r2, [sp, #4]
+ ldrsb r1, [r5, r1]
+ ldr r2, [sp, #8]
+ mul r1, r2
+ str r1, [sp, #8]
+ ldr r1, [r4]
+ add r0, r1, r0
+ str r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r0, [sp, #4]
+ add r0, r1, r0
+ str r0, [r4, #4]
+ ldr r1, [r4, #8]
+ ldr r0, [sp, #8]
+ add r0, r1, r0
+ str r0, [r4, #8]
+ add sp, #0x1c
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022173BC
+MOD08_022173BC: ; 0x022173BC
+ ldr r3, _022173C4 ; =MOD08_02215434
+ ldr r0, [r0]
+ mov r2, #5
+ bx r3
+ .align 2, 0
+_022173C4: .word MOD08_02215434
+
+ thumb_func_start MOD08_022173C8
+MOD08_022173C8: ; 0x022173C8
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022173CC
+MOD08_022173CC: ; 0x022173CC
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ add r4, r1, #0
+ add r1, sp, #0
+ mov r0, #0
+ strh r0, [r1]
+ strh r0, [r1, #2]
+ strh r0, [r1, #4]
+ add r0, r4, #0
+ add r1, sp, #8
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _022173F8
+ mov r0, #1
+ strb r0, [r4, #8]
+_022173F8:
+ ldr r0, [sp, #8]
+ cmp r0, #3
+ bgt _02217416
+ cmp r0, #0
+ blt _02217482
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221740E: ; jump table
+ .short _0221741A - _0221740E - 2 ; case 0
+ .short _02217446 - _0221740E - 2 ; case 1
+ .short _02217482 - _0221740E - 2 ; case 2
+ .short _02217482 - _0221740E - 2 ; case 3
+_02217416:
+ cmp r0, #0xff
+ b _02217482
+_0221741A:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02013514
+ add r2, sp, #0
+ mov r0, #0
+ mov r1, #8
+ ldrsh r3, [r2, r0]
+ ldrsb r0, [r4, r1]
+ mul r0, r3
+ strh r0, [r2]
+ mov r0, #2
+ ldrsh r3, [r2, r0]
+ ldrsb r0, [r4, r1]
+ mul r0, r3
+ strh r0, [r2, #2]
+ mov r0, #4
+ ldrsh r3, [r2, r0]
+ ldrsb r0, [r4, r1]
+ mul r0, r3
+ strh r0, [r2, #4]
+ b _02217482
+_02217446:
+ ldr r0, [sp, #0x10]
+ add r2, sp, #0
+ strh r0, [r2]
+ ldr r0, [sp, #0x14]
+ mov r1, #8
+ strh r0, [r2, #2]
+ ldr r0, [sp, #0x18]
+ strh r0, [r2, #4]
+ mov r0, #0
+ ldrsh r3, [r2, r0]
+ ldrsb r0, [r4, r1]
+ mul r0, r3
+ strh r0, [r2]
+ mov r0, #2
+ ldrsh r3, [r2, r0]
+ ldrsb r0, [r4, r1]
+ mul r0, r3
+ strh r0, [r2, #2]
+ mov r0, #4
+ ldrsh r3, [r2, r0]
+ ldrsb r0, [r4, r1]
+ add r1, sp, #0
+ mul r0, r3
+ strh r0, [r2, #4]
+ add r0, r5, #0
+ bl FUN_02013514
+ add sp, #0x1c
+ mov r0, #1
+ pop {r4, r5, pc}
+_02217482:
+ add r1, sp, #0
+ mov r0, #0
+ ldrsh r2, [r1, r0]
+ ldr r0, [r4, #0x2c]
+ sub r0, r2, r0
+ strh r0, [r1]
+ mov r0, #2
+ ldrsh r2, [r1, r0]
+ ldr r0, [r4, #0x30]
+ sub r0, r2, r0
+ strh r0, [r1, #2]
+ mov r0, #4
+ ldrsh r2, [r1, r0]
+ ldr r0, [r4, #0x34]
+ sub r0, r2, r0
+ strh r0, [r1, #4]
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02013514
+ mov r0, #1
+ add sp, #0x1c
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_022174B0
+MOD08_022174B0: ; 0x022174B0
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022174B4
+MOD08_022174B4: ; 0x022174B4
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022174B8
+MOD08_022174B8: ; 0x022174B8
+ push {r4, r5, r6, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ add r4, r1, #0
+ add r1, sp, #0
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r4, #0
+ add r1, sp, #0xc
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #0x10]
+ cmp r0, #1
+ bne _022174E4
+ mov r0, #1
+ strb r0, [r4, #8]
+_022174E4:
+ ldr r0, [sp, #0xc]
+ cmp r0, #3
+ bgt _02217502
+ cmp r0, #0
+ blt _02217562
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022174FA: ; jump table
+ .short _02217506 - _022174FA - 2 ; case 0
+ .short _0221752A - _022174FA - 2 ; case 1
+ .short _0221754C - _022174FA - 2 ; case 2
+ .short _02217558 - _022174FA - 2 ; case 3
+_02217502:
+ cmp r0, #0xff
+ b _02217562
+_02217506:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02013548
+ mov r0, #8
+ ldrsb r1, [r4, r0]
+ ldr r2, [sp]
+ mul r1, r2
+ str r1, [sp]
+ ldrsb r1, [r4, r0]
+ ldr r2, [sp, #4]
+ mul r1, r2
+ str r1, [sp, #4]
+ ldrsb r0, [r4, r0]
+ ldr r1, [sp, #8]
+ mul r0, r1
+ str r0, [sp, #8]
+ b _02217562
+_0221752A:
+ ldr r2, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ str r2, [sp]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #8
+ ldrsb r6, [r4, r3]
+ mul r6, r2
+ str r6, [sp]
+ ldrsb r2, [r4, r3]
+ mul r2, r1
+ str r2, [sp, #4]
+ ldrsb r1, [r4, r3]
+ mul r1, r0
+ str r1, [sp, #8]
+ b _02217562
+_0221754C:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0
+ bl MOD08_0222771C
+ b _02217562
+_02217558:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0
+ bl MOD08_0222771C
+_02217562:
+ ldr r1, [sp]
+ ldr r0, [r4, #0x2c]
+ sub r0, r1, r0
+ str r0, [sp]
+ ldr r1, [sp, #4]
+ ldr r0, [r4, #0x30]
+ sub r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02013530
+ mov r0, #1
+ add sp, #0x20
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02217580
+MOD08_02217580: ; 0x02217580
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r1, #0
+ add r0, sp, #0
+ strh r1, [r0]
+ add r0, r4, #0
+ add r1, sp, #4
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ bne _022175A8
+ mov r0, #1
+ strb r0, [r4, #8]
+_022175A8:
+ ldr r0, [sp, #4]
+ cmp r0, #3
+ bgt _022175C6
+ cmp r0, #0
+ blt _022175F4
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022175BE: ; jump table
+ .short _022175CA - _022175BE - 2 ; case 0
+ .short _022175E2 - _022175BE - 2 ; case 1
+ .short _022175F4 - _022175BE - 2 ; case 2
+ .short _022175F4 - _022175BE - 2 ; case 3
+_022175C6:
+ cmp r0, #0xff
+ b _022175F4
+_022175CA:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02013594
+ add r1, sp, #0
+ mov r0, #0
+ ldrsh r2, [r1, r0]
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ mul r0, r2
+ strh r0, [r1]
+ b _022175F4
+_022175E2:
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0
+ strh r0, [r1]
+ mov r0, #0
+ ldrsh r2, [r1, r0]
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ mul r0, r2
+ strh r0, [r1]
+_022175F4:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0201357C
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217604
+MOD08_02217604: ; 0x02217604
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r1, #0
+ add r0, sp, #0
+ strh r1, [r0]
+ add r0, r4, #0
+ add r1, sp, #4
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ bne _0221762C
+ mov r0, #1
+ strb r0, [r4, #8]
+_0221762C:
+ ldr r0, [sp, #4]
+ cmp r0, #3
+ bgt _0221764A
+ cmp r0, #0
+ blt _02217674
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02217642: ; jump table
+ .short _0221764E - _02217642 - 2 ; case 0
+ .short _02217664 - _02217642 - 2 ; case 1
+ .short _02217674 - _02217642 - 2 ; case 2
+ .short _02217674 - _02217642 - 2 ; case 3
+_0221764A:
+ cmp r0, #0xff
+ b _02217674
+_0221764E:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_020135C4
+ add r1, sp, #0
+ mov r0, #8
+ ldrh r2, [r1]
+ ldrsb r0, [r4, r0]
+ mul r0, r2
+ strh r0, [r1]
+ b _02217674
+_02217664:
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0
+ strh r0, [r1]
+ mov r0, #8
+ ldrh r2, [r1]
+ ldrsb r0, [r4, r0]
+ mul r0, r2
+ strh r0, [r1]
+_02217674:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_020135B0
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217684
+MOD08_02217684: ; 0x02217684
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r1, #0
+ add r0, sp, #0
+ strh r1, [r0]
+ add r0, r4, #0
+ add r1, sp, #4
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ bne _022176AC
+ mov r0, #1
+ strb r0, [r4, #8]
+_022176AC:
+ ldr r1, [sp, #4]
+ cmp r1, #3
+ bgt _022176CA
+ cmp r1, #0
+ blt _022176DE
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022176C2: ; jump table
+ .short _022176CE - _022176C2 - 2 ; case 0
+ .short _022176D8 - _022176C2 - 2 ; case 1
+ .short _022176DE - _022176C2 - 2 ; case 2
+ .short _022176DE - _022176C2 - 2 ; case 3
+_022176CA:
+ cmp r1, #0xff
+ b _022176DE
+_022176CE:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_020135F4
+ b _022176DE
+_022176D8:
+ ldr r1, [sp, #0xc]
+ add r0, sp, #0
+ strh r1, [r0]
+_022176DE:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_020135E0
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022176EC
+MOD08_022176EC: ; 0x022176EC
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022176F0
+MOD08_022176F0: ; 0x022176F0
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022176F4
+MOD08_022176F4: ; 0x022176F4
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022176F8
+MOD08_022176F8: ; 0x022176F8
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022176FC
+MOD08_022176FC: ; 0x022176FC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r7, r0, #0
+ add r4, r1, #0
+ add r1, sp, #0
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r4, #0
+ add r1, sp, #0xc
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #0x10]
+ cmp r0, #1
+ bne _02217728
+ mov r0, #1
+ strb r0, [r4, #8]
+_02217728:
+ ldr r0, [sp, #0xc]
+ cmp r0, #4
+ bgt _02217748
+ cmp r0, #0
+ blt _022177E2
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221773E: ; jump table
+ .short _0221774C - _0221773E - 2 ; case 0
+ .short _02217770 - _0221773E - 2 ; case 1
+ .short _022177CC - _0221773E - 2 ; case 2
+ .short _022177D8 - _0221773E - 2 ; case 3
+ .short _02217792 - _0221773E - 2 ; case 4
+_02217748:
+ cmp r0, #0xff
+ b _022177E2
+_0221774C:
+ add r0, r7, #0
+ add r1, sp, #0
+ bl FUN_02013628
+ mov r0, #8
+ ldrsb r1, [r4, r0]
+ ldr r2, [sp]
+ mul r1, r2
+ str r1, [sp]
+ ldrsb r1, [r4, r0]
+ ldr r2, [sp, #4]
+ mul r1, r2
+ str r1, [sp, #4]
+ ldrsb r0, [r4, r0]
+ ldr r1, [sp, #8]
+ mul r0, r1
+ str r0, [sp, #8]
+ b _022177E2
+_02217770:
+ ldr r2, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ str r2, [sp]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #8
+ ldrsb r5, [r4, r3]
+ mul r5, r2
+ str r5, [sp]
+ ldrsb r2, [r4, r3]
+ mul r2, r1
+ str r2, [sp, #4]
+ ldrsb r1, [r4, r3]
+ mul r1, r0
+ str r1, [sp, #8]
+ b _022177E2
+_02217792:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0
+ bl MOD08_0222771C
+ ldr r1, [sp]
+ ldr r5, [sp, #0x14]
+ add r0, r1, #0
+ ldr r6, [sp, #0x18]
+ mul r0, r5
+ add r1, r6, #0
+ bl _s32_div_f
+ ldr r1, [sp, #4]
+ str r0, [sp]
+ add r0, r1, #0
+ mul r0, r5
+ add r1, r6, #0
+ bl _s32_div_f
+ ldr r1, [sp, #8]
+ str r0, [sp, #4]
+ add r0, r1, #0
+ mul r0, r5
+ add r1, r6, #0
+ bl _s32_div_f
+ str r0, [sp, #8]
+ b _022177E2
+_022177CC:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0
+ bl MOD08_0222771C
+ b _022177E2
+_022177D8:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0
+ bl MOD08_0222771C
+_022177E2:
+ ldr r1, [sp]
+ ldr r0, [r4, #0x2c]
+ sub r0, r1, r0
+ str r0, [sp]
+ ldr r1, [sp, #4]
+ ldr r0, [r4, #0x30]
+ sub r0, r1, r0
+ str r0, [sp, #4]
+ ldr r1, [sp, #8]
+ ldr r0, [r4, #0x34]
+ sub r0, r1, r0
+ str r0, [sp, #8]
+ add r0, r7, #0
+ add r1, sp, #0
+ bl FUN_02013610
+ mov r0, #1
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02217808
+MOD08_02217808: ; 0x02217808
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r1, #0
+ add r0, sp, #0
+ strh r1, [r0]
+ add r0, r4, #0
+ add r1, sp, #4
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ bne _02217830
+ mov r0, #1
+ strb r0, [r4, #8]
+_02217830:
+ ldr r0, [sp, #4]
+ cmp r0, #3
+ bgt _0221784E
+ cmp r0, #0
+ blt _0221787C
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02217846: ; jump table
+ .short _02217852 - _02217846 - 2 ; case 0
+ .short _0221786A - _02217846 - 2 ; case 1
+ .short _0221787C - _02217846 - 2 ; case 2
+ .short _0221787C - _02217846 - 2 ; case 3
+_0221784E:
+ cmp r0, #0xff
+ b _0221787C
+_02217852:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02013674
+ add r1, sp, #0
+ mov r0, #0
+ ldrsh r2, [r1, r0]
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ mul r0, r2
+ strh r0, [r1]
+ b _0221787C
+_0221786A:
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0
+ strh r0, [r1]
+ mov r0, #0
+ ldrsh r2, [r1, r0]
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ mul r0, r2
+ strh r0, [r1]
+_0221787C:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0201365C
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221788C
+MOD08_0221788C: ; 0x0221788C
+ push {r3, lr}
+ add r3, r0, #0
+ add r0, r1, #0
+ add r1, r2, #0
+ ldr r2, _022178A0 ; =0x0222C204
+ lsl r3, r3, #2
+ ldr r2, [r2, r3]
+ blx r2
+ pop {r3, pc}
+ nop
+_022178A0: .word 0x0222C204
+
+ thumb_func_start MOD08_022178A4
+MOD08_022178A4: ; 0x022178A4
+ push {r3, r4, r5}
+ sub sp, #0x3c
+ ldr r4, _022178C8 ; =0x0222C23C
+ add r5, r0, #0
+ add r3, sp, #0
+ mov r2, #7
+_022178B0:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022178B0
+ ldr r0, [r4]
+ lsl r1, r5, #2
+ str r0, [r3]
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ add sp, #0x3c
+ pop {r3, r4, r5}
+ bx lr
+ .align 2, 0
+_022178C8: .word 0x0222C23C
+
+ thumb_func_start MOD08_022178CC
+MOD08_022178CC: ; 0x022178CC
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ ldr r6, _022178F4 ; =0x0000FEFE
+ add r5, r4, #0
+_022178D4:
+ add r0, r4, #0
+ bl MOD08_022178A4
+ add r4, r4, #1
+ cmp r0, r6
+ beq _022178E6
+ add r5, r5, #1
+ cmp r5, #0xff
+ blt _022178D4
+_022178E6:
+ cmp r5, #0xff
+ blt _022178EE
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_022178EE:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ nop
+_022178F4: .word 0x0000FEFE
+
+ thumb_func_start MOD08_022178F8
+MOD08_022178F8: ; 0x022178F8
+ ldr r3, _02217900 ; =MOD08_02215434
+ ldr r0, [r0]
+ mov r2, #4
+ bx r3
+ .align 2, 0
+_02217900: .word MOD08_02215434
+
+ thumb_func_start MOD08_02217904
+MOD08_02217904: ; 0x02217904
+ push {r3, lr}
+ sub sp, #8
+ add r2, sp, #0
+ mov r0, #0
+ strh r0, [r2]
+ strh r0, [r2, #2]
+ strh r0, [r2, #4]
+ strh r0, [r2, #6]
+ ldr r0, [r1, #4]
+ bl FUN_0201343C
+ add r1, r0, #0
+ add r0, sp, #0
+ bl FUN_0201EF90
+ mov r0, #1
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02217928
+MOD08_02217928: ; 0x02217928
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldr r1, _02217960 ; =0x0222C278
+ add r0, sp, #0
+ ldrh r2, [r1, #0x20]
+ strh r2, [r0]
+ ldrh r2, [r1, #0x22]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #0x24]
+ ldrh r1, [r1, #0x26]
+ strh r2, [r0, #4]
+ strh r1, [r0, #6]
+ ldr r0, [r4, #4]
+ bl FUN_0201343C
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02013440
+ add r0, sp, #0
+ add r1, r5, #0
+ bl FUN_0201EF90
+ mov r0, #1
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02217960: .word 0x0222C278
+
+ thumb_func_start MOD08_02217964
+MOD08_02217964: ; 0x02217964
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r1, #0
+ add r1, sp, #0
+ mov r0, #0
+ strh r0, [r1]
+ strh r0, [r1, #2]
+ strh r0, [r1, #4]
+ strh r0, [r1, #6]
+ add r0, r4, #0
+ add r1, sp, #8
+ bl MOD08_022178F8
+ ldr r1, [sp, #0xc]
+ add r0, sp, #0
+ strh r1, [r0]
+ ldr r1, [sp, #0x10]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x14]
+ strh r1, [r0, #4]
+ ldr r0, [r4, #4]
+ bl FUN_0201343C
+ add r1, r0, #0
+ add r0, sp, #0
+ bl FUN_0201EF90
+ mov r0, #1
+ add sp, #0x18
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022179A0
+MOD08_022179A0: ; 0x022179A0
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldr r1, _022179D8 ; =0x0222C278
+ add r0, sp, #0
+ ldrh r2, [r1, #0x18]
+ strh r2, [r0]
+ ldrh r2, [r1, #0x1a]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #0x1c]
+ ldrh r1, [r1, #0x1e]
+ strh r2, [r0, #4]
+ strh r1, [r0, #6]
+ ldr r0, [r4, #4]
+ bl FUN_0201343C
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02013440
+ add r0, sp, #0
+ add r1, r5, #0
+ bl FUN_0201EF90
+ mov r0, #1
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022179D8: .word 0x0222C278
+
+ thumb_func_start MOD08_022179DC
+MOD08_022179DC: ; 0x022179DC
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldr r1, _02217A38 ; =0x0222C278
+ add r0, sp, #0
+ ldrh r2, [r1, #0x10]
+ strh r2, [r0, #8]
+ ldrh r2, [r1, #0x12]
+ strh r2, [r0, #0xa]
+ ldrh r2, [r1, #0x14]
+ strh r2, [r0, #0xc]
+ ldrh r2, [r1, #0x16]
+ strh r2, [r0, #0xe]
+ ldrh r2, [r1, #0x28]
+ strh r2, [r0]
+ ldrh r2, [r1, #0x2a]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #0x2c]
+ strh r2, [r0, #4]
+ ldrh r1, [r1, #0x2e]
+ strh r1, [r0, #6]
+ ldr r0, [r4, #4]
+ bl FUN_0201343C
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02013440
+ ldr r0, [r4]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02217A2A
+ add r0, sp, #8
+ add r1, r5, #0
+ bl FUN_0201EF90
+ b _02217A32
+_02217A2A:
+ add r0, sp, #0
+ add r1, r5, #0
+ bl FUN_0201EF90
+_02217A32:
+ mov r0, #1
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02217A38: .word 0x0222C278
+
+ thumb_func_start MOD08_02217A3C
+MOD08_02217A3C: ; 0x02217A3C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldr r1, _02217A74 ; =0x0222C278
+ add r0, sp, #0
+ ldrh r2, [r1]
+ strh r2, [r0]
+ ldrh r2, [r1, #2]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #4]
+ ldrh r1, [r1, #6]
+ strh r2, [r0, #4]
+ strh r1, [r0, #6]
+ ldr r0, [r4, #4]
+ bl FUN_0201343C
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02013440
+ add r0, sp, #0
+ add r1, r5, #0
+ bl FUN_0201EF90
+ mov r0, #1
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02217A74: .word 0x0222C278
+
+ thumb_func_start MOD08_02217A78
+MOD08_02217A78: ; 0x02217A78
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldr r1, _02217AB0 ; =0x0222C278
+ add r0, sp, #0
+ ldrh r2, [r1, #8]
+ strh r2, [r0]
+ ldrh r2, [r1, #0xa]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #0xc]
+ ldrh r1, [r1, #0xe]
+ strh r2, [r0, #4]
+ strh r1, [r0, #6]
+ ldr r0, [r4, #4]
+ bl FUN_0201343C
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02013440
+ add r0, sp, #0
+ add r1, r5, #0
+ bl FUN_0201EF90
+ mov r0, #1
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02217AB0: .word 0x0222C278
+
+ thumb_func_start MOD08_02217AB4
+MOD08_02217AB4: ; 0x02217AB4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r0, [r5, #4]
+ bl FUN_0201343C
+ add r4, r0, #0
+ ldr r0, [r5]
+ ldr r1, [r5, #0x24]
+ add r2, sp, #0
+ bl MOD08_022278FC
+ add r0, sp, #0
+ add r1, r4, #0
+ bl FUN_0201F04C
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217ADC
+MOD08_02217ADC: ; 0x02217ADC
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r0, [r5, #4]
+ bl FUN_0201343C
+ add r4, r0, #0
+ ldr r0, [r5]
+ ldr r1, [r5, #0x28]
+ add r2, sp, #0
+ bl MOD08_022278FC
+ add r0, sp, #0
+ add r1, r4, #0
+ bl FUN_0201F04C
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217B04
+MOD08_02217B04: ; 0x02217B04
+ push {r3, lr}
+ add r3, r0, #0
+ add r0, r1, #0
+ add r1, r2, #0
+ ldr r2, _02217B18 ; =0x0222C2A8
+ lsl r3, r3, #2
+ ldr r2, [r2, r3]
+ blx r2
+ pop {r3, pc}
+ nop
+_02217B18: .word 0x0222C2A8
+
+ thumb_func_start MOD08_02217B1C
+MOD08_02217B1C: ; 0x02217B1C
+ push {r3, r4, r5, r6}
+ cmp r2, #0
+ beq _02217B32
+ mov r4, #0x18
+ add r6, r0, #0
+ mul r6, r4
+ ldr r4, _02217B48 ; =0x0222C2CC
+ lsl r5, r1, #2
+ add r4, r4, r6
+ ldrsh r4, [r5, r4]
+ strh r4, [r2]
+_02217B32:
+ cmp r3, #0
+ beq _02217B44
+ mov r2, #0x18
+ mul r2, r0
+ ldr r0, _02217B4C ; =0x0222C2CE
+ lsl r1, r1, #2
+ add r0, r0, r2
+ ldrsh r0, [r1, r0]
+ strh r0, [r3]
+_02217B44:
+ pop {r3, r4, r5, r6}
+ bx lr
+ .align 2, 0
+_02217B48: .word 0x0222C2CC
+_02217B4C: .word 0x0222C2CE
+
+ thumb_func_start MOD08_02217B50
+MOD08_02217B50: ; 0x02217B50
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02217B70
+ mov r0, #0
+ add r1, r5, #2
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD08_02217B1C
+ pop {r3, r4, r5, r6, r7, pc}
+_02217B70:
+ add r0, r7, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _02217B88
+ mov r0, #1
+ sub r1, r5, #2
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD08_02217B1C
+ pop {r3, r4, r5, r6, r7, pc}
+_02217B88:
+ mov r0, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD08_02217B1C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217B98
+MOD08_02217B98: ; 0x02217B98
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r6, r2, #0
+ bl MOD08_02227468
+ add r4, r0, #0
+ add r0, r7, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _02217BB2
+ mov r5, #1
+ b _02217BB4
+_02217BB2:
+ mov r5, #0
+_02217BB4:
+ add r0, r7, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02217BC0
+ add r4, r4, #2
+_02217BC0:
+ cmp r6, #3
+ bhi _02217BF8
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02217BD0: ; jump table
+ .short _02217BD8 - _02217BD0 - 2 ; case 0
+ .short _02217BE8 - _02217BD0 - 2 ; case 1
+ .short _02217BD8 - _02217BD0 - 2 ; case 2
+ .short _02217BE8 - _02217BD0 - 2 ; case 3
+_02217BD8:
+ mov r0, #0x18
+ add r2, r5, #0
+ mul r2, r0
+ ldr r0, _02217C00 ; =0x0222C2CC
+ lsl r1, r4, #2
+ add r0, r0, r2
+ ldrsh r0, [r1, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_02217BE8:
+ mov r0, #0x18
+ add r2, r5, #0
+ mul r2, r0
+ ldr r0, _02217C04 ; =0x0222C2CE
+ lsl r1, r4, #2
+ add r0, r0, r2
+ ldrsh r0, [r1, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_02217BF8:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02217C00: .word 0x0222C2CC
+_02217C04: .word 0x0222C2CE
+
+ thumb_func_start MOD08_02217C08
+MOD08_02217C08: ; 0x02217C08
+ push {r3, lr}
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02217C1C
+MOD08_02217C1C: ; 0x02217C1C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r5, #1
+ bl MOD08_02227470
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD08_02212004
+ cmp r0, #0
+ beq _02217C3A
+ cmp r4, #3
+ bne _02217C40
+ sub r5, r5, #2
+ b _02217C40
+_02217C3A:
+ cmp r4, #4
+ bne _02217C40
+ sub r5, r5, #2
+_02217C40:
+ add r0, r5, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02217C44
+MOD08_02217C44: ; 0x02217C44
+ push {r4, lr}
+ mov r4, #1
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _02217C52
+ sub r4, r4, #2
+_02217C52:
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217C58
+MOD08_02217C58: ; 0x02217C58
+ ldr r3, _02217C60 ; =0x020C50B8
+ sub r0, r1, r0
+ lsl r1, r2, #0xc
+ bx r3
+ .align 2, 0
+_02217C60: .word 0x020C50B8
+
+ thumb_func_start MOD08_02217C64
+MOD08_02217C64: ; 0x02217C64
+ push {r3, lr}
+ sub r0, r1, r0
+ add r1, r2, #0
+ bl FX_Div
+ add r1, sp, #0
+ str r0, [sp]
+ bl FX_Modf
+ cmp r0, #0
+ beq _02217C84
+ mov r0, #1
+ ldr r1, [sp]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp]
+_02217C84:
+ ldr r0, [sp]
+ cmp r0, #0
+ bge _02217C8C
+ neg r0, r0
+_02217C8C:
+ str r0, [sp]
+ asr r0, r0, #0xc
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217C94
+MOD08_02217C94: ; 0x02217C94
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #0
+ ldrsh r1, [r4, r1]
+ add r1, r2, r1
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02217CB4
+MOD08_02217CB4: ; 0x02217CB4
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r1, sp, #4
+ add r2, sp, #0
+ bl MOD08_0221825C
+ ldr r1, [sp, #4]
+ ldr r2, [sp]
+ add r0, r4, #0
+ bl FUN_0200C884
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02217CD0
+MOD08_02217CD0: ; 0x02217CD0
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r1, #0
+ add r6, r3, #0
+ ldrsh r3, [r5, r1]
+ add r0, r4, #0
+ add r2, r2, r3
+ bl FUN_02007558
+ mov r2, #2
+ ldrsh r2, [r5, r2]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r6, r2
+ bl FUN_02007558
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02217CF4
+MOD08_02217CF4: ; 0x02217CF4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r2, #0
+ add r4, r1, #0
+ ldrsh r2, [r5, r2]
+ add r0, r4, #0
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #2
+ ldrsh r2, [r5, r2]
+ add r0, r4, #0
+ mov r1, #0xd
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02217D14
+MOD08_02217D14: ; 0x02217D14
+ push {r3, r4, r5, lr}
+ add r4, r3, #0
+ add r5, r0, #0
+ ldr r3, [sp, #0x1c]
+ ldr r0, [sp, #0x14]
+ str r3, [r5, #4]
+ str r1, [r5, #8]
+ str r0, [r5, #0xc]
+ ldr r0, [sp, #0x18]
+ str r4, [r5, #0x10]
+ str r0, [r5, #0x14]
+ sub r0, r2, r1
+ add r1, r3, #0
+ bl _s32_div_f
+ str r0, [r5, #0x18]
+ add r0, sp, #0
+ ldrh r0, [r0, #0x10]
+ ldr r1, [sp, #0x1c]
+ sub r0, r0, r4
+ bl _s32_div_f
+ str r0, [r5, #0x1c]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02217D44
+MOD08_02217D44: ; 0x02217D44
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r7, r2, #0
+ str r3, [sp]
+ cmp r5, #0
+ bne _02217D56
+ bl ErrorHandling
+_02217D56:
+ cmp r4, r7
+ bls _02217D62
+ add r0, sp, #8
+ ldrh r1, [r0, #0x1c]
+ neg r1, r1
+ strh r1, [r0, #0x1c]
+_02217D62:
+ add r1, sp, #8
+ mov r0, #0x1c
+ ldrsh r6, [r1, r0]
+ lsl r0, r4, #0xc
+ lsl r1, r7, #0xc
+ lsl r2, r6, #0xc
+ bl MOD08_02217C64
+ str r0, [r5, #4]
+ ldr r0, [sp, #0x1c]
+ str r4, [r5, #8]
+ str r0, [r5, #0xc]
+ ldr r0, [sp]
+ str r0, [r5, #0x10]
+ ldr r0, [sp, #0x20]
+ str r0, [r5, #0x14]
+ str r6, [r5, #0x18]
+ add r0, sp, #8
+ ldrh r1, [r0, #0x10]
+ ldr r0, [sp]
+ sub r0, r1, r0
+ ldr r1, [r5, #4]
+ bl _s32_div_f
+ str r0, [r5, #0x1c]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217D98
+MOD08_02217D98: ; 0x02217D98
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02217DA2
+ bl ErrorHandling
+_02217DA2:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02217E26
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0x18]
+ add r0, r1, r0
+ str r0, [r4, #8]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x1c]
+ add r0, r1, r0
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #8]
+ ldr r2, [r4, #0xc]
+ asr r0, r0, #4
+ lsl r1, r0, #2
+ ldr r0, _02217E2C ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ asr r0, r1, #0xc
+ strh r0, [r4]
+ ldr r0, [r4, #0x10]
+ ldr r2, [r4, #0x14]
+ asr r0, r0, #4
+ lsl r0, r0, #1
+ add r0, r0, #1
+ lsl r1, r0, #1
+ ldr r0, _02217E2C ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ asr r0, r1, #0xc
+ strh r0, [r4, #2]
+ mov r0, #1
+ pop {r4, pc}
+_02217E26:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02217E2C: .word 0x020FFA38
+
+ thumb_func_start MOD08_02217E30
+MOD08_02217E30: ; 0x02217E30
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_02217D98
+ cmp r0, #0
+ beq _02217E52
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD08_02217C94
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02217E52:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217E58
+MOD08_02217E58: ; 0x02217E58
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_02217D98
+ cmp r0, #0
+ beq _02217E7A
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD08_02217CD0
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02217E7A:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217E80
+MOD08_02217E80: ; 0x02217E80
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r3, #0
+ str r2, [sp]
+ cmp r5, #0
+ bne _02217E94
+ bl ErrorHandling
+_02217E94:
+ strh r4, [r5]
+ strh r6, [r5, #2]
+ add r0, sp, #0x10
+ ldrh r7, [r0, #0x14]
+ lsl r0, r4, #0xc
+ str r0, [sp, #4]
+ str r7, [r5, #4]
+ ldr r1, [sp]
+ add r2, r7, #0
+ lsl r1, r1, #0xc
+ bl MOD08_02217C58
+ str r0, [r5, #8]
+ lsl r4, r6, #0xc
+ add r2, sp, #0x10
+ mov r1, #0x10
+ ldrsh r1, [r2, r1]
+ add r0, r4, #0
+ add r2, r7, #0
+ lsl r1, r1, #0xc
+ bl MOD08_02217C58
+ str r0, [r5, #0xc]
+ ldr r0, [sp, #4]
+ str r0, [r5, #0x10]
+ str r4, [r5, #0x14]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02217ECC
+MOD08_02217ECC: ; 0x02217ECC
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02217ED6
+ bl ErrorHandling
+_02217ED6:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02217F02
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #0xc]
+ add r0, r1, r0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ asr r0, r0, #0xc
+ strh r0, [r4]
+ ldr r0, [r4, #0x14]
+ asr r0, r0, #0xc
+ strh r0, [r4, #2]
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ pop {r4, pc}
+_02217F02:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217F08
+MOD08_02217F08: ; 0x02217F08
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02217F26
+ mov r2, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD08_02217C94
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02217F26:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217F2C
+MOD08_02217F2C: ; 0x02217F2C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02217F4A
+ mov r2, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD08_02217CD0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02217F4A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217F50
+MOD08_02217F50: ; 0x02217F50
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r4, sp, #0x10
+ mov r1, #0x14
+ ldrsh r1, [r4, r1]
+ str r1, [sp]
+ ldrh r1, [r4, #0x18]
+ str r1, [sp, #4]
+ add r1, r2, #0
+ add r2, r3, #0
+ mov r3, #0x10
+ ldrsh r3, [r4, r3]
+ bl MOD08_02217E80
+ mov r1, #0
+ strh r1, [r5]
+ ldr r0, _02217F94 ; =0x0000BFFF
+ strh r1, [r5, #2]
+ str r0, [sp]
+ ldr r0, [sp, #0x2c]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ ldrh r0, [r0, #0x18]
+ ldr r3, _02217F98 ; =0x00003FFF
+ add r2, r1, #0
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD08_02217D14
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_02217F94: .word 0x0000BFFF
+_02217F98: .word 0x00003FFF
+
+ thumb_func_start MOD08_02217F9C
+MOD08_02217F9C: ; 0x02217F9C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ cmp r5, #0
+ bne _02217FAA
+ bl ErrorHandling
+_02217FAA:
+ cmp r4, #0
+ bne _02217FB2
+ bl ErrorHandling
+_02217FB2:
+ add r0, r5, #0
+ bl MOD08_02217ECC
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD08_02217D98
+ mov r2, #0
+ ldrsh r3, [r5, r2]
+ ldrsh r1, [r4, r2]
+ add r1, r3, r1
+ strh r1, [r5]
+ mov r1, #2
+ ldrsh r3, [r5, r1]
+ ldrsh r1, [r4, r1]
+ add r1, r3, r1
+ strh r1, [r5, #2]
+ cmp r6, r0
+ bne _02217FE0
+ cmp r6, #0
+ bne _02217FE0
+ add r0, r2, #0
+ pop {r4, r5, r6, pc}
+_02217FE0:
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02217FE4
+MOD08_02217FE4: ; 0x02217FE4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ bl MOD08_02217F9C
+ cmp r0, #0
+ beq _02218002
+ mov r2, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD08_02217C94
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02218002:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218008
+MOD08_02218008: ; 0x02218008
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ add r4, r3, #0
+ cmp r5, #0
+ bne _0221801A
+ bl ErrorHandling
+_0221801A:
+ str r6, [r5]
+ lsl r0, r6, #0xc
+ lsl r1, r7, #0xc
+ add r2, r4, #0
+ str r4, [r5, #4]
+ bl MOD08_02217C58
+ asr r0, r0, #0xc
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218030
+MOD08_02218030: ; 0x02218030
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ add r4, r3, #0
+ cmp r5, #0
+ bne _02218042
+ bl ErrorHandling
+_02218042:
+ str r6, [r5]
+ lsl r6, r6, #0xc
+ add r0, r6, #0
+ lsl r1, r7, #0xc
+ add r2, r4, #0
+ str r4, [r5, #4]
+ bl MOD08_02217C58
+ str r0, [r5, #8]
+ str r6, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02218058
+MOD08_02218058: ; 0x02218058
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02218062
+ bl ErrorHandling
+_02218062:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _0221807A
+ ldr r1, [r4]
+ ldr r0, [r4, #8]
+ add r0, r1, r0
+ str r0, [r4]
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ pop {r4, pc}
+_0221807A:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218080
+MOD08_02218080: ; 0x02218080
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221808A
+ bl ErrorHandling
+_0221808A:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _022180A6
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #8]
+ add r0, r1, r0
+ str r0, [r4, #0xc]
+ asr r0, r0, #0xc
+ str r0, [r4]
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ pop {r4, pc}
+_022180A6:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022180AC
+MOD08_022180AC: ; 0x022180AC
+ push {r3, r4, r5, lr}
+ ldr r4, [sp, #0x10]
+ add r5, r0, #0
+ str r4, [r5, #4]
+ str r1, [r5, #8]
+ sub r0, r2, r1
+ add r1, r4, #0
+ str r3, [r5, #0xc]
+ bl _u32_div_f
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022180C4
+MOD08_022180C4: ; 0x022180C4
+ push {r4, lr}
+ add r4, r0, #0
+ bne _022180CE
+ bl ErrorHandling
+_022180CE:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02218116
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0x10]
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #8]
+ ldr r2, [r4, #0xc]
+ asr r0, r0, #4
+ lsl r0, r0, #1
+ add r0, r0, #1
+ lsl r1, r0, #1
+ ldr r0, _0221811C ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ asr r0, r1, #0xc
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_02218116:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0221811C: .word 0x020FFA38
+
+ thumb_func_start MOD08_02218120
+MOD08_02218120: ; 0x02218120
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ cmp r4, #0
+ bne _02218132
+ bl ErrorHandling
+_02218132:
+ ldr r0, [sp, #0x18]
+ add r1, r6, #0
+ str r0, [r4, #4]
+ lsl r0, r5, #8
+ bl _s32_div_f
+ add r5, r0, #0
+ lsl r0, r7, #8
+ add r1, r6, #0
+ bl _s32_div_f
+ add r1, r0, #0
+ ldr r2, [sp, #0x18]
+ lsl r0, r5, #0xc
+ lsl r1, r1, #0xc
+ bl MOD08_02217C58
+ str r0, [r4, #8]
+ lsl r0, r5, #0x10
+ asr r0, r0, #0x10
+ strh r0, [r4]
+ strh r0, [r4, #2]
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x10]
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02218170
+MOD08_02218170: ; 0x02218170
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221817A
+ bl ErrorHandling
+_0221817A:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _022181A4
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ asr r0, r0, #0xc
+ strh r0, [r4]
+ ldr r0, [r4, #0x14]
+ asr r0, r0, #0xc
+ strh r0, [r4, #2]
+ mov r0, #1
+ pop {r4, pc}
+_022181A4:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022181A8
+MOD08_022181A8: ; 0x022181A8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ str r3, [sp]
+ cmp r5, #0
+ bne _022181BA
+ bl ErrorHandling
+_022181BA:
+ ldr r0, [sp, #0x20]
+ add r1, sp, #8
+ str r0, [r5, #4]
+ mov r0, #0x14
+ ldrsh r4, [r1, r0]
+ lsl r0, r6, #8
+ add r1, r4, #0
+ bl _s32_div_f
+ add r6, r0, #0
+ lsl r0, r7, #8
+ add r1, r4, #0
+ bl _s32_div_f
+ add r1, r0, #0
+ ldr r2, [sp, #0x20]
+ lsl r0, r6, #0xc
+ lsl r1, r1, #0xc
+ bl MOD08_02217C58
+ str r0, [r5, #8]
+ ldr r0, [sp]
+ add r1, r4, #0
+ lsl r0, r0, #8
+ bl _s32_div_f
+ add r7, r0, #0
+ add r1, sp, #8
+ mov r0, #0x10
+ ldrsh r0, [r1, r0]
+ add r1, r4, #0
+ lsl r0, r0, #8
+ bl _s32_div_f
+ add r1, r0, #0
+ ldr r2, [sp, #0x20]
+ lsl r0, r7, #0xc
+ lsl r1, r1, #0xc
+ bl MOD08_02217C58
+ str r0, [r5, #0xc]
+ strh r6, [r5]
+ strh r7, [r5, #2]
+ mov r0, #0
+ ldrsh r0, [r5, r0]
+ lsl r0, r0, #0xc
+ str r0, [r5, #0x10]
+ mov r0, #2
+ ldrsh r0, [r5, r0]
+ lsl r0, r0, #0xc
+ str r0, [r5, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218224
+MOD08_02218224: ; 0x02218224
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221822E
+ bl ErrorHandling
+_0221822E:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02218258
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #0xc]
+ add r0, r1, r0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ asr r0, r0, #0xc
+ strh r0, [r4]
+ ldr r0, [r4, #0x14]
+ asr r0, r0, #0xc
+ strh r0, [r4, #2]
+ mov r0, #1
+ pop {r4, pc}
+_02218258:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0221825C
+MOD08_0221825C: ; 0x0221825C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0
+ ldrsh r0, [r5, r0]
+ add r4, r1, #0
+ add r6, r2, #0
+ bl _fflt
+ ldr r1, _02218288 ; =0x43800000
+ bl _fdiv
+ str r0, [r4]
+ mov r0, #2
+ ldrsh r0, [r5, r0]
+ bl _fflt
+ ldr r1, _02218288 ; =0x43800000
+ bl _fdiv
+ str r0, [r6]
+ pop {r4, r5, r6, pc}
+ nop
+_02218288: .word 0x43800000
+
+ thumb_func_start MOD08_0221828C
+MOD08_0221828C: ; 0x0221828C
+ push {r3, r4, lr}
+ sub sp, #4
+ lsl r1, r1, #1
+ mov r0, #0x50
+ sub r0, r0, r1
+ lsl r4, r0, #0xc
+ asr r1, r4, #0x1f
+ add r0, r4, #0
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r0, r0, r2
+ adc r1, r3
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ lsl r1, r2, #9
+ bl FX_Div
+ sub r0, r4, r0
+ add r1, sp, #0
+ bl FX_Modf
+ cmp r0, #0
+ beq _022182CA
+ mov r1, #2
+ lsl r1, r1, #0xa
+ add r0, r0, r1
+_022182CA:
+ ldr r1, [sp]
+ add r0, r1, r0
+ asr r1, r0, #0xc
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ lsl r0, r0, #0xf
+ asr r0, r0, #0x10
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022182DC
+MOD08_022182DC: ; 0x022182DC
+ push {r4, r5, r6, lr}
+ add r6, r2, #0
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r3, #0
+ bl MOD08_0221828C
+ add r2, r0, #0
+ ldr r0, [sp, #0x10]
+ cmp r0, #1
+ bne _02218306
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r2
+ lsl r0, r0, #0x10
+ asr r2, r0, #0x10
+ sub r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+_02218306:
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, r2
+ bl FUN_02007558
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218314
+MOD08_02218314: ; 0x02218314
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r2, #0
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r3, #0
+ bl MOD08_0221828C
+ add r4, r0, #0
+ ldr r0, [sp, #0x18]
+ cmp r0, #1
+ bne _0221833E
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r4
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ sub r0, r5, r7
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+_0221833E:
+ add r1, sp, #0
+ add r0, r6, #0
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r2, sp, #0
+ mov r1, #2
+ ldrsh r1, [r2, r1]
+ add r2, r5, r4
+ lsl r2, r2, #0x10
+ add r0, r6, #0
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218360
+MOD08_02218360: ; 0x02218360
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_02218170
+ cmp r0, #0
+ beq _0221837A
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217CB4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0221837A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218380
+MOD08_02218380: ; 0x02218380
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_02218170
+ cmp r0, #0
+ beq _0221839A
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217CF4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0221839A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022183A0
+MOD08_022183A0: ; 0x022183A0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_02218224
+ cmp r0, #0
+ beq _022183BA
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217CF4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022183BA:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022183C0
+MOD08_022183C0: ; 0x022183C0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ add r7, r3, #0
+ cmp r5, #0
+ bne _022183D2
+ bl ErrorHandling
+_022183D2:
+ str r7, [r5, #4]
+ ldr r0, [sp, #0x18]
+ str r7, [r5, #8]
+ str r0, [r5, #0xc]
+ mov r1, #0
+ str r1, [r5, #0x10]
+ str r6, [r5, #0x14]
+ str r4, [r5, #0x18]
+ neg r0, r6
+ str r0, [r5, #0x1c]
+ neg r0, r4
+ str r0, [r5, #0x20]
+ strh r1, [r5]
+ strh r1, [r5, #2]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_022183F0
+MOD08_022183F0: ; 0x022183F0
+ push {r4, lr}
+ add r4, r0, #0
+ bne _022183FA
+ bl ErrorHandling
+_022183FA:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0221844E
+ ldr r0, [r4, #4]
+ add r1, r0, #1
+ str r1, [r4, #4]
+ ldr r0, [r4, #8]
+ cmp r1, r0
+ blt _0221844A
+ mov r2, #0
+ str r2, [r4, #4]
+ ldrsh r0, [r4, r2]
+ ldr r1, [r4, #0x1c]
+ str r0, [r4, #0x1c]
+ cmp r1, #0
+ bne _0221841E
+ strh r2, [r4]
+ b _02218422
+_0221841E:
+ neg r0, r1
+ strh r0, [r4]
+_02218422:
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x20]
+ str r0, [r4, #0x20]
+ cmp r1, #0
+ bne _02218432
+ mov r0, #0
+ b _02218434
+_02218432:
+ neg r0, r1
+_02218434:
+ strh r0, [r4, #2]
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ cmp r0, #4
+ blt _0221844A
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ sub r0, r0, #1
+ str r0, [r4, #0xc]
+_0221844A:
+ mov r0, #1
+ pop {r4, pc}
+_0221844E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218454
+MOD08_02218454: ; 0x02218454
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_022183F0
+ cmp r0, #0
+ beq _02218476
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD08_02217CD0
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02218476:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221847C
+MOD08_0221847C: ; 0x0221847C
+ push {r3, r4, r5, r6, r7, lr}
+ mov ip, r1
+ str r0, [sp]
+ strh r3, [r0]
+ add r0, sp, #8
+ mov r1, #0x10
+ ldrsh r3, [r0, r1]
+ ldr r1, [sp]
+ mov r6, #0
+ strh r3, [r1, #2]
+ add r1, #0x94
+ str r2, [r1]
+ ldr r1, [sp]
+ ldrh r2, [r0, #0x14]
+ add r1, #0xa8
+ strh r2, [r1]
+ ldr r1, [sp]
+ add r1, #0xaa
+ strh r6, [r1]
+ ldr r1, [sp]
+ ldrb r7, [r0, #0x18]
+ add r1, #0xac
+ strb r7, [r1]
+ ldr r1, [sp]
+ add r1, #0xad
+ strb r6, [r1]
+ ldrb r1, [r0, #0x1c]
+ ldr r0, [sp]
+ add r0, #0xae
+ strb r1, [r0]
+ cmp r7, #0
+ ble _022184D8
+ ldr r5, [sp]
+_022184BE:
+ mov r4, ip
+ add r3, r5, #4
+ mov r2, #4
+_022184C4:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022184C4
+ ldr r0, [r4]
+ add r6, r6, #1
+ str r0, [r3]
+ add r5, #0x24
+ cmp r6, r7
+ blt _022184BE
+_022184D8:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ add r0, #0x98
+ str r1, [r0]
+ ldr r0, [sp]
+ ldr r1, [sp, #0x2c]
+ add r0, #0x9c
+ str r1, [r0]
+ ldr r0, [sp]
+ ldr r1, [sp, #0x30]
+ add r0, #0xa0
+ str r1, [r0]
+ ldr r0, [sp]
+ ldr r1, [sp, #0x34]
+ add r0, #0xa4
+ str r1, [r0]
+ ldr r0, [sp]
+ mov r5, #0
+ add r0, #0xac
+ ldrb r0, [r0]
+ cmp r0, #0
+ ble _02218522
+ ldr r4, [sp]
+ add r6, r5, #0
+_02218508:
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ add r1, r6, #0
+ bl FUN_0200C644
+ ldr r0, [sp]
+ add r5, r5, #1
+ add r0, #0xac
+ ldrb r0, [r0]
+ add r4, r4, #4
+ cmp r5, r0
+ blt _02218508
+_02218522:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02218524
+MOD08_02218524: ; 0x02218524
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ mov r0, #0
+ add r2, sp, #0x10
+ mov r1, #1
+_02218530:
+ add r0, r0, #1
+ stmia r2!, {r1}
+ cmp r0, #4
+ blt _02218530
+ add r0, r5, #0
+ add r0, #0xa8
+ ldrh r2, [r0]
+ add r0, r5, #0
+ add r0, #0xaa
+ ldrh r0, [r0]
+ cmp r2, r0
+ bhi _02218570
+ add r0, r5, #0
+ add r0, #0xad
+ ldrb r0, [r0]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r0, #0x98
+ ldr r0, [r0]
+ bl FUN_0200C644
+ add r0, r5, #0
+ add r0, #0xad
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0xad
+ strb r1, [r0]
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xaa
+ strh r1, [r0]
+_02218570:
+ add r0, r5, #0
+ add r0, #0xad
+ ldrb r1, [r0]
+ add r0, r5, #0
+ add r0, #0xac
+ ldrb r0, [r0]
+ cmp r1, r0
+ bhs _0221858E
+ add r0, r5, #0
+ add r0, #0xaa
+ ldrh r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0xaa
+ strh r1, [r0]
+_0221858E:
+ mov r0, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xad
+ ldrb r0, [r0]
+ cmp r0, #0
+ ble _0221862E
+ add r0, sp, #0x10
+ add r7, r5, #4
+ str r0, [sp, #4]
+ add r6, r5, #0
+ add r4, r5, #0
+_022185A6:
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r7, #0
+ blx r1
+ ldr r1, [sp, #4]
+ cmp r0, #0
+ str r0, [r1]
+ beq _02218604
+ add r0, r5, #0
+ add r0, #0xae
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022185EA
+ mov r1, #0
+ mov r2, #4
+ ldrsh r1, [r5, r1]
+ ldrsh r2, [r6, r2]
+ add r0, r4, #0
+ add r0, #0x98
+ add r1, r1, r2
+ mov r2, #2
+ ldrsh r3, [r5, r2]
+ mov r2, #6
+ ldrsh r2, [r6, r2]
+ lsl r1, r1, #0x10
+ ldr r0, [r0]
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ b _02218610
+_022185EA:
+ add r0, r7, #0
+ add r1, sp, #0xc
+ add r2, sp, #8
+ bl MOD08_0221825C
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #8]
+ bl FUN_0200C884
+ b _02218610
+_02218604:
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+_02218610:
+ ldr r0, [sp, #4]
+ add r7, #0x24
+ add r0, r0, #4
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ add r6, #0x24
+ add r0, r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xad
+ ldrb r1, [r0]
+ ldr r0, [sp]
+ add r4, r4, #4
+ cmp r0, r1
+ blt _022185A6
+_0221862E:
+ add r5, #0xac
+ ldrb r2, [r5]
+ mov r3, #0
+ cmp r2, #0
+ ble _0221864E
+ add r1, sp, #0x10
+_0221863A:
+ ldr r0, [r1]
+ cmp r0, #1
+ bne _02218646
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02218646:
+ add r3, r3, #1
+ add r1, r1, #4
+ cmp r3, r2
+ blt _0221863A
+_0221864E:
+ mov r0, #0
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02218654
+MOD08_02218654: ; 0x02218654
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ ldr r3, _02218684 ; =0x0000FFFF
+ add r4, r1, #0
+ mov r1, #2
+ str r3, [sp]
+ lsl r1, r1, #0x10
+ str r1, [sp, #4]
+ ldr r1, _02218688 ; =0xFFFF8000
+ add r5, r0, #0
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ mov r1, #0
+ add r2, r3, #0
+ add r3, r1, #0
+ bl MOD08_02217D14
+ ldr r0, [r5, #4]
+ add r1, r0, #0
+ mul r1, r4
+ str r1, [r5, #4]
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_02218684: .word 0x0000FFFF
+_02218688: .word 0xFFFF8000
+
+ thumb_func_start MOD08_0221868C
+MOD08_0221868C: ; 0x0221868C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _022186A8
+ mov r0, #1
+ str r0, [r4, #0x24]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+_022186A8:
+ mov r0, #0
+ ldrsh r1, [r4, r0]
+ cmp r1, #0
+ bge _022186B2
+ strh r0, [r4]
+_022186B2:
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _022186BE
+ mov r0, #0
+ strh r0, [r4, #2]
+_022186BE:
+ mov r0, #0
+ ldrsh r1, [r4, r0]
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _022186D0 ; =0x04000052
+ strh r1, [r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022186D0: .word 0x04000052
+
+ thumb_func_start MOD08_022186D4
+MOD08_022186D4: ; 0x022186D4
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, sp, #8
+ mov r5, #0x10
+ ldrsh r5, [r6, r5]
+ add r4, r0, #0
+ str r5, [sp]
+ ldr r5, [sp, #0x1c]
+ lsl r5, r5, #0x10
+ lsr r5, r5, #0x10
+ str r5, [sp, #4]
+ bl MOD08_02217E80
+ mov r2, #0
+ ldr r0, _02218700 ; =MOD08_0221868C
+ add r1, r4, #0
+ str r2, [r4, #0x24]
+ bl FUN_0200CA44
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_02218700: .word MOD08_0221868C
+
+ thumb_func_start MOD08_02218704
+MOD08_02218704: ; 0x02218704
+ ldr r0, [r0, #0x24]
+ bx lr
+
+ thumb_func_start MOD08_02218708
+MOD08_02218708: ; 0x02218708
+ push {r3, lr}
+ ldr r0, [r1, #8]
+ cmp r0, #0
+ beq _0221871C
+ mov r0, #1
+ str r0, [r1, #0xc]
+ ldr r0, [r1, #0x18]
+ ldr r1, [r1, #0x10]
+ blx r1
+ pop {r3, pc}
+_0221871C:
+ bl FUN_020129C8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218724
+MOD08_02218724: ; 0x02218724
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _0221873E
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0221873E
+ ldr r0, [r4, #0x18]
+ ldr r1, [r4, #0x14]
+ blx r1
+ mov r0, #0
+ str r0, [r4, #0xc]
+_0221873E:
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02218740
+MOD08_02218740: ; 0x02218740
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ cmp r5, #0
+ bne _02218752
+ bl ErrorHandling
+_02218752:
+ mov r0, #1
+ str r0, [r5, #8]
+ mov r2, #0
+ str r2, [r5, #0xc]
+ str r4, [r5, #0x18]
+ str r6, [r5, #0x10]
+ ldr r0, _02218778 ; =MOD08_02218708
+ str r7, [r5, #0x14]
+ add r1, r5, #0
+ bl FUN_0200CA98
+ str r0, [r5, #4]
+ ldr r0, _0221877C ; =MOD08_02218724
+ add r1, r5, #0
+ mov r2, #0
+ bl FUN_0200CA60
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02218778: .word MOD08_02218708
+_0221877C: .word MOD08_02218724
+
+ thumb_func_start MOD08_02218780
+MOD08_02218780: ; 0x02218780
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221878A
+ bl ErrorHandling
+_0221878A:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02218794
+ bl FUN_0200CAB4
+_02218794:
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0221879E
+ bl FUN_0200CAB4
+_0221879E:
+ bl FUN_020129C8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022187A4
+MOD08_022187A4: ; 0x022187A4
+ push {r4, lr}
+ add r4, r0, #0
+ bne _022187AE
+ bl ErrorHandling
+_022187AE:
+ mov r0, #0
+ str r0, [r4, #8]
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022187B4
+MOD08_022187B4: ; 0x022187B4
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0201299C
+ add r5, r0, #0
+ bl FUN_020129C8
+ mov r1, #0x62
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #4
+ mov r3, #1
+ bl FUN_020129D8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022187D8
+MOD08_022187D8: ; 0x022187D8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_020129B4
+ add r0, r4, #0
+ bl MOD08_022187B4
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022187EC
+MOD08_022187EC: ; 0x022187EC
+ ldr r3, _022187F0 ; =MOD08_022187B4
+ bx r3
+ .align 2, 0
+_022187F0: .word MOD08_022187B4
+
+ thumb_func_start MOD08_022187F4
+MOD08_022187F4: ; 0x022187F4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r7, r2, #0
+ add r5, r0, #0
+ ldr r1, _02218864 ; =0x00000624
+ add r0, r7, #0
+ bl AllocFromHeap
+ ldr r2, _02218864 ; =0x00000624
+ mov r1, #0
+ add r4, r0, #0
+ bl memset
+ cmp r4, #0
+ bne _02218816
+ bl ErrorHandling
+_02218816:
+ mov r2, #0x32
+ add r1, r4, #0
+ lsl r2, r2, #4
+ add r0, r7, #0
+ add r1, #0x20
+ add r2, r4, r2
+ bl FUN_02012944
+ str r0, [r4, #0x1c]
+ cmp r0, #0
+ bne _02218830
+ bl ErrorHandling
+_02218830:
+ mov r0, #0x62
+ lsl r0, r0, #4
+ add r1, r4, #0
+ mov r2, #3
+ str r5, [r4, r0]
+ add r0, r6, #0
+ add r1, #0x20
+ lsl r2, r2, #8
+ bl MIi_CpuClear32
+ mov r2, #0x32
+ lsl r2, r2, #4
+ add r1, r4, r2
+ add r0, r6, #0
+ sub r2, #0x20
+ bl MIi_CpuClear32
+ ldr r2, _02218868 ; =MOD08_022187D8
+ ldr r3, _0221886C ; =MOD08_022187EC
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD08_02218740
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02218864: .word 0x00000624
+_02218868: .word MOD08_022187D8
+_0221886C: .word MOD08_022187EC
+
+ thumb_func_start MOD08_02218870
+MOD08_02218870: ; 0x02218870
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221887A
+ bl ErrorHandling
+_0221887A:
+ add r0, r4, #0
+ bl MOD08_02218780
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _0221888A
+ bl FUN_02012974
+_0221888A:
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218894
+MOD08_02218894: ; 0x02218894
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221889E
+ bl ErrorHandling
+_0221889E:
+ ldr r0, [r4, #0x1c]
+ bl FUN_02012988
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022188A8
+MOD08_022188A8: ; 0x022188A8
+ push {r4, lr}
+ add r4, r0, #0
+ bne _022188B2
+ bl ErrorHandling
+_022188B2:
+ add r0, r4, #0
+ bl MOD08_022187A4
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022188BC
+MOD08_022188BC: ; 0x022188BC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_02012B30
+ ldr r0, [r4, #0x1c]
+ bl FUN_02012B68
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022188D0
+MOD08_022188D0: ; 0x022188D0
+ ldr r3, _022188D8 ; =FUN_02012B68
+ ldr r0, [r0, #0x1c]
+ bx r3
+ nop
+_022188D8: .word FUN_02012B68
+
+ thumb_func_start MOD08_022188DC
+MOD08_022188DC: ; 0x022188DC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r7, r0, #0
+ str r1, [sp, #0x14]
+ ldr r0, [sp, #0x40]
+ mov r1, #0x20
+ str r2, [sp, #0x18]
+ add r5, r3, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _022188F8
+ bl ErrorHandling
+_022188F8:
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x20
+ bl memset
+ ldr r0, [sp, #0x34]
+ bl MOD08_022189A0
+ add r6, r0, #0
+ ldr r0, [sp, #0x40]
+ bl FUN_02012A00
+ str r0, [r4, #0x1c]
+ str r5, [sp]
+ add r1, sp, #0x20
+ mov r0, #0x10
+ ldrsh r0, [r1, r0]
+ add r1, r7, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x3c]
+ str r6, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x38]
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x1c]
+ ldr r2, [sp, #0x14]
+ ldr r3, [sp, #0x18]
+ bl FUN_02012A30
+ ldr r2, _02218944 ; =MOD08_022188BC
+ ldr r3, _02218948 ; =MOD08_022188D0
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD08_02218740
+ add r0, r4, #0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02218944: .word MOD08_022188BC
+_02218948: .word MOD08_022188D0
+
+ thumb_func_start MOD08_0221894C
+MOD08_0221894C: ; 0x0221894C
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02218956
+ bl ErrorHandling
+_02218956:
+ add r0, r4, #0
+ bl MOD08_02218780
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _02218966
+ bl FUN_02012B00
+_02218966:
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218970
+MOD08_02218970: ; 0x02218970
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221897A
+ bl ErrorHandling
+_0221897A:
+ ldr r0, [r4, #0x1c]
+ bl FUN_02012B20
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218984
+MOD08_02218984: ; 0x02218984
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221898E
+ bl ErrorHandling
+_0221898E:
+ add r0, r4, #0
+ bl MOD08_022187A4
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218998
+MOD08_02218998: ; 0x02218998
+ lsl r1, r1, #0x10
+ orr r0, r1
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022189A0
+MOD08_022189A0: ; 0x022189A0
+ cmp r0, #3
+ bhi _022189C6
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022189B0: ; jump table
+ .short _022189B8 - _022189B0 - 2 ; case 0
+ .short _022189BC - _022189B0 - 2 ; case 1
+ .short _022189C0 - _022189B0 - 2 ; case 2
+ .short _022189C4 - _022189B0 - 2 ; case 3
+_022189B8:
+ ldr r0, _022189C8 ; =0x04000010
+ bx lr
+_022189BC:
+ ldr r0, _022189CC ; =0x04000014
+ bx lr
+_022189C0:
+ ldr r0, _022189D0 ; =0x04000018
+ bx lr
+_022189C4:
+ ldr r0, _022189D4 ; =0x0400001C
+_022189C6:
+ bx lr
+ .align 2, 0
+_022189C8: .word 0x04000010
+_022189CC: .word 0x04000014
+_022189D0: .word 0x04000018
+_022189D4: .word 0x0400001C
+
+ thumb_func_start MOD08_022189D8
+MOD08_022189D8: ; 0x022189D8
+ add r2, r0, r2
+ lsr r0, r2, #0x1f
+ add r0, r2, r0
+ asr r2, r0, #1
+ ldr r0, [sp]
+ add r1, r1, r3
+ strh r2, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r1, r0, #1
+ ldr r0, [sp, #4]
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022189F4
+MOD08_022189F4: ; 0x022189F4
+ push {r3, lr}
+ sub r1, r1, r3
+ neg r1, r1
+ sub r0, r0, r2
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ asr r1, r1, #0x10
+ add r2, r1, #0
+ asr r0, r0, #0x10
+ mul r2, r1
+ add r1, r0, #0
+ mul r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #0xc
+ bl FX_Sqrt
+ ldr r1, [sp, #8]
+ str r0, [r1]
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218A1C
+MOD08_02218A1C: ; 0x02218A1C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ sub r0, r1, r3
+ neg r0, r0
+ lsl r0, r0, #0x10
+ sub r1, r6, r2
+ asr r4, r0, #0x10
+ lsl r1, r1, #0x10
+ ldr r5, [sp, #0x10]
+ lsl r0, r4, #0xc
+ asr r1, r1, #4
+ bl FX_Atan2
+ strh r0, [r5]
+ ldrh r1, [r5]
+ cmp r1, #0
+ beq _02218A4C
+ cmp r4, #0
+ bge _02218A4C
+ ldr r0, _02218A50 ; =0x00007FFF
+ sub r1, r1, r0
+ ldr r0, _02218A54 ; =0x0000FFFF
+ mul r0, r1
+ strh r0, [r5]
+_02218A4C:
+ pop {r4, r5, r6, pc}
+ nop
+_02218A50: .word 0x00007FFF
+_02218A54: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02218A58
+MOD08_02218A58: ; 0x02218A58
+ cmp r2, #0
+ ldr r3, [r0]
+ bge _02218A70
+ add r2, r3, r2
+ cmp r2, r1
+ ble _02218A6A
+ str r2, [r0]
+ mov r0, #0
+ bx lr
+_02218A6A:
+ str r1, [r0]
+ mov r0, #1
+ bx lr
+_02218A70:
+ add r2, r3, r2
+ cmp r2, r1
+ bge _02218A7C
+ str r2, [r0]
+ mov r0, #0
+ bx lr
+_02218A7C:
+ str r1, [r0]
+ mov r0, #1
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02218A84
+MOD08_02218A84: ; 0x02218A84
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _02218AF4
+ mov r0, #0x17
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, #0x17]
+ ldrsb r1, [r4, r0]
+ mov r0, #0x16
+ ldrsb r0, [r4, r0]
+ cmp r1, r0
+ blt _02218AF4
+ mov r0, #0
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0x14]
+ str r0, [sp]
+ ldrh r0, [r4, #0x10]
+ str r0, [sp, #4]
+ ldrh r2, [r4, #0xc]
+ ldrh r3, [r4, #0xe]
+ ldr r0, [r4, #0x18]
+ ldr r1, [r4, #8]
+ bl FUN_020039E8
+ ldrb r3, [r4, #0x13]
+ ldrb r1, [r4, #0x14]
+ cmp r1, r3
+ bne _02218ACA
+ mov r0, #0
+ add sp, #8
+ str r0, [r4]
+ pop {r4, pc}
+_02218ACA:
+ mov r0, #0x15
+ ldrsb r2, [r4, r0]
+ add r1, r1, r2
+ lsl r0, r1, #0x18
+ asr r0, r0, #0x18
+ cmp r2, #0
+ ble _02218AE8
+ cmp r0, r3
+ ble _02218AE2
+ add sp, #8
+ strb r3, [r4, #0x14]
+ pop {r4, pc}
+_02218AE2:
+ add sp, #8
+ strb r1, [r4, #0x14]
+ pop {r4, pc}
+_02218AE8:
+ cmp r0, r3
+ bge _02218AF2
+ add sp, #8
+ strb r3, [r4, #0x14]
+ pop {r4, pc}
+_02218AF2:
+ strb r1, [r4, #0x14]
+_02218AF4:
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02218AF8
+MOD08_02218AF8: ; 0x02218AF8
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02218B02
+ bl ErrorHandling
+_02218B02:
+ ldr r0, [r4]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218B08
+MOD08_02218B08: ; 0x02218B08
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02218B12
+ bl ErrorHandling
+_02218B12:
+ ldr r0, [r4, #4]
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02218B20
+MOD08_02218B20: ; 0x02218B20
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ mov r1, #0x1c
+ add r6, r2, #0
+ add r7, r3, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _02218B38
+ bl ErrorHandling
+_02218B38:
+ str r5, [r4, #0x18]
+ str r6, [r4, #8]
+ strh r7, [r4, #0xc]
+ add r1, sp, #8
+ ldrh r0, [r1, #0x10]
+ strh r0, [r4, #0xe]
+ ldrh r0, [r1, #0x24]
+ strh r0, [r4, #0x10]
+ ldrb r2, [r1, #0x1c]
+ add r0, sp, #0x28
+ ldrb r0, [r0]
+ strb r2, [r4, #0x12]
+ strb r0, [r4, #0x13]
+ strb r2, [r4, #0x14]
+ mov r0, #0x14
+ ldrsb r0, [r1, r0]
+ strb r0, [r4, #0x16]
+ strb r0, [r4, #0x17]
+ ldrb r2, [r4, #0x12]
+ ldrb r0, [r4, #0x13]
+ cmp r2, r0
+ bhs _02218B6A
+ mov r0, #0x18
+ ldrsb r0, [r1, r0]
+ b _02218B70
+_02218B6A:
+ mov r0, #0x18
+ ldrsb r0, [r1, r0]
+ neg r0, r0
+_02218B70:
+ strb r0, [r4, #0x15]
+ mov r0, #1
+ str r0, [r4]
+ ldr r0, _02218B88 ; =MOD08_02218A84
+ ldr r2, [sp, #0x30]
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #4]
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02218B88: .word MOD08_02218A84
+
+ thumb_func_start MOD08_02218B8C
+MOD08_02218B8C: ; 0x02218B8C
+ push {r4, r5, r6, r7}
+ mov r7, #0
+ cmp r1, #0
+ ble _02218BCE
+ mov r2, #0x97
+_02218B96:
+ ldrh r6, [r0]
+ mov r3, #0x1f
+ add r7, r7, #1
+ asr r4, r6, #0xa
+ and r4, r3
+ add r5, r4, #0
+ mov r3, #0x1d
+ mul r5, r3
+ mov r3, #0x1f
+ and r3, r6
+ mov r4, #0x4c
+ mul r4, r3
+ asr r6, r6, #5
+ mov r3, #0x1f
+ and r3, r6
+ add r6, r3, #0
+ mul r6, r2
+ add r3, r4, r6
+ add r3, r5, r3
+ asr r5, r3, #8
+ lsl r4, r5, #0xa
+ lsl r3, r5, #5
+ orr r3, r4
+ orr r3, r5
+ strh r3, [r0]
+ add r0, r0, #2
+ cmp r7, r1
+ blt _02218B96
+_02218BCE:
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02218BD4
+MOD08_02218BD4: ; 0x02218BD4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_02215504
+ mov r1, #0
+ bl FUN_02003204
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02218BF8
+ add r0, r4, #0
+ mov r1, #0x30
+ bl MOD08_02218B8C
+ pop {r3, r4, r5, pc}
+_02218BF8:
+ add r0, r4, #0
+ mov r1, #0x80
+ bl MOD08_02218B8C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218C04
+MOD08_02218C04: ; 0x02218C04
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl MOD08_02215504
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02218C30
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x60
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020031B8
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02218C30:
+ mov r1, #0
+ mov r0, #1
+ str r1, [sp]
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020031B8
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02218C48
+MOD08_02218C48: ; 0x02218C48
+ cmp r0, #0x54
+ blo _02218C50
+ mov r0, #0
+ bx lr
+_02218C50:
+ lsl r1, r0, #2
+ ldr r0, _02218C58 ; =0x0222C384
+ ldr r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_02218C58: .word 0x0222C384
+
+ thumb_func_start MOD08_02218C5C
+MOD08_02218C5C: ; 0x02218C5C
+ cmp r0, #0x21
+ blo _02218C64
+ mov r0, #0
+ bx lr
+_02218C64:
+ lsl r1, r0, #2
+ ldr r0, _02218C6C ; =0x0222C300
+ ldr r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_02218C6C: .word 0x0222C300
+
+ thumb_func_start MOD08_02218C70
+MOD08_02218C70: ; 0x02218C70
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02218C74
+MOD08_02218C74: ; 0x02218C74
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _02218C86
+ cmp r0, #1
+ beq _02218C8C
+ pop {r4, pc}
+_02218C86:
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, pc}
+_02218C8C:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02218C9C
+MOD08_02218C9C: ; 0x02218C9C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r2, r0, #0
+ mov r0, #0
+ strb r0, [r2]
+ mov r3, #1
+ ldr r1, _02218CC0 ; =MOD08_02218C74
+ add r0, r4, #0
+ lsl r3, r3, #0xc
+ str r4, [r2, #4]
+ bl MOD08_022123E4
+ pop {r4, pc}
+ nop
+_02218CC0: .word MOD08_02218C74
+
+ thumb_func_start MOD08_02218CC4
+MOD08_02218CC4: ; 0x02218CC4
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _02218CD6
+ cmp r0, #1
+ beq _02218CDC
+ pop {r4, pc}
+_02218CD6:
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, pc}
+_02218CDC:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212448
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02218CEC
+MOD08_02218CEC: ; 0x02218CEC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r2, r0, #0
+ mov r0, #0
+ strb r0, [r2]
+ mov r3, #1
+ ldr r1, _02218D10 ; =MOD08_02218CC4
+ add r0, r4, #0
+ lsl r3, r3, #0xc
+ str r4, [r2, #4]
+ bl MOD08_0221241C
+ pop {r4, pc}
+ nop
+_02218D10: .word MOD08_02218CC4
+
+ thumb_func_start MOD08_02218D14
+MOD08_02218D14: ; 0x02218D14
+ push {r4, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ cmp r1, #0
+ beq _02218D24
+ cmp r1, #1
+ beq _02218D2A
+ pop {r4, pc}
+_02218D24:
+ add r0, r1, #1
+ strb r0, [r4]
+ pop {r4, pc}
+_02218D2A:
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218D38
+MOD08_02218D38: ; 0x02218D38
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r0, #0
+ strb r0, [r1]
+ mov r2, #1
+ ldr r0, _02218D58 ; =MOD08_02218D14
+ lsl r2, r2, #0xc
+ str r4, [r1, #4]
+ bl FUN_0200CA44
+ pop {r4, pc}
+ .align 2, 0
+_02218D58: .word MOD08_02218D14
+
+ thumb_func_start MOD08_02218D5C
+MOD08_02218D5C: ; 0x02218D5C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldrb r0, [r5]
+ cmp r0, #0
+ beq _02218D6E
+ cmp r0, #1
+ beq _02218DB4
+ pop {r4, r5, r6, pc}
+_02218D6E:
+ ldr r0, [r5, #0x14]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldr r0, [r5, #0x18]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldr r0, [r5, #0x1c]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldr r0, [r5, #0x14]
+ mov r1, #1
+ ldr r0, [r0]
+ mov r2, #0
+ bl FUN_0200C7FC
+ ldr r0, [r5, #0x18]
+ mov r1, #0
+ ldr r0, [r0]
+ mvn r1, r1
+ mov r2, #0
+ bl FUN_0200C7FC
+ ldr r0, [r5, #0x1c]
+ mov r1, #1
+ ldr r0, [r0]
+ add r2, r1, #0
+ bl FUN_0200C7FC
+ ldr r0, [r5, #0xc]
+ bl FUN_0200BC1C
+ pop {r4, r5, r6, pc}
+_02218DB4:
+ ldr r0, [r5, #0x10]
+ ldr r4, [r5, #4]
+ bl FUN_0200C3DC
+ add r0, r5, #0
+ bl FreeToHeap
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD08_02212438
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02218DCC
+MOD08_02218DCC: ; 0x02218DCC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r6, r1, #0
+ mov r1, #0x73
+ str r0, [sp]
+ mov r0, #5
+ lsl r1, r1, #2
+ add r7, r2, #0
+ add r5, r3, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _02218DEA
+ bl ErrorHandling
+_02218DEA:
+ mov r0, #0
+ strb r0, [r4]
+ str r6, [r4, #8]
+ str r7, [r4, #0xc]
+ ldr r0, [sp]
+ str r5, [r4, #0x10]
+ str r0, [r4, #4]
+ ldr r1, [sp]
+ add r0, sp, #4
+ bl MOD08_02215474
+ str r5, [r4, #0x14]
+ mov r6, #1
+ add r5, r4, #4
+ add r7, sp, #4
+_02218E08:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ add r2, r7, #0
+ bl FUN_0200C154
+ str r0, [r5, #0x14]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #3
+ blt _02218E08
+ mov r3, #1
+ ldr r0, [sp]
+ ldr r1, _02218E30 ; =MOD08_02218D5C
+ add r2, r4, #0
+ lsl r3, r3, #0xc
+ bl MOD08_022123E4
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02218E30: .word MOD08_02218D5C
+
+ thumb_func_start MOD08_02218E34
+MOD08_02218E34: ; 0x02218E34
+ push {r4, lr}
+ mov r1, #0xc
+ add r2, r1, #0
+ add r2, #0xf4
+ add r4, r0, #0
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf3
+ bl FUN_02007558
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02218E50
+MOD08_02218E50: ; 0x02218E50
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r5, #4]
+ cmp r0, #0
+ beq _02218E62
+ cmp r0, #1
+ beq _02218E84
+ b _02218F4E
+_02218E62:
+ mov r0, #0x26
+ ldrsh r0, [r5, r0]
+ mov r1, #0x20
+ mov r2, #0x22
+ str r0, [sp]
+ mov r3, #0x24
+ add r0, r5, #0
+ ldrsh r1, [r5, r1]
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ add r0, #0x7c
+ bl MOD08_022183C0
+ ldrb r0, [r5, #4]
+ add r0, r0, #1
+ strb r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02218E84:
+ add r0, r5, #0
+ add r0, #0x7c
+ bl MOD08_022183F0
+ cmp r0, #0
+ bne _02218E98
+ ldrb r0, [r5, #4]
+ add r0, r0, #1
+ strb r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02218E98:
+ ldr r2, [r5, #0x28]
+ mov r1, #1
+ lsl r1, r1, #8
+ add r0, r2, #0
+ and r0, r1
+ cmp r0, r1
+ bne _02218EE4
+ ldr r0, [r5]
+ mov r6, #0
+ cmp r0, #0
+ ble _02218F32
+ add r4, r5, #0
+ mov r7, #0x32
+_02218EB2:
+ ldr r0, [r4, #0x34]
+ cmp r0, #0
+ beq _02218ED8
+ mov r2, #0x7c
+ mov r3, #0x30
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r4, r3]
+ mov r1, #0
+ add r2, r2, r3
+ bl FUN_02007558
+ mov r2, #0x7e
+ ldrsh r3, [r5, r2]
+ ldrsh r2, [r4, r7]
+ ldr r0, [r4, #0x34]
+ mov r1, #1
+ add r2, r3, r2
+ bl FUN_02007558
+_02218ED8:
+ ldr r0, [r5]
+ add r6, r6, #1
+ add r4, #0x14
+ cmp r6, r0
+ blt _02218EB2
+ b _02218F32
+_02218EE4:
+ lsl r0, r1, #1
+ and r2, r0
+ cmp r2, r0
+ bne _02218F32
+ ldr r0, [r5]
+ mov r6, #0
+ cmp r0, #0
+ ble _02218F2C
+ add r4, r5, #0
+ mov r7, #0x32
+_02218EF8:
+ ldr r0, [r4, #0x38]
+ cmp r0, #0
+ beq _02218F22
+ mov r1, #0x7c
+ mov r2, #0x30
+ ldrsh r1, [r5, r1]
+ ldrsh r2, [r4, r2]
+ add r1, r1, r2
+ mov r2, #0x7e
+ ldrsh r3, [r5, r2]
+ ldrsh r2, [r4, r7]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r0, [r4, #0x38]
+ bl FUN_0200C5A8
+_02218F22:
+ ldr r0, [r5]
+ add r6, r6, #1
+ add r4, #0x14
+ cmp r6, r0
+ blt _02218EF8
+_02218F2C:
+ ldr r0, [r5, #0x10]
+ bl FUN_0200BC1C
+_02218F32:
+ mov r0, #1
+ ldr r1, [r5, #0x28]
+ lsl r0, r0, #0xa
+ and r1, r0
+ cmp r1, r0
+ bne _02218F5C
+ mov r3, #0x7c
+ ldrsh r3, [r5, r3]
+ ldr r0, [r5, #0x18]
+ mov r1, #3
+ mov r2, #0
+ bl FUN_020179E0
+ pop {r3, r4, r5, r6, r7, pc}
+_02218F4E:
+ ldr r0, [r5, #8]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FreeToHeap
+_02218F5C:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218F60
+MOD08_02218F60: ; 0x02218F60
+ push {r3, r4, r5, lr}
+ mov r1, #0xa0
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #4
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ strh r0, [r4, #0x20]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0x22]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ strh r0, [r4, #0x24]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #0x26]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ mov r2, #1
+ lsl r2, r2, #8
+ str r0, [r4, #0x28]
+ add r1, r0, #0
+ and r0, r2
+ cmp r0, r2
+ bne _02218FC0
+ add r2, r4, #0
+ add r0, r5, #0
+ add r2, #0x2c
+ add r3, r4, #0
+ bl MOD08_02227BAC
+ b _02218FD6
+_02218FC0:
+ lsl r0, r2, #1
+ add r3, r1, #0
+ and r3, r0
+ cmp r3, r0
+ bne _02218FD6
+ add r2, r4, #0
+ add r0, r5, #0
+ add r2, #0x2c
+ add r3, r4, #0
+ bl MOD08_02227F88
+_02218FD6:
+ ldr r0, [r4, #8]
+ ldr r1, _02218FE4 ; =MOD08_02218E50
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_02218FE4: .word MOD08_02218E50
+
+ thumb_func_start MOD08_02218FE8
+MOD08_02218FE8: ; 0x02218FE8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #3
+ bhi _022190B2
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02219000: ; jump table
+ .short _02219008 - _02219000 - 2 ; case 0
+ .short _02219026 - _02219000 - 2 ; case 1
+ .short _02219068 - _02219000 - 2 ; case 2
+ .short _02219074 - _02219000 - 2 ; case 3
+_02219008:
+ ldrh r0, [r4, #0x18]
+ mov r1, #4
+ mov r2, #0x39
+ str r0, [sp]
+ ldrh r3, [r4, #0x16]
+ ldr r0, _02219154 ; =0x04000050
+ bl G2x_SetBlendAlpha_
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ ldrb r0, [r4, #0x1c]
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+_02219026:
+ ldrh r1, [r4, #8]
+ ldrh r2, [r4, #0x16]
+ mov r0, #0
+ sub r1, r1, #2
+ cmp r2, r1
+ bge _02219038
+ add r1, r2, #2
+ strh r1, [r4, #0x16]
+ b _0221903A
+_02219038:
+ add r0, r0, #1
+_0221903A:
+ ldrh r1, [r4, #0x18]
+ cmp r1, #9
+ bls _02219046
+ sub r1, r1, #2
+ strh r1, [r4, #0x18]
+ b _02219048
+_02219046:
+ add r0, r0, #1
+_02219048:
+ cmp r0, #2
+ bne _0221905A
+ ldrh r0, [r4, #8]
+ strh r0, [r4, #0x16]
+ mov r0, #7
+ strh r0, [r4, #0x18]
+ ldrb r0, [r4, #0x1c]
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+_0221905A:
+ ldrh r0, [r4, #0x18]
+ ldrh r1, [r4, #0x16]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02219158 ; =0x04000052
+ strh r1, [r0]
+ b _022190CA
+_02219068:
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ beq _022190CA
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+ b _022190CA
+_02219074:
+ ldrh r0, [r4, #0x16]
+ mov r1, #0
+ cmp r0, #2
+ bls _02219082
+ sub r0, r0, #2
+ strh r0, [r4, #0x16]
+ b _02219084
+_02219082:
+ add r1, r1, #1
+_02219084:
+ ldrh r0, [r4, #0x18]
+ cmp r0, #0x1d
+ bhs _02219090
+ add r0, r0, #2
+ strh r0, [r4, #0x18]
+ b _02219092
+_02219090:
+ add r1, r1, #1
+_02219092:
+ cmp r1, #2
+ bne _022190A4
+ mov r0, #0
+ strh r0, [r4, #0x16]
+ mov r0, #0x1f
+ strh r0, [r4, #0x18]
+ ldrb r0, [r4, #0x1c]
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+_022190A4:
+ ldrh r0, [r4, #0x18]
+ ldrh r1, [r4, #0x16]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02219158 ; =0x04000052
+ strh r1, [r0]
+ b _022190CA
+_022190B2:
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201797C
+ ldr r0, [r4, #0x20]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+_022190CA:
+ mov r1, #0x10
+ ldrsh r3, [r4, r1]
+ cmp r3, #0
+ ble _022190DC
+ mov r0, #0xc
+ ldrsh r2, [r4, r0]
+ lsl r0, r1, #5
+ cmp r2, r0
+ bge _022190EA
+_022190DC:
+ cmp r3, #0
+ bge _022190EE
+ mov r0, #0xc
+ ldrsh r1, [r4, r0]
+ ldr r0, _0221915C ; =0xFFFFFE64
+ cmp r1, r0
+ bgt _022190EE
+_022190EA:
+ mov r0, #1
+ str r0, [r4, #4]
+_022190EE:
+ mov r0, #0xa
+ ldrsh r1, [r4, r0]
+ mov r0, #0xe
+ ldrsh r0, [r4, r0]
+ add r0, r1, r0
+ strh r0, [r4, #0xa]
+ mov r0, #0xc
+ ldrsh r2, [r4, r0]
+ mov r0, #0x10
+ ldrsh r1, [r4, r0]
+ add r1, r2, r1
+ strh r1, [r4, #0xc]
+ ldrh r2, [r4, #0x12]
+ ldrh r1, [r4, #0x14]
+ cmp r2, r1
+ bhs _02219132
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _02219118
+ add r0, r0, #1
+ b _0221911A
+_02219118:
+ mov r0, #0
+_0221911A:
+ strh r0, [r4, #0x10]
+ mov r0, #0xe
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _02219128
+ add r0, r0, #1
+ b _0221912A
+_02219128:
+ mov r0, #0
+_0221912A:
+ strh r0, [r4, #0xe]
+ mov r0, #0
+ strh r0, [r4, #0x14]
+ b _02219136
+_02219132:
+ add r0, r1, #1
+ strh r0, [r4, #0x14]
+_02219136:
+ mov r3, #0xa
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #3
+ bl FUN_020179E0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02219154: .word 0x04000050
+_02219158: .word 0x04000052
+_0221915C: .word 0xFFFFFE64
+
+ thumb_func_start MOD08_02219160
+MOD08_02219160: ; 0x02219160
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r1, #0xb8
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x1c
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0xa]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ strh r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #0xe]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strh r0, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ strh r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #7
+ bl MOD08_02212498
+ strh r0, [r4, #0x12]
+ mov r0, #0
+ strh r0, [r4, #0x14]
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0221920C
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _0221920C
+ mov r0, #0xa
+ ldrsh r1, [r4, r0]
+ sub r0, #0xb
+ mul r0, r1
+ strh r0, [r4, #0xa]
+ mov r1, #0xc
+ add r0, r1, #0
+ ldrsh r2, [r4, r1]
+ sub r0, #0xd
+ mul r0, r2
+ strh r0, [r4, #0xc]
+ mov r0, #0xe
+ ldrsh r2, [r4, r0]
+ sub r0, #0xf
+ mul r0, r2
+ strh r0, [r4, #0xe]
+ mov r0, #0x10
+ ldrsh r2, [r4, r0]
+ sub r0, #0x11
+ mul r0, r2
+ strh r0, [r4, #0x10]
+ ldrsh r0, [r4, r1]
+ sub r0, #0x54
+ strh r0, [r4, #0xc]
+ b _02219214
+_0221920C:
+ mov r0, #0xc
+ ldrsh r0, [r4, r0]
+ add r0, #0x54
+ strh r0, [r4, #0xc]
+_02219214:
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02219228
+ mov r0, #0xe
+ ldrsh r1, [r4, r0]
+ sub r0, #0xf
+ mul r0, r1
+ strh r0, [r4, #0xe]
+_02219228:
+ mov r1, #0
+ strh r1, [r4, #0x16]
+ mov r0, #0x1f
+ strh r0, [r4, #0x18]
+ mov r0, #2
+ str r1, [r4, #4]
+ bl FUN_0201797C
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ mov r1, #0
+ add r7, r0, #0
+ bl MOD08_022156AC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x30]
+ mov r0, #7
+ add r1, r6, #0
+ mov r3, #2
+ bl FUN_0200687C
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD08_022156AC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x90
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x34]
+ mov r1, #7
+ add r2, r6, #0
+ bl FUN_020030E8
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_02018744
+ add r0, r5, #0
+ mov r6, #2
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022192A8
+ mov r6, #4
+ b _022192BC
+_022192A8:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _022192BC
+ mov r6, #3
+_022192BC:
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD08_022156AC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x30]
+ mov r0, #7
+ add r1, r6, #0
+ mov r3, #2
+ bl FUN_020068C8
+ mov r3, #0xa
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #3
+ bl FUN_020179E0
+ ldr r0, [r4, #0x20]
+ ldr r1, _02219310 ; =MOD08_02218FE8
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02219310: .word MOD08_02218FE8
+
+ thumb_func_start MOD08_02219314
+MOD08_02219314: ; 0x02219314
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #3
+ bhi _022193DA
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221932C: ; jump table
+ .short _02219334 - _0221932C - 2 ; case 0
+ .short _02219352 - _0221932C - 2 ; case 1
+ .short _02219390 - _0221932C - 2 ; case 2
+ .short _0221939C - _0221932C - 2 ; case 3
+_02219334:
+ ldrh r0, [r4, #0x18]
+ mov r1, #4
+ mov r2, #0x39
+ str r0, [sp]
+ ldrh r3, [r4, #0x16]
+ ldr r0, _0221947C ; =0x04000050
+ bl G2x_SetBlendAlpha_
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ ldrb r0, [r4, #0x1c]
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+_02219352:
+ ldrh r0, [r4, #0x16]
+ mov r1, #0
+ cmp r0, #0x10
+ bhs _02219360
+ add r0, r0, #2
+ strh r0, [r4, #0x16]
+ b _02219362
+_02219360:
+ add r1, r1, #1
+_02219362:
+ ldrh r0, [r4, #0x18]
+ cmp r0, #4
+ bls _0221936E
+ sub r0, r0, #2
+ strh r0, [r4, #0x18]
+ b _02219370
+_0221936E:
+ add r1, r1, #1
+_02219370:
+ cmp r1, #2
+ bne _02219382
+ mov r0, #0x10
+ strh r0, [r4, #0x16]
+ mov r0, #4
+ strh r0, [r4, #0x18]
+ ldrb r0, [r4, #0x1c]
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+_02219382:
+ ldrh r0, [r4, #0x18]
+ ldrh r1, [r4, #0x16]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02219480 ; =0x04000052
+ strh r1, [r0]
+ b _022193F2
+_02219390:
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ beq _022193F2
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+ b _022193F2
+_0221939C:
+ ldrh r0, [r4, #0x16]
+ mov r1, #0
+ cmp r0, #2
+ bls _022193AA
+ sub r0, r0, #2
+ strh r0, [r4, #0x16]
+ b _022193AC
+_022193AA:
+ add r1, r1, #1
+_022193AC:
+ ldrh r0, [r4, #0x18]
+ cmp r0, #0x10
+ bhs _022193B8
+ add r0, r0, #2
+ strh r0, [r4, #0x18]
+ b _022193BA
+_022193B8:
+ add r1, r1, #1
+_022193BA:
+ cmp r1, #2
+ bne _022193CC
+ mov r0, #0
+ strh r0, [r4, #0x16]
+ mov r0, #0x1f
+ strh r0, [r4, #0x18]
+ ldrb r0, [r4, #0x1c]
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+_022193CC:
+ ldrh r0, [r4, #0x18]
+ ldrh r1, [r4, #0x16]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02219480 ; =0x04000052
+ strh r1, [r0]
+ b _022193F2
+_022193DA:
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201797C
+ ldr r0, [r4, #0x20]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+_022193F2:
+ mov r1, #0x10
+ ldrsh r3, [r4, r1]
+ cmp r3, #0
+ ble _02219404
+ mov r0, #0xc
+ ldrsh r2, [r4, r0]
+ lsl r0, r1, #5
+ cmp r2, r0
+ bge _02219412
+_02219404:
+ cmp r3, #0
+ bge _02219416
+ mov r0, #0xc
+ ldrsh r1, [r4, r0]
+ ldr r0, _02219484 ; =0xFFFFFE64
+ cmp r1, r0
+ bgt _02219416
+_02219412:
+ mov r0, #1
+ str r0, [r4, #4]
+_02219416:
+ mov r0, #0xa
+ ldrsh r1, [r4, r0]
+ mov r0, #0xe
+ ldrsh r0, [r4, r0]
+ add r0, r1, r0
+ strh r0, [r4, #0xa]
+ mov r0, #0xc
+ ldrsh r2, [r4, r0]
+ mov r0, #0x10
+ ldrsh r1, [r4, r0]
+ add r1, r2, r1
+ strh r1, [r4, #0xc]
+ ldrh r2, [r4, #0x12]
+ ldrh r1, [r4, #0x14]
+ cmp r2, r1
+ bhs _0221945A
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _02219440
+ add r0, r0, #1
+ b _02219442
+_02219440:
+ mov r0, #0
+_02219442:
+ strh r0, [r4, #0x10]
+ mov r0, #0xe
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _02219450
+ add r0, r0, #1
+ b _02219452
+_02219450:
+ mov r0, #0
+_02219452:
+ strh r0, [r4, #0xe]
+ mov r0, #0
+ strh r0, [r4, #0x14]
+ b _0221945E
+_0221945A:
+ add r0, r1, #1
+ strh r0, [r4, #0x14]
+_0221945E:
+ mov r3, #0xa
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #3
+ bl FUN_020179E0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221947C: .word 0x04000050
+_02219480: .word 0x04000052
+_02219484: .word 0xFFFFFE64
+
+ thumb_func_start MOD08_02219488
+MOD08_02219488: ; 0x02219488
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r1, #0xb8
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x1c
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0xa]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ strh r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #0xe]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strh r0, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ strh r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #7
+ bl MOD08_02212498
+ strh r0, [r4, #0x12]
+ mov r0, #0
+ strh r0, [r4, #0x14]
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _02219534
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _02219534
+ mov r0, #0xa
+ ldrsh r1, [r4, r0]
+ sub r0, #0xb
+ mul r0, r1
+ strh r0, [r4, #0xa]
+ mov r1, #0xc
+ add r0, r1, #0
+ ldrsh r2, [r4, r1]
+ sub r0, #0xd
+ mul r0, r2
+ strh r0, [r4, #0xc]
+ mov r0, #0xe
+ ldrsh r2, [r4, r0]
+ sub r0, #0xf
+ mul r0, r2
+ strh r0, [r4, #0xe]
+ mov r0, #0x10
+ ldrsh r2, [r4, r0]
+ sub r0, #0x11
+ mul r0, r2
+ strh r0, [r4, #0x10]
+ ldrsh r0, [r4, r1]
+ sub r0, #0x54
+ strh r0, [r4, #0xc]
+ b _0221953C
+_02219534:
+ mov r0, #0xc
+ ldrsh r0, [r4, r0]
+ add r0, #0x54
+ strh r0, [r4, #0xc]
+_0221953C:
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02219550
+ mov r0, #0xe
+ ldrsh r1, [r4, r0]
+ sub r0, #0xf
+ mul r0, r1
+ strh r0, [r4, #0xe]
+_02219550:
+ mov r0, #4
+ strh r0, [r4, #0x16]
+ mov r0, #0x10
+ strh r0, [r4, #0x18]
+ mov r1, #0
+ strh r1, [r4, #0x16]
+ strh r0, [r4, #0x18]
+ mov r0, #2
+ str r1, [r4, #4]
+ bl FUN_0201797C
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ mov r1, #0
+ add r7, r0, #0
+ bl MOD08_022156AC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x30]
+ mov r0, #7
+ add r1, r6, #0
+ mov r3, #2
+ bl FUN_0200687C
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD08_022156AC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x90
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x34]
+ mov r1, #7
+ add r2, r6, #0
+ bl FUN_020030E8
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_02018744
+ add r0, r5, #0
+ mov r6, #2
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022195D6
+ mov r6, #4
+ b _022195EA
+_022195D6:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _022195EA
+ mov r6, #3
+_022195EA:
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD08_022156AC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x30]
+ mov r0, #7
+ add r1, r6, #0
+ mov r3, #2
+ bl FUN_020068C8
+ mov r3, #0xa
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #3
+ bl FUN_020179E0
+ ldr r0, [r4, #0x20]
+ ldr r1, _0221963C ; =MOD08_02219314
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221963C: .word MOD08_02219314
+
+ thumb_func_start MOD08_02219640
+MOD08_02219640: ; 0x02219640
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _02219656
+ cmp r0, #1
+ beq _02219656
+ cmp r0, #2
+ beq _02219688
+ pop {r3, r4, r5, pc}
+_02219656:
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD08_02218058
+ cmp r0, #1
+ bne _02219672
+ ldr r2, [r4, #0xc]
+ ldr r0, [r4, #8]
+ lsl r2, r2, #0x10
+ mov r1, #9
+ lsr r2, r2, #0x10
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_02219672:
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ ldr r2, [r4, #0x20]
+ ldr r3, [r4, #0x24]
+ add r0, #0xc
+ bl MOD08_02218008
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02219688:
+ ldr r0, [r4, #8]
+ mov r1, #0xa
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ mov r1, #0xb
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ mov r1, #9
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022196B8
+MOD08_022196B8: ; 0x022196B8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x2c
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ str r5, [r4, #4]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #0x24]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #0x20]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ add r7, r0, #0
+ beq _022196F2
+ cmp r7, #2
+ bne _022196FC
+_022196F2:
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ str r0, [sp]
+ b _02219704
+_022196FC:
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ str r0, [sp]
+_02219704:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r2, r0, #0
+ add r0, r4, #0
+ ldr r1, [r4, #0x20]
+ ldr r3, [r4, #0x24]
+ add r0, #0xc
+ bl MOD08_02218008
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD08_02217C1C
+ add r6, r0, #0
+ ldr r0, [r4, #0x14]
+ add r1, r0, #0
+ mul r1, r6
+ str r1, [r4, #0x14]
+ cmp r7, #2
+ bne _02219736
+ mov r0, #0
+ mvn r0, r0
+ mul r6, r0
+_02219736:
+ ldr r0, [r4, #4]
+ ldr r1, [sp]
+ bl MOD08_022154D4
+ str r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ cmp r0, #1
+ bne _02219760
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strh r0, [r4, #0x28]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ b _02219768
+_02219760:
+ mov r0, #0x28
+ add r1, r6, #0
+ mul r1, r0
+ strh r1, [r4, #0x28]
+_02219768:
+ strh r0, [r4, #0x2a]
+ mov r2, #0x28
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0xa
+ bl FUN_02007558
+ mov r2, #0x2a
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0xb
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ ldr r1, _02219790 ; =MOD08_02219640
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02219790: .word MOD08_02219640
+
+ thumb_func_start MOD08_02219794
+MOD08_02219794: ; 0x02219794
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0x2c
+ mov r2, #0x2e
+ add r5, r0, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x28]
+ add r0, r4, #4
+ bl MOD08_02217E58
+ cmp r0, #0
+ bne _022197E0
+ mov r2, #0x2c
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x2e
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ sub r2, #8
+ bl FUN_02007558
+ ldr r0, [r4, #0x28]
+ mov r1, #9
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_022197E0:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022197E4
+MOD08_022197E4: ; 0x022197E4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x30
+ bl AllocFromHeap
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ str r5, [r4]
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r2, r0, #0
+ add r0, r4, #4
+ add r1, r6, #0
+ bl MOD08_02218654
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ cmp r0, #8
+ bgt _0221982E
+ cmp r0, #2
+ blt _022198A0
+ beq _02219834
+ cmp r0, #4
+ beq _02219850
+ cmp r0, #8
+ beq _02219874
+ b _022198A0
+_0221982E:
+ cmp r0, #0x10
+ beq _02219886
+ b _022198A0
+_02219834:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x28]
+ mov r0, #0
+ ldr r1, [r4, #0x10]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [r4, #0x10]
+ b _022198A4
+_02219850:
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022274C0
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x28]
+ mov r0, #0
+ ldr r1, [r4, #0x10]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [r4, #0x10]
+ b _022198A4
+_02219874:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x28]
+ b _022198A4
+_02219886:
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022274C0
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x28]
+ b _022198A4
+_022198A0:
+ bl ErrorHandling
+_022198A4:
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x2c]
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x2e]
+ mov r0, #0x2e
+ ldrsh r0, [r4, r0]
+ ldr r1, _022198CC ; =MOD08_02219794
+ add r2, r4, #0
+ add r0, #8
+ strh r0, [r4, #0x2e]
+ ldr r0, [r4]
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022198CC: .word MOD08_02219794
+
+ thumb_func_start MOD08_022198D0
+MOD08_022198D0: ; 0x022198D0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ ldr r0, [r5, #0x14]
+ add r4, r1, #0
+ mov r1, #1
+ add r6, r2, #0
+ bl FUN_0200C644
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0200C714
+ mov r0, #0
+ str r0, [r5, #0x40]
+ mov r0, #4
+ mov r1, #0xa
+ add r5, #0x18
+ str r0, [sp]
+ add r0, r5, #0
+ add r2, r1, #0
+ mov r3, #0xe
+ bl MOD08_02218120
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02219908
+MOD08_02219908: ; 0x02219908
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r1, [r4, #0x14]
+ add r0, #0x18
+ bl MOD08_02218360
+ cmp r0, #0
+ bne _02219944
+ ldr r0, [r4, #0x40]
+ cmp r0, #0
+ beq _0221992E
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200C644
+ add sp, #4
+ mov r0, #1
+ pop {r3, r4, pc}
+_0221992E:
+ mov r0, #1
+ str r0, [r4, #0x40]
+ mov r0, #2
+ add r4, #0x18
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0xe
+ mov r2, #0xa
+ mov r3, #0xc
+ bl MOD08_02218120
+_02219944:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221994C
+MOD08_0221994C: ; 0x0221994C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x48]
+ mov r5, #0
+ cmp r1, #4
+ bhi _022199E4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02219964: ; jump table
+ .short _0221996E - _02219964 - 2 ; case 0
+ .short _02219994 - _02219964 - 2 ; case 1
+ .short _022199A4 - _02219964 - 2 ; case 2
+ .short _022199D2 - _02219964 - 2 ; case 3
+ .short _022199E2 - _02219964 - 2 ; case 4
+_0221996E:
+ mov r1, #0x4c
+ ldrsh r3, [r4, r1]
+ ldr r2, [r4, #0x3c]
+ mov r1, #0x18
+ mul r1, r2
+ mov r2, #0x4e
+ ldrsh r2, [r4, r2]
+ add r1, r3, r1
+ lsl r1, r1, #0x10
+ sub r2, #0x10
+ lsl r2, r2, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_022198D0
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+ b _022199E4
+_02219994:
+ bl MOD08_02219908
+ cmp r0, #0
+ beq _022199E4
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+ b _022199E4
+_022199A4:
+ ldr r1, [r4, #0x44]
+ sub r1, r1, #1
+ str r1, [r4, #0x44]
+ bpl _022199E4
+ ldr r1, [r4, #0x48]
+ add r1, r1, #1
+ str r1, [r4, #0x48]
+ mov r1, #0x4c
+ ldrsh r3, [r4, r1]
+ ldr r2, [r4, #0x3c]
+ mov r1, #0x18
+ mul r1, r2
+ mov r2, #0x4e
+ ldrsh r2, [r4, r2]
+ sub r1, r3, r1
+ lsl r1, r1, #0x10
+ sub r2, #0x18
+ lsl r2, r2, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_022198D0
+ b _022199E4
+_022199D2:
+ bl MOD08_02219908
+ cmp r0, #0
+ beq _022199E4
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+ b _022199E4
+_022199E2:
+ mov r5, #1
+_022199E4:
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022199E8
+MOD08_022199E8: ; 0x022199E8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _022199FA
+ cmp r0, #1
+ beq _02219A0C
+ b _02219A22
+_022199FA:
+ add r0, r4, #0
+ bl MOD08_0221994C
+ cmp r0, #0
+ beq _02219A22
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02219A22
+_02219A0C:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+_02219A22:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02219A2C
+MOD08_02219A2C: ; 0x02219A2C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r1, #0x50
+ add r5, r0, #0
+ str r2, [sp]
+ add r6, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ ldr r0, [sp]
+ str r7, [r4, #4]
+ str r0, [r4, #8]
+ str r6, [r4, #0x14]
+ add r0, r6, #0
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x14]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #4
+ str r0, [r4, #0x44]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r5, r0, #0
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x4c
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x4e
+ strh r0, [r1]
+ ldr r0, [r4]
+ ldr r1, _02219AB4 ; =MOD08_022199E8
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02219AB4: .word MOD08_022199E8
+
+ thumb_func_start MOD08_02219AB8
+MOD08_02219AB8: ; 0x02219AB8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02219AD6
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_02219AD6:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02219AD8
+MOD08_02219AD8: ; 0x02219AD8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r1, #8
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02215504
+ str r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ beq _02219B06
+ cmp r0, #1
+ beq _02219B12
+ cmp r0, #2
+ beq _02219B18
+ b _02219B1E
+_02219B06:
+ add r0, r5, #0
+ bl MOD08_02214540
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ b _02219B22
+_02219B12:
+ mov r6, #1
+ lsl r6, r6, #8
+ b _02219B22
+_02219B18:
+ mov r6, #2
+ lsl r6, r6, #8
+ b _02219B22
+_02219B1E:
+ bl ErrorHandling
+_02219B22:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ ldr r1, [sp, #0xc]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp]
+ ldr r1, [sp, #0x10]
+ lsl r3, r7, #0x18
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r2, r6, #0
+ asr r3, r3, #0x18
+ bl FUN_02003210
+ ldr r0, [r4]
+ ldr r1, _02219B7C ; =MOD08_02219AB8
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02219B7C: .word MOD08_02219AB8
+
+ thumb_func_start MOD08_02219B80
+MOD08_02219B80: ; 0x02219B80
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #5
+ bhi _02219C28
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02219B98: ; jump table
+ .short _02219BA4 - _02219B98 - 2 ; case 0
+ .short _02219BBC - _02219B98 - 2 ; case 1
+ .short _02219BCE - _02219B98 - 2 ; case 2
+ .short _02219BE0 - _02219B98 - 2 ; case 3
+ .short _02219BF8 - _02219B98 - 2 ; case 4
+ .short _02219C1A - _02219B98 - 2 ; case 5
+_02219BA4:
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r2, [r4, #0x18]
+ ldr r3, [r4, #0x10]
+ bl FUN_02007E68
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02219BBC:
+ ldr r0, [r4, #4]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _02219C28
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02219BCE:
+ ldr r1, [r4, #0x1c]
+ cmp r1, #0
+ bne _02219BDA
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02219BE0
+_02219BDA:
+ sub r0, r1, #1
+ str r0, [r4, #0x1c]
+ pop {r3, r4, r5, pc}
+_02219BE0:
+ ldr r0, [r4, #0x14]
+ mov r2, #0
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #0x18]
+ ldr r3, [r4, #0x10]
+ bl FUN_02007E68
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02219BF8:
+ ldr r0, [r4, #4]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _02219C28
+ ldr r0, [r4, #0xc]
+ sub r0, r0, #1
+ str r0, [r4, #0xc]
+ cmp r0, #0
+ bgt _02219C14
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02219C14:
+ mov r0, #0
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02219C1A:
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_02219C28:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02219C2C
+MOD08_02219C2C: ; 0x02219C2C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x20
+ add r4, r0, #0
+ bl MOD08_02228064
+ add r6, r0, #0
+ str r4, [r6]
+ mov r1, #0
+ add r0, r4, #0
+ str r1, [r6, #4]
+ bl MOD08_02212498
+ ldr r2, _02219DF4 ; =0x00000802
+ cmp r0, r2
+ bgt _02219C66
+ bge _02219CEC
+ cmp r0, #8
+ bgt _02219C60
+ cmp r0, #2
+ blt _02219C5E
+ beq _02219C7E
+ cmp r0, #4
+ beq _02219C90
+ cmp r0, #8
+ beq _02219CB6
+_02219C5E:
+ b _02219DA4
+_02219C60:
+ cmp r0, #0x10
+ beq _02219CC8
+ b _02219DA4
+_02219C66:
+ add r1, r2, #6
+ cmp r0, r1
+ bgt _02219C76
+ bge _02219D48
+ add r1, r2, #2
+ cmp r0, r1
+ beq _02219D1C
+ b _02219DA4
+_02219C76:
+ add r2, #0xe
+ cmp r0, r2
+ beq _02219D78
+ b _02219DA4
+_02219C7E:
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219C90:
+ add r0, r4, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ beq _02219C9C
+ b _02219DA8
+_02219C9C:
+ ldr r0, [r6]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022274C0
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219CB6:
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219CC8:
+ add r0, r4, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _02219DA8
+ ldr r0, [r6]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022274C0
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219CEC:
+ mov r7, #0xff
+ mov r5, #0
+_02219CF0:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #0
+ beq _02219D00
+ cmp r0, #2
+ bne _02219D04
+_02219D00:
+ add r7, r5, #0
+ b _02219D0A
+_02219D04:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02219CF0
+_02219D0A:
+ cmp r7, #0xff
+ bne _02219D10
+ mov r7, #0
+_02219D10:
+ ldr r0, [r6]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219D1C:
+ mov r7, #0xff
+ mov r5, #0
+_02219D20:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #4
+ bne _02219D30
+ add r7, r5, #0
+ b _02219D36
+_02219D30:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02219D20
+_02219D36:
+ cmp r7, #0xff
+ bne _02219D3C
+ mov r7, #0
+_02219D3C:
+ ldr r0, [r6]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219D48:
+ mov r7, #0xff
+ mov r5, #0
+_02219D4C:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #1
+ beq _02219D5C
+ cmp r0, #3
+ bne _02219D60
+_02219D5C:
+ add r7, r5, #0
+ b _02219D66
+_02219D60:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02219D4C
+_02219D66:
+ cmp r7, #0xff
+ bne _02219D6C
+ mov r7, #0
+_02219D6C:
+ ldr r0, [r6]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219D78:
+ mov r7, #0xff
+ mov r5, #0
+_02219D7C:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #5
+ bne _02219D8C
+ add r7, r5, #0
+ b _02219D92
+_02219D8C:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02219D7C
+_02219D92:
+ cmp r7, #0xff
+ bne _02219D98
+ mov r7, #0
+_02219D98:
+ ldr r0, [r6]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219DA4:
+ bl ErrorHandling
+_02219DA8:
+ ldr r0, [r6, #4]
+ cmp r0, #0
+ bne _02219DB6
+ add r0, r6, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_02219DB6:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r6, #0x10]
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r6, #0xc]
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r6, #0x14]
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r6, #0x18]
+ add r0, r4, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r6, #0x1c]
+ ldr r0, [r6]
+ ldr r1, _02219DF8 ; =MOD08_02219B80
+ add r2, r6, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02219DF4: .word 0x00000802
+_02219DF8: .word MOD08_02219B80
+
+ thumb_func_start MOD08_02219DFC
+MOD08_02219DFC: ; 0x02219DFC
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #4
+ bls _02219E0C
+ b _02219F60
+_02219E0C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02219E18: ; jump table
+ .short _02219E22 - _02219E18 - 2 ; case 0
+ .short _02219E70 - _02219E18 - 2 ; case 1
+ .short _02219EC2 - _02219E18 - 2 ; case 2
+ .short _02219EEC - _02219E18 - 2 ; case 3
+ .short _02219F4E - _02219E18 - 2 ; case 4
+_02219E22:
+ ldr r0, [r4, #0x4c]
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r1, [r4, #0x3c]
+ ldr r2, [r4, #0x44]
+ ldr r3, [r4, #0x40]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x14
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ add r0, r4, #0
+ add r0, #0x14
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x50]
+ cmp r0, #1
+ bne _02219E5E
+ ldr r1, [sp, #8]
+ mov r0, #0
+ bl _fsub
+ str r0, [sp, #8]
+_02219E5E:
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #4]
+ bl FUN_0200C884
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02219F60
+_02219E70:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x14
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x50]
+ cmp r0, #1
+ bne _02219E96
+ ldr r1, [sp, #8]
+ mov r0, #0
+ bl _fsub
+ str r0, [sp, #8]
+_02219E96:
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #4]
+ bl FUN_0200C884
+ cmp r5, #0
+ beq _02219EBA
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0xc
+ mov r2, #0xe
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ ldr r3, [r4, #0x28]
+ bl MOD08_02218314
+ b _02219F60
+_02219EBA:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02219F60
+_02219EC2:
+ ldr r0, [r4, #0x4c]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ ldr r1, [r4, #0x40]
+ ldr r2, [r4, #0x44]
+ ldr r3, [r4, #0x3c]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x14
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02219F60
+_02219EEC:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x14
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x50]
+ cmp r0, #1
+ bne _02219F12
+ ldr r1, [sp, #8]
+ mov r0, #0
+ bl _fsub
+ str r0, [sp, #8]
+_02219F12:
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #4]
+ bl FUN_0200C884
+ cmp r5, #0
+ beq _02219F36
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0xc
+ mov r2, #0xe
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ ldr r3, [r4, #0x28]
+ bl MOD08_02218314
+ b _02219F60
+_02219F36:
+ ldr r0, [r4, #0x48]
+ sub r0, r0, #1
+ str r0, [r4, #0x48]
+ cmp r0, #0
+ bgt _02219F48
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02219F60
+_02219F48:
+ mov r0, #0
+ str r0, [r4, #8]
+ b _02219F60
+_02219F4E:
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add sp, #0xc
+ pop {r4, r5, pc}
+_02219F60:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02219F6C
+MOD08_02219F6C: ; 0x02219F6C
+ push {r4, r5, r6, lr}
+ mov r1, #0x54
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ bne _02219FAE
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+ b _02219FCC
+_02219FAE:
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+_02219FCC:
+ strh r0, [r4, #0xe]
+ add r0, r6, #0
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0xc]
+ add r0, r6, #0
+ mov r1, #0x29
+ bl FUN_0200782C
+ mov r1, #0xc
+ ldrsh r1, [r4, r1]
+ sub r0, r1, r0
+ strh r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r4, #0x38]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #0x40]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r4, #0x44]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4, #0x48]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ str r0, [r4, #0x4c]
+ add r0, r5, #0
+ mov r1, #7
+ bl MOD08_02212498
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022124D8
+ str r0, [r4, #0x10]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r1, [r4, #0x38]
+ mov r2, #0x10
+ ldr r0, [r4]
+ sub r2, r2, r1
+ bl MOD08_02227994
+ ldr r0, [r4]
+ ldr r1, _0221A08C ; =MOD08_02219DFC
+ add r2, r4, #0
+ bl MOD08_02212400
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ beq _0221A07A
+ mov r1, #1
+ b _0221A07C
+_0221A07A:
+ mov r1, #0
+_0221A07C:
+ ldr r0, [r4]
+ bl MOD08_02215680
+ cmp r0, #1
+ bne _0221A08A
+ mov r0, #1
+ str r0, [r4, #0x50]
+_0221A08A:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0221A08C: .word MOD08_02219DFC
+
+ thumb_func_start MOD08_0221A090
+MOD08_0221A090: ; 0x0221A090
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #5
+ bls _0221A0A0
+ b _0221A1DC
+_0221A0A0:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221A0AC: ; jump table
+ .short _0221A0B8 - _0221A0AC - 2 ; case 0
+ .short _0221A0FC - _0221A0AC - 2 ; case 1
+ .short _0221A12C - _0221A0AC - 2 ; case 2
+ .short _0221A140 - _0221A0AC - 2 ; case 3
+ .short _0221A186 - _0221A0AC - 2 ; case 4
+ .short _0221A1C8 - _0221A0AC - 2 ; case 5
+_0221A0B8:
+ ldr r0, [r4, #0x40]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #0x44]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x4c]
+ asr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r1, [r4, #0x34]
+ ldr r2, [r4, #0x38]
+ ldr r3, [r4, #0x3c]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_022181A8
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_02218380
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_0221A0FC:
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_022183A0
+ cmp r0, #0
+ beq _0221A122
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #8
+ mov r2, #0xa
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ bl MOD08_022182DC
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0221A122:
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_0221A12C:
+ ldr r1, [r4, #0x50]
+ cmp r1, #0
+ bne _0221A138
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _0221A140
+_0221A138:
+ sub r0, r1, #1
+ add sp, #0xc
+ str r0, [r4, #0x50]
+ pop {r4, r5, pc}
+_0221A140:
+ ldr r0, [r4, #0x3c]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #0x44]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x4c]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r1, [r4, #0x38]
+ ldr r2, [r4, #0x34]
+ ldr r3, [r4, #0x40]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_022181A8
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_022183A0
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_0221A186:
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_022183A0
+ cmp r0, #0
+ beq _0221A1AC
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #8
+ mov r2, #0xa
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ bl MOD08_022182DC
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0221A1AC:
+ ldr r0, [r4, #0x48]
+ sub r0, r0, #1
+ str r0, [r4, #0x48]
+ cmp r0, #0
+ bgt _0221A1C0
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_0221A1C0:
+ mov r0, #0
+ add sp, #0xc
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_0221A1C8:
+ ldr r0, [r4, #0xc]
+ bl MOD08_02218E34
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_0221A1DC:
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_0221A1E0
+MOD08_0221A1E0: ; 0x0221A1E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x54
+ add r5, r0, #0
+ mov r1, #0x54
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ str r5, [r4]
+ bl MOD08_02212498
+ ldr r2, _0221A3E4 ; =0x00000802
+ cmp r0, r2
+ bgt _0221A224
+ bge _0221A290
+ mov r2, #0x42
+ lsl r2, r2, #2
+ cmp r0, r2
+ bgt _0221A21C
+ sub r1, r2, #6
+ cmp r0, r1
+ blt _0221A21A
+ beq _0221A23C
+ sub r1, r2, #4
+ cmp r0, r1
+ beq _0221A23C
+ cmp r0, r2
+ beq _0221A266
+_0221A21A:
+ b _0221A346
+_0221A21C:
+ add r2, #8
+ cmp r0, r2
+ beq _0221A266
+ b _0221A346
+_0221A224:
+ add r1, r2, #6
+ cmp r0, r1
+ bgt _0221A234
+ bge _0221A2EC
+ add r1, r2, #2
+ cmp r0, r1
+ beq _0221A2C0
+ b _0221A346
+_0221A234:
+ add r2, #0xe
+ cmp r0, r2
+ beq _0221A31C
+ b _0221A346
+_0221A23C:
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+ strh r0, [r4, #0xa]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r1, r0, #0
+ ldr r0, [r4]
+ add r2, sp, #4
+ add r3, sp, #0
+ bl MOD08_02227BAC
+ ldr r0, [sp, #0xc]
+ str r0, [r4, #0xc]
+ b _0221A346
+_0221A266:
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+ strh r0, [r4, #0xa]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r1, r0, #0
+ ldr r0, [r4]
+ add r2, sp, #4
+ add r3, sp, #0
+ bl MOD08_02227BAC
+ ldr r0, [sp, #0xc]
+ str r0, [r4, #0xc]
+ b _0221A346
+_0221A290:
+ mov r7, #0xff
+ mov r6, #0
+_0221A294:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02215490
+ cmp r0, #0
+ beq _0221A2A4
+ cmp r0, #2
+ bne _0221A2A8
+_0221A2A4:
+ add r7, r6, #0
+ b _0221A2AE
+_0221A2A8:
+ add r6, r6, #1
+ cmp r6, #4
+ blt _0221A294
+_0221A2AE:
+ cmp r7, #0xff
+ bne _0221A2B4
+ mov r7, #0
+_0221A2B4:
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ b _0221A346
+_0221A2C0:
+ mov r7, #0xff
+ mov r6, #0
+_0221A2C4:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02215490
+ cmp r0, #4
+ bne _0221A2D4
+ add r7, r6, #0
+ b _0221A2DA
+_0221A2D4:
+ add r6, r6, #1
+ cmp r6, #4
+ blt _0221A2C4
+_0221A2DA:
+ cmp r7, #0xff
+ bne _0221A2E0
+ mov r7, #0
+_0221A2E0:
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ b _0221A346
+_0221A2EC:
+ mov r7, #0xff
+ mov r6, #0
+_0221A2F0:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02215490
+ cmp r0, #1
+ beq _0221A300
+ cmp r0, #3
+ bne _0221A304
+_0221A300:
+ add r7, r6, #0
+ b _0221A30A
+_0221A304:
+ add r6, r6, #1
+ cmp r6, #4
+ blt _0221A2F0
+_0221A30A:
+ cmp r7, #0xff
+ bne _0221A310
+ mov r7, #0
+_0221A310:
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ b _0221A346
+_0221A31C:
+ mov r7, #0xff
+ mov r6, #0
+_0221A320:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02215490
+ cmp r0, #5
+ bne _0221A330
+ add r7, r6, #0
+ b _0221A336
+_0221A330:
+ add r6, r6, #1
+ cmp r6, #4
+ blt _0221A320
+_0221A336:
+ cmp r7, #0xff
+ bne _0221A33C
+ mov r7, #0
+_0221A33C:
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+_0221A346:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ bne _0221A356
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0x54
+ pop {r4, r5, r6, r7, pc}
+_0221A356:
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #8]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x29
+ bl FUN_0200782C
+ strh r0, [r4, #0xa]
+ mov r0, #0xa
+ ldrsh r0, [r4, r0]
+ mov r1, #1
+ add r0, #0x10
+ strh r0, [r4, #0xa]
+ add r0, r5, #0
+ bl MOD08_02212498
+ str r0, [r4, #0x34]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #0x38]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r4, #0x40]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4, #0x44]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ str r0, [r4, #0x48]
+ add r0, r5, #0
+ mov r1, #7
+ bl MOD08_02212498
+ str r0, [r4, #0x4c]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x48]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ asr r0, r0, #0x10
+ str r0, [r4, #0x50]
+ ldr r0, [r4]
+ ldr r1, _0221A3E8 ; =MOD08_0221A090
+ add r2, r4, #0
+ bl MOD08_02212400
+ add r1, r4, #0
+ bl MOD08_0221A090
+ add sp, #0x54
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221A3E4: .word 0x00000802
+_0221A3E8: .word MOD08_0221A090
+
+ thumb_func_start MOD08_0221A3EC
+MOD08_0221A3EC: ; 0x0221A3EC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #8
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _0221A40E
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ pop {r3, r4, r5, pc}
+_0221A40E:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221A418
+MOD08_0221A418: ; 0x0221A418
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r1, #0x30
+ add r7, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r7, [r4]
+ add r0, r7, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ add r0, r7, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ mov r5, #0
+_0221A43C:
+ mov r0, #1
+ lsl r0, r5
+ tst r0, r6
+ beq _0221A452
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_022124D8
+ mov r1, #1
+ bl FUN_0200C90C
+_0221A452:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _0221A43C
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r5, r0, #0
+ add r0, r7, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ ldr r2, [sp, #8]
+ add r1, r5, #0
+ bl MOD08_02227994
+ add r0, r7, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r7, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ mov r1, #5
+ bl MOD08_02212498
+ ldr r1, [sp, #0xc]
+ ldr r3, [sp, #8]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ str r1, [sp]
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r1, r5, #0x10
+ lsl r2, r6, #0x10
+ lsl r3, r3, #0x10
+ add r0, #8
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_022186D4
+ ldr r0, [r4]
+ ldr r1, _0221A4C0 ; =MOD08_0221A3EC
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221A4C0: .word MOD08_0221A3EC
+
+ thumb_func_start MOD08_0221A4C4
+MOD08_0221A4C4: ; 0x0221A4C4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r6, r0, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r5, r0, #0
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r1, r0, #0
+ add r0, r6, #0
+ add r2, sp, #4
+ add r3, sp, #0
+ bl MOD08_02227BAC
+ ldr r0, [sp]
+ mov r4, #0
+ cmp r0, #0
+ ble _0221A512
+ mov r7, #6
+_0221A4F0:
+ ldr r1, [sp, #0x14]
+ add r0, r6, #0
+ bl MOD08_02215554
+ cmp r0, #1
+ bne _0221A500
+ cmp r5, #0
+ beq _0221A50A
+_0221A500:
+ ldr r0, [sp, #0xc]
+ add r1, r7, #0
+ add r2, r5, #0
+ bl FUN_02007558
+_0221A50A:
+ ldr r0, [sp]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _0221A4F0
+_0221A512:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221A518
+MOD08_0221A518: ; 0x0221A518
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r1, [r4, #4]
+ ldr r0, [r4, #8]
+ cmp r1, r0
+ blt _0221A566
+ ldr r0, [r4]
+ cmp r0, #0
+ ldr r0, [r4, #0x14]
+ bne _0221A546
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4, #0x3c]
+ add r1, r5, #0
+ bl MOD08_02212438
+ pop {r3, r4, r5, pc}
+_0221A546:
+ mov r1, #6
+ bl FUN_0200782C
+ add r3, r0, #0
+ mov r2, #1
+ ldr r0, [r4, #0x14]
+ mov r1, #6
+ eor r2, r3
+ bl FUN_02007558
+ ldr r0, [r4]
+ sub r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_0221A566:
+ add r0, r1, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0221A56C
+MOD08_0221A56C: ; 0x0221A56C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r1, #0x40
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ str r5, [r4, #0x3c]
+ bl MOD08_02212498
+ lsl r0, r0, #1
+ str r0, [r4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r1, r4, #0
+ str r0, [r4, #8]
+ add r0, r5, #0
+ add r1, #0x20
+ bl MOD08_02227B70
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x3c]
+ ldr r1, _0221A5B8 ; =MOD08_0221A518
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0221A5B8: .word MOD08_0221A518
+
+ thumb_func_start MOD08_0221A5BC
+MOD08_0221A5BC: ; 0x0221A5BC
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0x24
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0221A5D4
+ cmp r0, #1
+ beq _0221A608
+ b _0221A632
+_0221A5D4:
+ mov r0, #0x16
+ ldrsh r3, [r4, r0]
+ mov r0, #0x14
+ ldrsh r1, [r4, r0]
+ mov r2, #0xc
+ str r3, [sp]
+ ldr r0, [r4, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldrsh r2, [r4, r2]
+ add r0, r4, #0
+ add r0, #0x40
+ add r2, r1, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ add r0, r4, #0
+ add r0, #0x24
+ ldrb r0, [r0]
+ add r4, #0x24
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, pc}
+_0221A608:
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221A622
+ add r0, r4, #0
+ add r0, #0x24
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x24
+ strb r1, [r0]
+_0221A622:
+ mov r2, #0x40
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_0221A632:
+ ldr r0, [r4, #0x64]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0221A644
+MOD08_0221A644: ; 0x0221A644
+ push {r4, r5, r6, lr}
+ mov r1, #0x68
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #0x64]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ mov r6, #0xff
+ add r1, r6, #0
+ add r1, #9
+ cmp r0, r1
+ bgt _0221A690
+ add r1, r6, #3
+ cmp r0, r1
+ blt _0221A6E6
+ beq _0221A69A
+ add r1, r6, #5
+ cmp r0, r1
+ beq _0221A6A4
+ add r1, r6, #0
+ add r1, #9
+ cmp r0, r1
+ beq _0221A6C0
+ b _0221A6E6
+_0221A690:
+ add r1, r6, #0
+ add r1, #0x11
+ cmp r0, r1
+ beq _0221A6CA
+ b _0221A6E6
+_0221A69A:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ b _0221A6EA
+_0221A6A4:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221A6EA
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221A6EA
+_0221A6C0:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ b _0221A6EA
+_0221A6CA:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221A6EA
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221A6EA
+_0221A6E6:
+ bl ErrorHandling
+_0221A6EA:
+ cmp r6, #0xff
+ bne _0221A6F6
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+_0221A6F6:
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x24
+ bl MOD08_02227B70
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ add r1, r4, #0
+ add r1, #0x14
+ str r0, [r4, #0x18]
+ bl MOD08_02227B2C
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ cmp r0, #0
+ bgt _0221A728
+ mov r0, #0xc
+ ldrsh r1, [r4, r0]
+ sub r0, #0xd
+ mul r0, r1
+ strh r0, [r4, #0xc]
+_0221A728:
+ ldr r0, [r4, #0x64]
+ ldr r1, _0221A734 ; =MOD08_0221A5BC
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0221A734: .word MOD08_0221A5BC
+
+ thumb_func_start MOD08_0221A738
+MOD08_0221A738: ; 0x0221A738
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0221A750
+ cmp r0, #1
+ beq _0221A792
+ b _0221A7BC
+_0221A750:
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ bne _0221A760
+ mov r0, #0xff
+ add r4, #0x20
+ add sp, #8
+ strb r0, [r4]
+ pop {r4, pc}
+_0221A760:
+ mov r0, #0x12
+ ldrsh r3, [r4, r0]
+ mov r0, #0x10
+ ldrsh r1, [r4, r0]
+ mov r2, #0x64
+ str r3, [sp]
+ ldr r0, [r4, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldrsh r2, [r4, r2]
+ add r0, r4, #0
+ add r0, #0x3c
+ add r2, r1, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+_0221A792:
+ add r0, r4, #0
+ add r0, #0x3c
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221A7AC
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+_0221A7AC:
+ mov r2, #0x3c
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_0221A7BC:
+ ldr r0, [r4, #0x60]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221A7D0
+MOD08_0221A7D0: ; 0x0221A7D0
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x68
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #0x60]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x64
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, #0x20
+ bl MOD08_02227B70
+ mov r6, #0xff
+ add r0, r6, #0
+ add r0, #9
+ cmp r7, r0
+ bgt _0221A82C
+ add r0, r6, #3
+ cmp r7, r0
+ blt _0221A882
+ beq _0221A836
+ add r0, r6, #5
+ cmp r7, r0
+ beq _0221A840
+ add r0, r6, #0
+ add r0, #9
+ cmp r7, r0
+ beq _0221A85C
+ b _0221A882
+_0221A82C:
+ add r0, r6, #0
+ add r0, #0x11
+ cmp r7, r0
+ beq _0221A866
+ b _0221A882
+_0221A836:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ b _0221A886
+_0221A840:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221A886
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221A886
+_0221A85C:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ b _0221A886
+_0221A866:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221A886
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221A886
+_0221A882:
+ bl ErrorHandling
+_0221A886:
+ cmp r6, #0xff
+ bne _0221A892
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_0221A892:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ add r1, r4, #0
+ add r1, #0x10
+ str r0, [r4, #0x14]
+ bl MOD08_02227B2C
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ cmp r0, #0
+ bgt _0221A8C0
+ mov r0, #0x64
+ ldrsh r1, [r4, r0]
+ sub r0, #0x65
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r4, #0
+ add r0, #0x64
+ strh r2, [r0]
+_0221A8C0:
+ add r0, r5, #0
+ bl MOD08_02212004
+ ldr r0, [r4, #0x60]
+ ldr r1, _0221A8D8 ; =MOD08_0221A738
+ add r2, r4, #0
+ bl MOD08_02212400
+ add r1, r4, #0
+ bl MOD08_0221A738
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221A8D8: .word MOD08_0221A738
+
+ thumb_func_start MOD08_0221A8DC
+MOD08_0221A8DC: ; 0x0221A8DC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bls _0221A8EC
+ b _0221AA6A
+_0221A8EC:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221A8F8: ; jump table
+ .short _0221A900 - _0221A8F8 - 2 ; case 0
+ .short _0221A962 - _0221A8F8 - 2 ; case 1
+ .short _0221A9AC - _0221A8F8 - 2 ; case 2
+ .short _0221A9FA - _0221A8F8 - 2 ; case 3
+_0221A900:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _0221A958
+ add r0, r4, #0
+ add r0, #0x38
+ bl MOD08_022183F0
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r2, #0x38
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_020079E0
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x28]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221A958:
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221A962:
+ ldrb r0, [r4, #9]
+ add r0, r0, #1
+ strb r0, [r4, #9]
+ ldrb r1, [r4, #9]
+ ldrb r0, [r4, #0xa]
+ cmp r1, r0
+ bhi _0221A972
+ b _0221AA78
+_0221A972:
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl MOD08_02212498
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl MOD08_02212498
+ add r6, r0, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [sp]
+ add r0, r4, #0
+ lsl r1, r5, #0x10
+ lsl r3, r6, #0x10
+ add r0, #0x14
+ asr r1, r1, #0x10
+ mov r2, #0x64
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221A9AC:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _0221A9F0
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x28]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221A9F0:
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221A9FA:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ ldr r0, [r4, #0x10]
+ bne _0221AA3E
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x28]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221AA3E:
+ mov r1, #0xc
+ add r2, r1, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02007558
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221AA6A:
+ ldr r0, [r4, #0xc]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221AA78:
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0221AA7C
+MOD08_0221AA7C: ; 0x0221AA7C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x5c
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4, #8]
+ strb r0, [r4]
+ str r5, [r4, #0xc]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r0, #0
+ strb r0, [r4, #9]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strb r0, [r4, #0xa]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_0221552C
+ str r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0x64
+ lsl r3, r6, #0x10
+ add r0, #0x14
+ add r2, r1, #0
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ mov r0, #0xa
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x38
+ mov r1, #2
+ add r3, r2, #0
+ bl MOD08_022183C0
+ ldr r0, [r4, #0xc]
+ ldr r1, _0221AB14 ; =MOD08_0221A8DC
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0221AB14: .word MOD08_0221A8DC
+
+ thumb_func_start MOD08_0221AB18
+MOD08_0221AB18: ; 0x0221AB18
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bls _0221AB28
+ b _0221ACA8
+_0221AB28:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221AB34: ; jump table
+ .short _0221AB3C - _0221AB34 - 2 ; case 0
+ .short _0221AB9E - _0221AB34 - 2 ; case 1
+ .short _0221ABEA - _0221AB34 - 2 ; case 2
+ .short _0221AC38 - _0221AB34 - 2 ; case 3
+_0221AB3C:
+ add r0, r4, #0
+ add r0, #0x20
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221AB94
+ add r0, r4, #0
+ add r0, #0x44
+ bl MOD08_022183F0
+ mov r2, #0x20
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x22
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r2, #0x44
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_020079E0
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x34]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221AB94:
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221AB9E:
+ ldrb r0, [r4, #9]
+ add r0, r0, #1
+ strb r0, [r4, #9]
+ ldrb r1, [r4, #9]
+ ldrb r0, [r4, #0xa]
+ cmp r1, r0
+ bhi _0221ABAE
+ b _0221ACB6
+_0221ABAE:
+ ldr r3, [r4, #0x10]
+ ldr r2, [r4, #0xc]
+ lsl r0, r3, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ asr r1, r2, #0x10
+ mov r0, #0x64
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x14]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ asr r3, r3, #0x10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x20
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_022181A8
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221ABEA:
+ add r0, r4, #0
+ add r0, #0x20
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221AC2E
+ mov r2, #0x20
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x22
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x34]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221AC2E:
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221AC38:
+ add r0, r4, #0
+ add r0, #0x20
+ bl MOD08_02218224
+ cmp r0, #1
+ ldr r0, [r4, #0x1c]
+ bne _0221AC7C
+ mov r2, #0x20
+ ldrsh r2, [r4, r2]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x22
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x34]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221AC7C:
+ mov r1, #0xc
+ add r2, r1, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0x1c]
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_02007558
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221ACA8:
+ ldr r0, [r4, #0x18]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221ACB6:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221ACBC
+MOD08_0221ACBC: ; 0x0221ACBC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x68
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4, #8]
+ strb r0, [r4]
+ str r5, [r4, #0x18]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0x18]
+ bl MOD08_022154D4
+ str r0, [r4, #0x1c]
+ mov r0, #0
+ strb r0, [r4, #9]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ strb r0, [r4, #0xa]
+ ldr r0, [r4, #0x18]
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x18]
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x18]
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x18]
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #0
+ add r3, r4, #2
+ bl MOD08_02217B50
+ ldr r0, [r4, #0x18]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0x18]
+ bl MOD08_0221552C
+ str r0, [r4, #4]
+ mov r1, #2
+ ldrsh r1, [r4, r1]
+ add r0, r1, r0
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ asr r0, r0, #0x10
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ asr r0, r0, #0x10
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r6, [sp]
+ mov r1, #0x64
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ ldr r1, [sp, #0x10]
+ ldr r3, [sp, #0xc]
+ add r0, #0x20
+ add r2, r7, #0
+ bl MOD08_022181A8
+ mov r0, #0xa
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x44
+ mov r1, #2
+ add r3, r2, #0
+ bl MOD08_022183C0
+ ldr r0, [r4, #0x18]
+ ldr r1, _0221ADBC ; =MOD08_0221AB18
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0221ADBC: .word MOD08_0221AB18
+
+ thumb_func_start MOD08_0221ADC0
+MOD08_0221ADC0: ; 0x0221ADC0
+ push {r3, r4, r5, lr}
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r1, [r2]
+ ldr r0, _0221ADEC ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD08_02214850
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+ nop
+_0221ADEC: .word 0xFFFF1FFF
+
+ thumb_func_start MOD08_0221ADF0
+MOD08_0221ADF0: ; 0x0221ADF0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r1, #0x28
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r0, r5, #0
+ add r1, r4, #4
+ bl MOD08_02227B70
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD08_0221477C
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x24]
+ mov r1, #2
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x24]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r1, _0221AE70 ; =0x3F99999A
+ ldr r0, [r4, #0x24]
+ add r2, r1, #0
+ bl FUN_0200C884
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _0221AE74 ; =0xFFFF1FFF
+ and r2, r1
+ lsr r1, r0, #0xb
+ orr r1, r2
+ str r1, [r0]
+ add r0, #0x4a
+ ldrh r2, [r0]
+ mov r1, #0x3f
+ bic r2, r1
+ mov r1, #0x1b
+ orr r1, r2
+ strh r1, [r0]
+ ldrh r2, [r0]
+ ldr r1, _0221AE78 ; =0xFFFFC0FF
+ and r2, r1
+ mov r1, #7
+ lsl r1, r1, #8
+ orr r1, r2
+ strh r1, [r0]
+ ldr r0, [r4, #8]
+ ldr r1, _0221AE7C ; =MOD08_0221ADC0
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0221AE70: .word 0x3F99999A
+_0221AE74: .word 0xFFFF1FFF
+_0221AE78: .word 0xFFFFC0FF
+_0221AE7C: .word MOD08_0221ADC0
+
+ thumb_func_start MOD08_0221AE80
+MOD08_0221AE80: ; 0x0221AE80
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0221AE98
+ cmp r0, #1
+ beq _0221AED4
+ b _0221AF0A
+_0221AE98:
+ mov r0, #0x12
+ ldrsh r3, [r4, r0]
+ mov r0, #0x10
+ ldrsh r1, [r4, r0]
+ mov r0, #0x66
+ ldrsh r0, [r4, r0]
+ mov r2, #0x64
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldrsh r2, [r4, r2]
+ add r0, r4, #0
+ add r0, #0x3c
+ add r2, r1, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+_0221AED4:
+ add r0, r4, #0
+ add r0, #0x3c
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221AEEE
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+_0221AEEE:
+ mov r2, #0x3c
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x3e
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_0221AF0A:
+ ldr r0, [r4, #0x60]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0221AF1C
+MOD08_0221AF1C: ; 0x0221AF1C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x68
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #0x60]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x64
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x66
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, #0x20
+ bl MOD08_02227B70
+ mov r6, #0xff
+ add r0, r6, #0
+ add r0, #9
+ cmp r7, r0
+ bgt _0221AF86
+ add r0, r6, #3
+ cmp r7, r0
+ blt _0221AFDC
+ beq _0221AF90
+ add r0, r6, #5
+ cmp r7, r0
+ beq _0221AF9A
+ add r0, r6, #0
+ add r0, #9
+ cmp r7, r0
+ beq _0221AFB6
+ b _0221AFDC
+_0221AF86:
+ add r0, r6, #0
+ add r0, #0x11
+ cmp r7, r0
+ beq _0221AFC0
+ b _0221AFDC
+_0221AF90:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ b _0221AFE0
+_0221AF9A:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221AFE0
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221AFE0
+_0221AFB6:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ b _0221AFE0
+_0221AFC0:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221AFE0
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221AFE0
+_0221AFDC:
+ bl ErrorHandling
+_0221AFE0:
+ cmp r6, #0xff
+ bne _0221AFEC
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_0221AFEC:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x14]
+ cmp r0, #0
+ bne _0221B002
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_0221B002:
+ add r1, r4, #0
+ add r1, #0x10
+ bl MOD08_02227B2C
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ cmp r0, #0
+ bgt _0221B036
+ mov r0, #0x64
+ ldrsh r1, [r4, r0]
+ sub r0, #0x65
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r4, #0
+ add r0, #0x64
+ strh r2, [r0]
+ mov r0, #0x66
+ ldrsh r1, [r4, r0]
+ sub r0, #0x67
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r4, #0
+ add r0, #0x66
+ strh r2, [r0]
+_0221B036:
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _0221B050
+ mov r0, #0x66
+ ldrsh r1, [r4, r0]
+ sub r0, #0x67
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r4, #0
+ add r0, #0x66
+ strh r2, [r0]
+_0221B050:
+ ldr r0, [r4, #0x60]
+ ldr r1, _0221B064 ; =MOD08_0221AE80
+ add r2, r4, #0
+ bl MOD08_02212400
+ add r1, r4, #0
+ bl MOD08_0221AE80
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221B064: .word MOD08_0221AE80
+
+ thumb_func_start MOD08_0221B068
+MOD08_0221B068: ; 0x0221B068
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0x20
+ mov r2, #0x22
+ add r5, r0, #0
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x24]
+ add r0, #0x30
+ bl MOD08_02217E58
+ cmp r0, #0
+ bne _0221B0AC
+ mov r2, #0x20
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x22
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ sub r2, #8
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221B0AC:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221B0B0
+MOD08_0221B0B0: ; 0x0221B0B0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ mov r1, #0x54
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r2, r4, #0
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, #0x1c
+ add r3, sp, #0
+ bl MOD08_02227BAC
+ mov r0, #0x22
+ ldrsh r0, [r4, r0]
+ mov r1, #1
+ add r0, #8
+ strh r0, [r4, #0x22]
+ add r0, r5, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0x30
+ add r1, r6, #0
+ bl MOD08_02218654
+ ldr r1, [r4, #0x3c]
+ add r2, r4, #0
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ str r0, [r4, #0x3c]
+ ldr r1, [r4, #0x44]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ str r0, [r4, #0x44]
+ ldr r0, [r4, #4]
+ ldr r1, _0221B124 ; =MOD08_0221B068
+ bl MOD08_02212400
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0221B124: .word MOD08_0221B068
+
+ thumb_func_start MOD08_0221B128
+MOD08_0221B128: ; 0x0221B128
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ bne _0221B160
+ add r0, r4, #0
+ add r0, #0x30
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221B146
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221B146:
+ mov r2, #0x30
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x32
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_02007558
+ pop {r4, pc}
+_0221B160:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0221B170
+MOD08_0221B170: ; 0x0221B170
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r1, #0x5c
+ add r6, r0, #0
+ bl MOD08_02228064
+ add r5, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD08_02227B70
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r4, r0, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r7, r0, #0
+ cmp r4, #8
+ bgt _0221B1AE
+ cmp r4, #2
+ blt _0221B1EC
+ beq _0221B1B4
+ cmp r4, #4
+ beq _0221B1BE
+ cmp r4, #8
+ beq _0221B1D0
+ b _0221B1EC
+_0221B1AE:
+ cmp r4, #0x10
+ beq _0221B1DA
+ b _0221B1EC
+_0221B1B4:
+ add r0, r6, #0
+ bl MOD08_02212458
+ str r0, [sp, #8]
+ b _0221B1F0
+_0221B1BE:
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022274C0
+ str r0, [sp, #8]
+ b _0221B1F0
+_0221B1D0:
+ add r0, r6, #0
+ bl MOD08_02212460
+ str r0, [sp, #8]
+ b _0221B1F0
+_0221B1DA:
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022274C0
+ str r0, [sp, #8]
+ b _0221B1F0
+_0221B1EC:
+ bl ErrorHandling
+_0221B1F0:
+ add r2, r5, #0
+ ldr r1, [sp, #8]
+ add r0, r6, #0
+ add r2, #0x54
+ bl MOD08_022275C0
+ add r2, r5, #0
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, #0x1c
+ add r3, sp, #0xc
+ bl MOD08_02227BAC
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x58
+ strh r1, [r0]
+ add r0, r5, #0
+ add r0, #0x5a
+ strh r1, [r0]
+ ldr r0, [r5, #4]
+ ldr r1, [sp, #8]
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221B22A
+ mov r1, #0x4f
+ mvn r1, r1
+ b _0221B22E
+_0221B22A:
+ mov r1, #0x15
+ lsl r1, r1, #4
+_0221B22E:
+ add r0, r5, #0
+ add r0, #0x58
+ strh r1, [r0]
+ mov r0, #0x22
+ ldrsh r3, [r5, r0]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ str r3, [sp]
+ str r0, [sp, #4]
+ mov r1, #0x20
+ mov r2, #0x58
+ add r0, r5, #0
+ ldrsh r1, [r5, r1]
+ ldrsh r2, [r5, r2]
+ add r0, #0x30
+ bl MOD08_02217E80
+ ldr r0, [r5, #4]
+ ldr r1, _0221B260 ; =MOD08_0221B128
+ add r2, r5, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221B260: .word MOD08_0221B128
+
+ thumb_func_start MOD08_0221B264
+MOD08_0221B264: ; 0x0221B264
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r1, #0x5c
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r7, r0, #0
+ cmp r6, #8
+ bgt _0221B2AC
+ cmp r6, #2
+ blt _0221B2EA
+ beq _0221B2B2
+ cmp r6, #4
+ beq _0221B2BC
+ cmp r6, #8
+ beq _0221B2CE
+ b _0221B2EA
+_0221B2AC:
+ cmp r6, #0x10
+ beq _0221B2D8
+ b _0221B2EA
+_0221B2B2:
+ add r0, r5, #0
+ bl MOD08_02212458
+ str r0, [sp, #8]
+ b _0221B2EE
+_0221B2BC:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ str r0, [sp, #8]
+ b _0221B2EE
+_0221B2CE:
+ add r0, r5, #0
+ bl MOD08_02212460
+ str r0, [sp, #8]
+ b _0221B2EE
+_0221B2D8:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ str r0, [sp, #8]
+ b _0221B2EE
+_0221B2EA:
+ bl ErrorHandling
+_0221B2EE:
+ add r2, r4, #0
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ add r2, #0x54
+ bl MOD08_022275C0
+ add r2, r4, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, #0x1c
+ add r3, sp, #0x10
+ bl MOD08_02227BAC
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x58
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x5a
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ ldr r1, [sp, #8]
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221B328
+ mov r1, #0x4f
+ mvn r1, r1
+ b _0221B32C
+_0221B328:
+ mov r1, #0x15
+ lsl r1, r1, #4
+_0221B32C:
+ add r0, r4, #0
+ add r0, #0x58
+ strh r1, [r0]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _0221B356
+ mov r0, #0x22
+ ldrsh r3, [r4, r0]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ str r3, [sp]
+ str r0, [sp, #4]
+ mov r1, #0x20
+ mov r2, #0x58
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ add r0, #0x30
+ bl MOD08_02217E80
+ b _0221B37A
+_0221B356:
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r2, r0, #0
+ mov r0, #0x22
+ ldrsh r3, [r4, r0]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ str r3, [sp]
+ str r0, [sp, #4]
+ mov r1, #0x58
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ add r0, #0x30
+ bl MOD08_02217E80
+_0221B37A:
+ ldr r0, [r4, #4]
+ ldr r1, _0221B388 ; =MOD08_0221B128
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221B388: .word MOD08_0221B128
+
+ thumb_func_start MOD08_0221B38C
+MOD08_0221B38C: ; 0x0221B38C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ mov r1, #0
+ add r5, r0, #0
+ bl MOD08_02212498
+ add r4, r0, #0
+ cmp r4, #8
+ bgt _0221B3AE
+ cmp r4, #2
+ blt _0221B3EC
+ beq _0221B3B4
+ cmp r4, #4
+ beq _0221B3BE
+ cmp r4, #8
+ beq _0221B3D0
+ b _0221B3EC
+_0221B3AE:
+ cmp r4, #0x10
+ beq _0221B3DA
+ b _0221B3EC
+_0221B3B4:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ b _0221B3F0
+_0221B3BE:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221B3F0
+_0221B3D0:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ b _0221B3F0
+_0221B3DA:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221B3F0
+_0221B3EC:
+ bl ErrorHandling
+_0221B3F0:
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, sp, #0
+ bl MOD08_022275C0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #8
+ add r3, sp, #4
+ bl MOD08_02227BAC
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_0221552C
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ mov r1, #0
+ add r2, sp, #0
+ ldrsh r2, [r2, r1]
+ ldr r0, [sp, #0x10]
+ bl FUN_02007558
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ ldr r0, [sp, #0x10]
+ mov r1, #1
+ add r2, r2, r4
+ bl FUN_02007558
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221B434
+MOD08_0221B434: ; 0x0221B434
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x30]
+ bl MOD08_02218AF8
+ cmp r0, #0
+ bne _0221B458
+ ldr r0, [r4, #0x30]
+ bl MOD08_02218B08
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221B458:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221B45C
+MOD08_0221B45C: ; 0x0221B45C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ mov r1, #0x34
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [sp, #0x20]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [sp, #0x24]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ add r2, r4, #0
+ str r0, [sp, #0x28]
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, #0x1c
+ add r3, sp, #0x2c
+ bl MOD08_02227F88
+ ldr r0, [r4, #0x28]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ lsl r0, r6, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x1c]
+ lsl r3, r7, #0x14
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x20]
+ mov r2, #2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x24]
+ lsr r3, r3, #0x10
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x28]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x14]
+ ldr r0, _0221B520 ; =0x0000044C
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x18]
+ bl MOD08_02218B20
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #4]
+ ldr r1, _0221B524 ; =MOD08_0221B434
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221B520: .word 0x0000044C
+_0221B524: .word MOD08_0221B434
+
+ thumb_func_start MOD08_0221B528
+MOD08_0221B528: ; 0x0221B528
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ bne _0221B59C
+ ldr r0, [r4, #0x4c]
+ add r1, r0, #1
+ str r1, [r4, #0x4c]
+ ldr r0, [r4, #0x44]
+ cmp r1, r0
+ blt _0221B5B0
+ mov r1, #0
+ str r1, [r4, #0x4c]
+ ldr r0, [r4, #0x48]
+ cmp r0, #0
+ ldr r0, [r4, #0x54]
+ bne _0221B560
+ cmp r0, #0
+ bge _0221B552
+ str r1, [r4, #0x54]
+_0221B552:
+ ldr r0, [r4, #0x54]
+ cmp r0, #0
+ bne _0221B574
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221B574
+_0221B560:
+ cmp r0, #0x50
+ ble _0221B568
+ mov r0, #0x50
+ str r0, [r4, #0x54]
+_0221B568:
+ ldr r0, [r4, #0x54]
+ cmp r0, #0x50
+ bne _0221B574
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221B574:
+ ldr r0, [r4, #0x24]
+ ldr r2, [r4, #0x54]
+ mov r1, #0x12
+ bl FUN_02007558
+ ldr r0, [r4, #0x24]
+ ldr r2, [r4, #0x50]
+ mov r1, #1
+ bl FUN_02007558
+ mov r0, #0x42
+ ldrsh r1, [r4, r0]
+ ldr r2, [r4, #0x50]
+ sub r1, r2, r1
+ str r1, [r4, #0x50]
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x54]
+ add r0, r1, r0
+ str r0, [r4, #0x54]
+ pop {r3, r4, r5, pc}
+_0221B59C:
+ ldr r0, [r4, #0x24]
+ bl MOD08_02218E34
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221B5B0:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221B5B4
+MOD08_0221B5B4: ; 0x0221B5B4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r1, #0x58
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r2, r4, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, #0x1c
+ add r3, sp, #4
+ bl MOD08_02227BAC
+ cmp r6, #8
+ bgt _0221B5F6
+ cmp r6, #2
+ blt _0221B634
+ beq _0221B5FC
+ cmp r6, #4
+ beq _0221B606
+ cmp r6, #8
+ beq _0221B618
+ b _0221B634
+_0221B5F6:
+ cmp r6, #0x10
+ beq _0221B622
+ b _0221B634
+_0221B5FC:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r7, r0, #0
+ b _0221B638
+_0221B606:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r7, r0, #0
+ b _0221B638
+_0221B618:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r7, r0, #0
+ b _0221B638
+_0221B622:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r7, r0, #0
+ b _0221B638
+_0221B634:
+ bl ErrorHandling
+_0221B638:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r4, #0x48]
+ cmp r0, #0
+ ldr r0, [r4, #0x24]
+ bne _0221B68C
+ mov r1, #1
+ bl FUN_0200782C
+ str r0, [r4, #0x50]
+ ldr r0, [r4, #0x24]
+ mov r1, #0x12
+ bl FUN_0200782C
+ mov r1, #0x50
+ sub r0, r1, r0
+ str r0, [r4, #0x54]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x40
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x42
+ strh r0, [r1]
+ mov r0, #0x42
+ ldrsh r1, [r4, r0]
+ sub r0, #0x43
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r4, #0
+ add r0, #0x42
+ strh r2, [r0]
+ b _0221B6BA
+_0221B68C:
+ mov r1, #1
+ bl FUN_0200782C
+ str r0, [r4, #0x50]
+ ldr r0, [r4, #0x24]
+ mov r1, #0x12
+ bl FUN_0200782C
+ str r0, [r4, #0x54]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x40
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x42
+ strh r0, [r1]
+_0221B6BA:
+ mov r0, #0
+ str r0, [r4, #0x30]
+ str r0, [r4, #0x34]
+ mov r0, #0x50
+ str r0, [r4, #0x38]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_0221552C
+ mov r1, #0x50
+ sub r0, r1, r0
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r4, #0x44]
+ mov r0, #0
+ str r0, [r4, #0x4c]
+ ldr r0, [r4, #0x3c]
+ str r0, [sp]
+ ldr r0, [r4, #0x24]
+ ldr r1, [r4, #0x30]
+ ldr r2, [r4, #0x34]
+ ldr r3, [r4, #0x38]
+ bl FUN_02007E40
+ ldr r0, [r4, #4]
+ ldr r1, _0221B700 ; =MOD08_0221B528
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221B700: .word MOD08_0221B528
+
+ thumb_func_start MOD08_0221B704
+MOD08_0221B704: ; 0x0221B704
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+ cmp r1, #8
+ bgt _0221B71E
+ cmp r1, #2
+ blt _0221B754
+ beq _0221B724
+ cmp r1, #4
+ beq _0221B72C
+ cmp r1, #8
+ beq _0221B73C
+ b _0221B754
+_0221B71E:
+ cmp r1, #0x10
+ beq _0221B744
+ b _0221B754
+_0221B724:
+ bl MOD08_02212458
+ add r4, r0, #0
+ b _0221B758
+_0221B72C:
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r4, r0, #0
+ b _0221B758
+_0221B73C:
+ bl MOD08_02212460
+ add r4, r0, #0
+ b _0221B758
+_0221B744:
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r4, r0, #0
+ b _0221B758
+_0221B754:
+ bl ErrorHandling
+_0221B758:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0221B75C
+MOD08_0221B75C: ; 0x0221B75C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221B76E
+ cmp r0, #1
+ beq _0221B7B4
+ pop {r3, r4, r5, pc}
+_0221B76E:
+ ldr r0, [r4, #0x24]
+ add r1, r0, #1
+ str r1, [r4, #0x24]
+ ldr r0, [r4, #0x20]
+ cmp r1, r0
+ blt _0221B7E6
+ mov r0, #0
+ str r0, [r4, #0x24]
+ mov r0, #0x1c
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x44]
+ add r2, r1, r0
+ str r2, [r4, #0x44]
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_02007558
+ mov r0, #0x1c
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x3c]
+ sub r1, r1, r0
+ str r1, [r4, #0x3c]
+ ldr r0, [r4, #0x40]
+ cmp r1, r0
+ ble _0221B7A8
+ str r0, [r4, #0x3c]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221B7A8:
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x3c]
+ mov r1, #0x12
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_0221B7B4:
+ ldr r0, [r4, #0x30]
+ mov r1, #0xe
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x48]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x40]
+ mov r1, #0x12
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ bl MOD08_02218E34
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221B7E6:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0221B7E8
+MOD08_0221B7E8: ; 0x0221B7E8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221B7FA
+ cmp r0, #1
+ beq _0221B83E
+ pop {r3, r4, r5, pc}
+_0221B7FA:
+ ldr r0, [r4, #0x24]
+ add r1, r0, #1
+ str r1, [r4, #0x24]
+ ldr r0, [r4, #0x20]
+ cmp r1, r0
+ blt _0221B870
+ mov r0, #0
+ str r0, [r4, #0x24]
+ mov r0, #0x1c
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x44]
+ add r2, r1, r0
+ str r2, [r4, #0x44]
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_02007558
+ mov r0, #0x1c
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x3c]
+ sub r0, r1, r0
+ str r0, [r4, #0x3c]
+ bpl _0221B832
+ mov r0, #0
+ str r0, [r4, #0x3c]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221B832:
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x3c]
+ mov r1, #0x12
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_0221B83E:
+ ldr r0, [r4, #0x30]
+ mov r1, #0xe
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x48]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x40]
+ mov r1, #0x12
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ bl MOD08_02218E34
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221B870:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221B874
+MOD08_0221B874: ; 0x0221B874
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221B886
+ cmp r0, #1
+ beq _0221B8C8
+ pop {r3, r4, r5, pc}
+_0221B886:
+ ldr r0, [r4, #0x24]
+ add r1, r0, #1
+ str r1, [r4, #0x24]
+ ldr r0, [r4, #0x20]
+ cmp r1, r0
+ blt _0221B8E6
+ mov r0, #0
+ str r0, [r4, #0x24]
+ mov r1, #0x1c
+ ldrsh r2, [r4, r1]
+ ldr r3, [r4, #0x3c]
+ sub r2, r3, r2
+ str r2, [r4, #0x3c]
+ ldrsh r1, [r4, r1]
+ ldr r2, [r4, #0x40]
+ add r1, r2, r1
+ str r1, [r4, #0x40]
+ ldr r1, [r4, #0x3c]
+ cmp r1, #0
+ bge _0221B8B6
+ str r0, [r4, #0x3c]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221B8B6:
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x3c]
+ mov r3, #0x50
+ bl FUN_02007E40
+ pop {r3, r4, r5, pc}
+_0221B8C8:
+ ldr r0, [r4, #0x30]
+ mov r1, #0xe
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ bl MOD08_02218E34
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221B8E6:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0221B8E8
+MOD08_0221B8E8: ; 0x0221B8E8
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ mov r1, #0x50
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #0x1c]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r4, #0x20]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r2, r4, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, #0x28
+ add r3, sp, #4
+ bl MOD08_02227BAC
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_0221B704
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ cmp r0, #0
+ beq _0221B96A
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_0221552C
+ mov r3, #0x50
+ sub r0, r3, r0
+ str r0, [r4, #0x3c]
+ mov r1, #0
+ str r1, [r4, #0x40]
+ str r1, [sp]
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x3c]
+ bl FUN_02007E40
+ ldr r0, [r4, #4]
+ ldr r1, _0221B9DC ; =MOD08_0221B874
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_0221B96A:
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200782C
+ str r0, [r4, #0x44]
+ str r0, [r4, #0x48]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_0221552C
+ mov r3, #0x50
+ sub r0, r3, r0
+ str r0, [r4, #0x3c]
+ str r0, [r4, #0x40]
+ mov r0, #0x1c
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0221B9AA
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x30]
+ add r2, r1, #0
+ bl FUN_02007E40
+ ldr r0, [r4, #4]
+ ldr r1, _0221B9E0 ; =MOD08_0221B7E8
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_0221B9AA:
+ mov r0, #0
+ str r0, [r4, #0x3c]
+ ldr r1, [r4, #0x44]
+ ldr r0, [r4, #0x40]
+ add r2, r1, r0
+ str r2, [r4, #0x44]
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x30]
+ add r2, r1, #0
+ mov r3, #0x50
+ bl FUN_02007E40
+ ldr r0, [r4, #4]
+ ldr r1, _0221B9E4 ; =MOD08_0221B75C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0221B9DC: .word MOD08_0221B874
+_0221B9E0: .word MOD08_0221B7E8
+_0221B9E4: .word MOD08_0221B75C
+
+ thumb_func_start MOD08_0221B9E8
+MOD08_0221B9E8: ; 0x0221B9E8
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221B9FC
+ cmp r0, #1
+ beq _0221BA1C
+ b _0221BAAC
+_0221B9FC:
+ ldr r0, [r4, #0x10]
+ str r0, [sp]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #8]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r3, [r4, #0xc]
+ add r0, #0xd4
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_022183C0
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221BA1C:
+ add r0, r4, #0
+ add r0, #0xd4
+ bl MOD08_022183F0
+ cmp r0, #0
+ bne _0221BA70
+ ldrb r1, [r4, #1]
+ ldr r0, [r4, #0x18]
+ cmp r1, r0
+ ldrb r0, [r4]
+ blt _0221BA36
+ add r0, r0, #1
+ b _0221BA38
+_0221BA36:
+ sub r0, r0, #1
+_0221BA38:
+ strb r0, [r4]
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ beq _0221BA50
+ ldr r1, [r4, #0x1c]
+ mov r2, #0
+ lsl r1, r1, #0x18
+ ldr r0, [r4, #0x28]
+ lsr r1, r1, #0x18
+ add r3, r2, #0
+ bl FUN_020179E0
+_0221BA50:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ beq _0221BA66
+ ldr r1, [r4, #0x1c]
+ ldr r0, [r4, #0x28]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+_0221BA66:
+ ldrb r0, [r4, #1]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ pop {r3, r4, pc}
+_0221BA70:
+ mov r3, #0xd4
+ ldrsh r0, [r4, r3]
+ cmp r0, #0
+ beq _0221BA8C
+ mov r0, #1
+ str r0, [r4, #0x20]
+ ldr r1, [r4, #0x1c]
+ ldrsh r3, [r4, r3]
+ lsl r1, r1, #0x18
+ ldr r0, [r4, #0x28]
+ lsr r1, r1, #0x18
+ mov r2, #0
+ bl FUN_020179E0
+_0221BA8C:
+ mov r3, #0xd6
+ ldrsh r0, [r4, r3]
+ cmp r0, #0
+ beq _0221BABA
+ mov r0, #1
+ str r0, [r4, #0x24]
+ ldr r1, [r4, #0x1c]
+ ldrsh r3, [r4, r3]
+ lsl r1, r1, #0x18
+ ldr r0, [r4, #0x28]
+ lsr r1, r1, #0x18
+ mov r2, #3
+ bl FUN_020179E0
+ add sp, #4
+ pop {r3, r4, pc}
+_0221BAAC:
+ ldr r0, [r4, #0x2c]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221BABA:
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221BAC0
+MOD08_0221BAC0: ; 0x0221BAC0
+ push {r3, r4, r5, lr}
+ mov r1, #0xf8
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ str r5, [r4, #0x2c]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x2c]
+ bl MOD08_02212490
+ str r0, [r4, #0x28]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r4, #0x18]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ cmp r0, #0
+ bne _0221BB26
+ mov r0, #3
+ b _0221BB28
+_0221BB26:
+ mov r0, #2
+_0221BB28:
+ str r0, [r4, #0x1c]
+ ldr r0, [r4, #0x2c]
+ ldr r1, _0221BB38 ; =MOD08_0221B9E8
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0221BB38: .word MOD08_0221B9E8
+
+ thumb_func_start MOD08_0221BB3C
+MOD08_0221BB3C: ; 0x0221BB3C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #0x2c]
+ ldr r3, [r4, #0x24]
+ cmp r3, r0
+ beq _0221BB50
+ ldr r1, [r4, #0x28]
+ cmp r1, r0
+ bne _0221BB60
+_0221BB50:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+_0221BB60:
+ mov r1, #0x20
+ ldrsh r2, [r4, r1]
+ cmp r2, #0
+ bge _0221BB82
+ add r2, r3, r2
+ cmp r2, #0
+ ble _0221BB7A
+ str r2, [r4, #0x24]
+ ldrsh r0, [r4, r1]
+ ldr r2, [r4, #0x28]
+ add r0, r2, r0
+ str r0, [r4, #0x28]
+ b _0221BB9A
+_0221BB7A:
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x2c]
+ str r0, [r4, #0x28]
+ b _0221BB9A
+_0221BB82:
+ add r2, r3, r2
+ cmp r2, #0xf
+ bge _0221BB94
+ str r2, [r4, #0x24]
+ ldrsh r0, [r4, r1]
+ ldr r2, [r4, #0x28]
+ add r0, r2, r0
+ str r0, [r4, #0x28]
+ b _0221BB9A
+_0221BB94:
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x2c]
+ str r0, [r4, #0x28]
+_0221BB9A:
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x24]
+ lsl r0, r0, #4
+ orr r1, r0
+ ldr r0, _0221BBB4 ; =0x0400004D
+ strb r1, [r0]
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ pop {r4, pc}
+ .align 2, 0
+_0221BBB4: .word 0x0400004D
+
+ thumb_func_start MOD08_0221BBB8
+MOD08_0221BBB8: ; 0x0221BBB8
+ push {r3, r4, r5, lr}
+ mov r1, #0x30
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0x20]
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #4]
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl MOD08_02212498
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022124D8
+ mov r1, #1
+ str r0, [r4, #0x1c]
+ bl FUN_0200C644
+ mov r0, #0x20
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _0221BC0E
+ mov r0, #0
+ b _0221BC10
+_0221BC0E:
+ mov r0, #0xf
+_0221BC10:
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200C8F8
+ ldr r0, [r4, #4]
+ ldr r1, _0221BC2C ; =MOD08_0221BB3C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add r1, r4, #0
+ bl MOD08_0221BB3C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221BC2C: .word MOD08_0221BB3C
+
+ thumb_func_start MOD08_0221BC30
+MOD08_0221BC30: ; 0x0221BC30
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ strh r0, [r4, #0xe]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strh r0, [r4, #6]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #8
+ bl MOD08_02212498
+ str r0, [r4, #0x30]
+ add r0, r5, #0
+ mov r1, #7
+ bl MOD08_02212498
+ ldr r2, _0221BCFC ; =0xFFFF0000
+ mov r1, #0
+ and r2, r0
+ lsl r0, r0, #0x10
+ str r1, [r4, #0x1c]
+ lsr r2, r2, #0x10
+ str r2, [r4, #0x20]
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ bne _0221BCA6
+ str r1, [r4, #0x20]
+_0221BCA6:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ bne _0221BCB0
+ mov r0, #0xff
+ str r0, [r4, #0x24]
+_0221BCB0:
+ ldr r1, [r4]
+ add r0, r5, #0
+ bl MOD08_02212484
+ str r0, [r4, #0x38]
+ add r0, r5, #0
+ bl MOD08_02212468
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ bne _0221BCDA
+ add r0, r5, #0
+ bl MOD08_02212458
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ bl MOD08_02212460
+ str r0, [r4, #0x18]
+ b _0221BCEE
+_0221BCDA:
+ cmp r0, #1
+ bne _0221BCEE
+ add r0, r5, #0
+ bl MOD08_02212460
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ bl MOD08_02212458
+ str r0, [r4, #0x18]
+_0221BCEE:
+ ldr r0, [r4, #0x38]
+ cmp r0, #0
+ bne _0221BCF8
+ bl ErrorHandling
+_0221BCF8:
+ pop {r3, r4, r5, pc}
+ nop
+_0221BCFC: .word 0xFFFF0000
+
+ thumb_func_start MOD08_0221BD00
+MOD08_0221BD00: ; 0x0221BD00
+ ldr r0, [r0, #8]
+ mov r1, #0
+ cmp r0, #0
+ beq _0221BD12
+_0221BD08:
+ ldrh r2, [r0, #0x26]
+ ldrh r3, [r0, #0x24]
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0221BD08
+_0221BD12:
+ cmp r2, r3
+ beq _0221BD18
+ mov r1, #1
+_0221BD18:
+ add r0, r1, #0
+ bx lr
+
+ thumb_func_start MOD08_0221BD1C
+MOD08_0221BD1C: ; 0x0221BD1C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5, #0x38]
+ bl MOD08_0221BD00
+ add r4, r0, #0
+ mov r0, #4
+ ldrsh r0, [r5, r0]
+ ldr r1, [r5, #0x28]
+ cmp r1, r0
+ bge _0221BD3A
+ add r0, r1, #1
+ str r0, [r5, #0x28]
+ pop {r4, r5, r6, pc}
+_0221BD3A:
+ add r0, r5, #0
+ add r0, #0xa8
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221BD62
+ cmp r4, #0
+ bne _0221BD62
+ ldr r0, [r5, #0x34]
+ ldr r1, [r5, #0x38]
+ bl FUN_020133DC
+ ldr r0, [r5, #0x40]
+ add r1, r6, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl MOD08_02228094
+ pop {r4, r5, r6, pc}
+_0221BD62:
+ ldr r1, [r5, #0x1c]
+ ldr r0, [r5, #0x20]
+ cmp r0, r1
+ bgt _0221BD70
+ ldr r0, [r5, #0x24]
+ cmp r0, r1
+ bge _0221BD76
+_0221BD70:
+ ldr r0, [r5, #0x24]
+ cmp r0, #0xff
+ bne _0221BDD4
+_0221BD76:
+ mov r0, #0xa8
+ ldrsh r2, [r5, r0]
+ ldr r1, [r5, #0x38]
+ mov r3, #0xac
+ add r0, r2, #0
+ ldr r2, [r1, #0x20]
+ mul r0, r3
+ ldr r2, [r2]
+ ldr r2, [r2, #4]
+ add r0, r0, r2
+ str r0, [r1, #0x28]
+ mov r0, #0xaa
+ ldrsh r4, [r5, r0]
+ ldr r2, [r5, #0x38]
+ add r1, r4, #0
+ mul r1, r3
+ ldr r3, [r2, #0x20]
+ ldr r3, [r3]
+ ldr r3, [r3, #8]
+ add r1, r1, r3
+ str r1, [r2, #0x2c]
+ ldr r1, [r5, #0x30]
+ cmp r1, #0
+ beq _0221BDD4
+ mov r1, #6
+ ldrsh r1, [r5, r1]
+ add r0, #0xbe
+ bl _s32_div_f
+ ldr r1, [r5, #0x2c]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl Sin_Wrap
+ mov r1, #0xaa
+ ldrsh r2, [r5, r1]
+ mov r1, #0xac
+ mul r1, r2
+ add r2, r1, r0
+ ldr r1, [r5, #0x38]
+ ldr r0, [r1, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r2, r0
+ str r0, [r1, #0x2c]
+_0221BDD4:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221BDD8
+MOD08_0221BDD8: ; 0x0221BDD8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ mov r1, #0x41
+ lsl r1, r1, #2
+ add r6, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x3c
+ bl MOD08_02227B70
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_0221BC30
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02217C1C
+ add r5, r0, #0
+ ldr r1, [r4, #0x14]
+ add r0, r6, #0
+ add r2, sp, #0x18
+ bl MOD08_0222771C
+ ldr r1, [r4, #0x18]
+ add r0, r6, #0
+ add r2, sp, #0xc
+ bl MOD08_0222771C
+ ldr r0, [sp, #0x18]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r0, [sp, #0xc]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r7, r0, #0
+ ldr r0, [sp, #0x1c]
+ mov r1, #0xac
+ bl _s32_div_f
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x10]
+ mov r1, #0xac
+ bl _s32_div_f
+ mov r1, #0xe
+ ldrsh r1, [r4, r1]
+ add r2, r1, #0
+ mul r2, r5
+ add r0, r0, r2
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldrh r0, [r4, #6]
+ lsl r1, r6, #0x10
+ mov r2, #0xc
+ str r0, [sp, #4]
+ ldrsh r2, [r4, r2]
+ add r0, r4, #0
+ add r0, #0xa8
+ add r3, r2, #0
+ mul r3, r5
+ add r2, r7, r3
+ ldr r3, [sp, #8]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ cmp r5, #0
+ ldr r2, _0221BEFC ; =0x00005C71
+ ble _0221BE90
+ ldr r1, _0221BF00 ; =0x00000E38
+ add r0, r4, #0
+ add r0, #0xf0
+ mul r1, r5
+ mul r2, r5
+ mov r3, #0xa
+ bl MOD08_02218008
+ b _0221BEA0
+_0221BE90:
+ ldr r1, _0221BF04 ; =0x00003FFF
+ add r0, r4, #0
+ add r0, #0xf0
+ mul r1, r5
+ mul r2, r5
+ mov r3, #0xa
+ bl MOD08_02218008
+_0221BEA0:
+ ldr r0, [r4, #0x20]
+ mov r5, #0
+ cmp r0, #0
+ ble _0221BEBA
+ add r6, r4, #0
+ add r6, #0xa8
+_0221BEAC:
+ add r0, r6, #0
+ bl MOD08_02217ECC
+ ldr r0, [r4, #0x20]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _0221BEAC
+_0221BEBA:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0xff
+ beq _0221BEC4
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+_0221BEC4:
+ mov r0, #0xa8
+ ldrsh r3, [r4, r0]
+ ldr r1, [r4, #0x38]
+ mov r2, #0xac
+ add r0, r3, #0
+ ldr r3, [r1, #0x20]
+ mul r0, r2
+ ldr r3, [r3]
+ ldr r3, [r3, #4]
+ add r0, r0, r3
+ str r0, [r1, #0x28]
+ mov r1, #0xaa
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4, #0x38]
+ mul r2, r1
+ ldr r1, [r0, #0x20]
+ ldr r1, [r1]
+ ldr r1, [r1, #8]
+ add r1, r2, r1
+ str r1, [r0, #0x2c]
+ ldr r0, [r4, #0x40]
+ ldr r1, _0221BF08 ; =MOD08_0221BD1C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0221BEFC: .word 0x00005C71
+_0221BF00: .word 0x00000E38
+_0221BF04: .word 0x00003FFF
+_0221BF08: .word MOD08_0221BD1C
+
+ thumb_func_start MOD08_0221BF0C
+MOD08_0221BF0C: ; 0x0221BF0C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ mov r1, #0x41
+ lsl r1, r1, #2
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x3c
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #6]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strh r0, [r4, #4]
+ mov r0, #0
+ str r0, [r4, #0x28]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ ldr r2, _0221C098 ; =0xFFFF0000
+ mov r1, #0
+ and r2, r0
+ lsl r0, r0, #0x10
+ str r1, [r4, #0x1c]
+ lsr r2, r2, #0x10
+ str r2, [r4, #0x20]
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ bne _0221BF7E
+ str r1, [r4, #0x20]
+_0221BF7E:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ bne _0221BF88
+ mov r0, #0xff
+ str r0, [r4, #0x24]
+_0221BF88:
+ ldr r1, [r4]
+ add r0, r5, #0
+ bl MOD08_02212484
+ str r0, [r4, #0x38]
+ add r0, r5, #0
+ bl MOD08_02212468
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ bne _0221BFB0
+ add r0, r5, #0
+ bl MOD08_02212458
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ bl MOD08_02212458
+ b _0221BFBE
+_0221BFB0:
+ add r0, r5, #0
+ bl MOD08_02212460
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ bl MOD08_02212460
+_0221BFBE:
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x38]
+ cmp r0, #0
+ bne _0221BFCA
+ bl ErrorHandling
+_0221BFCA:
+ ldr r1, [r4, #0x14]
+ add r0, r5, #0
+ add r2, sp, #0x14
+ bl MOD08_0222771C
+ ldr r1, [r4, #0x18]
+ add r0, r5, #0
+ add r2, sp, #8
+ bl MOD08_0222771C
+ cmp r6, #0
+ bne _0221BFEE
+ add r0, sp, #0x14
+ bl MOD08_0222795C
+ ldr r0, [sp, #8]
+ str r0, [sp, #0x14]
+ b _0221BFF8
+_0221BFEE:
+ add r0, sp, #8
+ bl MOD08_0222795C
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #8]
+_0221BFF8:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r5, r0, #0
+ ldr r0, [sp, #8]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r0, [sp, #0x18]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r7, r0, #0
+ ldr r0, [sp, #0xc]
+ mov r1, #0xac
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldrh r0, [r4, #6]
+ lsl r1, r5, #0x10
+ lsl r2, r6, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r3, r7, #0x10
+ add r0, #0xa8
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ ldr r0, [r4, #0x20]
+ mov r5, #0
+ cmp r0, #0
+ ble _0221C056
+ add r6, r4, #0
+ add r6, #0xa8
+_0221C048:
+ add r0, r6, #0
+ bl MOD08_02217ECC
+ ldr r0, [r4, #0x20]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _0221C048
+_0221C056:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0xff
+ beq _0221C060
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+_0221C060:
+ mov r0, #0xa8
+ ldrsh r3, [r4, r0]
+ ldr r1, [r4, #0x38]
+ mov r2, #0xac
+ add r0, r3, #0
+ ldr r3, [r1, #0x20]
+ mul r0, r2
+ ldr r3, [r3]
+ ldr r3, [r3, #4]
+ add r0, r0, r3
+ str r0, [r1, #0x28]
+ mov r1, #0xaa
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4, #0x38]
+ mul r2, r1
+ ldr r1, [r0, #0x20]
+ ldr r1, [r1]
+ ldr r1, [r1, #8]
+ add r1, r2, r1
+ str r1, [r0, #0x2c]
+ ldr r0, [r4, #0x40]
+ ldr r1, _0221C09C ; =MOD08_0221BD1C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221C098: .word 0xFFFF0000
+_0221C09C: .word MOD08_0221BD1C
+
+ thumb_func_start MOD08_0221C0A0
+MOD08_0221C0A0: ; 0x0221C0A0
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5, #0x38]
+ bl MOD08_0221BD00
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xa8
+ add r1, #0xcc
+ bl MOD08_02217F9C
+ cmp r0, #0
+ bne _0221C0DA
+ cmp r4, #0
+ bne _0221C0DA
+ ldr r0, [r5, #0x34]
+ ldr r1, [r5, #0x38]
+ bl FUN_020133DC
+ ldr r0, [r5, #0x40]
+ add r1, r6, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl MOD08_02228094
+ pop {r4, r5, r6, pc}
+_0221C0DA:
+ mov r1, #0xa8
+ ldrsh r1, [r5, r1]
+ ldr r0, [r5, #0x38]
+ mov r2, #0xac
+ add r3, r1, #0
+ ldr r1, [r0, #0x20]
+ mul r3, r2
+ ldr r1, [r1]
+ ldr r1, [r1, #4]
+ add r1, r3, r1
+ str r1, [r0, #0x28]
+ mov r1, #0xaa
+ ldrsh r1, [r5, r1]
+ ldr r0, [r5, #0x38]
+ mul r2, r1
+ ldr r1, [r0, #0x20]
+ ldr r1, [r1]
+ ldr r1, [r1, #8]
+ add r1, r2, r1
+ str r1, [r0, #0x2c]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0221C104
+MOD08_0221C104: ; 0x0221C104
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ mov r1, #0x41
+ lsl r1, r1, #2
+ add r6, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x3c
+ bl MOD08_02227B70
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_0221BC30
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02217C1C
+ add r5, r0, #0
+ ldr r1, [r4, #0x14]
+ add r0, r6, #0
+ add r2, sp, #0x20
+ bl MOD08_0222771C
+ ldr r1, [r4, #0x18]
+ add r0, r6, #0
+ add r2, sp, #0x14
+ bl MOD08_0222771C
+ ldr r0, [sp, #0x20]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r0, [sp, #0x14]
+ mov r1, #0xac
+ bl _s32_div_f
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x24]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r7, r0, #0
+ ldr r0, [sp, #0x18]
+ mov r1, #0xac
+ bl _s32_div_f
+ lsl r1, r7, #0x10
+ asr r1, r1, #0x10
+ str r1, [sp]
+ mov r1, #0xe
+ ldrsh r1, [r4, r1]
+ mov r3, #0xc
+ add r2, r1, #0
+ mul r2, r5
+ add r0, r0, r2
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldrh r0, [r4, #6]
+ lsl r2, r6, #0x10
+ add r1, r4, #0
+ str r0, [sp, #8]
+ ldr r0, [r4, #8]
+ add r1, #0xcc
+ lsl r0, r0, #0xc
+ neg r0, r0
+ str r0, [sp, #0xc]
+ ldrsh r6, [r4, r3]
+ add r0, r4, #0
+ add r0, #0xa8
+ add r3, r6, #0
+ ldr r6, [sp, #0x10]
+ mul r3, r5
+ add r3, r6, r3
+ lsl r3, r3, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217F50
+ cmp r5, #0
+ ldr r2, _0221C23C ; =0x00005C71
+ ble _0221C1CA
+ ldr r1, _0221C240 ; =0x00000E38
+ add r0, r4, #0
+ add r0, #0xf0
+ mul r1, r5
+ mul r2, r5
+ mov r3, #0xa
+ bl MOD08_02218008
+ b _0221C1DA
+_0221C1CA:
+ ldr r1, _0221C244 ; =0x00003FFF
+ add r0, r4, #0
+ add r0, #0xf0
+ mul r1, r5
+ mul r2, r5
+ mov r3, #0xa
+ bl MOD08_02218008
+_0221C1DA:
+ ldr r0, [r4, #0x20]
+ mov r5, #0
+ cmp r0, #0
+ ble _0221C1FA
+ add r6, r4, #0
+ add r7, r4, #0
+ add r6, #0xa8
+ add r7, #0xcc
+_0221C1EA:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_02217F9C
+ ldr r0, [r4, #0x20]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _0221C1EA
+_0221C1FA:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0xff
+ beq _0221C204
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+_0221C204:
+ mov r0, #0xa8
+ ldrsh r3, [r4, r0]
+ ldr r1, [r4, #0x38]
+ mov r2, #0xac
+ add r0, r3, #0
+ ldr r3, [r1, #0x20]
+ mul r0, r2
+ ldr r3, [r3]
+ ldr r3, [r3, #4]
+ add r0, r0, r3
+ str r0, [r1, #0x28]
+ mov r1, #0xaa
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4, #0x38]
+ mul r2, r1
+ ldr r1, [r0, #0x20]
+ ldr r1, [r1]
+ ldr r1, [r1, #8]
+ add r1, r2, r1
+ str r1, [r0, #0x2c]
+ ldr r0, [r4, #0x40]
+ ldr r1, _0221C248 ; =MOD08_0221C0A0
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0221C23C: .word 0x00005C71
+_0221C240: .word 0x00000E38
+_0221C244: .word 0x00003FFF
+_0221C248: .word MOD08_0221C0A0
+
+ thumb_func_start MOD08_0221C24C
+MOD08_0221C24C: ; 0x0221C24C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5, #0x38]
+ bl MOD08_0221BD00
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0x58
+ bl MOD08_02217D98
+ cmp r0, #0
+ bne _0221C282
+ cmp r4, #0
+ bne _0221C282
+ ldr r0, [r5, #0x34]
+ ldr r1, [r5, #0x38]
+ bl FUN_020133DC
+ ldr r0, [r5, #0x40]
+ add r1, r6, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+_0221C282:
+ add r0, r5, #0
+ add r0, #0x8c
+ ldr r2, [r0]
+ mov r0, #0x5a
+ ldrsh r0, [r5, r0]
+ mov r3, #0xac
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r2, r1
+ add r2, r5, #0
+ add r2, #0x88
+ ldr r4, [r2]
+ mov r2, #0x58
+ ldrsh r2, [r5, r2]
+ ldr r0, [r5, #0x38]
+ mul r3, r2
+ ldr r2, [r0, #0x20]
+ add r3, r4, r3
+ ldr r2, [r2]
+ ldr r2, [r2, #4]
+ add r2, r3, r2
+ str r2, [r0, #0x28]
+ ldr r2, [r5, #0x38]
+ ldr r0, [r2, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r2, #0x2c]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0221C2BC
+MOD08_0221C2BC: ; 0x0221C2BC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r1, #0x94
+ add r4, r0, #0
+ bl MOD08_02228064
+ add r5, r0, #0
+ add r1, r5, #0
+ add r0, r4, #0
+ add r1, #0x3c
+ bl MOD08_02227B70
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r5]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r5, #4]
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r5, #0xc]
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r5, #8]
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r5, #0x10]
+ add r0, r4, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r5, #0x14]
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD08_02212498
+ str r0, [r5, #0x18]
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD08_02212498
+ str r0, [r5, #0x1c]
+ add r0, r4, #0
+ mov r1, #8
+ bl MOD08_02212498
+ str r0, [r5, #0x20]
+ cmp r0, #0
+ bne _0221C33A
+ add r0, r4, #0
+ bl MOD08_02212458
+ b _0221C340
+_0221C33A:
+ add r0, r4, #0
+ bl MOD08_02212460
+_0221C340:
+ str r0, [r5, #0x24]
+ add r2, r5, #0
+ ldr r1, [r5, #0x24]
+ add r0, r4, #0
+ add r2, #0x88
+ bl MOD08_0222771C
+ ldr r1, [r5]
+ add r0, r4, #0
+ bl MOD08_02212484
+ str r0, [r5, #0x38]
+ add r0, r4, #0
+ mov r1, #9
+ bl MOD08_02212498
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212478
+ str r0, [r5, #0x34]
+ ldr r1, [r5, #4]
+ ldr r0, _0221C420 ; =0x0000FFFF
+ mul r0, r1
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ bl _s32_div_f
+ add r4, r0, #0
+ ldr r1, [r5, #0xc]
+ ldr r0, _0221C420 ; =0x0000FFFF
+ mul r0, r1
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r1, [r5, #8]
+ ldr r0, _0221C420 ; =0x0000FFFF
+ mul r0, r1
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ bl _s32_div_f
+ add r7, r0, #0
+ ldr r1, [r5, #0x10]
+ ldr r0, _0221C420 ; =0x0000FFFF
+ mul r0, r1
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r5, #0x14]
+ lsl r1, r4, #0x10
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x18]
+ lsl r2, r6, #0x10
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x1c]
+ lsl r3, r7, #0x10
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r0, #0x58
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x10
+ bl MOD08_02217D14
+ add r0, r5, #0
+ add r0, #0x58
+ bl MOD08_02217D98
+ add r0, r5, #0
+ add r0, #0x8c
+ ldr r2, [r0]
+ mov r0, #0x5a
+ ldrsh r0, [r5, r0]
+ mov r3, #0x58
+ mov r4, #0xac
+ add r1, r0, #0
+ add r0, r5, #0
+ mul r1, r4
+ ldrsh r3, [r5, r3]
+ add r0, #0x88
+ add r2, r2, r1
+ ldr r1, [r5, #0x38]
+ ldr r0, [r0]
+ mul r4, r3
+ add r3, r0, r4
+ ldr r0, [r1, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r3, r0
+ str r0, [r1, #0x28]
+ ldr r1, [r5, #0x38]
+ ldr r0, [r1, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r2, r0
+ str r0, [r1, #0x2c]
+ ldr r0, [r5, #0x40]
+ ldr r1, _0221C424 ; =MOD08_0221C24C
+ add r2, r5, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221C420: .word 0x0000FFFF
+_0221C424: .word MOD08_0221C24C
+
+ thumb_func_start MOD08_0221C428
+MOD08_0221C428: ; 0x0221C428
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C608
+ cmp r0, #0
+ ldr r0, [r4, #0x1c]
+ bne _0221C44E
+ bl FUN_0200C3DC
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+_0221C44E:
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221C45C
+MOD08_0221C45C: ; 0x0221C45C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x20
+ add r5, r0, #0
+ add r4, r3, #0
+ bl MOD08_02228064
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ str r4, [r7, #0x1c]
+ bl MOD08_02212498
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ lsl r0, r0, #0x10
+ asr r2, r0, #0x10
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_0200C82C
+ ldr r0, [r7, #4]
+ ldr r1, _0221C4A0 ; =MOD08_0221C428
+ add r2, r7, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221C4A0: .word MOD08_0221C428
+
+ thumb_func_start MOD08_0221C4A4
+MOD08_0221C4A4: ; 0x0221C4A4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrb r0, [r5]
+ cmp r0, #0
+ beq _0221C4B6
+ cmp r0, #1
+ beq _0221C534
+ b _0221C59E
+_0221C4B6:
+ ldr r1, [r5, #0x34]
+ ldr r0, _0221C5C4 ; =0x0222C4D4
+ lsl r2, r1, #1
+ ldrsh r4, [r0, r2]
+ add r0, r1, #1
+ str r0, [r5, #0x34]
+ cmp r4, #0xff
+ beq _0221C506
+ cmp r4, #0
+ bne _0221C4FA
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C6A4
+ add r6, r0, #0
+ ldr r0, [r5, #4]
+ bl MOD08_02215574
+ cmp r6, r0
+ ldr r0, [r5, #4]
+ bne _0221C4EE
+ mov r1, #2
+ bl MOD08_02215600
+ add r1, r0, #0
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C6B0
+ b _0221C4FA
+_0221C4EE:
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C6B0
+_0221C4FA:
+ ldr r0, [r5, #0x1c]
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200C82C
+ b _0221C5B4
+_0221C506:
+ ldr r0, [r5, #0x1c]
+ mov r1, #2
+ bl FUN_0200C840
+ add r0, r5, #0
+ ldr r2, _0221C5C8 ; =0x00001FFF
+ add r0, #0x20
+ mov r1, #0
+ mov r3, #8
+ bl MOD08_02218008
+ mov r1, #7
+ ldr r0, [r5, #0x1c]
+ mvn r1, r1
+ mov r2, #0x10
+ bl FUN_0200C8DC
+ mov r0, #0
+ str r0, [r5, #0x34]
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ b _0221C5B4
+_0221C534:
+ add r0, r5, #0
+ add r0, #0x20
+ bl MOD08_02218058
+ cmp r0, #1
+ bne _0221C54E
+ ldr r1, [r5, #0x20]
+ ldr r0, [r5, #0x1c]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0200C898
+ b _0221C5B4
+_0221C54E:
+ ldr r0, [r5, #0x34]
+ cmp r0, #3
+ ble _0221C55C
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ b _0221C5B4
+_0221C55C:
+ add r0, r0, #1
+ str r0, [r5, #0x34]
+ cmp r0, #1
+ beq _0221C56E
+ cmp r0, #2
+ beq _0221C57E
+ cmp r0, #3
+ beq _0221C58E
+ b _0221C5B4
+_0221C56E:
+ add r0, r5, #0
+ ldr r1, _0221C5C8 ; =0x00001FFF
+ ldr r2, _0221C5CC ; =0xFFFFE001
+ add r0, #0x20
+ mov r3, #8
+ bl MOD08_02218008
+ b _0221C5B4
+_0221C57E:
+ ldr r1, _0221C5CC ; =0xFFFFE001
+ add r0, r5, #0
+ add r0, #0x20
+ lsr r2, r1, #0x13
+ mov r3, #8
+ bl MOD08_02218008
+ b _0221C5B4
+_0221C58E:
+ add r0, r5, #0
+ ldr r1, _0221C5C8 ; =0x00001FFF
+ add r0, #0x20
+ mov r2, #0
+ mov r3, #8
+ bl MOD08_02218008
+ b _0221C5B4
+_0221C59E:
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C3DC
+ ldr r0, [r5, #4]
+ add r1, r4, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+_0221C5B4:
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C5A8
+ ldr r0, [r5, #0x10]
+ bl FUN_0200BC1C
+ pop {r4, r5, r6, pc}
+ nop
+_0221C5C4: .word 0x0222C4D4
+_0221C5C8: .word 0x00001FFF
+_0221C5CC: .word 0xFFFFE001
+
+ thumb_func_start MOD08_0221C5D0
+MOD08_0221C5D0: ; 0x0221C5D0
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x38
+ add r5, r0, #0
+ add r6, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ str r6, [r4, #0x1c]
+ mov r0, #0
+ str r0, [r4, #0x34]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r2, r0, #0
+ ldr r0, [r4, #0x1c]
+ add r1, r6, #0
+ bl FUN_0200C714
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ ldr r0, [r4, #0x1c]
+ bne _0221C630
+ mov r1, #1
+ bl FUN_0200C5C0
+ b _0221C636
+_0221C630:
+ mov r1, #0
+ bl FUN_0200C5C0
+_0221C636:
+ ldr r0, [r4, #4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #0xc
+ bl FUN_0200C82C
+ ldr r0, [r4, #4]
+ ldr r1, _0221C65C ; =MOD08_0221C4A4
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221C65C: .word MOD08_0221C4A4
+
+ thumb_func_start MOD08_0221C660
+MOD08_0221C660: ; 0x0221C660
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C608
+ cmp r0, #0
+ ldr r0, [r4, #0x1c]
+ bne _0221C686
+ bl FUN_0200C3DC
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+_0221C686:
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221C694
+MOD08_0221C694: ; 0x0221C694
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x38
+ add r5, r0, #0
+ add r6, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ str r6, [r4, #0x1c]
+ bl MOD08_02212460
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _0221C6DC
+ mov r6, #0x48
+ mov r2, #0x20
+ mov r5, #0
+ b _0221C6F2
+_0221C6DC:
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221C6EE
+ mov r2, #0x7e
+ mov r5, #1
+ b _0221C6F2
+_0221C6EE:
+ mov r2, #0x20
+ mov r5, #0
+_0221C6F2:
+ ldr r0, [r4, #0x1c]
+ add r1, r6, #0
+ bl FUN_0200C714
+ ldr r0, [r4, #0x1c]
+ add r1, r5, #0
+ bl FUN_0200C5C0
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl MOD08_02215600
+ add r1, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C6B0
+ ldr r0, [r4, #4]
+ ldr r1, _0221C720 ; =MOD08_0221C660
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221C720: .word MOD08_0221C660
+
+ thumb_func_start MOD08_0221C724
+MOD08_0221C724: ; 0x0221C724
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhi _0221C816
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221C73E: ; jump table
+ .short _0221C746 - _0221C73E - 2 ; case 0
+ .short _0221C76C - _0221C73E - 2 ; case 1
+ .short _0221C784 - _0221C73E - 2 ; case 2
+ .short _0221C7C0 - _0221C73E - 2 ; case 3
+_0221C746:
+ mov r0, #0xa0
+ str r0, [sp]
+ mov r3, #0x70
+ mov r0, #1
+ str r3, [sp, #4]
+ mov r2, #0x15
+ str r2, [sp, #8]
+ lsl r0, r0, #0x12
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0x24
+ add r1, #0x48
+ sub r2, #0x33
+ bl MOD08_02217F50
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221C82E
+_0221C76C:
+ add r0, r4, #0
+ ldr r2, [r4, #0x1c]
+ add r0, #0x24
+ add r1, #0x48
+ bl MOD08_02217FE4
+ cmp r0, #0
+ bne _0221C82E
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221C82E
+_0221C784:
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C608
+ cmp r0, #0
+ bne _0221C82E
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200C90C
+ add r0, r4, #0
+ add r2, r4, #0
+ mov r1, #0x10
+ add r0, #0x20
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x21
+ strb r1, [r0]
+ add r1, r4, #0
+ add r1, #0x20
+ add r2, #0x21
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4, #4]
+ bl MOD08_02227994
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221C82E
+_0221C7C0:
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0221C7D8
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+_0221C7D8:
+ add r0, r4, #0
+ add r0, #0x21
+ ldrb r0, [r0]
+ cmp r0, #0x10
+ bhs _0221C7F0
+ add r0, r4, #0
+ add r0, #0x21
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x21
+ strb r1, [r0]
+_0221C7F0:
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x21
+ ldrb r0, [r0]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221C840 ; =0x04000052
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0221C82E
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221C82E
+_0221C816:
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_0221C82E:
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_0221C840: .word 0x04000052
+
+ thumb_func_start MOD08_0221C844
+MOD08_0221C844: ; 0x0221C844
+ push {r4, r5, r6, lr}
+ mov r1, #0x6c
+ add r6, r0, #0
+ add r5, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ mov r1, #0x1d
+ str r5, [r4, #0x1c]
+ add r0, r5, #0
+ mvn r1, r1
+ mov r2, #0xa0
+ bl FUN_0200C714
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl MOD08_02215600
+ add r1, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C6B0
+ ldr r0, [r4, #4]
+ ldr r1, _0221C884 ; =MOD08_0221C724
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0221C884: .word MOD08_0221C724
+
+ thumb_func_start MOD08_0221C888
+MOD08_0221C888: ; 0x0221C888
+ push {r4, lr}
+ mov r1, #0
+ add r4, r0, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ beq _0221C89E
+ add r0, r4, #0
+ bl MOD08_02218BD4
+ pop {r4, pc}
+_0221C89E:
+ add r0, r4, #0
+ bl MOD08_02218C04
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221C8A8
+MOD08_0221C8A8: ; 0x0221C8A8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0x18
+ bls _0221C8B6
+ b _0221CAAA
+_0221C8B6:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221C8C2: ; jump table
+ .short _0221C8F4 - _0221C8C2 - 2 ; case 0
+ .short _0221CAAA - _0221C8C2 - 2 ; case 1
+ .short _0221CAAA - _0221C8C2 - 2 ; case 2
+ .short _0221CAAA - _0221C8C2 - 2 ; case 3
+ .short _0221CAAA - _0221C8C2 - 2 ; case 4
+ .short _0221C9A0 - _0221C8C2 - 2 ; case 5
+ .short _0221C9A0 - _0221C8C2 - 2 ; case 6
+ .short _0221C9CA - _0221C8C2 - 2 ; case 7
+ .short _0221CAAA - _0221C8C2 - 2 ; case 8
+ .short _0221CAAA - _0221C8C2 - 2 ; case 9
+ .short _0221C9E4 - _0221C8C2 - 2 ; case 10
+ .short _0221C9E4 - _0221C8C2 - 2 ; case 11
+ .short _0221CA0E - _0221C8C2 - 2 ; case 12
+ .short _0221CAAA - _0221C8C2 - 2 ; case 13
+ .short _0221CAAA - _0221C8C2 - 2 ; case 14
+ .short _0221CA26 - _0221C8C2 - 2 ; case 15
+ .short _0221CA26 - _0221C8C2 - 2 ; case 16
+ .short _0221CA50 - _0221C8C2 - 2 ; case 17
+ .short _0221CAAA - _0221C8C2 - 2 ; case 18
+ .short _0221CAAA - _0221C8C2 - 2 ; case 19
+ .short _0221CAAA - _0221C8C2 - 2 ; case 20
+ .short _0221CAAA - _0221C8C2 - 2 ; case 21
+ .short _0221CA68 - _0221C8C2 - 2 ; case 22
+ .short _0221CA68 - _0221C8C2 - 2 ; case 23
+ .short _0221CA92 - _0221C8C2 - 2 ; case 24
+_0221C8F4:
+ ldr r0, [r4, #0x34]
+ ldr r1, _0221CAF0 ; =0xFFFF1FFF
+ cmp r0, #0
+ bne _0221C94E
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ add r5, r0, #0
+ and r2, r1
+ lsr r1, r0, #0xd
+ orr r1, r2
+ str r1, [r0]
+ add r5, #0x48
+ ldrh r3, [r5]
+ mov r2, #0x3f
+ mov r1, #0xf
+ bic r3, r2
+ orr r1, r3
+ mov r3, #0x20
+ orr r1, r3
+ strh r1, [r5]
+ add r5, r0, #0
+ add r5, #0x4a
+ ldrh r6, [r5]
+ mov r1, #0x1f
+ bic r6, r2
+ orr r1, r6
+ orr r1, r3
+ strh r1, [r5]
+ add r1, r0, #0
+ mov r2, #0x80
+ add r1, #0x40
+ strh r2, [r1]
+ ldr r1, _0221CAF4 ; =0x0000A0C0
+ add r0, #0x44
+ strh r1, [r0]
+ bl LCRandom
+ mov r1, #5
+ bl _s32_div_f
+ add r1, #0x23
+ add sp, #4
+ str r1, [r4, #0x3c]
+ pop {r3, r4, r5, r6, pc}
+_0221C94E:
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ add r5, r0, #0
+ and r2, r1
+ lsr r1, r0, #0xd
+ orr r1, r2
+ str r1, [r0]
+ add r5, #0x48
+ ldrh r3, [r5]
+ mov r2, #0x3f
+ mov r1, #0xf
+ bic r3, r2
+ orr r1, r3
+ mov r3, #0x20
+ orr r1, r3
+ strh r1, [r5]
+ add r5, r0, #0
+ add r5, #0x4a
+ ldrh r6, [r5]
+ mov r1, #0x1f
+ bic r6, r2
+ orr r1, r6
+ orr r1, r3
+ strh r1, [r5]
+ add r1, r0, #0
+ lsl r2, r3, #0xa
+ add r1, #0x40
+ strh r2, [r1]
+ ldr r1, _0221CAF8 ; =0x000056C0
+ add r0, #0x44
+ strh r1, [r0]
+ bl LCRandom
+ mov r1, #5
+ bl _s32_div_f
+ add r1, #0x23
+ add sp, #4
+ str r1, [r4, #0x3c]
+ pop {r3, r4, r5, r6, pc}
+_0221C9A0:
+ bl LCRandom
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ beq _0221C9D0
+ ldr r0, [r4, #0x38]
+ cmp r0, #0
+ bne _0221C9D0
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221C9CA:
+ ldr r0, [r4, #0x38]
+ cmp r0, #1
+ bne _0221C9D2
+_0221C9D0:
+ b _0221CAEC
+_0221C9D2:
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221C9E4:
+ bl LCRandom
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ beq _0221CAEC
+ ldr r0, [r4, #0x38]
+ cmp r0, #1
+ bne _0221CAEC
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221CA0E:
+ ldr r0, [r4, #0x38]
+ cmp r0, #2
+ beq _0221CAEC
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221CA26:
+ bl LCRandom
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ beq _0221CAEC
+ ldr r0, [r4, #0x38]
+ cmp r0, #2
+ bne _0221CAEC
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221CA50:
+ ldr r0, [r4, #0x38]
+ cmp r0, #3
+ beq _0221CAEC
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221CA68:
+ bl LCRandom
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ beq _0221CAEC
+ ldr r0, [r4, #0x38]
+ cmp r0, #3
+ bne _0221CAEC
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #8
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221CA92:
+ ldr r0, [r4, #0x38]
+ cmp r0, #4
+ beq _0221CAEC
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #8
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221CAAA:
+ ldr r1, [r4, #0x3c]
+ cmp r0, r1
+ ble _0221CAEC
+ ldr r0, [r4, #0x38]
+ cmp r0, #0x14
+ ldr r0, [r4, #0x1c]
+ bge _0221CAE6
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add r1, sp, #0
+ ldr r0, [r4, #0x1c]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r0, sp, #0
+ mov r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x82
+ ble _0221CADC
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C644
+_0221CADC:
+ ldr r0, [r4, #0x38]
+ add sp, #4
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ pop {r3, r4, r5, r6, pc}
+_0221CAE6:
+ mov r1, #0
+ bl FUN_0200C644
+_0221CAEC:
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0221CAF0: .word 0xFFFF1FFF
+_0221CAF4: .word 0x0000A0C0
+_0221CAF8: .word 0x000056C0
+
+ thumb_func_start MOD08_0221CAFC
+MOD08_0221CAFC: ; 0x0221CAFC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ beq _0221CB0E
+ add r0, r4, #0
+ bl MOD08_0221C8A8
+_0221CB0E:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ ldrb r1, [r4]
+ ldr r0, [r4, #0x24]
+ cmp r1, r0
+ blt _0221CB66
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _0221CB74 ; =0xFFFF1FFF
+ and r1, r2
+ add r2, r0, #0
+ str r1, [r0]
+ add r2, #0x48
+ ldrh r3, [r2]
+ mov r1, #0x3f
+ bic r3, r1
+ strh r3, [r2]
+ add r2, r0, #0
+ add r2, #0x4a
+ ldrh r3, [r2]
+ bic r3, r1
+ strh r3, [r2]
+ add r2, r0, #0
+ mov r1, #0
+ add r2, #0x40
+ strh r1, [r2]
+ add r0, #0x44
+ strh r1, [r0]
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C644
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+_0221CB66:
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221CB74: .word 0xFFFF1FFF
+
+ thumb_func_start MOD08_0221CB78
+MOD08_0221CB78: ; 0x0221CB78
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x40
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #0x20]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r4, #0x24]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #0x28]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #0x2c]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4, #0x30]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #0x20]
+ bl MOD08_022124D8
+ str r0, [r4, #0x1c]
+ mov r0, #0
+ str r0, [r4, #0x38]
+ ldr r1, [r4, #0x28]
+ cmp r1, #0xff
+ beq _0221CBEA
+ add r0, r5, #0
+ bl MOD08_02215600
+ add r1, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C6B0
+_0221CBEA:
+ ldr r1, [r4, #0x2c]
+ cmp r1, #0xff
+ beq _0221CBF6
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C6C4
+_0221CBF6:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ beq _0221CC28
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ cmp r0, #2
+ beq _0221CC18
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ cmp r0, #3
+ bne _0221CC28
+_0221CC18:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_0200C644
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_0221CC28:
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212460
+ str r0, [sp]
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0xff
+ beq _0221CC76
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227468
+ add r6, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD08_02227468
+ cmp r7, #3
+ bhi _0221CC76
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221CC6A: ; jump table
+ .short _0221CC72 - _0221CC6A - 2 ; case 0
+ .short _0221CCFC - _0221CC6A - 2 ; case 1
+ .short _0221CCB8 - _0221CC6A - 2 ; case 2
+ .short _0221CD40 - _0221CC6A - 2 ; case 3
+_0221CC72:
+ cmp r6, #5
+ bls _0221CC78
+_0221CC76:
+ b _0221CD82
+_0221CC78:
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221CC84: ; jump table
+ .short _0221CD82 - _0221CC84 - 2 ; case 0
+ .short _0221CD82 - _0221CC84 - 2 ; case 1
+ .short _0221CC90 - _0221CC84 - 2 ; case 2
+ .short _0221CC9A - _0221CC84 - 2 ; case 3
+ .short _0221CCA4 - _0221CC84 - 2 ; case 4
+ .short _0221CCAE - _0221CC84 - 2 ; case 5
+_0221CC90:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CC9A:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCA4:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCAE:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCB8:
+ cmp r6, #5
+ bhi _0221CD82
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221CCC8: ; jump table
+ .short _0221CD82 - _0221CCC8 - 2 ; case 0
+ .short _0221CD82 - _0221CCC8 - 2 ; case 1
+ .short _0221CCD4 - _0221CCC8 - 2 ; case 2
+ .short _0221CCDE - _0221CCC8 - 2 ; case 3
+ .short _0221CCE8 - _0221CCC8 - 2 ; case 4
+ .short _0221CCF2 - _0221CCC8 - 2 ; case 5
+_0221CCD4:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCDE:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCE8:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCF2:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCFC:
+ cmp r0, #5
+ bhi _0221CD82
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221CD0C: ; jump table
+ .short _0221CD82 - _0221CD0C - 2 ; case 0
+ .short _0221CD82 - _0221CD0C - 2 ; case 1
+ .short _0221CD18 - _0221CD0C - 2 ; case 2
+ .short _0221CD22 - _0221CD0C - 2 ; case 3
+ .short _0221CD2C - _0221CD0C - 2 ; case 4
+ .short _0221CD36 - _0221CD0C - 2 ; case 5
+_0221CD18:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD22:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD2C:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD36:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD40:
+ cmp r0, #5
+ bhi _0221CD82
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221CD50: ; jump table
+ .short _0221CD82 - _0221CD50 - 2 ; case 0
+ .short _0221CD82 - _0221CD50 - 2 ; case 1
+ .short _0221CD5C - _0221CD50 - 2 ; case 2
+ .short _0221CD66 - _0221CD50 - 2 ; case 3
+ .short _0221CD70 - _0221CD50 - 2 ; case 4
+ .short _0221CD7A - _0221CD50 - 2 ; case 5
+_0221CD5C:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD66:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD70:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD7A:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+_0221CD82:
+ ldr r0, [r4, #4]
+ ldr r1, _0221CD90 ; =MOD08_0221CAFC
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221CD90: .word MOD08_0221CAFC
+
+ thumb_func_start MOD08_0221CD94
+MOD08_0221CD94: ; 0x0221CD94
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r2, r0, #0
+ ldr r0, [r6, #0x2c]
+ cmp r0, #0
+ bne _0221CDB0
+ ldr r0, [r6, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r6, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+_0221CDB0:
+ sub r0, r0, #1
+ str r0, [r6, #0x2c]
+ mov r4, #0
+ add r5, r6, #0
+_0221CDB8:
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0
+ beq _0221CDC2
+ bl FUN_0200C5A8
+_0221CDC2:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0221CDB8
+ ldr r0, [r6, #0xc]
+ bl FUN_0200BC1C
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221CDD4
+MOD08_0221CDD4: ; 0x0221CDD4
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x34
+ add r4, r0, #0
+ bl MOD08_02228064
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD08_02227B70
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ bne _0221CDF8
+ mov r0, #3
+ b _0221CE00
+_0221CDF8:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD08_02212498
+_0221CE00:
+ ldr r5, _0221CE38 ; =0x0222D5A0
+ str r0, [r7, #0x2c]
+ mov r6, #0
+ add r4, r7, #0
+_0221CE08:
+ ldr r0, [r7, #4]
+ add r1, r6, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _0221CE1C
+ ldr r1, [r5]
+ bl FUN_0200C6C4
+_0221CE1C:
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0221CE08
+ ldr r0, [r7, #4]
+ ldr r1, _0221CE3C ; =MOD08_0221CD94
+ add r2, r7, #0
+ bl MOD08_02212400
+ add r1, r7, #0
+ bl MOD08_0221CD94
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221CE38: .word 0x0222D5A0
+_0221CE3C: .word MOD08_0221CD94
+
+ thumb_func_start MOD08_0221CE40
+MOD08_0221CE40: ; 0x0221CE40
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrb r0, [r5, #8]
+ cmp r0, #0
+ beq _0221CE54
+ cmp r0, #1
+ beq _0221CE9A
+ b _0221CEB2
+_0221CE54:
+ mov r0, #0
+ str r0, [r5]
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ bl MOD08_022155C4
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD08_02218998
+ add r6, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD08_02212014
+ mov r1, #0xc8
+ str r1, [sp]
+ mov r3, #2
+ str r4, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ str r6, [sp, #0xc]
+ str r0, [sp, #0x10]
+ add r0, r1, #0
+ mov r1, #0xa0
+ mov r2, #0xb6
+ lsl r3, r3, #0x10
+ bl MOD08_022188DC
+ str r0, [r5, #0x24]
+ ldrb r0, [r5, #8]
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r5, #8]
+ pop {r3, r4, r5, r6, pc}
+_0221CE9A:
+ ldr r0, [r5]
+ add r1, r0, #1
+ str r1, [r5]
+ ldr r0, [r5, #4]
+ cmp r1, r0
+ blt _0221CEC0
+ ldr r0, [r5, #0x24]
+ bl MOD08_0221894C
+ ldrb r0, [r5, #8]
+ add r0, r0, #1
+ strb r0, [r5, #8]
+_0221CEB2:
+ ldr r0, [r5, #0xc]
+ add r1, r4, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FreeToHeap
+_0221CEC0:
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0221CEC4
+MOD08_0221CEC4: ; 0x0221CEC4
+ push {r3, r4, r5, lr}
+ mov r1, #0x28
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #8
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #4]
+ ldr r0, [r4, #0xc]
+ ldr r1, _0221CEF0 ; =MOD08_0221CE40
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221CEF0: .word MOD08_0221CE40
+
+ thumb_func_start MOD08_0221CEF4
+MOD08_0221CEF4: ; 0x0221CEF4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r1, #0
+ str r0, [sp, #0xc]
+ ldrb r0, [r4]
+ cmp r0, #3
+ bls _0221CF04
+ b _0221D076
+_0221CF04:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221CF10: ; jump table
+ .short _0221CF18 - _0221CF10 - 2 ; case 0
+ .short _0221CFCA - _0221CF10 - 2 ; case 1
+ .short _0221CFE8 - _0221CF10 - 2 ; case 2
+ .short _0221D042 - _0221CF10 - 2 ; case 3
+_0221CF18:
+ ldrb r0, [r4, #4]
+ mov r7, #0
+ add r1, r7, #0
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ ldr r0, [r4, #8]
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221CF8E
+ ldr r6, _0221D0E4 ; =0x0222C536
+ add r5, r4, #0
+_0221CF30:
+ add r1, sp, #0x10
+ ldr r0, [r5, #0x14]
+ add r1, #2
+ add r2, sp, #0x10
+ bl FUN_0200C7A0
+ ldrb r1, [r4, #4]
+ ldrb r0, [r6]
+ cmp r1, r0
+ blo _0221CF74
+ add r0, r4, r7
+ ldrb r1, [r0, #1]
+ add r1, r1, #1
+ strb r1, [r0, #1]
+ ldrb r2, [r0, #1]
+ ldrb r1, [r6, #1]
+ cmp r2, r1
+ blo _0221CF7C
+ mov r1, #0
+ strb r1, [r0, #1]
+ ldr r0, [r5, #0x14]
+ bl FUN_0200C658
+ cmp r0, #1
+ ldr r0, [r5, #0x14]
+ bne _0221CF6C
+ mov r1, #0
+ bl FUN_0200C644
+ b _0221CF7C
+_0221CF6C:
+ mov r1, #1
+ bl FUN_0200C644
+ b _0221CF7C
+_0221CF74:
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ bl FUN_0200C644
+_0221CF7C:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ add r5, r5, #4
+ add r6, r6, #2
+ add r7, r7, #1
+ bl MOD08_02212498
+ cmp r7, r0
+ blt _0221CF30
+_0221CF8E:
+ ldrb r0, [r4, #4]
+ cmp r0, #0x2d
+ blo _0221D02C
+ mov r5, #0
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221CFBE
+ add r6, r4, #0
+ mov r7, #1
+_0221CFA6:
+ ldr r0, [r6, #0x14]
+ add r1, r7, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #8]
+ mov r1, #0
+ add r6, r6, #4
+ add r5, r5, #1
+ bl MOD08_02212498
+ cmp r5, r0
+ blt _0221CFA6
+_0221CFBE:
+ mov r0, #0
+ strb r0, [r4, #4]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221D0B0
+_0221CFCA:
+ mov r1, #0x64
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x20
+ mov r2, #0x3c
+ add r3, r1, #0
+ bl MOD08_022181A8
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221D0B0
+_0221CFE8:
+ add r0, r4, #0
+ add r0, #0x20
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221D02E
+ mov r5, #0
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221D0B0
+ add r7, r4, #0
+ add r6, r4, #0
+ add r7, #0x20
+_0221D008:
+ add r0, r7, #0
+ add r1, sp, #0x18
+ add r2, sp, #0x14
+ bl MOD08_0221825C
+ ldr r0, [r6, #0x14]
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ bl FUN_0200C884
+ ldr r0, [r4, #8]
+ mov r1, #0
+ add r6, r6, #4
+ add r5, r5, #1
+ bl MOD08_02212498
+ cmp r5, r0
+ blt _0221D008
+_0221D02C:
+ b _0221D0B0
+_0221D02E:
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ ldrb r0, [r4, #4]
+ cmp r0, #0x2d
+ blo _0221D0B0
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221D0B0
+_0221D042:
+ ldrb r0, [r4, #5]
+ cmp r0, #0
+ beq _0221D04C
+ sub r0, r0, #1
+ strb r0, [r4, #5]
+_0221D04C:
+ ldrb r0, [r4, #6]
+ cmp r0, #0xf
+ bhs _0221D056
+ add r0, r0, #1
+ strb r0, [r4, #6]
+_0221D056:
+ ldrb r0, [r4, #5]
+ cmp r0, #0
+ bne _0221D068
+ ldrb r0, [r4, #6]
+ cmp r0, #0xf
+ bne _0221D068
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221D068:
+ ldrb r0, [r4, #6]
+ ldrb r1, [r4, #5]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221D0E8 ; =0x04000052
+ strh r1, [r0]
+ b _0221D0B0
+_0221D076:
+ mov r5, #0
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221D09E
+ add r6, r4, #0
+ add r7, r5, #0
+_0221D088:
+ ldr r0, [r6, #0x14]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #8]
+ add r1, r7, #0
+ add r6, r6, #4
+ add r5, r5, #1
+ bl MOD08_02212498
+ cmp r5, r0
+ blt _0221D088
+_0221D09E:
+ ldr r0, [r4, #8]
+ ldr r1, [sp, #0xc]
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+_0221D0B0:
+ mov r5, #0
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221D0DA
+ add r6, r4, #0
+ add r7, r5, #0
+_0221D0C2:
+ ldr r0, [r6, #0x14]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldr r0, [r4, #8]
+ add r1, r7, #0
+ add r6, r6, #4
+ add r5, r5, #1
+ bl MOD08_02212498
+ cmp r5, r0
+ blt _0221D0C2
+_0221D0DA:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221D0E4: .word 0x0222C536
+_0221D0E8: .word 0x04000052
+
+ thumb_func_start MOD08_0221D0EC
+MOD08_0221D0EC: ; 0x0221D0EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ str r0, [sp]
+ add r5, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_02212014
+ mov r1, #0x44
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _0221D10A
+ bl ErrorHandling
+_0221D10A:
+ mov r0, #0
+ strb r0, [r4, #4]
+ strb r0, [r4]
+ str r5, [r4, #0xc]
+ ldr r0, [sp]
+ str r6, [r4, #0x10]
+ str r0, [r4, #8]
+ ldr r1, [sp]
+ add r0, sp, #8
+ bl MOD08_02215474
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ bl MOD08_02227994
+ mov r0, #0xf
+ strb r0, [r4, #5]
+ mov r0, #0
+ strb r0, [r4, #6]
+ ldrb r0, [r4, #6]
+ ldrb r1, [r4, #5]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221D21C ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [sp]
+ str r7, [r4, #0x14]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221D166
+ ldr r0, [sp]
+ bl MOD08_02212004
+ add r1, r0, #0
+ mov r0, #0
+ add r2, sp, #4
+ bl MOD08_02227564
+ b _0221D176
+_0221D166:
+ ldr r0, [sp]
+ bl MOD08_02212004
+ add r1, r0, #0
+ mov r0, #1
+ add r2, sp, #4
+ bl MOD08_02227564
+_0221D176:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ mov r6, #1
+ bl MOD08_02212498
+ cmp r0, #1
+ ble _0221D1B0
+ add r5, r4, #4
+ add r7, sp, #4
+_0221D188:
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ add r2, sp, #8
+ bl FUN_0200C154
+ str r0, [r5, #0x14]
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r7, r1]
+ ldrsh r2, [r7, r2]
+ bl FUN_0200C714
+ ldr r0, [r4, #8]
+ mov r1, #0
+ add r5, r5, #4
+ add r6, r6, #1
+ bl MOD08_02212498
+ cmp r6, r0
+ blt _0221D188
+_0221D1B0:
+ add r3, sp, #4
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C714
+ mov r6, #0
+ ldr r0, [r4, #8]
+ add r1, r6, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221D20A
+ add r5, r4, #0
+ add r7, r6, #0
+_0221D1D2:
+ add r1, r4, r6
+ mov r0, #0
+ strb r0, [r1, #1]
+ ldr r0, [r5, #0x14]
+ mov r1, #2
+ bl FUN_0200C840
+ mov r2, #0x20
+ sub r2, r2, r7
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ asr r2, r2, #0x10
+ bl FUN_0200C82C
+ ldr r0, [r5, #0x14]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #8]
+ mov r1, #0
+ add r5, r5, #4
+ add r7, r7, #4
+ add r6, r6, #1
+ bl MOD08_02212498
+ cmp r6, r0
+ blt _0221D1D2
+_0221D20A:
+ mov r3, #1
+ ldr r0, [sp]
+ ldr r1, _0221D220 ; =MOD08_0221CEF4
+ add r2, r4, #0
+ lsl r3, r3, #0xc
+ bl MOD08_022123E4
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221D21C: .word 0x04000052
+_0221D220: .word MOD08_0221CEF4
+
+ thumb_func_start MOD08_0221D224
+MOD08_0221D224: ; 0x0221D224
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #5
+ bls _0221D234
+ b _0221D404
+_0221D234:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221D240: ; jump table
+ .short _0221D24C - _0221D240 - 2 ; case 0
+ .short _0221D2AE - _0221D240 - 2 ; case 1
+ .short _0221D2C8 - _0221D240 - 2 ; case 2
+ .short _0221D2EC - _0221D240 - 2 ; case 3
+ .short _0221D346 - _0221D240 - 2 ; case 4
+ .short _0221D394 - _0221D240 - 2 ; case 5
+_0221D24C:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _0221D2A4
+ add r0, r4, #0
+ add r0, #0x38
+ bl MOD08_022183F0
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r2, #0x38
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_020079E0
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x28]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221D2A4:
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D2AE:
+ mov r0, #0x1f
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, [r4, #0x10]
+ mov r2, #0xa
+ add r3, r1, #0
+ bl FUN_02007E68
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D2C8:
+ ldr r0, [r4, #0x10]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _0221D2F6
+ mov r0, #0x1f
+ str r0, [sp]
+ mov r2, #0
+ ldr r0, [r4, #0x10]
+ mov r1, #0xa
+ add r3, r2, #0
+ bl FUN_02007E68
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D2EC:
+ ldr r0, [r4, #0x10]
+ bl FUN_02007F20
+ cmp r0, #0
+ beq _0221D2F8
+_0221D2F6:
+ b _0221D412
+_0221D2F8:
+ ldrb r0, [r4, #8]
+ add r0, r0, #1
+ strb r0, [r4, #8]
+ ldrb r0, [r4, #8]
+ cmp r0, #3
+ blo _0221D33E
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl MOD08_02212498
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl MOD08_02212498
+ add r6, r0, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [sp]
+ add r0, r4, #0
+ lsl r1, r5, #0x10
+ lsl r3, r6, #0x10
+ add r0, #0x14
+ asr r1, r1, #0x10
+ mov r2, #0x64
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D33E:
+ mov r0, #1
+ add sp, #4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D346:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _0221D38A
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x28]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221D38A:
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D394:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ ldr r0, [r4, #0x10]
+ bne _0221D3D8
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x28]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221D3D8:
+ mov r1, #0xc
+ add r2, r1, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02007558
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D404:
+ ldr r0, [r4, #0xc]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221D412:
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221D418
+MOD08_0221D418: ; 0x0221D418
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x5c
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4, #8]
+ strb r0, [r4]
+ str r5, [r4, #0xc]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_0221552C
+ str r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0x64
+ lsl r3, r6, #0x10
+ add r0, #0x14
+ add r2, r1, #0
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ mov r0, #0xa
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x38
+ mov r1, #2
+ add r3, r2, #0
+ bl MOD08_022183C0
+ ldr r0, [r4, #0xc]
+ ldr r1, _0221D4A0 ; =MOD08_0221D224
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0221D4A0: .word MOD08_0221D224
+
+ thumb_func_start MOD08_0221D4A4
+MOD08_0221D4A4: ; 0x0221D4A4
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #4
+ bls _0221D4B4
+ b _0221D6CC
+_0221D4B4:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221D4C0: ; jump table
+ .short _0221D4CA - _0221D4C0 - 2 ; case 0
+ .short _0221D530 - _0221D4C0 - 2 ; case 1
+ .short _0221D594 - _0221D4C0 - 2 ; case 2
+ .short _0221D5F8 - _0221D4C0 - 2 ; case 3
+ .short _0221D65C - _0221D4C0 - 2 ; case 4
+_0221D4CA:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221D50E
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x24]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221D50E:
+ mov r1, #0x96
+ str r1, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r2, #0x32
+ add r0, #0x10
+ add r3, r2, #0
+ bl MOD08_022181A8
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221D530:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221D574
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x24]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221D574:
+ mov r2, #0x64
+ str r2, [sp]
+ str r2, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ mov r1, #0x32
+ mov r3, #0x96
+ bl MOD08_022181A8
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221D594:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221D5D8
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x24]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221D5D8:
+ mov r2, #0x96
+ mov r1, #0x64
+ str r2, [sp]
+ str r1, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ add r3, r1, #0
+ bl MOD08_022181A8
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221D5F8:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221D63C
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x24]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221D63C:
+ mov r2, #0x64
+ str r2, [sp]
+ str r2, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x96
+ add r0, #0x10
+ add r3, r1, #0
+ bl MOD08_022181A8
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221D65C:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #1
+ ldr r0, [r4, #0xc]
+ bne _0221D6A0
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x24]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221D6A0:
+ mov r1, #0xc
+ add r2, r1, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0xc]
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_02007558
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221D6CC:
+ ldr r0, [r4, #8]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221D6E0
+MOD08_0221D6E0: ; 0x0221D6E0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x58
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ str r5, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_0221552C
+ str r0, [r4, #4]
+ mov r0, #0x32
+ str r0, [sp]
+ mov r1, #0x64
+ str r1, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ mov r2, #0x96
+ add r3, r1, #0
+ bl MOD08_022181A8
+ ldr r0, [r4, #8]
+ ldr r1, _0221D748 ; =MOD08_0221D4A4
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_0221D748: .word MOD08_0221D4A4
+
+ thumb_func_start MOD08_0221D74C
+MOD08_0221D74C: ; 0x0221D74C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r5, #1]
+ cmp r0, #0
+ beq _0221D766
+ cmp r0, #1
+ beq _0221D84C
+ cmp r0, #2
+ bne _0221D764
+ b _0221D8AE
+_0221D764:
+ b _0221D8E2
+_0221D766:
+ ldrb r3, [r5]
+ mov r0, #0x1f
+ lsr r2, r3, #0x1f
+ lsl r1, r3, #0x1f
+ sub r1, r1, r2
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #1
+ add r1, r3, #1
+ str r0, [sp, #0xc]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ str r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ mov r0, #6
+ mul r0, r1
+ ldr r1, _0221D900 ; =0x0222C59A
+ ldrsh r2, [r1, r0]
+ ldr r1, [sp, #8]
+ sub r7, r2, r1
+ mov r1, #0xa
+ ldrsh r3, [r5, r1]
+ ldr r1, _0221D904 ; =0x0222C598
+ ldrsh r6, [r1, r0]
+ mov r1, #8
+ ldrsh r2, [r5, r1]
+ ldr r1, _0221D908 ; =0x0222C596
+ ldrsh r4, [r1, r0]
+ lsl r0, r7, #0x10
+ str r3, [sp]
+ add r1, r2, r4
+ lsr r0, r0, #0x10
+ add r2, r2, r6
+ str r0, [sp, #4]
+ add r0, r5, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ add r0, #0x28
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ mov r0, #0xa
+ ldrsh r3, [r5, r0]
+ mov r0, #8
+ ldrsh r2, [r5, r0]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ sub r1, r2, r4
+ str r3, [sp]
+ sub r2, r2, r6
+ str r0, [sp, #4]
+ add r0, r5, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ add r0, #0x4c
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ ldr r0, [sp, #0xc]
+ add r1, r0, #1
+ mov r0, #6
+ mul r0, r1
+ ldr r1, _0221D900 ; =0x0222C59A
+ ldrsh r2, [r1, r0]
+ ldr r1, [sp, #8]
+ sub r7, r2, r1
+ mov r1, #0xa
+ ldrsh r3, [r5, r1]
+ ldr r1, _0221D904 ; =0x0222C598
+ ldrsh r6, [r1, r0]
+ mov r1, #8
+ ldrsh r2, [r5, r1]
+ ldr r1, _0221D908 ; =0x0222C596
+ ldrsh r4, [r1, r0]
+ lsl r0, r7, #0x10
+ str r3, [sp]
+ add r1, r2, r4
+ lsr r0, r0, #0x10
+ add r2, r2, r6
+ str r0, [sp, #4]
+ add r0, r5, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ add r0, #0x70
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ mov r0, #0xa
+ ldrsh r3, [r5, r0]
+ mov r0, #8
+ ldrsh r2, [r5, r0]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ sub r1, r2, r4
+ str r3, [sp]
+ sub r2, r2, r6
+ str r0, [sp, #4]
+ add r0, r5, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ add r0, #0x94
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ ldrb r0, [r5, #1]
+ add r0, r0, #1
+ strb r0, [r5, #1]
+_0221D84C:
+ mov r0, #0
+ add r7, r5, #0
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ add r7, #0x28
+ add r6, r5, #0
+ add r4, r5, #0
+_0221D85A:
+ add r0, r7, #0
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221D870
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10]
+ b _0221D87E
+_0221D870:
+ mov r1, #0x28
+ mov r2, #0x2a
+ ldrsh r1, [r6, r1]
+ ldrsh r2, [r6, r2]
+ ldr r0, [r4, #0x18]
+ bl FUN_0200C714
+_0221D87E:
+ ldr r0, [r4, #0x18]
+ bl FUN_0200C5A8
+ ldr r0, [sp, #0x14]
+ add r7, #0x24
+ add r0, r0, #1
+ add r6, #0x24
+ add r4, r4, #4
+ str r0, [sp, #0x14]
+ cmp r0, #4
+ blt _0221D85A
+ ldr r0, [sp, #0x10]
+ cmp r0, #4
+ bne _0221D8F4
+ ldrb r0, [r5]
+ cmp r0, #9
+ bne _0221D8A8
+ ldrb r0, [r5, #1]
+ add r0, r0, #1
+ strb r0, [r5, #1]
+ b _0221D8F4
+_0221D8A8:
+ mov r0, #0
+ strb r0, [r5, #1]
+ b _0221D8F4
+_0221D8AE:
+ ldrb r0, [r5, #4]
+ cmp r0, #0
+ beq _0221D8B8
+ sub r0, r0, #1
+ strb r0, [r5, #4]
+_0221D8B8:
+ ldrb r0, [r5, #5]
+ cmp r0, #0xf
+ bhs _0221D8C2
+ add r0, r0, #1
+ strb r0, [r5, #5]
+_0221D8C2:
+ ldrb r0, [r5, #4]
+ cmp r0, #0
+ bne _0221D8D4
+ ldrb r0, [r5, #5]
+ cmp r0, #0xf
+ bne _0221D8D4
+ ldrb r0, [r5, #1]
+ add r0, r0, #1
+ strb r0, [r5, #1]
+_0221D8D4:
+ ldrb r0, [r5, #5]
+ ldrb r1, [r5, #4]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221D90C ; =0x04000052
+ strh r1, [r0]
+ b _0221D8F4
+_0221D8E2:
+ ldr r0, [r5, #0xc]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FreeToHeap
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0221D8F4:
+ ldr r0, [r5, #0x14]
+ bl FUN_0200BC1C
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221D900: .word 0x0222C59A
+_0221D904: .word 0x0222C598
+_0221D908: .word 0x0222C596
+_0221D90C: .word 0x04000052
+
+ thumb_func_start MOD08_0221D910
+MOD08_0221D910: ; 0x0221D910
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #0x18]
+ bl MOD08_02212014
+ mov r1, #0xb8
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4, #1]
+ strb r0, [r4]
+ ldr r0, [sp, #0x18]
+ str r0, [r4, #0xc]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #8]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0xa]
+ ldr r0, [r4, #0x10]
+ mov r1, #0x29
+ bl FUN_0200782C
+ mov r1, #0xa
+ ldrsh r1, [r4, r1]
+ sub r0, r1, r0
+ strh r0, [r4, #0xa]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212504
+ str r0, [r4, #0x14]
+ mov r0, #8
+ strb r0, [r4, #4]
+ mov r1, #6
+ strb r1, [r4, #5]
+ sub r1, r1, #7
+ ldr r0, [r4, #0xc]
+ add r2, r1, #0
+ bl MOD08_02227994
+ ldrb r0, [r4, #5]
+ ldrb r1, [r4, #4]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221DB90 ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_0221550C
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215574
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_0221551C
+ str r0, [sp, #0x1c]
+ mov r6, #0
+ add r5, r4, #0
+_0221D9AE:
+ ldr r0, [r4, #0xc]
+ add r1, r6, #0
+ bl MOD08_022124D8
+ mov r1, #1
+ str r0, [r5, #0x18]
+ bl FUN_0200C90C
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0221D9AE
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_02227470
+ cmp r0, #3
+ ldr r0, [r4, #0x18]
+ bne _0221DA9E
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x20]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x24]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x18]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x20]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x24]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x18]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ add r6, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ lsl r0, r5, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ add r0, r6, #0
+ bl FUN_02003B40
+ ldr r0, [r4, #0x20]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ add r6, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ lsl r0, r5, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0xc4
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ add r0, r6, #0
+ bl FUN_02003B40
+ b _0221DB80
+_0221DA9E:
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x20]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x24]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x18]
+ add r1, r7, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ add r1, r7, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x20]
+ add r1, r7, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x24]
+ add r1, r7, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x18]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x20]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x24]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x18]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ add r6, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ lsl r0, r5, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0xc4
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ add r0, r6, #0
+ bl FUN_02003B40
+ ldr r0, [r4, #0x20]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ add r6, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ lsl r0, r5, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ add r0, r6, #0
+ bl FUN_02003B40
+_0221DB80:
+ ldr r0, [r4, #0xc]
+ ldr r1, _0221DB94 ; =MOD08_0221D74C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0221DB90: .word 0x04000052
+_0221DB94: .word MOD08_0221D74C
+
+ thumb_func_start MOD08_0221DB98
+MOD08_0221DB98: ; 0x0221DB98
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221DBAA
+ cmp r0, #1
+ beq _0221DC04
+ b _0221DC44
+_0221DBAA:
+ ldrb r1, [r4, #2]
+ ldr r5, _0221DC54 ; =0x0222C531
+ mov r2, #0x64
+ lsl r0, r1, #1
+ add r3, r1, r0
+ ldr r0, _0221DC58 ; =0x0222C532
+ ldr r1, _0221DC5C ; =0x0222C530
+ ldrb r0, [r0, r3]
+ ldrb r1, [r1, r3]
+ ldrb r3, [r5, r3]
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD08_02218120
+ ldrb r0, [r4, #2]
+ cmp r0, #0
+ ldr r0, _0221DC60 ; =0x00007FFF
+ bne _0221DBE0
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, [r4, #8]
+ mov r2, #6
+ add r3, r1, #0
+ bl FUN_02007E68
+ b _0221DBEE
+_0221DBE0:
+ str r0, [sp]
+ mov r2, #0
+ ldr r0, [r4, #8]
+ mov r1, #6
+ add r3, r2, #0
+ bl FUN_02007E68
+_0221DBEE:
+ ldrb r1, [r4, #2]
+ mov r0, #1
+ eor r0, r1
+ strb r0, [r4, #2]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_0221DC04:
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD08_02218170
+ cmp r0, #0
+ bne _0221DC2C
+ ldr r0, [r4, #8]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _0221DC2C
+ ldrb r0, [r4, #1]
+ cmp r0, #4
+ ldrb r0, [r4]
+ bhs _0221DC28
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _0221DC2C
+_0221DC28:
+ add r0, r0, #1
+ strb r0, [r4]
+_0221DC2C:
+ mov r1, #0xc
+ ldrsh r2, [r4, r1]
+ ldr r0, [r4, #8]
+ bl FUN_02007558
+ mov r2, #0xe
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0xd
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_0221DC44:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221DC54: .word 0x0222C531
+_0221DC58: .word 0x0222C532
+_0221DC5C: .word 0x0222C530
+_0221DC60: .word 0x00007FFF
+
+ thumb_func_start MOD08_0221DC64
+MOD08_0221DC64: ; 0x0221DC64
+ push {r3, r4, r5, lr}
+ mov r1, #0x30
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #2]
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ ldr r1, _0221DC98 ; =MOD08_0221DB98
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0221DC98: .word MOD08_0221DB98
+
+ thumb_func_start MOD08_0221DC9C
+MOD08_0221DC9C: ; 0x0221DC9C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221DCB0
+ cmp r0, #1
+ beq _0221DCEA
+ b _0221DD42
+_0221DCB0:
+ ldrb r1, [r4, #1]
+ ldr r2, _0221DD54 ; =0x0222C578
+ ldr r5, _0221DD58 ; =0x0222C579
+ lsl r0, r1, #2
+ add r3, r1, r0
+ ldr r0, _0221DD5C ; =0x0222C57A
+ ldr r1, _0221DD60 ; =0x0222C577
+ ldrb r0, [r0, r3]
+ ldrb r1, [r1, r3]
+ ldrb r2, [r2, r3]
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ ldr r0, _0221DD64 ; =0x0222C57B
+ ldrb r0, [r0, r3]
+ ldrb r3, [r5, r3]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_022181A8
+ ldrb r0, [r4, #1]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0221DCEA:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221DD08
+ ldrb r0, [r4, #1]
+ cmp r0, #3
+ ldrb r0, [r4]
+ bhs _0221DD04
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _0221DD08
+_0221DD04:
+ add r0, r0, #1
+ strb r0, [r4]
+_0221DD08:
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ mov r1, #4
+ ldrsh r0, [r4, r0]
+ ldrsh r1, [r4, r1]
+ ldr r2, [r4, #0x24]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0221DD42:
+ ldr r0, [r4, #8]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_0221DD54: .word 0x0222C578
+_0221DD58: .word 0x0222C579
+_0221DD5C: .word 0x0222C57A
+_0221DD60: .word 0x0222C577
+_0221DD64: .word 0x0222C57B
+
+ thumb_func_start MOD08_0221DD68
+MOD08_0221DD68: ; 0x0221DD68
+ push {r3, r4, r5, lr}
+ mov r1, #0x34
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ str r5, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_0221552C
+ strh r0, [r4, #4]
+ ldr r0, [r4, #8]
+ ldr r1, _0221DDB0 ; =MOD08_0221DC9C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221DDB0: .word MOD08_0221DC9C
+
+ thumb_func_start MOD08_0221DDB4
+MOD08_0221DDB4: ; 0x0221DDB4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #5
+ bls _0221DDC4
+ b _0221DF24
+_0221DDC4:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221DDD0: ; jump table
+ .short _0221DDDC - _0221DDD0 - 2 ; case 0
+ .short _0221DE16 - _0221DDD0 - 2 ; case 1
+ .short _0221DE58 - _0221DDD0 - 2 ; case 2
+ .short _0221DE82 - _0221DDD0 - 2 ; case 3
+ .short _0221DEA4 - _0221DDD0 - 2 ; case 4
+ .short _0221DEE2 - _0221DDD0 - 2 ; case 5
+_0221DDDC:
+ ldrb r1, [r4, #1]
+ ldr r2, _0221DF64 ; =0x0222C550
+ ldr r5, _0221DF68 ; =0x0222C551
+ lsl r0, r1, #2
+ add r3, r1, r0
+ ldr r0, _0221DF6C ; =0x0222C552
+ ldr r1, _0221DF70 ; =0x0222C54F
+ ldrb r0, [r0, r3]
+ ldrb r1, [r1, r3]
+ ldrb r2, [r2, r3]
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ ldr r0, _0221DF74 ; =0x0222C553
+ ldrb r0, [r0, r3]
+ ldrb r3, [r5, r3]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_022181A8
+ ldrb r0, [r4, #1]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0221DE16:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221DE28
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221DE28:
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #2
+ mov r2, #6
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ bl MOD08_022182DC
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0221DE58:
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ mov r1, #0
+ add r3, r0, #0
+ lsl r3, r3, #0x10
+ str r1, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x10
+ add r2, r1, #0
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0221DE82:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221DE94
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221DE94:
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0221DEA4:
+ ldrb r1, [r4, #1]
+ ldr r2, _0221DF64 ; =0x0222C550
+ ldr r5, _0221DF68 ; =0x0222C551
+ lsl r0, r1, #2
+ add r3, r1, r0
+ ldr r0, _0221DF6C ; =0x0222C552
+ ldr r1, _0221DF70 ; =0x0222C54F
+ ldrb r0, [r0, r3]
+ ldrb r1, [r1, r3]
+ ldrb r2, [r2, r3]
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ ldr r0, _0221DF74 ; =0x0222C553
+ ldrb r0, [r0, r3]
+ ldrb r3, [r5, r3]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_022181A8
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0221DEE2:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221DEF4
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221DEF4:
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #1
+ str r0, [sp]
+ mov r1, #2
+ mov r2, #6
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ bl MOD08_022182DC
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0221DF24:
+ mov r2, #4
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #0xc]
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #0xc]
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0xc]
+ add r2, #0xf3
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_0221DF64: .word 0x0222C550
+_0221DF68: .word 0x0222C551
+_0221DF6C: .word 0x0222C552
+_0221DF70: .word 0x0222C54F
+_0221DF74: .word 0x0222C553
+
+ thumb_func_start MOD08_0221DF78
+MOD08_0221DF78: ; 0x0221DF78
+ push {r3, r4, r5, lr}
+ mov r1, #0x34
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ str r5, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ strh r0, [r4, #4]
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_0221552C
+ strh r0, [r4, #6]
+ ldr r0, [r4, #8]
+ ldr r1, _0221DFC8 ; =MOD08_0221DDB4
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0221DFC8: .word MOD08_0221DDB4
+
+ thumb_func_start MOD08_0221DFCC
+MOD08_0221DFCC: ; 0x0221DFCC
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #4
+ bhi _0221E0B6
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221DFE6: ; jump table
+ .short _0221DFF0 - _0221DFE6 - 2 ; case 0
+ .short _0221E02A - _0221DFE6 - 2 ; case 1
+ .short _0221E048 - _0221DFE6 - 2 ; case 2
+ .short _0221E05E - _0221DFE6 - 2 ; case 3
+ .short _0221E098 - _0221DFE6 - 2 ; case 4
+_0221DFF0:
+ ldr r0, [r4, #8]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _0221E0C8 ; =0x00007FFF
+ mov r1, #1
+ str r0, [sp, #8]
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #4]
+ lsr r2, r2, #0x10
+ sub r3, r1, #3
+ bl FUN_02003210
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4, #0x10]
+ mov r2, #0x10
+ add r3, r1, #0
+ bl FUN_02007E68
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221E02A:
+ ldr r0, [r4, #4]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0221E0C4
+ ldr r0, [r4, #0x10]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _0221E0C4
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221E048:
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #5
+ bls _0221E0C4
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221E05E:
+ ldr r0, [r4, #8]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _0221E0C8 ; =0x00007FFF
+ mov r1, #1
+ str r0, [sp, #8]
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #4]
+ lsr r2, r2, #0x10
+ sub r3, r1, #3
+ bl FUN_02003210
+ mov r2, #0
+ str r2, [sp]
+ ldr r0, [r4, #0x10]
+ mov r1, #0x10
+ add r3, r2, #0
+ bl FUN_02007E68
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221E098:
+ ldr r0, [r4, #4]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0221E0C4
+ ldr r0, [r4, #0x10]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _0221E0C4
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221E0B6:
+ ldr r0, [r4, #8]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221E0C4:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_0221E0C8: .word 0x00007FFF
+
+ thumb_func_start MOD08_0221E0CC
+MOD08_0221E0CC: ; 0x0221E0CC
+ push {r3, r4, r5, lr}
+ mov r1, #0x14
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02215504
+ str r0, [r4, #4]
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #8]
+ ldr r1, _0221E100 ; =MOD08_0221DFCC
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0221E100: .word MOD08_0221DFCC
+
+ thumb_func_start MOD08_0221E104
+MOD08_0221E104: ; 0x0221E104
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221E118
+ cmp r0, #1
+ beq _0221E184
+ b _0221E1F8
+_0221E118:
+ ldrb r1, [r4, #1]
+ ldr r2, _0221E20C ; =0x0222C55A
+ ldr r5, _0221E210 ; =0x0222C55B
+ lsl r0, r1, #2
+ add r3, r1, r0
+ ldr r0, _0221E214 ; =0x0222C55C
+ ldr r1, _0221E218 ; =0x0222C559
+ ldrb r0, [r0, r3]
+ ldrb r1, [r1, r3]
+ ldrb r2, [r2, r3]
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ ldr r0, _0221E21C ; =0x0222C55D
+ ldrb r0, [r0, r3]
+ ldrb r3, [r5, r3]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_022181A8
+ ldrb r1, [r4, #1]
+ ldr r6, _0221E220 ; =0x0222C53C
+ lsl r0, r1, #1
+ add r5, r1, r0
+ mov r0, #4
+ ldrsh r3, [r4, r0]
+ ldr r0, _0221E224 ; =0x0222C53D
+ mov r1, #0
+ ldrb r0, [r0, r5]
+ add r2, r1, #0
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, _0221E228 ; =0x0222C53E
+ ldrb r0, [r0, r5]
+ ldrb r5, [r6, r5]
+ str r0, [sp, #4]
+ add r3, r3, r5
+ add r0, r4, #0
+ lsl r3, r3, #0x10
+ add r0, #0x34
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ ldrb r0, [r4, #1]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221E184:
+ add r0, r4, #0
+ add r0, #0x10
+ mov r5, #0
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221E194
+ add r5, r5, #1
+_0221E194:
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221E1A2
+ add r5, r5, #1
+_0221E1A2:
+ cmp r5, #2
+ blt _0221E1C8
+ ldrb r0, [r4, #1]
+ cmp r0, #3
+ blo _0221E1C4
+ ldrb r0, [r4, #2]
+ add r0, r0, #1
+ strb r0, [r4, #2]
+ mov r0, #0
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #2]
+ cmp r0, #3
+ blo _0221E1C8
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E1C8
+_0221E1C4:
+ mov r0, #0
+ strb r0, [r4]
+_0221E1C8:
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x36
+ mov r2, #6
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ bl MOD08_022182DC
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_0221E1F8:
+ ldr r0, [r4, #8]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0221E20C: .word 0x0222C55A
+_0221E210: .word 0x0222C55B
+_0221E214: .word 0x0222C55C
+_0221E218: .word 0x0222C559
+_0221E21C: .word 0x0222C55D
+_0221E220: .word 0x0222C53C
+_0221E224: .word 0x0222C53D
+_0221E228: .word 0x0222C53E
+
+ thumb_func_start MOD08_0221E22C
+MOD08_0221E22C: ; 0x0221E22C
+ push {r3, r4, r5, lr}
+ mov r1, #0x58
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ str r5, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #4]
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_0221552C
+ strh r0, [r4, #6]
+ ldr r0, [r4, #8]
+ ldr r1, _0221E274 ; =MOD08_0221E104
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221E274: .word MOD08_0221E104
+
+ thumb_func_start MOD08_0221E278
+MOD08_0221E278: ; 0x0221E278
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221E28E
+ cmp r0, #1
+ beq _0221E2A6
+ cmp r0, #2
+ beq _0221E2C6
+ b _0221E308
+_0221E28E:
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #0xa
+ blo _0221E324
+ mov r0, #0
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E324
+_0221E2A6:
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ bl FUN_0200C90C
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E324
+_0221E2C6:
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #0xa
+ blo _0221E324
+ ldr r0, _0221E338 ; =0x0400004A
+ mov r1, #0x3f
+ ldrh r2, [r0]
+ bic r2, r1
+ mov r1, #0x1f
+ orr r2, r1
+ strh r2, [r0]
+ ldrh r3, [r0]
+ ldr r2, _0221E33C ; =0xFFFFC0FF
+ lsl r1, r1, #8
+ and r2, r3
+ orr r1, r2
+ strh r1, [r0]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #0
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E324
+_0221E308:
+ mov r3, #1
+ lsl r3, r3, #0x1a
+ ldr r1, [r3]
+ ldr r0, _0221E340 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r3]
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+_0221E324:
+ ldr r0, [r4, #0xc]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r4, pc}
+ .align 2, 0
+_0221E338: .word 0x0400004A
+_0221E33C: .word 0xFFFFC0FF
+_0221E340: .word 0xFFFF1FFF
+
+ thumb_func_start MOD08_0221E344
+MOD08_0221E344: ; 0x0221E344
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ mov r1, #0x14
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x10]
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _0221E41C ; =0xFFFF1FFF
+ and r2, r1
+ lsr r1, r0, #0xb
+ orr r1, r2
+ str r1, [r0]
+ add r0, #0x4a
+ ldrh r2, [r0]
+ mov r1, #0x3f
+ bic r2, r1
+ mov r1, #0x1f
+ orr r1, r2
+ strh r1, [r0]
+ ldrh r2, [r0]
+ ldr r1, _0221E420 ; =0xFFFFC0FF
+ and r2, r1
+ mov r1, #0x12
+ lsl r1, r1, #8
+ orr r1, r2
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_0221550C
+ add r7, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_0221551C
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0xc]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02215504
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r1, #0x20
+ lsl r0, r6, #0x14
+ str r1, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r1, #0xe0
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0x14]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ add r2, r7, #0
+ bl FUN_02003B40
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #4]
+ ldr r1, _0221E424 ; =MOD08_0221E278
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221E41C: .word 0xFFFF1FFF
+_0221E420: .word 0xFFFFC0FF
+_0221E424: .word MOD08_0221E278
+
+ thumb_func_start MOD08_0221E428
+MOD08_0221E428: ; 0x0221E428
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bls _0221E438
+ b _0221E61A
+_0221E438:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221E444: ; jump table
+ .short _0221E44C - _0221E444 - 2 ; case 0
+ .short _0221E45E - _0221E444 - 2 ; case 1
+ .short _0221E576 - _0221E444 - 2 ; case 2
+ .short _0221E5AE - _0221E444 - 2 ; case 3
+_0221E44C:
+ ldr r0, [r4, #0xc]
+ mov r1, #0xe
+ mov r2, #1
+ bl FUN_02007558
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E636
+_0221E45E:
+ mov r0, #0
+ add r6, r4, #0
+ ldr r7, _0221E640 ; =0x0222C52C
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ add r5, r4, #0
+ add r6, #0x20
+_0221E46C:
+ ldrb r0, [r5, #0x18]
+ cmp r0, #0
+ beq _0221E478
+ cmp r0, #1
+ beq _0221E4A6
+ b _0221E4F4
+_0221E478:
+ ldrb r0, [r5, #0x19]
+ add r0, r0, #1
+ strb r0, [r5, #0x19]
+ ldrb r1, [r5, #0x19]
+ ldrb r0, [r7]
+ cmp r1, r0
+ blo _0221E4FA
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ mov r0, #5
+ mov r1, #0x64
+ str r0, [sp, #8]
+ add r0, r6, #0
+ mov r2, #5
+ add r3, r1, #0
+ bl MOD08_022181A8
+ ldrb r0, [r5, #0x18]
+ add r0, r0, #1
+ strb r0, [r5, #0x18]
+ b _0221E4FA
+_0221E4A6:
+ add r0, r6, #0
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221E4B8
+ ldrb r0, [r5, #0x18]
+ add r0, r0, #1
+ strb r0, [r5, #0x18]
+ b _0221E4FA
+_0221E4B8:
+ add r0, r6, #0
+ add r1, sp, #0x28
+ add r2, sp, #0x24
+ bl MOD08_0221825C
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, [sp, #0x28]
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [r5, #0x1c]
+ ldr r2, [sp, #0x24]
+ bl FUN_0200C884
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #2
+ ldr r2, [r4, #4]
+ ldrsh r1, [r4, r1]
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0x1c]
+ ldr r3, [r5, #0x34]
+ asr r2, r2, #0x10
+ bl MOD08_02218314
+ b _0221E4FA
+_0221E4F4:
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+_0221E4FA:
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C5A8
+ ldr r0, [sp, #0x14]
+ add r5, #0x2c
+ add r0, r0, #1
+ add r7, r7, #1
+ add r6, #0x2c
+ str r0, [sp, #0x14]
+ cmp r0, #3
+ blt _0221E46C
+ ldr r0, [sp, #0x10]
+ cmp r0, #3
+ bge _0221E518
+ b _0221E636
+_0221E518:
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #3
+ bhs _0221E56E
+ mov r6, #0
+ add r5, r4, #0
+ add r7, r6, #0
+_0221E52A:
+ add r1, sp, #0x18
+ ldr r0, [r5, #0x1c]
+ add r1, #2
+ add r2, sp, #0x18
+ bl FUN_0200C7A0
+ add r2, sp, #0x18
+ mov r1, #2
+ ldrsh r1, [r2, r1]
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C714
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ bl _fflt
+ add r1, r0, #0
+ mov r2, #0xfe
+ ldr r0, [r5, #0x1c]
+ lsl r2, r2, #0x16
+ bl FUN_0200C884
+ strb r7, [r5, #0x18]
+ strb r7, [r5, #0x19]
+ add r6, r6, #1
+ add r5, #0x2c
+ cmp r6, #3
+ blt _0221E52A
+ ldrb r0, [r4]
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _0221E636
+_0221E56E:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E636
+_0221E576:
+ add r5, r4, #0
+ mov r7, #0
+ add r6, r4, #0
+ add r5, #0x20
+_0221E57E:
+ ldr r0, [r6, #0x1c]
+ mov r1, #0
+ bl FUN_0200C90C
+ mov r0, #0x64
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #5
+ mov r1, #5
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r2, #0x64
+ add r3, r1, #0
+ bl MOD08_022181A8
+ add r7, r7, #1
+ add r6, #0x2c
+ add r5, #0x2c
+ cmp r7, #3
+ blt _0221E57E
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E636
+_0221E5AE:
+ mov r7, #0
+ add r6, r4, #0
+ str r7, [sp, #0xc]
+ add r6, #0x20
+ add r5, r4, #0
+_0221E5B8:
+ add r0, r6, #0
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221E5C6
+ add r7, r7, #1
+ b _0221E600
+_0221E5C6:
+ add r0, r6, #0
+ add r1, sp, #0x20
+ add r2, sp, #0x1c
+ bl MOD08_0221825C
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, [sp, #0x20]
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [r5, #0x1c]
+ ldr r2, [sp, #0x1c]
+ bl FUN_0200C884
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #2
+ ldr r2, [r4, #4]
+ ldrsh r1, [r4, r1]
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0x1c]
+ ldr r3, [r5, #0x34]
+ asr r2, r2, #0x10
+ bl MOD08_02218314
+_0221E600:
+ ldr r0, [sp, #0xc]
+ add r6, #0x2c
+ add r0, r0, #1
+ add r5, #0x2c
+ str r0, [sp, #0xc]
+ cmp r0, #3
+ blt _0221E5B8
+ cmp r7, #3
+ blt _0221E636
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E636
+_0221E61A:
+ ldr r0, [r4, #0xc]
+ mov r1, #0xe
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x10]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+_0221E636:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200BC1C
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221E640: .word 0x0222C52C
+
+ thumb_func_start MOD08_0221E644
+MOD08_0221E644: ; 0x0221E644
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x9c
+ str r0, [sp]
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ ldr r0, [sp]
+ str r0, [r4, #0x10]
+ bl MOD08_02212504
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0x10]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x29
+ bl FUN_0200782C
+ mov r1, #2
+ ldrsh r1, [r4, r1]
+ sub r0, r1, r0
+ strh r0, [r4, #2]
+ ldr r0, [r4, #0x10]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0x10]
+ bl MOD08_0221552C
+ mov r1, #0
+ str r0, [r4, #4]
+ mvn r1, r1
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl MOD08_02227994
+ mov r6, #0
+ ldr r1, _0221E720 ; =0x0000060C
+ ldr r0, _0221E724 ; =0x04000052
+ add r5, r4, #0
+ strh r1, [r0]
+ add r7, r6, #0
+_0221E6B0:
+ strb r7, [r5, #0x18]
+ strb r7, [r5, #0x19]
+ ldr r0, [r4, #0x10]
+ add r1, r6, #0
+ bl MOD08_022124D8
+ str r0, [r5, #0x1c]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r5, #0x1c]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x1c]
+ add r1, r6, #1
+ bl FUN_0200C6C4
+ add r6, r6, #1
+ add r5, #0x2c
+ cmp r6, #3
+ blt _0221E6B0
+ ldr r0, [sp]
+ mov r1, #0
+ bl MOD08_02215680
+ cmp r0, #1
+ bne _0221E6EE
+ mov r0, #0
+ mvn r0, r0
+ b _0221E6F0
+_0221E6EE:
+ mov r0, #1
+_0221E6F0:
+ strb r0, [r4, #8]
+ mov r6, #0
+ add r5, r4, #0
+ mov r7, #8
+_0221E6F8:
+ ldrsb r0, [r4, r7]
+ bl _fflt
+ add r1, r0, #0
+ mov r2, #0xfe
+ ldr r0, [r5, #0x1c]
+ lsl r2, r2, #0x16
+ bl FUN_0200C884
+ add r6, r6, #1
+ add r5, #0x2c
+ cmp r6, #3
+ blt _0221E6F8
+ ldr r0, [r4, #0x10]
+ ldr r1, _0221E728 ; =MOD08_0221E428
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221E720: .word 0x0000060C
+_0221E724: .word 0x04000052
+_0221E728: .word MOD08_0221E428
+
+ thumb_func_start MOD08_0221E72C
+MOD08_0221E72C: ; 0x0221E72C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bls _0221E73C
+ b _0221E866
+_0221E73C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221E748: ; jump table
+ .short _0221E750 - _0221E748 - 2 ; case 0
+ .short _0221E782 - _0221E748 - 2 ; case 1
+ .short _0221E796 - _0221E748 - 2 ; case 2
+ .short _0221E7F2 - _0221E748 - 2 ; case 3
+_0221E750:
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r1, #0
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #1
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ add r3, r1, #0
+ bl FUN_02003210
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_0221E782:
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0221E874
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221E796:
+ mov r0, #5
+ str r0, [sp]
+ ldrb r1, [r4, #1]
+ add r0, r4, #0
+ add r0, #0xb4
+ lsl r2, r1, #1
+ ldr r1, _0221E878 ; =0x0222C586
+ ldrsh r1, [r1, r2]
+ mov r2, #0
+ add r3, r2, #0
+ bl MOD08_022183C0
+ ldrb r0, [r4, #2]
+ cmp r0, #0
+ ldr r0, [r4, #0xc]
+ bne _0221E7C8
+ bl MOD08_02215504
+ mov r1, #0
+ mov r2, #0xff
+ mov r3, #0xa
+ str r1, [sp]
+ bl FUN_02003A64
+ b _0221E7DA
+_0221E7C8:
+ bl MOD08_02215504
+ ldr r1, _0221E87C ; =0x00007FFF
+ mov r2, #0xff
+ str r1, [sp]
+ mov r1, #0
+ mov r3, #0xa
+ bl FUN_02003A64
+_0221E7DA:
+ mov r0, #3
+ strb r0, [r4, #3]
+ ldrb r1, [r4, #2]
+ mov r0, #1
+ eor r0, r1
+ strb r0, [r4, #2]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221E7F2:
+ add r0, r4, #0
+ add r0, #0xb4
+ bl MOD08_022183F0
+ cmp r0, #0
+ bne _0221E810
+ ldrb r0, [r4, #1]
+ cmp r0, #8
+ ldrb r0, [r4]
+ blo _0221E80C
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E810
+_0221E80C:
+ sub r0, r0, #1
+ strb r0, [r4]
+_0221E810:
+ ldrb r0, [r4, #3]
+ cmp r0, #0
+ beq _0221E832
+ sub r0, r0, #1
+ strb r0, [r4, #3]
+ ldrb r0, [r4, #3]
+ cmp r0, #0
+ bne _0221E832
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ mov r1, #0
+ mov r2, #0xff
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02003A64
+_0221E832:
+ mov r6, #0
+ add r5, r4, #0
+ mov r7, #0x14
+_0221E838:
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0
+ beq _0221E84C
+ mov r2, #0xb4
+ ldrsh r3, [r4, r2]
+ ldrsh r2, [r5, r7]
+ mov r1, #0
+ add r2, r3, r2
+ bl FUN_02007558
+_0221E84C:
+ add r6, r6, #1
+ add r5, #0x14
+ cmp r6, #4
+ blt _0221E838
+ mov r3, #0xb4
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #8]
+ mov r1, #3
+ mov r2, #0
+ bl FUN_020179E0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_0221E866:
+ ldr r0, [r4, #0xc]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221E874:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221E878: .word 0x0222C586
+_0221E87C: .word 0x00007FFF
+
+ thumb_func_start MOD08_0221E880
+MOD08_0221E880: ; 0x0221E880
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0xd8
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ str r5, [r4, #0xc]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212490
+ str r0, [r4, #8]
+ ldr r0, [r4, #0xc]
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221E8B2
+ mov r1, #0x40
+ b _0221E8B4
+_0221E8B2:
+ mov r1, #0xa
+_0221E8B4:
+ add r2, r4, #0
+ add r0, r5, #0
+ add r2, #0x14
+ add r3, r4, #4
+ bl MOD08_02227BAC
+ ldr r0, [r4, #4]
+ mov r6, #0
+ cmp r0, #0
+ ble _0221E8EA
+ add r5, r4, #0
+ add r7, r6, #0
+_0221E8CC:
+ ldr r0, [r5, #0x1c]
+ add r1, r7, #0
+ bl FUN_0200782C
+ strh r0, [r5, #0x14]
+ ldr r0, [r5, #0x1c]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r5, #0x16]
+ ldr r0, [r4, #4]
+ add r6, r6, #1
+ add r5, #0x14
+ cmp r6, r0
+ blt _0221E8CC
+_0221E8EA:
+ ldr r0, [r4, #0xc]
+ ldr r1, _0221E8F8 ; =MOD08_0221E72C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221E8F8: .word MOD08_0221E72C
+
+ thumb_func_start MOD08_0221E8FC
+MOD08_0221E8FC: ; 0x0221E8FC
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ bne _0221E946
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221E91A
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221E91A:
+ add r0, r4, #0
+ add r0, #0x1c
+ bl MOD08_022183F0
+ add r0, r4, #0
+ add r0, #0x64
+ bl MOD08_02218704
+ mov r1, #0x40
+ mov r2, #0x42
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ bl FUN_0200C714
+ ldr r0, [r4, #0x18]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ pop {r4, pc}
+_0221E946:
+ ldr r0, [r4, #0xc]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221E958
+MOD08_0221E958: ; 0x0221E958
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r1, #0x8c
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ str r5, [r4, #0xc]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212490
+ str r0, [r4, #8]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x18]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ldr r0, [r4, #0xc]
+ bne _0221E99C
+ bl MOD08_02212460
+ b _0221E9A0
+_0221E99C:
+ bl MOD08_02212458
+_0221E9A0:
+ add r6, r0, #0
+ ldr r0, [r4, #0xc]
+ add r1, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x14]
+ add r1, r4, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4, #0x14]
+ mov r1, #0x29
+ bl FUN_0200782C
+ mov r1, #6
+ ldrsh r1, [r4, r1]
+ sub r0, r1, r0
+ strh r0, [r4, #6]
+ ldr r0, [r4, #0xc]
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ add r1, r6, #0
+ bl MOD08_02217C44
+ add r6, r0, #0
+ mov r0, #6
+ ldrsh r3, [r4, r0]
+ mov r0, #4
+ ldrsh r1, [r4, r0]
+ mov r2, #0x14
+ add r0, r6, #0
+ mul r0, r2
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ str r2, [sp, #4]
+ sub r2, #0x28
+ mul r2, r7
+ add r2, r1, r2
+ add r0, r4, #0
+ lsl r2, r2, #0x10
+ add r0, #0x40
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_022155C4
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022155C4
+ mov r5, #1
+ add r3, r5, #0
+ lsl r3, r6
+ add r1, r0, #0
+ add r6, r3, #0
+ mov r2, #0x20
+ add r3, r5, #0
+ orr r6, r2
+ lsl r3, r1
+ add r1, r6, #0
+ orr r1, r3
+ sub r2, #0x21
+ ldr r0, [r4, #0xc]
+ orr r1, r5
+ add r3, r2, #0
+ bl MOD08_022279D0
+ mov r1, #0x1f
+ mov r2, #0
+ str r1, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x64
+ add r3, r2, #0
+ bl MOD08_022186D4
+ ldr r0, [r4, #0x18]
+ add r1, r5, #0
+ bl FUN_0200C90C
+ ldr r0, [r4, #0xc]
+ ldr r1, _0221EA60 ; =MOD08_0221E8FC
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221EA60: .word MOD08_0221E8FC
+
+ thumb_func_start MOD08_0221EA64
+MOD08_0221EA64: ; 0x0221EA64
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221EA76
+ cmp r0, #1
+ beq _0221EAB6
+ b _0221EAE6
+_0221EA76:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ ldrb r0, [r4, #2]
+ bne _0221EA88
+ lsl r3, r0, #3
+ ldr r0, _0221EB00 ; =0x0222C5B0
+ ldr r2, [r0, r3]
+ neg r1, r2
+ b _0221EA90
+_0221EA88:
+ lsl r3, r0, #3
+ ldr r0, _0221EB00 ; =0x0222C5B0
+ ldr r1, [r0, r3]
+ neg r2, r1
+_0221EA90:
+ ldr r5, _0221EB04 ; =0x0222C5B4
+ add r0, r4, #0
+ ldr r3, [r5, r3]
+ add r0, #0x5c
+ bl MOD08_02218008
+ ldrb r0, [r4, #1]
+ cmp r0, #1
+ bne _0221EAA8
+ ldrb r0, [r4, #2]
+ add r0, r0, #1
+ strb r0, [r4, #2]
+_0221EAA8:
+ ldrb r1, [r4, #1]
+ mov r0, #1
+ eor r0, r1
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221EAB6:
+ add r0, r4, #0
+ add r0, #0x5c
+ bl MOD08_02218058
+ cmp r0, #1
+ bne _0221EAD2
+ ldr r2, [r4, #0x5c]
+ ldr r0, [r4, #0x28]
+ lsl r2, r2, #0x10
+ mov r1, #9
+ lsr r2, r2, #0x10
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_0221EAD2:
+ ldrb r0, [r4, #2]
+ cmp r0, #5
+ ldrb r0, [r4]
+ blo _0221EAE0
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_0221EAE0:
+ sub r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_0221EAE6:
+ ldr r0, [r4, #0x28]
+ mov r1, #9
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221EB00: .word 0x0222C5B0
+_0221EB04: .word 0x0222C5B4
+
+ thumb_func_start MOD08_0221EB08
+MOD08_0221EB08: ; 0x0221EB08
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221EB1C
+ cmp r0, #1
+ beq _0221EB40
+ b _0221EB6A
+_0221EB1C:
+ mov r0, #0x22
+ ldrsh r0, [r4, r0]
+ mov r1, #0x1c
+ mov r2, #0x1e
+ str r0, [sp]
+ mov r3, #0x20
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ add r0, #0x38
+ bl MOD08_022183C0
+ ldrb r0, [r4]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, pc}
+_0221EB40:
+ ldr r0, [r4, #0x2c]
+ add r1, sp, #4
+ bl MOD08_02227B2C
+ add r0, r4, #0
+ add r3, sp, #4
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r3, [r4, #0x2c]
+ add r0, #0x38
+ bl MOD08_02218454
+ cmp r0, #0
+ bne _0221EB78
+ ldrb r0, [r4]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, pc}
+_0221EB6A:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221EB78:
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0221EB7C
+MOD08_0221EB7C: ; 0x0221EB7C
+ push {r4, r5, r6, lr}
+ mov r1, #0x70
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x28]
+ mov r1, #0xb
+ mov r2, #0x64
+ bl FUN_02007558
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0x1c]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ strh r0, [r4, #0x1e]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #0x20]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strh r0, [r4, #0x22]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4, #0x24]
+ cmp r6, #0
+ ldr r0, [r4, #4]
+ bne _0221EC06
+ ldr r1, _0221EC10 ; =MOD08_0221EA64
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+_0221EC06:
+ ldr r1, _0221EC14 ; =MOD08_0221EB08
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0221EC10: .word MOD08_0221EA64
+_0221EC14: .word MOD08_0221EB08
+
+ thumb_func_start MOD08_0221EC18
+MOD08_0221EC18: ; 0x0221EC18
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r5]
+ cmp r0, #0
+ beq _0221EC2A
+ cmp r0, #1
+ beq _0221EC4C
+ b _0221ECA0
+_0221EC2A:
+ ldr r2, [r5, #0x48]
+ mov r0, #0xa
+ add r1, r2, #2
+ str r0, [sp]
+ add r0, r5, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ add r0, #0x4c
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ mov r3, #0
+ bl MOD08_022183C0
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_0221EC4C:
+ add r0, r5, #0
+ add r0, #0x4c
+ bl MOD08_022183F0
+ cmp r0, #0
+ bne _0221EC60
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_0221EC60:
+ mov r6, #0
+ add r4, r5, #0
+ mov r7, #0x28
+_0221EC66:
+ ldr r0, [r4, #0x38]
+ cmp r0, #0
+ beq _0221EC7A
+ mov r2, #0x4c
+ ldrsh r3, [r5, r2]
+ ldrsh r2, [r4, r7]
+ mov r1, #0
+ add r2, r3, r2
+ bl FUN_02007558
+_0221EC7A:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _0221EC66
+ mov r3, #0x4c
+ ldrsh r3, [r5, r3]
+ ldr r0, [r5, #0x14]
+ mov r1, #3
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0x4e
+ mov r1, #3
+ ldrsh r3, [r5, r3]
+ ldr r0, [r5, #0x14]
+ add r2, r1, #0
+ bl FUN_020179E0
+ pop {r3, r4, r5, r6, r7, pc}
+_0221ECA0:
+ ldr r0, [r5, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0221ECB0
+MOD08_0221ECB0: ; 0x0221ECB0
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x70
+ add r4, r0, #0
+ bl MOD08_02228064
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD08_02227B70
+ ldr r0, [r7, #4]
+ mov r1, #1
+ bl MOD08_02212758
+ cmp r0, #0x46
+ bgt _0221ECE0
+ bge _0221ED02
+ cmp r0, #0x1e
+ bgt _0221ECDA
+ beq _0221ED0E
+ b _0221ED14
+_0221ECDA:
+ cmp r0, #0x32
+ beq _0221ED08
+ b _0221ED14
+_0221ECE0:
+ cmp r0, #0x6e
+ bgt _0221ECEC
+ bge _0221ECF6
+ cmp r0, #0x5a
+ beq _0221ECFC
+ b _0221ED14
+_0221ECEC:
+ cmp r0, #0x96
+ bne _0221ED14
+ mov r0, #6
+ str r0, [r7, #0x48]
+ b _0221ED18
+_0221ECF6:
+ mov r0, #5
+ str r0, [r7, #0x48]
+ b _0221ED18
+_0221ECFC:
+ mov r0, #4
+ str r0, [r7, #0x48]
+ b _0221ED18
+_0221ED02:
+ mov r0, #3
+ str r0, [r7, #0x48]
+ b _0221ED18
+_0221ED08:
+ mov r0, #2
+ str r0, [r7, #0x48]
+ b _0221ED18
+_0221ED0E:
+ mov r0, #1
+ str r0, [r7, #0x48]
+ b _0221ED18
+_0221ED14:
+ mov r0, #0
+ str r0, [r7, #0x48]
+_0221ED18:
+ add r5, r7, #0
+ mov r6, #0
+ add r4, r7, #0
+ add r5, #0x28
+_0221ED20:
+ ldr r0, [r7, #4]
+ add r1, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x38]
+ cmp r0, #0
+ beq _0221ED34
+ add r1, r5, #0
+ bl MOD08_02227B2C
+_0221ED34:
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0221ED20
+ ldr r0, [r7, #4]
+ ldr r1, _0221ED4C ; =MOD08_0221EC18
+ add r2, r7, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221ED4C: .word MOD08_0221EC18
+
+ thumb_func_start MOD08_0221ED50
+MOD08_0221ED50: ; 0x0221ED50
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221ED64
+ cmp r0, #1
+ beq _0221ED92
+ b _0221EE00
+_0221ED64:
+ mov r0, #0xa
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x40
+ mov r1, #0x14
+ add r3, r2, #0
+ bl MOD08_022183C0
+ mov r0, #0xa
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x64
+ mov r1, #2
+ add r3, r2, #0
+ bl MOD08_022183C0
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221ED92:
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_022183F0
+ cmp r0, #0
+ bne _0221EDA6
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221EDF6
+_0221EDA6:
+ mov r1, #0x2c
+ ldrsh r2, [r4, r1]
+ mov r1, #0x40
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4, #0x38]
+ add r1, r2, r1
+ mov r2, #0x2e
+ ldrsh r3, [r4, r2]
+ mov r2, #0x42
+ ldrsh r2, [r4, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ mov r1, #0x40
+ ldrsh r2, [r4, r1]
+ mov r1, #0x2c
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4, #0x3c]
+ sub r1, r2, r1
+ mov r2, #0x2e
+ ldrsh r3, [r4, r2]
+ mov r2, #0x42
+ ldrsh r2, [r4, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r0, [r4, #0x38]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x3c]
+ bl FUN_0200C5A8
+_0221EDF6:
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ add sp, #4
+ pop {r3, r4, pc}
+_0221EE00:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221EE14
+MOD08_0221EE14: ; 0x0221EE14
+ push {r3, r4, r5, lr}
+ mov r1, #0x88
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x3c]
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x34]
+ add r1, r4, #0
+ ldr r0, [r4, #0x30]
+ add r1, #0x28
+ bl MOD08_02227B2C
+ add r1, r4, #0
+ ldr r0, [r4, #0x34]
+ add r1, #0x2c
+ bl MOD08_02227B2C
+ ldr r0, [r4, #4]
+ ldr r1, _0221EE7C ; =MOD08_0221ED50
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221EE7C: .word MOD08_0221ED50
+
+ thumb_func_start MOD08_0221EE80
+MOD08_0221EE80: ; 0x0221EE80
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ ldr r2, [r4, #0x38]
+ add r0, #0x8c
+ add r1, #0xb0
+ bl MOD08_02217FE4
+ cmp r0, #0
+ bne _0221EEAC
+ ldr r0, [r4, #0x38]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #0x14]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl MOD08_02228094
+ pop {r3, r4, r5, pc}
+_0221EEAC:
+ add r0, r4, #0
+ add r0, #0xd4
+ bl MOD08_02218058
+ cmp r0, #1
+ bne _0221EEC8
+ add r1, r4, #0
+ add r1, #0xd4
+ ldr r1, [r1]
+ ldr r0, [r4, #0x38]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0200C898
+_0221EEC8:
+ ldr r0, [r4, #0x38]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x20]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221EED8
+MOD08_0221EED8: ; 0x0221EED8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r1, #0xe8
+ add r6, r0, #0
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x10
+ bl MOD08_02227B70
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD08_02212498
+ strh r0, [r4, #0xc]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0xe]
+ add r0, r6, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #4]
+ add r0, r6, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02217C1C
+ add r5, r0, #0
+ add r0, r7, #0
+ mov r1, #2
+ str r7, [r4, #0x38]
+ bl FUN_0200C840
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x44]
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x58]
+ add r1, r4, #0
+ ldr r0, [r4, #0x44]
+ add r1, #0x40
+ bl MOD08_02227B2C
+ add r1, r4, #0
+ ldr r0, [r4, #0x58]
+ add r1, #0x54
+ bl MOD08_02227B2C
+ mov r0, #0x42
+ ldrsh r0, [r4, r0]
+ mov r3, #0x54
+ str r0, [sp]
+ mov r0, #0x56
+ ldrsh r2, [r4, r0]
+ mov r0, #0xe
+ ldrsh r0, [r4, r0]
+ add r1, r0, #0
+ mul r1, r5
+ add r0, r2, r1
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r4, #4]
+ add r1, r4, #0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [r4, #8]
+ mov r2, #0x40
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ ldrsh r3, [r4, r3]
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ mov ip, r3
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ add r0, #0x8c
+ add r1, #0xb0
+ add r7, r3, #0
+ mul r7, r5
+ mov r3, ip
+ add r3, r3, r7
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217F50
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02215490
+ cmp r0, #4
+ bne _0221EFE0
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02215490
+ cmp r0, #2
+ bne _0221EFE0
+ mov r0, #0
+ mvn r0, r0
+ mul r5, r0
+_0221EFE0:
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02215490
+ cmp r0, #5
+ bne _0221F00A
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02215490
+ cmp r0, #3
+ bne _0221F00A
+ mov r0, #0
+ mvn r0, r0
+ mul r5, r0
+_0221F00A:
+ cmp r5, #0
+ ldr r2, _0221F064 ; =0x00005C71
+ ble _0221F022
+ ldr r1, _0221F068 ; =0x00000E38
+ add r0, r4, #0
+ add r0, #0xd4
+ mul r1, r5
+ mul r2, r5
+ mov r3, #0xa
+ bl MOD08_02218008
+ b _0221F032
+_0221F022:
+ ldr r1, _0221F06C ; =0x00003FFF
+ add r0, r4, #0
+ add r0, #0xd4
+ mul r1, r5
+ mul r2, r5
+ mov r3, #0xa
+ bl MOD08_02218008
+_0221F032:
+ add r1, r4, #0
+ add r1, #0xd4
+ ldr r1, [r1]
+ ldr r0, [r4, #0x38]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0200C898
+ add r0, r4, #0
+ add r1, r4, #0
+ ldr r2, [r4, #0x38]
+ add r0, #0x8c
+ add r1, #0xb0
+ bl MOD08_02217FE4
+ ldr r0, [r4, #0x38]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x14]
+ ldr r1, _0221F070 ; =MOD08_0221EE80
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221F064: .word 0x00005C71
+_0221F068: .word 0x00000E38
+_0221F06C: .word 0x00003FFF
+_0221F070: .word MOD08_0221EE80
+
+ thumb_func_start MOD08_0221F074
+MOD08_0221F074: ; 0x0221F074
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x18]
+ cmp r0, #3
+ bls _0221F084
+ b _0221F1F0
+_0221F084:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221F090: ; jump table
+ .short _0221F098 - _0221F090 - 2 ; case 0
+ .short _0221F0C8 - _0221F090 - 2 ; case 1
+ .short _0221F168 - _0221F090 - 2 ; case 2
+ .short _0221F17A - _0221F090 - 2 ; case 3
+_0221F098:
+ mov r0, #0x12
+ ldrsh r2, [r4, r0]
+ mov r0, #0x96
+ mov r3, #0x3c
+ str r0, [sp]
+ mov r1, #0x64
+ str r1, [sp, #4]
+ mov r0, #0xc
+ mul r1, r2
+ mul r3, r2
+ lsl r2, r3, #0x10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ add r0, #0x9c
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ mov r3, #5
+ bl MOD08_022181A8
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0221F20E
+_0221F0C8:
+ add r0, r4, #0
+ add r0, #0x9c
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221F106
+ mov r0, #0x12
+ ldrsh r2, [r4, r0]
+ mov r0, #0xa
+ mov r1, #0x3c
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ mov r0, #0xc
+ mul r1, r2
+ str r0, [sp, #8]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ mov r3, #0x96
+ add r5, r2, #0
+ mul r5, r3
+ lsl r2, r5, #0x10
+ add r0, #0x9c
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_022181A8
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0221F20E
+_0221F106:
+ add r0, r4, #0
+ add r0, #0x9c
+ add r1, sp, #0x18
+ add r2, sp, #0x14
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x40]
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ bl FUN_0200C884
+ mov r0, #0x16
+ add r2, r4, #0
+ add r2, #0xb0
+ ldrsh r0, [r4, r0]
+ ldr r2, [r2]
+ mov r1, #0x10
+ bl MOD08_0221828C
+ mov r2, #0x16
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ mov r1, #0x14
+ ldrsh r1, [r4, r1]
+ add r2, r2, r3
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0x40]
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldrb r1, [r4, #0xc]
+ ldrb r0, [r4, #0x10]
+ cmp r1, r0
+ bhs _0221F14E
+ add r0, r1, #1
+ strb r0, [r4, #0xc]
+_0221F14E:
+ ldrb r1, [r4, #0xd]
+ ldrb r0, [r4, #0x11]
+ cmp r1, r0
+ bls _0221F15A
+ sub r0, r1, #1
+ strb r0, [r4, #0xd]
+_0221F15A:
+ ldrb r0, [r4, #0xd]
+ ldrb r1, [r4, #0xc]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221F220 ; =0x04000052
+ strh r1, [r0]
+ b _0221F20E
+_0221F168:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ cmp r0, #4
+ blt _0221F20E
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0221F20E
+_0221F17A:
+ add r0, r4, #0
+ add r0, #0x9c
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221F18E
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0221F20E
+_0221F18E:
+ add r0, r4, #0
+ add r0, #0x9c
+ add r1, sp, #0x10
+ add r2, sp, #0xc
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x40]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ bl FUN_0200C884
+ mov r0, #0x16
+ add r2, r4, #0
+ add r2, #0xb0
+ ldrsh r0, [r4, r0]
+ ldr r2, [r2]
+ mov r1, #0x10
+ bl MOD08_0221828C
+ mov r2, #0x16
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ mov r1, #0x14
+ ldrsh r1, [r4, r1]
+ add r2, r2, r3
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0x40]
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldrb r1, [r4, #0xc]
+ ldrb r0, [r4, #0xe]
+ cmp r1, r0
+ bls _0221F1D6
+ sub r0, r1, #1
+ strb r0, [r4, #0xc]
+_0221F1D6:
+ ldrb r1, [r4, #0xd]
+ ldrb r0, [r4, #0xf]
+ cmp r1, r0
+ bhs _0221F1E2
+ add r0, r1, #1
+ strb r0, [r4, #0xd]
+_0221F1E2:
+ ldrb r0, [r4, #0xd]
+ ldrb r1, [r4, #0xc]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221F220 ; =0x04000052
+ strh r1, [r0]
+ b _0221F20E
+_0221F1F0:
+ ldr r0, [r4, #0x44]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #0x48]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #0x1c]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl MOD08_02228094
+ add sp, #0x1c
+ pop {r4, r5, pc}
+_0221F20E:
+ ldr r0, [r4, #0x40]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x28]
+ bl FUN_0200BC1C
+ add sp, #0x1c
+ pop {r4, r5, pc}
+ nop
+_0221F220: .word 0x04000052
+
+ thumb_func_start MOD08_0221F224
+MOD08_0221F224: ; 0x0221F224
+ push {r4, r5, lr}
+ sub sp, #0x14
+ mov r1, #0xd4
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x18
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022124B0
+ str r0, [r4, #0x44]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022124B0
+ mov r1, #0
+ str r0, [r4, #0x48]
+ mvn r1, r1
+ ldr r0, [r4, #0x1c]
+ add r2, r1, #0
+ bl MOD08_02227994
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ mov r1, #0
+ strb r1, [r4, #0xc]
+ mov r0, #0x1f
+ strb r0, [r4, #0xd]
+ strb r1, [r4, #0xe]
+ strb r0, [r4, #0xf]
+ strb r0, [r4, #0x10]
+ mov r0, #4
+ strb r0, [r4, #0x11]
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _0221F2B4
+ ldr r0, [r4, #0x44]
+ mov r1, #0
+ str r0, [r4, #0x40]
+ ldr r0, [r4, #0x48]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl FUN_0200C5C0
+ mov r0, #0xb3
+ strh r0, [r4, #0x14]
+ mov r0, #0x78
+ strh r0, [r4, #0x16]
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x40]
+ add r1, r1, #1
+ bl FUN_0200C6B0
+ mov r0, #0
+ mvn r0, r0
+ strh r0, [r4, #0x12]
+ b _0221F314
+_0221F2B4:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _0221F2E4
+ ldr r0, [r4, #0x48]
+ mov r1, #0
+ str r0, [r4, #0x40]
+ ldr r0, [r4, #0x44]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl FUN_0200C5C0
+ mov r0, #0x90
+ strh r0, [r4, #0x14]
+ mov r0, #0x40
+ strh r0, [r4, #0x16]
+ b _0221F310
+_0221F2E4:
+ ldr r0, [r4, #0x44]
+ mov r1, #0
+ str r0, [r4, #0x40]
+ ldr r0, [r4, #0x48]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl FUN_0200C5C0
+ mov r0, #0x4c
+ strh r0, [r4, #0x14]
+ mov r0, #0x78
+ strh r0, [r4, #0x16]
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x40]
+ add r1, r1, #1
+ bl FUN_0200C6B0
+_0221F310:
+ mov r0, #1
+ strh r0, [r4, #0x12]
+_0221F314:
+ mov r1, #0x14
+ mov r2, #0x16
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x40]
+ bl FUN_0200C714
+ ldr r0, [r4, #0x40]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl FUN_0200C90C
+ mov r0, #0x12
+ ldrsh r0, [r4, r0]
+ mov r3, #0x64
+ add r1, r0, #0
+ mov r0, #5
+ str r0, [sp]
+ mul r1, r3
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ str r3, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x9c
+ add r2, r1, #0
+ bl MOD08_022181A8
+ add r0, r4, #0
+ add r0, #0x9c
+ bl MOD08_02218224
+ add r0, r4, #0
+ add r0, #0x9c
+ add r1, sp, #0x10
+ add r2, sp, #0xc
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x40]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ bl FUN_0200C884
+ mov r0, #0x16
+ add r2, r4, #0
+ add r2, #0xb0
+ ldrsh r0, [r4, r0]
+ ldr r2, [r2]
+ mov r1, #0x10
+ bl MOD08_0221828C
+ mov r2, #0x16
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ mov r1, #0x14
+ ldrsh r1, [r4, r1]
+ add r2, r2, r3
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0x40]
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r0, [r4, #0x1c]
+ ldr r1, _0221F3A8 ; =MOD08_0221F074
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_0221F3A8: .word MOD08_0221F074
+
+ thumb_func_start MOD08_0221F3AC
+MOD08_0221F3AC: ; 0x0221F3AC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ add r4, r1, #0
+ str r0, [sp, #0x10]
+ ldrb r0, [r4]
+ cmp r0, #8
+ bls _0221F3BC
+ b _0221F710
+_0221F3BC:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221F3C8: ; jump table
+ .short _0221F3DA - _0221F3C8 - 2 ; case 0
+ .short _0221F412 - _0221F3C8 - 2 ; case 1
+ .short _0221F46C - _0221F3C8 - 2 ; case 2
+ .short _0221F486 - _0221F3C8 - 2 ; case 3
+ .short _0221F4BA - _0221F3C8 - 2 ; case 4
+ .short _0221F53E - _0221F3C8 - 2 ; case 5
+ .short _0221F5D0 - _0221F3C8 - 2 ; case 6
+ .short _0221F66E - _0221F3C8 - 2 ; case 7
+ .short _0221F6B6 - _0221F3C8 - 2 ; case 8
+_0221F3DA:
+ ldrb r1, [r4, #0xc]
+ ldr r2, _0221F6F4 ; =0x0222C569
+ ldr r5, _0221F6F8 ; =0x0222C56A
+ lsl r0, r1, #2
+ add r3, r1, r0
+ ldr r0, _0221F6FC ; =0x0222C56B
+ ldr r1, _0221F700 ; =0x0222C568
+ ldrb r0, [r0, r3]
+ ldrb r1, [r1, r3]
+ ldrb r2, [r2, r3]
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ ldr r0, _0221F704 ; =0x0222C56C
+ ldrb r0, [r0, r3]
+ ldrb r3, [r5, r3]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0xcc
+ bl MOD08_022181A8
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F412:
+ add r0, r4, #0
+ add r0, #0xcc
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221F458
+ mov r2, #0xcc
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0xce
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #0x20
+ add r2, r4, #0
+ add r2, #0xe0
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x24]
+ ldr r2, [r2]
+ bl MOD08_0221828C
+ mov r2, #0x20
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ b _0221F74A
+_0221F458:
+ ldrb r0, [r4, #0xc]
+ cmp r0, #3
+ ldrb r0, [r4]
+ blo _0221F466
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F466:
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F46C:
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #0xf
+ blo _0221F54A
+ mov r0, #0
+ strb r0, [r4, #1]
+ strb r0, [r4, #0xc]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F486:
+ add r1, sp, #0x2c
+ ldr r0, [r4, #0x30]
+ add r1, #2
+ add r2, sp, #0x2c
+ bl FUN_0200C7A0
+ add r1, sp, #0x14
+ mov r0, #0x18
+ ldrsh r0, [r1, r0]
+ cmp r0, #0x68
+ bgt _0221F4B2
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ mov r2, #2
+ bl FUN_0200C82C
+ ldr r0, [r4, #0x7c]
+ mov r1, #0
+ mov r2, #2
+ bl FUN_0200C82C
+ b _0221F74A
+_0221F4B2:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F4BA:
+ add r1, sp, #0x28
+ ldr r0, [r4, #0x30]
+ add r1, #2
+ add r2, sp, #0x28
+ bl FUN_0200C7A0
+ add r1, sp, #0x14
+ mov r0, #0x14
+ ldrsh r0, [r1, r0]
+ cmp r0, #0x68
+ bgt _0221F4E6
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ mov r2, #2
+ bl FUN_0200C82C
+ ldr r0, [r4, #0x7c]
+ mov r1, #0
+ mov r2, #2
+ bl FUN_0200C82C
+ b _0221F4F2
+_0221F4E6:
+ ldr r0, _0221F708 ; =0x04000052
+ mov r1, #0x10
+ strh r1, [r0]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221F4F2:
+ ldrb r0, [r4, #1]
+ mov r1, #0x10
+ add r2, r1, #0
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ add r0, r4, #4
+ bl MOD08_02218A58
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ add r0, #8
+ sub r2, #0x10
+ bl MOD08_02218A58
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #4]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221F708 ; =0x04000052
+ strh r1, [r0]
+ ldrb r0, [r4, #1]
+ cmp r0, #0xa
+ bne _0221F52C
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ mov r2, #0x10
+ bl FUN_0200C82C
+_0221F52C:
+ ldrb r0, [r4, #1]
+ cmp r0, #0xc
+ bne _0221F54A
+ ldr r0, [r4, #0x7c]
+ mov r1, #0
+ mov r2, #0x10
+ bl FUN_0200C82C
+ b _0221F74A
+_0221F53E:
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #0xf
+ bhs _0221F54C
+_0221F54A:
+ b _0221F74A
+_0221F54C:
+ mov r0, #0
+ strb r0, [r4, #1]
+ add r1, sp, #0x24
+ ldr r0, [r4, #0x30]
+ add r1, #2
+ add r2, sp, #0x24
+ bl FUN_0200C7A0
+ add r1, sp, #0x20
+ ldr r0, [r4, #0x7c]
+ add r1, #2
+ add r2, sp, #0x20
+ bl FUN_0200C7A0
+ add r0, r4, #0
+ add r0, #0xc8
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0xca
+ str r0, [sp, #4]
+ add r3, sp, #0x14
+ mov r0, #0x12
+ mov r1, #0x10
+ mov r2, #0xe
+ mov r5, #0xc
+ ldrsh r0, [r3, r0]
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldrsh r3, [r3, r5]
+ bl MOD08_022189D8
+ add r0, r4, #0
+ add r0, #0x2c
+ str r0, [sp]
+ mov r3, #0xca
+ add r2, sp, #0x14
+ mov r0, #0x12
+ mov r1, #0x10
+ ldrsh r0, [r2, r0]
+ ldrsh r1, [r2, r1]
+ mov r2, #0xc8
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ bl MOD08_022189F4
+ add r0, r4, #0
+ add r0, #0x28
+ str r0, [sp]
+ mov r3, #0xca
+ add r2, sp, #0x14
+ mov r0, #0x12
+ mov r1, #0x10
+ ldrsh r0, [r2, r0]
+ ldrsh r1, [r2, r1]
+ mov r2, #0xc8
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ bl MOD08_02218A1C
+ mov r0, #0xa
+ lsl r0, r0, #0xe
+ str r0, [r4, #0x2c]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F5D0:
+ ldr r3, _0221F70C ; =0x0222C545
+ add r2, sp, #0x30
+ mov r1, #0xa
+_0221F5D6:
+ ldrb r0, [r3]
+ add r3, r3, #1
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ bne _0221F5D6
+ add r1, sp, #0x1c
+ ldr r0, [r4, #0x30]
+ add r1, #2
+ add r2, sp, #0x1c
+ bl FUN_0200C7A0
+ add r1, sp, #0x18
+ ldr r0, [r4, #0x7c]
+ add r1, #2
+ add r2, sp, #0x18
+ bl FUN_0200C7A0
+ add r3, sp, #0x14
+ mov r0, #8
+ ldrsh r0, [r3, r0]
+ mov r2, #0xa
+ str r0, [sp]
+ mov r0, #4
+ ldrsh r0, [r3, r0]
+ str r0, [sp, #4]
+ str r2, [sp, #8]
+ ldrb r1, [r4, #0xc]
+ ldr r0, [r4, #0x2c]
+ lsl r5, r1, #1
+ add r1, sp, #0x30
+ ldrsb r1, [r1, r5]
+ mov r5, #6
+ mul r1, r0
+ str r1, [sp, #0xc]
+ ldrsh r2, [r3, r2]
+ add r0, r4, #0
+ add r1, r4, #0
+ ldrsh r3, [r3, r5]
+ add r0, #0x34
+ add r1, #0x58
+ bl MOD08_02217F50
+ add r3, sp, #0x14
+ mov r0, #4
+ ldrsh r0, [r3, r0]
+ mov r5, #0xa
+ str r0, [sp]
+ mov r0, #8
+ ldrsh r0, [r3, r0]
+ str r0, [sp, #4]
+ str r5, [sp, #8]
+ ldrb r1, [r4, #0xc]
+ ldr r0, [r4, #0x2c]
+ lsl r2, r1, #1
+ add r1, sp, #0x30
+ add r1, #1
+ ldrsb r1, [r1, r2]
+ mov r2, #6
+ mul r1, r0
+ str r1, [sp, #0xc]
+ ldrsh r2, [r3, r2]
+ add r0, r4, #0
+ add r1, r4, #0
+ ldrsh r3, [r3, r5]
+ add r0, #0x80
+ add r1, #0xa4
+ bl MOD08_02217F50
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F66E:
+ add r0, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x34
+ add r1, #0x58
+ mov r5, #0
+ bl MOD08_02217FE4
+ cmp r0, #0
+ bne _0221F686
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+_0221F686:
+ add r0, r4, #0
+ add r1, r4, #0
+ ldr r2, [r4, #0x7c]
+ add r0, #0x80
+ add r1, #0xa4
+ bl MOD08_02217FE4
+ cmp r0, #0
+ bne _0221F69E
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+_0221F69E:
+ cmp r5, #2
+ bne _0221F74A
+ ldrb r0, [r4, #0xc]
+ cmp r0, #5
+ ldrb r0, [r4]
+ bne _0221F6B0
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F6B0:
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F6B6:
+ mov r5, #0
+ add r0, r4, #4
+ add r1, r5, #0
+ sub r2, r5, #2
+ bl MOD08_02218A58
+ cmp r0, #1
+ bne _0221F6C8
+ add r5, r5, #1
+_0221F6C8:
+ add r0, r4, #0
+ add r0, #8
+ mov r1, #0x10
+ mov r2, #2
+ bl MOD08_02218A58
+ cmp r0, #1
+ bne _0221F6DA
+ add r5, r5, #1
+_0221F6DA:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #4]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221F708 ; =0x04000052
+ cmp r5, #2
+ strh r1, [r0]
+ bne _0221F74A
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+ nop
+_0221F6F4: .word 0x0222C569
+_0221F6F8: .word 0x0222C56A
+_0221F6FC: .word 0x0222C56B
+_0221F700: .word 0x0222C568
+_0221F704: .word 0x0222C56C
+_0221F708: .word 0x04000052
+_0221F70C: .word 0x0222C545
+_0221F710:
+ mov r6, #0
+ ldr r0, [r4, #0x10]
+ add r1, r6, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221F738
+ add r5, r4, #0
+ add r7, r6, #0
+_0221F722:
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #0x10]
+ add r1, r7, #0
+ add r5, #0x4c
+ add r6, r6, #1
+ bl MOD08_02212498
+ cmp r6, r0
+ blt _0221F722
+_0221F738:
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #0x10]
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+_0221F74A:
+ mov r6, #0
+ ldr r0, [r4, #0x10]
+ add r1, r6, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221F7B6
+ add r5, r4, #0
+ add r7, sp, #0x14
+_0221F75C:
+ add r1, sp, #0x14
+ ldr r0, [r5, #0x30]
+ add r1, #2
+ add r2, sp, #0x14
+ bl FUN_0200C7A0
+ mov r0, #0
+ ldrsh r0, [r7, r0]
+ cmp r0, #0x50
+ bge _0221F780
+ ldr r0, [r4, #0x10]
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C6B0
+ b _0221F7A6
+_0221F780:
+ mov r0, #2
+ ldrsh r0, [r7, r0]
+ cmp r0, #0x80
+ ldr r0, [r4, #0x10]
+ ble _0221F798
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C6B0
+ b _0221F7A6
+_0221F798:
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r5, #0x30]
+ add r1, r1, #1
+ bl FUN_0200C6B0
+_0221F7A6:
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ add r5, #0x4c
+ add r6, r6, #1
+ bl MOD08_02212498
+ cmp r6, r0
+ blt _0221F75C
+_0221F7B6:
+ ldrb r0, [r4]
+ cmp r0, #4
+ blo _0221F7EA
+ mov r5, #0
+ ldr r0, [r4, #0x10]
+ add r1, r5, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221F7E4
+ add r6, r4, #0
+ add r7, r5, #0
+_0221F7CE:
+ ldr r0, [r6, #0x30]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ add r1, r7, #0
+ add r6, #0x4c
+ add r5, r5, #1
+ bl MOD08_02212498
+ cmp r5, r0
+ blt _0221F7CE
+_0221F7E4:
+ ldr r0, [r4, #0x18]
+ bl FUN_0200BC1C
+_0221F7EA:
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221F7F0
+MOD08_0221F7F0: ; 0x0221F7F0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r5, r1, #0
+ mov r1, #0xf0
+ str r0, [sp]
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r1, #0
+ strb r1, [r4]
+ ldr r0, [sp]
+ strb r1, [r4, #1]
+ str r0, [r4, #0x10]
+ str r6, [r4, #0x18]
+ str r5, [r4, #0x14]
+ str r1, [r4, #4]
+ mov r0, #0x10
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x10]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0x10]
+ bl MOD08_022154D4
+ str r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x20]
+ ldr r0, [r4, #0x10]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0x10]
+ bl MOD08_0221552C
+ str r0, [r4, #0x24]
+ ldr r0, [sp]
+ mov r1, #2
+ bl MOD08_022155C4
+ add r5, r0, #0
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD08_022155C4
+ mov r2, #1
+ add r1, r2, #0
+ add r3, r0, #0
+ lsl r1, r5
+ add r5, r2, #0
+ lsl r5, r3
+ orr r1, r5
+ orr r1, r2
+ sub r2, r2, #2
+ ldr r0, [r4, #0x10]
+ add r3, r2, #0
+ bl MOD08_022279D0
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #4]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221F92C ; =0x04000052
+ strh r1, [r0]
+ ldr r1, [sp]
+ add r0, sp, #4
+ bl MOD08_02215474
+ str r7, [r4, #0x30]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ mov r6, #1
+ bl MOD08_02212498
+ cmp r0, #1
+ ble _0221F8B2
+ add r5, r4, #0
+ add r5, #0x4c
+ add r7, sp, #4
+_0221F896:
+ ldr r0, [r4, #0x14]
+ ldr r1, [r4, #0x18]
+ add r2, r7, #0
+ bl FUN_0200C154
+ str r0, [r5, #0x30]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ add r5, #0x4c
+ add r6, r6, #1
+ bl MOD08_02212498
+ cmp r6, r0
+ blt _0221F896
+_0221F8B2:
+ mov r6, #0
+ ldr r0, [r4, #0x10]
+ add r1, r6, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221F8EC
+ add r5, r4, #0
+ mov r7, #1
+_0221F8C4:
+ ldr r0, [r5, #0x30]
+ add r1, r7, #0
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x10]
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r5, #0x30]
+ add r1, r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ add r5, #0x4c
+ add r6, r6, #1
+ bl MOD08_02212498
+ cmp r6, r0
+ blt _0221F8C4
+_0221F8EC:
+ ldr r0, [sp]
+ bl MOD08_02212004
+ cmp r0, #1
+ ldr r0, [r4, #0x30]
+ bne _0221F90C
+ mov r1, #0xa0
+ mov r2, #0x2c
+ bl FUN_0200C714
+ ldr r0, [r4, #0x7c]
+ mov r1, #0x50
+ mov r2, #0x1d
+ bl FUN_0200C714
+ b _0221F91E
+_0221F90C:
+ mov r1, #0x64
+ mov r2, #0x2c
+ bl FUN_0200C714
+ ldr r0, [r4, #0x7c]
+ mov r1, #0xb4
+ mov r2, #0x1d
+ bl FUN_0200C714
+_0221F91E:
+ ldr r0, [r4, #0x10]
+ ldr r1, _0221F930 ; =MOD08_0221F3AC
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221F92C: .word 0x04000052
+_0221F930: .word MOD08_0221F3AC
+
+ thumb_func_start MOD08_0221F934
+MOD08_0221F934: ; 0x0221F934
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ ldrb r0, [r5]
+ cmp r0, #0
+ beq _0221F946
+ cmp r0, #1
+ beq _0221F9BA
+ b _0221F9EE
+_0221F946:
+ ldrb r0, [r5, #6]
+ cmp r0, #0xf
+ bhs _0221F950
+ add r0, r0, #1
+ strb r0, [r5, #6]
+_0221F950:
+ ldrb r0, [r5, #7]
+ cmp r0, #0
+ beq _0221F95A
+ sub r0, r0, #1
+ strb r0, [r5, #7]
+_0221F95A:
+ ldrb r0, [r5, #7]
+ ldrb r1, [r5, #6]
+ mov r6, #0
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221FA3C ; =0x04000052
+ strh r1, [r0]
+ ldrb r0, [r5, #4]
+ add r0, r0, #1
+ strb r0, [r5, #4]
+ ldrb r0, [r5, #5]
+ cmp r0, #0
+ ble _0221F9AC
+ ldr r4, _0221FA40 ; =0x0222C5DC
+ add r7, r5, #0
+_0221F978:
+ add r1, sp, #0
+ ldr r0, [r7, #0x14]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ ldrb r1, [r5, #4]
+ ldrb r0, [r4]
+ cmp r1, r0
+ blo _0221F9A0
+ add r0, r5, r6
+ ldrb r1, [r0, #1]
+ add r1, r1, #1
+ strb r1, [r0, #1]
+ ldrb r2, [r0, #1]
+ ldrb r1, [r4, #1]
+ cmp r2, r1
+ blo _0221F9A0
+ mov r1, #0
+ strb r1, [r0, #1]
+_0221F9A0:
+ ldrb r0, [r5, #5]
+ add r6, r6, #1
+ add r7, r7, #4
+ add r4, r4, #2
+ cmp r6, r0
+ blt _0221F978
+_0221F9AC:
+ ldrb r0, [r5, #4]
+ cmp r0, #0x2d
+ blo _0221FA18
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ b _0221FA18
+_0221F9BA:
+ ldrb r0, [r5, #6]
+ cmp r0, #0
+ beq _0221F9C4
+ sub r0, r0, #1
+ strb r0, [r5, #6]
+_0221F9C4:
+ ldrb r0, [r5, #7]
+ cmp r0, #0xf
+ bhs _0221F9CE
+ add r0, r0, #1
+ strb r0, [r5, #7]
+_0221F9CE:
+ ldrb r0, [r5, #6]
+ cmp r0, #0
+ bne _0221F9E0
+ ldrb r0, [r5, #7]
+ cmp r0, #0xf
+ bne _0221F9E0
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+_0221F9E0:
+ ldrb r0, [r5, #7]
+ ldrb r1, [r5, #6]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221FA3C ; =0x04000052
+ strh r1, [r0]
+ b _0221FA18
+_0221F9EE:
+ ldrb r0, [r5, #5]
+ mov r6, #0
+ cmp r0, #0
+ ble _0221FA08
+ add r4, r5, #0
+_0221F9F8:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C3DC
+ ldrb r0, [r5, #5]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, r0
+ blt _0221F9F8
+_0221FA08:
+ ldr r0, [r5, #8]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_0221FA18:
+ ldrb r0, [r5, #5]
+ mov r6, #0
+ cmp r0, #0
+ ble _0221FA34
+ add r4, r5, #0
+_0221FA22:
+ ldr r0, [r4, #0x14]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldrb r0, [r5, #5]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, r0
+ blt _0221FA22
+_0221FA34:
+ ldr r0, [r5, #0x10]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221FA3C: .word 0x04000052
+_0221FA40: .word 0x0222C5DC
+
+ thumb_func_start MOD08_0221FA44
+MOD08_0221FA44: ; 0x0221FA44
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r7, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ str r3, [sp]
+ bl MOD08_02212014
+ mov r1, #0x44
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _0221FA62
+ bl ErrorHandling
+_0221FA62:
+ mov r0, #0
+ strb r0, [r4, #4]
+ strb r0, [r4]
+ str r5, [r4, #0xc]
+ str r6, [r4, #0x10]
+ add r0, sp, #4
+ add r1, r7, #0
+ str r7, [r4, #8]
+ bl MOD08_02215474
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ bl MOD08_02227994
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_02212498
+ strb r0, [r4, #5]
+ mov r0, #0
+ strb r0, [r4, #6]
+ mov r0, #0xf
+ strb r0, [r4, #7]
+ ldrb r0, [r4, #7]
+ ldrb r1, [r4, #6]
+ mov r6, #1
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221FBA8 ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [sp]
+ str r0, [r4, #0x14]
+ ldrb r0, [r4, #5]
+ cmp r0, #1
+ ble _0221FAC4
+ add r5, r4, #4
+_0221FAAE:
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ add r2, sp, #4
+ bl FUN_0200C154
+ str r0, [r5, #0x14]
+ ldrb r0, [r4, #5]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0221FAAE
+_0221FAC4:
+ add r0, r7, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r7, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221FB18
+ add r0, r7, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r7, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221FB04
+ add r0, r7, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r7, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221FB04
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200C5C0
+ b _0221FB0C
+_0221FB04:
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C5C0
+_0221FB0C:
+ ldr r0, [r4, #0x14]
+ mov r1, #0x80
+ mov r2, #0x50
+ bl FUN_0200C714
+ b _0221FB58
+_0221FB18:
+ add r0, r7, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r7, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _0221FB46
+ add r0, r7, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r7, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _0221FB46
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C5C0
+ b _0221FB4E
+_0221FB46:
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200C5C0
+_0221FB4E:
+ ldr r0, [r4, #0x14]
+ mov r1, #0x80
+ mov r2, #0x50
+ bl FUN_0200C714
+_0221FB58:
+ ldrb r0, [r4, #5]
+ mov r6, #0
+ cmp r0, #0
+ ble _0221FB98
+ add r5, r4, #0
+_0221FB62:
+ add r1, r4, r6
+ mov r0, #0
+ strb r0, [r1, #1]
+ ldr r0, [r5, #0x14]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r5, #0x14]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #8]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _0221FB8E
+ mov r2, #0xfe
+ ldr r0, [r5, #0x14]
+ ldr r1, _0221FBAC ; =0xBF800000
+ lsl r2, r2, #0x16
+ bl FUN_0200C884
+_0221FB8E:
+ ldrb r0, [r4, #5]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0221FB62
+_0221FB98:
+ ldr r1, _0221FBB0 ; =MOD08_0221F934
+ ldr r3, _0221FBB4 ; =0x0000044C
+ add r0, r7, #0
+ add r2, r4, #0
+ bl MOD08_022123E4
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221FBA8: .word 0x04000052
+_0221FBAC: .word 0xBF800000
+_0221FBB0: .word MOD08_0221F934
+_0221FBB4: .word 0x0000044C
+
+ thumb_func_start MOD08_0221FBB8
+MOD08_0221FBB8: ; 0x0221FBB8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r7, r0, #0
+ ldrb r0, [r4]
+ mov r6, #0
+ cmp r0, #3
+ bls _0221FBCA
+ b _0221FD70
+_0221FBCA:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221FBD6: ; jump table
+ .short _0221FBDE - _0221FBD6 - 2 ; case 0
+ .short _0221FC12 - _0221FBD6 - 2 ; case 1
+ .short _0221FCEA - _0221FBD6 - 2 ; case 2
+ .short _0221FD36 - _0221FBD6 - 2 ; case 3
+_0221FBDE:
+ ldrb r0, [r4, #9]
+ cmp r0, #0xf
+ bhs _0221FBE8
+ add r0, r0, #1
+ strb r0, [r4, #9]
+_0221FBE8:
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ beq _0221FBF2
+ sub r0, r0, #1
+ strb r0, [r4, #0xa]
+_0221FBF2:
+ ldrb r0, [r4, #9]
+ cmp r0, #0xf
+ bne _0221FC04
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ bne _0221FC04
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221FC04:
+ ldrb r0, [r4, #0xa]
+ ldrb r1, [r4, #9]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221FDCC ; =0x04000052
+ strh r1, [r0]
+ b _0221FD9C
+_0221FC12:
+ ldr r0, [r4, #0x30]
+ cmp r0, #3
+ bhi _0221FC78
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221FC24: ; jump table
+ .short _0221FC2C - _0221FC24 - 2 ; case 0
+ .short _0221FC46 - _0221FC24 - 2 ; case 1
+ .short _0221FC60 - _0221FC24 - 2 ; case 2
+ .short _0221FC60 - _0221FC24 - 2 ; case 3
+_0221FC2C:
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x24]
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x34]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl FUN_0200C644
+ b _0221FC78
+_0221FC46:
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x20]
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x34]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl FUN_0200C644
+ b _0221FC78
+_0221FC60:
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x2c]
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x34]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl FUN_0200C644
+_0221FC78:
+ add r1, sp, #8
+ ldr r0, [r4, #0x34]
+ add r1, #2
+ add r2, sp, #8
+ bl FUN_0200C7A0
+ ldr r1, [r4, #0x30]
+ ldr r0, _0221FDD0 ; =0x0222C614
+ lsl r2, r1, #3
+ ldrsh r0, [r0, r2]
+ ldr r5, _0221FDD4 ; =0x0222C612
+ add r3, sp, #8
+ str r0, [sp]
+ ldr r0, _0221FDD8 ; =0x0222C5D8
+ ldrsh r2, [r5, r2]
+ ldrb r0, [r0, r1]
+ mov r1, #2
+ mov r5, #0
+ str r0, [sp, #4]
+ ldrsh r1, [r3, r1]
+ add r0, r4, #0
+ ldrsh r3, [r3, r5]
+ add r0, #0x3c
+ bl MOD08_02217E80
+ add r1, sp, #8
+ ldr r0, [r4, #0x38]
+ add r1, #2
+ add r2, sp, #8
+ bl FUN_0200C7A0
+ ldr r1, [r4, #0x30]
+ ldr r0, _0221FDDC ; =0x0222C618
+ lsl r2, r1, #3
+ ldrsh r0, [r0, r2]
+ ldr r5, _0221FDE0 ; =0x0222C616
+ add r3, sp, #8
+ str r0, [sp]
+ ldr r0, _0221FDD8 ; =0x0222C5D8
+ ldrsh r2, [r5, r2]
+ ldrb r0, [r0, r1]
+ mov r1, #2
+ mov r5, #0
+ str r0, [sp, #4]
+ ldrsh r1, [r3, r1]
+ add r0, r4, #0
+ ldrsh r3, [r3, r5]
+ add r0, #0x60
+ bl MOD08_02217E80
+ ldr r0, [r4, #0x30]
+ add r0, r0, #1
+ str r0, [r4, #0x30]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221FD9C
+_0221FCEA:
+ add r0, r4, #0
+ ldr r1, [r4, #0x34]
+ add r0, #0x3c
+ add r5, r6, #0
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _0221FCFC
+ add r5, r5, #1
+_0221FCFC:
+ add r0, r4, #0
+ ldr r1, [r4, #0x38]
+ add r0, #0x60
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _0221FD0C
+ add r5, r5, #1
+_0221FD0C:
+ cmp r5, #2
+ blt _0221FD9C
+ ldr r0, [r4, #0x30]
+ cmp r0, #3
+ bgt _0221FD2E
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl FUN_0200C644
+ ldrb r0, [r4]
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _0221FD9C
+_0221FD2E:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221FD9C
+_0221FD36:
+ ldrb r0, [r4, #9]
+ cmp r0, #0
+ beq _0221FD40
+ sub r0, r0, #1
+ strb r0, [r4, #9]
+_0221FD40:
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0xf
+ bhs _0221FD4A
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+_0221FD4A:
+ ldrb r1, [r4, #0xa]
+ cmp r1, #7
+ blo _0221FD52
+ mov r6, #1
+_0221FD52:
+ ldrb r0, [r4, #9]
+ cmp r0, #0
+ bne _0221FD62
+ cmp r1, #0xf
+ bne _0221FD62
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221FD62:
+ ldrb r0, [r4, #0xa]
+ ldrb r1, [r4, #9]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221FDCC ; =0x04000052
+ strh r1, [r0]
+ b _0221FD9C
+_0221FD70:
+ ldrb r0, [r4, #8]
+ mov r6, #0
+ cmp r0, #0
+ ble _0221FD8A
+ add r5, r4, #0
+_0221FD7A:
+ ldr r0, [r5, #0x18]
+ bl FUN_0200C3DC
+ ldrb r0, [r4, #8]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0221FD7A
+_0221FD8A:
+ ldr r0, [r4, #0xc]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_0221FD9C:
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhs _0221FDC2
+ cmp r6, #0
+ bne _0221FDC2
+ ldrb r0, [r4, #8]
+ mov r6, #0
+ cmp r0, #0
+ ble _0221FDC2
+ add r5, r4, #0
+_0221FDB0:
+ ldr r0, [r5, #0x18]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldrb r0, [r4, #8]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0221FDB0
+_0221FDC2:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200BC1C
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221FDCC: .word 0x04000052
+_0221FDD0: .word 0x0222C614
+_0221FDD4: .word 0x0222C612
+_0221FDD8: .word 0x0222C5D8
+_0221FDDC: .word 0x0222C618
+_0221FDE0: .word 0x0222C616
+
+ thumb_func_start MOD08_0221FDE4
+MOD08_0221FDE4: ; 0x0221FDE4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ str r0, [sp]
+ add r5, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_02212014
+ mov r1, #0x84
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _0221FE02
+ bl ErrorHandling
+_0221FE02:
+ mov r0, #0
+ strb r0, [r4, #7]
+ strb r0, [r4]
+ str r5, [r4, #0x10]
+ str r6, [r4, #0x14]
+ str r0, [r4, #0x30]
+ ldr r0, [sp]
+ ldr r1, [sp]
+ str r0, [r4, #0xc]
+ add r0, sp, #4
+ bl MOD08_02215474
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [r4, #0xc]
+ add r2, r1, #0
+ bl MOD08_02227994
+ mov r1, #0
+ strb r1, [r4, #9]
+ mov r0, #0xf
+ strb r0, [r4, #0xa]
+ ldrb r0, [r4, #0xa]
+ ldrb r2, [r4, #9]
+ lsl r0, r0, #8
+ orr r2, r0
+ ldr r0, _0221FF0C ; =0x04000052
+ strh r2, [r0]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212498
+ strb r0, [r4, #8]
+ str r7, [r4, #0x18]
+ ldrb r0, [r4, #8]
+ mov r6, #1
+ cmp r0, #1
+ ble _0221FE66
+ add r5, r4, #4
+ add r7, sp, #4
+_0221FE50:
+ ldr r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ add r2, r7, #0
+ bl FUN_0200C154
+ str r0, [r5, #0x18]
+ ldrb r0, [r4, #8]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0221FE50
+_0221FE66:
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x20]
+ mov r1, #1
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x2c]
+ mov r1, #3
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_0200C8D0
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200C8D0
+ ldrb r0, [r4, #8]
+ mov r7, #0
+ cmp r0, #0
+ ble _0221FEDC
+ ldr r6, _0221FF10 ; =0x0222C5FA
+ add r5, r4, #0
+_0221FEB2:
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C5E0
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r6, r1]
+ ldrsh r2, [r6, r2]
+ ldr r0, [r5, #0x18]
+ bl FUN_0200C714
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldrb r0, [r4, #8]
+ add r7, r7, #1
+ add r5, r5, #4
+ add r6, r6, #4
+ cmp r7, r0
+ blt _0221FEB2
+_0221FEDC:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x20]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x2c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [sp]
+ ldr r1, _0221FF14 ; =MOD08_0221FBB8
+ ldr r3, _0221FF18 ; =0x0000044C
+ add r2, r4, #0
+ bl MOD08_022123E4
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221FF0C: .word 0x04000052
+_0221FF10: .word 0x0222C5FA
+_0221FF14: .word MOD08_0221FBB8
+_0221FF18: .word 0x0000044C
+
+ thumb_func_start MOD08_0221FF1C
+MOD08_0221FF1C: ; 0x0221FF1C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #7
+ bls _0221FF2C
+ b _02220084
+_0221FF2C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221FF38: ; jump table
+ .short _0221FF48 - _0221FF38 - 2 ; case 0
+ .short _0221FF5C - _0221FF38 - 2 ; case 1
+ .short _0221FF7E - _0221FF38 - 2 ; case 2
+ .short _0221FFAC - _0221FF38 - 2 ; case 3
+ .short _0221FFDA - _0221FF38 - 2 ; case 4
+ .short _0221FFF8 - _0221FF38 - 2 ; case 5
+ .short _02220020 - _0221FF38 - 2 ; case 6
+ .short _02220068 - _0221FF38 - 2 ; case 7
+_0221FF48:
+ ldrb r0, [r4, #0xe]
+ sub r0, r0, #1
+ strb r0, [r4, #0xe]
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0xa
+ bhi _0221FF68
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_0221FF5C:
+ ldrb r0, [r4, #0xd]
+ add r0, r0, #1
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xd]
+ cmp r0, #3
+ bhs _0221FF6A
+_0221FF68:
+ b _02220092
+_0221FF6A:
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C644
+ mov r0, #0
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_0221FF7E:
+ ldrb r0, [r4, #0xd]
+ add r0, r0, #1
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xd]
+ cmp r0, #3
+ bhi _0221FFA0
+ ldr r0, [r4, #0x38]
+ ldr r1, _0222009C ; =0x3DCCCCCD
+ bl _fadd
+ str r0, [r4, #0x38]
+ ldr r1, [r4, #0x38]
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl FUN_0200C884
+ b _02220092
+_0221FFA0:
+ mov r0, #0
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_0221FFAC:
+ ldrb r0, [r4, #0xd]
+ add r0, r0, #1
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xd]
+ cmp r0, #3
+ bhi _0221FFCE
+ ldr r0, [r4, #0x38]
+ ldr r1, _0222009C ; =0x3DCCCCCD
+ bl _fsub
+ str r0, [r4, #0x38]
+ ldr r1, [r4, #0x38]
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl FUN_0200C884
+ b _02220092
+_0221FFCE:
+ mov r0, #0
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_0221FFDA:
+ ldrb r0, [r4, #0xe]
+ sub r0, r0, #1
+ strb r0, [r4, #0xe]
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0xa
+ bhi _02220092
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ str r1, [r0]
+ mov r0, #0
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_0221FFF8:
+ ldrb r0, [r4, #0xd]
+ add r0, r0, #1
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xd]
+ cmp r0, #0x1e
+ bls _02220010
+ mov r0, #0
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_02220010:
+ ldr r0, [r4, #0x3c]
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _02220092
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_02220020:
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ add r5, r1, #0
+ add r2, sp, #8
+ ldr r0, [r4, #0x10]
+ add r1, sp, #8
+ add r2, #2
+ add r5, #0xa
+ bl FUN_0200C7A0
+ ldrb r0, [r4, #0xf]
+ add r3, sp, #8
+ mov r1, #0
+ lsl r2, r0, #2
+ ldr r0, _022200A0 ; =0x0222C5E4
+ ldrsh r0, [r0, r2]
+ str r0, [sp]
+ lsl r0, r5, #0x10
+ ldr r5, _022200A4 ; =0x0222C5E2
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldrsh r2, [r5, r2]
+ add r0, r4, #0
+ mov r5, #2
+ ldrsh r1, [r3, r1]
+ ldrsh r3, [r3, r5]
+ add r0, #0x14
+ bl MOD08_02217E80
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_02220068:
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _02220092
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200C644
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02220084:
+ ldr r0, [r4, #0x3c]
+ mov r1, #3
+ str r1, [r0]
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_02220092:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C5A8
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_0222009C: .word 0x3DCCCCCD
+_022200A0: .word 0x0222C5E4
+_022200A4: .word 0x0222C5E2
+
+ thumb_func_start MOD08_022200A8
+MOD08_022200A8: ; 0x022200A8
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhi _02220164
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022200C0: ; jump table
+ .short _022200C8 - _022200C0 - 2 ; case 0
+ .short _022200F4 - _022200C0 - 2 ; case 1
+ .short _02220116 - _022200C0 - 2 ; case 2
+ .short _02220142 - _022200C0 - 2 ; case 3
+_022200C8:
+ ldrb r6, [r4, #2]
+ mov r3, #1
+ mov r2, #0
+ cmp r6, #0
+ ble _022200E8
+ ldr r0, _0222017C ; =0x00000514
+ add r5, r4, #0
+_022200D6:
+ ldr r1, [r5, r0]
+ cmp r1, #1
+ beq _022200E0
+ mov r3, #0
+ b _022200E8
+_022200E0:
+ add r2, r2, #1
+ add r5, r5, #4
+ cmp r2, r6
+ blt _022200D6
+_022200E8:
+ cmp r3, #1
+ bne _02220174
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _02220174
+_022200F4:
+ ldrb r0, [r4, #2]
+ mov r5, #0
+ cmp r0, #0
+ ble _0222010E
+ ldr r0, _0222017C ; =0x00000514
+ add r3, r4, #0
+ mov r2, #2
+_02220102:
+ str r2, [r3, r0]
+ ldrb r1, [r4, #2]
+ add r5, r5, #1
+ add r3, r3, #4
+ cmp r5, r1
+ blt _02220102
+_0222010E:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _02220174
+_02220116:
+ ldrb r5, [r4, #2]
+ mov r2, #1
+ mov r6, #0
+ cmp r5, #0
+ ble _02220136
+ ldr r0, _0222017C ; =0x00000514
+ add r3, r4, #0
+_02220124:
+ ldr r1, [r3, r0]
+ cmp r1, #3
+ beq _0222012E
+ mov r2, #0
+ b _02220136
+_0222012E:
+ add r6, r6, #1
+ add r3, r3, #4
+ cmp r6, r5
+ blt _02220124
+_02220136:
+ cmp r2, #1
+ bne _02220174
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _02220174
+_02220142:
+ ldrb r0, [r4, #2]
+ mov r6, #0
+ cmp r0, #0
+ ble _0222015C
+ add r5, r4, #0
+_0222014C:
+ ldr r0, [r5, #0x24]
+ bl FUN_0200C3DC
+ ldrb r0, [r4, #2]
+ add r6, r6, #1
+ add r5, #0x40
+ cmp r6, r0
+ blt _0222014C
+_0222015C:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _02220174
+_02220164:
+ ldr r0, [r4, #8]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+_02220174:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222017C: .word 0x00000514
+
+ thumb_func_start MOD08_02220180
+MOD08_02220180: ; 0x02220180
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x50
+ str r0, [sp]
+ add r5, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_02212014
+ ldr r1, _022202E8 ; =0x00000564
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _0222019E
+ bl ErrorHandling
+_0222019E:
+ mov r0, #0
+ strb r0, [r4, #1]
+ strb r0, [r4]
+ str r5, [r4, #0xc]
+ ldr r0, [sp]
+ str r6, [r4, #0x10]
+ str r0, [r4, #8]
+ ldr r1, [sp]
+ add r0, sp, #0x1c
+ bl MOD08_02215474
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ bl MOD08_02227994
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_02212498
+ strb r0, [r4, #2]
+ mov r0, #0xc
+ strb r0, [r4, #2]
+ mov r0, #0
+ str r7, [r4, #0x24]
+ str r0, [sp, #4]
+ str r0, [sp, #0x14]
+ ldrb r0, [r4, #2]
+ cmp r0, #0
+ ble _022202D8
+ ldr r0, _022202EC ; =0x00000514
+ add r5, r4, #0
+ add r0, r4, r0
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ str r0, [sp, #8]
+ add r0, #0x14
+ str r0, [sp, #8]
+_022201EC:
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _022201FE
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ add r2, sp, #0x1c
+ bl FUN_0200C154
+ str r0, [r5, #0x24]
+_022201FE:
+ add r1, r5, #0
+ ldr r6, [r5, #0x24]
+ add r1, #0x20
+ mov r0, #0
+ strb r0, [r1]
+ add r1, r5, #0
+ add r1, #0x21
+ strb r0, [r1]
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ ldr r0, [sp, #0x14]
+ add r1, #0xa
+ add r1, r0, r1
+ add r0, r5, #0
+ add r0, #0x22
+ strb r1, [r0]
+ bl LCRandom
+ mov r1, #6
+ bl _s32_div_f
+ add r0, r5, #0
+ add r0, #0x23
+ strb r1, [r0]
+ mov r0, #0xfe
+ lsl r0, r0, #0x16
+ str r0, [r5, #0x4c]
+ ldr r0, [r4, #8]
+ ldr r1, _022202F0 ; =0x0222C632
+ str r0, [r5, #0x14]
+ ldr r0, [r4, #0xc]
+ str r0, [r5, #0x18]
+ ldr r0, [r4, #0x10]
+ str r0, [r5, #0x1c]
+ ldr r0, [sp, #0xc]
+ str r0, [r5, #0x50]
+ ldr r0, [sp, #4]
+ lsl r0, r0, #3
+ str r0, [sp, #0x18]
+ add r7, r1, r0
+ bl LCRandom
+ mov r1, #6
+ ldrsh r1, [r7, r1]
+ bl _s32_div_f
+ mov r0, #2
+ ldrsh r0, [r7, r0]
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ bl LCRandom
+ mov r1, #4
+ ldrsh r1, [r7, r1]
+ bl _s32_div_f
+ ldr r2, _022202F0 ; =0x0222C632
+ ldr r0, [sp, #0x18]
+ ldrsh r0, [r2, r0]
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ asr r2, r0, #0x10
+ ldr r1, [sp, #0x10]
+ add r0, r6, #0
+ bl FUN_0200C714
+ add r0, r6, #0
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r1, [r5, #0x4c]
+ add r0, r6, #0
+ add r2, r1, #0
+ bl FUN_0200C884
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [sp]
+ ldr r1, _022202F4 ; =MOD08_0221FF1C
+ ldr r2, [sp, #8]
+ ldr r3, _022202F8 ; =0x0000044B
+ bl MOD08_022123E4
+ ldr r0, [sp, #4]
+ mov r1, #6
+ add r0, r0, #1
+ bl _s32_div_f
+ ldr r0, [sp, #0xc]
+ str r1, [sp, #4]
+ add r0, r0, #4
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #8]
+ ldrb r1, [r4, #2]
+ add r0, #0x40
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x14]
+ add r5, #0x40
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, r1
+ blt _022201EC
+_022202D8:
+ ldr r0, [sp]
+ ldr r1, _022202FC ; =MOD08_022200A8
+ ldr r3, _02220300 ; =0x0000044D
+ add r2, r4, #0
+ bl MOD08_022123E4
+ add sp, #0x50
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022202E8: .word 0x00000564
+_022202EC: .word 0x00000514
+_022202F0: .word 0x0222C632
+_022202F4: .word MOD08_0221FF1C
+_022202F8: .word 0x0000044B
+_022202FC: .word MOD08_022200A8
+_02220300: .word 0x0000044D
+
+ thumb_func_start MOD08_02220304
+MOD08_02220304: ; 0x02220304
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #4]
+ cmp r0, #3
+ bhi _022203EA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222031E: ; jump table
+ .short _02220326 - _0222031E - 2 ; case 0
+ .short _02220344 - _0222031E - 2 ; case 1
+ .short _02220396 - _0222031E - 2 ; case 2
+ .short _022203C0 - _0222031E - 2 ; case 3
+_02220326:
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ b _02220410
+_02220344:
+ add r0, r4, #0
+ add r0, #0x2c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02220410
+ mov r0, #0
+ str r0, [r4]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD08_022155C4
+ add r5, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD08_02218998
+ add r6, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_02212014
+ mov r1, #0xc8
+ str r1, [sp]
+ mov r3, #3
+ str r5, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ str r6, [sp, #0xc]
+ str r0, [sp, #0x10]
+ add r0, r1, #0
+ mov r1, #0xa0
+ add r2, r1, #0
+ add r2, #0xcc
+ lsl r3, r3, #0xe
+ bl MOD08_022188DC
+ str r0, [r4, #0x28]
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ b _02220410
+_02220396:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ cmp r0, #0x78
+ blt _02220410
+ ldr r0, [r4, #0x28]
+ bl MOD08_0221894C
+ mov r1, #2
+ mov r2, #0x10
+ str r1, [sp]
+ add r0, r4, #0
+ str r2, [sp, #4]
+ add r0, #0x2c
+ add r3, r2, #0
+ bl MOD08_022186D4
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ b _02220410
+_022203C0:
+ add r0, r4, #0
+ add r0, #0x2c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02220410
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ b _02220410
+_022203EA:
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _02220428 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD08_02214850
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+_02220410:
+ ldr r0, [r4, #0x24]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x20]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02220428: .word 0xFFFF1FFF
+
+ thumb_func_start MOD08_0222042C
+MOD08_0222042C: ; 0x0222042C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ mov r1, #0x54
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #4
+ bl MOD08_02227B70
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_022124D8
+ mov r1, #2
+ str r0, [r4, #0x20]
+ bl FUN_0200C90C
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _022204C0 ; =0xFFFF1FFF
+ and r2, r1
+ lsr r1, r0, #0xb
+ orr r1, r2
+ str r1, [r0]
+ add r0, #0x4a
+ ldrh r2, [r0]
+ mov r1, #0x3f
+ bic r2, r1
+ mov r1, #0x1b
+ orr r1, r2
+ strh r1, [r0]
+ ldrh r2, [r0]
+ ldr r1, _022204C4 ; =0xFFFFC0FF
+ and r2, r1
+ mov r1, #0x17
+ lsl r1, r1, #8
+ orr r1, r2
+ strh r1, [r0]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD08_022124D8
+ mov r1, #1
+ str r0, [r4, #0x24]
+ bl FUN_0200C90C
+ mov r1, #0x10
+ str r1, [sp]
+ add r0, r4, #0
+ mov r2, #2
+ str r1, [sp, #4]
+ add r0, #0x2c
+ add r3, r2, #0
+ bl MOD08_022186D4
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD08_0221477C
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ ldr r0, [r4, #8]
+ ldr r1, _022204C8 ; =MOD08_02220304
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_022204C0: .word 0xFFFF1FFF
+_022204C4: .word 0xFFFFC0FF
+_022204C8: .word MOD08_02220304
+
+ thumb_func_start MOD08_022204CC
+MOD08_022204CC: ; 0x022204CC
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0200C658
+ cmp r0, #1
+ bne _022204DE
+ add r0, r4, #0
+ bl FUN_0200C5A8
+_022204DE:
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022204E0
+MOD08_022204E0: ; 0x022204E0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r1, [sp, #4]
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ mov r1, #0x1c
+ ldrsh r0, [r0, r1]
+ cmp r0, #0
+ bgt _02220504
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x30]
+ bl MOD08_022204CC
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x34]
+ bl MOD08_022204CC
+ b _0222050A
+_02220504:
+ sub r1, r0, #1
+ ldr r0, [sp, #4]
+ strh r1, [r0, #0x1c]
+_0222050A:
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x28]
+ bl MOD08_022204CC
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x2c]
+ bl MOD08_022204CC
+ ldr r4, [sp, #4]
+ mov r6, #0
+ add r7, r6, #0
+ add r5, r4, #0
+_02220522:
+ mov r0, #0x1e
+ ldrsh r0, [r4, r0]
+ add r0, r0, #1
+ strh r0, [r4, #0x1e]
+ mov r0, #0x1e
+ ldrsh r0, [r4, r0]
+ cmp r0, #0x28
+ blt _0222053C
+ ldr r0, [r5, #0x28]
+ mov r1, #0
+ bl FUN_0200C644
+ add r6, r6, #1
+_0222053C:
+ add r7, r7, #1
+ add r4, r4, #2
+ add r5, r5, #4
+ cmp r7, #4
+ blt _02220522
+ cmp r6, #4
+ bne _02220570
+ ldr r4, [sp, #4]
+ mov r5, #0
+_0222054E:
+ ldr r0, [r4, #0x28]
+ bl FUN_0200C3DC
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #4
+ blt _0222054E
+ ldr r0, [sp, #4]
+ ldr r1, [sp]
+ ldr r0, [r0, #4]
+ bl MOD08_02212438
+ ldr r0, [sp, #4]
+ bl FreeToHeap
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02220570:
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x10]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222057C
+MOD08_0222057C: ; 0x0222057C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ mov r1, #0x38
+ add r5, r0, #0
+ add r4, r3, #0
+ bl MOD08_02228064
+ add r6, r0, #0
+ mov r0, #0xa
+ strh r0, [r6, #0x1c]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227B70
+ ldr r1, [r6, #4]
+ add r0, sp, #0
+ bl MOD08_02215474
+ str r4, [r6, #0x28]
+ mov r0, #0
+ strh r0, [r6, #0x1e]
+ mov r7, #1
+ add r4, r6, #2
+ add r5, r6, #4
+_022205AC:
+ mov r0, #0
+ strh r0, [r4, #0x1e]
+ ldr r0, [r6, #8]
+ ldr r1, [r6, #0x10]
+ add r2, sp, #0
+ bl FUN_0200C154
+ str r0, [r5, #0x28]
+ add r7, r7, #1
+ add r4, r4, #2
+ add r5, r5, #4
+ cmp r7, #4
+ blt _022205AC
+ ldr r0, [r6, #0x28]
+ mov r1, #1
+ bl FUN_0200C8D0
+ ldr r0, [r6, #0x2c]
+ mov r1, #1
+ bl FUN_0200C8D0
+ mov r1, #0x1f
+ ldr r0, [r6, #0x28]
+ mvn r1, r1
+ mov r2, #0
+ bl FUN_0200C82C
+ mov r1, #0x1f
+ ldr r0, [r6, #0x2c]
+ mvn r1, r1
+ mov r2, #0x20
+ bl FUN_0200C82C
+ ldr r0, [r6, #0x30]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_0200C82C
+ mov r1, #0x20
+ ldr r0, [r6, #0x34]
+ add r2, r1, #0
+ bl FUN_0200C82C
+ ldr r0, [r6, #4]
+ ldr r1, _02220610 ; =MOD08_022204E0
+ add r2, r6, #0
+ bl MOD08_02212400
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02220610: .word MOD08_022204E0
+
+ thumb_func_start MOD08_02220614
+MOD08_02220614: ; 0x02220614
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r1, #0
+ mov r4, #0
+ str r0, [sp, #0x1c]
+ str r4, [sp, #0x20]
+ add r6, r5, #0
+ add r7, r5, #0
+_02220624:
+ mov r0, #0x22
+ ldrsh r0, [r6, r0]
+ add r0, r0, #1
+ strh r0, [r6, #0x22]
+ mov r0, #0x22
+ ldrsh r0, [r6, r0]
+ cmp r0, #0x14
+ blt _02220676
+ ldr r0, [r7, #0x2c]
+ bl MOD08_022204CC
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x6e
+ bne _02220676
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [r5, #4]
+ add r2, r1, #0
+ bl MOD08_02227994
+ ldr r0, [r5, #0x2c]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x34]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x38]
+ mov r1, #1
+ bl FUN_0200C90C
+ mov r0, #0xf
+ str r0, [r5, #0x54]
+ mov r0, #0
+ str r0, [r5, #0x58]
+_02220676:
+ add r4, r4, #1
+ add r6, r6, #2
+ add r7, r7, #4
+ cmp r4, #4
+ blt _02220624
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x32
+ bne _022206BA
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _02220894 ; =0x0000FFFF
+ str r0, [sp, #0x14]
+ ldr r0, _02220898 ; =0x000003EA
+ str r0, [sp, #0x18]
+ ldr r3, [r5, #0x1c]
+ ldr r0, [r5, #0x18]
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl MOD08_02218B20
+ str r0, [r5, #0x3c]
+_022206BA:
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x3c
+ bne _022206F4
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ mov r0, #0xe
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, _02220894 ; =0x0000FFFF
+ str r0, [sp, #0x14]
+ ldr r0, _02220898 ; =0x000003EA
+ str r0, [sp, #0x18]
+ ldr r3, [r5, #0x1c]
+ ldr r0, [r5, #0x18]
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl MOD08_02218B20
+ str r0, [r5, #0x40]
+_022206F4:
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x46
+ bne _0222072E
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _02220894 ; =0x0000FFFF
+ str r0, [sp, #0x14]
+ ldr r0, _02220898 ; =0x000003EA
+ str r0, [sp, #0x18]
+ ldr r3, [r5, #0x1c]
+ ldr r0, [r5, #0x18]
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl MOD08_02218B20
+ str r0, [r5, #0x44]
+_0222072E:
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x50
+ bne _02220768
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ mov r0, #0xe
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, _02220894 ; =0x0000FFFF
+ str r0, [sp, #0x14]
+ ldr r0, _02220898 ; =0x000003EA
+ str r0, [sp, #0x18]
+ ldr r3, [r5, #0x1c]
+ ldr r0, [r5, #0x18]
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl MOD08_02218B20
+ str r0, [r5, #0x48]
+_02220768:
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x5a
+ bne _022207A2
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _02220894 ; =0x0000FFFF
+ str r0, [sp, #0x14]
+ ldr r0, _02220898 ; =0x000003EA
+ str r0, [sp, #0x18]
+ ldr r3, [r5, #0x1c]
+ ldr r0, [r5, #0x18]
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl MOD08_02218B20
+ str r0, [r5, #0x4c]
+_022207A2:
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x64
+ bne _022207DC
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ mov r0, #0xe
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, _02220894 ; =0x0000FFFF
+ str r0, [sp, #0x14]
+ ldr r0, _02220898 ; =0x000003EA
+ str r0, [sp, #0x18]
+ ldr r3, [r5, #0x1c]
+ ldr r0, [r5, #0x18]
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl MOD08_02218B20
+ str r0, [r5, #0x50]
+_022207DC:
+ mov r1, #0x22
+ ldrsh r0, [r5, r1]
+ cmp r0, #0x6e
+ bne _02220816
+ sub r1, #0x23
+ ldr r0, [r5, #4]
+ add r2, r1, #0
+ bl MOD08_02227994
+ ldr r0, [r5, #0x2c]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x34]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x38]
+ mov r1, #1
+ bl FUN_0200C90C
+ mov r0, #0xf
+ str r0, [r5, #0x54]
+ mov r0, #0
+ str r0, [r5, #0x58]
+_02220816:
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x6e
+ blt _0222084E
+ ldr r0, [r5, #0x54]
+ cmp r0, #0
+ ble _02220828
+ sub r0, r0, #1
+ str r0, [r5, #0x54]
+_02220828:
+ ldr r0, [r5, #0x58]
+ cmp r0, #0xf
+ bge _02220832
+ add r0, r0, #1
+ str r0, [r5, #0x58]
+_02220832:
+ ldr r0, [r5, #0x58]
+ ldr r1, [r5, #0x54]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0222089C ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [r5, #0x54]
+ cmp r0, #0
+ bne _0222084E
+ ldr r0, [r5, #0x58]
+ cmp r0, #0xf
+ bne _0222084E
+ mov r0, #4
+ str r0, [sp, #0x20]
+_0222084E:
+ ldr r0, [sp, #0x20]
+ cmp r0, #4
+ bne _0222088A
+ mov r6, #0
+ add r4, r5, #0
+_02220858:
+ ldr r0, [r4, #0x2c]
+ bl FUN_0200C3DC
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _02220858
+ mov r6, #0
+ add r4, r5, #0
+_0222086A:
+ ldr r0, [r4, #0x3c]
+ bl MOD08_02218B08
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #6
+ blt _0222086A
+ ldr r0, [r5, #4]
+ ldr r1, [sp, #0x1c]
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FreeToHeap
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+_0222088A:
+ ldr r0, [r5, #0x10]
+ bl FUN_0200BC1C
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02220894: .word 0x0000FFFF
+_02220898: .word 0x000003EA
+_0222089C: .word 0x04000052
+
+ thumb_func_start MOD08_022208A0
+MOD08_022208A0: ; 0x022208A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ mov r1, #0x5c
+ str r0, [sp]
+ add r5, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0xa
+ strh r0, [r4, #0x20]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r1, [r4, #4]
+ add r0, sp, #0xc
+ bl MOD08_02215474
+ str r5, [r4, #0x2c]
+ mov r0, #0
+ strh r0, [r4, #0x22]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r7, #5
+ add r6, r4, #2
+ add r5, r4, #4
+_022208D4:
+ bl LCRandom
+ lsr r1, r0, #0x1f
+ lsl r2, r0, #0x1e
+ sub r2, r2, r1
+ mov r0, #0x1e
+ ror r2, r0
+ add r0, r1, r2
+ add r0, r7, r0
+ strh r0, [r6, #0x22]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x10]
+ add r2, sp, #0xc
+ bl FUN_0200C154
+ str r0, [r5, #0x2c]
+ ldr r0, [sp, #8]
+ add r7, r7, #5
+ add r0, r0, #1
+ add r6, r6, #2
+ add r5, r5, #4
+ str r0, [sp, #8]
+ cmp r0, #4
+ blt _022208D4
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C8D0
+ ldr r0, [r4, #0x34]
+ mov r1, #1
+ bl FUN_0200C8D0
+ ldr r0, [sp]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r5, r0, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ add r0, r5, #0
+ mov r1, #0x29
+ bl FUN_0200782C
+ ldr r0, [sp]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _02220956
+ mov r7, #0x8c
+ b _02220958
+_02220956:
+ mov r7, #0x54
+_02220958:
+ mov r6, #0
+ add r5, r4, #0
+_0222095C:
+ ldr r0, [r5, #0x2c]
+ ldr r1, [sp, #4]
+ add r2, r7, #0
+ bl FUN_0200C714
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0222095C
+ ldr r0, [sp]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD08_02227470
+ cmp r0, #3
+ ldr r0, [r4, #0x2c]
+ bne _022209A2
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x34]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x30]
+ mov r1, #0x12
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x38]
+ mov r1, #0x12
+ bl FUN_0200C6C4
+ b _022209C0
+_022209A2:
+ mov r1, #0x12
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x34]
+ mov r1, #0x12
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x30]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x38]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+_022209C0:
+ mov r1, #0x1f
+ ldr r0, [r4, #0x2c]
+ mvn r1, r1
+ mov r2, #0
+ bl FUN_0200C82C
+ mov r1, #0x27
+ ldr r0, [r4, #0x38]
+ mvn r1, r1
+ mov r2, #4
+ bl FUN_0200C82C
+ ldr r0, [r4, #0x34]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_0200C82C
+ ldr r0, [r4, #0x30]
+ mov r1, #0x28
+ mov r2, #4
+ bl FUN_0200C82C
+ ldr r0, [r4, #0x2c]
+ bl FUN_0200C68C
+ str r0, [r4, #0x1c]
+ ldr r0, [r4, #4]
+ ldr r1, _02220A04 ; =MOD08_02220614
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02220A04: .word MOD08_02220614
+
+ thumb_func_start MOD08_02220A08
+MOD08_02220A08: ; 0x02220A08
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ bne _02220A8E
+ add r0, r4, #0
+ add r0, #0x60
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _02220A4C
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl MOD08_02228094
+ add sp, #0xc
+ pop {r4, r5, pc}
+_02220A4C:
+ add r0, r4, #0
+ add r0, #0x60
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x28]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #4]
+ bl FUN_0200C884
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x58
+ mov r2, #0x5a
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x28]
+ ldr r3, [r4, #0x74]
+ bl MOD08_02218314
+ ldr r0, [r4, #0x28]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x3c]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x50]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+_02220A8E:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02220A94
+MOD08_02220A94: ; 0x02220A94
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r1, #0x84
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ mov r1, #1
+ str r0, [r4, #0x24]
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x58
+ strh r0, [r1]
+ mov r0, #0x58
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0x5c
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_0221552C
+ add r1, r4, #0
+ add r1, #0x5a
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x28]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_022124D8
+ str r0, [r4, #0x50]
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl FUN_0200C840
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x28]
+ bl FUN_0200C6B0
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x3c]
+ bl FUN_0200C6B0
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x50]
+ bl FUN_0200C6B0
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02215490
+ sub r0, r0, #3
+ cmp r0, #1
+ ldr r0, [r4, #0x28]
+ bhi _02220B62
+ mov r1, #0x1e
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x3c]
+ mov r1, #0x32
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x50]
+ mov r1, #0x46
+ bl FUN_0200C6C4
+ b _02220B78
+_02220B62:
+ mov r1, #0x3c
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x3c]
+ mov r1, #0x46
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x50]
+ mov r1, #0x32
+ bl FUN_0200C6C4
+_02220B78:
+ mov r2, #0x14
+ mov r1, #0x64
+ str r2, [sp]
+ str r1, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x60
+ add r3, r1, #0
+ bl MOD08_022181A8
+ ldr r0, [r4, #4]
+ ldr r1, _02220B9C ; =MOD08_02220A08
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02220B9C: .word MOD08_02220A08
+
+ thumb_func_start MOD08_02220BA0
+MOD08_02220BA0: ; 0x02220BA0
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _02220BB4
+ cmp r0, #1
+ beq _02220CB2
+ b _02220D00
+_02220BB4:
+ add r0, r4, #0
+ add r0, #0xa0
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02220C2E
+ mov r0, #0x22
+ ldrsh r3, [r4, r0]
+ mov r0, #0x20
+ ldrsh r1, [r4, r0]
+ mov r0, #3
+ add r2, r1, #0
+ str r3, [sp]
+ add r2, #0x30
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r2, r2, #0x10
+ add r0, #0x34
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ mov r0, #0x22
+ ldrsh r1, [r4, r0]
+ mov r0, #0xa4
+ ldrsh r0, [r4, r0]
+ add r2, r1, r0
+ mov r0, #0x20
+ ldrsh r1, [r4, r0]
+ lsl r0, r2, #0x10
+ asr r3, r0, #0x10
+ add r2, r1, #0
+ add r2, #0x30
+ lsl r2, r2, #0x10
+ str r3, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x58
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ mov r0, #0x22
+ ldrsh r1, [r4, r0]
+ mov r0, #0xa4
+ ldrsh r0, [r4, r0]
+ add r2, r1, r0
+ mov r0, #0x20
+ ldrsh r1, [r4, r0]
+ lsl r0, r2, #0x10
+ asr r3, r0, #0x10
+ add r2, r1, #0
+ add r2, #0x30
+ lsl r2, r2, #0x10
+ str r3, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x7c
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ b _02220C9C
+_02220C2E:
+ mov r0, #0x22
+ ldrsh r3, [r4, r0]
+ mov r0, #0x20
+ ldrsh r2, [r4, r0]
+ mov r0, #3
+ add r1, r2, #0
+ str r3, [sp]
+ add r1, #0x30
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ add r0, #0x34
+ asr r1, r1, #0x10
+ bl MOD08_02217E80
+ mov r0, #0x22
+ ldrsh r1, [r4, r0]
+ mov r0, #0xa4
+ ldrsh r0, [r4, r0]
+ add r1, r1, r0
+ mov r0, #0x20
+ ldrsh r2, [r4, r0]
+ lsl r0, r1, #0x10
+ asr r3, r0, #0x10
+ add r1, r2, #0
+ add r1, #0x30
+ lsl r1, r1, #0x10
+ str r3, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x58
+ asr r1, r1, #0x10
+ bl MOD08_02217E80
+ mov r0, #0x22
+ ldrsh r1, [r4, r0]
+ mov r0, #0xa4
+ ldrsh r0, [r4, r0]
+ add r1, r1, r0
+ mov r0, #0x20
+ ldrsh r2, [r4, r0]
+ lsl r0, r1, #0x10
+ asr r3, r0, #0x10
+ add r1, r2, #0
+ add r1, #0x30
+ lsl r1, r1, #0x10
+ str r3, [sp]
+ mov r0, #9
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x7c
+ asr r1, r1, #0x10
+ bl MOD08_02217E80
+_02220C9C:
+ add r0, r4, #0
+ add r0, #0xa0
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xa0
+ strb r1, [r0]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _02220D12
+_02220CB2:
+ add r0, r4, #0
+ ldr r1, [r4, #0x28]
+ add r0, #0x58
+ mov r5, #0
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _02220CC4
+ add r5, r5, #1
+_02220CC4:
+ add r0, r4, #0
+ ldr r1, [r4, #0x24]
+ add r0, #0x34
+ bl MOD08_02217F2C
+ cmp r0, #0
+ bne _02220CD4
+ add r5, r5, #1
+_02220CD4:
+ add r0, r4, #0
+ ldr r1, [r4, #0x30]
+ add r0, #0x7c
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _02220CE4
+ add r5, r5, #1
+_02220CE4:
+ cmp r5, #3
+ blt _02220D12
+ add r0, r4, #0
+ add r0, #0xa0
+ ldrb r0, [r0]
+ cmp r0, #1
+ ldrb r0, [r4]
+ bne _02220CFA
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _02220D12
+_02220CFA:
+ add r0, r0, #1
+ strb r0, [r4]
+ b _02220D12
+_02220D00:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl MOD08_02228094
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02220D12:
+ ldr r0, [r4, #0x28]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02220D24
+MOD08_02220D24: ; 0x02220D24
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ mov r1, #0xa8
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xa1
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #8
+ add r0, #0xa2
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0xa3
+ strb r1, [r0]
+ sub r1, #9
+ ldr r0, [r4, #4]
+ add r2, r1, #0
+ bl MOD08_02227994
+ add r0, r4, #0
+ add r0, #0xa2
+ ldrb r1, [r0]
+ add r0, r4, #0
+ add r0, #0xa3
+ ldrb r0, [r0]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02220E94 ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x24]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x20]
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x22]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x24]
+ mov r1, #0x29
+ bl FUN_0200782C
+ neg r1, r0
+ add r0, r4, #0
+ add r0, #0xa4
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_0221550C
+ add r7, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_0221551C
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #4]
+ ldr r5, [r4, #0x28]
+ bl MOD08_02215574
+ add r1, r0, #0
+ add r0, r5, #0
+ add r1, r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r5]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02215504
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #4]
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ lsl r0, r6, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0xc4
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ add r2, r7, #0
+ bl FUN_02003B40
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #4]
+ ldr r5, [r4, #0x30]
+ bl MOD08_02215574
+ add r1, r0, #0
+ add r0, r5, #0
+ add r1, r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r5]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02215504
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #4]
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ lsl r0, r6, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0xc4
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x18]
+ add r2, r7, #0
+ bl FUN_02003B40
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #4]
+ ldr r1, _02220E98 ; =MOD08_02220BA0
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02220E94: .word 0x04000052
+_02220E98: .word MOD08_02220BA0
+
+ thumb_func_start MOD08_02220E9C
+MOD08_02220E9C: ; 0x02220E9C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r6, #0
+ str r0, [sp]
+ str r1, [sp, #4]
+ add r7, r6, #0
+ add r4, r1, #0
+ add r5, r1, #0
+_02220EAC:
+ mov r0, #0x1e
+ ldrsh r0, [r4, r0]
+ add r0, r0, #1
+ strh r0, [r4, #0x1e]
+ mov r0, #0x1e
+ ldrsh r0, [r4, r0]
+ cmp r0, #0x20
+ blt _02220ED4
+ ldr r0, [r5, #0x30]
+ bl MOD08_022204CC
+ mov r0, #0x1e
+ ldrsh r0, [r4, r0]
+ cmp r0, #0xa0
+ blt _02220ED4
+ ldr r0, [r5, #0x30]
+ mov r1, #0
+ bl FUN_0200C644
+ add r6, r6, #1
+_02220ED4:
+ add r7, r7, #1
+ add r4, r4, #2
+ add r5, r5, #4
+ cmp r7, #8
+ blt _02220EAC
+ cmp r6, #8
+ bne _02220F08
+ ldr r4, [sp, #4]
+ mov r5, #0
+_02220EE6:
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C3DC
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #8
+ blt _02220EE6
+ ldr r0, [sp, #4]
+ ldr r1, [sp]
+ ldr r0, [r0, #4]
+ bl MOD08_02212438
+ ldr r0, [sp, #4]
+ bl FreeToHeap
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02220F08:
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x10]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02220F14
+MOD08_02220F14: ; 0x02220F14
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ mov r1, #0x74
+ add r6, r0, #0
+ add r5, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0xa
+ strh r0, [r4, #0x1c]
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r1, [r4, #4]
+ add r0, sp, #0x24
+ bl MOD08_02215474
+ str r5, [r4, #0x30]
+ mov r6, #1
+ add r5, r4, #4
+ mov r7, #0x1f
+_02220F40:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x10]
+ add r2, sp, #0x24
+ bl FUN_0200C154
+ str r0, [r5, #0x30]
+ lsr r1, r6, #0x1f
+ lsl r0, r6, #0x1f
+ sub r0, r0, r1
+ ror r0, r7
+ add r0, r1, r0
+ beq _02220F60
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_0200C8D0
+_02220F60:
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #8
+ blt _02220F40
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r5, r0, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [sp, #0x1c]
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [sp, #0x1c]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #0x14
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x50
+ add r1, r7, #0
+ add r2, r6, #0
+ add r3, r5, #0
+ bl MOD08_02217E80
+ mov r7, #0
+ ldr r0, [r4, #4]
+ add r6, r7, #0
+ str r7, [sp, #0x14]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _02220FE4
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02220FE4:
+ add r0, r4, #0
+ str r0, [sp, #0x20]
+ add r0, #0x50
+ add r5, r4, #0
+ str r0, [sp, #0x20]
+_02220FEE:
+ ldr r0, [sp, #0x20]
+ bl MOD08_02217ECC
+ str r0, [sp, #0x18]
+ lsr r2, r7, #0x1f
+ lsl r1, r7, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ beq _02221026
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ bne _02221022
+ cmp r6, #8
+ bge _02221026
+ mov r1, #0x50
+ mov r2, #0x52
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C714
+ add r5, r5, #4
+ add r6, r6, #1
+ b _02221026
+_02221022:
+ mov r0, #0
+ str r0, [sp, #0x14]
+_02221026:
+ ldr r0, [sp, #0x18]
+ add r7, r7, #1
+ cmp r0, #1
+ beq _02220FEE
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl MOD08_02215600
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl MOD08_02215600
+ add r7, r0, #0
+ mov r6, #0
+ str r4, [sp, #0xc]
+ add r5, r4, #0
+_02221048:
+ mov r0, #8
+ sub r0, r0, r6
+ str r0, [sp, #8]
+ lsl r1, r0, #2
+ ldr r0, [sp, #0xc]
+ strh r1, [r0, #0x1e]
+ ldr r0, [r4, #4]
+ bl MOD08_02212004
+ cmp r0, #0
+ bne _022210A4
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _02221086
+ cmp r6, #4
+ ldr r0, [r5, #0x30]
+ bge _0222107E
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ b _0222109A
+_0222107E:
+ ldr r1, [sp, #0x10]
+ bl FUN_0200C6B0
+ b _0222109A
+_02221086:
+ cmp r6, #4
+ ldr r0, [r5, #0x30]
+ blt _02221094
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ b _0222109A
+_02221094:
+ ldr r1, [sp, #0x10]
+ bl FUN_0200C6B0
+_0222109A:
+ ldr r0, [r5, #0x30]
+ ldr r1, [sp, #8]
+ bl FUN_0200C6C4
+ b _022210B4
+_022210A4:
+ ldr r0, [r5, #0x30]
+ add r1, r6, #0
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x30]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+_022210B4:
+ ldr r0, [sp, #0xc]
+ add r6, r6, #1
+ add r0, r0, #2
+ add r5, r5, #4
+ str r0, [sp, #0xc]
+ cmp r6, #8
+ blt _02221048
+ ldr r0, [r4, #4]
+ ldr r1, _022210D0 ; =MOD08_02220E9C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022210D0: .word MOD08_02220E9C
+
+ thumb_func_start MOD08_022210D4
+MOD08_022210D4: ; 0x022210D4
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrb r0, [r5]
+ cmp r0, #0
+ beq _022210EA
+ cmp r0, #1
+ beq _02221178
+ cmp r0, #2
+ b _022211D6
+_022210EA:
+ ldr r0, [r5, #0x28]
+ cmp r0, #0xe
+ ble _02221140
+ ldr r0, [r5, #0x30]
+ ldr r1, _0222121C ; =0x3E4CCCCD
+ bl _fsub
+ str r0, [r5, #0x30]
+ ldr r0, [r5, #0x2c]
+ ldr r1, _0222121C ; =0x3E4CCCCD
+ bl _fadd
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x30]
+ bl _f2d
+ ldr r2, _02221220 ; =0x9999999A
+ ldr r3, _02221224 ; =0x3FC99999
+ bl _dleq
+ bhi _02221124
+ ldrb r0, [r5]
+ mov r1, #0
+ add r0, r0, #1
+ strb r0, [r5]
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C644
+ b _022211FE
+_02221124:
+ mov r0, #0x36
+ ldrsb r0, [r5, r0]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, [r5, #0x2c]
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [r5, #0x1c]
+ ldr r2, [r5, #0x30]
+ bl FUN_0200C884
+ b _022211FE
+_02221140:
+ add r0, r5, #0
+ add r0, #0x34
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x34
+ strb r1, [r0]
+ add r0, r5, #0
+ add r0, #0x35
+ ldrb r0, [r0]
+ sub r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x35
+ strb r1, [r0]
+ add r0, r5, #0
+ add r0, #0x34
+ ldrb r1, [r0]
+ add r0, r5, #0
+ add r0, #0x35
+ ldrb r0, [r0]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02221228 ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [r5, #0x28]
+ add r0, r0, #1
+ str r0, [r5, #0x28]
+ b _022211FE
+_02221178:
+ ldr r0, [r5, #0x3c]
+ bl MOD08_02218AF8
+ cmp r0, #0
+ bne _022211FE
+ ldr r0, [r5, #0x38]
+ bl MOD08_02218B08
+ ldr r0, [r5, #0x3c]
+ bl MOD08_02218B08
+ ldr r0, [r5, #0x24]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r4, r0, #0
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r2, #0
+ lsl r3, r4, #0x14
+ str r2, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ str r2, [sp, #0x10]
+ ldr r0, _0222122C ; =0x0000FFFF
+ mov r2, #2
+ str r0, [sp, #0x14]
+ ldr r0, _02221230 ; =0x0000044C
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ ldr r0, [r5, #0x18]
+ bl MOD08_02218B20
+ str r0, [r5, #0x3c]
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ b _022211FE
+_022211D6:
+ ldr r0, [r5, #0x3c]
+ bl MOD08_02218AF8
+ cmp r0, #0
+ bne _022211FE
+ ldr r0, [r5, #0x20]
+ bl FUN_0200C5A8
+ ldr r0, [r5, #0x3c]
+ bl MOD08_02218B08
+ ldr r0, [r5, #4]
+ add r1, r4, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FreeToHeap
+ add sp, #0x1c
+ pop {r4, r5, pc}
+_022211FE:
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C5A8
+ ldr r0, [r5, #0x20]
+ bl FUN_0200C5A8
+ ldr r0, [r5, #0x24]
+ bl FUN_0200C5A8
+ ldr r0, [r5, #0xc]
+ bl FUN_0200BC1C
+ add sp, #0x1c
+ pop {r4, r5, pc}
+ nop
+_0222121C: .word 0x3E4CCCCD
+_02221220: .word 0x9999999A
+_02221224: .word 0x3FC99999
+_02221228: .word 0x04000052
+_0222122C: .word 0x0000FFFF
+_02221230: .word 0x0000044C
+
+ thumb_func_start MOD08_02221234
+MOD08_02221234: ; 0x02221234
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ mov r1, #0x40
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x1c]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x20]
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl MOD08_022124D8
+ str r0, [r4, #0x24]
+ mov r6, #0
+ str r6, [r4, #0x28]
+ add r0, r5, #0
+ sub r6, #0x20
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02217C1C
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ mul r0, r6
+ add r6, r0, #0
+ mov r0, #0xfe
+ lsl r0, r0, #0x16
+ str r0, [r4, #0x2c]
+ str r0, [r4, #0x30]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02215680
+ cmp r0, #1
+ bne _0222129E
+ mov r1, #0
+ mvn r1, r1
+ b _022212A0
+_0222129E:
+ mov r1, #1
+_022212A0:
+ add r0, r4, #0
+ add r0, #0x36
+ strb r1, [r0]
+ add r1, sp, #0x24
+ ldr r0, [r4, #0x20]
+ add r1, #2
+ add r2, sp, #0x24
+ bl FUN_0200C7A0
+ add r2, sp, #0x24
+ mov r1, #2
+ ldrsh r1, [r2, r1]
+ mov r3, #0
+ ldrsh r2, [r2, r3]
+ add r1, r1, r6
+ lsl r1, r1, #0x10
+ ldr r0, [r4, #0x1c]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl FUN_0200C840
+ mov r0, #0x36
+ ldrsb r0, [r4, r0]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, [r4, #0x2c]
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [r4, #0x1c]
+ ldr r2, [r4, #0x30]
+ bl FUN_0200C884
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r2, #0
+ lsl r3, r6, #0x14
+ str r2, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ str r2, [sp, #0xc]
+ mov r0, #0xf
+ str r0, [sp, #0x10]
+ ldr r0, _0222147C ; =0x0000FFFF
+ mov r2, #2
+ str r0, [sp, #0x14]
+ ldr r0, _02221480 ; =0x0000044C
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x18]
+ bl MOD08_02218B20
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x24]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r2, #0
+ lsl r3, r6, #0x14
+ str r2, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ str r2, [sp, #0xc]
+ mov r0, #0xf
+ str r0, [sp, #0x10]
+ ldr r0, _0222147C ; =0x0000FFFF
+ mov r2, #2
+ str r0, [sp, #0x14]
+ ldr r0, _02221480 ; =0x0000044C
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x18]
+ bl MOD08_02218B20
+ str r0, [r4, #0x3c]
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_02227468
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldr r0, [r4, #4]
+ bl MOD08_02212004
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, sp, #0x2c
+ bl MOD08_02227564
+ add r2, sp, #0x28
+ ldr r0, [r4, #0x1c]
+ add r1, sp, #0x28
+ add r2, #2
+ bl FUN_0200C7A0
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _022213BC
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ mov r5, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ add r1, r5, #0
+ bl FUN_0200C6C4
+ b _022213CE
+_022213BC:
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_0200C6C4
+ mov r5, #2
+_022213CE:
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_022154A8
+ add r7, r0, #0
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_0221549C
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_022154B8
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_022154C4
+ ldr r1, [sp, #0x1c]
+ ldr r3, [sp, #0x20]
+ str r0, [sp]
+ lsl r0, r7, #0x10
+ lsl r1, r1, #0x18
+ lsl r2, r5, #0x18
+ lsl r3, r3, #0x18
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02068E88
+ add r2, r0, #0
+ add r5, sp, #0x24
+ mov r3, #0xa
+ ldrsh r3, [r5, r3]
+ mov r1, #4
+ ldrsh r1, [r5, r1]
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0x1c]
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200C644
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x34
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #0xf
+ add r0, #0x35
+ strb r1, [r0]
+ sub r1, #0x10
+ ldr r0, [r4, #4]
+ add r2, r1, #0
+ bl MOD08_02227994
+ add r0, r4, #0
+ add r0, #0x34
+ ldrb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x35
+ ldrb r0, [r0]
+ add r2, r4, #0
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02221484 ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ ldr r1, _02221488 ; =MOD08_022210D4
+ bl MOD08_02212400
+ add r1, r4, #0
+ bl MOD08_022210D4
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222147C: .word 0x0000FFFF
+_02221480: .word 0x0000044C
+_02221484: .word 0x04000052
+_02221488: .word MOD08_022210D4
+
+ thumb_func_start MOD08_0222148C
+MOD08_0222148C: ; 0x0222148C
+ push {r3, r4, r5, lr}
+ sub sp, #0x58
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _022214A0
+ cmp r0, #1
+ beq _022214E6
+ b _02221560
+_022214A0:
+ ldr r0, [r4, #0x68]
+ mov r1, #0x20
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r0, [r2, #0x78]
+ lsl r0, r0, #0x10
+ asr r3, r0, #0x10
+ str r3, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ ldr r2, [r2, #0x6c]
+ add r0, r4, #0
+ lsl r2, r2, #0x10
+ ldrsh r1, [r4, r1]
+ add r0, #0x30
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ ldr r2, [r4, #0x68]
+ ldr r0, [r4, #0x24]
+ lsl r2, r2, #2
+ add r2, r4, r2
+ add r2, #0x84
+ ldr r2, [r2]
+ mov r1, #2
+ bl FUN_02007558
+ ldr r0, [r4, #0x24]
+ mov r1, #0x2c
+ mov r2, #1
+ bl FUN_02007558
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_022214E6:
+ add r0, r4, #0
+ add r0, #0x30
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _02221544
+ ldr r0, [r4, #0x68]
+ add r0, r0, #1
+ str r0, [r4, #0x68]
+ cmp r0, #2
+ ble _02221504
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0222153A
+_02221504:
+ ldr r0, [r4, #0x58]
+ cmp r0, #0
+ bne _02221536
+ ldr r0, [r4, #4]
+ add r1, sp, #8
+ mov r2, #3
+ bl MOD08_022127A8
+ ldr r0, [r4, #0x68]
+ cmp r0, #2
+ ldr r0, [r4, #4]
+ bne _0222152A
+ bl MOD08_02212014
+ add r1, r0, #0
+ add r0, sp, #8
+ bl MOD08_0222A494
+ b _02221536
+_0222152A:
+ bl MOD08_02212014
+ add r1, r0, #0
+ add r0, sp, #8
+ bl MOD08_0222A2A4
+_02221536:
+ mov r0, #0
+ strb r0, [r4]
+_0222153A:
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x20]
+_02221544:
+ mov r2, #0x30
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x32
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_02007558
+ add sp, #0x58
+ pop {r3, r4, r5, pc}
+_02221560:
+ ldr r0, [r4, #0x24]
+ mov r1, #0x2c
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0x58
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0222157C
+MOD08_0222157C: ; 0x0222157C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ mov r1, #0x90
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r2, r4, #0
+ ldr r0, [r4, #4]
+ add r2, #0x5c
+ bl MOD08_022275C0
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r2, r4, #0
+ ldr r0, [r4, #4]
+ add r2, #0x60
+ bl MOD08_022275C0
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _022215CE
+ mov r1, #1
+ b _022215D2
+_022215CE:
+ mov r1, #0
+ mvn r1, r1
+_022215D2:
+ add r0, r4, #0
+ add r0, #0x54
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02227470
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02227470
+ cmp r6, r0
+ bne _022215FE
+ mov r0, #1
+ b _02221600
+_022215FE:
+ mov r0, #0
+_02221600:
+ str r0, [r4, #0x58]
+ mov r1, #0
+ add r0, r5, #0
+ str r1, [r4, #0x68]
+ bl MOD08_02212498
+ add r2, r4, #0
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, #0x1c
+ add r3, sp, #0
+ bl MOD08_02227BAC
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200782C
+ mov r1, #0x5e
+ ldrsh r2, [r4, r1]
+ mov r3, #0x54
+ sub r0, r0, r2
+ ldrsh r2, [r4, r3]
+ cmp r2, #0
+ ble _02221672
+ add r2, r3, #0
+ add r2, #0xfb
+ str r2, [r4, #0x6c]
+ sub r3, #0xa4
+ str r3, [r4, #0x70]
+ mov r2, #0x5c
+ ldrsh r2, [r4, r2]
+ str r2, [r4, #0x74]
+ ldrsh r2, [r4, r1]
+ add r2, r2, r0
+ str r2, [r4, #0x78]
+ mov r2, #0x62
+ ldrsh r2, [r4, r2]
+ add r2, r2, r0
+ str r2, [r4, #0x7c]
+ ldrsh r1, [r4, r1]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0x84
+ str r1, [r0]
+ add r0, r4, #0
+ ldr r1, _022216C8 ; =0xFFFFFD76
+ add r0, #0x88
+ str r1, [r0]
+ ldr r0, [r4, #0x24]
+ mov r1, #2
+ bl FUN_0200782C
+ b _022216B2
+_02221672:
+ add r2, r3, #0
+ sub r2, #0xa4
+ str r2, [r4, #0x6c]
+ add r3, #0xfb
+ str r3, [r4, #0x70]
+ mov r2, #0x5c
+ ldrsh r2, [r4, r2]
+ str r2, [r4, #0x74]
+ ldrsh r2, [r4, r1]
+ add r2, r2, r0
+ str r2, [r4, #0x78]
+ mov r2, #0x62
+ ldrsh r2, [r4, r2]
+ add r2, r2, r0
+ str r2, [r4, #0x7c]
+ ldrsh r1, [r4, r1]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ ldr r1, _022216C8 ; =0xFFFFFD76
+ add r0, #0x84
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0x88
+ str r1, [r0]
+ ldr r0, [r4, #0x24]
+ mov r1, #2
+ bl FUN_0200782C
+_022216B2:
+ add r1, r4, #0
+ add r1, #0x8c
+ str r0, [r1]
+ ldr r0, [r4, #4]
+ ldr r1, _022216CC ; =MOD08_0222148C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_022216C8: .word 0xFFFFFD76
+_022216CC: .word MOD08_0222148C
+
+ thumb_func_start MOD08_022216D0
+MOD08_022216D0: ; 0x022216D0
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r2, #0
+ ldr r2, [sp, #0x10]
+ str r2, [sp]
+ mov r2, #0x50
+ sub r2, r2, r3
+ add r3, r4, #0
+ bl FUN_02007E40
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022216E8
+MOD08_022216E8: ; 0x022216E8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #3
+ bls _022216FC
+ b _0222181E
+_022216FC:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02221708: ; jump table
+ .short _02221710 - _02221708 - 2 ; case 0
+ .short _0222176C - _02221708 - 2 ; case 1
+ .short _022217AE - _02221708 - 2 ; case 2
+ .short _02221804 - _02221708 - 2 ; case 3
+_02221710:
+ ldr r2, [r4, #0x10]
+ add r2, #0x4f
+ str r2, [r4, #0x10]
+ cmp r2, #0x50
+ blt _02221738
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add sp, #4
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+ ldr r1, [r4, #0x14]
+ mov r0, #1
+ eor r0, r1
+ str r0, [r4, #0x14]
+ mov r0, #0
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, pc}
+_02221738:
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ bne _02221754
+ mov r0, #2
+ str r0, [sp]
+ ldr r3, [r4]
+ ldr r0, [r4, #0x1c]
+ add r3, r3, #2
+ mov r1, #0
+ lsl r3, r3, #1
+ bl MOD08_022216D0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_02221754:
+ mov r0, #2
+ str r0, [sp]
+ ldr r3, [r4]
+ mov r1, #0x50
+ add r3, r3, #2
+ ldr r0, [r4, #0x1c]
+ sub r1, r1, r2
+ lsl r3, r3, #1
+ bl MOD08_022216D0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0222176C:
+ ldr r0, [r4, #4]
+ mov r3, #0xff
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #0xc]
+ lsl r3, r3, #8
+ add r2, r0, #1
+ str r2, [r4, #0xc]
+ ldr r6, [r4, #8]
+ ldr r1, [r4, #4]
+ lsl r0, r6, #8
+ add r5, r0, #0
+ add r6, #0x50
+ lsl r0, r6, #0x18
+ and r5, r3
+ lsr r0, r0, #0x18
+ lsl r1, r1, #8
+ orr r5, r0
+ ldr r0, _02221868 ; =0x04000040
+ and r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ strh r5, [r0]
+ orr r1, r3
+ strh r1, [r0, #4]
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_022217AE:
+ ldr r0, [r4, #4]
+ mov r3, #0xff
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #0xc]
+ lsl r3, r3, #8
+ add r2, r0, #1
+ str r2, [r4, #0xc]
+ ldr r6, [r4, #8]
+ ldr r1, [r4, #4]
+ lsl r0, r6, #8
+ add r5, r0, #0
+ add r6, #0x50
+ lsl r0, r6, #0x18
+ and r5, r3
+ lsr r0, r0, #0x18
+ lsl r1, r1, #8
+ orr r5, r0
+ ldr r0, _02221868 ; =0x04000040
+ and r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ strh r5, [r0]
+ orr r1, r3
+ strh r1, [r0, #4]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ cmp r0, #0x26
+ ble _022217FA
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_022217FA:
+ mov r0, #0
+ add r4, #0x20
+ add sp, #4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_02221804:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xe
+ mov r2, #0
+ bl FUN_02007558
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0222181E:
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r3, [r0]
+ ldr r1, _0222186C ; =0xFFFF1FFF
+ and r1, r3
+ add r3, r0, #0
+ str r1, [r0]
+ add r3, #0x48
+ ldrh r5, [r3]
+ mov r1, #0x3f
+ bic r5, r1
+ strh r5, [r3]
+ add r3, r0, #0
+ add r3, #0x4a
+ ldrh r5, [r3]
+ bic r5, r1
+ add r1, r0, #0
+ strh r5, [r3]
+ mov r3, #0
+ add r1, #0x40
+ strh r3, [r1]
+ add r0, #0x44
+ strh r3, [r0]
+ ldr r0, [r4, #0x24]
+ add r1, r2, #0
+ bl MOD08_02212438
+ ldr r0, [r4, #0x1c]
+ ldr r2, [r4, #0x18]
+ mov r1, #0x17
+ bl FUN_02007558
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02221868: .word 0x04000040
+_0222186C: .word 0xFFFF1FFF
+
+ thumb_func_start MOD08_02221870
+MOD08_02221870: ; 0x02221870
+ push {r4, r5, r6, lr}
+ mov r1, #0x50
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x20
+ bl MOD08_02227B70
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x1c]
+ mov r0, #0
+ str r0, [r4]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227468
+ cmp r0, #3
+ beq _022218B0
+ cmp r0, #4
+ bne _022218C4
+_022218B0:
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ sub r1, r1, #1
+ lsl r1, r1, #0x18
+ mov r0, #2
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+_022218C4:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x17
+ bl FUN_0200782C
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x17
+ mov r2, #8
+ bl FUN_02007558
+ sub r6, #0x28
+ str r6, [r4, #8]
+ add r5, #0x28
+ mov r6, #1
+ lsl r6, r6, #0x1a
+ add r3, r6, #0
+ str r5, [r4, #4]
+ mov r1, #0
+ str r1, [r4, #0x10]
+ ldr r0, [r4, #4]
+ add r3, #0x48
+ str r0, [r4, #0xc]
+ str r1, [r4, #0x14]
+ ldr r1, [r6]
+ ldr r0, _0222197C ; =0xFFFF1FFF
+ and r1, r0
+ lsr r0, r6, #0xd
+ orr r0, r1
+ str r0, [r6]
+ ldrh r2, [r3]
+ mov r1, #0x3f
+ mov r0, #0x1f
+ bic r2, r1
+ orr r0, r2
+ mov r2, #0x20
+ orr r0, r2
+ strh r0, [r3]
+ add r3, r6, #0
+ add r3, #0x4a
+ ldrh r5, [r3]
+ mov r0, #0x1b
+ bic r5, r1
+ orr r0, r5
+ orr r0, r2
+ strh r0, [r3]
+ ldr r2, [r4, #8]
+ mov r0, #0xff
+ lsl r1, r2, #8
+ add r2, #0x50
+ lsl r0, r0, #8
+ lsl r2, r2, #0x18
+ and r1, r0
+ lsr r2, r2, #0x18
+ orr r2, r1
+ add r1, r6, #0
+ ldr r5, [r4, #0xc]
+ ldr r3, [r4, #4]
+ add r1, #0x40
+ strh r2, [r1]
+ lsl r1, r3, #8
+ and r1, r0
+ lsl r0, r5, #0x18
+ lsr r0, r0, #0x18
+ orr r0, r1
+ add r6, #0x44
+ strh r0, [r6]
+ ldr r0, [r4, #0x24]
+ ldr r1, _02221980 ; =MOD08_022216E8
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ nop
+_0222197C: .word 0xFFFF1FFF
+_02221980: .word MOD08_022216E8
+
+ thumb_func_start MOD08_02221984
+MOD08_02221984: ; 0x02221984
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ mov r1, #0xe8
+ mov r2, #0xea
+ add r5, r0, #0
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #8]
+ add r0, #0xc
+ bl MOD08_02217E58
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x38
+ bl MOD08_02218524
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ mov r1, #0
+ add r2, sp, #0
+_022219B8:
+ ldr r0, [r2]
+ cmp r0, #1
+ beq _022219EE
+ add r1, r1, #1
+ add r2, r2, #4
+ cmp r1, #3
+ blt _022219B8
+ mov r2, #0xe8
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0xea
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ sub r2, #8
+ bl FUN_02007558
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_022219EE:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022219F4
+MOD08_022219F4: ; 0x022219F4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0xf0
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #8]
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0xe8
+ strh r0, [r1]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0xea
+ strh r0, [r1]
+ ldr r0, [r4, #8]
+ mov r1, #0x29
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0xec
+ strh r0, [r1]
+ mov r0, #0xea
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xea
+ add r1, #8
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc
+ mov r1, #1
+ mov r2, #8
+ bl MOD08_02218654
+ add r0, sp, #0x20
+ mov r1, #1
+ mov r2, #0xa
+ bl MOD08_02218654
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ ldr r1, [r4, #0x18]
+ mov r6, #0
+ add r2, r1, #0
+ mul r2, r0
+ str r2, [r4, #0x18]
+ ldr r1, [sp, #0x2c]
+ add r5, r4, #0
+ mul r0, r1
+ str r0, [sp, #0x2c]
+ mov r7, #0x64
+_02221A8C:
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD08_022124D8
+ str r0, [r5, #0x30]
+ add r1, r7, #0
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_0200C90C
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #2
+ blt _02221A8C
+ mov r0, #0xea
+ ldrsh r1, [r4, r0]
+ mov r0, #0xec
+ ldrsh r0, [r4, r0]
+ mov r3, #0xe8
+ ldr r2, _02221B04 ; =MOD08_02217D98
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4, #0x30]
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x34]
+ str r0, [sp, #0x14]
+ str r1, [sp, #0x18]
+ str r1, [sp, #0x1c]
+ add r0, r4, #0
+ ldrsh r3, [r4, r3]
+ add r0, #0x38
+ add r1, sp, #0x20
+ bl MOD08_0221847C
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [r4]
+ add r2, r1, #0
+ bl MOD08_02227994
+ ldr r0, [r4]
+ ldr r1, _02221B08 ; =MOD08_02221984
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02221B04: .word MOD08_02217D98
+_02221B08: .word MOD08_02221984
+
+ thumb_func_start MOD08_02221B0C
+MOD08_02221B0C: ; 0x02221B0C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #6
+ bls _02221B1C
+ b _02221C62
+_02221B1C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02221B28: ; jump table
+ .short _02221B36 - _02221B28 - 2 ; case 0
+ .short _02221B78 - _02221B28 - 2 ; case 1
+ .short _02221BAE - _02221B28 - 2 ; case 2
+ .short _02221BC6 - _02221B28 - 2 ; case 3
+ .short _02221BF6 - _02221B28 - 2 ; case 4
+ .short _02221C0E - _02221B28 - 2 ; case 5
+ .short _02221C32 - _02221B28 - 2 ; case 6
+_02221B36:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02221B58
+ mov r2, #0x48
+ mov r3, #0x4a
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_02217CD0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02221B58:
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r1, #0x10
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ add r0, #0x10
+ add r3, r2, #0
+ bl MOD08_02217E80
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_02221B78:
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD08_02218058
+ cmp r0, #0
+ beq _02221B92
+ ldr r0, [r4, #0xc]
+ ldr r2, [r4, #0x34]
+ mov r1, #9
+ bl FUN_02007558
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02221B92:
+ add r0, r4, #0
+ ldr r1, [r4, #0x34]
+ add r0, #0x34
+ mov r2, #0
+ mov r3, #4
+ bl MOD08_02218008
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #2
+ strh r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02221BAE:
+ mov r0, #8
+ ldrsh r1, [r4, r0]
+ sub r1, r1, #1
+ strh r1, [r4, #8]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _02221C62
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_02221BC6:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02221BE8
+ mov r2, #0x48
+ mov r3, #0x4a
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_02217CD0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02221BE8:
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0x20
+ strh r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02221BF6:
+ mov r0, #8
+ ldrsh r1, [r4, r0]
+ sub r1, r1, #1
+ strh r1, [r4, #8]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _02221C62
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_02221C0E:
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD08_02218058
+ cmp r0, #0
+ beq _02221C28
+ ldr r0, [r4, #0xc]
+ ldr r2, [r4, #0x34]
+ mov r1, #9
+ bl FUN_02007558
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02221C28:
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_02221C32:
+ mov r2, #0x48
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x4a
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #0xc]
+ mov r1, #9
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_02221C62:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02221C68
+MOD08_02221C68: ; 0x02221C68
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0xf0
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #0xc]
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x48
+ strh r0, [r1]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x4a
+ strh r0, [r1]
+ mov r1, #0
+ add r0, r4, #0
+ str r1, [sp]
+ mov r2, #3
+ str r2, [sp, #4]
+ add r0, #0x10
+ sub r2, #0x23
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add r0, r4, #0
+ ldr r2, _02221D78 ; =0x00000E38
+ add r0, #0x34
+ mov r1, #0
+ mov r3, #8
+ bl MOD08_02218008
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ ldr r1, [r4, #0x18]
+ add r2, r1, #0
+ mul r2, r0
+ str r2, [r4, #0x18]
+ ldr r1, [r4, #0x3c]
+ mul r0, r1
+ str r0, [r4, #0x3c]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r6, #3
+ bne _02221D36
+ cmp r0, #3
+ bne _02221D36
+ mov r1, #0xa
+ add r2, r1, #0
+ ldr r0, [r4, #0xc]
+ sub r2, #0x32
+ bl FUN_02007558
+ ldr r0, [r4, #0xc]
+ mov r1, #0xb
+ mov r2, #0x28
+ bl FUN_02007558
+ b _02221D6A
+_02221D36:
+ cmp r6, #4
+ bne _02221D54
+ cmp r0, #4
+ bne _02221D54
+ ldr r0, [r4, #0xc]
+ mov r1, #0xa
+ mov r2, #0x28
+ bl FUN_02007558
+ ldr r0, [r4, #0xc]
+ mov r1, #0xb
+ mov r2, #0x28
+ bl FUN_02007558
+ b _02221D6A
+_02221D54:
+ mov r2, #0x28
+ ldr r0, [r4, #0xc]
+ mov r1, #0xa
+ mul r2, r7
+ bl FUN_02007558
+ ldr r0, [r4, #0xc]
+ mov r1, #0xb
+ mov r2, #0x28
+ bl FUN_02007558
+_02221D6A:
+ ldr r0, [r4]
+ ldr r1, _02221D7C ; =MOD08_02221B0C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02221D78: .word 0x00000E38
+_02221D7C: .word MOD08_02221B0C
+
+ thumb_func_start MOD08_02221D80
+MOD08_02221D80: ; 0x02221D80
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ add r1, r2, #0
+ add r2, r3, #0
+ ldr r4, [sp, #0x10]
+ bl FUN_0200C154
+ str r0, [r5]
+ add r6, r4, #4
+ add r3, r5, #4
+ mov r2, #4
+_02221D98:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02221D98
+ ldr r0, [r6]
+ add r2, r5, #0
+ str r0, [r3]
+ add r3, r4, #0
+ add r3, #0x28
+ ldmia r3!, {r0, r1}
+ add r2, #0x28
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ mov r0, #0x3c
+ ldrsh r0, [r4, r0]
+ strh r0, [r5, #0x3c]
+ mov r0, #0x3e
+ ldrsh r0, [r4, r0]
+ strh r0, [r5, #0x3e]
+ mov r0, #0x40
+ ldrsh r1, [r4, r0]
+ add r0, r5, #0
+ add r0, #0x40
+ strh r1, [r0]
+ ldr r0, [r4, #0x44]
+ mov r1, #0
+ str r0, [r5, #0x44]
+ str r1, [r5, #0x48]
+ ldr r0, [r5]
+ bl FUN_0200C644
+ ldr r0, [r5]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5]
+ mov r1, #1
+ bl FUN_0200C6B0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02221DF0
+MOD08_02221DF0: ; 0x02221DF0
+ ldr r3, _02221DF8 ; =FUN_0200C3DC
+ ldr r0, [r0]
+ bx r3
+ nop
+_02221DF8: .word FUN_0200C3DC
+
+ thumb_func_start MOD08_02221DFC
+MOD08_02221DFC: ; 0x02221DFC
+ ldr r3, _02221E04 ; =FUN_0200C644
+ ldr r0, [r0]
+ bx r3
+ nop
+_02221E04: .word FUN_0200C644
+
+ thumb_func_start MOD08_02221E08
+MOD08_02221E08: ; 0x02221E08
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, [r4, #0x48]
+ cmp r0, #0
+ bne _02221E1A
+ add sp, #0x10
+ mov r0, #1
+ pop {r4, pc}
+_02221E1A:
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ beq _02221E2A
+ cmp r0, #1
+ beq _02221E2A
+ cmp r0, #2
+ beq _02221EAC
+ b _02221EB2
+_02221E2A:
+ add r0, r4, #4
+ bl MOD08_02217D98
+ cmp r0, #0
+ beq _02221E6A
+ add r0, r4, #0
+ add r0, #0x28
+ bl MOD08_022180C4
+ mov r0, #0x3c
+ ldrsh r1, [r4, r0]
+ ldr r0, [r4, #0x28]
+ add r0, r1, r0
+ str r0, [r4, #0x1c]
+ mov r1, #0x3e
+ ldrsh r2, [r4, r1]
+ mov r1, #4
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4]
+ add r1, r2, r1
+ mov r2, #0x40
+ ldrsh r3, [r4, r2]
+ mov r2, #6
+ ldrsh r2, [r4, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ b _02221EB2
+_02221E6A:
+ ldr r0, [r4, #0x44]
+ cmp r0, #1
+ bge _02221EA4
+ cmp r0, #0
+ bne _02221E92
+ ldr r1, [r4, #0xc]
+ ldr r2, _02221EB8 ; =0x00007FFF
+ lsl r1, r1, #0x10
+ str r2, [sp]
+ ldr r0, [r4, #0x10]
+ lsr r1, r1, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x18]
+ add r3, r1, #0
+ str r0, [sp, #8]
+ ldr r0, _02221EBC ; =0x0000071C
+ str r0, [sp, #0xc]
+ add r0, r4, #4
+ bl MOD08_02217D44
+_02221E92:
+ ldr r0, [r4, #8]
+ ldr r2, _02221EC0 ; =0x0000FFFF
+ str r0, [sp]
+ add r0, r4, #0
+ ldr r3, _02221EC4 ; =0xFFFFF000
+ add r0, #0x28
+ mov r1, #0
+ bl MOD08_022180AC
+_02221EA4:
+ ldr r0, [r4, #0x44]
+ add r0, r0, #1
+ str r0, [r4, #0x44]
+ b _02221EB2
+_02221EAC:
+ add sp, #0x10
+ mov r0, #0
+ pop {r4, pc}
+_02221EB2:
+ mov r0, #1
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02221EB8: .word 0x00007FFF
+_02221EBC: .word 0x0000071C
+_02221EC0: .word 0x0000FFFF
+_02221EC4: .word 0xFFFFF000
+
+ thumb_func_start MOD08_02221EC8
+MOD08_02221EC8: ; 0x02221EC8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ cmp r0, #6
+ bhi _02221F3C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02221EE4: ; jump table
+ .short _02221EF2 - _02221EE4 - 2 ; case 0
+ .short _02221F0A - _02221EE4 - 2 ; case 1
+ .short _02221F56 - _02221EE4 - 2 ; case 2
+ .short _02221F6C - _02221EE4 - 2 ; case 3
+ .short _0222200C - _02221EE4 - 2 ; case 4
+ .short _02222036 - _02221EE4 - 2 ; case 5
+ .short _02222076 - _02221EE4 - 2 ; case 6
+_02221EF2:
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD08_02221E08
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ b _022220A0
+_02221F0A:
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r1, [r0]
+ add r0, r4, #0
+ add r1, #0xa
+ add r0, #0xfc
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0xa
+ bl _s32_div_f
+ mov r1, #0x1f
+ sub r1, r1, r0
+ lsl r1, r1, #8
+ orr r1, r0
+ ldr r0, _022220A8 ; =0x04000052
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r1, [r0]
+ ldr r0, _022220AC ; =0x00000136
+ cmp r1, r0
+ bge _02221F3E
+_02221F3C:
+ b _022220A0
+_02221F3E:
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_0200C90C
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ b _022220A0
+_02221F56:
+ ldr r1, _022220B0 ; =0x0000FFFF
+ ldr r0, _022220A8 ; =0x04000052
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ b _022220A0
+_02221F6C:
+ add r0, r4, #0
+ add r0, #0xf4
+ ldr r0, [r0]
+ cmp r0, #0
+ bgt _02221FB0
+ add r0, r4, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ mov r2, #0x4c
+ add r3, r0, #0
+ mul r3, r2
+ add r0, r4, r3
+ mov r1, #1
+ add r0, #0xa0
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ mul r2, r0
+ add r0, r4, r2
+ ldr r0, [r0, #0x58]
+ bl FUN_0200C644
+ add r0, r4, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf8
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #8
+ add r0, #0xf4
+ str r1, [r0]
+_02221FB0:
+ add r0, r4, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ cmp r0, #2
+ bge _02221FC8
+ add r0, r4, #0
+ add r0, #0xf4
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf4
+ str r1, [r0]
+_02221FC8:
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD08_02221E08
+ add r5, r4, #0
+ add r6, r0, #0
+ mov r7, #0
+ add r5, #0x58
+_02221FD8:
+ add r0, r5, #0
+ bl MOD08_02221E08
+ str r0, [sp]
+ cmp r0, #0
+ bne _02221FEC
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02221DFC
+_02221FEC:
+ ldr r0, [sp]
+ add r7, r7, #1
+ orr r6, r0
+ add r5, #0x4c
+ cmp r7, #2
+ blt _02221FD8
+ cmp r6, #0
+ bne _022220A0
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ b _022220A0
+_0222200C:
+ ldr r0, [r4, #0xc]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0xc]
+ ldr r0, [r0]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _022220A0
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200C90C
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ b _022220A0
+_02222036:
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r1, [r0]
+ add r0, r4, #0
+ sub r1, #0xa
+ add r0, #0xfc
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0xa
+ bl _s32_div_f
+ mov r1, #0x1f
+ sub r1, r1, r0
+ lsl r1, r1, #8
+ orr r1, r0
+ ldr r0, _022220A8 ; =0x04000052
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ cmp r0, #0
+ bgt _022220A0
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ b _022220A0
+_02222076:
+ add r5, r4, #0
+ mov r6, #0
+ add r5, #0x58
+_0222207C:
+ add r0, r5, #0
+ bl MOD08_02221DF0
+ add r6, r6, #1
+ add r5, #0x4c
+ cmp r6, #2
+ blt _0222207C
+ ldr r0, [r4, #0xc]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_022220A0:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022220A8: .word 0x04000052
+_022220AC: .word 0x00000136
+_022220B0: .word 0x0000FFFF
+
+ thumb_func_start MOD08_022220B4
+MOD08_022220B4: ; 0x022220B4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x48
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ str r3, [sp, #0x10]
+ bl MOD08_02212014
+ mov r1, #1
+ lsl r1, r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ str r6, [r4, #4]
+ str r7, [r4, #8]
+ mov r1, #8
+ add r0, #0xf4
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf8
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ ldr r1, [sp, #0x10]
+ lsl r0, r0, #0x11
+ str r1, [r4, #0xc]
+ mov r1, #0
+ str r1, [r4, #0x50]
+ ldr r2, _022221EC ; =0x0000BFFF
+ neg r0, r0
+ str r2, [sp]
+ str r0, [sp, #4]
+ ldr r1, _022221F0 ; =0xFFFF8000
+ ldr r0, _022221F4 ; =0x0000071C
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ lsr r1, r1, #0x12
+ add r0, #0x10
+ add r3, r1, #0
+ bl MOD08_02217D44
+ ldr r0, [r4, #0x14]
+ ldr r2, _022221F8 ; =0x0000FFFF
+ str r0, [sp]
+ add r0, r4, #0
+ ldr r3, _022221FC ; =0xFFFFF000
+ add r0, #0x34
+ mov r1, #0
+ bl MOD08_022180AC
+ add r0, r4, #0
+ ldr r1, [r4, #0x28]
+ add r0, #0x48
+ strh r1, [r0]
+ mov r0, #1
+ str r0, [r4, #0x54]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r1, r4, #0
+ add r1, #0x4a
+ strh r0, [r1]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r1, r4, #0
+ add r1, #0x4c
+ strh r0, [r1]
+ mov r1, #0x4a
+ mov r2, #0x4c
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ bl FUN_0200C714
+ ldr r0, [r4, #0xc]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r1, [r4]
+ add r0, sp, #0x14
+ bl MOD08_02215474
+ mov r0, #0x4a
+ ldrsh r0, [r4, r0]
+ add r1, sp, #0x14
+ add r5, r4, #0
+ strh r0, [r1]
+ mov r0, #0x4c
+ ldrsh r0, [r4, r0]
+ add r7, r4, #0
+ mov r6, #0
+ strh r0, [r1, #2]
+ add r5, #0x58
+ add r7, #0xc
+_0222219A:
+ str r7, [sp]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ add r3, sp, #0x14
+ bl MOD08_02221D80
+ add r6, r6, #1
+ add r5, #0x4c
+ cmp r6, #2
+ blt _0222219A
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r0, [r4]
+ mov r2, #0x1f
+ bl MOD08_02227994
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200C90C
+ mov r6, #0
+ add r5, r4, #0
+ mov r7, #1
+_022221CE:
+ ldr r0, [r5, #0x58]
+ add r1, r7, #0
+ bl FUN_0200C90C
+ add r6, r6, #1
+ add r5, #0x4c
+ cmp r6, #2
+ blt _022221CE
+ ldr r0, [r4]
+ ldr r1, _02222200 ; =MOD08_02221EC8
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x48
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022221EC: .word 0x0000BFFF
+_022221F0: .word 0xFFFF8000
+_022221F4: .word 0x0000071C
+_022221F8: .word 0x0000FFFF
+_022221FC: .word 0xFFFFF000
+_02222200: .word MOD08_02221EC8
+
+ thumb_func_start MOD08_02222204
+MOD08_02222204: ; 0x02222204
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r2, #0x60
+ ldrsh r3, [r4, r2]
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x5c]
+ mov r1, #0
+ add r2, r3, r2
+ bl FUN_02007558
+ mov r2, #0x62
+ ldrsh r3, [r4, r2]
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ add r2, r3, r2
+ bl FUN_02007558
+ mov r1, #0x60
+ ldrsh r2, [r4, r1]
+ mov r1, #0x10
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4, #0x58]
+ add r1, r2, r1
+ mov r2, #0x62
+ ldrsh r3, [r4, r2]
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r3, r3, r2
+ mov r2, #0x66
+ ldrsh r2, [r4, r2]
+ sub r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add r0, r4, #0
+ add r0, #0x34
+ add r1, sp, #4
+ add r2, sp, #0
+ bl MOD08_0221825C
+ mov r0, #0x64
+ ldrsh r0, [r4, r0]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, _02222298 ; =0x3DCCCCCD
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [sp, #4]
+ bl _fadd
+ add r1, r0, #0
+ str r1, [sp, #4]
+ ldr r0, [r4, #0x58]
+ ldr r2, [sp]
+ bl FUN_0200C884
+ mov r0, #0x64
+ ldrsh r1, [r4, r0]
+ sub r0, #0x65
+ add r4, #0x64
+ mul r0, r1
+ strh r0, [r4]
+ add sp, #8
+ pop {r4, pc}
+ nop
+_02222298: .word 0x3DCCCCCD
+
+ thumb_func_start MOD08_0222229C
+MOD08_0222229C: ; 0x0222229C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _022222B4
+ cmp r0, #1
+ beq _022222EE
+ cmp r0, #2
+ beq _0222232A
+ b _0222233C
+_022222B4:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_022183F0
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD08_02218224
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02222204
+ cmp r5, #0
+ bne _0222233C
+ mov r2, #0xa
+ str r2, [sp]
+ str r2, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x34
+ mov r1, #0xc
+ mov r3, #0xf
+ bl MOD08_022181A8
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _0222233C
+_022222EE:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_022183F0
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD08_02218224
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02222204
+ cmp r5, #0
+ bne _0222233C
+ mov r2, #0x60
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x5c]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x62
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _0222233C
+_0222232A:
+ ldr r0, [r4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0222233C:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02222348
+MOD08_02222348: ; 0x02222348
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x68
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ mov r0, #0
+ str r0, [r4, #8]
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #0x5c]
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x60
+ strh r0, [r1]
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x62
+ strh r0, [r1]
+ ldr r0, [r4, #0x5c]
+ mov r1, #0x29
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x66
+ strh r0, [r1]
+ mov r0, #6
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x10
+ mov r1, #2
+ mov r2, #0
+ mov r3, #1
+ bl MOD08_022183C0
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x58]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x58]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x58]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x58]
+ mov r1, #1
+ bl FUN_0200C6B0
+ mov r0, #0xf
+ str r0, [sp]
+ mov r1, #0xa
+ str r1, [sp, #4]
+ mov r0, #7
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x34
+ mov r2, #0xc
+ add r3, r1, #0
+ bl MOD08_022181A8
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x64
+ strh r1, [r0]
+ ldr r0, [r4]
+ mov r1, #0x1c
+ mov r2, #0xf
+ bl MOD08_02227994
+ ldr r0, [r4]
+ ldr r1, _02222414 ; =MOD08_0222229C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02222414: .word MOD08_0222229C
+
+ thumb_func_start MOD08_02222418
+MOD08_02222418: ; 0x02222418
+ mov r2, #0x12
+ ldrsh r2, [r0, r2]
+ mov r3, #0x10
+ ldrsh r0, [r0, r3]
+ neg r2, r2
+ lsl r2, r2, #0x10
+ neg r0, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ orr r0, r2
+ mov r2, #3
+ ldr r3, _02222434 ; =0x020CE1FC
+ lsl r2, r2, #8
+ bx r3
+ .align 2, 0
+_02222434: .word 0x020CE1FC
+
+ thumb_func_start MOD08_02222438
+MOD08_02222438: ; 0x02222438
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ bl MOD08_02218970
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD08_02222418
+ add r0, r5, #0
+ add r0, #0x1c
+ bl MOD08_02217ECC
+ str r0, [sp, #8]
+ mov r0, #0x14
+ ldrsh r4, [r5, r0]
+ mov r0, #0x16
+ ldrsh r0, [r5, r0]
+ cmp r4, r0
+ bgt _022224D8
+ ldr r1, [sp, #0xc]
+ lsl r2, r4, #2
+ add r1, r1, r2
+ str r1, [sp]
+_0222246C:
+ ldr r1, [sp]
+ sub r0, r0, r4
+ ldr r2, [r1]
+ lsl r1, r2, #0x10
+ asr r1, r1, #0x10
+ str r1, [sp, #4]
+ lsr r1, r2, #0x10
+ lsl r1, r1, #0x10
+ asr r7, r1, #0x10
+ mov r1, #0x1e
+ ldrsh r1, [r5, r1]
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ sub r0, r7, r0
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ mov r0, #0x1c
+ ldrsh r1, [r5, r0]
+ mov r0, #0x14
+ ldrsh r0, [r5, r0]
+ add r0, #0x28
+ sub r0, r0, r4
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r1, [sp, #4]
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ sub r6, r4, #1
+ bpl _022224B4
+ add r6, #0xc0
+_022224B4:
+ ldr r0, [sp, #4]
+ lsl r1, r7, #0x10
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ bl MOD08_02218998
+ ldr r1, [sp, #0xc]
+ lsl r2, r6, #2
+ str r0, [r1, r2]
+ ldr r0, [sp]
+ add r4, r4, #1
+ add r0, r0, #4
+ str r0, [sp]
+ mov r0, #0x16
+ ldrsh r0, [r5, r0]
+ cmp r4, r0
+ ble _0222246C
+_022224D8:
+ ldr r0, [sp, #8]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022224E0
+MOD08_022224E0: ; 0x022224E0
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #4
+ bhi _02222548
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022224FA: ; jump table
+ .short _02222504 - _022224FA - 2 ; case 0
+ .short _02222536 - _022224FA - 2 ; case 1
+ .short _0222255E - _022224FA - 2 ; case 2
+ .short _022225AE - _022224FA - 2 ; case 3
+ .short _022225CE - _022224FA - 2 ; case 4
+_02222504:
+ add r0, r4, #0
+ bl MOD08_02222438
+ cmp r0, #0
+ bne _02222548
+ ldr r0, [r4, #4]
+ mov r1, #0x1f
+ add r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ mov r2, #0
+ bl MOD08_02227A00
+ mov r1, #0x1f
+ mov r2, #0
+ str r1, [sp]
+ mov r0, #0x10
+ add r4, #0x40
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r3, r2, #0
+ bl MOD08_022186D4
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_02222536:
+ add r0, r4, #0
+ bl MOD08_02222438
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02218704
+ cmp r0, #0
+ bne _0222254A
+_02222548:
+ b _02222650
+_0222254A:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x18]
+ bl MOD08_02218984
+ mov r0, #0
+ add sp, #8
+ str r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_0222255E:
+ ldr r0, [r4]
+ bl MOD08_02212490
+ mov r3, #0x10
+ ldrsh r3, [r4, r3]
+ mov r1, #2
+ mov r2, #0
+ neg r3, r3
+ bl FUN_020179E0
+ ldr r0, [r4]
+ bl MOD08_02212490
+ mov r3, #0x12
+ ldrsh r3, [r4, r3]
+ mov r1, #2
+ mov r2, #3
+ neg r3, r3
+ bl FUN_020179E0
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #8
+ ble _02222650
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x1f
+ add r0, #0x40
+ add r3, r2, #0
+ bl MOD08_022186D4
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_022225AE:
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02222650
+ ldr r0, [r4, #0xc]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_022225CE:
+ ldr r0, [r4, #0x18]
+ bl MOD08_0221894C
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215600
+ add r1, r0, #0
+ lsl r0, r5, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ mov r0, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212014
+ add r3, r0, #0
+ lsl r0, r5, #0x18
+ mov r1, #1
+ lsr r0, r0, #0x18
+ lsl r1, r1, #0xe
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r0, [r4]
+ bl MOD08_02212490
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_02222650:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02222654
+MOD08_02222654: ; 0x02222654
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x68
+ bl AllocFromHeap
+ mov r1, #0
+ mov r2, #0x68
+ add r4, r0, #0
+ bl memset
+ ldr r1, _022227BC ; =MOD08_022224E0
+ str r5, [r4]
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD08_02212400
+ str r0, [sp, #0x14]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x12]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x29
+ bl FUN_0200782C
+ mov r1, #0x12
+ ldrsh r2, [r4, r1]
+ sub r0, r2, r0
+ strh r0, [r4, #0x12]
+ mov r0, #0x10
+ ldrsh r0, [r4, r0]
+ mov r2, #1
+ sub r0, #0x28
+ strh r0, [r4, #0x10]
+ ldrsh r0, [r4, r1]
+ mov r1, #6
+ sub r0, #0x28
+ strh r0, [r4, #0x12]
+ ldr r0, [r4, #0xc]
+ bl FUN_02007558
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ add r6, r0, #0
+ mov r0, #0x12
+ ldrsh r1, [r4, r0]
+ sub r1, #8
+ strh r1, [r4, #0x14]
+ ldrsh r0, [r4, r0]
+ add r0, #0x58
+ strh r0, [r4, #0x16]
+ mov r0, #0x14
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _022226F0
+ mov r0, #0
+ strh r0, [r4, #0x14]
+_022226F0:
+ mov r0, #0x16
+ ldrsh r0, [r4, r0]
+ cmp r0, #0xc0
+ ble _022226FC
+ mov r0, #0xc0
+ strh r0, [r4, #0x16]
+_022226FC:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022155C4
+ add r7, r0, #0
+ ldr r0, [sp, #0x14]
+ bl FUN_0201B6CC
+ str r0, [sp, #0x18]
+ ldrh r0, [r4, #0x10]
+ ldrh r1, [r4, #0x12]
+ bl MOD08_02218998
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ bl MOD08_02212014
+ mov r1, #0x50
+ str r1, [sp]
+ ldr r1, [sp, #0x18]
+ str r7, [sp, #4]
+ add r1, r1, #1
+ str r1, [sp, #8]
+ ldr r1, [sp, #0x1c]
+ ldr r2, _022227C0 ; =0x0000038E
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #0x14
+ mov r1, #0x16
+ ldrsh r0, [r4, r0]
+ ldrsh r1, [r4, r1]
+ lsl r3, r6, #0xf
+ lsl r0, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl MOD08_022188DC
+ str r0, [r4, #0x18]
+ mov r0, #0x28
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x1c
+ mov r2, #0x50
+ add r3, r1, #0
+ bl MOD08_02217E80
+ ldr r0, [r4, #0x24]
+ add r1, r0, #0
+ mul r1, r6
+ str r1, [r4, #0x24]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ sub r0, r0, #3
+ cmp r0, #1
+ bhi _022227AE
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ lsl r0, r5, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ add r1, r1, #1
+ lsl r1, r1, #0x18
+ mov r0, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+_022227AE:
+ ldr r0, [sp, #0x14]
+ add r1, r4, #0
+ bl MOD08_022224E0
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022227BC: .word MOD08_022224E0
+_022227C0: .word 0x0000038E
+
+ thumb_func_start MOD08_022227C4
+MOD08_022227C4: ; 0x022227C4
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ bhi _02222874
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022227DE: ; jump table
+ .short _022227E6 - _022227DE - 2 ; case 0
+ .short _0222280C - _022227DE - 2 ; case 1
+ .short _0222281E - _022227DE - 2 ; case 2
+ .short _02222862 - _022227DE - 2 ; case 3
+_022227E6:
+ add r0, r4, #0
+ add r0, #0x38
+ bl MOD08_02218080
+ ldr r2, [r4, #0x38]
+ mov r1, #0x1f
+ sub r1, r1, r2
+ lsl r1, r1, #8
+ orr r2, r1
+ ldr r1, _02222880 ; =0x04000052
+ cmp r0, #0
+ strh r2, [r1]
+ bne _02222874
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [r4, #0xc]
+ b _02222874
+_0222280C:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ cmp r0, #0x20
+ ble _02222874
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02222874
+_0222281E:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x14
+ add r1, sp, #4
+ add r2, sp, #0
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x4c]
+ cmp r0, #1
+ bne _02222844
+ ldr r1, [sp, #4]
+ mov r0, #0
+ bl _fsub
+ str r0, [sp, #4]
+_02222844:
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #4]
+ ldr r2, [sp]
+ bl FUN_0200C884
+ cmp r5, #0
+ bne _02222874
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02222874
+_02222862:
+ ldr r0, [r4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02222874:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_02222880: .word 0x04000052
+
+ thumb_func_start MOD08_02222884
+MOD08_02222884: ; 0x02222884
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r2, r0, #0
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ beq _022228A0
+ cmp r0, #1
+ beq _02222928
+ cmp r0, #2
+ bne _0222289C
+ b _022229B4
+_0222289C:
+ add sp, #0xc
+ pop {r4, r5, pc}
+_022228A0:
+ add r0, r5, #0
+ add r0, #0x14
+ bl MOD08_022183F0
+ mov r2, #0x38
+ mov r3, #0x3a
+ add r0, r5, #0
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ ldr r1, [r5, #8]
+ add r0, #0x14
+ bl MOD08_02217CD0
+ ldr r0, [r5, #0x10]
+ cmp r0, #1
+ bne _022228DA
+ mov r3, #0x3a
+ ldrsh r4, [r5, r3]
+ ldr r3, [r5, #0x3c]
+ mov r2, #0x38
+ sub r3, r4, r3
+ add r0, r5, #0
+ lsl r3, r3, #0x10
+ ldrsh r2, [r5, r2]
+ ldr r1, [r5, #0xc]
+ add r0, #0x14
+ asr r3, r3, #0x10
+ bl MOD08_02217C94
+_022228DA:
+ ldr r0, [r5, #8]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _022229C2
+ mov r2, #0
+ str r2, [sp]
+ ldr r0, [r5, #8]
+ mov r1, #0x10
+ add r3, r2, #0
+ bl FUN_02007E68
+ ldr r0, [r5, #0x10]
+ cmp r0, #1
+ bne _0222291E
+ ldr r0, [r5, #0xc]
+ bl MOD08_02217C08
+ mov r1, #1
+ add r4, r1, #0
+ lsl r4, r0
+ ldr r0, [r5]
+ bl MOD08_02215504
+ mov r1, #0x10
+ str r1, [sp]
+ mov r3, #0
+ lsl r2, r4, #0x10
+ str r3, [sp, #4]
+ mov r1, #4
+ lsr r2, r2, #0x10
+ str r3, [sp, #8]
+ bl FUN_02003210
+_0222291E:
+ ldr r0, [r5, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r5, #4]
+ pop {r4, r5, pc}
+_02222928:
+ add r0, r5, #0
+ add r0, #0x14
+ bl MOD08_022183F0
+ mov r2, #0x38
+ mov r3, #0x3a
+ add r0, r5, #0
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ ldr r1, [r5, #8]
+ add r0, #0x14
+ bl MOD08_02217CD0
+ ldr r0, [r5, #0x10]
+ cmp r0, #1
+ bne _02222962
+ mov r3, #0x3a
+ ldrsh r4, [r5, r3]
+ ldr r3, [r5, #0x3c]
+ mov r2, #0x38
+ sub r3, r4, r3
+ add r0, r5, #0
+ lsl r3, r3, #0x10
+ ldrsh r2, [r5, r2]
+ ldr r1, [r5, #0xc]
+ add r0, #0x14
+ asr r3, r3, #0x10
+ bl MOD08_02217C94
+_02222962:
+ ldr r0, [r5, #8]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _022229C2
+ mov r2, #0x38
+ ldrsh r2, [r5, r2]
+ ldr r0, [r5, #8]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x3a
+ ldrsh r2, [r5, r2]
+ ldr r0, [r5, #8]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r5, #0x10]
+ cmp r0, #1
+ bne _022229AA
+ ldr r0, [r5, #8]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ mov r2, #0x3a
+ ldrsh r3, [r5, r2]
+ ldr r2, [r5, #0x3c]
+ mov r1, #0x38
+ sub r2, r3, r2
+ lsl r2, r2, #0x10
+ ldrsh r1, [r5, r1]
+ ldr r0, [r5, #0xc]
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+_022229AA:
+ ldr r0, [r5, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r5, #4]
+ pop {r4, r5, pc}
+_022229B4:
+ ldr r0, [r5]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FreeToHeap
+_022229C2:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022229C8
+MOD08_022229C8: ; 0x022229C8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x50
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x50
+ bl memset
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212004
+ str r0, [r4, #0x4c]
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x10]
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0xa
+ add r0, #0x14
+ mov r1, #0xe
+ add r3, r2, #0
+ bl MOD08_02218120
+ add r0, r4, #0
+ add r0, #0x38
+ mov r1, #0
+ mov r2, #0x10
+ mov r3, #8
+ bl MOD08_02218030
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0x1f
+ bl MOD08_02227994
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x4c]
+ cmp r0, #1
+ ldr r0, [r4, #0x10]
+ bne _02222A48
+ ldr r1, _02222A6C ; =0xBFB33333
+ ldr r2, _02222A70 ; =0x3FB33333
+ bl FUN_0200C884
+ b _02222A50
+_02222A48:
+ ldr r1, _02222A70 ; =0x3FB33333
+ add r2, r1, #0
+ bl FUN_0200C884
+_02222A50:
+ ldr r0, [r4, #0x10]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4]
+ ldr r1, _02222A74 ; =MOD08_022227C4
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02222A6C: .word 0xBFB33333
+_02222A70: .word 0x3FB33333
+_02222A74: .word MOD08_022227C4
+
+ thumb_func_start MOD08_02222A78
+MOD08_02222A78: ; 0x02222A78
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x40
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x40
+ bl memset
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x38]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x3a]
+ ldr r0, [r4, #8]
+ mov r1, #0x29
+ bl FUN_0200782C
+ str r0, [r4, #0x3c]
+ mov r1, #4
+ add r0, r4, #0
+ str r1, [sp]
+ add r0, #0x14
+ mov r2, #0
+ mov r3, #1
+ bl MOD08_022183C0
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ mov r1, #0x14
+ ldrsh r1, [r4, r1]
+ mov r2, #0x10
+ add r0, r1, r0
+ mov r1, #0
+ strh r0, [r4, #0x14]
+ str r1, [sp]
+ ldr r0, [r4, #8]
+ add r3, r1, #0
+ bl FUN_02007E68
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ cmp r5, #2
+ bne _02222B24
+ cmp r0, #4
+ beq _02222B2C
+_02222B24:
+ cmp r5, #5
+ bne _02222B5E
+ cmp r0, #3
+ bne _02222B5E
+_02222B2C:
+ ldr r0, [r4, #0xc]
+ bl MOD08_02217C08
+ mov r1, #1
+ add r5, r1, #0
+ lsl r5, r0
+ ldr r0, [r4]
+ bl MOD08_02215504
+ mov r3, #0
+ lsl r2, r5, #0x10
+ str r3, [sp]
+ mov r1, #0x10
+ str r1, [sp, #4]
+ mov r1, #4
+ lsr r2, r2, #0x10
+ str r3, [sp, #8]
+ bl FUN_02003210
+ mov r2, #1
+ str r2, [r4, #0x10]
+ ldr r0, [r4, #8]
+ mov r1, #6
+ bl FUN_02007558
+_02222B5E:
+ ldr r0, [r4]
+ ldr r1, _02222B6C ; =MOD08_02222884
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02222B6C: .word MOD08_02222884
+
+ thumb_func_start MOD08_02222B70
+MOD08_02222B70: ; 0x02222B70
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ mov r5, #0
+ cmp r0, #3
+ bhi _02222BEC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02222B8A: ; jump table
+ .short _02222B92 - _02222B8A - 2 ; case 0
+ .short _02222BAA - _02222B8A - 2 ; case 1
+ .short _02222BD0 - _02222B8A - 2 ; case 2
+ .short _02222BEA - _02222B8A - 2 ; case 3
+_02222B92:
+ add r0, r4, #0
+ add r0, #0x1c
+ bl MOD08_02218704
+ cmp r0, #1
+ bne _02222BEC
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0x20
+ str r0, [r4, #0x44]
+ b _02222BEC
+_02222BAA:
+ ldr r0, [r4, #0x44]
+ sub r0, r0, #1
+ str r0, [r4, #0x44]
+ bpl _02222BEC
+ ldr r0, [r4, #8]
+ mov r1, #8
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0x18
+ add r4, #0x1c
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r5, #0
+ add r3, r1, #0
+ bl MOD08_022186D4
+ b _02222BEC
+_02222BD0:
+ add r0, r4, #0
+ add r0, #0x1c
+ bl MOD08_02218704
+ cmp r0, #1
+ bne _02222BEC
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x14]
+ bl MOD08_0221894C
+ b _02222BEC
+_02222BEA:
+ mov r5, #1
+_02222BEC:
+ add r0, r5, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02222BF4
+MOD08_02222BF4: ; 0x02222BF4
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02222C0A
+ cmp r0, #1
+ beq _02222C2C
+ cmp r0, #2
+ beq _02222C3E
+ pop {r4, r5, r6, pc}
+_02222C0A:
+ ldr r0, [r4, #0x48]
+ bl FUN_0200C658
+ cmp r0, #1
+ bne _02222C1E
+ ldr r0, [r4, #0x10]
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+_02222C1E:
+ add r0, r4, #0
+ bl MOD08_02222B70
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_02222C2C:
+ add r0, r4, #0
+ bl MOD08_02222B70
+ cmp r0, #0
+ beq _02222CC4
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_02222C3E:
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215600
+ add r1, r0, #0
+ lsl r0, r5, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ mov r0, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4, #0x10]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212014
+ add r3, r0, #0
+ lsl r0, r5, #0x18
+ mov r1, #1
+ lsr r0, r0, #0x18
+ lsl r1, r1, #0xe
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r0, [r4]
+ bl MOD08_02212490
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_02222CC4:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02222CC8
+MOD08_02222CC8: ; 0x02222CC8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ mov r1, #0x4c
+ add r7, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r7, [r4]
+ add r0, r7, #0
+ bl MOD08_02215504
+ str r0, [r4, #0x18]
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0x10
+ bl MOD08_02227A00
+ mov r2, #8
+ str r2, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x1c
+ mov r1, #0
+ mov r3, #0x10
+ bl MOD08_022186D4
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #0x10]
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #0x10]
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ sub r0, #0x28
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x48]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ cmp r0, #5
+ beq _02222D58
+ cmp r0, #2
+ bne _02222D6A
+_02222D58:
+ ldr r0, [r4, #0x48]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4, #0x48]
+ mov r1, #2
+ bl FUN_0200C6B0
+ b _02222DA6
+_02222D6A:
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ str r0, [sp, #0x14]
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [sp, #0x14]
+ lsl r1, r1, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ add r1, r1, #1
+ lsl r1, r1, #0x18
+ mov r0, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4, #0x48]
+ mov r1, #0
+ bl FUN_0200C644
+_02222DA6:
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD08_022155C4
+ neg r1, r5
+ lsl r1, r1, #0x10
+ sub r6, #0x28
+ str r0, [sp, #0x18]
+ lsl r0, r6, #0x10
+ asr r0, r0, #0x10
+ neg r0, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ bl MOD08_02218998
+ add r6, r0, #0
+ add r0, r7, #0
+ bl MOD08_02212014
+ mov r1, #0x64
+ str r1, [sp]
+ ldr r1, [sp, #0x18]
+ mov r3, #5
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ str r6, [sp, #0xc]
+ str r0, [sp, #0x10]
+ lsl r0, r5, #0x18
+ add r5, #0x50
+ lsl r1, r5, #0x18
+ ldr r2, _02222E14 ; =0x0000038E
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ lsl r3, r3, #0xc
+ bl MOD08_022188DC
+ mov r2, #1
+ str r0, [r4, #0x14]
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4, #0x18]
+ lsl r2, r2, #8
+ mov r3, #8
+ bl FUN_02003A64
+ ldr r0, [r4]
+ ldr r1, _02222E18 ; =MOD08_02222BF4
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02222E14: .word 0x0000038E
+_02222E18: .word MOD08_02222BF4
+
+ thumb_func_start MOD08_02222E1C
+MOD08_02222E1C: ; 0x02222E1C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #3
+ bhi _02222F1E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02222E36: ; jump table
+ .short _02222E3E - _02222E36 - 2 ; case 0
+ .short _02222E8E - _02222E36 - 2 ; case 1
+ .short _02222ECC - _02222E36 - 2 ; case 2
+ .short _02222F06 - _02222E36 - 2 ; case 3
+_02222E3E:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _02222E70
+ add r0, r4, #0
+ add r0, #0x14
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x54]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, [sp, #8]
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [r4, #0x10]
+ ldr r2, [sp, #4]
+ bl FUN_0200C884
+ b _02222F1E
+_02222E70:
+ ldr r0, [r4, #0xc]
+ mov r1, #0xa
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #5
+ str r0, [r4, #0x4c]
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x14
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD08_02218120
+ b _02222F1E
+_02222E8E:
+ add r0, r4, #0
+ add r0, #0x38
+ bl MOD08_02218058
+ ldr r1, [r4, #0x38]
+ add r5, r0, #0
+ lsl r1, r1, #0x10
+ ldr r0, [r4, #0x10]
+ lsr r1, r1, #0x10
+ bl FUN_0200C898
+ cmp r5, #0
+ bne _02222F1E
+ ldr r0, [r4, #0x4c]
+ cmp r0, #0
+ ble _02222EC4
+ sub r0, r0, #1
+ str r0, [r4, #0x4c]
+ add r0, r4, #0
+ ldr r1, [r4, #0x38]
+ ldr r2, [r4, #0x50]
+ add r0, #0x38
+ mov r3, #4
+ str r1, [r4, #0x50]
+ bl MOD08_02218008
+ b _02222F1E
+_02222EC4:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02222F1E
+_02222ECC:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _02222EFE
+ add r0, r4, #0
+ add r0, #0x14
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x54]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, [sp, #8]
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [r4, #0x10]
+ ldr r2, [sp, #4]
+ bl FUN_0200C884
+ b _02222F1E
+_02222EFE:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02222F1E
+_02222F06:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0xc
+ pop {r4, r5, pc}
+_02222F1E:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_02222F28
+MOD08_02222F28: ; 0x02222F28
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r1, #0
+ mov r1, #0x58
+ add r5, r0, #0
+ add r7, r2, #0
+ str r3, [sp, #4]
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ str r6, [r4, #4]
+ str r7, [r4, #8]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ add r7, r0, #0
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_02215680
+ cmp r0, #1
+ bne _02222F68
+ mov r0, #0
+ mvn r0, r0
+ str r0, [r4, #0x54]
+ neg r6, r7
+ b _02222F6E
+_02222F68:
+ mov r0, #1
+ str r0, [r4, #0x54]
+ add r6, r7, #0
+_02222F6E:
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #4]
+ mov r1, #2
+ str r0, [r4, #0x10]
+ bl FUN_0200C840
+ mov r1, #0xfe
+ lsl r1, r1, #0x16
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl FUN_0200C884
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #0xc]
+ bl FUN_0200C714
+ mov r1, #0x28
+ mul r1, r7
+ lsl r1, r1, #0x10
+ ldr r0, [r4, #0x10]
+ asr r1, r1, #0x10
+ mov r2, #0
+ bl FUN_0200C82C
+ ldr r0, [r4, #0x10]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C6B0
+ mov r1, #0xb
+ mvn r1, r1
+ mul r1, r6
+ lsl r1, r1, #0x10
+ ldr r0, [r4, #0x10]
+ asr r1, r1, #0x10
+ mov r2, #0xc
+ bl FUN_0200C8DC
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ ldr r0, [r4, #0x10]
+ bne _02223000
+ mov r1, #1
+ bl FUN_0200C5C0
+ b _02223006
+_02223000:
+ mov r1, #0
+ bl FUN_0200C5C0
+_02223006:
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0xa
+ add r0, #0x14
+ mov r1, #1
+ add r3, r2, #0
+ bl MOD08_02218120
+ cmp r6, #0
+ blt _0222302E
+ add r0, r4, #0
+ ldr r1, _02223050 ; =0x0000FF48
+ ldr r2, _02223054 ; =0x0000E38D
+ add r0, #0x38
+ mov r3, #4
+ bl MOD08_02218008
+ ldr r0, _02223050 ; =0x0000FF48
+ b _0222303E
+_0222302E:
+ add r0, r4, #0
+ ldr r2, _02223058 ; =0x00001C71
+ add r0, #0x38
+ mov r1, #0
+ mov r3, #4
+ bl MOD08_02218008
+ mov r0, #0
+_0222303E:
+ str r0, [r4, #0x50]
+ ldr r0, [r4]
+ ldr r1, _0222305C ; =MOD08_02222E1C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02223050: .word 0x0000FF48
+_02223054: .word 0x0000E38D
+_02223058: .word 0x00001C71
+_0222305C: .word MOD08_02222E1C
+
+ thumb_func_start MOD08_02223060
+MOD08_02223060: ; 0x02223060
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ str r1, [r5]
+ add r6, r3, #0
+ mov r3, #8
+ mov r1, #0xa
+ add r4, r2, #0
+ add r0, r5, #4
+ add r2, r1, #0
+ str r3, [sp]
+ bl MOD08_02218120
+ mov r0, #3
+ str r0, [r5, #0x2c]
+ mov r0, #8
+ str r0, [r5, #0x30]
+ mov r0, #0xa
+ str r0, [r5, #0x34]
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ str r0, [r5, #0x28]
+ ldr r0, [r5]
+ add r2, r6, #0
+ bl FUN_0200C714
+ ldr r0, [r5]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0200C714
+ ldr r0, [r5]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r5]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [sp, #0x18]
+ cmp r0, #0
+ beq _022230C8
+ mov r2, #0xfe
+ ldr r0, [r5]
+ ldr r1, _022230D4 ; =0xBF800000
+ lsl r2, r2, #0x16
+ bl FUN_0200C884
+_022230C8:
+ ldr r0, [r5]
+ mov r1, #0
+ bl FUN_0200C644
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_022230D4: .word 0xBF800000
+
+ thumb_func_start MOD08_022230D8
+MOD08_022230D8: ; 0x022230D8
+ ldr r3, _022230E0 ; =FUN_0200C3DC
+ ldr r0, [r0]
+ bx r3
+ nop
+_022230E0: .word FUN_0200C3DC
+
+ thumb_func_start MOD08_022230E4
+MOD08_022230E4: ; 0x022230E4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_0200C5E0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022230FC
+MOD08_022230FC: ; 0x022230FC
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r0, r4, #4
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _02223140
+ add r0, r4, #4
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _02223132
+ ldr r1, [sp, #8]
+ mov r0, #0
+ bl _fsub
+ add r1, r0, #0
+ mov r2, #0xfe
+ ldr r0, [r4]
+ lsl r2, r2, #0x16
+ bl FUN_0200C884
+ b _02223172
+_02223132:
+ mov r2, #0xfe
+ ldr r0, [r4]
+ ldr r1, [sp, #8]
+ lsl r2, r2, #0x16
+ bl FUN_0200C884
+ b _02223172
+_02223140:
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0
+ ble _0222316C
+ sub r0, r0, #1
+ str r0, [r4, #0x2c]
+ mov r0, #8
+ str r0, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [r4, #0x34]
+ lsl r1, r1, #0x10
+ lsl r3, r3, #0x10
+ add r0, r4, #4
+ asr r1, r1, #0x10
+ mov r2, #0xa
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ ldr r1, [r4, #0x30]
+ ldr r0, [r4, #0x34]
+ str r0, [r4, #0x30]
+ str r1, [r4, #0x34]
+ b _02223172
+_0222316C:
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_02223172:
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_02223178
+MOD08_02223178: ; 0x02223178
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #3
+ bhi _02223244
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02223190: ; jump table
+ .short _02223198 - _02223190 - 2 ; case 0
+ .short _022231CA - _02223190 - 2 ; case 1
+ .short _022231E8 - _02223190 - 2 ; case 2
+ .short _02223208 - _02223190 - 2 ; case 3
+_02223198:
+ ldr r0, [r4, #0x10]
+ cmp r0, #4
+ blt _022231C2
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ add r2, r4, #0
+ mov r0, #0x38
+ add r2, #0x44
+ mul r0, r1
+ add r0, r2, r0
+ bl MOD08_022230E4
+ ldr r0, [r4, #0x14]
+ add r0, r0, #1
+ str r0, [r4, #0x14]
+ cmp r0, #4
+ blt _022231C2
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+_022231C2:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _02223244
+_022231CA:
+ mov r1, #0x1c
+ mov r2, #0x1e
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x18]
+ add r0, #0x20
+ bl MOD08_02218454
+ cmp r0, #0
+ bne _02223244
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02223244
+_022231E8:
+ add r5, r4, #0
+ mov r6, #0
+ add r5, #0x44
+_022231EE:
+ add r0, r5, #0
+ bl MOD08_022230FC
+ add r6, r6, #1
+ add r5, #0x38
+ cmp r6, #4
+ blt _022231EE
+ cmp r0, #0
+ bne _02223244
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02223244
+_02223208:
+ mov r2, #0x1c
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x1e
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_02007558
+ add r5, r4, #0
+ mov r6, #0
+ add r5, #0x44
+_02223226:
+ add r0, r5, #0
+ bl MOD08_022230D8
+ add r6, r6, #1
+ add r5, #0x38
+ cmp r6, #4
+ blt _02223226
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_02223244:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222324C
+MOD08_0222324C: ; 0x0222324C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x48
+ str r1, [sp, #4]
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ add r4, r0, #0
+ str r2, [sp, #8]
+ str r3, [sp, #0xc]
+ bl MOD08_02228064
+ add r7, r0, #0
+ ldr r0, [sp, #4]
+ str r4, [r7]
+ str r0, [r7, #4]
+ ldr r0, [sp, #8]
+ str r0, [r7, #8]
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r7]
+ bl MOD08_022154D4
+ str r0, [r7, #0x18]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r7, #0x1c]
+ ldr r0, [r7, #0x18]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r7, #0x1e]
+ add r0, r7, #0
+ mov r3, #1
+ add r0, #0x20
+ mov r1, #4
+ mov r2, #0
+ str r3, [sp]
+ bl MOD08_022183C0
+ mov r0, #0x1e
+ ldrsh r4, [r7, r0]
+ ldr r1, [r7]
+ add r0, sp, #0x14
+ add r4, #0x10
+ mov r5, #0
+ bl MOD08_02215474
+ add r0, r5, #0
+ add r6, r7, #0
+ str r0, [sp, #0x10]
+ add r6, #0x44
+_022232B6:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ bne _022232D0
+ str r5, [sp]
+ mov r2, #0x1c
+ lsl r3, r4, #0x10
+ ldrsh r2, [r7, r2]
+ ldr r1, [sp, #0xc]
+ add r0, r6, #0
+ asr r3, r3, #0x10
+ bl MOD08_02223060
+ b _022232EC
+_022232D0:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #8]
+ add r2, sp, #0x14
+ bl FUN_0200C154
+ lsl r3, r4, #0x10
+ add r1, r0, #0
+ str r5, [sp]
+ mov r2, #0x1c
+ ldrsh r2, [r7, r2]
+ add r0, r6, #0
+ asr r3, r3, #0x10
+ bl MOD08_02223060
+_022232EC:
+ mov r0, #1
+ eor r5, r0
+ ldr r0, [sp, #0x10]
+ sub r4, #0xa
+ add r0, r0, #1
+ add r6, #0x38
+ str r0, [sp, #0x10]
+ cmp r0, #4
+ blt _022232B6
+ ldr r0, [r7]
+ ldr r1, _0222330C ; =MOD08_02223178
+ add r2, r7, #0
+ bl MOD08_02212400
+ add sp, #0x48
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222330C: .word MOD08_02223178
+
+ thumb_func_start MOD08_02223310
+MOD08_02223310: ; 0x02223310
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #6
+ bls _02223320
+ b _022234D2
+_02223320:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222332C: ; jump table
+ .short _0222333A - _0222332C - 2 ; case 0
+ .short _0222337C - _0222332C - 2 ; case 1
+ .short _022233DC - _0222332C - 2 ; case 2
+ .short _0222341C - _0222332C - 2 ; case 3
+ .short _0222343C - _0222332C - 2 ; case 4
+ .short _0222347A - _0222332C - 2 ; case 5
+ .short _022234BA - _0222332C - 2 ; case 6
+_0222333A:
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _0222335C
+ mov r2, #0x14
+ mov r3, #0x16
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0x10]
+ add r0, #0x18
+ bl MOD08_02217CD0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_0222335C:
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r1, #0x18
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ add r0, #0x18
+ add r3, r2, #0
+ bl MOD08_02217E80
+ ldr r0, [r4, #0xc]
+ add sp, #0x10
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0222337C:
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _0222339E
+ mov r2, #0x14
+ mov r3, #0x16
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0x10]
+ add r0, #0x18
+ bl MOD08_02217CD0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_0222339E:
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02007558
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r2, [r4, #0x3c]
+ add r0, r4, #0
+ lsl r2, r2, #5
+ neg r2, r2
+ lsl r2, r2, #0x10
+ add r0, #0x18
+ asr r2, r2, #0x10
+ add r3, r1, #0
+ bl MOD08_02217E80
+ ldr r0, [r4, #0xc]
+ add sp, #0x10
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_022233DC:
+ add r0, r4, #0
+ ldr r2, [r4, #0x48]
+ add r0, #0x4c
+ add r1, #0x70
+ bl MOD08_02217FE4
+ cmp r0, #0
+ bne _022234D2
+ mov r0, #0x46
+ ldrsh r0, [r4, r0]
+ add r1, r4, #0
+ mov r2, #0x44
+ str r0, [sp]
+ mov r0, #0x16
+ ldrsh r0, [r4, r0]
+ mov r3, #0x14
+ add r1, #0x70
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ ldr r0, _022234DC ; =0xFFFE0000
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ add r0, #0x4c
+ bl MOD08_02217F50
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _022234D2
+_0222341C:
+ add r0, r4, #0
+ ldr r2, [r4, #0x48]
+ add r0, #0x4c
+ add r1, #0x70
+ bl MOD08_02217FE4
+ cmp r0, #0
+ bne _022234D2
+ ldr r0, [r4, #0x48]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _022234D2
+_0222343C:
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _0222345C
+ mov r2, #0x14
+ mov r3, #0x16
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0x10]
+ add r0, #0x18
+ bl MOD08_02217CD0
+ b _022234D2
+_0222345C:
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r1, #0x18
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ add r0, #0x18
+ add r3, r2, #0
+ bl MOD08_02217E80
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _022234D2
+_0222347A:
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _0222349A
+ mov r2, #0x14
+ mov r3, #0x16
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0x10]
+ add r0, #0x18
+ bl MOD08_02217CD0
+ b _022234D2
+_0222349A:
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _022234D2
+_022234BA:
+ ldr r0, [r4, #0x48]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_022234D2:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022234DC: .word 0xFFFE0000
+
+ thumb_func_start MOD08_022234E0
+MOD08_022234E0: ; 0x022234E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r1, #0
+ mov r1, #0x94
+ add r5, r0, #0
+ str r2, [sp, #0x10]
+ add r6, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ ldr r0, [sp, #0x10]
+ str r7, [r4, #4]
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x16]
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r2, [r4, #0x3c]
+ add r0, r4, #0
+ lsl r2, r2, #4
+ neg r2, r2
+ lsl r2, r2, #0x10
+ add r0, #0x18
+ asr r2, r2, #0x10
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #0x40]
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x44
+ strh r0, [r1]
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x46
+ strh r0, [r1]
+ add r0, r6, #0
+ mov r1, #1
+ str r6, [r4, #0x48]
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0x48]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x48]
+ mov r1, #1
+ bl FUN_0200C6B0
+ mov r0, #0x16
+ ldrsh r0, [r4, r0]
+ add r1, r4, #0
+ mov r2, #0x14
+ str r0, [sp]
+ mov r0, #0x46
+ ldrsh r0, [r4, r0]
+ mov r3, #0x44
+ add r1, #0x70
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #2
+ lsl r0, r0, #0x10
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ add r0, #0x4c
+ bl MOD08_02217F50
+ ldr r0, [r4]
+ ldr r1, _022235C8 ; =MOD08_02223310
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022235C8: .word MOD08_02223310
+
+ thumb_func_start MOD08_022235CC
+MOD08_022235CC: ; 0x022235CC
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ bhi _02223676
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022235E6: ; jump table
+ .short _022235EE - _022235E6 - 2 ; case 0
+ .short _0222361A - _022235E6 - 2 ; case 1
+ .short _0222363E - _022235E6 - 2 ; case 2
+ .short _02223664 - _022235E6 - 2 ; case 3
+_022235EE:
+ mov r2, #0x1a
+ ldrsh r3, [r4, r2]
+ mov r2, #0x68
+ ldrsh r2, [r4, r2]
+ mov r1, #0x18
+ ldrsh r1, [r4, r1]
+ sub r2, r3, r2
+ add r0, r4, #0
+ lsl r2, r2, #0x10
+ ldr r3, [r4, #0x14]
+ add r0, #0x1c
+ asr r2, r2, #0x10
+ bl MOD08_02217E30
+ cmp r0, #0
+ bne _02223676
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0x10
+ str r0, [r4, #0xc]
+ b _02223676
+_0222361A:
+ ldr r0, [r4, #0xc]
+ sub r0, r0, #1
+ str r0, [r4, #0xc]
+ bpl _02223676
+ ldr r0, [r4, #8]
+ mov r2, #0x10
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x40
+ add r3, r2, #0
+ bl MOD08_022186D4
+ b _02223676
+_0222363E:
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02223676
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4, #0x10]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02223676
+_02223664:
+ ldr r0, [r4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r4, pc}
+_02223676:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02223680
+MOD08_02223680: ; 0x02223680
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ mov r1, #0x6c
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x18]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x1a]
+ ldr r0, [r4, #0x10]
+ mov r1, #0x29
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x68
+ strh r0, [r1]
+ mov r0, #0x1a
+ ldrsh r0, [r4, r0]
+ mov r1, #0
+ add r0, #8
+ strh r0, [r4, #0x1a]
+ ldr r0, [r4]
+ bl MOD08_022124D8
+ str r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x10]
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+ add r0, r4, #0
+ add r0, #0x1c
+ mov r1, #2
+ mov r2, #0x10
+ bl MOD08_02218654
+ ldr r0, [r4]
+ mov r1, #0x10
+ mov r2, #0
+ bl MOD08_02227994
+ mov r1, #0x10
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x40
+ add r3, r2, #0
+ bl MOD08_022186D4
+ ldr r0, [r4, #0x28]
+ add r2, r4, #0
+ add r1, r0, #0
+ mul r1, r6
+ str r1, [r4, #0x28]
+ ldr r0, [r4]
+ ldr r1, _02223740 ; =MOD08_022235CC
+ bl MOD08_02212400
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02223740: .word MOD08_022235CC
+
+ thumb_func_start MOD08_02223744
+MOD08_02223744: ; 0x02223744
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x38]
+ mov r4, #0
+ cmp r0, #0
+ beq _0222375A
+ cmp r0, #1
+ beq _0222378E
+ cmp r0, #2
+ beq _022237BA
+ b _022237BC
+_0222375A:
+ add r0, r5, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #0
+ beq _02223774
+ mov r2, #0x16
+ ldrsh r2, [r5, r2]
+ ldr r0, [r5, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ b _022237BC
+_02223774:
+ ldr r0, [r5, #0x38]
+ mov r2, #0xa
+ add r0, r0, #1
+ str r0, [r5, #0x38]
+ mov r0, #0xc
+ add r5, #0x14
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0xf
+ add r3, r2, #0
+ bl MOD08_02218120
+ b _022237BC
+_0222378E:
+ add r0, r5, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #0
+ ldr r0, [r5, #0x10]
+ beq _022237A8
+ mov r2, #0x16
+ ldrsh r2, [r5, r2]
+ mov r1, #0xd
+ bl FUN_02007558
+ b _022237BC
+_022237A8:
+ mov r1, #0xd
+ add r2, r1, #0
+ add r2, #0xf3
+ bl FUN_02007558
+ ldr r0, [r5, #0x38]
+ add r0, r0, #1
+ str r0, [r5, #0x38]
+ b _022237BC
+_022237BA:
+ mov r4, #1
+_022237BC:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022237C0
+MOD08_022237C0: ; 0x022237C0
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5, #0x40]
+ mov r4, #0
+ cmp r0, #0
+ beq _022237D8
+ cmp r0, #1
+ beq _0222381E
+ cmp r0, #2
+ beq _0222383A
+ b _0222383C
+_022237D8:
+ add r0, r5, #0
+ ldr r1, [r5, #0x3c]
+ add r0, #0x44
+ bl MOD08_02218360
+ add r0, r5, #0
+ add r0, #0x68
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02223802
+ mov r2, #0xb4
+ mov r3, #0xb6
+ add r0, r5, #0
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ ldr r1, [r5, #0x3c]
+ add r0, #0x68
+ bl MOD08_02217C94
+ b _0222383C
+_02223802:
+ ldr r0, [r5, #0x40]
+ mov r1, #0x10
+ add r0, r0, #1
+ str r0, [r5, #0x40]
+ str r1, [sp]
+ mov r0, #8
+ add r5, #0x8c
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r2, r4, #0
+ mov r3, #0xe
+ bl MOD08_022186D4
+ b _0222383C
+_0222381E:
+ add r0, r5, #0
+ add r0, #0x8c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _0222383C
+ ldr r0, [r5, #0x3c]
+ add r1, r4, #0
+ bl FUN_0200C644
+ ldr r0, [r5, #0x40]
+ add r0, r0, #1
+ str r0, [r5, #0x40]
+ b _0222383C
+_0222383A:
+ mov r4, #1
+_0222383C:
+ add r0, r4, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02223844
+MOD08_02223844: ; 0x02223844
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _02223856
+ cmp r0, #1
+ beq _0222386E
+ b _02223884
+_02223856:
+ add r0, r4, #0
+ bl MOD08_02223744
+ add r0, r4, #0
+ bl MOD08_022237C0
+ cmp r0, #0
+ beq _02223884
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02223884
+_0222386E:
+ ldr r0, [r4, #0x3c]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+_02223884:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0222388C
+MOD08_0222388C: ; 0x0222388C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ mov r1, #0xb8
+ add r6, r0, #0
+ add r7, r2, #0
+ str r3, [sp, #8]
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r6, [r4]
+ str r5, [r4, #4]
+ str r7, [r4, #8]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C44
+ add r5, r0, #0
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #0x10]
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ mov r0, #0xc
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0x14
+ add r2, r1, #0
+ mov r3, #0xf
+ bl MOD08_02218120
+ ldr r0, [sp, #8]
+ mov r1, #1
+ str r0, [r4, #0x3c]
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0x3c]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x3c]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [sp, #0xc]
+ lsl r0, r0, #5
+ add r1, r7, r0
+ add r0, r4, #0
+ add r0, #0xb4
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0xb6
+ strh r6, [r0]
+ cmp r5, #0
+ bge _02223942
+ mov r1, #7
+ b _02223944
+_02223942:
+ mov r1, #0x17
+_02223944:
+ mvn r1, r1
+ add r0, r1, #0
+ mul r0, r5
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #0x20
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x68
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD08_02217E80
+ mov r0, #0x20
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x44
+ mov r1, #5
+ mov r2, #0xa
+ mov r3, #0xc
+ bl MOD08_02218120
+ mov r0, #0x1a
+ str r0, [sp]
+ ldr r0, _02223994 ; =0x04000050
+ mov r1, #0
+ mov r2, #0x3f
+ mov r3, #0x1f
+ bl G2x_SetBlendAlpha_
+ ldr r0, [r4]
+ ldr r1, _02223998 ; =MOD08_02223844
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02223994: .word 0x04000050
+_02223998: .word MOD08_02223844
+
+ thumb_func_start MOD08_0222399C
+MOD08_0222399C: ; 0x0222399C
+ push {r3, lr}
+ sub sp, #8
+ ldr r1, [r0, #0x68]
+ cmp r1, #5
+ bhi _02223A50
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022239B2: ; jump table
+ .short _022239BE - _022239B2 - 2 ; case 0
+ .short _022239D4 - _022239B2 - 2 ; case 1
+ .short _022239EE - _022239B2 - 2 ; case 2
+ .short _02223A08 - _022239B2 - 2 ; case 3
+ .short _02223A22 - _022239B2 - 2 ; case 4
+ .short _02223A38 - _022239B2 - 2 ; case 5
+_022239BE:
+ mov r2, #0x28
+ str r2, [sp]
+ mov r1, #8
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x18
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_022239D4:
+ mov r1, #0x4f
+ mvn r1, r1
+ str r1, [sp]
+ mov r1, #8
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x18
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_022239EE:
+ mov r1, #0x50
+ str r1, [sp]
+ mov r1, #8
+ str r1, [sp, #4]
+ mov r1, #0
+ add r2, r1, #0
+ add r0, #0x18
+ sub r2, #0x50
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223A08:
+ mov r1, #0x4f
+ mvn r1, r1
+ str r1, [sp]
+ mov r1, #8
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x18
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223A22:
+ mov r2, #0x50
+ str r2, [sp]
+ mov r1, #8
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x18
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223A38:
+ mov r2, #0x27
+ mvn r2, r2
+ str r2, [sp]
+ mov r1, #8
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x18
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223A50:
+ bl ErrorHandling
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02223A58
+MOD08_02223A58: ; 0x02223A58
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bls _02223A68
+ b _02223B7C
+_02223A68:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02223A74: ; jump table
+ .short _02223A7E - _02223A74 - 2 ; case 0
+ .short _02223A9A - _02223A74 - 2 ; case 1
+ .short _02223B1C - _02223A74 - 2 ; case 2
+ .short _02223B52 - _02223A74 - 2 ; case 3
+ .short _02223B64 - _02223A74 - 2 ; case 4
+_02223A7E:
+ ldr r0, [r4, #0x6c]
+ add r0, r0, #1
+ str r0, [r4, #0x6c]
+ cmp r0, #4
+ ble _02223B7C
+ add r0, r4, #0
+ bl MOD08_0222399C
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ b _02223B7C
+_02223A9A:
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02223ABA
+ mov r2, #0x64
+ mov r3, #0x66
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0x14]
+ add r0, #0x18
+ bl MOD08_02217C94
+ b _02223B7C
+_02223ABA:
+ ldr r0, [r4, #0x68]
+ add r0, r0, #1
+ str r0, [r4, #0x68]
+ cmp r0, #6
+ bge _02223AEA
+ mov r0, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x64
+ ldrsh r1, [r4, r0]
+ mov r0, #0x18
+ ldrsh r0, [r4, r0]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x64
+ strh r1, [r0]
+ mov r0, #0x66
+ ldrsh r1, [r4, r0]
+ mov r0, #0x1a
+ ldrsh r0, [r4, r0]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x66
+ strh r1, [r0]
+ b _02223B7C
+_02223AEA:
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C90C
+ mov r1, #0x10
+ add r0, r4, #0
+ mov r2, #0
+ str r1, [sp]
+ add r0, #0x3c
+ add r3, r2, #0
+ str r1, [sp, #4]
+ bl MOD08_022186D4
+ ldr r0, _02223B88 ; =0x00007FFF
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x10]
+ mov r2, #0xa
+ add r3, r1, #0
+ bl FUN_02007E68
+ b _02223B7C
+_02223B1C:
+ add r0, r4, #0
+ add r0, #0x3c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02223B30
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200C644
+_02223B30:
+ ldr r0, [r4, #0x10]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _02223B7C
+ ldr r0, [r4, #0xc]
+ mov r2, #0
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, _02223B88 ; =0x00007FFF
+ mov r1, #0xa
+ str r0, [sp]
+ ldr r0, [r4, #0x10]
+ add r3, r2, #0
+ bl FUN_02007E68
+ b _02223B7C
+_02223B52:
+ ldr r0, [r4, #0x10]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _02223B7C
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02223B7C
+_02223B64:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02223B7C:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_02223B88: .word 0x00007FFF
+
+ thumb_func_start MOD08_02223B8C
+MOD08_02223B8C: ; 0x02223B8C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r1, #0x70
+ add r5, r0, #0
+ str r2, [sp]
+ add r6, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ ldr r0, [sp]
+ str r7, [r4, #4]
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ str r6, [r4, #0x14]
+ add r0, r6, #0
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C6B0
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x14]
+ add r1, #0x64
+ add r2, #0x66
+ bl FUN_0200C7A0
+ ldr r0, [r4]
+ ldr r1, _02223BE4 ; =MOD08_02223A58
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02223BE4: .word MOD08_02223A58
+
+ thumb_func_start MOD08_02223BE8
+MOD08_02223BE8: ; 0x02223BE8
+ push {r3, lr}
+ sub sp, #8
+ ldr r1, [r0, #0x50]
+ cmp r1, #3
+ bhi _02223C6A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02223BFE: ; jump table
+ .short _02223C06 - _02223BFE - 2 ; case 0
+ .short _02223C1C - _02223BFE - 2 ; case 1
+ .short _02223C36 - _02223BFE - 2 ; case 2
+ .short _02223C50 - _02223BFE - 2 ; case 3
+_02223C06:
+ mov r2, #0x50
+ str r2, [sp]
+ mov r1, #4
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x28
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223C1C:
+ mov r1, #0x4f
+ mvn r1, r1
+ str r1, [sp]
+ mov r1, #4
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x28
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223C36:
+ mov r1, #0x50
+ str r1, [sp]
+ mov r1, #4
+ str r1, [sp, #4]
+ mov r1, #0
+ add r2, r1, #0
+ add r0, #0x28
+ sub r2, #0x50
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223C50:
+ mov r1, #0x27
+ mvn r1, r1
+ str r1, [sp]
+ mov r1, #4
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x28
+ mov r2, #0x28
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223C6A:
+ bl ErrorHandling
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02223C74
+MOD08_02223C74: ; 0x02223C74
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #6
+ bhi _02223D7E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02223C8E: ; jump table
+ .short _02223C9C - _02223C8E - 2 ; case 0
+ .short _02223CB8 - _02223C8E - 2 ; case 1
+ .short _02223D24 - _02223C8E - 2 ; case 2
+ .short _02223D80 - _02223C8E - 2 ; case 3
+ .short _02223DE2 - _02223C8E - 2 ; case 4
+ .short _02223E02 - _02223C8E - 2 ; case 5
+ .short _02223E30 - _02223C8E - 2 ; case 6
+_02223C9C:
+ ldr r0, [r4, #0x54]
+ add r0, r0, #1
+ str r0, [r4, #0x54]
+ cmp r0, #1
+ ble _02223D7E
+ add r0, r4, #0
+ bl MOD08_02223BE8
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [r4, #0x54]
+ b _02223E48
+_02223CB8:
+ add r0, r4, #0
+ add r0, #0x28
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02223CD8
+ mov r2, #0x4c
+ mov r3, #0x4e
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0x24]
+ add r0, #0x28
+ bl MOD08_02217C94
+ b _02223E48
+_02223CD8:
+ ldr r0, [r4, #0x50]
+ add r0, r0, #1
+ str r0, [r4, #0x50]
+ cmp r0, #4
+ bge _02223D08
+ mov r0, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x4c
+ ldrsh r1, [r4, r0]
+ mov r0, #0x28
+ ldrsh r0, [r4, r0]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x4c
+ strh r1, [r0]
+ mov r0, #0x4e
+ ldrsh r1, [r4, r0]
+ mov r0, #0x2a
+ ldrsh r0, [r4, r0]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x4e
+ strh r1, [r0]
+ b _02223E48
+_02223D08:
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #8
+ str r0, [r4, #0x54]
+ ldr r0, [r4, #0x24]
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200C5E0
+ b _02223E48
+_02223D24:
+ ldr r0, [r4, #0x54]
+ sub r0, r0, #1
+ str r0, [r4, #0x54]
+ bpl _02223D7E
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD08_02215504
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _02223E54 ; =0x0000FFFF
+ mov r1, #1
+ lsl r2, r2, #0x10
+ add r3, r1, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ sub r3, #9
+ bl FUN_02003210
+ ldr r7, _02223E54 ; =0x0000FFFF
+ mov r6, #0
+ add r5, r4, #0
+_02223D64:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _02223D76
+ mov r1, #0xe
+ mov r2, #0x10
+ mov r3, #0
+ str r7, [sp]
+ bl FUN_02007E68
+_02223D76:
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _02223D64
+_02223D7E:
+ b _02223E48
+_02223D80:
+ ldr r0, [r4]
+ bl MOD08_02215504
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02223E48
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD08_02215504
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _02223E54 ; =0x0000FFFF
+ mov r1, #1
+ lsl r2, r2, #0x10
+ add r3, r1, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ sub r3, #9
+ bl FUN_02003210
+ ldr r7, _02223E54 ; =0x0000FFFF
+ mov r6, #0
+ add r5, r4, #0
+_02223DC6:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _02223DD8
+ mov r2, #0
+ mov r1, #2
+ add r3, r2, #0
+ str r7, [sp]
+ bl FUN_02007E68
+_02223DD8:
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _02223DC6
+ b _02223E48
+_02223DE2:
+ ldr r0, [r4]
+ bl MOD08_02215504
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02223E48
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #4
+ str r0, [r4, #0x54]
+ str r0, [r4, #0x50]
+ mov r0, #0
+ str r0, [r4, #0x58]
+ b _02223E48
+_02223E02:
+ ldr r0, [r4, #0x54]
+ sub r0, r0, #1
+ str r0, [r4, #0x54]
+ bpl _02223E48
+ mov r0, #4
+ str r0, [r4, #0x54]
+ ldr r0, [r4, #0x50]
+ sub r0, r0, #1
+ str r0, [r4, #0x50]
+ bpl _02223E1E
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02223E48
+_02223E1E:
+ ldr r0, [r4, #0x24]
+ ldr r1, [r4, #0x58]
+ bl FUN_0200C644
+ ldr r1, [r4, #0x58]
+ mov r0, #1
+ eor r0, r1
+ str r0, [r4, #0x58]
+ b _02223E48
+_02223E30:
+ ldr r0, [r4, #0x24]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_02223E48:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02223E54: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02223E58
+MOD08_02223E58: ; 0x02223E58
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r1, #0
+ mov r1, #0x5c
+ add r5, r0, #0
+ str r2, [sp, #4]
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ ldr r0, [sp, #4]
+ str r6, [r4, #4]
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r6, #0
+ add r5, r4, #0
+_02223E88:
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD08_022154D4
+ str r0, [r5, #0x14]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _02223E88
+ str r7, [r4, #0x24]
+ add r0, r7, #0
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200C6B0
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x24]
+ add r1, #0x4c
+ add r2, #0x4e
+ bl FUN_0200C7A0
+ mov r1, #0x4c
+ ldrsh r2, [r4, r1]
+ add r0, r4, #0
+ add r0, #0x4c
+ sub r2, #0x28
+ strh r2, [r0]
+ mov r2, #0x4e
+ ldrsh r3, [r4, r2]
+ add r0, r4, #0
+ add r0, #0x4e
+ sub r3, #0x28
+ strh r3, [r0]
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ bl FUN_0200C714
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200C90C
+ mov r0, #0xf
+ mvn r0, r0
+ str r0, [r4, #0x54]
+ mov r0, #0x1a
+ str r0, [sp]
+ ldr r0, _02223F08 ; =0x04000050
+ mov r1, #0
+ mov r2, #0x3f
+ mov r3, #0x1f
+ bl G2x_SetBlendAlpha_
+ ldr r0, [r4]
+ ldr r1, _02223F0C ; =MOD08_02223C74
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02223F08: .word 0x04000050
+_02223F0C: .word MOD08_02223C74
+
+ thumb_func_start MOD08_02223F10
+MOD08_02223F10: ; 0x02223F10
+ push {r3, r4, r5, lr}
+ ldr r2, _02223F50 ; =0x00000AAA
+ add r4, r0, #0
+ add r5, r1, #0
+ add r0, #0x10
+ mov r1, #0
+ mov r3, #3
+ bl MOD08_02218030
+ cmp r5, #0
+ beq _02223F3C
+ mov r0, #0
+ ldr r1, [r4, #0x18]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #8]
+ mov r1, #0xa
+ mov r2, #0x10
+ bl FUN_02007558
+ b _02223F48
+_02223F3C:
+ mov r1, #0xa
+ add r2, r1, #0
+ ldr r0, [r4, #8]
+ sub r2, #0x1a
+ bl FUN_02007558
+_02223F48:
+ mov r0, #0
+ str r0, [r4, #0x4c]
+ str r0, [r4, #0x50]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02223F50: .word 0x00000AAA
+
+ thumb_func_start MOD08_02223F54
+MOD08_02223F54: ; 0x02223F54
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, [r4, #0x4c]
+ mov r5, #0
+ cmp r0, #3
+ bhi _0222405E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02223F6E: ; jump table
+ .short _02223F76 - _02223F6E - 2 ; case 0
+ .short _02223FB6 - _02223F6E - 2 ; case 1
+ .short _02224012 - _02223F6E - 2 ; case 2
+ .short _0222405C - _02223F6E - 2 ; case 3
+_02223F76:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218080
+ ldr r0, [r4, #8]
+ ldr r2, [r4, #0x10]
+ mov r1, #9
+ bl FUN_02007558
+ ldr r0, [r4, #0x50]
+ sub r0, r0, #1
+ str r0, [r4, #0x50]
+ bpl _0222405E
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ mov r0, #0xe
+ ldrsh r3, [r4, r0]
+ mov r0, #0xc
+ ldrsh r1, [r4, r0]
+ add r0, r3, #2
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #2
+ add r4, #0x24
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD08_02217E80
+ b _0222405E
+_02223FB6:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218080
+ cmp r0, #0
+ beq _02223FCC
+ ldr r0, [r4, #8]
+ ldr r2, [r4, #0x10]
+ mov r1, #9
+ bl FUN_02007558
+_02223FCC:
+ add r0, r4, #0
+ ldr r1, [r4, #8]
+ add r0, #0x24
+ bl MOD08_02217F2C
+ cmp r0, #0
+ bne _0222405E
+ ldr r0, [r4, #0x4c]
+ mov r2, #0
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ ldr r1, [r4, #0x10]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ add r0, #0x10
+ asr r1, r1, #0x10
+ mov r3, #3
+ bl MOD08_02218030
+ mov r0, #0xe
+ ldrsh r3, [r4, r0]
+ mov r0, #0xc
+ ldrsh r1, [r4, r0]
+ mov r0, #2
+ add r4, #0x24
+ str r3, [sp]
+ add r3, r3, #2
+ lsl r3, r3, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r1, #0
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ b _0222405E
+_02224012:
+ add r0, r4, #0
+ ldr r1, [r4, #8]
+ add r0, #0x24
+ bl MOD08_02217F2C
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218080
+ cmp r0, #0
+ ldr r0, [r4, #8]
+ beq _02224034
+ ldr r2, [r4, #0x10]
+ mov r1, #9
+ bl FUN_02007558
+ b _0222405E
+_02224034:
+ mov r2, #0xc
+ ldrsh r2, [r4, r2]
+ add r1, r5, #0
+ bl FUN_02007558
+ mov r2, #0xe
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ mov r1, #9
+ add r2, r5, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222405E
+_0222405C:
+ mov r5, #1
+_0222405E:
+ add r0, r5, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02224064
+MOD08_02224064: ; 0x02224064
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _02224076
+ cmp r0, #1
+ beq _022240A8
+ pop {r4, pc}
+_02224076:
+ add r0, r4, #0
+ bl MOD08_02223F54
+ cmp r0, #0
+ beq _022240B6
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+ cmp r0, #4
+ bge _022240A0
+ ldr r1, [r4, #0x54]
+ mov r0, #1
+ eor r1, r0
+ add r0, r4, #0
+ str r1, [r4, #0x54]
+ bl MOD08_02223F10
+ add r0, r4, #0
+ bl MOD08_02223F54
+ pop {r4, pc}
+_022240A0:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_022240A8:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_022240B6:
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022240B8
+MOD08_022240B8: ; 0x022240B8
+ push {r4, r5, r6, lr}
+ mov r1, #0x58
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02217C1C
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ bne _02224104
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ b _02224124
+_02224104:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_0200782C
+_02224124:
+ strh r0, [r4, #0xe]
+ ldr r0, [r4, #8]
+ mov r1, #0xb
+ mov r2, #0x32
+ bl FUN_02007558
+ cmp r6, #1
+ bne _02224138
+ mov r0, #0
+ b _0222413A
+_02224138:
+ mov r0, #1
+_0222413A:
+ str r0, [r4, #0x54]
+ ldr r1, [r4, #0x54]
+ add r0, r4, #0
+ bl MOD08_02223F10
+ ldr r0, [r4, #4]
+ ldr r1, _02224150 ; =MOD08_02224064
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02224150: .word MOD08_02224064
+
+ thumb_func_start MOD08_02224154
+MOD08_02224154: ; 0x02224154
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x38]
+ mov r5, #0
+ cmp r0, #3
+ bhi _02224210
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222416C: ; jump table
+ .short _02224174 - _0222416C - 2 ; case 0
+ .short _022241A4 - _0222416C - 2 ; case 1
+ .short _022241C6 - _0222416C - 2 ; case 2
+ .short _022241F6 - _0222416C - 2 ; case 3
+_02224174:
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_02218380
+ cmp r0, #0
+ beq _0222419C
+ add r0, r5, #0
+ str r0, [sp]
+ ldr r1, [r4, #0x3c]
+ ldr r2, [r4, #0x40]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_022182DC
+ b _02224210
+_0222419C:
+ ldr r0, [r4, #0x38]
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ b _02224210
+_022241A4:
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bpl _02224210
+ ldr r0, [r4, #0x38]
+ mov r2, #0xa
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ mov r0, #8
+ add r4, #0x10
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0xf
+ add r3, r2, #0
+ bl MOD08_02218120
+ b _02224210
+_022241C6:
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_02218380
+ cmp r0, #0
+ beq _022241EE
+ add r0, r5, #0
+ str r0, [sp]
+ ldr r1, [r4, #0x3c]
+ ldr r2, [r4, #0x40]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_022182DC
+ b _02224210
+_022241EE:
+ ldr r0, [r4, #0x38]
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ b _02224210
+_022241F6:
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #0xc]
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0xc]
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r5, #1
+_02224210:
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02224214
+MOD08_02224214: ; 0x02224214
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _0222422A
+ cmp r0, #1
+ beq _02224240
+ cmp r0, #2
+ beq _02224250
+ pop {r4, pc}
+_0222422A:
+ add r0, r4, #0
+ bl MOD08_02224154
+ cmp r0, #0
+ beq _0222425E
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0x10
+ str r0, [r4, #8]
+ pop {r4, pc}
+_02224240:
+ ldr r0, [r4, #8]
+ sub r0, r0, #1
+ str r0, [r4, #8]
+ bpl _0222425E
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, pc}
+_02224250:
+ ldr r0, [r4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0222425E:
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02224260
+MOD08_02224260: ; 0x02224260
+ push {r3, r4, r5, lr}
+ mov r1, #0x44
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0x10
+ add r2, r1, #0
+ mov r3, #0xf
+ bl MOD08_02218120
+ mov r0, #4
+ str r0, [r4, #0x34]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+ str r0, [r4, #0x40]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ str r0, [r4, #0x3c]
+ ldr r0, [r4]
+ ldr r1, _022242BC ; =MOD08_02224214
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_022242BC: .word MOD08_02224214
+
+ thumb_func_start MOD08_022242C0
+MOD08_022242C0: ; 0x022242C0
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5, #0x74]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r4, r0, #0
+ ldr r0, [r5, #0x78]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r0, [r5, #0x70]
+ mov r1, #0x64
+ bl _s32_div_f
+ str r0, [sp]
+ add r0, r5, #0
+ lsl r1, r4, #0x10
+ lsl r3, r6, #0x10
+ add r0, #0x18
+ asr r1, r1, #0x10
+ mov r2, #0xa
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ ldr r0, [r5]
+ mov r1, #0x10
+ mov r2, #0
+ bl MOD08_02227994
+ ldr r0, [r5, #0x70]
+ mov r1, #0x64
+ bl _s32_div_f
+ mov r1, #6
+ str r1, [sp]
+ lsl r0, r0, #1
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0x3c
+ mov r1, #0x10
+ mov r2, #0xa
+ mov r3, #0
+ bl MOD08_022186D4
+ mov r0, #0
+ str r0, [r5, #0x64]
+ str r0, [r5, #0x68]
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02224328
+MOD08_02224328: ; 0x02224328
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x64]
+ mov r5, #0
+ cmp r0, #3
+ bhi _022243FC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02224340: ; jump table
+ .short _02224348 - _02224340 - 2 ; case 0
+ .short _0222438E - _02224340 - 2 ; case 1
+ .short _022243E4 - _02224340 - 2 ; case 2
+ .short _022243FA - _02224340 - 2 ; case 3
+_02224348:
+ add r0, r4, #0
+ ldr r1, [r4, #0x14]
+ add r0, #0x18
+ bl MOD08_02218360
+ cmp r0, #0
+ bne _022243FC
+ ldr r0, [r4, #0x78]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r0, [r4, #0x74]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r7, r0, #0
+ ldr r0, [r4, #0x70]
+ mov r1, #0x64
+ bl _s32_div_f
+ str r0, [sp]
+ add r0, r4, #0
+ lsl r1, r6, #0x10
+ lsl r3, r7, #0x10
+ add r0, #0x18
+ asr r1, r1, #0x10
+ mov r2, #0xa
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ ldr r0, [r4, #0x64]
+ add r0, r0, #1
+ str r0, [r4, #0x64]
+ b _022243FC
+_0222438E:
+ add r0, r4, #0
+ ldr r1, [r4, #0x14]
+ add r0, #0x18
+ bl MOD08_02218360
+ cmp r0, #0
+ bne _022243FC
+ ldr r0, [r4, #0x68]
+ add r0, r0, #1
+ str r0, [r4, #0x68]
+ cmp r0, #2
+ bge _022243DC
+ add r0, r5, #0
+ str r0, [r4, #0x64]
+ ldr r0, [r4, #0x74]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r0, [r4, #0x78]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r7, r0, #0
+ ldr r0, [r4, #0x70]
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r1, r6, #0x10
+ lsl r3, r7, #0x10
+ add r4, #0x18
+ str r0, [sp]
+ add r0, r4, #0
+ asr r1, r1, #0x10
+ mov r2, #0xa
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ b _022243FC
+_022243DC:
+ ldr r0, [r4, #0x64]
+ add r0, r0, #1
+ str r0, [r4, #0x64]
+ b _022243FC
+_022243E4:
+ add r0, r4, #0
+ add r0, #0x3c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _022243FC
+ ldr r0, [r4, #0x64]
+ mov r5, #1
+ add r0, r0, #1
+ str r0, [r4, #0x64]
+ b _022243FC
+_022243FA:
+ mov r5, #1
+_022243FC:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02224400
+MOD08_02224400: ; 0x02224400
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r1, [r5, #0x7c]
+ mov r4, #0
+ cmp r1, #0
+ beq _02224416
+ cmp r1, #1
+ beq _02224428
+ cmp r1, #2
+ beq _02224472
+ b _02224474
+_02224416:
+ bl MOD08_022242C0
+ add r0, r5, #0
+ bl MOD08_02224328
+ ldr r0, [r5, #0x7c]
+ add r0, r0, #1
+ str r0, [r5, #0x7c]
+ b _02224474
+_02224428:
+ bl MOD08_02224328
+ cmp r0, #0
+ beq _02224474
+ ldr r0, [r5, #0x6c]
+ sub r0, r0, #1
+ str r0, [r5, #0x6c]
+ bmi _02224468
+ ldr r0, [r5, #0x70]
+ mov r1, #3
+ bl _s32_div_f
+ ldr r1, [r5, #0x70]
+ sub r0, r1, r0
+ str r0, [r5, #0x70]
+ ldr r0, [r5, #0x74]
+ mov r1, #3
+ bl _s32_div_f
+ ldr r1, [r5, #0x74]
+ sub r0, r1, r0
+ str r0, [r5, #0x74]
+ ldr r0, [r5, #0x78]
+ mov r1, #3
+ bl _s32_div_f
+ ldr r1, [r5, #0x78]
+ sub r0, r1, r0
+ str r0, [r5, #0x78]
+ add r0, r4, #0
+ str r0, [r5, #0x7c]
+ b _02224474
+_02224468:
+ ldr r0, [r5, #0x7c]
+ mov r4, #1
+ add r0, r0, #1
+ str r0, [r5, #0x7c]
+ b _02224474
+_02224472:
+ mov r4, #1
+_02224474:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02224478
+MOD08_02224478: ; 0x02224478
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bls _02224488
+ b _022245A8
+_02224488:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02224494: ; jump table
+ .short _0222449E - _02224494 - 2 ; case 0
+ .short _022244E4 - _02224494 - 2 ; case 1
+ .short _02224544 - _02224494 - 2 ; case 2
+ .short _02224574 - _02224494 - 2 ; case 3
+ .short _02224590 - _02224494 - 2 ; case 4
+_0222449E:
+ add r0, r4, #0
+ bl MOD08_02224400
+ cmp r0, #0
+ beq _022245A8
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x1e
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C5E0
+ mov r1, #0xfe
+ lsl r1, r1, #0x16
+ ldr r0, [r4, #0x14]
+ add r2, r1, #0
+ bl FUN_0200C884
+ mov r1, #0
+ mov r2, #0x10
+ str r1, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x3c
+ add r3, r2, #0
+ bl MOD08_022186D4
+ b _022245A8
+_022244E4:
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ bne _02224502
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #8
+ mov r1, #0x10
+ mov r2, #0
+ mov r3, #0xd
+ bl FUN_0200A208
+ mov r0, #0
+ mvn r0, r0
+ str r0, [r4, #0x10]
+ b _02224508
+_02224502:
+ ble _02224508
+ sub r0, r0, #1
+ str r0, [r4, #0x10]
+_02224508:
+ mov r0, #0
+ ldr r1, [r4, #0x10]
+ mvn r0, r0
+ cmp r1, r0
+ bne _02224532
+ mov r0, #1
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _02224532
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #8
+ mov r1, #0
+ mov r2, #0x10
+ mov r3, #0xd
+ bl FUN_0200A208
+ mov r0, #1
+ mvn r0, r0
+ str r0, [r4, #0x10]
+_02224532:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C608
+ cmp r0, #0
+ bne _022245A8
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _022245A8
+_02224544:
+ mov r0, #1
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _022245A8
+ ldr r0, [r4, #0xc]
+ mov r1, #0x10
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ mov r2, #0
+ bl MOD08_02227994
+ mov r1, #0x10
+ mov r2, #0
+ str r1, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x3c
+ add r3, r2, #0
+ bl MOD08_022186D4
+ b _022245A8
+_02224574:
+ add r0, r4, #0
+ add r0, #0x3c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _022245A8
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _022245A8
+_02224590:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_022245A8:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022245B4
+MOD08_022245B4: ; 0x022245B4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r1, #0x80
+ add r6, r0, #0
+ str r2, [sp]
+ add r5, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r6, [r4]
+ ldr r0, [sp]
+ str r7, [r4, #4]
+ str r0, [r4, #8]
+ str r5, [r4, #0x14]
+ add r0, r5, #0
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x14]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x14]
+ mov r1, #4
+ bl FUN_0200C61C
+ mov r0, #3
+ str r0, [r4, #0x6c]
+ mov r0, #0x19
+ lsl r0, r0, #4
+ str r0, [r4, #0x70]
+ ldr r0, _02224618 ; =0x000005DC
+ ldr r1, _0222461C ; =MOD08_02224478
+ str r0, [r4, #0x74]
+ mov r0, #0xfa
+ lsl r0, r0, #2
+ str r0, [r4, #0x78]
+ ldr r0, [r4]
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02224618: .word 0x000005DC
+_0222461C: .word MOD08_02224478
+
+ thumb_func_start MOD08_02224620
+MOD08_02224620: ; 0x02224620
+ push {r3, lr}
+ sub sp, #8
+ ldr r1, [r0, #0x34]
+ cmp r1, #3
+ bhi _02224668
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02224636: ; jump table
+ .short _0222463E - _02224636 - 2 ; case 0
+ .short _02224656 - _02224636 - 2 ; case 1
+ .short _0222463E - _02224636 - 2 ; case 2
+ .short _02224656 - _02224636 - 2 ; case 3
+_0222463E:
+ mov r1, #0x20
+ str r1, [sp]
+ mov r1, #6
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x10
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02224656:
+ mov r1, #0
+ str r1, [sp]
+ mov r2, #6
+ str r2, [sp, #4]
+ add r0, #0x10
+ add r2, r1, #0
+ mov r3, #0x20
+ bl MOD08_02217E80
+_02224668:
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD08_0222466C
+MOD08_0222466C: ; 0x0222466C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _02224682
+ cmp r0, #1
+ beq _02224690
+ cmp r0, #2
+ beq _022246C8
+ pop {r4, pc}
+_02224682:
+ add r0, r4, #0
+ bl MOD08_02224620
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_02224690:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _022246B0
+ mov r2, #0xc
+ mov r3, #0xe
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #8]
+ add r0, #0x10
+ bl MOD08_02217CD0
+ pop {r4, pc}
+_022246B0:
+ ldr r0, [r4, #0x34]
+ add r0, r0, #1
+ str r0, [r4, #0x34]
+ cmp r0, #4
+ bge _022246C0
+ mov r0, #0
+ str r0, [r4]
+ pop {r4, pc}
+_022246C0:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_022246C8:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022246D8
+MOD08_022246D8: ; 0x022246D8
+ push {r3, r4, r5, lr}
+ mov r1, #0x38
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0xe]
+ mov r0, #0
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #4]
+ ldr r1, _02224718 ; =MOD08_0222466C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02224718: .word MOD08_0222466C
+
+ thumb_func_start MOD08_0222471C
+MOD08_0222471C: ; 0x0222471C
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4]
+ cmp r0, #6
+ bhi _0222477E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02224736: ; jump table
+ .short _02224744 - _02224736 - 2 ; case 0
+ .short _02224762 - _02224736 - 2 ; case 1
+ .short _022247DA - _02224736 - 2 ; case 2
+ .short _0222481E - _02224736 - 2 ; case 3
+ .short _0222485C - _02224736 - 2 ; case 4
+ .short _022248A4 - _02224736 - 2 ; case 5
+ .short _022248D4 - _02224736 - 2 ; case 6
+_02224744:
+ add r0, r4, #0
+ add r0, #0x14
+ mov r1, #1
+ mov r2, #0x40
+ bl MOD08_02218654
+ ldr r1, [r4, #0x20]
+ ldr r0, [r4, #8]
+ add sp, #8
+ mul r0, r1
+ str r0, [r4, #0x20]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_02224762:
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ mov r1, #0x10
+ add r0, r4, #0
+ add r2, #8
+ lsl r2, r2, #0x10
+ ldrsh r1, [r4, r1]
+ ldr r3, [r4, #0xc]
+ add r0, #0x14
+ asr r2, r2, #0x10
+ bl MOD08_02217E58
+ cmp r0, #0
+ beq _02224780
+_0222477E:
+ b _022248E2
+_02224780:
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_02007558
+ mov r0, #0x10
+ ldrsh r1, [r4, r0]
+ mov r3, #0
+ mov r0, #2
+ add r2, r1, #0
+ str r3, [sp]
+ add r2, #0x20
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r2, r2, #0x10
+ add r0, #0x14
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ ldr r1, [r4, #0x1c]
+ ldr r0, [r4, #8]
+ mul r0, r1
+ str r0, [r4, #0x1c]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02217ECC
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_022247DA:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _022247F6
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_022247F6:
+ mov r0, #0x3c
+ ldrsh r1, [r4, r0]
+ mov r3, #0
+ mov r0, #2
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r2, [r4, #8]
+ add r0, r4, #0
+ lsl r2, r2, #5
+ add r2, r1, r2
+ lsl r2, r2, #0x10
+ add r0, #0x40
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ ldr r0, [r4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_0222481E:
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _0222483A
+ mov r2, #0x40
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_0222483A:
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r1, #0x14
+ mov r2, #0x10
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ add r0, #0x14
+ bl MOD08_02217E80
+ ldr r0, [r4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_0222485C:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02217ECC
+ cmp r0, #0
+ ldr r0, [r4, #0xc]
+ beq _02224878
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_02224878:
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ mov r1, #0
+ bl FUN_02007558
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r1, #0x40
+ mov r2, #0x3c
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ add r0, #0x40
+ bl MOD08_02217E80
+ ldr r0, [r4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_022248A4:
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02217ECC
+ cmp r0, #0
+ ldr r0, [r4, #0x38]
+ beq _022248C0
+ mov r2, #0x40
+ ldrsh r2, [r4, r2]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_022248C0:
+ mov r2, #0x3c
+ ldrsh r2, [r4, r2]
+ mov r1, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_022248D4:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_022248E2:
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022248E8
+MOD08_022248E8: ; 0x022248E8
+ push {r3, r4, r5, lr}
+ mov r1, #0x64
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02217C1C
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x12]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x38]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x3c]
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x3e]
+ ldr r0, [r4, #4]
+ ldr r1, _02224958 ; =MOD08_0222471C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_02224958: .word MOD08_0222471C
+
+ thumb_func_start MOD08_0222495C
+MOD08_0222495C: ; 0x0222495C
+ push {lr}
+ sub sp, #0xc
+ mov r1, #0
+ str r1, [r0, #0x40]
+ mov r1, #8
+ str r1, [sp]
+ mov r1, #0xa
+ str r1, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ add r0, #0x1c
+ mov r2, #9
+ add r3, r1, #0
+ bl MOD08_022181A8
+ add sp, #0xc
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02224980
+MOD08_02224980: ; 0x02224980
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #0x40]
+ mov r5, #0
+ cmp r0, #3
+ bhi _02224A72
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222499A: ; jump table
+ .short _022249A2 - _0222499A - 2 ; case 0
+ .short _022249E8 - _0222499A - 2 ; case 1
+ .short _02224A2A - _0222499A - 2 ; case 2
+ .short _02224A70 - _0222499A - 2 ; case 3
+_022249A2:
+ add r0, r4, #0
+ ldr r1, [r4, #0x18]
+ add r0, #0x1c
+ bl MOD08_022183A0
+ cmp r0, #0
+ beq _022249C6
+ add r0, r5, #0
+ str r0, [sp]
+ mov r1, #0x44
+ mov r2, #0x46
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ ldr r3, [r4, #0x30]
+ bl MOD08_022182DC
+ b _02224A72
+_022249C6:
+ ldr r0, [r4, #0x40]
+ mov r1, #9
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ mov r0, #0xf
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #2
+ add r4, #0x1c
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r2, #0xb
+ mov r3, #8
+ bl MOD08_022181A8
+ b _02224A72
+_022249E8:
+ add r0, r4, #0
+ ldr r1, [r4, #0x18]
+ add r0, #0x1c
+ bl MOD08_022183A0
+ cmp r0, #0
+ beq _02224A0C
+ add r0, r5, #0
+ str r0, [sp]
+ mov r1, #0x44
+ mov r2, #0x46
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ ldr r3, [r4, #0x30]
+ bl MOD08_022182DC
+ b _02224A72
+_02224A0C:
+ ldr r0, [r4, #0x40]
+ mov r2, #0xa
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ str r2, [sp]
+ str r2, [sp, #4]
+ mov r0, #2
+ add r4, #0x1c
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xb
+ mov r3, #0xf
+ bl MOD08_022181A8
+ b _02224A72
+_02224A2A:
+ add r0, r4, #0
+ ldr r1, [r4, #0x18]
+ add r0, #0x1c
+ bl MOD08_022183A0
+ cmp r0, #0
+ beq _02224A4E
+ add r0, r5, #0
+ str r0, [sp]
+ mov r1, #0x44
+ mov r2, #0x46
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ ldr r3, [r4, #0x30]
+ bl MOD08_022182DC
+ b _02224A72
+_02224A4E:
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #0x18]
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0x18]
+ add r2, #0xf3
+ bl FUN_02007558
+ ldr r0, [r4, #0x40]
+ mov r5, #1
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ b _02224A72
+_02224A70:
+ mov r5, #1
+_02224A72:
+ add r0, r5, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_02224A78
+MOD08_02224A78: ; 0x02224A78
+ push {r3, r4, r5, lr}
+ add r4, r2, #0
+ mov r2, #0
+ str r2, [r1]
+ add r5, r0, #0
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C6B0
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C644
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C5E0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200C5F4
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200C5C0
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200C61C
+ mov r1, #0x37
+ add r0, r5, #0
+ lsl r1, r1, #0xc
+ bl FUN_0200C5B4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02224AC4
+MOD08_02224AC4: ; 0x02224AC4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ mov r4, #0
+ cmp r1, #0
+ beq _02224AD6
+ cmp r1, #1
+ beq _02224AE8
+ b _02224AEC
+_02224AD6:
+ bl FUN_0200C608
+ cmp r0, #0
+ bne _02224AEE
+ ldr r0, [r5]
+ mov r4, #1
+ add r0, r0, #1
+ str r0, [r5]
+ b _02224AEE
+_02224AE8:
+ mov r4, #1
+ b _02224AEE
+_02224AEC:
+ mov r4, #1
+_02224AEE:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02224AF4
+MOD08_02224AF4: ; 0x02224AF4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #5
+ bls _02224B02
+ b _02224C14
+_02224B02:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02224B0E: ; jump table
+ .short _02224B1A - _02224B0E - 2 ; case 0
+ .short _02224B3E - _02224B0E - 2 ; case 1
+ .short _02224B76 - _02224B0E - 2 ; case 2
+ .short _02224BA6 - _02224B0E - 2 ; case 3
+ .short _02224BCC - _02224B0E - 2 ; case 4
+ .short _02224BF2 - _02224B0E - 2 ; case 5
+_02224B1A:
+ add r0, r4, #0
+ bl MOD08_0222495C
+ ldr r0, [r4, #0x10]
+ add r1, r4, #0
+ lsl r2, r0, #2
+ add r0, r4, r2
+ add r1, #0x60
+ add r1, r1, r2
+ mov r2, #2
+ ldr r0, [r0, #0x48]
+ lsl r2, r2, #0xc
+ bl MOD08_02224A78
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224C14
+_02224B3E:
+ add r0, r4, #0
+ bl MOD08_02224980
+ add r5, r0, #0
+ ldr r0, [r4, #0x10]
+ add r1, r4, #0
+ lsl r2, r0, #2
+ add r0, r4, r2
+ add r1, #0x60
+ ldr r0, [r0, #0x48]
+ add r1, r1, r2
+ bl MOD08_02224AC4
+ cmp r5, r0
+ bne _02224C14
+ cmp r5, #1
+ bne _02224C14
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x48]
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224C14
+_02224B76:
+ ldr r0, [r4, #0x10]
+ add r2, r4, #0
+ add r2, #0x78
+ lsl r1, r0, #2
+ ldr r0, [r2, r1]
+ sub r0, r0, #1
+ str r0, [r2, r1]
+ ldr r1, [r4, #0x10]
+ lsl r0, r1, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x78]
+ cmp r0, #0
+ bge _02224C14
+ add r0, r1, #1
+ str r0, [r4, #0x10]
+ cmp r0, #6
+ bge _02224B9E
+ mov r0, #0
+ str r0, [r4, #0xc]
+ b _02224C14
+_02224B9E:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224C14
+_02224BA6:
+ add r6, r4, #0
+ mov r7, #0
+ add r6, #0x60
+ add r5, r4, #0
+_02224BAE:
+ mov r2, #2
+ ldr r0, [r5, #0x48]
+ add r1, r6, #0
+ lsl r2, r2, #0xc
+ bl MOD08_02224A78
+ add r7, r7, #1
+ add r6, r6, #4
+ add r5, r5, #4
+ cmp r7, #6
+ blt _02224BAE
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224C14
+_02224BCC:
+ add r6, r4, #0
+ mov r7, #0
+ add r6, #0x60
+ add r5, r4, #0
+_02224BD4:
+ ldr r0, [r5, #0x48]
+ add r1, r6, #0
+ bl MOD08_02224AC4
+ add r7, r7, #1
+ add r6, r6, #4
+ add r5, r5, #4
+ cmp r7, #6
+ blt _02224BD4
+ cmp r0, #1
+ bne _02224C14
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224C14
+_02224BF2:
+ mov r6, #0
+ add r5, r4, #0
+_02224BF6:
+ ldr r0, [r5, #0x48]
+ bl FUN_0200C3DC
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #6
+ blt _02224BF6
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_02224C14:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02224C1C
+MOD08_02224C1C: ; 0x02224C1C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x50
+ str r1, [sp]
+ mov r1, #0x90
+ add r4, r0, #0
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ bl MOD08_02228064
+ ldr r1, [sp]
+ str r4, [r0]
+ str r1, [r0, #4]
+ ldr r1, [sp, #4]
+ str r0, [sp, #0x14]
+ str r1, [r0, #8]
+ ldr r0, [r0]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ bl MOD08_022154D4
+ ldr r1, [sp, #0x14]
+ str r0, [r1, #0x18]
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ ldr r0, [sp, #0x14]
+ mov r1, #1
+ ldr r0, [r0, #0x18]
+ bl FUN_0200782C
+ ldr r1, [sp, #0x14]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r1, #0x44
+ str r0, [sp, #0xc]
+ strh r0, [r1]
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ bl MOD08_0221552C
+ ldr r1, [sp, #0x14]
+ add r1, #0x46
+ strh r0, [r1]
+ ldr r1, [sp, #0x14]
+ add r0, sp, #0x1c
+ ldr r1, [r1]
+ bl MOD08_02215474
+ ldr r5, [sp, #0x14]
+ mov r4, #0
+_02224C94:
+ cmp r4, #0
+ bne _02224C9C
+ ldr r0, [sp, #8]
+ b _02224CA6
+_02224C9C:
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ add r2, sp, #0x1c
+ bl FUN_0200C154
+_02224CA6:
+ str r0, [r5, #0x48]
+ ldr r0, [r5, #0x48]
+ mov r1, #0
+ bl FUN_0200C644
+ lsr r0, r4, #0x1f
+ add r0, r4, r0
+ asr r1, r0, #1
+ ldr r0, _02224D6C ; =0x00001555
+ mov r2, #3
+ mul r0, r1
+ asr r0, r0, #4
+ lsl r0, r0, #2
+ ldr r1, _02224D70 ; =0x020FFA38
+ str r0, [sp, #0x18]
+ add r1, r1, r0
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ lsl r2, r2, #0x10
+ mov r3, #0
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ ldr r0, _02224D74 ; =0x00000000
+ adc r1, r0
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ lsl r0, r1, #4
+ asr r6, r0, #0x10
+ mov r2, #3
+ ldr r1, _02224D70 ; =0x020FFA38
+ ldr r0, [sp, #0x18]
+ lsl r2, r2, #0x10
+ ldrsh r0, [r1, r0]
+ mov r3, #0
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ lsl r2, r2, #0xa
+ add r0, r0, r2
+ ldr r2, _02224D74 ; =0x00000000
+ adc r1, r2
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ lsl r0, r0, #4
+ asr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ lsr r2, r4, #0x1f
+ lsl r1, r4, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ bne _02224D2E
+ add r0, r7, r6
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [r5, #0x48]
+ mov r1, #1
+ bl FUN_0200C8D0
+ b _02224D34
+_02224D2E:
+ sub r0, r7, r6
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+_02224D34:
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ asr r2, r0, #0x10
+ ldr r0, [r5, #0x48]
+ add r1, r6, #0
+ bl FUN_0200C714
+ cmp r4, #2
+ bge _02224D4E
+ mov r0, #8
+ b _02224D50
+_02224D4E:
+ mov r0, #0
+_02224D50:
+ add r4, r4, #1
+ str r0, [r5, #0x78]
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02224C94
+ ldr r0, [sp, #0x14]
+ ldr r1, _02224D78 ; =MOD08_02224AF4
+ ldr r0, [r0]
+ ldr r2, [sp, #0x14]
+ bl MOD08_02212400
+ add sp, #0x50
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02224D6C: .word 0x00001555
+_02224D70: .word 0x020FFA38
+_02224D74: .word 0x00000000
+_02224D78: .word MOD08_02224AF4
+
+ thumb_func_start MOD08_02224D7C
+MOD08_02224D7C: ; 0x02224D7C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #5
+ bhi _02224DBC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02224D96: ; jump table
+ .short _02224DA2 - _02224D96 - 2 ; case 0
+ .short _02224DB2 - _02224D96 - 2 ; case 1
+ .short _02224E12 - _02224D96 - 2 ; case 2
+ .short _02224E6E - _02224D96 - 2 ; case 3
+ .short _02224E9E - _02224D96 - 2 ; case 4
+ .short _02224EC2 - _02224D96 - 2 ; case 5
+_02224DA2:
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224EDA
+_02224DB2:
+ ldr r0, [r4, #0x5c]
+ bl FUN_0200C608
+ cmp r0, #0
+ beq _02224DBE
+_02224DBC:
+ b _02224EDA
+_02224DBE:
+ ldr r0, [r4, #0x5c]
+ mov r1, #0
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0xc]
+ mov r1, #0xa
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x14
+ add r2, r1, #0
+ mov r3, #0
+ bl MOD08_02218120
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ add r5, r0, #0
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ add r3, r0, #0
+ mov r0, #0x8a
+ ldrsh r0, [r4, r0]
+ lsl r1, r5, #0x10
+ lsl r3, r3, #0x10
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r2, #0x88
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ add r0, #0x38
+ asr r1, r1, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ b _02224EDA
+_02224E12:
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x38
+ bl MOD08_02217F2C
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_02218380
+ cmp r0, #0
+ bne _02224EDA
+ ldr r0, [r4, #0x10]
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, #0xf3
+ bl FUN_02007558
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_0200C5C0
+ mov r1, #1
+ ldr r0, [r4, #0x5c]
+ lsl r1, r1, #0xc
+ bl FUN_0200C5F4
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224EDA
+_02224E6E:
+ ldr r0, [r4, #0x5c]
+ bl FUN_0200C608
+ cmp r0, #0
+ bne _02224EDA
+ ldr r0, [r4, #0x5c]
+ mov r1, #0
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ str r1, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r3, #0x8a
+ add r0, r4, #0
+ ldrsh r3, [r4, r3]
+ add r0, #0x60
+ add r2, r1, #0
+ bl MOD08_02217E80
+ b _02224EDA
+_02224E9E:
+ add r0, r4, #0
+ add r0, #0x60
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02224EBA
+ mov r1, #0x88
+ mov r2, #0x62
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x5c]
+ bl FUN_0200C714
+ b _02224EDA
+_02224EBA:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224EDA
+_02224EC2:
+ ldr r0, [r4, #0x5c]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02224EDA:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02224EE4
+MOD08_02224EE4: ; 0x02224EE4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r1, #0x8c
+ add r5, r0, #0
+ str r2, [sp]
+ add r6, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ ldr r0, [sp]
+ str r7, [r4, #4]
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #6
+ mov r2, #0
+ str r0, [r4, #0x10]
+ bl FUN_02007558
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r1, r4, #0
+ add r1, #0x88
+ strh r0, [r1]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r1, r4, #0
+ add r1, #0x8a
+ strh r0, [r1]
+ str r6, [r4, #0x5c]
+ add r0, r6, #0
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_0200C6B0
+ mov r1, #0x88
+ mov r2, #0x8a
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x5c]
+ bl FUN_0200C714
+ ldr r0, [r4]
+ ldr r1, _02224F70 ; =MOD08_02224D7C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02224F70: .word MOD08_02224D7C
+
+ thumb_func_start MOD08_02224F74
+MOD08_02224F74: ; 0x02224F74
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ add r0, r1, #0
+ bl MOD08_02217C08
+ mov r1, #1
+ add r2, r1, #0
+ lsl r2, r0
+ mov r0, #0
+ lsl r2, r2, #0x10
+ add r4, #0xc4
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r1, #2
+ lsr r2, r2, #0x10
+ mov r3, #8
+ bl FUN_02003A64
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02224FA0
+MOD08_02224FA0: ; 0x02224FA0
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r1, #0xa
+ mov r0, #0x14
+ str r0, [sp]
+ str r1, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x28
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD08_022181A8
+ mov r0, #4
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0x4c
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD08_02218120
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x94
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #6
+ add r0, #0x98
+ str r1, [r0]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ add r1, r0, #0
+ lsl r2, r1, #1
+ ldr r1, _0222503C ; =0x0222C664
+ ldr r0, [r4, #0x20]
+ ldrh r1, [r1, r2]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_0200C644
+ add r0, r4, #0
+ add r0, #0x28
+ add r1, sp, #0x10
+ add r2, sp, #0xc
+ bl MOD08_0221825C
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _02225024
+ ldr r1, [sp, #0x10]
+ mov r0, #0
+ bl _fsub
+ str r0, [sp, #0x10]
+_02225024:
+ ldr r0, [r4, #0x18]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ bl FUN_0200C884
+ ldr r1, [r4, #0x18]
+ add r0, r4, #0
+ bl MOD08_02224F74
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_0222503C: .word 0x0222C664
+
+ thumb_func_start MOD08_02225040
+MOD08_02225040: ; 0x02225040
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ mov r4, #0
+ cmp r0, #0
+ beq _0222505C
+ cmp r0, #1
+ beq _022250E4
+ cmp r0, #2
+ bne _0222505A
+ b _02225164
+_0222505A:
+ b _02225166
+_0222505C:
+ add r0, r5, #0
+ add r0, #0x28
+ bl MOD08_02218224
+ add r0, r5, #0
+ add r0, #0x28
+ add r1, sp, #0x10
+ add r2, sp, #0xc
+ bl MOD08_0221825C
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _02225084
+ ldr r1, [sp, #0x10]
+ add r0, r4, #0
+ bl _fsub
+ str r0, [sp, #0x10]
+_02225084:
+ ldr r0, [r5, #0x18]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ bl FUN_0200C884
+ mov r0, #0
+ str r0, [sp]
+ ldr r1, [r5, #0x14]
+ ldr r2, [r5, #0x10]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0x18]
+ ldr r3, [r5, #0x3c]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02218314
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x98
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ cmp r0, #0
+ bge _02225166
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ mov r3, #0x14
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x94
+ str r1, [r0]
+ str r3, [sp]
+ mov r1, #0xa
+ str r1, [sp, #4]
+ mov r0, #4
+ add r5, #0x28
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD08_022181A8
+ b _02225166
+_022250E4:
+ add r0, r5, #0
+ add r0, #0x28
+ bl MOD08_02218224
+ add r0, r5, #0
+ add r0, #0x4c
+ bl MOD08_02218170
+ cmp r0, #0
+ beq _02225142
+ mov r0, #0x4c
+ ldrsh r0, [r5, r0]
+ add r1, sp, #0x10
+ add r2, sp, #0xc
+ strh r0, [r5, #0x28]
+ add r0, r5, #0
+ add r0, #0x28
+ bl MOD08_0221825C
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _0222511E
+ ldr r1, [sp, #0x10]
+ add r0, r4, #0
+ bl _fsub
+ str r0, [sp, #0x10]
+_0222511E:
+ ldr r0, [r5, #0x18]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ bl FUN_0200C884
+ mov r0, #0
+ str r0, [sp]
+ ldr r1, [r5, #0x14]
+ ldr r2, [r5, #0x10]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0x18]
+ ldr r3, [r5, #0x3c]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02218314
+ b _02225166
+_02225142:
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x94
+ str r1, [r0]
+ ldr r0, [r5, #0x20]
+ add r1, r4, #0
+ bl FUN_0200C644
+ ldr r0, [r5, #0x18]
+ add r1, r4, #0
+ bl FUN_0200C644
+ mov r4, #1
+ b _02225166
+_02225164:
+ mov r4, #1
+_02225166:
+ add r0, r4, #0
+ add sp, #0x14
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_0222516C
+MOD08_0222516C: ; 0x0222516C
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ add r1, sp, #0xc
+ ldr r0, [r4, #0x1c]
+ add r1, #2
+ add r2, sp, #0xc
+ bl FUN_0200C7A0
+ add r1, sp, #0xc
+ mov r0, #0
+ ldrsh r3, [r1, r0]
+ mov r0, #2
+ ldrsh r1, [r1, r0]
+ mov r0, #8
+ str r3, [sp]
+ sub r3, #0x40
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r3, r3, #0x10
+ add r0, #0x70
+ add r2, r1, #0
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ mov r2, #0xa
+ str r2, [sp]
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x28
+ mov r1, #2
+ mov r3, #0x14
+ bl MOD08_022181A8
+ add r0, r4, #0
+ add r0, #0x28
+ add r1, sp, #0x14
+ add r2, sp, #0x10
+ bl MOD08_0221825C
+ add r0, r4, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _022251D4
+ ldr r1, [sp, #0x14]
+ mov r0, #0
+ bl _fsub
+ str r0, [sp, #0x14]
+_022251D4:
+ ldr r0, [r4, #0x1c]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ bl FUN_0200C884
+ add r0, r4, #0
+ ldr r1, [r4, #0x1c]
+ add r0, #0x70
+ bl MOD08_02217F08
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x94
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #6
+ add r0, #0x98
+ str r1, [r0]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ add r1, r0, #0
+ lsl r2, r1, #1
+ ldr r1, _02225228 ; =0x0222C664
+ ldr r0, [r4, #0x24]
+ ldrh r1, [r1, r2]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r1, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD08_02224F74
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+_02225228: .word 0x0222C664
+
+ thumb_func_start MOD08_0222522C
+MOD08_0222522C: ; 0x0222522C
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ mov r4, #0
+ cmp r0, #0
+ beq _02225246
+ cmp r0, #1
+ beq _02225276
+ cmp r0, #2
+ beq _022252C8
+ b _022252CA
+_02225246:
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x98
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x1c]
+ add r0, #0x70
+ bl MOD08_02217F08
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ cmp r0, #0
+ bge _022252CA
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r5, #0x94
+ add r0, r0, #1
+ str r0, [r5]
+ b _022252CA
+_02225276:
+ add r0, r5, #0
+ ldr r1, [r5, #0x1c]
+ add r0, #0x70
+ bl MOD08_02217F08
+ add r0, r5, #0
+ add r0, #0x28
+ bl MOD08_02218224
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0x28
+ add r1, sp, #4
+ add r2, sp, #0
+ bl MOD08_0221825C
+ add r0, r5, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _022252AA
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl _fsub
+ str r0, [sp, #4]
+_022252AA:
+ ldr r0, [r5, #0x1c]
+ ldr r1, [sp, #4]
+ ldr r2, [sp]
+ bl FUN_0200C884
+ cmp r6, #0
+ bne _022252CA
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r5, #0x94
+ add r0, r0, #1
+ str r0, [r5]
+ mov r4, #1
+ b _022252CA
+_022252C8:
+ mov r4, #1
+_022252CA:
+ add r0, r4, #0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_022252D0
+MOD08_022252D0: ; 0x022252D0
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #6
+ bhi _022253AA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022252EA: ; jump table
+ .short _022252F8 - _022252EA - 2 ; case 0
+ .short _0222531C - _022252EA - 2 ; case 1
+ .short _02225336 - _022252EA - 2 ; case 2
+ .short _0222534C - _022252EA - 2 ; case 3
+ .short _02225362 - _022252EA - 2 ; case 4
+ .short _02225388 - _022252EA - 2 ; case 5
+ .short _0222539C - _022252EA - 2 ; case 6
+_022252F8:
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0x10
+ bl MOD08_02227994
+ mov r2, #8
+ str r2, [sp]
+ add r0, r4, #0
+ str r2, [sp, #4]
+ add r0, #0x9c
+ mov r1, #0
+ mov r3, #0x10
+ bl MOD08_022186D4
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022253AA
+_0222531C:
+ add r0, r4, #0
+ add r0, #0x9c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _022253AA
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ add r0, r4, #0
+ bl MOD08_02224FA0
+ b _022253AA
+_02225336:
+ add r0, r4, #0
+ bl MOD08_02225040
+ cmp r0, #0
+ beq _022253AA
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #2
+ str r0, [r4, #0xc]
+ b _022253AA
+_0222534C:
+ ldr r0, [r4, #0xc]
+ sub r0, r0, #1
+ str r0, [r4, #0xc]
+ bpl _022253AA
+ add r0, r4, #0
+ bl MOD08_0222516C
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022253AA
+_02225362:
+ add r0, r4, #0
+ bl MOD08_0222522C
+ cmp r0, #0
+ beq _022253AA
+ ldr r0, [r4, #8]
+ mov r1, #8
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0x10
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x9c
+ mov r2, #0
+ add r3, r1, #0
+ str r1, [sp, #4]
+ bl MOD08_022186D4
+ b _022253AA
+_02225388:
+ add r0, r4, #0
+ add r0, #0x9c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _022253AA
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022253AA
+_0222539C:
+ ldr r0, [r4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_022253AA:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022253B4
+MOD08_022253B4: ; 0x022253B4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r1, #0xd0
+ add r6, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r6, [r4]
+ add r0, r6, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ bl MOD08_02215504
+ add r1, r4, #0
+ add r1, #0xc4
+ str r0, [r1]
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r7, r0, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ add r0, r7, #0
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ add r0, r7, #0
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [sp, #4]
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ ldr r0, [sp, #4]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [sp, #4]
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r6, r0
+ lsl r0, r0, #0x10
+ str r5, [r4, #0x14]
+ asr r6, r0, #0x10
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+ str r0, [r4, #0x10]
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x18]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x18]
+ ldr r1, [sp]
+ add r2, r5, #0
+ bl FUN_0200C714
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x1c]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ add r1, r7, #0
+ add r2, r6, #0
+ bl FUN_0200C714
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #0x28
+ bl FUN_0200C8DC
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_02215680
+ add r1, r4, #0
+ add r1, #0xc8
+ str r0, [r1]
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215680
+ add r1, r4, #0
+ add r1, #0xcc
+ str r0, [r1]
+ ldr r0, [r4]
+ mov r1, #2
+ bl MOD08_022124D8
+ str r0, [r4, #0x20]
+ ldr r0, [r4]
+ mov r1, #3
+ bl MOD08_022124D8
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x20]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4]
+ ldr r1, _02225520 ; =MOD08_022252D0
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02225520: .word MOD08_022252D0
+
+ thumb_func_start MOD08_02225524
+MOD08_02225524: ; 0x02225524
+ push {r4, lr}
+ sub sp, #0x20
+ mov r2, #0xa
+ add r4, r0, #0
+ add r0, #0xf8
+ mov r1, #0x19
+ add r3, r2, #0
+ str r2, [sp]
+ bl MOD08_02218120
+ mov r0, #0x3a
+ ldrsh r0, [r4, r0]
+ add r1, r4, #0
+ mov r3, #0x38
+ str r0, [sp]
+ mov r0, #9
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x44]
+ ldr r2, _02225570 ; =MOD08_02218170
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x40]
+ add r1, #0xf8
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x3c]
+ str r0, [sp, #0x18]
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ ldrsh r3, [r4, r3]
+ add r0, #0x48
+ bl MOD08_0221847C
+ add sp, #0x20
+ pop {r4, pc}
+ .align 2, 0
+_02225570: .word MOD08_02218170
+
+ thumb_func_start MOD08_02225574
+MOD08_02225574: ; 0x02225574
+ push {r4, lr}
+ sub sp, #0x20
+ add r4, r0, #0
+ mov r0, #6
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0xf8
+ add r2, r1, #0
+ mov r3, #0x19
+ bl MOD08_02218120
+ mov r0, #0x3a
+ ldrsh r0, [r4, r0]
+ add r1, r4, #0
+ mov r3, #0x38
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x3c]
+ ldr r2, _022255CC ; =MOD08_02218170
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x40]
+ add r1, #0xf8
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x44]
+ str r0, [sp, #0x18]
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ ldrsh r3, [r4, r3]
+ add r0, #0x48
+ bl MOD08_0221847C
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl FUN_0200C644
+ add sp, #0x20
+ pop {r4, pc}
+ .align 2, 0
+_022255CC: .word MOD08_02218170
+
+ thumb_func_start MOD08_022255D0
+MOD08_022255D0: ; 0x022255D0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bhi _02225688
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022255E8: ; jump table
+ .short _022255F2 - _022255E8 - 2 ; case 0
+ .short _02225600 - _022255E8 - 2 ; case 1
+ .short _0222562E - _022255E8 - 2 ; case 2
+ .short _02225652 - _022255E8 - 2 ; case 3
+ .short _02225666 - _022255E8 - 2 ; case 4
+_022255F2:
+ add r0, r4, #0
+ bl MOD08_02225524
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02225688
+_02225600:
+ add r0, r4, #0
+ add r0, #0x48
+ bl MOD08_02218524
+ cmp r0, #0
+ bne _02225688
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4, #0xc]
+ mov r1, #4
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #6
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x14
+ mov r2, #0
+ mov r3, #1
+ bl MOD08_022183C0
+ b _02225688
+_0222562E:
+ mov r1, #0x38
+ mov r2, #0x3a
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_02218454
+ cmp r0, #0
+ bne _02225688
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ add r0, r4, #0
+ bl MOD08_02225574
+ b _02225688
+_02225652:
+ add r0, r4, #0
+ add r0, #0x48
+ bl MOD08_02218524
+ cmp r0, #0
+ bne _02225688
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02225688
+_02225666:
+ mov r6, #0
+ add r5, r4, #0
+_0222566A:
+ ldr r0, [r5, #0x3c]
+ bl FUN_0200C3DC
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #3
+ blt _0222566A
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ pop {r3, r4, r5, r6, r7, pc}
+_02225688:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02225690
+MOD08_02225690: ; 0x02225690
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r6, r1, #0
+ mov r1, #0x47
+ lsl r1, r1, #2
+ add r5, r0, #0
+ str r2, [sp]
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ ldr r0, [sp]
+ str r6, [r4, #4]
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x38]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x3a]
+ ldr r0, [r4, #0x10]
+ mov r1, #0x29
+ bl FUN_0200782C
+ mov r1, #0x3a
+ ldrsh r1, [r4, r1]
+ sub r0, r1, r0
+ strh r0, [r4, #0x3a]
+ add r0, sp, #4
+ add r1, r5, #0
+ bl MOD08_02215474
+ mov r6, #0
+ add r5, r4, #0
+_022256EC:
+ cmp r6, #0
+ bne _022256FC
+ add r0, r7, #0
+ mov r1, #1
+ str r7, [r5, #0x3c]
+ bl FUN_0200C5C0
+ b _0222570E
+_022256FC:
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #8]
+ add r2, sp, #4
+ bl FUN_0200C154
+ mov r1, #1
+ str r0, [r5, #0x3c]
+ bl FUN_0200C90C
+_0222570E:
+ ldr r0, [r5, #0x3c]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x3c]
+ mov r1, #1
+ bl FUN_0200C6B0
+ mov r1, #0x38
+ mov r2, #0x3a
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r5, #0x3c]
+ bl FUN_0200C714
+ ldr r0, [r5, #0x3c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r5, #0x3c]
+ mov r1, #2
+ bl FUN_0200C840
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #3
+ blt _022256EC
+ ldr r0, [r4]
+ ldr r1, _02225754 ; =MOD08_022255D0
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02225754: .word MOD08_022255D0
+
+ thumb_func_start MOD08_02225758
+MOD08_02225758: ; 0x02225758
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ mov r7, #0
+ add r6, r5, #0
+ str r1, [sp, #0x10]
+ add r6, #0x30
+ add r4, r7, #0
+_02225768:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x32
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #0x30
+ mov r1, #0
+ str r0, [sp, #0xc]
+ ldr r2, _022257A8 ; =0x00007FFF
+ add r0, r6, #0
+ add r3, r1, #0
+ bl MOD08_02217D14
+ ldr r0, [r5, #0x38]
+ add r7, r7, #1
+ add r0, r0, r4
+ str r0, [r5, #0x38]
+ ldr r1, [r5, #0x48]
+ ldr r0, [sp, #0x10]
+ add r6, #0x24
+ mul r0, r1
+ str r0, [r5, #0x48]
+ ldr r0, _022257AC ; =0x00002AAA
+ add r5, #0x24
+ add r4, r4, r0
+ cmp r7, #6
+ blt _02225768
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022257A8: .word 0x00007FFF
+_022257AC: .word 0x00002AAA
+
+ thumb_func_start MOD08_022257B0
+MOD08_022257B0: ; 0x022257B0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r0, #0
+ mov r0, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ str r0, [sp]
+ add r0, #0x30
+ str r0, [sp]
+ add r5, r6, #0
+ add r4, r6, #0
+_022257C6:
+ ldr r0, [sp]
+ bl MOD08_02217D98
+ ldr r1, [r5, #0x38]
+ mov r2, #0xa
+ lsl r0, r1, #2
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #4
+ lsl r1, r0, #2
+ ldr r0, _0222586C ; =0x020FFA38
+ ldr r3, [r6, #0x14]
+ ldrsh r0, [r0, r1]
+ lsl r2, r2, #0xc
+ mul r2, r3
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ add r3, r1, #0
+ mov r1, #0x13
+ lsl r1, r1, #4
+ mov r2, #0x30
+ add r7, r0, #0
+ ldrsh r1, [r6, r1]
+ ldrsh r2, [r5, r2]
+ ldr r0, [r4, #0x18]
+ add r1, r1, r2
+ ldr r2, _02225870 ; =0x00000132
+ lsl r1, r1, #0x10
+ ldrsh r2, [r6, r2]
+ asr r1, r1, #0x10
+ mov ip, r2
+ mov r2, #2
+ lsl r2, r2, #0xa
+ add r7, r7, r2
+ ldr r2, _02225874 ; =0x00000000
+ adc r3, r2
+ lsl r2, r3, #0x14
+ lsr r3, r7, #0xc
+ orr r3, r2
+ lsl r2, r3, #4
+ asr r2, r2, #0x10
+ mov r3, ip
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r1, [r5, #0x38]
+ ldr r0, _02225878 ; =0x00003FFF
+ cmp r1, r0
+ blt _02225842
+ ldr r0, _0222587C ; =0x0000BF49
+ cmp r1, r0
+ bgt _02225842
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_0200C6B0
+ b _02225852
+_02225842:
+ ldr r0, [r6]
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x18]
+ add r1, r1, #1
+ bl FUN_0200C6B0
+_02225852:
+ ldr r0, [sp]
+ add r5, #0x24
+ add r0, #0x24
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r4, r4, #4
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #6
+ blt _022257C6
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222586C: .word 0x020FFA38
+_02225870: .word 0x00000132
+_02225874: .word 0x00000000
+_02225878: .word 0x00003FFF
+_0222587C: .word 0x0000BF49
+
+ thumb_func_start MOD08_02225880
+MOD08_02225880: ; 0x02225880
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bhi _02225966
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222589A: ; jump table
+ .short _022258A4 - _0222589A - 2 ; case 0
+ .short _022258DA - _0222589A - 2 ; case 1
+ .short _022258FA - _0222589A - 2 ; case 2
+ .short _02225926 - _0222589A - 2 ; case 3
+ .short _02225942 - _0222589A - 2 ; case 4
+_022258A4:
+ ldr r0, [r4]
+ mov r1, #1
+ mov r2, #0xf
+ bl MOD08_02227994
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, #0xfe
+ add r0, r4, r0
+ mov r1, #1
+ mov r2, #0x10
+ mov r3, #0xf
+ bl MOD08_022186D4
+ ldr r1, [r4, #0x14]
+ add r0, r4, #0
+ bl MOD08_02225758
+ add r0, r4, #0
+ bl MOD08_022257B0
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02225966
+_022258DA:
+ add r0, r4, #0
+ bl MOD08_022257B0
+ mov r0, #0x42
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02225966
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x1c
+ str r0, [r4, #0x10]
+ b _02225966
+_022258FA:
+ add r0, r4, #0
+ bl MOD08_022257B0
+ ldr r0, [r4, #0x10]
+ sub r0, r0, #1
+ str r0, [r4, #0x10]
+ bpl _02225966
+ ldr r0, [r4, #0xc]
+ mov r1, #0x10
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0xf
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, #0xfe
+ add r0, r4, r0
+ mov r2, #1
+ mov r3, #0
+ bl MOD08_022186D4
+ b _02225966
+_02225926:
+ add r0, r4, #0
+ bl MOD08_022257B0
+ mov r0, #0x42
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02225966
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02225966
+_02225942:
+ mov r6, #0
+ add r5, r4, #0
+_02225946:
+ ldr r0, [r5, #0x18]
+ bl FUN_0200C3DC
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #6
+ blt _02225946
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02225966:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02225970
+MOD08_02225970: ; 0x02225970
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r5, r1, #0
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ add r4, r0, #0
+ str r2, [sp]
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r6, r0, #0
+ str r4, [r6]
+ ldr r0, [sp]
+ str r5, [r6, #4]
+ str r0, [r6, #8]
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r5, r0, #0
+ bl FUN_0200782C
+ mov r1, #0x13
+ lsl r1, r1, #4
+ strh r0, [r6, r1]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ ldr r1, _02225A14 ; =0x00000132
+ strh r0, [r6, r1]
+ add r0, sp, #4
+ add r1, r4, #0
+ bl MOD08_02215474
+ mov r4, #0
+ add r5, r6, #0
+_022259C2:
+ cmp r4, #0
+ bne _022259CA
+ str r7, [r5, #0x18]
+ b _022259D6
+_022259CA:
+ ldr r0, [r6, #4]
+ ldr r1, [r6, #8]
+ add r2, sp, #4
+ bl FUN_0200C154
+ str r0, [r5, #0x18]
+_022259D6:
+ ldr r0, [r5, #0x18]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C5E0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _022259C2
+ ldr r0, [r6]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_02217C1C
+ str r0, [r6, #0x14]
+ ldr r0, [r6]
+ ldr r1, _02225A18 ; =MOD08_02225880
+ add r2, r6, #0
+ bl MOD08_02212400
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02225A14: .word 0x00000132
+_02225A18: .word MOD08_02225880
+
+ thumb_func_start MOD08_02225A1C
+MOD08_02225A1C: ; 0x02225A1C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r1, #0
+ add r1, sp, #8
+ add r5, r2, #0
+ add r1, #2
+ add r2, sp, #8
+ add r6, r0, #0
+ add r4, r3, #0
+ bl FUN_0200C7A0
+ add r0, sp, #8
+ mov r1, #0
+ ldrsh r3, [r0, r1]
+ mov r1, #2
+ ldrsh r2, [r0, r1]
+ lsl r0, r4, #7
+ neg r0, r0
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ lsl r1, r2, #0x10
+ lsl r4, r5, #8
+ add r2, r2, r4
+ str r0, [sp]
+ mov r0, #0x3b
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ str r0, [sp, #4]
+ add r0, r7, #0
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ add r0, r6, #0
+ mov r1, #1
+ bl FUN_0200C644
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02225A70
+MOD08_02225A70: ; 0x02225A70
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r0, r1, #0
+ add r1, r4, #0
+ bl MOD08_02217F08
+ cmp r0, #0
+ beq _02225B2A
+ add r1, sp, #8
+ add r0, r4, #0
+ add r1, #2
+ add r2, sp, #8
+ bl FUN_0200C7A0
+ add r1, sp, #8
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ mov r1, #0x5b
+ lsl r1, r1, #2
+ str r0, [sp]
+ ldr r0, [sp]
+ mov r2, #0xe
+ mul r1, r0
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #4
+ lsl r1, r0, #2
+ ldr r0, _02225B30 ; =0x020FFA38
+ lsl r2, r2, #0xc
+ ldrsh r0, [r0, r1]
+ mov r3, #0
+ asr r7, r0, #0x1f
+ add r1, r7, #0
+ str r0, [sp, #4]
+ bl _ll_mul
+ add r3, r0, #0
+ add r5, r1, #0
+ add r6, sp, #8
+ mov r2, #0
+ ldrsh r2, [r6, r2]
+ mov r6, #2
+ lsl r6, r6, #0xa
+ add r0, r4, #0
+ add r6, r3, r6
+ ldr r3, _02225B34 ; =0x00000000
+ ldr r1, [sp]
+ adc r5, r3
+ lsl r3, r5, #0x14
+ lsr r5, r6, #0xc
+ orr r5, r3
+ lsl r3, r5, #4
+ asr r3, r3, #0x10
+ add r2, r2, r3
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ mov r2, #0xae
+ ldr r0, [sp, #4]
+ add r1, r7, #0
+ lsl r2, r2, #2
+ mov r3, #0
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ 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
+ bl _fflt
+ ldr r1, _02225B38 ; =0x45800000
+ bl _fdiv
+ add r1, r0, #0
+ mov r0, #0xfe
+ lsl r0, r0, #0x16
+ bl _fadd
+ add r1, r0, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl FUN_0200C884
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_02225B2A:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02225B30: .word 0x020FFA38
+_02225B34: .word 0x00000000
+_02225B38: .word 0x45800000
+
+ thumb_func_start MOD08_02225B3C
+MOD08_02225B3C: ; 0x02225B3C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x9d
+ add r7, r0, #0
+ lsl r1, r1, #2
+ ldr r0, [r7, r1]
+ cmp r0, #0xf
+ bge _02225B84
+ sub r0, r1, #4
+ ldr r0, [r7, r0]
+ add r2, r0, #1
+ sub r0, r1, #4
+ str r2, [r7, r0]
+ ldr r0, [r7, r0]
+ cmp r0, #6
+ ble _02225B84
+ mov r2, #0
+ sub r0, r1, #4
+ str r2, [r7, r0]
+ ldr r1, [r7, r1]
+ add r3, r7, #0
+ lsl r0, r1, #2
+ mov r2, #0x24
+ add r0, r7, r0
+ add r3, #0x54
+ mul r2, r1
+ add r1, r3, r2
+ ldr r0, [r0, #0x18]
+ ldr r2, [r7, #0x10]
+ ldr r3, [r7, #0x14]
+ bl MOD08_02225A1C
+ mov r0, #0x9d
+ lsl r0, r0, #2
+ ldr r1, [r7, r0]
+ add r1, r1, #1
+ str r1, [r7, r0]
+_02225B84:
+ mov r0, #0x9d
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r4, #0
+ cmp r0, #0
+ ble _02225BB0
+ add r6, r7, #0
+ add r6, #0x54
+ add r5, r7, #0
+_02225B96:
+ ldr r0, [r5, #0x18]
+ add r1, r6, #0
+ bl MOD08_02225A70
+ str r0, [sp]
+ mov r0, #0x9d
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ add r4, r4, #1
+ add r6, #0x24
+ add r5, r5, #4
+ cmp r4, r0
+ blt _02225B96
+_02225BB0:
+ cmp r0, #0xf
+ blt _02225BBE
+ ldr r0, [sp]
+ cmp r0, #1
+ bne _02225BBE
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02225BBE:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02225BC4
+MOD08_02225BC4: ; 0x02225BC4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD08_02225B3C
+ cmp r0, #0
+ beq _02225BF6
+ mov r4, #0
+ add r5, r6, #0
+_02225BD8:
+ ldr r0, [r5, #0x18]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xf
+ blt _02225BD8
+ add r0, r6, #0
+ bl FreeToHeap
+ ldr r0, [r6]
+ add r1, r7, #0
+ bl MOD08_02212438
+ pop {r3, r4, r5, r6, r7, pc}
+_02225BF6:
+ ldr r0, [r6, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02225C00
+MOD08_02225C00: ; 0x02225C00
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ add r5, r1, #0
+ mov r1, #0x9e
+ lsl r1, r1, #2
+ add r4, r0, #0
+ str r2, [sp]
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r6, r0, #0
+ str r4, [r6]
+ ldr r0, [sp]
+ str r5, [r6, #4]
+ str r0, [r6, #8]
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r5, r0, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ add r0, sp, #0xc
+ add r1, r4, #0
+ bl MOD08_02215474
+ mov r4, #0
+ add r5, r6, #0
+_02225C54:
+ cmp r4, #0
+ bne _02225C5C
+ str r7, [r5, #0x18]
+ b _02225C68
+_02225C5C:
+ ldr r0, [r6, #4]
+ ldr r1, [r6, #8]
+ add r2, sp, #0xc
+ bl FUN_0200C154
+ str r0, [r5, #0x18]
+_02225C68:
+ ldr r0, [r5, #0x18]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r5, #0x18]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r5, #0x18]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r5, #0x18]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #4]
+ bl FUN_0200C714
+ add r0, r4, #0
+ mov r1, #3
+ bl _s32_div_f
+ ldr r0, [r5, #0x18]
+ bl FUN_0200C5C0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xf
+ blt _02225C54
+ ldr r0, [r6]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_02217C1C
+ str r0, [r6, #0x10]
+ ldr r0, [r6]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_02217C44
+ str r0, [r6, #0x14]
+ ldr r0, [r6]
+ ldr r1, _02225CD8 ; =MOD08_02225BC4
+ add r2, r6, #0
+ bl MOD08_02212400
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02225CD8: .word MOD08_02225BC4
+
+ thumb_func_start MOD08_02225CDC
+MOD08_02225CDC: ; 0x02225CDC
+ ldr r1, [r0, #0x2c]
+ cmp r1, #0
+ beq _02225CEC
+ cmp r1, #1
+ beq _02225D00
+ cmp r1, #2
+ beq _02225D14
+ bx lr
+_02225CEC:
+ ldr r1, _02225D28 ; =0x00007FFF
+ str r1, [r0, #0x18]
+ mov r1, #5
+ str r1, [r0, #0x24]
+ mov r1, #1
+ lsl r1, r1, #0x10
+ str r1, [r0, #0x1c]
+ mov r1, #0x10
+ str r1, [r0, #0x28]
+ bx lr
+_02225D00:
+ ldr r1, _02225D28 ; =0x00007FFF
+ str r1, [r0, #0x18]
+ mov r1, #4
+ mvn r1, r1
+ str r1, [r0, #0x24]
+ ldr r1, _02225D2C ; =0xFFFF0000
+ str r1, [r0, #0x1c]
+ mov r1, #0x10
+ str r1, [r0, #0x28]
+ bx lr
+_02225D14:
+ ldr r1, _02225D28 ; =0x00007FFF
+ str r1, [r0, #0x18]
+ mov r1, #0xa
+ str r1, [r0, #0x24]
+ lsl r1, r1, #0xd
+ str r1, [r0, #0x1c]
+ mov r1, #0x10
+ str r1, [r0, #0x28]
+ bx lr
+ nop
+_02225D28: .word 0x00007FFF
+_02225D2C: .word 0xFFFF0000
+
+ thumb_func_start MOD08_02225D30
+MOD08_02225D30: ; 0x02225D30
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ bl MOD08_02218894
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x10]
+ str r0, [sp]
+ str r0, [sp, #4]
+ sub r0, #8
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ add r0, #0x58
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bge _02225D58
+ mov r0, #0
+ str r0, [sp, #4]
+_02225D58:
+ ldr r0, [sp]
+ cmp r0, #0xc0
+ ble _02225D62
+ mov r0, #0xc0
+ str r0, [sp]
+_02225D62:
+ mov r0, #0
+ ldr r1, [r5, #0x20]
+ mvn r0, r0
+ mul r0, r1
+ ldr r4, [sp, #4]
+ str r0, [r5, #0x20]
+ ldr r0, [sp]
+ add r1, r4, #0
+ cmp r1, r0
+ bge _02225E02
+_02225D76:
+ mov r0, #2
+ tst r0, r4
+ ldr r1, [r5, #0x1c]
+ beq _02225D86
+ ldr r0, [r5, #0x20]
+ lsl r0, r0, #0xc
+ add r2, r1, r0
+ b _02225D8C
+_02225D86:
+ ldr r0, [r5, #0x20]
+ lsl r0, r0, #0xc
+ sub r2, r1, r0
+_02225D8C:
+ ldr r1, [sp, #4]
+ ldr r0, [r5, #0x18]
+ sub r3, r4, r1
+ ldr r1, _02225E08 ; =0x00000199
+ mul r1, r3
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #4
+ lsl r1, r0, #2
+ ldr r0, _02225E0C ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ ldr r0, _02225E10 ; =0x00000000
+ adc r1, r0
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ lsl r0, r1, #4
+ asr r7, r0, #0x10
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x24]
+ sub r0, r4, r0
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ add r0, r7, r0
+ lsl r0, r0, #0x10
+ ldr r1, [r5, #0x30]
+ asr r7, r0, #0x10
+ lsl r0, r1, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x10
+ asr r0, r0, #0x10
+ asr r1, r1, #0x10
+ sub r6, r4, #1
+ bpl _02225DE6
+ add r6, #0xc0
+_02225DE6:
+ add r0, r0, r7
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ bl MOD08_02218998
+ ldr r1, [sp, #8]
+ lsl r2, r6, #2
+ str r0, [r1, r2]
+ ldr r0, [sp]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _02225D76
+_02225E02:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02225E08: .word 0x00000199
+_02225E0C: .word 0x020FFA38
+_02225E10: .word 0x00000000
+
+ thumb_func_start MOD08_02225E14
+MOD08_02225E14: ; 0x02225E14
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02225E2A
+ cmp r0, #1
+ beq _02225E3E
+ cmp r0, #2
+ beq _02225E68
+ pop {r4, r5, r6, pc}
+_02225E2A:
+ add r0, r4, #0
+ bl MOD08_02225CDC
+ add r0, r4, #0
+ bl MOD08_02225D30
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_02225E3E:
+ ldr r0, [r4, #0x28]
+ sub r0, r0, #1
+ str r0, [r4, #0x28]
+ add r0, r4, #0
+ bl MOD08_02225D30
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ bge _02225EFA
+ ldr r0, [r4, #0x2c]
+ add r0, r0, #1
+ str r0, [r4, #0x2c]
+ cmp r0, #3
+ bge _02225E60
+ mov r0, #0
+ str r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_02225E60:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_02225E68:
+ ldr r0, [r4, #0xc]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ bl MOD08_022188A8
+ ldr r0, [r4, #4]
+ bl MOD08_02218870
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215600
+ add r1, r0, #0
+ lsl r0, r5, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ mov r0, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212014
+ add r3, r0, #0
+ lsl r0, r5, #0x18
+ mov r1, #1
+ lsr r0, r0, #0x18
+ lsl r1, r1, #0xe
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r0, [r4]
+ bl MOD08_02212490
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD08_02212438
+_02225EFA:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02225EFC
+MOD08_02225EFC: ; 0x02225EFC
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x34
+ add r7, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r7, [r4]
+ add r0, r7, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #0xc]
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #0xc]
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #0xc]
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+ sub r6, #0x28
+ lsl r0, r6, #0x10
+ str r5, [r4, #0x14]
+ sub r5, #0x28
+ asr r0, r0, #0x10
+ neg r0, r0
+ neg r1, r5
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ str r5, [r4, #0x10]
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ bl MOD08_02218998
+ str r0, [r4, #0x30]
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_022155C4
+ bl MOD08_022189A0
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212014
+ add r2, r0, #0
+ ldr r1, [r4, #0x30]
+ add r0, r5, #0
+ bl MOD08_022187F4
+ str r0, [r4, #4]
+ mov r0, #1
+ str r0, [r4, #0x20]
+ add r0, r7, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ sub r0, r0, #3
+ cmp r0, #1
+ bhi _02225FD0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ lsl r0, r5, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ add r1, r1, #1
+ lsl r1, r1, #0x18
+ mov r0, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+_02225FD0:
+ ldr r0, [r4]
+ ldr r1, _02225FDC ; =MOD08_02225E14
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02225FDC: .word MOD08_02225E14
+
+ thumb_func_start MOD08_02225FE0
+MOD08_02225FE0: ; 0x02225FE0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #5
+ bls _02225FF0
+ b _02226134
+_02225FF0:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02225FFC: ; jump table
+ .short _02226008 - _02225FFC - 2 ; case 0
+ .short _0222604E - _02225FFC - 2 ; case 1
+ .short _02226088 - _02225FFC - 2 ; case 2
+ .short _022260C2 - _02225FFC - 2 ; case 3
+ .short _0222610E - _02225FFC - 2 ; case 4
+ .short _02226126 - _02225FFC - 2 ; case 5
+_02226008:
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xc
+ mov r1, #0x7f
+ add r3, r2, #0
+ bl MOD08_02217E80
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _02226138 ; =0xFFFF1FFF
+ and r1, r0
+ lsr r0, r2, #0xd
+ orr r0, r1
+ str r0, [r2]
+ mov r1, #0
+ ldr r0, [r4]
+ add r2, r1, #0
+ bl MOD08_02227A4C
+ ldr r1, _0222613C ; =0x04000040
+ mov r0, #0xff
+ strh r0, [r1]
+ mov r0, #0xbf
+ strh r0, [r1, #4]
+ mov r0, #7
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_0222604E:
+ ldr r0, [r4, #8]
+ sub r0, r0, #1
+ str r0, [r4, #8]
+ bpl _02226134
+ ldr r0, [r4]
+ bl MOD08_02215504
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r3, #0
+ lsl r2, r2, #0x10
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _02226140 ; =0x0000FFFF
+ mov r1, #1
+ str r0, [sp, #8]
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ bl FUN_02003210
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_02226088:
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _022260B8
+ mov r0, #0xc
+ ldrsh r2, [r4, r0]
+ mov r0, #0x7f
+ add sp, #0xc
+ sub r0, r0, r2
+ lsl r1, r0, #8
+ mov r0, #0xff
+ lsl r0, r0, #8
+ add r2, #0x80
+ and r1, r0
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ orr r0, r1
+ ldr r1, _0222613C ; =0x04000040
+ strh r0, [r1]
+ mov r0, #0xbf
+ strh r0, [r1, #4]
+ pop {r4, r5, pc}
+_022260B8:
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_022260C2:
+ ldr r0, [r4]
+ bl MOD08_02215504
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02226134
+ ldr r0, [r4, #4]
+ mov r2, #1
+ add r0, r0, #1
+ str r0, [r4, #4]
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _02226138 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [r4]
+ bl MOD08_02215504
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ lsl r2, r2, #0x10
+ ldr r0, _02226140 ; =0x0000FFFF
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ lsr r2, r2, #0x10
+ bl FUN_02003210
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0222610E:
+ ldr r0, [r4]
+ bl MOD08_02215504
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02226134
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_02226126:
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_02226134:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02226138: .word 0xFFFF1FFF
+_0222613C: .word 0x04000040
+_02226140: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02226144
+MOD08_02226144: ; 0x02226144
+ push {r4, lr}
+ mov r1, #0x34
+ add r4, r0, #0
+ bl MOD08_02228064
+ add r2, r0, #0
+ ldr r1, _0222615C ; =MOD08_02225FE0
+ add r0, r4, #0
+ str r4, [r2]
+ bl MOD08_02212400
+ pop {r4, pc}
+ .align 2, 0
+_0222615C: .word MOD08_02225FE0
+
+ thumb_func_start MOD08_02226160
+MOD08_02226160: ; 0x02226160
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bhi _02226210
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222617A: ; jump table
+ .short _02226184 - _0222617A - 2 ; case 0
+ .short _022261AA - _0222617A - 2 ; case 1
+ .short _022261BE - _0222617A - 2 ; case 2
+ .short _022261E4 - _0222617A - 2 ; case 3
+ .short _022261F8 - _0222617A - 2 ; case 4
+_02226184:
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0x10
+ bl MOD08_02227994
+ mov r1, #0
+ mov r2, #0x10
+ str r1, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x14
+ add r3, r2, #0
+ bl MOD08_022186D4
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02226210
+_022261AA:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02226210
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02226210
+_022261BE:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C608
+ cmp r0, #0
+ bne _02226210
+ ldr r0, [r4, #0xc]
+ mov r2, #0
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r1, #0x10
+ str r1, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x14
+ add r3, r2, #0
+ bl MOD08_022186D4
+ b _02226210
+_022261E4:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02226210
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02226210
+_022261F8:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02226210:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222621C
+MOD08_0222621C: ; 0x0222621C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r1, #0x3c
+ add r6, r0, #0
+ str r2, [sp]
+ add r5, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r6, [r4]
+ ldr r0, [sp]
+ str r7, [r4, #4]
+ str r0, [r4, #8]
+ str r5, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4]
+ ldr r1, _02226254 ; =MOD08_02226160
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02226254: .word MOD08_02226160
+
+ thumb_func_start MOD08_02226258
+MOD08_02226258: ; 0x02226258
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #4
+ bhi _0222631C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02226272: ; jump table
+ .short _0222627C - _02226272 - 2 ; case 0
+ .short _022262E6 - _02226272 - 2 ; case 1
+ .short _02226328 - _02226272 - 2 ; case 2
+ .short _02226394 - _02226272 - 2 ; case 3
+ .short _022263E6 - _02226272 - 2 ; case 4
+_0222627C:
+ ldr r0, [r4, #0x68]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x74]
+ asr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r1, [r4, #0x5c]
+ ldr r2, [r4, #0x60]
+ ldr r3, [r4, #0x64]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x14
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_022181A8
+ mov r1, #0xa
+ mov r2, #8
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x10]
+ add r0, #0x38
+ bl MOD08_02218454
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_022183A0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #8
+ mov r2, #0xc
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ ldr r3, [r4, #0x28]
+ bl MOD08_022182DC
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_022262E6:
+ mov r1, #0xa
+ mov r2, #8
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x10]
+ add r0, #0x38
+ bl MOD08_02218454
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_022183A0
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #8
+ mov r2, #0xc
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ ldr r3, [r4, #0x28]
+ bl MOD08_022182DC
+ cmp r5, #0
+ beq _0222631E
+_0222631C:
+ b _02226424
+_0222631E:
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_02226328:
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x74]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r1, [r4, #0x60]
+ ldr r2, [r4, #0x5c]
+ ldr r3, [r4, #0x68]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x14
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_022181A8
+ mov r1, #0xa
+ mov r2, #8
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x10]
+ add r0, #0x38
+ bl MOD08_02218454
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_022183A0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #8
+ mov r2, #0xc
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ ldr r3, [r4, #0x28]
+ bl MOD08_022182DC
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_02226394:
+ mov r1, #0xa
+ mov r2, #8
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x10]
+ add r0, #0x38
+ bl MOD08_02218454
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_022183A0
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #8
+ mov r2, #0xc
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ ldr r3, [r4, #0x28]
+ bl MOD08_022182DC
+ cmp r5, #0
+ bne _02226424
+ ldr r0, [r4, #0x70]
+ sub r0, r0, #1
+ str r0, [r4, #0x70]
+ cmp r0, #0
+ bgt _022263DE
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_022263DE:
+ mov r0, #0
+ add sp, #0xc
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_022263E6:
+ mov r2, #0xa
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #8
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02007558
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, #0xf3
+ bl FUN_02007558
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_02226424:
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_02226428
+MOD08_02226428: ; 0x02226428
+ push {r3, r4, r5, lr}
+ mov r1, #0x78
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+ strh r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #8]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0xa]
+ mov r1, #0xa
+ str r1, [r4, #0x5c]
+ mov r0, #7
+ str r0, [r4, #0x60]
+ str r1, [r4, #0x64]
+ mov r0, #0x1e
+ str r0, [r4, #0x68]
+ str r1, [r4, #0x6c]
+ mov r3, #1
+ ldr r0, _0222649C ; =0x00040003
+ str r3, [r4, #0x70]
+ str r0, [r4, #0x74]
+ mov r1, #2
+ add r0, r4, #0
+ str r1, [sp]
+ add r0, #0x38
+ mov r2, #0
+ bl MOD08_022183C0
+ ldr r0, [r4]
+ ldr r1, _022264A0 ; =MOD08_02226258
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0222649C: .word 0x00040003
+_022264A0: .word MOD08_02226258
+
+ thumb_func_start MOD08_022264A4
+MOD08_022264A4: ; 0x022264A4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ ldr r1, [r4, #0x2c]
+ add r0, #8
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _022264CE
+ ldr r0, [r4, #0x2c]
+ bl FUN_0200C3DC
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ pop {r3, r4, r5, pc}
+_022264CE:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022264D8
+MOD08_022264D8: ; 0x022264D8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r1, #0x30
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212518
+ str r0, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0222651C
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022124B0
+ str r0, [r4, #0x2c]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022124B0
+ bl FUN_0200C3DC
+ b _02226532
+_0222651C:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022124B0
+ str r0, [r4, #0x2c]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022124B0
+ bl FUN_0200C3DC
+_02226532:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C44
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ ldr r1, [sp, #0x10]
+ lsl r2, r7, #6
+ add r6, r1, r2
+ ldr r1, [sp, #0xc]
+ lsl r1, r1, #4
+ neg r1, r1
+ add r5, r0, r1
+ str r1, [sp, #8]
+ lsl r1, r6, #0x10
+ lsl r2, r5, #0x10
+ ldr r0, [r4, #0x2c]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r0, [sp, #8]
+ mov r2, #0x30
+ add r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ mul r2, r7
+ str r0, [sp]
+ mov r0, #6
+ add r2, r6, r2
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r1, r6, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r5, #0x10
+ add r0, #8
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ ldr r0, [r4]
+ ldr r1, _022265B0 ; =MOD08_022264A4
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022265B0: .word MOD08_022264A4
+
+ thumb_func_start MOD08_022265B4
+MOD08_022265B4: ; 0x022265B4
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #5
+ bls _022265C4
+ b _022266E0
+_022265C4:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022265D0: ; jump table
+ .short _022265DC - _022265D0 - 2 ; case 0
+ .short _022265F6 - _022265D0 - 2 ; case 1
+ .short _02226644 - _022265D0 - 2 ; case 2
+ .short _02226660 - _022265D0 - 2 ; case 3
+ .short _022266A2 - _022265D0 - 2 ; case 4
+ .short _022266BA - _022265D0 - 2 ; case 5
+_022265DC:
+ mov r1, #4
+ add r0, r4, #0
+ str r1, [sp]
+ add r0, #0x40
+ mov r2, #0
+ mov r3, #1
+ bl MOD08_022183C0
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_022265F6:
+ mov r1, #0x18
+ mov r2, #0x1a
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x14]
+ add r0, #0x40
+ bl MOD08_02218454
+ cmp r0, #0
+ bne _022266E0
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0x1a
+ ldrsh r3, [r4, r0]
+ mov r0, #0x18
+ ldrsh r1, [r4, r0]
+ ldr r2, [r4, #0x10]
+ sub r0, #0x1f
+ mul r0, r2
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ add r0, r4, #0
+ ldr r4, [r4, #0xc]
+ mov r2, #0x28
+ mul r2, r4
+ add r2, r1, r2
+ lsl r2, r2, #0x10
+ add r0, #0x1c
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_02226644:
+ add r0, r4, #0
+ ldr r1, [r4, #0x14]
+ add r0, #0x1c
+ bl MOD08_02217F2C
+ cmp r0, #0
+ bne _022266E0
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #8
+ str r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_02226660:
+ ldr r0, [r4, #8]
+ sub r0, r0, #1
+ str r0, [r4, #8]
+ bpl _022266E0
+ ldr r0, [r4, #4]
+ mov r5, #0x28
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0x1a
+ ldrsh r3, [r4, r0]
+ mov r0, #0x18
+ ldrsh r2, [r4, r0]
+ mov r0, #4
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r4, #0
+ add r6, r1, #0
+ mul r6, r5
+ add r1, r2, r6
+ lsl r1, r1, #0x10
+ ldr r4, [r4, #0x10]
+ sub r5, #0x2f
+ mul r5, r4
+ add r3, r3, r5
+ lsl r3, r3, #0x10
+ add r0, #0x1c
+ asr r1, r1, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_022266A2:
+ add r0, r4, #0
+ ldr r1, [r4, #0x14]
+ add r0, #0x1c
+ bl MOD08_02217F2C
+ cmp r0, #0
+ bne _022266E0
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_022266BA:
+ mov r2, #0x18
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x1a
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_02007558
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_022266E0:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_022266E4
+MOD08_022266E4: ; 0x022266E4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r1, #0x64
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ str r5, [r4]
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x18]
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x1a]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C44
+ str r0, [r4, #0x10]
+ ldr r0, [r4]
+ ldr r1, _02226738 ; =MOD08_022265B4
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ nop
+_02226738: .word MOD08_022265B4
+
+ thumb_func_start MOD08_0222673C
+MOD08_0222673C: ; 0x0222673C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #4
+ bls _0222674C
+ b _0222685C
+_0222674C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02226758: ; jump table
+ .short _02226762 - _02226758 - 2 ; case 0
+ .short _02226798 - _02226758 - 2 ; case 1
+ .short _022267C0 - _02226758 - 2 ; case 2
+ .short _0222681E - _02226758 - 2 ; case 3
+ .short _02226836 - _02226758 - 2 ; case 4
+_02226762:
+ mov r0, #0x16
+ ldrsh r3, [r4, r0]
+ mov r0, #0x14
+ ldrsh r1, [r4, r0]
+ ldr r0, [r4, #0xc]
+ mov r5, #4
+ lsl r0, r0, #4
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ str r5, [sp, #4]
+ ldr r2, [r4, #8]
+ sub r5, #0x2c
+ mul r5, r2
+ add r2, r1, r5
+ add r0, r4, #0
+ lsl r2, r2, #0x10
+ add r0, #0x18
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_02226798:
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x18
+ bl MOD08_02217F2C
+ cmp r0, #0
+ bne _0222685C
+ ldr r0, [r4, #4]
+ mov r1, #4
+ add r0, r0, #1
+ str r0, [r4, #4]
+ add r4, #0x3c
+ add r0, r4, #0
+ mov r2, #0
+ mov r3, #1
+ str r1, [sp]
+ bl MOD08_022183C0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_022267C0:
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r2, r0, #0x10
+ add r0, r4, #0
+ ldr r3, [r4, #0x10]
+ add r0, #0x3c
+ add r1, r5, #0
+ bl MOD08_02218454
+ cmp r0, #0
+ bne _0222685C
+ ldr r0, [r4, #4]
+ mov r5, #4
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0x16
+ ldrsh r3, [r4, r0]
+ mov r0, #0x14
+ ldrsh r2, [r4, r0]
+ add r0, r4, #0
+ add r0, #0x18
+ str r3, [sp]
+ str r5, [sp, #4]
+ ldr r1, [r4, #8]
+ ldr r4, [r4, #0xc]
+ sub r5, #0x2c
+ mul r5, r1
+ lsl r4, r4, #4
+ add r1, r2, r5
+ add r3, r3, r4
+ lsl r1, r1, #0x10
+ lsl r3, r3, #0x10
+ asr r1, r1, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_0222681E:
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x18
+ bl MOD08_02217F2C
+ cmp r0, #0
+ bne _0222685C
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_02226836:
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02007558
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_0222685C:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02226860
+MOD08_02226860: ; 0x02226860
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r1, #0x60
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ str r5, [r4]
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x16]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ str r0, [r4, #8]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C44
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ ldr r1, _022268B4 ; =MOD08_0222673C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ nop
+_022268B4: .word MOD08_0222673C
+
+ thumb_func_start MOD08_022268B8
+MOD08_022268B8: ; 0x022268B8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ add r7, r1, #0
+ add r4, r0, #0
+ mov r1, #0xac
+ add r6, r2, #0
+ str r3, [sp]
+ bl MOD08_02228064
+ str r4, [r0]
+ str r0, [sp, #4]
+ str r6, [r0, #0xc]
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r5, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02217C1C
+ ldr r1, [sp, #4]
+ str r0, [r1, #0x10]
+ ldr r1, [r1]
+ add r0, sp, #8
+ bl MOD08_02215474
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r1, sp, #8
+ strh r0, [r1]
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r1, sp, #8
+ ldr r5, [sp, #4]
+ strh r0, [r1, #2]
+ mov r4, #0
+_0222690C:
+ cmp r4, #0
+ add r2, sp, #8
+ bne _02226926
+ ldr r0, [sp]
+ mov r1, #0
+ str r0, [r5, #0x14]
+ ldrsh r1, [r2, r1]
+ add r3, r2, #0
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ bl FUN_0200C714
+ b _02226930
+_02226926:
+ add r0, r7, #0
+ add r1, r6, #0
+ bl FUN_0200C154
+ str r0, [r5, #0x14]
+_02226930:
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r5, #0x14]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x14]
+ mov r1, #1
+ bl FUN_0200C6B0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #2
+ blt _0222690C
+ ldr r0, [sp, #4]
+ ldr r1, _02226960 ; =MOD08_02226964
+ ldr r0, [r0]
+ ldr r2, [sp, #4]
+ bl MOD08_02212400
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02226960: .word MOD08_02226964
+
+ thumb_func_start MOD08_02226964
+MOD08_02226964: ; 0x02226964
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #4
+ bhi _02226A48
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222697C: ; jump table
+ .short _02226986 - _0222697C - 2 ; case 0
+ .short _022269AE - _0222697C - 2 ; case 1
+ .short _022269CE - _0222697C - 2 ; case 2
+ .short _02226A00 - _0222697C - 2 ; case 3
+ .short _02226A26 - _0222697C - 2 ; case 4
+_02226986:
+ add r2, r4, #0
+ ldr r0, [r4, #0x14]
+ ldr r3, [r4, #0x10]
+ add r1, #0x1c
+ add r2, #0x64
+ bl MOD08_02226A50
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x14]
+ add r1, #0x1c
+ add r2, #0x64
+ bl MOD08_02226AB0
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #8
+ str r0, [r4, #8]
+ b _02226A48
+_022269AE:
+ ldr r0, [r4, #8]
+ add r2, r4, #0
+ sub r0, r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x14]
+ add r1, #0x1c
+ add r2, #0x64
+ bl MOD08_02226AB0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ bge _02226A48
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _02226A48
+_022269CE:
+ add r2, r4, #0
+ ldr r0, [r4, #0x18]
+ ldr r3, [r4, #0x10]
+ add r1, #0x40
+ add r2, #0x88
+ bl MOD08_02226A50
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x18]
+ add r1, #0x40
+ add r2, #0x88
+ bl MOD08_02226AB0
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x14]
+ add r1, #0x1c
+ add r2, #0x64
+ bl MOD08_02226AB0
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _02226A48
+_02226A00:
+ add r2, r4, #0
+ ldr r0, [r4, #0x14]
+ add r1, #0x1c
+ add r2, #0x64
+ bl MOD08_02226AB0
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x18]
+ add r1, #0x40
+ add r2, #0x88
+ bl MOD08_02226AB0
+ cmp r0, #0
+ beq _02226A48
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _02226A48
+_02226A26:
+ mov r6, #0
+ add r5, r4, #0
+_02226A2A:
+ ldr r0, [r5, #0x14]
+ bl FUN_0200C3DC
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #2
+ blt _02226A2A
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_02226A48:
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02226A50
+MOD08_02226A50: ; 0x02226A50
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r1, #0
+ add r5, r0, #0
+ mov r1, #2
+ add r7, r2, #0
+ add r4, r3, #0
+ bl FUN_0200C840
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C644
+ add r1, sp, #8
+ add r0, r5, #0
+ add r1, #2
+ add r2, sp, #8
+ bl FUN_0200C7A0
+ add r1, sp, #8
+ mov r0, #0
+ ldrsh r3, [r1, r0]
+ mov r0, #2
+ ldrsh r1, [r1, r0]
+ add r0, r3, #0
+ sub r0, #0x20
+ lsl r0, r0, #0x10
+ lsl r2, r4, #4
+ asr r0, r0, #0x10
+ add r2, r1, r2
+ str r0, [sp]
+ mov r0, #0x20
+ lsl r2, r2, #0x10
+ str r0, [sp, #4]
+ add r0, r6, #0
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ mov r0, #0x20
+ mov r2, #0xa
+ str r0, [sp]
+ add r0, r7, #0
+ mov r1, #2
+ add r3, r2, #0
+ bl MOD08_02218120
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02226AB0
+MOD08_02226AB0: ; 0x02226AB0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ add r4, r2, #0
+ add r1, r5, #0
+ bl MOD08_02217F08
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02218360
+ cmp r0, #0
+ beq _02226ACE
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02226ACE:
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02226ADC
+MOD08_02226ADC: ; 0x02226ADC
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x3c
+ add r6, r0, #0
+ add r7, r2, #0
+ add r5, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r6, [r4]
+ str r7, [r4, #0xc]
+ str r5, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x10]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C68C
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ ldr r1, _02226B28 ; =MOD08_02226B2C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02226B28: .word MOD08_02226B2C
+
+ thumb_func_start MOD08_02226B2C
+MOD08_02226B2C: ; 0x02226B2C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #4
+ bhi _02226C18
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02226B46: ; jump table
+ .short _02226B50 - _02226B46 - 2 ; case 0
+ .short _02226B80 - _02226B46 - 2 ; case 1
+ .short _02226BA6 - _02226B46 - 2 ; case 2
+ .short _02226BE4 - _02226B46 - 2 ; case 3
+ .short _02226C00 - _02226B46 - 2 ; case 4
+_02226B50:
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x14
+ mov r1, #0
+ mov r2, #0x10
+ mov r3, #0x14
+ bl MOD08_022186D4
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0x14
+ bl MOD08_02227994
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _02226C18
+_02226B80:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02226C18
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C5E0
+ mov r1, #1
+ ldr r0, [r4, #0x10]
+ lsl r1, r1, #0xc
+ bl FUN_0200C5F4
+ b _02226C18
+_02226BA6:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C630
+ mov r1, #3
+ bl _s32_div_f
+ ldr r2, [r4, #8]
+ ldr r0, [r4, #0x10]
+ add r1, r2, r1
+ bl FUN_0200C680
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C608
+ cmp r0, #0
+ bne _02226C18
+ ldr r0, [r4, #4]
+ mov r1, #0x10
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0x14
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x14
+ mov r2, #0
+ mov r3, #4
+ bl MOD08_022186D4
+ b _02226C18
+_02226BE4:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02226C18
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C644
+ b _02226C18
+_02226C00:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02226C18:
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02226C24
+MOD08_02226C24: ; 0x02226C24
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ mov r1, #0x54
+ add r5, r0, #0
+ str r3, [sp, #0xc]
+ bl MOD08_02228064
+ ldr r1, [sp, #8]
+ str r5, [r0]
+ str r0, [sp, #0x14]
+ str r1, [r0, #8]
+ ldr r0, [r0]
+ bl MOD08_02212458
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217C1C
+ ldr r1, [sp, #0x14]
+ str r0, [sp, #0x10]
+ ldr r1, [r1]
+ add r0, sp, #0x18
+ bl MOD08_02215474
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r1, sp, #0x18
+ strh r0, [r1]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ ldr r7, [sp, #0x14]
+ ldr r6, [sp, #0x14]
+ ldr r5, [sp, #0x14]
+ add r1, sp, #0x18
+ add r7, #0x3c
+ add r6, #0x24
+ strh r0, [r1, #2]
+ mov r4, #5
+ add r5, #0x14
+ add r7, #0x14
+ add r6, #0x14
+_02226C88:
+ cmp r4, #5
+ add r2, sp, #0x18
+ bne _02226CA2
+ ldr r0, [sp, #0xc]
+ mov r1, #0
+ str r0, [r5, #0xc]
+ ldrsh r1, [r2, r1]
+ add r3, r2, #0
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ bl FUN_0200C714
+ b _02226CAC
+_02226CA2:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #8]
+ bl FUN_0200C154
+ str r0, [r5, #0xc]
+_02226CAC:
+ ldr r0, [r5, #0xc]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0xc]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [sp, #0x10]
+ add r1, r6, #0
+ str r0, [sp]
+ ldr r0, [r5, #0xc]
+ add r2, r7, #0
+ add r3, r4, #0
+ bl MOD08_02226CF4
+ sub r5, r5, #4
+ sub r7, r7, #4
+ sub r6, r6, #4
+ sub r4, r4, #1
+ bpl _02226C88
+ ldr r0, [sp, #0x14]
+ ldr r1, _02226CF0 ; =MOD08_02226D78
+ ldr r0, [r0]
+ ldr r2, [sp, #0x14]
+ bl MOD08_02212400
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02226CF0: .word MOD08_02226D78
+
+ thumb_func_start MOD08_02226CF4
+MOD08_02226CF4: ; 0x02226CF4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r3, #0
+ add r6, r1, #0
+ lsr r1, r4, #0x1f
+ add r1, r4, r1
+ asr r1, r1, #1
+ add r5, r0, #0
+ add r7, r2, #0
+ bl FUN_0200C5C0
+ lsl r0, r4, #1
+ str r0, [r7]
+ mov r0, #0x10
+ add r1, sp, #0
+ str r0, [r6]
+ add r0, r5, #0
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ mov r1, #2
+ add r6, r1, #0
+ add r2, sp, #0
+ sub r6, #0xe
+ mul r6, r4
+ ldr r0, [sp, #0x18]
+ ldrsh r3, [r2, r1]
+ add r6, #0x28
+ add r4, r0, #0
+ mul r4, r6
+ add r0, r3, r4
+ mov r3, #0
+ strh r0, [r2, #2]
+ ldrsh r0, [r2, r3]
+ add r0, #0x28
+ strh r0, [r2]
+ ldrsh r1, [r2, r1]
+ ldrsh r2, [r2, r3]
+ add r0, r5, #0
+ bl FUN_0200C714
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02226D48
+MOD08_02226D48: ; 0x02226D48
+ push {r3, lr}
+ ldr r3, [r2]
+ cmp r3, #0
+ ble _02226D5E
+ sub r1, r3, #1
+ str r1, [r2]
+ bne _02226D74
+ mov r1, #1
+ bl FUN_0200C644
+ b _02226D74
+_02226D5E:
+ ldr r2, [r1]
+ cmp r2, #0
+ ble _02226D6A
+ sub r0, r2, #1
+ str r0, [r1]
+ b _02226D74
+_02226D6A:
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #1
+ pop {r3, pc}
+_02226D74:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02226D78
+MOD08_02226D78: ; 0x02226D78
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r1, #4]
+ str r1, [sp]
+ cmp r0, #0
+ beq _02226D8A
+ cmp r0, #1
+ beq _02226DBC
+ b _02226DE0
+_02226D8A:
+ add r6, r1, #0
+ add r4, r1, #0
+ mov r7, #0
+ add r6, #0x3c
+ add r4, #0x24
+ add r5, r1, #0
+_02226D96:
+ ldr r0, [r5, #0xc]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD08_02226D48
+ add r7, r7, #1
+ add r6, r6, #4
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r7, #6
+ blt _02226D96
+ cmp r0, #0
+ beq _02226DE0
+ ldr r0, [sp]
+ ldr r0, [r0, #4]
+ add r1, r0, #1
+ ldr r0, [sp]
+ str r1, [r0, #4]
+ b _02226DE0
+_02226DBC:
+ mov r5, #0
+ add r4, r1, #0
+_02226DC0:
+ ldr r0, [r4, #0xc]
+ bl FUN_0200C3DC
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #6
+ blt _02226DC0
+ ldr r0, [sp]
+ add r1, r6, #0
+ ldr r0, [r0]
+ bl MOD08_02212438
+ ldr r0, [sp]
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_02226DE0:
+ ldr r0, [sp]
+ ldr r0, [r0, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02226DEC
+MOD08_02226DEC: ; 0x02226DEC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ mov r7, #0
+ add r6, r5, #0
+ str r1, [sp, #0x10]
+ add r6, #0x30
+ add r4, r7, #0
+_02226DFC:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x32
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #0x30
+ mov r1, #0
+ str r0, [sp, #0xc]
+ ldr r2, _02226E3C ; =0x00007FFF
+ add r0, r6, #0
+ add r3, r1, #0
+ bl MOD08_02217D14
+ ldr r0, [r5, #0x38]
+ add r7, r7, #1
+ add r0, r0, r4
+ str r0, [r5, #0x38]
+ ldr r1, [r5, #0x48]
+ ldr r0, [sp, #0x10]
+ add r6, #0x24
+ mul r0, r1
+ str r0, [r5, #0x48]
+ ldr r0, _02226E40 ; =0x00002AAA
+ add r5, #0x24
+ add r4, r4, r0
+ cmp r7, #6
+ blt _02226DFC
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02226E3C: .word 0x00007FFF
+_02226E40: .word 0x00002AAA
+
+ thumb_func_start MOD08_02226E44
+MOD08_02226E44: ; 0x02226E44
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0
+ add r7, r6, #0
+ str r0, [sp]
+ add r7, #0x30
+ add r4, r6, #0
+ add r5, r6, #0
+_02226E54:
+ add r0, r7, #0
+ bl MOD08_02217D98
+ mov r1, #0x13
+ lsl r1, r1, #4
+ mov r2, #0x30
+ ldrsh r1, [r6, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r5, #0x18]
+ add r1, r1, r2
+ ldr r2, _02226EB0 ; =0x00000132
+ lsl r1, r1, #0x10
+ ldrsh r2, [r6, r2]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ ldr r1, [r4, #0x38]
+ ldr r0, _02226EB4 ; =0x00003FFF
+ cmp r1, r0
+ blt _02226E8C
+ ldr r0, _02226EB8 ; =0x0000BF49
+ cmp r1, r0
+ bgt _02226E8C
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C6B0
+ b _02226E9C
+_02226E8C:
+ ldr r0, [r6]
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r5, #0x18]
+ add r1, r1, #1
+ bl FUN_0200C6B0
+_02226E9C:
+ ldr r0, [sp]
+ add r7, #0x24
+ add r0, r0, #1
+ add r4, #0x24
+ add r5, r5, #4
+ str r0, [sp]
+ cmp r0, #6
+ blt _02226E54
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02226EB0: .word 0x00000132
+_02226EB4: .word 0x00003FFF
+_02226EB8: .word 0x0000BF49
+
+ thumb_func_start MOD08_02226EBC
+MOD08_02226EBC: ; 0x02226EBC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bhi _02226FA2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02226ED6: ; jump table
+ .short _02226EE0 - _02226ED6 - 2 ; case 0
+ .short _02226F16 - _02226ED6 - 2 ; case 1
+ .short _02226F36 - _02226ED6 - 2 ; case 2
+ .short _02226F62 - _02226ED6 - 2 ; case 3
+ .short _02226F7E - _02226ED6 - 2 ; case 4
+_02226EE0:
+ ldr r0, [r4]
+ mov r1, #1
+ mov r2, #0xf
+ bl MOD08_02227994
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, #0xfe
+ add r0, r4, r0
+ mov r1, #1
+ mov r2, #0x10
+ mov r3, #0xf
+ bl MOD08_022186D4
+ ldr r1, [r4, #0x14]
+ add r0, r4, #0
+ bl MOD08_02226DEC
+ add r0, r4, #0
+ bl MOD08_02226E44
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02226FA2
+_02226F16:
+ add r0, r4, #0
+ bl MOD08_02226E44
+ mov r0, #0x42
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02226FA2
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x1c
+ str r0, [r4, #0x10]
+ b _02226FA2
+_02226F36:
+ add r0, r4, #0
+ bl MOD08_02226E44
+ ldr r0, [r4, #0x10]
+ sub r0, r0, #1
+ str r0, [r4, #0x10]
+ bpl _02226FA2
+ ldr r0, [r4, #0xc]
+ mov r1, #0x10
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0xf
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, #0xfe
+ add r0, r4, r0
+ mov r2, #1
+ mov r3, #0
+ bl MOD08_022186D4
+ b _02226FA2
+_02226F62:
+ add r0, r4, #0
+ bl MOD08_02226E44
+ mov r0, #0x42
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02226FA2
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02226FA2
+_02226F7E:
+ mov r6, #0
+ add r5, r4, #0
+_02226F82:
+ ldr r0, [r5, #0x18]
+ bl FUN_0200C3DC
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #6
+ blt _02226F82
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02226FA2:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02226FAC
+MOD08_02226FAC: ; 0x02226FAC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r5, r1, #0
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ add r4, r0, #0
+ str r2, [sp]
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r6, r0, #0
+ str r4, [r6]
+ ldr r0, [sp]
+ str r5, [r6, #4]
+ str r0, [r6, #8]
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r5, r0, #0
+ bl FUN_0200782C
+ mov r1, #0x13
+ lsl r1, r1, #4
+ strh r0, [r6, r1]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ ldr r1, _02227050 ; =0x00000132
+ strh r0, [r6, r1]
+ add r0, sp, #4
+ add r1, r4, #0
+ bl MOD08_02215474
+ mov r4, #0
+ add r5, r6, #0
+_02226FFE:
+ cmp r4, #0
+ bne _02227006
+ str r7, [r5, #0x18]
+ b _02227012
+_02227006:
+ ldr r0, [r6, #4]
+ ldr r1, [r6, #8]
+ add r2, sp, #4
+ bl FUN_0200C154
+ str r0, [r5, #0x18]
+_02227012:
+ ldr r0, [r5, #0x18]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C5E0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02226FFE
+ ldr r0, [r6]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_02217C1C
+ str r0, [r6, #0x14]
+ ldr r0, [r6]
+ ldr r1, _02227054 ; =MOD08_02226EBC
+ add r2, r6, #0
+ bl MOD08_02212400
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02227050: .word 0x00000132
+_02227054: .word MOD08_02226EBC
+
+ thumb_func_start MOD08_02227058
+MOD08_02227058: ; 0x02227058
+ strh r1, [r0, #0xc]
+ strh r2, [r0, #0xe]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02227060
+MOD08_02227060: ; 0x02227060
+ strh r1, [r0, #0x14]
+ strh r2, [r0, #0x16]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02227068
+MOD08_02227068: ; 0x02227068
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #0x1c]
+ add r4, r1, #0
+ bl MOD08_02212014
+ add r6, r0, #0
+ ldr r0, [r5, #0x1c]
+ mov r1, #3
+ bl MOD08_02215600
+ add r1, r0, #0
+ lsl r0, r4, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ str r6, [sp, #0xc]
+ ldr r1, [r5, #4]
+ ldr r0, [r5]
+ lsl r2, r1, #4
+ ldr r1, _022270F8 ; =0x0222C670
+ add r3, r4, #0
+ ldr r1, [r1, r2]
+ ldr r2, [r5, #0x2c]
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x80
+ str r0, [sp, #8]
+ ldr r2, [r5, #4]
+ ldr r0, [r5, #0x30]
+ lsl r3, r2, #4
+ ldr r2, _022270FC ; =0x0222C674
+ ldr r1, [r5]
+ ldr r2, [r2, r3]
+ add r3, r6, #0
+ bl FUN_020030E8
+ lsl r1, r4, #0x18
+ ldr r0, [r5, #0x2c]
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ str r6, [sp, #0xc]
+ ldr r1, [r5, #4]
+ ldr r0, [r5]
+ lsl r2, r1, #4
+ ldr r1, _02227100 ; =0x0222C678
+ add r3, r4, #0
+ ldr r1, [r1, r2]
+ ldr r2, [r5, #0x2c]
+ bl FUN_020068C8
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_022270F8: .word 0x0222C670
+_022270FC: .word 0x0222C674
+_02227100: .word 0x0222C678
+
+ thumb_func_start MOD08_02227104
+MOD08_02227104: ; 0x02227104
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x18]
+ cmp r0, #3
+ bhi _022271C0
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222711C: ; jump table
+ .short _02227124 - _0222711C - 2 ; case 0
+ .short _02227134 - _0222711C - 2 ; case 1
+ .short _0222714C - _0222711C - 2 ; case 2
+ .short _0222716C - _0222711C - 2 ; case 3
+_02227124:
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD08_02227068
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0222720E
+_02227134:
+ ldrh r0, [r4, #0x16]
+ mov r1, #4
+ mov r2, #0x39
+ str r0, [sp]
+ ldrh r3, [r4, #0x14]
+ ldr r0, _0222725C ; =0x04000050
+ bl G2x_SetBlendAlpha_
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0222720E
+_0222714C:
+ add r1, r4, #0
+ add r1, #0x40
+ ldrb r1, [r1]
+ cmp r1, #0x14
+ bls _0222715C
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0222720E
+_0222715C:
+ add r0, r4, #0
+ add r0, #0x40
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x40
+ strb r1, [r0]
+ b _0222720E
+_0222716C:
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0
+ beq _02227176
+ sub r0, r0, #1
+ strh r0, [r4, #0x14]
+_02227176:
+ ldrh r0, [r4, #0x16]
+ cmp r0, #0x10
+ bhs _02227180
+ add r0, r0, #1
+ strh r0, [r4, #0x16]
+_02227180:
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0
+ bne _022271B2
+ ldrh r0, [r4, #0x16]
+ cmp r0, #0x10
+ bne _022271B2
+ ldr r0, [r4, #0x2c]
+ mov r1, #2
+ bl FUN_02018744
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+_022271B2:
+ ldrh r0, [r4, #0x16]
+ ldrh r1, [r4, #0x14]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02227260 ; =0x04000052
+ strh r1, [r0]
+ b _0222720E
+_022271C0:
+ ldr r0, _02227264 ; =0x0400004A
+ mov r1, #0x3f
+ ldrh r2, [r0]
+ bic r2, r1
+ mov r1, #0x1f
+ orr r2, r1
+ strh r2, [r0]
+ ldrh r3, [r0]
+ ldr r2, _02227268 ; =0xFFFFC0FF
+ lsl r1, r1, #8
+ and r2, r3
+ orr r1, r2
+ strh r1, [r0]
+ mov r2, #0
+ ldr r0, [r4, #0x2c]
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #0x2c]
+ mov r1, #2
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _0222726C ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [r4, #0x1c]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl MOD08_02228094
+ pop {r3, r4, r5, pc}
+_0222720E:
+ mov r3, #0x10
+ mov r0, #0xc
+ ldrsh r1, [r4, r3]
+ ldrsh r0, [r4, r0]
+ mov r2, #0
+ add r0, r1, r0
+ strh r0, [r4, #0x10]
+ mov r0, #0x12
+ ldrsh r1, [r4, r0]
+ mov r0, #0xe
+ ldrsh r0, [r4, r0]
+ add r0, r1, r0
+ strh r0, [r4, #0x12]
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x2c]
+ mov r1, #2
+ bl FUN_020179E0
+ mov r3, #0x12
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x2c]
+ mov r1, #2
+ mov r2, #3
+ bl FUN_020179E0
+ ldr r0, [r4, #0x34]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x38]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x3c]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x24]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ nop
+_0222725C: .word 0x04000050
+_02227260: .word 0x04000052
+_02227264: .word 0x0400004A
+_02227268: .word 0xFFFFC0FF
+_0222726C: .word 0xFFFF1FFF
+
+ thumb_func_start MOD08_02227270
+MOD08_02227270: ; 0x02227270
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #7
+ str r1, [r4]
+ add r5, r0, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02227290
+MOD08_02227290: ; 0x02227290
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ mov r1, #0x44
+ add r6, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ bl MOD08_02227B70
+ add r2, r4, #0
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl MOD08_022124D8
+ str r0, [r4, #0x3c]
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl MOD08_02215600
+ ldr r0, [r4, #0x34]
+ mov r1, #2
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x38]
+ mov r1, #2
+ bl FUN_0200C6B0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ bne _022272FA
+ add r0, r6, #0
+ bl MOD08_02212458
+ b _02227300
+_022272FA:
+ add r0, r6, #0
+ bl MOD08_02212460
+_02227300:
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r6, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02227338
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl MOD08_02215600
+ add r5, r0, #0
+ ldr r0, [r4, #0x34]
+ add r1, r5, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x38]
+ add r1, r5, #0
+ bl FUN_0200C6B0
+ b _0222735C
+_02227338:
+ cmp r5, #1
+ bhi _02227346
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl FUN_0200C644
+ b _0222735C
+_02227346:
+ sub r0, r5, #3
+ cmp r0, #1
+ ldr r0, [r4, #0x3c]
+ bhi _02227356
+ mov r1, #3
+ bl FUN_0200C6B0
+ b _0222735C
+_02227356:
+ mov r1, #1
+ bl FUN_0200C6B0
+_0222735C:
+ ldr r0, _022273A8 ; =0x0400004A
+ ldr r1, _022273AC ; =0xFFFFC0FF
+ ldrh r2, [r0]
+ and r2, r1
+ mov r1, #0x16
+ lsl r1, r1, #8
+ orr r2, r1
+ lsr r1, r0, #0xd
+ orr r1, r2
+ strh r1, [r0]
+ ldrh r2, [r0]
+ mov r1, #0x3f
+ bic r2, r1
+ mov r1, #0x1b
+ orr r2, r1
+ mov r1, #0x20
+ orr r2, r1
+ strh r2, [r0]
+ lsl r3, r1, #0x15
+ ldr r2, [r3]
+ ldr r0, _022273B0 ; =0xFFFF1FFF
+ and r2, r0
+ lsl r0, r1, #0xa
+ orr r0, r2
+ str r0, [r3]
+ ldr r0, [r4, #0x38]
+ mov r1, #2
+ bl FUN_0200C90C
+ mov r0, #0
+ strh r0, [r4, #0x10]
+ strh r0, [r4, #0x12]
+ ldr r0, [r4, #0x1c]
+ ldr r1, _022273B4 ; =MOD08_02227104
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022273A8: .word 0x0400004A
+_022273AC: .word 0xFFFFC0FF
+_022273B0: .word 0xFFFF1FFF
+_022273B4: .word MOD08_02227104
+
+ thumb_func_start MOD08_022273B8
+MOD08_022273B8: ; 0x022273B8
+ push {r4, lr}
+ sub sp, #0x18
+ add r1, sp, #0
+ add r4, r0, #0
+ bl MOD08_02227270
+ add r0, sp, #0
+ mov r1, #0
+ mov r2, #3
+ bl MOD08_02227058
+ add r0, sp, #0
+ mov r1, #0xc
+ mov r2, #4
+ bl MOD08_02227060
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD08_02227290
+ add sp, #0x18
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022273E4
+MOD08_022273E4: ; 0x022273E4
+ push {r4, lr}
+ sub sp, #0x18
+ add r1, sp, #0
+ add r4, r0, #0
+ bl MOD08_02227270
+ mov r1, #0
+ add r0, sp, #0
+ sub r2, r1, #3
+ bl MOD08_02227058
+ add r0, sp, #0
+ mov r1, #0xc
+ mov r2, #4
+ bl MOD08_02227060
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD08_02227290
+ add sp, #0x18
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02227410
+MOD08_02227410: ; 0x02227410
+ push {r4, lr}
+ sub sp, #0x18
+ add r1, sp, #0
+ add r4, r0, #0
+ bl MOD08_02227270
+ add r0, sp, #0
+ mov r1, #0
+ mov r2, #3
+ bl MOD08_02227058
+ add r0, sp, #0
+ mov r1, #0xc
+ mov r2, #4
+ bl MOD08_02227060
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD08_02227290
+ add sp, #0x18
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0222743C
+MOD08_0222743C: ; 0x0222743C
+ push {r4, lr}
+ sub sp, #0x18
+ add r1, sp, #0
+ add r4, r0, #0
+ bl MOD08_02227270
+ mov r1, #0
+ add r0, sp, #0
+ sub r2, r1, #6
+ bl MOD08_02227058
+ add r0, sp, #0
+ mov r1, #0xc
+ mov r2, #4
+ bl MOD08_02227060
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD08_02227290
+ add sp, #0x18
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02227468
+MOD08_02227468: ; 0x02227468
+ ldr r3, _0222746C ; =MOD08_02215490
+ bx r3
+ .align 2, 0
+_0222746C: .word MOD08_02215490
+
+ thumb_func_start MOD08_02227470
+MOD08_02227470: ; 0x02227470
+ push {r4, lr}
+ bl MOD08_02215490
+ cmp r0, #5
+ bhi _02227498
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02227486: ; jump table
+ .short _02227492 - _02227486 - 2 ; case 0
+ .short _02227496 - _02227486 - 2 ; case 1
+ .short _02227492 - _02227486 - 2 ; case 2
+ .short _02227496 - _02227486 - 2 ; case 3
+ .short _02227492 - _02227486 - 2 ; case 4
+ .short _02227496 - _02227486 - 2 ; case 5
+_02227492:
+ mov r4, #3
+ b _02227498
+_02227496:
+ mov r4, #4
+_02227498:
+ add r0, r4, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0222749C
+MOD08_0222749C: ; 0x0222749C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r4, #0
+_022274A4:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_02215490
+ cmp r0, r5
+ bne _022274B4
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_022274B4:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _022274A4
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022274C0
+MOD08_022274C0: ; 0x022274C0
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl MOD08_02215490
+ add r5, r0, #0
+ cmp r5, #1
+ bls _02227520
+ mov r4, #0
+_022274D0:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_02215490
+ cmp r5, #5
+ bhi _02227514
+ add r1, r5, r5
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022274E8: ; jump table
+ .short _02227514 - _022274E8 - 2 ; case 0
+ .short _02227514 - _022274E8 - 2 ; case 1
+ .short _022274F4 - _022274E8 - 2 ; case 2
+ .short _02227504 - _022274E8 - 2 ; case 3
+ .short _022274FC - _022274E8 - 2 ; case 4
+ .short _0222750C - _022274E8 - 2 ; case 5
+_022274F4:
+ cmp r0, #4
+ bne _02227514
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_022274FC:
+ cmp r0, #2
+ bne _02227514
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02227504:
+ cmp r0, #5
+ bne _02227514
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_0222750C:
+ cmp r0, #3
+ bne _02227514
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02227514:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _022274D0
+ bl ErrorHandling
+ add r0, r5, #0
+_02227520:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02227524
+MOD08_02227524: ; 0x02227524
+ push {r3, lr}
+ cmp r0, #5
+ bhi _0222755A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02227536: ; jump table
+ .short _02227542 - _02227536 - 2 ; case 0
+ .short _02227546 - _02227536 - 2 ; case 1
+ .short _0222754A - _02227536 - 2 ; case 2
+ .short _0222754E - _02227536 - 2 ; case 3
+ .short _02227552 - _02227536 - 2 ; case 4
+ .short _02227556 - _02227536 - 2 ; case 5
+_02227542:
+ mov r0, #1
+ pop {r3, pc}
+_02227546:
+ mov r0, #0
+ pop {r3, pc}
+_0222754A:
+ mov r0, #3
+ pop {r3, pc}
+_0222754E:
+ mov r0, #2
+ pop {r3, pc}
+_02227552:
+ mov r0, #5
+ pop {r3, pc}
+_02227556:
+ mov r0, #4
+ pop {r3, pc}
+_0222755A:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02227564
+MOD08_02227564: ; 0x02227564
+ push {r3, r4, r5, r6}
+ sub sp, #0x30
+ ldr r6, _022275B8 ; =0x0222C6C8
+ add r5, sp, #0x18
+ mov r4, #0xc
+_0222756E:
+ ldrh r3, [r6]
+ add r6, r6, #2
+ strh r3, [r5]
+ add r5, r5, #2
+ sub r4, r4, #1
+ bne _0222756E
+ ldr r6, _022275BC ; =0x0222C6E0
+ add r5, sp, #0
+ mov r4, #0xc
+_02227580:
+ ldrh r3, [r6]
+ add r6, r6, #2
+ strh r3, [r5]
+ add r5, r5, #2
+ sub r4, r4, #1
+ bne _02227580
+ cmp r1, #0
+ beq _022275A4
+ lsl r3, r0, #2
+ add r0, sp, #0
+ add r1, r0, r3
+ ldrh r0, [r0, r3]
+ add sp, #0x30
+ strh r0, [r2]
+ ldrh r0, [r1, #2]
+ strh r0, [r2, #2]
+ pop {r3, r4, r5, r6}
+ bx lr
+_022275A4:
+ lsl r3, r0, #2
+ add r0, sp, #0x18
+ add r1, r0, r3
+ ldrh r0, [r0, r3]
+ strh r0, [r2]
+ ldrh r0, [r1, #2]
+ strh r0, [r2, #2]
+ add sp, #0x30
+ pop {r3, r4, r5, r6}
+ bx lr
+ .align 2, 0
+_022275B8: .word 0x0222C6C8
+_022275BC: .word 0x0222C6E0
+
+ thumb_func_start MOD08_022275C0
+MOD08_022275C0: ; 0x022275C0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ bl MOD08_02227468
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212004
+ add r1, r0, #0
+ add r0, r6, #0
+ add r2, r4, #0
+ bl MOD08_02227564
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022275E0
+MOD08_022275E0: ; 0x022275E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x114
+ add r7, r2, #0
+ mov r2, #0x12
+ str r3, [sp]
+ ldr r6, _02227654 ; =0x0222C6F8
+ add r5, r0, #0
+ add r4, r1, #0
+ add r3, sp, #4
+ lsl r2, r2, #4
+_022275FC:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022275FC
+ cmp r7, #1
+ bne _0222761E
+ cmp r5, #0
+ beq _02227612
+ cmp r5, #1
+ beq _02227616
+ b _0222761A
+_02227612:
+ mov r5, #6
+ b _0222761E
+_02227616:
+ mov r5, #7
+ b _0222761E
+_0222761A:
+ bl ErrorHandling
+_0222761E:
+ mov r0, #0x12
+ lsl r0, r0, #4
+ add r1, sp, #4
+ mul r0, r5
+ add r0, r1, r0
+ ldr r1, _02227658 ; =0x00000908
+ add r1, sp
+ ldr r1, [r1, #0x10]
+ lsl r2, r1, #1
+ ldr r1, [sp]
+ add r2, r1, r2
+ mov r1, #0xc
+ add r3, r2, #0
+ mul r3, r1
+ add r1, r0, r3
+ ldr r2, [r1, #8]
+ ldr r1, [r1, #4]
+ ldr r0, [r0, r3]
+ str r0, [r4]
+ str r1, [r4, #4]
+ str r2, [r4, #8]
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x114
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02227654: .word 0x0222C6F8
+_02227658: .word 0x00000908
+
+ thumb_func_start MOD08_0222765C
+MOD08_0222765C: ; 0x0222765C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #0
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_0222766C
+MOD08_0222766C: ; 0x0222766C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #1
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_0222767C
+MOD08_0222767C: ; 0x0222767C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #2
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_0222768C
+MOD08_0222768C: ; 0x0222768C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #3
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_0222769C
+MOD08_0222769C: ; 0x0222769C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #4
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022276AC
+MOD08_022276AC: ; 0x022276AC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #5
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022276BC
+MOD08_022276BC: ; 0x022276BC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #6
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022276CC
+MOD08_022276CC: ; 0x022276CC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #7
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022276DC
+MOD08_022276DC: ; 0x022276DC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #8
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022276EC
+MOD08_022276EC: ; 0x022276EC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #9
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022276FC
+MOD08_022276FC: ; 0x022276FC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #0xa
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_0222770C
+MOD08_0222770C: ; 0x0222770C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #0xb
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_0222771C
+MOD08_0222771C: ; 0x0222771C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222774C
+MOD08_0222774C: ; 0x0222774C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222766C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222777C
+MOD08_0222777C: ; 0x0222777C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222767C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_022277AC
+MOD08_022277AC: ; 0x022277AC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222768C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_022277DC
+MOD08_022277DC: ; 0x022277DC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222769C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222780C
+MOD08_0222780C: ; 0x0222780C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_022276AC
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222783C
+MOD08_0222783C: ; 0x0222783C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_022276BC
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222786C
+MOD08_0222786C: ; 0x0222786C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_022276CC
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222789C
+MOD08_0222789C: ; 0x0222789C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_022276DC
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_022278CC
+MOD08_022278CC: ; 0x022278CC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_022276EC
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_022278FC
+MOD08_022278FC: ; 0x022278FC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_022276FC
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222792C
+MOD08_0222792C: ; 0x0222792C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222770C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222795C
+MOD08_0222795C: ; 0x0222795C
+ mov r2, #0
+ ldr r1, _02227968 ; =0x000068D0
+ str r2, [r0]
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ bx lr
+ .align 2, 0
+_02227968: .word 0x000068D0
+
+ thumb_func_start MOD08_0222796C
+MOD08_0222796C: ; 0x0222796C
+ push {r3, lr}
+ bl MOD08_0222765C
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02227974
+MOD08_02227974: ; 0x02227974
+ push {r3, lr}
+ add r3, r1, #0
+ cmp r0, #0
+ bne _02227984
+ add r0, r3, #0
+ bl FUN_02013428
+ pop {r3, pc}
+_02227984:
+ ldr r2, _02227990 ; =0x0222C6BC
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r3]
+ pop {r3, pc}
+ .align 2, 0
+_02227990: .word 0x0222C6BC
+
+ thumb_func_start MOD08_02227994
+MOD08_02227994: ; 0x02227994
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r1, #0
+ mvn r1, r1
+ add r4, r2, #0
+ cmp r5, r1
+ bne _022279A4
+ mov r5, #0x1a
+_022279A4:
+ mov r1, #0
+ mvn r1, r1
+ cmp r4, r1
+ bne _022279AE
+ mov r4, #5
+_022279AE:
+ mov r1, #2
+ bl MOD08_022155C4
+ mov r1, #1
+ add r2, r1, #0
+ lsl r2, r0
+ orr r2, r1
+ ldr r0, _022279CC ; =0x04000050
+ mov r1, #0
+ add r3, r5, #0
+ str r4, [sp]
+ bl G2x_SetBlendAlpha_
+ pop {r3, r4, r5, pc}
+ nop
+_022279CC: .word 0x04000050
+
+ thumb_func_start MOD08_022279D0
+MOD08_022279D0: ; 0x022279D0
+ push {r3, r4, r5, lr}
+ mov r0, #0
+ add r4, r2, #0
+ mvn r0, r0
+ add r5, r1, #0
+ cmp r4, r0
+ bne _022279E0
+ mov r4, #0x1a
+_022279E0:
+ mov r0, #0
+ mvn r0, r0
+ cmp r3, r0
+ bne _022279EA
+ mov r3, #5
+_022279EA:
+ ldr r0, _022279FC ; =0x04000050
+ str r3, [sp]
+ mov r1, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl G2x_SetBlendAlpha_
+ pop {r3, r4, r5, pc}
+ nop
+_022279FC: .word 0x04000050
+
+ thumb_func_start MOD08_02227A00
+MOD08_02227A00: ; 0x02227A00
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0
+ add r5, r1, #0
+ mvn r0, r0
+ add r4, r2, #0
+ cmp r5, r0
+ bne _02227A12
+ mov r5, #0x1a
+_02227A12:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02227A1C
+ mov r4, #5
+_02227A1C:
+ add r0, r6, #0
+ mov r1, #2
+ bl MOD08_022155C4
+ mov r1, #1
+ add r2, r1, #0
+ lsl r2, r0
+ mov r0, #0x11
+ add r7, r2, #0
+ orr r7, r0
+ add r0, r6, #0
+ bl MOD08_022155C4
+ mov r1, #1
+ lsl r1, r0
+ ldr r0, _02227A48 ; =0x04000050
+ add r2, r7, #0
+ add r3, r5, #0
+ str r4, [sp]
+ bl G2x_SetBlendAlpha_
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02227A48: .word 0x04000050
+
+ thumb_func_start MOD08_02227A4C
+MOD08_02227A4C: ; 0x02227A4C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ cmp r1, #0
+ bne _02227AA0
+ mov r1, #1
+ bl MOD08_022155C4
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_022155C4
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022155C4
+ add r2, r0, #0
+ mov r0, #1
+ add r3, r0, #0
+ add r1, r0, #0
+ lsl r3, r7
+ lsl r0, r2
+ lsl r1, r6
+ orr r0, r3
+ orr r1, r0
+ mov r0, #0x11
+ add r2, r1, #0
+ orr r2, r0
+ ldr r0, _02227B20 ; =0x04000048
+ ldrh r1, [r0]
+ mov r0, #0x3f
+ bic r1, r0
+ orr r1, r2
+ cmp r4, #0
+ beq _02227A9A
+ mov r0, #0x20
+ orr r1, r0
+_02227A9A:
+ ldr r0, _02227B20 ; =0x04000048
+ strh r1, [r0]
+ b _02227AEA
+_02227AA0:
+ mov r1, #1
+ bl MOD08_022155C4
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_022155C4
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022155C4
+ add r2, r0, #0
+ mov r0, #1
+ add r3, r0, #0
+ add r1, r0, #0
+ lsl r0, r2
+ lsl r3, r7
+ lsl r1, r6
+ orr r0, r3
+ orr r1, r0
+ ldr r2, _02227B20 ; =0x04000048
+ add r3, r1, #0
+ mov r0, #0x11
+ orr r3, r0
+ ldrh r1, [r2]
+ ldr r0, _02227B24 ; =0xFFFFC0FF
+ and r1, r0
+ lsl r0, r3, #8
+ orr r1, r0
+ cmp r4, #0
+ beq _02227AE6
+ lsr r0, r2, #0xd
+ orr r1, r0
+_02227AE6:
+ ldr r0, _02227B20 ; =0x04000048
+ strh r1, [r0]
+_02227AEA:
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022155C4
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022155C4
+ mov r1, #1
+ add r2, r1, #0
+ lsl r1, r0
+ lsl r2, r4
+ orr r1, r2
+ add r3, r1, #0
+ ldr r1, _02227B28 ; =0x0400004A
+ mov r0, #0x11
+ orr r3, r0
+ ldrh r2, [r1]
+ mov r0, #0x3f
+ bic r2, r0
+ orr r2, r3
+ mov r0, #0x20
+ orr r0, r2
+ strh r0, [r1]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02227B20: .word 0x04000048
+_02227B24: .word 0xFFFFC0FF
+_02227B28: .word 0x0400004A
+
+ thumb_func_start MOD08_02227B2C
+MOD08_02227B2C: ; 0x02227B2C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ cmp r5, #0
+ bne _02227B3E
+ mov r0, #0
+ strh r0, [r4]
+ strh r0, [r4, #2]
+ pop {r3, r4, r5, pc}
+_02227B3E:
+ bl FUN_02008268
+ cmp r0, #0
+ bne _02227B4E
+ mov r0, #0
+ strh r0, [r4]
+ strh r0, [r4, #2]
+ pop {r3, r4, r5, pc}
+_02227B4E:
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02227B64
+MOD08_02227B64: ; 0x02227B64
+ ldr r3, _02227B6C ; =FUN_0200C7A0
+ add r2, r1, #2
+ bx r3
+ nop
+_02227B6C: .word FUN_0200C7A0
+
+ thumb_func_start MOD08_02227B70
+MOD08_02227B70: ; 0x02227B70
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0
+ strb r1, [r4]
+ strb r1, [r4, #1]
+ strb r1, [r4, #2]
+ add r5, r0, #0
+ strb r1, [r4, #3]
+ str r5, [r4, #4]
+ bl MOD08_02212520
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ bl MOD08_02212518
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl MOD08_02212490
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ bl MOD08_02215504
+ str r0, [r4, #0x18]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02227BAC
+MOD08_02227BAC: ; 0x02227BAC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r1, #0
+ add r4, r3, #0
+ mov r1, #0
+ str r1, [r4]
+ mov r1, #0x40
+ and r1, r7
+ add r6, r0, #0
+ add r5, r2, #0
+ cmp r1, #0x40
+ beq _02227BC6
+ b _02227CE8
+_02227BC6:
+ bl MOD08_02212458
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ cmp r0, #0
+ beq _02227C08
+ str r7, [r1, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227C08:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_022274C0
+ str r0, [sp, #4]
+ ldr r1, [sp, #4]
+ add r0, r6, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ ldr r1, [r0, #8]
+ cmp r1, #0
+ beq _02227C50
+ ldr r1, [sp, #4]
+ str r1, [r0, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227C50:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_02215490
+ bl MOD08_02227524
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_0222749C
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ cmp r0, #0
+ beq _02227CA2
+ str r7, [r1, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227CA2:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_022274C0
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_022154D4
+ ldr r2, [r4]
+ mov r1, #0x14
+ add r3, r2, #0
+ mul r3, r1
+ add r2, r5, r3
+ str r0, [r2, #8]
+ ldr r0, [r4]
+ add r2, r0, #0
+ mul r2, r1
+ add r2, r5, r2
+ ldr r0, [r2, #8]
+ cmp r0, #0
+ beq _02227DCA
+ str r7, [r2, #0x10]
+ ldr r0, [r4]
+ mul r1, r0
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add sp, #0x10
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02227CE8:
+ mov r1, #0x20
+ and r1, r7
+ cmp r1, #0x20
+ bne _02227DE8
+ bl MOD08_02212458
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_022274C0
+ str r0, [sp, #8]
+ cmp r0, r7
+ beq _02227D42
+ ldr r1, [sp, #8]
+ add r0, r6, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ ldr r1, [r0, #8]
+ cmp r1, #0
+ beq _02227D42
+ ldr r1, [sp, #8]
+ str r1, [r0, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227D42:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_02215490
+ bl MOD08_02227524
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_0222749C
+ str r0, [sp]
+ cmp r0, r7
+ beq _02227D9A
+ ldr r1, [sp]
+ add r0, r6, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ ldr r1, [r0, #8]
+ cmp r1, #0
+ beq _02227D9A
+ ldr r1, [sp]
+ str r1, [r0, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227D9A:
+ ldr r1, [sp]
+ add r0, r6, #0
+ bl MOD08_022274C0
+ str r0, [sp, #0xc]
+ cmp r0, r7
+ beq _02227DCA
+ ldr r1, [sp, #0xc]
+ add r0, r6, #0
+ bl MOD08_022154D4
+ ldr r2, [r4]
+ mov r1, #0x14
+ add r3, r2, #0
+ mul r3, r1
+ add r2, r5, r3
+ str r0, [r2, #8]
+ ldr r0, [r4]
+ add r2, r0, #0
+ mul r2, r1
+ add r2, r5, r2
+ ldr r0, [r2, #8]
+ cmp r0, #0
+ bne _02227DCC
+_02227DCA:
+ b _02227F82
+_02227DCC:
+ ldr r0, [sp, #0xc]
+ str r0, [r2, #0x10]
+ ldr r0, [r4]
+ mul r1, r0
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add sp, #0x10
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02227DE8:
+ mov r1, #2
+ and r1, r7
+ cmp r1, #2
+ bne _02227E42
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _02227E42
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227E42:
+ add r0, r6, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _02227EB8
+ mov r0, #4
+ and r0, r7
+ cmp r0, #4
+ bne _02227EB8
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022274C0
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _02227EB8
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022274C0
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227EB8:
+ mov r0, #8
+ and r0, r7
+ cmp r0, #8
+ bne _02227F14
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _02227F14
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227F14:
+ add r0, r6, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _02227F82
+ mov r0, #0x10
+ and r0, r7
+ cmp r0, #0x10
+ bne _02227F82
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022274C0
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022154D4
+ ldr r2, [r4]
+ mov r1, #0x14
+ add r3, r2, #0
+ mul r3, r1
+ add r2, r5, r3
+ str r0, [r2, #8]
+ ldr r0, [r4]
+ mul r1, r0
+ add r0, r5, r1
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _02227F82
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022274C0
+ ldr r2, [r4]
+ mov r1, #0x14
+ add r3, r2, #0
+ mul r3, r1
+ add r2, r5, r3
+ str r0, [r2, #0x10]
+ ldr r0, [r4]
+ mul r1, r0
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227F82:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02227F88
+MOD08_02227F88: ; 0x02227F88
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r3, #0
+ mov r1, #0
+ str r1, [r4]
+ mov r1, #2
+ and r1, r6
+ add r7, r0, #0
+ add r5, r2, #0
+ cmp r1, #2
+ bne _02227FC8
+ ldr r1, [r4]
+ bl MOD08_022124D8
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #0xc]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #0xc]
+ add r1, r1, #4
+ bl MOD08_02227B64
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227FC8:
+ mov r0, #4
+ and r0, r6
+ cmp r0, #4
+ bne _02227FFC
+ ldr r1, [r4]
+ add r0, r7, #0
+ bl MOD08_022124D8
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #0xc]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #0xc]
+ add r1, r1, #4
+ bl MOD08_02227B64
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227FFC:
+ mov r0, #8
+ and r0, r6
+ cmp r0, #8
+ bne _02228030
+ ldr r1, [r4]
+ add r0, r7, #0
+ bl MOD08_022124D8
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #0xc]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #0xc]
+ add r1, r1, #4
+ bl MOD08_02227B64
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02228030:
+ mov r0, #0x10
+ and r0, r6
+ cmp r0, #0x10
+ bne _02228060
+ ldr r1, [r4]
+ add r0, r7, #0
+ bl MOD08_022124D8
+ ldr r2, [r4]
+ mov r1, #0x14
+ add r3, r2, #0
+ mul r3, r1
+ add r2, r5, r3
+ str r0, [r2, #0xc]
+ ldr r0, [r4]
+ mul r1, r0
+ add r1, r5, r1
+ ldr r0, [r1, #0xc]
+ add r1, r1, #4
+ bl MOD08_02227B64
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02228060:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02228064
+MOD08_02228064: ; 0x02228064
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ cmp r4, #0
+ bne _02228072
+ bl ErrorHandling
+_02228072:
+ add r0, r4, #0
+ bl MOD08_02212014
+ add r1, r5, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _02228086
+ bl ErrorHandling
+_02228086:
+ add r0, r4, #0
+ mov r1, #0
+ add r2, r5, #0
+ bl memset
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02228094
+MOD08_02228094: ; 0x02228094
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0222809E
+ bl ErrorHandling
+_0222809E:
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022280A8
+MOD08_022280A8: ; 0x022280A8
+ cmp r0, #1
+ blt _022280B2
+ ldr r1, _022280C0 ; =0x00000113
+ cmp r0, r1
+ ble _022280B6
+_022280B2:
+ mov r0, #4
+ b _022280BC
+_022280B6:
+ cmp r0, #0xff
+ blt _022280BC
+ sub r0, #0xff
+_022280BC:
+ sub r0, r0, #1
+ bx lr
+ .align 2, 0
+_022280C0: .word 0x00000113
+
+ thumb_func_start MOD08_022280C4
+MOD08_022280C4: ; 0x022280C4
+ push {r3, r4, r5}
+ sub sp, #0x2c
+ ldr r5, _02228100 ; =0x0222D0A4
+ add r2, r0, #0
+ add r4, sp, #0
+ mov r3, #5
+_022280D0:
+ ldmia r5!, {r0, r1}
+ stmia r4!, {r0, r1}
+ sub r3, r3, #1
+ bne _022280D0
+ ldr r0, [r5]
+ str r0, [r4]
+ mov r0, #0
+ add r3, r0, #0
+ add r4, sp, #0
+_022280E2:
+ ldr r1, [r4]
+ cmp r2, r1
+ bne _022280F0
+ add sp, #0x2c
+ mov r0, #1
+ pop {r3, r4, r5}
+ bx lr
+_022280F0:
+ add r3, r3, #1
+ add r4, r4, #4
+ cmp r3, #0xb
+ blo _022280E2
+ add sp, #0x2c
+ pop {r3, r4, r5}
+ bx lr
+ nop
+_02228100: .word 0x0222D0A4
+
+ thumb_func_start MOD08_02228104
+MOD08_02228104: ; 0x02228104
+ push {r4, r5}
+ sub sp, #0x18
+ ldr r3, _0222813C ; =0x0222D004
+ add r2, sp, #0
+ add r5, r0, #0
+ add r4, r2, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ mov r0, #0
+ add r2, r0, #0
+_02228120:
+ ldr r1, [r4]
+ cmp r5, r1
+ bne _0222812E
+ add sp, #0x18
+ mov r0, #1
+ pop {r4, r5}
+ bx lr
+_0222812E:
+ add r2, r2, #1
+ add r4, r4, #4
+ cmp r2, #6
+ blo _02228120
+ add sp, #0x18
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_0222813C: .word 0x0222D004
+
+ thumb_func_start MOD08_02228140
+MOD08_02228140: ; 0x02228140
+ push {r3, r4, r5}
+ sub sp, #0xc
+ ldr r5, _02228174 ; =0x0222CFF8
+ add r3, r0, #0
+ ldmia r5!, {r0, r1}
+ add r4, sp, #0
+ add r2, r4, #0
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r4]
+ mov r0, #1
+ mov r4, #0
+_02228158:
+ ldr r1, [r2]
+ cmp r3, r1
+ bne _02228166
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, r5}
+ bx lr
+_02228166:
+ add r4, r4, #1
+ add r2, r2, #4
+ cmp r4, #3
+ blo _02228158
+ add sp, #0xc
+ pop {r3, r4, r5}
+ bx lr
+ .align 2, 0
+_02228174: .word 0x0222CFF8
+
+ thumb_func_start MOD08_02228178
+MOD08_02228178: ; 0x02228178
+ push {r3, lr}
+ bl MOD08_022280A8
+ lsl r1, r0, #3
+ ldr r0, _02228188 ; =0x0222D208
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ nop
+_02228188: .word 0x0222D208
+
+ thumb_func_start MOD08_0222818C
+MOD08_0222818C: ; 0x0222818C
+ push {r3, lr}
+ bl MOD08_022280A8
+ lsl r1, r0, #3
+ ldr r0, _0222819C ; =0x0222D20C
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ nop
+_0222819C: .word 0x0222D20C
+
+ thumb_func_start MOD08_022281A0
+MOD08_022281A0: ; 0x022281A0
+ push {r3, lr}
+ bl MOD08_022280A8
+ mov r1, #0xc
+ mul r1, r0
+ ldr r0, _022281B0 ; =0x0222D2A8
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ .align 2, 0
+_022281B0: .word 0x0222D2A8
+
+ thumb_func_start MOD08_022281B4
+MOD08_022281B4: ; 0x022281B4
+ push {r3, lr}
+ bl MOD08_022280A8
+ mov r1, #0xc
+ mul r1, r0
+ ldr r0, _022281C4 ; =0x0222D2B0
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ .align 2, 0
+_022281C4: .word 0x0222D2B0
+
+ thumb_func_start MOD08_022281C8
+MOD08_022281C8: ; 0x022281C8
+ push {r3, lr}
+ bl MOD08_022280A8
+ mov r1, #0xc
+ mul r1, r0
+ ldr r0, _022281D8 ; =0x0222D2AC
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ .align 2, 0
+_022281D8: .word 0x0222D2AC
+
+ thumb_func_start MOD08_022281DC
+MOD08_022281DC: ; 0x022281DC
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD08_022280A8
+ lsl r2, r0, #4
+ ldr r0, _022281F0 ; =0x0222D398
+ lsl r1, r4, #2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+ .align 2, 0
+_022281F0: .word 0x0222D398
+
+ thumb_func_start MOD08_022281F4
+MOD08_022281F4: ; 0x022281F4
+ push {r4, lr}
+ mov r1, #0xb8
+ add r4, r0, #0
+ bl AllocFromHeap
+ cmp r0, #0
+ bne _0222820A
+ bl ErrorHandling
+ mov r0, #0
+ pop {r4, pc}
+_0222820A:
+ add r1, r0, #0
+ str r4, [r0]
+ mov r2, #0
+ add r1, #0x88
+ str r2, [r1]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02228218
+MOD08_02228218: ; 0x02228218
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl MOD08_022281F4
+ add r1, r5, #0
+ add r4, r0, #0
+ bl MOD08_02228244
+ mov r1, #0
+ str r1, [r4, #0x10]
+ add r2, r4, #0
+ add r0, r1, #0
+_02228230:
+ str r0, [r2, #0x14]
+ str r0, [r2, #0x38]
+ str r0, [r2, #0x5c]
+ add r1, r1, #1
+ add r2, r2, #4
+ cmp r1, #9
+ blt _02228230
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02228244
+MOD08_02228244: ; 0x02228244
+ push {r4, lr}
+ add r3, r1, #0
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, r4, #4
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r1, #0xa1
+ str r0, [r2]
+ ldr r0, [r4, #0xc]
+ mov r2, #0
+ bl GetMonData
+ add r1, r4, #0
+ add r1, #0x9c
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ cmp r0, #0xd
+ blt _02228272
+ bl ErrorHandling
+_02228272:
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0222829E
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x94
+ str r2, [r0]
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02228290
+ add r4, #0x98
+ str r0, [r4]
+ pop {r4, pc}
+_02228290:
+ ldr r0, [r4, #0xc]
+ mov r1, #0x9a
+ bl GetMonData
+ add r4, #0x98
+ str r0, [r4]
+ pop {r4, pc}
+_0222829E:
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x94
+ str r1, [r0]
+ ldr r0, [r4, #0xc]
+ add r4, #0xa0
+ mov r1, #0xaa
+ add r2, r4, #0
+ bl GetMonData
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022282B4
+MOD08_022282B4: ; 0x022282B4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r4, r1, #0
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #3
+ bls _022282C8
+ b _02228520
+_022282C8:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022282D4: ; jump table
+ .short _022282DC - _022282D4 - 2 ; case 0
+ .short _02228376 - _022282D4 - 2 ; case 1
+ .short _02228402 - _022282D4 - 2 ; case 2
+ .short _0222848E - _022282D4 - 2 ; case 3
+_022282DC:
+ ldr r1, [r4]
+ mov r0, #0x63
+ bl NARC_ctor
+ add r1, r4, #0
+ add r1, #0x8c
+ str r0, [r1]
+ add r0, r4, #0
+ add r6, r4, #0
+ str r0, [sp, #0x14]
+ add r0, #0xa0
+ mov r5, #0
+ add r6, #0x10
+ str r0, [sp, #0x14]
+_022282F8:
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0
+ bl FUN_02029CC8
+ add r7, r0, #0
+ beq _02228360
+ bl FUN_02029CE0
+ cmp r0, #0
+ beq _02228360
+ cmp r0, #0x51
+ bge _02228360
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02085FF4
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r7, [r0, #0x38]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ beq _02228332
+ bl ErrorHandling
+_02228332:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ ldr r1, [r4]
+ ldr r2, [sp, #0x10]
+ mov r3, #0
+ bl MOD08_02215B00
+ ldr r1, [r4, #0x10]
+ lsl r1, r1, #2
+ add r1, r4, r1
+ str r0, [r1, #0x14]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _0222835A
+ bl ErrorHandling
+_0222835A:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+_02228360:
+ add r5, r5, #1
+ cmp r5, #2
+ blt _022282F8
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ add r4, #0x90
+ add r0, r0, #1
+ add sp, #0x24
+ str r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_02228376:
+ add r0, r4, #0
+ add r6, r4, #0
+ str r0, [sp, #0x18]
+ add r0, #0xa0
+ mov r5, #2
+ add r6, #0x10
+ str r0, [sp, #0x18]
+_02228384:
+ ldr r0, [sp, #0x18]
+ add r1, r5, #0
+ bl FUN_02029CC8
+ add r7, r0, #0
+ beq _022283EC
+ bl FUN_02029CE0
+ cmp r0, #0
+ beq _022283EC
+ cmp r0, #0x51
+ bge _022283EC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02085FF4
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r7, [r0, #0x38]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ beq _022283BE
+ bl ErrorHandling
+_022283BE:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ ldr r1, [r4]
+ ldr r2, [sp, #4]
+ mov r3, #0
+ bl MOD08_02215B00
+ ldr r1, [r4, #0x10]
+ lsl r1, r1, #2
+ add r1, r4, r1
+ str r0, [r1, #0x14]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _022283E6
+ bl ErrorHandling
+_022283E6:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+_022283EC:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02228384
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ add r4, #0x90
+ add r0, r0, #1
+ add sp, #0x24
+ str r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_02228402:
+ add r0, r4, #0
+ add r6, r4, #0
+ str r0, [sp, #0x1c]
+ add r0, #0xa0
+ mov r5, #4
+ add r6, #0x10
+ str r0, [sp, #0x1c]
+_02228410:
+ ldr r0, [sp, #0x1c]
+ add r1, r5, #0
+ bl FUN_02029CC8
+ add r7, r0, #0
+ beq _02228478
+ bl FUN_02029CE0
+ cmp r0, #0
+ beq _02228478
+ cmp r0, #0x51
+ bge _02228478
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02085FF4
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r7, [r0, #0x38]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ beq _0222844A
+ bl ErrorHandling
+_0222844A:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ ldr r1, [r4]
+ ldr r2, [sp, #8]
+ mov r3, #0
+ bl MOD08_02215B00
+ ldr r1, [r4, #0x10]
+ lsl r1, r1, #2
+ add r1, r4, r1
+ str r0, [r1, #0x14]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _02228472
+ bl ErrorHandling
+_02228472:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+_02228478:
+ add r5, r5, #1
+ cmp r5, #6
+ blt _02228410
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ add r4, #0x90
+ add r0, r0, #1
+ add sp, #0x24
+ str r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_0222848E:
+ add r0, r4, #0
+ add r6, r4, #0
+ str r0, [sp, #0x20]
+ add r0, #0xa0
+ mov r5, #6
+ add r6, #0x10
+ str r0, [sp, #0x20]
+_0222849C:
+ ldr r0, [sp, #0x20]
+ add r1, r5, #0
+ bl FUN_02029CC8
+ add r7, r0, #0
+ beq _02228504
+ bl FUN_02029CE0
+ cmp r0, #0
+ beq _02228504
+ cmp r0, #0x51
+ bge _02228504
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02085FF4
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r7, [r0, #0x38]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ beq _022284D6
+ bl ErrorHandling
+_022284D6:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ ldr r1, [r4]
+ ldr r2, [sp, #0xc]
+ mov r3, #0
+ bl MOD08_02215B00
+ ldr r1, [r4, #0x10]
+ lsl r1, r1, #2
+ add r1, r4, r1
+ str r0, [r1, #0x14]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _022284FE
+ bl ErrorHandling
+_022284FE:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+_02228504:
+ add r5, r5, #1
+ cmp r5, #8
+ blt _0222849C
+ add r0, r4, #0
+ mov r1, #0xff
+ add r0, #0x90
+ add r4, #0x8c
+ str r1, [r0]
+ ldr r0, [r4]
+ bl NARC_dtor
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_02228520:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02228524
+MOD08_02228524: ; 0x02228524
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0222854E
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ bl MOD08_02228178
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [r4, #0x10]
+ ldr r0, [r4]
+ mov r1, #0x63
+ mov r3, #0
+ bl MOD08_02215ACC
+ str r0, [r4, #0x14]
+ pop {r4, pc}
+_0222854E:
+ mov r1, #0
+ add r0, r4, #0
+ mov r2, #0xfa
+ str r1, [r4, #0x10]
+ add r0, #0x90
+ str r1, [r0]
+ ldr r0, _0222856C ; =MOD08_022282B4
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ add r1, r4, #0
+ bl MOD08_022282B4
+ pop {r4, pc}
+ .align 2, 0
+_0222856C: .word MOD08_022282B4
+
+ thumb_func_start MOD08_02228570
+MOD08_02228570: ; 0x02228570
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228574
+MOD08_02228574: ; 0x02228574
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r1, #1
+ add r0, #0x88
+ str r1, [r0]
+ bl MOD08_0221268C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_0222865C
+ mov r2, #0xfa
+ ldr r0, _022285A0 ; =MOD08_022285BC
+ add r1, r5, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ add r5, #0x84
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+ nop
+_022285A0: .word MOD08_022285BC
+
+ thumb_func_start MOD08_022285A4
+MOD08_022285A4: ; 0x022285A4
+ ldr r3, _022285AC ; =MOD08_02228574
+ ldr r1, _022285B0 ; =MOD08_02228788
+ bx r3
+ nop
+_022285AC: .word MOD08_02228574
+_022285B0: .word MOD08_02228788
+
+ thumb_func_start MOD08_022285B4
+MOD08_022285B4: ; 0x022285B4
+ add r0, #0x88
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022285BC
+MOD08_022285BC: ; 0x022285BC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ str r0, [sp]
+ ldr r0, [r6, #0x10]
+ mov r7, #0
+ cmp r0, #9
+ ble _022285CE
+ bl ErrorHandling
+_022285CE:
+ ldr r0, [r6, #0x10]
+ mov r4, #0
+ cmp r0, #0
+ ble _02228606
+ add r5, r6, #0
+_022285D8:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _022285FC
+ bl FUN_020133C8
+ cmp r0, #0
+ bne _022285FA
+ ldr r0, [r5, #0x5c]
+ cmp r0, #0
+ beq _022285FA
+ ldr r0, [r5, #0x14]
+ bl MOD08_02215B40
+ mov r0, #0
+ str r0, [r5, #0x14]
+ str r0, [r5, #0x5c]
+ b _022285FC
+_022285FA:
+ mov r7, #1
+_022285FC:
+ ldr r0, [r6, #0x10]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _022285D8
+_02228606:
+ cmp r7, #0
+ bne _02228616
+ mov r0, #0
+ add r6, #0x88
+ str r0, [r6]
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_02228616:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02228618
+MOD08_02228618: ; 0x02228618
+ ldr r3, _0222861C ; =FreeToHeap
+ bx r3
+ .align 2, 0
+_0222861C: .word FreeToHeap
+
+ thumb_func_start MOD08_02228620
+MOD08_02228620: ; 0x02228620
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ bne _02228654
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ str r1, [r0]
+ ldr r0, [r4, #0x10]
+ ldr r2, [r4, #0x18]
+ mov r1, #0
+ add r3, r4, #0
+ bl FUN_020133AC
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02013440
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+_02228654:
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222865C
+MOD08_0222865C: ; 0x0222865C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r7, r1, #0
+ cmp r0, #0
+ bne _0222869A
+ add r0, r6, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ bl MOD08_0222818C
+ add r5, r0, #0
+ mov r4, #0
+ cmp r5, #0
+ ble _0222868E
+_0222867C:
+ ldr r0, [r6, #0x14]
+ add r1, r4, #0
+ add r2, r7, #0
+ add r3, r6, #0
+ bl FUN_020133AC
+ add r4, r4, #1
+ cmp r4, r5
+ blt _0222867C
+_0222868E:
+ mov r1, #1
+ str r1, [r6, #0x5c]
+ ldr r0, [r6, #0x14]
+ bl FUN_02013440
+ pop {r3, r4, r5, r6, r7, pc}
+_0222869A:
+ ldr r0, [r6, #0x10]
+ mov r7, #0
+ cmp r0, #0
+ ble _02228700
+ add r0, r6, #0
+ str r0, [sp]
+ add r0, #0x5c
+ add r5, r6, #0
+ str r0, [sp]
+_022286AC:
+ ldr r0, [r6]
+ mov r1, #0x1c
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _022286BC
+ bl ErrorHandling
+_022286BC:
+ str r7, [r4]
+ ldr r0, [r6, #4]
+ str r0, [r4, #8]
+ ldr r0, _02228704 ; =MOD08_022287C4
+ str r0, [r4, #0x18]
+ mov r0, #0
+ str r0, [r5, #0x5c]
+ ldr r0, [sp]
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x14]
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x38]
+ str r0, [r4, #0x14]
+ cmp r0, #0
+ bne _022286DE
+ bl ErrorHandling
+_022286DE:
+ ldr r0, [r4, #0x14]
+ bl MOD08_0222A078
+ str r0, [r4, #4]
+ ldr r0, _02228708 ; =MOD08_02228620
+ ldr r2, _0222870C ; =0x000003E9
+ add r1, r4, #0
+ bl FUN_0200CA44
+ ldr r0, [sp]
+ add r7, r7, #1
+ add r0, r0, #4
+ str r0, [sp]
+ ldr r0, [r6, #0x10]
+ add r5, r5, #4
+ cmp r7, r0
+ blt _022286AC
+_02228700:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02228704: .word MOD08_022287C4
+_02228708: .word MOD08_02228620
+_0222870C: .word 0x000003E9
+
+ thumb_func_start MOD08_02228710
+MOD08_02228710: ; 0x02228710
+ push {r3, r4, r5, lr}
+ mov r2, #0
+ mov r3, #1
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_0222796C
+ cmp r5, #5
+ bhi _02228766
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222872E: ; jump table
+ .short _0222873A - _0222872E - 2 ; case 0
+ .short _02228742 - _0222872E - 2 ; case 1
+ .short _0222874C - _0222872E - 2 ; case 2
+ .short _02228754 - _0222872E - 2 ; case 3
+ .short _0222875E - _0222872E - 2 ; case 4
+ .short _02228766 - _0222872E - 2 ; case 5
+_0222873A:
+ mov r5, #0
+ add r0, r5, #0
+ sub r0, #0x10
+ b _0222876E
+_02228742:
+ mov r5, #0xe
+ mvn r5, r5
+ add r0, r5, #0
+ sub r0, #0xa
+ b _0222876E
+_0222874C:
+ mov r5, #7
+ mvn r5, r5
+ sub r0, r5, #4
+ b _0222876E
+_02228754:
+ mov r5, #0xd
+ mvn r5, r5
+ add r0, r5, #0
+ sub r0, #0xb
+ b _0222876E
+_0222875E:
+ mov r5, #7
+ mvn r5, r5
+ sub r0, r5, #4
+ b _0222876E
+_02228766:
+ mov r5, #0xf
+ mvn r5, r5
+ add r0, r5, #0
+ sub r0, #0xd
+_0222876E:
+ add r5, #0xa
+ ldr r3, [r4]
+ mov r1, #0xac
+ add r2, r5, #0
+ mul r2, r1
+ sub r2, r3, r2
+ str r2, [r4]
+ add r0, #0x20
+ ldr r2, [r4, #4]
+ mul r1, r0
+ sub r0, r2, r1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02228788
+MOD08_02228788: ; 0x02228788
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl FUN_0201341C
+ ldr r0, [r0, #4]
+ add r1, sp, #0
+ bl MOD08_02228710
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r4, #0x30]
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022287C4
+MOD08_022287C4: ; 0x022287C4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ add r1, sp, #0
+ bl MOD08_02228710
+ ldr r0, [r4, #0x14]
+ bl FUN_02029CE0
+ bl FUN_02086018
+ ldr r0, [r4, #0x14]
+ bl FUN_02029CE4
+ add r6, r0, #0
+ ldr r0, [r4, #0x14]
+ bl FUN_02029CE8
+ sub r6, #0xbe
+ lsl r1, r6, #0x10
+ asr r3, r1, #0x10
+ ldr r2, [sp]
+ mov r1, #0xac
+ add r4, r3, #0
+ mul r4, r1
+ add r3, r2, r4
+ mov r4, #0x64
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ ldr r2, [sp, #4]
+ mul r1, r0
+ add r0, r2, r1
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r3, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02228838
+MOD08_02228838: ; 0x02228838
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201341C
+ mov r1, #2
+ ldrsh r2, [r0, r1]
+ mov r1, #0x64
+ mov r3, #0xac
+ sub r1, r1, r2
+ lsl r1, r1, #0x10
+ asr r2, r1, #0x10
+ add r1, r2, #0
+ mov r2, #0
+ ldrsh r0, [r0, r2]
+ mul r1, r3
+ sub r0, #0x81
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r2, r0, #0
+ ldr r0, [r4, #0x20]
+ mul r2, r3
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r2, r0
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ str r0, [r4, #0x30]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02228880
+MOD08_02228880: ; 0x02228880
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ mov r1, #0x24
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _02228894
+ bl ErrorHandling
+_02228894:
+ ldmia r5!, {r0, r1}
+ add r2, r4, #0
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r2]
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _022288B8
+ ldr r0, _022288DC ; =0x00000113
+ bl MOD08_022281A0
+ str r0, [r4, #0x20]
+ ldr r0, _022288DC ; =0x00000113
+ bl MOD08_022281B4
+ b _022288C6
+_022288B8:
+ ldr r0, [r4, #4]
+ bl MOD08_022281A0
+ str r0, [r4, #0x20]
+ ldr r0, [r4, #4]
+ bl MOD08_022281B4
+_022288C6:
+ str r0, [r4, #0x1c]
+ ldr r0, [r4, #8]
+ ldr r2, [r4, #0x20]
+ mov r1, #0x63
+ mov r3, #0
+ bl MOD08_02215ACC
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022288DC: .word 0x00000113
+
+ thumb_func_start MOD08_022288E0
+MOD08_022288E0: ; 0x022288E0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r1, [r5, #0xc]
+ cmp r1, #0xff
+ bne _0222893A
+ ldr r0, [r5, #0x10]
+ cmp r0, #0
+ beq _02228910
+ ldr r0, [r5, #0x1c]
+ mov r4, #0
+ cmp r0, #0
+ ble _02228944
+ ldr r6, _02228950 ; =MOD08_02228838
+_022288FA:
+ ldr r0, [r5, #0x18]
+ add r1, r4, #0
+ add r2, r6, #0
+ add r3, r5, #0
+ bl FUN_020133AC
+ ldr r0, [r5, #0x1c]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _022288FA
+ b _02228944
+_02228910:
+ ldr r0, [r5, #0x1c]
+ mov r4, #0
+ cmp r0, #0
+ ble _02228944
+ ldr r6, _02228950 ; =MOD08_02228838
+_0222891A:
+ ldr r0, [r5, #4]
+ bl MOD08_022281C8
+ cmp r4, r0
+ beq _02228930
+ ldr r0, [r5, #0x18]
+ add r1, r4, #0
+ add r2, r6, #0
+ add r3, r5, #0
+ bl FUN_020133AC
+_02228930:
+ ldr r0, [r5, #0x1c]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _0222891A
+ b _02228944
+_0222893A:
+ ldr r0, [r5, #0x18]
+ ldr r2, _02228950 ; =MOD08_02228838
+ add r3, r5, #0
+ bl FUN_020133AC
+_02228944:
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_02013440
+ pop {r4, r5, r6, pc}
+ nop
+_02228950: .word MOD08_02228838
+
+ thumb_func_start MOD08_02228954
+MOD08_02228954: ; 0x02228954
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ bl FUN_020133C8
+ cmp r0, #0
+ bne _0222896C
+ ldr r0, [r4, #0x18]
+ bl MOD08_02215B40
+ mov r0, #0
+ pop {r4, pc}
+_0222896C:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228970
+MOD08_02228970: ; 0x02228970
+ ldr r3, _02228974 ; =FreeToHeap
+ bx r3
+ .align 2, 0
+_02228974: .word FreeToHeap
+
+ thumb_func_start MOD08_02228978
+MOD08_02228978: ; 0x02228978
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _0222898C
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #1
+ bl MOD08_02229A18
+_0222898C:
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _0222899C
+ mov r0, #0
+ pop {r4, pc}
+_0222899C:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022289A0
+MOD08_022289A0: ; 0x022289A0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _022289B4
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #3
+ bl MOD08_02229A18
+_022289B4:
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _022289C4
+ mov r0, #0
+ pop {r4, pc}
+_022289C4:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022289C8
+MOD08_022289C8: ; 0x022289C8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _022289DC
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #5
+ bl MOD08_02229A18
+_022289DC:
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _022289EC
+ mov r0, #0
+ pop {r4, pc}
+_022289EC:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022289F0
+MOD08_022289F0: ; 0x022289F0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _02228A04
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #7
+ bl MOD08_02229A18
+_02228A04:
+ add r0, r4, #0
+ mov r1, #0xe
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _02228A14
+ mov r0, #0
+ pop {r4, pc}
+_02228A14:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228A18
+MOD08_02228A18: ; 0x02228A18
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _02228A2C
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #0xf
+ bl MOD08_02229A18
+_02228A2C:
+ add r0, r4, #0
+ mov r1, #0x12
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _02228A3C
+ mov r0, #0
+ pop {r4, pc}
+_02228A3C:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228A40
+MOD08_02228A40: ; 0x02228A40
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _02228A54
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #0x13
+ bl MOD08_02229A18
+_02228A54:
+ add r0, r4, #0
+ mov r1, #0x1b
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _02228A64
+ mov r0, #0
+ pop {r4, pc}
+_02228A64:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228A68
+MOD08_02228A68: ; 0x02228A68
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _02228A7C
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #0x15
+ bl MOD08_02229A18
+_02228A7C:
+ add r0, r4, #0
+ mov r1, #0x16
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _02228A8C
+ mov r0, #0
+ pop {r4, pc}
+_02228A8C:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228A90
+MOD08_02228A90: ; 0x02228A90
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _02228AA4
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #0x17
+ bl MOD08_02229A18
+_02228AA4:
+ add r0, r4, #0
+ mov r1, #0x1b
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _02228AB4
+ mov r0, #0
+ pop {r4, pc}
+_02228AB4:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228AB8
+MOD08_02228AB8: ; 0x02228AB8
+ str r1, [r0]
+ mov r1, #0
+ str r1, [r0, #4]
+ bx lr
+
+ thumb_func_start MOD08_02228AC0
+MOD08_02228AC0: ; 0x02228AC0
+ push {r3, lr}
+ ldr r1, [r0]
+ lsl r2, r1, #2
+ ldr r1, _02228AD0 ; =0x0222D034
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ nop
+_02228AD0: .word 0x0222D034
+
+ thumb_func_start MOD08_02228AD4
+MOD08_02228AD4: ; 0x02228AD4
+ str r1, [r0, #0x14]
+ mov r1, #0
+ str r1, [r0, #8]
+ str r1, [r0, #0xc]
+ str r1, [r0, #0x10]
+ bx lr
+
+ thumb_func_start MOD08_02228AE0
+MOD08_02228AE0: ; 0x02228AE0
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228AE4
+MOD08_02228AE4: ; 0x02228AE4
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD08_02229114
+ cmp r0, #0
+ bne _02228AF8
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD08_02228AD4
+_02228AF8:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228AFC
+MOD08_02228AFC: ; 0x02228AFC
+ push {r3, lr}
+ mov r1, #3
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228B08
+MOD08_02228B08: ; 0x02228B08
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ bhi _02228BD8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02228B20: ; jump table
+ .short _02228B28 - _02228B20 - 2 ; case 0
+ .short _02228B7E - _02228B20 - 2 ; case 1
+ .short _02228B94 - _02228B20 - 2 ; case 2
+ .short _02228BB0 - _02228B20 - 2 ; case 3
+_02228B28:
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C5C0
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ add r2, sp, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r1, sp, #0
+ str r0, [sp, #8]
+ mov r0, #0xff
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x30]
+ add r2, #2
+ bl FUN_0200C7A0
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0xb4
+ add r1, #0x94
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl MOD08_0221590C
+ add r1, r4, #0
+ add r1, #0xd8
+ str r0, [r1]
+ add r0, sp, #0
+ bl MOD08_02228880
+ add r1, r4, #0
+ add r1, #0xd0
+ str r0, [r1]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228BE0
+_02228B7E:
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C630
+ cmp r0, #2
+ blt _02228BE0
+ mov r0, #0
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228BE0
+_02228B94:
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_022288E0
+ add r0, r4, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ bl MOD08_02215918
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228BE0
+_02228BB0:
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_02228954
+ cmp r0, #0
+ bne _02228BE0
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_0200C61C
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_02228970
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228BE0
+_02228BD8:
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD08_02228AD4
+_02228BE0:
+ mov r0, #1
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02228BE8
+MOD08_02228BE8: ; 0x02228BE8
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228BEC
+MOD08_02228BEC: ; 0x02228BEC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0
+ bne _02228C2C
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x30]
+ add r1, #0xb8
+ add r2, #0xba
+ bl FUN_0200C7A0
+ add r0, r4, #0
+ mov r1, #0x3c
+ add r0, #0xbc
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0xb4
+ add r0, #0xbe
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0xc0
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #0xc
+ add r0, #0xc8
+ str r1, [r0]
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02228C3C
+_02228C2C:
+ bl MOD08_02229114
+ cmp r0, #0
+ bne _02228C3C
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD08_02228AD4
+_02228C3C:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228C40
+MOD08_02228C40: ; 0x02228C40
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228C44
+MOD08_02228C44: ; 0x02228C44
+ push {r3, lr}
+ mov r1, #8
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228C50
+MOD08_02228C50: ; 0x02228C50
+ push {r3, lr}
+ mov r1, #9
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228C5C
+MOD08_02228C5C: ; 0x02228C5C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02228C6E
+ cmp r0, #1
+ beq _02228CA2
+ b _02228CE4
+_02228C6E:
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xc
+ str r0, [sp, #4]
+ ldr r0, _02228D00 ; =0x0000037F
+ mov r3, #1
+ add r5, r3, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ lsl r5, r2
+ add r0, #0xb0
+ lsl r2, r5, #0x10
+ ldr r0, [r0]
+ mov r1, #4
+ lsr r2, r2, #0x10
+ sub r3, r3, #2
+ bl FUN_02003210
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228CFA
+_02228CA2:
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02228CFA
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r2, r0, #0
+ mov r0, #0xc
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _02228D00 ; =0x0000037F
+ mov r3, #1
+ add r5, r3, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ lsl r5, r2
+ add r0, #0xb0
+ lsl r2, r5, #0x10
+ ldr r0, [r0]
+ mov r1, #4
+ lsr r2, r2, #0x10
+ sub r3, r3, #2
+ bl FUN_02003210
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228CFA
+_02228CE4:
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02228CFA
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD08_02228AD4
+_02228CFA:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02228D00: .word 0x0000037F
+
+ thumb_func_start MOD08_02228D04
+MOD08_02228D04: ; 0x02228D04
+ push {r3, lr}
+ mov r1, #0xb
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228D10
+MOD08_02228D10: ; 0x02228D10
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02228D22
+ cmp r0, #1
+ beq _02228D62
+ b _02228D7E
+_02228D22:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ cmp r0, #1
+ blt _02228D7E
+ add r1, sp, #8
+ ldr r0, [r4, #0x30]
+ add r1, #2
+ add r2, sp, #8
+ bl FUN_0200C7A0
+ add r1, sp, #8
+ mov r0, #0
+ ldrsh r3, [r1, r0]
+ mov r0, #2
+ ldrsh r1, [r1, r0]
+ add r0, r3, #0
+ add r0, #0x20
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x48
+ add r2, r1, #0
+ bl MOD08_02217E80
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228D7E
+_02228D62:
+ add r0, r4, #0
+ ldr r1, [r4, #0x30]
+ add r0, #0x48
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _02228D7E
+ ldr r0, [r4, #8]
+ mov r1, #0xd
+ add r0, r0, #1
+ str r0, [r4, #8]
+ add r0, r4, #0
+ bl MOD08_02228AD4
+_02228D7E:
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_02228D84
+MOD08_02228D84: ; 0x02228D84
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228D88
+MOD08_02228D88: ; 0x02228D88
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r1, [r5, #8]
+ cmp r1, #0
+ beq _02228D98
+ cmp r1, #1
+ beq _02228DAE
+ b _02228E0E
+_02228D98:
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_0200C5C0
+ ldr r0, [r5, #0x30]
+ mov r1, #0
+ bl FUN_0200C61C
+ ldr r0, [r5, #8]
+ add r0, r0, #1
+ str r0, [r5, #8]
+_02228DAE:
+ ldr r1, [r5, #0xc]
+ mov r0, #6
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, _02228E18 ; =0x0222D18A
+ ldr r1, _02228E1C ; =0x0222D18C
+ ldrsh r0, [r0, r2]
+ ldrh r1, [r1, r2]
+ str r0, [sp]
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C61C
+ ldr r0, [r5, #0xc]
+ ldr r4, _02228E20 ; =0x0222D07C
+ add r0, r0, #1
+ str r0, [r5, #0xc]
+ mov r6, #0
+ mov r7, #0x75
+_02228DD2:
+ ldr r1, [r5, #0xc]
+ ldr r0, [r4]
+ cmp r1, r0
+ bne _02228DE6
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_020054A8
+_02228DE6:
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, #5
+ blt _02228DD2
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x14
+ bgt _02228DFA
+ ldr r0, [sp]
+ cmp r0, #0xff
+ bne _02228E02
+_02228DFA:
+ ldr r0, [r5, #8]
+ add r0, r0, #1
+ str r0, [r5, #8]
+ b _02228E14
+_02228E02:
+ ldr r0, [r5, #0x30]
+ ldr r2, [sp]
+ mov r1, #0
+ bl FUN_0200C82C
+ b _02228E14
+_02228E0E:
+ mov r1, #0xe
+ bl MOD08_02228AD4
+_02228E14:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02228E18: .word 0x0222D18A
+_02228E1C: .word 0x0222D18C
+_02228E20: .word 0x0222D07C
+
+ thumb_func_start MOD08_02228E24
+MOD08_02228E24: ; 0x02228E24
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228E28
+MOD08_02228E28: ; 0x02228E28
+ push {r3, lr}
+ ldr r1, [r0, #0xc]
+ add r1, r1, #1
+ str r1, [r0, #0xc]
+ cmp r1, #0xe
+ blt _02228E44
+ ldr r1, [r0, #8]
+ add r1, r1, #1
+ str r1, [r0, #8]
+ mov r1, #0
+ str r1, [r0, #0xc]
+ mov r1, #0x10
+ bl MOD08_02228AD4
+_02228E44:
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228E48
+MOD08_02228E48: ; 0x02228E48
+ push {r3, lr}
+ mov r1, #0x11
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228E54
+MOD08_02228E54: ; 0x02228E54
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _02228E64
+ cmp r0, #1
+ beq _02228E74
+ b _02228EDC
+_02228E64:
+ ldr r0, [r5, #0x18]
+ cmp r0, #3
+ blt _02228E6E
+ bl ErrorHandling
+_02228E6E:
+ ldr r0, [r5, #8]
+ add r0, r0, #1
+ str r0, [r5, #8]
+_02228E74:
+ ldr r1, [r5, #0x18]
+ mov r0, #0x18
+ add r3, r1, #0
+ mul r3, r0
+ ldr r0, _02228EE0 ; =0x0222D0D0
+ ldr r1, [r5, #0xc]
+ add r0, r0, r3
+ lsl r2, r1, #1
+ ldrsh r4, [r2, r0]
+ add r0, r1, #1
+ str r0, [r5, #0xc]
+ cmp r0, #0xb
+ bgt _02228E92
+ cmp r4, #0xff
+ bne _02228EB2
+_02228E92:
+ ldr r0, [r5, #8]
+ mov r1, #0
+ add r0, r0, #1
+ str r0, [r5, #8]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #1
+ str r0, [r5, #0x18]
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C898
+ add r0, r5, #0
+ mov r1, #0x12
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02228EB2:
+ cmp r0, #5
+ bne _02228EBE
+ ldr r0, _02228EE4 ; =0x000005FE
+ mov r1, #0x75
+ bl FUN_020054A8
+_02228EBE:
+ ldr r0, [r5, #0x30]
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200C82C
+ ldr r0, _02228EE8 ; =0x0001FFFE
+ mov r1, #0x5a
+ mul r0, r4
+ lsl r1, r1, #2
+ bl _s32_div_f
+ add r1, r0, #0
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C8BC
+_02228EDC:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02228EE0: .word 0x0222D0D0
+_02228EE4: .word 0x000005FE
+_02228EE8: .word 0x0001FFFE
+
+ thumb_func_start MOD08_02228EEC
+MOD08_02228EEC: ; 0x02228EEC
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228EF0
+MOD08_02228EF0: ; 0x02228EF0
+ push {r3, lr}
+ mov r1, #0x14
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228EFC
+MOD08_02228EFC: ; 0x02228EFC
+ push {r3, lr}
+ mov r1, #0x1b
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228F08
+MOD08_02228F08: ; 0x02228F08
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ bhi _02228FDC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02228F20: ; jump table
+ .short _02228F28 - _02228F20 - 2 ; case 0
+ .short _02228F5A - _02228F20 - 2 ; case 1
+ .short _02228FA2 - _02228F20 - 2 ; case 2
+ .short _02228FB4 - _02228F20 - 2 ; case 3
+_02228F28:
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ mov r1, #0
+ mov r3, #1
+ add r2, r0, #0
+ add r5, r3, #0
+ lsl r5, r2
+ lsl r2, r5, #0x10
+ str r1, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, r4, #0
+ str r1, [sp, #8]
+ add r0, #0xb0
+ ldr r0, [r0]
+ mov r1, #4
+ lsr r2, r2, #0x10
+ sub r3, r3, #6
+ bl FUN_02003210
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228FF2
+_02228F5A:
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02228FF2
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ add r1, #0x94
+ ldr r1, [r1]
+ str r1, [sp, #0x14]
+ bl MOD08_022281C8
+ str r0, [sp, #0x18]
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ add r2, sp, #0xc
+ ldr r0, [r4, #0x30]
+ add r1, sp, #0xc
+ add r2, #2
+ bl FUN_0200C7A0
+ add r0, sp, #0xc
+ bl MOD08_02228880
+ add r1, r4, #0
+ add r1, #0xd0
+ str r0, [r1]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228FF2
+_02228FA2:
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_022288E0
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228FF2
+_02228FB4:
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_02228954
+ cmp r0, #0
+ bne _02228FF2
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_0200C61C
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_02228970
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228FF2
+_02228FDC:
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02228FF2
+ add r0, r4, #0
+ mov r1, #0x16
+ bl MOD08_02228AD4
+_02228FF2:
+ mov r0, #1
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02228FF8
+MOD08_02228FF8: ; 0x02228FF8
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228FFC
+MOD08_02228FFC: ; 0x02228FFC
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ cmp r1, #0
+ beq _0222900E
+ cmp r1, #1
+ beq _02229040
+ b _02229054
+_0222900E:
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r2, r0, #0
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #0
+ mov r3, #1
+ add r5, r3, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ lsl r5, r2
+ add r0, #0xb0
+ lsl r2, r5, #0x10
+ ldr r0, [r0]
+ mov r1, #4
+ lsr r2, r2, #0x10
+ sub r3, r3, #6
+ bl FUN_02003210
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _0222905A
+_02229040:
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0222905A
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _0222905A
+_02229054:
+ mov r1, #0x18
+ bl MOD08_02228AD4
+_0222905A:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_02229060
+MOD08_02229060: ; 0x02229060
+ push {r3, lr}
+ mov r1, #0x19
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_0222906C
+MOD08_0222906C: ; 0x0222906C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ cmp r1, #0
+ beq _0222907C
+ cmp r1, #1
+ beq _0222908A
+ b _022290E2
+_0222907C:
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+_0222908A:
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022290B2
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x21
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x21
+ strb r1, [r0]
+ b _022290CE
+_022290B2:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x20
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r2, #0xf
+ add r0, #0x21
+ strb r2, [r0]
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C644
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+_022290CE:
+ add r0, r4, #0
+ add r0, #0x20
+ add r4, #0x21
+ ldrb r1, [r0]
+ ldrb r0, [r4]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _022290EC ; =0x04000052
+ strh r1, [r0]
+ b _022290E8
+_022290E2:
+ mov r1, #0x1a
+ bl MOD08_02228AD4
+_022290E8:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_022290EC: .word 0x04000052
+
+ thumb_func_start MOD08_022290F0
+MOD08_022290F0: ; 0x022290F0
+ push {r3, lr}
+ mov r1, #0x1b
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_022290FC
+MOD08_022290FC: ; 0x022290FC
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD08_02229100
+MOD08_02229100: ; 0x02229100
+ push {r3, lr}
+ ldr r1, [r0, #0x14]
+ lsl r2, r1, #2
+ ldr r1, _02229110 ; =0x0222D118
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ nop
+_02229110: .word 0x0222D118
+
+ thumb_func_start MOD08_02229114
+MOD08_02229114: ; 0x02229114
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ bls _02229122
+ b _02229322
+_02229122:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222912E: ; jump table
+ .short _02229136 - _0222912E - 2 ; case 0
+ .short _022291A4 - _0222912E - 2 ; case 1
+ .short _0222929E - _0222912E - 2 ; case 2
+ .short _02229302 - _0222912E - 2 ; case 3
+_02229136:
+ mov r0, #0xba
+ ldrsh r0, [r4, r0]
+ add r1, r4, #0
+ mov r2, #0xb8
+ str r0, [sp]
+ mov r0, #0xbe
+ ldrsh r0, [r4, r0]
+ mov r3, #0xbc
+ add r1, #0x6c
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ add r0, #0x48
+ bl MOD08_02217F50
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ add r0, r4, #0
+ add r0, #0xd4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_022280C4
+ cmp r0, #1
+ bne _0222928C
+ bl LCRandom
+ mov r1, #0x14
+ bl _s32_div_f
+ add r1, #0xa
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0xd
+ bl FUN_0200C8BC
+ b _022293BE
+_022291A4:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_022280C4
+ cmp r0, #1
+ bne _02229242
+ mov r1, #2
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0xc
+ bl FUN_0200C8BC
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ add r0, #0xa
+ cmp r2, r0
+ ble _022291DE
+ mov r1, #2
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0xc
+ bl FUN_0200C8BC
+_022291DE:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_02228104
+ cmp r0, #1
+ bne _02229242
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ add r0, #0xa
+ cmp r2, r0
+ bne _02229242
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r3, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ add r1, r4, #0
+ lsl r3, r3, #0x14
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _022293C4 ; =0x0000FFFF
+ add r1, #0x94
+ str r0, [sp, #0x14]
+ ldr r0, _022293C8 ; =0x000003EA
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl MOD08_02218B20
+ add r1, r4, #0
+ add r1, #0xd4
+ str r0, [r1]
+_02229242:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #6
+ blt _0222927A
+ cmp r0, #8
+ bgt _0222927A
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r2, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ cmp r1, r2
+ ble _0222927A
+ add r0, r2, #5
+ cmp r1, r0
+ blt _0222928C
+_0222927A:
+ add r0, r4, #0
+ add r1, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x48
+ add r1, #0x6c
+ bl MOD08_02217FE4
+ cmp r0, #0
+ beq _0222928E
+_0222928C:
+ b _022293BE
+_0222928E:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD08_02229FFC
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022293BE
+_0222929E:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_02228104
+ cmp r0, #1
+ bne _022292D2
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022292D2
+ bl MOD08_02218AF8
+ cmp r0, #1
+ beq _022293BE
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl MOD08_02218B08
+ mov r0, #1
+ str r0, [r4, #0x28]
+ add sp, #0x1c
+ mov r0, #0
+ pop {r3, r4, pc}
+_022292D2:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #0xf
+ blt _022292E6
+ mov r0, #1
+ str r0, [r4, #0x28]
+ add sp, #0x1c
+ mov r0, #0
+ pop {r3, r4, pc}
+_022292E6:
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r1, [r0]
+ ldr r0, _022293CC ; =0x00000111
+ cmp r1, r0
+ bne _022292FA
+ ldr r0, _022293D0 ; =0x000007E8
+ mov r1, #0x75
+ bl FUN_020054A8
+_022292FA:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022293BE
+_02229302:
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C5C0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD08_0222A008
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022293BE
+_02229322:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0xf
+ bne _0222937C
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #0xc
+ beq _02229378
+ cmp r0, #0xd
+ beq _02229378
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r3, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ add r1, r4, #0
+ lsl r3, r3, #0x14
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _022293C4 ; =0x0000FFFF
+ add r1, #0x94
+ str r0, [sp, #0x14]
+ ldr r0, _022293C8 ; =0x000003EA
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl MOD08_02218B20
+ add r1, r4, #0
+ add r1, #0xd4
+ str r0, [r1]
+_02229378:
+ mov r0, #1
+ str r0, [r4, #0x28]
+_0222937C:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0xf
+ ble _022293BE
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #0xc
+ beq _022293B8
+ cmp r0, #0xd
+ beq _022293B8
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl MOD08_02218AF8
+ cmp r0, #1
+ beq _022293BE
+ add r4, #0xd4
+ ldr r0, [r4]
+ bl MOD08_02218B08
+_022293B8:
+ add sp, #0x1c
+ mov r0, #0
+ pop {r3, r4, pc}
+_022293BE:
+ mov r0, #1
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ .align 2, 0
+_022293C4: .word 0x0000FFFF
+_022293C8: .word 0x000003EA
+_022293CC: .word 0x00000111
+_022293D0: .word 0x000007E8
+
+ thumb_func_start MOD08_022293D4
+MOD08_022293D4: ; 0x022293D4
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ bls _022293E2
+ b _022295CE
+_022293E2:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022293EE: ; jump table
+ .short _022293F6 - _022293EE - 2 ; case 0
+ .short _02229464 - _022293EE - 2 ; case 1
+ .short _0222955E - _022293EE - 2 ; case 2
+ .short _022295AE - _022293EE - 2 ; case 3
+_022293F6:
+ mov r0, #0xba
+ ldrsh r0, [r4, r0]
+ add r1, r4, #0
+ mov r2, #0xb8
+ str r0, [sp]
+ mov r0, #0xbe
+ ldrsh r0, [r4, r0]
+ mov r3, #0xbc
+ add r1, #0x6c
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ add r0, #0x48
+ bl MOD08_02217F50
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ add r0, r4, #0
+ add r0, #0xd4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_022280C4
+ cmp r0, #1
+ bne _0222954C
+ bl LCRandom
+ mov r1, #0x14
+ bl _s32_div_f
+ add r1, #0xa
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0xd
+ bl FUN_0200C8BC
+ b _02229656
+_02229464:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_022280C4
+ cmp r0, #1
+ bne _02229502
+ mov r1, #2
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0xc
+ bl FUN_0200C8BC
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ add r0, #0xa
+ cmp r2, r0
+ ble _0222949E
+ mov r1, #2
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0xc
+ bl FUN_0200C8BC
+_0222949E:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_02228104
+ cmp r0, #1
+ bne _02229502
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ add r0, #0xa
+ cmp r2, r0
+ bne _02229502
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r3, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ add r1, r4, #0
+ lsl r3, r3, #0x14
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _0222965C ; =0x0000FFFF
+ add r1, #0x94
+ str r0, [sp, #0x14]
+ ldr r0, _02229660 ; =0x000003EA
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl MOD08_02218B20
+ add r1, r4, #0
+ add r1, #0xd4
+ str r0, [r1]
+_02229502:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #6
+ blt _0222953A
+ cmp r0, #8
+ bgt _0222953A
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r2, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ cmp r1, r2
+ ble _0222953A
+ add r0, r2, #5
+ cmp r1, r0
+ blt _0222954C
+_0222953A:
+ add r0, r4, #0
+ add r1, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x48
+ add r1, #0x6c
+ bl MOD08_02217FE4
+ cmp r0, #0
+ beq _0222954E
+_0222954C:
+ b _02229656
+_0222954E:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD08_02229FFC
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02229656
+_0222955E:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_02228104
+ cmp r0, #1
+ bne _02229592
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02229592
+ bl MOD08_02218AF8
+ cmp r0, #1
+ beq _02229656
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl MOD08_02218B08
+ mov r0, #1
+ str r0, [r4, #0x28]
+ add sp, #0x1c
+ mov r0, #0
+ pop {r3, r4, pc}
+_02229592:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #0xf
+ blt _022295A6
+ mov r0, #1
+ str r0, [r4, #0x28]
+ add sp, #0x1c
+ mov r0, #0
+ pop {r3, r4, pc}
+_022295A6:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02229656
+_022295AE:
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C5C0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD08_0222A008
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02229656
+_022295CE:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0xf
+ bne _02229622
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_0200C61C
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r3, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ add r1, r4, #0
+ lsl r3, r3, #0x14
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _0222965C ; =0x0000FFFF
+ add r1, #0x94
+ str r0, [sp, #0x14]
+ ldr r0, _02229660 ; =0x000003EA
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl MOD08_02218B20
+ add r1, r4, #0
+ add r1, #0xd4
+ str r0, [r1]
+ mov r0, #1
+ str r0, [r4, #0x28]
+_02229622:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0xf
+ ble _02229656
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl MOD08_02218AF8
+ cmp r0, #1
+ beq _02229656
+ add r4, #0xd4
+ ldr r0, [r4]
+ bl MOD08_02218B08
+ add sp, #0x1c
+ mov r0, #0
+ pop {r3, r4, pc}
+_02229656:
+ mov r0, #1
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222965C: .word 0x0000FFFF
+_02229660: .word 0x000003EA
+
+ thumb_func_start MOD08_02229664
+MOD08_02229664: ; 0x02229664
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ cmp r1, #7
+ bls _02229672
+ b _022297EA
+_02229672:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222967E: ; jump table
+ .short _0222968E - _0222967E - 2 ; case 0
+ .short _022296CC - _0222967E - 2 ; case 1
+ .short _022296FC - _0222967E - 2 ; case 2
+ .short _02229732 - _0222967E - 2 ; case 3
+ .short _02229742 - _0222967E - 2 ; case 4
+ .short _02229770 - _0222967E - 2 ; case 5
+ .short _0222979E - _0222967E - 2 ; case 6
+ .short _022297CC - _0222967E - 2 ; case 7
+_0222968E:
+ mov r1, #0
+ bl MOD08_0222A008
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C5C0
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #2
+ blt _022296E2
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_0200C61C
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_022296CC:
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #2
+ bge _022296E4
+_022296E2:
+ b _022297F0
+_022296E4:
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_0200C61C
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_022296FC:
+ add r0, #0xa0
+ ldr r0, [r0]
+ add r2, sp, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r1, sp, #0
+ str r0, [sp, #8]
+ mov r0, #0xff
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x30]
+ add r2, #2
+ bl FUN_0200C7A0
+ add r0, sp, #0
+ bl MOD08_02228880
+ add r1, r4, #0
+ add r1, #0xd0
+ str r0, [r1]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_02229732:
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_022288E0
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_02229742:
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #6
+ blt _022297F0
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_0200C61C
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_02229770:
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #6
+ blt _022297F0
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C61C
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_0222979E:
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #6
+ blt _022297F0
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_0200C61C
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_022297CC:
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_02228954
+ cmp r0, #0
+ bne _022297F0
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_02228970
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_022297EA:
+ add sp, #0x14
+ mov r0, #0
+ pop {r3, r4, pc}
+_022297F0:
+ mov r0, #1
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022297F8
+MOD08_022297F8: ; 0x022297F8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02229808
+ cmp r0, #1
+ beq _0222983C
+ b _0222986E
+_02229808:
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ bne _0222981E
+ ldr r1, _0222987C ; =0xFFFFE001
+ add r0, r4, #0
+ add r0, #0x34
+ lsr r2, r1, #0x13
+ mov r3, #0xa
+ bl MOD08_02218008
+ b _0222982C
+_0222981E:
+ add r0, r4, #0
+ ldr r1, _02229880 ; =0x00001FFF
+ ldr r2, _0222987C ; =0xFFFFE001
+ add r0, #0x34
+ mov r3, #0xa
+ bl MOD08_02218008
+_0222982C:
+ ldr r1, [r4, #0x10]
+ mov r0, #1
+ eor r0, r1
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02229876
+_0222983C:
+ ldr r1, [r4, #0x34]
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0200C898
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD08_02218058
+ cmp r0, #0
+ bne _02229876
+ ldr r0, [r4, #0xc]
+ cmp r0, #1
+ blt _02229862
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02229876
+_02229862:
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ sub r0, r0, #1
+ str r0, [r4, #8]
+ b _02229876
+_0222986E:
+ mov r0, #0
+ add r4, #0xc4
+ str r0, [r4]
+ pop {r4, pc}
+_02229876:
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_0222987C: .word 0xFFFFE001
+_02229880: .word 0x00001FFF
+
+ thumb_func_start MOD08_02229884
+MOD08_02229884: ; 0x02229884
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0xff
+ bne _02229896
+ add sp, #4
+ mov r0, #0
+ pop {r3, r4, pc}
+_02229896:
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ beq _022298BA
+ add r1, sp, #0
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r1, sp, #0
+ mov r0, #2
+ ldrsh r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0xb8
+ strh r2, [r0]
+ mov r0, #0
+ ldrsh r0, [r1, r0]
+ add r4, #0xba
+ strh r0, [r4]
+_022298BA:
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022298C0
+MOD08_022298C0: ; 0x022298C0
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _02229912
+ add r0, r4, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ cmp r0, #0
+ ble _022298EA
+ add r0, r4, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xdc
+ str r1, [r0]
+ ldr r0, [r4, #0x2c]
+ bl FUN_0200BC1C
+ pop {r4, pc}
+_022298EA:
+ add r1, #0x98
+ ldr r1, [r1]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _02229914 ; =0x0222D01C
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ bne _02229900
+ mov r0, #0
+ str r0, [r4, #0x1c]
+_02229900:
+ ldr r0, [r4, #0x24]
+ cmp r0, #1
+ bne _0222990C
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C5A8
+_0222990C:
+ ldr r0, [r4, #0x2c]
+ bl FUN_0200BC1C
+_02229912:
+ pop {r4, pc}
+ .align 2, 0
+_02229914: .word 0x0222D01C
+
+ thumb_func_start MOD08_02229918
+MOD08_02229918: ; 0x02229918
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ mov r1, #0xe0
+ bl AllocFromHeap
+ mov r1, #0
+ mov r2, #0xe0
+ add r4, r0, #0
+ bl MI_CpuFill8
+ cmp r4, #0
+ bne _02229936
+ bl ErrorHandling
+_02229936:
+ add r3, r4, #0
+ add r3, #0x90
+ mov r2, #5
+_0222993C:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222993C
+ mov r0, #0
+ str r0, [r4, #8]
+ str r0, [r4, #0x10]
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ str r0, [r4]
+ str r0, [r4, #4]
+ add r0, r4, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200BB34
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xdc
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_02228140
+ str r0, [r4, #0x24]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0xc4
+ str r2, [r0]
+ add r0, r4, #0
+ mov r1, #0x10
+ add r0, #0x20
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x21
+ strb r2, [r0]
+ bl MOD08_0221268C
+ bl LCRandom
+ lsr r1, r0, #0x1f
+ lsl r0, r0, #0x1f
+ sub r0, r0, r1
+ mov r2, #0x1f
+ ror r0, r2
+ add r0, r1, r0
+ beq _022299AA
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x22
+ strb r1, [r0]
+ b _022299B2
+_022299AA:
+ add r0, r4, #0
+ sub r2, #0x20
+ add r0, #0x22
+ strb r2, [r0]
+_022299B2:
+ add r0, r4, #0
+ bl MOD08_02229E40
+ add r0, r4, #0
+ bl MOD08_02229F64
+ add r0, r4, #0
+ bl MOD08_02229A90
+ mov r0, #1
+ str r0, [r4, #0x1c]
+ mov r0, #0
+ str r0, [r4, #0x28]
+ mov r2, #0xfa
+ ldr r0, _022299E4 ; =MOD08_022298C0
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ add r1, r4, #0
+ add r1, #0xcc
+ str r0, [r1]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022299E4: .word MOD08_022298C0
+
+ thumb_func_start MOD08_022299E8
+MOD08_022299E8: ; 0x022299E8
+ push {r4, lr}
+ add r4, r0, #0
+ bne _022299F2
+ bl ErrorHandling
+_022299F2:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _022299FC
+ mov r0, #1
+ pop {r4, pc}
+_022299FC:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02229A00
+MOD08_02229A00: ; 0x02229A00
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02229A0A
+ bl ErrorHandling
+_02229A0A:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _02229A14
+ mov r0, #1
+ pop {r4, pc}
+_02229A14:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02229A18
+MOD08_02229A18: ; 0x02229A18
+ str r1, [r0, #0x14]
+ bx lr
+
+ thumb_func_start MOD08_02229A1C
+MOD08_02229A1C: ; 0x02229A1C
+ ldr r0, [r0, #0x14]
+ cmp r0, r1
+ bne _02229A26
+ mov r0, #1
+ bx lr
+_02229A26:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02229A2C
+MOD08_02229A2C: ; 0x02229A2C
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02229A36
+ bl ErrorHandling
+_02229A36:
+ add r0, r4, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r4, #0x2c]
+ bl FUN_0200C398
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C3DC
+ add r0, r4, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02229A5C
+MOD08_02229A5C: ; 0x02229A5C
+ add r2, r0, #0
+ add r0, #0x98
+ str r1, [r0]
+ mov r0, #0
+ str r0, [r2, #8]
+ str r0, [r2, #0xc]
+ str r0, [r2, #0x10]
+ mov r0, #1
+ add r1, r2, #0
+ str r0, [r2, #0x1c]
+ ldr r0, [r2, #0x30]
+ ldr r3, _02229A7C ; =FUN_0200C7A0
+ add r1, #0xb8
+ add r2, #0xba
+ bx r3
+ nop
+_02229A7C: .word FUN_0200C7A0
+
+ thumb_func_start MOD08_02229A80
+MOD08_02229A80: ; 0x02229A80
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02229A8A
+ bl ErrorHandling
+_02229A8A:
+ add r4, #0x98
+ ldr r0, [r4]
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02229A90
+MOD08_02229A90: ; 0x02229A90
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x30]
+ add r1, #0xb8
+ add r2, #0xba
+ bl FUN_0200C7A0
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #0x11
+ bls _02229AAE
+ b _02229CF6
+_02229AAE:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02229ABA: ; jump table
+ .short _02229ADE - _02229ABA - 2 ; case 0
+ .short _02229ADE - _02229ABA - 2 ; case 1
+ .short _02229ADE - _02229ABA - 2 ; case 2
+ .short _02229ADE - _02229ABA - 2 ; case 3
+ .short _02229ADE - _02229ABA - 2 ; case 4
+ .short _02229ADE - _02229ABA - 2 ; case 5
+ .short _02229AF6 - _02229ABA - 2 ; case 6
+ .short _02229B1C - _02229ABA - 2 ; case 7
+ .short _02229B50 - _02229ABA - 2 ; case 8
+ .short _02229B76 - _02229ABA - 2 ; case 9
+ .short _02229B9C - _02229ABA - 2 ; case 10
+ .short _02229BC2 - _02229ABA - 2 ; case 11
+ .short _02229BE8 - _02229ABA - 2 ; case 12
+ .short _02229C14 - _02229ABA - 2 ; case 13
+ .short _02229C4C - _02229ABA - 2 ; case 14
+ .short _02229C72 - _02229ABA - 2 ; case 15
+ .short _02229C9E - _02229ABA - 2 ; case 16
+ .short _02229CCA - _02229ABA - 2 ; case 17
+_02229ADE:
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x30]
+ add r1, #0xbc
+ add r2, #0xbe
+ bl FUN_0200C7A0
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc8
+ str r1, [r0]
+ b _02229CF6
+_02229AF6:
+ mov r0, #0
+ add r2, r4, #0
+ add r3, r4, #0
+ add r1, r0, #0
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x30
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229B1C:
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x30]
+ add r1, #0xb8
+ add r2, #0xba
+ bl FUN_0200C7A0
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #1
+ mov r1, #4
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x30
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229B50:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #1
+ mov r1, #2
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x30
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229B76:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #0
+ mov r1, #1
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x30
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229B9C:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #1
+ mov r1, #3
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x30
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229BC2:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #1
+ mov r1, #5
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x30
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229BE8:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #0
+ mov r1, #1
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x10
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x10
+ strh r1, [r0]
+ mov r0, #0xc
+ add r4, #0xc0
+ str r0, [r4]
+ pop {r4, pc}
+_02229C14:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #0
+ mov r1, #1
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x20
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbc
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbc
+ sub r1, #0x14
+ strh r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x26
+ strh r1, [r0]
+ mov r0, #0x10
+ add r4, #0xc0
+ str r0, [r4]
+ pop {r4, pc}
+_02229C4C:
+ add r0, r4, #0
+ mov r1, #0x80
+ add r0, #0xbc
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0x40
+ add r0, #0xbe
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0x20
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229C72:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #0
+ mov r1, #1
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x40
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #8
+ strh r1, [r0]
+ mov r0, #0x10
+ add r4, #0xc0
+ str r0, [r4]
+ pop {r4, pc}
+_02229C9E:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #1
+ mov r1, #3
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x40
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #8
+ strh r1, [r0]
+ mov r0, #0x10
+ add r4, #0xc0
+ str r0, [r4]
+ pop {r4, pc}
+_02229CCA:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #1
+ mov r1, #5
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x40
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #8
+ strh r1, [r0]
+ mov r0, #0x10
+ add r4, #0xc0
+ str r0, [r4]
+ pop {r4, pc}
+_02229CF6:
+ mov r0, #0x14
+ add r4, #0xc0
+ str r0, [r4]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02229D00
+MOD08_02229D00: ; 0x02229D00
+ push {r4, lr}
+ add r0, #0x90
+ ldr r0, [r0]
+ add r3, r1, #0
+ add r4, r2, #0
+ cmp r0, #0x11
+ bls _02229D10
+ b _02229E3C
+_02229D10:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02229D1C: ; jump table
+ .short _02229D40 - _02229D1C - 2 ; case 0
+ .short _02229D56 - _02229D1C - 2 ; case 1
+ .short _02229D6C - _02229D1C - 2 ; case 2
+ .short _02229D98 - _02229D1C - 2 ; case 3
+ .short _02229D82 - _02229D1C - 2 ; case 4
+ .short _02229DAE - _02229D1C - 2 ; case 5
+ .short _02229DC4 - _02229D1C - 2 ; case 6
+ .short _02229DCE - _02229D1C - 2 ; case 7
+ .short _02229DD8 - _02229D1C - 2 ; case 8
+ .short _02229DE2 - _02229D1C - 2 ; case 9
+ .short _02229DF0 - _02229D1C - 2 ; case 10
+ .short _02229DFE - _02229D1C - 2 ; case 11
+ .short _02229E0C - _02229D1C - 2 ; case 12
+ .short _02229E1A - _02229D1C - 2 ; case 13
+ .short _02229E28 - _02229D1C - 2 ; case 14
+ .short _02229E32 - _02229D1C - 2 ; case 15
+ .short _02229E32 - _02229D1C - 2 ; case 16
+ .short _02229E32 - _02229D1C - 2 ; case 17
+_02229D40:
+ mov r0, #0
+ add r2, r3, #0
+ add r1, r0, #0
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ add r0, #0x20
+ strh r0, [r4]
+ pop {r4, pc}
+_02229D56:
+ add r2, r3, #0
+ mov r0, #0
+ mov r1, #1
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ add r0, #0x26
+ strh r0, [r4]
+ pop {r4, pc}
+_02229D6C:
+ add r2, r3, #0
+ mov r0, #1
+ mov r1, #2
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ add r0, #0x20
+ strh r0, [r4]
+ pop {r4, pc}
+_02229D82:
+ add r2, r3, #0
+ mov r0, #1
+ mov r1, #4
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ add r0, #0x20
+ strh r0, [r4]
+ pop {r4, pc}
+_02229D98:
+ add r2, r3, #0
+ mov r0, #1
+ mov r1, #3
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ add r0, #0x26
+ strh r0, [r4]
+ pop {r4, pc}
+_02229DAE:
+ add r2, r3, #0
+ mov r0, #1
+ mov r1, #5
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ add r0, #0x26
+ strh r0, [r4]
+ pop {r4, pc}
+_02229DC4:
+ mov r0, #0xa
+ strh r0, [r3]
+ mov r0, #0x64
+ strh r0, [r4]
+ pop {r4, pc}
+_02229DCE:
+ mov r0, #0xa
+ strh r0, [r3]
+ mov r0, #0x64
+ strh r0, [r4]
+ pop {r4, pc}
+_02229DD8:
+ mov r0, #0xa
+ strh r0, [r3]
+ mov r0, #0x64
+ strh r0, [r4]
+ pop {r4, pc}
+_02229DE2:
+ mov r0, #0
+ add r2, r3, #0
+ add r1, r0, #0
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ pop {r4, pc}
+_02229DF0:
+ mov r0, #0
+ add r2, r3, #0
+ add r1, r0, #0
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ pop {r4, pc}
+_02229DFE:
+ mov r0, #0
+ add r2, r3, #0
+ add r1, r0, #0
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ pop {r4, pc}
+_02229E0C:
+ mov r0, #0
+ add r2, r3, #0
+ add r1, r0, #0
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ pop {r4, pc}
+_02229E1A:
+ mov r0, #0
+ add r2, r3, #0
+ add r1, r0, #0
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ pop {r4, pc}
+_02229E28:
+ mov r0, #0xe6
+ strh r0, [r3]
+ mov r0, #0x20
+ strh r0, [r4]
+ pop {r4, pc}
+_02229E32:
+ mov r0, #0x1d
+ mvn r0, r0
+ strh r0, [r3]
+ mov r0, #0xa0
+ strh r0, [r4]
+_02229E3C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02229E40
+MOD08_02229E40: ; 0x02229E40
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, #0x2c]
+ mov r2, #0xa
+ bl FUN_0200BBF0
+ add r0, r5, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02229E70
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200BB68
+ mov r2, #0x11
+ mov r1, #0
+ lsl r2, r2, #0x10
+ bl FUN_02008D24
+_02229E70:
+ mov r1, #0
+ add r2, sp, #0x1c
+ mov r0, #0xa
+_02229E76:
+ add r1, r1, #1
+ stmia r2!, {r0}
+ cmp r1, #6
+ blt _02229E76
+ mov r0, #0
+ str r0, [sp, #0x2c]
+ str r0, [sp, #0x30]
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, #0x2c]
+ add r2, sp, #0x1c
+ bl FUN_0200BF60
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD08_022281DC
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ mov r1, #1
+ bl MOD08_022281DC
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ mov r1, #2
+ bl MOD08_022281DC
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ mov r1, #3
+ bl MOD08_022281DC
+ str r0, [sp, #0x18]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r1, [r0]
+ ldr r0, _02229F60 ; =0x00001770
+ mov r2, #0x1b
+ add r0, r1, r0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, #0x2c]
+ add r3, r6, #0
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ add r2, r5, #0
+ str r4, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r1, [r0]
+ ldr r0, _02229F60 ; =0x00001770
+ add r2, #0xac
+ add r0, r1, r0
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r2, [r2]
+ ldr r3, [r5, #0x2c]
+ mov r1, #2
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r1, [r0]
+ ldr r0, _02229F60 ; =0x00001770
+ mov r2, #0x1b
+ add r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, #0x2c]
+ add r3, r7, #0
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r1, [r0]
+ ldr r0, _02229F60 ; =0x00001770
+ ldr r3, [sp, #0x18]
+ add r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, #0x2c]
+ mov r2, #0x1b
+ bl FUN_0200C13C
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02229F60: .word 0x00001770
+
+ thumb_func_start MOD08_02229F64
+MOD08_02229F64: ; 0x02229F64
+ push {r3, r4, lr}
+ sub sp, #0x34
+ add r2, sp, #0
+ add r1, sp, #0
+ add r2, #2
+ add r4, r0, #0
+ bl MOD08_02229D00
+ mov r0, #0
+ add r1, sp, #0
+ strh r0, [r1, #4]
+ strh r0, [r1, #6]
+ mov r1, #1
+ str r1, [sp, #0x10]
+ add r1, r4, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ add r1, #0xa4
+ ldr r1, [r1]
+ ldr r2, _02229FE0 ; =0x00001770
+ str r1, [sp, #0x2c]
+ str r0, [sp, #0x30]
+ add r3, sp, #0
+_02229F92:
+ add r1, r4, #0
+ add r1, #0x9c
+ ldr r1, [r1]
+ add r0, r0, #1
+ add r1, r1, r2
+ str r1, [r3, #0x14]
+ add r3, r3, #4
+ cmp r0, #6
+ blt _02229F92
+ add r0, r4, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r4, #0x2c]
+ add r2, sp, #0
+ bl FUN_0200C154
+ str r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_0200C61C
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C5A8
+ bl MOD08_0221268C
+ add sp, #0x34
+ pop {r3, r4, pc}
+ .align 2, 0
+_02229FE0: .word 0x00001770
+
+ thumb_func_start MOD08_02229FE4
+MOD08_02229FE4: ; 0x02229FE4
+ ldr r3, _02229FEC ; =FUN_0200C644
+ ldr r0, [r0, #0x30]
+ bx r3
+ nop
+_02229FEC: .word FUN_0200C644
+
+ thumb_func_start MOD08_02229FF0
+MOD08_02229FF0: ; 0x02229FF0
+ ldr r3, _02229FF8 ; =FUN_0200C714
+ ldr r0, [r0, #0x30]
+ bx r3
+ nop
+_02229FF8: .word FUN_0200C714
+
+ thumb_func_start MOD08_02229FFC
+MOD08_02229FFC: ; 0x02229FFC
+ ldr r3, _0222A004 ; =FUN_0200C898
+ ldr r0, [r0, #0x30]
+ bx r3
+ nop
+_0222A004: .word FUN_0200C898
+
+ thumb_func_start MOD08_0222A008
+MOD08_0222A008: ; 0x0222A008
+ str r1, [r0, #0x24]
+ bx lr
+
+ thumb_func_start MOD08_0222A00C
+MOD08_0222A00C: ; 0x0222A00C
+ ldr r3, _0222A014 ; =FUN_0200C6C4
+ ldr r0, [r0, #0x30]
+ bx r3
+ nop
+_0222A014: .word FUN_0200C6C4
+
+ thumb_func_start MOD08_0222A018
+MOD08_0222A018: ; 0x0222A018
+ ldr r3, _0222A020 ; =FUN_0200C6B0
+ ldr r0, [r0, #0x30]
+ bx r3
+ nop
+_0222A020: .word FUN_0200C6B0
+
+ thumb_func_start MOD08_0222A024
+MOD08_0222A024: ; 0x0222A024
+ add r0, #0xdc
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A02C
+MOD08_0222A02C: ; 0x0222A02C
+ push {r3, lr}
+ sub r1, r1, r3
+ neg r1, r1
+ sub r0, r0, r2
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ asr r1, r1, #0x10
+ add r2, r1, #0
+ asr r0, r0, #0x10
+ mul r2, r1
+ add r1, r0, #0
+ mul r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #0xc
+ bl FX_Sqrt
+ asr r1, r0, #0xb
+ lsr r1, r1, #0x14
+ add r1, r0, r1
+ asr r0, r1, #0xc
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A058
+MOD08_0222A058: ; 0x0222A058
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02029CE4
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_02029CE8
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #0xbe
+ mov r3, #0x46
+ bl MOD08_0222A02C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A078
+MOD08_0222A078: ; 0x0222A078
+ push {r4, lr}
+ sub sp, #8
+ ldr r3, _0222A0D0 ; =0x0222D4D8
+ add r4, r0, #0
+ add r2, sp, #0
+ mov r1, #7
+_0222A084:
+ ldrb r0, [r3]
+ add r3, r3, #1
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ bne _0222A084
+ add r0, r4, #0
+ bl FUN_02029CE0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02086018
+ cmp r0, #0
+ bne _0222A0C6
+ add r0, r4, #0
+ bl MOD08_0222A058
+ cmp r0, #0x38
+ blt _0222A0B0
+ mov r0, #3
+ b _0222A0BE
+_0222A0B0:
+ add r0, r0, #1
+ mov r1, #0x14
+ bl _s32_div_f
+ cmp r0, #3
+ blt _0222A0BE
+ mov r0, #3
+_0222A0BE:
+ add r1, sp, #0
+ add sp, #8
+ ldrb r0, [r1, r0]
+ pop {r4, pc}
+_0222A0C6:
+ add r0, sp, #0
+ ldrb r0, [r0, #1]
+ add sp, #8
+ pop {r4, pc}
+ nop
+_0222A0D0: .word 0x0222D4D8
+
+ thumb_func_start MOD08_0222A0D4
+MOD08_0222A0D4: ; 0x0222A0D4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ mov r1, #0x48
+ add r6, r0, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _0222A0EC
+ bl ErrorHandling
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0222A0EC:
+ bl MOD08_0221268C
+ str r6, [r4]
+ cmp r5, #0
+ beq _0222A0FA
+ ldr r0, [r5]
+ str r0, [r4, #4]
+_0222A0FA:
+ mov r1, #0
+ add r2, r4, #0
+ add r0, r1, #0
+_0222A100:
+ add r1, r1, #1
+ str r0, [r2, #8]
+ add r2, r2, #4
+ cmp r1, #0x10
+ blt _0222A100
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A110
+MOD08_0222A110: ; 0x0222A110
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r4, #0
+ add r3, r0, #0
+_0222A118:
+ ldr r2, [r3, #8]
+ cmp r2, #0
+ bne _0222A138
+ add r4, r0, #0
+ ldr r0, [r0]
+ add r4, #8
+ lsl r6, r5, #2
+ bl MOD08_0222A1A0
+ str r0, [r4, r6]
+ ldr r0, [r4, r6]
+ mov r1, #0
+ str r1, [r0, #0x18]
+ ldr r4, [r4, r6]
+ str r5, [r4]
+ b _0222A140
+_0222A138:
+ add r5, r5, #1
+ add r3, r3, #4
+ cmp r5, #0x10
+ blt _0222A118
+_0222A140:
+ cmp r4, #0
+ bne _0222A148
+ bl ErrorHandling
+_0222A148:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0222A14C
+MOD08_0222A14C: ; 0x0222A14C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_0222A154:
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _0222A15E
+ bl FreeToHeap
+_0222A15E:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x10
+ blt _0222A154
+ add r0, r6, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A170
+MOD08_0222A170: ; 0x0222A170
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_0222A176:
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _0222A194
+ ldr r0, [r0, #0x10]
+ bl MOD08_02215B40
+ ldr r1, [r5, #8]
+ ldr r0, [r1, #0x20]
+ cmp r0, #0
+ beq _0222A194
+ ldr r0, [r1, #0x18]
+ cmp r0, #0
+ beq _0222A194
+ bl FUN_0200CAB4
+_0222A194:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x10
+ blt _0222A176
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A1A0
+MOD08_0222A1A0: ; 0x0222A1A0
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ mov r1, #0x24
+ add r5, r0, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _0222A1B8
+ bl ErrorHandling
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0222A1B8:
+ str r5, [r4, #4]
+ ldr r1, [r6]
+ ldr r0, [r6, #4]
+ str r1, [r4, #8]
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ bl MOD08_0222A260
+ str r0, [r4, #0x1c]
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #8]
+ mov r2, #1
+ bl MOD08_02215AA4
+ str r0, [r4, #0x10]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A1DC
+MOD08_0222A1DC: ; 0x0222A1DC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ str r1, [r4, #0x20]
+ ldr r1, _0222A1FC ; =MOD08_0222A258
+ bl MOD08_0222A22C
+ mov r2, #0xfa
+ ldr r0, _0222A200 ; =MOD08_0222A208
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+ nop
+_0222A1FC: .word MOD08_0222A258
+_0222A200: .word MOD08_0222A208
+
+ thumb_func_start MOD08_0222A204
+MOD08_0222A204: ; 0x0222A204
+ ldr r0, [r0, #0x20]
+ bx lr
+
+ thumb_func_start MOD08_0222A208
+MOD08_0222A208: ; 0x0222A208
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x10]
+ bl FUN_020133C8
+ cmp r0, #0
+ bne _0222A228
+ mov r0, #0
+ str r0, [r4, #0x20]
+ ldr r0, [r4, #0x10]
+ bl MOD08_02215B40
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0222A228:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A22C
+MOD08_0222A22C: ; 0x0222A22C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x1c]
+ add r6, r1, #0
+ mov r4, #0
+ cmp r0, #0
+ ble _0222A24E
+_0222A23A:
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0
+ add r2, r6, #0
+ add r3, r5, #0
+ bl FUN_020133AC
+ ldr r0, [r5, #0x1c]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _0222A23A
+_0222A24E:
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5, #0xc]
+ bl FUN_02013440
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0222A258
+MOD08_0222A258: ; 0x0222A258
+ ldr r3, _0222A25C ; =FUN_0201341C
+ bx r3
+ .align 2, 0
+_0222A25C: .word FUN_0201341C
+
+ thumb_func_start MOD08_0222A260
+MOD08_0222A260: ; 0x0222A260
+ push {r3, r4, r5, lr}
+ sub sp, #0x58
+ ldr r4, _0222A290 ; =0x0222D4E0
+ add r5, r0, #0
+ add r3, sp, #0
+ mov r2, #0xb
+_0222A26C:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222A26C
+ sub r0, r5, #5
+ cmp r0, #0x16
+ blo _0222A284
+ bl ErrorHandling
+ add sp, #0x58
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0222A284:
+ lsl r1, r0, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ add sp, #0x58
+ pop {r3, r4, r5, pc}
+ nop
+_0222A290: .word 0x0222D4E0
+
+ thumb_func_start MOD08_0222A294
+MOD08_0222A294: ; 0x0222A294
+ push {r3, lr}
+ add r3, r1, #0
+ ldr r1, [r0]
+ mov r2, #0
+ bl MOD08_0222A2B4
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A2A4
+MOD08_0222A2A4: ; 0x0222A2A4
+ push {r3, lr}
+ add r3, r1, #0
+ ldr r1, [r0, #4]
+ mov r2, #1
+ bl MOD08_0222A2B4
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A2B4
+MOD08_0222A2B4: ; 0x0222A2B4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ add r7, r2, #0
+ str r3, [sp, #0x10]
+ bl FUN_020080E0
+ ldr r0, [r5, #4]
+ lsl r1, r0, #1
+ add r1, r5, r1
+ ldrh r6, [r1, #0x28]
+ add r1, r5, r0
+ add r1, #0x30
+ ldrb r1, [r1]
+ add r2, r5, r0
+ add r2, #0x38
+ str r1, [sp, #0x1c]
+ add r1, r5, r0
+ lsl r0, r0, #2
+ ldrb r2, [r2]
+ add r0, r5, r0
+ add r1, #0x34
+ ldr r0, [r0, #0x3c]
+ ldrb r1, [r1]
+ str r2, [sp, #0x18]
+ str r0, [sp, #0x14]
+ cmp r7, #0
+ beq _0222A30A
+ add r0, r5, r4
+ add r0, #0x4c
+ ldrb r2, [r0]
+ mov r0, #1
+ tst r0, r2
+ beq _0222A306
+ mov r4, #0
+ b _0222A31C
+_0222A306:
+ mov r4, #2
+ b _0222A31C
+_0222A30A:
+ add r0, r5, r4
+ add r0, #0x4c
+ ldrb r2, [r0]
+ mov r0, #1
+ tst r0, r2
+ beq _0222A31A
+ mov r4, #2
+ b _0222A31C
+_0222A31A:
+ mov r4, #0
+_0222A31C:
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x1c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x14]
+ lsl r1, r6, #0x10
+ lsl r2, r2, #0x18
+ lsl r3, r4, #0x18
+ str r0, [sp, #8]
+ add r0, sp, #0x28
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02068C00
+ ldr r0, [r5]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_020081C0
+ add r7, r0, #0
+ add r3, sp, #0x28
+ add r2, r7, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r5]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_020080D0
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ ldrh r0, [r7, #6]
+ str r0, [sp, #0xc]
+ ldr r3, [r5]
+ ldrh r0, [r7]
+ lsl r3, r3, #2
+ add r3, r5, r3
+ ldr r3, [r3, #8]
+ ldrh r1, [r7, #2]
+ ldr r3, [r3]
+ bl FUN_02012560
+ ldr r1, [r5]
+ ldr r3, [sp, #0x18]
+ lsl r1, r1, #2
+ add r1, r5, r1
+ lsl r2, r4, #0x18
+ lsl r3, r3, #0x18
+ ldrh r0, [r7]
+ ldr r1, [r1, #8]
+ lsr r2, r2, #0x18
+ str r0, [r1, #4]
+ ldr r1, [r5]
+ ldrh r0, [r7, #4]
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r1, [r1, #8]
+ lsr r3, r3, #0x18
+ str r0, [r1, #8]
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp]
+ lsl r0, r6, #0x10
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x18
+ bl FUN_02068E88
+ ldr r1, [r5]
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r1, [r1, #8]
+ str r0, [r1, #0xc]
+ ldr r0, [r5]
+ lsl r1, r0, #2
+ add r1, r5, r1
+ ldr r1, [r1, #8]
+ add r0, r5, r0
+ ldr r1, [r1, #0xc]
+ add r0, #0x4c
+ lsl r1, r1, #0x18
+ asr r7, r1, #0x18
+ ldrb r0, [r0]
+ mov r1, #1
+ bl MOD08_0222A6A4
+ str r0, [sp, #0x20]
+ ldr r0, [r5]
+ ldr r2, [sp, #0x20]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ mov r1, #1
+ add r2, r2, r7
+ bl FUN_02007558
+ cmp r4, #2
+ bne _0222A48E
+ mov r0, #1
+ str r0, [sp]
+ add r0, sp, #0x24
+ add r0, #2
+ mov r1, #0x8a
+ mov r2, #0
+ add r3, r6, #0
+ bl ReadFromNarcMemberByIdPair
+ mov r0, #1
+ str r0, [sp]
+ add r0, sp, #0x24
+ add r0, #1
+ mov r1, #0x90
+ mov r2, #0
+ add r3, r6, #0
+ bl ReadFromNarcMemberByIdPair
+ mov r0, #1
+ str r0, [sp]
+ add r0, sp, #0x24
+ mov r1, #0x8e
+ mov r2, #0
+ add r3, r6, #0
+ bl ReadFromNarcMemberByIdPair
+ ldr r0, [r5]
+ add r2, sp, #0x24
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldrb r2, [r2]
+ ldr r0, [r0, #0x18]
+ mov r1, #0x2e
+ bl FUN_02007558
+ ldr r0, [r5]
+ ldr r2, [sp, #0x20]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r2, #0x24
+ ldr r0, [r0, #0x18]
+ mov r1, #0x14
+ str r2, [sp, #0x20]
+ bl FUN_02007558
+ ldr r0, [r5]
+ add r3, sp, #0x24
+ lsl r0, r0, #2
+ mov r2, #1
+ add r0, r5, r0
+ ldrsb r2, [r3, r2]
+ ldr r0, [r0, #0x18]
+ mov r1, #0x15
+ bl FUN_02007558
+ ldr r0, [r5]
+ mov r2, #0x24
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ mov r1, #0x16
+ sub r2, r2, r7
+ bl FUN_02007558
+ ldr r0, [r5]
+ add r3, sp, #0x24
+ lsl r0, r0, #2
+ mov r2, #2
+ add r0, r5, r0
+ ldrsb r2, [r3, r2]
+ ldr r0, [r0, #0x18]
+ mov r1, #0x29
+ bl FUN_02007558
+_0222A48E:
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A494
+MOD08_0222A494: ; 0x0222A494
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ ldr r0, [r5]
+ str r1, [sp, #0x10]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_0200813C
+ ldr r0, [r5]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_020081C0
+ add r4, r0, #0
+ ldr r0, [r5]
+ lsl r1, r0, #1
+ add r1, r5, r1
+ ldrh r1, [r1, #0x28]
+ lsl r3, r0, #2
+ str r1, [sp, #0x1c]
+ add r1, r5, r0
+ add r1, #0x30
+ ldrb r1, [r1]
+ str r1, [sp, #0x18]
+ add r1, r5, r0
+ add r1, #0x38
+ ldrb r1, [r1]
+ add r0, r5, r0
+ add r0, #0x4c
+ str r1, [sp, #0x14]
+ add r1, r5, r3
+ ldr r7, [r1, #0x3c]
+ ldrb r1, [r0]
+ mov r0, #1
+ tst r0, r1
+ beq _0222A4E6
+ mov r6, #2
+ b _0222A4E8
+_0222A4E6:
+ mov r6, #0
+_0222A4E8:
+ str r7, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r6, [sp, #8]
+ ldrh r0, [r4, #6]
+ add r3, r5, r3
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #0xc]
+ ldr r3, [r3, #8]
+ ldrh r0, [r4]
+ ldrh r1, [r4, #2]
+ ldr r3, [r3]
+ bl FUN_02012560
+ ldr r1, [r5]
+ ldrh r0, [r4]
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r1, [r1, #8]
+ ldr r3, [sp, #0x14]
+ str r0, [r1, #4]
+ ldr r1, [r5]
+ lsl r2, r6, #0x18
+ lsl r1, r1, #2
+ add r1, r5, r1
+ lsl r3, r3, #0x18
+ ldrh r0, [r4, #4]
+ ldr r1, [r1, #8]
+ lsr r2, r2, #0x18
+ str r0, [r1, #8]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x18
+ str r7, [sp]
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02068E88
+ ldr r1, [r5]
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r1, [r1, #8]
+ str r0, [r1, #0xc]
+ ldr r0, [r5]
+ mov r1, #1
+ lsl r4, r0, #2
+ add r0, r5, r0
+ add r0, #0x4c
+ ldrb r0, [r0]
+ bl MOD08_0222A6A4
+ add r1, r5, r4
+ add r2, r0, #0
+ ldr r0, [r1, #8]
+ ldr r3, [r0, #0xc]
+ ldr r0, [r1, #0x18]
+ mov r1, #1
+ add r2, r3, r2
+ bl FUN_02007558
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222A568
+MOD08_0222A568: ; 0x0222A568
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r6, r1, #0
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_020080E0
+ mov r0, #0x75
+ add r2, sp, #0
+ strh r0, [r2, #4]
+ mov r0, #0xd2
+ strh r0, [r2, #8]
+ mov r0, #0
+ strh r0, [r2, #0xa]
+ strb r0, [r2, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5]
+ add r1, r5, r0
+ add r1, #0x4c
+ ldrb r3, [r1]
+ mov r1, #1
+ tst r1, r3
+ beq _0222A5A4
+ mov r1, #0xd1
+ strh r1, [r2, #6]
+ mov r4, #0x87
+ b _0222A5AA
+_0222A5A4:
+ mov r1, #0xd0
+ strh r1, [r2, #6]
+ mov r4, #0x86
+_0222A5AA:
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_020081C0
+ add r7, r0, #0
+ add r3, sp, #4
+ add r2, r7, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r5]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_020080D0
+ ldr r3, [r5]
+ ldrh r0, [r7]
+ lsl r3, r3, #2
+ add r3, r5, r3
+ ldr r3, [r3, #8]
+ ldrh r1, [r7, #2]
+ ldr r3, [r3]
+ add r2, r6, #0
+ bl FUN_02012420
+ ldr r2, [r5]
+ add r1, sp, #0
+ lsl r2, r2, #2
+ add r2, r5, r2
+ ldrh r0, [r1, #4]
+ ldr r2, [r2, #8]
+ str r0, [r2, #4]
+ ldr r0, [r5]
+ ldrh r1, [r1, #8]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #8]
+ add r2, r4, #0
+ str r1, [r0, #8]
+ add r0, sp, #0
+ mov r1, #0x79
+ bl ReadWholeNarcMemberByIdPair
+ add r0, sp, #0
+ ldrb r1, [r0]
+ ldr r0, [r5]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #8]
+ str r1, [r0, #0xc]
+ ldr r0, [r5]
+ mov r1, #1
+ lsl r4, r0, #2
+ add r0, r5, r0
+ add r0, #0x4c
+ ldrb r0, [r0]
+ bl MOD08_0222A6A4
+ add r2, r5, r4
+ ldr r1, [r2, #8]
+ ldr r1, [r1, #0xc]
+ add r4, r1, r0
+ ldr r0, [r2, #0x18]
+ mov r1, #1
+ add r2, r4, #0
+ bl FUN_02007558
+ ldr r1, [r5]
+ mov r2, #1
+ add r0, r5, r1
+ add r0, #0x4c
+ ldrb r0, [r0]
+ tst r0, r2
+ beq _0222A69E
+ lsl r0, r1, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ mov r1, #0x2e
+ bl FUN_02007558
+ ldr r0, [r5]
+ add r2, sp, #0
+ ldrb r3, [r2]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r2, #0x24
+ sub r2, r2, r3
+ ldr r0, [r0, #0x18]
+ mov r1, #0x14
+ add r2, r4, r2
+ bl FUN_02007558
+ ldr r0, [r5]
+ mov r1, #0x15
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r5]
+ add r2, sp, #0
+ lsl r0, r0, #2
+ ldrb r3, [r2]
+ add r0, r5, r0
+ mov r2, #0x24
+ ldr r0, [r0, #0x18]
+ mov r1, #0x16
+ sub r2, r2, r3
+ bl FUN_02007558
+ ldr r0, [r5]
+ mov r1, #0x29
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ mov r2, #0
+ bl FUN_02007558
+_0222A69E:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A6A4
+MOD08_0222A6A4: ; 0x0222A6A4
+ cmp r1, #0
+ bne _0222A6B0
+ lsl r1, r0, #2
+ ldr r0, _0222A6C0 ; =0x0222D538
+ ldrsh r0, [r0, r1]
+ bx lr
+_0222A6B0:
+ mov r2, #6
+ mul r2, r0
+ ldr r0, _0222A6C4 ; =0x0222D550
+ lsl r1, r1, #1
+ add r0, r0, r2
+ ldrsh r0, [r1, r0]
+ bx lr
+ nop
+_0222A6C0: .word 0x0222D538
+_0222A6C4: .word 0x0222D550
+
+ thumb_func_start MOD08_0222A6C8
+MOD08_0222A6C8: ; 0x0222A6C8
+ ldr r1, _0222A75C ; =0x0000013B
+ cmp r0, r1
+ bhi _0222A6F6
+ bhs _0222A754
+ cmp r0, #0x7d
+ bhi _0222A6E4
+ bhs _0222A754
+ cmp r0, #0x63
+ bhi _0222A6DE
+ beq _0222A754
+ b _0222A758
+_0222A6DE:
+ cmp r0, #0x78
+ beq _0222A754
+ b _0222A758
+_0222A6E4:
+ cmp r0, #0xc9
+ bhi _0222A6F0
+ bhs _0222A754
+ cmp r0, #0x9f
+ beq _0222A754
+ b _0222A758
+_0222A6F0:
+ cmp r0, #0xd7
+ beq _0222A754
+ b _0222A758
+_0222A6F6:
+ add r2, r1, #0
+ add r2, #0x4a
+ cmp r0, r2
+ bhi _0222A71E
+ add r2, r1, #0
+ add r2, #0x4a
+ cmp r0, r2
+ bhs _0222A754
+ add r2, r1, #0
+ add r2, #0x14
+ cmp r0, r2
+ bhi _0222A716
+ add r1, #0x14
+ cmp r0, r1
+ beq _0222A754
+ b _0222A758
+_0222A716:
+ add r1, #0x2c
+ cmp r0, r1
+ beq _0222A754
+ b _0222A758
+_0222A71E:
+ add r2, r1, #0
+ add r2, #0x98
+ cmp r0, r2
+ bhi _0222A74E
+ add r2, r1, #0
+ add r2, #0x98
+ cmp r0, r2
+ bhs _0222A754
+ add r2, r1, #0
+ add r2, #0x5c
+ cmp r0, r2
+ bhi _0222A758
+ add r2, r1, #0
+ add r2, #0x5b
+ cmp r0, r2
+ blo _0222A758
+ add r2, r1, #0
+ add r2, #0x5b
+ cmp r0, r2
+ beq _0222A754
+ add r1, #0x5c
+ cmp r0, r1
+ beq _0222A754
+ b _0222A758
+_0222A74E:
+ add r1, #0x99
+ cmp r0, r1
+ bne _0222A758
+_0222A754:
+ mov r0, #0
+ bx lr
+_0222A758:
+ mov r0, #1
+ bx lr
+ .align 2, 0
+_0222A75C: .word 0x0000013B
+
+ .section .rodata
+ ; 0x0222A760
.byte 0xCD, 0x75, 0xFF, 0x7F, 0xD7, 0x6A, 0x75, 0x66, 0x33, 0x62, 0x8F, 0x51, 0x6D, 0x4D, 0x6C, 0x41
.byte 0x2A, 0x2D, 0x19, 0x73, 0x08, 0x21, 0x00, 0x00, 0x8C, 0x31, 0xB5, 0x56, 0xBB, 0x53, 0x0A, 0x39
.byte 0xCD, 0x75, 0x39, 0x77, 0xAD, 0x49, 0x8C, 0x3D, 0x6A, 0x35, 0x29, 0x29, 0x08, 0x21, 0x42, 0x14
@@ -50718,7 +50718,7 @@ _0222A75C: .word 0x0000013B
.byte 0x2A, 0x00, 0x80, 0xFD, 0xB0, 0xFF, 0x70, 0x00, 0x00, 0xFE, 0x50, 0x01, 0x32, 0x00, 0x00, 0xFE
.byte 0xB0, 0xFF, 0x70, 0x00, 0x00, 0xFE, 0x50, 0x01, 0x32, 0x00, 0x00, 0xFE, 0xB0, 0xFF, 0x70, 0x00
.byte 0x00, 0xFE, 0x50, 0x01, 0x32, 0x00, 0x00, 0xFE
-
- .section .data
+
+ .section .data
.byte 0x14, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/arm9/modules/11/asm/module_11.s b/arm9/modules/11/asm/module_11.s
index 3badbb92..719fca68 100644
--- a/arm9/modules/11/asm/module_11.s
+++ b/arm9/modules/11/asm/module_11.s
@@ -1,98639 +1,98639 @@
- .include "asm/macros.inc"
- .include "global.inc"
- .section .text
- .balign 4, 0
-
- thumb_func_start MOD11_0222D5C0
-MOD11_0222D5C0: ; 0x0222D5C0
- push {r4, r5, r6, lr}
- sub sp, #0x28
- add r4, r1, #0
- add r6, r0, #0
- bl FUN_0200628C
- ldr r1, [r4]
- add r5, r0, #0
- cmp r1, #0xf
- bhi _0222D6D2
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0222D5E0: ; jump table
- .short _0222D600 - _0222D5E0 - 2 ; case 0
- .short _0222D620 - _0222D5E0 - 2 ; case 1
- .short _0222D65A - _0222D5E0 - 2 ; case 2
- .short _0222D670 - _0222D5E0 - 2 ; case 3
- .short _0222D686 - _0222D5E0 - 2 ; case 4
- .short _0222D696 - _0222D5E0 - 2 ; case 5
- .short _0222D6AC - _0222D5E0 - 2 ; case 6
- .short _0222D6C8 - _0222D5E0 - 2 ; case 7
- .short _0222D6DA - _0222D5E0 - 2 ; case 8
- .short _0222D6EE - _0222D5E0 - 2 ; case 9
- .short _0222D704 - _0222D5E0 - 2 ; case 10
- .short _0222D720 - _0222D5E0 - 2 ; case 11
- .short _0222D742 - _0222D5E0 - 2 ; case 12
- .short _0222D752 - _0222D5E0 - 2 ; case 13
- .short _0222D7C2 - _0222D5E0 - 2 ; case 14
- .short _0222D7E4 - _0222D5E0 - 2 ; case 15
-_0222D600:
- mov r2, #0xb
- mov r0, #3
- mov r1, #5
- lsl r2, r2, #0x10
- bl FUN_0201681C
- ldr r1, [r5]
- mov r0, #4
- tst r0, r1
- beq _0222D61A
- mov r0, #1
- str r0, [r4]
- b _0222D7EA
-_0222D61A:
- mov r0, #3
- str r0, [r4]
- b _0222D7EA
-_0222D620:
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0222F29C
- mov r0, #0x4b
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- bl FUN_02033778
- bl FUN_02033590
- cmp r0, #0
- bne _0222D648
- mov r0, #0x51
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- mov r1, #0x14
- bl FUN_0202A0E8
- b _0222D654
-_0222D648:
- mov r0, #0x51
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- mov r1, #0x19
- bl FUN_0202A0E8
-_0222D654:
- mov r0, #2
- str r0, [r4]
- b _0222D7EA
-_0222D65A:
- add r0, r6, #0
- bl MOD11_0222F4E4
- cmp r0, #1
- bne _0222D6D2
- add r0, r6, #0
- bl MOD11_0222F93C
- mov r0, #3
- str r0, [r4]
- b _0222D7EA
-_0222D670:
- add r0, r6, #0
- bl MOD11_0222F988
- cmp r0, #1
- bne _0222D680
- mov r0, #4
- str r0, [r4]
- b _0222D7EA
-_0222D680:
- mov r0, #5
- str r0, [r4]
- b _0222D7EA
-_0222D686:
- add r0, r6, #0
- bl MOD11_0222FABC
- cmp r0, #1
- bne _0222D6D2
- mov r0, #5
- str r0, [r4]
- b _0222D7EA
-_0222D696:
- add r0, r6, #0
- bl MOD11_0222FB04
- cmp r0, #1
- bne _0222D6A6
- mov r0, #6
- str r0, [r4]
- b _0222D7EA
-_0222D6A6:
- mov r0, #8
- str r0, [r4]
- b _0222D7EA
-_0222D6AC:
- add r0, r6, #0
- bl MOD11_0222FC38
- cmp r0, #1
- bne _0222D6D2
- ldr r0, _0222D7F0 ; =SDK_OVERLAY_MODULE_07_ID
- bl UnloadOverlayByID
- mov r0, #7
- str r0, [r4]
- mov r0, #0x3d
- bl FUN_02031588
- b _0222D7EA
-_0222D6C8:
- mov r0, #0x3d
- bl FUN_020315D8
- cmp r0, #0
- bne _0222D6D4
-_0222D6D2:
- b _0222D7EA
-_0222D6D4:
- mov r0, #8
- str r0, [r4]
- b _0222D7EA
-_0222D6DA:
- ldr r0, _0222D7F4 ; =SDK_OVERLAY_MODULE_08_ID
- mov r1, #2
- bl HandleLoadOverlay
- add r0, r6, #0
- bl MOD11_0222DB50
- mov r0, #9
- str r0, [r4]
- b _0222D7EA
-_0222D6EE:
- add r0, r6, #0
- bl MOD11_0222DF4C
- cmp r0, #1
- bne _0222D7EA
- add r0, r6, #0
- bl MOD11_0222DFA4
- mov r0, #0xa
- str r0, [r4]
- b _0222D7EA
-_0222D704:
- add r0, r6, #0
- bl MOD11_0222FC80
- cmp r0, #1
- bne _0222D714
- mov r0, #0xb
- str r0, [r4]
- b _0222D7EA
-_0222D714:
- mov r0, #5
- bl FUN_020168D0
- mov r0, #0xd
- str r0, [r4]
- b _0222D7EA
-_0222D720:
- add r0, r6, #0
- bl MOD11_0222FE58
- cmp r0, #1
- bne _0222D7EA
- ldr r0, _0222D7F0 ; =SDK_OVERLAY_MODULE_07_ID
- bl UnloadOverlayByID
- mov r0, #5
- bl FUN_020168D0
- mov r0, #0x3e
- bl FUN_02031588
- mov r0, #0xc
- str r0, [r4]
- b _0222D7EA
-_0222D742:
- mov r0, #0x3e
- bl FUN_020315D8
- cmp r0, #0
- beq _0222D7EA
- mov r0, #0xf
- str r0, [r4]
- b _0222D7EA
-_0222D752:
- add r1, sp, #0x24
- add r2, sp, #0x20
- bl MOD11_02230D38
- add r6, r0, #0
- beq _0222D7BC
- mov r0, #3
- mov r1, #0x49
- lsl r2, r0, #0x10
- bl FUN_0201681C
- ldr r0, [r5, #4]
- ldr r1, [sp, #0x24]
- bl GetPartyMonByIndex
- add r1, r0, #0
- mov r0, #0x5a
- lsl r0, r0, #2
- ldr r2, [r5, r0]
- mov r3, #0x49
- str r2, [sp]
- add r2, r0, #0
- sub r2, #0x58
- ldr r2, [r5, r2]
- str r2, [sp, #4]
- add r2, r0, #0
- sub r2, #0x60
- ldr r2, [r5, r2]
- str r2, [sp, #8]
- add r2, r0, #0
- sub r2, #0x24
- ldr r2, [r5, r2]
- sub r0, #0x40
- str r2, [sp, #0xc]
- ldr r0, [r5, r0]
- add r2, r6, #0
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x20]
- str r0, [sp, #0x14]
- mov r0, #3
- str r0, [sp, #0x18]
- str r3, [sp, #0x1c]
- add r3, #0xe7
- ldr r0, [r5, #4]
- ldr r3, [r5, r3]
- bl FUN_0206C700
- mov r1, #0x66
- lsl r1, r1, #2
- str r0, [r5, r1]
- mov r0, #0xe
- str r0, [r4]
- b _0222D7EA
-_0222D7BC:
- mov r0, #0xf
- str r0, [r4]
- b _0222D7EA
-_0222D7C2:
- mov r0, #0x66
- lsl r0, r0, #2
- ldr r5, [r5, r0]
- add r0, r5, #0
- bl FUN_0206C91C
- cmp r0, #1
- bne _0222D7EA
- add r0, r5, #0
- bl FUN_0206C92C
- mov r0, #0x49
- bl FUN_020168D0
- mov r0, #0xd
- str r0, [r4]
- b _0222D7EA
-_0222D7E4:
- add sp, #0x28
- mov r0, #1
- pop {r4, r5, r6, pc}
-_0222D7EA:
- mov r0, #0
- add sp, #0x28
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0222D7F0: .word SDK_OVERLAY_MODULE_07_ID
-_0222D7F4: .word SDK_OVERLAY_MODULE_08_ID
-
- thumb_func_start MOD11_0222D7F8
-MOD11_0222D7F8: ; 0x0222D7F8
- push {r4, lr}
- add r4, r0, #0
- mov r0, #0x67
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl MOD11_02258658
- ldr r0, [r4, #4]
- bl MOD11_022584AC
- ldr r1, _0222D834 ; =0x000023FB
- mov r0, #4
- ldrb r2, [r4, r1]
- orr r0, r2
- strb r0, [r4, r1]
- mov r0, #2
- bl FUN_02002CF8
- add r0, r4, #0
- mov r1, #3
- bl MOD11_02231338
- ldr r0, _0222D838 ; =SDK_OVERLAY_MODULE_08_ID
- bl UnloadOverlayByID
- ldr r0, _0222D83C ; =SDK_OVERLAY_MODULE_09_ID
- mov r1, #2
- bl HandleLoadOverlay
- pop {r4, pc}
- .align 2, 0
-_0222D834: .word 0x000023FB
-_0222D838: .word SDK_OVERLAY_MODULE_08_ID
-_0222D83C: .word SDK_OVERLAY_MODULE_09_ID
-
- thumb_func_start MOD11_0222D840
-MOD11_0222D840: ; 0x0222D840
- push {r4, lr}
- add r4, r0, #0
- mov r0, #0
- add r1, r0, #0
- bl FUN_02015F10
- mov r0, #0x67
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl MOD11_02258658
- ldr r0, [r4, #8]
- bl FUN_02019178
- ldr r0, [r4, #4]
- bl MOD11_0222E4E8
- add r0, r4, #0
- bl MOD11_0222E51C
- add r0, r4, #0
- add r1, r4, #0
- add r0, #0x90
- add r1, #0x94
- ldr r0, [r0]
- ldr r1, [r1]
- bl FUN_0200C398
- add r4, #0x90
- ldr r0, [r4]
- bl FUN_0200BD04
- bl FUN_0201C29C
- mov r0, #2
- bl FUN_02002CF8
- pop {r4, pc}
-
- thumb_func_start MOD11_0222D88C
-MOD11_0222D88C: ; 0x0222D88C
- push {r3, r4, r5, lr}
- add r4, r0, #0
- ldr r0, _0222D938 ; =SDK_OVERLAY_MODULE_09_ID
- bl UnloadOverlayByID
- ldr r0, _0222D93C ; =SDK_OVERLAY_MODULE_08_ID
- mov r1, #2
- bl HandleLoadOverlay
- add r0, r4, #0
- mov r1, #0
- bl MOD11_02231338
- bl FUN_02022300
- add r5, r0, #0
- bl FUN_020222F8
- add r1, r0, #0
- mov r0, #0
- add r2, r5, #0
- bl MIi_CpuClear16
- bl FUN_02031190
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_0223021C
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_022584D4
- mov r1, #0x67
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r0, #2
- mov r1, #5
- bl FUN_02002C50
- ldr r1, _0222D940 ; =0x000023FB
- mov r0, #2
- ldrb r2, [r4, r1]
- orr r0, r2
- strb r0, [r4, r1]
- ldr r0, [r4, #4]
- bl MOD11_02258450
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E74C
- mov r0, #0x67
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl MOD11_022586BC
- mov r0, #0x67
- lsl r0, r0, #2
- mov r1, #0
- ldr r0, [r4, r0]
- mov r2, #1
- add r3, r1, #0
- bl MOD11_02258820
- mov r0, #0x67
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl MOD11_02258958
- mov r0, #1
- bl FUN_02002840
- add r0, r4, #0
- bl MOD11_0222FE94
- add r4, #0x90
- ldr r0, [r4]
- bl FUN_0200BB68
- mov r2, #0x11
- mov r1, #0
- lsl r2, r2, #0x10
- bl FUN_02008D24
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0222D938: .word SDK_OVERLAY_MODULE_09_ID
-_0222D93C: .word SDK_OVERLAY_MODULE_08_ID
-_0222D940: .word 0x000023FB
-
- thumb_func_start MOD11_0222D944
-MOD11_0222D944: ; 0x0222D944
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #8]
- bl FUN_02019178
- mov r0, #1
- mov r1, #0
- bl FUN_0201E6E4
- mov r0, #2
- mov r1, #0
- bl FUN_0201E6E4
- ldr r0, [r4, #4]
- mov r1, #1
- bl FUN_020178A0
- ldr r0, [r4, #4]
- mov r1, #2
- bl FUN_020178A0
- ldr r0, [r4, #4]
- mov r1, #3
- bl FUN_020178A0
- add r0, r4, #0
- bl MOD11_02231410
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0222D980
-MOD11_0222D980: ; 0x0222D980
- push {r4, r5, r6, lr}
- sub sp, #0x68
- ldr r1, _0222DB38 ; =0x000023FB
- add r5, r0, #0
- ldrb r2, [r5, r1]
- mov r0, #1
- ldr r4, _0222DB3C ; =0x0225DAE0
- bic r2, r0
- mov r0, #1
- orr r0, r2
- strb r0, [r5, r1]
- add r3, sp, #0x14
- mov r2, #0xa
-_0222D99A:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222D99A
- ldr r0, [r4]
- mov r1, #1
- str r0, [r3]
- ldr r0, [r5, #4]
- add r2, sp, #0x14
- mov r3, #0
- bl FUN_02016C18
- ldr r0, [r5, #4]
- mov r1, #1
- bl FUN_02018744
- ldr r0, [r5, #4]
- mov r1, #2
- add r2, sp, #0x30
- mov r3, #0
- bl FUN_02016C18
- ldr r0, [r5, #4]
- mov r1, #2
- bl FUN_02018744
- ldr r0, [r5, #4]
- mov r1, #3
- add r2, sp, #0x4c
- mov r3, #0
- bl FUN_02016C18
- ldr r0, [r5, #4]
- mov r1, #3
- bl FUN_02018744
- ldr r1, _0222DB40 ; =0x04000008
- mov r0, #3
- ldrh r2, [r1]
- bic r2, r0
- mov r0, #1
- orr r2, r0
- strh r2, [r1]
- add r1, r0, #0
- bl FUN_0201E6E4
- add r0, r5, #0
- bl MOD11_02230E44
- add r4, r0, #0
- lsl r0, r4, #0x18
- lsr r0, r0, #0x18
- str r0, [sp]
- mov r0, #5
- str r0, [sp, #4]
- mov r1, #1
- ldr r0, [r5, #4]
- add r2, r1, #0
- mov r3, #0xa
- bl FUN_0200D274
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- mov r0, #5
- str r0, [sp, #0xc]
- mov r1, #9
- lsl r1, r1, #0xa
- ldr r1, [r5, r1]
- ldr r2, [r5, #4]
- mov r0, #7
- add r1, r1, #3
- mov r3, #3
- bl FUN_0200687C
- add r0, r5, #0
- bl MOD11_02230C68
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r3, #9
- str r0, [sp, #8]
- lsl r3, r3, #0xa
- ldr r6, [r5, r3]
- ldr r0, [r5, #0x28]
- lsl r3, r6, #1
- add r3, r6, r3
- add r3, #0x9e
- add r2, r3, r2
- mov r1, #7
- mov r3, #5
- bl FUN_020030E8
- add r0, r4, #0
- bl FUN_0200CD64
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0xa0
- str r0, [sp, #8]
- ldr r0, [r5, #0x28]
- mov r1, #0x26
- mov r3, #5
- bl FUN_020030E8
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0xb0
- str r0, [sp, #8]
- ldr r0, [r5, #0x28]
- mov r1, #0xe
- mov r2, #7
- mov r3, #5
- bl FUN_020030E8
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- mov r0, #5
- str r0, [sp, #0xc]
- ldr r2, [r5, #4]
- mov r0, #7
- mov r1, #2
- mov r3, #3
- bl FUN_020068C8
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r2, [r0]
- ldr r1, _0222DB44 ; =0xFFFF1FFF
- ldr r3, _0222DB48 ; =0x04001000
- and r2, r1
- str r2, [r0]
- ldr r2, [r3]
- and r1, r2
- add r2, r0, #0
- str r1, [r3]
- add r2, #0x48
- ldrh r3, [r2]
- mov r1, #0x3f
- add r0, #0x4a
- bic r3, r1
- strh r3, [r2]
- ldrh r2, [r0]
- bic r2, r1
- strh r2, [r0]
- bl FUN_0201E788
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E6E4
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E74C
- ldr r0, _0222DB4C ; =MOD11_0222F01C
- add r1, r5, #0
- bl FUN_02015F10
- ldr r0, _0222DB38 ; =0x000023FB
- mov r3, #2
- ldrb r1, [r5, r0]
- mov r2, #1
- orr r1, r3
- strb r1, [r5, r0]
- mov r0, #0x13
- str r0, [sp]
- mov r0, #0x1b
- str r0, [sp, #4]
- mov r0, #4
- str r0, [sp, #8]
- mov r0, #0xb
- str r0, [sp, #0xc]
- mov r0, #0x1f
- str r0, [sp, #0x10]
- ldr r0, [r5, #4]
- ldr r1, [r5, #8]
- bl FUN_02019064
- ldr r0, [r5, #8]
- mov r1, #0xff
- bl FUN_02019620
- ldr r0, [r5, #8]
- mov r1, #0
- mov r2, #1
- mov r3, #0xa
- bl FUN_0200D0BC
- add r0, r5, #0
- bl MOD11_0222FE94
- add sp, #0x68
- pop {r4, r5, r6, pc}
- nop
-_0222DB38: .word 0x000023FB
-_0222DB3C: .word 0x0225DAE0
-_0222DB40: .word 0x04000008
-_0222DB44: .word 0xFFFF1FFF
-_0222DB48: .word 0x04001000
-_0222DB4C: .word MOD11_0222F01C
-
- thumb_func_start MOD11_0222DB50
-MOD11_0222DB50: ; 0x0222DB50
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x30
- bl FUN_02006278
- add r4, r0, #0
- bl FUN_020222F0
- add r5, r0, #0
- bl FUN_020222E8
- add r1, r0, #0
- mov r0, #0
- add r2, r5, #0
- bl MIi_CpuClear16
- bl FUN_02022300
- add r5, r0, #0
- bl FUN_020222F8
- add r1, r0, #0
- mov r0, #0
- add r2, r5, #0
- bl MIi_CpuClear16
- bl getseed_LC
- ldr r1, _0222DF0C ; =0x00002430
- str r0, [r4, r1]
- add r0, sp, #0x20
- add r1, sp, #0x14
- bl FUN_0201265C
- ldr r0, _0222DF10 ; =0x021C48B8
- ldr r6, [sp, #0x24]
- ldr r5, [r0, #0x2c]
- ldr r1, [sp, #0x18]
- ldr r0, [sp, #0x1c]
- lsl r6, r6, #8
- add r0, r1, r0
- lsl r3, r0, #0x18
- ldr r0, [sp, #0x14]
- ldr r1, [sp, #0x20]
- lsl r2, r0, #0x10
- ldr r0, [sp, #0x28]
- mul r6, r0
- lsl r0, r6, #0x10
- add r0, r1, r0
- add r0, r2, r0
- add r0, r3, r0
- add r0, r5, r0
- bl seedr_LC
- bl MOD11_0222EF30
- str r0, [r4]
- bl FUN_02015F1C
- mov r0, #2
- mov r1, #5
- bl FUN_02002C50
- mov r0, #0xe
- mov r1, #1
- mov r2, #0xf
- mov r3, #5
- bl FUN_0200B870
- mov r1, #0x6a
- lsl r1, r1, #2
- str r0, [r4, r1]
- ldr r2, [r4, r1]
- add r0, r1, #4
- str r2, [r4, r0]
- mov r0, #5
- bl FUN_02002FD0
- str r0, [r4, #0x28]
- mov r1, #1
- bl FUN_020038F0
- mov r2, #2
- ldr r0, [r4, #0x28]
- mov r1, #0
- lsl r2, r2, #8
- mov r3, #5
- bl FUN_02003008
- mov r1, #1
- ldr r0, [r4, #0x28]
- lsl r2, r1, #9
- mov r3, #5
- bl FUN_02003008
- mov r2, #7
- ldr r0, [r4, #0x28]
- mov r1, #2
- lsl r2, r2, #6
- mov r3, #5
- bl FUN_02003008
- mov r2, #2
- ldr r0, [r4, #0x28]
- mov r1, #3
- lsl r2, r2, #8
- mov r3, #5
- bl FUN_02003008
- mov r0, #5
- bl FUN_02016B94
- str r0, [r4, #4]
- mov r0, #5
- mov r1, #3
- bl FUN_02018FF4
- mov r7, #0x73
- str r0, [r4, #8]
- mov r6, #0
- add r5, r4, #0
- lsl r7, r7, #2
-_0222DC42:
- mov r1, #0x32
- mov r0, #5
- lsl r1, r1, #6
- bl AllocFromHeap
- str r0, [r5, r7]
- add r6, r6, #1
- add r5, #0x10
- cmp r6, #4
- blt _0222DC42
- mov r0, #0x40
- mov r1, #5
- bl FUN_0201C24C
- bl FUN_02031190
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_0223021C
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_022584D4
- mov r1, #0x67
- lsl r1, r1, #2
- str r0, [r4, r1]
- ldr r1, [r4, #4]
- add r0, r4, #0
- bl MOD11_0222E264
- mov r0, #0x13
- str r0, [sp]
- mov r0, #0x1b
- str r0, [sp, #4]
- mov r0, #4
- str r0, [sp, #8]
- mov r0, #0xb
- str r0, [sp, #0xc]
- mov r0, #0x1f
- str r0, [sp, #0x10]
- ldr r0, [r4, #4]
- ldr r1, [r4, #8]
- mov r2, #1
- mov r3, #2
- bl FUN_02019064
- ldr r0, [r4, #8]
- mov r1, #0xff
- bl FUN_02019620
- ldr r0, [r4, #8]
- mov r1, #0
- mov r2, #1
- mov r3, #0xa
- bl FUN_0200D0BC
- mov r0, #5
- bl FUN_0200BB14
- add r1, r4, #0
- add r1, #0x90
- str r0, [r1]
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- ldr r1, _0222DF14 ; =0x0225DA20
- ldr r2, _0222DF18 ; =0x0225D9D8
- mov r3, #0x20
- bl FUN_0200BB6C
- ldr r1, _0222DF1C ; =0x00100010
- mov r0, #1
- bl FUN_02008D44
- mov r0, #1
- bl FUN_02008DDC
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl FUN_0200BB34
- add r1, r4, #0
- add r1, #0x94
- str r0, [r1]
- add r0, r4, #0
- add r1, r4, #0
- add r0, #0x90
- add r1, #0x94
- ldr r0, [r0]
- ldr r1, [r1]
- mov r2, #0x80
- bl FUN_0200BBF0
- add r0, r4, #0
- add r1, r4, #0
- add r0, #0x90
- add r1, #0x94
- ldr r0, [r0]
- ldr r1, [r1]
- ldr r2, _0222DF20 ; =0x0225D9EC
- bl FUN_0200BF60
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl FUN_0200BB68
- mov r2, #0x11
- mov r1, #0
- lsl r2, r2, #0x10
- bl FUN_02008D24
- mov r0, #0x67
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl MOD11_022586BC
- mov r0, #0x67
- lsl r0, r0, #2
- mov r1, #0
- ldr r0, [r4, r0]
- mov r2, #1
- add r3, r1, #0
- bl MOD11_02258820
- mov r0, #0x67
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl MOD11_02258958
- mov r0, #5
- bl FUN_02006D98
- add r1, r4, #0
- add r1, #0x88
- str r0, [r1]
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- mov r1, #0
- mov r2, #0xc0
- bl FUN_020081B4
- add r0, r4, #0
- bl MOD11_02231390
- bl MOD11_0222EFDC
- mov r0, #5
- bl MOD08_02211F5C
- add r1, r4, #0
- add r1, #0x8c
- str r0, [r1]
- add r0, r4, #0
- bl MOD11_0222E470
- bl FUN_0201CC08
- mov r0, #4
- bl FUN_0201CC24
- mov r2, #0x51
- mov r0, #1
- mov r1, #0x1a
- lsl r2, r2, #2
- mov r3, #5
- bl NewMsgDataFromNarc
- str r0, [r4, #0xc]
- mov r0, #1
- mov r1, #0x1a
- mov r2, #0
- mov r3, #5
- bl NewMsgDataFromNarc
- str r0, [r4, #0x10]
- mov r0, #5
- bl FUN_0200AA80
- str r0, [r4, #0x14]
- mov r0, #5
- lsl r0, r0, #6
- mov r1, #5
- bl FUN_020219F4
- str r0, [r4, #0x18]
- ldr r0, [r4, #0x28]
- mov r1, #0
- bl FUN_020031FC
- ldr r1, _0222DF24 ; =0x00002224
- mov r2, #0xe0
- add r1, r4, r1
- bl MIi_CpuCopy16
- ldr r0, [r4, #0x28]
- mov r1, #2
- bl FUN_020031FC
- ldr r1, _0222DF28 ; =0x00002304
- mov r2, #0xe0
- add r1, r4, r1
- bl MIi_CpuCopy16
- add r0, r4, #0
- bl MOD11_02230C68
- mov r1, #0
- lsl r5, r0, #2
- mov r3, #9
- str r1, [sp]
- mov r0, #0x70
- str r0, [sp, #4]
- lsl r3, r3, #0xa
- ldr r3, [r4, r3]
- mov r6, #0xc
- mul r6, r3
- ldr r3, _0222DF2C ; =0x0225DB88
- ldr r0, [r4, #0x28]
- add r3, r3, r6
- ldr r3, [r5, r3]
- mov r2, #2
- lsl r3, r3, #0x10
- lsr r3, r3, #0x10
- bl FUN_02003914
- mov r0, #0xc0
- str r0, [sp]
- add r0, #0x40
- mov r3, #9
- str r0, [sp, #4]
- lsl r3, r3, #0xa
- ldr r3, [r4, r3]
- mov r6, #0xc
- mul r6, r3
- ldr r3, _0222DF2C ; =0x0225DB88
- ldr r0, [r4, #0x28]
- add r3, r3, r6
- ldr r3, [r5, r3]
- mov r1, #0
- lsl r3, r3, #0x10
- mov r2, #2
- lsr r3, r3, #0x10
- bl FUN_02003914
- mov r0, #0
- str r0, [sp]
- mov r0, #0xdf
- mov r3, #9
- str r0, [sp, #4]
- lsl r3, r3, #0xa
- mov r1, #2
- ldr r3, [r4, r3]
- mov r6, #0xc
- mul r6, r3
- ldr r3, _0222DF2C ; =0x0225DB88
- ldr r0, [r4, #0x28]
- add r3, r3, r6
- ldr r3, [r5, r3]
- add r2, r1, #0
- lsl r3, r3, #0x10
- lsr r3, r3, #0x10
- bl FUN_02003914
- mov r1, #0
- mov r0, #0xa0
- str r0, [sp]
- mov r0, #0xc0
- str r0, [sp, #4]
- ldr r0, [r4, #0x28]
- add r2, r1, #0
- add r3, r1, #0
- bl FUN_02003914
- mov r2, #0
- str r2, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- ldr r0, [r4, #0x28]
- ldr r3, _0222DF30 ; =0x0000FFFF
- mov r1, #1
- bl FUN_02003914
- mov r2, #0
- str r2, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- ldr r0, [r4, #0x28]
- ldr r3, _0222DF30 ; =0x0000FFFF
- mov r1, #3
- bl FUN_02003914
- ldr r0, [r4, #0x28]
- mov r1, #0
- mov r2, #0xb
- mov r3, #5
- bl FUN_020142EC
- mov r1, #0x1b
- lsl r1, r1, #4
- str r0, [r4, r1]
- ldr r0, [r4, r1]
- mov r1, #1
- bl FUN_020143A8
- ldr r0, _0222DF34 ; =MOD11_0222F100
- ldr r2, _0222DF38 ; =0x0000EA60
- add r1, r4, #0
- bl FUN_0200CA44
- str r0, [r4, #0x1c]
- ldr r0, _0222DF3C ; =MOD11_0222F144
- ldr r2, _0222DF40 ; =0x0000C350
- add r1, r4, #0
- bl FUN_0200CA44
- str r0, [r4, #0x20]
- mov r2, #0x4b
- ldr r0, _0222DF44 ; =MOD11_0222F254
- add r1, r4, #0
- lsl r2, r2, #4
- bl FUN_0200CA60
- str r0, [r4, #0x24]
- mov r1, #0x32
- ldr r0, _0222DF48 ; =0x00002434
- mvn r1, r1
- str r1, [r4, r0]
- add r0, r4, #0
- bl MOD11_0222FE94
- add r0, r4, #0
- bl MOD11_02230218
- bl FUN_0206F1C0
- mov r0, #5
- mov r1, #4
- mov r2, #0
- bl FUN_02014BF4
- mov r1, #0x71
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r0, #2
- mov r1, #5
- bl FUN_0201C328
- mov r1, #0x72
- lsl r1, r1, #2
- str r0, [r4, r1]
- add sp, #0x30
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0222DF0C: .word 0x00002430
-_0222DF10: .word 0x021C48B8
-_0222DF14: .word 0x0225DA20
-_0222DF18: .word 0x0225D9D8
-_0222DF1C: .word 0x00100010
-_0222DF20: .word 0x0225D9EC
-_0222DF24: .word 0x00002224
-_0222DF28: .word 0x00002304
-_0222DF2C: .word 0x0225DB88
-_0222DF30: .word 0x0000FFFF
-_0222DF34: .word MOD11_0222F100
-_0222DF38: .word 0x0000EA60
-_0222DF3C: .word MOD11_0222F144
-_0222DF40: .word 0x0000C350
-_0222DF44: .word MOD11_0222F254
-_0222DF48: .word 0x00002434
-
- thumb_func_start MOD11_0222DF4C
-MOD11_0222DF4C: ; 0x0222DF4C
- push {r4, r5, r6, lr}
- bl FUN_02006278
- ldr r1, _0222DF9C ; =0x000023F8
- add r4, r0, #0
- ldrb r1, [r4, r1]
- cmp r1, #0
- beq _0222DF7A
- ldr r2, [r4, #0x2c]
- mov r1, #4
- tst r1, r2
- ldr r1, [r4, #0x30]
- beq _0222DF6C
- bl MOD11_0223D238
- b _0222DF7A
-_0222DF6C:
- bl MOD11_0223D238
- ldr r1, _0222DFA0 ; =0x000023FA
- strb r0, [r4, r1]
- add r0, r4, #0
- bl MOD11_02254820
-_0222DF7A:
- ldr r0, [r4, #0x44]
- mov r6, #0
- cmp r0, #0
- ble _0222DF96
- add r5, r4, #0
-_0222DF84:
- ldr r1, [r5, #0x34]
- add r0, r4, #0
- bl MOD11_0224CB38
- ldr r0, [r4, #0x44]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, r0
- blt _0222DF84
-_0222DF96:
- ldr r0, _0222DFA0 ; =0x000023FA
- ldrb r0, [r4, r0]
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0222DF9C: .word 0x000023F8
-_0222DFA0: .word 0x000023FA
-
- thumb_func_start MOD11_0222DFA4
-MOD11_0222DFA4: ; 0x0222DFA4
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- bl FUN_02006278
- add r4, r0, #0
- add r0, r5, #0
- bl FUN_0200628C
- add r7, r0, #0
- mov r0, #0
- add r1, r0, #0
- bl FUN_0200E3A0
- mov r0, #1
- mov r1, #0
- bl FUN_0200E3A0
- add r0, r4, #0
- bl MOD11_02230EC8
- ldr r0, _0222E248 ; =0x0000241C
- ldrb r0, [r4, r0]
- cmp r0, #4
- beq _0222DFE4
- ldr r0, [r4, #0x6c]
- mov r1, #0
- bl GetPartyMonByIndex
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_02230FA8
-_0222DFE4:
- mov r0, #0
- str r0, [sp]
- add r6, r7, #0
- add r5, r4, #0
-_0222DFEC:
- ldr r0, [r5, #0x68]
- ldr r1, [r6, #4]
- bl FUN_0206BAD0
- ldr r0, [r5, #0x68]
- bl FreeToHeap
- add r1, r6, #0
- add r1, #0xf8
- ldr r0, [r5, #0x48]
- ldr r1, [r1]
- bl FUN_0202393C
- ldr r0, [r5, #0x48]
- bl FreeToHeap
- ldr r0, [sp]
- add r6, r6, #4
- add r0, r0, #1
- add r5, r5, #4
- str r0, [sp]
- cmp r0, #4
- blt _0222DFEC
- mov r0, #0x1b
- lsl r0, r0, #4
- ldr r0, [r4, r0]
- bl FUN_020143D0
- mov r1, #0x42
- lsl r1, r1, #2
- ldr r0, [r4, #0x58]
- ldr r1, [r7, r1]
- bl FUN_0206EBB4
- ldr r0, [r4, #0x58]
- bl FreeToHeap
- mov r1, #0x11
- lsl r1, r1, #4
- ldr r0, [r4, #0x60]
- ldr r1, [r7, r1]
- bl FUN_02023D80
- ldr r0, [r4, #0x60]
- bl FreeToHeap
- mov r0, #0x45
- ldr r1, [r4, #0x64]
- lsl r0, r0, #2
- str r1, [r7, r0]
- add r1, r0, #0
- ldr r2, [r4, #0x5c]
- sub r1, #8
- str r2, [r7, r1]
- add r1, r4, #0
- add r1, #0x98
- ldr r2, [r1]
- add r1, r0, #0
- add r1, #0x14
- str r2, [r7, r1]
- add r1, r4, #0
- add r1, #0x9c
- ldr r2, [r1]
- add r1, r0, #0
- add r1, #0x20
- str r2, [r7, r1]
- add r1, r0, #0
- ldr r2, _0222E24C ; =0x00002410
- add r1, #0x7c
- ldr r3, [r4, r2]
- add r0, #0x5c
- str r3, [r7, r1]
- add r1, r2, #0
- add r1, #0xc
- ldrb r3, [r4, r1]
- mov r1, #0x3f
- add r2, #0x28
- and r1, r3
- str r1, [r7, #0x14]
- ldr r1, [r4, r2]
- mov r2, #4
- str r1, [r7, r0]
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r3, #0
- bl MOD11_0224C474
- mov r1, #0x5e
- lsl r1, r1, #2
- str r0, [r7, r1]
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r2, #3
- mov r3, #0
- bl MOD11_0224C474
- mov r1, #0x4e
- lsl r1, r1, #2
- ldr r2, [r7, r1]
- mov r3, #0
- add r0, r2, r0
- str r0, [r7, r1]
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r2, #6
- bl MOD11_0224C474
- add r5, r0, #0
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r2, #6
- mov r3, #2
- bl MOD11_0224C474
- mov r1, #0x4f
- lsl r1, r1, #2
- ldr r2, [r7, r1]
- add r0, r5, r0
- add r0, r2, r0
- str r0, [r7, r1]
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r2, #7
- mov r3, #0
- bl MOD11_0224C474
- add r5, r0, #0
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r2, #7
- mov r3, #2
- bl MOD11_0224C474
- mov r1, #5
- lsl r1, r1, #6
- ldr r2, [r7, r1]
- add r0, r5, r0
- add r0, r2, r0
- str r0, [r7, r1]
- add r7, r1, #0
- mov r6, #0
- add r5, r4, #0
- add r7, #0x8c
-_0222E10A:
- ldr r0, [r5, r7]
- bl FreeToHeap
- add r6, r6, #1
- add r5, #0x10
- cmp r6, #4
- blt _0222E10A
- ldr r0, [r4, #0x18]
- bl FreeToHeap
- ldr r0, [r4, #0x28]
- mov r1, #0
- bl FUN_02003038
- ldr r0, [r4, #0x28]
- mov r1, #1
- bl FUN_02003038
- ldr r0, [r4, #0x28]
- mov r1, #2
- bl FUN_02003038
- ldr r0, [r4, #0x28]
- mov r1, #3
- bl FUN_02003038
- ldr r0, [r4, #0x28]
- bl FUN_02002FEC
- ldr r0, [r4, #0xc]
- bl DestroyMsgData
- ldr r0, [r4, #0x10]
- bl DestroyMsgData
- ldr r0, [r4, #0x14]
- bl FUN_0200AB18
- mov r0, #0x71
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl FUN_02014C28
- bl FUN_02012EAC
- add r0, r4, #0
- add r0, #0x8c
- ldr r0, [r0]
- bl MOD08_02212024
- ldr r0, [r4, #0x30]
- bl MOD11_0223D284
- ldr r0, [r4, #0x44]
- mov r6, #0
- cmp r0, #0
- ble _0222E194
- ldr r7, _0222E250 ; =0x000023F9
- add r5, r4, #0
-_0222E180:
- ldrb r2, [r4, r7]
- ldr r1, [r5, #0x34]
- add r0, r4, #0
- bl MOD11_0224CB54
- ldr r0, [r4, #0x44]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, r0
- blt _0222E180
-_0222E194:
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- bl FUN_020072E8
- ldr r0, _0222E250 ; =0x000023F9
- ldrb r0, [r4, r0]
- cmp r0, #2
- beq _0222E1AC
- add r0, r4, #0
- bl MOD11_0222D840
-_0222E1AC:
- mov r0, #0
- bl FUN_02002B60
- mov r0, #0
- bl FUN_02002B7C
- mov r0, #0
- bl FUN_02002BB8
- ldr r0, [r4, #8]
- mov r1, #3
- bl FUN_020191A4
- ldr r0, [r4, #4]
- bl FreeToHeap
- mov r0, #0x87
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl FreeToHeap
- mov r0, #0x22
- lsl r0, r0, #4
- ldr r0, [r4, r0]
- bl FreeToHeap
- mov r0, #0x6a
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl FUN_0200B990
- mov r0, #2
- bl FUN_02002CF8
- ldr r0, [r4, #0x1c]
- bl FUN_0200CAB4
- ldr r0, [r4, #0x20]
- bl FUN_0200CAB4
- bl FUN_0201CD04
- ldr r0, [r4]
- bl MOD11_0222EFD4
- ldr r0, _0222E254 ; =0x00002430
- ldr r0, [r4, r0]
- bl seedr_LC
- add r0, r4, #0
- bl MOD11_02231474
- cmp r0, #0
- beq _0222E220
- ldr r0, _0222E258 ; =0x00000704
- mov r1, #0
- bl FUN_020054F0
-_0222E220:
- mov r0, #0x72
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl FUN_0201C350
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, _0222E25C ; =SDK_OVERLAY_MODULE_08_ID
- bl UnloadOverlayByID
- bl FUN_02033590
- cmp r0, #0
- bne _0222E244
- ldr r0, _0222E260 ; =SDK_OVERLAY_MODULE_16_ID
- bl UnloadOverlayByID
-_0222E244:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0222E248: .word 0x0000241C
-_0222E24C: .word 0x00002410
-_0222E250: .word 0x000023F9
-_0222E254: .word 0x00002430
-_0222E258: .word 0x00000704
-_0222E25C: .word SDK_OVERLAY_MODULE_08_ID
-_0222E260: .word SDK_OVERLAY_MODULE_16_ID
-
- thumb_func_start MOD11_0222E264
-MOD11_0222E264: ; 0x0222E264
- push {r4, r5, r6, r7, lr}
- sub sp, #0x9c
- add r5, r0, #0
- add r4, r1, #0
- bl FUN_0201E6D8
- mov r0, #0
- bl FUN_0200E394
- mov r0, #1
- bl FUN_0200E394
- ldr r6, _0222E450 ; =0x0225DA68
- add r3, sp, #0x20
- mov r2, #5
-_0222E282:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222E282
- add r0, sp, #0x20
- bl FUN_0201E66C
- mov r1, #6
- mov r2, #2
- mov r0, #0
- lsl r1, r1, #0x18
- lsl r2, r2, #0x12
- bl MIi_CpuClear32
- mov r1, #0x62
- mov r2, #2
- mov r0, #0
- lsl r1, r1, #0x14
- lsl r2, r2, #0x10
- bl MIi_CpuClear32
- mov r1, #0x19
- mov r2, #1
- mov r0, #0
- lsl r1, r1, #0x16
- lsl r2, r2, #0x12
- bl MIi_CpuClear32
- mov r1, #0x66
- mov r2, #2
- mov r0, #0
- lsl r1, r1, #0x14
- lsl r2, r2, #0x10
- bl MIi_CpuClear32
- ldr r6, _0222E454 ; =0x0225D9A8
- add r3, sp, #0x10
- add r2, r3, #0
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- add r0, r2, #0
- bl FUN_02016BBC
- ldr r1, _0222E458 ; =0x000023FB
- mov r0, #1
- ldrb r2, [r5, r1]
- ldr r6, _0222E45C ; =0x0225DB34
- add r3, sp, #0x48
- bic r2, r0
- mov r0, #1
- orr r0, r2
- strb r0, [r5, r1]
- mov r2, #0xa
-_0222E2F0:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222E2F0
- ldr r0, [r6]
- mov r1, #1
- str r0, [r3]
- add r0, r4, #0
- add r2, sp, #0x48
- mov r3, #0
- bl FUN_02016C18
- add r0, r4, #0
- mov r1, #1
- bl FUN_02018744
- add r0, r4, #0
- mov r1, #2
- add r2, sp, #0x64
- mov r3, #0
- bl FUN_02016C18
- add r0, r4, #0
- mov r1, #2
- bl FUN_02018744
- add r0, r4, #0
- mov r1, #3
- add r2, sp, #0x80
- mov r3, #0
- bl FUN_02016C18
- add r0, r4, #0
- mov r1, #3
- bl FUN_02018744
- ldr r1, _0222E460 ; =0x04000008
- mov r0, #3
- ldrh r2, [r1]
- bic r2, r0
- mov r0, #1
- orr r2, r0
- strh r2, [r1]
- add r1, r0, #0
- bl FUN_0201E6E4
- add r0, r4, #0
- bl MOD11_02258450
- add r0, r5, #0
- bl MOD11_02230E44
- add r7, r0, #0
- lsl r0, r7, #0x18
- lsr r0, r0, #0x18
- str r0, [sp]
- mov r0, #5
- mov r1, #1
- str r0, [sp, #4]
- add r0, r4, #0
- add r2, r1, #0
- mov r3, #0xa
- bl FUN_0200D274
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- mov r0, #5
- mov r1, #9
- str r0, [sp, #0xc]
- lsl r1, r1, #0xa
- ldr r1, [r5, r1]
- mov r0, #7
- add r1, r1, #3
- add r2, r4, #0
- mov r3, #3
- bl FUN_0200687C
- add r0, r5, #0
- bl MOD11_02230C68
- add r6, r0, #0
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r2, #9
- str r0, [sp, #8]
- lsl r2, r2, #0xa
- ldr r3, [r5, r2]
- ldr r0, [r5, #0x28]
- lsl r2, r3, #1
- add r2, r3, r2
- add r2, #0x9e
- mov r1, #7
- add r2, r2, r6
- mov r3, #5
- bl FUN_020030E8
- add r0, r7, #0
- bl FUN_0200CD64
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0xa0
- str r0, [sp, #8]
- ldr r0, [r5, #0x28]
- mov r1, #0x26
- mov r3, #5
- bl FUN_020030E8
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0xb0
- str r0, [sp, #8]
- ldr r0, [r5, #0x28]
- mov r1, #0xe
- mov r2, #7
- mov r3, #5
- bl FUN_020030E8
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- mov r0, #5
- str r0, [sp, #0xc]
- mov r0, #7
- mov r1, #2
- add r2, r4, #0
- mov r3, #3
- bl FUN_020068C8
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r2, [r0]
- ldr r1, _0222E464 ; =0xFFFF1FFF
- ldr r3, _0222E468 ; =0x04001000
- and r2, r1
- str r2, [r0]
- ldr r2, [r3]
- and r1, r2
- add r2, r0, #0
- str r1, [r3]
- add r2, #0x48
- ldrh r3, [r2]
- mov r1, #0x3f
- add r0, #0x4a
- bic r3, r1
- strh r3, [r2]
- ldrh r2, [r0]
- bic r2, r1
- strh r2, [r0]
- bl FUN_0201E788
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E6E4
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E74C
- ldr r0, _0222E46C ; =MOD11_0222F01C
- add r1, r5, #0
- bl FUN_02015F10
- add sp, #0x9c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0222E450: .word 0x0225DA68
-_0222E454: .word 0x0225D9A8
-_0222E458: .word 0x000023FB
-_0222E45C: .word 0x0225DB34
-_0222E460: .word 0x04000008
-_0222E464: .word 0xFFFF1FFF
-_0222E468: .word 0x04001000
-_0222E46C: .word MOD11_0222F01C
-
- thumb_func_start MOD11_0222E470
-MOD11_0222E470: ; 0x0222E470
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- bl MOD11_02230294
- add r4, r0, #0
- mov r0, #0x5f
- lsl r0, r0, #2
- add r0, r5, r0
- add r1, r5, #0
- mov r2, #0
- add r3, r4, #0
- bl MOD11_022583D8
- mov r0, #0x63
- lsl r0, r0, #2
- add r0, r5, r0
- add r1, r5, #0
- mov r2, #1
- add r3, r4, #0
- bl MOD11_022583D8
- add r0, r5, #0
- bl MOD11_0222FF78
- str r0, [sp]
- ldr r0, [r5, #0x44]
- mov r4, #0
- cmp r0, #0
- ble _0222E4E2
- add r6, r5, #0
-_0222E4AC:
- ldr r1, [sp]
- add r0, r5, #0
- mov r2, #2
- add r3, r4, #0
- bl MOD11_0224C474
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD11_02230014
- mov r1, #0x9a
- mov r2, #0
- bl GetMonData
- add r2, r0, #0
- ldr r1, [r6, #0x34]
- add r0, r5, #0
- add r3, r7, #0
- bl MOD11_0224CA94
- ldr r0, [r5, #0x44]
- add r4, r4, #1
- add r6, r6, #4
- cmp r4, r0
- blt _0222E4AC
-_0222E4E2:
- bl FUN_02033E74
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0222E4E8
-MOD11_0222E4E8: ; 0x0222E4E8
- push {r4, lr}
- add r4, r0, #0
- mov r0, #1
- mov r1, #0
- bl FUN_0201E6E4
- mov r0, #2
- mov r1, #0
- bl FUN_0201E6E4
- add r0, r4, #0
- mov r1, #1
- bl FUN_020178A0
- add r0, r4, #0
- mov r1, #2
- bl FUN_020178A0
- add r0, r4, #0
- mov r1, #3
- bl FUN_020178A0
- add r0, r4, #0
- bl MOD11_022584AC
- pop {r4, pc}
-
- thumb_func_start MOD11_0222E51C
-MOD11_0222E51C: ; 0x0222E51C
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0222E520
-MOD11_0222E520: ; 0x0222E520
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x40
- add r4, r0, #0
- ldr r0, [r1]
- str r1, [sp, #4]
- str r0, [r4, #0x2c]
- mov r7, #0
- add r6, r4, #0
- add r5, r1, #0
-_0222E532:
- mov r0, #5
- bl FUN_02023928
- add r1, r0, #0
- add r0, r5, #0
- str r1, [r6, #0x48]
- add r0, #0xf8
- ldr r0, [r0]
- bl FUN_0202393C
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- add r7, r7, #1
- str r0, [r6, #0x78]
- add r6, r6, #4
- add r5, r5, #4
- cmp r7, #4
- blt _0222E532
- mov r0, #5
- bl FUN_0206EB88
- str r0, [r4, #0x58]
- mov r1, #0x42
- ldr r0, [sp, #4]
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- ldr r1, [r4, #0x58]
- bl FUN_0206EBB4
- mov r0, #5
- bl FUN_02023D6C
- str r0, [r4, #0x60]
- mov r1, #0x11
- ldr r0, [sp, #4]
- lsl r1, r1, #4
- ldr r0, [r0, r1]
- ldr r1, [r4, #0x60]
- bl FUN_02023D80
- mov r1, #0x45
- lsl r1, r1, #2
- ldr r0, [sp, #4]
- add r2, r1, #0
- ldr r0, [r0, r1]
- add r3, r1, #0
- str r0, [r4, #0x64]
- ldr r0, [sp, #4]
- add r2, #0x1c
- ldr r2, [r0, r2]
- add r0, r1, #0
- add r0, #0xa0
- str r2, [r4, r0]
- add r2, r1, #0
- ldr r0, [sp, #4]
- add r2, #0x38
- ldr r2, [r0, r2]
- add r0, r1, #0
- add r0, #0xa4
- str r2, [r4, r0]
- add r2, r1, #0
- ldr r0, [sp, #4]
- sub r2, #8
- ldr r0, [r0, r2]
- add r2, r1, #0
- str r0, [r4, #0x5c]
- ldr r0, [sp, #4]
- add r2, #0x14
- ldr r2, [r0, r2]
- add r0, r4, #0
- add r0, #0x98
- str r2, [r0]
- add r2, r1, #0
- ldr r0, [sp, #4]
- add r2, #0x50
- ldr r2, [r0, r2]
- ldr r0, _0222E8BC ; =0x00002420
- add r3, #0x20
- str r2, [r4, r0]
- ldr r2, [sp, #4]
- ldr r3, [r2, r3]
- add r2, r4, #0
- add r2, #0x9c
- str r3, [r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x7c
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #0x10
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x40
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #0x24
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x3c
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #0x20
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x44
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #0x1c
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x4c
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #0x14
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x78
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #0x18
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x80
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #8
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x54
- ldr r3, [r2, r3]
- add r2, r0, #4
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x58
- ldr r3, [r2, r3]
- add r2, r0, #0
- add r2, #0xc
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x60
- ldr r2, [r2, r3]
- add r0, #8
- str r2, [r4, r0]
- ldr r0, [sp, #4]
- add r1, #0x30
- ldr r0, [r0, r1]
- mov r1, #0x86
- lsl r1, r1, #2
- str r0, [r4, r1]
- ldr r0, [sp, #4]
- sub r1, #0xd4
- ldr r0, [r0, r1]
- cmp r0, #0
- bne _0222E67E
- bl ErrorHandling
-_0222E67E:
- ldr r5, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- str r4, [sp, #0x30]
- add r6, r5, #0
- add r7, r4, #0
-_0222E68A:
- ldr r0, [sp, #0x30]
- ldr r1, [r5, #0x18]
- add r0, #0xa0
- strh r1, [r0]
- add r3, r6, #0
- add r2, r7, #0
- mov r0, #6
- add r3, #0x28
- add r2, #0xac
- mov ip, r0
-_0222E69E:
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- mov r0, ip
- sub r0, r0, #1
- mov ip, r0
- bne _0222E69E
- ldr r0, [r3]
- add r5, r5, #4
- str r0, [r2]
- ldr r0, [sp, #0x30]
- add r6, #0x34
- add r0, r0, #2
- str r0, [sp, #0x30]
- ldr r0, [sp, #8]
- add r7, #0x34
- add r0, r0, #1
- str r0, [sp, #8]
- cmp r0, #4
- blt _0222E68A
- add r0, r4, #0
- bl MOD11_0223D1DC
- str r0, [r4, #0x30]
- mov r6, #0
- add r5, r4, #0
- mov r7, #5
-_0222E6D2:
- add r0, r7, #0
- bl FUN_0206B8AC
- str r0, [r5, #0x68]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #4
- blt _0222E6D2
- ldr r0, [r4, #0x2c]
- mov r1, #4
- tst r1, r0
- bne _0222E6EC
- b _0222EA8A
-_0222E6EC:
- add r0, r4, #0
- bl FUN_0206BF90
- bl FUN_02031190
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x34]
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_0222FEC0
- ldr r1, [r4, #0x2c]
- mov r0, #0x80
- tst r0, r1
- beq _0222E7D0
- ldr r6, _0222E8C0 ; =0x0225DC18
- mov r5, #0
- add r7, r4, #0
-_0222E712:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- str r0, [r7, #0x34]
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #4
- blt _0222E712
- str r5, [r4, #0x44]
- mov r6, #0
- add r5, r4, #0
-_0222E734:
- ldr r1, [r5, #0x34]
- add r0, r4, #0
- bl MOD11_0225377C
- ldr r0, [sp, #4]
- ldr r1, [r5, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [sp, #4]
- add r6, r6, #1
- add r0, r0, #4
- add r5, r5, #4
- str r0, [sp, #4]
- cmp r6, #4
- blt _0222E734
- mov r0, #0
- str r0, [sp, #0xc]
- ldr r0, [r4, #0x44]
- cmp r0, #0
- ble _0222E7C6
- add r7, r4, #0
-_0222E760:
- ldr r0, [r7, #0x68]
- mov r5, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0222E7AA
-_0222E76C:
- ldr r0, [r7, #0x68]
- add r1, r5, #0
- bl GetPartyMonByIndex
- mov r1, #5
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _0222E79E
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222E79E
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222E7AA
-_0222E79E:
- ldr r0, [r7, #0x68]
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _0222E76C
-_0222E7AA:
- str r5, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0xc]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #0xc]
- ldr r1, [r4, #0x44]
- add r0, r0, #1
- add r7, r7, #4
- str r0, [sp, #0xc]
- cmp r0, r1
- blt _0222E760
-_0222E7C6:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- b _0222EA80
-_0222E7D0:
- mov r0, #8
- tst r0, r1
- beq _0222E8AC
- mov r5, #0
- add r6, r4, #0
-_0222E7DA:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldr r0, [sp, #0x34]
- bl FUN_020313CC
- add r7, r0, #0
- add r0, r5, #0
- bl FUN_020313CC
- ldr r1, _0222E8C4 ; =0x0225D9C8
- lsl r2, r7, #2
- add r1, r1, r2
- ldrb r1, [r0, r1]
- add r0, sp, #0x3c
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- str r0, [r6, #0x34]
- add r5, r5, #1
- add r6, r6, #4
- cmp r5, #4
- blt _0222E7DA
- str r5, [r4, #0x44]
- mov r6, #0
- add r5, r4, #0
-_0222E810:
- ldr r1, [r5, #0x34]
- add r0, r4, #0
- bl MOD11_0225377C
- ldr r0, [sp, #4]
- ldr r1, [r5, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [sp, #4]
- add r6, r6, #1
- add r0, r0, #4
- add r5, r5, #4
- str r0, [sp, #4]
- cmp r6, #4
- blt _0222E810
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x44]
- cmp r0, #0
- ble _0222E8A2
- add r7, r4, #0
-_0222E83C:
- ldr r0, [r7, #0x68]
- mov r5, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0222E886
-_0222E848:
- ldr r0, [r7, #0x68]
- add r1, r5, #0
- bl GetPartyMonByIndex
- mov r1, #5
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _0222E87A
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222E87A
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222E886
-_0222E87A:
- ldr r0, [r7, #0x68]
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _0222E848
-_0222E886:
- str r5, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x10]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #0x10]
- ldr r1, [r4, #0x44]
- add r0, r0, #1
- add r7, r7, #4
- str r0, [sp, #0x10]
- cmp r0, r1
- blt _0222E83C
-_0222E8A2:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- b _0222EA80
-_0222E8AC:
- mov r0, #2
- tst r0, r1
- bne _0222E8B4
- b _0222E9D4
-_0222E8B4:
- ldr r0, [sp, #0x34]
- ldr r1, _0222E8C8 ; =0x0225D9A0
- b _0222E8CC
- nop
-_0222E8BC: .word 0x00002420
-_0222E8C0: .word 0x0225DC18
-_0222E8C4: .word 0x0225D9C8
-_0222E8C8: .word 0x0225D9A0
-_0222E8CC:
- lsl r0, r0, #2
- mov r5, #0
- add r6, r1, r0
- add r7, r4, #0
-_0222E8D4:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- add r1, r0, #0
- add r0, r4, #0
- str r1, [r7, #0x34]
- bl MOD11_0225377C
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #4
- blt _0222E8D4
- str r5, [r4, #0x44]
- mov r6, #0
- add r5, r4, #0
-_0222E8FE:
- ldr r0, [sp, #4]
- ldr r1, [r5, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [sp, #4]
- add r6, r6, #1
- add r0, r0, #4
- add r5, r5, #4
- str r0, [sp, #4]
- cmp r6, #4
- blt _0222E8FE
- mov r0, #0
- str r0, [sp, #0x14]
- ldr r0, [r4, #0x44]
- cmp r0, #0
- ble _0222E9D2
-_0222E920:
- ldr r0, [sp, #0x14]
- mov r1, #1
- and r0, r1
- str r0, [sp, #0x2c]
- lsl r0, r0, #2
- add r7, r4, r0
- ldr r0, [r7, #0x68]
- mov r6, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0222E9B8
-_0222E938:
- ldr r0, [r7, #0x68]
- add r1, r6, #0
- bl GetPartyMonByIndex
- ldr r1, [sp, #0x14]
- add r5, r0, #0
- cmp r1, #1
- ble _0222E984
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x2c]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C474
- cmp r6, r0
- beq _0222E9AC
- add r0, r5, #0
- mov r1, #5
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _0222E9AC
- add r0, r5, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222E9AC
- add r0, r5, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222E9B8
- b _0222E9AC
-_0222E984:
- mov r1, #5
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _0222E9AC
- add r0, r5, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222E9AC
- add r0, r5, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222E9B8
-_0222E9AC:
- ldr r0, [r7, #0x68]
- add r6, r6, #1
- bl GetPartyCount
- cmp r6, r0
- blt _0222E938
-_0222E9B8:
- str r6, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x14]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #0x14]
- ldr r1, [r4, #0x44]
- add r0, r0, #1
- str r0, [sp, #0x14]
- cmp r0, r1
- blt _0222E920
-_0222E9D2:
- b _0222EA80
-_0222E9D4:
- ldr r0, [sp, #0x34]
- ldr r1, _0222EC6C ; =0x0225D99C
- lsl r0, r0, #1
- mov r5, #0
- add r6, r1, r0
- add r7, r4, #0
-_0222E9E0:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- add r1, r0, #0
- add r0, r4, #0
- str r1, [r7, #0x34]
- bl MOD11_0225377C
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #2
- blt _0222E9E0
- mov r0, #0
- str r5, [r4, #0x44]
- str r0, [sp, #0x18]
- add r7, r4, #0
-_0222EA0C:
- ldr r0, [sp, #4]
- ldr r1, [r7, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [r7, #0x68]
- mov r5, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0222EA60
-_0222EA22:
- ldr r0, [r7, #0x68]
- add r1, r5, #0
- bl GetPartyMonByIndex
- mov r1, #5
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _0222EA54
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222EA54
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222EA60
-_0222EA54:
- ldr r0, [r7, #0x68]
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _0222EA22
-_0222EA60:
- str r5, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x18]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #4]
- add r7, r7, #4
- add r0, r0, #4
- str r0, [sp, #4]
- ldr r0, [sp, #0x18]
- add r0, r0, #1
- str r0, [sp, #0x18]
- cmp r0, #4
- blt _0222EA0C
-_0222EA80:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- b _0222EE3E
-_0222EA8A:
- mov r1, #0x10
- tst r1, r0
- beq _0222EB90
- ldr r6, _0222EC70 ; =0x0225DC18
- mov r5, #0
- add r7, r4, #0
-_0222EA96:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- add r1, r0, #0
- add r0, r4, #0
- str r1, [r7, #0x34]
- bl MOD11_0225377C
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #4
- blt _0222EA96
- str r5, [r4, #0x44]
- mov r6, #0
- add r5, r4, #0
-_0222EAC0:
- ldr r0, [sp, #4]
- ldr r1, [r5, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [sp, #4]
- add r6, r6, #1
- add r0, r0, #4
- add r5, r5, #4
- str r0, [sp, #4]
- cmp r6, #4
- blt _0222EAC0
- ldr r0, [r4, #0x44]
- mov r7, #0
- cmp r0, #0
- ble _0222EB80
-_0222EAE0:
- add r0, r4, #0
- add r1, r7, #0
- mov r5, #0
- bl MOD11_0222FFC8
- cmp r0, #0
- ble _0222EB64
-_0222EAEE:
- add r0, r4, #0
- add r1, r7, #0
- add r2, r5, #0
- bl MOD11_02230014
- add r6, r0, #0
- cmp r7, #2
- bne _0222EB2E
- mov r1, #5
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _0222EB56
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222EB56
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _0222EB56
- ldr r0, [sp, #0x38]
- cmp r0, r5
- bne _0222EB64
- b _0222EB56
-_0222EB2E:
- mov r1, #5
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _0222EB56
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222EB56
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222EB64
-_0222EB56:
- add r0, r4, #0
- add r1, r7, #0
- add r5, r5, #1
- bl MOD11_0222FFC8
- cmp r5, r0
- blt _0222EAEE
-_0222EB64:
- str r5, [sp]
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r2, #2
- add r3, r7, #0
- bl MOD11_0224C54C
- cmp r7, #0
- bne _0222EB78
- str r5, [sp, #0x38]
-_0222EB78:
- ldr r0, [r4, #0x44]
- add r7, r7, #1
- cmp r7, r0
- blt _0222EAE0
-_0222EB80:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- ldr r0, _0222EC74 ; =0x000023F8
- mov r1, #1
- strb r1, [r4, r0]
- b _0222EE3E
-_0222EB90:
- mov r1, #8
- tst r1, r0
- beq _0222EC60
- ldr r6, _0222EC70 ; =0x0225DC18
- mov r5, #0
- add r7, r4, #0
-_0222EB9C:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- add r1, r0, #0
- add r0, r4, #0
- str r1, [r7, #0x34]
- bl MOD11_0225377C
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #4
- blt _0222EB9C
- str r5, [r4, #0x44]
- mov r6, #0
- add r5, r4, #0
-_0222EBC6:
- ldr r0, [sp, #4]
- ldr r1, [r5, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [sp, #4]
- add r6, r6, #1
- add r0, r0, #4
- add r5, r5, #4
- str r0, [sp, #4]
- cmp r6, #4
- blt _0222EBC6
- mov r0, #0
- str r0, [sp, #0x1c]
- ldr r0, [r4, #0x44]
- cmp r0, #0
- ble _0222EC50
- add r7, r4, #0
-_0222EBEA:
- ldr r0, [r7, #0x68]
- mov r5, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0222EC34
-_0222EBF6:
- ldr r0, [r7, #0x68]
- add r1, r5, #0
- bl GetPartyMonByIndex
- mov r1, #5
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _0222EC28
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222EC28
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222EC34
-_0222EC28:
- ldr r0, [r7, #0x68]
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _0222EBF6
-_0222EC34:
- str r5, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x1c]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #0x1c]
- ldr r1, [r4, #0x44]
- add r0, r0, #1
- add r7, r7, #4
- str r0, [sp, #0x1c]
- cmp r0, r1
- blt _0222EBEA
-_0222EC50:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- ldr r0, _0222EC74 ; =0x000023F8
- mov r1, #1
- strb r1, [r4, r0]
- b _0222EE3E
-_0222EC60:
- mov r1, #2
- tst r0, r1
- bne _0222EC68
- b _0222ED8A
-_0222EC68:
- ldr r6, _0222EC70 ; =0x0225DC18
- b _0222EC78
- .align 2, 0
-_0222EC6C: .word 0x0225D99C
-_0222EC70: .word 0x0225DC18
-_0222EC74: .word 0x000023F8
-_0222EC78:
- mov r5, #0
- add r7, r4, #0
-_0222EC7C:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- add r1, r0, #0
- add r0, r4, #0
- str r1, [r7, #0x34]
- bl MOD11_0225377C
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #4
- blt _0222EC7C
- str r5, [r4, #0x44]
- mov r6, #0
- add r5, r4, #0
-_0222ECA6:
- ldr r0, [sp, #4]
- ldr r1, [r5, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [sp, #4]
- add r6, r6, #1
- add r0, r0, #4
- add r5, r5, #4
- str r0, [sp, #4]
- cmp r6, #4
- blt _0222ECA6
- mov r0, #0
- str r0, [sp, #0x20]
- ldr r0, [r4, #0x44]
- cmp r0, #0
- ble _0222ED7A
-_0222ECC8:
- ldr r0, [sp, #0x20]
- mov r1, #1
- and r0, r1
- str r0, [sp, #0x28]
- lsl r0, r0, #2
- add r7, r4, r0
- ldr r0, [r7, #0x68]
- mov r6, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0222ED60
-_0222ECE0:
- ldr r0, [r7, #0x68]
- add r1, r6, #0
- bl GetPartyMonByIndex
- ldr r1, [sp, #0x20]
- add r5, r0, #0
- cmp r1, #1
- ble _0222ED2C
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x28]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C474
- cmp r6, r0
- beq _0222ED54
- add r0, r5, #0
- mov r1, #5
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _0222ED54
- add r0, r5, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222ED54
- add r0, r5, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222ED60
- b _0222ED54
-_0222ED2C:
- mov r1, #5
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _0222ED54
- add r0, r5, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222ED54
- add r0, r5, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222ED60
-_0222ED54:
- ldr r0, [r7, #0x68]
- add r6, r6, #1
- bl GetPartyCount
- cmp r6, r0
- blt _0222ECE0
-_0222ED60:
- str r6, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x20]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #0x20]
- ldr r1, [r4, #0x44]
- add r0, r0, #1
- str r0, [sp, #0x20]
- cmp r0, r1
- blt _0222ECC8
-_0222ED7A:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- ldr r0, _0222EEE0 ; =0x000023F8
- mov r1, #1
- strb r1, [r4, r0]
- b _0222EE3E
-_0222ED8A:
- ldr r6, _0222EEE4 ; =0x0225D998
- mov r5, #0
- add r7, r4, #0
-_0222ED90:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- add r1, r0, #0
- add r0, r4, #0
- str r1, [r7, #0x34]
- bl MOD11_0225377C
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #2
- blt _0222ED90
- mov r0, #0
- str r5, [r4, #0x44]
- str r0, [sp, #0x24]
- add r7, r4, #0
-_0222EDBC:
- ldr r0, [sp, #4]
- ldr r1, [r7, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [r7, #0x68]
- mov r5, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0222EE10
-_0222EDD2:
- ldr r0, [r7, #0x68]
- add r1, r5, #0
- bl GetPartyMonByIndex
- mov r1, #5
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _0222EE04
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222EE04
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0222EE10
-_0222EE04:
- ldr r0, [r7, #0x68]
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _0222EDD2
-_0222EE10:
- str r5, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x24]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #4]
- add r7, r7, #4
- add r0, r0, #4
- str r0, [sp, #4]
- ldr r0, [sp, #0x24]
- add r0, r0, #1
- str r0, [sp, #0x24]
- cmp r0, #4
- blt _0222EDBC
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- ldr r0, _0222EEE0 ; =0x000023F8
- mov r1, #1
- strb r1, [r4, r0]
-_0222EE3E:
- mov r0, #2
- ldr r1, [r4, #0x2c]
- lsl r0, r0, #8
- tst r0, r1
- beq _0222EE5A
- ldr r0, [r4, #0x6c]
- mov r1, #0
- bl GetPartyMonByIndex
- add r2, r4, #0
- mov r1, #0x8f
- add r2, #0xf4
- bl GetMonData
-_0222EE5A:
- ldr r1, [r4, #0x2c]
- mov r0, #1
- tst r0, r1
- beq _0222EEDC
- add r0, r4, #0
- add r0, #0xe1
- ldrb r0, [r0]
- bl MOD11_0222EEF0
- cmp r0, #1
- beq _0222EE7C
- ldr r0, _0222EEE8 ; =0x00000149
- ldrb r0, [r4, r0]
- bl MOD11_0222EEF0
- cmp r0, #1
- bne _0222EEDC
-_0222EE7C:
- ldr r0, [r4, #0x68]
- mov r5, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0222EEAC
- ldr r6, _0222EEEC ; =0x00002404
- mov r7, #3
-_0222EE8C:
- ldr r0, [r4, #0x68]
- add r1, r5, #0
- bl GetPartyMonByIndex
- ldr r2, [r4, r6]
- add r1, r7, #0
- lsl r2, r2, #0x10
- lsr r2, r2, #0x10
- bl MonApplyFriendshipMod
- ldr r0, [r4, #0x68]
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _0222EE8C
-_0222EEAC:
- ldr r0, [r4, #0x70]
- mov r5, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0222EEDC
- ldr r6, _0222EEEC ; =0x00002404
- mov r7, #3
-_0222EEBC:
- ldr r0, [r4, #0x70]
- add r1, r5, #0
- bl GetPartyMonByIndex
- ldr r2, [r4, r6]
- add r1, r7, #0
- lsl r2, r2, #0x10
- lsr r2, r2, #0x10
- bl MonApplyFriendshipMod
- ldr r0, [r4, #0x70]
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _0222EEBC
-_0222EEDC:
- add sp, #0x40
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0222EEE0: .word 0x000023F8
-_0222EEE4: .word 0x0225D998
-_0222EEE8: .word 0x00000149
-_0222EEEC: .word 0x00002404
-
- thumb_func_start MOD11_0222EEF0
-MOD11_0222EEF0: ; 0x0222EEF0
- sub r0, #0x3e
- cmp r0, #0x11
- bhi _0222EF2A
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222EF02: ; jump table
- .short _0222EF26 - _0222EF02 - 2 ; case 0
- .short _0222EF2A - _0222EF02 - 2 ; case 1
- .short _0222EF26 - _0222EF02 - 2 ; case 2
- .short _0222EF26 - _0222EF02 - 2 ; case 3
- .short _0222EF26 - _0222EF02 - 2 ; case 4
- .short _0222EF26 - _0222EF02 - 2 ; case 5
- .short _0222EF26 - _0222EF02 - 2 ; case 6
- .short _0222EF26 - _0222EF02 - 2 ; case 7
- .short _0222EF2A - _0222EF02 - 2 ; case 8
- .short _0222EF2A - _0222EF02 - 2 ; case 9
- .short _0222EF2A - _0222EF02 - 2 ; case 10
- .short _0222EF2A - _0222EF02 - 2 ; case 11
- .short _0222EF26 - _0222EF02 - 2 ; case 12
- .short _0222EF26 - _0222EF02 - 2 ; case 13
- .short _0222EF26 - _0222EF02 - 2 ; case 14
- .short _0222EF26 - _0222EF02 - 2 ; case 15
- .short _0222EF26 - _0222EF02 - 2 ; case 16
- .short _0222EF26 - _0222EF02 - 2 ; case 17
-_0222EF26:
- mov r0, #1
- bx lr
-_0222EF2A:
- mov r0, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0222EF30
-MOD11_0222EF30: ; 0x0222EF30
- push {r3, lr}
- sub sp, #8
- mov r2, #2
- mov r1, #0
- ldr r0, _0222EF4C ; =MOD11_0222EF50
- str r2, [sp]
- str r0, [sp, #4]
- mov r0, #5
- add r3, r1, #0
- bl FUN_02022318
- add sp, #8
- pop {r3, pc}
- nop
-_0222EF4C: .word MOD11_0222EF50
-
- thumb_func_start MOD11_0222EF50
-MOD11_0222EF50: ; 0x0222EF50
- push {r3, lr}
- mov r0, #1
- add r1, r0, #0
- bl FUN_0201E6E4
- ldr r0, _0222EFBC ; =0x04000008
- mov r1, #3
- ldrh r2, [r0]
- bic r2, r1
- mov r1, #1
- orr r1, r2
- strh r1, [r0]
- add r0, #0x58
- ldrh r2, [r0]
- ldr r1, _0222EFC0 ; =0xFFFFCFFD
- and r2, r1
- strh r2, [r0]
- add r2, r1, #2
- ldrh r3, [r0]
- add r1, r1, #2
- and r3, r2
- mov r2, #0x10
- orr r2, r3
- strh r2, [r0]
- ldrh r3, [r0]
- ldr r2, _0222EFC4 ; =0x0000CFFB
- and r3, r2
- strh r3, [r0]
- ldrh r3, [r0]
- sub r2, #0x1c
- and r3, r1
- mov r1, #8
- orr r1, r3
- strh r1, [r0]
- ldrh r1, [r0]
- and r1, r2
- strh r1, [r0]
- mov r0, #0
- add r1, r0, #0
- add r2, r0, #0
- add r3, r0, #0
- bl G3X_SetFog
- mov r0, #0
- ldr r2, _0222EFC8 ; =0x00007FFF
- add r1, r0, #0
- mov r3, #0x3f
- str r0, [sp]
- bl G3X_SetClearColor
- ldr r1, _0222EFCC ; =0xBFFF0000
- ldr r0, _0222EFD0 ; =0x04000580
- str r1, [r0]
- pop {r3, pc}
- .align 2, 0
-_0222EFBC: .word 0x04000008
-_0222EFC0: .word 0xFFFFCFFD
-_0222EFC4: .word 0x0000CFFB
-_0222EFC8: .word 0x00007FFF
-_0222EFCC: .word 0xBFFF0000
-_0222EFD0: .word 0x04000580
-
- thumb_func_start MOD11_0222EFD4
-MOD11_0222EFD4: ; 0x0222EFD4
- ldr r3, _0222EFD8 ; =FUN_020223BC
- bx r3
- .align 2, 0
-_0222EFD8: .word FUN_020223BC
-
- thumb_func_start MOD11_0222EFDC
-MOD11_0222EFDC: ; 0x0222EFDC
- push {r3, r4, r5, lr}
- ldr r3, _0222F014 ; =0x021064B8
- mov r0, #2
- mov r1, #0
- ldr r3, [r3]
- lsl r0, r0, #0xe
- add r2, r1, #0
- blx r3
- ldr r3, _0222F018 ; =0x021064C0
- mov r1, #0
- add r4, r0, #0
- ldr r3, [r3]
- mov r0, #0xc0
- add r2, r1, #0
- blx r3
- add r5, r0, #0
- cmp r4, #0
- bne _0222F004
- bl ErrorHandling
-_0222F004:
- cmp r5, #0
- bne _0222F00C
- bl ErrorHandling
-_0222F00C:
- bl FUN_02012CC8
- pop {r3, r4, r5, pc}
- nop
-_0222F014: .word 0x021064B8
-_0222F018: .word 0x021064C0
-
- thumb_func_start MOD11_0222F01C
-MOD11_0222F01C: ; 0x0222F01C
- push {r3, r4, r5, lr}
- sub sp, #0x50
- add r4, r0, #0
- bl rand_LC
- ldr r1, _0222F0B8 ; =0x000023FB
- ldrb r2, [r4, r1]
- lsl r0, r2, #0x1f
- lsr r0, r0, #0x1f
- beq _0222F040
- mov r0, #1
- bic r2, r0
- strb r2, [r4, r1]
- ldr r0, _0222F0BC ; =0x04000050
- mov r1, #0
- strh r1, [r0]
- ldr r0, _0222F0C0 ; =0x04001050
- strh r1, [r0]
-_0222F040:
- ldr r1, _0222F0B8 ; =0x000023FB
- ldrb r2, [r4, r1]
- lsl r0, r2, #0x1e
- lsr r0, r0, #0x1f
- beq _0222F064
- mov r0, #2
- bic r2, r0
- strb r2, [r4, r1]
- ldr r5, _0222F0C4 ; =0x0225DA90
- add r3, sp, #0x28
- mov r2, #5
-_0222F056:
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222F056
- add r0, sp, #0x28
- bl FUN_0201E66C
-_0222F064:
- ldr r1, _0222F0B8 ; =0x000023FB
- ldrb r2, [r4, r1]
- lsl r0, r2, #0x1d
- lsr r0, r0, #0x1f
- beq _0222F088
- mov r0, #4
- bic r2, r0
- strb r2, [r4, r1]
- ldr r5, _0222F0C8 ; =0x0225DAB8
- add r3, sp, #0
- mov r2, #5
-_0222F07A:
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222F07A
- add r0, sp, #0
- bl FUN_0201E66C
-_0222F088:
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- bl FUN_020081C4
- bl FUN_0201C30C
- bl FUN_0200BC30
- ldr r0, [r4, #0x28]
- bl FUN_0200372C
- ldr r0, [r4, #4]
- bl FUN_0201AB60
- ldr r3, _0222F0CC ; =0x027E0000
- ldr r1, _0222F0D0 ; =0x00003FF8
- mov r0, #1
- ldr r2, [r3, r1]
- orr r0, r2
- str r0, [r3, r1]
- add sp, #0x50
- pop {r3, r4, r5, pc}
- nop
-_0222F0B8: .word 0x000023FB
-_0222F0BC: .word 0x04000050
-_0222F0C0: .word 0x04001050
-_0222F0C4: .word 0x0225DA90
-_0222F0C8: .word 0x0225DAB8
-_0222F0CC: .word 0x027E0000
-_0222F0D0: .word 0x00003FF8
-
- thumb_func_start MOD11_0222F0D4
-MOD11_0222F0D4: ; 0x0222F0D4
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0xc]
- bl FUN_0200372C
- bl FUN_0201C30C
- ldr r0, [r4, #4]
- bl FUN_0201AB60
- ldr r3, _0222F0F8 ; =0x027E0000
- ldr r1, _0222F0FC ; =0x00003FF8
- mov r0, #1
- ldr r2, [r3, r1]
- orr r0, r2
- str r0, [r3, r1]
- pop {r4, pc}
- nop
-_0222F0F8: .word 0x027E0000
-_0222F0FC: .word 0x00003FF8
-
- thumb_func_start MOD11_0222F100
-MOD11_0222F100: ; 0x0222F100
- push {r4, lr}
- add r4, r1, #0
- ldr r1, [r4, #4]
- mov r0, #5
- bl FUN_020335F0
- ldr r0, _0222F140 ; =0x000023F9
- ldrb r0, [r4, r0]
- cmp r0, #0
- beq _0222F118
- cmp r0, #3
- bne _0222F13E
-_0222F118:
- cmp r0, #0
- bne _0222F120
- bl MOD08_02215A44
-_0222F120:
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- bl FUN_02006ED4
- add r4, #0x94
- ldr r0, [r4]
- bl FUN_0200BC1C
- bl FUN_0200BC38
- mov r0, #1
- mov r1, #0
- bl FUN_020222B4
-_0222F13E:
- pop {r4, pc}
- .align 2, 0
-_0222F140: .word 0x000023F9
-
- thumb_func_start MOD11_0222F144
-MOD11_0222F144: ; 0x0222F144
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r0, r6, #0
- bl MOD11_0222FF84
- str r0, [sp]
- add r0, r6, #0
- mov r5, #0
- bl MOD11_02231474
- add r4, r0, #0
- add r0, r6, #0
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- bne _0222F24E
- mov r0, #2
- tst r0, r4
- beq _0222F186
- mov r0, #1
- tst r0, r4
- beq _0222F24E
- ldr r0, _0222F250 ; =0x00000704
- add r1, r5, #0
- bl FUN_020054F0
- add r0, r6, #0
- mov r1, #2
- bl MOD11_02231484
- pop {r3, r4, r5, r6, r7, pc}
-_0222F186:
- ldr r0, [sp]
- add r4, r5, #0
- cmp r0, #0
- ble _0222F1D0
-_0222F18E:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0222FF7C
- add r7, r0, #0
- bl MOD11_02253A58
- cmp r0, #0
- bne _0222F1C8
- add r0, r7, #0
- bl MOD11_02253A70
- add r1, r0, #0
- beq _0222F1C8
- ldr r0, [r1, #0x28]
- ldr r1, [r1, #0x2c]
- lsl r0, r0, #0x10
- lsl r1, r1, #0x10
- lsr r0, r0, #0x10
- lsr r1, r1, #0x10
- mov r2, #0x30
- bl FUN_02079A54
- cmp r0, #1
- bne _0222F1C8
- add r0, r4, #0
- bl MaskOfFlagNo
- orr r5, r0
-_0222F1C8:
- ldr r0, [sp]
- add r4, r4, #1
- cmp r4, r0
- blt _0222F18E
-_0222F1D0:
- cmp r5, #0
- beq _0222F1F6
- add r0, r6, #0
- bl MOD11_02231474
- cmp r0, #0
- bne _0222F1F6
- ldr r0, _0222F250 ; =0x00000704
- bl FUN_020054C8
- add r0, r6, #0
- mov r1, #1
- bl MOD11_02231484
- add r0, r6, #0
- mov r1, #4
- bl MOD11_022314B0
- b _0222F214
-_0222F1F6:
- cmp r5, #0
- bne _0222F214
- add r0, r6, #0
- bl MOD11_02231474
- cmp r0, #0
- beq _0222F214
- ldr r0, _0222F250 ; =0x00000704
- mov r1, #0
- bl FUN_020054F0
- add r0, r6, #0
- mov r1, #0
- bl MOD11_02231484
-_0222F214:
- add r0, r6, #0
- bl MOD11_02231474
- cmp r0, #0
- beq _0222F24E
- add r0, r6, #0
- bl MOD11_022314A0
- add r4, r0, #0
- ldr r0, _0222F250 ; =0x00000704
- bl FUN_02005508
- cmp r0, #0
- bne _0222F24E
- sub r1, r4, #1
- bne _0222F244
- ldr r0, _0222F250 ; =0x00000704
- bl FUN_020054C8
- add r0, r6, #0
- mov r1, #4
- bl MOD11_022314B0
- pop {r3, r4, r5, r6, r7, pc}
-_0222F244:
- lsl r1, r1, #0x18
- add r0, r6, #0
- lsr r1, r1, #0x18
- bl MOD11_022314B0
-_0222F24E:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0222F250: .word 0x00000704
-
- thumb_func_start MOD11_0222F254
-MOD11_0222F254: ; 0x0222F254
- push {r3, r4, r5, lr}
- ldr r3, _0222F280 ; =0x00002434
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, r3]
- mov r1, #1
- add r0, r0, #3
- str r0, [r4, r3]
- ldr r0, [r4, #4]
- ldr r3, [r4, r3]
- mov r2, #3
- bl FUN_020179E0
- ldr r0, _0222F280 ; =0x00002434
- ldr r0, [r4, r0]
- cmp r0, #0
- bne _0222F27C
- add r0, r5, #0
- bl FUN_0200CAB4
-_0222F27C:
- pop {r3, r4, r5, pc}
- nop
-_0222F280: .word 0x00002434
-
- thumb_func_start MOD11_0222F284
-MOD11_0222F284: ; 0x0222F284 __sinit
- push {r3, lr}
- bl FUN_02033590
- cmp r0, #0
- bne _0222F296
- ldr r0, _0222F298 ; =SDK_OVERLAY_MODULE_16_ID
- mov r1, #2
- bl HandleLoadOverlay
-_0222F296:
- pop {r3, pc}
- .align 2, 0
-_0222F298: .word SDK_OVERLAY_MODULE_16_ID
-
- thumb_func_start MOD11_0222F29C
-MOD11_0222F29C: ; 0x0222F29C
- push {r4, r5, r6, lr}
- sub sp, #0x68
- add r4, r1, #0
- ldr r1, _0222F4C0 ; =0x00001028
- mov r2, #5
- bl FUN_02006268
- add r5, r0, #0
- ldr r0, _0222F4C4 ; =0x00001020
- str r4, [r5]
- mov r2, #0
- strb r2, [r5, r0]
- add r1, r0, #1
- strb r2, [r5, r1]
- add r0, r0, #2
- strh r2, [r5, r0]
- mov r0, #5
- bl FUN_02002FD0
- str r0, [r5, #0xc]
- mov r1, #1
- bl FUN_020038F0
- mov r2, #2
- ldr r0, [r5, #0xc]
- mov r1, #0
- lsl r2, r2, #8
- mov r3, #5
- bl FUN_02003008
- mov r1, #0
- mov r0, #1
- str r1, [sp]
- lsl r0, r0, #8
- str r0, [sp, #4]
- ldr r0, [r5, #0xc]
- mov r2, #2
- add r3, r1, #0
- bl FUN_02003914
- mov r0, #5
- bl FUN_02016B94
- str r0, [r5, #4]
- mov r0, #5
- mov r1, #1
- bl FUN_02018FF4
- str r0, [r5, #8]
- add r0, r5, #0
- bl FUN_0206BFF0
- bl FUN_0201E6D8
- ldr r6, _0222F4C8 ; =0x0225DA40
- add r3, sp, #0x40
- mov r2, #5
-_0222F30E:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222F30E
- add r0, sp, #0x40
- bl FUN_0201E66C
- mov r1, #6
- mov r2, #2
- mov r0, #0
- lsl r1, r1, #0x18
- lsl r2, r2, #0x12
- bl MIi_CpuClear32
- mov r1, #0x62
- mov r2, #2
- mov r0, #0
- lsl r1, r1, #0x14
- lsl r2, r2, #0x10
- bl MIi_CpuClear32
- mov r1, #0x19
- mov r2, #1
- mov r0, #0
- lsl r1, r1, #0x16
- lsl r2, r2, #0x12
- bl MIi_CpuClear32
- mov r1, #0x66
- mov r2, #2
- mov r0, #0
- lsl r1, r1, #0x14
- lsl r2, r2, #0x10
- bl MIi_CpuClear32
- mov r1, #5
- mov r2, #2
- mov r0, #0
- lsl r1, r1, #0x18
- lsl r2, r2, #8
- bl MIi_CpuClear16
- ldr r6, _0222F4CC ; =0x0225D9B8
- add r3, sp, #0x30
- add r2, r3, #0
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- add r0, r2, #0
- bl FUN_02016BBC
- ldr r6, _0222F4D0 ; =0x0225DA04
- add r3, sp, #0x14
- ldmia r6!, {r0, r1}
- add r2, r3, #0
- stmia r3!, {r0, r1}
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- ldr r0, [r6]
- mov r1, #1
- str r0, [r3]
- ldr r0, [r5, #4]
- mov r3, #0
- bl FUN_02016C18
- ldr r0, [r5, #4]
- mov r1, #1
- bl FUN_02018744
- mov r0, #0x13
- lsl r0, r0, #4
- ldr r0, [r4, r0]
- bl FUN_02025084
- add r4, r0, #0
- lsl r0, r4, #0x18
- lsr r0, r0, #0x18
- str r0, [sp]
- mov r0, #5
- str r0, [sp, #4]
- mov r1, #1
- ldr r0, [r5, #4]
- add r2, r1, #0
- mov r3, #0xa
- bl FUN_0200D274
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0xb0
- str r0, [sp, #8]
- ldr r0, [r5, #0xc]
- mov r1, #0xe
- mov r2, #7
- mov r3, #5
- bl FUN_020030E8
- add r0, r4, #0
- bl FUN_0200CD64
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0xa0
- str r0, [sp, #8]
- ldr r0, [r5, #0xc]
- mov r1, #0x26
- mov r3, #5
- bl FUN_020030E8
- mov r1, #0
- mov r0, #1
- str r1, [sp]
- lsl r0, r0, #8
- str r0, [sp, #4]
- ldr r0, [r5, #0xc]
- add r2, r1, #0
- add r3, r1, #0
- bl FUN_02003914
- bl FUN_0201E788
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E6E4
- mov r0, #0x13
- str r0, [sp]
- mov r0, #0x1b
- str r0, [sp, #4]
- mov r0, #4
- str r0, [sp, #8]
- mov r0, #0xb
- str r0, [sp, #0xc]
- mov r0, #0x1f
- str r0, [sp, #0x10]
- ldr r0, [r5, #4]
- ldr r1, [r5, #8]
- mov r2, #1
- mov r3, #2
- bl FUN_02019064
- ldr r0, [r5, #8]
- mov r1, #0xff
- bl FUN_02019620
- ldr r0, [r5, #8]
- mov r1, #0
- mov r2, #1
- mov r3, #0xa
- bl FUN_0200D0BC
- mov r2, #0x51
- mov r0, #1
- mov r1, #0x1a
- lsl r2, r2, #2
- mov r3, #5
- bl NewMsgDataFromNarc
- add r4, r0, #0
- mov r0, #1
- lsl r0, r0, #8
- mov r1, #5
- bl FUN_020219F4
- add r6, r0, #0
- ldr r1, _0222F4D4 ; =0x0000039B
- add r0, r4, #0
- add r2, r6, #0
- bl FUN_0200A8E0
- mov r3, #0
- str r3, [sp]
- str r3, [sp, #4]
- str r3, [sp, #8]
- ldr r0, [r5, #8]
- mov r1, #1
- add r2, r6, #0
- bl FUN_0201BD84
- add r0, r6, #0
- bl FUN_02021A20
- add r0, r4, #0
- bl DestroyMsgData
- ldr r0, _0222F4D8 ; =MOD11_0222F0D4
- add r1, r5, #0
- bl FUN_02015F10
- mov r0, #0x10
- str r0, [sp]
- mov r3, #0
- str r3, [sp, #4]
- str r3, [sp, #8]
- ldr r0, [r5, #0xc]
- ldr r2, _0222F4DC ; =0x0000FFFF
- mov r1, #5
- bl FUN_02003210
- ldr r0, [r5, #8]
- mov r1, #1
- bl FUN_0200D858
- ldr r1, _0222F4E0 ; =0x00001024
- str r0, [r5, r1]
- bl FUN_02033E74
- add sp, #0x68
- pop {r4, r5, r6, pc}
- nop
-_0222F4C0: .word 0x00001028
-_0222F4C4: .word 0x00001020
-_0222F4C8: .word 0x0225DA40
-_0222F4CC: .word 0x0225D9B8
-_0222F4D0: .word 0x0225DA04
-_0222F4D4: .word 0x0000039B
-_0222F4D8: .word MOD11_0222F0D4
-_0222F4DC: .word 0x0000FFFF
-_0222F4E0: .word 0x00001024
-
- thumb_func_start MOD11_0222F4E4
-MOD11_0222F4E4: ; 0x0222F4E4
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- bl FUN_02006278
- add r4, r0, #0
- ldr r1, [r4, #4]
- mov r0, #5
- bl FUN_020335F0
- ldr r0, _0222F804 ; =0x00001021
- mov r7, #0
- ldrb r1, [r4, r0]
- cmp r1, #0x21
- bls _0222F502
- b _0222F922
-_0222F502:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0222F50E: ; jump table
- .short _0222F552 - _0222F50E - 2 ; case 0
- .short _0222F562 - _0222F50E - 2 ; case 1
- .short _0222F576 - _0222F50E - 2 ; case 2
- .short _0222F586 - _0222F50E - 2 ; case 3
- .short _0222F5C0 - _0222F50E - 2 ; case 4
- .short _0222F898 - _0222F50E - 2 ; case 5
- .short _0222F5D8 - _0222F50E - 2 ; case 6
- .short _0222F5F2 - _0222F50E - 2 ; case 7
- .short _0222F898 - _0222F50E - 2 ; case 8
- .short _0222F606 - _0222F50E - 2 ; case 9
- .short _0222F622 - _0222F50E - 2 ; case 10
- .short _0222F898 - _0222F50E - 2 ; case 11
- .short _0222F636 - _0222F50E - 2 ; case 12
- .short _0222F650 - _0222F50E - 2 ; case 13
- .short _0222F898 - _0222F50E - 2 ; case 14
- .short _0222F664 - _0222F50E - 2 ; case 15
- .short _0222F67E - _0222F50E - 2 ; case 16
- .short _0222F898 - _0222F50E - 2 ; case 17
- .short _0222F692 - _0222F50E - 2 ; case 18
- .short _0222F6AC - _0222F50E - 2 ; case 19
- .short _0222F898 - _0222F50E - 2 ; case 20
- .short _0222F6C0 - _0222F50E - 2 ; case 21
- .short _0222F704 - _0222F50E - 2 ; case 22
- .short _0222F898 - _0222F50E - 2 ; case 23
- .short _0222F740 - _0222F50E - 2 ; case 24
- .short _0222F774 - _0222F50E - 2 ; case 25
- .short _0222F898 - _0222F50E - 2 ; case 26
- .short _0222F7AE - _0222F50E - 2 ; case 27
- .short _0222F7E2 - _0222F50E - 2 ; case 28
- .short _0222F898 - _0222F50E - 2 ; case 29
- .short _0222F82A - _0222F50E - 2 ; case 30
- .short _0222F85E - _0222F50E - 2 ; case 31
- .short _0222F898 - _0222F50E - 2 ; case 32
- .short _0222F908 - _0222F50E - 2 ; case 33
-_0222F552:
- add r0, r7, #0
- bl FUN_0200E394
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F562:
- ldr r0, [r4, #0xc]
- bl FUN_020038E4
- cmp r0, #0
- bne _0222F610
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F576:
- mov r0, #0x32
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F586:
- mov r0, #0x32
- bl FUN_020315D8
- cmp r0, #0
- beq _0222F5A8
- mov r0, #0x33
- bl FUN_02031588
- ldr r0, _0222F808 ; =0x00001022
- add r1, r7, #0
- strh r1, [r4, r0]
- sub r1, r0, #1
- ldrb r1, [r4, r1]
- sub r0, r0, #1
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F5A8:
- ldr r0, _0222F808 ; =0x00001022
- ldrh r1, [r4, r0]
- add r1, r1, #1
- strh r1, [r4, r0]
- ldrh r1, [r4, r0]
- ldr r0, _0222F80C ; =0x00000708
- cmp r1, r0
- bls _0222F610
- mov r0, #1
- bl FUN_020336A0
- b _0222F922
-_0222F5C0:
- mov r1, #0x11
- add r0, r4, #0
- lsl r1, r1, #4
- bl FUN_0206C1A0
- cmp r0, #1
- bne _0222F610
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F5D8:
- add r0, r4, #0
- bl FUN_0206C1FC
- cmp r0, #1
- bne _0222F610
- mov r0, #0x34
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F5F2:
- add r0, r4, #0
- bl FUN_0206C224
- cmp r0, #1
- bne _0222F610
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F606:
- add r0, r4, #0
- bl FUN_0206C268
- cmp r0, #1
- beq _0222F612
-_0222F610:
- b _0222F922
-_0222F612:
- mov r0, #0x35
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F622:
- add r0, r4, #0
- bl FUN_0206C294
- cmp r0, #1
- bne _0222F71C
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F636:
- add r0, r4, #0
- bl FUN_0206C2D4
- cmp r0, #1
- bne _0222F71C
- mov r0, #0x36
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F650:
- add r0, r4, #0
- bl FUN_0206C2F8
- cmp r0, #1
- bne _0222F71C
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F664:
- add r0, r4, #0
- bl FUN_0206C33C
- cmp r0, #1
- bne _0222F71C
- mov r0, #0x37
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F67E:
- add r0, r4, #0
- bl FUN_0206C364
- cmp r0, #1
- bne _0222F71C
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F692:
- add r0, r4, #0
- bl FUN_0206C398
- cmp r0, #1
- bne _0222F71C
- mov r0, #0x38
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F6AC:
- add r0, r4, #0
- bl FUN_0206C3F4
- cmp r0, #1
- bne _0222F71C
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F6C0:
- ldr r1, [r4]
- ldr r2, [r1]
- mov r1, #0x80
- tst r1, r2
- bne _0222F6D0
- mov r1, #0x21
- strb r1, [r4, r0]
- b _0222F922
-_0222F6D0:
- bl FUN_02031190
- cmp r0, #0
- beq _0222F6E8
- mov r0, #0x39
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F6E8:
- add r0, r4, #0
- mov r1, #1
- bl FUN_0206C438
- cmp r0, #1
- bne _0222F71C
- mov r0, #0x39
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F704:
- mov r1, #1
- sub r0, r0, #1
- strb r1, [r4, r0]
- bl FUN_02031190
- cmp r0, #0
- beq _0222F728
- mov r0, #0x39
- bl FUN_020315D8
- cmp r0, #1
- beq _0222F71E
-_0222F71C:
- b _0222F922
-_0222F71E:
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F728:
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x39
- bl FUN_0206C46C
- cmp r0, #1
- bne _0222F81E
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F740:
- bl FUN_02031190
- cmp r0, #0
- beq _0222F758
- mov r0, #0x3a
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F758:
- add r0, r4, #0
- mov r1, #3
- bl FUN_0206C438
- cmp r0, #1
- bne _0222F81E
- mov r0, #0x3a
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F774:
- mov r1, #1
- sub r0, r0, #1
- strb r1, [r4, r0]
- bl FUN_02031190
- cmp r0, #0
- beq _0222F796
- mov r0, #0x3a
- bl FUN_020315D8
- cmp r0, #1
- bne _0222F81E
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F796:
- add r0, r4, #0
- mov r1, #3
- mov r2, #0x3a
- bl FUN_0206C46C
- cmp r0, #1
- bne _0222F81E
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F7AE:
- bl FUN_02031190
- cmp r0, #0
- beq _0222F7C6
- mov r0, #0x3b
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F7C6:
- add r0, r4, #0
- mov r1, #1
- bl FUN_0206C4C4
- cmp r0, #1
- bne _0222F81E
- mov r0, #0x3b
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F7E2:
- mov r1, #1
- sub r0, r0, #1
- strb r1, [r4, r0]
- bl FUN_02031190
- cmp r0, #0
- beq _0222F810
- mov r0, #0x3b
- bl FUN_020315D8
- cmp r0, #1
- bne _0222F81E
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
- .align 2, 0
-_0222F804: .word 0x00001021
-_0222F808: .word 0x00001022
-_0222F80C: .word 0x00000708
-_0222F810:
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x3b
- bl FUN_0206C4F0
- cmp r0, #1
- beq _0222F820
-_0222F81E:
- b _0222F922
-_0222F820:
- ldr r0, _0222F928 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F82A:
- bl FUN_02031190
- cmp r0, #0
- beq _0222F842
- mov r0, #0x3c
- bl FUN_02031588
- ldr r0, _0222F928 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F842:
- add r0, r4, #0
- mov r1, #3
- bl FUN_0206C4C4
- cmp r0, #1
- bne _0222F922
- mov r0, #0x3c
- bl FUN_02031588
- ldr r0, _0222F928 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F85E:
- mov r1, #1
- sub r0, r0, #1
- strb r1, [r4, r0]
- bl FUN_02031190
- cmp r0, #0
- beq _0222F880
- mov r0, #0x3c
- bl FUN_020315D8
- cmp r0, #1
- bne _0222F922
- ldr r0, _0222F928 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F880:
- add r0, r4, #0
- mov r1, #3
- mov r2, #0x3c
- bl FUN_0206C4F0
- cmp r0, #1
- bne _0222F922
- ldr r0, _0222F928 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F898:
- bl FUN_02030F20
- ldr r1, _0222F92C ; =0x00001020
- ldrb r2, [r4, r1]
- cmp r2, r0
- bne _0222F8EE
- add r0, r1, #1
- ldrb r0, [r4, r0]
- cmp r0, #0x14
- bne _0222F8BE
- add r6, r7, #0
- add r5, r4, #0
-_0222F8B0:
- ldr r0, [r5, #0x10]
- bl FreeToHeap
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #4
- blt _0222F8B0
-_0222F8BE:
- ldr r0, _0222F92C ; =0x00001020
- mov r3, #0
- strb r3, [r4, r0]
- add r1, r0, #2
- strh r3, [r4, r1]
- add r1, r0, #1
- ldrb r1, [r4, r1]
- add r2, r1, #1
- add r1, r0, #1
- strb r2, [r4, r1]
- add r0, r0, #1
- ldrb r0, [r4, r0]
- cmp r0, #0x21
- bne _0222F922
- str r3, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r3, [sp, #8]
- ldr r0, [r4, #0xc]
- ldr r2, _0222F930 ; =0x0000FFFF
- mov r1, #5
- bl FUN_02003210
- b _0222F922
-_0222F8EE:
- add r0, r1, #2
- ldrh r0, [r4, r0]
- add r2, r0, #1
- add r0, r1, #2
- strh r2, [r4, r0]
- ldrh r1, [r4, r0]
- ldr r0, _0222F934 ; =0x00000708
- cmp r1, r0
- bls _0222F922
- mov r0, #1
- bl FUN_020336A0
- b _0222F922
-_0222F908:
- ldr r0, [r4, #0xc]
- bl FUN_020038E4
- cmp r0, #0
- bne _0222F922
- ldr r0, _0222F938 ; =0x00001024
- mov r7, #1
- ldr r0, [r4, r0]
- bl FUN_0200DBFC
- mov r0, #0
- bl FUN_02031400
-_0222F922:
- add r0, r7, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0222F928: .word 0x00001021
-_0222F92C: .word 0x00001020
-_0222F930: .word 0x0000FFFF
-_0222F934: .word 0x00000708
-_0222F938: .word 0x00001024
-
- thumb_func_start MOD11_0222F93C
-MOD11_0222F93C: ; 0x0222F93C
- push {r4, lr}
- bl FUN_02006278
- add r4, r0, #0
- mov r0, #0
- add r1, r0, #0
- bl FUN_02015F10
- mov r0, #0
- add r1, r0, #0
- bl FUN_0200E3A0
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl FUN_02003038
- ldr r0, [r4, #0xc]
- bl FUN_02002FEC
- ldr r0, [r4, #8]
- mov r1, #1
- bl FUN_020191A4
- mov r0, #2
- mov r1, #0
- bl FUN_0201E6E4
- ldr r0, [r4, #4]
- mov r1, #1
- bl FUN_020178A0
- ldr r0, [r4, #4]
- bl FreeToHeap
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
-
- thumb_func_start MOD11_0222F988
-MOD11_0222F988: ; 0x0222F988
- push {r4, r5, r6, lr}
- ldr r1, _0222FAB4 ; =0x00002444
- add r5, r0, #0
- mov r2, #5
- bl FUN_02006268
- add r4, r0, #0
- add r0, r5, #0
- bl FUN_0200628C
- add r6, r0, #0
- bl FUN_02031190
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- ldr r2, _0222FAB4 ; =0x00002444
- mov r0, #0
- add r1, r4, #0
- bl MIi_CpuClearFast
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222E520
- ldr r1, [r4, #0x2c]
- mov r0, #4
- tst r0, r1
- beq _0222F9C6
- mov r0, #0x80
- tst r0, r1
- beq _0222F9CA
-_0222F9C6:
- mov r0, #0
- pop {r4, r5, r6, pc}
-_0222F9CA:
- ldr r0, _0222FAB8 ; =SDK_OVERLAY_MODULE_07_ID
- mov r1, #2
- bl HandleLoadOverlay
- ldr r1, [r4, #0x2c]
- mov r0, #8
- tst r0, r1
- bne _0222F9DE
- mov r0, #0
- pop {r4, r5, r6, pc}
-_0222F9DE:
- mov r0, #5
- mov r1, #0x2c
- bl AllocFromHeap
- mov r1, #7
- lsl r1, r1, #6
- str r0, [r4, r1]
- ldr r1, [r4, r1]
- mov r0, #0
- mov r2, #0x2c
- bl MIi_CpuClearFast
- add r0, r5, #0
- bl FUN_020313CC
- cmp r0, #3
- bhi _0222FA5A
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222FA0C: ; jump table
- .short _0222FA14 - _0222FA0C - 2 ; case 0
- .short _0222FA3A - _0222FA0C - 2 ; case 1
- .short _0222FA3A - _0222FA0C - 2 ; case 2
- .short _0222FA14 - _0222FA0C - 2 ; case 3
-_0222FA14:
- lsl r0, r5, #2
- add r0, r4, r0
- ldr r1, [r0, #0x68]
- mov r0, #7
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- str r1, [r0, #4]
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022302BC
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r1, [r0, #0x68]
- mov r0, #7
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- str r1, [r0, #0xc]
- b _0222FA5A
-_0222FA3A:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022302BC
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r2, [r0, #0x68]
- mov r0, #7
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- str r2, [r1, #4]
- lsl r1, r5, #2
- add r1, r4, r1
- ldr r1, [r1, #0x68]
- ldr r0, [r4, r0]
- str r1, [r0, #0xc]
-_0222FA5A:
- mov r0, #7
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r2, #5
- str r2, [r1, #0x24]
- ldr r0, [r4, r0]
- mov r1, #0
- add r0, #0x28
- strb r1, [r0]
- add r0, r5, #0
- bl FUN_020313CC
- cmp r0, #3
- bhi _0222FAA4
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222FA82: ; jump table
- .short _0222FA8A - _0222FA82 - 2 ; case 0
- .short _0222FA98 - _0222FA82 - 2 ; case 1
- .short _0222FA98 - _0222FA82 - 2 ; case 2
- .short _0222FA8A - _0222FA82 - 2 ; case 3
-_0222FA8A:
- mov r0, #7
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- mov r1, #0
- add r0, #0x29
- strb r1, [r0]
- b _0222FAA4
-_0222FA98:
- mov r0, #7
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- mov r1, #1
- add r0, #0x29
- strb r1, [r0]
-_0222FAA4:
- mov r0, #7
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- bl MOD07_02211E60
- mov r0, #1
- pop {r4, r5, r6, pc}
- nop
-_0222FAB4: .word 0x00002444
-_0222FAB8: .word SDK_OVERLAY_MODULE_07_ID
-
- thumb_func_start MOD11_0222FABC
-MOD11_0222FABC: ; 0x0222FABC
- push {r3, r4, r5, r6, r7, lr}
- bl FUN_02006278
- add r6, r0, #0
- mov r0, #7
- lsl r0, r0, #6
- ldr r0, [r6, r0]
- add r0, #0x2b
- ldrb r0, [r0]
- cmp r0, #0
- beq _0222FAFE
- mov r4, #0
- mov r7, #7
- add r5, r4, #0
- lsl r7, r7, #6
-_0222FADA:
- ldr r0, [r6, r7]
- add r0, r0, r5
- ldr r0, [r0, #0x14]
- cmp r0, #0
- beq _0222FAE8
- bl FreeToHeap
-_0222FAE8:
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #4
- blt _0222FADA
- mov r0, #7
- lsl r0, r0, #6
- ldr r0, [r6, r0]
- bl FreeToHeap
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_0222FAFE:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0222FB04
-MOD11_0222FB04: ; 0x0222FB04
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- bl FUN_02006278
- add r4, r0, #0
- add r0, r5, #0
- bl FUN_0200628C
- bl FUN_02031190
- lsl r0, r0, #0x18
- lsr r7, r0, #0x18
- ldr r1, [r4, #0x2c]
- mov r0, #4
- tst r0, r1
- beq _0222FB2A
- mov r0, #0x80
- tst r0, r1
- beq _0222FB2E
-_0222FB2A:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0222FB2E:
- mov r0, #5
- mov r1, #0x2c
- bl AllocFromHeap
- mov r1, #7
- lsl r1, r1, #6
- str r0, [r4, r1]
- ldr r1, [r4, r1]
- mov r0, #0
- mov r2, #0x2c
- bl MIi_CpuClearFast
- ldr r1, [r4, #0x2c]
- mov r0, #8
- tst r0, r1
- beq _0222FBA4
- mov r6, #0
- add r5, r4, #0
-_0222FB52:
- add r0, r6, #0
- bl FUN_020313CC
- mov r2, #7
- lsl r2, r2, #6
- ldr r2, [r4, r2]
- lsl r0, r0, #2
- ldr r1, [r5, #0x68]
- add r0, r2, r0
- str r1, [r0, #4]
- add r0, r6, #0
- bl FUN_020313CC
- add r7, r0, #0
- ldr r0, [r5, #0x48]
- mov r1, #5
- bl FUN_020239A0
- mov r1, #7
- lsl r1, r1, #6
- ldr r2, [r4, r1]
- lsl r1, r7, #2
- add r1, r2, r1
- add r6, r6, #1
- add r5, r5, #4
- str r0, [r1, #0x14]
- cmp r6, #4
- blt _0222FB52
- mov r0, #7
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r2, #5
- str r2, [r1, #0x24]
- ldr r1, [r4, r0]
- mov r2, #1
- add r1, #0x28
- strb r2, [r1]
- ldr r0, [r4, r0]
- add r0, #0x29
- strb r2, [r0]
- b _0222FC2A
-_0222FBA4:
- add r0, r7, #0
- lsl r6, r7, #2
- bl FUN_020313CC
- mov r2, #7
- lsl r2, r2, #6
- add r1, r4, r6
- ldr r2, [r4, r2]
- lsl r0, r0, #2
- ldr r1, [r1, #0x68]
- add r0, r2, r0
- str r1, [r0, #4]
- mov r0, #1
- eor r0, r7
- lsl r5, r0, #2
- str r0, [sp]
- bl FUN_020313CC
- add r1, r4, r5
- ldr r2, [r1, #0x68]
- mov r1, #7
- lsl r1, r1, #6
- ldr r1, [r4, r1]
- lsl r0, r0, #2
- add r0, r1, r0
- str r2, [r0, #4]
- add r0, r7, #0
- bl FUN_020313CC
- add r7, r0, #0
- add r0, r4, r6
- ldr r0, [r0, #0x48]
- mov r1, #5
- bl FUN_020239A0
- mov r1, #7
- lsl r1, r1, #6
- ldr r2, [r4, r1]
- lsl r1, r7, #2
- add r1, r2, r1
- str r0, [r1, #0x14]
- ldr r0, [sp]
- bl FUN_020313CC
- add r6, r0, #0
- add r0, r4, r5
- ldr r0, [r0, #0x48]
- mov r1, #5
- bl FUN_020239A0
- mov r1, #7
- lsl r1, r1, #6
- ldr r3, [r4, r1]
- lsl r2, r6, #2
- add r2, r3, r2
- str r0, [r2, #0x14]
- ldr r0, [r4, r1]
- mov r2, #5
- str r2, [r0, #0x24]
- ldr r0, [r4, r1]
- mov r2, #1
- add r0, #0x28
- strb r2, [r0]
- ldr r0, [r4, r1]
- mov r2, #0
- add r0, #0x29
- strb r2, [r0]
-_0222FC2A:
- mov r0, #7
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- bl MOD07_02211E60
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0222FC38
-MOD11_0222FC38: ; 0x0222FC38
- push {r3, r4, r5, r6, r7, lr}
- bl FUN_02006278
- add r6, r0, #0
- mov r0, #7
- lsl r0, r0, #6
- ldr r0, [r6, r0]
- add r0, #0x2b
- ldrb r0, [r0]
- cmp r0, #0
- beq _0222FC7A
- mov r4, #0
- mov r7, #7
- add r5, r4, #0
- lsl r7, r7, #6
-_0222FC56:
- ldr r0, [r6, r7]
- add r0, r0, r5
- ldr r0, [r0, #0x14]
- cmp r0, #0
- beq _0222FC64
- bl FreeToHeap
-_0222FC64:
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #4
- blt _0222FC56
- mov r0, #7
- lsl r0, r0, #6
- ldr r0, [r6, r0]
- bl FreeToHeap
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_0222FC7A:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0222FC80
-MOD11_0222FC80: ; 0x0222FC80
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- bl FUN_0200628C
- add r7, r0, #0
- bl FUN_02031190
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #4]
- ldr r1, [r7]
- mov r0, #4
- tst r0, r1
- beq _0222FCA2
- mov r0, #0x80
- tst r0, r1
- beq _0222FCA8
-_0222FCA2:
- add sp, #0x10
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0222FCA8:
- ldr r0, _0222FE54 ; =SDK_OVERLAY_MODULE_07_ID
- mov r1, #2
- bl HandleLoadOverlay
- mov r0, #5
- mov r1, #0x2c
- bl AllocFromHeap
- add r6, r0, #0
- mov r0, #0x66
- lsl r0, r0, #2
- str r6, [r7, r0]
- mov r0, #0
- add r1, r6, #0
- mov r2, #0x2c
- bl MIi_CpuClearFast
- str r7, [r6]
- ldr r0, [r7, #0x14]
- cmp r0, #5
- bhi _0222FD54
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222FCDE: ; jump table
- .short _0222FD54 - _0222FCDE - 2 ; case 0
- .short _0222FCEA - _0222FCDE - 2 ; case 1
- .short _0222FD0E - _0222FCDE - 2 ; case 2
- .short _0222FD32 - _0222FCDE - 2 ; case 3
- .short _0222FD54 - _0222FCDE - 2 ; case 4
- .short _0222FD32 - _0222FCDE - 2 ; case 5
-_0222FCEA:
- bl FUN_02033590
- cmp r0, #0
- bne _0222FD00
- mov r0, #0x51
- lsl r0, r0, #2
- ldr r0, [r7, r0]
- mov r1, #0x15
- bl FUN_0202A0E8
- b _0222FD54
-_0222FD00:
- mov r0, #0x51
- lsl r0, r0, #2
- ldr r0, [r7, r0]
- mov r1, #0x1a
- bl FUN_0202A0E8
- b _0222FD54
-_0222FD0E:
- bl FUN_02033590
- cmp r0, #0
- bne _0222FD24
- mov r0, #0x51
- lsl r0, r0, #2
- ldr r0, [r7, r0]
- mov r1, #0x16
- bl FUN_0202A0E8
- b _0222FD54
-_0222FD24:
- mov r0, #0x51
- lsl r0, r0, #2
- ldr r0, [r7, r0]
- mov r1, #0x1b
- bl FUN_0202A0E8
- b _0222FD54
-_0222FD32:
- bl FUN_02033590
- cmp r0, #0
- bne _0222FD48
- mov r0, #0x51
- lsl r0, r0, #2
- ldr r0, [r7, r0]
- mov r1, #0x17
- bl FUN_0202A0E8
- b _0222FD54
-_0222FD48:
- mov r0, #0x51
- lsl r0, r0, #2
- ldr r0, [r7, r0]
- mov r1, #0x1c
- bl FUN_0202A0E8
-_0222FD54:
- ldr r1, [r7]
- mov r0, #8
- tst r0, r1
- beq _0222FDBE
- mov r4, #0
- add r5, r7, #0
-_0222FD60:
- add r0, r4, #0
- bl FUN_020313CC
- lsl r0, r0, #2
- ldr r1, [r5, #4]
- add r0, r6, r0
- str r1, [r0, #4]
- add r0, r4, #0
- bl FUN_020313CC
- str r0, [sp, #8]
- add r0, r5, #0
- add r0, #0xf8
- ldr r0, [r0]
- mov r1, #5
- bl FUN_020239A0
- ldr r1, [sp, #8]
- add r4, r4, #1
- lsl r1, r1, #2
- add r1, r6, r1
- add r5, r5, #4
- str r0, [r1, #0x14]
- cmp r4, #4
- blt _0222FD60
- mov r0, #5
- str r0, [r6, #0x24]
- add r0, r6, #0
- mov r1, #2
- add r0, #0x28
- strb r1, [r0]
- add r0, r6, #0
- mov r1, #1
- add r0, #0x29
- strb r1, [r0]
- ldr r1, [r7, #0x14]
- cmp r1, #5
- beq _0222FDB4
- add r0, r6, #0
- add r0, #0x2a
- strb r1, [r0]
- b _0222FE48
-_0222FDB4:
- add r0, r6, #0
- mov r1, #3
- add r0, #0x2a
- strb r1, [r0]
- b _0222FE48
-_0222FDBE:
- ldr r0, [sp, #4]
- lsl r5, r0, #2
- bl FUN_020313CC
- add r1, r7, r5
- lsl r0, r0, #2
- ldr r1, [r1, #4]
- add r0, r6, r0
- str r1, [r0, #4]
- ldr r0, [sp, #4]
- mov r1, #1
- eor r0, r1
- lsl r4, r0, #2
- str r0, [sp]
- bl FUN_020313CC
- add r1, r7, r4
- lsl r0, r0, #2
- ldr r1, [r1, #4]
- add r0, r6, r0
- str r1, [r0, #4]
- ldr r0, [sp, #4]
- bl FUN_020313CC
- str r0, [sp, #0xc]
- add r0, r7, r5
- add r0, #0xf8
- ldr r0, [r0]
- mov r1, #5
- bl FUN_020239A0
- ldr r1, [sp, #0xc]
- lsl r1, r1, #2
- add r1, r6, r1
- str r0, [r1, #0x14]
- ldr r0, [sp]
- bl FUN_020313CC
- add r5, r0, #0
- add r0, r7, r4
- add r0, #0xf8
- ldr r0, [r0]
- mov r1, #5
- bl FUN_020239A0
- lsl r1, r5, #2
- add r1, r6, r1
- str r0, [r1, #0x14]
- mov r0, #5
- str r0, [r6, #0x24]
- add r0, r6, #0
- mov r1, #2
- add r0, #0x28
- strb r1, [r0]
- add r0, r6, #0
- mov r1, #0
- add r0, #0x29
- strb r1, [r0]
- ldr r1, [r7, #0x14]
- cmp r1, #5
- beq _0222FE40
- add r0, r6, #0
- add r0, #0x2a
- strb r1, [r0]
- b _0222FE48
-_0222FE40:
- add r0, r6, #0
- mov r1, #3
- add r0, #0x2a
- strb r1, [r0]
-_0222FE48:
- add r0, r6, #0
- bl MOD07_02211E60
- mov r0, #1
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0222FE54: .word SDK_OVERLAY_MODULE_07_ID
-
- thumb_func_start MOD11_0222FE58
-MOD11_0222FE58: ; 0x0222FE58
- push {r4, r5, r6, lr}
- bl FUN_0200628C
- mov r1, #0x66
- lsl r1, r1, #2
- ldr r6, [r0, r1]
- add r0, r6, #0
- add r0, #0x2b
- ldrb r0, [r0]
- cmp r0, #0
- beq _0222FE8E
- mov r4, #0
- add r5, r6, #0
-_0222FE72:
- ldr r0, [r5, #0x14]
- cmp r0, #0
- beq _0222FE7C
- bl FreeToHeap
-_0222FE7C:
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #4
- blt _0222FE72
- add r0, r6, #0
- bl FreeToHeap
- mov r0, #1
- pop {r4, r5, r6, pc}
-_0222FE8E:
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0222FE94
-MOD11_0222FE94: ; 0x0222FE94
- push {r3, lr}
- ldr r1, [r0, #0x2c]
- ldr r0, _0222FEBC ; =0x00000404
- tst r0, r1
- beq _0222FEA6
- mov r0, #1
- bl FUN_02002B7C
- pop {r3, pc}
-_0222FEA6:
- mov r0, #3
- bl FUN_02002B7C
- mov r0, #1
- bl FUN_02002B60
- mov r0, #1
- bl FUN_02002BB8
- pop {r3, pc}
- nop
-_0222FEBC: .word 0x00000404
-
- thumb_func_start MOD11_0222FEC0
-MOD11_0222FEC0: ; 0x0222FEC0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x40
- str r0, [sp]
- mov r0, #0x5f
- mov r3, #0
- add r4, sp, #0x30
- add r5, sp, #0x20
- lsl r0, r0, #2
-_0222FED0:
- stmia r4!, {r3}
- ldr r2, [r1, r0]
- add r3, r3, #1
- add r1, r1, #4
- stmia r5!, {r2}
- cmp r3, #4
- blt _0222FED0
- bl FUN_02031190
- str r0, [sp, #0x10]
- bl FUN_02030F20
- str r0, [sp, #0xc]
- mov r0, #0
- str r0, [sp, #4]
- ldr r0, [sp, #0xc]
- sub r0, r0, #1
- str r0, [sp, #0x14]
- cmp r0, #0
- ble _0222FF50
- add r0, sp, #0x30
- add r3, sp, #0x20
- str r0, [sp, #8]
- str r3, [sp, #0x18]
- mov ip, r0
-_0222FF02:
- ldr r0, [sp, #4]
- add r2, r0, #1
- ldr r0, [sp, #0xc]
- cmp r2, r0
- bge _0222FF3C
- ldr r0, [sp, #0x18]
- lsl r1, r2, #2
- add r4, r0, r1
- mov r0, ip
- add r5, r0, r1
-_0222FF16:
- ldr r0, [r4]
- ldr r6, [r3]
- str r0, [sp, #0x1c]
- cmp r6, r0
- bge _0222FF30
- ldr r0, [sp, #8]
- ldr r1, [r5]
- ldr r7, [r0]
- str r1, [r0]
- ldr r0, [sp, #0x1c]
- str r7, [r5]
- str r0, [r3]
- str r6, [r4]
-_0222FF30:
- ldr r0, [sp, #0xc]
- add r2, r2, #1
- add r4, r4, #4
- add r5, r5, #4
- cmp r2, r0
- blt _0222FF16
-_0222FF3C:
- ldr r0, [sp, #8]
- add r3, r3, #4
- add r0, r0, #4
- str r0, [sp, #8]
- ldr r0, [sp, #4]
- add r1, r0, #1
- ldr r0, [sp, #0x14]
- str r1, [sp, #4]
- cmp r1, r0
- blt _0222FF02
-_0222FF50:
- ldr r1, [sp, #0x30]
- ldr r0, [sp, #0x10]
- cmp r1, r0
- bne _0222FF60
- ldr r1, _0222FF64 ; =0x000023F8
- ldr r0, [sp]
- mov r2, #1
- strb r2, [r0, r1]
-_0222FF60:
- add sp, #0x40
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0222FF64: .word 0x000023F8
-
- thumb_func_start MOD11_0222FF68
-MOD11_0222FF68: ; 0x0222FF68
- ldr r0, [r0, #4]
- bx lr
-
- thumb_func_start MOD11_0222FF6C
-MOD11_0222FF6C: ; 0x0222FF6C
- ldr r2, [r0, #8]
- lsl r0, r1, #4
- add r0, r2, r0
- bx lr
-
- thumb_func_start MOD11_0222FF74
-MOD11_0222FF74: ; 0x0222FF74
- ldr r0, [r0, #0x2c]
- bx lr
-
- thumb_func_start MOD11_0222FF78
-MOD11_0222FF78: ; 0x0222FF78
- ldr r0, [r0, #0x30]
- bx lr
-
- thumb_func_start MOD11_0222FF7C
-MOD11_0222FF7C: ; 0x0222FF7C
- lsl r1, r1, #2
- add r0, r0, r1
- ldr r0, [r0, #0x34]
- bx lr
-
- thumb_func_start MOD11_0222FF84
-MOD11_0222FF84: ; 0x0222FF84
- ldr r0, [r0, #0x44]
- bx lr
-
- thumb_func_start MOD11_0222FF88
-MOD11_0222FF88: ; 0x0222FF88
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r2, [r5, #0x2c]
- mov r3, #8
- add r4, r1, #0
- tst r3, r2
- bne _0222FFA6
- mov r3, #0x10
- tst r2, r3
- beq _0222FFAE
- bl MOD11_02230260
- mov r1, #1
- tst r0, r1
- beq _0222FFAE
-_0222FFA6:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x68]
- pop {r3, r4, r5, pc}
-_0222FFAE:
- ldr r1, [r5, #0x2c]
- mov r0, #2
- tst r0, r1
- beq _0222FFC0
- lsl r0, r4, #0x1f
- lsr r0, r0, #0x1d
- add r0, r5, r0
- ldr r0, [r0, #0x68]
- pop {r3, r4, r5, pc}
-_0222FFC0:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x68]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0222FFC8
-MOD11_0222FFC8: ; 0x0222FFC8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r2, [r5, #0x2c]
- mov r3, #8
- add r4, r1, #0
- tst r3, r2
- bne _0222FFE6
- mov r3, #0x10
- tst r2, r3
- beq _0222FFF2
- bl MOD11_02230260
- mov r1, #1
- tst r0, r1
- beq _0222FFF2
-_0222FFE6:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x68]
- bl GetPartyCount
- pop {r3, r4, r5, pc}
-_0222FFF2:
- ldr r1, [r5, #0x2c]
- mov r0, #2
- tst r0, r1
- beq _02230008
- lsl r0, r4, #0x1f
- lsr r0, r0, #0x1d
- add r0, r5, r0
- ldr r0, [r0, #0x68]
- bl GetPartyCount
- pop {r3, r4, r5, pc}
-_02230008:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x68]
- bl GetPartyCount
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02230014
-MOD11_02230014: ; 0x02230014
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r6, r2, #0
- ldr r2, [r5, #0x2c]
- mov r3, #8
- add r4, r1, #0
- tst r3, r2
- bne _02230034
- mov r3, #0x10
- tst r2, r3
- beq _02230042
- bl MOD11_02230260
- mov r1, #1
- tst r0, r1
- beq _02230042
-_02230034:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x68]
- add r1, r6, #0
- bl GetPartyMonByIndex
- pop {r4, r5, r6, pc}
-_02230042:
- ldr r1, [r5, #0x2c]
- mov r0, #2
- tst r0, r1
- beq _0223005A
- lsl r0, r4, #0x1f
- lsr r0, r0, #0x1d
- add r0, r5, r0
- ldr r0, [r0, #0x68]
- add r1, r6, #0
- bl GetPartyMonByIndex
- pop {r4, r5, r6, pc}
-_0223005A:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x68]
- add r1, r6, #0
- bl GetPartyMonByIndex
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02230068
-MOD11_02230068: ; 0x02230068
- add r0, #0x88
- ldr r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_02230070
-MOD11_02230070: ; 0x02230070
- add r0, #0x8c
- ldr r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_02230078
-MOD11_02230078: ; 0x02230078
- add r0, #0x90
- ldr r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_02230080
-MOD11_02230080: ; 0x02230080
- add r0, #0x94
- ldr r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_02230088
-MOD11_02230088: ; 0x02230088
- mov r2, #0x5f
- lsl r2, r2, #2
- add r2, r0, r2
- lsl r0, r1, #4
- add r0, r2, r0
- bx lr
-
- thumb_func_start MOD11_02230094
-MOD11_02230094: ; 0x02230094
- mov r1, #0x67
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD11_0223009C
-MOD11_0223009C: ; 0x0223009C
- lsl r1, r1, #2
- add r1, r0, r1
- mov r0, #0x1a
- lsl r0, r0, #4
- ldr r0, [r1, r0]
- bx lr
-
- thumb_func_start MOD11_022300A8
-MOD11_022300A8: ; 0x022300A8
- lsl r1, r1, #2
- add r1, r0, r1
- mov r0, #0x1a
- lsl r0, r0, #4
- str r2, [r1, r0]
- bx lr
-
- thumb_func_start MOD11_022300B4
-MOD11_022300B4: ; 0x022300B4
- mov r1, #0x6a
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD11_022300BC
-MOD11_022300BC: ; 0x022300BC
- mov r1, #0x6b
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD11_022300C4
-MOD11_022300C4: ; 0x022300C4
- ldr r0, [r0, #0xc]
- bx lr
-
- thumb_func_start MOD11_022300C8
-MOD11_022300C8: ; 0x022300C8
- ldr r0, [r0, #0x10]
- bx lr
-
- thumb_func_start MOD11_022300CC
-MOD11_022300CC: ; 0x022300CC
- ldr r0, [r0, #0x28]
- bx lr
-
- thumb_func_start MOD11_022300D0
-MOD11_022300D0: ; 0x022300D0
- ldr r0, [r0, #0x60]
- bx lr
-
- thumb_func_start MOD11_022300D4
-MOD11_022300D4: ; 0x022300D4
- mov r1, #0x89
- lsl r1, r1, #2
- add r0, r0, r1
- bx lr
-
- thumb_func_start MOD11_022300DC
-MOD11_022300DC: ; 0x022300DC
- ldr r1, _022300E4 ; =0x00001224
- add r0, r0, r1
- bx lr
- nop
-_022300E4: .word 0x00001224
-
- thumb_func_start MOD11_022300E8
-MOD11_022300E8: ; 0x022300E8
- ldr r1, _022300F0 ; =0x000023E4
- add r0, r0, r1
- bx lr
- nop
-_022300F0: .word 0x000023E4
-
- thumb_func_start MOD11_022300F4
-MOD11_022300F4: ; 0x022300F4
- ldr r1, _022300FC ; =0x000023E6
- add r0, r0, r1
- bx lr
- nop
-_022300FC: .word 0x000023E6
-
- thumb_func_start MOD11_02230100
-MOD11_02230100: ; 0x02230100
- ldr r1, _02230108 ; =0x000023E8
- add r0, r0, r1
- bx lr
- nop
-_02230108: .word 0x000023E8
-
- thumb_func_start MOD11_0223010C
-MOD11_0223010C: ; 0x0223010C
- ldr r1, _02230114 ; =0x000023EA
- add r0, r0, r1
- bx lr
- nop
-_02230114: .word 0x000023EA
-
- thumb_func_start MOD11_02230118
-MOD11_02230118: ; 0x02230118
- ldr r1, _02230120 ; =0x000023EC
- add r0, r0, r1
- bx lr
- nop
-_02230120: .word 0x000023EC
-
- thumb_func_start MOD11_02230124
-MOD11_02230124: ; 0x02230124
- ldr r1, _0223012C ; =0x000023EE
- add r0, r0, r1
- bx lr
- nop
-_0223012C: .word 0x000023EE
-
- thumb_func_start MOD11_02230130
-MOD11_02230130: ; 0x02230130
- mov r1, #0x73
- lsl r1, r1, #2
- add r0, r0, r1
- bx lr
-
- thumb_func_start MOD11_02230138
-MOD11_02230138: ; 0x02230138
- ldr r0, [r0, #0x14]
- bx lr
-
- thumb_func_start MOD11_0223013C
-MOD11_0223013C: ; 0x0223013C
- ldr r0, [r0, #0x18]
- bx lr
-
- thumb_func_start MOD11_02230140
-MOD11_02230140: ; 0x02230140
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r2, [r5, #0x2c]
- mov r3, #8
- add r4, r1, #0
- tst r3, r2
- bne _0223015E
- mov r3, #0x10
- tst r2, r3
- beq _02230168
- bl MOD11_02230260
- mov r1, #1
- tst r0, r1
- beq _02230168
-_0223015E:
- lsl r0, r4, #1
- add r0, r5, r0
- add r0, #0xa0
- ldrh r0, [r0]
- pop {r3, r4, r5, pc}
-_02230168:
- ldr r1, [r5, #0x2c]
- mov r0, #2
- tst r0, r1
- beq _0223017C
- lsl r0, r4, #0x1f
- lsr r0, r0, #0x1e
- add r0, r5, r0
- add r0, #0xa0
- ldrh r0, [r0]
- pop {r3, r4, r5, pc}
-_0223017C:
- lsl r0, r4, #1
- add r0, r5, r0
- add r0, #0xa0
- ldrh r0, [r0]
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02230188
-MOD11_02230188: ; 0x02230188
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r2, [r5, #0x2c]
- mov r3, #8
- add r4, r1, #0
- tst r3, r2
- bne _022301A6
- mov r3, #0x10
- tst r2, r3
- beq _022301B0
- bl MOD11_02230260
- mov r1, #1
- tst r0, r1
- beq _022301B0
-_022301A6:
- mov r0, #0x34
- add r5, #0xac
- mul r0, r4
- add r0, r5, r0
- pop {r3, r4, r5, pc}
-_022301B0:
- ldr r1, [r5, #0x2c]
- mov r0, #2
- tst r0, r1
- beq _022301C8
- mov r0, #1
- add r1, r4, #0
- and r1, r0
- mov r0, #0x34
- add r5, #0xac
- mul r0, r1
- add r0, r5, r0
- pop {r3, r4, r5, pc}
-_022301C8:
- mov r0, #0x34
- add r5, #0xac
- mul r0, r4
- add r0, r5, r0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022301D4
-MOD11_022301D4: ; 0x022301D4
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r2, [r5, #0x2c]
- mov r3, #8
- add r4, r1, #0
- tst r3, r2
- bne _022301F2
- mov r3, #0x10
- tst r2, r3
- beq _022301FA
- bl MOD11_02230260
- mov r1, #1
- tst r0, r1
- beq _022301FA
-_022301F2:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x48]
- pop {r3, r4, r5, pc}
-_022301FA:
- ldr r1, [r5, #0x2c]
- mov r0, #2
- tst r0, r1
- beq _0223020C
- lsl r0, r4, #0x1f
- lsr r0, r0, #0x1d
- add r0, r5, r0
- ldr r0, [r0, #0x48]
- pop {r3, r4, r5, pc}
-_0223020C:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x48]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02230214
-MOD11_02230214: ; 0x02230214
- ldr r0, [r0, #0x58]
- bx lr
-
- thumb_func_start MOD11_02230218
-MOD11_02230218: ; 0x02230218
- ldr r0, [r0, #0x5c]
- bx lr
-
- thumb_func_start MOD11_0223021C
-MOD11_0223021C: ; 0x0223021C
- lsl r1, r1, #2
- add r0, r0, r1
- ldr r3, _02230228 ; =FUN_020239CC
- ldr r0, [r0, #0x48]
- bx r3
- nop
-_02230228: .word FUN_020239CC
-
- thumb_func_start MOD11_0223022C
-MOD11_0223022C: ; 0x0223022C
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- ldr r0, [r6, #0x44]
- add r7, r1, #0
- mov r4, #0
- cmp r0, #0
- ble _02230250
- add r5, r6, #0
-_0223023C:
- ldr r0, [r5, #0x34]
- bl MOD11_02253A4C
- cmp r7, r0
- beq _02230250
- ldr r0, [r6, #0x44]
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, r0
- blt _0223023C
-_02230250:
- ldr r0, [r6, #0x44]
- cmp r4, r0
- blt _0223025A
- bl ErrorHandling
-_0223025A:
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02230260
-MOD11_02230260: ; 0x02230260
- lsl r1, r1, #2
- add r0, r0, r1
- ldr r3, _0223026C ; =MOD11_02253A4C
- ldr r0, [r0, #0x34]
- bx r3
- nop
-_0223026C: .word MOD11_02253A4C
-
- thumb_func_start MOD11_02230270
-MOD11_02230270: ; 0x02230270
- push {r3, lr}
- lsl r1, r1, #2
- add r0, r0, r1
- ldr r0, [r0, #0x34]
- bl MOD11_02253A4C
- mov r1, #1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02230288
-MOD11_02230288: ; 0x02230288
- mov r1, #0x1b
- lsl r1, r1, #4
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD11_02230290
-MOD11_02230290: ; 0x02230290
- ldr r0, [r0, #0x64]
- bx lr
-
- thumb_func_start MOD11_02230294
-MOD11_02230294: ; 0x02230294
- ldr r1, _022302A4 ; =0x000023FC
- ldr r0, [r0, r1]
- cmp r0, #0xc
- bgt _022302A0
- cmp r0, #0
- bge _022302A2
-_022302A0:
- mov r0, #0xc
-_022302A2:
- bx lr
- .align 2, 0
-_022302A4: .word 0x000023FC
-
- thumb_func_start MOD11_022302A8
-MOD11_022302A8: ; 0x022302A8
- mov r1, #9
- lsl r1, r1, #0xa
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD11_022302B0
-MOD11_022302B0: ; 0x022302B0
- ldr r1, _022302B8 ; =0x00002404
- ldr r0, [r0, r1]
- bx lr
- nop
-_022302B8: .word 0x00002404
-
- thumb_func_start MOD11_022302BC
-MOD11_022302BC: ; 0x022302BC
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- add r5, r1, #0
- bl MOD11_0222FF84
- str r0, [sp]
- add r0, r6, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _022302D8
- add r0, r5, #0
- pop {r3, r4, r5, r6, r7, pc}
-_022302D8:
- ldr r0, [sp]
- mov r4, #0
- cmp r0, #0
- ble _02230302
-_022302E0:
- cmp r4, r5
- beq _022302FA
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_02230270
- add r7, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_02230270
- cmp r7, r0
- beq _02230302
-_022302FA:
- ldr r0, [sp]
- add r4, r4, #1
- cmp r4, r0
- blt _022302E0
-_02230302:
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02230308
-MOD11_02230308: ; 0x02230308
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- add r6, r1, #0
- str r2, [sp]
- bl MOD11_0222FF84
- str r0, [sp, #4]
- add r0, r5, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _0223032C
- mov r0, #1
- add sp, #8
- eor r0, r6
- pop {r3, r4, r5, r6, r7, pc}
-_0223032C:
- ldr r0, [sp, #4]
- mov r4, #0
- cmp r0, #0
- ble _02230368
-_02230334:
- cmp r4, r6
- beq _02230360
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02230260
- mov r1, #2
- and r1, r0
- ldr r0, [sp]
- cmp r0, r1
- bne _02230360
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02230270
- add r7, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02230270
- cmp r7, r0
- bne _02230368
-_02230360:
- ldr r0, [sp, #4]
- add r4, r4, #1
- cmp r4, r0
- blt _02230334
-_02230368:
- add r0, r4, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02230370
-MOD11_02230370: ; 0x02230370
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r6, r1, #0
- ldr r1, [sp, #0x38]
- add r5, r2, #0
- str r1, [sp, #0x38]
- add r1, r0, #0
- ldr r1, [r1, #0x30]
- add r4, r3, #0
- str r1, [sp, #0x1c]
- mov r1, #0
- str r1, [sp, #0x14]
- ldr r1, [sp, #0x1c]
- str r0, [sp, #4]
- mov r2, #2
- add r3, r6, #0
- bl MOD11_0224C474
- str r0, [sp, #0x10]
- ldr r0, [sp, #4]
- bl MOD11_0222FF74
- cmp r0, #3
- beq _022303BA
- ldr r0, [sp, #4]
- bl MOD11_0222FF74
- mov r1, #0x10
- tst r0, r1
- beq _022303E0
- ldr r0, [sp, #4]
- add r1, r6, #0
- bl MOD11_02230260
- mov r1, #1
- tst r0, r1
- bne _022303E0
-_022303BA:
- ldr r0, [sp, #4]
- add r1, r6, #0
- bl MOD11_022302BC
- add r3, r0, #0
- ldr r0, [sp, #4]
- ldr r1, [sp, #0x1c]
- mov r2, #2
- bl MOD11_0224C474
- str r0, [sp, #0xc]
- cmp r0, r5
- bne _022303E4
- ldr r0, [sp, #4]
- add r1, r6, #0
- bl MOD11_022302BC
- add r6, r0, #0
- b _022303E4
-_022303E0:
- ldr r0, [sp, #0x10]
- str r0, [sp, #0xc]
-_022303E4:
- ldr r0, [sp, #4]
- add r1, r6, #0
- add r2, r5, #0
- bl MOD11_02230014
- str r0, [sp, #0x18]
- mov r0, #0
- str r0, [sp, #8]
- ldr r0, [sp, #0x38]
- mov r1, #0xf
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230478
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- mov r2, #0
- bl GetMonData
- mov r1, #7
- str r0, [sp, #0x20]
- tst r1, r0
- beq _02230478
- mov r1, #7
- bic r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- add r2, sp, #0x20
- bl SetMonData
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _02230434
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _02230474
-_02230434:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x34
- mov r3, #0
- bl MOD11_02243420
- mov r1, #7
- str r0, [sp, #0x20]
- bic r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x34
- add r3, sp, #0x20
- bl MOD11_0224379C
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x35
- mov r3, #0
- bl MOD11_02243420
- ldr r1, _02230688 ; =0xF7FFFFFF
- str r0, [sp, #0x20]
- and r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x35
- add r3, sp, #0x20
- bl MOD11_0224379C
-_02230474:
- mov r0, #1
- str r0, [sp, #0x14]
-_02230478:
- ldr r0, [sp, #0x38]
- mov r1, #0x10
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _022304DC
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- mov r2, #0
- bl GetMonData
- ldr r1, _0223068C ; =0x00000F88
- str r0, [sp, #0x20]
- tst r1, r0
- beq _022304DC
- ldr r1, _02230690 ; =0xFFFFF077
- add r2, sp, #0x20
- and r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- bl SetMonData
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _022304B8
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _022304D8
-_022304B8:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x34
- mov r3, #0
- bl MOD11_02243420
- ldr r1, _02230690 ; =0xFFFFF077
- str r0, [sp, #0x20]
- and r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x34
- add r3, sp, #0x20
- bl MOD11_0224379C
-_022304D8:
- mov r0, #1
- str r0, [sp, #0x14]
-_022304DC:
- ldr r0, [sp, #0x38]
- mov r1, #0x11
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230540
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- mov r2, #0
- bl GetMonData
- mov r1, #0x10
- str r0, [sp, #0x20]
- tst r1, r0
- beq _02230540
- mov r1, #0x10
- bic r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- add r2, sp, #0x20
- bl SetMonData
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _0223051C
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _0223053C
-_0223051C:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x34
- mov r3, #0
- bl MOD11_02243420
- mov r1, #0x10
- str r0, [sp, #0x20]
- bic r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x34
- add r3, sp, #0x20
- bl MOD11_0224379C
-_0223053C:
- mov r0, #1
- str r0, [sp, #0x14]
-_02230540:
- ldr r0, [sp, #0x38]
- mov r1, #0x12
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _022305A4
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- mov r2, #0
- bl GetMonData
- mov r1, #0x20
- str r0, [sp, #0x20]
- tst r1, r0
- beq _022305A4
- mov r1, #0x20
- bic r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- add r2, sp, #0x20
- bl SetMonData
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _02230580
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _022305A0
-_02230580:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x34
- mov r3, #0
- bl MOD11_02243420
- mov r1, #0x20
- str r0, [sp, #0x20]
- bic r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x34
- add r3, sp, #0x20
- bl MOD11_0224379C
-_022305A0:
- mov r0, #1
- str r0, [sp, #0x14]
-_022305A4:
- ldr r0, [sp, #0x38]
- mov r1, #0x13
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230608
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- mov r2, #0
- bl GetMonData
- mov r1, #0x40
- str r0, [sp, #0x20]
- tst r1, r0
- beq _02230608
- mov r1, #0x40
- bic r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- add r2, sp, #0x20
- bl SetMonData
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _022305E4
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _02230604
-_022305E4:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x34
- mov r3, #0
- bl MOD11_02243420
- mov r1, #0x40
- str r0, [sp, #0x20]
- bic r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x34
- add r3, sp, #0x20
- bl MOD11_0224379C
-_02230604:
- mov r0, #1
- str r0, [sp, #0x14]
-_02230608:
- ldr r0, [sp, #0x38]
- mov r1, #0x14
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230650
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _02230626
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _02230650
-_02230626:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x35
- mov r3, #0
- bl MOD11_02243420
- mov r1, #7
- str r0, [sp, #0x20]
- tst r1, r0
- beq _02230650
- mov r1, #7
- bic r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x35
- add r3, sp, #0x20
- bl MOD11_0224379C
- mov r0, #1
- str r0, [sp, #0x14]
-_02230650:
- ldr r0, [sp, #0x38]
- mov r1, #0x15
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _022306AC
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _0223066E
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _022306AC
-_0223066E:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x35
- mov r3, #0
- bl MOD11_02243420
- mov r1, #0xf
- lsl r1, r1, #0x10
- str r0, [sp, #0x20]
- tst r1, r0
- beq _022306AC
- ldr r1, _02230694 ; =0xFFF0FFFF
- b _02230698
- .align 2, 0
-_02230688: .word 0xF7FFFFFF
-_0223068C: .word 0x00000F88
-_02230690: .word 0xFFFFF077
-_02230694: .word 0xFFF0FFFF
-_02230698:
- mov r2, #0x35
- and r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- add r3, sp, #0x20
- bl MOD11_0224379C
- mov r0, #1
- str r0, [sp, #0x14]
-_022306AC:
- ldr r0, [sp, #0x38]
- mov r1, #0x16
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230706
- ldr r0, [sp, #4]
- ldr r1, [sp, #0x1c]
- mov r2, #1
- add r3, r6, #0
- bl MOD11_0224C474
- str r0, [sp, #0x20]
- cmp r0, #0
- bne _02230706
- ldr r0, [sp, #4]
- ldr r1, [sp, #0x1c]
- mov r2, #0
- add r3, r6, #0
- bl MOD11_0224C474
- mov r1, #0x40
- str r0, [sp, #0x20]
- orr r0, r1
- str r0, [sp, #0x20]
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r1, [sp, #0x1c]
- mov r2, #0
- add r3, r6, #0
- bl MOD11_0224C54C
- mov r0, #5
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r1, [sp, #0x1c]
- mov r2, #1
- add r3, r6, #0
- bl MOD11_0224C54C
- mov r0, #1
- str r0, [sp, #0x14]
-_02230706:
- ldr r0, [sp, #0x38]
- mov r1, #0x1b
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230744
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _02230724
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _02230744
-_02230724:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x13
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #0xc
- bge _02230744
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x13
- mov r3, #1
- bl MOD11_02243DB0
- mov r0, #1
- str r0, [sp, #0x14]
-_02230744:
- ldr r0, [sp, #0x38]
- mov r1, #0x1c
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230782
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _02230762
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _02230782
-_02230762:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x14
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #0xc
- bge _02230782
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x14
- mov r3, #1
- bl MOD11_02243DB0
- mov r0, #1
- str r0, [sp, #0x14]
-_02230782:
- ldr r0, [sp, #0x38]
- mov r1, #0x1d
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _022307C0
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _022307A0
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _022307C0
-_022307A0:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x16
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #0xc
- bge _022307C0
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x16
- mov r3, #1
- bl MOD11_02243DB0
- mov r0, #1
- str r0, [sp, #0x14]
-_022307C0:
- ldr r0, [sp, #0x38]
- mov r1, #0x1e
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _022307FE
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _022307DE
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _022307FE
-_022307DE:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x17
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #0xc
- bge _022307FE
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x17
- mov r3, #1
- bl MOD11_02243DB0
- mov r0, #1
- str r0, [sp, #0x14]
-_022307FE:
- ldr r0, [sp, #0x38]
- mov r1, #0x1f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _0223083C
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _0223081C
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _0223083C
-_0223081C:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x15
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #0xc
- bge _0223083C
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x15
- mov r3, #1
- bl MOD11_02243DB0
- mov r0, #1
- str r0, [sp, #0x14]
-_0223083C:
- ldr r0, [sp, #0x38]
- mov r1, #0x20
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _0223087A
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _0223085A
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _0223087A
-_0223085A:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x18
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #0xc
- bge _0223087A
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x18
- mov r3, #1
- bl MOD11_02243DB0
- mov r0, #1
- str r0, [sp, #0x14]
-_0223087A:
- ldr r0, [sp, #0x38]
- mov r1, #0x21
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _022308C4
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _02230898
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _022308C4
-_02230898:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x35
- mov r3, #0
- bl MOD11_02243420
- mov r1, #1
- lsl r1, r1, #0x14
- add r2, r0, #0
- str r0, [sp, #0x20]
- tst r2, r1
- bne _022308C4
- orr r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x35
- add r3, sp, #0x20
- bl MOD11_0224379C
- mov r0, #1
- str r0, [sp, #0x14]
-_022308C4:
- ldr r0, [sp, #0x38]
- mov r1, #0x24
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _0223095A
- ldr r0, [sp, #0x38]
- mov r1, #0x37
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- str r0, [sp, #0x20]
- add r1, r4, #0
- ldr r0, [sp, #0x18]
- add r1, #0x3a
- mov r2, #0
- bl GetMonData
- add r7, r0, #0
- add r1, r4, #0
- ldr r0, [sp, #0x18]
- add r1, #0x42
- mov r2, #0
- bl GetMonData
- cmp r7, r0
- beq _0223095A
- add r1, r4, #0
- ldr r0, [sp, #0x18]
- ldr r2, [sp, #0x20]
- add r1, #0x3a
- bl AddMonData
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _0223091C
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _02230956
-_0223091C:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x35
- mov r3, #0
- bl MOD11_02243420
- mov r1, #2
- lsl r1, r1, #0x14
- tst r0, r1
- bne _02230956
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x4b
- mov r3, #0
- bl MOD11_02243420
- add r7, r0, #0
- add r0, r4, #0
- bl MaskOfFlagNo
- tst r0, r7
- bne _02230956
- add r4, #0x1f
- ldr r0, [sp, #0x1c]
- ldr r3, [sp, #0x20]
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_02243DB0
-_02230956:
- mov r0, #1
- str r0, [sp, #0x14]
-_0223095A:
- ldr r0, [sp, #0x38]
- mov r1, #0x25
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _022309F8
- ldr r0, [sp, #0x38]
- mov r1, #0x37
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- str r0, [sp, #0x20]
- mov r4, #0
-_0223097E:
- add r1, r4, #0
- ldr r0, [sp, #0x18]
- add r1, #0x3a
- mov r2, #0
- bl GetMonData
- add r7, r0, #0
- add r1, r4, #0
- ldr r0, [sp, #0x18]
- add r1, #0x42
- mov r2, #0
- bl GetMonData
- cmp r7, r0
- beq _022309F2
- add r1, r4, #0
- ldr r0, [sp, #0x18]
- ldr r2, [sp, #0x20]
- add r1, #0x3a
- bl AddMonData
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _022309B4
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _022309EE
-_022309B4:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x35
- mov r3, #0
- bl MOD11_02243420
- mov r1, #2
- lsl r1, r1, #0x14
- tst r0, r1
- bne _022309EE
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x4b
- mov r3, #0
- bl MOD11_02243420
- add r7, r0, #0
- add r0, r4, #0
- bl MaskOfFlagNo
- tst r0, r7
- bne _022309EE
- add r2, r4, #0
- ldr r0, [sp, #0x1c]
- ldr r3, [sp, #0x20]
- add r1, r6, #0
- add r2, #0x1f
- bl MOD11_02243DB0
-_022309EE:
- mov r0, #1
- str r0, [sp, #0x14]
-_022309F2:
- add r4, r4, #1
- cmp r4, #4
- blt _0223097E
-_022309F8:
- ldr r0, [sp, #0x38]
- mov r1, #0x26
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- bne _02230A0C
- b _02230B14
-_02230A0C:
- mov r0, #0
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x38]
- mov r1, #0x17
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230A36
- ldr r0, [sp, #0x18]
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _02230A42
- mov r0, #1
- str r0, [sp, #0x20]
- b _02230A42
-_02230A36:
- ldr r0, [sp, #0x18]
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- str r0, [sp, #0x20]
-_02230A42:
- ldr r0, [sp, #0x20]
- cmp r0, #0
- beq _02230B14
- ldr r0, [sp, #0x18]
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- add r4, r0, #0
- ldr r0, [sp, #0x18]
- mov r1, #0xa3
- mov r2, #0
- bl GetMonData
- cmp r4, r0
- beq _02230B14
- ldr r0, [sp, #0x38]
- mov r1, #0x36
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- str r0, [sp, #0x20]
- cmp r0, #0xfd
- beq _02230AA2
- cmp r0, #0xfe
- beq _02230A8C
- cmp r0, #0xff
- bne _02230AC2
- ldr r0, [sp, #0x18]
- mov r1, #0xa3
- mov r2, #0
- bl GetMonData
- str r0, [sp, #0x20]
- b _02230AC2
-_02230A8C:
- ldr r0, [sp, #0x18]
- mov r1, #0xa3
- mov r2, #0
- bl GetMonData
- lsr r0, r0, #1
- str r0, [sp, #0x20]
- bne _02230AC2
- mov r0, #1
- str r0, [sp, #0x20]
- b _02230AC2
-_02230AA2:
- ldr r0, [sp, #0x18]
- mov r1, #0xa3
- mov r2, #0
- bl GetMonData
- mov r1, #0x19
- mul r1, r0
- add r0, r1, #0
- mov r1, #0x64
- bl _u32_div_f
- str r0, [sp, #0x20]
- cmp r0, #0
- bne _02230AC2
- mov r0, #1
- str r0, [sp, #0x20]
-_02230AC2:
- ldr r0, [sp, #0x18]
- ldr r2, [sp, #0x20]
- mov r1, #0xa2
- bl AddMonData
- ldr r0, [sp, #0x38]
- mov r1, #0x17
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- bne _02230B10
- ldr r0, [sp, #4]
- add r1, r6, #0
- bl MOD11_02230270
- cmp r0, #0
- beq _02230AF8
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x5f
- add r3, sp, #0x20
- bl MOD11_0224379C
- b _02230B10
-_02230AF8:
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _02230B04
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _02230B10
-_02230B04:
- ldr r0, [sp, #0x1c]
- ldr r3, [sp, #0x20]
- add r1, r6, #0
- mov r2, #0x2f
- bl MOD11_02243DB0
-_02230B10:
- mov r0, #1
- str r0, [sp, #0x14]
-_02230B14:
- ldr r0, [sp, #0x38]
- mov r1, #0x2d
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230B4A
- ldr r0, [sp, #0x18]
- mov r1, #9
- mov r2, #0
- bl GetMonData
- cmp r0, #0x64
- bhs _02230B4A
- ldr r0, [sp, #0x14]
- cmp r0, #1
- bne _02230B4A
- ldr r0, [sp, #0x38]
- mov r1, #0x38
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- str r0, [sp, #8]
-_02230B4A:
- ldr r0, [sp, #0x38]
- mov r1, #0x2e
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230B8E
- ldr r0, [sp, #0x18]
- mov r1, #9
- mov r2, #0
- bl GetMonData
- cmp r0, #0x64
- blo _02230B8E
- ldr r0, [sp, #0x18]
- mov r1, #9
- mov r2, #0
- bl GetMonData
- cmp r0, #0xc8
- bhs _02230B8E
- ldr r0, [sp, #0x14]
- cmp r0, #1
- bne _02230B8E
- ldr r0, [sp, #0x38]
- mov r1, #0x39
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- str r0, [sp, #8]
-_02230B8E:
- ldr r0, [sp, #0x38]
- mov r1, #0x2f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230BC4
- ldr r0, [sp, #0x18]
- mov r1, #9
- mov r2, #0
- bl GetMonData
- cmp r0, #0xc8
- blo _02230BC4
- ldr r0, [sp, #0x14]
- cmp r0, #1
- bne _02230BC4
- ldr r0, [sp, #0x38]
- mov r1, #0x3a
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- str r0, [sp, #8]
-_02230BC4:
- ldr r0, [sp, #8]
- cmp r0, #0
- beq _02230C4A
- ble _02230C28
- ldr r0, [sp, #0x18]
- mov r1, #0x9a
- mov r2, #0
- bl GetMonData
- cmp r0, #0xb
- bne _02230BE0
- ldr r0, [sp, #8]
- add r0, r0, #1
- str r0, [sp, #8]
-_02230BE0:
- ldr r0, [sp, #0x18]
- mov r1, #0x97
- mov r2, #0
- bl GetMonData
- add r4, r0, #0
- ldr r0, [sp, #4]
- bl MOD11_022302B0
- cmp r4, r0
- bne _02230BFC
- ldr r0, [sp, #8]
- add r0, r0, #1
- str r0, [sp, #8]
-_02230BFC:
- ldr r0, [sp, #0x18]
- mov r1, #6
- mov r2, #0
- bl GetMonData
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x38]
- mov r1, #1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0x34
- bne _02230C28
- ldr r1, [sp, #8]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- str r0, [sp, #8]
-_02230C28:
- ldr r0, [sp, #0x18]
- ldr r2, [sp, #8]
- mov r1, #9
- bl AddMonData
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _02230C3E
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _02230C4A
-_02230C3E:
- ldr r0, [sp, #0x1c]
- ldr r3, [sp, #8]
- add r1, r6, #0
- mov r2, #0x2c
- bl MOD11_02243DB0
-_02230C4A:
- ldr r0, [sp, #0x14]
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02230C50
-MOD11_02230C50: ; 0x02230C50
- ldr r1, _02230C58 ; =0x00002408
- ldr r0, [r0, r1]
- bx lr
- nop
-_02230C58: .word 0x00002408
-
- thumb_func_start MOD11_02230C5C
-MOD11_02230C5C: ; 0x02230C5C
- ldr r1, _02230C64 ; =0x0000240C
- ldr r0, [r0, r1]
- bx lr
- nop
-_02230C64: .word 0x0000240C
-
- thumb_func_start MOD11_02230C68
-MOD11_02230C68: ; 0x02230C68
- mov r2, #9
- lsl r2, r2, #0xa
- ldr r1, [r0, r2]
- cmp r1, #5
- bhi _02230CB4
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02230C7E: ; jump table
- .short _02230C8A - _02230C7E - 2 ; case 0
- .short _02230C8A - _02230C7E - 2 ; case 1
- .short _02230C8A - _02230C7E - 2 ; case 2
- .short _02230C8A - _02230C7E - 2 ; case 3
- .short _02230C8A - _02230C7E - 2 ; case 4
- .short _02230C8A - _02230C7E - 2 ; case 5
-_02230C8A:
- add r2, #0xc
- ldr r1, [r0, r2]
- cmp r1, #4
- bhi _02230CB6
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02230C9E: ; jump table
- .short _02230CA8 - _02230C9E - 2 ; case 0
- .short _02230CA8 - _02230C9E - 2 ; case 1
- .short _02230CAC - _02230C9E - 2 ; case 2
- .short _02230CB0 - _02230C9E - 2 ; case 3
- .short _02230CB0 - _02230C9E - 2 ; case 4
-_02230CA8:
- mov r0, #0
- bx lr
-_02230CAC:
- mov r0, #1
- bx lr
-_02230CB0:
- mov r0, #2
- bx lr
-_02230CB4:
- mov r0, #0
-_02230CB6:
- bx lr
-
- thumb_func_start MOD11_02230CB8
-MOD11_02230CB8: ; 0x02230CB8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_02230260
- cmp r0, #4
- bne _02230D32
- ldr r1, [r5, #0x2c]
- mov r0, #8
- tst r0, r1
- bne _02230D32
- mov r0, #4
- tst r0, r1
- beq _02230CEE
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022302BC
- bl MaskOfFlagNo
- mov r1, #0x91
- lsl r1, r1, #6
- ldrb r1, [r5, r1]
- tst r0, r1
- bne _02230D32
- mov r0, #1
- pop {r3, r4, r5, pc}
-_02230CEE:
- ldr r1, [r5, #0x30]
- add r0, r5, #0
- mov r2, #0xc
- mov r3, #0
- bl MOD11_0224C474
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- ldr r1, [r5, #0x30]
- add r0, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_0224C474
- cmp r0, #0xe
- bne _02230D12
- cmp r4, #0x10
- bhi _02230D2A
-_02230D12:
- ldr r1, [r5, #0x30]
- add r0, r5, #0
- mov r2, #0xa
- mov r3, #0
- bl MOD11_0224C474
- add r4, r0, #0
- mov r0, #0
- bl MaskOfFlagNo
- tst r0, r4
- beq _02230D2E
-_02230D2A:
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02230D2E:
- mov r0, #1
- pop {r3, r4, r5, pc}
-_02230D32:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02230D38
-MOD11_02230D38: ; 0x02230D38
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- mov r0, #0
- str r0, [sp, #4]
- ldr r0, [r5, #0x14]
- add r4, r1, #0
- add r7, r2, #0
- cmp r0, #1
- beq _02230D5A
- cmp r0, #4
- beq _02230D5A
- cmp r0, #5
- beq _02230D5A
- ldr r0, [sp, #4]
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_02230D5A:
- mov r0, #0x5e
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _02230DCE
-_02230D64:
- mov r0, #0
- str r0, [r4]
- cmp r0, #6
- bge _02230D9C
- mov r6, #0x5e
- lsl r6, r6, #2
-_02230D70:
- bl MaskOfFlagNo
- ldr r1, [r5, r6]
- tst r0, r1
- beq _02230D92
- ldr r0, [r4]
- bl MaskOfFlagNo
- mov r3, #0x5e
- lsl r3, r3, #2
- mov r2, #0
- mvn r2, r2
- ldr r1, [r5, r3]
- eor r0, r2
- and r0, r1
- str r0, [r5, r3]
- b _02230D9C
-_02230D92:
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- cmp r0, #6
- blt _02230D70
-_02230D9C:
- ldr r1, [r4]
- cmp r1, #6
- bge _02230DC4
- ldr r0, [r5, #4]
- bl GetPartyMonByIndex
- mov r3, #0x59
- str r7, [sp]
- lsl r3, r3, #2
- ldr r3, [r5, r3]
- add r1, r0, #0
- lsl r3, r3, #0x10
- ldr r0, [r5, #4]
- mov r2, #0
- lsr r3, r3, #0x10
- bl GetMonEvolution
- str r0, [sp, #4]
- cmp r0, #0
- bne _02230DD0
-_02230DC4:
- mov r0, #0x5e
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- cmp r0, #0
- bne _02230D64
-_02230DCE:
- ldr r0, [sp, #4]
-_02230DD0:
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02230DD4
-MOD11_02230DD4: ; 0x02230DD4
- ldr r1, _02230DDC ; =0x000023F8
- ldrb r0, [r0, r1]
- bx lr
- nop
-_02230DDC: .word 0x000023F8
-
- thumb_func_start MOD11_02230DE0
-MOD11_02230DE0: ; 0x02230DE0
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x30]
- cmp r0, #0
- bne _02230DEE
- bl ErrorHandling
-_02230DEE:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r2, #5
- mov r3, #0
- bl MOD11_0224C474
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- pop {r4, pc}
-
- thumb_func_start MOD11_02230E00
-MOD11_02230E00: ; 0x02230E00
- ldr r1, _02230E08 ; =0x00002410
- ldr r0, [r0, r1]
- bx lr
- nop
-_02230E08: .word 0x00002410
-
- thumb_func_start MOD11_02230E0C
-MOD11_02230E0C: ; 0x02230E0C
- ldr r2, _02230E14 ; =0x00002410
- str r1, [r0, r2]
- bx lr
- nop
-_02230E14: .word 0x00002410
-
- thumb_func_start MOD11_02230E18
-MOD11_02230E18: ; 0x02230E18
- mov r1, #0x6d
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD11_02230E20
-MOD11_02230E20: ; 0x02230E20
- push {r3, lr}
- ldr r2, [r0, #0x2c]
- mov r1, #4
- tst r1, r2
- beq _02230E2E
- mov r0, #1
- pop {r3, pc}
-_02230E2E:
- mov r1, #0x6d
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bl FUN_0202502C
- cmp r0, #0
- bne _02230E40
- mov r0, #1
- pop {r3, pc}
-_02230E40:
- mov r0, #0
- pop {r3, pc}
-
- thumb_func_start MOD11_02230E44
-MOD11_02230E44: ; 0x02230E44
- mov r1, #0x6d
- lsl r1, r1, #2
- ldr r3, _02230E50 ; =FUN_02025084
- ldr r0, [r0, r1]
- bx r3
- nop
-_02230E50: .word FUN_02025084
-
- thumb_func_start MOD11_02230E54
-MOD11_02230E54: ; 0x02230E54
- push {r3, lr}
- ldr r2, [r0, #0x2c]
- mov r1, #4
- tst r1, r2
- beq _02230E62
- mov r0, #1
- pop {r3, pc}
-_02230E62:
- mov r1, #0x6d
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bl FUN_02024FF4
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02230E70
-MOD11_02230E70: ; 0x02230E70
- mov r1, #0x6d
- lsl r1, r1, #2
- ldr r3, _02230E7C ; =FUN_02025048
- ldr r0, [r0, r1]
- bx r3
- nop
-_02230E7C: .word FUN_02025048
-
- thumb_func_start MOD11_02230E80
-MOD11_02230E80: ; 0x02230E80
- mov r1, #0x71
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD11_02230E88
-MOD11_02230E88: ; 0x02230E88
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r2, [r5, #0x2c]
- mov r3, #8
- add r4, r1, #0
- tst r3, r2
- bne _02230EA6
- mov r3, #0x10
- tst r2, r3
- beq _02230EAE
- bl MOD11_02230260
- mov r1, #1
- tst r0, r1
- beq _02230EAE
-_02230EA6:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x78]
- pop {r3, r4, r5, pc}
-_02230EAE:
- ldr r1, [r5, #0x2c]
- mov r0, #2
- tst r0, r1
- beq _02230EC0
- lsl r0, r4, #0x1f
- lsr r0, r0, #0x1d
- add r0, r5, r0
- ldr r0, [r0, #0x78]
- pop {r3, r4, r5, pc}
-_02230EC0:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x78]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02230EC8
-MOD11_02230EC8: ; 0x02230EC8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- mov r1, #0xa9
- ldr r2, [r5, #0x2c]
- lsl r1, r1, #2
- tst r1, r2
- bne _02230F66
- mov r4, #0
- add r1, r4, #0
- bl MOD11_0222FFC8
- cmp r0, #0
- ble _02230F66
- add r7, r4, #0
-_02230EE4:
- add r0, r5, #0
- mov r1, #0
- add r2, r4, #0
- bl MOD11_02230014
- mov r1, #0xad
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- mov r0, #0x67
- lsl r0, r0, #2
- cmp r1, r0
- bne _02230F58
- add r0, r4, #0
- bl MaskOfFlagNo
- ldr r1, _02230F68 ; =0x00002414
- ldrb r1, [r5, r1]
- tst r0, r1
- beq _02230F58
- add r0, r5, #0
- bl MOD11_02230294
- cmp r0, #0xb
- bhi _02230F40
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02230F28: ; jump table
- .short _02230F44 - _02230F28 - 2 ; case 0
- .short _02230F44 - _02230F28 - 2 ; case 1
- .short _02230F40 - _02230F28 - 2 ; case 2
- .short _02230F40 - _02230F28 - 2 ; case 3
- .short _02230F44 - _02230F28 - 2 ; case 4
- .short _02230F44 - _02230F28 - 2 ; case 5
- .short _02230F40 - _02230F28 - 2 ; case 6
- .short _02230F40 - _02230F28 - 2 ; case 7
- .short _02230F40 - _02230F28 - 2 ; case 8
- .short _02230F4A - _02230F28 - 2 ; case 9
- .short _02230F40 - _02230F28 - 2 ; case 10
- .short _02230F4A - _02230F28 - 2 ; case 11
-_02230F40:
- str r7, [sp]
- b _02230F4E
-_02230F44:
- mov r0, #1
- str r0, [sp]
- b _02230F4E
-_02230F4A:
- mov r0, #2
- str r0, [sp]
-_02230F4E:
- add r0, r6, #0
- mov r1, #0x70
- add r2, sp, #0
- bl SetMonData
-_02230F58:
- add r0, r5, #0
- mov r1, #0
- add r4, r4, #1
- bl MOD11_0222FFC8
- cmp r4, r0
- blt _02230EE4
-_02230F66:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02230F68: .word 0x00002414
-
- thumb_func_start MOD11_02230F6C
-MOD11_02230F6C: ; 0x02230F6C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r0, r2, #0
- add r4, r1, #0
- bl MaskOfFlagNo
- ldr r1, _02230F84 ; =0x00002414
- add r2, r5, r1
- ldrb r1, [r2, r4]
- orr r0, r1
- strb r0, [r2, r4]
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02230F84: .word 0x00002414
-
- thumb_func_start MOD11_02230F88
-MOD11_02230F88: ; 0x02230F88
- push {r4, lr}
- add r4, r0, #0
- add r0, #0x98
- ldr r0, [r0]
- cmp r0, #0
- beq _02230FA4
- add r0, r1, #0
- bl FUN_020690E4
- add r4, #0x98
- add r1, r0, #0
- ldr r0, [r4]
- bl FUN_0204C104
-_02230FA4:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02230FA8
-MOD11_02230FA8: ; 0x02230FA8
- push {r3, r4, lr}
- sub sp, #4
- add r3, r0, #0
- mov r0, #5
- str r0, [sp]
- ldr r4, _02230FC8 ; =0x0000241C
- add r0, r3, #0
- ldrb r2, [r3, r4]
- add r4, r4, #2
- add r0, #0x9c
- ldrh r3, [r3, r4]
- ldr r0, [r0]
- bl FUN_02061028
- add sp, #4
- pop {r3, r4, pc}
- .align 2, 0
-_02230FC8: .word 0x0000241C
-
- thumb_func_start MOD11_02230FCC
-MOD11_02230FCC: ; 0x02230FCC
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- mov r1, #1
- add r4, r0, #0
- mov r0, #5
- lsl r1, r1, #0x10
- bl AllocFromHeap
- mov r1, #0x87
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r0, #5
- sub r1, #0x1c
- bl AllocFromHeap
- mov r1, #0x22
- lsl r1, r1, #4
- str r0, [r4, r1]
- sub r1, r1, #4
- mov r2, #1
- ldr r0, _02231224 ; =0x06010000
- ldr r1, [r4, r1]
- lsl r2, r2, #0x10
- bl MIi_CpuCopy32
- mov r0, #0x22
- lsl r0, r0, #4
- ldr r5, [r4, r0]
- ldr r0, [r4, #0x28]
- mov r1, #0
- bl FUN_020031FC
- mov r2, #2
- add r1, r5, #0
- lsl r2, r2, #8
- bl MIi_CpuCopy32
- mov r0, #0x19
- lsl r0, r0, #0x16
- str r0, [sp, #0x24]
- mov r0, #0x63
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- ldr r0, [r0]
- bl FUN_02020350
- ldr r1, [r0, #4]
- ldr r0, [sp, #0x24]
- add r0, r0, r1
- str r0, [sp, #0x24]
- mov r0, #0x14
- str r0, [sp, #0x28]
- lsl r0, r0, #0xb
- str r0, [sp, #0xc]
-_02231038:
- mov r0, #0x10
- mov ip, r0
- lsl r0, r0, #6
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x28]
- mov r7, #1
- sub r0, #0x14
- lsl r1, r0, #8
- ldr r0, [sp, #0x24]
- add r0, r0, r1
- str r0, [sp, #0x10]
-_0223104E:
- mov r0, ip
- sub r0, #0x10
- ldr r1, [sp, #0x10]
- lsl r3, r0, #5
- add r3, r1, r3
- ldr r5, [sp, #0xc]
- ldr r1, [sp, #0x14]
- mov r2, #0
- add r6, r5, r1
-_02231060:
- cmp r0, #8
- bge _02231088
- add r1, r2, #0
- tst r1, r7
- beq _0223107A
- lsr r1, r2, #0x1f
- add r1, r2, r1
- asr r1, r1, #1
- ldrb r5, [r3, r1]
- mov r1, #0xf0
- and r1, r5
- asr r1, r1, #4
- b _022310B6
-_0223107A:
- lsr r1, r2, #0x1f
- add r1, r2, r1
- asr r1, r1, #1
- ldrb r5, [r3, r1]
- mov r1, #0xf
- and r1, r5
- b _022310B6
-_02231088:
- mov r1, #1
- tst r1, r2
- beq _022310A4
- lsr r1, r2, #0x1f
- add r1, r2, r1
- asr r1, r1, #1
- add r5, r3, r1
- mov r1, #7
- lsl r1, r1, #8
- ldrb r5, [r5, r1]
- mov r1, #0xf0
- and r1, r5
- asr r1, r1, #4
- b _022310B6
-_022310A4:
- lsr r1, r2, #0x1f
- add r1, r2, r1
- asr r1, r1, #1
- add r5, r3, r1
- mov r1, #7
- lsl r1, r1, #8
- ldrb r5, [r5, r1]
- mov r1, #0xf
- and r1, r5
-_022310B6:
- cmp r1, #0
- beq _022310C6
- mov r5, #0x87
- lsl r5, r5, #2
- ldr r5, [r4, r5]
- add r1, #0x70
- add r5, r6, r5
- strb r1, [r2, r5]
-_022310C6:
- add r2, r2, #1
- cmp r2, #0x40
- blt _02231060
- ldr r0, [sp, #0x14]
- add r0, #0x40
- str r0, [sp, #0x14]
- mov r0, ip
- add r0, r0, #1
- mov ip, r0
- cmp r0, #0x20
- blt _0223104E
- mov r1, #2
- ldr r0, [sp, #0xc]
- lsl r1, r1, #0xa
- add r0, r0, r1
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x28]
- add r0, r0, #1
- str r0, [sp, #0x28]
- cmp r0, #0x1c
- blt _02231038
- mov r0, #0x19
- lsl r0, r0, #0x16
- str r0, [sp, #8]
- mov r0, #0x5f
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- ldr r0, [r0]
- bl FUN_02020350
- ldr r1, [r0, #4]
- ldr r0, [sp, #8]
- mov r7, #0x26
- add r0, r0, r1
- str r0, [sp, #8]
- mov r3, #0
- mov r0, #0xf
- mov r1, #0xf0
- lsl r7, r7, #0xa
- mov r2, #1
-_02231116:
- add r5, r3, #0
- tst r5, r2
- beq _0223112C
- lsr r5, r3, #0x1f
- add r5, r3, r5
- asr r6, r5, #1
- ldr r5, [sp, #8]
- ldrb r5, [r5, r6]
- and r5, r1
- asr r5, r5, #4
- b _02231138
-_0223112C:
- lsr r5, r3, #0x1f
- add r5, r3, r5
- asr r6, r5, #1
- ldr r5, [sp, #8]
- ldrb r5, [r5, r6]
- and r5, r0
-_02231138:
- cmp r5, #0
- beq _02231148
- mov r6, #0x87
- lsl r6, r6, #2
- ldr r6, [r4, r6]
- add r5, #0x70
- add r6, r6, r3
- strb r5, [r6, r7]
-_02231148:
- mov r5, #2
- add r3, r3, #1
- lsl r5, r5, #0xa
- cmp r3, r5
- blt _02231116
- mov r0, #0x1c
- str r0, [sp, #4]
- lsl r0, r0, #0xb
- str r0, [sp, #0x18]
-_0223115A:
- ldr r0, [sp, #4]
- mov r2, #0
- sub r0, #0x1c
- lsl r1, r0, #8
- ldr r0, [sp, #8]
- str r2, [sp, #0x20]
- add r0, r0, r1
- str r0, [sp, #0x1c]
- mov r7, #1
-_0223116C:
- asr r0, r2, #2
- lsr r0, r0, #0x1d
- add r0, r2, r0
- asr r0, r0, #3
- lsl r1, r0, #0xa
- ldr r0, [sp, #0x1c]
- lsr r5, r2, #0x1f
- add r6, r0, r1
- lsl r1, r2, #0x1d
- sub r1, r1, r5
- mov r0, #0x1d
- ror r1, r0
- add r0, r5, r1
- lsl r0, r0, #5
- ldr r5, [sp, #0x18]
- ldr r1, [sp, #0x20]
- mov r3, #0
- add r0, r6, r0
- add r1, r5, r1
-_02231192:
- add r5, r3, #0
- tst r5, r7
- beq _022311AE
- lsr r5, r3, #0x1f
- add r5, r3, r5
- asr r5, r5, #1
- add r6, r0, r5
- mov r5, #1
- lsl r5, r5, #0xa
- ldrb r6, [r6, r5]
- mov r5, #0xf0
- and r5, r6
- asr r5, r5, #4
- b _022311C0
-_022311AE:
- lsr r5, r3, #0x1f
- add r5, r3, r5
- asr r5, r5, #1
- add r6, r0, r5
- mov r5, #1
- lsl r5, r5, #0xa
- ldrb r6, [r6, r5]
- mov r5, #0xf
- and r5, r6
-_022311C0:
- cmp r5, #0
- beq _022311D0
- mov r6, #0x87
- lsl r6, r6, #2
- ldr r6, [r4, r6]
- add r5, #0x70
- add r6, r1, r6
- strb r5, [r3, r6]
-_022311D0:
- add r3, r3, #1
- cmp r3, #0x40
- blt _02231192
- ldr r0, [sp, #0x20]
- add r2, r2, #1
- add r0, #0x40
- str r0, [sp, #0x20]
- cmp r2, #0x18
- blt _0223116C
- mov r3, #2
- ldr r0, [sp, #0x18]
- lsl r3, r3, #0xa
- add r0, r0, r3
- str r0, [sp, #0x18]
- ldr r0, [sp, #4]
- add r0, r0, #1
- str r0, [sp, #4]
- cmp r0, #0x20
- blt _0223115A
- mov r0, #0
- mov r2, #0x87
- str r0, [sp]
- lsl r2, r2, #2
- ldr r0, [r4, #4]
- ldr r2, [r4, r2]
- mov r1, #3
- lsl r3, r3, #5
- bl FUN_02017E14
- mov r0, #0x5f
- lsl r0, r0, #2
- add r0, r4, r0
- bl MOD11_0225840C
- mov r0, #0x63
- lsl r0, r0, #2
- add r0, r4, r0
- bl MOD11_0225840C
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- nop
-_02231224: .word 0x06010000
-
- thumb_func_start MOD11_02231228
-MOD11_02231228: ; 0x02231228
- mov r1, #0x87
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD11_02231230
-MOD11_02231230: ; 0x02231230
- mov r1, #0x22
- lsl r1, r1, #4
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD11_02231238
-MOD11_02231238: ; 0x02231238
- ldr r1, _02231240 ; =0x00002424
- ldr r0, [r0, r1]
- bx lr
- nop
-_02231240: .word 0x00002424
-
- thumb_func_start MOD11_02231244
-MOD11_02231244: ; 0x02231244
- ldr r1, _0223124C ; =0x00002224
- add r0, r0, r1
- bx lr
- nop
-_0223124C: .word 0x00002224
-
- thumb_func_start MOD11_02231250
-MOD11_02231250: ; 0x02231250
- ldr r1, _02231258 ; =0x00002304
- add r0, r0, r1
- bx lr
- nop
-_02231258: .word 0x00002304
-
- thumb_func_start MOD11_0223125C
-MOD11_0223125C: ; 0x0223125C
- ldr r1, _02231264 ; =0x00002428
- ldr r0, [r0, r1]
- bx lr
- nop
-_02231264: .word 0x00002428
-
- thumb_func_start MOD11_02231268
-MOD11_02231268: ; 0x02231268
- ldr r1, _02231270 ; =0x0000241D
- ldrb r0, [r0, r1]
- bx lr
- nop
-_02231270: .word 0x0000241D
-
- thumb_func_start MOD11_02231274
-MOD11_02231274: ; 0x02231274
- ldr r2, _0223127C ; =0x0000241D
- strb r1, [r0, r2]
- bx lr
- nop
-_0223127C: .word 0x0000241D
-
- thumb_func_start MOD11_02231280
-MOD11_02231280: ; 0x02231280
- ldr r1, _02231288 ; =0x0000242C
- ldr r0, [r0, r1]
- bx lr
- nop
-_02231288: .word 0x0000242C
-
- thumb_func_start MOD11_0223128C
-MOD11_0223128C: ; 0x0223128C
- mov r2, #0x86
- lsl r2, r2, #2
- ldr r3, _02231298 ; =FUN_0202A0E8
- ldr r0, [r0, r2]
- bx r3
- nop
-_02231298: .word FUN_0202A0E8
-
- thumb_func_start MOD11_0223129C
-MOD11_0223129C: ; 0x0223129C
- mov r1, #0x86
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- ldr r3, _022312A8 ; =FUN_0202A170
- mov r1, #0x16
- bx r3
- .align 2, 0
-_022312A8: .word FUN_0202A170
-
- thumb_func_start MOD11_022312AC
-MOD11_022312AC: ; 0x022312AC
- ldr r2, _022312B4 ; =0x0000243C
- str r1, [r0, r2]
- bx lr
- nop
-_022312B4: .word 0x0000243C
-
- thumb_func_start MOD11_022312B8
-MOD11_022312B8: ; 0x022312B8
- mov r2, #0x91
- lsl r2, r2, #6
- strb r1, [r0, r2]
- bx lr
-
- thumb_func_start MOD11_022312C0
-MOD11_022312C0: ; 0x022312C0
- mov r1, #0x6f
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD11_022312C8
-MOD11_022312C8: ; 0x022312C8
- mov r2, #0x6f
- lsl r2, r2, #2
- str r1, [r0, r2]
- bx lr
-
- thumb_func_start MOD11_022312D0
-MOD11_022312D0: ; 0x022312D0
- mov r2, #0x73
- lsl r2, r2, #2
- add r2, r0, r2
- lsl r0, r1, #4
- add r0, r2, r0
- bx lr
-
- thumb_func_start MOD11_022312DC
-MOD11_022312DC: ; 0x022312DC
- push {r3, r4, r5, lr}
- add r5, r1, #0
- add r4, r0, #0
- cmp r5, #4
- blt _022312EA
- bl ErrorHandling
-_022312EA:
- lsl r0, r5, #4
- ldr r0, [r4, r0]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022312F0
-MOD11_022312F0: ; 0x022312F0
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r6, r2, #0
- cmp r4, #4
- blt _02231300
- bl ErrorHandling
-_02231300:
- lsl r0, r4, #4
- add r0, r5, r0
- str r6, [r0, #4]
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02231308
-MOD11_02231308: ; 0x02231308
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r6, r2, #0
- cmp r4, #4
- blt _02231318
- bl ErrorHandling
-_02231318:
- lsl r0, r4, #4
- add r0, r5, r0
- str r6, [r0, #8]
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02231320
-MOD11_02231320: ; 0x02231320
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r6, r2, #0
- cmp r4, #4
- blt _02231330
- bl ErrorHandling
-_02231330:
- lsl r0, r4, #4
- add r0, r5, r0
- str r6, [r0, #0xc]
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02231338
-MOD11_02231338: ; 0x02231338
- ldr r2, _02231340 ; =0x000023F9
- strb r1, [r0, r2]
- bx lr
- nop
-_02231340: .word 0x000023F9
-
- thumb_func_start MOD11_02231344
-MOD11_02231344: ; 0x02231344
- ldr r2, _0223134C ; =0x000023F0
- str r1, [r0, r2]
- bx lr
- nop
-_0223134C: .word 0x000023F0
-
- thumb_func_start MOD11_02231350
-MOD11_02231350: ; 0x02231350
- ldr r2, _02231358 ; =0x000023F4
- str r1, [r0, r2]
- bx lr
- nop
-_02231358: .word 0x000023F4
-
- thumb_func_start MOD11_0223135C
-MOD11_0223135C: ; 0x0223135C
- ldr r2, _02231364 ; =0x000023F0
- ldr r0, [r0, r2]
- strb r1, [r0]
- bx lr
- .align 2, 0
-_02231364: .word 0x000023F0
-
- thumb_func_start MOD11_02231368
-MOD11_02231368: ; 0x02231368
- ldr r2, _02231370 ; =0x000023F4
- ldr r0, [r0, r2]
- strb r1, [r0]
- bx lr
- .align 2, 0
-_02231370: .word 0x000023F4
-
- thumb_func_start MOD11_02231374
-MOD11_02231374: ; 0x02231374
- ldr r2, _0223137C ; =0x000023FA
- strb r1, [r0, r2]
- bx lr
- nop
-_0223137C: .word 0x000023FA
-
- thumb_func_start MOD11_02231380
-MOD11_02231380: ; 0x02231380
- lsl r1, r1, #2
- add r0, r0, r1
- ldr r3, _0223138C ; =MOD11_02253A70
- ldr r0, [r0, #0x34]
- bx r3
- nop
-_0223138C: .word MOD11_02253A70
-
- thumb_func_start MOD11_02231390
-MOD11_02231390: ; 0x02231390
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- ldr r0, [r6, #0x44]
- mov r7, #0
- cmp r0, #0
- ble _022313DC
- add r5, r6, #0
-_0223139E:
- ldr r0, [r5, #0x34]
- bl MOD11_02253A70
- add r4, r0, #0
- str r6, [r4, #0xc]
- ldr r0, [r5, #0x34]
- bl MOD11_02253A4C
- str r0, [sp]
- add r0, r6, #0
- bl MOD11_0222FF74
- add r1, r0, #0
- ldr r0, [sp]
- bl MOD11_02257F6C
- add r1, r4, #0
- add r1, #0x25
- strb r0, [r1]
- add r0, r4, #0
- bl MOD11_02256FB0
- add r0, r4, #0
- mov r1, #0
- bl MOD11_022572AC
- ldr r0, [r6, #0x44]
- add r7, r7, #1
- add r5, r5, #4
- cmp r7, r0
- blt _0223139E
-_022313DC:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022313E0
-MOD11_022313E0: ; 0x022313E0
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- ldr r0, [r6, #0x44]
- mov r4, #0
- cmp r0, #0
- ble _0223140C
- add r5, r6, #0
- mov r7, #1
-_022313F0:
- ldr r0, [r5, #0x34]
- bl MOD11_02253A70
- ldr r1, [r0, #0x28]
- cmp r1, #0
- beq _02231402
- add r1, r7, #0
- bl MOD11_022572AC
-_02231402:
- ldr r0, [r6, #0x44]
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, r0
- blt _022313F0
-_0223140C:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02231410
-MOD11_02231410: ; 0x02231410
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- ldr r0, [r6, #0x44]
- mov r4, #0
- cmp r0, #0
- ble _02231436
- add r5, r6, #0
- add r7, r4, #0
-_02231420:
- ldr r0, [r5, #0x34]
- bl MOD11_02253A70
- add r1, r7, #0
- bl MOD11_022572AC
- ldr r0, [r6, #0x44]
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, r0
- blt _02231420
-_02231436:
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02231438
-MOD11_02231438: ; 0x02231438
- push {r4, r5, r6, lr}
- add r6, r0, #0
- ldr r0, [r6, #0x44]
- mov r4, #0
- cmp r0, #0
- ble _0223145A
- add r5, r6, #0
-_02231446:
- ldr r0, [r5, #0x34]
- bl MOD11_02253A70
- bl MOD11_02257030
- ldr r0, [r6, #0x44]
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, r0
- blt _02231446
-_0223145A:
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0223145C
-MOD11_0223145C: ; 0x0223145C
- ldr r1, _02231464 ; =0x0000241C
- ldrb r0, [r0, r1]
- bx lr
- nop
-_02231464: .word 0x0000241C
-
- thumb_func_start MOD11_02231468
-MOD11_02231468: ; 0x02231468
- ldr r2, _02231470 ; =0x0000241C
- strb r1, [r0, r2]
- bx lr
- nop
-_02231470: .word 0x0000241C
-
- thumb_func_start MOD11_02231474
-MOD11_02231474: ; 0x02231474
- ldr r1, _02231480 ; =0x000023FB
- ldrb r0, [r0, r1]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x1e
- bx lr
- nop
-_02231480: .word 0x000023FB
-
- thumb_func_start MOD11_02231484
-MOD11_02231484: ; 0x02231484
- push {r3, r4}
- ldr r3, _0223149C ; =0x000023FB
- lsl r1, r1, #0x1e
- ldrb r4, [r0, r3]
- mov r2, #0x18
- lsr r1, r1, #0x1b
- bic r4, r2
- orr r1, r4
- strb r1, [r0, r3]
- pop {r3, r4}
- bx lr
- nop
-_0223149C: .word 0x000023FB
-
- thumb_func_start MOD11_022314A0
-MOD11_022314A0: ; 0x022314A0
- ldr r1, _022314AC ; =0x000023FB
- ldrb r0, [r0, r1]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1d
- bx lr
- nop
-_022314AC: .word 0x000023FB
-
- thumb_func_start MOD11_022314B0
-MOD11_022314B0: ; 0x022314B0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- cmp r4, #0xf
- blo _022314BE
- bl ErrorHandling
-_022314BE:
- ldr r1, _022314D0 ; =0x000023FB
- mov r0, #0xe0
- ldrb r2, [r5, r1]
- bic r2, r0
- lsl r0, r4, #0x1d
- lsr r0, r0, #0x18
- orr r0, r2
- strb r0, [r5, r1]
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022314D0: .word 0x000023FB
-
- thumb_func_start MOD11_022314D4
-MOD11_022314D4: ; 0x022314D4
- ldr r2, _022314DC ; =0x00002438
- str r1, [r0, r2]
- bx lr
- nop
-_022314DC: .word 0x00002438
-
- thumb_func_start MOD11_022314E0
-MOD11_022314E0: ; 0x022314E0
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- ldr r0, [r6, #0x44]
- add r7, r1, #0
- mov r4, #0
- cmp r0, #0
- ble _02231502
- add r5, r6, #0
-_022314F0:
- ldr r0, [r5, #0x34]
- bl MOD11_02253A4C
- strb r4, [r7, r0]
- ldr r0, [r6, #0x44]
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, r0
- blt _022314F0
-_02231502:
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02231504
-MOD11_02231504: ; 0x02231504
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r6, r1, #0
- mov r1, #0
- mov r0, #0xff
-_0223150E:
- strb r0, [r6, r1]
- add r1, r1, #1
- cmp r1, #4
- blt _0223150E
- ldr r0, [r7, #0x44]
- mov r5, #0
- cmp r0, #0
- ble _02231532
- add r4, r7, #0
-_02231520:
- ldr r0, [r4, #0x34]
- bl MOD11_02253A4C
- strb r0, [r6, r5]
- ldr r0, [r7, #0x44]
- add r5, r5, #1
- add r4, r4, #4
- cmp r5, r0
- blt _02231520
-_02231532:
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02231534
-MOD11_02231534: ; 0x02231534
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- mov r0, #0
- add r6, r1, #0
- add r5, r0, #0
-_0223153E:
- add r0, r0, #1
- stmia r1!, {r5}
- cmp r0, #4
- blt _0223153E
- ldr r0, [r7, #0x44]
- cmp r0, #0
- ble _02231560
- add r4, r7, #0
-_0223154E:
- ldr r0, [r4, #0x34]
- bl MOD11_02253A64
- stmia r6!, {r0}
- ldr r0, [r7, #0x44]
- add r5, r5, #1
- add r4, r4, #4
- cmp r5, r0
- blt _0223154E
-_02231560:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02231564
-MOD11_02231564: ; 0x02231564
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- ldr r0, [r6, #0x44]
- add r7, r1, #0
- mov r4, #0
- cmp r0, #0
- ble _0223158A
- add r5, r6, #0
-_02231574:
- ldr r0, [r5, #0x34]
- bl MOD11_02253A70
- add r1, r7, #0
- bl MOD11_02257264
- ldr r0, [r6, #0x44]
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, r0
- blt _02231574
-_0223158A:
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0223158C
-MOD11_0223158C: ; 0x0223158C
- push {r4, r5, r6, lr}
- add r6, r1, #0
- add r5, r0, #0
- add r0, r6, #0
- bl FUN_020239F4
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- add r0, r5, #0
- bl FUN_02069AEC
- ldr r1, _022315BC ; =0x0225DC1C
- lsl r0, r0, #2
- ldrb r1, [r1, r4]
- add r4, r1, #0
- mul r4, r0
- add r0, r6, #0
- bl FUN_02023A10
- cmp r4, r0
- bls _022315B8
- add r4, r0, #0
-_022315B8:
- add r0, r4, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-_022315BC: .word 0x0225DC1C
-
- thumb_func_start MOD11_022315C0
-MOD11_022315C0: ; 0x022315C0
- push {r4, r5, r6, lr}
- add r6, r1, #0
- add r5, r0, #0
- lsl r0, r6, #2
- add r0, r5, r0
- ldr r0, [r0, #0x34]
- bl MOD11_02253A4C
- add r4, r0, #0
- ldr r1, [r5, #0x30]
- add r0, r5, #0
- mov r2, #2
- add r3, r6, #0
- bl MOD11_0224C474
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02230014
- add r6, r0, #0
- ldr r0, [r5, #0x2c]
- mov r1, #0x84
- tst r1, r0
- bne _02231606
- mov r1, #1
- tst r1, r4
- bne _022315FE
- sub r0, #0x4a
- cmp r0, #1
- bhi _02231606
-_022315FE:
- ldr r0, [r5, #0x60]
- add r1, r6, #0
- bl FUN_0202498C
-_02231606:
- mov r0, #1
- tst r0, r4
- bne _02231626
- add r0, r6, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonData
- mov r1, #0x67
- lsl r1, r1, #2
- cmp r0, r1
- bne _02231626
- ldr r0, [r5, #0x60]
- add r1, r6, #0
- bl FUN_02024AF0
-_02231626:
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02231628
-MOD11_02231628: ; 0x02231628
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x34]
- bl MOD11_02253A4C
- ldr r2, [r5, #0x2c]
- mov r1, #0x84
- tst r1, r2
- bne _02231664
- mov r1, #1
- tst r0, r1
- beq _02231664
- ldr r1, [r5, #0x30]
- add r0, r5, #0
- mov r2, #2
- add r3, r4, #0
- bl MOD11_0224C474
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02230014
- add r1, r0, #0
- ldr r0, [r5, #0x60]
- bl FUN_02024AF0
-_02231664:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02231668
-MOD11_02231668: ; 0x02231668
- ldr r3, _02231674 ; =FUN_02024594
- lsl r1, r1, #0x10
- ldr r0, [r0, #0x60]
- lsr r1, r1, #0x10
- bx r3
- nop
-_02231674: .word FUN_02024594
-
- thumb_func_start MOD11_02231678
-MOD11_02231678: ; 0x02231678
- ldr r0, _02231680 ; =0x04000050
- mov r1, #0
- strh r1, [r0]
- bx lr
- .align 2, 0
-_02231680: .word 0x04000050
-
- thumb_func_start MOD11_02231684
-MOD11_02231684: ; 0x02231684
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r4, r1, #0
- add r5, r0, #0
- mov r1, #0
- str r2, [sp, #0xc]
- add r7, r3, #0
- bl MOD11_0222FF6C
- add r6, r0, #0
- ldr r1, [r5, #0x2c]
- mov r0, #0x80
- tst r0, r1
- beq _0223174C
- ldr r0, _02231780 ; =0x00002710
- cmp r4, r0
- bne _022316F6
- cmp r7, #0x64
- bne _022316BC
- ldr r0, [sp, #0xc]
- mov r1, #0x34
- add r5, #0xd0
- mul r1, r0
- add r0, r5, r1
- mov r1, #5
- bl FUN_020137D4
- b _022316CC
-_022316BC:
- ldr r0, [sp, #0xc]
- mov r1, #0x34
- add r5, #0xd8
- mul r1, r0
- add r0, r5, r1
- mov r1, #5
- bl FUN_020137D4
-_022316CC:
- add r4, r0, #0
- add r0, r6, #0
- mov r1, #0xff
- bl FUN_02019620
- mov r3, #0
- ldr r0, [sp, #0x28]
- str r3, [sp]
- str r0, [sp, #4]
- ldr r0, _02231784 ; =MOD11_0223220C
- mov r1, #1
- str r0, [sp, #8]
- add r0, r6, #0
- add r2, r4, #0
- bl FUN_0201BD84
- add r5, r0, #0
- add r0, r4, #0
- bl FUN_02021A20
- b _02231778
-_022316F6:
- cmp r7, #0x64
- bne _02231702
- lsl r0, r4, #1
- add r0, r4, r0
- add r4, r0, #1
- b _02231708
-_02231702:
- lsl r0, r4, #1
- add r0, r4, r0
- add r4, r0, #2
-_02231708:
- ldr r2, _02231788 ; =0x0000022B
- mov r0, #0
- mov r1, #0x1a
- mov r3, #5
- bl NewMsgDataFromNarc
- add r1, r4, #0
- add r7, r0, #0
- bl FUN_0200A914
- add r4, r0, #0
- add r0, r6, #0
- mov r1, #0xff
- bl FUN_02019620
- mov r3, #0
- ldr r0, [sp, #0x28]
- str r3, [sp]
- str r0, [sp, #4]
- ldr r0, _02231784 ; =MOD11_0223220C
- mov r1, #1
- str r0, [sp, #8]
- add r0, r6, #0
- add r2, r4, #0
- bl FUN_0201BD84
- add r5, r0, #0
- add r0, r4, #0
- bl FUN_02021A20
- add r0, r7, #0
- bl DestroyMsgData
- b _02231778
-_0223174C:
- ldr r2, [r5, #0x18]
- add r0, r4, #0
- add r1, r7, #0
- mov r3, #5
- bl FUN_0206AD4C
- add r0, r6, #0
- mov r1, #0xff
- bl FUN_02019620
- mov r3, #0
- ldr r0, [sp, #0x28]
- str r3, [sp]
- str r0, [sp, #4]
- ldr r0, _02231784 ; =MOD11_0223220C
- mov r1, #1
- str r0, [sp, #8]
- ldr r2, [r5, #0x18]
- add r0, r6, #0
- bl FUN_0201BD84
- add r5, r0, #0
-_02231778:
- lsl r0, r5, #0x18
- lsr r0, r0, #0x18
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02231780: .word 0x00002710
-_02231784: .word MOD11_0223220C
-_02231788: .word 0x0000022B
-
- thumb_func_start MOD11_0223178C
-MOD11_0223178C: ; 0x0223178C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- str r1, [sp, #0xc]
- add r5, r0, #0
- add r4, r2, #0
- mov r1, #0
- add r6, r3, #0
- bl MOD11_0222FF6C
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02231850
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02231A4C
- ldr r1, [sp, #0xc]
- add r0, r5, #0
- add r2, r4, #0
- bl MOD11_022321EC
- add r0, r7, #0
- mov r1, #0xff
- bl FUN_02019620
- mov r3, #0
- str r3, [sp]
- ldr r0, _022317DC ; =MOD11_0223220C
- str r6, [sp, #4]
- str r0, [sp, #8]
- ldr r2, [r5, #0x18]
- add r0, r7, #0
- mov r1, #1
- bl FUN_0201BD84
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022317DC: .word MOD11_0223220C
-
- thumb_func_start MOD11_022317E0
-MOD11_022317E0: ; 0x022317E0
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r7, r3, #0
- add r4, r1, #0
- add r5, r0, #0
- add r1, r7, #0
- add r6, r2, #0
- bl MOD11_02231850
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_02231A4C
- add r0, r5, #0
- add r1, r6, #0
- add r2, r7, #0
- bl MOD11_022321EC
- ldr r1, [sp, #0x28]
- mov r0, #1
- tst r0, r1
- beq _02231814
- add r0, r4, #0
- mov r1, #0xff
- bl FUN_02019620
-_02231814:
- ldr r1, [sp, #0x28]
- mov r0, #2
- tst r0, r1
- beq _0223182C
- mov r0, #0
- ldr r1, [r5, #0x18]
- add r2, r0, #0
- bl FUN_02002E14
- ldr r1, [sp, #0x2c]
- sub r3, r1, r0
- b _0223182E
-_0223182C:
- mov r3, #0
-_0223182E:
- ldr r0, [sp, #0x24]
- mov r1, #0
- str r0, [sp]
- ldr r0, [sp, #0x30]
- str r0, [sp, #4]
- ldr r0, _0223184C ; =MOD11_0223220C
- str r0, [sp, #8]
- add r0, r4, #0
- ldr r4, [sp, #0x20]
- ldr r2, [r5, #0x18]
- add r3, r4, r3
- bl FUN_0201BD84
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0223184C: .word MOD11_0223220C
-
- thumb_func_start MOD11_02231850
-MOD11_02231850: ; 0x02231850
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r6, r0, #0
- bl MOD11_0222FF74
- add r5, r0, #0
- ldrb r0, [r4, #1]
- mov r1, #0x80
- tst r1, r0
- bne _02231876
- mov r1, #0x40
- tst r1, r0
- beq _02231880
- ldr r1, [r4, #0x20]
- add r0, r6, #0
- bl MOD11_02230270
- cmp r0, #0
- bne _02231878
-_02231876:
- b _02231A4A
-_02231878:
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_02231880:
- mov r1, #0x3f
- and r0, r1
- cmp r0, #0x3c
- bls _0223188A
- b _02231A46
-_0223188A:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02231896: ; jump table
- .short _02231A4A - _02231896 - 2 ; case 0
- .short _02231910 - _02231896 - 2 ; case 1
- .short _02231928 - _02231896 - 2 ; case 2
- .short _02231A4A - _02231896 - 2 ; case 3
- .short _02231A4A - _02231896 - 2 ; case 4
- .short _02231A4A - _02231896 - 2 ; case 5
- .short _02231A4A - _02231896 - 2 ; case 6
- .short _02231A4A - _02231896 - 2 ; case 7
- .short _02231A4A - _02231896 - 2 ; case 8
- .short _0223198A - _02231896 - 2 ; case 9
- .short _02231928 - _02231896 - 2 ; case 10
- .short _02231928 - _02231896 - 2 ; case 11
- .short _02231928 - _02231896 - 2 ; case 12
- .short _02231928 - _02231896 - 2 ; case 13
- .short _02231928 - _02231896 - 2 ; case 14
- .short _02231928 - _02231896 - 2 ; case 15
- .short _02231928 - _02231896 - 2 ; case 16
- .short _02231928 - _02231896 - 2 ; case 17
- .short _02231928 - _02231896 - 2 ; case 18
- .short _02231928 - _02231896 - 2 ; case 19
- .short _0223194E - _02231896 - 2 ; case 20
- .short _02231966 - _02231896 - 2 ; case 21
- .short _02231A4A - _02231896 - 2 ; case 22
- .short _02231966 - _02231896 - 2 ; case 23
- .short _02231A4A - _02231896 - 2 ; case 24
- .short _02231A4A - _02231896 - 2 ; case 25
- .short _02231A4A - _02231896 - 2 ; case 26
- .short _02231A4A - _02231896 - 2 ; case 27
- .short _02231A4A - _02231896 - 2 ; case 28
- .short _02231A4A - _02231896 - 2 ; case 29
- .short _02231A4A - _02231896 - 2 ; case 30
- .short _0223198A - _02231896 - 2 ; case 31
- .short _0223198A - _02231896 - 2 ; case 32
- .short _0223198A - _02231896 - 2 ; case 33
- .short _02231928 - _02231896 - 2 ; case 34
- .short _02231928 - _02231896 - 2 ; case 35
- .short _022319E8 - _02231896 - 2 ; case 36
- .short _02231928 - _02231896 - 2 ; case 37
- .short _02231928 - _02231896 - 2 ; case 38
- .short _02231928 - _02231896 - 2 ; case 39
- .short _02231928 - _02231896 - 2 ; case 40
- .short _02231928 - _02231896 - 2 ; case 41
- .short _02231928 - _02231896 - 2 ; case 42
- .short _022319E8 - _02231896 - 2 ; case 43
- .short _02231928 - _02231896 - 2 ; case 44
- .short _02231928 - _02231896 - 2 ; case 45
- .short _02231928 - _02231896 - 2 ; case 46
- .short _02231928 - _02231896 - 2 ; case 47
- .short _02231966 - _02231896 - 2 ; case 48
- .short _02231A4A - _02231896 - 2 ; case 49
- .short _02231A4A - _02231896 - 2 ; case 50
- .short _02231A4A - _02231896 - 2 ; case 51
- .short _022319E8 - _02231896 - 2 ; case 52
- .short _022319E8 - _02231896 - 2 ; case 53
- .short _022319E8 - _02231896 - 2 ; case 54
- .short _022319E8 - _02231896 - 2 ; case 55
- .short _02231A4A - _02231896 - 2 ; case 56
- .short _02231A4A - _02231896 - 2 ; case 57
- .short _02231A4A - _02231896 - 2 ; case 58
- .short _02231A4A - _02231896 - 2 ; case 59
- .short _02231A4A - _02231896 - 2 ; case 60
-_02231910:
- ldr r1, [r4, #4]
- add r0, r6, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02230270
- cmp r0, #0
- beq _02231944
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_02231928:
- ldr r1, [r4, #4]
- add r0, r6, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02230270
- cmp r0, #0
- beq _02231944
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- mov r0, #1
- tst r0, r5
- bne _02231946
-_02231944:
- b _02231A4A
-_02231946:
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_0223194E:
- ldr r1, [r4, #8]
- add r0, r6, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02230270
- cmp r0, #0
- beq _02231A4A
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_02231966:
- ldr r1, [r4, #8]
- add r0, r6, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02230270
- cmp r0, #0
- beq _02231A4A
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- mov r0, #1
- tst r0, r5
- beq _02231A4A
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_0223198A:
- ldr r1, [r4, #4]
- add r0, r6, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02230270
- cmp r0, #0
- beq _022319C4
- ldrh r0, [r4, #2]
- add r0, r0, #3
- strh r0, [r4, #2]
- mov r0, #1
- tst r0, r5
- beq _022319AC
- ldrh r0, [r4, #2]
- add r0, r0, #2
- strh r0, [r4, #2]
-_022319AC:
- ldr r1, [r4, #8]
- add r0, r6, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02230270
- cmp r0, #0
- beq _02231A4A
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_022319C4:
- ldr r1, [r4, #8]
- add r0, r6, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02230270
- cmp r0, #0
- beq _02231A4A
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- mov r0, #1
- tst r0, r5
- beq _02231A4A
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_022319E8:
- ldr r1, [r4, #4]
- add r0, r6, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02230270
- cmp r0, #0
- beq _02231A22
- ldrh r0, [r4, #2]
- add r0, r0, #3
- strh r0, [r4, #2]
- mov r0, #1
- tst r0, r5
- beq _02231A0A
- ldrh r0, [r4, #2]
- add r0, r0, #2
- strh r0, [r4, #2]
-_02231A0A:
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02230270
- cmp r0, #0
- beq _02231A4A
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_02231A22:
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02230270
- cmp r0, #0
- beq _02231A4A
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- mov r0, #1
- tst r0, r5
- beq _02231A4A
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_02231A46:
- bl ErrorHandling
-_02231A4A:
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02231A4C
-MOD11_02231A4C: ; 0x02231A4C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r2, [r4, #1]
- mov r1, #0x3f
- add r5, r0, #0
- and r1, r2
- cmp r1, #0x3c
- bls _02231A5E
- b _022320C2
-_02231A5E:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02231A6A: ; jump table
- .short _022320C6 - _02231A6A - 2 ; case 0
- .short _022320C6 - _02231A6A - 2 ; case 1
- .short _02231AE4 - _02231A6A - 2 ; case 2
- .short _02231AEE - _02231A6A - 2 ; case 3
- .short _02231AF8 - _02231A6A - 2 ; case 4
- .short _02231B02 - _02231A6A - 2 ; case 5
- .short _02231B0C - _02231A6A - 2 ; case 6
- .short _02231B16 - _02231A6A - 2 ; case 7
- .short _02231B22 - _02231A6A - 2 ; case 8
- .short _02231B2C - _02231A6A - 2 ; case 9
- .short _02231B40 - _02231A6A - 2 ; case 10
- .short _02231B54 - _02231A6A - 2 ; case 11
- .short _02231B68 - _02231A6A - 2 ; case 12
- .short _02231B7C - _02231A6A - 2 ; case 13
- .short _02231B90 - _02231A6A - 2 ; case 14
- .short _02231BA4 - _02231A6A - 2 ; case 15
- .short _02231BB8 - _02231A6A - 2 ; case 16
- .short _02231BCC - _02231A6A - 2 ; case 17
- .short _02231BE0 - _02231A6A - 2 ; case 18
- .short _02231BF4 - _02231A6A - 2 ; case 19
- .short _02231AEE - _02231A6A - 2 ; case 20
- .short _02231C08 - _02231A6A - 2 ; case 21
- .short _02231C1C - _02231A6A - 2 ; case 22
- .short _02231C30 - _02231A6A - 2 ; case 23
- .short _02231C44 - _02231A6A - 2 ; case 24
- .short _02231C58 - _02231A6A - 2 ; case 25
- .short _02231C6C - _02231A6A - 2 ; case 26
- .short _02231C80 - _02231A6A - 2 ; case 27
- .short _02231C94 - _02231A6A - 2 ; case 28
- .short _02231CA8 - _02231A6A - 2 ; case 29
- .short _02231CBC - _02231A6A - 2 ; case 30
- .short _02231CD0 - _02231A6A - 2 ; case 31
- .short _02231CEE - _02231A6A - 2 ; case 32
- .short _02231D0C - _02231A6A - 2 ; case 33
- .short _02231D2A - _02231A6A - 2 ; case 34
- .short _02231D48 - _02231A6A - 2 ; case 35
- .short _02231D66 - _02231A6A - 2 ; case 36
- .short _02231D84 - _02231A6A - 2 ; case 37
- .short _02231DA2 - _02231A6A - 2 ; case 38
- .short _02231DC0 - _02231A6A - 2 ; case 39
- .short _02231DDE - _02231A6A - 2 ; case 40
- .short _02231DFC - _02231A6A - 2 ; case 41
- .short _02231E1A - _02231A6A - 2 ; case 42
- .short _02231E38 - _02231A6A - 2 ; case 43
- .short _02231E56 - _02231A6A - 2 ; case 44
- .short _02231E74 - _02231A6A - 2 ; case 45
- .short _02231E92 - _02231A6A - 2 ; case 46
- .short _02231EB0 - _02231A6A - 2 ; case 47
- .short _02231ECE - _02231A6A - 2 ; case 48
- .short _02231EEC - _02231A6A - 2 ; case 49
- .short _02231F0A - _02231A6A - 2 ; case 50
- .short _02231F28 - _02231A6A - 2 ; case 51
- .short _02231F46 - _02231A6A - 2 ; case 52
- .short _02231F6E - _02231A6A - 2 ; case 53
- .short _02231F96 - _02231A6A - 2 ; case 54
- .short _02231FBE - _02231A6A - 2 ; case 55
- .short _02231FE6 - _02231A6A - 2 ; case 56
- .short _0223200E - _02231A6A - 2 ; case 57
- .short _02232036 - _02231A6A - 2 ; case 58
- .short _0223205E - _02231A6A - 2 ; case 59
- .short _02232086 - _02231A6A - 2 ; case 60
-_02231AE4:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_02231AEE:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320EC
- pop {r3, r4, r5, pc}
-_02231AF8:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_02232160
- pop {r3, r4, r5, pc}
-_02231B02:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320F8
- pop {r3, r4, r5, pc}
-_02231B0C:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_02232104
- pop {r3, r4, r5, pc}
-_02231B16:
- ldr r2, [r4, #4]
- ldr r3, [r4, #0x1c]
- mov r1, #0
- bl MOD11_0223211C
- pop {r3, r4, r5, pc}
-_02231B22:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321C4
- pop {r3, r4, r5, pc}
-_02231B2C:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_02231B40:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320EC
- pop {r3, r4, r5, pc}
-_02231B54:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- pop {r3, r4, r5, pc}
-_02231B68:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232160
- pop {r3, r4, r5, pc}
-_02231B7C:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232148
- pop {r3, r4, r5, pc}
-_02231B90:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232178
- pop {r3, r4, r5, pc}
-_02231BA4:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320F8
- pop {r3, r4, r5, pc}
-_02231BB8:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223219C
- pop {r3, r4, r5, pc}
-_02231BCC:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232104
- pop {r3, r4, r5, pc}
-_02231BE0:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321C4
- pop {r3, r4, r5, pc}
-_02231BF4:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321DC
- pop {r3, r4, r5, pc}
-_02231C08:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320EC
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_02231C1C:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320EC
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320EC
- pop {r3, r4, r5, pc}
-_02231C30:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_02232154
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_02231C44:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320F8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320EC
- pop {r3, r4, r5, pc}
-_02231C58:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_02232104
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232104
- pop {r3, r4, r5, pc}
-_02231C6C:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321C4
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321C4
- pop {r3, r4, r5, pc}
-_02231C80:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321C4
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_02231C94:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321C4
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320F8
- pop {r3, r4, r5, pc}
-_02231CA8:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321C4
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232104
- pop {r3, r4, r5, pc}
-_02231CBC:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321AC
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321C4
- pop {r3, r4, r5, pc}
-_02231CD0:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320C8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320EC
- pop {r3, r4, r5, pc}
-_02231CEE:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320C8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_02232154
- pop {r3, r4, r5, pc}
-_02231D0C:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320C8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320F8
- pop {r3, r4, r5, pc}
-_02231D2A:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320EC
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320EC
- pop {r3, r4, r5, pc}
-_02231D48:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320EC
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_02232104
- pop {r3, r4, r5, pc}
-_02231D66:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_02231D84:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320EC
- pop {r3, r4, r5, pc}
-_02231DA2:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320F8
- pop {r3, r4, r5, pc}
-_02231DC0:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_02232160
- pop {r3, r4, r5, pc}
-_02231DDE:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_02232148
- pop {r3, r4, r5, pc}
-_02231DFC:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_0223216C
- pop {r3, r4, r5, pc}
-_02231E1A:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_02232104
- pop {r3, r4, r5, pc}
-_02231E38:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320F8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_02231E56:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320F8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320EC
- pop {r3, r4, r5, pc}
-_02231E74:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320F8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_02232160
- pop {r3, r4, r5, pc}
-_02231E92:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320F8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_0223216C
- pop {r3, r4, r5, pc}
-_02231EB0:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321DC
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022321DC
- pop {r3, r4, r5, pc}
-_02231ECE:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320F8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320C8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022321A0
- pop {r3, r4, r5, pc}
-_02231EEC:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321C4
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320C8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_02231F0A:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321AC
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321C4
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_02231F28:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321AC
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321C4
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320F8
- pop {r3, r4, r5, pc}
-_02231F46:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- ldr r2, [r4, #0x10]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_022320EC
- pop {r3, r4, r5, pc}
-_02231F6E:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- ldr r2, [r4, #0x10]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_02232154
- pop {r3, r4, r5, pc}
-_02231F96:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- ldr r2, [r4, #0x10]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_02232160
- pop {r3, r4, r5, pc}
-_02231FBE:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320F8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- ldr r2, [r4, #0x10]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_022320F8
- pop {r3, r4, r5, pc}
-_02231FE6:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321C4
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320C8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022321C4
- ldr r2, [r4, #0x10]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_0223200E:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321AC
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321C4
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- ldr r2, [r4, #0x10]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_02232036:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321AC
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321C4
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- ldr r2, [r4, #0x10]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_022321C4
- pop {r3, r4, r5, pc}
-_0223205E:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321AC
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321C4
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022321AC
- ldr r2, [r4, #0x10]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_022321C4
- pop {r3, r4, r5, pc}
-_02232086:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321AC
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321C4
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- ldr r2, [r4, #0x10]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_022321AC
- ldr r2, [r4, #0x14]
- add r0, r5, #0
- mov r1, #4
- bl MOD11_022321C4
- ldr r2, [r4, #0x18]
- add r0, r5, #0
- mov r1, #5
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_022320C2:
- bl ErrorHandling
-_022320C6:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022320C8
-MOD11_022320C8: ; 0x022320C8
- push {r3, r4, r5, lr}
- mov r3, #0xff
- lsl r3, r3, #8
- add r4, r1, #0
- lsl r1, r2, #0x18
- and r2, r3
- add r5, r0, #0
- lsr r1, r1, #0x18
- asr r2, r2, #8
- bl MOD11_02230014
- add r2, r0, #0
- ldr r0, [r5, #0x14]
- add r1, r4, #0
- bl FUN_0200ACF8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022320EC
-MOD11_022320EC: ; 0x022320EC
- ldr r3, _022320F4 ; =FUN_0200AD5C
- ldr r0, [r0, #0x14]
- bx r3
- nop
-_022320F4: .word FUN_0200AD5C
-
- thumb_func_start MOD11_022320F8
-MOD11_022320F8: ; 0x022320F8
- ldr r3, _02232100 ; =FUN_0200AE38
- ldr r0, [r0, #0x14]
- bx r3
- nop
-_02232100: .word FUN_0200AE38
-
- thumb_func_start MOD11_02232104
-MOD11_02232104: ; 0x02232104
- push {r3, lr}
- sub sp, #8
- mov r3, #0
- str r3, [sp]
- mov r3, #1
- str r3, [sp, #4]
- ldr r0, [r0, #0x14]
- mov r3, #5
- bl FUN_0200AD38
- add sp, #8
- pop {r3, pc}
-
- thumb_func_start MOD11_0223211C
-MOD11_0223211C: ; 0x0223211C
- push {r4, lr}
- sub sp, #8
- cmp r3, #0
- beq _02232134
- mov r4, #1
- str r4, [sp]
- str r4, [sp, #4]
- ldr r0, [r0, #0x14]
- bl FUN_0200AD38
- add sp, #8
- pop {r4, pc}
-_02232134:
- mov r3, #1
- str r3, [sp]
- str r3, [sp, #4]
- ldr r0, [r0, #0x14]
- mov r3, #5
- bl FUN_0200AD38
- add sp, #8
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02232148
-MOD11_02232148: ; 0x02232148
- ldr r3, _02232150 ; =FUN_0200AF18
- ldr r0, [r0, #0x14]
- bx r3
- nop
-_02232150: .word FUN_0200AF18
-
- thumb_func_start MOD11_02232154
-MOD11_02232154: ; 0x02232154
- ldr r3, _0223215C ; =FUN_0200ADCC
- ldr r0, [r0, #0x14]
- bx r3
- nop
-_0223215C: .word FUN_0200ADCC
-
- thumb_func_start MOD11_02232160
-MOD11_02232160: ; 0x02232160
- ldr r3, _02232168 ; =FUN_0200AF50
- ldr r0, [r0, #0x14]
- bx r3
- nop
-_02232168: .word FUN_0200AF50
-
- thumb_func_start MOD11_0223216C
-MOD11_0223216C: ; 0x0223216C
- ldr r3, _02232174 ; =FUN_0200AF88
- ldr r0, [r0, #0x14]
- bx r3
- nop
-_02232174: .word FUN_0200AF88
-
- thumb_func_start MOD11_02232178
-MOD11_02232178: ; 0x02232178
- push {r3, r4, r5, lr}
- mov r3, #0xff
- lsl r3, r3, #8
- add r4, r1, #0
- lsl r1, r2, #0x18
- and r2, r3
- add r5, r0, #0
- lsr r1, r1, #0x18
- asr r2, r2, #8
- bl MOD11_02230014
- add r2, r0, #0
- ldr r0, [r5, #0x14]
- add r1, r4, #0
- bl FUN_0200AC60
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223219C
-MOD11_0223219C: ; 0x0223219C
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_022321A0
-MOD11_022321A0: ; 0x022321A0
- ldr r3, _022321A8 ; =FUN_0200AFBC
- ldr r0, [r0, #0x14]
- bx r3
- nop
-_022321A8: .word FUN_0200AFBC
-
- thumb_func_start MOD11_022321AC
-MOD11_022321AC: ; 0x022321AC
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r1, r2, #0
- bl MOD11_02230188
- add r2, r0, #0
- ldr r0, [r5, #0x14]
- add r1, r4, #0
- bl FUN_0200B0D4
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022321C4
-MOD11_022321C4: ; 0x022321C4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r1, r2, #0
- bl MOD11_02230188
- add r2, r0, #0
- ldr r0, [r5, #0x14]
- add r1, r4, #0
- bl FUN_0200B144
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022321DC
-MOD11_022321DC: ; 0x022321DC
- push {r4, lr}
- add r4, r0, #0
- add r3, r2, #0
- ldr r0, [r4, #0x14]
- ldr r2, [r4, #0x64]
- bl FUN_0200B410
- pop {r4, pc}
-
- thumb_func_start MOD11_022321EC
-MOD11_022321EC: ; 0x022321EC
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r0, r1, #0
- ldrh r1, [r2, #2]
- bl FUN_0200A914
- add r4, r0, #0
- ldr r0, [r5, #0x14]
- ldr r1, [r5, #0x18]
- add r2, r4, #0
- bl FUN_0200B7B8
- add r0, r4, #0
- bl FUN_02021A20
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0223220C
-MOD11_0223220C: ; 0x0223220C
- push {r4, lr}
- mov r4, #0
- cmp r1, #5
- bhi _02232252
- add r0, r1, r1
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02232220: ; jump table
- .short _02232252 - _02232220 - 2 ; case 0
- .short _0223222C - _02232220 - 2 ; case 1
- .short _02232234 - _02232220 - 2 ; case 2
- .short _0223223C - _02232220 - 2 ; case 3
- .short _02232244 - _02232220 - 2 ; case 4
- .short _0223224C - _02232220 - 2 ; case 5
-_0223222C:
- bl FUN_02005514
- add r4, r0, #0
- b _02232252
-_02232234:
- bl FUN_02005CBC
- add r4, r0, #0
- b _02232252
-_0223223C:
- ldr r0, _02232258 ; =0x00000484
- bl FUN_02005C28
- b _02232252
-_02232244:
- ldr r0, _0223225C ; =0x000005E6
- bl FUN_020054C8
- b _02232252
-_0223224C:
- ldr r0, _02232260 ; =0x00000483
- bl FUN_02005C28
-_02232252:
- add r0, r4, #0
- pop {r4, pc}
- nop
-_02232258: .word 0x00000484
-_0223225C: .word 0x000005E6
-_02232260: .word 0x00000483
-
- thumb_func_start MOD11_02232264
-MOD11_02232264: ; 0x02232264
- push {r3, lr}
- add r2, r1, #0
- add r2, #0xb4
- ldr r2, [r2]
- lsl r2, r2, #2
- add r3, r1, r2
- mov r2, #0x27
- lsl r2, r2, #8
- ldr r2, [r3, r2]
- lsl r3, r2, #2
- ldr r2, _02232280 ; =0x0225DDE4
- ldr r2, [r2, r3]
- blx r2
- pop {r3, pc}
- .align 2, 0
-_02232280: .word 0x0225DDE4
-
- thumb_func_start MOD11_02232284
-MOD11_02232284: ; 0x02232284
- push {r4, lr}
- add r4, r0, #0
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- mov r1, #0
- bl MOD11_022548F0
- mov r0, #0
- pop {r4, pc}
-
- thumb_func_start MOD11_0223229C
-MOD11_0223229C: ; 0x0223229C
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- cmp r0, #0
- beq _022322C2
- cmp r0, #3
- beq _0223230E
- cmp r0, #4
- beq _022322E0
-_022322C2:
- mov r5, #0
- cmp r6, #0
- ble _0223230E
-_022322C8:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02254908
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022315C0
- add r5, r5, #1
- cmp r5, r6
- blt _022322C8
- b _0223230E
-_022322E0:
- mov r5, #0
- cmp r6, #0
- ble _0223230E
- mov r7, #1
-_022322E8:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _02232314 ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- beq _02232308
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02254908
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022315C0
-_02232308:
- add r5, r5, #1
- cmp r5, r6
- blt _022322E8
-_0223230E:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02232314: .word 0x00000195
-
- thumb_func_start MOD11_02232318
-MOD11_02232318: ; 0x02232318
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r7, r0, #0
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- cmp r0, #6
- bhi _02232350
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02232342: ; jump table
- .short _02232350 - _02232342 - 2 ; case 0
- .short _022323F4 - _02232342 - 2 ; case 1
- .short _0223243E - _02232342 - 2 ; case 2
- .short _0223236E - _02232342 - 2 ; case 3
- .short _022323B2 - _02232342 - 2 ; case 4
- .short _02232350 - _02232342 - 2 ; case 5
- .short _02232488 - _02232342 - 2 ; case 6
-_02232350:
- mov r5, #0
- cmp r7, #0
- ble _0223236C
-_02232356:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02254A0C
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022315C0
- add r5, r5, #1
- cmp r5, r7
- blt _02232356
-_0223236C:
- b _022324D0
-_0223236E:
- mov r5, #0
- cmp r7, #0
- ble _0223239C
-_02232374:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _022324D4 ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- bne _02232396
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02254A0C
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022315C0
-_02232396:
- add r5, r5, #1
- cmp r5, r7
- blt _02232374
-_0223239C:
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #1
- bl MOD11_022448CC
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #3
- bl MOD11_022448CC
- b _022324D0
-_022323B2:
- mov r5, #0
- cmp r7, #0
- ble _022323F2
-_022323B8:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _022324D4 ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- beq _022323EC
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_022448BC
- add r0, r4, #0
- add r1, r6, #0
- add r2, r5, #0
- bl MOD11_022448CC
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02254A0C
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022315C0
-_022323EC:
- add r5, r5, #1
- cmp r5, r7
- blt _022323B8
-_022323F2:
- b _022324D0
-_022323F4:
- ldr r1, [r6, #0x64]
- add r0, r4, #0
- bl MOD11_0222FF7C
- ldr r1, _022324D4 ; =0x00000195
- mov r2, #1
- ldrb r0, [r0, r1]
- tst r0, r2
- bne _0223241A
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #3
- bl MOD11_022448CC
- b _0223242C
-_0223241A:
- ldr r1, [r6, #0x64]
- add r0, r6, #0
- bl MOD11_022448BC
- ldr r2, [r6, #0x64]
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
-_0223242C:
- ldr r1, [r6, #0x64]
- add r0, r4, #0
- bl MOD11_022315C0
- ldr r1, [r6, #0x64]
- add r0, r4, #0
- bl MOD11_02254A0C
- b _022324D0
-_0223243E:
- ldr r1, [r6, #0x6c]
- add r0, r4, #0
- bl MOD11_0222FF7C
- ldr r1, _022324D4 ; =0x00000195
- mov r2, #1
- ldrb r0, [r0, r1]
- tst r0, r2
- bne _02232464
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #3
- bl MOD11_022448CC
- b _02232476
-_02232464:
- ldr r1, [r6, #0x6c]
- add r0, r6, #0
- bl MOD11_022448BC
- ldr r2, [r6, #0x6c]
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
-_02232476:
- ldr r1, [r6, #0x6c]
- add r0, r4, #0
- bl MOD11_022315C0
- ldr r1, [r6, #0x6c]
- add r0, r4, #0
- bl MOD11_02254A0C
- b _022324D0
-_02232488:
- ldr r1, [r6, #0x78]
- add r0, r4, #0
- bl MOD11_0222FF7C
- ldr r1, _022324D4 ; =0x00000195
- mov r2, #1
- ldrb r0, [r0, r1]
- tst r0, r2
- bne _022324AE
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #3
- bl MOD11_022448CC
- b _022324C0
-_022324AE:
- ldr r1, [r6, #0x78]
- add r0, r6, #0
- bl MOD11_022448BC
- ldr r2, [r6, #0x78]
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
-_022324C0:
- ldr r1, [r6, #0x78]
- add r0, r4, #0
- bl MOD11_022315C0
- ldr r1, [r6, #0x78]
- add r0, r4, #0
- bl MOD11_02254A0C
-_022324D0:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022324D4: .word 0x00000195
-
- thumb_func_start MOD11_022324D8
-MOD11_022324D8: ; 0x022324D8
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r7, r0, #0
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- cmp r0, #6
- bhi _02232510
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02232502: ; jump table
- .short _02232510 - _02232502 - 2 ; case 0
- .short _022325C2 - _02232502 - 2 ; case 1
- .short _02232610 - _02232502 - 2 ; case 2
- .short _02232534 - _02232502 - 2 ; case 3
- .short _0223257C - _02232502 - 2 ; case 4
- .short _02232510 - _02232502 - 2 ; case 5
- .short _0223265E - _02232502 - 2 ; case 6
-_02232510:
- mov r5, #0
- cmp r7, #0
- ble _02232532
- add r6, r5, #0
-_02232518:
- add r0, r4, #0
- add r1, r5, #0
- add r2, r6, #0
- add r3, r6, #0
- bl MOD11_02254B40
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022315C0
- add r5, r5, #1
- cmp r5, r7
- blt _02232518
-_02232532:
- b _022326AA
-_02232534:
- mov r5, #0
- cmp r7, #0
- ble _02232566
-_0223253A:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _022326B0 ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- bne _02232560
- mov r2, #0
- add r0, r4, #0
- add r1, r5, #0
- add r3, r2, #0
- bl MOD11_02254B40
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022315C0
-_02232560:
- add r5, r5, #1
- cmp r5, r7
- blt _0223253A
-_02232566:
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #1
- bl MOD11_022448CC
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #3
- bl MOD11_022448CC
- b _022326AA
-_0223257C:
- mov r5, #0
- cmp r7, #0
- ble _022325C0
-_02232582:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _022326B0 ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- beq _022325BA
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_022448BC
- add r0, r4, #0
- add r1, r6, #0
- add r2, r5, #0
- bl MOD11_022448CC
- mov r2, #0
- add r0, r4, #0
- add r1, r5, #0
- add r3, r2, #0
- bl MOD11_02254B40
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022315C0
-_022325BA:
- add r5, r5, #1
- cmp r5, r7
- blt _02232582
-_022325C0:
- b _022326AA
-_022325C2:
- ldr r1, [r6, #0x64]
- add r0, r4, #0
- bl MOD11_0222FF7C
- ldr r1, _022326B0 ; =0x00000195
- mov r2, #1
- ldrb r0, [r0, r1]
- tst r0, r2
- bne _022325E8
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #3
- bl MOD11_022448CC
- b _022325FA
-_022325E8:
- ldr r1, [r6, #0x64]
- add r0, r6, #0
- bl MOD11_022448BC
- ldr r2, [r6, #0x64]
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
-_022325FA:
- ldr r1, [r6, #0x64]
- add r0, r4, #0
- bl MOD11_022315C0
- mov r2, #0
- ldr r1, [r6, #0x64]
- add r0, r4, #0
- add r3, r2, #0
- bl MOD11_02254B40
- b _022326AA
-_02232610:
- ldr r1, [r6, #0x6c]
- add r0, r4, #0
- bl MOD11_0222FF7C
- ldr r1, _022326B0 ; =0x00000195
- mov r2, #1
- ldrb r0, [r0, r1]
- tst r0, r2
- bne _02232636
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #3
- bl MOD11_022448CC
- b _02232648
-_02232636:
- ldr r1, [r6, #0x6c]
- add r0, r6, #0
- bl MOD11_022448BC
- ldr r2, [r6, #0x6c]
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
-_02232648:
- ldr r1, [r6, #0x6c]
- add r0, r4, #0
- bl MOD11_022315C0
- mov r2, #0
- ldr r1, [r6, #0x6c]
- add r0, r4, #0
- add r3, r2, #0
- bl MOD11_02254B40
- b _022326AA
-_0223265E:
- ldr r1, [r6, #0x78]
- add r0, r4, #0
- bl MOD11_0222FF7C
- ldr r1, _022326B0 ; =0x00000195
- mov r2, #1
- ldrb r0, [r0, r1]
- tst r0, r2
- bne _02232684
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #3
- bl MOD11_022448CC
- b _02232696
-_02232684:
- ldr r1, [r6, #0x78]
- add r0, r6, #0
- bl MOD11_022448BC
- ldr r2, [r6, #0x78]
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
-_02232696:
- ldr r1, [r6, #0x78]
- add r0, r4, #0
- bl MOD11_022315C0
- mov r2, #0
- ldr r1, [r6, #0x78]
- add r0, r4, #0
- add r3, r2, #0
- bl MOD11_02254B40
-_022326AA:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022326B0: .word 0x00000195
-
- thumb_func_start MOD11_022326B4
-MOD11_022326B4: ; 0x022326B4
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r5, r0, #0
- bl MOD11_0222FF84
- add r7, r0, #0
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- add r2, r0, #0
- beq _022326DC
- cmp r2, #3
- beq _022326F4
- cmp r2, #4
- beq _0223271E
- b _02232756
-_022326DC:
- mov r4, #0
- cmp r7, #0
- ble _02232768
-_022326E2:
- add r0, r5, #0
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_02254D50
- add r4, r4, #1
- cmp r4, r7
- blt _022326E2
- b _02232768
-_022326F4:
- mov r4, #0
- cmp r7, #0
- ble _02232768
-_022326FA:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0222FF7C
- ldr r1, _0223276C ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- bne _02232716
- add r0, r5, #0
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_02254D50
-_02232716:
- add r4, r4, #1
- cmp r4, r7
- blt _022326FA
- b _02232768
-_0223271E:
- mov r4, #0
- cmp r7, #0
- ble _02232768
-_02232724:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0222FF7C
- ldr r1, _0223276C ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- beq _0223274E
- add r0, r4, #0
- bl MaskOfFlagNo
- ldr r1, _02232770 ; =0x00003108
- ldrb r1, [r6, r1]
- tst r0, r1
- bne _0223274E
- add r0, r5, #0
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_02254D50
-_0223274E:
- add r4, r4, #1
- cmp r4, r7
- blt _02232724
- b _02232768
-_02232756:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02254D50
-_02232768:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0223276C: .word 0x00000195
-_02232770: .word 0x00003108
-
- thumb_func_start MOD11_02232774
-MOD11_02232774: ; 0x02232774
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r5, #0
- bl MOD11_02254F60
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022327A0
-MOD11_022327A0: ; 0x022327A0
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- cmp r0, #0
- beq _022327C6
- cmp r0, #3
- beq _0223282A
- cmp r0, #4
- beq _0223286A
-_022327C6:
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #0x10
- tst r0, r1
- beq _022327F8
- mov r5, #0
- cmp r6, #0
- ble _022328B4
- ldr r7, _022328B8 ; =0x00000195
-_022327DA:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldrb r0, [r0, r7]
- cmp r0, #4
- beq _022327F0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02254F7C
-_022327F0:
- add r5, r5, #1
- cmp r5, r6
- blt _022327DA
- b _022328B4
-_022327F8:
- mov r5, #0
- cmp r6, #0
- ble _022328B4
- mov r7, #8
-_02232800:
- add r0, r4, #0
- bl MOD11_0222FF74
- tst r0, r7
- bne _0223281A
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _0223281A
- cmp r5, #1
- bgt _022328B4
-_0223281A:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02254F7C
- add r5, r5, #1
- cmp r5, r6
- blt _02232800
- b _022328B4
-_0223282A:
- mov r5, #0
- cmp r6, #0
- ble _022328B4
- mov r7, #1
-_02232832:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _022328B8 ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- bne _02232862
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02254F7C
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _02232862
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _022328B4
-_02232862:
- add r5, r5, #1
- cmp r5, r6
- blt _02232832
- b _022328B4
-_0223286A:
- mov r5, #0
- cmp r6, #0
- ble _022328B4
- mov r7, #1
-_02232872:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _022328B8 ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- beq _022328AE
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02254F7C
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _022328AE
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #0x10
- tst r0, r1
- bne _022328AE
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _022328B4
-_022328AE:
- add r5, r5, #1
- cmp r5, r6
- blt _02232872
-_022328B4:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022328B8: .word 0x00000195
-
- thumb_func_start MOD11_022328BC
-MOD11_022328BC: ; 0x022328BC
- push {r3, r4, r5, r6, r7, lr}
- add r7, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r6, r0, #0
- add r0, r7, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r7, #0
- bl MOD11_0223A404
- add r5, r0, #0
- add r0, r7, #0
- bl MOD11_0223A404
- add r7, r0, #0
- cmp r5, #0
- beq _022328EC
- cmp r5, #3
- beq _02232920
- cmp r5, #4
- beq _02232962
-_022328EC:
- mov r5, #0
- cmp r6, #0
- ble _022329AE
-_022328F2:
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _0223290E
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _0223290E
- cmp r5, #1
- bgt _022329AE
-_0223290E:
- add r0, r4, #0
- add r1, r5, #0
- add r2, r7, #0
- bl MOD11_02254FAC
- add r5, r5, #1
- cmp r5, r6
- blt _022328F2
- b _022329AE
-_02232920:
- mov r5, #0
- cmp r6, #0
- ble _022329AE
-_02232926:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _022329B4 ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- bne _0223295A
- add r0, r4, #0
- add r1, r5, #0
- add r2, r7, #0
- bl MOD11_02254FAC
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _0223295A
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _022329AE
-_0223295A:
- add r5, r5, #1
- cmp r5, r6
- blt _02232926
- b _022329AE
-_02232962:
- mov r5, #0
- cmp r6, #0
- ble _022329AE
-_02232968:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _022329B4 ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- beq _022329A8
- add r0, r4, #0
- add r1, r5, #0
- add r2, r7, #0
- bl MOD11_02254FAC
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _022329A8
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #0x10
- tst r0, r1
- bne _022329A8
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _022329AE
-_022329A8:
- add r5, r5, #1
- cmp r5, r6
- blt _02232968
-_022329AE:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022329B4: .word 0x00000195
-
- thumb_func_start MOD11_022329B8
-MOD11_022329B8: ; 0x022329B8
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r5, r0, #0
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- cmp r0, #0xc
- bhi _022329FC
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022329E2: ; jump table
- .short _022329FC - _022329E2 - 2 ; case 0
- .short _022329FC - _022329E2 - 2 ; case 1
- .short _022329FC - _022329E2 - 2 ; case 2
- .short _02232A2E - _022329E2 - 2 ; case 3
- .short _02232A6E - _022329E2 - 2 ; case 4
- .short _022329FC - _022329E2 - 2 ; case 5
- .short _022329FC - _022329E2 - 2 ; case 6
- .short _022329FC - _022329E2 - 2 ; case 7
- .short _022329FC - _022329E2 - 2 ; case 8
- .short _02232ABA - _022329E2 - 2 ; case 9
- .short _02232AE6 - _022329E2 - 2 ; case 10
- .short _02232B12 - _022329E2 - 2 ; case 11
- .short _02232B3A - _022329E2 - 2 ; case 12
-_022329FC:
- mov r6, #0
- cmp r5, #0
- ble _02232A2C
- mov r7, #8
-_02232A04:
- add r0, r4, #0
- bl MOD11_0222FF74
- tst r0, r7
- bne _02232A1E
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _02232A1E
- cmp r6, #1
- bgt _02232A2C
-_02232A1E:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02254FE4
- add r6, r6, #1
- cmp r6, r5
- blt _02232A04
-_02232A2C:
- b _02232B60
-_02232A2E:
- mov r6, #0
- cmp r5, #0
- ble _02232A6C
- mov r7, #1
-_02232A36:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldr r1, _02232B64 ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- bne _02232A66
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02254FE4
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _02232A66
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _02232B60
-_02232A66:
- add r6, r6, #1
- cmp r6, r5
- blt _02232A36
-_02232A6C:
- b _02232B60
-_02232A6E:
- mov r6, #0
- cmp r5, #0
- ble _02232B60
- mov r7, #1
-_02232A76:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldr r1, _02232B64 ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- beq _02232AB2
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02254FE4
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _02232AB2
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #0x10
- tst r0, r1
- bne _02232AB2
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _02232B60
-_02232AB2:
- add r6, r6, #1
- cmp r6, r5
- blt _02232A76
- b _02232B60
-_02232ABA:
- mov r6, #0
- cmp r5, #0
- ble _02232B60
- ldr r7, _02232B64 ; =0x00000195
-_02232AC2:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldrb r0, [r0, r7]
- cmp r0, #0
- beq _02232AD4
- cmp r0, #2
- bne _02232ADE
-_02232AD4:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02254FE4
- b _02232B60
-_02232ADE:
- add r6, r6, #1
- cmp r6, r5
- blt _02232AC2
- b _02232B60
-_02232AE6:
- mov r6, #0
- cmp r5, #0
- ble _02232B60
- ldr r7, _02232B64 ; =0x00000195
-_02232AEE:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldrb r0, [r0, r7]
- cmp r0, #1
- beq _02232B00
- cmp r0, #3
- bne _02232B0A
-_02232B00:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02254FE4
- b _02232B60
-_02232B0A:
- add r6, r6, #1
- cmp r6, r5
- blt _02232AEE
- b _02232B60
-_02232B12:
- mov r6, #0
- cmp r5, #0
- ble _02232B60
- ldr r7, _02232B64 ; =0x00000195
-_02232B1A:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldrb r0, [r0, r7]
- cmp r0, #4
- bne _02232B32
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02254FE4
- b _02232B60
-_02232B32:
- add r6, r6, #1
- cmp r6, r5
- blt _02232B1A
- b _02232B60
-_02232B3A:
- mov r6, #0
- cmp r5, #0
- ble _02232B60
- ldr r7, _02232B64 ; =0x00000195
-_02232B42:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldrb r0, [r0, r7]
- cmp r0, #5
- bne _02232B5A
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02254FE4
- b _02232B60
-_02232B5A:
- add r6, r6, #1
- cmp r6, r5
- blt _02232B42
-_02232B60:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02232B64: .word 0x00000195
-
- thumb_func_start MOD11_02232B68
-MOD11_02232B68: ; 0x02232B68
- push {r3, r4, r5, r6, r7, lr}
- add r7, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r5, r0, #0
- add r0, r7, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r7, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r7, #0
- bl MOD11_0223A404
- add r7, r0, #0
- cmp r6, #0xc
- bhi _02232BB6
- add r0, r6, r6
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02232B9C: ; jump table
- .short _02232BB6 - _02232B9C - 2 ; case 0
- .short _02232BB6 - _02232B9C - 2 ; case 1
- .short _02232BB6 - _02232B9C - 2 ; case 2
- .short _02232BDE - _02232B9C - 2 ; case 3
- .short _02232C14 - _02232B9C - 2 ; case 4
- .short _02232BB6 - _02232B9C - 2 ; case 5
- .short _02232BB6 - _02232B9C - 2 ; case 6
- .short _02232BB6 - _02232B9C - 2 ; case 7
- .short _02232BB6 - _02232B9C - 2 ; case 8
- .short _02232C4A - _02232B9C - 2 ; case 9
- .short _02232C78 - _02232B9C - 2 ; case 10
- .short _02232CA6 - _02232B9C - 2 ; case 11
- .short _02232CD0 - _02232B9C - 2 ; case 12
-_02232BB6:
- mov r6, #0
- cmp r5, #0
- ble _02232BDC
-_02232BBC:
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _02232BCC
- cmp r6, #1
- bgt _02232BDC
-_02232BCC:
- add r0, r4, #0
- add r1, r6, #0
- add r2, r7, #0
- bl MOD11_02255000
- add r6, r6, #1
- cmp r6, r5
- blt _02232BBC
-_02232BDC:
- b _02232CF8
-_02232BDE:
- mov r6, #0
- cmp r5, #0
- ble _02232C12
-_02232BE4:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldr r1, _02232CFC ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- bne _02232C0C
- add r0, r4, #0
- add r1, r6, #0
- add r2, r7, #0
- bl MOD11_02255000
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _02232CF8
-_02232C0C:
- add r6, r6, #1
- cmp r6, r5
- blt _02232BE4
-_02232C12:
- b _02232CF8
-_02232C14:
- mov r6, #0
- cmp r5, #0
- ble _02232CF8
-_02232C1A:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldr r1, _02232CFC ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- beq _02232C42
- add r0, r4, #0
- add r1, r6, #0
- add r2, r7, #0
- bl MOD11_02255000
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _02232CF8
-_02232C42:
- add r6, r6, #1
- cmp r6, r5
- blt _02232C1A
- b _02232CF8
-_02232C4A:
- mov r6, #0
- cmp r5, #0
- ble _02232CF8
-_02232C50:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldr r1, _02232CFC ; =0x00000195
- ldrb r0, [r0, r1]
- cmp r0, #0
- beq _02232C64
- cmp r0, #2
- bne _02232C70
-_02232C64:
- add r0, r4, #0
- add r1, r6, #0
- add r2, r7, #0
- bl MOD11_02255000
- b _02232CF8
-_02232C70:
- add r6, r6, #1
- cmp r6, r5
- blt _02232C50
- b _02232CF8
-_02232C78:
- mov r6, #0
- cmp r5, #0
- ble _02232CF8
-_02232C7E:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldr r1, _02232CFC ; =0x00000195
- ldrb r0, [r0, r1]
- cmp r0, #1
- beq _02232C92
- cmp r0, #3
- bne _02232C9E
-_02232C92:
- add r0, r4, #0
- add r1, r6, #0
- add r2, r7, #0
- bl MOD11_02255000
- b _02232CF8
-_02232C9E:
- add r6, r6, #1
- cmp r6, r5
- blt _02232C7E
- b _02232CF8
-_02232CA6:
- mov r6, #0
- cmp r5, #0
- ble _02232CF8
-_02232CAC:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldr r1, _02232CFC ; =0x00000195
- ldrb r0, [r0, r1]
- cmp r0, #4
- bne _02232CC8
- add r0, r4, #0
- add r1, r6, #0
- add r2, r7, #0
- bl MOD11_02255000
- b _02232CF8
-_02232CC8:
- add r6, r6, #1
- cmp r6, r5
- blt _02232CAC
- b _02232CF8
-_02232CD0:
- mov r6, #0
- cmp r5, #0
- ble _02232CF8
-_02232CD6:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldr r1, _02232CFC ; =0x00000195
- ldrb r0, [r0, r1]
- cmp r0, #5
- bne _02232CF2
- add r0, r4, #0
- add r1, r6, #0
- add r2, r7, #0
- bl MOD11_02255000
- b _02232CF8
-_02232CF2:
- add r6, r6, #1
- cmp r6, r5
- blt _02232CD6
-_02232CF8:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02232CFC: .word 0x00000195
-
- thumb_func_start MOD11_02232D00
-MOD11_02232D00: ; 0x02232D00
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r6, r0, #0
- bl MOD11_0222FF84
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- mov r4, #0
- cmp r5, #0
- ble _02232D28
-_02232D1A:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0225624C
- add r4, r4, #1
- cmp r4, r5
- blt _02232D1A
-_02232D28:
- mov r0, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02232D2C
-MOD11_02232D2C: ; 0x02232D2C
- push {r3, r4, r5, r6, r7, lr}
- add r7, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r6, r0, #0
- add r0, r7, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r7, #0
- bl MOD11_0223A404
- add r2, r0, #0
- beq _02232D54
- cmp r2, #3
- beq _02232D6E
- cmp r2, #4
- beq _02232D9A
- b _02232DC6
-_02232D54:
- mov r5, #0
- cmp r6, #0
- ble _02232DDA
-_02232D5A:
- add r0, r4, #0
- add r1, r7, #0
- add r2, r5, #0
- mov r3, #0
- bl MOD11_02255034
- add r5, r5, #1
- cmp r5, r6
- blt _02232D5A
- b _02232DDA
-_02232D6E:
- mov r5, #0
- cmp r6, #0
- ble _02232DDA
-_02232D74:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _02232DE0 ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- bne _02232D92
- add r0, r4, #0
- add r1, r7, #0
- add r2, r5, #0
- mov r3, #0
- bl MOD11_02255034
-_02232D92:
- add r5, r5, #1
- cmp r5, r6
- blt _02232D74
- b _02232DDA
-_02232D9A:
- mov r5, #0
- cmp r6, #0
- ble _02232DDA
-_02232DA0:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _02232DE0 ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- beq _02232DBE
- add r0, r4, #0
- add r1, r7, #0
- add r2, r5, #0
- mov r3, #0
- bl MOD11_02255034
-_02232DBE:
- add r5, r5, #1
- cmp r5, r6
- blt _02232DA0
- b _02232DDA
-_02232DC6:
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r4, #0
- add r1, r7, #0
- mov r3, #0
- bl MOD11_02255034
-_02232DDA:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02232DE0: .word 0x00000195
-
- thumb_func_start MOD11_02232DE4
-MOD11_02232DE4: ; 0x02232DE4
- push {r3, r4, r5, r6, r7, lr}
- str r1, [sp]
- add r5, r0, #0
- bl MOD11_0222FF84
- add r7, r0, #0
- ldr r0, [sp]
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, [sp]
- bl MOD11_0223A404
- add r2, r0, #0
- ldr r4, _02232EA4 ; =0x00000000
- beq _02232E0E
- cmp r2, #3
- beq _02232E28
- cmp r2, #4
- beq _02232E5A
- b _02232E8C
-_02232E0E:
- cmp r7, #0
- ble _02232EA0
- add r6, r4, #0
-_02232E14:
- ldr r1, [sp]
- add r0, r5, #0
- add r2, r4, #0
- add r3, r6, #0
- bl MOD11_02255034
- add r4, r4, #1
- cmp r4, r7
- blt _02232E14
- b _02232EA0
-_02232E28:
- add r6, r4, #0
- cmp r7, #0
- ble _02232EA0
-_02232E2E:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldr r1, _02232EA8 ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- bne _02232E52
- ldr r1, [sp]
- add r0, r5, #0
- add r2, r6, #0
- add r3, r4, #0
- bl MOD11_02255034
- add r0, r4, #4
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
-_02232E52:
- add r6, r6, #1
- cmp r6, r7
- blt _02232E2E
- b _02232EA0
-_02232E5A:
- add r6, r4, #0
- cmp r7, #0
- ble _02232EA0
-_02232E60:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldr r1, _02232EA8 ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- beq _02232E84
- ldr r1, [sp]
- add r0, r5, #0
- add r2, r6, #0
- add r3, r4, #0
- bl MOD11_02255034
- add r0, r4, #4
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
-_02232E84:
- add r6, r6, #1
- cmp r6, r7
- blt _02232E60
- b _02232EA0
-_02232E8C:
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD11_0223C230
- add r2, r0, #0
- ldr r1, [sp]
- add r0, r5, #0
- add r3, r4, #0
- bl MOD11_02255034
-_02232EA0:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02232EA4: .word 0x00000000
-_02232EA8: .word 0x00000195
-
- thumb_func_start MOD11_02232EAC
-MOD11_02232EAC: ; 0x02232EAC
- push {r3, r4, r5, r6, r7, lr}
- add r7, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r6, r0, #0
- add r0, r7, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r7, #0
- bl MOD11_0223A404
- add r2, r0, #0
- beq _02232ED4
- cmp r2, #3
- beq _02232EEA
- cmp r2, #4
- beq _02232F20
- b _02232F48
-_02232ED4:
- mov r5, #0
- cmp r6, #0
- ble _02232F58
-_02232EDA:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0225516C
- add r5, r5, #1
- cmp r5, r6
- blt _02232EDA
- b _02232F58
-_02232EEA:
- mov r5, #0
- cmp r6, #0
- ble _02232F58
-_02232EF0:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _02232F5C ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- bne _02232F18
- add r0, r5, #0
- bl MaskOfFlagNo
- ldr r1, _02232F60 ; =0x00003108
- ldrb r1, [r7, r1]
- tst r0, r1
- bne _02232F18
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0225516C
-_02232F18:
- add r5, r5, #1
- cmp r5, r6
- blt _02232EF0
- b _02232F58
-_02232F20:
- mov r5, #0
- cmp r6, #0
- ble _02232F58
- mov r7, #1
-_02232F28:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _02232F5C ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- beq _02232F40
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0225516C
-_02232F40:
- add r5, r5, #1
- cmp r5, r6
- blt _02232F28
- b _02232F58
-_02232F48:
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_0225516C
-_02232F58:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02232F5C: .word 0x00000195
-_02232F60: .word 0x00003108
-
- thumb_func_start MOD11_02232F64
-MOD11_02232F64: ; 0x02232F64
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- bl MOD11_02243388
- cmp r0, #0
- beq _02232F7C
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- b _02232F82
-_02232F7C:
- add r0, r4, #0
- bl MOD11_022433DC
-_02232F82:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02232F88
-MOD11_02232F88: ; 0x02232F88
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r5, r1, #0
- ldr r1, [r5, #0x64]
- add r7, r0, #0
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x60
- bne _02232FA0
- mov r4, #0
- b _02232FB4
-_02232FA0:
- ldr r0, _022330D4 ; =0x00002160
- ldr r4, [r5, r0]
- cmp r4, #0
- bne _02232FB4
- ldr r0, _022330D8 ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _022330DC ; =0x000003E2
- ldrb r4, [r1, r0]
-_02232FB4:
- ldr r0, [r5, #0x6c]
- str r0, [sp, #0x18]
- ldr r1, [sp, #0x18]
- add r0, r7, #0
- bl MOD11_02230270
- mov r3, #6
- lsl r3, r3, #6
- add r6, r0, #0
- ldr r0, [r5, r3]
- ldr r1, _022330E0 ; =0x00002154
- str r0, [sp]
- ldr r0, [r5, r1]
- ldr r2, _022330D8 ; =0x00003044
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #4]
- lsl r0, r4, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #8]
- ldr r0, [r5, #0x64]
- lsl r4, r6, #2
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x18]
- add r4, r5, r4
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x10]
- sub r0, r1, #4
- ldr r0, [r5, r0]
- add r3, #0x3c
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x14]
- ldr r2, [r5, r2]
- ldr r3, [r4, r3]
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_0224B310
- ldr r1, _022330E4 ; =0x00002144
- str r0, [r5, r1]
- add r0, r1, #0
- add r0, #0xc
- ldr r2, [r5, r1]
- ldr r0, [r5, r0]
- mul r0, r2
- str r0, [r5, r1]
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02249D90
- cmp r0, #0x61
- bne _02233040
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- mov r2, #0
- bl MOD11_02249DA4
- ldr r1, _022330E4 ; =0x00002144
- add r0, #0x64
- ldr r1, [r5, r1]
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- ldr r1, _022330E4 ; =0x00002144
- str r0, [r5, r1]
-_02233040:
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02249D90
- cmp r0, #0x68
- bne _0223306E
- ldr r0, _022330E4 ; =0x00002144
- ldr r2, [r5, #0x64]
- ldr r1, [r5, r0]
- mov r0, #0xc0
- mul r0, r2
- add r2, r5, r0
- ldr r0, _022330E8 ; =0x00002DCC
- ldr r0, [r2, r0]
- lsl r0, r0, #5
- lsr r0, r0, #0x1c
- add r0, #0xa
- mul r0, r1
- mov r1, #0xa
- bl _u32_div_f
- ldr r1, _022330E4 ; =0x00002144
- str r0, [r5, r1]
-_0223306E:
- ldr r2, [r5, #0x64]
- mov r1, #0xc0
- add r0, r2, #0
- mul r0, r1
- ldr r2, _022330E8 ; =0x00002DCC
- add r3, r5, r0
- ldr r3, [r3, r2]
- lsl r3, r3, #1
- lsr r3, r3, #0x1f
- beq _022330CE
- add r2, #0x10
- add r3, r5, r2
- add r1, #0xb4
- ldr r2, [r5, r1]
- ldr r1, [r3, r0]
- cmp r2, r1
- bne _02233094
- sub r1, r1, #1
- str r1, [r3, r0]
-_02233094:
- ldr r2, [r5, #0x64]
- mov r1, #0xc0
- add r0, r2, #0
- mul r0, r1
- add r1, #0xb4
- ldr r3, [r5, r1]
- ldr r1, _022330EC ; =0x00002DDC
- add r2, r5, r0
- ldr r2, [r2, r1]
- sub r2, r3, r2
- cmp r2, #2
- bge _022330C2
- ldr r0, _022330E4 ; =0x00002144
- ldr r1, [r5, r0]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- ldr r1, _022330E4 ; =0x00002144
- add sp, #0x1c
- str r0, [r5, r1]
- pop {r4, r5, r6, r7, pc}
-_022330C2:
- sub r1, #0x10
- add r3, r5, r1
- ldr r2, [r3, r0]
- ldr r1, _022330F0 ; =0xBFFFFFFF
- and r1, r2
- str r1, [r3, r0]
-_022330CE:
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- nop
-_022330D4: .word 0x00002160
-_022330D8: .word 0x00003044
-_022330DC: .word 0x000003E2
-_022330E0: .word 0x00002154
-_022330E4: .word 0x00002144
-_022330E8: .word 0x00002DCC
-_022330EC: .word 0x00002DDC
-_022330F0: .word 0xBFFFFFFF
-
- thumb_func_start MOD11_022330F4
-MOD11_022330F4: ; 0x022330F4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02232F88
- ldr r1, _02233128 ; =0x00002144
- add r0, r4, #0
- ldr r1, [r4, r1]
- bl MOD11_0224BF10
- ldr r1, _02233128 ; =0x00002144
- str r0, [r4, r1]
- mov r0, #0
- ldr r2, [r4, r1]
- mvn r0, r0
- mul r0, r2
- str r0, [r4, r1]
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02233128: .word 0x00002144
-
- thumb_func_start MOD11_0223312C
-MOD11_0223312C: ; 0x0223312C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02232F88
- ldr r1, _02233154 ; =0x00002144
- mov r0, #0
- ldr r2, [r4, r1]
- mvn r0, r0
- mul r0, r2
- str r0, [r4, r1]
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02233154: .word 0x00002144
-
- thumb_func_start MOD11_02233158
-MOD11_02233158: ; 0x02233158
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, _02233194 ; =0x0000213C
- ldr r1, [r4, r0]
- mov r0, #1
- tst r0, r1
- bne _02233178
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022559BC
-_02233178:
- ldr r1, _02233194 ; =0x0000213C
- mov r0, #1
- ldr r2, [r4, r1]
- orr r0, r2
- str r0, [r4, r1]
- add r0, r1, #4
- ldr r2, [r4, r0]
- mov r0, #4
- orr r2, r0
- add r0, r1, #4
- str r2, [r4, r0]
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02233194: .word 0x0000213C
-
- thumb_func_start MOD11_02233198
-MOD11_02233198: ; 0x02233198
- push {r4, r5, lr}
- sub sp, #0x44
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- add r1, sp, #0x24
- bl MOD11_0223C490
- add r0, r5, #0
- add r1, r4, #0
- add r2, sp, #0x24
- add r3, sp, #0
- bl MOD11_0223C55C
- add r0, r5, #0
- add r1, r4, #0
- add r2, sp, #0
- bl MOD11_022559F4
- mov r0, #0
- add sp, #0x44
- pop {r4, r5, pc}
-
- thumb_func_start MOD11_022331CC
-MOD11_022331CC: ; 0x022331CC
- push {r4, r5, lr}
- sub sp, #0x44
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- add r1, sp, #0x24
- bl MOD11_0223C490
- add r0, r5, #0
- add r1, r4, #0
- add r2, sp, #0x24
- add r3, sp, #0
- bl MOD11_0223C55C
- add r1, sp, #0
- ldrb r2, [r1, #1]
- mov r0, #0x80
- orr r0, r2
- strb r0, [r1, #1]
- add r0, r5, #0
- add r1, r4, #0
- add r2, sp, #0
- bl MOD11_022559F4
- mov r0, #0
- add sp, #0x44
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223320C
-MOD11_0223320C: ; 0x0223320C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r1, r4, #0
- add r4, #0xf4
- add r0, r5, #0
- add r2, r4, #0
- bl MOD11_022559F4
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223322C
-MOD11_0223322C: ; 0x0223322C
- push {r3, r4, r5, lr}
- sub sp, #0x20
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- add r1, sp, #0
- bl MOD11_0223C490
- add r1, r4, #0
- add r4, #0xf4
- add r0, r5, #0
- add r2, sp, #0
- add r3, r4, #0
- bl MOD11_0223C55C
- mov r0, #0
- add sp, #0x20
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02233258
-MOD11_02233258: ; 0x02233258
- push {r3, r4, r5, r6, lr}
- sub sp, #0x44
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- add r1, sp, #0x24
- bl MOD11_0223C490
- add r0, r5, #0
- add r1, r4, #0
- add r2, sp, #0x24
- add r3, sp, #0
- bl MOD11_0223C55C
- add r1, sp, #0
- ldrb r2, [r1, #1]
- mov r0, #0x40
- orr r0, r2
- strb r0, [r1, #1]
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- str r0, [sp, #0x20]
- add r0, r5, #0
- add r1, r4, #0
- add r2, sp, #0
- bl MOD11_022559F4
- mov r0, #0
- add sp, #0x44
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022332AC
-MOD11_022332AC: ; 0x022332AC
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- cmp r0, #0xff
- bne _022332CA
- mov r0, #0x49
- lsl r0, r0, #2
- b _022332CC
-_022332CA:
- ldr r0, _0223331C ; =0x00003044
-_022332CC:
- ldr r0, [r5, r0]
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- ldr r0, _02233320 ; =0x0000213C
- ldr r1, [r5, r0]
- mov r0, #1
- lsl r0, r0, #0xe
- tst r0, r1
- bne _022332E8
- add r0, r6, #0
- bl MOD11_02230E20
- cmp r0, #1
- beq _022332EC
-_022332E8:
- cmp r4, #0x90
- bne _02233302
-_022332EC:
- ldr r1, _02233320 ; =0x0000213C
- mov r0, #1
- ldr r2, [r5, r1]
- lsl r0, r0, #0xe
- orr r0, r2
- str r0, [r5, r1]
- add r0, r6, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_02255A10
-_02233302:
- add r0, r6, #0
- bl MOD11_02230E20
- cmp r0, #0
- bne _02233316
- ldr r2, _02233324 ; =0x00000123
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A43C
-_02233316:
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_0223331C: .word 0x00003044
-_02233320: .word 0x0000213C
-_02233324: .word 0x00000123
-
- thumb_func_start MOD11_02233328
-MOD11_02233328: ; 0x02233328
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp, #8]
- cmp r6, #0xff
- bne _0223335A
- mov r0, #0x49
- lsl r0, r0, #2
- b _0223335C
-_0223335A:
- ldr r0, _022333C8 ; =0x00003044
-_0223335C:
- ldr r0, [r4, r0]
- add r1, r4, #0
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r0, r5, #0
- add r2, r7, #0
- bl MOD11_0223C230
- str r0, [sp, #4]
- ldr r2, [sp, #8]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r7, r0, #0
- ldr r0, _022333CC ; =0x0000213C
- ldr r1, [r4, r0]
- mov r0, #1
- lsl r0, r0, #0xe
- tst r0, r1
- bne _02233390
- add r0, r5, #0
- bl MOD11_02230E20
- cmp r0, #1
- beq _02233394
-_02233390:
- cmp r6, #0x90
- bne _022333AE
-_02233394:
- ldr r1, _022333CC ; =0x0000213C
- mov r0, #1
- ldr r2, [r4, r1]
- lsl r0, r0, #0xe
- orr r0, r2
- str r0, [r4, r1]
- ldr r3, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- str r7, [sp]
- bl MOD11_02255A40
-_022333AE:
- add r0, r5, #0
- bl MOD11_02230E20
- cmp r0, #0
- bne _022333C2
- ldr r2, _022333D0 ; =0x00000123
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A43C
-_022333C2:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_022333C8: .word 0x00003044
-_022333CC: .word 0x0000213C
-_022333D0: .word 0x00000123
-
- thumb_func_start MOD11_022333D4
-MOD11_022333D4: ; 0x022333D4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- ldr r2, _02233404 ; =0x0000216C
- add r1, r0, #0
- ldr r2, [r4, r2]
- add r0, r5, #0
- bl MOD11_02255A70
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02233404: .word 0x0000216C
-
- thumb_func_start MOD11_02233408
-MOD11_02233408: ; 0x02233408
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- str r0, [sp]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- ldr r0, _0223349C ; =0x00002D8C
- add r7, r2, #0
- add r5, r4, r0
- mov r0, #0xc0
- mul r7, r0
- ldr r0, _022334A0 ; =0x0000215C
- ldr r6, [r5, r7]
- ldr r3, [r4, r0]
- add r1, r3, r6
- cmp r1, #0
- bgt _02233446
- neg r1, r6
- sub r0, #0x14
- str r1, [r4, r0]
- b _0223344A
-_02233446:
- sub r0, #0x14
- str r3, [r4, r0]
-_0223344A:
- ldr r0, _022334A4 ; =0x00002148
- ldr r6, [r4, r0]
- cmp r6, #0
- bge _02233460
- mov r0, #0x59
- lsl r0, r0, #2
- add r3, r4, r0
- lsl r1, r2, #2
- ldr r0, [r3, r1]
- sub r0, r0, r6
- str r0, [r3, r1]
-_02233460:
- mov r0, #0xc0
- add r3, r2, #0
- mul r3, r0
- ldr r0, _0223349C ; =0x00002D8C
- ldr r6, _022334A0 ; =0x0000215C
- add r1, r4, r0
- ldr r0, [r1, r3]
- ldr r6, [r4, r6]
- add r0, r0, r6
- str r0, [r1, r3]
- ldr r1, [r1, r3]
- cmp r1, #0
- bge _02233480
- mov r0, #0
- str r0, [r5, r7]
- b _0223348E
-_02233480:
- add r0, r4, r3
- ldr r3, _0223349C ; =0x00002D8C
- add r3, r3, #4
- ldr r0, [r0, r3]
- cmp r1, r0
- bls _0223348E
- str r0, [r5, r7]
-_0223348E:
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_02245190
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223349C: .word 0x00002D8C
-_022334A0: .word 0x0000215C
-_022334A4: .word 0x00002148
-
- thumb_func_start MOD11_022334A8
-MOD11_022334A8: ; 0x022334A8
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02255A8C
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022334D4
-MOD11_022334D4: ; 0x022334D4
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0223C230
- add r4, r0, #0
- mov r1, #0xc0
- mul r1, r4
- add r2, r5, r1
- ldr r1, _02233530 ; =0x00002D8C
- ldr r1, [r2, r1]
- cmp r1, #0
- bne _0223352A
- str r4, [r5, #0x74]
- bl MaskOfFlagNo
- ldr r1, _02233534 ; =0x0000213C
- lsl r0, r0, #0x18
- ldr r2, [r5, r1]
- orr r0, r2
- str r0, [r5, r1]
- mov r0, #0x55
- lsl r0, r0, #2
- add r2, r5, r0
- lsl r1, r4, #2
- ldr r0, [r2, r1]
- add r0, r0, #1
- str r0, [r2, r1]
- add r0, r6, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0223D0EC
-_0223352A:
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_02233530: .word 0x00002D8C
-_02233534: .word 0x0000213C
-
- thumb_func_start MOD11_02233538
-MOD11_02233538: ; 0x02233538
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r2, [r4, #0x74]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02255BEC
- ldr r0, [r4, #0x74]
- bl MaskOfFlagNo
- ldr r2, _02233594 ; =0x0000213C
- lsl r3, r0, #0x18
- mov r0, #0
- mvn r0, r0
- ldr r1, [r4, r2]
- eor r0, r3
- and r0, r1
- str r0, [r4, r2]
- ldr r0, [r4, #0x74]
- bl MaskOfFlagNo
- mov r1, #0x85
- lsl r1, r1, #6
- ldr r2, [r4, r1]
- lsl r0, r0, #0x1c
- orr r0, r2
- str r0, [r4, r1]
- ldr r0, [r4, #0x74]
- mov r2, #0x27
- lsl r0, r0, #4
- add r0, r4, r0
- add r1, #0x68
- str r2, [r0, r1]
- ldr r2, [r4, #0x74]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02245A10
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02233594: .word 0x0000213C
-
- thumb_func_start MOD11_02233598
-MOD11_02233598: ; 0x02233598
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r6, #0
- bl MOD11_0222FF74
- mov r1, #4
- tst r0, r1
- bne _022335D2
- ldr r0, _022335FC ; =0x021C48B8
- ldr r1, [r0, #0x48]
- ldr r0, _02233600 ; =0x00000C03
- tst r0, r1
- bne _022335CC
- bl FUN_02020AA4
- cmp r0, #0
- beq _022335D2
-_022335CC:
- add r0, r5, #0
- add r0, #0xf0
- str r4, [r0]
-_022335D2:
- add r0, r5, #0
- add r0, #0xf0
- ldr r0, [r0]
- cmp r4, r0
- beq _022335F0
- mov r1, #1
- add r0, r5, #0
- mvn r1, r1
- bl MOD11_0223A424
- add r0, r5, #0
- add r0, #0xf0
- ldr r0, [r0]
- add r0, r0, #1
- b _022335F2
-_022335F0:
- mov r0, #0
-_022335F2:
- add r5, #0xf0
- str r0, [r5]
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_022335FC: .word 0x021C48B8
-_02233600: .word 0x00000C03
-
- thumb_func_start MOD11_02233604
-MOD11_02233604: ; 0x02233604
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r3, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD11_02255D00
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0223363C
-MOD11_0223363C: ; 0x0223363C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r6, r1, #0
- str r0, [sp]
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r6, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r6, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r6, #0
- bl MOD11_0223A404
- add r5, r0, #0
- ldr r0, [sp]
- ldr r2, [sp, #4]
- add r1, r6, #0
- bl MOD11_0223A444
- cmp r7, #6
- bhi _022336DA
- add r1, r7, r7
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02233686: ; jump table
- .short _02233694 - _02233686 - 2 ; case 0
- .short _0223369E - _02233686 - 2 ; case 1
- .short _022336A8 - _02233686 - 2 ; case 2
- .short _022336B2 - _02233686 - 2 ; case 3
- .short _022336BC - _02233686 - 2 ; case 4
- .short _022336C6 - _02233686 - 2 ; case 5
- .short _022336D0 - _02233686 - 2 ; case 6
-_02233694:
- ldr r0, [r0]
- cmp r0, r4
- beq _022336DA
- mov r5, #0
- b _022336DA
-_0223369E:
- ldr r0, [r0]
- cmp r0, r4
- bne _022336DA
- mov r5, #0
- b _022336DA
-_022336A8:
- ldr r0, [r0]
- cmp r0, r4
- bgt _022336DA
- mov r5, #0
- b _022336DA
-_022336B2:
- ldr r0, [r0]
- cmp r0, r4
- ble _022336DA
- mov r5, #0
- b _022336DA
-_022336BC:
- ldr r0, [r0]
- tst r0, r4
- bne _022336DA
- mov r5, #0
- b _022336DA
-_022336C6:
- ldr r0, [r0]
- tst r0, r4
- beq _022336DA
- mov r5, #0
- b _022336DA
-_022336D0:
- ldr r0, [r0]
- and r0, r4
- cmp r4, r0
- beq _022336DA
- mov r5, #0
-_022336DA:
- cmp r5, #0
- beq _022336E6
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0223A424
-_022336E6:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_022336EC
-MOD11_022336EC: ; 0x022336EC
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r6, r1, #0
- str r0, [sp]
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r6, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r6, #0
- bl MOD11_0223A404
- str r0, [sp, #8]
- add r0, r6, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r6, #0
- bl MOD11_0223A404
- add r5, r0, #0
- ldr r0, [sp]
- ldr r2, [sp, #4]
- add r1, r6, #0
- bl MOD11_0223C230
- add r1, r0, #0
- ldr r2, [sp, #8]
- add r0, r6, #0
- mov r3, #0
- bl MOD11_02243420
- cmp r7, #6
- bhi _02233790
- add r1, r7, r7
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0223374A: ; jump table
- .short _02233758 - _0223374A - 2 ; case 0
- .short _02233760 - _0223374A - 2 ; case 1
- .short _02233768 - _0223374A - 2 ; case 2
- .short _02233770 - _0223374A - 2 ; case 3
- .short _02233778 - _0223374A - 2 ; case 4
- .short _02233780 - _0223374A - 2 ; case 5
- .short _02233788 - _0223374A - 2 ; case 6
-_02233758:
- cmp r0, r4
- beq _02233790
- mov r5, #0
- b _02233790
-_02233760:
- cmp r0, r4
- bne _02233790
- mov r5, #0
- b _02233790
-_02233768:
- cmp r0, r4
- bgt _02233790
- mov r5, #0
- b _02233790
-_02233770:
- cmp r0, r4
- ble _02233790
- mov r5, #0
- b _02233790
-_02233778:
- tst r0, r4
- bne _02233790
- mov r5, #0
- b _02233790
-_02233780:
- tst r0, r4
- beq _02233790
- mov r5, #0
- b _02233790
-_02233788:
- and r0, r4
- cmp r4, r0
- beq _02233790
- mov r5, #0
-_02233790:
- cmp r5, #0
- beq _0223379C
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0223A424
-_0223379C:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022337A4
-MOD11_022337A4: ; 0x022337A4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02255D20
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022337C0
-MOD11_022337C0: ; 0x022337C0
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A434
- mov r0, #0
- pop {r4, pc}
-
- thumb_func_start MOD11_022337E0
-MOD11_022337E0: ; 0x022337E0
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r2, _02233804 ; =0x00003044
- add r0, r4, #0
- ldr r2, [r4, r2]
- mov r1, #0x1e
- lsl r2, r2, #4
- add r3, r4, r2
- ldr r2, _02233808 ; =0x000003DE
- ldrh r2, [r3, r2]
- bl MOD11_0223A434
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-_02233804: .word 0x00003044
-_02233808: .word 0x000003DE
-
- thumb_func_start MOD11_0223380C
-MOD11_0223380C: ; 0x0223380C
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- ldr r2, _02233890 ; =0x0000213C
- mov r1, #1
- ldr r3, [r4, r2]
- bic r3, r1
- str r3, [r4, r2]
- ldr r3, [r4, r2]
- ldr r1, _02233894 ; =0xFFFFBFFF
- and r1, r3
- mov r3, #0x49
- lsl r3, r3, #2
- str r1, [r4, r2]
- ldr r2, [r4, r3]
- ldr r1, _02233898 ; =0x00003044
- cmp r0, #0
- str r2, [r4, r1]
- bne _02233866
- mov r0, #1
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- ldr r3, [r4, r3]
- ldr r2, [r4, #0x64]
- lsl r3, r3, #0x10
- add r0, r5, #0
- add r1, r4, #0
- lsr r3, r3, #0x10
- bl MOD11_02244C28
- str r0, [r4, #0x6c]
- ldr r1, [r4, #0x64]
- lsl r1, r1, #4
- add r2, r4, r1
- ldr r1, _0223389C ; =0x000021AC
- str r0, [r2, r1]
-_02233866:
- ldr r0, [r4, #0x6c]
- cmp r0, #0xff
- bne _0223387C
- mov r2, #0x26
- str r2, [r4, #0xc]
- add r0, r4, #0
- mov r1, #1
- add r2, #0xf3
- bl MOD11_0223A434
- b _02233888
-_0223387C:
- ldr r2, _02233898 ; =0x00003044
- add r0, r4, #0
- ldr r2, [r4, r2]
- mov r1, #0
- bl MOD11_0223A434
-_02233888:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, pc}
- nop
-_02233890: .word 0x0000213C
-_02233894: .word 0xFFFFBFFF
-_02233898: .word 0x00003044
-_0223389C: .word 0x000021AC
-
- thumb_func_start MOD11_022338A0
-MOD11_022338A0: ; 0x022338A0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0222FF74
- mov r1, #1
- lsl r1, r1, #0xa
- tst r0, r1
- bne _022338C8
- add r0, r5, #0
- bl MOD11_02230C50
- mov r1, #1
- tst r0, r1
- beq _022338D0
-_022338C8:
- ldr r0, _022338F4 ; =0x00002150
- mov r1, #1
- str r1, [r4, r0]
- b _022338F0
-_022338D0:
- ldr r3, [r4, #0x6c]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0
- bl MOD11_0224C474
- str r0, [sp]
- ldr r3, _022338F8 ; =0x0000214C
- ldr r1, [r4, #0x64]
- ldr r2, [r4, #0x6c]
- ldr r3, [r4, r3]
- add r0, r4, #0
- bl MOD11_0224BF3C
- ldr r1, _022338F4 ; =0x00002150
- str r0, [r4, r1]
-_022338F0:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022338F4: .word 0x00002150
-_022338F8: .word 0x0000214C
-
- thumb_func_start MOD11_022338FC
-MOD11_022338FC: ; 0x022338FC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- add r7, r0, #0
- bl MOD11_0222FF74
- add r4, r0, #0
- ldr r1, [r5, #0x74]
- add r0, r7, #0
- bl MOD11_0222FF7C
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r1, r0, #0
- ldr r0, _02233A70 ; =0x00000195
- ldrb r2, [r6, r0]
- mov r0, #1
- tst r0, r2
- beq _02233936
- mov r0, #0xa9
- lsl r0, r0, #2
- tst r0, r4
- beq _02233938
-_02233936:
- b _02233A64
-_02233938:
- mov r0, #0
- str r0, [sp, #4]
- ldr r1, [sp, #4]
- str r0, [sp]
- add r4, r0, #0
- add r0, r7, #0
- bl MOD11_0222FF88
- bl GetPartyCount
- cmp r0, #0
- ble _022339C6
-_02233950:
- add r0, r7, #0
- mov r1, #0
- add r2, r4, #0
- bl MOD11_02230014
- mov r1, #5
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _022339B4
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _022339B4
- add r0, r4, #0
- bl MaskOfFlagNo
- ldr r1, [r5, #0x74]
- asr r1, r1, #1
- lsl r1, r1, #0x1f
- lsr r1, r1, #0x1d
- add r1, r5, r1
- add r1, #0xa4
- ldr r1, [r1]
- tst r0, r1
- beq _02233994
- ldr r0, [sp, #4]
- add r0, r0, #1
- str r0, [sp, #4]
-_02233994:
- add r0, r6, #0
- mov r1, #6
- mov r2, #0
- bl GetMonData
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- add r0, r5, #0
- mov r2, #1
- bl MOD11_0224C12C
- cmp r0, #0x32
- bne _022339B4
- ldr r0, [sp]
- add r0, r0, #1
- str r0, [sp]
-_022339B4:
- add r0, r7, #0
- mov r1, #0
- add r4, r4, #1
- bl MOD11_0222FF88
- bl GetPartyCount
- cmp r4, r0
- blt _02233950
-_022339C6:
- ldr r1, [r5, #0x74]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- mov r0, #0xb5
- lsl r0, r0, #6
- ldrh r0, [r1, r0]
- mov r1, #9
- bl GetMonBaseStat
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- ldr r2, [r5, #0x74]
- mov r0, #0xc0
- mul r0, r2
- add r2, r5, r0
- ldr r0, _02233A74 ; =0x00002D74
- ldrb r0, [r2, r0]
- mul r0, r1
- mov r1, #7
- bl _s32_div_f
- lsl r0, r0, #0x10
- ldr r1, [sp]
- lsr r0, r0, #0x10
- cmp r1, #0
- beq _02233A3E
- lsr r4, r0, #1
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl _s32_div_f
- add r1, r5, #0
- add r1, #0x9c
- str r0, [r1]
- add r0, r5, #0
- add r0, #0x9c
- ldr r0, [r0]
- cmp r0, #0
- bne _02233A1E
- add r0, r5, #0
- mov r1, #1
- add r0, #0x9c
- str r1, [r0]
-_02233A1E:
- ldr r1, [sp]
- add r0, r4, #0
- bl _s32_div_f
- add r1, r5, #0
- add r1, #0xa0
- str r0, [r1]
- add r0, r5, #0
- add r0, #0xa0
- ldr r0, [r0]
- cmp r0, #0
- bne _02233A6A
- mov r0, #1
- add r5, #0xa0
- str r0, [r5]
- b _02233A6A
-_02233A3E:
- ldr r1, [sp, #4]
- bl _s32_div_f
- add r1, r5, #0
- add r1, #0x9c
- str r0, [r1]
- add r0, r5, #0
- add r0, #0x9c
- ldr r0, [r0]
- cmp r0, #0
- bne _02233A5C
- add r0, r5, #0
- mov r1, #1
- add r0, #0x9c
- str r1, [r0]
-_02233A5C:
- mov r0, #0
- add r5, #0xa0
- str r0, [r5]
- b _02233A6A
-_02233A64:
- add r0, r5, #0
- bl MOD11_0223A424
-_02233A6A:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02233A70: .word 0x00000195
-_02233A74: .word 0x00002D74
-
- thumb_func_start MOD11_02233A78
-MOD11_02233A78: ; 0x02233A78
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- mov r0, #5
- mov r1, #0x58
- bl AllocFromHeap
- mov r1, #0x5e
- lsl r1, r1, #2
- str r0, [r4, r1]
- ldr r0, [r4, r1]
- mov r2, #0
- str r5, [r0]
- ldr r0, [r4, r1]
- str r4, [r0, #4]
- ldr r0, [r4, r1]
- str r2, [r0, #0x28]
- ldr r0, [r4, r1]
- str r2, [r0, #0x48]
- ldr r0, _02233AB4 ; =MOD11_0223A79C
- ldr r1, [r4, r1]
- bl FUN_0200CA44
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02233AB4: .word MOD11_0223A79C
-
- thumb_func_start MOD11_02233AB8
-MOD11_02233AB8: ; 0x02233AB8
- push {r3, lr}
- mov r0, #0x5e
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02233ACC
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
-_02233ACC:
- mov r0, #0
- pop {r3, pc}
-
- thumb_func_start MOD11_02233AD0
-MOD11_02233AD0: ; 0x02233AD0
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02233AE8
-MOD11_02233AE8: ; 0x02233AE8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- str r1, [sp, #8]
- add r6, r0, #0
- bl MOD11_0222FF84
- add r7, r0, #0
- ldr r0, [sp, #8]
- mov r1, #1
- bl MOD11_0223A424
- mov r4, #0
- add r5, r4, #0
- cmp r7, #0
- ble _02233B40
- ldr r0, [sp, #8]
- str r0, [sp, #0xc]
-_02233B0A:
- mov r0, #0x4f
- ldr r1, [sp, #0xc]
- lsl r0, r0, #2
- ldr r1, [r1, r0]
- mov r0, #1
- tst r0, r1
- beq _02233B34
- add r0, r5, #0
- bl MaskOfFlagNo
- orr r4, r0
- mov r0, #0
- str r0, [sp]
- mov r0, #6
- str r0, [sp, #4]
- ldr r1, [sp, #8]
- add r0, r6, #0
- add r2, r5, #0
- mov r3, #1
- bl MOD11_022558E0
-_02233B34:
- ldr r0, [sp, #0xc]
- add r5, r5, #1
- add r0, r0, #4
- str r0, [sp, #0xc]
- cmp r5, r7
- blt _02233B0A
-_02233B40:
- mov r5, #0
- cmp r7, #0
- ble _02233B98
-_02233B46:
- add r0, r6, #0
- bl MOD11_0222FF74
- cmp r0, #7
- bne _02233B80
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_022302BC
- str r0, [sp, #0x10]
- add r0, r5, #0
- bl MaskOfFlagNo
- tst r0, r4
- bne _02233B92
- ldr r0, [sp, #0x10]
- bl MaskOfFlagNo
- tst r0, r4
- bne _02233B92
- add r0, r5, #0
- bl MaskOfFlagNo
- orr r4, r0
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_022564CC
- b _02233B92
-_02233B80:
- add r0, r5, #0
- bl MaskOfFlagNo
- tst r0, r4
- bne _02233B92
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_022564CC
-_02233B92:
- add r5, r5, #1
- cmp r5, r7
- blt _02233B46
-_02233B98:
- mov r0, #0
- cmp r7, #0
- ble _02233BBA
- mov r1, #0x4f
- ldr r4, [sp, #8]
- lsl r1, r1, #2
- mov r2, #1
-_02233BA6:
- ldr r3, [r4, r1]
- tst r3, r2
- beq _02233BB2
- ldr r1, [sp, #8]
- str r0, [r1, #0x78]
- b _02233BBA
-_02233BB2:
- add r0, r0, #1
- add r4, r4, #4
- cmp r0, r7
- blt _02233BA6
-_02233BBA:
- mov r0, #0
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02233BC0
-MOD11_02233BC0: ; 0x02233BC0
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- str r0, [sp]
- add r5, r1, #0
- bl MOD11_0222FF84
- str r0, [sp, #8]
- mov r6, #0
- ldr r1, [sp, #8]
- add r0, r6, #0
- cmp r1, #0
- ble _02233BF2
- mov r3, #0x4f
- add r1, r5, #0
- lsl r3, r3, #2
- mov r4, #1
-_02233BE0:
- ldr r2, [r1, r3]
- tst r2, r4
- beq _02233BE8
- add r6, r6, #1
-_02233BE8:
- ldr r2, [sp, #8]
- add r0, r0, #1
- add r1, r1, #4
- cmp r0, r2
- blt _02233BE0
-_02233BF2:
- ldr r0, [sp, #8]
- mov r4, #0
- cmp r0, #0
- ble _02233C6C
- str r5, [sp, #4]
- add r7, r5, #0
-_02233BFE:
- mov r0, #0x4f
- ldr r1, [sp, #4]
- lsl r0, r0, #2
- ldr r1, [r1, r0]
- mov r0, #1
- tst r0, r1
- beq _02233C58
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0
- beq _02233C58
- mov r0, #0x23
- lsl r0, r0, #8
- ldrb r0, [r7, r0]
- add r1, r5, r4
- sub r6, r6, #1
- sub r2, r0, #1
- ldr r0, _02233C8C ; =0x000021A0
- strb r2, [r1, r0]
- add r0, r4, #0
- bl MaskOfFlagNo
- mov r1, #0x85
- lsl r1, r1, #6
- ldr r1, [r5, r1]
- lsl r0, r0, #0x18
- tst r0, r1
- bne _02233C58
- add r0, r4, #0
- bl MaskOfFlagNo
- mov r1, #0x85
- lsl r1, r1, #6
- ldr r1, [r5, r1]
- lsl r0, r0, #0x18
- orr r1, r0
- mov r0, #0x85
- lsl r0, r0, #6
- str r1, [r5, r0]
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_022564CC
-_02233C58:
- ldr r0, [sp, #4]
- add r4, r4, #1
- add r0, r0, #4
- str r0, [sp, #4]
- mov r0, #1
- lsl r0, r0, #8
- add r7, r7, r0
- ldr r0, [sp, #8]
- cmp r4, r0
- blt _02233BFE
-_02233C6C:
- cmp r6, #0
- bne _02233C84
- mov r1, #0x85
- lsl r1, r1, #6
- ldr r2, [r5, r1]
- ldr r0, _02233C90 ; =0xF0FFFFFF
- and r0, r2
- str r0, [r5, r1]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
-_02233C84:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02233C8C: .word 0x000021A0
-_02233C90: .word 0xF0FFFFFF
-
- thumb_func_start MOD11_02233C94
-MOD11_02233C94: ; 0x02233C94
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- cmp r0, #1
- beq _02233CB6
- cmp r0, #6
- beq _02233CBA
- cmp r0, #0x12
- beq _02233CBE
- b _02233CC0
-_02233CB6:
- ldr r4, [r5, #0x64]
- b _02233CC0
-_02233CBA:
- ldr r4, [r5, #0x78]
- b _02233CC0
-_02233CBE:
- ldr r4, [r5, #0x6c]
-_02233CC0:
- mov r0, #0x4f
- lsl r0, r0, #2
- add r3, r5, r0
- lsl r2, r4, #2
- ldr r1, [r3, r2]
- mov r0, #1
- bic r1, r0
- add r0, r4, #0
- str r1, [r3, r2]
- bl MaskOfFlagNo
- ldr r3, _02233D24 ; =0x00003108
- mov r2, #0
- mvn r2, r2
- eor r0, r2
- ldrb r1, [r5, r3]
- add r2, r4, #0
- and r0, r1
- ldr r1, _02233D28 ; =0x000021A0
- strb r0, [r5, r3]
- add r0, r5, r1
- sub r1, r1, #4
- add r6, r5, r1
- ldrb r1, [r0, r4]
- strb r1, [r6, r4]
- mov r1, #6
- strb r1, [r0, r4]
- ldrb r3, [r6, r4]
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_02242B78
- ldrb r3, [r6, r4]
- add r0, r7, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0224B290
- ldr r0, _02233D2C ; =0x00002E4C
- add r2, r4, #0
- ldr r1, [r5, r0]
- ldr r0, _02233D30 ; =0x00003122
- strh r1, [r5, r0]
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_02245608
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02233D24: .word 0x00003108
-_02233D28: .word 0x000021A0
-_02233D2C: .word 0x00002E4C
-_02233D30: .word 0x00003122
-
- thumb_func_start MOD11_02233D34
-MOD11_02233D34: ; 0x02233D34
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- bl MOD11_0222FF84
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- mov r0, #0
- cmp r4, #0
- ble _02233D76
- mov r2, #0x4f
- add r1, r5, #0
- lsl r2, r2, #2
- mov r3, #1
-_02233D5C:
- ldr r6, [r1, r2]
- tst r6, r3
- beq _02233D6E
- str r0, [r5, #0x78]
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_0223A424
- b _02233D76
-_02233D6E:
- add r0, r0, #1
- add r1, r1, #4
- cmp r0, r4
- blt _02233D5C
-_02233D76:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02233D7C
-MOD11_02233D7C: ; 0x02233D7C
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- mov r0, #5
- mov r1, #0x58
- bl AllocFromHeap
- mov r1, #0x5e
- lsl r1, r1, #2
- str r0, [r4, r1]
- ldr r0, [r4, r1]
- mov r2, #0
- str r5, [r0]
- ldr r0, [r4, r1]
- str r4, [r0, #4]
- ldr r0, [r4, r1]
- str r2, [r0, #0x28]
- ldr r0, [r4, r1]
- str r6, [r0, #0x24]
- add r0, r1, #0
- sub r0, #0x50
- ldr r3, [r4, r0]
- ldr r0, [r4, r1]
- str r3, [r0, #0x2c]
- ldr r0, _02233DC8 ; =MOD11_0223B49C
- ldr r1, [r4, r1]
- bl FUN_0200CA44
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02233DC8: .word MOD11_0223B49C
-
- thumb_func_start MOD11_02233DCC
-MOD11_02233DCC: ; 0x02233DCC
- push {r3, lr}
- mov r0, #0x5e
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02233DE0
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
-_02233DE0:
- mov r0, #0
- pop {r3, pc}
-
- thumb_func_start MOD11_02233DE4
-MOD11_02233DE4: ; 0x02233DE4
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r0, _02233E4C ; =0x0000217D
- ldrb r0, [r5, r0]
- cmp r0, #0
- bne _02233E46
- cmp r4, #0
- bne _02233E36
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x5c
- bne _02233E1C
- mov r4, #5
- b _02233E36
-_02233E1C:
- bl rand_LC
- mov r1, #3
- and r0, r1
- cmp r0, #2
- bge _02233E2C
- add r4, r0, #2
- b _02233E36
-_02233E2C:
- bl rand_LC
- mov r1, #3
- and r0, r1
- add r4, r0, #2
-_02233E36:
- lsl r0, r4, #0x18
- ldr r1, _02233E50 ; =0x0000217C
- lsr r2, r0, #0x18
- strb r2, [r5, r1]
- add r0, r1, #1
- strb r2, [r5, r0]
- add r1, #0xc
- str r6, [r5, r1]
-_02233E46:
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_02233E4C: .word 0x0000217D
-_02233E50: .word 0x0000217C
-
- thumb_func_start MOD11_02233E54
-MOD11_02233E54: ; 0x02233E54
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r7, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- add r0, r4, #0
- bl MOD11_0223A404
- add r5, r0, #0
- ldr r2, [sp]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_0223A444
- add r4, r0, #0
- cmp r6, #0x14
- bhi _02233F3E
- add r0, r6, r6
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02233E96: ; jump table
- .short _02233F3E - _02233E96 - 2 ; case 0
- .short _02233F3E - _02233E96 - 2 ; case 1
- .short _02233F3E - _02233E96 - 2 ; case 2
- .short _02233F3E - _02233E96 - 2 ; case 3
- .short _02233F3E - _02233E96 - 2 ; case 4
- .short _02233F3E - _02233E96 - 2 ; case 5
- .short _02233F3E - _02233E96 - 2 ; case 6
- .short _02233EC0 - _02233E96 - 2 ; case 7
- .short _02233EC4 - _02233E96 - 2 ; case 8
- .short _02233ECC - _02233E96 - 2 ; case 9
- .short _02233ED4 - _02233E96 - 2 ; case 10
- .short _02233EDC - _02233E96 - 2 ; case 11
- .short _02233EEA - _02233E96 - 2 ; case 12
- .short _02233EF4 - _02233E96 - 2 ; case 13
- .short _02233F00 - _02233E96 - 2 ; case 14
- .short _02233F08 - _02233E96 - 2 ; case 15
- .short _02233F10 - _02233E96 - 2 ; case 16
- .short _02233F1A - _02233E96 - 2 ; case 17
- .short _02233F20 - _02233E96 - 2 ; case 18
- .short _02233F2E - _02233E96 - 2 ; case 19
- .short _02233F36 - _02233E96 - 2 ; case 20
-_02233EC0:
- str r5, [r4]
- b _02233F42
-_02233EC4:
- ldr r0, [r4]
- add r0, r0, r5
- str r0, [r4]
- b _02233F42
-_02233ECC:
- ldr r0, [r4]
- sub r0, r0, r5
- str r0, [r4]
- b _02233F42
-_02233ED4:
- ldr r0, [r4]
- orr r0, r5
- str r0, [r4]
- b _02233F42
-_02233EDC:
- mov r0, #0
- mvn r0, r0
- ldr r1, [r4]
- eor r0, r5
- and r0, r1
- str r0, [r4]
- b _02233F42
-_02233EEA:
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r5
- str r1, [r4]
- b _02233F42
-_02233EF4:
- ldr r0, [r4]
- add r1, r5, #0
- bl _s32_div_f
- str r0, [r4]
- b _02233F42
-_02233F00:
- ldr r0, [r4]
- lsl r0, r5
- str r0, [r4]
- b _02233F42
-_02233F08:
- ldr r0, [r4]
- asr r0, r5
- str r0, [r4]
- b _02233F42
-_02233F10:
- add r0, r5, #0
- bl MaskOfFlagNo
- str r0, [r4]
- b _02233F42
-_02233F1A:
- bl ErrorHandling
- b _02233F42
-_02233F20:
- ldr r0, [r4]
- sub r0, r0, r5
- str r0, [r4]
- bpl _02233F42
- mov r0, #0
- str r0, [r4]
- b _02233F42
-_02233F2E:
- ldr r0, [r4]
- eor r0, r5
- str r0, [r4]
- b _02233F42
-_02233F36:
- ldr r0, [r4]
- and r0, r5
- str r0, [r4]
- b _02233F42
-_02233F3E:
- bl ErrorHandling
-_02233F42:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02233F48
-MOD11_02233F48: ; 0x02233F48
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- str r0, [sp]
- mov r0, #0xb5
- add r5, r1, #0
- lsl r0, r0, #6
- add r2, r5, r0
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r6, r2, r0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp, #0x14]
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp, #0x10]
- add r0, r5, #0
- bl MOD11_0223A404
- ldr r1, _022342D0 ; =0x0000213C
- str r0, [sp, #0xc]
- mov r0, #0
- str r0, [sp, #8]
- ldr r2, [r5, r1]
- ldr r0, _022342D4 ; =0xFFFDFFFF
- and r2, r0
- str r2, [r5, r1]
- add r1, r5, #0
- add r1, #0x8c
- ldr r4, [r1]
- cmp r4, #0x2e
- blt _02233FA8
- asr r7, r0, #0x11
- mov r0, #0x4e
- mov r1, #0xd
- lsl r0, r0, #2
- sub r4, #0x2e
- str r1, [r5, r0]
- b _02233FD8
-_02233FA8:
- cmp r4, #0x27
- blt _02233FBA
- mov r0, #0x4e
- mov r1, #0xc
- lsl r0, r0, #2
- sub r4, #0x27
- mov r7, #2
- str r1, [r5, r0]
- b _02233FD8
-_02233FBA:
- cmp r4, #0x16
- blt _02233FCC
- asr r7, r0, #0x12
- mov r0, #0x4e
- mov r1, #0xd
- lsl r0, r0, #2
- sub r4, #0x16
- str r1, [r5, r0]
- b _02233FD8
-_02233FCC:
- mov r0, #0x4e
- mov r1, #0xc
- lsl r0, r0, #2
- sub r4, #0xf
- mov r7, #1
- str r1, [r5, r0]
-_02233FD8:
- cmp r7, #0
- bgt _02233FDE
- b _02234116
-_02233FDE:
- add r1, r4, #1
- add r6, #0x18
- add r0, r6, r1
- str r0, [sp, #4]
- ldrsb r0, [r6, r1]
- cmp r0, #0xc
- bne _02234042
- ldr r1, _022342D0 ; =0x0000213C
- mov r0, #2
- ldr r2, [r5, r1]
- lsl r0, r0, #0x10
- orr r0, r2
- str r0, [r5, r1]
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- sub r0, r0, #2
- cmp r0, #1
- bhi _0223400E
- ldr r1, [sp, #0x10]
- add r0, r5, #0
- bl MOD11_0223A424
- b _02234538
-_0223400E:
- add r0, r5, #0
- mov r1, #0x8e
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0xc
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- add r0, r5, #0
- add r1, r4, #1
- add r0, #0xfc
- str r1, [r0]
- ldr r1, [sp, #0x14]
- add r0, r5, #0
- bl MOD11_0223A424
- b _02234538
-_02234042:
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- cmp r0, #3
- bne _0223408E
- add r0, r5, #0
- ldr r1, _022342D8 ; =0x0000026E
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0x27
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- add r0, r5, #0
- add r0, #0x94
- ldr r0, [r0]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _022342DC ; =0x00002D67
- add r2, r5, r2
- ldrb r2, [r2, r0]
- add r0, r5, #0
- add r0, #0xfc
- str r2, [r0]
- add r0, r4, #1
- add r1, #0x40
- str r0, [r5, r1]
- b _022340FA
-_0223408E:
- cmp r0, #5
- bne _022340CA
- mov r1, #0xbd
- add r0, r5, #0
- lsl r1, r1, #2
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0x2d
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- mov r1, #0x4a
- lsl r1, r1, #2
- ldr r2, [r5, r1]
- add r0, r5, #0
- add r0, #0xfc
- str r2, [r0]
- add r0, r4, #1
- sub r1, #0x28
- str r0, [r5, r1]
- b _022340FA
-_022340CA:
- cmp r7, #1
- bne _022340D2
- ldr r1, _022342E0 ; =0x000002EE
- b _022340D4
-_022340D2:
- ldr r1, _022342E4 ; =0x000002F1
-_022340D4:
- add r0, r5, #0
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0xc
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- add r0, r4, #1
- add r5, #0xfc
- str r0, [r5]
-_022340FA:
- ldr r0, [sp, #4]
- mov r1, #0
- ldrsb r0, [r0, r1]
- add r2, r0, r7
- ldr r0, [sp, #4]
- strb r2, [r0]
- ldrsb r0, [r0, r1]
- cmp r0, #0xc
- bgt _0223410E
- b _02234538
-_0223410E:
- ldr r0, [sp, #4]
- mov r1, #0xc
- strb r1, [r0]
- b _02234538
-_02234116:
- add r0, r5, #0
- add r0, #0x90
- ldr r1, [r0]
- mov r0, #2
- lsl r0, r0, #0x1a
- tst r1, r0
- beq _02234126
- b _0223449C
-_02234126:
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- ldr r2, [r5, #0x64]
- cmp r2, r1
- bne _02234134
- b _022343E4
-_02234134:
- ldr r0, [sp]
- bl MOD11_02230270
- lsl r0, r0, #3
- mov r1, #0x71
- add r0, r5, r0
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x1d
- beq _02234172
- add r0, r5, #0
- sub r1, #0xb3
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #2
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- mov r0, #1
- str r0, [sp, #8]
- b _0223444C
-_02234172:
- add r2, r5, #0
- add r2, #0x94
- ldr r1, [r5, #0x64]
- ldr r2, [r2]
- add r0, r5, #0
- mov r3, #0x1d
- bl MOD11_02246D84
- cmp r0, #1
- beq _0223419A
- add r2, r5, #0
- add r2, #0x94
- ldr r1, [r5, #0x64]
- ldr r2, [r2]
- add r0, r5, #0
- mov r3, #0x49
- bl MOD11_02246D84
- cmp r0, #1
- bne _0223423C
-_0223419A:
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- cmp r0, #3
- bne _022341FE
- add r0, r5, #0
- ldr r1, _022342E8 ; =0x000002D7
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0x35
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _022342DC ; =0x00002D67
- ldrb r1, [r1, r0]
- add r0, r5, #0
- add r0, #0xfc
- str r1, [r0]
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_0224682C
- mov r1, #1
- lsl r1, r1, #8
- str r0, [r5, r1]
- ldr r0, [r5, #0x64]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _022342DC ; =0x00002D67
- add r2, r5, r2
- ldrb r0, [r2, r0]
- add r1, #0x44
- str r0, [r5, r1]
- b _02234236
-_022341FE:
- add r0, r5, #0
- ldr r1, _022342EC ; =0x0000029D
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0xb
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _022342DC ; =0x00002D67
- ldrb r1, [r1, r0]
- add r0, r5, #0
- add r0, #0xfc
- str r1, [r0]
-_02234236:
- mov r0, #1
- str r0, [sp, #8]
- b _0223444C
-_0223423C:
- add r2, r5, #0
- add r2, #0x94
- ldr r1, [r5, #0x64]
- ldr r2, [r2]
- add r0, r5, #0
- mov r3, #0x33
- bl MOD11_02246D84
- cmp r0, #1
- bne _02234256
- add r0, r4, #1
- cmp r0, #6
- beq _0223426E
-_02234256:
- add r2, r5, #0
- add r2, #0x94
- ldr r1, [r5, #0x64]
- ldr r2, [r2]
- add r0, r5, #0
- mov r3, #0x34
- bl MOD11_02246D84
- cmp r0, #1
- bne _02234338
- cmp r4, #0
- bne _02234338
-_0223426E:
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- cmp r0, #3
- bne _022342F0
- add r0, r5, #0
- ldr r1, _022342E8 ; =0x000002D7
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0x35
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _022342DC ; =0x00002D67
- ldrb r1, [r1, r0]
- add r0, r5, #0
- add r0, #0xfc
- str r1, [r0]
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_0224682C
- mov r1, #1
- lsl r1, r1, #8
- str r0, [r5, r1]
- ldr r0, [r5, #0x64]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _022342DC ; =0x00002D67
- add r2, r5, r2
- ldrb r0, [r2, r0]
- add r1, #0x44
- b _02234330
- .align 2, 0
-_022342D0: .word 0x0000213C
-_022342D4: .word 0xFFFDFFFF
-_022342D8: .word 0x0000026E
-_022342DC: .word 0x00002D67
-_022342E0: .word 0x000002EE
-_022342E4: .word 0x000002F1
-_022342E8: .word 0x000002D7
-_022342EC: .word 0x0000029D
-_022342F0:
- mov r1, #0xb
- add r0, r5, #0
- lsl r1, r1, #6
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0x27
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- add r0, r5, #0
- add r0, #0x94
- ldr r0, [r0]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _02234540 ; =0x00002D67
- add r2, r5, r2
- ldrb r2, [r2, r0]
- add r0, r5, #0
- add r0, #0xfc
- str r2, [r0]
- add r0, r4, #1
- add r1, #0x40
-_02234330:
- str r0, [r5, r1]
- mov r0, #1
- str r0, [sp, #8]
- b _0223444C
-_02234338:
- add r0, r4, #1
- add r1, r6, r0
- mov r0, #0x18
- ldrsb r0, [r1, r0]
- cmp r0, #0
- bne _022343A2
- ldr r1, _02234544 ; =0x0000213C
- mov r0, #2
- ldr r2, [r5, r1]
- lsl r0, r0, #0x10
- orr r0, r2
- str r0, [r5, r1]
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- sub r0, r0, #2
- cmp r0, #1
- bhi _0223436A
- ldr r1, [sp, #0x10]
- add r0, r5, #0
- bl MOD11_0223A424
- add sp, #0x18
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223436A:
- add r0, r5, #0
- mov r1, #0x91
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0xc
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- add r0, r5, #0
- add r1, r4, #1
- add r0, #0xfc
- str r1, [r0]
- ldr r1, [sp, #0x14]
- add r0, r5, #0
- bl MOD11_0223A424
- add sp, #0x18
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_022343A2:
- add r2, r5, #0
- add r2, #0x94
- ldr r1, [r5, #0x64]
- ldr r2, [r2]
- add r0, r5, #0
- mov r3, #0x13
- bl MOD11_02246D84
- cmp r0, #1
- bne _022343C6
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- cmp r0, #2
- bne _022343C6
- mov r0, #1
- str r0, [sp, #8]
- b _0223444C
-_022343C6:
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02234548 ; =0x00002DB0
- ldr r1, [r1, r0]
- mov r0, #1
- lsl r0, r0, #0x18
- tst r0, r1
- beq _0223444C
- mov r0, #2
- str r0, [sp, #8]
- b _0223444C
-_022343E4:
- add r1, r4, #1
- add r2, r6, r1
- mov r1, #0x18
- ldrsb r1, [r2, r1]
- cmp r1, #0
- bne _0223444C
- ldr r1, _02234544 ; =0x0000213C
- lsr r0, r0, #0xa
- ldr r2, [r5, r1]
- orr r0, r2
- str r0, [r5, r1]
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- sub r0, r0, #2
- cmp r0, #1
- bhi _02234414
- ldr r1, [sp, #0x10]
- add r0, r5, #0
- bl MOD11_0223A424
- add sp, #0x18
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02234414:
- add r0, r5, #0
- mov r1, #0x91
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0xc
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- add r0, r5, #0
- add r1, r4, #1
- add r0, #0xfc
- str r1, [r0]
- ldr r1, [sp, #0x14]
- add r0, r5, #0
- bl MOD11_0223A424
- add sp, #0x18
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223444C:
- ldr r0, [sp, #8]
- cmp r0, #2
- bne _0223446A
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- cmp r0, #1
- bne _0223446A
- ldr r1, [sp, #0xc]
- add r0, r5, #0
- bl MOD11_0223A424
- add sp, #0x18
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223446A:
- ldr r0, [sp, #8]
- cmp r0, #0
- beq _02234488
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- cmp r0, #2
- bne _02234488
- ldr r1, [sp, #0x10]
- add r0, r5, #0
- bl MOD11_0223A424
- add sp, #0x18
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02234488:
- ldr r0, [sp, #8]
- cmp r0, #0
- beq _0223449C
- ldr r1, [sp, #0x14]
- add r0, r5, #0
- bl MOD11_0223A424
- add sp, #0x18
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223449C:
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- cmp r0, #3
- bne _022344F0
- add r0, r5, #0
- ldr r1, _0223454C ; =0x00000296
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0x36
- add r0, #0xf5
- strb r1, [r0]
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02234540 ; =0x00002D67
- ldrb r1, [r1, r0]
- add r0, r5, #0
- add r0, #0xfc
- str r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- mov r1, #1
- lsl r1, r1, #8
- str r0, [r5, r1]
- add r2, r4, #1
- add r0, r1, #4
- str r2, [r5, r0]
- b _02234524
-_022344F0:
- mov r0, #0
- mvn r0, r0
- cmp r7, r0
- bne _022344FC
- ldr r1, _02234550 ; =0x000002FA
- b _022344FE
-_022344FC:
- ldr r1, _02234554 ; =0x000002FD
-_022344FE:
- add r0, r5, #0
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0xc
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- add r0, r4, #1
- add r5, #0xfc
- str r0, [r5]
-_02234524:
- add r6, #0x18
- add r1, r4, #1
- ldrsb r0, [r6, r1]
- add r0, r0, r7
- strb r0, [r6, r1]
- ldrsb r0, [r6, r1]
- cmp r0, #0
- bge _02234538
- mov r0, #0
- strb r0, [r6, r1]
-_02234538:
- mov r0, #0
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02234540: .word 0x00002D67
-_02234544: .word 0x0000213C
-_02234548: .word 0x00002DB0
-_0223454C: .word 0x00000296
-_02234550: .word 0x000002FA
-_02234554: .word 0x000002FD
-
- thumb_func_start MOD11_02234558
-MOD11_02234558: ; 0x02234558
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r5, r1, #0
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp, #8]
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- ldr r0, [sp]
- ldr r2, [sp, #8]
- add r1, r5, #0
- bl MOD11_0223C230
- str r0, [sp, #4]
- ldr r1, [sp, #4]
- add r0, r5, #0
- add r2, r6, #0
- mov r3, #0
- bl MOD11_02243420
- str r0, [sp, #0xc]
- cmp r7, #0x14
- bhi _02234644
- add r1, r7, r7
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022345B2: ; jump table
- .short _02234644 - _022345B2 - 2 ; case 0
- .short _02234644 - _022345B2 - 2 ; case 1
- .short _02234644 - _022345B2 - 2 ; case 2
- .short _02234644 - _022345B2 - 2 ; case 3
- .short _02234644 - _022345B2 - 2 ; case 4
- .short _02234644 - _022345B2 - 2 ; case 5
- .short _02234644 - _022345B2 - 2 ; case 6
- .short _022345DC - _022345B2 - 2 ; case 7
- .short _022345E0 - _022345B2 - 2 ; case 8
- .short _022345E6 - _022345B2 - 2 ; case 9
- .short _022345EC - _022345B2 - 2 ; case 10
- .short _022345F2 - _022345B2 - 2 ; case 11
- .short _022345FE - _022345B2 - 2 ; case 12
- .short _02234606 - _022345B2 - 2 ; case 13
- .short _02234610 - _022345B2 - 2 ; case 14
- .short _02234616 - _022345B2 - 2 ; case 15
- .short _0223461C - _022345B2 - 2 ; case 16
- .short _02234626 - _022345B2 - 2 ; case 17
- .short _0223462C - _022345B2 - 2 ; case 18
- .short _02234638 - _022345B2 - 2 ; case 19
- .short _0223463E - _022345B2 - 2 ; case 20
-_022345DC:
- str r4, [sp, #0xc]
- b _02234648
-_022345E0:
- add r0, r0, r4
- str r0, [sp, #0xc]
- b _02234648
-_022345E6:
- sub r0, r0, r4
- str r0, [sp, #0xc]
- b _02234648
-_022345EC:
- orr r0, r4
- str r0, [sp, #0xc]
- b _02234648
-_022345F2:
- mov r1, #0
- mvn r1, r1
- eor r1, r4
- and r0, r1
- str r0, [sp, #0xc]
- b _02234648
-_022345FE:
- add r1, r0, #0
- mul r1, r4
- str r1, [sp, #0xc]
- b _02234648
-_02234606:
- add r1, r4, #0
- bl _s32_div_f
- str r0, [sp, #0xc]
- b _02234648
-_02234610:
- lsl r0, r4
- str r0, [sp, #0xc]
- b _02234648
-_02234616:
- asr r0, r4
- str r0, [sp, #0xc]
- b _02234648
-_0223461C:
- add r0, r4, #0
- bl MaskOfFlagNo
- str r0, [sp, #0xc]
- b _02234648
-_02234626:
- bl ErrorHandling
- b _02234648
-_0223462C:
- sub r0, r0, r4
- str r0, [sp, #0xc]
- bpl _02234648
- mov r0, #0
- str r0, [sp, #0xc]
- b _02234648
-_02234638:
- eor r0, r4
- str r0, [sp, #0xc]
- b _02234648
-_0223463E:
- and r0, r4
- str r0, [sp, #0xc]
- b _02234648
-_02234644:
- bl ErrorHandling
-_02234648:
- cmp r6, #0x1a
- bne _0223465E
- ldr r1, [sp, #4]
- ldr r2, [sp, #0xc]
- lsl r1, r1, #0x18
- lsl r2, r2, #0x18
- add r0, r5, #0
- lsr r1, r1, #0x18
- lsr r2, r2, #0x18
- bl MOD11_0223D1C4
-_0223465E:
- ldr r1, [sp, #4]
- add r0, r5, #0
- add r2, r6, #0
- add r3, sp, #0xc
- bl MOD11_0224379C
- ldr r0, [sp]
- ldr r2, [sp, #4]
- add r1, r5, #0
- bl MOD11_02245190
- mov r0, #0
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223467C
-MOD11_0223467C: ; 0x0223467C
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- add r2, r7, #0
- bl MOD11_0223C230
- ldr r1, _022346B4 ; =0x0000218C
- add r2, r5, r1
- lsl r1, r0, #2
- ldr r0, [r2, r1]
- orr r0, r4
- str r0, [r2, r1]
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022346B4: .word 0x0000218C
-
- thumb_func_start MOD11_022346B8
-MOD11_022346B8: ; 0x022346B8
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r5, #0
- add r2, r7, #0
- bl MOD11_02255D3C
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022346F0
-MOD11_022346F0: ; 0x022346F0
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp, #8]
- cmp r4, #0
- bne _02234766
- ldr r0, [sp]
- bl MOD11_0222FF84
- mov r4, #0
- str r0, [sp, #4]
- cmp r0, #0
- ble _022347A8
-_02234732:
- cmp r7, #0
- bne _02234750
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _0223475C
- ldr r1, [sp, #8]
- add r0, r5, #0
- bl MOD11_0223A424
- add r5, #0x80
- str r4, [r5]
- b _022347A8
-_02234750:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r6, r0
- beq _022347A8
-_0223475C:
- ldr r0, [sp, #4]
- add r4, r4, #1
- cmp r4, r0
- blt _02234732
- b _022347A8
-_02234766:
- ldr r0, [sp]
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0223C230
- add r4, r0, #0
- cmp r7, #0
- bne _02234790
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _022347A8
- ldr r1, [sp, #8]
- add r0, r5, #0
- bl MOD11_0223A424
- add r5, #0x80
- str r4, [r5]
- b _022347A8
-_02234790:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r6, r0
- beq _022347A8
- ldr r1, [sp, #8]
- add r0, r5, #0
- bl MOD11_0223A424
- add r5, #0x80
- str r4, [r5]
-_022347A8:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022347B0
-MOD11_022347B0: ; 0x022347B0
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- bl rand_LC
- add r1, r4, #1
- bl _s32_div_f
- mov r0, #0x4d
- add r1, r6, r1
- lsl r0, r0, #2
- str r1, [r5, r0]
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022347E4
-MOD11_022347E4: ; 0x022347E4
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp]
- add r0, r7, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0223A444
- add r4, r0, #0
- ldr r2, [sp]
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_0223A444
- add r1, r0, #0
- cmp r6, #0x14
- bhi _022348F2
- add r0, r6, r6
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02234832: ; jump table
- .short _022348F2 - _02234832 - 2 ; case 0
- .short _022348F2 - _02234832 - 2 ; case 1
- .short _022348F2 - _02234832 - 2 ; case 2
- .short _022348F2 - _02234832 - 2 ; case 3
- .short _022348F2 - _02234832 - 2 ; case 4
- .short _022348F2 - _02234832 - 2 ; case 5
- .short _022348F2 - _02234832 - 2 ; case 6
- .short _0223485C - _02234832 - 2 ; case 7
- .short _02234862 - _02234832 - 2 ; case 8
- .short _0223486C - _02234832 - 2 ; case 9
- .short _02234876 - _02234832 - 2 ; case 10
- .short _02234880 - _02234832 - 2 ; case 11
- .short _02234890 - _02234832 - 2 ; case 12
- .short _0223489A - _02234832 - 2 ; case 13
- .short _022348A6 - _02234832 - 2 ; case 14
- .short _022348B2 - _02234832 - 2 ; case 15
- .short _022348BE - _02234832 - 2 ; case 16
- .short _022348C8 - _02234832 - 2 ; case 17
- .short _022348CE - _02234832 - 2 ; case 18
- .short _022348DE - _02234832 - 2 ; case 19
- .short _022348E8 - _02234832 - 2 ; case 20
-_0223485C:
- ldr r0, [r1]
- str r0, [r4]
- b _022348F6
-_02234862:
- ldr r2, [r4]
- ldr r0, [r1]
- add r0, r2, r0
- str r0, [r4]
- b _022348F6
-_0223486C:
- ldr r2, [r4]
- ldr r0, [r1]
- sub r0, r2, r0
- str r0, [r4]
- b _022348F6
-_02234876:
- ldr r2, [r4]
- ldr r0, [r1]
- orr r0, r2
- str r0, [r4]
- b _022348F6
-_02234880:
- mov r0, #0
- ldr r1, [r1]
- mvn r0, r0
- ldr r2, [r4]
- eor r0, r1
- and r0, r2
- str r0, [r4]
- b _022348F6
-_02234890:
- ldr r2, [r4]
- ldr r0, [r1]
- mul r0, r2
- str r0, [r4]
- b _022348F6
-_0223489A:
- ldr r0, [r4]
- ldr r1, [r1]
- bl _s32_div_f
- str r0, [r4]
- b _022348F6
-_022348A6:
- ldr r2, [r4]
- ldr r0, [r1]
- add r1, r2, #0
- lsl r1, r0
- str r1, [r4]
- b _022348F6
-_022348B2:
- ldr r2, [r4]
- ldr r0, [r1]
- add r1, r2, #0
- asr r1, r0
- str r1, [r4]
- b _022348F6
-_022348BE:
- ldr r0, [r1]
- bl MaskOfFlagNo
- str r0, [r4]
- b _022348F6
-_022348C8:
- ldr r0, [r4]
- str r0, [r1]
- b _022348F6
-_022348CE:
- ldr r2, [r4]
- ldr r0, [r1]
- sub r0, r2, r0
- str r0, [r4]
- bpl _022348F6
- mov r0, #0
- str r0, [r4]
- b _022348F6
-_022348DE:
- ldr r2, [r4]
- ldr r0, [r1]
- eor r0, r2
- str r0, [r4]
- b _022348F6
-_022348E8:
- ldr r2, [r4]
- ldr r0, [r1]
- and r0, r2
- str r0, [r4]
- b _022348F6
-_022348F2:
- bl ErrorHandling
-_022348F6:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022348FC
-MOD11_022348FC: ; 0x022348FC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r4, r1, #0
- add r7, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r5, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp, #8]
- ldr r2, [sp, #4]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_0223C230
- str r0, [sp]
- ldr r1, [sp]
- add r0, r4, #0
- add r2, r6, #0
- mov r3, #0
- bl MOD11_02243420
- str r0, [sp, #0xc]
- ldr r2, [sp, #8]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_0223A444
- add r1, r0, #0
- cmp r5, #0x14
- bhi _02234A22
- add r0, r5, r5
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02234962: ; jump table
- .short _02234A22 - _02234962 - 2 ; case 0
- .short _02234A22 - _02234962 - 2 ; case 1
- .short _02234A22 - _02234962 - 2 ; case 2
- .short _02234A22 - _02234962 - 2 ; case 3
- .short _02234A22 - _02234962 - 2 ; case 4
- .short _02234A22 - _02234962 - 2 ; case 5
- .short _02234A22 - _02234962 - 2 ; case 6
- .short _0223498C - _02234962 - 2 ; case 7
- .short _02234992 - _02234962 - 2 ; case 8
- .short _0223499C - _02234962 - 2 ; case 9
- .short _022349A6 - _02234962 - 2 ; case 10
- .short _022349B0 - _02234962 - 2 ; case 11
- .short _022349C0 - _02234962 - 2 ; case 12
- .short _022349CA - _02234962 - 2 ; case 13
- .short _022349D6 - _02234962 - 2 ; case 14
- .short _022349E2 - _02234962 - 2 ; case 15
- .short _022349EE - _02234962 - 2 ; case 16
- .short _022349F8 - _02234962 - 2 ; case 17
- .short _022349FE - _02234962 - 2 ; case 18
- .short _02234A0E - _02234962 - 2 ; case 19
- .short _02234A18 - _02234962 - 2 ; case 20
-_0223498C:
- ldr r0, [r1]
- str r0, [sp, #0xc]
- b _02234A26
-_02234992:
- ldr r2, [sp, #0xc]
- ldr r0, [r1]
- add r0, r2, r0
- str r0, [sp, #0xc]
- b _02234A26
-_0223499C:
- ldr r2, [sp, #0xc]
- ldr r0, [r1]
- sub r0, r2, r0
- str r0, [sp, #0xc]
- b _02234A26
-_022349A6:
- ldr r2, [sp, #0xc]
- ldr r0, [r1]
- orr r0, r2
- str r0, [sp, #0xc]
- b _02234A26
-_022349B0:
- ldr r2, [r1]
- mov r1, #0
- mvn r1, r1
- ldr r0, [sp, #0xc]
- eor r1, r2
- and r0, r1
- str r0, [sp, #0xc]
- b _02234A26
-_022349C0:
- ldr r2, [sp, #0xc]
- ldr r0, [r1]
- mul r0, r2
- str r0, [sp, #0xc]
- b _02234A26
-_022349CA:
- ldr r0, [sp, #0xc]
- ldr r1, [r1]
- bl _s32_div_f
- str r0, [sp, #0xc]
- b _02234A26
-_022349D6:
- ldr r2, [sp, #0xc]
- ldr r0, [r1]
- add r1, r2, #0
- lsl r1, r0
- str r1, [sp, #0xc]
- b _02234A26
-_022349E2:
- ldr r2, [sp, #0xc]
- ldr r0, [r1]
- add r1, r2, #0
- asr r1, r0
- str r1, [sp, #0xc]
- b _02234A26
-_022349EE:
- ldr r0, [r1]
- bl MaskOfFlagNo
- str r0, [sp, #0xc]
- b _02234A26
-_022349F8:
- ldr r0, [sp, #0xc]
- str r0, [r1]
- b _02234A26
-_022349FE:
- ldr r2, [sp, #0xc]
- ldr r0, [r1]
- sub r0, r2, r0
- str r0, [sp, #0xc]
- bpl _02234A26
- mov r0, #0
- str r0, [sp, #0xc]
- b _02234A26
-_02234A0E:
- ldr r2, [sp, #0xc]
- ldr r0, [r1]
- eor r0, r2
- str r0, [sp, #0xc]
- b _02234A26
-_02234A18:
- ldr r2, [sp, #0xc]
- ldr r0, [r1]
- and r0, r2
- str r0, [sp, #0xc]
- b _02234A26
-_02234A22:
- bl ErrorHandling
-_02234A26:
- cmp r5, #0x11
- beq _02234A56
- cmp r6, #0x1a
- bne _02234A40
- ldr r1, [sp]
- ldr r2, [sp, #0xc]
- lsl r1, r1, #0x18
- lsl r2, r2, #0x18
- add r0, r4, #0
- lsr r1, r1, #0x18
- lsr r2, r2, #0x18
- bl MOD11_0223D1C4
-_02234A40:
- ldr r1, [sp]
- add r0, r4, #0
- add r2, r6, #0
- add r3, sp, #0xc
- bl MOD11_0224379C
- ldr r2, [sp]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02245190
-_02234A56:
- mov r0, #0
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02234A5C
-MOD11_02234A5C: ; 0x02234A5C
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_0223A424
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02234A7C
-MOD11_02234A7C: ; 0x02234A7C
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A43C
- mov r0, #0
- pop {r4, pc}
-
- thumb_func_start MOD11_02234A9C
-MOD11_02234A9C: ; 0x02234A9C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A444
- add r2, r0, #0
- ldr r2, [r2]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A43C
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02234ACC
-MOD11_02234ACC: ; 0x02234ACC
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- str r0, [sp, #8]
- mov r4, #0
- bl MOD11_0222FF74
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, [r5, #0x64]
- lsl r0, r1, #1
- add r2, r5, r0
- ldr r0, _02234BCC ; =0x00003084
- ldrh r2, [r2, r0]
- cmp r2, #0
- beq _02234AF6
- add r4, r2, #0
- b _02234B40
-_02234AF6:
- mov r2, #2
- tst r2, r6
- beq _02234B40
- lsl r1, r1, #3
- add r3, r5, r1
- add r1, r0, #0
- add r1, #0xe
- add r4, r0, #0
- ldrh r2, [r3, r1]
- add r1, r0, #0
- add r4, #8
- add r0, #0xa
- add r1, #0xc
- ldrh r4, [r3, r4]
- ldrh r0, [r3, r0]
- ldrh r1, [r3, r1]
- add r0, r4, r0
- add r0, r1, r0
- add r4, r2, r0
- beq _02234B40
- ldr r6, _02234BD0 ; =0x0000308C
- mov r7, #0x1e
-_02234B22:
- bl rand_LC
- lsr r2, r0, #0x1f
- lsl r0, r0, #0x1e
- ldr r1, [r5, #0x64]
- sub r0, r0, r2
- ror r0, r7
- add r0, r2, r0
- lsl r1, r1, #3
- lsl r2, r0, #1
- add r0, r5, r1
- add r0, r2, r0
- ldrh r4, [r0, r6]
- cmp r4, #0
- beq _02234B22
-_02234B40:
- cmp r4, #0
- beq _02234BAA
- lsl r1, r4, #0x10
- add r0, r5, #0
- lsr r1, r1, #0x10
- bl MOD11_0224C0B4
- cmp r0, #1
- bne _02234BAA
- ldr r1, _02234BD4 ; =0x0000213C
- lsl r3, r4, #0x10
- ldr r2, [r5, r1]
- mov r0, #1
- bic r2, r0
- str r2, [r5, r1]
- ldr r2, [r5, r1]
- ldr r0, _02234BD8 ; =0xFFFFBFFF
- lsr r3, r3, #0x10
- and r0, r2
- str r0, [r5, r1]
- ldr r0, _02234BDC ; =0x00003044
- add r1, r5, #0
- str r4, [r5, r0]
- mov r0, #1
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- ldr r0, [sp, #8]
- ldr r2, [r5, #0x64]
- bl MOD11_02244C28
- str r0, [r5, #0x6c]
- cmp r0, #0xff
- bne _02234B94
- mov r2, #0x26
- str r2, [r5, #0xc]
- add r0, r5, #0
- mov r1, #1
- add r2, #0xf3
- bl MOD11_0223A434
- b _02234BC4
-_02234B94:
- ldr r1, [r5, #0x64]
- lsl r1, r1, #4
- add r2, r5, r1
- ldr r1, _02234BE0 ; =0x000021AC
- str r0, [r2, r1]
- add r0, r5, #0
- mov r1, #0
- add r2, r4, #0
- bl MOD11_0223A434
- b _02234BC4
-_02234BAA:
- ldr r2, [r5, #0x64]
- mov r0, #0xb5
- lsl r0, r0, #2
- mov r1, #0x1c
- add r3, r2, #0
- mul r3, r1
- add r0, r5, r0
- ldr r2, [r0, r3]
- mov r1, #1
- bic r2, r1
- mov r1, #1
- orr r1, r2
- str r1, [r0, r3]
-_02234BC4:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02234BCC: .word 0x00003084
-_02234BD0: .word 0x0000308C
-_02234BD4: .word 0x0000213C
-_02234BD8: .word 0xFFFFBFFF
-_02234BDC: .word 0x00003044
-_02234BE0: .word 0x000021AC
-
- thumb_func_start MOD11_02234BE4
-MOD11_02234BE4: ; 0x02234BE4
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0222FF84
- mov r2, #0
- cmp r0, #0
- ble _02234C24
- ldr r6, _02234C28 ; =0x00002D58
- mov r1, #6
- add r5, r6, #0
- add r5, #0x58
-_02234C06:
- mov r7, #0
-_02234C08:
- add r3, r4, r7
- add r7, r7, #1
- strb r1, [r3, r6]
- cmp r7, #8
- blt _02234C08
- ldr r3, _02234C2C ; =0x00002DB0
- add r2, r2, #1
- ldr r7, [r4, r3]
- ldr r3, _02234C30 ; =0xFFEFFFFF
- and r3, r7
- str r3, [r4, r5]
- add r4, #0xc0
- cmp r2, r0
- blt _02234C06
-_02234C24:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02234C28: .word 0x00002D58
-_02234C2C: .word 0x00002DB0
-_02234C30: .word 0xFFEFFFFF
-
- thumb_func_start MOD11_02234C34
-MOD11_02234C34: ; 0x02234C34
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022451C0
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02234C60
-MOD11_02234C60: ; 0x02234C60
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022451F0
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02234C8C
-MOD11_02234C8C: ; 0x02234C8C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r5, #0
- add r2, r7, #0
- bl MOD11_02255E0C
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02234CC4
-MOD11_02234CC4: ; 0x02234CC4
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r5, #0
- add r2, r7, #0
- bl MOD11_02255E2C
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02234CFC
-MOD11_02234CFC: ; 0x02234CFC
- push {r4, r5, r6, r7, lr}
- sub sp, #0x3c
- add r7, r0, #0
- add r5, r1, #0
- str r2, [sp]
- mov r0, #5
- mov r1, #0x60
- bl AllocFromHeap
- add r4, r0, #0
- ldr r0, [sp]
- add r6, r7, #0
- lsl r0, r0, #1
- add r6, #0xa0
- str r0, [sp, #4]
- ldrh r0, [r6, r0]
- add r1, sp, #8
- bl FUN_0206ADE0
- ldr r0, [sp, #4]
- add r1, r4, #0
- ldrh r0, [r6, r0]
- bl FUN_0206ADF0
- add r0, sp, #8
- ldrb r1, [r0]
- cmp r1, #3
- bhi _02234D48
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02234D40: ; jump table
- .short _02234D48 - _02234D40 - 2 ; case 0
- .short _02234D5C - _02234D40 - 2 ; case 1
- .short _02234D6E - _02234D40 - 2 ; case 2
- .short _02234D7E - _02234D40 - 2 ; case 3
-_02234D48:
- add r0, sp, #8
- ldrb r0, [r0, #3]
- sub r1, r0, #1
- mov r0, #6
- mul r0, r1
- add r0, r4, r0
- ldrh r0, [r0, #2]
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- b _02234D8C
-_02234D5C:
- ldrb r0, [r0, #3]
- sub r1, r0, #1
- mov r0, #0xe
- mul r0, r1
- add r0, r4, r0
- ldrh r0, [r0, #2]
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- b _02234D8C
-_02234D6E:
- ldrb r0, [r0, #3]
- sub r0, r0, #1
- lsl r0, r0, #3
- add r0, r4, r0
- ldrh r0, [r0, #2]
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- b _02234D8C
-_02234D7E:
- ldrb r0, [r0, #3]
- sub r0, r0, #1
- lsl r0, r0, #4
- add r0, r4, r0
- ldrh r0, [r0, #2]
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
-_02234D8C:
- ldr r2, [r7, #0x2c]
- mov r0, #0x10
- tst r0, r2
- bne _02234D98
- cmp r2, #0x4b
- bne _02234DAE
-_02234D98:
- add r0, sp, #8
- ldrb r2, [r0, #1]
- ldr r0, _02234DEC ; =0x0225FF20
- lsl r1, r1, #2
- ldrb r0, [r0, r2]
- ldr r2, _02234DF0 ; =0x00002168
- ldr r2, [r5, r2]
- add r5, r0, #0
- mul r1, r2
- mul r5, r1
- b _02234DDE
-_02234DAE:
- mov r0, #2
- tst r0, r2
- add r0, sp, #8
- beq _02234DCC
- ldrb r2, [r0, #1]
- ldr r0, _02234DEC ; =0x0225FF20
- lsl r1, r1, #2
- ldrb r0, [r0, r2]
- ldr r2, _02234DF0 ; =0x00002168
- ldr r2, [r5, r2]
- add r5, r0, #0
- mul r1, r2
- lsl r1, r1, #1
- mul r5, r1
- b _02234DDE
-_02234DCC:
- ldrb r2, [r0, #1]
- ldr r0, _02234DEC ; =0x0225FF20
- lsl r1, r1, #2
- ldrb r0, [r0, r2]
- ldr r2, _02234DF0 ; =0x00002168
- ldr r2, [r5, r2]
- add r5, r0, #0
- mul r1, r2
- mul r5, r1
-_02234DDE:
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- add sp, #0x3c
- pop {r4, r5, r6, r7, pc}
- nop
-_02234DEC: .word 0x0225FF20
-_02234DF0: .word 0x00002168
-
- thumb_func_start MOD11_02234DF4
-MOD11_02234DF4: ; 0x02234DF4
- push {r4, r5, r6, lr}
- add r6, r1, #0
- add r5, r0, #0
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, _02234E70 ; =0x0000241C
- ldrb r0, [r5, r0]
- cmp r0, #1
- bne _02234E3E
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #1
- bl MOD11_02234CFC
- add r4, r0, #0
- ldr r1, [r5, #0x2c]
- mov r0, #0x10
- tst r0, r1
- bne _02234E22
- cmp r1, #0x4b
- bne _02234E2E
-_02234E22:
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #3
- bl MOD11_02234CFC
- add r4, r4, r0
-_02234E2E:
- add r0, r5, #0
- mov r1, #0
- bl MOD11_022301D4
- add r1, r4, #0
- bl FUN_02023A30
- b _02234E56
-_02234E3E:
- ldr r0, [r5, #0x68]
- ldr r1, [r5, #0x48]
- bl MOD11_0223158C
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #0
- bl MOD11_022301D4
- add r1, r4, #0
- bl FUN_02023A54
-_02234E56:
- cmp r4, #0
- beq _02234E62
- mov r0, #0x13
- lsl r0, r0, #4
- str r4, [r6, r0]
- b _02234E6A
-_02234E62:
- mov r0, #0x13
- mov r1, #0
- lsl r0, r0, #4
- str r1, [r6, r0]
-_02234E6A:
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_02234E70: .word 0x0000241C
-
- thumb_func_start MOD11_02234E74
-MOD11_02234E74: ; 0x02234E74
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r6, #0
- bl MOD11_02230E20
- cmp r0, #1
- beq _02234EAC
- cmp r4, #0xf
- beq _02234EAC
- cmp r4, #0x10
- beq _02234EAC
- add r0, r4, #0
- sub r0, #0x19
- cmp r0, #1
- bhi _02234ED2
-_02234EAC:
- add r0, r6, #0
- add r1, r5, #0
- add r2, r7, #0
- bl MOD11_0223C230
- add r7, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- bl MOD11_0224C20C
- cmp r0, #1
- bne _02234ED2
- add r0, r6, #0
- add r1, r5, #0
- add r2, r7, #0
- add r3, r4, #0
- bl MOD11_02255E4C
-_02234ED2:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02234ED8
-MOD11_02234ED8: ; 0x02234ED8
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r6, #0
- bl MOD11_02230E20
- cmp r0, #1
- beq _02234F1A
- cmp r4, #0xf
- beq _02234F1A
- cmp r4, #0x10
- beq _02234F1A
- add r0, r4, #0
- sub r0, #0x19
- cmp r0, #1
- bhi _02234F5C
-_02234F1A:
- add r0, r6, #0
- add r1, r5, #0
- add r2, r7, #0
- bl MOD11_0223C230
- add r7, r0, #0
- ldr r2, [sp, #4]
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0223C230
- str r0, [sp, #8]
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- bl MOD11_0224C20C
- cmp r0, #1
- bne _02234F5C
- ldr r1, [sp, #8]
- add r0, r5, #0
- add r2, r4, #0
- bl MOD11_0224C20C
- cmp r0, #1
- bne _02234F5C
- ldr r3, [sp, #8]
- add r0, r6, #0
- add r1, r5, #0
- add r2, r7, #0
- str r4, [sp]
- bl MOD11_02255E7C
-_02234F5C:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02234F64
-MOD11_02234F64: ; 0x02234F64
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r7, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0223C230
- str r0, [sp]
- add r0, r7, #0
- add r1, r5, #0
- add r2, r6, #0
- bl MOD11_0223A444
- add r4, r0, #0
- add r0, r7, #0
- bl MOD11_02230E20
- cmp r0, #1
- beq _02234FB4
- cmp r6, #0xf
- beq _02234FB4
- cmp r6, #0x10
- beq _02234FB4
- ldr r0, [r4]
- sub r0, #0x19
- cmp r0, #1
- bhi _02234FCE
-_02234FB4:
- ldr r1, [sp]
- ldr r2, [r4]
- add r0, r5, #0
- bl MOD11_0224C20C
- cmp r0, #1
- bne _02234FCE
- ldr r2, [sp]
- ldr r3, [r4]
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_02255E4C
-_02234FCE:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02234FD4
-MOD11_02234FD4: ; 0x02234FD4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r1, r4, #0
- ldr r3, _02235008 ; =0x0000219C
- add r4, r4, r2
- ldrb r3, [r4, r3]
- add r0, r5, #0
- bl MOD11_02255EAC
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02235008: .word 0x0000219C
-
- thumb_func_start MOD11_0223500C
-MOD11_0223500C: ; 0x0223500C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r1, r4, #0
- ldr r3, _02235040 ; =0x0000219C
- add r4, r4, r2
- ldrb r3, [r4, r3]
- add r0, r5, #0
- bl MOD11_02255EF0
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02235040: .word 0x0000219C
-
- thumb_func_start MOD11_02235044
-MOD11_02235044: ; 0x02235044
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02255F3C
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02235070
-MOD11_02235070: ; 0x02235070
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02255F54
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0223509C
-MOD11_0223509C: ; 0x0223509C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- mov r2, #0x13
- lsl r2, r2, #4
- add r1, r0, #0
- ldr r2, [r4, r2]
- add r0, r5, #0
- bl MOD11_02255E2C
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022350CC
-MOD11_022350CC: ; 0x022350CC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x79
- bne _022350FC
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_0223A424
- add sp, #8
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_022350FC:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _02235238 ; =0x00002D4C
- mov r6, #0
-_02235108:
- ldrh r1, [r2, r0]
- cmp r1, #0
- beq _02235116
- add r6, r6, #1
- add r2, r2, #2
- cmp r6, #4
- blt _02235108
-_02235116:
- mov r0, #0
- str r0, [sp, #4]
- cmp r6, #0
- ble _0223518E
- add r7, r0, #0
-_02235120:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r0, r4, r0
- add r2, r7, r0
- ldr r0, _02235238 ; =0x00002D4C
- ldrh r0, [r2, r0]
- cmp r0, #0xa0
- beq _02235182
- lsl r0, r0, #4
- add r2, r4, r0
- ldr r0, _0223523C ; =0x000003E2
- ldrb r5, [r2, r0]
- cmp r5, #9
- bne _02235162
- add r0, r4, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #7
- beq _0223515C
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #7
- bne _02235160
-_0223515C:
- mov r5, #7
- b _02235162
-_02235160:
- mov r5, #0
-_02235162:
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r5, r0
- beq _02235182
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r5, r0
- bne _0223518E
-_02235182:
- ldr r0, [sp, #4]
- add r7, r7, #2
- add r0, r0, #1
- str r0, [sp, #4]
- cmp r0, r6
- blt _02235120
-_0223518E:
- ldr r0, [sp, #4]
- cmp r0, r6
- bne _0223519E
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_0223A424
- b _02235230
-_0223519E:
- ldr r7, _02235238 ; =0x00002D4C
-_022351A0:
- bl rand_LC
- add r1, r6, #0
- bl _s32_div_f
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- lsl r1, r1, #1
- add r0, r4, r0
- add r0, r1, r0
- ldrh r0, [r0, r7]
- cmp r0, #0xa0
- beq _022351A0
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _0223523C ; =0x000003E2
- ldrb r5, [r1, r0]
- cmp r5, #9
- bne _022351EE
- add r1, r2, #0
- add r0, r4, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #7
- beq _022351E8
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #7
- bne _022351EC
-_022351E8:
- mov r5, #7
- b _022351EE
-_022351EC:
- mov r5, #0
-_022351EE:
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r5, r0
- beq _022351A0
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r5, r0
- beq _022351A0
- ldr r1, [r4, #0x64]
- lsl r0, r5, #0x18
- add r3, r1, #0
- mov r2, #0xc0
- mul r3, r2
- ldr r1, _02235240 ; =0x00002D64
- lsr r0, r0, #0x18
- add r3, r4, r3
- strb r0, [r3, r1]
- ldr r3, [r4, #0x64]
- add r1, r1, #1
- add r6, r3, #0
- mul r6, r2
- add r3, r4, r6
- strb r0, [r3, r1]
- add r2, #0x70
- str r5, [r4, r2]
-_02235230:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02235238: .word 0x00002D4C
-_0223523C: .word 0x000003E2
-_02235240: .word 0x00002D64
-
- thumb_func_start MOD11_02235244
-MOD11_02235244: ; 0x02235244
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r6, r1, #0
- str r0, [sp]
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r6, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r6, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r6, #0
- bl MOD11_0223A404
- add r5, r0, #0
- ldr r0, [sp]
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_0223A444
- add r4, r0, #0
- ldr r0, [sp]
- ldr r2, [sp, #4]
- add r1, r6, #0
- bl MOD11_0223A444
- cmp r7, #6
- bhi _022352FC
- add r1, r7, r7
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0223529A: ; jump table
- .short _022352A8 - _0223529A - 2 ; case 0
- .short _022352B4 - _0223529A - 2 ; case 1
- .short _022352C0 - _0223529A - 2 ; case 2
- .short _022352CC - _0223529A - 2 ; case 3
- .short _022352D8 - _0223529A - 2 ; case 4
- .short _022352E4 - _0223529A - 2 ; case 5
- .short _022352F0 - _0223529A - 2 ; case 6
-_022352A8:
- ldr r1, [r4]
- ldr r0, [r0]
- cmp r1, r0
- beq _022352FC
- mov r5, #0
- b _022352FC
-_022352B4:
- ldr r1, [r4]
- ldr r0, [r0]
- cmp r1, r0
- bne _022352FC
- mov r5, #0
- b _022352FC
-_022352C0:
- ldr r1, [r4]
- ldr r0, [r0]
- cmp r1, r0
- bhi _022352FC
- mov r5, #0
- b _022352FC
-_022352CC:
- ldr r1, [r4]
- ldr r0, [r0]
- cmp r1, r0
- bls _022352FC
- mov r5, #0
- b _022352FC
-_022352D8:
- ldr r1, [r4]
- ldr r0, [r0]
- tst r0, r1
- bne _022352FC
- mov r5, #0
- b _022352FC
-_022352E4:
- ldr r1, [r4]
- ldr r0, [r0]
- tst r0, r1
- beq _022352FC
- mov r5, #0
- b _022352FC
-_022352F0:
- ldr r1, [r0]
- ldr r0, [r4]
- and r0, r1
- cmp r1, r0
- beq _022352FC
- mov r5, #0
-_022352FC:
- cmp r5, #0
- beq _02235308
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0223A424
-_02235308:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02235310
-MOD11_02235310: ; 0x02235310
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r6, r1, #0
- str r0, [sp]
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r6, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r6, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r6, #0
- bl MOD11_0223A404
- str r0, [sp, #8]
- add r0, r6, #0
- bl MOD11_0223A404
- add r5, r0, #0
- ldr r0, [sp]
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_0223C230
- add r1, r0, #0
- ldr r2, [sp, #4]
- add r0, r6, #0
- mov r3, #0
- bl MOD11_02243420
- add r4, r0, #0
- ldr r0, [sp]
- ldr r2, [sp, #8]
- add r1, r6, #0
- bl MOD11_0223A444
- cmp r7, #6
- bhi _022353D0
- add r1, r7, r7
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0223537A: ; jump table
- .short _02235388 - _0223537A - 2 ; case 0
- .short _02235392 - _0223537A - 2 ; case 1
- .short _0223539C - _0223537A - 2 ; case 2
- .short _022353A6 - _0223537A - 2 ; case 3
- .short _022353B0 - _0223537A - 2 ; case 4
- .short _022353BA - _0223537A - 2 ; case 5
- .short _022353C4 - _0223537A - 2 ; case 6
-_02235388:
- ldr r0, [r0]
- cmp r4, r0
- beq _022353D0
- mov r5, #0
- b _022353D0
-_02235392:
- ldr r0, [r0]
- cmp r4, r0
- bne _022353D0
- mov r5, #0
- b _022353D0
-_0223539C:
- ldr r0, [r0]
- cmp r4, r0
- bhi _022353D0
- mov r5, #0
- b _022353D0
-_022353A6:
- ldr r0, [r0]
- cmp r4, r0
- bls _022353D0
- mov r5, #0
- b _022353D0
-_022353B0:
- ldr r0, [r0]
- tst r0, r4
- bne _022353D0
- mov r5, #0
- b _022353D0
-_022353BA:
- ldr r0, [r0]
- tst r0, r4
- beq _022353D0
- mov r5, #0
- b _022353D0
-_022353C4:
- ldr r1, [r0]
- add r0, r1, #0
- and r0, r4
- cmp r1, r0
- beq _022353D0
- mov r5, #0
-_022353D0:
- cmp r5, #0
- beq _022353DC
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0223A424
-_022353DC:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022353E4
-MOD11_022353E4: ; 0x022353E4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- mov r0, #0x53
- lsl r0, r0, #2
- ldr r1, _0223542C ; =0x00002168
- ldr r2, [r4, r0]
- ldr r1, [r4, r1]
- add r3, r2, #0
- mul r3, r1
- add r1, r0, #0
- sub r1, #0x1c
- str r3, [r4, r1]
- add r1, r0, #0
- sub r1, #0x1c
- ldr r2, [r4, r1]
- ldr r1, _02235430 ; =0x0000FFFF
- cmp r2, r1
- ble _02235416
- sub r0, #0x1c
- str r1, [r4, r0]
-_02235416:
- add r0, r5, #0
- mov r1, #0
- bl MOD11_022301D4
- mov r1, #0x13
- lsl r1, r1, #4
- ldr r1, [r4, r1]
- bl FUN_02023A30
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0223542C: .word 0x00002168
-_02235430: .word 0x0000FFFF
-
- thumb_func_start MOD11_02235434
-MOD11_02235434: ; 0x02235434
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp]
- ldr r1, [r5, #0x64]
- add r0, r7, #0
- bl MOD11_02230270
- add r6, r0, #0
- mov r0, #0x6f
- lsl r0, r0, #2
- add r3, r5, r0
- lsl r2, r6, #2
- ldr r1, [r3, r2]
- mov r4, #2
- tst r4, r1
- beq _02235478
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD11_0223A424
- ldr r1, _02235508 ; =0x0000216C
- mov r0, #0x40
- ldr r2, [r5, r1]
- orr r0, r2
- str r0, [r5, r1]
- b _02235504
-_02235478:
- mov r4, #2
- orr r1, r4
- str r1, [r3, r2]
- add r1, r0, #0
- add r1, #8
- add r4, r5, r1
- lsl r6, r6, #3
- ldr r2, [r4, r6]
- ldr r1, _0223550C ; =0xFFFFFC7F
- add r0, #0xc4
- and r1, r2
- orr r0, r1
- str r0, [r4, r6]
- ldr r0, [r4, r6]
- mov r1, #0x60
- bic r0, r1
- ldr r1, [r5, #0x64]
- lsl r1, r1, #0x1e
- lsr r1, r1, #0x19
- orr r0, r1
- str r0, [r4, r6]
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02249D90
- cmp r0, #0x60
- bne _022354CC
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- mov r2, #0
- bl MOD11_02249DA4
- ldr r1, [r4, r6]
- ldr r2, _0223550C ; =0xFFFFFC7F
- and r2, r1
- lsl r1, r1, #0x16
- lsr r1, r1, #0x1d
- add r0, r1, r0
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x16
- orr r0, r2
- str r0, [r4, r6]
-_022354CC:
- add r0, r5, #0
- mov r1, #0x14
- add r0, #0xf5
- strb r1, [r0]
- ldr r0, _02235510 ; =0x00003044
- mov r2, #1
- ldr r1, [r5, r0]
- add r0, r5, #0
- add r0, #0xf8
- str r1, [r0]
- add r0, r5, #0
- ldr r1, [r5, #0x64]
- add r0, #0xfc
- str r1, [r0]
- ldr r3, [r5, #0x64]
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_022467AC
- cmp r0, #2
- bne _022354FE
- mov r0, #0xc0
- add r5, #0xf6
- strh r0, [r5]
- b _02235504
-_022354FE:
- mov r0, #0xbe
- add r5, #0xf6
- strh r0, [r5]
-_02235504:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02235508: .word 0x0000216C
-_0223550C: .word 0xFFFFFC7F
-_02235510: .word 0x00003044
-
- thumb_func_start MOD11_02235514
-MOD11_02235514: ; 0x02235514
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp]
- ldr r1, [r5, #0x64]
- add r0, r7, #0
- bl MOD11_02230270
- add r6, r0, #0
- mov r0, #0x6f
- lsl r0, r0, #2
- add r3, r5, r0
- lsl r2, r6, #2
- ldr r1, [r3, r2]
- mov r4, #1
- tst r4, r1
- beq _02235558
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD11_0223A424
- ldr r1, _022355EC ; =0x0000216C
- mov r0, #0x40
- ldr r2, [r5, r1]
- orr r0, r2
- str r0, [r5, r1]
- b _022355E6
-_02235558:
- mov r4, #1
- orr r1, r4
- add r0, #8
- add r4, r5, r0
- lsl r6, r6, #3
- str r1, [r3, r2]
- ldr r1, [r4, r6]
- mov r0, #0x1c
- bic r1, r0
- mov r0, #0x14
- orr r0, r1
- str r0, [r4, r6]
- ldr r0, [r4, r6]
- mov r1, #3
- bic r0, r1
- ldr r2, [r5, #0x64]
- mov r1, #3
- and r1, r2
- orr r0, r1
- str r0, [r4, r6]
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02249D90
- cmp r0, #0x60
- bne _022355AE
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- mov r2, #0
- bl MOD11_02249DA4
- ldr r1, [r4, r6]
- add r3, r0, #0
- mov r0, #0x1c
- add r2, r1, #0
- bic r2, r0
- lsl r0, r1, #0x1b
- lsr r0, r0, #0x1d
- add r0, r0, r3
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1b
- orr r0, r2
- str r0, [r4, r6]
-_022355AE:
- add r0, r5, #0
- mov r1, #0x14
- add r0, #0xf5
- strb r1, [r0]
- ldr r0, _022355F0 ; =0x00003044
- mov r2, #1
- ldr r1, [r5, r0]
- add r0, r5, #0
- add r0, #0xf8
- str r1, [r0]
- add r0, r5, #0
- ldr r1, [r5, #0x64]
- add r0, #0xfc
- str r1, [r0]
- ldr r3, [r5, #0x64]
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_022467AC
- cmp r0, #2
- bne _022355E0
- mov r0, #0xc4
- add r5, #0xf6
- strh r0, [r5]
- b _022355E6
-_022355E0:
- mov r0, #0xc2
- add r5, #0xf6
- strh r0, [r5]
-_022355E6:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022355EC: .word 0x0000216C
-_022355F0: .word 0x00003044
-
- thumb_func_start MOD11_022355F4
-MOD11_022355F4: ; 0x022355F4
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- mov r5, #0x6f
- add r2, r0, #0
- lsl r5, r5, #2
- add r1, r4, r5
- lsl r0, r2, #2
- ldr r6, [r1, r0]
- mov r3, #0x40
- tst r3, r6
- beq _02235638
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_0223A424
- ldr r1, _02235668 ; =0x0000216C
- mov r0, #0x40
- ldr r2, [r4, r1]
- orr r0, r2
- str r0, [r4, r1]
- b _02235662
-_02235638:
- mov r3, #0x40
- orr r3, r6
- str r3, [r1, r0]
- add r5, #8
- lsl r0, r2, #3
- add r1, r4, r5
- ldr r3, [r1, r0]
- ldr r2, _0223566C ; =0xFFFF8FFF
- and r3, r2
- mov r2, #5
- lsl r2, r2, #0xc
- orr r2, r3
- str r2, [r1, r0]
- ldr r3, [r1, r0]
- ldr r2, _02235670 ; =0xFFFFF3FF
- and r3, r2
- ldr r2, [r4, #0x64]
- lsl r2, r2, #0x1e
- lsr r2, r2, #0x14
- orr r2, r3
- str r2, [r1, r0]
-_02235662:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02235668: .word 0x0000216C
-_0223566C: .word 0xFFFF8FFF
-_02235670: .word 0xFFFFF3FF
-
- thumb_func_start MOD11_02235674
-MOD11_02235674: ; 0x02235674
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, _02235844 ; =0x0000213C
- mov r0, #1
- ldr r2, [r4, r1]
- lsl r0, r0, #0xa
- orr r0, r2
- str r0, [r4, r1]
- ldr r1, [r4, #0x64]
- ldr r2, [r4, #0x6c]
- add r0, r4, #0
- mov r3, #5
- bl MOD11_02246D84
- cmp r0, #1
- bne _022356AA
- ldr r1, _02235848 ; =0x0000216C
- mov r0, #2
- ldr r2, [r4, r1]
- lsl r0, r0, #0x12
- orr r0, r2
- str r0, [r4, r1]
- b _0223583E
-_022356AA:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r1, [r1, r0]
- mov r0, #0x18
- tst r0, r1
- bne _02235730
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x63
- beq _02235730
- ldr r1, [r4, #0x6c]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x63
- beq _02235730
- ldr r0, _0223584C ; =0x00003044
- mov r2, #0xc0
- ldr r0, [r4, r0]
- ldr r5, [r4, #0x6c]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _02235850 ; =0x000003E3
- ldrb r1, [r1, r0]
- ldr r0, [r4, #0x64]
- add r3, r0, #0
- mul r3, r2
- add r0, r4, r3
- ldr r3, _02235854 ; =0x00002D74
- mul r2, r5
- add r2, r4, r2
- ldrb r0, [r0, r3]
- ldrb r2, [r2, r3]
- sub r0, r0, r2
- add r0, r1, r0
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- cmp r1, r5
- bge _0223572C
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, _02235854 ; =0x00002D74
- add r2, r4, r2
- ldrb r3, [r2, r1]
- ldr r2, [r4, #0x6c]
- mul r0, r2
- add r0, r4, r0
- ldrb r0, [r0, r1]
- cmp r3, r0
- blo _0223572C
- mov r3, #1
- b _022357E8
-_0223572C:
- mov r3, #0
- b _022357E8
-_02235730:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r3, r4, r0
- ldr r0, _02235858 ; =0x00002DCC
- ldr r1, [r4, #0x64]
- ldr r2, [r3, r0]
- lsl r2, r2, #0x1e
- lsr r2, r2, #0x1e
- cmp r1, r2
- bne _02235750
- sub r0, #0xc
- ldr r2, [r3, r0]
- mov r0, #0x18
- tst r0, r2
- bne _02235766
-_02235750:
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x63
- beq _02235766
- ldr r1, [r4, #0x6c]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x63
- bne _02235784
-_02235766:
- ldr r0, [r4, #0x64]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r3, [r4, #0x6c]
- add r0, r4, r2
- ldr r2, _02235854 ; =0x00002D74
- mul r1, r3
- add r1, r4, r1
- ldrb r0, [r0, r2]
- ldrb r1, [r1, r2]
- cmp r0, r1
- blo _02235784
- mov r3, #1
- b _022357DC
-_02235784:
- ldr r0, _0223584C ; =0x00003044
- mov r2, #0xc0
- ldr r0, [r4, r0]
- ldr r5, [r4, #0x6c]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _02235850 ; =0x000003E3
- ldrb r1, [r1, r0]
- ldr r0, [r4, #0x64]
- add r3, r0, #0
- mul r3, r2
- add r0, r4, r3
- ldr r3, _02235854 ; =0x00002D74
- mul r2, r5
- add r2, r4, r2
- ldrb r0, [r0, r3]
- ldrb r2, [r2, r3]
- sub r0, r0, r2
- add r0, r1, r0
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- cmp r1, r5
- bge _022357DA
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, _02235854 ; =0x00002D74
- add r2, r4, r2
- ldrb r3, [r2, r1]
- ldr r2, [r4, #0x6c]
- mul r0, r2
- add r0, r4, r0
- ldrb r0, [r0, r1]
- cmp r3, r0
- blo _022357DA
- mov r3, #1
- b _022357DC
-_022357DA:
- mov r3, #0
-_022357DC:
- ldr r1, _02235848 ; =0x0000216C
- mov r0, #1
- ldr r2, [r4, r1]
- lsl r0, r0, #0xa
- orr r0, r2
- str r0, [r4, r1]
-_022357E8:
- cmp r3, #0
- beq _0223580E
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0223585C ; =0x00002D8C
- ldr r0, [r1, r0]
- ldr r1, _02235860 ; =0x00002144
- neg r0, r0
- str r0, [r4, r1]
- add r0, r1, #0
- add r0, #0x28
- ldr r2, [r4, r0]
- mov r0, #0x20
- orr r0, r2
- add r1, #0x28
- str r0, [r4, r1]
- b _0223583E
-_0223580E:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, _02235854 ; =0x00002D74
- add r2, r4, r2
- ldrb r3, [r2, r1]
- ldr r2, [r4, #0x6c]
- mul r0, r2
- add r0, r4, r0
- ldrb r0, [r0, r1]
- cmp r3, r0
- ldr r1, _02235848 ; =0x0000216C
- blo _02235834
- ldr r2, [r4, r1]
- mov r0, #1
- orr r0, r2
- str r0, [r4, r1]
- b _0223583E
-_02235834:
- mov r0, #1
- ldr r2, [r4, r1]
- lsl r0, r0, #0xc
- orr r0, r2
- str r0, [r4, r1]
-_0223583E:
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02235844: .word 0x0000213C
-_02235848: .word 0x0000216C
-_0223584C: .word 0x00003044
-_02235850: .word 0x000003E3
-_02235854: .word 0x00002D74
-_02235858: .word 0x00002DCC
-_0223585C: .word 0x00002D8C
-_02235860: .word 0x00002144
-
- thumb_func_start MOD11_02235864
-MOD11_02235864: ; 0x02235864
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223A444
- add r4, r0, #0
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD11_022476C0
- str r0, [r4]
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0223589C
-MOD11_0223589C: ; 0x0223589C
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0223A444
- add r4, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- add r2, r7, #0
- bl MOD11_0223A444
- add r1, r0, #0
- ldr r0, [r4]
- cmp r0, #0
- bge _022358DE
- mov r5, #0
- mvn r5, r5
- b _022358E0
-_022358DE:
- mov r5, #1
-_022358E0:
- ldr r0, [r4]
- ldr r1, [r1]
- bl _s32_div_f
- str r0, [r4]
- cmp r0, #0
- bne _022358F0
- str r5, [r4]
-_022358F0:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_022358F4
-MOD11_022358F4: ; 0x022358F4
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- str r0, [sp]
- ldr r0, [r6, #0x6c]
- lsl r0, r0, #1
- add r1, r6, r0
- ldr r0, _02235A18 ; =0x0000307C
- ldrh r0, [r1, r0]
- bl MOD11_0224C044
- cmp r0, #0
- beq _0223594E
- ldr r0, [r6, #0x64]
- mov r2, #2
- mov r3, #0xc0
- add r1, r0, #0
- mul r1, r3
- add r0, r6, r1
- ldr r1, _02235A1C ; =0x00002DB0
- mov ip, r0
- ldr r0, [r0, r1]
- lsl r2, r2, #0x14
- tst r0, r2
- bne _0223594E
- ldr r0, [r6, #0x6c]
- add r4, r0, #0
- mul r4, r3
- add r4, r6, r4
- ldr r4, [r4, r1]
- lsl r1, r2, #3
- tst r1, r4
- bne _0223594E
- lsl r0, r0, #1
- add r1, r6, r0
- ldr r0, _02235A18 ; =0x0000307C
- ldrh r7, [r1, r0]
- cmp r7, #0
- bne _02235958
-_0223594E:
- ldr r1, [sp]
- add r0, r6, #0
- bl MOD11_0223A424
- b _02235A14
-_02235958:
- mov r2, #0
- sub r3, #0xc1
- mov r4, ip
- add r5, r2, #0
-_02235960:
- ldr r0, _02235A20 ; =0x00002D4C
- ldrh r0, [r4, r0]
- cmp r7, r0
- beq _02235988
- mov r0, ip
- add r1, r0, r5
- ldr r0, _02235A20 ; =0x00002D4C
- ldrh r0, [r1, r0]
- cmp r0, #0x66
- bne _0223597E
- mov r0, #0
- mvn r0, r0
- cmp r3, r0
- bne _0223597E
- add r3, r2, #0
-_0223597E:
- add r2, r2, #1
- add r4, r4, #2
- add r5, r5, #2
- cmp r2, #4
- blt _02235960
-_02235988:
- cmp r2, #4
- bne _02235A0C
- mov r4, #0x49
- lsl r4, r4, #2
- str r7, [r6, r4]
- ldr r2, [r6, #0x64]
- mov r1, #0xc0
- add r5, r2, #0
- mul r5, r1
- add r5, r6, r5
- lsl r2, r3, #1
- add r5, r5, r2
- ldr r0, [r6, r4]
- ldr r2, _02235A20 ; =0x00002D4C
- strh r0, [r5, r2]
- ldr r0, [r6, r4]
- lsl r0, r0, #4
- add r4, r6, r0
- mov r0, #0xf9
- lsl r0, r0, #2
- ldrb r0, [r4, r0]
- cmp r0, #5
- bhs _022359B8
- b _022359BA
-_022359B8:
- mov r0, #5
-_022359BA:
- ldr r4, [r6, #0x64]
- add r2, #0x20
- mul r1, r4
- add r1, r6, r1
- add r1, r1, r3
- strb r0, [r1, r2]
- add r0, r3, #0
- bl MaskOfFlagNo
- ldr r1, _02235A24 ; =0x00002DCC
- mov r4, #0xc0
- add r3, r6, r1
- ldr r1, [r6, #0x64]
- mov r5, #0x3c
- add r2, r1, #0
- mul r2, r4
- ldr r7, [r3, r2]
- add r1, r7, #0
- bic r1, r5
- lsl r5, r7, #0x1a
- lsr r5, r5, #0x1c
- orr r0, r5
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1a
- orr r0, r1
- str r0, [r3, r2]
- add r0, r4, #0
- add r0, #0x64
- ldr r1, [r6, r0]
- add r0, r4, #0
- add r0, #0xc3
- cmp r1, r0
- bne _02235A14
- ldr r0, [r6, #0x64]
- add r2, r0, #0
- mul r2, r4
- ldr r1, [r3, r2]
- ldr r0, _02235A28 ; =0xFFFFE3FF
- and r0, r1
- str r0, [r3, r2]
- b _02235A14
-_02235A0C:
- ldr r1, [sp]
- add r0, r6, #0
- bl MOD11_0223A424
-_02235A14:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02235A18: .word 0x0000307C
-_02235A1C: .word 0x00002DB0
-_02235A20: .word 0x00002D4C
-_02235A24: .word 0x00002DCC
-_02235A28: .word 0xFFFFE3FF
-
- thumb_func_start MOD11_02235A2C
-MOD11_02235A2C: ; 0x02235A2C
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r4, _02235A7C ; =0x00002D4C
- mov r7, #0xc0
-_02235A3C:
- bl rand_LC
- ldr r1, _02235A80 ; =0x000001D3
- bl _s32_div_f
- add r0, r1, #1
- ldr r1, [r6, #0x64]
- lsl r0, r0, #0x10
- add r2, r1, #0
- mul r2, r7
- lsr r5, r0, #0x10
- mov r0, #0
- add r2, r6, r2
-_02235A56:
- ldrh r1, [r2, r4]
- cmp r5, r1
- beq _02235A64
- add r0, r0, #1
- add r2, r2, #2
- cmp r0, #4
- blt _02235A56
-_02235A64:
- cmp r0, #4
- bne _02235A3C
- add r0, r5, #0
- bl MOD11_0224C07C
- cmp r0, #0
- beq _02235A3C
- mov r0, #0x49
- lsl r0, r0, #2
- str r5, [r6, r0]
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02235A7C: .word 0x00002D4C
-_02235A80: .word 0x000001D3
-
- thumb_func_start MOD11_02235A84
-MOD11_02235A84: ; 0x02235A84
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- mov r0, #0xb5
- lsl r0, r0, #6
- add r2, r5, r0
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- lsl r1, r1, #1
- add r0, r2, r0
- add r2, r5, r1
- ldr r1, _02235B34 ; =0x0000307C
- ldrh r1, [r2, r1]
- bl MOD11_022461AC
- ldr r3, [r5, #0x6c]
- add r6, r0, #0
- mov r7, #0xc0
- add r0, r3, #0
- mul r0, r7
- add r2, r5, r0
- ldr r0, _02235B38 ; =0x00002DE8
- ldrh r1, [r2, r0]
- cmp r1, #0
- bne _02235B26
- cmp r6, #4
- beq _02235B26
- add r1, r0, #0
- add r2, r2, r6
- sub r1, #0x7c
- ldrb r1, [r2, r1]
- cmp r1, #0
- beq _02235B26
- lsl r1, r3, #1
- add r2, r5, r1
- ldr r1, _02235B34 ; =0x0000307C
- ldrh r2, [r2, r1]
- cmp r2, #0
- beq _02235B26
- add r1, r7, #0
- add r1, #0x64
- str r2, [r5, r1]
- add r1, r7, #0
- add r1, #0x64
- ldr r3, [r5, r1]
- ldr r1, [r5, #0x6c]
- add r2, r1, #0
- mul r2, r7
- add r1, r5, r2
- strh r3, [r1, r0]
- bl rand_LC
- ldr r1, _02235B3C ; =0x00002DC8
- ldr r4, [r5, #0x6c]
- add r3, r5, r1
- add r2, r4, #0
- add r1, r7, #0
- mul r2, r1
- ldr r1, [r3, r2]
- mov r4, #7
- bic r1, r4
- lsr r5, r0, #0x1f
- lsl r4, r0, #0x1e
- sub r4, r4, r5
- mov r0, #0x1e
- ror r4, r0
- add r0, r5, r4
- add r4, r0, #3
- mov r0, #7
- and r0, r4
- orr r0, r1
- str r0, [r3, r2]
- b _02235B2E
-_02235B26:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A424
-_02235B2E:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02235B34: .word 0x0000307C
-_02235B38: .word 0x00002DE8
-_02235B3C: .word 0x00002DC8
-
- thumb_func_start MOD11_02235B40
-MOD11_02235B40: ; 0x02235B40
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, [r5, #0x64]
- lsl r0, r1, #6
- add r2, r5, r0
- mov r0, #0x7a
- lsl r0, r0, #2
- ldr r4, [r2, r0]
- ldr r0, [sp]
- bl MOD11_02230270
- str r0, [sp, #4]
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_02230270
- ldr r6, [r5, #0x64]
- add r3, r0, #0
- lsl r0, r6, #6
- add r1, r5, r0
- lsl r0, r4, #2
- add r0, r1, r0
- mov r1, #0x76
- lsl r1, r1, #2
- ldr r7, [r0, r1]
- cmp r7, #0
- beq _02235C06
- ldr r0, [sp, #4]
- cmp r0, r3
- beq _02235C06
- mov r0, #0xc0
- mul r0, r4
- add r2, r5, r0
- ldr r0, _02235C30 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _02235C06
- ldr r0, _02235C34 ; =0x00002144
- lsl r2, r7, #1
- sub r1, #0x14
- str r2, [r5, r0]
- add r1, r5, r1
- lsl r0, r3, #3
- ldr r0, [r1, r0]
- lsl r1, r0, #0xb
- lsr r1, r1, #0x1f
- beq _02235BC0
- lsl r0, r0, #9
- lsr r0, r0, #0x1e
- mov r1, #0xc0
- mul r1, r0
- add r2, r5, r1
- ldr r1, _02235C30 ; =0x00002D8C
- ldr r1, [r2, r1]
- cmp r1, #0
- beq _02235BC0
- str r0, [r5, #0x6c]
- b _02235BC2
-_02235BC0:
- str r4, [r5, #0x6c]
-_02235BC2:
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02235C30 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02235BFA
- ldr r0, [sp]
- ldr r2, [r5, #0x64]
- add r1, r5, #0
- bl MOD11_022482A4
- mov r1, #0xc0
- mul r1, r0
- str r0, [r5, #0x6c]
- ldr r0, _02235C30 ; =0x00002D8C
- add r1, r5, r1
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02235BFA
- mov r2, #0x26
- str r2, [r5, #0xc]
- add r0, r5, #0
- mov r1, #1
- add r2, #0xf3
- bl MOD11_0223A434
-_02235BFA:
- ldr r1, [r5, #0x64]
- ldr r2, [r5, #0x6c]
- add r0, r5, #0
- bl MOD11_0224C438
- b _02235C28
-_02235C06:
- mov r0, #0xb5
- lsl r0, r0, #2
- mov r1, #0x1c
- add r3, r6, #0
- mul r3, r1
- add r0, r5, r0
- ldr r2, [r0, r3]
- mov r1, #1
- bic r2, r1
- mov r1, #1
- orr r1, r2
- str r1, [r0, r3]
- ldr r1, _02235C38 ; =0x0000216C
- mov r0, #0x40
- ldr r2, [r5, r1]
- orr r0, r2
- str r0, [r5, r1]
-_02235C28:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02235C30: .word 0x00002D8C
-_02235C34: .word 0x00002144
-_02235C38: .word 0x0000216C
-
- thumb_func_start MOD11_02235C3C
-MOD11_02235C3C: ; 0x02235C3C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, [r5, #0x64]
- lsl r0, r1, #6
- add r2, r5, r0
- mov r0, #2
- lsl r0, r0, #8
- ldr r4, [r2, r0]
- ldr r0, [sp]
- bl MOD11_02230270
- str r0, [sp, #4]
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_02230270
- ldr r6, [r5, #0x64]
- add r3, r0, #0
- lsl r0, r6, #6
- add r1, r5, r0
- lsl r0, r4, #2
- add r0, r1, r0
- mov r1, #0x1f
- lsl r1, r1, #4
- ldr r7, [r0, r1]
- cmp r7, #0
- beq _02235D02
- ldr r0, [sp, #4]
- cmp r0, r3
- beq _02235D02
- mov r0, #0xc0
- mul r0, r4
- add r2, r5, r0
- ldr r0, _02235D2C ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _02235D02
- ldr r0, _02235D30 ; =0x00002144
- lsl r2, r7, #1
- sub r1, #0x2c
- str r2, [r5, r0]
- add r1, r5, r1
- lsl r0, r3, #3
- ldr r0, [r1, r0]
- lsl r1, r0, #0xb
- lsr r1, r1, #0x1f
- beq _02235CBC
- lsl r0, r0, #9
- lsr r0, r0, #0x1e
- mov r1, #0xc0
- mul r1, r0
- add r2, r5, r1
- ldr r1, _02235D2C ; =0x00002D8C
- ldr r1, [r2, r1]
- cmp r1, #0
- beq _02235CBC
- str r0, [r5, #0x6c]
- b _02235CBE
-_02235CBC:
- str r4, [r5, #0x6c]
-_02235CBE:
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02235D2C ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02235CF6
- ldr r0, [sp]
- ldr r2, [r5, #0x64]
- add r1, r5, #0
- bl MOD11_022482A4
- mov r1, #0xc0
- mul r1, r0
- str r0, [r5, #0x6c]
- ldr r0, _02235D2C ; =0x00002D8C
- add r1, r5, r1
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02235CF6
- mov r2, #0x26
- str r2, [r5, #0xc]
- add r0, r5, #0
- mov r1, #1
- add r2, #0xf3
- bl MOD11_0223A434
-_02235CF6:
- ldr r1, [r5, #0x64]
- ldr r2, [r5, #0x6c]
- add r0, r5, #0
- bl MOD11_0224C438
- b _02235D24
-_02235D02:
- mov r0, #0xb5
- lsl r0, r0, #2
- mov r1, #0x1c
- add r3, r6, #0
- mul r3, r1
- add r0, r5, r0
- ldr r2, [r0, r3]
- mov r1, #1
- bic r2, r1
- mov r1, #1
- orr r1, r2
- str r1, [r0, r3]
- ldr r1, _02235D34 ; =0x0000216C
- mov r0, #0x40
- ldr r2, [r5, r1]
- orr r0, r2
- str r0, [r5, r1]
-_02235D24:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02235D2C: .word 0x00002D8C
-_02235D30: .word 0x00002144
-_02235D34: .word 0x0000216C
-
- thumb_func_start MOD11_02235D38
-MOD11_02235D38: ; 0x02235D38
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- mov r0, #0xb5
- lsl r0, r0, #6
- add r2, r5, r0
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- lsl r1, r1, #1
- add r0, r2, r0
- add r2, r5, r1
- ldr r1, _02235E0C ; =0x0000307C
- ldrh r1, [r2, r1]
- bl MOD11_022461AC
- ldr r1, [r5, #0x6c]
- add r4, r0, #0
- lsl r1, r1, #1
- add r2, r5, r1
- ldr r1, _02235E0C ; =0x0000307C
- add r0, r5, #0
- ldrh r1, [r2, r1]
- bl MOD11_0224C0B4
- cmp r0, #0
- bne _02235D7E
- mov r4, #4
-_02235D7E:
- ldr r0, [r5, #0x6c]
- mov r2, #0xc0
- add r1, r0, #0
- mul r1, r2
- ldr r3, _02235E10 ; =0x00002DEC
- add r6, r5, r1
- ldrh r1, [r6, r3]
- cmp r1, #0
- bne _02235DF6
- cmp r4, #4
- beq _02235DF6
- add r1, r3, #0
- add r6, r6, r4
- sub r1, #0x80
- ldrb r1, [r6, r1]
- cmp r1, #0
- beq _02235DF6
- lsl r0, r0, #1
- add r1, r5, r0
- ldr r0, _02235E0C ; =0x0000307C
- ldrh r1, [r1, r0]
- cmp r1, #0
- beq _02235DF6
- add r0, r2, #0
- add r0, #0x64
- str r1, [r5, r0]
- ldr r1, [r5, #0x6c]
- add r0, r2, #0
- add r0, #0x64
- add r6, r1, #0
- mul r6, r2
- ldr r0, [r5, r0]
- add r1, r5, r6
- strh r0, [r1, r3]
- ldr r0, [r5, #0x6c]
- add r1, r0, #0
- mul r1, r2
- add r1, r5, r1
- add r0, r3, #2
- strh r4, [r1, r0]
- bl rand_LC
- ldr r1, _02235E14 ; =0x00002DC8
- ldr r2, [r5, #0x6c]
- add r4, r5, r1
- mov r1, #0xc0
- add r5, r2, #0
- mul r5, r1
- mov r1, #5
- bl _s32_div_f
- ldr r2, [r4, r5]
- mov r0, #0x38
- bic r2, r0
- add r0, r1, #3
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1a
- orr r0, r2
- str r0, [r4, r5]
- b _02235E08
-_02235DF6:
- ldr r1, _02235E18 ; =0x0000216C
- mov r0, #0x40
- ldr r2, [r5, r1]
- orr r0, r2
- str r0, [r5, r1]
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_0223A424
-_02235E08:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02235E0C: .word 0x0000307C
-_02235E10: .word 0x00002DEC
-_02235E14: .word 0x00002DC8
-_02235E18: .word 0x0000216C
-
- thumb_func_start MOD11_02235E1C
-MOD11_02235E1C: ; 0x02235E1C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x79
- bne _02235E4C
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_0223A424
- add sp, #8
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02235E4C:
- ldr r0, [r4, #0x64]
- lsl r0, r0, #1
- add r2, r4, r0
- ldr r0, _02235FB4 ; =0x000030C4
- ldrh r1, [r2, r0]
- cmp r1, #0
- beq _02235E62
- add r0, #8
- ldrh r0, [r2, r0]
- cmp r0, #0xff
- bne _02235E64
-_02235E62:
- b _02235FA6
-_02235E64:
- add r0, r4, #0
- bl MOD11_02246AF8
- cmp r0, #0
- beq _02235E98
- ldr r0, [r4, #0x64]
- lsl r0, r0, #1
- add r1, r4, r0
- ldr r0, _02235FB8 ; =0x000030CC
- ldrh r1, [r1, r0]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _02235FBC ; =0x00002DB0
- ldr r1, [r1, r0]
- mov r0, #1
- lsl r0, r0, #0xc
- tst r0, r1
- beq _02235E98
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_0223A424
- add sp, #8
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02235E98:
- ldr r0, [r4, #0x64]
- mov r7, #0
- lsl r0, r0, #1
- add r1, r4, r0
- ldr r0, _02235FC0 ; =0x000030D4
- ldrh r6, [r1, r0]
-_02235EA4:
- add r1, sp, #4
- add r2, sp, #4
- ldr r0, _02235FC4 ; =0x0000FFFF
- add r1, #2
- add r2, #1
- add r3, sp, #4
- bl MOD11_02246B58
- add r0, sp, #4
- ldrb r0, [r0, #2]
- cmp r0, r6
- bne _02235F12
- add r0, sp, #4
- ldrb r0, [r0]
- cmp r0, #5
- bhi _02235F12
- add r0, sp, #4
- ldrb r5, [r0, #1]
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r5, r0
- beq _02235F12
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r5, r0
- beq _02235F12
- ldr r0, [r4, #0x64]
- add r3, sp, #4
- mov r2, #0xc0
- add r1, r0, #0
- mul r1, r2
- add r0, r4, r1
- ldr r1, _02235FC8 ; =0x00002D64
- add sp, #8
- strb r5, [r0, r1]
- ldr r5, [r4, #0x64]
- ldrb r0, [r3, #1]
- add r6, r5, #0
- mul r6, r2
- add r5, r4, r6
- add r1, r1, #1
- strb r0, [r5, r1]
- ldrb r0, [r3, #1]
- add r2, #0x70
- str r0, [r4, r2]
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02235F12:
- mov r0, #0xfa
- add r7, r7, #1
- lsl r0, r0, #2
- cmp r7, r0
- blt _02235EA4
- mov r7, #0
- add r1, sp, #4
- add r2, sp, #4
- add r0, r7, #0
- add r1, #2
- add r2, #1
- add r3, sp, #4
- bl MOD11_02246B58
- cmp r0, #1
- bne _02235FA6
-_02235F32:
- add r0, sp, #4
- ldrb r0, [r0, #2]
- cmp r0, r6
- bne _02235F90
- add r0, sp, #4
- ldrb r0, [r0]
- cmp r0, #5
- bhi _02235F90
- add r0, sp, #4
- ldrb r5, [r0, #1]
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r5, r0
- beq _02235F90
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r5, r0
- beq _02235F90
- ldr r0, [r4, #0x64]
- add r3, sp, #4
- mov r2, #0xc0
- add r1, r0, #0
- mul r1, r2
- add r0, r4, r1
- ldr r1, _02235FC8 ; =0x00002D64
- add sp, #8
- strb r5, [r0, r1]
- ldr r5, [r4, #0x64]
- ldrb r0, [r3, #1]
- add r6, r5, #0
- mul r6, r2
- add r5, r4, r6
- add r1, r1, #1
- strb r0, [r5, r1]
- ldrb r0, [r3, #1]
- add r2, #0x70
- str r0, [r4, r2]
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02235F90:
- add r7, r7, #1
- add r1, sp, #4
- add r2, sp, #4
- add r0, r7, #0
- add r1, #2
- add r2, #1
- add r3, sp, #4
- bl MOD11_02246B58
- cmp r0, #1
- beq _02235F32
-_02235FA6:
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_0223A424
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02235FB4: .word 0x000030C4
-_02235FB8: .word 0x000030CC
-_02235FBC: .word 0x00002DB0
-_02235FC0: .word 0x000030D4
-_02235FC4: .word 0x0000FFFF
-_02235FC8: .word 0x00002D64
-
- thumb_func_start MOD11_02235FCC
-MOD11_02235FCC: ; 0x02235FCC
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- str r0, [sp]
- mov r0, #0
- add r6, r1, #0
- mvn r0, r0
- str r0, [sp, #8]
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- mov ip, r0
- ldr r1, [r6, #0x64]
- mov r0, #0xc0
- mul r0, r1
- str r0, [sp, #4]
- add r3, r6, r0
- ldr r0, _022360DC ; =0x00002DB0
- ldr r1, [r3, r0]
- mov r0, #2
- lsl r0, r0, #0x14
- tst r0, r1
- bne _0223601E
- ldr r0, [r6, #0x6c]
- lsl r0, r0, #1
- add r1, r6, r0
- ldr r0, _022360E0 ; =0x000030AC
- ldrh r7, [r1, r0]
- cmp r7, #0xa5
- beq _0223601E
- cmp r7, #0xa6
- beq _0223601E
- mov r0, #7
- lsl r0, r0, #6
- cmp r7, r0
- beq _0223601E
- cmp r7, #0
- bne _02236028
-_0223601E:
- add r0, r6, #0
- mov r1, ip
- bl MOD11_0223A424
- b _022360D6
-_02236028:
- mov r0, #0
- add r1, r3, #0
- add r2, r0, #0
-_0223602E:
- ldr r4, _022360E4 ; =0x00002D4C
- ldrh r4, [r1, r4]
- cmp r4, #0xa6
- beq _02236040
- ldr r4, _022360E4 ; =0x00002D4C
- add r5, r3, r2
- ldrh r4, [r5, r4]
- cmp r7, r4
- beq _02236060
-_02236040:
- ldr r4, _022360E4 ; =0x00002D4C
- add r5, r3, r2
- ldrh r4, [r5, r4]
- cmp r4, #0xa6
- bne _02236056
- mov r5, #0
- ldr r4, [sp, #8]
- mvn r5, r5
- cmp r4, r5
- bne _02236056
- str r0, [sp, #8]
-_02236056:
- add r0, r0, #1
- add r1, r1, #2
- add r2, r2, #2
- cmp r0, #4
- blt _0223602E
-_02236060:
- cmp r0, #4
- bne _022360CE
- ldr r0, [sp, #4]
- add r1, r6, r0
- ldr r0, [sp, #8]
- lsl r0, r0, #1
- add r1, r1, r0
- ldr r0, _022360E4 ; =0x00002D4C
- strh r7, [r1, r0]
- ldr r1, [r6, #0x6c]
- ldr r3, [r6, #0x64]
- lsl r1, r1, #1
- add r2, r6, r1
- ldr r1, _022360E0 ; =0x000030AC
- add r0, #0x20
- ldrh r1, [r2, r1]
- lsl r1, r1, #4
- add r2, r6, r1
- mov r1, #0xf9
- lsl r1, r1, #2
- ldrb r1, [r2, r1]
- mov r2, #0xc0
- mul r2, r3
- add r3, r6, r2
- ldr r2, [sp, #8]
- add r2, r3, r2
- strb r1, [r2, r0]
- ldr r0, [sp]
- ldr r2, [r6, #0x64]
- add r1, r6, #0
- bl MOD11_02256150
- ldr r0, [r6, #0x6c]
- lsl r0, r0, #1
- add r1, r6, r0
- ldr r0, _022360E0 ; =0x000030AC
- ldrh r1, [r1, r0]
- mov r0, #0x49
- lsl r0, r0, #2
- str r1, [r6, r0]
- ldr r1, [r6, r0]
- add r0, #0x5f
- cmp r1, r0
- bne _022360D6
- ldr r0, _022360E8 ; =0x00002DCC
- ldr r1, [r6, #0x64]
- add r3, r6, r0
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, [r3, r2]
- ldr r0, _022360EC ; =0xFFFFE3FF
- and r0, r1
- str r0, [r3, r2]
- b _022360D6
-_022360CE:
- add r0, r6, #0
- mov r1, ip
- bl MOD11_0223A424
-_022360D6:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_022360DC: .word 0x00002DB0
-_022360E0: .word 0x000030AC
-_022360E4: .word 0x00002D4C
-_022360E8: .word 0x00002DCC
-_022360EC: .word 0xFFFFE3FF
-
- thumb_func_start MOD11_022360F0
-MOD11_022360F0: ; 0x022360F0
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- str r0, [sp, #4]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- mov r7, #0
- str r0, [sp, #8]
- add r6, r7, #0
- add r4, r7, #0
-_0223610E:
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r0, r5, r0
- add r1, r4, r0
- ldr r0, _022361B8 ; =0x00002D4C
- ldrh r0, [r1, r0]
- bl MOD11_02246BE8
- cmp r0, #0
- bne _0223614E
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r0, r5, r0
- add r1, r4, r0
- ldr r0, _022361B8 ; =0x00002D4C
- ldrh r1, [r1, r0]
- mov r0, #0x42
- lsl r0, r0, #2
- cmp r1, r0
- beq _0223614E
- cmp r1, #0xfd
- beq _0223614E
- add r0, #0xb8
- cmp r1, r0
- beq _0223614E
- add r0, r5, #0
- bl MOD11_02246AF8
- cmp r0, #0
- beq _02236156
-_0223614E:
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r7, r0
-_02236156:
- add r6, r6, #1
- add r4, r4, #2
- cmp r6, #4
- blt _0223610E
- mov r0, #2
- mvn r0, r0
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [r5, #0x64]
- add r1, r5, #0
- add r3, r7, #0
- bl MOD11_02245D38
- add r4, r0, #0
- cmp r4, #0xf
- bne _02236180
- ldr r1, [sp, #8]
- add r0, r5, #0
- bl MOD11_0223A424
- b _022361B0
-_02236180:
- mov r7, #0x1e
-_02236182:
- bl rand_LC
- lsr r1, r0, #0x1f
- lsl r0, r0, #0x1e
- sub r0, r0, r1
- ror r0, r7
- add r6, r1, r0
- add r0, r6, #0
- bl MaskOfFlagNo
- tst r0, r4
- bne _02236182
- ldr r0, [r5, #0x64]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- add r2, r5, r2
- lsl r0, r6, #1
- add r2, r2, r0
- ldr r0, _022361B8 ; =0x00002D4C
- add r1, #0x64
- ldrh r0, [r2, r0]
- str r0, [r5, r1]
-_022361B0:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_022361B8: .word 0x00002D4C
-
- thumb_func_start MOD11_022361BC
-MOD11_022361BC: ; 0x022361BC
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _02236200 ; =0x00002D8C
- add r2, r4, r0
- ldr r0, [r2, r1]
- add r1, r1, #4
- ldr r1, [r2, r1]
- mov r2, #0x40
- bl FUN_02079A0C
- ldr r3, _02236204 ; =0x0225DC3C
- mov r2, #0
-_022361E2:
- ldrb r1, [r3]
- cmp r0, r1
- ble _022361F0
- add r2, r2, #1
- add r3, r3, #2
- cmp r2, #6
- blo _022361E2
-_022361F0:
- ldr r0, _02236208 ; =0x0225DC3D
- lsl r1, r2, #1
- ldrb r1, [r0, r1]
- ldr r0, _0223620C ; =0x00002154
- str r1, [r4, r0]
- mov r0, #0
- pop {r4, pc}
- nop
-_02236200: .word 0x00002D8C
-_02236204: .word 0x0225DC3C
-_02236208: .word 0x0225DC3D
-_0223620C: .word 0x00002154
-
- thumb_func_start MOD11_02236210
-MOD11_02236210: ; 0x02236210
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- ldr r2, [r5, #0x6c]
- add r4, r0, #0
- lsl r0, r2, #1
- add r1, r5, r0
- ldr r0, _022362AC ; =0x0000307C
- ldrh r1, [r1, r0]
- cmp r1, #0
- beq _0223629E
- mov r0, #0xb5
- lsl r0, r0, #6
- mov r3, #0xc0
- add r0, r5, r0
- mul r3, r2
- add r0, r0, r3
- bl MOD11_022461AC
- add r2, r0, #0
- cmp r2, #4
- beq _0223625C
- ldr r0, [r5, #0x6c]
- mov r1, #0xc0
- mul r1, r0
- add r1, r5, r1
- add r3, r1, r2
- ldr r1, _022362B0 ; =0x00002D6C
- ldrb r3, [r3, r1]
- cmp r3, #0
- bne _02236266
-_0223625C:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A424
- b _022362A6
-_02236266:
- mov r1, #4
- cmp r3, #4
- bge _0223626E
- add r1, r3, #0
-_0223626E:
- lsl r0, r0, #1
- add r3, r5, r0
- ldr r0, _022362AC ; =0x0000307C
- ldrh r3, [r3, r0]
- mov r0, #0x49
- lsl r0, r0, #2
- str r3, [r5, r0]
- add r0, #0xc
- str r1, [r5, r0]
- ldr r0, _022362B0 ; =0x00002D6C
- ldr r4, [r5, #0x6c]
- mov r3, #0xc0
- add r0, r5, r0
- mul r3, r4
- add r3, r0, r3
- ldrb r0, [r3, r2]
- sub r0, r0, r1
- strb r0, [r3, r2]
- ldr r2, [r5, #0x6c]
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_02245190
- b _022362A6
-_0223629E:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A424
-_022362A6:
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_022362AC: .word 0x0000307C
-_022362B0: .word 0x00002D6C
-
- thumb_func_start MOD11_022362B4
-MOD11_022362B4: ; 0x022362B4
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r7, r0, #0
- bl MOD11_0222FF74
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- mov r1, #0x4d
- mov r0, #0
- lsl r1, r1, #2
- ldr r2, _022363F4 ; =0x00003044
- str r0, [r5, r1]
- ldr r2, [r5, r2]
- cmp r2, #0xd7
- bne _02236382
- sub r1, #0x10
- str r2, [r5, r1]
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x2b
- beq _0223630A
- ldr r2, [r5, #0x64]
- mov r0, #0xc0
- add r3, r2, #0
- mul r3, r0
- ldr r2, _022363F8 ; =0x00002DAC
- mov r1, #0
- add r3, r5, r3
- str r1, [r3, r2]
- add r1, r2, #4
- ldr r2, [r5, #0x64]
- add r1, r5, r1
- mul r0, r2
- ldr r3, [r1, r0]
- ldr r2, _022363FC ; =0xF7FFFFFF
- and r2, r3
- str r2, [r1, r0]
- b _02236316
-_0223630A:
- mov r1, #0x4d
- lsl r1, r1, #2
- ldr r2, [r5, r1]
- mov r0, #5
- orr r0, r2
- str r0, [r5, r1]
-_02236316:
- mov r0, #2
- tst r0, r4
- beq _02236374
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #0x10
- bl MOD11_0223C230
- add r4, r0, #0
- bl MaskOfFlagNo
- ldr r1, _02236400 ; =0x00003108
- ldrb r1, [r5, r1]
- tst r0, r1
- bne _022363E2
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- add r2, r4, #0
- mov r3, #0x2b
- bl MOD11_02246D84
- cmp r0, #0
- bne _0223635E
- mov r0, #0xc0
- mul r0, r4
- ldr r1, _022363F8 ; =0x00002DAC
- mov r3, #0
- add r2, r5, r0
- str r3, [r2, r1]
- add r1, r1, #4
- add r3, r5, r1
- ldr r2, [r3, r0]
- ldr r1, _022363FC ; =0xF7FFFFFF
- and r1, r2
- str r1, [r3, r0]
- b _022363E2
-_0223635E:
- mov r1, #0x46
- lsl r1, r1, #2
- add r0, r1, #0
- str r4, [r5, r1]
- add r0, #0x1c
- ldr r2, [r5, r0]
- mov r0, #0xa
- orr r0, r2
- add r1, #0x1c
- str r0, [r5, r1]
- b _022363E2
-_02236374:
- mov r1, #0x4d
- lsl r1, r1, #2
- ldr r2, [r5, r1]
- mov r0, #8
- orr r0, r2
- str r0, [r5, r1]
- b _022363E2
-_02236382:
- ldr r3, [r5, #0x64]
- mov r2, #0xc0
- mul r2, r3
- add r3, r5, r2
- ldr r2, _022363F8 ; =0x00002DAC
- str r0, [r3, r2]
- add r0, r2, #4
- add r6, r5, r0
- ldr r0, [r5, #0x64]
- mov r2, #0xc0
- add r3, r0, #0
- mul r3, r2
- ldr r2, [r6, r3]
- ldr r0, _022363FC ; =0xF7FFFFFF
- and r0, r2
- str r0, [r6, r3]
- mov r0, #2
- tst r0, r4
- beq _022363DA
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #0x10
- bl MOD11_0223C230
- add r4, r0, #0
- bl MaskOfFlagNo
- ldr r1, _02236400 ; =0x00003108
- ldrb r1, [r5, r1]
- tst r0, r1
- bne _022363E2
- mov r0, #0xc0
- mul r0, r4
- ldr r1, _022363F8 ; =0x00002DAC
- mov r3, #0
- add r2, r5, r0
- str r3, [r2, r1]
- add r1, r1, #4
- add r3, r5, r1
- ldr r2, [r3, r0]
- ldr r1, _022363FC ; =0xF7FFFFFF
- and r1, r2
- str r1, [r3, r0]
- b _022363E2
-_022363DA:
- ldr r2, [r5, r1]
- mov r0, #8
- orr r0, r2
- str r0, [r5, r1]
-_022363E2:
- ldr r3, _022363F4 ; =0x00003044
- ldr r2, [r5, #0x64]
- ldr r3, [r5, r3]
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_02256284
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022363F4: .word 0x00003044
-_022363F8: .word 0x00002DAC
-_022363FC: .word 0xF7FFFFFF
-_02236400: .word 0x00003108
-
- thumb_func_start MOD11_02236404
-MOD11_02236404: ; 0x02236404
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- add r0, r5, #0
- bl MOD11_0222FF74
- str r0, [sp, #4]
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- add r7, r0, #0
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- cmp r0, #0
- beq _02236454
- ldr r0, [sp, #4]
- mov r1, #0x84
- tst r0, r1
- bne _02236454
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
- b _022364EC
-_02236454:
- ldr r0, [r4, #0x64]
- add r1, r4, r0
- ldr r0, _022364F4 ; =0x0000219C
- ldrb r0, [r1, r0]
- bl MaskOfFlagNo
- lsl r1, r7, #3
- add r2, r4, r1
- mov r1, #0x71
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- lsl r1, r1, #3
- lsr r1, r1, #0x1a
- tst r0, r1
- beq _0223647C
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
- b _022364EC
-_0223647C:
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x79
- beq _02236494
- ldr r1, [r4, #0x6c]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x79
- bne _0223649E
-_02236494:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
- b _022364EC
-_0223649E:
- ldr r2, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _022364F8 ; =0x00002DB8
- ldrh r0, [r1, r0]
- cmp r0, #0
- beq _022364C6
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r3, #0x3c
- bl MOD11_02246D84
- cmp r0, #1
- bne _022364C6
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_0223A424
- b _022364EC
-_022364C6:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _022364F8 ; =0x00002DB8
- ldrh r0, [r1, r0]
- cmp r0, #0
- bne _022364E4
- ldr r2, [r4, #0x6c]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246C50
- cmp r0, #0
- bne _022364EC
-_022364E4:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_022364EC:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022364F4: .word 0x0000219C
-_022364F8: .word 0x00002DB8
-
- thumb_func_start MOD11_022364FC
-MOD11_022364FC: ; 0x022364FC
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r6, r1, #0
- str r0, [sp]
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- ldr r1, [r6, #0x64]
- str r0, [sp, #8]
- lsl r0, r1, #1
- add r2, r6, r0
- ldr r0, _02236640 ; =0x0000305C
- ldrh r0, [r2, r0]
- cmp r0, #0xb6
- beq _0223653C
- cmp r0, #0xc5
- beq _0223653C
- cmp r0, #0xcb
- beq _0223653C
- ldr r0, _02236644 ; =0x00002DC8
- add r3, r1, #0
- mov r2, #0xc0
- add r0, r6, r0
- mul r3, r2
- ldr r2, [r0, r3]
- ldr r1, _02236648 ; =0xFFFFE7FF
- and r1, r2
- str r1, [r0, r3]
-_0223653C:
- ldr r0, [sp]
- mov r7, #0
- add r4, r7, #0
- bl MOD11_0222FF84
- cmp r0, #0
- ble _02236564
- add r5, r6, #0
-_0223654C:
- ldr r0, _0223664C ; =0x000021A8
- ldr r0, [r5, r0]
- cmp r0, #0x27
- beq _02236556
- add r7, r7, #1
-_02236556:
- ldr r0, [sp]
- add r5, #0x10
- add r4, r4, #1
- bl MOD11_0222FF84
- cmp r4, r0
- blt _0223654C
-_02236564:
- cmp r7, #1
- beq _0223656E
- mov r0, #1
- str r0, [sp, #4]
- b _02236572
-_0223656E:
- mov r0, #0
- str r0, [sp, #4]
-_02236572:
- ldr r7, [r6, #0x64]
- ldr r0, _02236644 ; =0x00002DC8
- add r5, r7, #0
- add r4, r6, r0
- mov r0, #0xc0
- mul r5, r0
- bl rand_LC
- ldr r1, [r4, r5]
- lsl r1, r1, #0x13
- lsr r1, r1, #0x1e
- lsl r2, r1, #1
- ldr r1, _02236650 ; =0x0225DC34
- ldrh r1, [r1, r2]
- cmp r1, r0
- blo _02236628
- ldr r0, [sp, #4]
- cmp r0, #0
- beq _02236628
- ldr r0, _02236654 ; =0x00003044
- ldr r0, [r6, r0]
- lsl r0, r0, #4
- add r1, r6, r0
- ldr r0, _02236658 ; =0x000003DE
- ldrh r0, [r1, r0]
- cmp r0, #0x6f
- bne _022365C0
- mov r2, #0x75
- lsl r2, r2, #2
- add r0, r6, r2
- lsl r4, r7, #6
- ldr r3, [r0, r4]
- mov r1, #4
- orr r1, r3
- str r1, [r0, r4]
- add r0, r6, #0
- sub r2, #0xba
- add r0, #0xf6
- strh r2, [r0]
-_022365C0:
- ldr r0, _02236654 ; =0x00003044
- ldr r0, [r6, r0]
- lsl r0, r0, #4
- add r1, r6, r0
- ldr r0, _02236658 ; =0x000003DE
- ldrh r0, [r1, r0]
- cmp r0, #0x74
- bne _022365EC
- mov r2, #0x75
- ldr r1, [r6, #0x64]
- lsl r2, r2, #2
- lsl r4, r1, #6
- add r0, r6, r2
- add r1, r2, #0
- ldr r3, [r0, r4]
- add r1, #0x2c
- orr r1, r3
- str r1, [r0, r4]
- add r0, r6, #0
- sub r2, #0x1a
- add r0, #0xf6
- strh r2, [r0]
-_022365EC:
- add r0, r6, #0
- mov r1, #2
- add r0, #0xf5
- strb r1, [r0]
- ldr r1, [r6, #0x64]
- add r0, r6, #0
- bl MOD11_0224682C
- add r1, r6, #0
- add r1, #0xf8
- str r0, [r1]
- ldr r2, [r6, #0x64]
- mov r0, #0xc0
- add r1, r2, #0
- mul r1, r0
- ldr r0, _02236644 ; =0x00002DC8
- add r0, r6, r0
- ldr r3, [r0, r1]
- lsl r2, r3, #0x13
- lsr r4, r2, #0x1e
- cmp r4, #3
- bhs _02236638
- ldr r2, _02236648 ; =0xFFFFE7FF
- and r3, r2
- add r2, r4, #1
- lsl r2, r2, #0x1e
- lsr r2, r2, #0x13
- orr r2, r3
- str r2, [r0, r1]
- b _02236638
-_02236628:
- ldr r1, [r4, r5]
- ldr r0, _02236648 ; =0xFFFFE7FF
- and r0, r1
- str r0, [r4, r5]
- ldr r1, [sp, #8]
- add r0, r6, #0
- bl MOD11_0223A424
-_02236638:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02236640: .word 0x0000305C
-_02236644: .word 0x00002DC8
-_02236648: .word 0xFFFFE7FF
-_0223664C: .word 0x000021A8
-_02236650: .word 0x0225DC34
-_02236654: .word 0x00003044
-_02236658: .word 0x000003DE
-
- thumb_func_start MOD11_0223665C
-MOD11_0223665C: ; 0x0223665C
- push {r3, r4, r5, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _022366C8 ; =0x00002D90
- ldr r0, [r1, r0]
- mov r1, #4
- bl MOD11_022476C0
- ldr r1, [r5, #0x64]
- mov r2, #0xc0
- add r3, r1, #0
- mul r3, r2
- add r1, r5, r3
- ldr r3, _022366CC ; =0x00002D8C
- ldr r1, [r1, r3]
- cmp r1, r0
- bgt _0223669E
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A424
- b _022366C2
-_0223669E:
- ldr r1, _022366D0 ; =0x0000215C
- neg r4, r0
- str r4, [r5, r1]
- ldr r1, [r5, #0x64]
- add r4, r1, #0
- add r1, r3, #0
- mul r4, r2
- add r3, #0x24
- add r4, r5, r4
- add r1, #0x54
- str r0, [r4, r1]
- ldr r0, [r5, #0x64]
- add r3, r5, r3
- mul r2, r0
- ldr r1, [r3, r2]
- ldr r0, _022366D4 ; =0xFFFF1FFF
- and r0, r1
- str r0, [r3, r2]
-_022366C2:
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_022366C8: .word 0x00002D90
-_022366CC: .word 0x00002D8C
-_022366D0: .word 0x0000215C
-_022366D4: .word 0xFFFF1FFF
-
- thumb_func_start MOD11_022366D8
-MOD11_022366D8: ; 0x022366D8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r5, r0, #0
- str r1, [sp]
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, [sp]
- bl MOD11_0223A404
- str r0, [sp, #0x18]
- add r0, r5, #0
- bl MOD11_0222FF74
- add r4, r0, #0
- mov r0, #1
- tst r0, r4
- bne _02236700
- b _0223684E
-_02236700:
- ldr r1, [sp]
- add r0, r5, #0
- ldr r1, [r1, #0x6c]
- mov r7, #0
- bl MOD11_0222FF88
- ldr r1, [sp]
- str r0, [sp, #0x14]
- ldr r1, [r1, #0x6c]
- add r0, r5, #0
- bl MOD11_0222FFC8
- add r6, r0, #0
- mov r0, #8
- tst r0, r4
- bne _02236734
- mov r0, #0x10
- tst r0, r4
- beq _0223674C
- ldr r1, [sp]
- add r0, r5, #0
- ldr r1, [r1, #0x6c]
- bl MOD11_02230270
- cmp r0, #0
- beq _0223674C
-_02236734:
- mov r0, #0
- str r0, [sp, #0xc]
- mov r0, #1
- str r0, [sp, #0x10]
- ldr r0, [sp]
- ldr r1, [r0, #0x6c]
- add r1, r0, r1
- ldr r0, _02236868 ; =0x0000219C
- ldrb r0, [r1, r0]
- str r0, [sp, #8]
- str r0, [sp, #4]
- b _0223678C
-_0223674C:
- mov r0, #2
- str r0, [sp, #0x10]
- tst r0, r4
- beq _02236776
- mov r0, #0
- str r0, [sp, #0xc]
- ldr r0, [sp]
- ldr r1, [r0, #0x6c]
- add r2, r0, r1
- ldr r0, _02236868 ; =0x0000219C
- ldrb r0, [r2, r0]
- str r0, [sp, #8]
- add r0, r5, #0
- bl MOD11_022302BC
- ldr r1, [sp]
- add r1, r1, r0
- ldr r0, _02236868 ; =0x0000219C
- ldrb r0, [r1, r0]
- str r0, [sp, #4]
- b _0223678C
-_02236776:
- mov r0, #0
- str r0, [sp, #0xc]
- mov r0, #1
- str r0, [sp, #0x10]
- ldr r0, [sp]
- ldr r1, [r0, #0x6c]
- add r1, r0, r1
- ldr r0, _02236868 ; =0x0000219C
- ldrb r0, [r1, r0]
- str r0, [sp, #8]
- str r0, [sp, #4]
-_0223678C:
- ldr r5, [sp, #0xc]
- add r0, r5, #0
- cmp r0, r6
- bge _022367CE
-_02236794:
- ldr r0, [sp, #0x14]
- add r1, r5, #0
- bl GetPartyMonByIndex
- mov r1, #5
- mov r2, #0
- add r4, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _022367C8
- add r0, r4, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _022367C8
- add r0, r4, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _022367C8
- add r7, r7, #1
-_022367C8:
- add r5, r5, #1
- cmp r5, r6
- blt _02236794
-_022367CE:
- ldr r0, [sp, #0x10]
- cmp r7, r0
- bgt _022367DE
- ldr r0, [sp]
- ldr r1, [sp, #0x18]
- bl MOD11_0223A424
- b _02236860
-_022367DE:
- ldr r0, [sp]
- bl MOD11_02246CCC
- cmp r0, #0
- beq _02236844
- mov r7, #5
-_022367EA:
- bl rand_LC
- add r1, r6, #0
- bl _s32_div_f
- ldr r0, [sp, #0xc]
- add r5, r1, #0
- add r5, r5, r0
- ldr r0, [sp, #8]
- cmp r5, r0
- beq _022367EA
- ldr r0, [sp, #4]
- cmp r5, r0
- beq _022367EA
- ldr r0, [sp, #0x14]
- add r1, r5, #0
- bl GetPartyMonByIndex
- add r1, r7, #0
- mov r2, #0
- add r4, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _022367EA
- add r0, r4, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #1
- beq _022367EA
- add r0, r4, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _022367EA
- ldr r0, [sp]
- ldr r1, [r0, #0x6c]
- add r1, r0, r1
- ldr r0, _0223686C ; =0x000021A0
- strb r5, [r1, r0]
- b _02236860
-_02236844:
- ldr r0, [sp]
- ldr r1, [sp, #0x18]
- bl MOD11_0223A424
- b _02236860
-_0223684E:
- ldr r0, [sp]
- bl MOD11_02246CCC
- cmp r0, #0
- bne _02236860
- ldr r0, [sp]
- ldr r1, [sp, #0x18]
- bl MOD11_0223A424
-_02236860:
- mov r0, #0
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- nop
-_02236868: .word 0x0000219C
-_0223686C: .word 0x000021A0
-
- thumb_func_start MOD11_02236870
-MOD11_02236870: ; 0x02236870
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r5, [r4, #0x64]
- ldr r1, _02236A40 ; =0x00002DB0
- add r0, r5, #0
- mov r2, #0xc0
- mov r5, #2
- add r3, r4, r1
- mul r0, r2
- ldr r6, [r3, r0]
- lsl r5, r5, #0x14
- orr r5, r6
- str r5, [r3, r0]
- ldr r3, [r4, #0x64]
- mov r0, #0
- add r5, r3, #0
- mul r5, r2
- add r3, r1, #0
- add r5, r4, r5
- add r3, #0x38
- strh r0, [r5, r3]
- add r3, r1, #0
- add r3, #0x18
- ldr r6, [r4, #0x64]
- add r5, r4, r3
- add r3, r6, #0
- mul r3, r2
- ldr r7, [r5, r3]
- mov r6, #7
- bic r7, r6
- str r7, [r5, r3]
- ldr r3, [r4, #0x6c]
- add r5, r3, #0
- mul r5, r2
- add r3, r1, #0
- add r5, r4, r5
- sub r3, #8
- ldr r3, [r5, r3]
- ldr r5, [r4, #0x64]
- add r6, r5, #0
- mul r6, r2
- add r5, r1, #0
- add r6, r4, r6
- add r5, #0x34
- str r3, [r6, r5]
- ldr r3, [r4, #0x6c]
- add r5, r3, #0
- mul r5, r2
- add r3, r1, #0
- add r5, r4, r5
- add r3, #0xe
- ldrb r3, [r5, r3]
- ldr r5, [r4, #0x64]
- add r6, r5, #0
- lsl r3, r3, #0x1c
- mul r6, r2
- add r5, r1, #0
- lsr r3, r3, #0x1c
- add r6, r4, r6
- add r5, #0x4a
- strh r3, [r6, r5]
- add r3, r1, #0
- add r3, #0x1c
- ldr r6, [r4, #0x64]
- add r5, r4, r3
- add r3, r6, #0
- mul r3, r2
- ldr r7, [r5, r3]
- mov r6, #0x3c
- bic r7, r6
- str r7, [r5, r3]
- ldr r6, [r4, #0x64]
- sub r1, #0x70
- add r3, r6, #0
- mul r3, r2
- ldr r7, [r5, r3]
- ldr r6, _02236A44 ; =0xFFFFE3FF
- and r6, r7
- str r6, [r5, r3]
- add r5, r4, r1
- ldr r1, [r4, #0x64]
- add r3, r1, #0
- mul r3, r2
- ldr r1, [r4, #0x6c]
- add r3, r5, r3
- mul r2, r1
- add r2, r5, r2
-_02236926:
- ldrb r1, [r2, r0]
- strb r1, [r3, r0]
- add r0, r0, #1
- cmp r0, #0x28
- blo _02236926
- ldr r3, [r4, #0x64]
- ldr r1, _02236A48 ; =0x00002D68
- add r6, r3, #0
- mov r2, #0xc0
- add r0, r4, r1
- mul r6, r2
- ldr r5, [r0, r6]
- mov r3, #1
- bic r5, r3
- str r5, [r0, r6]
- ldr r3, [r4, #0x64]
- add r6, r3, #0
- mul r6, r2
- ldr r5, [r0, r6]
- mov r3, #2
- bic r5, r3
- str r5, [r0, r6]
- ldr r3, [r4, #0x64]
- add r6, r3, #0
- mul r6, r2
- ldr r5, [r0, r6]
- mov r3, #4
- bic r5, r3
- str r5, [r0, r6]
- ldr r3, [r4, #0x64]
- add r6, r3, #0
- mul r6, r2
- ldr r5, [r0, r6]
- mov r3, #8
- bic r5, r3
- str r5, [r0, r6]
- ldr r3, [r4, #0x64]
- add r6, r3, #0
- mul r6, r2
- ldr r5, [r0, r6]
- mov r3, #0x10
- bic r5, r3
- str r5, [r0, r6]
- ldr r3, [r4, #0x64]
- add r6, r3, #0
- mul r6, r2
- ldr r5, [r0, r6]
- mov r3, #0x20
- bic r5, r3
- str r5, [r0, r6]
- ldr r5, [r4, #0x64]
- add r3, r5, #0
- mul r3, r2
- ldr r6, [r0, r3]
- ldr r5, _02236A4C ; =0xFFFFFEFF
- and r5, r6
- str r5, [r0, r3]
- ldr r5, [r4, #0x64]
- add r3, r5, #0
- mul r3, r2
- ldr r6, [r0, r3]
- ldr r5, _02236A50 ; =0xFFFFFDFF
- and r5, r6
- str r5, [r0, r3]
- ldr r5, [r4, #0x64]
- add r3, r5, #0
- mul r3, r2
- ldr r6, [r0, r3]
- ldr r5, _02236A54 ; =0xFFFFFBFF
- and r5, r6
- str r5, [r0, r3]
- add r3, r1, #0
- add r3, #0x60
- add r6, r4, r3
- ldr r3, [r4, #0x64]
- add r1, #0x70
- add r5, r3, #0
- mul r5, r2
- ldr r7, [r6, r5]
- ldr r3, _02236A58 ; =0xBFFFFFFF
- and r3, r7
- add r7, r2, #0
- add r7, #0x90
- ldr r7, [r4, r7]
- lsl r7, r7, #0x1f
- lsr r7, r7, #1
- orr r3, r7
- str r3, [r6, r5]
- add r3, r2, #0
- add r3, #0x90
- ldr r3, [r4, r3]
- add r6, r3, #1
- ldr r3, [r4, #0x64]
- add r5, r3, #0
- mul r5, r2
- add r3, r4, r5
- str r6, [r3, r1]
- ldr r1, [r4, #0x64]
- add r5, r1, #0
- mul r5, r2
- ldr r3, [r0, r5]
- mov r1, #0x40
- bic r3, r1
- str r3, [r0, r5]
- ldr r1, [r4, #0x64]
- mov r6, #0
- add r3, r1, #0
- mul r3, r2
- ldr r2, [r0, r3]
- mov r1, #0x80
- bic r2, r1
- str r2, [r0, r3]
- mov r0, #0xf9
- add r5, r6, #0
- mov r1, #5
- lsl r0, r0, #2
-_02236A0E:
- ldr r3, [r4, #0x64]
- mov r2, #0xc0
- mul r2, r3
- add r3, r4, r2
- ldr r2, _02236A5C ; =0x00002D4C
- add r7, r3, r5
- ldrh r2, [r7, r2]
- lsl r2, r2, #4
- add r2, r4, r2
- ldrb r2, [r2, r0]
- cmp r2, #5
- bhs _02236A2E
- add r7, r3, r6
- ldr r3, _02236A60 ; =0x00002D6C
- strb r2, [r7, r3]
- b _02236A34
-_02236A2E:
- ldr r2, _02236A60 ; =0x00002D6C
- add r3, r3, r6
- strb r1, [r3, r2]
-_02236A34:
- add r6, r6, #1
- add r5, r5, #2
- cmp r6, #4
- blt _02236A0E
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02236A40: .word 0x00002DB0
-_02236A44: .word 0xFFFFE3FF
-_02236A48: .word 0x00002D68
-_02236A4C: .word 0xFFFFFEFF
-_02236A50: .word 0xFFFFFDFF
-_02236A54: .word 0xFFFFFBFF
-_02236A58: .word 0xBFFFFFFF
-_02236A5C: .word 0x00002D4C
-_02236A60: .word 0x00002D6C
-
- thumb_func_start MOD11_02236A64
-MOD11_02236A64: ; 0x02236A64
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- mov r2, #0x72
- mov r1, #1
- add r3, r0, #0
- eor r3, r1
- lsl r0, r3, #3
- add r5, r4, r0
- lsl r2, r2, #2
- ldr r5, [r5, r2]
- lsl r5, r5, #0x1e
- lsr r5, r5, #0x1e
- cmp r5, #3
- bne _02236ABA
- mov r0, #0xb5
- lsl r0, r0, #2
- add r2, r4, r0
- ldr r3, [r4, #0x64]
- mov r0, #0x1c
- mul r0, r3
- ldr r5, [r2, r0]
- mov r3, #1
- bic r5, r3
- orr r1, r5
- str r1, [r2, r0]
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
- b _02236AE2
-_02236ABA:
- add r1, r2, #0
- sub r1, #0xc
- lsl r6, r3, #2
- add r1, r4, r1
- ldr r5, [r1, r6]
- mov r3, #4
- orr r3, r5
- str r3, [r1, r6]
- add r2, r4, r2
- ldr r4, [r2, r0]
- mov r3, #3
- add r1, r4, #0
- bic r1, r3
- lsl r3, r4, #0x1e
- lsr r3, r3, #0x1e
- add r4, r3, #1
- mov r3, #3
- and r3, r4
- orr r1, r3
- str r1, [r2, r0]
-_02236AE2:
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02236AE8
-MOD11_02236AE8: ; 0x02236AE8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0223C230
- add r4, r0, #0
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_02230270
- lsl r0, r0, #3
- add r1, r5, r0
- mov r0, #0x72
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1e
- lsr r1, r0, #0x1e
- beq _02236B56
- mov r0, #0xc0
- mul r0, r4
- ldr r4, _02236B64 ; =0x00002D8C
- add r0, r5, r0
- ldr r2, [r0, r4]
- cmp r2, #0
- beq _02236B56
- mov r2, #5
- sub r1, r2, r1
- ldr r3, _02236B68 ; =0x0000215C
- lsl r1, r1, #1
- str r1, [r5, r3]
- add r1, r4, #4
- ldr r1, [r0, r1]
- sub r0, r2, #6
- mul r0, r1
- ldr r1, [r5, r3]
- bl MOD11_022476C0
- ldr r1, _02236B68 ; =0x0000215C
- str r0, [r5, r1]
- b _02236B5E
-_02236B56:
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_0223A424
-_02236B5E:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02236B64: .word 0x00002D8C
-_02236B68: .word 0x0000215C
-
- thumb_func_start MOD11_02236B6C
-MOD11_02236B6C: ; 0x02236B6C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r4, r0, #0
- str r1, [sp]
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, [sp]
- bl MOD11_0223A404
- str r0, [sp, #8]
- add r0, r4, #0
- bl MOD11_0222FF84
- mov r2, #0x4d
- mov r7, #0
- str r0, [sp, #4]
- add r1, r0, #0
- ldr r0, [sp]
- lsl r2, r2, #2
- str r1, [r0, r2]
- ldr r0, [sp, #4]
- add r6, r7, #0
- cmp r0, #0
- ble _02236BFC
- ldr r4, [sp]
- ldr r1, _02236C10 ; =0x00002DC8
- add r0, r4, #0
- add r5, r0, r1
-_02236BA8:
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0x20
- tst r0, r1
- bne _02236BCE
- ldr r0, _02236C14 ; =0x00002D8C
- ldr r0, [r4, r0]
- cmp r0, #0
- beq _02236BCE
- ldr r0, [sp]
- add r2, r6, #0
- add r1, r0, #0
- ldr r1, [r1, #0x64]
- mov r3, #0x2b
- bl MOD11_02246D84
- cmp r0, #1
- bne _02236BD2
-_02236BCE:
- add r7, r7, #1
- b _02236BF0
-_02236BD2:
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0x20
- orr r1, r0
- mov r0, #0xb7
- lsl r0, r0, #6
- str r1, [r4, r0]
- ldr r1, [r5]
- ldr r0, _02236C18 ; =0xFFFF9FFF
- and r1, r0
- mov r0, #6
- lsl r0, r0, #0xc
- orr r0, r1
- str r0, [r5]
-_02236BF0:
- ldr r0, [sp, #4]
- add r6, r6, #1
- add r4, #0xc0
- add r5, #0xc0
- cmp r6, r0
- blt _02236BA8
-_02236BFC:
- ldr r0, [sp, #4]
- cmp r7, r0
- bne _02236C0A
- ldr r0, [sp]
- ldr r1, [sp, #8]
- bl MOD11_0223A424
-_02236C0A:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02236C10: .word 0x00002DC8
-_02236C14: .word 0x00002D8C
-_02236C18: .word 0xFFFF9FFF
-
- thumb_func_start MOD11_02236C1C
-MOD11_02236C1C: ; 0x02236C1C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A444
- ldr r1, _02236C4C ; =0x00003104
- ldr r1, [r4, r1]
- add r2, r4, r1
- ldr r1, _02236C50 ; =0x000021EC
- ldrb r1, [r2, r1]
- str r1, [r0]
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02236C4C: .word 0x00003104
-_02236C50: .word 0x000021EC
-
- thumb_func_start MOD11_02236C54
-MOD11_02236C54: ; 0x02236C54
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223A444
- add r6, r0, #0
- add r0, r5, #0
- bl MOD11_0222FF84
- ldr r1, [r6]
- cmp r1, r0
- bhs _02236C92
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_0223A424
-_02236C92:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02236C98
-MOD11_02236C98: ; 0x02236C98
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0223C230
- add r4, r0, #0
- mov r0, #0x4e
- mov r3, #0
- lsl r0, r0, #2
- str r3, [r5, r0]
- ldr r0, _02236F40 ; =0x0000215C
- add r1, r4, #0
- str r3, [r5, r0]
- add r0, r5, #0
- mov r2, #0x1b
- bl MOD11_02243420
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- add r7, r0, #0
- mov r0, #0xd
- str r0, [sp]
- add r0, r6, #0
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _02236D08
- mov r0, #0x4c
- str r0, [sp]
- add r0, r6, #0
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- beq _02236D0A
-_02236D08:
- b _02236F38
-_02236D0A:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #0xc
- tst r0, r1
- beq _02236D74
- ldr r0, [sp, #4]
- cmp r0, #5
- beq _02236D74
- cmp r7, #5
- beq _02236D74
- cmp r0, #8
- beq _02236D74
- cmp r7, #8
- beq _02236D74
- cmp r0, #4
- beq _02236D74
- cmp r7, #4
- beq _02236D74
- mov r0, #0xc0
- add r6, r4, #0
- mul r6, r0
- ldr r0, _02236F44 ; =0x00002D8C
- add r1, r5, r6
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02236D74
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #8
- beq _02236D74
- mov r3, #0xb7
- add r1, r5, r6
- lsl r3, r3, #6
- ldr r2, [r1, r3]
- ldr r0, _02236F48 ; =0x00040080
- tst r0, r2
- bne _02236D74
- mov r0, #0xc9
- add r2, r0, #0
- add r2, #0x5b
- str r0, [r5, r2]
- sub r3, #0x30
- ldr r1, [r1, r3]
- sub r0, #0xca
- mul r0, r1
- mov r1, #0x10
- bl MOD11_022476C0
- ldr r1, _02236F40 ; =0x0000215C
- str r0, [r5, r1]
-_02236D74:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #0x30
- tst r0, r1
- beq _02236DDC
- mov r0, #0xc0
- add r6, r4, #0
- mul r6, r0
- ldr r0, _02236F44 ; =0x00002D8C
- add r2, r5, r6
- ldr r1, [r2, r0]
- cmp r1, #0
- beq _02236DDC
- add r0, #0x34
- ldr r1, [r2, r0]
- ldr r0, _02236F48 ; =0x00040080
- tst r0, r1
- bne _02236DDC
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x57
- beq _02236DB2
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x5e
- bne _02236DC8
-_02236DB2:
- ldr r0, _02236F4C ; =0x00002D90
- add r1, r5, r6
- ldr r1, [r1, r0]
- mov r0, #0
- mvn r0, r0
- mul r0, r1
- mov r1, #8
- bl MOD11_022476C0
- ldr r1, _02236F40 ; =0x0000215C
- str r0, [r5, r1]
-_02236DC8:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x5e
- bne _02236DDC
- mov r0, #0x4e
- mov r1, #2
- lsl r0, r0, #2
- str r1, [r5, r0]
-_02236DDC:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #0xc0
- tst r1, r0
- beq _02236E5E
- ldr r1, _02236F44 ; =0x00002D8C
- add r6, r4, #0
- mul r6, r0
- add r0, r5, r1
- str r0, [sp, #8]
- ldr r0, [r0, r6]
- cmp r0, #0
- beq _02236E5E
- add r0, r5, r6
- add r1, #0x34
- ldr r1, [r0, r1]
- ldr r0, _02236F48 ; =0x00040080
- tst r0, r1
- bne _02236E5E
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x73
- bne _02236E2A
- ldr r0, _02236F4C ; =0x00002D90
- add r1, r5, r6
- ldr r0, [r1, r0]
- ldr r1, [sp, #8]
- ldr r1, [r1, r6]
- cmp r1, r0
- bhs _02236E5E
- mov r1, #0x10
- bl MOD11_022476C0
- ldr r1, _02236F40 ; =0x0000215C
- str r0, [r5, r1]
- b _02236E5E
-_02236E2A:
- ldr r0, [sp, #4]
- cmp r0, #0xf
- beq _02236E5E
- cmp r7, #0xf
- beq _02236E5E
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x51
- beq _02236E5E
- ldr r1, _02236F50 ; =0x00000102
- add r0, r1, #0
- add r0, #0x22
- str r1, [r5, r0]
- ldr r0, _02236F4C ; =0x00002D90
- add r1, r5, r6
- ldr r1, [r1, r0]
- mov r0, #0
- mvn r0, r0
- mul r0, r1
- mov r1, #0x10
- bl MOD11_022476C0
- ldr r1, _02236F40 ; =0x0000215C
- str r0, [r5, r1]
-_02236E5E:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #3
- tst r0, r1
- beq _02236F38
- ldr r1, _02236F44 ; =0x00002D8C
- mov r0, #0xc0
- add r6, r4, #0
- mul r6, r0
- add r7, r5, r1
- ldr r0, [r7, r6]
- cmp r0, #0
- beq _02236EA0
- add r1, r1, #4
- add r1, r5, r1
- str r1, [sp, #0xc]
- ldr r1, [r1, r6]
- cmp r0, r1
- bhs _02236EA0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x2c
- bne _02236EA0
- ldr r0, [sp, #0xc]
- mov r1, #0x10
- ldr r0, [r0, r6]
- bl MOD11_022476C0
- ldr r1, _02236F40 ; =0x0000215C
- str r0, [r5, r1]
-_02236EA0:
- ldr r0, [r7, r6]
- cmp r0, #0
- beq _02236ECC
- ldr r1, _02236F4C ; =0x00002D90
- add r1, r5, r1
- str r1, [sp, #0x10]
- ldr r1, [r1, r6]
- cmp r0, r1
- bhs _02236ECC
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x57
- bne _02236ECC
- ldr r0, [sp, #0x10]
- mov r1, #8
- ldr r0, [r0, r6]
- bl MOD11_022476C0
- ldr r1, _02236F40 ; =0x0000215C
- str r0, [r5, r1]
-_02236ECC:
- ldr r0, [r7, r6]
- cmp r0, #0
- beq _02236F38
- ldr r0, _02236F54 ; =0x00002DAC
- add r7, r5, r0
- ldr r0, [r7, r6]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- beq _02236F38
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x5d
- bne _02236F38
- ldr r0, [r7, r6]
- mov r1, #7
- tst r1, r0
- beq _02236EFC
- mov r0, #0x13
- mov r1, #0
- lsl r0, r0, #4
- str r1, [r5, r0]
- b _02236F30
-_02236EFC:
- ldr r1, _02236F58 ; =0x00000F88
- tst r1, r0
- beq _02236F0C
- mov r0, #0x13
- mov r1, #1
- lsl r0, r0, #4
- str r1, [r5, r0]
- b _02236F30
-_02236F0C:
- mov r1, #0x10
- tst r1, r0
- beq _02236F1C
- mov r0, #0x13
- mov r1, #2
- lsl r0, r0, #4
- str r1, [r5, r0]
- b _02236F30
-_02236F1C:
- mov r1, #0x40
- tst r0, r1
- beq _02236F2A
- mov r0, #3
- add r1, #0xf0
- str r0, [r5, r1]
- b _02236F30
-_02236F2A:
- mov r0, #4
- add r1, #0xf0
- str r0, [r5, r1]
-_02236F30:
- mov r0, #0x4e
- mov r1, #1
- lsl r0, r0, #2
- str r1, [r5, r0]
-_02236F38:
- mov r0, #0
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_02236F40: .word 0x0000215C
-_02236F44: .word 0x00002D8C
-_02236F48: .word 0x00040080
-_02236F4C: .word 0x00002D90
-_02236F50: .word 0x00000102
-_02236F54: .word 0x00002DAC
-_02236F58: .word 0x00000F88
-
- thumb_func_start MOD11_02236F5C
-MOD11_02236F5C: ; 0x02236F5C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r6, [r4, #0x64]
- mov r0, #0xb5
- lsl r0, r0, #2
- add r2, r4, r0
- mov r0, #0x1c
- add r1, r6, #0
- mul r1, r0
- ldr r3, [r2, r1]
- ldr r0, _0223705C ; =0xFFFFFE3F
- mov r7, #0xc0
- and r0, r3
- add r3, r6, #0
- mul r3, r7
- add r6, r4, r3
- ldr r3, _02237060 ; =0x00002DC8
- ldr r6, [r6, r3]
- sub r3, #0x18
- lsl r6, r6, #0xe
- lsr r6, r6, #0x1d
- lsl r6, r6, #0x1d
- lsr r6, r6, #0x17
- orr r0, r6
- str r0, [r2, r1]
- ldr r2, [r4, #0x64]
- add r0, r2, #0
- mul r0, r7
- add r0, r4, r0
- ldr r1, [r0, r3]
- mov r0, #1
- lsl r0, r0, #0xc
- tst r0, r1
- bne _02236FCA
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022451C0
- ldr r0, _02237060 ; =0x00002DC8
- ldr r2, [r4, #0x64]
- add r1, r4, r0
- add r0, r7, #0
- mul r0, r2
- ldr r3, [r1, r0]
- ldr r2, _02237064 ; =0xFFFC7FFF
- and r3, r2
- mov r2, #0xa
- lsl r2, r2, #0xe
- orr r2, r3
- str r2, [r1, r0]
-_02236FCA:
- ldr r1, [r4, #0x64]
- ldr r0, _02237060 ; =0x00002DC8
- mov r7, #0xc0
- add r3, r1, #0
- add r6, r4, r0
- mul r3, r7
- ldr r1, [r6, r3]
- ldr r2, _02237064 ; =0xFFFC7FFF
- and r2, r1
- lsl r1, r1, #0xe
- lsr r1, r1, #0x1d
- sub r1, r1, #1
- lsl r1, r1, #0x1d
- lsr r1, r1, #0xe
- orr r1, r2
- str r1, [r6, r3]
- ldr r2, [r4, #0x64]
- add r1, r2, #0
- mul r1, r7
- add r1, r4, r1
- ldr r0, [r1, r0]
- lsl r0, r0, #0xe
- lsr r0, r0, #0x1d
- bne _02237002
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022451F0
-_02237002:
- ldr r0, _02237068 ; =0x00003044
- mov r2, #1
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _0223706C ; =0x000003E1
- ldrb r1, [r1, r0]
- ldr r0, _02237070 ; =0x00002154
- str r1, [r4, r0]
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _02237060 ; =0x00002DC8
- ldr r0, [r1, r0]
- lsl r0, r0, #0xe
- lsr r1, r0, #0x1d
- mov r0, #5
- sub r3, r0, r1
- cmp r3, #1
- ble _0223703A
- ldr r0, _02237070 ; =0x00002154
-_0223702E:
- ldr r1, [r4, r0]
- add r2, r2, #1
- lsl r1, r1, #1
- str r1, [r4, r0]
- cmp r2, r3
- blt _0223702E
-_0223703A:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _02237074 ; =0x00002DB0
- ldr r1, [r1, r0]
- mov r0, #1
- lsl r0, r0, #0x1e
- tst r0, r1
- beq _02237056
- ldr r0, _02237070 ; =0x00002154
- ldr r1, [r4, r0]
- lsl r1, r1, #1
- str r1, [r4, r0]
-_02237056:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223705C: .word 0xFFFFFE3F
-_02237060: .word 0x00002DC8
-_02237064: .word 0xFFFC7FFF
-_02237068: .word 0x00003044
-_0223706C: .word 0x000003E1
-_02237070: .word 0x00002154
-_02237074: .word 0x00002DB0
-
- thumb_func_start MOD11_02237078
-MOD11_02237078: ; 0x02237078
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- add r1, r2, #0
- mul r1, r0
- ldr r0, _022370F4 ; =0x00002DC8
- add r0, r4, r0
- ldr r3, [r0, r1]
- lsl r2, r3, #0xb
- lsr r5, r2, #0x1d
- cmp r5, #5
- bhs _022370A8
- ldr r2, _022370F8 ; =0xFFE3FFFF
- and r3, r2
- add r2, r5, #1
- lsl r2, r2, #0x1d
- lsr r2, r2, #0xb
- orr r2, r3
- str r2, [r0, r1]
-_022370A8:
- ldr r0, _022370FC ; =0x00003044
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _02237100 ; =0x000003E1
- ldrb r1, [r1, r0]
- ldr r0, _02237104 ; =0x00002154
- str r1, [r4, r0]
- ldr r2, [r4, #0x64]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _022370F4 ; =0x00002DC8
- mov r0, #1
- ldr r1, [r2, r1]
- lsl r1, r1, #0xb
- lsr r1, r1, #0x1d
- cmp r1, #1
- bls _022370EE
- ldr r3, _02237104 ; =0x00002154
- ldr r2, _022370F4 ; =0x00002DC8
- mov r1, #0xc0
-_022370D4:
- ldr r5, [r4, r3]
- add r0, r0, #1
- lsl r5, r5, #1
- str r5, [r4, r3]
- ldr r5, [r4, #0x64]
- add r6, r5, #0
- mul r6, r1
- add r5, r4, r6
- ldr r5, [r5, r2]
- lsl r5, r5, #0xb
- lsr r5, r5, #0x1d
- cmp r0, r5
- blo _022370D4
-_022370EE:
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_022370F4: .word 0x00002DC8
-_022370F8: .word 0xFFE3FFFF
-_022370FC: .word 0x00003044
-_02237100: .word 0x000003E1
-_02237104: .word 0x00002154
-
- thumb_func_start MOD11_02237108
-MOD11_02237108: ; 0x02237108
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r3, r0, #0
- add r0, r4, #0
- add r0, #0x94
- ldr r0, [r0]
- mov r5, #0xc0
- add r1, r0, #0
- mul r1, r5
- ldr r6, _02237184 ; =0x00002DBE
- add r1, r4, r1
- ldrb r0, [r1, r6]
- lsl r0, r0, #0x1c
- lsr r2, r0, #0x1c
- add r0, r5, #0
- add r0, #0x58
- ldr r0, [r4, r0]
- mul r5, r0
- add r5, r4, r5
- ldrb r5, [r5, r6]
- lsl r5, r5, #0x1c
- lsr r5, r5, #0x1c
- cmp r5, r2
- beq _0223715A
- sub r6, #0xe
- ldr r6, [r1, r6]
- mov r1, #0xf
- lsl r1, r1, #0x10
- tst r1, r6
- bne _0223715A
- cmp r5, #2
- beq _0223715A
- cmp r2, #2
- bne _02237164
-_0223715A:
- add r0, r4, #0
- add r1, r3, #0
- bl MOD11_0223A424
- b _0223717E
-_02237164:
- bl MaskOfFlagNo
- ldr r1, _02237188 ; =0x00002DB0
- mov r2, #0xc0
- add r1, r4, r1
- add r4, #0x94
- ldr r3, [r4]
- lsl r0, r0, #0x10
- add r4, r3, #0
- mul r4, r2
- ldr r2, [r1, r4]
- orr r0, r2
- str r0, [r1, r4]
-_0223717E:
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_02237184: .word 0x00002DBE
-_02237188: .word 0x00002DB0
-
- thumb_func_start MOD11_0223718C
-MOD11_0223718C: ; 0x0223718C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- mov r5, #0x6f
- add r2, r0, #0
- lsl r5, r5, #2
- add r1, r4, r5
- lsl r0, r2, #2
- ldr r6, [r1, r0]
- mov r3, #8
- tst r3, r6
- beq _022371D0
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_0223A424
- ldr r1, _02237214 ; =0x0000216C
- mov r0, #0x40
- ldr r2, [r4, r1]
- orr r0, r2
- str r0, [r4, r1]
- b _02237210
-_022371D0:
- mov r3, #8
- orr r3, r6
- str r3, [r1, r0]
- add r5, #8
- lsl r0, r2, #3
- add r1, r4, r5
- ldr r3, [r1, r0]
- ldr r2, _02237218 ; =0xFFF1FFFF
- and r3, r2
- mov r2, #0xa
- lsl r2, r2, #0x10
- orr r2, r3
- str r2, [r1, r0]
- ldr r3, [r1, r0]
- ldr r2, _0223721C ; =0xFFFE7FFF
- and r3, r2
- ldr r2, [r4, #0x64]
- lsl r2, r2, #0x1e
- lsr r2, r2, #0xf
- orr r2, r3
- str r2, [r1, r0]
- add r0, r4, #0
- mov r1, #1
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- ldr r1, [r4, #0x64]
- add r0, #0xf8
- str r1, [r0]
- mov r0, #0xc6
- add r4, #0xf6
- strh r0, [r4]
-_02237210:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02237214: .word 0x0000216C
-_02237218: .word 0xFFF1FFFF
-_0223721C: .word 0xFFFE7FFF
-
- thumb_func_start MOD11_02237220
-MOD11_02237220: ; 0x02237220
- push {r3, r4, r5, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- bl rand_LC
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, #0x66
- bge _02237248
- ldr r0, _02237284 ; =0x00002154
- mov r1, #0x28
- str r1, [r5, r0]
- b _0223727E
-_02237248:
- cmp r0, #0xb2
- bge _02237254
- ldr r0, _02237284 ; =0x00002154
- mov r1, #0x50
- str r1, [r5, r0]
- b _0223727E
-_02237254:
- cmp r0, #0xcc
- bge _02237260
- ldr r0, _02237284 ; =0x00002154
- mov r1, #0x78
- str r1, [r5, r0]
- b _0223727E
-_02237260:
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02237288 ; =0x00002D90
- ldr r0, [r1, r0]
- mov r1, #4
- bl MOD11_022476C0
- ldr r1, _0223728C ; =0x0000215C
- str r0, [r5, r1]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A424
-_0223727E:
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02237284: .word 0x00002154
-_02237288: .word 0x00002D90
-_0223728C: .word 0x0000215C
-
- thumb_func_start MOD11_02237290
-MOD11_02237290: ; 0x02237290
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, _0223732C ; =0x00003120
- ldrb r0, [r4, r0]
- cmp r0, #0
- bne _0223731C
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- ldr r0, _0223732C ; =0x00003120
- strb r1, [r4, r0]
- ldrb r1, [r4, r0]
- cmp r1, #5
- bhs _022372C4
- ldr r1, _02237330 ; =0x00002154
- mov r2, #0xa
- str r2, [r4, r1]
- mov r1, #4
- strb r1, [r4, r0]
- b _0223731C
-_022372C4:
- cmp r1, #0xf
- bhs _022372D4
- ldr r1, _02237330 ; =0x00002154
- mov r2, #0x1e
- str r2, [r4, r1]
- mov r1, #5
- strb r1, [r4, r0]
- b _0223731C
-_022372D4:
- cmp r1, #0x23
- bhs _022372E4
- ldr r1, _02237330 ; =0x00002154
- mov r2, #0x32
- str r2, [r4, r1]
- mov r1, #6
- strb r1, [r4, r0]
- b _0223731C
-_022372E4:
- cmp r1, #0x41
- bhs _022372F4
- ldr r1, _02237330 ; =0x00002154
- mov r2, #0x46
- str r2, [r4, r1]
- mov r1, #7
- strb r1, [r4, r0]
- b _0223731C
-_022372F4:
- cmp r1, #0x55
- bhs _02237304
- ldr r1, _02237330 ; =0x00002154
- mov r2, #0x5a
- str r2, [r4, r1]
- mov r1, #8
- strb r1, [r4, r0]
- b _0223731C
-_02237304:
- cmp r1, #0x5f
- ldr r1, _02237330 ; =0x00002154
- bhs _02237314
- mov r2, #0x6e
- str r2, [r4, r1]
- mov r1, #9
- strb r1, [r4, r0]
- b _0223731C
-_02237314:
- mov r2, #0x96
- str r2, [r4, r1]
- mov r1, #0xa
- strb r1, [r4, r0]
-_0223731C:
- ldr r0, _0223732C ; =0x00003120
- ldrb r1, [r4, r0]
- mov r0, #0x13
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #0
- pop {r4, pc}
- nop
-_0223732C: .word 0x00003120
-_02237330: .word 0x00002154
-
- thumb_func_start MOD11_02237334
-MOD11_02237334: ; 0x02237334
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp]
- add r0, r6, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0223C230
- add r4, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_02246DE0
- cmp r0, #0
- bne _0223737E
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD11_0223A424
- b _02237392
-_0223737E:
- cmp r7, #1
- bne _02237392
- mov r0, #0x4f
- lsl r0, r0, #2
- add r3, r5, r0
- lsl r2, r4, #2
- ldr r1, [r3, r2]
- mov r0, #1
- orr r0, r1
- str r0, [r3, r2]
-_02237392:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02237398
-MOD11_02237398: ; 0x02237398
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- ldr r1, [r4, #0x64]
- bl MOD11_02230270
- ldr r1, [r4, #0x64]
- mov r6, #0xe
- ldr r5, _022374D4 ; =0x00002DB0
- add r2, r1, #0
- mov r3, #0xc0
- mul r2, r3
- add r1, r4, r5
- ldr r7, [r1, r2]
- lsl r6, r6, #0xc
- tst r6, r7
- beq _022373F4
- ldr r0, _022374D8 ; =0xFFFF1FFF
- and r0, r7
- str r0, [r1, r2]
- ldr r0, [r4, #0x64]
- mov r2, #0x74
- add r1, r0, #0
- add r0, r5, #0
- mul r1, r3
- add r1, r4, r1
- add r0, #0x1c
- ldr r0, [r1, r0]
- add r5, #0x3a
- lsl r0, r0, #0x18
- lsr r1, r0, #0x1e
- add r0, r3, #0
- add r0, #0x58
- str r1, [r4, r0]
- ldr r0, [r4, #0x64]
- add r1, r0, #0
- mul r1, r3
- add r0, r4, r1
- ldrh r0, [r0, r5]
- add r3, #0x64
- mov r1, #1
- str r0, [r4, r3]
- add r0, r4, #0
- bl MOD11_0223A43C
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_022373F4:
- add r5, #0x10
- add r5, r4, r5
- ldr r1, [r5, r2]
- mov r6, #4
- tst r6, r1
- beq _0223742A
- mov r0, #4
- bic r1, r0
- str r1, [r5, r2]
- ldr r0, [r4, #0x64]
- add r2, r0, #0
- mul r2, r3
- ldr r1, [r5, r2]
- mov r0, #3
- bic r1, r0
- str r1, [r5, r2]
- mov r1, #0x49
- add r0, r1, #0
- add r0, #0xdb
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x75
- bl MOD11_0223A43C
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223742A:
- mov r1, #0x72
- lsl r1, r1, #2
- add r6, r4, r1
- lsl r5, r0, #3
- ldr r2, [r6, r5]
- lsl r3, r2, #0x1e
- lsr r3, r3, #0x1e
- beq _02237466
- sub r1, #0xc
- lsl r3, r0, #2
- add r1, r4, r1
- ldr r2, [r1, r3]
- mov r0, #4
- bic r2, r0
- str r2, [r1, r3]
- ldr r1, [r6, r5]
- mov r0, #3
- bic r1, r0
- str r1, [r6, r5]
- mov r1, #0xbf
- add r0, r1, #0
- add r0, #0x65
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x75
- bl MOD11_0223A43C
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02237466:
- lsl r2, r2, #0x1c
- lsr r2, r2, #0x1e
- beq _0223749A
- add r2, r1, #0
- sub r2, #0xc
- lsl r7, r0, #2
- add r3, r4, r2
- ldr r2, [r3, r7]
- ldr r0, _022374DC ; =0xFFFFFBFF
- and r0, r2
- str r0, [r3, r7]
- ldr r2, [r6, r5]
- mov r0, #0xc
- bic r2, r0
- add r0, r1, #0
- str r2, [r6, r5]
- sub r0, #0x42
- sub r1, #0xa4
- str r0, [r4, r1]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x75
- bl MOD11_0223A43C
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223749A:
- add r2, r1, #0
- sub r2, #0xc
- add r2, r4, r2
- lsl r0, r0, #2
- ldr r6, [r2, r0]
- mov r5, #0x80
- add r3, r6, #0
- tst r3, r5
- beq _022374C6
- mov r3, #0x80
- bic r6, r3
- str r6, [r2, r0]
- sub r1, #0xa
- add r5, #0xa4
- str r1, [r4, r5]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x75
- bl MOD11_0223A43C
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_022374C6:
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022374D4: .word 0x00002DB0
-_022374D8: .word 0xFFFF1FFF
-_022374DC: .word 0xFFFFFBFF
-
- thumb_func_start MOD11_022374E0
-MOD11_022374E0: ; 0x022374E0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- ldr r0, _02237578 ; =0x000080FF
- tst r0, r1
- beq _02237522
- mov r0, #0xd
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _02237522
- mov r0, #0x4c
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- beq _02237536
-_02237522:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0223757C ; =0x00002D90
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- ldr r0, _02237580 ; =0x0000215C
- str r1, [r4, r0]
- b _02237572
-_02237536:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0x30
- tst r0, r1
- ldr r1, [r4, #0x64]
- beq _0223755E
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0223757C ; =0x00002D90
- ldr r1, [r1, r0]
- mov r0, #0x14
- mul r0, r1
- mov r1, #0x1e
- bl MOD11_022476C0
- ldr r1, _02237580 ; =0x0000215C
- str r0, [r4, r1]
- b _02237572
-_0223755E:
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0223757C ; =0x00002D90
- ldr r0, [r1, r0]
- mov r1, #4
- bl MOD11_022476C0
- ldr r1, _02237580 ; =0x0000215C
- str r0, [r4, r1]
-_02237572:
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02237578: .word 0x000080FF
-_0223757C: .word 0x00002D90
-_02237580: .word 0x0000215C
-
- thumb_func_start MOD11_02237584
-MOD11_02237584: ; 0x02237584
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, _02237664 ; =0x00002D54
- ldr r1, [r4, #0x64]
- add r3, r4, r0
- mov r0, #0xc0
- mul r0, r1
- ldr r1, [r3, r0]
- mov r5, #2
- lsl r0, r1, #2
- lsr r0, r0, #0x1b
- and r0, r5
- lsl r2, r0, #4
- lsl r0, r1, #7
- lsr r0, r0, #0x1b
- and r0, r5
- lsl r7, r0, #3
- lsl r0, r1, #0xc
- lsr r0, r0, #0x1b
- and r0, r5
- lsl r0, r0, #2
- mov ip, r0
- lsl r0, r1, #0x11
- lsr r0, r0, #0x1b
- and r0, r5
- lsl r6, r0, #1
- lsl r0, r1, #0x1b
- lsr r0, r0, #0x1b
- lsl r1, r1, #0x16
- and r0, r5
- lsr r1, r1, #0x1b
- lsr r0, r0, #1
- and r1, r5
- orr r0, r1
- add r1, r6, #0
- orr r1, r0
- mov r0, ip
- orr r0, r1
- orr r0, r7
- add r1, r2, #0
- orr r1, r0
- ldr r0, _02237668 ; =0x00002154
- str r1, [r4, r0]
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- ldr r5, [r3, r0]
- lsl r0, r5, #2
- lsr r0, r0, #0x1b
- lsl r0, r0, #0x1f
- lsr r6, r0, #0x1a
- lsl r0, r5, #7
- lsr r0, r0, #0x1b
- lsl r0, r0, #0x1f
- lsr r3, r0, #0x1b
- lsl r0, r5, #0xc
- lsr r0, r0, #0x1b
- lsl r0, r0, #0x1f
- lsr r2, r0, #0x1c
- lsl r0, r5, #0x11
- lsr r0, r0, #0x1b
- lsl r0, r0, #0x1f
- lsr r7, r0, #0x1d
- lsl r0, r5, #0x1b
- lsr r1, r0, #0x1b
- mov r0, #1
- and r0, r1
- lsl r1, r5, #0x16
- lsr r1, r1, #0x1b
- lsl r1, r1, #0x1f
- lsr r1, r1, #0x1e
- orr r0, r1
- orr r0, r7
- orr r0, r2
- orr r0, r3
- add r1, r6, #0
- orr r1, r0
- ldr r0, _02237668 ; =0x00002154
- add r0, #0xc
- str r1, [r4, r0]
- ldr r0, _02237668 ; =0x00002154
- ldr r1, [r4, r0]
- mov r0, #0x28
- mul r0, r1
- mov r1, #0x3f
- bl _s32_div_f
- ldr r1, _02237668 ; =0x00002154
- add r0, #0x1e
- str r0, [r4, r1]
- add r1, #0xc
- ldr r1, [r4, r1]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0x3f
- bl _s32_div_f
- add r1, r0, #1
- ldr r0, _0223766C ; =0x00002160
- str r1, [r4, r0]
- ldr r1, [r4, r0]
- cmp r1, #9
- blt _0223765E
- add r1, r1, #1
- str r1, [r4, r0]
-_0223765E:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02237664: .word 0x00002D54
-_02237668: .word 0x00002154
-_0223766C: .word 0x00002160
-
- thumb_func_start MOD11_02237670
-MOD11_02237670: ; 0x02237670
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r2, _022376C8 ; =0x00002D58
- mov r1, #0
- mov r3, #0xc0
- add r5, r2, #0
-_02237684:
- ldr r6, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r6
- ldr r6, [r4, #0x64]
- add r0, r4, r0
- add r0, r1, r0
- add r7, r6, #0
- mul r7, r3
- add r6, r4, r7
- add r6, r1, r6
- ldrsb r0, [r0, r2]
- add r1, r1, #1
- cmp r1, #8
- strb r0, [r6, r5]
- blt _02237684
- ldr r0, [r4, #0x64]
- ldr r6, [r4, #0x6c]
- mov r3, #0xc0
- add r1, r0, #0
- ldr r5, _022376CC ; =0x00002DB0
- mul r1, r3
- mul r3, r6
- add r2, r4, r5
- add r3, r4, r3
- ldr r4, [r3, r5]
- mov r3, #1
- lsl r3, r3, #0x14
- ldr r0, [r2, r1]
- and r3, r4
- orr r0, r3
- str r0, [r2, r1]
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022376C8: .word 0x00002D58
-_022376CC: .word 0x00002DB0
-
- thumb_func_start MOD11_022376D0
-MOD11_022376D0: ; 0x022376D0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- ldr r1, [r4, #0x6c]
- add r2, r0, #0
- mov r0, #0x62
- add r3, r4, r1
- lsl r0, r0, #2
- ldrb r0, [r3, r0]
- cmp r0, #0
- bne _022377A4
- add r0, r5, #0
- bl MOD11_02230270
- mov r1, #0x6f
- lsl r1, r1, #2
- lsl r3, r0, #2
- add r6, r4, r1
- add r7, r1, #0
- ldr r2, [r6, r3]
- mov r0, #0x10
- orr r0, r2
- str r0, [r6, r3]
- ldr r0, [r4, #0x6c]
- sub r7, #0x34
- add r2, r4, r0
- mov r0, #3
- strb r0, [r2, r7]
- add r7, r1, #0
- ldr r0, _022377B4 ; =0x00003044
- sub r7, #0x2c
- ldr r2, [r4, r0]
- ldr r0, [r4, #0x6c]
- sub r1, #0x24
- lsl r0, r0, #1
- add r0, r4, r0
- strh r2, [r0, r7]
- ldr r2, [r4, #0x6c]
- ldr r0, [r4, #0x64]
- lsl r2, r2, #2
- add r2, r4, r2
- str r0, [r2, r1]
- mov r0, #3
- lsl r0, r0, #7
- ldr r0, [r4, r0]
- ldr r2, _022377B4 ; =0x00003044
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- str r0, [sp, #8]
- ldr r0, [r4, #0x64]
- add r1, r4, #0
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0xc]
- ldr r0, [r4, #0x6c]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- ldr r2, [r4, r2]
- ldr r3, [r6, r3]
- add r0, r5, #0
- bl MOD11_0224B310
- mov r1, #0
- mvn r1, r1
- mul r1, r0
- add r0, r4, #0
- bl MOD11_0224BF10
- ldr r1, [r4, #0x6c]
- lsl r1, r1, #2
- add r2, r4, r1
- mov r1, #0x6a
- lsl r1, r1, #2
- str r0, [r2, r1]
- ldr r0, [r4, #0x64]
- lsl r0, r0, #6
- add r2, r4, r0
- add r0, r1, #0
- add r0, #0x2c
- ldr r0, [r2, r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- beq _022377AC
- ldr r0, [r4, #0x6c]
- add r5, r4, r1
- lsl r4, r0, #2
- ldr r1, [r5, r4]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- str r0, [r5, r4]
- b _022377AC
-_022377A4:
- add r0, r4, #0
- add r1, r2, #0
- bl MOD11_0223A424
-_022377AC:
- mov r0, #0
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022377B4: .word 0x00003044
-
- thumb_func_start MOD11_022377B8
-MOD11_022377B8: ; 0x022377B8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp, #8]
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- str r0, [sp, #0xc]
- add r0, r5, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD11_0223C230
- add r6, r0, #0
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_0223CC8C
- str r0, [sp]
- ldr r2, [sp, #0xc]
- add r0, r5, #0
- add r1, r4, #0
- add r3, r6, #0
- bl MOD11_0223D29C
- ldr r0, _02237830 ; =0x0000216C
- ldr r1, [r4, r0]
- ldr r0, _02237834 ; =0x001FD849
- tst r0, r1
- beq _02237828
- ldr r1, [sp, #8]
- add r0, r4, #0
- bl MOD11_0223A424
-_02237828:
- mov r0, #0
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02237830: .word 0x0000216C
-_02237834: .word 0x001FD849
-
- thumb_func_start MOD11_02237838
-MOD11_02237838: ; 0x02237838
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r2, [r4, #0x64]
- add r0, r5, #0
- add r1, r4, #0
- mov r3, #0
- bl MOD11_02246ED0
- cmp r0, #0
- beq _02237866
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_02237866:
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223786C
-MOD11_0223786C: ; 0x0223786C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, [r5, #0x64]
- add r0, r7, #0
- bl MOD11_0222FFC8
- ldr r1, _02237AA0 ; =0x0000217D
- str r0, [sp]
- ldrb r0, [r5, r1]
- cmp r0, #0
- bne _02237900
- mov r0, #2
- strb r0, [r5, r1]
- add r0, r1, #0
- mov r2, #0xfd
- add r0, #0xb
- str r2, [r5, r0]
- mov r2, #0
- add r0, r1, #2
- strb r2, [r5, r0]
- add r6, r1, #2
-_022378A2:
- ldr r2, _02237AA4 ; =0x0000217F
- ldr r1, [r5, #0x64]
- ldrb r2, [r5, r2]
- add r0, r7, #0
- bl MOD11_02230014
- ldr r1, _02237AA4 ; =0x0000217F
- add r4, r0, #0
- ldrb r3, [r5, r1]
- ldr r1, [r5, #0x64]
- add r2, r5, r1
- ldr r1, _02237AA8 ; =0x0000219C
- ldrb r1, [r2, r1]
- cmp r3, r1
- beq _02237900
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _022378F8
- add r0, r4, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _022378F8
- add r0, r4, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonData
- ldr r1, _02237AAC ; =0x000001EE
- cmp r0, r1
- beq _022378F8
- add r0, r4, #0
- mov r1, #0x9f
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _02237900
-_022378F8:
- ldrb r0, [r5, r6]
- add r0, r0, #1
- strb r0, [r5, r6]
- b _022378A2
-_02237900:
- ldr r2, _02237AA4 ; =0x0000217F
- ldr r1, [r5, #0x64]
- ldrb r2, [r5, r2]
- add r0, r7, #0
- bl MOD11_02230014
- add r4, r0, #0
- mov r1, #5
- mov r2, #0
- bl GetMonData
- str r0, [sp, #4]
- add r0, r4, #0
- mov r1, #0x70
- mov r2, #0
- bl GetMonData
- add r6, r0, #0
- add r0, r4, #0
- mov r1, #0xa0
- mov r2, #0
- bl GetMonData
- add r4, r0, #0
- ldr r0, [sp, #4]
- add r1, r6, #0
- mov r2, #1
- bl GetMonBaseStat_HandleFormeConversion
- ldr r1, _02237AB0 ; =0x00002144
- ldr r2, _02237AB4 ; =0x00003044
- str r0, [r5, r1]
- ldr r2, [r5, r2]
- ldr r0, [r5, r1]
- lsl r2, r2, #4
- add r3, r5, r2
- ldr r2, _02237AB8 ; =0x000003E1
- ldrb r2, [r3, r2]
- mul r2, r0
- str r2, [r5, r1]
- lsl r0, r4, #1
- mov r1, #5
- bl _s32_div_f
- ldr r1, _02237AB0 ; =0x00002144
- add r0, r0, #2
- ldr r2, [r5, r1]
- mul r0, r2
- str r0, [r5, r1]
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- mov r1, #0xb5
- add r2, r5, r0
- lsl r1, r1, #6
- ldrh r0, [r2, r1]
- add r1, #0x26
- ldrb r1, [r2, r1]
- mov r2, #2
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x1b
- bl GetMonBaseStat_HandleFormeConversion
- add r1, r0, #0
- ldr r0, _02237AB0 ; =0x00002144
- ldr r0, [r5, r0]
- bl _u32_div_f
- ldr r1, _02237AB0 ; =0x00002144
- str r0, [r5, r1]
- ldr r0, [r5, r1]
- mov r1, #0x32
- bl _s32_div_f
- ldr r1, _02237AB0 ; =0x00002144
- str r0, [r5, r1]
- ldr r0, [r5, r1]
- add r0, r0, #2
- str r0, [r5, r1]
- add r0, r1, #0
- add r0, #0xc
- ldr r2, [r5, r1]
- ldr r0, [r5, r0]
- mul r0, r2
- str r0, [r5, r1]
- ldr r0, [r5, #0x64]
- lsl r0, r0, #6
- add r2, r5, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r2, r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- beq _022379CC
- ldr r1, [r5, r1]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- ldr r1, _02237AB0 ; =0x00002144
- str r0, [r5, r1]
-_022379CC:
- ldr r1, _02237AB0 ; =0x00002144
- add r0, r5, #0
- ldr r1, [r5, r1]
- bl MOD11_0224BF10
- ldr r1, _02237AB0 ; =0x00002144
- str r0, [r5, r1]
- mov r0, #0
- ldr r2, [r5, r1]
- mvn r0, r0
- mul r0, r2
- str r0, [r5, r1]
- add r0, r5, #0
- add r3, r1, #0
- ldr r2, _02237ABC ; =0x000001E1
- add r0, #0xf6
- strh r2, [r0]
- add r0, r5, #0
- mov r2, #2
- add r0, #0xf5
- strb r2, [r0]
- add r3, #0x3b
- ldrb r3, [r5, r3]
- ldr r0, [r5, #0x64]
- add r6, r1, #0
- lsl r3, r3, #8
- orr r3, r0
- add r0, r5, #0
- add r0, #0xf8
- str r3, [r0]
- add r0, r1, #0
- add r0, #0x3b
- ldrb r0, [r5, r0]
- add r6, #0x3b
- add r3, r0, #1
- add r0, r1, #0
- add r0, #0x3b
- strb r3, [r5, r0]
- add r0, r1, #0
- add r0, #0x38
- strb r2, [r5, r0]
- add r0, r1, #0
- add r0, #0x3b
- ldrb r2, [r5, r0]
- ldr r0, [sp]
- cmp r2, r0
- bge _02237A94
-_02237A2A:
- ldr r1, [r5, #0x64]
- add r0, r7, #0
- bl MOD11_02230014
- ldr r1, _02237AA4 ; =0x0000217F
- add r4, r0, #0
- ldrb r3, [r5, r1]
- ldr r1, [r5, #0x64]
- add r2, r5, r1
- ldr r1, _02237AA8 ; =0x0000219C
- ldrb r1, [r2, r1]
- cmp r3, r1
- beq _02237A9A
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _02237A7C
- add r0, r4, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _02237A7C
- add r0, r4, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonData
- ldr r1, _02237AAC ; =0x000001EE
- cmp r0, r1
- beq _02237A7C
- add r0, r4, #0
- mov r1, #0x9f
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _02237A9A
-_02237A7C:
- ldrb r0, [r5, r6]
- add r0, r0, #1
- strb r0, [r5, r6]
- ldr r0, _02237AA4 ; =0x0000217F
- ldrb r2, [r5, r0]
- ldr r0, [sp]
- cmp r2, r0
- blt _02237A2A
- ldr r0, _02237AC0 ; =0x0000217C
- mov r1, #1
- strb r1, [r5, r0]
- b _02237A9A
-_02237A94:
- mov r0, #1
- add r1, #0x38
- strb r0, [r5, r1]
-_02237A9A:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02237AA0: .word 0x0000217D
-_02237AA4: .word 0x0000217F
-_02237AA8: .word 0x0000219C
-_02237AAC: .word 0x000001EE
-_02237AB0: .word 0x00002144
-_02237AB4: .word 0x00003044
-_02237AB8: .word 0x000003E1
-_02237ABC: .word 0x000001E1
-_02237AC0: .word 0x0000217C
-
- thumb_func_start MOD11_02237AC4
-MOD11_02237AC4: ; 0x02237AC4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- mov r1, #0x71
- lsl r1, r1, #2
- mov r2, #1
- add r1, r4, r1
- lsl r0, r0, #3
- ldr r3, [r1, r0]
- lsl r2, r2, #0x14
- orr r2, r3
- str r2, [r1, r0]
- ldr r3, [r1, r0]
- ldr r2, _02237B00 ; =0xFF9FFFFF
- and r3, r2
- ldr r2, [r4, #0x64]
- lsl r2, r2, #0x1e
- lsr r2, r2, #9
- orr r2, r3
- str r2, [r1, r0]
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02237B00: .word 0xFF9FFFFF
-
- thumb_func_start MOD11_02237B04
-MOD11_02237B04: ; 0x02237B04
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _02237B82
- add r0, r4, #0
- add r1, r5, #0
- mov r2, #0x10
- bl MOD11_0223C230
- add r4, r0, #0
- bl MaskOfFlagNo
- ldr r1, _02237B90 ; =0x00003108
- ldrb r1, [r5, r1]
- tst r0, r1
- bne _02237B78
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _02237B94 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02237B78
- ldr r0, [r5, #0x64]
- mov r2, #0x75
- lsl r0, r0, #6
- add r0, r5, r0
- lsl r2, r2, #2
- ldr r0, [r0, r2]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- bne _02237B78
- add r1, r5, r2
- lsl r0, r4, #6
- ldr r3, [r1, r0]
- lsl r3, r3, #0x1c
- lsr r3, r3, #0x1f
- bne _02237B78
- sub r2, #0xbc
- str r4, [r5, r2]
- ldr r3, [r1, r0]
- mov r2, #8
- orr r2, r3
- str r2, [r1, r0]
- b _02237B8A
-_02237B78:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223A424
- b _02237B8A
-_02237B82:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_02237B8A:
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_02237B90: .word 0x00003108
-_02237B94: .word 0x00002D8C
-
- thumb_func_start MOD11_02237B98
-MOD11_02237B98: ; 0x02237B98
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r5, #0
- bl MOD11_0222FF74
- str r0, [sp, #8]
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- str r0, [sp]
- ldr r1, [r4, #0x6c]
- add r0, r5, #0
- bl MOD11_02230270
- add r7, r0, #0
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- cmp r0, #0
- beq _02237BF2
- ldr r0, [sp, #8]
- mov r1, #0x84
- tst r0, r1
- bne _02237BF2
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
- b _02237C90
-_02237BF2:
- ldr r0, [r4, #0x64]
- add r1, r4, r0
- ldr r0, _02237C98 ; =0x0000219C
- ldrb r0, [r1, r0]
- bl MaskOfFlagNo
- ldr r1, [sp]
- lsl r1, r1, #3
- add r2, r4, r1
- mov r1, #0x71
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- lsl r1, r1, #3
- lsr r1, r1, #0x1a
- tst r0, r1
- bne _02237C30
- ldr r0, [r4, #0x6c]
- add r1, r4, r0
- ldr r0, _02237C98 ; =0x0000219C
- ldrb r0, [r1, r0]
- bl MaskOfFlagNo
- lsl r1, r7, #3
- add r2, r4, r1
- mov r1, #0x71
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- lsl r1, r1, #3
- lsr r1, r1, #0x1a
- tst r0, r1
- beq _02237C3A
-_02237C30:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
- b _02237C90
-_02237C3A:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- add r3, r4, r2
- ldr r2, _02237C9C ; =0x00002DB8
- ldrh r3, [r3, r2]
- cmp r3, #0
- bne _02237C58
- ldr r3, [r4, #0x6c]
- mul r0, r3
- add r0, r4, r0
- ldrh r0, [r0, r2]
- cmp r0, #0
- beq _02237C6E
-_02237C58:
- add r0, r4, #0
- bl MOD11_02246CAC
- cmp r0, #0
- beq _02237C6E
- ldr r1, [r4, #0x6c]
- add r0, r4, #0
- bl MOD11_02246CAC
- cmp r0, #0
- bne _02237C78
-_02237C6E:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
- b _02237C90
-_02237C78:
- ldr r1, [r4, #0x64]
- ldr r2, [r4, #0x6c]
- add r0, r4, #0
- mov r3, #0x3c
- bl MOD11_02246D84
- cmp r0, #1
- bne _02237C90
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_0223A424
-_02237C90:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02237C98: .word 0x0000219C
-_02237C9C: .word 0x00002DB8
-
- thumb_func_start MOD11_02237CA0
-MOD11_02237CA0: ; 0x02237CA0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- mov r2, #0x63
- lsl r2, r2, #2
- ldr r3, [r4, #0x64]
- add r5, r4, r2
- add r1, r0, #0
- ldrb r0, [r5, r3]
- cmp r0, #0
- beq _02237CCA
- add r0, r4, #0
- bl MOD11_0223A424
- b _02237CDA
-_02237CCA:
- mov r0, #2
- strb r0, [r5, r3]
- ldr r0, [r4, #0x64]
- add r2, #0x2c
- add r1, r4, r0
- ldr r0, _02237CE0 ; =0x0000219C
- ldrb r0, [r1, r0]
- strb r0, [r1, r2]
-_02237CDA:
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02237CE0: .word 0x0000219C
-
- thumb_func_start MOD11_02237CE4
-MOD11_02237CE4: ; 0x02237CE4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x48
- str r0, [sp]
- str r1, [sp, #4]
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, [sp, #4]
- bl MOD11_0223A404
- ldr r1, [sp, #4]
- str r0, [sp, #0x14]
- ldr r0, [sp]
- ldr r1, [r1, #0x64]
- mov r7, #0
- bl MOD11_0222FFC8
- str r0, [sp, #0xc]
- add r0, r7, #0
- str r0, [sp, #0x10]
- ldr r0, [sp, #0xc]
- cmp r0, #0
- ble _02237D8A
- add r5, sp, #0x18
-_02237D16:
- ldr r0, [sp, #4]
- ldr r1, [r0, #0x64]
- add r2, r0, r1
- ldr r0, _02237DB8 ; =0x0000219C
- ldrb r2, [r2, r0]
- ldr r0, [sp, #0x10]
- cmp r0, r2
- beq _02237D7E
- ldr r0, [sp]
- ldr r2, [sp, #0x10]
- bl MOD11_02230014
- mov r1, #0xad
- mov r2, #0
- str r0, [sp, #8]
- bl GetMonData
- cmp r0, #0
- beq _02237D7E
- ldr r0, [sp, #8]
- mov r1, #0xad
- mov r2, #0
- bl GetMonData
- ldr r1, _02237DBC ; =0x000001EE
- cmp r0, r1
- beq _02237D7E
- mov r4, #0
-_02237D4E:
- add r1, r4, #0
- ldr r0, [sp, #8]
- add r1, #0x36
- mov r2, #0
- bl GetMonData
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r0, r6, #0
- bl MOD11_02246BE8
- cmp r0, #0
- bne _02237D78
- add r0, r6, #0
- bl MOD11_0224C07C
- cmp r0, #1
- bne _02237D78
- strh r6, [r5]
- add r5, r5, #2
- add r7, r7, #1
-_02237D78:
- add r4, r4, #1
- cmp r4, #4
- blt _02237D4E
-_02237D7E:
- ldr r0, [sp, #0x10]
- add r1, r0, #1
- ldr r0, [sp, #0xc]
- str r1, [sp, #0x10]
- cmp r1, r0
- blt _02237D16
-_02237D8A:
- cmp r7, #0
- beq _02237DA8
- bl rand_LC
- add r1, r7, #0
- bl _s32_div_f
- lsl r1, r1, #1
- add r0, sp, #0x18
- ldrh r2, [r0, r1]
- mov r1, #0x49
- ldr r0, [sp, #4]
- lsl r1, r1, #2
- str r2, [r0, r1]
- b _02237DB0
-_02237DA8:
- ldr r0, [sp, #4]
- ldr r1, [sp, #0x14]
- bl MOD11_0223A424
-_02237DB0:
- mov r0, #0
- add sp, #0x48
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02237DB8: .word 0x0000219C
-_02237DBC: .word 0x000001EE
-
- thumb_func_start MOD11_02237DC0
-MOD11_02237DC0: ; 0x02237DC0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r7, r0, #0
- str r1, [sp]
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, [sp]
- bl MOD11_0223A404
- str r0, [sp, #4]
- mov r6, #0
- add r0, r7, #0
- add r4, r6, #0
- bl MOD11_0222FF84
- cmp r0, #0
- ble _02237E00
- ldr r5, [sp]
-_02237DE8:
- ldr r0, _02237E30 ; =0x00002D8C
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _02237DF2
- add r6, r6, #1
-_02237DF2:
- add r0, r7, #0
- add r5, #0xc0
- add r4, r4, #1
- bl MOD11_0222FF84
- cmp r4, r0
- blt _02237DE8
-_02237E00:
- ldr r0, [sp]
- add r0, #0xec
- ldr r1, [r0]
- sub r0, r6, #1
- cmp r1, r0
- bne _02237E16
- ldr r0, [sp]
- ldr r1, [sp, #4]
- bl MOD11_0223A424
- b _02237E2A
-_02237E16:
- mov r1, #0x75
- ldr r0, [sp]
- lsl r1, r1, #2
- add r3, r0, r1
- ldr r0, [r0, #0x64]
- lsl r2, r0, #6
- ldr r1, [r3, r2]
- mov r0, #0x10
- orr r0, r1
- str r0, [r3, r2]
-_02237E2A:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02237E30: .word 0x00002D8C
-
- thumb_func_start MOD11_02237E34
-MOD11_02237E34: ; 0x02237E34
- push {r4, r5, r6, lr}
- sub sp, #8
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, [r5, #0x64]
- add r0, r6, #0
- bl MOD11_02230270
- add r1, r5, #0
- ldr r4, [r5, #0x64]
- add r1, #0x84
- str r4, [r1]
- ldr r1, [r5, #0x6c]
- lsl r0, r0, #3
- str r1, [r5, #0x64]
- mov r1, #0x71
- lsl r1, r1, #2
- add r1, r5, r1
- ldr r0, [r1, r0]
- lsl r1, r0, #0xb
- lsr r1, r1, #0x1f
- beq _02237E7E
- lsl r0, r0, #9
- lsr r0, r0, #0x1e
- mov r1, #0xc0
- mul r1, r0
- add r2, r5, r1
- ldr r1, _02237EDC ; =0x00002D8C
- ldr r1, [r2, r1]
- cmp r1, #0
- beq _02237E7E
- str r0, [r5, #0x6c]
- b _02237ECA
-_02237E7E:
- ldr r0, _02237EE0 ; =0x00003044
- ldr r3, [r5, r0]
- lsl r0, r3, #4
- add r1, r5, r0
- ldr r0, _02237EE4 ; =0x000003E6
- ldrh r0, [r1, r0]
- cmp r0, #4
- beq _02237E92
- cmp r0, #8
- bne _02237E96
-_02237E92:
- str r4, [r5, #0x6c]
- b _02237ECA
-_02237E96:
- mov r0, #1
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- lsl r3, r3, #0x10
- ldr r2, [r5, #0x64]
- add r0, r6, #0
- add r1, r5, #0
- lsr r3, r3, #0x10
- bl MOD11_02244C28
- mov r1, #0xb5
- lsl r1, r1, #2
- add r2, r5, r1
- mov r1, #0x1c
- mul r1, r0
- ldr r1, [r2, r1]
- lsl r2, r1, #0x1e
- lsr r2, r2, #0x1f
- bne _02237EC4
- lsl r1, r1, #0x1d
- lsr r1, r1, #0x1f
- beq _02237EC8
-_02237EC4:
- str r0, [r5, #0x6c]
- b _02237ECA
-_02237EC8:
- str r4, [r5, #0x6c]
-_02237ECA:
- mov r1, #0x85
- lsl r1, r1, #6
- ldr r2, [r5, r1]
- mov r0, #8
- orr r0, r2
- str r0, [r5, r1]
- mov r0, #0
- add sp, #8
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02237EDC: .word 0x00002D8C
-_02237EE0: .word 0x00003044
-_02237EE4: .word 0x000003E6
-
- thumb_func_start MOD11_02237EE8
-MOD11_02237EE8: ; 0x02237EE8
- push {r3, r4, r5, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, [r5, #0x64]
- ldr r0, [r5, #0x6c]
- lsl r4, r1, #6
- add r2, r5, r4
- lsl r1, r0, #2
- add r2, r2, r1
- mov r1, #0x76
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- cmp r1, #0
- beq _02237F1A
- bl MaskOfFlagNo
- mov r1, #0x7b
- add r2, r5, r4
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- tst r0, r1
- bne _02237F40
-_02237F1A:
- ldr r0, [r5, #0x6c]
- add r2, r5, r4
- lsl r1, r0, #2
- add r2, r2, r1
- mov r1, #0x1f
- lsl r1, r1, #4
- ldr r1, [r2, r1]
- cmp r1, #0
- beq _02237F48
- bl MaskOfFlagNo
- ldr r1, [r5, #0x64]
- lsl r1, r1, #6
- add r2, r5, r1
- mov r1, #0x81
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- tst r0, r1
- beq _02237F48
-_02237F40:
- ldr r0, _02237F54 ; =0x00002158
- mov r1, #0x14
- str r1, [r5, r0]
- b _02237F4E
-_02237F48:
- ldr r0, _02237F54 ; =0x00002158
- mov r1, #0xa
- str r1, [r5, r0]
-_02237F4E:
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02237F54: .word 0x00002158
-
- thumb_func_start MOD11_02237F58
-MOD11_02237F58: ; 0x02237F58
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r1, [r4, #0x6c]
- add r0, r5, #0
- bl MOD11_02230270
- lsl r1, r0, #2
- add r2, r4, r1
- mov r1, #0x6f
- lsl r1, r1, #2
- ldr r2, [r2, r1]
- mov r1, #1
- tst r1, r2
- bne _02237F8C
- mov r1, #2
- tst r1, r2
- beq _02237FBC
-_02237F8C:
- mov r5, #0x6f
- lsl r5, r5, #2
- add r2, r4, r5
- lsl r1, r0, #2
- ldr r6, [r2, r1]
- mov r3, #1
- bic r6, r3
- str r6, [r2, r1]
- ldr r6, [r2, r1]
- mov r3, #2
- bic r6, r3
- add r5, #8
- str r6, [r2, r1]
- lsl r2, r0, #3
- add r3, r4, r5
- ldr r1, [r3, r2]
- mov r0, #0x1c
- bic r1, r0
- str r1, [r3, r2]
- ldr r1, [r3, r2]
- ldr r0, _02237FC8 ; =0xFFFFFC7F
- and r0, r1
- str r0, [r3, r2]
- b _02237FC4
-_02237FBC:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_02237FC4:
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02237FC8: .word 0xFFFFFC7F
-
- thumb_func_start MOD11_02237FCC
-MOD11_02237FCC: ; 0x02237FCC
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r1, r0, #0
- mov r0, #0xb7
- lsl r0, r0, #6
- add r3, r4, r0
- ldr r0, [r4, #0x6c]
- mov r5, #0xc0
- add r2, r0, #0
- mul r2, r5
- ldr r0, [r3, r2]
- lsl r5, r5, #5
- tst r5, r0
- beq _02237FFE
- add r0, r4, #0
- bl MOD11_0223A424
- b _02238006
-_02237FFE:
- mov r1, #1
- lsl r1, r1, #0xc
- orr r0, r1
- str r0, [r3, r2]
-_02238006:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223800C
-MOD11_0223800C: ; 0x0223800C
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r1, [r5, #0x6c]
- add r0, r4, #0
- bl MOD11_02230270
- add r4, r0, #0
- ldr r2, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r2
- add r1, r5, r0
- ldr r0, _02238118 ; =0x00002DB8
- ldrh r0, [r1, r0]
- cmp r0, #0
- beq _02238086
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- mov r3, #0x3c
- bl MOD11_02246D84
- cmp r0, #1
- bne _02238086
- add r0, r5, #0
- ldr r1, _0223811C ; =0x000002CA
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0x25
- add r0, #0xf5
- strb r1, [r0]
- ldr r1, [r5, #0x6c]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- ldr r0, [r5, #0x6c]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _02238120 ; =0x00002D67
- add r2, r5, r2
- ldrb r2, [r2, r0]
- add r0, r5, #0
- add r0, #0xfc
- str r2, [r0]
- ldr r0, _02238124 ; =0x00003044
- add r1, #0x40
- ldr r0, [r5, r0]
- str r0, [r5, r1]
- b _02238114
-_02238086:
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02238118 ; =0x00002DB8
- ldrh r0, [r1, r0]
- cmp r0, #0
- beq _0223810C
- mov r1, #0x8a
- add r0, r5, #0
- lsl r1, r1, #2
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0x21
- add r0, #0xf5
- strb r1, [r0]
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- ldr r1, [r5, #0x6c]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xfc
- str r0, [r1]
- ldr r0, [r5, #0x6c]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- add r0, r5, r2
- ldr r2, _02238118 ; =0x00002DB8
- ldrh r3, [r0, r2]
- add r0, r1, #0
- add r0, #0x40
- str r3, [r5, r0]
- ldr r3, [r5, #0x6c]
- mov r0, #0
- mul r1, r3
- add r1, r5, r1
- strh r0, [r1, r2]
- ldr r0, [r5, #0x6c]
- add r1, r5, r0
- ldr r0, _02238128 ; =0x0000219C
- ldrb r0, [r1, r0]
- bl MaskOfFlagNo
- mov r1, #0x71
- lsl r1, r1, #2
- add r3, r5, r1
- lsl r2, r4, #3
- ldr r4, [r3, r2]
- ldr r1, _0223812C ; =0xE07FFFFF
- and r1, r4
- lsl r4, r4, #3
- lsr r4, r4, #0x1a
- orr r0, r4
- lsl r0, r0, #0x1a
- lsr r0, r0, #3
- orr r0, r1
- str r0, [r3, r2]
- b _02238114
-_0223810C:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_02238114:
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02238118: .word 0x00002DB8
-_0223811C: .word 0x000002CA
-_02238120: .word 0x00002D67
-_02238124: .word 0x00003044
-_02238128: .word 0x0000219C
-_0223812C: .word 0xE07FFFFF
-
- thumb_func_start MOD11_02238130
-MOD11_02238130: ; 0x02238130
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, _02238178 ; =0x00002154
- ldr r0, [r4, r0]
- cmp r0, #0
- bne _02238174
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _0223817C ; =0x00003044
- ldr r1, [r4, r1]
- lsl r1, r1, #4
- add r2, r4, r1
- ldr r1, _02238180 ; =0x000003E1
- ldrb r3, [r2, r1]
- ldr r1, _02238184 ; =0x00002D8C
- add r2, r4, r0
- ldr r0, [r2, r1]
- add r1, r1, #4
- ldr r1, [r2, r1]
- mul r0, r3
- bl _u32_div_f
- ldr r1, _02238178 ; =0x00002154
- str r0, [r4, r1]
- ldr r0, [r4, r1]
- cmp r0, #0
- bne _02238174
- mov r0, #1
- str r0, [r4, r1]
-_02238174:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-_02238178: .word 0x00002154
-_0223817C: .word 0x00003044
-_02238180: .word 0x000003E1
-_02238184: .word 0x00002D8C
-
- thumb_func_start MOD11_02238188
-MOD11_02238188: ; 0x02238188
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r7, r1, #0
- str r0, [sp]
- add r0, r7, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r7, #0
- bl MOD11_0223A404
- str r0, [sp, #0x14]
- ldr r0, [sp]
- ldr r1, [r7, #0x64]
- mov r2, #0
- bl MOD11_02230308
- add r4, r0, #0
- ldr r0, [sp]
- ldr r1, [r7, #0x64]
- mov r2, #2
- bl MOD11_02230308
- mov r6, #0xb7
- add r3, r0, #0
- lsl r6, r6, #6
- add r1, r4, #0
- mov r0, #0xc0
- mov r4, #1
- add r2, r7, r6
- mul r1, r0
- ldr r5, [r2, r1]
- lsl r4, r4, #0x1e
- orr r5, r4
- str r5, [r2, r1]
- add r1, r3, #0
- mul r1, r0
- ldr r3, [r2, r1]
- orr r3, r4
- str r3, [r2, r1]
- ldr r1, [r7, #0x64]
- mul r0, r1
- add r0, r7, r0
- ldr r2, [r0, r6]
- lsr r0, r4, #0x11
- tst r0, r2
- beq _022381F0
- ldr r1, [sp, #0x14]
- add r0, r7, #0
- bl MOD11_0223A424
- b _02238294
-_022381F0:
- ldr r0, [sp]
- bl MOD11_02230270
- str r0, [sp, #0x10]
- ldr r0, [sp]
- bl MOD11_0222FF84
- str r0, [sp, #8]
- mov r0, #0
- str r0, [sp, #0xc]
- ldr r0, [sp, #8]
- cmp r0, #0
- ble _0223826A
- str r7, [sp, #4]
-_0223820C:
- ldr r0, [sp]
- ldr r1, [sp, #0xc]
- bl MOD11_02230270
- ldr r1, [sp, #0x10]
- cmp r1, r0
- beq _02238258
- mov r2, #0
- ldr r0, _0223829C ; =0x00002D4C
- add r4, r2, #0
-_02238220:
- ldr r1, [r7, #0x64]
- mov r6, #0xc0
- mul r6, r1
- add r1, r7, r6
- add r6, r1, r4
- ldr r1, _0223829C ; =0x00002D4C
- ldr r5, [sp, #4]
- ldrh r6, [r6, r1]
- mov r3, #0
-_02238232:
- ldrh r1, [r5, r0]
- cmp r6, r1
- bne _02238240
- cmp r6, #0
- beq _02238240
- cmp r1, #0
- bne _02238248
-_02238240:
- add r3, r3, #1
- add r5, r5, #2
- cmp r3, #4
- blt _02238232
-_02238248:
- cmp r3, #4
- bne _02238254
- add r2, r2, #1
- add r4, r4, #2
- cmp r2, #4
- blt _02238220
-_02238254:
- cmp r3, #4
- bne _0223826A
-_02238258:
- ldr r0, [sp, #4]
- add r0, #0xc0
- str r0, [sp, #4]
- ldr r0, [sp, #0xc]
- add r1, r0, #1
- ldr r0, [sp, #8]
- str r1, [sp, #0xc]
- cmp r1, r0
- blt _0223820C
-_0223826A:
- ldr r1, [sp, #0xc]
- ldr r0, [sp, #8]
- cmp r1, r0
- bne _0223827C
- ldr r1, [sp, #0x14]
- add r0, r7, #0
- bl MOD11_0223A424
- b _02238294
-_0223827C:
- mov r0, #0xb7
- ldr r1, [r7, #0x64]
- lsl r0, r0, #6
- add r3, r7, r0
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- mov r0, #2
- ldr r1, [r3, r2]
- lsl r0, r0, #0xc
- orr r0, r1
- str r0, [r3, r2]
-_02238294:
- mov r0, #0
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223829C: .word 0x00002D4C
-
- thumb_func_start MOD11_022382A0
-MOD11_022382A0: ; 0x022382A0
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- ldr r1, [r4, #0x6c]
- add r0, r5, #0
- bl MOD11_02230270
- ldr r6, [r4, #0x74]
- mov r0, #0xc0
- mul r0, r6
- add r1, r4, r0
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r1, [r1, r0]
- mov r0, #1
- lsl r0, r0, #0xe
- tst r0, r1
- beq _0223833C
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- add r7, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02230270
- cmp r7, r0
- beq _0223833C
- ldr r0, [r4, #0x64]
- mov r2, #0xc0
- add r1, r0, #0
- mul r1, r2
- ldr r3, _02238348 ; =0x00002D8C
- add r0, r4, r1
- ldr r0, [r0, r3]
- cmp r0, #0
- beq _0223833C
- mov r1, #0xc1
- lsl r1, r1, #6
- ldr r6, [r4, r1]
- cmp r6, #0xa5
- beq _0223833C
- add r0, r2, #0
- add r0, #0x64
- str r6, [r4, r0]
- ldr r0, [r4, #0x64]
- ldr r1, [r4, r1]
- sub r3, #0x4c
- lsl r1, r1, #0x10
- add r3, r4, r3
- mul r2, r0
- add r0, r3, r2
- lsr r1, r1, #0x10
- bl MOD11_022461AC
- ldr r3, [r4, #0x64]
- mov r2, #0xc0
- mul r2, r3
- add r2, r4, r2
- add r2, r2, r0
- ldr r0, _0223834C ; =0x00002D6C
- mov r1, #0
- strb r1, [r2, r0]
- ldr r2, [r4, #0x64]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02245190
- b _02238344
-_0223833C:
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_0223A424
-_02238344:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02238348: .word 0x00002D8C
-_0223834C: .word 0x00002D6C
-
- thumb_func_start MOD11_02238350
-MOD11_02238350: ; 0x02238350
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r7, r0, #0
- str r1, [sp]
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, [sp]
- bl MOD11_0223A404
- str r0, [sp, #4]
- mov r6, #0
- add r0, r7, #0
- add r4, r6, #0
- bl MOD11_0222FF84
- cmp r0, #0
- ble _02238390
- ldr r5, [sp]
-_02238378:
- ldr r0, _022383C0 ; =0x00002D8C
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _02238382
- add r6, r6, #1
-_02238382:
- add r0, r7, #0
- add r5, #0xc0
- add r4, r4, #1
- bl MOD11_0222FF84
- cmp r4, r0
- blt _02238378
-_02238390:
- ldr r0, [sp]
- add r0, #0xec
- ldr r1, [r0]
- sub r0, r6, #1
- cmp r1, r0
- bne _022383A6
- ldr r0, [sp]
- ldr r1, [sp, #4]
- bl MOD11_0223A424
- b _022383BA
-_022383A6:
- mov r1, #0x75
- ldr r0, [sp]
- lsl r1, r1, #2
- add r3, r0, r1
- ldr r0, [r0, #0x64]
- lsl r2, r0, #6
- ldr r1, [r3, r2]
- mov r0, #0x20
- orr r0, r1
- str r0, [r3, r2]
-_022383BA:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022383C0: .word 0x00002D8C
-
- thumb_func_start MOD11_022383C4
-MOD11_022383C4: ; 0x022383C4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _02238410 ; =0x00002D60
- ldr r5, _02238414 ; =0x0225DCA8
- ldr r3, [r2, r1]
- ldr r1, _02238418 ; =0x0000FFFF
- mov r0, #0
-_022383E2:
- ldrh r2, [r5]
- cmp r2, r3
- bge _022383F2
- add r5, r5, #4
- ldrh r2, [r5]
- add r0, r0, #1
- cmp r2, r1
- bne _022383E2
-_022383F2:
- lsl r2, r0, #2
- ldr r0, _02238414 ; =0x0225DCA8
- ldrh r1, [r0, r2]
- ldr r0, _02238418 ; =0x0000FFFF
- cmp r1, r0
- beq _02238404
- ldr r0, _0223841C ; =0x0225DCAA
- ldrh r1, [r0, r2]
- b _02238406
-_02238404:
- mov r1, #0x78
-_02238406:
- ldr r0, _02238420 ; =0x00002154
- str r1, [r4, r0]
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02238410: .word 0x00002D60
-_02238414: .word 0x0225DCA8
-_02238418: .word 0x0000FFFF
-_0223841C: .word 0x0225DCAA
-_02238420: .word 0x00002154
-
- thumb_func_start MOD11_02238424
-MOD11_02238424: ; 0x02238424
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- mov r0, #0xd
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _022384CC
- mov r0, #0x4c
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _022384CC
- mov r1, #6
- lsl r1, r1, #6
- ldr r2, [r4, r1]
- ldr r0, _022384D0 ; =0x000080FF
- tst r0, r2
- ldr r0, _022384D4 ; =0x00003044
- beq _022384BE
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r2, r4, r0
- ldr r0, _022384D8 ; =0x000003E1
- ldrb r0, [r2, r0]
- lsl r2, r0, #1
- ldr r0, _022384DC ; =0x00002154
- str r2, [r4, r0]
- ldr r2, [r4, r1]
- mov r1, #3
- tst r1, r2
- beq _02238486
- mov r1, #0xb
- add r0, #0xc
- str r1, [r4, r0]
-_02238486:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0xc
- tst r0, r1
- beq _02238498
- ldr r0, _022384E0 ; =0x00002160
- mov r1, #5
- str r1, [r4, r0]
-_02238498:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0x30
- tst r0, r1
- beq _022384AA
- ldr r0, _022384E0 ; =0x00002160
- mov r1, #0xa
- str r1, [r4, r0]
-_022384AA:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0xc0
- tst r0, r1
- beq _022384CC
- ldr r0, _022384E0 ; =0x00002160
- mov r1, #0xf
- str r1, [r4, r0]
- b _022384CC
-_022384BE:
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _022384D8 ; =0x000003E1
- ldrb r1, [r1, r0]
- ldr r0, _022384DC ; =0x00002154
- str r1, [r4, r0]
-_022384CC:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022384D0: .word 0x000080FF
-_022384D4: .word 0x00003044
-_022384D8: .word 0x000003E1
-_022384DC: .word 0x00002154
-_022384E0: .word 0x00002160
-
- thumb_func_start MOD11_022384E4
-MOD11_022384E4: ; 0x022384E4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r6, r1, #0
- str r0, [sp]
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- str r0, [sp, #0x10]
- ldr r0, [sp]
- bl MOD11_0222FF84
- mov r7, #0
- str r0, [sp, #0xc]
- cmp r0, #0
- bgt _0223850C
- b _02238612
-_0223850C:
- mov r0, #0xb5
- lsl r0, r0, #6
- add r0, r6, r0
- str r6, [sp, #8]
- add r5, r6, #0
- str r0, [sp, #4]
-_02238518:
- ldr r1, [sp, #8]
- ldr r0, _02238654 ; =0x000021A8
- ldr r0, [r1, r0]
- cmp r0, #0x27
- beq _022385FC
- ldr r0, _02238658 ; =0x00002D8C
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _022385FC
- ldr r0, _0223865C ; =0x00002DAC
- ldr r1, [r5, r0]
- mov r0, #0x27
- tst r0, r1
- bne _022385FC
- add r0, r6, #0
- add r1, r7, #0
- bl MOD11_02247190
- cmp r0, #0
- bne _022385FC
- ldr r0, [sp]
- add r1, r7, #0
- bl MOD11_02230270
- str r0, [sp, #0x14]
- ldr r0, [sp]
- ldr r1, [r6, #0x78]
- bl MOD11_02230270
- ldr r1, [sp, #0x14]
- cmp r1, r0
- beq _022385FC
- ldr r0, _02238660 ; =0x00002DEC
- ldrh r4, [r5, r0]
- cmp r4, #0
- beq _02238570
- add r0, r0, #2
- ldrh r0, [r5, r0]
- lsl r0, r0, #1
- add r1, r5, r0
- ldr r0, _02238664 ; =0x00002D4C
- ldrh r0, [r1, r0]
- cmp r4, r0
- beq _0223857A
-_02238570:
- add r0, r6, #0
- add r1, r7, #0
- bl MOD11_0224683C
- add r4, r0, #0
-_0223857A:
- cmp r4, #0
- beq _022385FC
- lsl r1, r4, #0x10
- ldr r0, [sp, #4]
- lsr r1, r1, #0x10
- bl MOD11_022461AC
- str r0, [sp, #0x18]
- lsl r0, r4, #4
- add r1, r6, r0
- ldr r0, _02238668 ; =0x000003DE
- ldrh r0, [r1, r0]
- cmp r0, #0x80
- bne _022385FC
- ldr r0, [sp, #0x18]
- add r1, r5, r0
- ldr r0, _0223866C ; =0x00002D6C
- ldrb r0, [r1, r0]
- cmp r0, #0
- beq _022385FC
- ldr r0, _0223866C ; =0x00002D6C
- add r1, r6, r0
- mov r0, #0xc0
- mul r0, r7
- add r5, r1, r0
- ldr r0, [sp, #0x18]
- ldrb r0, [r5, r0]
- sub r1, r0, #1
- ldr r0, [sp, #0x18]
- strb r1, [r5, r0]
- ldr r1, [r6, #0x78]
- add r0, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x2e
- bne _022385D0
- ldr r0, [sp, #0x18]
- ldrb r0, [r5, r0]
- cmp r0, #0
- beq _022385D0
- sub r1, r0, #1
- ldr r0, [sp, #0x18]
- strb r1, [r5, r0]
-_022385D0:
- ldr r0, [sp]
- add r1, r6, #0
- bl MOD11_02247264
- str r7, [r6, #0x64]
- ldr r0, [r6, #0x78]
- lsl r2, r7, #1
- str r0, [r6, #0x6c]
- ldr r1, _02238670 ; =0x00002158
- mov r0, #0x14
- str r0, [r6, r1]
- ldr r0, _02238674 ; =0x00003044
- add r2, r6, r2
- str r4, [r6, r0]
- add r0, #0x38
- strh r4, [r2, r0]
- lsl r0, r7, #4
- mov r2, #0x27
- add r0, r6, r0
- add r1, #0x50
- str r2, [r0, r1]
- b _02238612
-_022385FC:
- ldr r0, [sp, #8]
- add r7, r7, #1
- add r0, #0x10
- str r0, [sp, #8]
- ldr r0, [sp, #4]
- add r5, #0xc0
- add r0, #0xc0
- str r0, [sp, #4]
- ldr r0, [sp, #0xc]
- cmp r7, r0
- blt _02238518
-_02238612:
- ldr r0, [sp, #0xc]
- cmp r7, r0
- bne _02238622
- ldr r1, [sp, #0x10]
- add r0, r6, #0
- bl MOD11_0223A424
- b _0223864E
-_02238622:
- ldr r1, [r6, #0x64]
- add r0, r6, #0
- bl MOD11_02249D90
- add r5, r0, #0
- ldr r1, [r6, #0x64]
- add r0, r6, #0
- mov r2, #0
- bl MOD11_02249DA4
- cmp r5, #0x36
- beq _02238642
- cmp r5, #0x72
- beq _02238642
- cmp r5, #0x7c
- bne _0223864E
-_02238642:
- ldr r1, [r6, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r6, r0
- ldr r0, _02238678 ; =0x00002DF8
- strh r4, [r1, r0]
-_0223864E:
- mov r0, #0
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02238654: .word 0x000021A8
-_02238658: .word 0x00002D8C
-_0223865C: .word 0x00002DAC
-_02238660: .word 0x00002DEC
-_02238664: .word 0x00002D4C
-_02238668: .word 0x000003DE
-_0223866C: .word 0x00002D6C
-_02238670: .word 0x00002158
-_02238674: .word 0x00003044
-_02238678: .word 0x00002DF8
-
- thumb_func_start MOD11_0223867C
-MOD11_0223867C: ; 0x0223867C
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, [r4, #0x64]
- ldr r3, _022386BC ; =0x00002144
- str r0, [sp]
- ldr r0, [r4, #0x6c]
- ldr r2, _022386C0 ; =0x00003044
- str r0, [sp, #4]
- ldr r0, [r4, r3]
- add r1, r4, #0
- str r0, [sp, #8]
- add r0, r3, #0
- add r0, #0x28
- add r0, r4, r0
- str r0, [sp, #0xc]
- add r3, #0x1c
- ldr r2, [r4, r2]
- ldr r3, [r4, r3]
- add r0, r5, #0
- bl MOD11_02246274
- ldr r1, _022386BC ; =0x00002144
- str r0, [r4, r1]
- mov r0, #0
- add sp, #0x10
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022386BC: .word 0x00002144
-_022386C0: .word 0x00003044
-
- thumb_func_start MOD11_022386C4
-MOD11_022386C4: ; 0x022386C4
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r4, r1, #0
- str r0, [sp]
- add r0, r4, #0
- mov r1, #1
- mov r6, #0
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp, #8]
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r5, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- ldr r0, [sp]
- ldr r2, [sp, #8]
- add r1, r4, #0
- bl MOD11_0223C230
- cmp r7, #6
- bhi _022387B6
- add r1, r7, r7
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02238710: ; jump table
- .short _0223871E - _02238710 - 2 ; case 0
- .short _02238734 - _02238710 - 2 ; case 1
- .short _0223874A - _02238710 - 2 ; case 2
- .short _02238760 - _02238710 - 2 ; case 3
- .short _02238776 - _02238710 - 2 ; case 4
- .short _0223878C - _02238710 - 2 ; case 5
- .short _022387A2 - _02238710 - 2 ; case 6
-_0223871E:
- lsl r0, r0, #6
- add r1, r4, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- cmp r5, r0
- bne _022387B6
- mov r6, #1
- b _022387B6
-_02238734:
- lsl r0, r0, #6
- add r1, r4, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- cmp r5, r0
- bne _022387B6
- mov r6, #1
- b _022387B6
-_0223874A:
- lsl r0, r0, #6
- add r1, r4, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- cmp r5, r0
- bne _022387B6
- mov r6, #1
- b _022387B6
-_02238760:
- lsl r0, r0, #6
- add r1, r4, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- cmp r5, r0
- bne _022387B6
- mov r6, #1
- b _022387B6
-_02238776:
- lsl r0, r0, #6
- add r1, r4, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x1f
- cmp r5, r0
- bne _022387B6
- mov r6, #1
- b _022387B6
-_0223878C:
- lsl r0, r0, #6
- add r1, r4, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1a
- lsr r0, r0, #0x1f
- cmp r5, r0
- bne _022387B6
- mov r6, #1
- b _022387B6
-_022387A2:
- lsl r0, r0, #6
- add r1, r4, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x19
- lsr r0, r0, #0x1f
- cmp r5, r0
- bne _022387B6
- mov r6, #1
-_022387B6:
- cmp r6, #0
- beq _022387C2
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_0223A424
-_022387C2:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_022387C8
-MOD11_022387C8: ; 0x022387C8
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r7, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r5, r0, #0
- ldr r2, [sp]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_0223C230
- cmp r6, #6
- bhi _022388BC
- add r1, r6, r6
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02238808: ; jump table
- .short _02238816 - _02238808 - 2 ; case 0
- .short _0223882E - _02238808 - 2 ; case 1
- .short _02238846 - _02238808 - 2 ; case 2
- .short _0223885E - _02238808 - 2 ; case 3
- .short _02238876 - _02238808 - 2 ; case 4
- .short _0223888E - _02238808 - 2 ; case 5
- .short _022388A6 - _02238808 - 2 ; case 6
-_02238816:
- mov r1, #0x75
- lsl r1, r1, #2
- lsl r3, r0, #6
- add r1, r4, r1
- ldr r2, [r1, r3]
- mov r0, #1
- bic r2, r0
- mov r0, #1
- and r0, r5
- orr r0, r2
- str r0, [r1, r3]
- b _022388BC
-_0223882E:
- mov r1, #0x75
- lsl r1, r1, #2
- lsl r3, r0, #6
- add r1, r4, r1
- ldr r2, [r1, r3]
- mov r0, #2
- bic r2, r0
- lsl r0, r5, #0x1f
- lsr r0, r0, #0x1e
- orr r0, r2
- str r0, [r1, r3]
- b _022388BC
-_02238846:
- mov r1, #0x75
- lsl r1, r1, #2
- lsl r3, r0, #6
- add r1, r4, r1
- ldr r2, [r1, r3]
- mov r0, #4
- bic r2, r0
- lsl r0, r5, #0x1f
- lsr r0, r0, #0x1d
- orr r0, r2
- str r0, [r1, r3]
- b _022388BC
-_0223885E:
- mov r1, #0x75
- lsl r1, r1, #2
- lsl r3, r0, #6
- add r1, r4, r1
- ldr r2, [r1, r3]
- mov r0, #8
- bic r2, r0
- lsl r0, r5, #0x1f
- lsr r0, r0, #0x1c
- orr r0, r2
- str r0, [r1, r3]
- b _022388BC
-_02238876:
- mov r1, #0x75
- lsl r1, r1, #2
- lsl r3, r0, #6
- add r1, r4, r1
- ldr r2, [r1, r3]
- mov r0, #0x10
- bic r2, r0
- lsl r0, r5, #0x1f
- lsr r0, r0, #0x1b
- orr r0, r2
- str r0, [r1, r3]
- b _022388BC
-_0223888E:
- mov r1, #0x75
- lsl r1, r1, #2
- lsl r3, r0, #6
- add r1, r4, r1
- ldr r2, [r1, r3]
- mov r0, #0x20
- bic r2, r0
- lsl r0, r5, #0x1f
- lsr r0, r0, #0x1a
- orr r0, r2
- str r0, [r1, r3]
- b _022388BC
-_022388A6:
- mov r1, #0x75
- lsl r1, r1, #2
- lsl r3, r0, #6
- add r1, r4, r1
- ldr r2, [r1, r3]
- mov r0, #0x40
- bic r2, r0
- lsl r0, r5, #0x1f
- lsr r0, r0, #0x19
- orr r0, r2
- str r0, [r1, r3]
-_022388BC:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_022388C0
-MOD11_022388C0: ; 0x022388C0
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, [r4, #0x6c]
- ldr r1, _022388FC ; =0x000021F0
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r2, [r0, r1]
- mov r0, #0x19
- mul r0, r2
- ldr r2, [r4, #0x64]
- lsl r2, r2, #2
- add r2, r4, r2
- ldr r1, [r2, r1]
- bl _u32_div_f
- add r1, r0, #1
- ldr r0, _02238900 ; =0x00002154
- str r1, [r4, r0]
- ldr r1, [r4, r0]
- cmp r1, #0x96
- ble _022388F6
- mov r1, #0x96
- str r1, [r4, r0]
-_022388F6:
- mov r0, #0
- pop {r4, pc}
- nop
-_022388FC: .word 0x000021F0
-_02238900: .word 0x00002154
-
- thumb_func_start MOD11_02238904
-MOD11_02238904: ; 0x02238904
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp]
- ldr r1, [r5, #0x64]
- add r0, r6, #0
- bl MOD11_02230270
- ldr r1, [r5, #0x64]
- add r7, r0, #0
- lsl r1, r1, #6
- add r2, r5, r1
- mov r1, #0x83
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- add r0, r6, #0
- bl MOD11_02230270
- add r4, r0, #0
- ldr r0, [r5, #0x64]
- mov r2, #0x82
- lsl r0, r0, #6
- add r0, r5, r0
- lsl r2, r2, #2
- ldr r1, [r0, r2]
- cmp r1, #0
- beq _022389E4
- cmp r7, r4
- beq _022389E4
- add r2, r2, #4
- ldr r2, [r0, r2]
- mov r0, #0xc0
- mul r0, r2
- add r2, r5, r0
- ldr r0, _022389F0 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _022389E4
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- ldr r1, _022389F4 ; =0x00002144
- str r0, [r5, r1]
- mov r0, #0x71
- lsl r0, r0, #2
- add r1, r5, r0
- lsl r0, r4, #3
- ldr r0, [r1, r0]
- lsl r1, r0, #0xb
- lsr r1, r1, #0x1f
- beq _02238992
- lsl r0, r0, #9
- lsr r0, r0, #0x1e
- mov r1, #0xc0
- mul r1, r0
- add r2, r5, r1
- ldr r1, _022389F0 ; =0x00002D8C
- ldr r1, [r2, r1]
- cmp r1, #0
- beq _02238992
- str r0, [r5, #0x6c]
- b _022389A0
-_02238992:
- ldr r0, [r5, #0x64]
- lsl r0, r0, #6
- add r1, r5, r0
- mov r0, #0x83
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- str r0, [r5, #0x6c]
-_022389A0:
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _022389F0 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _022389D8
- ldr r2, [r5, #0x64]
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_022482A4
- mov r1, #0xc0
- mul r1, r0
- str r0, [r5, #0x6c]
- ldr r0, _022389F0 ; =0x00002D8C
- add r1, r5, r1
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _022389D8
- mov r2, #0x26
- str r2, [r5, #0xc]
- add r0, r5, #0
- mov r1, #1
- add r2, #0xf3
- bl MOD11_0223A434
-_022389D8:
- ldr r1, [r5, #0x64]
- ldr r2, [r5, #0x6c]
- add r0, r5, #0
- bl MOD11_0224C438
- b _022389EC
-_022389E4:
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD11_0223A424
-_022389EC:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022389F0: .word 0x00002D8C
-_022389F4: .word 0x00002144
-
- thumb_func_start MOD11_022389F8
-MOD11_022389F8: ; 0x022389F8
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, [r4, #0x6c]
- ldr r1, _02238A34 ; =0x000021A8
- lsl r0, r0, #4
- add r0, r4, r0
- ldr r0, [r0, r1]
- cmp r0, #0x27
- ldr r0, _02238A38 ; =0x00003044
- bne _02238A22
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r2, r4, r0
- ldr r0, _02238A3C ; =0x000003E1
- ldrb r0, [r2, r0]
- lsl r0, r0, #1
- b _02238A2C
-_02238A22:
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r2, r4, r0
- ldr r0, _02238A3C ; =0x000003E1
- ldrb r0, [r2, r0]
-_02238A2C:
- sub r1, #0x54
- str r0, [r4, r1]
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-_02238A34: .word 0x000021A8
-_02238A38: .word 0x00003044
-_02238A3C: .word 0x000003E1
-
- thumb_func_start MOD11_02238A40
-MOD11_02238A40: ; 0x02238A40
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- lsl r0, r1, #1
- add r1, r4, r0
- ldr r0, _02238A74 ; =0x000030BC
- ldrh r0, [r1, r0]
- add r1, r2, r0
- ldr r0, _02238A78 ; =0x00002D6C
- ldrb r1, [r1, r0]
- cmp r1, #4
- bls _02238A68
- mov r1, #4
-_02238A68:
- ldr r0, _02238A7C ; =0x0225DC2C
- ldrb r1, [r0, r1]
- ldr r0, _02238A80 ; =0x00002154
- str r1, [r4, r0]
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-_02238A74: .word 0x000030BC
-_02238A78: .word 0x00002D6C
-_02238A7C: .word 0x0225DC2C
-_02238A80: .word 0x00002154
-
- thumb_func_start MOD11_02238A84
-MOD11_02238A84: ; 0x02238A84
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r3, r4, r0
- ldr r1, _02238AB4 ; =0x00002D8C
- mov r0, #0x78
- ldr r2, [r3, r1]
- add r1, r1, #4
- ldr r1, [r3, r1]
- mul r0, r2
- bl _u32_div_f
- add r1, r0, #1
- ldr r0, _02238AB8 ; =0x00002154
- str r1, [r4, r0]
- mov r0, #0
- pop {r4, pc}
- nop
-_02238AB4: .word 0x00002D8C
-_02238AB8: .word 0x00002154
-
- thumb_func_start MOD11_02238ABC
-MOD11_02238ABC: ; 0x02238ABC
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- ldr r3, _02238B68 ; =0x00002DEC
- add r0, r5, r0
- ldrh r4, [r0, r3]
- cmp r4, #0
- beq _02238AF0
- add r2, r3, #2
- ldrh r2, [r0, r2]
- sub r3, #0xa0
- lsl r2, r2, #1
- add r0, r0, r2
- ldrh r0, [r0, r3]
- cmp r4, r0
- beq _02238AF8
-_02238AF0:
- add r0, r5, #0
- bl MOD11_0224683C
- add r4, r0, #0
-_02238AF8:
- ldr r0, [r5, #0x6c]
- lsl r1, r0, #4
- add r2, r5, r1
- ldr r1, _02238B6C ; =0x000021A8
- ldr r1, [r2, r1]
- cmp r1, #0x27
- beq _02238B5C
- lsl r0, r0, #6
- add r1, r5, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _02238B5C
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224C0F0
- cmp r0, #1
- bne _02238B5C
- lsl r0, r4, #4
- add r1, r5, r0
- ldr r0, _02238B70 ; =0x000003E1
- ldrb r0, [r1, r0]
- cmp r0, #0
- beq _02238B5C
- ldr r2, [r5, #0x64]
- ldr r3, _02238B74 ; =0x00002DCC
- add r0, r2, #0
- mov r6, #0xc0
- add r1, r5, r3
- mul r0, r6
- mov r2, #1
- ldr r7, [r1, r0]
- lsl r2, r2, #0x1e
- orr r2, r7
- str r2, [r1, r0]
- add r0, r6, #0
- add r0, #0xb4
- ldr r2, [r5, r0]
- ldr r0, [r5, #0x64]
- add r3, #0x10
- add r1, r0, #0
- mul r1, r6
- add r0, r5, r1
- str r2, [r0, r3]
- add r6, #0x64
- str r4, [r5, r6]
- b _02238B64
-_02238B5C:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_02238B64:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02238B68: .word 0x00002DEC
-_02238B6C: .word 0x000021A8
-_02238B70: .word 0x000003E1
-_02238B74: .word 0x00002DCC
-
- thumb_func_start MOD11_02238B78
-MOD11_02238B78: ; 0x02238B78
- push {r3, r4, r5, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- ldr r0, _02238BC8 ; =0x00003048
- ldr r0, [r5, r0]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl MOD11_02246BE8
- cmp r0, #0
- bne _02238BBC
- ldr r0, _02238BC8 ; =0x00003048
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _02238BBC
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl MOD11_0224C07C
- cmp r0, #1
- bne _02238BBC
- ldr r0, _02238BC8 ; =0x00003048
- ldr r1, [r5, r0]
- mov r0, #0x49
- lsl r0, r0, #2
- str r1, [r5, r0]
- b _02238BC4
-_02238BBC:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A424
-_02238BC4:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02238BC8: .word 0x00003048
-
- thumb_func_start MOD11_02238BCC
-MOD11_02238BCC: ; 0x02238BCC
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r5, _02238C1C ; =0x00002D58
- mov r1, #0
- ldr r3, [r4, #0x6c]
- mov r2, #0xc0
- mul r2, r3
- add r3, r4, r2
- add r0, r1, #0
- add r2, r3, #0
- add r6, r5, #0
-_02238BEA:
- ldrsb r7, [r2, r6]
- cmp r7, #6
- ble _02238BF8
- add r7, r3, r0
- ldrsb r7, [r7, r5]
- sub r7, r7, #6
- add r1, r1, r7
-_02238BF8:
- add r0, r0, #1
- add r2, r2, #1
- cmp r0, #8
- blt _02238BEA
- mov r0, #0x14
- add r2, r1, #0
- mul r2, r0
- ldr r0, _02238C20 ; =0x00002154
- add r2, #0x3c
- str r2, [r4, r0]
- ldr r1, [r4, r0]
- cmp r1, #0xc8
- ble _02238C16
- mov r1, #0xc8
- str r1, [r4, r0]
-_02238C16:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02238C1C: .word 0x00002D58
-_02238C20: .word 0x00002154
-
- thumb_func_start MOD11_02238C24
-MOD11_02238C24: ; 0x02238C24
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- ldr r6, _02238C94 ; =0x00002DEC
- add r2, r5, r0
- ldrh r0, [r2, r6]
- cmp r0, #0
- beq _02238C58
- add r3, r6, #2
- ldrh r3, [r2, r3]
- sub r6, #0xa0
- lsl r3, r3, #1
- add r2, r2, r3
- ldrh r2, [r2, r6]
- cmp r0, r2
- beq _02238C5E
-_02238C58:
- add r0, r5, #0
- bl MOD11_0224683C
-_02238C5E:
- ldr r1, [r5, #0x6c]
- lsl r2, r1, #4
- add r3, r5, r2
- ldr r2, _02238C98 ; =0x000021A8
- ldr r2, [r3, r2]
- cmp r2, #0x27
- beq _02238C88
- lsl r0, r0, #4
- add r2, r5, r0
- ldr r0, _02238C9C ; =0x000003E1
- ldrb r0, [r2, r0]
- cmp r0, #0
- bne _02238C90
- lsl r0, r1, #6
- add r1, r5, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _02238C90
-_02238C88:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A424
-_02238C90:
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02238C94: .word 0x00002DEC
-_02238C98: .word 0x000021A8
-_02238C9C: .word 0x000003E1
-
- thumb_func_start MOD11_02238CA0
-MOD11_02238CA0: ; 0x02238CA0
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r7, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp, #8]
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- ldr r2, [sp, #8]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r7, #0
- bl MOD11_02230270
- ldr r1, [sp, #4]
- cmp r1, #0
- beq _02238CF2
- cmp r1, #1
- beq _02238CF2
- cmp r1, #2
- beq _02238D70
- b _02238E4A
-_02238CF2:
- cmp r6, #5
- bls _02238CF8
- b _02238E4A
-_02238CF8:
- add r1, r6, r6
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02238D04: ; jump table
- .short _02238D10 - _02238D04 - 2 ; case 0
- .short _02238D20 - _02238D04 - 2 ; case 1
- .short _02238D30 - _02238D04 - 2 ; case 2
- .short _02238D40 - _02238D04 - 2 ; case 3
- .short _02238D50 - _02238D04 - 2 ; case 4
- .short _02238D60 - _02238D04 - 2 ; case 5
-_02238D10:
- lsl r0, r0, #3
- add r1, r4, r0
- mov r0, #0x71
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1b
- lsr r5, r0, #0x1d
- b _02238E4A
-_02238D20:
- lsl r0, r0, #3
- add r1, r4, r0
- mov r0, #0x71
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x16
- lsr r5, r0, #0x1d
- b _02238E4A
-_02238D30:
- lsl r0, r0, #3
- add r1, r4, r0
- mov r0, #0x71
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x11
- lsr r5, r0, #0x1d
- b _02238E4A
-_02238D40:
- lsl r0, r0, #3
- add r1, r4, r0
- mov r0, #0x71
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0xc
- lsr r5, r0, #0x1d
- b _02238E4A
-_02238D50:
- lsl r0, r0, #3
- add r1, r4, r0
- mov r0, #0x72
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1e
- lsr r5, r0, #0x1e
- b _02238E4A
-_02238D60:
- lsl r0, r0, #3
- add r1, r4, r0
- mov r0, #0x72
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1c
- lsr r5, r0, #0x1e
- b _02238E4A
-_02238D70:
- cmp r6, #5
- bhi _02238E4A
- add r1, r6, r6
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02238D80: ; jump table
- .short _02238D8C - _02238D80 - 2 ; case 0
- .short _02238DAC - _02238D80 - 2 ; case 1
- .short _02238DCC - _02238D80 - 2 ; case 2
- .short _02238DEC - _02238D80 - 2 ; case 3
- .short _02238E0C - _02238D80 - 2 ; case 4
- .short _02238E2C - _02238D80 - 2 ; case 5
-_02238D8C:
- mov r2, #0x71
- lsl r2, r2, #2
- add r6, r4, r2
- lsl r3, r0, #3
- ldr r7, [r6, r3]
- mov r1, #0x1c
- bic r7, r1
- sub r2, #8
- str r7, [r6, r3]
- add r3, r4, r2
- lsl r2, r0, #2
- ldr r1, [r3, r2]
- mov r0, #1
- bic r1, r0
- str r1, [r3, r2]
- b _02238E4A
-_02238DAC:
- mov r2, #0x71
- lsl r2, r2, #2
- add r6, r4, r2
- lsl r7, r0, #3
- ldr r3, [r6, r7]
- ldr r1, _02238E74 ; =0xFFFFFC7F
- sub r2, #8
- and r1, r3
- add r3, r4, r2
- lsl r2, r0, #2
- str r1, [r6, r7]
- ldr r1, [r3, r2]
- mov r0, #2
- bic r1, r0
- str r1, [r3, r2]
- b _02238E4A
-_02238DCC:
- mov r2, #0x71
- lsl r2, r2, #2
- add r6, r4, r2
- lsl r7, r0, #3
- ldr r3, [r6, r7]
- ldr r1, _02238E78 ; =0xFFFF8FFF
- sub r2, #8
- and r1, r3
- add r3, r4, r2
- lsl r2, r0, #2
- str r1, [r6, r7]
- ldr r1, [r3, r2]
- mov r0, #0x40
- bic r1, r0
- str r1, [r3, r2]
- b _02238E4A
-_02238DEC:
- mov r2, #0x71
- lsl r2, r2, #2
- add r6, r4, r2
- lsl r7, r0, #3
- ldr r3, [r6, r7]
- ldr r1, _02238E7C ; =0xFFF1FFFF
- sub r2, #8
- and r1, r3
- add r3, r4, r2
- lsl r2, r0, #2
- str r1, [r6, r7]
- ldr r1, [r3, r2]
- mov r0, #8
- bic r1, r0
- str r1, [r3, r2]
- b _02238E4A
-_02238E0C:
- mov r2, #0x72
- lsl r2, r2, #2
- add r6, r4, r2
- lsl r3, r0, #3
- ldr r7, [r6, r3]
- mov r1, #3
- bic r7, r1
- sub r2, #0xc
- str r7, [r6, r3]
- add r3, r4, r2
- lsl r2, r0, #2
- ldr r1, [r3, r2]
- mov r0, #4
- bic r1, r0
- str r1, [r3, r2]
- b _02238E4A
-_02238E2C:
- mov r2, #0x72
- lsl r2, r2, #2
- add r6, r4, r2
- lsl r3, r0, #3
- ldr r7, [r6, r3]
- mov r1, #0xc
- bic r7, r1
- sub r2, #0xc
- str r7, [r6, r3]
- lsl r3, r0, #2
- add r1, r4, r2
- ldr r2, [r1, r3]
- ldr r0, _02238E80 ; =0xFFFFFBFF
- and r0, r2
- str r0, [r1, r3]
-_02238E4A:
- ldr r0, [sp, #4]
- cmp r0, #0
- bne _02238E5C
- cmp r5, #0
- bne _02238E5C
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_0223A424
-_02238E5C:
- ldr r0, [sp, #4]
- cmp r0, #1
- bne _02238E6E
- cmp r5, #0
- beq _02238E6E
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_0223A424
-_02238E6E:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02238E74: .word 0xFFFFFC7F
-_02238E78: .word 0xFFFF8FFF
-_02238E7C: .word 0xFFF1FFFF
-_02238E80: .word 0xFFFFFBFF
-
- thumb_func_start MOD11_02238E84
-MOD11_02238E84: ; 0x02238E84
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r1, r0, #0
- ldr r0, [r4, #0x6c]
- lsl r0, r0, #6
- add r2, r4, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r2, r0]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- bne _02238EB0
- add r0, r4, #0
- bl MOD11_0223A424
-_02238EB0:
- mov r0, #0
- pop {r4, pc}
-
- thumb_func_start MOD11_02238EB4
-MOD11_02238EB4: ; 0x02238EB4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r1, r0, #0
- ldr r0, [r4, #0x6c]
- mov r2, #0xc0
- add r3, r0, #0
- mul r3, r2
- add r5, r4, r3
- ldr r3, _02238EFC ; =0x00002DAC
- ldr r0, [r5, r3]
- cmp r0, #0
- bne _02238EF2
- add r0, r3, #4
- ldr r5, [r5, r0]
- mov r0, #1
- lsl r0, r0, #0x18
- tst r0, r5
- bne _02238EF2
- ldr r0, [r4, #0x64]
- mul r2, r0
- add r0, r4, r2
- ldr r0, [r0, r3]
- cmp r0, #0
- bne _02238EF8
-_02238EF2:
- add r0, r4, #0
- bl MOD11_0223A424
-_02238EF8:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02238EFC: .word 0x00002DAC
-
- thumb_func_start MOD11_02238F00
-MOD11_02238F00: ; 0x02238F00
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r2, [r4, #0x64]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022473F8
- ldr r2, [r4, #0x64]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _02238F48 ; =0x00002DCC
- ldr r1, [r2, r1]
- lsl r1, r1, #0x13
- lsr r2, r1, #0x1d
- sub r1, r0, #1
- cmp r2, r1
- blo _02238F3A
- cmp r0, #2
- bge _02238F42
-_02238F3A:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_02238F42:
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_02238F48: .word 0x00002DCC
-
- thumb_func_start MOD11_02238F4C
-MOD11_02238F4C: ; 0x02238F4C
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- mov r2, #0x72
- mov r1, #1
- add r3, r0, #0
- eor r3, r1
- lsl r0, r3, #3
- add r5, r4, r0
- lsl r2, r2, #2
- ldr r5, [r5, r2]
- lsl r5, r5, #0x1c
- lsr r5, r5, #0x1e
- cmp r5, #2
- bne _02238FA2
- mov r0, #0xb5
- lsl r0, r0, #2
- add r2, r4, r0
- ldr r3, [r4, #0x64]
- mov r0, #0x1c
- mul r0, r3
- ldr r5, [r2, r0]
- mov r3, #1
- bic r5, r3
- orr r1, r5
- str r1, [r2, r0]
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
- b _02238FCA
-_02238FA2:
- add r5, r2, #0
- sub r5, #0xc
- add r5, r4, r5
- lsl r3, r3, #2
- ldr r6, [r5, r3]
- lsl r1, r1, #0xa
- orr r1, r6
- str r1, [r5, r3]
- add r2, r4, r2
- ldr r4, [r2, r0]
- mov r3, #0xc
- add r1, r4, #0
- bic r1, r3
- lsl r3, r4, #0x1c
- lsr r3, r3, #0x1e
- add r3, r3, #1
- lsl r3, r3, #0x1e
- lsr r3, r3, #0x1c
- orr r1, r3
- str r1, [r2, r0]
-_02238FCA:
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02238FD0
-MOD11_02238FD0: ; 0x02238FD0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r4, #0
- add r1, r5, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r7, r0, #0
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_02230270
- mov r1, #0x72
- lsl r1, r1, #2
- add r4, r5, r1
- lsl r6, r0, #3
- str r0, [sp]
- ldr r0, [r4, r6]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1e
- beq _0223906A
- sub r1, #0x94
- str r0, [r5, r1]
- add r0, r5, #0
- mov r1, #6
- add r0, #0x88
- str r1, [r0]
- add r0, r5, #0
- add r0, #0x94
- str r7, [r0]
- ldr r1, [r5, #0x78]
- add r0, r5, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #3
- beq _02239048
- ldr r1, [r5, #0x78]
- add r0, r5, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #3
- bne _02239072
-_02239048:
- mov r0, #0x6f
- ldr r1, [sp]
- lsl r0, r0, #2
- add r2, r5, r0
- lsl r1, r1, #2
- ldr r7, [r2, r1]
- ldr r3, _02239078 ; =0xFFFFFBFF
- sub r0, #0x88
- and r3, r7
- str r3, [r2, r1]
- ldr r2, [r4, r6]
- mov r1, #0xc
- bic r2, r1
- str r2, [r4, r6]
- mov r1, #0
- str r1, [r5, r0]
- b _02239072
-_0223906A:
- ldr r1, [sp, #4]
- add r0, r5, #0
- bl MOD11_0223A424
-_02239072:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02239078: .word 0xFFFFFBFF
-
- thumb_func_start MOD11_0223907C
-MOD11_0223907C: ; 0x0223907C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp, #8]
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- cmp r4, #0
- bne _0223912C
- add r0, r6, #0
- bl MOD11_0222FF84
- mov r6, #0
- str r0, [sp]
- cmp r0, #0
- ble _02239194
-_022390BE:
- ldr r0, _0223919C ; =0x000021EC
- add r1, r5, r6
- ldrb r4, [r1, r0]
- ldr r0, [sp, #8]
- cmp r0, #0
- bne _022390F6
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- add r2, r4, #0
- add r3, r7, #0
- bl MOD11_02246D84
- cmp r0, #1
- bne _02239122
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022391A0 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02239122
- ldr r1, [sp, #4]
- add r0, r5, #0
- bl MOD11_0223A424
- add r5, #0x80
- str r4, [r5]
- b _02239194
-_022390F6:
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- add r2, r4, #0
- add r3, r7, #0
- bl MOD11_02246D84
- cmp r0, #0
- beq _02239114
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022391A0 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02239122
-_02239114:
- ldr r1, [sp, #4]
- add r0, r5, #0
- bl MOD11_0223A424
- add r5, #0x80
- str r4, [r5]
- b _02239194
-_02239122:
- ldr r0, [sp]
- add r6, r6, #1
- cmp r6, r0
- blt _022390BE
- b _02239194
-_0223912C:
- add r0, r6, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0223C230
- add r4, r0, #0
- ldr r0, [sp, #8]
- cmp r0, #0
- bne _0223916A
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- add r2, r4, #0
- add r3, r7, #0
- bl MOD11_02246D84
- cmp r0, #1
- bne _02239194
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022391A0 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02239194
- ldr r1, [sp, #4]
- add r0, r5, #0
- bl MOD11_0223A424
- add r5, #0x80
- str r4, [r5]
- b _02239194
-_0223916A:
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- add r2, r4, #0
- add r3, r7, #0
- bl MOD11_02246D84
- cmp r0, #0
- beq _02239188
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022391A0 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02239194
-_02239188:
- ldr r1, [sp, #4]
- add r0, r5, #0
- bl MOD11_0223A424
- add r5, #0x80
- str r4, [r5]
-_02239194:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_0223919C: .word 0x000021EC
-_022391A0: .word 0x00002D8C
-
- thumb_func_start MOD11_022391A4
-MOD11_022391A4: ; 0x022391A4
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r6, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD11_0223C230
- add r7, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02230270
- add r6, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_02230270
- cmp r6, r0
- bne _02239200
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_0223A424
-_02239200:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02239204
-MOD11_02239204: ; 0x02239204
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- str r0, [sp]
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- mov r7, #0
- ldr r0, [sp]
- add r1, r7, #0
- bl MOD11_0222FFC8
- cmp r0, #0
- bgt _02239222
- b _02239360
-_02239222:
- ldr r0, [sp]
- mov r1, #0
- add r2, r7, #0
- bl MOD11_02230014
- mov r1, #0xad
- mov r2, #0
- add r4, r0, #0
- bl GetMonData
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r0, r4, #0
- mov r1, #6
- mov r2, #0
- bl GetMonData
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- add r0, r4, #0
- mov r1, #0xa
- mov r2, #0
- bl GetMonData
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #4]
- cmp r0, #0x35
- bne _022392EC
- cmp r6, #0
- beq _022392EC
- ldr r0, _02239368 ; =0x000001EE
- cmp r6, r0
- beq _022392EC
- ldr r0, [sp, #8]
- cmp r0, #0
- bne _022392EC
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- cmp r1, #0
- bne _022392EC
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- add r5, r1, #0
- add r0, r4, #0
- mov r1, #0xa0
- mov r2, #0
- bl GetMonData
- sub r0, r0, #1
- mov r1, #0xa
- bl _u32_div_f
- lsl r0, r0, #0x18
- lsr r2, r0, #0x18
- cmp r2, #0xa
- blo _022392A4
- mov r2, #9
-_022392A4:
- mov r1, #0
- ldr r3, _0223936C ; =0x0225E150
- str r1, [sp, #0xc]
-_022392AA:
- ldrb r0, [r3]
- cmp r0, r5
- ble _022392C4
- ldr r3, [sp, #0xc]
- ldr r5, _02239370 ; =0x0225DD24
- add r2, r2, r3
- lsl r2, r2, #1
- add r0, r4, #0
- mov r1, #6
- add r2, r5, r2
- bl SetMonData
- b _022392EC
-_022392C4:
- cmp r5, #0x62
- blt _022392E2
- cmp r5, #0x63
- bgt _022392E2
- mov r3, #0x63
- sub r3, r3, r5
- add r2, r2, r3
- lsl r3, r2, #1
- ldr r2, _02239374 ; =0x0225DC48
- add r0, r4, #0
- mov r1, #6
- add r2, r2, r3
- bl SetMonData
- b _022392EC
-_022392E2:
- add r1, r1, #1
- add r3, r3, #1
- str r1, [sp, #0xc]
- cmp r1, #9
- blt _022392AA
-_022392EC:
- ldr r0, [sp, #4]
- cmp r0, #0x76
- bne _02239350
- cmp r6, #0
- beq _02239350
- ldr r0, _02239368 ; =0x000001EE
- cmp r6, r0
- beq _02239350
- ldr r0, [sp, #8]
- cmp r0, #0
- bne _02239350
- mov r2, #0
- add r0, r4, #0
- mov r1, #0xa0
- str r2, [sp, #0xc]
- mov r5, #0xa
- bl GetMonData
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- cmp r1, #0xa
- ble _02239324
- ldr r0, [sp, #0xc]
-_0223931A:
- add r5, #0xa
- add r0, r0, #1
- cmp r5, r1
- blt _0223931A
- str r0, [sp, #0xc]
-_02239324:
- ldr r0, [sp, #0xc]
- cmp r0, #0xa
- blt _0223932E
- bl ErrorHandling
-_0223932E:
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- ldr r2, [sp, #0xc]
- ldr r0, _02239378 ; =0x0225E15C
- ldrb r0, [r0, r2]
- cmp r1, r0
- bge _02239350
- mov r0, #0x5e
- str r0, [sp, #0xc]
- add r0, r4, #0
- mov r1, #6
- add r2, sp, #0xc
- bl SetMonData
-_02239350:
- ldr r0, [sp]
- mov r1, #0
- add r7, r7, #1
- bl MOD11_0222FFC8
- cmp r7, r0
- bge _02239360
- b _02239222
-_02239360:
- mov r0, #0
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02239368: .word 0x000001EE
-_0223936C: .word 0x0225E150
-_02239370: .word 0x0225DD24
-_02239374: .word 0x0225DC48
-_02239378: .word 0x0225E15C
-
- thumb_func_start MOD11_0223937C
-MOD11_0223937C: ; 0x0223937C
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- mov r0, #0xb5
- ldr r1, [r4, #0x64]
- lsl r0, r0, #2
- add r3, r4, r0
- mov r0, #0x1c
- add r2, r1, #0
- mul r2, r0
- ldr r1, [r3, r2]
- mov r0, #0x10
- orr r0, r1
- str r0, [r3, r2]
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022393A4
-MOD11_022393A4: ; 0x022393A4
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_02249B7C
- cmp r0, #1
- bne _022393E0
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_0223A424
-_022393E0:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_022393E4
-MOD11_022393E4: ; 0x022393E4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- ldr r0, [sp]
- ldr r2, [sp, #4]
- add r1, r5, #0
- bl MOD11_0223C230
- add r1, r0, #0
- cmp r6, #0
- bne _02239438
- add r0, r5, #0
- bl MOD11_02249D90
- cmp r4, r0
- bne _0223944A
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_0223A424
- b _0223944A
-_02239438:
- add r0, r5, #0
- bl MOD11_02249D90
- cmp r4, r0
- beq _0223944A
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_0223A424
-_0223944A:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02239450
-MOD11_02239450: ; 0x02239450
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A444
- add r6, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_02249B4C
- add r1, r0, #0
- add r0, r4, #0
- mov r2, #1
- bl MOD11_0224C12C
- str r0, [r6]
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223949C
-MOD11_0223949C: ; 0x0223949C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A444
- add r6, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_02249B4C
- add r1, r0, #0
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C12C
- str r0, [r6]
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022394E8
-MOD11_022394E8: ; 0x022394E8
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x79
- bne _02239516
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223A424
- mov r0, #0
- pop {r4, r5, r6, pc}
-_02239516:
- add r0, r4, #0
- bl MOD11_02230294
- ldr r1, _02239570 ; =0x0225E168
- mov r2, #0x1b
- ldrb r4, [r1, r0]
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- mov r3, #0
- bl MOD11_02243420
- cmp r4, r0
- beq _02239564
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r4, r0
- beq _02239564
- ldr r1, [r5, #0x64]
- lsl r0, r4, #0x18
- add r3, r1, #0
- mov r2, #0xc0
- mul r3, r2
- ldr r1, _02239574 ; =0x00002D64
- lsr r0, r0, #0x18
- add r3, r5, r3
- strb r0, [r3, r1]
- ldr r3, [r5, #0x64]
- add r1, r1, #1
- add r6, r3, #0
- mul r6, r2
- add r3, r5, r6
- strb r0, [r3, r1]
- add r2, #0x70
- str r4, [r5, r2]
- b _0223956C
-_02239564:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_0223956C:
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02239570: .word 0x0225E168
-_02239574: .word 0x00002D64
-
- thumb_func_start MOD11_02239578
-MOD11_02239578: ; 0x02239578
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_02230294
- lsl r1, r0, #1
- ldr r0, _0223959C ; =0x0225DD0A
- ldrh r1, [r0, r1]
- mov r0, #0x49
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0223959C: .word 0x0225DD0A
-
- thumb_func_start MOD11_022395A0
-MOD11_022395A0: ; 0x022395A0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_02230294
- lsl r1, r0, #2
- ldr r0, _022395C4 ; =0x0225DD48
- ldr r1, [r0, r1]
- ldr r0, _022395C8 ; =0x00002174
- str r1, [r4, r0]
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_022395C4: .word 0x0225DD48
-_022395C8: .word 0x00002174
-
- thumb_func_start MOD11_022395CC
-MOD11_022395CC: ; 0x022395CC
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r5, r0, #0
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02249DF0
- cmp r0, #0
- beq _022395FE
- ldr r1, _0223960C ; =0x00002154
- str r0, [r4, r1]
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02249E04
- ldr r1, _02239610 ; =0x00002160
- str r0, [r4, r1]
- b _02239606
-_022395FE:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0223A424
-_02239606:
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_0223960C: .word 0x00002154
-_02239610: .word 0x00002160
-
- thumb_func_start MOD11_02239614
-MOD11_02239614: ; 0x02239614
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r2, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _02239674 ; =0x00002DB8
- ldrh r0, [r1, r0]
- cmp r0, #0
- beq _0223965A
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r3, #0x3c
- bl MOD11_02246D84
- cmp r0, #1
- bne _0223965A
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_0223A424
- b _02239670
-_0223965A:
- ldr r2, [r4, #0x6c]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02249F8C
- cmp r0, #1
- beq _02239670
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_02239670:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02239674: .word 0x00002DB8
-
- thumb_func_start MOD11_02239678
-MOD11_02239678: ; 0x02239678
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r2, [r4, #0x64]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224A4E0
- cmp r0, #1
- beq _022396A4
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_022396A4:
- mov r0, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_022396A8
-MOD11_022396A8: ; 0x022396A8
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- mov r2, #0
- str r2, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- add r3, r2, #0
- str r2, [sp, #8]
- bl MOD11_02255980
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022396D8
-MOD11_022396D8: ; 0x022396D8
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #0
- bl MOD11_0224AD90
- add r4, r0, #0
- beq _02239714
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r1, r0, #0
- cmp r4, #0xff
- bne _0223970C
- add r0, r5, #0
- bl MOD11_0223A424
- b _02239714
-_0223970C:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_02239714:
- mov r0, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02239718
-MOD11_02239718: ; 0x02239718
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- bl MOD11_0222FF84
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- mov r2, #0
- str r2, [sp]
- mov r0, #6
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- add r3, r2, #0
- bl MOD11_022558E0
- mov r0, #0
- str r0, [r4, #0x78]
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02239748
-MOD11_02239748: ; 0x02239748
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #0
- bl MOD11_0224AD90
- add r5, r0, #0
- beq _0223977A
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r1, r0, #0
- cmp r5, #0xff
- bne _02239774
- add r0, r4, #0
- bl MOD11_0223A424
- b _0223977A
-_02239774:
- ldr r0, _02239780 ; =0x000021A0
- sub r1, r5, #1
- strb r1, [r4, r0]
-_0223977A:
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02239780: .word 0x000021A0
-
- thumb_func_start MOD11_02239784
-MOD11_02239784: ; 0x02239784
- push {r4, lr}
- add r4, r0, #0
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #4
- tst r0, r1
- beq _022397A2
- add r0, r4, #0
- bl MOD11_02256774
-_022397A2:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022397A8
-MOD11_022397A8: ; 0x022397A8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp]
- add r0, r6, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0223C230
- add r4, r0, #0
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_02230270
- add r6, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- add r2, r0, #0
- lsl r0, r6, #2
- add r1, r5, r0
- mov r0, #0x6f
- lsl r0, r0, #2
- ldr r1, [r1, r0]
- mov r0, #0x80
- tst r0, r1
- beq _0223989C
- mov r0, #0xc0
- add r6, r4, #0
- mul r6, r0
- ldr r0, _022398A8 ; =0x00002D8C
- add r1, r5, r6
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0223989C
- lsl r1, r7, #0x18
- lsl r2, r2, #0x18
- mov r0, #5
- lsr r1, r1, #0x18
- lsr r2, r2, #0x18
- bl MOD11_02246B9C
- cmp r0, #0x14
- bgt _0223983A
- bge _02239862
- cmp r0, #0
- bgt _02239834
- beq _02239872
- b _0223987E
-_02239834:
- cmp r0, #0xa
- beq _0223986A
- b _0223987E
-_0223983A:
- cmp r0, #0x50
- bgt _02239846
- bge _02239852
- cmp r0, #0x28
- beq _0223985A
- b _0223987E
-_02239846:
- cmp r0, #0xa0
- bne _0223987E
- ldr r0, _022398AC ; =0x0000215C
- mov r1, #2
- str r1, [r5, r0]
- b _02239882
-_02239852:
- ldr r0, _022398AC ; =0x0000215C
- mov r1, #4
- str r1, [r5, r0]
- b _02239882
-_0223985A:
- ldr r0, _022398AC ; =0x0000215C
- mov r1, #8
- str r1, [r5, r0]
- b _02239882
-_02239862:
- ldr r0, _022398AC ; =0x0000215C
- mov r1, #0x10
- str r1, [r5, r0]
- b _02239882
-_0223986A:
- ldr r0, _022398AC ; =0x0000215C
- mov r1, #0x20
- str r1, [r5, r0]
- b _02239882
-_02239872:
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD11_0223A424
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223987E:
- bl ErrorHandling
-_02239882:
- ldr r0, _022398B0 ; =0x00002D90
- add r1, r5, r6
- ldr r1, [r1, r0]
- mov r0, #0
- mvn r0, r0
- mul r0, r1
- ldr r1, _022398AC ; =0x0000215C
- ldr r1, [r5, r1]
- bl MOD11_022476C0
- ldr r1, _022398AC ; =0x0000215C
- str r0, [r5, r1]
- b _022398A4
-_0223989C:
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD11_0223A424
-_022398A4:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022398A8: .word 0x00002D8C
-_022398AC: .word 0x0000215C
-_022398B0: .word 0x00002D90
-
- thumb_func_start MOD11_022398B4
-MOD11_022398B4: ; 0x022398B4
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x20
- ldr r0, _0223992C ; =0x00003044
- bne _022398E6
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02239930 ; =0x000003E5
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x11
- lsr r4, r0, #0x10
- b _022398F0
-_022398E6:
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02239930 ; =0x000003E5
- ldrb r4, [r1, r0]
-_022398F0:
- cmp r4, #0
- bne _022398F8
- bl ErrorHandling
-_022398F8:
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- cmp r1, r4
- bge _0223991E
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02239934 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0223991E
- mov r0, #0
- pop {r4, r5, r6, pc}
-_0223991E:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223A424
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_0223992C: .word 0x00003044
-_02239930: .word 0x000003E5
-_02239934: .word 0x00002D8C
-
- thumb_func_start MOD11_02239938
-MOD11_02239938: ; 0x02239938
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- mov r3, #0xb5
- mov r2, #0xc0
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r0, r5, r0
- lsl r3, r3, #6
- ldrh r4, [r0, r3]
- add r2, #0xf9
- cmp r4, r2
- bne _022399BA
- ldr r4, [r5, #0x6c]
- mov r2, #0xc0
- mul r2, r4
- add r4, r5, r2
- add r2, r3, #0
- add r2, #0x4c
- ldr r2, [r4, r2]
- cmp r2, #0
- beq _022399BA
- add r3, #0x70
- ldr r2, [r0, r3]
- mov r0, #2
- lsl r0, r0, #0x14
- tst r0, r2
- bne _022399BA
- add r0, r7, #0
- bl MOD11_02230E88
- bl FUN_02005EE0
- cmp r0, #0
- beq _02239998
- cmp r0, #1
- beq _0223999C
- cmp r0, #2
- beq _022399A0
-_02239998:
- mov r4, #0
- b _022399A2
-_0223999C:
- mov r4, #0xa
- b _022399A2
-_022399A0:
- mov r4, #0x1e
-_022399A2:
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- cmp r1, r4
- ble _022399C2
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223A424
- b _022399C2
-_022399BA:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_022399C2:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022399C8
-MOD11_022399C8: ; 0x022399C8
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r1, r0, #0
- ldr r0, _022399F8 ; =0x000003DE
- add r2, r4, r0
- ldr r0, _022399FC ; =0x00003044
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r0, r2, r0
- bl GetAttrFromWazaTbl
- mov r1, #0x4d
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r0, #0
- pop {r4, pc}
- nop
-_022399F8: .word 0x000003DE
-_022399FC: .word 0x00003044
-
- thumb_func_start MOD11_02239A00
-MOD11_02239A00: ; 0x02239A00
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r1, r0, #0
- ldr r3, [sp]
- add r0, r5, #0
- add r2, r7, #0
- bl MOD11_022562E4
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02239A40
-MOD11_02239A40: ; 0x02239A40
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r5, #0
- bl MOD11_02256308
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02239A6C
-MOD11_02239A6C: ; 0x02239A6C
- push {r4, lr}
- add r4, r0, #0
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- mov r1, #0
- bl MOD11_02256398
- mov r0, #0
- pop {r4, pc}
-
- thumb_func_start MOD11_02239A84
-MOD11_02239A84: ; 0x02239A84
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r1, r0, #0
- mov r0, #0x4a
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- ldr r2, _02239AC0 ; =0x0000219C
- str r0, [sp]
- add r3, r4, r1
- ldrb r2, [r3, r2]
- add r0, r5, #0
- mov r3, #0
- bl MOD11_02230370
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02239AC0: .word 0x0000219C
-
- thumb_func_start MOD11_02239AC4
-MOD11_02239AC4: ; 0x02239AC4
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022470B8
- cmp r0, #0
- beq _02239B02
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_0223A424
-_02239B02:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02239B08
-MOD11_02239B08: ; 0x02239B08
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r5, #0
- bl MOD11_022563D0
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02239B34
-MOD11_02239B34: ; 0x02239B34
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r5, #0
- bl MOD11_022563F8
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02239B60
-MOD11_02239B60: ; 0x02239B60
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r5, #0
- bl MOD11_02256420
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02239B8C
-MOD11_02239B8C: ; 0x02239B8C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r5, #0
- bl MOD11_02256448
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02239BB8
-MOD11_02239BB8: ; 0x02239BB8
- push {r4, lr}
- add r4, r0, #0
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_02256470
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02239BD0
-MOD11_02239BD0: ; 0x02239BD0
- push {r4, lr}
- add r4, r0, #0
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0225648C
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02239BE8
-MOD11_02239BE8: ; 0x02239BE8
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r1, r0, #0
- ldr r3, [sp]
- add r0, r5, #0
- add r2, r7, #0
- bl MOD11_022564A8
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02239C28
-MOD11_02239C28: ; 0x02239C28
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022564F4
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02239C54
-MOD11_02239C54: ; 0x02239C54
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- mov r2, #0x4e
- lsl r2, r2, #2
- add r6, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r4, r2
- bl MOD11_02248308
- cmp r0, #0
- bne _02239C84
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_02239C84:
- mov r0, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02239C88
-MOD11_02239C88: ; 0x02239C88
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r2, r0, #0
- cmp r2, #3
- beq _02239CAE
- cmp r2, #4
- beq _02239CD6
- b _02239CFE
-_02239CAE:
- mov r5, #0
- cmp r6, #0
- ble _02239D0E
- mov r7, #1
-_02239CB6:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _02239D14 ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- bne _02239CCE
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022565A0
-_02239CCE:
- add r5, r5, #1
- cmp r5, r6
- blt _02239CB6
- b _02239D0E
-_02239CD6:
- mov r5, #0
- cmp r6, #0
- ble _02239D0E
- mov r7, #1
-_02239CDE:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _02239D14 ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- beq _02239CF6
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022565A0
-_02239CF6:
- add r5, r5, #1
- cmp r5, r6
- blt _02239CDE
- b _02239D0E
-_02239CFE:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_022565A0
-_02239D0E:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02239D14: .word 0x00000195
-
- thumb_func_start MOD11_02239D18
-MOD11_02239D18: ; 0x02239D18
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r2, r0, #0
- cmp r2, #3
- beq _02239D3E
- cmp r2, #4
- beq _02239D66
- b _02239D8E
-_02239D3E:
- mov r5, #0
- cmp r6, #0
- ble _02239D9E
- mov r7, #1
-_02239D46:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _02239DA4 ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- bne _02239D5E
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022565BC
-_02239D5E:
- add r5, r5, #1
- cmp r5, r6
- blt _02239D46
- b _02239D9E
-_02239D66:
- mov r5, #0
- cmp r6, #0
- ble _02239D9E
- mov r7, #1
-_02239D6E:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _02239DA4 ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- beq _02239D86
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022565BC
-_02239D86:
- add r5, r5, #1
- cmp r5, r6
- blt _02239D6E
- b _02239D9E
-_02239D8E:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_022565BC
-_02239D9E:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02239DA4: .word 0x00000195
-
- thumb_func_start MOD11_02239DA8
-MOD11_02239DA8: ; 0x02239DA8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- str r0, [sp]
- str r1, [sp, #4]
- add r0, r1, #0
- mov r1, #1
- mov r5, #0
- bl MOD11_0223A424
- ldr r0, [sp, #4]
- bl MOD11_0223A404
- add r4, r0, #0
- ldr r0, [sp, #4]
- bl MOD11_0223A404
- str r0, [sp, #0x14]
- ldr r0, [sp]
- bl MOD11_0222FF74
- str r0, [sp, #0xc]
- ldr r0, [sp]
- ldr r1, [sp, #4]
- add r2, r4, #0
- bl MOD11_0223C230
- str r0, [sp, #0x10]
- ldr r0, [sp, #0xc]
- mov r1, #8
- tst r0, r1
- bne _02239DFA
- ldr r0, [sp, #0xc]
- mov r1, #0x10
- tst r0, r1
- beq _02239EDA
- ldr r0, [sp]
- ldr r1, [sp, #0x10]
- bl MOD11_02230270
- cmp r0, #0
- beq _02239EDA
-_02239DFA:
- ldr r0, [sp]
- ldr r1, [sp, #0x10]
- bl MOD11_0222FF88
- add r7, r0, #0
- ldr r0, [sp]
- ldr r1, [sp, #0x10]
- bl MOD11_022302BC
- add r1, r0, #0
- ldr r0, [sp]
- bl MOD11_0222FF88
- str r0, [sp, #8]
- ldr r0, [sp]
- ldr r1, [sp, #0x10]
- bl MOD11_0222FF7C
- add r0, r7, #0
- mov r4, #0
- bl GetPartyCount
- cmp r0, #0
- ble _02239E68
-_02239E2A:
- add r0, r7, #0
- add r1, r4, #0
- bl GetPartyMonByIndex
- mov r1, #0xad
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _02239E5C
- add r0, r6, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonData
- ldr r1, _02239F48 ; =0x000001EE
- cmp r0, r1
- beq _02239E5C
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- add r5, r5, r0
-_02239E5C:
- add r0, r7, #0
- add r4, r4, #1
- bl GetPartyCount
- cmp r4, r0
- blt _02239E2A
-_02239E68:
- ldr r0, [sp, #0xc]
- cmp r0, #0x4b
- beq _02239E76
- cmp r0, #0xcb
- beq _02239E76
- cmp r0, #0x4a
- bne _02239E82
-_02239E76:
- ldr r0, [sp]
- ldr r1, [sp, #0x10]
- bl MOD11_02230270
- cmp r0, #0
- beq _02239ECC
-_02239E82:
- ldr r0, [sp, #8]
- mov r4, #0
- bl GetPartyCount
- cmp r0, #0
- ble _02239ECC
- ldr r7, _02239F48 ; =0x000001EE
-_02239E90:
- ldr r0, [sp, #8]
- add r1, r4, #0
- bl GetPartyMonByIndex
- mov r1, #0xad
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _02239EC0
- add r0, r6, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonData
- cmp r0, r7
- beq _02239EC0
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- add r5, r5, r0
-_02239EC0:
- ldr r0, [sp, #8]
- add r4, r4, #1
- bl GetPartyCount
- cmp r4, r0
- blt _02239E90
-_02239ECC:
- cmp r5, #0
- bne _02239F42
- ldr r0, [sp, #4]
- ldr r1, [sp, #0x14]
- bl MOD11_0223A424
- b _02239F42
-_02239EDA:
- ldr r0, [sp]
- ldr r1, [sp, #0x10]
- bl MOD11_0222FF88
- add r7, r0, #0
- ldr r0, [sp]
- ldr r1, [sp, #0x10]
- bl MOD11_0222FF7C
- add r0, r7, #0
- mov r4, #0
- bl GetPartyCount
- cmp r0, #0
- ble _02239F36
-_02239EF8:
- add r0, r7, #0
- add r1, r4, #0
- bl GetPartyMonByIndex
- mov r1, #0xad
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _02239F2A
- add r0, r6, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonData
- ldr r1, _02239F48 ; =0x000001EE
- cmp r0, r1
- beq _02239F2A
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- add r5, r5, r0
-_02239F2A:
- add r0, r7, #0
- add r4, r4, #1
- bl GetPartyCount
- cmp r4, r0
- blt _02239EF8
-_02239F36:
- cmp r5, #0
- bne _02239F42
- ldr r0, [sp, #4]
- ldr r1, [sp, #0x14]
- bl MOD11_0223A424
-_02239F42:
- mov r0, #0
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02239F48: .word 0x000001EE
-
- thumb_func_start MOD11_02239F4C
-MOD11_02239F4C: ; 0x02239F4C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- add r6, r1, #0
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- mov ip, r0
- ldr r1, [r6, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r0, r6, r0
- add r5, r0, #1
- ldr r7, _02239FC0 ; =0x00002D58
- mov r4, #0
- mov r3, #1
- add r0, sp, #0
-_02239F74:
- ldrsb r1, [r5, r7]
- cmp r1, #0xc
- bge _02239F82
- lsl r1, r4, #2
- sub r2, r3, #1
- add r4, r4, #1
- str r2, [r0, r1]
-_02239F82:
- add r3, r3, #1
- add r5, r5, #1
- cmp r3, #8
- blt _02239F74
- cmp r4, #0
- beq _02239FB0
- bl rand_LC
- add r1, r4, #0
- bl _s32_div_f
- lsl r1, r1, #2
- add r0, sp, #0
- ldr r0, [r0, r1]
- ldr r1, _02239FC4 ; =0x00002170
- add r0, #0x27
- str r0, [r6, r1]
- mov r0, #2
- ldr r2, [r6, r1]
- lsl r0, r0, #0x1e
- orr r0, r2
- str r0, [r6, r1]
- b _02239FB8
-_02239FB0:
- add r0, r6, #0
- mov r1, ip
- bl MOD11_0223A424
-_02239FB8:
- mov r0, #0
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02239FC0: .word 0x00002D58
-_02239FC4: .word 0x00002170
-
- thumb_func_start MOD11_02239FC8
-MOD11_02239FC8: ; 0x02239FC8
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r7, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- ldr r0, _0223A00C ; =0x00002DB8
- add r5, r2, #0
- add r6, r4, r0
- mov r0, #0xc0
- mul r5, r0
- lsl r0, r2, #1
- add r1, r4, r0
- ldrh r3, [r6, r5]
- ldr r0, _0223A010 ; =0x00003124
- strh r3, [r1, r0]
- mov r0, #0
- strh r0, [r6, r5]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02245190
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0223A00C: .word 0x00002DB8
-_0223A010: .word 0x00003124
-
- thumb_func_start MOD11_0223A014
-MOD11_0223A014: ; 0x0223A014
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r1, r0, #0
- ldr r0, [r4, #0x64]
- ldr r2, _0223A054 ; =0x00003124
- lsl r0, r0, #1
- add r0, r4, r0
- ldrh r3, [r0, r2]
- cmp r3, #0
- beq _0223A048
- mov r0, #0x4a
- lsl r0, r0, #2
- str r3, [r4, r0]
- ldr r0, [r4, #0x64]
- mov r1, #0
- lsl r0, r0, #1
- add r0, r4, r0
- strh r1, [r0, r2]
- b _0223A04E
-_0223A048:
- add r0, r4, #0
- bl MOD11_0223A424
-_0223A04E:
- mov r0, #0
- pop {r4, pc}
- nop
-_0223A054: .word 0x00003124
-
- thumb_func_start MOD11_0223A058
-MOD11_0223A058: ; 0x0223A058
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- mov r2, #0x4e
- lsl r2, r2, #2
- add r6, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r4, r2
- bl MOD11_02249B94
- cmp r0, #0
- bne _0223A088
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_0223A088:
- mov r0, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0223A08C
-MOD11_0223A08C: ; 0x0223A08C
- push {r4, lr}
- add r4, r0, #0
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_022565D8
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223A0A4
-MOD11_0223A0A4: ; 0x0223A0A4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022565F4
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223A0C0
-MOD11_0223A0C0: ; 0x0223A0C0
- push {r4, lr}
- add r4, r0, #0
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0225664C
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223A0D8
-MOD11_0223A0D8: ; 0x0223A0D8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- mov r4, #0
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0223C230
- add r7, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_02249D90
- add r6, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- bl MOD11_02249DA4
- str r0, [sp]
- cmp r6, #0x40
- bne _0223A126
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- ldr r0, [sp]
- cmp r1, r0
- bge _0223A126
- mov r4, #1
-_0223A126:
- cmp r6, #0x66
- bne _0223A13E
- mov r0, #0xc0
- mul r0, r7
- add r2, r5, r0
- ldr r0, _0223A170 ; =0x00002D8C
- ldr r1, [r2, r0]
- add r0, r0, #4
- ldr r0, [r2, r0]
- cmp r1, r0
- bne _0223A13E
- mov r4, #1
-_0223A13E:
- cmp r4, #0
- beq _0223A16C
- mov r1, #0xc0
- add r0, r7, #0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _0223A170 ; =0x00002D8C
- ldr r3, [r2, r0]
- ldr r2, _0223A174 ; =0x0000215C
- ldr r0, [r5, r2]
- add r0, r0, r3
- cmp r0, #0
- bgt _0223A16C
- sub r0, r3, #1
- neg r0, r0
- str r0, [r5, r2]
- add r0, r2, #0
- add r0, #0x10
- ldr r0, [r5, r0]
- add r1, #0x40
- orr r0, r1
- add r2, #0x10
- str r0, [r5, r2]
-_0223A16C:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0223A170: .word 0x00002D8C
-_0223A174: .word 0x0000215C
-
- thumb_func_start MOD11_0223A178
-MOD11_0223A178: ; 0x0223A178
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0223C230
- add r1, r0, #0
- mov r0, #0xc0
- add r4, r1, #0
- mul r4, r0
- ldr r0, _0223A208 ; =0x00002D8C
- add r2, r5, r4
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _0223A1FA
- ldr r0, _0223A20C ; =0x0000219C
- add r2, r5, r1
- ldrb r2, [r2, r0]
- cmp r2, #6
- beq _0223A1FA
- add r0, r6, #0
- bl MOD11_02230014
- add r6, r0, #0
- mov r1, #0xa
- mov r2, #0
- bl GetMonData
- str r0, [sp]
- add r0, r6, #0
- mov r1, #0x9f
- mov r2, #0
- bl GetMonData
- add r2, r0, #0
- ldr r0, _0223A210 ; =0x00002D67
- add r1, r5, r4
- ldrb r0, [r1, r0]
- cmp r0, #0x1e
- beq _0223A202
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD11_02248A14
- cmp r0, #0
- bne _0223A202
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_0223A424
- b _0223A202
-_0223A1FA:
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_0223A424
-_0223A202:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223A208: .word 0x00002D8C
-_0223A20C: .word 0x0000219C
-_0223A210: .word 0x00002D67
-
- thumb_func_start MOD11_0223A214
-MOD11_0223A214: ; 0x0223A214
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD11_0223C230
- mov r1, #0xc0
- mul r1, r0
- add r2, r4, r1
- ldr r1, _0223A26C ; =0x00002DB0
- ldr r2, [r2, r1]
- mov r1, #1
- lsl r1, r1, #0x18
- tst r1, r2
- bne _0223A260
- mov r1, #0x1c
- mul r1, r0
- mov r0, #0xba
- add r1, r4, r1
- lsl r0, r0, #2
- ldr r1, [r1, r0]
- mov r0, #8
- tst r0, r1
- beq _0223A268
-_0223A260:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_0223A268:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0223A26C: .word 0x00002DB0
-
- thumb_func_start MOD11_0223A270
-MOD11_0223A270: ; 0x0223A270
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- mov r0, #0xd
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0223A2B0
- mov r0, #0x4c
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- beq _0223A2B8
-_0223A2B0:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_0223A2B8:
- mov r0, #0
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223A2C0
-MOD11_0223A2C0: ; 0x0223A2C0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022482A4
- str r0, [r4, #0x6c]
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223A2F0
-MOD11_0223A2F0: ; 0x0223A2F0
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- mov r2, #0x4e
- lsl r2, r2, #2
- add r6, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r4, r2
- bl MOD11_0224C258
- cmp r0, #0
- bne _0223A320
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_0223A320:
- mov r0, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0223A324
-MOD11_0223A324: ; 0x0223A324
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02256668
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0223A350
-MOD11_0223A350: ; 0x0223A350
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02256714
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0223A37C
-MOD11_0223A37C: ; 0x0223A37C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r5, #0
- add r2, r7, #0
- bl MOD11_02256754
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223A3B4
-MOD11_0223A3B4: ; 0x0223A3B4
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #0
- bl MOD11_0222FFC8
- cmp r0, #6
- bne _0223A3E0
- ldr r0, [r5, #0x64]
- bl FUN_0206B334
- cmp r0, #0x12
- beq _0223A3F0
-_0223A3E0:
- ldr r0, _0223A3F4 ; =0x00002410
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _0223A3F0
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_0223A3F0:
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0223A3F4: .word 0x00002410
-
- thumb_func_start MOD11_0223A3F8
-MOD11_0223A3F8: ; 0x0223A3F8
- ldr r3, _0223A400 ; =MOD11_022432B4
- add r0, r1, #0
- bx r3
- nop
-_0223A400: .word MOD11_022432B4
-
- thumb_func_start MOD11_0223A404
-MOD11_0223A404: ; 0x0223A404
- add r1, r0, #0
- add r1, #0xb4
- ldr r1, [r1]
- lsl r1, r1, #2
- add r2, r0, r1
- mov r1, #0x27
- lsl r1, r1, #8
- ldr r2, [r2, r1]
- add r1, r0, #0
- add r1, #0xb4
- ldr r1, [r1]
- add r0, #0xb4
- add r1, r1, #1
- str r1, [r0]
- add r0, r2, #0
- bx lr
-
- thumb_func_start MOD11_0223A424
-MOD11_0223A424: ; 0x0223A424
- add r2, r0, #0
- add r2, #0xb4
- ldr r2, [r2]
- add r0, #0xb4
- add r1, r2, r1
- str r1, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0223A434
-MOD11_0223A434: ; 0x0223A434
- ldr r3, _0223A438 ; =MOD11_022431DC
- bx r3
- .align 2, 0
-_0223A438: .word MOD11_022431DC
-
- thumb_func_start MOD11_0223A43C
-MOD11_0223A43C: ; 0x0223A43C
- ldr r3, _0223A440 ; =MOD11_0224321C
- bx r3
- .align 2, 0
-_0223A440: .word MOD11_0224321C
-
- thumb_func_start MOD11_0223A444
-MOD11_0223A444: ; 0x0223A444
- push {r4, lr}
- add r4, r1, #0
- cmp r2, #0x44
- bls _0223A44E
- b _0223A738
-_0223A44E:
- add r1, r2, r2
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0223A45A: ; jump table
- .short _0223A4E4 - _0223A45A - 2 ; case 0
- .short _0223A4E8 - _0223A45A - 2 ; case 1
- .short _0223A4EE - _0223A45A - 2 ; case 2
- .short _0223A4F4 - _0223A45A - 2 ; case 3
- .short _0223A4FA - _0223A45A - 2 ; case 4
- .short _0223A500 - _0223A45A - 2 ; case 5
- .short _0223A506 - _0223A45A - 2 ; case 6
- .short _0223A50C - _0223A45A - 2 ; case 7
- .short _0223A514 - _0223A45A - 2 ; case 8
- .short _0223A51A - _0223A45A - 2 ; case 9
- .short _0223A522 - _0223A45A - 2 ; case 10
- .short _0223A528 - _0223A45A - 2 ; case 11
- .short _0223A53A - _0223A45A - 2 ; case 12
- .short _0223A54C - _0223A45A - 2 ; case 13
- .short _0223A562 - _0223A45A - 2 ; case 14
- .short _0223A568 - _0223A45A - 2 ; case 15
- .short _0223A56E - _0223A45A - 2 ; case 16
- .short _0223A574 - _0223A45A - 2 ; case 17
- .short _0223A57A - _0223A45A - 2 ; case 18
- .short _0223A580 - _0223A45A - 2 ; case 19
- .short _0223A586 - _0223A45A - 2 ; case 20
- .short _0223A58E - _0223A45A - 2 ; case 21
- .short _0223A59A - _0223A45A - 2 ; case 22
- .short _0223A5A2 - _0223A45A - 2 ; case 23
- .short _0223A5AA - _0223A45A - 2 ; case 24
- .short _0223A5B0 - _0223A45A - 2 ; case 25
- .short _0223A5B8 - _0223A45A - 2 ; case 26
- .short _0223A5C0 - _0223A45A - 2 ; case 27
- .short _0223A5C8 - _0223A45A - 2 ; case 28
- .short _0223A5D0 - _0223A45A - 2 ; case 29
- .short _0223A5D6 - _0223A45A - 2 ; case 30
- .short _0223A5DC - _0223A45A - 2 ; case 31
- .short _0223A5E2 - _0223A45A - 2 ; case 32
- .short _0223A5E8 - _0223A45A - 2 ; case 33
- .short _0223A5EE - _0223A45A - 2 ; case 34
- .short _0223A5F4 - _0223A45A - 2 ; case 35
- .short _0223A5FC - _0223A45A - 2 ; case 36
- .short _0223A604 - _0223A45A - 2 ; case 37
- .short _0223A60C - _0223A45A - 2 ; case 38
- .short _0223A614 - _0223A45A - 2 ; case 39
- .short _0223A61A - _0223A45A - 2 ; case 40
- .short _0223A622 - _0223A45A - 2 ; case 41
- .short _0223A630 - _0223A45A - 2 ; case 42
- .short _0223A63E - _0223A45A - 2 ; case 43
- .short _0223A646 - _0223A45A - 2 ; case 44
- .short _0223A64C - _0223A45A - 2 ; case 45
- .short _0223A65A - _0223A45A - 2 ; case 46
- .short _0223A668 - _0223A45A - 2 ; case 47
- .short _0223A678 - _0223A45A - 2 ; case 48
- .short _0223A688 - _0223A45A - 2 ; case 49
- .short _0223A69A - _0223A45A - 2 ; case 50
- .short _0223A6A0 - _0223A45A - 2 ; case 51
- .short _0223A6A6 - _0223A45A - 2 ; case 52
- .short _0223A6AC - _0223A45A - 2 ; case 53
- .short _0223A6B8 - _0223A45A - 2 ; case 54
- .short _0223A6BE - _0223A45A - 2 ; case 55
- .short _0223A6C4 - _0223A45A - 2 ; case 56
- .short _0223A6CA - _0223A45A - 2 ; case 57
- .short _0223A6D0 - _0223A45A - 2 ; case 58
- .short _0223A6D6 - _0223A45A - 2 ; case 59
- .short _0223A6DC - _0223A45A - 2 ; case 60
- .short _0223A6E4 - _0223A45A - 2 ; case 61
- .short _0223A6EA - _0223A45A - 2 ; case 62
- .short _0223A6EE - _0223A45A - 2 ; case 63
- .short _0223A6F4 - _0223A45A - 2 ; case 64
- .short _0223A6FA - _0223A45A - 2 ; case 65
- .short _0223A70A - _0223A45A - 2 ; case 66
- .short _0223A71A - _0223A45A - 2 ; case 67
- .short _0223A728 - _0223A45A - 2 ; case 68
-_0223A4E4:
- add r0, #0x2c
- pop {r4, pc}
-_0223A4E8:
- ldr r0, _0223A73C ; =0x0000214C
- add r0, r4, r0
- pop {r4, pc}
-_0223A4EE:
- ldr r0, _0223A740 ; =0x00002170
- add r0, r4, r0
- pop {r4, pc}
-_0223A4F4:
- ldr r0, _0223A744 ; =0x00002174
- add r0, r4, r0
- pop {r4, pc}
-_0223A4FA:
- ldr r0, _0223A748 ; =0x00002178
- add r0, r4, r0
- pop {r4, pc}
-_0223A500:
- add r4, #0x88
- add r0, r4, #0
- pop {r4, pc}
-_0223A506:
- ldr r0, _0223A74C ; =0x0000213C
- add r0, r4, r0
- pop {r4, pc}
-_0223A50C:
- mov r0, #6
- lsl r0, r0, #6
- add r0, r4, r0
- pop {r4, pc}
-_0223A514:
- ldr r0, _0223A750 ; =0x00002158
- add r0, r4, r0
- pop {r4, pc}
-_0223A51A:
- mov r0, #0x4d
- lsl r0, r0, #2
- add r0, r4, r0
- pop {r4, pc}
-_0223A522:
- ldr r0, _0223A754 ; =0x0000216C
- add r0, r4, r0
- pop {r4, pc}
-_0223A528:
- ldr r1, [r4, #0x64]
- bl MOD11_02230270
- mov r1, #0x6f
- lsl r1, r1, #2
- add r1, r4, r1
- lsl r0, r0, #2
- add r0, r1, r0
- pop {r4, pc}
-_0223A53A:
- ldr r1, [r4, #0x6c]
- bl MOD11_02230270
- mov r1, #0x6f
- lsl r1, r1, #2
- add r1, r4, r1
- lsl r0, r0, #2
- add r0, r1, r0
- pop {r4, pc}
-_0223A54C:
- add r1, r4, #0
- add r1, #0x94
- ldr r1, [r1]
- bl MOD11_02230270
- mov r1, #0x6f
- lsl r1, r1, #2
- add r1, r4, r1
- lsl r0, r0, #2
- add r0, r1, r0
- pop {r4, pc}
-_0223A562:
- ldr r0, _0223A758 ; =0x00002144
- add r0, r4, r0
- pop {r4, pc}
-_0223A568:
- add r4, #0x64
- add r0, r4, #0
- pop {r4, pc}
-_0223A56E:
- add r4, #0x6c
- add r0, r4, #0
- pop {r4, pc}
-_0223A574:
- add r4, #0x94
- add r0, r4, #0
- pop {r4, pc}
-_0223A57A:
- add r4, #0x74
- add r0, r4, #0
- pop {r4, pc}
-_0223A580:
- add r4, #0x78
- add r0, r4, #0
- pop {r4, pc}
-_0223A586:
- mov r0, #0x46
- lsl r0, r0, #2
- add r0, r4, r0
- pop {r4, pc}
-_0223A58E:
- ldr r0, _0223A75C ; =0x000030E4
- add r1, r4, r0
- ldr r0, [r4, #0x64]
- lsl r0, r0, #2
- add r0, r1, r0
- pop {r4, pc}
-_0223A59A:
- mov r0, #0x13
- lsl r0, r0, #4
- add r0, r4, r0
- pop {r4, pc}
-_0223A5A2:
- mov r0, #0x53
- lsl r0, r0, #2
- add r0, r4, r0
- pop {r4, pc}
-_0223A5AA:
- ldr r0, _0223A760 ; =0x00003044
- add r0, r4, r0
- pop {r4, pc}
-_0223A5B0:
- mov r0, #0x15
- lsl r0, r0, #4
- add r0, r4, r0
- pop {r4, pc}
-_0223A5B8:
- mov r0, #0x47
- lsl r0, r0, #2
- add r0, r4, r0
- pop {r4, pc}
-_0223A5C0:
- mov r0, #0x12
- lsl r0, r0, #4
- add r0, r4, r0
- pop {r4, pc}
-_0223A5C8:
- mov r0, #0xc1
- lsl r0, r0, #6
- add r0, r4, r0
- pop {r4, pc}
-_0223A5D0:
- add r4, #0x98
- add r0, r4, #0
- pop {r4, pc}
-_0223A5D6:
- ldr r0, _0223A764 ; =0x00002154
- add r0, r4, r0
- pop {r4, pc}
-_0223A5DC:
- add r4, #0x38
- add r0, r4, #0
- pop {r4, pc}
-_0223A5E2:
- ldr r0, _0223A768 ; =0x0000215C
- add r0, r4, r0
- pop {r4, pc}
-_0223A5E8:
- ldr r1, _0223A76C ; =0x0000241C
- add r0, r0, r1
- pop {r4, pc}
-_0223A5EE:
- add r4, #0x8c
- add r0, r4, #0
- pop {r4, pc}
-_0223A5F4:
- mov r0, #0x49
- lsl r0, r0, #2
- add r0, r4, r0
- pop {r4, pc}
-_0223A5FC:
- mov r0, #0x4a
- lsl r0, r0, #2
- add r0, r4, r0
- pop {r4, pc}
-_0223A604:
- mov r0, #0x4b
- lsl r0, r0, #2
- add r0, r4, r0
- pop {r4, pc}
-_0223A60C:
- mov r0, #0x61
- lsl r0, r0, #2
- add r0, r4, r0
- pop {r4, pc}
-_0223A614:
- ldr r0, _0223A770 ; =0x00003104
- add r0, r4, r0
- pop {r4, pc}
-_0223A61A:
- mov r0, #0x86
- lsl r0, r0, #6
- add r0, r4, r0
- pop {r4, pc}
-_0223A622:
- mov r0, #0x7b
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r0, [r4, #0x64]
- lsl r0, r0, #6
- add r0, r1, r0
- pop {r4, pc}
-_0223A630:
- mov r0, #0x81
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r0, [r4, #0x64]
- lsl r0, r0, #6
- add r0, r1, r0
- pop {r4, pc}
-_0223A63E:
- mov r0, #0x4e
- lsl r0, r0, #2
- add r0, r4, r0
- pop {r4, pc}
-_0223A646:
- ldr r0, _0223A774 ; =0x00002150
- add r0, r4, r0
- pop {r4, pc}
-_0223A64C:
- mov r0, #0x82
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r0, [r4, #0x64]
- lsl r0, r0, #6
- add r0, r1, r0
- pop {r4, pc}
-_0223A65A:
- mov r0, #0x82
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r0, [r4, #0x6c]
- lsl r0, r0, #6
- add r0, r1, r0
- pop {r4, pc}
-_0223A668:
- mov r0, #0xba
- lsl r0, r0, #2
- add r2, r4, r0
- ldr r1, [r4, #0x64]
- mov r0, #0x1c
- mul r0, r1
- add r0, r2, r0
- pop {r4, pc}
-_0223A678:
- mov r0, #0xba
- lsl r0, r0, #2
- add r2, r4, r0
- ldr r1, [r4, #0x6c]
- mov r0, #0x1c
- mul r0, r1
- add r0, r2, r0
- pop {r4, pc}
-_0223A688:
- mov r0, #0xba
- lsl r0, r0, #2
- add r2, r4, r0
- add r4, #0x94
- ldr r1, [r4]
- mov r0, #0x1c
- mul r0, r1
- add r0, r2, r0
- pop {r4, pc}
-_0223A69A:
- ldr r0, _0223A778 ; =0x00003114
- add r0, r4, r0
- pop {r4, pc}
-_0223A6A0:
- ldr r0, _0223A77C ; =0x00003118
- add r0, r4, r0
- pop {r4, pc}
-_0223A6A6:
- ldr r1, _0223A780 ; =0x00002408
- add r0, r0, r1
- pop {r4, pc}
-_0223A6AC:
- ldr r0, _0223A784 ; =0x0000304C
- add r1, r4, r0
- ldr r0, [r4, #0x64]
- lsl r0, r0, #2
- add r0, r1, r0
- pop {r4, pc}
-_0223A6B8:
- ldr r0, _0223A788 ; =0x00002148
- add r0, r4, r0
- pop {r4, pc}
-_0223A6BE:
- ldr r1, _0223A78C ; =0x00002410
- add r0, r0, r1
- pop {r4, pc}
-_0223A6C4:
- add r4, #0x7c
- add r0, r4, #0
- pop {r4, pc}
-_0223A6CA:
- ldr r0, _0223A790 ; =0x00002160
- add r0, r4, r0
- pop {r4, pc}
-_0223A6D0:
- ldr r0, _0223A794 ; =0x00002164
- add r0, r4, r0
- pop {r4, pc}
-_0223A6D6:
- ldr r1, _0223A798 ; =0x00002418
- add r0, r0, r1
- pop {r4, pc}
-_0223A6DC:
- mov r0, #0x85
- lsl r0, r0, #6
- add r0, r4, r0
- pop {r4, pc}
-_0223A6E4:
- add r4, #0xec
- add r0, r4, #0
- pop {r4, pc}
-_0223A6EA:
- add r0, #0x44
- pop {r4, pc}
-_0223A6EE:
- add r4, #0x68
- add r0, r4, #0
- pop {r4, pc}
-_0223A6F4:
- add r4, #0x70
- add r0, r4, #0
- pop {r4, pc}
-_0223A6FA:
- mov r0, #0xb6
- lsl r0, r0, #2
- add r2, r4, r0
- ldr r1, [r4, #0x6c]
- mov r0, #0x1c
- mul r0, r1
- add r0, r2, r0
- pop {r4, pc}
-_0223A70A:
- mov r0, #0x21
- lsl r0, r0, #4
- add r1, r4, r0
- sub r0, #0xf8
- ldr r0, [r4, r0]
- lsl r0, r0, #6
- add r0, r1, r0
- pop {r4, pc}
-_0223A71A:
- mov r0, #0x21
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, [r4, #0x6c]
- lsl r0, r0, #6
- add r0, r1, r0
- pop {r4, pc}
-_0223A728:
- mov r0, #0xbb
- lsl r0, r0, #2
- add r2, r4, r0
- ldr r1, [r4, #0x64]
- mov r0, #0x1c
- mul r0, r1
- add r0, r2, r0
- pop {r4, pc}
-_0223A738:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-_0223A73C: .word 0x0000214C
-_0223A740: .word 0x00002170
-_0223A744: .word 0x00002174
-_0223A748: .word 0x00002178
-_0223A74C: .word 0x0000213C
-_0223A750: .word 0x00002158
-_0223A754: .word 0x0000216C
-_0223A758: .word 0x00002144
-_0223A75C: .word 0x000030E4
-_0223A760: .word 0x00003044
-_0223A764: .word 0x00002154
-_0223A768: .word 0x0000215C
-_0223A76C: .word 0x0000241C
-_0223A770: .word 0x00003104
-_0223A774: .word 0x00002150
-_0223A778: .word 0x00003114
-_0223A77C: .word 0x00003118
-_0223A780: .word 0x00002408
-_0223A784: .word 0x0000304C
-_0223A788: .word 0x00002148
-_0223A78C: .word 0x00002410
-_0223A790: .word 0x00002160
-_0223A794: .word 0x00002164
-_0223A798: .word 0x00002418
-
- thumb_func_start MOD11_0223A79C
-MOD11_0223A79C: ; 0x0223A79C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xd4
- add r4, r1, #0
- str r0, [sp, #0x14]
- ldr r0, [r4]
- bl MOD11_022300C4
- str r0, [sp, #0x3c]
- ldr r0, [r4]
- bl MOD11_0222FF74
- str r0, [sp, #0x38]
- ldr r0, [r4, #4]
- mov r7, #0
- ldr r0, [r0, #0x74]
- ldr r5, [r4, #0x48]
- asr r1, r0, #1
- mov r0, #1
- and r0, r1
- str r0, [sp, #0x40]
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD11_0222FFC8
- cmp r5, r0
- bge _0223A81E
- ldr r0, [sp, #0x40]
- lsl r0, r0, #2
- str r0, [sp, #0x24]
-_0223A7D6:
- ldr r0, [r4]
- mov r1, #0
- add r2, r5, #0
- bl MOD11_02230014
- mov r1, #6
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r1, #1
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0x32
- beq _0223A81E
- add r0, r5, #0
- bl MaskOfFlagNo
- add r2, r0, #0
- ldr r1, [r4, #4]
- ldr r0, [sp, #0x24]
- add r0, r0, r1
- add r0, #0xa4
- ldr r0, [r0]
- tst r0, r2
- bne _0223A81E
- ldr r0, [r4]
- mov r1, #0
- add r5, r5, #1
- bl MOD11_0222FFC8
- cmp r5, r0
- blt _0223A7D6
-_0223A81E:
- ldr r0, [r4]
- mov r1, #0
- bl MOD11_0222FFC8
- cmp r5, r0
- bne _0223A830
- mov r0, #0x26
- str r0, [r4, #0x28]
- b _0223A84C
-_0223A830:
- ldr r0, [sp, #0x38]
- mov r2, #2
- tst r0, r2
- beq _0223A84C
- ldr r0, [sp, #0x38]
- mov r1, #0x40
- tst r0, r1
- bne _0223A84C
- ldr r1, [r4, #4]
- ldr r0, _0223AB98 ; =0x0000219E
- ldrb r0, [r1, r0]
- cmp r0, r5
- bne _0223A84C
- add r7, r2, #0
-_0223A84C:
- ldr r0, [r4, #0x28]
- cmp r0, #0x26
- bls _0223A856
- bl _0223B2AE
-_0223A856:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223A862: ; jump table
- .short _0223A8B0 - _0223A862 - 2 ; case 0
- .short _0223AA74 - _0223A862 - 2 ; case 1
- .short _0223AA8C - _0223A862 - 2 ; case 2
- .short _0223AA9E - _0223A862 - 2 ; case 3
- .short _0223AACA - _0223A862 - 2 ; case 4
- .short _0223AADE - _0223A862 - 2 ; case 5
- .short _0223AB16 - _0223A862 - 2 ; case 6
- .short _0223AC16 - _0223A862 - 2 ; case 7
- .short _0223AC32 - _0223A862 - 2 ; case 8
- .short _0223AC50 - _0223A862 - 2 ; case 9
- .short _0223ACF8 - _0223A862 - 2 ; case 10
- .short _0223AE3C - _0223A862 - 2 ; case 11
- .short _0223ADBA - _0223A862 - 2 ; case 12
- .short _0223AE3C - _0223A862 - 2 ; case 13
- .short _0223AE5E - _0223A862 - 2 ; case 14
- .short _0223AEC0 - _0223A862 - 2 ; case 15
- .short _0223AF42 - _0223A862 - 2 ; case 16
- .short _0223AFDA - _0223A862 - 2 ; case 17
- .short _0223AFAC - _0223A862 - 2 ; case 18
- .short _0223AFDA - _0223A862 - 2 ; case 19
- .short _0223AFF2 - _0223A862 - 2 ; case 20
- .short _0223B012 - _0223A862 - 2 ; case 21
- .short _0223B05A - _0223A862 - 2 ; case 22
- .short _0223B07E - _0223A862 - 2 ; case 23
- .short _0223B16A - _0223A862 - 2 ; case 24
- .short _0223AFDA - _0223A862 - 2 ; case 25
- .short _0223B192 - _0223A862 - 2 ; case 26
- .short _0223AFDA - _0223A862 - 2 ; case 27
- .short _0223B1CE - _0223A862 - 2 ; case 28
- .short _0223AFDA - _0223A862 - 2 ; case 29
- .short _0223B1F6 - _0223A862 - 2 ; case 30
- .short _0223B0B6 - _0223A862 - 2 ; case 31
- .short _0223AFDA - _0223A862 - 2 ; case 32
- .short _0223B0E0 - _0223A862 - 2 ; case 33
- .short _0223B102 - _0223A862 - 2 ; case 34
- .short _0223B152 - _0223A862 - 2 ; case 35
- .short _0223B25C - _0223A862 - 2 ; case 36
- .short _0223B272 - _0223A862 - 2 ; case 37
- .short _0223B298 - _0223A862 - 2 ; case 38
-_0223A8B0:
- add r0, r6, #0
- mov r1, #6
- mov r2, #0
- bl GetMonData
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r1, #1
- mov r2, #5
- bl FUN_0206E7B8
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x38]
- mov r1, #1
- and r0, r1
- str r0, [sp, #0x1c]
- bne _0223A90E
- ldr r1, [r4, #4]
- ldr r0, _0223AB9C ; =0x00002E4C
- ldr r2, _0223ABA0 ; =0x00002FCC
- ldr r0, [r1, r0]
- ldr r1, [r1, r2]
- add r0, r0, r1
- bne _0223A90E
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _0223A90E
- ldr r1, [r4, #4]
- ldr r0, _0223ABA4 ; =0x00003144
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _0223A90E
- ldr r0, _0223ABA8 ; =0x00000467
- bl FUN_0200521C
- ldr r1, [r4, #4]
- ldr r0, _0223ABA4 ; =0x00003144
- mov r2, #1
- str r2, [r1, r0]
- ldr r0, [r4]
- mov r1, #2
- bl MOD11_02231484
-_0223A90E:
- mov r0, #0
- str r0, [sp, #0x34]
- mov r1, #1
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- ldr r2, [sp, #0x34]
- add r0, r6, #0
- mov r1, #0xa2
- bl GetMonData
- cmp r0, #0
- bne _0223A928
- b _0223AA34
-_0223A928:
- add r0, r6, #0
- mov r1, #0xa0
- mov r2, #0
- bl GetMonData
- cmp r0, #0x64
- beq _0223AA34
- ldr r0, [r4, #4]
- str r0, [sp, #0x20]
- add r0, r5, #0
- bl MaskOfFlagNo
- ldr r1, [sp, #0x40]
- lsl r2, r1, #2
- ldr r1, [sp, #0x20]
- add r1, r1, r2
- add r1, #0xa4
- ldr r1, [r1]
- tst r0, r1
- beq _0223A958
- ldr r0, [sp, #0x20]
- add r0, #0x9c
- ldr r0, [r0]
- str r0, [sp, #0x34]
-_0223A958:
- ldr r0, [sp, #0x18]
- cmp r0, #0x32
- bne _0223A96C
- ldr r0, [sp, #0x20]
- add r0, #0xa0
- str r0, [sp, #0x20]
- ldr r1, [r0]
- ldr r0, [sp, #0x34]
- add r0, r0, r1
- str r0, [sp, #0x34]
-_0223A96C:
- ldr r0, [sp, #0x18]
- cmp r0, #0x41
- bne _0223A980
- ldr r1, [sp, #0x34]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _u32_div_f
- str r0, [sp, #0x34]
-_0223A980:
- ldr r0, [sp, #0x1c]
- cmp r0, #0
- beq _0223A994
- ldr r1, [sp, #0x34]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _u32_div_f
- str r0, [sp, #0x34]
-_0223A994:
- ldr r0, [r4]
- add r1, r6, #0
- bl MOD11_0224AE14
- cmp r0, #0
- bne _0223A9D6
- add r0, r6, #0
- mov r1, #0xc
- mov r2, #0
- bl GetMonData
- ldr r1, _0223ABAC ; =0x020ECAC4
- ldrb r1, [r1]
- cmp r1, r0
- beq _0223A9C2
- ldr r1, [sp, #0x34]
- mov r0, #0xaa
- mul r0, r1
- mov r1, #0x64
- bl _u32_div_f
- str r0, [sp, #0x34]
- b _0223A9D0
-_0223A9C2:
- ldr r1, [sp, #0x34]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _u32_div_f
- str r0, [sp, #0x34]
-_0223A9D0:
- mov r1, #2
- add r0, sp, #0xb0
- strh r1, [r0, #2]
-_0223A9D6:
- add r0, r6, #0
- mov r1, #8
- mov r2, #0
- bl GetMonData
- str r0, [sp, #0x48]
- add r0, r6, #0
- bl GetMonBaseExperienceAtCurrentLevel
- ldr r1, [sp, #0x48]
- sub r0, r1, r0
- str r0, [r4, #0x3c]
- ldr r1, [sp, #0x48]
- ldr r0, [sp, #0x34]
- add r2, r1, r0
- str r2, [sp, #0x48]
- ldr r3, [r4, #4]
- ldr r0, _0223ABB0 ; =0x0000219C
- add r1, r3, r7
- ldrb r0, [r1, r0]
- cmp r5, r0
- bne _0223AA0C
- mov r0, #0xc0
- mul r0, r7
- add r1, r3, r0
- ldr r0, _0223ABB4 ; =0x00002DA4
- str r2, [r1, r0]
-_0223AA0C:
- add r0, r6, #0
- mov r1, #8
- add r2, sp, #0x48
- bl SetMonData
- ldr r6, [r4, #4]
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD11_0222FF88
- ldr r3, [r6, #0x74]
- mov r2, #0xc0
- mul r2, r3
- add r3, r6, r2
- mov r2, #0xb5
- lsl r2, r2, #6
- ldrh r2, [r3, r2]
- add r1, r5, #0
- bl MOD11_0223B2DC
-_0223AA34:
- ldr r0, [sp, #0x34]
- cmp r0, #0
- beq _0223AA6C
- mov r1, #0x11
- add r0, sp, #0xb0
- strb r1, [r0, #1]
- lsl r0, r5, #8
- orr r0, r7
- str r0, [sp, #0xb4]
- ldr r0, [sp, #0x34]
- str r0, [sp, #0xb8]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0x14
- str r0, [r4, #0x34]
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AA6C:
- mov r0, #0x25
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AA74:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- bne _0223AB20
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AA8C:
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- bne _0223AB20
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AA9E:
- ldr r1, [r4, #4]
- ldr r0, _0223ABB0 ; =0x0000219C
- add r2, r1, r7
- ldrb r0, [r2, r0]
- cmp r5, r0
- bne _0223AAC2
- ldr r0, [r4]
- ldr r3, [r4, #0x3c]
- add r2, r7, #0
- bl MOD11_02255B68
- mov r0, #0
- str r0, [r4, #0x3c]
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AAC2:
- mov r0, #5
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AACA:
- ldr r0, [r4, #4]
- bl MOD11_02243388
- cmp r0, #0
- beq _0223AB20
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AADE:
- add r0, r6, #0
- bl FUN_020690E8
- cmp r0, #0
- beq _0223AB0E
- ldr r1, [r4, #4]
- ldr r0, _0223ABB0 ; =0x0000219C
- add r2, r1, r7
- ldrb r0, [r2, r0]
- cmp r5, r0
- bne _0223AB06
- ldr r0, [r4]
- add r2, r7, #0
- mov r3, #8
- bl MOD11_02255E4C
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD11_02255FA0
-_0223AB06:
- mov r0, #6
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AB0E:
- mov r0, #0x25
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AB16:
- ldr r0, [r4, #4]
- bl MOD11_02243388
- cmp r0, #0
- bne _0223AB22
-_0223AB20:
- b _0223B2AE
-_0223AB22:
- ldr r3, _0223ABB8 ; =0x0225DCC0
- add r2, sp, #0x98
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- add r0, r6, #0
- mov r1, #0xa0
- mov r2, #0
- bl GetMonData
- str r0, [sp, #0x30]
- mov r0, #5
- mov r1, #0x18
- bl AllocFromHeap
- mov r1, #0x5f
- ldr r2, [r4, #4]
- lsl r1, r1, #2
- str r0, [r2, r1]
- ldr r0, [r4, #4]
- ldr r0, [r0, r1]
- mov r1, #0
- str r0, [sp, #0x2c]
- str r1, [sp, #0x4c]
-_0223AB58:
- lsl r2, r1, #2
- add r1, sp, #0x98
- ldr r1, [r1, r2]
- add r0, r6, #0
- mov r2, #0
- bl GetMonData
- ldr r1, [sp, #0x4c]
- lsl r2, r1, #2
- ldr r1, [sp, #0x2c]
- str r0, [r1, r2]
- ldr r0, [sp, #0x4c]
- add r1, r0, #1
- str r1, [sp, #0x4c]
- cmp r1, #6
- blt _0223AB58
- ldr r0, [r4]
- bl MOD11_022302B0
- add r2, r0, #0
- lsl r2, r2, #0x10
- add r0, r6, #0
- mov r1, #0
- lsr r2, r2, #0x10
- bl MonApplyFriendshipMod
- add r0, r6, #0
- bl CalcMonStats
- ldr r1, [r4, #4]
- ldr r0, _0223ABB0 ; =0x0000219C
- b _0223ABBC
- .align 2, 0
-_0223AB98: .word 0x0000219E
-_0223AB9C: .word 0x00002E4C
-_0223ABA0: .word 0x00002FCC
-_0223ABA4: .word 0x00003144
-_0223ABA8: .word 0x00000467
-_0223ABAC: .word 0x020ECAC4
-_0223ABB0: .word 0x0000219C
-_0223ABB4: .word 0x00002DA4
-_0223ABB8: .word 0x0225DCC0
-_0223ABBC:
- add r2, r1, r7
- ldrb r3, [r2, r0]
- cmp r5, r3
- bne _0223ABCC
- ldr r0, [r4]
- add r2, r7, #0
- bl MOD11_02243054
-_0223ABCC:
- add r0, r5, #0
- bl MaskOfFlagNo
- ldr r1, [r4, #4]
- ldr r2, _0223AF48 ; =0x00003109
- ldrb r3, [r1, r2]
- orr r0, r3
- strb r0, [r1, r2]
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r7, #0
- bl MOD11_02256020
- mov r1, #3
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #0x11
- strb r1, [r0, #1]
- lsl r0, r5, #8
- orr r0, r7
- str r0, [sp, #0xb4]
- ldr r0, [sp, #0x30]
- str r0, [sp, #0xb8]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #7
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AC16:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- beq _0223AC26
- b _0223B2AE
-_0223AC26:
- mov r0, #8
- str r0, [r4, #0x28]
- mov r0, #0
- add sp, #0xd4
- str r0, [r4, #0x38]
- pop {r4, r5, r6, r7, pc}
-_0223AC32:
- ldr r0, [r4, #4]
- add r1, r0, r7
- ldr r0, _0223AF4C ; =0x0000219C
- ldrb r0, [r1, r0]
- cmp r5, r0
- beq _0223AC48
- ldr r0, [r4]
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223CDC4
-_0223AC48:
- mov r0, #9
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AC50:
- ldr r0, [r4]
- bl MOD11_0222FF68
- add r6, r0, #0
- ldr r0, [r4]
- mov r1, #1
- bl MOD11_0222FF6C
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_022300CC
- add r7, r0, #0
- ldr r0, _0223AF50 ; =0x04000008
- mov r2, #3
- ldrh r1, [r0]
- bic r1, r2
- mov r2, #2
- orr r1, r2
- strh r1, [r0]
- mov r0, #1
- add r1, r0, #0
- bl FUN_020178BC
- mov r0, #2
- mov r1, #0
- bl FUN_020178BC
- ldr r0, [r4]
- mov r1, #2
- bl MOD11_02231564
- mov r0, #5
- str r0, [sp]
- add r0, r6, #0
- mov r1, #2
- mov r2, #1
- mov r3, #0
- bl FUN_0200CABC
- bl FUN_0200CAFC
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0x80
- str r0, [sp, #8]
- add r0, r7, #0
- mov r1, #0x26
- mov r3, #5
- bl FUN_020030E8
- mov r0, #7
- str r0, [sp]
- mov r0, #0xe
- str r0, [sp, #4]
- mov r0, #0xc
- str r0, [sp, #8]
- mov r0, #0xb
- str r0, [sp, #0xc]
- mov r0, #0xa
- str r0, [sp, #0x10]
- add r0, r6, #0
- add r1, r5, #0
- mov r2, #2
- mov r3, #0x11
- bl FUN_02019064
- add r0, r5, #0
- mov r1, #0xff
- bl FUN_02019620
- add r0, r5, #0
- mov r1, #0
- mov r2, #1
- mov r3, #8
- bl FUN_0200CCA4
- mov r0, #0xa
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223ACF8:
- ldr r3, _0223AF54 ; =0x0225DCD8
- add r2, sp, #0x80
- 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 r3, _0223AF58 ; =0x0225DC60
- add r2, sp, #0x68
- 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]
- mov r1, #1
- bl MOD11_0222FF6C
- add r7, r0, #0
- mov r0, #0x5f
- ldr r1, [r4, #4]
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- str r0, [sp, #0x28]
- mov r0, #0
- str r0, [sp, #0x4c]
-_0223AD30:
- ldr r2, _0223AF5C ; =0x000003B3
- add r1, sp, #0xb0
- strh r2, [r1, #2]
- mov r2, #4
- strb r2, [r1, #1]
- lsl r2, r0, #2
- add r1, sp, #0x80
- ldr r1, [r1, r2]
- lsl r0, r0, #4
- str r1, [sp, #0xb4]
- mov r1, #0
- str r1, [sp]
- str r0, [sp, #4]
- add r0, r1, #0
- str r0, [sp, #8]
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- ldr r0, [r4]
- ldr r2, [sp, #0x3c]
- add r1, r7, #0
- add r3, sp, #0xb0
- bl MOD11_022317E0
- mov r1, #0xed
- ldr r5, [sp, #0x4c]
- lsl r1, r1, #2
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #7
- strb r1, [r0, #1]
- lsl r2, r5, #2
- add r1, sp, #0x68
- ldr r1, [r1, r2]
- add r0, r6, #0
- mov r2, #0
- bl GetMonData
- ldr r1, [sp, #0x28]
- lsl r2, r5, #2
- ldr r1, [r1, r2]
- ldr r2, [sp, #0x3c]
- sub r0, r0, r1
- str r0, [sp, #0xb4]
- mov r0, #2
- str r0, [sp, #0xcc]
- mov r0, #0x50
- str r0, [sp]
- lsl r0, r5, #4
- str r0, [sp, #4]
- mov r0, #2
- str r0, [sp, #8]
- mov r0, #0x1c
- str r0, [sp, #0xc]
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, [r4]
- add r1, r7, #0
- add r3, sp, #0xb0
- bl MOD11_022317E0
- ldr r0, [sp, #0x4c]
- add r0, r0, #1
- str r0, [sp, #0x4c]
- cmp r0, #6
- blt _0223AD30
- mov r0, #0xb
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223ADBA:
- ldr r3, _0223AF60 ; =0x0225DC90
- add r2, sp, #0x50
- 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]
- mov r1, #1
- bl MOD11_0222FF6C
- mov r1, #0x24
- str r1, [sp]
- mov r1, #0x60
- str r1, [sp, #4]
- mov r1, #0xf
- mov r2, #0x50
- mov r3, #0
- add r7, r0, #0
- bl FUN_020196F4
- mov r1, #0
- str r1, [sp, #0x4c]
- add r5, sp, #0xb0
-_0223ADEC:
- ldr r0, _0223AF64 ; =0x000003B5
- lsl r2, r1, #2
- add r1, sp, #0x50
- strh r0, [r5, #2]
- mov r0, #7
- ldr r1, [r1, r2]
- strb r0, [r5, #1]
- add r0, r6, #0
- mov r2, #0
- bl GetMonData
- str r0, [sp, #0xb4]
- mov r0, #3
- str r0, [sp, #0xcc]
- mov r0, #0x48
- str r0, [sp]
- ldr r0, [sp, #0x4c]
- ldr r2, [sp, #0x3c]
- lsl r0, r0, #4
- str r0, [sp, #4]
- mov r0, #2
- str r0, [sp, #8]
- mov r0, #0x24
- str r0, [sp, #0xc]
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, [r4]
- add r1, r7, #0
- add r3, r5, #0
- bl MOD11_022317E0
- ldr r0, [sp, #0x4c]
- add r1, r0, #1
- str r1, [sp, #0x4c]
- cmp r1, #6
- blt _0223ADEC
- mov r0, #0xd
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AE3C:
- ldr r0, _0223AF68 ; =0x021C48B8
- ldr r1, [r0, #0x48]
- ldr r0, _0223AF6C ; =0x00000C03
- tst r0, r1
- bne _0223AE4E
- bl FUN_02020AA4
- cmp r0, #0
- beq _0223AEDC
-_0223AE4E:
- ldr r0, _0223AF70 ; =0x000005DC
- bl FUN_020054C8
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AE5E:
- ldr r0, [r4]
- mov r1, #1
- bl MOD11_0222FF6C
- add r6, r0, #0
- mov r1, #0
- bl FUN_0200CCF8
- add r0, r6, #0
- bl FUN_02019178
- ldr r1, _0223AF50 ; =0x04000008
- mov r0, #3
- ldrh r2, [r1]
- bic r2, r0
- mov r0, #1
- orr r2, r0
- strh r2, [r1]
- mov r1, #0
- bl FUN_020178BC
- mov r0, #2
- mov r1, #1
- bl FUN_020178BC
- ldr r0, [r4]
- mov r1, #0
- bl MOD11_02231564
- ldr r0, [r4, #4]
- add r1, r0, r7
- ldr r0, _0223AF4C ; =0x0000219C
- ldrb r0, [r1, r0]
- cmp r5, r0
- beq _0223AEAC
- ldr r0, [r4]
- add r1, r4, #0
- bl MOD11_0223D068
-_0223AEAC:
- mov r0, #0x5f
- ldr r1, [r4, #4]
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- bl FreeToHeap
- mov r0, #0xf
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AEC0:
- ldr r0, [r4]
- bl MOD11_0222FF68
- add r1, r4, #0
- add r0, r6, #0
- add r1, #0x38
- add r2, sp, #0x44
- bl FUN_02069818
- cmp r0, #0
- beq _0223AEE6
- ldr r1, _0223AF74 ; =0x0000FFFE
- cmp r0, r1
- bne _0223AEDE
-_0223AEDC:
- b _0223B2AE
-_0223AEDE:
- add r1, r1, #1
- cmp r0, r1
- beq _0223AEEE
- b _0223AEFC
-_0223AEE6:
- mov r0, #3
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AEEE:
- add r0, sp, #0x44
- ldrh r0, [r0]
- add sp, #0xd4
- str r0, [r4, #0x40]
- mov r0, #0x10
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AEFC:
- ldr r1, [r4, #4]
- ldr r0, _0223AF4C ; =0x0000219C
- add r2, r1, r7
- ldrb r3, [r2, r0]
- cmp r5, r3
- bne _0223AF10
- ldr r0, [r4]
- add r2, r7, #0
- bl MOD11_02243054
-_0223AF10:
- mov r1, #4
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #0xa
- strb r1, [r0, #1]
- lsl r0, r5, #8
- orr r0, r7
- str r0, [sp, #0xb4]
- add r0, sp, #0x44
- ldrh r0, [r0]
- str r0, [sp, #0xb8]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0x24
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AF42:
- ldr r1, _0223AF78 ; =0x0000049A
- b _0223AF7C
- nop
-_0223AF48: .word 0x00003109
-_0223AF4C: .word 0x0000219C
-_0223AF50: .word 0x04000008
-_0223AF54: .word 0x0225DCD8
-_0223AF58: .word 0x0225DC60
-_0223AF5C: .word 0x000003B3
-_0223AF60: .word 0x0225DC90
-_0223AF64: .word 0x000003B5
-_0223AF68: .word 0x021C48B8
-_0223AF6C: .word 0x00000C03
-_0223AF70: .word 0x000005DC
-_0223AF74: .word 0x0000FFFE
-_0223AF78: .word 0x0000049A
-_0223AF7C:
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #0xa
- strb r1, [r0, #1]
- lsl r0, r5, #8
- orr r0, r7
- str r0, [sp, #0xb4]
- ldr r0, [r4, #0x40]
- str r0, [sp, #0xb8]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AFAC:
- ldr r1, _0223B2B4 ; =0x0000049B
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #2
- strb r1, [r0, #1]
- lsl r0, r5, #8
- orr r0, r7
- str r0, [sp, #0xb4]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AFDA:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- bne _0223B01E
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AFF2:
- mov r0, #1
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- str r0, [sp, #8]
- ldr r0, [r4]
- ldr r1, [r4, #4]
- ldr r3, _0223B2B8 ; =0x0000049C
- add r2, r7, #0
- bl MOD11_02255980
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B012:
- ldr r0, [r4, #4]
- add r1, r7, #0
- bl MOD11_0224AD90
- cmp r0, #0
- bne _0223B020
-_0223B01E:
- b _0223B2AE
-_0223B020:
- ldr r0, [r4, #4]
- add r1, r7, #0
- bl MOD11_0224AD90
- cmp r0, #0xff
- bne _0223B034
- mov r0, #0x1f
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B034:
- ldr r1, _0223B2BC ; =0x0000049F
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #0
- strb r1, [r0, #1]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0x16
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B05A:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- bne _0223B160
- ldr r0, [r4]
- ldr r2, [r4, #0x40]
- add r1, r7, #0
- add r3, r5, #0
- bl MOD11_022562B0
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B07E:
- ldr r0, [r4, #4]
- add r1, r7, #0
- bl MOD11_0224AD90
- cmp r0, #0xff
- bne _0223B092
- mov r0, #0x1f
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B092:
- ldr r0, [r4, #4]
- add r1, r7, #0
- bl MOD11_0224AD90
- cmp r0, #0
- beq _0223B160
- ldr r1, [r4, #4]
- lsl r0, r7, #8
- add r1, r1, r0
- mov r0, #0x23
- lsl r0, r0, #8
- ldrb r0, [r1, r0]
- add sp, #0xd4
- sub r0, r0, #1
- str r0, [r4, #0x44]
- mov r0, #0x18
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B0B6:
- mov r1, #0x4a
- lsl r1, r1, #4
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #0
- strb r1, [r0, #1]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B0E0:
- mov r0, #2
- str r0, [sp]
- ldr r0, [r4, #0x40]
- ldr r3, _0223B2C0 ; =0x000004A1
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r7, #0
- bl MOD11_02255980
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B102:
- ldr r0, [r4, #4]
- add r1, r7, #0
- bl MOD11_0224AD90
- cmp r0, #0
- beq _0223B160
- ldr r0, [r4, #4]
- add r1, r7, #0
- bl MOD11_0224AD90
- cmp r0, #0xff
- bne _0223B122
- mov r0, #0x10
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B122:
- ldr r1, _0223B2C4 ; =0x000004A4
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #0xa
- strb r1, [r0, #1]
- lsl r0, r5, #8
- orr r0, r7
- str r0, [sp, #0xb4]
- ldr r0, [r4, #0x40]
- str r0, [sp, #0xb8]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0x23
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B152:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- beq _0223B162
-_0223B160:
- b _0223B2AE
-_0223B162:
- mov r0, #0xf
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B16A:
- ldr r1, _0223B2C8 ; =0x000004A5
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #0
- strb r1, [r0, #1]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B192:
- ldr r1, _0223B2CC ; =0x000004A6
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #0xa
- strb r1, [r0, #1]
- lsl r0, r5, #8
- orr r0, r7
- str r0, [sp, #0xb4]
- ldr r1, [r4, #0x44]
- add r0, r6, #0
- add r1, #0x36
- mov r2, #0
- bl GetMonData
- str r0, [sp, #0xb8]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B1CE:
- ldr r1, _0223B2D0 ; =0x000004A7
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #0
- strb r1, [r0, #1]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B1F6:
- ldr r1, _0223B2D4 ; =0x000004A8
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #0xa
- strb r1, [r0, #1]
- lsl r0, r5, #8
- orr r0, r7
- str r0, [sp, #0xb4]
- ldr r0, [r4, #0x40]
- str r0, [sp, #0xb8]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0
- str r0, [sp, #0x4c]
- ldr r1, [r4, #0x44]
- add r0, r6, #0
- add r1, #0x3e
- add r2, sp, #0x4c
- bl SetMonData
- ldr r1, [r4, #0x40]
- ldr r2, [r4, #0x44]
- lsl r1, r1, #0x10
- lsl r2, r2, #0x18
- add r0, r6, #0
- lsr r1, r1, #0x10
- lsr r2, r2, #0x18
- bl FUN_020697CC
- ldr r1, [r4, #4]
- ldr r0, _0223B2D8 ; =0x0000219C
- add r2, r1, r7
- ldrb r3, [r2, r0]
- cmp r5, r3
- bne _0223B254
- ldr r0, [r4]
- add r2, r7, #0
- bl MOD11_02243054
-_0223B254:
- mov r0, #0x24
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B25C:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- bne _0223B2AE
- mov r0, #0xf
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B272:
- add r0, r5, #0
- bl MaskOfFlagNo
- ldr r1, [sp, #0x40]
- ldr r2, [r4, #4]
- mov r3, #0
- mvn r3, r3
- add r2, #0xa4
- lsl r1, r1, #2
- ldr r6, [r2, r1]
- eor r0, r3
- and r0, r6
- str r0, [r2, r1]
- add r0, r5, #1
- str r0, [r4, #0x48]
- mov r0, #0
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B298:
- mov r0, #0x5e
- ldr r1, [r4, #4]
- mov r2, #0
- lsl r0, r0, #2
- str r2, [r1, r0]
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [sp, #0x14]
- bl FUN_0200CAB4
-_0223B2AE:
- add sp, #0xd4
- pop {r4, r5, r6, r7, pc}
- nop
-_0223B2B4: .word 0x0000049B
-_0223B2B8: .word 0x0000049C
-_0223B2BC: .word 0x0000049F
-_0223B2C0: .word 0x000004A1
-_0223B2C4: .word 0x000004A4
-_0223B2C8: .word 0x000004A5
-_0223B2CC: .word 0x000004A6
-_0223B2D0: .word 0x000004A7
-_0223B2D4: .word 0x000004A8
-_0223B2D8: .word 0x0000219C
-
- thumb_func_start MOD11_0223B2DC
-MOD11_0223B2DC: ; 0x0223B2DC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- str r0, [sp]
- str r1, [sp, #4]
- add r0, r2, #0
- mov r1, #5
- mov r4, #0
- bl AllocAndLoadMonPersonal
- add r7, r0, #0
- ldr r0, [sp]
- ldr r1, [sp, #4]
- bl GetPartyMonByIndex
- mov r1, #6
- add r2, r4, #0
- str r0, [sp, #0x14]
- bl GetMonData
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r0, r6, #0
- mov r1, #1
- mov r2, #5
- bl FUN_0206E7B8
- add r5, r0, #0
- add r0, r6, #0
- mov r1, #2
- mov r2, #5
- bl FUN_0206E7B8
- add r6, r0, #0
- add r0, r4, #0
- str r0, [sp, #0x18]
- str r0, [sp, #0x1c]
- add r0, sp, #0x20
- str r0, [sp, #0xc]
-_0223B328:
- ldr r1, [sp, #0x1c]
- ldr r0, [sp, #0x14]
- add r1, #0xd
- mov r2, #0
- bl GetMonData
- ldr r1, [sp, #0xc]
- strb r0, [r1]
- add r0, r1, #0
- ldrb r1, [r0]
- ldr r0, [sp, #0x18]
- add r0, r0, r1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x18]
- ldr r0, [sp, #0xc]
- add r0, r0, #1
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x1c]
- add r0, r0, #1
- str r0, [sp, #0x1c]
- cmp r0, #6
- blt _0223B328
- mov r0, #0
- str r0, [sp, #8]
- add r0, sp, #0x20
- str r0, [sp, #0x10]
-_0223B35E:
- ldr r1, [sp, #0x18]
- ldr r0, _0223B498 ; =0x000001FE
- cmp r1, r0
- blo _0223B368
- b _0223B48C
-_0223B368:
- ldr r0, [sp, #8]
- cmp r0, #5
- bhi _0223B414
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223B37A: ; jump table
- .short _0223B386 - _0223B37A - 2 ; case 0
- .short _0223B39E - _0223B37A - 2 ; case 1
- .short _0223B3B6 - _0223B37A - 2 ; case 2
- .short _0223B3CE - _0223B37A - 2 ; case 3
- .short _0223B3E6 - _0223B37A - 2 ; case 4
- .short _0223B3FE - _0223B37A - 2 ; case 5
-_0223B386:
- add r0, r7, #0
- mov r1, #0xa
- bl GetPersonalAttr
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- cmp r5, #0x79
- bne _0223B414
- add r0, r4, r6
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- b _0223B414
-_0223B39E:
- add r0, r7, #0
- mov r1, #0xb
- bl GetPersonalAttr
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- cmp r5, #0x74
- bne _0223B414
- add r0, r4, r6
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- b _0223B414
-_0223B3B6:
- add r0, r7, #0
- mov r1, #0xc
- bl GetPersonalAttr
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- cmp r5, #0x75
- bne _0223B414
- add r0, r4, r6
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- b _0223B414
-_0223B3CE:
- add r0, r7, #0
- mov r1, #0xd
- bl GetPersonalAttr
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- cmp r5, #0x78
- bne _0223B414
- add r0, r4, r6
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- b _0223B414
-_0223B3E6:
- add r0, r7, #0
- mov r1, #0xe
- bl GetPersonalAttr
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- cmp r5, #0x76
- bne _0223B414
- add r0, r4, r6
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- b _0223B414
-_0223B3FE:
- add r0, r7, #0
- mov r1, #0xf
- bl GetPersonalAttr
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- cmp r5, #0x77
- bne _0223B414
- add r0, r4, r6
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
-_0223B414:
- ldr r0, [sp, #4]
- bl MaskOfFlagNo
- add r1, r0, #0
- lsl r1, r1, #0x18
- ldr r0, [sp]
- lsr r1, r1, #0x18
- bl FUN_02069CF4
- cmp r0, #0
- beq _0223B42E
- lsl r0, r4, #0x11
- asr r4, r0, #0x10
-_0223B42E:
- cmp r5, #0x31
- bne _0223B436
- lsl r0, r4, #0x11
- asr r4, r0, #0x10
-_0223B436:
- ldr r0, [sp, #0x18]
- ldr r1, _0223B498 ; =0x000001FE
- add r0, r0, r4
- cmp r0, r1
- ble _0223B448
- sub r0, r0, r1
- sub r0, r4, r0
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
-_0223B448:
- ldr r0, [sp, #0x10]
- ldrb r0, [r0]
- add r0, r0, r4
- cmp r0, #0xff
- ble _0223B45A
- sub r0, #0xff
- sub r0, r4, r0
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
-_0223B45A:
- ldr r0, [sp, #0x10]
- ldr r2, [sp, #0x10]
- ldrb r0, [r0]
- add r1, r0, r4
- ldr r0, [sp, #0x10]
- strb r1, [r0]
- ldr r0, [sp, #0x18]
- ldr r1, [sp, #8]
- add r0, r0, r4
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x14]
- add r1, #0xd
- bl SetMonData
- ldr r0, [sp, #0x10]
- add r0, r0, #1
- str r0, [sp, #0x10]
- ldr r0, [sp, #8]
- add r0, r0, #1
- str r0, [sp, #8]
- cmp r0, #6
- bge _0223B48C
- b _0223B35E
-_0223B48C:
- add r0, r7, #0
- bl FreeMonPersonal
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223B498: .word 0x000001FE
-
- thumb_func_start MOD11_0223B49C
-MOD11_0223B49C: ; 0x0223B49C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x158
- add r4, r1, #0
- str r0, [sp, #0x10]
- ldr r0, [r4]
- bl MOD11_022300C4
- str r0, [sp, #0x20]
- ldr r0, [r4]
- bl MOD11_022300CC
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230068
- mov r7, #1
- str r0, [sp, #0x24]
- add r0, r7, #0
- ldr r6, [r4, #4]
- bl MaskOfFlagNo
- ldr r1, _0223B7F0 ; =0x00003108
- ldrb r1, [r6, r1]
- tst r0, r1
- beq _0223B4D0
- mov r7, #3
-_0223B4D0:
- ldr r0, [r4, #0x28]
- cmp r0, #0x20
- bls _0223B4DA
- bl _0223BFD0
-_0223B4DA:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223B4E6: ; jump table
- .short _0223B528 - _0223B4E6 - 2 ; case 0
- .short _0223B5E8 - _0223B4E6 - 2 ; case 1
- .short _0223B634 - _0223B4E6 - 2 ; case 2
- .short _0223B662 - _0223B4E6 - 2 ; case 3
- .short _0223B68C - _0223B4E6 - 2 ; case 4
- .short _0223B6A0 - _0223B4E6 - 2 ; case 5
- .short _0223B6D4 - _0223B4E6 - 2 ; case 6
- .short _0223B6F6 - _0223B4E6 - 2 ; case 7
- .short _0223B716 - _0223B4E6 - 2 ; case 8
- .short _0223B75C - _0223B4E6 - 2 ; case 9
- .short _0223B77A - _0223B4E6 - 2 ; case 10
- .short _0223B8BC - _0223B4E6 - 2 ; case 11
- .short _0223B90A - _0223B4E6 - 2 ; case 12
- .short _0223B990 - _0223B4E6 - 2 ; case 13
- .short _0223B9E4 - _0223B4E6 - 2 ; case 14
- .short _0223BA12 - _0223B4E6 - 2 ; case 15
- .short _0223BA42 - _0223B4E6 - 2 ; case 16
- .short _0223BAC4 - _0223B4E6 - 2 ; case 17
- .short _0223BAEA - _0223B4E6 - 2 ; case 18
- .short _0223BB12 - _0223B4E6 - 2 ; case 19
- .short _0223BB6A - _0223B4E6 - 2 ; case 20
- .short _0223BC38 - _0223B4E6 - 2 ; case 21
- .short _0223BC7E - _0223B4E6 - 2 ; case 22
- .short _0223BC7E - _0223B4E6 - 2 ; case 23
- .short _0223BDD8 - _0223B4E6 - 2 ; case 24
- .short _0223BE26 - _0223B4E6 - 2 ; case 25
- .short _0223BE62 - _0223B4E6 - 2 ; case 26
- .short _0223BEA6 - _0223B4E6 - 2 ; case 27
- .short _0223BED8 - _0223B4E6 - 2 ; case 28
- .short _0223BEF0 - _0223B4E6 - 2 ; case 29
- .short _0223BF06 - _0223B4E6 - 2 ; case 30
- .short _0223BF5E - _0223B4E6 - 2 ; case 31
- .short _0223BF8E - _0223B4E6 - 2 ; case 32
-_0223B528:
- ldr r0, [r4, #0x24]
- cmp r0, #0
- bne _0223B5A4
- mov r0, #3
- str r0, [sp, #0x138]
- mov r0, #5
- str r0, [sp, #0x134]
- ldr r0, _0223B7F4 ; =0x00004E20
- add r0, r7, r0
- str r0, [sp, #0x13c]
- ldr r0, [r4, #0x2c]
- str r0, [sp, #0x140]
- ldr r0, [r4]
- bl MOD11_02230078
- str r0, [sp, #0x14c]
- ldr r0, [r4]
- bl MOD11_022300CC
- str r0, [sp, #0x150]
- mov r0, #1
- str r0, [sp, #0x144]
- mov r0, #0
- str r0, [sp, #0x148]
- ldr r0, [r4]
- str r0, [sp, #0x154]
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _0223B578
- cmp r7, #1
- bne _0223B572
- mov r0, #0x10
- str r0, [sp, #0x130]
- b _0223B57C
-_0223B572:
- mov r0, #0x11
- str r0, [sp, #0x130]
- b _0223B57C
-_0223B578:
- mov r0, #0xf
- str r0, [sp, #0x130]
-_0223B57C:
- add r0, sp, #0x130
- bl MOD08_02229918
- str r0, [r4, #8]
- mov r0, #1
- str r0, [r4, #0x28]
- ldr r0, _0223B7F8 ; =0x0000070A
- bl FUN_020054C8
- ldr r2, [r4]
- ldr r0, _0223B7FC ; =0x0000241E
- ldrh r1, [r2, r0]
- add r1, r1, #1
- strh r1, [r2, r0]
- ldr r0, [r4, #8]
- mov r1, #0
- bl MOD08_02228AB8
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223B5A4:
- ldr r0, [r4]
- mov r1, #0
- bl MOD11_0222FF7C
- add r5, r0, #0
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A80
- cmp r0, #4
- beq _0223B678
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- add r5, #0x88
- str r0, [r4, #8]
- mov r0, #0
- str r0, [r5]
- mov r0, #1
- str r0, [r4, #0x28]
- ldr r0, _0223B7F8 ; =0x0000070A
- bl FUN_020054C8
- ldr r2, [r4]
- ldr r0, _0223B7FC ; =0x0000241E
- ldrh r1, [r2, r0]
- add r1, r1, #1
- strh r1, [r2, r0]
- ldr r0, [r4, #8]
- mov r1, #0
- bl MOD08_02228AB8
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223B5E8:
- ldr r0, [r4, #8]
- mov r1, #0
- bl MOD08_02228AC0
- cmp r0, #0
- bne _0223B678
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #1
- tst r0, r1
- beq _0223B618
- ldr r0, _0223B800 ; =0x000005E6
- mov r1, #0x75
- bl FUN_020054A8
- ldr r0, [r4, #8]
- mov r1, #2
- bl MOD08_02228AB8
- mov r0, #0x19
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B618:
- ldr r0, _0223B804 ; =0x00000708
- mov r1, #0x75
- bl FUN_020054A8
- ldr r0, [r4, #8]
- mov r1, #1
- bl MOD08_02228AB8
- mov r0, #2
- str r0, [r4, #0x28]
- mov r0, #0x17
- add sp, #0x158
- str r0, [r4, #0x34]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B634:
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- bne _0223B678
- ldr r0, [r4]
- ldr r2, [r4, #0x2c]
- add r1, r7, #0
- bl MOD11_02254EA8
- ldr r0, [r4]
- ldr r1, [r4, #4]
- bl MOD11_0223BFD8
- str r0, [r4, #0x38]
- cmp r0, #4
- bge _0223B656
- b _0223B658
-_0223B656:
- mov r0, #3
-_0223B658:
- str r0, [r4, #0x3c]
- mov r0, #3
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B662:
- ldr r0, [r4, #8]
- mov r1, #1
- bl MOD08_02228AC0
- cmp r0, #0
- bne _0223B678
- ldr r0, [r4, #4]
- bl MOD11_02243388
- cmp r0, #0
- bne _0223B67C
-_0223B678:
- bl _0223BFD0
-_0223B67C:
- ldr r0, [r4, #8]
- mov r1, #3
- bl MOD08_02228AB8
- mov r0, #4
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B68C:
- ldr r0, [r4, #8]
- mov r1, #3
- bl MOD08_02228AC0
- cmp r0, #0
- bne _0223B78E
- mov r0, #5
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B6A0:
- ldr r0, [r4, #0x3c]
- cmp r0, #0
- bne _0223B6C0
- ldr r0, [r4, #0x38]
- cmp r0, #4
- bne _0223B6B8
- mov r0, #7
- str r0, [r4, #0x28]
- mov r0, #0xc
- add sp, #0x158
- str r0, [r4, #0x34]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B6B8:
- mov r0, #0x1c
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B6C0:
- ldr r0, [r4, #8]
- mov r1, #4
- bl MOD08_02228AB8
- mov r0, #6
- str r0, [r4, #0x28]
- mov r0, #0xc
- add sp, #0x158
- str r0, [r4, #0x34]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B6D4:
- ldr r0, [r4, #8]
- mov r1, #4
- bl MOD08_02228AC0
- cmp r0, #0
- bne _0223B78E
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- bne _0223B78E
- ldr r0, [r4, #0x3c]
- add sp, #0x158
- sub r0, r0, #1
- str r0, [r4, #0x3c]
- mov r0, #5
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B6F6:
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- bne _0223B78E
- ldr r0, [r4, #8]
- mov r1, #6
- bl MOD08_02228AB8
- ldr r0, _0223B808 ; =0x00000709
- mov r1, #0x75
- bl FUN_020054A8
- mov r0, #8
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B716:
- ldr r0, [r4, #8]
- mov r1, #6
- bl MOD08_02228AC0
- cmp r0, #0
- bne _0223B78E
- ldr r1, _0223B80C ; =0x00000363
- add r0, sp, #0x10c
- strh r1, [r0, #2]
- mov r1, #0x82
- strb r1, [r0, #1]
- str r7, [sp, #0x110]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x20]
- add r2, sp, #0x10c
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0x14
- str r0, [r4, #0x34]
- mov r0, #9
- str r0, [r4, #0x28]
- ldr r0, _0223B810 ; =0x00000467
- bl FUN_0200521C
- ldr r0, [r4]
- mov r1, #2
- bl MOD11_02231484
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223B75C:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- bne _0223B78E
- mov r0, #0xa
- str r0, [r4, #0x28]
- ldr r0, [r4, #8]
- mov r1, #7
- bl MOD08_02228AB8
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223B77A:
- ldr r0, [r4, #8]
- mov r1, #7
- bl MOD08_02228AC0
- cmp r0, #0
- bne _0223B78E
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- beq _0223B792
-_0223B78E:
- bl _0223BFD0
-_0223B792:
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD11_022314D4
- ldr r2, [r4, #4]
- ldr r0, [r4]
- add r3, r2, r7
- ldr r2, _0223B814 ; =0x0000219C
- add r1, r7, #0
- ldrb r2, [r3, r2]
- bl MOD11_02230014
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #6
- lsl r1, r1, #8
- tst r0, r1
- beq _0223B83C
- ldr r2, [r4, #4]
- ldr r0, [r4]
- add r3, r2, r7
- ldr r2, _0223B814 ; =0x0000219C
- add r1, r7, #0
- ldrb r2, [r3, r2]
- bl MOD11_02230014
- add r2, r0, #0
- ldr r0, [r4]
- ldr r1, [r4, #4]
- bl MOD11_0224AD38
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #1
- bl FUN_020143A8
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r1, [sp, #8]
- ldr r2, _0223B818 ; =0x0000FFFF
- b _0223B81C
- nop
-_0223B7F0: .word 0x00003108
-_0223B7F4: .word 0x00004E20
-_0223B7F8: .word 0x0000070A
-_0223B7FC: .word 0x0000241E
-_0223B800: .word 0x000005E6
-_0223B804: .word 0x00000708
-_0223B808: .word 0x00000709
-_0223B80C: .word 0x00000363
-_0223B810: .word 0x00000467
-_0223B814: .word 0x0000219C
-_0223B818: .word 0x0000FFFF
-_0223B81C:
- add r0, r5, #0
- mov r1, #0xf
- mov r3, #1
- bl FUN_02003210
- mov r1, #0
- ldr r0, [sp, #0x24]
- mov r2, #0x10
- add r3, r1, #0
- str r1, [sp]
- bl FUN_02007E98
- mov r0, #0x20
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B83C:
- add r0, r6, #0
- mov r1, #5
- mov r2, #0
- bl GetMonData
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD11_02231668
- cmp r0, #0
- beq _0223B88A
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #1
- bl FUN_020143A8
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r1, [sp, #8]
- ldr r2, _0223BBD4 ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #5
- mov r3, #1
- bl FUN_02003210
- mov r1, #0
- ldr r0, [sp, #0x24]
- mov r2, #0x10
- add r3, r1, #0
- str r1, [sp]
- bl FUN_02007E98
- mov r0, #0x10
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B88A:
- ldr r1, _0223BBD8 ; =0x00000367
- add r0, sp, #0xe8
- strh r1, [r0, #2]
- mov r1, #0x82
- strb r1, [r0, #1]
- str r7, [sp, #0xec]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x20]
- add r2, sp, #0xe8
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0x14
- str r0, [r4, #0x34]
- mov r0, #0xb
- str r0, [r4, #0x28]
- ldr r0, [r4]
- bl MOD11_0223129C
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223B8BC:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- bne _0223B914
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- bne _0223B914
- mov r0, #0xc
- str r0, [r4, #0x28]
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r1, [sp, #8]
- ldr r2, _0223BBD4 ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #5
- mov r3, #1
- bl FUN_02003210
- mov r1, #0
- ldr r0, [sp, #0x24]
- str r1, [sp]
- mov r2, #0x10
- add r3, r1, #0
- bl FUN_02007E98
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #1
- bl FUN_020143A8
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223B90A:
- add r0, r5, #0
- bl FUN_020038E4
- cmp r0, #0
- beq _0223B916
-_0223B914:
- b _0223BFD0
-_0223B916:
- ldr r0, [r4, #8]
- bl MOD08_02229A2C
- ldr r0, [sp, #0x24]
- bl FUN_02007540
- ldr r0, [r4]
- bl MOD11_0222D944
- ldr r0, [r4]
- mov r1, #0
- bl MOD11_02230088
- mov r1, #0
- bl MOD11_022583C8
- ldr r0, [r4]
- mov r1, #1
- bl MOD11_02230088
- mov r1, #0
- bl MOD11_022583C8
- ldr r0, [r4]
- bl MOD11_0222FF68
- str r0, [sp, #0xd0]
- ldr r0, [r4]
- bl MOD11_022300CC
- str r0, [sp, #0xd4]
- ldr r0, [sp, #0x24]
- add r1, r7, #0
- str r0, [sp, #0xd8]
- mov r0, #5
- str r0, [sp, #0xdc]
- ldr r2, [r4, #4]
- ldr r0, [r4]
- add r3, r2, r7
- ldr r2, _0223BBDC ; =0x0000219C
- ldrb r2, [r3, r2]
- bl MOD11_02230014
- str r0, [sp, #0xe0]
- ldr r0, [r4]
- bl MOD11_022300D0
- bl FUN_0206BB34
- str r0, [sp, #0xe4]
- bl FUN_0201D658
- str r0, [r4, #0x54]
- add r0, sp, #0xd0
- bl MOD16_021EEF0C
- str r0, [r4, #0x50]
- mov r0, #0xd
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B990:
- ldr r0, [r4, #0x50]
- bl MOD16_021EEF84
- cmp r0, #0
- beq _0223BA4C
- ldr r0, _0223BBE0 ; =0x021C48B8
- ldr r1, [r0, #0x48]
- mov r0, #1
- tst r0, r1
- beq _0223B9AA
- mov r0, #0xe
- str r0, [r4, #0x28]
- b _0223B9BC
-_0223B9AA:
- bl FUN_02020AA4
- cmp r0, #0
- beq _0223B9BC
- ldr r0, _0223BBE4 ; =0x000005DC
- bl FUN_020054C8
- mov r0, #0xe
- str r0, [r4, #0x28]
-_0223B9BC:
- ldr r0, [r4, #0x28]
- cmp r0, #0xe
- bne _0223BA4C
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r1, [sp, #8]
- ldr r2, _0223BBD4 ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #5
- mov r3, #1
- bl FUN_02003210
- ldr r0, [r4, #0x50]
- mov r1, #0
- bl MOD05_021EEF9C
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223B9E4:
- ldr r0, [r4, #0x50]
- bl MOD16_021EEF98
- add r5, r0, #0
- mov r1, #0
- mov r2, #4
- bl FUN_020079E0
- add r0, r5, #0
- mov r1, #0
- bl FUN_0200782C
- cmp r0, #0x80
- blt _0223BA4C
- add r0, r5, #0
- mov r1, #0
- mov r2, #0x80
- bl FUN_02007558
- mov r0, #0xf
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BA12:
- ldr r0, [r4, #0x50]
- bl MOD05_021EEF68
- ldr r0, [r4, #0x54]
- bl FUN_0201D674
- ldr r0, [r4]
- bl MOD11_0222D980
- mov r0, #0x10
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- str r0, [sp, #8]
- ldr r2, _0223BBD4 ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #5
- mov r3, #1
- bl FUN_02003210
- mov r0, #0x11
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BA42:
- add r0, r5, #0
- bl FUN_020038E4
- cmp r0, #0
- beq _0223BA4E
-_0223BA4C:
- b _0223BFD0
-_0223BA4E:
- ldr r2, [r4, #4]
- ldr r0, [r4]
- add r3, r2, r7
- ldr r2, _0223BBDC ; =0x0000219C
- add r1, r7, #0
- ldrb r2, [r3, r2]
- bl MOD11_02230014
- add r6, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_02229A2C
- ldr r0, [sp, #0x24]
- bl FUN_02007540
- ldr r0, [r4]
- bl MOD11_0222D944
- ldr r0, [r4]
- bl MOD11_0222D980
- add r0, sp, #0xc0
- add r1, r6, #0
- mov r2, #2
- bl FUN_02068B68
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x24]
- add r1, sp, #0xc0
- mov r2, #0x80
- mov r3, #0x48
- bl FUN_020073A0
- mov r0, #0x10
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- str r0, [sp, #8]
- ldr r2, _0223BBD4 ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #5
- mov r3, #1
- bl FUN_02003210
- mov r2, #0
- ldr r0, [sp, #0x24]
- mov r1, #0x10
- add r3, r2, #0
- str r2, [sp]
- bl FUN_02007E98
- mov r0, #0x11
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BAC4:
- add r0, r5, #0
- bl FUN_020038E4
- cmp r0, #0
- bne _0223BB74
- mov r0, #0x12
- str r0, [r4, #0x28]
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #0
- bl FUN_020143A8
- add r0, r5, #0
- mov r1, #1
- bl FUN_020038F0
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223BAEA:
- ldr r1, [r4, #4]
- mov r0, #5
- str r0, [sp]
- mov r2, #0
- ldr r0, _0223BBDC ; =0x0000219C
- str r2, [sp, #4]
- add r3, r1, r7
- ldrb r0, [r3, r0]
- mov r3, #0xd9
- lsl r3, r3, #2
- orr r0, r7
- str r0, [sp, #8]
- ldr r0, [r4]
- bl MOD11_02255980
- ldr r0, [r4, #0x28]
- add sp, #0x158
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BB12:
- add r0, r6, #0
- mov r1, #0
- bl MOD11_0224AD90
- cmp r0, #0
- beq _0223BB74
- ldr r0, [r4, #4]
- mov r1, #0
- bl MOD11_0224AD90
- cmp r0, #0xff
- bne _0223BB32
- mov r0, #0x16
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BB32:
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #1
- bl FUN_020143A8
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r1, [sp, #8]
- ldr r2, _0223BBD4 ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #0xf
- mov r3, #1
- bl FUN_02003210
- mov r1, #0
- ldr r0, [sp, #0x24]
- mov r2, #0x10
- add r3, r1, #0
- str r1, [sp]
- bl FUN_02007E98
- mov r0, #0x14
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BB6A:
- add r0, r5, #0
- bl FUN_020038E4
- cmp r0, #0
- beq _0223BB76
-_0223BB74:
- b _0223BFD0
-_0223BB76:
- mov r0, #0
- add r1, r0, #0
- bl FUN_0200E3A0
- mov r0, #1
- mov r1, #0
- bl FUN_0200E3A0
- ldr r2, [r4, #4]
- ldr r0, [r4]
- add r3, r2, r7
- ldr r2, _0223BBDC ; =0x0000219C
- add r1, r7, #0
- ldrb r2, [r3, r2]
- bl MOD11_02230014
- mov r1, #5
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230E18
- str r0, [sp]
- mov r0, #5
- mov r1, #1
- add r2, r5, #0
- mov r3, #0xa
- bl FUN_02077A84
- add r5, r0, #0
- str r5, [r4, #0x54]
- ldr r0, [r4]
- mov r1, #0
- bl MOD11_0222FFC8
- cmp r0, #6
- bge _0223BBCA
- mov r0, #0
- b _0223BBEE
-_0223BBCA:
- ldr r0, [r4]
- bl MOD11_02231280
- ldr r1, _0223BBE8 ; =0x00000496
- b _0223BBEC
- .align 2, 0
-_0223BBD4: .word 0x0000FFFF
-_0223BBD8: .word 0x00000367
-_0223BBDC: .word 0x0000219C
-_0223BBE0: .word 0x021C48B8
-_0223BBE4: .word 0x000005DC
-_0223BBE8: .word 0x00000496
-_0223BBEC:
- add r0, r0, r1
-_0223BBEE:
- str r0, [r5, #0x44]
- add r0, r6, #0
- mov r1, #0x70
- mov r2, #0
- bl GetMonData
- str r0, [r5, #8]
- ldr r0, [r4]
- bl MOD11_02230290
- str r0, [r5, #0x48]
- add r0, r6, #0
- mov r1, #0x6f
- mov r2, #0
- bl GetMonData
- str r0, [r5, #0x10]
- ldr r0, _0223BF18 ; =0x020FA5FC
- add r1, r5, #0
- mov r2, #5
- bl FUN_02006234
- str r0, [r4, #0x50]
- mov r0, #0x15
- str r0, [r4, #0x28]
- ldr r0, [r4]
- bl MOD11_02231438
- ldr r0, [r4]
- bl MOD11_0222D840
- ldr r0, [r4]
- mov r1, #1
- bl MOD11_02231338
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223BC38:
- ldr r0, [r4, #0x50]
- bl FUN_02006290
- cmp r0, #0
- beq _0223BC88
- ldr r2, [r4, #4]
- ldr r5, [r4, #0x54]
- add r3, r2, r7
- ldr r2, _0223BF1C ; =0x0000219C
- ldr r0, [r4]
- ldrb r2, [r3, r2]
- add r1, r7, #0
- bl MOD11_02230014
- ldr r1, [r5, #0x14]
- cmp r1, #0
- bne _0223BC62
- ldr r2, [r5, #0x18]
- mov r1, #0x77
- bl SetMonData
-_0223BC62:
- add r0, r5, #0
- bl FUN_02077AC4
- ldr r0, [r4, #0x50]
- bl FUN_02006260
- ldr r0, [r4]
- mov r1, #2
- bl MOD11_02231338
- mov r0, #0x17
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BC7E:
- add r0, r5, #0
- bl FUN_020038E4
- cmp r0, #0
- beq _0223BC8A
-_0223BC88:
- b _0223BFD0
-_0223BC8A:
- ldr r0, [r4]
- mov r1, #0
- bl MOD11_0222FF88
- ldr r2, [r4, #4]
- str r0, [sp, #0x28]
- add r3, r2, r7
- ldr r2, _0223BF1C ; =0x0000219C
- ldr r0, [r4]
- ldrb r2, [r3, r2]
- add r1, r7, #0
- bl MOD11_02230014
- add r6, r0, #0
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD11_02231628
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r6, #0
- bl MOD11_0224AD38
- ldr r0, [r4]
- add r1, r6, #0
- bl MOD11_02230F88
- ldr r0, [r4]
- add r1, r6, #0
- bl MOD11_02230FA8
- mov r1, #0
- ldr r0, [r4]
- add r2, r1, #0
- mov r3, #9
- bl MOD11_022564A8
- ldr r0, [sp, #0x28]
- add r1, r6, #0
- bl FUN_0206B900
- cmp r0, #1
- bne _0223BD1E
- ldr r0, [r4, #0x28]
- cmp r0, #0x16
- bne _0223BD16
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #1
- bl FUN_020143A8
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r1, [sp, #8]
- ldr r2, _0223BF20 ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #0xf
- mov r3, #1
- bl FUN_02003210
- mov r1, #0
- ldr r0, [sp, #0x24]
- mov r2, #0x10
- add r3, r1, #0
- str r1, [sp]
- bl FUN_02007E98
-_0223BD16:
- mov r0, #0x20
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BD1E:
- ldr r0, [r4]
- bl MOD11_02230290
- str r0, [sp, #0x1c]
- bl FUN_0206B330
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x1c]
- bl FUN_0206B334
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x1c]
- ldr r1, [sp, #0x14]
- bl FUN_0206B428
- mov r5, #0
-_0223BD3E:
- add r1, r5, #0
- add r0, r6, #0
- add r1, #0x42
- mov r2, #0
- bl GetMonData
- add r1, r5, #0
- str r0, [sp, #0x2c]
- add r0, r6, #0
- add r1, #0x3a
- add r2, sp, #0x2c
- bl SetMonData
- add r5, r5, #1
- cmp r5, #4
- blt _0223BD3E
- add r0, r6, #0
- bl FUN_020690E4
- add r2, r0, #0
- ldr r0, [sp, #0x1c]
- ldr r1, [sp, #0x14]
- bl FUN_0206B244
- ldr r0, [r4, #0x28]
- cmp r0, #0x16
- bne _0223BDD0
- ldr r1, [sp, #0x18]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- ldr r0, [r4]
- bne _0223BD96
- bl MOD11_02231280
- ldr r1, _0223BF24 ; =0x00000496
- add r1, r0, r1
- add r0, sp, #0x9c
- strh r1, [r0, #2]
- mov r1, #0x93
- strb r1, [r0, #1]
- ldr r0, [sp, #0x18]
- str r7, [sp, #0xa0]
- str r0, [sp, #0xa4]
- b _0223BDB0
-_0223BD96:
- bl MOD11_02231280
- ldr r1, _0223BF28 ; =0x00000498
- add r1, r0, r1
- add r0, sp, #0x9c
- strh r1, [r0, #2]
- mov r1, #0xaf
- strb r1, [r0, #1]
- ldr r0, [sp, #0x18]
- str r7, [sp, #0xa0]
- str r0, [sp, #0xa4]
- ldr r0, [sp, #0x14]
- str r0, [sp, #0xa8]
-_0223BDB0:
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x20]
- add r2, sp, #0x9c
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0x14
- str r0, [r4, #0x34]
- mov r0, #0x18
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BDD0:
- mov r0, #0x20
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BDD8:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- bne _0223BEBC
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- bne _0223BEBC
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #1
- bl FUN_020143A8
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r1, [sp, #8]
- ldr r2, _0223BF20 ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #0xf
- mov r3, #1
- bl FUN_02003210
- mov r1, #0
- ldr r0, [sp, #0x24]
- mov r2, #0x10
- add r3, r1, #0
- str r1, [sp]
- bl FUN_02007E98
- mov r0, #0x20
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BE26:
- ldr r0, [r4, #8]
- mov r1, #2
- bl MOD08_02228AC0
- cmp r0, #0
- bne _0223BEBC
- ldr r0, [r4, #8]
- bl MOD08_02229A2C
- ldr r1, _0223BF2C ; =0x0000035B
- add r0, sp, #0x78
- strh r1, [r0, #2]
- mov r1, #0
- strb r1, [r0, #1]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x20]
- add r2, sp, #0x78
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0x14
- str r0, [r4, #0x34]
- mov r0, #0x1a
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BE62:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- bne _0223BEBC
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- bne _0223BEBC
- mov r1, #0xd7
- lsl r1, r1, #2
- add r0, sp, #0x2c
- strh r1, [r0, #0x2a]
- mov r1, #0
- add r0, sp, #0x54
- strb r1, [r0, #1]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x20]
- add r2, sp, #0x54
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0x14
- str r0, [r4, #0x34]
- mov r0, #0x1b
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BEA6:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- bne _0223BEBC
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- beq _0223BEBE
-_0223BEBC:
- b _0223BFD0
-_0223BEBE:
- mov r0, #0x5e
- ldr r1, [r4, #4]
- mov r2, #0
- lsl r0, r0, #2
- str r2, [r1, r0]
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [sp, #0x10]
- bl FUN_0200CAB4
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223BED8:
- ldr r0, [r4]
- ldr r2, [r4, #0x2c]
- add r1, r7, #0
- mov r3, #1
- bl MOD11_02254B40
- mov r0, #0x1d
- str r0, [r4, #0x28]
- mov r0, #2
- add sp, #0x158
- str r0, [r4, #0x34]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BEF0:
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- bne _0223BFD0
- ldr r0, [r4, #8]
- bl MOD08_02229A2C
- mov r0, #0x1e
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BF06:
- add r0, r6, #0
- bl MOD11_02243388
- cmp r0, #0
- beq _0223BFD0
- ldr r1, [r4, #0x38]
- ldr r0, _0223BF30 ; =0x0000035F
- b _0223BF34
- nop
-_0223BF18: .word 0x020FA5FC
-_0223BF1C: .word 0x0000219C
-_0223BF20: .word 0x0000FFFF
-_0223BF24: .word 0x00000496
-_0223BF28: .word 0x00000498
-_0223BF2C: .word 0x0000035B
-_0223BF30: .word 0x0000035F
-_0223BF34:
- add r1, r1, r0
- add r0, sp, #0x2c
- strh r1, [r0, #6]
- mov r1, #0
- strb r1, [r0, #5]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x20]
- add r2, sp, #0x30
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0x14
- str r0, [r4, #0x34]
- mov r0, #0x1f
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BF5E:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- bne _0223BFD0
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- bne _0223BFD0
- mov r0, #0x5e
- ldr r1, [r4, #4]
- mov r2, #0
- lsl r0, r0, #2
- str r2, [r1, r0]
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [sp, #0x10]
- bl FUN_0200CAB4
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223BF8E:
- add r0, r5, #0
- bl FUN_020038E4
- cmp r0, #0
- bne _0223BFD0
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #6
- lsl r1, r1, #8
- tst r0, r1
- beq _0223BFB2
- ldr r0, [r4, #8]
- bl MOD08_02229A2C
- ldr r0, [sp, #0x24]
- bl FUN_02007540
-_0223BFB2:
- ldr r1, [r4]
- ldr r0, _0223BFD4 ; =0x0000241C
- mov r2, #4
- strb r2, [r1, r0]
- mov r0, #0x5e
- ldr r1, [r4, #4]
- mov r2, #0
- lsl r0, r0, #2
- str r2, [r1, r0]
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [sp, #0x10]
- bl FUN_0200CAB4
-_0223BFD0:
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0223BFD4: .word 0x0000241C
-
- thumb_func_start MOD11_0223BFD8
-MOD11_0223BFD8: ; 0x0223BFD8
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- add r4, r1, #0
- bl MOD11_0222FF74
- mov r1, #6
- lsl r1, r1, #8
- tst r0, r1
- beq _0223BFEE
- mov r0, #4
- pop {r3, r4, r5, r6, r7, pc}
-_0223BFEE:
- mov r0, #0x4a
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- ldr r1, [r4, #0x6c]
- cmp r0, #5
- bne _0223C026
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- mov r0, #0xb5
- lsl r0, r0, #6
- ldrh r0, [r1, r0]
- mov r1, #8
- bl GetMonBaseStat
- ldr r1, _0223C200 ; =0x0000311C
- ldr r2, _0223C204 ; =0x0225DCF0
- ldrb r1, [r4, r1]
- lsl r1, r1, #1
- ldrb r2, [r2, r1]
- mul r2, r0
- add r0, r2, #0
- ldr r2, _0223C208 ; =0x0225DCF1
- ldrb r1, [r2, r1]
- bl _u32_div_f
- str r0, [sp]
- b _0223C03A
-_0223C026:
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- mov r0, #0xb5
- lsl r0, r0, #6
- ldrh r0, [r1, r0]
- mov r1, #8
- bl GetMonBaseStat
- str r0, [sp]
-_0223C03A:
- ldr r1, [r4, #0x6c]
- add r0, r4, #0
- mov r2, #0x1b
- mov r3, #0
- mov r5, #0xa
- bl MOD11_02243420
- add r7, r0, #0
- ldr r1, [r4, #0x6c]
- add r0, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- add r1, r0, #0
- mov r0, #0x4a
- lsl r0, r0, #2
- ldr r2, [r4, r0]
- cmp r2, #5
- ble _0223C128
- cmp r2, #0xf
- bhi _0223C12E
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0223C072: ; jump table
- .short _0223C12E - _0223C072 - 2 ; case 0
- .short _0223C12E - _0223C072 - 2 ; case 1
- .short _0223C12E - _0223C072 - 2 ; case 2
- .short _0223C12E - _0223C072 - 2 ; case 3
- .short _0223C12E - _0223C072 - 2 ; case 4
- .short _0223C12E - _0223C072 - 2 ; case 5
- .short _0223C092 - _0223C072 - 2 ; case 6
- .short _0223C0A6 - _0223C072 - 2 ; case 7
- .short _0223C0B4 - _0223C072 - 2 ; case 8
- .short _0223C0D0 - _0223C072 - 2 ; case 9
- .short _0223C0EC - _0223C072 - 2 ; case 10
- .short _0223C12E - _0223C072 - 2 ; case 11
- .short _0223C12E - _0223C072 - 2 ; case 12
- .short _0223C0FA - _0223C072 - 2 ; case 13
- .short _0223C12E - _0223C072 - 2 ; case 14
- .short _0223C11C - _0223C072 - 2 ; case 15
-_0223C092:
- cmp r7, #0xb
- beq _0223C0A2
- cmp r1, #0xb
- beq _0223C0A2
- cmp r7, #6
- beq _0223C0A2
- cmp r1, #6
- bne _0223C12E
-_0223C0A2:
- mov r5, #0x1e
- b _0223C12E
-_0223C0A6:
- add r0, r6, #0
- bl MOD11_02230294
- cmp r0, #7
- bne _0223C12E
- mov r5, #0x23
- b _0223C12E
-_0223C0B4:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0223C20C ; =0x00002D74
- ldrb r1, [r1, r0]
- cmp r1, #0x28
- bhs _0223C12E
- mov r0, #0x28
- sub r5, r0, r1
- cmp r5, #0xa
- bhs _0223C12E
- mov r5, #0xa
- b _0223C12E
-_0223C0D0:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- mov r1, #0xb5
- lsl r1, r1, #6
- ldrh r1, [r2, r1]
- add r0, r6, #0
- bl MOD11_02231668
- cmp r0, #1
- bne _0223C12E
- mov r5, #0x1e
- b _0223C12E
-_0223C0EC:
- add r0, #0x28
- ldr r5, [r4, r0]
- add r5, #0xa
- cmp r5, #0x28
- bls _0223C12E
- mov r5, #0x28
- b _0223C12E
-_0223C0FA:
- add r0, r6, #0
- bl MOD11_02230C5C
- cmp r0, #3
- beq _0223C118
- add r0, r6, #0
- bl MOD11_02230C5C
- cmp r0, #4
- beq _0223C118
- add r0, r6, #0
- bl MOD11_02230294
- cmp r0, #5
- bne _0223C12E
-_0223C118:
- mov r5, #0x23
- b _0223C12E
-_0223C11C:
- add r0, #0x28
- ldr r0, [r4, r0]
- cmp r0, #1
- bge _0223C12E
- mov r5, #0x28
- b _0223C12E
-_0223C128:
- ldr r0, _0223C210 ; =0x0225DC28
- sub r1, r2, #2
- ldrb r5, [r0, r1]
-_0223C12E:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- add r6, r1, #0
- mul r6, r0
- ldr r0, _0223C214 ; =0x00002D90
- add r1, r4, r6
- ldr r1, [r1, r0]
- lsl r0, r1, #1
- add r7, r1, r0
- ldr r1, [sp]
- add r0, r1, #0
- mul r0, r5
- mov r1, #0xa
- bl _u32_div_f
- ldr r1, _0223C218 ; =0x00002D8C
- add r2, r4, r6
- ldr r1, [r2, r1]
- lsl r1, r1, #1
- sub r1, r7, r1
- mul r1, r0
- add r0, r1, #0
- add r1, r7, #0
- bl _u32_div_f
- add r1, r0, #0
- ldr r0, _0223C21C ; =0x00002DAC
- add r2, r4, r6
- ldr r2, [r2, r0]
- mov r0, #0x27
- tst r0, r2
- beq _0223C170
- lsl r1, r1, #1
-_0223C170:
- mov r0, #0xd8
- tst r0, r2
- beq _0223C182
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _u32_div_f
- add r1, r0, #0
-_0223C182:
- cmp r1, #0xff
- blo _0223C18A
- mov r5, #4
- b _0223C1FA
-_0223C18A:
- ldr r0, _0223C220 ; =0x040002B0
- mov r2, #0
- strh r2, [r0]
- mov r0, #0xff
- lsl r0, r0, #0x10
- bl _u32_div_f
- ldr r1, _0223C224 ; =0x040002B8
- add r2, r1, #0
- str r0, [r1]
- sub r2, #8
- lsr r0, r1, #0xb
-_0223C1A2:
- ldrh r1, [r2]
- tst r1, r0
- bne _0223C1A2
- ldr r3, _0223C220 ; =0x040002B0
- lsr r0, r3, #0xb
-_0223C1AC:
- ldrh r1, [r3]
- tst r1, r0
- bne _0223C1AC
- ldr r2, _0223C228 ; =0x040002B4
- mov r0, #0
- ldr r1, [r2]
- strh r0, [r3]
- mov r0, #2
- str r1, [r2, #4]
- sub r2, r2, #4
- lsl r0, r0, #0xe
-_0223C1C2:
- ldrh r1, [r2]
- tst r1, r0
- bne _0223C1C2
- ldr r2, _0223C220 ; =0x040002B0
- lsr r0, r2, #0xb
-_0223C1CC:
- ldrh r1, [r2]
- tst r1, r0
- bne _0223C1CC
- ldr r1, _0223C228 ; =0x040002B4
- ldr r0, _0223C22C ; =0x000FFFF0
- ldr r1, [r1]
- bl _u32_div_f
- add r6, r0, #0
- mov r5, #0
-_0223C1E0:
- bl rand_LC
- cmp r0, r6
- bhs _0223C1EE
- add r5, r5, #1
- cmp r5, #4
- blt _0223C1E0
-_0223C1EE:
- mov r0, #0x4a
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- cmp r0, #1
- bne _0223C1FA
- mov r5, #4
-_0223C1FA:
- add r0, r5, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223C200: .word 0x0000311C
-_0223C204: .word 0x0225DCF0
-_0223C208: .word 0x0225DCF1
-_0223C20C: .word 0x00002D74
-_0223C210: .word 0x0225DC28
-_0223C214: .word 0x00002D90
-_0223C218: .word 0x00002D8C
-_0223C21C: .word 0x00002DAC
-_0223C220: .word 0x040002B0
-_0223C224: .word 0x040002B8
-_0223C228: .word 0x040002B4
-_0223C22C: .word 0x000FFFF0
-
- thumb_func_start MOD11_0223C230
-MOD11_0223C230: ; 0x0223C230
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r4, r0, #0
- add r6, r1, #0
- cmp r2, #0x16
- bgt _0223C27A
- cmp r2, #0
- blt _0223C280
- add r1, r2, r2
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0223C24C: ; jump table
- .short _0223C280 - _0223C24C - 2 ; case 0
- .short _0223C280 - _0223C24C - 2 ; case 1
- .short _0223C284 - _0223C24C - 2 ; case 2
- .short _0223C320 - _0223C24C - 2 ; case 3
- .short _0223C29C - _0223C24C - 2 ; case 4
- .short _0223C288 - _0223C24C - 2 ; case 5
- .short _0223C28C - _0223C24C - 2 ; case 6
- .short _0223C290 - _0223C24C - 2 ; case 7
- .short _0223C296 - _0223C24C - 2 ; case 8
- .short _0223C346 - _0223C24C - 2 ; case 9
- .short _0223C2C2 - _0223C24C - 2 ; case 10
- .short _0223C36E - _0223C24C - 2 ; case 11
- .short _0223C2EA - _0223C24C - 2 ; case 12
- .short _0223C280 - _0223C24C - 2 ; case 13
- .short _0223C3A4 - _0223C24C - 2 ; case 14
- .short _0223C3AC - _0223C24C - 2 ; case 15
- .short _0223C3B4 - _0223C24C - 2 ; case 16
- .short _0223C3F0 - _0223C24C - 2 ; case 17
- .short _0223C280 - _0223C24C - 2 ; case 18
- .short _0223C42C - _0223C24C - 2 ; case 19
- .short _0223C456 - _0223C24C - 2 ; case 20
- .short _0223C480 - _0223C24C - 2 ; case 21
- .short _0223C28C - _0223C24C - 2 ; case 22
-_0223C27A:
- cmp r2, #0xff
- bne _0223C280
- b _0223C480
-_0223C280:
- ldr r5, [r6, #0x64]
- b _0223C486
-_0223C284:
- ldr r5, [r6, #0x6c]
- b _0223C486
-_0223C288:
- ldr r5, [r6, #0x74]
- b _0223C486
-_0223C28C:
- ldr r5, [r6, #0x78]
- b _0223C486
-_0223C290:
- add r6, #0x94
- ldr r5, [r6]
- b _0223C486
-_0223C296:
- add r6, #0x80
- ldr r5, [r6]
- b _0223C486
-_0223C29C:
- bl MOD11_0222FF84
- add r6, r0, #0
- mov r5, #0
- cmp r6, #0
- ble _0223C2C0
- mov r7, #1
-_0223C2AA:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _0223C48C ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- bne _0223C2C0
- add r5, r5, #1
- cmp r5, r6
- blt _0223C2AA
-_0223C2C0:
- b _0223C486
-_0223C2C2:
- bl MOD11_0222FF84
- add r6, r0, #0
- mov r5, #0
- cmp r6, #0
- ble _0223C2E8
- ldr r7, _0223C48C ; =0x00000195
-_0223C2D0:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldrb r0, [r0, r7]
- cmp r0, #3
- beq _0223C2E8
- cmp r0, #1
- beq _0223C2E8
- add r5, r5, #1
- cmp r5, r6
- blt _0223C2D0
-_0223C2E8:
- b _0223C486
-_0223C2EA:
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _0223C2F8
- mov r6, #5
- b _0223C2FA
-_0223C2F8:
- mov r6, #1
-_0223C2FA:
- add r0, r4, #0
- bl MOD11_0222FF84
- add r7, r0, #0
- mov r5, #0
- cmp r7, #0
- ble _0223C31E
-_0223C308:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _0223C48C ; =0x00000195
- ldrb r0, [r0, r1]
- cmp r0, r6
- beq _0223C31E
- add r5, r5, #1
- cmp r5, r7
- blt _0223C308
-_0223C31E:
- b _0223C486
-_0223C320:
- bl MOD11_0222FF84
- add r6, r0, #0
- mov r5, #0
- cmp r6, #0
- ble _0223C344
- mov r7, #1
-_0223C32E:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _0223C48C ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- beq _0223C344
- add r5, r5, #1
- cmp r5, r6
- blt _0223C32E
-_0223C344:
- b _0223C486
-_0223C346:
- bl MOD11_0222FF84
- add r6, r0, #0
- mov r5, #0
- cmp r6, #0
- ble _0223C36C
- ldr r7, _0223C48C ; =0x00000195
-_0223C354:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldrb r0, [r0, r7]
- cmp r0, #2
- beq _0223C36C
- cmp r0, #0
- beq _0223C36C
- add r5, r5, #1
- cmp r5, r6
- blt _0223C354
-_0223C36C:
- b _0223C486
-_0223C36E:
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _0223C37C
- mov r6, #4
- b _0223C37E
-_0223C37C:
- mov r6, #0
-_0223C37E:
- add r0, r4, #0
- bl MOD11_0222FF84
- add r7, r0, #0
- mov r5, #0
- cmp r7, #0
- ble _0223C486
-_0223C38C:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _0223C48C ; =0x00000195
- ldrb r0, [r0, r1]
- cmp r0, r6
- beq _0223C486
- add r5, r5, #1
- cmp r5, r7
- blt _0223C38C
- b _0223C486
-_0223C3A4:
- mov r0, #0x47
- lsl r0, r0, #2
- ldr r5, [r6, r0]
- b _0223C486
-_0223C3AC:
- mov r0, #0x12
- lsl r0, r0, #4
- ldr r5, [r6, r0]
- b _0223C486
-_0223C3B4:
- bl MOD11_0222FF84
- mov r5, #0
- str r0, [sp, #4]
- cmp r0, #0
- ble _0223C3E6
-_0223C3C0:
- ldr r7, [r6, #0x64]
- cmp r5, r7
- beq _0223C3DE
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02230270
- str r0, [sp, #8]
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_02230270
- ldr r1, [sp, #8]
- cmp r1, r0
- beq _0223C3E6
-_0223C3DE:
- ldr r0, [sp, #4]
- add r5, r5, #1
- cmp r5, r0
- blt _0223C3C0
-_0223C3E6:
- ldr r0, [sp, #4]
- cmp r5, r0
- bne _0223C486
- mov r5, #0
- b _0223C486
-_0223C3F0:
- bl MOD11_0222FF84
- mov r5, #0
- str r0, [sp]
- cmp r0, #0
- ble _0223C422
-_0223C3FC:
- ldr r7, [r6, #0x6c]
- cmp r5, r7
- beq _0223C41A
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02230270
- str r0, [sp, #0xc]
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_02230270
- ldr r1, [sp, #0xc]
- cmp r1, r0
- beq _0223C422
-_0223C41A:
- ldr r0, [sp]
- add r5, r5, #1
- cmp r5, r0
- blt _0223C3FC
-_0223C422:
- ldr r0, [sp]
- cmp r5, r0
- bne _0223C486
- mov r5, #0
- b _0223C486
-_0223C42C:
- bl MOD11_0222FF84
- add r7, r0, #0
- ldr r1, [r6, #0x64]
- add r0, r4, #0
- bl MOD11_02230270
- add r6, r0, #0
- mov r5, #0
- cmp r7, #0
- ble _0223C486
-_0223C442:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02230270
- cmp r6, r0
- bne _0223C486
- add r5, r5, #1
- cmp r5, r7
- blt _0223C442
- b _0223C486
-_0223C456:
- bl MOD11_0222FF84
- add r7, r0, #0
- ldr r1, [r6, #0x6c]
- add r0, r4, #0
- bl MOD11_02230270
- add r6, r0, #0
- mov r5, #0
- cmp r7, #0
- ble _0223C486
-_0223C46C:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02230270
- cmp r6, r0
- bne _0223C486
- add r5, r5, #1
- cmp r5, r7
- blt _0223C46C
- b _0223C486
-_0223C480:
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r5, [r6, r0]
-_0223C486:
- add r0, r5, #0
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0223C48C: .word 0x00000195
-
- thumb_func_start MOD11_0223C490
-MOD11_0223C490: ; 0x0223C490
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r4, r1, #0
- mov r6, #0
- bl MOD11_0223A404
- str r0, [r4]
- add r0, r7, #0
- bl MOD11_0223A404
- str r0, [r4, #4]
- cmp r0, #0x3c
- bhi _0223C544
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223C4B6: ; jump table
- .short _0223C530 - _0223C4B6 - 2 ; case 0
- .short _0223C532 - _0223C4B6 - 2 ; case 1
- .short _0223C532 - _0223C4B6 - 2 ; case 2
- .short _0223C532 - _0223C4B6 - 2 ; case 3
- .short _0223C532 - _0223C4B6 - 2 ; case 4
- .short _0223C532 - _0223C4B6 - 2 ; case 5
- .short _0223C532 - _0223C4B6 - 2 ; case 6
- .short _0223C532 - _0223C4B6 - 2 ; case 7
- .short _0223C532 - _0223C4B6 - 2 ; case 8
- .short _0223C536 - _0223C4B6 - 2 ; case 9
- .short _0223C536 - _0223C4B6 - 2 ; case 10
- .short _0223C536 - _0223C4B6 - 2 ; case 11
- .short _0223C536 - _0223C4B6 - 2 ; case 12
- .short _0223C536 - _0223C4B6 - 2 ; case 13
- .short _0223C536 - _0223C4B6 - 2 ; case 14
- .short _0223C536 - _0223C4B6 - 2 ; case 15
- .short _0223C536 - _0223C4B6 - 2 ; case 16
- .short _0223C536 - _0223C4B6 - 2 ; case 17
- .short _0223C536 - _0223C4B6 - 2 ; case 18
- .short _0223C536 - _0223C4B6 - 2 ; case 19
- .short _0223C536 - _0223C4B6 - 2 ; case 20
- .short _0223C536 - _0223C4B6 - 2 ; case 21
- .short _0223C536 - _0223C4B6 - 2 ; case 22
- .short _0223C536 - _0223C4B6 - 2 ; case 23
- .short _0223C536 - _0223C4B6 - 2 ; case 24
- .short _0223C536 - _0223C4B6 - 2 ; case 25
- .short _0223C536 - _0223C4B6 - 2 ; case 26
- .short _0223C536 - _0223C4B6 - 2 ; case 27
- .short _0223C536 - _0223C4B6 - 2 ; case 28
- .short _0223C536 - _0223C4B6 - 2 ; case 29
- .short _0223C536 - _0223C4B6 - 2 ; case 30
- .short _0223C53A - _0223C4B6 - 2 ; case 31
- .short _0223C53A - _0223C4B6 - 2 ; case 32
- .short _0223C53A - _0223C4B6 - 2 ; case 33
- .short _0223C53A - _0223C4B6 - 2 ; case 34
- .short _0223C53A - _0223C4B6 - 2 ; case 35
- .short _0223C53A - _0223C4B6 - 2 ; case 36
- .short _0223C53A - _0223C4B6 - 2 ; case 37
- .short _0223C53A - _0223C4B6 - 2 ; case 38
- .short _0223C53A - _0223C4B6 - 2 ; case 39
- .short _0223C53A - _0223C4B6 - 2 ; case 40
- .short _0223C53A - _0223C4B6 - 2 ; case 41
- .short _0223C53A - _0223C4B6 - 2 ; case 42
- .short _0223C53A - _0223C4B6 - 2 ; case 43
- .short _0223C53A - _0223C4B6 - 2 ; case 44
- .short _0223C53A - _0223C4B6 - 2 ; case 45
- .short _0223C53A - _0223C4B6 - 2 ; case 46
- .short _0223C53A - _0223C4B6 - 2 ; case 47
- .short _0223C53A - _0223C4B6 - 2 ; case 48
- .short _0223C53A - _0223C4B6 - 2 ; case 49
- .short _0223C53A - _0223C4B6 - 2 ; case 50
- .short _0223C53A - _0223C4B6 - 2 ; case 51
- .short _0223C53E - _0223C4B6 - 2 ; case 52
- .short _0223C53E - _0223C4B6 - 2 ; case 53
- .short _0223C53E - _0223C4B6 - 2 ; case 54
- .short _0223C53E - _0223C4B6 - 2 ; case 55
- .short _0223C53E - _0223C4B6 - 2 ; case 56
- .short _0223C53E - _0223C4B6 - 2 ; case 57
- .short _0223C53E - _0223C4B6 - 2 ; case 58
- .short _0223C53E - _0223C4B6 - 2 ; case 59
- .short _0223C542 - _0223C4B6 - 2 ; case 60
-_0223C530:
- b _0223C544
-_0223C532:
- mov r6, #1
- b _0223C544
-_0223C536:
- mov r6, #2
- b _0223C544
-_0223C53A:
- mov r6, #3
- b _0223C544
-_0223C53E:
- mov r6, #4
- b _0223C544
-_0223C542:
- mov r6, #6
-_0223C544:
- mov r5, #0
- cmp r6, #0
- ble _0223C55A
-_0223C54A:
- add r0, r7, #0
- bl MOD11_0223A404
- str r0, [r4, #8]
- add r5, r5, #1
- add r4, r4, #4
- cmp r5, r6
- blt _0223C54A
-_0223C55A:
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0223C55C
-MOD11_0223C55C: ; 0x0223C55C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r2, #0
- ldr r2, [r4]
- add r5, r3, #0
- strh r2, [r5, #2]
- ldr r2, [r4, #4]
- add r7, r0, #0
- strb r2, [r5, #1]
- ldrb r2, [r5, #1]
- add r6, r1, #0
- cmp r2, #0x3c
- bls _0223C576
- b _0223CC58
-_0223C576:
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0223C582: ; jump table
- .short _0223CC58 - _0223C582 - 2 ; case 0
- .short _0223C5FC - _0223C582 - 2 ; case 1
- .short _0223C606 - _0223C582 - 2 ; case 2
- .short _0223C610 - _0223C582 - 2 ; case 3
- .short _0223C61C - _0223C582 - 2 ; case 4
- .short _0223C628 - _0223C582 - 2 ; case 5
- .short _0223C634 - _0223C582 - 2 ; case 6
- .short _0223C634 - _0223C582 - 2 ; case 7
- .short _0223C640 - _0223C582 - 2 ; case 8
- .short _0223C64A - _0223C582 - 2 ; case 9
- .short _0223C660 - _0223C582 - 2 ; case 10
- .short _0223C674 - _0223C582 - 2 ; case 11
- .short _0223C68A - _0223C582 - 2 ; case 12
- .short _0223C69E - _0223C582 - 2 ; case 13
- .short _0223C6B2 - _0223C582 - 2 ; case 14
- .short _0223C6C8 - _0223C582 - 2 ; case 15
- .short _0223C6DC - _0223C582 - 2 ; case 16
- .short _0223C6F0 - _0223C582 - 2 ; case 17
- .short _0223C704 - _0223C582 - 2 ; case 18
- .short _0223C71A - _0223C582 - 2 ; case 19
- .short _0223C728 - _0223C582 - 2 ; case 20
- .short _0223C740 - _0223C582 - 2 ; case 21
- .short _0223C758 - _0223C582 - 2 ; case 22
- .short _0223C76E - _0223C582 - 2 ; case 23
- .short _0223C784 - _0223C582 - 2 ; case 24
- .short _0223C79A - _0223C582 - 2 ; case 25
- .short _0223C7B0 - _0223C582 - 2 ; case 26
- .short _0223C7C6 - _0223C582 - 2 ; case 27
- .short _0223C7DC - _0223C582 - 2 ; case 28
- .short _0223C7F0 - _0223C582 - 2 ; case 29
- .short _0223C804 - _0223C582 - 2 ; case 30
- .short _0223C81A - _0223C582 - 2 ; case 31
- .short _0223C83A - _0223C582 - 2 ; case 32
- .short _0223C85C - _0223C582 - 2 ; case 33
- .short _0223C87C - _0223C582 - 2 ; case 34
- .short _0223C89A - _0223C582 - 2 ; case 35
- .short _0223C8B8 - _0223C582 - 2 ; case 36
- .short _0223C8DA - _0223C582 - 2 ; case 37
- .short _0223C8FA - _0223C582 - 2 ; case 38
- .short _0223C91A - _0223C582 - 2 ; case 39
- .short _0223C93A - _0223C582 - 2 ; case 40
- .short _0223C95A - _0223C582 - 2 ; case 41
- .short _0223C97A - _0223C582 - 2 ; case 42
- .short _0223C99A - _0223C582 - 2 ; case 43
- .short _0223C9BA - _0223C582 - 2 ; case 44
- .short _0223C9D8 - _0223C582 - 2 ; case 45
- .short _0223C9F6 - _0223C582 - 2 ; case 46
- .short _0223CA14 - _0223C582 - 2 ; case 47
- .short _0223CA26 - _0223C582 - 2 ; case 48
- .short _0223CA48 - _0223C582 - 2 ; case 49
- .short _0223CA6A - _0223C582 - 2 ; case 50
- .short _0223CA8C - _0223C582 - 2 ; case 51
- .short _0223CAAC - _0223C582 - 2 ; case 52
- .short _0223CAD8 - _0223C582 - 2 ; case 53
- .short _0223CB06 - _0223C582 - 2 ; case 54
- .short _0223CB32 - _0223C582 - 2 ; case 55
- .short _0223CB5C - _0223C582 - 2 ; case 56
- .short _0223CB8A - _0223C582 - 2 ; case 57
- .short _0223CBB8 - _0223C582 - 2 ; case 58
- .short _0223CBE6 - _0223C582 - 2 ; case 59
- .short _0223CC14 - _0223C582 - 2 ; case 60
-_0223C5FC:
- ldr r2, [r4, #8]
- bl MOD11_0223C230
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C606:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C610:
- ldr r1, [r4, #8]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C61C:
- ldr r1, [r4, #8]
- add r0, r6, #0
- bl MOD11_0223CD6C
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C628:
- ldr r1, [r4, #8]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C634:
- ldr r1, [r4, #8]
- add r0, r6, #0
- bl MOD11_0223CD20
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C640:
- ldr r2, [r4, #8]
- bl MOD11_0223CDBC
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C64A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C660:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C674:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C68A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CD6C
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C69E:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CD2C
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C6B2:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD84
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C6C8:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C6DC:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CD9C
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C6F0:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CD20
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C704:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C71A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r0, [r4, #0xc]
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C728:
- ldr r1, [r4, #8]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223C230
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C740:
- ldr r1, [r4, #8]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C758:
- ldr r1, [r4, #8]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C76E:
- ldr r2, [r4, #8]
- bl MOD11_0223CD38
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C784:
- ldr r1, [r4, #8]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C79A:
- ldr r1, [r4, #8]
- add r0, r6, #0
- bl MOD11_0223CD20
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CD20
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C7B0:
- ldr r2, [r4, #8]
- bl MOD11_0223CDBC
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C7C6:
- ldr r2, [r4, #8]
- bl MOD11_0223CDBC
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C7DC:
- ldr r2, [r4, #8]
- bl MOD11_0223CDBC
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C7F0:
- ldr r2, [r4, #8]
- bl MOD11_0223CDBC
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CD20
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C804:
- ldr r2, [r4, #8]
- bl MOD11_0223CDB4
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C81A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C83A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C85C:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C87C:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C89A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CD20
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C8B8:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C8DA:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C8FA:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C91A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CD6C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C93A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CD2C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C95A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CD78
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C97A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CD20
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C99A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C9BA:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C9D8:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CD6C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C9F6:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CD78
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CA14:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r0, [r4, #0xc]
- str r0, [r5, #8]
- ldr r0, [r4, #0x10]
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CA26:
- ldr r1, [r4, #8]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CDA8
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CA48:
- ldr r2, [r4, #8]
- bl MOD11_0223CDBC
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CA6A:
- ldr r2, [r4, #8]
- bl MOD11_0223CDB4
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CA8C:
- ldr r2, [r4, #8]
- bl MOD11_0223CDB4
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CAAC:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- ldr r1, [r4, #0x14]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CAD8:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- ldr r2, [r4, #0x14]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CB06:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- ldr r1, [r4, #0x14]
- add r0, r6, #0
- bl MOD11_0223CD6C
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CB32:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- ldr r1, [r4, #0x14]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CB5C:
- ldr r2, [r4, #8]
- bl MOD11_0223CDBC
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #0xc]
- ldr r2, [r4, #0x14]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CB8A:
- ldr r2, [r4, #8]
- bl MOD11_0223CDB4
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- ldr r2, [r4, #0x14]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CBB8:
- ldr r2, [r4, #8]
- bl MOD11_0223CDB4
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- ldr r2, [r4, #0x14]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CBE6:
- ldr r2, [r4, #8]
- bl MOD11_0223CDB4
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDB4
- str r0, [r5, #0xc]
- ldr r2, [r4, #0x14]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CC14:
- ldr r2, [r4, #8]
- bl MOD11_0223CDB4
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- ldr r2, [r4, #0x14]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDB4
- str r0, [r5, #0x10]
- ldr r2, [r4, #0x18]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #0x14]
- ldr r2, [r4, #0x1c]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0x18]
-_0223CC58:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223CC5C
-MOD11_0223CC5C: ; 0x0223CC5C
- push {r3, r4, r5, lr}
- add r5, r1, #0
- add r4, r2, #0
- bl MOD11_0223C230
- cmp r4, #0x16
- bne _0223CC76
- ldr r1, _0223CC84 ; =0x000021A0
- add r2, r5, r0
- ldrb r1, [r2, r1]
- lsl r1, r1, #8
- orr r0, r1
- pop {r3, r4, r5, pc}
-_0223CC76:
- ldr r1, _0223CC88 ; =0x0000219C
- add r2, r5, r0
- ldrb r1, [r2, r1]
- lsl r1, r1, #8
- orr r0, r1
- pop {r3, r4, r5, pc}
- nop
-_0223CC84: .word 0x000021A0
-_0223CC88: .word 0x0000219C
-
- thumb_func_start MOD11_0223CC8C
-MOD11_0223CC8C: ; 0x0223CC8C
- cmp r1, #1
- beq _0223CC96
- cmp r1, #0xff
- beq _0223CC9C
- bx lr
-_0223CC96:
- ldr r1, _0223CCA4 ; =0x00003044
- ldr r0, [r0, r1]
- bx lr
-_0223CC9C:
- mov r1, #0x49
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bx lr
- .align 2, 0
-_0223CCA4: .word 0x00003044
-
- thumb_func_start MOD11_0223CCA8
-MOD11_0223CCA8: ; 0x0223CCA8
- push {r4, lr}
- cmp r1, #0x15
- bgt _0223CCC0
- bge _0223CCF6
- cmp r1, #2
- bgt _0223CD18
- cmp r1, #1
- blt _0223CD18
- beq _0223CCC6
- cmp r1, #2
- beq _0223CCDE
- b _0223CD18
-_0223CCC0:
- cmp r1, #0xff
- beq _0223CD12
- b _0223CD18
-_0223CCC6:
- ldr r3, [r0, #0x64]
- mov r1, #0xc0
- mul r1, r3
- add r2, r0, r1
- ldr r1, _0223CD1C ; =0x00002DB8
- ldrh r4, [r2, r1]
- lsl r1, r3, #0x18
- lsr r1, r1, #0x18
- add r2, r4, #0
- bl MOD11_0223D1D0
- b _0223CD18
-_0223CCDE:
- ldr r3, [r0, #0x6c]
- mov r1, #0xc0
- mul r1, r3
- add r2, r0, r1
- ldr r1, _0223CD1C ; =0x00002DB8
- ldrh r4, [r2, r1]
- lsl r1, r3, #0x18
- lsr r1, r1, #0x18
- add r2, r4, #0
- bl MOD11_0223D1D0
- b _0223CD18
-_0223CCF6:
- mov r1, #0x46
- lsl r1, r1, #2
- ldr r3, [r0, r1]
- mov r1, #0xc0
- mul r1, r3
- add r2, r0, r1
- ldr r1, _0223CD1C ; =0x00002DB8
- ldrh r4, [r2, r1]
- lsl r1, r3, #0x18
- lsr r1, r1, #0x18
- add r2, r4, #0
- bl MOD11_0223D1D0
- b _0223CD18
-_0223CD12:
- mov r1, #0x4a
- lsl r1, r1, #2
- ldr r4, [r0, r1]
-_0223CD18:
- add r0, r4, #0
- pop {r4, pc}
- .align 2, 0
-_0223CD1C: .word 0x00002DB8
-
- thumb_func_start MOD11_0223CD20
-MOD11_0223CD20: ; 0x0223CD20
- cmp r1, #0xff
- bne _0223CD2A
- mov r1, #0x13
- lsl r1, r1, #4
- ldr r0, [r0, r1]
-_0223CD2A:
- bx lr
-
- thumb_func_start MOD11_0223CD2C
-MOD11_0223CD2C: ; 0x0223CD2C
- cmp r1, #0xff
- bne _0223CD36
- mov r1, #0x13
- lsl r1, r1, #4
- ldr r0, [r0, r1]
-_0223CD36:
- bx lr
-
- thumb_func_start MOD11_0223CD38
-MOD11_0223CD38: ; 0x0223CD38
- push {r3, r4, r5, lr}
- add r5, r1, #0
- cmp r2, #0xff
- bne _0223CD48
- mov r0, #0x4b
- lsl r0, r0, #2
- ldr r4, [r5, r0]
- b _0223CD64
-_0223CD48:
- bl MOD11_0223C230
- add r1, r0, #0
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _0223CD68 ; =0x00002D67
- lsl r1, r1, #0x18
- ldrb r4, [r2, r0]
- add r0, r5, #0
- lsr r1, r1, #0x18
- add r2, r4, #0
- bl MOD11_0223D1C4
-_0223CD64:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0223CD68: .word 0x00002D67
-
- thumb_func_start MOD11_0223CD6C
-MOD11_0223CD6C: ; 0x0223CD6C
- cmp r1, #0xff
- bne _0223CD76
- mov r1, #0x13
- lsl r1, r1, #4
- ldr r0, [r0, r1]
-_0223CD76:
- bx lr
-
- thumb_func_start MOD11_0223CD78
-MOD11_0223CD78: ; 0x0223CD78
- cmp r1, #0xff
- bne _0223CD82
- mov r1, #0x13
- lsl r1, r1, #4
- ldr r0, [r0, r1]
-_0223CD82:
- bx lr
-
- thumb_func_start MOD11_0223CD84
-MOD11_0223CD84: ; 0x0223CD84
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0223C230
- ldr r1, _0223CD98 ; =0x0000219C
- add r2, r4, r0
- ldrb r1, [r2, r1]
- lsl r1, r1, #8
- orr r0, r1
- pop {r4, pc}
- .align 2, 0
-_0223CD98: .word 0x0000219C
-
- thumb_func_start MOD11_0223CD9C
-MOD11_0223CD9C: ; 0x0223CD9C
- cmp r1, #0xff
- bne _0223CDA6
- mov r1, #0x13
- lsl r1, r1, #4
- ldr r0, [r0, r1]
-_0223CDA6:
- bx lr
-
- thumb_func_start MOD11_0223CDA8
-MOD11_0223CDA8: ; 0x0223CDA8
- cmp r1, #0xff
- bne _0223CDB2
- mov r1, #0x13
- lsl r1, r1, #4
- ldr r0, [r0, r1]
-_0223CDB2:
- bx lr
-
- thumb_func_start MOD11_0223CDB4
-MOD11_0223CDB4: ; 0x0223CDB4
- ldr r3, _0223CDB8 ; =MOD11_0223C230
- bx r3
- .align 2, 0
-_0223CDB8: .word MOD11_0223C230
-
- thumb_func_start MOD11_0223CDBC
-MOD11_0223CDBC: ; 0x0223CDBC
- ldr r3, _0223CDC0 ; =MOD11_0223C230
- bx r3
- .align 2, 0
-_0223CDC0: .word MOD11_0223C230
-
- thumb_func_start MOD11_0223CDC4
-MOD11_0223CDC4: ; 0x0223CDC4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x78
- add r7, r0, #0
- add r5, r1, #0
- str r2, [sp, #0x18]
- bl MOD11_022300C4
- str r0, [sp, #0x28]
- add r0, r7, #0
- bl MOD11_0223013C
- str r0, [sp, #0x20]
- add r0, r7, #0
- bl MOD11_02230138
- str r0, [sp, #0x24]
- add r0, r7, #0
- bl MOD11_0222FF68
- str r0, [sp, #0x1c]
- add r0, r7, #0
- bl MOD11_02230078
- add r6, r0, #0
- add r0, r7, #0
- bl MOD11_02230080
- add r4, r0, #0
- add r0, r7, #0
- bl MOD11_022300CC
- add r7, r0, #0
- mov r0, #1
- str r0, [sp]
- str r0, [sp, #4]
- ldr r0, _0223D03C ; =0x00004E31
- add r1, r4, #0
- str r0, [sp, #8]
- add r0, r6, #0
- mov r2, #0x1b
- mov r3, #0xc0
- bl FUN_0200C00C
- mov r0, #0x1b
- str r0, [sp]
- mov r0, #0x2e
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r1, #2
- str r1, [sp, #0xc]
- mov r0, #1
- str r0, [sp, #0x10]
- ldr r0, _0223D040 ; =0x00004E2C
- add r2, r6, #0
- str r0, [sp, #0x14]
- add r0, r7, #0
- add r3, r4, #0
- bl FUN_0200C0DC
- mov r0, #1
- str r0, [sp]
- ldr r0, _0223D044 ; =0x00004E29
- add r1, r4, #0
- str r0, [sp, #4]
- add r0, r6, #0
- mov r2, #0x1b
- mov r3, #0xc1
- bl FUN_0200C124
- mov r0, #1
- str r0, [sp]
- ldr r0, _0223D044 ; =0x00004E29
- add r1, r4, #0
- str r0, [sp, #4]
- add r0, r6, #0
- mov r2, #0x1b
- mov r3, #0xc2
- bl FUN_0200C13C
- ldr r2, _0223D048 ; =0x0225DD7C
- add r0, r6, #0
- add r1, r4, #0
- bl FUN_0200C154
- str r0, [r5, #0xc]
- bl FUN_0200C5A8
- ldr r0, [sp, #0x18]
- bl FUN_0206B6C8
- add r3, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #1
- str r0, [sp, #4]
- ldr r0, _0223D04C ; =0x00004E32
- add r1, r4, #0
- str r0, [sp, #8]
- add r0, r6, #0
- mov r2, #0x13
- bl FUN_0200C978
- bl FUN_0206B888
- mov r1, #0x13
- str r1, [sp]
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #3
- str r0, [sp, #0xc]
- mov r0, #1
- str r0, [sp, #0x10]
- ldr r0, _0223D050 ; =0x00004E2D
- mov r1, #2
- str r0, [sp, #0x14]
- add r0, r7, #0
- add r2, r6, #0
- add r3, r4, #0
- bl FUN_0200C0DC
- bl FUN_0206B894
- add r3, r0, #0
- mov r0, #0
- str r0, [sp]
- ldr r0, _0223D054 ; =0x00004E2A
- add r1, r4, #0
- str r0, [sp, #4]
- add r0, r6, #0
- mov r2, #0x13
- bl FUN_0200C124
- bl FUN_0206B8A0
- add r3, r0, #0
- mov r0, #0
- str r0, [sp]
- ldr r0, _0223D054 ; =0x00004E2A
- add r1, r4, #0
- str r0, [sp, #4]
- add r0, r6, #0
- mov r2, #0x13
- bl FUN_0200C13C
- ldr r2, _0223D058 ; =0x0225DDB0
- add r0, r6, #0
- add r1, r4, #0
- bl FUN_0200C154
- str r0, [r5, #0x10]
- ldr r0, [sp, #0x18]
- bl FUN_0206B87C
- add r1, r0, #0
- ldr r0, [r5, #0x10]
- ldr r0, [r0]
- bl FUN_020202DC
- ldr r0, [r5, #0x10]
- bl FUN_0200C5A8
- mov r0, #1
- mov r1, #5
- bl FUN_02011744
- str r0, [r5, #0x50]
- ldr r0, [sp, #0x18]
- mov r1, #0xaf
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0223CF26
- mov r0, #2
- b _0223CF30
-_0223CF26:
- ldr r0, [sp, #0x18]
- mov r1, #0x6f
- mov r2, #0
- bl GetMonData
-_0223CF30:
- cmp r0, #0
- bne _0223CF42
- mov r1, #0x3b
- ldr r0, [sp, #0x28]
- lsl r1, r1, #4
- bl FUN_0200A914
- add r6, r0, #0
- b _0223CF5C
-_0223CF42:
- cmp r0, #1
- bne _0223CF52
- ldr r0, [sp, #0x28]
- ldr r1, _0223D05C ; =0x000003B1
- bl FUN_0200A914
- add r6, r0, #0
- b _0223CF5C
-_0223CF52:
- ldr r0, [sp, #0x28]
- ldr r1, _0223D060 ; =0x000003B2
- bl FUN_0200A914
- add r6, r0, #0
-_0223CF5C:
- ldr r0, [sp, #0x18]
- bl FUN_020690E4
- add r2, r0, #0
- ldr r0, [sp, #0x24]
- mov r1, #0
- bl FUN_0200ACF8
- ldr r0, [sp, #0x18]
- mov r1, #0xa0
- mov r2, #0
- bl GetMonData
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r1, #1
- ldr r0, [sp, #0x24]
- mov r3, #3
- str r1, [sp, #4]
- bl FUN_0200AD38
- ldr r0, [sp, #0x24]
- ldr r1, [sp, #0x20]
- add r2, r6, #0
- bl FUN_0200B7B8
- add r0, r6, #0
- bl FUN_02021A20
- add r0, sp, #0x68
- bl FUN_0201901C
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- ldr r0, [sp, #0x1c]
- add r1, sp, #0x68
- mov r2, #0xc
- mov r3, #4
- bl FUN_020190EC
- mov r1, #0
- str r1, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- ldr r0, _0223D064 ; =0x00010200
- ldr r2, [sp, #0x20]
- str r0, [sp, #8]
- add r0, sp, #0x68
- add r3, r1, #0
- str r1, [sp, #0xc]
- bl FUN_0201BDE0
- add r0, sp, #0x68
- mov r1, #1
- mov r2, #5
- bl FUN_02011898
- mov r1, #1
- add r2, r1, #0
- add r3, sp, #0x5c
- bl FUN_0201D568
- ldr r0, [r5, #0x50]
- str r0, [sp, #0x2c]
- add r0, sp, #0x68
- str r0, [sp, #0x30]
- add r0, r4, #0
- bl FUN_0200CA40
- str r0, [sp, #0x34]
- ldr r1, _0223D040 ; =0x00004E2C
- add r0, r4, #0
- bl FUN_0200C334
- mov r1, #0
- str r0, [sp, #0x38]
- ldr r0, [sp, #0x60]
- str r1, [sp, #0x3c]
- str r0, [sp, #0x40]
- mov r0, #0xb0
- str r0, [sp, #0x44]
- mov r0, #8
- str r0, [sp, #0x48]
- mov r0, #0x64
- str r0, [sp, #0x50]
- mov r0, #1
- str r0, [sp, #0x54]
- mov r0, #5
- str r0, [sp, #0x58]
- add r0, sp, #0x2c
- str r1, [sp, #0x4c]
- bl FUN_020117E8
- add r2, r5, #0
- add r3, sp, #0x5c
- str r0, [r5, #0x14]
- ldmia r3!, {r0, r1}
- add r2, #0x18
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- mov r1, #1
- str r0, [r2]
- ldr r0, [r5, #0x14]
- bl FUN_02011AC0
- add r0, sp, #0x68
- bl FUN_02019178
- add sp, #0x78
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0223D03C: .word 0x00004E31
-_0223D040: .word 0x00004E2C
-_0223D044: .word 0x00004E29
-_0223D048: .word 0x0225DD7C
-_0223D04C: .word 0x00004E32
-_0223D050: .word 0x00004E2D
-_0223D054: .word 0x00004E2A
-_0223D058: .word 0x0225DDB0
-_0223D05C: .word 0x000003B1
-_0223D060: .word 0x000003B2
-_0223D064: .word 0x00010200
-
- thumb_func_start MOD11_0223D068
-MOD11_0223D068: ; 0x0223D068
- push {r3, r4, r5, lr}
- add r5, r1, #0
- bl MOD11_02230080
- add r4, r0, #0
- ldr r0, [r5, #0xc]
- bl FUN_0200C3DC
- ldr r0, [r5, #0x10]
- bl FUN_0200C3DC
- ldr r0, [r5, #0x14]
- bl FUN_02011870
- add r0, r5, #0
- add r0, #0x18
- bl FUN_0201D5E8
- ldr r1, _0223D0D4 ; =0x00004E31
- add r0, r4, #0
- bl FUN_0200C358
- ldr r1, _0223D0D8 ; =0x00004E2C
- add r0, r4, #0
- bl FUN_0200C368
- ldr r1, _0223D0DC ; =0x00004E29
- add r0, r4, #0
- bl FUN_0200C378
- ldr r1, _0223D0DC ; =0x00004E29
- add r0, r4, #0
- bl FUN_0200C388
- ldr r1, _0223D0E0 ; =0x00004E32
- add r0, r4, #0
- bl FUN_0200C358
- ldr r1, _0223D0E4 ; =0x00004E2D
- add r0, r4, #0
- bl FUN_0200C368
- ldr r1, _0223D0E8 ; =0x00004E2A
- add r0, r4, #0
- bl FUN_0200C378
- ldr r1, _0223D0E8 ; =0x00004E2A
- add r0, r4, #0
- bl FUN_0200C388
- ldr r0, [r5, #0x50]
- bl FUN_020117BC
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0223D0D4: .word 0x00004E31
-_0223D0D8: .word 0x00004E2C
-_0223D0DC: .word 0x00004E29
-_0223D0E0: .word 0x00004E32
-_0223D0E4: .word 0x00004E2D
-_0223D0E8: .word 0x00004E2A
-
- thumb_func_start MOD11_0223D0EC
-MOD11_0223D0EC: ; 0x0223D0EC
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r1, r2, #0
- add r5, r0, #0
- str r2, [sp]
- bl MOD11_02230270
- cmp r0, #0
- bne _0223D1B8
- add r0, r5, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _0223D13C
- add r0, r5, #0
- mov r1, #3
- bl MOD11_0223022C
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- add r0, r5, #0
- mov r1, #5
- bl MOD11_0223022C
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- mov r2, #0xc0
- add r0, r1, #0
- mul r0, r2
- mul r2, r6
- ldr r3, _0223D1BC ; =0x00002D74
- add r0, r4, r0
- add r2, r4, r2
- ldrb r0, [r0, r3]
- ldrb r2, [r2, r3]
- cmp r0, r2
- bls _0223D148
- add r6, r1, #0
- b _0223D148
-_0223D13C:
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223022C
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
-_0223D148:
- ldr r1, [sp]
- add r0, r5, #0
- add r2, r1, #0
- add r3, r4, r2
- ldr r2, _0223D1C0 ; =0x0000219C
- ldrb r2, [r3, r2]
- bl MOD11_02230014
- add r7, r0, #0
- ldr r0, [sp]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- add r0, r4, r2
- ldr r2, _0223D1BC ; =0x00002D74
- mul r1, r6
- add r1, r4, r1
- ldrb r0, [r0, r2]
- ldrb r1, [r1, r2]
- cmp r1, r0
- bls _0223D1A4
- sub r0, r1, r0
- cmp r0, #0x1e
- blt _0223D18E
- add r0, r5, #0
- bl MOD11_022302B0
- add r2, r0, #0
- lsl r2, r2, #0x10
- add r0, r7, #0
- mov r1, #8
- lsr r2, r2, #0x10
- bl MonApplyFriendshipMod
- pop {r3, r4, r5, r6, r7, pc}
-_0223D18E:
- add r0, r5, #0
- bl MOD11_022302B0
- add r2, r0, #0
- lsl r2, r2, #0x10
- add r0, r7, #0
- mov r1, #6
- lsr r2, r2, #0x10
- bl MonApplyFriendshipMod
- pop {r3, r4, r5, r6, r7, pc}
-_0223D1A4:
- add r0, r5, #0
- bl MOD11_022302B0
- add r2, r0, #0
- lsl r2, r2, #0x10
- add r0, r7, #0
- mov r1, #6
- lsr r2, r2, #0x10
- bl MonApplyFriendshipMod
-_0223D1B8:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223D1BC: .word 0x00002D74
-_0223D1C0: .word 0x0000219C
-
- thumb_func_start MOD11_0223D1C4
-MOD11_0223D1C4: ; 0x0223D1C4
- add r1, r0, r1
- mov r0, #0x39
- lsl r0, r0, #4
- strb r2, [r1, r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0223D1D0
-MOD11_0223D1D0: ; 0x0223D1D0
- lsl r1, r1, #1
- add r1, r0, r1
- mov r0, #0xe5
- lsl r0, r0, #2
- strh r2, [r1, r0]
- bx lr
-
- thumb_func_start MOD11_0223D1DC
-MOD11_0223D1DC: ; 0x0223D1DC
- push {r3, r4, r5, lr}
- ldr r1, _0223D22C ; =0x0000314C
- add r5, r0, #0
- mov r0, #5
- bl AllocFromHeap
- add r4, r0, #0
- ldr r2, _0223D22C ; =0x0000314C
- mov r0, #0
- add r1, r4, #0
- bl MIi_CpuClearFast
- add r0, r4, #0
- bl MOD11_02245494
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02245588
- bl FUN_02033590
- cmp r0, #0
- bne _0223D216
- mov r2, #0
- add r0, r5, #0
- add r1, r4, #0
- add r3, r2, #0
- bl MOD16_021EFBF4
-_0223D216:
- ldr r0, _0223D230 ; =0x000003DE
- add r0, r4, r0
- bl LoadAllWazaTbl
- mov r0, #5
- bl FUN_0206EB50
- ldr r1, _0223D234 ; =0x00002120
- str r0, [r4, r1]
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0223D22C: .word 0x0000314C
-_0223D230: .word 0x000003DE
-_0223D234: .word 0x00002120
-
- thumb_func_start MOD11_0223D238
-MOD11_0223D238: ; 0x0223D238
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldr r1, _0223D27C ; =0x0000311F
- add r5, r0, #0
- ldrb r1, [r4, r1]
- cmp r1, #0
- bne _0223D25E
- bl MOD11_0223145C
- cmp r0, #0
- beq _0223D25E
- add r0, r5, #0
- bl MOD11_0223145C
- mov r1, #0x40
- tst r0, r1
- bne _0223D25E
- mov r0, #0x29
- str r0, [r4, #8]
-_0223D25E:
- ldr r2, [r4, #8]
- add r0, r5, #0
- lsl r3, r2, #2
- ldr r2, _0223D280 ; =0x0225E194
- add r1, r4, #0
- ldr r2, [r2, r3]
- blx r2
- ldr r0, [r4, #8]
- cmp r0, #0x2b
- bne _0223D276
- mov r0, #1
- pop {r3, r4, r5, pc}
-_0223D276:
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_0223D27C: .word 0x0000311F
-_0223D280: .word 0x0225E194
-
- thumb_func_start MOD11_0223D284
-MOD11_0223D284: ; 0x0223D284
- push {r4, lr}
- add r4, r0, #0
- ldr r0, _0223D298 ; =0x00002120
- ldr r0, [r4, r0]
- bl FreeToHeap
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
- .align 2, 0
-_0223D298: .word 0x00002120
-
- thumb_func_start MOD11_0223D29C
-MOD11_0223D29C: ; 0x0223D29C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- ldr r6, [sp, #0x20]
- add r5, r0, #0
- add r4, r1, #0
- add r7, r2, #0
- str r3, [sp, #4]
- str r6, [sp]
- bl MOD11_0224053C
- ldr r0, [sp, #0x20]
- ldr r3, [sp, #4]
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD11_02240890
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0223D2C4
-MOD11_0223D2C4: ; 0x0223D2C4
- push {r3, r4, r5, r6, r7, lr}
- str r0, [sp]
- add r5, r1, #0
- bl MOD11_0222FF84
- add r7, r0, #0
- mov r4, #0
- cmp r7, #0
- ble _0223D2EC
-_0223D2D6:
- ldr r3, _0223D2FC ; =0x0000219C
- add r6, r5, r4
- ldrb r3, [r6, r3]
- ldr r0, [sp]
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_02242B78
- add r4, r4, #1
- cmp r4, r7
- blt _0223D2D6
-_0223D2EC:
- ldr r0, _0223D300 ; =0x00002E4C
- ldr r1, [r5, r0]
- ldr r0, _0223D304 ; =0x00003122
- strh r1, [r5, r0]
- mov r0, #1
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223D2FC: .word 0x0000219C
-_0223D300: .word 0x00002E4C
-_0223D304: .word 0x00003122
-
- thumb_func_start MOD11_0223D308
-MOD11_0223D308: ; 0x0223D308
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- mov r2, #0
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #2
- str r0, [r4, #0xc]
- pop {r4, pc}
-
- thumb_func_start MOD11_0223D320
-MOD11_0223D320: ; 0x0223D320
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_0224529C
- cmp r0, #0
- beq _0223D342
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x29
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #3
- str r0, [r4, #0xc]
- b _0223D346
-_0223D342:
- mov r0, #3
- str r0, [r4, #8]
-_0223D346:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224728C
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0223D350
-MOD11_0223D350: ; 0x0223D350
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_022476DC
- add r2, r0, #0
- beq _0223D370
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_0223D370:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224728C
- mov r0, #4
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223D380
-MOD11_0223D380: ; 0x0223D380
- push {r3, r4, r5, r6, r7, lr}
- str r0, [sp]
- add r4, r1, #0
- bl MOD11_0222FF84
- add r5, r0, #0
- mov r3, #0
- cmp r5, #0
- ble _0223D3AA
- mov r7, #0xb7
- lsl r7, r7, #6
- add r6, r4, #0
- add r2, r3, #0
- add r0, r7, #4
-_0223D39C:
- strb r2, [r4, r3]
- ldr r1, [r6, r7]
- add r3, r3, #1
- str r1, [r6, r0]
- add r6, #0xc0
- cmp r3, r5
- blt _0223D39C
-_0223D3AA:
- ldr r0, [sp]
- mov r1, #0
- bl MOD11_022312AC
- mov r0, #5
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0223D3B8
-MOD11_0223D3B8: ; 0x0223D3B8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0xb8
- add r7, r0, #0
- add r6, r1, #0
- bl MOD11_0222FF84
- str r0, [sp, #0x64]
- add r0, r7, #0
- bl MOD11_0222FF74
- str r0, [sp, #0x24]
- mov r4, #0
- ldr r0, [sp, #0x64]
- str r4, [sp, #0x60]
- cmp r0, #0
- bgt _0223D3DA
- b _0223DB58
-_0223D3DA:
- mov r0, #0x75
- lsl r0, r0, #2
- add r0, r6, r0
- str r0, [sp, #0x50]
- ldr r0, _0223D710 ; =0x000021AC
- mov r1, #2
- add r0, r6, r0
- str r0, [sp, #0x40]
- mov r0, #0x23
- lsl r0, r0, #8
- add r0, r6, r0
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x24]
- str r6, [sp, #0x54]
- and r0, r1
- str r0, [sp, #0x38]
- ldr r0, [sp, #0x24]
- mov r1, #8
- and r0, r1
- str r0, [sp, #0x34]
- ldr r0, [sp, #0x24]
- lsl r1, r1, #6
- and r0, r1
- str r0, [sp, #0x30]
- ldr r0, [sp, #0x24]
- mov r1, #0x20
- and r0, r1
- str r0, [sp, #0x2c]
- ldr r0, [sp, #0x24]
- mov r1, #4
- and r0, r1
- str r0, [sp, #0x28]
- ldr r0, [sp, #0x24]
- mov r1, #0x80
- and r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x24]
- mov r1, #1
- and r0, r1
- str r6, [sp, #0x4c]
- str r6, [sp, #0x48]
- str r6, [sp, #0x44]
- str r0, [sp, #0x1c]
-_0223D430:
- ldrb r0, [r6, r4]
- add r5, r6, r4
- cmp r0, #0x10
- bhi _0223D50A
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223D444: ; jump table
- .short _0223D466 - _0223D444 - 2 ; case 0
- .short _0223D4DA - _0223D444 - 2 ; case 1
- .short _0223D6EE - _0223D444 - 2 ; case 2
- .short _0223D6FC - _0223D444 - 2 ; case 3
- .short _0223D7DA - _0223D444 - 2 ; case 4
- .short _0223D814 - _0223D444 - 2 ; case 5
- .short _0223D848 - _0223D444 - 2 ; case 6
- .short _0223D856 - _0223D444 - 2 ; case 7
- .short _0223D884 - _0223D444 - 2 ; case 8
- .short _0223D8FC - _0223D444 - 2 ; case 9
- .short _0223D93C - _0223D444 - 2 ; case 10
- .short _0223D9F8 - _0223D444 - 2 ; case 11
- .short _0223DA46 - _0223D444 - 2 ; case 12
- .short _0223DA94 - _0223D444 - 2 ; case 13
- .short _0223DA9C - _0223D444 - 2 ; case 14
- .short _0223DAB6 - _0223D444 - 2 ; case 15
- .short _0223DB14 - _0223D444 - 2 ; case 16
-_0223D466:
- ldr r0, [sp, #0x38]
- cmp r0, #0
- beq _0223D486
- ldr r0, [sp, #0x34]
- cmp r0, #0
- bne _0223D486
- cmp r4, #2
- bne _0223D47C
- ldrb r0, [r6]
- cmp r0, #0xd
- bne _0223D50A
-_0223D47C:
- cmp r4, #3
- bne _0223D486
- ldrb r0, [r6, #1]
- cmp r0, #0xd
- bne _0223D50A
-_0223D486:
- add r0, r4, #0
- bl MaskOfFlagNo
- ldr r1, _0223D714 ; =0x00003108
- ldrb r1, [r6, r1]
- tst r0, r1
- beq _0223D4A2
- mov r0, #0xc
- strb r0, [r5]
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0x27
- str r2, [r0, r1]
- b _0223DB20
-_0223D4A2:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD04
- cmp r0, #0
- bne _0223D4C8
- ldr r0, [sp, #0x50]
- mov r2, #0xd
- ldr r1, [r0]
- mov r0, #2
- orr r1, r0
- ldr r0, [sp, #0x50]
- str r1, [r0]
- mov r0, #0xc
- strb r0, [r5]
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- str r2, [r0, r1]
- b _0223DB20
-_0223D4C8:
- ldr r3, _0223D71C ; =0x0000219C
- add r0, r7, #0
- ldrb r3, [r5, r3]
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_02255188
- mov r0, #1
- strb r0, [r5]
-_0223D4DA:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0
- beq _0223D50A
- mov r1, #0x23
- ldr r0, [sp, #0x4c]
- lsl r1, r1, #8
- ldrb r2, [r0, r1]
- ldr r1, _0223D720 ; =0x000021B4
- ldr r0, [sp, #0x54]
- str r2, [r0, r1]
- ldr r0, [sp, #0x30]
- cmp r0, #0
- beq _0223D52E
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #1
- beq _0223D50C
- cmp r0, #4
- beq _0223D51E
-_0223D50A:
- b _0223DB20
-_0223D50C:
- mov r0, #0x10
- strb r0, [r5]
- mov r0, #0xc
- strb r0, [r5, #4]
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0x11
- str r2, [r0, r1]
- b _0223DB20
-_0223D51E:
- mov r0, #0x10
- strb r0, [r5]
- mov r1, #0xc
- strb r1, [r5, #4]
- ldr r2, _0223D718 ; =0x000021A8
- ldr r1, [sp, #0x54]
- str r0, [r1, r2]
- b _0223DB20
-_0223D52E:
- ldr r0, [sp, #0x2c]
- cmp r0, #0
- beq _0223D5B0
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #5
- bhi _0223D5DA
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223D54C: ; jump table
- .short _0223DB20 - _0223D54C - 2 ; case 0
- .short _0223D558 - _0223D54C - 2 ; case 1
- .short _0223D56A - _0223D54C - 2 ; case 2
- .short _0223D57C - _0223D54C - 2 ; case 3
- .short _0223D58E - _0223D54C - 2 ; case 4
- .short _0223D59E - _0223D54C - 2 ; case 5
-_0223D558:
- mov r0, #0x10
- strb r0, [r5]
- mov r0, #0xc
- strb r0, [r5, #4]
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0x11
- str r2, [r0, r1]
- b _0223DB20
-_0223D56A:
- mov r0, #0x10
- strb r0, [r5]
- mov r0, #0xc
- strb r0, [r5, #4]
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0x12
- str r2, [r0, r1]
- b _0223DB20
-_0223D57C:
- mov r0, #0x10
- strb r0, [r5]
- mov r0, #0xc
- strb r0, [r5, #4]
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0x13
- str r2, [r0, r1]
- b _0223DB20
-_0223D58E:
- mov r0, #0x10
- strb r0, [r5]
- mov r1, #0xc
- strb r1, [r5, #4]
- ldr r2, _0223D718 ; =0x000021A8
- ldr r1, [sp, #0x54]
- str r0, [r1, r2]
- b _0223DB20
-_0223D59E:
- mov r0, #0x10
- strb r0, [r5]
- mov r0, #0xc
- strb r0, [r5]
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0x14
- str r2, [r0, r1]
- b _0223DB20
-_0223D5B0:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #4
- bgt _0223D5D6
- cmp r0, #0
- blt _0223D5DA
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0223D5CC: ; jump table
- .short _0223DB20 - _0223D5CC - 2 ; case 0
- .short _0223D5DC - _0223D5CC - 2 ; case 1
- .short _0223D63C - _0223D5CC - 2 ; case 2
- .short _0223D698 - _0223D5CC - 2 ; case 3
- .short _0223D6A6 - _0223D5CC - 2 ; case 4
-_0223D5D6:
- cmp r0, #0xff
- beq _0223D6B4
-_0223D5DA:
- b _0223DB20
-_0223D5DC:
- mov r0, #0
- mvn r0, r0
- str r0, [sp]
- add r0, r7, #0
- add r1, r6, #0
- add r2, r4, #0
- mov r3, #0
- bl MOD11_02245D38
- cmp r0, #0xf
- bne _0223D5FC
- mov r0, #0x10
- strb r0, [r5]
- mov r0, #0xf
- strb r0, [r5, #4]
- b _0223D632
-_0223D5FC:
- ldr r3, _0223D724 ; =0x00002DEC
- ldr r0, [sp, #0x48]
- ldrh r0, [r0, r3]
- cmp r0, #0
- beq _0223D62E
- ldr r0, [sp, #0x48]
- add r1, r3, #2
- ldrh r1, [r0, r1]
- ldr r2, _0223D728 ; =0x000030BC
- ldr r0, [sp, #0x44]
- strh r1, [r0, r2]
- ldr r0, [sp, #0x48]
- sub r2, #8
- ldrh r1, [r0, r3]
- ldr r0, [sp, #0x44]
- strh r1, [r0, r2]
- ldr r1, _0223D72C ; =0x000021B0
- ldr r0, [sp, #0x54]
- mov r2, #0
- str r2, [r0, r1]
- mov r0, #0x10
- strb r0, [r5]
- mov r0, #0xc
- strb r0, [r5, #4]
- b _0223D632
-_0223D62E:
- mov r0, #2
- strb r0, [r5]
-_0223D632:
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0xd
- str r2, [r0, r1]
- b _0223DB20
-_0223D63C:
- add r0, r7, #0
- bl MOD11_0222FF74
- mov r1, #0x84
- tst r0, r1
- beq _0223D68A
- ldr r1, _0223D730 ; =0x00000251
- add r0, sp, #0x90
- strh r1, [r0, #6]
- mov r1, #0
- strb r1, [r0, #5]
- mov r0, sp
- str r0, [sp, #0x68]
- sub r0, #8
- str r0, [sp, #0x68]
- add r3, r0, #0
- mov r0, #4
- add r2, sp, #0x94
- str r0, [sp, #0x6c]
-_0223D662:
- ldmia r2!, {r0, r1}
- stmia r3!, {r0, r1}
- ldr r0, [sp, #0x6c]
- sub r0, r0, #1
- str r0, [sp, #0x6c]
- bne _0223D662
- ldr r0, [r2]
- add r1, r4, #0
- str r0, [r3]
- ldr r0, [sp, #0x68]
- ldmia r0!, {r2, r3}
- str r0, [sp, #0x68]
- add r0, r7, #0
- bl MOD11_02255FBC
- mov r0, #0xe
- strb r0, [r5]
- mov r0, #0
- strb r0, [r5, #4]
- b _0223DB20
-_0223D68A:
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0xe
- str r2, [r0, r1]
- mov r0, #6
- strb r0, [r5]
- b _0223DB20
-_0223D698:
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0xf
- str r2, [r0, r1]
- mov r0, #8
- strb r0, [r5]
- b _0223DB20
-_0223D6A6:
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0x10
- str r2, [r0, r1]
- mov r0, #0xa
- strb r0, [r5]
- b _0223DB20
-_0223D6B4:
- ldr r0, [sp, #0x28]
- cmp r0, #0
- beq _0223D6D4
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02256268
- mov r0, #0
- strb r0, [r5]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_022302BC
- mov r1, #0
- strb r1, [r6, r0]
- b _0223DB20
-_0223D6D4:
- ldr r0, [sp, #0x38]
- cmp r0, #0
- beq _0223D740
- cmp r4, #2
- bne _0223D740
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02256268
- mov r0, #0
- strb r0, [r6]
- strb r0, [r6, #2]
- b _0223DB20
-_0223D6EE:
- add r0, r7, #0
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_02255544
- mov r0, #3
- strb r0, [r5]
-_0223D6FC:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0xff
- bne _0223D734
- mov r0, #0
- strb r0, [r5]
- b _0223DB20
- nop
-_0223D710: .word 0x000021AC
-_0223D714: .word 0x00003108
-_0223D718: .word 0x000021A8
-_0223D71C: .word 0x0000219C
-_0223D720: .word 0x000021B4
-_0223D724: .word 0x00002DEC
-_0223D728: .word 0x000030BC
-_0223D72C: .word 0x000021B0
-_0223D730: .word 0x00000251
-_0223D734:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0
- bne _0223D742
-_0223D740:
- b _0223DB20
-_0223D742:
- mov r1, #0x23
- ldr r0, [sp, #0x4c]
- lsl r1, r1, #8
- ldrb r0, [r0, r1]
- sub r3, r0, #1
- cmp r3, #4
- bne _0223D75E
- ldr r1, _0223DA6C ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0x10
- str r2, [r0, r1]
- mov r0, #0xa
- strb r0, [r5]
- b _0223DB20
-_0223D75E:
- add r0, sp, #0x94
- str r0, [sp]
- add r0, r7, #0
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_02245F74
- cmp r0, #0
- bne _0223D7A8
- mov r0, sp
- str r0, [sp, #0x70]
- sub r0, #8
- str r0, [sp, #0x70]
- add r3, r0, #0
- mov r0, #4
- add r2, sp, #0x94
- str r0, [sp, #0x74]
-_0223D780:
- ldmia r2!, {r0, r1}
- stmia r3!, {r0, r1}
- ldr r0, [sp, #0x74]
- sub r0, r0, #1
- str r0, [sp, #0x74]
- bne _0223D780
- ldr r0, [r2]
- add r1, r4, #0
- str r0, [r3]
- ldr r0, [sp, #0x70]
- ldmia r0!, {r2, r3}
- str r0, [sp, #0x70]
- add r0, r7, #0
- bl MOD11_02255FBC
- mov r0, #0xe
- strb r0, [r5]
- mov r0, #2
- strb r0, [r5, #4]
- b _0223DB20
-_0223D7A8:
- mov r3, #0x23
- ldr r0, [sp, #0x4c]
- lsl r3, r3, #8
- ldrb r2, [r0, r3]
- ldr r1, _0223DA70 ; =0x000021B0
- ldr r0, [sp, #0x54]
- str r2, [r0, r1]
- ldr r0, [sp, #0x4c]
- ldr r2, _0223DA74 ; =0x000030BC
- ldrb r0, [r0, r3]
- sub r1, r0, #1
- ldr r0, [sp, #0x44]
- strh r1, [r0, r2]
- ldrh r0, [r0, r2]
- sub r2, #8
- lsl r1, r0, #1
- ldr r0, [sp, #0x48]
- add r1, r0, r1
- ldr r0, _0223DA78 ; =0x00002D4C
- ldrh r1, [r1, r0]
- ldr r0, [sp, #0x44]
- strh r1, [r0, r2]
- mov r0, #4
- strb r0, [r5]
- b _0223DB20
-_0223D7DA:
- add r0, sp, #0x90
- str r0, [sp]
- ldr r1, _0223DA74 ; =0x000030BC
- ldr r0, [sp, #0x44]
- lsl r2, r4, #0x18
- ldrh r0, [r0, r1]
- ldr r3, [sp, #0x24]
- add r1, r6, #0
- str r0, [sp, #4]
- ldr r0, [sp, #0x40]
- lsr r2, r2, #0x18
- str r0, [sp, #8]
- add r0, r7, #0
- bl MOD11_0224235C
- cmp r0, #0
- beq _0223D80E
- ldr r2, [sp, #0x90]
- add r0, r7, #0
- add r1, r6, #0
- add r3, r4, #0
- bl MOD11_02255600
- mov r0, #5
- strb r0, [r5]
- b _0223DB20
-_0223D80E:
- mov r0, #0xc
- strb r0, [r5]
- b _0223DB20
-_0223D814:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0xff
- bne _0223D826
- mov r0, #2
- strb r0, [r5]
- b _0223DB20
-_0223D826:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0
- beq _0223D91A
- mov r1, #0x23
- ldr r0, [sp, #0x4c]
- lsl r1, r1, #8
- ldrb r0, [r0, r1]
- ldr r1, _0223DA7C ; =0x000021AC
- sub r2, r0, #1
- ldr r0, [sp, #0x54]
- str r2, [r0, r1]
- mov r0, #0xc
- strb r0, [r5]
- b _0223DB20
-_0223D848:
- add r0, r7, #0
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_0225573C
- mov r0, #7
- strb r0, [r5]
-_0223D856:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0xff
- bne _0223D868
- mov r0, #0
- strb r0, [r5]
- b _0223DB20
-_0223D868:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0
- beq _0223D91A
- ldr r0, [sp, #0x3c]
- ldr r1, _0223DA70 ; =0x000021B0
- ldr r2, [r0]
- ldr r0, [sp, #0x54]
- str r2, [r0, r1]
- mov r0, #0xc
- strb r0, [r5]
- b _0223DB20
-_0223D884:
- mov r0, #6
- str r0, [sp, #0x58]
- add r0, r7, #0
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_02249E80
- str r0, [sp, #0x5c]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02230260
- cmp r0, #4
- beq _0223D8AC
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02230260
- cmp r0, #5
- bne _0223D8E4
-_0223D8AC:
- ldr r0, [sp, #0x24]
- cmp r0, #3
- beq _0223D8CA
- cmp r0, #7
- beq _0223D8CA
- cmp r0, #0x83
- beq _0223D8CA
- cmp r0, #0x13
- bne _0223D8E4
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02230260
- cmp r0, #4
- bne _0223D8E4
-_0223D8CA:
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_022302BC
- lsl r0, r0, #4
- add r2, r6, r0
- ldr r0, _0223DA6C ; =0x000021A8
- ldr r1, [r2, r0]
- cmp r1, #0xf
- bne _0223D8E4
- add r0, #8
- ldr r0, [r2, r0]
- str r0, [sp, #0x58]
-_0223D8E4:
- ldr r0, [sp, #0x5c]
- add r1, r6, #0
- str r0, [sp]
- ldr r0, [sp, #0x58]
- add r2, r4, #0
- str r0, [sp, #4]
- add r0, r7, #0
- mov r3, #0
- bl MOD11_022558E0
- mov r0, #9
- strb r0, [r5]
-_0223D8FC:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0xff
- bne _0223D90E
- mov r0, #0
- strb r0, [r5]
- b _0223DB20
-_0223D90E:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0
- bne _0223D91C
-_0223D91A:
- b _0223DB20
-_0223D91C:
- mov r3, #0x23
- ldr r0, [sp, #0x4c]
- lsl r3, r3, #8
- ldrb r0, [r0, r3]
- ldr r2, _0223DA70 ; =0x000021B0
- sub r1, r0, #1
- ldr r0, [sp, #0x54]
- str r1, [r0, r2]
- ldr r0, [sp, #0x4c]
- sub r2, #0x10
- ldrb r0, [r0, r3]
- sub r0, r0, #1
- strb r0, [r5, r2]
- mov r0, #0xc
- strb r0, [r5]
- b _0223DB20
-_0223D93C:
- ldr r0, [sp, #0x20]
- cmp r0, #0
- beq _0223D95C
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- ldr r3, _0223DA80 ; =0x000003BB
- add r0, r7, #0
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_02255980
- mov r0, #0xb
- strb r0, [r5]
- b _0223DB20
-_0223D95C:
- ldr r0, [sp, #0x1c]
- cmp r0, #0
- beq _0223D9AA
- ldr r0, [sp, #0x28]
- cmp r0, #0
- bne _0223D9AA
- mov r1, #0
- add r0, sp, #0x90
- strb r1, [r0, #5]
- ldr r1, _0223DA84 ; =0x00000319
- add r2, sp, #0x94
- strh r1, [r0, #6]
- mov r0, sp
- str r0, [sp, #0x78]
- sub r0, #8
- str r0, [sp, #0x78]
- add r3, r0, #0
- mov r0, #4
- str r0, [sp, #0x7c]
-_0223D982:
- ldmia r2!, {r0, r1}
- stmia r3!, {r0, r1}
- ldr r0, [sp, #0x7c]
- sub r0, r0, #1
- str r0, [sp, #0x7c]
- bne _0223D982
- ldr r0, [r2]
- add r1, r4, #0
- str r0, [r3]
- ldr r0, [sp, #0x78]
- ldmia r0!, {r2, r3}
- str r0, [sp, #0x78]
- add r0, r7, #0
- bl MOD11_02255FBC
- mov r0, #0xe
- strb r0, [r5]
- mov r0, #0
- strb r0, [r5, #4]
- b _0223DB20
-_0223D9AA:
- add r0, r7, #0
- add r1, r6, #0
- add r2, r4, #0
- add r3, sp, #0x94
- bl MOD11_02246ED0
- cmp r0, #0
- beq _0223D9F2
- mov r0, sp
- str r0, [sp, #0x80]
- sub r0, #8
- str r0, [sp, #0x80]
- add r3, r0, #0
- mov r0, #4
- add r2, sp, #0x94
- str r0, [sp, #0x84]
-_0223D9CA:
- ldmia r2!, {r0, r1}
- stmia r3!, {r0, r1}
- ldr r0, [sp, #0x84]
- sub r0, r0, #1
- str r0, [sp, #0x84]
- bne _0223D9CA
- ldr r0, [r2]
- add r1, r4, #0
- str r0, [r3]
- ldr r0, [sp, #0x80]
- ldmia r0!, {r2, r3}
- str r0, [sp, #0x80]
- add r0, r7, #0
- bl MOD11_02255FBC
- mov r0, #0xe
- strb r0, [r5]
- mov r0, #0
- strb r0, [r5, #4]
- b _0223DB20
-_0223D9F2:
- mov r0, #0xb
- strb r0, [r5]
- b _0223DB20
-_0223D9F8:
- ldr r0, [sp, #0x20]
- cmp r0, #0
- beq _0223DA22
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0
- beq _0223DA26
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0xff
- bne _0223DA1C
- mov r0, #0
- strb r0, [r5]
- b _0223DA26
-_0223DA1C:
- mov r0, #0xc
- strb r0, [r5]
- b _0223DA26
-_0223DA22:
- mov r0, #0xc
- strb r0, [r5]
-_0223DA26:
- ldr r0, [sp, #0x38]
- cmp r0, #0
- beq _0223DB20
- ldr r0, [sp, #0x34]
- cmp r0, #0
- bne _0223DB20
- ldrb r0, [r5]
- cmp r0, #0xc
- bne _0223DB20
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_022302BC
- mov r1, #0xc
- strb r1, [r6, r0]
- b _0223DB20
-_0223DA46:
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02256268
- ldr r0, [sp, #0x24]
- cmp r0, #7
- bne _0223DA88
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_022302BC
- ldrb r0, [r6, r0]
- cmp r0, #0xd
- bne _0223DA90
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_022564CC
- b _0223DA90
- .align 2, 0
-_0223DA6C: .word 0x000021A8
-_0223DA70: .word 0x000021B0
-_0223DA74: .word 0x000030BC
-_0223DA78: .word 0x00002D4C
-_0223DA7C: .word 0x000021AC
-_0223DA80: .word 0x000003BB
-_0223DA84: .word 0x00000319
-_0223DA88:
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_022564CC
-_0223DA90:
- mov r0, #0xd
- strb r0, [r5]
-_0223DA94:
- ldr r0, [sp, #0x60]
- add r0, r0, #1
- str r0, [sp, #0x60]
- b _0223DB20
-_0223DA9C:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0
- beq _0223DB20
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_02243400
- ldrb r0, [r5, #4]
- strb r0, [r5]
- b _0223DB20
-_0223DAB6:
- mov r1, #2
- add r0, sp, #0x90
- strb r1, [r0, #5]
- mov r1, #0x26
- lsl r1, r1, #4
- strh r1, [r0, #6]
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224682C
- str r0, [sp, #0x98]
- mov r0, sp
- str r0, [sp, #0x88]
- sub r0, #8
- str r0, [sp, #0x88]
- add r3, r0, #0
- mov r0, #4
- add r2, sp, #0x94
- mov ip, r0
-_0223DADC:
- ldmia r2!, {r0, r1}
- stmia r3!, {r0, r1}
- mov r0, ip
- sub r0, r0, #1
- mov ip, r0
- bne _0223DADC
- ldr r0, [r2]
- add r1, r4, #0
- str r0, [r3]
- ldr r0, [sp, #0x88]
- ldmia r0!, {r2, r3}
- str r0, [sp, #0x88]
- add r0, r7, #0
- bl MOD11_02255FBC
- ldr r0, [sp, #0x50]
- mov r1, #1
- ldr r0, [r0]
- bic r0, r1
- mov r1, #1
- orr r1, r0
- ldr r0, [sp, #0x50]
- str r1, [r0]
- mov r0, #0xe
- strb r0, [r5]
- mov r0, #0xc
- strb r0, [r5, #4]
- b _0223DB20
-_0223DB14:
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_022563B4
- ldrb r0, [r5, #4]
- strb r0, [r5]
-_0223DB20:
- ldr r0, [sp, #0x54]
- ldr r1, [sp, #0x4c]
- add r0, #0x10
- str r0, [sp, #0x54]
- ldr r0, [sp, #0x50]
- add r4, r4, #1
- add r0, #0x40
- str r0, [sp, #0x50]
- mov r0, #1
- lsl r0, r0, #8
- add r1, r1, r0
- str r1, [sp, #0x4c]
- ldr r1, [sp, #0x48]
- add r1, #0xc0
- str r1, [sp, #0x48]
- ldr r1, [sp, #0x44]
- add r1, r1, #2
- str r1, [sp, #0x44]
- ldr r1, [sp, #0x40]
- add r1, #0x10
- str r1, [sp, #0x40]
- ldr r1, [sp, #0x3c]
- add r0, r1, r0
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x64]
- cmp r4, r0
- bge _0223DB58
- b _0223D430
-_0223DB58:
- ldr r1, [sp, #0x60]
- ldr r0, [sp, #0x64]
- cmp r1, r0
- bne _0223DB96
- mov r0, #6
- str r0, [r6, #8]
- ldr r0, [sp, #0x64]
- mov r5, #0
- cmp r0, #0
- ble _0223DB96
- str r6, [sp, #0x8c]
-_0223DB6E:
- ldr r1, _0223DB9C ; =0x000021A8
- ldr r0, [sp, #0x8c]
- ldr r0, [r0, r1]
- cmp r0, #0xf
- bne _0223DB88
- ldr r3, _0223DBA0 ; =0x000021A0
- add r4, r6, r5
- ldrb r3, [r4, r3]
- add r0, r7, #0
- add r1, r6, #0
- add r2, r5, #0
- bl MOD11_0224B290
-_0223DB88:
- ldr r0, [sp, #0x8c]
- add r5, r5, #1
- add r0, #0x10
- str r0, [sp, #0x8c]
- ldr r0, [sp, #0x64]
- cmp r5, r0
- blt _0223DB6E
-_0223DB96:
- add sp, #0xb8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223DB9C: .word 0x000021A8
-_0223DBA0: .word 0x000021A0
-
- thumb_func_start MOD11_0223DBA4
-MOD11_0223DBA4: ; 0x0223DBA4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- str r0, [sp, #4]
- add r5, r1, #0
- bl MOD11_0222FF84
- str r0, [sp, #0x14]
- ldr r0, [sp, #4]
- bl MOD11_0222FF74
- mov r2, #0x22
- lsl r2, r2, #4
- mov r1, #0
- tst r2, r0
- beq _0223DBDA
- ldr r0, [sp, #0x14]
- add r4, r1, #0
- cmp r0, #0
- ble _0223DBD8
- ldr r1, _0223DD14 ; =0x000021E8
-_0223DBCC:
- add r0, r5, r4
- strb r4, [r0, r1]
- ldr r0, [sp, #0x14]
- add r4, r4, #1
- cmp r4, r0
- blt _0223DBCC
-_0223DBD8:
- b _0223DD0C
-_0223DBDA:
- mov r2, #4
- tst r0, r2
- beq _0223DC02
- ldr r0, [sp, #0x14]
- add r4, r1, #0
- cmp r0, #0
- ble _0223DC1A
- ldr r2, _0223DD18 ; =0x000021B4
- add r3, r5, #0
-_0223DBEC:
- ldr r0, [r3, r2]
- cmp r0, #4
- bne _0223DBF6
- mov r1, #5
- b _0223DC1A
-_0223DBF6:
- ldr r0, [sp, #0x14]
- add r4, r4, #1
- add r3, #0x10
- cmp r4, r0
- blt _0223DBEC
- b _0223DC1A
-_0223DC02:
- ldr r0, _0223DD18 ; =0x000021B4
- ldr r0, [r5, r0]
- cmp r0, #4
- bne _0223DC0E
- add r4, r1, #0
- mov r1, #5
-_0223DC0E:
- ldr r0, _0223DD1C ; =0x000021D4
- ldr r0, [r5, r0]
- cmp r0, #4
- bne _0223DC1A
- mov r4, #2
- mov r1, #5
-_0223DC1A:
- cmp r1, #5
- bne _0223DC42
- ldr r0, _0223DD14 ; =0x000021E8
- ldr r2, [sp, #0x14]
- strb r4, [r5, r0]
- mov r1, #1
- mov r0, #0
- cmp r2, #0
- ble _0223DD0C
- ldr r3, _0223DD14 ; =0x000021E8
-_0223DC2E:
- cmp r0, r4
- beq _0223DC38
- add r2, r5, r1
- strb r0, [r2, r3]
- add r1, r1, #1
-_0223DC38:
- ldr r2, [sp, #0x14]
- add r0, r0, #1
- cmp r0, r2
- blt _0223DC2E
- b _0223DD0C
-_0223DC42:
- ldr r0, [sp, #0x14]
- mov r2, #0
- cmp r0, #0
- ble _0223DC6A
- ldr r4, _0223DD14 ; =0x000021E8
- add r0, r5, #0
- add r6, r4, #0
- sub r6, #0x34
-_0223DC52:
- ldr r3, [r0, r6]
- sub r3, r3, #2
- cmp r3, #1
- bhi _0223DC60
- add r3, r5, r1
- strb r2, [r3, r4]
- add r1, r1, #1
-_0223DC60:
- ldr r3, [sp, #0x14]
- add r2, r2, #1
- add r0, #0x10
- cmp r2, r3
- blt _0223DC52
-_0223DC6A:
- ldr r0, [sp, #0x14]
- mov r2, #0
- cmp r0, #0
- ble _0223DC94
- ldr r4, _0223DD14 ; =0x000021E8
- add r0, r5, #0
- add r6, r4, #0
- sub r6, #0x34
-_0223DC7A:
- ldr r3, [r0, r6]
- cmp r3, #2
- beq _0223DC8A
- cmp r3, #3
- beq _0223DC8A
- add r3, r5, r1
- strb r2, [r3, r4]
- add r1, r1, #1
-_0223DC8A:
- ldr r3, [sp, #0x14]
- add r2, r2, #1
- add r0, #0x10
- cmp r2, r3
- blt _0223DC7A
-_0223DC94:
- mov r0, #0
- str r0, [sp, #8]
- ldr r0, [sp, #0x14]
- sub r0, r0, #1
- str r0, [sp, #0x18]
- cmp r0, #0
- ble _0223DD0C
-_0223DCA2:
- ldr r0, [sp, #8]
- add r7, r0, #1
- ldr r0, [sp, #0x14]
- cmp r7, r0
- bge _0223DD00
- ldr r0, [sp, #8]
- add r0, r5, r0
- str r0, [sp, #0x10]
-_0223DCB2:
- ldr r1, [sp, #0x10]
- ldr r0, _0223DD14 ; =0x000021E8
- ldrb r6, [r1, r0]
- add r1, r5, r7
- ldrb r4, [r1, r0]
- lsl r0, r6, #4
- str r1, [sp, #0xc]
- add r1, r5, r0
- ldr r0, _0223DD18 ; =0x000021B4
- ldr r0, [r1, r0]
- lsl r1, r4, #4
- add r2, r5, r1
- ldr r1, _0223DD18 ; =0x000021B4
- ldr r1, [r2, r1]
- cmp r0, r1
- bne _0223DCF8
- cmp r0, #1
- beq _0223DCDA
- mov r0, #1
- b _0223DCDC
-_0223DCDA:
- mov r0, #0
-_0223DCDC:
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r6, #0
- add r3, r4, #0
- bl MOD11_02244248
- cmp r0, #0
- beq _0223DCF8
- ldr r1, [sp, #0x10]
- ldr r0, _0223DD14 ; =0x000021E8
- strb r4, [r1, r0]
- ldr r1, [sp, #0xc]
- strb r6, [r1, r0]
-_0223DCF8:
- ldr r0, [sp, #0x14]
- add r7, r7, #1
- cmp r7, r0
- blt _0223DCB2
-_0223DD00:
- ldr r0, [sp, #8]
- add r1, r0, #1
- ldr r0, [sp, #0x18]
- str r1, [sp, #8]
- cmp r1, r0
- blt _0223DCA2
-_0223DD0C:
- mov r0, #7
- str r0, [r5, #8]
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0223DD14: .word 0x000021E8
-_0223DD18: .word 0x000021B4
-_0223DD1C: .word 0x000021D4
-
- thumb_func_start MOD11_0223DD20
-MOD11_0223DD20: ; 0x0223DD20
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r4, r1, #0
- mov r1, #0
- str r0, [sp]
- str r1, [sp, #4]
- bl MOD11_0222FF84
- add r7, r0, #0
-_0223DD32:
- ldr r0, [r4, #0x28]
- cmp r0, #3
- bls _0223DD3A
- b _0223DE4A
-_0223DD3A:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223DD46: ; jump table
- .short _0223DD4E - _0223DD46 - 2 ; case 0
- .short _0223DDE8 - _0223DD46 - 2 ; case 1
- .short _0223DE26 - _0223DD46 - 2 ; case 2
- .short _0223DE42 - _0223DD46 - 2 ; case 3
-_0223DD4E:
- ldr r0, [r4, #0x2c]
- cmp r0, r7
- bge _0223DDDC
- add r6, r4, #0
- add r6, #0x2c
-_0223DD58:
- add r1, r4, r0
- ldr r0, _0223DE60 ; =0x000021E8
- ldrb r5, [r1, r0]
- add r0, r5, #0
- bl MaskOfFlagNo
- ldr r1, _0223DE64 ; =0x00003108
- ldrb r1, [r4, r1]
- tst r0, r1
- ldr r0, [r6]
- beq _0223DD74
- add r0, r0, #1
- str r0, [r6]
- b _0223DDD6
-_0223DD74:
- add r0, r0, #1
- str r0, [r6]
- mov r0, #0xc0
- mul r0, r5
- add r1, r4, r0
- ldr r0, _0223DE68 ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- bne _0223DDD6
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0224683C
- mov r1, #0x42
- lsl r1, r1, #2
- cmp r0, r1
- bne _0223DDD6
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02247190
- cmp r0, #0
- bne _0223DDD6
- lsl r0, r5, #6
- add r1, r4, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _0223DDD6
- ldr r0, [sp]
- bl MOD11_0225679C
- mov r0, #0x46
- lsl r0, r0, #2
- str r5, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xe8
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #8
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223DDD6:
- ldr r0, [r4, #0x2c]
- cmp r0, r7
- blt _0223DD58
-_0223DDDC:
- mov r0, #0
- str r0, [r4, #0x2c]
- ldr r0, [r4, #0x28]
- add r0, r0, #1
- str r0, [r4, #0x28]
- b _0223DE4A
-_0223DDE8:
- mov r6, #0
- cmp r7, #0
- ble _0223DE1E
- add r5, r4, #0
-_0223DDF0:
- ldr r0, _0223DE6C ; =0x00002DB0
- ldr r1, [r5, r0]
- mov r0, #2
- lsl r0, r0, #0x16
- tst r0, r1
- beq _0223DE16
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0224683C
- cmp r0, #0x63
- beq _0223DE16
- ldr r0, _0223DE6C ; =0x00002DB0
- ldr r1, [r5, r0]
- mov r0, #2
- lsl r0, r0, #0x16
- and r1, r0
- ldr r0, _0223DE6C ; =0x00002DB0
- str r1, [r5, r0]
-_0223DE16:
- add r6, r6, #1
- add r5, #0xc0
- cmp r6, r7
- blt _0223DDF0
-_0223DE1E:
- ldr r0, [r4, #0x28]
- add r0, r0, #1
- str r0, [r4, #0x28]
- b _0223DE4A
-_0223DE26:
- mov r6, #0
- add r5, r4, #0
-_0223DE2A:
- bl rand_LC
- ldr r1, _0223DE70 ; =0x0000310C
- add r6, r6, #1
- strh r0, [r5, r1]
- add r5, r5, #2
- cmp r6, #4
- blt _0223DE2A
- ldr r0, [r4, #0x28]
- add r0, r0, #1
- str r0, [r4, #0x28]
- b _0223DE4A
-_0223DE42:
- mov r0, #0
- str r0, [r4, #0x28]
- mov r0, #2
- str r0, [sp, #4]
-_0223DE4A:
- ldr r0, [sp, #4]
- cmp r0, #0
- bne _0223DE52
- b _0223DD32
-_0223DE52:
- cmp r0, #2
- bne _0223DE5A
- mov r0, #8
- str r0, [r4, #8]
-_0223DE5A:
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223DE60: .word 0x000021E8
-_0223DE64: .word 0x00003108
-_0223DE68: .word 0x00002DAC
-_0223DE6C: .word 0x00002DB0
-_0223DE70: .word 0x0000310C
-
- thumb_func_start MOD11_0223DE74
-MOD11_0223DE74: ; 0x0223DE74
- push {r4, r5, r6, lr}
- add r6, r0, #0
- add r5, r1, #0
- bl MOD11_0222FF84
- add r4, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0224728C
- add r0, r5, #0
- add r0, #0xec
- ldr r0, [r0]
- cmp r0, r4
- bne _0223DEA0
- add r0, r5, #0
- mov r1, #0
- add r0, #0xec
- str r1, [r0]
- mov r0, #9
- str r0, [r5, #8]
- pop {r4, r5, r6, pc}
-_0223DEA0:
- add r1, r5, r0
- ldr r0, _0223DEB4 ; =0x000021E8
- ldrb r1, [r1, r0]
- sub r0, #0x40
- lsl r1, r1, #4
- add r1, r5, r1
- ldr r0, [r1, r0]
- str r0, [r5, #8]
- pop {r4, r5, r6, pc}
- nop
-_0223DEB4: .word 0x000021E8
-
- thumb_func_start MOD11_0223DEB8
-MOD11_0223DEB8: ; 0x0223DEB8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x3c
- str r0, [sp]
- add r4, r1, #0
- mov r5, #0
- bl MOD11_0222FF84
- str r0, [sp, #4]
-_0223DEC8:
- ldr r1, [r4, #8]
- add r0, r4, #0
- add r2, r1, #0
- mov r3, #1
- bl MOD11_0224246C
- cmp r0, #1
- beq _0223DEF2
- ldr r1, [r4, #8]
- add r0, r4, #0
- add r2, r1, #0
- bl MOD11_02242510
- cmp r0, #1
- beq _0223DEF2
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_02241FD8
- cmp r0, #1
- bne _0223DEF4
-_0223DEF2:
- b _0223E684
-_0223DEF4:
- ldr r0, [r4, #0x10]
- cmp r0, #0xd
- bhi _0223DFCE
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223DF06: ; jump table
- .short _0223DF22 - _0223DF06 - 2 ; case 0
- .short _0223DFDC - _0223DF06 - 2 ; case 1
- .short _0223E086 - _0223DF06 - 2 ; case 2
- .short _0223E132 - _0223DF06 - 2 ; case 3
- .short _0223E1E0 - _0223DF06 - 2 ; case 4
- .short _0223E25C - _0223DF06 - 2 ; case 5
- .short _0223E2D8 - _0223DF06 - 2 ; case 6
- .short _0223E3A0 - _0223DF06 - 2 ; case 7
- .short _0223E430 - _0223DF06 - 2 ; case 8
- .short _0223E4C0 - _0223DF06 - 2 ; case 9
- .short _0223E554 - _0223DF06 - 2 ; case 10
- .short _0223E5EA - _0223DF06 - 2 ; case 11
- .short _0223E62C - _0223DF06 - 2 ; case 12
- .short _0223E666 - _0223DF06 - 2 ; case 13
-_0223DF22:
- ldr r6, [r4, #0x14]
- cmp r6, #2
- bge _0223DFCA
- mov r0, #0x71
- lsl r0, r0, #2
- add r0, r4, r0
- str r0, [sp, #0x38]
- add r0, r4, #0
- str r0, [sp, #8]
- add r0, #0x14
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0x1c]
- mov r0, #0x1c
- str r0, [sp, #0x18]
-_0223DF40:
- lsl r0, r6, #2
- mov r1, #0x6f
- add r0, r4, r0
- lsl r1, r1, #2
- ldr r2, [r0, r1]
- mov r1, #1
- tst r1, r2
- beq _0223DFB6
- ldr r1, [sp, #0x38]
- lsl r3, r6, #3
- ldr r7, [r1, r3]
- ldr r2, [sp, #0x18]
- add r1, r7, #0
- str r7, [sp, #0x2c]
- bic r1, r2
- str r1, [sp, #0x2c]
- lsl r1, r7, #0x1b
- lsr r1, r1, #0x1d
- sub r1, r1, #1
- lsl r1, r1, #0x1d
- lsr r2, r1, #0x1b
- ldr r1, [sp, #0x2c]
- orr r2, r1
- ldr r1, [sp, #0x38]
- str r2, [r1, r3]
- ldr r1, [r1, r3]
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x1d
- bne _0223DFB6
- mov r1, #0x6f
- lsl r1, r1, #2
- ldr r2, [r0, r1]
- ldr r1, [sp, #0x1c]
- bic r2, r1
- mov r1, #0x6f
- lsl r1, r1, #2
- str r2, [r0, r1]
- mov r1, #0x73
- add r0, r1, #0
- add r0, #0xb1
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x32
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add r1, r4, #0
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- ldr r0, [sp]
- add r2, r6, #0
- bl MOD11_0224C150
- mov r1, #0x46
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r5, #1
-_0223DFB6:
- ldr r0, [sp, #8]
- ldr r0, [r0]
- add r1, r0, #1
- ldr r0, [sp, #8]
- cmp r5, #0
- str r1, [r0]
- bne _0223DFCA
- ldr r6, [r4, #0x14]
- cmp r6, #2
- blt _0223DF40
-_0223DFCA:
- cmp r5, #0
- beq _0223DFD0
-_0223DFCE:
- b _0223E668
-_0223DFD0:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- mov r0, #0
- str r0, [r4, #0x14]
- b _0223E668
-_0223DFDC:
- ldr r6, [r4, #0x14]
- cmp r6, #2
- bge _0223E076
- mov r0, #0x71
- lsl r0, r0, #2
- add r7, r4, r0
- add r0, r4, #0
- str r0, [sp, #0xc]
- add r0, #0x14
- str r0, [sp, #0xc]
- mov r0, #2
- str r0, [sp, #0x20]
-_0223DFF4:
- lsl r0, r6, #2
- add r3, r4, r0
- mov r0, #0x6f
- lsl r0, r0, #2
- ldr r1, [r3, r0]
- mov r0, #2
- tst r0, r1
- beq _0223E062
- lsl r2, r6, #3
- ldr r1, [r7, r2]
- ldr r0, _0223E340 ; =0xFFFFFC7F
- and r0, r1
- str r0, [sp, #0x30]
- lsl r0, r1, #0x16
- lsr r0, r0, #0x1d
- sub r0, r0, #1
- lsl r0, r0, #0x1d
- lsr r1, r0, #0x16
- ldr r0, [sp, #0x30]
- orr r0, r1
- str r0, [r7, r2]
- ldr r0, [r7, r2]
- lsl r0, r0, #0x16
- lsr r0, r0, #0x1d
- bne _0223E062
- mov r0, #0x6f
- lsl r0, r0, #2
- ldr r0, [r3, r0]
- ldr r1, [sp, #0x20]
- mov r2, #0x32
- bic r0, r1
- mov r1, #0x6f
- lsl r1, r1, #2
- str r0, [r3, r1]
- mov r1, #0x71
- add r0, r1, #0
- add r0, #0xb3
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add r1, r4, #0
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- ldr r0, [sp]
- add r2, r6, #0
- bl MOD11_0224C150
- mov r1, #0x46
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r5, #1
-_0223E062:
- ldr r0, [sp, #0xc]
- ldr r0, [r0]
- add r1, r0, #1
- ldr r0, [sp, #0xc]
- cmp r5, #0
- str r1, [r0]
- bne _0223E076
- ldr r6, [r4, #0x14]
- cmp r6, #2
- blt _0223DFF4
-_0223E076:
- cmp r5, #0
- bne _0223E124
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- mov r0, #0
- str r0, [r4, #0x14]
- b _0223E668
-_0223E086:
- ldr r6, [r4, #0x14]
- cmp r6, #2
- bge _0223E120
- mov r0, #0x71
- lsl r0, r0, #2
- add r7, r4, r0
- add r0, r4, #0
- str r0, [sp, #0x10]
- add r0, #0x14
- str r0, [sp, #0x10]
- mov r0, #0x40
- str r0, [sp, #0x24]
-_0223E09E:
- lsl r0, r6, #2
- add r3, r4, r0
- mov r0, #0x6f
- lsl r0, r0, #2
- ldr r1, [r3, r0]
- mov r0, #0x40
- tst r0, r1
- beq _0223E10C
- lsl r2, r6, #3
- ldr r1, [r7, r2]
- ldr r0, _0223E344 ; =0xFFFF8FFF
- and r0, r1
- str r0, [sp, #0x34]
- lsl r0, r1, #0x11
- lsr r0, r0, #0x1d
- sub r0, r0, #1
- lsl r0, r0, #0x1d
- lsr r1, r0, #0x11
- ldr r0, [sp, #0x34]
- orr r0, r1
- str r0, [r7, r2]
- ldr r0, [r7, r2]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x1d
- bne _0223E10C
- mov r0, #0x6f
- lsl r0, r0, #2
- ldr r0, [r3, r0]
- ldr r1, [sp, #0x24]
- mov r2, #0x32
- bic r0, r1
- mov r1, #0x6f
- lsl r1, r1, #2
- str r0, [r3, r1]
- mov r1, #0x36
- add r0, r1, #0
- add r0, #0xee
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add r1, r4, #0
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- ldr r0, [sp]
- add r2, r6, #0
- bl MOD11_0224C150
- mov r1, #0x46
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r5, #1
-_0223E10C:
- ldr r0, [sp, #0x10]
- ldr r0, [r0]
- add r1, r0, #1
- ldr r0, [sp, #0x10]
- cmp r5, #0
- str r1, [r0]
- bne _0223E120
- ldr r6, [r4, #0x14]
- cmp r6, #2
- blt _0223E09E
-_0223E120:
- cmp r5, #0
- beq _0223E126
-_0223E124:
- b _0223E668
-_0223E126:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- mov r0, #0
- str r0, [r4, #0x14]
- b _0223E668
-_0223E132:
- ldr r7, [r4, #0x14]
- cmp r7, #2
- bge _0223E1D0
- mov r0, #0x71
- lsl r0, r0, #2
- add r6, r4, r0
- add r0, r4, #0
- str r0, [sp, #0x14]
- add r0, #0x14
- str r0, [sp, #0x14]
- mov r0, #8
- str r0, [sp, #0x28]
-_0223E14A:
- lsl r0, r7, #2
- add r3, r4, r0
- mov r0, #0x6f
- lsl r0, r0, #2
- ldr r1, [r3, r0]
- mov r0, #8
- tst r0, r1
- beq _0223E1BC
- lsl r0, r7, #3
- ldr r2, [r6, r0]
- ldr r1, _0223E348 ; =0xFFF1FFFF
- and r1, r2
- mov ip, r1
- lsl r1, r2, #0xc
- lsr r1, r1, #0x1d
- sub r1, r1, #1
- lsl r1, r1, #0x1d
- lsr r2, r1, #0xc
- mov r1, ip
- orr r1, r2
- str r1, [r6, r0]
- ldr r1, [r6, r0]
- lsl r1, r1, #0xc
- lsr r1, r1, #0x1d
- bne _0223E1BC
- mov r1, #0x6f
- lsl r1, r1, #2
- ldr r1, [r3, r1]
- ldr r2, [sp, #0x28]
- bic r1, r2
- mov r2, #0x6f
- lsl r2, r2, #2
- str r1, [r3, r2]
- ldr r0, [r6, r0]
- lsl r0, r0, #0xf
- lsr r1, r0, #0x1e
- add r0, r2, #0
- sub r0, #0xa4
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x6e
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add r1, r4, #0
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- ldr r0, [sp]
- add r2, r7, #0
- bl MOD11_0224C150
- mov r1, #0x46
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r5, #1
-_0223E1BC:
- ldr r0, [sp, #0x14]
- ldr r0, [r0]
- add r1, r0, #1
- ldr r0, [sp, #0x14]
- cmp r5, #0
- str r1, [r0]
- bne _0223E1D0
- ldr r7, [r4, #0x14]
- cmp r7, #2
- blt _0223E14A
-_0223E1D0:
- cmp r5, #0
- bne _0223E24E
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- mov r0, #0
- str r0, [r4, #0x14]
- b _0223E668
-_0223E1E0:
- ldr r6, [r4, #0x14]
- cmp r6, #2
- bge _0223E24A
- add r7, r4, #0
- add r7, #0x14
-_0223E1EA:
- lsl r0, r6, #2
- mov r1, #0x6f
- add r0, r4, r0
- lsl r1, r1, #2
- ldr r2, [r0, r1]
- mov r1, #3
- lsl r1, r1, #8
- tst r1, r2
- beq _0223E23A
- mov r1, #0x6f
- lsl r1, r1, #2
- ldr r2, [r0, r1]
- sub r1, #0xbc
- sub r2, r2, r1
- mov r1, #0x6f
- lsl r1, r1, #2
- str r2, [r0, r1]
- ldr r1, [r0, r1]
- mov r0, #3
- lsl r0, r0, #8
- tst r0, r1
- bne _0223E23A
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xe9
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add r1, r4, #0
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- ldr r0, [sp]
- add r2, r6, #0
- bl MOD11_0224C150
- mov r1, #0x46
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r5, #1
-_0223E23A:
- ldr r0, [r7]
- add r0, r0, #1
- str r0, [r7]
- cmp r5, #0
- bne _0223E24A
- ldr r6, [r4, #0x14]
- cmp r6, #2
- blt _0223E1EA
-_0223E24A:
- cmp r5, #0
- beq _0223E250
-_0223E24E:
- b _0223E668
-_0223E250:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- mov r0, #0
- str r0, [r4, #0x14]
- b _0223E668
-_0223E25C:
- ldr r6, [r4, #0x14]
- cmp r6, #2
- bge _0223E2C8
- add r7, r4, #0
- add r7, #0x14
-_0223E266:
- lsl r0, r6, #2
- mov r1, #0x6f
- add r0, r4, r0
- lsl r1, r1, #2
- ldr r2, [r0, r1]
- mov r1, #7
- lsl r1, r1, #0xc
- tst r1, r2
- beq _0223E2B8
- mov r1, #0x6f
- lsl r1, r1, #2
- ldr r2, [r0, r1]
- mov r1, #1
- lsl r1, r1, #0xc
- sub r2, r2, r1
- mov r1, #0x6f
- lsl r1, r1, #2
- str r2, [r0, r1]
- ldr r1, [r0, r1]
- mov r0, #7
- lsl r0, r0, #0xc
- tst r0, r1
- bne _0223E2B8
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xfa
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add r1, r4, #0
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- ldr r0, [sp]
- add r2, r6, #0
- bl MOD11_0224C150
- mov r1, #0x46
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r5, #1
-_0223E2B8:
- ldr r0, [r7]
- add r0, r0, #1
- str r0, [r7]
- cmp r5, #0
- bne _0223E2C8
- ldr r6, [r4, #0x14]
- cmp r6, #2
- blt _0223E266
-_0223E2C8:
- cmp r5, #0
- bne _0223E392
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- mov r0, #0
- str r0, [r4, #0x14]
- b _0223E668
-_0223E2D8:
- ldr r0, [r4, #0x14]
- ldr r1, [sp, #4]
- cmp r0, r1
- bge _0223E38E
- add r6, r4, #0
- mov r7, #2
- add r6, #0x14
-_0223E2E6:
- add r1, r4, r0
- ldr r0, _0223E34C ; =0x000021EC
- ldrb r2, [r1, r0]
- mov r0, #0x63
- lsl r0, r0, #2
- add r1, r4, r2
- ldrb r0, [r1, r0]
- cmp r0, #0
- beq _0223E37C
- mov r0, #0x63
- lsl r0, r0, #2
- ldrb r0, [r1, r0]
- sub r3, r0, #1
- mov r0, #0x63
- lsl r0, r0, #2
- strb r3, [r1, r0]
- ldrb r0, [r1, r0]
- cmp r0, #0
- bne _0223E37C
- mov r0, #0xc0
- mul r0, r2
- ldr r3, _0223E350 ; =0x00002D8C
- add r0, r4, r0
- ldr r3, [r0, r3]
- cmp r3, #0
- beq _0223E37C
- mov r3, #0x46
- lsl r3, r3, #2
- str r2, [r4, r3]
- add r3, r4, #0
- add r3, #0xf5
- strb r7, [r3]
- add r5, r4, #0
- ldr r3, _0223E354 ; =0x00000215
- add r5, #0xf6
- strh r3, [r5]
- sub r3, #0x5d
- ldrb r1, [r1, r3]
- lsl r1, r1, #8
- orr r2, r1
- add r1, r4, #0
- add r1, #0xf8
- str r2, [r1]
- ldr r1, _0223E358 ; =0x00002D90
- b _0223E35C
- .align 2, 0
-_0223E340: .word 0xFFFFFC7F
-_0223E344: .word 0xFFFF8FFF
-_0223E348: .word 0xFFF1FFFF
-_0223E34C: .word 0x000021EC
-_0223E350: .word 0x00002D8C
-_0223E354: .word 0x00000215
-_0223E358: .word 0x00002D90
-_0223E35C:
- ldr r0, [r0, r1]
- add r1, r7, #0
- bl MOD11_022476C0
- ldr r1, _0223E688 ; =0x0000215C
- mov r2, #0x88
- str r0, [r4, r1]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r5, #1
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0223E37C:
- ldr r0, [r6]
- add r0, r0, #1
- str r0, [r6]
- cmp r5, #0
- bne _0223E38E
- ldr r0, [r4, #0x14]
- ldr r1, [sp, #4]
- cmp r0, r1
- blt _0223E2E6
-_0223E38E:
- cmp r5, #0
- beq _0223E394
-_0223E392:
- b _0223E668
-_0223E394:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- mov r0, #0
- str r0, [r4, #0x14]
- b _0223E668
-_0223E3A0:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r2, #3
- tst r2, r1
- beq _0223E428
- mov r2, #2
- tst r1, r2
- beq _0223E3D6
- add r0, r4, #0
- ldr r1, _0223E68C ; =0x00000321
- add r0, #0xf6
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x68
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0223E41E
-_0223E3D6:
- add r1, r0, #4
- ldr r1, [r4, r1]
- sub r2, r1, #1
- add r1, r0, #4
- str r2, [r4, r1]
- add r0, r0, #4
- ldr r0, [r4, r0]
- cmp r0, #0
- bne _0223E3FC
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xea
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0223E41E
-_0223E3FC:
- add r0, r4, #0
- ldr r1, _0223E68C ; =0x00000321
- add r0, #0xf6
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x68
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0223E41E:
- mov r0, #0x4e
- mov r1, #0x13
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r5, #1
-_0223E428:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- b _0223E668
-_0223E430:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r2, #0xc
- tst r2, r1
- beq _0223E4B8
- mov r2, #8
- tst r1, r2
- beq _0223E466
- add r0, r4, #0
- ldr r1, _0223E690 ; =0x00000325
- add r0, #0xf6
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x68
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0223E4AE
-_0223E466:
- add r1, r0, #4
- ldr r1, [r4, r1]
- sub r2, r1, #1
- add r1, r0, #4
- str r2, [r4, r1]
- add r0, r0, #4
- ldr r0, [r4, r0]
- cmp r0, #0
- bne _0223E48C
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xeb
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0223E4AE
-_0223E48C:
- add r0, r4, #0
- ldr r1, _0223E690 ; =0x00000325
- add r0, #0xf6
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x68
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0223E4AE:
- mov r0, #0x4e
- mov r1, #0x15
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r5, #1
-_0223E4B8:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- b _0223E668
-_0223E4C0:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r2, #0x30
- tst r2, r1
- beq _0223E54C
- mov r2, #0x20
- tst r1, r2
- beq _0223E4F8
- mov r1, #0xca
- add r0, r4, #0
- lsl r1, r1, #2
- add r0, #0xf6
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x68
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0223E542
-_0223E4F8:
- add r1, r0, #4
- ldr r1, [r4, r1]
- sub r2, r1, #1
- add r1, r0, #4
- str r2, [r4, r1]
- add r0, r0, #4
- ldr r0, [r4, r0]
- cmp r0, #0
- bne _0223E51E
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xec
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0223E542
-_0223E51E:
- mov r1, #0xca
- add r0, r4, #0
- lsl r1, r1, #2
- add r0, #0xf6
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x68
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0223E542:
- mov r0, #0x4e
- mov r1, #0x16
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r5, #1
-_0223E54C:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- b _0223E668
-_0223E554:
- mov r0, #6
- lsl r0, r0, #6
- ldr r2, [r4, r0]
- mov r1, #0xc0
- add r0, r2, #0
- tst r0, r1
- beq _0223E5E2
- mov r0, #0x80
- tst r0, r2
- beq _0223E58C
- add r0, r4, #0
- ldr r1, _0223E694 ; =0x0000032B
- add r0, #0xf6
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x68
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0223E5D8
-_0223E58C:
- add r0, r1, #0
- add r0, #0xc4
- ldr r0, [r4, r0]
- sub r2, r0, #1
- add r0, r1, #0
- add r0, #0xc4
- add r1, #0xc4
- str r2, [r4, r0]
- ldr r0, [r4, r1]
- cmp r0, #0
- bne _0223E5B6
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xed
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0223E5D8
-_0223E5B6:
- add r0, r4, #0
- ldr r1, _0223E694 ; =0x0000032B
- add r0, #0xf6
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x68
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0223E5D8:
- mov r0, #0x4e
- mov r1, #0x14
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r5, #1
-_0223E5E2:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- b _0223E668
-_0223E5EA:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #2
- lsl r0, r0, #0xe
- tst r0, r1
- beq _0223E624
- add r0, r4, #0
- ldr r1, _0223E698 ; =0x0000032D
- add r0, #0xf6
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x68
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r1, #0x12
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x4e
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r5, #1
-_0223E624:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- b _0223E668
-_0223E62C:
- mov r1, #6
- lsl r1, r1, #6
- ldr r3, [r4, r1]
- mov r2, #7
- lsl r2, r2, #0xc
- add r0, r3, #0
- tst r0, r2
- beq _0223E65E
- mov r0, #1
- lsl r0, r0, #0xc
- sub r0, r3, r0
- str r0, [r4, r1]
- ldr r0, [r4, r1]
- tst r0, r2
- bne _0223E65E
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xee
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r5, #1
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0223E65E:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- b _0223E668
-_0223E666:
- mov r5, #2
-_0223E668:
- cmp r5, #0
- bne _0223E66E
- b _0223DEC8
-_0223E66E:
- cmp r5, #1
- bne _0223E678
- ldr r0, [sp]
- bl MOD11_0225679C
-_0223E678:
- cmp r5, #2
- bne _0223E684
- mov r0, #0
- str r0, [r4, #0x10]
- mov r0, #0xa
- str r0, [r4, #8]
-_0223E684:
- add sp, #0x3c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0223E688: .word 0x0000215C
-_0223E68C: .word 0x00000321
-_0223E690: .word 0x00000325
-_0223E694: .word 0x0000032B
-_0223E698: .word 0x0000032D
-
- thumb_func_start MOD11_0223E69C
-MOD11_0223E69C: ; 0x0223E69C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r4, r1, #0
- mov r1, #0
- str r1, [sp, #0x10]
- str r0, [sp, #4]
- bl MOD11_0222FF84
- ldr r1, [r4, #8]
- str r0, [sp, #0xc]
- add r0, r4, #0
- add r2, r1, #0
- mov r3, #1
- bl MOD11_0224246C
- cmp r0, #1
- beq _0223E6D8
- ldr r1, [r4, #8]
- add r0, r4, #0
- add r2, r1, #0
- bl MOD11_02242510
- cmp r0, #1
- beq _0223E6D8
- ldr r0, [sp, #4]
- add r1, r4, #0
- bl MOD11_02241FD8
- cmp r0, #1
- bne _0223E6DC
-_0223E6D8:
- bl _0223F0B2
-_0223E6DC:
- ldr r1, [r4, #0x1c]
- ldr r0, [sp, #0xc]
- cmp r1, r0
- blt _0223E6E8
- bl _0223F0A8
-_0223E6E8:
- ldr r0, _0223EA14 ; =0x000021EC
- add r1, r4, r1
- ldrb r5, [r1, r0]
- add r0, r5, #0
- bl MaskOfFlagNo
- ldr r1, _0223EA18 ; =0x00003108
- ldrb r1, [r4, r1]
- tst r0, r1
- beq _0223E706
- ldr r0, [r4, #0x1c]
- add r0, r0, #1
- str r0, [r4, #0x1c]
- bl _0223F09C
-_0223E706:
- ldr r0, [r4, #0x18]
- cmp r0, #0x1a
- bls _0223E710
- bl _0223F08C
-_0223E710:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223E71C: ; jump table
- .short _0223E752 - _0223E71C - 2 ; case 0
- .short _0223E7BA - _0223E71C - 2 ; case 1
- .short _0223E83C - _0223E71C - 2 ; case 2
- .short _0223E856 - _0223E71C - 2 ; case 3
- .short _0223E872 - _0223E71C - 2 ; case 4
- .short _0223E88C - _0223E71C - 2 ; case 5
- .short _0223E8F6 - _0223E71C - 2 ; case 6
- .short _0223E948 - _0223E71C - 2 ; case 7
- .short _0223E9C8 - _0223E71C - 2 ; case 8
- .short _0223EA04 - _0223E71C - 2 ; case 9
- .short _0223EA72 - _0223E71C - 2 ; case 10
- .short _0223EAB0 - _0223E71C - 2 ; case 11
- .short _0223EB2A - _0223E71C - 2 ; case 12
- .short _0223EBAE - _0223E71C - 2 ; case 13
- .short _0223ECA6 - _0223E71C - 2 ; case 14
- .short _0223ED0E - _0223E71C - 2 ; case 15
- .short _0223ED90 - _0223E71C - 2 ; case 16
- .short _0223EE56 - _0223E71C - 2 ; case 17
- .short _0223EE74 - _0223E71C - 2 ; case 18
- .short _0223EEBA - _0223E71C - 2 ; case 19
- .short _0223EF06 - _0223E71C - 2 ; case 20
- .short _0223EF50 - _0223E71C - 2 ; case 21
- .short _0223EF9A - _0223E71C - 2 ; case 22
- .short _0223EFE4 - _0223E71C - 2 ; case 23
- .short _0223F034 - _0223E71C - 2 ; case 24
- .short _0223F068 - _0223E71C - 2 ; case 25
- .short _0223F082 - _0223E71C - 2 ; case 26
-_0223E752:
- mov r6, #0xc0
- add r0, r5, #0
- mul r0, r6
- add r3, r4, r0
- mov r0, #0xb7
- lsl r0, r0, #6
- mov r1, #1
- ldr r2, [r3, r0]
- lsl r1, r1, #0xa
- tst r1, r2
- beq _0223E7B0
- add r1, r0, #0
- sub r1, #0x34
- ldr r2, [r3, r1]
- add r1, r0, #0
- sub r1, #0x30
- ldr r1, [r3, r1]
- cmp r2, r1
- beq _0223E7B0
- cmp r2, #0
- beq _0223E7B0
- add r0, #0xc
- ldr r0, [r3, r0]
- lsl r0, r0, #0xd
- lsr r0, r0, #0x1d
- beq _0223E796
- add r6, #0x58
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xef
- str r5, [r4, r6]
- bl MOD11_022431DC
- b _0223E7A4
-_0223E796:
- add r6, #0x58
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x89
- str r5, [r4, r6]
- bl MOD11_022431DC
-_0223E7A4:
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223E7B0:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- bl _0223F08C
-_0223E7BA:
- mov r0, #0xc0
- add r1, r5, #0
- mul r1, r0
- add r6, r4, r1
- mov r1, #0xb7
- lsl r1, r1, #6
- mov r2, #1
- ldr r3, [r6, r1]
- lsl r2, r2, #0x18
- tst r2, r3
- beq _0223E832
- add r2, r1, #0
- sub r2, #0x34
- ldr r3, [r6, r2]
- add r2, r1, #0
- sub r2, #0x30
- ldr r2, [r6, r2]
- cmp r3, r2
- beq _0223E832
- cmp r3, #0
- beq _0223E832
- add r2, r1, #0
- add r2, #0xc
- ldr r2, [r6, r2]
- lsl r2, r2, #0xd
- lsr r2, r2, #0x1d
- beq _0223E800
- add r0, #0x58
- str r5, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xef
- bl MOD11_022431DC
- b _0223E826
-_0223E800:
- add r2, r0, #0
- add r2, #0x58
- str r5, [r4, r2]
- add r2, r0, #0
- add r2, #0xc8
- add r0, #0x64
- sub r1, #0x30
- str r2, [r4, r0]
- ldr r0, [r6, r1]
- mov r1, #0x10
- bl MOD11_022476C0
- ldr r1, _0223EA1C ; =0x0000215C
- mov r2, #0xa9
- str r0, [r4, r1]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
-_0223E826:
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223E832:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- bl _0223F08C
-_0223E83C:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022475B8
- cmp r0, #1
- bne _0223E84C
- mov r0, #1
- str r0, [sp, #0x10]
-_0223E84C:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- bl _0223F08C
-_0223E856:
- ldr r0, [sp, #4]
- add r1, r4, #0
- add r2, r5, #0
- bl MOD11_02248C0C
- cmp r0, #1
- bne _0223E868
- mov r0, #1
- str r0, [sp, #0x10]
-_0223E868:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- bl _0223F08C
-_0223E872:
- ldr r0, [sp, #4]
- add r1, r4, #0
- add r2, r5, #0
- bl MOD11_022492A4
- cmp r0, #1
- bne _0223E884
- mov r0, #1
- str r0, [sp, #0x10]
-_0223E884:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223E88C:
- mov r3, #0xc0
- add r0, r5, #0
- mul r0, r3
- mov r2, #0xb7
- add r6, r4, r0
- lsl r2, r2, #6
- ldr r0, [r6, r2]
- mov r1, #4
- tst r1, r0
- beq _0223E8EE
- mov r1, #3
- and r0, r1
- add r1, r0, #0
- mul r1, r3
- add r0, r4, r1
- sub r2, #0x34
- ldr r0, [r0, r2]
- cmp r0, #0
- beq _0223E8EE
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _0223E8EE
- ldr r0, _0223EA20 ; =0x00002D8C
- ldr r1, [r6, r0]
- cmp r1, #0
- beq _0223E8EE
- add r0, #0x34
- ldr r1, [r6, r0]
- mov r0, #3
- and r1, r0
- mov r0, #0x47
- lsl r0, r0, #2
- str r1, [r4, r0]
- add r0, r0, #4
- str r5, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x45
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223E8EE:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223E8F6:
- mov r2, #0xc0
- add r0, r5, #0
- mul r0, r2
- ldr r3, _0223EA24 ; =0x00002DAC
- add r0, r4, r0
- ldr r1, [r0, r3]
- mov r6, #8
- tst r1, r6
- beq _0223E940
- add r1, r3, #0
- sub r1, #0x20
- ldr r1, [r0, r1]
- cmp r1, #0
- beq _0223E940
- add r2, #0x58
- str r5, [r4, r2]
- sub r3, #0x1c
- ldr r1, [r0, r3]
- add r0, r6, #0
- sub r0, #9
- mul r0, r1
- add r1, r6, #0
- bl MOD11_022476C0
- ldr r1, _0223EA1C ; =0x0000215C
- mov r2, #0x17
- str r0, [r4, r1]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223E940:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223E948:
- mov r0, #0xc0
- mul r0, r5
- ldr r1, _0223EA24 ; =0x00002DAC
- add r6, r4, r0
- ldr r0, [r6, r1]
- mov r2, #0x80
- tst r0, r2
- beq _0223E9C0
- add r0, r1, #0
- sub r0, #0x20
- ldr r0, [r6, r0]
- cmp r0, #0
- beq _0223E9C0
- add r2, #0x98
- str r5, [r4, r2]
- sub r1, #0x1c
- ldr r0, [r6, r1]
- mov r1, #0x10
- bl MOD11_022476C0
- ldr r1, _0223EA1C ; =0x0000215C
- str r0, [r4, r1]
- ldr r1, _0223EA24 ; =0x00002DAC
- mov r0, #0xf
- ldr r2, [r6, r1]
- lsl r0, r0, #8
- add r3, r2, #0
- and r3, r0
- cmp r3, r0
- beq _0223E98C
- mov r0, #1
- lsl r0, r0, #8
- add r0, r2, r0
- str r0, [r6, r1]
-_0223E98C:
- ldr r2, _0223EA24 ; =0x00002DAC
- ldr r0, _0223EA1C ; =0x0000215C
- ldr r3, [r6, r2]
- mov r2, #0xf
- lsl r2, r2, #8
- and r2, r3
- ldr r1, [r4, r0]
- lsr r2, r2, #8
- mul r2, r1
- str r2, [r4, r0]
- mov r1, #0
- ldr r2, [r4, r0]
- mvn r1, r1
- mul r1, r2
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x17
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223E9C0:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223E9C8:
- mov r0, #0xc0
- add r1, r5, #0
- mul r1, r0
- add r6, r4, r1
- ldr r1, _0223EA24 ; =0x00002DAC
- mov r2, #0x10
- ldr r3, [r6, r1]
- tst r2, r3
- beq _0223E9FC
- sub r1, #0x20
- ldr r1, [r6, r1]
- cmp r1, #0
- beq _0223E9FC
- add r0, #0x58
- str r5, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x1a
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223E9FC:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EA04:
- mov r6, #0xc0
- add r0, r5, #0
- mul r0, r6
- add r3, r4, r0
- ldr r7, _0223EA28 ; =0x00002DB0
- ldr r0, _0223EA18 ; =0x00003108
- b _0223EA2C
- nop
-_0223EA14: .word 0x000021EC
-_0223EA18: .word 0x00003108
-_0223EA1C: .word 0x0000215C
-_0223EA20: .word 0x00002D8C
-_0223EA24: .word 0x00002DAC
-_0223EA28: .word 0x00002DB0
-_0223EA2C:
- ldr r2, [r3, r7]
- lsl r0, r0, #0x18
- tst r0, r2
- beq _0223EA6A
- add r0, r7, #0
- sub r0, #0x24
- ldr r0, [r3, r0]
- cmp r0, #0
- beq _0223EA6A
- sub r0, r7, #4
- ldr r1, [r3, r0]
- mov r0, #7
- tst r0, r1
- beq _0223EA64
- add r6, #0x58
- str r5, [r4, r6]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x5e
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
- b _0223EA6A
-_0223EA64:
- ldr r0, _0223ED9C ; =0xF7FFFFFF
- and r0, r2
- str r0, [r3, r7]
-_0223EA6A:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EA72:
- mov r0, #0xc0
- add r1, r5, #0
- mul r1, r0
- add r6, r4, r1
- ldr r1, _0223EDA0 ; =0x00002DB0
- mov r2, #1
- ldr r3, [r6, r1]
- lsl r2, r2, #0x1c
- tst r2, r3
- beq _0223EAA8
- sub r1, #0x24
- ldr r1, [r6, r1]
- cmp r1, #0
- beq _0223EAA8
- add r0, #0x58
- str r5, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x62
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223EAA8:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EAB0:
- mov r1, #0xc0
- add r0, r5, #0
- mul r0, r1
- ldr r2, _0223EDA0 ; =0x00002DB0
- add r6, r4, r0
- ldr r3, [r6, r2]
- mov r7, #0xe
- lsl r7, r7, #0xc
- add r0, r3, #0
- tst r0, r7
- beq _0223EB22
- add r0, r2, #0
- sub r0, #0x24
- ldr r0, [r6, r0]
- cmp r0, #0
- beq _0223EB22
- mov r0, #2
- lsl r0, r0, #0xc
- sub r0, r3, r0
- str r0, [r6, r2]
- ldr r0, [r6, r2]
- tst r0, r7
- beq _0223EAFE
- sub r2, #0x20
- ldr r2, [r6, r2]
- sub r1, #0xc1
- add r0, r2, #0
- mul r0, r1
- mov r1, #0x10
- bl MOD11_022476C0
- ldr r1, _0223EDA4 ; =0x0000215C
- mov r2, #0x3b
- str r0, [r4, r1]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- b _0223EB08
-_0223EAFE:
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x3c
- bl MOD11_022431DC
-_0223EB08:
- ldr r0, _0223EDA8 ; =0x00002DEA
- ldrh r1, [r6, r0]
- mov r0, #0x49
- lsl r0, r0, #2
- str r1, [r4, r0]
- sub r0, #0xc
- str r5, [r4, r0]
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223EB22:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EB2A:
- mov r0, #0x7b
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r4, #0
- mov r2, #4
- add r3, r5, #0
- bl MOD11_02246870
- mov r1, #0x4e
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r0, #0xc0
- mul r0, r5
- add r6, r4, r0
- ldr r0, _0223EDAC ; =0x00002DAC
- ldr r1, [r6, r0]
- mov r0, #7
- tst r0, r1
- beq _0223EBA6
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _0223EBA6
- ldr r1, _0223EDB0 ; =0x00002D8C
- ldr r0, [r6, r1]
- cmp r0, #0
- beq _0223EBA6
- mov r0, #0x4e
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- cmp r0, #0
- beq _0223EBA6
- add r0, r1, #4
- ldr r1, [r6, r0]
- mov r0, #0
- mvn r0, r0
- mul r0, r1
- mov r1, #8
- bl MOD11_022476C0
- ldr r1, _0223EDA4 ; =0x0000215C
- ldr r2, _0223EDB4 ; =0x00000107
- str r0, [r4, r1]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, _0223EDB8 ; =0x0000213C
- mov r1, #0x40
- ldr r2, [r4, r0]
- orr r2, r1
- str r2, [r4, r0]
- add r1, #0xd8
- str r5, [r4, r1]
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223EBA6:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EBAE:
- mov r0, #0xc0
- mul r0, r5
- add r7, r4, r0
- ldr r0, _0223EDA0 ; =0x00002DB0
- ldr r1, [r7, r0]
- mov r0, #0x70
- tst r0, r1
- beq _0223EC96
- ldr r0, [sp, #0xc]
- mov r6, #0
- cmp r0, #0
- ble _0223EC08
-_0223EBC6:
- mov r0, #0xc0
- mul r0, r6
- add r1, r4, r0
- ldr r0, _0223EDAC ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _0223EBFC
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x2b
- beq _0223EBFC
- mov r0, #0x46
- lsl r0, r0, #2
- str r6, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x13
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0223EC08
-_0223EBFC:
- add r0, r6, #1
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- ldr r0, [sp, #0xc]
- cmp r6, r0
- blt _0223EBC6
-_0223EC08:
- ldr r0, [sp, #0xc]
- cmp r6, r0
- beq _0223EC14
- mov r0, #2
- str r0, [sp, #0x10]
- b _0223F08C
-_0223EC14:
- ldr r0, _0223EDA0 ; =0x00002DB0
- ldr r1, [r7, r0]
- sub r1, #0x10
- str r1, [r7, r0]
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02246764
- cmp r0, #0
- ldr r2, _0223EDA0 ; =0x00002DB0
- beq _0223EC4E
- ldr r1, [r7, r2]
- mov r0, #0x70
- bic r1, r0
- mov r6, #0xf1
- add r0, r5, #0
- str r1, [r7, r2]
- bl MaskOfFlagNo
- add r3, r6, #0
- add r3, #0x8f
- lsl r2, r0, #8
- add r0, r6, #0
- sub r0, #0xf2
- ldr r1, [r4, r3]
- eor r0, r2
- and r0, r1
- str r0, [r4, r3]
- b _0223EC7A
-_0223EC4E:
- ldr r1, [r7, r2]
- mov r0, #0x70
- tst r0, r1
- beq _0223EC5A
- mov r6, #0xf0
- b _0223EC7A
-_0223EC5A:
- mov r0, #0x70
- bic r1, r0
- mov r6, #0xf1
- add r0, r5, #0
- str r1, [r7, r2]
- bl MaskOfFlagNo
- add r3, r6, #0
- add r3, #0x8f
- lsl r2, r0, #8
- add r0, r6, #0
- sub r0, #0xf2
- ldr r1, [r4, r3]
- eor r0, r2
- and r0, r1
- str r0, [r4, r3]
-_0223EC7A:
- mov r0, #0x46
- lsl r0, r0, #2
- str r5, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- add r2, r6, #0
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223EC96:
- ldr r0, [sp, #0x10]
- cmp r0, #2
- bne _0223EC9E
- b _0223F08C
-_0223EC9E:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223ECA6:
- mov r2, #0xc0
- add r0, r5, #0
- mul r0, r2
- add r6, r4, r0
- ldr r0, _0223EDA0 ; =0x00002DB0
- lsl r2, r2, #4
- ldr r1, [r6, r0]
- tst r2, r1
- beq _0223ED06
- mov r2, #1
- lsl r2, r2, #0xa
- sub r1, r1, r2
- str r1, [r6, r0]
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02246764
- cmp r0, #0
- beq _0223ECD8
- ldr r1, _0223EDA0 ; =0x00002DB0
- ldr r0, _0223EDBC ; =0xFFFFF3FF
- ldr r2, [r6, r1]
- and r0, r2
- str r0, [r6, r1]
- b _0223ED06
-_0223ECD8:
- ldr r0, _0223EDA0 ; =0x00002DB0
- ldr r1, [r6, r0]
- mov r0, #3
- lsl r0, r0, #0xa
- tst r0, r1
- bne _0223ED06
- mov r0, #7
- tst r0, r1
- bne _0223ED06
- add r0, r4, #0
- add r0, #0x94
- str r5, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x33
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223ED06:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223ED0E:
- mov r0, #0xc0
- add r6, r5, #0
- mul r6, r0
- add r0, r4, r6
- ldr r1, _0223EDC0 ; =0x00002DE8
- mov ip, r0
- ldrh r3, [r0, r1]
- cmp r3, #0
- beq _0223ED88
- ldr r7, _0223EDC4 ; =0x00002D4C
- mov r2, #0
- mov r1, ip
-_0223ED26:
- ldrh r0, [r1, r7]
- cmp r3, r0
- beq _0223ED34
- add r2, r2, #1
- add r1, r1, #2
- cmp r2, #4
- blt _0223ED26
-_0223ED34:
- cmp r2, #4
- bne _0223ED44
- ldr r0, _0223EDC8 ; =0x00002DC8
- add r1, r4, r0
- ldr r2, [r1, r6]
- mov r0, #7
- bic r2, r0
- str r2, [r1, r6]
-_0223ED44:
- ldr r1, _0223EDC8 ; =0x00002DC8
- add r0, r4, r6
- ldr r0, [r0, r1]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1d
- beq _0223ED64
- add r2, r4, r1
- ldr r1, [r2, r6]
- mov r3, #7
- bic r1, r3
- sub r3, r0, #1
- mov r0, #7
- and r0, r3
- orr r0, r1
- str r0, [r2, r6]
- b _0223ED88
-_0223ED64:
- mov r2, #0
- add r1, #0x20
- mov r0, ip
- strh r2, [r0, r1]
- mov r0, #0x46
- lsl r0, r0, #2
- str r5, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x48
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223ED88:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223ED90:
- mov r0, #0xc0
- add r6, r5, #0
- mul r6, r0
- add r0, r4, r6
- ldr r1, _0223EDCC ; =0x00002DEC
- b _0223EDD0
- .align 2, 0
-_0223ED9C: .word 0xF7FFFFFF
-_0223EDA0: .word 0x00002DB0
-_0223EDA4: .word 0x0000215C
-_0223EDA8: .word 0x00002DEA
-_0223EDAC: .word 0x00002DAC
-_0223EDB0: .word 0x00002D8C
-_0223EDB4: .word 0x00000107
-_0223EDB8: .word 0x0000213C
-_0223EDBC: .word 0xFFFFF3FF
-_0223EDC0: .word 0x00002DE8
-_0223EDC4: .word 0x00002D4C
-_0223EDC8: .word 0x00002DC8
-_0223EDCC: .word 0x00002DEC
-_0223EDD0:
- str r0, [sp, #8]
- ldrh r2, [r0, r1]
- cmp r2, #0
- beq _0223EE4E
- ldr r7, _0223F0B8 ; =0x00002D4C
- mov r3, #0
- add r1, r0, #0
-_0223EDDE:
- ldrh r0, [r1, r7]
- cmp r2, r0
- beq _0223EDEC
- add r3, r3, #1
- add r1, r1, #2
- cmp r3, #4
- blt _0223EDDE
-_0223EDEC:
- cmp r3, #4
- beq _0223EDFE
- beq _0223EE0A
- ldr r0, [sp, #8]
- add r1, r0, r3
- ldr r0, _0223F0BC ; =0x00002D6C
- ldrb r0, [r1, r0]
- cmp r0, #0
- bne _0223EE0A
-_0223EDFE:
- ldr r0, _0223F0C0 ; =0x00002DC8
- add r2, r4, r0
- ldr r1, [r2, r6]
- mov r0, #0x38
- bic r1, r0
- str r1, [r2, r6]
-_0223EE0A:
- ldr r1, _0223F0C0 ; =0x00002DC8
- add r0, r4, r6
- ldr r0, [r0, r1]
- lsl r0, r0, #0x1a
- lsr r2, r0, #0x1d
- beq _0223EE2A
- add r1, r4, r1
- sub r2, r2, #1
- lsl r2, r2, #0x1d
- ldr r0, [r1, r6]
- mov r3, #0x38
- bic r0, r3
- lsr r2, r2, #0x1a
- orr r0, r2
- str r0, [r1, r6]
- b _0223EE4E
-_0223EE2A:
- ldr r0, [sp, #8]
- mov r2, #0
- add r1, #0x24
- strh r2, [r0, r1]
- mov r0, #0x46
- lsl r0, r0, #2
- str r5, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x4a
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223EE4E:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EE56:
- mov r0, #0xc0
- mul r0, r5
- add r3, r4, r0
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r2, [r3, r0]
- mov r1, #0x18
- tst r1, r2
- beq _0223EE6C
- sub r2, #8
- str r2, [r3, r0]
-_0223EE6C:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EE74:
- mov r0, #0xc0
- mul r0, r5
- ldr r2, _0223F0C0 ; =0x00002DC8
- add r5, r4, r0
- ldr r1, [r5, r2]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x1e
- beq _0223EEB2
- add r3, r4, r2
- ldr r6, [r3, r0]
- mov r1, #0xc0
- add r7, r6, #0
- bic r7, r1
- lsl r1, r6, #0x18
- lsr r1, r1, #0x1e
- sub r1, r1, #1
- lsl r1, r1, #0x1e
- lsr r1, r1, #0x18
- orr r1, r7
- str r1, [r3, r0]
- ldr r0, [r3, r0]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1e
- bne _0223EEB2
- add r0, r2, #0
- sub r0, #8
- ldr r1, [r5, r0]
- ldr r0, _0223F0C4 ; =0xFFFFFDFF
- sub r2, #8
- and r0, r1
- str r0, [r5, r2]
-_0223EEB2:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EEBA:
- ldr r0, _0223F0C0 ; =0x00002DC8
- mov r2, #0xc0
- add r3, r5, #0
- mul r3, r2
- add r1, r4, r0
- ldr r7, [r1, r3]
- lsl r0, r7, #0x15
- lsr r6, r0, #0x1d
- beq _0223EEFE
- ldr r0, _0223F0C8 ; =0xFFFFF8FF
- and r7, r0
- sub r0, r6, #1
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x15
- orr r0, r7
- str r0, [r1, r3]
- ldr r0, [r1, r3]
- lsl r0, r0, #0x15
- lsr r0, r0, #0x1d
- bne _0223EEFE
- add r0, r2, #0
- add r0, #0x58
- str r5, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- add r2, #0x60
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223EEFE:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EF06:
- ldr r0, _0223F0CC ; =0x00002DCC
- mov r1, #0xc0
- add r3, r5, #0
- mul r3, r1
- add r2, r4, r0
- ldr r7, [r2, r3]
- lsl r0, r7, #0x10
- lsr r6, r0, #0x1d
- beq _0223EF48
- ldr r0, _0223F0D0 ; =0xFFFF1FFF
- and r7, r0
- sub r0, r6, #1
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x10
- orr r0, r7
- str r0, [r2, r3]
- ldr r0, [r2, r3]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x1d
- bne _0223EF48
- add r1, #0x58
- str r5, [r4, r1]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xf2
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223EF48:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EF50:
- ldr r0, _0223F0CC ; =0x00002DCC
- mov r1, #0xc0
- add r3, r5, #0
- mul r3, r1
- add r2, r4, r0
- ldr r7, [r2, r3]
- lsl r0, r7, #0xd
- lsr r6, r0, #0x1d
- beq _0223EF92
- ldr r0, _0223F0D4 ; =0xFFF8FFFF
- and r7, r0
- sub r0, r6, #1
- lsl r0, r0, #0x1d
- lsr r0, r0, #0xd
- orr r0, r7
- str r0, [r2, r3]
- ldr r0, [r2, r3]
- lsl r0, r0, #0xd
- lsr r0, r0, #0x1d
- bne _0223EF92
- add r1, #0x58
- str r5, [r4, r1]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xf3
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223EF92:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EF9A:
- ldr r0, _0223F0CC ; =0x00002DCC
- mov r1, #0xc0
- add r3, r5, #0
- mul r3, r1
- add r2, r4, r0
- ldr r7, [r2, r3]
- lsl r0, r7, #0xa
- lsr r6, r0, #0x1d
- beq _0223EFDC
- ldr r0, _0223F0D8 ; =0xFFC7FFFF
- and r7, r0
- sub r0, r6, #1
- lsl r0, r0, #0x1d
- lsr r0, r0, #0xa
- orr r0, r7
- str r0, [r2, r3]
- ldr r0, [r2, r3]
- lsl r0, r0, #0xa
- lsr r0, r0, #0x1d
- bne _0223EFDC
- add r1, #0x58
- str r5, [r4, r1]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xf4
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223EFDC:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EFE4:
- mov r6, #0xc0
- add r0, r5, #0
- mul r0, r6
- mov r3, #0xb7
- add r1, r4, r0
- lsl r3, r3, #6
- ldr r0, [r1, r3]
- lsl r2, r6, #5
- tst r2, r0
- beq _0223F02C
- mov r2, #2
- lsl r2, r2, #0xa
- sub r0, r0, r2
- str r0, [r1, r3]
- ldr r1, [r1, r3]
- lsl r0, r6, #5
- tst r0, r1
- bne _0223F02C
- add r0, r4, #0
- add r0, #0x94
- str r5, [r0]
- add r0, r4, #0
- mov r1, #4
- add r0, #0x88
- str r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x12
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223F02C:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223F034:
- ldr r0, [sp, #4]
- add r1, r4, #0
- add r2, r5, #0
- add r3, sp, #0x14
- bl MOD11_022493A0
- cmp r0, #1
- bne _0223F060
- mov r0, #0x46
- lsl r0, r0, #2
- str r5, [r4, r0]
- ldr r2, [sp, #0x14]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223F060:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223F068:
- ldr r0, [sp, #4]
- add r1, r4, #0
- add r2, r5, #0
- bl MOD11_02249A7C
- cmp r0, #1
- bne _0223F07A
- mov r0, #1
- str r0, [sp, #0x10]
-_0223F07A:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223F082:
- mov r0, #0
- str r0, [r4, #0x18]
- ldr r0, [r4, #0x1c]
- add r0, r0, #1
- str r0, [r4, #0x1c]
-_0223F08C:
- ldr r0, [sp, #0x10]
- cmp r0, #0
- beq _0223F09C
- ldr r0, [sp, #4]
- bl MOD11_0225679C
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
-_0223F09C:
- ldr r1, [r4, #0x1c]
- ldr r0, [sp, #0xc]
- cmp r1, r0
- bge _0223F0A8
- bl _0223E6E8
-_0223F0A8:
- mov r0, #0
- str r0, [r4, #0x18]
- str r0, [r4, #0x1c]
- mov r0, #0xb
- str r0, [r4, #8]
-_0223F0B2:
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223F0B8: .word 0x00002D4C
-_0223F0BC: .word 0x00002D6C
-_0223F0C0: .word 0x00002DC8
-_0223F0C4: .word 0xFFFFFDFF
-_0223F0C8: .word 0xFFFFF8FF
-_0223F0CC: .word 0x00002DCC
-_0223F0D0: .word 0xFFFF1FFF
-_0223F0D4: .word 0xFFF8FFFF
-_0223F0D8: .word 0xFFC7FFFF
-
- thumb_func_start MOD11_0223F0DC
-MOD11_0223F0DC: ; 0x0223F0DC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r4, r1, #0
- str r0, [sp]
- bl MOD11_0222FF84
- ldr r1, [r4, #8]
- add r7, r0, #0
- add r0, r4, #0
- add r2, r1, #0
- mov r3, #1
- bl MOD11_0224246C
- cmp r0, #1
- bne _0223F0FC
- b _0223F30C
-_0223F0FC:
- ldr r0, [sp]
- bl MOD11_0225679C
- ldr r0, [r4, #0x20]
- cmp r0, #0
- beq _0223F114
- cmp r0, #1
- beq _0223F1FE
- cmp r0, #2
- bne _0223F112
- b _0223F2C4
-_0223F112:
- b _0223F302
-_0223F114:
- ldr r0, [r4, #0x24]
- cmp r0, r7
- bge _0223F1F4
- add r5, r4, #0
- add r5, #0x24
-_0223F11E:
- add r1, r4, r0
- ldr r0, _0223F310 ; =0x000021EC
- ldrb r6, [r1, r0]
- add r0, r6, #0
- bl MaskOfFlagNo
- ldr r1, _0223F314 ; =0x00003108
- ldrb r1, [r4, r1]
- tst r0, r1
- ldr r0, [r5]
- beq _0223F13A
- add r0, r0, #1
- str r0, [r5]
- b _0223F1EE
-_0223F13A:
- add r0, r0, #1
- mov r1, #0x62
- str r0, [r5]
- add r0, r4, r6
- lsl r1, r1, #2
- ldrb r1, [r0, r1]
- cmp r1, #0
- beq _0223F1EE
- mov r1, #0x62
- lsl r1, r1, #2
- ldrb r1, [r0, r1]
- sub r2, r1, #1
- mov r1, #0x62
- lsl r1, r1, #2
- strb r2, [r0, r1]
- ldrb r0, [r0, r1]
- cmp r0, #0
- bne _0223F1EE
- mov r0, #0xc0
- mul r0, r6
- add r1, r4, r0
- ldr r0, _0223F318 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0223F1EE
- ldr r0, [sp]
- add r1, r6, #0
- bl MOD11_02230270
- mov r2, #0x6f
- lsl r2, r2, #2
- add r1, r4, r2
- lsl r5, r0, #2
- ldr r3, [r1, r5]
- mov r0, #0x10
- bic r3, r0
- add r0, r4, #0
- str r3, [r1, r5]
- add r2, #0x1f
- add r0, #0xf6
- strh r2, [r0]
- add r0, r4, #0
- mov r1, #0xa
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0224682C
- add r1, r4, #0
- add r1, #0xf8
- str r0, [r1]
- mov r0, #0x19
- lsl r0, r0, #4
- add r1, r4, #0
- add r3, r4, r0
- lsl r2, r6, #1
- ldrh r5, [r3, r2]
- add r1, #0xfc
- str r5, [r1]
- add r1, r0, #0
- sub r1, #0x78
- str r6, [r4, r1]
- lsl r1, r6, #2
- add r5, r0, #0
- add r1, r4, r1
- add r5, #8
- ldr r6, [r1, r5]
- add r5, r0, #0
- sub r5, #0x74
- str r6, [r4, r5]
- ldrh r3, [r3, r2]
- add r2, r0, #0
- sub r2, #0x6c
- str r3, [r4, r2]
- add r0, #0x18
- ldr r1, [r1, r0]
- ldr r0, _0223F31C ; =0x0000215C
- mov r2, #0x79
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #8
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223F1EE:
- ldr r0, [r4, #0x24]
- cmp r0, r7
- blt _0223F11E
-_0223F1F4:
- ldr r0, [r4, #0x20]
- add r0, r0, #1
- str r0, [r4, #0x20]
- mov r0, #0
- str r0, [r4, #0x24]
-_0223F1FE:
- ldr r0, [r4, #0x24]
- cmp r0, r7
- bge _0223F2BA
- add r5, r4, #0
- add r5, #0x24
-_0223F208:
- add r1, r4, r0
- ldr r0, _0223F310 ; =0x000021EC
- ldrb r6, [r1, r0]
- add r0, r6, #0
- bl MaskOfFlagNo
- ldr r1, _0223F314 ; =0x00003108
- ldrb r1, [r4, r1]
- tst r0, r1
- ldr r0, [r5]
- beq _0223F224
- add r0, r0, #1
- str r0, [r5]
- b _0223F2B4
-_0223F224:
- add r0, r0, #1
- str r0, [r5]
- mov r0, #0xc0
- mul r0, r6
- mov r1, #0xb7
- add r3, r4, r0
- lsl r1, r1, #6
- ldr r2, [r3, r1]
- mov r1, #0x20
- tst r1, r2
- beq _0223F2B4
- ldr r7, _0223F320 ; =0x00002DC8
- add r2, r4, r7
- ldr r1, [r2, r0]
- lsl r1, r1, #0x11
- lsr r1, r1, #0x1e
- bne _0223F27E
- add r1, r7, #0
- sub r1, #8
- add r1, r4, r1
- str r1, [sp, #4]
- ldr r1, [r1, r0]
- mov r5, #0x20
- bic r1, r5
- ldr r5, [sp, #4]
- sub r7, #0x3c
- str r1, [r5, r0]
- ldr r0, [r2, r0]
- lsl r0, r0, #0x11
- lsr r1, r0, #0x1e
- mov r0, #0x13
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, [r3, r7]
- ldr r1, _0223F31C ; =0x0000215C
- neg r0, r0
- str r0, [r4, r1]
- add r0, r1, #0
- sub r0, #0x20
- ldr r2, [r4, r0]
- mov r0, #0x40
- orr r0, r2
- sub r1, #0x20
- str r0, [r4, r1]
- b _0223F298
-_0223F27E:
- mov r3, #0x13
- lsl r3, r3, #4
- str r1, [r4, r3]
- ldr r3, [r2, r0]
- ldr r1, _0223F324 ; =0xFFFF9FFF
- and r1, r3
- lsl r3, r3, #0x11
- lsr r3, r3, #0x1e
- sub r3, r3, #1
- lsl r3, r3, #0x1e
- lsr r3, r3, #0x11
- orr r1, r3
- str r1, [r2, r0]
-_0223F298:
- mov r0, #0x46
- lsl r0, r0, #2
- str r6, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x66
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #8
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223F2B4:
- ldr r0, [r4, #0x24]
- cmp r0, r7
- blt _0223F208
-_0223F2BA:
- ldr r0, [r4, #0x20]
- add r0, r0, #1
- str r0, [r4, #0x20]
- mov r0, #0
- str r0, [r4, #0x24]
-_0223F2C4:
- mov r1, #6
- lsl r1, r1, #6
- ldr r3, [r4, r1]
- mov r2, #7
- lsl r2, r2, #0x10
- add r0, r3, #0
- tst r0, r2
- beq _0223F2F8
- mov r0, #1
- lsl r0, r0, #0x10
- sub r0, r3, r0
- str r0, [r4, r1]
- ldr r0, [r4, r1]
- tst r0, r2
- bne _0223F2F8
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xfb
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #8
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223F2F8:
- ldr r0, [r4, #0x20]
- add r0, r0, #1
- str r0, [r4, #0x20]
- mov r0, #0
- str r0, [r4, #0x24]
-_0223F302:
- mov r0, #0
- str r0, [r4, #0x20]
- str r0, [r4, #0x24]
- mov r0, #0xc
- str r0, [r4, #8]
-_0223F30C:
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0223F310: .word 0x000021EC
-_0223F314: .word 0x00003108
-_0223F318: .word 0x00002D8C
-_0223F31C: .word 0x0000215C
-_0223F320: .word 0x00002DC8
-_0223F324: .word 0xFFFF9FFF
-
- thumb_func_start MOD11_0223F328
-MOD11_0223F328: ; 0x0223F328
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldr r1, [r4, #8]
- add r5, r0, #0
- add r0, r4, #0
- add r2, r1, #0
- bl MOD11_02242510
- cmp r0, #1
- beq _0223F37C
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02241FD8
- cmp r0, #1
- beq _0223F37C
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02241D2C
- cmp r0, #1
- beq _0223F37C
- mov r1, #0x15
- lsl r1, r1, #4
- ldr r0, [r4, r1]
- add r0, r0, #1
- str r0, [r4, r1]
- add r0, r1, #0
- add r0, #0x24
- ldr r0, [r4, r0]
- add r1, #0x24
- add r0, r0, #1
- str r0, [r4, r1]
- add r0, r4, #0
- bl MOD11_02245494
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02245C5C
- mov r0, #2
- str r0, [r4, #8]
-_0223F37C:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223F380
-MOD11_0223F380: ; 0x0223F380
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- str r0, [sp, #8]
- add r0, r5, #0
- add r0, #0xec
- ldr r0, [r0]
- mov r4, #0
- add r1, r5, r0
- ldr r0, _0223F4A8 ; =0x000021E8
- ldrb r2, [r1, r0]
- lsl r0, r2, #6
- add r1, r5, r0
- mov r0, #0x75
- str r2, [r5, #0x64]
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- beq _0223F3B4
- mov r0, #0xc1
- mov r1, #0xa5
- lsl r0, r0, #6
- str r1, [r5, r0]
- mov r4, #1
- b _0223F478
-_0223F3B4:
- mov r0, #0xc0
- mul r0, r2
- ldr r6, _0223F4AC ; =0x00002DEC
- add r0, r5, r0
- ldrh r1, [r0, r6]
- cmp r1, #0
- beq _0223F3DC
- add r3, r6, #2
- ldrh r3, [r0, r3]
- sub r6, #0xa0
- lsl r3, r3, #1
- add r0, r0, r3
- ldrh r0, [r0, r6]
- cmp r1, r0
- bne _0223F3DC
- mov r0, #0xc1
- lsl r0, r0, #6
- str r1, [r5, r0]
- mov r4, #1
- b _0223F478
-_0223F3DC:
- cmp r1, #0
- beq _0223F42E
- mov r7, #0xc0
- add r0, r2, #0
- mul r0, r7
- ldr r3, _0223F4B0 ; =0x00002DEE
- add r0, r5, r0
- ldrh r6, [r0, r3]
- lsl r6, r6, #1
- add r0, r0, r6
- add r6, r3, #0
- sub r6, #0xa2
- ldrh r0, [r0, r6]
- cmp r1, r0
- beq _0223F42E
- mov r1, #0xc1
- lsl r1, r1, #6
- str r0, [r5, r1]
- ldr r1, [r5, #0x64]
- mov r0, #0
- add r2, r1, #0
- mul r2, r7
- add r2, r5, r2
- sub r1, r3, #2
- strh r0, [r2, r1]
- ldr r1, [r5, #0x64]
- mov r4, #1
- add r2, r1, #0
- mul r2, r7
- add r1, r5, r2
- strh r0, [r1, r3]
- ldr r0, [r5, #0x64]
- sub r3, #0x26
- add r2, r0, #0
- add r3, r5, r3
- mul r2, r7
- ldr r1, [r3, r2]
- mov r0, #0x38
- bic r1, r0
- str r1, [r3, r2]
- b _0223F478
-_0223F42E:
- add r0, r5, #0
- add r1, r2, #0
- bl MOD11_0224AD04
- cmp r0, #0
- bne _0223F44A
- ldr r0, [r5, #0x64]
- lsl r0, r0, #2
- add r1, r5, r0
- ldr r0, _0223F4B4 ; =0x0000304C
- ldr r1, [r1, r0]
- sub r0, #0xc
- str r1, [r5, r0]
- b _0223F478
-_0223F44A:
- ldr r2, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r2
- lsl r1, r2, #1
- add r3, r5, r0
- add r0, r5, r1
- ldr r1, _0223F4B8 ; =0x000030BC
- ldrh r2, [r0, r1]
- lsl r2, r2, #1
- add r3, r3, r2
- ldr r2, _0223F4BC ; =0x00002D4C
- ldrh r3, [r3, r2]
- add r2, r1, #0
- sub r2, #8
- ldrh r0, [r0, r2]
- cmp r0, r3
- beq _0223F474
- sub r1, #0x7c
- str r3, [r5, r1]
- mov r4, #1
- b _0223F478
-_0223F474:
- sub r1, #0x7c
- str r3, [r5, r1]
-_0223F478:
- mov r3, #0xc1
- lsl r3, r3, #6
- ldr r1, [r5, r3]
- add r0, r3, #4
- str r1, [r5, r0]
- mov r0, #0x16
- str r0, [r5, #8]
- str r4, [sp]
- mov r0, #0
- str r0, [sp, #4]
- ldr r3, [r5, r3]
- ldr r0, [sp, #8]
- lsl r3, r3, #0x10
- ldr r2, [r5, #0x64]
- add r1, r5, #0
- lsr r3, r3, #0x10
- bl MOD11_02244C28
- str r0, [r5, #0x6c]
- ldr r0, [sp, #8]
- bl MOD11_0225679C
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0223F4A8: .word 0x000021E8
-_0223F4AC: .word 0x00002DEC
-_0223F4B0: .word 0x00002DEE
-_0223F4B4: .word 0x0000304C
-_0223F4B8: .word 0x000030BC
-_0223F4BC: .word 0x00002D4C
-
- thumb_func_start MOD11_0223F4C0
-MOD11_0223F4C0: ; 0x0223F4C0
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0xec
- ldr r2, [r2]
- add r7, r0, #0
- add r3, r4, r2
- ldr r2, _0223F5FC ; =0x000021E8
- ldrb r2, [r3, r2]
- str r2, [r4, #0x64]
- bl MOD11_022482A4
- str r0, [r4, #0x6c]
- ldr r0, _0223F600 ; =0x000021B0
- ldr r1, [r4, #0x64]
- add r2, r4, r0
- lsl r0, r1, #4
- add r6, r2, r0
- add r0, r7, #0
- bl MOD11_02230270
- cmp r0, #0
- beq _0223F568
- ldr r0, [r4, #0x64]
- asr r0, r0, #1
- add r1, r4, r0
- ldr r0, _0223F604 ; =0x000003D1
- ldrb r2, [r1, r0]
- cmp r2, #4
- bhi _0223F554
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0223F508: ; jump table
- .short _0223F512 - _0223F508 - 2 ; case 0
- .short _0223F516 - _0223F508 - 2 ; case 1
- .short _0223F51A - _0223F508 - 2 ; case 2
- .short _0223F544 - _0223F508 - 2 ; case 3
- .short _0223F552 - _0223F508 - 2 ; case 4
-_0223F512:
- ldr r5, _0223F608 ; =0x00000121
- b _0223F554
-_0223F516:
- ldr r5, _0223F60C ; =0x0000010B
- b _0223F554
-_0223F51A:
- add r0, r0, #2
- ldrb r0, [r1, r0]
- mov r1, #1
- tst r1, r0
- beq _0223F534
- mov r1, #0x3e
- add r2, r0, #0
- tst r2, r1
- beq _0223F534
- mov r0, #6
- add r1, #0xf2
- str r0, [r4, r1]
- b _0223F53E
-_0223F534:
- bl LowestFlagNo
- mov r1, #0x13
- lsl r1, r1, #4
- str r0, [r4, r1]
-_0223F53E:
- mov r5, #0x43
- lsl r5, r5, #2
- b _0223F554
-_0223F544:
- add r0, r0, #2
- ldrb r0, [r1, r0]
- mov r5, #0x13
- lsl r5, r5, #4
- str r0, [r4, r5]
- sub r5, #0x23
- b _0223F554
-_0223F552:
- ldr r5, _0223F610 ; =0x0000010E
-_0223F554:
- ldr r1, [r4, #0x64]
- mov r0, #1
- bic r1, r0
- ldr r0, _0223F614 ; =0x000003D6
- add r1, r4, r1
- ldrh r1, [r1, r0]
- mov r0, #0x4a
- lsl r0, r0, #2
- str r1, [r4, r0]
- b _0223F5DA
-_0223F568:
- ldrb r0, [r6, #2]
- cmp r0, #3
- bhi _0223F5D2
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223F57A: ; jump table
- .short _0223F582 - _0223F57A - 2 ; case 0
- .short _0223F582 - _0223F57A - 2 ; case 1
- .short _0223F598 - _0223F57A - 2 ; case 2
- .short _0223F582 - _0223F57A - 2 ; case 3
-_0223F582:
- ldrh r1, [r6]
- ldr r0, _0223F618 ; =0x0000FFC1
- add r0, r1, r0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- cmp r0, #1
- bhi _0223F594
- mov r5, #0xde
- b _0223F5D2
-_0223F594:
- mov r5, #0xdf
- b _0223F5D2
-_0223F598:
- add r0, r7, #0
- mov r5, #0xb
- bl MOD11_0222FF74
- mov r1, #1
- tst r0, r1
- bne _0223F5D2
- add r0, r7, #0
- bl MOD11_0222FF74
- mov r1, #1
- lsl r1, r1, #0xa
- tst r0, r1
- bne _0223F5D2
- add r0, r7, #0
- bl MOD11_02230214
- ldrh r1, [r6]
- mov r2, #1
- mov r3, #5
- bl FUN_0206EDD4
- add r0, r7, #0
- bl MOD11_02230218
- ldrh r1, [r6]
- ldrb r2, [r6, #2]
- bl FUN_0206F1E4
-_0223F5D2:
- ldrh r1, [r6]
- mov r0, #0x4a
- lsl r0, r0, #2
- str r1, [r4, r0]
-_0223F5DA:
- add r0, r4, #0
- mov r1, #1
- add r2, r5, #0
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x27
- str r0, [r4, #0xc]
- ldr r1, _0223F61C ; =0x0000216C
- mov r0, #2
- ldr r2, [r4, r1]
- lsl r0, r0, #0x1e
- orr r0, r2
- str r0, [r4, r1]
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223F5FC: .word 0x000021E8
-_0223F600: .word 0x000021B0
-_0223F604: .word 0x000003D1
-_0223F608: .word 0x00000121
-_0223F60C: .word 0x0000010B
-_0223F610: .word 0x0000010E
-_0223F614: .word 0x000003D6
-_0223F618: .word 0x0000FFC1
-_0223F61C: .word 0x0000216C
-
- thumb_func_start MOD11_0223F620
-MOD11_0223F620: ; 0x0223F620
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- mov r2, #9
- bl MOD11_022431DC
- add r0, r4, #0
- add r0, #0xec
- ldr r0, [r0]
- ldr r1, _0223F660 ; =0x000021E8
- add r0, r4, r0
- ldrb r0, [r0, r1]
- mov r2, #0
- str r0, [r4, #0x64]
- str r0, [r4, #0x78]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x28
- str r0, [r4, #0xc]
- mov r0, #0x4e
- lsl r0, r0, #2
- str r2, [r4, r0]
- add r0, r1, #0
- sub r0, #0x7c
- ldr r2, [r4, r0]
- mov r0, #2
- lsl r0, r0, #0x1e
- orr r0, r2
- sub r1, #0x7c
- str r0, [r4, r1]
- pop {r4, pc}
- .align 2, 0
-_0223F660: .word 0x000021E8
-
- thumb_func_start MOD11_0223F664
-MOD11_0223F664: ; 0x0223F664
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r1, #0xec
- ldr r1, [r1]
- add r5, r0, #0
- add r2, r4, r1
- ldr r1, _0223F71C ; =0x000021E8
- ldrb r1, [r2, r1]
- str r1, [r4, #0x64]
- bl MOD11_02230270
- cmp r0, #0
- beq _0223F6D6
- add r0, r5, #0
- bl MOD11_0222FF74
- mov r1, #4
- tst r0, r1
- bne _0223F6D6
- ldr r0, [r4, #0x64]
- mov r2, #0xc0
- add r1, r0, #0
- mul r1, r2
- ldr r0, _0223F720 ; =0x00002DB0
- add r1, r4, r1
- ldr r1, [r1, r0]
- ldr r0, _0223F724 ; =0x0400E000
- tst r0, r1
- beq _0223F6BA
- add r0, r4, #0
- mov r1, #1
- add r2, #0x5e
- bl MOD11_022431DC
- add r0, r4, #0
- mov r1, #0
- add r0, #0xb4
- str r1, [r0]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x27
- str r0, [r4, #0xc]
- pop {r3, r4, r5, pc}
-_0223F6BA:
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xe6
- bl MOD11_022431DC
- add r0, r4, #0
- mov r1, #0
- add r0, #0xb4
- str r1, [r0]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x2a
- str r0, [r4, #0xc]
- pop {r3, r4, r5, pc}
-_0223F6D6:
- ldr r2, [r4, #0x64]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022470B8
- cmp r0, #0
- beq _0223F700
- add r0, r4, #0
- mov r1, #1
- mov r2, #3
- bl MOD11_022431DC
- add r0, r4, #0
- mov r1, #0
- add r0, #0xb4
- str r1, [r0]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x2a
- str r0, [r4, #0xc]
- pop {r3, r4, r5, pc}
-_0223F700:
- add r0, r4, #0
- mov r1, #1
- mov r2, #8
- bl MOD11_022431DC
- add r0, r4, #0
- mov r1, #0
- add r0, #0xb4
- str r1, [r0]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x27
- str r0, [r4, #0xc]
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0223F71C: .word 0x000021E8
-_0223F720: .word 0x00002DB0
-_0223F724: .word 0x0400E000
-
- thumb_func_start MOD11_0223F728
-MOD11_0223F728: ; 0x0223F728
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r2, _0223F76C ; =0x00000113
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- mov r0, #0
- str r0, [r4, #0x64]
- mov r0, #1
- str r0, [r4, #0x6c]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x27
- str r0, [r4, #0xc]
- mov r0, #0x4a
- mov r1, #5
- lsl r0, r0, #2
- str r1, [r4, r0]
- add r0, r5, #0
- bl MOD11_02230E00
- sub r1, r0, #1
- add r0, r5, #0
- bl MOD11_02230E0C
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0
- bl MOD11_02256020
- pop {r3, r4, r5, pc}
- nop
-_0223F76C: .word 0x00000113
-
- thumb_func_start MOD11_0223F770
-MOD11_0223F770: ; 0x0223F770
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xe3
- bl MOD11_022431DC
- mov r0, #0
- str r0, [r4, #0x64]
- mov r0, #1
- str r0, [r4, #0x6c]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x27
- str r0, [r4, #0xc]
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- mov r0, #0x4e
- lsl r0, r0, #2
- str r1, [r4, r0]
- ldr r0, _0223F7C4 ; =0x0000311C
- ldrb r1, [r4, r0]
- cmp r1, #0xc
- bhs _0223F7AA
- add r1, r1, #1
- strb r1, [r4, r0]
-_0223F7AA:
- mov r0, #0x4e
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- cmp r0, #0
- beq _0223F7C0
- ldr r0, _0223F7C8 ; =0x0000311D
- ldrb r1, [r4, r0]
- cmp r1, #0xc
- bhs _0223F7C0
- add r1, r1, #1
- strb r1, [r4, r0]
-_0223F7C0:
- pop {r4, pc}
- nop
-_0223F7C4: .word 0x0000311C
-_0223F7C8: .word 0x0000311D
-
- thumb_func_start MOD11_0223F7CC
-MOD11_0223F7CC: ; 0x0223F7CC
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xe4
- bl MOD11_022431DC
- mov r0, #0
- str r0, [r4, #0x64]
- mov r0, #1
- str r0, [r4, #0x6c]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x27
- str r0, [r4, #0xc]
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- mov r0, #0x4e
- lsl r0, r0, #2
- str r1, [r4, r0]
- ldr r0, _0223F824 ; =0x0000311D
- ldrb r1, [r4, r0]
- cmp r1, #0
- beq _0223F806
- sub r1, r1, #1
- strb r1, [r4, r0]
-_0223F806:
- mov r0, #0x4e
- lsl r0, r0, #2
- ldr r1, [r4, r0]
- cmp r1, #0
- beq _0223F822
- mov r1, #1
- sub r0, #8
- str r1, [r4, r0]
- ldr r0, _0223F828 ; =0x0000311C
- ldrb r1, [r4, r0]
- cmp r1, #0
- beq _0223F822
- sub r1, r1, #1
- strb r1, [r4, r0]
-_0223F822:
- pop {r4, pc}
- .align 2, 0
-_0223F824: .word 0x0000311D
-_0223F828: .word 0x0000311C
-
- thumb_func_start MOD11_0223F82C
-MOD11_0223F82C: ; 0x0223F82C
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xe5
- bl MOD11_022431DC
- mov r0, #0
- str r0, [r4, #0x64]
- mov r0, #1
- str r0, [r4, #0x6c]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x27
- str r0, [r4, #0xc]
- pop {r4, pc}
-
- thumb_func_start MOD11_0223F84C
-MOD11_0223F84C: ; 0x0223F84C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- str r0, [sp, #0x18]
- add r4, r1, #0
- add r6, r2, #0
- bl MOD11_0222FF74
- add r5, r0, #0
- ldr r0, [sp, #0x18]
- mov r1, #0
- bl MOD11_022301D4
- add r7, r0, #0
- mov r0, #0x84
- tst r0, r5
- beq _0223F872
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223F872:
- ldr r0, [sp, #0x18]
- ldr r1, [r4, #0x64]
- bl MOD11_02230270
- cmp r0, #0
- beq _0223F884
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223F884:
- mov r0, #0x40
- tst r0, r5
- beq _0223F89C
- ldr r0, [sp, #0x18]
- ldr r1, [r4, #0x64]
- bl MOD11_02230260
- cmp r0, #4
- bne _0223F89C
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223F89C:
- ldr r0, [sp, #0x18]
- add r1, r4, #0
- bl MOD11_0224ADB8
- cmp r0, #1
- bne _0223F8AE
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223F8AE:
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_0224AD04
- cmp r0, #0
- bne _0223F8C0
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223F8C0:
- add r0, r7, #0
- bl FUN_020239F4
- cmp r0, #8
- blt _0223F8D0
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223F8D0:
- add r0, r7, #0
- mov r5, #0xa
- bl FUN_020239F4
- cmp r0, #2
- blt _0223F8DE
- mov r5, #0x1e
-_0223F8DE:
- add r0, r7, #0
- bl FUN_020239F4
- cmp r0, #4
- blt _0223F8EA
- mov r5, #0x32
-_0223F8EA:
- add r0, r7, #0
- bl FUN_020239F4
- cmp r0, #6
- blt _0223F8F6
- mov r5, #0x46
-_0223F8F6:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r7, r1, #0
- mul r7, r0
- ldr r0, _0223FAEC ; =0x00002D74
- add r1, r4, r7
- ldrb r0, [r1, r0]
- cmp r0, r5
- bhi _0223F90E
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223F90E:
- bl rand_LC
- lsl r0, r0, #0x18
- ldr r1, _0223FAEC ; =0x00002D74
- add r2, r4, r7
- ldrb r2, [r2, r1]
- lsr r0, r0, #0x18
- add r2, r5, r2
- mul r0, r2
- asr r0, r0, #8
- cmp r0, r5
- bge _0223F92C
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223F92C:
- ldr r0, _0223FAF0 ; =0x00003044
- ldr r0, [r4, r0]
- cmp r0, #0x63
- bne _0223F940
- add r1, #0x3c
- add r0, r4, r1
- ldr r2, [r0, r7]
- ldr r1, _0223FAF4 ; =0xFF7FFFFF
- and r1, r2
- str r1, [r0, r7]
-_0223F940:
- ldr r7, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r7
- add r1, r4, r0
- ldr r0, _0223FAF8 ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _0223F968
- ldr r0, _0223FAF0 ; =0x00003044
- ldr r0, [r4, r0]
- cmp r0, #0xad
- beq _0223F95E
- cmp r0, #0xd6
- bne _0223F968
-_0223F95E:
- mov r0, #0xfe
- str r0, [r6]
- add sp, #0x20
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_0223F968:
- mov r0, #0xc0
- mul r0, r7
- add r1, r4, r0
- ldr r0, _0223FAEC ; =0x00002D74
- ldrb r0, [r1, r0]
- str r0, [sp, #0x1c]
- bl rand_LC
- ldr r1, [sp, #0x1c]
- lsl r0, r0, #0x18
- add r1, r5, r1
- lsr r0, r0, #0x18
- mul r0, r1
- asr r0, r0, #8
- cmp r0, r5
- bge _0223FA2E
- lsl r0, r7, #1
- add r1, r4, r0
- ldr r0, _0223FAFC ; =0x000030BC
- ldrh r0, [r1, r0]
- bl MaskOfFlagNo
- add r3, r0, #0
- mov r0, #0
- mvn r0, r0
- str r0, [sp]
- ldr r0, [sp, #0x18]
- ldr r2, [r4, #0x64]
- add r1, r4, #0
- bl MOD11_02245D38
- add r5, r0, #0
- cmp r5, #0xf
- bne _0223F9B6
- mov r0, #0xff
- str r0, [r6]
- add sp, #0x20
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_0223F9B6:
- bl rand_LC
- mov r1, #3
- add r7, r0, #0
- and r7, r1
- add r0, r7, #0
- bl MaskOfFlagNo
- tst r0, r5
- bne _0223F9B6
- ldr r0, [r4, #0x64]
- ldr r3, _0223FAFC ; =0x000030BC
- lsl r0, r0, #1
- add r0, r4, r0
- strh r7, [r0, r3]
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- lsl r1, r1, #1
- add r1, r4, r1
- ldrh r1, [r1, r3]
- add r0, r4, r0
- lsl r1, r1, #1
- add r1, r0, r1
- ldr r0, _0223FB00 ; =0x00002D4C
- ldrh r1, [r1, r0]
- add r0, r3, #0
- sub r0, #0x7c
- str r1, [r4, r0]
- add r0, r3, #0
- sub r0, #0x7c
- ldr r1, [r4, r0]
- add r0, r3, #0
- sub r0, #0x78
- str r1, [r4, r0]
- mov r0, #1
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- sub r3, #0x7c
- ldr r3, [r4, r3]
- ldr r0, [sp, #0x18]
- lsl r3, r3, #0x10
- ldr r2, [r4, #0x64]
- add r1, r4, #0
- lsr r3, r3, #0x10
- bl MOD11_02244C28
- str r0, [r4, #0x6c]
- mov r0, #1
- lsl r0, r0, #8
- str r0, [r6]
- ldr r1, _0223FB04 ; =0x00002184
- mov r0, #1
- ldr r2, [r4, r1]
- add sp, #0x20
- orr r0, r2
- str r0, [r4, r1]
- mov r0, #2
- pop {r3, r4, r5, r6, r7, pc}
-_0223FA2E:
- ldr r0, [sp, #0x1c]
- sub r0, r0, r5
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- bl rand_LC
- lsl r0, r0, #0x18
- lsr r7, r0, #0x18
- cmp r7, r5
- bge _0223FA8E
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _0223FAF8 ; =0x00002DAC
- ldr r0, [r2, r0]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bne _0223FA8E
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x48
- beq _0223FA8E
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0xf
- beq _0223FA8E
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x66
- beq _0223FA8E
- mov r1, #6
- lsl r1, r1, #6
- mov r0, #0xf
- ldr r2, [r4, r1]
- lsl r0, r0, #8
- tst r0, r2
- bne _0223FA8E
- sub r1, #0x7f
- add sp, #0x20
- str r1, [r6]
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_0223FA8E:
- sub r0, r7, r5
- cmp r0, r5
- bge _0223FAE2
- ldr r1, [r4, #0x64]
- mov r0, #0x46
- str r1, [r4, #0x6c]
- lsl r0, r0, #2
- str r1, [r4, r0]
- ldr r1, [r4, #0x64]
- mov r3, #0
- str r3, [sp]
- mov r0, #0x28
- str r0, [sp, #4]
- lsl r0, r1, #0x18
- str r3, [sp, #8]
- lsr r0, r0, #0x18
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- mov r2, #1
- ldr r0, [sp, #0x18]
- add r1, r4, #0
- str r2, [sp, #0x14]
- bl MOD11_0224B310
- ldr r1, _0223FB08 ; =0x0000215C
- str r0, [r4, r1]
- ldr r1, [r4, r1]
- add r0, r4, #0
- bl MOD11_0224BF10
- ldr r1, _0223FB08 ; =0x0000215C
- add sp, #0x20
- str r0, [r4, r1]
- mov r0, #0
- ldr r2, [r4, r1]
- mvn r0, r0
- mul r0, r2
- str r0, [r4, r1]
- ldr r0, _0223FB0C ; =0x00000102
- str r0, [r6]
- mov r0, #3
- pop {r3, r4, r5, r6, r7, pc}
-_0223FAE2:
- mov r0, #0xff
- str r0, [r6]
- mov r0, #1
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0223FAEC: .word 0x00002D74
-_0223FAF0: .word 0x00003044
-_0223FAF4: .word 0xFF7FFFFF
-_0223FAF8: .word 0x00002DAC
-_0223FAFC: .word 0x000030BC
-_0223FB00: .word 0x00002D4C
-_0223FB04: .word 0x00002184
-_0223FB08: .word 0x0000215C
-_0223FB0C: .word 0x00000102
-
- thumb_func_start MOD11_0223FB10
-MOD11_0223FB10: ; 0x0223FB10
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- ldr r3, [r5, #0x64]
- mov r2, #0x1c
- mul r2, r3
- add r6, r5, r2
- mov r2, #0xb5
- lsl r2, r2, #2
- ldr r2, [r6, r2]
- str r0, [sp, #4]
- lsl r2, r2, #0x1f
- mov r4, #1
- lsr r2, r2, #0x1f
- bne _0223FBCA
- ldr r6, [r5, #0x6c]
- cmp r6, #0xff
- beq _0223FBCA
- mov r2, #0xc1
- lsl r2, r2, #6
- ldr r7, [r5, r2]
- ldr r2, _0223FC98 ; =0x0000011E
- cmp r7, r2
- bne _0223FB4E
- mov r2, #0x2e
- str r2, [sp]
- mov r2, #3
- bl MOD11_02246870
- add r4, r4, r0
- b _0223FBCA
-_0223FB4E:
- lsl r0, r7, #4
- add r1, r5, r0
- ldr r0, _0223FC9C ; =0x000003E6
- ldrh r1, [r1, r0]
- cmp r1, #0x40
- bgt _0223FB78
- bge _0223FB94
- cmp r1, #0x10
- bgt _0223FB72
- bge _0223FBCA
- cmp r1, #8
- bgt _0223FBB8
- cmp r1, #4
- blt _0223FBB8
- beq _0223FBA6
- cmp r1, #8
- beq _0223FB94
- b _0223FBB8
-_0223FB72:
- cmp r1, #0x20
- beq _0223FBCA
- b _0223FBB8
-_0223FB78:
- add r0, r2, #0
- sub r0, #0x1e
- cmp r1, r0
- bgt _0223FB8C
- sub r2, #0x1e
- cmp r1, r2
- bge _0223FBCA
- cmp r1, #0x80
- beq _0223FBA6
- b _0223FBB8
-_0223FB8C:
- add r2, #0xe2
- cmp r1, r2
- beq _0223FBCA
- b _0223FBB8
-_0223FB94:
- mov r0, #0x2e
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #9
- bl MOD11_02246870
- add r4, r4, r0
- b _0223FBCA
-_0223FBA6:
- mov r0, #0x2e
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #3
- bl MOD11_02246870
- add r4, r4, r0
- b _0223FBCA
-_0223FBB8:
- cmp r3, r6
- beq _0223FBCA
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x2e
- bne _0223FBCA
- add r4, r4, #1
-_0223FBCA:
- mov r0, #0xb5
- lsl r0, r0, #6
- add r2, r5, r0
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- mov r1, #0xc1
- lsl r1, r1, #6
- ldr r1, [r5, r1]
- add r0, r2, r0
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl MOD11_022461AC
- add r6, r0, #0
- ldr r1, [r5, #0x64]
- mov r0, #0x75
- lsl r0, r0, #2
- add r0, r5, r0
- lsl r7, r1, #6
- ldr r3, [r0, r7]
- lsl r2, r3, #0x1e
- lsr r2, r2, #0x1f
- bne _0223FC42
- lsl r2, r3, #0x1f
- lsr r2, r2, #0x1f
- bne _0223FC42
- mov r1, #2
- orr r1, r3
- str r1, [r0, r7]
- ldr r0, _0223FCA0 ; =0x00002D6C
- ldr r1, [r5, #0x64]
- add r2, r5, r0
- mov r0, #0xc0
- mul r0, r1
- add r1, r2, r0
- ldrb r0, [r1, r6]
- cmp r0, #0
- beq _0223FC34
- cmp r6, #4
- bge _0223FC34
- cmp r0, r4
- ble _0223FC24
- sub r0, r0, r4
- b _0223FC26
-_0223FC24:
- mov r0, #0
-_0223FC26:
- strb r0, [r1, r6]
- ldr r0, [sp, #4]
- ldr r2, [r5, #0x64]
- add r1, r5, #0
- bl MOD11_02245190
- b _0223FC90
-_0223FC34:
- ldr r1, _0223FCA4 ; =0x0000216C
- mov r0, #2
- ldr r2, [r5, r1]
- lsl r0, r0, #8
- orr r0, r2
- str r0, [r5, r1]
- b _0223FC90
-_0223FC42:
- mov r2, #0xc0
- add r0, r1, #0
- mul r0, r2
- add r0, r5, r0
- ldr r3, _0223FCA0 ; =0x00002D6C
- add r4, r0, r6
- ldrb r4, [r4, r3]
- cmp r4, #0
- bne _0223FC90
- ldr r4, _0223FCA8 ; =0x0000213C
- mov r7, #2
- ldr r4, [r5, r4]
- lsl r7, r7, #8
- tst r4, r7
- bne _0223FC90
- add r3, #0x44
- ldr r0, [r0, r3]
- lsl r3, r7, #3
- tst r3, r0
- bne _0223FC90
- lsl r2, r2, #4
- tst r0, r2
- bne _0223FC90
- add r0, r1, #0
- bl MaskOfFlagNo
- add r1, r7, #0
- sub r1, #0x80
- ldr r2, [r5, r1]
- lsl r0, r0, #8
- tst r0, r2
- bne _0223FC90
- cmp r6, #4
- bge _0223FC90
- ldr r0, _0223FCA4 ; =0x0000216C
- add r1, #0x80
- ldr r2, [r5, r0]
- orr r1, r2
- str r1, [r5, r0]
-_0223FC90:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223FC98: .word 0x0000011E
-_0223FC9C: .word 0x000003E6
-_0223FCA0: .word 0x00002D6C
-_0223FCA4: .word 0x0000216C
-_0223FCA8: .word 0x0000213C
-
- thumb_func_start MOD11_0223FCAC
-MOD11_0223FCAC: ; 0x0223FCAC
- push {r3, r4, r5, lr}
- add r5, r1, #0
- ldr r0, [r5, #0x6c]
- mov r4, #0
- cmp r0, #0xff
- bne _0223FCC6
- ldr r1, _0223FD10 ; =0x00003044
- add r0, r5, #0
- ldr r1, [r5, r1]
- bl MOD11_02246AF8
- cmp r0, #0
- beq _0223FCF8
-_0223FCC6:
- ldr r0, [r5, #0x6c]
- cmp r0, #0xff
- bne _0223FD0C
- ldr r1, _0223FD10 ; =0x00003044
- add r0, r5, #0
- ldr r1, [r5, r1]
- bl MOD11_02246AF8
- cmp r0, #1
- bne _0223FD0C
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _0223FD14 ; =0x00002DB0
- ldr r0, [r1, r0]
- mov r1, #1
- lsl r1, r1, #0xc
- tst r0, r1
- bne _0223FCF8
- ldr r0, _0223FD18 ; =0x0000213C
- ldr r2, [r5, r0]
- lsr r0, r1, #3
- tst r0, r2
- beq _0223FD0C
-_0223FCF8:
- ldr r2, _0223FD1C ; =0x00000119
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022431DC
- mov r0, #0x26
- str r0, [r5, #0xc]
- mov r0, #0x15
- str r0, [r5, #8]
- mov r4, #1
-_0223FD0C:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0223FD10: .word 0x00003044
-_0223FD14: .word 0x00002DB0
-_0223FD18: .word 0x0000213C
-_0223FD1C: .word 0x00000119
-
- thumb_func_start MOD11_0223FD20
-MOD11_0223FD20: ; 0x0223FD20
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r4, r1, #0
- ldr r1, _0223FDA0 ; =0x00003044
- ldr r2, [r4, r1]
- lsl r1, r2, #4
- add r5, r4, r1
- ldr r1, _0223FDA4 ; =0x000003E6
- ldrh r3, [r5, r1]
- cmp r3, #0x10
- beq _0223FD54
- cmp r3, #0x20
- beq _0223FD54
- sub r1, r1, #5
- ldrb r1, [r5, r1]
- cmp r1, #0
- beq _0223FD54
- ldr r1, _0223FDA8 ; =0x0000213C
- ldr r3, [r4, r1]
- mov r1, #2
- lsl r1, r1, #0xe
- tst r1, r3
- bne _0223FD54
- mov r1, #0x20
- tst r1, r3
- beq _0223FD58
-_0223FD54:
- cmp r2, #0x56
- bne _0223FD98
-_0223FD58:
- ldr r1, [r4, #0x64]
- ldr r3, _0223FDAC ; =0x00002144
- str r1, [sp]
- ldr r1, [r4, #0x6c]
- str r1, [sp, #4]
- ldr r1, [r4, r3]
- str r1, [sp, #8]
- add r1, r3, #0
- add r1, #0x28
- add r1, r4, r1
- str r1, [sp, #0xc]
- add r3, #0x1c
- ldr r3, [r4, r3]
- add r1, r4, #0
- bl MOD11_02246274
- ldr r1, _0223FDAC ; =0x00002144
- str r0, [r4, r1]
- add r1, #0x28
- ldr r1, [r4, r1]
- mov r0, #8
- tst r0, r1
- beq _0223FD98
- mov r0, #0xd1
- lsl r0, r0, #2
- add r3, r4, r0
- ldr r0, [r4, #0x64]
- lsl r2, r0, #2
- ldr r1, [r3, r2]
- mov r0, #2
- orr r0, r1
- str r0, [r3, r2]
-_0223FD98:
- mov r0, #0
- add sp, #0x10
- pop {r3, r4, r5, pc}
- nop
-_0223FDA0: .word 0x00003044
-_0223FDA4: .word 0x000003E6
-_0223FDA8: .word 0x0000213C
-_0223FDAC: .word 0x00002144
-
- thumb_func_start MOD11_0223FDB0
-MOD11_0223FDB0: ; 0x0223FDB0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- str r0, [sp, #0x18]
- add r4, r1, #0
- ldr r0, _022400D8 ; =0x00003044
- add r5, r4, #0
- ldr r0, [r4, r0]
- mov r7, #0
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _022400DC ; =0x000003DE
- add r5, #0x50
- ldrh r0, [r1, r0]
- str r0, [sp, #0x1c]
- mov r0, #0xd1
- lsl r0, r0, #2
- add r6, r4, r0
- mov r0, #7
- str r0, [sp, #0x20]
- mov r0, #8
- str r0, [sp, #0x24]
- mov r0, #1
- str r0, [sp, #0x28]
-_0223FDDE:
- ldr r0, [r4, #0x50]
- cmp r0, #0x10
- bls _0223FDE6
- b _0224043C
-_0223FDE6:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223FDF2: ; jump table
- .short _0223FE14 - _0223FDF2 - 2 ; case 0
- .short _0223FE48 - _0223FDF2 - 2 ; case 1
- .short _0223FF42 - _0223FDF2 - 2 ; case 2
- .short _0223FFA6 - _0223FDF2 - 2 ; case 3
- .short _0223FFCE - _0223FDF2 - 2 ; case 4
- .short _0224000A - _0223FDF2 - 2 ; case 5
- .short _02240050 - _0223FDF2 - 2 ; case 6
- .short _0224008C - _0223FDF2 - 2 ; case 7
- .short _022400D4 - _0223FDF2 - 2 ; case 8
- .short _02240138 - _0223FDF2 - 2 ; case 9
- .short _02240174 - _0223FDF2 - 2 ; case 10
- .short _022401B0 - _0223FDF2 - 2 ; case 11
- .short _0224028C - _0223FDF2 - 2 ; case 12
- .short _022402E8 - _0223FDF2 - 2 ; case 13
- .short _0224034E - _0223FDF2 - 2 ; case 14
- .short _022403FE - _0223FDF2 - 2 ; case 15
- .short _02240436 - _0223FDF2 - 2 ; case 16
-_0223FE14:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _022400E0 ; =0x00002DB0
- ldr r1, [r2, r0]
- ldr r0, _022400E4 ; =0xFDFFFFFF
- and r1, r0
- ldr r0, _022400E0 ; =0x00002DB0
- str r1, [r2, r0]
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r1, [r2, r0]
- ldr r0, _022400E8 ; =0xFFFFBFFF
- and r1, r0
- mov r0, #0xb7
- lsl r0, r0, #6
- str r1, [r2, r0]
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_0223FE48:
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _022400EC ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _0223FF3A
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0xf
- lsl r0, r0, #8
- tst r0, r1
- beq _0223FE92
- add r0, r4, #0
- add r1, r2, #0
- bl MOD11_02246D1C
- cmp r0, #0x2b
- beq _0223FE92
- mov r0, #0x46
- ldr r1, [r4, #0x64]
- lsl r0, r0, #2
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x13
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r7, #2
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0223FF3A
-_0223FE92:
- ldr r0, _022400D8 ; =0x00003044
- ldr r0, [r4, r0]
- cmp r0, #0xd6
- beq _0223FEA8
- mov r0, #0xc1
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- cmp r0, #0xd6
- bne _0223FEA8
- mov r0, #1
- b _0223FEAA
-_0223FEA8:
- mov r0, #0
-_0223FEAA:
- cmp r0, #0
- bne _0223FF3A
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x30
- bne _0223FEBE
- mov r3, #2
- b _0223FEC0
-_0223FEBE:
- mov r3, #1
-_0223FEC0:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _022400EC ; =0x00002DAC
- ldr r1, [r2, r0]
- mov r0, #7
- and r0, r1
- cmp r0, r3
- ldr r0, _022400EC ; =0x00002DAC
- bhs _0223FEDE
- ldr r1, [r2, r0]
- ldr r0, [sp, #0x20]
- bic r1, r0
- b _0223FEE2
-_0223FEDE:
- ldr r0, [r2, r0]
- sub r1, r0, r3
-_0223FEE2:
- ldr r0, _022400EC ; =0x00002DAC
- str r1, [r2, r0]
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _022400EC ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _0223FF20
- ldr r0, _022400D8 ; =0x00003044
- ldr r0, [r4, r0]
- cmp r0, #0xad
- beq _0223FF3A
- mov r0, #0xc1
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- cmp r0, #0xd6
- beq _0223FF3A
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x14
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #2
- b _0223FF3A
-_0223FF20:
- mov r0, #0x46
- lsl r0, r0, #2
- str r2, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x13
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r7, #2
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0223FF3A:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_0223FF42:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _022400EC ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x20
- tst r0, r1
- beq _0223FF9E
- bl rand_LC
- mov r1, #5
- bl _s32_div_f
- cmp r1, #0
- beq _0223FF82
- ldr r0, [sp, #0x1c]
- cmp r0, #0x7d
- beq _0223FF9E
- cmp r0, #0xfd
- beq _0223FF9E
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x1c
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
- b _0223FF9E
-_0223FF82:
- mov r0, #0x46
- ldr r1, [r4, #0x64]
- lsl r0, r0, #2
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x1d
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r7, #2
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0223FF9E:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_0223FFA6:
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02247190
- cmp r0, #1
- bne _0223FFC6
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xbf
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
-_0223FFC6:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_0223FFCE:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _022400E0 ; =0x00002DB0
- ldr r1, [r2, r0]
- mov r0, #1
- lsl r0, r0, #0x16
- tst r0, r1
- beq _02240002
- ldr r0, _022400E0 ; =0x00002DB0
- ldr r1, [r2, r0]
- ldr r0, _022400F0 ; =0xFFBFFFFF
- and r1, r0
- ldr r0, _022400E0 ; =0x00002DB0
- str r1, [r2, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x41
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
-_02240002:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_0224000A:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _022400E0 ; =0x00002DB0
- ldr r1, [r2, r0]
- mov r0, #8
- tst r0, r1
- beq _02240048
- ldr r0, _022400E0 ; =0x00002DB0
- ldr r1, [sp, #0x24]
- ldr r0, [r2, r0]
- bic r0, r1
- ldr r1, _022400E0 ; =0x00002DB0
- str r0, [r2, r1]
- ldr r0, [r4, #0x64]
- mov r1, #0x40
- lsl r0, r0, #2
- ldr r2, [r6, r0]
- orr r1, r2
- str r1, [r6, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xf
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
-_02240048:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_02240050:
- mov r0, #0xc1
- lsl r0, r0, #6
- ldr r3, [r4, r0]
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _022400F4 ; =0x00002DE8
- ldrh r0, [r1, r0]
- cmp r3, r0
- bne _02240084
- lsl r0, r2, #2
- ldr r2, [r6, r0]
- mov r1, #0x10
- orr r1, r2
- str r1, [r6, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x47
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
-_02240084:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_0224008C:
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _022400F8 ; =0x00002DC8
- ldr r0, [r1, r0]
- lsl r0, r0, #0x15
- lsr r0, r0, #0x1d
- beq _022400CC
- ldr r0, _022400D8 ; =0x00003044
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _022400FC ; =0x000003E1
- ldrb r0, [r1, r0]
- cmp r0, #0
- bne _022400CC
- lsl r0, r2, #2
- ldr r2, [r6, r0]
- mov r1, #0x20
- orr r1, r2
- str r1, [r6, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x85
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
-_022400CC:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_022400D4:
- ldr r3, _022400D8 ; =0x00003044
- b _02240100
- .align 2, 0
-_022400D8: .word 0x00003044
-_022400DC: .word 0x000003DE
-_022400E0: .word 0x00002DB0
-_022400E4: .word 0xFDFFFFFF
-_022400E8: .word 0xFFFFBFFF
-_022400EC: .word 0x00002DAC
-_022400F0: .word 0xFFBFFFFF
-_022400F4: .word 0x00002DE8
-_022400F8: .word 0x00002DC8
-_022400FC: .word 0x000003E1
-_02240100:
- ldr r0, [sp, #0x18]
- ldr r2, [r4, #0x64]
- ldr r3, [r4, r3]
- add r1, r4, #0
- bl MOD11_022471C4
- cmp r0, #0
- beq _02240130
- ldr r0, [r4, #0x64]
- mov r1, #4
- lsl r0, r0, #2
- ldr r2, [r6, r0]
- orr r1, r2
- str r1, [r6, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x90
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
-_02240130:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_02240138:
- ldr r3, _0224047C ; =0x00003044
- ldr r0, [sp, #0x18]
- ldr r2, [r4, #0x64]
- ldr r3, [r4, r3]
- add r1, r4, #0
- bl MOD11_02247314
- cmp r0, #0
- beq _0224016C
- ldr r0, [r4, #0x64]
- mov r1, #1
- lsl r0, r0, #2
- ldr r2, [r6, r0]
- lsl r1, r1, #8
- orr r1, r2
- str r1, [r6, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x9d
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
-_0224016C:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_02240174:
- ldr r3, _0224047C ; =0x00003044
- ldr r0, [sp, #0x18]
- ldr r2, [r4, #0x64]
- ldr r3, [r4, r3]
- add r1, r4, #0
- bl MOD11_02247348
- cmp r0, #0
- beq _022401A8
- ldr r0, [r4, #0x64]
- mov r1, #2
- lsl r0, r0, #2
- ldr r2, [r6, r0]
- lsl r1, r1, #8
- orr r1, r2
- str r1, [r6, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xae
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
-_022401A8:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_022401B0:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _02240480 ; =0x00002DB0
- ldr r1, [r2, r0]
- mov r0, #7
- tst r0, r1
- bne _022401CA
- b _0224043C
-_022401CA:
- ldr r0, _02240480 ; =0x00002DB0
- ldr r0, [r2, r0]
- sub r1, r0, #1
- ldr r0, _02240480 ; =0x00002DB0
- str r1, [r2, r0]
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _02240480 ; =0x00002DB0
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _02240276
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _02240204
- add r0, r4, #0
- mov r2, #0x26
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r7, #2
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0224043C
-_02240204:
- ldr r0, [r4, #0x64]
- mov r1, #0x80
- lsl r0, r0, #2
- ldr r2, [r6, r0]
- mov r3, #0
- orr r1, r2
- str r1, [r6, r0]
- ldr r1, [r4, #0x64]
- mov r0, #0x46
- str r1, [r4, #0x6c]
- lsl r0, r0, #2
- str r1, [r4, r0]
- ldr r0, [r4, #0x64]
- mov r1, #0
- str r1, [sp]
- mov r1, #0x28
- str r1, [sp, #4]
- mov r1, #0
- lsl r0, r0, #0x18
- str r1, [sp, #8]
- lsr r0, r0, #0x18
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x18]
- add r1, r4, #0
- mov r2, #0xa5
- bl MOD11_0224B310
- ldr r1, _02240484 ; =0x0000215C
- str r0, [r4, r1]
- ldr r1, [r4, r1]
- add r0, r4, #0
- bl MOD11_0224BF10
- ldr r1, _02240484 ; =0x0000215C
- str r0, [r4, r1]
- add r0, r1, #0
- ldr r1, [r4, r0]
- mov r0, #0
- add r2, r1, #0
- mvn r0, r0
- mul r2, r0
- ldr r0, _02240484 ; =0x0000215C
- mov r1, #1
- str r2, [r4, r0]
- add r0, r4, #0
- mov r2, #0x27
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x21
- str r0, [r4, #0xc]
- mov r7, #1
- b _0224043C
-_02240276:
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x28
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r7, #2
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0224043C
-_0224028C:
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _02240488 ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x40
- tst r0, r1
- beq _022402E0
- add r0, r4, #0
- add r1, r2, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _022402E0
- bl rand_LC
- lsr r1, r0, #0x1f
- lsl r2, r0, #0x1e
- sub r2, r2, r1
- mov r0, #0x1e
- ror r2, r0
- add r0, r1, r2
- bne _022402E0
- ldr r0, [r4, #0x64]
- ldr r2, [sp, #0x28]
- lsl r1, r0, #2
- ldr r0, [r6, r1]
- bic r0, r2
- mov r2, #1
- orr r0, r2
- str r0, [r6, r1]
- add r1, r2, #0
- add r0, r4, #0
- mov r2, #0x20
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
-_022402E0:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_022402E8:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _02240480 ; =0x00002DB0
- ldr r1, [r1, r0]
- mov r0, #0xf
- lsl r0, r0, #0x10
- and r0, r1
- beq _02240346
- lsr r0, r0, #0x10
- bl LowestFlagNo
- mov r1, #0x46
- lsl r1, r1, #2
- str r0, [r4, r1]
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _02240326
- add r0, r4, #0
- mov r2, #0x6b
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r7, #2
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _02240346
-_02240326:
- ldr r0, [r4, #0x64]
- mov r1, #8
- lsl r0, r0, #2
- ldr r2, [r6, r0]
- orr r1, r2
- str r1, [r6, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x6c
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
-_02240346:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_0224034E:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _02240480 ; =0x00002DB0
- ldr r1, [r2, r0]
- mov r0, #3
- lsl r0, r0, #8
- tst r0, r1
- beq _0224043C
- ldr r0, _02240480 ; =0x00002DB0
- ldr r1, [r2, r0]
- mov r0, #1
- lsl r0, r0, #8
- sub r1, r1, r0
- ldr r0, _02240480 ; =0x00002DB0
- str r1, [r2, r0]
- ldr r0, [r4, #0x64]
- mov r1, #0xc0
- mul r1, r0
- add r2, r4, r1
- ldr r1, _02240480 ; =0x00002DB0
- ldr r2, [r2, r1]
- mov r1, #3
- lsl r1, r1, #8
- tst r1, r2
- bne _022403E8
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r0, _0224048C ; =0x000030E4
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _022403E8
- lsl r1, r0, #1
- ldr r0, _02240490 ; =0x00002144
- str r1, [r4, r0]
- ldr r3, [r4, #0x64]
- lsl r0, r3, #2
- add r1, r4, r0
- ldr r0, _02240494 ; =0x000030F4
- ldr r2, [r1, r0]
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _02240498 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _022403B8
- str r2, [r4, #0x6c]
- b _022403E8
-_022403B8:
- ldr r0, [sp, #0x18]
- add r1, r4, #0
- add r2, r3, #0
- bl MOD11_022482A4
- mov r1, #0xc0
- mul r1, r0
- str r0, [r4, #0x6c]
- ldr r0, _02240498 ; =0x00002D8C
- add r1, r4, r1
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _022403E8
- ldr r2, _0224049C ; =0x0000011A
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r7, #2
- b _0224043C
-_022403E8:
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x24
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r7, #2
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0224043C
-_022403FE:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _02240488 ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x20
- tst r0, r1
- beq _0224042E
- ldr r0, [sp, #0x1c]
- cmp r0, #0x7d
- beq _0224041A
- cmp r0, #0xfd
- bne _0224042E
-_0224041A:
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x1e
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r7, #2
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0224042E:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_02240436:
- mov r0, #0
- str r0, [r4, #0x50]
- mov r7, #3
-_0224043C:
- cmp r7, #0
- bne _02240442
- b _0223FDDE
-_02240442:
- ldr r0, [sp, #0x18]
- ldr r2, [r4, #0x64]
- add r1, r4, #0
- bl MOD11_02245190
- cmp r7, #1
- bne _0224046A
- ldr r1, _022404A0 ; =0x0000213C
- mov r0, #2
- ldr r2, [r4, r1]
- orr r0, r2
- str r0, [r4, r1]
- add r0, r1, #0
- add r0, #0x30
- ldr r2, [r4, r0]
- mov r0, #2
- lsl r0, r0, #0x1e
- orr r0, r2
- add r1, #0x30
- str r0, [r4, r1]
-_0224046A:
- cmp r7, #3
- beq _02240474
- add sp, #0x2c
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02240474:
- mov r0, #0
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- nop
-_0224047C: .word 0x00003044
-_02240480: .word 0x00002DB0
-_02240484: .word 0x0000215C
-_02240488: .word 0x00002DAC
-_0224048C: .word 0x000030E4
-_02240490: .word 0x00002144
-_02240494: .word 0x000030F4
-_02240498: .word 0x00002D8C
-_0224049C: .word 0x0000011A
-_022404A0: .word 0x0000213C
-
- thumb_func_start MOD11_022404A4
-MOD11_022404A4: ; 0x022404A4
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r5, #0
- ldr r7, _02240514 ; =0x0000216C
- mov r4, #0
- add r6, #0x54
-_022404B0:
- ldr r0, [r5, #0x54]
- cmp r0, #0
- beq _022404BC
- cmp r0, #1
- beq _022404FC
- b _02240502
-_022404BC:
- ldr r1, [r5, #0x64]
- ldr r2, [r5, #0x6c]
- add r0, r5, #0
- bl MOD11_02247418
- add r2, r0, #0
- beq _022404D4
- ldr r0, _02240514 ; =0x0000216C
- ldr r1, [r5, r0]
- ldr r0, _02240518 ; =0x001FD849
- tst r0, r1
- beq _022404D8
-_022404D4:
- cmp r2, #0xb5
- bne _022404F4
-_022404D8:
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r5, #8]
- mov r4, #1
- str r0, [r5, #0xc]
- mov r0, #0x15
- str r0, [r5, #8]
- mov r0, #2
- ldr r1, [r5, r7]
- lsl r0, r0, #0x1e
- orr r0, r1
- str r0, [r5, r7]
-_022404F4:
- ldr r0, [r6]
- add r0, r0, #1
- str r0, [r6]
- b _02240502
-_022404FC:
- mov r0, #0
- str r0, [r5, #0x54]
- mov r4, #2
-_02240502:
- cmp r4, #0
- beq _022404B0
- cmp r4, #2
- beq _0224050E
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_0224050E:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02240514: .word 0x0000216C
-_02240518: .word 0x001FD849
-
- thumb_func_start MOD11_0224051C
-MOD11_0224051C: ; 0x0224051C
- push {r4, lr}
- add r4, r1, #0
- ldr r2, _02240538 ; =0x00000116
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- pop {r4, pc}
- nop
-_02240538: .word 0x00000116
-
- thumb_func_start MOD11_0224053C
-MOD11_0224053C: ; 0x0224053C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- str r0, [sp, #4]
- add r5, r1, #0
- add r6, r2, #0
- str r3, [sp, #8]
- bl MOD11_0222FF74
- mov r1, #1
- lsl r1, r1, #0xa
- tst r0, r1
- beq _0224055A
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0224055A:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- ldr r0, [sp, #0x38]
- ldr r2, _02240868 ; =0x00002D5E
- lsl r0, r0, #4
- str r0, [sp, #0x10]
- add r1, r5, r0
- mov r0, #0x3e
- lsl r0, r0, #4
- ldrb r0, [r1, r0]
- add r1, r6, #0
- str r0, [sp, #0x18]
- mov r0, #0xc0
- mul r1, r0
- str r1, [sp, #0xc]
- add r1, r5, r1
- ldrsb r1, [r1, r2]
- sub r1, r1, #6
- lsl r1, r1, #0x18
- asr r7, r1, #0x18
- ldr r1, [sp, #8]
- mul r0, r1
- str r0, [sp, #0x14]
- add r1, r5, r0
- add r0, r2, #1
- ldrsb r1, [r1, r0]
- mov r0, #6
- sub r0, r0, r1
- lsl r0, r0, #0x18
- asr r4, r0, #0x18
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x56
- bne _022405AA
- lsl r0, r7, #0x19
- asr r7, r0, #0x18
-_022405AA:
- ldr r2, [sp, #8]
- add r0, r5, #0
- add r1, r6, #0
- mov r3, #0x56
- bl MOD11_02246D84
- cmp r0, #1
- bne _022405BE
- lsl r0, r4, #0x19
- asr r4, r0, #0x18
-_022405BE:
- ldr r2, [sp, #8]
- add r0, r5, #0
- add r1, r6, #0
- mov r3, #0x6d
- bl MOD11_02246D84
- cmp r0, #1
- bne _022405D0
- mov r7, #0
-_022405D0:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x6d
- bne _022405DE
- mov r4, #0
-_022405DE:
- ldr r0, _0224086C ; =0x00002DB0
- ldr r1, [sp, #0x14]
- add r2, r5, r0
- str r2, [sp, #0x1c]
- ldr r1, [r2, r1]
- mov r2, #2
- lsl r2, r2, #0x1c
- tst r1, r2
- bne _022405FE
- ldr r1, [sp, #0x14]
- add r0, #0x10
- add r1, r5, r1
- ldr r1, [r1, r0]
- lsr r0, r2, #7
- tst r0, r1
- beq _02240604
-_022405FE:
- cmp r4, #0
- bge _02240604
- mov r4, #0
-_02240604:
- add r0, r4, #6
- add r0, r0, r7
- lsl r0, r0, #0x18
- asr r7, r0, #0x18
- bpl _02240610
- mov r7, #0
-_02240610:
- cmp r7, #0xc
- ble _02240616
- mov r7, #0xc
-_02240616:
- ldr r0, _02240870 ; =0x000003E3
- add r1, r5, r0
- ldr r0, [sp, #0x10]
- ldrb r4, [r1, r0]
- cmp r4, #0
- bne _02240628
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02240628:
- ldr r0, _02240874 ; =0x0000213C
- mov r1, #0x20
- ldr r0, [r5, r0]
- add r2, r0, #0
- tst r2, r1
- beq _0224063A
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0224063A:
- lsl r1, r1, #5
- tst r0, r1
- beq _02240646
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02240646:
- mov r0, #0xd
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _02240688
- mov r0, #0x4c
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _02240688
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #0x30
- tst r0, r1
- beq _02240688
- ldr r0, [sp, #0x10]
- add r1, r5, r0
- ldr r0, _02240878 ; =0x000003DE
- ldrh r0, [r1, r0]
- cmp r0, #0x98
- bne _02240688
- mov r4, #0x32
-_02240688:
- ldr r0, _0224087C ; =0x0225E178
- lsl r1, r7, #1
- ldrb r0, [r0, r1]
- ldr r2, _02240880 ; =0x0225E179
- ldrb r1, [r2, r1]
- mul r0, r4
- bl _u32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0xe
- bne _022406B6
- mov r0, #0x82
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_022406B6:
- mov r0, #0xd
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224074E
- mov r0, #0x4c
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224074E
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #0xc
- tst r0, r1
- beq _02240708
- ldr r2, [sp, #8]
- add r0, r5, #0
- add r1, r6, #0
- mov r3, #8
- bl MOD11_02246D84
- cmp r0, #1
- bne _02240708
- mov r0, #0x50
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_02240708:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #0xc0
- tst r0, r1
- beq _02240732
- ldr r2, [sp, #8]
- add r0, r5, #0
- add r1, r6, #0
- mov r3, #0x51
- bl MOD11_02246D84
- cmp r0, #1
- bne _02240732
- mov r0, #0x50
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_02240732:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #2
- lsl r0, r0, #0xe
- tst r0, r1
- beq _0224074E
- mov r0, #6
- mul r0, r4
- mov r1, #0xa
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224074E:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x37
- bne _0224076E
- ldr r0, [sp, #0x18]
- cmp r0, #0
- bne _0224076E
- mov r0, #0x50
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224076E:
- ldr r2, [sp, #8]
- add r0, r5, #0
- add r1, r6, #0
- mov r3, #0x4d
- bl MOD11_02246D84
- cmp r0, #1
- bne _02240798
- ldr r1, [sp, #0x1c]
- ldr r0, [sp, #0x14]
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _02240798
- mov r0, #0x32
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_02240798:
- ldr r1, [sp, #8]
- add r0, r5, #0
- bl MOD11_02249D90
- add r7, r0, #0
- ldr r1, [sp, #8]
- add r0, r5, #0
- mov r2, #0
- bl MOD11_02249DA4
- cmp r7, #0x2f
- bne _022407BE
- mov r1, #0x64
- sub r0, r1, r0
- mul r0, r4
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_022407BE:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02249D90
- add r7, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0
- bl MOD11_02249DA4
- add r6, r0, #0
- cmp r7, #0x5c
- bne _022407E6
- add r0, #0x64
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_022407E6:
- cmp r7, #0x67
- bne _02240806
- ldr r1, [sp, #8]
- add r0, r5, #0
- bl MOD11_02249B7C
- cmp r0, #1
- bne _02240806
- add r6, #0x64
- add r0, r4, #0
- mul r0, r6
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_02240806:
- ldr r0, _02240884 ; =0x00002DCC
- ldr r1, [sp, #0xc]
- add r0, r5, r0
- ldr r2, [r0, r1]
- lsl r1, r2, #4
- lsr r1, r1, #0x1f
- beq _0224082A
- ldr r1, _02240888 ; =0xF7FFFFFF
- and r2, r1
- ldr r1, [sp, #0xc]
- str r2, [r0, r1]
- mov r0, #0x78
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224082A:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #7
- lsl r0, r0, #0xc
- tst r0, r1
- beq _02240846
- mov r0, #0xa
- mul r0, r4
- mov r1, #6
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_02240846:
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- add r0, r1, #1
- cmp r0, r4
- ble _02240860
- ldr r1, _0224088C ; =0x0000216C
- mov r0, #1
- ldr r2, [r5, r1]
- orr r0, r2
- str r0, [r5, r1]
-_02240860:
- mov r0, #0
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02240868: .word 0x00002D5E
-_0224086C: .word 0x00002DB0
-_02240870: .word 0x000003E3
-_02240874: .word 0x0000213C
-_02240878: .word 0x000003DE
-_0224087C: .word 0x0225E178
-_02240880: .word 0x0225E179
-_02240884: .word 0x00002DCC
-_02240888: .word 0xF7FFFFFF
-_0224088C: .word 0x0000216C
-
- thumb_func_start MOD11_02240890
-MOD11_02240890: ; 0x02240890
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- str r0, [sp, #4]
- add r5, r1, #0
- ldr r0, _02240A54 ; =0x0000213C
- add r6, r3, #0
- ldr r3, [r5, r0]
- mov r1, #0x20
- add r7, r2, #0
- ldr r4, [sp, #0x20]
- tst r1, r3
- beq _022408AE
- add sp, #8
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_022408AE:
- lsl r1, r6, #6
- add r3, r5, r1
- mov r1, #0x75
- lsl r1, r1, #2
- ldr r1, [r3, r1]
- lsl r1, r1, #0x1d
- lsr r1, r1, #0x1f
- beq _0224091C
- lsl r1, r4, #4
- add r3, r5, r1
- ldr r1, _02240A58 ; =0x000003E9
- ldrb r3, [r3, r1]
- mov r1, #2
- tst r1, r3
- beq _0224091C
- add r0, #0x30
- ldr r1, [r5, r0]
- ldr r0, _02240A5C ; =0x801FDA49
- tst r0, r1
- bne _0224091C
- cmp r4, #0xae
- bne _022408E8
- lsl r1, r4, #0x10
- add r0, r5, #0
- lsr r1, r1, #0x10
- bl MOD11_02246C20
- cmp r0, #1
- bne _0224091C
-_022408E8:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246AF8
- cmp r0, #0
- beq _02240900
- ldr r0, _02240A54 ; =0x0000213C
- ldr r1, [r5, r0]
- mov r0, #2
- lsl r0, r0, #8
- tst r0, r1
- beq _0224091C
-_02240900:
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r7, #0
- bl MOD11_022451F0
- ldr r1, _02240A60 ; =0x0000216C
- mov r0, #2
- ldr r2, [r5, r1]
- lsl r0, r0, #0xe
- orr r0, r2
- str r0, [r5, r1]
- add sp, #8
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0224091C:
- ldr r0, _02240A54 ; =0x0000213C
- ldr r1, [r5, r0]
- mov r0, #1
- lsl r0, r0, #0xa
- tst r0, r1
- bne _0224096E
- mov r0, #0xc0
- mul r0, r6
- add r3, r5, r0
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r2, [r3, r0]
- mov r1, #0x18
- tst r1, r2
- beq _02240946
- add r0, #0xc
- ldr r0, [r3, r0]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1e
- cmp r7, r0
- beq _0224095E
-_02240946:
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x63
- beq _0224095E
- ldr r1, [r5, #0x6c]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x63
- bne _0224096E
-_0224095E:
- ldr r1, _02240A60 ; =0x0000216C
- mov r0, #1
- ldr r2, [r5, r1]
- add sp, #8
- bic r2, r0
- str r2, [r5, r1]
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0224096E:
- mov r0, #0xd
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _022409DC
- mov r0, #0x4c
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _022409DC
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #3
- tst r0, r1
- beq _022409B8
- lsl r0, r4, #4
- add r1, r5, r0
- ldr r0, _02240A64 ; =0x000003DE
- ldrh r0, [r1, r0]
- cmp r0, #0x98
- bne _022409B8
- ldr r1, _02240A60 ; =0x0000216C
- mov r0, #1
- ldr r2, [r5, r1]
- bic r2, r0
- str r2, [r5, r1]
-_022409B8:
- mov r0, #6
- lsl r0, r0, #6
- ldr r0, [r5, r0]
- mov r1, #0xc0
- tst r0, r1
- beq _022409DC
- lsl r0, r4, #4
- add r2, r5, r0
- ldr r0, _02240A64 ; =0x000003DE
- add r1, #0x44
- ldrh r0, [r2, r0]
- cmp r0, r1
- bne _022409DC
- ldr r1, _02240A60 ; =0x0000216C
- mov r0, #1
- ldr r2, [r5, r1]
- bic r2, r0
- str r2, [r5, r1]
-_022409DC:
- ldr r1, _02240A60 ; =0x0000216C
- mov r2, #1
- ldr r0, [r5, r1]
- lsl r2, r2, #0xa
- tst r0, r2
- bne _02240A4C
- ldr r0, _02240A68 ; =0x00003044
- sub r2, #0x1a
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r0, r5, r0
- ldrh r0, [r0, r2]
- cmp r0, #0x80
- beq _02240A4C
- sub r1, #0x30
- ldr r0, [r5, r1]
- mov r1, #4
- tst r1, r0
- bne _02240A14
- mov r1, #0xc0
- mul r1, r6
- add r2, r5, r1
- mov r1, #0xb7
- lsl r1, r1, #6
- ldr r2, [r2, r1]
- mov r1, #0x40
- tst r1, r2
- bne _02240A40
-_02240A14:
- mov r1, #0xc0
- mul r1, r6
- add r2, r5, r1
- mov r1, #0xb7
- lsl r1, r1, #6
- ldr r1, [r2, r1]
- mov r2, #2
- lsl r2, r2, #0x1c
- tst r2, r1
- bne _02240A40
- mov r2, #8
- tst r2, r0
- bne _02240A34
- mov r2, #0x80
- tst r2, r1
- bne _02240A40
-_02240A34:
- mov r2, #0x10
- tst r0, r2
- bne _02240A4C
- lsl r0, r2, #0xe
- tst r0, r1
- beq _02240A4C
-_02240A40:
- ldr r1, _02240A60 ; =0x0000216C
- mov r0, #1
- ldr r2, [r5, r1]
- lsl r0, r0, #0x10
- orr r0, r2
- str r0, [r5, r1]
-_02240A4C:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02240A54: .word 0x0000213C
-_02240A58: .word 0x000003E9
-_02240A5C: .word 0x801FDA49
-_02240A60: .word 0x0000216C
-_02240A64: .word 0x000003DE
-_02240A68: .word 0x00003044
-
- thumb_func_start MOD11_02240A6C
-MOD11_02240A6C: ; 0x02240A6C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- bl MOD11_0222FF84
- add r2, r0, #0
- ldr r0, [r4, #0x6c]
- cmp r0, #0xff
- bne _02240A80
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02240A80:
- ldr r6, _02240BBC ; =0x0000216C
- ldr r1, _02240BC0 ; =0x801FDA49
- ldr r3, [r4, r6]
- add r7, r3, #0
- and r7, r1
- bne _02240B12
- mov r1, #0x75
- lsl r1, r1, #2
- lsl r0, r0, #6
- add r5, r4, r1
- ldr r3, [r5, r0]
- mov ip, r0
- lsl r0, r3, #0x1b
- lsr r0, r0, #0x1f
- beq _02240B12
- ldr r0, _02240BC4 ; =0x00003044
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _02240BC8 ; =0x000003E9
- ldrb r0, [r1, r0]
- mov r1, #4
- tst r0, r1
- beq _02240B12
- mov r0, #0x10
- bic r3, r0
- mov r0, ip
- str r3, [r5, r0]
- ldr r2, [r4, #0x64]
- mov r0, #0
- lsl r2, r2, #1
- add r3, r4, r2
- ldr r2, _02240BC4 ; =0x00003044
- add r2, #0x18
- strh r0, [r3, r2]
- ldr r2, [r4, #0x64]
- ldr r0, _02240BC4 ; =0x00003044
- lsl r2, r2, #1
- sub r0, r0, #4
- add r3, r4, r2
- ldr r2, _02240BC4 ; =0x00003044
- ldr r0, [r4, r0]
- add r2, #0x38
- strh r0, [r3, r2]
- ldr r0, _02240BC4 ; =0x00003044
- sub r0, r0, #4
- ldr r2, [r4, r0]
- ldr r0, _02240BC4 ; =0x00003044
- add r0, r0, #4
- str r2, [r4, r0]
- add r0, r6, #0
- sub r0, #0x30
- ldr r2, [r4, r0]
- lsl r0, r1, #0x12
- orr r0, r2
- sub r6, #0x30
- str r0, [r4, r6]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x8b
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- ldr r1, [r4, #0x6c]
- ldr r2, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_0224C438
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02240B12:
- mov r1, #0
- cmp r2, #0
- ble _02240BB8
- mov r0, #0x75
- lsl r0, r0, #2
- add r0, r4, r0
-_02240B1E:
- ldr r3, _02240BCC ; =0x000021EC
- add r5, r4, r1
- ldrb r5, [r5, r3]
- cmp r7, #0
- bne _02240BB2
- lsl r3, r5, #6
- str r3, [sp]
- ldr r3, [r0, r3]
- lsl r3, r3, #0x1a
- lsr r3, r3, #0x1f
- beq _02240BB2
- ldr r3, _02240BC4 ; =0x00003044
- ldr r3, [r4, r3]
- lsl r3, r3, #4
- add r6, r4, r3
- ldr r3, _02240BC8 ; =0x000003E9
- ldrb r6, [r6, r3]
- mov r3, #8
- tst r3, r6
- beq _02240BB2
- mov r1, #0x46
- lsl r1, r1, #2
- str r5, [r4, r1]
- ldr r1, [sp]
- mov r7, #1
- ldr r2, [r0, r1]
- mov r1, #0x20
- bic r2, r1
- ldr r1, [sp]
- lsl r7, r7, #0x14
- str r2, [r0, r1]
- ldr r2, _02240BD0 ; =0x0000213C
- ldr r0, [r4, r2]
- tst r0, r7
- bne _02240B92
- ldr r1, [r4, #0x64]
- mov r0, #0
- lsl r1, r1, #1
- add r3, r4, r1
- ldr r1, _02240BD4 ; =0x0000305C
- strh r0, [r3, r1]
- add r0, r1, #0
- sub r0, #0x1c
- ldr r6, [r4, r0]
- ldr r0, [r4, #0x64]
- lsl r0, r0, #1
- add r3, r4, r0
- add r0, r1, #0
- add r0, #0x20
- strh r6, [r3, r0]
- add r0, r1, #0
- sub r0, #0x1c
- ldr r0, [r4, r0]
- sub r1, #0x14
- str r0, [r4, r1]
- ldr r0, [r4, r2]
- orr r0, r7
- str r0, [r4, r2]
-_02240B92:
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x92
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add r1, r5, #0
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- ldr r2, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_0224C438
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02240BB2:
- add r1, r1, #1
- cmp r1, r2
- blt _02240B1E
-_02240BB8:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02240BBC: .word 0x0000216C
-_02240BC0: .word 0x801FDA49
-_02240BC4: .word 0x00003044
-_02240BC8: .word 0x000003E9
-_02240BCC: .word 0x000021EC
-_02240BD0: .word 0x0000213C
-_02240BD4: .word 0x0000305C
-
- thumb_func_start MOD11_02240BD8
-MOD11_02240BD8: ; 0x02240BD8
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_02232264
- cmp r0, #1
- bne _02240BF0
- add r0, r4, #0
- mov r1, #0
- add r0, #0xb4
- str r1, [r0]
- ldr r0, [r4, #0xc]
- str r0, [r4, #8]
-_02240BF0:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02240BF4
-MOD11_02240BF4: ; 0x02240BF4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldr r2, [r4, #0x48]
- add r5, r0, #0
- cmp r2, #6
- bhi _02240CEA
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_02240C0C: ; jump table
- .short _02240C1A - _02240C0C - 2 ; case 0
- .short _02240C26 - _02240C0C - 2 ; case 1
- .short _02240C3E - _02240C0C - 2 ; case 2
- .short _02240C8A - _02240C0C - 2 ; case 3
- .short _02240CA6 - _02240C0C - 2 ; case 4
- .short _02240CB8 - _02240C0C - 2 ; case 5
- .short _02240CD4 - _02240C0C - 2 ; case 6
-_02240C1A:
- bl MOD11_0224051C
- ldr r0, [r4, #0x48]
- add r0, r0, #1
- str r0, [r4, #0x48]
- pop {r3, r4, r5, pc}
-_02240C26:
- ldr r2, _02240D30 ; =0x00002184
- ldr r3, [r4, r2]
- mov r2, #4
- tst r2, r3
- bne _02240C38
- bl MOD11_0223FDB0
- cmp r0, #1
- beq _02240D2C
-_02240C38:
- ldr r0, [r4, #0x48]
- add r0, r0, #1
- str r0, [r4, #0x48]
-_02240C3E:
- ldr r0, _02240D30 ; =0x00002184
- ldr r1, [r4, r0]
- mov r0, #1
- tst r0, r1
- bne _02240C84
- add r0, r5, #0
- add r1, r4, #0
- add r2, sp, #0
- bl MOD11_0223F84C
- cmp r0, #0
- beq _02240C84
- cmp r0, #1
- beq _02240C64
- cmp r0, #2
- beq _02240C6A
- cmp r0, #3
- beq _02240C70
- b _02240C74
-_02240C64:
- mov r0, #0x26
- str r0, [r4, #0xc]
- b _02240C74
-_02240C6A:
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- b _02240C74
-_02240C70:
- mov r0, #0x21
- str r0, [r4, #0xc]
-_02240C74:
- mov r0, #0x15
- str r0, [r4, #8]
- ldr r2, [sp]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- pop {r3, r4, r5, pc}
-_02240C84:
- ldr r0, [r4, #0x48]
- add r0, r0, #1
- str r0, [r4, #0x48]
-_02240C8A:
- ldr r0, _02240D30 ; =0x00002184
- ldr r1, [r4, r0]
- mov r0, #8
- tst r0, r1
- bne _02240CA0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223FB10
- cmp r0, #1
- beq _02240D2C
-_02240CA0:
- ldr r0, [r4, #0x48]
- add r0, r0, #1
- str r0, [r4, #0x48]
-_02240CA6:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223FCAC
- cmp r0, #1
- beq _02240D2C
- ldr r0, [r4, #0x48]
- add r0, r0, #1
- str r0, [r4, #0x48]
-_02240CB8:
- ldr r0, _02240D30 ; =0x00002184
- ldr r1, [r4, r0]
- mov r0, #0x80
- tst r0, r1
- bne _02240CCE
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02240A6C
- cmp r0, #1
- beq _02240D2C
-_02240CCE:
- ldr r0, [r4, #0x48]
- add r0, r0, #1
- str r0, [r4, #0x48]
-_02240CD4:
- ldr r3, _02240D34 ; =0x00003044
- ldr r2, [r4, #0x64]
- ldr r3, [r4, r3]
- add r0, r5, #0
- lsl r3, r3, #0x10
- add r1, r4, #0
- lsr r3, r3, #0x10
- bl MOD11_02244F68
- mov r0, #0
- str r0, [r4, #0x48]
-_02240CEA:
- ldr r1, _02240D38 ; =0x0000216C
- ldr r0, _02240D3C ; =0x801FDA49
- ldr r2, [r4, r1]
- tst r0, r2
- beq _02240CFA
- mov r0, #0x19
- str r0, [r4, #8]
- b _02240D24
-_02240CFA:
- add r0, r1, #0
- sub r0, #0x2c
- ldr r2, [r4, r0]
- mov r0, #0x40
- orr r0, r2
- sub r1, #0x2c
- str r0, [r4, r1]
- ldr r2, _02240D34 ; =0x00003044
- add r0, r4, #0
- ldr r2, [r4, r2]
- mov r1, #0
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x17
- str r0, [r4, #0xc]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02247380
-_02240D24:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224AB44
-_02240D2C:
- pop {r3, r4, r5, pc}
- nop
-_02240D30: .word 0x00002184
-_02240D34: .word 0x00003044
-_02240D38: .word 0x0000216C
-_02240D3C: .word 0x801FDA49
-
- thumb_func_start MOD11_02240D40
-MOD11_02240D40: ; 0x02240D40
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldr r2, [r4, #0x4c]
- add r5, r0, #0
- cmp r2, #6
- bhi _02240E20
- add r3, r2, r2
- add r3, pc
- ldrh r3, [r3, #6]
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- add pc, r3
-_02240D58: ; jump table
- .short _02240D66 - _02240D58 - 2 ; case 0
- .short _02240D72 - _02240D58 - 2 ; case 1
- .short _02240D84 - _02240D58 - 2 ; case 2
- .short _02240DAE - _02240D58 - 2 ; case 3
- .short _02240DD8 - _02240D58 - 2 ; case 4
- .short _02240DFA - _02240D58 - 2 ; case 5
- .short _02240E1C - _02240D58 - 2 ; case 6
-_02240D66:
- add r2, r2, #1
- str r2, [r4, #0x4c]
- bl MOD11_0223FCAC
- cmp r0, #1
- beq _02240E24
-_02240D72:
- ldr r0, [r4, #0x4c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x4c]
- add r0, r5, #0
- bl MOD11_0224510C
- cmp r0, #1
- beq _02240E24
-_02240D84:
- ldr r0, _02240E28 ; =0x00002184
- ldr r1, [r4, r0]
- mov r0, #0x20
- tst r0, r1
- bne _02240DA8
- ldr r3, [r4, #0x6c]
- cmp r3, #0xff
- beq _02240DA8
- ldr r0, _02240E2C ; =0x00003044
- add r1, r4, #0
- ldr r0, [r4, r0]
- str r0, [sp]
- ldr r2, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_0224053C
- cmp r0, #1
- beq _02240E24
-_02240DA8:
- ldr r0, [r4, #0x4c]
- add r0, r0, #1
- str r0, [r4, #0x4c]
-_02240DAE:
- ldr r0, _02240E28 ; =0x00002184
- ldr r1, [r4, r0]
- mov r0, #0x40
- tst r0, r1
- bne _02240DD2
- ldr r3, [r4, #0x6c]
- cmp r3, #0xff
- beq _02240DD2
- ldr r0, _02240E2C ; =0x00003044
- add r1, r4, #0
- ldr r0, [r4, r0]
- str r0, [sp]
- ldr r2, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02240890
- cmp r0, #1
- beq _02240E24
-_02240DD2:
- ldr r0, [r4, #0x4c]
- add r0, r0, #1
- str r0, [r4, #0x4c]
-_02240DD8:
- ldr r0, _02240E28 ; =0x00002184
- ldr r1, [r4, r0]
- mov r0, #2
- tst r0, r1
- bne _02240DF4
- ldr r0, [r4, #0x6c]
- cmp r0, #0xff
- beq _02240DF4
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223FD20
- cmp r0, #1
- beq _02240E24
-_02240DF4:
- ldr r0, [r4, #0x4c]
- add r0, r0, #1
- str r0, [r4, #0x4c]
-_02240DFA:
- ldr r0, _02240E28 ; =0x00002184
- ldr r1, [r4, r0]
- mov r0, #0x10
- tst r0, r1
- bne _02240E16
- ldr r0, [r4, #0x6c]
- cmp r0, #0xff
- beq _02240E16
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022404A4
- cmp r0, #1
- beq _02240E24
-_02240E16:
- ldr r0, [r4, #0x4c]
- add r0, r0, #1
- str r0, [r4, #0x4c]
-_02240E1C:
- mov r0, #0
- str r0, [r4, #0x4c]
-_02240E20:
- mov r0, #0x18
- str r0, [r4, #8]
-_02240E24:
- pop {r3, r4, r5, pc}
- nop
-_02240E28: .word 0x00002184
-_02240E2C: .word 0x00003044
-
- thumb_func_start MOD11_02240E30
-MOD11_02240E30: ; 0x02240E30
- push {r3, r4, lr}
- sub sp, #4
- add r2, sp, #0
- add r4, r1, #0
- bl MOD11_02244948
- cmp r0, #1
- bne _02240E56
- ldr r2, [sp]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x19
- add sp, #4
- str r0, [r4, #0xc]
- pop {r3, r4, pc}
-_02240E56:
- mov r0, #0x19
- str r0, [r4, #8]
- add sp, #4
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02240E60
-MOD11_02240E60: ; 0x02240E60
- push {r4, lr}
- ldr r0, _02240ED8 ; =0x0000216C
- add r4, r1, #0
- ldr r1, [r4, r0]
- mov r2, #2
- lsl r2, r2, #0x1e
- add r3, r1, #0
- tst r3, r2
- beq _02240E78
- mov r0, #0x22
- str r0, [r4, #8]
- pop {r4, pc}
-_02240E78:
- lsr r2, r2, #0x16
- tst r2, r1
- beq _02240E92
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x2a
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- pop {r4, pc}
-_02240E92:
- add r2, r0, #0
- add r2, #0x14
- ldr r2, [r4, r2]
- cmp r2, #0
- beq _02240EB8
- mov r3, #1
- add r2, r1, #0
- tst r2, r3
- beq _02240EB8
- mov r2, #1
- bic r1, r2
- str r1, [r4, r0]
- ldr r2, [r4, r0]
- lsl r1, r3, #0xe
- orr r1, r2
- str r1, [r4, r0]
- mov r0, #0x1c
- str r0, [r4, #8]
- pop {r4, pc}
-_02240EB8:
- ldr r0, _02240EDC ; =0x001FD849
- tst r0, r1
- beq _02240ED2
- add r0, r4, #0
- mov r1, #1
- mov r2, #7
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x21
- str r0, [r4, #0xc]
- pop {r4, pc}
-_02240ED2:
- mov r0, #0x1a
- str r0, [r4, #8]
- pop {r4, pc}
- .align 2, 0
-_02240ED8: .word 0x0000216C
-_02240EDC: .word 0x001FD849
-
- thumb_func_start MOD11_02240EE0
-MOD11_02240EE0: ; 0x02240EE0
- push {r4, lr}
- add r4, r1, #0
- mov r1, #1
- add r0, r4, #0
- add r2, r1, #0
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x1b
- str r0, [r4, #0xc]
- pop {r4, pc}
-
- thumb_func_start MOD11_02240EF8
-MOD11_02240EF8: ; 0x02240EF8
- push {r3, r4, r5, r6, r7, lr}
- ldr r2, _02241260 ; =0x0000216C
- add r4, r1, #0
- ldr r1, [r4, r2]
- add r5, r0, #0
- mov r0, #0x20
- tst r0, r1
- beq _02240F1E
- ldr r0, [r4, #0x6c]
- mov r1, #0xc0
- add r3, r0, #0
- mul r3, r1
- ldr r0, _02241264 ; =0x00002D90
- add r3, r4, r3
- ldr r0, [r3, r0]
- sub r1, #0xc1
- mul r1, r0
- sub r2, #0x28
- str r1, [r4, r2]
-_02240F1E:
- ldr r0, _02241268 ; =0x00002144
- ldr r0, [r4, r0]
- cmp r0, #0
- bne _02240F28
- b _022412E8
-_02240F28:
- ldr r1, [r4, #0x6c]
- add r0, r4, #0
- bl MOD11_02249D90
- add r7, r0, #0
- ldr r1, [r4, #0x6c]
- add r0, r4, #0
- mov r2, #0
- bl MOD11_02249DA4
- str r0, [sp]
- ldr r0, _02241268 ; =0x00002144
- ldr r0, [r4, r0]
- cmp r0, #0
- blt _02240F4A
- bl ErrorHandling
-_02240F4A:
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- add r6, r0, #0
- ldr r1, [r4, #0x6c]
- add r0, r5, #0
- bl MOD11_02230270
- cmp r6, r0
- bne _02240F6C
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- mov r2, #0
- mov r3, #0x46
- bl MOD11_022564A8
-_02240F6C:
- ldr r0, [r4, #0x6c]
- ldr r2, [r4, #0x64]
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r0, _0224126C ; =0x000030F4
- str r2, [r1, r0]
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- add r6, r1, #0
- mul r6, r0
- mov r2, #1
- ldr r1, _02241270 ; =0x00002DB0
- add r5, r4, r6
- ldr r3, [r5, r1]
- lsl r2, r2, #0x18
- tst r2, r3
- beq _02241044
- ldr r2, _02241268 ; =0x00002144
- ldr r2, [r4, r2]
- cmp r2, #0
- bge _02241044
- add r3, r1, #0
- add r3, #0x30
- ldr r3, [r5, r3]
- add r5, r2, r3
- cmp r5, #0
- bgt _02240FE8
- mov r2, #0xbb
- lsl r2, r2, #2
- add r6, r4, r2
- ldr r2, [r4, #0x64]
- mov r5, #0x1c
- mul r5, r2
- ldr r2, [r6, r5]
- sub r2, r2, r3
- str r2, [r6, r5]
- ldr r5, [r4, #0x6c]
- add r3, r4, r1
- add r2, r5, #0
- mul r2, r0
- ldr r6, [r3, r2]
- ldr r5, _02241274 ; =0xFEFFFFFF
- and r5, r6
- str r5, [r3, r2]
- ldr r2, [r4, #0x6c]
- add r3, r2, #0
- add r2, r1, #0
- mul r3, r0
- add r3, r4, r3
- add r2, #0x30
- ldr r2, [r3, r2]
- add r1, #0x30
- neg r3, r2
- ldr r2, _02241268 ; =0x00002144
- add r2, r2, #4
- str r3, [r4, r2]
- ldr r2, [r4, #0x6c]
- mov r3, #0
- mul r0, r2
- add r0, r4, r0
- str r3, [r0, r1]
- b _02241014
-_02240FE8:
- mov r3, #0xbb
- lsl r3, r3, #2
- add r6, r4, r3
- ldr r3, [r4, #0x64]
- mov r5, #0x1c
- mul r5, r3
- ldr r3, [r6, r5]
- add r1, #0x30
- add r2, r3, r2
- str r2, [r6, r5]
- ldr r2, [r4, #0x6c]
- add r1, r4, r1
- mul r0, r2
- ldr r2, _02241268 ; =0x00002144
- ldr r3, [r1, r0]
- ldr r2, [r4, r2]
- add r2, r3, r2
- str r2, [r1, r0]
- ldr r0, _02241268 ; =0x00002144
- ldr r1, [r4, r0]
- add r0, r0, #4
- str r1, [r4, r0]
-_02241014:
- mov r0, #0xba
- lsl r0, r0, #2
- ldr r2, [r4, #0x6c]
- add r1, r4, r0
- add r0, r2, #0
- mov r3, #0x1c
- mul r0, r3
- ldr r5, [r1, r0]
- mov r2, #8
- orr r2, r5
- str r2, [r1, r0]
- ldr r0, [r4, #0x6c]
- add r3, #0xfc
- str r0, [r4, r3]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x5a
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x1c
- str r0, [r4, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_02241044:
- ldr r0, _02241278 ; =0x00003044
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _0224127C ; =0x000003DE
- ldrh r0, [r1, r0]
- cmp r0, #0x65
- bne _0224106A
- ldr r0, _02241280 ; =0x00002D8C
- add r1, r4, r6
- ldr r2, [r1, r0]
- ldr r0, _02241268 ; =0x00002144
- ldr r1, [r4, r0]
- add r1, r1, r2
- cmp r1, #0
- bgt _0224106A
- sub r1, r2, #1
- neg r1, r1
- str r1, [r4, r0]
-_0224106A:
- ldr r0, [r4, #0x6c]
- lsl r0, r0, #6
- add r1, r4, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x16
- lsr r0, r0, #0x1f
- bne _022410D0
- cmp r7, #0x40
- bne _022410A4
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- ldr r0, [sp]
- cmp r1, r0
- bge _022410A4
- mov r0, #0xb5
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r2, [r4, #0x6c]
- mov r0, #0x1c
- mul r0, r2
- ldr r3, [r1, r0]
- mov r2, #0x20
- orr r2, r3
- str r2, [r1, r0]
-_022410A4:
- cmp r7, #0x66
- bne _022410D0
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r3, r4, r0
- ldr r0, _02241280 ; =0x00002D8C
- ldr r2, [r3, r0]
- add r0, r0, #4
- ldr r0, [r3, r0]
- cmp r2, r0
- bne _022410D0
- mov r0, #0xb5
- lsl r0, r0, #2
- add r3, r1, #0
- mov r2, #0x1c
- add r0, r4, r0
- mul r3, r2
- ldr r2, [r0, r3]
- mov r1, #0x20
- orr r1, r2
- str r1, [r0, r3]
-_022410D0:
- ldr r0, [r4, #0x6c]
- lsl r1, r0, #6
- add r2, r4, r1
- mov r1, #0x75
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- lsl r1, r1, #0x16
- lsr r1, r1, #0x1f
- bne _022410F4
- mov r1, #0x1c
- mul r1, r0
- add r2, r4, r1
- mov r1, #0xb5
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- lsl r1, r1, #0x1a
- lsr r1, r1, #0x1f
- beq _0224113E
-_022410F4:
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _02241280 ; =0x00002D8C
- add r1, r4, r1
- ldr r2, _02241268 ; =0x00002144
- ldr r1, [r1, r0]
- ldr r0, [r4, r2]
- add r0, r0, r1
- cmp r0, #0
- bgt _0224113E
- sub r0, r1, #1
- neg r0, r0
- str r0, [r4, r2]
- ldr r0, [r4, #0x6c]
- mov r1, #0x75
- lsl r0, r0, #6
- add r0, r4, r0
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- lsl r0, r0, #0x16
- lsr r0, r0, #0x1f
- beq _02241130
- add r0, r2, #0
- add r0, #0x28
- ldr r1, [r4, r0]
- mov r0, #0x80
- orr r0, r1
- add r2, #0x28
- str r0, [r4, r2]
- b _0224113E
-_02241130:
- add r0, r2, #0
- add r0, #0x28
- ldr r0, [r4, r0]
- sub r1, #0xd4
- orr r0, r1
- add r2, #0x28
- str r0, [r4, r2]
-_0224113E:
- ldr r1, [r4, #0x6c]
- ldr r0, _02241284 ; =0x000030E4
- lsl r3, r1, #2
- ldr r1, _02241268 ; =0x00002144
- add r0, r4, r0
- ldr r2, [r0, r3]
- ldr r1, [r4, r1]
- add r1, r2, r1
- str r1, [r0, r3]
- ldr r0, _02241288 ; =0x00002DBC
- ldr r1, [r4, #0x6c]
- add r3, r4, r0
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldrb r0, [r3, r2]
- cmp r0, #0xff
- bhs _02241166
- add r0, r0, #1
- strb r0, [r3, r2]
-_02241166:
- ldr r0, _02241278 ; =0x00003044
- mov r1, #0x3e
- ldr r0, [r4, r0]
- lsl r1, r1, #4
- lsl r0, r0, #4
- add r0, r4, r0
- ldrb r0, [r0, r1]
- cmp r0, #0
- bne _022411D4
- ldr r1, [r4, #0x6c]
- ldr r0, _02241268 ; =0x00002144
- lsl r1, r1, #6
- add r2, r4, r1
- ldr r1, [r4, #0x64]
- ldr r0, [r4, r0]
- lsl r1, r1, #2
- add r2, r2, r1
- mov r1, #0x76
- lsl r1, r1, #2
- str r0, [r2, r1]
- ldr r0, [r4, #0x6c]
- ldr r2, [r4, #0x64]
- lsl r0, r0, #6
- add r0, r4, r0
- add r1, #0x10
- str r2, [r0, r1]
- ldr r0, [r4, #0x64]
- bl MaskOfFlagNo
- mov r1, #0x7b
- ldr r3, [r4, #0x6c]
- lsl r1, r1, #2
- add r2, r4, r1
- lsl r5, r3, #6
- ldr r3, [r2, r5]
- orr r0, r3
- str r0, [r2, r5]
- ldr r2, [r4, #0x6c]
- ldr r0, _02241268 ; =0x00002144
- add r5, r2, #0
- add r2, r1, #0
- mov r3, #0x1c
- mul r5, r3
- ldr r0, [r4, r0]
- add r5, r4, r5
- add r2, #0xec
- str r0, [r5, r2]
- ldr r0, [r4, #0x6c]
- ldr r5, [r4, #0x64]
- add r2, r0, #0
- mul r2, r3
- add r0, r4, r2
- add r1, #0xf0
- str r5, [r0, r1]
- b _02241232
-_022411D4:
- cmp r0, #1
- bne _02241232
- ldr r2, [r4, #0x6c]
- ldr r0, _02241268 ; =0x00002144
- lsl r2, r2, #6
- add r3, r4, r2
- ldr r2, [r4, #0x64]
- ldr r0, [r4, r0]
- lsl r2, r2, #2
- add r2, r3, r2
- lsr r1, r1, #1
- str r0, [r2, r1]
- ldr r0, [r4, #0x6c]
- ldr r2, [r4, #0x64]
- lsl r0, r0, #6
- add r1, r4, r0
- mov r0, #2
- lsl r0, r0, #8
- str r2, [r1, r0]
- ldr r0, [r4, #0x64]
- bl MaskOfFlagNo
- mov r1, #0x81
- ldr r3, [r4, #0x6c]
- lsl r1, r1, #2
- add r2, r4, r1
- lsl r5, r3, #6
- ldr r3, [r2, r5]
- orr r0, r3
- str r0, [r2, r5]
- ldr r2, [r4, #0x6c]
- ldr r0, _02241268 ; =0x00002144
- add r5, r2, #0
- add r2, r1, #0
- mov r3, #0x1c
- mul r5, r3
- ldr r0, [r4, r0]
- add r5, r4, r5
- add r2, #0xdc
- str r0, [r5, r2]
- ldr r0, [r4, #0x6c]
- ldr r5, [r4, #0x64]
- add r2, r0, #0
- mul r2, r3
- add r0, r4, r2
- add r1, #0xe0
- str r5, [r0, r1]
-_02241232:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _02241280 ; =0x00002D8C
- ldr r2, [r1, r0]
- ldr r0, _02241268 ; =0x00002144
- ldr r1, [r4, r0]
- add r0, r1, r2
- cmp r0, #0
- bgt _0224128C
- mov r0, #0xbb
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r3, [r4, #0x64]
- mov r0, #0x1c
- mul r0, r3
- ldr r3, [r1, r0]
- neg r2, r2
- add r2, r3, r2
- str r2, [r1, r0]
- b _022412A0
- nop
-_02241260: .word 0x0000216C
-_02241264: .word 0x00002D90
-_02241268: .word 0x00002144
-_0224126C: .word 0x000030F4
-_02241270: .word 0x00002DB0
-_02241274: .word 0xFEFFFFFF
-_02241278: .word 0x00003044
-_0224127C: .word 0x000003DE
-_02241280: .word 0x00002D8C
-_02241284: .word 0x000030E4
-_02241288: .word 0x00002DBC
-_0224128C:
- ldr r3, [r4, #0x64]
- mov r0, #0xbb
- lsl r0, r0, #2
- mov r2, #0x1c
- add r5, r3, #0
- add r0, r4, r0
- mul r5, r2
- ldr r2, [r0, r5]
- add r1, r2, r1
- str r1, [r0, r5]
-_022412A0:
- ldr r3, _022412F0 ; =0x00002144
- ldr r0, [r4, #0x6c]
- mov r2, #0x82
- lsl r0, r0, #6
- ldr r1, [r4, r3]
- add r0, r4, r0
- lsl r2, r2, #2
- str r1, [r0, r2]
- ldr r1, [r4, #0x6c]
- ldr r0, [r4, #0x64]
- lsl r1, r1, #6
- add r5, r4, r1
- add r1, r2, #4
- str r0, [r5, r1]
- ldr r0, [r4, #0x6c]
- sub r2, #0xf0
- str r0, [r4, r2]
- ldr r0, [r4, r3]
- add r3, #0x18
- str r0, [r4, r3]
- add r0, r4, #0
- mov r1, #1
- mov r2, #2
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x1c
- str r0, [r4, #0xc]
- ldr r1, _022412F4 ; =0x0000213C
- mov r0, #2
- ldr r2, [r4, r1]
- lsl r0, r0, #0xc
- orr r0, r2
- str r0, [r4, r1]
- pop {r3, r4, r5, r6, r7, pc}
-_022412E8:
- mov r0, #0x1c
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022412F0: .word 0x00002144
-_022412F4: .word 0x0000213C
-
- thumb_func_start MOD11_022412F8
-MOD11_022412F8: ; 0x022412F8
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r4, r1, #0
- ldr r2, [r4, #0x38]
- add r5, r0, #0
- cmp r2, #0
- beq _0224130C
- cmp r2, #1
- beq _022413D2
- b _02241490
-_0224130C:
- ldr r2, [r4, #0x3c]
- cmp r2, #5
- bls _02241314
- b _02241490
-_02241314:
- add r3, r2, r2
- add r3, pc
- ldrh r3, [r3, #6]
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- add pc, r3
-_02241320: ; jump table
- .short _0224132C - _02241320 - 2 ; case 0
- .short _02241338 - _02241320 - 2 ; case 1
- .short _0224134A - _02241320 - 2 ; case 2
- .short _0224137E - _02241320 - 2 ; case 3
- .short _02241392 - _02241320 - 2 ; case 4
- .short _022413BC - _02241320 - 2 ; case 5
-_0224132C:
- add r2, r2, #1
- str r2, [r4, #0x3c]
- bl MOD11_02242774
- cmp r0, #1
- beq _02241390
-_02241338:
- ldr r0, [r4, #0x3c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x3c]
- add r0, r5, #0
- bl MOD11_02242790
- cmp r0, #1
- beq _02241390
-_0224134A:
- ldr r0, [r4, #0x3c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x3c]
- add r0, r5, #0
- add r2, sp, #0xc
- bl MOD11_022449EC
- cmp r0, #1
- bne _0224137E
- ldr r0, _0224149C ; =0x0000216C
- ldr r1, [r4, r0]
- ldr r0, _022414A0 ; =0x001FD849
- tst r0, r1
- bne _0224137E
- ldr r2, [sp, #0xc]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #0x10
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_0224137E:
- ldr r0, [r4, #0x3c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x3c]
- add r0, r5, #0
- bl MOD11_022427E4
- cmp r0, #1
- bne _02241392
-_02241390:
- b _02241498
-_02241392:
- ldr r0, [r4, #0x3c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x3c]
- add r0, r5, #0
- add r2, sp, #8
- bl MOD11_02248308
- cmp r0, #1
- bne _022413BC
- ldr r2, [sp, #8]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #0x10
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_022413BC:
- ldr r0, [r4, #0x3c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x3c]
- add r0, r5, #0
- bl MOD11_02242870
- cmp r0, #1
- bne _02241490
- add sp, #0x10
- pop {r3, r4, r5, pc}
-_022413D2:
- ldr r2, [r4, #0x3c]
- cmp r2, #5
- bhi _02241490
- add r3, r2, r2
- add r3, pc
- ldrh r3, [r3, #6]
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- add pc, r3
-_022413E4: ; jump table
- .short _022413F0 - _022413E4 - 2 ; case 0
- .short _022413FC - _022413E4 - 2 ; case 1
- .short _02241430 - _022413E4 - 2 ; case 2
- .short _02241442 - _022413E4 - 2 ; case 3
- .short _0224146C - _022413E4 - 2 ; case 4
- .short _0224147E - _022413E4 - 2 ; case 5
-_022413F0:
- add r2, r2, #1
- str r2, [r4, #0x3c]
- bl MOD11_02242774
- cmp r0, #1
- beq _02241498
-_022413FC:
- ldr r0, [r4, #0x3c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x3c]
- add r0, r5, #0
- add r2, sp, #4
- bl MOD11_022449EC
- cmp r0, #1
- bne _02241430
- ldr r0, _0224149C ; =0x0000216C
- ldr r1, [r4, r0]
- ldr r0, _022414A0 ; =0x001FD849
- tst r0, r1
- bne _02241430
- ldr r2, [sp, #4]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #0x10
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_02241430:
- ldr r0, [r4, #0x3c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x3c]
- add r0, r5, #0
- bl MOD11_022427E4
- cmp r0, #1
- beq _02241498
-_02241442:
- ldr r0, [r4, #0x3c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x3c]
- add r0, r5, #0
- add r2, sp, #0
- bl MOD11_02248308
- cmp r0, #1
- bne _0224146C
- ldr r2, [sp]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #0x10
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_0224146C:
- ldr r0, [r4, #0x3c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x3c]
- add r0, r5, #0
- bl MOD11_02242790
- cmp r0, #1
- beq _02241498
-_0224147E:
- ldr r0, [r4, #0x3c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x3c]
- add r0, r5, #0
- bl MOD11_02242870
- cmp r0, #1
- beq _02241498
-_02241490:
- mov r0, #0
- str r0, [r4, #0x3c]
- mov r0, #0x1e
- str r0, [r4, #8]
-_02241498:
- add sp, #0x10
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0224149C: .word 0x0000216C
-_022414A0: .word 0x001FD849
-
- thumb_func_start MOD11_022414A4
-MOD11_022414A4: ; 0x022414A4
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_022414A8
-MOD11_022414A8: ; 0x022414A8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r4, r1, #0
- ldr r1, [r4, #0x40]
- add r7, r0, #0
- cmp r1, #7
- bls _022414B8
- b _022416F2
-_022414B8:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022414C4: ; jump table
- .short _022414D4 - _022414C4 - 2 ; case 0
- .short _0224154E - _022414C4 - 2 ; case 1
- .short _02241562 - _022414C4 - 2 ; case 2
- .short _02241588 - _022414C4 - 2 ; case 3
- .short _0224159C - _022414C4 - 2 ; case 4
- .short _022415B6 - _022414C4 - 2 ; case 5
- .short _022415E0 - _022414C4 - 2 ; case 6
- .short _02241674 - _022414C4 - 2 ; case 7
-_022414D4:
- mov r1, #0
- ldr r5, [r4, #0x44]
- str r1, [sp, #4]
- bl MOD11_0222FF84
- cmp r5, r0
- bge _02241544
- add r6, r4, #0
- add r6, #0x44
-_022414E6:
- mov r0, #0xc0
- mul r0, r5
- mov r1, #0xb7
- add r0, r4, r0
- lsl r1, r1, #6
- ldr r2, [r0, r1]
- ldr r1, _02241700 ; =0x200400C0
- tst r1, r2
- bne _0224152C
- ldr r1, _02241704 ; =0x00002DC4
- ldr r2, [r0, r1]
- ldr r1, _02241700 ; =0x200400C0
- tst r1, r2
- beq _0224152C
- ldr r1, _02241704 ; =0x00002DC4
- ldr r2, [r0, r1]
- ldr r1, _02241708 ; =0xDFFBFF3F
- and r2, r1
- ldr r1, _02241704 ; =0x00002DC4
- str r2, [r0, r1]
- ldr r2, _0224170C ; =0x0000011F
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- mov r0, #0x46
- ldr r1, [r4, #0x44]
- lsl r0, r0, #2
- str r1, [r4, r0]
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #4]
-_0224152C:
- ldr r0, [r6]
- add r0, r0, #1
- str r0, [r6]
- ldr r0, [sp, #4]
- cmp r0, #0
- bne _022415B4
- ldr r5, [r4, #0x44]
- add r0, r7, #0
- bl MOD11_0222FF84
- cmp r5, r0
- blt _022414E6
-_02241544:
- ldr r0, [r4, #0x40]
- add r0, r0, #1
- str r0, [r4, #0x40]
- mov r0, #0
- str r0, [r4, #0x44]
-_0224154E:
- ldr r0, [r4, #0x40]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x40]
- ldr r2, [r4, #8]
- add r0, r7, #0
- bl MOD11_02248A78
- cmp r0, #1
- beq _022415B4
-_02241562:
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_022476DC
- add r2, r0, #0
- beq _02241582
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #0x10
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_02241582:
- ldr r0, [r4, #0x40]
- add r0, r0, #1
- str r0, [r4, #0x40]
-_02241588:
- ldr r0, [r4, #0x40]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x40]
- ldr r2, [r4, #0x64]
- add r0, r7, #0
- bl MOD11_02248C0C
- cmp r0, #1
- beq _022415B4
-_0224159C:
- ldr r0, [r4, #0x40]
- add r0, r0, #1
- str r0, [r4, #0x40]
- ldr r2, [r4, #0x6c]
- cmp r2, #0xff
- beq _022415B6
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02248C0C
- cmp r0, #1
- bne _022415B6
-_022415B4:
- b _022416FC
-_022415B6:
- ldr r0, [r4, #0x40]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x40]
- add r0, r7, #0
- add r2, sp, #0xc
- bl MOD11_02249B94
- cmp r0, #1
- bne _022415E0
- ldr r2, [sp, #0xc]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #0x10
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_022415E0:
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x60
- bne _022415F0
- mov r2, #0
- b _02241604
-_022415F0:
- ldr r0, _02241710 ; =0x00002160
- ldr r2, [r4, r0]
- cmp r2, #0
- bne _02241604
- ldr r0, _02241714 ; =0x00003044
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _02241718 ; =0x000003E2
- ldrb r2, [r1, r0]
-_02241604:
- ldr r0, [r4, #0x40]
- add r0, r0, #1
- str r0, [r4, #0x40]
- ldr r3, [r4, #0x6c]
- cmp r3, #0xff
- beq _02241674
- mov r0, #0xc0
- add r5, r3, #0
- mul r5, r0
- ldr r0, _0224171C ; =0x00002DAC
- add r1, r4, r5
- ldr r1, [r1, r0]
- mov r0, #0x20
- tst r1, r0
- beq _02241674
- ldr r1, _02241720 ; =0x0000216C
- lsl r0, r0, #9
- ldr r1, [r4, r1]
- tst r0, r1
- bne _02241674
- ldr r0, [r4, #0x64]
- cmp r3, r0
- beq _02241674
- mov r0, #0x1c
- mul r0, r3
- add r6, r4, r0
- mov r0, #0xb6
- lsl r0, r0, #2
- ldr r1, [r6, r0]
- cmp r1, #0
- bne _0224164A
- add r0, #8
- ldr r0, [r6, r0]
- cmp r0, #0
- beq _02241674
-_0224164A:
- ldr r0, _02241724 ; =0x00002D8C
- add r1, r4, r5
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02241674
- cmp r2, #0xa
- bne _02241674
- mov r0, #0x46
- lsl r0, r0, #2
- str r3, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x1d
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #0x10
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_02241674:
- mov r0, #0
- str r0, [sp]
- ldr r6, [r4, #0x44]
- add r0, r7, #0
- bl MOD11_0222FF84
- cmp r6, r0
- bge _022416E2
- add r5, r4, #0
- add r5, #0x44
-_02241688:
- ldr r0, _02241728 ; =0x000021EC
- add r1, r4, r6
- ldrb r6, [r1, r0]
- add r0, r6, #0
- bl MaskOfFlagNo
- ldr r1, _0224172C ; =0x00003108
- ldrb r1, [r4, r1]
- tst r0, r1
- ldr r0, [r5]
- beq _022416A4
- add r0, r0, #1
- str r0, [r5]
- b _022416D6
-_022416A4:
- add r0, r0, #1
- str r0, [r5]
- add r0, r7, #0
- add r1, r4, #0
- add r2, r6, #0
- add r3, sp, #8
- bl MOD11_022493A0
- cmp r0, #1
- bne _022416D6
- mov r0, #0x46
- lsl r0, r0, #2
- str r6, [r4, r0]
- ldr r2, [sp, #8]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp]
- b _022416E2
-_022416D6:
- ldr r6, [r4, #0x44]
- add r0, r7, #0
- bl MOD11_0222FF84
- cmp r6, r0
- blt _02241688
-_022416E2:
- ldr r0, [sp]
- cmp r0, #0
- bne _022416F2
- ldr r0, [r4, #0x40]
- add r0, r0, #1
- str r0, [r4, #0x40]
- mov r0, #0
- str r0, [r4, #0x44]
-_022416F2:
- mov r0, #0
- str r0, [r4, #0x40]
- str r0, [r4, #0x44]
- mov r0, #0x1f
- str r0, [r4, #8]
-_022416FC:
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02241700: .word 0x200400C0
-_02241704: .word 0x00002DC4
-_02241708: .word 0xDFFBFF3F
-_0224170C: .word 0x0000011F
-_02241710: .word 0x00002160
-_02241714: .word 0x00003044
-_02241718: .word 0x000003E2
-_0224171C: .word 0x00002DAC
-_02241720: .word 0x0000216C
-_02241724: .word 0x00002D8C
-_02241728: .word 0x000021EC
-_0224172C: .word 0x00003108
-
- thumb_func_start MOD11_02241730
-MOD11_02241730: ; 0x02241730
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_02241734
-MOD11_02241734: ; 0x02241734
- push {r3, r4, r5, r6, r7, lr}
- ldr r6, _02241820 ; =0x0000217D
- add r4, r1, #0
- ldrb r2, [r4, r6]
- str r0, [sp]
- cmp r2, #0
- beq _0224181A
- ldr r3, [r4, #0x74]
- mov ip, r3
- cmp r3, #0xff
- bne _022417CC
- ldr r3, [r4, #0x64]
- mov r7, #0xc0
- add r5, r3, #0
- mul r5, r7
- ldr r3, _02241824 ; =0x00002DAC
- add r5, r4, r5
- ldr r5, [r5, r3]
- mov r3, #7
- tst r3, r5
- bne _022417CC
- add r3, r6, #0
- sub r3, #0x11
- ldr r5, [r4, r3]
- mov r3, #1
- lsl r3, r3, #0xe
- tst r3, r5
- bne _022417CC
- sub r2, r6, #1
- ldrb r2, [r4, r2]
- sub r3, r2, #1
- sub r2, r6, #1
- strb r3, [r4, r2]
- ldrb r2, [r4, r2]
- cmp r2, #0
- beq _022417B2
- mov r3, #1
- add r2, r6, #3
- str r3, [r4, r2]
- bl MOD11_02247264
- add r1, r6, #0
- sub r1, #0x41
- ldr r2, [r4, r1]
- ldr r0, _02241828 ; =0xFFFFBFFF
- and r0, r2
- str r0, [r4, r1]
- add r0, r1, #0
- add r0, #0x4c
- ldr r0, [r4, r0]
- add r1, #0x48
- str r0, [r4, r1]
- ldr r2, _0224182C ; =0x00003044
- add r0, r4, #0
- ldr r2, [r4, r2]
- mov r1, #0
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x17
- str r0, [r4, #0xc]
- b _02241812
-_022417B2:
- ldrb r0, [r4, r6]
- add r7, #0x70
- mov r1, #1
- str r0, [r4, r7]
- add r0, r4, #0
- mov r2, #0x11
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x21
- str r0, [r4, #0xc]
- b _02241812
-_022417CC:
- mov r0, ip
- cmp r0, #0xff
- bne _022417E6
- ldr r0, [r4, #0x64]
- mov r1, #0xc0
- add r3, r0, #0
- mul r3, r1
- ldr r0, _02241824 ; =0x00002DAC
- add r3, r4, r3
- ldr r3, [r3, r0]
- mov r0, #7
- tst r0, r3
- beq _022417F6
-_022417E6:
- ldr r0, _02241830 ; =0x0000217C
- ldrb r0, [r4, r0]
- sub r0, r2, r0
- add r1, r0, #1
- mov r0, #0x13
- lsl r0, r0, #4
- str r1, [r4, r0]
- b _02241800
-_022417F6:
- ldr r0, _02241830 ; =0x0000217C
- add r1, #0x70
- ldrb r0, [r4, r0]
- sub r0, r2, r0
- str r0, [r4, r1]
-_02241800:
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x11
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x21
- str r0, [r4, #0xc]
-_02241812:
- ldr r0, [sp]
- bl MOD11_0225679C
- pop {r3, r4, r5, r6, r7, pc}
-_0224181A:
- mov r0, #0x21
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02241820: .word 0x0000217D
-_02241824: .word 0x00002DAC
-_02241828: .word 0xFFFFBFFF
-_0224182C: .word 0x00003044
-_02241830: .word 0x0000217C
-
- thumb_func_start MOD11_02241834
-MOD11_02241834: ; 0x02241834
- push {r3, lr}
- ldr r0, _02241858 ; =0x0000213C
- ldr r2, [r1, r0]
- mov r0, #0xf
- lsl r0, r0, #0x18
- tst r0, r2
- beq _02241850
- add r0, r1, #0
- mov r1, #0x21
- add r2, r1, #0
- mov r3, #0
- bl MOD11_0224246C
- pop {r3, pc}
-_02241850:
- mov r0, #0x22
- str r0, [r1, #8]
- pop {r3, pc}
- nop
-_02241858: .word 0x0000213C
-
- thumb_func_start MOD11_0224185C
-MOD11_0224185C: ; 0x0224185C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- mov r1, #0x85
- lsl r1, r1, #6
- add r5, r0, #0
- ldr r2, [r4, r1]
- mov r0, #8
- tst r0, r2
- beq _02241880
- mov r0, #8
- bic r2, r0
- str r2, [r4, r1]
- ldr r0, [r4, #0x64]
- str r0, [r4, #0x6c]
- add r0, r4, #0
- add r0, #0x84
- ldr r0, [r0]
- str r0, [r4, #0x64]
-_02241880:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224256C
- ldr r0, _022419E0 ; =0x00003044
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _022419E4 ; =0x000003E6
- ldrh r0, [r1, r0]
- cmp r0, #4
- bne _0224194C
- ldr r0, _022419E8 ; =0x0000213C
- ldr r1, [r4, r0]
- mov r0, #2
- tst r0, r1
- bne _0224194C
- add r0, r5, #0
- bl MOD11_0222FF84
- ldr r1, _022419EC ; =0x0000217E
- ldrb r2, [r4, r1]
- cmp r2, r0
- bge _0224194C
- mov r2, #0xd
- add r0, r1, #6
- str r2, [r4, r0]
- add r0, r5, #0
- bl MOD11_0222FF84
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_0222FF7C
- bl MOD11_02253A4C
- mov r1, #1
- add r7, r0, #0
- and r7, r1
-_022418CE:
- ldr r1, _022419EC ; =0x0000217E
- ldr r0, _022419EC ; =0x0000217E
- ldrb r1, [r4, r1]
- ldrb r0, [r4, r0]
- add r2, r1, #1
- ldr r1, _022419EC ; =0x0000217E
- strb r2, [r4, r1]
- add r1, r4, r0
- ldr r0, _022419F0 ; =0x000021EC
- ldrb r6, [r1, r0]
- add r0, r6, #0
- bl MaskOfFlagNo
- ldr r1, _022419F4 ; =0x00003108
- ldrb r1, [r4, r1]
- tst r0, r1
- bne _02241936
- mov r0, #0xc0
- mul r0, r6
- add r1, r4, r0
- ldr r0, _022419F8 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02241936
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- str r0, [sp]
- cmp r7, #0
- beq _02241916
- bl MOD11_02253A4C
- mov r1, #1
- tst r0, r1
- beq _02241926
-_02241916:
- cmp r7, #0
- bne _02241936
- ldr r0, [sp]
- bl MOD11_02253A4C
- mov r1, #1
- tst r0, r1
- beq _02241936
-_02241926:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02247264
- str r6, [r4, #0x6c]
- mov r0, #0x16
- str r0, [r4, #8]
- b _02241944
-_02241936:
- add r0, r5, #0
- bl MOD11_0222FF84
- ldr r1, _022419EC ; =0x0000217E
- ldrb r1, [r4, r1]
- cmp r1, r0
- blt _022418CE
-_02241944:
- add r0, r5, #0
- bl MOD11_0225679C
- pop {r3, r4, r5, r6, r7, pc}
-_0224194C:
- ldr r0, _022419E0 ; =0x00003044
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _022419E4 ; =0x000003E6
- ldrh r0, [r1, r0]
- cmp r0, #8
- bne _022419DA
- ldr r0, _022419E8 ; =0x0000213C
- ldr r1, [r4, r0]
- mov r0, #2
- tst r0, r1
- bne _022419DA
- add r0, r5, #0
- bl MOD11_0222FF84
- ldr r1, _022419EC ; =0x0000217E
- ldrb r2, [r4, r1]
- cmp r2, r0
- bge _022419DA
- mov r2, #0xd
- add r0, r1, #6
- str r2, [r4, r0]
- add r0, r5, #0
- bl MOD11_0222FF84
- ldr r7, _022419EC ; =0x0000217E
-_02241982:
- ldr r0, _022419EC ; =0x0000217E
- ldrb r1, [r4, r0]
- ldrb r0, [r4, r7]
- add r1, r4, r1
- add r0, r0, #1
- strb r0, [r4, r7]
- ldr r0, _022419F0 ; =0x000021EC
- ldrb r6, [r1, r0]
- add r0, r6, #0
- bl MaskOfFlagNo
- ldr r1, _022419F4 ; =0x00003108
- ldrb r1, [r4, r1]
- tst r0, r1
- bne _022419C4
- mov r0, #0xc0
- mul r0, r6
- add r1, r4, r0
- ldr r0, _022419F8 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _022419C4
- ldr r0, [r4, #0x64]
- cmp r6, r0
- beq _022419C4
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02247264
- str r6, [r4, #0x6c]
- mov r0, #0x16
- str r0, [r4, #8]
- b _022419D2
-_022419C4:
- add r0, r5, #0
- bl MOD11_0222FF84
- ldr r1, _022419EC ; =0x0000217E
- ldrb r1, [r4, r1]
- cmp r1, r0
- blt _02241982
-_022419D2:
- add r0, r5, #0
- bl MOD11_0225679C
- pop {r3, r4, r5, r6, r7, pc}
-_022419DA:
- mov r0, #0x23
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022419E0: .word 0x00003044
-_022419E4: .word 0x000003E6
-_022419E8: .word 0x0000213C
-_022419EC: .word 0x0000217E
-_022419F0: .word 0x000021EC
-_022419F4: .word 0x00003108
-_022419F8: .word 0x00002D8C
-
- thumb_func_start MOD11_022419FC
-MOD11_022419FC: ; 0x022419FC
- push {r4, lr}
- ldr r0, _02241A38 ; =0x0000213C
- add r4, r1, #0
- ldr r1, [r4, r0]
- mov r0, #0xf
- lsl r0, r0, #0x1c
- and r0, r1
- beq _02241A32
- lsr r0, r0, #0x1c
- bl LowestFlagNo
- str r0, [r4, #0x74]
- ldr r1, _02241A38 ; =0x0000213C
- ldr r0, _02241A3C ; =0x0FFFFFFF
- ldr r2, [r4, r1]
- and r0, r2
- str r0, [r4, r1]
- ldr r2, _02241A40 ; =0x00000115
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x24
- str r0, [r4, #0xc]
- pop {r4, pc}
-_02241A32:
- mov r0, #0x24
- str r0, [r4, #8]
- pop {r4, pc}
- .align 2, 0
-_02241A38: .word 0x0000213C
-_02241A3C: .word 0x0FFFFFFF
-_02241A40: .word 0x00000115
-
- thumb_func_start MOD11_02241A44
-MOD11_02241A44: ; 0x02241A44
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_022429B0
- cmp r0, #1
- beq _02241A54
- mov r0, #0x26
- str r0, [r4, #8]
-_02241A54:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02241A58
-MOD11_02241A58: ; 0x02241A58
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_02241A5C
-MOD11_02241A5C: ; 0x02241A5C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldr r1, [r4, #0x64]
- add r5, r0, #0
- add r0, r4, #0
- bl MOD11_02249D90
- ldr r1, _02241B60 ; =0x0000213C
- lsl r0, r0, #0x18
- ldr r3, [r4, r1]
- mov r2, #0x20
- lsr r0, r0, #0x18
- tst r2, r3
- bne _02241A82
- add r1, r1, #4
- ldr r2, [r4, r1]
- mov r1, #4
- tst r1, r2
- beq _02241AC4
-_02241A82:
- cmp r0, #0x36
- beq _02241A8E
- cmp r0, #0x72
- beq _02241A8E
- cmp r0, #0x7c
- bne _02241AB6
-_02241A8E:
- mov r0, #0xc1
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- cmp r0, #0xa5
- beq _02241AC4
- cmp r0, #0xe2
- bne _02241AA8
- mov r1, #0x85
- lsl r1, r1, #6
- ldr r2, [r4, r1]
- mov r1, #0x40
- tst r1, r2
- bne _02241AC4
-_02241AA8:
- ldr r2, [r4, #0x64]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _02241B64 ; =0x00002DF8
- strh r0, [r2, r1]
- b _02241AC4
-_02241AB6:
- ldr r2, [r4, #0x64]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _02241B64 ; =0x00002DF8
- mov r0, #0
- strh r0, [r2, r1]
-_02241AC4:
- ldr r0, _02241B60 ; =0x0000213C
- mov r1, #1
- ldr r2, [r4, r0]
- lsl r1, r1, #0x14
- tst r1, r2
- bne _02241B2C
- add r0, r0, #4
- ldr r1, [r4, r0]
- mov r0, #4
- tst r0, r1
- beq _02241AF2
- ldr r2, [r4, #0x64]
- ldr r1, _02241B68 ; =0x00003044
- lsl r2, r2, #1
- add r3, r4, r2
- add r2, r1, #0
- ldr r0, [r4, r1]
- add r2, #0x18
- strh r0, [r3, r2]
- sub r0, r1, #4
- ldr r2, [r4, r0]
- add r0, r1, #4
- b _02241B00
-_02241AF2:
- ldr r0, [r4, #0x64]
- mov r2, #0
- lsl r0, r0, #1
- add r1, r4, r0
- ldr r0, _02241B6C ; =0x0000305C
- strh r2, [r1, r0]
- sub r0, #0x14
-_02241B00:
- str r2, [r4, r0]
- mov r0, #0x85
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0x40
- tst r0, r1
- beq _02241B20
- mov r0, #0xc1
- ldr r1, [r4, #0x64]
- lsl r0, r0, #6
- ldr r2, [r4, r0]
- lsl r1, r1, #1
- add r1, r4, r1
- add r0, #0x3c
- strh r2, [r1, r0]
- b _02241B2C
-_02241B20:
- ldr r0, [r4, #0x64]
- mov r2, #0
- lsl r0, r0, #1
- add r1, r4, r0
- ldr r0, _02241B70 ; =0x0000307C
- strh r2, [r1, r0]
-_02241B2C:
- mov r0, #0x85
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #4
- tst r0, r1
- beq _02241B48
- mov r0, #0xc1
- ldr r1, [r4, #0x64]
- lsl r0, r0, #6
- ldr r2, [r4, r0]
- lsl r1, r1, #1
- add r1, r4, r1
- add r0, #0x6c
- strh r2, [r1, r0]
-_02241B48:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224256C
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224ABF8
- mov r0, #0x27
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
- nop
-_02241B60: .word 0x0000213C
-_02241B64: .word 0x00002DF8
-_02241B68: .word 0x00003044
-_02241B6C: .word 0x0000305C
-_02241B70: .word 0x0000307C
-
- thumb_func_start MOD11_02241B74
-MOD11_02241B74: ; 0x02241B74
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- bne _02241BF6
- ldr r2, [r4, #0x64]
- add r0, r5, #0
- add r1, r4, #0
- mov r3, #0
- bl MOD11_02248898
- cmp r0, #1
- beq _02241C4C
- ldr r2, [r4, #0x6c]
- cmp r2, #0xff
- beq _02241BAA
- add r0, r5, #0
- add r1, r4, #0
- mov r3, #0
- bl MOD11_02248898
- cmp r0, #1
- beq _02241C4C
-_02241BAA:
- ldr r1, [r4, #8]
- add r0, r4, #0
- add r2, r1, #0
- bl MOD11_02242510
- cmp r0, #1
- beq _02241C4C
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02241FD8
- cmp r0, #1
- beq _02241C4C
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022476DC
- add r2, r0, #0
- beq _02241BE2
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_02241BE2:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02242924
- cmp r0, #1
- beq _02241C4C
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02242404
-_02241BF6:
- add r1, r4, #0
- add r1, #0xec
- ldr r1, [r1]
- mov r0, #0x27
- add r2, r4, r1
- ldr r1, _02241C50 ; =0x000021E8
- ldrb r2, [r2, r1]
- sub r1, #0x40
- lsl r2, r2, #4
- add r2, r4, r2
- str r0, [r2, r1]
- ldr r1, [r4, #0x64]
- mov r0, #0x1c
- mul r0, r1
- add r1, r4, r0
- mov r0, #0xb5
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x1f
- beq _02241C34
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224C178
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224728C
- mov r1, #0
- b _02241C3C
-_02241C34:
- add r0, r4, #0
- add r0, #0xec
- ldr r0, [r0]
- add r1, r0, #1
-_02241C3C:
- add r0, r4, #0
- add r0, #0xec
- str r1, [r0]
- add r0, r4, #0
- bl MOD11_02245494
- mov r0, #8
- str r0, [r4, #8]
-_02241C4C:
- pop {r3, r4, r5, pc}
- nop
-_02241C50: .word 0x000021E8
-
- thumb_func_start MOD11_02241C54
-MOD11_02241C54: ; 0x02241C54
- push {r4, lr}
- add r4, r1, #0
- ldr r1, [r4, #8]
- add r0, r4, #0
- add r2, r1, #0
- mov r3, #1
- bl MOD11_0224246C
- cmp r0, #1
- beq _02241C6C
- mov r0, #0x27
- str r0, [r4, #8]
-_02241C6C:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02241C70
-MOD11_02241C70: ; 0x02241C70
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_0223145C
- mov r1, #0x80
- tst r0, r1
- beq _02241C86
- mov r0, #0x2a
- str r0, [r4, #8]
- b _02241CE4
-_02241C86:
- add r0, r5, #0
- bl MOD11_0223145C
- cmp r0, #2
- beq _02241C9A
- add r0, r5, #0
- bl MOD11_0223145C
- cmp r0, #3
- bne _02241CAE
-_02241C9A:
- add r0, r4, #0
- mov r1, #1
- mov r2, #5
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x2a
- str r0, [r4, #0xc]
- b _02241CE4
-_02241CAE:
- add r0, r5, #0
- bl MOD11_0223145C
- cmp r0, #1
- bne _02241CCC
- add r0, r4, #0
- mov r1, #1
- mov r2, #4
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x2a
- str r0, [r4, #0xc]
- b _02241CE4
-_02241CCC:
- add r0, r5, #0
- bl MOD11_0223145C
- cmp r0, #4
- beq _02241CE0
- add r0, r5, #0
- bl MOD11_0223145C
- cmp r0, #5
- bne _02241CE4
-_02241CE0:
- mov r0, #0x2a
- str r0, [r4, #8]
-_02241CE4:
- ldr r0, _02241CEC ; =0x0000311F
- mov r1, #1
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02241CEC: .word 0x0000311F
-
- thumb_func_start MOD11_02241CF0
-MOD11_02241CF0: ; 0x02241CF0
- push {r4, r5, r6, lr}
- add r6, r0, #0
- add r5, r1, #0
- bl MOD11_0222FF74
- mov r1, #4
- add r4, r0, #0
- and r4, r1
- bne _02241D16
- add r0, r6, #0
- mov r1, #0
- bl MOD11_0222FF88
- add r6, r0, #0
- bl FUN_02069C4C
- add r0, r6, #0
- bl FUN_02069DC8
-_02241D16:
- cmp r4, #0
- beq _02241D20
- mov r0, #0x16
- bl FUN_020311DC
-_02241D20:
- mov r0, #0x2b
- str r0, [r5, #8]
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02241D28
-MOD11_02241D28: ; 0x02241D28
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_02241D2C
-MOD11_02241D2C: ; 0x02241D2C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x34
- str r1, [sp, #4]
- mov r1, #0
- str r0, [sp]
- str r1, [sp, #0x30]
- bl MOD11_0222FF84
- str r0, [sp, #0x28]
- ldr r0, [sp]
- bl MOD11_0222FF74
- str r0, [sp, #0x24]
- ldr r0, [sp, #4]
- ldr r0, [r0, #8]
- str r0, [sp, #0x20]
- mov r0, #0
- str r0, [sp, #0x2c]
- ldr r0, [sp, #0x28]
- cmp r0, #0
- bgt _02241D58
- b _02241F4A
-_02241D58:
- ldr r0, [sp, #4]
- mov r1, #2
- str r0, [sp, #0x1c]
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x24]
- and r0, r1
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x24]
- mov r1, #0x18
- and r0, r1
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x24]
- mov r1, #0x10
- and r0, r1
- str r0, [sp, #0xc]
-_02241D76:
- mov r1, #0x4f
- ldr r0, [sp, #0x1c]
- lsl r1, r1, #2
- ldr r2, [r0, r1]
- mov r0, #1
- bic r2, r0
- ldr r0, [sp, #0x1c]
- str r2, [r0, r1]
- ldr r0, [sp, #0x14]
- cmp r0, #0
- beq _02241D92
- ldr r0, [sp, #0x10]
- cmp r0, #0
- beq _02241DA4
-_02241D92:
- ldr r0, [sp, #0xc]
- cmp r0, #0
- beq _02241E8A
- ldr r0, [sp]
- ldr r1, [sp, #0x2c]
- bl MOD11_02230270
- cmp r0, #0
- bne _02241E8A
-_02241DA4:
- ldr r3, _02241FC8 ; =0x00002D8C
- ldr r0, [sp, #0x18]
- ldr r0, [r0, r3]
- cmp r0, #0
- bne _02241DCC
- ldr r1, [sp, #0x2c]
- mov r2, #2
- add r4, r1, #0
- eor r4, r2
- mov r1, #0xc0
- add r5, r4, #0
- mul r5, r1
- ldr r1, [sp, #4]
- add r1, r1, r5
- ldr r1, [r1, r3]
- cmp r1, #0
- bne _02241DCC
- ldr r1, [sp, #0x2c]
- tst r1, r2
- bne _02241DD0
-_02241DCC:
- cmp r0, #0
- beq _02241DD2
-_02241DD0:
- b _02241F30
-_02241DD2:
- ldr r0, [sp]
- ldr r1, [sp, #0x2c]
- mov r7, #0
- bl MOD11_0222FF88
- add r6, r0, #0
- ldr r0, [sp]
- ldr r1, [sp, #0x2c]
- bl MOD11_0222FF7C
- add r0, r6, #0
- add r5, r7, #0
- bl GetPartyCount
- cmp r0, #0
- ble _02241E4A
- ldr r0, [sp, #0x2c]
- mov r1, #2
- eor r1, r0
- ldr r0, [sp, #4]
- add r0, r0, r1
- str r0, [sp, #8]
-_02241DFE:
- add r0, r6, #0
- add r1, r5, #0
- bl GetPartyMonByIndex
- mov r1, #0xad
- mov r2, #0
- add r4, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _02241E3E
- add r0, r4, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonData
- ldr r1, _02241FCC ; =0x000001EE
- cmp r0, r1
- beq _02241E3E
- add r0, r4, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _02241E3E
- ldr r2, [sp, #8]
- ldr r1, _02241FD0 ; =0x0000219C
- ldrb r1, [r2, r1]
- cmp r5, r1
- beq _02241E3E
- add r7, r7, r0
-_02241E3E:
- add r0, r6, #0
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _02241DFE
-_02241E4A:
- cmp r7, #0
- bne _02241E6E
- ldr r0, [sp, #0x2c]
- bl MaskOfFlagNo
- ldr r2, _02241FD4 ; =0x00003108
- ldr r1, [sp, #4]
- ldrb r1, [r1, r2]
- orr r1, r0
- ldr r0, [sp, #4]
- strb r1, [r0, r2]
- add r1, r0, #0
- ldr r0, [sp, #0x2c]
- mov r2, #6
- add r1, r1, r0
- ldr r0, _02241FD0 ; =0x0000219C
- strb r2, [r1, r0]
- b _02241F30
-_02241E6E:
- ldr r1, [sp, #0x20]
- ldr r0, [sp, #4]
- str r1, [r0, #0xc]
- mov r1, #0x15
- str r1, [r0, #8]
- mov r1, #0x4f
- ldr r0, [sp, #0x1c]
- lsl r1, r1, #2
- ldr r2, [r0, r1]
- mov r0, #1
- orr r2, r0
- ldr r0, [sp, #0x1c]
- str r2, [r0, r1]
- b _02241F30
-_02241E8A:
- ldr r1, _02241FC8 ; =0x00002D8C
- ldr r0, [sp, #0x18]
- ldr r0, [r0, r1]
- cmp r0, #0
- bne _02241F30
- ldr r0, [sp]
- ldr r1, [sp, #0x2c]
- mov r7, #0
- bl MOD11_0222FF88
- add r6, r0, #0
- ldr r0, [sp]
- ldr r1, [sp, #0x2c]
- bl MOD11_0222FF7C
- add r0, r6, #0
- add r5, r7, #0
- bl GetPartyCount
- cmp r0, #0
- ble _02241EF2
-_02241EB4:
- add r0, r6, #0
- add r1, r5, #0
- bl GetPartyMonByIndex
- mov r1, #0xad
- mov r2, #0
- add r4, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _02241EE6
- add r0, r4, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonData
- ldr r1, _02241FCC ; =0x000001EE
- cmp r0, r1
- beq _02241EE6
- add r0, r4, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- add r7, r7, r0
-_02241EE6:
- add r0, r6, #0
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _02241EB4
-_02241EF2:
- cmp r7, #0
- bne _02241F16
- ldr r0, [sp, #0x2c]
- bl MaskOfFlagNo
- ldr r2, _02241FD4 ; =0x00003108
- ldr r1, [sp, #4]
- ldrb r1, [r1, r2]
- orr r1, r0
- ldr r0, [sp, #4]
- strb r1, [r0, r2]
- add r1, r0, #0
- ldr r0, [sp, #0x2c]
- mov r2, #6
- add r1, r1, r0
- ldr r0, _02241FD0 ; =0x0000219C
- strb r2, [r1, r0]
- b _02241F30
-_02241F16:
- ldr r1, [sp, #0x20]
- ldr r0, [sp, #4]
- str r1, [r0, #0xc]
- mov r1, #0x15
- str r1, [r0, #8]
- mov r1, #0x4f
- ldr r0, [sp, #0x1c]
- lsl r1, r1, #2
- ldr r2, [r0, r1]
- mov r0, #1
- orr r2, r0
- ldr r0, [sp, #0x1c]
- str r2, [r0, r1]
-_02241F30:
- ldr r0, [sp, #0x1c]
- add r0, r0, #4
- str r0, [sp, #0x1c]
- ldr r0, [sp, #0x18]
- add r0, #0xc0
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x2c]
- add r1, r0, #1
- ldr r0, [sp, #0x28]
- str r1, [sp, #0x2c]
- cmp r1, r0
- bge _02241F4A
- b _02241D76
-_02241F4A:
- ldr r0, [sp, #4]
- ldr r0, [r0, #8]
- cmp r0, #0x15
- bne _02241FC0
- ldr r0, [sp, #0x24]
- mov r1, #0x86
- tst r0, r1
- bne _02241FB2
- ldr r0, [sp]
- bl MOD11_02230E70
- cmp r0, #0
- bne _02241FB2
- mov r1, #0x4f
- ldr r0, [sp, #4]
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- mov r2, #1
- tst r0, r2
- beq _02241F7C
- ldr r0, [sp, #4]
- add r1, r1, #4
- ldr r0, [r0, r1]
- tst r0, r2
- bne _02241FB2
-_02241F7C:
- ldr r0, [sp]
- ldr r1, [sp, #4]
- mov r2, #0
- bl MOD11_02246DE0
- cmp r0, #0
- beq _02241FB2
- mov r1, #0x4f
- ldr r0, [sp, #4]
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- mov r2, #1
- tst r0, r2
- beq _02241FA0
- mov r2, #0
- sub r1, r1, #4
- ldr r0, [sp, #4]
- b _02241FA4
-_02241FA0:
- ldr r0, [sp, #4]
- sub r1, r1, #4
-_02241FA4:
- str r2, [r0, r1]
- ldr r0, [sp, #4]
- mov r1, #1
- mov r2, #0xe7
- bl MOD11_022431DC
- b _02241FBC
-_02241FB2:
- ldr r0, [sp, #4]
- mov r1, #1
- mov r2, #0xa
- bl MOD11_022431DC
-_02241FBC:
- mov r0, #1
- str r0, [sp, #0x30]
-_02241FC0:
- ldr r0, [sp, #0x30]
- add sp, #0x34
- pop {r4, r5, r6, r7, pc}
- nop
-_02241FC8: .word 0x00002D8C
-_02241FCC: .word 0x000001EE
-_02241FD0: .word 0x0000219C
-_02241FD4: .word 0x00003108
-
- thumb_func_start MOD11_02241FD8
-MOD11_02241FD8: ; 0x02241FD8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- str r0, [sp]
- str r1, [sp, #4]
- bl MOD11_0222FF84
- str r0, [sp, #0x24]
- ldr r0, [sp]
- bl MOD11_0222FF74
- str r0, [sp, #0x20]
- mov r0, #0
- str r0, [sp, #0x1c]
- str r0, [sp, #0x28]
- ldr r0, [sp, #0x24]
- cmp r0, #0
- bgt _02241FFC
- b _02242256
-_02241FFC:
- ldr r0, [sp, #0x20]
- mov r1, #8
- and r0, r1
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x20]
- mov r1, #0x10
- and r0, r1
- str r0, [sp, #8]
-_0224200C:
- ldr r0, [sp, #0x20]
- sub r0, #0x4a
- cmp r0, #1
- bhi _022420A6
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- bl MOD11_02230270
- cmp r0, #0
- bne _022420A6
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- bl MOD11_02230260
- cmp r0, #2
- bne _022420C8
- ldr r1, _0224233C ; =0x00002D8C
- ldr r0, [sp, #4]
- ldr r0, [r0, r1]
- cmp r0, #0
- bne _022420C8
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- mov r7, #0
- bl MOD11_0222FF88
- add r6, r0, #0
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- bl MOD11_0222FF7C
- add r0, r6, #0
- add r4, r7, #0
- bl GetPartyCount
- cmp r0, #0
- ble _02242094
-_02242056:
- add r0, r6, #0
- add r1, r4, #0
- bl GetPartyMonByIndex
- mov r1, #0xad
- mov r2, #0
- add r5, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _02242088
- add r0, r5, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonData
- ldr r1, _02242340 ; =0x000001EE
- cmp r0, r1
- beq _02242088
- add r0, r5, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- add r7, r7, r0
-_02242088:
- add r0, r6, #0
- add r4, r4, #1
- bl GetPartyCount
- cmp r4, r0
- blt _02242056
-_02242094:
- cmp r7, #0
- bne _022420C8
- ldr r0, [sp, #0x1c]
- mov r1, #2
- orr r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x1c]
- b _02242242
-_022420A6:
- ldr r0, [sp, #0xc]
- cmp r0, #0
- bne _022420BE
- ldr r0, [sp, #8]
- cmp r0, #0
- beq _022421B0
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- bl MOD11_02230270
- cmp r0, #0
- beq _022421B0
-_022420BE:
- ldr r1, _0224233C ; =0x00002D8C
- ldr r0, [sp, #4]
- ldr r0, [r0, r1]
- cmp r0, #0
- beq _022420CA
-_022420C8:
- b _02242242
-_022420CA:
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- mov r5, #0
- bl MOD11_0222FF88
- add r7, r0, #0
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- bl MOD11_022302BC
- add r1, r0, #0
- ldr r0, [sp]
- bl MOD11_0222FF88
- str r0, [sp, #0x18]
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- bl MOD11_0222FF7C
- str r0, [sp, #0x14]
- add r0, r7, #0
- add r4, r5, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0224213C
-_022420FE:
- add r0, r7, #0
- add r1, r4, #0
- bl GetPartyMonByIndex
- mov r1, #0xad
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _02242130
- add r0, r6, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonData
- ldr r1, _02242340 ; =0x000001EE
- cmp r0, r1
- beq _02242130
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- add r5, r5, r0
-_02242130:
- add r0, r7, #0
- add r4, r4, #1
- bl GetPartyCount
- cmp r4, r0
- blt _022420FE
-_0224213C:
- ldr r0, [sp, #0x18]
- mov r4, #0
- bl GetPartyCount
- cmp r0, #0
- ble _02242186
- ldr r7, _02242340 ; =0x000001EE
-_0224214A:
- ldr r0, [sp, #0x18]
- add r1, r4, #0
- bl GetPartyMonByIndex
- mov r1, #0xad
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _0224217A
- add r0, r6, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonData
- cmp r0, r7
- beq _0224217A
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- add r5, r5, r0
-_0224217A:
- ldr r0, [sp, #0x18]
- add r4, r4, #1
- bl GetPartyCount
- cmp r4, r0
- blt _0224214A
-_02242186:
- cmp r5, #0
- bne _02242242
- ldr r0, [sp, #0x14]
- bl MOD11_02253A4C
- mov r1, #1
- tst r0, r1
- beq _022421A2
- ldr r0, [sp, #0x1c]
- orr r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x1c]
- b _02242242
-_022421A2:
- ldr r0, [sp, #0x1c]
- mov r1, #2
- orr r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x1c]
- b _02242242
-_022421B0:
- ldr r1, _0224233C ; =0x00002D8C
- ldr r0, [sp, #4]
- ldr r0, [r0, r1]
- cmp r0, #0
- bne _02242242
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- mov r7, #0
- bl MOD11_0222FF88
- add r6, r0, #0
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- bl MOD11_0222FF7C
- str r0, [sp, #0x10]
- add r0, r6, #0
- add r4, r7, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0224221A
-_022421DC:
- add r0, r6, #0
- add r1, r4, #0
- bl GetPartyMonByIndex
- mov r1, #0xad
- mov r2, #0
- add r5, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _0224220E
- add r0, r5, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonData
- ldr r1, _02242340 ; =0x000001EE
- cmp r0, r1
- beq _0224220E
- add r0, r5, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- add r7, r7, r0
-_0224220E:
- add r0, r6, #0
- add r4, r4, #1
- bl GetPartyCount
- cmp r4, r0
- blt _022421DC
-_0224221A:
- cmp r7, #0
- bne _02242242
- ldr r0, [sp, #0x10]
- bl MOD11_02253A4C
- mov r1, #1
- tst r0, r1
- beq _02242236
- ldr r0, [sp, #0x1c]
- orr r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x1c]
- b _02242242
-_02242236:
- ldr r0, [sp, #0x1c]
- mov r1, #2
- orr r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x1c]
-_02242242:
- ldr r0, [sp, #4]
- add r0, #0xc0
- str r0, [sp, #4]
- ldr r0, [sp, #0x28]
- add r1, r0, #1
- ldr r0, [sp, #0x24]
- str r1, [sp, #0x28]
- cmp r1, r0
- bge _02242256
- b _0224200C
-_02242256:
- ldr r0, [sp, #0x1c]
- cmp r0, #1
- bne _0224226C
- ldr r0, [sp, #0x20]
- mov r1, #1
- tst r0, r1
- beq _0224226C
- ldr r0, [sp, #0x20]
- mov r1, #4
- tst r0, r1
- beq _02242282
-_0224226C:
- ldr r0, [sp, #0x1c]
- cmp r0, #1
- bne _0224231C
- ldr r0, [sp, #0x20]
- mov r1, #0x80
- tst r0, r1
- beq _0224231C
- ldr r0, [sp, #0x20]
- mov r1, #4
- tst r0, r1
- bne _0224231C
-_02242282:
- ldr r0, [sp]
- mov r1, #1
- bl MOD11_02230188
- ldrb r0, [r0, #1]
- sub r0, #0x3e
- cmp r0, #0x23
- bhi _0224230E
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0224229E: ; jump table
- .short _022422E6 - _0224229E - 2 ; case 0
- .short _0224230E - _0224229E - 2 ; case 1
- .short _022422E6 - _0224229E - 2 ; case 2
- .short _02242306 - _0224229E - 2 ; case 3
- .short _02242306 - _0224229E - 2 ; case 4
- .short _02242306 - _0224229E - 2 ; case 5
- .short _02242306 - _0224229E - 2 ; case 6
- .short _022422EE - _0224229E - 2 ; case 7
- .short _0224230E - _0224229E - 2 ; case 8
- .short _0224230E - _0224229E - 2 ; case 9
- .short _022422F6 - _0224229E - 2 ; case 10
- .short _022422F6 - _0224229E - 2 ; case 11
- .short _022422E6 - _0224229E - 2 ; case 12
- .short _022422E6 - _0224229E - 2 ; case 13
- .short _022422E6 - _0224229E - 2 ; case 14
- .short _022422E6 - _0224229E - 2 ; case 15
- .short _022422E6 - _0224229E - 2 ; case 16
- .short _022422E6 - _0224229E - 2 ; case 17
- .short _0224230E - _0224229E - 2 ; case 18
- .short _0224230E - _0224229E - 2 ; case 19
- .short _0224230E - _0224229E - 2 ; case 20
- .short _0224230E - _0224229E - 2 ; case 21
- .short _0224230E - _0224229E - 2 ; case 22
- .short _0224230E - _0224229E - 2 ; case 23
- .short _022422FE - _0224229E - 2 ; case 24
- .short _022422F6 - _0224229E - 2 ; case 25
- .short _022422F6 - _0224229E - 2 ; case 26
- .short _022422F6 - _0224229E - 2 ; case 27
- .short _0224230E - _0224229E - 2 ; case 28
- .short _0224230E - _0224229E - 2 ; case 29
- .short _0224230E - _0224229E - 2 ; case 30
- .short _0224230E - _0224229E - 2 ; case 31
- .short _0224230E - _0224229E - 2 ; case 32
- .short _0224230E - _0224229E - 2 ; case 33
- .short _0224230E - _0224229E - 2 ; case 34
- .short _022422E6 - _0224229E - 2 ; case 35
-_022422E6:
- ldr r0, _02242344 ; =0x00000469
- bl FUN_0200521C
- b _02242314
-_022422EE:
- ldr r0, _02242348 ; =0x0000046A
- bl FUN_0200521C
- b _02242314
-_022422F6:
- ldr r0, _0224234C ; =0x0000046B
- bl FUN_0200521C
- b _02242314
-_022422FE:
- ldr r0, _02242350 ; =0x0000046C
- bl FUN_0200521C
- b _02242314
-_02242306:
- ldr r0, _02242354 ; =0x0000046D
- bl FUN_0200521C
- b _02242314
-_0224230E:
- ldr r0, _02242358 ; =0x00000468
- bl FUN_0200521C
-_02242314:
- ldr r0, [sp]
- mov r1, #2
- bl MOD11_02231484
-_0224231C:
- ldr r0, [sp, #0x1c]
- cmp r0, #0
- beq _0224232A
- ldr r0, [sp]
- ldr r1, [sp, #0x1c]
- bl MOD11_02231468
-_0224232A:
- ldr r0, [sp, #0x1c]
- cmp r0, #0
- beq _02242336
- add sp, #0x2c
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02242336:
- mov r0, #0
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0224233C: .word 0x00002D8C
-_02242340: .word 0x000001EE
-_02242344: .word 0x00000469
-_02242348: .word 0x0000046A
-_0224234C: .word 0x0000046B
-_02242350: .word 0x0000046C
-_02242354: .word 0x0000046D
-_02242358: .word 0x00000468
-
- thumb_func_start MOD11_0224235C
-MOD11_0224235C: ; 0x0224235C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- str r0, [sp]
- add r5, r1, #0
- ldr r0, _022423F4 ; =0x00002D4C
- add r6, r2, #0
- mov r1, #0xc0
- add r0, r5, r0
- mul r1, r6
- add r0, r0, r1
- str r0, [sp, #8]
- ldr r0, [sp, #0x2c]
- ldr r1, [sp, #8]
- lsl r0, r0, #1
- ldrh r1, [r1, r0]
- str r3, [sp, #4]
- ldr r4, [sp, #0x28]
- ldr r7, [sp, #0x30]
- str r0, [sp, #0xc]
- cmp r1, #0xae
- bne _02242396
- add r0, r5, #0
- bl MOD11_02246C20
- cmp r0, #0
- bne _02242396
- mov r0, #0x10
- str r0, [r4]
- b _022423A6
-_02242396:
- ldr r1, [sp, #8]
- ldr r0, [sp, #0xc]
- ldrh r0, [r1, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _022423F8 ; =0x000003E6
- ldrh r0, [r1, r0]
- str r0, [r4]
-_022423A6:
- ldr r0, [sp, #4]
- mov r1, #2
- tst r0, r1
- beq _022423DC
- ldr r0, [r4]
- add r1, #0xfe
- cmp r0, r1
- bne _022423D6
- ldr r0, [sp]
- add r1, r6, #0
- bl MOD11_022302BC
- bl MaskOfFlagNo
- ldr r1, _022423FC ; =0x00003108
- ldrb r1, [r5, r1]
- tst r0, r1
- bne _022423D0
- add sp, #0x10
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_022423D0:
- add sp, #0x10
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_022423D6:
- add sp, #0x10
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_022423DC:
- ldr r1, [r4]
- ldr r0, _02242400 ; =0x00000251
- tst r0, r1
- beq _022423E8
- str r6, [r7]
- b _022423EE
-_022423E8:
- mov r0, #1
- eor r0, r6
- str r0, [r7]
-_022423EE:
- mov r0, #0
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022423F4: .word 0x00002D4C
-_022423F8: .word 0x000003E6
-_022423FC: .word 0x00003108
-_02242400: .word 0x00000251
-
- thumb_func_start MOD11_02242404
-MOD11_02242404: ; 0x02242404
- push {r3, r4, r5, r6, r7, lr}
- str r1, [sp]
- bl MOD11_0222FF84
- add r4, r0, #0
- mov r3, #0
- cmp r4, #0
- ble _0224243E
- ldr r5, [sp]
- add r7, r3, #0
- add r6, r5, #0
-_0224241A:
- ldr r0, _02242460 ; =0x00002DB0
- add r3, r3, #1
- ldr r2, [r6, r0]
- ldr r0, _02242464 ; =0x0000218C
- ldr r1, [r5, r0]
- mov r0, #0
- mvn r0, r0
- eor r0, r1
- add r1, r2, #0
- and r1, r0
- ldr r0, _02242460 ; =0x00002DB0
- str r1, [r6, r0]
- ldr r0, _02242464 ; =0x0000218C
- add r6, #0xc0
- str r7, [r5, r0]
- add r5, r5, #4
- cmp r3, r4
- blt _0224241A
-_0224243E:
- ldr r1, [sp]
- mov r0, #0
- ldr r1, [r1, #0x64]
- lsl r2, r1, #1
- ldr r1, [sp]
- add r1, r1, r2
- ldr r2, _02242468 ; =0x00003064
- strh r0, [r1, r2]
- ldr r1, [sp]
- add r2, #0x60
- ldr r1, [r1, #0x64]
- lsl r3, r1, #1
- ldr r1, [sp]
- add r1, r1, r3
- strh r0, [r1, r2]
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02242460: .word 0x00002DB0
-_02242464: .word 0x0000218C
-_02242468: .word 0x00003064
-
- thumb_func_start MOD11_0224246C
-MOD11_0224246C: ; 0x0224246C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- ldr r0, _02242504 ; =0x000021EC
- str r1, [sp]
- ldrb r0, [r5, r0]
- add r6, r2, #0
- str r3, [sp, #4]
- mov r4, #0
- bl MaskOfFlagNo
- ldr r1, _02242508 ; =0x0000213C
- lsl r0, r0, #0x18
- ldr r2, [r5, r1]
- mov r1, #0xf
- lsl r1, r1, #0x18
- tst r1, r2
- beq _022424FA
- add r1, r2, #0
- tst r1, r0
- bne _022424AE
- ldr r7, _02242504 ; =0x000021EC
- add r6, r7, #0
- sub r6, #0xb0
-_0224249C:
- add r4, r4, #1
- add r0, r5, r4
- ldrb r0, [r0, r7]
- bl MaskOfFlagNo
- ldr r1, [r5, r6]
- lsl r0, r0, #0x18
- tst r1, r0
- beq _0224249C
-_022424AE:
- ldr r2, _02242508 ; =0x0000213C
- mov r1, #0
- mvn r1, r1
- eor r1, r0
- ldr r3, [r5, r2]
- asr r0, r0, #0x18
- and r1, r3
- str r1, [r5, r2]
- bl LowestFlagNo
- str r0, [r5, #0x74]
- ldr r0, [sp, #4]
- cmp r0, #1
- bne _022424D6
- add r0, r5, #0
- mov r1, #1
- mov r2, #6
- bl MOD11_022431DC
- b _022424E0
-_022424D6:
- add r0, r5, #0
- mov r1, #1
- mov r2, #0x53
- bl MOD11_022431DC
-_022424E0:
- mov r0, #0x15
- str r0, [r5, #8]
- ldr r0, [sp]
- mov r2, #0x27
- str r0, [r5, #0xc]
- ldr r0, [r5, #0x74]
- add sp, #8
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _0224250C ; =0x000021A8
- str r2, [r1, r0]
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_022424FA:
- str r6, [r5, #8]
- add r0, r4, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02242504: .word 0x000021EC
-_02242508: .word 0x0000213C
-_0224250C: .word 0x000021A8
-
- thumb_func_start MOD11_02242510
-MOD11_02242510: ; 0x02242510
- push {r3, r4, r5, lr}
- add r5, r0, #0
- mov r0, #0x85
- lsl r0, r0, #6
- add r4, r1, #0
- ldr r1, [r5, r0]
- mov r0, #0xf
- lsl r0, r0, #0x1c
- tst r0, r1
- beq _02242564
- mov r0, #1
- lsl r0, r0, #0x1c
- add r2, r1, #0
- tst r2, r0
- bne _02242536
-_0224252E:
- lsl r0, r0, #1
- add r2, r1, #0
- tst r2, r0
- beq _0224252E
-_02242536:
- mov r2, #0x85
- lsl r2, r2, #6
- mov r1, #0
- mvn r1, r1
- eor r1, r0
- ldr r3, [r5, r2]
- asr r0, r0, #0x1c
- and r1, r3
- str r1, [r5, r2]
- bl LowestFlagNo
- mov r2, #0x45
- str r0, [r5, #0x74]
- add r0, r5, #0
- mov r1, #1
- lsl r2, r2, #2
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r5, #8]
- str r4, [r5, #0xc]
- mov r0, #1
- pop {r3, r4, r5, pc}
-_02242564:
- str r2, [r5, #8]
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224256C
-MOD11_0224256C: ; 0x0224256C
- push {r4, r5, r6, lr}
- add r5, r1, #0
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x60
- bne _02242580
- mov r4, #0
- b _02242594
-_02242580:
- ldr r0, _0224274C ; =0x00002160
- ldr r4, [r5, r0]
- cmp r4, #0
- bne _02242594
- ldr r0, _02242750 ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02242754 ; =0x000003E2
- ldrb r4, [r1, r0]
-_02242594:
- mov r0, #0xc1
- lsl r0, r0, #6
- ldr r2, [r5, r0]
- mov r6, #0x10
- lsl r1, r2, #4
- add r3, r5, r1
- ldr r1, _02242758 ; =0x000003E9
- ldrb r1, [r3, r1]
- tst r1, r6
- beq _022425DE
- ldr r3, _0224275C ; =0x0000213C
- lsl r6, r6, #0x10
- ldr r1, [r5, r3]
- tst r1, r6
- bne _022425DE
- ldr r1, [r5, #0x6c]
- cmp r1, #0xff
- beq _022425DE
- add r3, r3, #4
- ldr r6, [r5, r3]
- mov r3, #4
- tst r3, r6
- beq _022425DE
- lsl r1, r1, #1
- add r3, r5, r1
- add r1, r0, #0
- add r1, #0x44
- strh r2, [r3, r1]
- ldr r2, [r5, #0x6c]
- ldr r1, [r5, r0]
- lsl r2, r2, #3
- add r3, r5, r2
- ldr r2, [r5, #0x64]
- add r0, #0x4c
- lsl r2, r2, #1
- add r2, r3, r2
- strh r1, [r2, r0]
-_022425DE:
- ldr r1, [r5, #0x6c]
- cmp r1, #0xff
- beq _02242628
- add r0, r5, #0
- bl MOD11_02249D90
- ldr r1, _0224275C ; =0x0000213C
- lsl r0, r0, #0x18
- ldr r3, [r5, r1]
- mov r2, #0x20
- lsr r0, r0, #0x18
- tst r2, r3
- bne _02242602
- add r1, r1, #4
- ldr r2, [r5, r1]
- mov r1, #4
- tst r1, r2
- beq _0224261C
-_02242602:
- cmp r0, #0x36
- beq _0224261C
- cmp r0, #0x72
- beq _0224261C
- cmp r0, #0x7c
- beq _0224261C
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02242760 ; =0x00002DF8
- mov r2, #0
- strh r2, [r1, r0]
-_0224261C:
- ldr r0, _0224275C ; =0x0000213C
- mov r1, #1
- ldr r2, [r5, r0]
- lsl r1, r1, #0x14
- tst r1, r2
- beq _0224262A
-_02242628:
- b _0224274A
-_0224262A:
- add r0, r0, #4
- ldr r1, [r5, r0]
- mov r0, #4
- tst r0, r1
- beq _02242668
- ldr r1, [r5, #0x6c]
- ldr r0, _02242750 ; =0x00003044
- lsl r1, r1, #1
- add r2, r5, r1
- add r1, r0, #0
- ldr r3, [r5, r0]
- add r1, #0x20
- strh r3, [r2, r1]
- ldr r1, [r5, #0x6c]
- ldr r3, [r5, #0x64]
- lsl r1, r1, #1
- add r2, r5, r1
- add r1, r0, #0
- add r1, #0x28
- strh r3, [r2, r1]
- ldr r1, [r5, #0x6c]
- lsl r1, r1, #1
- add r2, r5, r1
- add r1, r0, #0
- add r1, #0x30
- strh r4, [r2, r1]
- sub r1, r0, #4
- ldr r1, [r5, r1]
- add r0, r0, #4
- str r1, [r5, r0]
- b _02242692
-_02242668:
- ldr r0, [r5, #0x6c]
- ldr r3, _02242764 ; =0x00003064
- lsl r0, r0, #1
- mov r1, #0
- add r0, r5, r0
- strh r1, [r0, r3]
- ldr r2, [r5, #0x6c]
- mov r0, #0xff
- lsl r2, r2, #1
- add r6, r5, r2
- add r2, r3, #0
- add r2, #8
- strh r0, [r6, r2]
- ldr r0, [r5, #0x6c]
- lsl r0, r0, #1
- add r2, r5, r0
- add r0, r3, #0
- add r0, #0x10
- strh r1, [r2, r0]
- sub r3, #0x1c
- str r1, [r5, r3]
-_02242692:
- mov r0, #0x85
- lsl r0, r0, #6
- ldr r2, [r5, r0]
- mov r1, #0x40
- tst r1, r2
- beq _02242726
- add r0, #0x2c
- ldr r0, [r5, r0]
- ldr r2, _02242768 ; =0x801FDA49
- tst r0, r2
- bne _02242726
- ldr r0, _02242750 ; =0x00003044
- ldr r0, [r5, r0]
- lsl r1, r0, #4
- add r3, r5, r1
- ldr r1, _0224276C ; =0x000003E6
- ldrh r3, [r3, r1]
- cmp r3, #0x40
- bgt _022426C8
- bge _022426DC
- cmp r3, #0x10
- bgt _022426C2
- beq _022426DC
- b _02242702
-_022426C2:
- cmp r3, #0x20
- beq _022426DC
- b _02242702
-_022426C8:
- lsr r1, r2, #0x17
- cmp r3, r1
- bgt _022426D6
- bge _022426DC
- cmp r3, #0x80
- beq _022426DC
- b _02242702
-_022426D6:
- lsr r1, r2, #0x16
- cmp r3, r1
- bne _02242702
-_022426DC:
- ldr r1, [r5, #0x6c]
- ldr r2, _02242770 ; =0x000030C4
- lsl r1, r1, #1
- mov r0, #0
- add r1, r5, r1
- strh r0, [r1, r2]
- ldr r1, [r5, #0x6c]
- mov r4, #0xff
- lsl r1, r1, #1
- add r3, r5, r1
- add r1, r2, #0
- add r1, #8
- strh r4, [r3, r1]
- ldr r1, [r5, #0x6c]
- add r2, #0x10
- lsl r1, r1, #1
- add r1, r5, r1
- strh r0, [r1, r2]
- pop {r4, r5, r6, pc}
-_02242702:
- ldr r1, [r5, #0x6c]
- lsl r1, r1, #1
- add r2, r5, r1
- ldr r1, _02242770 ; =0x000030C4
- strh r0, [r2, r1]
- ldr r0, [r5, #0x6c]
- ldr r3, [r5, #0x64]
- lsl r0, r0, #1
- add r2, r5, r0
- add r0, r1, #0
- add r0, #8
- strh r3, [r2, r0]
- ldr r0, [r5, #0x6c]
- add r1, #0x10
- lsl r0, r0, #1
- add r0, r5, r0
- strh r4, [r0, r1]
- pop {r4, r5, r6, pc}
-_02242726:
- ldr r1, [r5, #0x6c]
- ldr r2, _02242770 ; =0x000030C4
- lsl r1, r1, #1
- mov r0, #0
- add r1, r5, r1
- strh r0, [r1, r2]
- ldr r1, [r5, #0x6c]
- mov r4, #0xff
- lsl r1, r1, #1
- add r3, r5, r1
- add r1, r2, #0
- add r1, #8
- strh r4, [r3, r1]
- ldr r1, [r5, #0x6c]
- add r2, #0x10
- lsl r1, r1, #1
- add r1, r5, r1
- strh r0, [r1, r2]
-_0224274A:
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0224274C: .word 0x00002160
-_02242750: .word 0x00003044
-_02242754: .word 0x000003E2
-_02242758: .word 0x000003E9
-_0224275C: .word 0x0000213C
-_02242760: .word 0x00002DF8
-_02242764: .word 0x00003064
-_02242768: .word 0x801FDA49
-_0224276C: .word 0x000003E6
-_02242770: .word 0x000030C4
-
- thumb_func_start MOD11_02242774
-MOD11_02242774: ; 0x02242774
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x10
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02242790
-MOD11_02242790: ; 0x02242790
- push {r3, r4, r5, lr}
- ldr r2, _022427E0 ; =0x0000216C
- add r5, r1, #0
- ldr r0, [r5, r2]
- mov r4, #0
- cmp r0, #0
- beq _022427C4
- add r1, r2, #0
- add r1, #0x11
- ldrb r1, [r5, r1]
- cmp r1, #0
- beq _022427C2
- ldr r1, [r5, #0x74]
- cmp r1, #0xff
- bne _022427BE
- add r2, #0x10
- ldrb r1, [r5, r2]
- cmp r1, #1
- beq _022427BE
- mov r1, #1
- lsl r1, r1, #0xe
- tst r0, r1
- beq _022427C4
-_022427BE:
- mov r4, #1
- b _022427C4
-_022427C2:
- mov r4, #1
-_022427C4:
- cmp r4, #1
- bne _022427DA
- add r0, r5, #0
- mov r1, #1
- mov r2, #0x15
- bl MOD11_022431DC
- ldr r0, [r5, #8]
- str r0, [r5, #0xc]
- mov r0, #0x15
- str r0, [r5, #8]
-_022427DA:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- nop
-_022427E0: .word 0x0000216C
-
- thumb_func_start MOD11_022427E4
-MOD11_022427E4: ; 0x022427E4
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- ldr r2, [r4, #0x6c]
- mov r3, #0
- cmp r2, #0xff
- bne _022427F4
- add r0, r3, #0
- pop {r3, r4, r5, r6, r7, pc}
-_022427F4:
- mov r0, #0xc0
- add r5, r2, #0
- mul r5, r0
- mov r1, #2
- ldr r0, _02242864 ; =0x00002DB0
- add r7, r4, r5
- ldr r6, [r7, r0]
- lsl r1, r1, #0x16
- tst r1, r6
- beq _0224285E
- ldr r1, _02242868 ; =0x0000216C
- mov r6, #2
- lsl r6, r6, #0x16
- ldr r1, [r4, r1]
- lsr r6, r6, #9
- tst r1, r6
- bne _0224285E
- ldr r1, [r4, #0x64]
- cmp r2, r1
- beq _0224285E
- sub r0, #0x24
- ldr r0, [r7, r0]
- cmp r0, #0
- beq _0224285E
- mov r0, #0x1c
- mul r0, r2
- add r2, r4, r0
- mov r0, #0xb6
- lsl r0, r0, #2
- ldr r1, [r2, r0]
- cmp r1, #0
- bne _0224283C
- add r0, #8
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _0224285E
-_0224283C:
- ldr r0, _0224286C ; =0x00002D59
- add r1, r4, r0
- ldrsb r0, [r1, r5]
- cmp r0, #0xc
- bge _0224285E
- add r0, r0, #1
- strb r0, [r1, r5]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xf5
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r3, #1
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0224285E:
- add r0, r3, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02242864: .word 0x00002DB0
-_02242868: .word 0x0000216C
-_0224286C: .word 0x00002D59
-
- thumb_func_start MOD11_02242870
-MOD11_02242870: ; 0x02242870
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- mov r4, #0
- bl MOD11_02249D90
- add r7, r0, #0
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- add r2, r4, #0
- bl MOD11_02249DA4
- add r6, r0, #0
- ldr r0, [r5, #0x6c]
- cmp r0, #0xff
- beq _0224290A
- cmp r7, #0x37
- bne _0224290A
- ldr r1, _02242910 ; =0x0000216C
- ldr r2, [r5, r1]
- ldr r1, _02242914 ; =0x801FDA49
- tst r1, r2
- bne _0224290A
- mov r1, #0x1c
- mul r1, r0
- mov r0, #0xb6
- add r2, r5, r1
- lsl r0, r0, #2
- ldr r1, [r2, r0]
- cmp r1, #0
- bne _022428B8
- add r0, #8
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _0224290A
-_022428B8:
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- cmp r1, r6
- bge _0224290A
- ldr r0, _02242918 ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _0224291C ; =0x000003E9
- ldrb r1, [r1, r0]
- mov r0, #0x20
- tst r0, r1
- beq _0224290A
- ldr r0, [r5, #0x6c]
- mov r1, #0xc0
- mul r1, r0
- add r2, r5, r1
- ldr r1, _02242920 ; =0x00002D8C
- ldr r1, [r2, r1]
- cmp r1, #0
- beq _0224290A
- add r1, r5, #0
- add r1, #0x94
- str r0, [r1]
- add r0, r5, #0
- mov r1, #2
- add r0, #0x88
- str r1, [r0]
- add r0, r5, #0
- mov r1, #1
- mov r2, #0xe
- bl MOD11_022431DC
- ldr r0, [r5, #8]
- mov r4, #1
- str r0, [r5, #0xc]
- mov r0, #0x15
- str r0, [r5, #8]
-_0224290A:
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02242910: .word 0x0000216C
-_02242914: .word 0x801FDA49
-_02242918: .word 0x00003044
-_0224291C: .word 0x000003E9
-_02242920: .word 0x00002D8C
-
- thumb_func_start MOD11_02242924
-MOD11_02242924: ; 0x02242924
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- ldr r4, [r5, #0x5c]
- str r0, [sp]
- mov r7, #0
- bl MOD11_0222FF84
- cmp r4, r0
- bge _02242994
- add r6, r5, #0
- add r6, #0x5c
-_0224293A:
- mov r0, #0xc0
- mul r0, r4
- mov r1, #0xb7
- add r0, r5, r0
- lsl r1, r1, #6
- ldr r2, [r0, r1]
- ldr r1, _022429A0 ; =0x200400C0
- tst r1, r2
- bne _0224297E
- ldr r1, _022429A4 ; =0x00002DC4
- ldr r2, [r0, r1]
- ldr r1, _022429A0 ; =0x200400C0
- tst r1, r2
- beq _0224297E
- ldr r1, _022429A4 ; =0x00002DC4
- ldr r2, [r0, r1]
- ldr r1, _022429A8 ; =0xDFFBFF3F
- and r2, r1
- ldr r1, _022429A4 ; =0x00002DC4
- str r2, [r0, r1]
- ldr r2, _022429AC ; =0x0000011F
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022431DC
- mov r0, #0x46
- ldr r1, [r5, #0x5c]
- lsl r0, r0, #2
- str r1, [r5, r0]
- ldr r0, [r5, #8]
- mov r7, #1
- str r0, [r5, #0xc]
- mov r0, #0x15
- str r0, [r5, #8]
-_0224297E:
- ldr r0, [r6]
- add r0, r0, #1
- str r0, [r6]
- cmp r7, #1
- beq _02242994
- ldr r0, [sp]
- ldr r4, [r5, #0x5c]
- bl MOD11_0222FF84
- cmp r4, r0
- blt _0224293A
-_02242994:
- cmp r7, #0
- bne _0224299C
- mov r0, #0
- str r0, [r5, #0x5c]
-_0224299C:
- add r0, r7, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022429A0: .word 0x200400C0
-_022429A4: .word 0x00002DC4
-_022429A8: .word 0xDFFBFF3F
-_022429AC: .word 0x0000011F
-
- thumb_func_start MOD11_022429B0
-MOD11_022429B0: ; 0x022429B0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r4, r1, #0
- mov r6, #0
- bl MOD11_0222FF84
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02249D90
- str r0, [sp, #4]
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- add r2, r6, #0
- bl MOD11_02249DA4
- ldr r1, [r4, #8]
- str r0, [sp]
- add r0, r4, #0
- add r2, r1, #0
- mov r3, #1
- bl MOD11_0224246C
- cmp r0, #1
- bne _022429E8
- add sp, #8
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_022429E8:
- add r5, r4, #0
- add r5, #0x30
-_022429EC:
- ldr r0, [r4, #0x30]
- cmp r0, #3
- bls _022429F4
- b _02242B44
-_022429F4:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02242A00: ; jump table
- .short _02242A08 - _02242A00 - 2 ; case 0
- .short _02242A38 - _02242A00 - 2 ; case 1
- .short _02242AB8 - _02242A00 - 2 ; case 2
- .short _02242B3C - _02242A00 - 2 ; case 3
-_02242A08:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _02242B5C ; =0x00002DB0
- add r0, r4, r0
- ldr r2, [r0, r1]
- mov r1, #2
- lsl r1, r1, #0x16
- tst r1, r2
- beq _02242A30
- ldr r1, _02242B60 ; =0x00003044
- ldr r1, [r4, r1]
- cmp r1, #0x63
- beq _02242A30
- ldr r1, _02242B5C ; =0x00002DB0
- ldr r2, [r0, r1]
- ldr r1, _02242B64 ; =0xFF7FFFFF
- and r2, r1
- ldr r1, _02242B5C ; =0x00002DB0
- str r2, [r0, r1]
-_02242A30:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _02242B44
-_02242A38:
- ldr r3, [r4, #0x6c]
- cmp r3, #0xff
- beq _02242AB0
- ldr r0, [sp, #4]
- cmp r0, #0x57
- bne _02242AB0
- mov r0, #0x85
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0x10
- tst r0, r1
- bne _02242AB0
- ldr r0, _02242B68 ; =0x0000213C
- ldr r1, [r4, r0]
- mov r0, #2
- lsl r0, r0, #0xc
- tst r0, r1
- beq _02242AB0
- ldr r2, [r4, #0x64]
- mov r0, #0x1c
- mul r0, r2
- add r1, r4, r0
- mov r0, #0xbb
- lsl r0, r0, #2
- ldr r7, [r1, r0]
- cmp r7, #0
- beq _02242AB0
- cmp r2, r3
- beq _02242AB0
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _02242B6C ; =0x00002D8C
- ldr r1, [r2, r0]
- add r0, r0, #4
- ldr r0, [r2, r0]
- cmp r1, r0
- bhs _02242AB0
- cmp r1, #0
- beq _02242AB0
- ldr r1, [sp]
- neg r0, r7
- bl MOD11_022476C0
- ldr r1, _02242B70 ; =0x0000215C
- mov r2, #0xd5
- str r0, [r4, r1]
- mov r0, #0x46
- ldr r1, [r4, #0x64]
- lsl r0, r0, #2
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r6, #1
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_02242AB0:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _02242B44
-_02242AB8:
- ldr r0, [sp, #4]
- cmp r0, #0x61
- bne _02242B34
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _02242B34
- mov r0, #0x85
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0x10
- tst r0, r1
- bne _02242B34
- ldr r0, _02242B68 ; =0x0000213C
- ldr r1, [r4, r0]
- mov r0, #2
- lsl r0, r0, #0xc
- tst r0, r1
- beq _02242B34
- ldr r0, _02242B60 ; =0x00003044
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r4, r0
- mov r0, #0x3e
- lsl r0, r0, #4
- ldrb r0, [r1, r0]
- cmp r0, #2
- beq _02242B34
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _02242B6C ; =0x00002D8C
- add r0, r4, r0
- ldr r1, [r0, r1]
- cmp r1, #0
- beq _02242B34
- ldr r1, _02242B74 ; =0x00002D90
- ldr r1, [r0, r1]
- mov r0, #0
- mvn r0, r0
- mul r0, r1
- mov r1, #0xa
- bl MOD11_022476C0
- ldr r1, _02242B70 ; =0x0000215C
- mov r2, #0xd6
- str r0, [r4, r1]
- mov r0, #0x46
- ldr r1, [r4, #0x64]
- lsl r0, r0, #2
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r6, #1
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_02242B34:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _02242B44
-_02242B3C:
- mov r0, #0
- str r0, [r4, #0x30]
- str r0, [r4, #0x34]
- mov r6, #2
-_02242B44:
- cmp r6, #0
- bne _02242B4A
- b _022429EC
-_02242B4A:
- cmp r6, #1
- bne _02242B54
- add sp, #8
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02242B54:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02242B5C: .word 0x00002DB0
-_02242B60: .word 0x00003044
-_02242B64: .word 0xFF7FFFFF
-_02242B68: .word 0x0000213C
-_02242B6C: .word 0x00002D8C
-_02242B70: .word 0x0000215C
-_02242B74: .word 0x00002D90
-
- thumb_func_start MOD11_02242B78
-MOD11_02242B78: ; 0x02242B78
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r7, r1, #0
- str r2, [sp, #4]
- add r1, r2, #0
- add r2, r3, #0
- str r0, [sp]
- bl MOD11_02230014
- ldr r1, [sp, #4]
- mov r2, #0xc0
- add r5, r1, #0
- mov r1, #0xb5
- lsl r1, r1, #6
- add r1, r7, r1
- mul r5, r2
- str r1, [sp, #0x18]
- mov r1, #5
- mov r2, #0
- add r4, r0, #0
- bl GetMonData
- ldr r1, [sp, #0x18]
- mov r2, #0
- strh r0, [r1, r5]
- add r0, r4, #0
- mov r1, #0xa4
- bl GetMonData
- ldr r1, _02242F4C ; =0x00002D42
- add r2, r7, r5
- strh r0, [r2, r1]
- add r0, r4, #0
- mov r1, #0xa5
- mov r2, #0
- bl GetMonData
- ldr r1, _02242F50 ; =0x00002D44
- add r2, r7, r5
- strh r0, [r2, r1]
- add r0, r4, #0
- mov r1, #0xa6
- mov r2, #0
- bl GetMonData
- ldr r1, _02242F54 ; =0x00002D46
- add r2, r7, r5
- strh r0, [r2, r1]
- add r0, r4, #0
- mov r1, #0xa7
- mov r2, #0
- bl GetMonData
- ldr r1, _02242F58 ; =0x00002D48
- add r2, r7, r5
- strh r0, [r2, r1]
- add r0, r4, #0
- mov r1, #0xa8
- mov r2, #0
- bl GetMonData
- add r1, r7, r5
- ldr r2, _02242F5C ; =0x00002D4A
- str r1, [sp, #0xc]
- strh r0, [r1, r2]
- add r0, r1, #0
- mov r6, #0
- str r0, [sp, #0x14]
- str r0, [sp, #0x10]
-_02242C02:
- add r1, r6, #0
- add r0, r4, #0
- add r1, #0x36
- mov r2, #0
- bl GetMonData
- ldr r2, [sp, #0x14]
- ldr r1, _02242F60 ; =0x00002D4C
- strh r0, [r2, r1]
- add r1, r6, #0
- add r0, r4, #0
- add r1, #0x3a
- mov r2, #0
- bl GetMonData
- ldr r2, [sp, #0x10]
- ldr r1, _02242F64 ; =0x00002D6C
- strb r0, [r2, r1]
- add r1, r6, #0
- add r0, r4, #0
- add r1, #0x3e
- mov r2, #0
- bl GetMonData
- ldr r2, [sp, #0x10]
- ldr r1, _02242F68 ; =0x00002D70
- add r6, r6, #1
- strb r0, [r2, r1]
- ldr r0, [sp, #0x14]
- add r0, r0, #2
- str r0, [sp, #0x14]
- add r0, r2, #0
- add r0, r0, #1
- str r0, [sp, #0x10]
- cmp r6, #4
- blt _02242C02
- add r0, r1, #0
- sub r0, #0x1c
- add r6, r7, r0
- add r0, r4, #0
- mov r1, #0x46
- mov r2, #0
- bl GetMonData
- ldr r1, [r6, r5]
- mov r2, #0x1f
- bic r1, r2
- mov r2, #0x1f
- and r0, r2
- orr r0, r1
- str r0, [r6, r5]
- add r0, r4, #0
- mov r1, #0x47
- mov r2, #0
- bl GetMonData
- lsl r0, r0, #0x1b
- ldr r2, [r6, r5]
- ldr r1, _02242F6C ; =0xFFFFFC1F
- lsr r0, r0, #0x16
- and r1, r2
- orr r0, r1
- str r0, [r6, r5]
- add r0, r4, #0
- mov r1, #0x48
- mov r2, #0
- bl GetMonData
- lsl r0, r0, #0x1b
- ldr r2, [r6, r5]
- ldr r1, _02242F70 ; =0xFFFF83FF
- lsr r0, r0, #0x11
- and r1, r2
- orr r0, r1
- str r0, [r6, r5]
- add r0, r4, #0
- mov r1, #0x49
- mov r2, #0
- bl GetMonData
- lsl r0, r0, #0x1b
- ldr r2, [r6, r5]
- ldr r1, _02242F74 ; =0xFFF07FFF
- lsr r0, r0, #0xc
- and r1, r2
- orr r0, r1
- str r0, [r6, r5]
- add r0, r4, #0
- mov r1, #0x4a
- mov r2, #0
- bl GetMonData
- lsl r0, r0, #0x1b
- ldr r2, [r6, r5]
- ldr r1, _02242F78 ; =0xFE0FFFFF
- lsr r0, r0, #7
- and r1, r2
- orr r0, r1
- str r0, [r6, r5]
- add r0, r4, #0
- mov r1, #0x4b
- mov r2, #0
- bl GetMonData
- lsl r0, r0, #0x1b
- ldr r2, [r6, r5]
- ldr r1, _02242F7C ; =0xC1FFFFFF
- lsr r0, r0, #2
- and r1, r2
- orr r0, r1
- str r0, [r6, r5]
- add r0, r4, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- ldr r2, [r6, r5]
- ldr r1, _02242F80 ; =0xBFFFFFFF
- lsl r0, r0, #0x1f
- and r1, r2
- lsr r0, r0, #1
- orr r0, r1
- str r0, [r6, r5]
- add r0, r4, #0
- mov r1, #0x4d
- mov r2, #0
- bl GetMonData
- ldr r2, [r6, r5]
- ldr r1, _02242F84 ; =0x7FFFFFFF
- lsl r0, r0, #0x1f
- and r1, r2
- orr r0, r1
- str r0, [r6, r5]
- ldr r0, _02242F88 ; =0x0000213C
- ldr r1, [r7, r0]
- mov r0, #1
- lsl r0, r0, #8
- tst r0, r1
- bne _02242D2E
- ldr r0, _02242F8C ; =0x00002D58
- mov r2, #0
- mov r1, #6
-_02242D20:
- ldr r3, [sp, #0xc]
- add r2, r2, #1
- strb r1, [r3, r0]
- add r3, r3, #1
- str r3, [sp, #0xc]
- cmp r2, #8
- blt _02242D20
-_02242D2E:
- ldr r0, _02242F90 ; =0x00002D68
- mov r1, #1
- add r0, r7, r0
- ldr r2, [r0, r5]
- bic r2, r1
- str r2, [r0, r5]
- ldr r2, [r0, r5]
- mov r1, #2
- bic r2, r1
- str r2, [r0, r5]
- ldr r2, [r0, r5]
- mov r1, #4
- bic r2, r1
- str r2, [r0, r5]
- ldr r2, [r0, r5]
- mov r1, #8
- bic r2, r1
- str r2, [r0, r5]
- ldr r2, [r0, r5]
- mov r1, #0x10
- bic r2, r1
- str r2, [r0, r5]
- ldr r2, [r0, r5]
- mov r1, #0x20
- bic r2, r1
- str r2, [r0, r5]
- ldr r2, [r0, r5]
- mov r1, #0x40
- bic r2, r1
- str r2, [r0, r5]
- ldr r2, [r0, r5]
- mov r1, #0x80
- bic r2, r1
- str r2, [r0, r5]
- ldr r2, [r0, r5]
- ldr r1, _02242F94 ; =0xFFFFFEFF
- and r1, r2
- str r1, [r0, r5]
- ldr r2, [r0, r5]
- ldr r1, _02242F98 ; =0xFFFFFDFF
- and r1, r2
- str r1, [r0, r5]
- ldr r2, [r0, r5]
- ldr r1, _02242F9C ; =0xFFFFFBFF
- and r1, r2
- str r1, [r0, r5]
- add r0, r4, #0
- mov r1, #0xb0
- mov r2, #0
- bl GetMonData
- ldr r1, _02242FA0 ; =0x00002D64
- add r2, r7, r5
- strb r0, [r2, r1]
- add r0, r4, #0
- mov r1, #0xb1
- mov r2, #0
- bl GetMonData
- ldr r1, _02242FA4 ; =0x00002D65
- add r2, r7, r5
- strb r0, [r2, r1]
- add r1, #0x59
- add r0, r7, r1
- str r0, [sp, #0x1c]
- add r0, r4, #0
- bl GetMonGender
- ldr r1, [sp, #0x1c]
- mov r2, #0xf
- ldrb r1, [r1, r5]
- bic r1, r2
- mov r2, #0xf
- and r0, r2
- orr r1, r0
- ldr r0, [sp, #0x1c]
- strb r1, [r0, r5]
- ldr r0, _02242FA8 ; =0x00002D66
- add r6, r7, r0
- add r0, r4, #0
- bl MonIsShiny
- ldrb r1, [r6, r5]
- mov r2, #0x20
- lsl r0, r0, #0x1f
- bic r1, r2
- lsr r0, r0, #0x1a
- orr r0, r1
- strb r0, [r6, r5]
- add r0, r4, #0
- mov r1, #0x70
- mov r2, #0
- bl GetMonData
- ldrb r1, [r6, r5]
- mov r2, #0x1f
- lsl r0, r0, #0x18
- bic r1, r2
- lsr r2, r0, #0x18
- mov r0, #0x1f
- and r0, r2
- orr r0, r1
- strb r0, [r6, r5]
- ldr r0, [sp]
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- beq _02242E24
- ldr r2, _02242FAC ; =0x00002D67
- mov r0, #0
- add r3, r7, r5
- add r1, r2, #0
- strb r0, [r3, r2]
- add r2, #0x51
- add r1, #0x45
- add r2, r7, r2
- str r0, [r3, r1]
- add r1, r2, r5
- str r1, [sp, #8]
- strh r0, [r2, r5]
- b _02242E58
-_02242E24:
- add r0, r4, #0
- mov r1, #0xa
- mov r2, #0
- bl GetMonData
- ldr r1, _02242FAC ; =0x00002D67
- add r2, r7, r5
- strb r0, [r2, r1]
- add r0, r4, #0
- mov r1, #0x9f
- mov r2, #0
- bl GetMonData
- ldr r1, _02242FB0 ; =0x00002DAC
- add r2, r7, r5
- str r0, [r2, r1]
- add r1, #0xc
- add r6, r7, r1
- add r0, r6, r5
- str r0, [sp, #8]
- add r0, r4, #0
- mov r1, #6
- mov r2, #0
- bl GetMonData
- strh r0, [r6, r5]
-_02242E58:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- add r6, r0, #0
- mul r6, r1
- add r0, r4, #0
- mov r1, #0xa0
- mov r2, #0
- bl GetMonData
- ldr r1, _02242FB4 ; =0x00002D74
- add r2, r7, r6
- strb r0, [r2, r1]
- add r0, r4, #0
- mov r1, #9
- mov r2, #0
- bl GetMonData
- ldr r1, _02242FB8 ; =0x00002D75
- add r2, r7, r6
- strb r0, [r2, r1]
- add r0, r4, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- ldr r1, _02242FBC ; =0x00002D8C
- add r2, r7, r6
- str r0, [r2, r1]
- add r0, r4, #0
- mov r1, #0xa3
- mov r2, #0
- bl GetMonData
- ldr r1, _02242FC0 ; =0x00002D90
- add r2, r7, r6
- str r0, [r2, r1]
- add r0, r4, #0
- mov r1, #8
- mov r2, #0
- bl GetMonData
- ldr r1, _02242FC4 ; =0x00002DA4
- add r2, r7, r6
- str r0, [r2, r1]
- mov r1, #0
- add r0, r4, #0
- add r2, r1, #0
- bl GetMonData
- ldr r1, _02242FC8 ; =0x00002DA8
- add r2, r7, r6
- str r0, [r2, r1]
- add r0, r4, #0
- mov r1, #7
- mov r2, #0
- bl GetMonData
- ldr r1, _02242FCC ; =0x00002DB4
- add r2, r7, r6
- str r0, [r2, r1]
- add r0, r4, #0
- mov r1, #0x9c
- mov r2, #0
- bl GetMonData
- ldr r1, [sp, #0x1c]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- lsl r0, r0, #0x1c
- ldrb r1, [r1, r5]
- mov r2, #0xf0
- lsr r0, r0, #0x18
- bic r1, r2
- orr r1, r0
- ldr r0, [sp, #0x1c]
- mov r2, #0
- strb r1, [r0, r5]
- add r0, r4, #0
- mov r1, #0x9a
- bl GetMonData
- ldr r1, _02242FD0 ; =0x00002DBF
- add r2, r7, r6
- strb r0, [r2, r1]
- mov r0, #5
- bl FUN_02087A6C
- mov r1, #0
- mov r2, #5
- str r0, [sp, #0x20]
- bl FUN_02087A98
- ldr r1, [sp, #0x18]
- ldr r0, [sp, #0x20]
- ldrh r1, [r1, r5]
- bl FUN_02087B78
- ldr r1, _02242FD4 ; =0x00002D60
- add r2, r7, r6
- str r0, [r2, r1]
- ldr r0, [sp, #0x20]
- bl FUN_02087B0C
- ldr r0, [sp, #0x20]
- bl FUN_02087A84
- ldr r2, _02242FD8 ; =0x00002D76
- add r0, r4, #0
- add r2, r7, r2
- mov r1, #0x74
- add r2, r2, r6
- bl GetMonData
- ldr r2, _02242FDC ; =0x00002D94
- add r0, r4, #0
- add r2, r7, r2
- mov r1, #0x8f
- add r2, r2, r6
- bl GetMonData
- ldr r0, _02242FE0 ; =0x00002DBC
- b _02242FE4
- .align 2, 0
-_02242F4C: .word 0x00002D42
-_02242F50: .word 0x00002D44
-_02242F54: .word 0x00002D46
-_02242F58: .word 0x00002D48
-_02242F5C: .word 0x00002D4A
-_02242F60: .word 0x00002D4C
-_02242F64: .word 0x00002D6C
-_02242F68: .word 0x00002D70
-_02242F6C: .word 0xFFFFFC1F
-_02242F70: .word 0xFFFF83FF
-_02242F74: .word 0xFFF07FFF
-_02242F78: .word 0xFE0FFFFF
-_02242F7C: .word 0xC1FFFFFF
-_02242F80: .word 0xBFFFFFFF
-_02242F84: .word 0x7FFFFFFF
-_02242F88: .word 0x0000213C
-_02242F8C: .word 0x00002D58
-_02242F90: .word 0x00002D68
-_02242F94: .word 0xFFFFFEFF
-_02242F98: .word 0xFFFFFDFF
-_02242F9C: .word 0xFFFFFBFF
-_02242FA0: .word 0x00002D64
-_02242FA4: .word 0x00002D65
-_02242FA8: .word 0x00002D66
-_02242FAC: .word 0x00002D67
-_02242FB0: .word 0x00002DAC
-_02242FB4: .word 0x00002D74
-_02242FB8: .word 0x00002D75
-_02242FBC: .word 0x00002D8C
-_02242FC0: .word 0x00002D90
-_02242FC4: .word 0x00002DA4
-_02242FC8: .word 0x00002DA8
-_02242FCC: .word 0x00002DB4
-_02242FD0: .word 0x00002DBF
-_02242FD4: .word 0x00002D60
-_02242FD8: .word 0x00002D76
-_02242FDC: .word 0x00002D94
-_02242FE0: .word 0x00002DBC
-_02242FE4:
- mov r2, #0
- add r1, r7, r6
- strb r2, [r1, r0]
- add r0, r0, #1
- strb r2, [r1, r0]
- ldr r0, [sp]
- ldr r1, [sp, #4]
- bl MOD11_02230270
- add r4, r0, #0
- ldr r0, [sp, #4]
- add r1, r7, r0
- ldr r0, _02243048 ; =0x0000219C
- ldrb r0, [r1, r0]
- bl MaskOfFlagNo
- lsl r1, r4, #3
- add r2, r7, r1
- mov r1, #0x71
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- lsl r1, r1, #3
- lsr r1, r1, #0x1a
- tst r0, r1
- beq _0224302C
- ldr r0, [sp, #8]
- mov r1, #0
- strh r1, [r0]
- ldr r0, _0224304C ; =0x00002DCC
- add sp, #0x24
- add r2, r7, r0
- ldr r1, [r2, r5]
- ldr r0, _02243050 ; =0xFFBFFFFF
- and r0, r1
- str r0, [r2, r5]
- pop {r4, r5, r6, r7, pc}
-_0224302C:
- ldr r0, [sp, #8]
- ldrh r0, [r0]
- cmp r0, #0
- beq _02243042
- ldr r0, _0224304C ; =0x00002DCC
- add r2, r7, r0
- mov r0, #1
- ldr r1, [r2, r5]
- lsl r0, r0, #0x16
- orr r0, r1
- str r0, [r2, r5]
-_02243042:
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- nop
-_02243048: .word 0x0000219C
-_0224304C: .word 0x00002DCC
-_02243050: .word 0xFFBFFFFF
-
- thumb_func_start MOD11_02243054
-MOD11_02243054: ; 0x02243054
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r5, r2, #0
- str r1, [sp]
- add r1, r5, #0
- add r2, r3, #0
- bl MOD11_02230014
- mov r1, #0xc0
- mul r1, r5
- str r1, [sp, #4]
- mov r1, #0xa4
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- ldr r2, [sp]
- ldr r1, [sp, #4]
- add r2, r2, r1
- ldr r1, _022431A8 ; =0x00002D42
- strh r0, [r2, r1]
- add r0, r6, #0
- mov r1, #0xa5
- mov r2, #0
- bl GetMonData
- ldr r2, [sp]
- ldr r1, [sp, #4]
- add r2, r2, r1
- ldr r1, _022431AC ; =0x00002D44
- strh r0, [r2, r1]
- add r0, r6, #0
- mov r1, #0xa6
- mov r2, #0
- bl GetMonData
- ldr r2, [sp]
- ldr r1, [sp, #4]
- add r2, r2, r1
- ldr r1, _022431B0 ; =0x00002D46
- strh r0, [r2, r1]
- add r0, r6, #0
- mov r1, #0xa7
- mov r2, #0
- bl GetMonData
- ldr r2, [sp]
- ldr r1, [sp, #4]
- add r2, r2, r1
- ldr r1, _022431B4 ; =0x00002D48
- strh r0, [r2, r1]
- add r0, r6, #0
- mov r1, #0xa8
- mov r2, #0
- bl GetMonData
- ldr r2, [sp]
- ldr r1, [sp, #4]
- add r2, r2, r1
- ldr r1, _022431B8 ; =0x00002D4A
- strh r0, [r2, r1]
- add r0, r6, #0
- mov r1, #0xa0
- mov r2, #0
- bl GetMonData
- ldr r2, [sp]
- ldr r1, [sp, #4]
- add r2, r2, r1
- ldr r1, _022431BC ; =0x00002D74
- strb r0, [r2, r1]
- add r0, r6, #0
- mov r1, #9
- mov r2, #0
- bl GetMonData
- ldr r2, [sp]
- ldr r1, [sp, #4]
- add r2, r2, r1
- ldr r1, _022431C0 ; =0x00002D75
- strb r0, [r2, r1]
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- ldr r2, [sp]
- ldr r1, [sp, #4]
- add r2, r2, r1
- ldr r1, _022431C4 ; =0x00002D8C
- str r0, [r2, r1]
- add r0, r6, #0
- mov r1, #0xa3
- mov r2, #0
- bl GetMonData
- ldr r2, [sp]
- ldr r1, [sp, #4]
- add r2, r2, r1
- ldr r1, _022431C8 ; =0x00002D90
- str r0, [r2, r1]
- add r0, r1, #0
- add r0, #0x20
- ldr r2, [r2, r0]
- mov r0, #2
- lsl r0, r0, #0x14
- tst r0, r2
- bne _022431A4
- mov r0, #0xc0
- mul r0, r5
- ldr r2, [sp]
- str r0, [sp, #8]
- add r7, r2, r0
- add r1, #0x3c
- add r0, r2, #0
- add r0, r0, r1
- mov r4, #0
- add r5, r7, #0
- str r0, [sp, #0xc]
-_02243142:
- add r0, r4, #0
- bl MaskOfFlagNo
- ldr r2, [sp, #0xc]
- ldr r1, [sp, #8]
- ldr r1, [r2, r1]
- lsl r1, r1, #0x1a
- lsr r1, r1, #0x1c
- tst r0, r1
- bne _02243186
- add r1, r4, #0
- add r0, r6, #0
- add r1, #0x36
- mov r2, #0
- bl GetMonData
- ldr r1, _022431CC ; =0x00002D4C
- mov r2, #0
- strh r0, [r7, r1]
- add r1, r4, #0
- add r0, r6, #0
- add r1, #0x3a
- bl GetMonData
- ldr r1, _022431D0 ; =0x00002D6C
- mov r2, #0
- strb r0, [r5, r1]
- add r1, r4, #0
- add r0, r6, #0
- add r1, #0x3e
- bl GetMonData
- ldr r1, _022431D4 ; =0x00002D70
- strb r0, [r5, r1]
-_02243186:
- add r4, r4, #1
- add r7, r7, #2
- add r5, r5, #1
- cmp r4, #4
- blt _02243142
- add r0, r6, #0
- mov r1, #8
- mov r2, #0
- bl GetMonData
- ldr r2, [sp]
- ldr r1, [sp, #4]
- add r2, r2, r1
- ldr r1, _022431D8 ; =0x00002DA4
- str r0, [r2, r1]
-_022431A4:
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022431A8: .word 0x00002D42
-_022431AC: .word 0x00002D44
-_022431B0: .word 0x00002D46
-_022431B4: .word 0x00002D48
-_022431B8: .word 0x00002D4A
-_022431BC: .word 0x00002D74
-_022431C0: .word 0x00002D75
-_022431C4: .word 0x00002D8C
-_022431C8: .word 0x00002D90
-_022431CC: .word 0x00002D4C
-_022431D0: .word 0x00002D6C
-_022431D4: .word 0x00002D70
-_022431D8: .word 0x00002DA4
-
- thumb_func_start MOD11_022431DC
-MOD11_022431DC: ; 0x022431DC
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r6, r2, #0
- add r5, r0, #0
- add r0, r4, #0
- add r1, r6, #0
- bl GetNarcMemberSizeByIdPair
- mov r1, #0x19
- lsl r1, r1, #6
- cmp r0, r1
- blo _022431F8
- bl ErrorHandling
-_022431F8:
- add r0, r5, #0
- add r0, #0xac
- str r4, [r0]
- add r0, r5, #0
- add r0, #0xb0
- str r6, [r0]
- add r0, r5, #0
- mov r1, #0
- add r0, #0xb4
- str r1, [r0]
- mov r0, #0x27
- lsl r0, r0, #8
- add r0, r5, r0
- add r1, r4, #0
- add r2, r6, #0
- bl ReadWholeNarcMemberByIdPair
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0224321C
-MOD11_0224321C: ; 0x0224321C
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r6, r2, #0
- add r5, r0, #0
- add r0, r4, #0
- add r1, r6, #0
- bl GetNarcMemberSizeByIdPair
- mov r1, #0x19
- lsl r1, r1, #6
- cmp r0, r1
- blo _02243238
- bl ErrorHandling
-_02243238:
- add r0, r5, #0
- add r0, #0xb8
- ldr r0, [r0]
- cmp r0, #4
- blt _02243246
- bl ErrorHandling
-_02243246:
- add r1, r5, #0
- add r1, #0xb8
- ldr r1, [r1]
- add r0, r5, #0
- add r0, #0xac
- lsl r1, r1, #2
- add r1, r5, r1
- ldr r0, [r0]
- add r1, #0xbc
- str r0, [r1]
- add r1, r5, #0
- add r1, #0xb8
- ldr r1, [r1]
- add r0, r5, #0
- add r0, #0xb0
- lsl r1, r1, #2
- add r1, r5, r1
- ldr r0, [r0]
- add r1, #0xcc
- str r0, [r1]
- add r1, r5, #0
- add r1, #0xb8
- ldr r1, [r1]
- add r0, r5, #0
- add r0, #0xb4
- lsl r1, r1, #2
- add r1, r5, r1
- ldr r0, [r0]
- add r1, #0xdc
- str r0, [r1]
- add r0, r5, #0
- add r0, #0xb8
- ldr r0, [r0]
- add r2, r6, #0
- add r1, r0, #1
- add r0, r5, #0
- add r0, #0xb8
- str r1, [r0]
- add r0, r5, #0
- add r0, #0xac
- str r4, [r0]
- add r0, r5, #0
- add r0, #0xb0
- str r6, [r0]
- add r0, r5, #0
- mov r1, #0
- add r0, #0xb4
- str r1, [r0]
- mov r0, #0x27
- lsl r0, r0, #8
- add r0, r5, r0
- add r1, r4, #0
- bl ReadWholeNarcMemberByIdPair
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_022432B4
-MOD11_022432B4: ; 0x022432B4
- push {r4, lr}
- add r4, r0, #0
- add r1, r4, #0
- add r1, #0xb8
- ldr r1, [r1]
- cmp r1, #0
- beq _022432FE
- add r1, r4, #0
- add r1, #0xb8
- ldr r1, [r1]
- sub r2, r1, #1
- add r1, r4, #0
- add r1, #0xb8
- str r2, [r1]
- add r1, r4, #0
- add r1, #0xb8
- ldr r1, [r1]
- lsl r2, r1, #2
- add r1, r4, r2
- add r2, r4, r2
- add r1, #0xbc
- add r2, #0xcc
- ldr r1, [r1]
- ldr r2, [r2]
- bl MOD11_022431DC
- add r0, r4, #0
- add r0, #0xb8
- ldr r0, [r0]
- lsl r0, r0, #2
- add r0, r4, r0
- add r0, #0xdc
- ldr r0, [r0]
- add r4, #0xb4
- str r0, [r4]
- mov r0, #0
- pop {r4, pc}
-_022432FE:
- mov r0, #1
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02243304
-MOD11_02243304: ; 0x02243304
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- lsl r0, r1, #6
- lsl r6, r2, #4
- add r1, r4, r0
- add r5, r1, r6
- mov r1, #0x22
- add r7, r3, #0
- mov r3, #0
- lsl r1, r1, #8
-_02243318:
- ldrb r2, [r5, r1]
- cmp r2, #0
- bne _0224332C
- add r0, r4, r0
- add r0, r0, r6
- add r1, r0, r3
- mov r0, #0x22
- lsl r0, r0, #8
- strb r7, [r1, r0]
- b _02243334
-_0224332C:
- add r3, r3, #1
- add r5, r5, #1
- cmp r3, #0x10
- blt _02243318
-_02243334:
- cmp r3, #0x10
- blt _0224333C
- bl ErrorHandling
-_0224333C:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02243340
-MOD11_02243340: ; 0x02243340
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r5, r1, #0
- str r2, [sp]
- add r4, r3, #0
- bne _02243350
- bl ErrorHandling
-_02243350:
- ldr r0, [sp]
- lsl r6, r5, #6
- lsl r5, r0, #4
- add r0, r7, r6
- add r3, r0, r5
- mov r0, #0x22
- mov r2, #0
- lsl r0, r0, #8
-_02243360:
- ldrb r1, [r3, r0]
- cmp r4, r1
- bne _02243376
- add r1, r7, r6
- add r1, r1, r5
- add r3, r1, r2
- mov r1, #0x22
- mov r0, #0
- lsl r1, r1, #8
- strb r0, [r3, r1]
- b _0224337E
-_02243376:
- add r2, r2, #1
- add r3, r3, #1
- cmp r2, #0x10
- blt _02243360
-_0224337E:
- cmp r2, #0x10
- blt _02243386
- bl ErrorHandling
-_02243386:
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02243388
-MOD11_02243388: ; 0x02243388
- push {r3, r4, r5, r6, r7, lr}
- mov r2, #0
- mov r4, #0x22
- mov lr, r0
- mov ip, r2
- add r7, r0, #0
- add r6, r2, #0
- lsl r4, r4, #8
-_02243398:
- mov r0, #0
- add r3, r7, #0
-_0224339C:
- add r1, r6, #0
-_0224339E:
- add r5, r3, r1
- ldrb r5, [r5, r4]
- add r1, r1, #1
- add r2, r2, r5
- cmp r1, #0x10
- blt _0224339E
- add r0, r0, #1
- add r3, #0x10
- cmp r0, #4
- blt _0224339C
- mov r0, ip
- add r0, r0, #1
- add r7, #0x40
- mov ip, r0
- cmp r0, #4
- blt _02243398
- cmp r2, #0
- bne _022433CA
- ldr r1, _022433D8 ; =0x00003148
- mov r3, #0
- mov r0, lr
- str r3, [r0, r1]
-_022433CA:
- cmp r2, #0
- bne _022433D2
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_022433D2:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022433D8: .word 0x00003148
-
- thumb_func_start MOD11_022433DC
-MOD11_022433DC: ; 0x022433DC
- push {r3, lr}
- ldr r1, _022433F8 ; =0x00003148
- ldr r2, [r0, r1]
- add r2, r2, #1
- str r2, [r0, r1]
- ldr r1, [r0, r1]
- ldr r0, _022433FC ; =0x00000708
- cmp r1, r0
- ble _022433F4
- mov r0, #1
- bl FUN_020336A0
-_022433F4:
- pop {r3, pc}
- nop
-_022433F8: .word 0x00003148
-_022433FC: .word 0x00000708
-
- thumb_func_start MOD11_02243400
-MOD11_02243400: ; 0x02243400
- push {r3, r4}
- lsl r1, r1, #8
- add r4, r0, r1
- mov r3, #0
- mov r0, #0x23
- mov r1, #1
- add r2, r3, #0
- lsl r0, r0, #8
- lsl r1, r1, #8
-_02243412:
- add r3, r3, #1
- strb r2, [r4, r0]
- add r4, r4, #1
- cmp r3, r1
- blt _02243412
- pop {r3, r4}
- bx lr
-
- thumb_func_start MOD11_02243420
-MOD11_02243420: ; 0x02243420
- push {r4, r5, r6, lr}
- mov r4, #0xb5
- lsl r4, r4, #6
- add r5, r0, r4
- mov r6, #0xc0
- add r4, r1, #0
- mul r4, r6
- add r4, r5, r4
- cmp r2, #0x64
- bls _02243436
- b _02243794
-_02243436:
- add r5, r2, r2
- add r5, pc
- ldrh r5, [r5, #6]
- lsl r5, r5, #0x10
- asr r5, r5, #0x10
- add pc, r5
-_02243442: ; jump table
- .short _0224350C - _02243442 - 2 ; case 0
- .short _02243510 - _02243442 - 2 ; case 1
- .short _02243514 - _02243442 - 2 ; case 2
- .short _02243518 - _02243442 - 2 ; case 3
- .short _0224351C - _02243442 - 2 ; case 4
- .short _02243520 - _02243442 - 2 ; case 5
- .short _02243524 - _02243442 - 2 ; case 6
- .short _02243524 - _02243442 - 2 ; case 7
- .short _02243524 - _02243442 - 2 ; case 8
- .short _02243524 - _02243442 - 2 ; case 9
- .short _0224352E - _02243442 - 2 ; case 10
- .short _02243536 - _02243442 - 2 ; case 11
- .short _0224353E - _02243442 - 2 ; case 12
- .short _02243546 - _02243442 - 2 ; case 13
- .short _0224354E - _02243442 - 2 ; case 14
- .short _02243556 - _02243442 - 2 ; case 15
- .short _0224355E - _02243442 - 2 ; case 16
- .short _02243566 - _02243442 - 2 ; case 17
- .short _0224356C - _02243442 - 2 ; case 18
- .short _0224356C - _02243442 - 2 ; case 19
- .short _0224356C - _02243442 - 2 ; case 20
- .short _0224356C - _02243442 - 2 ; case 21
- .short _0224356C - _02243442 - 2 ; case 22
- .short _0224356C - _02243442 - 2 ; case 23
- .short _0224356C - _02243442 - 2 ; case 24
- .short _0224356C - _02243442 - 2 ; case 25
- .short _02243576 - _02243442 - 2 ; case 26
- .short _0224357C - _02243442 - 2 ; case 27
- .short _0224357C - _02243442 - 2 ; case 28
- .short _02243582 - _02243442 - 2 ; case 29
- .short _0224358C - _02243442 - 2 ; case 30
- .short _02243596 - _02243442 - 2 ; case 31
- .short _02243596 - _02243442 - 2 ; case 32
- .short _02243596 - _02243442 - 2 ; case 33
- .short _02243596 - _02243442 - 2 ; case 34
- .short _022435A0 - _02243442 - 2 ; case 35
- .short _022435A0 - _02243442 - 2 ; case 36
- .short _022435A0 - _02243442 - 2 ; case 37
- .short _022435A0 - _02243442 - 2 ; case 38
- .short _022435AA - _02243442 - 2 ; case 39
- .short _022435AA - _02243442 - 2 ; case 40
- .short _022435AA - _02243442 - 2 ; case 41
- .short _022435AA - _02243442 - 2 ; case 42
- .short _022435BE - _02243442 - 2 ; case 43
- .short _022435C4 - _02243442 - 2 ; case 44
- .short _022435CA - _02243442 - 2 ; case 45
- .short _022435DC - _02243442 - 2 ; case 46
- .short _022435E8 - _02243442 - 2 ; case 47
- .short _022435EC - _02243442 - 2 ; case 48
- .short _022435F0 - _02243442 - 2 ; case 49
- .short _02243606 - _02243442 - 2 ; case 50
- .short _0224360A - _02243442 - 2 ; case 51
- .short _0224360E - _02243442 - 2 ; case 52
- .short _02243612 - _02243442 - 2 ; case 53
- .short _02243616 - _02243442 - 2 ; case 54
- .short _0224361A - _02243442 - 2 ; case 55
- .short _02243620 - _02243442 - 2 ; case 56
- .short _02243626 - _02243442 - 2 ; case 57
- .short _0224362C - _02243442 - 2 ; case 58
- .short _02243636 - _02243442 - 2 ; case 59
- .short _0224363C - _02243442 - 2 ; case 60
- .short _02243642 - _02243442 - 2 ; case 61
- .short _0224364C - _02243442 - 2 ; case 62
- .short _02243656 - _02243442 - 2 ; case 63
- .short _02243660 - _02243442 - 2 ; case 64
- .short _0224366A - _02243442 - 2 ; case 65
- .short _02243674 - _02243442 - 2 ; case 66
- .short _0224367E - _02243442 - 2 ; case 67
- .short _02243688 - _02243442 - 2 ; case 68
- .short _02243692 - _02243442 - 2 ; case 69
- .short _0224369C - _02243442 - 2 ; case 70
- .short _022436A6 - _02243442 - 2 ; case 71
- .short _022436B0 - _02243442 - 2 ; case 72
- .short _022436BA - _02243442 - 2 ; case 73
- .short _022436C2 - _02243442 - 2 ; case 74
- .short _022436CC - _02243442 - 2 ; case 75
- .short _022436D6 - _02243442 - 2 ; case 76
- .short _022436E0 - _02243442 - 2 ; case 77
- .short _022436EA - _02243442 - 2 ; case 78
- .short _022436F4 - _02243442 - 2 ; case 79
- .short _022436FE - _02243442 - 2 ; case 80
- .short _02243708 - _02243442 - 2 ; case 81
- .short _02243712 - _02243442 - 2 ; case 82
- .short _0224371C - _02243442 - 2 ; case 83
- .short _02243726 - _02243442 - 2 ; case 84
- .short _02243730 - _02243442 - 2 ; case 85
- .short _0224373A - _02243442 - 2 ; case 86
- .short _02243744 - _02243442 - 2 ; case 87
- .short _0224374A - _02243442 - 2 ; case 88
- .short _02243750 - _02243442 - 2 ; case 89
- .short _02243756 - _02243442 - 2 ; case 90
- .short _0224375C - _02243442 - 2 ; case 91
- .short _02243762 - _02243442 - 2 ; case 92
- .short _02243768 - _02243442 - 2 ; case 93
- .short _0224376E - _02243442 - 2 ; case 94
- .short _02243774 - _02243442 - 2 ; case 95
- .short _0224377A - _02243442 - 2 ; case 96
- .short _02243782 - _02243442 - 2 ; case 97
- .short _02243794 - _02243442 - 2 ; case 98
- .short _02243794 - _02243442 - 2 ; case 99
- .short _0224378A - _02243442 - 2 ; case 100
-_0224350C:
- ldrh r0, [r4]
- pop {r4, r5, r6, pc}
-_02243510:
- ldrh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_02243514:
- ldrh r0, [r4, #4]
- pop {r4, r5, r6, pc}
-_02243518:
- ldrh r0, [r4, #6]
- pop {r4, r5, r6, pc}
-_0224351C:
- ldrh r0, [r4, #8]
- pop {r4, r5, r6, pc}
-_02243520:
- ldrh r0, [r4, #0xa]
- pop {r4, r5, r6, pc}
-_02243524:
- sub r0, r2, #6
- lsl r0, r0, #1
- add r0, r4, r0
- ldrh r0, [r0, #0xc]
- pop {r4, r5, r6, pc}
-_0224352E:
- ldr r0, [r4, #0x14]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x1b
- pop {r4, r5, r6, pc}
-_02243536:
- ldr r0, [r4, #0x14]
- lsl r0, r0, #0x16
- lsr r0, r0, #0x1b
- pop {r4, r5, r6, pc}
-_0224353E:
- ldr r0, [r4, #0x14]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x1b
- pop {r4, r5, r6, pc}
-_02243546:
- ldr r0, [r4, #0x14]
- lsl r0, r0, #0xc
- lsr r0, r0, #0x1b
- pop {r4, r5, r6, pc}
-_0224354E:
- ldr r0, [r4, #0x14]
- lsl r0, r0, #7
- lsr r0, r0, #0x1b
- pop {r4, r5, r6, pc}
-_02243556:
- ldr r0, [r4, #0x14]
- lsl r0, r0, #2
- lsr r0, r0, #0x1b
- pop {r4, r5, r6, pc}
-_0224355E:
- ldr r0, [r4, #0x14]
- lsl r0, r0, #1
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_02243566:
- ldr r0, [r4, #0x14]
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_0224356C:
- sub r2, #0x12
- add r1, r4, r2
- mov r0, #0x18
- ldrsb r0, [r1, r0]
- pop {r4, r5, r6, pc}
-_02243576:
- add r4, #0x27
- ldrb r0, [r4]
- pop {r4, r5, r6, pc}
-_0224357C:
- bl MOD11_0224C740
- pop {r4, r5, r6, pc}
-_02243582:
- add r4, #0x7e
- ldrb r0, [r4]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- pop {r4, r5, r6, pc}
-_0224358C:
- add r4, #0x26
- ldrb r0, [r4]
- lsl r0, r0, #0x1a
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_02243596:
- sub r2, #0x1f
- add r0, r4, r2
- add r0, #0x2c
- ldrb r0, [r0]
- pop {r4, r5, r6, pc}
-_022435A0:
- sub r2, #0x23
- add r0, r4, r2
- add r0, #0x30
- ldrb r0, [r0]
- pop {r4, r5, r6, pc}
-_022435AA:
- sub r2, #0x27
- lsl r0, r2, #1
- add r1, r4, r2
- add r0, r4, r0
- add r1, #0x30
- ldrh r0, [r0, #0xc]
- ldrb r1, [r1]
- bl WazaGetMaxPp
- pop {r4, r5, r6, pc}
-_022435BE:
- add r4, #0x34
- ldrb r0, [r4]
- pop {r4, r5, r6, pc}
-_022435C4:
- add r4, #0x35
- ldrb r0, [r4]
- pop {r4, r5, r6, pc}
-_022435CA:
- mov r1, #0
-_022435CC:
- ldrh r0, [r4, #0x36]
- add r1, r1, #1
- add r4, r4, #2
- strh r0, [r3]
- add r3, r3, #2
- cmp r1, #0xb
- blt _022435CC
- b _02243798
-_022435DC:
- add r4, #0x36
- add r0, r3, #0
- add r1, r4, #0
- bl FUN_02021E28
- b _02243798
-_022435E8:
- ldr r0, [r4, #0x4c]
- pop {r4, r5, r6, pc}
-_022435EC:
- ldr r0, [r4, #0x50]
- pop {r4, r5, r6, pc}
-_022435F0:
- mov r1, #0
-_022435F2:
- add r0, r4, #0
- add r0, #0x54
- ldrh r0, [r0]
- add r1, r1, #1
- add r4, r4, #2
- strh r0, [r3]
- add r3, r3, #2
- cmp r1, #0xb
- blt _022435F2
- b _02243798
-_02243606:
- ldr r0, [r4, #0x64]
- pop {r4, r5, r6, pc}
-_0224360A:
- ldr r0, [r4, #0x68]
- pop {r4, r5, r6, pc}
-_0224360E:
- ldr r0, [r4, #0x6c]
- pop {r4, r5, r6, pc}
-_02243612:
- ldr r0, [r4, #0x70]
- pop {r4, r5, r6, pc}
-_02243616:
- ldr r0, [r4, #0x74]
- pop {r4, r5, r6, pc}
-_0224361A:
- add r4, #0x78
- ldrh r0, [r4]
- pop {r4, r5, r6, pc}
-_02243620:
- add r4, #0x7c
- ldrb r0, [r4]
- pop {r4, r5, r6, pc}
-_02243626:
- add r4, #0x7d
- ldrb r0, [r4]
- pop {r4, r5, r6, pc}
-_0224362C:
- add r4, #0x7e
- ldrb r0, [r4]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1c
- pop {r4, r5, r6, pc}
-_02243636:
- add r4, #0x80
- ldr r0, [r4]
- pop {r4, r5, r6, pc}
-_0224363C:
- add r4, #0x84
- ldr r0, [r4]
- pop {r4, r5, r6, pc}
-_02243642:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_0224364C:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #0x1a
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_02243656:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1e
- pop {r4, r5, r6, pc}
-_02243660:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #0x15
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_0224366A:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #0x13
- lsr r0, r0, #0x1e
- pop {r4, r5, r6, pc}
-_02243674:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x1e
- pop {r4, r5, r6, pc}
-_0224367E:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #0xe
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_02243688:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #0xb
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_02243692:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #8
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_0224369C:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #5
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_022436A6:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #2
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_022436B0:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #1
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_022436BA:
- add r4, #0x88
- ldr r0, [r4]
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_022436C2:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1e
- pop {r4, r5, r6, pc}
-_022436CC:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #0x1a
- lsr r0, r0, #0x1c
- pop {r4, r5, r6, pc}
-_022436D6:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1e
- pop {r4, r5, r6, pc}
-_022436E0:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #0x16
- lsr r0, r0, #0x1e
- pop {r4, r5, r6, pc}
-_022436EA:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #0x13
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_022436F4:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_022436FE:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #0xd
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_02243708:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #0xa
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_02243712:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #9
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_0224371C:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #5
- lsr r0, r0, #0x1c
- pop {r4, r5, r6, pc}
-_02243726:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #4
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_02243730:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #3
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_0224373A:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #2
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_02243744:
- add r4, #0x90
- ldr r0, [r4]
- pop {r4, r5, r6, pc}
-_0224374A:
- add r4, #0x94
- ldr r0, [r4]
- pop {r4, r5, r6, pc}
-_02243750:
- add r4, #0x98
- ldr r0, [r4]
- pop {r4, r5, r6, pc}
-_02243756:
- add r4, #0xa0
- ldr r0, [r4]
- pop {r4, r5, r6, pc}
-_0224375C:
- add r4, #0xa4
- ldr r0, [r4]
- pop {r4, r5, r6, pc}
-_02243762:
- add r4, #0xa8
- ldrh r0, [r4]
- pop {r4, r5, r6, pc}
-_02243768:
- add r4, #0xac
- ldrh r0, [r4]
- pop {r4, r5, r6, pc}
-_0224376E:
- add r4, #0xaa
- ldrh r0, [r4]
- pop {r4, r5, r6, pc}
-_02243774:
- add r4, #0xbc
- ldr r0, [r4]
- pop {r4, r5, r6, pc}
-_0224377A:
- ldr r0, [r4, #0x28]
- lsl r0, r0, #0x19
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_02243782:
- ldr r0, [r4, #0x28]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_0224378A:
- add r6, #0x78
- ldr r2, [r0, r6]
- bl MOD11_02243420
- pop {r4, r5, r6, pc}
-_02243794:
- bl ErrorHandling
-_02243798:
- mov r0, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0224379C
-MOD11_0224379C: ; 0x0224379C
- push {r4, r5, r6, lr}
- add r5, r2, #0
- mov r2, #0xb5
- lsl r2, r2, #6
- add r4, r0, r2
- mov r6, #0xc0
- add r2, r1, #0
- mul r2, r6
- add r2, r4, r2
- cmp r5, #0x64
- bls _022437B4
- b _02243D9E
-_022437B4:
- add r4, r5, r5
- add r4, pc
- ldrh r4, [r4, #6]
- lsl r4, r4, #0x10
- asr r4, r4, #0x10
- add pc, r4
-_022437C0: ; jump table
- .short _0224388A - _022437C0 - 2 ; case 0
- .short _02243890 - _022437C0 - 2 ; case 1
- .short _02243896 - _022437C0 - 2 ; case 2
- .short _0224389C - _022437C0 - 2 ; case 3
- .short _022438A2 - _022437C0 - 2 ; case 4
- .short _022438A8 - _022437C0 - 2 ; case 5
- .short _022438AE - _022437C0 - 2 ; case 6
- .short _022438AE - _022437C0 - 2 ; case 7
- .short _022438AE - _022437C0 - 2 ; case 8
- .short _022438AE - _022437C0 - 2 ; case 9
- .short _022438BA - _022437C0 - 2 ; case 10
- .short _022438CC - _022437C0 - 2 ; case 11
- .short _022438DE - _022437C0 - 2 ; case 12
- .short _022438F0 - _022437C0 - 2 ; case 13
- .short _02243902 - _022437C0 - 2 ; case 14
- .short _02243914 - _022437C0 - 2 ; case 15
- .short _02243926 - _022437C0 - 2 ; case 16
- .short _02243938 - _022437C0 - 2 ; case 17
- .short _02243948 - _022437C0 - 2 ; case 18
- .short _02243948 - _022437C0 - 2 ; case 19
- .short _02243948 - _022437C0 - 2 ; case 20
- .short _02243948 - _022437C0 - 2 ; case 21
- .short _02243948 - _022437C0 - 2 ; case 22
- .short _02243948 - _022437C0 - 2 ; case 23
- .short _02243948 - _022437C0 - 2 ; case 24
- .short _02243948 - _022437C0 - 2 ; case 25
- .short _02243954 - _022437C0 - 2 ; case 26
- .short _0224395C - _022437C0 - 2 ; case 27
- .short _02243964 - _022437C0 - 2 ; case 28
- .short _0224396C - _022437C0 - 2 ; case 29
- .short _02243984 - _022437C0 - 2 ; case 30
- .short _0224399C - _022437C0 - 2 ; case 31
- .short _0224399C - _022437C0 - 2 ; case 32
- .short _0224399C - _022437C0 - 2 ; case 33
- .short _0224399C - _022437C0 - 2 ; case 34
- .short _022439A8 - _022437C0 - 2 ; case 35
- .short _022439A8 - _022437C0 - 2 ; case 36
- .short _022439A8 - _022437C0 - 2 ; case 37
- .short _022439A8 - _022437C0 - 2 ; case 38
- .short _022439B4 - _022437C0 - 2 ; case 39
- .short _022439B4 - _022437C0 - 2 ; case 40
- .short _022439B4 - _022437C0 - 2 ; case 41
- .short _022439B4 - _022437C0 - 2 ; case 42
- .short _022439BA - _022437C0 - 2 ; case 43
- .short _022439C2 - _022437C0 - 2 ; case 44
- .short _022439CA - _022437C0 - 2 ; case 45
- .short _02243D9E - _022437C0 - 2 ; case 46
- .short _022439DC - _022437C0 - 2 ; case 47
- .short _022439E4 - _022437C0 - 2 ; case 48
- .short _022439EA - _022437C0 - 2 ; case 49
- .short _02243A00 - _022437C0 - 2 ; case 50
- .short _02243A06 - _022437C0 - 2 ; case 51
- .short _02243A0C - _022437C0 - 2 ; case 52
- .short _02243A12 - _022437C0 - 2 ; case 53
- .short _02243A18 - _022437C0 - 2 ; case 54
- .short _02243A1E - _022437C0 - 2 ; case 55
- .short _02243A26 - _022437C0 - 2 ; case 56
- .short _02243A2E - _022437C0 - 2 ; case 57
- .short _02243A36 - _022437C0 - 2 ; case 58
- .short _02243A4E - _022437C0 - 2 ; case 59
- .short _02243A56 - _022437C0 - 2 ; case 60
- .short _02243A5E - _022437C0 - 2 ; case 61
- .short _02243A76 - _022437C0 - 2 ; case 62
- .short _02243A8E - _022437C0 - 2 ; case 63
- .short _02243AA6 - _022437C0 - 2 ; case 64
- .short _02243ABE - _022437C0 - 2 ; case 65
- .short _02243AD6 - _022437C0 - 2 ; case 66
- .short _02243AEE - _022437C0 - 2 ; case 67
- .short _02243B06 - _022437C0 - 2 ; case 68
- .short _02243B1E - _022437C0 - 2 ; case 69
- .short _02243B36 - _022437C0 - 2 ; case 70
- .short _02243B4E - _022437C0 - 2 ; case 71
- .short _02243B66 - _022437C0 - 2 ; case 72
- .short _02243B7E - _022437C0 - 2 ; case 73
- .short _02243B94 - _022437C0 - 2 ; case 74
- .short _02243BAC - _022437C0 - 2 ; case 75
- .short _02243BC4 - _022437C0 - 2 ; case 76
- .short _02243BDC - _022437C0 - 2 ; case 77
- .short _02243BF4 - _022437C0 - 2 ; case 78
- .short _02243C0C - _022437C0 - 2 ; case 79
- .short _02243C24 - _022437C0 - 2 ; case 80
- .short _02243C3C - _022437C0 - 2 ; case 81
- .short _02243C54 - _022437C0 - 2 ; case 82
- .short _02243C6C - _022437C0 - 2 ; case 83
- .short _02243CE0 - _022437C0 - 2 ; case 84
- .short _02243CF8 - _022437C0 - 2 ; case 85
- .short _02243D10 - _022437C0 - 2 ; case 86
- .short _02243D28 - _022437C0 - 2 ; case 87
- .short _02243D30 - _022437C0 - 2 ; case 88
- .short _02243D38 - _022437C0 - 2 ; case 89
- .short _02243D40 - _022437C0 - 2 ; case 90
- .short _02243D48 - _022437C0 - 2 ; case 91
- .short _02243D50 - _022437C0 - 2 ; case 92
- .short _02243D58 - _022437C0 - 2 ; case 93
- .short _02243D60 - _022437C0 - 2 ; case 94
- .short _02243D68 - _022437C0 - 2 ; case 95
- .short _02243D70 - _022437C0 - 2 ; case 96
- .short _02243D82 - _022437C0 - 2 ; case 97
- .short _02243D9E - _022437C0 - 2 ; case 98
- .short _02243D9E - _022437C0 - 2 ; case 99
- .short _02243D94 - _022437C0 - 2 ; case 100
-_0224388A:
- ldrh r0, [r3]
- strh r0, [r2]
- pop {r4, r5, r6, pc}
-_02243890:
- ldrh r0, [r3]
- strh r0, [r2, #2]
- pop {r4, r5, r6, pc}
-_02243896:
- ldrh r0, [r3]
- strh r0, [r2, #4]
- pop {r4, r5, r6, pc}
-_0224389C:
- ldrh r0, [r3]
- strh r0, [r2, #6]
- pop {r4, r5, r6, pc}
-_022438A2:
- ldrh r0, [r3]
- strh r0, [r2, #8]
- pop {r4, r5, r6, pc}
-_022438A8:
- ldrh r0, [r3]
- strh r0, [r2, #0xa]
- pop {r4, r5, r6, pc}
-_022438AE:
- sub r0, r5, #6
- lsl r0, r0, #1
- ldrh r1, [r3]
- add r0, r2, r0
- strh r1, [r0, #0xc]
- pop {r4, r5, r6, pc}
-_022438BA:
- ldr r4, [r2, #0x14]
- mov r0, #0x1f
- bic r4, r0
- ldrb r1, [r3]
- mov r0, #0x1f
- and r0, r1
- orr r0, r4
- str r0, [r2, #0x14]
- pop {r4, r5, r6, pc}
-_022438CC:
- ldr r1, [r2, #0x14]
- ldr r0, _02243C78 ; =0xFFFFFC1F
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x16
- orr r0, r1
- str r0, [r2, #0x14]
- pop {r4, r5, r6, pc}
-_022438DE:
- ldr r1, [r2, #0x14]
- ldr r0, _02243C7C ; =0xFFFF83FF
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x11
- orr r0, r1
- str r0, [r2, #0x14]
- pop {r4, r5, r6, pc}
-_022438F0:
- ldr r1, [r2, #0x14]
- ldr r0, _02243C80 ; =0xFFF07FFF
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0xc
- orr r0, r1
- str r0, [r2, #0x14]
- pop {r4, r5, r6, pc}
-_02243902:
- ldr r1, [r2, #0x14]
- ldr r0, _02243C84 ; =0xFE0FFFFF
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1b
- lsr r0, r0, #7
- orr r0, r1
- str r0, [r2, #0x14]
- pop {r4, r5, r6, pc}
-_02243914:
- ldr r1, [r2, #0x14]
- ldr r0, _02243C88 ; =0xC1FFFFFF
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1b
- lsr r0, r0, #2
- orr r0, r1
- str r0, [r2, #0x14]
- pop {r4, r5, r6, pc}
-_02243926:
- ldr r1, [r2, #0x14]
- ldr r0, _02243C8C ; =0xBFFFFFFF
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- lsr r0, r0, #1
- orr r0, r1
- str r0, [r2, #0x14]
- pop {r4, r5, r6, pc}
-_02243938:
- ldr r1, [r2, #0x14]
- ldr r0, _02243C90 ; =0x7FFFFFFF
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- orr r0, r1
- str r0, [r2, #0x14]
- pop {r4, r5, r6, pc}
-_02243948:
- mov r0, #0
- ldrsb r1, [r3, r0]
- sub r5, #0x12
- add r0, r2, r5
- strb r1, [r0, #0x18]
- pop {r4, r5, r6, pc}
-_02243954:
- ldrb r0, [r3]
- add r2, #0x27
- strb r0, [r2]
- pop {r4, r5, r6, pc}
-_0224395C:
- ldrb r0, [r3]
- add r2, #0x24
- strb r0, [r2]
- pop {r4, r5, r6, pc}
-_02243964:
- ldrb r0, [r3]
- add r2, #0x25
- strb r0, [r2]
- pop {r4, r5, r6, pc}
-_0224396C:
- add r0, r2, #0
- add r0, #0x7e
- ldrb r4, [r0]
- ldrb r1, [r3]
- mov r0, #0xf
- bic r4, r0
- mov r0, #0xf
- and r0, r1
- orr r0, r4
- add r2, #0x7e
- strb r0, [r2]
- pop {r4, r5, r6, pc}
-_02243984:
- add r0, r2, #0
- add r0, #0x26
- ldrb r1, [r0]
- mov r0, #0x20
- add r2, #0x26
- bic r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1a
- orr r0, r1
- strb r0, [r2]
- pop {r4, r5, r6, pc}
-_0224399C:
- sub r5, #0x1f
- add r0, r2, r5
- ldrb r1, [r3]
- add r0, #0x2c
- strb r1, [r0]
- pop {r4, r5, r6, pc}
-_022439A8:
- sub r5, #0x23
- add r0, r2, r5
- ldrb r1, [r3]
- add r0, #0x30
- strb r1, [r0]
- pop {r4, r5, r6, pc}
-_022439B4:
- bl ErrorHandling
- pop {r4, r5, r6, pc}
-_022439BA:
- ldrb r0, [r3]
- add r2, #0x34
- strb r0, [r2]
- pop {r4, r5, r6, pc}
-_022439C2:
- ldrb r0, [r3]
- add r2, #0x35
- strb r0, [r2]
- pop {r4, r5, r6, pc}
-_022439CA:
- mov r1, #0
-_022439CC:
- ldrh r0, [r3]
- add r1, r1, #1
- add r3, r3, #2
- strh r0, [r2, #0x36]
- add r2, r2, #2
- cmp r1, #0xb
- blt _022439CC
- pop {r4, r5, r6, pc}
-_022439DC:
- mov r0, #0
- ldrsh r0, [r3, r0]
- str r0, [r2, #0x4c]
- pop {r4, r5, r6, pc}
-_022439E4:
- ldrh r0, [r3]
- str r0, [r2, #0x50]
- pop {r4, r5, r6, pc}
-_022439EA:
- mov r4, #0
-_022439EC:
- ldrh r1, [r3]
- add r0, r2, #0
- add r0, #0x54
- add r4, r4, #1
- strh r1, [r0]
- add r3, r3, #2
- add r2, r2, #2
- cmp r4, #0xb
- blt _022439EC
- pop {r4, r5, r6, pc}
-_02243A00:
- ldr r0, [r3]
- str r0, [r2, #0x64]
- pop {r4, r5, r6, pc}
-_02243A06:
- ldr r0, [r3]
- str r0, [r2, #0x68]
- pop {r4, r5, r6, pc}
-_02243A0C:
- ldr r0, [r3]
- str r0, [r2, #0x6c]
- pop {r4, r5, r6, pc}
-_02243A12:
- ldr r0, [r3]
- str r0, [r2, #0x70]
- pop {r4, r5, r6, pc}
-_02243A18:
- ldr r0, [r3]
- str r0, [r2, #0x74]
- pop {r4, r5, r6, pc}
-_02243A1E:
- ldrh r0, [r3]
- add r2, #0x78
- strh r0, [r2]
- pop {r4, r5, r6, pc}
-_02243A26:
- ldrb r0, [r3]
- add r2, #0x7c
- strb r0, [r2]
- pop {r4, r5, r6, pc}
-_02243A2E:
- ldrb r0, [r3]
- add r2, #0x7d
- strb r0, [r2]
- pop {r4, r5, r6, pc}
-_02243A36:
- add r0, r2, #0
- add r0, #0x7e
- ldrb r1, [r0]
- mov r0, #0xf0
- add r2, #0x7e
- bic r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x18
- orr r0, r1
- strb r0, [r2]
- pop {r4, r5, r6, pc}
-_02243A4E:
- ldr r0, [r3]
- add r2, #0x80
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243A56:
- ldr r0, [r3]
- add r2, #0x84
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243A5E:
- add r0, r2, #0
- add r0, #0x88
- ldr r4, [r0]
- mov r0, #7
- bic r4, r0
- ldrb r1, [r3]
- mov r0, #7
- add r2, #0x88
- and r0, r1
- orr r0, r4
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243A76:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- mov r0, #0x38
- bic r1, r0
- ldrb r0, [r3]
- add r2, #0x88
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1a
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243A8E:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- mov r0, #0xc0
- bic r1, r0
- ldrb r0, [r3]
- add r2, #0x88
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x18
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243AA6:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02243C94 ; =0xFFFFF8FF
- add r2, #0x88
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x15
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243ABE:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02243C98 ; =0xFFFFE7FF
- add r2, #0x88
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x13
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243AD6:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02243C9C ; =0xFFFF9FFF
- add r2, #0x88
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x11
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243AEE:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02243CA0 ; =0xFFFC7FFF
- add r2, #0x88
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0xe
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243B06:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02243CA4 ; =0xFFE3FFFF
- add r2, #0x88
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0xb
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243B1E:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02243CA8 ; =0xFF1FFFFF
- add r2, #0x88
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1d
- lsr r0, r0, #8
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243B36:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02243CAC ; =0xF8FFFFFF
- add r2, #0x88
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1d
- lsr r0, r0, #5
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243B4E:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02243CB0 ; =0xC7FFFFFF
- add r2, #0x88
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1d
- lsr r0, r0, #2
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243B66:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02243C8C ; =0xBFFFFFFF
- add r2, #0x88
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- lsr r0, r0, #1
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243B7E:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02243C90 ; =0x7FFFFFFF
- add r2, #0x88
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243B94:
- add r0, r2, #0
- add r0, #0x8c
- ldr r4, [r0]
- mov r0, #3
- bic r4, r0
- ldrb r1, [r3]
- mov r0, #3
- add r2, #0x8c
- and r0, r1
- orr r0, r4
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243BAC:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- mov r0, #0x3c
- bic r1, r0
- ldrb r0, [r3]
- add r2, #0x8c
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1a
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243BC4:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- mov r0, #0xc0
- bic r1, r0
- ldrb r0, [r3]
- add r2, #0x8c
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x18
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243BDC:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02243CB4 ; =0xFFFFFCFF
- add r2, #0x8c
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x16
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243BF4:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02243CB8 ; =0xFFFFE3FF
- add r2, #0x8c
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x13
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243C0C:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02243CBC ; =0xFFFF1FFF
- add r2, #0x8c
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x10
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243C24:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02243CC0 ; =0xFFF8FFFF
- add r2, #0x8c
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0xd
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243C3C:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02243CC4 ; =0xFFC7FFFF
- add r2, #0x8c
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0xa
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243C54:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02243CC8 ; =0xFFBFFFFF
- add r2, #0x8c
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- lsr r0, r0, #9
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243C6C:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02243CCC ; =0xF87FFFFF
- b _02243CD0
- nop
-_02243C78: .word 0xFFFFFC1F
-_02243C7C: .word 0xFFFF83FF
-_02243C80: .word 0xFFF07FFF
-_02243C84: .word 0xFE0FFFFF
-_02243C88: .word 0xC1FFFFFF
-_02243C8C: .word 0xBFFFFFFF
-_02243C90: .word 0x7FFFFFFF
-_02243C94: .word 0xFFFFF8FF
-_02243C98: .word 0xFFFFE7FF
-_02243C9C: .word 0xFFFF9FFF
-_02243CA0: .word 0xFFFC7FFF
-_02243CA4: .word 0xFFE3FFFF
-_02243CA8: .word 0xFF1FFFFF
-_02243CAC: .word 0xF8FFFFFF
-_02243CB0: .word 0xC7FFFFFF
-_02243CB4: .word 0xFFFFFCFF
-_02243CB8: .word 0xFFFFE3FF
-_02243CBC: .word 0xFFFF1FFF
-_02243CC0: .word 0xFFF8FFFF
-_02243CC4: .word 0xFFC7FFFF
-_02243CC8: .word 0xFFBFFFFF
-_02243CCC: .word 0xF87FFFFF
-_02243CD0:
- add r2, #0x8c
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1c
- lsr r0, r0, #5
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243CE0:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02243DA4 ; =0xF7FFFFFF
- add r2, #0x8c
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- lsr r0, r0, #4
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243CF8:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02243DA8 ; =0xEFFFFFFF
- add r2, #0x8c
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- lsr r0, r0, #3
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D10:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02243DAC ; =0xDFFFFFFF
- add r2, #0x8c
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- lsr r0, r0, #2
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D28:
- ldr r0, [r3]
- add r2, #0x90
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D30:
- ldr r0, [r3]
- add r2, #0x94
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D38:
- ldr r0, [r3]
- add r2, #0x98
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D40:
- ldr r0, [r3]
- add r2, #0xa0
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D48:
- ldr r0, [r3]
- add r2, #0xa4
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D50:
- ldrh r0, [r3]
- add r2, #0xa8
- strh r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D58:
- ldrh r0, [r3]
- add r2, #0xac
- strh r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D60:
- ldrh r0, [r3]
- add r2, #0xaa
- strh r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D68:
- ldr r0, [r3]
- add r2, #0xbc
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D70:
- ldr r1, [r2, #0x28]
- mov r0, #0x40
- bic r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x19
- orr r0, r1
- str r0, [r2, #0x28]
- pop {r4, r5, r6, pc}
-_02243D82:
- ldr r1, [r2, #0x28]
- mov r0, #0x80
- bic r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x18
- orr r0, r1
- str r0, [r2, #0x28]
- pop {r4, r5, r6, pc}
-_02243D94:
- add r6, #0x78
- ldr r2, [r0, r6]
- bl MOD11_0224379C
- pop {r4, r5, r6, pc}
-_02243D9E:
- bl ErrorHandling
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02243DA4: .word 0xF7FFFFFF
-_02243DA8: .word 0xEFFFFFFF
-_02243DAC: .word 0xDFFFFFFF
-
- thumb_func_start MOD11_02243DB0
-MOD11_02243DB0: ; 0x02243DB0
- push {r4, lr}
- mov r4, #0xb5
- lsl r4, r4, #6
- add r4, r0, r4
- mov r0, #0xc0
- mul r0, r1
- add r1, r2, #0
- add r0, r4, r0
- add r2, r3, #0
- bl MOD11_02243DC8
- pop {r4, pc}
-
- thumb_func_start MOD11_02243DC8
-MOD11_02243DC8: ; 0x02243DC8
- push {r4, r5, r6, lr}
- add r4, r0, #0
- add r5, r2, #0
- cmp r1, #0x61
- bls _02243DD4
- b _02244200
-_02243DD4:
- add r0, r1, r1
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02243DE0: ; jump table
- .short _02244200 - _02243DE0 - 2 ; case 0
- .short _02243EA4 - _02243DE0 - 2 ; case 1
- .short _02243EAC - _02243DE0 - 2 ; case 2
- .short _02243EB4 - _02243DE0 - 2 ; case 3
- .short _02243EBC - _02243DE0 - 2 ; case 4
- .short _02243EC4 - _02243DE0 - 2 ; case 5
- .short _02244200 - _02243DE0 - 2 ; case 6
- .short _02244200 - _02243DE0 - 2 ; case 7
- .short _02244200 - _02243DE0 - 2 ; case 8
- .short _02244200 - _02243DE0 - 2 ; case 9
- .short _02243ECC - _02243DE0 - 2 ; case 10
- .short _02243EE4 - _02243DE0 - 2 ; case 11
- .short _02243EFA - _02243DE0 - 2 ; case 12
- .short _02243F10 - _02243DE0 - 2 ; case 13
- .short _02243F26 - _02243DE0 - 2 ; case 14
- .short _02243F3C - _02243DE0 - 2 ; case 15
- .short _02244200 - _02243DE0 - 2 ; case 16
- .short _02244200 - _02243DE0 - 2 ; case 17
- .short _02243F52 - _02243DE0 - 2 ; case 18
- .short _02243F52 - _02243DE0 - 2 ; case 19
- .short _02243F52 - _02243DE0 - 2 ; case 20
- .short _02243F52 - _02243DE0 - 2 ; case 21
- .short _02243F52 - _02243DE0 - 2 ; case 22
- .short _02243F52 - _02243DE0 - 2 ; case 23
- .short _02243F52 - _02243DE0 - 2 ; case 24
- .short _02243F52 - _02243DE0 - 2 ; case 25
- .short _02244200 - _02243DE0 - 2 ; case 26
- .short _02244200 - _02243DE0 - 2 ; case 27
- .short _02244200 - _02243DE0 - 2 ; case 28
- .short _02244200 - _02243DE0 - 2 ; case 29
- .short _02244200 - _02243DE0 - 2 ; case 30
- .short _02243F70 - _02243DE0 - 2 ; case 31
- .short _02243F70 - _02243DE0 - 2 ; case 32
- .short _02243F70 - _02243DE0 - 2 ; case 33
- .short _02243F70 - _02243DE0 - 2 ; case 34
- .short _02243F96 - _02243DE0 - 2 ; case 35
- .short _02243F96 - _02243DE0 - 2 ; case 36
- .short _02243F96 - _02243DE0 - 2 ; case 37
- .short _02243F96 - _02243DE0 - 2 ; case 38
- .short _02244200 - _02243DE0 - 2 ; case 39
- .short _02244200 - _02243DE0 - 2 ; case 40
- .short _02244200 - _02243DE0 - 2 ; case 41
- .short _02244200 - _02243DE0 - 2 ; case 42
- .short _02243FA2 - _02243DE0 - 2 ; case 43
- .short _02243FB0 - _02243DE0 - 2 ; case 44
- .short _02244200 - _02243DE0 - 2 ; case 45
- .short _02244200 - _02243DE0 - 2 ; case 46
- .short _02243FD2 - _02243DE0 - 2 ; case 47
- .short _02243FE4 - _02243DE0 - 2 ; case 48
- .short _02244200 - _02243DE0 - 2 ; case 49
- .short _02243FEC - _02243DE0 - 2 ; case 50
- .short _02243FF4 - _02243DE0 - 2 ; case 51
- .short _02244200 - _02243DE0 - 2 ; case 52
- .short _02244200 - _02243DE0 - 2 ; case 53
- .short _02244200 - _02243DE0 - 2 ; case 54
- .short _02244200 - _02243DE0 - 2 ; case 55
- .short _02244200 - _02243DE0 - 2 ; case 56
- .short _02244200 - _02243DE0 - 2 ; case 57
- .short _02244200 - _02243DE0 - 2 ; case 58
- .short _02244200 - _02243DE0 - 2 ; case 59
- .short _02244200 - _02243DE0 - 2 ; case 60
- .short _02243FFC - _02243DE0 - 2 ; case 61
- .short _0224401A - _02243DE0 - 2 ; case 62
- .short _02244038 - _02243DE0 - 2 ; case 63
- .short _02244056 - _02243DE0 - 2 ; case 64
- .short _02244072 - _02243DE0 - 2 ; case 65
- .short _0224408E - _02243DE0 - 2 ; case 66
- .short _022440AA - _02243DE0 - 2 ; case 67
- .short _022440C6 - _02243DE0 - 2 ; case 68
- .short _022440E2 - _02243DE0 - 2 ; case 69
- .short _022440FE - _02243DE0 - 2 ; case 70
- .short _0224411A - _02243DE0 - 2 ; case 71
- .short _02244200 - _02243DE0 - 2 ; case 72
- .short _02244200 - _02243DE0 - 2 ; case 73
- .short _02244200 - _02243DE0 - 2 ; case 74
- .short _02244200 - _02243DE0 - 2 ; case 75
- .short _02244200 - _02243DE0 - 2 ; case 76
- .short _02244200 - _02243DE0 - 2 ; case 77
- .short _02244136 - _02243DE0 - 2 ; case 78
- .short _02244152 - _02243DE0 - 2 ; case 79
- .short _0224416E - _02243DE0 - 2 ; case 80
- .short _02244200 - _02243DE0 - 2 ; case 81
- .short _02244200 - _02243DE0 - 2 ; case 82
- .short _02244200 - _02243DE0 - 2 ; case 83
- .short _02244200 - _02243DE0 - 2 ; case 84
- .short _02244200 - _02243DE0 - 2 ; case 85
- .short _02244200 - _02243DE0 - 2 ; case 86
- .short _0224418A - _02243DE0 - 2 ; case 87
- .short _02244198 - _02243DE0 - 2 ; case 88
- .short _022441A6 - _02243DE0 - 2 ; case 89
- .short _022441B4 - _02243DE0 - 2 ; case 90
- .short _02244200 - _02243DE0 - 2 ; case 91
- .short _02244200 - _02243DE0 - 2 ; case 92
- .short _02244200 - _02243DE0 - 2 ; case 93
- .short _02244200 - _02243DE0 - 2 ; case 94
- .short _022441C2 - _02243DE0 - 2 ; case 95
- .short _022441D0 - _02243DE0 - 2 ; case 96
- .short _022441E8 - _02243DE0 - 2 ; case 97
-_02243EA4:
- ldrh r0, [r4, #2]
- add r0, r0, r5
- strh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_02243EAC:
- ldrh r0, [r4, #4]
- add r0, r0, r5
- strh r0, [r4, #4]
- pop {r4, r5, r6, pc}
-_02243EB4:
- ldrh r0, [r4, #6]
- add r0, r0, r5
- strh r0, [r4, #6]
- pop {r4, r5, r6, pc}
-_02243EBC:
- ldrh r0, [r4, #8]
- add r0, r0, r5
- strh r0, [r4, #8]
- pop {r4, r5, r6, pc}
-_02243EC4:
- ldrh r0, [r4, #0xa]
- add r0, r0, r5
- strh r0, [r4, #0xa]
- pop {r4, r5, r6, pc}
-_02243ECC:
- ldr r2, [r4, #0x14]
- mov r1, #0x1f
- add r0, r2, #0
- bic r0, r1
- lsl r1, r2, #0x1b
- lsr r1, r1, #0x1b
- add r2, r1, r5
- mov r1, #0x1f
- and r1, r2
- orr r0, r1
- str r0, [r4, #0x14]
- pop {r4, r5, r6, pc}
-_02243EE4:
- ldr r1, [r4, #0x14]
- ldr r0, _02244208 ; =0xFFFFFC1F
- and r0, r1
- lsl r1, r1, #0x16
- lsr r1, r1, #0x1b
- add r1, r1, r5
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x16
- orr r0, r1
- str r0, [r4, #0x14]
- pop {r4, r5, r6, pc}
-_02243EFA:
- ldr r1, [r4, #0x14]
- ldr r0, _0224420C ; =0xFFFF83FF
- and r0, r1
- lsl r1, r1, #0x11
- lsr r1, r1, #0x1b
- add r1, r1, r5
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x11
- orr r0, r1
- str r0, [r4, #0x14]
- pop {r4, r5, r6, pc}
-_02243F10:
- ldr r1, [r4, #0x14]
- ldr r0, _02244210 ; =0xFFF07FFF
- and r0, r1
- lsl r1, r1, #0xc
- lsr r1, r1, #0x1b
- add r1, r1, r5
- lsl r1, r1, #0x1b
- lsr r1, r1, #0xc
- orr r0, r1
- str r0, [r4, #0x14]
- pop {r4, r5, r6, pc}
-_02243F26:
- ldr r1, [r4, #0x14]
- ldr r0, _02244214 ; =0xFE0FFFFF
- and r0, r1
- lsl r1, r1, #7
- lsr r1, r1, #0x1b
- add r1, r1, r5
- lsl r1, r1, #0x1b
- lsr r1, r1, #7
- orr r0, r1
- str r0, [r4, #0x14]
- pop {r4, r5, r6, pc}
-_02243F3C:
- ldr r1, [r4, #0x14]
- ldr r0, _02244218 ; =0xC1FFFFFF
- and r0, r1
- lsl r1, r1, #2
- lsr r1, r1, #0x1b
- add r1, r1, r5
- lsl r1, r1, #0x1b
- lsr r1, r1, #2
- orr r0, r1
- str r0, [r4, #0x14]
- pop {r4, r5, r6, pc}
-_02243F52:
- add r4, #0x18
- sub r1, #0x12
- ldrsb r0, [r4, r1]
- add r0, r5, r0
- bpl _02243F62
- mov r0, #0
- strb r0, [r4, r1]
- pop {r4, r5, r6, pc}
-_02243F62:
- cmp r0, #0xc
- ble _02243F6C
- mov r0, #0xc
- strb r0, [r4, r1]
- pop {r4, r5, r6, pc}
-_02243F6C:
- strb r0, [r4, r1]
- pop {r4, r5, r6, pc}
-_02243F70:
- add r6, r1, #0
- sub r6, #0x1f
- lsl r0, r6, #1
- add r1, r4, r6
- add r0, r4, r0
- add r1, #0x30
- ldrh r0, [r0, #0xc]
- ldrb r1, [r1]
- bl WazaGetMaxPp
- add r4, #0x2c
- ldrb r1, [r4, r6]
- add r1, r5, r1
- cmp r1, r0
- ble _02243F92
- strb r0, [r4, r6]
- pop {r4, r5, r6, pc}
-_02243F92:
- strb r1, [r4, r6]
- pop {r4, r5, r6, pc}
-_02243F96:
- add r4, #0x30
- sub r1, #0x23
- ldrb r0, [r4, r1]
- add r0, r0, r5
- strb r0, [r4, r1]
- pop {r4, r5, r6, pc}
-_02243FA2:
- add r0, r4, #0
- add r0, #0x34
- ldrb r0, [r0]
- add r4, #0x34
- add r0, r0, r5
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02243FB0:
- add r0, r4, #0
- add r0, #0x35
- ldrb r0, [r0]
- add r0, r0, r5
- cmp r0, #0xff
- ble _02243FC4
- mov r0, #0xff
- add r4, #0x35
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02243FC4:
- add r0, r4, #0
- add r0, #0x35
- ldrb r0, [r0]
- add r4, #0x35
- add r0, r0, r5
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02243FD2:
- ldr r0, [r4, #0x4c]
- ldr r1, [r4, #0x50]
- add r0, r0, r5
- cmp r0, r1
- bls _02243FE0
- str r1, [r4, #0x4c]
- pop {r4, r5, r6, pc}
-_02243FE0:
- str r0, [r4, #0x4c]
- pop {r4, r5, r6, pc}
-_02243FE4:
- ldr r0, [r4, #0x50]
- add r0, r0, r5
- str r0, [r4, #0x50]
- pop {r4, r5, r6, pc}
-_02243FEC:
- ldr r0, [r4, #0x64]
- add r0, r0, r5
- str r0, [r4, #0x64]
- pop {r4, r5, r6, pc}
-_02243FF4:
- ldr r0, [r4, #0x68]
- add r0, r0, r5
- str r0, [r4, #0x68]
- pop {r4, r5, r6, pc}
-_02243FFC:
- add r0, r4, #0
- add r0, #0x88
- ldr r2, [r0]
- mov r1, #7
- add r0, r2, #0
- bic r0, r1
- lsl r1, r2, #0x1d
- lsr r1, r1, #0x1d
- add r2, r1, r5
- mov r1, #7
- and r1, r2
- orr r0, r1
- add r4, #0x88
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_0224401A:
- add r0, r4, #0
- add r0, #0x88
- ldr r2, [r0]
- mov r1, #0x38
- add r0, r2, #0
- bic r0, r1
- lsl r1, r2, #0x1a
- lsr r1, r1, #0x1d
- add r1, r1, r5
- lsl r1, r1, #0x1d
- lsr r1, r1, #0x1a
- orr r0, r1
- add r4, #0x88
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_02244038:
- add r0, r4, #0
- add r0, #0x88
- ldr r2, [r0]
- mov r1, #0xc0
- add r0, r2, #0
- bic r0, r1
- lsl r1, r2, #0x18
- lsr r1, r1, #0x1e
- add r1, r1, r5
- lsl r1, r1, #0x1e
- lsr r1, r1, #0x18
- orr r0, r1
- add r4, #0x88
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_02244056:
- add r0, r4, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _0224421C ; =0xFFFFF8FF
- add r4, #0x88
- and r0, r1
- lsl r1, r1, #0x15
- lsr r1, r1, #0x1d
- add r1, r1, r5
- lsl r1, r1, #0x1d
- lsr r1, r1, #0x15
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_02244072:
- add r0, r4, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02244220 ; =0xFFFFE7FF
- add r4, #0x88
- and r0, r1
- lsl r1, r1, #0x13
- lsr r1, r1, #0x1e
- add r1, r1, r5
- lsl r1, r1, #0x1e
- lsr r1, r1, #0x13
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_0224408E:
- add r0, r4, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02244224 ; =0xFFFF9FFF
- add r4, #0x88
- and r0, r1
- lsl r1, r1, #0x11
- lsr r1, r1, #0x1e
- add r1, r1, r5
- lsl r1, r1, #0x1e
- lsr r1, r1, #0x11
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_022440AA:
- add r0, r4, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02244228 ; =0xFFFC7FFF
- add r4, #0x88
- and r0, r1
- lsl r1, r1, #0xe
- lsr r1, r1, #0x1d
- add r1, r1, r5
- lsl r1, r1, #0x1d
- lsr r1, r1, #0xe
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_022440C6:
- add r0, r4, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _0224422C ; =0xFFE3FFFF
- add r4, #0x88
- and r0, r1
- lsl r1, r1, #0xb
- lsr r1, r1, #0x1d
- add r1, r1, r5
- lsl r1, r1, #0x1d
- lsr r1, r1, #0xb
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_022440E2:
- add r0, r4, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02244230 ; =0xFF1FFFFF
- add r4, #0x88
- and r0, r1
- lsl r1, r1, #8
- lsr r1, r1, #0x1d
- add r1, r1, r5
- lsl r1, r1, #0x1d
- lsr r1, r1, #8
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_022440FE:
- add r0, r4, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02244234 ; =0xF8FFFFFF
- add r4, #0x88
- and r0, r1
- lsl r1, r1, #5
- lsr r1, r1, #0x1d
- add r1, r1, r5
- lsl r1, r1, #0x1d
- lsr r1, r1, #5
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_0224411A:
- add r0, r4, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02244238 ; =0xC7FFFFFF
- add r4, #0x88
- and r0, r1
- lsl r1, r1, #2
- lsr r1, r1, #0x1d
- add r1, r1, r5
- lsl r1, r1, #0x1d
- lsr r1, r1, #2
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_02244136:
- add r0, r4, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _0224423C ; =0xFFFFE3FF
- add r4, #0x8c
- and r0, r1
- lsl r1, r1, #0x13
- lsr r1, r1, #0x1d
- add r1, r1, r5
- lsl r1, r1, #0x1d
- lsr r1, r1, #0x13
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_02244152:
- add r0, r4, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02244240 ; =0xFFFF1FFF
- add r4, #0x8c
- and r0, r1
- lsl r1, r1, #0x10
- lsr r1, r1, #0x1d
- add r1, r1, r5
- lsl r1, r1, #0x1d
- lsr r1, r1, #0x10
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_0224416E:
- add r0, r4, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02244244 ; =0xFFF8FFFF
- add r4, #0x8c
- and r0, r1
- lsl r1, r1, #0xd
- lsr r1, r1, #0x1d
- add r1, r1, r5
- lsl r1, r1, #0x1d
- lsr r1, r1, #0xd
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_0224418A:
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- add r4, #0x90
- add r0, r0, r5
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_02244198:
- add r0, r4, #0
- add r0, #0x94
- ldr r0, [r0]
- add r4, #0x94
- add r0, r0, r5
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_022441A6:
- add r0, r4, #0
- add r0, #0x98
- ldr r0, [r0]
- add r4, #0x98
- add r0, r0, r5
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_022441B4:
- add r0, r4, #0
- add r0, #0xa0
- ldr r0, [r0]
- add r4, #0xa0
- add r0, r0, r5
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_022441C2:
- add r0, r4, #0
- add r0, #0xbc
- ldr r0, [r0]
- add r4, #0xbc
- add r0, r0, r5
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_022441D0:
- ldr r2, [r4, #0x28]
- mov r1, #0x40
- add r0, r2, #0
- bic r0, r1
- lsl r1, r2, #0x19
- lsr r1, r1, #0x1f
- add r1, r1, r5
- lsl r1, r1, #0x1f
- lsr r1, r1, #0x19
- orr r0, r1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, pc}
-_022441E8:
- ldr r2, [r4, #0x28]
- mov r1, #0x80
- add r0, r2, #0
- bic r0, r1
- lsl r1, r2, #0x18
- lsr r1, r1, #0x1f
- add r1, r1, r5
- lsl r1, r1, #0x1f
- lsr r1, r1, #0x18
- orr r0, r1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, pc}
-_02244200:
- bl ErrorHandling
- pop {r4, r5, r6, pc}
- nop
-_02244208: .word 0xFFFFFC1F
-_0224420C: .word 0xFFFF83FF
-_02244210: .word 0xFFF07FFF
-_02244214: .word 0xFE0FFFFF
-_02244218: .word 0xC1FFFFFF
-_0224421C: .word 0xFFFFF8FF
-_02244220: .word 0xFFFFE7FF
-_02244224: .word 0xFFFF9FFF
-_02244228: .word 0xFFFC7FFF
-_0224422C: .word 0xFFE3FFFF
-_02244230: .word 0xFF1FFFFF
-_02244234: .word 0xF8FFFFFF
-_02244238: .word 0xC7FFFFFF
-_0224423C: .word 0xFFFFE3FF
-_02244240: .word 0xFFFF1FFF
-_02244244: .word 0xFFF8FFFF
-
- thumb_func_start MOD11_02244248
-MOD11_02244248: ; 0x02244248
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x68
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #0x64]
- str r0, [sp, #0x60]
- ldr r0, [sp, #0x64]
- str r2, [sp, #8]
- str r0, [sp, #0x5c]
- ldr r0, [sp, #0x64]
- str r3, [sp, #0xc]
- str r0, [sp, #0x48]
- ldr r0, [sp, #0x64]
- add r5, r1, #0
- str r0, [sp, #0x44]
- ldr r0, [sp, #0x64]
- mov r2, #0xc0
- str r0, [sp, #0x40]
- ldr r0, [sp, #0x64]
- ldr r3, _0224455C ; =0x00002D8C
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x64]
- str r0, [sp, #0x38]
- ldr r0, [sp, #0x64]
- str r0, [sp, #0x34]
- ldr r0, [sp, #8]
- add r1, r0, #0
- mul r1, r2
- add r0, r5, r1
- ldr r0, [r0, r3]
- str r1, [sp, #0x18]
- cmp r0, #0
- bne _0224429C
- ldr r1, [sp, #0xc]
- mul r2, r1
- add r1, r5, r2
- ldr r1, [r1, r3]
- cmp r1, #0
- beq _0224429C
- add sp, #0x68
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_0224429C:
- cmp r0, #0
- beq _022442B6
- ldr r0, [sp, #0xc]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224455C ; =0x00002D8C
- add r1, r5, r1
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _022442B6
- add sp, #0x68
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_022442B6:
- ldr r1, [sp, #8]
- add r0, r5, #0
- bl MOD11_02246D1C
- str r0, [sp, #0x2c]
- ldr r1, [sp, #0xc]
- add r0, r5, #0
- bl MOD11_02246D1C
- str r0, [sp, #0x28]
- ldr r1, [sp, #8]
- add r0, r5, #0
- bl MOD11_02249D90
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x58]
- ldr r1, [sp, #8]
- add r0, r5, #0
- mov r2, #0
- bl MOD11_02249DA4
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x54]
- ldr r1, [sp, #0xc]
- add r0, r5, #0
- bl MOD11_02249D90
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x50]
- ldr r1, [sp, #0xc]
- add r0, r5, #0
- mov r2, #0
- bl MOD11_02249DA4
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x4c]
- ldr r0, [sp, #0x18]
- ldr r2, _02244560 ; =0x00002D5B
- add r0, r5, r0
- ldrsb r4, [r0, r2]
- ldr r0, [sp, #0xc]
- mov r1, #0xc0
- mul r1, r0
- add r0, r5, r1
- str r1, [sp, #0x14]
- ldrsb r7, [r0, r2]
- ldr r1, [sp, #8]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x56
- bne _02244338
- sub r0, r4, #6
- lsl r0, r0, #1
- add r4, r0, #6
- cmp r4, #0xc
- ble _02244332
- mov r4, #0xc
-_02244332:
- cmp r4, #0
- bge _02244338
- mov r4, #0
-_02244338:
- ldr r1, [sp, #0xc]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x56
- bne _02244356
- sub r0, r7, #6
- lsl r0, r0, #1
- add r7, r0, #6
- cmp r7, #0xc
- ble _02244350
- mov r7, #0xc
-_02244350:
- cmp r7, #0
- bge _02244356
- mov r7, #0
-_02244356:
- ldr r0, [sp, #0x18]
- lsl r1, r4, #1
- add r2, r5, r0
- ldr r0, _02244564 ; =0x00002D46
- ldrh r2, [r2, r0]
- ldr r0, _02244568 ; =0x0225E284
- ldrb r0, [r0, r1]
- mul r0, r2
- ldr r2, _0224456C ; =0x0225E285
- ldrb r1, [r2, r1]
- bl _s32_div_f
- add r6, r0, #0
- ldr r0, [sp, #0x14]
- lsl r1, r7, #1
- add r2, r5, r0
- ldr r0, _02244564 ; =0x00002D46
- ldrh r2, [r2, r0]
- ldr r0, _02244568 ; =0x0225E284
- ldrb r0, [r0, r1]
- mul r0, r2
- ldr r2, _0224456C ; =0x0225E285
- ldrb r1, [r2, r1]
- bl _s32_div_f
- add r4, r0, #0
- mov r0, #0xd
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _022443FE
- mov r0, #0x4c
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _022443FE
- ldr r0, [sp, #0x2c]
- cmp r0, #0x21
- bne _022443C4
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #3
- tst r0, r1
- bne _022443D6
-_022443C4:
- ldr r0, [sp, #0x2c]
- cmp r0, #0x22
- bne _022443D8
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #0x30
- tst r0, r1
- beq _022443D8
-_022443D6:
- lsl r6, r6, #1
-_022443D8:
- ldr r0, [sp, #0x28]
- cmp r0, #0x21
- bne _022443EA
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #3
- tst r0, r1
- bne _022443FC
-_022443EA:
- ldr r0, [sp, #0x28]
- cmp r0, #0x22
- bne _022443FE
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #0x30
- tst r0, r1
- beq _022443FE
-_022443FC:
- lsl r4, r4, #1
-_022443FE:
- mov r0, #0
- str r0, [sp, #0x24]
- ldr r0, [sp, #0x18]
- ldr r7, _02244570 ; =0x0225E24C
- add r0, r5, r0
- str r0, [sp, #0x1c]
-_0224440A:
- ldr r2, [sp, #0x1c]
- ldr r1, _02244574 ; =0x00002DB8
- add r0, r5, #0
- ldrh r1, [r2, r1]
- mov r2, #1
- bl MOD11_0224C12C
- ldrb r1, [r7]
- cmp r1, r0
- bne _02244422
- lsr r6, r6, #1
- b _0224442E
-_02244422:
- ldr r0, [sp, #0x24]
- add r7, r7, #1
- add r0, r0, #1
- str r0, [sp, #0x24]
- cmp r0, #8
- blo _0224440A
-_0224442E:
- ldr r0, [sp, #0x58]
- cmp r0, #0x72
- bne _02244440
- mov r0, #0xf
- mul r0, r6
- mov r1, #0xa
- bl _u32_div_f
- add r6, r0, #0
-_02244440:
- ldr r0, [sp, #0x58]
- cmp r0, #0x65
- bne _02244456
- ldr r0, [sp, #0x18]
- add r1, r5, r0
- mov r0, #0xb5
- lsl r0, r0, #6
- ldrh r0, [r1, r0]
- cmp r0, #0x84
- bne _02244456
- lsl r6, r6, #1
-_02244456:
- ldr r0, [sp, #0x2c]
- cmp r0, #0x5f
- bne _02244478
- ldr r0, [sp, #0x18]
- add r1, r5, r0
- ldr r0, _02244578 ; =0x00002DAC
- ldr r0, [r1, r0]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- beq _02244478
- mov r0, #0xf
- mul r0, r6
- mov r1, #0xa
- bl _u32_div_f
- add r6, r0, #0
- b _02244488
-_02244478:
- ldr r0, [sp, #0x18]
- add r1, r5, r0
- ldr r0, _02244578 ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x40
- tst r0, r1
- beq _02244488
- lsr r6, r6, #2
-_02244488:
- ldr r0, [sp, #0x2c]
- cmp r0, #0x70
- bne _022444A4
- ldr r1, [sp, #0x18]
- mov r0, #0x15
- add r2, r5, r1
- ldr r1, _0224457C ; =0x00002DD8
- lsl r0, r0, #4
- ldr r0, [r5, r0]
- ldr r1, [r2, r1]
- sub r0, r0, r1
- cmp r0, #5
- bge _022444A4
- lsr r6, r6, #1
-_022444A4:
- ldr r0, [sp, #0x2c]
- cmp r0, #0x54
- bne _022444C2
- ldr r0, [sp, #0x18]
- add r2, r5, r0
- ldr r0, _02244580 ; =0x00002DCC
- ldr r1, [r2, r0]
- lsl r1, r1, #9
- lsr r1, r1, #0x1f
- beq _022444C2
- sub r0, #0x14
- ldrh r0, [r2, r0]
- cmp r0, #0
- bne _022444C2
- lsl r6, r6, #1
-_022444C2:
- ldr r0, [sp, #4]
- ldr r1, [sp, #8]
- bl MOD11_02230270
- lsl r0, r0, #2
- add r1, r5, r0
- mov r0, #0x6f
- lsl r0, r0, #2
- ldr r1, [r1, r0]
- mov r0, #3
- lsl r0, r0, #8
- tst r0, r1
- beq _022444DE
- lsl r6, r6, #1
-_022444DE:
- ldr r0, [sp, #0x58]
- cmp r0, #0x33
- bne _0224451C
- ldr r1, [sp, #0x54]
- mov r0, #0x64
- bl _s32_div_f
- add r1, r0, #0
- ldr r0, [sp, #8]
- lsl r0, r0, #1
- add r2, r5, r0
- ldr r0, _02244584 ; =0x0000310C
- ldrh r0, [r2, r0]
- bl _s32_div_f
- cmp r1, #0
- bne _0224451C
- mov r0, #1
- str r0, [sp, #0x40]
- ldr r0, [sp, #0x80]
- cmp r0, #0
- bne _0224451C
- ldr r0, _02244580 ; =0x00002DCC
- ldr r1, [sp, #0x18]
- add r0, r5, r0
- ldr r2, [r0, r1]
- mov r1, #2
- lsl r1, r1, #0x1c
- orr r2, r1
- ldr r1, [sp, #0x18]
- str r2, [r0, r1]
-_0224451C:
- ldr r0, [sp, #0x18]
- add r1, r5, r0
- ldr r0, _02244580 ; =0x00002DCC
- ldr r0, [r1, r0]
- lsl r0, r0, #3
- lsr r0, r0, #0x1f
- beq _0224452E
- mov r0, #1
- str r0, [sp, #0x40]
-_0224452E:
- ldr r0, [sp, #0x58]
- cmp r0, #0x6a
- bne _02244538
- mov r0, #1
- str r0, [sp, #0x38]
-_02244538:
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x14]
- ldr r7, _02244570 ; =0x0225E24C
- add r0, r5, r0
- str r0, [sp, #0x20]
-_02244544:
- ldr r2, [sp, #0x20]
- ldr r1, _02244574 ; =0x00002DB8
- add r0, r5, #0
- ldrh r1, [r2, r1]
- mov r2, #1
- bl MOD11_0224C12C
- ldrb r1, [r7]
- cmp r1, r0
- bne _02244588
- lsr r4, r4, #1
- b _02244594
- .align 2, 0
-_0224455C: .word 0x00002D8C
-_02244560: .word 0x00002D5B
-_02244564: .word 0x00002D46
-_02244568: .word 0x0225E284
-_0224456C: .word 0x0225E285
-_02244570: .word 0x0225E24C
-_02244574: .word 0x00002DB8
-_02244578: .word 0x00002DAC
-_0224457C: .word 0x00002DD8
-_02244580: .word 0x00002DCC
-_02244584: .word 0x0000310C
-_02244588:
- ldr r0, [sp, #0x10]
- add r7, r7, #1
- add r0, r0, #1
- str r0, [sp, #0x10]
- cmp r0, #8
- blo _02244544
-_02244594:
- ldr r0, [sp, #0x50]
- cmp r0, #0x72
- bne _022445A6
- mov r0, #0xf
- mul r0, r4
- mov r1, #0xa
- bl _u32_div_f
- add r4, r0, #0
-_022445A6:
- ldr r0, [sp, #0x50]
- cmp r0, #0x65
- bne _022445BC
- ldr r0, [sp, #0x14]
- add r1, r5, r0
- mov r0, #0xb5
- lsl r0, r0, #6
- ldrh r0, [r1, r0]
- cmp r0, #0x84
- bne _022445BC
- lsl r4, r4, #1
-_022445BC:
- ldr r0, [sp, #0x28]
- cmp r0, #0x5f
- bne _022445DE
- ldr r0, [sp, #0x14]
- add r1, r5, r0
- ldr r0, _02244894 ; =0x00002DAC
- ldr r0, [r1, r0]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- beq _022445DE
- mov r0, #0xf
- mul r0, r4
- mov r1, #0xa
- bl _u32_div_f
- add r4, r0, #0
- b _022445EE
-_022445DE:
- ldr r0, [sp, #0x14]
- add r1, r5, r0
- ldr r0, _02244894 ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x40
- tst r0, r1
- beq _022445EE
- lsr r4, r4, #2
-_022445EE:
- ldr r0, [sp, #0x28]
- cmp r0, #0x70
- bne _0224460A
- ldr r1, [sp, #0x14]
- mov r0, #0x15
- add r2, r5, r1
- ldr r1, _02244898 ; =0x00002DD8
- lsl r0, r0, #4
- ldr r0, [r5, r0]
- ldr r1, [r2, r1]
- sub r0, r0, r1
- cmp r0, #5
- bge _0224460A
- lsr r4, r4, #1
-_0224460A:
- ldr r0, [sp, #0x28]
- cmp r0, #0x54
- bne _02244628
- ldr r0, [sp, #0x14]
- add r2, r5, r0
- ldr r0, _0224489C ; =0x00002DCC
- ldr r1, [r2, r0]
- lsl r1, r1, #9
- lsr r1, r1, #0x1f
- beq _02244628
- sub r0, #0x14
- ldrh r0, [r2, r0]
- cmp r0, #0
- bne _02244628
- lsl r4, r4, #1
-_02244628:
- ldr r0, [sp, #4]
- ldr r1, [sp, #0xc]
- bl MOD11_02230270
- lsl r0, r0, #2
- add r1, r5, r0
- mov r0, #0x6f
- lsl r0, r0, #2
- ldr r1, [r1, r0]
- mov r0, #3
- lsl r0, r0, #8
- tst r0, r1
- beq _02244644
- lsl r4, r4, #1
-_02244644:
- ldr r0, [sp, #0x50]
- cmp r0, #0x33
- bne _02244682
- ldr r1, [sp, #0x4c]
- mov r0, #0x64
- bl _s32_div_f
- add r1, r0, #0
- ldr r0, [sp, #0xc]
- lsl r0, r0, #1
- add r2, r5, r0
- ldr r0, _022448A0 ; =0x0000310C
- ldrh r0, [r2, r0]
- bl _s32_div_f
- cmp r1, #0
- bne _02244682
- mov r0, #1
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x80]
- cmp r0, #0
- bne _02244682
- ldr r0, _0224489C ; =0x00002DCC
- ldr r1, [sp, #0x14]
- add r0, r5, r0
- ldr r2, [r0, r1]
- mov r1, #2
- lsl r1, r1, #0x1c
- orr r2, r1
- ldr r1, [sp, #0x14]
- str r2, [r0, r1]
-_02244682:
- ldr r0, [sp, #0x14]
- add r1, r5, r0
- ldr r0, _0224489C ; =0x00002DCC
- ldr r0, [r1, r0]
- lsl r0, r0, #3
- lsr r0, r0, #0x1f
- beq _02244694
- mov r0, #1
- str r0, [sp, #0x3c]
-_02244694:
- ldr r0, [sp, #0x50]
- cmp r0, #0x6a
- bne _0224469E
- mov r0, #1
- str r0, [sp, #0x34]
-_0224469E:
- ldr r0, [sp, #8]
- lsl r0, r0, #2
- add r1, r5, r0
- ldr r0, _022448A4 ; =0x000021F0
- str r6, [r1, r0]
- ldr r1, [sp, #0xc]
- lsl r1, r1, #2
- add r1, r5, r1
- str r4, [r1, r0]
- ldr r1, [sp, #0x80]
- cmp r1, #0
- bne _02244756
- ldr r1, [sp, #0xc]
- ldr r3, _022448A8 ; =0x000030BC
- lsl r1, r1, #4
- add r2, r5, r1
- add r1, r0, #0
- sub r1, #0x3c
- ldr r1, [r2, r1]
- sub r0, #0x3c
- str r1, [sp, #0x30]
- ldr r1, [sp, #8]
- lsl r1, r1, #1
- add r1, r5, r1
- ldrh r2, [r1, r3]
- ldr r1, [sp, #0xc]
- lsl r1, r1, #1
- add r1, r5, r1
- ldrh r7, [r1, r3]
- ldr r1, [sp, #8]
- lsl r1, r1, #4
- add r1, r5, r1
- ldr r0, [r1, r0]
- cmp r0, #1
- bne _0224470E
- ldr r0, [sp, #8]
- lsl r0, r0, #6
- add r1, r5, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- beq _022446FC
- mov r0, #0xa5
- str r0, [sp, #0x60]
- b _0224470E
-_022446FC:
- ldr r1, [sp, #8]
- add r0, r5, #0
- add r2, r2, #6
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x60]
-_0224470E:
- ldr r0, [sp, #0x30]
- cmp r0, #1
- bne _0224473E
- ldr r0, [sp, #0xc]
- lsl r0, r0, #6
- add r1, r5, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- beq _0224472C
- mov r0, #0xa5
- str r0, [sp, #0x5c]
- b _0224473E
-_0224472C:
- ldr r1, [sp, #0xc]
- add r0, r5, #0
- add r2, r7, #6
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x5c]
-_0224473E:
- ldr r0, [sp, #0x60]
- mov r1, #0xfa
- lsl r0, r0, #4
- add r0, r5, r0
- lsl r1, r1, #2
- ldrsb r0, [r0, r1]
- str r0, [sp, #0x48]
- ldr r0, [sp, #0x5c]
- lsl r0, r0, #4
- add r0, r5, r0
- ldrsb r0, [r0, r1]
- str r0, [sp, #0x44]
-_02244756:
- ldr r1, [sp, #0x48]
- ldr r0, [sp, #0x44]
- cmp r1, r0
- beq _02244760
- b _022448AC
-_02244760:
- ldr r0, [sp, #0x40]
- cmp r0, #0
- beq _0224478C
- ldr r0, [sp, #0x3c]
- cmp r0, #0
- beq _0224478C
- cmp r6, r4
- bhs _02244776
- mov r0, #1
- str r0, [sp, #0x64]
- b _022448B4
-_02244776:
- cmp r6, r4
- bne _02244784
- bl rand_LC
- mov r1, #1
- tst r0, r1
- bne _02244786
-_02244784:
- b _022448B4
-_02244786:
- mov r0, #2
- str r0, [sp, #0x64]
- b _022448B4
-_0224478C:
- ldr r0, [sp, #0x40]
- cmp r0, #0
- bne _0224479E
- ldr r0, [sp, #0x3c]
- cmp r0, #0
- beq _0224479E
- mov r0, #1
- str r0, [sp, #0x64]
- b _022448B4
-_0224479E:
- ldr r0, [sp, #0x40]
- cmp r0, #0
- beq _022447B0
- ldr r0, [sp, #0x3c]
- cmp r0, #0
- bne _022447B0
- mov r0, #0
- str r0, [sp, #0x64]
- b _022448B4
-_022447B0:
- ldr r0, [sp, #0x38]
- cmp r0, #0
- beq _022447DA
- ldr r0, [sp, #0x34]
- cmp r0, #0
- beq _022447DA
- cmp r6, r4
- bls _022447C6
- mov r0, #1
- str r0, [sp, #0x64]
- b _022448B4
-_022447C6:
- cmp r6, r4
- bne _022448B4
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _022448B4
- mov r0, #2
- str r0, [sp, #0x64]
- b _022448B4
-_022447DA:
- ldr r0, [sp, #0x38]
- cmp r0, #0
- beq _022447EC
- ldr r0, [sp, #0x34]
- cmp r0, #0
- bne _022447EC
- mov r0, #1
- str r0, [sp, #0x64]
- b _022448B4
-_022447EC:
- ldr r0, [sp, #0x38]
- cmp r0, #0
- bne _022447FE
- ldr r0, [sp, #0x34]
- cmp r0, #0
- beq _022447FE
- mov r0, #0
- str r0, [sp, #0x64]
- b _022448B4
-_022447FE:
- ldr r0, [sp, #0x2c]
- cmp r0, #0x64
- bne _02244828
- ldr r0, [sp, #0x28]
- cmp r0, #0x64
- bne _02244828
- cmp r6, r4
- bls _02244814
- mov r0, #1
- str r0, [sp, #0x64]
- b _022448B4
-_02244814:
- cmp r6, r4
- bne _022448B4
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _022448B4
- mov r0, #2
- str r0, [sp, #0x64]
- b _022448B4
-_02244828:
- ldr r0, [sp, #0x2c]
- cmp r0, #0x64
- bne _0224483A
- ldr r0, [sp, #0x28]
- cmp r0, #0x64
- beq _0224483A
- mov r0, #1
- str r0, [sp, #0x64]
- b _022448B4
-_0224483A:
- ldr r0, [sp, #0x2c]
- cmp r0, #0x64
- beq _0224484C
- ldr r0, [sp, #0x28]
- cmp r0, #0x64
- bne _0224484C
- mov r0, #0
- str r0, [sp, #0x64]
- b _022448B4
-_0224484C:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #7
- lsl r0, r0, #0x10
- tst r0, r1
- beq _02244876
- cmp r6, r4
- bls _02244862
- mov r0, #1
- str r0, [sp, #0x64]
-_02244862:
- cmp r6, r4
- bne _022448B4
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _022448B4
- mov r0, #2
- str r0, [sp, #0x64]
- b _022448B4
-_02244876:
- cmp r6, r4
- bhs _0224487E
- mov r0, #1
- str r0, [sp, #0x64]
-_0224487E:
- cmp r6, r4
- bne _022448B4
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _022448B4
- mov r0, #2
- str r0, [sp, #0x64]
- b _022448B4
- nop
-_02244894: .word 0x00002DAC
-_02244898: .word 0x00002DD8
-_0224489C: .word 0x00002DCC
-_022448A0: .word 0x0000310C
-_022448A4: .word 0x000021F0
-_022448A8: .word 0x000030BC
-_022448AC:
- cmp r1, r0
- bge _022448B4
- mov r0, #1
- str r0, [sp, #0x64]
-_022448B4:
- ldr r0, [sp, #0x64]
- add sp, #0x68
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022448BC
-MOD11_022448BC: ; 0x022448BC
- asr r1, r1, #1
- lsl r1, r1, #0x1f
- lsr r1, r1, #0x1d
- add r0, r0, r1
- mov r2, #0
- add r0, #0xa4
- str r2, [r0]
- bx lr
-
- thumb_func_start MOD11_022448CC
-MOD11_022448CC: ; 0x022448CC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- str r2, [sp]
- add r5, r1, #0
- mov r4, #0
- bl MOD11_0222FF74
- add r7, r0, #0
- ldr r0, [sp]
- mov r1, #0xc0
- mul r1, r0
- add r0, r5, r1
- str r0, [sp, #4]
- ldr r0, [sp]
- asr r0, r0, #1
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1d
- add r6, r5, r0
- add r6, #0xa4
-_022448F2:
- add r0, r4, #0
- bl MaskOfFlagNo
- ldr r1, _0224493C ; =0x00003108
- ldrb r1, [r5, r1]
- tst r0, r1
- bne _02244928
- ldr r0, [sp]
- bl MaskOfFlagNo
- ldr r1, _0224493C ; =0x00003108
- ldrb r1, [r5, r1]
- tst r0, r1
- bne _02244928
- ldr r1, [sp, #4]
- ldr r0, _02244940 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02244928
- ldr r0, _02244944 ; =0x0000219C
- add r1, r5, r4
- ldrb r0, [r1, r0]
- bl MaskOfFlagNo
- ldr r1, [r6]
- orr r0, r1
- str r0, [r6]
-_02244928:
- add r4, r4, #2
- cmp r7, #0x4a
- beq _02244936
- cmp r7, #0x4b
- beq _02244936
- cmp r4, #2
- ble _022448F2
-_02244936:
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224493C: .word 0x00003108
-_02244940: .word 0x00002D8C
-_02244944: .word 0x0000219C
-
- thumb_func_start MOD11_02244948
-MOD11_02244948: ; 0x02244948
- push {r4, r5, r6, lr}
- ldr r0, _022449D4 ; =0x00002170
- add r5, r1, #0
- add r4, r2, #0
- ldr r2, [r5, r0]
- mov r0, #2
- lsl r0, r0, #0x1c
- mov r6, #0
- tst r0, r2
- beq _0224497A
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0224C5DC
- str r0, [r4]
- ldr r0, _022449D4 ; =0x00002170
- add r1, r6, #0
- str r1, [r5, r0]
- sub r0, r0, #4
- ldr r1, [r5, r0]
- ldr r0, _022449D8 ; =0x801FDA49
- tst r0, r1
- bne _022449CE
- mov r6, #1
- b _022449CE
-_0224497A:
- cmp r2, #0
- beq _022449CE
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0224C5DC
- str r0, [r4]
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _022449DC ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _022449C8
- ldr r1, _022449E0 ; =0x0000216C
- ldr r2, _022449D8 ; =0x801FDA49
- ldr r0, [r5, r1]
- tst r2, r0
- beq _022449C6
- add r1, r1, #4
- mov r2, #2
- ldr r1, [r5, r1]
- lsl r2, r2, #0x16
- tst r2, r1
- beq _022449B8
- ldr r2, _022449E4 ; =0x00040008
- tst r2, r0
- bne _022449C6
-_022449B8:
- mov r2, #1
- lsl r2, r2, #0x1c
- tst r1, r2
- beq _022449C8
- ldr r1, _022449E8 ; =0x00010001
- tst r0, r1
- beq _022449C8
-_022449C6:
- mov r6, #1
-_022449C8:
- ldr r0, _022449D4 ; =0x00002170
- mov r1, #0
- str r1, [r5, r0]
-_022449CE:
- add r0, r6, #0
- pop {r4, r5, r6, pc}
- nop
-_022449D4: .word 0x00002170
-_022449D8: .word 0x801FDA49
-_022449DC: .word 0x00002D8C
-_022449E0: .word 0x0000216C
-_022449E4: .word 0x00040008
-_022449E8: .word 0x00010001
-
- thumb_func_start MOD11_022449EC
-MOD11_022449EC: ; 0x022449EC
- push {r3, r4, r5, r6, r7, lr}
- ldr r0, _02244C04 ; =0x00002174
- add r5, r1, #0
- add r4, r2, #0
- ldr r2, [r5, r0]
- mov r1, #2
- lsl r1, r1, #0x1c
- add r3, r2, #0
- mov r6, #0
- tst r3, r1
- beq _02244A20
- add r0, r5, #0
- mov r1, #2
- bl MOD11_0224C5DC
- str r0, [r4]
- ldr r0, _02244C04 ; =0x00002174
- add r1, r6, #0
- str r1, [r5, r0]
- sub r0, #8
- ldr r1, [r5, r0]
- ldr r0, _02244C08 ; =0x801FDA49
- tst r0, r1
- bne _02244AC0
- mov r6, #1
- b _02244C00
-_02244A20:
- lsr r3, r1, #5
- tst r3, r2
- beq _02244A54
- add r0, r5, #0
- mov r1, #2
- bl MOD11_0224C5DC
- str r0, [r4]
- ldr r0, _02244C04 ; =0x00002174
- add r1, r6, #0
- str r1, [r5, r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224AD9C
- cmp r0, #0
- bne _02244AC0
- ldr r0, _02244C0C ; =0x0000216C
- ldr r1, [r5, r0]
- ldr r0, _02244C08 ; =0x801FDA49
- tst r0, r1
- bne _02244AC0
- mov r6, #1
- b _02244C00
-_02244A54:
- lsr r3, r1, #4
- tst r3, r2
- beq _02244A96
- add r0, r5, #0
- mov r1, #2
- bl MOD11_0224C5DC
- str r0, [r4]
- ldr r0, _02244C04 ; =0x00002174
- add r1, r6, #0
- str r1, [r5, r0]
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02244C10 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _02244AC0
- add r0, r5, #0
- bl MOD11_0224AD9C
- cmp r0, #0
- bne _02244AC0
- ldr r0, _02244C0C ; =0x0000216C
- ldr r1, [r5, r0]
- ldr r0, _02244C08 ; =0x801FDA49
- tst r0, r1
- bne _02244AC0
- mov r6, #1
- b _02244C00
-_02244A96:
- lsr r3, r1, #1
- tst r3, r2
- beq _02244AC6
- add r0, r5, #0
- mov r1, #2
- bl MOD11_0224C5DC
- str r0, [r4]
- ldr r0, _02244C04 ; =0x00002174
- add r1, r6, #0
- str r1, [r5, r0]
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02244C10 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02244AC2
-_02244AC0:
- b _02244C00
-_02244AC2:
- mov r6, #1
- b _02244C00
-_02244AC6:
- lsr r1, r1, #3
- tst r1, r2
- beq _02244B50
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x20
- ldr r0, _02244C14 ; =0x00003044
- bne _02244AEA
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02244C18 ; =0x000003E5
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x11
- lsr r6, r0, #0x10
- b _02244AF4
-_02244AEA:
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02244C18 ; =0x000003E5
- ldrb r6, [r1, r0]
-_02244AF4:
- cmp r6, #0
- bne _02244AFC
- bl ErrorHandling
-_02244AFC:
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- cmp r1, r6
- bge _02244B16
- ldr r1, _02244C1C ; =0x0000213C
- mov r0, #1
- ldr r2, [r5, r1]
- lsl r0, r0, #0x16
- orr r0, r2
- str r0, [r5, r1]
-_02244B16:
- ldr r2, _02244C04 ; =0x00002174
- add r0, r5, #0
- ldr r2, [r5, r2]
- mov r1, #2
- bl MOD11_0224C5DC
- str r0, [r4]
- ldr r1, _02244C04 ; =0x00002174
- mov r0, #0
- str r0, [r5, r1]
- add r0, r5, #0
- add r0, #0x94
- ldr r2, [r0]
- mov r0, #0xc0
- mul r0, r2
- add r2, r5, r0
- ldr r0, _02244C10 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- bne _02244B4C
- add r0, r1, #0
- sub r0, #0x38
- ldr r2, [r5, r0]
- ldr r0, _02244C20 ; =0xFFBFFFFF
- sub r1, #0x38
- and r0, r2
- str r0, [r5, r1]
-_02244B4C:
- mov r6, #1
- b _02244C00
-_02244B50:
- cmp r2, #0
- beq _02244BD2
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x20
- ldr r0, _02244C14 ; =0x00003044
- bne _02244B72
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02244C18 ; =0x000003E5
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x11
- lsr r7, r0, #0x10
- b _02244B7C
-_02244B72:
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02244C18 ; =0x000003E5
- ldrb r7, [r1, r0]
-_02244B7C:
- cmp r7, #0
- bne _02244B84
- bl ErrorHandling
-_02244B84:
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- cmp r1, r7
- bge _02244C00
- ldr r2, _02244C04 ; =0x00002174
- add r0, r5, #0
- ldr r2, [r5, r2]
- mov r1, #2
- bl MOD11_0224C5DC
- str r0, [r4]
- ldr r0, _02244C04 ; =0x00002174
- mov r1, #0
- str r1, [r5, r0]
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02244C10 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _02244C00
- add r0, r5, #0
- bl MOD11_0224AD9C
- cmp r0, #0
- bne _02244C00
- ldr r0, _02244C0C ; =0x0000216C
- ldr r1, [r5, r0]
- ldr r0, _02244C08 ; =0x801FDA49
- tst r0, r1
- bne _02244C00
- mov r6, #1
- b _02244C00
-_02244BD2:
- add r0, r0, #4
- ldr r2, [r5, r0]
- cmp r2, #0
- beq _02244C00
- add r0, r5, #0
- mov r1, #3
- bl MOD11_0224C5DC
- str r0, [r4]
- ldr r0, _02244C24 ; =0x00002178
- add r1, r6, #0
- str r1, [r5, r0]
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02244C10 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02244C00
- mov r6, #1
-_02244C00:
- add r0, r6, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02244C04: .word 0x00002174
-_02244C08: .word 0x801FDA49
-_02244C0C: .word 0x0000216C
-_02244C10: .word 0x00002D8C
-_02244C14: .word 0x00003044
-_02244C18: .word 0x000003E5
-_02244C1C: .word 0x0000213C
-_02244C20: .word 0xFFBFFFFF
-_02244C24: .word 0x00002178
-
- thumb_func_start MOD11_02244C28
-MOD11_02244C28: ; 0x02244C28
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r6, r0, #0
- mov r0, #0xff
- add r4, r1, #0
- add r5, r2, #0
- str r0, [sp, #0xc]
- cmp r3, #0
- beq _02244C44
- lsl r0, r3, #4
- add r1, r4, r0
- ldr r0, _02244F24 ; =0x000003E6
- ldrh r0, [r1, r0]
- b _02244C46
-_02244C44:
- ldr r0, [sp, #0x34]
-_02244C46:
- cmp r0, #4
- bne _02244CD6
- add r0, r6, #0
- bl MOD11_0222FF84
- str r0, [sp, #8]
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- bl MOD11_02253A4C
- ldr r1, _02244F28 ; =0x0000217E
- mov r2, #0
- strb r2, [r4, r1]
- ldrb r1, [r4, r1]
- ldr r2, [sp, #8]
- cmp r1, r2
- bge _02244CC4
- mov r2, #1
- add r5, r0, #0
- and r5, r2
-_02244C72:
- ldr r0, _02244F2C ; =0x000021EC
- add r1, r4, r1
- ldrb r7, [r1, r0]
- mov r0, #0xc0
- mul r0, r7
- add r1, r4, r0
- ldr r0, _02244F30 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02244CB2
- add r0, r6, #0
- add r1, r7, #0
- bl MOD11_0222FF7C
- str r0, [sp]
- cmp r5, #0
- beq _02244C9E
- bl MOD11_02253A4C
- mov r1, #1
- tst r0, r1
- beq _02244CAE
-_02244C9E:
- cmp r5, #0
- bne _02244CB2
- ldr r0, [sp]
- bl MOD11_02253A4C
- mov r1, #1
- tst r0, r1
- beq _02244CB2
-_02244CAE:
- str r7, [sp, #0xc]
- b _02244CC4
-_02244CB2:
- ldr r0, _02244F28 ; =0x0000217E
- ldrb r0, [r4, r0]
- add r1, r0, #1
- ldr r0, _02244F28 ; =0x0000217E
- strb r1, [r4, r0]
- ldrb r1, [r4, r0]
- ldr r0, [sp, #8]
- cmp r1, r0
- blt _02244C72
-_02244CC4:
- ldr r1, _02244F28 ; =0x0000217E
- ldr r0, [sp, #8]
- ldrb r2, [r4, r1]
- cmp r2, r0
- bne _02244CD0
- b _02244F5C
-_02244CD0:
- add r0, r2, #1
- strb r0, [r4, r1]
- b _02244F5C
-_02244CD6:
- cmp r0, #8
- bne _02244D26
- add r0, r6, #0
- bl MOD11_0222FF84
- add r2, r0, #0
- ldr r0, _02244F28 ; =0x0000217E
- mov r1, #0
- strb r1, [r4, r0]
- ldrb r3, [r4, r0]
- cmp r3, r2
- bge _02244D18
- ldr r7, _02244F30 ; =0x00002D8C
-_02244CF0:
- ldr r1, _02244F2C ; =0x000021EC
- add r6, r4, r3
- ldrb r1, [r6, r1]
- mov r6, #0xc0
- mul r6, r1
- add r6, r4, r6
- ldr r6, [r6, r7]
- cmp r6, #0
- beq _02244D0A
- cmp r1, r5
- beq _02244D0A
- str r1, [sp, #0xc]
- b _02244D18
-_02244D0A:
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- ldr r1, _02244F28 ; =0x0000217E
- ldrb r3, [r4, r1]
- cmp r3, r2
- blt _02244CF0
-_02244D18:
- cmp r3, r2
- beq _02244E02
- ldr r0, _02244F28 ; =0x0000217E
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _02244F5C
-_02244D26:
- mov r1, #2
- lsl r1, r1, #8
- cmp r0, r1
- bne _02244D72
- ldr r1, [sp, #0x30]
- cmp r1, #1
- bne _02244D72
- add r0, r6, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _02244D6E
- bl rand_LC
- lsr r2, r0, #0x1f
- lsl r1, r0, #0x1f
- sub r1, r1, r2
- mov r0, #0x1f
- ror r1, r0
- add r0, r2, r1
- bne _02244D6E
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_022302BC
- mov r1, #0xc0
- mul r1, r0
- str r0, [sp, #0xc]
- ldr r0, _02244F30 ; =0x00002D8C
- add r1, r4, r1
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02244E02
- str r5, [sp, #0xc]
- b _02244F5C
-_02244D6E:
- str r5, [sp, #0xc]
- b _02244F5C
-_02244D72:
- mov r1, #1
- lsl r1, r1, #0xa
- cmp r0, r1
- bne _02244D8E
- ldr r1, [sp, #0x30]
- cmp r1, #1
- bne _02244D8E
- add r0, r6, #0
- add r1, r4, #0
- add r2, r5, #0
- bl MOD11_022482A4
- str r0, [sp, #0xc]
- b _02244F5C
-_02244D8E:
- cmp r0, #0x80
- bne _02244DA0
- add r0, r6, #0
- add r1, r4, #0
- add r2, r5, #0
- bl MOD11_022482A4
- str r0, [sp, #0xc]
- b _02244F5C
-_02244DA0:
- cmp r0, #0x10
- beq _02244DB0
- cmp r0, #0x20
- beq _02244DB0
- cmp r0, #1
- beq _02244DB0
- cmp r0, #0x40
- bne _02244DB4
-_02244DB0:
- str r5, [sp, #0xc]
- b _02244F5C
-_02244DB4:
- mov r1, #1
- lsl r1, r1, #8
- cmp r0, r1
- bne _02244DD8
- add r0, r6, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _02244DD4
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_022302BC
- str r0, [sp, #0xc]
- b _02244F5C
-_02244DD4:
- str r5, [sp, #0xc]
- b _02244F5C
-_02244DD8:
- lsl r1, r1, #1
- cmp r0, r1
- bne _02244E0C
- add r0, r6, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _02244E08
- lsl r0, r5, #4
- add r1, r4, r0
- ldr r0, _02244F34 ; =0x000021AC
- ldr r0, [r1, r0]
- mov r1, #0xc0
- mul r1, r0
- str r0, [sp, #0xc]
- ldr r0, _02244F30 ; =0x00002D8C
- add r1, r4, r1
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02244E04
-_02244E02:
- b _02244F5C
-_02244E04:
- str r5, [sp, #0xc]
- b _02244F5C
-_02244E08:
- str r5, [sp, #0xc]
- b _02244F5C
-_02244E0C:
- cmp r0, #2
- beq _02244E16
- ldr r0, [sp, #0x30]
- cmp r0, #1
- bne _02244ED6
-_02244E16:
- add r0, r6, #0
- bl MOD11_0222FF74
- str r0, [sp, #0x10]
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_02230270
- add r7, r0, #0
- mov r1, #1
- eor r7, r1
- add r0, r6, #0
- add r1, r5, #0
- mov r2, #0
- bl MOD11_02230308
- str r0, [sp, #0x14]
- add r0, r6, #0
- add r1, r5, #0
- mov r2, #2
- bl MOD11_02230308
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x10]
- mov r1, #2
- tst r0, r1
- beq _02244EBE
- mov r0, #0x71
- lsl r0, r0, #2
- add r1, r4, r0
- lsl r0, r7, #3
- ldr r0, [r1, r0]
- lsl r1, r0, #0xb
- lsr r1, r1, #0x1f
- beq _02244E72
- lsl r0, r0, #9
- lsr r2, r0, #0x1e
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _02244F30 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02244E72
- str r2, [sp, #0xc]
- b _02244F5C
-_02244E72:
- ldr r0, [sp, #0x14]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- add r0, r4, r2
- ldr r2, _02244F30 ; =0x00002D8C
- ldr r0, [r0, r2]
- cmp r0, #0
- beq _02244EA0
- ldr r3, [sp, #0x18]
- mul r1, r3
- add r1, r4, r1
- ldr r1, [r1, r2]
- cmp r1, #0
- beq _02244EA0
- bl rand_LC
- lsl r0, r0, #0x1f
- lsr r1, r0, #0x1d
- add r0, sp, #0x14
- ldr r0, [r0, r1]
- str r0, [sp, #0xc]
- b _02244F5C
-_02244EA0:
- cmp r0, #0
- beq _02244EAA
- ldr r0, [sp, #0x14]
- str r0, [sp, #0xc]
- b _02244F5C
-_02244EAA:
- ldr r2, [sp, #0x18]
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _02244F30 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02244F5C
- str r2, [sp, #0xc]
- b _02244F5C
-_02244EBE:
- mov r0, #1
- add r2, r5, #0
- eor r2, r0
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _02244F30 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02244F5C
- str r2, [sp, #0xc]
- b _02244F5C
-_02244ED6:
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_02230270
- mov r1, #1
- eor r0, r1
- str r0, [sp, #4]
- lsl r0, r5, #4
- add r1, r4, r0
- ldr r0, _02244F34 ; =0x000021AC
- ldr r7, [r1, r0]
- add r0, r6, #0
- bl MOD11_0222FF84
- mov r0, #0x71
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r0, [sp, #4]
- lsl r0, r0, #3
- ldr r0, [r1, r0]
- lsl r1, r0, #0xb
- lsr r1, r1, #0x1f
- beq _02244F1A
- lsl r0, r0, #9
- lsr r0, r0, #0x1e
- mov r1, #0xc0
- mul r1, r0
- add r2, r4, r1
- ldr r1, _02244F30 ; =0x00002D8C
- ldr r1, [r2, r1]
- cmp r1, #0
- beq _02244F1A
- str r0, [sp, #0xc]
- b _02244F5C
-_02244F1A:
- mov r0, #0xc0
- mul r0, r7
- add r1, r4, r0
- ldr r0, _02244F30 ; =0x00002D8C
- b _02244F38
- .align 2, 0
-_02244F24: .word 0x000003E6
-_02244F28: .word 0x0000217E
-_02244F2C: .word 0x000021EC
-_02244F30: .word 0x00002D8C
-_02244F34: .word 0x000021AC
-_02244F38:
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02244F42
- str r7, [sp, #0xc]
- b _02244F5C
-_02244F42:
- add r0, r6, #0
- add r1, r4, #0
- add r2, r5, #0
- bl MOD11_022482A4
- mov r1, #0xc0
- mul r1, r0
- add r2, r4, r1
- ldr r1, _02244F64 ; =0x00002D8C
- ldr r1, [r2, r1]
- cmp r1, #0
- beq _02244F5C
- str r0, [sp, #0xc]
-_02244F5C:
- ldr r0, [sp, #0xc]
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- nop
-_02244F64: .word 0x00002D8C
-
- thumb_func_start MOD11_02244F68
-MOD11_02244F68: ; 0x02244F68
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r5, r1, #0
- str r0, [sp, #4]
- ldr r0, [r5, #0x6c]
- add r7, r2, #0
- add r6, r3, #0
- cmp r0, #0xff
- beq _02244FC2
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_02246D1C
- cmp r0, #0x60
- beq _02244FC2
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_02246D1C
- cmp r0, #0x68
- beq _02244FC2
- ldr r0, [sp, #4]
- add r1, r7, #0
- bl MOD11_02230270
- add r2, r0, #0
- mov r1, #1
- mov r0, #0x71
- eor r2, r1
- lsl r0, r0, #2
- add r1, r5, r0
- lsl r0, r2, #3
- ldr r0, [r1, r0]
- lsl r1, r0, #0xb
- lsr r1, r1, #0x1f
- beq _02244FC4
- lsl r0, r0, #9
- lsr r1, r0, #0x1e
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _022450F8 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02244FC4
-_02244FC2:
- b _022450F4
-_02244FC4:
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r7, #0
- add r3, r6, #0
- bl MOD11_0224C8EC
- str r0, [sp, #0xc]
- cmp r0, #0
- bne _02244FE0
- lsl r0, r6, #4
- add r1, r5, r0
- ldr r0, _022450FC ; =0x000003E2
- ldrb r0, [r1, r0]
- str r0, [sp, #0xc]
-_02244FE0:
- ldr r0, [sp, #4]
- bl MOD11_0222FF84
- str r0, [sp, #8]
- ldr r0, [sp, #0xc]
- cmp r0, #0xd
- bne _02245070
- lsl r0, r6, #4
- add r1, r5, r0
- ldr r0, _02245100 ; =0x000003E6
- ldrh r0, [r1, r0]
- cmp r0, #0
- beq _02244FFE
- cmp r0, #2
- bne _02245070
-_02244FFE:
- ldr r0, _02245104 ; =0x0000213C
- ldr r1, [r5, r0]
- mov r0, #0x20
- tst r0, r1
- bne _02245070
- mov r0, #0x1f
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #9
- add r3, r7, #0
- bl MOD11_02246870
- cmp r0, #0
- beq _02245070
- ldr r0, [sp, #8]
- mov r6, #0
- cmp r0, #0
- ble _02245050
-_02245024:
- ldr r0, _02245108 ; =0x000021EC
- add r1, r5, r6
- ldrb r4, [r1, r0]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x1f
- bne _02245048
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022450F8 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02245048
- cmp r7, r4
- bne _02245050
-_02245048:
- ldr r0, [sp, #8]
- add r6, r6, #1
- cmp r6, r0
- blt _02245024
-_02245050:
- ldr r0, [r5, #0x6c]
- cmp r4, r0
- beq _022450F4
- mov r0, #0xb5
- lsl r0, r0, #2
- add r3, r5, r0
- mov r0, #0x1c
- add r2, r4, #0
- mul r2, r0
- ldr r1, [r3, r2]
- mov r0, #2
- orr r0, r1
- str r0, [r3, r2]
- add sp, #0x10
- str r4, [r5, #0x6c]
- pop {r3, r4, r5, r6, r7, pc}
-_02245070:
- ldr r0, [sp, #0xc]
- cmp r0, #0xb
- bne _022450F4
- lsl r0, r6, #4
- add r1, r5, r0
- ldr r0, _02245100 ; =0x000003E6
- ldrh r0, [r1, r0]
- cmp r0, #0
- beq _02245086
- cmp r0, #2
- bne _022450F4
-_02245086:
- ldr r0, _02245104 ; =0x0000213C
- ldr r1, [r5, r0]
- mov r0, #0x20
- tst r0, r1
- bne _022450F4
- mov r0, #0x72
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #9
- add r3, r7, #0
- bl MOD11_02246870
- cmp r0, #0
- beq _022450F4
- ldr r0, [sp, #8]
- mov r6, #0
- cmp r0, #0
- ble _022450D8
-_022450AC:
- ldr r0, _02245108 ; =0x000021EC
- add r1, r5, r6
- ldrb r4, [r1, r0]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x72
- bne _022450D0
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022450F8 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _022450D0
- cmp r7, r4
- bne _022450D8
-_022450D0:
- ldr r0, [sp, #8]
- add r6, r6, #1
- cmp r6, r0
- blt _022450AC
-_022450D8:
- ldr r0, [r5, #0x6c]
- cmp r4, r0
- beq _022450F4
- mov r0, #0xb5
- lsl r0, r0, #2
- add r3, r5, r0
- mov r0, #0x1c
- add r2, r4, #0
- mul r2, r0
- ldr r1, [r3, r2]
- mov r0, #4
- orr r0, r1
- str r0, [r3, r2]
- str r4, [r5, #0x6c]
-_022450F4:
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022450F8: .word 0x00002D8C
-_022450FC: .word 0x000003E2
-_02245100: .word 0x000003E6
-_02245104: .word 0x0000213C
-_02245108: .word 0x000021EC
-
- thumb_func_start MOD11_0224510C
-MOD11_0224510C: ; 0x0224510C
- push {r3, r4, r5, lr}
- ldr r0, _02245188 ; =0x0000216C
- add r4, r1, #0
- ldr r1, [r4, r0]
- ldr r0, _0224518C ; =0x801FDA49
- mov r2, #0
- tst r0, r1
- bne _0224514A
- mov r0, #0xb5
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r3, [r4, #0x6c]
- mov r0, #0x1c
- mul r0, r3
- ldr r3, [r1, r0]
- lsl r5, r3, #0x1e
- lsr r5, r5, #0x1f
- beq _0224514A
- mov r2, #2
- bic r3, r2
- str r3, [r1, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xb4
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r2, #1
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0224514A:
- ldr r0, _02245188 ; =0x0000216C
- ldr r1, [r4, r0]
- ldr r0, _0224518C ; =0x801FDA49
- tst r0, r1
- bne _02245182
- mov r0, #0xb5
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r3, [r4, #0x6c]
- mov r0, #0x1c
- mul r0, r3
- ldr r3, [r1, r0]
- lsl r5, r3, #0x1d
- lsr r5, r5, #0x1f
- beq _02245182
- mov r2, #4
- bic r3, r2
- str r3, [r1, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xb4
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r2, #1
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_02245182:
- add r0, r2, #0
- pop {r3, r4, r5, pc}
- nop
-_02245188: .word 0x0000216C
-_0224518C: .word 0x801FDA49
-
- thumb_func_start MOD11_02245190
-MOD11_02245190: ; 0x02245190
- push {r4, r5, r6, lr}
- add r6, r0, #0
- add r4, r2, #0
- mov r0, #0xc0
- add r5, r1, #0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022451BC ; =0x00002DB8
- ldrh r0, [r1, r0]
- cmp r0, #0
- bne _022451B0
- lsl r1, r4, #0x18
- add r0, r5, #0
- lsr r1, r1, #0x18
- bl MOD11_0224C83C
-_022451B0:
- add r0, r6, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_02256150
- pop {r4, r5, r6, pc}
- .align 2, 0
-_022451BC: .word 0x00002DB8
-
- thumb_func_start MOD11_022451C0
-MOD11_022451C0: ; 0x022451C0
- push {r4, r5}
- ldr r0, _022451E8 ; =0x00002DB0
- add r4, r2, #0
- add r5, r1, r0
- mov r0, #0xc0
- mul r4, r0
- mov r0, #1
- ldr r3, [r5, r4]
- lsl r0, r0, #0xc
- orr r0, r3
- str r0, [r5, r4]
- ldr r0, _022451EC ; =0x00003044
- lsl r2, r2, #2
- ldr r3, [r1, r0]
- add r1, r1, r2
- add r0, #8
- str r3, [r1, r0]
- pop {r4, r5}
- bx lr
- nop
-_022451E8: .word 0x00002DB0
-_022451EC: .word 0x00003044
-
- thumb_func_start MOD11_022451F0
-MOD11_022451F0: ; 0x022451F0
- push {r4, r5}
- ldr r4, _02245234 ; =0x00002DB0
- add r3, r2, #0
- mov r0, #0xc0
- mul r3, r0
- add r0, r1, r4
- ldr r5, [r0, r3]
- ldr r2, _02245238 ; =0xFFFFEFFF
- and r2, r5
- str r2, [r0, r3]
- ldr r5, [r0, r3]
- ldr r2, _0224523C ; =0xFFFFFCFF
- and r2, r5
- str r2, [r0, r3]
- add r0, r4, #0
- add r0, #0x10
- add r5, r1, r0
- ldr r2, [r5, r3]
- ldr r0, _02245240 ; =0xDFFBFF3F
- add r4, #0x18
- and r0, r2
- str r0, [r5, r3]
- add r2, r1, r4
- ldr r1, [r2, r3]
- ldr r0, _02245244 ; =0xFFFC7FFF
- and r0, r1
- str r0, [r2, r3]
- ldr r1, [r2, r3]
- ldr r0, _02245248 ; =0xFFE3FFFF
- and r0, r1
- str r0, [r2, r3]
- pop {r4, r5}
- bx lr
- nop
-_02245234: .word 0x00002DB0
-_02245238: .word 0xFFFFEFFF
-_0224523C: .word 0xFFFFFCFF
-_02245240: .word 0xDFFBFF3F
-_02245244: .word 0xFFFC7FFF
-_02245248: .word 0xFFE3FFFF
-
- thumb_func_start MOD11_0224524C
-MOD11_0224524C: ; 0x0224524C
- mov r2, #0xc0
- mul r2, r1
- add r1, r0, r2
- ldr r0, _02245298 ; =0x00002DAC
- ldr r0, [r1, r0]
- mov r1, #7
- tst r1, r0
- beq _02245260
- mov r0, #1
- bx lr
-_02245260:
- mov r1, #8
- tst r1, r0
- beq _0224526A
- mov r0, #2
- bx lr
-_0224526A:
- mov r1, #0x10
- tst r1, r0
- beq _02245274
- mov r0, #3
- bx lr
-_02245274:
- mov r1, #0x20
- tst r1, r0
- beq _0224527E
- mov r0, #4
- bx lr
-_0224527E:
- mov r1, #0x40
- tst r1, r0
- beq _02245288
- mov r0, #5
- bx lr
-_02245288:
- mov r1, #0x80
- tst r0, r1
- beq _02245292
- mov r0, #2
- bx lr
-_02245292:
- mov r0, #0
- bx lr
- nop
-_02245298: .word 0x00002DAC
-
- thumb_func_start MOD11_0224529C
-MOD11_0224529C: ; 0x0224529C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- str r0, [sp]
- add r7, r1, #0
- bl MOD11_0222FF74
- mov r1, #0x84
- tst r1, r0
- beq _022452B4
- add sp, #0xc
- mov r0, #0
- pop {r4, r5, r6, r7, pc}
-_022452B4:
- mov r1, #1
- add r2, r0, #0
- tst r2, r1
- bne _022452C2
- add sp, #0xc
- mov r0, #0
- pop {r4, r5, r6, r7, pc}
-_022452C2:
- mov r2, #2
- tst r0, r2
- beq _022452CE
- add sp, #0xc
- mov r0, #0
- pop {r4, r5, r6, r7, pc}
-_022452CE:
- ldr r0, [sp]
- bl MOD11_02230140
- str r0, [sp, #8]
- mov r0, #0
- str r0, [sp, #4]
-_022452DA:
- ldr r0, [sp, #4]
- cmp r0, #4
- bls _022452E2
- b _02245478
-_022452E2:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022452EE: ; jump table
- .short _022452F8 - _022452EE - 2 ; case 0
- .short _0224533C - _022452EE - 2 ; case 1
- .short _02245384 - _022452EE - 2 ; case 2
- .short _022453F8 - _022452EE - 2 ; case 3
- .short _02245478 - _022452EE - 2 ; case 4
-_022452F8:
- ldr r0, _02245488 ; =0x00002E7C
- ldrb r0, [r7, r0]
- cmp r0, #1
- bne _02245334
- mov r0, #0x85
- lsl r0, r0, #6
- ldr r1, [r7, r0]
- mov r0, #0x20
- tst r0, r1
- bne _02245334
- ldr r0, [sp, #8]
- mov r1, #0xd
- mov r2, #5
- bl FUN_0206ACD4
- cmp r0, #0
- beq _02245334
- mov r1, #0x85
- lsl r1, r1, #6
- ldr r2, [r7, r1]
- mov r0, #0x20
- orr r0, r2
- str r0, [r7, r1]
- mov r0, #0x13
- mov r1, #0xd
- lsl r0, r0, #4
- str r1, [r7, r0]
- add sp, #0xc
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02245334:
- ldr r0, [sp, #4]
- add r0, r0, #1
- str r0, [sp, #4]
- b _02245478
-_0224533C:
- ldr r1, _0224548C ; =0x00002E7D
- mov r0, #2
- ldrb r2, [r7, r1]
- tst r0, r2
- bne _0224537C
- add r0, r1, #0
- sub r0, #0x31
- sub r1, #0x2d
- ldr r2, [r7, r0]
- ldr r0, [r7, r1]
- lsr r0, r0, #1
- cmp r2, r0
- bhi _0224537C
- ldr r0, [sp, #8]
- mov r1, #0xe
- mov r2, #5
- bl FUN_0206ACD4
- cmp r0, #0
- beq _0224537C
- ldr r1, _0224548C ; =0x00002E7D
- mov r0, #2
- ldrb r2, [r7, r1]
- add sp, #0xc
- orr r0, r2
- strb r0, [r7, r1]
- mov r0, #0x13
- mov r1, #0xe
- lsl r0, r0, #4
- str r1, [r7, r0]
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_0224537C:
- ldr r0, [sp, #4]
- add r0, r0, #1
- str r0, [sp, #4]
- b _02245478
-_02245384:
- ldr r0, _0224548C ; =0x00002E7D
- ldrb r1, [r7, r0]
- mov r0, #3
- tst r0, r1
- bne _022453F0
- ldr r0, [sp]
- mov r1, #1
- bl MOD11_0222FF88
- mov r6, #0
- add r5, r0, #0
- add r4, r6, #0
- bl GetPartyCount
- cmp r0, #0
- ble _022453C6
-_022453A4:
- add r0, r5, #0
- add r1, r4, #0
- bl GetPartyMonByIndex
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _022453BA
- add r6, r6, #1
-_022453BA:
- add r0, r5, #0
- add r4, r4, #1
- bl GetPartyCount
- cmp r4, r0
- blt _022453A4
-_022453C6:
- cmp r6, #1
- bne _022453F0
- ldr r0, [sp, #8]
- mov r1, #0xf
- mov r2, #5
- bl FUN_0206ACD4
- cmp r0, #0
- beq _022453F0
- ldr r1, _0224548C ; =0x00002E7D
- mov r0, #3
- ldrb r2, [r7, r1]
- add sp, #0xc
- orr r0, r2
- strb r0, [r7, r1]
- mov r0, #0x13
- mov r1, #0xf
- lsl r0, r0, #4
- str r1, [r7, r0]
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_022453F0:
- ldr r0, [sp, #4]
- add r0, r0, #1
- str r0, [sp, #4]
- b _02245478
-_022453F8:
- ldr r0, _0224548C ; =0x00002E7D
- ldrb r1, [r7, r0]
- mov r0, #4
- tst r0, r1
- bne _02245472
- ldr r0, [sp]
- mov r1, #1
- bl MOD11_0222FF88
- mov r6, #0
- add r5, r0, #0
- add r4, r6, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0224543A
-_02245418:
- add r0, r5, #0
- add r1, r4, #0
- bl GetPartyMonByIndex
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _0224542E
- add r6, r6, #1
-_0224542E:
- add r0, r5, #0
- add r4, r4, #1
- bl GetPartyCount
- cmp r4, r0
- blt _02245418
-_0224543A:
- cmp r6, #1
- bne _02245472
- ldr r0, _02245490 ; =0x00002E4C
- ldr r1, [r7, r0]
- add r0, r0, #4
- ldr r0, [r7, r0]
- lsr r0, r0, #1
- cmp r1, r0
- bhi _02245472
- ldr r0, [sp, #8]
- mov r1, #0x10
- mov r2, #5
- bl FUN_0206ACD4
- cmp r0, #0
- beq _02245472
- ldr r1, _0224548C ; =0x00002E7D
- mov r0, #4
- ldrb r2, [r7, r1]
- add sp, #0xc
- orr r0, r2
- strb r0, [r7, r1]
- mov r0, #0x13
- mov r1, #0x10
- lsl r0, r0, #4
- str r1, [r7, r0]
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02245472:
- ldr r0, [sp, #4]
- add r0, r0, #1
- str r0, [sp, #4]
-_02245478:
- ldr r0, [sp, #4]
- cmp r0, #4
- beq _02245480
- b _022452DA
-_02245480:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02245488: .word 0x00002E7C
-_0224548C: .word 0x00002E7D
-_02245490: .word 0x00002E4C
-
- thumb_func_start MOD11_02245494
-MOD11_02245494: ; 0x02245494
- push {r3, r4, r5, r6, r7, lr}
- ldr r1, _02245574 ; =0x00002144
- add r5, r0, #0
- mov r4, #0
- add r0, r1, #0
- str r4, [r5, r1]
- mov r2, #1
- add r0, #0xc
- str r2, [r5, r0]
- add r0, r1, #0
- add r0, #8
- str r4, [r5, r0]
- add r0, r1, #0
- add r0, #0x10
- str r4, [r5, r0]
- add r0, r1, #0
- mov r2, #0xa
- add r0, #0x14
- str r2, [r5, r0]
- add r0, r1, #0
- add r0, #0x1c
- str r4, [r5, r0]
- add r0, r1, #0
- add r0, #0x20
- str r4, [r5, r0]
- add r0, r1, #0
- add r0, #0x28
- str r4, [r5, r0]
- mov r0, #0xff
- add r2, r1, #0
- str r0, [r5, #0x74]
- add r2, #0x2c
- str r4, [r5, r2]
- add r2, r1, #0
- add r2, #0x30
- str r4, [r5, r2]
- add r2, r1, #0
- add r2, #0x34
- str r4, [r5, r2]
- add r2, r5, #0
- add r2, #0x88
- str r4, [r2]
- add r2, r5, #0
- add r2, #0x8c
- str r4, [r2]
- add r2, r5, #0
- add r2, #0x94
- str r0, [r2]
- add r0, r1, #0
- add r0, #0x38
- strb r4, [r5, r0]
- add r0, r1, #0
- add r0, #0x39
- strb r4, [r5, r0]
- add r0, r1, #0
- add r0, #0x3a
- strb r4, [r5, r0]
- add r0, r1, #0
- add r0, #0x3c
- str r4, [r5, r0]
- add r0, r1, #0
- str r4, [r5, #0x38]
- add r0, #0x40
- str r4, [r5, r0]
- add r0, r1, #0
- add r0, #0x44
- str r4, [r5, r0]
- str r4, [r5, #0x10]
- str r4, [r5, #0x18]
- str r4, [r5, #0x20]
- str r4, [r5, #0x28]
- str r4, [r5, #0x30]
- str r4, [r5, #0x3c]
- str r4, [r5, #0x40]
- str r4, [r5, #0x48]
- str r4, [r5, #0x4c]
- str r4, [r5, #0x50]
- add r0, r1, #0
- str r4, [r5, #0x54]
- sub r0, #8
- ldr r2, [r5, r0]
- ldr r0, _02245578 ; =0xFF880000
- mov r7, #6
- and r2, r0
- add r0, r1, #0
- sub r0, #8
- str r2, [r5, r0]
- sub r0, r1, #4
- ldr r2, [r5, r0]
- ldr r0, _0224557C ; =0xFFFFFEA1
- and r2, r0
- sub r0, r1, #4
- str r2, [r5, r0]
- ldr r0, _02245580 ; =0x00003120
- strb r4, [r5, r0]
- mov r0, #0xb5
- lsl r0, r0, #2
- add r6, r5, r0
-_02245558:
- mov r0, #0
- add r1, r6, #0
- mov r2, #0x1c
- bl MIi_CpuClearFast
- add r1, r5, r4
- ldr r0, _02245584 ; =0x000021A4
- add r4, r4, #1
- add r6, #0x1c
- strb r7, [r1, r0]
- cmp r4, #4
- blt _02245558
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02245574: .word 0x00002144
-_02245578: .word 0xFF880000
-_0224557C: .word 0xFFFFFEA1
-_02245580: .word 0x00003120
-_02245584: .word 0x000021A4
-
- thumb_func_start MOD11_02245588
-MOD11_02245588: ; 0x02245588
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- str r0, [sp]
- mov r4, #0
- add r5, r6, #0
- mov r7, #0xff
-_02245594:
- ldr r0, _022455F0 ; =0x0000306C
- add r2, r6, r4
- strh r7, [r5, r0]
- ldr r0, _022455F4 ; =0x000021A0
- mov r1, #6
- strb r1, [r2, r0]
- bl rand_LC
- ldr r1, _022455F8 ; =0x0000310C
- add r4, r4, #1
- strh r0, [r5, r1]
- add r5, r5, #2
- cmp r4, #4
- blt _02245594
- ldr r0, _022455FC ; =0x00002168
- mov r1, #1
- str r1, [r6, r0]
- mov r0, #0x5d
- lsl r0, r0, #2
- str r1, [r6, r0]
- ldr r0, [sp]
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _022455E4
- add r0, r1, #0
- bl MaskOfFlagNo
- ldr r1, _02245600 ; =0x00003108
- ldrb r2, [r6, r1]
- orr r0, r2
- strb r0, [r6, r1]
- mov r0, #3
- bl MaskOfFlagNo
- ldr r1, _02245600 ; =0x00003108
- ldrb r2, [r6, r1]
- orr r0, r2
- strb r0, [r6, r1]
-_022455E4:
- ldr r0, _02245604 ; =0x0000311C
- mov r1, #6
- strb r1, [r6, r0]
- add r0, r0, #1
- strb r1, [r6, r0]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022455F0: .word 0x0000306C
-_022455F4: .word 0x000021A0
-_022455F8: .word 0x0000310C
-_022455FC: .word 0x00002168
-_02245600: .word 0x00003108
-_02245604: .word 0x0000311C
-
- thumb_func_start MOD11_02245608
-MOD11_02245608: ; 0x02245608
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x58
- str r1, [sp, #4]
- str r0, [sp]
- ldr r1, _0224594C ; =0x00002DC8
- ldr r0, [sp, #4]
- add r4, r2, #0
- add r1, r0, r1
- mov r0, #0xc0
- mul r0, r4
- add r5, r1, r0
- str r5, [sp, #0x14]
- add r3, sp, #0x20
- mov r2, #7
-_02245624:
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _02245624
- ldr r0, [sp]
- bl MOD11_0222FF84
- add r6, r0, #0
- ldr r0, [sp]
- bl MOD11_0222FF74
- ldr r1, [sp, #4]
- lsl r2, r4, #4
- add r1, r1, r2
- ldr r2, _02245950 ; =0x000021A8
- mov r0, #0x27
- str r0, [r1, r2]
- ldr r1, [sp, #4]
- sub r2, #0x6c
- ldr r1, [r1, r2]
- add r0, #0xd9
- tst r0, r1
- bne _022456E2
- mov r5, #0
- cmp r6, #0
- ble _022456BE
- ldr r1, [sp, #4]
- ldr r2, _02245954 ; =0x00002DCC
- add r0, r1, #0
- add r2, r0, r2
- mov r0, #0x18
- mov ip, r0
- mov r7, #3
-_02245666:
- ldr r0, _02245958 ; =0x00002DB0
- ldr r3, [r1, r0]
- mov r0, #1
- lsl r0, r0, #0x1a
- tst r0, r3
- beq _02245688
- ldr r0, [r2]
- lsl r0, r0, #0x16
- lsr r0, r0, #0x1e
- cmp r4, r0
- bne _02245688
- ldr r0, _02245958 ; =0x00002DB0
- ldr r3, [r1, r0]
- ldr r0, _0224595C ; =0xFBFFFFFF
- and r3, r0
- ldr r0, _02245958 ; =0x00002DB0
- str r3, [r1, r0]
-_02245688:
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r3, [r1, r0]
- mov r0, #0x18
- tst r0, r3
- beq _022456B4
- ldr r0, [r2]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1e
- cmp r4, r0
- bne _022456B4
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r0, [r1, r0]
- mov r3, ip
- bic r0, r3
- mov r3, #0xb7
- lsl r3, r3, #6
- str r0, [r1, r3]
- ldr r0, [r2]
- bic r0, r7
- str r0, [r2]
-_022456B4:
- add r5, r5, #1
- add r1, #0xc0
- add r2, #0xc0
- cmp r5, r6
- blt _02245666
-_022456BE:
- mov r0, #0xc0
- mul r0, r4
- str r0, [sp, #0xc]
- ldr r2, [sp, #4]
- ldr r1, [sp, #0xc]
- mov r0, #0
- add r1, r2, r1
- ldr r2, _02245958 ; =0x00002DB0
- str r0, [r1, r2]
- ldr r1, [sp, #4]
- add r2, #0x10
- add r2, r1, r2
- ldr r1, [sp, #0xc]
- add r1, r2, r1
- str r1, [sp, #0x10]
- ldr r1, [sp, #0xc]
- str r0, [r2, r1]
- b _0224575A
-_022456E2:
- mov r0, #0xc0
- mul r0, r4
- str r0, [sp, #0xc]
- ldr r1, _02245958 ; =0x00002DB0
- ldr r0, [sp, #4]
- ldr r2, [sp, #0xc]
- add r0, r0, r1
- ldr r3, [r0, r2]
- ldr r2, _02245960 ; =0x15100007
- and r3, r2
- ldr r2, [sp, #0xc]
- str r3, [r0, r2]
- add r2, r1, #0
- ldr r0, [sp, #4]
- add r2, #0x10
- add r0, r0, r2
- ldr r2, [sp, #0xc]
- add r2, r0, r2
- str r2, [sp, #0x10]
- ldr r2, [sp, #0xc]
- ldr r3, [r0, r2]
- ldr r2, _02245964 ; =0x0FA3843F
- and r3, r2
- ldr r2, [sp, #0xc]
- str r3, [r0, r2]
- mov r2, #0
- cmp r6, #0
- ble _0224575A
- ldr r0, [sp, #4]
- add r1, #0x1c
- add r3, r0, #0
- add r1, r3, r1
- mov r7, #0x18
-_02245724:
- mov r3, #0xb7
- lsl r3, r3, #6
- ldr r5, [r0, r3]
- mov r3, #0x18
- tst r3, r5
- beq _02245750
- ldr r3, [r1]
- lsl r3, r3, #0x1e
- lsr r3, r3, #0x1e
- cmp r4, r3
- bne _02245750
- mov r3, #0xb7
- lsl r3, r3, #6
- ldr r5, [r0, r3]
- bic r5, r7
- str r5, [r0, r3]
- ldr r5, [r0, r3]
- mov r3, #0x10
- orr r5, r3
- mov r3, #0xb7
- lsl r3, r3, #6
- str r5, [r0, r3]
-_02245750:
- add r2, r2, #1
- add r0, #0xc0
- add r1, #0xc0
- cmp r2, r6
- blt _02245724
-_0224575A:
- mov r0, #0
- str r0, [sp, #8]
- cmp r6, #0
- ble _022457C2
- ldr r5, [sp, #4]
- ldr r1, _02245954 ; =0x00002DCC
- add r0, r5, #0
- add r7, r0, r1
-_0224576A:
- add r0, r4, #0
- bl MaskOfFlagNo
- ldr r1, _02245958 ; =0x00002DB0
- lsl r0, r0, #0x10
- ldr r1, [r5, r1]
- tst r0, r1
- beq _02245792
- add r0, r4, #0
- bl MaskOfFlagNo
- ldr r1, _02245958 ; =0x00002DB0
- lsl r2, r0, #0x10
- mov r0, #0
- mvn r0, r0
- ldr r1, [r5, r1]
- eor r0, r2
- and r1, r0
- ldr r0, _02245958 ; =0x00002DB0
- str r1, [r5, r0]
-_02245792:
- ldr r0, _02245958 ; =0x00002DB0
- ldr r1, [r5, r0]
- mov r0, #0xe
- lsl r0, r0, #0xc
- tst r0, r1
- beq _022457B4
- ldr r0, [r7]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1e
- cmp r4, r0
- bne _022457B4
- ldr r0, _02245958 ; =0x00002DB0
- ldr r1, [r5, r0]
- ldr r0, _02245968 ; =0xFFFF1FFF
- and r1, r0
- ldr r0, _02245958 ; =0x00002DB0
- str r1, [r5, r0]
-_022457B4:
- ldr r0, [sp, #8]
- add r5, #0xc0
- add r0, r0, #1
- add r7, #0xc0
- str r0, [sp, #8]
- cmp r0, r6
- blt _0224576A
-_022457C2:
- mov r2, #0
- add r1, r2, #0
-_022457C6:
- ldr r0, [sp, #0x14]
- strb r1, [r0, r2]
- add r2, r2, #1
- cmp r2, #0x38
- blo _022457C6
- ldr r1, _0224596C ; =0x0000213C
- ldr r0, [sp, #4]
- ldr r1, [r0, r1]
- mov r0, #1
- lsl r0, r0, #8
- tst r0, r1
- beq _0224587A
- ldr r1, [sp, #4]
- ldr r0, [sp, #0xc]
- ldr r2, [sp, #0x38]
- add r0, r1, r0
- ldr r1, _02245970 ; =0x00002DE0
- str r2, [r0, r1]
- ldr r0, [sp, #4]
- sub r1, #0x14
- add r0, r0, r1
- ldr r1, [sp, #0xc]
- mov r2, #3
- ldr r1, [r0, r1]
- bic r1, r2
- ldr r2, [sp, #0x24]
- lsl r2, r2, #0x1e
- lsr r3, r2, #0x1e
- mov r2, #3
- and r2, r3
- orr r2, r1
- ldr r1, [sp, #0xc]
- str r2, [r0, r1]
- ldr r3, [sp, #0x20]
- ldr r1, [sp, #0x14]
- lsl r3, r3, #0x11
- lsr r3, r3, #0x1e
- lsl r3, r3, #0x1e
- ldr r1, [r1]
- ldr r2, _02245974 ; =0xFFFF9FFF
- lsr r3, r3, #0x11
- and r1, r2
- orr r3, r1
- ldr r1, [sp, #0x14]
- str r3, [r1]
- ldr r1, [sp, #0xc]
- ldr r3, [r0, r1]
- asr r1, r2, #5
- ldr r2, [sp, #0x24]
- and r1, r3
- lsl r2, r2, #0x16
- lsr r2, r2, #0x1e
- lsl r2, r2, #0x1e
- lsr r2, r2, #0x16
- orr r2, r1
- ldr r1, [sp, #0xc]
- str r2, [r0, r1]
- ldr r2, [r0, r1]
- ldr r1, _02245968 ; =0xFFFF1FFF
- and r1, r2
- ldr r2, [sp, #0x24]
- lsl r2, r2, #0x10
- lsr r2, r2, #0x1d
- lsl r2, r2, #0x1d
- lsr r2, r2, #0x10
- orr r2, r1
- ldr r1, [sp, #0xc]
- str r2, [r0, r1]
- ldr r3, [sp, #0x24]
- ldr r1, [r0, r1]
- lsl r3, r3, #0xa
- ldr r2, _02245978 ; =0xFFC7FFFF
- lsr r3, r3, #0x1d
- lsl r3, r3, #0x1d
- and r1, r2
- lsr r3, r3, #0xa
- orr r3, r1
- ldr r1, [sp, #0xc]
- str r3, [r0, r1]
- ldr r3, [r0, r1]
- asr r1, r2, #3
- ldr r2, [sp, #0x24]
- and r1, r3
- lsl r2, r2, #0xd
- lsr r2, r2, #0x1d
- lsl r2, r2, #0x1d
- lsr r2, r2, #0xd
- orr r2, r1
- ldr r1, [sp, #0xc]
- str r2, [r0, r1]
-_0224587A:
- mov r0, #0xc0
- add r3, r0, #0
- ldr r2, [sp, #4]
- add r3, #0x90
- ldr r2, [r2, r3]
- add r1, r4, #0
- ldr r3, [sp, #4]
- mul r1, r0
- add r5, r0, #0
- add r1, r3, r1
- ldr r3, _0224597C ; =0x00002DD4
- add r2, r2, #1
- str r2, [r1, r3]
- ldr r2, [sp, #4]
- add r5, #0x90
- ldr r2, [r2, r5]
- add r0, #0x90
- add r5, r2, #1
- add r2, r3, #4
- str r5, [r1, r2]
- ldr r1, [sp, #0x14]
- lsl r7, r4, #1
- ldr r2, [r1]
- ldr r1, _02245980 ; =0xBFFFFFFF
- mov r5, #0
- and r1, r2
- ldr r2, [sp, #4]
- ldr r0, [r2, r0]
- add r0, r0, #1
- lsl r0, r0, #0x1f
- lsr r0, r0, #1
- orr r1, r0
- ldr r0, [sp, #0x14]
- str r1, [r0]
- add r0, r2, #0
- ldr r1, _02245984 ; =0x0000305C
- add r3, r0, r7
- add r0, r1, #0
- strh r5, [r3, r1]
- add r0, #8
- strh r5, [r3, r0]
- add r0, r1, #0
- mov r2, #0xff
- add r0, #0x10
- strh r2, [r3, r0]
- add r0, r1, #0
- add r0, #0x18
- strh r5, [r3, r0]
- add r0, r1, #0
- add r0, #0x20
- strh r5, [r3, r0]
- add r0, r1, #0
- add r0, #0x28
- strh r5, [r3, r0]
- ldr r0, [sp, #4]
- lsl r2, r4, #3
- add r0, r0, r2
- add r2, r1, #0
- add r2, #0x30
- strh r5, [r0, r2]
- add r2, r1, #0
- add r2, #0x32
- strh r5, [r0, r2]
- add r2, r1, #0
- add r2, #0x34
- strh r5, [r0, r2]
- add r2, r1, #0
- add r2, #0x36
- strh r5, [r0, r2]
- add r0, r1, #0
- add r0, #0x50
- strh r5, [r3, r0]
- add r0, r1, #0
- add r0, #0x68
- strh r5, [r3, r0]
- add r0, r1, #0
- add r0, #0x70
- strh r5, [r3, r0]
- add r0, r1, #0
- add r0, #0x78
- strh r5, [r3, r0]
- add r1, #0x80
- add r0, r4, #0
- strh r5, [r3, r1]
- bl MaskOfFlagNo
- mov r1, #6
- lsl r3, r0, #8
- sub r0, r5, #1
- ldr r2, [sp, #4]
- lsl r1, r1, #6
- ldr r2, [r2, r1]
- eor r0, r3
- and r2, r0
- ldr r0, [sp, #4]
- str r2, [r0, r1]
- ldr r0, [sp, #0x10]
- ldr r1, [r0]
- mov r0, #2
- lsl r0, r0, #0x16
- tst r0, r1
- beq _022459A2
- ldr r0, _02245988 ; =0x00002D42
- b _0224598C
- nop
-_0224594C: .word 0x00002DC8
-_02245950: .word 0x000021A8
-_02245954: .word 0x00002DCC
-_02245958: .word 0x00002DB0
-_0224595C: .word 0xFBFFFFFF
-_02245960: .word 0x15100007
-_02245964: .word 0x0FA3843F
-_02245968: .word 0xFFFF1FFF
-_0224596C: .word 0x0000213C
-_02245970: .word 0x00002DE0
-_02245974: .word 0xFFFF9FFF
-_02245978: .word 0xFFC7FFFF
-_0224597C: .word 0x00002DD4
-_02245980: .word 0xBFFFFFFF
-_02245984: .word 0x0000305C
-_02245988: .word 0x00002D42
-_0224598C:
- ldr r1, [sp, #4]
- add r5, r1, r0
- ldr r1, [sp, #0xc]
- ldrh r3, [r5, r1]
- add r1, r0, #2
- ldr r0, [sp, #4]
- add r2, r0, r1
- ldr r0, [sp, #0xc]
- ldrh r1, [r2, r0]
- strh r1, [r5, r0]
- strh r3, [r2, r0]
-_022459A2:
- mov r5, #0
- cmp r6, #0
- ble _022459E6
- ldr r0, [sp, #4]
- str r0, [sp, #0x18]
- add r7, r0, r7
-_022459AE:
- cmp r5, r4
- beq _022459D2
- ldr r0, [sp]
- add r1, r5, #0
- bl MOD11_02230270
- str r0, [sp, #0x1c]
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_02230270
- ldr r1, [sp, #0x1c]
- cmp r1, r0
- beq _022459D2
- ldr r1, [sp, #0x18]
- ldr r0, _02245A08 ; =0x00003084
- mov r2, #0
- strh r2, [r1, r0]
-_022459D2:
- ldr r0, _02245A0C ; =0x0000308C
- mov r1, #0
- strh r1, [r7, r0]
- ldr r0, [sp, #0x18]
- add r5, r5, #1
- add r0, r0, #2
- str r0, [sp, #0x18]
- add r7, #8
- cmp r5, r6
- blt _022459AE
-_022459E6:
- lsl r1, r4, #0x18
- ldr r0, [sp, #4]
- lsr r1, r1, #0x18
- bl MOD11_0224C818
- lsl r1, r4, #0x18
- ldr r0, [sp, #4]
- lsr r1, r1, #0x18
- bl MOD11_0224C830
- lsl r1, r4, #0x18
- ldr r0, [sp, #4]
- lsr r1, r1, #0x18
- bl MOD11_0224C83C
- add sp, #0x58
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02245A08: .word 0x00003084
-_02245A0C: .word 0x0000308C
-
- thumb_func_start MOD11_02245A10
-MOD11_02245A10: ; 0x02245A10
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- str r1, [sp, #4]
- str r0, [sp]
- add r5, r2, #0
- bl MOD11_0222FF84
- str r0, [sp, #0xc]
- mov r0, #0xc0
- mul r0, r5
- ldr r1, [sp, #4]
- str r0, [sp, #8]
- add r3, r1, r0
- ldr r0, _02245C34 ; =0x00002D58
- mov r2, #0
- mov r1, #6
-_02245A30:
- add r2, r2, #1
- strb r1, [r3, r0]
- add r3, r3, #1
- cmp r2, #8
- blt _02245A30
- mov r0, #0xc0
- add r1, r5, #0
- mul r1, r0
- ldr r0, [sp, #4]
- mov r7, #0
- add r2, r0, r1
- ldr r1, _02245C38 ; =0x00002DB0
- add r0, r1, #0
- str r7, [r2, r1]
- add r0, #0x10
- str r7, [r2, r0]
- ldr r0, [sp, #0xc]
- cmp r0, #0
- ble _02245AD6
- ldr r4, [sp, #4]
- add r1, #0x1c
- add r0, r4, #0
- add r6, r0, r1
-_02245A5E:
- ldr r0, _02245C38 ; =0x00002DB0
- ldr r1, [r4, r0]
- mov r0, #1
- lsl r0, r0, #0x1a
- tst r0, r1
- beq _02245A80
- ldr r0, [r6]
- lsl r0, r0, #0x16
- lsr r0, r0, #0x1e
- cmp r5, r0
- bne _02245A80
- ldr r0, _02245C38 ; =0x00002DB0
- ldr r1, [r4, r0]
- ldr r0, _02245C3C ; =0xFBFFFFFF
- and r1, r0
- ldr r0, _02245C38 ; =0x00002DB0
- str r1, [r4, r0]
-_02245A80:
- add r0, r5, #0
- bl MaskOfFlagNo
- ldr r1, _02245C38 ; =0x00002DB0
- lsl r0, r0, #0x10
- ldr r1, [r4, r1]
- tst r0, r1
- beq _02245AA8
- add r0, r5, #0
- bl MaskOfFlagNo
- ldr r1, _02245C38 ; =0x00002DB0
- lsl r2, r0, #0x10
- mov r0, #0
- mvn r0, r0
- ldr r1, [r4, r1]
- eor r0, r2
- and r1, r0
- ldr r0, _02245C38 ; =0x00002DB0
- str r1, [r4, r0]
-_02245AA8:
- ldr r0, _02245C38 ; =0x00002DB0
- ldr r1, [r4, r0]
- mov r0, #0xe
- lsl r0, r0, #0xc
- tst r0, r1
- beq _02245ACA
- ldr r0, [r6]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1e
- cmp r5, r0
- bne _02245ACA
- ldr r0, _02245C38 ; =0x00002DB0
- ldr r1, [r4, r0]
- ldr r0, _02245C40 ; =0xFFFF1FFF
- and r1, r0
- ldr r0, _02245C38 ; =0x00002DB0
- str r1, [r4, r0]
-_02245ACA:
- ldr r0, [sp, #0xc]
- add r7, r7, #1
- add r4, #0xc0
- add r6, #0xc0
- cmp r7, r0
- blt _02245A5E
-_02245AD6:
- ldr r1, _02245C44 ; =0x00002DC8
- ldr r0, [sp, #4]
- add r1, r0, r1
- ldr r0, [sp, #8]
- add r6, r1, r0
- mov r1, #0
- add r0, r1, #0
-_02245AE4:
- strb r0, [r6, r1]
- add r1, r1, #1
- cmp r1, #0x38
- blo _02245AE4
- mov r2, #0x75
- ldr r1, [sp, #4]
- lsl r2, r2, #2
- add r2, r1, r2
- lsl r1, r5, #6
- add r1, r2, r1
- mov r4, #0
-_02245AFA:
- strb r4, [r1, r0]
- add r0, r0, #1
- cmp r0, #0x40
- blo _02245AFA
- mov r2, #0xc0
- add r3, r2, #0
- ldr r0, [sp, #4]
- add r3, #0x90
- ldr r0, [r0, r3]
- add r1, r5, #0
- ldr r3, [sp, #4]
- mul r1, r2
- add r3, r3, r1
- add r1, r2, #0
- ldr r7, _02245C48 ; =0x00002DD4
- add r0, r0, #1
- str r0, [r3, r7]
- ldr r0, [sp, #4]
- add r1, #0x90
- ldr r0, [r0, r1]
- add r1, r7, #4
- add r0, r0, #1
- str r0, [r3, r1]
- ldr r1, [r6]
- ldr r0, _02245C4C ; =0xBFFFFFFF
- add r2, #0x90
- and r0, r1
- ldr r1, [sp, #4]
- mov r3, #0xff
- ldr r1, [r1, r2]
- add r1, r1, #1
- lsl r1, r1, #0x1f
- lsr r1, r1, #1
- orr r0, r1
- str r0, [r6]
- ldr r0, [sp, #4]
- lsl r6, r5, #1
- add r2, r0, r6
- ldr r0, _02245C50 ; =0x0000305C
- add r1, r0, #0
- strh r4, [r2, r0]
- add r1, #8
- strh r4, [r2, r1]
- add r1, r0, #0
- add r1, #0x10
- strh r3, [r2, r1]
- add r1, r0, #0
- add r1, #0x18
- strh r4, [r2, r1]
- add r1, r0, #0
- add r1, #0x20
- strh r4, [r2, r1]
- add r1, r0, #0
- add r1, #0x28
- strh r4, [r2, r1]
- ldr r1, [sp, #4]
- lsl r3, r5, #3
- add r1, r1, r3
- add r3, r0, #0
- add r3, #0x30
- strh r4, [r1, r3]
- add r3, r0, #0
- add r3, #0x32
- strh r4, [r1, r3]
- add r3, r0, #0
- add r3, #0x34
- strh r4, [r1, r3]
- add r3, r0, #0
- add r3, #0x36
- strh r4, [r1, r3]
- add r1, r0, #0
- add r1, #0x50
- strh r4, [r2, r1]
- add r1, r0, #0
- add r1, #0x68
- strh r4, [r2, r1]
- add r1, r0, #0
- add r1, #0x70
- strh r4, [r2, r1]
- add r1, r0, #0
- add r1, #0x78
- strh r4, [r2, r1]
- add r0, #0x80
- strh r4, [r2, r0]
- add r0, r5, #0
- bl MaskOfFlagNo
- mov r1, #6
- lsl r3, r0, #8
- mov r0, #0
- mvn r0, r0
- ldr r2, [sp, #4]
- lsl r1, r1, #6
- ldr r2, [r2, r1]
- eor r0, r3
- and r2, r0
- ldr r0, [sp, #4]
- mov r4, #0
- str r2, [r0, r1]
- ldr r0, [sp, #0xc]
- cmp r0, #0
- ble _02245C00
- ldr r7, [sp, #4]
- add r0, r7, #0
- add r6, r0, r6
-_02245BCC:
- cmp r4, r5
- beq _02245BEE
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_02230270
- str r0, [sp, #0x10]
- ldr r0, [sp]
- add r1, r5, #0
- bl MOD11_02230270
- ldr r1, [sp, #0x10]
- cmp r1, r0
- beq _02245BEE
- ldr r0, _02245C54 ; =0x00003084
- mov r1, #0
- strh r1, [r7, r0]
-_02245BEE:
- ldr r0, _02245C58 ; =0x0000308C
- mov r1, #0
- strh r1, [r6, r0]
- ldr r0, [sp, #0xc]
- add r4, r4, #1
- add r7, r7, #2
- add r6, #8
- cmp r4, r0
- blt _02245BCC
-_02245C00:
- mov r1, #0x4f
- ldr r0, [sp, #4]
- lsl r1, r1, #2
- add r3, r0, r1
- lsl r2, r5, #2
- ldr r1, [r3, r2]
- mov r0, #1
- bic r1, r0
- str r1, [r3, r2]
- lsl r1, r5, #0x18
- ldr r0, [sp, #4]
- lsr r1, r1, #0x18
- bl MOD11_0224C818
- lsl r1, r5, #0x18
- ldr r0, [sp, #4]
- lsr r1, r1, #0x18
- bl MOD11_0224C830
- lsl r1, r5, #0x18
- ldr r0, [sp, #4]
- lsr r1, r1, #0x18
- bl MOD11_0224C83C
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02245C34: .word 0x00002D58
-_02245C38: .word 0x00002DB0
-_02245C3C: .word 0xFBFFFFFF
-_02245C40: .word 0xFFFF1FFF
-_02245C44: .word 0x00002DC8
-_02245C48: .word 0x00002DD4
-_02245C4C: .word 0xBFFFFFFF
-_02245C50: .word 0x0000305C
-_02245C54: .word 0x00003084
-_02245C58: .word 0x0000308C
-
- thumb_func_start MOD11_02245C5C
-MOD11_02245C5C: ; 0x02245C5C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- mov r0, #0x75
- add r5, r1, #0
- lsl r0, r0, #2
- add r7, r5, r0
- mov r0, #0xd1
- lsl r0, r0, #2
- add r6, r5, r0
- mov r0, #8
- add r4, r5, #0
- str r0, [sp, #8]
-_02245C7A:
- mov r0, #0
- add r1, r7, #0
- mov r2, #0x40
- bl MIi_CpuClearFast
- mov r0, #0
- add r1, r6, #0
- mov r2, #4
- bl MIi_CpuClearFast
- ldr r0, _02245D24 ; =0x00002DB0
- ldr r1, [r4, r0]
- ldr r0, [sp, #8]
- bic r1, r0
- ldr r0, _02245D24 ; =0x00002DB0
- str r1, [r4, r0]
- add r0, #0x20
- ldr r0, [r4, r0]
- add r1, r0, #1
- mov r0, #0x15
- lsl r0, r0, #4
- ldr r0, [r5, r0]
- cmp r1, r0
- bge _02245CB6
- ldr r0, _02245D24 ; =0x00002DB0
- ldr r1, [r4, r0]
- ldr r0, _02245D28 ; =0xFFBFFFFF
- and r1, r0
- ldr r0, _02245D24 ; =0x00002DB0
- str r1, [r4, r0]
-_02245CB6:
- ldr r0, _02245D2C ; =0x00002DAC
- ldr r1, [r4, r0]
- mov r0, #7
- tst r0, r1
- beq _02245CD6
- ldr r0, _02245D24 ; =0x00002DB0
- ldr r1, [r4, r0]
- mov r0, #1
- lsl r0, r0, #0xc
- tst r0, r1
- beq _02245CD6
- ldr r0, [sp]
- ldr r2, [sp, #4]
- add r1, r5, #0
- bl MOD11_022451F0
-_02245CD6:
- ldr r0, _02245D2C ; =0x00002DAC
- ldr r1, [r4, r0]
- mov r0, #7
- tst r0, r1
- beq _02245CF8
- ldr r0, _02245D24 ; =0x00002DB0
- ldr r1, [r4, r0]
- mov r0, #3
- lsl r0, r0, #0xa
- tst r0, r1
- beq _02245CF8
- ldr r0, _02245D24 ; =0x00002DB0
- ldr r1, [r4, r0]
- ldr r0, _02245D30 ; =0xFFFFF3FF
- and r1, r0
- ldr r0, _02245D24 ; =0x00002DB0
- str r1, [r4, r0]
-_02245CF8:
- ldr r0, [sp, #4]
- add r7, #0x40
- add r0, r0, #1
- add r6, r6, #4
- add r4, #0xc0
- str r0, [sp, #4]
- cmp r0, #4
- blt _02245C7A
- mov r2, #0x71
- lsl r2, r2, #2
- ldr r0, [r5, r2]
- ldr r1, _02245D34 ; =0xFFEFFFFF
- and r0, r1
- str r0, [r5, r2]
- add r0, r2, #0
- add r0, #8
- ldr r0, [r5, r0]
- add r2, #8
- and r0, r1
- str r0, [r5, r2]
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02245D24: .word 0x00002DB0
-_02245D28: .word 0xFFBFFFFF
-_02245D2C: .word 0x00002DAC
-_02245D30: .word 0xFFFFF3FF
-_02245D34: .word 0xFFEFFFFF
-
- thumb_func_start MOD11_02245D38
-MOD11_02245D38: ; 0x02245D38
- push {r4, r5, r6, r7, lr}
- sub sp, #0x5c
- str r0, [sp]
- ldr r0, [sp, #0x70]
- add r7, r1, #0
- str r0, [sp, #0x70]
- str r2, [sp, #4]
- add r0, r7, #0
- add r1, r2, #0
- add r5, r3, #0
- bl MOD11_02249D90
- str r0, [sp, #0x34]
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- add r4, r7, r1
- str r1, [sp, #0x38]
- ldr r0, [sp, #0x70]
- mov r1, #1
- and r0, r1
- str r0, [sp, #0x2c]
- ldr r0, [sp, #0x70]
- mov r1, #2
- and r0, r1
- str r0, [sp, #0x28]
- ldr r0, [sp, #0x70]
- mov r1, #4
- and r0, r1
- str r0, [sp, #0x24]
- ldr r0, [sp, #4]
- mov r1, #8
- lsl r0, r0, #1
- add r0, r7, r0
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x70]
- mov r2, #0x10
- and r0, r1
- ldr r1, _02245F50 ; =0x00002DC8
- str r0, [sp, #0x1c]
- add r0, r7, r1
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x70]
- sub r1, #0x88
- and r0, r2
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x70]
- mov r2, #0x20
- and r0, r2
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x70]
- mov r2, #0x40
- and r0, r2
- str r0, [sp, #0x10]
- ldr r2, [sp, #0x70]
- mov r0, #0x80
- and r2, r0
- str r2, [sp, #0xc]
- lsl r2, r0, #2
- ldr r0, [sp, #0x70]
- mov r6, #0
- and r0, r2
- str r0, [sp, #8]
- add r0, r7, r1
- str r0, [sp, #0x40]
- ldr r0, _02245F54 ; =0x00002DE8
- str r4, [sp, #0x30]
- add r0, r4, r0
- str r0, [sp, #0x44]
- ldr r0, _02245F58 ; =0x00002DB0
- add r0, r4, r0
- str r0, [sp, #0x48]
- ldr r0, _02245F5C ; =0x00002DEC
- add r0, r4, r0
- str r0, [sp, #0x4c]
- ldr r0, _02245F60 ; =0x00002DF8
- add r0, r4, r0
- str r0, [sp, #0x50]
- ldr r0, _02245F60 ; =0x00002DF8
- add r0, r4, r0
- str r0, [sp, #0x58]
- ldr r0, _02245F60 ; =0x00002DF8
- add r0, r4, r0
- str r0, [sp, #0x54]
-_02245DE0:
- ldr r0, _02245F64 ; =0x00002D4C
- ldrh r0, [r4, r0]
- cmp r0, #0
- bne _02245DF6
- ldr r0, [sp, #0x2c]
- cmp r0, #0
- beq _02245DF6
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r5, r0
-_02245DF6:
- ldr r1, [sp, #0x30]
- ldr r0, _02245F68 ; =0x00002D6C
- ldrb r0, [r1, r0]
- cmp r0, #0
- bne _02245E0E
- ldr r0, [sp, #0x28]
- cmp r0, #0
- beq _02245E0E
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r5, r0
-_02245E0E:
- ldr r0, [sp, #0x44]
- ldrh r1, [r0]
- ldr r0, _02245F64 ; =0x00002D4C
- ldrh r0, [r4, r0]
- cmp r1, r0
- bne _02245E28
- ldr r0, [sp, #0x24]
- cmp r0, #0
- beq _02245E28
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r5, r0
-_02245E28:
- ldr r1, [sp, #0x20]
- ldr r0, _02245F6C ; =0x0000307C
- ldrh r1, [r1, r0]
- ldr r0, _02245F64 ; =0x00002D4C
- ldrh r0, [r4, r0]
- cmp r1, r0
- bne _02245E50
- ldr r0, [sp, #0x1c]
- cmp r0, #0
- beq _02245E50
- ldr r0, [sp, #0x48]
- ldr r1, [r0]
- mov r0, #2
- lsl r0, r0, #0x1e
- tst r0, r1
- beq _02245E50
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r5, r0
-_02245E50:
- ldr r1, [sp, #0x3c]
- ldr r0, [sp, #0x38]
- ldr r0, [r1, r0]
- lsl r0, r0, #0x15
- lsr r0, r0, #0x1d
- beq _02245E7A
- ldr r0, [sp, #0x18]
- cmp r0, #0
- beq _02245E7A
- ldr r0, _02245F64 ; =0x00002D4C
- ldrh r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r7, r0
- ldr r0, _02245F70 ; =0x000003E1
- ldrb r0, [r1, r0]
- cmp r0, #0
- bne _02245E7A
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r5, r0
-_02245E7A:
- ldr r3, _02245F64 ; =0x00002D4C
- ldr r0, [sp]
- ldrh r3, [r4, r3]
- ldr r2, [sp, #4]
- add r1, r7, #0
- bl MOD11_022471C4
- cmp r0, #0
- beq _02245E9A
- ldr r0, [sp, #0x14]
- cmp r0, #0
- beq _02245E9A
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r5, r0
-_02245E9A:
- ldr r3, _02245F64 ; =0x00002D4C
- ldr r0, [sp]
- ldrh r3, [r4, r3]
- ldr r2, [sp, #4]
- add r1, r7, #0
- bl MOD11_02247314
- cmp r0, #0
- beq _02245EBA
- ldr r0, [sp, #0x10]
- cmp r0, #0
- beq _02245EBA
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r5, r0
-_02245EBA:
- ldr r3, _02245F64 ; =0x00002D4C
- ldr r0, [sp]
- ldrh r3, [r4, r3]
- ldr r2, [sp, #4]
- add r1, r7, #0
- bl MOD11_02247348
- cmp r0, #0
- beq _02245EDA
- ldr r0, [sp, #0xc]
- cmp r0, #0
- beq _02245EDA
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r5, r0
-_02245EDA:
- ldr r0, [sp, #0x4c]
- ldrh r1, [r0]
- cmp r1, #0
- beq _02245EF2
- ldr r0, _02245F64 ; =0x00002D4C
- ldrh r0, [r4, r0]
- cmp r1, r0
- beq _02245EF2
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r5, r0
-_02245EF2:
- ldr r0, [sp, #0x34]
- cmp r0, #0x36
- beq _02245F00
- cmp r0, #0x72
- beq _02245F00
- cmp r0, #0x7c
- bne _02245F38
-_02245F00:
- ldr r0, [sp, #8]
- cmp r0, #0
- beq _02245F38
- ldr r1, [sp, #0x40]
- ldr r0, [sp, #0x38]
- add r0, r1, r0
- ldr r1, [sp, #0x50]
- ldrh r1, [r1]
- bl MOD11_022461AC
- cmp r0, #4
- bne _02245F20
- ldr r0, [sp, #0x54]
- mov r1, #0
- strh r1, [r0]
- b _02245F38
-_02245F20:
- ldr r0, [sp, #0x58]
- ldrh r1, [r0]
- cmp r1, #0
- beq _02245F38
- ldr r0, _02245F64 ; =0x00002D4C
- ldrh r0, [r4, r0]
- cmp r1, r0
- beq _02245F38
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r5, r0
-_02245F38:
- ldr r0, [sp, #0x30]
- add r6, r6, #1
- add r0, r0, #1
- add r4, r4, #2
- str r0, [sp, #0x30]
- cmp r6, #4
- bge _02245F48
- b _02245DE0
-_02245F48:
- add r0, r5, #0
- add sp, #0x5c
- pop {r4, r5, r6, r7, pc}
- nop
-_02245F50: .word 0x00002DC8
-_02245F54: .word 0x00002DE8
-_02245F58: .word 0x00002DB0
-_02245F5C: .word 0x00002DEC
-_02245F60: .word 0x00002DF8
-_02245F64: .word 0x00002D4C
-_02245F68: .word 0x00002D6C
-_02245F6C: .word 0x0000307C
-_02245F70: .word 0x000003E1
-
- thumb_func_start MOD11_02245F74
-MOD11_02245F74: ; 0x02245F74
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- add r7, r3, #0
- mov r3, #1
- str r3, [sp, #8]
- mov r3, #4
- str r3, [sp]
- mov r3, #0
- str r0, [sp, #4]
- add r5, r1, #0
- add r6, r2, #0
- ldr r4, [sp, #0x40]
- bl MOD11_02245D38
- str r0, [sp, #0xc]
- add r0, r7, #0
- bl MaskOfFlagNo
- ldr r1, [sp, #0xc]
- tst r0, r1
- beq _02245FC6
- mov r0, #0xa
- strb r0, [r4, #1]
- ldr r0, _02246188 ; =0x00000261
- add r1, r6, #0
- strh r0, [r4, #2]
- add r0, r5, #0
- bl MOD11_0224682C
- str r0, [r4, #4]
- mov r0, #0xc0
- mul r0, r6
- add r1, r5, r0
- lsl r0, r7, #1
- add r1, r1, r0
- ldr r0, _0224618C ; =0x00002D4C
- ldrh r0, [r1, r0]
- str r0, [r4, #8]
- mov r0, #0
- str r0, [sp, #8]
- b _02246182
-_02245FC6:
- mov r0, #8
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r6, #0
- mov r3, #0
- bl MOD11_02245D38
- str r0, [sp, #0x10]
- add r0, r7, #0
- bl MaskOfFlagNo
- ldr r1, [sp, #0x10]
- tst r0, r1
- beq _02245FFE
- mov r0, #2
- strb r0, [r4, #1]
- mov r0, #0x99
- lsl r0, r0, #2
- strh r0, [r4, #2]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0224682C
- str r0, [r4, #4]
- mov r0, #0
- str r0, [sp, #8]
- b _02246182
-_02245FFE:
- mov r0, #0x10
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r6, #0
- mov r3, #0
- bl MOD11_02245D38
- str r0, [sp, #0x14]
- add r0, r7, #0
- bl MaskOfFlagNo
- ldr r1, [sp, #0x14]
- tst r0, r1
- beq _02246044
- mov r0, #0xa
- strb r0, [r4, #1]
- ldr r0, _02246190 ; =0x00000265
- add r1, r6, #0
- strh r0, [r4, #2]
- add r0, r5, #0
- bl MOD11_0224682C
- str r0, [r4, #4]
- mov r0, #0xc0
- mul r0, r6
- add r1, r5, r0
- lsl r0, r7, #1
- add r1, r1, r0
- ldr r0, _0224618C ; =0x00002D4C
- ldrh r0, [r1, r0]
- str r0, [r4, #8]
- mov r0, #0
- str r0, [sp, #8]
- b _02246182
-_02246044:
- mov r0, #0x20
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r6, #0
- mov r3, #0
- bl MOD11_02245D38
- str r0, [sp, #0x18]
- add r0, r7, #0
- bl MaskOfFlagNo
- ldr r1, [sp, #0x18]
- tst r0, r1
- beq _0224608C
- mov r0, #0xa
- strb r0, [r4, #1]
- mov r0, #0x9a
- lsl r0, r0, #2
- strh r0, [r4, #2]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0224682C
- str r0, [r4, #4]
- mov r0, #0xc0
- mul r0, r6
- add r1, r5, r0
- lsl r0, r7, #1
- add r1, r1, r0
- ldr r0, _0224618C ; =0x00002D4C
- ldrh r0, [r1, r0]
- str r0, [r4, #8]
- mov r0, #0
- str r0, [sp, #8]
- b _02246182
-_0224608C:
- mov r0, #0x40
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r6, #0
- mov r3, #0
- bl MOD11_02245D38
- str r0, [sp, #0x1c]
- add r0, r7, #0
- bl MaskOfFlagNo
- ldr r1, [sp, #0x1c]
- tst r0, r1
- beq _022460D2
- mov r0, #0xa
- strb r0, [r4, #1]
- ldr r0, _02246194 ; =0x000003E9
- add r1, r6, #0
- strh r0, [r4, #2]
- add r0, r5, #0
- bl MOD11_0224682C
- str r0, [r4, #4]
- mov r0, #0xc0
- mul r0, r6
- add r1, r5, r0
- lsl r0, r7, #1
- add r1, r1, r0
- ldr r0, _0224618C ; =0x00002D4C
- ldrh r0, [r1, r0]
- str r0, [r4, #8]
- mov r0, #0
- str r0, [sp, #8]
- b _02246182
-_022460D2:
- mov r0, #0x80
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r6, #0
- mov r3, #0
- bl MOD11_02245D38
- str r0, [sp, #0x20]
- add r0, r7, #0
- bl MaskOfFlagNo
- ldr r1, [sp, #0x20]
- tst r0, r1
- beq _0224611C
- mov r0, #0x22
- strb r0, [r4, #1]
- ldr r0, _02246198 ; =0x00000421
- add r1, r6, #0
- strh r0, [r4, #2]
- add r0, r5, #0
- bl MOD11_0224682C
- str r0, [r4, #4]
- ldr r0, _0224619C ; =0x00000179
- str r0, [r4, #8]
- mov r0, #0xc0
- mul r0, r6
- add r1, r5, r0
- lsl r0, r7, #1
- add r1, r1, r0
- ldr r0, _0224618C ; =0x00002D4C
- ldrh r0, [r1, r0]
- str r0, [r4, #0xc]
- mov r0, #0
- str r0, [sp, #8]
- b _02246182
-_0224611C:
- mov r0, #2
- lsl r0, r0, #8
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r6, #0
- mov r3, #0
- bl MOD11_02245D38
- str r0, [sp, #0x24]
- add r0, r7, #0
- bl MaskOfFlagNo
- ldr r1, [sp, #0x24]
- tst r0, r1
- beq _0224615C
- mov r0, #0x18
- strb r0, [r4, #1]
- ldr r0, _022461A0 ; =0x0000038F
- strh r0, [r4, #2]
- mov r0, #0xc0
- mul r0, r6
- add r2, r5, r0
- ldr r0, _022461A4 ; =0x00002DB8
- ldrh r1, [r2, r0]
- add r0, #0x40
- str r1, [r4, #4]
- ldrh r0, [r2, r0]
- str r0, [r4, #8]
- mov r0, #0
- str r0, [sp, #8]
- b _02246182
-_0224615C:
- mov r0, #2
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r6, #0
- mov r3, #0
- bl MOD11_02245D38
- add r5, r0, #0
- add r0, r7, #0
- bl MaskOfFlagNo
- tst r0, r5
- beq _02246182
- mov r0, #0
- str r0, [sp, #8]
- strb r0, [r4, #1]
- ldr r0, _022461A8 ; =0x00000337
- strh r0, [r4, #2]
-_02246182:
- ldr r0, [sp, #8]
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02246188: .word 0x00000261
-_0224618C: .word 0x00002D4C
-_02246190: .word 0x00000265
-_02246194: .word 0x000003E9
-_02246198: .word 0x00000421
-_0224619C: .word 0x00000179
-_022461A0: .word 0x0000038F
-_022461A4: .word 0x00002DB8
-_022461A8: .word 0x00000337
-
- thumb_func_start MOD11_022461AC
-MOD11_022461AC: ; 0x022461AC
- mov r3, #0
-_022461AE:
- ldrh r2, [r0, #0xc]
- cmp r1, r2
- beq _022461BC
- add r3, r3, #1
- add r0, r0, #2
- cmp r3, #4
- blt _022461AE
-_022461BC:
- add r0, r3, #0
- bx lr
-
- thumb_func_start MOD11_022461C0
-MOD11_022461C0: ; 0x022461C0
- push {r4, r5, r6, lr}
- add r6, r2, #0
- add r1, r6, #0
- add r5, r0, #0
- add r4, r3, #0
- bl MOD11_02249D90
- mov r1, #1
- cmp r0, #0x69
- beq _022461E6
- mov r0, #0xc0
- mul r0, r6
- add r2, r5, r0
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r2, [r2, r0]
- lsl r0, r1, #0xa
- tst r0, r2
- beq _022461FC
-_022461E6:
- lsl r0, r4, #1
- add r2, r4, r0
- ldr r0, _0224626C ; =0x0225E379
- ldrb r0, [r0, r2]
- cmp r0, #2
- bne _022461FC
- ldr r0, _02246270 ; =0x0225E37A
- ldrb r0, [r0, r2]
- cmp r0, #0
- bne _022461FC
- mov r1, #0
-_022461FC:
- lsl r0, r6, #6
- add r2, r5, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r2, r0]
- lsl r0, r0, #0x19
- lsr r0, r0, #0x1f
- beq _0224621A
- lsl r0, r4, #1
- add r2, r4, r0
- ldr r0, _0224626C ; =0x0225E379
- ldrb r0, [r0, r2]
- cmp r0, #2
- bne _0224621A
- mov r1, #0
-_0224621A:
- mov r0, #6
- lsl r0, r0, #6
- ldr r2, [r5, r0]
- mov r0, #7
- lsl r0, r0, #0xc
- tst r0, r2
- beq _0224623E
- lsl r0, r4, #1
- add r2, r4, r0
- ldr r0, _0224626C ; =0x0225E379
- ldrb r0, [r0, r2]
- cmp r0, #2
- bne _0224623E
- ldr r0, _02246270 ; =0x0225E37A
- ldrb r0, [r0, r2]
- cmp r0, #0
- bne _0224623E
- mov r1, #0
-_0224623E:
- mov r0, #0xc0
- mul r0, r6
- add r2, r5, r0
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r2, [r2, r0]
- mov r0, #1
- lsl r0, r0, #0x16
- tst r0, r2
- beq _02246268
- lsl r0, r4, #1
- add r2, r4, r0
- ldr r0, _0224626C ; =0x0225E379
- ldrb r0, [r0, r2]
- cmp r0, #0x11
- bne _02246268
- ldr r0, _02246270 ; =0x0225E37A
- ldrb r0, [r0, r2]
- cmp r0, #0
- bne _02246268
- mov r1, #0
-_02246268:
- add r0, r1, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0224626C: .word 0x0225E379
-_02246270: .word 0x0225E37A
-
- thumb_func_start MOD11_02246274
-MOD11_02246274: ; 0x02246274
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x30
- ldr r0, [sp, #0x50]
- add r5, r1, #0
- str r0, [sp, #0x50]
- ldr r0, [sp, #0x54]
- str r2, [sp, #8]
- str r0, [sp, #0x54]
- add r0, r2, #0
- add r4, r3, #0
- ldr r7, [sp, #0x48]
- ldr r6, [sp, #0x4c]
- cmp r0, #0xa5
- bne _02246296
- ldr r0, [sp, #0x50]
- add sp, #0x30
- pop {r3, r4, r5, r6, r7, pc}
-_02246296:
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_02249D90
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x24]
- add r0, r5, #0
- add r1, r7, #0
- mov r2, #0
- bl MOD11_02249DA4
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x1c]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02249D90
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x20]
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0
- bl MOD11_02249DA4
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_02246D1C
- cmp r0, #0x60
- bne _022462DE
- mov r0, #0
- str r0, [sp, #0x28]
- b _022462F6
-_022462DE:
- cmp r4, #0
- beq _022462EA
- lsl r0, r4, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x28]
- b _022462F6
-_022462EA:
- ldr r0, [sp, #8]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02246588 ; =0x000003E2
- ldrb r0, [r1, r0]
- str r0, [sp, #0x28]
-_022462F6:
- ldr r0, [sp, #8]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _0224658C ; =0x000003E1
- ldrb r0, [r1, r0]
- str r0, [sp, #0x14]
- ldr r0, _02246590 ; =0x0000213C
- ldr r1, [r5, r0]
- mov r0, #2
- lsl r0, r0, #0xa
- tst r0, r1
- bne _02246354
- add r0, r5, #0
- add r1, r7, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- ldr r1, [sp, #0x28]
- cmp r1, r0
- beq _02246332
- add r0, r5, #0
- add r1, r7, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- ldr r1, [sp, #0x28]
- cmp r1, r0
- bne _02246354
-_02246332:
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_02246D1C
- cmp r0, #0x5b
- bne _02246346
- ldr r0, [sp, #0x50]
- lsl r0, r0, #1
- str r0, [sp, #0x50]
- b _02246354
-_02246346:
- ldr r1, [sp, #0x50]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- str r0, [sp, #0x50]
-_02246354:
- add r0, r5, #0
- add r1, r7, #0
- add r2, r6, #0
- mov r3, #0x1a
- bl MOD11_02246D84
- cmp r0, #1
- bne _02246380
- ldr r0, [sp, #0x28]
- cmp r0, #4
- bne _02246380
- ldr r0, [sp, #0x20]
- cmp r0, #0x69
- beq _02246380
- ldr r0, [sp, #0x54]
- ldr r1, [r0]
- mov r0, #2
- lsl r0, r0, #0xa
- orr r1, r0
- ldr r0, [sp, #0x54]
- str r1, [r0]
- b _0224649C
-_02246380:
- mov r0, #0xc0
- add r1, r6, #0
- mul r1, r0
- ldr r0, _02246594 ; =0x00002DCC
- add r3, r5, r1
- ldr r2, [r3, r0]
- lsl r2, r2, #0x10
- lsr r2, r2, #0x1d
- beq _022463B8
- sub r0, #0xc
- ldr r2, [r3, r0]
- mov r0, #1
- lsl r0, r0, #0xa
- tst r2, r0
- bne _022463B8
- ldr r2, [sp, #0x28]
- cmp r2, #4
- bne _022463B8
- ldr r2, [sp, #0x20]
- cmp r2, #0x69
- beq _022463B8
- ldr r1, [sp, #0x54]
- lsl r0, r0, #0xa
- ldr r1, [r1]
- orr r1, r0
- ldr r0, [sp, #0x54]
- str r1, [r0]
- b _0224649C
-_022463B8:
- add r0, r5, r1
- mov r4, #0
- str r0, [sp, #0x18]
-_022463BE:
- lsl r0, r4, #1
- ldr r1, _02246598 ; =0x0225E378
- add r0, r4, r0
- add r1, r1, r0
- str r1, [sp, #0xc]
- ldr r1, _02246598 ; =0x0225E378
- ldrb r1, [r1, r0]
- cmp r1, #0xfe
- bne _022463EE
- ldr r1, [sp, #0x18]
- ldr r0, _0224659C ; =0x00002DB0
- ldr r1, [r1, r0]
- mov r0, #2
- lsl r0, r0, #0x1c
- tst r0, r1
- bne _0224649C
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_02246D1C
- cmp r0, #0x71
- beq _0224649C
- add r4, r4, #1
- b _02246490
-_022463EE:
- ldr r0, [sp, #0x28]
- cmp r0, r1
- bne _0224648E
- ldr r0, [sp, #0xc]
- add r1, r6, #0
- ldrb r0, [r0, #1]
- mov r2, #0x1b
- mov r3, #0
- str r0, [sp, #0x10]
- add r0, r5, #0
- bl MOD11_02243420
- ldr r1, [sp, #0x10]
- cmp r1, r0
- bne _02246434
- add r0, r5, #0
- add r1, r7, #0
- add r2, r6, #0
- add r3, r4, #0
- bl MOD11_022461C0
- cmp r0, #1
- bne _02246434
- ldr r0, [sp, #0x14]
- ldr r2, [sp, #0xc]
- str r0, [sp]
- ldr r0, [sp, #0x54]
- ldr r3, [sp, #0x50]
- str r0, [sp, #4]
- ldrb r2, [r2, #2]
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_0224C648
- str r0, [sp, #0x50]
-_02246434:
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- ldr r1, [sp, #0x10]
- cmp r1, r0
- bne _0224648E
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- str r0, [sp, #0x2c]
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- ldr r1, [sp, #0x2c]
- cmp r1, r0
- beq _0224648E
- add r0, r5, #0
- add r1, r7, #0
- add r2, r6, #0
- add r3, r4, #0
- bl MOD11_022461C0
- cmp r0, #1
- bne _0224648E
- ldr r0, [sp, #0x14]
- ldr r2, [sp, #0xc]
- str r0, [sp]
- ldr r0, [sp, #0x54]
- ldr r3, [sp, #0x50]
- str r0, [sp, #4]
- ldrb r2, [r2, #2]
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_0224C648
- str r0, [sp, #0x50]
-_0224648E:
- add r4, r4, #1
-_02246490:
- lsl r0, r4, #1
- add r1, r4, r0
- ldr r0, _02246598 ; =0x0225E378
- ldrb r0, [r0, r1]
- cmp r0, #0xff
- bne _022463BE
-_0224649C:
- add r0, r5, #0
- add r1, r7, #0
- add r2, r6, #0
- mov r3, #0x19
- bl MOD11_02246D84
- cmp r0, #1
- bne _022464E0
- ldr r1, [sp, #8]
- add r0, r5, #0
- bl MOD11_0224C6D4
- cmp r0, #0
- beq _022464E0
- ldr r0, [sp, #0x54]
- ldr r1, [r0]
- mov r0, #2
- tst r0, r1
- beq _022464CA
- mov r0, #6
- and r0, r1
- cmp r0, #6
- bne _022464E0
-_022464CA:
- ldr r0, [sp, #0x14]
- cmp r0, #0
- beq _022464E0
- ldr r0, [sp, #0x54]
- ldr r1, [r0]
- mov r0, #1
- lsl r0, r0, #0x12
- orr r1, r0
- ldr r0, [sp, #0x54]
- str r1, [r0]
- b _02246582
-_022464E0:
- ldr r0, _02246590 ; =0x0000213C
- ldr r2, [r5, r0]
- mov r0, #2
- lsl r0, r0, #0xa
- add r1, r2, #0
- tst r1, r0
- bne _0224656E
- lsl r0, r0, #4
- tst r0, r2
- bne _0224656E
- ldr r0, [sp, #0x54]
- ldr r1, [r0]
- mov r0, #2
- tst r0, r1
- beq _0224654A
- ldr r0, [sp, #0x14]
- cmp r0, #0
- beq _0224654A
- add r0, r5, #0
- add r1, r7, #0
- add r2, r6, #0
- mov r3, #0x6f
- bl MOD11_02246D84
- cmp r0, #1
- beq _02246524
- add r0, r5, #0
- add r1, r7, #0
- add r2, r6, #0
- mov r3, #0x74
- bl MOD11_02246D84
- cmp r0, #1
- bne _02246532
-_02246524:
- ldr r0, [sp, #0x50]
- lsl r1, r0, #1
- add r0, r0, r1
- mov r1, #4
- bl MOD11_022476C0
- str r0, [sp, #0x50]
-_02246532:
- ldr r0, [sp, #0x24]
- cmp r0, #0x5f
- bne _0224654A
- ldr r0, [sp, #0x1c]
- ldr r1, [sp, #0x50]
- add r0, #0x64
- str r0, [sp, #0x1c]
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- str r0, [sp, #0x50]
-_0224654A:
- ldr r0, [sp, #0x54]
- ldr r1, [r0]
- mov r0, #4
- tst r0, r1
- beq _02246582
- ldr r0, [sp, #0x14]
- cmp r0, #0
- beq _02246582
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_02246D1C
- cmp r0, #0x6e
- bne _02246582
- ldr r0, [sp, #0x50]
- lsl r0, r0, #1
- str r0, [sp, #0x50]
- b _02246582
-_0224656E:
- ldr r0, [sp, #0x54]
- ldr r1, [r0]
- mov r0, #2
- bic r1, r0
- ldr r0, [sp, #0x54]
- str r1, [r0]
- mov r0, #4
- bic r1, r0
- ldr r0, [sp, #0x54]
- str r1, [r0]
-_02246582:
- ldr r0, [sp, #0x50]
- add sp, #0x30
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02246588: .word 0x000003E2
-_0224658C: .word 0x000003E1
-_02246590: .word 0x0000213C
-_02246594: .word 0x00002DCC
-_02246598: .word 0x0225E378
-_0224659C: .word 0x00002DB0
-
- thumb_func_start MOD11_022465A0
-MOD11_022465A0: ; 0x022465A0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r7, r0, #0
- ldr r0, [sp, #0x2c]
- str r1, [sp]
- str r0, [sp, #0x2c]
- ldr r0, [sp, #0x30]
- str r3, [sp, #4]
- str r0, [sp, #0x30]
- ldr r0, [sp, #0x34]
- ldr r6, [sp, #0x38]
- str r0, [sp, #0x34]
- add r0, r1, #0
- cmp r0, #0xa5
- beq _022466B6
- add r0, r3, #0
- cmp r0, #0x60
- bne _022465CA
- mov r0, #0
- str r0, [sp, #0xc]
- b _022465E2
-_022465CA:
- cmp r2, #0
- beq _022465D6
- lsl r0, r2, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0xc]
- b _022465E2
-_022465D6:
- add r0, r1, #0
- lsl r0, r0, #4
- add r1, r7, r0
- ldr r0, _022466BC ; =0x000003E2
- ldrb r0, [r1, r0]
- str r0, [sp, #0xc]
-_022465E2:
- ldr r0, [sp, #4]
- cmp r0, #0x68
- beq _02246612
- ldr r0, [sp, #0x28]
- cmp r0, #0x1a
- bne _02246612
- ldr r0, [sp, #0xc]
- cmp r0, #4
- bne _02246612
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r7, r0]
- mov r0, #7
- lsl r0, r0, #0xc
- tst r0, r1
- bne _02246612
- ldr r0, [sp, #0x2c]
- cmp r0, #0x69
- beq _02246612
- ldr r1, [r6]
- mov r0, #8
- orr r0, r1
- str r0, [r6]
- b _02246686
-_02246612:
- mov r4, #0
-_02246614:
- lsl r0, r4, #1
- add r1, r4, r0
- ldr r0, _022466C0 ; =0x0225E378
- add r5, r0, r1
- ldrb r1, [r0, r1]
- cmp r1, #0xfe
- bne _0224662C
- ldr r0, [sp, #4]
- cmp r0, #0x71
- beq _02246686
- add r4, r4, #1
- b _0224667A
-_0224662C:
- ldr r0, [sp, #0xc]
- cmp r0, r1
- bne _02246678
- ldrb r0, [r5, #1]
- ldr r1, [sp, #0x30]
- str r0, [sp, #8]
- cmp r1, r0
- bne _02246652
- ldr r1, [sp, #0x2c]
- add r0, r7, #0
- add r2, r4, #0
- bl MOD11_022466C4
- cmp r0, #1
- bne _02246652
- ldrb r0, [r5, #2]
- add r1, r6, #0
- bl MOD11_02246714
-_02246652:
- ldr r1, [sp, #0x34]
- ldr r0, [sp, #8]
- cmp r1, r0
- bne _02246678
- ldr r1, [sp, #0x30]
- ldr r0, [sp, #0x34]
- cmp r1, r0
- beq _02246678
- ldr r1, [sp, #0x2c]
- add r0, r7, #0
- add r2, r4, #0
- bl MOD11_022466C4
- cmp r0, #1
- bne _02246678
- ldrb r0, [r5, #2]
- add r1, r6, #0
- bl MOD11_02246714
-_02246678:
- add r4, r4, #1
-_0224667A:
- lsl r0, r4, #1
- add r1, r4, r0
- ldr r0, _022466C0 ; =0x0225E378
- ldrb r0, [r0, r1]
- cmp r0, #0xff
- bne _02246614
-_02246686:
- ldr r0, [sp, #4]
- cmp r0, #0x68
- beq _022466B6
- ldr r0, [sp, #0x28]
- cmp r0, #0x19
- bne _022466B6
- ldr r1, [sp]
- add r0, r7, #0
- bl MOD11_0224C6D4
- cmp r0, #0
- beq _022466B6
- ldr r1, [r6]
- mov r0, #2
- tst r0, r1
- beq _022466AE
- mov r0, #6
- and r0, r1
- cmp r0, #6
- bne _022466B6
-_022466AE:
- ldr r1, [r6]
- mov r0, #8
- orr r0, r1
- str r0, [r6]
-_022466B6:
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022466BC: .word 0x000003E2
-_022466C0: .word 0x0225E378
-
- thumb_func_start MOD11_022466C4
-MOD11_022466C4: ; 0x022466C4
- push {r3, r4}
- mov r3, #1
- cmp r1, #0x69
- bne _022466E2
- lsl r1, r2, #1
- add r4, r2, r1
- ldr r1, _0224670C ; =0x0225E379
- ldrb r1, [r1, r4]
- cmp r1, #2
- bne _022466E2
- ldr r1, _02246710 ; =0x0225E37A
- ldrb r1, [r1, r4]
- cmp r1, #0
- bne _022466E2
- mov r3, #0
-_022466E2:
- mov r1, #6
- lsl r1, r1, #6
- ldr r1, [r0, r1]
- mov r0, #7
- lsl r0, r0, #0xc
- tst r0, r1
- beq _02246706
- lsl r0, r2, #1
- add r1, r2, r0
- ldr r0, _0224670C ; =0x0225E379
- ldrb r0, [r0, r1]
- cmp r0, #2
- bne _02246706
- ldr r0, _02246710 ; =0x0225E37A
- ldrb r0, [r0, r1]
- cmp r0, #0
- bne _02246706
- mov r3, #0
-_02246706:
- add r0, r3, #0
- pop {r3, r4}
- bx lr
- .align 2, 0
-_0224670C: .word 0x0225E379
-_02246710: .word 0x0225E37A
-
- thumb_func_start MOD11_02246714
-MOD11_02246714: ; 0x02246714
- cmp r0, #0
- beq _02246722
- cmp r0, #5
- beq _02246734
- cmp r0, #0x14
- beq _0224674C
- bx lr
-_02246722:
- ldr r2, [r1]
- mov r0, #8
- orr r2, r0
- mov r0, #4
- bic r2, r0
- mov r0, #2
- bic r2, r0
- str r2, [r1]
- bx lr
-_02246734:
- ldr r2, [r1]
- mov r0, #2
- tst r0, r2
- beq _02246744
- mov r0, #2
- bic r2, r0
- str r2, [r1]
- bx lr
-_02246744:
- mov r0, #4
- orr r0, r2
- str r0, [r1]
- bx lr
-_0224674C:
- ldr r2, [r1]
- mov r0, #4
- tst r0, r2
- beq _0224675C
- mov r0, #4
- bic r2, r0
- str r2, [r1]
- bx lr
-_0224675C:
- mov r0, #2
- orr r0, r2
- str r0, [r1]
- bx lr
-
- thumb_func_start MOD11_02246764
-MOD11_02246764: ; 0x02246764
- mov r2, #0xd1
- lsl r2, r2, #2
- add r2, r0, r2
- lsl r0, r1, #2
- ldr r0, [r2, r0]
- lsl r1, r0, #0x1f
- lsr r1, r1, #0x1f
- bne _022467A4
- lsl r1, r0, #0x1e
- lsr r1, r1, #0x1f
- bne _022467A4
- lsl r1, r0, #0x1d
- lsr r1, r1, #0x1f
- bne _022467A4
- lsl r1, r0, #0x1c
- lsr r1, r1, #0x1f
- bne _022467A4
- lsl r1, r0, #0x1b
- lsr r1, r1, #0x1f
- bne _022467A4
- lsl r1, r0, #0x1a
- lsr r1, r1, #0x1f
- bne _022467A4
- lsl r1, r0, #0x19
- lsr r1, r1, #0x1f
- bne _022467A4
- lsl r1, r0, #0x17
- lsr r1, r1, #0x1f
- bne _022467A4
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1f
- beq _022467A8
-_022467A4:
- mov r0, #1
- bx lr
-_022467A8:
- mov r0, #0
- bx lr
-
- thumb_func_start MOD11_022467AC
-MOD11_022467AC: ; 0x022467AC
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- str r0, [sp]
- add r5, r1, #0
- add r6, r2, #0
- str r3, [sp, #4]
- mov r4, #0
- bl MOD11_0222FF84
- add r7, r0, #0
- cmp r6, #0
- beq _022467CA
- cmp r6, #1
- beq _022467EE
- b _02246822
-_022467CA:
- add r0, r4, #0
- cmp r7, #0
- ble _02246822
- ldr r2, _02246828 ; =0x00002D8C
-_022467D2:
- ldr r1, [sp, #4]
- cmp r0, r1
- beq _022467E4
- ldr r1, [r5, r2]
- cmp r1, #0
- beq _022467E4
- add r1, r4, #1
- lsl r1, r1, #0x18
- lsr r4, r1, #0x18
-_022467E4:
- add r0, r0, #1
- add r5, #0xc0
- cmp r0, r7
- blt _022467D2
- b _02246822
-_022467EE:
- add r6, r4, #0
- cmp r7, #0
- ble _02246822
-_022467F4:
- ldr r0, [sp]
- add r1, r6, #0
- bl MOD11_02230270
- str r0, [sp, #8]
- ldr r0, [sp]
- ldr r1, [sp, #4]
- bl MOD11_02230270
- ldr r1, [sp, #8]
- cmp r1, r0
- bne _0224681A
- ldr r0, _02246828 ; =0x00002D8C
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _0224681A
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
-_0224681A:
- add r6, r6, #1
- add r5, #0xc0
- cmp r6, r7
- blt _022467F4
-_02246822:
- add r0, r4, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02246828: .word 0x00002D8C
-
- thumb_func_start MOD11_0224682C
-MOD11_0224682C: ; 0x0224682C
- add r2, r0, r1
- ldr r0, _02246838 ; =0x0000219C
- ldrb r0, [r2, r0]
- lsl r0, r0, #8
- orr r0, r1
- bx lr
- .align 2, 0
-_02246838: .word 0x0000219C
-
- thumb_func_start MOD11_0224683C
-MOD11_0224683C: ; 0x0224683C
- push {r4, r5}
- lsl r3, r1, #4
- add r5, r0, r3
- ldr r3, _02246868 ; =0x000021B4
- mov r2, #0
- ldr r4, [r5, r3]
- cmp r4, #1
- bne _02246862
- sub r3, r3, #4
- ldr r3, [r5, r3]
- cmp r3, #0
- beq _02246862
- mov r2, #0xc0
- mul r2, r1
- add r1, r0, r2
- lsl r0, r3, #1
- add r1, r1, r0
- ldr r0, _0224686C ; =0x00002D4A
- ldrh r2, [r1, r0]
-_02246862:
- add r0, r2, #0
- pop {r4, r5}
- bx lr
- .align 2, 0
-_02246868: .word 0x000021B4
-_0224686C: .word 0x00002D4A
-
- thumb_func_start MOD11_02246870
-MOD11_02246870: ; 0x02246870
- push {r4, r5, r6, r7, lr}
- sub sp, #0x5c
- str r2, [sp, #4]
- str r0, [sp]
- add r7, r1, #0
- str r3, [sp, #8]
- ldr r6, [sp, #0x70]
- mov r4, #0
- bl MOD11_0222FF84
- add r5, r0, #0
- ldr r0, [sp, #4]
- cmp r0, #9
- bhi _022468E4
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02246898: ; jump table
- .short _022468AC - _02246898 - 2 ; case 0
- .short _022468E6 - _02246898 - 2 ; case 1
- .short _02246932 - _02246898 - 2 ; case 2
- .short _0224696C - _02246898 - 2 ; case 3
- .short _022469B8 - _02246898 - 2 ; case 4
- .short _02246A0A - _02246898 - 2 ; case 5
- .short _02246A2C - _02246898 - 2 ; case 6
- .short _02246A54 - _02246898 - 2 ; case 7
- .short _02246A80 - _02246898 - 2 ; case 8
- .short _02246AB4 - _02246898 - 2 ; case 9
-_022468AC:
- add r0, r4, #0
- str r0, [sp, #0x44]
- cmp r5, #0
- ble _022468E4
-_022468B4:
- ldr r0, [sp]
- ldr r1, [sp, #0x44]
- bl MOD11_02230270
- str r0, [sp, #0x48]
- ldr r0, [sp]
- ldr r1, [sp, #8]
- bl MOD11_02230270
- ldr r1, [sp, #0x48]
- cmp r1, r0
- bne _022468DA
- ldr r1, [sp, #0x44]
- add r0, r7, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _022468DA
- add r4, r4, #1
-_022468DA:
- ldr r0, [sp, #0x44]
- add r0, r0, #1
- str r0, [sp, #0x44]
- cmp r0, r5
- blt _022468B4
-_022468E4:
- b _02246AEC
-_022468E6:
- add r0, r4, #0
- str r0, [sp, #0xc]
- cmp r5, #0
- ble _02246930
- str r7, [sp, #0x30]
-_022468F0:
- ldr r0, [sp]
- ldr r1, [sp, #0xc]
- bl MOD11_02230270
- str r0, [sp, #0x4c]
- ldr r0, [sp]
- ldr r1, [sp, #8]
- bl MOD11_02230270
- ldr r1, [sp, #0x4c]
- cmp r1, r0
- bne _02246920
- ldr r1, [sp, #0x30]
- ldr r0, _02246AF4 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02246920
- ldr r1, [sp, #0xc]
- add r0, r7, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _02246920
- add r4, r4, #1
-_02246920:
- ldr r0, [sp, #0x30]
- add r0, #0xc0
- str r0, [sp, #0x30]
- ldr r0, [sp, #0xc]
- add r0, r0, #1
- str r0, [sp, #0xc]
- cmp r0, r5
- blt _022468F0
-_02246930:
- b _02246AEC
-_02246932:
- add r0, r4, #0
- str r0, [sp, #0x10]
- cmp r5, #0
- ble _0224696A
-_0224693A:
- ldr r0, [sp]
- ldr r1, [sp, #0x10]
- bl MOD11_02230270
- str r0, [sp, #0x50]
- ldr r0, [sp]
- ldr r1, [sp, #8]
- bl MOD11_02230270
- ldr r1, [sp, #0x50]
- cmp r1, r0
- beq _02246960
- ldr r1, [sp, #0x10]
- add r0, r7, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _02246960
- add r4, r4, #1
-_02246960:
- ldr r0, [sp, #0x10]
- add r0, r0, #1
- str r0, [sp, #0x10]
- cmp r0, r5
- blt _0224693A
-_0224696A:
- b _02246AEC
-_0224696C:
- add r0, r4, #0
- str r0, [sp, #0x14]
- cmp r5, #0
- ble _022469B6
- str r7, [sp, #0x34]
-_02246976:
- ldr r0, [sp]
- ldr r1, [sp, #0x14]
- bl MOD11_02230270
- str r0, [sp, #0x54]
- ldr r0, [sp]
- ldr r1, [sp, #8]
- bl MOD11_02230270
- ldr r1, [sp, #0x54]
- cmp r1, r0
- beq _022469A6
- ldr r1, [sp, #0x34]
- ldr r0, _02246AF4 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _022469A6
- ldr r1, [sp, #0x14]
- add r0, r7, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _022469A6
- add r4, r4, #1
-_022469A6:
- ldr r0, [sp, #0x34]
- add r0, #0xc0
- str r0, [sp, #0x34]
- ldr r0, [sp, #0x14]
- add r0, r0, #1
- str r0, [sp, #0x14]
- cmp r0, r5
- blt _02246976
-_022469B6:
- b _02246AEC
-_022469B8:
- add r0, r4, #0
- str r0, [sp, #0x18]
- cmp r5, #0
- ble _02246A08
- str r7, [sp, #0x38]
-_022469C2:
- ldr r0, [sp]
- ldr r1, [sp, #0x18]
- bl MOD11_02230270
- str r0, [sp, #0x58]
- ldr r0, [sp]
- ldr r1, [sp, #8]
- bl MOD11_02230270
- ldr r1, [sp, #0x58]
- cmp r1, r0
- beq _022469F8
- ldr r1, [sp, #0x38]
- ldr r0, _02246AF4 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _022469F8
- ldr r1, [sp, #0x18]
- add r0, r7, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _022469F8
- ldr r0, [sp, #0x18]
- bl MaskOfFlagNo
- orr r4, r0
-_022469F8:
- ldr r0, [sp, #0x38]
- add r0, #0xc0
- str r0, [sp, #0x38]
- ldr r0, [sp, #0x18]
- add r0, r0, #1
- str r0, [sp, #0x18]
- cmp r0, r5
- blt _022469C2
-_02246A08:
- b _02246AEC
-_02246A0A:
- add r0, r4, #0
- str r0, [sp, #0x1c]
- cmp r5, #0
- ble _02246AEC
-_02246A12:
- ldr r1, [sp, #0x1c]
- add r0, r7, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _02246A20
- add r4, r4, #1
-_02246A20:
- ldr r0, [sp, #0x1c]
- add r0, r0, #1
- str r0, [sp, #0x1c]
- cmp r0, r5
- blt _02246A12
- b _02246AEC
-_02246A2C:
- add r0, r4, #0
- str r0, [sp, #0x20]
- cmp r5, #0
- ble _02246AEC
-_02246A34:
- ldr r1, [sp, #0x20]
- ldr r0, [sp, #8]
- cmp r1, r0
- beq _02246A48
- add r0, r7, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _02246A48
- add r4, r4, #1
-_02246A48:
- ldr r0, [sp, #0x20]
- add r0, r0, #1
- str r0, [sp, #0x20]
- cmp r0, r5
- blt _02246A34
- b _02246AEC
-_02246A54:
- add r0, r4, #0
- str r0, [sp, #0x24]
- cmp r5, #0
- ble _02246AEC
-_02246A5C:
- ldr r1, [sp, #0x24]
- ldr r0, [sp, #8]
- cmp r1, r0
- beq _02246A74
- add r0, r7, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _02246A74
- ldr r0, [sp, #0x24]
- add r4, r0, #1
- b _02246AEC
-_02246A74:
- ldr r0, [sp, #0x24]
- add r0, r0, #1
- str r0, [sp, #0x24]
- cmp r0, r5
- blt _02246A5C
- b _02246AEC
-_02246A80:
- add r0, r4, #0
- str r0, [sp, #0x28]
- cmp r5, #0
- ble _02246AEC
- str r7, [sp, #0x3c]
-_02246A8A:
- ldr r1, [sp, #0x28]
- add r0, r7, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _02246AA2
- ldr r1, [sp, #0x3c]
- ldr r0, _02246AF4 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02246AA2
- add r4, r4, #1
-_02246AA2:
- ldr r0, [sp, #0x3c]
- add r0, #0xc0
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x28]
- add r0, r0, #1
- str r0, [sp, #0x28]
- cmp r0, r5
- blt _02246A8A
- b _02246AEC
-_02246AB4:
- add r0, r4, #0
- str r0, [sp, #0x2c]
- cmp r5, #0
- ble _02246AEC
- str r7, [sp, #0x40]
-_02246ABE:
- ldr r1, [sp, #0x2c]
- ldr r0, [sp, #8]
- cmp r1, r0
- beq _02246ADC
- add r0, r7, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _02246ADC
- ldr r1, [sp, #0x40]
- ldr r0, _02246AF4 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02246ADC
- add r4, r4, #1
-_02246ADC:
- ldr r0, [sp, #0x40]
- add r0, #0xc0
- str r0, [sp, #0x40]
- ldr r0, [sp, #0x2c]
- add r0, r0, #1
- str r0, [sp, #0x2c]
- cmp r0, r5
- blt _02246ABE
-_02246AEC:
- add r0, r4, #0
- add sp, #0x5c
- pop {r4, r5, r6, r7, pc}
- nop
-_02246AF4: .word 0x00002D8C
-
- thumb_func_start MOD11_02246AF8
-MOD11_02246AF8: ; 0x02246AF8
- lsl r1, r1, #4
- add r1, r0, r1
- ldr r0, _02246B54 ; =0x000003DE
- ldrh r2, [r1, r0]
- cmp r2, #0x9b
- bgt _02246B2A
- cmp r2, #0x97
- blt _02246B10
- beq _02246B4A
- cmp r2, #0x9b
- beq _02246B4A
- b _02246B4E
-_02246B10:
- cmp r2, #0x27
- bgt _02246B1C
- bge _02246B4A
- cmp r2, #0x1a
- beq _02246B4A
- b _02246B4E
-_02246B1C:
- cmp r2, #0x4b
- bgt _02246B24
- beq _02246B4A
- b _02246B4E
-_02246B24:
- cmp r2, #0x91
- beq _02246B4A
- b _02246B4E
-_02246B2A:
- mov r1, #1
- lsl r1, r1, #8
- cmp r2, r1
- bgt _02246B3A
- bge _02246B4A
- cmp r2, #0xff
- beq _02246B4A
- b _02246B4E
-_02246B3A:
- add r0, r1, #7
- cmp r2, r0
- bgt _02246B44
- beq _02246B4A
- b _02246B4E
-_02246B44:
- add r1, #0x10
- cmp r2, r1
- bne _02246B4E
-_02246B4A:
- mov r0, #1
- bx lr
-_02246B4E:
- mov r0, #0
- bx lr
- nop
-_02246B54: .word 0x000003DE
-
- thumb_func_start MOD11_02246B58
-MOD11_02246B58: ; 0x02246B58
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- add r5, r1, #0
- add r4, r2, #0
- add r7, r3, #0
- mov r0, #1
- cmp r6, #0x70
- blo _02246B76
- bl rand_LC
- mov r1, #0x70
- bl _u32_div_f
- add r6, r1, #0
- mov r0, #0
-_02246B76:
- lsl r1, r6, #1
- ldr r2, _02246B90 ; =0x0225E378
- add r1, r6, r1
- ldrb r2, [r2, r1]
- strb r2, [r5]
- ldr r2, _02246B94 ; =0x0225E379
- ldrb r2, [r2, r1]
- strb r2, [r4]
- ldr r2, _02246B98 ; =0x0225E37A
- ldrb r1, [r2, r1]
- strb r1, [r7]
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02246B90: .word 0x0225E378
-_02246B94: .word 0x0225E379
-_02246B98: .word 0x0225E37A
-
- thumb_func_start MOD11_02246B9C
-MOD11_02246B9C: ; 0x02246B9C
- push {r3, r4, r5, r6, r7, lr}
- ldr r4, _02246BE4 ; =0x0225E378
- add r5, r1, #0
- str r0, [sp]
- add r6, r2, #0
- mov r1, #0x28
-_02246BA8:
- ldrb r2, [r4]
- ldr r0, [sp]
- cmp r0, r2
- bne _02246BD6
- ldrb r7, [r4, #1]
- cmp r5, r7
- bne _02246BC2
- ldrb r0, [r4, #2]
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- add r1, r0, #0
-_02246BC2:
- cmp r6, r7
- bne _02246BD6
- cmp r5, r6
- beq _02246BD6
- ldrb r0, [r4, #2]
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- add r1, r0, #0
-_02246BD6:
- add r4, r4, #3
- ldrb r0, [r4]
- cmp r0, #0xff
- bne _02246BA8
- add r0, r1, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02246BE4: .word 0x0225E378
-
- thumb_func_start MOD11_02246BE8
-MOD11_02246BE8: ; 0x02246BE8
- cmp r0, #0
- beq _02246C10
- cmp r0, #0xd6
- beq _02246C10
- ldr r2, _02246C18 ; =0x0000017F
- cmp r0, r2
- beq _02246C10
- add r1, r2, #0
- sub r1, #0x6d
- cmp r0, r1
- beq _02246C10
- sub r1, r2, #1
- cmp r0, r1
- beq _02246C10
- ldr r1, _02246C1C ; =0x0000FF8A
- add r0, r0, r1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- cmp r0, #1
- bhi _02246C14
-_02246C10:
- mov r0, #1
- bx lr
-_02246C14:
- mov r0, #0
- bx lr
- .align 2, 0
-_02246C18: .word 0x0000017F
-_02246C1C: .word 0x0000FF8A
-
- thumb_func_start MOD11_02246C20
-MOD11_02246C20: ; 0x02246C20
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r2, #0
- cmp r1, #0xae
- bne _02246C4C
- add r1, r4, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #7
- beq _02246C48
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #7
- bne _02246C4C
-_02246C48:
- mov r0, #1
- pop {r3, r4, r5, pc}
-_02246C4C:
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02246C50
-MOD11_02246C50: ; 0x02246C50
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r6, r2, #0
- add r5, r1, #0
- add r1, r6, #0
- mov r7, #0
- bl MOD11_02230270
- str r0, [sp]
- ldr r0, _02246CA4 ; =0x00002DB8
- add r4, r5, r0
- mov r0, #0xc0
- mul r0, r6
- str r0, [sp, #4]
- ldrh r0, [r4, r0]
- cmp r0, #0
- beq _02246C9E
- ldr r0, _02246CA8 ; =0x0000219C
- add r1, r5, r6
- ldrb r0, [r1, r0]
- bl MaskOfFlagNo
- ldr r1, [sp]
- lsl r1, r1, #3
- add r2, r5, r1
- mov r1, #0x71
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- lsl r1, r1, #3
- lsr r1, r1, #0x1a
- tst r0, r1
- bne _02246C9E
- ldr r0, [sp, #4]
- ldrh r0, [r4, r0]
- bl FUN_0206EA98
- cmp r0, #0
- bne _02246C9E
- mov r7, #1
-_02246C9E:
- add r0, r7, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02246CA4: .word 0x00002DB8
-_02246CA8: .word 0x0000219C
-
- thumb_func_start MOD11_02246CAC
-MOD11_02246CAC: ; 0x02246CAC
- push {r3, lr}
- mov r2, #0xc0
- mul r2, r1
- add r1, r0, r2
- ldr r0, _02246CC8 ; =0x00002DB8
- ldrh r0, [r1, r0]
- bl FUN_0206EA98
- cmp r0, #0
- bne _02246CC4
- mov r0, #1
- pop {r3, pc}
-_02246CC4:
- mov r0, #0
- pop {r3, pc}
- .align 2, 0
-_02246CC8: .word 0x00002DB8
-
- thumb_func_start MOD11_02246CCC
-MOD11_02246CCC: ; 0x02246CCC
- push {r4, r5, r6, lr}
- add r5, r0, #0
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- add r3, r1, #0
- ldr r1, _02246D18 ; =0x00002D74
- mul r3, r0
- add r2, r5, r1
- ldrb r4, [r2, r3]
- ldr r2, [r5, #0x64]
- mov r6, #0
- mul r0, r2
- add r0, r5, r0
- ldrb r0, [r0, r1]
- cmp r0, r4
- blo _02246CF0
- mov r6, #1
- b _02246D14
-_02246CF0:
- bl rand_LC
- ldr r2, [r5, #0x64]
- mov r1, #0xc0
- mul r1, r2
- add r2, r5, r1
- ldr r1, _02246D18 ; =0x00002D74
- lsl r0, r0, #0x18
- ldrb r1, [r2, r1]
- lsr r0, r0, #0x18
- add r1, r1, r4
- mul r0, r1
- asr r0, r0, #8
- add r1, r0, #1
- lsr r0, r4, #2
- cmp r1, r0
- ble _02246D14
- mov r6, #1
-_02246D14:
- add r0, r6, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02246D18: .word 0x00002D74
-
- thumb_func_start MOD11_02246D1C
-MOD11_02246D1C: ; 0x02246D1C
- push {r4, r5}
- mov r2, #0xc0
- mul r2, r1
- mov r3, #0xb7
- mov r4, #2
- add r5, r0, r2
- lsl r3, r3, #6
- ldr r1, [r5, r3]
- lsl r4, r4, #0x14
- tst r4, r1
- beq _02246D40
- sub r3, #0x59
- ldrb r3, [r5, r3]
- cmp r3, #0x79
- beq _02246D40
- mov r0, #0
- pop {r4, r5}
- bx lr
-_02246D40:
- mov r3, #6
- lsl r3, r3, #6
- ldr r4, [r0, r3]
- mov r3, #7
- lsl r3, r3, #0xc
- tst r3, r4
- beq _02246D5E
- ldr r3, _02246D80 ; =0x00002D67
- add r4, r0, r2
- ldrb r3, [r4, r3]
- cmp r3, #0x1a
- bne _02246D5E
- mov r0, #0
- pop {r4, r5}
- bx lr
-_02246D5E:
- mov r3, #1
- lsl r3, r3, #0xa
- tst r1, r3
- beq _02246D76
- ldr r1, _02246D80 ; =0x00002D67
- add r3, r0, r2
- ldrb r1, [r3, r1]
- cmp r1, #0x1a
- bne _02246D76
- mov r0, #0
- pop {r4, r5}
- bx lr
-_02246D76:
- add r1, r0, r2
- ldr r0, _02246D80 ; =0x00002D67
- ldrb r0, [r1, r0]
- pop {r4, r5}
- bx lr
- .align 2, 0
-_02246D80: .word 0x00002D67
-
- thumb_func_start MOD11_02246D84
-MOD11_02246D84: ; 0x02246D84
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r7, r1, #0
- str r2, [sp]
- add r4, r3, #0
- mov r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x68
- beq _02246DA8
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r4, r0
- bne _02246DD6
- mov r6, #1
- b _02246DD6
-_02246DA8:
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r4, r0
- bne _02246DD6
- mov r0, #0xb5
- lsl r0, r0, #2
- add r1, r5, r0
- mov r0, #0x1c
- mul r0, r7
- ldr r3, [r1, r0]
- lsl r2, r3, #0x1c
- lsr r2, r2, #0x1f
- bne _02246DD6
- mov r2, #8
- orr r3, r2
- str r3, [r1, r0]
- ldr r1, _02246DDC ; =0x0000213C
- lsl r0, r2, #0x14
- ldr r3, [r5, r1]
- orr r0, r3
- str r0, [r5, r1]
-_02246DD6:
- add r0, r6, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02246DDC: .word 0x0000213C
-
- thumb_func_start MOD11_02246DE0
-MOD11_02246DE0: ; 0x02246DE0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- mov r6, #0
- str r0, [sp]
- str r1, [sp, #4]
- add r4, r2, #0
- str r6, [sp, #0x18]
- bl MOD11_0222FF74
- add r5, r0, #0
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_0222FF88
- str r0, [sp, #0x14]
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_0222FFC8
- add r7, r0, #0
- mov r0, #8
- tst r0, r5
- bne _02246E22
- mov r0, #0x10
- tst r0, r5
- beq _02246E36
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_02230260
- mov r1, #1
- tst r0, r1
- beq _02246E36
-_02246E22:
- mov r0, #1
- str r0, [sp, #0x10]
- ldr r0, [sp, #4]
- mov r5, #0
- add r1, r0, r4
- ldr r0, _02246ECC ; =0x0000219C
- ldrb r0, [r1, r0]
- str r0, [sp, #0xc]
- str r0, [sp, #8]
- b _02246E72
-_02246E36:
- mov r0, #2
- tst r0, r5
- beq _02246E60
- mov r0, #1
- str r0, [sp, #0x10]
- ldr r0, [sp, #4]
- mov r5, #0
- add r1, r0, r4
- ldr r0, _02246ECC ; =0x0000219C
- ldrb r0, [r1, r0]
- add r1, r4, #0
- str r0, [sp, #0xc]
- ldr r0, [sp]
- bl MOD11_022302BC
- ldr r1, [sp, #4]
- add r1, r1, r0
- ldr r0, _02246ECC ; =0x0000219C
- ldrb r0, [r1, r0]
- str r0, [sp, #8]
- b _02246E72
-_02246E60:
- mov r0, #1
- str r0, [sp, #0x10]
- ldr r0, [sp, #4]
- mov r5, #0
- add r1, r0, r4
- ldr r0, _02246ECC ; =0x0000219C
- ldrb r0, [r1, r0]
- str r0, [sp, #0xc]
- str r0, [sp, #8]
-_02246E72:
- cmp r5, r7
- bge _02246EBC
-_02246E76:
- ldr r0, [sp, #0x14]
- add r1, r5, #0
- bl GetPartyMonByIndex
- mov r1, #5
- mov r2, #0
- add r4, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _02246EB6
- add r0, r4, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _02246EB6
- add r0, r4, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _02246EB6
- ldr r0, [sp, #0xc]
- cmp r0, r5
- beq _02246EB6
- ldr r0, [sp, #8]
- cmp r0, r5
- beq _02246EB6
- add r6, r6, #1
-_02246EB6:
- add r5, r5, #1
- cmp r5, r7
- blt _02246E76
-_02246EBC:
- ldr r0, [sp, #0x10]
- cmp r6, r0
- blt _02246EC6
- mov r0, #1
- str r0, [sp, #0x18]
-_02246EC6:
- ldr r0, [sp, #0x18]
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02246ECC: .word 0x0000219C
-
- thumb_func_start MOD11_02246ED0
-MOD11_02246ED0: ; 0x02246ED0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r1, #0
- add r6, r2, #0
- add r7, r0, #0
- add r4, r3, #0
- bl MOD11_0222FF74
- str r0, [sp, #0xc]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02249D90
- str r0, [sp, #8]
- cmp r0, #0x3e
- beq _02246F06
- mov r1, #0xa9
- ldr r0, [sp, #0xc]
- lsl r1, r1, #2
- tst r0, r1
- bne _02246F06
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x32
- bne _02246F0C
-_02246F06:
- add sp, #0x14
- mov r0, #0
- pop {r4, r5, r6, r7, pc}
-_02246F0C:
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_02230270
- add r0, r7, #0
- bl MOD11_0222FF84
- mov r0, #0x17
- str r0, [sp]
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #9
- add r3, r6, #0
- bl MOD11_02246870
- str r0, [sp, #0x10]
- cmp r0, #0
- beq _02246F62
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x17
- beq _02246F62
- cmp r4, #0
- bne _02246F46
- add sp, #0x14
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02246F46:
- mov r0, #0xb
- strb r0, [r4, #1]
- mov r0, #0x27
- strh r0, [r4, #2]
- ldr r1, [sp, #0x10]
- add r0, r5, #0
- bl MOD11_0224682C
- str r0, [r4, #4]
- mov r0, #0x17
- str r0, [r4, #8]
- add sp, #0x14
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02246F62:
- mov r0, #0x47
- str r0, [sp]
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #3
- add r3, r6, #0
- bl MOD11_02246870
- str r0, [sp, #4]
- cmp r0, #0
- beq _02247014
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #7
- lsl r0, r0, #0xc
- tst r0, r1
- bne _02246FEE
- ldr r0, [sp, #8]
- cmp r0, #0x69
- beq _02246FEE
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x1a
- beq _02247014
- mov r0, #0xc0
- mul r0, r6
- add r1, r5, r0
- ldr r0, _022470A8 ; =0x00002DCC
- ldr r0, [r1, r0]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x1d
- bne _02247014
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #2
- beq _02247014
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #2
- beq _02247014
- cmp r4, #0
- bne _02246FD2
- add sp, #0x14
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02246FD2:
- mov r0, #0xb
- strb r0, [r4, #1]
- mov r0, #0x27
- strh r0, [r4, #2]
- ldr r1, [sp, #4]
- add r0, r5, #0
- bl MOD11_0224682C
- str r0, [r4, #4]
- mov r0, #0x47
- str r0, [r4, #8]
- add sp, #0x14
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02246FEE:
- cmp r4, #0
- bne _02246FF8
- add sp, #0x14
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02246FF8:
- mov r0, #0xb
- strb r0, [r4, #1]
- mov r0, #0x27
- strh r0, [r4, #2]
- ldr r1, [sp, #4]
- add r0, r5, #0
- bl MOD11_0224682C
- str r0, [r4, #4]
- mov r0, #0x47
- str r0, [r4, #8]
- add sp, #0x14
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02247014:
- mov r0, #0x2a
- str r0, [sp]
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #3
- add r3, r6, #0
- bl MOD11_02246870
- add r7, r0, #0
- beq _0224706E
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #8
- beq _02247048
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #8
- bne _0224706E
-_02247048:
- cmp r4, #0
- bne _02247052
- add sp, #0x14
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02247052:
- mov r0, #0xb
- strb r0, [r4, #1]
- mov r0, #0x27
- strh r0, [r4, #2]
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_0224682C
- str r0, [r4, #4]
- mov r0, #0x2a
- str r0, [r4, #8]
- add sp, #0x14
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_0224706E:
- mov r0, #0xc0
- mul r0, r6
- add r3, r5, r0
- ldr r0, _022470AC ; =0x00002DB0
- ldr r1, _022470B0 ; =0x0400E000
- ldr r2, [r3, r0]
- tst r2, r1
- bne _02247088
- add r0, #0x10
- ldr r2, [r3, r0]
- lsr r0, r1, #0x10
- tst r0, r2
- beq _022470A0
-_02247088:
- cmp r4, #0
- bne _02247092
- add sp, #0x14
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02247092:
- mov r0, #0
- strb r0, [r4, #1]
- ldr r0, _022470B4 ; =0x0000031A
- add sp, #0x14
- strh r0, [r4, #2]
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_022470A0:
- mov r0, #0
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_022470A8: .word 0x00002DCC
-_022470AC: .word 0x00002DB0
-_022470B0: .word 0x0400E000
-_022470B4: .word 0x0000031A
-
- thumb_func_start MOD11_022470B8
-MOD11_022470B8: ; 0x022470B8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r4, r2, #0
- str r0, [sp]
- bl MOD11_0222FF74
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02249D90
- mov r6, #0
- cmp r0, #0x3e
- bne _022470EC
- mov r0, #0x75
- lsl r0, r0, #2
- add r3, r5, r0
- lsl r2, r4, #6
- ldr r1, [r3, r2]
- ldr r0, _02247184 ; =0xFFFFFE7F
- mov r6, #1
- and r1, r0
- mov r0, #0x80
- orr r0, r1
- str r0, [r3, r2]
- b _0224717E
-_022470EC:
- mov r0, #0xa9
- lsl r0, r0, #2
- tst r0, r7
- beq _022470F8
- mov r6, #1
- b _0224717E
-_022470F8:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x32
- bne _0224711C
- mov r1, #0x75
- lsl r1, r1, #2
- add r5, r5, r1
- lsl r3, r4, #6
- ldr r2, [r5, r3]
- ldr r0, _02247184 ; =0xFFFFFE7F
- sub r1, #0xd4
- and r0, r2
- orr r0, r1
- str r0, [r5, r3]
- mov r6, #1
- b _0224717E
-_0224711C:
- mov r0, #1
- add r1, r4, #0
- eor r1, r0
- mov r2, #0xc0
- add r3, r1, #0
- mul r3, r2
- add r1, r5, r3
- ldr r3, _02247188 ; =0x00002D46
- mul r2, r4
- add r2, r5, r2
- ldrh r1, [r1, r3]
- ldrh r2, [r2, r3]
- cmp r2, r1
- bhs _02247164
- lsl r0, r2, #7
- bl _s32_div_f
- ldr r1, _0224718C ; =0x0000311E
- ldrb r2, [r5, r1]
- mov r1, #0x1e
- mul r1, r2
- add r0, r1, r0
- lsl r0, r0, #0x18
- lsr r7, r0, #0x18
- bl rand_LC
- lsr r1, r0, #0x1f
- lsl r2, r0, #0x18
- sub r2, r2, r1
- mov r0, #0x18
- ror r2, r0
- add r0, r1, r2
- cmp r7, r0
- ble _02247166
- mov r6, #1
- b _02247166
-_02247164:
- add r6, r0, #0
-_02247166:
- cmp r6, #0
- bne _02247176
- ldr r0, [sp]
- add r1, r4, #0
- mov r2, #0
- mov r3, #0x47
- bl MOD11_022564A8
-_02247176:
- ldr r0, _0224718C ; =0x0000311E
- ldrb r1, [r5, r0]
- add r1, r1, #1
- strb r1, [r5, r0]
-_0224717E:
- add r0, r6, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02247184: .word 0xFFFFFE7F
-_02247188: .word 0x00002D46
-_0224718C: .word 0x0000311E
-
- thumb_func_start MOD11_02247190
-MOD11_02247190: ; 0x02247190
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_02246D1C
- cmp r0, #0x36
- bne _022471BA
- mov r2, #0xc0
- mul r2, r4
- add r3, r5, r2
- ldr r2, _022471C0 ; =0x00002DC8
- mov r0, #0x15
- lsl r0, r0, #4
- ldr r2, [r3, r2]
- ldr r1, [r5, r0]
- mov r0, #1
- lsl r2, r2, #1
- and r1, r0
- lsr r2, r2, #0x1f
- cmp r1, r2
- bne _022471BC
-_022471BA:
- mov r0, #0
-_022471BC:
- pop {r3, r4, r5, pc}
- nop
-_022471C0: .word 0x00002DC8
-
- thumb_func_start MOD11_022471C4
-MOD11_022471C4: ; 0x022471C4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r6, r1, #0
- mov r1, #0
- str r0, [sp]
- add r4, r2, #0
- add r5, r3, #0
- str r1, [sp, #4]
- bl MOD11_0222FF84
- str r0, [sp, #0xc]
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_02230270
- str r0, [sp, #8]
- ldr r0, [sp, #0xc]
- mov r7, #0
- cmp r0, #0
- ble _0224722E
- ldr r4, _02247234 ; =0x00002D4C
-_022471EE:
- ldr r0, [sp]
- add r1, r7, #0
- bl MOD11_02230270
- ldr r1, [sp, #8]
- cmp r1, r0
- beq _02247224
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r1, [r6, r0]
- mov r0, #2
- lsl r0, r0, #0xc
- tst r0, r1
- beq _02247224
- mov r1, #0
- add r2, r6, #0
-_0224720E:
- ldrh r0, [r2, r4]
- cmp r5, r0
- beq _0224721C
- add r1, r1, #1
- add r2, r2, #2
- cmp r1, #4
- blt _0224720E
-_0224721C:
- cmp r1, #4
- beq _02247224
- mov r0, #1
- str r0, [sp, #4]
-_02247224:
- ldr r0, [sp, #0xc]
- add r7, r7, #1
- add r6, #0xc0
- cmp r7, r0
- blt _022471EE
-_0224722E:
- ldr r0, [sp, #4]
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02247234: .word 0x00002D4C
-
- thumb_func_start MOD11_02247238
-MOD11_02247238: ; 0x02247238
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r4, r2, #0
- mov r6, #0
- bl MOD11_0222FF84
- add r3, r6, #0
- cmp r0, #0
- ble _02247260
- mov r1, #0xb7
- lsl r1, r1, #6
-_0224724E:
- ldr r2, [r5, r1]
- tst r2, r4
- beq _02247258
- mov r6, #1
- b _02247260
-_02247258:
- add r3, r3, #1
- add r5, #0xc0
- cmp r3, r0
- blt _0224724E
-_02247260:
- add r0, r6, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02247264
-MOD11_02247264: ; 0x02247264
- ldr r2, _02247284 ; =0x0000216C
- mov r0, #0
- str r0, [r1, r2]
- add r0, r2, #0
- mov r3, #1
- sub r0, #0x1c
- str r3, [r1, r0]
- add r0, r2, #0
- sub r0, #0x30
- ldr r3, [r1, r0]
- ldr r0, _02247288 ; =0xFFEFFFFF
- sub r2, #0x30
- and r0, r3
- str r0, [r1, r2]
- bx lr
- nop
-_02247284: .word 0x0000216C
-_02247288: .word 0xFFEFFFFF
-
- thumb_func_start MOD11_0224728C
-MOD11_0224728C: ; 0x0224728C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- str r0, [sp, #4]
- str r1, [sp, #8]
- bl MOD11_0222FF84
- mov r2, #0
- str r0, [sp, #0x14]
- cmp r0, #0
- ble _022472B0
- ldr r1, _02247310 ; =0x000021EC
-_022472A2:
- ldr r0, [sp, #8]
- add r0, r0, r2
- strb r2, [r0, r1]
- ldr r0, [sp, #0x14]
- add r2, r2, #1
- cmp r2, r0
- blt _022472A2
-_022472B0:
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x14]
- sub r0, r0, #1
- str r0, [sp, #0x18]
- cmp r0, #0
- ble _0224730C
-_022472BE:
- ldr r0, [sp, #0x10]
- add r4, r0, #1
- ldr r0, [sp, #0x14]
- cmp r4, r0
- bge _02247300
- ldr r1, [sp, #8]
- ldr r0, [sp, #0x10]
- add r6, r1, r0
-_022472CE:
- ldr r0, _02247310 ; =0x000021EC
- ldr r1, [sp, #8]
- ldrb r0, [r6, r0]
- str r0, [sp, #0xc]
- ldr r0, [sp, #8]
- ldr r2, [sp, #0xc]
- add r7, r0, r4
- ldr r0, _02247310 ; =0x000021EC
- ldrb r5, [r7, r0]
- mov r0, #1
- str r0, [sp]
- ldr r0, [sp, #4]
- add r3, r5, #0
- bl MOD11_02244248
- cmp r0, #0
- beq _022472F8
- ldr r0, _02247310 ; =0x000021EC
- ldr r1, [sp, #0xc]
- strb r5, [r6, r0]
- strb r1, [r7, r0]
-_022472F8:
- ldr r0, [sp, #0x14]
- add r4, r4, #1
- cmp r4, r0
- blt _022472CE
-_02247300:
- ldr r0, [sp, #0x10]
- add r1, r0, #1
- ldr r0, [sp, #0x18]
- str r1, [sp, #0x10]
- cmp r1, r0
- blt _022472BE
-_0224730C:
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02247310: .word 0x000021EC
-
- thumb_func_start MOD11_02247314
-MOD11_02247314: ; 0x02247314
- push {r3, r4}
- mov r2, #6
- lsl r2, r2, #6
- ldr r2, [r1, r2]
- mov r1, #7
- lsl r1, r1, #0xc
- mov r0, #0
- tst r1, r2
- beq _0224733E
- ldr r4, _02247344 ; =0x0225E278
- add r2, r0, #0
-_0224732A:
- ldrh r1, [r4]
- cmp r3, r1
- bne _02247336
- mov r0, #1
- pop {r3, r4}
- bx lr
-_02247336:
- add r2, r2, #1
- add r4, r4, #2
- cmp r2, #6
- blo _0224732A
-_0224733E:
- pop {r3, r4}
- bx lr
- nop
-_02247344: .word 0x0225E278
-
- thumb_func_start MOD11_02247348
-MOD11_02247348: ; 0x02247348
- push {r3, r4}
- mov r4, #0xc0
- mul r4, r2
- add r2, r1, r4
- ldr r1, _02247378 ; =0x00002DCC
- mov r0, #0
- ldr r1, [r2, r1]
- lsl r1, r1, #0xd
- lsr r1, r1, #0x1d
- beq _02247374
- ldr r4, _0224737C ; =0x0225E29E
- add r2, r0, #0
-_02247360:
- ldrh r1, [r4]
- cmp r3, r1
- bne _0224736C
- mov r0, #1
- pop {r3, r4}
- bx lr
-_0224736C:
- add r2, r2, #1
- add r4, r4, #2
- cmp r2, #0xe
- blo _02247360
-_02247374:
- pop {r3, r4}
- bx lr
- .align 2, 0
-_02247378: .word 0x00002DCC
-_0224737C: .word 0x0225E29E
-
- thumb_func_start MOD11_02247380
-MOD11_02247380: ; 0x02247380
- push {r4, r5, r6, r7}
- mov r0, #0xc1
- lsl r0, r0, #6
- ldr r3, [r1, r0]
- ldr r0, _022473E8 ; =0x00000183
- cmp r3, r0
- beq _022473E4
- ldr r4, [r1, #0x64]
- mov r0, #0xc0
- add r2, r4, #0
- mul r2, r0
- ldr r4, _022473EC ; =0x00002DCC
- add r0, r1, r2
- ldr r4, [r0, r4]
- lsl r4, r4, #0x13
- lsr r7, r4, #0x1d
- cmp r7, #4
- beq _022473E4
- mov r6, #0
- cmp r7, #0
- bls _022473BA
- ldr r4, _022473F0 ; =0x00002DF0
-_022473AC:
- ldrh r5, [r0, r4]
- cmp r3, r5
- beq _022473E4
- add r6, r6, #1
- add r0, r0, #2
- cmp r6, r7
- blo _022473AC
-_022473BA:
- add r2, r1, r2
- lsl r0, r6, #1
- add r2, r2, r0
- ldr r0, _022473F0 ; =0x00002DF0
- strh r3, [r2, r0]
- sub r0, #0x24
- add r2, r1, r0
- ldr r3, [r1, #0x64]
- mov r0, #0xc0
- add r1, r3, #0
- mul r1, r0
- ldr r3, [r2, r1]
- ldr r0, _022473F4 ; =0xFFFFE3FF
- and r0, r3
- lsl r3, r3, #0x13
- lsr r3, r3, #0x1d
- add r3, r3, #1
- lsl r3, r3, #0x1d
- lsr r3, r3, #0x13
- orr r0, r3
- str r0, [r2, r1]
-_022473E4:
- pop {r4, r5, r6, r7}
- bx lr
- .align 2, 0
-_022473E8: .word 0x00000183
-_022473EC: .word 0x00002DCC
-_022473F0: .word 0x00002DF0
-_022473F4: .word 0xFFFFE3FF
-
- thumb_func_start MOD11_022473F8
-MOD11_022473F8: ; 0x022473F8
- mov r3, #0xc0
- mul r3, r2
- add r3, r1, r3
- ldr r1, _02247414 ; =0x00002D4C
- mov r0, #0
-_02247402:
- ldrh r2, [r3, r1]
- cmp r2, #0
- beq _02247410
- add r0, r0, #1
- add r3, r3, #2
- cmp r0, #4
- blt _02247402
-_02247410:
- bx lr
- nop
-_02247414: .word 0x00002D4C
-
- thumb_func_start MOD11_02247418
-MOD11_02247418: ; 0x02247418
- push {r3, r4, r5, r6, r7, lr}
- add r4, r2, #0
- mov r2, #0
- add r5, r0, #0
- add r7, r1, #0
- str r2, [sp]
- bl MOD11_02246D1C
- cmp r0, #0x60
- bne _02247430
- mov r6, #0
- b _02247444
-_02247430:
- ldr r0, _02247594 ; =0x00002160
- ldr r6, [r5, r0]
- cmp r6, #0
- bne _02247444
- ldr r0, _02247598 ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _0224759C ; =0x000003E2
- ldrb r6, [r1, r0]
-_02247444:
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- mov r3, #0xa
- bl MOD11_02246D84
- cmp r0, #1
- bne _02247474
- cmp r6, #0xd
- bne _02247474
- cmp r7, r4
- beq _02247474
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022475A0 ; =0x00002D90
- ldr r0, [r1, r0]
- mov r1, #4
- bl MOD11_022476C0
- ldr r1, _022475A4 ; =0x0000215C
- str r0, [r5, r1]
- mov r0, #0xb2
- str r0, [sp]
-_02247474:
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- mov r3, #0xb
- bl MOD11_02246D84
- cmp r0, #1
- bne _022474BA
- cmp r6, #0xb
- bne _022474BA
- ldr r0, _022475A8 ; =0x0000213C
- ldr r1, [r5, r0]
- mov r0, #0x20
- tst r0, r1
- bne _022474BA
- ldr r0, _02247598 ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _022475AC ; =0x000003E1
- ldrb r0, [r1, r0]
- cmp r0, #0
- beq _022474BA
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022475A0 ; =0x00002D90
- ldr r0, [r1, r0]
- mov r1, #4
- bl MOD11_022476C0
- ldr r1, _022475A4 ; =0x0000215C
- str r0, [r5, r1]
- mov r0, #0xb2
- str r0, [sp]
-_022474BA:
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- mov r3, #0x12
- bl MOD11_02246D84
- cmp r0, #1
- bne _02247500
- cmp r6, #0xa
- bne _02247500
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022475B0 ; =0x00002DAC
- ldr r0, [r1, r0]
- mov r1, #0x20
- tst r0, r1
- bne _02247500
- ldr r0, _022475A8 ; =0x0000213C
- ldr r0, [r5, r0]
- tst r0, r1
- bne _02247500
- ldr r0, _02247598 ; =0x00003044
- ldr r3, [r5, r0]
- lsl r0, r3, #4
- add r2, r5, r0
- ldr r0, _022475AC ; =0x000003E1
- ldrb r0, [r2, r0]
- cmp r0, #0
- bne _022474FC
- add r1, #0xe5
- cmp r3, r1
- bne _02247500
-_022474FC:
- mov r0, #0xb3
- str r0, [sp]
-_02247500:
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- mov r3, #0x2b
- bl MOD11_02246D84
- cmp r0, #1
- bne _0224752C
- ldr r0, _02247598 ; =0x00003044
- ldr r2, _022475B4 ; =0x0225FF84
- ldr r3, [r5, r0]
- mov r1, #0
-_02247518:
- ldrh r0, [r2]
- cmp r3, r0
- bne _02247524
- mov r0, #0xb5
- str r0, [sp]
- b _0224752C
-_02247524:
- add r1, r1, #1
- add r2, r2, #2
- cmp r1, #0xc
- blo _02247518
-_0224752C:
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- mov r3, #0x4e
- bl MOD11_02246D84
- cmp r0, #1
- bne _02247548
- cmp r6, #0xd
- bne _02247548
- cmp r7, r4
- beq _02247548
- mov r0, #0xb6
- str r0, [sp]
-_02247548:
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- mov r3, #0x57
- bl MOD11_02246D84
- cmp r0, #1
- bne _0224758E
- cmp r6, #0xb
- bne _0224758E
- ldr r0, _022475A8 ; =0x0000213C
- ldr r1, [r5, r0]
- mov r0, #0x20
- tst r0, r1
- bne _0224758E
- ldr r0, _02247598 ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _022475AC ; =0x000003E1
- ldrb r0, [r1, r0]
- cmp r0, #0
- beq _0224758E
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022475A0 ; =0x00002D90
- ldr r0, [r1, r0]
- mov r1, #4
- bl MOD11_022476C0
- ldr r1, _022475A4 ; =0x0000215C
- str r0, [r5, r1]
- mov r0, #0xb2
- str r0, [sp]
-_0224758E:
- ldr r0, [sp]
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02247594: .word 0x00002160
-_02247598: .word 0x00003044
-_0224759C: .word 0x000003E2
-_022475A0: .word 0x00002D90
-_022475A4: .word 0x0000215C
-_022475A8: .word 0x0000213C
-_022475AC: .word 0x000003E1
-_022475B0: .word 0x00002DAC
-_022475B4: .word 0x0225FF84
-
- thumb_func_start MOD11_022475B8
-MOD11_022475B8: ; 0x022475B8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- add r4, r1, #0
- mov r6, #0
- bl MOD11_02246D1C
- cmp r0, #3
- beq _022475D0
- cmp r0, #0x3d
- beq _02247616
- b _02247696
-_022475D0:
- mov r2, #0xc0
- add r0, r4, #0
- mul r0, r2
- ldr r3, _022476B4 ; =0x00002D8C
- add r0, r5, r0
- ldr r1, [r0, r3]
- cmp r1, #0
- beq _02247696
- add r1, r3, #0
- sub r1, #0x31
- ldrsb r1, [r0, r1]
- cmp r1, #0xc
- bge _02247696
- add r2, #0x90
- ldr r1, [r5, r2]
- add r3, #0x48
- ldr r0, [r0, r3]
- add r1, r1, #1
- cmp r1, r0
- beq _02247696
- add r0, r5, #0
- mov r1, #0x11
- add r0, #0x8c
- str r1, [r0]
- add r0, r5, #0
- mov r1, #3
- add r0, #0x88
- str r1, [r0]
- add r0, r5, #0
- add r0, #0x94
- str r4, [r0]
- mov r0, #0xc
- str r0, [sp]
- mov r6, #1
- b _02247696
-_02247616:
- ldr r1, _022476B8 ; =0x00002DAC
- mov r0, #0xc0
- add r7, r4, #0
- mul r7, r0
- add r0, r5, r1
- str r0, [sp, #4]
- ldr r0, [r0, r7]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- beq _02247696
- add r0, r5, r7
- sub r1, #0x20
- ldr r0, [r0, r1]
- cmp r0, #0
- beq _02247696
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- cmp r1, #3
- bge _02247696
- ldr r0, [sp, #4]
- mov r1, #7
- ldr r0, [r0, r7]
- tst r1, r0
- beq _02247656
- mov r0, #0x13
- add r1, r6, #0
- lsl r0, r0, #4
- str r1, [r5, r0]
- b _0224768A
-_02247656:
- ldr r1, _022476BC ; =0x00000F88
- tst r1, r0
- beq _02247666
- mov r0, #0x13
- mov r1, #1
- lsl r0, r0, #4
- str r1, [r5, r0]
- b _0224768A
-_02247666:
- mov r1, #0x10
- tst r1, r0
- beq _02247676
- mov r0, #0x13
- mov r1, #2
- lsl r0, r0, #4
- str r1, [r5, r0]
- b _0224768A
-_02247676:
- mov r1, #0x40
- tst r0, r1
- beq _02247684
- mov r0, #3
- add r1, #0xf0
- str r0, [r5, r1]
- b _0224768A
-_02247684:
- mov r0, #4
- add r1, #0xf0
- str r0, [r5, r1]
-_0224768A:
- mov r0, #0x46
- lsl r0, r0, #2
- str r4, [r5, r0]
- mov r0, #0xbe
- str r0, [sp]
- mov r6, #1
-_02247696:
- cmp r6, #1
- bne _022476AC
- ldr r2, [sp]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r5, #8]
- str r0, [r5, #0xc]
- mov r0, #0x15
- str r0, [r5, #8]
-_022476AC:
- add r0, r6, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022476B4: .word 0x00002D8C
-_022476B8: .word 0x00002DAC
-_022476BC: .word 0x00000F88
-
- thumb_func_start MOD11_022476C0
-MOD11_022476C0: ; 0x022476C0
- push {r4, lr}
- cmp r0, #0
- bge _022476CC
- mov r4, #0
- mvn r4, r4
- b _022476CE
-_022476CC:
- mov r4, #1
-_022476CE:
- bl _s32_div_f
- cmp r0, #0
- bne _022476D8
- add r0, r4, #0
-_022476D8:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022476DC
-MOD11_022476DC: ; 0x022476DC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0xd0
- add r7, r0, #0
- add r4, r1, #0
- bl MOD11_0222FF84
- str r0, [sp, #0x80]
- mov r0, #0
- str r0, [sp, #0x84]
- str r0, [sp, #0xcc]
-
- thumb_func_start MOD11_022476F0
-MOD11_022476F0: ; 0x022476F0
- ldr r0, [r4, #0x58]
- cmp r0, #0xf
- bls _022476FA
- bl _02248282
-_022476FA:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02247706: ; jump table
- .short _02247726 - _02247706 - 2 ; case 0
- .short _022477A2 - _02247706 - 2 ; case 1
- .short _0224785A - _02247706 - 2 ; case 2
- .short _0224796A - _02247706 - 2 ; case 3
- .short _022479E0 - _02247706 - 2 ; case 4
- .short _02247B34 - _02247706 - 2 ; case 5
- .short _02247C74 - _02247706 - 2 ; case 6
- .short _02247E76 - _02247706 - 2 ; case 7
- .short _02247FCC - _02247706 - 2 ; case 8
- .short _022480A4 - _02247706 - 2 ; case 9
- .short _02248118 - _02247706 - 2 ; case 10
- .short _022481A6 - _02247706 - 2 ; case 11
- .short _022481C4 - _02247706 - 2 ; case 12
- .short _022481FE - _02247706 - 2 ; case 13
- .short _0224823A - _02247706 - 2 ; case 14
- .short _0224827A - _02247706 - 2 ; case 15
-_02247726:
- ldr r0, _02247A18 ; =0x00003121
- ldrb r0, [r4, r0]
- cmp r0, #0
- bne _02247798
- add r0, r7, #0
- bl MOD11_0223125C
- cmp r0, #0xf
- bhi _0224778C
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02247744: ; jump table
- .short _0224778C - _02247744 - 2 ; case 0
- .short _0224778C - _02247744 - 2 ; case 1
- .short _02247764 - _02247744 - 2 ; case 2
- .short _02247764 - _02247744 - 2 ; case 3
- .short _02247764 - _02247744 - 2 ; case 4
- .short _0224776E - _02247744 - 2 ; case 5
- .short _0224776E - _02247744 - 2 ; case 6
- .short _0224776E - _02247744 - 2 ; case 7
- .short _0224778C - _02247744 - 2 ; case 8
- .short _0224778C - _02247744 - 2 ; case 9
- .short _0224777A - _02247744 - 2 ; case 10
- .short _0224778C - _02247744 - 2 ; case 11
- .short _0224778C - _02247744 - 2 ; case 12
- .short _0224778C - _02247744 - 2 ; case 13
- .short _02247784 - _02247744 - 2 ; case 14
- .short _02247784 - _02247744 - 2 ; case 15
-_02247764:
- ldr r0, _02247A1C ; =0x0000010F
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _0224778C
-_0224776E:
- mov r0, #0x11
- lsl r0, r0, #4
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _0224778C
-_0224777A:
- ldr r0, _02247A20 ; =0x00000111
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _0224778C
-_02247784:
- ldr r0, _02247A24 ; =0x00000112
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
-_0224778C:
- ldr r0, [sp, #0x84]
- cmp r0, #1
- bne _02247798
- ldr r0, _02247A18 ; =0x00003121
- mov r1, #1
- strb r1, [r4, r0]
-_02247798:
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- bl _02248282
-_022477A2:
- ldr r0, [sp, #0x80]
- mov r6, #0
- cmp r0, #0
- ble _02247846
- ldr r0, _02247A28 ; =0x00002D68
- add r0, r4, r0
- str r0, [sp, #0x90]
-_022477B0:
- ldr r0, _02247A2C ; =0x000021EC
- add r1, r4, r6
- ldrb r5, [r1, r0]
- add r0, r7, #0
- mov r2, #0
- add r1, r5, #0
- bl MOD11_02230308
- str r0, [sp, #0x88]
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #2
- bl MOD11_02230308
- add r2, r0, #0
- ldr r1, [sp, #0x88]
- add r0, r4, #0
- bl MOD11_0224C84C
- mov r1, #0x12
- lsl r1, r1, #4
- str r0, [r4, r1]
- mov r0, #0xc0
- mul r0, r5
- ldr r1, [sp, #0x90]
- str r0, [sp, #0x8c]
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- bne _0224783E
- mov r0, #0x12
- lsl r0, r0, #4
- ldr r2, [r4, r0]
- cmp r2, #0xff
- beq _0224783E
- ldr r0, [sp, #0x8c]
- add r1, r4, r0
- ldr r0, _02247A30 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0224783E
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _02247A30 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0224783E
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x24
- bne _0224783E
- ldr r1, [sp, #0x90]
- ldr r0, [sp, #0x8c]
- ldr r1, [r1, r0]
- mov r0, #4
- add r2, r1, #0
- orr r2, r0
- ldr r1, [sp, #0x90]
- ldr r0, [sp, #0x8c]
- str r2, [r1, r0]
- mov r0, #0x46
- lsl r0, r0, #2
- str r5, [r4, r0]
- mov r0, #0xbb
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02247846
-_0224783E:
- ldr r0, [sp, #0x80]
- add r6, r6, #1
- cmp r6, r0
- blt _022477B0
-_02247846:
- ldr r0, [sp, #0x80]
- cmp r6, r0
- beq _02247850
- bl _02248282
-_02247850:
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- bl _02248282
-_0224785A:
- mov r0, #0
- str r0, [sp, #0x2c]
- ldr r0, [sp, #0x80]
- cmp r0, #0
- ble _02247958
- ldr r0, _02247A28 ; =0x00002D68
- add r6, r4, r0
- mov r0, #1
- str r0, [sp, #0xbc]
- str r0, [sp, #0xb8]
- str r0, [sp, #0xb4]
- str r0, [sp, #0xb0]
-_02247872:
- ldr r0, [sp, #0x2c]
- add r1, r4, r0
- ldr r0, _02247A2C ; =0x000021EC
- ldrb r1, [r1, r0]
- mov r0, #0xc0
- add r5, r1, #0
- mul r5, r0
- ldr r0, [r6, r5]
- str r1, [sp, #0x10]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _0224793C
- ldr r0, _02247A30 ; =0x00002D8C
- add r1, r4, r5
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0224793C
- ldr r1, [sp, #0x10]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x2d
- bgt _022478A8
- bge _022478D8
- cmp r0, #2
- beq _022478B6
- b _0224793C
-_022478A8:
- cmp r0, #0x46
- bgt _022478B0
- beq _022478FA
- b _0224793C
-_022478B0:
- cmp r0, #0x75
- beq _0224791C
- b _0224793C
-_022478B6:
- ldr r0, [r6, r5]
- ldr r1, [sp, #0xb0]
- bic r0, r1
- mov r1, #1
- orr r0, r1
- str r0, [r6, r5]
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #2
- tst r0, r1
- bne _0224793C
- mov r0, #0xb7
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _0224793C
-_022478D8:
- ldr r0, [r6, r5]
- ldr r1, [sp, #0xb4]
- bic r0, r1
- mov r1, #1
- orr r0, r1
- str r0, [r6, r5]
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #8
- tst r0, r1
- bne _0224793C
- mov r0, #0xb8
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _0224793C
-_022478FA:
- ldr r0, [r6, r5]
- ldr r1, [sp, #0xb8]
- bic r0, r1
- mov r1, #1
- orr r0, r1
- str r0, [r6, r5]
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0x20
- tst r0, r1
- bne _0224793C
- mov r0, #0xb9
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _0224793C
-_0224791C:
- ldr r0, [r6, r5]
- ldr r1, [sp, #0xbc]
- bic r0, r1
- mov r1, #1
- orr r0, r1
- str r0, [r6, r5]
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0x80
- tst r0, r1
- bne _0224793C
- mov r0, #0xfc
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
-_0224793C:
- ldr r0, [sp, #0x84]
- cmp r0, #1
- bne _0224794C
- mov r1, #0x46
- ldr r0, [sp, #0x10]
- lsl r1, r1, #2
- str r0, [r4, r1]
- b _02247958
-_0224794C:
- ldr r0, [sp, #0x2c]
- add r1, r0, #1
- ldr r0, [sp, #0x80]
- str r1, [sp, #0x2c]
- cmp r1, r0
- blt _02247872
-_02247958:
- ldr r1, [sp, #0x2c]
- ldr r0, [sp, #0x80]
- cmp r1, r0
- bne _022479D2
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- bl _02248282
-_0224796A:
- ldr r0, [sp, #0x80]
- mov r5, #0
- cmp r0, #0
- ble _022479CC
- ldr r0, _02247A28 ; =0x00002D68
- add r0, r4, r0
- str r0, [sp, #0x94]
-_02247978:
- ldr r0, _02247A2C ; =0x000021EC
- add r1, r4, r5
- ldrb r1, [r1, r0]
- mov r0, #0xc0
- add r6, r1, #0
- mul r6, r0
- ldr r0, [sp, #0x94]
- str r1, [sp, #0x14]
- ldr r0, [r0, r6]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- bne _022479C4
- ldr r0, _02247A30 ; =0x00002D8C
- add r1, r4, r6
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _022479C4
- ldr r1, [sp, #0x14]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x16
- bne _022479C4
- ldr r0, [sp, #0x94]
- ldr r1, [r0, r6]
- mov r0, #2
- orr r1, r0
- ldr r0, [sp, #0x94]
- str r1, [r0, r6]
- mov r1, #0x46
- ldr r0, [sp, #0x14]
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r0, #0xba
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _022479CC
-_022479C4:
- ldr r0, [sp, #0x80]
- add r5, r5, #1
- cmp r5, r0
- blt _02247978
-_022479CC:
- ldr r0, [sp, #0x80]
- cmp r5, r0
- beq _022479D6
-_022479D2:
- bl _02248282
-_022479D6:
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- bl _02248282
-_022479E0:
- mov r0, #0
- str r0, [sp, #0x30]
- ldr r0, [sp, #0x80]
- cmp r0, #0
- bgt _022479EC
- b _02247B22
-_022479EC:
- ldr r0, _02247A28 ; =0x00002D68
- add r0, r4, r0
- str r0, [sp, #0x9c]
-_022479F2:
- ldr r0, [sp, #0x30]
- add r1, r4, r0
- ldr r0, _02247A2C ; =0x000021EC
- ldrb r1, [r1, r0]
- mov r0, #0xc0
- mul r0, r1
- str r1, [sp, #0x18]
- ldr r1, [sp, #0x9c]
- str r0, [sp, #0x98]
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- beq _02247A0E
- b _02247B14
-_02247A0E:
- ldr r0, [sp, #0x98]
- add r1, r4, r0
- ldr r0, _02247A30 ; =0x00002D8C
- b _02247A34
- nop
-_02247A18: .word 0x00003121
-_02247A1C: .word 0x0000010F
-_02247A20: .word 0x00000111
-_02247A24: .word 0x00000112
-_02247A28: .word 0x00002D68
-_02247A2C: .word 0x000021EC
-_02247A30: .word 0x00002D8C
-_02247A34:
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02247B14
- ldr r1, [sp, #0x18]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x58
- bne _02247B14
- mov r0, #0
- str r0, [sp, #0x78]
- str r0, [sp, #0x74]
- str r0, [sp, #0x7c]
- ldr r0, [sp, #0x80]
- cmp r0, #0
- ble _02247ACE
- add r5, r4, #0
-_02247A56:
- ldr r1, [sp, #0x18]
- add r0, r7, #0
- bl MOD11_02230270
- add r6, r0, #0
- ldr r1, [sp, #0x7c]
- add r0, r7, #0
- bl MOD11_02230270
- cmp r6, r0
- beq _02247AC0
- ldr r0, _02247D60 ; =0x00002DB0
- ldr r1, [r5, r0]
- mov r0, #1
- lsl r0, r0, #0x18
- tst r0, r1
- bne _02247AC0
- ldr r0, _02247D64 ; =0x00002D8C
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _02247AC0
- ldr r0, _02247D68 ; =0x00002D5A
- ldrsb r0, [r5, r0]
- lsl r2, r0, #1
- ldr r0, _02247D6C ; =0x0225E284
- add r1, r0, r2
- ldr r0, _02247D70 ; =0x00002D44
- ldrb r1, [r1, #1]
- ldrh r3, [r5, r0]
- ldr r0, _02247D6C ; =0x0225E284
- ldrb r0, [r0, r2]
- mul r0, r3
- bl _s32_div_f
- ldr r1, [sp, #0x78]
- add r0, r1, r0
- str r0, [sp, #0x78]
- ldr r0, _02247D74 ; =0x00002D5D
- ldrsb r0, [r5, r0]
- lsl r2, r0, #1
- ldr r0, _02247D6C ; =0x0225E284
- add r1, r0, r2
- ldr r0, _02247D78 ; =0x00002D4A
- ldrb r1, [r1, #1]
- ldrh r3, [r5, r0]
- ldr r0, _02247D6C ; =0x0225E284
- ldrb r0, [r0, r2]
- mul r0, r3
- bl _s32_div_f
- ldr r1, [sp, #0x74]
- add r0, r1, r0
- str r0, [sp, #0x74]
-_02247AC0:
- ldr r0, [sp, #0x7c]
- add r5, #0xc0
- add r1, r0, #1
- ldr r0, [sp, #0x80]
- str r1, [sp, #0x7c]
- cmp r1, r0
- blt _02247A56
-_02247ACE:
- ldr r1, [sp, #0x9c]
- ldr r0, [sp, #0x98]
- ldr r1, [r1, r0]
- mov r0, #8
- add r2, r1, #0
- orr r2, r0
- ldr r1, [sp, #0x9c]
- ldr r0, [sp, #0x98]
- str r2, [r1, r0]
- ldr r1, [sp, #0x78]
- ldr r0, [sp, #0x74]
- add r0, r1, r0
- beq _02247B14
- ldr r0, [sp, #0x74]
- cmp r1, r0
- blt _02247AF2
- mov r1, #0x12
- b _02247AF4
-_02247AF2:
- mov r1, #0xf
-_02247AF4:
- add r0, r4, #0
- add r0, #0x8c
- str r1, [r0]
- add r0, r4, #0
- mov r1, #3
- add r0, #0x88
- str r1, [r0]
- add r1, r4, #0
- ldr r0, [sp, #0x18]
- add r1, #0x94
- str r0, [r1]
- mov r0, #0xc
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02247B22
-_02247B14:
- ldr r0, [sp, #0x30]
- add r1, r0, #1
- ldr r0, [sp, #0x80]
- str r1, [sp, #0x30]
- cmp r1, r0
- bge _02247B22
- b _022479F2
-_02247B22:
- ldr r1, [sp, #0x30]
- ldr r0, [sp, #0x80]
- cmp r1, r0
- beq _02247B2C
- b _02248282
-_02247B2C:
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_02247B34:
- mov r0, #0
- str r0, [sp, #0x34]
- ldr r0, [sp, #0x80]
- cmp r0, #0
- bgt _02247B40
- b _02247C62
-_02247B40:
- ldr r0, _02247D7C ; =0x00002D68
- add r6, r4, r0
-_02247B44:
- ldr r0, [sp, #0x34]
- add r1, r4, r0
- ldr r0, _02247D80 ; =0x000021EC
- ldrb r1, [r1, r0]
- mov r0, #0xc0
- add r5, r1, #0
- mul r5, r0
- ldr r0, [r6, r5]
- str r1, [sp, #0x1c]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x1f
- bne _02247C54
- ldr r0, _02247D64 ; =0x00002D8C
- add r1, r4, r5
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02247C54
- ldr r1, [sp, #0x1c]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x6b
- bne _02247C54
- ldr r1, [r6, r5]
- mov r0, #0x10
- orr r0, r1
- str r0, [r6, r5]
- mov r0, #0
- str r0, [sp, #0x70]
- ldr r0, [sp, #0x80]
- cmp r0, #0
- ble _02247C40
- add r0, r4, r5
- str r4, [sp, #0x50]
- str r0, [sp, #0x4c]
-_02247B8A:
- ldr r1, [sp, #0x1c]
- add r0, r7, #0
- bl MOD11_02230270
- add r5, r0, #0
- ldr r1, [sp, #0x70]
- add r0, r7, #0
- bl MOD11_02230270
- cmp r5, r0
- beq _02247C2E
- ldr r1, [sp, #0x50]
- ldr r0, _02247D64 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02247C2E
- mov r0, #0
- str r0, [sp, #0x6c]
- add r6, r1, #0
-_02247BB0:
- ldr r0, _02247D84 ; =0x00002D4C
- ldrh r5, [r6, r0]
- cmp r5, #0
- beq _02247C1C
- mov r0, #0
- str r0, [sp, #0xc8]
- ldr r0, [sp, #0x70]
- add r1, r4, #0
- str r0, [sp]
- ldr r0, [sp, #0x1c]
- add r2, r5, #0
- str r0, [sp, #4]
- ldr r0, _02247D88 ; =0x00002144
- mov r3, #0
- ldr r0, [r4, r0]
- str r0, [sp, #8]
- add r0, sp, #0xc8
- str r0, [sp, #0xc]
- add r0, r7, #0
- bl MOD11_02246274
- ldr r1, _02247D88 ; =0x00002144
- str r0, [r4, r1]
- ldr r1, [sp, #0xc8]
- mov r0, #8
- tst r0, r1
- bne _02247C1C
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0224C8C0
- cmp r0, #0
- bne _02247C1C
- ldr r1, [sp, #0xc8]
- mov r0, #2
- tst r0, r1
- bne _02247C16
- lsl r0, r5, #4
- add r1, r4, r0
- ldr r0, _02247D8C ; =0x000003DE
- ldrh r0, [r1, r0]
- cmp r0, #0x26
- bne _02247C1C
- ldr r1, [sp, #0x4c]
- ldr r0, _02247D90 ; =0x00002D74
- ldr r2, [sp, #0x50]
- ldrb r0, [r1, r0]
- ldr r1, _02247D90 ; =0x00002D74
- ldrb r1, [r2, r1]
- cmp r0, r1
- bhi _02247C1C
-_02247C16:
- mov r0, #1
- str r0, [sp, #0x84]
- b _02247C28
-_02247C1C:
- ldr r0, [sp, #0x6c]
- add r6, r6, #2
- add r0, r0, #1
- str r0, [sp, #0x6c]
- cmp r0, #4
- blt _02247BB0
-_02247C28:
- ldr r0, [sp, #0x84]
- cmp r0, #1
- beq _02247C40
-_02247C2E:
- ldr r0, [sp, #0x50]
- add r0, #0xc0
- str r0, [sp, #0x50]
- ldr r0, [sp, #0x70]
- add r1, r0, #1
- ldr r0, [sp, #0x80]
- str r1, [sp, #0x70]
- cmp r1, r0
- blt _02247B8A
-_02247C40:
- ldr r0, [sp, #0x84]
- cmp r0, #1
- bne _02247C62
- mov r1, #0x46
- ldr r0, [sp, #0x1c]
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r0, #0xc2
- str r0, [sp, #0xcc]
- b _02247C62
-_02247C54:
- ldr r0, [sp, #0x34]
- add r1, r0, #1
- ldr r0, [sp, #0x80]
- str r1, [sp, #0x34]
- cmp r1, r0
- bge _02247C62
- b _02247B44
-_02247C62:
- ldr r1, [sp, #0x34]
- ldr r0, [sp, #0x80]
- cmp r1, r0
- beq _02247C6C
- b _02248282
-_02247C6C:
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_02247C74:
- mov r0, #0
- str r0, [sp, #0x38]
- ldr r0, [sp, #0x80]
- cmp r0, #0
- bgt _02247C80
- b _02247E64
-_02247C80:
- ldr r0, _02247D7C ; =0x00002D68
- add r6, r4, r0
-_02247C84:
- ldr r0, [sp, #0x38]
- add r1, r4, r0
- ldr r0, _02247D80 ; =0x000021EC
- ldrb r1, [r1, r0]
- mov r0, #0xc0
- add r5, r1, #0
- mul r5, r0
- ldr r0, [r6, r5]
- str r1, [sp, #0x20]
- lsl r0, r0, #0x1a
- lsr r0, r0, #0x1f
- bne _02247CB2
- ldr r0, _02247D64 ; =0x00002D8C
- add r1, r4, r5
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02247CB2
- ldr r1, [sp, #0x20]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x6c
- beq _02247CB4
-_02247CB2:
- b _02247E56
-_02247CB4:
- ldr r1, [r6, r5]
- mov r0, #0x20
- orr r0, r1
- str r0, [r6, r5]
- mov r5, #0
- ldr r0, [sp, #0x80]
- str r5, [sp, #0x5c]
- str r5, [sp, #0x68]
- cmp r0, #0
- bgt _02247CCA
- b _02247DF2
-_02247CCA:
- str r4, [sp, #0x58]
-_02247CCC:
- ldr r1, [sp, #0x20]
- add r0, r7, #0
- bl MOD11_02230270
- add r6, r0, #0
- ldr r1, [sp, #0x68]
- add r0, r7, #0
- bl MOD11_02230270
- cmp r6, r0
- beq _02247DDE
- ldr r1, [sp, #0x58]
- ldr r0, _02247D64 ; =0x00002D8C
- ldr r1, [r1, r0]
- cmp r1, #0
- beq _02247DDE
- ldr r0, [sp, #0x5c]
- add r0, r0, r1
- str r0, [sp, #0x5c]
- mov r0, #0
- str r0, [sp, #0x64]
- ldr r0, [sp, #0x58]
- str r0, [sp, #0x54]
-_02247CFA:
- ldr r1, [sp, #0x54]
- ldr r0, _02247D84 ; =0x00002D4C
- ldrh r6, [r1, r0]
- ldr r1, _02247D94 ; =0x000003E1
- lsl r0, r6, #4
- add r0, r4, r0
- ldrb r1, [r0, r1]
- str r1, [sp, #0x60]
- cmp r1, #1
- bne _02247DB2
- ldr r1, _02247D8C ; =0x000003DE
- ldrh r0, [r0, r1]
- cmp r0, #0x59
- bgt _02247D1E
- bge _02247D46
- cmp r0, #0x26
- beq _02247D2C
- b _02247D98
-_02247D1E:
- cmp r0, #0x90
- bgt _02247D26
- beq _02247D46
- b _02247D98
-_02247D26:
- cmp r0, #0xe3
- beq _02247D46
- b _02247D98
-_02247D2C:
- cmp r5, #0x96
- blo _02247D3C
- bne _02247DCE
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _02247DCE
-_02247D3C:
- mov r5, #0x96
- add r0, r5, #0
- add r0, #0x8e
- str r6, [r4, r0]
- b _02247DCE
-_02247D46:
- cmp r5, #0x78
- blo _02247D56
- bne _02247DCE
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _02247DCE
-_02247D56:
- mov r5, #0x78
- add r0, r5, #0
- add r0, #0xac
- str r6, [r4, r0]
- b _02247DCE
- .align 2, 0
-_02247D60: .word 0x00002DB0
-_02247D64: .word 0x00002D8C
-_02247D68: .word 0x00002D5A
-_02247D6C: .word 0x0225E284
-_02247D70: .word 0x00002D44
-_02247D74: .word 0x00002D5D
-_02247D78: .word 0x00002D4A
-_02247D7C: .word 0x00002D68
-_02247D80: .word 0x000021EC
-_02247D84: .word 0x00002D4C
-_02247D88: .word 0x00002144
-_02247D8C: .word 0x000003DE
-_02247D90: .word 0x00002D74
-_02247D94: .word 0x000003E1
-_02247D98:
- cmp r5, #0x50
- blo _02247DA8
- bne _02247DCE
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _02247DCE
-_02247DA8:
- mov r5, #0x50
- add r0, r5, #0
- add r0, #0xd4
- str r6, [r4, r0]
- b _02247DCE
-_02247DB2:
- add r0, r1, #0
- cmp r5, r0
- blo _02247DC6
- cmp r5, r0
- bne _02247DCE
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _02247DCE
-_02247DC6:
- mov r0, #0x49
- lsl r0, r0, #2
- ldr r5, [sp, #0x60]
- str r6, [r4, r0]
-_02247DCE:
- ldr r0, [sp, #0x54]
- add r0, r0, #2
- str r0, [sp, #0x54]
- ldr r0, [sp, #0x64]
- add r0, r0, #1
- str r0, [sp, #0x64]
- cmp r0, #4
- blt _02247CFA
-_02247DDE:
- ldr r0, [sp, #0x58]
- add r0, #0xc0
- str r0, [sp, #0x58]
- ldr r0, [sp, #0x68]
- add r1, r0, #1
- ldr r0, [sp, #0x80]
- str r1, [sp, #0x68]
- cmp r1, r0
- bge _02247DF2
- b _02247CCC
-_02247DF2:
- cmp r5, #0
- beq _02247E08
- mov r1, #0x46
- ldr r0, [sp, #0x20]
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r0, #0xc3
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02247E64
-_02247E08:
- ldr r0, [sp, #0x5c]
- cmp r0, #0
- beq _02247E64
- ldr r2, [sp, #0x20]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_022482A4
- add r5, r0, #0
- add r0, r7, #0
- add r1, r4, #0
- add r2, r5, #0
- bl MOD11_022473F8
- add r6, r0, #0
- bl rand_LC
- add r1, r6, #0
- bl _s32_div_f
- mov r0, #0xc0
- add r2, r5, #0
- mul r2, r0
- lsl r3, r1, #1
- add r1, r4, r2
- add r2, r3, r1
- ldr r1, _02248144 ; =0x00002D4C
- ldrh r2, [r2, r1]
- add r1, r0, #0
- add r1, #0x64
- str r2, [r4, r1]
- ldr r1, [sp, #0x20]
- add r0, #0x58
- str r1, [r4, r0]
- mov r0, #0xc3
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02247E64
-_02247E56:
- ldr r0, [sp, #0x38]
- add r1, r0, #1
- ldr r0, [sp, #0x80]
- str r1, [sp, #0x38]
- cmp r1, r0
- bge _02247E64
- b _02247C84
-_02247E64:
- ldr r1, [sp, #0x38]
- ldr r0, [sp, #0x80]
- cmp r1, r0
- beq _02247E6E
- b _02248282
-_02247E6E:
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_02247E76:
- mov r0, #0
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x80]
- cmp r0, #0
- bgt _02247E82
- b _02247FBA
-_02247E82:
- ldr r0, _02248148 ; =0x00002D68
- add r0, r4, r0
- str r0, [sp, #0xa0]
-_02247E88:
- ldr r0, [sp, #0x3c]
- add r1, r4, r0
- ldr r0, _0224814C ; =0x000021EC
- ldrb r5, [r1, r0]
- mov r0, #0xc0
- add r6, r5, #0
- mul r6, r0
- ldr r0, [sp, #0xa0]
- ldr r0, [r0, r6]
- lsl r0, r0, #0x17
- lsr r0, r0, #0x1f
- bne _02247F9A
- ldr r0, _02248150 ; =0x00002D8C
- add r1, r4, r6
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02247F9A
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x77
- bne _02247F9A
- ldr r0, [sp, #0xa0]
- ldr r1, [r0, r6]
- mov r0, #1
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, [sp, #0xa0]
- str r1, [r0, r6]
- add r0, r7, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _02247F74
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #0
- bl MOD11_02230308
- str r0, [sp, #0xc0]
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #2
- bl MOD11_02230308
- ldr r2, [sp, #0xc0]
- mov r1, #0xc0
- mul r1, r2
- ldr r2, _02248150 ; =0x00002D8C
- add r1, r4, r1
- ldr r3, [r1, r2]
- str r0, [sp, #0xc4]
- cmp r3, #0
- beq _02247F38
- add r2, #0x2c
- ldrh r2, [r1, r2]
- cmp r2, #0
- beq _02247F38
- mov r2, #0xc0
- mul r2, r0
- add r0, r4, r2
- ldr r2, _02248150 ; =0x00002D8C
- ldr r2, [r0, r2]
- cmp r2, #0
- beq _02247F38
- ldr r2, _02248154 ; =0x00002DB8
- ldrh r0, [r0, r2]
- cmp r0, #0
- beq _02247F38
- bl rand_LC
- lsl r0, r0, #0x1f
- lsr r1, r0, #0x1d
- add r0, sp, #0xc0
- ldr r1, [r0, r1]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _02248154 ; =0x00002DB8
- ldrh r1, [r1, r0]
- mov r0, #0x4a
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02247F9A
-_02247F38:
- cmp r3, #0
- beq _02247F50
- ldr r0, _02248154 ; =0x00002DB8
- ldrh r1, [r1, r0]
- cmp r1, #0
- beq _02247F50
- mov r0, #0x4a
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02247F9A
-_02247F50:
- ldr r1, [sp, #0xc4]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _02248150 ; =0x00002D8C
- add r0, r4, r0
- ldr r1, [r0, r1]
- cmp r1, #0
- beq _02247F9A
- ldr r1, _02248154 ; =0x00002DB8
- ldrh r1, [r0, r1]
- cmp r1, #0
- beq _02247F9A
- mov r0, #0x4a
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02247F9A
-_02247F74:
- mov r0, #1
- add r1, r5, #0
- eor r1, r0
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _02248150 ; =0x00002D8C
- add r0, r4, r0
- ldr r1, [r0, r1]
- cmp r1, #0
- beq _02247F9A
- ldr r1, _02248154 ; =0x00002DB8
- ldrh r1, [r0, r1]
- cmp r1, #0
- beq _02247F9A
- mov r0, #0x4a
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r0, #1
- str r0, [sp, #0x84]
-_02247F9A:
- ldr r0, [sp, #0x84]
- cmp r0, #1
- bne _02247FAC
- mov r0, #0x46
- lsl r0, r0, #2
- str r5, [r4, r0]
- mov r0, #0xfd
- str r0, [sp, #0xcc]
- b _02247FBA
-_02247FAC:
- ldr r0, [sp, #0x3c]
- add r1, r0, #1
- ldr r0, [sp, #0x80]
- str r1, [sp, #0x3c]
- cmp r1, r0
- bge _02247FBA
- b _02247E88
-_02247FBA:
- ldr r1, [sp, #0x3c]
- ldr r0, [sp, #0x80]
- cmp r1, r0
- beq _02247FC4
- b _02248282
-_02247FC4:
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_02247FCC:
- mov r0, #0
- str r0, [sp, #0x40]
- ldr r0, [sp, #0x80]
- cmp r0, #0
- ble _02248094
- ldr r0, _02248148 ; =0x00002D68
- add r0, r4, r0
- str r0, [sp, #0xa4]
-_02247FDC:
- ldr r0, [sp, #0x40]
- add r1, r4, r0
- ldr r0, _0224814C ; =0x000021EC
- ldrb r6, [r1, r0]
- mov r0, #0xc0
- add r5, r6, #0
- mul r5, r0
- ldr r0, [sp, #0xa4]
- ldr r0, [r0, r5]
- lsl r0, r0, #0x19
- lsr r0, r0, #0x1f
- bne _02248038
- ldr r0, _02248150 ; =0x00002D8C
- add r1, r4, r5
- ldr r0, [r1, r0]
- str r1, [sp, #0x48]
- cmp r0, #0
- beq _02248038
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x70
- bne _02248038
- mov r0, #0x15
- lsl r0, r0, #4
- ldr r2, [r4, r0]
- ldr r1, [sp, #0x48]
- ldr r0, _02248158 ; =0x00002DD8
- ldr r0, [r1, r0]
- cmp r2, r0
- bgt _02248038
- ldr r0, [sp, #0xa4]
- mov r2, #0x40
- ldr r0, [r0, r5]
- add r1, r0, #0
- orr r1, r2
- ldr r0, [sp, #0xa4]
- add r2, #0xd8
- str r1, [r0, r5]
- str r6, [r4, r2]
- mov r0, #0xc4
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02248094
-_02248038:
- ldr r0, [sp, #0xa4]
- ldr r0, [r0, r5]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1f
- bne _02248088
- ldr r0, _02248150 ; =0x00002D8C
- add r1, r4, r5
- ldr r0, [r1, r0]
- str r1, [sp, #0x44]
- cmp r0, #0
- beq _02248088
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x70
- bne _02248088
- mov r0, #0x15
- lsl r0, r0, #4
- ldr r2, [r4, r0]
- ldr r1, [sp, #0x44]
- ldr r0, _02248158 ; =0x00002DD8
- ldr r0, [r1, r0]
- sub r0, r2, r0
- cmp r0, #5
- bne _02248088
- ldr r0, [sp, #0xa4]
- mov r2, #0x80
- ldr r0, [r0, r5]
- add r1, r0, #0
- orr r1, r2
- ldr r0, [sp, #0xa4]
- add r2, #0x98
- str r1, [r0, r5]
- str r6, [r4, r2]
- mov r0, #0xc5
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02248094
-_02248088:
- ldr r0, [sp, #0x40]
- add r1, r0, #1
- ldr r0, [sp, #0x80]
- str r1, [sp, #0x40]
- cmp r1, r0
- blt _02247FDC
-_02248094:
- ldr r1, [sp, #0x40]
- ldr r0, [sp, #0x80]
- cmp r1, r0
- bne _0224810E
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_022480A4:
- ldr r0, [sp, #0x80]
- mov r5, #0
- cmp r0, #0
- ble _02248108
- ldr r0, _02248148 ; =0x00002D68
- add r0, r4, r0
- str r0, [sp, #0xa8]
-_022480B2:
- ldr r0, _0224814C ; =0x000021EC
- add r1, r4, r5
- ldrb r1, [r1, r0]
- mov r0, #0xc0
- add r6, r1, #0
- mul r6, r0
- ldr r0, [sp, #0xa8]
- str r1, [sp, #0x24]
- ldr r0, [r0, r6]
- lsl r0, r0, #0x16
- lsr r0, r0, #0x1f
- bne _02248100
- ldr r0, _02248150 ; =0x00002D8C
- add r1, r4, r6
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02248100
- ldr r1, [sp, #0x24]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x68
- bne _02248100
- ldr r0, [sp, #0xa8]
- mov r2, #2
- ldr r0, [r0, r6]
- lsl r2, r2, #8
- add r1, r0, #0
- orr r1, r2
- ldr r0, [sp, #0xa8]
- sub r2, #0xe8
- str r1, [r0, r6]
- ldr r0, [sp, #0x24]
- str r0, [r4, r2]
- mov r0, #0xb1
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02248108
-_02248100:
- ldr r0, [sp, #0x80]
- add r5, r5, #1
- cmp r5, r0
- blt _022480B2
-_02248108:
- ldr r0, [sp, #0x80]
- cmp r5, r0
- beq _02248110
-_0224810E:
- b _02248282
-_02248110:
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_02248118:
- ldr r0, [sp, #0x80]
- mov r5, #0
- cmp r0, #0
- ble _02248198
- ldr r0, _02248148 ; =0x00002D68
- add r0, r4, r0
- str r0, [sp, #0xac]
-_02248126:
- ldr r0, _0224814C ; =0x000021EC
- add r1, r4, r5
- ldrb r1, [r1, r0]
- mov r0, #0xc0
- add r6, r1, #0
- mul r6, r0
- ldr r0, [sp, #0xac]
- str r1, [sp, #0x28]
- ldr r0, [r0, r6]
- lsl r0, r0, #0x15
- lsr r0, r0, #0x1f
- bne _02248190
- ldr r0, _02248150 ; =0x00002D8C
- b _0224815C
- nop
-_02248144: .word 0x00002D4C
-_02248148: .word 0x00002D68
-_0224814C: .word 0x000021EC
-_02248150: .word 0x00002D8C
-_02248154: .word 0x00002DB8
-_02248158: .word 0x00002DD8
-_0224815C:
- add r1, r4, r6
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02248190
- ldr r1, [sp, #0x28]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x2e
- bne _02248190
- ldr r0, [sp, #0xac]
- ldr r1, [r0, r6]
- mov r0, #1
- lsl r0, r0, #0xa
- orr r1, r0
- ldr r0, [sp, #0xac]
- str r1, [r0, r6]
- mov r1, #0x46
- ldr r0, [sp, #0x28]
- lsl r1, r1, #2
- str r0, [r4, r1]
- add r0, r1, #5
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02248198
-_02248190:
- ldr r0, [sp, #0x80]
- add r5, r5, #1
- cmp r5, r0
- blt _02248126
-_02248198:
- ldr r0, [sp, #0x80]
- cmp r5, r0
- bne _02248282
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_022481A6:
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_0224AE78
- cmp r0, #1
- bne _022481BC
- ldr r0, _02248294 ; =0x00000106
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02248282
-_022481BC:
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_022481C4:
- ldr r0, [sp, #0x80]
- mov r5, #0
- cmp r0, #0
- ble _022481F6
- mov r6, #2
-_022481CE:
- ldr r1, _02248298 ; =0x000021EC
- add r2, r4, r5
- ldrb r2, [r2, r1]
- mov r1, #0xc0
- add r0, r4, #0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _0224829C ; =0x00002DB8
- ldrh r1, [r2, r1]
- mov r2, #1
- bl MOD11_0224C12C
- cmp r0, #0x39
- bne _022481EE
- ldr r0, _022482A0 ; =0x00002168
- str r6, [r4, r0]
-_022481EE:
- ldr r0, [sp, #0x80]
- add r5, r5, #1
- cmp r5, r0
- blt _022481CE
-_022481F6:
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_022481FE:
- ldr r0, [sp, #0x80]
- mov r5, #0
- cmp r0, #0
- ble _0224822C
- ldr r6, _02248298 ; =0x000021EC
-_02248208:
- add r2, r4, r5
- ldrb r2, [r2, r6]
- add r0, r7, #0
- add r1, r4, #0
- mov r3, #1
- bl MOD11_02248898
- cmp r0, #1
- bne _02248224
- mov r0, #0xdd
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _0224822C
-_02248224:
- ldr r0, [sp, #0x80]
- add r5, r5, #1
- cmp r5, r0
- blt _02248208
-_0224822C:
- ldr r0, [sp, #0x80]
- cmp r5, r0
- bne _02248282
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_0224823A:
- ldr r0, [sp, #0x80]
- mov r5, #0
- cmp r0, #0
- ble _0224826C
-_02248242:
- ldr r0, _02248298 ; =0x000021EC
- add r1, r4, r5
- ldrb r6, [r1, r0]
- add r0, r7, #0
- add r1, r4, #0
- add r2, r6, #0
- add r3, sp, #0xcc
- bl MOD11_022493A0
- cmp r0, #1
- bne _02248264
- mov r0, #0x46
- lsl r0, r0, #2
- str r6, [r4, r0]
- mov r0, #1
- str r0, [sp, #0x84]
- b _0224826C
-_02248264:
- ldr r0, [sp, #0x80]
- add r5, r5, #1
- cmp r5, r0
- blt _02248242
-_0224826C:
- ldr r0, [sp, #0x80]
- cmp r5, r0
- bne _02248282
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_0224827A:
- mov r0, #0
- str r0, [r4, #0x58]
- mov r0, #2
- str r0, [sp, #0x84]
-_02248282:
- ldr r0, [sp, #0x84]
- cmp r0, #0
- bne _0224828C
- bl MOD11_022476F0
-_0224828C:
- ldr r0, [sp, #0xcc]
- add sp, #0xd0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02248294: .word 0x00000106
-_02248298: .word 0x000021EC
-_0224829C: .word 0x00002DB8
-_022482A0: .word 0x00002168
-
- thumb_func_start MOD11_022482A4
-MOD11_022482A4: ; 0x022482A4
- push {r4, r5, r6, lr}
- sub sp, #8
- add r5, r0, #0
- add r6, r1, #0
- add r4, r2, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _022482FA
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0
- bl MOD11_02230308
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #2
- bl MOD11_02230308
- str r0, [sp, #4]
- bl rand_LC
- mov r3, #1
- add r2, r0, #0
- and r2, r3
- lsl r0, r2, #2
- add r1, sp, #0
- ldr r0, [r1, r0]
- mov r4, #0xc0
- mul r4, r0
- add r5, r6, r4
- ldr r4, _02248304 ; =0x00002D8C
- ldr r4, [r5, r4]
- cmp r4, #0
- bne _022482FE
- add r0, r2, #0
- eor r0, r3
- lsl r0, r0, #2
- add sp, #8
- ldr r0, [r1, r0]
- pop {r4, r5, r6, pc}
-_022482FA:
- mov r0, #1
- eor r0, r4
-_022482FE:
- add sp, #8
- pop {r4, r5, r6, pc}
- nop
-_02248304: .word 0x00002D8C
-
- thumb_func_start MOD11_02248308
-MOD11_02248308: ; 0x02248308
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- ldr r1, [r5, #0x6c]
- add r7, r0, #0
- add r4, r2, #0
- mov r6, #0
- cmp r1, #0xff
- bne _0224831C
- add r0, r6, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0224831C:
- add r0, r5, #0
- bl MOD11_0224AD9C
- cmp r0, #1
- bne _0224832A
- add r0, r6, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0224832A:
- ldr r1, [r5, #0x6c]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x26
- bgt _0224835A
- blt _0224833A
- b _022485FC
-_0224833A:
- cmp r0, #0x10
- bgt _02248346
- bge _02248408
- cmp r0, #9
- beq _02248372
- b _0224887A
-_02248346:
- cmp r0, #0x1b
- bgt _02248358
- cmp r0, #0x18
- blt _02248358
- bne _02248352
- b _022484B0
-_02248352:
- cmp r0, #0x1b
- bne _02248358
- b _02248546
-_02248358:
- b _0224887A
-_0224835A:
- cmp r0, #0x38
- bgt _0224836A
- blt _02248362
- b _02248752
-_02248362:
- cmp r0, #0x31
- bne _02248368
- b _022486BE
-_02248368:
- b _0224887A
-_0224836A:
- cmp r0, #0x6a
- bne _02248370
- b _022487FA
-_02248370:
- b _0224887A
-_02248372:
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02248660 ; =0x00002D8C
- ldr r1, [r2, r0]
- cmp r1, #0
- beq _022483E6
- add r1, r0, #0
- add r1, #0x20
- ldr r1, [r2, r1]
- cmp r1, #0
- bne _022483E6
- ldr r2, _02248664 ; =0x0000216C
- ldr r1, _02248668 ; =0x801FDA49
- ldr r3, [r5, r2]
- tst r1, r3
- bne _022483E6
- add r1, r2, #0
- sub r1, #0x30
- ldr r3, [r5, r1]
- mov r1, #0x20
- tst r1, r3
- bne _022483E6
- sub r2, #0x2c
- ldr r2, [r5, r2]
- mov r1, #0x10
- tst r1, r2
- bne _022483E6
- ldr r2, [r5, #0x6c]
- mov r1, #0x1c
- mul r1, r2
- add r1, r5, r1
- lsr r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _022483C6
- mov r0, #0x2e
- lsl r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _022483E6
-_022483C6:
- ldr r0, _0224866C ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02248670 ; =0x000003E9
- ldrb r1, [r1, r0]
- mov r0, #1
- tst r0, r1
- beq _022483E6
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- cmp r1, #3
- blt _022483E8
-_022483E6:
- b _0224887A
-_022483E8:
- add r0, r5, #0
- mov r1, #3
- add r0, #0x88
- str r1, [r0]
- add r0, r5, #0
- ldr r1, [r5, #0x64]
- add r0, #0x94
- str r1, [r0]
- mov r0, #0x46
- ldr r1, [r5, #0x6c]
- lsl r0, r0, #2
- str r1, [r5, r0]
- mov r0, #0x1f
- str r0, [r4]
- mov r6, #1
- b _0224887A
-_02248408:
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x60
- bne _02248418
- add r7, r6, #0
- b _02248432
-_02248418:
- ldr r0, _02248674 ; =0x00002160
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _02248426
- lsl r0, r0, #0x18
- lsr r7, r0, #0x18
- b _02248432
-_02248426:
- ldr r0, _0224866C ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02248678 ; =0x000003E2
- ldrb r7, [r1, r0]
-_02248432:
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02248660 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _02248516
- ldr r0, _02248664 ; =0x0000216C
- ldr r2, [r5, r0]
- ldr r0, _02248668 ; =0x801FDA49
- tst r0, r2
- bne _02248516
- ldr r0, _0224866C ; =0x00003044
- ldr r3, [r5, r0]
- cmp r3, #0xa5
- beq _02248516
- mov r0, #0x1c
- ldr r2, _02248660 ; =0x00002D8C
- mul r0, r1
- add r0, r5, r0
- lsr r2, r2, #4
- ldr r2, [r0, r2]
- cmp r2, #0
- bne _0224846E
- mov r2, #0x2e
- lsl r2, r2, #4
- ldr r0, [r0, r2]
- cmp r0, #0
- beq _02248516
-_0224846E:
- mov r0, #0x85
- lsl r0, r0, #6
- ldr r2, [r5, r0]
- mov r0, #0x10
- tst r0, r2
- bne _02248516
- lsl r0, r3, #4
- add r2, r5, r0
- ldr r0, _0224867C ; =0x000003E1
- ldrb r0, [r2, r0]
- cmp r0, #0
- beq _02248516
- add r0, r5, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r7, r0
- beq _02248516
- ldr r1, [r5, #0x6c]
- add r0, r5, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r7, r0
- beq _02248516
- mov r0, #0xbc
- str r0, [r4]
- add r0, #0x74
- str r7, [r5, r0]
- mov r6, #1
- b _0224887A
-_022484B0:
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02248660 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _02248516
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _02248516
- ldr r1, _02248664 ; =0x0000216C
- ldr r0, _02248668 ; =0x801FDA49
- ldr r2, [r5, r1]
- tst r0, r2
- bne _02248516
- add r0, r1, #0
- sub r0, #0x30
- ldr r2, [r5, r0]
- mov r0, #0x20
- tst r0, r2
- bne _02248516
- sub r1, #0x2c
- ldr r1, [r5, r1]
- mov r0, #0x10
- tst r0, r1
- bne _02248516
- ldr r1, [r5, #0x6c]
- mov r0, #0x1c
- mul r0, r1
- add r2, r5, r0
- mov r0, #0xb6
- lsl r0, r0, #2
- ldr r1, [r2, r0]
- cmp r1, #0
- bne _02248504
- add r0, #8
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _02248516
-_02248504:
- ldr r0, _0224866C ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02248670 ; =0x000003E9
- ldrb r1, [r1, r0]
- mov r0, #1
- tst r0, r1
- bne _02248518
-_02248516:
- b _0224887A
-_02248518:
- ldr r0, [r5, #0x64]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _02248680 ; =0x00002D90
- add r2, r5, r2
- ldr r2, [r2, r0]
- sub r1, #0xc1
- add r0, r2, #0
- mul r0, r1
- mov r1, #8
- bl MOD11_022476C0
- ldr r1, _02248684 ; =0x0000215C
- mov r6, #1
- str r0, [r5, r1]
- mov r0, #0x46
- ldr r1, [r5, #0x64]
- lsl r0, r0, #2
- str r1, [r5, r0]
- mov r0, #0xbd
- str r0, [r4]
- b _0224887A
-_02248546:
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02248660 ; =0x00002D8C
- ldr r1, [r2, r0]
- cmp r1, #0
- beq _02248650
- add r1, r0, #0
- add r1, #0x20
- ldr r1, [r2, r1]
- cmp r1, #0
- bne _02248650
- ldr r2, _02248664 ; =0x0000216C
- ldr r1, _02248668 ; =0x801FDA49
- ldr r3, [r5, r2]
- tst r1, r3
- bne _02248650
- add r1, r2, #0
- sub r1, #0x30
- ldr r3, [r5, r1]
- mov r1, #0x20
- tst r1, r3
- bne _02248650
- sub r2, #0x2c
- ldr r2, [r5, r2]
- mov r1, #0x10
- tst r1, r2
- bne _02248650
- ldr r2, [r5, #0x6c]
- mov r1, #0x1c
- mul r1, r2
- add r1, r5, r1
- lsr r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _0224859A
- mov r0, #0x2e
- lsl r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02248650
-_0224859A:
- ldr r0, _0224866C ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02248670 ; =0x000003E9
- ldrb r1, [r1, r0]
- mov r0, #1
- tst r0, r1
- beq _02248650
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- cmp r1, #3
- bge _02248650
- bl rand_LC
- mov r1, #3
- bl _s32_div_f
- cmp r1, #0
- beq _022485D0
- cmp r1, #1
- beq _022485D6
- cmp r1, #2
- beq _022485DC
-_022485D0:
- mov r0, #0x16
- str r0, [r4]
- b _022485E0
-_022485D6:
- mov r0, #0x1f
- str r0, [r4]
- b _022485E0
-_022485DC:
- mov r0, #0x12
- str r0, [r4]
-_022485E0:
- add r0, r5, #0
- mov r1, #3
- add r0, #0x88
- str r1, [r0]
- add r0, r5, #0
- ldr r1, [r5, #0x64]
- add r0, #0x94
- str r1, [r0]
- mov r0, #0x46
- ldr r1, [r5, #0x6c]
- lsl r0, r0, #2
- str r1, [r5, r0]
- mov r6, #1
- b _0224887A
-_022485FC:
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02248660 ; =0x00002D8C
- ldr r1, [r2, r0]
- cmp r1, #0
- beq _02248650
- add r1, r0, #0
- add r1, #0x20
- ldr r1, [r2, r1]
- cmp r1, #0
- bne _02248650
- ldr r2, _02248664 ; =0x0000216C
- ldr r1, _02248668 ; =0x801FDA49
- ldr r3, [r5, r2]
- tst r1, r3
- bne _02248650
- add r1, r2, #0
- sub r1, #0x30
- ldr r3, [r5, r1]
- mov r1, #0x20
- tst r1, r3
- bne _02248650
- sub r2, #0x2c
- ldr r2, [r5, r2]
- mov r1, #0x10
- tst r1, r2
- bne _02248650
- ldr r2, [r5, #0x6c]
- mov r1, #0x1c
- mul r1, r2
- add r1, r5, r1
- lsr r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02248652
- mov r0, #0x2e
- lsl r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02248652
-_02248650:
- b _0224887A
-_02248652:
- ldr r0, _0224866C ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02248670 ; =0x000003E9
- b _02248688
- nop
-_02248660: .word 0x00002D8C
-_02248664: .word 0x0000216C
-_02248668: .word 0x801FDA49
-_0224866C: .word 0x00003044
-_02248670: .word 0x000003E9
-_02248674: .word 0x00002160
-_02248678: .word 0x000003E2
-_0224867C: .word 0x000003E1
-_02248680: .word 0x00002D90
-_02248684: .word 0x0000215C
-_02248688:
- ldrb r1, [r1, r0]
- mov r0, #1
- tst r0, r1
- beq _02248770
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- cmp r1, #3
- bge _02248770
- add r0, r5, #0
- mov r1, #3
- add r0, #0x88
- str r1, [r0]
- add r0, r5, #0
- ldr r1, [r5, #0x64]
- add r0, #0x94
- str r1, [r0]
- mov r0, #0x46
- ldr r1, [r5, #0x6c]
- lsl r0, r0, #2
- str r1, [r5, r0]
- mov r0, #0x16
- str r0, [r4]
- mov r6, #1
- b _0224887A
-_022486BE:
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02248880 ; =0x00002D8C
- ldr r1, [r2, r0]
- cmp r1, #0
- beq _02248770
- add r1, r0, #0
- add r1, #0x20
- ldr r1, [r2, r1]
- cmp r1, #0
- bne _02248770
- ldr r2, _02248884 ; =0x0000216C
- ldr r1, _02248888 ; =0x801FDA49
- ldr r3, [r5, r2]
- tst r1, r3
- bne _02248770
- add r1, r2, #0
- sub r1, #0x30
- ldr r3, [r5, r1]
- mov r1, #0x20
- tst r1, r3
- bne _02248770
- sub r2, #0x2c
- ldr r2, [r5, r2]
- mov r1, #0x10
- tst r1, r2
- bne _02248770
- ldr r2, [r5, #0x6c]
- mov r1, #0x1c
- mul r1, r2
- add r1, r5, r1
- lsr r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02248712
- mov r0, #0x2e
- lsl r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02248770
-_02248712:
- ldr r0, _0224888C ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02248890 ; =0x000003E9
- ldrb r1, [r1, r0]
- mov r0, #1
- tst r0, r1
- beq _02248770
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- cmp r1, #3
- bge _02248770
- add r0, r5, #0
- mov r1, #3
- add r0, #0x88
- str r1, [r0]
- add r0, r5, #0
- ldr r1, [r5, #0x64]
- add r0, #0x94
- str r1, [r0]
- mov r0, #0x46
- ldr r1, [r5, #0x6c]
- lsl r0, r0, #2
- str r1, [r5, r0]
- mov r0, #0x19
- str r0, [r4]
- mov r6, #1
- b _0224887A
-_02248752:
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02248880 ; =0x00002D8C
- ldr r1, [r2, r0]
- cmp r1, #0
- beq _02248770
- add r1, r0, #0
- add r1, #0x24
- ldr r2, [r2, r1]
- mov r1, #0xf
- lsl r1, r1, #0x10
- tst r1, r2
- beq _02248772
-_02248770:
- b _0224887A
-_02248772:
- ldr r2, _02248884 ; =0x0000216C
- ldr r1, _02248888 ; =0x801FDA49
- ldr r3, [r5, r2]
- tst r1, r3
- bne _0224887A
- add r1, r2, #0
- sub r1, #0x30
- ldr r3, [r5, r1]
- mov r1, #0x20
- tst r1, r3
- bne _0224887A
- sub r2, #0x2c
- ldr r2, [r5, r2]
- mov r1, #0x10
- tst r1, r2
- bne _0224887A
- ldr r2, [r5, #0x6c]
- mov r1, #0x1c
- mul r1, r2
- add r1, r5, r1
- lsr r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _022487AC
- mov r0, #0x2e
- lsl r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0224887A
-_022487AC:
- ldr r0, _0224888C ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02248890 ; =0x000003E9
- ldrb r1, [r1, r0]
- mov r0, #1
- tst r0, r1
- beq _0224887A
- mov r0, #0xc0
- mul r0, r2
- add r1, r5, r0
- ldr r0, _02248880 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0224887A
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- cmp r1, #3
- bge _0224887A
- add r0, r5, #0
- mov r1, #3
- add r0, #0x88
- str r1, [r0]
- add r0, r5, #0
- ldr r1, [r5, #0x64]
- add r0, #0x94
- str r1, [r0]
- mov r0, #0x46
- ldr r1, [r5, #0x6c]
- lsl r0, r0, #2
- str r1, [r5, r0]
- mov r0, #0x6a
- str r0, [r4]
- mov r6, #1
- b _0224887A
-_022487FA:
- ldr r1, [r5, #0x6c]
- ldr r0, [r5, #0x74]
- cmp r1, r0
- bne _0224887A
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _0224887A
- mov r0, #6
- str r0, [sp]
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #8
- add r3, r6, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224887A
- mov r2, #0x85
- lsl r2, r2, #6
- ldr r1, [r5, r2]
- mov r0, #0x10
- tst r0, r1
- bne _0224887A
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02248880 ; =0x00002D8C
- ldr r3, [r1, r0]
- cmp r3, #0
- beq _0224887A
- add r2, #0x2c
- ldr r3, [r5, r2]
- ldr r2, _02248888 ; =0x801FDA49
- tst r2, r3
- bne _0224887A
- ldr r2, _0224888C ; =0x00003044
- ldr r2, [r5, r2]
- lsl r2, r2, #4
- add r3, r5, r2
- ldr r2, _02248890 ; =0x000003E9
- ldrb r3, [r3, r2]
- mov r2, #1
- tst r3, r2
- beq _0224887A
- add r0, r0, #4
- ldr r1, [r1, r0]
- sub r0, r2, #2
- mul r0, r1
- mov r1, #4
- bl MOD11_022476C0
- ldr r1, _02248894 ; =0x0000215C
- mov r6, #1
- str r0, [r5, r1]
- mov r0, #0x46
- ldr r1, [r5, #0x64]
- lsl r0, r0, #2
- str r1, [r5, r0]
- mov r0, #0xc1
- str r0, [r4]
-_0224887A:
- add r0, r6, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02248880: .word 0x00002D8C
-_02248884: .word 0x0000216C
-_02248888: .word 0x801FDA49
-_0224888C: .word 0x00003044
-_02248890: .word 0x000003E9
-_02248894: .word 0x0000215C
-
- thumb_func_start MOD11_02248898
-MOD11_02248898: ; 0x02248898
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r2, #0
- add r0, r4, #0
- add r1, r5, #0
- add r7, r3, #0
- mov r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x28
- bgt _022488DE
- bge _02248978
- cmp r0, #7
- bgt _022488B8
- beq _02248926
- b _022489D0
-_022488B8:
- add r1, r0, #0
- sub r1, #0xc
- cmp r1, #8
- bhi _022488E8
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022488CC: ; jump table
- .short _02248994 - _022488CC - 2 ; case 0
- .short _022489D0 - _022488CC - 2 ; case 1
- .short _022489D0 - _022488CC - 2 ; case 2
- .short _02248940 - _022488CC - 2 ; case 3
- .short _022489D0 - _022488CC - 2 ; case 4
- .short _022488F0 - _022488CC - 2 ; case 5
- .short _022489D0 - _022488CC - 2 ; case 6
- .short _022489D0 - _022488CC - 2 ; case 7
- .short _0224890A - _022488CC - 2 ; case 8
-_022488DE:
- cmp r0, #0x48
- bgt _022488EA
- bge _02248940
- cmp r0, #0x29
- beq _0224895C
-_022488E8:
- b _022489D0
-_022488EA:
- cmp r0, #0x54
- beq _022489B2
- b _022489D0
-_022488F0:
- mov r0, #0xc0
- add r1, r5, #0
- mul r1, r0
- add r2, r4, r1
- ldr r1, _02248A04 ; =0x00002DAC
- ldr r2, [r2, r1]
- ldr r1, _02248A08 ; =0x00000F88
- tst r1, r2
- beq _022489D0
- mov r6, #1
- add r0, #0x70
- str r6, [r4, r0]
- b _022489D0
-_0224890A:
- mov r0, #0xc0
- add r1, r5, #0
- mul r1, r0
- add r2, r4, r1
- ldr r1, _02248A0C ; =0x00002DB0
- ldr r2, [r2, r1]
- mov r1, #7
- tst r1, r2
- beq _022489D0
- mov r1, #5
- add r0, #0x70
- str r1, [r4, r0]
- mov r6, #1
- b _022489D0
-_02248926:
- mov r0, #0xc0
- mul r0, r5
- add r1, r4, r0
- ldr r0, _02248A04 ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x40
- tst r1, r0
- beq _022489D0
- mov r1, #3
- add r0, #0xf0
- str r1, [r4, r0]
- mov r6, #1
- b _022489D0
-_02248940:
- mov r0, #0xc0
- add r1, r5, #0
- mul r1, r0
- add r2, r4, r1
- ldr r1, _02248A04 ; =0x00002DAC
- ldr r2, [r2, r1]
- mov r1, #7
- tst r1, r2
- beq _022489D0
- mov r1, #0
- add r0, #0x70
- str r1, [r4, r0]
- mov r6, #1
- b _022489D0
-_0224895C:
- mov r0, #0xc0
- add r1, r5, #0
- mul r1, r0
- add r2, r4, r1
- ldr r1, _02248A04 ; =0x00002DAC
- ldr r2, [r2, r1]
- mov r1, #0x10
- tst r1, r2
- beq _022489D0
- mov r1, #2
- add r0, #0x70
- str r1, [r4, r0]
- mov r6, #1
- b _022489D0
-_02248978:
- mov r0, #0xc0
- add r1, r5, #0
- mul r1, r0
- add r2, r4, r1
- ldr r1, _02248A04 ; =0x00002DAC
- ldr r2, [r2, r1]
- mov r1, #0x20
- tst r1, r2
- beq _022489D0
- mov r1, #4
- add r0, #0x70
- str r1, [r4, r0]
- mov r6, #1
- b _022489D0
-_02248994:
- mov r0, #0xc0
- add r1, r5, #0
- mul r1, r0
- add r2, r4, r1
- ldr r1, _02248A0C ; =0x00002DB0
- ldr r2, [r2, r1]
- mov r1, #0xf
- lsl r1, r1, #0x10
- tst r1, r2
- beq _022489D0
- mov r1, #6
- add r0, #0x70
- str r1, [r4, r0]
- mov r6, #1
- b _022489D0
-_022489B2:
- mov r0, #0xc0
- add r3, r5, #0
- mul r3, r0
- ldr r0, _02248A10 ; =0x00002DB8
- add r1, r4, r3
- ldrh r1, [r1, r0]
- cmp r1, #0
- beq _022489D0
- add r0, #0x14
- add r2, r4, r0
- mov r0, #1
- ldr r1, [r2, r3]
- lsl r0, r0, #0x16
- orr r0, r1
- str r0, [r2, r3]
-_022489D0:
- cmp r6, #1
- bne _022489FE
- mov r0, #0x46
- lsl r0, r0, #2
- str r5, [r4, r0]
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02246D1C
- mov r1, #0x4b
- lsl r1, r1, #2
- str r0, [r4, r1]
- cmp r7, #0
- bne _022489FE
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xdd
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_022489FE:
- add r0, r6, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02248A04: .word 0x00002DAC
-_02248A08: .word 0x00000F88
-_02248A0C: .word 0x00002DB0
-_02248A10: .word 0x00002DB8
-
- thumb_func_start MOD11_02248A14
-MOD11_02248A14: ; 0x02248A14
- mov r0, #0
- cmp r1, #0x28
- bgt _02248A34
- bge _02248A6A
- cmp r1, #7
- bgt _02248A24
- beq _02248A4C
- bx lr
-_02248A24:
- cmp r1, #0x11
- bgt _02248A72
- cmp r1, #0xf
- blt _02248A72
- beq _02248A56
- cmp r1, #0x11
- beq _02248A42
- bx lr
-_02248A34:
- cmp r1, #0x29
- bgt _02248A3C
- beq _02248A60
- bx lr
-_02248A3C:
- cmp r1, #0x48
- beq _02248A56
- bx lr
-_02248A42:
- ldr r1, _02248A74 ; =0x00000F88
- tst r1, r2
- beq _02248A72
- mov r0, #1
- bx lr
-_02248A4C:
- mov r1, #0x40
- tst r1, r2
- beq _02248A72
- mov r0, #1
- bx lr
-_02248A56:
- mov r1, #7
- tst r1, r2
- beq _02248A72
- mov r0, #1
- bx lr
-_02248A60:
- mov r1, #0x10
- tst r1, r2
- beq _02248A72
- mov r0, #1
- bx lr
-_02248A6A:
- mov r1, #0x20
- tst r1, r2
- beq _02248A72
- mov r0, #1
-_02248A72:
- bx lr
- .align 2, 0
-_02248A74: .word 0x00000F88
-
- thumb_func_start MOD11_02248A78
-MOD11_02248A78: ; 0x02248A78
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- ldr r1, [r4, #0x6c]
- str r0, [sp]
- mov r7, #0
- add r0, r4, #0
- add r6, r2, #0
- add r5, r7, #0
- bl MOD11_02246D1C
- cmp r0, #0x1c
- bne _02248ABA
- ldr r0, [r4, #0x6c]
- cmp r0, #0xff
- beq _02248ABA
- add r1, r4, #0
- add r1, #0x94
- ldr r1, [r1]
- cmp r0, r1
- bne _02248ABA
- ldr r1, _02248BFC ; =0x0000213C
- ldr r2, [r4, r1]
- mov r1, #0x80
- tst r2, r1
- beq _02248ABA
- add r1, #0x98
- str r0, [r4, r1]
- add r0, r4, #0
- ldr r1, [r4, #0x64]
- add r0, #0x94
- str r1, [r0]
- mov r7, #1
- b _02248AEA
-_02248ABA:
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x1c
- bne _02248AEA
- add r1, r4, #0
- add r1, #0x94
- ldr r0, [r4, #0x64]
- ldr r1, [r1]
- cmp r0, r1
- bne _02248AEA
- ldr r1, _02248BFC ; =0x0000213C
- ldr r2, [r4, r1]
- mov r1, #0x80
- tst r2, r1
- beq _02248AEA
- add r1, #0x98
- str r0, [r4, r1]
- add r0, r4, #0
- ldr r1, [r4, #0x6c]
- add r0, #0x94
- str r1, [r0]
- mov r7, #1
-_02248AEA:
- cmp r7, #1
- bne _02248B3A
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r1, [r4, r0]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _02248C00 ; =0x00002DAC
- ldr r0, [r1, r0]
- ldr r1, _02248C04 ; =0x00000F88
- tst r1, r0
- beq _02248B08
- mov r5, #0x16
- b _02248B1A
-_02248B08:
- mov r1, #0x10
- tst r1, r0
- beq _02248B12
- mov r5, #0x19
- b _02248B1A
-_02248B12:
- mov r1, #0x40
- tst r0, r1
- beq _02248B1A
- mov r5, #0x1f
-_02248B1A:
- cmp r5, #0
- beq _02248B3A
- add r0, r4, #0
- mov r1, #3
- add r0, #0x88
- str r1, [r0]
- add r0, r4, #0
- mov r1, #1
- add r2, r5, #0
- bl MOD11_022431DC
- str r6, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- add r0, r7, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02248B3A:
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_0224AE78
- add r5, r0, #0
- cmp r5, #1
- bne _02248B5C
- ldr r2, _02248C08 ; =0x00000106
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- str r6, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- add r0, r5, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02248B5C:
- ldr r1, [r4, #0x6c]
- add r0, r4, #0
- bl MOD11_02249D90
- cmp r0, #0x6b
- bne _02248B9C
- ldr r0, [r4, #0x6c]
- cmp r0, #0xff
- beq _02248B9C
- add r1, r4, #0
- add r1, #0x94
- ldr r1, [r1]
- cmp r0, r1
- bne _02248B9C
- mov r1, #0x1c
- add r2, r0, #0
- mul r2, r1
- add r3, r4, r2
- mov r2, #0xba
- lsl r2, r2, #2
- ldr r3, [r3, r2]
- mov r2, #4
- tst r2, r3
- beq _02248B9C
- add r1, #0xfc
- str r0, [r4, r1]
- add r0, r4, #0
- ldr r1, [r4, #0x64]
- add r0, #0x94
- str r1, [r0]
- mov r5, #1
- b _02248BD6
-_02248B9C:
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02249D90
- cmp r0, #0x6b
- bne _02248BD6
- add r1, r4, #0
- add r1, #0x94
- ldr r0, [r4, #0x64]
- ldr r1, [r1]
- cmp r0, r1
- bne _02248BD6
- mov r1, #0x1c
- add r2, r0, #0
- mul r2, r1
- add r3, r4, r2
- mov r2, #0xba
- lsl r2, r2, #2
- ldr r3, [r3, r2]
- mov r2, #4
- tst r2, r3
- beq _02248BD6
- add r1, #0xfc
- str r0, [r4, r1]
- add r0, r4, #0
- ldr r1, [r4, #0x6c]
- add r0, #0x94
- str r1, [r0]
- mov r5, #1
-_02248BD6:
- cmp r5, #1
- bne _02248BF6
- add r0, r4, #0
- mov r1, #5
- add r0, #0x88
- str r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x6a
- bl MOD11_022431DC
- str r6, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- add r0, r5, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02248BF6:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02248BFC: .word 0x0000213C
-_02248C00: .word 0x00002DAC
-_02248C04: .word 0x00000F88
-_02248C08: .word 0x00000106
-
- thumb_func_start MOD11_02248C0C
-MOD11_02248C0C: ; 0x02248C0C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- str r0, [sp]
- add r4, r1, #0
- mov r0, #0
- str r0, [sp, #0xc]
- str r2, [sp, #4]
- add r0, r4, #0
- add r1, r2, #0
- bl MOD11_02249D90
- str r0, [sp, #0x10]
- ldr r1, [sp, #4]
- add r0, r4, #0
- mov r2, #0
- bl MOD11_02249DA4
- add r6, r0, #0
- ldr r0, [sp, #4]
- mov r3, #0xc0
- add r5, r0, #0
- ldr r0, _02248F50 ; =0x00002D8C
- mul r5, r3
- add r1, r4, r0
- ldr r2, [r1, r5]
- str r1, [sp, #0x14]
- cmp r2, #0
- bne _02248C46
- b _02249274
-_02248C46:
- ldr r1, [sp, #0x10]
- cmp r1, #0x35
- bhi _02248CE8
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02248C58: ; jump table
- .short _02249246 - _02248C58 - 2 ; case 0
- .short _02248CC4 - _02248C58 - 2 ; case 1
- .short _02249246 - _02248C58 - 2 ; case 2
- .short _02249246 - _02248C58 - 2 ; case 3
- .short _02248D00 - _02248C58 - 2 ; case 4
- .short _02248D14 - _02248C58 - 2 ; case 5
- .short _02248D28 - _02248C58 - 2 ; case 6
- .short _02248D3C - _02248C58 - 2 ; case 7
- .short _02248D50 - _02248C58 - 2 ; case 8
- .short _02248D64 - _02248C58 - 2 ; case 9
- .short _02248DC6 - _02248C58 - 2 ; case 10
- .short _02248DDA - _02248C58 - 2 ; case 11
- .short _02248CDC - _02248C58 - 2 ; case 12
- .short _02248E3A - _02248C58 - 2 ; case 13
- .short _02248E76 - _02248C58 - 2 ; case 14
- .short _02248EB2 - _02248C58 - 2 ; case 15
- .short _02248EEE - _02248C58 - 2 ; case 16
- .short _02248F2C - _02248C58 - 2 ; case 17
- .short _02249246 - _02248C58 - 2 ; case 18
- .short _02249246 - _02248C58 - 2 ; case 19
- .short _02249246 - _02248C58 - 2 ; case 20
- .short _02249246 - _02248C58 - 2 ; case 21
- .short _02249246 - _02248C58 - 2 ; case 22
- .short _02249246 - _02248C58 - 2 ; case 23
- .short _02249246 - _02248C58 - 2 ; case 24
- .short _02249246 - _02248C58 - 2 ; case 25
- .short _02249246 - _02248C58 - 2 ; case 26
- .short _02249246 - _02248C58 - 2 ; case 27
- .short _02249246 - _02248C58 - 2 ; case 28
- .short _02249246 - _02248C58 - 2 ; case 29
- .short _02249246 - _02248C58 - 2 ; case 30
- .short _02249246 - _02248C58 - 2 ; case 31
- .short _02249246 - _02248C58 - 2 ; case 32
- .short _02249246 - _02248C58 - 2 ; case 33
- .short _02249246 - _02248C58 - 2 ; case 34
- .short _02248F86 - _02248C58 - 2 ; case 35
- .short _02248FCA - _02248C58 - 2 ; case 36
- .short _02249012 - _02248C58 - 2 ; case 37
- .short _02249058 - _02248C58 - 2 ; case 38
- .short _0224909E - _02248C58 - 2 ; case 39
- .short _022490E4 - _02248C58 - 2 ; case 40
- .short _02249128 - _02248C58 - 2 ; case 41
- .short _02249246 - _02248C58 - 2 ; case 42
- .short _022491D8 - _02248C58 - 2 ; case 43
- .short _0224920C - _02248C58 - 2 ; case 44
- .short _02249246 - _02248C58 - 2 ; case 45
- .short _02249246 - _02248C58 - 2 ; case 46
- .short _02249246 - _02248C58 - 2 ; case 47
- .short _02249194 - _02248C58 - 2 ; case 48
- .short _02249246 - _02248C58 - 2 ; case 49
- .short _02249246 - _02248C58 - 2 ; case 50
- .short _02249246 - _02248C58 - 2 ; case 51
- .short _02249246 - _02248C58 - 2 ; case 52
- .short _022491BC - _02248C58 - 2 ; case 53
-_02248CC4:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r0, r0, #1
- cmp r2, r0
- bhi _02248CE8
- ldr r0, _02248F54 ; =0x0000215C
- mov r7, #0xc6
- str r6, [r4, r0]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249246
-_02248CDC:
- add r1, r4, r5
- add r0, r0, #4
- ldr r1, [r1, r0]
- lsr r0, r1, #1
- cmp r2, r0
- bls _02248CEA
-_02248CE8:
- b _02249246
-_02248CEA:
- add r0, r6, #0
- mul r0, r1
- mov r1, #0x64
- bl MOD11_022476C0
- ldr r1, _02248F54 ; =0x0000215C
- mov r7, #0xc6
- str r0, [r4, r1]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249246
-_02248D00:
- add r1, r4, r5
- add r0, #0x20
- ldr r1, [r1, r0]
- mov r0, #0x40
- tst r0, r1
- beq _02248DF2
- mov r0, #1
- mov r7, #0xc7
- str r0, [sp, #0xc]
- b _02249246
-_02248D14:
- add r1, r4, r5
- add r0, #0x20
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _02248DF2
- mov r0, #1
- mov r7, #0xc8
- str r0, [sp, #0xc]
- b _02249246
-_02248D28:
- add r1, r4, r5
- add r0, #0x20
- ldr r1, [r1, r0]
- ldr r0, _02248F58 ; =0x00000F88
- tst r0, r1
- beq _02248DF2
- mov r0, #1
- mov r7, #0xc9
- str r0, [sp, #0xc]
- b _02249246
-_02248D3C:
- add r1, r4, r5
- add r0, #0x20
- ldr r1, [r1, r0]
- mov r0, #0x10
- tst r0, r1
- beq _02248DF2
- mov r0, #1
- mov r7, #0xca
- str r0, [sp, #0xc]
- b _02249246
-_02248D50:
- add r1, r4, r5
- add r0, #0x20
- ldr r1, [r1, r0]
- mov r0, #0x20
- tst r0, r1
- beq _02248DF2
- mov r0, #1
- mov r7, #0xcb
- str r0, [sp, #0xc]
- b _02249246
-_02248D64:
- mov r0, #0
- str r0, [sp, #8]
- add r0, r4, r5
- ldr r3, _02248F5C ; =0x00002D4C
- add r1, r0, #0
-_02248D6E:
- ldrh r2, [r0, r3]
- cmp r2, #0
- beq _02248D7C
- ldr r2, _02248F60 ; =0x00002D6C
- ldrb r2, [r1, r2]
- cmp r2, #0
- beq _02248D8A
-_02248D7C:
- ldr r2, [sp, #8]
- add r0, r0, #2
- add r2, r2, #1
- add r1, r1, #1
- str r2, [sp, #8]
- cmp r2, #4
- blt _02248D6E
-_02248D8A:
- ldr r0, [sp, #8]
- cmp r0, #4
- beq _02248DF2
- mov r0, #0xb5
- lsl r0, r0, #6
- ldr r1, [sp, #8]
- add r0, r4, r0
- add r0, r0, r5
- add r1, #0x1f
- add r2, r6, #0
- bl MOD11_02243DC8
- ldr r0, [sp]
- ldr r2, [sp, #4]
- add r1, r4, #0
- bl MOD11_02245190
- ldr r0, [sp, #8]
- add r1, r4, r5
- lsl r0, r0, #1
- add r1, r1, r0
- ldr r0, _02248F5C ; =0x00002D4C
- mov r7, #0xcc
- ldrh r1, [r1, r0]
- mov r0, #0x49
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249246
-_02248DC6:
- add r1, r4, r5
- add r0, #0x24
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _02248DF2
- mov r0, #1
- mov r7, #0xcd
- str r0, [sp, #0xc]
- b _02249246
-_02248DDA:
- add r2, r0, #0
- add r1, r4, r5
- add r2, #0x20
- ldr r2, [r1, r2]
- lsl r3, r2, #0x18
- lsr r3, r3, #0x18
- bne _02248DF4
- add r0, #0x24
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- bne _02248DF4
-_02248DF2:
- b _02249246
-_02248DF4:
- mov r0, #0x40
- tst r0, r2
- beq _02248DFC
- mov r7, #0xc7
-_02248DFC:
- mov r0, #7
- tst r0, r2
- beq _02248E04
- mov r7, #0xc8
-_02248E04:
- ldr r0, _02248F58 ; =0x00000F88
- tst r0, r2
- beq _02248E0C
- mov r7, #0xc9
-_02248E0C:
- mov r0, #0x10
- tst r0, r2
- beq _02248E14
- mov r7, #0xca
-_02248E14:
- mov r0, #0x20
- tst r0, r2
- beq _02248E1C
- mov r7, #0xcb
-_02248E1C:
- ldr r0, _02248F64 ; =0x00002DB0
- add r1, r4, r5
- ldr r1, [r1, r0]
- mov r0, #7
- and r0, r1
- beq _02248E2A
- mov r7, #0xcd
-_02248E2A:
- cmp r3, #0
- beq _02248E34
- cmp r0, #0
- beq _02248E34
- mov r7, #0xce
-_02248E34:
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249246
-_02248E3A:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- cmp r2, r1
- bhi _02248EFA
- add r1, r6, #0
- bl MOD11_022476C0
- ldr r1, _02248F54 ; =0x0000215C
- add r2, r4, r5
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #0
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _02248F68 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _02248E6E
- mov r7, #0xcf
- b _02248E70
-_02248E6E:
- mov r7, #0xc6
-_02248E70:
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249246
-_02248E76:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- cmp r2, r1
- bhi _02248EFA
- add r1, r6, #0
- bl MOD11_022476C0
- ldr r1, _02248F54 ; =0x0000215C
- add r2, r4, r5
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #1
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _02248F68 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _02248EAA
- mov r7, #0xcf
- b _02248EAC
-_02248EAA:
- mov r7, #0xc6
-_02248EAC:
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249246
-_02248EB2:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- cmp r2, r1
- bhi _02248EFA
- add r1, r6, #0
- bl MOD11_022476C0
- ldr r1, _02248F54 ; =0x0000215C
- add r2, r4, r5
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #2
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _02248F68 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _02248EE6
- mov r7, #0xcf
- b _02248EE8
-_02248EE6:
- mov r7, #0xc6
-_02248EE8:
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249246
-_02248EEE:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- cmp r2, r1
- bls _02248EFC
-_02248EFA:
- b _02249246
-_02248EFC:
- add r1, r6, #0
- bl MOD11_022476C0
- ldr r1, _02248F54 ; =0x0000215C
- add r2, r4, r5
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #3
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _02248F68 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _02248F24
- mov r7, #0xcf
- b _02248F26
-_02248F24:
- mov r7, #0xc6
-_02248F26:
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249246
-_02248F2C:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- cmp r2, r1
- bhi _02249000
- add r1, r6, #0
- bl MOD11_022476C0
- ldr r1, _02248F54 ; =0x0000215C
- add r2, r4, r5
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #4
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _02248F68 ; =0x00002DA8
- b _02248F6C
- .align 2, 0
-_02248F50: .word 0x00002D8C
-_02248F54: .word 0x0000215C
-_02248F58: .word 0x00000F88
-_02248F5C: .word 0x00002D4C
-_02248F60: .word 0x00002D6C
-_02248F64: .word 0x00002DB0
-_02248F68: .word 0x00002DA8
-_02248F6C:
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _02248F7E
- mov r7, #0xcf
- b _02248F80
-_02248F7E:
- mov r7, #0xc6
-_02248F80:
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249246
-_02248F86:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _02248F98
- lsr r0, r6, #0x1f
- add r0, r6, r0
- asr r6, r0, #1
-_02248F98:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224927C ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r6, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249000
- ldr r0, _02249280 ; =0x00002D59
- add r1, r4, r5
- ldrsb r0, [r1, r0]
- cmp r0, #0xc
- bge _02249000
- mov r1, #0x13
- mov r0, #1
- lsl r1, r1, #4
- str r0, [sp, #0xc]
- str r0, [r4, r1]
- mov r7, #0xd0
- b _02249246
-_02248FCA:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _02248FDC
- lsr r0, r6, #0x1f
- add r0, r6, r0
- asr r6, r0, #1
-_02248FDC:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224927C ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r6, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249000
- ldr r0, _02249284 ; =0x00002D5A
- add r1, r4, r5
- ldrsb r0, [r1, r0]
- cmp r0, #0xc
- blt _02249002
-_02249000:
- b _02249246
-_02249002:
- mov r0, #0x13
- mov r1, #2
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #1
- mov r7, #0xd0
- str r0, [sp, #0xc]
- b _02249246
-_02249012:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _02249024
- lsr r0, r6, #0x1f
- add r0, r6, r0
- asr r6, r0, #1
-_02249024:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224927C ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r6, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _0224911E
- ldr r0, _02249288 ; =0x00002D5B
- add r1, r4, r5
- ldrsb r0, [r1, r0]
- cmp r0, #0xc
- bge _0224911E
- mov r0, #0x13
- mov r1, #3
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #1
- mov r7, #0xd0
- str r0, [sp, #0xc]
- b _02249246
-_02249058:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _0224906A
- lsr r0, r6, #0x1f
- add r0, r6, r0
- asr r6, r0, #1
-_0224906A:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224927C ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r6, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _0224911E
- ldr r0, _0224928C ; =0x00002D5C
- add r1, r4, r5
- ldrsb r0, [r1, r0]
- cmp r0, #0xc
- bge _0224911E
- mov r0, #0x13
- mov r1, #4
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #1
- mov r7, #0xd0
- str r0, [sp, #0xc]
- b _02249246
-_0224909E:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _022490B0
- lsr r0, r6, #0x1f
- add r0, r6, r0
- asr r6, r0, #1
-_022490B0:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224927C ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r6, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _0224911E
- ldr r0, _02249290 ; =0x00002D5D
- add r1, r4, r5
- ldrsb r0, [r1, r0]
- cmp r0, #0xc
- bge _0224911E
- mov r0, #0x13
- mov r1, #5
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #1
- mov r7, #0xd0
- str r0, [sp, #0xc]
- b _02249246
-_022490E4:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _022490F6
- lsr r0, r6, #0x1f
- add r0, r6, r0
- asr r6, r0, #1
-_022490F6:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224927C ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r6, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _0224911E
- ldr r0, _02249294 ; =0x00002DB0
- add r1, r4, r5
- ldr r1, [r1, r0]
- mov r0, #1
- lsl r0, r0, #0x14
- tst r0, r1
- beq _02249120
-_0224911E:
- b _02249246
-_02249120:
- mov r0, #1
- mov r7, #0xd1
- str r0, [sp, #0xc]
- b _02249246
-_02249128:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _0224913A
- lsr r0, r6, #0x1f
- add r0, r6, r0
- asr r6, r0, #1
-_0224913A:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224927C ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r6, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249246
- ldr r0, _02249280 ; =0x00002D59
- mov r2, #0
- add r3, r4, r5
-_0224915A:
- ldrsb r1, [r3, r0]
- cmp r1, #0xc
- blt _02249168
- add r2, r2, #1
- add r3, r3, #1
- cmp r2, #5
- blt _0224915A
-_02249168:
- cmp r2, #5
- beq _02249246
- ldr r6, _02249280 ; =0x00002D59
- add r5, r4, r5
- mov r7, #5
-_02249172:
- bl rand_LC
- add r1, r7, #0
- bl _s32_div_f
- add r0, r5, r1
- ldrsb r0, [r0, r6]
- cmp r0, #0xc
- beq _02249172
- mov r0, #0x13
- add r1, r1, #1
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #1
- mov r7, #0xd2
- str r0, [sp, #0xc]
- b _02249246
-_02249194:
- ldr r6, _02249298 ; =0x00002D58
- add r1, r4, r5
- mov r0, #0
- mov r5, #6
- add r3, r6, #0
-_0224919E:
- ldrsb r2, [r1, r3]
- cmp r2, #6
- bge _022491AA
- mov r2, #1
- strb r5, [r1, r6]
- str r2, [sp, #0xc]
-_022491AA:
- add r0, r0, #1
- add r1, r1, #1
- cmp r0, #8
- blt _0224919E
- ldr r0, [sp, #0xc]
- cmp r0, #1
- bne _02249246
- mov r7, #0xd3
- b _02249246
-_022491BC:
- add r1, r4, r5
- add r0, #0x24
- ldr r1, [r1, r0]
- mov r0, #0xf
- lsl r0, r0, #0x10
- tst r0, r1
- beq _02249246
- mov r0, #6
- add r3, #0x70
- str r0, [r4, r3]
- mov r0, #1
- mov r7, #0xd4
- str r0, [sp, #0xc]
- b _02249246
-_022491D8:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _022491EA
- lsr r0, r6, #0x1f
- add r0, r6, r0
- asr r6, r0, #1
-_022491EA:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224927C ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r6, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249246
- mov r0, #1
- ldr r7, _0224929C ; =0x00000109
- str r0, [sp, #0xc]
- b _02249246
-_0224920C:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _0224921E
- lsr r0, r6, #0x1f
- add r0, r6, r0
- asr r6, r0, #1
-_0224921E:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224927C ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r6, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249246
- ldr r0, _022492A0 ; =0x00002DCC
- add r2, r4, r0
- mov r0, #1
- ldr r1, [r2, r5]
- lsl r0, r0, #0x1c
- orr r0, r1
- str r0, [r2, r5]
-_02249246:
- ldr r0, [sp, #0xc]
- cmp r0, #1
- bne _02249274
- mov r1, #0x46
- ldr r0, [sp, #4]
- lsl r1, r1, #2
- str r0, [r4, r1]
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02249B4C
- mov r1, #0x4a
- lsl r1, r1, #2
- str r0, [r4, r1]
- add r0, r4, #0
- mov r1, #1
- add r2, r7, #0
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_02249274:
- ldr r0, [sp, #0xc]
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224927C: .word 0x00002D90
-_02249280: .word 0x00002D59
-_02249284: .word 0x00002D5A
-_02249288: .word 0x00002D5B
-_0224928C: .word 0x00002D5C
-_02249290: .word 0x00002D5D
-_02249294: .word 0x00002DB0
-_02249298: .word 0x00002D58
-_0224929C: .word 0x00000109
-_022492A0: .word 0x00002DCC
-
- thumb_func_start MOD11_022492A4
-MOD11_022492A4: ; 0x022492A4
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- add r6, r2, #0
- mov r7, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02249D90
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, r6, #0
- add r2, r7, #0
- bl MOD11_02249DA4
- mov r0, #0xc0
- add r4, r6, #0
- mul r4, r0
- ldr r0, _02249394 ; =0x00002D8C
- add r1, r5, r0
- str r1, [sp, #8]
- ldr r1, [r1, r4]
- cmp r1, #0
- beq _0224938E
- ldr r2, [sp, #4]
- cmp r2, #0x44
- beq _022492E2
- add r0, r2, #0
- cmp r0, #0x6c
- beq _022492FE
- b _02249364
-_022492E2:
- add r2, r5, r4
- add r0, r0, #4
- ldr r0, [r2, r0]
- cmp r1, r0
- bhs _02249364
- mov r1, #0x10
- bl MOD11_022476C0
- ldr r1, _02249398 ; =0x0000215C
- mov r7, #1
- str r0, [r5, r1]
- mov r0, #0xd5
- str r0, [sp]
- b _02249364
-_022492FE:
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1b
- add r3, r7, #0
- bl MOD11_02243420
- cmp r0, #3
- beq _0224931E
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1c
- add r3, r7, #0
- bl MOD11_02243420
- cmp r0, #3
- bne _0224933E
-_0224931E:
- ldr r0, _0224939C ; =0x00002D90
- add r1, r5, r4
- ldr r0, [r1, r0]
- ldr r1, [sp, #8]
- ldr r1, [r1, r4]
- cmp r1, r0
- bhs _02249364
- mov r1, #0x10
- bl MOD11_022476C0
- ldr r1, _02249398 ; =0x0000215C
- mov r7, #1
- str r0, [r5, r1]
- mov r0, #0xd5
- str r0, [sp]
- b _02249364
-_0224933E:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _02249364
- ldr r0, _0224939C ; =0x00002D90
- add r1, r5, r4
- ldr r1, [r1, r0]
- sub r0, r7, #1
- mul r0, r1
- mov r1, #8
- bl MOD11_022476C0
- ldr r1, _02249398 ; =0x0000215C
- mov r7, #1
- str r0, [r5, r1]
- mov r0, #0xd7
- str r0, [sp]
-_02249364:
- cmp r7, #1
- bne _0224938E
- mov r0, #0x46
- lsl r0, r0, #2
- str r6, [r5, r0]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02249B4C
- mov r1, #0x4a
- lsl r1, r1, #2
- str r0, [r5, r1]
- ldr r2, [sp]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r5, #8]
- str r0, [r5, #0xc]
- mov r0, #0x15
- str r0, [r5, #8]
-_0224938E:
- add r0, r7, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02249394: .word 0x00002D8C
-_02249398: .word 0x0000215C
-_0224939C: .word 0x00002D90
-
- thumb_func_start MOD11_022493A0
-MOD11_022493A0: ; 0x022493A0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- str r0, [sp]
- add r4, r1, #0
- mov r0, #0
- str r0, [sp, #0xc]
- str r2, [sp, #4]
- add r0, r4, #0
- add r1, r2, #0
- add r6, r3, #0
- bl MOD11_02249D90
- str r0, [sp, #0x10]
- ldr r1, [sp, #4]
- add r0, r4, #0
- mov r2, #0
- bl MOD11_02249DA4
- add r7, r0, #0
- ldr r0, [sp, #4]
- mov r3, #0xc0
- add r5, r0, #0
- ldr r0, _022496E4 ; =0x00002D8C
- mul r5, r3
- add r1, r4, r0
- ldr r2, [r1, r5]
- str r1, [sp, #0x14]
- cmp r2, #0
- bne _022493DC
- b _02249A50
-_022493DC:
- ldr r1, [sp, #0x10]
- cmp r1, #0x35
- bhi _02249480
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022493EE: ; jump table
- .short _02249A3C - _022493EE - 2 ; case 0
- .short _0224945A - _022493EE - 2 ; case 1
- .short _02249A3C - _022493EE - 2 ; case 2
- .short _02249A3C - _022493EE - 2 ; case 3
- .short _0224949A - _022493EE - 2 ; case 4
- .short _022494B0 - _022493EE - 2 ; case 5
- .short _022494C6 - _022493EE - 2 ; case 6
- .short _022494DC - _022493EE - 2 ; case 7
- .short _022494F2 - _022493EE - 2 ; case 8
- .short _02249508 - _022493EE - 2 ; case 9
- .short _0224956C - _022493EE - 2 ; case 10
- .short _02249582 - _022493EE - 2 ; case 11
- .short _02249474 - _022493EE - 2 ; case 12
- .short _022496BC - _022493EE - 2 ; case 13
- .short _0224972C - _022493EE - 2 ; case 14
- .short _0224976A - _022493EE - 2 ; case 15
- .short _022497A8 - _022493EE - 2 ; case 16
- .short _022497E6 - _022493EE - 2 ; case 17
- .short _02249A3C - _022493EE - 2 ; case 18
- .short _02249A3C - _022493EE - 2 ; case 19
- .short _02249A3C - _022493EE - 2 ; case 20
- .short _02249A3C - _022493EE - 2 ; case 21
- .short _02249A3C - _022493EE - 2 ; case 22
- .short _02249A3C - _022493EE - 2 ; case 23
- .short _02249A3C - _022493EE - 2 ; case 24
- .short _02249A3C - _022493EE - 2 ; case 25
- .short _02249A3C - _022493EE - 2 ; case 26
- .short _02249A3C - _022493EE - 2 ; case 27
- .short _02249A3C - _022493EE - 2 ; case 28
- .short _02249A3C - _022493EE - 2 ; case 29
- .short _02249A3C - _022493EE - 2 ; case 30
- .short _02249A3C - _022493EE - 2 ; case 31
- .short _02249A3C - _022493EE - 2 ; case 32
- .short _02249A3C - _022493EE - 2 ; case 33
- .short _02249A3C - _022493EE - 2 ; case 34
- .short _02249826 - _022493EE - 2 ; case 35
- .short _0224986C - _022493EE - 2 ; case 36
- .short _022498B4 - _022493EE - 2 ; case 37
- .short _022498FC - _022493EE - 2 ; case 38
- .short _02249946 - _022493EE - 2 ; case 39
- .short _0224998E - _022493EE - 2 ; case 40
- .short _022499D2 - _022493EE - 2 ; case 41
- .short _02249A3C - _022493EE - 2 ; case 42
- .short _0224964A - _022493EE - 2 ; case 43
- .short _02249680 - _022493EE - 2 ; case 44
- .short _02249A3C - _022493EE - 2 ; case 45
- .short _02249A3C - _022493EE - 2 ; case 46
- .short _02249A3C - _022493EE - 2 ; case 47
- .short _02249602 - _022493EE - 2 ; case 48
- .short _02249A3C - _022493EE - 2 ; case 49
- .short _02249A3C - _022493EE - 2 ; case 50
- .short _02249A3C - _022493EE - 2 ; case 51
- .short _02249A3C - _022493EE - 2 ; case 52
- .short _0224962C - _022493EE - 2 ; case 53
-_0224945A:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r0, r0, #1
- cmp r2, r0
- bhi _02249480
- ldr r0, _022496E8 ; =0x0000215C
- str r7, [r4, r0]
- mov r0, #0xc6
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_02249474:
- add r1, r4, r5
- add r0, r0, #4
- ldr r1, [r1, r0]
- lsr r0, r1, #1
- cmp r2, r0
- bls _02249482
-_02249480:
- b _02249A3C
-_02249482:
- add r0, r7, #0
- mul r0, r1
- mov r1, #0x64
- bl MOD11_022476C0
- ldr r1, _022496E8 ; =0x0000215C
- str r0, [r4, r1]
- mov r0, #0xc6
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_0224949A:
- add r1, r4, r5
- add r0, #0x20
- ldr r1, [r1, r0]
- mov r0, #0x40
- tst r0, r1
- beq _0224959C
- mov r0, #0xc7
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_022494B0:
- add r1, r4, r5
- add r0, #0x20
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _0224959C
- mov r0, #0xc8
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_022494C6:
- add r1, r4, r5
- add r0, #0x20
- ldr r1, [r1, r0]
- ldr r0, _022496EC ; =0x00000F88
- tst r0, r1
- beq _0224959C
- mov r0, #0xc9
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_022494DC:
- add r1, r4, r5
- add r0, #0x20
- ldr r1, [r1, r0]
- mov r0, #0x10
- tst r0, r1
- beq _0224959C
- mov r0, #0xca
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_022494F2:
- add r1, r4, r5
- add r0, #0x20
- ldr r1, [r1, r0]
- mov r0, #0x20
- tst r0, r1
- beq _0224959C
- mov r0, #0xcb
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_02249508:
- mov r0, #0
- str r0, [sp, #8]
- add r0, r4, r5
- ldr r3, _022496F0 ; =0x00002D4C
- add r1, r0, #0
-_02249512:
- ldrh r2, [r0, r3]
- cmp r2, #0
- beq _02249520
- ldr r2, _022496F4 ; =0x00002D6C
- ldrb r2, [r1, r2]
- cmp r2, #0
- beq _0224952E
-_02249520:
- ldr r2, [sp, #8]
- add r0, r0, #2
- add r2, r2, #1
- add r1, r1, #1
- str r2, [sp, #8]
- cmp r2, #4
- blt _02249512
-_0224952E:
- ldr r0, [sp, #8]
- cmp r0, #4
- beq _0224959C
- mov r0, #0xb5
- lsl r0, r0, #6
- ldr r1, [sp, #8]
- add r0, r4, r0
- add r0, r0, r5
- add r1, #0x1f
- add r2, r7, #0
- bl MOD11_02243DC8
- ldr r0, [sp]
- ldr r2, [sp, #4]
- add r1, r4, #0
- bl MOD11_02245190
- ldr r0, [sp, #8]
- add r1, r4, r5
- lsl r0, r0, #1
- add r1, r1, r0
- ldr r0, _022496F0 ; =0x00002D4C
- ldrh r1, [r1, r0]
- mov r0, #0x49
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r0, #0xcc
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_0224956C:
- add r1, r4, r5
- add r0, #0x24
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _0224959C
- mov r0, #0xcd
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_02249582:
- add r1, r0, #0
- add r1, #0x20
- add r1, r4, r1
- ldr r2, [r1, r5]
- lsl r3, r2, #0x18
- lsr r3, r3, #0x18
- bne _0224959E
- add r3, r4, r5
- add r0, #0x24
- ldr r3, [r3, r0]
- mov r0, #7
- tst r0, r3
- bne _0224959E
-_0224959C:
- b _02249A3C
-_0224959E:
- mov r0, #0x40
- tst r0, r2
- beq _022495A8
- mov r0, #0xc7
- str r0, [r6]
-_022495A8:
- ldr r2, [r1, r5]
- mov r0, #7
- tst r0, r2
- beq _022495B4
- mov r0, #0xc8
- str r0, [r6]
-_022495B4:
- ldr r2, [r1, r5]
- ldr r0, _022496EC ; =0x00000F88
- tst r0, r2
- beq _022495C0
- mov r0, #0xc9
- str r0, [r6]
-_022495C0:
- ldr r2, [r1, r5]
- mov r0, #0x10
- tst r0, r2
- beq _022495CC
- mov r0, #0xca
- str r0, [r6]
-_022495CC:
- ldr r2, [r1, r5]
- mov r0, #0x20
- tst r0, r2
- beq _022495D8
- mov r0, #0xcb
- str r0, [r6]
-_022495D8:
- ldr r0, _022496F8 ; =0x00002DB0
- mov r2, #7
- add r0, r4, r0
- ldr r3, [r0, r5]
- tst r2, r3
- beq _022495E8
- mov r2, #0xcd
- str r2, [r6]
-_022495E8:
- ldr r1, [r1, r5]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- beq _022495FC
- ldr r1, [r0, r5]
- mov r0, #7
- tst r0, r1
- beq _022495FC
- mov r0, #0xce
- str r0, [r6]
-_022495FC:
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_02249602:
- ldr r7, _022496FC ; =0x00002D58
- add r1, r4, r5
- mov r0, #0
- mov r5, #6
- add r3, r7, #0
-_0224960C:
- ldrsb r2, [r1, r3]
- cmp r2, #6
- bge _02249618
- mov r2, #1
- strb r5, [r1, r7]
- str r2, [sp, #0xc]
-_02249618:
- add r0, r0, #1
- add r1, r1, #1
- cmp r0, #8
- blt _0224960C
- ldr r0, [sp, #0xc]
- cmp r0, #1
- bne _022496C8
- mov r0, #0xd3
- str r0, [r6]
- b _02249A3C
-_0224962C:
- add r1, r4, r5
- add r0, #0x24
- ldr r1, [r1, r0]
- mov r0, #0xf
- lsl r0, r0, #0x10
- tst r0, r1
- beq _022496C8
- mov r0, #6
- add r3, #0x70
- str r0, [r4, r3]
- mov r0, #0xd4
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_0224964A:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _0224965C
- lsr r0, r7, #0x1f
- add r0, r7, r0
- asr r7, r0, #1
-_0224965C:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _02249700 ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r7, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _022496C8
- ldr r0, _02249704 ; =0x00000109
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_02249680:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _02249692
- lsr r0, r7, #0x1f
- add r0, r7, r0
- asr r7, r0, #1
-_02249692:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _02249700 ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r7, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _022496C8
- ldr r0, _02249708 ; =0x00002DCC
- add r2, r4, r0
- mov r0, #1
- ldr r1, [r2, r5]
- lsl r0, r0, #0x1c
- orr r0, r1
- str r0, [r2, r5]
- b _02249A3C
-_022496BC:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- cmp r2, r1
- bls _022496CA
-_022496C8:
- b _02249A3C
-_022496CA:
- add r1, r7, #0
- bl MOD11_022476C0
- ldr r1, _022496E8 ; =0x0000215C
- add r2, r4, r5
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #0
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _0224970C ; =0x00002DA8
- b _02249710
- nop
-_022496E4: .word 0x00002D8C
-_022496E8: .word 0x0000215C
-_022496EC: .word 0x00000F88
-_022496F0: .word 0x00002D4C
-_022496F4: .word 0x00002D6C
-_022496F8: .word 0x00002DB0
-_022496FC: .word 0x00002D58
-_02249700: .word 0x00002D90
-_02249704: .word 0x00000109
-_02249708: .word 0x00002DCC
-_0224970C: .word 0x00002DA8
-_02249710:
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _02249722
- mov r0, #0xcf
- b _02249724
-_02249722:
- mov r0, #0xc6
-_02249724:
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_0224972C:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- cmp r2, r1
- bhi _022497F2
- add r1, r7, #0
- bl MOD11_022476C0
- ldr r1, _02249A58 ; =0x0000215C
- add r2, r4, r5
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #1
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _02249A5C ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _02249760
- mov r0, #0xcf
- b _02249762
-_02249760:
- mov r0, #0xc6
-_02249762:
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_0224976A:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- cmp r2, r1
- bhi _022497F2
- add r1, r7, #0
- bl MOD11_022476C0
- ldr r1, _02249A58 ; =0x0000215C
- add r2, r4, r5
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #2
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _02249A5C ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _0224979E
- mov r0, #0xcf
- b _022497A0
-_0224979E:
- mov r0, #0xc6
-_022497A0:
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_022497A8:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- cmp r2, r1
- bhi _022497F2
- add r1, r7, #0
- bl MOD11_022476C0
- ldr r1, _02249A58 ; =0x0000215C
- add r2, r4, r5
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #3
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _02249A5C ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _022497DC
- mov r0, #0xcf
- b _022497DE
-_022497DC:
- mov r0, #0xc6
-_022497DE:
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_022497E6:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- cmp r2, r1
- bls _022497F4
-_022497F2:
- b _02249A3C
-_022497F4:
- add r1, r7, #0
- bl MOD11_022476C0
- ldr r1, _02249A58 ; =0x0000215C
- add r2, r4, r5
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #4
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _02249A5C ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _0224981C
- mov r0, #0xcf
- b _0224981E
-_0224981C:
- mov r0, #0xc6
-_0224981E:
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_02249826:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _02249838
- lsr r0, r7, #0x1f
- add r0, r7, r0
- asr r7, r0, #1
-_02249838:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _02249A60 ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r7, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249932
- ldr r0, _02249A64 ; =0x00002D59
- add r1, r4, r5
- ldrsb r0, [r1, r0]
- cmp r0, #0xc
- bge _02249932
- mov r1, #0x13
- mov r0, #1
- lsl r1, r1, #4
- str r0, [sp, #0xc]
- str r0, [r4, r1]
- mov r0, #0xd0
- str r0, [r6]
- b _02249A3C
-_0224986C:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _0224987E
- lsr r0, r7, #0x1f
- add r0, r7, r0
- asr r7, r0, #1
-_0224987E:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _02249A60 ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r7, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249932
- ldr r0, _02249A68 ; =0x00002D5A
- add r1, r4, r5
- ldrsb r0, [r1, r0]
- cmp r0, #0xc
- bge _02249932
- mov r0, #0x13
- mov r1, #2
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #0xd0
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_022498B4:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _022498C6
- lsr r0, r7, #0x1f
- add r0, r7, r0
- asr r7, r0, #1
-_022498C6:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _02249A60 ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r7, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249932
- ldr r0, _02249A6C ; =0x00002D5B
- add r1, r4, r5
- ldrsb r0, [r1, r0]
- cmp r0, #0xc
- bge _02249932
- mov r0, #0x13
- mov r1, #3
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #0xd0
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_022498FC:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _0224990E
- lsr r0, r7, #0x1f
- add r0, r7, r0
- asr r7, r0, #1
-_0224990E:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _02249A60 ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r7, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249932
- ldr r0, _02249A70 ; =0x00002D5C
- add r1, r4, r5
- ldrsb r0, [r1, r0]
- cmp r0, #0xc
- blt _02249934
-_02249932:
- b _02249A3C
-_02249934:
- mov r0, #0x13
- mov r1, #4
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #0xd0
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_02249946:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _02249958
- lsr r0, r7, #0x1f
- add r0, r7, r0
- asr r7, r0, #1
-_02249958:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _02249A60 ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r7, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249A3C
- ldr r0, _02249A74 ; =0x00002D5D
- add r1, r4, r5
- ldrsb r0, [r1, r0]
- cmp r0, #0xc
- bge _02249A3C
- mov r0, #0x13
- mov r1, #5
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #0xd0
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_0224998E:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _022499A0
- lsr r0, r7, #0x1f
- add r0, r7, r0
- asr r7, r0, #1
-_022499A0:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _02249A60 ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r7, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249A3C
- ldr r0, _02249A78 ; =0x00002DB0
- add r1, r4, r5
- ldr r1, [r1, r0]
- mov r0, #1
- lsl r0, r0, #0x14
- tst r0, r1
- bne _02249A3C
- mov r0, #0xd1
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_022499D2:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _022499E4
- lsr r0, r7, #0x1f
- add r0, r7, r0
- asr r7, r0, #1
-_022499E4:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _02249A60 ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r7, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249A3C
- ldr r0, _02249A64 ; =0x00002D59
- mov r2, #0
- add r3, r4, r5
-_02249A04:
- ldrsb r1, [r3, r0]
- cmp r1, #0xc
- blt _02249A12
- add r2, r2, #1
- add r3, r3, #1
- cmp r2, #5
- blt _02249A04
-_02249A12:
- cmp r2, #5
- beq _02249A3C
- ldr r7, _02249A64 ; =0x00002D59
- add r5, r4, r5
-_02249A1A:
- bl rand_LC
- mov r1, #5
- bl _s32_div_f
- add r0, r5, r1
- ldrsb r0, [r0, r7]
- cmp r0, #0xc
- beq _02249A1A
- mov r0, #0x13
- add r1, r1, #1
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #0xd2
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
-_02249A3C:
- ldr r0, [sp, #0xc]
- cmp r0, #1
- bne _02249A50
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02249B4C
- mov r1, #0x4a
- lsl r1, r1, #2
- str r0, [r4, r1]
-_02249A50:
- ldr r0, [sp, #0xc]
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02249A58: .word 0x0000215C
-_02249A5C: .word 0x00002DA8
-_02249A60: .word 0x00002D90
-_02249A64: .word 0x00002D59
-_02249A68: .word 0x00002D5A
-_02249A6C: .word 0x00002D5B
-_02249A70: .word 0x00002D5C
-_02249A74: .word 0x00002D5D
-_02249A78: .word 0x00002DB0
-
- thumb_func_start MOD11_02249A7C
-MOD11_02249A7C: ; 0x02249A7C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- add r4, r2, #0
- mov r6, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02249D90
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_02249DA4
- str r0, [sp, #8]
- mov r0, #0xc0
- mul r0, r4
- str r0, [sp]
- add r1, r5, r0
- ldr r0, _02249B40 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02249B38
- cmp r7, #0x63
- beq _02249ABA
- cmp r7, #0x64
- beq _02249AD0
- cmp r7, #0x73
- beq _02249AE6
- b _02249B0E
-_02249ABA:
- add r0, r5, #0
- add r0, #0x94
- str r4, [r0]
- add r0, r5, #0
- mov r1, #5
- add r0, #0x88
- str r1, [r0]
- mov r0, #0x2f
- str r0, [sp, #4]
- mov r6, #1
- b _02249B0E
-_02249AD0:
- add r0, r5, #0
- add r0, #0x94
- str r4, [r0]
- add r0, r5, #0
- mov r1, #5
- add r0, #0x88
- str r1, [r0]
- mov r0, #0x19
- str r0, [sp, #4]
- mov r6, #1
- b _02249B0E
-_02249AE6:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _02249B0E
- ldr r0, [sp]
- add r1, r5, r0
- ldr r0, _02249B44 ; =0x00002D90
- ldr r1, [r1, r0]
- sub r0, r6, #1
- mul r0, r1
- ldr r1, [sp, #8]
- bl MOD11_022476C0
- ldr r1, _02249B48 ; =0x0000215C
- mov r6, #1
- str r0, [r5, r1]
- mov r0, #0xd7
- str r0, [sp, #4]
-_02249B0E:
- cmp r6, #1
- bne _02249B38
- mov r0, #0x46
- lsl r0, r0, #2
- str r4, [r5, r0]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02249B4C
- mov r1, #0x4a
- lsl r1, r1, #2
- str r0, [r5, r1]
- ldr r2, [sp, #4]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r5, #8]
- str r0, [r5, #0xc]
- mov r0, #0x15
- str r0, [r5, #8]
-_02249B38:
- add r0, r6, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02249B40: .word 0x00002D8C
-_02249B44: .word 0x00002D90
-_02249B48: .word 0x0000215C
-
- thumb_func_start MOD11_02249B4C
-MOD11_02249B4C: ; 0x02249B4C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_02246D1C
- cmp r0, #0x67
- bne _02249B5E
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02249B5E:
- mov r0, #0xc0
- mul r0, r4
- add r2, r5, r0
- ldr r0, _02249B78 ; =0x00002DCC
- ldr r1, [r2, r0]
- lsl r1, r1, #0xa
- lsr r1, r1, #0x1d
- beq _02249B72
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02249B72:
- sub r0, #0x14
- ldrh r0, [r2, r0]
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02249B78: .word 0x00002DCC
-
- thumb_func_start MOD11_02249B7C
-MOD11_02249B7C: ; 0x02249B7C
- lsl r1, r1, #4
- add r1, r0, r1
- ldr r0, _02249B90 ; =0x000021A8
- ldr r0, [r1, r0]
- cmp r0, #0x27
- bne _02249B8C
- mov r0, #1
- bx lr
-_02249B8C:
- mov r0, #0
- bx lr
- .align 2, 0
-_02249B90: .word 0x000021A8
-
- thumb_func_start MOD11_02249B94
-MOD11_02249B94: ; 0x02249B94
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- ldr r1, [r5, #0x6c]
- str r0, [sp]
- add r6, r2, #0
- mov r7, #0
- cmp r1, #0xff
- bne _02249BAC
- add sp, #0xc
- add r0, r7, #0
- pop {r4, r5, r6, r7, pc}
-_02249BAC:
- add r0, r5, #0
- bl MOD11_0224AD9C
- cmp r0, #1
- bne _02249BBC
- add sp, #0xc
- add r0, r7, #0
- pop {r4, r5, r6, r7, pc}
-_02249BBC:
- ldr r1, [r5, #0x6c]
- add r0, r5, #0
- bl MOD11_02249D90
- add r4, r0, #0
- ldr r1, [r5, #0x6c]
- add r0, r5, #0
- add r2, r7, #0
- bl MOD11_02249DA4
- str r0, [sp, #4]
- ldr r0, [sp]
- ldr r1, [r5, #0x64]
- bl MOD11_02230270
- str r0, [sp, #8]
- cmp r4, #0x2e
- bgt _02249BF2
- cmp r4, #0x2a
- blt _02249BF0
- bne _02249BE8
- b _02249D24
-_02249BE8:
- cmp r4, #0x2d
- beq _02249C74
- cmp r4, #0x2e
- beq _02249CD2
-_02249BF0:
- b _02249D6A
-_02249BF2:
- cmp r4, #0x73
- bne _02249C5C
- ldr r0, [r5, #0x64]
- mov r1, #0xc0
- mul r1, r0
- add r3, r5, r1
- ldr r1, _02249D70 ; =0x00002D8C
- ldr r2, [r3, r1]
- cmp r2, #0
- beq _02249C5C
- add r1, #0x2c
- ldrh r1, [r3, r1]
- cmp r1, #0
- bne _02249C5C
- add r1, r5, r0
- ldr r0, _02249D74 ; =0x0000219C
- ldrb r0, [r1, r0]
- bl MaskOfFlagNo
- ldr r1, [sp, #8]
- lsl r1, r1, #3
- add r2, r5, r1
- mov r1, #0x71
- lsl r1, r1, #2
- ldr r2, [r2, r1]
- lsl r2, r2, #3
- lsr r2, r2, #0x1a
- tst r0, r2
- bne _02249C5C
- ldr r0, _02249D78 ; =0x00003044
- sub r1, #0xaa
- ldr r0, [r5, r0]
- cmp r0, r1
- beq _02249C5C
- ldr r2, [r5, #0x6c]
- mov r1, #0x1c
- mul r1, r2
- add r3, r5, r1
- mov r1, #0xb6
- lsl r1, r1, #2
- ldr r2, [r3, r1]
- cmp r2, #0
- bne _02249C50
- add r1, #8
- ldr r1, [r3, r1]
- cmp r1, #0
- beq _02249C5C
-_02249C50:
- mov r1, #0x85
- lsl r1, r1, #6
- ldr r2, [r5, r1]
- mov r1, #0x10
- tst r1, r2
- beq _02249C5E
-_02249C5C:
- b _02249D6A
-_02249C5E:
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02249D7C ; =0x000003E9
- ldrb r1, [r1, r0]
- mov r0, #1
- tst r1, r0
- beq _02249D6A
- mov r1, #0xd8
- str r1, [r6]
- add r7, r0, #0
- b _02249D6A
-_02249C74:
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02249D70 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _02249D6A
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _02249D6A
- mov r0, #0x85
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #0x10
- tst r0, r1
- bne _02249D6A
- ldr r1, [r5, #0x6c]
- mov r0, #0x1c
- mul r0, r1
- add r1, r5, r0
- mov r0, #0xb6
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02249D6A
- ldr r0, [r5, #0x64]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _02249D80 ; =0x00002D90
- add r2, r5, r2
- ldr r2, [r2, r0]
- sub r1, #0xc1
- add r0, r2, #0
- mul r0, r1
- ldr r1, [sp, #4]
- bl MOD11_022476C0
- ldr r1, _02249D84 ; =0x0000215C
- mov r7, #1
- str r0, [r5, r1]
- lsr r0, r1, #5
- str r0, [r6]
- b _02249D6A
-_02249CD2:
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02249D70 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _02249D6A
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _02249D6A
- ldr r1, [r5, #0x6c]
- mov r0, #0x1c
- mul r0, r1
- add r1, r5, r0
- mov r0, #0x2e
- lsl r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02249D6A
- ldr r0, [r5, #0x64]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _02249D80 ; =0x00002D90
- add r2, r5, r2
- ldr r2, [r2, r0]
- sub r1, #0xc1
- add r0, r2, #0
- mul r0, r1
- ldr r1, [sp, #4]
- bl MOD11_022476C0
- ldr r1, _02249D84 ; =0x0000215C
- mov r7, #1
- str r0, [r5, r1]
- lsr r0, r1, #5
- str r0, [r6]
- b _02249D6A
-_02249D24:
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- ldr r2, _02249D70 ; =0x00002D8C
- add r0, r5, r0
- ldr r1, [r0, r2]
- cmp r1, #0
- beq _02249D6A
- ldr r1, _02249D88 ; =0x0000216C
- ldr r3, [r5, r1]
- mov r1, #2
- tst r1, r3
- beq _02249D6A
- add r1, r2, #4
- ldr r0, [r0, r1]
- ldr r1, [sp, #4]
- bl MOD11_022476C0
- ldr r1, _02249D84 ; =0x0000215C
- mov r7, #1
- str r0, [r5, r1]
- mov r1, #0xc6
- str r1, [r6]
- ldr r0, [r5, #0x6c]
- add r1, #0x52
- str r0, [r5, r1]
- ldr r0, [r5, #0x6c]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _02249D8C ; =0x00002DB8
- add r2, r5, r2
- ldrh r0, [r2, r0]
- add r1, #0x68
- str r0, [r5, r1]
-_02249D6A:
- add r0, r7, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02249D70: .word 0x00002D8C
-_02249D74: .word 0x0000219C
-_02249D78: .word 0x00003044
-_02249D7C: .word 0x000003E9
-_02249D80: .word 0x00002D90
-_02249D84: .word 0x0000215C
-_02249D88: .word 0x0000216C
-_02249D8C: .word 0x00002DB8
-
- thumb_func_start MOD11_02249D90
-MOD11_02249D90: ; 0x02249D90
- push {r4, lr}
- add r4, r0, #0
- bl MOD11_02249B4C
- add r1, r0, #0
- add r0, r4, #0
- mov r2, #1
- bl MOD11_0224C12C
- pop {r4, pc}
-
- thumb_func_start MOD11_02249DA4
-MOD11_02249DA4: ; 0x02249DA4
- push {r4, lr}
- add r4, r0, #0
- cmp r2, #0
- beq _02249DB6
- cmp r2, #1
- beq _02249DD2
- cmp r2, #2
- beq _02249DBE
- b _02249DDC
-_02249DB6:
- bl MOD11_02249B4C
- add r1, r0, #0
- b _02249DDC
-_02249DBE:
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _02249DE8 ; =0x00002DCC
- ldr r0, [r2, r0]
- lsl r0, r0, #0xa
- lsr r0, r0, #0x1d
- beq _02249DD2
- mov r0, #0
- pop {r4, pc}
-_02249DD2:
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _02249DEC ; =0x00002DB8
- ldrh r1, [r1, r0]
-_02249DDC:
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C12C
- pop {r4, pc}
- nop
-_02249DE8: .word 0x00002DCC
-_02249DEC: .word 0x00002DB8
-
- thumb_func_start MOD11_02249DF0
-MOD11_02249DF0: ; 0x02249DF0
- push {r4, lr}
- add r4, r0, #0
- bl MOD11_02249B4C
- add r1, r0, #0
- add r0, r4, #0
- mov r2, #0xb
- bl MOD11_0224C12C
- pop {r4, pc}
-
- thumb_func_start MOD11_02249E04
-MOD11_02249E04: ; 0x02249E04
- push {r4, lr}
- add r4, r0, #0
- bl MOD11_02249B4C
- add r1, r0, #0
- add r0, r4, #0
- mov r2, #0xc
- bl MOD11_0224C12C
- pop {r4, pc}
-
- thumb_func_start MOD11_02249E18
-MOD11_02249E18: ; 0x02249E18
- mov r2, #0xc0
- mul r2, r1
- ldr r1, _02249E28 ; =0x00002DB8
- add r2, r0, r2
- ldrh r1, [r2, r1]
- ldr r3, _02249E2C ; =MOD11_0224C12C
- mov r2, #8
- bx r3
- .align 2, 0
-_02249E28: .word 0x00002DB8
-_02249E2C: .word MOD11_0224C12C
-
- thumb_func_start MOD11_02249E30
-MOD11_02249E30: ; 0x02249E30
- push {r3, lr}
- mov r2, #0xc0
- mul r2, r1
- ldr r1, _02249E54 ; =0x00002DCC
- add r3, r0, r2
- ldr r2, [r3, r1]
- lsl r2, r2, #0xa
- lsr r2, r2, #0x1d
- beq _02249E46
- mov r0, #0
- pop {r3, pc}
-_02249E46:
- sub r1, #0x14
- ldrh r1, [r3, r1]
- mov r2, #9
- bl MOD11_0224C12C
- pop {r3, pc}
- nop
-_02249E54: .word 0x00002DCC
-
- thumb_func_start MOD11_02249E58
-MOD11_02249E58: ; 0x02249E58
- push {r3, lr}
- mov r2, #0xc0
- mul r2, r1
- ldr r1, _02249E7C ; =0x00002DCC
- add r3, r0, r2
- ldr r2, [r3, r1]
- lsl r2, r2, #0xa
- lsr r2, r2, #0x1d
- beq _02249E6E
- mov r0, #0
- pop {r3, pc}
-_02249E6E:
- sub r1, #0x14
- ldrh r1, [r3, r1]
- mov r2, #0xa
- bl MOD11_0224C12C
- pop {r3, pc}
- nop
-_02249E7C: .word 0x00002DCC
-
- thumb_func_start MOD11_02249E80
-MOD11_02249E80: ; 0x02249E80
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- add r4, r2, #0
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- mov r6, #0
- bl MOD11_02249D90
- cmp r0, #0x7a
- bne _02249E9E
- add sp, #8
- add r0, r6, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02249E9E:
- mov r0, #0xc0
- add r7, r4, #0
- mul r7, r0
- ldr r0, _02249F80 ; =0x00002DB0
- add r2, r5, r7
- ldr r1, [r2, r0]
- ldr r3, _02249F84 ; =0x0400E000
- tst r1, r3
- bne _02249EBA
- add r0, #0x10
- ldr r1, [r2, r0]
- lsr r0, r3, #0x10
- tst r0, r1
- beq _02249EBC
-_02249EBA:
- mov r6, #1
-_02249EBC:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x17
- beq _02249EDC
- mov r0, #0x17
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #3
- add r3, r4, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _02249F10
-_02249EDC:
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #8
- beq _02249EFC
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #8
- bne _02249F12
-_02249EFC:
- mov r0, #0x2a
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #3
- add r3, r4, #0
- bl MOD11_02246870
- cmp r0, #0
- beq _02249F12
-_02249F10:
- mov r6, #1
-_02249F12:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x1a
- beq _02249F4A
- ldr r0, _02249F88 ; =0x00002DCC
- add r1, r5, r7
- ldr r0, [r1, r0]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x1d
- bne _02249F4A
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #2
- beq _02249F4A
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #2
- bne _02249F64
-_02249F4A:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02249D90
- cmp r0, #0x69
- beq _02249F64
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #7
- lsl r0, r0, #0xc
- tst r0, r1
- beq _02249F7A
-_02249F64:
- mov r0, #0x47
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #3
- add r3, r4, #0
- bl MOD11_02246870
- cmp r0, #0
- beq _02249F7A
- mov r6, #1
-_02249F7A:
- add r0, r6, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02249F80: .word 0x00002DB0
-_02249F84: .word 0x0400E000
-_02249F88: .word 0x00002DCC
-
- thumb_func_start MOD11_02249F8C
-MOD11_02249F8C: ; 0x02249F8C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r4, r1, #0
- str r0, [sp]
- mov r6, #0
- str r2, [sp, #4]
- add r0, r4, #0
- add r1, r2, #0
- add r5, r6, #0
- bl MOD11_02249E18
- add r7, r0, #0
- ldr r1, [sp, #4]
- add r0, r4, #0
- mov r2, #1
- bl MOD11_02249DA4
- str r0, [sp, #0x10]
- ldr r1, [r4, #0x6c]
- add r0, r4, #0
- bl MOD11_0224AD9C
- cmp r0, #1
- bne _02249FC2
- add sp, #0x14
- add r0, r6, #0
- pop {r4, r5, r6, r7, pc}
-_02249FC2:
- cmp r7, #0x17
- bls _02249FC8
- b _0224A444
-_02249FC8:
- add r0, r7, r7
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02249FD4: ; jump table
- .short _0224A444 - _02249FD4 - 2 ; case 0
- .short _0224A04E - _02249FD4 - 2 ; case 1
- .short _0224A066 - _02249FD4 - 2 ; case 2
- .short _0224A07E - _02249FD4 - 2 ; case 3
- .short _0224A096 - _02249FD4 - 2 ; case 4
- .short _0224A0AE - _02249FD4 - 2 ; case 5
- .short _0224A0C6 - _02249FD4 - 2 ; case 6
- .short _0224A004 - _02249FD4 - 2 ; case 7
- .short _0224A13C - _02249FD4 - 2 ; case 8
- .short _0224A154 - _02249FD4 - 2 ; case 9
- .short _0224A024 - _02249FD4 - 2 ; case 10
- .short _0224A1B6 - _02249FD4 - 2 ; case 11
- .short _0224A1FC - _02249FD4 - 2 ; case 12
- .short _0224A242 - _02249FD4 - 2 ; case 13
- .short _0224A288 - _02249FD4 - 2 ; case 14
- .short _0224A2CE - _02249FD4 - 2 ; case 15
- .short _0224A314 - _02249FD4 - 2 ; case 16
- .short _0224A360 - _02249FD4 - 2 ; case 17
- .short _0224A37E - _02249FD4 - 2 ; case 18
- .short _0224A39C - _02249FD4 - 2 ; case 19
- .short _0224A3BA - _02249FD4 - 2 ; case 20
- .short _0224A424 - _02249FD4 - 2 ; case 21
- .short _0224A3D8 - _02249FD4 - 2 ; case 22
- .short _0224A43E - _02249FD4 - 2 ; case 23
-_0224A004:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _0224A320 ; =0x00002D8C
- ldr r1, [r2, r0]
- add r0, r0, #4
- ldr r0, [r2, r0]
- cmp r1, r0
- beq _0224A020
- ldr r1, _0224A324 ; =0x0000215C
- ldr r0, [sp, #0x10]
- mov r5, #0xc6
- str r0, [r4, r1]
-_0224A020:
- mov r6, #1
- b _0224A45A
-_0224A024:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A328 ; =0x00002D90
- ldr r2, [r1, r0]
- sub r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, r2
- beq _0224A04A
- ldr r1, [sp, #0x10]
- add r0, r1, #0
- mul r0, r2
- mov r1, #0x64
- bl MOD11_022476C0
- ldr r1, _0224A324 ; =0x0000215C
- mov r5, #0xc6
- str r0, [r4, r1]
-_0224A04A:
- mov r6, #1
- b _0224A45A
-_0224A04E:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A32C ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x40
- tst r0, r1
- beq _0224A062
- mov r5, #0xc7
-_0224A062:
- mov r6, #1
- b _0224A45A
-_0224A066:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A32C ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _0224A07A
- mov r5, #0xc8
-_0224A07A:
- mov r6, #1
- b _0224A45A
-_0224A07E:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A32C ; =0x00002DAC
- ldr r1, [r1, r0]
- ldr r0, _0224A330 ; =0x00000F88
- tst r0, r1
- beq _0224A092
- mov r5, #0xc9
-_0224A092:
- mov r6, #1
- b _0224A45A
-_0224A096:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A32C ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x10
- tst r0, r1
- beq _0224A0AA
- mov r5, #0xca
-_0224A0AA:
- mov r6, #1
- b _0224A45A
-_0224A0AE:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A32C ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x20
- tst r0, r1
- beq _0224A0C2
- mov r5, #0xcb
-_0224A0C2:
- mov r6, #1
- b _0224A45A
-_0224A0C6:
- str r5, [sp, #0xc]
-_0224A0C8:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r7, r1, #0
- mul r7, r0
- add r1, r4, r7
- ldr r0, _0224A334 ; =0x00002D4C
- add r2, r6, r1
- ldrh r0, [r2, r0]
- cmp r0, #0
- beq _0224A0FA
- add r2, r5, r1
- ldr r1, _0224A338 ; =0x00002D70
- ldrb r1, [r2, r1]
- bl WazaGetMaxPp
- add r1, r4, r7
- add r2, r5, r1
- ldr r1, _0224A33C ; =0x00002D6C
- ldrb r1, [r2, r1]
- sub r1, r0, r1
- ldr r0, [sp, #0xc]
- cmp r1, r0
- ble _0224A0FA
- str r1, [sp, #0xc]
- str r5, [sp, #8]
-_0224A0FA:
- add r5, r5, #1
- add r6, r6, #2
- cmp r5, #4
- blt _0224A0C8
- mov r0, #0xb5
- lsl r0, r0, #6
- ldr r1, [sp, #8]
- add r0, r4, r0
- ldr r2, [sp, #0x10]
- add r0, r0, r7
- add r1, #0x1f
- bl MOD11_02243DC8
- ldr r0, [sp]
- ldr r2, [r4, #0x64]
- add r1, r4, #0
- bl MOD11_02245190
- ldr r0, [r4, #0x64]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, [sp, #8]
- add r2, r4, r2
- lsl r0, r0, #1
- add r2, r2, r0
- ldr r0, _0224A334 ; =0x00002D4C
- add r1, #0x64
- ldrh r0, [r2, r0]
- mov r5, #0xcc
- mov r6, #1
- str r0, [r4, r1]
- b _0224A45A
-_0224A13C:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A340 ; =0x00002DB0
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _0224A150
- mov r5, #0xcd
-_0224A150:
- mov r6, #1
- b _0224A45A
-_0224A154:
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- add r1, r2, #0
- mul r1, r0
- ldr r6, _0224A32C ; =0x00002DAC
- add r0, r4, r1
- ldr r2, [r0, r6]
- lsl r3, r2, #0x18
- lsr r3, r3, #0x18
- bne _0224A172
- add r6, r6, #4
- ldr r6, [r0, r6]
- mov r0, #7
- tst r0, r6
- beq _0224A1B2
-_0224A172:
- mov r0, #0x40
- tst r0, r2
- beq _0224A17A
- mov r5, #0xc7
-_0224A17A:
- mov r0, #7
- tst r0, r2
- beq _0224A182
- mov r5, #0xc8
-_0224A182:
- ldr r0, _0224A330 ; =0x00000F88
- tst r0, r2
- beq _0224A18A
- mov r5, #0xc9
-_0224A18A:
- mov r0, #0x10
- tst r0, r2
- beq _0224A192
- mov r5, #0xca
-_0224A192:
- mov r0, #0x20
- tst r0, r2
- beq _0224A19A
- mov r5, #0xcb
-_0224A19A:
- ldr r0, _0224A340 ; =0x00002DB0
- add r1, r4, r1
- ldr r1, [r1, r0]
- mov r0, #7
- and r0, r1
- beq _0224A1A8
- mov r5, #0xcd
-_0224A1A8:
- cmp r3, #0
- beq _0224A1B2
- cmp r0, #0
- beq _0224A1B2
- mov r5, #0xce
-_0224A1B2:
- mov r6, #1
- b _0224A45A
-_0224A1B6:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _0224A328 ; =0x00002D90
- add r2, r4, r0
- ldr r0, [r2, r1]
- sub r1, r1, #4
- ldr r1, [r2, r1]
- cmp r1, r0
- beq _0224A1F8
- ldr r1, [sp, #0x10]
- bl MOD11_022476C0
- ldr r1, _0224A324 ; =0x0000215C
- str r0, [r4, r1]
- mov r0, #0x13
- add r1, r6, #0
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _0224A344 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- sub r1, r6, #1
- cmp r0, r1
- bne _0224A1F6
- mov r5, #0xcf
- b _0224A1F8
-_0224A1F6:
- mov r5, #0xc6
-_0224A1F8:
- mov r6, #1
- b _0224A45A
-_0224A1FC:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _0224A328 ; =0x00002D90
- add r2, r4, r0
- ldr r0, [r2, r1]
- sub r1, r1, #4
- ldr r1, [r2, r1]
- cmp r1, r0
- beq _0224A23E
- ldr r1, [sp, #0x10]
- bl MOD11_022476C0
- ldr r1, _0224A324 ; =0x0000215C
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #1
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _0224A344 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- sub r1, r6, #1
- cmp r0, r1
- bne _0224A23C
- mov r5, #0xcf
- b _0224A23E
-_0224A23C:
- mov r5, #0xc6
-_0224A23E:
- mov r6, #1
- b _0224A45A
-_0224A242:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _0224A328 ; =0x00002D90
- add r2, r4, r0
- ldr r0, [r2, r1]
- sub r1, r1, #4
- ldr r1, [r2, r1]
- cmp r1, r0
- beq _0224A284
- ldr r1, [sp, #0x10]
- bl MOD11_022476C0
- ldr r1, _0224A324 ; =0x0000215C
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #2
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _0224A344 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- sub r1, r6, #1
- cmp r0, r1
- bne _0224A282
- mov r5, #0xcf
- b _0224A284
-_0224A282:
- mov r5, #0xc6
-_0224A284:
- mov r6, #1
- b _0224A45A
-_0224A288:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _0224A328 ; =0x00002D90
- add r2, r4, r0
- ldr r0, [r2, r1]
- sub r1, r1, #4
- ldr r1, [r2, r1]
- cmp r1, r0
- beq _0224A2CA
- ldr r1, [sp, #0x10]
- bl MOD11_022476C0
- ldr r1, _0224A324 ; =0x0000215C
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #3
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _0224A344 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- sub r1, r6, #1
- cmp r0, r1
- bne _0224A2C8
- mov r5, #0xcf
- b _0224A2CA
-_0224A2C8:
- mov r5, #0xc6
-_0224A2CA:
- mov r6, #1
- b _0224A45A
-_0224A2CE:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _0224A328 ; =0x00002D90
- add r2, r4, r0
- ldr r0, [r2, r1]
- sub r1, r1, #4
- ldr r1, [r2, r1]
- cmp r1, r0
- beq _0224A310
- ldr r1, [sp, #0x10]
- bl MOD11_022476C0
- ldr r1, _0224A324 ; =0x0000215C
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #4
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _0224A344 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- sub r1, r6, #1
- cmp r0, r1
- bne _0224A30E
- mov r5, #0xcf
- b _0224A310
-_0224A30E:
- mov r5, #0xc6
-_0224A310:
- mov r6, #1
- b _0224A45A
-_0224A314:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, _0224A348 ; =0x00002D59
- b _0224A34C
- .align 2, 0
-_0224A320: .word 0x00002D8C
-_0224A324: .word 0x0000215C
-_0224A328: .word 0x00002D90
-_0224A32C: .word 0x00002DAC
-_0224A330: .word 0x00000F88
-_0224A334: .word 0x00002D4C
-_0224A338: .word 0x00002D70
-_0224A33C: .word 0x00002D6C
-_0224A340: .word 0x00002DB0
-_0224A344: .word 0x00002DA8
-_0224A348: .word 0x00002D59
-_0224A34C:
- add r2, r4, r2
- ldrsb r1, [r2, r1]
- cmp r1, #0xc
- bge _0224A35C
- mov r1, #1
- add r0, #0x70
- str r1, [r4, r0]
- mov r5, #0xd0
-_0224A35C:
- mov r6, #1
- b _0224A45A
-_0224A360:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, _0224A4C0 ; =0x00002D5A
- add r2, r4, r2
- ldrsb r1, [r2, r1]
- cmp r1, #0xc
- bge _0224A37A
- mov r1, #2
- add r0, #0x70
- str r1, [r4, r0]
- mov r5, #0xd0
-_0224A37A:
- mov r6, #1
- b _0224A45A
-_0224A37E:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, _0224A4C4 ; =0x00002D5B
- add r2, r4, r2
- ldrsb r1, [r2, r1]
- cmp r1, #0xc
- bge _0224A398
- mov r1, #3
- add r0, #0x70
- str r1, [r4, r0]
- mov r5, #0xd0
-_0224A398:
- mov r6, #1
- b _0224A45A
-_0224A39C:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, _0224A4C8 ; =0x00002D5C
- add r2, r4, r2
- ldrsb r1, [r2, r1]
- cmp r1, #0xc
- bge _0224A3B6
- mov r1, #4
- add r0, #0x70
- str r1, [r4, r0]
- mov r5, #0xd0
-_0224A3B6:
- mov r6, #1
- b _0224A45A
-_0224A3BA:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, _0224A4CC ; =0x00002D5D
- add r2, r4, r2
- ldrsb r1, [r2, r1]
- cmp r1, #0xc
- bge _0224A3D4
- mov r1, #5
- add r0, #0x70
- str r1, [r4, r0]
- mov r5, #0xd0
-_0224A3D4:
- mov r6, #1
- b _0224A45A
-_0224A3D8:
- ldr r2, [r4, #0x64]
- mov r1, #0xc0
- mul r1, r2
- add r3, r4, r1
- ldr r1, _0224A4D0 ; =0x00002D59
- add r0, r6, #0
-_0224A3E4:
- ldrsb r2, [r3, r1]
- cmp r2, #0xc
- blt _0224A3F2
- add r0, r0, #1
- add r3, r3, #1
- cmp r0, #5
- blt _0224A3E4
-_0224A3F2:
- cmp r0, #5
- beq _0224A420
- ldr r5, _0224A4D0 ; =0x00002D59
- mov r7, #5
- mov r6, #0xc0
-_0224A3FC:
- bl rand_LC
- add r1, r7, #0
- bl _s32_div_f
- ldr r0, [r4, #0x64]
- add r2, r0, #0
- mul r2, r6
- add r0, r4, r2
- add r0, r1, r0
- ldrsb r0, [r0, r5]
- cmp r0, #0xc
- beq _0224A3FC
- mov r0, #0x13
- add r1, r1, #1
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r5, #0xd2
-_0224A420:
- mov r6, #1
- b _0224A45A
-_0224A424:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A4D4 ; =0x00002DB0
- ldr r1, [r1, r0]
- mov r0, #1
- lsl r0, r0, #0x14
- tst r0, r1
- bne _0224A43A
- mov r5, #0xd1
-_0224A43A:
- mov r6, #1
- b _0224A45A
-_0224A43E:
- ldr r5, _0224A4D8 ; =0x00000109
- mov r6, #1
- b _0224A45A
-_0224A444:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224A4DC ; =0x00002DB8
- add r1, r4, r1
- ldrh r0, [r1, r0]
- bl FUN_0206EAEC
- cmp r0, #1
- bne _0224A45A
- mov r6, #1
-_0224A45A:
- cmp r6, #1
- bne _0224A4B8
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x67
- beq _0224A482
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- mov r1, #0xb7
- add r2, r4, r2
- lsl r1, r1, #6
- ldr r2, [r2, r1]
- mov r1, #1
- lsl r1, r1, #0x1a
- tst r1, r2
- beq _0224A48C
-_0224A482:
- mov r0, #0x4e
- mov r1, #0
- lsl r0, r0, #2
- str r1, [r4, r0]
- b _0224A490
-_0224A48C:
- add r0, #0x78
- str r5, [r4, r0]
-_0224A490:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _0224A4DC ; =0x00002DB8
- add r2, r4, r2
- ldrh r0, [r2, r0]
- add r1, #0x68
- str r0, [r4, r1]
- ldr r2, [r4, #0x64]
- mov r0, #0xba
- lsl r0, r0, #2
- mov r1, #0x1c
- add r3, r2, #0
- mul r3, r1
- add r0, r4, r0
- ldr r2, [r0, r3]
- mov r1, #2
- orr r1, r2
- str r1, [r0, r3]
-_0224A4B8:
- add r0, r6, #0
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_0224A4C0: .word 0x00002D5A
-_0224A4C4: .word 0x00002D5B
-_0224A4C8: .word 0x00002D5C
-_0224A4CC: .word 0x00002D5D
-_0224A4D0: .word 0x00002D59
-_0224A4D4: .word 0x00002DB0
-_0224A4D8: .word 0x00000109
-_0224A4DC: .word 0x00002DB8
-
- thumb_func_start MOD11_0224A4E0
-MOD11_0224A4E0: ; 0x0224A4E0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r4, r1, #0
- str r0, [sp]
- str r2, [sp, #4]
- add r0, r4, #0
- add r1, r2, #0
- bl MOD11_02249E30
- add r6, r0, #0
- ldr r1, [sp, #4]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_02249DA4
- str r0, [sp, #0x10]
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02249E58
- ldr r1, _0224A84C ; =0x00002154
- add r2, r4, #0
- str r0, [r4, r1]
- ldr r0, _0224A850 ; =0x00003118
- mov r5, #0
- str r5, [r4, r0]
- add r2, #0x88
- str r5, [r2]
- ldr r1, [r4, r1]
- cmp r1, #0
- bne _0224A524
- add sp, #0x14
- add r0, r5, #0
- pop {r4, r5, r6, r7, pc}
-_0224A524:
- cmp r6, #0x1e
- bls _0224A52A
- b _0224AAAC
-_0224A52A:
- add r1, r6, r6
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0224A536: ; jump table
- .short _0224AAAC - _0224A536 - 2 ; case 0
- .short _0224A5A2 - _0224A536 - 2 ; case 1
- .short _0224A5BA - _0224A536 - 2 ; case 2
- .short _0224A5D2 - _0224A536 - 2 ; case 3
- .short _0224A5EA - _0224A536 - 2 ; case 4
- .short _0224A602 - _0224A536 - 2 ; case 5
- .short _0224A61A - _0224A536 - 2 ; case 6
- .short _0224A574 - _0224A536 - 2 ; case 7
- .short _0224A69C - _0224A536 - 2 ; case 8
- .short _0224A6B4 - _0224A536 - 2 ; case 9
- .short _0224A580 - _0224A536 - 2 ; case 10
- .short _0224A77A - _0224A536 - 2 ; case 11
- .short _0224A7BC - _0224A536 - 2 ; case 12
- .short _0224A7FE - _0224A536 - 2 ; case 13
- .short _0224A840 - _0224A536 - 2 ; case 14
- .short _0224A8B0 - _0224A536 - 2 ; case 15
- .short _0224A9AC - _0224A536 - 2 ; case 16
- .short _0224A9CA - _0224A536 - 2 ; case 17
- .short _0224A9E8 - _0224A536 - 2 ; case 18
- .short _0224AA06 - _0224A536 - 2 ; case 19
- .short _0224AA24 - _0224A536 - 2 ; case 20
- .short _0224AA8E - _0224A536 - 2 ; case 21
- .short _0224AA42 - _0224A536 - 2 ; case 22
- .short _0224AAA8 - _0224A536 - 2 ; case 23
- .short _0224A8F2 - _0224A536 - 2 ; case 24
- .short _0224A91A - _0224A536 - 2 ; case 25
- .short _0224A93E - _0224A536 - 2 ; case 26
- .short _0224A954 - _0224A536 - 2 ; case 27
- .short _0224A96A - _0224A536 - 2 ; case 28
- .short _0224A980 - _0224A536 - 2 ; case 29
- .short _0224A996 - _0224A536 - 2 ; case 30
-_0224A574:
- ldr r1, [sp, #0x10]
- sub r2, r0, #4
- str r1, [r4, r2]
- mov r1, #0xc6
- str r1, [r4, r0]
- b _0224AAAC
-_0224A580:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A854 ; =0x00002D90
- ldr r0, [r1, r0]
- ldr r1, [sp, #0x10]
- mul r0, r1
- mov r1, #0x64
- bl MOD11_022476C0
- ldr r1, _0224A858 ; =0x00003114
- mov r2, #0xc6
- str r0, [r4, r1]
- add r0, r1, #4
- str r2, [r4, r0]
- b _0224AAAC
-_0224A5A2:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _0224A85C ; =0x00002DAC
- ldr r2, [r2, r1]
- mov r1, #0x40
- tst r1, r2
- beq _0224A65C
- mov r1, #0xc7
- str r1, [r4, r0]
- b _0224AAAC
-_0224A5BA:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _0224A85C ; =0x00002DAC
- ldr r2, [r2, r1]
- mov r1, #7
- tst r1, r2
- beq _0224A65C
- mov r1, #0xc8
- str r1, [r4, r0]
- b _0224AAAC
-_0224A5D2:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _0224A85C ; =0x00002DAC
- ldr r2, [r2, r1]
- ldr r1, _0224A860 ; =0x00000F88
- tst r1, r2
- beq _0224A65C
- mov r1, #0xc9
- str r1, [r4, r0]
- b _0224AAAC
-_0224A5EA:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _0224A85C ; =0x00002DAC
- ldr r2, [r2, r1]
- mov r1, #0x10
- tst r1, r2
- beq _0224A65C
- mov r1, #0xca
- str r1, [r4, r0]
- b _0224AAAC
-_0224A602:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _0224A85C ; =0x00002DAC
- ldr r2, [r2, r1]
- mov r1, #0x20
- tst r1, r2
- beq _0224A65C
- mov r1, #0xcb
- str r1, [r4, r0]
- b _0224AAAC
-_0224A61A:
- add r6, r5, #0
- add r7, r5, #0
-_0224A61E:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- str r0, [sp, #8]
- ldr r0, _0224A864 ; =0x00002D4C
- add r2, r7, r1
- ldrh r0, [r2, r0]
- cmp r0, #0
- beq _0224A650
- add r2, r6, r1
- ldr r1, _0224A868 ; =0x00002D70
- ldrb r1, [r2, r1]
- bl WazaGetMaxPp
- ldr r1, [sp, #8]
- add r1, r4, r1
- add r2, r6, r1
- ldr r1, _0224A86C ; =0x00002D6C
- ldrb r1, [r2, r1]
- sub r0, r0, r1
- cmp r0, r5
- ble _0224A650
- add r5, r0, #0
- str r6, [sp, #0xc]
-_0224A650:
- add r6, r6, #1
- add r7, r7, #2
- cmp r6, #4
- blt _0224A61E
- cmp r5, #0
- bne _0224A65E
-_0224A65C:
- b _0224AAAC
-_0224A65E:
- mov r0, #0xb5
- lsl r0, r0, #6
- add r1, r4, r0
- ldr r0, [sp, #8]
- ldr r2, [sp, #0x10]
- add r0, r1, r0
- ldr r1, [sp, #0xc]
- add r1, #0x1f
- bl MOD11_02243DC8
- ldr r0, [sp]
- ldr r2, [r4, #0x6c]
- add r1, r4, #0
- bl MOD11_02245190
- ldr r0, [r4, #0x6c]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, [sp, #0xc]
- add r2, r4, r2
- lsl r0, r0, #1
- add r2, r2, r0
- ldr r0, _0224A864 ; =0x00002D4C
- add r1, #0x64
- ldrh r0, [r2, r0]
- str r0, [r4, r1]
- ldr r0, _0224A850 ; =0x00003118
- mov r1, #0xcc
- str r1, [r4, r0]
- b _0224AAAC
-_0224A69C:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _0224A870 ; =0x00002DB0
- ldr r2, [r2, r1]
- mov r1, #7
- tst r1, r2
- beq _0224A770
- mov r1, #0xcd
- str r1, [r4, r0]
- b _0224AAAC
-_0224A6B4:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _0224A85C ; =0x00002DAC
- add r3, r4, r0
- ldr r0, [r3, r1]
- lsl r2, r0, #0x18
- lsr r2, r2, #0x18
- bne _0224A6D0
- add r1, r1, #4
- ldr r2, [r3, r1]
- mov r1, #7
- tst r1, r2
- beq _0224A770
-_0224A6D0:
- mov r1, #0x40
- tst r0, r1
- beq _0224A6DC
- ldr r0, _0224A850 ; =0x00003118
- mov r1, #0xc7
- str r1, [r4, r0]
-_0224A6DC:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A85C ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _0224A6F4
- ldr r0, _0224A850 ; =0x00003118
- mov r1, #0xc8
- str r1, [r4, r0]
-_0224A6F4:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A85C ; =0x00002DAC
- ldr r1, [r1, r0]
- ldr r0, _0224A860 ; =0x00000F88
- tst r0, r1
- beq _0224A70C
- ldr r0, _0224A850 ; =0x00003118
- mov r1, #0xc9
- str r1, [r4, r0]
-_0224A70C:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A85C ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x10
- tst r0, r1
- beq _0224A724
- ldr r0, _0224A850 ; =0x00003118
- mov r1, #0xca
- str r1, [r4, r0]
-_0224A724:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A85C ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x20
- tst r0, r1
- beq _0224A73C
- ldr r0, _0224A850 ; =0x00003118
- mov r1, #0xcb
- str r1, [r4, r0]
-_0224A73C:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A870 ; =0x00002DB0
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _0224A754
- ldr r0, _0224A850 ; =0x00003118
- mov r1, #0xcd
- str r1, [r4, r0]
-_0224A754:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _0224A85C ; =0x00002DAC
- ldr r1, [r2, r0]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- beq _0224A770
- add r0, r0, #4
- ldr r1, [r2, r0]
- mov r0, #7
- tst r0, r1
- bne _0224A772
-_0224A770:
- b _0224AAAC
-_0224A772:
- ldr r0, _0224A850 ; =0x00003118
- mov r1, #0xce
- str r1, [r4, r0]
- b _0224AAAC
-_0224A77A:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A854 ; =0x00002D90
- ldr r0, [r1, r0]
- ldr r1, [sp, #0x10]
- bl MOD11_022476C0
- ldr r1, _0224A858 ; =0x00003114
- str r0, [r4, r1]
- mov r0, #0x13
- add r1, r5, #0
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r2, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _0224A874 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- sub r1, r5, #1
- cmp r0, r1
- ldr r0, _0224A850 ; =0x00003118
- bne _0224A7B6
- mov r1, #0xcf
- str r1, [r4, r0]
- b _0224AAAC
-_0224A7B6:
- mov r1, #0xc6
- str r1, [r4, r0]
- b _0224AAAC
-_0224A7BC:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A854 ; =0x00002D90
- ldr r0, [r1, r0]
- ldr r1, [sp, #0x10]
- bl MOD11_022476C0
- ldr r1, _0224A858 ; =0x00003114
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #1
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r2, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _0224A874 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- sub r1, r5, #1
- cmp r0, r1
- ldr r0, _0224A850 ; =0x00003118
- bne _0224A7F8
- mov r1, #0xcf
- str r1, [r4, r0]
- b _0224AAAC
-_0224A7F8:
- mov r1, #0xc6
- str r1, [r4, r0]
- b _0224AAAC
-_0224A7FE:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A854 ; =0x00002D90
- ldr r0, [r1, r0]
- ldr r1, [sp, #0x10]
- bl MOD11_022476C0
- ldr r1, _0224A858 ; =0x00003114
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #2
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r2, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _0224A874 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- sub r1, r5, #1
- cmp r0, r1
- ldr r0, _0224A850 ; =0x00003118
- bne _0224A83A
- mov r1, #0xcf
- str r1, [r4, r0]
- b _0224AAAC
-_0224A83A:
- mov r1, #0xc6
- str r1, [r4, r0]
- b _0224AAAC
-_0224A840:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A854 ; =0x00002D90
- b _0224A878
- .align 2, 0
-_0224A84C: .word 0x00002154
-_0224A850: .word 0x00003118
-_0224A854: .word 0x00002D90
-_0224A858: .word 0x00003114
-_0224A85C: .word 0x00002DAC
-_0224A860: .word 0x00000F88
-_0224A864: .word 0x00002D4C
-_0224A868: .word 0x00002D70
-_0224A86C: .word 0x00002D6C
-_0224A870: .word 0x00002DB0
-_0224A874: .word 0x00002DA8
-_0224A878:
- ldr r0, [r1, r0]
- ldr r1, [sp, #0x10]
- bl MOD11_022476C0
- ldr r1, _0224AB14 ; =0x00003114
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #3
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r2, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _0224AB18 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- sub r1, r5, #1
- cmp r0, r1
- ldr r0, _0224AB1C ; =0x00003118
- bne _0224A8AA
- mov r1, #0xcf
- str r1, [r4, r0]
- b _0224AAAC
-_0224A8AA:
- mov r1, #0xc6
- str r1, [r4, r0]
- b _0224AAAC
-_0224A8B0:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224AB20 ; =0x00002D90
- ldr r0, [r1, r0]
- ldr r1, [sp, #0x10]
- bl MOD11_022476C0
- ldr r1, _0224AB14 ; =0x00003114
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #4
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r2, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _0224AB18 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- sub r1, r5, #1
- cmp r0, r1
- ldr r0, _0224AB1C ; =0x00003118
- bne _0224A8EC
- mov r1, #0xcf
- str r1, [r4, r0]
- b _0224AAAC
-_0224A8EC:
- mov r1, #0xc6
- str r1, [r4, r0]
- b _0224AAAC
-_0224A8F2:
- ldr r2, _0224AB24 ; =0x00002D58
- mov r6, #6
- mov r3, #0xd3
- mov r7, #0xc0
-_0224A8FA:
- ldr r0, [r4, #0x6c]
- add r1, r0, #0
- mul r1, r7
- add r0, r4, r1
- add r0, r0, r5
- ldrsb r1, [r0, r2]
- cmp r1, #6
- bge _0224A912
- ldr r1, _0224AB24 ; =0x00002D58
- strb r6, [r0, r1]
- ldr r0, _0224AB1C ; =0x00003118
- str r3, [r4, r0]
-_0224A912:
- add r5, r5, #1
- cmp r5, #8
- blt _0224A8FA
- b _0224AAAC
-_0224A91A:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- add r3, r2, #0
- mul r3, r1
- ldr r2, _0224AB28 ; =0x00002DB0
- add r3, r4, r3
- ldr r3, [r3, r2]
- mov r2, #0xf
- lsl r2, r2, #0x10
- tst r2, r3
- bne _0224A932
- b _0224AAAC
-_0224A932:
- mov r2, #6
- add r1, #0x70
- str r2, [r4, r1]
- mov r1, #0xd4
- str r1, [r4, r0]
- b _0224AAAC
-_0224A93E:
- add r2, r4, #0
- ldr r1, [sp, #4]
- add r2, #0x94
- str r1, [r2]
- add r1, r4, #0
- mov r2, #2
- add r1, #0x88
- str r2, [r1]
- mov r1, #0xe
- str r1, [r4, r0]
- b _0224AAAC
-_0224A954:
- add r2, r4, #0
- ldr r1, [sp, #4]
- add r2, #0x94
- str r1, [r2]
- add r1, r4, #0
- mov r2, #2
- add r1, #0x88
- str r2, [r1]
- mov r1, #0x1f
- str r1, [r4, r0]
- b _0224AAAC
-_0224A96A:
- add r2, r4, #0
- ldr r1, [sp, #4]
- add r2, #0x94
- str r1, [r2]
- add r1, r4, #0
- mov r2, #2
- add r1, #0x88
- str r2, [r1]
- mov r1, #0x16
- str r1, [r4, r0]
- b _0224AAAC
-_0224A980:
- add r2, r4, #0
- ldr r1, [sp, #4]
- add r2, #0x94
- str r1, [r2]
- add r1, r4, #0
- mov r2, #2
- add r1, #0x88
- str r2, [r1]
- mov r1, #0x2f
- str r1, [r4, r0]
- b _0224AAAC
-_0224A996:
- add r2, r4, #0
- ldr r1, [sp, #4]
- add r2, #0x94
- str r1, [r2]
- add r1, r4, #0
- mov r2, #2
- add r1, #0x88
- str r2, [r1]
- mov r1, #0x19
- str r1, [r4, r0]
- b _0224AAAC
-_0224A9AC:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- add r3, r2, #0
- mul r3, r1
- ldr r2, _0224AB2C ; =0x00002D59
- add r3, r4, r3
- ldrsb r2, [r3, r2]
- cmp r2, #0xc
- bge _0224AAAC
- mov r2, #1
- add r1, #0x70
- str r2, [r4, r1]
- mov r1, #0xd0
- str r1, [r4, r0]
- b _0224AAAC
-_0224A9CA:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- add r3, r2, #0
- mul r3, r1
- ldr r2, _0224AB30 ; =0x00002D5A
- add r3, r4, r3
- ldrsb r2, [r3, r2]
- cmp r2, #0xc
- bge _0224AAAC
- mov r2, #2
- add r1, #0x70
- str r2, [r4, r1]
- mov r1, #0xd0
- str r1, [r4, r0]
- b _0224AAAC
-_0224A9E8:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- add r3, r2, #0
- mul r3, r1
- ldr r2, _0224AB34 ; =0x00002D5B
- add r3, r4, r3
- ldrsb r2, [r3, r2]
- cmp r2, #0xc
- bge _0224AAAC
- mov r2, #3
- add r1, #0x70
- str r2, [r4, r1]
- mov r1, #0xd0
- str r1, [r4, r0]
- b _0224AAAC
-_0224AA06:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- add r3, r2, #0
- mul r3, r1
- ldr r2, _0224AB38 ; =0x00002D5C
- add r3, r4, r3
- ldrsb r2, [r3, r2]
- cmp r2, #0xc
- bge _0224AAAC
- mov r2, #4
- add r1, #0x70
- str r2, [r4, r1]
- mov r1, #0xd0
- str r1, [r4, r0]
- b _0224AAAC
-_0224AA24:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- add r3, r2, #0
- mul r3, r1
- ldr r2, _0224AB3C ; =0x00002D5D
- add r3, r4, r3
- ldrsb r2, [r3, r2]
- cmp r2, #0xc
- bge _0224AAAC
- mov r2, #5
- add r1, #0x70
- str r2, [r4, r1]
- mov r1, #0xd0
- str r1, [r4, r0]
- b _0224AAAC
-_0224AA42:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _0224AB2C ; =0x00002D59
-_0224AA4C:
- ldrsb r1, [r2, r0]
- cmp r1, #0xc
- blt _0224AA5A
- add r5, r5, #1
- add r2, r2, #1
- cmp r5, #5
- blt _0224AA4C
-_0224AA5A:
- cmp r5, #5
- beq _0224AAAC
- ldr r5, _0224AB2C ; =0x00002D59
- mov r7, #5
- mov r6, #0xc0
-_0224AA64:
- bl rand_LC
- add r1, r7, #0
- bl _s32_div_f
- ldr r0, [r4, #0x6c]
- add r2, r0, #0
- mul r2, r6
- add r0, r4, r2
- add r0, r1, r0
- ldrsb r0, [r0, r5]
- cmp r0, #0xc
- beq _0224AA64
- mov r0, #0x13
- add r1, r1, #1
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _0224AB1C ; =0x00003118
- mov r1, #0xd2
- str r1, [r4, r0]
- b _0224AAAC
-_0224AA8E:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _0224AB28 ; =0x00002DB0
- ldr r2, [r2, r1]
- mov r1, #1
- lsl r1, r1, #0x14
- tst r1, r2
- bne _0224AAAC
- mov r1, #0xd1
- str r1, [r4, r0]
- b _0224AAAC
-_0224AAA8:
- ldr r1, _0224AB40 ; =0x00000109
- str r1, [r4, r0]
-_0224AAAC:
- ldr r0, [r4, #0x6c]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- add r0, r4, r2
- mov r2, #0xb7
- lsl r2, r2, #6
- ldr r3, [r0, r2]
- mov r0, #1
- lsl r0, r0, #0x1a
- tst r0, r3
- beq _0224AACC
- ldr r0, _0224AB1C ; =0x00003118
- mov r1, #0
- str r1, [r4, r0]
- b _0224AB0C
-_0224AACC:
- ldr r0, [sp, #4]
- sub r2, #8
- add r3, r0, #0
- mul r3, r1
- add r0, r4, r3
- ldrh r0, [r0, r2]
- add r1, #0x68
- str r0, [r4, r1]
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- cmp r0, #0
- bne _0224AB04
- ldr r0, _0224AB1C ; =0x00003118
- ldr r0, [r4, r0]
- cmp r0, #0
- beq _0224AB04
- mov r0, #0xba
- ldr r1, [r4, #0x64]
- lsl r0, r0, #2
- add r3, r4, r0
- mov r0, #0x1c
- add r2, r1, #0
- mul r2, r0
- ldr r1, [r3, r2]
- mov r0, #2
- orr r0, r1
- str r0, [r3, r2]
-_0224AB04:
- mov r0, #0x46
- ldr r1, [r4, #0x6c]
- lsl r0, r0, #2
- str r1, [r4, r0]
-_0224AB0C:
- mov r0, #1
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_0224AB14: .word 0x00003114
-_0224AB18: .word 0x00002DA8
-_0224AB1C: .word 0x00003118
-_0224AB20: .word 0x00002D90
-_0224AB24: .word 0x00002D58
-_0224AB28: .word 0x00002DB0
-_0224AB2C: .word 0x00002D59
-_0224AB30: .word 0x00002D5A
-_0224AB34: .word 0x00002D5B
-_0224AB38: .word 0x00002D5C
-_0224AB3C: .word 0x00002D5D
-_0224AB40: .word 0x00000109
-
- thumb_func_start MOD11_0224AB44
-MOD11_0224AB44: ; 0x0224AB44
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02249D90
- cmp r0, #0x68
- bne _0224ABD2
- ldr r5, [r4, #0x64]
- mov r6, #0xc0
- add r3, r5, #0
- mul r3, r6
- ldr r0, _0224ABE8 ; =0x00002DB0
- add r2, r4, r3
- ldr r1, [r2, r0]
- lsl r6, r6, #4
- tst r6, r1
- bne _0224ABE6
- mov r6, #0x70
- tst r6, r1
- bne _0224ABE6
- ldr r6, _0224ABEC ; =0x0000213C
- ldr r7, [r4, r6]
- mov r6, #2
- lsl r6, r6, #8
- tst r7, r6
- bne _0224ABE6
- lsl r6, r6, #3
- tst r1, r6
- bne _0224ABE6
- mov r6, #0xc1
- lsl r6, r6, #6
- lsl r5, r5, #1
- add r7, r4, r5
- add r5, r6, #0
- add r5, #0x9c
- ldrh r5, [r7, r5]
- ldr r1, [r4, r6]
- cmp r1, r5
- bne _0224ABB8
- add r1, r0, #0
- add r1, #0x1c
- ldr r1, [r2, r1]
- lsl r1, r1, #5
- lsr r5, r1, #0x1c
- cmp r5, #0xa
- bhs _0224ABE6
- add r0, #0x1c
- add r0, r4, r0
- ldr r2, [r0, r3]
- ldr r1, _0224ABF0 ; =0xF87FFFFF
- and r2, r1
- add r1, r5, #1
- lsl r1, r1, #0x1c
- lsr r1, r1, #5
- orr r1, r2
- str r1, [r0, r3]
- pop {r3, r4, r5, r6, r7, pc}
-_0224ABB8:
- add r0, #0x1c
- add r2, r4, r0
- ldr r1, [r2, r3]
- ldr r0, _0224ABF0 ; =0xF87FFFFF
- and r0, r1
- str r0, [r2, r3]
- ldr r0, [r4, #0x64]
- ldr r1, [r4, r6]
- lsl r0, r0, #1
- add r0, r4, r0
- add r6, #0x9c
- strh r1, [r0, r6]
- pop {r3, r4, r5, r6, r7, pc}
-_0224ABD2:
- ldr r0, _0224ABF4 ; =0x00002DCC
- ldr r1, [r4, #0x64]
- add r3, r4, r0
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, [r3, r2]
- ldr r0, _0224ABF0 ; =0xF87FFFFF
- and r0, r1
- str r0, [r3, r2]
-_0224ABE6:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224ABE8: .word 0x00002DB0
-_0224ABEC: .word 0x0000213C
-_0224ABF0: .word 0xF87FFFFF
-_0224ABF4: .word 0x00002DCC
-
- thumb_func_start MOD11_0224ABF8
-MOD11_0224ABF8: ; 0x0224ABF8
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02249D90
- cmp r0, #0x68
- bne _0224AC84
- ldr r5, _0224AC9C ; =0x0000216C
- ldr r0, _0224ACA0 ; =0x801FDA49
- ldr r1, [r4, r5]
- tst r0, r1
- beq _0224AC98
- ldr r2, [r4, #0x64]
- mov r0, #0xc1
- lsl r0, r0, #6
- lsl r1, r2, #1
- ldr r3, [r4, r0]
- add r1, r4, r1
- add r0, #0x9c
- ldrh r0, [r1, r0]
- cmp r3, r0
- bne _0224AC98
- mov r0, #0xc0
- add r1, r2, #0
- mul r1, r0
- ldr r3, _0224ACA4 ; =0x00002DCC
- add r6, r4, r1
- ldr r0, [r6, r3]
- lsl r0, r0, #5
- lsr r0, r0, #0x1c
- beq _0224AC98
- mov r7, #0x1c
- mul r7, r2
- mov r2, #0xb5
- add r7, r4, r7
- lsl r2, r2, #2
- ldr r7, [r7, r2]
- lsl r7, r7, #0x17
- lsr r7, r7, #0x1d
- bne _0224AC98
- add r7, r3, #0
- sub r7, #0x1c
- ldr r6, [r6, r7]
- mov r7, #0xc0
- lsl r7, r7, #4
- tst r7, r6
- bne _0224AC98
- mov r7, #0x70
- tst r7, r6
- bne _0224AC98
- sub r5, #0x30
- ldr r5, [r4, r5]
- sub r2, #0xd4
- tst r2, r5
- bne _0224AC98
- mov r2, #1
- lsl r2, r2, #0xc
- tst r2, r6
- bne _0224AC98
- add r2, r4, r3
- sub r0, r0, #1
- lsl r0, r0, #0x1c
- ldr r4, [r2, r1]
- ldr r3, _0224ACA8 ; =0xF87FFFFF
- lsr r0, r0, #5
- and r3, r4
- orr r0, r3
- str r0, [r2, r1]
- pop {r3, r4, r5, r6, r7, pc}
-_0224AC84:
- ldr r0, _0224ACA4 ; =0x00002DCC
- ldr r1, [r4, #0x64]
- add r3, r4, r0
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, [r3, r2]
- ldr r0, _0224ACA8 ; =0xF87FFFFF
- and r0, r1
- str r0, [r3, r2]
-_0224AC98:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224AC9C: .word 0x0000216C
-_0224ACA0: .word 0x801FDA49
-_0224ACA4: .word 0x00002DCC
-_0224ACA8: .word 0xF87FFFFF
-
- thumb_func_start MOD11_0224ACAC
-MOD11_0224ACAC: ; 0x0224ACAC
- push {r4, r5, r6, lr}
- add r5, r0, #0
- cmp r3, #1
- bne _0224ACBE
- sub r0, r2, #2
- cmp r0, #1
- bhi _0224ACBE
- mov r0, #1
- b _0224ACC0
-_0224ACBE:
- mov r0, #0
-_0224ACC0:
- cmp r0, #1
- mov r0, #0xc0
- add r4, r1, #0
- mul r4, r0
- ldr r2, _0224ACFC ; =0x00002D8C
- add r1, r5, r4
- ldr r0, [r1, r2]
- add r2, r2, #4
- ldr r1, [r1, r2]
- lsl r0, r0, #0x10
- lsl r1, r1, #0x10
- lsr r0, r0, #0x10
- lsr r1, r1, #0x10
- mov r2, #0x30
- mov r6, #0
- bl FUN_02079A54
- ldr r1, _0224AD00 ; =0x00002DAC
- add r2, r5, r4
- ldr r1, [r2, r1]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bne _0224ACF6
- cmp r0, #4
- beq _0224ACF8
- cmp r0, #3
- beq _0224ACF8
-_0224ACF6:
- mov r6, #0xb
-_0224ACF8:
- add r0, r6, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0224ACFC: .word 0x00002D8C
-_0224AD00: .word 0x00002DAC
-
- thumb_func_start MOD11_0224AD04
-MOD11_0224AD04: ; 0x0224AD04
- push {r3, r4}
- mov r3, #0xc0
- add r4, r1, #0
- mul r4, r3
- add r1, r0, r4
- ldr r0, _0224AD34 ; =0x00002DB0
- mov r2, #1
- ldr r0, [r1, r0]
- lsl r1, r2, #0x16
- tst r1, r0
- bne _0224AD2C
- lsl r1, r3, #4
- tst r1, r0
- bne _0224AD2C
- mov r1, #0x70
- tst r1, r0
- bne _0224AD2C
- lsl r1, r2, #0xc
- tst r0, r1
- beq _0224AD2E
-_0224AD2C:
- mov r2, #0
-_0224AD2E:
- add r0, r2, #0
- pop {r3, r4}
- bx lr
- .align 2, 0
-_0224AD34: .word 0x00002DB0
-
- thumb_func_start MOD11_0224AD38
-MOD11_0224AD38: ; 0x0224AD38
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r4, r1, #0
- add r5, r0, #0
- mov r1, #0
- add r6, r2, #0
- bl MOD11_022301D4
- str r0, [sp, #0xc]
- add r0, r5, #0
- bl MOD11_022302B0
- str r0, [sp, #8]
- add r0, r5, #0
- bl MOD11_02230294
- add r7, r0, #0
- add r0, r5, #0
- bl MOD11_0222FF74
- mov r1, #2
- lsl r1, r1, #8
- tst r0, r1
- beq _0224AD76
- add r0, r6, #0
- mov r1, #0x9a
- mov r2, #0
- bl GetMonData
- add r2, r0, #0
- b _0224AD7A
-_0224AD76:
- sub r1, #0xd8
- ldr r2, [r4, r1]
-_0224AD7A:
- str r7, [sp]
- mov r0, #5
- str r0, [sp, #4]
- ldr r1, [sp, #0xc]
- ldr r3, [sp, #8]
- add r0, r6, #0
- bl FUN_0206A014
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224AD90
-MOD11_0224AD90: ; 0x0224AD90
- lsl r1, r1, #8
- add r1, r0, r1
- mov r0, #0x23
- lsl r0, r0, #8
- ldrb r0, [r1, r0]
- bx lr
-
- thumb_func_start MOD11_0224AD9C
-MOD11_0224AD9C: ; 0x0224AD9C
- mov r3, #0x1c
- mul r3, r1
- add r1, r0, r3
- mov r0, #0xba
- lsl r0, r0, #2
- ldr r1, [r1, r0]
- mov r0, #8
- mov r2, #0
- tst r0, r1
- beq _0224ADB2
- mov r2, #1
-_0224ADB2:
- add r0, r2, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0224ADB8
-MOD11_0224ADB8: ; 0x0224ADB8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- mov r1, #0
- bl MOD11_022301D4
- add r4, r0, #0
- bl FUN_020239BC
- add r6, r0, #0
- add r0, r4, #0
- bl FUN_020239CC
- add r7, r0, #0
- add r0, r4, #0
- bl FUN_0202398C
- ldr r2, [r5, #0x64]
- mov r1, #0xc0
- add r4, r2, #0
- mul r4, r1
- ldr r1, _0224AE10 ; =0x00002DB4
- add r3, r5, r4
- ldr r2, [r3, r1]
- cmp r6, r2
- bne _0224AE0C
- add r2, r1, #0
- add r2, #0xa
- ldrb r2, [r3, r2]
- lsl r2, r2, #0x18
- lsr r2, r2, #0x1c
- cmp r7, r2
- bne _0224AE0C
- sub r1, #0x20
- add r1, r5, r1
- add r1, r1, r4
- mov r2, #7
- bl StringNotEqualN
- cmp r0, #0
- bne _0224AE0C
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_0224AE0C:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224AE10: .word 0x00002DB4
-
- thumb_func_start MOD11_0224AE14
-MOD11_0224AE14: ; 0x0224AE14
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r5, r1, #0
- mov r1, #0
- bl MOD11_022301D4
- add r4, r0, #0
- bl FUN_020239BC
- add r6, r0, #0
- add r0, r4, #0
- bl FUN_020239CC
- add r7, r0, #0
- add r0, r4, #0
- bl FUN_0202398C
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #0x8f
- add r2, sp, #0
- bl GetMonData
- add r0, r5, #0
- mov r1, #7
- mov r2, #0
- bl GetMonData
- cmp r6, r0
- bne _0224AE72
- add r0, r5, #0
- mov r1, #0x9c
- mov r2, #0
- bl GetMonData
- cmp r7, r0
- bne _0224AE72
- add r0, r4, #0
- add r1, sp, #0
- mov r2, #7
- bl StringNotEqualN
- cmp r0, #0
- bne _0224AE72
- add sp, #0x10
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_0224AE72:
- mov r0, #0
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0224AE78
-MOD11_0224AE78: ; 0x0224AE78
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- mov r4, #0
- add r7, r0, #0
- add r5, r1, #0
- str r4, [sp, #4]
- bl MOD11_0222FF84
- cmp r0, #0
- bgt _0224AE8E
- b _0224B232
-_0224AE8E:
- ldr r0, _0224B1B8 ; =0x00002D66
- add r6, r5, r0
-_0224AE92:
- ldr r0, _0224B1BC ; =0x000021EC
- add r1, r5, r4
- ldrb r1, [r1, r0]
- mov r0, #0x46
- lsl r0, r0, #2
- str r1, [r5, r0]
- ldr r3, [r5, r0]
- mov r0, #0xc0
- mul r0, r3
- add r2, r5, r0
- mov r0, #0xb5
- lsl r0, r0, #6
- ldrh r1, [r2, r0]
- ldr r0, _0224B1C0 ; =0x0000015F
- cmp r1, r0
- bne _0224AEC6
- ldr r0, _0224B1C4 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _0224AEC6
- add r0, r5, #0
- add r1, r3, #0
- bl MOD11_02246D1C
- cmp r0, #0x3b
- beq _0224AEC8
-_0224AEC6:
- b _0224B096
-_0224AEC8:
- mov r0, #0xd
- str r0, [sp]
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224AEF0
- mov r0, #0x4c
- str r0, [sp]
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- beq _0224AEF2
-_0224AEF0:
- b _0224B04A
-_0224AEF2:
- mov r0, #6
- lsl r0, r0, #6
- ldr r0, [r5, r0]
- mov r1, #0xf3
- tst r1, r0
- bne _0224AF4A
- mov r1, #0x46
- lsl r1, r1, #2
- ldr r2, [r5, r1]
- mov r1, #0xc0
- mul r1, r2
- ldr r2, _0224B1C8 ; =0x00002D64
- add r1, r5, r1
- ldrb r2, [r1, r2]
- cmp r2, #0
- beq _0224AF4A
- ldr r2, _0224B1CC ; =0x00002D65
- ldrb r2, [r1, r2]
- cmp r2, #0
- beq _0224AF4A
- ldr r3, _0224B1C8 ; =0x00002D64
- mov r2, #0
- mov r0, #0x46
- strb r2, [r1, r3]
- lsl r0, r0, #2
- ldr r4, [r5, r0]
- mov r1, #0xc0
- add r6, r4, #0
- mul r6, r1
- add r6, r5, r6
- add r4, r3, #1
- strb r2, [r6, r4]
- add r2, r3, #2
- ldr r0, [r5, r0]
- add r2, r5, r2
- add r3, r0, #0
- mul r3, r1
- ldrb r1, [r2, r3]
- mov r0, #0x1f
- bic r1, r0
- mov r0, #1
- strb r1, [r2, r3]
- str r0, [sp, #4]
- b _0224B232
-_0224AF4A:
- mov r1, #0x30
- tst r1, r0
- beq _0224AF9E
- mov r1, #0x46
- lsl r1, r1, #2
- ldr r2, [r5, r1]
- mov r1, #0xc0
- mul r1, r2
- ldr r2, _0224B1C8 ; =0x00002D64
- add r1, r5, r1
- ldrb r2, [r1, r2]
- cmp r2, #0xa
- beq _0224AF9E
- ldr r2, _0224B1CC ; =0x00002D65
- ldrb r2, [r1, r2]
- cmp r2, #0xa
- beq _0224AF9E
- ldr r3, _0224B1C8 ; =0x00002D64
- mov r2, #0xa
- mov r0, #0x46
- strb r2, [r1, r3]
- lsl r0, r0, #2
- ldr r4, [r5, r0]
- mov r1, #0xc0
- add r6, r4, #0
- mul r6, r1
- add r6, r5, r6
- add r4, r3, #1
- strb r2, [r6, r4]
- add r2, r3, #2
- ldr r0, [r5, r0]
- add r2, r5, r2
- add r3, r0, #0
- mul r3, r1
- ldrb r1, [r2, r3]
- mov r0, #0x1f
- bic r1, r0
- mov r0, #1
- str r0, [sp, #4]
- orr r0, r1
- strb r0, [r2, r3]
- b _0224B232
-_0224AF9E:
- mov r1, #3
- tst r1, r0
- beq _0224AFF4
- mov r1, #0x46
- lsl r1, r1, #2
- ldr r2, [r5, r1]
- mov r1, #0xc0
- mul r1, r2
- ldr r2, _0224B1C8 ; =0x00002D64
- add r1, r5, r1
- ldrb r2, [r1, r2]
- cmp r2, #0xb
- beq _0224AFF4
- ldr r2, _0224B1CC ; =0x00002D65
- ldrb r2, [r1, r2]
- cmp r2, #0xb
- beq _0224AFF4
- ldr r3, _0224B1C8 ; =0x00002D64
- mov r2, #0xb
- mov r0, #0x46
- strb r2, [r1, r3]
- lsl r0, r0, #2
- ldr r4, [r5, r0]
- mov r1, #0xc0
- add r6, r4, #0
- mul r6, r1
- add r6, r5, r6
- add r4, r3, #1
- strb r2, [r6, r4]
- add r2, r3, #2
- ldr r0, [r5, r0]
- add r2, r5, r2
- add r3, r0, #0
- mul r3, r1
- ldrb r1, [r2, r3]
- mov r0, #0x1f
- bic r1, r0
- mov r0, #2
- orr r0, r1
- strb r0, [r2, r3]
- mov r0, #1
- str r0, [sp, #4]
- b _0224B232
-_0224AFF4:
- mov r1, #0xc0
- tst r0, r1
- beq _0224B096
- add r0, r1, #0
- add r0, #0x58
- ldr r1, [r5, r0]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _0224B1C8 ; =0x00002D64
- add r0, r5, r0
- ldrb r1, [r0, r1]
- cmp r1, #0xf
- beq _0224B096
- ldr r1, _0224B1CC ; =0x00002D65
- ldrb r1, [r0, r1]
- cmp r1, #0xf
- beq _0224B096
- ldr r3, _0224B1C8 ; =0x00002D64
- mov r2, #0xf
- strb r2, [r0, r3]
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r4, [r5, r0]
- mov r1, #0xc0
- add r6, r4, #0
- mul r6, r1
- add r6, r5, r6
- add r4, r3, #1
- strb r2, [r6, r4]
- add r2, r3, #2
- ldr r0, [r5, r0]
- add r2, r5, r2
- add r3, r0, #0
- mul r3, r1
- ldrb r1, [r2, r3]
- mov r0, #0x1f
- bic r1, r0
- mov r0, #3
- orr r0, r1
- strb r0, [r2, r3]
- mov r0, #1
- str r0, [sp, #4]
- b _0224B232
-_0224B04A:
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r1, [r5, r0]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _0224B1C8 ; =0x00002D64
- add r0, r5, r0
- ldrb r1, [r0, r1]
- cmp r1, #0
- beq _0224B096
- ldr r1, _0224B1CC ; =0x00002D65
- ldrb r1, [r0, r1]
- cmp r1, #0
- beq _0224B096
- ldr r3, _0224B1C8 ; =0x00002D64
- mov r2, #0
- strb r2, [r0, r3]
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r4, [r5, r0]
- mov r1, #0xc0
- add r6, r4, #0
- mul r6, r1
- add r6, r5, r6
- add r4, r3, #1
- strb r2, [r6, r4]
- add r2, r3, #2
- ldr r0, [r5, r0]
- add r2, r5, r2
- add r3, r0, #0
- mul r3, r1
- ldrb r1, [r2, r3]
- mov r0, #0x1f
- bic r1, r0
- mov r0, #1
- strb r1, [r2, r3]
- str r0, [sp, #4]
- b _0224B232
-_0224B096:
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r1, [r5, r0]
- mov r0, #0xc0
- mul r0, r1
- mov r1, #0xb5
- add r0, r5, r0
- lsl r1, r1, #6
- ldrh r2, [r0, r1]
- ldr r1, _0224B1D0 ; =0x000001A5
- cmp r2, r1
- bne _0224B1A2
- ldr r1, _0224B1C4 ; =0x00002D8C
- ldr r0, [r0, r1]
- cmp r0, #0
- beq _0224B1A2
- mov r0, #0xd
- str r0, [sp]
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224B182
- mov r0, #0x4c
- str r0, [sp]
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224B182
- mov r0, #6
- lsl r0, r0, #6
- ldr r2, [r5, r0]
- mov r0, #0xf3
- tst r0, r2
- bne _0224B10C
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- mov r1, #0xc0
- add r3, r0, #0
- mul r3, r1
- ldrb r0, [r6, r3]
- lsl r1, r0, #0x1b
- lsr r1, r1, #0x1b
- cmp r1, #1
- bne _0224B10C
- mov r1, #0x1f
- bic r0, r1
- strb r0, [r6, r3]
- mov r0, #1
- str r0, [sp, #4]
- b _0224B232
-_0224B10C:
- mov r0, #0x30
- tst r0, r2
- beq _0224B134
- mov r0, #0x46
- lsl r0, r0, #2
-_0224B116:
- ldr r0, [r5, r0]
- mov r1, #0xc0
- add r3, r0, #0
- mul r3, r1
- ldrb r0, [r6, r3]
- lsl r1, r0, #0x1b
- lsr r1, r1, #0x1b
- bne _0224B134
- mov r1, #0x1f
- bic r0, r1
- mov r1, #1
- orr r0, r1
- str r1, [sp, #4]
- strb r0, [r6, r3]
- b _0224B232
-_0224B134:
- mov r0, #3
- tst r0, r2
- beq _0224B15C
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- mov r1, #0xc0
- add r3, r0, #0
- mul r3, r1
- ldrb r0, [r6, r3]
- lsl r1, r0, #0x1b
- lsr r1, r1, #0x1b
- cmp r1, #1
- bne _0224B15C
- mov r1, #0x1f
- bic r0, r1
- strb r0, [r6, r3]
- mov r0, #1
- str r0, [sp, #4]
- b _0224B232
-_0224B15C:
- mov r0, #0xc0
- tst r0, r2
- beq _0224B1A2
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r1, [r5, r0]
- mov r0, #0xc0
- mul r0, r1
- ldrb r2, [r6, r0]
- lsl r1, r2, #0x1b
- lsr r1, r1, #0x1b
- cmp r1, #1
- bne _0224B1A2
- mov r1, #0x1f
- bic r2, r1
- strb r2, [r6, r0]
- mov r0, #1
- str r0, [sp, #4]
- b _0224B232
-_0224B182:
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r1, [r5, r0]
- mov r0, #0xc0
- mul r0, r1
- ldrb r2, [r6, r0]
- lsl r1, r2, #0x1b
- lsr r1, r1, #0x1b
- cmp r1, #1
- bne _0224B1A2
- mov r1, #0x1f
- bic r2, r1
- strb r2, [r6, r0]
- mov r0, #1
- str r0, [sp, #4]
- b _0224B232
-_0224B1A2:
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r1, [r5, r0]
- mov r0, #0xc0
- mul r0, r1
- mov r1, #0xb5
- add r0, r5, r0
- lsl r1, r1, #6
- ldrh r2, [r0, r1]
- ldr r1, _0224B1D4 ; =0x000001ED
- b _0224B1D8
- .align 2, 0
-_0224B1B8: .word 0x00002D66
-_0224B1BC: .word 0x000021EC
-_0224B1C0: .word 0x0000015F
-_0224B1C4: .word 0x00002D8C
-_0224B1C8: .word 0x00002D64
-_0224B1CC: .word 0x00002D65
-_0224B1D0: .word 0x000001A5
-_0224B1D4: .word 0x000001ED
-_0224B1D8:
- cmp r2, r1
- bne _0224B224
- ldr r1, _0224B238 ; =0x00002D8C
- ldr r1, [r0, r1]
- cmp r1, #0
- beq _0224B224
- ldr r1, _0224B23C ; =0x00002DB8
- mov r2, #5
- ldrh r0, [r0, r1]
- mov r1, #1
- bl FUN_0206E7B8
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl GetArceusTypeByHeldItemEffect
- mov r1, #0x46
- lsl r1, r1, #2
- ldr r1, [r5, r1]
- mov r2, #0xc0
- add r3, r1, #0
- mul r3, r2
- ldrb r1, [r6, r3]
- lsl r2, r1, #0x1b
- lsr r2, r2, #0x1b
- cmp r0, r2
- beq _0224B224
- mov r2, #0x1f
- lsl r0, r0, #0x18
- bic r1, r2
- lsr r2, r0, #0x18
- mov r0, #0x1f
- and r0, r2
- orr r0, r1
- strb r0, [r6, r3]
- mov r0, #1
- str r0, [sp, #4]
- b _0224B232
-_0224B224:
- add r0, r7, #0
- add r4, r4, #1
- bl MOD11_0222FF84
- cmp r4, r0
- bge _0224B232
- b _0224AE92
-_0224B232:
- ldr r0, [sp, #4]
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224B238: .word 0x00002D8C
-_0224B23C: .word 0x00002DB8
-
- thumb_func_start MOD11_0224B240
-MOD11_0224B240: ; 0x0224B240
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- str r0, [sp, #4]
- str r1, [sp]
- mov r7, #0
- bl MOD11_0222FF84
- cmp r0, #0
- ble _0224B282
- ldr r5, [sp]
- ldr r4, _0224B288 ; =0x0000312C
-_0224B256:
- mov r1, #0
-_0224B258:
- add r0, r5, r1
- strb r1, [r0, r4]
- add r1, r1, #1
- cmp r1, #6
- blt _0224B258
- ldr r1, [sp]
- ldr r0, [sp, #4]
- add r3, r1, #0
- add r6, r3, r7
- ldr r3, _0224B28C ; =0x0000219C
- add r2, r7, #0
- ldrb r3, [r6, r3]
- bl MOD11_0224B290
- ldr r0, [sp, #4]
- add r5, r5, #6
- add r7, r7, #1
- bl MOD11_0222FF84
- cmp r7, r0
- blt _0224B256
-_0224B282:
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224B288: .word 0x0000312C
-_0224B28C: .word 0x0000219C
-
- thumb_func_start MOD11_0224B290
-MOD11_0224B290: ; 0x0224B290
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r6, r1, #0
- add r5, r2, #0
- add r4, r3, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r1, r0
- beq _0224B2AA
- mov r1, #0x18
- tst r1, r0
- beq _0224B2BE
-_0224B2AA:
- mov r1, #0x10
- tst r0, r1
- beq _0224B2E2
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_02230260
- mov r1, #1
- tst r0, r1
- bne _0224B2E2
-_0224B2BE:
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_02230260
- cmp r0, #4
- beq _0224B2D6
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_02230260
- cmp r0, #5
- bne _0224B2DA
-_0224B2D6:
- mov r1, #1
- b _0224B2DC
-_0224B2DA:
- mov r1, #0
-_0224B2DC:
- mov r0, #1
- and r5, r0
- b _0224B2E4
-_0224B2E2:
- mov r1, #0
-_0224B2E4:
- mov r2, #6
- mul r2, r5
- ldr r3, _0224B30C ; =0x0000312C
- mov r0, #0
- add r7, r6, r2
-_0224B2EE:
- ldrb r5, [r7, r3]
- cmp r4, r5
- beq _0224B2FC
- add r0, r0, #1
- add r7, r7, #1
- cmp r0, #6
- blt _0224B2EE
-_0224B2FC:
- ldr r3, _0224B30C ; =0x0000312C
- add r3, r6, r3
- add r4, r3, r2
- ldrb r3, [r4, r1]
- ldrb r2, [r4, r0]
- strb r2, [r4, r1]
- strb r3, [r4, r0]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224B30C: .word 0x0000312C
-
- thumb_func_start MOD11_0224B310
-MOD11_0224B310: ; 0x0224B310
- push {r4, r5, r6, r7, lr}
- sub sp, #0x8c
- str r0, [sp, #4]
- ldr r0, [sp, #0xa0]
- add r5, r1, #0
- str r0, [sp, #0xa0]
- ldr r0, [sp, #0xb4]
- str r2, [sp, #8]
- str r0, [sp, #0xb4]
- mov r0, #0
- str r0, [sp, #0x84]
- ldr r0, [sp, #0xb4]
- str r3, [sp, #0xc]
- cmp r0, #1
- beq _0224B334
- bhi _0224B334
- bl ErrorHandling
-_0224B334:
- add r0, sp, #0x90
- ldrb r0, [r0, #0x1c]
- mov r2, #1
- mov r3, #0
- str r0, [sp, #0x24]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x7c]
- add r0, sp, #0xb0
- ldrb r0, [r0]
- mov r2, #2
- mov r3, #0
- str r0, [sp, #0x20]
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x78]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #4
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x74]
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- mov r2, #5
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x10]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x13
- mov r3, #0
- bl MOD11_02243420
- sub r0, r0, #6
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #0x70]
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- mov r2, #0x14
- mov r3, #0
- bl MOD11_02243420
- sub r0, r0, #6
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #0x6c]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x16
- mov r3, #0
- bl MOD11_02243420
- sub r0, r0, #6
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #0x68]
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- mov r2, #0x17
- mov r3, #0
- bl MOD11_02243420
- sub r0, r0, #6
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #0x64]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x2b
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- mov r2, #0
- str r0, [sp, #0x60]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- add r3, r2, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #0
- str r0, [sp, #0x58]
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- add r3, r2, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x54]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x2f
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #0x50]
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- mov r2, #0x2f
- mov r3, #0
- bl MOD11_02243420
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x30
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x4c]
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- mov r2, #0x30
- mov r3, #0
- bl MOD11_02243420
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x34
- mov r3, #0
- bl MOD11_02243420
- str r0, [sp, #0x48]
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- mov r2, #0x34
- mov r3, #0
- bl MOD11_02243420
- str r0, [sp, #0x44]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- bl MOD11_02246D1C
- add r7, r0, #0
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- bl MOD11_02246D1C
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x1d
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x40]
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- mov r2, #0x1d
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x3c]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x38]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x34]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- bl MOD11_02249B4C
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #1
- bl MOD11_0224C12C
- str r0, [sp, #0x30]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #2
- bl MOD11_0224C12C
- str r0, [sp, #0x2c]
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- bl MOD11_02249B4C
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #1
- bl MOD11_0224C12C
- str r0, [sp, #0x28]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #2
- bl MOD11_0224C12C
- ldr r0, [sp, #4]
- bl MOD11_0222FF74
- str r0, [sp, #0x5c]
- add r0, sp, #0x90
- ldrh r4, [r0, #0x14]
- cmp r4, #0
- bne _0224B534
- ldr r0, [sp, #8]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _0224B754 ; =0x000003E1
- ldrb r4, [r1, r0]
-_0224B534:
- cmp r7, #0x60
- bne _0224B53C
- mov r6, #0
- b _0224B558
-_0224B53C:
- add r0, sp, #0x90
- ldrb r1, [r0, #0x18]
- cmp r1, #0
- bne _0224B550
- ldr r0, [sp, #8]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _0224B758 ; =0x000003E2
- ldrb r6, [r1, r0]
- b _0224B558
-_0224B550:
- mov r0, #0x3f
- and r0, r1
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
-_0224B558:
- ldr r0, _0224B75C ; =0x00002158
- ldr r0, [r5, r0]
- cmp r0, #0xa
- bge _0224B564
- bl ErrorHandling
-_0224B564:
- ldr r0, _0224B75C ; =0x00002158
- mov r1, #0xa
- ldr r0, [r5, r0]
- mul r0, r4
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- add r0, sp, #0x90
- ldrb r0, [r0, #0x1c]
- mov r1, #0xc0
- mul r1, r0
- add r2, r5, r1
- mov r1, #0xb7
- lsl r1, r1, #6
- ldr r2, [r2, r1]
- mov r1, #2
- lsl r1, r1, #8
- tst r1, r2
- beq _0224B594
- cmp r6, #0xd
- bne _0224B594
- lsl r1, r4, #0x11
- lsr r4, r1, #0x10
-_0224B594:
- lsl r0, r0, #6
- add r1, r5, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- beq _0224B5B2
- mov r0, #0xf
- mul r0, r4
- mov r1, #0xa
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B5B2:
- cmp r7, #0x65
- bne _0224B5CE
- ldr r0, [sp, #8]
- cmp r0, #0xa5
- beq _0224B5CE
- cmp r4, #0x3c
- bhi _0224B5CE
- mov r0, #0xf
- mul r0, r4
- mov r1, #0xa
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B5CE:
- ldr r0, [sp, #8]
- lsl r0, r0, #4
- str r0, [sp, #0x18]
- add r1, r5, r0
- mov r0, #0x3e
- lsl r0, r0, #4
- ldrb r0, [r1, r0]
- cmp r7, #0x25
- str r0, [sp, #0x80]
- beq _0224B5E6
- cmp r7, #0x4a
- bne _0224B5EE
-_0224B5E6:
- ldr r0, [sp, #0x7c]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x10
- str r0, [sp, #0x7c]
-_0224B5EE:
- cmp r7, #0x70
- bne _0224B61C
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #3
- mov r3, #0
- bl MOD11_0224C474
- str r0, [sp, #0x88]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x59
- mov r3, #0
- bl MOD11_02243420
- ldr r1, [sp, #0x88]
- sub r0, r1, r0
- cmp r0, #5
- bge _0224B61C
- ldr r0, [sp, #0x7c]
- lsl r0, r0, #0xf
- lsr r0, r0, #0x10
- str r0, [sp, #0x7c]
-_0224B61C:
- ldr r3, _0224B760 ; =0x0225E336
- mov r2, #0
-_0224B620:
- ldrb r1, [r3]
- ldr r0, [sp, #0x30]
- cmp r0, r1
- bne _0224B640
- ldrb r0, [r3, #1]
- cmp r6, r0
- bne _0224B640
- ldr r0, [sp, #0x2c]
- mov r1, #0x64
- add r0, #0x64
- mul r0, r4
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- b _0224B648
-_0224B640:
- add r2, r2, #1
- add r3, r3, #2
- cmp r2, #0x21
- blo _0224B620
-_0224B648:
- ldr r0, [sp, #0x30]
- cmp r0, #0x36
- bne _0224B660
- ldr r1, [sp, #0x7c]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x7c]
-_0224B660:
- ldr r0, [sp, #0x30]
- cmp r0, #0x7c
- bne _0224B678
- ldr r1, [sp, #0x74]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x74]
-_0224B678:
- ldr r0, [sp, #0x30]
- cmp r0, #0x3b
- bne _0224B6A6
- ldr r0, [sp, #0x5c]
- mov r1, #0x80
- tst r0, r1
- bne _0224B6A6
- ldr r1, _0224B764 ; =0x0000FE84
- ldr r0, [sp, #0x58]
- add r0, r0, r1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- cmp r0, #1
- bhi _0224B6A6
- ldr r1, [sp, #0x74]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x74]
-_0224B6A6:
- ldr r0, [sp, #0x28]
- cmp r0, #0x3b
- bne _0224B6D4
- ldr r0, [sp, #0x5c]
- mov r1, #0x80
- tst r0, r1
- bne _0224B6D4
- ldr r1, _0224B764 ; =0x0000FE84
- ldr r0, [sp, #0x54]
- add r0, r0, r1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- cmp r0, #1
- bhi _0224B6D4
- ldr r1, [sp, #0x10]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x10]
-_0224B6D4:
- ldr r0, [sp, #0x30]
- cmp r0, #0x3c
- bne _0224B6EA
- ldr r1, _0224B768 ; =0x0000016E
- ldr r0, [sp, #0x58]
- cmp r0, r1
- bne _0224B6EA
- ldr r0, [sp, #0x74]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x10
- str r0, [sp, #0x74]
-_0224B6EA:
- ldr r0, [sp, #0x28]
- cmp r0, #0x3d
- bne _0224B700
- ldr r1, _0224B768 ; =0x0000016E
- ldr r0, [sp, #0x54]
- cmp r0, r1
- bne _0224B700
- ldr r0, [sp, #0x10]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x10
- str r0, [sp, #0x10]
-_0224B700:
- ldr r0, [sp, #0x30]
- cmp r0, #0x46
- bne _0224B710
- ldr r0, [sp, #0x58]
- cmp r0, #0x19
- bne _0224B710
- lsl r0, r4, #0x11
- lsr r4, r0, #0x10
-_0224B710:
- ldr r0, [sp, #0x28]
- cmp r0, #0x59
- bne _0224B724
- ldr r0, [sp, #0x54]
- cmp r0, #0x84
- bne _0224B724
- ldr r0, [sp, #0x78]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x10
- str r0, [sp, #0x78]
-_0224B724:
- ldr r0, [sp, #0x30]
- cmp r0, #0x5a
- bne _0224B740
- ldr r1, _0224B76C ; =0x0000FF98
- ldr r0, [sp, #0x58]
- add r0, r0, r1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- cmp r0, #1
- bhi _0224B740
- ldr r0, [sp, #0x7c]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x10
- str r0, [sp, #0x7c]
-_0224B740:
- ldr r0, [sp, #0x30]
- cmp r0, #2
- bne _0224B78A
- cmp r6, #0x10
- beq _0224B74E
- cmp r6, #8
- bne _0224B78A
-_0224B74E:
- ldr r1, _0224B770 ; =0x000001E3
- b _0224B774
- nop
-_0224B754: .word 0x000003E1
-_0224B758: .word 0x000003E2
-_0224B75C: .word 0x00002158
-_0224B760: .word 0x0225E336
-_0224B764: .word 0x0000FE84
-_0224B768: .word 0x0000016E
-_0224B76C: .word 0x0000FF98
-_0224B770: .word 0x000001E3
-_0224B774:
- ldr r0, [sp, #0x58]
- cmp r0, r1
- bne _0224B78A
- ldr r0, [sp, #0x2c]
- mov r1, #0x64
- add r0, #0x64
- mul r0, r4
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B78A:
- ldr r0, [sp, #0x30]
- cmp r0, #3
- bne _0224B7B2
- cmp r6, #0x10
- beq _0224B798
- cmp r6, #0xb
- bne _0224B7B2
-_0224B798:
- mov r1, #0x79
- ldr r0, [sp, #0x58]
- lsl r1, r1, #2
- cmp r0, r1
- bne _0224B7B2
- ldr r0, [sp, #0x2c]
- mov r1, #0x64
- add r0, #0x64
- mul r0, r4
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B7B2:
- ldr r0, [sp, #0x30]
- cmp r0, #0x5d
- bne _0224B7CE
- ldr r0, [sp, #0x80]
- cmp r0, #0
- bne _0224B7CE
- ldr r0, [sp, #0x2c]
- mov r1, #0x64
- add r0, #0x64
- mul r0, r4
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B7CE:
- ldr r0, [sp, #0x30]
- cmp r0, #0x5e
- bne _0224B7EC
- ldr r0, [sp, #0x80]
- cmp r0, #1
- bne _0224B7EC
- ldr r0, [sp, #0x2c]
- mov r1, #0x64
- add r0, #0x64
- str r0, [sp, #0x2c]
- mul r0, r4
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B7EC:
- ldr r1, [sp, #0x24]
- ldr r2, [sp, #0x20]
- add r0, r5, #0
- mov r3, #0x2f
- bl MOD11_02246D84
- cmp r0, #1
- bne _0224B808
- cmp r6, #0xa
- beq _0224B804
- cmp r6, #0xf
- bne _0224B808
-_0224B804:
- lsl r0, r4, #0xf
- lsr r4, r0, #0x10
-_0224B808:
- cmp r7, #0x37
- bne _0224B81E
- ldr r1, [sp, #0x7c]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x7c]
-_0224B81E:
- cmp r7, #0x3e
- bne _0224B83A
- ldr r0, [sp, #0x48]
- cmp r0, #0
- beq _0224B83A
- ldr r1, [sp, #0x7c]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x7c]
-_0224B83A:
- ldr r1, [sp, #0x24]
- ldr r2, [sp, #0x20]
- add r0, r5, #0
- mov r3, #0x3f
- bl MOD11_02246D84
- cmp r0, #1
- bne _0224B862
- ldr r0, [sp, #0x44]
- cmp r0, #0
- beq _0224B862
- ldr r1, [sp, #0x78]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x78]
-_0224B862:
- cmp r7, #0x39
- bne _0224B88C
- mov r0, #0x3a
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r3, [sp, #0x24]
- add r1, r5, #0
- mov r2, #1
- bl MOD11_02246870
- cmp r0, #0
- beq _0224B88C
- ldr r1, [sp, #0x74]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x74]
-_0224B88C:
- cmp r7, #0x3a
- bne _0224B8B6
- mov r0, #0x39
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r3, [sp, #0x24]
- add r1, r5, #0
- mov r2, #1
- bl MOD11_02246870
- cmp r0, #0
- beq _0224B8B6
- ldr r1, [sp, #0x74]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x74]
-_0224B8B6:
- cmp r6, #0xd
- bne _0224B8CE
- mov r2, #1
- ldr r0, [sp, #4]
- add r1, r5, #0
- lsl r2, r2, #0x10
- bl MOD11_02247238
- cmp r0, #0
- beq _0224B8CE
- lsl r0, r4, #0xf
- lsr r4, r0, #0x10
-_0224B8CE:
- cmp r6, #0xa
- bne _0224B8E6
- mov r2, #2
- ldr r0, [sp, #4]
- add r1, r5, #0
- lsl r2, r2, #0x10
- bl MOD11_02247238
- cmp r0, #0
- beq _0224B8E6
- lsl r0, r4, #0xf
- lsr r4, r0, #0x10
-_0224B8E6:
- cmp r6, #0xc
- bne _0224B90A
- cmp r7, #0x41
- bne _0224B90A
- ldr r0, [sp, #0x4c]
- mov r1, #3
- bl _s32_div_f
- ldr r1, [sp, #0x50]
- cmp r1, r0
- bgt _0224B90A
- mov r0, #0x96
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B90A:
- cmp r6, #0xa
- bne _0224B92E
- cmp r7, #0x42
- bne _0224B92E
- ldr r0, [sp, #0x4c]
- mov r1, #3
- bl _s32_div_f
- ldr r1, [sp, #0x50]
- cmp r1, r0
- bgt _0224B92E
- mov r0, #0x96
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B92E:
- cmp r6, #0xb
- bne _0224B952
- cmp r7, #0x43
- bne _0224B952
- ldr r0, [sp, #0x4c]
- mov r1, #3
- bl _s32_div_f
- ldr r1, [sp, #0x50]
- cmp r1, r0
- bgt _0224B952
- mov r0, #0x96
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B952:
- cmp r6, #6
- bne _0224B976
- cmp r7, #0x44
- bne _0224B976
- ldr r0, [sp, #0x4c]
- mov r1, #3
- bl _s32_div_f
- ldr r1, [sp, #0x50]
- cmp r1, r0
- bgt _0224B976
- mov r0, #0x96
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B976:
- cmp r6, #0xa
- bne _0224B98E
- ldr r1, [sp, #0x24]
- ldr r2, [sp, #0x20]
- add r0, r5, #0
- mov r3, #0x55
- bl MOD11_02246D84
- cmp r0, #1
- bne _0224B98E
- lsl r0, r4, #0xf
- lsr r4, r0, #0x10
-_0224B98E:
- cmp r6, #0xa
- bne _0224B9B0
- ldr r1, [sp, #0x24]
- ldr r2, [sp, #0x20]
- add r0, r5, #0
- mov r3, #0x57
- bl MOD11_02246D84
- cmp r0, #1
- bne _0224B9B0
- mov r0, #0x7d
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B9B0:
- cmp r7, #0x56
- bne _0224B9F0
- ldr r0, [sp, #0x70]
- mov r1, #5
- lsl r0, r0, #0x19
- asr r0, r0, #0x18
- str r0, [sp, #0x70]
- ldr r0, [sp, #0x70]
- mvn r1, r1
- cmp r0, r1
- bge _0224B9C8
- str r1, [sp, #0x70]
-_0224B9C8:
- ldr r0, [sp, #0x70]
- cmp r0, #6
- ble _0224B9D2
- mov r0, #6
- str r0, [sp, #0x70]
-_0224B9D2:
- ldr r0, [sp, #0x68]
- mov r1, #5
- lsl r0, r0, #0x19
- asr r0, r0, #0x18
- str r0, [sp, #0x68]
- ldr r0, [sp, #0x68]
- mvn r1, r1
- cmp r0, r1
- bge _0224B9E6
- str r1, [sp, #0x68]
-_0224B9E6:
- ldr r0, [sp, #0x68]
- cmp r0, #6
- ble _0224B9F0
- mov r0, #6
- str r0, [sp, #0x68]
-_0224B9F0:
- ldr r1, [sp, #0x24]
- ldr r2, [sp, #0x20]
- add r0, r5, #0
- mov r3, #0x56
- bl MOD11_02246D84
- cmp r0, #1
- bne _0224BA3C
- ldr r0, [sp, #0x6c]
- mov r1, #5
- lsl r0, r0, #0x19
- asr r0, r0, #0x18
- str r0, [sp, #0x6c]
- ldr r0, [sp, #0x6c]
- mvn r1, r1
- cmp r0, r1
- bge _0224BA14
- str r1, [sp, #0x6c]
-_0224BA14:
- ldr r0, [sp, #0x6c]
- cmp r0, #6
- ble _0224BA1E
- mov r0, #6
- str r0, [sp, #0x6c]
-_0224BA1E:
- ldr r0, [sp, #0x64]
- mov r1, #5
- lsl r0, r0, #0x19
- asr r0, r0, #0x18
- str r0, [sp, #0x64]
- ldr r0, [sp, #0x64]
- mvn r1, r1
- cmp r0, r1
- bge _0224BA32
- str r1, [sp, #0x64]
-_0224BA32:
- ldr r0, [sp, #0x64]
- cmp r0, #6
- ble _0224BA3C
- mov r0, #6
- str r0, [sp, #0x64]
-_0224BA3C:
- ldr r1, [sp, #0x24]
- ldr r2, [sp, #0x20]
- add r0, r5, #0
- mov r3, #0x6d
- bl MOD11_02246D84
- cmp r0, #1
- bne _0224BA52
- mov r0, #0
- str r0, [sp, #0x70]
- str r0, [sp, #0x68]
-_0224BA52:
- cmp r7, #0x6d
- bne _0224BA5C
- mov r0, #0
- str r0, [sp, #0x6c]
- str r0, [sp, #0x64]
-_0224BA5C:
- ldr r0, [sp, #0x70]
- add r0, r0, #6
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #0x70]
- ldr r0, [sp, #0x6c]
- add r0, r0, #6
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #0x6c]
- ldr r0, [sp, #0x68]
- add r0, r0, #6
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #0x68]
- ldr r0, [sp, #0x64]
- add r0, r0, #6
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #0x64]
- cmp r7, #0x4f
- bne _0224BAAA
- ldr r1, [sp, #0x40]
- ldr r0, [sp, #0x3c]
- cmp r1, r0
- bne _0224BAAA
- add r0, r1, #0
- cmp r0, #2
- beq _0224BAAA
- ldr r0, [sp, #0x3c]
- cmp r0, #2
- beq _0224BAAA
- mov r0, #0x7d
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224BAAA:
- cmp r7, #0x4f
- bne _0224BAD0
- ldr r1, [sp, #0x40]
- ldr r0, [sp, #0x3c]
- cmp r1, r0
- beq _0224BAD0
- add r0, r1, #0
- cmp r0, #2
- beq _0224BAD0
- ldr r0, [sp, #0x3c]
- cmp r0, #2
- beq _0224BAD0
- mov r0, #0x4b
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224BAD0:
- ldr r2, _0224BDDC ; =0x0225E2BA
- mov r3, #0
-_0224BAD4:
- ldrh r1, [r2]
- ldr r0, [sp, #8]
- cmp r0, r1
- bne _0224BAF0
- cmp r7, #0x59
- bne _0224BAF0
- mov r0, #0xc
- mul r0, r4
- mov r1, #0xa
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- b _0224BAF8
-_0224BAF0:
- add r3, r3, #1
- add r2, r2, #2
- cmp r3, #0xf
- blo _0224BAD4
-_0224BAF8:
- mov r0, #0xd
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224BBCA
- mov r0, #0x4c
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224BBCA
- ldr r0, [sp, #0xa0]
- mov r1, #0x30
- and r0, r1
- str r0, [sp, #0x1c]
- beq _0224BB40
- cmp r7, #0x5e
- bne _0224BB40
- ldr r1, [sp, #0x74]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x74]
-_0224BB40:
- ldr r0, [sp, #0xa0]
- mov r1, #0xc
- tst r0, r1
- beq _0224BB66
- ldr r0, [sp, #0x38]
- cmp r0, #5
- beq _0224BB54
- ldr r0, [sp, #0x34]
- cmp r0, #5
- bne _0224BB66
-_0224BB54:
- ldr r1, [sp, #0x10]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x10]
-_0224BB66:
- ldr r0, [sp, #0x1c]
- cmp r0, #0
- beq _0224BB92
- mov r0, #0x7a
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r3, [sp, #0x24]
- add r1, r5, #0
- mov r2, #1
- bl MOD11_02246870
- cmp r0, #0
- beq _0224BB92
- ldr r1, [sp, #0x7c]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x7c]
-_0224BB92:
- ldr r0, [sp, #0x1c]
- cmp r0, #0
- beq _0224BBCA
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x68
- beq _0224BBCA
- mov r0, #0x7a
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r3, [sp, #0x20]
- add r1, r5, #0
- mov r2, #1
- bl MOD11_02246870
- cmp r0, #0
- beq _0224BBCA
- ldr r1, [sp, #0x10]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x10]
-_0224BBCA:
- ldr r0, [sp, #0x18]
- add r1, r5, r0
- ldr r0, _0224BDE0 ; =0x000003DE
- ldrh r0, [r1, r0]
- str r0, [sp, #0x14]
- cmp r0, #7
- bne _0224BBE0
- ldr r0, [sp, #0x78]
- lsl r0, r0, #0xf
- lsr r0, r0, #0x10
- str r0, [sp, #0x78]
-_0224BBE0:
- ldr r0, [sp, #0x80]
- cmp r0, #0
- bne _0224BCE2
- ldr r0, [sp, #0xb4]
- cmp r0, #1
- bls _0224BC0E
- ldr r0, [sp, #0x70]
- cmp r0, #6
- ble _0224BC08
- lsl r1, r0, #1
- ldr r0, _0224BDE4 ; =0x0225E284
- ldr r2, [sp, #0x7c]
- ldrb r0, [r0, r1]
- mul r0, r2
- ldr r2, _0224BDE8 ; =0x0225E285
- ldrb r1, [r2, r1]
- bl _s32_div_f
- str r0, [sp, #0x84]
- b _0224BC24
-_0224BC08:
- ldr r0, [sp, #0x7c]
- str r0, [sp, #0x84]
- b _0224BC24
-_0224BC0E:
- ldr r0, [sp, #0x70]
- ldr r2, [sp, #0x7c]
- lsl r1, r0, #1
- ldr r0, _0224BDE4 ; =0x0225E284
- ldrb r0, [r0, r1]
- mul r0, r2
- ldr r2, _0224BDE8 ; =0x0225E285
- ldrb r1, [r2, r1]
- bl _s32_div_f
- str r0, [sp, #0x84]
-_0224BC24:
- ldr r0, [sp, #0x84]
- add r1, r0, #0
- ldr r0, [sp, #0x60]
- mul r1, r4
- str r1, [sp, #0x84]
- lsl r0, r0, #1
- mov r1, #5
- bl _s32_div_f
- add r1, r0, #2
- ldr r0, [sp, #0x84]
- mul r1, r0
- ldr r0, [sp, #0xb4]
- str r1, [sp, #0x84]
- cmp r0, #1
- bls _0224BC60
- ldr r0, [sp, #0x6c]
- cmp r0, #6
- bge _0224BC76
- lsl r1, r0, #1
- ldr r0, _0224BDE4 ; =0x0225E284
- ldr r2, [sp, #0x78]
- ldrb r0, [r0, r1]
- mul r0, r2
- ldr r2, _0224BDE8 ; =0x0225E285
- ldrb r1, [r2, r1]
- bl _s32_div_f
- str r0, [sp, #0x78]
- b _0224BC76
-_0224BC60:
- ldr r0, [sp, #0x6c]
- ldr r2, [sp, #0x78]
- lsl r1, r0, #1
- ldr r0, _0224BDE4 ; =0x0225E284
- ldrb r0, [r0, r1]
- mul r0, r2
- ldr r2, _0224BDE8 ; =0x0225E285
- ldrb r1, [r2, r1]
- bl _s32_div_f
- str r0, [sp, #0x78]
-_0224BC76:
- ldr r0, [sp, #0x84]
- ldr r1, [sp, #0x78]
- bl _s32_div_f
- mov r1, #0x32
- bl _s32_div_f
- str r0, [sp, #0x84]
- ldr r0, [sp, #0x48]
- mov r1, #0x10
- tst r0, r1
- beq _0224BC9C
- cmp r7, #0x3e
- beq _0224BC9C
- ldr r0, [sp, #0x84]
- lsr r1, r0, #0x1f
- add r1, r0, r1
- asr r0, r1, #1
- str r0, [sp, #0x84]
-_0224BC9C:
- ldr r0, [sp, #0xc]
- mov r2, #1
- tst r0, r2
- beq _0224BCB0
- ldr r0, [sp, #0xb4]
- cmp r0, #1
- bne _0224BCB0
- ldr r0, [sp, #0x14]
- cmp r0, #0xba
- bne _0224BCB2
-_0224BCB0:
- b _0224BDC8
-_0224BCB2:
- ldr r0, [sp, #0x5c]
- mov r1, #2
- tst r0, r1
- beq _0224BCD6
- ldr r0, [sp, #4]
- ldr r3, [sp, #0x20]
- add r1, r5, #0
- bl MOD11_022467AC
- cmp r0, #2
- bne _0224BCD6
- ldr r0, [sp, #0x84]
- mov r1, #3
- lsl r0, r0, #1
- bl _s32_div_f
- str r0, [sp, #0x84]
- b _0224BDC8
-_0224BCD6:
- ldr r0, [sp, #0x84]
- lsr r1, r0, #0x1f
- add r1, r0, r1
- asr r0, r1, #1
- str r0, [sp, #0x84]
- b _0224BDC8
-_0224BCE2:
- cmp r0, #1
- bne _0224BDC8
- ldr r0, [sp, #0xb4]
- cmp r0, #1
- bls _0224BD0E
- ldr r0, [sp, #0x68]
- cmp r0, #6
- ble _0224BD08
- lsl r1, r0, #1
- ldr r0, _0224BDE4 ; =0x0225E284
- ldr r2, [sp, #0x74]
- ldrb r0, [r0, r1]
- mul r0, r2
- ldr r2, _0224BDE8 ; =0x0225E285
- ldrb r1, [r2, r1]
- bl _s32_div_f
- str r0, [sp, #0x84]
- b _0224BD24
-_0224BD08:
- ldr r0, [sp, #0x74]
- str r0, [sp, #0x84]
- b _0224BD24
-_0224BD0E:
- ldr r0, [sp, #0x68]
- ldr r2, [sp, #0x74]
- lsl r1, r0, #1
- ldr r0, _0224BDE4 ; =0x0225E284
- ldrb r0, [r0, r1]
- mul r0, r2
- ldr r2, _0224BDE8 ; =0x0225E285
- ldrb r1, [r2, r1]
- bl _s32_div_f
- str r0, [sp, #0x84]
-_0224BD24:
- ldr r0, [sp, #0x84]
- add r1, r0, #0
- ldr r0, [sp, #0x60]
- mul r1, r4
- str r1, [sp, #0x84]
- lsl r0, r0, #1
- mov r1, #5
- bl _s32_div_f
- add r1, r0, #2
- ldr r0, [sp, #0x84]
- mul r1, r0
- ldr r0, [sp, #0xb4]
- str r1, [sp, #0x84]
- cmp r0, #1
- bls _0224BD60
- ldr r0, [sp, #0x64]
- cmp r0, #6
- bge _0224BD76
- lsl r1, r0, #1
- ldr r0, _0224BDE4 ; =0x0225E284
- ldr r2, [sp, #0x10]
- ldrb r0, [r0, r1]
- mul r0, r2
- ldr r2, _0224BDE8 ; =0x0225E285
- ldrb r1, [r2, r1]
- bl _s32_div_f
- str r0, [sp, #0x10]
- b _0224BD76
-_0224BD60:
- ldr r0, [sp, #0x64]
- ldr r2, [sp, #0x10]
- lsl r1, r0, #1
- ldr r0, _0224BDE4 ; =0x0225E284
- ldrb r0, [r0, r1]
- mul r0, r2
- ldr r2, _0224BDE8 ; =0x0225E285
- ldrb r1, [r2, r1]
- bl _s32_div_f
- str r0, [sp, #0x10]
-_0224BD76:
- ldr r0, [sp, #0x84]
- ldr r1, [sp, #0x10]
- bl _s32_div_f
- mov r1, #0x32
- bl _s32_div_f
- str r0, [sp, #0x84]
- ldr r0, [sp, #0xc]
- mov r1, #2
- tst r0, r1
- beq _0224BDC8
- ldr r0, [sp, #0xb4]
- cmp r0, #1
- bne _0224BDC8
- ldr r0, [sp, #0x14]
- cmp r0, #0xba
- beq _0224BDC8
- ldr r0, [sp, #0x5c]
- tst r0, r1
- beq _0224BDBE
- ldr r0, [sp, #4]
- ldr r3, [sp, #0x20]
- add r1, r5, #0
- mov r2, #1
- bl MOD11_022467AC
- cmp r0, #2
- bne _0224BDBE
- ldr r0, [sp, #0x84]
- mov r1, #3
- lsl r0, r0, #1
- bl _s32_div_f
- str r0, [sp, #0x84]
- b _0224BDC8
-_0224BDBE:
- ldr r0, [sp, #0x84]
- lsr r1, r0, #0x1f
- add r1, r0, r1
- asr r0, r1, #1
- str r0, [sp, #0x84]
-_0224BDC8:
- ldr r0, [sp, #0x5c]
- mov r1, #2
- add r4, r0, #0
- and r4, r1
- beq _0224BE16
- ldr r0, [sp, #0x18]
- add r1, r5, r0
- ldr r0, _0224BDEC ; =0x000003E6
- b _0224BDF0
- nop
-_0224BDDC: .word 0x0225E2BA
-_0224BDE0: .word 0x000003DE
-_0224BDE4: .word 0x0225E284
-_0224BDE8: .word 0x0225E285
-_0224BDEC: .word 0x000003E6
-_0224BDF0:
- ldrh r0, [r1, r0]
- cmp r0, #4
- bne _0224BE16
- ldr r0, [sp, #4]
- ldr r3, [sp, #0x20]
- add r1, r5, #0
- mov r2, #1
- bl MOD11_022467AC
- cmp r0, #2
- bne _0224BE16
- ldr r0, [sp, #0x84]
- lsl r1, r0, #1
- add r1, r0, r1
- asr r0, r1, #1
- lsr r0, r0, #0x1e
- add r0, r1, r0
- asr r0, r0, #2
- str r0, [sp, #0x84]
-_0224BE16:
- cmp r4, #0
- beq _0224BE46
- ldr r0, [sp, #0x18]
- add r1, r5, r0
- ldr r0, _0224BF08 ; =0x000003E6
- ldrh r0, [r1, r0]
- cmp r0, #8
- bne _0224BE46
- ldr r0, [sp, #4]
- ldr r3, [sp, #0x20]
- add r1, r5, #0
- mov r2, #0
- bl MOD11_022467AC
- cmp r0, #2
- blo _0224BE46
- ldr r0, [sp, #0x84]
- lsl r1, r0, #1
- add r1, r0, r1
- asr r0, r1, #1
- lsr r0, r0, #0x1e
- add r0, r1, r0
- asr r0, r0, #2
- str r0, [sp, #0x84]
-_0224BE46:
- mov r0, #0xd
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224BEDE
- mov r0, #0x4c
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224BEDE
- ldr r0, [sp, #0xa0]
- mov r1, #3
- tst r0, r1
- beq _0224BE9A
- cmp r6, #0xa
- beq _0224BE80
- cmp r6, #0xb
- beq _0224BE8C
- b _0224BE9A
-_0224BE80:
- ldr r0, [sp, #0x84]
- lsr r1, r0, #0x1f
- add r1, r0, r1
- asr r0, r1, #1
- str r0, [sp, #0x84]
- b _0224BE9A
-_0224BE8C:
- ldr r1, [sp, #0x84]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- str r0, [sp, #0x84]
-_0224BE9A:
- ldr r1, _0224BF0C ; =0x000080CF
- ldr r0, [sp, #0xa0]
- tst r0, r1
- beq _0224BEB2
- ldr r0, [sp, #8]
- cmp r0, #0x4c
- bne _0224BEB2
- ldr r0, [sp, #0x84]
- lsr r1, r0, #0x1f
- add r1, r0, r1
- asr r0, r1, #1
- str r0, [sp, #0x84]
-_0224BEB2:
- ldr r0, [sp, #0xa0]
- mov r1, #0x30
- tst r0, r1
- beq _0224BEDE
- cmp r6, #0xa
- beq _0224BEC4
- cmp r6, #0xb
- beq _0224BED4
- b _0224BEDE
-_0224BEC4:
- ldr r1, [sp, #0x84]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- str r0, [sp, #0x84]
- b _0224BEDE
-_0224BED4:
- ldr r0, [sp, #0x84]
- lsr r1, r0, #0x1f
- add r1, r0, r1
- asr r0, r1, #1
- str r0, [sp, #0x84]
-_0224BEDE:
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x49
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #0
- beq _0224BF00
- cmp r6, #0xa
- bne _0224BF00
- ldr r1, [sp, #0x84]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- str r0, [sp, #0x84]
-_0224BF00:
- ldr r0, [sp, #0x84]
- add r0, r0, #2
- add sp, #0x8c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0224BF08: .word 0x000003E6
-_0224BF0C: .word 0x000080CF
-
- thumb_func_start MOD11_0224BF10
-MOD11_0224BF10: ; 0x0224BF10
- push {r4, lr}
- add r4, r1, #0
- beq _0224BF36
- bl rand_LC
- lsr r2, r0, #0x1f
- lsl r1, r0, #0x1c
- sub r1, r1, r2
- mov r0, #0x1c
- ror r1, r0
- add r0, r2, r1
- mov r1, #0x64
- sub r0, r1, r0
- mul r0, r4
- bl _s32_div_f
- add r4, r0, #0
- bne _0224BF36
- mov r4, #1
-_0224BF36:
- add r0, r4, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224BF3C
-MOD11_0224BF3C: ; 0x0224BF3C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r4, r0, #0
- mov r7, #1
- str r1, [sp]
- str r2, [sp, #4]
- str r3, [sp, #8]
- bl MOD11_02249B4C
- add r1, r0, #0
- add r0, r4, #0
- add r2, r7, #0
- bl MOD11_0224C12C
- add r3, r0, #0
- ldr r1, [sp]
- mov r0, #0xc0
- mul r0, r1
- mov r1, #0xb5
- lsl r1, r1, #6
- add r2, r4, r0
- add r0, r1, #0
- add r0, #0x70
- ldr r0, [r2, r0]
- ldr r6, [sp, #4]
- str r0, [sp, #0x10]
- mov r0, #0xc0
- mul r0, r6
- add r6, r4, r0
- add r0, r1, #0
- add r0, #0x80
- ldr r0, [r6, r0]
- ldrh r5, [r2, r1]
- add r1, #0x27
- str r0, [sp, #0xc]
- ldrb r0, [r2, r1]
- cmp r0, #0x69
- bne _0224BF8C
- add r2, r7, #0
- b _0224BF8E
-_0224BF8C:
- mov r2, #0
-_0224BF8E:
- cmp r3, #0x42
- bne _0224BF96
- mov r6, #1
- b _0224BF98
-_0224BF96:
- mov r6, #0
-_0224BF98:
- mov r1, #1
- ldr r0, [sp, #0x10]
- lsl r1, r1, #0x14
- tst r0, r1
- beq _0224BFA6
- mov r0, #1
- b _0224BFA8
-_0224BFA6:
- mov r0, #0
-_0224BFA8:
- cmp r3, #0x58
- bne _0224BFB4
- cmp r5, #0x71
- bne _0224BFB4
- mov r1, #1
- b _0224BFB6
-_0224BFB4:
- mov r1, #0
-_0224BFB6:
- cmp r3, #0x5b
- bne _0224BFC2
- cmp r5, #0x53
- bne _0224BFC2
- mov r3, #1
- b _0224BFC4
-_0224BFC2:
- mov r3, #0
-_0224BFC4:
- lsl r0, r0, #1
- add r5, r6, r0
- ldr r0, [sp, #8]
- add r0, r0, r5
- add r2, r2, r0
- lsl r0, r1, #1
- add r1, r2, r0
- lsl r0, r3, #1
- add r0, r1, r0
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- cmp r5, #4
- bls _0224BFE0
- mov r5, #4
-_0224BFE0:
- bl rand_LC
- ldr r1, _0224C040 ; =0x0225E244
- ldrb r1, [r1, r5]
- bl _s32_div_f
- cmp r1, #0
- bne _0224C026
- ldr r1, [sp]
- ldr r2, [sp, #4]
- add r0, r4, #0
- mov r3, #4
- bl MOD11_02246D84
- cmp r0, #0
- bne _0224C026
- ldr r1, [sp]
- ldr r2, [sp, #4]
- add r0, r4, #0
- mov r3, #0x4b
- bl MOD11_02246D84
- cmp r0, #0
- bne _0224C026
- mov r0, #7
- ldr r1, [sp, #0x28]
- lsl r0, r0, #0xc
- tst r0, r1
- bne _0224C026
- mov r1, #2
- ldr r0, [sp, #0xc]
- lsl r1, r1, #0xe
- tst r0, r1
- bne _0224C026
- mov r7, #2
-_0224C026:
- cmp r7, #2
- bne _0224C038
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x61
- bne _0224C038
- mov r7, #3
-_0224C038:
- add r0, r7, #0
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_0224C040: .word 0x0225E244
-
- thumb_func_start MOD11_0224C044
-MOD11_0224C044: ; 0x0224C044
- push {r3, r4}
- ldr r4, _0224C074 ; =0x0225E300
- ldr r1, _0224C078 ; =0x0000FFFE
- mov r3, #0
-_0224C04C:
- ldrh r2, [r4]
- cmp r0, r2
- beq _0224C05C
- add r4, r4, #2
- ldrh r2, [r4]
- add r3, r3, #1
- cmp r2, r1
- bne _0224C04C
-_0224C05C:
- ldr r0, _0224C074 ; =0x0225E300
- lsl r1, r3, #1
- ldrh r1, [r0, r1]
- ldr r0, _0224C078 ; =0x0000FFFE
- cmp r1, r0
- bne _0224C06E
- mov r0, #1
- pop {r3, r4}
- bx lr
-_0224C06E:
- mov r0, #0
- pop {r3, r4}
- bx lr
- .align 2, 0
-_0224C074: .word 0x0225E300
-_0224C078: .word 0x0000FFFE
-
- thumb_func_start MOD11_0224C07C
-MOD11_0224C07C: ; 0x0224C07C
- push {r3, r4}
- ldr r4, _0224C0AC ; =0x0225E300
- ldr r1, _0224C0B0 ; =0x0000FFFF
- mov r3, #0
-_0224C084:
- ldrh r2, [r4]
- cmp r0, r2
- beq _0224C094
- add r4, r4, #2
- ldrh r2, [r4]
- add r3, r3, #1
- cmp r2, r1
- bne _0224C084
-_0224C094:
- ldr r0, _0224C0AC ; =0x0225E300
- lsl r1, r3, #1
- ldrh r1, [r0, r1]
- ldr r0, _0224C0B0 ; =0x0000FFFF
- cmp r1, r0
- bne _0224C0A6
- mov r0, #1
- pop {r3, r4}
- bx lr
-_0224C0A6:
- mov r0, #0
- pop {r3, r4}
- bx lr
- .align 2, 0
-_0224C0AC: .word 0x0225E300
-_0224C0B0: .word 0x0000FFFF
-
- thumb_func_start MOD11_0224C0B4
-MOD11_0224C0B4: ; 0x0224C0B4
- push {r4, r5}
- lsl r1, r1, #4
- add r4, r0, r1
- ldr r1, _0224C0E8 ; =0x000003DE
- ldr r3, _0224C0EC ; =0x0225E254
- ldrh r1, [r4, r1]
- ldr r4, _0224C0E8 ; =0x000003DE
- mov r2, #0
-_0224C0C4:
- ldrh r5, [r3]
- lsl r5, r5, #4
- add r5, r0, r5
- ldrh r5, [r5, r4]
- cmp r1, r5
- beq _0224C0D8
- add r2, r2, #1
- add r3, r3, #2
- cmp r2, #6
- blo _0224C0C4
-_0224C0D8:
- cmp r2, #6
- bne _0224C0E2
- mov r0, #1
- pop {r4, r5}
- bx lr
-_0224C0E2:
- mov r0, #0
- pop {r4, r5}
- bx lr
- .align 2, 0
-_0224C0E8: .word 0x000003DE
-_0224C0EC: .word 0x0225E254
-
- thumb_func_start MOD11_0224C0F0
-MOD11_0224C0F0: ; 0x0224C0F0
- push {r4, r5}
- lsl r1, r1, #4
- add r4, r0, r1
- ldr r1, _0224C124 ; =0x000003DE
- ldr r3, _0224C128 ; =0x0225E26C
- ldrh r1, [r4, r1]
- ldr r4, _0224C124 ; =0x000003DE
- mov r2, #0
-_0224C100:
- ldrh r5, [r3]
- lsl r5, r5, #4
- add r5, r0, r5
- ldrh r5, [r5, r4]
- cmp r1, r5
- beq _0224C114
- add r2, r2, #1
- add r3, r3, #2
- cmp r2, #6
- blo _0224C100
-_0224C114:
- cmp r2, #6
- bne _0224C11E
- mov r0, #1
- pop {r4, r5}
- bx lr
-_0224C11E:
- mov r0, #0
- pop {r4, r5}
- bx lr
- .align 2, 0
-_0224C124: .word 0x000003DE
-_0224C128: .word 0x0225E26C
-
- thumb_func_start MOD11_0224C12C
-MOD11_0224C12C: ; 0x0224C12C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r0, r1, #0
- mov r1, #0
- add r4, r2, #0
- bl FUN_0206E640
- add r1, r0, #0
- ldr r0, _0224C14C ; =0x00002120
- ldr r0, [r5, r0]
- bl FUN_0206EB78
- add r1, r4, #0
- bl FUN_0206E7DC
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0224C14C: .word 0x00002120
-
- thumb_func_start MOD11_0224C150
-MOD11_0224C150: ; 0x0224C150
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r5, r2, #0
- bl MOD11_0222FF84
- add r6, r0, #0
- mov r4, #0
- cmp r6, #0
- ble _0224C174
-_0224C162:
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02230270
- cmp r5, r0
- beq _0224C174
- add r4, r4, #1
- cmp r4, r6
- blt _0224C162
-_0224C174:
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0224C178
-MOD11_0224C178: ; 0x0224C178
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- str r0, [sp, #4]
- add r5, r1, #0
- bl MOD11_0222FF84
- str r0, [sp, #0x10]
- mov r0, #0
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x10]
- sub r0, r0, #1
- str r0, [sp, #0x18]
- cmp r0, #0
- ble _0224C1FE
-_0224C194:
- ldr r0, [sp, #0x14]
- add r7, r0, #1
- ldr r0, [sp, #0x10]
- cmp r7, r0
- bge _0224C1F2
- ldr r0, [sp, #0x14]
- add r0, r5, r0
- str r0, [sp, #0xc]
-_0224C1A4:
- ldr r1, [sp, #0xc]
- ldr r0, _0224C204 ; =0x000021E8
- ldrb r6, [r1, r0]
- add r1, r5, r7
- ldrb r4, [r1, r0]
- lsl r0, r6, #4
- str r1, [sp, #8]
- add r1, r5, r0
- ldr r0, _0224C208 ; =0x000021B4
- ldr r0, [r1, r0]
- lsl r1, r4, #4
- add r2, r5, r1
- ldr r1, _0224C208 ; =0x000021B4
- ldr r1, [r2, r1]
- cmp r0, r1
- bne _0224C1EA
- cmp r0, #1
- beq _0224C1CC
- mov r0, #1
- b _0224C1CE
-_0224C1CC:
- mov r0, #0
-_0224C1CE:
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r6, #0
- add r3, r4, #0
- bl MOD11_02244248
- cmp r0, #0
- beq _0224C1EA
- ldr r1, [sp, #0xc]
- ldr r0, _0224C204 ; =0x000021E8
- strb r4, [r1, r0]
- ldr r1, [sp, #8]
- strb r6, [r1, r0]
-_0224C1EA:
- ldr r0, [sp, #0x10]
- add r7, r7, #1
- cmp r7, r0
- blt _0224C1A4
-_0224C1F2:
- ldr r0, [sp, #0x14]
- add r1, r0, #1
- ldr r0, [sp, #0x18]
- str r1, [sp, #0x14]
- cmp r1, r0
- blt _0224C194
-_0224C1FE:
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- nop
-_0224C204: .word 0x000021E8
-_0224C208: .word 0x000021B4
-
- thumb_func_start MOD11_0224C20C
-MOD11_0224C20C: ; 0x0224C20C
- push {r4, r5}
- mov r4, #0xc0
- mul r4, r1
- add r5, r0, r4
- ldr r0, _0224C24C ; =0x00002DB0
- mov r1, #1
- ldr r4, [r5, r0]
- lsl r1, r1, #0x18
- mov r3, #0
- tst r1, r4
- bne _0224C22C
- add r0, #0x10
- ldr r1, [r5, r0]
- ldr r0, _0224C250 ; =0x200400C0
- tst r0, r1
- beq _0224C244
-_0224C22C:
- ldr r4, _0224C254 ; =0x0225E2D8
- mov r1, #0
-_0224C230:
- ldr r0, [r4]
- cmp r2, r0
- bne _0224C23A
- mov r3, #1
- b _0224C246
-_0224C23A:
- add r1, r1, #1
- add r4, r4, #4
- cmp r1, #0xa
- blo _0224C230
- b _0224C246
-_0224C244:
- mov r3, #1
-_0224C246:
- add r0, r3, #0
- pop {r4, r5}
- bx lr
- .align 2, 0
-_0224C24C: .word 0x00002DB0
-_0224C250: .word 0x200400C0
-_0224C254: .word 0x0225E2D8
-
- thumb_func_start MOD11_0224C258
-MOD11_0224C258: ; 0x0224C258
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r1, #0
- ldr r1, [r5, #0x64]
- str r0, [sp]
- add r0, r5, #0
- add r4, r2, #0
- mov r6, #0
- bl MOD11_02249D90
- str r0, [sp, #0xc]
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- add r2, r6, #0
- bl MOD11_02249DA4
- str r0, [sp, #0x10]
- ldr r1, [r5, #0x6c]
- add r0, r5, #0
- bl MOD11_02249D90
- add r7, r0, #0
- ldr r1, [r5, #0x6c]
- add r0, r5, #0
- add r2, r6, #0
- bl MOD11_02249DA4
- str r0, [sp, #8]
- ldr r0, [sp]
- ldr r1, [r5, #0x64]
- bl MOD11_02230270
- str r0, [sp, #4]
- ldr r0, [sp, #0xc]
- cmp r0, #0x57
- bne _0224C2F4
- ldr r0, _0224C41C ; =0x0000213C
- ldr r1, [r5, r0]
- mov r0, #2
- lsl r0, r0, #0xc
- tst r0, r1
- beq _0224C2F4
- ldr r0, [r5, #0x64]
- mov r1, #0x1c
- mul r1, r0
- add r2, r5, r1
- mov r1, #0xbb
- lsl r1, r1, #2
- ldr r2, [r2, r1]
- cmp r2, #0
- beq _0224C2F4
- ldr r1, [r5, #0x6c]
- cmp r0, r1
- beq _0224C2F4
- mov r1, #0xc0
- mul r1, r0
- ldr r3, _0224C420 ; =0x00002D8C
- add r1, r5, r1
- ldr r0, [r1, r3]
- add r3, r3, #4
- ldr r1, [r1, r3]
- cmp r0, r1
- bhs _0224C2F4
- cmp r0, #0
- beq _0224C2F4
- ldr r1, [sp, #0x10]
- neg r0, r2
- bl MOD11_022476C0
- ldr r1, _0224C424 ; =0x0000215C
- mov r6, #1
- str r0, [r5, r1]
- mov r0, #0x46
- ldr r1, [r5, #0x64]
- lsl r0, r0, #2
- str r1, [r5, r0]
- mov r0, #0xd5
- str r0, [r4]
-_0224C2F4:
- ldr r0, [sp, #0xc]
- cmp r0, #0x61
- bne _0224C356
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _0224C356
- ldr r0, _0224C41C ; =0x0000213C
- ldr r1, [r5, r0]
- mov r0, #2
- lsl r0, r0, #0xc
- tst r0, r1
- beq _0224C356
- ldr r0, _0224C428 ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- mov r0, #0x3e
- lsl r0, r0, #4
- ldrb r0, [r1, r0]
- cmp r0, #2
- beq _0224C356
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r3, _0224C420 ; =0x00002D8C
- add r2, r5, r2
- ldr r1, [r2, r3]
- cmp r1, #0
- beq _0224C356
- add r1, r3, #4
- ldr r1, [r2, r1]
- sub r0, #0xc1
- mul r0, r1
- mov r1, #0xa
- bl MOD11_022476C0
- ldr r1, _0224C424 ; =0x0000215C
- mov r6, #1
- str r0, [r5, r1]
- mov r0, #0x46
- ldr r1, [r5, #0x64]
- lsl r0, r0, #2
- str r1, [r5, r0]
- mov r0, #0xd6
- str r0, [r4]
-_0224C356:
- cmp r7, #0x2d
- bne _0224C3AA
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _0224C420 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _0224C3AA
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _0224C3AA
- ldr r1, [r5, #0x6c]
- mov r0, #0x1c
- mul r0, r1
- add r1, r5, r0
- mov r0, #0xb6
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0224C3AA
- ldr r0, [r5, #0x64]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _0224C42C ; =0x00002D90
- add r2, r5, r2
- ldr r2, [r2, r0]
- sub r1, #0xc1
- add r0, r2, #0
- mul r0, r1
- ldr r1, [sp, #8]
- bl MOD11_022476C0
- ldr r1, _0224C424 ; =0x0000215C
- mov r6, #1
- str r0, [r5, r1]
- lsr r0, r1, #5
- str r0, [r4]
-_0224C3AA:
- cmp r7, #0x73
- bne _0224C416
- ldr r0, [r5, #0x64]
- mov r1, #0xc0
- mul r1, r0
- add r3, r5, r1
- ldr r1, _0224C420 ; =0x00002D8C
- ldr r2, [r3, r1]
- cmp r2, #0
- beq _0224C416
- add r1, #0x2c
- ldrh r1, [r3, r1]
- cmp r1, #0
- bne _0224C416
- add r1, r5, r0
- ldr r0, _0224C430 ; =0x0000219C
- ldrb r0, [r1, r0]
- bl MaskOfFlagNo
- ldr r1, [sp, #4]
- lsl r1, r1, #3
- add r2, r5, r1
- mov r1, #0x71
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- lsl r1, r1, #3
- lsr r1, r1, #0x1a
- tst r0, r1
- bne _0224C416
- ldr r1, [r5, #0x6c]
- mov r0, #0x1c
- mul r0, r1
- add r2, r5, r0
- mov r0, #0xb6
- lsl r0, r0, #2
- ldr r1, [r2, r0]
- cmp r1, #0
- bne _0224C3FE
- add r0, #8
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _0224C416
-_0224C3FE:
- ldr r0, _0224C428 ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _0224C434 ; =0x000003E9
- ldrb r1, [r1, r0]
- mov r0, #1
- tst r1, r0
- beq _0224C416
- mov r1, #0xd8
- str r1, [r4]
- add r6, r0, #0
-_0224C416:
- add r0, r6, #0
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0224C41C: .word 0x0000213C
-_0224C420: .word 0x00002D8C
-_0224C424: .word 0x0000215C
-_0224C428: .word 0x00003044
-_0224C42C: .word 0x00002D90
-_0224C430: .word 0x0000219C
-_0224C434: .word 0x000003E9
-
- thumb_func_start MOD11_0224C438
-MOD11_0224C438: ; 0x0224C438
- push {r4, r5, r6, lr}
- add r6, r2, #0
- add r4, r1, #0
- add r1, r6, #0
- add r5, r0, #0
- bl MOD11_02246D1C
- cmp r0, #0x2e
- bne _0224C46A
- cmp r6, #0xff
- beq _0224C46A
- ldr r0, _0224C46C ; =0x00002D6C
- add r1, r5, r0
- mov r0, #0xc0
- mul r0, r4
- add r0, r1, r0
- lsl r1, r4, #1
- add r2, r5, r1
- ldr r1, _0224C470 ; =0x000030BC
- ldrh r2, [r2, r1]
- ldrb r1, [r0, r2]
- cmp r1, #0
- beq _0224C46A
- sub r1, r1, #1
- strb r1, [r0, r2]
-_0224C46A:
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0224C46C: .word 0x00002D6C
-_0224C470: .word 0x000030BC
-
- thumb_func_start MOD11_0224C474
-MOD11_0224C474: ; 0x0224C474
- push {r4, lr}
- add r4, r1, #0
- cmp r2, #0xc
- bhi _0224C528
- add r1, r2, r2
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0224C488: ; jump table
- .short _0224C4A2 - _0224C488 - 2 ; case 0
- .short _0224C4B4 - _0224C488 - 2 ; case 1
- .short _0224C4CA - _0224C488 - 2 ; case 2
- .short _0224C4D2 - _0224C488 - 2 ; case 3
- .short _0224C4DA - _0224C488 - 2 ; case 4
- .short _0224C4E0 - _0224C488 - 2 ; case 5
- .short _0224C4E6 - _0224C488 - 2 ; case 6
- .short _0224C4F2 - _0224C488 - 2 ; case 7
- .short _0224C4FE - _0224C488 - 2 ; case 8
- .short _0224C508 - _0224C488 - 2 ; case 9
- .short _0224C510 - _0224C488 - 2 ; case 10
- .short _0224C516 - _0224C488 - 2 ; case 11
- .short _0224C51E - _0224C488 - 2 ; case 12
-_0224C4A2:
- add r1, r3, #0
- bl MOD11_02230270
- lsl r0, r0, #2
- add r1, r4, r0
- mov r0, #0x6f
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- pop {r4, pc}
-_0224C4B4:
- add r1, r3, #0
- bl MOD11_02230270
- lsl r0, r0, #3
- add r1, r4, r0
- mov r0, #0x71
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x1d
- pop {r4, pc}
-_0224C4CA:
- ldr r0, _0224C530 ; =0x0000219C
- add r1, r4, r3
- ldrb r0, [r1, r0]
- pop {r4, pc}
-_0224C4D2:
- mov r0, #0x15
- lsl r0, r0, #4
- ldr r0, [r4, r0]
- pop {r4, pc}
-_0224C4DA:
- ldr r0, _0224C534 ; =0x00003109
- ldrb r0, [r4, r0]
- pop {r4, pc}
-_0224C4E0:
- ldr r0, _0224C538 ; =0x0000311D
- ldrb r0, [r4, r0]
- pop {r4, pc}
-_0224C4E6:
- lsl r0, r3, #2
- add r1, r4, r0
- mov r0, #0x55
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- pop {r4, pc}
-_0224C4F2:
- lsl r0, r3, #2
- add r1, r4, r0
- mov r0, #0x59
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- pop {r4, pc}
-_0224C4FE:
- lsl r0, r3, #4
- add r1, r4, r0
- ldr r0, _0224C53C ; =0x000021A8
- ldr r0, [r1, r0]
- pop {r4, pc}
-_0224C508:
- mov r0, #0x3d
- lsl r0, r0, #4
- ldrb r0, [r4, r0]
- pop {r4, pc}
-_0224C510:
- ldr r0, _0224C540 ; =0x00003108
- ldrb r0, [r4, r0]
- pop {r4, pc}
-_0224C516:
- ldr r0, _0224C544 ; =0x000003DA
- add r1, r4, r3
- ldrb r0, [r1, r0]
- pop {r4, pc}
-_0224C51E:
- lsl r0, r3, #4
- add r1, r4, r0
- ldr r0, _0224C548 ; =0x000021B0
- ldr r0, [r1, r0]
- pop {r4, pc}
-_0224C528:
- bl ErrorHandling
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-_0224C530: .word 0x0000219C
-_0224C534: .word 0x00003109
-_0224C538: .word 0x0000311D
-_0224C53C: .word 0x000021A8
-_0224C540: .word 0x00003108
-_0224C544: .word 0x000003DA
-_0224C548: .word 0x000021B0
-
- thumb_func_start MOD11_0224C54C
-MOD11_0224C54C: ; 0x0224C54C
- push {r3, r4, r5, lr}
- add r5, r1, #0
- ldr r4, [sp, #0x10]
- cmp r2, #0xb
- bhi _0224C5CA
- add r1, r2, r2
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0224C562: ; jump table
- .short _0224C57A - _0224C562 - 2 ; case 0
- .short _0224C58C - _0224C562 - 2 ; case 1
- .short _0224C5AA - _0224C562 - 2 ; case 2
- .short _0224C5B2 - _0224C562 - 2 ; case 3
- .short _0224C5CA - _0224C562 - 2 ; case 4
- .short _0224C5CA - _0224C562 - 2 ; case 5
- .short _0224C5CA - _0224C562 - 2 ; case 6
- .short _0224C5CA - _0224C562 - 2 ; case 7
- .short _0224C5CA - _0224C562 - 2 ; case 8
- .short _0224C5BA - _0224C562 - 2 ; case 9
- .short _0224C5CA - _0224C562 - 2 ; case 10
- .short _0224C5C2 - _0224C562 - 2 ; case 11
-_0224C57A:
- add r1, r3, #0
- bl MOD11_02230270
- lsl r0, r0, #2
- add r1, r5, r0
- mov r0, #0x6f
- lsl r0, r0, #2
- str r4, [r1, r0]
- pop {r3, r4, r5, pc}
-_0224C58C:
- add r1, r3, #0
- bl MOD11_02230270
- mov r1, #0x71
- lsl r1, r1, #2
- add r1, r5, r1
- lsl r0, r0, #3
- ldr r3, [r1, r0]
- ldr r2, _0224C5D0 ; =0xFFFF8FFF
- and r3, r2
- lsl r2, r4, #0x1d
- lsr r2, r2, #0x11
- orr r2, r3
- str r2, [r1, r0]
- pop {r3, r4, r5, pc}
-_0224C5AA:
- ldr r0, _0224C5D4 ; =0x0000219C
- add r1, r5, r3
- strb r4, [r1, r0]
- pop {r3, r4, r5, pc}
-_0224C5B2:
- mov r0, #0x15
- lsl r0, r0, #4
- str r4, [r5, r0]
- pop {r3, r4, r5, pc}
-_0224C5BA:
- mov r0, #0x3d
- lsl r0, r0, #4
- strb r4, [r5, r0]
- pop {r3, r4, r5, pc}
-_0224C5C2:
- ldr r0, _0224C5D8 ; =0x000003DA
- add r1, r5, r3
- strb r4, [r1, r0]
- pop {r3, r4, r5, pc}
-_0224C5CA:
- bl ErrorHandling
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0224C5D0: .word 0xFFFF8FFF
-_0224C5D4: .word 0x0000219C
-_0224C5D8: .word 0x000003DA
-
- thumb_func_start MOD11_0224C5DC
-MOD11_0224C5DC: ; 0x0224C5DC
- push {r4, lr}
- add r3, r0, #0
- add r3, #0x88
- str r1, [r3]
- add r3, r0, #0
- ldr r1, _0224C640 ; =0x007FFFFF
- add r4, r2, #0
- and r4, r1
- add r3, #0x8c
- str r4, [r3]
- lsl r1, r1, #0x17
- add r3, r2, #0
- and r3, r1
- add r1, r0, #0
- add r1, #0x90
- str r3, [r1]
- mov r3, #1
- lsl r3, r3, #0x1e
- add r1, r2, #0
- tst r1, r3
- beq _0224C60E
- ldr r1, [r0, #0x64]
- add r0, #0x94
- str r1, [r0]
- b _0224C62E
-_0224C60E:
- lsl r1, r3, #1
- tst r1, r2
- beq _0224C61C
- ldr r1, [r0, #0x6c]
- add r0, #0x94
- str r1, [r0]
- b _0224C62E
-_0224C61C:
- lsr r1, r3, #1
- tst r1, r2
- bne _0224C628
- lsr r1, r3, #2
- tst r1, r2
- beq _0224C62E
-_0224C628:
- mov r1, #0
- add r0, #0x94
- str r1, [r0]
-_0224C62E:
- cmp r4, #0x91
- blo _0224C636
- bl ErrorHandling
-_0224C636:
- ldr r0, _0224C644 ; =0x0225E4C8
- lsl r1, r4, #2
- ldr r0, [r0, r1]
- pop {r4, pc}
- nop
-_0224C640: .word 0x007FFFFF
-_0224C644: .word 0x0225E4C8
-
- thumb_func_start MOD11_0224C648
-MOD11_0224C648: ; 0x0224C648
- push {r3, r4, r5, lr}
- ldr r1, _0224C6D0 ; =0x0000213C
- add r5, r2, #0
- ldr r2, [r0, r1]
- mov r0, #2
- lsl r0, r0, #0xa
- add r1, r2, #0
- ldr r4, [sp, #0x14]
- tst r1, r0
- bne _0224C672
- lsl r0, r0, #4
- tst r0, r2
- bne _0224C672
- cmp r3, #0
- beq _0224C672
- add r0, r3, #0
- mul r0, r5
- mov r1, #0xa
- bl MOD11_022476C0
- add r3, r0, #0
-_0224C672:
- cmp r5, #0
- beq _0224C680
- cmp r5, #5
- beq _0224C692
- cmp r5, #0x14
- beq _0224C6B0
- b _0224C6CC
-_0224C680:
- ldr r1, [r4]
- mov r0, #8
- orr r1, r0
- mov r0, #4
- bic r1, r0
- mov r0, #2
- bic r1, r0
- str r1, [r4]
- b _0224C6CC
-_0224C692:
- ldr r0, [sp, #0x10]
- cmp r0, #0
- beq _0224C6CC
- ldr r1, [r4]
- mov r0, #2
- tst r0, r1
- beq _0224C6A8
- mov r0, #2
- bic r1, r0
- str r1, [r4]
- b _0224C6CC
-_0224C6A8:
- mov r0, #4
- orr r0, r1
- str r0, [r4]
- b _0224C6CC
-_0224C6B0:
- ldr r0, [sp, #0x10]
- cmp r0, #0
- beq _0224C6CC
- ldr r1, [r4]
- mov r0, #4
- tst r0, r1
- beq _0224C6C6
- mov r0, #4
- bic r1, r0
- str r1, [r4]
- b _0224C6CC
-_0224C6C6:
- mov r0, #2
- orr r0, r1
- str r0, [r4]
-_0224C6CC:
- add r0, r3, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0224C6D0: .word 0x0000213C
-
- thumb_func_start MOD11_0224C6D4
-MOD11_0224C6D4: ; 0x0224C6D4
- lsl r1, r1, #4
- add r2, r0, r1
- ldr r1, _0224C738 ; =0x000003DE
- ldrh r3, [r2, r1]
- cmp r3, #0x9b
- bgt _0224C706
- cmp r3, #0x97
- blt _0224C6EC
- beq _0224C726
- cmp r3, #0x9b
- beq _0224C726
- b _0224C732
-_0224C6EC:
- cmp r3, #0x27
- bgt _0224C6F8
- bge _0224C726
- cmp r3, #0x1a
- beq _0224C726
- b _0224C732
-_0224C6F8:
- cmp r3, #0x4b
- bgt _0224C700
- beq _0224C726
- b _0224C732
-_0224C700:
- cmp r3, #0x91
- beq _0224C726
- b _0224C732
-_0224C706:
- mov r2, #1
- lsl r2, r2, #8
- cmp r3, r2
- bgt _0224C716
- bge _0224C726
- cmp r3, #0xff
- beq _0224C726
- b _0224C732
-_0224C716:
- add r1, r2, #7
- cmp r3, r1
- bgt _0224C720
- beq _0224C726
- b _0224C732
-_0224C720:
- add r2, #0x11
- cmp r3, r2
- bne _0224C732
-_0224C726:
- ldr r1, _0224C73C ; =0x0000213C
- ldr r1, [r0, r1]
- mov r0, #2
- lsl r0, r0, #8
- and r0, r1
- bx lr
-_0224C732:
- mov r0, #1
- bx lr
- nop
-_0224C738: .word 0x000003DE
-_0224C73C: .word 0x0000213C
-
- thumb_func_start MOD11_0224C740
-MOD11_0224C740: ; 0x0224C740
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r6, r1, #0
- cmp r2, #0x1b
- bne _0224C756
- mov r0, #0xc0
- mul r0, r6
- add r1, r5, r0
- ldr r0, _0224C80C ; =0x00002D64
- ldrb r4, [r1, r0]
- b _0224C76A
-_0224C756:
- cmp r2, #0x1c
- bne _0224C766
- mov r0, #0xc0
- mul r0, r6
- add r1, r5, r0
- ldr r0, _0224C810 ; =0x00002D65
- ldrb r4, [r1, r0]
- b _0224C76A
-_0224C766:
- bl ErrorHandling
-_0224C76A:
- mov r0, #0xc0
- mul r0, r6
- mov r2, #0xb5
- add r1, r5, r0
- lsl r2, r2, #6
- ldrh r3, [r1, r2]
- ldr r0, _0224C814 ; =0x000001ED
- cmp r3, r0
- bne _0224C806
- add r0, r2, #0
- add r0, #0x27
- ldrb r0, [r1, r0]
- cmp r0, #0x79
- bne _0224C806
- add r2, #0x78
- ldrh r1, [r1, r2]
- add r0, r5, #0
- mov r2, #1
- bl MOD11_0224C12C
- sub r0, #0x7d
- cmp r0, #0xf
- bhi _0224C804
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0224C7A4: ; jump table
- .short _0224C7C4 - _0224C7A4 - 2 ; case 0
- .short _0224C7C8 - _0224C7A4 - 2 ; case 1
- .short _0224C7CC - _0224C7A4 - 2 ; case 2
- .short _0224C7D0 - _0224C7A4 - 2 ; case 3
- .short _0224C7D4 - _0224C7A4 - 2 ; case 4
- .short _0224C7D8 - _0224C7A4 - 2 ; case 5
- .short _0224C7DC - _0224C7A4 - 2 ; case 6
- .short _0224C7E0 - _0224C7A4 - 2 ; case 7
- .short _0224C7E4 - _0224C7A4 - 2 ; case 8
- .short _0224C7E8 - _0224C7A4 - 2 ; case 9
- .short _0224C7EC - _0224C7A4 - 2 ; case 10
- .short _0224C7F0 - _0224C7A4 - 2 ; case 11
- .short _0224C7F4 - _0224C7A4 - 2 ; case 12
- .short _0224C7F8 - _0224C7A4 - 2 ; case 13
- .short _0224C7FC - _0224C7A4 - 2 ; case 14
- .short _0224C800 - _0224C7A4 - 2 ; case 15
-_0224C7C4:
- mov r4, #0xa
- b _0224C806
-_0224C7C8:
- mov r4, #0xb
- b _0224C806
-_0224C7CC:
- mov r4, #0xd
- b _0224C806
-_0224C7D0:
- mov r4, #0xc
- b _0224C806
-_0224C7D4:
- mov r4, #0xf
- b _0224C806
-_0224C7D8:
- mov r4, #1
- b _0224C806
-_0224C7DC:
- mov r4, #3
- b _0224C806
-_0224C7E0:
- mov r4, #4
- b _0224C806
-_0224C7E4:
- mov r4, #2
- b _0224C806
-_0224C7E8:
- mov r4, #0xe
- b _0224C806
-_0224C7EC:
- mov r4, #6
- b _0224C806
-_0224C7F0:
- mov r4, #5
- b _0224C806
-_0224C7F4:
- mov r4, #7
- b _0224C806
-_0224C7F8:
- mov r4, #0x10
- b _0224C806
-_0224C7FC:
- mov r4, #0x11
- b _0224C806
-_0224C800:
- mov r4, #8
- b _0224C806
-_0224C804:
- mov r4, #0
-_0224C806:
- add r0, r4, #0
- pop {r4, r5, r6, pc}
- nop
-_0224C80C: .word 0x00002D64
-_0224C810: .word 0x00002D65
-_0224C814: .word 0x000001ED
-
- thumb_func_start MOD11_0224C818
-MOD11_0224C818: ; 0x0224C818
- lsl r1, r1, #3
- add r3, r0, r1
- mov r2, #0
- mov r0, #0x37
- add r1, r2, #0
- lsl r0, r0, #4
-_0224C824:
- add r2, r2, #1
- strh r1, [r3, r0]
- add r3, r3, #2
- cmp r2, #4
- blt _0224C824
- bx lr
-
- thumb_func_start MOD11_0224C830
-MOD11_0224C830: ; 0x0224C830
- add r1, r0, r1
- mov r0, #0x39
- mov r2, #0
- lsl r0, r0, #4
- strb r2, [r1, r0]
- bx lr
-
- thumb_func_start MOD11_0224C83C
-MOD11_0224C83C: ; 0x0224C83C
- lsl r1, r1, #1
- add r1, r0, r1
- mov r0, #0xe5
- mov r2, #0
- lsl r0, r0, #2
- strh r2, [r1, r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0224C84C
-MOD11_0224C84C: ; 0x0224C84C
- push {r4, r5, r6, lr}
- add r4, r2, #0
- add r3, r0, #0
- mov r2, #0xc0
- add r5, r1, #0
- mul r1, r2
- ldr r6, _0224C8BC ; =0x00002D67
- add r1, r3, r1
- ldrb r1, [r1, r6]
- mov r0, #0xff
- cmp r1, #0x3b
- beq _0224C890
- cmp r1, #0x24
- beq _0224C890
- cmp r1, #0x79
- beq _0224C890
- mul r2, r4
- add r2, r3, r2
- ldrb r2, [r2, r6]
- cmp r2, #0x3b
- beq _0224C890
- cmp r2, #0x24
- beq _0224C890
- cmp r2, #0x79
- beq _0224C890
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _0224C88C
- add r0, r4, #0
- pop {r4, r5, r6, pc}
-_0224C88C:
- add r0, r5, #0
- pop {r4, r5, r6, pc}
-_0224C890:
- cmp r1, #0x3b
- beq _0224C8A0
- cmp r1, #0x24
- beq _0224C8A0
- cmp r1, #0x79
- beq _0224C8A0
- add r0, r5, #0
- pop {r4, r5, r6, pc}
-_0224C8A0:
- mov r1, #0xc0
- mul r1, r4
- add r2, r3, r1
- ldr r1, _0224C8BC ; =0x00002D67
- ldrb r1, [r2, r1]
- cmp r1, #0x3b
- beq _0224C8B8
- cmp r1, #0x24
- beq _0224C8B8
- cmp r1, #0x79
- beq _0224C8B8
- add r0, r4, #0
-_0224C8B8:
- pop {r4, r5, r6, pc}
- nop
-_0224C8BC: .word 0x00002D67
-
- thumb_func_start MOD11_0224C8C0
-MOD11_0224C8C0: ; 0x0224C8C0
- lsl r1, r1, #4
- add r1, r0, r1
- ldr r0, _0224C8E4 ; =0x000003DE
- ldr r3, _0224C8E8 ; =0x0225E260
- ldrh r1, [r1, r0]
- mov r2, #0
-_0224C8CC:
- ldrh r0, [r3]
- cmp r0, r1
- bne _0224C8D6
- mov r0, #1
- bx lr
-_0224C8D6:
- add r2, r2, #1
- add r3, r3, #2
- cmp r2, #6
- blo _0224C8CC
- mov r0, #0
- bx lr
- nop
-_0224C8E4: .word 0x000003DE
-_0224C8E8: .word 0x0225E260
-
- thumb_func_start MOD11_0224C8EC
-MOD11_0224C8EC: ; 0x0224C8EC
- push {r3, r4, r5, r6, r7, lr}
- add r6, r2, #0
- ldr r2, _0224CA58 ; =0x00000137
- add r7, r0, #0
- add r4, r1, #0
- cmp r3, r2
- bgt _0224C904
- blt _0224C8FE
- b _0224CA00
-_0224C8FE:
- cmp r3, #0xed
- beq _0224C9A6
- b _0224CA52
-_0224C904:
- add r0, r2, #0
- add r0, #0x34
- cmp r3, r0
- bgt _0224C914
- add r2, #0x34
- cmp r3, r2
- beq _0224C91C
- b _0224CA52
-_0224C914:
- add r2, #0x8a
- cmp r3, r2
- beq _0224C928
- b _0224CA52
-_0224C91C:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02249E04
- add r5, r0, #0
- b _0224CA54
-_0224C928:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02249D90
- sub r0, #0x7d
- cmp r0, #0xf
- bhi _0224C9A2
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0224C942: ; jump table
- .short _0224C982 - _0224C942 - 2 ; case 0
- .short _0224C986 - _0224C942 - 2 ; case 1
- .short _0224C98E - _0224C942 - 2 ; case 2
- .short _0224C98A - _0224C942 - 2 ; case 3
- .short _0224C996 - _0224C942 - 2 ; case 4
- .short _0224C962 - _0224C942 - 2 ; case 5
- .short _0224C96A - _0224C942 - 2 ; case 6
- .short _0224C96E - _0224C942 - 2 ; case 7
- .short _0224C966 - _0224C942 - 2 ; case 8
- .short _0224C992 - _0224C942 - 2 ; case 9
- .short _0224C976 - _0224C942 - 2 ; case 10
- .short _0224C972 - _0224C942 - 2 ; case 11
- .short _0224C97A - _0224C942 - 2 ; case 12
- .short _0224C99A - _0224C942 - 2 ; case 13
- .short _0224C99E - _0224C942 - 2 ; case 14
- .short _0224C97E - _0224C942 - 2 ; case 15
-_0224C962:
- mov r5, #1
- b _0224CA54
-_0224C966:
- mov r5, #2
- b _0224CA54
-_0224C96A:
- mov r5, #3
- b _0224CA54
-_0224C96E:
- mov r5, #4
- b _0224CA54
-_0224C972:
- mov r5, #5
- b _0224CA54
-_0224C976:
- mov r5, #6
- b _0224CA54
-_0224C97A:
- mov r5, #7
- b _0224CA54
-_0224C97E:
- mov r5, #8
- b _0224CA54
-_0224C982:
- mov r5, #0xa
- b _0224CA54
-_0224C986:
- mov r5, #0xb
- b _0224CA54
-_0224C98A:
- mov r5, #0xc
- b _0224CA54
-_0224C98E:
- mov r5, #0xd
- b _0224CA54
-_0224C992:
- mov r5, #0xe
- b _0224CA54
-_0224C996:
- mov r5, #0xf
- b _0224CA54
-_0224C99A:
- mov r5, #0x10
- b _0224CA54
-_0224C99E:
- mov r5, #0x11
- b _0224CA54
-_0224C9A2:
- mov r5, #0
- b _0224CA54
-_0224C9A6:
- ldr r0, _0224CA5C ; =0x00002D54
- add r1, r4, r0
- mov r0, #0xc0
- mul r0, r6
- ldr r4, [r1, r0]
- lsl r0, r4, #2
- lsr r0, r0, #0x1b
- lsl r0, r0, #0x1f
- lsr r5, r0, #0x1a
- lsl r0, r4, #7
- lsr r0, r0, #0x1b
- lsl r0, r0, #0x1f
- lsr r3, r0, #0x1b
- lsl r0, r4, #0xc
- lsr r0, r0, #0x1b
- lsl r0, r0, #0x1f
- lsr r2, r0, #0x1c
- lsl r0, r4, #0x11
- lsr r0, r0, #0x1b
- lsl r0, r0, #0x1f
- lsr r1, r0, #0x1d
- lsl r0, r4, #0x1b
- lsl r4, r4, #0x16
- lsr r4, r4, #0x1b
- lsr r6, r0, #0x1b
- mov r0, #1
- lsl r4, r4, #0x1f
- and r0, r6
- lsr r4, r4, #0x1e
- orr r0, r4
- orr r0, r1
- orr r0, r2
- orr r0, r3
- add r1, r5, #0
- orr r1, r0
- mov r0, #0xf
- mul r0, r1
- mov r1, #0x3f
- bl _s32_div_f
- add r5, r0, #1
- cmp r5, #9
- blt _0224CA54
- add r5, r5, #1
- b _0224CA54
-_0224CA00:
- mov r2, #0xd
- str r2, [sp]
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224CA54
- mov r0, #0x4c
- str r0, [sp]
- add r0, r7, #0
- add r1, r4, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224CA54
- mov r0, #6
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- ldr r1, _0224CA60 ; =0x000080FF
- tst r1, r0
- beq _0224CA54
- mov r1, #3
- tst r1, r0
- beq _0224CA38
- mov r5, #0xb
-_0224CA38:
- mov r1, #0xc
- tst r1, r0
- beq _0224CA40
- mov r5, #5
-_0224CA40:
- mov r1, #0x30
- tst r1, r0
- beq _0224CA48
- mov r5, #0xa
-_0224CA48:
- mov r1, #0xc0
- tst r0, r1
- beq _0224CA54
- mov r5, #0xf
- b _0224CA54
-_0224CA52:
- mov r5, #0
-_0224CA54:
- add r0, r5, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224CA58: .word 0x00000137
-_0224CA5C: .word 0x00002D54
-_0224CA60: .word 0x000080FF
-
- thumb_func_start MOD11_0224CA64
-MOD11_0224CA64: ; 0x0224CA64
- push {r3, r4, r5, lr}
- add r5, r1, #0
- mov r1, #0x69
- mov r0, #5
- lsl r1, r1, #2
- bl AllocFromHeap
- add r4, r0, #0
- mov r2, #0x69
- mov r0, #0
- add r1, r4, #0
- lsl r2, r2, #2
- bl MIi_CpuClearFast
- mov r0, #0x65
- ldrb r1, [r5]
- lsl r0, r0, #2
- strb r1, [r4, r0]
- ldrb r1, [r5, #1]
- add r0, r0, #1
- strb r1, [r4, r0]
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224CA94
-MOD11_0224CA94: ; 0x0224CA94
- push {r4, r5, r6, lr}
- sub sp, #0x28
- add r5, r0, #0
- add r4, r1, #0
- add r6, r2, #0
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- bne _0224CB2C
- sub r1, #0x8b
- ldrb r1, [r4, r1]
- mov r0, #1
- tst r0, r1
- beq _0224CAC0
- add r0, r5, #0
- bl MOD11_0222FF74
- mov r1, #1
- tst r0, r1
- beq _0224CB2C
-_0224CAC0:
- ldr r0, _0224CB30 ; =0x00000195
- ldr r1, _0224CB34 ; =0x0225E818
- ldrb r2, [r4, r0]
- sub r0, r0, #1
- ldrb r1, [r1, r2]
- str r1, [sp]
- mov r1, #5
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp, #8]
- ldrb r0, [r4, r0]
- str r0, [sp, #0xc]
- add r0, r5, #0
- str r6, [sp, #0x10]
- bl MOD11_02230078
- str r0, [sp, #0x1c]
- add r0, r5, #0
- bl MOD11_022300CC
- str r0, [sp, #0x20]
- mov r0, #0
- str r0, [sp, #0x18]
- mov r0, #1
- str r0, [sp, #0x14]
- add r0, sp, #0
- bl MOD08_02229918
- add r1, r4, #0
- add r1, #0x88
- str r0, [r1]
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- mov r1, #0x64
- bl MOD08_0222A00C
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- mov r1, #2
- bl MOD08_0222A018
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- mov r1, #0
- bl MOD08_02229FE4
- add r4, #0x88
- ldr r0, [r4]
- mov r1, #0
- bl MOD08_0222A008
-_0224CB2C:
- add sp, #0x28
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0224CB30: .word 0x00000195
-_0224CB34: .word 0x0225E818
-
- thumb_func_start MOD11_0224CB38
-MOD11_0224CB38: ; 0x0224CB38
- push {r3, lr}
- add r2, r1, #0
- add r2, #0x94
- ldrb r2, [r2]
- cmp r2, #0
- beq _0224CB4C
- lsl r3, r2, #2
- ldr r2, _0224CB50 ; =0x0225E70C
- ldr r2, [r2, r3]
- blx r2
-_0224CB4C:
- pop {r3, pc}
- nop
-_0224CB50: .word 0x0225E70C
-
- thumb_func_start MOD11_0224CB54
-MOD11_0224CB54: ; 0x0224CB54
- push {r4, lr}
- add r4, r1, #0
- cmp r2, #2
- beq _0224CB64
- add r0, r4, #0
- add r0, #0x28
- bl MOD11_02257030
-_0224CB64:
- add r0, r4, #0
- bl MOD11_0225468C
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224CB74
-MOD11_0224CB74: ; 0x0224CB74
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0224CB78
-MOD11_0224CB78: ; 0x0224CB78
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_0224D550
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #1
- bl MOD11_022567B8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0224CB98
-MOD11_0224CB98: ; 0x0224CB98
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224D574
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CBAC
-MOD11_0224CBAC: ; 0x0224CBAC
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224D738
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CBC0
-MOD11_0224CBC0: ; 0x0224CBC0
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224D87C
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CBD4
-MOD11_0224CBD4: ; 0x0224CBD4
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224DA2C
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CBE8
-MOD11_0224CBE8: ; 0x0224CBE8
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224DAE8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CBFC
-MOD11_0224CBFC: ; 0x0224CBFC
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0x20]
- bl FUN_02007534
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #7
- bl MOD11_022567B8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224CC20
-MOD11_0224CC20: ; 0x0224CC20
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224DB4C
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CC34
-MOD11_0224CC34: ; 0x0224CC34
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224DCE4
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CC48
-MOD11_0224CC48: ; 0x0224CC48
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0224DD44
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CC58
-MOD11_0224CC58: ; 0x0224CC58
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224DD8C
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CC6C
-MOD11_0224CC6C: ; 0x0224CC6C
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224DE50
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CC80
-MOD11_0224CC80: ; 0x0224CC80
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0224DF18
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CC90
-MOD11_0224CC90: ; 0x0224CC90
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r6, r4, #0
- add r6, #0x94
- add r1, r6, #0
- add r1, #0x29
- ldrb r1, [r1]
- add r5, r0, #0
- bl MOD11_022312B8
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0224DF60
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224CCB8
-MOD11_0224CCB8: ; 0x0224CCB8
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E034
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CCCC
-MOD11_0224CCCC: ; 0x0224CCCC
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E0A4
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CCE0
-MOD11_0224CCE0: ; 0x0224CCE0
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E130
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CCF4
-MOD11_0224CCF4: ; 0x0224CCF4
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E1DC
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CD08
-MOD11_0224CD08: ; 0x0224CD08
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E248
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CD1C
-MOD11_0224CD1C: ; 0x0224CD1C
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E28C
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CD30
-MOD11_0224CD30: ; 0x0224CD30
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E2F4
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CD44
-MOD11_0224CD44: ; 0x0224CD44
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E344
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CD58
-MOD11_0224CD58: ; 0x0224CD58
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0x20]
- mov r1, #6
- bl FUN_0200782C
- cmp r0, #1
- bne _0224CD7A
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #0x17
- bl MOD11_022567B8
- b _0224CD82
-_0224CD7A:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224E3E0
-_0224CD82:
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224CD8C
-MOD11_0224CD8C: ; 0x0224CD8C
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E410
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CDA0
-MOD11_0224CDA0: ; 0x0224CDA0
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E49C
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CDB4
-MOD11_0224CDB4: ; 0x0224CDB4
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E510
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CDC8
-MOD11_0224CDC8: ; 0x0224CDC8
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E5F8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CDDC
-MOD11_0224CDDC: ; 0x0224CDDC
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0224E628
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CDEC
-MOD11_0224CDEC: ; 0x0224CDEC
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E65C
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CE00
-MOD11_0224CE00: ; 0x0224CE00
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E6FC
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CE14
-MOD11_0224CE14: ; 0x0224CE14
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E734
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CE28
-MOD11_0224CE28: ; 0x0224CE28
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E790
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CE3C
-MOD11_0224CE3C: ; 0x0224CE3C
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E7E8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CE50
-MOD11_0224CE50: ; 0x0224CE50
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0224E840
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CE60
-MOD11_0224CE60: ; 0x0224CE60
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E894
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CE74
-MOD11_0224CE74: ; 0x0224CE74
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0224E8EC
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CE84
-MOD11_0224CE84: ; 0x0224CE84
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E924
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CE98
-MOD11_0224CE98: ; 0x0224CE98
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E9C0
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CEAC
-MOD11_0224CEAC: ; 0x0224CEAC
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r6, r1, #0
- mov r2, #0x65
- add r6, #0x94
- lsl r2, r2, #2
- str r1, [sp, #4]
- ldrb r1, [r1, r2]
- ldrb r2, [r6, #1]
- str r0, [sp]
- lsl r2, r2, #0x1c
- lsr r2, r2, #0x1c
- bl MOD11_02230014
- add r7, r0, #0
- mov r0, #2
- ldr r1, [r6, #0x1c]
- lsl r0, r0, #0x14
- tst r0, r1
- bne _0224CF14
- add r0, r6, #0
- add r5, r6, #0
- str r0, [sp, #8]
- add r0, #0x16
- mov r4, #0
- add r5, #0xe
- str r0, [sp, #8]
-_0224CEE2:
- add r0, r4, #0
- bl MaskOfFlagNo
- ldrb r1, [r6, #1]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x1c
- tst r0, r1
- bne _0224CF0C
- add r1, r4, #0
- add r0, r7, #0
- add r1, #0x36
- add r2, r5, #0
- bl SetMonData
- ldr r2, [sp, #8]
- add r1, r4, #0
- add r0, r7, #0
- add r1, #0x3a
- add r2, r2, r4
- bl SetMonData
-_0224CF0C:
- add r4, r4, #1
- add r5, r5, #2
- cmp r4, #4
- blt _0224CEE2
-_0224CF14:
- ldrb r0, [r6, #1]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- bl MaskOfFlagNo
- ldr r1, [r6, #8]
- tst r0, r1
- bne _0224CF30
- add r2, r6, #0
- add r0, r7, #0
- mov r1, #6
- add r2, #0xc
- bl SetMonData
-_0224CF30:
- add r0, r7, #0
- mov r1, #0xa2
- add r2, r6, #2
- bl SetMonData
- add r0, r7, #0
- mov r1, #0x9f
- add r2, r6, #4
- bl SetMonData
- mov r2, #0x65
- ldr r1, [sp, #4]
- lsl r2, r2, #2
- ldrb r1, [r1, r2]
- ldrb r2, [r6]
- ldr r0, [sp]
- bl MOD11_022567B8
- ldr r0, [sp, #4]
- bl MOD11_0224D548
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224CF60
-MOD11_0224CF60: ; 0x0224CF60
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_0222FF74
- add r6, r0, #0
- add r0, r5, #0
- bl MOD11_02230094
- ldr r2, _0224CFB0 ; =0x00000196
- ldrb r1, [r4, r2]
- cmp r1, #0
- bne _0224CF94
- mov r1, #8
- and r1, r6
- bne _0224CF8C
- cmp r1, #0
- bne _0224CF94
- sub r1, r2, #1
- ldrb r1, [r4, r1]
- cmp r1, #4
- beq _0224CF94
-_0224CF8C:
- ldr r1, _0224CFB4 ; =0xFFFFF300
- mov r2, #0
- bl MOD11_02259098
-_0224CF94:
- mov r1, #0x65
- add r2, r4, #0
- lsl r1, r1, #2
- add r2, #0x94
- ldrb r1, [r4, r1]
- ldrb r2, [r2]
- add r0, r5, #0
- bl MOD11_022567B8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, r5, r6, pc}
- nop
-_0224CFB0: .word 0x00000196
-_0224CFB4: .word 0xFFFFF300
-
- thumb_func_start MOD11_0224CFB8
-MOD11_0224CFB8: ; 0x0224CFB8
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- add r0, #0x28
- bl MOD11_02257238
- add r0, r4, #0
- bl MOD11_0225468C
- mov r1, #0x65
- add r2, r4, #0
- lsl r1, r1, #2
- add r2, #0x94
- ldrb r1, [r4, r1]
- ldrb r2, [r2]
- add r0, r5, #0
- bl MOD11_022567B8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224CFE8
-MOD11_0224CFE8: ; 0x0224CFE8
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r7, r1, #0
- mov r1, #0
- str r1, [sp, #8]
- mov r1, #0x65
- lsl r1, r1, #2
- add r4, r7, #0
- ldrb r1, [r7, r1]
- str r0, [sp]
- add r4, #0x94
- bl MOD11_0222FFC8
- mov r5, #0
- str r0, [sp, #4]
- cmp r0, #0
- ble _0224D04A
-_0224D00A:
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r7, r1]
- ldr r0, [sp]
- add r2, r5, #0
- bl MOD11_02230014
- ldrb r1, [r4, #1]
- add r6, r0, #0
- cmp r1, #0x68
- bne _0224D024
- mov r0, #0
- b _0224D02C
-_0224D024:
- mov r1, #0xa
- mov r2, #0
- bl GetMonData
-_0224D02C:
- ldrh r1, [r4, #2]
- cmp r1, #0xd7
- bne _0224D038
- bne _0224D042
- cmp r0, #0x2b
- beq _0224D042
-_0224D038:
- add r0, r6, #0
- mov r1, #0x9f
- add r2, sp, #8
- bl SetMonData
-_0224D042:
- ldr r0, [sp, #4]
- add r5, r5, #1
- cmp r5, r0
- blt _0224D00A
-_0224D04A:
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r7, r1]
- ldrb r2, [r4]
- ldr r0, [sp]
- bl MOD11_022567B8
- add r0, r7, #0
- bl MOD11_0224D548
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224D064
-MOD11_0224D064: ; 0x0224D064
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224EA74
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D078
-MOD11_0224D078: ; 0x0224D078
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224EAAC
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D08C
-MOD11_0224D08C: ; 0x0224D08C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- str r0, [sp, #0x10]
- add r5, r1, #0
- ldr r0, _0224D180 ; =0x00000195
- add r4, r5, #0
- ldrb r1, [r5, r0]
- mov r0, #1
- add r4, #0x94
- tst r0, r1
- beq _0224D0A6
- mov r6, #2
- b _0224D0A8
-_0224D0A6:
- mov r6, #0
-_0224D0A8:
- ldrb r0, [r4, #5]
- lsl r3, r6, #0x18
- lsr r3, r3, #0x18
- str r0, [sp]
- ldrb r0, [r4, #1]
- str r0, [sp, #4]
- ldr r0, [r4, #8]
- str r0, [sp, #8]
- ldrh r1, [r4, #2]
- ldrb r2, [r4, #4]
- add r0, sp, #0x14
- bl FUN_02068C00
- ldr r0, [r5, #0x20]
- bl FUN_020081C0
- add r7, r0, #0
- add r3, sp, #0x14
- add r2, r7, #0
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r0, [r5, #0x20]
- bl FUN_020080D0
- ldr r0, [sp, #0x10]
- bl MOD11_02230130
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- bl MOD11_022312DC
- add r3, r0, #0
- ldr r0, [r4, #8]
- mov r2, #5
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- str r6, [sp, #8]
- ldrh r0, [r7, #6]
- str r0, [sp, #0xc]
- ldrh r0, [r7]
- ldrh r1, [r7, #2]
- bl FUN_02012560
- ldr r0, [sp, #0x10]
- bl MOD11_02230130
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- ldrh r2, [r7]
- bl MOD11_022312F0
- ldr r0, [sp, #0x10]
- bl MOD11_02230130
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- ldrh r2, [r7, #4]
- bl MOD11_02231308
- ldr r0, [r4, #8]
- lsl r2, r6, #0x18
- str r0, [sp]
- ldrh r0, [r4, #2]
- ldrb r1, [r4, #4]
- ldrb r3, [r4, #1]
- lsr r2, r2, #0x18
- bl FUN_02068E88
- add r6, r0, #0
- ldr r0, [sp, #0x10]
- bl MOD11_02230130
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- add r2, r6, #0
- bl MOD11_02231320
- ldr r0, _0224D180 ; =0x00000195
- mov r1, #1
- ldrb r0, [r5, r0]
- bl MOD08_0222A6A4
- add r2, r0, #0
- ldr r0, [r5, #0x20]
- mov r1, #1
- add r2, r6, r2
- bl FUN_02007558
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- ldrb r2, [r4]
- ldr r0, [sp, #0x10]
- bl MOD11_022567B8
- add r0, r5, #0
- bl MOD11_0224D548
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- nop
-_0224D180: .word 0x00000195
-
- thumb_func_start MOD11_0224D184
-MOD11_0224D184: ; 0x0224D184
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_02230FCC
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #0x2e
- bl MOD11_022567B8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0224D1A4
-MOD11_0224D1A4: ; 0x0224D1A4
- push {r4, r5, r6, lr}
- add r4, r1, #0
- ldr r1, _0224D218 ; =0x00000196
- add r5, r0, #0
- ldrb r1, [r4, r1]
- cmp r1, #0
- bne _0224D200
- bl MOD11_02230094
- mov r1, #0
- add r6, r0, #0
- add r2, r1, #0
- add r3, r1, #0
- bl MOD11_02258820
- add r0, r6, #0
- mov r1, #0
- bl MOD11_0225B77C
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- bl MOD11_022302BC
- add r1, r0, #0
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r4, r0]
- cmp r1, r0
- beq _0224D1EC
- add r0, r5, #0
- bl MOD11_02231380
- bl MOD11_02258184
-_0224D1EC:
- add r0, r4, #0
- add r0, #0x28
- bl MOD11_02257238
- add r0, r6, #0
- bl MOD11_02258E30
- add r0, r4, #0
- bl MOD11_0225468C
-_0224D200:
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #0x2f
- bl MOD11_022567B8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, r5, r6, pc}
- nop
-_0224D218: .word 0x00000196
-
- thumb_func_start MOD11_0224D21C
-MOD11_0224D21C: ; 0x0224D21C
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224EAEC
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D230
-MOD11_0224D230: ; 0x0224D230
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224EB34
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D244
-MOD11_0224D244: ; 0x0224D244
- push {r4, r5, r6, lr}
- add r4, r1, #0
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r6, r4, #0
- add r5, r0, #0
- add r6, #0x94
- bl MOD11_02230270
- cmp r0, #0
- beq _0224D268
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0224EB6C
- b _0224D276
-_0224D268:
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #0x32
- bl MOD11_022567B8
-_0224D276:
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224D280
-MOD11_0224D280: ; 0x0224D280
- push {r4, r5, r6, lr}
- add r4, r1, #0
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r6, r4, #0
- add r5, r0, #0
- add r6, #0x94
- bl MOD11_02230270
- cmp r0, #0
- beq _0224D2A4
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0224EBB8
- b _0224D2B2
-_0224D2A4:
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #0x33
- bl MOD11_022567B8
-_0224D2B2:
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224D2BC
-MOD11_0224D2BC: ; 0x0224D2BC
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_02230078
- add r6, r0, #0
- add r0, r5, #0
- bl MOD11_02230080
- add r7, r0, #0
- add r0, r5, #0
- bl MOD11_022300CC
- add r2, r0, #0
- add r0, r6, #0
- add r1, r7, #0
- bl MOD11_0225C91C
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #0x34
- bl MOD11_022567B8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224D2F8
-MOD11_0224D2F8: ; 0x0224D2F8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_02230080
- bl MOD11_0225C9A0
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #0x35
- bl MOD11_022567B8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0224D31C
-MOD11_0224D31C: ; 0x0224D31C
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r4, r5, #0
- add r4, #0x94
- ldrb r1, [r4, #1]
- add r6, r0, #0
- cmp r1, #0
- ldr r1, _0224D360 ; =0x00000196
- bne _0224D33C
- ldrb r1, [r5, r1]
- cmp r1, #0
- bne _0224D348
- ldrh r1, [r4, #2]
- bl MOD11_0223128C
- b _0224D348
-_0224D33C:
- ldrb r1, [r5, r1]
- cmp r1, #0
- beq _0224D348
- ldrh r1, [r4, #2]
- bl MOD11_0223128C
-_0224D348:
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- ldrb r2, [r4]
- add r0, r6, #0
- bl MOD11_022567B8
- add r0, r5, #0
- bl MOD11_0224D548
- pop {r4, r5, r6, pc}
- nop
-_0224D360: .word 0x00000196
-
- thumb_func_start MOD11_0224D364
-MOD11_0224D364: ; 0x0224D364
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0224EBF4
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D374
-MOD11_0224D374: ; 0x0224D374
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224EC4C
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D388
-MOD11_0224D388: ; 0x0224D388
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0224EC80
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D398
-MOD11_0224D398: ; 0x0224D398
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0224ECB8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D3A8
-MOD11_0224D3A8: ; 0x0224D3A8
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0224ECF0
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D3B8
-MOD11_0224D3B8: ; 0x0224D3B8
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224ED44
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D3CC
-MOD11_0224D3CC: ; 0x0224D3CC
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0224ED98
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D3DC
-MOD11_0224D3DC: ; 0x0224D3DC
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224EDEC
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D3F0
-MOD11_0224D3F0: ; 0x0224D3F0
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224EE20
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D404
-MOD11_0224D404: ; 0x0224D404
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224EE80
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D418
-MOD11_0224D418: ; 0x0224D418
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- mov r7, #0
- str r1, [sp, #4]
- str r1, [sp, #0x10]
- add r1, #0x94
- str r0, [sp]
- str r1, [sp, #0x10]
- str r7, [sp, #8]
- bl MOD11_0222FF74
- mov r1, #0x80
- tst r0, r1
- beq _0224D444
- ldr r1, [sp, #0x10]
- ldr r0, [sp]
- ldr r1, [r1, #4]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02231468
- b _0224D4FC
-_0224D444:
- add r0, r7, #0
- str r0, [sp, #0xc]
- ldr r0, [sp]
- bl MOD11_0222FF84
- cmp r0, #0
- ble _0224D4D2
-_0224D452:
- ldr r0, [sp]
- ldr r1, [sp, #0xc]
- bl MOD11_0222FF88
- add r6, r0, #0
- mov r5, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0224D4C0
-_0224D466:
- add r0, r6, #0
- add r1, r5, #0
- bl GetPartyMonByIndex
- mov r1, #5
- mov r2, #0
- add r4, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _0224D4B4
- add r0, r4, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- bne _0224D4B4
- ldr r0, [sp]
- ldr r1, [sp, #0xc]
- bl MOD11_02230270
- cmp r0, #0
- beq _0224D4A8
- add r0, r4, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- ldr r1, [sp, #8]
- add r0, r1, r0
- str r0, [sp, #8]
- b _0224D4B4
-_0224D4A8:
- add r0, r4, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- add r7, r7, r0
-_0224D4B4:
- add r0, r6, #0
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _0224D466
-_0224D4C0:
- ldr r0, [sp, #0xc]
- add r0, r0, #1
- str r0, [sp, #0xc]
- ldr r0, [sp]
- bl MOD11_0222FF84
- ldr r1, [sp, #0xc]
- cmp r1, r0
- blt _0224D452
-_0224D4D2:
- cmp r7, #0
- bne _0224D4E6
- ldr r0, [sp, #8]
- cmp r0, #0
- bne _0224D4E6
- ldr r0, [sp]
- mov r1, #3
- bl MOD11_02231468
- b _0224D4FC
-_0224D4E6:
- cmp r7, #0
- bne _0224D4F4
- ldr r0, [sp]
- mov r1, #2
- bl MOD11_02231468
- b _0224D4FC
-_0224D4F4:
- ldr r0, [sp]
- mov r1, #1
- bl MOD11_02231468
-_0224D4FC:
- mov r2, #0x65
- ldr r1, [sp, #4]
- lsl r2, r2, #2
- ldrb r1, [r1, r2]
- ldr r2, [sp, #0x10]
- ldr r0, [sp]
- ldrb r2, [r2]
- bl MOD11_022567B8
- ldr r0, [sp, #4]
- bl MOD11_0224D548
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0224D518
-MOD11_0224D518: ; 0x0224D518
- push {r4, r5, r6, lr}
- add r4, r1, #0
- mov r1, #0
- add r5, r0, #0
- bl MOD11_0222FF6C
- add r6, r0, #0
- mov r1, #0xff
- bl FUN_02019620
- add r0, r6, #0
- bl FUN_02019548
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #0x42
- bl MOD11_022567B8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0224D548
-MOD11_0224D548: ; 0x0224D548
- mov r1, #0
- add r0, #0x94
- strb r1, [r0]
- bx lr
-
- thumb_func_start MOD11_0224D550
-MOD11_0224D550: ; 0x0224D550
- push {r4, lr}
- add r4, r0, #0
- mov r0, #5
- mov r1, #0x18
- bl AllocFromHeap
- add r1, r0, #0
- str r4, [r1]
- mov r2, #0
- strb r2, [r1, #0x14]
- ldr r0, _0224D570 ; =MOD11_022530A0
- strb r2, [r1, #0x15]
- bl FUN_0200CA44
- pop {r4, pc}
- nop
-_0224D570: .word MOD11_022530A0
-
- thumb_func_start MOD11_0224D574
-MOD11_0224D574: ; 0x0224D574
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x58
- str r0, [sp, #0x24]
- add r6, r1, #0
- add r5, r2, #0
- bl MOD11_02230068
- str r0, [sp, #0x28]
- ldr r0, [sp, #0x24]
- bl MOD11_0222FF74
- mov r0, #5
- mov r1, #0x2c
- bl AllocFromHeap
- add r4, r0, #0
- mov r2, #0
- ldr r0, _0224D720 ; =0x00000195
- strb r2, [r4, #0x12]
- ldrb r0, [r6, r0]
- mov r1, #1
- tst r0, r1
- beq _0224D5CA
- mov r0, #2
- strb r0, [r4, #0x13]
- ldr r0, [sp, #0x24]
- bl MOD11_02230088
- str r0, [r4, #0xc]
- ldr r1, _0224D720 ; =0x00000195
- ldr r0, [r0]
- ldrb r2, [r6, r1]
- mov r1, #1
- and r2, r1
- add r3, r2, #0
- mov r1, #6
- mul r3, r1
- ldr r1, _0224D724 ; =0x0222D550
- mov r2, #0x58
- ldrsh r1, [r1, r3]
- bl FUN_0200C714
- b _0224D5F0
-_0224D5CA:
- ldr r0, [sp, #0x24]
- add r1, r2, #0
- strb r2, [r4, #0x13]
- bl MOD11_02230088
- str r0, [r4, #0xc]
- ldr r1, _0224D720 ; =0x00000195
- ldr r0, [r0]
- ldrb r2, [r6, r1]
- mov r1, #1
- and r2, r1
- add r3, r2, #0
- mov r1, #6
- mul r3, r1
- ldr r1, _0224D724 ; =0x0222D550
- mov r2, #0x88
- ldrsh r1, [r1, r3]
- bl FUN_0200C714
-_0224D5F0:
- ldrb r0, [r5, #1]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- beq _0224D5FC
- mov r0, #1
- b _0224D5FE
-_0224D5FC:
- mov r0, #0
-_0224D5FE:
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp]
- ldrb r0, [r5, #1]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1b
- str r0, [sp, #4]
- ldr r0, [r5, #4]
- str r0, [sp, #8]
- ldrb r2, [r5, #1]
- ldrh r1, [r5, #2]
- ldrb r3, [r4, #0x13]
- lsl r2, r2, #0x1e
- add r0, sp, #0x48
- lsr r2, r2, #0x1e
- bl FUN_02068C00
- ldr r0, [r5, #4]
- str r0, [sp]
- ldrb r3, [r5, #1]
- ldrh r0, [r5, #2]
- ldrb r2, [r4, #0x13]
- lsl r1, r3, #0x1e
- lsl r3, r3, #0x18
- lsr r1, r1, #0x1e
- lsr r3, r3, #0x1b
- bl FUN_02068E88
- str r0, [sp, #0x2c]
- mov r0, #1
- str r0, [sp]
- add r0, sp, #0x30
- ldrh r3, [r5, #2]
- add r0, #2
- mov r1, #0x8a
- mov r2, #0
- bl ReadFromNarcMemberByIdPair
- mov r0, #1
- str r0, [sp]
- add r0, sp, #0x30
- ldrh r3, [r5, #2]
- add r0, #1
- mov r1, #0x90
- mov r2, #0
- bl ReadFromNarcMemberByIdPair
- mov r0, #1
- str r0, [sp]
- ldrh r3, [r5, #2]
- add r0, sp, #0x30
- mov r1, #0x8e
- mov r2, #0
- bl ReadFromNarcMemberByIdPair
- add r0, sp, #0x30
- ldrh r1, [r5, #2]
- add r0, #3
- bl FUN_02069010
- ldr r1, _0224D720 ; =0x00000195
- mov r0, #6
- ldrb r2, [r6, r1]
- ldr r3, _0224D724 ; =0x0222D550
- add r7, r2, #0
- mul r7, r0
- ldr r0, _0224D728 ; =0x0222D552
- mov r2, #2
- ldrsh r0, [r0, r7]
- ldrsh r3, [r3, r7]
- str r0, [sp]
- ldr r0, _0224D72C ; =0x0222D554
- ldrsh r0, [r0, r7]
- str r0, [sp, #4]
- ldr r0, [sp, #0x2c]
- str r0, [sp, #8]
- add r0, sp, #0x30
- ldrsb r2, [r0, r2]
- str r2, [sp, #0xc]
- mov r2, #1
- ldrsb r2, [r0, r2]
- str r2, [sp, #0x10]
- ldrb r0, [r0]
- add r2, sp, #0x48
- str r0, [sp, #0x14]
- sub r0, r1, #1
- ldrb r0, [r6, r0]
- ldr r1, [sp, #0x28]
- str r0, [sp, #0x18]
- add r0, sp, #0x30
- add r0, #3
- str r0, [sp, #0x1c]
- mov r0, #0
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x24]
- bl MOD11_02253A88
- str r0, [r6, #0x20]
- str r0, [r4, #8]
- ldrb r0, [r4, #0x13]
- cmp r0, #2
- bne _0224D6D8
- mov r3, #0
- str r3, [sp]
- mov r1, #8
- ldr r0, [r4, #8]
- add r2, r1, #0
- bl FUN_02007E68
-_0224D6D8:
- ldr r1, _0224D720 ; =0x00000195
- ldrb r0, [r6, r1]
- lsl r2, r0, #2
- ldr r0, _0224D730 ; =0x0222D538
- ldrsh r0, [r0, r2]
- strh r0, [r4, #0x14]
- ldr r0, [sp, #0x24]
- str r0, [r4]
- str r6, [r4, #4]
- ldrb r0, [r5]
- strb r0, [r4, #0x10]
- sub r0, r1, #1
- ldrb r0, [r6, r0]
- strb r0, [r4, #0x11]
- ldrh r0, [r5, #2]
- strh r0, [r4, #0x16]
- ldr r0, [r5, #8]
- str r0, [r4, #0x18]
- ldrb r0, [r6, r1]
- str r0, [r4, #0x1c]
- ldr r0, [r5, #4]
- bl GetNatureFromPersonality
- str r0, [r4, #0x24]
- ldrb r0, [r5, #1]
- add r1, r4, #0
- mov r2, #0
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- str r0, [r4, #0x28]
- ldr r0, _0224D734 ; =MOD11_0224EEA0
- bl FUN_0200CA44
- add sp, #0x58
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224D720: .word 0x00000195
-_0224D724: .word 0x0222D550
-_0224D728: .word 0x0222D552
-_0224D72C: .word 0x0222D554
-_0224D730: .word 0x0222D538
-_0224D734: .word MOD11_0224EEA0
-
- thumb_func_start MOD11_0224D738
-MOD11_0224D738: ; 0x0224D738
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r7, r0, #0
- add r6, r1, #0
- add r5, r2, #0
- bl MOD11_0222FF74
- mov r0, #5
- mov r1, #0x9c
- bl AllocFromHeap
- add r4, r0, #0
- ldr r0, _0224D874 ; =0x00000195
- ldrb r1, [r6, r0]
- mov r0, #1
- tst r0, r1
- beq _0224D75E
- mov r1, #2
- b _0224D760
-_0224D75E:
- mov r1, #0
-_0224D760:
- add r0, r4, #0
- add r0, #0x84
- strb r1, [r0]
- ldrb r0, [r5, #1]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- beq _0224D772
- mov r0, #1
- b _0224D774
-_0224D772:
- mov r0, #0
-_0224D774:
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp]
- ldrb r0, [r5, #1]
- add r3, r4, #0
- add r3, #0x84
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1b
- str r0, [sp, #4]
- ldr r0, [r5, #4]
- str r0, [sp, #8]
- ldrb r2, [r5, #1]
- add r0, r4, #0
- ldrh r1, [r5, #2]
- lsl r2, r2, #0x1e
- ldrb r3, [r3]
- add r0, #0x14
- lsr r2, r2, #0x1e
- bl FUN_02068C00
- ldr r0, [r5, #4]
- add r2, r4, #0
- str r0, [sp]
- ldrb r3, [r5, #1]
- add r2, #0x84
- ldrh r0, [r5, #2]
- lsl r1, r3, #0x1e
- lsl r3, r3, #0x18
- ldrb r2, [r2]
- lsr r1, r1, #0x1e
- lsr r3, r3, #0x1b
- bl FUN_02068E88
- add r1, r4, #0
- add r1, #0x85
- strb r0, [r1]
- mov r0, #1
- str r0, [sp]
- add r0, r4, #0
- ldrh r3, [r5, #2]
- add r0, #0x90
- mov r1, #0x8a
- mov r2, #0
- bl ReadFromNarcMemberByIdPair
- mov r0, #1
- str r0, [sp]
- add r0, r4, #0
- ldrh r3, [r5, #2]
- add r0, #0x91
- mov r1, #0x90
- mov r2, #0
- bl ReadFromNarcMemberByIdPair
- mov r0, #1
- str r0, [sp]
- add r0, r4, #0
- ldrh r3, [r5, #2]
- add r0, #0x93
- mov r1, #0x8e
- mov r2, #0
- bl ReadFromNarcMemberByIdPair
- add r0, r6, #0
- bl MOD11_02253A78
- str r7, [r4]
- add r0, r4, #0
- str r6, [r4, #4]
- mov r1, #0
- add r0, #0x83
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0x96
- strb r1, [r0]
- add r0, r4, #0
- ldrb r1, [r5]
- add r0, #0x80
- strb r1, [r0]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r2, [r6, r0]
- add r1, r4, #0
- add r1, #0x81
- strb r2, [r1]
- add r1, r4, #0
- ldrh r2, [r5, #2]
- add r1, #0x86
- add r0, r0, #1
- strh r2, [r1]
- ldrb r1, [r6, r0]
- add r0, r4, #0
- add r0, #0x82
- strb r1, [r0]
- add r0, r4, #0
- ldr r1, [r5, #8]
- add r0, #0x88
- str r1, [r0]
- add r0, r4, #0
- ldr r1, [r5, #0xc]
- add r0, #0x8c
- strb r1, [r0]
- ldr r0, [r5, #4]
- bl GetNatureFromPersonality
- add r1, r4, #0
- add r1, #0x8d
- strb r0, [r1]
- add r0, r4, #0
- ldr r1, [r5, #0x10]
- add r0, #0x8e
- strh r1, [r0]
- ldrb r0, [r5, #1]
- lsl r0, r0, #0x1d
- lsr r1, r0, #0x1f
- add r0, r4, #0
- add r0, #0x92
- strb r1, [r0]
- add r0, r4, #0
- mov r2, #0
- add r0, #0x94
- strh r2, [r0]
- ldr r0, _0224D878 ; =MOD11_0224F2DC
- add r1, r4, #0
- bl FUN_0200CA44
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0224D874: .word 0x00000195
-_0224D878: .word MOD11_0224F2DC
-
- thumb_func_start MOD11_0224D87C
-MOD11_0224D87C: ; 0x0224D87C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r7, r0, #0
- add r6, r1, #0
- add r4, r2, #0
- bl MOD11_0222FF74
- mov r0, #5
- mov r1, #0x9c
- bl AllocFromHeap
- add r5, r0, #0
- add r1, r5, #0
- mov r0, #0
- add r1, #0x83
- strb r0, [r1]
- ldr r1, _0224DA24 ; =0x00000195
- ldrb r2, [r6, r1]
- mov r1, #1
- tst r1, r2
- beq _0224D8B0
- add r0, r5, #0
- mov r1, #2
- add r0, #0x84
- strb r1, [r0]
- b _0224D8B6
-_0224D8B0:
- add r1, r5, #0
- add r1, #0x84
- strb r0, [r1]
-_0224D8B6:
- ldrb r0, [r4, #1]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- beq _0224D8C2
- mov r0, #1
- b _0224D8C4
-_0224D8C2:
- mov r0, #0
-_0224D8C4:
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp]
- ldrb r0, [r4, #1]
- add r3, r5, #0
- add r3, #0x84
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1b
- str r0, [sp, #4]
- ldr r0, [r4, #4]
- str r0, [sp, #8]
- ldrb r2, [r4, #1]
- add r0, r5, #0
- ldrh r1, [r4, #2]
- lsl r2, r2, #0x1e
- ldrb r3, [r3]
- add r0, #0x14
- lsr r2, r2, #0x1e
- bl FUN_02068C00
- ldr r0, [r4, #4]
- add r2, r5, #0
- str r0, [sp]
- ldrb r3, [r4, #1]
- add r2, #0x84
- ldrh r0, [r4, #2]
- lsl r1, r3, #0x1e
- lsl r3, r3, #0x18
- ldrb r2, [r2]
- lsr r1, r1, #0x1e
- lsr r3, r3, #0x1b
- bl FUN_02068E88
- add r1, r5, #0
- add r1, #0x85
- strb r0, [r1]
- mov r0, #1
- str r0, [sp]
- add r0, r5, #0
- ldrh r3, [r4, #2]
- add r0, #0x90
- mov r1, #0x8a
- mov r2, #0
- bl ReadFromNarcMemberByIdPair
- mov r0, #1
- str r0, [sp]
- add r0, r5, #0
- ldrh r3, [r4, #2]
- add r0, #0x91
- mov r1, #0x90
- mov r2, #0
- bl ReadFromNarcMemberByIdPair
- mov r0, #1
- str r0, [sp]
- add r0, r5, #0
- ldrh r3, [r4, #2]
- add r0, #0x93
- mov r1, #0x8e
- mov r2, #0
- bl ReadFromNarcMemberByIdPair
- add r0, r6, #0
- bl MOD11_02253A78
- str r7, [r5]
- str r6, [r5, #4]
- add r0, r5, #0
- ldrb r1, [r4]
- add r0, #0x80
- strb r1, [r0]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r2, [r6, r0]
- add r1, r5, #0
- add r1, #0x81
- strb r2, [r1]
- add r1, r5, #0
- ldrh r2, [r4, #2]
- add r1, #0x86
- add r0, r0, #1
- strh r2, [r1]
- ldrb r1, [r6, r0]
- add r0, r5, #0
- add r0, #0x82
- strb r1, [r0]
- add r0, r5, #0
- ldr r1, [r4, #8]
- add r0, #0x88
- str r1, [r0]
- add r0, r5, #0
- ldr r1, [r4, #0xc]
- add r0, #0x8c
- strb r1, [r0]
- ldr r0, [r4, #4]
- bl GetNatureFromPersonality
- add r1, r5, #0
- add r1, #0x8d
- strb r0, [r1]
- add r0, r5, #0
- ldr r1, [r4, #0x10]
- add r0, #0x8e
- strh r1, [r0]
- ldrb r0, [r4, #1]
- lsl r0, r0, #0x1d
- lsr r1, r0, #0x1f
- add r0, r5, #0
- add r0, #0x92
- strb r1, [r0]
- add r0, r5, #0
- ldr r1, [r4, #0x14]
- add r0, #0x94
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0
- add r0, #0x96
- strb r1, [r0]
- add r0, r5, #0
- ldr r2, [r4, #0x4c]
- add r0, #0x98
- str r2, [r0]
- str r4, [sp, #0x18]
- add r7, r5, #0
- add r2, r4, #0
- add r3, r5, #0
-_0224D9C2:
- ldr r0, [sp, #0x18]
- add r0, #0x50
- ldrh r6, [r0]
- add r0, r7, #0
- add r0, #0x40
- strh r6, [r0]
- add r0, r4, r1
- add r0, #0x58
- ldrb r6, [r0]
- add r0, r5, r1
- str r0, [sp, #0x14]
- add r0, #0x48
- str r0, [sp, #0x14]
- strb r6, [r0]
- add r0, r4, r1
- add r0, #0x5c
- ldrb r6, [r0]
- add r0, r5, r1
- str r0, [sp, #0x10]
- add r0, #0x4c
- str r0, [sp, #0x10]
- strb r6, [r0]
- add r0, r4, r1
- add r0, #0x60
- ldrb r6, [r0]
- add r0, r5, r1
- str r0, [sp, #0xc]
- add r0, #0x50
- str r0, [sp, #0xc]
- strb r6, [r0]
- ldr r0, [r2, #0x64]
- add r1, r1, #1
- str r0, [r3, #0x54]
- ldr r0, [sp, #0x18]
- add r7, r7, #2
- add r0, r0, #2
- str r0, [sp, #0x18]
- add r2, r2, #4
- add r3, r3, #4
- cmp r1, #4
- blt _0224D9C2
- ldr r0, _0224DA28 ; =MOD11_0224F7C4
- add r1, r5, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- nop
-_0224DA24: .word 0x00000195
-_0224DA28: .word MOD11_0224F7C4
-
- thumb_func_start MOD11_0224DA2C
-MOD11_0224DA2C: ; 0x0224DA2C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #0x74
- str r2, [sp]
- bl AllocFromHeap
- add r2, r0, #0
- str r5, [r2]
- str r4, [r2, #4]
- ldr r0, [r4, #0x20]
- add r7, r2, #0
- str r0, [r2, #8]
- ldr r0, [sp]
- add r5, r2, #0
- ldrb r1, [r0]
- add r0, r2, #0
- add r0, #0x68
- strb r1, [r0]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r3, [r4, r0]
- add r1, r2, #0
- add r1, #0x69
- add r0, r0, #1
- strb r3, [r1]
- ldrb r1, [r4, r0]
- add r0, r2, #0
- add r0, #0x6a
- strb r1, [r0]
- add r0, r2, #0
- mov r1, #0
- add r0, #0x6b
- strb r1, [r0]
- ldr r0, [sp]
- ldrb r3, [r0, #1]
- add r0, r2, #0
- add r0, #0x6c
- strb r3, [r0]
- ldr r0, [sp]
- ldrh r3, [r0, #2]
- add r0, r2, #0
- add r0, #0x6e
- strh r3, [r0]
- ldr r0, [sp]
- ldr r3, [sp]
- ldr r0, [r0, #4]
- add r4, r3, #0
- str r0, [r2, #0x70]
-_0224DA92:
- ldrh r0, [r3, #8]
- add r3, r3, #2
- strh r0, [r7, #0x28]
- ldr r0, [sp]
- add r7, r7, #2
- add r0, r0, r1
- str r0, [sp, #0x10]
- ldrb r0, [r0, #0x10]
- str r0, [sp, #8]
- add r0, r2, r1
- ldr r6, [sp, #8]
- add r0, #0x30
- strb r6, [r0]
- ldr r0, [sp, #0x10]
- add r6, r2, r1
- ldrb r0, [r0, #0x14]
- str r6, [sp, #4]
- add r6, #0x34
- str r0, [sp, #0xc]
- strb r0, [r6]
- ldr r0, [sp, #0x10]
- str r6, [sp, #4]
- add r6, r2, r1
- ldrb r0, [r0, #0x18]
- add r6, #0x38
- add r1, r1, #1
- strb r0, [r6]
- ldr r0, [r4, #0x1c]
- add r4, r4, #4
- str r0, [r5, #0x3c]
- add r5, r5, #4
- cmp r1, #4
- blt _0224DA92
- ldr r0, _0224DAE4 ; =MOD11_0224FD90
- add r1, r2, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_0224DAE4: .word MOD11_0224FD90
-
- thumb_func_start MOD11_0224DAE8
-MOD11_0224DAE8: ; 0x0224DAE8
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r5, r1, #0
- mov r0, #5
- mov r1, #0x10
- add r6, r2, #0
- bl AllocFromHeap
- add r4, r0, #0
- str r7, [r4]
- ldr r0, [r5, #0x20]
- str r0, [r4, #4]
- ldrb r0, [r6]
- strb r0, [r4, #8]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r5, r0]
- add r0, r0, #1
- strb r1, [r4, #9]
- ldrb r0, [r5, r0]
- mov r1, #0
- add r3, r1, #0
- strb r0, [r4, #0xa]
- strb r1, [r4, #0xb]
- ldrb r0, [r6, #1]
- strb r0, [r4, #0xc]
- ldrh r0, [r6, #2]
- lsl r2, r0, #1
- ldr r0, _0224DB44 ; =0x0225E84A
- ldrh r0, [r0, r2]
- mov r2, #0x10
- str r0, [sp]
- ldr r0, [r4, #4]
- bl FUN_02007E68
- ldr r0, [r4, #4]
- mov r1, #0x2d
- mov r2, #1
- bl FUN_02007558
- ldr r0, _0224DB48 ; =MOD11_0224FFF0
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224DB44: .word 0x0225E84A
-_0224DB48: .word MOD11_0224FFF0
-
- thumb_func_start MOD11_0224DB4C
-MOD11_0224DB4C: ; 0x0224DB4C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x40
- add r6, r0, #0
- add r5, r1, #0
- str r2, [sp, #0x24]
- bl MOD11_02230068
- str r0, [sp, #0x2c]
- mov r0, #5
- mov r1, #0x24
- bl AllocFromHeap
- add r4, r0, #0
- mov r2, #0
- ldr r0, _0224DCCC ; =0x00000195
- strb r2, [r4, #0x12]
- ldrb r0, [r5, r0]
- mov r1, #1
- tst r0, r1
- beq _0224DB9C
- mov r0, #2
- strb r0, [r4, #0x13]
- add r0, r6, #0
- bl MOD11_02230088
- str r0, [r4, #8]
- ldr r1, _0224DCCC ; =0x00000195
- ldr r0, [r0]
- ldrb r2, [r5, r1]
- mov r1, #1
- and r2, r1
- add r3, r2, #0
- mov r1, #6
- mul r3, r1
- ldr r1, _0224DCD0 ; =0x0222D550
- mov r2, #0x58
- ldrsh r1, [r1, r3]
- bl FUN_0200C714
- b _0224DBC2
-_0224DB9C:
- add r0, r6, #0
- add r1, r2, #0
- strb r2, [r4, #0x13]
- bl MOD11_02230088
- str r0, [r4, #8]
- ldr r1, _0224DCCC ; =0x00000195
- ldr r0, [r0]
- ldrb r2, [r5, r1]
- mov r1, #1
- and r2, r1
- add r3, r2, #0
- mov r1, #6
- mul r3, r1
- ldr r1, _0224DCD0 ; =0x0222D550
- mov r2, #0x88
- ldrsh r1, [r1, r3]
- bl FUN_0200C714
-_0224DBC2:
- add r0, r6, #0
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _0224DBE4
- add r0, r6, #0
- bl MOD11_0222FF74
- mov r1, #0x10
- tst r0, r1
- beq _0224DBEC
- ldr r0, _0224DCCC ; =0x00000195
- ldrb r1, [r5, r0]
- mov r0, #1
- tst r0, r1
- beq _0224DBEC
-_0224DBE4:
- ldr r0, _0224DCCC ; =0x00000195
- ldrb r0, [r5, r0]
- str r0, [sp, #0x28]
- b _0224DBF6
-_0224DBEC:
- ldr r0, _0224DCCC ; =0x00000195
- ldrb r1, [r5, r0]
- mov r0, #1
- and r0, r1
- str r0, [sp, #0x28]
-_0224DBF6:
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- add r0, r6, #0
- bl MOD11_0223021C
- add r3, r0, #0
- ldr r1, [sp, #0x24]
- lsl r3, r3, #0x18
- ldrh r1, [r1, #2]
- ldrb r2, [r4, #0x13]
- add r0, sp, #0x30
- lsr r3, r3, #0x18
- bl FUN_02068FE0
- ldr r0, [sp, #0x28]
- mov r1, #6
- add r7, r0, #0
- mul r7, r1
- ldr r0, _0224DCD4 ; =0x0222D552
- mov r1, #0
- ldrsh r0, [r0, r7]
- ldr r3, _0224DCD0 ; =0x0222D550
- add r2, sp, #0x30
- str r0, [sp]
- ldr r0, _0224DCD8 ; =0x0222D554
- ldrsh r3, [r3, r7]
- ldrsh r0, [r0, r7]
- str r0, [sp, #4]
- str r1, [sp, #8]
- str r1, [sp, #0xc]
- str r1, [sp, #0x10]
- mov r0, #0x65
- str r1, [sp, #0x14]
- lsl r0, r0, #2
- ldrb r0, [r5, r0]
- str r0, [sp, #0x18]
- str r1, [sp, #0x1c]
- str r1, [sp, #0x20]
- ldr r1, [sp, #0x2c]
- add r0, r6, #0
- bl MOD11_02253A88
- str r0, [r5, #0x1c]
- str r0, [r4, #4]
- ldrb r0, [r4, #0x13]
- cmp r0, #0
- bne _0224DC80
- add r0, r6, #0
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- bne _0224DC80
- ldr r0, [sp, #0x24]
- ldrh r0, [r0, #2]
- bl FUN_0206AA30
- ldr r3, _0224DCCC ; =0x00000195
- add r2, r0, #0
- ldrb r3, [r5, r3]
- ldr r1, [sp, #0x28]
- add r0, r6, #0
- asr r3, r3, #1
- bl MOD11_02254308
- str r0, [r5, #0x18]
- str r0, [r4, #0xc]
-_0224DC80:
- ldr r0, [sp, #0x28]
- lsl r1, r0, #2
- ldr r0, _0224DCDC ; =0x0222D538
- ldrsh r0, [r0, r1]
- strh r0, [r4, #0x14]
- ldr r0, [sp, #0x24]
- str r6, [r4]
- ldrb r0, [r0]
- strb r0, [r4, #0x10]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r5, r0]
- add r0, r0, #1
- strb r1, [r4, #0x11]
- ldrb r0, [r5, r0]
- str r0, [r4, #0x18]
- mov r0, #0
- str r0, [r4, #0x20]
- ldr r0, [r4, #0x18]
- cmp r0, #0
- beq _0224DCAE
- cmp r0, #2
- bne _0224DCBE
-_0224DCAE:
- add r0, r6, #0
- bl MOD11_0222FF68
- mov r1, #3
- mov r2, #2
- mov r3, #0x84
- bl FUN_020179E0
-_0224DCBE:
- ldr r0, _0224DCE0 ; =MOD11_02250060
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x40
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224DCCC: .word 0x00000195
-_0224DCD0: .word 0x0222D550
-_0224DCD4: .word 0x0222D552
-_0224DCD8: .word 0x0222D554
-_0224DCDC: .word 0x0222D538
-_0224DCE0: .word MOD11_02250060
-
- thumb_func_start MOD11_0224DCE4
-MOD11_0224DCE4: ; 0x0224DCE4
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r5, r1, #0
- mov r0, #5
- mov r1, #0x1c
- add r6, r2, #0
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4, #0xa]
- str r7, [r4]
- ldrb r1, [r6]
- strb r1, [r4, #8]
- ldrb r1, [r6, #1]
- str r1, [r4, #0x10]
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r2, [r5, r1]
- strb r2, [r4, #9]
- str r5, [r4, #4]
- add r2, r1, #1
- ldrb r3, [r5, r2]
- mov r2, #1
- tst r2, r3
- beq _0224DD1E
- mov r1, #2
- strb r1, [r4, #0xb]
- b _0224DD30
-_0224DD1E:
- ldrb r1, [r5, r1]
- add r0, r7, #0
- bl MOD11_02230188
- mov r1, #0
- strb r1, [r4, #0xb]
- ldrb r0, [r0, #1]
- bl FUN_0206AA30
-_0224DD30:
- str r0, [r4, #0xc]
- ldr r0, _0224DD40 ; =MOD11_02250338
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224DD40: .word MOD11_02250338
-
- thumb_func_start MOD11_0224DD44
-MOD11_0224DD44: ; 0x0224DD44
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #0x10
- bl AllocFromHeap
- add r1, r0, #0
- mov r0, #0
- strb r0, [r1, #0xa]
- add r2, r4, #0
- str r5, [r1]
- add r2, #0x94
- ldrb r2, [r2]
- strb r2, [r1, #8]
- mov r2, #0x65
- lsl r2, r2, #2
- ldrb r3, [r4, r2]
- add r2, r2, #1
- strb r3, [r1, #9]
- str r4, [r1, #4]
- ldrb r3, [r4, r2]
- mov r2, #1
- tst r2, r3
- beq _0224DD7A
- mov r0, #2
- b _0224DD7A
-_0224DD7A:
- strb r0, [r1, #0xb]
- ldr r0, _0224DD88 ; =MOD11_022508A4
- mov r2, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, pc}
- nop
-_0224DD88: .word MOD11_022508A4
-
- thumb_func_start MOD11_0224DD8C
-MOD11_0224DD8C: ; 0x0224DD8C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- str r0, [sp, #0x10]
- add r5, r1, #0
- add r7, r2, #0
- bl MOD11_02230068
- str r0, [sp, #0x14]
- mov r0, #5
- mov r1, #0x10
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #0
- ldr r1, _0224DE38 ; =0x00000195
- strb r0, [r4, #0xa]
- ldrb r2, [r5, r1]
- mov r1, #1
- tst r1, r2
- beq _0224DDB8
- mov r0, #2
- b _0224DDB8
-_0224DDB8:
- mov r1, #0x65
- strb r0, [r4, #0xb]
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- ldr r0, [sp, #0x10]
- bl MOD11_0223021C
- add r3, r0, #0
- lsl r3, r3, #0x18
- ldrh r1, [r7, #2]
- ldrb r2, [r4, #0xb]
- add r0, sp, #0x18
- lsr r3, r3, #0x18
- bl FUN_02068FE0
- ldr r0, _0224DE38 ; =0x00000195
- mov r1, #6
- ldrb r2, [r5, r0]
- sub r0, r0, #1
- ldr r3, _0224DE3C ; =0x0222D576
- add r6, r2, #0
- mul r6, r1
- ldr r1, _0224DE40 ; =0x0222D578
- ldr r2, _0224DE44 ; =0x0222D574
- ldrsh r1, [r1, r6]
- ldrsh r2, [r2, r6]
- ldrsh r3, [r3, r6]
- str r1, [sp]
- ldrb r0, [r5, r0]
- add r1, sp, #0x18
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x14]
- bl FUN_020073A0
- str r0, [r5, #0x1c]
- str r0, [r4, #4]
- ldr r0, _0224DE38 ; =0x00000195
- ldr r2, _0224DE48 ; =0x0222D538
- ldrb r1, [r5, r0]
- sub r0, r0, #1
- lsl r1, r1, #0x1f
- lsr r3, r1, #0x1d
- ldr r1, [r7, #4]
- add r2, r2, r3
- lsl r1, r1, #1
- ldrsh r1, [r1, r2]
- mov r2, #0
- strh r1, [r4, #0xc]
- ldr r1, [sp, #0x10]
- str r1, [r4]
- ldrb r1, [r7]
- strb r1, [r4, #8]
- ldrb r0, [r5, r0]
- add r1, r4, #0
- strb r0, [r4, #9]
- ldr r0, _0224DE4C ; =MOD11_0225092C
- bl FUN_0200CA44
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224DE38: .word 0x00000195
-_0224DE3C: .word 0x0222D576
-_0224DE40: .word 0x0222D578
-_0224DE44: .word 0x0222D574
-_0224DE48: .word 0x0222D538
-_0224DE4C: .word MOD11_0225092C
-
- thumb_func_start MOD11_0224DE50
-MOD11_0224DE50: ; 0x0224DE50
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r4, r6, #0
- add r4, #0x28
- add r7, r0, #0
- add r5, r2, #0
- mov r0, #0
- add r1, r4, #0
- mov r2, #1
- bl MIi_CpuClearFast
- mov r0, #0x65
- str r7, [r4, #0xc]
- lsl r0, r0, #2
- ldrb r1, [r6, r0]
- add r0, r4, #0
- add r0, #0x24
- strb r1, [r0]
- add r0, r7, #0
- bl MOD11_0222FF74
- add r1, r0, #0
- ldr r0, _0224DF10 ; =0x00000195
- ldrb r0, [r6, r0]
- bl MOD11_02257F6C
- add r1, r4, #0
- add r1, #0x25
- strb r0, [r1]
- add r0, r4, #0
- ldrb r1, [r5]
- add r0, #0x4c
- strb r1, [r0]
- mov r0, #2
- ldrsh r0, [r5, r0]
- str r0, [r4, #0x28]
- ldrh r0, [r5, #4]
- str r0, [r4, #0x2c]
- add r0, r4, #0
- ldrb r1, [r5, #1]
- add r0, #0x48
- strb r1, [r0]
- ldrb r0, [r5, #7]
- lsl r0, r0, #0x19
- lsr r1, r0, #0x1e
- add r0, r4, #0
- add r0, #0x49
- strb r1, [r0]
- mov r1, #0
- str r1, [r4, #0x30]
- ldr r0, [r5, #8]
- str r0, [r4, #0x38]
- ldr r0, [r5, #0xc]
- str r0, [r4, #0x3c]
- add r0, r4, #0
- ldrb r2, [r5, #6]
- add r0, #0x26
- strb r2, [r0]
- ldrb r0, [r5, #7]
- lsl r0, r0, #0x1b
- lsr r2, r0, #0x1b
- add r0, r4, #0
- add r0, #0x4a
- strb r2, [r0]
- ldrb r0, [r5, #7]
- lsl r0, r0, #0x18
- lsr r2, r0, #0x1f
- add r0, r4, #0
- add r0, #0x4b
- strb r2, [r0]
- add r0, r4, #0
- ldrb r2, [r5, #0x14]
- add r0, #0x4d
- strb r2, [r0]
- add r0, r4, #0
- ldr r2, [r5, #0x10]
- add r0, #0x27
- strb r2, [r0]
- add r0, r4, #0
- bl MOD11_022572AC
- mov r2, #0
- ldr r1, [r4, #0x28]
- add r0, r4, #0
- mvn r2, r2
- bl MOD11_02256D70
- mov r2, #0xfa
- ldr r0, _0224DF14 ; =MOD11_022509B4
- add r1, r4, #0
- lsl r2, r2, #2
- bl FUN_0200CA44
- str r0, [r4, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224DF10: .word 0x00000195
-_0224DF14: .word MOD11_022509B4
-
- thumb_func_start MOD11_0224DF18
-MOD11_0224DF18: ; 0x0224DF18
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r4, r5, #0
- add r4, #0x28
- add r6, r0, #0
- mov r0, #0
- add r1, r4, #0
- mov r2, #1
- bl MIi_CpuClearFast
- mov r0, #0x65
- str r6, [r4, #0xc]
- lsl r0, r0, #2
- ldrb r1, [r5, r0]
- add r0, r4, #0
- add r0, #0x24
- strb r1, [r0]
- add r5, #0x94
- add r0, r4, #0
- ldrb r1, [r5]
- add r0, #0x4c
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_02257334
- mov r2, #0xfa
- ldr r0, _0224DF5C ; =MOD11_02250A28
- add r1, r4, #0
- lsl r2, r2, #2
- bl FUN_0200CA44
- str r0, [r4, #0x10]
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0224DF5C: .word MOD11_02250A28
-
- thumb_func_start MOD11_0224DF60
-MOD11_0224DF60: ; 0x0224DF60
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- str r1, [sp]
- mov r0, #5
- mov r1, #0x3c
- add r5, r2, #0
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #0
- add r1, r4, #0
- mov r2, #0x3c
- bl MIi_CpuClearFast
- mov r7, #0
- strb r7, [r4, #0xa]
- strb r7, [r4, #0xb]
- str r6, [r4]
- ldrb r0, [r5]
- mov r1, #0x65
- lsl r1, r1, #2
- strb r0, [r4, #8]
- ldr r0, [sp]
- add r3, r5, #0
- ldrb r0, [r0, r1]
- add r1, r1, #1
- add r6, r4, #0
- strb r0, [r4, #9]
- ldr r0, [sp]
- ldrb r1, [r0, r1]
- add r0, r4, #0
- add r0, #0x34
- strb r1, [r0]
- ldr r0, [sp]
- add r0, #0x28
- str r0, [r4, #4]
- add r0, r4, #0
- ldrb r1, [r5, #1]
- add r0, #0x23
- strb r1, [r0]
- mov r0, #0x24
- ldrsh r0, [r5, r0]
- strh r0, [r4, #0x36]
- ldrh r0, [r5, #0x26]
- strh r0, [r4, #0x38]
- add r0, r5, #0
- add r0, #0x28
- ldrb r1, [r0]
- add r0, r4, #0
- add r0, #0x3a
- strb r1, [r0]
-_0224DFC6:
- mov r2, #0
-_0224DFC8:
- add r0, r3, r2
- ldrb r1, [r0, #8]
- add r0, r6, r2
- add r2, r2, #1
- strb r1, [r0, #0x10]
- cmp r2, #6
- blt _0224DFC8
- add r7, r7, #1
- add r3, r3, #6
- add r6, r6, #6
- cmp r7, #2
- blt _0224DFC6
- mov r0, #0
- add r3, r0, #0
-_0224DFE4:
- add r2, r5, r0
- ldrb r1, [r2, #8]
- cmp r1, #2
- bne _0224DFF2
- add r1, r4, r0
- strb r3, [r1, #0x1c]
- b _0224DFF8
-_0224DFF2:
- ldrb r2, [r2, #2]
- add r1, r4, r0
- strb r2, [r1, #0x1c]
-_0224DFF8:
- add r0, r0, #1
- cmp r0, #6
- blt _0224DFE4
- mov r2, #0
- add r3, r5, #0
- add r6, r4, #0
-_0224E004:
- ldrh r0, [r3, #0x14]
- add r7, r4, r2
- add r1, r5, r2
- strh r0, [r6, #0x24]
- ldrb r0, [r1, #0x1c]
- add r7, #0x2c
- add r1, #0x20
- strb r0, [r7]
- add r0, r4, r2
- ldrb r1, [r1]
- add r0, #0x30
- add r2, r2, #1
- strb r1, [r0]
- add r3, r3, #2
- add r6, r6, #2
- cmp r2, #4
- blt _0224E004
- ldr r0, [sp]
- add r1, r4, #0
- ldr r0, [r0]
- mov r2, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0224E034
-MOD11_0224E034: ; 0x0224E034
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- str r1, [sp]
- mov r0, #5
- mov r1, #0x24
- add r7, r2, #0
- bl AllocFromHeap
- add r3, r0, #0
- mov r1, #0x65
- mov r4, #0
- add r0, #0x20
- strb r4, [r0]
- ldr r0, [sp]
- str r5, [r3]
- add r0, #0x94
- ldrb r0, [r0]
- lsl r1, r1, #2
- add r5, r7, #0
- strb r0, [r3, #0x1c]
- ldr r0, [sp]
- add r6, r3, #0
- ldrb r0, [r0, r1]
- add r1, r1, #1
- strb r0, [r3, #0x1d]
- ldr r0, [sp]
- ldrb r0, [r0, r1]
- strb r0, [r3, #0x1e]
- ldr r0, [sp]
- add r0, #0x28
- str r0, [r3, #4]
- ldrb r0, [r7, #1]
- strb r0, [r3, #0x1f]
-_0224E076:
- ldrh r0, [r5, #4]
- add r2, r7, r4
- add r1, r3, r4
- strh r0, [r6, #0xc]
- ldrb r0, [r2, #0xc]
- add r4, r4, #1
- add r5, r5, #2
- strb r0, [r1, #0x14]
- ldrb r0, [r2, #0x10]
- add r6, r6, #2
- cmp r4, #4
- strb r0, [r1, #0x18]
- blt _0224E076
- ldrh r0, [r7, #2]
- add r1, r3, #0
- mov r2, #0
- strh r0, [r3, #0x22]
- ldr r0, [sp]
- ldr r0, [r0, #4]
- bl FUN_0200CA44
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224E0A4
-MOD11_0224E0A4: ; 0x0224E0A4
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- str r0, [sp]
- add r7, r1, #0
- mov r0, #5
- mov r1, #0x34
- add r5, r2, #0
- bl AllocFromHeap
- add r6, r0, #0
- mov r0, #0
- strb r0, [r6, #0xf]
- ldr r0, [sp]
- str r0, [r6]
- add r0, r7, #0
- add r0, #0x94
- ldrb r0, [r0]
- strb r0, [r6, #0xc]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r7, r0]
- add r0, r0, #1
- strb r1, [r6, #0xd]
- ldrb r0, [r7, r0]
- strb r0, [r6, #0xe]
- ldrh r0, [r5, #2]
- strh r0, [r6, #0x30]
- add r0, r7, #0
- add r0, #0x28
- str r0, [r6, #4]
- add r0, r6, #0
- ldrb r1, [r5, #1]
- add r0, #0x32
- strb r1, [r0]
- ldr r0, [sp]
- add r1, sp, #4
- bl MOD11_02231504
- ldr r0, [sp]
- bl MOD11_0222FF84
- add r4, r0, #0
- ldr r0, [sp]
- bl MOD11_0222FF74
- mov r0, #0
- cmp r4, #0
- ble _0224E120
- add r1, r6, #0
-_0224E106:
- ldrh r2, [r5, #4]
- add r0, r0, #1
- strh r2, [r1, #0x10]
- ldrh r2, [r5, #6]
- strh r2, [r1, #0x12]
- ldrh r2, [r5, #8]
- strh r2, [r1, #0x14]
- ldrh r2, [r5, #0xa]
- add r5, #8
- strh r2, [r1, #0x16]
- add r1, #8
- cmp r0, r4
- blt _0224E106
-_0224E120:
- ldr r0, [r7, #8]
- add r1, r6, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224E130
-MOD11_0224E130: ; 0x0224E130
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- str r1, [sp]
- mov r0, #5
- mov r1, #0x34
- str r2, [sp, #4]
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #5
- mov r1, #0x34
- bl AllocFromHeap
- str r0, [r4, #8]
- mov r0, #5
- mov r1, #0x38
- bl AllocFromHeap
- ldr r1, [r4, #8]
- str r0, [r1, #4]
- mov r0, #5
- bl FUN_0206B8AC
- ldr r1, [r4, #8]
- mov r6, #0
- ldr r1, [r1, #4]
- ldr r3, [sp, #4]
- str r0, [r1]
- strb r6, [r4, #0xe]
- str r5, [r4]
- ldr r0, [sp, #4]
- mov r1, #0x65
- ldrb r0, [r0]
- lsl r1, r1, #2
- add r5, r4, #0
- strb r0, [r4, #0xc]
- ldr r0, [sp]
- ldrb r0, [r0, r1]
- add r1, r1, #1
- strb r0, [r4, #0xd]
- ldr r0, [sp]
- ldrb r0, [r0, r1]
- strb r0, [r4, #0xf]
- ldr r0, [sp, #4]
- ldrb r0, [r0, #1]
- strb r0, [r4, #0x14]
- ldr r0, [sp, #4]
- ldrb r0, [r0, #2]
- strb r0, [r4, #0x15]
- ldr r0, [sp, #4]
- ldrb r0, [r0, #3]
- strb r0, [r4, #0x16]
-_0224E19A:
- ldr r0, [sp, #4]
- ldr r1, [r4, #8]
- add r7, r0, r6
- ldrb r0, [r7, #4]
- add r1, r1, r6
- mov r2, #0
- strb r0, [r1, #0xc]
-_0224E1A8:
- add r0, r3, r2
- ldrb r1, [r0, #8]
- add r0, r5, r2
- add r2, r2, #1
- strb r1, [r0, #0x18]
- cmp r2, #6
- blt _0224E1A8
- add r7, #0x20
- ldrb r1, [r7]
- add r0, r4, r6
- add r0, #0x30
- add r6, r6, #1
- strb r1, [r0]
- add r3, r3, #6
- add r5, r5, #6
- cmp r6, #4
- blt _0224E19A
- ldr r0, [sp]
- add r1, r4, #0
- ldr r0, [r0, #0xc]
- mov r2, #0
- bl FUN_0200CA44
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224E1DC
-MOD11_0224E1DC: ; 0x0224E1DC
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- str r1, [sp]
- mov r0, #5
- mov r1, #0x34
- add r7, r2, #0
- bl AllocFromHeap
- add r2, r0, #0
- mov r3, #0
- strb r3, [r2, #0xa]
- str r4, [r2]
- ldrb r0, [r7]
- add r5, r7, #0
- add r6, r2, #0
- strb r0, [r2, #8]
- ldrb r0, [r7, #1]
- strb r0, [r2, #9]
- ldrb r0, [r7, #2]
- strb r0, [r2, #0xb]
- ldr r0, [r7, #0x20]
- str r0, [r2, #0x10]
- ldrb r0, [r7, #3]
- strb r0, [r2, #0x16]
- add r0, r7, #0
- strh r3, [r2, #0x14]
- add r0, #0x24
- ldrb r0, [r0]
- strb r0, [r2, #0x18]
-_0224E216:
- add r0, r7, r3
- ldrb r1, [r0, #4]
- add r0, r2, r3
- mov r4, #0
- strb r1, [r0, #0xc]
-_0224E220:
- add r0, r5, r4
- ldrb r1, [r0, #8]
- add r0, r6, r4
- add r4, r4, #1
- strb r1, [r0, #0x1c]
- cmp r4, #6
- blt _0224E220
- add r3, r3, #1
- add r5, r5, #6
- add r6, r6, #6
- cmp r3, #4
- blt _0224E216
- ldr r0, [sp]
- add r1, r2, #0
- ldr r0, [r0, #0x10]
- mov r2, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224E248
-MOD11_0224E248: ; 0x0224E248
- push {r4, r5, r6, lr}
- add r6, r0, #0
- add r5, r1, #0
- mov r0, #5
- mov r1, #0x1c
- add r4, r2, #0
- bl AllocFromHeap
- add r1, r0, #0
- mov r2, #0
- strb r2, [r1, #0xe]
- str r6, [r1]
- ldrb r0, [r4]
- strb r0, [r1, #0xc]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r5, r0]
- strb r0, [r1, #0xd]
- add r0, r5, #0
- add r0, #0x28
- str r0, [r1, #4]
- ldrh r0, [r4, #2]
- str r0, [r1, #0x10]
- ldrb r0, [r4, #1]
- strb r0, [r1, #0xf]
- ldr r0, [r4, #4]
- strh r0, [r1, #0x18]
- ldr r0, [r4, #8]
- str r0, [r1, #0x14]
- ldr r0, [r5, #0x14]
- bl FUN_0200CA44
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224E28C
-MOD11_0224E28C: ; 0x0224E28C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- add r6, r0, #0
- add r7, r1, #0
- add r5, r2, #0
- bl MOD11_022300C8
- str r0, [sp]
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- str r6, [r4]
- ldrb r0, [r5]
- mov r1, #0x65
- lsl r1, r1, #2
- strb r0, [r4, #4]
- ldrb r0, [r7, r1]
- strb r0, [r4, #5]
- ldrh r2, [r5, #2]
- lsl r0, r2, #1
- add r2, r2, r0
- add r0, sp, #4
- strh r2, [r0, #2]
- mov r2, #2
- strb r2, [r0, #1]
- ldrb r0, [r5, #1]
- ldrb r1, [r7, r1]
- lsl r0, r0, #8
- orr r0, r1
- str r0, [sp, #8]
- add r0, r6, #0
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r1, [sp]
- add r0, r6, #0
- add r2, sp, #4
- bl MOD11_0223178C
- strb r0, [r4, #6]
- ldr r0, _0224E2F0 ; =MOD11_02253008
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224E2F0: .word MOD11_02253008
-
- thumb_func_start MOD11_0224E2F4
-MOD11_0224E2F4: ; 0x0224E2F4
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r6, r1, #0
- add r7, r2, #0
- bl MOD11_022300C4
- str r0, [sp]
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- add r0, r6, #0
- str r5, [r4]
- add r0, #0x94
- ldrb r0, [r0]
- strb r0, [r4, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r6, r0]
- strb r0, [r4, #5]
- add r0, r5, #0
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r1, [sp]
- add r0, r5, #0
- add r2, r7, #0
- bl MOD11_0223178C
- strb r0, [r4, #6]
- ldr r0, _0224E340 ; =MOD11_02253008
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224E340: .word MOD11_02253008
-
- thumb_func_start MOD11_0224E344
-MOD11_0224E344: ; 0x0224E344
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r6, r1, #0
- mov r0, #5
- mov r1, #0x70
- add r5, r2, #0
- bl AllocFromHeap
- add r4, r0, #0
- mov r1, #0
- add r0, #0x6a
- strb r1, [r0]
- str r7, [r4]
- add r0, r6, #0
- str r6, [r4, #4]
- add r0, #0x94
- ldrb r1, [r0]
- add r0, r4, #0
- add r0, #0x68
- strb r1, [r0]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r6, r0]
- add r0, r4, #0
- add r0, #0x69
- strb r1, [r0]
- add r0, r7, #0
- bl MOD11_02230070
- add r3, r4, #0
- str r0, [r4, #0xc]
- add r7, r5, #0
- add r3, #0x10
- mov r2, #0xb
-_0224E388:
- ldmia r7!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0224E388
- ldr r0, [r6, #0x20]
- str r0, [r4, #8]
- ldr r0, [r5, #0x4c]
- cmp r0, #1
- bne _0224E3A8
- ldr r0, [r5, #0x50]
- cmp r0, #0x19
- bne _0224E3A8
- mov r0, #0x1a
- mov r1, #1
- lsl r0, r0, #4
- str r1, [r6, r0]
-_0224E3A8:
- ldr r0, [r5, #0x4c]
- cmp r0, #1
- bne _0224E3BC
- ldr r0, [r5, #0x50]
- cmp r0, #0x1a
- bne _0224E3BC
- mov r0, #0x1a
- mov r1, #0
- lsl r0, r0, #4
- str r1, [r6, r0]
-_0224E3BC:
- ldrh r0, [r5, #2]
- add r1, r4, #0
- add r1, #0x6c
- str r0, [sp]
- add r0, r4, #0
- ldr r2, [r5, #0x4c]
- ldr r3, [r5, #0x50]
- add r0, #0x6b
- bl MOD11_022545B4
- ldr r0, _0224E3DC ; =MOD11_02252754
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224E3DC: .word MOD11_02252754
-
- thumb_func_start MOD11_0224E3E0
-MOD11_0224E3E0: ; 0x0224E3E0
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #0xc
- bl AllocFromHeap
- add r1, r0, #0
- mov r2, #0
- strb r2, [r1, #9]
- str r5, [r1]
- ldr r0, [r4, #0x20]
- str r0, [r1, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r4, r0]
- strb r0, [r1, #8]
- ldr r0, _0224E40C ; =MOD11_022529C0
- strb r2, [r1, #0xa]
- bl FUN_0200CA44
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0224E40C: .word MOD11_022529C0
-
- thumb_func_start MOD11_0224E410
-MOD11_0224E410: ; 0x0224E410
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r7, r0, #0
- ldr r0, [r6, #0x2c]
- add r5, r2, #0
- cmp r0, #0
- bne _0224E422
- bl ErrorHandling
-_0224E422:
- add r4, r6, #0
- add r4, #0x28
- add r0, r4, #0
- mov r1, #0
- mov r2, #1
- bl MI_CpuFill8
- str r7, [r4, #0xc]
- add r0, r4, #0
- ldrb r1, [r5]
- add r0, #0x4c
- strb r1, [r0]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r6, r0]
- add r0, r4, #0
- add r0, #0x24
- strb r1, [r0]
- add r0, r7, #0
- bl MOD11_0222FF74
- add r1, r0, #0
- ldr r0, _0224E490 ; =0x00000195
- ldrb r0, [r6, r0]
- bl MOD11_02257F6C
- add r1, r4, #0
- add r1, #0x25
- strb r0, [r1]
- mov r0, #2
- ldrsh r0, [r5, r0]
- str r0, [r4, #0x28]
- ldrh r0, [r5, #4]
- str r0, [r4, #0x2c]
- ldr r0, [r5, #8]
- str r0, [r4, #0x30]
- add r0, r4, #0
- ldrb r1, [r5, #1]
- add r0, #0x48
- strb r1, [r0]
- ldr r1, [r5, #8]
- ldr r0, _0224E494 ; =0x00007FFF
- cmp r1, r0
- bne _0224E480
- mov r0, #0
- str r0, [r4, #0x28]
- str r0, [r4, #0x30]
-_0224E480:
- mov r2, #0xfa
- ldr r0, _0224E498 ; =MOD11_02252A1C
- add r1, r4, #0
- lsl r2, r2, #2
- bl FUN_0200CA44
- str r0, [r4, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224E490: .word 0x00000195
-_0224E494: .word 0x00007FFF
-_0224E498: .word MOD11_02252A1C
-
- thumb_func_start MOD11_0224E49C
-MOD11_0224E49C: ; 0x0224E49C
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r7, r0, #0
- ldr r0, [r6, #0x2c]
- add r5, r2, #0
- cmp r0, #0
- bne _0224E4AE
- bl ErrorHandling
-_0224E4AE:
- add r4, r6, #0
- add r4, #0x28
- add r0, r4, #0
- mov r1, #0
- mov r2, #1
- bl MI_CpuFill8
- str r7, [r4, #0xc]
- add r0, r4, #0
- ldrb r1, [r5]
- add r0, #0x4c
- strb r1, [r0]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r2, [r6, r0]
- add r1, r4, #0
- add r1, #0x24
- strb r2, [r1]
- ldr r1, [r5, #4]
- add r0, r0, #1
- str r1, [r4, #0x38]
- ldr r1, [r5, #0xc]
- str r1, [r4, #0x3c]
- ldr r2, [r5, #8]
- ldr r1, [r4, #0x38]
- sub r1, r2, r1
- str r1, [r4, #0x40]
- ldrb r0, [r6, r0]
- cmp r0, #0
- bne _0224E4FA
- mov r2, #0xfa
- ldr r0, _0224E50C ; =MOD11_02252A70
- add r1, r4, #0
- lsl r2, r2, #2
- bl FUN_0200CA44
- str r0, [r4, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_0224E4FA:
- add r1, r4, #0
- ldr r0, [r4, #0xc]
- add r1, #0x24
- add r4, #0x4c
- ldrb r1, [r1]
- ldrb r2, [r4]
- bl MOD11_022567B8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224E50C: .word MOD11_02252A70
-
- thumb_func_start MOD11_0224E510
-MOD11_0224E510: ; 0x0224E510
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #0x74
- str r2, [sp]
- bl AllocFromHeap
- add r1, r0, #0
- ldr r0, _0224E5F0 ; =0x00000195
- ldrb r2, [r4, r0]
- mov r0, #1
- tst r0, r2
- beq _0224E532
- mov r2, #2
- b _0224E534
-_0224E532:
- mov r2, #0
-_0224E534:
- add r0, r1, #0
- add r0, #0x67
- strb r2, [r0]
- add r0, r1, #0
- mov r2, #0
- add r0, #0x66
- strb r2, [r0]
- str r5, [r1]
- ldr r0, [sp]
- str r4, [r1, #4]
- ldrb r3, [r0]
- add r0, r1, #0
- add r0, #0x64
- strb r3, [r0]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r3, [r4, r0]
- add r0, r1, #0
- add r0, #0x65
- strb r3, [r0]
- ldr r0, [r4, #0x20]
- add r7, r1, #0
- str r0, [r1, #8]
- ldr r0, [sp]
- add r5, r1, #0
- ldrh r3, [r0, #2]
- add r0, r1, #0
- add r0, #0x68
- strh r3, [r0]
- ldr r0, [sp]
- ldrb r3, [r0, #1]
- add r0, r1, #0
- add r0, #0x6a
- strb r3, [r0]
- ldr r0, [sp]
- ldrb r3, [r0, #8]
- add r0, r1, #0
- add r0, #0x6b
- strb r3, [r0]
- ldr r0, [sp]
- ldr r0, [r0, #4]
- str r0, [r1, #0x6c]
- ldr r0, [sp]
- ldrb r3, [r0, #9]
- add r0, r1, #0
- add r0, #0x70
- strh r3, [r0]
- ldr r0, [sp]
- ldrb r3, [r0, #0xa]
- add r0, r1, #0
- add r0, #0x72
- strh r3, [r0]
- ldr r3, [sp]
- add r4, r3, #0
-_0224E5A0:
- ldrh r0, [r3, #0xc]
- add r3, r3, #2
- strh r0, [r7, #0x24]
- ldr r0, [sp]
- add r7, r7, #2
- add r0, r0, r2
- str r0, [sp, #0x10]
- ldrb r0, [r0, #0x14]
- str r0, [sp, #8]
- add r0, r1, r2
- ldr r6, [sp, #8]
- add r0, #0x2c
- strb r6, [r0]
- ldr r0, [sp, #0x10]
- add r6, r1, r2
- ldrb r0, [r0, #0x18]
- str r6, [sp, #4]
- add r6, #0x30
- str r0, [sp, #0xc]
- strb r0, [r6]
- ldr r0, [sp, #0x10]
- str r6, [sp, #4]
- add r6, r1, r2
- ldrb r0, [r0, #0x1c]
- add r6, #0x34
- add r2, r2, #1
- strb r0, [r6]
- ldr r0, [r4, #0x20]
- add r4, r4, #4
- str r0, [r5, #0x38]
- add r5, r5, #4
- cmp r2, #4
- blt _0224E5A0
- ldr r0, _0224E5F4 ; =MOD11_02252B30
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_0224E5F0: .word 0x00000195
-_0224E5F4: .word MOD11_02252B30
-
- thumb_func_start MOD11_0224E5F8
-MOD11_0224E5F8: ; 0x0224E5F8
- push {r3, r4, r5, lr}
- add r5, r2, #0
- ldr r2, _0224E624 ; =0x00000195
- mov r4, #1
- ldrb r2, [r1, r2]
- tst r2, r4
- beq _0224E60A
- mov r4, #0x75
- b _0224E60C
-_0224E60A:
- sub r4, #0x76
-_0224E60C:
- mov r2, #0x65
- lsl r2, r2, #2
- ldrb r1, [r1, r2]
- ldrb r2, [r5]
- bl MOD11_022567B8
- ldrh r0, [r5, #2]
- add r1, r4, #0
- bl FUN_020054A8
- pop {r3, r4, r5, pc}
- nop
-_0224E624: .word 0x00000195
-
- thumb_func_start MOD11_0224E628
-MOD11_0224E628: ; 0x0224E628
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r1, r0, #0
- mov r2, #0
- strb r2, [r1, #6]
- add r0, r4, #0
- str r5, [r1]
- add r0, #0x94
- ldrb r0, [r0]
- strb r0, [r1, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r4, r0]
- strb r0, [r1, #5]
- ldr r0, _0224E658 ; =MOD11_02252DB4
- bl FUN_0200CA44
- pop {r3, r4, r5, pc}
- nop
-_0224E658: .word MOD11_02252DB4
-
- thumb_func_start MOD11_0224E65C
-MOD11_0224E65C: ; 0x0224E65C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #0x68
- str r2, [sp]
- bl AllocFromHeap
- add r1, r0, #0
- str r5, [r1]
- ldr r0, [sp]
- str r4, [r1, #4]
- ldrb r2, [r0]
- add r0, r1, #0
- add r0, #0x60
- strb r2, [r0]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r2, [r4, r0]
- add r0, r1, #0
- add r0, #0x61
- strb r2, [r0]
- add r0, r1, #0
- mov r2, #0
- add r0, #0x62
- strb r2, [r0]
- ldr r0, [sp]
- add r7, r1, #0
- ldrb r3, [r0, #1]
- add r0, r1, #0
- add r0, #0x63
- strb r3, [r0]
- ldr r0, [sp]
- ldr r3, [sp]
- ldrb r0, [r0, #2]
- add r4, r3, #0
- add r5, r1, #0
- str r0, [r1, #0x64]
-_0224E6AA:
- ldrh r0, [r3, #4]
- add r3, r3, #2
- strh r0, [r7, #0x20]
- ldr r0, [sp]
- add r7, r7, #2
- add r0, r0, r2
- str r0, [sp, #0x10]
- ldrb r0, [r0, #0xc]
- str r0, [sp, #8]
- add r0, r1, r2
- ldr r6, [sp, #8]
- add r0, #0x28
- strb r6, [r0]
- ldr r0, [sp, #0x10]
- add r6, r1, r2
- ldrb r0, [r0, #0x10]
- str r6, [sp, #4]
- add r6, #0x2c
- str r0, [sp, #0xc]
- strb r0, [r6]
- ldr r0, [sp, #0x10]
- str r6, [sp, #4]
- add r6, r1, r2
- ldrb r0, [r0, #0x14]
- add r6, #0x30
- add r2, r2, #1
- strb r0, [r6]
- ldr r0, [r4, #0x18]
- add r4, r4, #4
- str r0, [r5, #0x34]
- add r5, r5, #4
- cmp r2, #4
- blt _0224E6AA
- ldr r0, _0224E6F8 ; =MOD11_02252E50
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0224E6F8: .word MOD11_02252E50
-
- thumb_func_start MOD11_0224E6FC
-MOD11_0224E6FC: ; 0x0224E6FC
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- ldr r0, [r5, #0x2c]
- add r4, r2, #0
- cmp r0, #0
- bne _0224E70E
- bl ErrorHandling
-_0224E70E:
- ldrb r1, [r4, #1]
- add r0, r5, #0
- add r0, #0x72
- strb r1, [r0]
- add r0, r5, #0
- mov r2, #1
- ldr r1, [r5, #0x50]
- add r0, #0x28
- lsl r2, r2, #8
- bl MOD11_02256D70
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- ldrb r2, [r4]
- add r0, r6, #0
- bl MOD11_022567B8
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0224E734
-MOD11_0224E734: ; 0x0224E734
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- add r6, r0, #0
- add r7, r2, #0
- bl MOD11_02230140
- str r0, [sp, #4]
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- str r6, [r4]
- ldrb r0, [r7]
- strb r0, [r4, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r5, r0]
- strb r0, [r4, #5]
- add r0, r6, #0
- bl MOD11_02230E54
- str r0, [sp]
- mov r2, #0x65
- lsl r2, r2, #2
- ldrb r2, [r5, r2]
- ldrb r3, [r7, #1]
- ldr r1, [sp, #4]
- add r0, r6, #0
- bl MOD11_02231684
- strb r0, [r4, #6]
- ldr r0, _0224E78C ; =MOD11_02253008
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224E78C: .word MOD11_02253008
-
- thumb_func_start MOD11_0224E790
-MOD11_0224E790: ; 0x0224E790
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- add r5, r0, #0
- add r3, sp, #4
- add r6, r1, #0
- add r7, r2, #0
- bl MOD11_02253B74
- add r0, r5, #0
- bl MOD11_022300C4
- str r0, [sp]
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- ldrb r0, [r7]
- strb r0, [r4, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r6, r0]
- strb r0, [r4, #5]
- add r0, r5, #0
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r1, [sp]
- add r0, r5, #0
- add r2, sp, #4
- bl MOD11_0223178C
- strb r0, [r4, #6]
- ldr r0, _0224E7E4 ; =MOD11_02253008
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224E7E4: .word MOD11_02253008
-
- thumb_func_start MOD11_0224E7E8
-MOD11_0224E7E8: ; 0x0224E7E8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- add r5, r0, #0
- add r3, sp, #4
- add r6, r1, #0
- add r7, r2, #0
- bl MOD11_02253C48
- add r0, r5, #0
- bl MOD11_022300C4
- str r0, [sp]
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- ldrb r0, [r7]
- strb r0, [r4, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r6, r0]
- strb r0, [r4, #5]
- add r0, r5, #0
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r1, [sp]
- add r0, r5, #0
- add r2, sp, #4
- bl MOD11_0223178C
- strb r0, [r4, #6]
- ldr r0, _0224E83C ; =MOD11_02253008
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224E83C: .word MOD11_02253008
-
- thumb_func_start MOD11_0224E840
-MOD11_0224E840: ; 0x0224E840
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r0, #0
- add r2, sp, #0
- add r6, r1, #0
- bl MOD11_02253D28
- add r0, r5, #0
- bl MOD11_022300C4
- add r7, r0, #0
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- mov r0, #0x22
- strb r0, [r4, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r6, r0]
- strb r0, [r4, #5]
- add r0, r5, #0
- bl MOD11_02230E54
- add r3, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- add r2, sp, #0
- bl MOD11_0223178C
- strb r0, [r4, #6]
- ldr r0, _0224E890 ; =MOD11_02253008
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0224E890: .word MOD11_02253008
-
- thumb_func_start MOD11_0224E894
-MOD11_0224E894: ; 0x0224E894
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- add r5, r0, #0
- add r3, sp, #4
- add r6, r1, #0
- add r7, r2, #0
- bl MOD11_02253DD4
- add r0, r5, #0
- bl MOD11_022300C4
- str r0, [sp]
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- ldrb r0, [r7]
- strb r0, [r4, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r6, r0]
- strb r0, [r4, #5]
- add r0, r5, #0
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r1, [sp]
- add r0, r5, #0
- add r2, sp, #4
- bl MOD11_0223178C
- strb r0, [r4, #6]
- ldr r0, _0224E8E8 ; =MOD11_02253008
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224E8E8: .word MOD11_02253008
-
- thumb_func_start MOD11_0224E8EC
-MOD11_0224E8EC: ; 0x0224E8EC
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #0xc
- bl AllocFromHeap
- add r1, r0, #0
- add r0, r4, #0
- str r5, [r1]
- add r0, #0x94
- ldrb r0, [r0]
- mov r2, #0
- strb r0, [r1, #8]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r4, r0]
- add r4, #0x28
- strb r0, [r1, #9]
- strb r2, [r1, #0xa]
- ldr r0, _0224E920 ; =MOD11_02252FBC
- str r4, [r1, #4]
- bl FUN_0200CA44
- pop {r3, r4, r5, pc}
- nop
-_0224E920: .word MOD11_02252FBC
-
- thumb_func_start MOD11_0224E924
-MOD11_0224E924: ; 0x0224E924
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- ldr r1, _0224E9B8 ; =0x00000196
- add r4, r2, #0
- ldrb r2, [r5, r1]
- add r6, r0, #0
- cmp r2, #0
- bne _0224E976
- bl MOD11_022300C4
- str r0, [sp]
- mov r0, #5
- mov r1, #0xc
- bl AllocFromHeap
- add r7, r0, #0
- str r6, [r7]
- ldrb r0, [r4]
- strb r0, [r7, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r5, r0]
- strb r0, [r7, #5]
- mov r0, #0
- strb r0, [r7, #7]
- add r0, r6, #0
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r1, [sp]
- add r0, r6, #0
- add r2, r4, #4
- bl MOD11_0223178C
- strb r0, [r7, #6]
- ldr r0, _0224E9BC ; =MOD11_0225304C
- add r1, r7, #0
- mov r2, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, r6, r7, pc}
-_0224E976:
- cmp r2, #1
- bne _0224E992
- sub r1, r1, #2
- ldrb r1, [r5, r1]
- bl MOD11_02256004
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- ldrb r2, [r4]
- add r0, r6, #0
- bl MOD11_022567B8
- pop {r3, r4, r5, r6, r7, pc}
-_0224E992:
- bl MOD11_0222FF74
- mov r1, #4
- tst r0, r1
- bne _0224E9A8
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- add r0, r6, #0
- bl MOD11_02256004
-_0224E9A8:
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- ldrb r2, [r4]
- add r0, r6, #0
- bl MOD11_022567B8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224E9B8: .word 0x00000196
-_0224E9BC: .word MOD11_0225304C
-
- thumb_func_start MOD11_0224E9C0
-MOD11_0224E9C0: ; 0x0224E9C0
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r4, r6, #0
- add r4, #0x28
- add r7, r0, #0
- add r5, r2, #0
- mov r0, #0
- add r1, r4, #0
- mov r2, #1
- bl MIi_CpuClearFast
- mov r0, #0x65
- str r7, [r4, #0xc]
- lsl r0, r0, #2
- ldrb r1, [r6, r0]
- add r0, r4, #0
- add r0, #0x24
- strb r1, [r0]
- add r0, r7, #0
- bl MOD11_0222FF74
- add r1, r0, #0
- ldr r0, _0224EA70 ; =0x00000195
- ldrb r0, [r6, r0]
- bl MOD11_02257F6C
- add r1, r4, #0
- add r1, #0x25
- strb r0, [r1]
- add r0, r4, #0
- ldrb r1, [r5]
- add r0, #0x4c
- mov r2, #0
- strb r1, [r0]
- mov r0, #2
- ldrsh r0, [r5, r0]
- str r0, [r4, #0x28]
- ldrh r0, [r5, #4]
- str r0, [r4, #0x2c]
- add r0, r4, #0
- ldrb r1, [r5, #1]
- add r0, #0x48
- strb r1, [r0]
- ldrb r0, [r5, #7]
- lsl r0, r0, #0x19
- lsr r1, r0, #0x1e
- add r0, r4, #0
- add r0, #0x49
- strb r1, [r0]
- str r2, [r4, #0x30]
- ldr r0, [r5, #8]
- sub r2, #0x21
- str r0, [r4, #0x38]
- ldr r0, [r5, #0xc]
- str r0, [r4, #0x3c]
- add r0, r4, #0
- ldrb r1, [r5, #6]
- add r0, #0x26
- strb r1, [r0]
- ldrb r0, [r5, #7]
- lsl r0, r0, #0x1b
- lsr r1, r0, #0x1b
- add r0, r4, #0
- add r0, #0x4a
- strb r1, [r0]
- ldrb r0, [r5, #7]
- lsl r0, r0, #0x18
- lsr r1, r0, #0x1f
- add r0, r4, #0
- add r0, #0x4b
- strb r1, [r0]
- add r0, r4, #0
- ldr r1, [r5, #0x10]
- add r0, #0x27
- strb r1, [r0]
- ldr r1, [r4, #0x28]
- add r0, r4, #0
- bl MOD11_02256D70
- add r1, r4, #0
- ldr r0, [r4, #0xc]
- add r1, #0x24
- add r4, #0x4c
- ldrb r1, [r1]
- ldrb r2, [r4]
- bl MOD11_022567B8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224EA70: .word 0x00000195
-
- thumb_func_start MOD11_0224EA74
-MOD11_0224EA74: ; 0x0224EA74
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r6, r1, #0
- mov r0, #5
- mov r1, #0x10
- add r4, r2, #0
- bl AllocFromHeap
- add r1, r0, #0
- mov r2, #0
- strb r2, [r1, #0xa]
- str r5, [r1]
- ldrb r0, [r4]
- strb r0, [r1, #8]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r6, r0]
- strb r0, [r1, #9]
- ldrh r0, [r4, #2]
- strh r0, [r1, #0xc]
- ldrb r0, [r4, #1]
- strb r0, [r1, #0xe]
- ldr r0, _0224EAA8 ; =MOD11_022533F4
- bl FUN_0200CA44
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0224EAA8: .word MOD11_022533F4
-
- thumb_func_start MOD11_0224EAAC
-MOD11_0224EAAC: ; 0x0224EAAC
- push {r4, r5, r6, lr}
- add r6, r0, #0
- add r5, r1, #0
- mov r0, #5
- mov r1, #0x10
- add r4, r2, #0
- bl AllocFromHeap
- add r1, r0, #0
- mov r2, #0
- strb r2, [r1, #0xa]
- str r6, [r1]
- ldr r0, [r5, #0x20]
- str r0, [r1, #4]
- ldrb r0, [r4]
- strb r0, [r1, #8]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r5, r0]
- strb r0, [r1, #9]
- ldrb r0, [r4, #1]
- strb r0, [r1, #0xb]
- strb r2, [r1, #0xc]
- ldrb r0, [r4, #2]
- strb r0, [r1, #0xd]
- ldr r0, _0224EAE8 ; =MOD11_0225352C
- bl FUN_0200CA44
- pop {r4, r5, r6, pc}
- nop
-_0224EAE8: .word MOD11_0225352C
-
- thumb_func_start MOD11_0224EAEC
-MOD11_0224EAEC: ; 0x0224EAEC
- push {r4, r5, r6, lr}
- add r6, r0, #0
- add r5, r1, #0
- mov r0, #5
- mov r1, #0x10
- add r4, r2, #0
- bl AllocFromHeap
- add r1, r0, #0
- mov r0, #0
- strb r0, [r1, #7]
- str r6, [r1]
- ldrb r2, [r4]
- strb r2, [r1, #4]
- mov r2, #0x65
- lsl r2, r2, #2
- ldrb r3, [r5, r2]
- add r2, r2, #1
- strb r3, [r1, #5]
- ldrb r2, [r5, r2]
- strb r2, [r1, #6]
-_0224EB16:
- add r2, r4, r0
- ldrb r3, [r2, #2]
- add r2, r1, r0
- add r0, r0, #1
- strb r3, [r2, #8]
- cmp r0, #6
- blt _0224EB16
- ldr r0, _0224EB30 ; =MOD11_0225359C
- mov r2, #0
- strb r2, [r1, #0xe]
- bl FUN_0200CA44
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0224EB30: .word MOD11_0225359C
-
- thumb_func_start MOD11_0224EB34
-MOD11_0224EB34: ; 0x0224EB34
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #0x10
- add r6, r2, #0
- bl AllocFromHeap
- add r1, r0, #0
- mov r2, #0
- strb r2, [r1, #7]
- str r5, [r1]
- ldrb r0, [r6]
- strb r0, [r1, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r3, [r4, r0]
- add r0, r0, #1
- strb r3, [r1, #5]
- ldrb r0, [r4, r0]
- strb r0, [r1, #6]
- ldr r0, _0224EB68 ; =MOD11_02253650
- strb r2, [r1, #0xe]
- bl FUN_0200CA44
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0224EB68: .word MOD11_02253650
-
- thumb_func_start MOD11_0224EB6C
-MOD11_0224EB6C: ; 0x0224EB6C
- push {r4, r5, r6, lr}
- add r6, r0, #0
- add r5, r1, #0
- mov r0, #5
- mov r1, #0x10
- add r4, r2, #0
- bl AllocFromHeap
- add r1, r0, #0
- mov r0, #0
- strb r0, [r1, #7]
- str r6, [r1]
- ldrb r2, [r4]
- strb r2, [r1, #4]
- mov r2, #0x65
- lsl r2, r2, #2
- ldrb r3, [r5, r2]
- add r2, r2, #1
- strb r3, [r1, #5]
- ldrb r2, [r5, r2]
- strb r2, [r1, #6]
-_0224EB96:
- add r2, r4, r0
- ldrb r3, [r2, #2]
- add r2, r1, r0
- add r0, r0, #1
- strb r3, [r2, #8]
- cmp r0, #6
- blt _0224EB96
- mov r0, #1
- strb r0, [r1, #0xe]
- ldr r0, _0224EBB4 ; =MOD11_0225359C
- mov r2, #0
- bl FUN_0200CA44
- pop {r4, r5, r6, pc}
- nop
-_0224EBB4: .word MOD11_0225359C
-
- thumb_func_start MOD11_0224EBB8
-MOD11_0224EBB8: ; 0x0224EBB8
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #0x10
- add r6, r2, #0
- bl AllocFromHeap
- add r1, r0, #0
- mov r2, #0
- strb r2, [r1, #7]
- str r5, [r1]
- ldrb r0, [r6]
- strb r0, [r1, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r3, [r4, r0]
- add r0, r0, #1
- strb r3, [r1, #5]
- ldrb r0, [r4, r0]
- strb r0, [r1, #6]
- mov r0, #1
- strb r0, [r1, #0xe]
- ldr r0, _0224EBF0 ; =MOD11_02253650
- bl FUN_0200CA44
- pop {r4, r5, r6, pc}
- nop
-_0224EBF0: .word MOD11_02253650
-
- thumb_func_start MOD11_0224EBF4
-MOD11_0224EBF4: ; 0x0224EBF4
- push {r4, r5, lr}
- sub sp, #0x24
- add r4, r1, #0
- ldr r1, _0224EC44 ; =0x00000196
- add r5, r0, #0
- ldrb r1, [r4, r1]
- cmp r1, #0
- bne _0224EC32
- bl MOD11_022300C4
- add r1, r0, #0
- ldr r2, _0224EC48 ; =0x0000039B
- add r0, sp, #0
- strh r2, [r0, #2]
- mov r3, #0
- strb r3, [r0, #1]
- add r0, r5, #0
- add r2, sp, #0
- bl MOD11_0223178C
- add r0, r5, #0
- mov r1, #0
- bl MOD11_0222FF6C
- mov r1, #1
- bl FUN_0200D858
- add r1, r0, #0
- add r0, r5, #0
- bl MOD11_022312C8
-_0224EC32:
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #0x37
- bl MOD11_022567B8
- add sp, #0x24
- pop {r4, r5, pc}
- .align 2, 0
-_0224EC44: .word 0x00000196
-_0224EC48: .word 0x0000039B
-
- thumb_func_start MOD11_0224EC4C
-MOD11_0224EC4C: ; 0x0224EC4C
- push {r4, r5, r6, lr}
- sub sp, #0x50
- mov r3, #0x65
- add r4, r1, #0
- lsl r3, r3, #2
- add r6, r2, #0
- ldrb r3, [r4, r3]
- add r1, r6, #0
- add r2, sp, #0
- add r5, r0, #0
- bl MOD11_0225452C
- add r0, sp, #0
- mov r1, #5
- bl MOD08_0222A494
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- ldrb r2, [r6]
- add r0, r5, #0
- bl MOD11_022567B8
- add sp, #0x50
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224EC80
-MOD11_0224EC80: ; 0x0224EC80
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #0x10
- bl AllocFromHeap
- add r1, r0, #0
- mov r2, #0
- strb r2, [r1, #0xe]
- str r5, [r1]
- add r0, r4, #0
- str r4, [r1, #4]
- add r0, #0x94
- ldrb r0, [r0]
- strb r0, [r1, #0xc]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r4, r0]
- strb r0, [r1, #0xd]
- ldr r0, [r4, #0x20]
- str r0, [r1, #8]
- ldr r0, _0224ECB4 ; =MOD11_022536D4
- bl FUN_0200CA44
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0224ECB4: .word MOD11_022536D4
-
- thumb_func_start MOD11_0224ECB8
-MOD11_0224ECB8: ; 0x0224ECB8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #0x10
- bl AllocFromHeap
- add r1, r0, #0
- mov r2, #0
- strb r2, [r1, #0xe]
- str r5, [r1]
- add r0, r4, #0
- str r4, [r1, #4]
- add r0, #0x94
- ldrb r0, [r0]
- strb r0, [r1, #0xc]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r4, r0]
- strb r0, [r1, #0xd]
- ldr r0, [r4, #0x20]
- str r0, [r1, #8]
- ldr r0, _0224ECEC ; =MOD11_02253720
- bl FUN_0200CA44
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0224ECEC: .word MOD11_02253720
-
- thumb_func_start MOD11_0224ECF0
-MOD11_0224ECF0: ; 0x0224ECF0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r0, #0
- add r2, sp, #0
- add r6, r1, #0
- bl MOD11_02254108
- add r0, r5, #0
- bl MOD11_022300C4
- add r7, r0, #0
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- mov r0, #0x3b
- strb r0, [r4, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r6, r0]
- strb r0, [r4, #5]
- add r0, r5, #0
- bl MOD11_02230E54
- add r3, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- add r2, sp, #0
- bl MOD11_0223178C
- strb r0, [r4, #6]
- ldr r0, _0224ED40 ; =MOD11_02253008
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0224ED40: .word MOD11_02253008
-
- thumb_func_start MOD11_0224ED44
-MOD11_0224ED44: ; 0x0224ED44
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r0, #0
- add r3, sp, #0
- add r6, r1, #0
- bl MOD11_022541C4
- add r0, r5, #0
- bl MOD11_022300C4
- add r7, r0, #0
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- mov r0, #0x3c
- strb r0, [r4, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r6, r0]
- strb r0, [r4, #5]
- add r0, r5, #0
- bl MOD11_02230E54
- add r3, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- add r2, sp, #0
- bl MOD11_0223178C
- strb r0, [r4, #6]
- ldr r0, _0224ED94 ; =MOD11_02253008
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0224ED94: .word MOD11_02253008
-
- thumb_func_start MOD11_0224ED98
-MOD11_0224ED98: ; 0x0224ED98
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r0, #0
- add r2, sp, #0
- add r6, r1, #0
- bl MOD11_022542B4
- add r0, r5, #0
- bl MOD11_022300C4
- add r7, r0, #0
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- mov r0, #0x3d
- strb r0, [r4, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r6, r0]
- strb r0, [r4, #5]
- add r0, r5, #0
- bl MOD11_02230E54
- add r3, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- add r2, sp, #0
- bl MOD11_0223178C
- strb r0, [r4, #6]
- ldr r0, _0224EDE8 ; =MOD11_02253008
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0224EDE8: .word MOD11_02253008
-
- thumb_func_start MOD11_0224EDEC
-MOD11_0224EDEC: ; 0x0224EDEC
- push {r4, r5, r6, lr}
- sub sp, #0x50
- mov r3, #0x65
- add r4, r1, #0
- lsl r3, r3, #2
- add r6, r2, #0
- ldrb r3, [r4, r3]
- add r1, r6, #0
- add r2, sp, #0
- add r5, r0, #0
- bl MOD11_0225452C
- add r0, sp, #0
- mov r1, #5
- bl MOD08_0222A568
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- ldrb r2, [r6]
- add r0, r5, #0
- bl MOD11_022567B8
- add sp, #0x50
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224EE20
-MOD11_0224EE20: ; 0x0224EE20
- push {r4, r5, r6, lr}
- add r6, r0, #0
- add r5, r1, #0
- ldr r0, _0224EE70 ; =0x00000195
- mov r1, #1
- ldrb r0, [r5, r0]
- add r4, r2, #0
- tst r0, r1
- beq _0224EE36
- mov r1, #0x75
- b _0224EE38
-_0224EE36:
- sub r1, #0x76
-_0224EE38:
- ldrb r0, [r4, #1]
- cmp r0, #0
- beq _0224EE48
- cmp r0, #1
- beq _0224EE58
- cmp r0, #2
- beq _0224EE50
- b _0224EE5E
-_0224EE48:
- ldr r0, _0224EE74 ; =0x000006FE
- bl FUN_020054A8
- b _0224EE5E
-_0224EE50:
- ldr r0, _0224EE78 ; =0x000006FC
- bl FUN_020054A8
- b _0224EE5E
-_0224EE58:
- ldr r0, _0224EE7C ; =0x000006FD
- bl FUN_020054A8
-_0224EE5E:
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- ldrb r2, [r4]
- add r0, r6, #0
- bl MOD11_022567B8
- pop {r4, r5, r6, pc}
- nop
-_0224EE70: .word 0x00000195
-_0224EE74: .word 0x000006FE
-_0224EE78: .word 0x000006FC
-_0224EE7C: .word 0x000006FD
-
- thumb_func_start MOD11_0224EE80
-MOD11_0224EE80: ; 0x0224EE80
- push {r4, r5, r6, lr}
- add r4, r2, #0
- add r6, r0, #0
- ldrh r0, [r4, #2]
- add r5, r1, #0
- bl FUN_0200521C
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- ldrb r2, [r4]
- add r0, r6, #0
- bl MOD11_022567B8
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224EEA0
-MOD11_0224EEA0: ; 0x0224EEA0
- push {r3, r4, r5, r6, lr}
- sub sp, #0x6c
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- ldrb r1, [r4, #0x12]
- add r5, r0, #0
- cmp r1, #5
- bls _0224EEB8
- b _0224F2C2
-_0224EEB8:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0224EEC4: ; jump table
- .short _0224EED0 - _0224EEC4 - 2 ; case 0
- .short _0224EEDA - _0224EEC4 - 2 ; case 1
- .short _0224EEE8 - _0224EEC4 - 2 ; case 2
- .short _0224F15E - _0224EEC4 - 2 ; case 3
- .short _0224F1B2 - _0224EEC4 - 2 ; case 4
- .short _0224F1D0 - _0224EEC4 - 2 ; case 5
-_0224EED0:
- mov r0, #0x1c
- str r0, [r4, #0x20]
- ldrb r0, [r4, #0x12]
- add r0, r0, #1
- strb r0, [r4, #0x12]
-_0224EEDA:
- ldr r0, [r4, #0x20]
- sub r0, r0, #1
- str r0, [r4, #0x20]
- bne _0224EFAE
- ldrb r0, [r4, #0x12]
- add r0, r0, #1
- strb r0, [r4, #0x12]
-_0224EEE8:
- ldrb r0, [r4, #0x13]
- add r1, sp, #0x10
- cmp r0, #2
- ldr r0, [r4, #0xc]
- beq _0224EEF4
- b _0224F040
-_0224EEF4:
- ldr r0, [r0]
- add r1, #2
- add r2, sp, #0x10
- bl FUN_0200C7A0
- ldr r0, [r4, #0x1c]
- cmp r0, #1
- beq _0224EF08
- cmp r0, #3
- bne _0224EF2A
-_0224EF08:
- add r1, sp, #0x10
- mov r0, #2
- ldrsh r0, [r1, r0]
- cmp r0, #0xc0
- ldr r0, [r4, #0xc]
- bge _0224EF20
- ldr r0, [r0]
- mov r1, #8
- mov r2, #0
- bl FUN_0200C82C
- b _0224EF2A
-_0224EF20:
- ldr r0, [r0]
- mov r1, #0xc0
- mov r2, #0x58
- bl FUN_0200C714
-_0224EF2A:
- ldr r0, [r4, #0xc]
- add r1, sp, #0x10
- ldr r0, [r0]
- add r1, #2
- add r2, sp, #0x10
- bl FUN_0200C7A0
- ldr r0, [r4, #0x1c]
- cmp r0, #1
- bne _0224EF4E
- add r3, sp, #0x10
- mov r2, #2
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_02007558
- b _0224EF9E
-_0224EF4E:
- cmp r0, #3
- bne _0224EF78
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_0200782C
- add r3, sp, #0x10
- mov r2, #2
- ldrsh r1, [r3, r2]
- sub r0, r0, r1
- strh r0, [r3, #2]
- ldrsh r0, [r3, r2]
- mov r1, #0
- sub r0, #0x18
- strh r0, [r3, #2]
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #8]
- neg r2, r2
- bl FUN_020079E0
- b _0224EF9E
-_0224EF78:
- cmp r0, #5
- bne _0224EF9E
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_0200782C
- add r3, sp, #0x10
- mov r2, #2
- ldrsh r1, [r3, r2]
- sub r0, r1, r0
- strh r0, [r3, #2]
- ldrsh r0, [r3, r2]
- mov r1, #0
- sub r0, #0x10
- strh r0, [r3, #2]
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #8]
- bl FUN_020079E0
-_0224EF9E:
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_0200782C
- mov r1, #0x14
- ldrsh r1, [r4, r1]
- cmp r0, r1
- bge _0224EFB0
-_0224EFAE:
- b _0224F2D8
-_0224EFB0:
- ldr r0, [r4, #8]
- mov r1, #1
- bl FUN_02007314
- ldr r0, [r4, #8]
- mov r1, #0x2c
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #8]
- mov r1, #0x2d
- mov r2, #0
- bl FUN_02007558
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_02007558
- ldr r0, [r4]
- bl MOD11_02230E80
- ldr r1, [r4, #0x24]
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- ldrb r1, [r4, #0x11]
- str r1, [sp, #8]
- ldrh r2, [r4, #0x16]
- ldrb r3, [r4, #0x13]
- ldr r1, [r4, #8]
- bl FUN_02069038
- ldrb r1, [r4, #0x11]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r1, #5
- str r1, [sp, #8]
- ldrh r2, [r4, #0x16]
- ldr r1, [r4, #0x18]
- mov r3, #0x75
- bl FUN_02069FB0
- ldr r0, [r4, #0x1c]
- cmp r0, #1
- beq _0224F01C
- cmp r0, #3
- bne _0224F028
-_0224F01C:
- ldr r0, [r4, #0xc]
- mov r1, #0xc0
- ldr r0, [r0]
- mov r2, #0x58
- bl FUN_0200C714
-_0224F028:
- mov r2, #0
- str r2, [sp]
- ldr r0, [r4, #8]
- mov r1, #8
- add r3, r2, #0
- bl FUN_02007E68
- ldrb r0, [r4, #0x12]
- add sp, #0x6c
- add r0, r0, #1
- strb r0, [r4, #0x12]
- pop {r3, r4, r5, r6, pc}
-_0224F040:
- ldr r0, [r0]
- add r1, #2
- add r2, sp, #0x10
- bl FUN_0200C7A0
- ldr r0, [r4, #0x1c]
- cmp r0, #0
- beq _0224F054
- cmp r0, #2
- bne _0224F076
-_0224F054:
- add r0, sp, #0x10
- mov r1, #2
- ldrsh r0, [r0, r1]
- cmp r0, #0x40
- ldr r0, [r4, #0xc]
- ble _0224F06C
- ldr r0, [r0]
- sub r1, #0xa
- mov r2, #0
- bl FUN_0200C82C
- b _0224F076
-_0224F06C:
- ldr r0, [r0]
- mov r1, #0x40
- mov r2, #0x88
- bl FUN_0200C714
-_0224F076:
- ldr r0, [r4, #0xc]
- add r1, sp, #0x10
- ldr r0, [r0]
- add r1, #2
- add r2, sp, #0x10
- bl FUN_0200C7A0
- ldr r0, [r4, #0x1c]
- cmp r0, #0
- bne _0224F09A
- add r3, sp, #0x10
- mov r2, #2
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_02007558
- b _0224F0EA
-_0224F09A:
- cmp r0, #2
- bne _0224F0C2
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_0200782C
- add r3, sp, #0x10
- mov r2, #2
- ldrsh r1, [r3, r2]
- sub r0, r1, r0
- strh r0, [r3, #2]
- ldrsh r0, [r3, r2]
- mov r1, #0
- sub r0, #0x18
- strh r0, [r3, #2]
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #8]
- bl FUN_020079E0
- b _0224F0EA
-_0224F0C2:
- cmp r0, #4
- bne _0224F0EA
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_0200782C
- add r3, sp, #0x10
- mov r2, #2
- ldrsh r1, [r3, r2]
- sub r0, r0, r1
- strh r0, [r3, #2]
- ldrsh r0, [r3, r2]
- mov r1, #0
- sub r0, #0x10
- strh r0, [r3, #2]
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #8]
- neg r2, r2
- bl FUN_020079E0
-_0224F0EA:
- mov r0, #0x14
- ldrsh r5, [r4, r0]
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_0200782C
- cmp r0, r5
- bgt _0224F1C0
- ldr r0, [r4, #8]
- mov r1, #0
- add r2, r5, #0
- bl FUN_02007558
- ldr r0, [r4]
- bl MOD11_02230E80
- ldr r1, [r4, #0x24]
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- ldrb r1, [r4, #0x11]
- str r1, [sp, #8]
- ldrh r2, [r4, #0x16]
- ldrb r3, [r4, #0x13]
- ldr r1, [r4, #8]
- bl FUN_02069038
- ldrb r1, [r4, #0x11]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r3, #5
- str r3, [sp, #8]
- ldrh r2, [r4, #0x16]
- ldr r1, [r4, #0x18]
- sub r3, #0x7a
- bl FUN_02069FB0
- ldr r0, [r4, #0x1c]
- cmp r0, #0
- beq _0224F148
- cmp r0, #2
- bne _0224F154
-_0224F148:
- ldr r0, [r4, #0xc]
- mov r1, #0x40
- ldr r0, [r0]
- mov r2, #0x88
- bl FUN_0200C714
-_0224F154:
- ldrb r0, [r4, #0x12]
- add sp, #0x6c
- add r0, r0, #1
- strb r0, [r4, #0x12]
- pop {r3, r4, r5, r6, pc}
-_0224F15E:
- ldr r0, [r4]
- bl MOD11_02230E80
- ldrb r1, [r4, #0x11]
- bl FUN_02014D7C
- cmp r0, #1
- bne _0224F1C0
- ldr r0, [r4, #8]
- bl FUN_02007390
- cmp r0, #0
- bne _0224F1C0
- ldr r0, [r4, #0x28]
- cmp r0, #0
- beq _0224F1AA
- ldrb r1, [r4, #0x11]
- mov r0, #0xb
- add r2, sp, #0x14
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r5, #0
- add r3, sp, #0x14
- bl MOD11_02254404
- mov r0, #4
- add sp, #0x6c
- strb r0, [r4, #0x12]
- pop {r3, r4, r5, r6, pc}
-_0224F1AA:
- mov r0, #0xff
- add sp, #0x6c
- strb r0, [r4, #0x12]
- pop {r3, r4, r5, r6, pc}
-_0224F1B2:
- bl MOD08_02212384
- add r0, r5, #0
- bl MOD08_022123A0
- cmp r0, #0
- beq _0224F1C2
-_0224F1C0:
- b _0224F2D8
-_0224F1C2:
- add r0, r5, #0
- bl MOD08_022123B0
- mov r0, #0xff
- add sp, #0x6c
- strb r0, [r4, #0x12]
- pop {r3, r4, r5, r6, pc}
-_0224F1D0:
- ldrb r5, [r4, #0x13]
- cmp r5, #2
- bne _0224F25E
- ldr r0, [r4, #8]
- mov r1, #1
- bl FUN_02007314
- ldr r0, [r4, #8]
- mov r1, #0x2c
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #8]
- mov r1, #0x2d
- mov r2, #0
- bl FUN_02007558
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_02007558
- ldr r0, [r4]
- bl MOD11_02230E80
- ldr r1, [r4, #0x24]
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- ldrb r1, [r4, #0x11]
- str r1, [sp, #8]
- ldrh r2, [r4, #0x16]
- ldrb r3, [r4, #0x13]
- ldr r1, [r4, #8]
- bl FUN_02069038
- ldrb r1, [r4, #0x11]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r1, #5
- str r1, [sp, #8]
- ldrh r2, [r4, #0x16]
- ldr r1, [r4, #0x18]
- mov r3, #0x75
- bl FUN_02069FB0
- ldr r0, [r4, #0x1c]
- cmp r0, #1
- beq _0224F242
- cmp r0, #3
- bne _0224F24E
-_0224F242:
- ldr r0, [r4, #0xc]
- mov r1, #0xc0
- ldr r0, [r0]
- mov r2, #0x58
- bl FUN_0200C714
-_0224F24E:
- mov r2, #0
- str r2, [sp]
- ldr r0, [r4, #8]
- mov r1, #8
- add r3, r2, #0
- bl FUN_02007E68
- b _0224F2BA
-_0224F25E:
- ldr r0, [r4]
- bl MOD11_02230E80
- ldr r1, [r4, #0x24]
- add r3, r5, #0
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- ldrb r1, [r4, #0x11]
- str r1, [sp, #8]
- ldrh r2, [r4, #0x16]
- ldr r1, [r4, #8]
- bl FUN_02069038
- ldrb r1, [r4, #0x11]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r3, #5
- str r3, [sp, #8]
- ldrh r2, [r4, #0x16]
- ldr r1, [r4, #0x18]
- sub r3, #0x7a
- bl FUN_02069FB0
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_02007558
- ldr r0, [r4, #0x1c]
- cmp r0, #0
- beq _0224F2AE
- cmp r0, #2
- bne _0224F2BA
-_0224F2AE:
- ldr r0, [r4, #0xc]
- mov r1, #0x40
- ldr r0, [r0]
- mov r2, #0x88
- bl FUN_0200C714
-_0224F2BA:
- mov r0, #3
- add sp, #0x6c
- strb r0, [r4, #0x12]
- pop {r3, r4, r5, r6, pc}
-_0224F2C2:
- ldrb r1, [r4, #0x11]
- ldrb r2, [r4, #0x10]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
-_0224F2D8:
- add sp, #0x6c
- pop {r3, r4, r5, r6, pc}
-
- thumb_func_start MOD11_0224F2DC
-MOD11_0224F2DC: ; 0x0224F2DC
- push {r4, r5, lr}
- sub sp, #0x9c
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- cmp r0, #7
- bls _0224F2F0
- b _0224F7A2
-_0224F2F0:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0224F2FC: ; jump table
- .short _0224F30C - _0224F2FC - 2 ; case 0
- .short _0224F322 - _0224F2FC - 2 ; case 1
- .short _0224F366 - _0224F2FC - 2 ; case 2
- .short _0224F4B0 - _0224F2FC - 2 ; case 3
- .short _0224F4CC - _0224F2FC - 2 ; case 4
- .short _0224F6E2 - _0224F2FC - 2 ; case 5
- .short _0224F6F6 - _0224F2FC - 2 ; case 6
- .short _0224F77C - _0224F2FC - 2 ; case 7
-_0224F30C:
- add r0, r4, #0
- mov r1, #0
- add r0, #0x96
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x83
- strb r1, [r0]
-_0224F322:
- add r1, sp, #0x38
- mov r0, #0
- str r0, [r1]
- str r0, [r1, #4]
- str r0, [r1, #8]
- add r0, r4, #0
- add r0, #0x82
- ldrb r0, [r0]
- add r1, r4, #0
- add r2, r4, #0
- str r0, [sp, #0x38]
- add r1, #0x81
- add r2, #0x8c
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4]
- bl MOD11_02230014
- str r0, [sp, #0x40]
- mov r0, #5
- add r1, sp, #0x38
- bl MOD08_02228218
- str r0, [r4, #8]
- bl MOD08_02228524
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r4, #0x83
- add sp, #0x9c
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, pc}
-_0224F366:
- ldr r0, [r4, #4]
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A80
- cmp r0, #0
- bne _0224F3AE
- ldr r0, [r4, #8]
- bl MOD08_02228570
- cmp r0, #1
- bne _0224F3AE
- ldr r0, [r4, #4]
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A00
- cmp r0, #1
- bne _0224F3AE
- add r0, r4, #0
- add r0, #0x82
- ldrb r0, [r0]
- cmp r0, #4
- bne _0224F3B8
- add r0, r4, #0
- add r0, #0x96
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x96
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0x96
- ldrb r0, [r0]
- cmp r0, #0xc
- bhs _0224F3B0
-_0224F3AE:
- b _0224F7C0
-_0224F3B0:
- add r0, r4, #0
- mov r1, #0
- add r0, #0x96
- strb r1, [r0]
-_0224F3B8:
- ldr r0, [r4]
- bl MOD11_02230068
- add r1, r4, #0
- add r1, #0x86
- add r5, r0, #0
- ldrh r1, [r1]
- add r0, sp, #0x24
- bl FUN_02069010
- add r0, r4, #0
- add r0, #0x82
- ldrb r3, [r0]
- mov r0, #6
- add r2, r4, #0
- add r1, r3, #0
- mul r1, r0
- ldr r0, _0224F690 ; =0x0222D552
- add r2, #0x14
- ldrsh r0, [r0, r1]
- str r0, [sp]
- ldr r0, _0224F694 ; =0x0222D554
- ldrsh r0, [r0, r1]
- add r1, r5, #0
- lsl r5, r3, #2
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x85
- ldrb r0, [r0]
- ldr r3, _0224F698 ; =0x0222D538
- str r0, [sp, #8]
- mov r0, #0x90
- ldrsb r0, [r4, r0]
- ldrsh r3, [r3, r5]
- str r0, [sp, #0xc]
- mov r0, #0x91
- ldrsb r0, [r4, r0]
- str r0, [sp, #0x10]
- add r0, r4, #0
- add r0, #0x93
- ldrb r0, [r0]
- str r0, [sp, #0x14]
- add r0, r4, #0
- add r0, #0x81
- ldrb r0, [r0]
- str r0, [sp, #0x18]
- add r0, sp, #0x24
- str r0, [sp, #0x1c]
- mov r0, #0
- str r0, [sp, #0x20]
- ldr r0, [r4]
- bl MOD11_02253A88
- ldr r1, [r4, #4]
- mov r2, #0
- str r0, [r1, #0x20]
- ldr r0, [r4, #4]
- mov r1, #0xc
- ldr r0, [r0, #0x20]
- bl FUN_02007558
- ldr r0, [r4, #4]
- mov r1, #0xd
- ldr r0, [r0, #0x20]
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #4]
- mov r1, #0x2c
- ldr r0, [r0, #0x20]
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #4]
- mov r1, #6
- ldr r0, [r0, #0x20]
- mov r2, #1
- bl FUN_02007558
- add r0, r4, #0
- add r0, #0x8e
- ldrh r0, [r0]
- mov r3, #0
- lsl r1, r0, #1
- ldr r0, _0224F69C ; =0x0225E84A
- ldrh r0, [r0, r1]
- mov r1, #0x10
- add r2, r1, #0
- str r0, [sp]
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x20]
- bl FUN_02007E68
- ldr r0, [r4, #4]
- mov r1, #6
- ldr r0, [r0, #0x20]
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #8]
- bl MOD08_022285A4
- add r0, r4, #0
- add r0, #0x84
- ldrb r0, [r0]
- cmp r0, #2
- ldr r0, _0224F6A0 ; =0x00000706
- bne _0224F498
- mov r1, #0x75
- bl FUN_020054A8
- b _0224F4A0
-_0224F498:
- mov r1, #0x74
- mvn r1, r1
- bl FUN_020054A8
-_0224F4A0:
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r4, #0x83
- add sp, #0x9c
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, pc}
-_0224F4B0:
- ldr r0, [r4, #4]
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_022299E8
- cmp r0, #1
- beq _0224F4CC
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x83
- strb r1, [r0]
-_0224F4CC:
- ldr r0, [r4, #4]
- mov r1, #0xc
- ldr r0, [r0, #0x20]
- bl FUN_0200782C
- mov r1, #1
- lsl r1, r1, #8
- cmp r0, r1
- bne _0224F5B2
- ldr r0, [r4, #8]
- bl MOD08_022285B4
- cmp r0, #0
- bne _0224F5B2
- add r0, r4, #0
- add r0, #0x84
- ldrb r0, [r0]
- cmp r0, #2
- bne _0224F534
- ldr r0, [r4, #4]
- mov r1, #1
- ldr r0, [r0, #0x20]
- bl FUN_02007314
- ldr r0, [r4, #4]
- mov r1, #0x2d
- ldr r0, [r0, #0x20]
- mov r2, #0
- bl FUN_02007558
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r1, #5
- add r2, r4, #0
- str r1, [sp, #8]
- add r1, r4, #0
- add r2, #0x86
- add r1, #0x88
- ldrh r2, [r2]
- ldr r1, [r1]
- mov r3, #0x75
- bl FUN_02069FB0
- b _0224F55E
-_0224F534:
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r3, #5
- add r2, r4, #0
- str r3, [sp, #8]
- add r1, r4, #0
- add r2, #0x86
- add r1, #0x88
- ldrh r2, [r2]
- ldr r1, [r1]
- sub r3, #0x7a
- bl FUN_02069FB0
-_0224F55E:
- ldr r0, [r4]
- bl MOD11_02230E80
- add r1, r4, #0
- add r1, #0x8d
- ldrb r1, [r1]
- add r2, r4, #0
- add r3, r4, #0
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- add r2, #0x86
- add r3, #0x84
- str r1, [sp, #8]
- ldr r1, [r4, #4]
- ldrh r2, [r2]
- ldrb r3, [r3]
- ldr r1, [r1, #0x20]
- bl FUN_02069038
- add r0, r4, #0
- add r0, #0x8e
- ldrh r0, [r0]
- mov r2, #0
- add r3, r2, #0
- lsl r1, r0, #1
- ldr r0, _0224F69C ; =0x0225E84A
- ldrh r0, [r0, r1]
- mov r1, #0x10
- str r0, [sp]
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x20]
- bl FUN_02007E68
- mov r0, #5
- add r4, #0x83
- add sp, #0x9c
- strb r0, [r4]
- pop {r4, r5, pc}
-_0224F5B2:
- ldr r0, [r4, #4]
- mov r1, #0xc
- ldr r0, [r0, #0x20]
- bl FUN_0200782C
- mov r2, #1
- lsl r2, r2, #8
- cmp r0, r2
- ldr r0, [r4, #4]
- blt _0224F6BC
- ldr r0, [r0, #0x20]
- mov r1, #0xc
- bl FUN_02007558
- ldr r0, [r4, #4]
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r0, #0x20]
- add r2, #0xf3
- bl FUN_02007558
- add r0, r4, #0
- add r0, #0x84
- ldrb r0, [r0]
- cmp r0, #2
- bne _0224F628
- ldr r0, [r4, #4]
- mov r1, #1
- ldr r0, [r0, #0x20]
- bl FUN_02007314
- ldr r0, [r4, #4]
- mov r1, #0x2d
- ldr r0, [r0, #0x20]
- mov r2, #0
- bl FUN_02007558
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r1, #5
- add r2, r4, #0
- str r1, [sp, #8]
- add r1, r4, #0
- add r2, #0x86
- add r1, #0x88
- ldrh r2, [r2]
- ldr r1, [r1]
- mov r3, #0x75
- bl FUN_02069FB0
- b _0224F652
-_0224F628:
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r3, #5
- add r2, r4, #0
- str r3, [sp, #8]
- add r1, r4, #0
- add r2, #0x86
- add r1, #0x88
- ldrh r2, [r2]
- ldr r1, [r1]
- sub r3, #0x7a
- bl FUN_02069FB0
-_0224F652:
- ldr r0, [r4]
- bl MOD11_02230E80
- add r1, r4, #0
- add r1, #0x8d
- ldrb r1, [r1]
- add r2, r4, #0
- add r3, r4, #0
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- add r2, #0x86
- add r3, #0x84
- str r1, [sp, #8]
- ldr r1, [r4, #4]
- ldrh r2, [r2]
- ldrb r3, [r3]
- ldr r1, [r1, #0x20]
- bl FUN_02069038
- add r0, r4, #0
- add r0, #0x8e
- ldrh r0, [r0]
- mov r2, #0
- mov r3, #1
- lsl r1, r0, #1
- ldr r0, _0224F69C ; =0x0225E84A
- b _0224F6A4
- .align 2, 0
-_0224F690: .word 0x0222D552
-_0224F694: .word 0x0222D554
-_0224F698: .word 0x0222D538
-_0224F69C: .word 0x0225E84A
-_0224F6A0: .word 0x00000706
-_0224F6A4:
- ldrh r0, [r0, r1]
- mov r1, #0x10
- str r0, [sp]
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x20]
- bl FUN_02007E68
- mov r0, #5
- add r4, #0x83
- add sp, #0x9c
- strb r0, [r4]
- pop {r4, r5, pc}
-_0224F6BC:
- ldr r0, [r0, #0x20]
- mov r1, #0xc
- mov r2, #0x20
- bl FUN_020079E0
- ldr r0, [r4, #4]
- mov r1, #0xd
- ldr r0, [r0, #0x20]
- mov r2, #0x20
- bl FUN_020079E0
- ldr r0, [r4, #4]
- mov r1, #0x90
- ldrsb r1, [r4, r1]
- ldr r0, [r0, #0x20]
- bl FUN_02007F34
- add sp, #0x9c
- pop {r4, r5, pc}
-_0224F6E2:
- ldr r0, [r4, #8]
- bl MOD08_022285B4
- cmp r0, #0
- bne _0224F7C0
- mov r0, #6
- add r4, #0x83
- add sp, #0x9c
- strb r0, [r4]
- pop {r4, r5, pc}
-_0224F6F6:
- ldr r0, [r4]
- bl MOD11_02230E80
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- bl FUN_02014D7C
- cmp r0, #1
- bne _0224F7C0
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x20]
- bl FUN_02007390
- cmp r0, #0
- bne _0224F7C0
- ldr r0, [r4, #4]
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A2C
- ldr r0, [r4, #4]
- mov r1, #0
- add r0, #0x88
- str r1, [r0]
- ldr r0, [r4, #8]
- bl MOD08_02228618
- add r0, r4, #0
- add r0, #0x92
- ldrb r0, [r0]
- cmp r0, #0
- beq _0224F772
- mov r0, #5
- bl MOD08_02211F5C
- str r0, [r4, #0x24]
- add r0, r4, #0
- add r0, #0x81
- ldrb r1, [r0]
- mov r0, #0xb
- add r2, sp, #0x44
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x24]
- add r3, sp, #0x44
- bl MOD11_02254404
- mov r0, #7
- add r4, #0x83
- add sp, #0x9c
- strb r0, [r4]
- pop {r4, r5, pc}
-_0224F772:
- mov r0, #0xff
- add r4, #0x83
- add sp, #0x9c
- strb r0, [r4]
- pop {r4, r5, pc}
-_0224F77C:
- ldr r0, [r4, #0x24]
- bl MOD08_02212384
- ldr r0, [r4, #0x24]
- bl MOD08_022123A0
- cmp r0, #0
- bne _0224F7C0
- ldr r0, [r4, #0x24]
- bl MOD08_022123B0
- ldr r0, [r4, #0x24]
- bl MOD08_02212024
- mov r0, #0xff
- add r4, #0x83
- add sp, #0x9c
- strb r0, [r4]
- pop {r4, r5, pc}
-_0224F7A2:
- add r1, r4, #0
- add r2, r4, #0
- add r1, #0x81
- add r2, #0x80
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_0224F7C0:
- add sp, #0x9c
- pop {r4, r5, pc}
-
- thumb_func_start MOD11_0224F7C4
-MOD11_0224F7C4: ; 0x0224F7C4
- push {r3, r4, r5, r6, lr}
- sub sp, #0x1c4
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- add r1, r4, #0
- add r1, #0x83
- ldrb r1, [r1]
- add r5, r0, #0
- cmp r1, #0xb
- bls _0224F7E0
- b _0224FD68
-_0224F7E0:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0224F7EC: ; jump table
- .short _0224F804 - _0224F7EC - 2 ; case 0
- .short _0224F90C - _0224F7EC - 2 ; case 1
- .short _0224F958 - _0224F7EC - 2 ; case 2
- .short _0224F9E2 - _0224F7EC - 2 ; case 3
- .short _0224F9FA - _0224F7EC - 2 ; case 4
- .short _0224FC14 - _0224F7EC - 2 ; case 5
- .short _0224FC28 - _0224F7EC - 2 ; case 6
- .short _0224FC9C - _0224F7EC - 2 ; case 7
- .short _0224FCC0 - _0224F7EC - 2 ; case 8
- .short _0224FC9C - _0224F7EC - 2 ; case 9
- .short _0224FD0C - _0224F7EC - 2 ; case 10
- .short _0224FC9C - _0224F7EC - 2 ; case 11
-_0224F804:
- add r0, r4, #0
- add r0, #0x82
- ldrb r1, [r0]
- ldr r0, _0224FB58 ; =0x0225E818
- ldrb r0, [r0, r1]
- str r0, [sp, #0x44]
- mov r0, #5
- str r0, [sp, #0x48]
- add r0, r4, #0
- add r0, #0x81
- ldrb r0, [r0]
- str r0, [sp, #0x50]
- add r0, r4, #0
- add r0, #0x8e
- ldrh r0, [r0]
- str r0, [sp, #0x54]
- ldr r0, [r4]
- bl MOD11_02230078
- str r0, [sp, #0x60]
- ldr r0, [r4]
- bl MOD11_022300CC
- str r0, [sp, #0x64]
- mov r2, #1
- mov r1, #0
- add r0, r4, #0
- str r2, [sp, #0x58]
- str r1, [sp, #0x5c]
- add r0, #0x94
- ldrh r0, [r0]
- cmp r0, #1
- bne _0224F84A
- str r2, [sp, #0x4c]
- b _0224F84C
-_0224F84A:
- str r1, [sp, #0x4c]
-_0224F84C:
- add r0, sp, #0x44
- bl MOD08_02229918
- str r0, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_02230068
- add r1, r4, #0
- add r1, #0x86
- add r5, r0, #0
- ldrh r1, [r1]
- add r0, sp, #0x30
- bl FUN_02069010
- add r0, r4, #0
- add r0, #0x82
- ldrb r3, [r0]
- mov r0, #6
- add r2, r4, #0
- add r1, r3, #0
- mul r1, r0
- ldr r0, _0224FB5C ; =0x0222D552
- add r2, #0x14
- ldrsh r0, [r0, r1]
- str r0, [sp]
- ldr r0, _0224FB60 ; =0x0222D554
- ldrsh r0, [r0, r1]
- add r1, r5, #0
- lsl r5, r3, #2
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x85
- ldrb r0, [r0]
- ldr r3, _0224FB64 ; =0x0222D538
- str r0, [sp, #8]
- mov r0, #0x90
- ldrsb r0, [r4, r0]
- ldrsh r3, [r3, r5]
- str r0, [sp, #0xc]
- mov r0, #0x91
- ldrsb r0, [r4, r0]
- str r0, [sp, #0x10]
- add r0, r4, #0
- add r0, #0x93
- ldrb r0, [r0]
- str r0, [sp, #0x14]
- add r0, r4, #0
- add r0, #0x81
- ldrb r0, [r0]
- str r0, [sp, #0x18]
- add r0, sp, #0x30
- str r0, [sp, #0x1c]
- mov r0, #0
- str r0, [sp, #0x20]
- ldr r0, [r4]
- bl MOD11_02253A88
- ldr r1, [r4, #4]
- mov r2, #0
- str r0, [r1, #0x20]
- ldr r0, [r4, #4]
- mov r1, #0xc
- ldr r0, [r0, #0x20]
- bl FUN_02007558
- ldr r0, [r4, #4]
- mov r1, #0xd
- ldr r0, [r0, #0x20]
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #4]
- mov r1, #0x2c
- ldr r0, [r0, #0x20]
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #4]
- mov r1, #6
- ldr r0, [r0, #0x20]
- mov r2, #1
- bl FUN_02007558
- ldr r0, [r4]
- mov r1, #5
- bl MOD08_0221590C
- str r0, [r4, #0x10]
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r4, #0x83
- add sp, #0x1c4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224F90C:
- add r1, sp, #0x24
- mov r0, #0
- str r0, [r1]
- str r0, [r1, #4]
- str r0, [r1, #8]
- add r0, r4, #0
- add r0, #0x82
- ldrb r0, [r0]
- add r1, r4, #0
- add r2, r4, #0
- str r0, [sp, #0x24]
- add r1, #0x81
- add r2, #0x8c
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4]
- bl MOD11_02230014
- str r0, [sp, #0x2c]
- add r0, r4, #0
- add r0, #0x8e
- ldrh r0, [r0]
- add r1, sp, #0x24
- str r0, [sp, #0x28]
- mov r0, #5
- bl MOD08_02228218
- str r0, [r4, #8]
- bl MOD08_02228524
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r4, #0x83
- add sp, #0x1c4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224F958:
- ldr r0, [r4, #0xc]
- bl MOD08_02229A80
- cmp r0, #0
- beq _0224F96C
- add r0, r4, #0
- add r0, #0x94
- ldrh r0, [r0]
- cmp r0, #0
- beq _0224F980
-_0224F96C:
- ldr r0, [r4, #8]
- bl MOD08_02228570
- cmp r0, #1
- bne _0224F980
- ldr r0, [r4, #0xc]
- bl MOD08_02229A00
- cmp r0, #1
- beq _0224F982
-_0224F980:
- b _0224FD86
-_0224F982:
- ldr r0, [r4, #0x10]
- bl MOD08_02215918
- add r0, r4, #0
- add r0, #0x8e
- ldrh r0, [r0]
- mov r3, #0
- lsl r1, r0, #1
- ldr r0, _0224FB68 ; =0x0225E84A
- ldrh r0, [r0, r1]
- mov r1, #0x10
- add r2, r1, #0
- str r0, [sp]
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x20]
- bl FUN_02007E68
- ldr r0, [r4, #4]
- mov r1, #6
- ldr r0, [r0, #0x20]
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #8]
- bl MOD08_022285A4
- add r0, r4, #0
- add r0, #0x84
- ldrb r0, [r0]
- cmp r0, #2
- ldr r0, _0224FB6C ; =0x00000706
- bne _0224F9CA
- mov r1, #0x75
- bl FUN_020054A8
- b _0224F9D2
-_0224F9CA:
- mov r1, #0x74
- mvn r1, r1
- bl FUN_020054A8
-_0224F9D2:
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r4, #0x83
- add sp, #0x1c4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224F9E2:
- ldr r0, [r4, #0xc]
- bl MOD08_022299E8
- cmp r0, #1
- beq _0224F9FA
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x83
- strb r1, [r0]
-_0224F9FA:
- ldr r0, [r4, #4]
- mov r1, #0xc
- ldr r0, [r0, #0x20]
- bl FUN_0200782C
- mov r1, #1
- lsl r1, r1, #8
- cmp r0, r1
- bne _0224FAE0
- ldr r0, [r4, #8]
- bl MOD08_022285B4
- cmp r0, #0
- bne _0224FAE0
- add r0, r4, #0
- add r0, #0x84
- ldrb r0, [r0]
- cmp r0, #2
- bne _0224FA62
- ldr r0, [r4, #4]
- mov r1, #1
- ldr r0, [r0, #0x20]
- bl FUN_02007314
- ldr r0, [r4, #4]
- mov r1, #0x2d
- ldr r0, [r0, #0x20]
- mov r2, #0
- bl FUN_02007558
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r1, #5
- add r2, r4, #0
- str r1, [sp, #8]
- add r1, r4, #0
- add r2, #0x86
- add r1, #0x88
- ldrh r2, [r2]
- ldr r1, [r1]
- mov r3, #0x75
- bl FUN_02069FB0
- b _0224FA8C
-_0224FA62:
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r3, #5
- add r2, r4, #0
- str r3, [sp, #8]
- add r1, r4, #0
- add r2, #0x86
- add r1, #0x88
- ldrh r2, [r2]
- ldr r1, [r1]
- sub r3, #0x7a
- bl FUN_02069FB0
-_0224FA8C:
- ldr r0, [r4]
- bl MOD11_02230E80
- add r1, r4, #0
- add r1, #0x8d
- ldrb r1, [r1]
- add r2, r4, #0
- add r3, r4, #0
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- add r2, #0x86
- add r3, #0x84
- str r1, [sp, #8]
- ldr r1, [r4, #4]
- ldrh r2, [r2]
- ldrb r3, [r3]
- ldr r1, [r1, #0x20]
- bl FUN_02069038
- add r0, r4, #0
- add r0, #0x8e
- ldrh r0, [r0]
- mov r2, #0
- add r3, r2, #0
- lsl r1, r0, #1
- ldr r0, _0224FB68 ; =0x0225E84A
- ldrh r0, [r0, r1]
- mov r1, #0x10
- str r0, [sp]
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x20]
- bl FUN_02007E68
- mov r0, #5
- add r4, #0x83
- add sp, #0x1c4
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224FAE0:
- ldr r0, [r4, #4]
- mov r1, #0xc
- ldr r0, [r0, #0x20]
- bl FUN_0200782C
- mov r2, #1
- lsl r2, r2, #8
- cmp r0, r2
- ldr r0, [r4, #4]
- blt _0224FBEE
- ldr r0, [r0, #0x20]
- mov r1, #0xc
- bl FUN_02007558
- ldr r0, [r4, #4]
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r0, #0x20]
- add r2, #0xf3
- bl FUN_02007558
- add r0, r4, #0
- add r0, #0x84
- ldrb r0, [r0]
- cmp r0, #2
- bne _0224FB70
- ldr r0, [r4, #4]
- mov r1, #1
- ldr r0, [r0, #0x20]
- bl FUN_02007314
- ldr r0, [r4, #4]
- mov r1, #0x2d
- ldr r0, [r0, #0x20]
- mov r2, #0
- bl FUN_02007558
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r1, #5
- add r2, r4, #0
- str r1, [sp, #8]
- add r1, r4, #0
- add r2, #0x86
- add r1, #0x88
- ldrh r2, [r2]
- ldr r1, [r1]
- mov r3, #0x75
- bl FUN_02069FB0
- b _0224FB9A
- nop
-_0224FB58: .word 0x0225E818
-_0224FB5C: .word 0x0222D552
-_0224FB60: .word 0x0222D554
-_0224FB64: .word 0x0222D538
-_0224FB68: .word 0x0225E84A
-_0224FB6C: .word 0x00000706
-_0224FB70:
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r3, #5
- add r2, r4, #0
- str r3, [sp, #8]
- add r1, r4, #0
- add r2, #0x86
- add r1, #0x88
- ldrh r2, [r2]
- ldr r1, [r1]
- sub r3, #0x7a
- bl FUN_02069FB0
-_0224FB9A:
- ldr r0, [r4]
- bl MOD11_02230E80
- add r1, r4, #0
- add r1, #0x8d
- ldrb r1, [r1]
- add r2, r4, #0
- add r3, r4, #0
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- add r2, #0x86
- add r3, #0x84
- str r1, [sp, #8]
- ldr r1, [r4, #4]
- ldrh r2, [r2]
- ldrb r3, [r3]
- ldr r1, [r1, #0x20]
- bl FUN_02069038
- add r0, r4, #0
- add r0, #0x8e
- ldrh r0, [r0]
- mov r2, #0
- mov r3, #1
- lsl r1, r0, #1
- ldr r0, _0224FD8C ; =0x0225E84A
- ldrh r0, [r0, r1]
- mov r1, #0x10
- str r0, [sp]
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x20]
- bl FUN_02007E68
- mov r0, #5
- add r4, #0x83
- add sp, #0x1c4
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224FBEE:
- ldr r0, [r0, #0x20]
- mov r1, #0xc
- mov r2, #0x20
- bl FUN_020079E0
- ldr r0, [r4, #4]
- mov r1, #0xd
- ldr r0, [r0, #0x20]
- mov r2, #0x20
- bl FUN_020079E0
- ldr r0, [r4, #4]
- mov r1, #0x90
- ldrsb r1, [r4, r1]
- ldr r0, [r0, #0x20]
- bl FUN_02007F34
- add sp, #0x1c4
- pop {r3, r4, r5, r6, pc}
-_0224FC14:
- ldr r0, [r4, #8]
- bl MOD08_022285B4
- cmp r0, #0
- bne _0224FC48
- mov r0, #6
- add r4, #0x83
- add sp, #0x1c4
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224FC28:
- ldr r0, [r4]
- bl MOD11_02230E80
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- bl FUN_02014D7C
- cmp r0, #1
- bne _0224FC48
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x20]
- bl FUN_02007390
- cmp r0, #0
- beq _0224FC4A
-_0224FC48:
- b _0224FD86
-_0224FC4A:
- ldr r0, [r4, #0xc]
- bl MOD08_02229A2C
- ldr r0, [r4, #8]
- bl MOD08_02228618
- add r0, r4, #0
- add r0, #0x92
- ldrb r0, [r0]
- cmp r0, #0
- beq _0224FC92
- add r0, r4, #0
- add r0, #0x81
- ldrb r1, [r0]
- mov r0, #0xb
- add r2, sp, #0x16c
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r5, #0
- add r3, sp, #0x16c
- bl MOD11_02254404
- mov r0, #7
- add r4, #0x83
- add sp, #0x1c4
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224FC92:
- mov r0, #8
- add r4, #0x83
- add sp, #0x1c4
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224FC9C:
- bl MOD08_02212384
- add r0, r5, #0
- bl MOD08_022123A0
- cmp r0, #0
- bne _0224FD86
- add r0, r5, #0
- bl MOD08_022123B0
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r4, #0x83
- add sp, #0x1c4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224FCC0:
- add r0, r4, #0
- add r0, #0x98
- ldr r0, [r0]
- cmp r0, #0
- beq _0224FD02
- add r0, r4, #0
- add r0, #0x81
- ldrb r1, [r0]
- mov r0, #0xf
- add r2, sp, #0x114
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r5, #0
- add r3, sp, #0x114
- bl MOD11_02254404
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r4, #0x83
- add sp, #0x1c4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224FD02:
- mov r0, #0xff
- add r4, #0x83
- add sp, #0x1c4
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224FD0C:
- add r3, r4, #0
- add r3, #0x81
- ldrb r3, [r3]
- add r1, r4, #0
- ldr r0, [r4]
- add r1, #0x28
- add r2, sp, #0xc4
- bl MOD11_0225452C
- add r0, sp, #0xc4
- mov r1, #5
- bl MOD08_0222A568
- add r0, r4, #0
- add r0, #0x81
- ldrb r1, [r0]
- mov r0, #0x10
- add r2, sp, #0x6c
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r5, #0
- add r3, sp, #0x6c
- bl MOD11_02254404
- mov r0, #0x1a
- ldr r1, [r4, #4]
- mov r2, #1
- lsl r0, r0, #4
- str r2, [r1, r0]
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r4, #0x83
- add sp, #0x1c4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224FD68:
- add r1, r4, #0
- add r2, r4, #0
- add r1, #0x81
- add r2, #0x80
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
-_0224FD86:
- add sp, #0x1c4
- pop {r3, r4, r5, r6, pc}
- nop
-_0224FD8C: .word 0x0225E84A
-
- thumb_func_start MOD11_0224FD90
-MOD11_0224FD90: ; 0x0224FD90
- push {r4, r5, r6, lr}
- sub sp, #0x138
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- add r1, r4, #0
- add r1, #0x6b
- ldrb r1, [r1]
- add r5, r0, #0
- cmp r1, #8
- bhi _0224FE7A
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0224FDB6: ; jump table
- .short _0224FDC8 - _0224FDB6 - 2 ; case 0
- .short _0224FE6C - _0224FDB6 - 2 ; case 1
- .short _0224FE10 - _0224FDB6 - 2 ; case 2
- .short _0224FE6C - _0224FDB6 - 2 ; case 3
- .short _0224FE92 - _0224FDB6 - 2 ; case 4
- .short _0224FF36 - _0224FDB6 - 2 ; case 5
- .short _0224FF50 - _0224FDB6 - 2 ; case 6
- .short _0224FFA6 - _0224FDB6 - 2 ; case 7
- .short _0224FFC0 - _0224FDB6 - 2 ; case 8
-_0224FDC8:
- ldr r0, [r4, #0x70]
- cmp r0, #0
- beq _0224FE06
- add r0, r4, #0
- add r0, #0x69
- ldrb r1, [r0]
- mov r0, #0xf
- add r2, sp, #0xe0
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r5, #0
- add r3, sp, #0xe0
- bl MOD11_02254404
- add r0, r4, #0
- add r0, #0x6b
- ldrb r0, [r0]
- add r4, #0x6b
- add sp, #0x138
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_0224FE06:
- mov r0, #4
- add r4, #0x6b
- add sp, #0x138
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_0224FE10:
- add r3, r4, #0
- add r3, #0x69
- ldrb r3, [r3]
- add r1, r4, #0
- ldr r0, [r4]
- add r1, #0x10
- add r2, sp, #0x90
- bl MOD11_0225452C
- add r0, sp, #0x90
- mov r1, #5
- bl MOD08_0222A494
- add r0, r4, #0
- add r0, #0x69
- ldrb r1, [r0]
- mov r0, #0x10
- add r2, sp, #0x38
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r5, #0
- add r3, sp, #0x38
- bl MOD11_02254404
- mov r0, #0x1a
- ldr r1, [r4, #4]
- mov r2, #0
- lsl r0, r0, #4
- str r2, [r1, r0]
- add r0, r4, #0
- add r0, #0x6b
- ldrb r0, [r0]
- add r4, #0x6b
- add sp, #0x138
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_0224FE6C:
- bl MOD08_02212384
- add r0, r5, #0
- bl MOD08_022123A0
- cmp r0, #0
- beq _0224FE7C
-_0224FE7A:
- b _0224FFDE
-_0224FE7C:
- add r0, r5, #0
- bl MOD08_022123B0
- add r0, r4, #0
- add r0, #0x6b
- ldrb r0, [r0]
- add r4, #0x6b
- add sp, #0x138
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_0224FE92:
- add r0, r4, #0
- add r0, #0x6a
- ldrb r1, [r0]
- mov r0, #1
- tst r0, r1
- beq _0224FEDA
- ldr r0, _0224FFE4 ; =0x0225E818
- ldrb r0, [r0, r1]
- str r0, [sp, #0x10]
- mov r0, #5
- str r0, [sp, #0x14]
- str r0, [sp, #0x18]
- add r0, r4, #0
- add r0, #0x69
- ldrb r0, [r0]
- str r0, [sp, #0x1c]
- add r0, r4, #0
- add r0, #0x6e
- ldrh r0, [r0]
- str r0, [sp, #0x20]
- ldr r0, [r4]
- bl MOD11_02230078
- str r0, [sp, #0x2c]
- ldr r0, [r4]
- bl MOD11_022300CC
- str r0, [sp, #0x30]
- mov r0, #1
- str r0, [sp, #0x24]
- mov r0, #0
- str r0, [sp, #0x28]
- add r0, sp, #0x10
- bl MOD08_02229918
- str r0, [r4, #0xc]
-_0224FEDA:
- add r0, r4, #0
- mov r1, #5
- add r0, #0x6b
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0x6e
- ldrh r0, [r0]
- mov r2, #0x10
- lsl r1, r0, #1
- ldr r0, _0224FFE8 ; =0x0225E84A
- ldrh r0, [r0, r1]
- mov r1, #0
- add r3, r1, #0
- str r0, [sp]
- ldr r0, [r4, #8]
- bl FUN_02007E68
- add r4, #0x6a
- ldrb r0, [r4]
- cmp r0, #5
- bhi _0224FFDE
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0224FF10: ; jump table
- .short _0224FF1C - _0224FF10 - 2 ; case 0
- .short _0224FF2A - _0224FF10 - 2 ; case 1
- .short _0224FF1C - _0224FF10 - 2 ; case 2
- .short _0224FF2A - _0224FF10 - 2 ; case 3
- .short _0224FF1C - _0224FF10 - 2 ; case 4
- .short _0224FF2A - _0224FF10 - 2 ; case 5
-_0224FF1C:
- mov r1, #0x74
- ldr r0, _0224FFEC ; =0x00000706
- mvn r1, r1
- bl FUN_020054A8
- add sp, #0x138
- pop {r4, r5, r6, pc}
-_0224FF2A:
- ldr r0, _0224FFEC ; =0x00000706
- mov r1, #0x75
- bl FUN_020054A8
- add sp, #0x138
- pop {r4, r5, r6, pc}
-_0224FF36:
- ldr r0, [r4, #8]
- bl FUN_02007F20
- cmp r0, #0
- bne _0224FFDE
- add r0, r4, #0
- add r0, #0x6b
- ldrb r0, [r0]
- add r4, #0x6b
- add sp, #0x138
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_0224FF50:
- mov r1, #0xc
- add r2, r1, #0
- ldr r0, [r4, #8]
- sub r2, #0x2c
- bl FUN_020079E0
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #8]
- sub r2, #0x2d
- bl FUN_020079E0
- add r1, r4, #0
- add r1, #0x6c
- ldrb r1, [r1]
- ldr r0, [r4, #8]
- bl FUN_02007F34
- ldr r0, [r4, #8]
- mov r1, #0xc
- bl FUN_0200782C
- cmp r0, #0
- bgt _0224FFDE
- ldr r0, [r4, #8]
- bl FUN_02007534
- add r0, r4, #0
- add r0, #0x6a
- ldrb r1, [r0]
- mov r0, #1
- tst r0, r1
- beq _0224FF9C
- mov r0, #7
- add r4, #0x6b
- add sp, #0x138
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_0224FF9C:
- mov r0, #8
- add r4, #0x6b
- add sp, #0x138
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_0224FFA6:
- ldr r0, [r4, #0xc]
- bl MOD08_022299E8
- cmp r0, #0
- bne _0224FFDE
- ldr r0, [r4, #0xc]
- bl MOD08_02229A2C
- mov r0, #8
- add r4, #0x6b
- add sp, #0x138
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_0224FFC0:
- add r1, r4, #0
- add r2, r4, #0
- add r1, #0x69
- add r2, #0x68
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
-_0224FFDE:
- add sp, #0x138
- pop {r4, r5, r6, pc}
- nop
-_0224FFE4: .word 0x0225E818
-_0224FFE8: .word 0x0225E84A
-_0224FFEC: .word 0x00000706
-
- thumb_func_start MOD11_0224FFF0
-MOD11_0224FFF0: ; 0x0224FFF0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0xb]
- cmp r0, #0
- beq _02250002
- cmp r0, #1
- beq _02250048
- pop {r3, r4, r5, pc}
-_02250002:
- mov r1, #0xc
- add r2, r1, #0
- ldr r0, [r4, #4]
- sub r2, #0x2c
- bl FUN_020079E0
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #4]
- sub r2, #0x2d
- bl FUN_020079E0
- ldrb r0, [r4, #0xc]
- cmp r0, #0
- beq _0225002E
- sub r0, r0, #1
- strb r0, [r4, #0xc]
- mov r1, #1
- ldr r0, [r4, #4]
- sub r2, r1, #2
- bl FUN_020079E0
-_0225002E:
- ldr r0, [r4, #4]
- mov r1, #0xc
- bl FUN_0200782C
- cmp r0, #0
- bgt _0225005E
- ldr r0, [r4, #4]
- bl FUN_02007534
- ldrb r0, [r4, #0xb]
- add r0, r0, #1
- strb r0, [r4, #0xb]
- pop {r3, r4, r5, pc}
-_02250048:
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_0225005E:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02250060
-MOD11_02250060: ; 0x02250060
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_0222FF74
- add r5, r0, #0
- ldr r0, [r4, #0x20]
- cmp r0, #0x21
- bge _0225009C
- ldrb r0, [r4, #0x12]
- cmp r0, #2
- blo _0225009C
- ldr r0, [r4, #0x18]
- cmp r0, #0
- beq _02250086
- cmp r0, #2
- bne _0225009C
-_02250086:
- ldr r0, [r4]
- bl MOD11_0222FF68
- mov r1, #3
- mov r2, #1
- mov r3, #4
- bl FUN_020179E0
- ldr r0, [r4, #0x20]
- add r0, r0, #1
- str r0, [r4, #0x20]
-_0225009C:
- ldrb r0, [r4, #0x12]
- cmp r0, #4
- bls _022500A4
- b _02250332
-_022500A4:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022500B0: ; jump table
- .short _022500BA - _022500B0 - 2 ; case 0
- .short _022500C4 - _022500B0 - 2 ; case 1
- .short _022500D2 - _022500B0 - 2 ; case 2
- .short _022502CA - _022500B0 - 2 ; case 3
- .short _022502E4 - _022500B0 - 2 ; case 4
-_022500BA:
- mov r0, #0x1c
- str r0, [r4, #0x1c]
- ldrb r0, [r4, #0x12]
- add r0, r0, #1
- strb r0, [r4, #0x12]
-_022500C4:
- ldr r0, [r4, #0x1c]
- sub r0, r0, #1
- str r0, [r4, #0x1c]
- bne _022501A6
- ldrb r0, [r4, #0x12]
- add r0, r0, #1
- strb r0, [r4, #0x12]
-_022500D2:
- ldrb r0, [r4, #0x13]
- add r1, sp, #0
- cmp r0, #2
- ldr r0, [r4, #8]
- bne _022501D2
- ldr r0, [r0]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- ldr r0, [r4, #0x18]
- cmp r0, #1
- beq _022500F0
- cmp r0, #3
- bne _02250112
-_022500F0:
- add r1, sp, #0
- mov r0, #2
- ldrsh r0, [r1, r0]
- cmp r0, #0xc0
- ldr r0, [r4, #8]
- bge _02250108
- ldr r0, [r0]
- mov r1, #8
- mov r2, #0
- bl FUN_0200C82C
- b _02250112
-_02250108:
- ldr r0, [r0]
- mov r1, #0xc0
- mov r2, #0x58
- bl FUN_0200C714
-_02250112:
- ldr r0, [r4, #8]
- add r1, sp, #0
- ldr r0, [r0]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- ldr r0, [r4, #0x18]
- cmp r0, #1
- beq _02250136
- cmp r0, #3
- bne _02250146
- cmp r5, #3
- beq _02250136
- cmp r5, #0x83
- beq _02250136
- cmp r5, #7
- bne _02250146
-_02250136:
- add r3, sp, #0
- mov r2, #2
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_02007558
- b _02250196
-_02250146:
- cmp r0, #3
- bne _02250170
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_0200782C
- add r3, sp, #0
- mov r2, #2
- ldrsh r1, [r3, r2]
- sub r0, r0, r1
- strh r0, [r3, #2]
- ldrsh r0, [r3, r2]
- mov r1, #0
- sub r0, #0x18
- strh r0, [r3, #2]
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #4]
- neg r2, r2
- bl FUN_020079E0
- b _02250196
-_02250170:
- cmp r0, #5
- bne _02250196
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_0200782C
- add r3, sp, #0
- mov r2, #2
- ldrsh r1, [r3, r2]
- sub r0, r1, r0
- strh r0, [r3, #2]
- ldrsh r0, [r3, r2]
- mov r1, #0
- sub r0, #0x10
- strh r0, [r3, #2]
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #4]
- bl FUN_020079E0
-_02250196:
- mov r0, #0x14
- ldrsh r5, [r4, r0]
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_0200782C
- cmp r0, r5
- bge _022501A8
-_022501A6:
- b _02250332
-_022501A8:
- ldr r0, [r4, #4]
- mov r1, #0
- add r2, r5, #0
- bl FUN_02007558
- ldr r0, [r4, #0x18]
- cmp r0, #1
- beq _022501BC
- cmp r0, #3
- bne _022501C8
-_022501BC:
- ldr r0, [r4, #8]
- mov r1, #0xc0
- ldr r0, [r0]
- mov r2, #0x58
- bl FUN_0200C714
-_022501C8:
- ldrb r0, [r4, #0x12]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4, #0x12]
- pop {r3, r4, r5, r6, pc}
-_022501D2:
- ldr r0, [r0]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- ldr r0, [r4, #0x18]
- cmp r0, #0
- beq _022501E6
- cmp r0, #2
- bne _02250208
-_022501E6:
- add r0, sp, #0
- mov r1, #2
- ldrsh r0, [r0, r1]
- cmp r0, #0x40
- ldr r0, [r4, #8]
- ble _022501FE
- ldr r0, [r0]
- sub r1, #0xa
- mov r2, #0
- bl FUN_0200C82C
- b _02250208
-_022501FE:
- ldr r0, [r0]
- mov r1, #0x40
- mov r2, #0x88
- bl FUN_0200C714
-_02250208:
- ldr r0, [r4, #8]
- add r1, sp, #0
- ldr r0, [r0]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- ldr r0, [r4, #0x18]
- cmp r0, #0
- beq _02250230
- cmp r0, #2
- bne _02250240
- cmp r5, #3
- beq _02250230
- cmp r5, #0x83
- beq _02250230
- cmp r5, #0x13
- beq _02250230
- cmp r5, #7
- bne _02250240
-_02250230:
- add r3, sp, #0
- mov r2, #2
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_02007558
- b _02250290
-_02250240:
- cmp r0, #2
- bne _02250268
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_0200782C
- add r3, sp, #0
- mov r2, #2
- ldrsh r1, [r3, r2]
- sub r0, r1, r0
- strh r0, [r3, #2]
- ldrsh r0, [r3, r2]
- mov r1, #0
- sub r0, #0x18
- strh r0, [r3, #2]
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #4]
- bl FUN_020079E0
- b _02250290
-_02250268:
- cmp r0, #4
- bne _02250290
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_0200782C
- add r3, sp, #0
- mov r2, #2
- ldrsh r1, [r3, r2]
- sub r0, r0, r1
- strh r0, [r3, #2]
- ldrsh r0, [r3, r2]
- mov r1, #0
- sub r0, #0x10
- strh r0, [r3, #2]
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #4]
- neg r2, r2
- bl FUN_020079E0
-_02250290:
- mov r0, #0x14
- ldrsh r5, [r4, r0]
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_0200782C
- cmp r0, r5
- bgt _02250332
- ldr r0, [r4, #4]
- mov r1, #0
- add r2, r5, #0
- bl FUN_02007558
- ldr r0, [r4, #0x18]
- cmp r0, #0
- beq _022502B4
- cmp r0, #2
- bne _022502C0
-_022502B4:
- ldr r0, [r4, #8]
- mov r1, #0x40
- ldr r0, [r0]
- mov r2, #0x88
- bl FUN_0200C714
-_022502C0:
- ldrb r0, [r4, #0x12]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4, #0x12]
- pop {r3, r4, r5, r6, pc}
-_022502CA:
- ldrb r1, [r4, #0x11]
- ldrb r2, [r4, #0x10]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_022502E4:
- ldrb r0, [r4, #0x13]
- cmp r0, #2
- ldr r0, [r4, #4]
- bne _0225030E
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- mov r1, #0
- bl FUN_02007558
- ldr r0, [r4, #0x18]
- cmp r0, #1
- beq _02250300
- cmp r0, #3
- bne _0225032E
-_02250300:
- ldr r0, [r4, #8]
- mov r1, #0xc0
- ldr r0, [r0]
- mov r2, #0x58
- bl FUN_0200C714
- b _0225032E
-_0225030E:
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- mov r1, #0
- bl FUN_02007558
- ldr r0, [r4, #0x18]
- cmp r0, #0
- beq _02250322
- cmp r0, #2
- bne _0225032E
-_02250322:
- ldr r0, [r4, #8]
- mov r1, #0x40
- ldr r0, [r0]
- mov r2, #0x88
- bl FUN_0200C714
-_0225032E:
- mov r0, #3
- strb r0, [r4, #0x12]
-_02250332:
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02250338
-MOD11_02250338: ; 0x02250338
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0xd0
- ldr r3, _022505EC ; =0x0225E8D0
- add r4, r1, #0
- add r5, r0, #0
- add r2, sp, #0x30
- mov r1, #0x50
-_02250346:
- ldrh r0, [r3]
- add r3, r3, #2
- strh r0, [r2]
- add r2, r2, #2
- sub r1, r1, #1
- bne _02250346
- ldr r0, [r4]
- bl MOD11_0222FF74
- add r6, r0, #0
- ldrb r0, [r4, #0xa]
- cmp r0, #6
- bls _02250362
- b _0225088A
-_02250362:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225036E: ; jump table
- .short _0225037C - _0225036E - 2 ; case 0
- .short _02250494 - _0225036E - 2 ; case 1
- .short _0225059E - _0225036E - 2 ; case 2
- .short _0225073C - _0225036E - 2 ; case 3
- .short _022507F2 - _0225036E - 2 ; case 4
- .short _0225084C - _0225036E - 2 ; case 5
- .short _02250874 - _0225036E - 2 ; case 6
-_0225037C:
- ldr r0, [r4, #0x10]
- cmp r0, #0
- bne _0225038A
- mov r0, #1
- add sp, #0xd0
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, r7, pc}
-_0225038A:
- cmp r0, #4
- bhi _022503A4
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225039A: ; jump table
- .short _022503A4 - _0225039A - 2 ; case 0
- .short _022503A4 - _0225039A - 2 ; case 1
- .short _022503B2 - _0225039A - 2 ; case 2
- .short _022503C0 - _0225039A - 2 ; case 3
- .short _022503CE - _0225039A - 2 ; case 4
-_022503A4:
- mov r0, #0xf
- str r0, [sp, #8]
- mov r0, #3
- str r0, [r4, #0x18]
- mov r0, #5
- str r0, [sp, #0x18]
- b _022503DC
-_022503B2:
- mov r0, #0xc
- str r0, [sp, #8]
- mov r0, #0
- str r0, [r4, #0x18]
- ldr r0, _022505F0 ; =0x00000111
- str r0, [sp, #0x18]
- b _022503DC
-_022503C0:
- mov r0, #0xd
- str r0, [sp, #8]
- mov r0, #0
- str r0, [r4, #0x18]
- ldr r0, _022505F4 ; =0x00000112
- str r0, [sp, #0x18]
- b _022503DC
-_022503CE:
- mov r0, #0xf
- str r0, [sp, #8]
- mov r0, #3
- str r0, [r4, #0x18]
- mov r0, #0x11
- lsl r0, r0, #4
- str r0, [sp, #0x18]
-_022503DC:
- mov r0, #5
- str r0, [sp, #0xc]
- mov r0, #4
- str r0, [sp, #0x10]
- ldrb r0, [r4, #9]
- str r0, [sp, #0x14]
- ldr r0, [r4]
- bl MOD11_02230078
- str r0, [sp, #0x24]
- ldr r0, [r4]
- bl MOD11_022300CC
- str r0, [sp, #0x28]
- mov r0, #0
- str r0, [sp, #0x20]
- ldr r0, [r4]
- str r0, [sp, #0x2c]
- add r0, sp, #8
- bl MOD08_02229918
- ldr r1, [r4, #4]
- add r1, #0x88
- str r0, [r1]
- ldr r0, [r4, #4]
- mov r1, #0x64
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_0222A00C
- ldr r0, [r4, #4]
- mov r1, #2
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_0222A018
- ldr r0, [r4, #4]
- mov r1, #0
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_0222A008
- mov r1, #0
- ldr r0, [r4]
- ldr r2, [r4, #0xc]
- add r3, r1, #0
- bl MOD11_02254308
- ldr r1, [r4, #4]
- str r0, [r1, #0x18]
- ldr r0, [r4, #4]
- mov r1, #0
- ldr r0, [r0, #0x1c]
- bl FUN_0200782C
- add r1, sp, #4
- strh r0, [r1, #2]
- ldr r0, [r4, #4]
- mov r1, #1
- ldr r0, [r0, #0x1c]
- bl FUN_0200782C
- add r3, sp, #4
- strh r0, [r3]
- ldr r0, [r4, #4]
- mov r1, #2
- mov r2, #0
- ldrsh r1, [r3, r1]
- ldrsh r2, [r3, r2]
- ldr r0, [r0, #0x18]
- bl FUN_0200C714
- ldr r0, [r4, #4]
- mov r1, #0
- ldr r0, [r0, #0x18]
- bl FUN_0200C61C
- ldr r0, [r4, #4]
- mov r1, #0
- ldr r0, [r0, #0x18]
- bl FUN_0200C5C0
- ldr r0, [r4, #4]
- mov r1, #6
- ldr r0, [r0, #0x1c]
- mov r2, #1
- bl FUN_02007558
- mov r0, #3
- add sp, #0xd0
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, r7, pc}
-_02250494:
- ldrb r0, [r4, #0xb]
- cmp r0, #2
- ldr r0, [r4, #4]
- bne _0225054A
- ldr r0, [r0, #0x1c]
- mov r1, #0
- mov r2, #5
- bl FUN_020079E0
- ldr r0, [r4, #4]
- mov r1, #0
- ldr r0, [r0, #0x1c]
- bl FUN_0200782C
- mov r1, #0x45
- lsl r1, r1, #2
- cmp r0, r1
- blt _02250520
- ldr r0, [r4, #4]
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A80
- cmp r0, #0
- beq _02250520
- ldr r0, [r4, #4]
- mov r1, #1
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229FE4
- ldr r0, [r4, #4]
- mov r1, #0
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A5C
- mov r0, #2
- tst r0, r6
- beq _02250532
- mov r0, #8
- tst r0, r6
- bne _02250532
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_022302BC
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD11_0222FF7C
- add r4, r0, #0
- add r0, #0x88
- ldr r0, [r0]
- mov r1, #1
- bl MOD08_02229FE4
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- mov r1, #0
- bl MOD08_02229A5C
- add r4, #0x88
- ldr r0, [r4]
- mov r1, #0xc
- bl MOD08_0222A024
- add sp, #0xd0
- pop {r3, r4, r5, r6, r7, pc}
-_02250520:
- ldr r0, [r4, #4]
- mov r1, #0
- ldr r0, [r0, #0x1c]
- bl FUN_0200782C
- mov r1, #0x4a
- lsl r1, r1, #2
- cmp r0, r1
- bge _02250534
-_02250532:
- b _0225088A
-_02250534:
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x1c]
- bl FUN_02007534
- ldr r0, [r4, #4]
- mov r1, #0
- str r1, [r0, #0x1c]
- mov r0, #6
- add sp, #0xd0
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, r7, pc}
-_0225054A:
- ldr r0, [r0, #0x1c]
- mov r1, #0
- bl FUN_0200782C
- add r1, sp, #4
- strh r0, [r1, #2]
- ldr r0, [r4, #4]
- mov r1, #1
- ldr r0, [r0, #0x1c]
- bl FUN_0200782C
- add r3, sp, #4
- strh r0, [r3]
- ldr r0, [r4, #4]
- mov r1, #2
- mov r2, #0
- ldrsh r1, [r3, r1]
- ldrsh r2, [r3, r2]
- ldr r0, [r0, #0x18]
- bl FUN_0200C714
- ldr r0, [r4, #4]
- mov r1, #0
- ldr r0, [r0, #0x18]
- bl FUN_0200C61C
- ldr r0, [r4, #4]
- mov r1, #0
- ldr r0, [r0, #0x18]
- bl FUN_0200C5C0
- mov r0, #2
- strb r0, [r4, #0xa]
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x1c]
- bl FUN_02007534
- ldr r0, [r4, #4]
- mov r1, #0
- str r1, [r0, #0x1c]
- add sp, #0xd0
- pop {r3, r4, r5, r6, r7, pc}
-_0225059E:
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x18]
- bl FUN_0200C5A8
- ldr r0, [r4, #4]
- mov r1, #4
- ldr r0, [r0, #0x18]
- mvn r1, r1
- mov r2, #0
- bl FUN_0200C82C
- ldr r0, [r4, #4]
- add r1, sp, #4
- ldr r0, [r0, #0x18]
- add r1, #2
- add r2, sp, #4
- bl FUN_0200C7A0
- ldr r1, [r4, #4]
- add r0, r1, #0
- add r0, #0x88
- ldr r0, [r0]
- cmp r0, #0
- bne _022505D0
- b _022506E4
-_022505D0:
- ldr r0, [r1, #0x18]
- bl FUN_0200C630
- ldr r1, [r4, #0xc]
- str r0, [sp]
- lsl r5, r0, #2
- mov r0, #0x14
- add r2, r1, #0
- mul r2, r0
- add r0, sp, #0x30
- add r0, r0, r2
- ldrsh r1, [r5, r0]
- ldr r0, _022505F8 ; =0x00007FFF
- b _022505FC
- .align 2, 0
-_022505EC: .word 0x0225E8D0
-_022505F0: .word 0x00000111
-_022505F4: .word 0x00000112
-_022505F8: .word 0x00007FFF
-_022505FC:
- cmp r1, r0
- beq _022506E4
- ldr r0, [r4, #4]
- mov r1, #1
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229FE4
- ldr r1, [r4, #0xc]
- mov r0, #0x14
- add r3, r1, #0
- mul r3, r0
- add r2, sp, #0x30
- add r2, r2, r3
- add r7, sp, #4
- mov r1, #2
- ldrsh r1, [r7, r1]
- ldrsh r2, [r5, r2]
- ldr r0, [r4, #4]
- add r1, r1, r2
- mov r2, #0
- ldrsh r7, [r7, r2]
- add r2, sp, #0x30
- add r2, #2
- add r2, r2, r3
- ldrsh r2, [r5, r2]
- add r0, #0x88
- lsl r1, r1, #0x10
- add r2, r7, r2
- lsl r2, r2, #0x10
- ldr r0, [r0]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_02229FF0
- ldr r0, [sp]
- cmp r0, #3
- bne _022506E4
- ldr r0, [r4, #4]
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A80
- cmp r0, #0
- beq _022506E4
- ldr r0, [r4, #4]
- mov r1, #0
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A5C
- ldr r0, [r4, #4]
- mov r1, #1
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_0222A008
- mov r0, #2
- tst r0, r6
- beq _022506E4
- mov r0, #8
- tst r0, r6
- bne _022506E4
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_022302BC
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD11_0222FF7C
- ldr r1, [r4, #0xc]
- add r6, r0, #0
- add r3, r1, #0
- mov r0, #0x14
- mul r3, r0
- add r2, sp, #0x30
- add r2, r2, r3
- add r0, r6, #0
- add r0, #0x88
- add r7, sp, #4
- mov r1, #2
- ldrsh r1, [r7, r1]
- ldrsh r2, [r5, r2]
- ldr r0, [r0]
- add r1, r1, r2
- mov r2, #0
- ldrsh r7, [r7, r2]
- add r2, sp, #0x30
- add r2, #2
- add r2, r2, r3
- ldrsh r2, [r5, r2]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add r2, r7, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl MOD08_02229FF0
- add r0, r6, #0
- add r0, #0x88
- ldr r0, [r0]
- mov r1, #1
- bl MOD08_02229FE4
- add r0, r6, #0
- add r0, #0x88
- ldr r0, [r0]
- mov r1, #0
- bl MOD08_02229A5C
- add r6, #0x88
- ldr r0, [r6]
- mov r1, #1
- bl MOD08_0222A008
-_022506E4:
- add r1, sp, #4
- mov r0, #2
- ldrsh r1, [r1, r0]
- sub r0, #0x2a
- cmp r1, r0
- ble _022506F2
- b _0225088A
-_022506F2:
- ldr r0, [r4]
- bl MOD11_02230080
- add r6, r0, #0
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_02230260
- asr r5, r0, #1
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x18]
- bl FUN_0200C3DC
- ldr r1, _02250890 ; =0x00004E2F
- add r0, r6, #0
- add r1, r5, r1
- bl FUN_0200C358
- ldr r1, _02250894 ; =0x00004E2A
- add r0, r6, #0
- add r1, r5, r1
- bl FUN_0200C368
- ldr r1, _02250898 ; =0x00004E27
- add r0, r6, #0
- add r1, r5, r1
- bl FUN_0200C378
- ldr r1, _02250898 ; =0x00004E27
- add r0, r6, #0
- add r1, r5, r1
- bl FUN_0200C388
- mov r0, #6
- add sp, #0xd0
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, r7, pc}
-_0225073C:
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x18]
- bl FUN_0200C5A8
- ldr r0, [r4, #4]
- add r1, sp, #4
- ldr r0, [r0, #0x18]
- add r1, #2
- add r2, sp, #4
- bl FUN_0200C7A0
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x18]
- bl FUN_0200C630
- add r5, r0, #0
- ldr r0, [r4, #4]
- add r0, #0x88
- ldr r0, [r0]
- cmp r0, #0
- beq _022507E2
- ldr r2, [r4, #0xc]
- mov r1, #0x14
- add r3, r2, #0
- mul r3, r1
- add r1, sp, #0x30
- lsl r6, r5, #2
- add r1, r1, r3
- ldrsh r1, [r6, r1]
- ldr r2, _0225089C ; =0x00007FFF
- cmp r1, r2
- beq _022507E2
- add r7, sp, #4
- mov r2, #2
- ldrsh r2, [r7, r2]
- add r1, r2, r1
- mov r2, #0
- ldrsh r7, [r7, r2]
- add r2, sp, #0x30
- add r2, #2
- add r2, r2, r3
- ldrsh r2, [r6, r2]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add r2, r7, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl MOD08_02229FF0
- cmp r5, #3
- bne _022507E2
- ldr r0, [r4, #4]
- ldr r6, [r4, #0x18]
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A80
- cmp r6, r0
- beq _022507E2
- ldr r0, [r4, #4]
- add r1, r6, #0
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A5C
- ldr r0, [r4, #4]
- mov r1, #1
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_0222A018
- ldr r0, [r4, #4]
- mov r1, #1
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_0222A008
- ldr r0, [r4, #0x18]
- cmp r0, #3
- beq _022507E2
- ldr r0, _022508A0 ; =0x0000070A
- bl FUN_020054C8
-_022507E2:
- cmp r5, #4
- bne _0225088A
- mov r0, #8
- str r0, [r4, #0x14]
- mov r0, #4
- add sp, #0xd0
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, r7, pc}
-_022507F2:
- ldr r0, [r4, #0x14]
- sub r0, r0, #1
- str r0, [r4, #0x14]
- bne _0225088A
- ldr r0, [r4]
- bl MOD11_02230080
- add r5, r0, #0
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x18]
- bl FUN_0200C3DC
- ldr r1, _02250890 ; =0x00004E2F
- add r0, r5, #0
- bl FUN_0200C358
- ldr r1, _02250894 ; =0x00004E2A
- add r0, r5, #0
- bl FUN_0200C368
- ldr r1, _02250898 ; =0x00004E27
- add r0, r5, #0
- bl FUN_0200C378
- ldr r1, _02250898 ; =0x00004E27
- add r0, r5, #0
- bl FUN_0200C388
- ldr r0, [r4, #4]
- mov r1, #6
- ldr r0, [r0, #0x1c]
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #0x18]
- cmp r0, #3
- bne _02250844
- mov r0, #6
- add sp, #0xd0
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, r7, pc}
-_02250844:
- mov r0, #5
- add sp, #0xd0
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, r7, pc}
-_0225084C:
- ldr r0, [r4, #4]
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_022299E8
- cmp r0, #1
- beq _0225088A
- ldr r0, [r4, #4]
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A2C
- ldr r0, [r4, #4]
- mov r1, #0
- add r0, #0x88
- str r1, [r0]
- mov r0, #6
- add sp, #0xd0
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, r7, pc}
-_02250874:
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_0225088A:
- add sp, #0xd0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02250890: .word 0x00004E2F
-_02250894: .word 0x00004E2A
-_02250898: .word 0x00004E27
-_0225089C: .word 0x00007FFF
-_022508A0: .word 0x0000070A
-
- thumb_func_start MOD11_022508A4
-MOD11_022508A4: ; 0x022508A4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0xa]
- cmp r0, #0
- beq _022508B6
- cmp r0, #1
- beq _02250906
- pop {r3, r4, r5, pc}
-_022508B6:
- ldrb r0, [r4, #0xb]
- cmp r0, #2
- ldr r0, [r4, #4]
- bne _022508E2
- ldr r0, [r0, #0x1c]
- mov r1, #0
- mov r2, #5
- bl FUN_020079E0
- ldr r0, [r4, #4]
- mov r1, #0
- ldr r0, [r0, #0x1c]
- bl FUN_0200782C
- mov r1, #0x4a
- lsl r1, r1, #2
- cmp r0, r1
- blt _0225092A
- ldrb r0, [r4, #0xa]
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, pc}
-_022508E2:
- mov r1, #0
- ldr r0, [r0, #0x1c]
- sub r2, r1, #5
- bl FUN_020079E0
- ldr r0, [r4, #4]
- mov r1, #0
- ldr r0, [r0, #0x1c]
- bl FUN_0200782C
- mov r1, #0x27
- mvn r1, r1
- cmp r0, r1
- bgt _0225092A
- ldrb r0, [r4, #0xa]
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, pc}
-_02250906:
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x1c]
- bl FUN_02007534
- ldr r0, [r4, #4]
- mov r1, #0
- str r1, [r0, #0x1c]
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_0225092A:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0225092C
-MOD11_0225092C: ; 0x0225092C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0xa]
- cmp r0, #0
- beq _0225093E
- cmp r0, #1
- beq _0225099A
- pop {r3, r4, r5, pc}
-_0225093E:
- ldrb r0, [r4, #0xb]
- cmp r0, #0
- ldr r0, [r4, #4]
- bne _02250970
- mov r1, #0
- mov r2, #5
- bl FUN_020079E0
- mov r0, #0xc
- ldrsh r5, [r4, r0]
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_0200782C
- cmp r0, r5
- blt _022509B0
- ldr r0, [r4, #4]
- mov r1, #0
- add r2, r5, #0
- bl FUN_02007558
- ldrb r0, [r4, #0xa]
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, pc}
-_02250970:
- mov r1, #0
- sub r2, r1, #5
- bl FUN_020079E0
- mov r0, #0xc
- ldrsh r5, [r4, r0]
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_0200782C
- cmp r0, r5
- bgt _022509B0
- ldr r0, [r4, #4]
- mov r1, #0
- add r2, r5, #0
- bl FUN_02007558
- ldrb r0, [r4, #0xa]
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, pc}
-_0225099A:
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_022509B0:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022509B4
-MOD11_022509B4: ; 0x022509B4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4]
- add r5, r0, #0
- cmp r1, #0
- beq _022509C6
- cmp r1, #1
- beq _022509F6
- b _02250A0A
-_022509C6:
- add r0, r4, #0
- add r0, #0x4d
- ldrb r0, [r0]
- cmp r0, #0
- beq _022509DE
- add r0, r4, #0
- add r0, #0x4d
- ldrb r0, [r0]
- add r4, #0x4d
- sub r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_022509DE:
- add r0, r4, #0
- mov r1, #0
- bl MOD11_02257334
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022572AC
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_022509F6:
- add r0, r4, #0
- add r0, #0x4f
- ldrb r0, [r0]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- cmp r0, #1
- bne _02250A26
- add r0, r1, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02250A0A:
- add r1, r4, #0
- add r2, r4, #0
- add r1, #0x24
- add r2, #0x4c
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4, #0xc]
- bl MOD11_022567B8
- mov r0, #0
- str r0, [r4, #0x10]
- add r0, r5, #0
- bl FUN_0200CAB4
-_02250A26:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02250A28
-MOD11_02250A28: ; 0x02250A28
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4]
- add r5, r0, #0
- cmp r1, #0
- bne _02250A48
- add r0, r4, #0
- add r0, #0x4f
- ldrb r0, [r0]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- cmp r0, #1
- bne _02250A6C
- add r0, r1, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02250A48:
- add r1, r4, #0
- add r2, r4, #0
- add r1, #0x24
- add r2, #0x4c
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4, #0xc]
- bl MOD11_022567B8
- mov r0, #0
- str r0, [r4, #0x10]
- add r0, r5, #0
- bl FUN_0200CAB4
- add r0, r4, #0
- mov r1, #0
- bl MOD11_022572AC
-_02250A6C:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02250A70
-MOD11_02250A70: ; 0x02250A70
- push {r4, r5, r6, r7, lr}
- sub sp, #0x4c
- add r4, r1, #0
- str r0, [sp]
- ldr r0, [r4]
- bl MOD11_0222FF68
- ldr r0, [r4]
- bl MOD11_02230094
- add r6, r0, #0
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_0222FF7C
- str r0, [sp, #4]
- ldr r0, [r4]
- bl MOD11_0222FF74
- add r7, r0, #0
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_022302BC
- add r1, r0, #0
- ldrb r0, [r4, #9]
- cmp r1, r0
- beq _02250AB2
- ldr r0, [r4]
- bl MOD11_02231380
- add r5, r0, #0
- b _02250AB4
-_02250AB2:
- mov r5, #0
-_02250AB4:
- ldrb r0, [r4, #0xa]
- cmp r0, #8
- bls _02250ABC
- b _02250F3E
-_02250ABC:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02250AC8: ; jump table
- .short _02250ADA - _02250AC8 - 2 ; case 0
- .short _02250B16 - _02250AC8 - 2 ; case 1
- .short _02250C04 - _02250AC8 - 2 ; case 2
- .short _02250C1A - _02250AC8 - 2 ; case 3
- .short _02250C2C - _02250AC8 - 2 ; case 4
- .short _02250DA0 - _02250AC8 - 2 ; case 5
- .short _02250DF2 - _02250AC8 - 2 ; case 6
- .short _02250ED6 - _02250AC8 - 2 ; case 7
- .short _02250F14 - _02250AC8 - 2 ; case 8
-_02250ADA:
- mov r0, #0
- add r1, r4, #0
- add r2, sp, #0x34
-_02250AE0:
- ldrh r3, [r1, #0x24]
- add r1, r1, #2
- strh r3, [r2]
- add r3, r4, r0
- add r3, #0x2c
- ldrb r3, [r3]
- strh r3, [r2, #8]
- add r3, r4, r0
- add r3, #0x30
- ldrb r3, [r3]
- add r0, r0, #1
- strh r3, [r2, #0x10]
- add r2, r2, #2
- cmp r0, #4
- blt _02250AE0
- ldr r0, [r4]
- bl MOD11_02230094
- add r1, r4, #0
- add r1, #0x34
- ldrb r1, [r1]
- add r2, sp, #0x34
- bl MOD11_0225A760
- ldrb r0, [r4, #0xa]
- add r0, r0, #1
- strb r0, [r4, #0xa]
-_02250B16:
- ldr r0, [r4]
- bl MOD11_022300C4
- add r5, r0, #0
- mov r0, #1
- lsl r0, r0, #0xa
- add r1, r7, #0
- tst r1, r0
- beq _02250B9A
- ldr r0, [r4]
- bl MOD11_02231268
- cmp r0, #0
- beq _02250B3A
- cmp r0, #1
- beq _02250B66
- add sp, #0x4c
- pop {r4, r5, r6, r7, pc}
-_02250B3A:
- mov r0, #2
- add r1, sp, #8
- strb r0, [r1, #9]
- add r0, r4, #0
- add r0, #0x23
- ldrb r0, [r0]
- ldrb r2, [r4, #9]
- mov r3, #0
- lsl r0, r0, #8
- orr r0, r2
- str r0, [sp, #0x14]
- ldr r0, _02250E84 ; =0x00000399
- add r2, sp, #0x10
- strh r0, [r1, #0xa]
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD11_0223178C
- mov r0, #3
- add sp, #0x4c
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_02250B66:
- mov r1, #0
- add r0, sp, #8
- strb r1, [r0, #9]
- ldr r0, [r4]
- bl MOD11_0223021C
- ldr r1, _02250E88 ; =0x000004CA
- add r1, r0, r1
- add r0, sp, #8
- strh r1, [r0, #0xa]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r2, sp, #0x10
- bl MOD11_0223178C
- add r1, r4, #0
- add r1, #0x35
- strb r0, [r1]
- mov r0, #2
- add sp, #0x4c
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_02250B9A:
- mov r1, #0x20
- add r2, r7, #0
- tst r2, r1
- beq _02250BBA
- mov r1, #8
- add r0, sp, #8
- strb r1, [r0, #9]
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_02230140
- str r0, [sp, #0x14]
- ldr r1, _02250E8C ; =0x0000039A
- add r0, sp, #8
- strh r1, [r0, #0xa]
- b _02250BF0
-_02250BBA:
- lsl r1, r1, #4
- tst r1, r7
- beq _02250BD8
- mov r1, #8
- add r0, sp, #8
- strb r1, [r0, #9]
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_02230140
- str r0, [sp, #0x14]
- ldr r1, _02250E90 ; =0x000004C6
- add r0, sp, #8
- strh r1, [r0, #0xa]
- b _02250BF0
-_02250BD8:
- add r2, r4, #0
- mov r1, #2
- add r3, sp, #8
- strb r1, [r3, #9]
- add r2, #0x23
- ldrb r2, [r2]
- ldrb r1, [r4, #9]
- sub r0, #0x67
- lsl r2, r2, #8
- orr r1, r2
- str r1, [sp, #0x14]
- strh r0, [r3, #0xa]
-_02250BF0:
- ldr r0, [r4]
- add r1, r5, #0
- add r2, sp, #0x10
- mov r3, #0
- bl MOD11_0223178C
- mov r0, #3
- add sp, #0x4c
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_02250C04:
- add r0, r4, #0
- add r0, #0x35
- ldrb r0, [r0]
- bl FUN_0201BD70
- cmp r0, #0
- bne _02250C36
- mov r0, #3
- add sp, #0x4c
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_02250C1A:
- ldr r0, [r4, #4]
- bl MOD11_02257208
- ldr r0, [sp, #4]
- ldr r1, [r4]
- bl MOD11_0225464C
- mov r0, #4
- strb r0, [r4, #0xa]
-_02250C2C:
- add r0, r6, #0
- bl MOD11_02258F5C
- cmp r0, #0
- bne _02250C38
-_02250C36:
- b _02250F3E
-_02250C38:
- ldrb r1, [r4, #9]
- add r0, sp, #8
- strb r1, [r0, #1]
- add r1, r4, #0
- add r1, #0x34
- ldrb r1, [r1]
- strb r1, [r0]
- add r1, r4, #0
- add r1, #0x23
- ldrb r1, [r1]
- strb r1, [r0, #2]
- mov r1, #0x36
- ldrsh r1, [r4, r1]
- strh r1, [r0, #4]
- ldrh r1, [r4, #0x38]
- strh r1, [r0, #6]
- add r1, r4, #0
- add r1, #0x3a
- ldrb r1, [r1]
- strb r1, [r0, #3]
- ldr r1, _02250E94 ; =0x00000197
- ldr r0, [sp, #4]
- ldrb r0, [r0, r1]
- cmp r0, #0
- beq _02250CFA
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0225B77C
- ldr r0, [r4]
- bl MOD11_02230C50
- mov r1, #1
- tst r0, r1
- beq _02250C8C
- add r0, r6, #0
- mov r1, #6
- mov r2, #0
- add r3, sp, #8
- bl MOD11_02258820
- b _02250CF0
-_02250C8C:
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #2
- lsl r1, r1, #8
- tst r0, r1
- beq _02250CA8
- add r0, r6, #0
- mov r1, #0xa
- mov r2, #0
- add r3, sp, #8
- bl MOD11_02258820
- b _02250CF0
-_02250CA8:
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #0x20
- tst r0, r1
- beq _02250CC2
- add r0, r6, #0
- mov r1, #8
- mov r2, #0
- add r3, sp, #8
- bl MOD11_02258820
- b _02250CF0
-_02250CC2:
- add r0, sp, #8
- ldrb r0, [r0]
- cmp r0, #4
- bne _02250CE4
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _02250CE4
- add r0, r6, #0
- mov r1, #4
- mov r2, #0
- add r3, sp, #8
- bl MOD11_02258820
- b _02250CF0
-_02250CE4:
- add r0, r6, #0
- mov r1, #3
- mov r2, #0
- add r3, sp, #8
- bl MOD11_02258820
-_02250CF0:
- ldr r0, [r4]
- mov r1, #1
- bl MOD11_022312AC
- b _02250D70
-_02250CFA:
- ldr r0, [r4]
- bl MOD11_02230C50
- mov r1, #1
- tst r0, r1
- beq _02250D14
- add r0, r6, #0
- mov r1, #5
- mov r2, #0
- add r3, sp, #8
- bl MOD11_02258820
- b _02250D68
-_02250D14:
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #2
- lsl r1, r1, #8
- tst r0, r1
- beq _02250D30
- add r0, r6, #0
- mov r1, #9
- mov r2, #0
- add r3, sp, #8
- bl MOD11_02258820
- b _02250D68
-_02250D30:
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #0x20
- tst r0, r1
- add r3, sp, #8
- beq _02250D4A
- add r0, r6, #0
- mov r1, #7
- mov r2, #0
- bl MOD11_02258820
- b _02250D68
-_02250D4A:
- add r0, sp, #8
- ldrb r0, [r0]
- cmp r0, #4
- beq _02250D5E
- add r0, r6, #0
- mov r1, #1
- mov r2, #0
- bl MOD11_02258820
- b _02250D68
-_02250D5E:
- add r0, r6, #0
- mov r1, #2
- mov r2, #0
- bl MOD11_02258820
-_02250D68:
- ldr r1, _02250E94 ; =0x00000197
- ldr r0, [sp, #4]
- mov r2, #1
- strb r2, [r0, r1]
-_02250D70:
- add r1, r4, #0
- add r0, r6, #0
- add r1, #0x1c
- bl MOD11_02258D60
- add r1, r4, #0
- add r2, r4, #0
- add r0, r6, #0
- add r1, #0x10
- add r2, #0x16
- bl MOD11_02258D7C
- add r0, r6, #0
- bl MOD11_02258DD0
- cmp r5, #0
- beq _02250D98
- add r0, r5, #0
- bl MOD11_02258180
-_02250D98:
- mov r0, #5
- add sp, #0x4c
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_02250DA0:
- ldr r0, _02250E98 ; =0x021C48B8
- ldr r1, [r0, #0x48]
- mov r0, #8
- tst r0, r1
- beq _02250DD0
- ldr r0, [r4]
- mov r5, #0
- bl MOD11_0222FF84
- cmp r0, #0
- ble _02250DD0
-_02250DB6:
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD11_0222FF7C
- add r0, #0x28
- bl MOD11_0225704C
- ldr r0, [r4]
- add r5, r5, #1
- bl MOD11_0222FF84
- cmp r5, r0
- blt _02250DB6
-_02250DD0:
- add r0, r6, #0
- bl MOD11_02258E74
- mov r1, #0
- mvn r1, r1
- str r0, [r4, #0xc]
- cmp r0, r1
- beq _02250E02
- mov r0, #0xa
- strb r0, [r4, #0xb]
- ldr r0, _02250E9C ; =0x000005DD
- bl FUN_020054C8
- mov r0, #6
- add sp, #0x4c
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_02250DF2:
- add r0, r6, #0
- bl MOD11_02258F5C
- cmp r0, #1
- beq _02250E04
- ldr r0, [r4, #0xc]
- cmp r0, #1
- beq _02250E04
-_02250E02:
- b _02250F3E
-_02250E04:
- ldr r0, [r4, #0xc]
- cmp r0, #4
- bhi _02250EC4
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02250E16: ; jump table
- .short _02250EC4 - _02250E16 - 2 ; case 0
- .short _02250E20 - _02250E16 - 2 ; case 1
- .short _02250E34 - _02250E16 - 2 ; case 2
- .short _02250E5C - _02250E16 - 2 ; case 3
- .short _02250EA0 - _02250E16 - 2 ; case 4
-_02250E20:
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- beq _02250EC8
- mov r0, #7
- strb r0, [r4, #0xa]
- b _02250EC8
-_02250E34:
- mov r1, #0
- add r0, r6, #0
- add r2, r1, #0
- add r3, r1, #0
- bl MOD11_02258820
- add r0, r6, #0
- mov r1, #0
- bl MOD11_0225B77C
- add r0, r5, #0
- bl MOD11_02258184
- ldr r0, [r4, #4]
- bl MOD11_02257238
- ldr r0, [sp, #4]
- bl MOD11_0225468C
- b _02250EC8
-_02250E5C:
- mov r1, #0
- add r0, r6, #0
- add r2, r1, #0
- add r3, r1, #0
- bl MOD11_02258820
- add r0, r6, #0
- mov r1, #0
- bl MOD11_0225B77C
- add r0, r5, #0
- bl MOD11_02258184
- ldr r0, [r4, #4]
- bl MOD11_02257238
- ldr r0, [sp, #4]
- bl MOD11_0225468C
- b _02250EC8
- .align 2, 0
-_02250E84: .word 0x00000399
-_02250E88: .word 0x000004CA
-_02250E8C: .word 0x0000039A
-_02250E90: .word 0x000004C6
-_02250E94: .word 0x00000197
-_02250E98: .word 0x021C48B8
-_02250E9C: .word 0x000005DD
-_02250EA0:
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_02230CB8
- cmp r0, #1
- bne _02250EB6
- add r0, r5, #0
- bl MOD11_02258184
- mov r0, #0xff
- str r0, [r4, #0xc]
-_02250EB6:
- mov r1, #0
- add r0, r6, #0
- add r2, r1, #0
- add r3, r1, #0
- bl MOD11_02258820
- b _02250EC8
-_02250EC4:
- bl ErrorHandling
-_02250EC8:
- add r0, r6, #0
- bl MOD11_02258E30
- mov r0, #8
- add sp, #0x4c
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_02250ED6:
- add r0, r6, #0
- bl MOD11_02258F5C
- cmp r0, #1
- bne _02250F3E
- mov r1, #0
- add r0, r6, #0
- add r2, r1, #0
- add r3, r1, #0
- bl MOD11_02258820
- add r0, r6, #0
- mov r1, #0
- bl MOD11_0225B77C
- add r0, r5, #0
- bl MOD11_02258184
- ldr r0, [r4, #4]
- bl MOD11_02257238
- ldr r0, [sp, #4]
- bl MOD11_0225468C
- add r0, r6, #0
- bl MOD11_02258E30
- mov r0, #8
- add sp, #0x4c
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_02250F14:
- add r0, r6, #0
- bl MOD11_0225B780
- cmp r0, #1
- bne _02250F3E
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- ldr r2, [r4, #0xc]
- bl MOD11_02255528
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [sp]
- bl FUN_0200CAB4
-_02250F3E:
- add sp, #0x4c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02250F44
-MOD11_02250F44: ; 0x02250F44
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4, #9]
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD16_021F45A4
- add r2, r0, #0
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_02255528
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02250F74
-MOD11_02250F74: ; 0x02250F74
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4, #9]
- add r5, r0, #0
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02250F94
-MOD11_02250F94: ; 0x02250F94
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02230DE0
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_0222FF78
- mov r2, #0
- ldrb r1, [r4, #9]
- add r3, r2, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r1, #0x1a
- bl GetMonBaseStat
- ldr r2, _0225100C ; =0x0225E830
- lsl r1, r5, #1
- ldrb r2, [r2, r1]
- mul r2, r0
- add r0, r2, #0
- ldr r2, _02251010 ; =0x0225E831
- ldrb r1, [r2, r1]
- bl _s32_div_f
- add r5, r0, #0
- bl rand_LC
- mov r1, #0xff
- bl _s32_div_f
- cmp r1, r5
- ldr r0, [r4]
- bgt _02250FEA
- ldrb r1, [r4, #9]
- mov r2, #4
- bl MOD11_02255528
- b _02250FF2
-_02250FEA:
- ldrb r1, [r4, #9]
- mov r2, #5
- bl MOD11_02255528
-_02250FF2:
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
- pop {r4, r5, r6, pc}
- nop
-_0225100C: .word 0x0225E830
-_02251010: .word 0x0225E831
-
- thumb_func_start MOD11_02251014
-MOD11_02251014: ; 0x02251014
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4, #9]
- add r5, r0, #0
- ldr r0, [r4]
- mov r2, #4
- bl MOD11_02255528
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0225103C
-MOD11_0225103C: ; 0x0225103C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x3c
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_0222FF68
- ldr r0, [r4]
- bl MOD11_02230094
- add r7, r0, #0
- ldrb r1, [r4, #0x1d]
- ldr r0, [r4]
- bl MOD11_0222FF7C
- str r0, [sp]
- ldrb r1, [r4, #0x1d]
- ldr r0, [r4]
- bl MOD11_022302BC
- add r1, r0, #0
- ldrb r0, [r4, #0x1d]
- cmp r1, r0
- beq _02251076
- ldr r0, [r4]
- bl MOD11_02231380
- add r5, r0, #0
- b _02251078
-_02251076:
- mov r5, #0
-_02251078:
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- cmp r0, #3
- bls _02251084
- b _0225118E
-_02251084:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02251090: ; jump table
- .short _02251098 - _02251090 - 2 ; case 0
- .short _02251114 - _02251090 - 2 ; case 1
- .short _0225113A - _02251090 - 2 ; case 2
- .short _02251180 - _02251090 - 2 ; case 3
-_02251098:
- add r0, r7, #0
- bl MOD11_02258F5C
- cmp r0, #0
- bne _022510A4
- b _022511B6
-_022510A4:
- ldr r0, [r4]
- bl MOD11_022300C4
- add r1, r0, #0
- mov r2, #2
- add r0, sp, #4
- strb r2, [r0, #0x15]
- ldrb r2, [r4, #0x1f]
- ldrb r3, [r4, #0x1d]
- lsl r2, r2, #8
- orr r2, r3
- str r2, [sp, #0x1c]
- ldr r2, _022511BC ; =0x00000399
- mov r3, #0
- strh r2, [r0, #0x16]
- ldr r0, [r4]
- add r2, sp, #0x18
- bl MOD11_0223178C
- add r0, r7, #0
- bl MOD11_02258E30
- add r5, sp, #4
- mov r2, #0
- add r3, r4, #0
- add r6, r5, #0
-_022510D8:
- ldrh r0, [r3, #0xc]
- add r1, r4, r2
- add r2, r2, #1
- strh r0, [r5]
- ldrb r0, [r1, #0x14]
- add r3, r3, #2
- add r5, r5, #2
- strb r0, [r6, #8]
- ldrb r0, [r1, #0x18]
- strb r0, [r6, #0xc]
- add r6, r6, #1
- cmp r2, #4
- blt _022510D8
- ldrb r1, [r4, #0x1e]
- add r0, sp, #4
- mov r2, #0
- strb r1, [r0, #0x10]
- add r0, r7, #0
- mov r1, #0xb
- add r3, sp, #4
- bl MOD11_02258820
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r4, #0x20
- add sp, #0x3c
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, r7, pc}
-_02251114:
- add r0, r7, #0
- bl MOD11_02258E74
- mov r1, #0
- mvn r1, r1
- str r0, [r4, #8]
- cmp r0, r1
- beq _022511B6
- ldr r0, _022511C0 ; =0x000005DD
- bl FUN_020054C8
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r4, #0x20
- add sp, #0x3c
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, r7, pc}
-_0225113A:
- ldr r0, [r4, #8]
- cmp r0, #0xff
- beq _02251166
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _02251166
- add r0, r7, #0
- mov r1, #0
- bl MOD11_0225B77C
- add r0, r5, #0
- bl MOD11_02258184
- ldr r0, [r4, #4]
- bl MOD11_02257238
- ldr r0, [sp]
- bl MOD11_0225468C
-_02251166:
- ldrb r1, [r4, #0x1d]
- ldr r0, [r4]
- ldr r2, [r4, #8]
- bl MOD11_022555E4
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r4, #0x20
- add sp, #0x3c
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, r7, pc}
-_02251180:
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x20
- strb r1, [r0]
-_0225118E:
- add r0, r7, #0
- bl MOD11_0225B780
- cmp r0, #1
- bne _022511B6
- ldr r0, [r4]
- mov r1, #1
- bl MOD11_02231274
- ldrb r1, [r4, #0x1d]
- ldrb r2, [r4, #0x1c]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
-_022511B6:
- add sp, #0x3c
- pop {r4, r5, r6, r7, pc}
- nop
-_022511BC: .word 0x00000399
-_022511C0: .word 0x000005DD
-
- thumb_func_start MOD11_022511C4
-MOD11_022511C4: ; 0x022511C4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- add r6, r1, #0
- str r0, [sp, #8]
- ldr r0, [r6]
- bl MOD11_0222FF74
- add r4, r0, #0
- ldr r0, [r6]
- bl MOD11_0222FF78
- str r0, [sp, #0xc]
- ldr r0, _02251290 ; =0x00000101
- tst r0, r4
- bne _022511FA
- ldr r0, [r6]
- bl MOD11_02230C50
- mov r1, #1
- tst r0, r1
- bne _022511FA
- ldrb r1, [r6, #0x1d]
- ldr r0, [r6]
- bl MOD11_02230270
- cmp r0, #0
- bne _02251216
-_022511FA:
- bl FUN_02033590
- cmp r0, #0
- beq _02251206
- bl ErrorHandling
-_02251206:
- ldrb r1, [r6, #0x1d]
- ldr r0, [r6]
- bl MOD16_021EFD8C
- cmp r0, #0xff
- beq _0225128C
- add r4, r0, #1
- b _0225126C
-_02251216:
- mov r7, #0
- add r4, r7, #0
- add r5, sp, #0x10
-_0225121C:
- add r0, r4, #0
- bl MaskOfFlagNo
- ldrh r1, [r6, #0x22]
- tst r0, r1
- bne _0225122E
- add r0, r4, #1
- stmia r5!, {r0}
- add r7, r7, #1
-_0225122E:
- add r4, r4, #1
- cmp r4, #4
- blt _0225121C
- bl rand_LC
- add r1, r7, #0
- bl _s32_div_f
- lsl r1, r1, #2
- add r0, sp, #0x10
- ldr r4, [r0, r1]
- mov r0, #1
- sub r3, r4, #1
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- lsl r3, r3, #1
- add r3, r6, r3
- ldrb r2, [r6, #0x1d]
- ldrh r3, [r3, #0xc]
- ldr r0, [r6]
- ldr r1, [sp, #0xc]
- bl MOD11_02244C28
- str r0, [sp]
- ldrb r3, [r6, #0x1d]
- ldr r0, [r6]
- ldr r1, [sp, #0xc]
- mov r2, #0xb
- bl MOD11_0224C54C
-_0225126C:
- ldrb r1, [r6, #0x1d]
- ldr r0, [r6]
- add r2, r4, #0
- bl MOD11_022555E4
- ldrb r1, [r6, #0x1d]
- ldrb r2, [r6, #0x1c]
- ldr r0, [r6]
- bl MOD11_022567B8
- add r0, r6, #0
- bl FreeToHeap
- ldr r0, [sp, #8]
- bl FUN_0200CAB4
-_0225128C:
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02251290: .word 0x00000101
-
- thumb_func_start MOD11_02251294
-MOD11_02251294: ; 0x02251294
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4, #0x1d]
- add r5, r0, #0
- ldrb r2, [r4, #0x1c]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022512B4
-MOD11_022512B4: ; 0x022512B4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- add r4, r1, #0
- str r0, [sp]
- ldr r0, [r4]
- bl MOD11_0222FF68
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_0222FF7C
- add r7, r0, #0
- ldr r0, [r4]
- bl MOD11_02230094
- add r5, r0, #0
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_022302BC
- add r1, r0, #0
- ldrb r0, [r4, #0xd]
- cmp r1, r0
- beq _022512EE
- ldr r0, [r4]
- bl MOD11_02231380
- add r6, r0, #0
- b _022512F0
-_022512EE:
- mov r6, #0
-_022512F0:
- ldrb r0, [r4, #0xf]
- cmp r0, #3
- bhi _022513BE
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02251302: ; jump table
- .short _0225130A - _02251302 - 2 ; case 0
- .short _02251366 - _02251302 - 2 ; case 1
- .short _02251386 - _02251302 - 2 ; case 2
- .short _022513BA - _02251302 - 2 ; case 3
-_0225130A:
- add r0, r5, #0
- bl MOD11_02258F5C
- cmp r0, #0
- bne _02251316
- b _02251418
-_02251316:
- add r2, sp, #8
- mov r0, #0
- add r1, r4, #0
- add r2, #2
-_0225131E:
- ldrh r3, [r1, #0x10]
- add r0, r0, #1
- strh r3, [r2]
- ldrh r3, [r1, #0x12]
- strh r3, [r2, #2]
- ldrh r3, [r1, #0x14]
- strh r3, [r2, #4]
- ldrh r3, [r1, #0x16]
- add r1, #8
- strh r3, [r2, #6]
- add r2, #8
- cmp r0, #4
- blt _0225131E
- ldrb r1, [r4, #0xe]
- add r0, sp, #0x28
- add r0, #2
- strb r1, [r0]
- ldrh r0, [r4, #0x30]
- ldrb r1, [r4, #0xe]
- bl MOD11_02258F88
- add r1, sp, #0x28
- add r1, #2
- strb r0, [r1, #1]
- add r3, sp, #8
- add r0, r5, #0
- mov r1, #0xc
- mov r2, #0
- add r3, #2
- bl MOD11_02258820
- ldrb r0, [r4, #0xf]
- add sp, #0x2c
- add r0, r0, #1
- strb r0, [r4, #0xf]
- pop {r4, r5, r6, r7, pc}
-_02251366:
- add r0, r5, #0
- bl MOD11_02258E74
- mov r1, #0
- mvn r1, r1
- str r0, [r4, #8]
- cmp r0, r1
- beq _02251418
- ldr r0, _0225141C ; =0x000005DD
- bl FUN_020054C8
- ldrb r0, [r4, #0xf]
- add sp, #0x2c
- add r0, r0, #1
- strb r0, [r4, #0xf]
- pop {r4, r5, r6, r7, pc}
-_02251386:
- ldr r0, [r4, #8]
- cmp r0, #0xff
- beq _022513B0
- ldr r0, [r4, #4]
- bl MOD11_02257238
- add r0, r7, #0
- bl MOD11_0225468C
- add r0, r6, #0
- bl MOD11_02258184
- add r0, r4, #0
- add r0, #0x32
- ldrb r0, [r0]
- cmp r0, #1
- bne _022513B0
- add r0, r5, #0
- mov r1, #0
- bl MOD11_0225B77C
-_022513B0:
- ldrb r0, [r4, #0xf]
- add sp, #0x2c
- add r0, r0, #1
- strb r0, [r4, #0xf]
- pop {r4, r5, r6, r7, pc}
-_022513BA:
- add r0, r0, #1
- strb r0, [r4, #0xf]
-_022513BE:
- add r0, r5, #0
- bl MOD11_0225B780
- cmp r0, #1
- bne _02251418
- ldr r0, [r4]
- ldr r5, [r4, #8]
- bl MOD11_0222FF74
- add r6, r0, #0
- cmp r5, #0xff
- beq _022513F8
- ldr r0, [r4]
- add r1, sp, #4
- bl MOD11_022314E0
- mov r0, #2
- tst r0, r6
- ldr r0, [r4, #8]
- beq _022513F0
- add r1, r0, #1
- add r0, sp, #4
- ldrb r0, [r0, r1]
- add r5, r0, #1
- b _022513F8
-_022513F0:
- sub r1, r0, #1
- add r0, sp, #4
- ldrb r0, [r0, r1]
- add r5, r0, #1
-_022513F8:
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- add r2, r5, #0
- bl MOD11_02255720
- ldrb r1, [r4, #0xd]
- ldrb r2, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [sp]
- bl FUN_0200CAB4
-_02251418:
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0225141C: .word 0x000005DD
-
- thumb_func_start MOD11_02251420
-MOD11_02251420: ; 0x02251420
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- ldr r0, [r5]
- bl MOD11_0222FF78
- add r1, r0, #0
- ldrb r3, [r5, #0xd]
- ldr r0, [r5]
- mov r2, #0xb
- bl MOD11_0224C474
- add r4, r0, #1
- cmp r4, #5
- blt _02251442
- bl ErrorHandling
-_02251442:
- ldrb r1, [r5, #0xd]
- ldr r0, [r5]
- add r2, r4, #0
- bl MOD11_02255720
- ldrb r1, [r5, #0xd]
- ldrb r2, [r5, #0xc]
- ldr r0, [r5]
- bl MOD11_022567B8
- add r0, r5, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02251464
-MOD11_02251464: ; 0x02251464
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4, #0xd]
- add r5, r0, #0
- ldrb r2, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02251484
-MOD11_02251484: ; 0x02251484
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x1fc
- sub sp, #0x14
- add r4, r1, #0
- add r7, r0, #0
- ldr r0, [r4]
- bl MOD11_022300CC
- ldrb r1, [r4, #0xe]
- add r5, r0, #0
- cmp r1, #0x1e
- bls _022514A0
- bl _02251FEA
-_022514A0:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022514AC: ; jump table
- .short _022514EA - _022514AC - 2 ; case 0
- .short _02251540 - _022514AC - 2 ; case 1
- .short _022515C2 - _022514AC - 2 ; case 2
- .short _022515D6 - _022514AC - 2 ; case 3
- .short _02251634 - _022514AC - 2 ; case 4
- .short _0225177C - _022514AC - 2 ; case 5
- .short _022517B8 - _022514AC - 2 ; case 6
- .short _02251808 - _022514AC - 2 ; case 7
- .short _022519DC - _022514AC - 2 ; case 8
- .short _02251A5A - _022514AC - 2 ; case 9
- .short _02251A96 - _022514AC - 2 ; case 10
- .short _02251AB8 - _022514AC - 2 ; case 11
- .short _02251FA2 - _022514AC - 2 ; case 12
- .short _02251B3E - _022514AC - 2 ; case 13
- .short _02251FA2 - _022514AC - 2 ; case 14
- .short _02251BF2 - _022514AC - 2 ; case 15
- .short _02251FD0 - _022514AC - 2 ; case 16
- .short _02251AF8 - _022514AC - 2 ; case 17
- .short _02251FA2 - _022514AC - 2 ; case 18
- .short _02251CA6 - _022514AC - 2 ; case 19
- .short _02251FA2 - _022514AC - 2 ; case 20
- .short _02251CEC - _022514AC - 2 ; case 21
- .short _02251D86 - _022514AC - 2 ; case 22
- .short _02251DBC - _022514AC - 2 ; case 23
- .short _02251FD0 - _022514AC - 2 ; case 24
- .short _02251AF8 - _022514AC - 2 ; case 25
- .short _02251FA2 - _022514AC - 2 ; case 26
- .short _02251CA6 - _022514AC - 2 ; case 27
- .short _02251FA2 - _022514AC - 2 ; case 28
- .short _02251E2E - _022514AC - 2 ; case 29
- .short _02251FD0 - _022514AC - 2 ; case 30
-_022514EA:
- ldr r0, [r4]
- bl MOD11_02230094
- bl MOD11_0225C76C
- strb r0, [r4, #0x10]
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #1
- bl FUN_020143A8
- mov r1, #0
- mov r2, #3
- str r1, [sp]
- mov r0, #7
- str r0, [sp, #4]
- str r1, [sp, #8]
- mov r1, #5
- add r3, r1, #0
- add r0, r5, #0
- lsl r2, r2, #0xa
- sub r3, #0xd
- bl FUN_02003210
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0xa
- add r3, r1, #0
- ldr r2, _02251850 ; =0x0000FFFF
- add r0, r5, #0
- sub r3, #0x12
- bl FUN_02003210
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251540:
- bl FUN_020038E4
- cmp r0, #0
- bne _022515FE
- ldr r0, [r4]
- bl MOD11_0222D7F8
- mov r0, #5
- mov r1, #0x34
- bl AllocFromHeap
- str r0, [r4, #4]
- ldr r1, [r4]
- str r1, [r0]
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_022301D4
- ldr r1, [r4, #4]
- str r0, [r1, #4]
- ldr r0, [r4, #4]
- mov r1, #5
- str r1, [r0, #0xc]
- ldr r0, [r4, #4]
- mov r1, #0
- add r0, #0x26
- strb r1, [r0]
- ldr r0, [r4]
- bl MOD11_02230214
- ldr r1, [r4, #4]
- str r0, [r1, #8]
- ldrb r1, [r4, #0xd]
- ldr r0, [r4, #4]
- str r1, [r0, #0x10]
- ldr r0, [r4, #4]
- ldrb r1, [r4, #0x10]
- add r0, #0x25
- strb r1, [r0]
- ldr r0, [r4, #4]
- ldrb r1, [r4, #0x14]
- add r0, #0x22
- strb r1, [r0]
- ldr r0, [r4, #4]
- ldrb r1, [r4, #0x15]
- add r0, #0x23
- strb r1, [r0]
- ldr r0, [r4, #4]
- ldrb r1, [r4, #0x16]
- add r0, #0x24
- strb r1, [r0]
- ldrb r0, [r4, #0xd]
- add r0, r4, r0
- add r0, #0x30
- ldrb r1, [r0]
- ldr r0, [r4, #4]
- str r1, [r0, #0x18]
- ldr r0, [r4, #4]
- bl MOD09_022186F0
- add sp, #0x1fc
- mov r0, #3
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_022515C2:
- ldr r0, [r4, #4]
- ldrb r1, [r4, #0x10]
- add r0, #0x25
- strb r1, [r0]
- ldr r0, [r4, #4]
- bl MOD09_022186F0
- ldrb r0, [r4, #0xe]
- add r0, r0, #1
- strb r0, [r4, #0xe]
-_022515D6:
- ldr r1, [r4, #4]
- add r0, r1, #0
- add r0, #0x26
- ldrb r0, [r0]
- cmp r0, #0
- beq _022515FE
- mov r0, #0
- add r1, #0x26
- strb r0, [r1]
- ldr r0, [r4, #4]
- add r0, #0x25
- ldrb r0, [r0]
- strb r0, [r4, #0x10]
- ldr r1, [r4, #4]
- ldrh r0, [r1, #0x1c]
- cmp r0, #0
- beq _0225162A
- ldrb r0, [r1, #0x1e]
- cmp r0, #3
- bls _02251602
-_022515FE:
- bl _02251FEA
-_02251602:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225160E: ; jump table
- .short _02251616 - _0225160E - 2 ; case 0
- .short _02251616 - _0225160E - 2 ; case 1
- .short _02251620 - _0225160E - 2 ; case 2
- .short _02251620 - _0225160E - 2 ; case 3
-_02251616:
- add sp, #0x1fc
- mov r0, #4
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251620:
- add sp, #0x1fc
- mov r0, #6
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_0225162A:
- add sp, #0x1fc
- mov r0, #6
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251634:
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_0222FF88
- str r0, [sp, #0x14]
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _02251660
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _02251660
- ldrb r1, [r4, #0xd]
- mov r0, #1
- add r7, r1, #0
- and r7, r0
- b _02251662
-_02251660:
- ldrb r7, [r4, #0xd]
-_02251662:
- ldr r0, [r4, #8]
- mov r1, #6
- ldr r0, [r0, #4]
- ldr r0, [r0]
- bl FUN_0206B8CC
- ldr r0, [sp, #0x14]
- mov r6, #0
- bl GetPartyCount
- cmp r0, #0
- ble _022516B0
- mov r0, #6
- mul r0, r7
- add r5, r4, r0
-_02251680:
- ldrb r2, [r5, #0x18]
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD11_02230014
- add r1, r0, #0
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- ldr r0, [r0]
- bl FUN_0206B900
- ldr r1, [r4, #8]
- ldrb r0, [r5, #0x18]
- ldr r1, [r1, #4]
- add r5, r5, #1
- add r1, r1, r6
- add r1, #0x2c
- strb r0, [r1]
- ldr r0, [sp, #0x14]
- add r6, r6, #1
- bl GetPartyCount
- cmp r6, r0
- blt _02251680
-_022516B0:
- ldr r0, [r4, #8]
- ldr r1, [r4]
- ldr r0, [r0, #4]
- str r1, [r0, #8]
- ldr r0, [r4, #8]
- mov r1, #5
- ldr r0, [r0, #4]
- str r1, [r0, #0xc]
- ldr r1, [r4, #8]
- mov r0, #0
- ldr r1, [r1, #4]
- strb r0, [r1, #0x11]
- ldr r1, [r4, #8]
- ldr r1, [r1, #4]
- add r1, #0x36
- strb r0, [r1]
- ldr r1, [r4, #8]
- ldr r1, [r1, #4]
- strh r0, [r1, #0x24]
- ldr r0, [r4, #8]
- mov r1, #2
- ldr r0, [r0, #4]
- add r0, #0x35
- strb r1, [r0]
- ldr r0, [r4, #4]
- ldrh r1, [r0, #0x1c]
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- strh r1, [r0, #0x22]
- ldr r0, [r4, #4]
- ldrb r1, [r0, #0x1e]
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- add r0, #0x33
- strb r1, [r0]
- ldr r0, [r4, #4]
- ldr r1, [r0, #0x10]
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- str r1, [r0, #0x28]
- ldr r0, [r4, #8]
- ldrb r1, [r4, #0x10]
- ldr r0, [r0, #4]
- add r0, #0x32
- strb r1, [r0]
- ldrb r0, [r4, #0xd]
- ldr r2, [r4, #8]
- add r0, r2, r0
- ldrb r1, [r0, #0xc]
- ldr r0, [r2, #4]
- strb r1, [r0, #0x14]
- ldrb r1, [r4, #0xd]
- ldr r5, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022302BC
- add r0, r5, r0
- ldrb r1, [r0, #0xc]
- ldr r0, [r5, #4]
- strb r1, [r0, #0x15]
- ldrb r0, [r4, #0xf]
- cmp r0, #4
- bne _02251746
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_022302BC
- add r0, r4, r0
- add r0, #0x30
- ldrb r1, [r0]
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- str r1, [r0, #0x18]
- ldrb r0, [r4, #0xd]
- b _0225175C
-_02251746:
- ldrb r0, [r4, #0xd]
- add r0, r4, r0
- add r0, #0x30
- ldrb r1, [r0]
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- str r1, [r0, #0x18]
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_022302BC
-_0225175C:
- add r0, r4, r0
- add r0, #0x30
- ldrb r1, [r0]
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- str r1, [r0, #0x1c]
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- bl MOD07_02211E60
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_0225177C:
- ldr r0, [r4, #8]
- ldr r1, [r0, #4]
- add r0, r1, #0
- add r0, #0x36
- ldrb r0, [r0]
- cmp r0, #0
- beq _02251832
- add r1, #0x32
- ldrb r0, [r1]
- mov r1, #0
- strb r0, [r4, #0x10]
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- add r0, #0x36
- strb r1, [r0]
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- ldrb r0, [r0, #0x11]
- cmp r0, #6
- bne _022517AE
- add sp, #0x1fc
- mov r0, #2
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_022517AE:
- add sp, #0x1fc
- mov r0, #6
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_022517B8:
- ldr r0, [r4]
- bl MOD11_0222D88C
- ldr r0, [r4]
- bl MOD11_02230094
- ldrb r1, [r4, #0x10]
- bl MOD11_0225C778
- mov r0, #7
- str r0, [sp]
- mov r0, #0
- mov r1, #5
- str r0, [sp, #4]
- mov r2, #3
- add r3, r1, #0
- str r0, [sp, #8]
- add r0, r5, #0
- lsl r2, r2, #0xa
- sub r3, #0xd
- bl FUN_02003210
- mov r0, #0x10
- str r0, [sp]
- mov r0, #0
- mov r1, #0xa
- str r0, [sp, #4]
- add r3, r1, #0
- str r0, [sp, #8]
- ldr r2, _02251850 ; =0x0000FFFF
- add r0, r5, #0
- sub r3, #0x12
- bl FUN_02003210
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251808:
- bl FUN_020038E4
- cmp r0, #0
- bne _02251832
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #0
- bl FUN_020143A8
- ldr r0, [r4, #4]
- ldrh r0, [r0, #0x1c]
- cmp r0, #0
- bne _02251826
- b _022519D2
-_02251826:
- mov r0, #9
- strb r0, [r4, #0xe]
- ldr r0, [r4, #4]
- ldrb r1, [r0, #0x1e]
- cmp r1, #3
- bls _02251834
-_02251832:
- b _02251FEA
-_02251834:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02251840: ; jump table
- .short _022518F4 - _02251840 - 2 ; case 0
- .short _02251848 - _02251840 - 2 ; case 1
- .short _022519C8 - _02251840 - 2 ; case 2
- .short _0225195E - _02251840 - 2 ; case 3
-_02251848:
- ldrh r1, [r0, #0x1c]
- ldr r0, _02251854 ; =0x0000FFE4
- b _02251858
- nop
-_02251850: .word 0x0000FFFF
-_02251854: .word 0x0000FFE4
-_02251858:
- add r0, r1, r0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- cmp r0, #1
- bhi _0225186C
- add sp, #0x1fc
- mov r0, #8
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_0225186C:
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- ldrb r0, [r0, #0x11]
- cmp r0, #2
- bhs _0225188A
- ldr r0, [r4]
- bl MOD11_0222FF74
- cmp r0, #3
- beq _02251894
- ldr r0, [r4]
- bl MOD11_0222FF74
- cmp r0, #0x13
- beq _02251894
-_0225188A:
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- ldrb r0, [r0, #0x11]
- cmp r0, #1
- bhs _022518EA
-_02251894:
- ldr r0, [r4, #4]
- ldrh r0, [r0, #0x1c]
- cmp r0, #0x17
- ldr r0, [r4]
- bne _022518C4
- bl MOD11_02230E20
- cmp r0, #1
- bne _022518B0
- add sp, #0x1fc
- mov r0, #0x11
- add sp, #0x14
- strh r0, [r4, #0x12]
- pop {r3, r4, r5, r6, r7, pc}
-_022518B0:
- mov r1, #0x74
- ldr r0, _02251BF8 ; =0x000005EC
- mvn r1, r1
- bl FUN_020054A8
- add sp, #0x1fc
- mov r0, #0x15
- add sp, #0x14
- strh r0, [r4, #0x12]
- pop {r3, r4, r5, r6, r7, pc}
-_022518C4:
- bl MOD11_02230E20
- cmp r0, #1
- bne _022518D6
- add sp, #0x1fc
- mov r0, #0x19
- add sp, #0x14
- strh r0, [r4, #0x12]
- pop {r3, r4, r5, r6, r7, pc}
-_022518D6:
- mov r1, #0x74
- ldr r0, _02251BF8 ; =0x000005EC
- mvn r1, r1
- bl FUN_020054A8
- add sp, #0x1fc
- mov r0, #0x1d
- add sp, #0x14
- strh r0, [r4, #0x12]
- pop {r3, r4, r5, r6, r7, pc}
-_022518EA:
- add sp, #0x1fc
- mov r0, #8
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_022518F4:
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- ldrb r0, [r0, #0x11]
- cmp r0, #2
- bhs _02251912
- ldr r0, [r4]
- bl MOD11_0222FF74
- cmp r0, #3
- beq _0225191C
- ldr r0, [r4]
- bl MOD11_0222FF74
- cmp r0, #0x13
- beq _0225191C
-_02251912:
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- ldrb r0, [r0, #0x11]
- cmp r0, #1
- bhs _02251954
-_0225191C:
- ldr r0, [r4, #4]
- mov r1, #0x26
- ldrh r0, [r0, #0x1c]
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02251954
- ldr r0, [r4]
- bl MOD11_02230E20
- cmp r0, #1
- bne _02251940
- add sp, #0x1fc
- mov r0, #0x11
- add sp, #0x14
- strh r0, [r4, #0x12]
- pop {r3, r4, r5, r6, r7, pc}
-_02251940:
- mov r1, #0x74
- ldr r0, _02251BF8 ; =0x000005EC
- mvn r1, r1
- bl FUN_020054A8
- add sp, #0x1fc
- mov r0, #0x15
- add sp, #0x14
- strh r0, [r4, #0x12]
- pop {r3, r4, r5, r6, r7, pc}
-_02251954:
- add sp, #0x1fc
- mov r0, #8
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_0225195E:
- ldrh r1, [r0, #0x1c]
- ldr r0, _02251BFC ; =0x0000FFC1
- add r0, r1, r0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- cmp r0, #1
- bhi _02251976
- add sp, #0x1fc
- mov r0, #8
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251976:
- cmp r1, #0x37
- ldr r0, [r4]
- bne _022519A2
- bl MOD11_02230E20
- cmp r0, #1
- bne _0225198E
- add sp, #0x1fc
- mov r0, #0xd
- add sp, #0x14
- strh r0, [r4, #0x12]
- pop {r3, r4, r5, r6, r7, pc}
-_0225198E:
- mov r1, #0x74
- ldr r0, _02251BF8 ; =0x000005EC
- mvn r1, r1
- bl FUN_020054A8
- add sp, #0x1fc
- mov r0, #0xf
- add sp, #0x14
- strh r0, [r4, #0x12]
- pop {r3, r4, r5, r6, r7, pc}
-_022519A2:
- bl MOD11_02230E20
- cmp r0, #1
- bne _022519B4
- add sp, #0x1fc
- mov r0, #0xb
- add sp, #0x14
- strh r0, [r4, #0x12]
- pop {r3, r4, r5, r6, r7, pc}
-_022519B4:
- mov r1, #0x74
- ldr r0, _02251BF8 ; =0x000005EC
- mvn r1, r1
- bl FUN_020054A8
- add sp, #0x1fc
- mov r0, #0xf
- add sp, #0x14
- strh r0, [r4, #0x12]
- pop {r3, r4, r5, r6, r7, pc}
-_022519C8:
- add sp, #0x1fc
- mov r0, #8
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_022519D2:
- add sp, #0x1fc
- mov r0, #8
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_022519DC:
- ldr r2, [r4, #4]
- ldrh r0, [r2, #0x1c]
- cmp r0, #0
- bne _022519EC
- mov r1, #0xff
- add r0, sp, #0x1c
- strh r1, [r0]
- b _02251A08
-_022519EC:
- add r1, sp, #0x1c
- strh r0, [r1]
- ldrb r0, [r2, #0x1e]
- strb r0, [r1, #2]
- cmp r0, #1
- bhi _02251A08
- ldr r0, [r4, #8]
- ldr r2, [r0, #4]
- ldrb r0, [r2, #0x11]
- add r0, r2, r0
- add r0, #0x2c
- ldrb r0, [r0]
- add r0, r0, #1
- strb r0, [r1, #3]
-_02251A08:
- add r3, sp, #0x1c
- ldrb r1, [r4, #0xd]
- mov r2, sp
- ldrh r5, [r3]
- ldr r0, [r4]
- sub r2, r2, #4
- strh r5, [r2]
- ldrh r3, [r3, #2]
- strh r3, [r2, #2]
- ldr r2, [r2]
- bl MOD11_022558C4
- ldrb r1, [r4, #0xd]
- ldrb r2, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_022567B8
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- ldr r0, [r0]
- bl FreeToHeap
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- bl FreeToHeap
- ldr r0, [r4, #8]
- bl FreeToHeap
- ldr r0, [r4, #4]
- bl FreeToHeap
- add r0, r4, #0
- bl FreeToHeap
- add r0, r7, #0
- bl FUN_0200CAB4
- add sp, #0x1fc
- add sp, #0x14
- pop {r3, r4, r5, r6, r7, pc}
-_02251A5A:
- ldr r1, _02251C00 ; =0x000004B6
- add r0, sp, #0x8c
- strh r1, [r0, #2]
- mov r1, #5
- strb r1, [r0, #1]
- ldr r0, [r4, #4]
- ldrh r0, [r0, #0x1c]
- str r0, [sp, #0x90]
- ldr r0, [r4]
- bl MOD11_022300C4
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r2, sp, #0x8c
- bl MOD11_0223178C
- strb r0, [r4, #0x11]
- mov r0, #0x14
- strb r0, [r4, #0x17]
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251A96:
- ldrb r0, [r4, #0x11]
- bl FUN_0201BD70
- cmp r0, #0
- bne _02251AAC
- ldrb r0, [r4, #0x17]
- sub r0, r0, #1
- strb r0, [r4, #0x17]
- ldrb r0, [r4, #0x17]
- cmp r0, #0
- beq _02251AAE
-_02251AAC:
- b _02251FEA
-_02251AAE:
- ldrh r0, [r4, #0x12]
- add sp, #0x1fc
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251AB8:
- ldrb r1, [r4, #0xd]
- mov r0, #9
- add r2, sp, #0x1b8
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_0222FF7C
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- add r2, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r3, sp, #0x1b8
- bl MOD11_02254404
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251AF8:
- ldr r0, [r4, #8]
- mov r1, #0
- ldr r0, [r0, #4]
- add r2, sp, #0x160
- ldrb r0, [r0, #0x11]
- mov r3, #1
- lsl r5, r0, #1
- mov r0, #9
- str r0, [sp]
- str r5, [sp, #4]
- str r5, [sp, #8]
- str r1, [sp, #0xc]
- ldr r0, [r4]
- bl MOD11_02256854
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD11_0222FF7C
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- add r2, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r3, sp, #0x160
- bl MOD11_02254404
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251B3E:
- ldr r0, [r4, #4]
- add r2, sp, #0x108
- ldrh r0, [r0, #0x1c]
- cmp r0, #0x37
- bne _02251B7C
- ldrb r0, [r4, #0xd]
- mov r1, #0
- add r3, r1, #0
- str r1, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x36
- str r0, [sp, #0xc]
- ldr r0, [r4]
- bl MOD11_02256854
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_0222FF7C
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- add r2, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r3, sp, #0x108
- bl MOD11_02254404
- b _02251BE6
-_02251B7C:
- cmp r0, #0x38
- bne _02251BB4
- ldrb r0, [r4, #0xd]
- mov r1, #0
- add r3, r1, #0
- str r1, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x74
- str r0, [sp, #0xc]
- ldr r0, [r4]
- bl MOD11_02256854
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_0222FF7C
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- add r2, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r3, sp, #0x108
- bl MOD11_02254404
- b _02251BE6
-_02251BB4:
- ldrb r1, [r4, #0xd]
- mov r0, #0xc
- mov r3, #1
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- bl MOD11_02256854
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_0222FF7C
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- add r2, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r3, sp, #0x108
- bl MOD11_02254404
-_02251BE6:
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251BF2:
- ldr r2, _02251C04 ; =0x000004B3
- b _02251C08
- nop
-_02251BF8: .word 0x000005EC
-_02251BFC: .word 0x0000FFC1
-_02251C00: .word 0x000004B6
-_02251C04: .word 0x000004B3
-_02251C08:
- add r0, sp, #0x68
- strh r2, [r0, #2]
- mov r1, #0xc
- strb r1, [r0, #1]
- ldrb r1, [r4, #0xd]
- ldr r3, [r4, #8]
- add r3, r3, r1
- ldrb r3, [r3, #0xc]
- lsl r3, r3, #8
- orr r1, r3
- str r1, [sp, #0x6c]
- ldr r1, [r4, #4]
- ldrh r1, [r1, #0x1c]
- sub r1, #0x37
- cmp r1, #7
- bhi _02251C7A
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02251C34: ; jump table
- .short _02251C68 - _02251C34 - 2 ; case 0
- .short _02251C72 - _02251C34 - 2 ; case 1
- .short _02251C44 - _02251C34 - 2 ; case 2
- .short _02251C4A - _02251C34 - 2 ; case 3
- .short _02251C50 - _02251C34 - 2 ; case 4
- .short _02251C56 - _02251C34 - 2 ; case 5
- .short _02251C5C - _02251C34 - 2 ; case 6
- .short _02251C62 - _02251C34 - 2 ; case 7
-_02251C44:
- mov r0, #1
- str r0, [sp, #0x70]
- b _02251C7A
-_02251C4A:
- mov r0, #2
- str r0, [sp, #0x70]
- b _02251C7A
-_02251C50:
- mov r0, #3
- str r0, [sp, #0x70]
- b _02251C7A
-_02251C56:
- mov r0, #6
- str r0, [sp, #0x70]
- b _02251C7A
-_02251C5C:
- mov r0, #4
- str r0, [sp, #0x70]
- b _02251C7A
-_02251C62:
- mov r0, #5
- str r0, [sp, #0x70]
- b _02251C7A
-_02251C68:
- add r1, r2, #1
- strh r1, [r0, #2]
- mov r1, #0
- strb r1, [r0, #1]
- b _02251C7A
-_02251C72:
- add r1, r2, #2
- strh r1, [r0, #2]
- mov r1, #2
- strb r1, [r0, #1]
-_02251C7A:
- ldr r0, [r4]
- bl MOD11_022300C4
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r2, sp, #0x68
- bl MOD11_0223178C
- strb r0, [r4, #0x11]
- mov r0, #0x14
- strb r0, [r4, #0x17]
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251CA6:
- ldr r0, [r4, #8]
- mov r1, #0
- ldr r0, [r0, #4]
- add r2, sp, #0xb0
- ldrb r0, [r0, #0x11]
- mov r3, #1
- lsl r5, r0, #1
- mov r0, #0xe
- str r0, [sp]
- str r5, [sp, #4]
- str r5, [sp, #8]
- str r1, [sp, #0xc]
- ldr r0, [r4]
- bl MOD11_02256854
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD11_0222FF7C
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- add r2, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r3, sp, #0xb0
- bl MOD11_02254404
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251CEC:
- ldr r0, [r4, #8]
- ldr r1, [r0, #4]
- ldrb r0, [r1, #0x11]
- lsl r6, r0, #1
- add r0, r1, r0
- add r0, #0x2c
- ldrb r7, [r0]
- ldr r0, [r4]
- add r1, r6, #0
- bl MOD11_02231380
- mov r1, #0
- mov r2, #1
- add r5, r0, #0
- bl MI_CpuFill8
- ldr r0, [r4]
- add r1, r6, #0
- bl MOD11_02230260
- str r0, [sp, #0x18]
- ldr r0, [r4]
- bl MOD11_0222FF74
- add r1, r0, #0
- ldr r0, [sp, #0x18]
- bl MOD11_02257F6C
- add r1, r5, #0
- add r1, #0x25
- strb r0, [r1]
- ldr r0, [r4]
- add r1, r6, #0
- add r2, r7, #0
- bl MOD11_02230014
- mov r1, #0xa2
- mov r2, #0
- add r6, r0, #0
- bl GetMonData
- ldr r1, [r4, #8]
- mov r2, #0
- ldr r1, [r1, #4]
- ldrh r1, [r1, #0x20]
- sub r0, r0, r1
- str r0, [r5, #0x28]
- add r0, r6, #0
- mov r1, #0xa3
- bl GetMonData
- str r0, [r5, #0x2c]
- ldr r0, [r4, #8]
- mov r1, #0x9f
- ldr r0, [r0, #4]
- mov r2, #0
- ldrh r0, [r0, #0x20]
- str r0, [r5, #0x30]
- add r0, r6, #0
- bl GetMonData
- cmp r0, #0
- bne _02251D72
- add r0, r5, #0
- mov r1, #0
- add r0, #0x4a
- strb r1, [r0]
-_02251D72:
- ldr r1, [r5, #0x30]
- add r0, r5, #0
- bl MOD11_02257150
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251D86:
- ldr r1, [r4, #8]
- ldr r0, [r4]
- ldr r1, [r1, #4]
- ldrb r1, [r1, #0x11]
- lsl r1, r1, #1
- bl MOD11_02231380
- add r5, r0, #0
- bl MOD11_02257184
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- beq _02251DA4
- b _02251FEA
-_02251DA4:
- mov r2, #1
- add r0, r5, #0
- mov r1, #0
- lsl r2, r2, #8
- bl MOD11_02256D70
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251DBC:
- ldr r0, [r4]
- bl MOD11_022300C4
- add r5, r0, #0
- ldr r0, [r4, #8]
- ldr r1, [r0, #4]
- ldrb r0, [r1, #0x11]
- ldrh r1, [r1, #0x20]
- lsl r0, r0, #1
- cmp r1, #0
- add r1, sp, #0x1c
- beq _02251DF4
- ldr r2, _02251FF0 ; =0x000004BE
- strh r2, [r1, #0x2a]
- mov r2, #0x11
- add r1, sp, #0x44
- strb r2, [r1, #1]
- ldr r1, [r4, #8]
- add r1, r1, r0
- ldrb r1, [r1, #0xc]
- lsl r1, r1, #8
- orr r0, r1
- str r0, [sp, #0x48]
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- ldrh r0, [r0, #0x20]
- str r0, [sp, #0x4c]
- b _02251E0A
-_02251DF4:
- ldr r2, _02251FF4 ; =0x000004E2
- strh r2, [r1, #0x2a]
- mov r2, #2
- add r1, sp, #0x44
- strb r2, [r1, #1]
- ldr r1, [r4, #8]
- add r1, r1, r0
- ldrb r1, [r1, #0xc]
- lsl r1, r1, #8
- orr r0, r1
- str r0, [sp, #0x48]
-_02251E0A:
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r2, sp, #0x44
- bl MOD11_0223178C
- strb r0, [r4, #0x11]
- mov r0, #0x14
- strb r0, [r4, #0x17]
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251E2E:
- ldr r0, [r4, #8]
- mov r5, #0
- ldr r0, [r0, #4]
- ldrb r0, [r0, #0x11]
- lsl r7, r0, #1
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD11_02231380
- str r0, [sp, #0x10]
- ldr r0, [r4, #8]
- add r1, r7, #0
- ldr r3, [r0, #4]
- ldr r0, [r4]
- ldrb r2, [r3, #0x11]
- add r2, r3, r2
- add r2, #0x2c
- ldrb r2, [r2]
- bl MOD11_02230014
- mov r1, #0x9f
- add r2, r5, #0
- bl GetMonData
- cmp r0, #0
- bne _02251E6A
- ldr r0, [sp, #0x10]
- add r1, r5, #0
- add r0, #0x4a
- strb r1, [r0]
-_02251E6A:
- ldr r0, [sp, #0x10]
- mov r2, #1
- add r1, r0, #0
- ldr r1, [r1, #0x28]
- lsl r2, r2, #8
- bl MOD11_02256D70
- mov r1, #2
- add r0, sp, #0x1c
- strb r1, [r0, #5]
- ldr r0, [r4, #8]
- mov r1, #0xf
- add r0, r0, r7
- ldrb r0, [r0, #0xc]
- mov r2, #5
- lsl r0, r0, #8
- orr r0, r7
- str r0, [sp, #0x24]
- ldr r0, [r4, #4]
- ldrh r0, [r0, #0x1c]
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02251E9E
- mov r6, #0
- add r5, r5, #1
-_02251E9E:
- ldr r0, [r4, #4]
- mov r1, #0x10
- ldrh r0, [r0, #0x1c]
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02251EB2
- mov r6, #1
- add r5, r5, #1
-_02251EB2:
- ldr r0, [r4, #4]
- mov r1, #0x11
- ldrh r0, [r0, #0x1c]
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02251EC6
- mov r6, #2
- add r5, r5, #1
-_02251EC6:
- ldr r0, [r4, #4]
- mov r1, #0x12
- ldrh r0, [r0, #0x1c]
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02251EDA
- mov r6, #3
- add r5, r5, #1
-_02251EDA:
- ldr r0, [r4, #4]
- mov r1, #0x13
- ldrh r0, [r0, #0x1c]
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02251EEE
- mov r6, #4
- add r5, r5, #1
-_02251EEE:
- ldr r0, [r4, #4]
- mov r1, #0x14
- ldrh r0, [r0, #0x1c]
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02251F02
- mov r6, #5
- add r5, r5, #1
-_02251F02:
- ldr r0, [r4, #4]
- mov r1, #0x15
- ldrh r0, [r0, #0x1c]
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02251F16
- mov r6, #6
- add r5, r5, #1
-_02251F16:
- cmp r5, #1
- beq _02251F22
- ldr r1, _02251FF8 ; =0x000004CD
- add r0, sp, #0x1c
- strh r1, [r0, #6]
- b _02251F76
-_02251F22:
- cmp r6, #6
- bhi _02251F76
- add r0, r6, r6
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02251F32: ; jump table
- .short _02251F40 - _02251F32 - 2 ; case 0
- .short _02251F48 - _02251F32 - 2 ; case 1
- .short _02251F50 - _02251F32 - 2 ; case 2
- .short _02251F58 - _02251F32 - 2 ; case 3
- .short _02251F60 - _02251F32 - 2 ; case 4
- .short _02251F68 - _02251F32 - 2 ; case 5
- .short _02251F70 - _02251F32 - 2 ; case 6
-_02251F40:
- ldr r1, _02251FFC ; =0x000004BA
- add r0, sp, #0x1c
- strh r1, [r0, #6]
- b _02251F76
-_02251F48:
- ldr r1, _02252000 ; =0x000004B7
- add r0, sp, #0x1c
- strh r1, [r0, #6]
- b _02251F76
-_02251F50:
- ldr r1, _02252004 ; =0x000004B9
- add r0, sp, #0x1c
- strh r1, [r0, #6]
- b _02251F76
-_02251F58:
- ldr r1, _02252008 ; =0x000004BB
- add r0, sp, #0x1c
- strh r1, [r0, #6]
- b _02251F76
-_02251F60:
- ldr r1, _0225200C ; =0x000004B8
- add r0, sp, #0x1c
- strh r1, [r0, #6]
- b _02251F76
-_02251F68:
- ldr r1, _02252010 ; =0x000004BC
- add r0, sp, #0x1c
- strh r1, [r0, #6]
- b _02251F76
-_02251F70:
- ldr r1, _02252014 ; =0x000004BD
- add r0, sp, #0x1c
- strh r1, [r0, #6]
-_02251F76:
- ldr r0, [r4]
- bl MOD11_022300C4
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r2, sp, #0x20
- bl MOD11_0223178C
- strb r0, [r4, #0x11]
- mov r0, #0x14
- strb r0, [r4, #0x17]
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251FA2:
- ldr r0, [r4]
- bl MOD11_02230070
- bl MOD08_02212384
- ldr r0, [r4]
- bl MOD11_02230070
- bl MOD08_022123A0
- cmp r0, #0
- bne _02251FEA
- ldr r0, [r4]
- bl MOD11_02230070
- bl MOD08_022123B0
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251FD0:
- ldrb r0, [r4, #0x11]
- bl FUN_0201BD70
- cmp r0, #0
- bne _02251FEA
- ldrb r0, [r4, #0x17]
- sub r0, r0, #1
- strb r0, [r4, #0x17]
- ldrb r0, [r4, #0x17]
- cmp r0, #0
- bne _02251FEA
- mov r0, #8
- strb r0, [r4, #0xe]
-_02251FEA:
- add sp, #0x1fc
- add sp, #0x14
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02251FF0: .word 0x000004BE
-_02251FF4: .word 0x000004E2
-_02251FF8: .word 0x000004CD
-_02251FFC: .word 0x000004BA
-_02252000: .word 0x000004B7
-_02252004: .word 0x000004B9
-_02252008: .word 0x000004BB
-_0225200C: .word 0x000004B8
-_02252010: .word 0x000004BC
-_02252014: .word 0x000004BD
-
- thumb_func_start MOD11_02252018
-MOD11_02252018: ; 0x02252018
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r5, r0, #0
- mov r0, #1
- add r3, sp, #0
- strh r0, [r3]
- add r4, r1, #0
- mov r2, sp
- ldrb r1, [r4, #0xd]
- ldrh r6, [r3]
- ldr r0, [r4]
- sub r2, r2, #4
- strh r6, [r2]
- ldrh r3, [r3, #2]
- strh r3, [r2, #2]
- ldr r2, [r2]
- bl MOD11_022558C4
- ldrb r1, [r4, #0xd]
- ldrb r2, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_022567B8
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- ldr r0, [r0]
- bl FreeToHeap
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- bl FreeToHeap
- ldr r0, [r4, #8]
- bl FreeToHeap
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02252070
-MOD11_02252070: ; 0x02252070
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4, #0xd]
- add r5, r0, #0
- ldrb r2, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_022567B8
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- ldr r0, [r0]
- bl FreeToHeap
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- bl FreeToHeap
- ldr r0, [r4, #8]
- bl FreeToHeap
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022520A8
-MOD11_022520A8: ; 0x022520A8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_022300CC
- ldrb r1, [r4, #0xa]
- add r5, r0, #0
- cmp r1, #3
- bhi _02252144
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022520CA: ; jump table
- .short _022520D2 - _022520CA - 2 ; case 0
- .short _0225213C - _022520CA - 2 ; case 1
- .short _022523B2 - _022520CA - 2 ; case 2
- .short _0225240E - _022520CA - 2 ; case 3
-_022520D2:
- ldr r0, [r4]
- mov r1, #0
- bl MOD11_0222FF6C
- add r6, r0, #0
- mov r1, #0xff
- bl FUN_02019620
- add r0, r6, #0
- bl FUN_02019548
- ldr r0, [r4]
- bl MOD11_02230094
- bl MOD11_0225C76C
- strb r0, [r4, #0x17]
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #1
- bl FUN_020143A8
- mov r1, #0
- mov r2, #3
- str r1, [sp]
- mov r0, #7
- str r0, [sp, #4]
- str r1, [sp, #8]
- mov r1, #5
- add r3, r1, #0
- add r0, r5, #0
- lsl r2, r2, #0xa
- sub r3, #0xd
- bl FUN_02003210
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0xa
- add r3, r1, #0
- ldr r2, _0225246C ; =0x0000FFFF
- add r0, r5, #0
- sub r3, #0x12
- bl FUN_02003210
- ldrb r0, [r4, #0xa]
- add sp, #0x24
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_0225213C:
- bl FUN_020038E4
- cmp r0, #0
- beq _02252146
-_02252144:
- b _02252468
-_02252146:
- ldr r0, [r4]
- bl MOD11_0222D7F8
- mov r0, #5
- mov r1, #0x38
- bl AllocFromHeap
- str r0, [r4, #4]
- mov r0, #5
- bl FUN_0206B8AC
- ldr r1, [r4, #4]
- str r0, [r1]
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #0xc
- and r0, r1
- cmp r0, #0xc
- beq _0225217A
- ldr r0, [r4]
- bl MOD11_0222FF74
- cmp r0, #0xcb
- beq _0225217A
- b _0225228E
-_0225217A:
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_02230260
- cmp r0, #2
- bne _02252196
- ldrb r0, [r4, #9]
- str r0, [sp, #0x18]
- ldr r0, [r4]
- ldr r1, [sp, #0x18]
- bl MOD11_022302BC
- str r0, [sp, #0x14]
- b _022521A4
-_02252196:
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_022302BC
- str r0, [sp, #0x18]
- ldrb r0, [r4, #9]
- str r0, [sp, #0x14]
-_022521A4:
- mov r0, #5
- bl AllocMonZeroed
- add r6, r0, #0
- mov r5, #0
-_022521AE:
- ldr r0, [r4, #4]
- add r1, r6, #0
- ldr r0, [r0]
- bl FUN_0206B900
- add r5, r5, #1
- cmp r5, #6
- blt _022521AE
- add r0, r6, #0
- bl FreeToHeap
- ldr r0, [r4]
- ldr r1, [sp, #0x18]
- mov r7, #0
- bl MOD11_0222FFC8
- cmp r0, #0
- ble _02252216
- ldr r0, [sp, #0x18]
- mov r1, #6
- mul r1, r0
- add r5, r4, r1
- add r6, r7, #0
-_022521DC:
- ldrb r2, [r5, #0x1c]
- ldr r0, [r4]
- ldr r1, [sp, #0x18]
- bl MOD11_02230014
- str r0, [sp, #0x1c]
- ldr r0, [r4, #4]
- add r1, r6, #0
- ldr r0, [r0]
- bl GetPartyMonByIndex
- add r1, r0, #0
- ldr r0, [sp, #0x1c]
- bl FUN_02069B88
- ldr r0, [r4, #4]
- ldrb r1, [r5, #0x1c]
- add r0, r0, r6
- add r0, #0x2c
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, [sp, #0x18]
- add r5, r5, #1
- add r6, r6, #2
- add r7, r7, #1
- bl MOD11_0222FFC8
- cmp r7, r0
- blt _022521DC
-_02252216:
- ldr r0, [r4]
- ldr r1, [sp, #0x14]
- mov r6, #0
- bl MOD11_0222FFC8
- cmp r0, #0
- ble _02252272
- ldr r0, [sp, #0x14]
- mov r1, #6
- mul r1, r0
- mov r0, #1
- add r5, r4, r1
- str r0, [sp, #0xc]
- add r7, r6, #0
-_02252232:
- ldrb r2, [r5, #0x1c]
- ldr r0, [r4]
- ldr r1, [sp, #0x14]
- bl MOD11_02230014
- str r0, [sp, #0x20]
- ldr r0, [r4, #4]
- ldr r1, [sp, #0xc]
- ldr r0, [r0]
- bl GetPartyMonByIndex
- add r1, r0, #0
- ldr r0, [sp, #0x20]
- bl FUN_02069B88
- ldr r0, [r4, #4]
- ldrb r1, [r5, #0x1c]
- add r0, r0, r7
- add r0, #0x2d
- strb r1, [r0]
- ldr r0, [sp, #0xc]
- ldr r1, [sp, #0x14]
- add r0, r0, #2
- str r0, [sp, #0xc]
- ldr r0, [r4]
- add r5, r5, #1
- add r7, r7, #2
- add r6, r6, #1
- bl MOD11_0222FFC8
- cmp r6, r0
- blt _02252232
-_02252272:
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_02230260
- cmp r0, #4
- bne _02252286
- ldr r0, [r4, #4]
- mov r1, #1
- strb r1, [r0, #0x11]
- b _0225230E
-_02252286:
- ldr r0, [r4, #4]
- mov r1, #0
- strb r1, [r0, #0x11]
- b _0225230E
-_0225228E:
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _022522B0
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _022522B0
- ldrb r1, [r4, #9]
- mov r0, #1
- add r7, r1, #0
- and r7, r0
- b _022522B4
-_022522B0:
- ldrb r1, [r4, #9]
- add r7, r1, #0
-_022522B4:
- ldr r0, [r4]
- bl MOD11_02230260
- cmp r0, #4
- bne _022522C2
- mov r1, #1
- b _022522C4
-_022522C2:
- mov r1, #0
-_022522C4:
- ldr r0, [r4, #4]
- strb r1, [r0, #0x11]
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_0222FF88
- str r0, [sp, #0x10]
- mov r5, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0225230E
- mov r0, #6
- mul r0, r7
- add r6, r4, r0
-_022522E2:
- ldrb r2, [r6, #0x1c]
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD11_02230014
- add r1, r0, #0
- ldr r0, [r4, #4]
- ldr r0, [r0]
- bl FUN_0206B900
- ldr r0, [r4, #4]
- ldrb r1, [r6, #0x1c]
- add r0, r0, r5
- add r0, #0x2c
- strb r1, [r0]
- ldr r0, [sp, #0x10]
- add r6, r6, #1
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _022522E2
-_0225230E:
- ldr r1, [r4]
- ldr r0, [r4, #4]
- str r1, [r0, #8]
- ldr r0, [r4, #4]
- mov r1, #5
- str r1, [r0, #0xc]
- ldr r0, [r4, #4]
- mov r1, #0
- add r0, #0x36
- strb r1, [r0]
- ldr r1, [r4, #0x10]
- ldr r0, [r4, #4]
- strh r1, [r0, #0x24]
- ldrb r1, [r4, #0x16]
- ldr r0, [r4, #4]
- strb r1, [r0, #0x12]
- ldr r0, [r4, #4]
- ldrb r1, [r4, #0xb]
- add r0, #0x35
- strb r1, [r0]
- ldrh r1, [r4, #0x14]
- ldr r0, [r4, #4]
- strh r1, [r0, #0x22]
- ldrb r1, [r4, #9]
- ldr r0, [r4, #4]
- str r1, [r0, #0x28]
- ldr r0, [r4, #4]
- ldrb r1, [r4, #0x17]
- add r0, #0x32
- strb r1, [r0]
- ldrb r0, [r4, #9]
- bl MaskOfFlagNo
- ldrb r1, [r4, #0x18]
- tst r0, r1
- bne _0225235E
- ldrb r0, [r4, #9]
- add r0, r4, r0
- ldrb r1, [r0, #0xc]
- b _02252360
-_0225235E:
- mov r1, #6
-_02252360:
- ldr r0, [r4, #4]
- strb r1, [r0, #0x14]
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- beq _02252378
- ldr r0, [r4, #4]
- mov r1, #6
- strb r1, [r0, #0x15]
- b _022523A2
-_02252378:
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_022302BC
- bl MaskOfFlagNo
- ldrb r1, [r4, #0x18]
- tst r0, r1
- bne _0225239C
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_022302BC
- add r0, r4, r0
- ldrb r1, [r0, #0xc]
- ldr r0, [r4, #4]
- strb r1, [r0, #0x15]
- b _022523A2
-_0225239C:
- ldr r0, [r4, #4]
- mov r1, #6
- strb r1, [r0, #0x15]
-_022523A2:
- ldr r0, [r4, #4]
- bl MOD07_02211E60
- ldrb r0, [r4, #0xa]
- add sp, #0x24
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_022523B2:
- ldr r0, [r4, #4]
- add r0, #0x36
- ldrb r0, [r0]
- cmp r0, #0
- beq _02252468
- ldr r0, [r4]
- bl MOD11_0222D88C
- ldr r0, [r4]
- bl MOD11_02230094
- ldr r1, [r4, #4]
- add r1, #0x32
- ldrb r1, [r1]
- bl MOD11_0225C778
- mov r0, #7
- str r0, [sp]
- mov r0, #0
- mov r1, #5
- str r0, [sp, #4]
- mov r2, #3
- add r3, r1, #0
- str r0, [sp, #8]
- add r0, r5, #0
- lsl r2, r2, #0xa
- sub r3, #0xd
- bl FUN_02003210
- mov r0, #0x10
- str r0, [sp]
- mov r0, #0
- mov r1, #0xa
- str r0, [sp, #4]
- add r3, r1, #0
- str r0, [sp, #8]
- ldr r2, _0225246C ; =0x0000FFFF
- add r0, r5, #0
- sub r3, #0x12
- bl FUN_02003210
- ldrb r0, [r4, #0xa]
- add sp, #0x24
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_0225240E:
- bl FUN_020038E4
- cmp r0, #0
- bne _02252468
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #0
- bl FUN_020143A8
- ldr r3, [r4, #4]
- ldr r0, [r4]
- ldrb r2, [r3, #0x11]
- cmp r2, #6
- bne _02252436
- ldrb r1, [r4, #9]
- mov r2, #0xff
- bl MOD11_02255964
- b _02252444
-_02252436:
- add r2, r3, r2
- add r2, #0x2c
- ldrb r2, [r2]
- ldrb r1, [r4, #9]
- add r2, r2, #1
- bl MOD11_02255964
-_02252444:
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- ldr r0, [r4, #4]
- ldr r0, [r0]
- bl FreeToHeap
- ldr r0, [r4, #4]
- bl FreeToHeap
- add r0, r4, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
-_02252468:
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0225246C: .word 0x0000FFFF
-
- thumb_func_start MOD11_02252470
-MOD11_02252470: ; 0x02252470
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- str r0, [sp]
- ldr r0, [r5]
- bl MOD11_0222FF74
- mov r1, #0x10
- ldrb r6, [r5, #9]
- tst r1, r0
- bne _0225248C
- mov r1, #8
- tst r0, r1
- beq _02252490
-_0225248C:
- str r6, [sp, #4]
- b _0225249A
-_02252490:
- ldr r0, [r5]
- add r1, r6, #0
- bl MOD11_022302BC
- str r0, [sp, #4]
-_0225249A:
- ldr r0, [r5]
- add r1, r6, #0
- bl MOD16_021F4A30
- add r4, r0, #0
- cmp r4, #6
- bne _022524FE
- ldr r0, [r5]
- add r1, r6, #0
- bl MOD16_021F4698
- add r4, r0, #0
- cmp r4, #6
- bne _022524FE
- ldrb r1, [r5, #9]
- ldr r0, [r5]
- bl MOD11_0222FF88
- str r0, [sp, #8]
- mov r4, #0
- bl GetPartyCount
- cmp r0, #0
- ble _022524FE
- ldr r0, [sp, #4]
- add r7, r5, r6
- add r6, r5, r0
-_022524D0:
- ldrb r1, [r5, #9]
- ldr r0, [r5]
- add r2, r4, #0
- bl MOD11_02230014
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _022524F2
- ldrb r0, [r7, #0xc]
- cmp r4, r0
- beq _022524F2
- ldrb r0, [r6, #0xc]
- cmp r4, r0
- bne _022524FE
-_022524F2:
- ldr r0, [sp, #8]
- add r4, r4, #1
- bl GetPartyCount
- cmp r4, r0
- blt _022524D0
-_022524FE:
- ldrb r1, [r5, #9]
- ldr r0, [r5]
- add r2, r4, #1
- bl MOD11_02255964
- ldrb r1, [r5, #9]
- ldrb r2, [r5, #8]
- ldr r0, [r5]
- bl MOD11_022567B8
- add r0, r5, #0
- bl FreeToHeap
- ldr r0, [sp]
- bl FUN_0200CAB4
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02252524
-MOD11_02252524: ; 0x02252524
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4, #9]
- add r5, r0, #0
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02252544
-MOD11_02252544: ; 0x02252544
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- add r4, r1, #0
- add r7, r0, #0
- ldr r0, [r4]
- bl MOD11_0222FF68
- ldr r0, [r4]
- bl MOD11_02230094
- add r5, r0, #0
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_0222FF7C
- str r0, [sp]
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_022302BC
- add r1, r0, #0
- ldrb r0, [r4, #0xd]
- cmp r1, r0
- beq _0225257E
- ldr r0, [r4]
- bl MOD11_02231380
- add r6, r0, #0
- b _02252580
-_0225257E:
- mov r6, #0
-_02252580:
- ldrb r0, [r4, #0xe]
- cmp r0, #4
- bhi _02252600
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02252592: ; jump table
- .short _0225259C - _02252592 - 2 ; case 0
- .short _022525EC - _02252592 - 2 ; case 1
- .short _0225267E - _02252592 - 2 ; case 2
- .short _0225269C - _02252592 - 2 ; case 3
- .short _022526E0 - _02252592 - 2 ; case 4
-_0225259C:
- add r0, r5, #0
- bl MOD11_02258F5C
- cmp r0, #0
- beq _02252600
- ldr r0, [r4, #0x10]
- cmp r0, #0
- beq _022525E4
- ldr r0, [r4]
- bl MOD11_022300C4
- add r5, r0, #0
- ldrb r0, [r4, #0xf]
- cmp r0, #5
- add r0, sp, #4
- bne _022525C6
- mov r1, #0x82
- strb r1, [r0, #5]
- ldr r0, [r4, #0x14]
- str r0, [sp, #0xc]
- b _022525CA
-_022525C6:
- mov r1, #0
- strb r1, [r0, #5]
-_022525CA:
- ldr r1, [r4, #0x10]
- add r0, sp, #4
- strh r1, [r0, #6]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r2, sp, #8
- bl MOD11_0223178C
- strh r0, [r4, #0x1a]
-_022525E4:
- mov r0, #1
- add sp, #0x2c
- strb r0, [r4, #0xe]
- pop {r4, r5, r6, r7, pc}
-_022525EC:
- ldrh r0, [r4, #0x1a]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- beq _02252602
- ldr r0, [r4, #0x10]
- cmp r0, #0
- beq _02252602
-_02252600:
- b _0225270A
-_02252602:
- add r0, r5, #0
- bl MOD11_02258E30
- ldrh r1, [r4, #0x18]
- add r0, sp, #4
- strh r1, [r0]
- ldrb r0, [r4, #0xf]
- cmp r0, #5
- bhi _02252672
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02252620: ; jump table
- .short _0225262C - _02252620 - 2 ; case 0
- .short _0225263A - _02252620 - 2 ; case 1
- .short _02252648 - _02252620 - 2 ; case 2
- .short _02252656 - _02252620 - 2 ; case 3
- .short _02252664 - _02252620 - 2 ; case 4
- .short _0225262C - _02252620 - 2 ; case 5
-_0225262C:
- add r0, r5, #0
- mov r1, #0xd
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02258820
- b _02252676
-_0225263A:
- add r0, r5, #0
- mov r1, #0xe
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02258820
- b _02252676
-_02252648:
- add r0, r5, #0
- mov r1, #0xf
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02258820
- b _02252676
-_02252656:
- add r0, r5, #0
- mov r1, #0x10
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02258820
- b _02252676
-_02252664:
- add r0, r5, #0
- mov r1, #0x11
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02258820
- b _02252676
-_02252672:
- bl ErrorHandling
-_02252676:
- mov r0, #2
- add sp, #0x2c
- strb r0, [r4, #0xe]
- pop {r4, r5, r6, r7, pc}
-_0225267E:
- add r0, r5, #0
- bl MOD11_02258E74
- mov r1, #0
- mvn r1, r1
- str r0, [r4, #8]
- cmp r0, r1
- beq _0225270A
- ldr r0, _02252710 ; =0x000005DD
- bl FUN_020054C8
- mov r0, #3
- add sp, #0x2c
- strb r0, [r4, #0xe]
- pop {r4, r5, r6, r7, pc}
-_0225269C:
- add r0, r5, #0
- bl MOD11_02258F5C
- cmp r0, #1
- bne _0225270A
- ldr r0, [r4, #4]
- bl MOD11_02257238
- ldr r0, [sp]
- bl MOD11_0225468C
- add r0, r6, #0
- bl MOD11_02258184
- add r0, r5, #0
- bl MOD11_02258E30
- mov r1, #0
- add r0, r5, #0
- add r2, r1, #0
- add r3, r1, #0
- bl MOD11_02258820
- ldr r0, [r4, #8]
- cmp r0, #1
- bne _022526D8
- add r0, r5, #0
- mov r1, #0
- bl MOD11_0225B77C
-_022526D8:
- mov r0, #4
- add sp, #0x2c
- strb r0, [r4, #0xe]
- pop {r4, r5, r6, r7, pc}
-_022526E0:
- add r0, r5, #0
- bl MOD11_0225B780
- cmp r0, #1
- bne _0225270A
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- ldr r2, [r4, #8]
- bl MOD11_02255528
- ldrb r1, [r4, #0xd]
- ldrb r2, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r7, #0
- bl FUN_0200CAB4
-_0225270A:
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- nop
-_02252710: .word 0x000005DD
-
- thumb_func_start MOD11_02252714
-MOD11_02252714: ; 0x02252714
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4, #0xd]
- add r5, r0, #0
- ldrb r2, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02252734
-MOD11_02252734: ; 0x02252734
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4, #0xd]
- add r5, r0, #0
- ldrb r2, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02252754
-MOD11_02252754: ; 0x02252754
- push {r3, r4, r5, lr}
- sub sp, #0x1fc
- sub sp, #0x14
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- add r0, #0x6a
- ldrb r0, [r0]
- cmp r0, #0xa
- bls _0225276A
- b _022529B8
-_0225276A:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02252776: ; jump table
- .short _0225278C - _02252776 - 2 ; case 0
- .short _02252996 - _02252776 - 2 ; case 1
- .short _022527E6 - _02252776 - 2 ; case 2
- .short _02252996 - _02252776 - 2 ; case 3
- .short _02252842 - _02252776 - 2 ; case 4
- .short _02252996 - _02252776 - 2 ; case 5
- .short _02252890 - _02252776 - 2 ; case 6
- .short _02252996 - _02252776 - 2 ; case 7
- .short _02252918 - _02252776 - 2 ; case 8
- .short _02252996 - _02252776 - 2 ; case 9
- .short _02252974 - _02252776 - 2 ; case 10
-_0225278C:
- ldrh r0, [r4, #0x1e]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- beq _022527DA
- ldr r0, [r4, #0x5c]
- cmp r0, #0
- bne _022527DA
- ldr r0, [r4, #8]
- mov r1, #6
- bl FUN_0200782C
- cmp r0, #0
- bne _022527DA
- add r0, r4, #0
- add r0, #0x69
- ldrb r1, [r0]
- mov r0, #0xf
- add r2, sp, #0x1b8
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0xc]
- add r3, sp, #0x1b8
- bl MOD11_02254404
- add sp, #0x1fc
- mov r0, #1
- add r4, #0x6a
- add sp, #0x14
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_022527DA:
- add sp, #0x1fc
- mov r0, #4
- add r4, #0x6a
- add sp, #0x14
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_022527E6:
- add r3, r4, #0
- add r3, #0x69
- ldrb r3, [r3]
- ldr r0, [r4]
- add r1, #0x10
- add r2, sp, #0x168
- bl MOD11_0225452C
- add r0, sp, #0x168
- mov r1, #5
- bl MOD08_0222A494
- add r0, r4, #0
- add r0, #0x69
- ldrb r1, [r0]
- mov r0, #0x10
- add r2, sp, #0x110
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0xc]
- add r3, sp, #0x110
- bl MOD11_02254404
- mov r0, #0x1a
- add sp, #0x1fc
- ldr r1, [r4, #4]
- mov r2, #0
- lsl r0, r0, #4
- str r2, [r1, r0]
- add r0, r4, #0
- add r0, #0x6a
- ldrb r0, [r0]
- add r4, #0x6a
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02252842:
- ldr r0, [r4]
- mov r1, #2
- bl MOD11_02231484
- add r0, r4, #0
- add r0, #0x6b
- ldrb r0, [r0]
- cmp r0, #0
- beq _0225285A
- ldr r0, [r4]
- bl MOD11_02231410
-_0225285A:
- add r0, r4, #0
- add r0, #0x6c
- ldrb r0, [r0]
- cmp r0, #0
- beq _02252870
- ldr r0, [r4]
- bl MOD11_02230068
- mov r1, #1
- bl FUN_02008284
-_02252870:
- add r3, r4, #0
- ldr r0, [r4]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0xc]
- add r3, #0x10
- bl MOD11_02254404
- add r0, r4, #0
- add r0, #0x6a
- ldrb r0, [r0]
- add sp, #0x1fc
- add r4, #0x6a
- add r0, r0, #1
- add sp, #0x14
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02252890:
- ldr r0, [r4]
- mov r1, #0
- bl MOD11_02231484
- add r0, r4, #0
- add r0, #0x6b
- ldrb r0, [r0]
- cmp r0, #0
- beq _022528A8
- ldr r0, [r4]
- bl MOD11_022313E0
-_022528A8:
- add r0, r4, #0
- add r0, #0x6c
- ldrb r0, [r0]
- cmp r0, #0
- beq _022528BE
- ldr r0, [r4]
- bl MOD11_02230068
- mov r1, #1
- bl FUN_02008290
-_022528BE:
- ldrh r0, [r4, #0x1e]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- beq _0225290C
- ldr r0, [r4, #0x5c]
- cmp r0, #0
- bne _0225290C
- ldr r0, [r4, #8]
- mov r1, #6
- bl FUN_0200782C
- cmp r0, #0
- bne _0225290C
- add r0, r4, #0
- add r0, #0x69
- ldrb r1, [r0]
- mov r0, #0xf
- add r2, sp, #0xb8
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0xc]
- add r3, sp, #0xb8
- bl MOD11_02254404
- add sp, #0x1fc
- mov r0, #7
- add r4, #0x6a
- add sp, #0x14
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_0225290C:
- add sp, #0x1fc
- mov r0, #0xa
- add r4, #0x6a
- add sp, #0x14
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02252918:
- add r3, r4, #0
- add r3, #0x69
- ldrb r3, [r3]
- ldr r0, [r4]
- add r1, #0x10
- add r2, sp, #0x68
- bl MOD11_0225452C
- add r0, sp, #0x68
- mov r1, #5
- bl MOD08_0222A568
- add r0, r4, #0
- add r0, #0x69
- ldrb r1, [r0]
- mov r0, #0x10
- add r2, sp, #0x10
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0xc]
- add r3, sp, #0x10
- bl MOD11_02254404
- mov r0, #0x1a
- add sp, #0x1fc
- ldr r1, [r4, #4]
- mov r2, #1
- lsl r0, r0, #4
- str r2, [r1, r0]
- add r0, r4, #0
- add r0, #0x6a
- ldrb r0, [r0]
- add r4, #0x6a
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02252974:
- add r2, r4, #0
- add r1, #0x69
- add r2, #0x68
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- add sp, #0x1fc
- add sp, #0x14
- pop {r3, r4, r5, pc}
-_02252996:
- ldr r0, [r4, #0xc]
- bl MOD08_02212384
- ldr r0, [r4, #0xc]
- bl MOD08_022123A0
- cmp r0, #0
- bne _022529B8
- ldr r0, [r4, #0xc]
- bl MOD08_022123B0
- add r0, r4, #0
- add r0, #0x6a
- ldrb r0, [r0]
- add r4, #0x6a
- add r0, r0, #1
- strb r0, [r4]
-_022529B8:
- add sp, #0x1fc
- add sp, #0x14
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022529C0
-MOD11_022529C0: ; 0x022529C0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #9]
- cmp r0, #6
- bhs _022529FA
- ldrb r0, [r4, #0xa]
- cmp r0, #0
- bne _022529F4
- mov r0, #2
- strb r0, [r4, #0xa]
- ldrb r0, [r4, #9]
- mov r1, #6
- add r0, r0, #1
- strb r0, [r4, #9]
- ldr r0, [r4, #4]
- bl FUN_0200782C
- add r3, r0, #0
- mov r2, #1
- ldr r0, [r4, #4]
- mov r1, #6
- eor r2, r3
- bl FUN_02007558
- pop {r3, r4, r5, pc}
-_022529F4:
- sub r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, pc}
-_022529FA:
- ldr r0, [r4, #4]
- mov r1, #6
- mov r2, #0
- bl FUN_02007558
- ldrb r1, [r4, #8]
- ldr r0, [r4]
- mov r2, #0x17
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02252A1C
-MOD11_02252A1C: ; 0x02252A1C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _02252A2E
- cmp r0, #1
- beq _02252A3C
- b _02252A52
-_02252A2E:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_02257150
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_02252A3C:
- add r0, r4, #0
- bl MOD11_02257184
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _02252A6C
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02252A52:
- add r2, r4, #0
- add r1, #0x24
- add r2, #0x4c
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4, #0xc]
- bl MOD11_022567B8
- mov r0, #0
- str r0, [r4, #0x10]
- add r0, r5, #0
- bl FUN_0200CAB4
-_02252A6C:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02252A70
-MOD11_02252A70: ; 0x02252A70
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _02252A86
- cmp r0, #1
- beq _02252AA2
- cmp r0, #2
- beq _02252AE8
- b _02252B0E
-_02252A86:
- add r0, r4, #0
- mov r1, #0
- add r0, #0x4e
- strb r1, [r0]
- ldr r0, _02252B2C ; =0x0000070B
- bl FUN_020054C8
- ldr r1, [r4, #0x40]
- add r0, r4, #0
- bl MOD11_022571B8
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_02252AA2:
- add r0, r4, #0
- add r0, #0x4e
- ldrb r0, [r0]
- cmp r0, #8
- bhs _02252ABA
- add r0, r4, #0
- add r0, #0x4e
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x4e
- strb r1, [r0]
-_02252ABA:
- add r0, r4, #0
- bl MOD11_022571EC
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _02252B28
- add r0, r4, #0
- add r0, #0x4e
- ldrb r0, [r0]
- cmp r0, #8
- blo _02252AE0
- ldr r0, _02252B2C ; =0x0000070B
- mov r1, #0
- bl FUN_020054F0
- mov r0, #0x64
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02252AE0:
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02252AE8:
- add r0, r4, #0
- add r0, #0x4e
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x4e
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0x4e
- ldrb r0, [r0]
- cmp r0, #8
- blo _02252B28
- ldr r0, _02252B2C ; =0x0000070B
- mov r1, #0
- bl FUN_020054F0
- mov r0, #0x64
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02252B0E:
- add r2, r4, #0
- add r1, #0x24
- add r2, #0x4c
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4, #0xc]
- bl MOD11_022567B8
- mov r0, #0
- str r0, [r4, #0x10]
- add r0, r5, #0
- bl FUN_0200CAB4
-_02252B28:
- pop {r3, r4, r5, pc}
- nop
-_02252B2C: .word 0x0000070B
-
- thumb_func_start MOD11_02252B30
-MOD11_02252B30: ; 0x02252B30
- push {r4, r5, r6, lr}
- sub sp, #0x110
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- add r1, r4, #0
- add r1, #0x66
- ldrb r1, [r1]
- add r5, r0, #0
- cmp r1, #0xa
- bls _02252B4C
- b _02252DAA
-_02252B4C:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02252B58: ; jump table
- .short _02252B6E - _02252B58 - 2 ; case 0
- .short _02252C16 - _02252B58 - 2 ; case 1
- .short _02252BBA - _02252B58 - 2 ; case 2
- .short _02252C16 - _02252B58 - 2 ; case 3
- .short _02252C3A - _02252B58 - 2 ; case 4
- .short _02252C82 - _02252B58 - 2 ; case 5
- .short _02252C9C - _02252B58 - 2 ; case 6
- .short _02252CD8 - _02252B58 - 2 ; case 7
- .short _02252D04 - _02252B58 - 2 ; case 8
- .short _02252D44 - _02252B58 - 2 ; case 9
- .short _02252D8C - _02252B58 - 2 ; case 10
-_02252B6E:
- add r0, r4, #0
- add r0, #0x70
- ldrh r0, [r0]
- cmp r0, #0
- beq _02252BB0
- add r0, r4, #0
- add r0, #0x65
- ldrb r1, [r0]
- mov r0, #0xf
- add r2, sp, #0xb8
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r5, #0
- add r3, sp, #0xb8
- bl MOD11_02254404
- add r0, r4, #0
- add r0, #0x66
- ldrb r0, [r0]
- add r4, #0x66
- add sp, #0x110
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252BB0:
- mov r0, #4
- add r4, #0x66
- add sp, #0x110
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252BBA:
- add r3, r4, #0
- add r3, #0x65
- ldrb r3, [r3]
- add r1, r4, #0
- ldr r0, [r4]
- add r1, #0xc
- add r2, sp, #0x68
- bl MOD11_0225452C
- add r0, sp, #0x68
- mov r1, #5
- bl MOD08_0222A494
- add r0, r4, #0
- add r0, #0x65
- ldrb r1, [r0]
- mov r0, #0x10
- add r2, sp, #0x10
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r5, #0
- add r3, sp, #0x10
- bl MOD11_02254404
- mov r0, #0x1a
- ldr r1, [r4, #4]
- mov r2, #0
- lsl r0, r0, #4
- str r2, [r1, r0]
- add r0, r4, #0
- add r0, #0x66
- ldrb r0, [r0]
- add r4, #0x66
- add sp, #0x110
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252C16:
- bl MOD08_02212384
- add r0, r5, #0
- bl MOD08_022123A0
- cmp r0, #0
- bne _02252C8A
- add r0, r5, #0
- bl MOD08_022123B0
- add r0, r4, #0
- add r0, #0x66
- ldrb r0, [r0]
- add r4, #0x66
- add sp, #0x110
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252C3A:
- add r0, r4, #0
- add r0, #0x67
- ldrb r0, [r0]
- cmp r0, #2
- bne _02252C48
- mov r5, #0x75
- b _02252C4C
-_02252C48:
- mov r5, #0x74
- mvn r5, r5
-_02252C4C:
- add r1, r4, #0
- add r1, #0x65
- ldrb r1, [r1]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- add r1, r4, #0
- add r1, #0x72
- ldrh r1, [r1]
- add r2, r4, #0
- add r2, #0x68
- str r1, [sp, #4]
- mov r1, #5
- str r1, [sp, #8]
- ldrh r2, [r2]
- add r3, r5, #0
- bl FUN_02069FB0
- add r0, r4, #0
- add r0, #0x66
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x66
- strb r1, [r0]
-_02252C82:
- bl FUN_02005670
- cmp r0, #0
- beq _02252C8C
-_02252C8A:
- b _02252DAA
-_02252C8C:
- add r0, r4, #0
- add r0, #0x66
- ldrb r0, [r0]
- add r4, #0x66
- add sp, #0x110
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252C9C:
- add r0, r4, #0
- add r0, #0x67
- ldrb r0, [r0]
- cmp r0, #2
- ldr r0, _02252DB0 ; =0x00000703
- bne _02252CB0
- mov r1, #0x75
- bl FUN_020054A8
- b _02252CB8
-_02252CB0:
- mov r1, #0x74
- mvn r1, r1
- bl FUN_020054A8
-_02252CB8:
- ldr r0, [r4, #8]
- mov r1, #0x29
- bl FUN_0200782C
- cmp r0, #0
- ble _02252CCE
- mov r0, #7
- add r4, #0x66
- add sp, #0x110
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252CCE:
- mov r0, #8
- add r4, #0x66
- add sp, #0x110
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252CD8:
- ldr r0, [r4, #8]
- mov r1, #0x29
- bl FUN_0200782C
- add r5, r0, #0
- sub r5, #8
- bpl _02252CE8
- mov r5, #0
-_02252CE8:
- ldr r0, [r4, #8]
- mov r1, #0x29
- add r2, r5, #0
- bl FUN_02007558
- cmp r5, #0
- bne _02252DAA
- add r0, r4, #0
- add r0, #0x66
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x66
- strb r1, [r0]
-_02252D04:
- ldr r0, [r4, #0x6c]
- add r1, r4, #0
- str r0, [sp]
- add r0, r4, #0
- add r2, r4, #0
- add r3, r4, #0
- add r0, #0x68
- add r1, #0x6a
- add r2, #0x67
- add r3, #0x6b
- ldrh r0, [r0]
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldrb r3, [r3]
- bl FUN_02068E88
- mov r3, #0x50
- sub r0, r3, r0
- str r0, [sp]
- mov r1, #0
- ldr r0, [r4, #8]
- add r2, r1, #0
- bl FUN_02007E40
- add r0, r4, #0
- add r0, #0x66
- ldrb r0, [r0]
- add r4, #0x66
- add sp, #0x110
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252D44:
- ldr r0, [r4, #8]
- mov r1, #1
- bl FUN_0200782C
- add r2, r0, #0
- ldr r0, [r4, #8]
- mov r1, #1
- add r2, #8
- bl FUN_02007558
- ldr r0, [r4, #8]
- mov r1, #0x12
- bl FUN_0200782C
- add r5, r0, #0
- sub r5, #8
- bpl _02252D68
- mov r5, #0
-_02252D68:
- ldr r0, [r4, #8]
- mov r1, #0x12
- add r2, r5, #0
- bl FUN_02007558
- cmp r5, #0
- bne _02252DAA
- ldr r0, [r4, #8]
- bl FUN_02007534
- add r0, r4, #0
- add r0, #0x66
- ldrb r0, [r0]
- add r4, #0x66
- add sp, #0x110
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252D8C:
- add r1, r4, #0
- add r2, r4, #0
- add r1, #0x65
- add r2, #0x64
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
-_02252DAA:
- add sp, #0x110
- pop {r4, r5, r6, pc}
- nop
-_02252DB0: .word 0x00000703
-
- thumb_func_start MOD11_02252DB4
-MOD11_02252DB4: ; 0x02252DB4
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- add r6, r0, #0
- ldr r0, [r5]
- bl MOD11_022300CC
- add r4, r0, #0
- ldr r0, [r5]
- bl MOD11_02230068
- add r7, r0, #0
- ldrb r0, [r5, #6]
- cmp r0, #0
- beq _02252DDE
- cmp r0, #1
- beq _02252E1C
- cmp r0, #2
- beq _02252E30
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-_02252DDE:
- ldr r0, [r5]
- bl MOD11_02230288
- mov r1, #1
- bl FUN_020143A8
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r1, [sp, #8]
- ldr r2, _02252E4C ; =0x0000FFFF
- add r0, r4, #0
- mov r1, #0xf
- mov r3, #1
- bl FUN_02003210
- mov r1, #0
- add r0, r7, #0
- mov r2, #0x10
- add r3, r1, #0
- str r1, [sp]
- bl FUN_02007E98
- mov r0, #0
- mov r1, #0x10
- bl FUN_020053CC
- ldrb r0, [r5, #6]
- add r0, r0, #1
- strb r0, [r5, #6]
-_02252E1C:
- add r0, r4, #0
- bl FUN_020038E4
- cmp r0, #0
- bne _02252E46
- ldrb r0, [r5, #6]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r5, #6]
- pop {r4, r5, r6, r7, pc}
-_02252E30:
- ldrb r1, [r5, #5]
- ldrb r2, [r5, #4]
- ldr r0, [r5]
- bl MOD11_022567B8
- add r0, r5, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
-_02252E46:
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02252E4C: .word 0x0000FFFF
-
- thumb_func_start MOD11_02252E50
-MOD11_02252E50: ; 0x02252E50
- push {r4, r5, r6, lr}
- sub sp, #0x110
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- add r1, r4, #0
- add r1, #0x62
- ldrb r1, [r1]
- add r5, r0, #0
- cmp r1, #4
- bls _02252E6C
- b _02252F98
-_02252E6C:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02252E78: ; jump table
- .short _02252E82 - _02252E78 - 2 ; case 0
- .short _02252EC4 - _02252E78 - 2 ; case 1
- .short _02252F74 - _02252E78 - 2 ; case 2
- .short _02252F18 - _02252E78 - 2 ; case 3
- .short _02252F74 - _02252E78 - 2 ; case 4
-_02252E82:
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x20]
- cmp r0, #0
- beq _02252EBA
- add r2, r4, #0
- add r2, #0x63
- ldrb r2, [r2]
- mov r1, #6
- bl FUN_02007558
- add r0, r4, #0
- add r0, #0x63
- ldrb r0, [r0]
- cmp r0, #1
- bne _02252EAA
- mov r0, #0xff
- add r4, #0x62
- add sp, #0x110
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252EAA:
- add r0, r4, #0
- add r0, #0x62
- ldrb r0, [r0]
- add r4, #0x62
- add sp, #0x110
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252EBA:
- mov r0, #0xff
- add r4, #0x62
- add sp, #0x110
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252EC4:
- ldr r0, [r4, #0x64]
- cmp r0, #0
- beq _02252F0E
- mov r0, #0x1a
- ldr r1, [r4, #4]
- lsl r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02252F0E
- add r0, r4, #0
- add r0, #0x61
- ldrb r1, [r0]
- mov r0, #0xf
- add r2, sp, #0xb8
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r5, #0
- add r3, sp, #0xb8
- bl MOD11_02254404
- add r0, r4, #0
- add r0, #0x62
- ldrb r0, [r0]
- add r4, #0x62
- add sp, #0x110
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252F0E:
- mov r0, #0xff
- add r4, #0x62
- add sp, #0x110
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252F18:
- add r3, r4, #0
- add r3, #0x61
- ldrb r3, [r3]
- add r1, r4, #0
- ldr r0, [r4]
- add r1, #8
- add r2, sp, #0x68
- bl MOD11_0225452C
- add r0, sp, #0x68
- mov r1, #5
- bl MOD08_0222A568
- add r0, r4, #0
- add r0, #0x61
- ldrb r1, [r0]
- mov r0, #0x10
- add r2, sp, #0x10
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r5, #0
- add r3, sp, #0x10
- bl MOD11_02254404
- mov r0, #0x1a
- ldr r1, [r4, #4]
- mov r2, #1
- lsl r0, r0, #4
- str r2, [r1, r0]
- add r0, r4, #0
- add r0, #0x62
- ldrb r0, [r0]
- add r4, #0x62
- add sp, #0x110
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252F74:
- bl MOD08_02212384
- add r0, r5, #0
- bl MOD08_022123A0
- cmp r0, #0
- bne _02252FB6
- add r0, r5, #0
- bl MOD08_022123B0
- add r0, r4, #0
- add r0, #0x62
- ldrb r0, [r0]
- add r4, #0x62
- add sp, #0x110
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252F98:
- add r1, r4, #0
- add r2, r4, #0
- add r1, #0x61
- add r2, #0x60
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
-_02252FB6:
- add sp, #0x110
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02252FBC
-MOD11_02252FBC: ; 0x02252FBC
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0xa]
- cmp r0, #0
- beq _02252FCE
- cmp r0, #1
- beq _02252FE4
- pop {r3, r4, r5, pc}
-_02252FCE:
- ldr r0, [r4, #4]
- add r1, #0xb
- bl MOD11_0225805C
- ldr r0, _02253004 ; =0x0000070C
- bl FUN_020054C8
- ldrb r0, [r4, #0xa]
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, pc}
-_02252FE4:
- ldrb r0, [r4, #0xb]
- cmp r0, #1
- bne _02253000
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_02253000:
- pop {r3, r4, r5, pc}
- nop
-_02253004: .word 0x0000070C
-
- thumb_func_start MOD11_02253008
-MOD11_02253008: ; 0x02253008
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_022312C0
- cmp r0, #0
- beq _0225302A
- ldr r0, [r4]
- bl MOD11_022312C0
- bl FUN_0200DBFC
- ldr r0, [r4]
- mov r1, #0
- bl MOD11_022312C8
-_0225302A:
- ldrb r0, [r4, #6]
- bl FUN_0201BD70
- cmp r0, #0
- bne _0225304A
- ldrb r1, [r4, #5]
- ldrb r2, [r4, #4]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_0225304A:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0225304C
-MOD11_0225304C: ; 0x0225304C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #7]
- cmp r0, #0
- beq _0225305E
- cmp r0, #1
- beq _02253074
- pop {r3, r4, r5, pc}
-_0225305E:
- ldrb r0, [r4, #6]
- bl FUN_0201BD70
- cmp r0, #0
- bne _0225309E
- ldrb r0, [r4, #7]
- add r0, r0, #1
- strb r0, [r4, #7]
- mov r0, #0
- strb r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_02253074:
- ldrb r0, [r4, #8]
- add r0, r0, #1
- strb r0, [r4, #8]
- ldrb r0, [r4, #8]
- cmp r0, #0x28
- bne _0225309E
- ldrb r1, [r4, #5]
- ldr r0, [r4]
- bl MOD11_02256004
- ldrb r1, [r4, #5]
- ldrb r2, [r4, #4]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_0225309E:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022530A0
-MOD11_022530A0: ; 0x022530A0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r4, r1, #0
- str r0, [sp, #0xc]
- ldr r0, [r4]
- bl MOD11_0222FF68
- ldr r0, [r4]
- bl MOD11_022300CC
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230294
- add r7, r0, #0
- ldr r0, [r4]
- bl MOD11_022302A8
- lsl r1, r0, #2
- ldr r0, _022533D8 ; =0x0225E86C
- ldr r6, [r0, r1]
- ldrb r0, [r4, #0x15]
- add r0, r0, #1
- strb r0, [r4, #0x15]
- ldrb r0, [r4, #0x14]
- cmp r0, #6
- bhi _02253102
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022530E2: ; jump table
- .short _022530F0 - _022530E2 - 2 ; case 0
- .short _022530F8 - _022530E2 - 2 ; case 1
- .short _0225314A - _022530E2 - 2 ; case 2
- .short _022532AC - _022530E2 - 2 ; case 3
- .short _022532C8 - _022530E2 - 2 ; case 4
- .short _022532E4 - _022530E2 - 2 ; case 5
- .short _022532F6 - _022530E2 - 2 ; case 6
-_022530F0:
- add r0, r0, #1
- add sp, #0x18
- strb r0, [r4, #0x14]
- pop {r3, r4, r5, r6, r7, pc}
-_022530F8:
- add r0, r5, #0
- bl FUN_020038E4
- cmp r0, #0
- beq _02253104
-_02253102:
- b _022533D4
-_02253104:
- mov r0, #5
- mov r1, #0
- bl MOD08_0222A0D4
- str r0, [r4, #4]
- ldr r0, _022533DC ; =0x0225E820
- add r1, sp, #0x10
- ldrb r5, [r0, r7]
- mov r0, #1
- str r0, [sp, #0x14]
- str r5, [sp, #0x10]
- ldr r0, [r4, #4]
- bl MOD08_0222A110
- str r0, [r4, #8]
- add r0, r5, #1
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- ldr r0, [r4, #4]
- add r1, sp, #0x10
- bl MOD08_0222A110
- str r0, [r4, #0xc]
- ldr r0, [r4, #8]
- bl MOD08_0222A1DC
- ldr r0, _022533E0 ; =0x0000084F
- bl FUN_020054C8
- ldrb r0, [r4, #0x14]
- add sp, #0x18
- add r0, r0, #1
- strb r0, [r4, #0x14]
- pop {r3, r4, r5, r6, r7, pc}
-_0225314A:
- ldrb r0, [r4, #0x15]
- cmp r0, #0xa
- bne _02253180
- mov r3, #0
- str r3, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- lsl r0, r6, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r2, _022533E4 ; =0x0000F3FF
- add r0, r5, #0
- mov r1, #1
- bl FUN_02003210
- mov r3, #0
- str r3, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- lsl r0, r6, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r2, _022533E8 ; =0x00003FFF
- add r0, r5, #0
- mov r1, #4
- bl FUN_02003210
-_02253180:
- ldrb r0, [r4, #0x15]
- cmp r0, #0x14
- bne _0225318C
- ldr r0, [r4, #0xc]
- bl MOD08_0222A1DC
-_0225318C:
- ldrb r0, [r4, #0x15]
- cmp r0, #0x17
- bne _0225319A
- mov r0, #0x85
- lsl r0, r0, #4
- bl FUN_020054C8
-_0225319A:
- ldrb r0, [r4, #0x15]
- cmp r0, #0x1c
- bne _02253286
- add r0, r5, #0
- mov r1, #0
- bl FUN_020031FC
- add r7, r0, #0
- ldr r0, [r4]
- bl MOD11_02231244
- add r1, r7, #0
- mov r2, #0xe0
- bl MIi_CpuCopy16
- ldr r0, [r4]
- bl MOD11_0222FF74
- cmp r0, #0x4a
- bne _022531DC
- add r0, r5, #0
- mov r1, #2
- bl FUN_020031FC
- add r7, r0, #0
- ldr r0, [r4]
- bl MOD11_02231250
- add r1, r7, #0
- mov r2, #0xa0
- bl MIi_CpuCopy16
- b _0225323E
-_022531DC:
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _02253200
- add r0, r5, #0
- bl FUN_020031FC
- add r7, r0, #0
- ldr r0, [r4]
- bl MOD11_02231250
- add r1, r7, #0
- mov r2, #0xe0
- bl MIi_CpuCopy16
- b _0225323E
-_02253200:
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #1
- tst r0, r1
- beq _02253226
- add r0, r5, #0
- mov r1, #2
- bl FUN_020031FC
- add r7, r0, #0
- ldr r0, [r4]
- bl MOD11_02231250
- add r1, r7, #0
- mov r2, #0xa0
- bl MIi_CpuCopy16
- b _0225323E
-_02253226:
- add r0, r5, #0
- mov r1, #2
- bl FUN_020031FC
- add r7, r0, #0
- ldr r0, [r4]
- bl MOD11_02231250
- add r1, r7, #0
- mov r2, #0x80
- bl MIi_CpuCopy16
-_0225323E:
- mov r0, #0x10
- str r0, [sp]
- mov r3, #0
- lsl r0, r6, #0x10
- str r3, [sp, #4]
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r2, _022533E4 ; =0x0000F3FF
- add r0, r5, #0
- mov r1, #1
- bl FUN_02003210
- mov r0, #0x10
- str r0, [sp]
- mov r3, #0
- lsl r0, r6, #0x10
- str r3, [sp, #4]
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r2, _022533E8 ; =0x00003FFF
- add r0, r5, #0
- mov r1, #4
- bl FUN_02003210
- mov r0, #0x10
- str r0, [sp]
- mov r3, #0
- lsl r0, r6, #0x10
- str r3, [sp, #4]
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r2, _022533EC ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #0xa
- bl FUN_02003210
-_02253286:
- ldrb r0, [r4, #0x15]
- cmp r0, #0x32
- bne _022532B6
- mov r0, #0x10
- str r0, [sp]
- mov r3, #0
- str r3, [sp, #4]
- mov r2, #3
- str r3, [sp, #8]
- add r0, r5, #0
- mov r1, #1
- lsl r2, r2, #0xa
- bl FUN_02003210
- ldrb r0, [r4, #0x14]
- add sp, #0x18
- add r0, r0, #1
- strb r0, [r4, #0x14]
- pop {r3, r4, r5, r6, r7, pc}
-_022532AC:
- ldr r0, [r4, #0xc]
- bl MOD08_0222A204
- cmp r0, #0
- beq _022532B8
-_022532B6:
- b _022533D4
-_022532B8:
- ldr r0, [r4, #4]
- bl MOD08_0222A14C
- ldrb r0, [r4, #0x14]
- add sp, #0x18
- add r0, r0, #1
- strb r0, [r4, #0x14]
- pop {r3, r4, r5, r6, r7, pc}
-_022532C8:
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #0
- bl FUN_020143A8
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [sp, #0xc]
- bl FUN_0200CAB4
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
-_022532E4:
- ldr r0, [r4, #4]
- bl MOD08_0222A170
- ldr r0, [r4, #4]
- bl MOD08_0222A14C
- ldrb r0, [r4, #0x14]
- add r0, r0, #1
- strb r0, [r4, #0x14]
-_022532F6:
- add r0, r5, #0
- mov r1, #0
- bl FUN_020031FC
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02231244
- add r1, r6, #0
- mov r2, #0xe0
- bl MIi_CpuCopy16
- ldr r0, [r4]
- bl MOD11_0222FF74
- cmp r0, #0x4a
- bne _02253332
- add r0, r5, #0
- mov r1, #2
- bl FUN_020031FC
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02231250
- add r1, r6, #0
- mov r2, #0xa0
- bl MIi_CpuCopy16
- b _02253394
-_02253332:
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _02253356
- add r0, r5, #0
- bl FUN_020031FC
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02231250
- add r1, r6, #0
- mov r2, #0xe0
- bl MIi_CpuCopy16
- b _02253394
-_02253356:
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #1
- tst r0, r1
- beq _0225337C
- add r0, r5, #0
- mov r1, #2
- bl FUN_020031FC
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02231250
- add r1, r6, #0
- mov r2, #0xa0
- bl MIi_CpuCopy16
- b _02253394
-_0225337C:
- add r0, r5, #0
- mov r1, #2
- bl FUN_020031FC
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02231250
- add r1, r6, #0
- mov r2, #0x80
- bl MIi_CpuCopy16
-_02253394:
- mov r3, #0
- str r3, [sp]
- ldr r0, _022533F0 ; =0x00007FFF
- str r3, [sp, #4]
- str r0, [sp, #8]
- ldr r2, _022533EC ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #1
- bl FUN_02003210
- mov r3, #0
- str r3, [sp]
- ldr r2, _022533EC ; =0x0000FFFF
- str r3, [sp, #4]
- str r2, [sp, #8]
- add r0, r5, #0
- mov r1, #4
- lsr r2, r2, #2
- bl FUN_02003210
- mov r3, #0
- str r3, [sp]
- ldr r0, _022533F0 ; =0x00007FFF
- str r3, [sp, #4]
- str r0, [sp, #8]
- ldr r2, _022533EC ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #0xa
- bl FUN_02003210
- mov r0, #4
- strb r0, [r4, #0x14]
-_022533D4:
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022533D8: .word 0x0225E86C
-_022533DC: .word 0x0225E820
-_022533E0: .word 0x0000084F
-_022533E4: .word 0x0000F3FF
-_022533E8: .word 0x00003FFF
-_022533EC: .word 0x0000FFFF
-_022533F0: .word 0x00007FFF
-
- thumb_func_start MOD11_022533F4
-MOD11_022533F4: ; 0x022533F4
- push {r3, r4, r5, r6, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_022300CC
- ldrb r1, [r4, #0xa]
- add r6, r0, #0
- cmp r1, #3
- bls _0225340C
- b _02253524
-_0225340C:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02253418: ; jump table
- .short _02253420 - _02253418 - 2 ; case 0
- .short _02253440 - _02253418 - 2 ; case 1
- .short _022534B0 - _02253418 - 2 ; case 2
- .short _022534E2 - _02253418 - 2 ; case 3
-_02253420:
- mov r2, #0
- str r2, [sp]
- mov r1, #0x10
- str r1, [sp, #4]
- mov r1, #0xa
- str r2, [sp, #8]
- add r3, r1, #0
- ldr r2, _02253528 ; =0x0000FFFF
- sub r3, #0x12
- bl FUN_02003210
- ldrb r0, [r4, #0xa]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, pc}
-_02253440:
- bl FUN_020038E4
- cmp r0, #0
- bne _02253524
- ldr r0, [r4]
- bl MOD11_0222D7F8
- mov r0, #5
- mov r1, #0x38
- bl AllocFromHeap
- str r0, [r4, #4]
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_0222FF88
- ldr r1, [r4, #4]
- mov r2, #3
- str r0, [r1]
- ldr r1, [r4]
- ldr r0, [r4, #4]
- str r1, [r0, #8]
- ldr r0, [r4, #4]
- mov r1, #5
- str r1, [r0, #0xc]
- ldrb r1, [r4, #0xe]
- ldr r0, [r4, #4]
- strb r1, [r0, #0x11]
- ldrh r1, [r4, #0xc]
- ldr r0, [r4, #4]
- strh r1, [r0, #0x24]
- ldr r1, [r4, #4]
- mov r0, #0
- add r1, #0x36
- strb r0, [r1]
- ldr r1, [r4, #4]
- strb r0, [r1, #0x12]
- ldr r1, [r4, #4]
- add r1, #0x35
- strb r2, [r1]
- ldr r1, [r4, #4]
- strh r0, [r1, #0x22]
- ldrb r2, [r4, #9]
- ldr r1, [r4, #4]
- str r2, [r1, #0x28]
- ldr r1, [r4, #4]
- add r1, #0x32
- strb r0, [r1]
- ldr r0, [r4, #4]
- bl MOD07_02211E60
- ldrb r0, [r4, #0xa]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, pc}
-_022534B0:
- ldr r0, [r4, #4]
- add r0, #0x36
- ldrb r0, [r0]
- cmp r0, #0
- beq _02253524
- ldr r0, [r4]
- bl MOD11_0222D88C
- mov r0, #0x10
- str r0, [sp]
- mov r0, #0
- mov r1, #0xa
- str r0, [sp, #4]
- add r3, r1, #0
- str r0, [sp, #8]
- ldr r2, _02253528 ; =0x0000FFFF
- add r0, r6, #0
- sub r3, #0x12
- bl FUN_02003210
- ldrb r0, [r4, #0xa]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, pc}
-_022534E2:
- bl FUN_020038E4
- cmp r0, #0
- bne _02253524
- ldr r0, [r4, #4]
- add r0, #0x34
- ldrb r2, [r0]
- ldr r0, [r4]
- cmp r2, #4
- bne _02253500
- ldrb r1, [r4, #9]
- mov r2, #0xff
- bl MOD11_02255964
- b _02253508
-_02253500:
- ldrb r1, [r4, #9]
- add r2, r2, #1
- bl MOD11_02255964
-_02253508:
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- ldr r0, [r4, #4]
- bl FreeToHeap
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_02253524:
- add sp, #0xc
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-_02253528: .word 0x0000FFFF
-
- thumb_func_start MOD11_0225352C
-MOD11_0225352C: ; 0x0225352C
- push {r3, r4, r5, lr}
- add r5, r1, #0
- add r4, r0, #0
- ldrb r0, [r5, #0xa]
- cmp r0, #0
- beq _0225353E
- cmp r0, #1
- beq _02253582
- pop {r3, r4, r5, pc}
-_0225353E:
- ldrb r1, [r5, #0xc]
- ldrb r0, [r5, #0xd]
- cmp r1, r0
- bne _0225357C
- mov r0, #0
- strb r0, [r5, #0xc]
- ldr r0, [r5, #4]
- mov r1, #0x28
- bl FUN_0200782C
- add r4, r0, #0
- ldrb r0, [r5, #0xb]
- cmp r4, r0
- ble _0225355E
- sub r4, r4, #1
- b _02253564
-_0225355E:
- cmp r4, r0
- bge _02253564
- add r4, r4, #1
-_02253564:
- ldr r0, [r5, #4]
- mov r1, #0x28
- add r2, r4, #0
- bl FUN_02007558
- ldrb r0, [r5, #0xb]
- cmp r4, r0
- bne _02253598
- ldrb r0, [r5, #0xa]
- add r0, r0, #1
- strb r0, [r5, #0xa]
- pop {r3, r4, r5, pc}
-_0225357C:
- add r0, r1, #1
- strb r0, [r5, #0xc]
- pop {r3, r4, r5, pc}
-_02253582:
- ldrb r1, [r5, #9]
- ldrb r2, [r5, #8]
- ldr r0, [r5]
- bl MOD11_022567B8
- add r0, r5, #0
- bl FreeToHeap
- add r0, r4, #0
- bl FUN_0200CAB4
-_02253598:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225359C
-MOD11_0225359C: ; 0x0225359C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- ldrb r1, [r5, #5]
- add r6, r0, #0
- ldr r0, [r5]
- bl MOD11_02230270
- cmp r0, #0
- bne _022535B4
- mov r4, #0
- b _022535B6
-_022535B4:
- mov r4, #1
-_022535B6:
- ldrb r0, [r5, #7]
- cmp r0, #0
- beq _022535C2
- cmp r0, #1
- beq _0225361C
- b _02253636
-_022535C2:
- ldrb r0, [r5, #0xe]
- cmp r0, #0
- bne _022535CE
- mov r7, #0
- mov r6, #1
- b _022535E6
-_022535CE:
- ldrb r0, [r5, #6]
- mov r7, #1
- cmp r0, #3
- beq _022535DC
- cmp r0, #5
- beq _022535E0
- b _022535E4
-_022535DC:
- mov r6, #0
- b _022535E6
-_022535E0:
- mov r6, #2
- b _022535E6
-_022535E4:
- add r6, r7, #0
-_022535E6:
- ldr r0, [r5]
- bl MOD11_02230078
- str r0, [sp, #8]
- ldr r0, [r5]
- bl MOD11_02230080
- ldr r1, [sp, #8]
- add r2, r7, #0
- str r1, [sp]
- str r0, [sp, #4]
- add r0, r5, #0
- add r0, #8
- add r1, r4, #0
- add r3, r6, #0
- bl MOD11_0225CA08
- add r2, r0, #0
- ldr r0, [r5]
- add r1, r4, #0
- bl MOD11_022300A8
- ldrb r0, [r5, #7]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r5, #7]
- pop {r4, r5, r6, r7, pc}
-_0225361C:
- ldr r0, [r5]
- add r1, r4, #0
- bl MOD11_0223009C
- bl MOD11_0225CA6C
- cmp r0, #1
- bne _0225364C
- ldrb r0, [r5, #7]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r5, #7]
- pop {r4, r5, r6, r7, pc}
-_02253636:
- ldrb r1, [r5, #5]
- ldrb r2, [r5, #4]
- ldr r0, [r5]
- bl MOD11_022567B8
- add r0, r5, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
-_0225364C:
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02253650
-MOD11_02253650: ; 0x02253650
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- ldrb r1, [r5, #5]
- add r7, r0, #0
- ldr r0, [r5]
- bl MOD11_02230270
- cmp r0, #0
- bne _02253666
- mov r4, #0
- b _02253668
-_02253666:
- mov r4, #1
-_02253668:
- ldr r0, [r5]
- add r1, r4, #0
- bl MOD11_0223009C
- ldrb r1, [r5, #7]
- add r6, r0, #0
- cmp r1, #0
- beq _0225367E
- cmp r1, #1
- beq _0225369A
- b _022536BA
-_0225367E:
- ldrb r0, [r5, #0xe]
- cmp r0, #0
- bne _02253688
- mov r1, #0
- b _0225368A
-_02253688:
- mov r1, #1
-_0225368A:
- add r0, r6, #0
- add r2, r1, #0
- bl MOD11_0225CA90
- ldrb r0, [r5, #7]
- add r0, r0, #1
- strb r0, [r5, #7]
- pop {r3, r4, r5, r6, r7, pc}
-_0225369A:
- bl MOD11_0225CAC8
- cmp r0, #1
- bne _022536D0
- add r0, r6, #0
- bl MOD11_0225CAEC
- ldr r0, [r5]
- add r1, r4, #0
- mov r2, #0
- bl MOD11_022300A8
- ldrb r0, [r5, #7]
- add r0, r0, #1
- strb r0, [r5, #7]
- pop {r3, r4, r5, r6, r7, pc}
-_022536BA:
- ldrb r1, [r5, #5]
- ldrb r2, [r5, #4]
- ldr r0, [r5]
- bl MOD11_022567B8
- add r0, r5, #0
- bl FreeToHeap
- add r0, r7, #0
- bl FUN_0200CAB4
-_022536D0:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022536D4
-MOD11_022536D4: ; 0x022536D4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0xe]
- cmp r0, #0
- bne _02253706
- ldr r0, [r4, #4]
- add r0, #0x8c
- ldr r0, [r0]
- cmp r0, #0
- beq _022536EE
- bl ErrorHandling
-_022536EE:
- ldrb r2, [r4, #0xd]
- ldr r0, [r4]
- mov r1, #5
- bl MOD08_022156C0
- ldr r1, [r4, #4]
- add r1, #0x8c
- str r0, [r1]
- ldrb r0, [r4, #0xe]
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, pc}
-_02253706:
- ldrb r1, [r4, #0xd]
- ldrb r2, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02253720
-MOD11_02253720: ; 0x02253720
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- add r0, #0x8c
- ldr r0, [r0]
- cmp r0, #0
- bne _02253734
- bl ErrorHandling
-_02253734:
- ldr r0, [r4, #4]
- add r0, #0x8c
- ldr r0, [r0]
- bl MOD08_02215988
- cmp r0, #3
- bne _0225374E
- ldrb r0, [r4, #0xe]
- cmp r0, #5
- bhs _0225374E
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, pc}
-_0225374E:
- ldr r0, [r4, #4]
- ldrb r1, [r4, #0xd]
- add r0, #0x8c
- ldr r0, [r0]
- bl MOD08_0221594C
- ldr r0, [r4, #4]
- mov r1, #0
- add r0, #0x8c
- str r1, [r0]
- ldrb r1, [r4, #0xd]
- ldrb r2, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225377C
-MOD11_0225377C: ; 0x0225377C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_0222FF74
- mov r1, #0x40
- tst r1, r0
- beq _022537D6
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r4, r0]
- cmp r1, #0
- beq _022537B6
- ldr r1, _022539F4 ; =MOD11_02250F44
- add r0, r0, #2
- str r1, [r4]
- ldr r1, _022539F8 ; =MOD11_022511C4
- str r1, [r4, #4]
- ldr r1, _022539FC ; =MOD11_02251420
- str r1, [r4, #8]
- ldr r1, _02253A00 ; =MOD11_02252018
- str r1, [r4, #0xc]
- ldr r1, _02253A04 ; =MOD11_02252470
- str r1, [r4, #0x10]
- ldr r1, _02253A08 ; =MOD11_02252714
- str r1, [r4, #0x14]
- mov r1, #1
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_022537B6:
- ldr r1, _02253A0C ; =MOD11_02250A70
- add r0, r0, #2
- str r1, [r4]
- ldr r1, _02253A10 ; =MOD11_0225103C
- str r1, [r4, #4]
- ldr r1, _02253A14 ; =MOD11_022512B4
- str r1, [r4, #8]
- ldr r1, _02253A18 ; =MOD11_02251484
- str r1, [r4, #0xc]
- ldr r1, _02253A1C ; =MOD11_022520A8
- str r1, [r4, #0x10]
- ldr r1, _02253A20 ; =MOD11_02252544
- str r1, [r4, #0x14]
- mov r1, #0
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_022537D6:
- mov r1, #0x88
- and r1, r0
- cmp r1, #0x88
- bne _02253888
- ldr r0, _02253A24 ; =0x00000195
- ldrb r1, [r4, r0]
- mov r0, #1
- tst r0, r1
- beq _02253832
- add r0, r5, #0
- bl MOD11_02230DD4
- cmp r0, #0
- beq _02253812
- ldr r0, _022539F4 ; =MOD11_02250F44
- mov r1, #1
- str r0, [r4]
- ldr r0, _022539F8 ; =MOD11_022511C4
- str r0, [r4, #4]
- ldr r0, _022539FC ; =MOD11_02251420
- str r0, [r4, #8]
- ldr r0, _02253A00 ; =MOD11_02252018
- str r0, [r4, #0xc]
- ldr r0, _02253A04 ; =MOD11_02252470
- str r0, [r4, #0x10]
- ldr r0, _02253A08 ; =MOD11_02252714
- str r0, [r4, #0x14]
- ldr r0, _02253A28 ; =0x00000196
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_02253812:
- ldr r0, _02253A2C ; =MOD11_02250F74
- mov r1, #2
- str r0, [r4]
- ldr r0, _02253A30 ; =MOD11_02251294
- str r0, [r4, #4]
- ldr r0, _02253A34 ; =MOD11_02251464
- str r0, [r4, #8]
- ldr r0, _02253A38 ; =MOD11_02252070
- str r0, [r4, #0xc]
- ldr r0, _02253A3C ; =MOD11_02252524
- str r0, [r4, #0x10]
- ldr r0, _02253A40 ; =MOD11_02252734
- str r0, [r4, #0x14]
- ldr r0, _02253A28 ; =0x00000196
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_02253832:
- bl FUN_02031190
- add r1, r0, #0
- add r0, r5, #0
- lsl r1, r1, #1
- bl MOD11_02230260
- ldr r1, _02253A24 ; =0x00000195
- ldrb r2, [r4, r1]
- cmp r2, r0
- beq _02253868
- ldr r0, _02253A2C ; =MOD11_02250F74
- mov r2, #2
- str r0, [r4]
- ldr r0, _02253A30 ; =MOD11_02251294
- str r0, [r4, #4]
- ldr r0, _02253A34 ; =MOD11_02251464
- str r0, [r4, #8]
- ldr r0, _02253A38 ; =MOD11_02252070
- str r0, [r4, #0xc]
- ldr r0, _02253A3C ; =MOD11_02252524
- str r0, [r4, #0x10]
- ldr r0, _02253A40 ; =MOD11_02252734
- str r0, [r4, #0x14]
- add r0, r1, #1
- strb r2, [r4, r0]
- pop {r3, r4, r5, pc}
-_02253868:
- ldr r0, _02253A0C ; =MOD11_02250A70
- mov r2, #0
- str r0, [r4]
- ldr r0, _02253A10 ; =MOD11_0225103C
- str r0, [r4, #4]
- ldr r0, _02253A14 ; =MOD11_022512B4
- str r0, [r4, #8]
- ldr r0, _02253A18 ; =MOD11_02251484
- str r0, [r4, #0xc]
- ldr r0, _02253A1C ; =MOD11_022520A8
- str r0, [r4, #0x10]
- ldr r0, _02253A20 ; =MOD11_02252544
- str r0, [r4, #0x14]
- add r0, r1, #1
- strb r2, [r4, r0]
- pop {r3, r4, r5, pc}
-_02253888:
- mov r1, #8
- tst r1, r0
- beq _022538E2
- bl FUN_02031190
- add r1, r0, #0
- add r0, r5, #0
- bl MOD11_02230260
- ldr r1, _02253A24 ; =0x00000195
- ldrb r2, [r4, r1]
- cmp r2, r0
- beq _022538C2
- ldr r0, _02253A2C ; =MOD11_02250F74
- mov r2, #2
- str r0, [r4]
- ldr r0, _02253A30 ; =MOD11_02251294
- str r0, [r4, #4]
- ldr r0, _02253A34 ; =MOD11_02251464
- str r0, [r4, #8]
- ldr r0, _02253A38 ; =MOD11_02252070
- str r0, [r4, #0xc]
- ldr r0, _02253A3C ; =MOD11_02252524
- str r0, [r4, #0x10]
- ldr r0, _02253A40 ; =MOD11_02252734
- str r0, [r4, #0x14]
- add r0, r1, #1
- strb r2, [r4, r0]
- pop {r3, r4, r5, pc}
-_022538C2:
- ldr r0, _02253A0C ; =MOD11_02250A70
- mov r2, #0
- str r0, [r4]
- ldr r0, _02253A10 ; =MOD11_0225103C
- str r0, [r4, #4]
- ldr r0, _02253A14 ; =MOD11_022512B4
- str r0, [r4, #8]
- ldr r0, _02253A18 ; =MOD11_02251484
- str r0, [r4, #0xc]
- ldr r0, _02253A1C ; =MOD11_022520A8
- str r0, [r4, #0x10]
- ldr r0, _02253A20 ; =MOD11_02252544
- str r0, [r4, #0x14]
- add r0, r1, #1
- strb r2, [r4, r0]
- pop {r3, r4, r5, pc}
-_022538E2:
- mov r1, #4
- add r2, r0, #0
- tst r2, r1
- beq _02253934
- ldr r0, _02253A24 ; =0x00000195
- mov r1, #1
- ldrb r2, [r4, r0]
- tst r1, r2
- beq _02253914
- ldr r1, _02253A2C ; =MOD11_02250F74
- add r0, r0, #1
- str r1, [r4]
- ldr r1, _02253A30 ; =MOD11_02251294
- str r1, [r4, #4]
- ldr r1, _02253A34 ; =MOD11_02251464
- str r1, [r4, #8]
- ldr r1, _02253A38 ; =MOD11_02252070
- str r1, [r4, #0xc]
- ldr r1, _02253A3C ; =MOD11_02252524
- str r1, [r4, #0x10]
- ldr r1, _02253A40 ; =MOD11_02252734
- str r1, [r4, #0x14]
- mov r1, #2
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_02253914:
- ldr r1, _02253A0C ; =MOD11_02250A70
- add r0, r0, #1
- str r1, [r4]
- ldr r1, _02253A10 ; =MOD11_0225103C
- str r1, [r4, #4]
- ldr r1, _02253A14 ; =MOD11_022512B4
- str r1, [r4, #8]
- ldr r1, _02253A18 ; =MOD11_02251484
- str r1, [r4, #0xc]
- ldr r1, _02253A1C ; =MOD11_022520A8
- str r1, [r4, #0x10]
- ldr r1, _02253A20 ; =MOD11_02252544
- str r1, [r4, #0x14]
- mov r1, #0
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_02253934:
- lsl r1, r1, #7
- tst r1, r0
- beq _02253970
- ldr r0, _02253A24 ; =0x00000195
- mov r1, #1
- ldrb r2, [r4, r0]
- tst r2, r1
- beq _0225395A
- ldr r2, _02253A44 ; =MOD11_02251014
- add r0, r0, #1
- str r2, [r4]
- mov r2, #0
- str r2, [r4, #4]
- str r2, [r4, #8]
- str r2, [r4, #0xc]
- str r2, [r4, #0x10]
- str r2, [r4, #0x14]
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_0225395A:
- ldr r1, _02253A0C ; =MOD11_02250A70
- add r0, r0, #1
- str r1, [r4]
- mov r1, #0
- str r1, [r4, #4]
- str r1, [r4, #8]
- str r1, [r4, #0xc]
- str r1, [r4, #0x10]
- str r1, [r4, #0x14]
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_02253970:
- mov r1, #0x20
- tst r0, r1
- ldr r0, _02253A24 ; =0x00000195
- beq _022539AE
- ldrb r2, [r4, r0]
- mov r1, #1
- tst r2, r1
- beq _02253996
- ldr r2, _02253A48 ; =MOD11_02250F94
- add r0, r0, #1
- str r2, [r4]
- mov r2, #0
- str r2, [r4, #4]
- str r2, [r4, #8]
- str r2, [r4, #0xc]
- str r2, [r4, #0x10]
- str r2, [r4, #0x14]
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_02253996:
- ldr r1, _02253A0C ; =MOD11_02250A70
- mov r2, #0
- str r1, [r4]
- str r2, [r4, #4]
- str r2, [r4, #8]
- str r2, [r4, #0xc]
- ldr r1, _02253A20 ; =MOD11_02252544
- str r2, [r4, #0x10]
- str r1, [r4, #0x14]
- add r0, r0, #1
- strb r2, [r4, r0]
- pop {r3, r4, r5, pc}
-_022539AE:
- ldrb r2, [r4, r0]
- mov r1, #1
- tst r2, r1
- beq _022539D4
- ldr r2, _022539F4 ; =MOD11_02250F44
- add r0, r0, #1
- str r2, [r4]
- ldr r2, _022539F8 ; =MOD11_022511C4
- str r2, [r4, #4]
- ldr r2, _022539FC ; =MOD11_02251420
- str r2, [r4, #8]
- ldr r2, _02253A00 ; =MOD11_02252018
- str r2, [r4, #0xc]
- ldr r2, _02253A04 ; =MOD11_02252470
- str r2, [r4, #0x10]
- ldr r2, _02253A08 ; =MOD11_02252714
- str r2, [r4, #0x14]
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_022539D4:
- ldr r1, _02253A0C ; =MOD11_02250A70
- add r0, r0, #1
- str r1, [r4]
- ldr r1, _02253A10 ; =MOD11_0225103C
- str r1, [r4, #4]
- ldr r1, _02253A14 ; =MOD11_022512B4
- str r1, [r4, #8]
- ldr r1, _02253A18 ; =MOD11_02251484
- str r1, [r4, #0xc]
- ldr r1, _02253A1C ; =MOD11_022520A8
- str r1, [r4, #0x10]
- ldr r1, _02253A20 ; =MOD11_02252544
- str r1, [r4, #0x14]
- mov r1, #0
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022539F4: .word MOD11_02250F44
-_022539F8: .word MOD11_022511C4
-_022539FC: .word MOD11_02251420
-_02253A00: .word MOD11_02252018
-_02253A04: .word MOD11_02252470
-_02253A08: .word MOD11_02252714
-_02253A0C: .word MOD11_02250A70
-_02253A10: .word MOD11_0225103C
-_02253A14: .word MOD11_022512B4
-_02253A18: .word MOD11_02251484
-_02253A1C: .word MOD11_022520A8
-_02253A20: .word MOD11_02252544
-_02253A24: .word 0x00000195
-_02253A28: .word 0x00000196
-_02253A2C: .word MOD11_02250F74
-_02253A30: .word MOD11_02251294
-_02253A34: .word MOD11_02251464
-_02253A38: .word MOD11_02252070
-_02253A3C: .word MOD11_02252524
-_02253A40: .word MOD11_02252734
-_02253A44: .word MOD11_02251014
-_02253A48: .word MOD11_02250F94
-
- thumb_func_start MOD11_02253A4C
-MOD11_02253A4C: ; 0x02253A4C
- ldr r1, _02253A54 ; =0x00000195
- ldrb r0, [r0, r1]
- bx lr
- nop
-_02253A54: .word 0x00000195
-
- thumb_func_start MOD11_02253A58
-MOD11_02253A58: ; 0x02253A58
- ldr r1, _02253A60 ; =0x00000196
- ldrb r0, [r0, r1]
- bx lr
- nop
-_02253A60: .word 0x00000196
-
- thumb_func_start MOD11_02253A64
-MOD11_02253A64: ; 0x02253A64
- ldr r1, [r0, #0x20]
- cmp r1, #0
- bne _02253A6C
- ldr r1, [r0, #0x1c]
-_02253A6C:
- add r0, r1, #0
- bx lr
-
- thumb_func_start MOD11_02253A70
-MOD11_02253A70: ; 0x02253A70
- add r0, #0x28
- bx lr
-
- thumb_func_start MOD11_02253A74
-MOD11_02253A74: ; 0x02253A74
- add r0, #0x80
- bx lr
-
- thumb_func_start MOD11_02253A78
-MOD11_02253A78: ; 0x02253A78
- ldr r3, _02253A84 ; =0x020CE34C
- add r0, #0x80
- mov r1, #0
- mov r2, #8
- bx r3
- nop
-_02253A84: .word 0x020CE34C
-
- thumb_func_start MOD11_02253A88
-MOD11_02253A88: ; 0x02253A88
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- ldr r4, [sp, #0x50]
- add r7, r0, #0
- str r1, [sp, #0x14]
- add r5, r2, #0
- str r3, [sp, #0x18]
- bl MOD11_02230130
- add r1, r4, #0
- bl MOD11_022312DC
- str r0, [sp, #0x20]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02230260
- add r6, r0, #0
- mov r0, #1
- and r0, r6
- str r0, [sp, #0x1c]
- beq _02253AB8
- mov r1, #2
- b _02253ABA
-_02253AB8:
- mov r1, #0
-_02253ABA:
- ldr r0, [r5, #0xc]
- ldr r3, [sp, #0x20]
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- str r1, [sp, #8]
- ldrh r0, [r5, #6]
- mov r2, #5
- str r0, [sp, #0xc]
- ldrh r0, [r5]
- ldrh r1, [r5, #2]
- bl FUN_02012560
- add r0, r7, #0
- bl MOD11_02230130
- ldrh r2, [r5]
- add r1, r4, #0
- bl MOD11_022312F0
- add r0, r7, #0
- bl MOD11_02230130
- ldrh r2, [r5, #4]
- add r1, r4, #0
- bl MOD11_02231308
- add r0, r7, #0
- bl MOD11_02230130
- ldr r2, [sp, #0x40]
- add r1, r4, #0
- bl MOD11_02231320
- ldr r0, [sp, #0x3c]
- ldr r3, [sp, #0x40]
- str r0, [sp]
- str r4, [sp, #4]
- str r4, [sp, #8]
- ldr r0, [sp, #0x54]
- ldr r4, [sp, #0x38]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x58]
- ldr r2, [sp, #0x18]
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x14]
- add r1, r5, #0
- add r3, r4, r3
- bl FUN_020073E8
- add r4, r0, #0
- ldr r0, [sp, #0x1c]
- cmp r0, #0
- beq _02253B6E
- cmp r6, #1
- ble _02253B2C
- asr r6, r6, #1
-_02253B2C:
- add r0, r4, #0
- mov r1, #0x2a
- add r2, r6, #0
- bl FUN_02007558
- ldr r2, [sp, #0x4c]
- add r0, r4, #0
- mov r1, #0x2e
- bl FUN_02007558
- ldr r2, [sp, #0x38]
- add r0, r4, #0
- mov r1, #0x14
- add r2, #0x24
- bl FUN_02007558
- ldr r2, [sp, #0x48]
- add r0, r4, #0
- mov r1, #0x15
- bl FUN_02007558
- ldr r3, [sp, #0x40]
- mov r2, #0x24
- add r0, r4, #0
- mov r1, #0x16
- sub r2, r2, r3
- bl FUN_02007558
- ldr r2, [sp, #0x44]
- add r0, r4, #0
- mov r1, #0x29
- bl FUN_02007558
-_02253B6E:
- add r0, r4, #0
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02253B74
-MOD11_02253B74: ; 0x02253B74
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- ldr r1, _02253C30 ; =0x00000195
- add r6, r2, #0
- ldrb r2, [r5, r1]
- mov r1, #1
- add r7, r0, #0
- add r4, r3, #0
- tst r1, r2
- beq _02253BCE
- bl MOD11_0222FF74
- mov r1, #4
- tst r0, r1
- beq _02253BAE
- ldr r0, _02253C34 ; =0x000003DE
- strh r0, [r4, #2]
- mov r0, #0x1b
- strb r0, [r4, #1]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r5, r0]
- str r1, [r4, #4]
- ldrb r1, [r5, r0]
- ldrb r0, [r6, #1]
- lsl r0, r0, #8
- orr r0, r1
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_02253BAE:
- ldr r0, _02253C38 ; =0x000003DD
- strh r0, [r4, #2]
- mov r0, #0x32
- strb r0, [r4, #1]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r5, r0]
- str r1, [r4, #4]
- ldrb r1, [r5, r0]
- str r1, [r4, #8]
- ldrb r1, [r5, r0]
- ldrb r0, [r6, #1]
- lsl r0, r0, #8
- orr r0, r1
- str r0, [r4, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_02253BCE:
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _02253C18
- add r0, r7, #0
- bl MOD11_0222FF74
- mov r1, #4
- tst r0, r1
- bne _02253C18
- ldrh r0, [r6, #2]
- cmp r0, #0
- bne _02253BF2
- mov r0, #0xf6
- lsl r0, r0, #2
- strh r0, [r4, #2]
- b _02253C1C
-_02253BF2:
- cmp r0, #0x19
- bhs _02253BFC
- ldr r0, _02253C3C ; =0x000003D9
- strh r0, [r4, #2]
- b _02253C1C
-_02253BFC:
- cmp r0, #0x32
- bhs _02253C08
- mov r0, #0xf7
- lsl r0, r0, #2
- strh r0, [r4, #2]
- b _02253C1C
-_02253C08:
- cmp r0, #0x4b
- bhs _02253C12
- ldr r0, _02253C40 ; =0x000003DA
- strh r0, [r4, #2]
- b _02253C1C
-_02253C12:
- ldr r0, _02253C44 ; =0x000003DB
- strh r0, [r4, #2]
- b _02253C1C
-_02253C18:
- ldr r0, _02253C3C ; =0x000003D9
- strh r0, [r4, #2]
-_02253C1C:
- mov r0, #2
- strb r0, [r4, #1]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r5, r0]
- ldrb r0, [r6, #1]
- lsl r0, r0, #8
- orr r0, r1
- str r0, [r4, #4]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02253C30: .word 0x00000195
-_02253C34: .word 0x000003DE
-_02253C38: .word 0x000003DD
-_02253C3C: .word 0x000003D9
-_02253C40: .word 0x000003DA
-_02253C44: .word 0x000003DB
-
- thumb_func_start MOD11_02253C48
-MOD11_02253C48: ; 0x02253C48
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- ldr r1, _02253D08 ; =0x00000195
- add r6, r2, #0
- ldrb r2, [r5, r1]
- mov r1, #1
- add r7, r0, #0
- add r4, r3, #0
- tst r1, r2
- beq _02253CA4
- bl MOD11_0222FF74
- mov r1, #4
- tst r0, r1
- bne _02253C88
- mov r0, #0xf3
- lsl r0, r0, #2
- strh r0, [r4, #2]
- mov r0, #0x32
- strb r0, [r4, #1]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r5, r0]
- str r1, [r4, #4]
- ldrb r1, [r5, r0]
- str r1, [r4, #8]
- ldrb r1, [r5, r0]
- ldrb r0, [r6, #1]
- lsl r0, r0, #8
- orr r0, r1
- str r0, [r4, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_02253C88:
- ldr r0, _02253D0C ; =0x000003CE
- strh r0, [r4, #2]
- mov r0, #0x1b
- strb r0, [r4, #1]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r5, r0]
- str r1, [r4, #4]
- ldrb r1, [r5, r0]
- ldrb r0, [r6, #1]
- lsl r0, r0, #8
- orr r0, r1
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_02253CA4:
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _02253CF0
- add r0, r7, #0
- bl MOD11_0222FF74
- mov r1, #4
- tst r0, r1
- bne _02253CF0
- ldrh r1, [r6, #2]
- cmp r1, #0x64
- bhs _02253CC6
- ldr r0, _02253D10 ; =0x000003D6
- strh r0, [r4, #2]
- b _02253CF4
-_02253CC6:
- ldr r0, _02253D14 ; =0x00000145
- cmp r1, r0
- bhs _02253CD2
- ldr r0, _02253D18 ; =0x000003D7
- strh r0, [r4, #2]
- b _02253CF4
-_02253CD2:
- add r0, #0xe1
- cmp r1, r0
- bhs _02253CDE
- ldr r0, _02253D1C ; =0x000003D5
- strh r0, [r4, #2]
- b _02253CF4
-_02253CDE:
- ldr r0, _02253D20 ; =0x00000307
- cmp r1, r0
- bhs _02253CEA
- add r0, #0xcd
- strh r0, [r4, #2]
- b _02253CF4
-_02253CEA:
- add r0, #0xcc
- strh r0, [r4, #2]
- b _02253CF4
-_02253CF0:
- ldr r0, _02253D24 ; =0x000003D3
- strh r0, [r4, #2]
-_02253CF4:
- mov r0, #2
- strb r0, [r4, #1]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r5, r0]
- ldrb r0, [r6, #1]
- lsl r0, r0, #8
- orr r0, r1
- str r0, [r4, #4]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02253D08: .word 0x00000195
-_02253D0C: .word 0x000003CE
-_02253D10: .word 0x000003D6
-_02253D14: .word 0x00000145
-_02253D18: .word 0x000003D7
-_02253D1C: .word 0x000003D5
-_02253D20: .word 0x00000307
-_02253D24: .word 0x000003D3
-
- thumb_func_start MOD11_02253D28
-MOD11_02253D28: ; 0x02253D28
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r5, r2, #0
- bl MOD11_0222FF74
- add r4, r0, #0
- mov r0, #2
- tst r0, r4
- beq _02253D4E
- add r0, r7, #0
- mov r1, #3
- bl MOD11_0223022C
- add r6, r0, #0
- add r0, r7, #0
- mov r1, #5
- bl MOD11_0223022C
- b _02253D58
-_02253D4E:
- add r0, r7, #0
- mov r1, #1
- bl MOD11_0223022C
- add r6, r0, #0
-_02253D58:
- mov r1, #4
- tst r1, r4
- beq _02253D98
- mov r1, #0x80
- tst r1, r4
- beq _02253D78
- mov r1, #0x3e
- lsl r1, r1, #4
- strh r1, [r5, #2]
- mov r1, #0x3b
- strb r1, [r5, #1]
- str r6, [r5, #4]
- str r6, [r5, #8]
- str r0, [r5, #0xc]
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_02253D78:
- mov r1, #8
- add r2, r4, #0
- tst r2, r1
- beq _02253D8E
- ldr r1, _02253DC8 ; =0x000003CB
- strh r1, [r5, #2]
- mov r1, #0x1a
- strb r1, [r5, #1]
- str r6, [r5, #4]
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_02253D8E:
- ldr r0, _02253DCC ; =0x000003CA
- strh r0, [r5, #2]
- strb r1, [r5, #1]
- str r6, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_02253D98:
- mov r1, #0x10
- tst r1, r4
- bne _02253DA4
- mov r1, #8
- tst r1, r4
- beq _02253DB8
-_02253DA4:
- mov r1, #0x3e
- lsl r1, r1, #4
- strh r1, [r5, #2]
- mov r1, #0x3b
- strb r1, [r5, #1]
- str r6, [r5, #4]
- str r6, [r5, #8]
- str r0, [r5, #0xc]
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_02253DB8:
- ldr r0, _02253DD0 ; =0x000003C9
- strh r0, [r5, #2]
- mov r0, #0x1e
- strb r0, [r5, #1]
- str r6, [r5, #4]
- str r6, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02253DC8: .word 0x000003CB
-_02253DCC: .word 0x000003CA
-_02253DD0: .word 0x000003C9
-
- thumb_func_start MOD11_02253DD4
-MOD11_02253DD4: ; 0x02253DD4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- str r1, [sp, #4]
- str r0, [sp]
- add r6, r2, #0
- add r4, r3, #0
- bl MOD11_0222FF74
- str r0, [sp, #0x14]
- ldr r2, _022540E4 ; =0x00000195
- ldr r0, [sp, #4]
- ldrb r1, [r0, r2]
- mov r0, #1
- tst r0, r1
- bne _02253DF4
- b _02253F3C
-_02253DF4:
- ldr r0, [sp, #0x14]
- mov r1, #2
- and r0, r1
- str r0, [sp, #0x10]
- beq _02253E10
- ldr r0, [sp, #4]
- sub r1, r2, #1
- ldrb r5, [r0, r1]
- ldr r0, [sp]
- add r1, r5, #0
- bl MOD11_022302BC
- add r7, r0, #0
- b _02253E18
-_02253E10:
- ldr r0, [sp, #4]
- sub r1, r2, #1
- ldrb r5, [r0, r1]
- add r7, r5, #0
-_02253E18:
- ldr r0, [sp, #0x14]
- mov r1, #4
- tst r0, r1
- beq _02253EBE
- ldr r0, [sp, #0x14]
- mov r1, #0x80
- tst r0, r1
- beq _02253E50
- ldr r0, _022540E8 ; =0x000003DF
- add sp, #0x18
- strh r0, [r4, #2]
- mov r0, #0x3c
- strb r0, [r4, #1]
- str r5, [r4, #4]
- str r5, [r4, #8]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #0xc]
- str r7, [r4, #0x10]
- str r7, [r4, #0x14]
- add r0, r6, r7
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r7
- str r0, [r4, #0x18]
- pop {r3, r4, r5, r6, r7, pc}
-_02253E50:
- ldr r0, [sp, #0x14]
- mov r1, #8
- tst r0, r1
- beq _02253E7E
- mov r0, #0x3d
- lsl r0, r0, #4
- strh r0, [r4, #2]
- mov r0, #0x38
- strb r0, [r4, #1]
- str r5, [r4, #4]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- add sp, #0x18
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #8]
- str r7, [r4, #0xc]
- add r0, r6, r7
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r7
- str r0, [r4, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_02253E7E:
- ldr r0, [sp, #0x10]
- cmp r0, #0
- beq _02253EA6
- ldr r0, _022540EC ; =0x000003CF
- add sp, #0x18
- strh r0, [r4, #2]
- mov r0, #0x31
- strb r0, [r4, #1]
- str r5, [r4, #4]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #8]
- add r0, r6, r7
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r7
- str r0, [r4, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_02253EA6:
- ldr r0, _022540F0 ; =0x000003CE
- add sp, #0x18
- strh r0, [r4, #2]
- mov r0, #0x1b
- strb r0, [r4, #1]
- str r5, [r4, #4]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_02253EBE:
- ldr r0, [sp, #0x14]
- mov r1, #0x10
- tst r0, r1
- bne _02253ECE
- ldr r0, [sp, #0x14]
- mov r1, #8
- tst r0, r1
- beq _02253EF6
-_02253ECE:
- ldr r0, _022540E8 ; =0x000003DF
- add sp, #0x18
- strh r0, [r4, #2]
- mov r0, #0x3c
- strb r0, [r4, #1]
- str r5, [r4, #4]
- str r5, [r4, #8]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #0xc]
- str r7, [r4, #0x10]
- str r7, [r4, #0x14]
- add r0, r6, r7
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r7
- str r0, [r4, #0x18]
- pop {r3, r4, r5, r6, r7, pc}
-_02253EF6:
- ldr r0, [sp, #0x10]
- cmp r0, #0
- beq _02253F20
- ldr r0, _022540F4 ; =0x000003CD
- add sp, #0x18
- strh r0, [r4, #2]
- mov r0, #0x39
- strb r0, [r4, #1]
- str r5, [r4, #4]
- str r5, [r4, #8]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #0xc]
- add r0, r6, r7
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r7
- str r0, [r4, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_02253F20:
- mov r0, #0xf3
- lsl r0, r0, #2
- strh r0, [r4, #2]
- mov r0, #0x32
- strb r0, [r4, #1]
- str r5, [r4, #4]
- str r5, [r4, #8]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- add sp, #0x18
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_02253F3C:
- ldr r0, [sp, #0x14]
- mov r1, #4
- and r0, r1
- str r0, [sp, #0xc]
- beq _02253FCC
- bl FUN_02031190
- lsl r0, r0, #0x18
- lsr r2, r0, #0x18
- ldr r0, [sp, #0x14]
- mov r1, #8
- and r0, r1
- str r0, [sp, #8]
- beq _02253FA2
- add r0, r2, #0
- bl FUN_020313CC
- cmp r0, #3
- bhi _02254012
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02253F6E: ; jump table
- .short _02253F76 - _02253F6E - 2 ; case 0
- .short _02253F8C - _02253F6E - 2 ; case 1
- .short _02253F8C - _02253F6E - 2 ; case 2
- .short _02253F76 - _02253F6E - 2 ; case 3
-_02253F76:
- ldr r0, [sp]
- mov r1, #4
- bl MOD11_0223022C
- add r5, r0, #0
- ldr r0, [sp]
- mov r1, #2
- bl MOD11_0223022C
- add r7, r0, #0
- b _02254012
-_02253F8C:
- ldr r0, [sp]
- mov r1, #2
- bl MOD11_0223022C
- add r5, r0, #0
- ldr r0, [sp]
- mov r1, #4
- bl MOD11_0223022C
- add r7, r0, #0
- b _02254012
-_02253FA2:
- ldr r0, [sp, #0x14]
- mov r1, #2
- tst r0, r1
- beq _02253FBE
- ldr r0, [sp]
- bl MOD11_0223022C
- add r5, r0, #0
- ldr r0, [sp]
- mov r1, #4
- bl MOD11_0223022C
- add r7, r0, #0
- b _02254012
-_02253FBE:
- ldr r0, [sp]
- mov r1, #0
- bl MOD11_0223022C
- add r5, r0, #0
- add r7, r5, #0
- b _02254012
-_02253FCC:
- ldr r0, [sp, #0x14]
- mov r1, #8
- and r0, r1
- str r0, [sp, #8]
- beq _02253FEE
- ldr r1, [sp, #4]
- sub r2, r2, #1
- ldrb r1, [r1, r2]
- ldr r0, [sp]
- bl MOD11_022302BC
- add r5, r0, #0
- mov r1, #0x65
- ldr r0, [sp, #4]
- lsl r1, r1, #2
- ldrb r7, [r0, r1]
- b _02254012
-_02253FEE:
- ldr r0, [sp, #0x14]
- mov r1, #2
- tst r0, r1
- beq _0225400A
- ldr r0, [sp]
- bl MOD11_0223022C
- add r5, r0, #0
- ldr r0, [sp]
- mov r1, #4
- bl MOD11_0223022C
- add r7, r0, #0
- b _02254012
-_0225400A:
- ldr r0, [sp, #4]
- sub r1, r2, #1
- ldrb r5, [r0, r1]
- add r7, r5, #0
-_02254012:
- ldr r0, [sp, #0xc]
- cmp r0, #0
- beq _0225407C
- ldr r0, [sp, #8]
- cmp r0, #0
- beq _02254040
- ldr r0, _022540F8 ; =0x000003D1
- add sp, #0x18
- strh r0, [r4, #2]
- mov r0, #0x31
- strb r0, [r4, #1]
- str r5, [r4, #4]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #8]
- add r0, r6, r7
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r7
- str r0, [r4, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_02254040:
- ldr r0, [sp, #0x14]
- mov r1, #2
- tst r0, r1
- beq _02254068
- ldr r0, _022540FC ; =0x000003D2
- add sp, #0x18
- strh r0, [r4, #2]
- mov r0, #9
- strb r0, [r4, #1]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #4]
- add r0, r6, r7
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r7
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_02254068:
- ldr r0, _02254100 ; =0x000003D3
- add sp, #0x18
- strh r0, [r4, #2]
- strb r1, [r4, #1]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0225407C:
- ldr r0, [sp, #8]
- cmp r0, #0
- beq _022540A6
- ldr r0, _02254104 ; =0x000003E1
- add sp, #0x18
- strh r0, [r4, #2]
- mov r0, #0x39
- strb r0, [r4, #1]
- str r5, [r4, #4]
- str r5, [r4, #8]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #0xc]
- add r0, r6, r7
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r7
- str r0, [r4, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_022540A6:
- ldr r0, [sp, #0x14]
- mov r1, #2
- tst r0, r1
- beq _022540CE
- ldr r0, _022540FC ; =0x000003D2
- add sp, #0x18
- strh r0, [r4, #2]
- mov r0, #9
- strb r0, [r4, #1]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #4]
- add r0, r6, r7
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r7
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_022540CE:
- ldr r0, _02254100 ; =0x000003D3
- strh r0, [r4, #2]
- strb r1, [r4, #1]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #4]
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022540E4: .word 0x00000195
-_022540E8: .word 0x000003DF
-_022540EC: .word 0x000003CF
-_022540F0: .word 0x000003CE
-_022540F4: .word 0x000003CD
-_022540F8: .word 0x000003D1
-_022540FC: .word 0x000003D2
-_02254100: .word 0x000003D3
-_02254104: .word 0x000003E1
-
- thumb_func_start MOD11_02254108
-MOD11_02254108: ; 0x02254108
- push {r3, r4, r5, r6, r7, lr}
- str r0, [sp]
- add r5, r2, #0
- bl MOD11_0222FF74
- add r6, r0, #0
- ldr r0, [sp]
- bl MOD11_0223145C
- add r7, r0, #0
- mov r0, #2
- tst r0, r6
- beq _02254136
- ldr r0, [sp]
- mov r1, #3
- bl MOD11_0223022C
- add r4, r0, #0
- ldr r0, [sp]
- mov r1, #5
- bl MOD11_0223022C
- b _02254140
-_02254136:
- ldr r0, [sp]
- mov r1, #1
- bl MOD11_0223022C
- add r4, r0, #0
-_02254140:
- cmp r7, #1
- beq _0225414E
- cmp r7, #2
- beq _0225416E
- cmp r7, #3
- beq _02254190
- pop {r3, r4, r5, r6, r7, pc}
-_0225414E:
- mov r1, #8
- add r2, r6, #0
- tst r2, r1
- beq _02254164
- ldr r1, _022541B0 ; =0x00000312
- strh r1, [r5, #2]
- mov r1, #0x1a
- strb r1, [r5, #1]
- str r4, [r5, #4]
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_02254164:
- ldr r0, _022541B4 ; =0x00000311
- strh r0, [r5, #2]
- strb r1, [r5, #1]
- str r4, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0225416E:
- mov r1, #8
- add r2, r6, #0
- tst r2, r1
- beq _02254186
- mov r1, #0xc5
- lsl r1, r1, #2
- strh r1, [r5, #2]
- mov r1, #0x1a
- strb r1, [r5, #1]
- str r4, [r5, #4]
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_02254186:
- ldr r0, _022541B8 ; =0x00000313
- strh r0, [r5, #2]
- strb r1, [r5, #1]
- str r4, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_02254190:
- mov r1, #8
- add r2, r6, #0
- tst r2, r1
- beq _022541A6
- ldr r1, _022541BC ; =0x00000316
- strh r1, [r5, #2]
- mov r1, #0x1a
- strb r1, [r5, #1]
- str r4, [r5, #4]
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_022541A6:
- ldr r0, _022541C0 ; =0x00000315
- strh r0, [r5, #2]
- strb r1, [r5, #1]
- str r4, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022541B0: .word 0x00000312
-_022541B4: .word 0x00000311
-_022541B8: .word 0x00000313
-_022541BC: .word 0x00000316
-_022541C0: .word 0x00000315
-
- thumb_func_start MOD11_022541C4
-MOD11_022541C4: ; 0x022541C4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- mov r6, #0
- add r5, r0, #0
- str r2, [sp]
- add r7, r3, #0
- str r6, [sp, #4]
- add r4, r6, #0
- bl MOD11_0222FF84
- cmp r0, #0
- ble _0225420C
-_022541DC:
- add r0, r4, #0
- bl MaskOfFlagNo
- ldr r1, [sp]
- ldrb r1, [r1, #1]
- tst r0, r1
- beq _02254200
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02230270
- cmp r0, #0
- beq _022541FE
- ldr r0, [sp, #4]
- add r0, r0, #1
- str r0, [sp, #4]
- b _02254200
-_022541FE:
- add r6, r6, #1
-_02254200:
- add r0, r5, #0
- add r4, r4, #1
- bl MOD11_0222FF84
- cmp r4, r0
- blt _022541DC
-_0225420C:
- cmp r6, #0
- beq _0225422A
- ldr r0, [sp, #4]
- cmp r0, #0
- beq _0225422A
- ldr r0, _022542AC ; =0x0000030D
- mov r1, #0xc3
- strh r0, [r7, #2]
- mov r0, #0
- strb r0, [r7, #1]
- add r0, r5, #0
- bl MOD11_02231468
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_0225422A:
- cmp r6, #0
- beq _02254242
- ldr r0, _022542AC ; =0x0000030D
- mov r1, #0xc2
- strh r0, [r7, #2]
- mov r0, #0
- strb r0, [r7, #1]
- add r0, r5, #0
- bl MOD11_02231468
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_02254242:
- add r0, r5, #0
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- beq _0225426E
- mov r0, #0xc6
- lsl r0, r0, #2
- strh r0, [r7, #2]
- mov r0, #0x1a
- strb r0, [r7, #1]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_0223022C
- str r0, [r7, #4]
- add r0, r5, #0
- mov r1, #5
- bl MOD11_0223022C
- str r0, [r7, #8]
- b _0225429E
-_0225426E:
- add r0, r5, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- ldr r0, _022542B0 ; =0x00000317
- beq _0225428E
- strh r0, [r7, #2]
- mov r0, #8
- strb r0, [r7, #1]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_0223022C
- str r0, [r7, #4]
- b _0225429E
-_0225428E:
- strh r0, [r7, #2]
- mov r0, #8
- strb r0, [r7, #1]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223022C
- str r0, [r7, #4]
-_0225429E:
- add r0, r5, #0
- mov r1, #0xc1
- bl MOD11_02231468
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022542AC: .word 0x0000030D
-_022542B0: .word 0x00000317
-
- thumb_func_start MOD11_022542B4
-MOD11_022542B4: ; 0x022542B4
- push {r4, r5, r6, lr}
- add r6, r1, #0
- mov r1, #0xef
- add r4, r2, #0
- lsl r1, r1, #2
- strh r1, [r4, #2]
- mov r1, #8
- add r5, r0, #0
- strb r1, [r4, #1]
- bl MOD11_0222FF74
- mov r1, #4
- tst r0, r1
- beq _022542F4
- bl FUN_02031190
- bl FUN_020313CC
- cmp r0, #0
- beq _022542E8
- add r0, r5, #0
- mov r1, #4
- bl MOD11_0223022C
- str r0, [r4, #4]
- b _022542FC
-_022542E8:
- add r0, r5, #0
- mov r1, #2
- bl MOD11_0223022C
- str r0, [r4, #4]
- b _022542FC
-_022542F4:
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r6, r0]
- str r0, [r4, #4]
-_022542FC:
- add r0, r5, #0
- mov r1, #0xc2
- bl MOD11_02231468
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02254308
-MOD11_02254308: ; 0x02254308
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x58
- str r0, [sp, #0x18]
- str r1, [sp, #0x1c]
- add r5, r2, #0
- add r4, r3, #0
- bl MOD11_02230078
- add r7, r0, #0
- ldr r0, [sp, #0x18]
- bl MOD11_02230080
- add r6, r0, #0
- ldr r0, [sp, #0x18]
- bl MOD11_022300CC
- str r0, [sp, #0x20]
- mov r0, #1
- str r0, [sp]
- str r0, [sp, #4]
- ldr r0, _022543EC ; =0x00004E2F
- add r3, r5, #0
- add r0, r4, r0
- str r0, [sp, #8]
- add r0, r7, #0
- add r1, r6, #0
- mov r2, #0x1b
- add r3, #0xc3
- bl FUN_0200C00C
- mov r0, #0x1b
- str r0, [sp]
- add r0, r5, #0
- add r0, #0x2f
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- ldr r0, _022543F0 ; =0x00004E2A
- mov r1, #2
- add r0, r4, r0
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x20]
- add r2, r7, #0
- add r3, r6, #0
- bl FUN_0200C0DC
- mov r0, #1
- str r0, [sp]
- ldr r0, _022543F4 ; =0x00004E27
- add r3, r5, #0
- add r0, r4, r0
- str r0, [sp, #4]
- add r0, r7, #0
- add r1, r6, #0
- mov r2, #0x1b
- add r3, #0xcb
- bl FUN_0200C124
- mov r0, #1
- str r0, [sp]
- ldr r0, _022543F4 ; =0x00004E27
- add r5, #0xd3
- add r0, r4, r0
- str r0, [sp, #4]
- add r0, r7, #0
- add r1, r6, #0
- mov r2, #0x1b
- add r3, r5, #0
- bl FUN_0200C13C
- ldr r5, _022543F8 ; =0x0225E89C
- add r3, sp, #0x24
- mov r2, #6
-_022543A0:
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _022543A0
- ldr r0, [r5]
- ldr r1, _022543EC ; =0x00004E2F
- str r0, [r3]
- add r0, r4, r1
- str r0, [sp, #0x38]
- sub r0, r1, #5
- add r0, r4, r0
- sub r1, #8
- str r0, [sp, #0x3c]
- add r0, r4, r1
- str r0, [sp, #0x40]
- str r0, [sp, #0x44]
- add r0, r7, #0
- add r1, r6, #0
- add r2, sp, #0x24
- bl FUN_0200C154
- ldr r1, [sp, #0x1c]
- mov r2, #6
- add r3, r1, #0
- mul r3, r2
- ldr r1, _022543FC ; =0x0222D550
- ldr r2, _02254400 ; =0x0222D552
- ldrsh r1, [r1, r3]
- ldrsh r2, [r2, r3]
- add r4, r0, #0
- bl FUN_0200C714
- add r0, r4, #0
- bl FUN_0200C5A8
- add r0, r4, #0
- add sp, #0x58
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022543EC: .word 0x00004E2F
-_022543F0: .word 0x00004E2A
-_022543F4: .word 0x00004E27
-_022543F8: .word 0x0225E89C
-_022543FC: .word 0x0222D550
-_02254400: .word 0x0222D552
-
- thumb_func_start MOD11_02254404
-MOD11_02254404: ; 0x02254404
- push {r4, r5, r6, r7, lr}
- sub sp, #0xac
- str r0, [sp]
- ldr r0, [r3, #0x4c]
- str r1, [sp, #4]
- str r2, [sp, #8]
- str r3, [sp, #0xc]
- cmp r0, #0
- bne _02254422
- mov r0, #8
- str r0, [sp, #0x84]
- add r0, r3, #0
- ldrh r0, [r0, #2]
- str r0, [sp, #0x18]
- b _0225442C
-_02254422:
- mov r0, #0x3f
- str r0, [sp, #0x84]
- add r0, r3, #0
- ldr r0, [r0, #0x50]
- str r0, [sp, #0x18]
-_0225442C:
- ldr r0, [sp]
- bl MOD11_0222FF68
- str r0, [sp, #0x20]
- ldr r0, [sp]
- bl MOD11_022300CC
- str r0, [sp, #0x24]
- ldr r0, [sp]
- bl MOD11_02230078
- add r5, sp, #0x1c
- str r0, [sp, #0x1c]
- ldr r0, [sp, #0xc]
- mov r4, #0
- str r0, [sp, #0x14]
- str r5, [sp, #0x10]
- add r6, r5, #0
- add r7, r0, #0
-_02254452:
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_022312D0
- str r0, [r5, #0xc]
- ldr r0, [sp, #0x14]
- ldrh r1, [r0, #0x18]
- ldr r0, [sp, #0x10]
- strh r1, [r0, #0x34]
- ldr r0, [sp, #0xc]
- add r0, r0, r4
- add r0, #0x20
- ldrb r1, [r0]
- add r0, r6, #0
- add r0, #0x3c
- strb r1, [r0]
- ldr r0, [sp, #0xc]
- add r0, r0, r4
- add r0, #0x24
- ldrb r1, [r0]
- add r0, r6, #0
- add r0, #0x40
- strb r1, [r0]
- ldr r0, [sp, #0xc]
- add r0, r0, r4
- add r0, #0x28
- ldrb r1, [r0]
- add r0, r6, #0
- add r0, #0x44
- strb r1, [r0]
- ldr r0, [r7, #0x2c]
- add r4, r4, #1
- str r0, [r5, #0x48]
- ldr r0, [r7, #0x3c]
- add r6, r6, #1
- str r0, [r5, #0x58]
- ldr r0, [sp, #0x14]
- add r5, r5, #4
- add r0, r0, #2
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x10]
- add r7, r7, #4
- add r0, r0, #2
- str r0, [sp, #0x10]
- cmp r4, #4
- blt _02254452
- ldr r0, [sp]
- add r1, sp, #0x38
- bl MOD11_02231504
- ldr r0, [sp]
- add r1, sp, #0x3c
- bl MOD11_02231534
- ldr r0, [sp]
- bl MOD11_0222FF74
- mov r2, #0x65
- str r0, [sp, #0x4c]
- ldr r1, [sp, #4]
- lsl r2, r2, #2
- ldrb r1, [r1, r2]
- ldr r0, [sp]
- bl MOD11_02230E88
- str r0, [sp, #0xa0]
- ldr r0, [sp]
- bl MOD11_02231228
- str r0, [sp, #0xa4]
- ldr r0, [sp]
- bl MOD11_02231230
- str r0, [sp, #0xa8]
- mov r0, #7
- str r0, [sp, #0x88]
- ldr r0, [sp]
- bl MOD11_022302A8
- add r0, r0, #3
- str r0, [sp, #0x8c]
- ldr r0, [sp]
- bl MOD11_02230C68
- add r4, r0, #0
- ldr r0, [sp]
- bl MOD11_022302A8
- lsl r1, r0, #1
- add r0, r0, r1
- add r0, #0x9e
- add r0, r4, r0
- str r0, [sp, #0x90]
- mov r0, #2
- str r0, [sp, #0x94]
- mov r0, #0
- ldr r2, [sp, #0x18]
- str r0, [sp, #0x98]
- mov r0, #8
- str r0, [sp, #0x9c]
- lsl r2, r2, #0x10
- ldr r0, [sp, #8]
- ldr r1, [sp, #0xc]
- lsr r2, r2, #0x10
- add r3, sp, #0x1c
- bl MOD08_02212048
- add sp, #0xac
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0225452C
-MOD11_0225452C: ; 0x0225452C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r6, r2, #0
- add r7, r1, #0
- str r3, [r6]
- str r0, [sp]
- str r3, [r6, #4]
- mov r4, #0
- add r5, r6, #0
- str r7, [sp, #0xc]
- str r6, [sp, #8]
- str r7, [sp, #4]
-_02254544:
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_022312D0
- str r0, [r5, #8]
- ldr r0, [sp, #0xc]
- ldrh r1, [r0, #0x18]
- ldr r0, [sp, #8]
- strh r1, [r0, #0x28]
- add r0, r7, r4
- add r0, #0x20
- ldrb r1, [r0]
- add r0, r6, r4
- add r0, #0x30
- strb r1, [r0]
- add r0, r7, r4
- add r0, #0x24
- ldrb r1, [r0]
- add r0, r6, r4
- add r0, #0x34
- strb r1, [r0]
- add r0, r7, r4
- add r0, #0x28
- ldrb r1, [r0]
- add r0, r6, r4
- add r0, #0x38
- strb r1, [r0]
- ldr r0, [sp, #4]
- add r4, r4, #1
- ldr r0, [r0, #0x2c]
- str r0, [r5, #0x3c]
- ldr r0, [sp, #0xc]
- add r5, r5, #4
- add r0, r0, #2
- str r0, [sp, #0xc]
- ldr r0, [sp, #8]
- add r0, r0, #2
- str r0, [sp, #8]
- ldr r0, [sp, #4]
- add r0, r0, #4
- str r0, [sp, #4]
- cmp r4, #4
- blt _02254544
- add r1, r6, #0
- ldr r0, [sp]
- add r1, #0x4c
- bl MOD11_02231504
- add r6, #0x18
- ldr r0, [sp]
- add r1, r6, #0
- bl MOD11_02231534
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022545B4
-MOD11_022545B4: ; 0x022545B4
- push {r4, r5, r6, lr}
- add r4, r0, #0
- add r5, r1, #0
- cmp r2, #0
- bne _022545F2
- add r0, sp, #0
- ldrh r6, [r0, #0x10]
- mov r1, #9
- add r0, r6, #0
- bl GetWazaAttr
- mov r1, #0x40
- tst r0, r1
- bne _022545D4
- mov r0, #1
- b _022545D6
-_022545D4:
- mov r0, #0
-_022545D6:
- strb r0, [r4]
- add r0, r6, #0
- mov r1, #9
- bl GetWazaAttr
- mov r1, #0x80
- tst r0, r1
- beq _022545EC
- mov r0, #1
- strb r0, [r5]
- pop {r4, r5, r6, pc}
-_022545EC:
- mov r0, #0
- strb r0, [r5]
- pop {r4, r5, r6, pc}
-_022545F2:
- sub r3, #0x12
- cmp r3, #0x15
- bhi _02254642
- add r0, r3, r3
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02254604: ; jump table
- .short _02254630 - _02254604 - 2 ; case 0
- .short _02254630 - _02254604 - 2 ; case 1
- .short _02254630 - _02254604 - 2 ; case 2
- .short _02254630 - _02254604 - 2 ; case 3
- .short _02254630 - _02254604 - 2 ; case 4
- .short _02254642 - _02254604 - 2 ; case 5
- .short _02254642 - _02254604 - 2 ; case 6
- .short _02254642 - _02254604 - 2 ; case 7
- .short _02254642 - _02254604 - 2 ; case 8
- .short _02254642 - _02254604 - 2 ; case 9
- .short _02254642 - _02254604 - 2 ; case 10
- .short _02254642 - _02254604 - 2 ; case 11
- .short _02254642 - _02254604 - 2 ; case 12
- .short _02254630 - _02254604 - 2 ; case 13
- .short _02254630 - _02254604 - 2 ; case 14
- .short _02254642 - _02254604 - 2 ; case 15
- .short _02254630 - _02254604 - 2 ; case 16
- .short _02254630 - _02254604 - 2 ; case 17
- .short _0225463A - _02254604 - 2 ; case 18
- .short _02254630 - _02254604 - 2 ; case 19
- .short _0225463A - _02254604 - 2 ; case 20
- .short _02254630 - _02254604 - 2 ; case 21
-_02254630:
- mov r0, #1
- strb r0, [r4]
- mov r0, #0
- strb r0, [r5]
- pop {r4, r5, r6, pc}
-_0225463A:
- mov r0, #1
- strb r0, [r4]
- strb r0, [r5]
- pop {r4, r5, r6, pc}
-_02254642:
- mov r0, #0
- strb r0, [r4]
- strb r0, [r5]
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225464C
-MOD11_0225464C: ; 0x0225464C
- push {r4, lr}
- add r4, r0, #0
- mov r0, #0x66
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- cmp r0, #0
- bne _02254680
- add r0, r1, #0
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- bne _02254680
- mov r1, #0xb4
- add r0, r1, #0
- add r0, #0xe8
- strh r1, [r4, r0]
- ldr r0, _02254684 ; =MOD11_022546B4
- ldr r2, _02254688 ; =0x000003F2
- add r1, r4, #0
- bl FUN_0200CA44
- mov r1, #0x66
- lsl r1, r1, #2
- str r0, [r4, r1]
-_02254680:
- pop {r4, pc}
- nop
-_02254684: .word MOD11_022546B4
-_02254688: .word 0x000003F2
-
- thumb_func_start MOD11_0225468C
-MOD11_0225468C: ; 0x0225468C
- push {r4, lr}
- add r4, r0, #0
- mov r0, #0x66
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- cmp r0, #0
- beq _022546B2
- bl FUN_0200CAB4
- mov r0, #0x66
- mov r2, #0
- lsl r0, r0, #2
- str r2, [r4, r0]
- add r0, r0, #4
- strh r2, [r4, r0]
- ldr r0, [r4, #0x20]
- mov r1, #4
- bl FUN_02007558
-_022546B2:
- pop {r4, pc}
-
- thumb_func_start MOD11_022546B4
-MOD11_022546B4: ; 0x022546B4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- mov r1, #0x67
- lsl r1, r1, #2
- ldrh r0, [r4, r1]
- add r0, #0x14
- strh r0, [r4, r1]
- add r0, r1, #0
- ldrh r2, [r4, r1]
- sub r0, #0x34
- cmp r2, r0
- blo _022546D4
- add r0, r1, #0
- sub r0, #0x34
- sub r0, r2, r0
- strh r0, [r4, r1]
-_022546D4:
- mov r0, #0x67
- lsl r0, r0, #2
- ldrh r0, [r4, r0]
- bl FUN_0201B93C
- mov r2, #6
- asr r1, r0, #0x1f
- lsl r2, r2, #0xa
- mov r3, #0
- bl _ll_mul
- add r2, r1, #0
- mov r1, #4
- add r5, r0, #0
- ldr r0, [r4, #0x20]
- mov r4, #0
- lsl r3, r1, #9
- add r3, r5, r3
- adc r2, r4
- lsl r2, r2, #0x14
- lsr r3, r3, #0xc
- orr r3, r2
- asr r2, r3, #0xb
- lsr r2, r2, #0x14
- add r2, r3, r2
- asr r2, r2, #0xc
- bl FUN_02007558
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02254710
-MOD11_02254710: ; 0x02254710
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r7, r0, #0
- str r1, [sp]
- str r2, [sp, #4]
- add r6, r3, #0
- bl MOD11_022300DC
- add r4, r0, #0
- add r0, r7, #0
- bl MOD11_02230118
- add r5, r0, #0
- add r0, r7, #0
- bl MOD11_02230124
- add r7, r0, #0
- add r0, sp, #0x10
- ldrh r2, [r5]
- ldrb r3, [r0, #0x10]
- add r0, r2, #5
- add r1, r0, r3
- mov r0, #1
- lsl r0, r0, #0xc
- cmp r1, r0
- bls _0225474A
- strh r2, [r7]
- mov r0, #0
- strh r0, [r5]
-_0225474A:
- ldr r1, [sp]
- add r0, sp, #8
- strb r1, [r0]
- ldr r1, [sp, #4]
- strb r1, [r0, #1]
- add r1, sp, #0x10
- ldrb r1, [r1, #0x10]
- strh r1, [r0, #2]
- add r1, sp, #8
- mov r0, #0
-_0225475E:
- ldrb r7, [r1, r0]
- ldrh r2, [r5]
- add r0, r0, #1
- strb r7, [r4, r2]
- ldrh r2, [r5]
- add r2, r2, #1
- strh r2, [r5]
- cmp r0, #4
- blo _0225475E
- mov r0, #0
- cmp r3, #0
- ble _02254788
-_02254776:
- ldrb r2, [r6, r0]
- ldrh r1, [r5]
- add r0, r0, #1
- strb r2, [r4, r1]
- ldrh r1, [r5]
- add r1, r1, #1
- strh r1, [r5]
- cmp r0, r3
- blt _02254776
-_02254788:
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0225478C
-MOD11_0225478C: ; 0x0225478C
- push {r3, r4, r5, r6, r7, lr}
- add r3, r1, #0
- ldrb r6, [r3, #3]
- ldrb r1, [r3]
- ldrb r7, [r3, #2]
- lsl r6, r6, #8
- add r5, r0, #0
- mov r2, #0
- orr r6, r7
- ldrb r4, [r3, #1]
- cmp r1, #0
- bne _022547D2
- ldr r0, [r5, #0x30]
- lsl r1, r4, #8
- add r4, r0, r1
- mov r0, #0x23
- lsl r0, r0, #8
- ldrb r0, [r4, r0]
- cmp r0, #0
- bne _0225481C
- cmp r6, #0
- ble _022547CE
- mov r4, #0x23
- lsl r4, r4, #8
-_022547BC:
- add r0, r3, r2
- ldr r7, [r5, #0x30]
- ldrb r0, [r0, #4]
- add r7, r1, r7
- add r7, r2, r7
- add r2, r2, #1
- strb r0, [r7, r4]
- cmp r2, r6
- blt _022547BC
-_022547CE:
- mov r2, #1
- b _0225481C
-_022547D2:
- cmp r1, #1
- bne _022547FE
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r1, [r0, #0x34]
- add r1, #0x94
- ldrb r1, [r1]
- cmp r1, #0
- bne _0225481C
- cmp r6, #0
- ble _022547FA
-_022547E8:
- add r1, r3, r2
- ldrb r4, [r1, #4]
- ldr r1, [r0, #0x34]
- add r1, r1, r2
- add r1, #0x94
- add r2, r2, #1
- strb r4, [r1]
- cmp r2, r6
- blt _022547E8
-_022547FA:
- mov r2, #1
- b _0225481C
-_022547FE:
- cmp r1, #2
- bne _0225481C
- ldrb r7, [r3, #4]
- ldrb r6, [r3, #5]
- bl MOD11_02230DD4
- cmp r0, #0
- beq _0225481A
- ldr r0, [r5, #0x30]
- add r1, r6, #0
- add r2, r4, #0
- add r3, r7, #0
- bl MOD11_02243340
-_0225481A:
- mov r2, #1
-_0225481C:
- add r0, r2, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02254820
-MOD11_02254820: ; 0x02254820
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- bl MOD11_022300DC
- add r4, r0, #0
- add r0, r6, #0
- bl MOD11_0223010C
- add r5, r0, #0
- add r0, r6, #0
- bl MOD11_02230118
- add r7, r0, #0
- add r0, r6, #0
- bl MOD11_02230124
- ldrh r1, [r5]
- ldrh r2, [r7]
- cmp r1, r2
- beq _02254876
- ldrh r2, [r0]
- cmp r1, r2
- bne _02254854
- mov r1, #0
- strh r1, [r5]
- strh r1, [r0]
-_02254854:
- ldrh r1, [r5]
- add r0, r6, #0
- add r1, r4, r1
- bl MOD11_0225478C
- cmp r0, #1
- bne _02254876
- ldrh r0, [r5]
- add r1, r0, #2
- ldrb r2, [r4, r1]
- add r1, r0, #3
- ldrb r1, [r4, r1]
- lsl r1, r1, #8
- orr r1, r2
- add r1, r1, #4
- add r0, r0, r1
- strh r0, [r5]
-_02254876:
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02254878
-MOD11_02254878: ; 0x02254878
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- str r1, [sp, #4]
- ldr r1, [r5, #0x2c]
- mov r0, #4
- add r7, r2, #0
- add r6, r3, #0
- tst r0, r1
- beq _022548C8
- ldr r0, [sp, #4]
- cmp r0, #1
- bne _022548B2
- mov r4, #0
- bl FUN_02030F20
- cmp r0, #0
- ble _022548B2
-_0225489C:
- ldrb r3, [r6]
- ldr r0, [r5, #0x30]
- add r1, r4, #0
- add r2, r7, #0
- bl MOD11_02243304
- add r4, r4, #1
- bl FUN_02030F20
- cmp r4, r0
- blt _0225489C
-_022548B2:
- add r0, sp, #0x10
- ldrb r0, [r0, #0x10]
- ldr r1, [sp, #4]
- add r2, r7, #0
- str r0, [sp]
- add r0, r5, #0
- add r3, r6, #0
- bl FUN_0206C0C8
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_022548C8:
- ldr r0, [sp, #4]
- cmp r0, #1
- bne _022548D8
- ldrb r3, [r6]
- ldr r0, [r5, #0x30]
- mov r1, #0
- bl MOD11_02243304
-_022548D8:
- add r0, sp, #0x10
- ldrb r0, [r0, #0x10]
- ldr r1, [sp, #4]
- add r2, r7, #0
- str r0, [sp]
- add r0, r5, #0
- add r3, r6, #0
- bl MOD11_02254710
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022548F0
-MOD11_022548F0: ; 0x022548F0
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #1
- str r1, [sp, #4]
- mov r3, #4
- str r3, [sp]
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
-
- thumb_func_start MOD11_02254908
-MOD11_02254908: ; 0x02254908
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x48
- add r7, r1, #0
- mov r3, #2
- add r2, sp, #0xc
- strb r3, [r2]
- mov r2, #0xc0
- add r4, r7, #0
- mul r4, r2
- add r2, sp, #0xc
- ldrb r2, [r2, #1]
- mov r3, #3
- add r6, r0, #0
- str r2, [sp, #4]
- bic r2, r3
- str r2, [sp, #4]
- ldr r2, [r6, #0x30]
- add r3, r2, r4
- ldr r2, _02254A04 ; =0x00002DBE
- str r2, [sp, #8]
- ldrb r2, [r3, r2]
- lsl r2, r2, #0x1c
- lsr r3, r2, #0x1c
- mov r2, #3
- and r3, r2
- ldr r2, [sp, #4]
- orr r3, r2
- add r2, sp, #0xc
- strb r3, [r2, #1]
- ldrb r3, [r2, #1]
- mov r2, #4
- bic r3, r2
- ldr r2, [r6, #0x30]
- add r5, r2, r4
- ldr r2, [sp, #8]
- sub r2, #0x58
- ldrb r2, [r5, r2]
- lsl r2, r2, #0x1a
- lsr r2, r2, #0x1f
- lsl r2, r2, #0x1f
- lsr r2, r2, #0x1d
- orr r3, r2
- add r2, sp, #0xc
- strb r3, [r2, #1]
- ldr r2, [r6, #0x30]
- add r3, r2, r4
- ldr r2, [sp, #8]
- sub r2, #0x7e
- ldrh r3, [r3, r2]
- add r2, sp, #0xc
- strh r3, [r2, #2]
- ldr r2, [r6, #0x30]
- add r3, r2, r4
- ldr r2, [sp, #8]
- sub r2, #0x16
- str r2, [sp, #8]
- ldr r2, [r3, r2]
- str r2, [sp, #0x10]
- bl MOD11_02230260
- add r2, r0, #0
- ldr r0, [r6, #0x30]
- add r1, r7, #0
- mov r3, #1
- bl MOD11_0224ACAC
- add r2, sp, #0xc
- str r0, [sp, #0x14]
- ldrb r0, [r2, #1]
- mov r1, #0xf8
- add r5, sp, #0xc
- bic r0, r1
- ldr r1, [r6, #0x30]
- add r3, r1, r4
- ldr r1, _02254A08 ; =0x00002D66
- mov r4, #0
- ldrb r1, [r3, r1]
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x1b
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x18
- orr r0, r1
- strb r0, [r2, #1]
-_022549AE:
- ldr r0, [r6, #0x30]
- add r1, r7, #0
- add r2, r4, #6
- mov r3, #0
- bl MOD11_02243420
- strh r0, [r5, #0xc]
- add r2, r4, #0
- ldr r0, [r6, #0x30]
- add r1, r7, #0
- add r2, #0x1f
- mov r3, #0
- bl MOD11_02243420
- strh r0, [r5, #0x14]
- add r2, r4, #0
- ldr r0, [r6, #0x30]
- add r1, r7, #0
- add r2, #0x27
- mov r3, #0
- bl MOD11_02243420
- strh r0, [r5, #0x1c]
- add r4, r4, #1
- add r5, r5, #2
- cmp r4, #4
- blt _022549AE
- ldr r0, [r6, #0x30]
- add r1, r7, #0
- mov r2, #0x2d
- add r3, sp, #0x30
- bl MOD11_02243420
- mov r0, #0x3c
- str r0, [sp]
- add r0, r6, #0
- mov r1, #1
- add r2, r7, #0
- add r3, sp, #0xc
- bl MOD11_02254878
- add sp, #0x48
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02254A04: .word 0x00002DBE
-_02254A08: .word 0x00002D66
-
- thumb_func_start MOD11_02254A0C
-MOD11_02254A0C: ; 0x02254A0C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x7c
- add r7, r1, #0
- mov r3, #3
- add r2, sp, #8
- strb r3, [r2]
- mov r2, #0xc0
- add r4, r7, #0
- mul r4, r2
- add r2, sp, #8
- ldrb r5, [r2, #1]
- mov r2, #3
- add r6, r0, #0
- bic r5, r2
- ldr r2, [r6, #0x30]
- add r3, r2, r4
- ldr r2, _02254B34 ; =0x00002DBE
- str r2, [sp, #4]
- ldrb r2, [r3, r2]
- lsl r2, r2, #0x1c
- lsr r3, r2, #0x1c
- mov r2, #3
- and r2, r3
- add r3, r5, #0
- orr r3, r2
- add r2, sp, #8
- strb r3, [r2, #1]
- ldrb r3, [r2, #1]
- mov r2, #4
- bic r3, r2
- ldr r2, [r6, #0x30]
- add r5, r2, r4
- ldr r2, [sp, #4]
- sub r2, #0x58
- ldrb r2, [r5, r2]
- lsl r2, r2, #0x1a
- lsr r2, r2, #0x1f
- lsl r2, r2, #0x1f
- lsr r2, r2, #0x1d
- orr r3, r2
- add r2, sp, #8
- strb r3, [r2, #1]
- ldr r2, [r6, #0x30]
- add r3, r2, r4
- ldr r2, [sp, #4]
- sub r2, #0x7e
- ldrh r3, [r3, r2]
- add r2, sp, #8
- strh r3, [r2, #2]
- ldr r2, [r6, #0x30]
- add r3, r2, r4
- ldr r2, [sp, #4]
- sub r2, #0x16
- str r2, [sp, #4]
- ldr r2, [r3, r2]
- str r2, [sp, #0xc]
- bl MOD11_02230260
- add r2, r0, #0
- ldr r0, [r6, #0x30]
- add r1, r7, #0
- mov r3, #1
- bl MOD11_0224ACAC
- str r0, [sp, #0x10]
- ldr r0, [r6, #0x30]
- add r2, sp, #8
- add r1, r0, r7
- ldr r0, _02254B38 ; =0x0000219C
- ldrb r0, [r1, r0]
- mov r1, #0xf8
- str r0, [sp, #0x14]
- ldrb r0, [r2, #1]
- bic r0, r1
- ldr r1, [r6, #0x30]
- add r3, r1, r4
- ldr r1, _02254B3C ; =0x00002D66
- ldrb r3, [r3, r1]
- add r1, #0x59
- lsl r3, r3, #0x1b
- lsr r3, r3, #0x1b
- lsl r3, r3, #0x1b
- lsr r3, r3, #0x18
- orr r0, r3
- strb r0, [r2, #1]
- ldr r0, [r6, #0x30]
- add r0, r0, r4
- ldrb r0, [r0, r1]
- add r1, r7, #0
- str r0, [sp, #0x18]
- add r0, r6, #0
- bl MOD11_022302BC
- ldr r1, [r6, #0x30]
- ldr r2, [sp, #0x14]
- add r1, r1, r0
- ldr r0, _02254B38 ; =0x0000219C
- ldrb r0, [r1, r0]
- add r1, r7, #0
- str r0, [sp, #0x50]
- add r0, r6, #0
- bl MOD11_02230F6C
- mov r4, #0
- add r5, sp, #8
-_02254ADE:
- ldr r0, [r6, #0x30]
- add r1, r7, #0
- add r2, r4, #6
- mov r3, #0
- bl MOD11_02243420
- strh r0, [r5, #0x18]
- add r2, r4, #0
- ldr r0, [r6, #0x30]
- add r1, r7, #0
- add r2, #0x1f
- mov r3, #0
- bl MOD11_02243420
- strh r0, [r5, #0x20]
- add r2, r4, #0
- ldr r0, [r6, #0x30]
- add r1, r7, #0
- add r2, #0x27
- mov r3, #0
- bl MOD11_02243420
- strh r0, [r5, #0x28]
- add r4, r4, #1
- add r5, r5, #2
- cmp r4, #4
- blt _02254ADE
- ldr r0, [r6, #0x30]
- add r1, r7, #0
- mov r2, #0x2d
- add r3, sp, #0x38
- bl MOD11_02243420
- mov r0, #0x74
- str r0, [sp]
- add r0, r6, #0
- mov r1, #1
- add r2, r7, #0
- add r3, sp, #8
- bl MOD11_02254878
- add sp, #0x7c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02254B34: .word 0x00002DBE
-_02254B38: .word 0x0000219C
-_02254B3C: .word 0x00002D66
-
- thumb_func_start MOD11_02254B40
-MOD11_02254B40: ; 0x02254B40
- push {r4, r5, r6, r7, lr}
- sub sp, #0x84
- add r7, r1, #0
- add r4, r0, #0
- mov r1, #4
- add r6, sp, #0x10
- strb r1, [r6]
- mov r0, #0xc0
- add r5, r7, #0
- mul r5, r0
- ldr r0, [r4, #0x30]
- str r2, [sp, #4]
- add r2, r0, r5
- ldr r0, _02254D34 ; =0x00002DB0
- str r3, [sp, #8]
- ldr r3, [r2, r0]
- lsl r1, r1, #0x13
- tst r1, r3
- ldrb r1, [r6, #1]
- beq _02254B8A
- mov r3, #3
- bic r1, r3
- add r3, r0, #0
- add r3, #0x4a
- ldrh r2, [r2, r3]
- add r0, #0x34
- lsl r2, r2, #0x18
- lsr r3, r2, #0x18
- mov r2, #3
- and r2, r3
- orr r1, r2
- strb r1, [r6, #1]
- ldr r1, [r4, #0x30]
- add r1, r1, r5
- ldr r0, [r1, r0]
- str r0, [sp, #0x14]
- b _02254BAA
-_02254B8A:
- mov r3, #3
- bic r1, r3
- add r3, r0, #0
- add r3, #0xe
- ldrb r2, [r2, r3]
- sub r0, #8
- lsl r2, r2, #0x1c
- lsr r3, r2, #0x1c
- mov r2, #3
- and r2, r3
- orr r1, r2
- strb r1, [r6, #1]
- ldr r1, [r4, #0x30]
- add r1, r1, r5
- ldr r0, [r1, r0]
- str r0, [sp, #0x14]
-_02254BAA:
- mov r0, #0xc0
- add r6, r7, #0
- add r3, sp, #0x10
- mul r6, r0
- ldrb r0, [r3, #1]
- mov r1, #4
- bic r0, r1
- ldr r1, [r4, #0x30]
- add r2, r1, r6
- ldr r1, _02254D38 ; =0x00002D66
- ldrb r2, [r2, r1]
- sub r1, #0x26
- lsl r2, r2, #0x1a
- lsr r2, r2, #0x1f
- lsl r2, r2, #0x1f
- lsr r2, r2, #0x1d
- orr r0, r2
- strb r0, [r3, #1]
- ldr r0, [r4, #0x30]
- add r0, r0, r6
- ldrh r0, [r0, r1]
- add r1, r7, #0
- strh r0, [r3, #2]
- add r0, r4, #0
- bl MOD11_02230260
- add r2, r0, #0
- ldr r0, [r4, #0x30]
- add r1, r7, #0
- mov r3, #0
- bl MOD11_0224ACAC
- str r0, [sp, #0x18]
- ldr r0, [r4, #0x30]
- mov r2, #0xf8
- add r1, r0, r7
- ldr r0, _02254D3C ; =0x0000219C
- ldrb r0, [r1, r0]
- str r0, [sp, #0x1c]
- add r0, sp, #0x10
- ldrb r1, [r0, #1]
- bic r1, r2
- ldr r2, [r4, #0x30]
- add r3, r2, r6
- ldr r2, _02254D38 ; =0x00002D66
- ldrb r3, [r3, r2]
- lsl r3, r3, #0x1b
- lsr r3, r3, #0x1b
- lsl r3, r3, #0x1b
- lsr r3, r3, #0x18
- orr r1, r3
- strb r1, [r0, #1]
- ldr r0, [sp, #4]
- cmp r0, #0
- beq _02254C1C
- str r0, [sp, #0x20]
- b _02254C26
-_02254C1C:
- ldr r0, [r4, #0x30]
- add r2, #0x59
- add r0, r0, r5
- ldrb r0, [r0, r2]
- str r0, [sp, #0x20]
-_02254C26:
- ldr r0, [sp, #8]
- str r0, [sp, #0x24]
- ldr r0, [r4, #0x30]
- add r1, r0, r5
- ldr r0, _02254D34 ; =0x00002DB0
- ldr r1, [r1, r0]
- mov r0, #1
- lsl r0, r0, #0x18
- tst r0, r1
- beq _02254C3E
- mov r0, #1
- b _02254C40
-_02254C3E:
- mov r0, #0
-_02254C40:
- ldr r2, [sp, #0x1c]
- str r0, [sp, #0x5c]
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_02230F6C
- mov r6, #0
- add r5, sp, #0x10
-_02254C50:
- ldr r0, [r4, #0x30]
- add r1, r7, #0
- add r2, r6, #6
- mov r3, #0
- bl MOD11_02243420
- strh r0, [r5, #0x18]
- add r2, r6, #0
- ldr r0, [r4, #0x30]
- add r1, r7, #0
- add r2, #0x1f
- mov r3, #0
- bl MOD11_02243420
- strh r0, [r5, #0x20]
- add r2, r6, #0
- ldr r0, [r4, #0x30]
- add r1, r7, #0
- add r2, #0x27
- mov r3, #0
- bl MOD11_02243420
- strh r0, [r5, #0x28]
- add r6, r6, #1
- add r5, r5, #2
- cmp r6, #4
- blt _02254C50
- ldr r0, [r4, #0x30]
- add r1, r7, #0
- mov r2, #0x2d
- add r3, sp, #0x40
- bl MOD11_02243420
- add r3, sp, #0x10
- mov r2, #0
- mov ip, r2
- str r3, [sp, #0xc]
- add r5, r3, #0
-_02254C9C:
- ldr r0, [r4, #0x30]
- add r1, r0, r2
- mov r0, #0xb5
- lsl r0, r0, #6
- ldrh r1, [r1, r0]
- ldr r0, [sp, #0xc]
- add r0, #0x50
- strh r1, [r0]
- ldr r0, [r4, #0x30]
- add r1, r0, r2
- ldr r0, _02254D38 ; =0x00002D66
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x1a
- lsr r1, r0, #0x1f
- add r0, r3, #0
- add r0, #0x5c
- strb r1, [r0]
- ldr r0, [r4, #0x30]
- add r1, r0, r2
- ldr r0, _02254D38 ; =0x00002D66
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x1b
- lsr r1, r0, #0x1b
- add r0, r3, #0
- add r0, #0x60
- strb r1, [r0]
- ldr r0, [r4, #0x30]
- add r6, r0, r2
- ldr r0, _02254D34 ; =0x00002DB0
- ldr r1, [r6, r0]
- mov r0, #2
- lsl r0, r0, #0x14
- tst r0, r1
- beq _02254CF2
- ldr r0, _02254D40 ; =0x00002DFA
- ldrh r1, [r6, r0]
- add r0, r3, #0
- add r0, #0x58
- strb r1, [r0]
- ldr r0, [r4, #0x30]
- add r1, r0, r2
- ldr r0, _02254D44 ; =0x00002DE4
- b _02254D06
-_02254CF2:
- ldr r0, _02254D48 ; =0x00002DBE
- ldrb r0, [r6, r0]
- lsl r0, r0, #0x1c
- lsr r1, r0, #0x1c
- add r0, r3, #0
- add r0, #0x58
- strb r1, [r0]
- ldr r0, [r4, #0x30]
- add r1, r0, r2
- ldr r0, _02254D4C ; =0x00002DA8
-_02254D06:
- ldr r0, [r1, r0]
- add r2, #0xc0
- str r0, [r5, #0x64]
- ldr r0, [sp, #0xc]
- add r3, r3, #1
- add r0, r0, #2
- str r0, [sp, #0xc]
- mov r0, ip
- add r0, r0, #1
- add r5, r5, #4
- mov ip, r0
- cmp r0, #4
- blt _02254C9C
- mov r0, #0x74
- str r0, [sp]
- add r0, r4, #0
- mov r1, #1
- add r2, r7, #0
- add r3, sp, #0x10
- bl MOD11_02254878
- add sp, #0x84
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02254D34: .word 0x00002DB0
-_02254D38: .word 0x00002D66
-_02254D3C: .word 0x0000219C
-_02254D40: .word 0x00002DFA
-_02254D44: .word 0x00002DE4
-_02254D48: .word 0x00002DBE
-_02254D4C: .word 0x00002DA8
-
- thumb_func_start MOD11_02254D50
-MOD11_02254D50: ; 0x02254D50
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- add r4, r1, #0
- lsl r1, r2, #2
- str r0, [sp, #4]
- add r0, r0, r1
- ldr r1, [r0, #0x34]
- ldr r0, _02254E8C ; =0x00000195
- str r2, [sp, #8]
- ldrb r1, [r1, r0]
- mov r0, #1
- tst r0, r1
- beq _02254D6E
- mov r2, #2
- b _02254D70
-_02254D6E:
- mov r2, #0
-_02254D70:
- ldr r0, [sp, #8]
- mov r1, #0xc0
- add r5, r0, #0
- ldr r0, [sp, #4]
- mul r5, r1
- ldr r0, [r0, #0x30]
- ldr r3, _02254E90 ; =0x00002D66
- add r0, r0, r5
- ldrb r0, [r0, r3]
- mov r1, #5
- lsl r0, r0, #0x1b
- lsr r7, r0, #0x1b
- add r0, sp, #0xc
- strb r1, [r0]
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x30]
- add r1, r0, r5
- add r0, r3, #0
- add r0, #0x4a
- ldr r6, [r1, r0]
- mov r0, #2
- lsl r0, r0, #0x14
- tst r0, r6
- beq _02254DC4
- add r0, r3, #0
- add r0, #0x7e
- ldr r0, [r1, r0]
- lsl r2, r2, #0x18
- str r0, [sp]
- add r0, r3, #0
- sub r0, #0x26
- add r3, #0x94
- ldrh r0, [r1, r0]
- ldrh r1, [r1, r3]
- lsl r3, r7, #0x18
- lsr r2, r2, #0x18
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- lsr r3, r3, #0x18
- bl FUN_02068E88
- b _02254DE6
-_02254DC4:
- add r0, r3, #0
- add r0, #0x42
- ldr r0, [r1, r0]
- lsl r2, r2, #0x18
- str r0, [sp]
- add r0, r3, #0
- sub r0, #0x26
- add r3, #0x58
- ldrh r0, [r1, r0]
- ldrb r1, [r1, r3]
- lsl r3, r7, #0x18
- lsr r2, r2, #0x18
- lsl r1, r1, #0x1c
- lsr r1, r1, #0x1c
- lsr r3, r3, #0x18
- bl FUN_02068E88
-_02254DE6:
- add r1, sp, #0xc
- strb r0, [r1, #1]
- ldr r0, [sp, #4]
- ldr r1, _02254E94 ; =0x00002DBF
- ldr r0, [r0, #0x30]
- add r0, r0, r5
- ldrb r2, [r0, r1]
- add r0, sp, #0xc
- sub r1, #0xf
- strh r2, [r0, #2]
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x30]
- add r0, r0, r5
- ldr r1, [r0, r1]
- mov r0, #1
- lsl r0, r0, #0x18
- tst r0, r1
- beq _02254E0E
- mov r0, #1
- b _02254E10
-_02254E0E:
- mov r0, #0
-_02254E10:
- str r0, [sp, #0x10]
- mov r0, #0
- mov ip, r0
- add r7, sp, #0xc
- ldr r0, _02254E90 ; =0x00002D66
- add r3, r7, #0
- add r2, r4, r0
- add r0, #0x58
- add r5, r7, #0
- add r6, r4, r0
-_02254E24:
- mov r0, #0xb5
- lsl r0, r0, #6
- ldrh r0, [r4, r0]
- strh r0, [r7, #8]
- ldrb r0, [r2]
- lsl r0, r0, #0x1a
- lsr r0, r0, #0x1f
- strb r0, [r3, #0x14]
- ldrb r0, [r2]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x1b
- strb r0, [r3, #0x18]
- ldr r0, _02254E98 ; =0x00002DB0
- ldr r1, [r4, r0]
- mov r0, #2
- lsl r0, r0, #0x14
- tst r0, r1
- beq _02254E52
- ldr r0, _02254E9C ; =0x00002DFA
- ldrh r0, [r4, r0]
- strb r0, [r3, #0x10]
- ldr r0, _02254EA0 ; =0x00002DE4
- b _02254E5C
-_02254E52:
- ldrb r0, [r6]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- strb r0, [r3, #0x10]
- ldr r0, _02254EA4 ; =0x00002DA8
-_02254E5C:
- ldr r0, [r4, r0]
- add r4, #0xc0
- str r0, [r5, #0x1c]
- mov r0, ip
- add r0, r0, #1
- add r7, r7, #2
- add r2, #0xc0
- add r3, r3, #1
- add r5, r5, #4
- add r6, #0xc0
- mov ip, r0
- cmp r0, #4
- blt _02254E24
- mov r0, #0x2c
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [sp, #8]
- mov r1, #1
- add r3, sp, #0xc
- bl MOD11_02254878
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02254E8C: .word 0x00000195
-_02254E90: .word 0x00002D66
-_02254E94: .word 0x00002DBF
-_02254E98: .word 0x00002DB0
-_02254E9C: .word 0x00002DFA
-_02254EA0: .word 0x00002DE4
-_02254EA4: .word 0x00002DA8
-
- thumb_func_start MOD11_02254EA8
-MOD11_02254EA8: ; 0x02254EA8
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r7, r1, #0
- add r4, r0, #0
- lsl r0, r7, #2
- add r0, r4, r0
- ldr r1, [r0, #0x34]
- ldr r0, _02254F58 ; =0x00000195
- str r2, [sp, #4]
- ldrb r1, [r1, r0]
- mov r0, #1
- tst r0, r1
- beq _02254EC6
- mov r2, #2
- b _02254EC8
-_02254EC6:
- mov r2, #0
-_02254EC8:
- mov r0, #0xc0
- add r6, r7, #0
- mul r6, r0
- ldr r0, [r4, #0x30]
- ldr r5, _02254F5C ; =0x00002D66
- add r0, r0, r6
- ldrb r0, [r0, r5]
- mov r1, #6
- lsl r0, r0, #0x1b
- lsr r3, r0, #0x1b
- add r0, sp, #8
- strb r1, [r0]
- ldr r0, [r4, #0x30]
- add r1, r0, r6
- add r0, r5, #0
- add r0, #0x4a
- ldr r6, [r1, r0]
- mov r0, #2
- lsl r0, r0, #0x14
- tst r0, r6
- beq _02254F16
- add r0, r5, #0
- add r0, #0x7e
- ldr r0, [r1, r0]
- lsl r2, r2, #0x18
- str r0, [sp]
- add r0, r5, #0
- sub r0, #0x26
- add r5, #0x94
- ldrh r0, [r1, r0]
- ldrh r1, [r1, r5]
- lsl r3, r3, #0x18
- lsr r2, r2, #0x18
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- lsr r3, r3, #0x18
- bl FUN_02068E88
- b _02254F38
-_02254F16:
- add r0, r5, #0
- add r0, #0x42
- ldr r0, [r1, r0]
- lsl r2, r2, #0x18
- str r0, [sp]
- add r0, r5, #0
- sub r0, #0x26
- add r5, #0x58
- ldrh r0, [r1, r0]
- ldrb r1, [r1, r5]
- lsl r3, r3, #0x18
- lsr r2, r2, #0x18
- lsl r1, r1, #0x1c
- lsr r1, r1, #0x1c
- lsr r3, r3, #0x18
- bl FUN_02068E88
-_02254F38:
- add r1, sp, #8
- strb r0, [r1, #1]
- ldr r0, [sp, #4]
- add r1, sp, #8
- strh r0, [r1, #2]
- mov r0, #4
- str r0, [sp]
- add r0, r4, #0
- mov r1, #1
- add r2, r7, #0
- add r3, sp, #8
- bl MOD11_02254878
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02254F58: .word 0x00000195
-_02254F5C: .word 0x00002D66
-
- thumb_func_start MOD11_02254F60
-MOD11_02254F60: ; 0x02254F60
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #7
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02254F7C
-MOD11_02254F7C: ; 0x02254F7C
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #8
- add r3, sp, #4
- strb r1, [r3]
- mov r1, #0x34
- mul r1, r2
- add r1, r0, r1
- add r1, #0xad
- ldrb r1, [r1]
- strh r1, [r3, #2]
- add r1, r0, r2
- add r1, #0xa8
- ldrb r1, [r1]
- strb r1, [r3, #1]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
-
- thumb_func_start MOD11_02254FAC
-MOD11_02254FAC: ; 0x02254FAC
- push {r4, r5, r6, lr}
- sub sp, #8
- mov r6, #9
- add r3, sp, #4
- strb r6, [r3]
- add r5, r0, #0
- strb r2, [r3, #1]
- add r4, r1, #0
- bl MOD11_022302BC
- ldr r1, [r5, #0x30]
- add r2, r4, #0
- add r1, r1, r0
- ldr r0, _02254FE0 ; =0x0000219C
- add r3, sp, #4
- ldrb r1, [r1, r0]
- add r0, sp, #4
- strh r1, [r0, #2]
- mov r0, #4
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02254878
- add sp, #8
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02254FE0: .word 0x0000219C
-
- thumb_func_start MOD11_02254FE4
-MOD11_02254FE4: ; 0x02254FE4
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0xa
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02255000
-MOD11_02255000: ; 0x02255000
- push {r3, r4, lr}
- sub sp, #0xc
- add r3, r1, #0
- mov r1, #0xb
- add r4, sp, #4
- strb r1, [r4]
- mov r1, #0x34
- mul r1, r3
- add r1, r0, r1
- add r1, #0xad
- ldrb r1, [r1]
- strh r1, [r4, #2]
- add r1, r0, r3
- add r1, #0xa8
- ldrb r1, [r1]
- strb r1, [r4, #1]
- str r2, [sp, #8]
- mov r1, #8
- str r1, [sp]
- add r2, r3, #0
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #0xc
- pop {r3, r4, pc}
-
- thumb_func_start MOD11_02255034
-MOD11_02255034: ; 0x02255034
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- add r5, r1, #0
- ldr r1, _02255158 ; =0x0000219C
- add r4, r2, #0
- add r7, r5, r1
- ldrb r2, [r7, r4]
- add r1, r4, #0
- str r0, [sp, #4]
- str r3, [sp, #8]
- bl MOD11_02230014
- add r6, r0, #0
- mov r1, #5
- mov r2, #0
- bl GetMonData
- str r0, [sp, #0x10]
- add r0, r6, #0
- mov r1, #0xa0
- mov r2, #0
- bl GetMonData
- str r0, [sp, #0xc]
- mov r0, #0xc
- add r2, sp, #0x14
- strb r0, [r2]
- mov r0, #0xc0
- add r6, r4, #0
- mul r6, r0
- ldr r1, _0225515C ; =0x00002D74
- add r0, r5, r6
- ldrb r3, [r0, r1]
- strb r3, [r2, #1]
- add r3, r1, #0
- add r3, #0x18
- ldr r3, [r0, r3]
- add r1, #0x1c
- strh r3, [r2, #2]
- ldr r0, [r0, r1]
- add r1, r4, #0
- strh r0, [r2, #4]
- ldrb r0, [r7, r4]
- strb r0, [r2, #6]
- add r0, r5, #0
- bl MOD11_0224524C
- add r1, sp, #0x14
- ldrb r2, [r1, #7]
- mov r3, #0x1f
- lsl r0, r0, #0x18
- bic r2, r3
- lsr r3, r0, #0x18
- mov r0, #0x1f
- and r0, r3
- orr r0, r2
- strb r0, [r1, #7]
- mov r0, #0xb5
- lsl r0, r0, #6
- add r7, r5, r0
- ldrh r0, [r7, r6]
- cmp r0, #0x1d
- beq _022550B6
- cmp r0, #0x20
- bne _022550D0
-_022550B6:
- ldr r0, _02255160 ; =0x00002D54
- add r1, r5, r6
- ldr r0, [r1, r0]
- lsr r0, r0, #0x1f
- bne _022550D0
- add r0, sp, #0x14
- ldrb r1, [r0, #7]
- mov r2, #0x60
- bic r1, r2
- mov r2, #0x40
- orr r1, r2
- strb r1, [r0, #7]
- b _022550EA
-_022550D0:
- add r3, sp, #0x14
- ldrb r2, [r3, #7]
- mov r0, #0x60
- add r1, r5, r6
- bic r2, r0
- ldr r0, _02255164 ; =0x00002DBE
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x19
- orr r0, r2
- strb r0, [r3, #7]
-_022550EA:
- ldr r0, [sp, #0x10]
- ldr r1, [sp, #0xc]
- bl GetMonExpBySpeciesAndLevel
- mov r1, #0xc0
- mul r1, r4
- add r2, r5, r1
- ldr r1, _02255168 ; =0x00002DA4
- ldr r1, [r2, r1]
- sub r0, r1, r0
- ldr r1, [sp, #0xc]
- str r0, [sp, #0x1c]
- ldr r0, [sp, #0x10]
- add r1, r1, #1
- bl GetMonExpBySpeciesAndLevel
- add r5, r0, #0
- ldr r0, [sp, #0x10]
- ldr r1, [sp, #0xc]
- bl GetMonExpBySpeciesAndLevel
- sub r0, r5, r0
- str r0, [sp, #0x20]
- ldrh r1, [r7, r6]
- ldr r0, [sp, #4]
- bl MOD11_02231668
- add r3, sp, #0x14
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- lsl r0, r0, #0x1f
- ldrb r1, [r3, #7]
- mov r2, #0x80
- lsr r0, r0, #0x18
- bic r1, r2
- orr r0, r1
- strb r0, [r3, #7]
- ldr r0, [sp, #4]
- bl MOD11_02230E00
- str r0, [sp, #0x24]
- ldr r0, [sp, #8]
- add r1, sp, #0x14
- strb r0, [r1, #0x14]
- mov r0, #0x18
- str r0, [sp]
- ldr r0, [sp, #4]
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #0x14
- bl MOD11_02254878
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- nop
-_02255158: .word 0x0000219C
-_0225515C: .word 0x00002D74
-_02255160: .word 0x00002D54
-_02255164: .word 0x00002DBE
-_02255168: .word 0x00002DA4
-
- thumb_func_start MOD11_0225516C
-MOD11_0225516C: ; 0x0225516C
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0xd
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02255188
-MOD11_02255188: ; 0x02255188
- push {r4, r5, r6, r7, lr}
- sub sp, #0x54
- str r0, [sp, #4]
- str r1, [sp, #8]
- str r2, [sp, #0xc]
- mov r0, #0
- add r1, sp, #0x28
- mov r2, #0x2c
- add r6, r3, #0
- bl MIi_CpuClearFast
- ldr r0, [sp, #4]
- bl MOD11_0222FF78
- ldr r1, [sp, #0xc]
- bl MOD11_02243400
- mov r5, #0
- ldr r0, [sp, #4]
- add r4, r5, #0
- bl MOD11_0222FF84
- cmp r0, #0
- ble _022551D8
-_022551B8:
- ldr r0, [sp, #8]
- add r1, r4, #0
- bl MOD11_0224AD04
- cmp r0, #0
- bne _022551CC
- add r0, r4, #0
- bl MaskOfFlagNo
- orr r5, r0
-_022551CC:
- ldr r0, [sp, #4]
- add r4, r4, #1
- bl MOD11_0222FF84
- cmp r4, r0
- blt _022551B8
-_022551D8:
- mov r1, #0xe
- add r0, sp, #0x28
- strb r1, [r0]
- strb r6, [r0, #1]
- ldr r1, _022554F8 ; =0x00003108
- ldr r0, [sp, #8]
- ldrb r0, [r0, r1]
- add r1, r0, #0
- orr r1, r5
- add r0, sp, #0x48
- strb r1, [r0, #9]
- ldr r0, [sp, #4]
- bl MOD11_0222FF74
- mov r1, #2
- str r0, [sp, #0x20]
- tst r0, r1
- beq _0225520E
- ldr r0, [sp, #0x20]
- mov r1, #8
- tst r0, r1
- bne _0225520E
- ldr r0, [sp, #0xc]
- mov r1, #1
- add r4, r0, #0
- and r4, r1
- b _02255210
-_0225520E:
- ldr r4, [sp, #0xc]
-_02255210:
- ldr r0, [sp, #4]
- add r1, r4, #0
- bl MOD11_0222FF88
- str r0, [sp, #0x24]
- mov r6, #0
- bl GetPartyCount
- cmp r0, #0
- ble _022552A6
- mov r0, #6
- add r1, r4, #0
- mul r1, r0
- ldr r0, [sp, #8]
- add r5, sp, #0x28
- add r7, r0, r1
- mov r1, #0xa9
- ldr r0, [sp, #0x20]
- lsl r1, r1, #2
- and r0, r1
- str r0, [sp, #0x1c]
-_0225523A:
- ldr r1, _022554FC ; =0x0000312C
- ldr r0, [sp, #0x24]
- ldrb r1, [r7, r1]
- bl GetPartyMonByIndex
- mov r1, #0xad
- mov r2, #0
- add r4, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _02255298
- ldr r1, _02255500 ; =0x000001EE
- cmp r0, r1
- beq _02255298
- add r0, r4, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _02255280
- add r0, r4, #0
- mov r1, #0x9f
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _0225527A
- mov r0, #3
- strb r0, [r5, #8]
- b _02255284
-_0225527A:
- mov r0, #1
- strb r0, [r5, #8]
- b _02255284
-_02255280:
- mov r0, #2
- strb r0, [r5, #8]
-_02255284:
- ldr r0, [sp, #0x1c]
- cmp r0, #0
- beq _0225528E
- mov r0, #0
- b _02255294
-_0225528E:
- add r0, r4, #0
- bl GetPercentProgressTowardsNextLevel
-_02255294:
- strb r0, [r5, #2]
- add r5, r5, #1
-_02255298:
- ldr r0, [sp, #0x24]
- add r7, r7, #1
- add r6, r6, #1
- bl GetPartyCount
- cmp r6, r0
- blt _0225523A
-_022552A6:
- ldr r0, [sp, #0x20]
- mov r1, #0xc
- and r0, r1
- cmp r0, #0xc
- beq _022552C4
- ldr r0, [sp, #0x20]
- mov r1, #0x10
- tst r0, r1
- bne _022552C4
- ldr r0, [sp, #0x20]
- cmp r0, #0x4b
- beq _022552C4
- cmp r0, #0xcb
- beq _022552C4
- b _022553FC
-_022552C4:
- ldr r0, [sp, #4]
- ldr r1, [sp, #0xc]
- bl MOD11_02230270
- cmp r0, #0
- beq _022552DA
- ldr r0, [sp, #4]
- mov r1, #2
- bl MOD11_0223022C
- b _022552E2
-_022552DA:
- ldr r0, [sp, #4]
- mov r1, #3
- bl MOD11_0223022C
-_022552E2:
- add r4, r0, #0
- ldr r0, [sp, #4]
- add r1, r4, #0
- bl MOD11_0222FF88
- str r0, [sp, #0x10]
- mov r5, #0
- bl GetPartyCount
- cmp r0, #0
- ble _0225535E
- add r1, r4, #0
- mov r0, #6
- mul r1, r0
- ldr r0, [sp, #8]
- add r4, sp, #0x28
- add r6, r0, r1
-_02255304:
- ldr r1, _022554FC ; =0x0000312C
- ldr r0, [sp, #0x10]
- ldrb r1, [r6, r1]
- bl GetPartyMonByIndex
- mov r1, #0xad
- mov r2, #0
- add r7, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _02255350
- ldr r1, _02255500 ; =0x000001EE
- cmp r0, r1
- beq _02255350
- add r0, r7, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _0225534A
- add r0, r7, #0
- mov r1, #0x9f
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _02255344
- mov r0, #3
- strb r0, [r4, #0xe]
- b _0225534E
-_02255344:
- mov r0, #1
- strb r0, [r4, #0xe]
- b _0225534E
-_0225534A:
- mov r0, #2
- strb r0, [r4, #0xe]
-_0225534E:
- add r4, r4, #1
-_02255350:
- ldr r0, [sp, #0x10]
- add r6, r6, #1
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _02255304
-_0225535E:
- ldr r0, [sp, #4]
- ldr r1, [sp, #0xc]
- bl MOD11_02230270
- cmp r0, #0
- beq _02255374
- ldr r0, [sp, #4]
- mov r1, #4
- bl MOD11_0223022C
- b _0225537C
-_02255374:
- ldr r0, [sp, #4]
- mov r1, #5
- bl MOD11_0223022C
-_0225537C:
- add r4, r0, #0
- ldr r0, [sp, #4]
- add r1, r4, #0
- bl MOD11_0222FF88
- str r0, [sp, #0x14]
- mov r5, #0
- bl GetPartyCount
- cmp r0, #0
- ble _02255482
- add r1, r4, #0
- mov r0, #6
- mul r1, r0
- ldr r0, [sp, #8]
- add r4, sp, #0x28
- add r6, r0, r1
- add r4, #3
-_022553A0:
- ldr r1, _022554FC ; =0x0000312C
- ldr r0, [sp, #0x14]
- ldrb r1, [r6, r1]
- bl GetPartyMonByIndex
- mov r1, #0xad
- mov r2, #0
- add r7, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _022553EC
- ldr r1, _02255500 ; =0x000001EE
- cmp r0, r1
- beq _022553EC
- add r0, r7, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _022553E6
- add r0, r7, #0
- mov r1, #0x9f
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _022553E0
- mov r0, #3
- strb r0, [r4, #0xe]
- b _022553EA
-_022553E0:
- mov r0, #1
- strb r0, [r4, #0xe]
- b _022553EA
-_022553E6:
- mov r0, #2
- strb r0, [r4, #0xe]
-_022553EA:
- add r4, r4, #1
-_022553EC:
- ldr r0, [sp, #0x14]
- add r6, r6, #1
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _022553A0
- b _02255482
-_022553FC:
- ldr r0, [sp, #4]
- ldr r1, [sp, #0xc]
- mov r2, #2
- bl MOD11_02230308
- add r4, r0, #0
- ldr r0, [sp, #4]
- add r1, r4, #0
- bl MOD11_0222FF88
- str r0, [sp, #0x18]
- mov r5, #0
- bl GetPartyCount
- cmp r0, #0
- ble _02255482
- add r1, r4, #0
- mov r0, #6
- mul r1, r0
- ldr r0, [sp, #8]
- add r4, sp, #0x28
- add r6, r0, r1
-_02255428:
- ldr r1, _022554FC ; =0x0000312C
- ldr r0, [sp, #0x18]
- ldrb r1, [r6, r1]
- bl GetPartyMonByIndex
- mov r1, #0xad
- mov r2, #0
- add r7, r0, #0
- bl GetMonData
- cmp r0, #0
- beq _02255474
- ldr r1, _02255500 ; =0x000001EE
- cmp r0, r1
- beq _02255474
- add r0, r7, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _0225546E
- add r0, r7, #0
- mov r1, #0x9f
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _02255468
- mov r0, #3
- strb r0, [r4, #0xe]
- b _02255472
-_02255468:
- mov r0, #1
- strb r0, [r4, #0xe]
- b _02255472
-_0225546E:
- mov r0, #2
- strb r0, [r4, #0xe]
-_02255472:
- add r4, r4, #1
-_02255474:
- ldr r0, [sp, #0x18]
- add r6, r6, #1
- add r5, r5, #1
- bl GetPartyCount
- cmp r5, r0
- blt _02255428
-_02255482:
- mov r5, #0
- add r6, sp, #0x28
- add r4, r6, #0
- add r7, r5, #0
-_0225548A:
- ldr r0, [sp, #8]
- ldr r1, [sp, #0xc]
- add r2, r5, #6
- add r3, r7, #0
- bl MOD11_02243420
- strh r0, [r6, #0x14]
- add r2, r5, #0
- ldr r0, [sp, #8]
- ldr r1, [sp, #0xc]
- add r2, #0x1f
- mov r3, #0
- bl MOD11_02243420
- strb r0, [r4, #0x1c]
- add r2, r5, #0
- ldr r0, [sp, #8]
- ldr r1, [sp, #0xc]
- add r2, #0x27
- mov r3, #0
- bl MOD11_02243420
- add r1, r4, #0
- add r1, #0x20
- add r5, r5, #1
- strb r0, [r1]
- add r6, r6, #2
- add r4, r4, #1
- cmp r5, #4
- blt _0225548A
- ldr r0, [sp, #0xc]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, [sp, #8]
- add r3, sp, #0x28
- add r0, r0, r1
- ldr r1, _02255504 ; =0x00002D8C
- ldr r2, [r0, r1]
- strh r2, [r3, #0x24]
- add r2, r1, #4
- ldr r2, [r0, r2]
- strh r2, [r3, #0x26]
- mov r2, #0x24
- ldrsh r2, [r3, r2]
- cmp r2, #0
- beq _0225550E
- add r1, #0x20
- ldr r0, [r0, r1]
- cmp r0, #0
- add r0, sp, #0x48
- beq _02255508
- mov r1, #3
- strb r1, [r0, #8]
- b _02255514
- nop
-_022554F8: .word 0x00003108
-_022554FC: .word 0x0000312C
-_02255500: .word 0x000001EE
-_02255504: .word 0x00002D8C
-_02255508:
- mov r1, #1
- strb r1, [r0, #8]
- b _02255514
-_0225550E:
- mov r1, #2
- add r0, sp, #0x48
- strb r1, [r0, #8]
-_02255514:
- mov r0, #0x2c
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [sp, #0xc]
- mov r1, #1
- add r3, sp, #0x28
- bl MOD11_02254878
- add sp, #0x54
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02255528
-MOD11_02255528: ; 0x02255528
- push {r0, r1, r2, r3}
- push {r3, lr}
- add r2, r1, #0
- mov r1, #4
- str r1, [sp]
- mov r1, #0
- add r3, sp, #0x10
- bl MOD11_02254878
- pop {r3}
- pop {r3}
- add sp, #0x10
- bx r3
- .align 2, 0
-
- thumb_func_start MOD11_02255544
-MOD11_02255544: ; 0x02255544
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- str r2, [sp, #0xc]
- str r0, [sp, #4]
- str r1, [sp, #8]
- bl MOD11_0222FF78
- ldr r1, [sp, #0xc]
- bl MOD11_02243400
- mov r0, #0xf
- add r2, sp, #0x14
- strb r0, [r2]
- add r7, sp, #0x14
- ldr r1, [sp, #8]
- ldr r0, [sp, #0xc]
- add r5, r7, #0
- add r1, r1, r0
- ldr r0, _022555D4 ; =0x0000219C
- ldrb r0, [r1, r0]
- mov r1, #0xc0
- strb r0, [r2, #1]
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, [sp, #0xc]
- mul r1, r0
- ldr r0, [sp, #8]
- add r6, r0, r1
- add r4, r6, #0
-_0225557E:
- ldr r0, _022555D8 ; =0x00002D4C
- ldr r1, _022555DC ; =0x00002D70
- ldrh r0, [r6, r0]
- strh r0, [r7, #4]
- ldr r0, _022555E0 ; =0x00002D6C
- ldrb r0, [r4, r0]
- strb r0, [r5, #0xc]
- ldr r0, _022555D8 ; =0x00002D4C
- ldrb r1, [r4, r1]
- ldrh r0, [r6, r0]
- bl WazaGetMaxPp
- strb r0, [r5, #0x10]
- ldr r0, [sp, #0x10]
- add r6, r6, #2
- add r0, r0, #1
- add r7, r7, #2
- add r4, r4, #1
- add r5, r5, #1
- str r0, [sp, #0x10]
- cmp r0, #4
- blt _0225557E
- mov r0, #0
- mvn r0, r0
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r1, [sp, #8]
- ldr r2, [sp, #0xc]
- mov r3, #0
- bl MOD11_02245D38
- add r1, sp, #0x14
- strh r0, [r1, #2]
- mov r0, #0x14
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [sp, #0xc]
- mov r1, #1
- add r3, sp, #0x14
- bl MOD11_02254878
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022555D4: .word 0x0000219C
-_022555D8: .word 0x00002D4C
-_022555DC: .word 0x00002D70
-_022555E0: .word 0x00002D6C
-
- thumb_func_start MOD11_022555E4
-MOD11_022555E4: ; 0x022555E4
- push {r0, r1, r2, r3}
- push {r3, lr}
- add r2, r1, #0
- mov r1, #4
- str r1, [sp]
- mov r1, #0
- add r3, sp, #0x10
- bl MOD11_02254878
- pop {r3}
- pop {r3}
- add sp, #0x10
- bx r3
- .align 2, 0
-
- thumb_func_start MOD11_02255600
-MOD11_02255600: ; 0x02255600
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x40
- str r0, [sp, #4]
- str r1, [sp, #8]
- add r0, r1, #0
- add r1, r3, #0
- add r4, r2, #0
- str r3, [sp, #0xc]
- bl MOD11_02243400
- ldr r0, [sp, #4]
- bl MOD11_0222FF74
- mov r2, #0x10
- add r1, sp, #0x1c
- strb r2, [r1]
- strh r4, [r1, #2]
- mov r1, #2
- add r2, r0, #0
- and r2, r1
- beq _0225563A
- mov r1, #8
- tst r0, r1
- bne _0225563A
- cmp r2, #0
- beq _02255642
- ldr r0, [sp, #0xc]
- cmp r0, #2
- blt _02255642
-_0225563A:
- mov r1, #1
- add r0, sp, #0x1c
- strb r1, [r0, #1]
- b _02255648
-_02255642:
- mov r1, #0
- add r0, sp, #0x1c
- strb r1, [r0, #1]
-_02255648:
- ldr r2, [sp, #8]
- mov r0, #0
- str r0, [sp, #0x18]
- ldr r1, _0225570C ; =0x00002D54
- add r0, r2, #0
- add r7, r0, r1
- add r1, #0x6a
- add r5, r0, r1
- mov r0, #3
- add r4, sp, #0x20
- str r0, [sp, #0x14]
- str r0, [sp, #0x10]
- mov r0, #4
- add r3, sp, #0x1c
- add r4, #1
- mov ip, r0
-_02255668:
- ldr r0, _02255710 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _022556D6
- strh r0, [r3, #8]
- ldr r0, _02255714 ; =0x00002D90
- ldr r0, [r2, r0]
- strh r0, [r3, #0xa]
- ldrb r1, [r4]
- mov r0, #4
- orr r0, r1
- strb r0, [r4]
- mov r0, #0xb5
- lsl r0, r0, #6
- ldrh r0, [r2, r0]
- cmp r0, #0x1d
- beq _0225568E
- cmp r0, #0x20
- bne _022556A2
-_0225568E:
- ldr r0, [r7]
- lsr r0, r0, #0x1f
- bne _022556A2
- ldrb r0, [r4]
- ldr r1, [sp, #0x10]
- bic r0, r1
- mov r1, #2
- orr r0, r1
- strb r0, [r4]
- b _022556B6
-_022556A2:
- ldrb r6, [r4]
- ldr r0, [sp, #0x14]
- bic r6, r0
- ldrb r0, [r5]
- lsl r0, r0, #0x1c
- lsr r1, r0, #0x1c
- mov r0, #3
- and r0, r1
- orr r0, r6
- strb r0, [r4]
-_022556B6:
- ldr r1, [sp, #8]
- ldr r0, [sp, #0x18]
- add r1, r1, r0
- ldr r0, _02255718 ; =0x0000219C
- ldrb r0, [r1, r0]
- strb r0, [r3, #4]
- ldr r0, _0225571C ; =0x00002DAC
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _022556D0
- mov r0, #3
- strb r0, [r3, #6]
- b _022556E2
-_022556D0:
- mov r0, #1
- strb r0, [r3, #6]
- b _022556E2
-_022556D6:
- ldrb r1, [r4]
- mov r0, ip
- bic r1, r0
- strb r1, [r4]
- mov r0, #2
- strb r0, [r3, #6]
-_022556E2:
- ldr r0, [sp, #0x18]
- add r2, #0xc0
- add r0, r0, #1
- add r3, #8
- add r4, #8
- add r7, #0xc0
- add r5, #0xc0
- str r0, [sp, #0x18]
- cmp r0, #4
- blt _02255668
- mov r0, #0x24
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [sp, #0xc]
- mov r1, #1
- add r3, sp, #0x1c
- bl MOD11_02254878
- add sp, #0x40
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225570C: .word 0x00002D54
-_02255710: .word 0x00002D8C
-_02255714: .word 0x00002D90
-_02255718: .word 0x0000219C
-_0225571C: .word 0x00002DAC
-
- thumb_func_start MOD11_02255720
-MOD11_02255720: ; 0x02255720
- push {r0, r1, r2, r3}
- push {r3, lr}
- add r2, r1, #0
- mov r1, #4
- str r1, [sp]
- mov r1, #0
- add r3, sp, #0x10
- bl MOD11_02254878
- pop {r3}
- pop {r3}
- add sp, #0x10
- bx r3
- .align 2, 0
-
- thumb_func_start MOD11_0225573C
-MOD11_0225573C: ; 0x0225573C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x34
- str r0, [sp, #4]
- str r1, [sp, #8]
- add r0, r1, #0
- add r1, r2, #0
- str r2, [sp, #0xc]
- bl MOD11_02243400
- add r6, sp, #0x10
- mov r1, #0x11
- add r0, sp, #0x10
- strb r1, [r0]
- mov r0, #0
- ldr r4, [sp, #8]
- mov ip, r0
- ldr r1, _022558B0 ; =0x00002DCC
- add r0, r4, #0
- add r7, r0, r1
- ldr r0, _022558B4 ; =0x0000312C
- add r5, r6, #0
-_02255766:
- ldr r2, [sp, #8]
- mov r1, ip
- add r2, r2, r1
- ldr r1, _022558B8 ; =0x0000219C
- mov r3, #0
- ldrb r1, [r2, r1]
- strb r1, [r6, #4]
-_02255774:
- add r1, r4, r3
- ldrb r2, [r1, r0]
- add r1, r5, r3
- add r3, r3, #1
- strb r2, [r1, #8]
- cmp r3, #6
- blt _02255774
- ldr r1, [r7]
- add r2, r6, #0
- lsl r1, r1, #0xa
- lsr r1, r1, #0x1d
- add r2, #0x20
- strb r1, [r2]
- mov r1, ip
- add r1, r1, #1
- add r6, r6, #1
- add r4, r4, #6
- add r5, r5, #6
- add r7, #0xc0
- mov ip, r1
- cmp r1, #4
- blt _02255766
- ldr r0, [sp, #4]
- bl MOD11_0222FF74
- cmp r0, #0x4a
- bne _02255852
- mov r0, #1
- bl MaskOfFlagNo
- ldr r2, _022558BC ; =0x00003108
- ldr r1, [sp, #8]
- ldrb r1, [r1, r2]
- tst r0, r1
- bne _022557D8
- mov r0, #3
- bl MaskOfFlagNo
- ldr r2, _022558BC ; =0x00003108
- ldr r1, [sp, #8]
- ldrb r1, [r1, r2]
- tst r0, r1
- bne _022557D8
- mov r1, #1
- add r0, sp, #0x10
- strb r1, [r0, #1]
- mov r1, #0
- strb r1, [r0, #2]
- strb r1, [r0, #3]
- b _0225589C
-_022557D8:
- mov r0, #1
- bl MaskOfFlagNo
- ldr r2, _022558BC ; =0x00003108
- ldr r1, [sp, #8]
- add r3, sp, #0x10
- ldrb r1, [r1, r2]
- tst r0, r1
- bne _0225581E
- mov r0, #0
- mov r2, #0xba
- ldr r1, [sp, #8]
- strb r0, [r3, #1]
- lsl r2, r2, #6
- ldr r4, [r1, r2]
- ldr r1, _022558C0 ; =0x200400C0
- tst r1, r4
- beq _02255804
- mov r1, #1
- strb r1, [r3, #2]
- strb r0, [r3, #3]
- b _0225589C
-_02255804:
- ldr r1, [sp, #8]
- sub r2, #0x10
- ldr r2, [r1, r2]
- mov r1, #1
- lsl r1, r1, #0x18
- tst r1, r2
- strb r0, [r3, #2]
- beq _0225581A
- mov r0, #1
- strb r0, [r3, #3]
- b _0225589C
-_0225581A:
- strb r0, [r3, #3]
- b _0225589C
-_0225581E:
- mov r0, #0
- mov r2, #3
- ldr r1, [sp, #8]
- strb r0, [r3, #1]
- lsl r2, r2, #0xc
- ldr r4, [r1, r2]
- ldr r1, _022558C0 ; =0x200400C0
- tst r1, r4
- beq _02255838
- mov r1, #1
- strb r1, [r3, #2]
- strb r0, [r3, #3]
- b _0225589C
-_02255838:
- ldr r1, [sp, #8]
- sub r2, #0x10
- ldr r2, [r1, r2]
- mov r1, #1
- lsl r1, r1, #0x18
- tst r1, r2
- strb r0, [r3, #2]
- beq _0225584E
- mov r0, #1
- strb r0, [r3, #3]
- b _0225589C
-_0225584E:
- strb r0, [r3, #3]
- b _0225589C
-_02255852:
- ldr r0, [sp, #4]
- bl MOD11_0222FF74
- cmp r0, #0
- bne _02255892
- mov r2, #0xba
- mov r0, #0
- add r3, sp, #0x10
- ldr r1, [sp, #8]
- strb r0, [r3, #1]
- lsl r2, r2, #6
- ldr r4, [r1, r2]
- ldr r1, _022558C0 ; =0x200400C0
- tst r1, r4
- beq _02255878
- mov r1, #1
- strb r1, [r3, #2]
- strb r0, [r3, #3]
- b _0225589C
-_02255878:
- ldr r1, [sp, #8]
- sub r2, #0x10
- ldr r2, [r1, r2]
- mov r1, #1
- lsl r1, r1, #0x18
- tst r1, r2
- strb r0, [r3, #2]
- beq _0225588E
- mov r0, #1
- strb r0, [r3, #3]
- b _0225589C
-_0225588E:
- strb r0, [r3, #3]
- b _0225589C
-_02255892:
- mov r1, #0
- add r0, sp, #0x10
- strb r1, [r0, #1]
- strb r1, [r0, #2]
- strb r1, [r0, #3]
-_0225589C:
- mov r0, #0x24
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [sp, #0xc]
- mov r1, #1
- add r3, sp, #0x10
- bl MOD11_02254878
- add sp, #0x34
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_022558B0: .word 0x00002DCC
-_022558B4: .word 0x0000312C
-_022558B8: .word 0x0000219C
-_022558BC: .word 0x00003108
-_022558C0: .word 0x200400C0
-
- thumb_func_start MOD11_022558C4
-MOD11_022558C4: ; 0x022558C4
- push {r0, r1, r2, r3}
- push {r3, lr}
- add r2, r1, #0
- mov r1, #4
- str r1, [sp]
- mov r1, #0
- add r3, sp, #0x10
- bl MOD11_02254878
- pop {r3}
- pop {r3}
- add sp, #0x10
- bx r3
- .align 2, 0
-
- thumb_func_start MOD11_022558E0
-MOD11_022558E0: ; 0x022558E0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- str r0, [sp, #4]
- str r1, [sp, #8]
- add r0, r1, #0
- add r1, r2, #0
- str r2, [sp, #0xc]
- add r4, r3, #0
- bl MOD11_02243400
- mov r0, #0x12
- add r1, sp, #0x10
- strb r0, [r1]
- ldr r0, [sp, #0xc]
- add r7, sp, #0x10
- strb r0, [r1, #1]
- ldr r0, [sp, #0x50]
- strb r4, [r1, #2]
- str r0, [sp, #0x30]
- ldr r0, [sp, #0x54]
- ldr r5, [sp, #8]
- strb r0, [r1, #3]
- ldr r1, _02255958 ; =0x00003108
- ldr r0, [sp, #8]
- mov r3, #0
- ldrb r1, [r0, r1]
- add r0, sp, #0x30
- add r6, r7, #0
- strb r1, [r0, #4]
- ldr r0, _0225595C ; =0x0000312C
-_0225591C:
- ldr r1, [sp, #8]
- mov r4, #0
- add r2, r1, r3
- ldr r1, _02255960 ; =0x0000219C
- ldrb r1, [r2, r1]
- strb r1, [r7, #4]
-_02255928:
- add r1, r5, r4
- ldrb r2, [r1, r0]
- add r1, r6, r4
- add r4, r4, #1
- strb r2, [r1, #8]
- cmp r4, #6
- blt _02255928
- add r3, r3, #1
- add r7, r7, #1
- add r5, r5, #6
- add r6, r6, #6
- cmp r3, #4
- blt _0225591C
- mov r0, #0x28
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [sp, #0xc]
- mov r1, #1
- add r3, sp, #0x10
- bl MOD11_02254878
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02255958: .word 0x00003108
-_0225595C: .word 0x0000312C
-_02255960: .word 0x0000219C
-
- thumb_func_start MOD11_02255964
-MOD11_02255964: ; 0x02255964
- push {r0, r1, r2, r3}
- push {r3, lr}
- add r2, r1, #0
- mov r1, #4
- str r1, [sp]
- mov r1, #0
- add r3, sp, #0x10
- bl MOD11_02254878
- pop {r3}
- pop {r3}
- add sp, #0x10
- bx r3
- .align 2, 0
-
- thumb_func_start MOD11_02255980
-MOD11_02255980: ; 0x02255980
- push {r4, r5, r6, lr}
- sub sp, #0x10
- add r5, r2, #0
- add r6, r0, #0
- add r0, r1, #0
- add r1, r5, #0
- add r4, r3, #0
- bl MOD11_02243400
- mov r1, #0x13
- add r0, sp, #4
- strb r1, [r0]
- ldr r1, [sp, #0x20]
- strh r4, [r0, #2]
- strb r1, [r0, #1]
- ldr r0, [sp, #0x24]
- mov r1, #1
- str r0, [sp, #8]
- ldr r0, [sp, #0x28]
- add r2, r5, #0
- str r0, [sp, #0xc]
- mov r0, #0xc
- str r0, [sp]
- add r0, r6, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #0x10
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022559BC
-MOD11_022559BC: ; 0x022559BC
- push {r4, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0x14
- add r3, sp, #4
- strb r1, [r3]
- ldr r1, [r2, #0x64]
- add r4, r2, r1
- ldr r1, _022559EC ; =0x0000219C
- ldrb r1, [r4, r1]
- strb r1, [r3, #1]
- ldr r1, _022559F0 ; =0x00003044
- ldr r1, [r2, r1]
- strh r1, [r3, #2]
- mov r1, #4
- str r1, [sp]
- ldr r2, [r2, #0x64]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r4, pc}
- nop
-_022559EC: .word 0x0000219C
-_022559F0: .word 0x00003044
-
- thumb_func_start MOD11_022559F4
-MOD11_022559F4: ; 0x022559F4
- push {r3, r4, lr}
- sub sp, #4
- add r4, r1, #0
- add r3, r2, #0
- mov r1, #0x15
- strb r1, [r3]
- mov r1, #0x24
- str r1, [sp]
- ldr r2, [r4, #0x64]
- mov r1, #1
- bl MOD11_02254878
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD11_02255A10
-MOD11_02255A10: ; 0x02255A10
- push {r4, r5, r6, lr}
- sub sp, #0x68
- mov r3, #0
- add r4, r1, #0
- str r3, [sp]
- ldr r6, [r4, #0x64]
- add r5, r0, #0
- str r6, [sp, #4]
- ldr r6, [r4, #0x6c]
- str r6, [sp, #8]
- str r2, [sp, #0xc]
- add r2, sp, #0x10
- bl MOD11_02256854
- mov r0, #0x58
- str r0, [sp]
- ldr r2, [r4, #0x64]
- add r0, r5, #0
- mov r1, #1
- add r3, sp, #0x10
- bl MOD11_02254878
- add sp, #0x68
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02255A40
-MOD11_02255A40: ; 0x02255A40
- push {r4, r5, r6, lr}
- sub sp, #0x68
- add r4, r3, #0
- mov r3, #0
- str r3, [sp]
- ldr r6, [sp, #0x78]
- str r4, [sp, #4]
- str r6, [sp, #8]
- str r2, [sp, #0xc]
- add r2, sp, #0x10
- add r5, r0, #0
- bl MOD11_02256854
- mov r0, #0x58
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #0x10
- bl MOD11_02254878
- add sp, #0x68
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02255A70
-MOD11_02255A70: ; 0x02255A70
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0x17
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02255A8C
-MOD11_02255A8C: ; 0x02255A8C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- add r5, r1, #0
- str r2, [sp, #8]
- add r1, r2, #0
- add r3, r5, r2
- ldr r2, _02255B50 ; =0x0000219C
- str r0, [sp, #4]
- ldrb r2, [r3, r2]
- bl MOD11_02230014
- add r4, r0, #0
- mov r1, #5
- mov r2, #0
- bl GetMonData
- add r7, r0, #0
- add r0, r4, #0
- mov r1, #0xa0
- mov r2, #0
- bl GetMonData
- add r6, r0, #0
- mov r0, #0x18
- add r2, sp, #0xc
- strb r0, [r2]
- ldr r0, [sp, #8]
- mov r1, #0xc0
- add r4, r0, #0
- mul r4, r1
- ldr r1, _02255B54 ; =0x00002D74
- add r0, r5, r4
- ldrb r3, [r0, r1]
- strb r3, [r2, #1]
- add r3, r1, #0
- add r3, #0x18
- ldr r3, [r0, r3]
- strh r3, [r2, #2]
- add r3, r1, #0
- add r3, #0x1c
- ldr r3, [r0, r3]
- sub r1, #0x34
- strh r3, [r2, #4]
- ldr r2, _02255B58 ; =0x0000215C
- ldr r2, [r5, r2]
- str r2, [sp, #0x14]
- ldrh r0, [r0, r1]
- cmp r0, #0x1d
- beq _02255AF2
- cmp r0, #0x20
- bne _02255B04
-_02255AF2:
- ldr r0, _02255B5C ; =0x00002D54
- add r1, r5, r4
- ldr r0, [r1, r0]
- lsr r0, r0, #0x1f
- bne _02255B04
- mov r1, #2
- add r0, sp, #0xc
- strb r1, [r0, #7]
- b _02255B12
-_02255B04:
- ldr r0, _02255B60 ; =0x00002DBE
- add r1, r5, r4
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x1c
- lsr r1, r0, #0x1c
- add r0, sp, #0xc
- strb r1, [r0, #7]
-_02255B12:
- add r0, r7, #0
- add r1, r6, #0
- bl GetMonExpBySpeciesAndLevel
- ldr r1, _02255B64 ; =0x00002DA4
- add r2, r5, r4
- ldr r1, [r2, r1]
- sub r0, r1, r0
- str r0, [sp, #0x18]
- add r0, r7, #0
- add r1, r6, #1
- bl GetMonExpBySpeciesAndLevel
- add r4, r0, #0
- add r0, r7, #0
- add r1, r6, #0
- bl GetMonExpBySpeciesAndLevel
- sub r0, r4, r0
- str r0, [sp, #0x1c]
- mov r0, #0x14
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [sp, #8]
- mov r1, #1
- add r3, sp, #0xc
- bl MOD11_02254878
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02255B50: .word 0x0000219C
-_02255B54: .word 0x00002D74
-_02255B58: .word 0x0000215C
-_02255B5C: .word 0x00002D54
-_02255B60: .word 0x00002DBE
-_02255B64: .word 0x00002DA4
-
- thumb_func_start MOD11_02255B68
-MOD11_02255B68: ; 0x02255B68
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r4, r2, #0
- add r5, r1, #0
- str r3, [sp, #8]
- ldr r2, _02255BE4 ; =0x0000219C
- add r3, r5, r4
- ldrb r2, [r3, r2]
- add r1, r4, #0
- str r0, [sp, #4]
- bl MOD11_02230014
- add r6, r0, #0
- mov r1, #5
- mov r2, #0
- bl GetMonData
- add r7, r0, #0
- add r0, r6, #0
- mov r1, #0xa0
- mov r2, #0
- bl GetMonData
- add r6, r0, #0
- mov r1, #0x19
- add r0, sp, #0xc
- strb r1, [r0]
- ldr r0, [sp, #8]
- add r1, r6, #0
- str r0, [sp, #0x10]
- add r0, r7, #0
- bl GetMonExpBySpeciesAndLevel
- mov r1, #0xc0
- mul r1, r4
- add r2, r5, r1
- ldr r1, _02255BE8 ; =0x00002DA4
- ldr r1, [r2, r1]
- sub r0, r1, r0
- str r0, [sp, #0x14]
- add r0, r7, #0
- add r1, r6, #1
- bl GetMonExpBySpeciesAndLevel
- add r5, r0, #0
- add r0, r7, #0
- add r1, r6, #0
- bl GetMonExpBySpeciesAndLevel
- sub r0, r5, r0
- str r0, [sp, #0x18]
- mov r0, #0x10
- str r0, [sp]
- ldr r0, [sp, #4]
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #0xc
- bl MOD11_02254878
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- nop
-_02255BE4: .word 0x0000219C
-_02255BE8: .word 0x00002DA4
-
- thumb_func_start MOD11_02255BEC
-MOD11_02255BEC: ; 0x02255BEC
- push {r4, r5, r6, r7, lr}
- sub sp, #0x3c
- str r0, [sp, #4]
- add r0, r1, #0
- mov ip, r2
- mov r5, #0xb5
- mov r2, #0x1a
- add r1, sp, #0xc
- strb r2, [r1]
- mov r3, #0xc0
- mov r2, ip
- mul r3, r2
- add r2, r0, r3
- lsl r5, r5, #6
- ldrh r4, [r2, r5]
- strh r4, [r1, #2]
- add r4, r5, #0
- add r4, #0x26
- ldrb r2, [r2, r4]
- add r5, #0x70
- lsl r2, r2, #0x1b
- lsr r2, r2, #0x1b
- strb r2, [r1, #8]
- add r2, r0, r5
- mov r1, #1
- ldr r4, [r2, r3]
- lsl r1, r1, #0x18
- tst r1, r4
- beq _02255C2A
- mov r4, #1
- b _02255C2C
-_02255C2A:
- mov r4, #0
-_02255C2C:
- add r1, sp, #0xc
- strb r4, [r1, #9]
- mov r1, #2
- ldr r4, [r2, r3]
- lsl r1, r1, #0x14
- tst r1, r4
- beq _02255C3E
- mov r4, #1
- b _02255C40
-_02255C3E:
- mov r4, #0
-_02255C40:
- add r1, sp, #0xc
- strb r4, [r1, #0xa]
- ldr r4, [r2, r3]
- mov r2, #2
- lsl r2, r2, #0x14
- tst r2, r4
- beq _02255C5E
- ldr r2, _02255CE8 ; =0x00002DFA
- add r4, r0, r3
- ldrh r3, [r4, r2]
- sub r2, #0x16
- strb r3, [r1, #1]
- ldr r1, [r4, r2]
- str r1, [sp, #0x10]
- b _02255C70
-_02255C5E:
- ldr r2, _02255CEC ; =0x00002DBE
- add r4, r0, r3
- ldrb r3, [r4, r2]
- sub r2, #0x16
- lsl r3, r3, #0x1c
- lsr r3, r3, #0x1c
- strb r3, [r1, #1]
- ldr r1, [r4, r2]
- str r1, [sp, #0x10]
-_02255C70:
- mov r1, #0
- str r1, [sp, #8]
- ldr r1, _02255CF0 ; =0x00002D66
- add r7, sp, #0xc
- add r3, r0, r1
- add r1, #0x58
- add r4, r7, #0
- add r5, r7, #0
- add r6, r0, r1
-_02255C82:
- mov r1, #0xb5
- lsl r1, r1, #6
- ldrh r1, [r0, r1]
- strh r1, [r7, #0xc]
- ldrb r1, [r3]
- lsl r1, r1, #0x1a
- lsr r1, r1, #0x1f
- strb r1, [r4, #0x18]
- ldrb r1, [r3]
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x1b
- strb r1, [r4, #0x1c]
- ldr r1, _02255CF4 ; =0x00002DB0
- ldr r2, [r0, r1]
- mov r1, #2
- lsl r1, r1, #0x14
- tst r1, r2
- beq _02255CB0
- ldr r1, _02255CE8 ; =0x00002DFA
- ldrh r1, [r0, r1]
- strb r1, [r4, #0x14]
- ldr r1, _02255CF8 ; =0x00002DE4
- b _02255CBA
-_02255CB0:
- ldrb r1, [r6]
- lsl r1, r1, #0x1c
- lsr r1, r1, #0x1c
- strb r1, [r4, #0x14]
- ldr r1, _02255CFC ; =0x00002DA8
-_02255CBA:
- ldr r1, [r0, r1]
- add r0, #0xc0
- str r1, [r5, #0x20]
- ldr r1, [sp, #8]
- add r7, r7, #2
- add r1, r1, #1
- add r3, #0xc0
- add r4, r4, #1
- add r5, r5, #4
- add r6, #0xc0
- str r1, [sp, #8]
- cmp r1, #4
- blt _02255C82
- mov r0, #0x30
- str r0, [sp]
- ldr r0, [sp, #4]
- mov r1, #1
- mov r2, ip
- add r3, sp, #0xc
- bl MOD11_02254878
- add sp, #0x3c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02255CE8: .word 0x00002DFA
-_02255CEC: .word 0x00002DBE
-_02255CF0: .word 0x00002D66
-_02255CF4: .word 0x00002DB0
-_02255CF8: .word 0x00002DE4
-_02255CFC: .word 0x00002DA8
-
- thumb_func_start MOD11_02255D00
-MOD11_02255D00: ; 0x02255D00
- push {r4, lr}
- sub sp, #8
- mov r4, #0x1b
- add r1, sp, #4
- strb r4, [r1]
- strh r2, [r1, #2]
- mov r1, #4
- str r1, [sp]
- add r2, r3, #0
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02255D20
-MOD11_02255D20: ; 0x02255D20
- push {r3, lr}
- sub sp, #8
- mov r1, #0x1c
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02255D3C
-MOD11_02255D3C: ; 0x02255D3C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x30
- mov ip, r1
- mov r3, #0x1d
- add r1, sp, #8
- strb r3, [r1]
- strb r2, [r1, #1]
- ldr r3, [r0, #0x30]
- mov r2, #0xc0
- mov r1, ip
- mul r2, r1
- ldr r1, _02255DF4 ; =0x00002DB0
- add r2, r3, r2
- ldr r2, [r2, r1]
- mov r1, #1
- lsl r1, r1, #0x18
- tst r1, r2
- beq _02255D64
- mov r2, #1
- b _02255D66
-_02255D64:
- mov r2, #0
-_02255D66:
- add r7, sp, #8
- add r1, sp, #8
- mov r3, #0
- strb r2, [r1, #2]
- str r3, [sp, #4]
- add r4, r7, #0
- add r5, r7, #0
-_02255D74:
- ldr r1, [r0, #0x30]
- add r2, r1, r3
- mov r1, #0xb5
- lsl r1, r1, #6
- ldrh r1, [r2, r1]
- strh r1, [r7, #4]
- ldr r1, [r0, #0x30]
- add r2, r1, r3
- ldr r1, _02255DF8 ; =0x00002D66
- ldrb r1, [r2, r1]
- lsl r1, r1, #0x1a
- lsr r1, r1, #0x1f
- strb r1, [r4, #0x10]
- ldr r1, [r0, #0x30]
- add r2, r1, r3
- ldr r1, _02255DF8 ; =0x00002D66
- ldrb r1, [r2, r1]
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x1b
- strb r1, [r4, #0x14]
- ldr r1, [r0, #0x30]
- add r6, r1, r3
- ldr r1, _02255DF4 ; =0x00002DB0
- ldr r2, [r6, r1]
- mov r1, #2
- lsl r1, r1, #0x14
- tst r1, r2
- beq _02255DBA
- ldr r1, _02255DFC ; =0x00002DFA
- ldrh r1, [r6, r1]
- strb r1, [r4, #0xc]
- ldr r1, [r0, #0x30]
- add r2, r1, r3
- ldr r1, _02255E00 ; =0x00002DE4
- b _02255DCA
-_02255DBA:
- ldr r1, _02255E04 ; =0x00002DBE
- ldrb r1, [r6, r1]
- lsl r1, r1, #0x1c
- lsr r1, r1, #0x1c
- strb r1, [r4, #0xc]
- ldr r1, [r0, #0x30]
- add r2, r1, r3
- ldr r1, _02255E08 ; =0x00002DA8
-_02255DCA:
- ldr r1, [r2, r1]
- add r3, #0xc0
- str r1, [r5, #0x18]
- ldr r1, [sp, #4]
- add r7, r7, #2
- add r1, r1, #1
- add r4, r4, #1
- add r5, r5, #4
- str r1, [sp, #4]
- cmp r1, #4
- blt _02255D74
- mov r1, #0x28
- str r1, [sp]
- mov r1, #1
- mov r2, ip
- add r3, sp, #8
- bl MOD11_02254878
- add sp, #0x30
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02255DF4: .word 0x00002DB0
-_02255DF8: .word 0x00002D66
-_02255DFC: .word 0x00002DFA
-_02255E00: .word 0x00002DE4
-_02255E04: .word 0x00002DBE
-_02255E08: .word 0x00002DA8
-
- thumb_func_start MOD11_02255E0C
-MOD11_02255E0C: ; 0x02255E0C
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- mov r3, #0x1e
- add r1, sp, #4
- strb r3, [r1]
- strb r2, [r1, #1]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD11_02255E2C
-MOD11_02255E2C: ; 0x02255E2C
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- mov r3, #0x1f
- add r1, sp, #4
- strb r3, [r1]
- strb r2, [r1, #1]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD11_02255E4C
-MOD11_02255E4C: ; 0x02255E4C
- push {r3, r4, r5, lr}
- sub sp, #0x68
- add r4, r2, #0
- str r3, [sp]
- str r4, [sp, #4]
- str r4, [sp, #8]
- mov r2, #0
- str r2, [sp, #0xc]
- add r2, sp, #0x10
- mov r3, #1
- add r5, r0, #0
- bl MOD11_02256854
- mov r0, #0x58
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #0x10
- bl MOD11_02254878
- add sp, #0x68
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02255E7C
-MOD11_02255E7C: ; 0x02255E7C
- push {r3, r4, r5, lr}
- sub sp, #0x68
- add r4, r2, #0
- ldr r2, [sp, #0x78]
- add r5, r0, #0
- str r2, [sp]
- str r4, [sp, #4]
- str r3, [sp, #8]
- mov r2, #0
- str r2, [sp, #0xc]
- add r2, sp, #0x10
- mov r3, #1
- bl MOD11_02256854
- mov r0, #0x58
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #0x10
- bl MOD11_02254878
- add sp, #0x68
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02255EAC
-MOD11_02255EAC: ; 0x02255EAC
- push {r3, r4, r5, lr}
- sub sp, #8
- add r5, r0, #0
- add r4, r2, #0
- mov r2, #0x20
- add r0, sp, #4
- strb r2, [r0]
- strb r3, [r0, #1]
- ldr r0, _02255EE8 ; =0x00003122
- ldrsh r2, [r1, r0]
- ldr r0, _02255EEC ; =0x00002E4C
- ldr r0, [r1, r0]
- sub r1, r2, r0
- mov r0, #0x64
- mul r0, r1
- add r1, r2, #0
- bl _s32_div_f
- add r1, sp, #4
- strh r0, [r1, #2]
- mov r0, #4
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02255EE8: .word 0x00003122
-_02255EEC: .word 0x00002E4C
-
- thumb_func_start MOD11_02255EF0
-MOD11_02255EF0: ; 0x02255EF0
- push {r4, r5, r6, lr}
- sub sp, #8
- add r5, r0, #0
- add r6, r1, #0
- add r4, r2, #0
- mov r1, #0x21
- add r0, sp, #4
- strb r1, [r0]
- ldr r2, _02255F38 ; =0x00002E4C
- strb r3, [r0, #1]
- ldr r1, [r6, r2]
- cmp r1, #0
- bne _02255F12
- mov r1, #0xfa
- lsl r1, r1, #2
- strh r1, [r0, #2]
- b _02255F24
-_02255F12:
- mov r0, #0xfa
- lsl r0, r0, #2
- mul r0, r1
- add r1, r2, #4
- ldr r1, [r6, r1]
- bl _u32_div_f
- add r1, sp, #4
- strh r0, [r1, #2]
-_02255F24:
- mov r0, #4
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02255F38: .word 0x00002E4C
-
- thumb_func_start MOD11_02255F3C
-MOD11_02255F3C: ; 0x02255F3C
- push {r3, lr}
- sub sp, #8
- mov r1, #0x22
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
-
- thumb_func_start MOD11_02255F54
-MOD11_02255F54: ; 0x02255F54
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r7, r1, #0
- str r2, [sp, #4]
- mov r2, #0x23
- add r1, sp, #8
- add r6, r0, #0
- strb r2, [r1]
- mov r4, #0
- bl MOD11_0222FF84
- cmp r0, #0
- ble _02255F86
- add r5, sp, #8
-_02255F70:
- ldr r0, _02255F9C ; =0x0000219C
- add r1, r7, r4
- ldrb r0, [r1, r0]
- add r4, r4, #1
- strb r0, [r5, #4]
- add r0, r6, #0
- add r5, r5, #1
- bl MOD11_0222FF84
- cmp r4, r0
- blt _02255F70
-_02255F86:
- mov r0, #8
- str r0, [sp]
- ldr r2, [sp, #4]
- add r0, r6, #0
- mov r1, #1
- add r3, sp, #8
- bl MOD11_02254878
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02255F9C: .word 0x0000219C
-
- thumb_func_start MOD11_02255FA0
-MOD11_02255FA0: ; 0x02255FA0
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0x24
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02255FBC
-MOD11_02255FBC: ; 0x02255FBC
- push {r0, r1, r2, r3}
- push {r3, r4, r5, r6, lr}
- sub sp, #0x2c
- add r4, r1, #0
- add r5, r0, #0
- bl MOD11_0222FF78
- add r1, r4, #0
- bl MOD11_02243400
- mov r1, #0x25
- add r0, sp, #4
- strb r1, [r0]
- add r6, sp, #0x48
- add r3, sp, #8
- mov r2, #4
-_02255FDC:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _02255FDC
- ldr r0, [r6]
- mov r1, #1
- str r0, [r3]
- mov r0, #0x28
- str r0, [sp]
- add r0, r5, #0
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #0x2c
- pop {r3, r4, r5, r6}
- pop {r3}
- add sp, #0x10
- bx r3
- .align 2, 0
-
- thumb_func_start MOD11_02256004
-MOD11_02256004: ; 0x02256004
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #1
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02256020
-MOD11_02256020: ; 0x02256020
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r1, #0
- ldr r1, _0225613C ; =0x0000219C
- add r4, r2, #0
- add r7, r5, r1
- ldrb r2, [r7, r4]
- add r1, r4, #0
- str r0, [sp, #4]
- bl MOD11_02230014
- add r6, r0, #0
- mov r1, #5
- mov r2, #0
- bl GetMonData
- str r0, [sp, #0xc]
- add r0, r6, #0
- mov r1, #0xa0
- mov r2, #0
- bl GetMonData
- str r0, [sp, #8]
- mov r0, #0x26
- add r2, sp, #0x10
- strb r0, [r2]
- mov r0, #0xc0
- add r6, r4, #0
- mul r6, r0
- ldr r1, _02256140 ; =0x00002D74
- add r0, r5, r6
- ldrb r3, [r0, r1]
- strb r3, [r2, #1]
- add r3, r1, #0
- add r3, #0x18
- ldr r3, [r0, r3]
- add r1, #0x1c
- strh r3, [r2, #2]
- ldr r0, [r0, r1]
- add r1, r4, #0
- strh r0, [r2, #4]
- ldrb r0, [r7, r4]
- strb r0, [r2, #6]
- add r0, r5, #0
- bl MOD11_0224524C
- add r1, sp, #0x10
- ldrb r2, [r1, #7]
- mov r3, #0x1f
- lsl r0, r0, #0x18
- bic r2, r3
- lsr r3, r0, #0x18
- mov r0, #0x1f
- and r0, r3
- orr r0, r2
- strb r0, [r1, #7]
- mov r0, #0xb5
- lsl r0, r0, #6
- add r7, r5, r0
- ldrh r0, [r7, r6]
- cmp r0, #0x1d
- beq _022560A0
- cmp r0, #0x20
- bne _022560BA
-_022560A0:
- ldr r0, _02256144 ; =0x00002D54
- add r1, r5, r6
- ldr r0, [r1, r0]
- lsr r0, r0, #0x1f
- bne _022560BA
- add r0, sp, #0x10
- ldrb r1, [r0, #7]
- mov r2, #0x60
- bic r1, r2
- mov r2, #0x40
- orr r1, r2
- strb r1, [r0, #7]
- b _022560D4
-_022560BA:
- add r3, sp, #0x10
- ldrb r2, [r3, #7]
- mov r0, #0x60
- add r1, r5, r6
- bic r2, r0
- ldr r0, _02256148 ; =0x00002DBE
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x19
- orr r0, r2
- strb r0, [r3, #7]
-_022560D4:
- ldr r0, [sp, #0xc]
- ldr r1, [sp, #8]
- bl GetMonExpBySpeciesAndLevel
- mov r1, #0xc0
- mul r1, r4
- add r2, r5, r1
- ldr r1, _0225614C ; =0x00002DA4
- ldr r1, [r2, r1]
- sub r0, r1, r0
- ldr r1, [sp, #8]
- str r0, [sp, #0x18]
- ldr r0, [sp, #0xc]
- add r1, r1, #1
- bl GetMonExpBySpeciesAndLevel
- add r5, r0, #0
- ldr r0, [sp, #0xc]
- ldr r1, [sp, #8]
- bl GetMonExpBySpeciesAndLevel
- sub r0, r5, r0
- str r0, [sp, #0x1c]
- ldrh r1, [r7, r6]
- ldr r0, [sp, #4]
- bl MOD11_02231668
- add r3, sp, #0x10
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- lsl r0, r0, #0x1f
- ldrb r1, [r3, #7]
- mov r2, #0x80
- lsr r0, r0, #0x18
- bic r1, r2
- orr r0, r1
- strb r0, [r3, #7]
- ldr r0, [sp, #4]
- bl MOD11_02230E00
- str r0, [sp, #0x20]
- mov r0, #0x14
- str r0, [sp]
- ldr r0, [sp, #4]
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #0x10
- bl MOD11_02254878
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- nop
-_0225613C: .word 0x0000219C
-_02256140: .word 0x00002D74
-_02256144: .word 0x00002D54
-_02256148: .word 0x00002DBE
-_0225614C: .word 0x00002DA4
-
- thumb_func_start MOD11_02256150
-MOD11_02256150: ; 0x02256150
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x30
- add r6, r1, #0
- str r2, [sp, #8]
- mov r1, #0x27
- add r2, sp, #0x10
- strb r1, [r2]
- ldrb r1, [r2, #1]
- mov r3, #0xf
- str r0, [sp, #4]
- bic r1, r3
- ldr r3, [sp, #8]
- add r4, r6, r3
- ldr r3, _02256230 ; =0x0000219C
- ldrb r4, [r4, r3]
- mov r3, #0xf
- and r3, r4
- orr r1, r3
- strb r1, [r2, #1]
- ldr r1, [sp, #8]
- mov r3, #0xc0
- mul r3, r1
- ldrb r4, [r2, #1]
- mov r1, #0xf0
- str r3, [sp, #0xc]
- bic r4, r1
- add r1, r3, #0
- add r3, r6, r1
- ldr r1, _02256234 ; =0x00002DCC
- ldr r5, [r3, r1]
- lsl r5, r5, #0x1a
- lsr r5, r5, #0x1c
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- lsl r5, r5, #0x1c
- lsr r5, r5, #0x18
- orr r4, r5
- strb r4, [r2, #1]
- add r4, r1, #0
- sub r4, #0x40
- ldr r4, [r3, r4]
- sub r1, #0x14
- strh r4, [r2, #2]
- ldrh r1, [r3, r1]
- strh r1, [r2, #0xc]
- ldr r1, [sp, #8]
- bl MOD11_02230270
- lsl r0, r0, #3
- add r1, r6, r0
- mov r0, #0x71
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- ldr r1, [sp, #8]
- mov r2, #0xc0
- mul r2, r1
- lsl r0, r0, #3
- lsr r0, r0, #0x1a
- add r1, r6, r2
- mov ip, r2
- add r2, sp, #0x10
- str r0, [sp, #0x18]
- ldr r7, _02256238 ; =0x00002D6C
- mov r0, #0
- add r3, r1, #0
- add r4, r2, #0
-_022561D4:
- ldr r5, _0225623C ; =0x00002D4C
- add r0, r0, #1
- ldrh r5, [r1, r5]
- add r1, r1, #2
- strh r5, [r2, #0xe]
- ldrb r5, [r3, r7]
- add r2, r2, #2
- add r3, r3, #1
- strb r5, [r4, #0x16]
- add r4, r4, #1
- cmp r0, #4
- blt _022561D4
- add r1, sp, #0x10
- mov r0, #2
- ldrsh r0, [r1, r0]
- cmp r0, #0
- beq _0225620C
- mov r0, ip
- add r3, r6, r0
- ldr r0, _02256240 ; =0x00002DAC
- ldr r1, _02256244 ; =0xFFFFF0FF
- ldr r2, [r3, r0]
- add r0, r0, #4
- and r1, r2
- str r1, [sp, #0x14]
- ldr r0, [r3, r0]
- str r0, [sp, #0x2c]
- b _0225621A
-_0225620C:
- mov r0, #0
- str r0, [sp, #0x14]
- ldr r0, [sp, #0xc]
- add r1, r6, r0
- ldr r0, _02256248 ; =0x00002DB0
- ldr r0, [r1, r0]
- str r0, [sp, #0x2c]
-_0225621A:
- mov r0, #0x20
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [sp, #8]
- mov r1, #1
- add r3, sp, #0x10
- bl MOD11_02254878
- add sp, #0x30
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02256230: .word 0x0000219C
-_02256234: .word 0x00002DCC
-_02256238: .word 0x00002D6C
-_0225623C: .word 0x00002D4C
-_02256240: .word 0x00002DAC
-_02256244: .word 0xFFFFF0FF
-_02256248: .word 0x00002DB0
-
- thumb_func_start MOD11_0225624C
-MOD11_0225624C: ; 0x0225624C
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0x28
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02256268
-MOD11_02256268: ; 0x02256268
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0x29
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02256284
-MOD11_02256284: ; 0x02256284
- push {r3, r4, r5, lr}
- sub sp, #8
- mov r5, #0x2a
- add r4, sp, #4
- strb r5, [r4]
- strh r3, [r4, #2]
- mov r3, #0xc0
- mul r3, r2
- add r3, r1, r3
- ldr r1, _022562AC ; =0x00002D67
- ldrb r1, [r3, r1]
- add r3, sp, #4
- strb r1, [r4, #1]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- bl MOD11_02254878
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022562AC: .word 0x00002D67
-
- thumb_func_start MOD11_022562B0
-MOD11_022562B0: ; 0x022562B0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- add r7, r0, #0
- add r4, r2, #0
- add r6, r3, #0
- bl MOD11_0222FF78
- add r1, r5, #0
- bl MOD11_02243400
- mov r1, #0x2b
- add r0, sp, #4
- strb r1, [r0]
- strh r4, [r0, #2]
- strb r6, [r0, #1]
- mov r0, #4
- str r0, [sp]
- add r0, r7, #0
- mov r1, #1
- add r2, r5, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_022562E4
-MOD11_022562E4: ; 0x022562E4
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- mov r5, #0x2c
- add r1, sp, #4
- strb r5, [r1]
- strb r2, [r1, #1]
- strb r3, [r1, #2]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02256308
-MOD11_02256308: ; 0x02256308
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r7, r1, #0
- mov r1, #0x2d
- add r3, sp, #4
- strb r1, [r3]
- mov r1, #0xc0
- add r6, r7, #0
- mul r6, r1
- ldr r1, [r0, #0x30]
- add r2, r1, r6
- mov r1, #0xb5
- lsl r1, r1, #6
- ldrh r2, [r2, r1]
- strh r2, [r3, #2]
- ldr r2, [r0, #0x30]
- add r4, r2, r6
- add r2, r1, #0
- add r2, #0x26
- ldrb r2, [r4, r2]
- lsl r2, r2, #0x1a
- lsr r2, r2, #0x1f
- strb r2, [r3, #5]
- ldr r2, [r0, #0x30]
- add r5, r2, r6
- add r2, r1, #0
- add r2, #0x70
- ldr r4, [r5, r2]
- mov r2, #2
- lsl r2, r2, #0x14
- tst r2, r4
- beq _0225635C
- add r2, r1, #0
- add r2, #0xba
- ldrh r2, [r5, r2]
- add r1, #0xa4
- strb r2, [r3, #4]
- ldr r2, [r0, #0x30]
- add r2, r2, r6
- ldr r1, [r2, r1]
- str r1, [sp, #0xc]
- b _02256372
-_0225635C:
- add r2, r1, #0
- add r2, #0x7e
- ldrb r2, [r5, r2]
- add r1, #0x68
- lsl r2, r2, #0x1c
- lsr r2, r2, #0x1c
- strb r2, [r3, #4]
- ldr r2, [r0, #0x30]
- add r2, r2, r6
- ldr r1, [r2, r1]
- str r1, [sp, #0xc]
-_02256372:
- ldr r1, [r0, #0x30]
- add r3, sp, #4
- add r2, r1, r6
- ldr r1, _02256394 ; =0x00002D66
- ldrb r1, [r2, r1]
- lsl r1, r1, #0x1b
- lsr r2, r1, #0x1b
- add r1, sp, #4
- strb r2, [r1, #1]
- mov r1, #0xc
- str r1, [sp]
- mov r1, #1
- add r2, r7, #0
- bl MOD11_02254878
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02256394: .word 0x00002D66
-
- thumb_func_start MOD11_02256398
-MOD11_02256398: ; 0x02256398
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0x2e
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022563B4
-MOD11_022563B4: ; 0x022563B4
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0x2f
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022563D0
-MOD11_022563D0: ; 0x022563D0
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- str r4, [sp]
- ldr r1, [r5, #0x30]
- add r2, sp, #4
- mov r3, #0x30
- bl MOD11_022569DC
- mov r0, #8
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #0xc
- pop {r4, r5, pc}
-
- thumb_func_start MOD11_022563F8
-MOD11_022563F8: ; 0x022563F8
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- str r4, [sp]
- ldr r1, [r5, #0x30]
- add r2, sp, #4
- mov r3, #0x31
- bl MOD11_022569DC
- mov r0, #8
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #0xc
- pop {r4, r5, pc}
-
- thumb_func_start MOD11_02256420
-MOD11_02256420: ; 0x02256420
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- str r4, [sp]
- ldr r1, [r5, #0x30]
- add r2, sp, #4
- mov r3, #0x32
- bl MOD11_022569DC
- mov r0, #8
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #0xc
- pop {r4, r5, pc}
-
- thumb_func_start MOD11_02256448
-MOD11_02256448: ; 0x02256448
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- str r4, [sp]
- ldr r1, [r5, #0x30]
- add r2, sp, #4
- mov r3, #0x33
- bl MOD11_022569DC
- mov r0, #8
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #0xc
- pop {r4, r5, pc}
-
- thumb_func_start MOD11_02256470
-MOD11_02256470: ; 0x02256470
- push {r3, lr}
- sub sp, #8
- mov r1, #0x34
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225648C
-MOD11_0225648C: ; 0x0225648C
- push {r3, lr}
- sub sp, #8
- mov r1, #0x35
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022564A8
-MOD11_022564A8: ; 0x022564A8
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- mov r5, #0x36
- add r1, sp, #4
- strb r5, [r1]
- strb r2, [r1, #1]
- strh r3, [r1, #2]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022564CC
-MOD11_022564CC: ; 0x022564CC
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- mov r1, #0x37
- add r5, r0, #0
- str r1, [sp, #4]
- bl MOD11_0222FF74
- mov r1, #4
- tst r0, r1
- beq _022564F0
- str r1, [sp]
- add r0, r5, #0
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
-_022564F0:
- add sp, #8
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022564F4
-MOD11_022564F4: ; 0x022564F4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x64
- str r0, [sp, #4]
- add r0, r1, #0
- str r2, [sp, #8]
- mov r2, #0x38
- add r7, sp, #0xc
- add r1, sp, #0xc
- strb r2, [r1]
- mov r1, #0
- mov ip, r1
- ldr r1, _0225658C ; =0x00002D66
- add r4, r7, #0
- add r3, r0, r1
- add r1, #0x58
- add r5, r7, #0
- add r6, r0, r1
-_02256516:
- mov r1, #0xb5
- lsl r1, r1, #6
- ldrh r1, [r0, r1]
- add r2, r4, #0
- add r2, #0x24
- strh r1, [r7, #0x18]
- ldrb r1, [r3]
- lsl r1, r1, #0x1a
- lsr r1, r1, #0x1f
- strb r1, [r2]
- ldrb r1, [r3]
- add r2, r4, #0
- add r2, #0x28
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x1b
- strb r1, [r2]
- ldr r1, _02256590 ; =0x00002DB0
- ldr r2, [r0, r1]
- mov r1, #2
- lsl r1, r1, #0x14
- tst r1, r2
- beq _02256550
- ldr r1, _02256594 ; =0x00002DFA
- add r2, r4, #0
- ldrh r1, [r0, r1]
- add r2, #0x20
- strb r1, [r2]
- ldr r1, _02256598 ; =0x00002DE4
- b _0225655E
-_02256550:
- ldrb r1, [r6]
- add r2, r4, #0
- add r2, #0x20
- lsl r1, r1, #0x1c
- lsr r1, r1, #0x1c
- strb r1, [r2]
- ldr r1, _0225659C ; =0x00002DA8
-_0225655E:
- ldr r1, [r0, r1]
- add r0, #0xc0
- str r1, [r5, #0x2c]
- mov r1, ip
- add r1, r1, #1
- add r7, r7, #2
- add r3, #0xc0
- add r4, r4, #1
- add r5, r5, #4
- add r6, #0xc0
- mov ip, r1
- cmp r1, #4
- blt _02256516
- mov r0, #0x58
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [sp, #8]
- mov r1, #1
- add r3, sp, #0xc
- bl MOD11_02254878
- add sp, #0x64
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0225658C: .word 0x00002D66
-_02256590: .word 0x00002DB0
-_02256594: .word 0x00002DFA
-_02256598: .word 0x00002DE4
-_0225659C: .word 0x00002DA8
-
- thumb_func_start MOD11_022565A0
-MOD11_022565A0: ; 0x022565A0
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0x39
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022565BC
-MOD11_022565BC: ; 0x022565BC
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0x3a
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022565D8
-MOD11_022565D8: ; 0x022565D8
- push {r3, lr}
- sub sp, #8
- mov r1, #0x3b
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022565F4
-MOD11_022565F4: ; 0x022565F4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- mov r2, #0x3c
- add r1, sp, #4
- strb r2, [r1]
- mov r4, #0
- add r6, r0, #0
- strb r4, [r1, #1]
- bl MOD11_0222FF84
- cmp r0, #0
- ble _02256632
- add r7, sp, #4
-_02256610:
- ldr r0, _02256648 ; =0x000021A8
- ldr r0, [r5, r0]
- cmp r0, #0x10
- bne _02256624
- add r0, r4, #0
- bl MaskOfFlagNo
- ldrb r1, [r7, #1]
- orr r0, r1
- strb r0, [r7, #1]
-_02256624:
- add r0, r6, #0
- add r5, #0x10
- add r4, r4, #1
- bl MOD11_0222FF84
- cmp r4, r0
- blt _02256610
-_02256632:
- mov r0, #4
- str r0, [sp]
- add r0, r6, #0
- mov r1, #1
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02256648: .word 0x000021A8
-
- thumb_func_start MOD11_0225664C
-MOD11_0225664C: ; 0x0225664C
- push {r3, lr}
- sub sp, #8
- mov r1, #0x3d
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02256668
-MOD11_02256668: ; 0x02256668
- push {r4, r5, r6, r7, lr}
- sub sp, #0x64
- str r0, [sp, #4]
- add r0, r1, #0
- str r2, [sp, #8]
- mov r2, #0x3e
- add r7, sp, #0xc
- add r1, sp, #0xc
- strb r2, [r1]
- mov r1, #0
- mov ip, r1
- ldr r1, _02256700 ; =0x00002D66
- add r4, r7, #0
- add r3, r0, r1
- add r1, #0x58
- add r5, r7, #0
- add r6, r0, r1
-_0225668A:
- mov r1, #0xb5
- lsl r1, r1, #6
- ldrh r1, [r0, r1]
- add r2, r4, #0
- add r2, #0x24
- strh r1, [r7, #0x18]
- ldrb r1, [r3]
- lsl r1, r1, #0x1a
- lsr r1, r1, #0x1f
- strb r1, [r2]
- ldrb r1, [r3]
- add r2, r4, #0
- add r2, #0x28
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x1b
- strb r1, [r2]
- ldr r1, _02256704 ; =0x00002DB0
- ldr r2, [r0, r1]
- mov r1, #2
- lsl r1, r1, #0x14
- tst r1, r2
- beq _022566C4
- ldr r1, _02256708 ; =0x00002DFA
- add r2, r4, #0
- ldrh r1, [r0, r1]
- add r2, #0x20
- strb r1, [r2]
- ldr r1, _0225670C ; =0x00002DE4
- b _022566D2
-_022566C4:
- ldrb r1, [r6]
- add r2, r4, #0
- add r2, #0x20
- lsl r1, r1, #0x1c
- lsr r1, r1, #0x1c
- strb r1, [r2]
- ldr r1, _02256710 ; =0x00002DA8
-_022566D2:
- ldr r1, [r0, r1]
- add r0, #0xc0
- str r1, [r5, #0x2c]
- mov r1, ip
- add r1, r1, #1
- add r7, r7, #2
- add r3, #0xc0
- add r4, r4, #1
- add r5, r5, #4
- add r6, #0xc0
- mov ip, r1
- cmp r1, #4
- blt _0225668A
- mov r0, #0x58
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [sp, #8]
- mov r1, #1
- add r3, sp, #0xc
- bl MOD11_02254878
- add sp, #0x64
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02256700: .word 0x00002D66
-_02256704: .word 0x00002DB0
-_02256708: .word 0x00002DFA
-_0225670C: .word 0x00002DE4
-_02256710: .word 0x00002DA8
-
- thumb_func_start MOD11_02256714
-MOD11_02256714: ; 0x02256714
- push {r3, r4, r5, lr}
- sub sp, #8
- mov r3, #0x3f
- add r4, sp, #4
- strb r3, [r4]
- ldr r3, _02256750 ; =0x0000216C
- ldr r5, [r1, r3]
- mov r1, #2
- add r3, r5, #0
- tst r3, r1
- beq _0225672E
- strb r1, [r4, #1]
- b _0225673E
-_0225672E:
- mov r1, #4
- tst r1, r5
- beq _0225673A
- mov r1, #1
- strb r1, [r4, #1]
- b _0225673E
-_0225673A:
- mov r1, #0
- strb r1, [r4, #1]
-_0225673E:
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, r4, r5, pc}
- nop
-_02256750: .word 0x0000216C
-
- thumb_func_start MOD11_02256754
-MOD11_02256754: ; 0x02256754
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- mov r3, #0x40
- add r1, sp, #4
- strb r3, [r1]
- strh r2, [r1, #2]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD11_02256774
-MOD11_02256774: ; 0x02256774
- push {r3, r4, lr}
- sub sp, #0xc
- mov r2, #0x41
- add r1, sp, #4
- strb r2, [r1]
- add r4, r0, #0
- bl MOD11_0223145C
- str r0, [sp, #8]
- mov r0, #8
- str r0, [sp]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #0xc
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225679C
-MOD11_0225679C: ; 0x0225679C
- push {r3, lr}
- sub sp, #8
- mov r1, #0x42
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022567B8
-MOD11_022567B8: ; 0x022567B8
- push {r3, r4, r5, lr}
- sub sp, #8
- add r5, r0, #0
- add r0, sp, #4
- add r4, r1, #0
- strb r2, [r0]
- bl FUN_02031190
- add r1, sp, #4
- strb r0, [r1, #1]
- mov r0, #4
- str r0, [sp]
- add r0, r5, #0
- mov r1, #2
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022567E0
-MOD11_022567E0: ; 0x022567E0
- push {r3, r4, r5, r6, r7, lr}
- ldrb r6, [r1, #3]
- ldrb r3, [r1]
- ldrb r2, [r1, #2]
- lsl r6, r6, #8
- add r5, r0, #0
- orr r2, r6
- ldrb r4, [r1, #1]
- cmp r3, #0
- bne _02256814
- mov r3, #0
- cmp r2, #0
- ble _02256852
- mov r6, #0x23
- lsl r4, r4, #8
- lsl r6, r6, #8
-_02256800:
- add r0, r1, r3
- ldr r7, [r5, #0x30]
- ldrb r0, [r0, #4]
- add r7, r4, r7
- add r7, r3, r7
- add r3, r3, #1
- strb r0, [r7, r6]
- cmp r3, r2
- blt _02256800
- pop {r3, r4, r5, r6, r7, pc}
-_02256814:
- cmp r3, #1
- bne _02256836
- mov r0, #0
- cmp r2, #0
- ble _02256852
- lsl r3, r4, #2
- add r5, r5, r3
-_02256822:
- add r3, r1, r0
- ldrb r4, [r3, #4]
- ldr r3, [r5, #0x34]
- add r3, r3, r0
- add r3, #0x94
- add r0, r0, #1
- strb r4, [r3]
- cmp r0, r2
- blt _02256822
- pop {r3, r4, r5, r6, r7, pc}
-_02256836:
- cmp r3, #2
- bne _02256852
- ldrb r7, [r1, #4]
- ldrb r6, [r1, #5]
- bl MOD11_02230DD4
- cmp r0, #0
- beq _02256852
- ldr r0, [r5, #0x30]
- add r1, r6, #0
- add r2, r4, #0
- add r3, r7, #0
- bl MOD11_02243340
-_02256852:
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02256854
-MOD11_02256854: ; 0x02256854
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r4, r1, #0
- add r5, r2, #0
- mov r1, #0x16
- strb r1, [r5]
- add r1, sp, #0x18
- ldrh r1, [r1, #0x1c]
- add r7, r0, #0
- strh r1, [r5, #2]
- ldr r1, [sp, #0x2c]
- strh r1, [r5, #0x14]
- ldr r1, [sp, #0x30]
- strh r1, [r5, #0x16]
- ldr r1, [sp, #0x28]
- str r3, [r5, #0x4c]
- str r1, [r5, #0x50]
- bl MOD11_02230294
- str r0, [r5, #0x54]
- cmp r4, #0
- bne _02256882
- b _022569B2
-_02256882:
- ldr r0, _022569B8 ; =0x00002144
- ldr r1, [r4, r0]
- add r0, #0x10
- str r1, [r5, #4]
- ldr r0, [r4, r0]
- cmp r0, #0
- beq _02256892
- b _0225689E
-_02256892:
- add r0, sp, #0x18
- ldrh r0, [r0, #0x1c]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _022569BC ; =0x000003E1
- ldrb r0, [r1, r0]
-_0225689E:
- ldr r1, [sp, #0x2c]
- strh r0, [r5, #8]
- mov r0, #0xc0
- add r6, r1, #0
- mul r6, r0
- ldr r0, _022569C0 ; =0x00002D75
- add r1, r4, r6
- ldrb r0, [r1, r0]
- add r1, r4, #0
- mov r2, #8
- strh r0, [r5, #0xc]
- mov r0, #0xd
- str r0, [sp]
- add r0, r7, #0
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _022568E2
- mov r0, #0x4c
- str r0, [sp]
- add r0, r7, #0
- add r1, r4, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _022568E2
- mov r0, #6
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- str r0, [r5, #0x10]
- b _022568E6
-_022568E2:
- mov r0, #0
- str r0, [r5, #0x10]
-_022568E6:
- ldr r0, _022569C4 ; =0x00002164
- ldr r0, [r4, r0]
- strh r0, [r5, #0xa]
- ldr r0, _022569C8 ; =0x00002DB0
- add r1, r4, r0
- mov r0, #1
- ldr r2, [r1, r6]
- lsl r0, r0, #0x18
- tst r0, r2
- beq _022568FE
- mov r3, #1
- b _02256900
-_022568FE:
- mov r3, #0
-_02256900:
- ldrh r0, [r5, #0xe]
- mov r2, #1
- bic r0, r2
- lsl r2, r3, #0x10
- lsr r3, r2, #0x10
- mov r2, #1
- and r3, r2
- orr r0, r3
- strh r0, [r5, #0xe]
- ldr r1, [r1, r6]
- lsl r0, r2, #0x15
- tst r0, r1
- bne _0225691C
- mov r2, #0
-_0225691C:
- ldrh r0, [r5, #0xe]
- mov r1, #2
- str r5, [sp, #0x10]
- bic r0, r1
- lsl r1, r2, #0x10
- lsr r1, r1, #0x10
- lsl r1, r1, #0x1f
- lsr r1, r1, #0x1e
- orr r0, r1
- strh r0, [r5, #0xe]
- ldr r0, _022569CC ; =0x00002D66
- mov r1, #0
- add r2, r4, r0
- add r0, #0x58
- add r3, r5, #0
- add r7, r4, r0
-_0225693C:
- mov r0, #0xb5
- lsl r0, r0, #6
- ldrh r6, [r4, r0]
- ldr r0, [sp, #0x10]
- strh r6, [r0, #0x18]
- ldrb r0, [r2]
- lsl r0, r0, #0x1a
- lsr r6, r0, #0x1f
- add r0, r5, r1
- str r0, [sp, #8]
- add r0, #0x24
- str r0, [sp, #8]
- strb r6, [r0]
- ldrb r0, [r2]
- lsl r0, r0, #0x1b
- lsr r6, r0, #0x1b
- add r0, r5, r1
- str r0, [sp, #4]
- add r0, #0x28
- str r0, [sp, #4]
- strb r6, [r0]
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- str r0, [r3, #0x3c]
- ldr r0, _022569C8 ; =0x00002DB0
- ldr r6, [r4, r0]
- mov r0, #2
- lsl r0, r0, #0x14
- tst r0, r6
- beq _0225698C
- ldr r0, _022569D0 ; =0x00002DFA
- ldrh r6, [r4, r0]
- add r0, r5, r1
- str r0, [sp, #0xc]
- add r0, #0x20
- str r0, [sp, #0xc]
- strb r6, [r0]
- ldr r0, _022569D4 ; =0x00002DE4
- b _0225699A
-_0225698C:
- ldrb r0, [r7]
- lsl r0, r0, #0x1c
- lsr r6, r0, #0x1c
- add r0, r5, r1
- add r0, #0x20
- strb r6, [r0]
- ldr r0, _022569D8 ; =0x00002DA8
-_0225699A:
- ldr r0, [r4, r0]
- add r1, r1, #1
- str r0, [r3, #0x2c]
- ldr r0, [sp, #0x10]
- add r4, #0xc0
- add r0, r0, #2
- str r0, [sp, #0x10]
- add r2, #0xc0
- add r3, r3, #4
- add r7, #0xc0
- cmp r1, #4
- blt _0225693C
-_022569B2:
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_022569B8: .word 0x00002144
-_022569BC: .word 0x000003E1
-_022569C0: .word 0x00002D75
-_022569C4: .word 0x00002164
-_022569C8: .word 0x00002DB0
-_022569CC: .word 0x00002D66
-_022569D0: .word 0x00002DFA
-_022569D4: .word 0x00002DE4
-_022569D8: .word 0x00002DA8
-
- thumb_func_start MOD11_022569DC
-MOD11_022569DC: ; 0x022569DC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- str r0, [sp]
- ldr r0, [sp, #0x38]
- add r5, r2, #0
- str r1, [sp, #4]
- str r0, [sp, #0x38]
- mov r0, #0
- add r1, r5, #0
- mov r2, #8
- add r6, r3, #0
- bl MIi_CpuClearFast
- ldr r0, [sp]
- bl MOD11_0222FF74
- add r4, r0, #0
- mov r0, #0xc
- and r0, r4
- strb r6, [r5]
- cmp r0, #0xc
- beq _02256A30
- mov r0, #0x10
- tst r0, r4
- beq _02256A1A
- ldr r0, [sp]
- ldr r1, [sp, #0x38]
- bl MOD11_02230270
- cmp r0, #0
- bne _02256A30
-_02256A1A:
- cmp r4, #0x4b
- bne _02256A2A
- ldr r0, [sp]
- ldr r1, [sp, #0x38]
- bl MOD11_02230270
- cmp r0, #0
- bne _02256A30
-_02256A2A:
- cmp r4, #0xcb
- beq _02256A30
- b _02256B66
-_02256A30:
- ldr r0, [sp]
- ldr r1, [sp, #0x38]
- bl MOD11_02230260
- cmp r0, #2
- beq _02256A48
- ldr r0, [sp]
- ldr r1, [sp, #0x38]
- bl MOD11_02230260
- cmp r0, #3
- bne _02256A56
-_02256A48:
- ldr r6, [sp, #0x38]
- ldr r0, [sp]
- add r1, r6, #0
- bl MOD11_022302BC
- str r0, [sp, #0x38]
- b _02256A60
-_02256A56:
- ldr r0, [sp]
- ldr r1, [sp, #0x38]
- bl MOD11_022302BC
- add r6, r0, #0
-_02256A60:
- ldr r0, [sp]
- add r1, r6, #0
- bl MOD11_0222FF88
- mov r4, #0
- str r0, [sp, #0x10]
- add r7, r4, #0
- bl GetPartyCount
- cmp r0, #0
- ble _02256AE0
- mov r0, #6
- add r1, r6, #0
- mul r1, r0
- ldr r0, [sp, #4]
- add r6, r0, r1
-_02256A80:
- ldr r1, _02256C00 ; =0x0000312C
- ldr r0, [sp, #0x10]
- ldrb r1, [r6, r1]
- bl GetPartyMonByIndex
- mov r1, #0xad
- mov r2, #0
- str r0, [sp, #0x14]
- bl GetMonData
- cmp r0, #0
- beq _02256AD2
- ldr r1, _02256C04 ; =0x000001EE
- cmp r0, r1
- beq _02256AD2
- ldr r0, [sp, #0x14]
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _02256ACA
- ldr r0, [sp, #0x14]
- mov r1, #0x9f
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _02256AC2
- add r1, r5, r4
- mov r0, #3
- strb r0, [r1, #2]
- b _02256AD0
-_02256AC2:
- add r1, r5, r4
- mov r0, #1
- strb r0, [r1, #2]
- b _02256AD0
-_02256ACA:
- add r1, r5, r4
- mov r0, #2
- strb r0, [r1, #2]
-_02256AD0:
- add r4, r4, #1
-_02256AD2:
- ldr r0, [sp, #0x10]
- add r6, r6, #1
- add r7, r7, #1
- bl GetPartyCount
- cmp r7, r0
- blt _02256A80
-_02256AE0:
- ldr r0, [sp]
- ldr r1, [sp, #0x38]
- bl MOD11_0222FF88
- str r0, [sp, #8]
- mov r4, #3
- mov r6, #0
- bl GetPartyCount
- cmp r0, #0
- bgt _02256AF8
- b _02256BFA
-_02256AF8:
- ldr r0, [sp, #0x38]
- mov r1, #6
- mul r1, r0
- ldr r0, [sp, #4]
- add r7, r0, r1
-_02256B02:
- ldr r1, _02256C00 ; =0x0000312C
- ldr r0, [sp, #8]
- ldrb r1, [r7, r1]
- bl GetPartyMonByIndex
- mov r1, #0xad
- mov r2, #0
- str r0, [sp, #0x18]
- bl GetMonData
- cmp r0, #0
- beq _02256B54
- ldr r1, _02256C04 ; =0x000001EE
- cmp r0, r1
- beq _02256B54
- ldr r0, [sp, #0x18]
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _02256B4C
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _02256B44
- add r1, r5, r4
- mov r0, #3
- strb r0, [r1, #2]
- b _02256B52
-_02256B44:
- add r1, r5, r4
- mov r0, #1
- strb r0, [r1, #2]
- b _02256B52
-_02256B4C:
- add r1, r5, r4
- mov r0, #2
- strb r0, [r1, #2]
-_02256B52:
- add r4, r4, #1
-_02256B54:
- ldr r0, [sp, #8]
- add r7, r7, #1
- add r6, r6, #1
- bl GetPartyCount
- cmp r6, r0
- blt _02256B02
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
-_02256B66:
- mov r0, #2
- tst r0, r4
- beq _02256B7A
- mov r0, #8
- tst r0, r4
- bne _02256B7A
- ldr r0, [sp, #0x38]
- mov r1, #1
- and r0, r1
- str r0, [sp, #0x38]
-_02256B7A:
- ldr r0, [sp]
- ldr r1, [sp, #0x38]
- bl MOD11_0222FF88
- mov r4, #0
- str r0, [sp, #0xc]
- add r7, r4, #0
- bl GetPartyCount
- cmp r0, #0
- ble _02256BFA
- ldr r0, [sp, #0x38]
- mov r1, #6
- mul r1, r0
- ldr r0, [sp, #4]
- add r6, r0, r1
-_02256B9A:
- ldr r1, _02256C00 ; =0x0000312C
- ldr r0, [sp, #0xc]
- ldrb r1, [r6, r1]
- bl GetPartyMonByIndex
- mov r1, #0xad
- mov r2, #0
- str r0, [sp, #0x1c]
- bl GetMonData
- cmp r0, #0
- beq _02256BEC
- ldr r1, _02256C04 ; =0x000001EE
- cmp r0, r1
- beq _02256BEC
- ldr r0, [sp, #0x1c]
- mov r1, #0xa2
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _02256BE4
- ldr r0, [sp, #0x1c]
- mov r1, #0x9f
- mov r2, #0
- bl GetMonData
- cmp r0, #0
- beq _02256BDC
- add r1, r5, r4
- mov r0, #3
- strb r0, [r1, #2]
- b _02256BEA
-_02256BDC:
- add r1, r5, r4
- mov r0, #1
- strb r0, [r1, #2]
- b _02256BEA
-_02256BE4:
- add r1, r5, r4
- mov r0, #2
- strb r0, [r1, #2]
-_02256BEA:
- add r4, r4, #1
-_02256BEC:
- ldr r0, [sp, #0xc]
- add r6, r6, #1
- add r7, r7, #1
- bl GetPartyCount
- cmp r7, r0
- blt _02256B9A
-_02256BFA:
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02256C00: .word 0x0000312C
-_02256C04: .word 0x000001EE
-
- thumb_func_start MOD11_02256C08
-MOD11_02256C08: ; 0x02256C08
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r5, r0, #0
- lsl r0, r3, #0x18
- lsr r0, r0, #0x18
- add r4, r1, #0
- add r7, r2, #0
- str r3, [sp, #0x18]
- bl MOD11_02257FC0
- add r6, r0, #0
- ldr r3, [r6, #0x14]
- mov r0, #1
- str r0, [sp]
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1b
- str r3, [sp, #8]
- bl FUN_0200C00C
- mov r0, #0x1b
- str r0, [sp]
- mov r0, #0x23
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- ldr r0, _02256CC8 ; =0x00004E26
- mov r1, #2
- str r0, [sp, #0x14]
- add r0, r7, #0
- add r2, r5, #0
- add r3, r4, #0
- bl FUN_0200C0DC
- ldr r3, [r6, #0x1c]
- mov r0, #1
- str r0, [sp]
- str r3, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1b
- bl FUN_0200C124
- ldr r3, [r6, #0x20]
- mov r0, #1
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1b
- str r3, [sp, #4]
- bl FUN_0200C13C
- mov r0, #0x1b
- str r0, [sp]
- mov r0, #0x23
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- ldr r0, _02256CCC ; =0x00004E27
- mov r1, #2
- str r0, [sp, #0x14]
- add r0, r7, #0
- add r2, r5, #0
- add r3, r4, #0
- bl FUN_0200C0DC
- ldr r0, [sp, #0x18]
- sub r0, r0, #6
- cmp r0, #1
- bhi _02256CC4
- mov r0, #0x1b
- str r0, [sp]
- mov r0, #0x2d
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- ldr r0, _02256CD0 ; =0x00004E28
- mov r1, #2
- str r0, [sp, #0x14]
- add r0, r7, #0
- add r2, r5, #0
- add r3, r4, #0
- bl FUN_0200C0DC
-_02256CC4:
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02256CC8: .word 0x00004E26
-_02256CCC: .word 0x00004E27
-_02256CD0: .word 0x00004E28
-
- thumb_func_start MOD11_02256CD4
-MOD11_02256CD4: ; 0x02256CD4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r5, r0, #0
- lsl r0, r3, #0x18
- lsr r0, r0, #0x18
- add r6, r1, #0
- add r7, r2, #0
- bl MOD11_02258024
- add r4, r0, #0
- beq _02256D44
- ldr r3, [r4, #0x14]
- mov r0, #1
- str r0, [sp]
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1b
- str r3, [sp, #8]
- bl FUN_0200C00C
- mov r0, #0x1b
- str r0, [sp]
- mov r0, #0x23
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- ldr r0, _02256D48 ; =0x00004E26
- mov r1, #2
- str r0, [sp, #0x14]
- add r0, r7, #0
- add r2, r5, #0
- add r3, r6, #0
- bl FUN_0200C0DC
- ldr r3, [r4, #0x1c]
- mov r0, #1
- str r0, [sp]
- str r3, [sp, #4]
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1b
- bl FUN_0200C124
- ldr r3, [r4, #0x20]
- mov r0, #1
- str r0, [sp]
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1b
- str r3, [sp, #4]
- bl FUN_0200C13C
-_02256D44:
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02256D48: .word 0x00004E26
-
- thumb_func_start MOD11_02256D4C
-MOD11_02256D4C: ; 0x02256D4C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- lsl r0, r2, #0x18
- add r4, r1, #0
- lsr r0, r0, #0x18
- bl MOD11_02257FC0
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl FUN_0200C154
- add r4, r0, #0
- ldr r0, [r4]
- bl FUN_0200C59C
- add r0, r4, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02256D70
-MOD11_02256D70: ; 0x02256D70
- push {r4, r5, r6, lr}
- add r5, r0, #0
- ldr r0, [r5, #4]
- add r6, r1, #0
- add r4, r2, #0
- cmp r0, #0
- bne _02256D82
- bl ErrorHandling
-_02256D82:
- add r0, r5, #0
- add r0, #0x25
- ldrb r0, [r0]
- cmp r0, #6
- bne _02256D94
- mov r1, #3
- lsl r1, r1, #0xa
- and r4, r1
- b _02256DA4
-_02256D94:
- cmp r0, #7
- bne _02256DA0
- mov r1, #3
- lsl r1, r1, #0xc
- and r4, r1
- b _02256DA4
-_02256DA0:
- ldr r1, _02256F00 ; =0xFFFFC3FF
- and r4, r1
-_02256DA4:
- cmp r0, #7
- bhi _02256DEA
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02256DB4: ; jump table
- .short _02256DE6 - _02256DB4 - 2 ; case 0
- .short _02256DC4 - _02256DB4 - 2 ; case 1
- .short _02256DCA - _02256DB4 - 2 ; case 2
- .short _02256DC4 - _02256DB4 - 2 ; case 3
- .short _02256DCA - _02256DB4 - 2 ; case 4
- .short _02256DC4 - _02256DB4 - 2 ; case 5
- .short _02256DEA - _02256DB4 - 2 ; case 6
- .short _02256DEA - _02256DB4 - 2 ; case 7
-_02256DC4:
- mov r0, #0x26
- bic r4, r0
- b _02256DEA
-_02256DCA:
- ldr r0, _02256F04 ; =0xFFFFFDDF
- and r4, r0
- add r0, r5, #0
- add r0, #0x4f
- ldrb r0, [r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- bne _02256DE0
- mov r0, #6
- bic r4, r0
- b _02256DEA
-_02256DE0:
- mov r0, #1
- bic r4, r0
- b _02256DEA
-_02256DE6:
- ldr r0, _02256F08 ; =0xFFFFFDFF
- and r4, r0
-_02256DEA:
- ldr r0, [r5, #0xc]
- bl MOD11_0222FF74
- mov r1, #1
- tst r0, r1
- beq _02256DFA
- ldr r0, _02256F08 ; =0xFFFFFDFF
- and r4, r0
-_02256DFA:
- mov r0, #1
- tst r0, r4
- beq _02256E10
- add r0, r5, #0
- mov r1, #0
- bl MOD11_02257150
- add r0, r5, #0
- mov r1, #0
- bl MOD11_02257BEC
-_02256E10:
- mov r0, #2
- tst r0, r4
- beq _02256E1E
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0225787C
-_02256E1E:
- mov r0, #4
- tst r0, r4
- beq _02256E2A
- add r0, r5, #0
- bl MOD11_02257908
-_02256E2A:
- mov r0, #0x80
- tst r0, r4
- bne _02256E36
- mov r0, #0x40
- tst r0, r4
- beq _02256E3C
-_02256E36:
- add r0, r5, #0
- bl MOD11_02257654
-_02256E3C:
- mov r0, #8
- tst r0, r4
- beq _02256E48
- add r0, r5, #0
- bl MOD11_0225775C
-_02256E48:
- mov r0, #0x10
- tst r0, r4
- beq _02256E54
- add r0, r5, #0
- bl MOD11_022574F0
-_02256E54:
- mov r0, #0x20
- tst r0, r4
- beq _02256E6A
- add r0, r5, #0
- mov r1, #0
- bl MOD11_022571B8
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02257BEC
-_02256E6A:
- mov r0, #2
- lsl r0, r0, #8
- tst r0, r4
- beq _02256E78
- add r0, r5, #0
- bl MOD11_02257968
-_02256E78:
- mov r0, #1
- lsl r0, r0, #8
- tst r0, r4
- beq _02256EDC
- add r0, r5, #0
- add r0, #0x4a
- ldrb r0, [r0]
- cmp r0, #5
- bhi _02256EA2
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02256E96: ; jump table
- .short _02256EA2 - _02256E96 - 2 ; case 0
- .short _02256EAC - _02256E96 - 2 ; case 1
- .short _02256EB6 - _02256E96 - 2 ; case 2
- .short _02256EC0 - _02256E96 - 2 ; case 3
- .short _02256ECA - _02256E96 - 2 ; case 4
- .short _02256ED4 - _02256E96 - 2 ; case 5
-_02256EA2:
- add r0, r5, #0
- mov r1, #0x38
- bl MOD11_022579B8
- b _02256EDC
-_02256EAC:
- add r0, r5, #0
- mov r1, #0x2f
- bl MOD11_022579B8
- b _02256EDC
-_02256EB6:
- add r0, r5, #0
- mov r1, #0x32
- bl MOD11_022579B8
- b _02256EDC
-_02256EC0:
- add r0, r5, #0
- mov r1, #0x35
- bl MOD11_022579B8
- b _02256EDC
-_02256ECA:
- add r0, r5, #0
- mov r1, #0x2c
- bl MOD11_022579B8
- b _02256EDC
-_02256ED4:
- add r0, r5, #0
- mov r1, #0x29
- bl MOD11_022579B8
-_02256EDC:
- mov r0, #5
- lsl r0, r0, #0xa
- tst r0, r4
- beq _02256EEC
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022579F8
-_02256EEC:
- mov r0, #0xa
- lsl r0, r0, #0xa
- tst r0, r4
- beq _02256EFC
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02257AD4
-_02256EFC:
- pop {r4, r5, r6, pc}
- nop
-_02256F00: .word 0xFFFFC3FF
-_02256F04: .word 0xFFFFFDDF
-_02256F08: .word 0xFFFFFDFF
-
- thumb_func_start MOD11_02256F0C
-MOD11_02256F0C: ; 0x02256F0C
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x50]
- cmp r0, #0
- beq _02256F1E
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #0x50]
-_02256F1E:
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _02256F2C
- bl FUN_0200C3DC
- mov r0, #0
- str r0, [r4, #4]
-_02256F2C:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02256F30
-MOD11_02256F30: ; 0x02256F30
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _02256F42
- bl FUN_0200C3DC
- mov r0, #0
- str r0, [r4, #8]
-_02256F42:
- pop {r4, pc}
-
- thumb_func_start MOD11_02256F44
-MOD11_02256F44: ; 0x02256F44
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r0, #0x25
- ldrb r0, [r0]
- bl MOD11_02257FC0
- add r4, r0, #0
- ldr r0, [r5, #0xc]
- bl MOD11_02230078
- ldr r0, [r5, #0xc]
- bl MOD11_02230080
- ldr r1, [r4, #0x14]
- add r5, r0, #0
- bl FUN_0200C358
- ldr r1, [r4, #0x1c]
- add r0, r5, #0
- bl FUN_0200C378
- ldr r1, [r4, #0x20]
- add r0, r5, #0
- bl FUN_0200C388
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02256F78
-MOD11_02256F78: ; 0x02256F78
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r0, #0x25
- ldrb r0, [r0]
- bl MOD11_02258024
- add r4, r0, #0
- beq _02256FAC
- ldr r0, [r5, #0xc]
- bl MOD11_02230078
- ldr r0, [r5, #0xc]
- bl MOD11_02230080
- ldr r1, [r4, #0x14]
- add r5, r0, #0
- bl FUN_0200C358
- ldr r1, [r4, #0x1c]
- add r0, r5, #0
- bl FUN_0200C378
- ldr r1, [r4, #0x20]
- add r0, r5, #0
- bl FUN_0200C388
-_02256FAC:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02256FB0
-MOD11_02256FB0: ; 0x02256FB0
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, [r5, #0xc]
- bl MOD11_02230078
- add r6, r0, #0
- ldr r0, [r5, #0xc]
- bl MOD11_02230080
- add r7, r0, #0
- ldr r0, [r5, #0xc]
- bl MOD11_022300CC
- str r0, [sp]
- add r0, r5, #0
- add r0, #0x25
- ldrb r0, [r0]
- bl MOD11_02257FC0
- add r3, r5, #0
- add r3, #0x25
- add r4, r0, #0
- ldrb r3, [r3]
- ldr r2, [sp]
- add r0, r6, #0
- add r1, r7, #0
- bl MOD11_02256C08
- add r2, r5, #0
- add r2, #0x25
- ldrb r2, [r2]
- add r0, r6, #0
- add r1, r7, #0
- bl MOD11_02256D4C
- add r3, r5, #0
- str r0, [r5, #4]
- add r3, #0x25
- ldrb r3, [r3]
- ldr r2, [sp]
- add r0, r6, #0
- add r1, r7, #0
- bl MOD11_02256CD4
- ldr r0, [r5, #8]
- cmp r0, #0
- beq _0225702A
- add r5, #0x25
- mov r1, #0
- ldrsh r3, [r4, r1]
- ldrb r2, [r5]
- ldr r1, _0225702C ; =0x0225E970
- ldr r0, [r0]
- ldrsb r1, [r1, r2]
- mov r2, #2
- ldrsh r2, [r4, r2]
- sub r1, r3, r1
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- bl FUN_0200C6E4
-_0225702A:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225702C: .word 0x0225E970
-
- thumb_func_start MOD11_02257030
-MOD11_02257030: ; 0x02257030
- push {r4, lr}
- add r4, r0, #0
- bl MOD11_02256F0C
- add r0, r4, #0
- bl MOD11_02256F44
- add r0, r4, #0
- bl MOD11_02256F30
- add r0, r4, #0
- bl MOD11_02256F78
- pop {r4, pc}
-
- thumb_func_start MOD11_0225704C
-MOD11_0225704C: ; 0x0225704C
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r0, #0x25
- ldrb r0, [r0]
- cmp r0, #2
- beq _0225705C
- cmp r0, #4
- bne _02257136
-_0225705C:
- add r0, r5, #0
- add r0, #0x4f
- ldrb r2, [r0]
- mov r1, #8
- add r0, r2, #0
- bic r0, r1
- lsl r1, r2, #0x1c
- lsr r2, r1, #0x1f
- mov r1, #1
- eor r1, r2
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- lsl r1, r1, #0x1f
- lsr r1, r1, #0x1c
- orr r1, r0
- add r0, r5, #0
- add r0, #0x4f
- strb r1, [r0]
- ldr r0, [r5, #4]
- ldr r0, [r0]
- bl FUN_02020350
- add r4, r0, #0
- add r0, r5, #0
- add r0, #0x4f
- ldrb r0, [r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- cmp r0, #1
- bne _022570E8
- mov r0, #0x38
- bl MOD11_02257F60
- add r1, r5, #0
- add r1, #0x25
- ldrb r1, [r1]
- mov r6, #0x19
- ldr r3, _02257138 ; =0x0225E9B0
- lsl r2, r1, #2
- ldrh r3, [r3, r2]
- lsl r6, r6, #0x16
- ldr r1, [r4, #4]
- add r3, r6, r3
- add r1, r1, r3
- ldr r3, _0225713C ; =0x0225E9B2
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- mov r0, #0x45
- bl MOD11_02257F60
- add r1, r5, #0
- add r1, #0x25
- ldrb r1, [r1]
- ldr r3, _02257140 ; =0x0225EA10
- lsl r2, r1, #2
- ldrh r3, [r3, r2]
- ldr r1, [r4, #4]
- add r3, r6, r3
- add r1, r1, r3
- ldr r3, _02257144 ; =0x0225EA12
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- ldr r1, [r5, #0x28]
- add r0, r5, #0
- mov r2, #6
- bl MOD11_02256D70
- pop {r4, r5, r6, pc}
-_022570E8:
- mov r0, #0x42
- bl MOD11_02257F60
- add r1, r5, #0
- add r1, #0x25
- ldrb r1, [r1]
- mov r6, #0x19
- ldr r3, _02257138 ; =0x0225E9B0
- lsl r2, r1, #2
- ldrh r3, [r3, r2]
- lsl r6, r6, #0x16
- ldr r1, [r4, #4]
- add r3, r6, r3
- add r1, r1, r3
- ldr r3, _0225713C ; =0x0225E9B2
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- mov r0, #0x44
- bl MOD11_02257F60
- add r1, r5, #0
- add r1, #0x25
- ldrb r1, [r1]
- ldr r3, _02257148 ; =0x0225E9E0
- lsl r2, r1, #2
- ldrh r3, [r3, r2]
- ldr r1, [r4, #4]
- add r3, r6, r3
- add r1, r1, r3
- ldr r3, _0225714C ; =0x0225E9E2
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- ldr r1, [r5, #0x28]
- add r0, r5, #0
- mov r2, #1
- bl MOD11_02256D70
-_02257136:
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02257138: .word 0x0225E9B0
-_0225713C: .word 0x0225E9B2
-_02257140: .word 0x0225EA10
-_02257144: .word 0x0225EA12
-_02257148: .word 0x0225E9E0
-_0225714C: .word 0x0225E9E2
-
- thumb_func_start MOD11_02257150
-MOD11_02257150: ; 0x02257150
- mov r2, #2
- lsl r2, r2, #0x1e
- str r2, [r0, #0x34]
- ldr r3, [r0, #0x28]
- add r2, r3, r1
- bpl _0225715E
- sub r1, r1, r2
-_0225715E:
- ldr r2, [r0, #0x2c]
- add r3, r3, r1
- cmp r3, r2
- ble _0225716A
- sub r2, r3, r2
- sub r1, r1, r2
-_0225716A:
- neg r1, r1
- str r1, [r0, #0x30]
- ldr r1, [r0, #0x28]
- cmp r1, #0
- bge _02257178
- mov r1, #0
- str r1, [r0, #0x28]
-_02257178:
- ldr r2, [r0, #0x2c]
- ldr r1, [r0, #0x28]
- cmp r1, r2
- ble _02257182
- str r2, [r0, #0x28]
-_02257182:
- bx lr
-
- thumb_func_start MOD11_02257184
-MOD11_02257184: ; 0x02257184
- push {r3, r4, r5, lr}
- mov r1, #0
- add r5, r0, #0
- bl MOD11_02257BEC
- add r4, r0, #0
- mov r0, #0
- mvn r0, r0
- cmp r4, r0
- bne _022571AA
- ldr r1, [r5, #0x28]
- ldr r0, [r5, #0x30]
- mov r2, #2
- sub r1, r1, r0
- add r0, r5, #0
- str r1, [r5, #0x28]
- bl MOD11_02256D70
- b _022571B4
-_022571AA:
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #2
- bl MOD11_02256D70
-_022571B4:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022571B8
-MOD11_022571B8: ; 0x022571B8
- mov r2, #2
- lsl r2, r2, #0x1e
- str r2, [r0, #0x44]
- ldr r3, [r0, #0x38]
- add r2, r3, r1
- bpl _022571C6
- sub r1, r1, r2
-_022571C6:
- ldr r2, [r0, #0x3c]
- add r3, r3, r1
- cmp r3, r2
- ble _022571D2
- sub r2, r3, r2
- sub r1, r1, r2
-_022571D2:
- neg r1, r1
- str r1, [r0, #0x40]
- ldr r1, [r0, #0x38]
- cmp r1, #0
- bge _022571E0
- mov r1, #0
- str r1, [r0, #0x38]
-_022571E0:
- ldr r2, [r0, #0x3c]
- ldr r1, [r0, #0x38]
- cmp r1, r2
- ble _022571EA
- str r2, [r0, #0x38]
-_022571EA:
- bx lr
-
- thumb_func_start MOD11_022571EC
-MOD11_022571EC: ; 0x022571EC
- push {r4, lr}
- mov r1, #1
- add r4, r0, #0
- bl MOD11_02257BEC
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _02257206
- ldr r2, [r4, #0x38]
- ldr r1, [r4, #0x40]
- sub r1, r2, r1
- str r1, [r4, #0x38]
-_02257206:
- pop {r4, pc}
-
- thumb_func_start MOD11_02257208
-MOD11_02257208: ; 0x02257208
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _02257222
- ldr r0, [r0]
- mov r1, #1
- bl FUN_020200BC
- add r0, r4, #0
- mov r1, #1
- bl MOD11_02257284
-_02257222:
- ldr r0, [r4, #0xc]
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- bne _02257236
- add r0, r4, #0
- bl MOD11_02258188
-_02257236:
- pop {r4, pc}
-
- thumb_func_start MOD11_02257238
-MOD11_02257238: ; 0x02257238
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _0225725C
- ldr r0, [r0]
- mov r1, #0
- bl FUN_020200BC
- ldr r0, [r4, #8]
- mov r1, #0
- ldr r0, [r0]
- bl FUN_02020208
- add r0, r4, #0
- mov r1, #0
- bl MOD11_02257284
-_0225725C:
- add r0, r4, #0
- bl MOD11_022581B0
- pop {r4, pc}
-
- thumb_func_start MOD11_02257264
-MOD11_02257264: ; 0x02257264
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #4]
- add r4, r1, #0
- cmp r0, #0
- beq _02257280
- bl FUN_0200C6B0
- ldr r0, [r5, #8]
- cmp r0, #0
- beq _02257280
- add r1, r4, #0
- bl FUN_0200C6B0
-_02257280:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02257284
-MOD11_02257284: ; 0x02257284
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #8]
- add r4, r1, #0
- cmp r0, #0
- beq _022572AA
- ldr r0, [r5, #0xc]
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- beq _022572A2
- cmp r4, #1
- beq _022572AA
-_022572A2:
- ldr r0, [r5, #8]
- add r1, r4, #0
- bl FUN_0200C644
-_022572AA:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022572AC
-MOD11_022572AC: ; 0x022572AC
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #4]
- add r4, r1, #0
- cmp r0, #0
- beq _022572C4
- bl FUN_0200C644
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02257284
-_022572C4:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022572C8
-MOD11_022572C8: ; 0x022572C8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, [r5, #4]
- add r6, r1, #0
- add r7, r2, #0
- cmp r0, #0
- bne _022572DA
- bl ErrorHandling
-_022572DA:
- add r0, r5, #0
- add r0, #0x25
- ldrb r0, [r0]
- bl MOD11_02257FC0
- add r4, r0, #0
- mov r1, #0
- mov r2, #2
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r5, #4]
- add r1, r1, r6
- add r2, r2, r7
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r0]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C6E4
- ldr r0, [r5, #8]
- cmp r0, #0
- beq _0225732C
- add r5, #0x25
- ldrb r3, [r5]
- mov r1, #0
- ldr r2, _02257330 ; =0x0225E970
- ldrsh r1, [r4, r1]
- ldrsb r2, [r2, r3]
- ldr r0, [r0]
- add r1, r1, r6
- sub r1, r1, r2
- mov r2, #2
- ldrsh r2, [r4, r2]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add r2, r2, r7
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C6E4
-_0225732C:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02257330: .word 0x0225E970
-
- thumb_func_start MOD11_02257334
-MOD11_02257334: ; 0x02257334
- push {r3, r4, r5, lr}
- add r4, r0, #0
- add r5, r1, #0
- cmp r4, #0
- bne _02257342
- bl ErrorHandling
-_02257342:
- ldr r0, [r4, #4]
- cmp r0, #0
- bne _0225734C
- bl ErrorHandling
-_0225734C:
- add r0, r4, #0
- add r0, #0x4f
- ldrb r1, [r0]
- mov r0, #2
- bic r1, r0
- add r0, r4, #0
- add r0, #0x4f
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0x4f
- ldrb r0, [r0]
- mov r1, #1
- bic r0, r1
- lsl r1, r5, #0x18
- lsr r2, r1, #0x18
- mov r1, #1
- and r1, r2
- orr r1, r0
- add r0, r4, #0
- add r0, #0x4f
- strb r1, [r0]
- cmp r5, #0
- bne _022573BA
- add r0, r4, #0
- add r0, #0x25
- ldrb r0, [r0]
- cmp r0, #7
- bhi _022573AC
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02257390: ; jump table
- .short _022573A0 - _02257390 - 2 ; case 0
- .short _022573AC - _02257390 - 2 ; case 1
- .short _022573A0 - _02257390 - 2 ; case 2
- .short _022573AC - _02257390 - 2 ; case 3
- .short _022573A0 - _02257390 - 2 ; case 4
- .short _022573AC - _02257390 - 2 ; case 5
- .short _022573A0 - _02257390 - 2 ; case 6
- .short _022573A0 - _02257390 - 2 ; case 7
-_022573A0:
- add r0, r4, #0
- mov r1, #0xa0
- mov r2, #0
- bl MOD11_022572C8
- b _022573C4
-_022573AC:
- mov r1, #0x9f
- add r0, r4, #0
- mvn r1, r1
- mov r2, #0
- bl MOD11_022572C8
- b _022573C4
-_022573BA:
- mov r1, #0
- add r0, r4, #0
- add r2, r1, #0
- bl MOD11_022572C8
-_022573C4:
- ldr r0, _022573D0 ; =MOD11_022573D8
- ldr r2, _022573D4 ; =0x000003DE
- add r1, r4, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022573D0: .word MOD11_022573D8
-_022573D4: .word 0x000003DE
-
- thumb_func_start MOD11_022573D8
-MOD11_022573D8: ; 0x022573D8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r7, r0, #0
- add r0, r5, #0
- add r0, #0x25
- ldrb r0, [r0]
- mov r4, #0
- bl MOD11_02257FC0
- add r6, r0, #0
- add r1, sp, #0
- ldr r0, [r5, #4]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- add r0, r5, #0
- add r0, #0x25
- ldrb r0, [r0]
- cmp r0, #7
- bhi _0225745E
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225740E: ; jump table
- .short _0225741E - _0225740E - 2 ; case 0
- .short _0225745E - _0225740E - 2 ; case 1
- .short _0225741E - _0225740E - 2 ; case 2
- .short _0225745E - _0225740E - 2 ; case 3
- .short _0225741E - _0225740E - 2 ; case 4
- .short _0225745E - _0225740E - 2 ; case 5
- .short _0225741E - _0225740E - 2 ; case 6
- .short _0225741E - _0225740E - 2 ; case 7
-_0225741E:
- add r0, r5, #0
- add r0, #0x4f
- ldrb r0, [r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- add r0, sp, #0
- bne _02257444
- mov r1, #2
- ldrsh r2, [r0, r1]
- sub r2, #0x18
- strh r2, [r0, #2]
- add r2, r4, #0
- ldrsh r1, [r0, r1]
- ldrsh r2, [r6, r2]
- cmp r1, r2
- bge _0225749C
- strh r2, [r0, #2]
- add r4, r4, #1
- b _0225749C
-_02257444:
- mov r1, #2
- ldrsh r2, [r0, r1]
- add r2, #0x18
- strh r2, [r0, #2]
- add r2, r4, #0
- ldrsh r2, [r6, r2]
- ldrsh r1, [r0, r1]
- add r2, #0xa0
- cmp r1, r2
- ble _0225749C
- strh r2, [r0, #2]
- add r4, r4, #1
- b _0225749C
-_0225745E:
- add r0, r5, #0
- add r0, #0x4f
- ldrb r0, [r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- add r0, sp, #0
- bne _02257484
- mov r1, #2
- ldrsh r2, [r0, r1]
- add r2, #0x18
- strh r2, [r0, #2]
- mov r2, #0
- ldrsh r1, [r0, r1]
- ldrsh r2, [r6, r2]
- cmp r1, r2
- ble _0225749C
- strh r2, [r0, #2]
- add r4, r4, #1
- b _0225749C
-_02257484:
- mov r1, #2
- ldrsh r2, [r0, r1]
- sub r2, #0x18
- strh r2, [r0, #2]
- mov r2, #0
- ldrsh r2, [r6, r2]
- ldrsh r1, [r0, r1]
- sub r2, #0x18
- cmp r1, r2
- bge _0225749C
- strh r2, [r0, #2]
- add r4, r4, #1
-_0225749C:
- add r2, sp, #0
- mov r1, #2
- mov r3, #0
- ldrsh r1, [r2, r1]
- ldrsh r2, [r2, r3]
- ldr r0, [r5, #4]
- bl FUN_0200C714
- ldr r0, [r5, #8]
- cmp r0, #0
- beq _022574D0
- add r6, sp, #0
- mov r1, #2
- ldrsh r3, [r6, r1]
- add r1, r5, #0
- add r1, #0x25
- ldrb r2, [r1]
- ldr r1, _022574EC ; =0x0225E970
- ldrsb r1, [r1, r2]
- mov r2, #0
- ldrsh r2, [r6, r2]
- sub r1, r3, r1
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- bl FUN_0200C714
-_022574D0:
- cmp r4, #0
- ble _022574E8
- add r0, r5, #0
- add r0, #0x4f
- ldrb r1, [r0]
- mov r0, #2
- add r5, #0x4f
- orr r0, r1
- strb r0, [r5]
- add r0, r7, #0
- bl FUN_0200CAB4
-_022574E8:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022574EC: .word 0x0225E970
-
- thumb_func_start MOD11_022574F0
-MOD11_022574F0: ; 0x022574F0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x34
- add r5, r0, #0
- ldr r0, [r5, #0xc]
- bl MOD11_0222FF68
- add r6, r0, #0
- ldr r0, [r5, #0xc]
- bl MOD11_022300C4
- add r7, r0, #0
- ldr r0, [r5, #0xc]
- bl MOD11_02230138
- add r4, r0, #0
- mov r0, #0x16
- mov r1, #5
- bl FUN_020219F4
- mov r1, #0xf1
- str r0, [sp, #0x18]
- add r0, r7, #0
- lsl r1, r1, #2
- bl FUN_0200A914
- add r1, r5, #0
- add r2, r5, #0
- add r1, #0x24
- add r2, #0x26
- str r0, [sp, #0x1c]
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r5, #0xc]
- bl MOD11_02230014
- bl FUN_020690E4
- add r2, r0, #0
- add r0, r4, #0
- mov r1, #0
- bl FUN_0200ACF8
- ldr r1, [sp, #0x18]
- ldr r2, [sp, #0x1c]
- add r0, r4, #0
- bl FUN_0200B7B8
- mov r0, #0
- str r0, [sp]
- mov r0, #0xf
- str r0, [sp, #4]
- add r0, r6, #0
- add r1, sp, #0x24
- mov r2, #8
- mov r3, #2
- bl FUN_020190EC
- mov r1, #0
- str r1, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- ldr r0, _02257630 ; =0x000E020F
- ldr r2, [sp, #0x18]
- str r0, [sp, #8]
- str r1, [sp, #0xc]
- str r1, [sp, #0x10]
- str r1, [sp, #0x14]
- add r0, sp, #0x24
- add r3, r1, #0
- bl FUN_0201BE3C
- ldr r0, [r5, #4]
- ldr r6, [sp, #0x30]
- ldr r0, [r0]
- bl FUN_02020350
- add r4, r0, #0
- mov r0, #1
- lsl r0, r0, #8
- add r0, r6, r0
- str r0, [sp, #0x20]
- add r0, r5, #0
- add r0, #0x25
- ldrb r0, [r0]
- ldr r1, _02257634 ; =0x0225EC88
- ldr r3, [r4, #4]
- lsl r7, r0, #4
- ldrh r2, [r1, r7]
- mov r1, #0x19
- lsl r1, r1, #0x16
- add r1, r1, r2
- ldr r2, _02257638 ; =0x0225EC8A
- add r0, r6, #0
- ldrh r2, [r2, r7]
- add r1, r3, r1
- bl MIi_CpuCopy16
- add r0, r5, #0
- add r0, #0x25
- ldrb r0, [r0]
- ldr r1, _0225763C ; =0x0225EC8C
- ldr r3, [r4, #4]
- lsl r7, r0, #4
- ldrh r2, [r1, r7]
- mov r1, #0x19
- lsl r1, r1, #0x16
- add r1, r1, r2
- ldr r2, _02257640 ; =0x0225EC8E
- ldr r0, [sp, #0x20]
- ldrh r2, [r2, r7]
- add r1, r3, r1
- bl MIi_CpuCopy16
- add r0, r5, #0
- add r0, #0x25
- ldrb r0, [r0]
- ldr r3, _02257644 ; =0x0225EC90
- ldr r1, [r4, #4]
- lsl r2, r0, #4
- ldr r0, _02257638 ; =0x0225EC8A
- ldrh r0, [r0, r2]
- add r0, r6, r0
- ldrh r6, [r3, r2]
- mov r3, #0x19
- lsl r3, r3, #0x16
- add r3, r3, r6
- add r1, r1, r3
- ldr r3, _02257648 ; =0x0225EC92
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- add r5, #0x25
- ldrb r0, [r5]
- ldr r4, [r4, #4]
- lsl r2, r0, #4
- ldr r0, _02257640 ; =0x0225EC8E
- ldrh r1, [r0, r2]
- ldr r0, [sp, #0x20]
- add r0, r0, r1
- ldr r1, _0225764C ; =0x0225EC94
- ldrh r3, [r1, r2]
- mov r1, #0x19
- lsl r1, r1, #0x16
- add r1, r1, r3
- ldr r3, _02257650 ; =0x0225EC96
- add r1, r4, r1
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- add r0, sp, #0x24
- bl FUN_02019178
- ldr r0, [sp, #0x18]
- bl FUN_02021A20
- ldr r0, [sp, #0x1c]
- bl FUN_02021A20
- add sp, #0x34
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02257630: .word 0x000E020F
-_02257634: .word 0x0225EC88
-_02257638: .word 0x0225EC8A
-_0225763C: .word 0x0225EC8C
-_02257640: .word 0x0225EC8E
-_02257644: .word 0x0225EC90
-_02257648: .word 0x0225EC92
-_0225764C: .word 0x0225EC94
-_02257650: .word 0x0225EC96
-
- thumb_func_start MOD11_02257654
-MOD11_02257654: ; 0x02257654
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- str r0, [sp]
- add r0, #0x49
- ldrb r0, [r0]
- cmp r0, #0
- bne _02257666
- mov r0, #0x3e
- b _02257670
-_02257666:
- cmp r0, #1
- bne _0225766E
- mov r0, #0x3c
- b _02257670
-_0225766E:
- mov r0, #0x40
-_02257670:
- bl MOD11_02257F60
- add r4, r0, #0
- mov r0, #5
- mov r1, #0x80
- bl AllocFromHeap
- add r7, r0, #0
- ldr r0, [sp]
- ldr r0, [r0, #4]
- ldr r0, [r0]
- bl FUN_02020350
- str r0, [sp, #4]
- ldr r0, [sp]
- ldr r1, _0225774C ; =0x0225EAB8
- add r0, #0x25
- ldrb r0, [r0]
- lsl r2, r0, #3
- ldrh r3, [r1, r2]
- mov r1, #0x19
- lsl r1, r1, #0x16
- ldr r0, [sp, #4]
- add r1, r1, r3
- ldr r3, _02257750 ; =0x0225EABA
- ldr r0, [r0, #4]
- ldrh r2, [r3, r2]
- add r0, r0, r1
- add r1, r7, #0
- bl MIi_CpuCopy16
- ldr r0, [sp]
- ldr r1, _02257754 ; =0x0225EABC
- add r0, #0x25
- ldrb r0, [r0]
- lsl r2, r0, #3
- ldrh r3, [r1, r2]
- mov r1, #0x19
- ldr r0, [sp, #4]
- lsl r1, r1, #0x16
- add r1, r1, r3
- ldr r3, _02257758 ; =0x0225EABE
- ldr r0, [r0, #4]
- ldrh r2, [r3, r2]
- add r0, r0, r1
- add r1, r7, #0
- add r1, #0x40
- bl MIi_CpuCopy16
- mov r2, #0
- add r1, r2, #0
-_022576D6:
- mov r0, #0
- add r3, r7, r1
-_022576DA:
- ldrb r5, [r4, r2]
- add r6, r4, r2
- add r0, r0, #1
- strb r5, [r3, #0x10]
- ldrb r6, [r6, #0x10]
- add r5, r3, #0
- add r5, #0x40
- strb r6, [r5]
- add r2, r2, #1
- add r3, r3, #1
- cmp r0, #0x10
- blt _022576DA
- add r1, #0x20
- add r2, #0x10
- cmp r1, #0x40
- blt _022576D6
- ldr r0, [sp]
- ldr r1, [sp, #4]
- add r0, #0x25
- ldrb r0, [r0]
- ldr r3, _0225774C ; =0x0225EAB8
- ldr r1, [r1, #4]
- lsl r2, r0, #3
- ldrh r4, [r3, r2]
- mov r3, #0x19
- lsl r3, r3, #0x16
- add r3, r3, r4
- add r1, r1, r3
- ldr r3, _02257750 ; =0x0225EABA
- add r0, r7, #0
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- ldr r0, [sp]
- ldr r3, _02257754 ; =0x0225EABC
- add r0, #0x25
- str r0, [sp]
- ldrb r0, [r0]
- ldr r1, [sp, #4]
- lsl r2, r0, #3
- ldrh r4, [r3, r2]
- mov r3, #0x19
- lsl r3, r3, #0x16
- add r0, r7, #0
- ldr r1, [r1, #4]
- add r3, r3, r4
- add r1, r1, r3
- ldr r3, _02257758 ; =0x0225EABE
- add r0, #0x40
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- add r0, r7, #0
- bl FreeToHeap
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225774C: .word 0x0225EAB8
-_02257750: .word 0x0225EABA
-_02257754: .word 0x0225EABC
-_02257758: .word 0x0225EABE
-
- thumb_func_start MOD11_0225775C
-MOD11_0225775C: ; 0x0225775C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- str r0, [sp, #4]
- mov r0, #5
- mov r1, #0x60
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #5
- mov r1, #0xc0
- bl AllocFromHeap
- add r7, r0, #0
- add r0, r4, #0
- mov r1, #0xff
- mov r2, #0x60
- bl MI_CpuFill8
- ldr r0, [sp, #4]
- ldr r0, [r0, #0xc]
- bl MOD11_022300BC
- ldr r1, [sp, #4]
- str r4, [sp]
- add r1, #0x48
- ldrb r1, [r1]
- mov r2, #3
- mov r3, #0
- bl FUN_0200BAAC
- ldr r0, [sp, #4]
- ldr r0, [r0, #4]
- ldr r0, [r0]
- bl FUN_02020350
- str r0, [sp, #8]
- ldr r0, [sp, #4]
- ldr r1, _0225786C ; =0x0225EA28
- add r0, #0x25
- ldrb r0, [r0]
- lsl r2, r0, #3
- ldrh r3, [r1, r2]
- mov r1, #0x19
- lsl r1, r1, #0x16
- ldr r0, [sp, #8]
- add r1, r1, r3
- ldr r3, _02257870 ; =0x0225EA2A
- ldr r0, [r0, #4]
- ldrh r2, [r3, r2]
- add r0, r0, r1
- add r1, r7, #0
- bl MIi_CpuCopy16
- ldr r0, [sp, #4]
- ldr r1, _02257874 ; =0x0225EA2C
- add r0, #0x25
- ldrb r0, [r0]
- lsl r2, r0, #3
- ldrh r3, [r1, r2]
- mov r1, #0x19
- ldr r0, [sp, #8]
- lsl r1, r1, #0x16
- add r1, r1, r3
- ldr r3, _02257878 ; =0x0225EA2E
- ldr r0, [r0, #4]
- ldrh r2, [r3, r2]
- add r0, r0, r1
- add r1, r7, #0
- add r1, #0x60
- bl MIi_CpuCopy16
- mov r2, #0
- add r1, r2, #0
-_022577EE:
- mov r0, #0
- add r3, r7, r1
-_022577F2:
- ldrb r5, [r4, r2]
- add r6, r4, r2
- add r0, r0, #1
- strb r5, [r3, #0x10]
- ldrb r6, [r6, #0x10]
- add r5, r3, #0
- add r5, #0x60
- strb r6, [r5]
- add r2, r2, #1
- add r3, r3, #1
- cmp r0, #0x10
- blt _022577F2
- add r1, #0x20
- add r2, #0x10
- cmp r1, #0x60
- blt _022577EE
- ldr r0, [sp, #4]
- ldr r1, [sp, #8]
- add r0, #0x25
- ldrb r0, [r0]
- ldr r3, _0225786C ; =0x0225EA28
- ldr r1, [r1, #4]
- lsl r2, r0, #3
- ldrh r5, [r3, r2]
- mov r3, #0x19
- lsl r3, r3, #0x16
- add r3, r3, r5
- add r1, r1, r3
- ldr r3, _02257870 ; =0x0225EA2A
- add r0, r7, #0
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- ldr r0, [sp, #4]
- ldr r3, _02257874 ; =0x0225EA2C
- add r0, #0x25
- str r0, [sp, #4]
- ldrb r0, [r0]
- ldr r1, [sp, #8]
- lsl r2, r0, #3
- ldrh r5, [r3, r2]
- mov r3, #0x19
- lsl r3, r3, #0x16
- add r0, r7, #0
- ldr r1, [r1, #4]
- add r3, r3, r5
- add r1, r1, r3
- ldr r3, _02257878 ; =0x0225EA2E
- add r0, #0x60
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- add r0, r4, #0
- bl FreeToHeap
- add r0, r7, #0
- bl FreeToHeap
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_0225786C: .word 0x0225EA28
-_02257870: .word 0x0225EA2A
-_02257874: .word 0x0225EA2C
-_02257878: .word 0x0225EA2E
-
- thumb_func_start MOD11_0225787C
-MOD11_0225787C: ; 0x0225787C
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r6, r1, #0
- mov r0, #5
- mov r1, #0x60
- bl AllocFromHeap
- mov r1, #0xff
- mov r2, #0x60
- add r4, r0, #0
- bl MI_CpuFill8
- ldr r0, [r5, #0xc]
- bl MOD11_022300B4
- str r4, [sp]
- add r1, r6, #0
- mov r2, #3
- mov r3, #1
- bl FUN_0200BAAC
- ldr r0, [r5, #4]
- ldr r0, [r0]
- bl FUN_02020350
- add r6, r0, #0
- add r0, r5, #0
- add r0, #0x25
- ldrb r0, [r0]
- mov r7, #0x19
- ldr r3, _022578F8 ; =0x0225EA58
- lsl r2, r0, #3
- ldrh r3, [r3, r2]
- lsl r7, r7, #0x16
- ldr r1, [r6, #4]
- add r3, r7, r3
- add r1, r1, r3
- ldr r3, _022578FC ; =0x0225EA5A
- add r0, r4, #0
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- add r5, #0x25
- ldrb r0, [r5]
- ldr r3, _02257900 ; =0x0225EA5C
- ldr r1, [r6, #4]
- lsl r2, r0, #3
- ldrh r3, [r3, r2]
- ldr r0, _022578FC ; =0x0225EA5A
- add r3, r7, r3
- add r1, r1, r3
- ldrh r0, [r0, r2]
- ldr r3, _02257904 ; =0x0225EA5E
- ldrh r2, [r3, r2]
- add r0, r4, r0
- bl MIi_CpuCopy16
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022578F8: .word 0x0225EA58
-_022578FC: .word 0x0225EA5A
-_02257900: .word 0x0225EA5C
-_02257904: .word 0x0225EA5E
-
- thumb_func_start MOD11_02257908
-MOD11_02257908: ; 0x02257908
- push {r3, r4, r5, lr}
- add r5, r0, #0
- mov r0, #5
- mov r1, #0x60
- bl AllocFromHeap
- mov r1, #0xff
- mov r2, #0x60
- add r4, r0, #0
- bl MI_CpuFill8
- ldr r0, [r5, #0xc]
- bl MOD11_022300B4
- str r4, [sp]
- ldr r1, [r5, #0x2c]
- mov r2, #3
- mov r3, #0
- bl FUN_0200BAAC
- ldr r0, [r5, #4]
- ldr r0, [r0]
- bl FUN_02020350
- add r1, r0, #0
- add r5, #0x25
- ldrb r0, [r5]
- ldr r3, _02257960 ; =0x0225E9F8
- ldr r1, [r1, #4]
- lsl r2, r0, #2
- ldrh r5, [r3, r2]
- mov r3, #0x19
- lsl r3, r3, #0x16
- add r3, r5, r3
- add r1, r1, r3
- ldr r3, _02257964 ; =0x0225E9FA
- add r0, r4, #0
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02257960: .word 0x0225E9F8
-_02257964: .word 0x0225E9FA
-
- thumb_func_start MOD11_02257968
-MOD11_02257968: ; 0x02257968
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r0, #0x4b
- ldrb r0, [r0]
- cmp r0, #1
- bne _0225797C
- mov r0, #0x3b
- bl MOD11_02257F60
- b _02257982
-_0225797C:
- mov r0, #0x38
- bl MOD11_02257F60
-_02257982:
- add r4, r0, #0
- ldr r0, [r5, #4]
- ldr r0, [r0]
- bl FUN_02020350
- add r5, #0x25
- add r1, r0, #0
- ldrb r0, [r5]
- lsl r2, r0, #2
- add r0, r4, #0
- ldr r4, [r1, #4]
- ldr r1, _022579B0 ; =0x0225E9C8
- ldrh r3, [r1, r2]
- mov r1, #0x19
- lsl r1, r1, #0x16
- add r1, r3, r1
- ldr r3, _022579B4 ; =0x0225E9CA
- add r1, r4, r1
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- pop {r3, r4, r5, pc}
- nop
-_022579B0: .word 0x0225E9C8
-_022579B4: .word 0x0225E9CA
-
- thumb_func_start MOD11_022579B8
-MOD11_022579B8: ; 0x022579B8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r0, r1, #0
- bl MOD11_02257F60
- add r4, r0, #0
- ldr r0, [r5, #4]
- ldr r0, [r0]
- bl FUN_02020350
- add r5, #0x25
- add r1, r0, #0
- ldrb r0, [r5]
- lsl r2, r0, #2
- add r0, r4, #0
- ldr r4, [r1, #4]
- ldr r1, _022579F0 ; =0x0225E998
- ldrh r3, [r1, r2]
- mov r1, #0x19
- lsl r1, r1, #0x16
- add r1, r3, r1
- ldr r3, _022579F4 ; =0x0225E99A
- add r1, r4, r1
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- pop {r3, r4, r5, pc}
- nop
-_022579F0: .word 0x0225E998
-_022579F4: .word 0x0225E99A
-
- thumb_func_start MOD11_022579F8
-MOD11_022579F8: ; 0x022579F8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- add r4, r0, #0
- ldr r0, [r4, #0xc]
- add r5, r1, #0
- bl MOD11_0222FF68
- add r6, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD11_022300C4
- mov r1, #1
- lsl r1, r1, #0xa
- add r2, r5, #0
- tst r2, r1
- beq _02257A20
- sub r1, #0x4a
- bl FUN_0200A914
- b _02257A26
-_02257A20:
- add r1, #0xc4
- bl FUN_0200A914
-_02257A26:
- add r7, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0xf
- str r0, [sp, #4]
- add r0, r6, #0
- add r1, sp, #0x18
- mov r2, #0xd
- mov r3, #2
- bl FUN_020190EC
- mov r1, #0
- str r1, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- ldr r0, _02257AD0 ; =0x000E020F
- add r2, r7, #0
- str r0, [sp, #8]
- str r1, [sp, #0xc]
- str r1, [sp, #0x10]
- str r1, [sp, #0x14]
- add r0, sp, #0x18
- add r3, r1, #0
- bl FUN_0201BE3C
- ldr r0, [r4, #4]
- ldr r5, [sp, #0x24]
- ldr r0, [r0]
- bl FUN_02020350
- add r4, r0, #0
- mov r2, #0x1a
- mov r6, #0x19
- lsl r2, r2, #4
- lsl r6, r6, #0x16
- add r2, #0xa0
- ldr r1, [r4, #4]
- add r2, r6, r2
- add r1, r1, r2
- add r0, r5, #0
- mov r2, #0xc0
- bl MIi_CpuCopy16
- mov r2, #0xd
- mov r0, #0x1a
- lsl r2, r2, #6
- lsl r0, r0, #4
- ldr r1, [r4, #4]
- add r2, r6, r2
- add r1, r1, r2
- add r0, r5, r0
- mov r2, #0xc0
- bl MIi_CpuCopy16
- mov r2, #0xa
- lsl r2, r2, #8
- add r0, r5, #0
- ldr r1, [r4, #4]
- add r2, r6, r2
- add r1, r1, r2
- add r0, #0xc0
- mov r2, #0xe0
- bl MIi_CpuCopy16
- mov r0, #0x1a
- mov r1, #0xb
- lsl r0, r0, #4
- lsl r1, r1, #8
- add r0, r5, r0
- ldr r2, [r4, #4]
- add r1, r6, r1
- add r1, r2, r1
- add r0, #0xc0
- mov r2, #0xe0
- bl MIi_CpuCopy16
- add r0, sp, #0x18
- bl FUN_02019178
- add r0, r7, #0
- bl FUN_02021A20
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02257AD0: .word 0x000E020F
-
- thumb_func_start MOD11_02257AD4
-MOD11_02257AD4: ; 0x02257AD4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x34
- add r4, r0, #0
- ldr r0, [r4, #0xc]
- add r5, r1, #0
- bl MOD11_0222FF68
- str r0, [sp, #0x1c]
- ldr r0, [r4, #0xc]
- bl MOD11_022300C4
- str r0, [sp, #0x20]
- ldr r0, [r4, #0xc]
- bl MOD11_02230138
- add r7, r0, #0
- mov r0, #0x1e
- mov r1, #5
- bl FUN_020219F4
- mov r1, #1
- add r6, r0, #0
- lsl r1, r1, #0xa
- add r0, r5, #0
- tst r0, r1
- beq _02257B14
- ldr r0, [sp, #0x20]
- sub r1, #0x49
- bl FUN_0200A914
- str r0, [sp, #0x18]
- b _02257B1E
-_02257B14:
- ldr r0, [sp, #0x20]
- add r1, #0xc5
- bl FUN_0200A914
- str r0, [sp, #0x18]
-_02257B1E:
- mov r0, #1
- str r0, [sp]
- add r2, r4, #0
- str r0, [sp, #4]
- add r2, #0x27
- ldrb r2, [r2]
- add r0, r7, #0
- mov r1, #0
- mov r3, #2
- bl FUN_0200AD38
- ldr r2, [sp, #0x18]
- add r0, r7, #0
- add r1, r6, #0
- bl FUN_0200B7B8
- mov r0, #0
- str r0, [sp]
- mov r0, #0xf
- str r0, [sp, #4]
- ldr r0, [sp, #0x1c]
- add r1, sp, #0x24
- mov r2, #0xd
- mov r3, #2
- bl FUN_020190EC
- mov r1, #0
- str r1, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- ldr r0, _02257BE8 ; =0x000E020F
- add r2, r6, #0
- str r0, [sp, #8]
- str r1, [sp, #0xc]
- str r1, [sp, #0x10]
- str r1, [sp, #0x14]
- add r0, sp, #0x24
- add r3, r1, #0
- bl FUN_0201BE3C
- ldr r0, [r4, #4]
- ldr r5, [sp, #0x30]
- ldr r0, [r0]
- bl FUN_02020350
- add r4, r0, #0
- mov r7, #0x19
- mov r2, #0x11
- lsl r7, r7, #0x16
- lsl r2, r2, #6
- ldr r1, [r4, #4]
- add r2, r7, r2
- add r1, r1, r2
- add r0, r5, #0
- mov r2, #0xc0
- bl MIi_CpuCopy16
- mov r2, #0x15
- mov r0, #0x1a
- lsl r2, r2, #6
- lsl r0, r0, #4
- ldr r1, [r4, #4]
- add r2, r7, r2
- add r1, r1, r2
- add r0, r5, r0
- mov r2, #0xc0
- bl MIi_CpuCopy16
- mov r2, #3
- lsl r2, r2, #0xa
- add r0, r5, #0
- ldr r1, [r4, #4]
- add r2, r7, r2
- add r1, r1, r2
- add r0, #0xc0
- mov r2, #0xe0
- bl MIi_CpuCopy16
- mov r0, #0x1a
- mov r1, #0xd
- lsl r0, r0, #4
- lsl r1, r1, #8
- add r0, r5, r0
- ldr r2, [r4, #4]
- add r1, r7, r1
- add r1, r2, r1
- add r0, #0xc0
- mov r2, #0xe0
- bl MIi_CpuCopy16
- add r0, sp, #0x24
- bl FUN_02019178
- add r0, r6, #0
- bl FUN_02021A20
- ldr r0, [sp, #0x18]
- bl FUN_02021A20
- add sp, #0x34
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02257BE8: .word 0x000E020F
-
- thumb_func_start MOD11_02257BEC
-MOD11_02257BEC: ; 0x02257BEC
- push {r4, r5, r6, lr}
- sub sp, #8
- add r5, r0, #0
- add r4, r1, #0
- bne _02257C10
- mov r0, #6
- str r0, [sp]
- mov r0, #1
- str r0, [sp, #4]
- add r3, r5, #0
- ldr r0, [r5, #0x2c]
- ldr r1, [r5, #0x28]
- ldr r2, [r5, #0x30]
- add r3, #0x34
- bl MOD11_02257DE8
- add r6, r0, #0
- b _02257C48
-_02257C10:
- ldr r0, [r5, #0x38]
- ldr r1, [r5, #0x40]
- ldr r2, [r5, #0x3c]
- mov r3, #0xb
- bl MOD11_02257F20
- add r1, r0, #0
- bne _02257C22
- mov r1, #1
-_02257C22:
- ldr r6, [r5, #0x40]
- add r0, r6, #0
- bl _s32_div_f
- bl abs
- mov r1, #0xb
- lsl r0, r0, #0x10
- add r3, r5, #0
- str r1, [sp]
- lsr r0, r0, #0x10
- str r0, [sp, #4]
- ldr r0, [r5, #0x3c]
- ldr r1, [r5, #0x38]
- add r2, r6, #0
- add r3, #0x44
- bl MOD11_02257DE8
- add r6, r0, #0
-_02257C48:
- cmp r4, #0
- bne _02257C5A
- add r0, r5, #0
- add r0, #0x4f
- ldrb r0, [r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- cmp r0, #1
- beq _02257C64
-_02257C5A:
- lsl r1, r4, #0x18
- add r0, r5, #0
- lsr r1, r1, #0x18
- bl MOD11_02257C80
-_02257C64:
- mov r0, #0
- mvn r0, r0
- cmp r6, r0
- bne _02257C7A
- cmp r4, #0
- bne _02257C76
- mov r0, #0
- str r0, [r5, #0x34]
- b _02257C7A
-_02257C76:
- mov r0, #0
- str r0, [r5, #0x44]
-_02257C7A:
- add r0, r6, #0
- add sp, #8
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02257C80
-MOD11_02257C80: ; 0x02257C80
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r6, r0, #0
- ldr r0, [r6, #4]
- add r4, r1, #0
- ldr r0, [r0]
- bl FUN_02020350
- add r5, r0, #0
- cmp r4, #0
- beq _02257C9E
- cmp r4, #1
- beq _02257D50
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
-_02257C9E:
- add r0, sp, #0x10
- str r0, [sp]
- mov r0, #6
- str r0, [sp, #4]
- add r3, r6, #0
- ldr r0, [r6, #0x2c]
- ldr r1, [r6, #0x28]
- ldr r2, [r6, #0x30]
- add r3, #0x34
- bl MOD11_02257EA4
- mov r1, #0x30
- bl FUN_02079A24
- cmp r0, #1
- beq _02257CCE
- cmp r0, #2
- beq _02257CCA
- cmp r0, #3
- bne _02257CCE
- mov r0, #2
- b _02257CD0
-_02257CCA:
- mov r0, #0xb
- b _02257CD0
-_02257CCE:
- mov r0, #0x14
-_02257CD0:
- bl MOD11_02257F60
- str r0, [sp, #0xc]
- add r0, r6, #0
- add r0, #0x25
- ldrb r0, [r0]
- mov r4, #0
- lsl r1, r0, #3
- ldr r0, _02257DE0 ; =0x0225EA8A
- ldrh r0, [r0, r1]
- lsr r7, r0, #5
-_02257CE6:
- cmp r4, r7
- add r0, sp, #0x10
- bge _02257D16
- add r2, r6, #0
- add r2, #0x25
- ldrb r2, [r2]
- ldrb r0, [r0, r4]
- lsl r3, r2, #3
- ldr r2, _02257DE4 ; =0x0225EA88
- lsl r1, r0, #5
- ldrh r3, [r2, r3]
- ldr r0, [sp, #0xc]
- mov r2, #0x19
- lsl r2, r2, #0x16
- add r0, r0, r1
- add r3, r2, r3
- lsl r2, r4, #5
- ldr r1, [r5, #4]
- add r2, r3, r2
- add r1, r1, r2
- mov r2, #0x20
- bl MIi_CpuCopy16
- b _02257D42
-_02257D16:
- ldrb r0, [r0, r4]
- ldr r2, [r5, #4]
- lsl r1, r0, #5
- ldr r0, [sp, #0xc]
- add r0, r0, r1
- add r1, r6, #0
- add r1, #0x25
- ldrb r1, [r1]
- lsl r3, r1, #3
- ldr r1, _02257DE4 ; =0x0225EA88
- add r1, r1, r3
- ldrh r3, [r1, #4]
- mov r1, #0x19
- lsl r1, r1, #0x16
- add r1, r1, r3
- sub r3, r4, r7
- lsl r3, r3, #5
- add r1, r1, r3
- add r1, r2, r1
- mov r2, #0x20
- bl MIi_CpuCopy16
-_02257D42:
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #6
- blo _02257CE6
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
-_02257D50:
- add r0, sp, #0x10
- str r0, [sp]
- mov r0, #0xb
- str r0, [sp, #4]
- add r3, r6, #0
- ldr r0, [r6, #0x3c]
- ldr r1, [r6, #0x38]
- ldr r2, [r6, #0x40]
- add r3, #0x44
- bl MOD11_02257EA4
- add r6, #0x48
- ldrb r0, [r6]
- cmp r0, #0x64
- bne _02257D80
- mov r0, #0
- add r2, r0, #0
- add r1, sp, #0x10
-_02257D74:
- strb r2, [r1, r0]
- add r0, r0, #1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, #0xb
- blo _02257D74
-_02257D80:
- mov r0, #0x1d
- bl MOD11_02257F60
- add r6, r0, #0
- mov r1, #0x19
- mov r0, #0x1a
- lsl r1, r1, #0x16
- lsl r0, r0, #6
- add r0, r1, r0
- str r0, [sp, #8]
- mov r0, #0xe
- lsl r0, r0, #8
- mov r4, #0
- add r7, r1, r0
-_02257D9C:
- cmp r4, #4
- add r0, sp, #0x10
- bhs _02257DBA
- ldrb r0, [r0, r4]
- ldr r1, [sp, #8]
- lsl r2, r4, #5
- lsl r0, r0, #5
- add r1, r1, r2
- ldr r3, [r5, #4]
- add r0, r6, r0
- add r1, r3, r1
- mov r2, #0x20
- bl MIi_CpuCopy16
- b _02257DD0
-_02257DBA:
- ldrb r0, [r0, r4]
- sub r2, r4, #4
- lsl r2, r2, #5
- lsl r0, r0, #5
- ldr r1, [r5, #4]
- add r2, r7, r2
- add r1, r1, r2
- add r0, r6, r0
- mov r2, #0x20
- bl MIi_CpuCopy16
-_02257DD0:
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #0xb
- blo _02257D9C
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- nop
-_02257DE0: .word 0x0225EA8A
-_02257DE4: .word 0x0225EA88
-
- thumb_func_start MOD11_02257DE8
-MOD11_02257DE8: ; 0x02257DE8
- push {r4, r5, r6, lr}
- add r6, r2, #0
- add r2, sp, #0
- add r5, r3, #0
- ldrb r2, [r2, #0x10]
- mov r3, #2
- ldr r4, [r5]
- lsl r2, r2, #0x1b
- lsl r3, r3, #0x1e
- lsr r2, r2, #0x18
- cmp r4, r3
- bne _02257E0C
- cmp r0, r2
- bge _02257E0A
- lsl r3, r1, #8
- str r3, [r5]
- b _02257E0C
-_02257E0A:
- str r1, [r5]
-_02257E0C:
- sub r4, r1, r6
- bpl _02257E14
- mov r4, #0
- b _02257E1A
-_02257E14:
- cmp r4, r0
- ble _02257E1A
- add r4, r0, #0
-_02257E1A:
- cmp r0, r2
- bge _02257E32
- ldr r3, [r5]
- asr r1, r3, #8
- cmp r4, r1
- bne _02257E3E
- lsl r1, r3, #0x18
- lsr r1, r1, #0x18
- bne _02257E3E
- mov r0, #0
- mvn r0, r0
- pop {r4, r5, r6, pc}
-_02257E32:
- ldr r1, [r5]
- cmp r4, r1
- bne _02257E3E
- mov r0, #0
- mvn r0, r0
- pop {r4, r5, r6, pc}
-_02257E3E:
- cmp r0, r2
- bge _02257E7E
- lsl r0, r0, #8
- add r1, r2, #0
- bl _s32_div_f
- cmp r6, #0
- ldr r1, [r5]
- bge _02257E62
- add r0, r1, r0
- str r0, [r5]
- asr r0, r0, #8
- cmp r0, r4
- blt _02257EA2
- lsl r0, r4, #8
- str r0, [r5]
- add r0, r4, #0
- pop {r4, r5, r6, pc}
-_02257E62:
- sub r1, r1, r0
- str r1, [r5]
- asr r0, r1, #8
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- cmp r1, #0
- ble _02257E72
- add r0, r0, #1
-_02257E72:
- cmp r0, r4
- bgt _02257EA2
- lsl r0, r4, #8
- str r0, [r5]
- add r0, r4, #0
- pop {r4, r5, r6, pc}
-_02257E7E:
- cmp r6, #0
- ldr r1, [r5]
- add r0, sp, #0
- bge _02257E94
- ldrh r0, [r0, #0x14]
- add r0, r1, r0
- str r0, [r5]
- cmp r0, r4
- ble _02257EA0
- str r4, [r5]
- b _02257EA0
-_02257E94:
- ldrh r0, [r0, #0x14]
- sub r0, r1, r0
- str r0, [r5]
- cmp r0, r4
- bge _02257EA0
- str r4, [r5]
-_02257EA0:
- ldr r0, [r5]
-_02257EA2:
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02257EA4
-MOD11_02257EA4: ; 0x02257EA4
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- ldr r5, [sp, #0x18]
- sub r7, r1, r2
- bpl _02257EB2
- mov r7, #0
- b _02257EB8
-_02257EB2:
- cmp r7, r6
- ble _02257EB8
- add r7, r6, #0
-_02257EB8:
- add r0, sp, #8
- ldrb r4, [r0, #0x14]
- mov r1, #0
- lsl r2, r4, #3
- cmp r4, #0
- ble _02257ECE
- add r0, r1, #0
-_02257EC6:
- strb r0, [r5, r1]
- add r1, r1, #1
- cmp r1, r4
- blt _02257EC6
-_02257ECE:
- cmp r6, r2
- ldr r1, [r3]
- bhs _02257EE2
- add r0, r1, #0
- mul r0, r2
- add r1, r6, #0
- bl _u32_div_f
- lsr r0, r0, #8
- b _02257EEC
-_02257EE2:
- add r0, r1, #0
- mul r0, r2
- add r1, r6, #0
- bl _u32_div_f
-_02257EEC:
- add r2, r0, #0
- cmp r0, #0
- bne _02257EFC
- cmp r7, #0
- ble _02257EFC
- mov r2, #1
- strb r2, [r5]
- b _02257F18
-_02257EFC:
- mov r3, #0
- cmp r4, #0
- ble _02257F18
- mov r1, #8
-_02257F04:
- cmp r0, #8
- blo _02257F0E
- strb r1, [r5, r3]
- sub r0, #8
- b _02257F12
-_02257F0E:
- strb r0, [r5, r3]
- b _02257F18
-_02257F12:
- add r3, r3, #1
- cmp r3, r4
- blt _02257F04
-_02257F18:
- lsl r0, r2, #0x18
- lsr r0, r0, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02257F20
-MOD11_02257F20: ; 0x02257F20
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- lsl r0, r3, #0x1b
- add r5, r2, #0
- lsr r6, r0, #0x18
- sub r4, r7, r1
- bpl _02257F32
- mov r4, #0
- b _02257F38
-_02257F32:
- cmp r4, r5
- ble _02257F38
- add r4, r5, #0
-_02257F38:
- add r0, r7, #0
- mul r0, r6
- add r1, r5, #0
- bl _s32_div_f
- add r7, r0, #0
- add r0, r4, #0
- mul r0, r6
- add r1, r5, #0
- bl _s32_div_f
- lsl r1, r7, #0x18
- lsl r0, r0, #0x18
- asr r1, r1, #0x18
- asr r0, r0, #0x18
- sub r0, r1, r0
- bl abs
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02257F60
-MOD11_02257F60: ; 0x02257F60
- ldr r1, _02257F68 ; =0x0225ECE8
- lsl r0, r0, #5
- add r0, r1, r0
- bx lr
- .align 2, 0
-_02257F68: .word 0x0225ECE8
-
- thumb_func_start MOD11_02257F6C
-MOD11_02257F6C: ; 0x02257F6C
- push {r3, lr}
- cmp r0, #5
- bhi _02257FB8
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02257F7E: ; jump table
- .short _02257F8A - _02257F7E - 2 ; case 0
- .short _02257FA4 - _02257F7E - 2 ; case 1
- .short _02257FA8 - _02257F7E - 2 ; case 2
- .short _02257FAC - _02257F7E - 2 ; case 3
- .short _02257FB0 - _02257F7E - 2 ; case 4
- .short _02257FB4 - _02257F7E - 2 ; case 5
-_02257F8A:
- mov r0, #2
- lsl r0, r0, #8
- tst r0, r1
- beq _02257F96
- mov r0, #7
- pop {r3, pc}
-_02257F96:
- mov r0, #0x20
- tst r0, r1
- beq _02257FA0
- mov r0, #6
- pop {r3, pc}
-_02257FA0:
- mov r0, #0
- pop {r3, pc}
-_02257FA4:
- mov r0, #1
- pop {r3, pc}
-_02257FA8:
- mov r0, #2
- pop {r3, pc}
-_02257FAC:
- mov r0, #3
- pop {r3, pc}
-_02257FB0:
- mov r0, #4
- pop {r3, pc}
-_02257FB4:
- mov r0, #5
- pop {r3, pc}
-_02257FB8:
- bl ErrorHandling
- mov r0, #0
- pop {r3, pc}
-
- thumb_func_start MOD11_02257FC0
-MOD11_02257FC0: ; 0x02257FC0
- push {r3, lr}
- cmp r0, #7
- bhi _02257FFE
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02257FD2: ; jump table
- .short _02257FE2 - _02257FD2 - 2 ; case 0
- .short _02257FE6 - _02257FD2 - 2 ; case 1
- .short _02257FEA - _02257FD2 - 2 ; case 2
- .short _02257FEE - _02257FD2 - 2 ; case 3
- .short _02257FF2 - _02257FD2 - 2 ; case 4
- .short _02257FF6 - _02257FD2 - 2 ; case 5
- .short _02257FFA - _02257FD2 - 2 ; case 6
- .short _02257FFA - _02257FD2 - 2 ; case 7
-_02257FE2:
- ldr r0, _02258008 ; =0x0225EBEC
- pop {r3, pc}
-_02257FE6:
- ldr r0, _0225800C ; =0x0225EC20
- pop {r3, pc}
-_02257FEA:
- ldr r0, _02258010 ; =0x0225EAE8
- pop {r3, pc}
-_02257FEE:
- ldr r0, _02258014 ; =0x0225EB1C
- pop {r3, pc}
-_02257FF2:
- ldr r0, _02258018 ; =0x0225EB84
- pop {r3, pc}
-_02257FF6:
- ldr r0, _0225801C ; =0x0225EC54
- pop {r3, pc}
-_02257FFA:
- ldr r0, _02258020 ; =0x0225EBB8
- pop {r3, pc}
-_02257FFE:
- bl ErrorHandling
- mov r0, #0
- pop {r3, pc}
- nop
-_02258008: .word 0x0225EBEC
-_0225800C: .word 0x0225EC20
-_02258010: .word 0x0225EAE8
-_02258014: .word 0x0225EB1C
-_02258018: .word 0x0225EB84
-_0225801C: .word 0x0225EC54
-_02258020: .word 0x0225EBB8
-
- thumb_func_start MOD11_02258024
-MOD11_02258024: ; 0x02258024
- push {r3, lr}
- cmp r0, #7
- bhi _0225804E
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02258036: ; jump table
- .short _02258046 - _02258036 - 2 ; case 0
- .short _0225804A - _02258036 - 2 ; case 1
- .short _02258046 - _02258036 - 2 ; case 2
- .short _0225804A - _02258036 - 2 ; case 3
- .short _02258046 - _02258036 - 2 ; case 4
- .short _0225804A - _02258036 - 2 ; case 5
- .short _02258046 - _02258036 - 2 ; case 6
- .short _02258046 - _02258036 - 2 ; case 7
-_02258046:
- ldr r0, _02258058 ; =0x0225EB50
- pop {r3, pc}
-_0225804A:
- mov r0, #0
- pop {r3, pc}
-_0225804E:
- bl ErrorHandling
- mov r0, #0
- pop {r3, pc}
- nop
-_02258058: .word 0x0225EB50
-
- thumb_func_start MOD11_0225805C
-MOD11_0225805C: ; 0x0225805C
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r6, r1, #0
- mov r0, #0
- strb r0, [r6]
- mov r0, #5
- mov r1, #0xc
- bl AllocFromHeap
- mov r1, #0
- mov r2, #0xc
- add r4, r0, #0
- bl MI_CpuFill8
- mov r2, #0xfa
- str r5, [r4]
- ldr r0, _0225808C ; =MOD11_02258090
- add r1, r4, #0
- lsl r2, r2, #2
- str r6, [r4, #4]
- bl FUN_0200CA44
- pop {r4, r5, r6, pc}
- nop
-_0225808C: .word MOD11_02258090
-
- thumb_func_start MOD11_02258090
-MOD11_02258090: ; 0x02258090
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r4, r1, #0
- add r7, r0, #0
- ldr r0, [r4]
- ldr r0, [r0, #0xc]
- bl MOD11_02230080
- add r5, r0, #0
- ldr r0, [r4]
- ldr r0, [r0, #0xc]
- bl MOD11_022300CC
- add r6, r0, #0
- ldrb r0, [r4, #8]
- cmp r0, #0
- beq _022580BC
- cmp r0, #1
- beq _022580DA
- cmp r0, #2
- beq _02258112
- b _0225814A
-_022580BC:
- ldr r1, _02258174 ; =0x00004E27
- add r0, r5, #0
- mov r2, #1
- bl FUN_0200C344
- add r5, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- ldr r0, [r0, #4]
- bl FUN_0200C66C
- strb r5, [r4, #9]
- ldrb r0, [r4, #8]
- add r0, r0, #1
- strb r0, [r4, #8]
-_022580DA:
- mov r0, #0xa
- ldrsb r1, [r4, r0]
- add r1, r1, #4
- strb r1, [r4, #0xa]
- ldrsb r0, [r4, r0]
- cmp r0, #0x10
- blt _022580F2
- mov r0, #0x10
- strb r0, [r4, #0xa]
- ldrb r0, [r4, #8]
- add r0, r0, #1
- strb r0, [r4, #8]
-_022580F2:
- ldrb r0, [r4, #0xa]
- mov r1, #2
- mov r3, #1
- str r0, [sp]
- ldr r0, _02258178 ; =0x000073A5
- str r0, [sp, #4]
- ldrb r2, [r4, #9]
- add r0, r6, #0
- lsl r2, r2, #4
- add r2, #0xf
- lsl r2, r2, #0x10
- lsr r2, r2, #0x10
- bl FUN_020039E8
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_02258112:
- mov r0, #0xa
- ldrsb r1, [r4, r0]
- sub r1, r1, #4
- strb r1, [r4, #0xa]
- ldrsb r0, [r4, r0]
- cmp r0, #0
- bgt _0225812A
- mov r0, #0
- strb r0, [r4, #0xa]
- ldrb r0, [r4, #8]
- add r0, r0, #1
- strb r0, [r4, #8]
-_0225812A:
- ldrb r0, [r4, #0xa]
- mov r1, #2
- mov r3, #1
- str r0, [sp]
- ldr r0, _02258178 ; =0x000073A5
- str r0, [sp, #4]
- ldrb r2, [r4, #9]
- add r0, r6, #0
- lsl r2, r2, #4
- add r2, #0xf
- lsl r2, r2, #0x10
- lsr r2, r2, #0x10
- bl FUN_020039E8
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_0225814A:
- ldr r1, _0225817C ; =0x00004E26
- add r0, r5, #0
- mov r2, #1
- bl FUN_0200C344
- add r1, r0, #0
- ldr r0, [r4]
- ldr r0, [r0, #4]
- bl FUN_0200C66C
- ldr r0, [r4, #4]
- mov r1, #1
- strb r1, [r0]
- add r0, r4, #0
- bl FreeToHeap
- add r0, r7, #0
- bl FUN_0200CAB4
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02258174: .word 0x00004E27
-_02258178: .word 0x000073A5
-_0225817C: .word 0x00004E26
-
- thumb_func_start MOD11_02258180
-MOD11_02258180: ; 0x02258180
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_02258184
-MOD11_02258184: ; 0x02258184
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_02258188
-MOD11_02258188: ; 0x02258188
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x50]
- cmp r0, #0
- bne _022581A6
- add r0, r4, #0
- mov r1, #0
- add r0, #0x54
- strh r1, [r0]
- ldr r0, _022581A8 ; =MOD11_022581D4
- ldr r2, _022581AC ; =0x000003F2
- add r1, r4, #0
- bl FUN_0200CA44
- str r0, [r4, #0x50]
-_022581A6:
- pop {r4, pc}
- .align 2, 0
-_022581A8: .word MOD11_022581D4
-_022581AC: .word 0x000003F2
-
- thumb_func_start MOD11_022581B0
-MOD11_022581B0: ; 0x022581B0
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x50]
- cmp r0, #0
- beq _022581C2
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #0x50]
-_022581C2:
- add r0, r4, #0
- mov r1, #0
- add r0, #0x54
- strh r1, [r0]
- add r0, r4, #0
- add r2, r1, #0
- bl MOD11_022572C8
- pop {r4, pc}
-
- thumb_func_start MOD11_022581D4
-MOD11_022581D4: ; 0x022581D4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r1, #0x54
- ldrh r2, [r1]
- add r1, r4, #0
- add r1, #0x54
- add r2, #0x14
- strh r2, [r1]
- add r1, r4, #0
- add r1, #0x54
- ldrh r2, [r1]
- mov r1, #0x5a
- add r0, r4, #0
- lsl r1, r1, #2
- add r0, #0x54
- cmp r2, r1
- blo _022581FC
- ldrh r2, [r0]
- sub r1, r2, r1
- strh r1, [r0]
-_022581FC:
- add r0, r4, #0
- add r0, #0x54
- ldrh r0, [r0]
- bl FUN_0201B93C
- mov r2, #6
- asr r1, r0, #0x1f
- lsl r2, r2, #0xa
- mov r3, #0
- bl _ll_mul
- mov r2, #2
- add r3, r0, #0
- add r5, r1, #0
- mov r1, #0
- lsl r2, r2, #0xa
- add r0, r4, #0
- add r3, r3, r2
- adc r5, r1
- lsl r2, r5, #0x14
- lsr r3, r3, #0xc
- orr r3, r2
- asr r2, r3, #0xb
- lsr r2, r2, #0x14
- add r2, r3, r2
- asr r2, r2, #0xc
- bl MOD11_022572C8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02258238
-MOD11_02258238: ; 0x02258238
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r0, #0
- ldr r0, [r5, #4]
- bl MOD11_02230078
- str r0, [sp, #0x20]
- ldr r0, [r5, #4]
- bl MOD11_02230080
- add r7, r0, #0
- ldr r0, [r5, #4]
- bl MOD11_02230C68
- add r6, r0, #0
- ldrb r0, [r5, #8]
- cmp r0, #0
- ldrb r0, [r5, #9]
- bne _02258274
- lsl r1, r0, #1
- ldr r0, _02258320 ; =0x0225F5C0
- ldrh r3, [r0, r1]
- ldr r0, _02258324 ; =0x00004E2D
- mov r1, #0x58
- str r1, [sp, #0x1c]
- add r4, r0, #0
- mov r1, #0x59
- sub r4, #8
- str r1, [sp, #0x18]
- b _02258288
-_02258274:
- lsl r1, r0, #1
- ldr r0, _02258328 ; =0x0225F5A8
- ldrh r3, [r0, r1]
- ldr r0, _0225832C ; =0x00004E2E
- mov r1, #0x5b
- str r1, [sp, #0x1c]
- add r4, r0, #0
- mov r1, #0x5c
- sub r4, #8
- str r1, [sp, #0x18]
-_02258288:
- mov r1, #1
- str r1, [sp]
- str r1, [sp, #4]
- str r0, [sp, #8]
- ldr r0, [sp, #0x20]
- add r1, r7, #0
- mov r2, #0x1b
- bl FUN_0200C00C
- ldr r0, [r5, #4]
- bl MOD11_022300CC
- mov r1, #0x1b
- str r1, [sp]
- ldrb r1, [r5, #9]
- mov r2, #6
- add r3, r1, #0
- mul r3, r2
- ldr r2, _02258330 ; =0x0225F5D8
- lsl r1, r6, #1
- add r2, r2, r3
- ldrh r1, [r1, r2]
- ldr r2, [sp, #0x20]
- add r3, r7, #0
- str r1, [sp, #4]
- mov r1, #0
- str r1, [sp, #8]
- mov r1, #1
- str r1, [sp, #0xc]
- str r1, [sp, #0x10]
- ldr r1, _02258334 ; =0x00004E29
- str r1, [sp, #0x14]
- mov r1, #2
- bl FUN_0200C0DC
- ldr r0, [r5, #4]
- bl MOD11_022300CC
- mov r1, #0
- str r1, [sp]
- mov r1, #0x20
- str r1, [sp, #4]
- mov r1, #0x70
- str r1, [sp, #8]
- ldrb r2, [r5, #9]
- mov r3, #6
- lsl r5, r6, #1
- mul r3, r2
- ldr r2, _02258330 ; =0x0225F5D8
- mov r1, #0x1b
- add r2, r2, r3
- ldrh r2, [r5, r2]
- mov r3, #5
- bl FUN_020030E8
- mov r0, #1
- str r0, [sp]
- ldr r0, [sp, #0x20]
- ldr r3, [sp, #0x1c]
- add r1, r7, #0
- mov r2, #0x1b
- str r4, [sp, #4]
- bl FUN_0200C124
- mov r0, #1
- str r0, [sp]
- ldr r0, [sp, #0x20]
- ldr r3, [sp, #0x18]
- add r1, r7, #0
- mov r2, #0x1b
- str r4, [sp, #4]
- bl FUN_0200C13C
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- nop
-_02258320: .word 0x0225F5C0
-_02258324: .word 0x00004E2D
-_02258328: .word 0x0225F5A8
-_0225832C: .word 0x00004E2E
-_02258330: .word 0x0225F5D8
-_02258334: .word 0x00004E29
-
- thumb_func_start MOD11_02258338
-MOD11_02258338: ; 0x02258338
- push {r3, r4, r5, lr}
- add r4, r0, #0
- ldr r0, [r4, #4]
- bl MOD11_02230078
- add r5, r0, #0
- ldr r0, [r4, #4]
- bl MOD11_02230080
- add r1, r0, #0
- add r0, r5, #0
- ldrb r3, [r4, #8]
- mov r2, #0x34
- ldr r5, _02258368 ; =0x0225F61C
- mul r2, r3
- add r2, r5, r2
- bl FUN_0200C154
- str r0, [r4]
- ldr r0, [r0]
- bl FUN_0200C59C
- pop {r3, r4, r5, pc}
- nop
-_02258368: .word 0x0225F61C
-
- thumb_func_start MOD11_0225836C
-MOD11_0225836C: ; 0x0225836C
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4]
- cmp r0, #0
- beq _0225837E
- bl FUN_0200C3DC
- mov r0, #0
- str r0, [r4]
-_0225837E:
- pop {r4, pc}
-
- thumb_func_start MOD11_02258380
-MOD11_02258380: ; 0x02258380
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #4]
- bl MOD11_02230080
- add r4, r0, #0
- ldrb r0, [r5, #8]
- cmp r0, #0
- bne _02258396
- ldr r1, _022583BC ; =0x00004E2D
- b _02258398
-_02258396:
- ldr r1, _022583C0 ; =0x00004E2E
-_02258398:
- add r5, r1, #0
- add r0, r4, #0
- sub r5, #8
- bl FUN_0200C358
- ldr r1, _022583C4 ; =0x00004E29
- add r0, r4, #0
- bl FUN_0200C368
- add r0, r4, #0
- add r1, r5, #0
- bl FUN_0200C378
- add r0, r4, #0
- add r1, r5, #0
- bl FUN_0200C388
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022583BC: .word 0x00004E2D
-_022583C0: .word 0x00004E2E
-_022583C4: .word 0x00004E29
-
- thumb_func_start MOD11_022583C8
-MOD11_022583C8: ; 0x022583C8
- push {r3, lr}
- ldr r0, [r0]
- cmp r0, #0
- beq _022583D4
- bl FUN_0200C644
-_022583D4:
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022583D8
-MOD11_022583D8: ; 0x022583D8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r4, r1, #0
- add r6, r2, #0
- mov r0, #0
- add r1, r5, #0
- mov r2, #0x10
- add r7, r3, #0
- bl MIi_CpuClearFast
- str r4, [r5, #4]
- strb r6, [r5, #8]
- strb r7, [r5, #9]
- cmp r7, #0xc
- blt _022583FE
- bl ErrorHandling
- mov r0, #0
- strb r0, [r5, #9]
-_022583FE:
- add r0, r5, #0
- bl MOD11_02258238
- add r0, r5, #0
- bl MOD11_02258338
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0225840C
-MOD11_0225840C: ; 0x0225840C
- push {r4, lr}
- add r4, r0, #0
- bl MOD11_0225836C
- add r0, r4, #0
- bl MOD11_02258380
- mov r0, #0
- add r1, r4, #0
- mov r2, #0x10
- bl MIi_CpuClearFast
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02258428
-MOD11_02258428: ; 0x02258428
- push {r4, lr}
- mov r1, #7
- mov r0, #5
- lsl r1, r1, #8
- bl AllocFromHeap
- mov r2, #7
- mov r1, #0
- lsl r2, r2, #8
- add r4, r0, #0
- bl MI_CpuFill8
- mov r1, #0
- ldr r0, _0225844C ; =0x0000069F
- mvn r1, r1
- strb r1, [r4, r0]
- add r0, r4, #0
- pop {r4, pc}
- .align 2, 0
-_0225844C: .word 0x0000069F
-
- thumb_func_start MOD11_02258450
-MOD11_02258450: ; 0x02258450
- push {r3, r4, r5, r6, r7, lr}
- mov r4, #0
- ldr r6, _022584A4 ; =0x0225F97C
- add r5, r0, #0
- add r7, r4, #0
-_0225845A:
- add r1, r4, #4
- lsl r1, r1, #0x18
- add r0, r5, #0
- lsr r1, r1, #0x18
- add r2, r6, #0
- add r3, r7, #0
- bl FUN_02016C18
- add r1, r4, #4
- lsl r1, r1, #0x18
- ldr r2, _022584A8 ; =0x000002FF
- add r0, r5, #0
- lsr r1, r1, #0x18
- bl FUN_02018768
- add r1, r4, #4
- lsl r1, r1, #0x18
- mov r2, #0
- add r0, r5, #0
- lsr r1, r1, #0x18
- add r3, r2, #0
- bl FUN_020179E0
- add r1, r4, #4
- lsl r1, r1, #0x18
- add r0, r5, #0
- lsr r1, r1, #0x18
- mov r2, #3
- mov r3, #0
- bl FUN_020179E0
- add r4, r4, #1
- add r6, #0x1c
- cmp r4, #4
- blo _0225845A
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022584A4: .word 0x0225F97C
-_022584A8: .word 0x000002FF
-
- thumb_func_start MOD11_022584AC
-MOD11_022584AC: ; 0x022584AC
- push {r4, r5, r6, lr}
- mov r4, #0
- add r5, r0, #0
- add r6, r4, #0
-_022584B4:
- add r0, r4, #4
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- add r1, r6, #0
- bl FUN_0201797C
- add r1, r4, #4
- lsl r1, r1, #0x18
- add r0, r5, #0
- lsr r1, r1, #0x18
- bl FUN_020178A0
- add r4, r4, #1
- cmp r4, #4
- blo _022584B4
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_022584D4
-MOD11_022584D4: ; 0x022584D4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r4, r0, #0
- add r5, r1, #0
- bl MOD11_02258428
- add r6, r0, #0
- ldr r0, _0225863C ; =0x000006A1
- str r4, [r6]
- strb r5, [r6, r0]
- add r0, r4, #0
- bl MOD11_022300CC
- str r0, [sp, #0x10]
- mov r0, #0xd
- mov r1, #5
- bl FUN_02011744
- ldr r2, _02258640 ; =0x000004C8
- add r1, r6, #0
- str r0, [r6, r2]
- ldr r0, _02258644 ; =MOD11_0225B794
- add r2, #0x56
- bl FUN_0200CA44
- ldr r1, _02258648 ; =0x000006AC
- mov r7, #2
- str r0, [r6, r1]
- mov r4, #0
- lsl r7, r7, #0xa
- b _0225854E
-_02258512:
- mov r0, #5
- add r1, r7, #0
- bl AllocFromHeap
- lsl r1, r4, #2
- add r1, r6, r1
- str r0, [r1, #0x3c]
- mov r0, #5
- str r0, [sp]
- ldr r1, _0225864C ; =0x0225F6FC
- lsl r2, r4, #1
- ldrh r1, [r1, r2]
- mov r0, #7
- mov r2, #1
- add r3, sp, #0x18
- bl FUN_02006BDC
- add r5, r0, #0
- lsl r0, r4, #2
- add r0, r6, r0
- ldr r1, [r0, #0x3c]
- ldr r0, [sp, #0x18]
- add r2, r7, #0
- add r0, #0xc
- bl MIi_CpuCopy32
- add r0, r5, #0
- bl FreeToHeap
- add r4, r4, #1
-_0225854E:
- cmp r4, #7
- blt _02258512
- mov r1, #2
- mov r0, #5
- lsl r1, r1, #8
- bl AllocFromHeap
- str r0, [r6, #0x58]
- mov r0, #1
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- str r0, [sp, #8]
- ldr r0, [sp, #0x10]
- mov r1, #7
- mov r2, #0xc3
- mov r3, #5
- bl FUN_020030E8
- ldr r0, [sp, #0x10]
- mov r1, #1
- bl FUN_020031FC
- mov r2, #2
- ldr r1, [r6, #0x58]
- lsl r2, r2, #8
- bl MIi_CpuCopy16
- add r5, r6, #0
- mov r7, #0x46
- mov r4, #0
- add r5, #0x68
- lsl r7, r7, #2
- b _022585A2
-_02258592:
- add r0, r4, #0
- mul r0, r7
- add r0, r5, r0
- mov r1, #0xff
- mov r2, #0x18
- bl MI_CpuFill8
- add r4, r4, #1
-_022585A2:
- cmp r4, #4
- blt _02258592
- mov r0, #0
- str r0, [sp, #0xc]
- mov r7, #6
- b _022585DE
-_022585AE:
- mov r0, #0x46
- ldr r1, [sp, #0xc]
- lsl r0, r0, #2
- mul r0, r1
- mov r5, #0
- add r4, r6, r0
- b _022585D4
-_022585BC:
- add r0, r7, #0
- bl FUN_020799E8
- add r1, r0, #0
- mov r0, #5
- bl AllocFromHeap
- lsl r1, r5, #2
- add r1, r4, r1
- add r1, #0x80
- str r0, [r1]
- add r5, r5, #1
-_022585D4:
- cmp r5, #4
- blt _022585BC
- ldr r0, [sp, #0xc]
- add r0, r0, #1
- str r0, [sp, #0xc]
-_022585DE:
- ldr r0, [sp, #0xc]
- cmp r0, #4
- blt _022585AE
- mov r0, #5
- mov r1, #0x20
- bl AllocFromHeap
- str r0, [r6, #0x5c]
- mov r0, #5
- mov r1, #0x20
- bl AllocFromHeap
- str r0, [r6, #0x60]
- ldr r1, [r6, #0x5c]
- ldr r0, [r6, #0x58]
- mov r2, #0x20
- bl MIi_CpuCopy16
- mov r0, #7
- mov r1, #0xca
- add r2, sp, #0x14
- mov r3, #5
- bl FUN_02006C08
- add r4, r0, #0
- ldr r0, [sp, #0x14]
- ldr r1, [r6, #0x60]
- ldr r0, [r0, #0xc]
- mov r2, #0x20
- bl MIi_CpuCopy16
- add r0, r4, #0
- bl FreeToHeap
- bl FUN_02002BE4
- bl FUN_02002C04
- ldr r0, _02258650 ; =MOD11_0225B824
- ldr r2, _02258654 ; =0x0000D6D8
- add r1, r6, #0
- bl FUN_0200CA44
- str r0, [r6, #0x64]
- add r0, r6, #0
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0225863C: .word 0x000006A1
-_02258640: .word 0x000004C8
-_02258644: .word MOD11_0225B794
-_02258648: .word 0x000006AC
-_0225864C: .word 0x0225F6FC
-_02258650: .word MOD11_0225B824
-_02258654: .word 0x0000D6D8
-
- thumb_func_start MOD11_02258658
-MOD11_02258658: ; 0x02258658
- push {r4, r5, r6, lr}
- add r6, r0, #0
- bl MOD11_0225ACB0
- add r0, r6, #0
- bl MOD11_02258B10
- add r0, r6, #0
- bl MOD11_022587A8
- ldr r0, _022586B4 ; =0x000004C8
- ldr r0, [r6, r0]
- bl FUN_020117BC
- ldr r0, _022586B8 ; =0x000006AC
- ldr r0, [r6, r0]
- bl FUN_0200CAB4
- mov r4, #0
- add r5, r6, #0
-_02258680:
- ldr r0, [r5, #0x3c]
- bl FreeToHeap
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #7
- blt _02258680
- ldr r0, [r6, #0x58]
- bl FreeToHeap
- add r0, r6, #0
- bl MOD11_0225A6B0
- ldr r0, [r6, #0x5c]
- bl FreeToHeap
- ldr r0, [r6, #0x60]
- bl FreeToHeap
- ldr r0, [r6, #0x64]
- bl FUN_0200CAB4
- add r0, r6, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
- .align 2, 0
-_022586B4: .word 0x000004C8
-_022586B8: .word 0x000006AC
-
- thumb_func_start MOD11_022586BC
-MOD11_022586BC: ; 0x022586BC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r7, r0, #0
- ldr r0, [r7]
- bl MOD11_02230078
- add r6, r0, #0
- ldr r0, [r7]
- bl MOD11_02230080
- add r4, r0, #0
- ldr r0, [r7]
- bl MOD11_0222FF68
- add r5, r0, #0
- ldr r0, [r7]
- bl MOD11_022300CC
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp]
- mov r0, #6
- lsl r0, r0, #0xc
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- mov r0, #5
- str r0, [sp, #0xc]
- mov r0, #7
- mov r1, #0x11
- add r2, r5, #0
- mov r3, #4
- bl FUN_0200687C
- ldr r2, _02258790 ; =0x00004E2D
- add r0, r6, #0
- add r1, r4, #0
- add r3, r2, #0
- bl FUN_0206E1D4
- ldr r0, [r7]
- bl MOD11_022300CC
- mov r1, #2
- str r1, [sp]
- ldr r1, _02258794 ; =0x00004E30
- add r2, r6, #0
- str r1, [sp, #4]
- mov r1, #3
- add r3, r4, #0
- bl FUN_0206E198
- mov r5, #0
-_02258726:
- ldr r0, _02258798 ; =0x00004E35
- add r1, r4, #0
- add r0, r5, r0
- str r0, [sp]
- add r0, r6, #0
- mov r2, #2
- mov r3, #0
- bl FUN_0206E130
- add r5, r5, #1
- cmp r5, #4
- blt _02258726
- ldr r0, [r7]
- bl MOD11_0222FF74
- mov r1, #1
- lsl r1, r1, #0xa
- tst r0, r1
- beq _0225878C
- ldr r0, _0225879C ; =0x00004E40
- ldr r3, _022587A0 ; =0x00004FB2
- str r0, [sp]
- add r0, r3, #0
- str r3, [sp, #4]
- sub r0, #0xb
- str r0, [sp, #8]
- ldr r2, [sp, #0x14]
- add r0, r6, #0
- add r1, r4, #0
- add r3, r3, #6
- bl MOD11_0225D6A4
- ldr r0, _0225879C ; =0x00004E40
- ldr r3, _022587A0 ; =0x00004FB2
- str r0, [sp]
- add r0, r3, #0
- str r3, [sp, #4]
- sub r0, #0xb
- str r0, [sp, #8]
- mov r0, #0xa
- str r0, [sp, #0xc]
- mov r0, #0
- str r0, [sp, #0x10]
- add r0, r6, #0
- add r1, r4, #0
- mov r2, #5
- add r3, r3, #6
- bl MOD11_0225D73C
- ldr r1, _022587A4 ; =0x000006F8
- str r0, [r7, r1]
-_0225878C:
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02258790: .word 0x00004E2D
-_02258794: .word 0x00004E30
-_02258798: .word 0x00004E35
-_0225879C: .word 0x00004E40
-_022587A0: .word 0x00004FB2
-_022587A4: .word 0x000006F8
-
- thumb_func_start MOD11_022587A8
-MOD11_022587A8: ; 0x022587A8
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- ldr r0, [r7]
- bl MOD11_02230078
- ldr r0, [r7]
- bl MOD11_02230080
- ldr r6, _02258808 ; =0x00004E35
- add r5, r0, #0
- mov r4, #0
-_022587BE:
- add r0, r5, #0
- add r1, r4, r6
- bl FUN_0206E21C
- add r4, r4, #1
- cmp r4, #4
- blt _022587BE
- ldr r1, _0225880C ; =0x00004E30
- add r0, r5, #0
- bl FUN_0206E224
- ldr r1, _02258810 ; =0x00004E2D
- add r0, r5, #0
- add r2, r1, #0
- bl FUN_0206E22C
- ldr r0, [r7]
- bl MOD11_0222FF74
- mov r1, #1
- lsl r1, r1, #0xa
- tst r0, r1
- beq _02258806
- ldr r0, _02258814 ; =0x000006F8
- ldr r0, [r7, r0]
- bl MOD11_0225D7B8
- ldr r3, _02258818 ; =0x00004FA7
- ldr r2, _0225881C ; =0x00004E40
- add r1, r3, #0
- str r3, [sp]
- add r0, r5, #0
- add r1, #0x11
- add r3, #0xb
- bl MOD11_0225D714
-_02258806:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02258808: .word 0x00004E35
-_0225880C: .word 0x00004E30
-_02258810: .word 0x00004E2D
-_02258814: .word 0x000006F8
-_02258818: .word 0x00004FA7
-_0225881C: .word 0x00004E40
-
- thumb_func_start MOD11_02258820
-MOD11_02258820: ; 0x02258820
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x30
- add r7, r0, #0
- str r1, [sp, #0x18]
- str r2, [sp, #0x1c]
- cmp r3, #0
- beq _0225883A
- add r1, r7, #0
- add r0, r3, #0
- add r1, #0x18
- mov r2, #0x22
- bl MI_CpuCopy8
-_0225883A:
- ldr r0, _0225893C ; =0x000006A2
- mov r1, #0
- strb r1, [r7, r0]
- ldr r0, [r7]
- bl MOD11_0222FF68
- str r0, [sp, #0x28]
- ldr r0, [r7]
- bl MOD11_02230078
- str r0, [sp, #0x24]
- ldr r0, [r7]
- bl MOD11_02230080
- str r0, [sp, #0x20]
- ldr r0, _02258940 ; =0x0000069F
- ldrsb r2, [r7, r0]
- mov r0, #0
- mvn r0, r0
- cmp r2, r0
- bne _0225886C
- mov r0, #1
- str r0, [sp, #0x1c]
- mov r5, #0
- b _02258874
-_0225886C:
- mov r0, #0x30
- ldr r1, _02258944 ; =0x0225FAAC
- mul r0, r2
- add r5, r1, r0
-_02258874:
- ldr r0, [sp, #0x18]
- mov r1, #0x30
- ldr r2, _02258944 ; =0x0225FAAC
- mul r1, r0
- add r0, r2, r1
- str r0, [sp, #0x2c]
- ldr r0, [r7]
- bl MOD11_022300CC
- mov r1, #2
- lsl r1, r1, #8
- str r1, [sp]
- ldr r1, [r7, #0x58]
- mov r2, #1
- mov r3, #0
- bl FUN_02003054
- ldr r6, [sp, #0x2c]
- mov r4, #0
-_0225889A:
- ldrh r2, [r6, #4]
- ldr r0, _02258948 ; =0x0000FFFF
- cmp r2, r0
- beq _022588D0
- ldr r0, [sp, #0x1c]
- cmp r0, #1
- beq _022588AE
- ldrh r0, [r5, #4]
- cmp r2, r0
- beq _022588D0
-_022588AE:
- lsl r2, r2, #2
- add r1, r4, #4
- add r2, r7, r2
- lsl r1, r1, #0x18
- mov r3, #2
- ldr r0, [sp, #0x28]
- ldr r2, [r2, #0x3c]
- lsr r1, r1, #0x18
- lsl r3, r3, #0xa
- bl FUN_02017DFC
- add r1, r4, #4
- lsl r1, r1, #0x18
- ldr r0, [sp, #0x28]
- lsr r1, r1, #0x18
- bl FUN_0201AC68
-_022588D0:
- add r4, r4, #1
- add r6, r6, #2
- add r5, r5, #2
- cmp r4, #4
- blt _0225889A
- ldr r0, [r7]
- bl MOD11_022300CC
- mov r1, #0x1b
- str r1, [sp]
- mov r1, #0x24
- str r1, [sp, #4]
- mov r1, #0
- str r1, [sp, #8]
- mov r1, #7
- str r1, [sp, #0xc]
- mov r1, #2
- str r1, [sp, #0x10]
- ldr r1, _0225894C ; =0x00004E33
- ldr r2, [sp, #0x24]
- str r1, [sp, #0x14]
- ldr r3, [sp, #0x20]
- mov r1, #3
- bl FUN_0200C0DC
- ldr r1, _02258940 ; =0x0000069F
- ldr r0, [sp, #0x18]
- mov r2, #0xf
- strb r0, [r7, r1]
- mov r0, #4
- str r0, [sp]
- ldr r0, _02258950 ; =0x04001050
- mov r1, #2
- mov r3, #0x1b
- bl G2x_SetBlendAlpha_
- add r0, r7, #0
- bl MOD11_0225ACB0
- ldr r0, [sp, #0x2c]
- ldr r3, [r0, #0x28]
- cmp r3, #0
- beq _0225892E
- ldr r1, [sp, #0x18]
- ldr r2, [sp, #0x1c]
- add r0, r7, #0
- blx r3
-_0225892E:
- ldr r0, _02258954 ; =MOD11_0225B700
- add r1, r7, #0
- mov r2, #0xa
- bl FUN_0200CA98
- add sp, #0x30
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225893C: .word 0x000006A2
-_02258940: .word 0x0000069F
-_02258944: .word 0x0225FAAC
-_02258948: .word 0x0000FFFF
-_0225894C: .word 0x00004E33
-_02258950: .word 0x04001050
-_02258954: .word MOD11_0225B700
-
- thumb_func_start MOD11_02258958
-MOD11_02258958: ; 0x02258958
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- ldr r1, _02258ADC ; =0x000005D4
- str r0, [sp, #0x14]
- ldr r0, [r0, r1]
- cmp r0, #0
- bne _02258970
- ldr r0, [sp, #0x14]
- add r1, #0x18
- ldr r0, [r0, r1]
- cmp r0, #0
- beq _02258974
-_02258970:
- bl ErrorHandling
-_02258974:
- ldr r0, [sp, #0x14]
- ldr r0, [r0]
- bl MOD11_02230078
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x14]
- ldr r0, [r0]
- bl MOD11_02230080
- add r7, r0, #0
- mov r0, #1
- str r0, [sp]
- mov r0, #2
- str r0, [sp, #4]
- ldr r0, _02258AE0 ; =0x00004E33
- add r1, r7, #0
- str r0, [sp, #8]
- ldr r0, [sp, #0x18]
- mov r2, #0x1b
- mov r3, #0x90
- bl FUN_0200C00C
- mov r0, #1
- str r0, [sp]
- ldr r0, _02258AE4 ; =0x00004E2B
- add r1, r7, #0
- str r0, [sp, #4]
- ldr r0, [sp, #0x18]
- mov r2, #0x1b
- mov r3, #0x8f
- bl FUN_0200C124
- mov r0, #1
- str r0, [sp]
- ldr r0, _02258AE4 ; =0x00004E2B
- add r1, r7, #0
- str r0, [sp, #4]
- ldr r0, [sp, #0x18]
- mov r2, #0x1b
- mov r3, #0x91
- bl FUN_0200C13C
- mov r0, #1
- str r0, [sp]
- mov r0, #2
- str r0, [sp, #4]
- ldr r0, _02258AE8 ; =0x00004E34
- add r1, r7, #0
- str r0, [sp, #8]
- ldr r0, [sp, #0x18]
- mov r2, #0x1b
- mov r3, #0x8d
- bl FUN_0200C00C
- mov r0, #1
- str r0, [sp]
- ldr r0, _02258AEC ; =0x00004E2C
- add r1, r7, #0
- str r0, [sp, #4]
- ldr r0, [sp, #0x18]
- mov r2, #0x1b
- mov r3, #0x8c
- bl FUN_0200C124
- mov r0, #1
- str r0, [sp]
- ldr r0, _02258AEC ; =0x00004E2C
- add r1, r7, #0
- str r0, [sp, #4]
- ldr r0, [sp, #0x18]
- mov r2, #0x1b
- mov r3, #0x8e
- bl FUN_0200C13C
- mov r0, #0
- ldr r4, [sp, #0x14]
- str r0, [sp, #0x1c]
- mov r6, #0xc
- mov r5, #0xf6
-_02258A12:
- ldr r0, [sp, #0x18]
- ldr r2, _02258AF0 ; =0x0225F8AC
- add r1, r7, #0
- bl FUN_0200C154
- ldr r1, _02258ADC ; =0x000005D4
- mov r3, #0x11
- str r0, [r4, r1]
- add r0, r1, #0
- ldr r0, [r4, r0]
- lsl r1, r6, #0x10
- ldr r0, [r0]
- asr r1, r1, #0x10
- mov r2, #0xd
- lsl r3, r3, #0x10
- bl FUN_0200C720
- ldr r0, _02258ADC ; =0x000005D4
- mov r1, #1
- ldr r0, [r4, r0]
- bl FUN_0200C840
- ldr r0, [sp, #0x18]
- ldr r2, _02258AF4 ; =0x0225F8E0
- add r1, r7, #0
- bl FUN_0200C154
- ldr r1, _02258AF8 ; =0x000005EC
- mov r3, #0x11
- str r0, [r4, r1]
- add r0, r1, #0
- ldr r0, [r4, r0]
- lsl r1, r5, #0x10
- ldr r0, [r0]
- asr r1, r1, #0x10
- mov r2, #9
- lsl r3, r3, #0x10
- bl FUN_0200C720
- ldr r0, [sp, #0x1c]
- add r4, r4, #4
- add r0, r0, #1
- add r6, #0x13
- sub r5, #0xc
- str r0, [sp, #0x1c]
- cmp r0, #6
- blt _02258A12
- ldr r0, [sp, #0x14]
- bl MOD11_02258E30
- ldr r0, [sp, #0x14]
- ldr r0, [r0, #4]
- cmp r0, #0
- beq _02258A82
- bl ErrorHandling
-_02258A82:
- ldr r0, _02258AFC ; =MOD11_02258BE0
- ldr r1, [sp, #0x14]
- ldr r2, _02258B00 ; =0x00000514
- bl FUN_0200CA44
- ldr r1, [sp, #0x14]
- str r0, [r1, #4]
- add r0, r1, #0
- ldr r0, [r0]
- bl MOD11_022300CC
- add r2, r0, #0
- ldr r0, _02258B04 ; =0x00004E3F
- ldr r3, _02258B08 ; =0x00004FB1
- str r0, [sp]
- add r0, r3, #0
- str r3, [sp, #4]
- sub r0, #0xb
- str r0, [sp, #8]
- ldr r0, [sp, #0x18]
- add r1, r7, #0
- add r3, r3, #6
- bl MOD11_0225D3EC
- ldr r0, _02258B04 ; =0x00004E3F
- ldr r3, _02258B08 ; =0x00004FB1
- str r0, [sp]
- add r0, r3, #0
- str r3, [sp, #4]
- sub r0, #0xb
- str r0, [sp, #8]
- mov r2, #5
- str r2, [sp, #0xc]
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x18]
- add r1, r7, #0
- add r3, r3, #6
- bl MOD11_0225D484
- ldr r2, _02258B0C ; =0x000006EC
- ldr r1, [sp, #0x14]
- str r0, [r1, r2]
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02258ADC: .word 0x000005D4
-_02258AE0: .word 0x00004E33
-_02258AE4: .word 0x00004E2B
-_02258AE8: .word 0x00004E34
-_02258AEC: .word 0x00004E2C
-_02258AF0: .word 0x0225F8AC
-_02258AF4: .word 0x0225F8E0
-_02258AF8: .word 0x000005EC
-_02258AFC: .word MOD11_02258BE0
-_02258B00: .word 0x00000514
-_02258B04: .word 0x00004E3F
-_02258B08: .word 0x00004FB1
-_02258B0C: .word 0x000006EC
-
- thumb_func_start MOD11_02258B10
-MOD11_02258B10: ; 0x02258B10
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- ldr r0, _02258BBC ; =0x000005D4
- ldr r1, [r6, r0]
- cmp r1, #0
- beq _02258B24
- add r0, #0x18
- ldr r0, [r6, r0]
- cmp r0, #0
- bne _02258B28
-_02258B24:
- bl ErrorHandling
-_02258B28:
- ldr r0, [r6]
- bl MOD11_02230078
- ldr r0, [r6]
- bl MOD11_02230080
- ldr r1, _02258BC0 ; =0x00004E33
- add r7, r0, #0
- bl FUN_0200C358
- ldr r1, _02258BC4 ; =0x00004E2B
- add r0, r7, #0
- bl FUN_0200C378
- ldr r1, _02258BC4 ; =0x00004E2B
- add r0, r7, #0
- bl FUN_0200C388
- ldr r1, _02258BC8 ; =0x00004E34
- add r0, r7, #0
- bl FUN_0200C358
- ldr r1, _02258BCC ; =0x00004E2C
- add r0, r7, #0
- bl FUN_0200C378
- ldr r1, _02258BCC ; =0x00004E2C
- add r0, r7, #0
- bl FUN_0200C388
- ldr r1, _02258BC0 ; =0x00004E33
- add r0, r7, #0
- bl FUN_0200C368
- mov r4, #0
- add r5, r6, #0
-_02258B70:
- ldr r0, _02258BBC ; =0x000005D4
- ldr r0, [r5, r0]
- bl FUN_0200C3DC
- ldr r0, _02258BBC ; =0x000005D4
- mov r1, #0
- str r1, [r5, r0]
- add r0, #0x18
- ldr r0, [r5, r0]
- bl FUN_0200C3DC
- ldr r0, _02258BD0 ; =0x000005EC
- mov r1, #0
- str r1, [r5, r0]
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #6
- blt _02258B70
- ldr r0, [r6, #4]
- bl FUN_0200CAB4
- ldr r3, _02258BD4 ; =0x00004FA6
- mov r0, #0
- str r0, [r6, #4]
- add r1, r3, #0
- str r3, [sp]
- ldr r2, _02258BD8 ; =0x00004E3F
- add r0, r7, #0
- add r1, #0x11
- add r3, #0xb
- bl MOD11_0225D45C
- ldr r0, _02258BDC ; =0x000006EC
- ldr r0, [r6, r0]
- bl MOD11_0225D508
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02258BBC: .word 0x000005D4
-_02258BC0: .word 0x00004E33
-_02258BC4: .word 0x00004E2B
-_02258BC8: .word 0x00004E34
-_02258BCC: .word 0x00004E2C
-_02258BD0: .word 0x000005EC
-_02258BD4: .word 0x00004FA6
-_02258BD8: .word 0x00004E3F
-_02258BDC: .word 0x000006EC
-
- thumb_func_start MOD11_02258BE0
-MOD11_02258BE0: ; 0x02258BE0
- push {r3, r4, r5, r6, r7, lr}
- ldr r0, _02258D54 ; =0x00000644
- add r5, r1, #0
- mov r7, #0
- add r4, r5, r0
- mov r6, #0xc
-_02258BEC:
- ldrb r0, [r4, #3]
- cmp r0, #4
- bhi _02258C08
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02258BFE: ; jump table
- .short _02258C08 - _02258BFE - 2 ; case 0
- .short _02258C48 - _02258BFE - 2 ; case 1
- .short _02258C5A - _02258BFE - 2 ; case 2
- .short _02258CF2 - _02258BFE - 2 ; case 3
- .short _02258C5A - _02258BFE - 2 ; case 4
-_02258C08:
- ldr r0, _02258D58 ; =0x000005D4
- ldr r0, [r5, r0]
- ldr r0, [r0]
- bl FUN_0200C650
- cmp r0, #0
- beq _02258C1C
- ldrb r0, [r4, #2]
- cmp r0, #0x57
- bhs _02258C1E
-_02258C1C:
- b _02258D42
-_02258C1E:
- mov r0, #0
- strb r0, [r4, #4]
- mov r0, #0xa
- strb r0, [r4, #5]
- bl rand_LC
- lsr r1, r0, #0x1f
- lsl r3, r0, #0x1d
- ldrb r2, [r4, #5]
- sub r3, r3, r1
- mov r0, #0x1d
- ror r3, r0
- add r0, r1, r3
- add r0, r2, r0
- strb r0, [r4, #5]
- mov r0, #2
- strb r0, [r4, #7]
- ldrb r0, [r4, #3]
- add r0, r0, #1
- strb r0, [r4, #3]
- b _02258D42
-_02258C48:
- ldrb r1, [r4, #5]
- cmp r1, #0
- beq _02258C54
- sub r0, r1, #1
- strb r0, [r4, #5]
- b _02258D42
-_02258C54:
- add r0, r0, #1
- strb r0, [r4, #3]
- b _02258D42
-_02258C5A:
- ldr r0, _02258D58 ; =0x000005D4
- mov r1, #2
- ldr r0, [r5, r0]
- lsl r1, r1, #0xa
- bl FUN_0200C8BC
- mov r0, #0
- ldrsh r1, [r4, r0]
- mov r0, #6
- lsl r0, r0, #6
- add r0, r1, r0
- strh r0, [r4]
- mov r1, #0
- ldrsh r1, [r4, r1]
- ldr r0, _02258D58 ; =0x000005D4
- mov r3, #0x11
- asr r2, r1, #7
- lsr r2, r2, #0x18
- add r2, r1, r2
- asr r1, r2, #8
- add r1, r1, r6
- lsl r1, r1, #0x10
- ldr r0, [r5, r0]
- asr r1, r1, #0x10
- mov r2, #0xd
- lsl r3, r3, #0x10
- bl FUN_0200C750
- ldrb r0, [r4, #6]
- add r0, r0, #1
- strb r0, [r4, #6]
- ldrb r1, [r4, #6]
- ldrb r0, [r4, #7]
- cmp r1, r0
- blo _02258D42
- mov r0, #0
- strb r0, [r4, #6]
- ldrb r0, [r4, #3]
- cmp r0, #2
- bne _02258CB0
- add r0, r0, #1
- strb r0, [r4, #3]
- b _02258D42
-_02258CB0:
- ldr r0, _02258D58 ; =0x000005D4
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_0200C898
- ldr r0, _02258D58 ; =0x000005D4
- lsl r1, r6, #0x10
- mov r3, #0x11
- ldr r0, [r5, r0]
- asr r1, r1, #0x10
- mov r2, #0xd
- lsl r3, r3, #0x10
- bl FUN_0200C750
- mov r0, #0
- strh r0, [r4]
- ldrb r0, [r4, #8]
- cmp r0, #1
- bhs _02258CEA
- add r0, r0, #1
- strb r0, [r4, #8]
- ldrb r0, [r4, #7]
- cmp r0, #1
- bls _02258CE4
- sub r0, r0, #1
- strb r0, [r4, #7]
-_02258CE4:
- mov r0, #2
- strb r0, [r4, #3]
- b _02258D42
-_02258CEA:
- mov r0, #0
- strb r0, [r4, #8]
- strb r0, [r4, #3]
- b _02258D42
-_02258CF2:
- ldr r0, _02258D58 ; =0x000005D4
- ldr r1, _02258D5C ; =0xFFFFF800
- ldr r0, [r5, r0]
- bl FUN_0200C8BC
- mov r0, #0
- ldrsh r1, [r4, r0]
- mov r0, #6
- lsl r0, r0, #6
- sub r0, r1, r0
- strh r0, [r4]
- mov r1, #0
- ldrsh r1, [r4, r1]
- ldr r0, _02258D58 ; =0x000005D4
- mov r3, #0x11
- asr r2, r1, #7
- lsr r2, r2, #0x18
- add r2, r1, r2
- asr r1, r2, #8
- add r1, r1, r6
- lsl r1, r1, #0x10
- ldr r0, [r5, r0]
- asr r1, r1, #0x10
- mov r2, #0xd
- lsl r3, r3, #0x10
- bl FUN_0200C750
- ldrb r0, [r4, #6]
- add r0, r0, #1
- strb r0, [r4, #6]
- ldrb r1, [r4, #7]
- ldrb r0, [r4, #6]
- lsl r1, r1, #1
- cmp r0, r1
- blt _02258D42
- mov r0, #0
- strb r0, [r4, #6]
- ldrb r0, [r4, #3]
- add r0, r0, #1
- strb r0, [r4, #3]
-_02258D42:
- add r7, r7, #1
- add r4, #0xa
- add r5, r5, #4
- add r6, #0x13
- cmp r7, #6
- bge _02258D50
- b _02258BEC
-_02258D50:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02258D54: .word 0x00000644
-_02258D58: .word 0x000005D4
-_02258D5C: .word 0xFFFFF800
-
- thumb_func_start MOD11_02258D60
-MOD11_02258D60: ; 0x02258D60
- push {r3, r4}
- ldr r2, _02258D78 ; =0x00000646
- mov r4, #0
-_02258D66:
- ldrb r3, [r1, r4]
- add r4, r4, #1
- strb r3, [r0, r2]
- add r0, #0xa
- cmp r4, #6
- blt _02258D66
- pop {r3, r4}
- bx lr
- nop
-_02258D78: .word 0x00000646
-
- thumb_func_start MOD11_02258D7C
-MOD11_02258D7C: ; 0x02258D7C
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r6, r1, #0
- add r7, r2, #0
- mov r4, #0
-_02258D86:
- ldrb r0, [r6, r4]
- bl MOD11_0225A400
- add r1, r0, #0
- ldr r0, _02258DC8 ; =0x000005D4
- ldr r0, [r5, r0]
- ldr r0, [r0]
- bl FUN_02020130
- ldr r0, _02258DC8 ; =0x000005D4
- ldr r0, [r5, r0]
- ldr r0, [r0]
- bl FUN_0200C59C
- ldrb r0, [r7, r4]
- bl MOD11_0225A400
- add r1, r0, #0
- ldr r0, _02258DCC ; =0x000005EC
- ldr r0, [r5, r0]
- ldr r0, [r0]
- bl FUN_02020130
- ldr r0, _02258DCC ; =0x000005EC
- ldr r0, [r5, r0]
- ldr r0, [r0]
- bl FUN_0200C59C
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #6
- blt _02258D86
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02258DC8: .word 0x000005D4
-_02258DCC: .word 0x000005EC
-
- thumb_func_start MOD11_02258DD0
-MOD11_02258DD0: ; 0x02258DD0
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, _02258E28 ; =0x000005D4
- ldr r1, [r5, r0]
- cmp r1, #0
- beq _02258DE4
- add r0, #0x18
- ldr r0, [r5, r0]
- cmp r0, #0
- bne _02258DE8
-_02258DE4:
- bl ErrorHandling
-_02258DE8:
- ldr r7, _02258E28 ; =0x000005D4
- mov r6, #0
- add r4, r5, #0
-_02258DEE:
- ldr r0, [r4, r7]
- mov r1, #1
- ldr r0, [r0]
- bl FUN_0200C63C
- add r6, r6, #1
- add r4, r4, #4
- cmp r6, #6
- blt _02258DEE
- ldr r0, [r5]
- bl MOD11_0222FF74
- mov r1, #1
- tst r0, r1
- beq _02258E24
- ldr r6, _02258E2C ; =0x000005EC
- mov r4, #0
- add r7, r1, #0
-_02258E12:
- ldr r0, [r5, r6]
- add r1, r7, #0
- ldr r0, [r0]
- bl FUN_0200C63C
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #6
- blt _02258E12
-_02258E24:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02258E28: .word 0x000005D4
-_02258E2C: .word 0x000005EC
-
- thumb_func_start MOD11_02258E30
-MOD11_02258E30: ; 0x02258E30
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, _02258E70 ; =0x000005D4
- ldr r1, [r5, r0]
- cmp r1, #0
- beq _02258E44
- add r0, #0x18
- ldr r0, [r5, r0]
- cmp r0, #0
- bne _02258E48
-_02258E44:
- bl ErrorHandling
-_02258E48:
- ldr r7, _02258E70 ; =0x000005D4
- mov r4, #0
- add r6, r7, #0
- add r6, #0x18
-_02258E50:
- ldr r0, [r5, r7]
- mov r1, #0
- ldr r0, [r0]
- bl FUN_0200C63C
- ldr r0, [r5, r6]
- mov r1, #0
- ldr r0, [r0]
- bl FUN_0200C63C
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #6
- blt _02258E50
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02258E70: .word 0x000005D4
-
- thumb_func_start MOD11_02258E74
-MOD11_02258E74: ; 0x02258E74
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, _02258F4C ; =0x0000069F
- mov r6, #0
- ldrsb r1, [r5, r0]
- sub r0, r6, #1
- cmp r1, r0
- bne _02258E88
- bl ErrorHandling
-_02258E88:
- ldr r0, _02258F4C ; =0x0000069F
- ldr r3, _02258F50 ; =0x0225FAAC
- ldrsb r2, [r5, r0]
- mov r1, #0x30
- mul r1, r2
- add r4, r3, r1
- ldr r1, [r4, #0x14]
- cmp r1, #0
- beq _02258EA2
- add r0, r0, #3
- ldrb r0, [r5, r0]
- cmp r0, #1
- bne _02258EA8
-_02258EA2:
- mov r0, #0
- mvn r0, r0
- pop {r3, r4, r5, r6, r7, pc}
-_02258EA8:
- ldr r0, [r4, #0x18]
- cmp r0, #0
- bne _02258EB2
- bl ErrorHandling
-_02258EB2:
- ldr r0, [r5]
- bl MOD11_0222FF74
- mov r1, #1
- lsl r1, r1, #0xa
- tst r0, r1
- beq _02258ECA
- add r0, r5, #0
- bl MOD11_0225C784
- add r7, r0, #0
- b _02258EE4
-_02258ECA:
- ldr r0, [r4, #0x14]
- bl FUN_02020988
- add r7, r0, #0
- mov r0, #0
- mvn r0, r0
- cmp r7, r0
- bne _02258EE4
- add r0, r5, #0
- bl MOD11_0225B8B0
- add r7, r0, #0
- add r6, r6, #1
-_02258EE4:
- mov r0, #0
- mvn r0, r0
- str r0, [sp]
- cmp r7, r0
- bne _02258EF2
- mov r2, #0xff
- b _02258EFE
-_02258EF2:
- ldr r1, [r4, #0x18]
- lsl r0, r7, #2
- ldr r0, [r1, r0]
- str r0, [sp]
- ldr r0, [r4, #0x1c]
- ldrb r2, [r0, r7]
-_02258EFE:
- ldr r3, [r4, #0x2c]
- cmp r3, #0
- beq _02258F46
- ldr r1, [sp]
- add r0, r5, #0
- blx r3
- mov r1, #0
- mvn r1, r1
- str r0, [sp]
- cmp r0, r1
- beq _02258F46
- ldr r2, [r4, #0x24]
- cmp r2, #0
- beq _02258F20
- add r0, r5, #0
- add r1, r7, #0
- blx r2
-_02258F20:
- mov r0, #0x6f
- lsl r0, r0, #4
- add r0, r5, r0
- mov r1, #0
- mov r2, #4
- bl MI_CpuFill8
- ldr r0, _02258F54 ; =0x000006EC
- ldr r0, [r5, r0]
- bl MOD11_0225D648
- cmp r6, #0
- ldr r0, _02258F58 ; =0x000006F4
- ble _02258F42
- mov r1, #1
- strb r1, [r5, r0]
- b _02258F46
-_02258F42:
- mov r1, #0
- strb r1, [r5, r0]
-_02258F46:
- ldr r0, [sp]
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02258F4C: .word 0x0000069F
-_02258F50: .word 0x0225FAAC
-_02258F54: .word 0x000006EC
-_02258F58: .word 0x000006F4
-
- thumb_func_start MOD11_02258F5C
-MOD11_02258F5C: ; 0x02258F5C
- push {r3, lr}
- ldr r1, [r0, #8]
- cmp r1, #0
- bne _02258F7E
- ldr r1, [r0, #0xc]
- cmp r1, #0
- bne _02258F7E
- ldr r1, _02258F84 ; =0x00000684
- ldr r1, [r0, r1]
- cmp r1, #0
- bne _02258F7E
- bl MOD11_0225B780
- cmp r0, #1
- bne _02258F7E
- mov r0, #1
- pop {r3, pc}
-_02258F7E:
- mov r0, #0
- pop {r3, pc}
- nop
-_02258F84: .word 0x00000684
-
- thumb_func_start MOD11_02258F88
-MOD11_02258F88: ; 0x02258F88
- push {r3, lr}
- cmp r0, #0x40
- bgt _02258FBE
- bge _02259014
- cmp r0, #0x10
- bgt _02258FB8
- bge _02258FEC
- cmp r0, #8
- bhi _02259024
- add r2, r0, r0
- add r2, pc
- ldrh r2, [r2, #6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_02258FA6: ; jump table
- .short _02258FE0 - _02258FA6 - 2 ; case 0
- .short _02258FEC - _02258FA6 - 2 ; case 1
- .short _02258FEC - _02258FA6 - 2 ; case 2
- .short _02259024 - _02258FA6 - 2 ; case 3
- .short _02258FF8 - _02258FA6 - 2 ; case 4
- .short _02259024 - _02258FA6 - 2 ; case 5
- .short _02259024 - _02258FA6 - 2 ; case 6
- .short _02259024 - _02258FA6 - 2 ; case 7
- .short _02258FFC - _02258FA6 - 2 ; case 8
-_02258FB8:
- cmp r0, #0x20
- beq _0225901C
- b _02259024
-_02258FBE:
- mov r2, #1
- lsl r2, r2, #8
- cmp r0, r2
- bgt _02258FCE
- bge _02259008
- cmp r0, #0x80
- beq _02258FF8
- b _02259024
-_02258FCE:
- lsl r1, r2, #1
- cmp r0, r1
- bgt _02258FD8
- beq _02259018
- b _02259024
-_02258FD8:
- lsl r1, r2, #2
- cmp r0, r1
- beq _02259020
- b _02259024
-_02258FE0:
- cmp r1, #4
- bne _02258FE8
- mov r0, #9
- pop {r3, pc}
-_02258FE8:
- mov r0, #8
- pop {r3, pc}
-_02258FEC:
- cmp r1, #4
- bne _02258FF4
- mov r0, #6
- pop {r3, pc}
-_02258FF4:
- mov r0, #4
- pop {r3, pc}
-_02258FF8:
- mov r0, #1
- pop {r3, pc}
-_02258FFC:
- cmp r1, #4
- bne _02259004
- mov r0, #7
- pop {r3, pc}
-_02259004:
- mov r0, #2
- pop {r3, pc}
-_02259008:
- cmp r1, #4
- bne _02259010
- mov r0, #4
- pop {r3, pc}
-_02259010:
- mov r0, #6
- pop {r3, pc}
-_02259014:
- mov r0, #3
- pop {r3, pc}
-_02259018:
- mov r0, #0xa
- pop {r3, pc}
-_0225901C:
- mov r0, #5
- pop {r3, pc}
-_02259020:
- mov r0, #0xb
- pop {r3, pc}
-_02259024:
- bl ErrorHandling
- mov r0, #0
- pop {r3, pc}
-
- thumb_func_start MOD11_0225902C
-MOD11_0225902C: ; 0x0225902C
- push {r4, r5}
- ldr r1, _0225908C ; =0x04001000
- ldr r2, _02259090 ; =0xFFFF1FFF
- ldr r3, [r1]
- add r5, r1, #0
- and r3, r2
- lsr r2, r1, #0xd
- orr r2, r3
- str r2, [r1]
- add r5, #0x4a
- ldrh r4, [r5]
- mov r3, #0x3f
- mov r2, #0x1f
- bic r4, r3
- orr r2, r4
- mov r4, #0x20
- orr r2, r4
- strh r2, [r5]
- add r1, #0x48
- ldrh r5, [r1]
- mov r2, #0x1b
- bic r5, r3
- orr r2, r5
- orr r2, r4
- strh r2, [r1]
- mov r1, #0x6e
- lsl r1, r1, #4
- ldr r1, [r0, r1]
- asr r0, r1, #7
- lsr r0, r0, #0x18
- add r0, r1, r0
- asr r1, r0, #8
- mov r0, #0xff
- sub r0, r0, r1
- bpl _02259074
- mov r0, #0
-_02259074:
- lsl r1, r0, #8
- mov r0, #0xff
- lsl r0, r0, #8
- and r1, r0
- mov r0, #0xff
- orr r0, r1
- ldr r1, _02259094 ; =0x04001040
- strh r0, [r1]
- mov r0, #0xc0
- strh r0, [r1, #4]
- pop {r4, r5}
- bx lr
- .align 2, 0
-_0225908C: .word 0x04001000
-_02259090: .word 0xFFFF1FFF
-_02259094: .word 0x04001040
-
- thumb_func_start MOD11_02259098
-MOD11_02259098: ; 0x02259098
- push {r4, lr}
- lsl r4, r2, #8
- mov r2, #0x6e
- add r3, r0, #0
- lsl r2, r2, #4
- ldr r0, [r3, r2]
- cmp r0, r4
- beq _022590BC
- add r0, r2, #4
- str r1, [r3, r0]
- add r2, #8
- str r4, [r3, r2]
- mov r2, #0x4b
- ldr r0, _022590C0 ; =MOD11_022590C4
- add r1, r3, #0
- lsl r2, r2, #4
- bl FUN_0200CA44
-_022590BC:
- pop {r4, pc}
- nop
-_022590C0: .word MOD11_022590C4
-
- thumb_func_start MOD11_022590C4
-MOD11_022590C4: ; 0x022590C4
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- str r0, [sp]
- ldr r0, [r5]
- mov r4, #0
- bl MOD11_0222FF68
- add r7, r0, #0
- mov r0, #0x6e
- lsl r0, r0, #4
- add r1, r0, #4
- ldr r2, [r5, r0]
- ldr r1, [r5, r1]
- add r1, r2, r1
- str r1, [r5, r0]
- add r1, r0, #4
- ldr r1, [r5, r1]
- cmp r1, #0
- bgt _022590F6
- add r2, r0, #0
- add r2, #8
- ldr r2, [r5, r2]
- ldr r0, [r5, r0]
- cmp r0, r2
- ble _02259106
-_022590F6:
- cmp r1, #0
- ble _0225910E
- ldr r0, _0225915C ; =0x000006E8
- ldr r2, [r5, r0]
- sub r0, #8
- ldr r0, [r5, r0]
- cmp r0, r2
- blt _0225910E
-_02259106:
- mov r0, #0x6e
- lsl r0, r0, #4
- str r2, [r5, r0]
- mov r4, #1
-_0225910E:
- mov r3, #0x6e
- lsl r3, r3, #4
- ldr r3, [r5, r3]
- add r0, r7, #0
- asr r6, r3, #7
- lsr r6, r6, #0x18
- add r6, r3, r6
- mov r1, #6
- mov r2, #0
- asr r3, r6, #8
- bl FUN_020179E0
- add r0, r5, #0
- bl MOD11_0225902C
- cmp r4, #1
- bne _0225915A
- ldr r2, _02259160 ; =0x000002FF
- add r0, r7, #0
- mov r1, #7
- bl FUN_02018768
- mov r0, #7
- mov r1, #0
- bl FUN_0201797C
- mov r0, #7
- mov r1, #0
- bl FUN_020178BC
- ldr r2, _02259164 ; =0x04001000
- ldr r0, _02259168 ; =0xFFFF1FFF
- ldr r1, [r2]
- and r0, r1
- str r0, [r2]
- ldr r0, [sp]
- bl FUN_0200CAB4
-_0225915A:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225915C: .word 0x000006E8
-_02259160: .word 0x000002FF
-_02259164: .word 0x04001000
-_02259168: .word 0xFFFF1FFF
-
- thumb_func_start MOD11_0225916C
-MOD11_0225916C: ; 0x0225916C
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r6, r1, #0
- ldr r0, _02259240 ; =0x000006A2
- mov r1, #1
- strb r1, [r5, r0]
- ldr r1, _02259244 ; =0x0400104A
- mov r4, #0x3f
- ldrh r2, [r1]
- mov r0, #0xf
- mov r7, #0xc
- bic r2, r4
- orr r0, r2
- mov r2, #0x20
- orr r0, r2
- strh r0, [r1]
- sub r0, r1, #2
- ldrh r3, [r0]
- bic r3, r4
- orr r3, r7
- orr r3, r2
- strh r3, [r0]
- ldrh r4, [r0]
- ldr r3, _02259248 ; =0xFFFFC0FF
- lsl r2, r2, #8
- and r4, r3
- lsl r3, r7, #8
- orr r3, r4
- orr r2, r3
- strh r2, [r0]
- add r2, r1, #0
- mov r0, #0xff
- sub r2, #0xa
- strh r0, [r2]
- mov r3, #0x90
- sub r2, r1, #6
- strh r3, [r2]
- add r2, r1, #0
- sub r2, #8
- strh r0, [r2]
- sub r0, r1, #4
- ldr r2, _0225924C ; =0x000090C0
- sub r1, #0x4a
- strh r2, [r0]
- ldr r2, [r1]
- ldr r0, _02259250 ; =0xFFFF1FFF
- and r2, r0
- lsl r0, r7, #0xb
- orr r0, r2
- str r0, [r1]
- mov r0, #5
- mov r1, #0x14
- bl AllocFromHeap
- add r4, r0, #0
- mov r1, #0
- mov r2, #0x14
- bl MI_CpuFill8
- str r5, [r4]
- ldr r0, _02259254 ; =0xFFFF9C64
- strb r6, [r4, #0x12]
- strh r0, [r4, #8]
- mov r0, #0xfa
- lsl r0, r0, #4
- strh r0, [r4, #0xa]
- mov r0, #8
- ldrsh r1, [r4, r0]
- ldr r0, _02259258 ; =0x0000639C
- sub r0, r0, r1
- mov r1, #0x64
- bl _s32_div_f
- strh r0, [r4, #0xc]
- mov r0, #0xa
- ldrsh r1, [r4, r0]
- mov r0, #0xfa
- lsl r0, r0, #4
- sub r0, r0, r1
- mov r1, #0x64
- bl _s32_div_f
- strh r0, [r4, #0xe]
- ldr r0, _0225925C ; =0x0000070E
- bl FUN_020054C8
- ldr r0, _02259260 ; =MOD11_0225B438
- ldr r2, _02259264 ; =0x000004BA
- add r1, r4, #0
- bl FUN_0200CA44
- ldr r0, _02259268 ; =MOD11_0225B644
- add r1, r4, #0
- bl FUN_02015F34
- cmp r0, #1
- beq _02259232
- bl ErrorHandling
-_02259232:
- ldr r0, _0225926C ; =MOD11_0225B538
- add r1, r4, #0
- mov r2, #0xa
- bl FUN_0200CA60
- str r0, [r4, #4]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02259240: .word 0x000006A2
-_02259244: .word 0x0400104A
-_02259248: .word 0xFFFFC0FF
-_0225924C: .word 0x000090C0
-_02259250: .word 0xFFFF1FFF
-_02259254: .word 0xFFFF9C64
-_02259258: .word 0x0000639C
-_0225925C: .word 0x0000070E
-_02259260: .word MOD11_0225B438
-_02259264: .word 0x000004BA
-_02259268: .word MOD11_0225B644
-_0225926C: .word MOD11_0225B538
-
- thumb_func_start MOD11_02259270
-MOD11_02259270: ; 0x02259270
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldrb r4, [r5, #0x18]
- bl MOD11_02259284
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0225916C
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02259284
-MOD11_02259284: ; 0x02259284
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x30
- add r5, r0, #0
- ldr r0, [r5]
- add r6, r5, #0
- ldrb r7, [r5, #0x18]
- add r6, #0x18
- bl MOD11_022300C4
- add r4, r0, #0
- ldr r0, _02259484 ; =0x0000069E
- strb r7, [r5, r0]
- ldr r0, [r5]
- bl MOD11_0222FF74
- mov r1, #0x20
- tst r0, r1
- beq _022592CA
- ldr r1, _02259488 ; =0x000003A3
- add r0, r4, #0
- bl FUN_0200A914
- mov r1, #0xe9
- str r0, [sp, #0x24]
- add r0, r4, #0
- lsl r1, r1, #2
- bl FUN_0200A914
- str r0, [sp, #0x20]
- ldr r1, _0225948C ; =0x000003A5
- add r0, r4, #0
- bl FUN_0200A914
- str r0, [sp, #0x1c]
- b _0225931A
-_022592CA:
- ldr r0, [r5]
- bl MOD11_0222FF74
- mov r1, #2
- lsl r1, r1, #8
- tst r0, r1
- beq _022592FA
- ldr r1, _02259490 ; =0x000004C7
- add r0, r4, #0
- bl FUN_0200A914
- mov r1, #0xe9
- str r0, [sp, #0x24]
- add r0, r4, #0
- lsl r1, r1, #2
- bl FUN_0200A914
- str r0, [sp, #0x20]
- ldr r1, _0225948C ; =0x000003A5
- add r0, r4, #0
- bl FUN_0200A914
- str r0, [sp, #0x1c]
- b _0225931A
-_022592FA:
- mov r1, #0xe7
- add r0, r4, #0
- lsl r1, r1, #2
- bl FUN_0200A914
- str r0, [sp, #0x24]
- ldr r1, _02259494 ; =0x0000039D
- add r0, r4, #0
- bl FUN_0200A914
- str r0, [sp, #0x20]
- ldr r1, _02259498 ; =0x0000039E
- add r0, r4, #0
- bl FUN_0200A914
- str r0, [sp, #0x1c]
-_0225931A:
- ldr r0, [r5]
- add r1, r7, #0
- bl MOD11_0223022C
- add r1, r0, #0
- ldr r0, [r5]
- bl MOD11_02230CB8
- cmp r0, #1
- bne _0225933E
- mov r1, #0x3a
- add r0, r4, #0
- lsl r1, r1, #4
- bl FUN_0200A914
- add r4, r0, #0
- mov r1, #1
- b _0225934A
-_0225933E:
- ldr r1, _0225949C ; =0x0000039F
- add r0, r4, #0
- bl FUN_0200A914
- add r4, r0, #0
- mov r1, #0
-_0225934A:
- ldr r0, _022594A0 ; =0x000006A3
- mov r3, #2
- strb r1, [r5, r0]
- ldr r0, _022594A4 ; =0x00010203
- ldr r1, _022594A8 ; =0x000004CC
- str r0, [sp]
- ldr r0, _022594AC ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x54
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- ldr r2, [sp, #0x24]
- add r0, r5, #0
- add r1, r5, r1
- bl MOD11_0225A458
- ldr r0, _022594B0 ; =0x00040506
- mov r1, #0x4e
- str r0, [sp]
- mov r3, #2
- lsl r1, r1, #4
- ldr r0, _022594AC ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x28
- str r0, [sp, #0xc]
- mov r0, #0xaa
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- ldr r2, [sp, #0x20]
- add r0, r5, #0
- add r1, r5, r1
- bl MOD11_0225A458
- ldr r0, _022594B4 ; =0x00070809
- ldr r1, _022594B8 ; =0x000004F4
- str r0, [sp]
- mov r3, #2
- ldr r0, _022594AC ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0xd8
- str r0, [sp, #0xc]
- mov r0, #0xaa
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- ldr r2, [sp, #0x1c]
- add r0, r5, #0
- add r1, r5, r1
- bl MOD11_0225A458
- ldr r0, _022594BC ; =0x000A0B0C
- ldr r1, _022594C0 ; =0x00000508
- str r0, [sp]
- mov r3, #2
- ldr r0, _022594AC ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0xb2
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r4, #0
- bl MOD11_0225A458
- ldr r0, [sp, #0x24]
- bl FUN_02021A20
- ldr r0, [sp, #0x20]
- bl FUN_02021A20
- ldr r0, [sp, #0x1c]
- bl FUN_02021A20
- add r0, r4, #0
- bl FUN_02021A20
- ldr r0, [r5]
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- bne _0225947E
- ldrb r1, [r6, #1]
- ldrb r2, [r6, #2]
- ldr r0, [r5]
- bl MOD11_02230014
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0225A164
- ldrh r0, [r6, #6]
- mov r3, #4
- add r1, r4, #0
- str r0, [sp]
- ldrb r0, [r6, #3]
- add r2, r7, #0
- str r0, [sp, #4]
- ldrsh r3, [r6, r3]
- add r0, r5, #0
- bl MOD11_0225A270
- add r4, r0, #0
- ldr r0, _022594A8 ; =0x000004CC
- add r1, sp, #0x2c
- ldr r0, [r5, r0]
- add r2, sp, #0x28
- bl FUN_020119A4
- cmp r7, #4
- bne _0225945E
- ldr r0, _022594C4 ; =0x000004DC
- ldr r1, [sp, #0x2c]
- ldrh r0, [r5, r0]
- add r0, #0x10
- add r0, r1, r0
- str r0, [sp, #0x2c]
- b _02259464
-_0225945E:
- ldr r0, [sp, #0x2c]
- sub r0, #0x10
- str r0, [sp, #0x2c]
-_02259464:
- mov r3, #0x11
- ldr r1, [sp, #0x2c]
- ldr r2, [sp, #0x28]
- lsl r3, r3, #4
- sub r2, r2, r3
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- add r0, r4, #0
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- lsl r3, r3, #0xc
- bl FUN_0200C750
-_0225947E:
- add sp, #0x30
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02259484: .word 0x0000069E
-_02259488: .word 0x000003A3
-_0225948C: .word 0x000003A5
-_02259490: .word 0x000004C7
-_02259494: .word 0x0000039D
-_02259498: .word 0x0000039E
-_0225949C: .word 0x0000039F
-_022594A0: .word 0x000006A3
-_022594A4: .word 0x00010203
-_022594A8: .word 0x000004CC
-_022594AC: .word 0x00004E33
-_022594B0: .word 0x00040506
-_022594B4: .word 0x00070809
-_022594B8: .word 0x000004F4
-_022594BC: .word 0x000A0B0C
-_022594C0: .word 0x00000508
-_022594C4: .word 0x000004DC
-
- thumb_func_start MOD11_022594C8
-MOD11_022594C8: ; 0x022594C8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldrb r4, [r5, #0x18]
- bl MOD11_022594DC
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0225916C
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022594DC
-MOD11_022594DC: ; 0x022594DC
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r5, r0, #0
- bl MOD11_02259284
- ldr r0, [r5]
- bl MOD11_0222FF68
- mov r1, #0x10
- str r1, [sp]
- mov r1, #0x20
- str r1, [sp, #4]
- mov r1, #8
- str r1, [sp, #8]
- mov r1, #0x11
- str r1, [sp, #0xc]
- ldr r2, _02259534 ; =0x000002FF
- add r4, r0, #0
- mov r1, #4
- mov r3, #0
- bl FUN_02018540
- add r0, r4, #0
- mov r1, #5
- bl FUN_0201AC68
- mov r0, #0x4e
- lsl r0, r0, #4
- ldr r0, [r5, r0]
- mov r1, #0
- bl FUN_020119D0
- ldr r0, _02259538 ; =0x000004F4
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
- ldr r0, _0225953C ; =0x00000508
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
- add sp, #0x10
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02259534: .word 0x000002FF
-_02259538: .word 0x000004F4
-_0225953C: .word 0x00000508
-
- thumb_func_start MOD11_02259540
-MOD11_02259540: ; 0x02259540
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldrb r4, [r5, #0x18]
- bl MOD11_02259554
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0225916C
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02259554
-MOD11_02259554: ; 0x02259554
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r5, r0, #0
- bl MOD11_02259284
- ldr r0, [r5]
- bl MOD11_0222FF68
- mov r1, #0x10
- str r1, [sp]
- mov r1, #0xa
- str r1, [sp, #4]
- mov r1, #8
- str r1, [sp, #8]
- mov r1, #0x11
- str r1, [sp, #0xc]
- ldr r2, _022595C0 ; =0x000002FF
- mov r1, #4
- mov r3, #0
- add r4, r0, #0
- bl FUN_02018540
- mov r0, #0x10
- str r0, [sp]
- mov r0, #0xa
- str r0, [sp, #4]
- mov r0, #8
- str r0, [sp, #8]
- mov r0, #0x11
- str r0, [sp, #0xc]
- ldr r2, _022595C0 ; =0x000002FF
- add r0, r4, #0
- mov r1, #4
- mov r3, #0x16
- bl FUN_02018540
- add r0, r4, #0
- mov r1, #5
- bl FUN_0201AC68
- mov r0, #0x4e
- lsl r0, r0, #4
- ldr r0, [r5, r0]
- mov r1, #0
- bl FUN_020119D0
- ldr r0, _022595C4 ; =0x000004F4
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
- add sp, #0x10
- pop {r3, r4, r5, pc}
- nop
-_022595C0: .word 0x000002FF
-_022595C4: .word 0x000004F4
-
- thumb_func_start MOD11_022595C8
-MOD11_022595C8: ; 0x022595C8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- add r5, r0, #0
- add r6, r5, #0
- add r6, #0x18
- bne _022595D8
- bl ErrorHandling
-_022595D8:
- ldrb r1, [r6, #0x10]
- ldr r0, _02259854 ; =0x0000069E
- strb r1, [r5, r0]
- ldr r0, [r5]
- bl MOD11_022300C4
- str r0, [sp, #0x1c]
- ldrb r1, [r6, #0x10]
- add r0, r5, #0
- bl MOD11_0225A69C
- str r0, [sp, #0x20]
- add r0, r5, #0
- bl MOD11_0225A9D4
- ldr r0, _02259858 ; =0x00070809
- ldr r1, _0225985C ; =0x000004CC
- str r0, [sp]
- mov r0, #3
- str r0, [sp, #4]
- ldr r0, _02259860 ; =0x00004E33
- add r1, r5, r1
- str r0, [sp, #8]
- mov r0, #0x40
- str r0, [sp, #0xc]
- mov r0, #0x2e
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x20]
- mov r2, #0
- add r0, #0x28
- str r0, [sp, #0x18]
- add r0, r5, #0
- mov r3, #2
- bl MOD11_0225A458
- ldr r0, _02259858 ; =0x00070809
- mov r1, #0x4e
- str r0, [sp]
- mov r0, #3
- str r0, [sp, #4]
- ldr r0, _02259860 ; =0x00004E33
- lsl r1, r1, #4
- str r0, [sp, #8]
- mov r0, #0xc0
- str r0, [sp, #0xc]
- mov r0, #0x2e
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x20]
- add r1, r5, r1
- add r0, #0x3c
- str r0, [sp, #0x18]
- add r0, r5, #0
- mov r2, #0
- mov r3, #2
- bl MOD11_0225A458
- ldr r0, _02259858 ; =0x00070809
- ldr r1, _02259864 ; =0x000004F4
- str r0, [sp]
- mov r0, #3
- str r0, [sp, #4]
- ldr r0, _02259860 ; =0x00004E33
- add r1, r5, r1
- str r0, [sp, #8]
- mov r0, #0x40
- str r0, [sp, #0xc]
- mov r0, #0x6e
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x20]
- mov r2, #0
- add r0, #0x50
- str r0, [sp, #0x18]
- add r0, r5, #0
- mov r3, #2
- bl MOD11_0225A458
- ldr r0, _02259858 ; =0x00070809
- ldr r1, _02259868 ; =0x00000508
- str r0, [sp]
- mov r0, #3
- str r0, [sp, #4]
- ldr r0, _02259860 ; =0x00004E33
- add r1, r5, r1
- str r0, [sp, #8]
- mov r0, #0xc0
- str r0, [sp, #0xc]
- mov r0, #0x6e
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x20]
- mov r2, #0
- add r0, #0x64
- str r0, [sp, #0x18]
- add r0, r5, #0
- mov r3, #2
- bl MOD11_0225A458
- ldr r0, [sp, #0x20]
- mov r4, #0
- str r0, [sp, #0x28]
- add r0, #0x78
- str r0, [sp, #0x28]
- ldr r0, _0225985C ; =0x000004CC
- add r7, r5, r0
- ldr r0, [sp, #0x20]
- add r0, #0xc8
- str r0, [sp, #0x20]
- b _02259748
-_022596BE:
- add r1, r6, r4
- ldrb r0, [r1, #8]
- ldrb r1, [r1, #0xc]
- bl MOD11_0225B3D4
- str r0, [sp, #0x24]
- str r0, [sp]
- mov r0, #4
- str r0, [sp, #4]
- ldr r0, _02259860 ; =0x00004E33
- ldr r1, _0225986C ; =0x0225F73C
- str r0, [sp, #8]
- lsl r0, r4, #2
- ldrh r1, [r1, r0]
- add r2, r4, #0
- add r2, #9
- str r1, [sp, #0xc]
- ldr r1, _0225986C ; =0x0225F73C
- add r0, r1, r0
- ldrh r0, [r0, #2]
- add r1, r4, #0
- str r0, [sp, #0x10]
- mov r0, #0
- str r0, [sp, #0x14]
- mov r0, #0x14
- mul r1, r0
- ldr r0, [sp, #0x28]
- add r0, r0, r1
- mov r1, #0x14
- mul r1, r2
- mov r2, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r7, r1
- add r3, r2, #0
- bl MOD11_0225A458
- ldr r0, [sp, #0x24]
- ldr r1, _02259870 ; =0x0225F78C
- str r0, [sp]
- mov r0, #4
- str r0, [sp, #4]
- ldr r0, _02259860 ; =0x00004E33
- add r2, r4, #5
- str r0, [sp, #8]
- lsl r0, r4, #2
- ldrh r1, [r1, r0]
- str r1, [sp, #0xc]
- ldr r1, _02259870 ; =0x0225F78C
- add r0, r1, r0
- ldrh r0, [r0, #2]
- add r1, r4, #0
- str r0, [sp, #0x10]
- mov r0, #0
- str r0, [sp, #0x14]
- mov r0, #0x14
- mul r1, r0
- ldr r0, [sp, #0x20]
- add r0, r0, r1
- mov r1, #0x14
- mul r1, r2
- mov r2, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r7, r1
- add r3, r2, #0
- bl MOD11_0225A458
- add r4, r4, #1
-_02259748:
- cmp r4, #4
- blt _022596BE
- ldr r0, [sp, #0x1c]
- ldr r1, _02259874 ; =0x000003A1
- bl FUN_0200A914
- add r4, r0, #0
- ldr r0, _02259878 ; =0x000A0B0C
- ldr r1, _0225987C ; =0x0000051C
- str r0, [sp]
- mov r3, #2
- ldr r0, _02259860 ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0xb2
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r4, #0
- bl MOD11_0225A458
- add r0, r4, #0
- bl FUN_02021A20
- mov r4, #0
- mov r7, #3
- b _022597B0
-_0225978A:
- lsl r0, r4, #1
- ldrh r0, [r6, r0]
- cmp r0, #0
- beq _022597A4
- add r1, r7, #0
- bl GetWazaAttr
- add r1, r0, #0
- add r0, r5, #0
- add r2, r4, #0
- bl MOD11_0225AB34
- b _022597AE
-_022597A4:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0225AB50
- b _022597B4
-_022597AE:
- add r4, r4, #1
-_022597B0:
- cmp r4, #4
- blt _0225978A
-_022597B4:
- ldr r0, [r5]
- bl MOD11_0222FF68
- ldrh r0, [r6]
- cmp r0, #0
- bne _022597E2
- ldr r0, _0225985C ; =0x000004CC
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
- mov r0, #0x53
- lsl r0, r0, #4
- ldr r0, [r5, r0]
- mov r1, #0
- bl FUN_020119D0
- mov r0, #0x16
- lsl r0, r0, #6
- ldr r0, [r5, r0]
- mov r1, #0
- bl FUN_020119D0
-_022597E2:
- ldrh r0, [r6, #2]
- cmp r0, #0
- bne _02259808
- mov r0, #0x4e
- lsl r0, r0, #4
- ldr r0, [r5, r0]
- mov r1, #0
- bl FUN_020119D0
- ldr r0, _02259880 ; =0x00000544
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
- ldr r0, _02259884 ; =0x00000594
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
-_02259808:
- ldrh r0, [r6, #4]
- cmp r0, #0
- bne _0225982C
- ldr r0, _02259864 ; =0x000004F4
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
- ldr r0, _02259888 ; =0x00000558
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
- ldr r0, _0225988C ; =0x000005A8
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
-_0225982C:
- ldrh r0, [r6, #6]
- cmp r0, #0
- bne _02259850
- ldr r0, _02259868 ; =0x00000508
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
- ldr r0, _02259890 ; =0x0000056C
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
- ldr r0, _02259894 ; =0x000005BC
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
-_02259850:
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02259854: .word 0x0000069E
-_02259858: .word 0x00070809
-_0225985C: .word 0x000004CC
-_02259860: .word 0x00004E33
-_02259864: .word 0x000004F4
-_02259868: .word 0x00000508
-_0225986C: .word 0x0225F73C
-_02259870: .word 0x0225F78C
-_02259874: .word 0x000003A1
-_02259878: .word 0x000A0B0C
-_0225987C: .word 0x0000051C
-_02259880: .word 0x00000544
-_02259884: .word 0x00000594
-_02259888: .word 0x00000558
-_0225988C: .word 0x000005A8
-_02259890: .word 0x0000056C
-_02259894: .word 0x000005BC
-
- thumb_func_start MOD11_02259898
-MOD11_02259898: ; 0x02259898
- push {r3, r4, r5, r6, lr}
- sub sp, #0x1c
- add r5, r0, #0
- ldr r0, [r5]
- bl MOD11_022300C4
- mov r1, #0xeb
- lsl r1, r1, #2
- add r6, r0, #0
- bl FUN_0200A914
- add r4, r0, #0
- ldr r1, _0225991C ; =0x000003AD
- add r0, r6, #0
- bl FUN_0200A914
- add r6, r0, #0
- ldr r0, _02259920 ; =0x00010203
- ldr r1, _02259924 ; =0x000004CC
- str r0, [sp]
- mov r3, #2
- ldr r0, _02259928 ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x44
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r4, #0
- bl MOD11_0225A458
- ldr r0, _0225992C ; =0x000A0B0C
- mov r1, #0x4e
- str r0, [sp]
- mov r3, #2
- lsl r1, r1, #4
- ldr r0, _02259928 ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x8c
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r6, #0
- bl MOD11_0225A458
- add r0, r4, #0
- bl FUN_02021A20
- add r0, r6, #0
- bl FUN_02021A20
- add sp, #0x1c
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-_0225991C: .word 0x000003AD
-_02259920: .word 0x00010203
-_02259924: .word 0x000004CC
-_02259928: .word 0x00004E33
-_0225992C: .word 0x000A0B0C
-
- thumb_func_start MOD11_02259930
-MOD11_02259930: ; 0x02259930
- push {r3, r4, r5, r6, lr}
- sub sp, #0x1c
- add r5, r0, #0
- ldr r0, [r5]
- bl MOD11_022300C4
- ldr r1, _022599B4 ; =0x0000049D
- add r6, r0, #0
- bl FUN_0200A914
- add r4, r0, #0
- ldr r1, _022599B8 ; =0x0000049E
- add r0, r6, #0
- bl FUN_0200A914
- add r6, r0, #0
- ldr r0, _022599BC ; =0x00010203
- ldr r1, _022599C0 ; =0x000004CC
- str r0, [sp]
- mov r3, #2
- ldr r0, _022599C4 ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x44
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r4, #0
- bl MOD11_0225A458
- ldr r0, _022599C8 ; =0x000A0B0C
- mov r1, #0x4e
- str r0, [sp]
- mov r3, #2
- lsl r1, r1, #4
- ldr r0, _022599C4 ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x8c
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r6, #0
- bl MOD11_0225A458
- add r0, r4, #0
- bl FUN_02021A20
- add r0, r6, #0
- bl FUN_02021A20
- add sp, #0x1c
- pop {r3, r4, r5, r6, pc}
- nop
-_022599B4: .word 0x0000049D
-_022599B8: .word 0x0000049E
-_022599BC: .word 0x00010203
-_022599C0: .word 0x000004CC
-_022599C4: .word 0x00004E33
-_022599C8: .word 0x000A0B0C
-
- thumb_func_start MOD11_022599CC
-MOD11_022599CC: ; 0x022599CC
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r0, #0
- ldr r0, [r5]
- bl MOD11_022300C4
- add r6, r0, #0
- ldr r0, [r5]
- bl MOD11_02230138
- add r4, r0, #0
- ldr r1, _02259A98 ; =0x000004A2
- add r0, r6, #0
- bl FUN_0200A914
- str r0, [sp, #0x1c]
- ldr r1, _02259A9C ; =0x000004A3
- add r0, r6, #0
- bl FUN_0200A914
- str r0, [sp, #0x20]
- mov r0, #0x64
- mov r1, #5
- bl FUN_020219F4
- add r6, r0, #0
- mov r0, #0x64
- mov r1, #5
- bl FUN_020219F4
- add r7, r0, #0
- ldrh r2, [r5, #0x18]
- add r0, r4, #0
- mov r1, #0
- bl FUN_0200AD5C
- ldr r2, [sp, #0x1c]
- add r0, r4, #0
- add r1, r6, #0
- bl FUN_0200B7B8
- ldr r2, [sp, #0x20]
- add r0, r4, #0
- add r1, r7, #0
- bl FUN_0200B7B8
- ldr r0, _02259AA0 ; =0x00010203
- ldr r1, _02259AA4 ; =0x000004CC
- str r0, [sp]
- mov r3, #2
- ldr r0, _02259AA8 ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x44
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r6, #0
- bl MOD11_0225A458
- ldr r0, _02259AAC ; =0x000A0B0C
- mov r1, #0x4e
- str r0, [sp]
- mov r3, #2
- lsl r1, r1, #4
- ldr r0, _02259AA8 ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x8c
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r7, #0
- bl MOD11_0225A458
- ldr r0, [sp, #0x1c]
- bl FUN_02021A20
- ldr r0, [sp, #0x20]
- bl FUN_02021A20
- add r0, r6, #0
- bl FUN_02021A20
- add r0, r7, #0
- bl FUN_02021A20
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- nop
-_02259A98: .word 0x000004A2
-_02259A9C: .word 0x000004A3
-_02259AA0: .word 0x00010203
-_02259AA4: .word 0x000004CC
-_02259AA8: .word 0x00004E33
-_02259AAC: .word 0x000A0B0C
-
- thumb_func_start MOD11_02259AB0
-MOD11_02259AB0: ; 0x02259AB0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r0, #0
- ldr r0, [r5]
- bl MOD11_022300C4
- add r6, r0, #0
- ldr r0, [r5]
- bl MOD11_02230138
- add r4, r0, #0
- ldr r1, _02259B7C ; =0x000004C1
- add r0, r6, #0
- bl FUN_0200A914
- str r0, [sp, #0x1c]
- ldr r1, _02259B80 ; =0x000004C2
- add r0, r6, #0
- bl FUN_0200A914
- str r0, [sp, #0x20]
- mov r0, #0x64
- mov r1, #5
- bl FUN_020219F4
- add r6, r0, #0
- mov r0, #0x64
- mov r1, #5
- bl FUN_020219F4
- add r7, r0, #0
- ldrh r2, [r5, #0x18]
- add r0, r4, #0
- mov r1, #0
- bl FUN_0200AD5C
- ldr r2, [sp, #0x1c]
- add r0, r4, #0
- add r1, r6, #0
- bl FUN_0200B7B8
- ldr r2, [sp, #0x20]
- add r0, r4, #0
- add r1, r7, #0
- bl FUN_0200B7B8
- ldr r0, _02259B84 ; =0x00010203
- ldr r1, _02259B88 ; =0x000004CC
- str r0, [sp]
- mov r3, #2
- ldr r0, _02259B8C ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x44
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r6, #0
- bl MOD11_0225A458
- ldr r0, _02259B90 ; =0x000A0B0C
- mov r1, #0x4e
- str r0, [sp]
- mov r3, #2
- lsl r1, r1, #4
- ldr r0, _02259B8C ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x8c
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r7, #0
- bl MOD11_0225A458
- ldr r0, [sp, #0x1c]
- bl FUN_02021A20
- ldr r0, [sp, #0x20]
- bl FUN_02021A20
- add r0, r6, #0
- bl FUN_02021A20
- add r0, r7, #0
- bl FUN_02021A20
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- nop
-_02259B7C: .word 0x000004C1
-_02259B80: .word 0x000004C2
-_02259B84: .word 0x00010203
-_02259B88: .word 0x000004CC
-_02259B8C: .word 0x00004E33
-_02259B90: .word 0x000A0B0C
-
- thumb_func_start MOD11_02259B94
-MOD11_02259B94: ; 0x02259B94
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r0, #0
- ldr r0, [r5]
- bl MOD11_022300C4
- add r6, r0, #0
- ldr r0, [r5]
- bl MOD11_02230138
- add r4, r0, #0
- ldr r1, _02259C60 ; =0x000004BF
- add r0, r6, #0
- bl FUN_0200A914
- mov r1, #0x13
- str r0, [sp, #0x1c]
- add r0, r6, #0
- lsl r1, r1, #6
- bl FUN_0200A914
- str r0, [sp, #0x20]
- mov r0, #0x64
- mov r1, #5
- bl FUN_020219F4
- add r6, r0, #0
- mov r0, #0x64
- mov r1, #5
- bl FUN_020219F4
- add r7, r0, #0
- ldrh r2, [r5, #0x18]
- add r0, r4, #0
- mov r1, #0
- bl FUN_0200AD5C
- ldr r2, [sp, #0x1c]
- add r0, r4, #0
- add r1, r6, #0
- bl FUN_0200B7B8
- ldr r2, [sp, #0x20]
- add r0, r4, #0
- add r1, r7, #0
- bl FUN_0200B7B8
- ldr r0, _02259C64 ; =0x00010203
- ldr r1, _02259C68 ; =0x000004CC
- str r0, [sp]
- mov r3, #2
- ldr r0, _02259C6C ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x44
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r6, #0
- bl MOD11_0225A458
- ldr r0, _02259C70 ; =0x000A0B0C
- mov r1, #0x4e
- str r0, [sp]
- mov r3, #2
- lsl r1, r1, #4
- ldr r0, _02259C6C ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x8c
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r7, #0
- bl MOD11_0225A458
- ldr r0, [sp, #0x1c]
- bl FUN_02021A20
- ldr r0, [sp, #0x20]
- bl FUN_02021A20
- add r0, r6, #0
- bl FUN_02021A20
- add r0, r7, #0
- bl FUN_02021A20
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02259C60: .word 0x000004BF
-_02259C64: .word 0x00010203
-_02259C68: .word 0x000004CC
-_02259C6C: .word 0x00004E33
-_02259C70: .word 0x000A0B0C
-
- thumb_func_start MOD11_02259C74
-MOD11_02259C74: ; 0x02259C74
- push {r4, r5, r6, r7, lr}
- sub sp, #0x44
- add r5, r0, #0
- add r7, r5, #0
- add r7, #0x18
- add r0, r7, #0
- add r0, #0x21
- ldrb r1, [r0]
- mov r0, #0x6a
- lsl r0, r0, #4
- strb r1, [r5, r0]
- add r1, r7, #0
- add r1, #0x20
- ldrb r1, [r1]
- sub r0, r0, #2
- strb r1, [r5, r0]
- ldr r0, [r5]
- bl MOD11_022300C4
- str r0, [sp, #0x2c]
- ldr r0, [r5]
- bl MOD11_02230138
- str r0, [sp, #0x1c]
- add r0, r5, #0
- add r1, sp, #0x40
- mov r2, #0
- bl MOD11_0225ACD4
- add r0, r5, #0
- bl MOD11_0225A164
- add r0, r5, #0
- bl MOD11_0225A5C0
- add r1, sp, #0x38
- ldr r0, [r5]
- add r1, #2
- bl MOD11_02231504
- ldr r0, [r5]
- add r1, sp, #0x34
- bl MOD11_022314E0
- mov r0, #0x18
- mov r1, #5
- bl FUN_020219F4
- str r0, [sp, #0x28]
- ldr r0, _02259E38 ; =0x000004CC
- mov r4, #0
- add r0, r5, r0
- str r0, [sp, #0x30]
- b _02259DEC
-_02259CE0:
- add r1, r4, #2
- add r0, sp, #0x34
- ldrb r6, [r0, r1]
- lsl r0, r6, #3
- add r0, r7, r0
- ldrb r1, [r0, #1]
- lsl r0, r1, #0x1d
- lsr r0, r0, #0x1f
- cmp r0, #1
- bne _02259DDA
- add r0, sp, #0x40
- ldrb r0, [r0, r4]
- cmp r0, #1
- bne _02259DDA
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- bne _02259D0E
- ldr r0, [sp, #0x2c]
- ldr r1, _02259E3C ; =0x000003C2
- bl FUN_0200A914
- str r0, [sp, #0x24]
- b _02259D2A
-_02259D0E:
- cmp r0, #1
- bne _02259D1E
- ldr r0, [sp, #0x2c]
- ldr r1, _02259E40 ; =0x000003C3
- bl FUN_0200A914
- str r0, [sp, #0x24]
- b _02259D2A
-_02259D1E:
- mov r1, #0xf1
- ldr r0, [sp, #0x2c]
- lsl r1, r1, #2
- bl FUN_0200A914
- str r0, [sp, #0x24]
-_02259D2A:
- lsl r2, r6, #3
- ldrb r2, [r7, r2]
- ldr r0, [r5]
- add r1, r6, #0
- bl MOD11_02230014
- str r0, [sp, #0x20]
- bl FUN_020690E4
- add r2, r0, #0
- ldr r0, [sp, #0x1c]
- mov r1, #0
- bl FUN_0200ACF8
- ldr r0, [sp, #0x1c]
- ldr r1, [sp, #0x28]
- ldr r2, [sp, #0x24]
- bl FUN_0200B7B8
- mov r0, #1
- tst r0, r4
- beq _02259D5A
- ldr r0, _02259E44 ; =0x00010203
- b _02259D5C
-_02259D5A:
- ldr r0, _02259E48 ; =0x00040506
-_02259D5C:
- str r0, [sp]
- mov r0, #6
- str r0, [sp, #4]
- ldr r0, _02259E4C ; =0x00004E33
- ldr r1, _02259E50 ; =0x0225F7D4
- str r0, [sp, #8]
- lsl r0, r4, #2
- ldrh r1, [r1, r0]
- add r2, r4, #0
- mov r3, #2
- str r1, [sp, #0xc]
- ldr r1, _02259E50 ; =0x0225F7D4
- add r0, r1, r0
- ldrh r0, [r0, #2]
- mov r1, #0x14
- mul r2, r1
- ldr r1, [sp, #0x30]
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- add r1, r1, r2
- str r0, [sp, #0x18]
- ldr r2, [sp, #0x28]
- add r0, r5, #0
- bl MOD11_0225A458
- ldr r0, [sp, #0x24]
- bl FUN_02021A20
- cmp r4, #1
- beq _02259DA2
- cmp r4, #3
- beq _02259DBE
- b _02259DEA
-_02259DA2:
- lsl r0, r6, #3
- add r6, r7, r0
- ldrh r0, [r6, #6]
- mov r3, #4
- ldr r1, [sp, #0x20]
- str r0, [sp]
- ldrb r0, [r6, #2]
- mov r2, #3
- str r0, [sp, #4]
- ldrsh r3, [r6, r3]
- add r0, r5, #0
- bl MOD11_0225A270
- b _02259DEA
-_02259DBE:
- lsl r0, r6, #3
- add r6, r7, r0
- ldrh r0, [r6, #6]
- mov r3, #4
- ldr r1, [sp, #0x20]
- str r0, [sp]
- ldrb r0, [r6, #2]
- mov r2, #5
- str r0, [sp, #4]
- ldrsh r3, [r6, r3]
- add r0, r5, #0
- bl MOD11_0225A270
- b _02259DEA
-_02259DDA:
- add r0, sp, #0x40
- ldrb r0, [r0, r4]
- cmp r0, #0
- bne _02259DEA
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0225ABA4
-_02259DEA:
- add r4, r4, #1
-_02259DEC:
- cmp r4, #4
- bge _02259DF2
- b _02259CE0
-_02259DF2:
- ldr r0, [sp, #0x28]
- bl FUN_02021A20
- ldr r0, [sp, #0x2c]
- ldr r1, _02259E54 ; =0x000003A2
- bl FUN_0200A914
- add r4, r0, #0
- ldr r0, _02259E58 ; =0x000A0B0C
- mov r3, #2
- str r0, [sp]
- ldr r0, _02259E4C ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- ldr r0, _02259E5C ; =0x0225F7C4
- add r2, r4, #0
- ldrh r1, [r0, #0x20]
- str r1, [sp, #0xc]
- ldrh r0, [r0, #0x22]
- ldr r1, _02259E60 ; =0x0000051C
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- bl MOD11_0225A458
- add r0, r4, #0
- bl FUN_02021A20
- add sp, #0x44
- pop {r4, r5, r6, r7, pc}
- nop
-_02259E38: .word 0x000004CC
-_02259E3C: .word 0x000003C2
-_02259E40: .word 0x000003C3
-_02259E44: .word 0x00010203
-_02259E48: .word 0x00040506
-_02259E4C: .word 0x00004E33
-_02259E50: .word 0x0225F7D4
-_02259E54: .word 0x000003A2
-_02259E58: .word 0x000A0B0C
-_02259E5C: .word 0x0225F7C4
-_02259E60: .word 0x0000051C
-
- thumb_func_start MOD11_02259E64
-MOD11_02259E64: ; 0x02259E64
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- mov r0, #0xff
- add r5, r1, #0
- str r0, [sp]
- add r0, r5, #1
- cmp r0, #5
- bhi _02259E8C
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02259E80: ; jump table
- .short _02259E8C - _02259E80 - 2 ; case 0
- .short _02259E8C - _02259E80 - 2 ; case 1
- .short _02259E90 - _02259E80 - 2 ; case 2
- .short _02259EB4 - _02259E80 - 2 ; case 3
- .short _02259EBA - _02259E80 - 2 ; case 4
- .short _02259EC0 - _02259E80 - 2 ; case 5
-_02259E8C:
- add r0, r5, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02259E90:
- ldr r0, _02259F24 ; =0x0000069E
- mov r7, #0
- ldrb r0, [r4, r0]
- add r6, r7, #0
- cmp r0, #0
- beq _02259EA6
- cmp r0, #2
- beq _02259EAA
- cmp r0, #4
- beq _02259EAA
- b _02259EC4
-_02259EA6:
- str r0, [sp]
- b _02259EC4
-_02259EAA:
- ldr r0, _02259F24 ; =0x0000069E
- ldrb r0, [r4, r0]
- sub r0, r0, #2
- str r0, [sp]
- b _02259EC4
-_02259EB4:
- mov r7, #1
- add r6, r7, #0
- b _02259EC4
-_02259EBA:
- mov r7, #2
- mov r6, #1
- b _02259EC4
-_02259EC0:
- mov r7, #3
- mov r6, #1
-_02259EC4:
- add r0, r4, #0
- add r1, r2, #0
- bl MOD11_0225ADD4
- ldr r0, _02259F28 ; =MOD11_0225AE4C
- add r1, r4, #0
- bl MOD11_0225AD80
- ldr r0, _02259F2C ; =0x0225F854
- sub r2, r5, #1
- mov r1, #6
- mul r1, r2
- add r0, r0, r1
- ldr r1, _02259F30 ; =0x000006B4
- lsl r2, r2, #2
- str r0, [r4, r1]
- ldr r0, _02259F34 ; =0x0225F70C
- add r3, r0, r2
- add r0, r1, #4
- str r3, [r4, r0]
- add r0, r1, #0
- mov r3, #1
- add r0, #0xc
- strb r3, [r4, r0]
- add r0, r1, #0
- add r0, #8
- str r5, [r4, r0]
- add r0, r1, #0
- add r0, #0xd
- strb r7, [r4, r0]
- add r3, r1, #0
- ldr r0, [sp]
- add r3, #0xe
- strb r0, [r4, r3]
- add r0, r1, #0
- add r0, #0xf
- strb r6, [r4, r0]
- ldr r0, _02259F38 ; =0x0225F79C
- add r3, r0, r2
- ldrh r2, [r0, r2]
- add r0, r1, #0
- add r0, #0x10
- strh r2, [r4, r0]
- ldrh r0, [r3, #2]
- add r1, #0x12
- strh r0, [r4, r1]
- add r0, r5, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02259F24: .word 0x0000069E
-_02259F28: .word MOD11_0225AE4C
-_02259F2C: .word 0x0225F854
-_02259F30: .word 0x000006B4
-_02259F34: .word 0x0225F70C
-_02259F38: .word 0x0225F79C
-
- thumb_func_start MOD11_02259F3C
-MOD11_02259F3C: ; 0x02259F3C
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- mov r0, #0
- add r4, r1, #0
- mvn r0, r0
- add r1, r2, #0
- cmp r4, r0
- bne _02259F50
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02259F50:
- add r2, r5, #0
- add r2, #0x18
- cmp r4, #1
- blt _02259F66
- cmp r4, #4
- bgt _02259F66
- sub r3, r4, #1
- lsl r3, r3, #1
- ldrh r2, [r2, r3]
- cmp r2, #0
- beq _02259FCA
-_02259F66:
- sub r0, r4, #1
- cmp r4, #4
- bgt _02259F88
- add r2, r4, #1
- bmi _02259F8C
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_02259F7C: ; jump table
- .short _02259F8C - _02259F7C - 2 ; case 0
- .short _02259F8C - _02259F7C - 2 ; case 1
- .short _02259F92 - _02259F7C - 2 ; case 2
- .short _02259F92 - _02259F7C - 2 ; case 3
- .short _02259F92 - _02259F7C - 2 ; case 4
- .short _02259F92 - _02259F7C - 2 ; case 5
-_02259F88:
- cmp r4, #0xff
- beq _02259FA2
-_02259F8C:
- mov r0, #0
- mvn r0, r0
- pop {r3, r4, r5, r6, r7, pc}
-_02259F92:
- mov r2, #6
- mul r2, r0
- ldr r3, _02259FCC ; =0x0225F86C
- lsl r0, r0, #2
- add r7, r3, r2
- ldr r2, _02259FD0 ; =0x0225F7AC
- add r6, r2, r0
- b _02259FA6
-_02259FA2:
- ldr r7, _02259FD4 ; =0x0225F884
- ldr r6, _02259FD8 ; =0x0225F7BC
-_02259FA6:
- add r0, r5, #0
- bl MOD11_0225ADD4
- ldr r0, _02259FDC ; =MOD11_0225AF9C
- add r1, r5, #0
- bl MOD11_0225AD80
- ldr r1, _02259FE0 ; =0x000006B4
- mov r2, #3
- str r7, [r5, r1]
- add r0, r1, #4
- str r6, [r5, r0]
- add r0, r1, #0
- add r0, #0xc
- strb r2, [r5, r0]
- add r1, #8
- str r4, [r5, r1]
- add r0, r4, #0
-_02259FCA:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02259FCC: .word 0x0225F86C
-_02259FD0: .word 0x0225F7AC
-_02259FD4: .word 0x0225F884
-_02259FD8: .word 0x0225F7BC
-_02259FDC: .word MOD11_0225AF9C
-_02259FE0: .word 0x000006B4
-
- thumb_func_start MOD11_02259FE4
-MOD11_02259FE4: ; 0x02259FE4
- push {r4, r5, r6, lr}
- add r5, r0, #0
- mov r0, #0
- add r4, r1, #0
- mvn r0, r0
- cmp r4, r0
- beq _02259FFA
- cmp r4, #1
- beq _02259FFE
- cmp r4, #0xff
- beq _0225A002
-_02259FFA:
- add r0, r4, #0
- pop {r4, r5, r6, pc}
-_02259FFE:
- mov r6, #0
- b _0225A004
-_0225A002:
- mov r6, #1
-_0225A004:
- add r0, r5, #0
- add r1, r2, #0
- bl MOD11_0225ADD4
- ldr r0, _0225A048 ; =MOD11_0225AE4C
- add r1, r5, #0
- bl MOD11_0225AD80
- cmp r4, #1
- ldr r0, _0225A04C ; =0x000006B4
- bne _0225A022
- ldr r1, _0225A050 ; =0x0225F6F6
- str r1, [r5, r0]
- ldr r1, _0225A054 ; =0x0225F6CC
- b _0225A028
-_0225A022:
- ldr r1, _0225A058 ; =0x0225F6F0
- str r1, [r5, r0]
- ldr r1, _0225A05C ; =0x0225F6C8
-_0225A028:
- add r0, r0, #4
- str r1, [r5, r0]
- mov r0, #0x1b
- mov r1, #6
- lsl r0, r0, #6
- strb r1, [r5, r0]
- sub r1, r0, #4
- str r4, [r5, r1]
- add r1, r0, #1
- strb r6, [r5, r1]
- mov r1, #3
- add r0, r0, #3
- strb r1, [r5, r0]
- add r0, r4, #0
- pop {r4, r5, r6, pc}
- nop
-_0225A048: .word MOD11_0225AE4C
-_0225A04C: .word 0x000006B4
-_0225A050: .word 0x0225F6F6
-_0225A054: .word 0x0225F6CC
-_0225A058: .word 0x0225F6F0
-_0225A05C: .word 0x0225F6C8
-
- thumb_func_start MOD11_0225A060
-MOD11_0225A060: ; 0x0225A060
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r5, r1, #0
- add r1, sp, #0
- mov r2, #1
- add r4, r0, #0
- bl MOD11_0225ACD4
- cmp r5, #4
- bgt _0225A090
- add r0, r5, #1
- bmi _0225A094
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225A084: ; jump table
- .short _0225A094 - _0225A084 - 2 ; case 0
- .short _0225A094 - _0225A084 - 2 ; case 1
- .short _0225A09A - _0225A084 - 2 ; case 2
- .short _0225A0AA - _0225A084 - 2 ; case 3
- .short _0225A0BA - _0225A084 - 2 ; case 4
- .short _0225A0CA - _0225A084 - 2 ; case 5
-_0225A090:
- cmp r5, #0xff
- beq _0225A0DA
-_0225A094:
- add sp, #4
- add r0, r5, #0
- pop {r3, r4, r5, r6, pc}
-_0225A09A:
- add r0, sp, #0
- ldrb r0, [r0]
- cmp r0, #0
- bne _0225A116
- mov r0, #0
- add sp, #4
- mvn r0, r0
- pop {r3, r4, r5, r6, pc}
-_0225A0AA:
- add r0, sp, #0
- ldrb r0, [r0, #1]
- cmp r0, #0
- bne _0225A116
- mov r0, #0
- add sp, #4
- mvn r0, r0
- pop {r3, r4, r5, r6, pc}
-_0225A0BA:
- add r0, sp, #0
- ldrb r0, [r0, #2]
- cmp r0, #0
- bne _0225A116
- mov r0, #0
- add sp, #4
- mvn r0, r0
- pop {r3, r4, r5, r6, pc}
-_0225A0CA:
- add r0, sp, #0
- ldrb r0, [r0, #3]
- cmp r0, #0
- bne _0225A116
- mov r0, #0
- add sp, #4
- mvn r0, r0
- pop {r3, r4, r5, r6, pc}
-_0225A0DA:
- add r0, r4, #0
- mov r1, #4
- bl MOD11_0225ADD4
- ldr r0, _0225A14C ; =MOD11_0225AE4C
- add r1, r4, #0
- bl MOD11_0225AD80
- ldr r0, _0225A150 ; =0x0225F8A4
- ldr r1, _0225A154 ; =0x000006B4
- ldr r2, _0225A158 ; =0x0225F80C
- str r0, [r4, r1]
- add r0, r1, #4
- str r2, [r4, r0]
- add r0, r1, #0
- mov r2, #4
- add r0, #0xc
- strb r2, [r4, r0]
- add r0, r1, #0
- add r0, #8
- str r5, [r4, r0]
- add r0, r1, #0
- add r0, #0xd
- strb r2, [r4, r0]
- mov r0, #3
- add r1, #0xf
- strb r0, [r4, r1]
- add sp, #4
- add r0, r5, #0
- pop {r3, r4, r5, r6, pc}
-_0225A116:
- ldr r0, [r4]
- bl MOD11_0222FF68
- ldr r2, _0225A15C ; =0x000002FF
- add r6, r0, #0
- mov r1, #5
- bl FUN_02018768
- add r0, r6, #0
- mov r1, #5
- bl FUN_0201AC68
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0225ADD0
- ldr r0, _0225A160 ; =MOD11_0225B234
- add r1, r4, #0
- bl MOD11_0225AD80
- mov r0, #0x6d
- lsl r0, r0, #4
- str r5, [r4, r0]
- add r0, r5, #0
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- nop
-_0225A14C: .word MOD11_0225AE4C
-_0225A150: .word 0x0225F8A4
-_0225A154: .word 0x000006B4
-_0225A158: .word 0x0225F80C
-_0225A15C: .word 0x000002FF
-_0225A160: .word MOD11_0225B234
-
- thumb_func_start MOD11_0225A164
-MOD11_0225A164: ; 0x0225A164
- push {r4, r5, r6, lr}
- sub sp, #0x18
- add r5, r0, #0
- ldr r0, [r5]
- bl MOD11_02230078
- add r4, r0, #0
- ldr r0, [r5]
- bl MOD11_02230080
- add r6, r0, #0
- ldr r0, [r5]
- bl MOD11_022300CC
- add r5, r0, #0
- bl FUN_0206B888
- mov r1, #0x13
- str r1, [sp]
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r1, #3
- str r1, [sp, #0xc]
- mov r0, #2
- str r0, [sp, #0x10]
- ldr r0, _0225A1DC ; =0x00004E32
- add r2, r4, #0
- str r0, [sp, #0x14]
- add r0, r5, #0
- add r3, r6, #0
- bl FUN_0200C0DC
- bl FUN_0206B890
- add r3, r0, #0
- mov r0, #0
- str r0, [sp]
- ldr r0, _0225A1E0 ; =0x00004E31
- add r1, r6, #0
- str r0, [sp, #4]
- add r0, r4, #0
- mov r2, #0x13
- bl FUN_0200C124
- bl FUN_0206B89C
- add r3, r0, #0
- mov r0, #0
- str r0, [sp]
- ldr r0, _0225A1E0 ; =0x00004E31
- add r1, r6, #0
- str r0, [sp, #4]
- add r0, r4, #0
- mov r2, #0x13
- bl FUN_0200C13C
- add sp, #0x18
- pop {r4, r5, r6, pc}
- nop
-_0225A1DC: .word 0x00004E32
-_0225A1E0: .word 0x00004E31
-
- thumb_func_start MOD11_0225A1E4
-MOD11_0225A1E4: ; 0x0225A1E4
- push {r4, lr}
- ldr r0, [r0]
- bl MOD11_02230080
- ldr r1, _0225A220 ; =0x00004E40
- add r4, r0, #0
- bl FUN_0200C358
- ldr r1, _0225A224 ; =0x00004E41
- add r0, r4, #0
- bl FUN_0200C358
- ldr r1, _0225A228 ; =0x00004E42
- add r0, r4, #0
- bl FUN_0200C358
- ldr r1, _0225A22C ; =0x00004E31
- add r0, r4, #0
- bl FUN_0200C378
- ldr r1, _0225A22C ; =0x00004E31
- add r0, r4, #0
- bl FUN_0200C388
- ldr r1, _0225A230 ; =0x00004E32
- add r0, r4, #0
- bl FUN_0200C368
- pop {r4, pc}
- nop
-_0225A220: .word 0x00004E40
-_0225A224: .word 0x00004E41
-_0225A228: .word 0x00004E42
-_0225A22C: .word 0x00004E31
-_0225A230: .word 0x00004E32
-
- thumb_func_start MOD11_0225A234
-MOD11_0225A234: ; 0x0225A234
- push {r3, r4, r5, r6, r7, lr}
- mov r4, #0
- add r5, r0, #0
- add r6, r4, #0
- add r7, r4, #0
-_0225A23E:
- ldr r0, _0225A268 ; =0x00000624
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _0225A24E
- bl FUN_0200C3DC
- ldr r0, _0225A268 ; =0x00000624
- str r6, [r5, r0]
-_0225A24E:
- ldr r0, _0225A26C ; =0x00000634
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _0225A25E
- bl FUN_0200CAB4
- ldr r0, _0225A26C ; =0x00000634
- str r7, [r5, r0]
-_0225A25E:
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #4
- blt _0225A23E
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225A268: .word 0x00000624
-_0225A26C: .word 0x00000634
-
- thumb_func_start MOD11_0225A270
-MOD11_0225A270: ; 0x0225A270
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x50
- add r6, r2, #0
- add r4, r0, #0
- str r1, [sp, #0xc]
- str r3, [sp, #0x10]
- cmp r6, #2
- blt _0225A284
- sub r5, r6, #2
- b _0225A286
-_0225A284:
- add r5, r6, #0
-_0225A286:
- lsl r0, r5, #2
- add r1, r4, r0
- ldr r0, _0225A3D0 ; =0x00000624
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225A296
- bl ErrorHandling
-_0225A296:
- lsl r0, r5, #2
- add r1, r4, r0
- ldr r0, _0225A3D4 ; =0x00000634
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225A2A6
- bl ErrorHandling
-_0225A2A6:
- cmp r6, #5
- bhi _0225A2CE
- add r0, r6, r6
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225A2B6: ; jump table
- .short _0225A2C2 - _0225A2B6 - 2 ; case 0
- .short _0225A2CE - _0225A2B6 - 2 ; case 1
- .short _0225A2C2 - _0225A2B6 - 2 ; case 2
- .short _0225A2C6 - _0225A2B6 - 2 ; case 3
- .short _0225A2C2 - _0225A2B6 - 2 ; case 4
- .short _0225A2CA - _0225A2B6 - 2 ; case 5
-_0225A2C2:
- ldr r6, _0225A3D8 ; =0x00004E40
- b _0225A2D8
-_0225A2C6:
- ldr r6, _0225A3DC ; =0x00004E41
- b _0225A2D8
-_0225A2CA:
- ldr r6, _0225A3E0 ; =0x00004E42
- b _0225A2D8
-_0225A2CE:
- bl ErrorHandling
- add sp, #0x50
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0225A2D8:
- ldr r0, [r4]
- bl MOD11_02230078
- str r0, [sp, #0x18]
- ldr r0, [r4]
- bl MOD11_02230080
- str r0, [sp, #0x14]
- ldr r0, [sp, #0xc]
- bl FUN_0206B6C8
- add r3, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #2
- str r0, [sp, #4]
- ldr r0, [sp, #0x18]
- ldr r1, [sp, #0x14]
- mov r2, #0x13
- str r6, [sp, #8]
- bl FUN_0200C00C
- ldr r3, _0225A3E4 ; =0x0225F948
- add r2, sp, #0x1c
- mov r7, #6
-_0225A30A:
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- sub r7, r7, #1
- bne _0225A30A
- ldr r0, [r3]
- lsl r3, r5, #2
- str r0, [r2]
- ldr r2, _0225A3E8 ; =0x0225F76C
- str r6, [sp, #0x30]
- ldrh r1, [r2, r3]
- add r0, sp, #0x1c
- strh r1, [r0]
- add r1, r2, r3
- ldrh r1, [r1, #2]
- add r2, sp, #0x1c
- strh r1, [r0, #2]
- ldr r0, [sp, #0x18]
- ldr r1, [sp, #0x14]
- bl FUN_0200C154
- add r3, sp, #0x1c
- mov r1, #0
- mov r2, #2
- ldrsh r1, [r3, r1]
- ldrsh r2, [r3, r2]
- mov r3, #0x11
- lsl r3, r3, #0x10
- add r6, r0, #0
- bl FUN_0200C750
- ldr r0, [sp, #0xc]
- bl FUN_0206B87C
- add r1, r0, #0
- ldr r0, [r6]
- bl FUN_020202DC
- ldr r0, [sp, #0x10]
- mov r7, #0
- cmp r0, #0
- beq _0225A3A8
- ldr r0, [sp, #0x6c]
- cmp r0, #2
- beq _0225A3A8
- cmp r0, #3
- beq _0225A3A8
- ldr r0, [sp, #0x10]
- ldr r1, [sp, #0x68]
- lsl r0, r0, #0x10
- lsl r1, r1, #0x10
- lsr r0, r0, #0x10
- lsr r1, r1, #0x10
- mov r2, #0x30
- bl FUN_02079A54
- cmp r0, #4
- bhi _0225A3A0
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225A388: ; jump table
- .short _0225A3A0 - _0225A388 - 2 ; case 0
- .short _0225A39E - _0225A388 - 2 ; case 1
- .short _0225A39A - _0225A388 - 2 ; case 2
- .short _0225A396 - _0225A388 - 2 ; case 3
- .short _0225A392 - _0225A388 - 2 ; case 4
-_0225A392:
- mov r7, #1
- b _0225A3A0
-_0225A396:
- mov r7, #2
- b _0225A3A0
-_0225A39A:
- mov r7, #3
- b _0225A3A0
-_0225A39E:
- mov r7, #4
-_0225A3A0:
- add r0, r6, #0
- add r1, r7, #0
- bl FUN_0200C5C0
-_0225A3A8:
- add r0, r6, #0
- bl FUN_0200C5A8
- lsl r0, r5, #2
- add r1, r4, r0
- ldr r0, _0225A3D0 ; =0x00000624
- ldr r2, _0225A3EC ; =0x00000514
- str r6, [r1, r0]
- ldr r0, _0225A3F0 ; =MOD11_0225A3F4
- add r1, r6, #0
- bl FUN_0200CA44
- lsl r1, r5, #2
- add r2, r4, r1
- ldr r1, _0225A3D4 ; =0x00000634
- str r0, [r2, r1]
- add r0, r6, #0
- add sp, #0x50
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225A3D0: .word 0x00000624
-_0225A3D4: .word 0x00000634
-_0225A3D8: .word 0x00004E40
-_0225A3DC: .word 0x00004E41
-_0225A3E0: .word 0x00004E42
-_0225A3E4: .word 0x0225F948
-_0225A3E8: .word 0x0225F76C
-_0225A3EC: .word 0x00000514
-_0225A3F0: .word MOD11_0225A3F4
-
- thumb_func_start MOD11_0225A3F4
-MOD11_0225A3F4: ; 0x0225A3F4
- ldr r3, _0225A3FC ; =FUN_0200C5A8
- add r0, r1, #0
- bx r3
- nop
-_0225A3FC: .word FUN_0200C5A8
-
- thumb_func_start MOD11_0225A400
-MOD11_0225A400: ; 0x0225A400
- cmp r0, #3
- bhi _0225A418
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225A410: ; jump table
- .short _0225A418 - _0225A410 - 2 ; case 0
- .short _0225A41C - _0225A410 - 2 ; case 1
- .short _0225A420 - _0225A410 - 2 ; case 2
- .short _0225A424 - _0225A410 - 2 ; case 3
-_0225A418:
- mov r0, #0
- bx lr
-_0225A41C:
- mov r0, #1
- bx lr
-_0225A420:
- mov r0, #3
- bx lr
-_0225A424:
- mov r0, #2
- bx lr
-
- thumb_func_start MOD11_0225A428
-MOD11_0225A428: ; 0x0225A428
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r6, r2, #0
- add r0, r1, #0
- add r1, r4, #0
- mov r2, #0
- add r7, r3, #0
- bl FUN_02002E14
- add r4, r0, #0
- asr r1, r4, #2
- lsr r1, r1, #0x1d
- add r1, r4, r1
- asr r5, r1, #3
- mov r1, #8
- bl FX_ModS32
- cmp r0, #0
- beq _0225A450
- add r5, r5, #1
-_0225A450:
- str r4, [r6]
- str r5, [r7]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225A458
-MOD11_0225A458: ; 0x0225A458
- push {r4, r5, r6, r7, lr}
- sub sp, #0x7c
- add r5, r1, #0
- add r7, r0, #0
- ldr r0, [r5]
- str r2, [sp, #0x18]
- str r3, [sp, #0x1c]
- ldr r6, [sp, #0x9c]
- ldr r4, [sp, #0xa8]
- cmp r0, #0
- beq _0225A472
- bl ErrorHandling
-_0225A472:
- ldr r0, [r7]
- bl MOD11_02230080
- str r0, [sp, #0x20]
- ldr r0, [r7]
- bl MOD11_0222FF68
- str r0, [sp, #0x24]
- cmp r4, #0
- bne _0225A494
- ldr r0, [sp, #0x18]
- ldr r1, [sp, #0x1c]
- add r2, sp, #0x2c
- add r3, sp, #0x28
- bl MOD11_0225A428
- b _0225A49C
-_0225A494:
- ldrh r0, [r4, #0x12]
- str r0, [sp, #0x2c]
- ldrh r0, [r4, #0x10]
- str r0, [sp, #0x28]
-_0225A49C:
- cmp r4, #0
- bne _0225A4DA
- add r0, sp, #0x3c
- bl FUN_0201901C
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- ldr r2, [sp, #0x28]
- ldr r0, [sp, #0x24]
- lsl r2, r2, #0x18
- add r1, sp, #0x3c
- lsr r2, r2, #0x18
- mov r3, #2
- bl FUN_020190EC
- mov r3, #0
- str r3, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- ldr r0, [sp, #0x90]
- ldr r1, [sp, #0x1c]
- str r0, [sp, #8]
- str r3, [sp, #0xc]
- str r3, [sp, #0x10]
- ldr r2, [sp, #0x18]
- add r0, sp, #0x3c
- str r3, [sp, #0x14]
- bl FUN_0201BE3C
- b _0225A4E6
-_0225A4DA:
- add r3, r4, #0
- add r2, sp, #0x3c
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
-_0225A4E6:
- add r0, sp, #0x3c
- mov r1, #2
- mov r2, #5
- bl FUN_02011898
- mov r1, #1
- mov r2, #2
- add r3, sp, #0x30
- bl FUN_0201D568
- ldr r0, [sp, #0xa4]
- cmp r0, #1
- bne _0225A50A
- ldr r1, [sp, #0x2c]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- sub r6, r6, r0
-_0225A50A:
- ldr r0, _0225A588 ; =0x000004C8
- ldr r0, [r7, r0]
- str r0, [sp, #0x4c]
- add r0, sp, #0x3c
- str r0, [sp, #0x50]
- ldr r0, [sp, #0x20]
- bl FUN_0200CA40
- str r0, [sp, #0x54]
- ldr r0, [sp, #0x20]
- ldr r1, [sp, #0x98]
- bl FUN_0200C334
- str r0, [sp, #0x58]
- mov r0, #0
- ldr r1, [sp, #0x34]
- str r0, [sp, #0x5c]
- str r0, [sp, #0x6c]
- mov r0, #0x64
- str r1, [sp, #0x60]
- mov r1, #0x42
- str r0, [sp, #0x70]
- mov r0, #2
- str r0, [sp, #0x74]
- mov r0, #5
- str r0, [sp, #0x78]
- ldr r2, [sp, #0xa0]
- lsl r1, r1, #2
- add r1, r2, r1
- add r0, sp, #0x4c
- str r6, [sp, #0x64]
- str r1, [sp, #0x68]
- bl FUN_020117E8
- ldr r1, [sp, #0x94]
- add r7, r0, #0
- bl FUN_02011AC0
- mov r2, #0x42
- ldr r3, [sp, #0xa0]
- lsl r2, r2, #2
- add r0, r7, #0
- add r1, r6, #0
- add r2, r3, r2
- bl FUN_020118C4
- cmp r4, #0
- bne _0225A570
- add r0, sp, #0x3c
- bl FUN_02019178
-_0225A570:
- str r7, [r5]
- add r3, sp, #0x30
- ldmia r3!, {r0, r1}
- add r2, r5, #4
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- str r0, [r2]
- ldr r0, [sp, #0x2c]
- strh r0, [r5, #0x10]
- add sp, #0x7c
- pop {r4, r5, r6, r7, pc}
- nop
-_0225A588: .word 0x000004C8
-
- thumb_func_start MOD11_0225A58C
-MOD11_0225A58C: ; 0x0225A58C
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- mov r0, #0x4d
- mov r6, #0
- lsl r0, r0, #4
- add r4, r5, r0
- add r7, r6, #0
-_0225A59A:
- ldr r0, _0225A5BC ; =0x000004CC
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _0225A5B0
- bl FUN_02011870
- add r0, r4, #0
- bl FUN_0201D5E8
- ldr r0, _0225A5BC ; =0x000004CC
- str r7, [r5, r0]
-_0225A5B0:
- add r6, r6, #1
- add r5, #0x14
- add r4, #0x14
- cmp r6, #0xd
- blt _0225A59A
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225A5BC: .word 0x000004CC
-
- thumb_func_start MOD11_0225A5C0
-MOD11_0225A5C0: ; 0x0225A5C0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r7, r0, #0
- ldr r0, [r7]
- bl MOD11_0222FF68
- mov r1, #5
- bl FUN_0201886C
- add r4, r0, #0
- add r0, r7, #0
- add r1, sp, #4
- mov r2, #0
- bl MOD11_0225ACD4
- add r0, sp, #0
- ldrb r0, [r0, #4]
- cmp r0, #1
- bne _0225A63A
- add r0, r7, #0
- mov r1, #1
- add r2, sp, #0
- mov r3, #0
- bl MOD11_0225AD2C
- add r0, sp, #0
- ldrb r0, [r0, #2]
- cmp r0, #1
- bne _0225A61E
- mov r5, #0xc
- mov r0, #0xa9
- lsl r6, r5, #5
- lsl r0, r0, #2
- mov r2, #0xf
-_0225A604:
- lsl r1, r6, #1
- add r1, r4, r1
- add r3, r2, #0
- add r1, #0x1e
-_0225A60C:
- add r3, r3, #1
- strh r0, [r1]
- add r1, r1, #2
- cmp r3, #0x10
- ble _0225A60C
- add r5, r5, #1
- add r6, #0x20
- cmp r5, #0x10
- ble _0225A604
-_0225A61E:
- add r0, sp, #0
- ldrb r0, [r0, #3]
- cmp r0, #1
- bne _0225A63A
- mov r0, #0xa1
- lsl r0, r0, #2
- add r1, r4, r0
- mov r2, #2
- add r0, #0x20
-_0225A630:
- add r2, r2, #1
- strh r0, [r1]
- add r1, r1, #2
- cmp r2, #0xc
- ble _0225A630
-_0225A63A:
- add r0, sp, #0
- ldrb r0, [r0, #5]
- cmp r0, #1
- bne _0225A694
- add r0, r7, #0
- mov r1, #2
- add r2, sp, #0
- mov r3, #0
- bl MOD11_0225AD2C
- add r0, sp, #0
- ldrb r0, [r0, #2]
- cmp r0, #1
- bne _0225A668
- ldr r0, _0225A698 ; =0x000002A6
- mov r2, #0x13
- add r1, r4, r0
- sub r0, r0, #2
-_0225A65E:
- add r2, r2, #1
- strh r0, [r1]
- add r1, r1, #2
- cmp r2, #0x1d
- ble _0225A65E
-_0225A668:
- add r0, sp, #0
- ldrb r0, [r0, #3]
- cmp r0, #1
- bne _0225A694
- mov r0, #0xa9
- mov r5, #3
- mov r3, #0x60
- lsl r0, r0, #2
- mov r2, #0xf
-_0225A67A:
- lsl r1, r3, #1
- add r1, r4, r1
- add r6, r2, #0
- add r1, #0x1e
-_0225A682:
- add r6, r6, #1
- strh r0, [r1]
- add r1, r1, #2
- cmp r6, #0x10
- ble _0225A682
- add r5, r5, #1
- add r3, #0x20
- cmp r5, #7
- ble _0225A67A
-_0225A694:
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225A698: .word 0x000002A6
-
- thumb_func_start MOD11_0225A69C
-MOD11_0225A69C: ; 0x0225A69C
- cmp r1, #2
- blt _0225A6A2
- sub r1, r1, #2
-_0225A6A2:
- mov r2, #0x46
- lsl r2, r2, #2
- add r0, #0x68
- mul r2, r1
- add r0, r0, r2
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0225A6B0
-MOD11_0225A6B0: ; 0x0225A6B0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #0x14]
- ldr r0, [sp]
- mov r1, #0x13
- str r0, [sp, #0x10]
- add r0, #0x90
- str r0, [sp, #0x10]
- ldr r0, [sp]
- lsl r1, r1, #4
- str r0, [sp, #0xc]
- add r0, #0xe0
- str r0, [sp, #0xc]
- ldr r0, [sp]
- add r0, r0, r1
- str r0, [sp, #8]
-_0225A6D4:
- mov r0, #0
- str r0, [sp, #0x18]
- ldr r0, [sp]
- ldr r7, [sp, #0x10]
- ldr r6, [sp, #0xc]
- ldr r5, [sp, #8]
- str r0, [sp, #4]
- add r4, r0, #0
-_0225A6E4:
- ldr r0, [sp, #4]
- add r0, #0x80
- ldr r0, [r0]
- bl FreeToHeap
- add r0, r4, #0
- add r0, #0x9c
- ldr r0, [r0]
- cmp r0, #0
- beq _0225A6FE
- add r0, r7, #0
- bl FUN_02019178
-_0225A6FE:
- add r0, r4, #0
- add r0, #0xec
- ldr r0, [r0]
- cmp r0, #0
- beq _0225A70E
- add r0, r6, #0
- bl FUN_02019178
-_0225A70E:
- mov r0, #0x4f
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- cmp r0, #0
- beq _0225A71E
- add r0, r5, #0
- bl FUN_02019178
-_0225A71E:
- ldr r0, [sp, #4]
- add r4, #0x14
- add r0, r0, #4
- str r0, [sp, #4]
- ldr r0, [sp, #0x18]
- add r7, #0x14
- add r0, r0, #1
- add r6, #0x14
- add r5, #0x14
- str r0, [sp, #0x18]
- cmp r0, #4
- blt _0225A6E4
- mov r0, #0x46
- ldr r1, [sp]
- lsl r0, r0, #2
- add r1, r1, r0
- str r1, [sp]
- ldr r1, [sp, #0x10]
- add r1, r1, r0
- str r1, [sp, #0x10]
- ldr r1, [sp, #0xc]
- add r1, r1, r0
- str r1, [sp, #0xc]
- ldr r1, [sp, #8]
- add r0, r1, r0
- str r0, [sp, #8]
- ldr r0, [sp, #0x14]
- add r0, r0, #1
- str r0, [sp, #0x14]
- cmp r0, #4
- blt _0225A6D4
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0225A760
-MOD11_0225A760: ; 0x0225A760
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x50
- add r7, r0, #0
- ldr r0, [r7]
- add r5, r1, #0
- str r2, [sp, #8]
- bl MOD11_022300C4
- add r4, r0, #0
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_0225A69C
- str r0, [sp, #0x38]
- mov r0, #6
- bl FUN_020799E8
- str r0, [sp, #0xc]
- ldr r1, _0225A95C ; =0x000003AA
- add r0, r4, #0
- bl FUN_0200A914
- str r0, [sp, #0x28]
- ldr r0, [r7]
- bl MOD11_02230138
- str r0, [sp, #0x24]
- mov r0, #0x10
- mov r1, #5
- bl FUN_020219F4
- str r0, [sp, #0x30]
- ldr r1, _0225A960 ; =0x000003A9
- add r0, r4, #0
- bl FUN_0200A914
- ldr r4, [sp, #0x38]
- str r0, [sp, #0x2c]
- mov r0, #0
- str r0, [sp, #0x34]
- add r0, r4, #0
- str r0, [sp, #0x1c]
- str r0, [sp, #0x18]
- add r0, #0x28
- str r0, [sp, #0x18]
- add r0, r4, #0
- str r0, [sp, #0x14]
- add r0, #0x78
- str r0, [sp, #0x14]
- add r0, r4, #0
- str r0, [sp, #0x10]
- add r0, #0xc8
- ldr r5, [sp, #8]
- add r6, r4, #0
- str r0, [sp, #0x10]
-_0225A7CE:
- ldrh r0, [r5]
- ldrh r1, [r4]
- cmp r0, r1
- beq _0225A814
- cmp r0, #0
- beq _0225A814
- mov r1, #3
- bl GetWazaAttr
- str r0, [sp, #0x3c]
- bl FUN_0206E12C
- str r0, [sp, #0x40]
- ldr r0, [sp, #0x3c]
- bl FUN_0206E0F0
- add r1, r0, #0
- mov r0, #5
- str r0, [sp]
- ldr r0, [sp, #0x40]
- mov r2, #1
- add r3, sp, #0x4c
- bl FUN_02006BB0
- str r0, [sp, #0x44]
- ldr r0, [sp, #0x4c]
- ldr r1, [sp, #0x1c]
- ldr r0, [r0, #0x14]
- ldr r1, [r1, #0x18]
- ldr r2, [sp, #0xc]
- bl MIi_CpuCopy32
- ldr r0, [sp, #0x44]
- bl FreeToHeap
-_0225A814:
- ldr r0, [r6, #0x34]
- cmp r0, #0
- beq _0225A826
- ldrh r1, [r5]
- ldrh r0, [r4]
- cmp r1, r0
- beq _0225A846
- cmp r1, #0
- beq _0225A846
-_0225A826:
- ldrh r0, [r5]
- mov r1, #5
- bl FUN_0200AA14
- str r0, [sp, #0x48]
- ldr r0, _0225A964 ; =0x00070809
- ldr r1, [sp, #0x48]
- str r0, [sp]
- ldr r3, [sp, #0x18]
- add r0, r7, #0
- mov r2, #2
- bl MOD11_0225A968
- ldr r0, [sp, #0x48]
- bl FUN_02021A20
-_0225A846:
- add r0, r6, #0
- add r0, #0x84
- ldr r0, [r0]
- cmp r0, #0
- beq _0225A876
- add r0, r6, #0
- add r0, #0xd4
- ldr r0, [r0]
- cmp r0, #0
- beq _0225A876
- ldrh r1, [r5]
- cmp r1, #0
- bne _0225A876
- ldrh r0, [r4]
- cmp r1, r0
- bne _0225A876
- ldrh r1, [r5, #8]
- ldrh r0, [r4, #8]
- cmp r1, r0
- bne _0225A876
- ldrh r1, [r5, #0x10]
- ldrh r0, [r4, #0x10]
- cmp r1, r0
- beq _0225A906
-_0225A876:
- mov r0, #1
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- ldrh r2, [r5, #8]
- ldr r0, [sp, #0x24]
- mov r1, #0
- mov r3, #2
- bl FUN_0200AD38
- mov r0, #1
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- ldrh r2, [r5, #0x10]
- ldr r0, [sp, #0x24]
- mov r1, #1
- mov r3, #2
- bl FUN_0200AD38
- ldr r0, [sp, #0x24]
- ldr r1, [sp, #0x30]
- ldr r2, [sp, #0x2c]
- bl FUN_0200B7B8
- ldrh r0, [r5, #8]
- ldrh r1, [r5, #0x10]
- bl MOD11_0225B3D4
- str r0, [sp, #0x20]
- add r0, r6, #0
- add r0, #0x84
- ldr r0, [r0]
- cmp r0, #0
- beq _0225A8CC
- ldrh r1, [r5]
- ldrh r0, [r4]
- cmp r1, r0
- bne _0225A8CC
- ldrh r1, [r5, #8]
- ldrh r0, [r4, #8]
- cmp r1, r0
- beq _0225A8DC
-_0225A8CC:
- ldr r0, [sp, #0x20]
- ldr r1, [sp, #0x30]
- str r0, [sp]
- ldr r3, [sp, #0x14]
- add r0, r7, #0
- mov r2, #0
- bl MOD11_0225A968
-_0225A8DC:
- add r0, r6, #0
- add r0, #0xd4
- ldr r0, [r0]
- cmp r0, #0
- beq _0225A8F6
- ldrh r1, [r5]
- ldrh r0, [r4]
- cmp r1, r0
- bne _0225A8F6
- ldrh r1, [r5, #8]
- ldrh r0, [r4, #8]
- cmp r1, r0
- beq _0225A906
-_0225A8F6:
- ldr r0, [sp, #0x20]
- ldr r1, [sp, #0x28]
- str r0, [sp]
- ldr r3, [sp, #0x10]
- add r0, r7, #0
- mov r2, #0
- bl MOD11_0225A968
-_0225A906:
- ldr r0, [sp, #0x1c]
- add r4, r4, #2
- add r0, r0, #4
- str r0, [sp, #0x1c]
- ldr r0, [sp, #0x18]
- add r5, r5, #2
- add r0, #0x14
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x14]
- add r6, #0x14
- add r0, #0x14
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x10]
- add r0, #0x14
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x34]
- add r0, r0, #1
- str r0, [sp, #0x34]
- cmp r0, #4
- bge _0225A930
- b _0225A7CE
-_0225A930:
- ldr r0, [sp, #0x28]
- bl FUN_02021A20
- ldr r0, [sp, #0x2c]
- bl FUN_02021A20
- ldr r0, [sp, #0x30]
- bl FUN_02021A20
- mov r0, #0xc
-_0225A944:
- ldr r1, [sp, #8]
- ldrh r2, [r1]
- add r1, r1, #2
- str r1, [sp, #8]
- ldr r1, [sp, #0x38]
- strh r2, [r1]
- add r1, r1, #2
- str r1, [sp, #0x38]
- sub r0, r0, #1
- bne _0225A944
- add sp, #0x50
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225A95C: .word 0x000003AA
-_0225A960: .word 0x000003A9
-_0225A964: .word 0x00070809
-
- thumb_func_start MOD11_0225A968
-MOD11_0225A968: ; 0x0225A968
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- add r7, r2, #0
- add r6, r1, #0
- add r5, r0, #0
- add r4, r3, #0
- add r0, r6, #0
- add r1, r7, #0
- add r2, sp, #0x1c
- add r3, sp, #0x18
- bl MOD11_0225A428
- ldr r0, [sp, #0x1c]
- strh r0, [r4, #0x12]
- ldr r0, [sp, #0x18]
- strh r0, [r4, #0x10]
- ldr r0, [r4, #0xc]
- cmp r0, #0
- beq _0225A994
- add r0, r4, #0
- bl FUN_02019178
-_0225A994:
- add r0, r4, #0
- bl FUN_0201901C
- ldr r0, [r5]
- bl MOD11_0222FF68
- mov r1, #0
- str r1, [sp]
- str r1, [sp, #4]
- ldr r2, [sp, #0x18]
- add r1, r4, #0
- lsl r2, r2, #0x18
- lsr r2, r2, #0x18
- mov r3, #2
- bl FUN_020190EC
- mov r3, #0
- str r3, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- ldr r0, [sp, #0x38]
- add r1, r7, #0
- str r0, [sp, #8]
- str r3, [sp, #0xc]
- str r3, [sp, #0x10]
- add r0, r4, #0
- add r2, r6, #0
- str r3, [sp, #0x14]
- bl FUN_0201BE3C
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0225A9D4
-MOD11_0225A9D4: ; 0x0225A9D4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x44
- add r5, r0, #0
- str r0, [sp, #4]
- add r0, #0x18
- str r0, [sp, #4]
- ldr r0, [r5]
- bl MOD11_02230078
- str r0, [sp, #0xc]
- ldr r0, [r5]
- bl MOD11_02230080
- ldr r1, _0225AAA8 ; =0x0000069E
- str r0, [sp, #8]
- ldrb r1, [r5, r1]
- add r0, r5, #0
- bl MOD11_0225A69C
- ldr r4, _0225AAAC ; =0x0225F914
- str r0, [sp]
- add r3, sp, #0x10
- mov r2, #6
-_0225AA02:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0225AA02
- ldr r0, [r4]
- mov r4, #0
- str r0, [r3]
- add r6, sp, #0x10
- b _0225AAA0
-_0225AA14:
- lsl r0, r4, #2
- add r1, r5, r0
- ldr r0, _0225AAB0 ; =0x00000604
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225AA24
- bl ErrorHandling
-_0225AA24:
- ldr r0, [sp, #4]
- lsl r1, r4, #1
- ldrh r0, [r0, r1]
- cmp r0, #0
- beq _0225AA9E
- mov r1, #3
- bl GetWazaAttr
- add r2, r0, #0
- ldr r0, _0225AAB4 ; =0x00004E35
- ldr r1, _0225AAB8 ; =0x0225F72C
- add r0, r4, r0
- str r0, [sp, #0x24]
- lsl r0, r4, #2
- ldrh r1, [r1, r0]
- add r3, sp, #0x10
- strh r1, [r6]
- ldr r1, _0225AAB8 ; =0x0225F72C
- add r0, r1, r0
- ldrh r0, [r0, #2]
- ldr r1, [sp, #8]
- strh r0, [r6, #2]
- ldr r0, [sp, #0xc]
- bl FUN_0206E240
- lsl r1, r4, #2
- add r2, r5, r1
- ldr r1, _0225AAB0 ; =0x00000604
- mov r3, #0x11
- str r0, [r2, r1]
- add r0, r1, #0
- ldr r0, [r2, r0]
- mov r1, #0
- mov r2, #2
- ldrsh r1, [r6, r1]
- ldrsh r2, [r6, r2]
- lsl r3, r3, #0x10
- bl FUN_0200C750
- lsl r0, r4, #2
- add r1, r5, r0
- ldr r0, _0225AAB0 ; =0x00000604
- ldr r0, [r1, r0]
- ldr r0, [r0]
- bl FUN_02020350
- add r7, r0, #0
- mov r0, #6
- bl FUN_020799E8
- add r2, r0, #0
- ldr r0, [sp]
- lsl r3, r4, #2
- add r0, r0, r3
- mov r3, #0x66
- ldr r1, [r7, #8]
- lsl r3, r3, #0x14
- ldr r0, [r0, #0x18]
- add r1, r3, r1
- bl MIi_CpuCopy16
-_0225AA9E:
- add r4, r4, #1
-_0225AAA0:
- cmp r4, #4
- blt _0225AA14
- add sp, #0x44
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0225AAA8: .word 0x0000069E
-_0225AAAC: .word 0x0225F914
-_0225AAB0: .word 0x00000604
-_0225AAB4: .word 0x00004E35
-_0225AAB8: .word 0x0225F72C
-
- thumb_func_start MOD11_0225AABC
-MOD11_0225AABC: ; 0x0225AABC
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, [r5]
- bl MOD11_02230078
- ldr r0, [r5]
- bl MOD11_02230080
- mov r4, #0
- ldr r7, _0225AAEC ; =0x00000604
- add r6, r4, #0
-_0225AAD2:
- ldr r0, [r5, r7]
- cmp r0, #0
- beq _0225AAE0
- bl FUN_0206E270
- ldr r0, _0225AAEC ; =0x00000604
- str r6, [r5, r0]
-_0225AAE0:
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #4
- blt _0225AAD2
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225AAEC: .word 0x00000604
-
- thumb_func_start MOD11_0225AAF0
-MOD11_0225AAF0: ; 0x0225AAF0
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, [r5]
- bl MOD11_02230078
- ldr r0, [r5]
- bl MOD11_02230080
- mov r4, #0
- add r6, r0, #0
- add r7, r4, #0
-_0225AB06:
- ldr r0, _0225AB2C ; =0x00000614
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _0225AB20
- bl FUN_0206E2E8
- ldr r1, _0225AB30 ; =0x00004E39
- add r0, r6, #0
- add r1, r4, r1
- bl FUN_0206E2E0
- ldr r0, _0225AB2C ; =0x00000614
- str r7, [r5, r0]
-_0225AB20:
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #4
- blt _0225AB06
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225AB2C: .word 0x00000614
-_0225AB30: .word 0x00004E39
-
- thumb_func_start MOD11_0225AB34
-MOD11_0225AB34: ; 0x0225AB34
- push {r3, r4, r5, lr}
- ldr r0, [r0]
- add r5, r1, #0
- add r4, r2, #0
- bl MOD11_022300CC
- add r4, #8
- add r1, r5, #0
- mov r2, #5
- mov r3, #1
- str r4, [sp]
- bl MOD08_02211E7C
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0225AB50
-MOD11_0225AB50: ; 0x0225AB50
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, [r5]
- add r4, r1, #0
- bl MOD11_022300CC
- add r6, r0, #0
- mov r7, #0
- b _0225AB96
-_0225AB62:
- ldr r1, _0225AB9C ; =0x0225F6A8
- lsl r2, r4, #1
- add r1, r1, r2
- ldr r2, _0225ABA0 ; =0x0225F74C
- lsl r3, r4, #2
- add r2, r2, r3
- add r0, r5, #0
- mov r3, #3
- str r7, [sp]
- bl MOD11_0225ADD8
- mov r0, #0x20
- str r0, [sp]
- add r3, r4, #0
- mov r1, #7
- add r3, #8
- lsl r3, r3, #0x14
- ldr r2, [r5, #0x58]
- lsl r1, r1, #6
- add r1, r2, r1
- add r0, r6, #0
- mov r2, #1
- lsr r3, r3, #0x10
- bl FUN_02003054
- add r4, r4, #1
-_0225AB96:
- cmp r4, #4
- blt _0225AB62
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225AB9C: .word 0x0225F6A8
-_0225ABA0: .word 0x0225F74C
-
- thumb_func_start MOD11_0225ABA4
-MOD11_0225ABA4: ; 0x0225ABA4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r4, r1, #0
- ldr r1, _0225AC50 ; =0x0225F684
- add r5, r0, #0
- ldrb r2, [r1, #6]
- add r0, sp, #0x10
- strb r2, [r0]
- ldrb r2, [r1, #7]
- strb r2, [r0, #1]
- ldrb r2, [r1, #8]
- ldrb r1, [r1, #9]
- strb r2, [r0, #2]
- strb r1, [r0, #3]
- ldr r0, [r5]
- bl MOD11_0222FF68
- add r6, r0, #0
- ldr r0, [r5]
- bl MOD11_022300CC
- add r7, r0, #0
- mov r0, #0
- str r0, [sp]
- ldr r2, _0225AC54 ; =0x0225F6C0
- lsl r1, r4, #1
- add r1, r2, r1
- ldr r3, _0225AC58 ; =0x0225F71C
- lsl r2, r4, #2
- add r2, r3, r2
- add r0, r5, #0
- mov r3, #4
- bl MOD11_0225ADD8
- mov r0, #0x20
- str r0, [sp]
- add r3, sp, #0x10
- ldrb r3, [r3, r4]
- mov r1, #7
- ldr r2, [r5, #0x58]
- lsl r1, r1, #6
- lsl r3, r3, #0x14
- add r1, r2, r1
- add r0, r7, #0
- mov r2, #1
- lsr r3, r3, #0x10
- bl FUN_02003054
- add r0, r6, #0
- mov r1, #4
- bl FUN_0201AC68
- ldr r0, _0225AC58 ; =0x0225F71C
- lsl r1, r4, #2
- ldrb r2, [r0, r1]
- add r3, r0, r1
- str r2, [sp]
- ldrb r4, [r3, #3]
- ldrb r2, [r3, #2]
- sub r2, r4, r2
- add r2, r2, #1
- lsl r2, r2, #0x18
- lsr r2, r2, #0x18
- str r2, [sp, #4]
- ldrb r0, [r0, r1]
- ldrb r2, [r3, #1]
- mov r1, #5
- sub r0, r2, r0
- add r0, r0, #1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #8]
- mov r0, #0x11
- str r0, [sp, #0xc]
- ldrb r3, [r3, #2]
- ldr r2, _0225AC5C ; =0x000002FF
- add r0, r6, #0
- bl FUN_02018540
- add r0, r6, #0
- mov r1, #5
- bl FUN_0201AC68
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_0225AC50: .word 0x0225F684
-_0225AC54: .word 0x0225F6C0
-_0225AC58: .word 0x0225F71C
-_0225AC5C: .word 0x000002FF
-
- thumb_func_start MOD11_0225AC60
-MOD11_0225AC60: ; 0x0225AC60
- push {r4, r5, r6, lr}
- mov r5, #0
- mov r6, #1
- add r4, r5, #0
-_0225AC68:
- add r0, r5, #4
- cmp r0, #6
- beq _0225AC7A
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- add r1, r4, #0
- bl FUN_0201797C
- b _0225AC84
-_0225AC7A:
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- add r1, r6, #0
- bl FUN_0201797C
-_0225AC84:
- add r5, r5, #1
- cmp r5, #4
- blt _0225AC68
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0225AC8C
-MOD11_0225AC8C: ; 0x0225AC8C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r2, #0
- cmp r1, #1
- bne _0225AC9A
- bl MOD11_0225ACB0
-_0225AC9A:
- cmp r4, #1
- bne _0225ACA8
- ldr r0, _0225ACAC ; =MOD11_0225B76C
- add r1, r5, #0
- mov r2, #0xa
- bl FUN_0200CA98
-_0225ACA8:
- pop {r3, r4, r5, pc}
- nop
-_0225ACAC: .word MOD11_0225B76C
-
- thumb_func_start MOD11_0225ACB0
-MOD11_0225ACB0: ; 0x0225ACB0
- push {r4, lr}
- add r4, r0, #0
- bl MOD11_0225AABC
- add r0, r4, #0
- bl MOD11_0225AAF0
- add r0, r4, #0
- bl MOD11_0225A58C
- add r0, r4, #0
- bl MOD11_0225A1E4
- add r0, r4, #0
- bl MOD11_0225A234
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225ACD4
-MOD11_0225ACD4: ; 0x0225ACD4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- ldr r0, [r5]
- add r4, r1, #0
- add r6, r5, #0
- add r1, sp, #0
- add r7, r2, #0
- add r6, #0x18
- bl MOD11_022314E0
- mov r0, #0
- b _0225AD1E
-_0225ACEE:
- add r2, r0, #2
- add r1, sp, #0
- ldrb r1, [r1, r2]
- cmp r7, #1
- bne _0225AD0A
- lsl r1, r1, #3
- add r1, r6, r1
- ldrb r1, [r1, #1]
- lsl r1, r1, #0x1d
- lsr r1, r1, #0x1f
- bne _0225AD0A
- mov r1, #0
- strb r1, [r4, r0]
- b _0225AD1C
-_0225AD0A:
- mov r1, #0x6a
- lsl r1, r1, #4
- ldrb r1, [r5, r1]
- lsl r2, r0, #2
- lsl r3, r1, #4
- ldr r1, _0225AD28 ; =0x0225F9EC
- add r1, r1, r3
- ldr r1, [r2, r1]
- strb r1, [r4, r0]
-_0225AD1C:
- add r0, r0, #1
-_0225AD1E:
- cmp r0, #4
- blt _0225ACEE
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225AD28: .word 0x0225F9EC
-
- thumb_func_start MOD11_0225AD2C
-MOD11_0225AD2C: ; 0x0225AD2C
- push {r4, lr}
- mov r4, #0x6a
- lsl r4, r4, #4
- ldrb r4, [r0, r4]
- cmp r4, #0xb
- bhi _0225AD76
- add r4, r4, r4
- add r4, pc
- ldrh r4, [r4, #6]
- lsl r4, r4, #0x10
- asr r4, r4, #0x10
- add pc, r4
-_0225AD44: ; jump table
- .short _0225AD5C - _0225AD44 - 2 ; case 0
- .short _0225AD76 - _0225AD44 - 2 ; case 1
- .short _0225AD76 - _0225AD44 - 2 ; case 2
- .short _0225AD76 - _0225AD44 - 2 ; case 3
- .short _0225AD76 - _0225AD44 - 2 ; case 4
- .short _0225AD76 - _0225AD44 - 2 ; case 5
- .short _0225AD76 - _0225AD44 - 2 ; case 6
- .short _0225AD76 - _0225AD44 - 2 ; case 7
- .short _0225AD5C - _0225AD44 - 2 ; case 8
- .short _0225AD5C - _0225AD44 - 2 ; case 9
- .short _0225AD5C - _0225AD44 - 2 ; case 10
- .short _0225AD5C - _0225AD44 - 2 ; case 11
-_0225AD5C:
- mov r4, #0
- add r0, r4, #0
- mov r3, #1
- sub r1, r1, #1
-_0225AD64:
- cmp r4, r1
- bne _0225AD6C
- strb r3, [r2, r4]
- b _0225AD6E
-_0225AD6C:
- strb r0, [r2, r4]
-_0225AD6E:
- add r4, r4, #1
- cmp r4, #4
- blt _0225AD64
- pop {r4, pc}
-_0225AD76:
- add r1, r2, #0
- add r2, r3, #0
- bl MOD11_0225ACD4
- pop {r4, pc}
-
- thumb_func_start MOD11_0225AD80
-MOD11_0225AD80: ; 0x0225AD80
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _0225AD90
- bl ErrorHandling
-_0225AD90:
- mov r0, #0x6b
- lsl r0, r0, #4
- add r0, r4, r0
- mov r1, #0
- mov r2, #0x24
- bl MI_CpuFill8
- ldr r2, _0225ADAC ; =0x00000514
- add r0, r5, #0
- add r1, r4, #0
- bl FUN_0200CA44
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0225ADAC: .word 0x00000514
-
- thumb_func_start MOD11_0225ADB0
-MOD11_0225ADB0: ; 0x0225ADB0
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _0225ADCE
- bl FUN_0200CAB4
- mov r0, #0x6b
- lsl r0, r0, #4
- mov r1, #0
- add r0, r4, r0
- mov r2, #0x24
- str r1, [r4, #8]
- bl MI_CpuFill8
-_0225ADCE:
- pop {r4, pc}
-
- thumb_func_start MOD11_0225ADD0
-MOD11_0225ADD0: ; 0x0225ADD0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0225ADD4
-MOD11_0225ADD4: ; 0x0225ADD4
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0225ADD8
-MOD11_0225ADD8: ; 0x0225ADD8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- ldr r0, [r5]
- add r6, r1, #0
- add r4, r2, #0
- add r7, r3, #0
- bl MOD11_0222FF68
- mov r1, #4
- str r0, [sp, #4]
- bl FUN_0201886C
- mov ip, r0
- lsl r0, r7, #2
- add r0, r5, r0
- ldr r0, [r0, #0x3c]
- ldrb r7, [r4]
- str r0, [sp]
- ldr r0, [sp, #0x20]
- lsl r0, r0, #1
- ldrsh r1, [r6, r0]
- ldrb r0, [r4, #1]
- cmp r7, r0
- bgt _0225AE40
- lsl r6, r7, #5
-_0225AE0C:
- lsl r2, r6, #1
- mov r0, ip
- add r5, r0, r2
- ldr r0, [sp]
- ldrb r3, [r4, #3]
- add r2, r0, r2
- ldrb r0, [r4, #2]
- cmp r0, r3
- bgt _0225AE36
- lsl r3, r0, #1
- add r2, r2, r3
- add r3, r5, r3
-_0225AE24:
- ldrh r5, [r2]
- add r0, r0, #1
- add r2, r2, #2
- add r5, r1, r5
- strh r5, [r3]
- ldrb r5, [r4, #3]
- add r3, r3, #2
- cmp r0, r5
- ble _0225AE24
-_0225AE36:
- ldrb r0, [r4, #1]
- add r7, r7, #1
- add r6, #0x20
- cmp r7, r0
- ble _0225AE0C
-_0225AE40:
- ldr r0, [sp, #4]
- mov r1, #4
- bl FUN_0201AC68
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0225AE4C
-MOD11_0225AE4C: ; 0x0225AE4C
- push {r3, r4, lr}
- sub sp, #0xc
- add r4, r1, #0
- ldr r0, [r4]
- bl MOD11_0222FF68
- mov r3, #0x6b
- lsl r3, r3, #4
- ldrsh r0, [r4, r3]
- cmp r0, #0
- beq _0225AE6C
- cmp r0, #1
- beq _0225AEDC
- cmp r0, #2
- beq _0225AEF8
- b _0225AF66
-_0225AE6C:
- mov r0, #2
- str r0, [sp]
- add r1, r3, #4
- add r2, r3, #0
- add r3, #0x10
- add r2, #8
- ldrb r3, [r4, r3]
- ldr r1, [r4, r1]
- ldr r2, [r4, r2]
- add r0, r4, #0
- bl MOD11_0225ADD8
- ldr r0, _0225AF8C ; =0x000006C1
- add r2, sp, #4
- ldrb r1, [r4, r0]
- mov r0, #0x14
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0225AF90 ; =0x000004CC
- ldr r0, [r1, r0]
- add r1, sp, #8
- bl FUN_020119A4
- ldr r0, _0225AF8C ; =0x000006C1
- ldr r2, [sp, #4]
- ldrb r1, [r4, r0]
- mov r0, #0x14
- sub r2, r2, #2
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0225AF90 ; =0x000004CC
- ldr r0, [r1, r0]
- ldr r1, [sp, #8]
- bl FUN_020118C4
- ldr r0, _0225AF94 ; =0x000006C2
- ldrb r1, [r4, r0]
- cmp r1, #0xff
- beq _0225AECE
- lsl r1, r1, #2
- add r1, r4, r1
- sub r0, #0x9e
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225AECE
- mov r1, #0
- sub r2, r1, #2
- bl FUN_0200C82C
-_0225AECE:
- mov r0, #0x6b
- lsl r0, r0, #4
- ldrsh r1, [r4, r0]
- add sp, #0xc
- add r1, r1, #1
- strh r1, [r4, r0]
- pop {r3, r4, pc}
-_0225AEDC:
- add r0, r3, #2
- ldrsh r0, [r4, r0]
- add r1, r0, #1
- add r0, r3, #2
- strh r1, [r4, r0]
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _0225AF86
- mov r1, #0
- add r0, r3, #2
- strh r1, [r4, r0]
- ldrsh r0, [r4, r3]
- add r0, r0, #1
- strh r0, [r4, r3]
-_0225AEF8:
- mov r0, #1
- ldr r3, _0225AF98 ; =0x000006B4
- str r0, [sp]
- add r2, r3, #4
- ldr r1, [r4, r3]
- add r3, #0xc
- ldrb r3, [r4, r3]
- ldr r2, [r4, r2]
- add r0, r4, #0
- bl MOD11_0225ADD8
- ldr r0, _0225AF8C ; =0x000006C1
- add r2, sp, #4
- ldrb r1, [r4, r0]
- mov r0, #0x14
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0225AF90 ; =0x000004CC
- ldr r0, [r1, r0]
- add r1, sp, #8
- bl FUN_020119A4
- ldr r0, _0225AF8C ; =0x000006C1
- ldr r2, [sp, #4]
- ldrb r1, [r4, r0]
- mov r0, #0x14
- add r2, r2, #1
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0225AF90 ; =0x000004CC
- ldr r0, [r1, r0]
- ldr r1, [sp, #8]
- bl FUN_020118C4
- ldr r0, _0225AF94 ; =0x000006C2
- ldrb r1, [r4, r0]
- cmp r1, #0xff
- beq _0225AF58
- lsl r1, r1, #2
- add r1, r4, r1
- sub r0, #0x9e
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225AF58
- mov r1, #0
- mov r2, #1
- bl FUN_0200C82C
-_0225AF58:
- mov r0, #0x6b
- lsl r0, r0, #4
- ldrsh r1, [r4, r0]
- add sp, #0xc
- add r1, r1, #1
- strh r1, [r4, r0]
- pop {r3, r4, pc}
-_0225AF66:
- add r0, r3, #2
- ldrsh r0, [r4, r0]
- add r1, r0, #1
- add r0, r3, #2
- strh r1, [r4, r0]
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _0225AF86
- add r0, r4, #0
- mov r1, #1
- mov r2, #0
- bl MOD11_0225AC8C
- add r0, r4, #0
- bl MOD11_0225ADB0
-_0225AF86:
- add sp, #0xc
- pop {r3, r4, pc}
- nop
-_0225AF8C: .word 0x000006C1
-_0225AF90: .word 0x000004CC
-_0225AF94: .word 0x000006C2
-_0225AF98: .word 0x000006B4
-
- thumb_func_start MOD11_0225AF9C
-MOD11_0225AF9C: ; 0x0225AF9C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r4, r1, #0
- ldr r0, [r4]
- bl MOD11_0222FF68
- ldr r0, _0225B21C ; =0x000006BC
- add r1, r4, #0
- ldr r0, [r4, r0]
- add r1, #0x18
- cmp r0, #4
- bgt _0225AFCE
- cmp r0, #0
- blt _0225B00A
- add r2, r0, r0
- add r2, pc
- ldrh r2, [r2, #6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0225AFC4: ; jump table
- .short _0225B00A - _0225AFC4 - 2 ; case 0
- .short _0225AFD2 - _0225AFC4 - 2 ; case 1
- .short _0225AFE0 - _0225AFC4 - 2 ; case 2
- .short _0225AFEE - _0225AFC4 - 2 ; case 3
- .short _0225AFFC - _0225AFC4 - 2 ; case 4
-_0225AFCE:
- cmp r0, #0xff
- b _0225B00A
-_0225AFD2:
- mov r0, #5
- str r0, [sp, #8]
- ldrh r0, [r1]
- mov r5, #0
- mov r6, #9
- str r0, [sp, #4]
- b _0225B012
-_0225AFE0:
- mov r0, #6
- str r0, [sp, #8]
- ldrh r0, [r1, #2]
- mov r5, #1
- mov r6, #0xa
- str r0, [sp, #4]
- b _0225B012
-_0225AFEE:
- mov r0, #7
- str r0, [sp, #8]
- ldrh r0, [r1, #4]
- mov r5, #2
- mov r6, #0xb
- str r0, [sp, #4]
- b _0225B012
-_0225AFFC:
- mov r0, #8
- str r0, [sp, #8]
- ldrh r0, [r1, #6]
- mov r5, #3
- mov r6, #0xc
- str r0, [sp, #4]
- b _0225B012
-_0225B00A:
- mov r5, #0
- add r6, r5, #0
- str r5, [sp, #8]
- str r5, [sp, #4]
-_0225B012:
- mov r3, #0x6b
- lsl r3, r3, #4
- ldrsh r0, [r4, r3]
- cmp r0, #0
- beq _0225B026
- cmp r0, #1
- beq _0225B100
- cmp r0, #2
- beq _0225B11E
- b _0225B1F6
-_0225B026:
- mov r0, #2
- str r0, [sp]
- add r1, r3, #4
- add r2, r3, #0
- add r3, #0x10
- add r2, #8
- ldrb r3, [r4, r3]
- ldr r1, [r4, r1]
- ldr r2, [r4, r2]
- add r0, r4, #0
- bl MOD11_0225ADD8
- ldr r0, _0225B21C ; =0x000006BC
- add r1, sp, #0x20
- ldr r0, [r4, r0]
- cmp r0, #0xff
- beq _0225B0DA
- ldr r0, _0225B220 ; =0x000004CC
- add r2, sp, #0x1c
- add r7, r4, r0
- mov r0, #0x14
- mul r0, r5
- str r0, [sp, #0xc]
- ldr r0, [r7, r0]
- bl FUN_020119A4
- ldr r0, [sp, #0xc]
- ldr r2, [sp, #0x1c]
- ldr r0, [r7, r0]
- ldr r1, [sp, #0x20]
- sub r2, r2, #2
- bl FUN_020118C4
- ldr r0, _0225B220 ; =0x000004CC
- add r1, sp, #0x20
- add r7, r4, r0
- mov r0, #0x14
- mul r0, r6
- str r0, [sp, #0x10]
- ldr r0, [r7, r0]
- add r2, sp, #0x1c
- bl FUN_020119A4
- ldr r0, [sp, #0x10]
- ldr r2, [sp, #0x1c]
- ldr r0, [r7, r0]
- ldr r1, [sp, #0x20]
- sub r2, r2, #2
- bl FUN_020118C4
- ldr r0, _0225B220 ; =0x000004CC
- mov r1, #0x14
- add r6, r4, r0
- ldr r0, [sp, #8]
- add r2, sp, #0x1c
- add r7, r0, #0
- mul r7, r1
- ldr r0, [r6, r7]
- add r1, sp, #0x20
- bl FUN_020119A4
- ldr r2, [sp, #0x1c]
- ldr r0, [r6, r7]
- ldr r1, [sp, #0x20]
- sub r2, r2, #2
- bl FUN_020118C4
- ldr r0, [sp, #4]
- cmp r0, #0
- beq _0225B0F2
- lsl r5, r5, #2
- ldr r0, _0225B224 ; =0x00000604
- add r1, r4, r5
- ldr r0, [r1, r0]
- mov r1, #0
- ldr r0, [r0]
- sub r2, r1, #2
- bl FUN_0200C7FC
- ldr r0, _0225B228 ; =0x00000614
- add r1, r4, r5
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225B0F2
- mov r1, #0
- ldr r0, [r0]
- sub r2, r1, #2
- bl FUN_0200C7FC
- b _0225B0F2
-_0225B0DA:
- ldr r0, _0225B22C ; =0x0000051C
- add r2, sp, #0x1c
- ldr r0, [r4, r0]
- bl FUN_020119A4
- ldr r0, _0225B22C ; =0x0000051C
- ldr r2, [sp, #0x1c]
- ldr r0, [r4, r0]
- ldr r1, [sp, #0x20]
- sub r2, r2, #2
- bl FUN_020118C4
-_0225B0F2:
- mov r0, #0x6b
- lsl r0, r0, #4
- ldrsh r1, [r4, r0]
- add sp, #0x24
- add r1, r1, #1
- strh r1, [r4, r0]
- pop {r4, r5, r6, r7, pc}
-_0225B100:
- add r0, r3, #2
- ldrsh r0, [r4, r0]
- add r1, r0, #1
- add r0, r3, #2
- strh r1, [r4, r0]
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bgt _0225B112
- b _0225B216
-_0225B112:
- mov r1, #0
- add r0, r3, #2
- strh r1, [r4, r0]
- ldrsh r0, [r4, r3]
- add r0, r0, #1
- strh r0, [r4, r3]
-_0225B11E:
- mov r0, #1
- ldr r3, _0225B230 ; =0x000006B4
- str r0, [sp]
- add r2, r3, #4
- ldr r1, [r4, r3]
- add r3, #0xc
- ldrb r3, [r4, r3]
- ldr r2, [r4, r2]
- add r0, r4, #0
- bl MOD11_0225ADD8
- ldr r0, _0225B21C ; =0x000006BC
- add r1, sp, #0x20
- ldr r0, [r4, r0]
- cmp r0, #0xff
- beq _0225B1D0
- ldr r0, _0225B220 ; =0x000004CC
- add r2, sp, #0x1c
- add r7, r4, r0
- mov r0, #0x14
- mul r0, r5
- str r0, [sp, #0x14]
- ldr r0, [r7, r0]
- bl FUN_020119A4
- ldr r0, [sp, #0x14]
- ldr r2, [sp, #0x1c]
- ldr r0, [r7, r0]
- ldr r1, [sp, #0x20]
- add r2, r2, #1
- bl FUN_020118C4
- ldr r0, _0225B220 ; =0x000004CC
- add r1, sp, #0x20
- add r7, r4, r0
- mov r0, #0x14
- mul r0, r6
- str r0, [sp, #0x18]
- ldr r0, [r7, r0]
- add r2, sp, #0x1c
- bl FUN_020119A4
- ldr r0, [sp, #0x18]
- ldr r2, [sp, #0x1c]
- ldr r0, [r7, r0]
- ldr r1, [sp, #0x20]
- add r2, r2, #1
- bl FUN_020118C4
- ldr r0, _0225B220 ; =0x000004CC
- mov r1, #0x14
- add r6, r4, r0
- ldr r0, [sp, #8]
- add r2, sp, #0x1c
- add r7, r0, #0
- mul r7, r1
- ldr r0, [r6, r7]
- add r1, sp, #0x20
- bl FUN_020119A4
- ldr r2, [sp, #0x1c]
- ldr r0, [r6, r7]
- ldr r1, [sp, #0x20]
- add r2, r2, #1
- bl FUN_020118C4
- ldr r0, [sp, #4]
- cmp r0, #0
- beq _0225B1E8
- lsl r5, r5, #2
- ldr r0, _0225B224 ; =0x00000604
- add r1, r4, r5
- ldr r0, [r1, r0]
- mov r1, #0
- ldr r0, [r0]
- mov r2, #1
- bl FUN_0200C7FC
- ldr r0, _0225B228 ; =0x00000614
- add r1, r4, r5
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225B1E8
- ldr r0, [r0]
- mov r1, #0
- mov r2, #1
- bl FUN_0200C7FC
- b _0225B1E8
-_0225B1D0:
- ldr r0, _0225B22C ; =0x0000051C
- add r2, sp, #0x1c
- ldr r0, [r4, r0]
- bl FUN_020119A4
- ldr r0, _0225B22C ; =0x0000051C
- ldr r2, [sp, #0x1c]
- ldr r0, [r4, r0]
- ldr r1, [sp, #0x20]
- add r2, r2, #1
- bl FUN_020118C4
-_0225B1E8:
- mov r0, #0x6b
- lsl r0, r0, #4
- ldrsh r1, [r4, r0]
- add sp, #0x24
- add r1, r1, #1
- strh r1, [r4, r0]
- pop {r4, r5, r6, r7, pc}
-_0225B1F6:
- add r0, r3, #2
- ldrsh r0, [r4, r0]
- add r1, r0, #1
- add r0, r3, #2
- strh r1, [r4, r0]
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _0225B216
- mov r1, #1
- add r0, r4, #0
- add r2, r1, #0
- bl MOD11_0225AC8C
- add r0, r4, #0
- bl MOD11_0225ADB0
-_0225B216:
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- nop
-_0225B21C: .word 0x000006BC
-_0225B220: .word 0x000004CC
-_0225B224: .word 0x00000604
-_0225B228: .word 0x00000614
-_0225B22C: .word 0x0000051C
-_0225B230: .word 0x000006B4
-
- thumb_func_start MOD11_0225B234
-MOD11_0225B234: ; 0x0225B234
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r4, r1, #0
- ldr r0, [r4]
- bl MOD11_0222FF68
- mov r1, #0x6b
- lsl r1, r1, #4
- ldrsh r0, [r4, r1]
- cmp r0, #3
- bls _0225B24C
- b _0225B3AE
-_0225B24C:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225B258: ; jump table
- .short _0225B260 - _0225B258 - 2 ; case 0
- .short _0225B2E8 - _0225B258 - 2 ; case 1
- .short _0225B304 - _0225B258 - 2 ; case 2
- .short _0225B38E - _0225B258 - 2 ; case 3
-_0225B260:
- add r1, #0x20
- ldr r1, [r4, r1]
- add r0, r4, #0
- add r2, sp, #4
- mov r3, #1
- bl MOD11_0225AD2C
- mov r5, #0
- mov r7, #2
- add r6, sp, #4
- b _0225B2D6
-_0225B276:
- ldrb r0, [r6, r5]
- cmp r0, #1
- bne _0225B2D4
- mov r1, #6
- add r2, r5, #0
- mul r2, r1
- ldr r1, _0225B3C4 ; =0x0225F88C
- lsl r3, r5, #2
- add r1, r1, r2
- ldr r2, _0225B3C8 ; =0x0225F7FC
- add r0, r4, #0
- add r2, r2, r3
- mov r3, #4
- str r7, [sp]
- bl MOD11_0225ADD8
- mov r0, #0x14
- mul r0, r5
- add r1, r4, r0
- ldr r0, _0225B3CC ; =0x000004CC
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225B2C0
- add r1, sp, #0xc
- add r2, sp, #8
- bl FUN_020119A4
- mov r0, #0x14
- mul r0, r5
- add r1, r4, r0
- ldr r0, _0225B3CC ; =0x000004CC
- ldr r2, [sp, #8]
- ldr r0, [r1, r0]
- ldr r1, [sp, #0xc]
- sub r2, r2, #2
- bl FUN_020118C4
-_0225B2C0:
- lsl r0, r5, #2
- add r1, r4, r0
- ldr r0, _0225B3D0 ; =0x00000624
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225B2D4
- mov r1, #0
- sub r2, r1, #2
- bl FUN_0200C82C
-_0225B2D4:
- add r5, r5, #1
-_0225B2D6:
- cmp r5, #4
- blt _0225B276
- mov r0, #0x6b
- lsl r0, r0, #4
- ldrsh r1, [r4, r0]
- add sp, #0x10
- add r1, r1, #1
- strh r1, [r4, r0]
- pop {r3, r4, r5, r6, r7, pc}
-_0225B2E8:
- add r0, r1, #2
- ldrsh r0, [r4, r0]
- add r2, r0, #1
- add r0, r1, #2
- strh r2, [r4, r0]
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _0225B3BE
- mov r2, #0
- add r0, r1, #2
- strh r2, [r4, r0]
- ldrsh r0, [r4, r1]
- add r0, r0, #1
- strh r0, [r4, r1]
-_0225B304:
- mov r1, #0x6d
- lsl r1, r1, #4
- ldr r1, [r4, r1]
- add r0, r4, #0
- add r2, sp, #4
- mov r3, #1
- bl MOD11_0225AD2C
- mov r5, #0
- mov r7, #1
- add r6, sp, #4
- b _0225B37C
-_0225B31C:
- ldrb r0, [r6, r5]
- cmp r0, #1
- bne _0225B37A
- mov r1, #6
- add r2, r5, #0
- mul r2, r1
- ldr r1, _0225B3C4 ; =0x0225F88C
- lsl r3, r5, #2
- add r1, r1, r2
- ldr r2, _0225B3C8 ; =0x0225F7FC
- add r0, r4, #0
- add r2, r2, r3
- mov r3, #4
- str r7, [sp]
- bl MOD11_0225ADD8
- mov r0, #0x14
- mul r0, r5
- add r1, r4, r0
- ldr r0, _0225B3CC ; =0x000004CC
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225B366
- add r1, sp, #0xc
- add r2, sp, #8
- bl FUN_020119A4
- mov r0, #0x14
- mul r0, r5
- add r1, r4, r0
- ldr r0, _0225B3CC ; =0x000004CC
- ldr r2, [sp, #8]
- ldr r0, [r1, r0]
- ldr r1, [sp, #0xc]
- add r2, r2, #1
- bl FUN_020118C4
-_0225B366:
- lsl r0, r5, #2
- add r1, r4, r0
- ldr r0, _0225B3D0 ; =0x00000624
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225B37A
- mov r1, #0
- mov r2, #1
- bl FUN_0200C82C
-_0225B37A:
- add r5, r5, #1
-_0225B37C:
- cmp r5, #4
- blt _0225B31C
- mov r0, #0x6b
- lsl r0, r0, #4
- ldrsh r1, [r4, r0]
- add sp, #0x10
- add r1, r1, #1
- strh r1, [r4, r0]
- pop {r3, r4, r5, r6, r7, pc}
-_0225B38E:
- add r0, r1, #2
- ldrsh r0, [r4, r0]
- add r2, r0, #1
- add r0, r1, #2
- strh r2, [r4, r0]
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _0225B3BE
- mov r2, #0
- add r0, r1, #2
- strh r2, [r4, r0]
- ldrsh r0, [r4, r1]
- add sp, #0x10
- add r0, r0, #1
- strh r0, [r4, r1]
- pop {r3, r4, r5, r6, r7, pc}
-_0225B3AE:
- mov r1, #1
- add r0, r4, #0
- add r2, r1, #0
- bl MOD11_0225AC8C
- add r0, r4, #0
- bl MOD11_0225ADB0
-_0225B3BE:
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225B3C4: .word 0x0225F88C
-_0225B3C8: .word 0x0225F7FC
-_0225B3CC: .word 0x000004CC
-_0225B3D0: .word 0x00000624
-
- thumb_func_start MOD11_0225B3D4
-MOD11_0225B3D4: ; 0x0225B3D4
- cmp r0, #0
- bne _0225B3DC
- ldr r0, _0225B42C ; =0x00070800
- bx lr
-_0225B3DC:
- cmp r1, r0
- bne _0225B3E4
- ldr r0, _0225B430 ; =0x00010200
- bx lr
-_0225B3E4:
- cmp r1, #2
- bgt _0225B3F0
- cmp r0, #1
- bne _0225B428
- ldr r0, _0225B434 ; =0x00050600
- bx lr
-_0225B3F0:
- cmp r1, #7
- bgt _0225B408
- cmp r0, #1
- beq _0225B3FE
- cmp r0, #2
- beq _0225B402
- b _0225B428
-_0225B3FE:
- ldr r0, _0225B434 ; =0x00050600
- bx lr
-_0225B402:
- mov r0, #0xc1
- lsl r0, r0, #0xa
- bx lr
-_0225B408:
- asr r2, r1, #1
- lsr r2, r2, #0x1e
- add r2, r1, r2
- asr r2, r2, #2
- cmp r0, r2
- bgt _0225B418
- ldr r0, _0225B434 ; =0x00050600
- bx lr
-_0225B418:
- lsr r2, r1, #0x1f
- add r2, r1, r2
- asr r1, r2, #1
- cmp r0, r1
- bgt _0225B428
- mov r0, #0xc1
- lsl r0, r0, #0xa
- bx lr
-_0225B428:
- ldr r0, _0225B430 ; =0x00010200
- bx lr
- .align 2, 0
-_0225B42C: .word 0x00070800
-_0225B430: .word 0x00010200
-_0225B434: .word 0x00050600
-
- thumb_func_start MOD11_0225B438
-MOD11_0225B438: ; 0x0225B438
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- ldr r0, [r5]
- ldr r0, [r0]
- bl MOD11_0222FF68
- add r4, r0, #0
- ldrb r0, [r5, #0x13]
- cmp r0, #0
- beq _0225B454
- cmp r0, #1
- beq _0225B4AA
- b _0225B4D6
-_0225B454:
- mov r2, #8
- ldrsh r1, [r5, r2]
- ldr r0, _0225B528 ; =0x000018E7
- add r1, r1, r0
- strh r1, [r5, #8]
- mov r1, #0xa
- ldrsh r3, [r5, r1]
- mov r1, #0xfa
- lsl r1, r1, #2
- sub r1, r3, r1
- strh r1, [r5, #0xa]
- ldrsh r1, [r5, r2]
- lsl r0, r0, #2
- sub r0, r0, r1
- mov r1, #0x64
- bl _s32_div_f
- strh r0, [r5, #0xc]
- mov r0, #0xa
- ldrsh r0, [r5, r0]
- mov r1, #0x64
- neg r0, r0
- bl _s32_div_f
- strh r0, [r5, #0xe]
- mov r0, #8
- ldrsh r0, [r5, r0]
- cmp r0, #0
- bge _0225B496
- mov r0, #0xa
- ldrsh r0, [r5, r0]
- cmp r0, #0
- bgt _0225B526
-_0225B496:
- mov r1, #0
- strh r1, [r5, #8]
- mov r0, #0x90
- strh r0, [r5, #0xa]
- strh r1, [r5, #0xc]
- strh r1, [r5, #0xe]
- ldrb r0, [r5, #0x13]
- add r0, r0, #1
- strb r0, [r5, #0x13]
- pop {r4, r5, r6, pc}
-_0225B4AA:
- ldr r1, [r5]
- ldr r0, _0225B52C ; =0x000006A2
- mov r2, #0
- strb r2, [r1, r0]
- ldr r0, [r5, #4]
- bl FUN_0200CAB4
- bl FUN_02015F1C
- ldr r2, _0225B530 ; =0x04001000
- ldr r0, _0225B534 ; =0xFFFF1FFF
- ldr r1, [r2]
- and r0, r1
- str r0, [r2]
- ldr r0, [r5]
- mov r1, #1
- bl MOD11_0225B77C
- ldrb r0, [r5, #0x13]
- add r0, r0, #1
- strb r0, [r5, #0x13]
- pop {r4, r5, r6, pc}
-_0225B4D6:
- ldr r0, [r5]
- bl MOD11_0225B780
- cmp r0, #0
- beq _0225B526
- mov r2, #0
- add r0, r4, #0
- mov r1, #4
- add r3, r2, #0
- bl FUN_020179E0
- add r0, r4, #0
- mov r1, #4
- mov r2, #3
- mov r3, #0
- bl FUN_020179E0
- mov r2, #0
- add r0, r4, #0
- mov r1, #5
- add r3, r2, #0
- bl FUN_020179E0
- add r0, r4, #0
- mov r1, #5
- mov r2, #3
- mov r3, #0
- bl FUN_020179E0
- ldr r0, [r5]
- mov r1, #1
- ldr r0, [r0]
- bl MOD11_022312AC
- add r0, r5, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
-_0225B526:
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0225B528: .word 0x000018E7
-_0225B52C: .word 0x000006A2
-_0225B530: .word 0x04001000
-_0225B534: .word 0xFFFF1FFF
-
- thumb_func_start MOD11_0225B538
-MOD11_0225B538: ; 0x0225B538
- push {r4, r5, r6, lr}
- add r5, r1, #0
- ldr r0, [r5]
- ldr r0, [r0]
- bl MOD11_0222FF68
- add r6, r0, #0
- ldrb r0, [r5, #0x12]
- cmp r0, #4
- bne _0225B586
- mov r0, #0xc
- ldrsh r1, [r5, r0]
- mov r0, #0xff
- sub r3, r0, r1
- cmp r3, #0
- ble _0225B55A
- mov r3, #0
-_0225B55A:
- add r0, r6, #0
- mov r1, #4
- mov r2, #0
- bl FUN_020179E0
- mov r3, #0xc
- ldrsh r4, [r5, r3]
- mov r3, #0xff
- add r0, r6, #0
- mov r1, #5
- mov r2, #0
- sub r3, r3, r4
- bl FUN_020179E0
- mov r0, #8
- ldrsh r0, [r5, r0]
- mov r1, #0x64
- neg r0, r0
- bl _s32_div_f
- add r4, r0, #0
- b _0225B5B6
-_0225B586:
- mov r0, #0xc
- ldrsh r3, [r5, r0]
- cmp r3, #0
- bge _0225B590
- mov r3, #0
-_0225B590:
- add r0, r6, #0
- mov r1, #4
- mov r2, #0
- bl FUN_020179E0
- mov r3, #0xc
- ldrsh r3, [r5, r3]
- add r0, r6, #0
- mov r1, #5
- mov r2, #0
- bl FUN_020179E0
- mov r0, #8
- ldrsh r0, [r5, r0]
- mov r1, #0x64
- bl _s32_div_f
- add r4, r0, #0
- add r4, #0xff
-_0225B5B6:
- add r0, r6, #0
- mov r1, #4
- mov r2, #3
- mov r3, #0
- bl FUN_020179E0
- add r0, r6, #0
- mov r1, #5
- mov r2, #3
- mov r3, #0
- bl FUN_020179E0
- mov r0, #0xa
- ldrsh r0, [r5, r0]
- mov r1, #0x64
- bl _s32_div_f
- add r0, #0x90
- cmp r4, #0
- bge _0225B5E2
- mov r4, #0
- b _0225B5E8
-_0225B5E2:
- cmp r4, #0xff
- ble _0225B5E8
- mov r4, #0xff
-_0225B5E8:
- cmp r0, #0xc0
- ble _0225B5F0
- mov r0, #0xc0
- b _0225B5F6
-_0225B5F0:
- cmp r0, #0
- bge _0225B5F6
- mov r0, #0
-_0225B5F6:
- ldrb r1, [r5, #0x12]
- cmp r1, #4
- bne _0225B60A
- lsl r1, r4, #0x18
- ldr r2, _0225B63C ; =0x04001040
- lsr r1, r1, #0x18
- strh r1, [r2]
- mov r1, #0x90
- strh r1, [r2, #4]
- b _0225B620
-_0225B60A:
- cmp r4, #0
- bne _0225B610
- mov r4, #1
-_0225B610:
- mov r1, #0xff
- lsl r2, r4, #8
- lsl r1, r1, #8
- and r1, r2
- ldr r2, _0225B63C ; =0x04001040
- strh r1, [r2]
- mov r1, #0x90
- strh r1, [r2, #4]
-_0225B620:
- ldr r2, _0225B640 ; =0x04001042
- mov r1, #0xff
- lsl r0, r0, #0x18
- strh r1, [r2]
- lsr r1, r0, #0x18
- mov r0, #9
- lsl r0, r0, #0xc
- orr r0, r1
- strh r0, [r2, #4]
- mov r0, #0xe
- ldrsh r0, [r5, r0]
- strh r0, [r5, #0x10]
- pop {r4, r5, r6, pc}
- nop
-_0225B63C: .word 0x04001040
-_0225B640: .word 0x04001042
-
- thumb_func_start MOD11_0225B644
-MOD11_0225B644: ; 0x0225B644
- push {r4, r5, r6, lr}
- add r4, r0, #0
- ldr r0, _0225B6FC ; =0x04000006
- ldrh r0, [r0]
- cmp r0, #0x90
- bne _0225B68E
- ldr r0, [r4]
- ldr r0, [r0]
- bl MOD11_0222FF68
- mov r2, #0
- mov r1, #4
- add r3, r2, #0
- add r5, r0, #0
- bl FUN_020179E0
- mov r3, #0x10
- ldrsh r3, [r4, r3]
- add r0, r5, #0
- mov r1, #4
- mov r2, #3
- bl FUN_020179E0
- mov r2, #0
- add r0, r5, #0
- mov r1, #5
- add r3, r2, #0
- bl FUN_020179E0
- mov r3, #0x10
- ldrsh r3, [r4, r3]
- add r0, r5, #0
- mov r1, #5
- mov r2, #3
- bl FUN_020179E0
- pop {r4, r5, r6, pc}
-_0225B68E:
- cmp r0, #0xc0
- ble _0225B6F8
- ldr r0, [r4]
- ldr r0, [r0]
- bl MOD11_0222FF68
- ldrb r1, [r4, #0x12]
- add r5, r0, #0
- cmp r1, #4
- bne _0225B6C6
- mov r3, #0xc
- ldrsh r6, [r4, r3]
- mov r3, #0xff
- mov r1, #4
- mov r2, #0
- sub r3, r3, r6
- bl FUN_020179E0
- mov r3, #0xc
- ldrsh r4, [r4, r3]
- mov r3, #0xff
- add r0, r5, #0
- mov r1, #5
- mov r2, #0
- sub r3, r3, r4
- bl FUN_020179E0
- b _0225B6E0
-_0225B6C6:
- mov r3, #0xc
- ldrsh r3, [r4, r3]
- mov r1, #4
- mov r2, #0
- bl FUN_020179E0
- mov r3, #0xc
- ldrsh r3, [r4, r3]
- add r0, r5, #0
- mov r1, #5
- mov r2, #0
- bl FUN_020179E0
-_0225B6E0:
- add r0, r5, #0
- mov r1, #4
- mov r2, #3
- mov r3, #0
- bl FUN_020179E0
- add r0, r5, #0
- mov r1, #5
- mov r2, #3
- mov r3, #0
- bl FUN_020179E0
-_0225B6F8:
- pop {r4, r5, r6, pc}
- nop
-_0225B6FC: .word 0x04000006
-
- thumb_func_start MOD11_0225B700
-MOD11_0225B700: ; 0x0225B700
- push {r3, r4, r5, r6, r7, lr}
- str r0, [sp]
- ldr r0, _0225B760 ; =0x0000069F
- ldr r2, _0225B764 ; =0x0225FAAC
- ldrsb r1, [r1, r0]
- mov r0, #0x30
- ldr r7, _0225B768 ; =0x0000FFFF
- mul r0, r1
- add r6, r2, r0
- mov r4, #0
- add r5, r6, #0
-_0225B716:
- ldrh r0, [r5, #4]
- cmp r0, r7
- bne _0225B72A
- add r0, r4, #4
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- mov r1, #0
- bl FUN_0201797C
- b _0225B736
-_0225B72A:
- add r0, r4, #4
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- mov r1, #1
- bl FUN_0201797C
-_0225B736:
- add r4, r4, #1
- add r5, r5, #2
- cmp r4, #4
- blt _0225B716
- mov r4, #0
-_0225B740:
- ldrh r1, [r6, #0xc]
- add r0, r4, #4
- lsl r0, r0, #0x18
- lsl r1, r1, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_020178BC
- add r4, r4, #1
- add r6, r6, #2
- cmp r4, #4
- blt _0225B740
- ldr r0, [sp]
- bl FUN_0200CAB4
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225B760: .word 0x0000069F
-_0225B764: .word 0x0225FAAC
-_0225B768: .word 0x0000FFFF
-
- thumb_func_start MOD11_0225B76C
-MOD11_0225B76C: ; 0x0225B76C
- push {r4, lr}
- add r4, r0, #0
- bl MOD11_0225AC60
- add r0, r4, #0
- bl FUN_0200CAB4
- pop {r4, pc}
-
- thumb_func_start MOD11_0225B77C
-MOD11_0225B77C: ; 0x0225B77C
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0225B780
-MOD11_0225B780: ; 0x0225B780
- ldr r1, _0225B790 ; =0x00000698
- ldr r0, [r0, r1]
- cmp r0, #0
- bne _0225B78C
- mov r0, #1
- bx lr
-_0225B78C:
- mov r0, #0
- bx lr
- .align 2, 0
-_0225B790: .word 0x00000698
-
- thumb_func_start MOD11_0225B794
-MOD11_0225B794: ; 0x0225B794
- push {r3, r4, r5, lr}
- sub sp, #8
- add r5, r1, #0
- ldr r0, [r5]
- bl MOD11_022300CC
- add r4, r0, #0
- bl FUN_020038E4
- cmp r0, #0
- bne _0225B814
- ldr r0, _0225B818 ; =0x000006AA
- mov r1, #1
- ldrsh r0, [r5, r0]
- add r2, r1, #0
- add r3, r1, #0
- asr r0, r0, #8
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp]
- ldr r0, _0225B81C ; =0x00007FFF
- str r0, [sp, #4]
- add r0, r4, #0
- bl FUN_020039E8
- ldr r1, _0225B820 ; =0x000006A8
-_0225B7C8:
- ldrb r0, [r5, r1]
- cmp r0, #0
- bne _0225B7DA
- add r0, r1, #2
- ldrsh r2, [r5, r0]
- mov r0, #2
- lsl r0, r0, #8
- add r2, r2, r0
- b _0225B7E4
-_0225B7DA:
- add r0, r1, #2
- ldrsh r2, [r5, r0]
- mov r0, #2
- lsl r0, r0, #8
- sub r2, r2, r0
-_0225B7E4:
- add r0, r1, #2
- strh r2, [r5, r0]
- ldr r0, _0225B818 ; =0x000006AA
- mov r1, #0x11
- ldrsh r2, [r5, r0]
- lsl r1, r1, #8
- cmp r2, r1
- blt _0225B804
- mov r1, #0xf
- lsl r1, r1, #8
- strh r1, [r5, r0]
- mov r1, #1
- sub r0, r0, #2
- add sp, #8
- strb r1, [r5, r0]
- pop {r3, r4, r5, pc}
-_0225B804:
- cmp r2, #0
- bgt _0225B814
- mov r1, #1
- lsl r1, r1, #8
- strh r1, [r5, r0]
- mov r1, #0
- sub r0, r0, #2
- strb r1, [r5, r0]
-_0225B814:
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0225B818: .word 0x000006AA
-_0225B81C: .word 0x00007FFF
-_0225B820: .word 0x000006A8
-
- thumb_func_start MOD11_0225B824
-MOD11_0225B824: ; 0x0225B824
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- bl FUN_02002BD4
- add r6, r0, #0
- bl FUN_02002BF4
- add r7, r0, #0
- bl FUN_02002BE4
- bl FUN_02002C04
- ldr r0, [r5]
- bl MOD11_022300CC
- add r4, r0, #0
- bl FUN_020038E4
- cmp r0, #0
- bne _0225B8A8
- add r0, r4, #0
- mov r1, #1
- bl FUN_02003204
- add r4, r0, #0
- ldr r0, _0225B8AC ; =0x021C48F8
- ldrh r0, [r0, #0x22]
- cmp r0, #0
- beq _0225B888
- cmp r6, #1
- beq _0225B866
- cmp r7, #1
- bne _0225B888
-_0225B866:
- ldr r1, [r5, #0x5c]
- add r0, r4, #0
- add r0, #0x16
- add r1, #0x16
- mov r2, #0xa
- bl memcmp
- cmp r0, #0
- bne _0225B8A8
- ldr r0, [r5, #0x60]
- add r4, #0x16
- add r0, #0x16
- add r1, r4, #0
- mov r2, #0xa
- bl MIi_CpuCopy16
- pop {r3, r4, r5, r6, r7, pc}
-_0225B888:
- ldr r1, [r5, #0x60]
- add r0, r4, #0
- add r0, #0x16
- add r1, #0x16
- mov r2, #0xa
- bl memcmp
- cmp r0, #0
- bne _0225B8A8
- ldr r0, [r5, #0x5c]
- add r4, #0x16
- add r0, #0x16
- add r1, r4, #0
- mov r2, #0xa
- bl MIi_CpuCopy16
-_0225B8A8:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225B8AC: .word 0x021C48F8
-
- thumb_func_start MOD11_0225B8B0
-MOD11_0225B8B0: ; 0x0225B8B0
- push {r4, r5, r6, lr}
- mov r6, #0x6f
- lsl r6, r6, #4
- add r2, r6, #0
- add r5, r0, #0
- sub r2, #0x51
- ldrsb r2, [r5, r2]
- ldr r1, _0225B914 ; =0x0225FAAC
- mov r3, #0x30
- add r4, r2, #0
- mul r4, r3
- add r4, r1, r4
- ldr r2, [r4, #0x20]
- cmp r2, #0
- bne _0225B8D4
- sub r3, #0x31
- add r0, r3, #0
- pop {r4, r5, r6, pc}
-_0225B8D4:
- ldrb r1, [r5, r6]
- cmp r1, #0
- bne _0225B90C
- add r0, r6, #4
- ldrb r0, [r5, r0]
- cmp r0, #1
- beq _0225B8EC
- ldr r1, _0225B918 ; =0x021C48B8
- ldr r2, [r1, #0x48]
- ldr r1, _0225B91C ; =0x00000CF3
- tst r1, r2
- beq _0225B906
-_0225B8EC:
- cmp r0, #0
- bne _0225B8F6
- ldr r0, _0225B920 ; =0x000005DC
- bl FUN_020054C8
-_0225B8F6:
- mov r1, #1
- ldr r0, _0225B924 ; =0x000006F4
- strb r1, [r5, r6]
- mov r2, #0
- strb r2, [r5, r0]
- ldr r2, [r4, #0x20]
- add r0, r5, #0
- blx r2
-_0225B906:
- mov r0, #0
- mvn r0, r0
- pop {r4, r5, r6, pc}
-_0225B90C:
- mov r1, #0
- blx r2
- pop {r4, r5, r6, pc}
- nop
-_0225B914: .word 0x0225FAAC
-_0225B918: .word 0x021C48B8
-_0225B91C: .word 0x00000CF3
-_0225B920: .word 0x000005DC
-_0225B924: .word 0x000006F4
-
- thumb_func_start MOD11_0225B928
-MOD11_0225B928: ; 0x0225B928
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- str r1, [sp, #8]
- mov r1, #0x6f
- lsl r1, r1, #4
- add r6, r0, #0
- add r2, r1, #0
- sub r2, #0x51
- ldrsb r3, [r6, r2]
- add r4, r6, r1
- mov r2, #0x30
- sub r1, #0x52
- ldr r0, _0225BAE8 ; =0x0225FAAC
- mul r2, r3
- add r7, r0, r2
- ldrb r1, [r6, r1]
- ldr r0, [r6]
- bl MOD11_0223022C
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD11_0222FF7C
- bl MOD11_02253A74
- ldr r1, [sp, #8]
- cmp r1, #1
- bne _0225B9AE
- mov r1, #0
- ldrsb r1, [r0, r1]
- ldr r2, _0225BAEC ; =0x0225F698
- strb r1, [r4, #2]
- mov r1, #1
- ldrsb r0, [r0, r1]
- strb r0, [r4, #1]
- ldrsb r1, [r4, r1]
- lsl r0, r1, #1
- add r3, r1, r0
- mov r0, #2
- ldrsb r1, [r4, r0]
- add r0, r2, r3
- ldrb r1, [r1, r0]
- ldr r0, [r7, #0x14]
- lsl r3, r1, #2
- add r0, r0, r3
- ldrb r0, [r0, #1]
- sub r0, #8
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r4, [r7, #0x14]
- ldr r0, _0225BAF0 ; =0x000006EC
- add r2, r4, r3
- ldrb r1, [r2, #2]
- ldrb r2, [r2, #3]
- ldrb r3, [r4, r3]
- ldr r0, [r6, r0]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- mov r0, #0
- add sp, #0x10
- mvn r0, r0
- pop {r3, r4, r5, r6, r7, pc}
-_0225B9AE:
- ldr r0, _0225BAF4 ; =0x0000069F
- ldrsb r0, [r6, r0]
- cmp r0, #5
- beq _0225B9BA
- cmp r0, #6
- bne _0225B9CA
-_0225B9BA:
- mov r1, #1
- ldr r3, _0225BAEC ; =0x0225F698
- add r0, r4, #0
- add r2, r1, #0
- bl MOD11_0225C574
- add r5, r0, #0
- b _0225BA34
-_0225B9CA:
- mov r0, #1
- ldrsb r1, [r4, r0]
- lsl r0, r1, #1
- add r2, r1, r0
- mov r0, #2
- ldr r1, _0225BAEC ; =0x0225F698
- ldrsb r0, [r4, r0]
- add r1, r1, r2
- ldrb r0, [r0, r1]
- str r0, [sp, #0xc]
- cmp r0, #3
- bne _0225B9EC
- ldr r0, _0225BAF8 ; =0x021C48B8
- ldr r1, [r0, #0x48]
- mov r0, #0x40
- tst r0, r1
- bne _0225BA34
-_0225B9EC:
- ldr r3, _0225BAEC ; =0x0225F698
- add r0, r4, #0
- mov r1, #3
- mov r2, #2
- bl MOD11_0225C574
- add r5, r0, #0
- bne _0225BA34
- ldr r0, [sp, #0xc]
- cmp r0, #0
- bne _0225BA34
- ldr r0, _0225BAF8 ; =0x021C48B8
- ldr r1, [r0, #0x48]
- mov r0, #0x20
- tst r0, r1
- beq _0225BA1E
- mov r0, #0
- strb r0, [r4, #2]
- mov r0, #1
- strb r0, [r4, #1]
- ldr r0, _0225BAFC ; =0x000005DC
- bl FUN_020054C8
- mov r5, #0x20
- b _0225BA34
-_0225BA1E:
- mov r0, #0x10
- tst r0, r1
- beq _0225BA34
- mov r0, #2
- strb r0, [r4, #2]
- mov r0, #1
- strb r0, [r4, #1]
- ldr r0, _0225BAFC ; =0x000005DC
- bl FUN_020054C8
- mov r5, #0x10
-_0225BA34:
- cmp r5, #0x20
- bhi _0225BA50
- bhs _0225BA5C
- cmp r5, #2
- bhi _0225BA4A
- cmp r5, #1
- blo _0225BAE0
- beq _0225BA9A
- cmp r5, #2
- beq _0225BAB0
- b _0225BAE0
-_0225BA4A:
- cmp r5, #0x10
- beq _0225BA5C
- b _0225BAE0
-_0225BA50:
- cmp r5, #0x40
- bhi _0225BA58
- beq _0225BA5C
- b _0225BAE0
-_0225BA58:
- cmp r5, #0x80
- bne _0225BAE0
-_0225BA5C:
- mov r0, #1
- ldrsb r1, [r4, r0]
- ldr r2, _0225BAEC ; =0x0225F698
- lsl r0, r1, #1
- add r3, r1, r0
- mov r0, #2
- ldrsb r1, [r4, r0]
- add r0, r2, r3
- ldrb r1, [r1, r0]
- ldr r0, [r7, #0x14]
- lsl r3, r1, #2
- add r0, r0, r3
- ldrb r0, [r0, #1]
- sub r0, #8
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r4, [r7, #0x14]
- ldr r0, _0225BAF0 ; =0x000006EC
- add r2, r4, r3
- ldrb r1, [r2, #2]
- ldrb r2, [r2, #3]
- ldrb r3, [r4, r3]
- ldr r0, [r6, r0]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- b _0225BAE0
-_0225BA9A:
- mov r0, #1
- ldrsb r1, [r4, r0]
- ldr r2, _0225BAEC ; =0x0225F698
- add sp, #0x10
- lsl r0, r1, #1
- add r3, r1, r0
- mov r0, #2
- ldrsb r1, [r4, r0]
- add r0, r2, r3
- ldrb r0, [r1, r0]
- pop {r3, r4, r5, r6, r7, pc}
-_0225BAB0:
- ldr r0, _0225BB00 ; =0x000006A3
- ldrb r0, [r6, r0]
- cmp r0, #1
- bne _0225BAE0
- mov r0, #0
- add r2, r0, #0
- mov r3, #1
- ldr r1, [r7, #0x18]
- ldr r5, [r7, #0x14]
- b _0225BACE
-_0225BAC4:
- lsl r4, r0, #2
- ldr r4, [r1, r4]
- cmp r4, #4
- beq _0225BAE4
- add r0, r0, #1
-_0225BACE:
- lsl r4, r0, #2
- ldrb r4, [r5, r4]
- cmp r0, r4
- bge _0225BADA
- add r4, r3, #0
- b _0225BADC
-_0225BADA:
- add r4, r2, #0
-_0225BADC:
- cmp r4, #0xff
- bne _0225BAC4
-_0225BAE0:
- mov r0, #0
- mvn r0, r0
-_0225BAE4:
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225BAE8: .word 0x0225FAAC
-_0225BAEC: .word 0x0225F698
-_0225BAF0: .word 0x000006EC
-_0225BAF4: .word 0x0000069F
-_0225BAF8: .word 0x021C48B8
-_0225BAFC: .word 0x000005DC
-_0225BB00: .word 0x000006A3
-
- thumb_func_start MOD11_0225BB04
-MOD11_0225BB04: ; 0x0225BB04
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r1, _0225BB60 ; =0x0000069E
- ldr r0, [r5]
- ldrb r1, [r5, r1]
- bl MOD11_0223022C
- add r6, r0, #0
- cmp r4, #3
- bne _0225BB26
- ldr r0, [r5]
- add r1, r6, #0
- bl MOD11_02230CB8
- cmp r0, #0
- bne _0225BB5C
-_0225BB26:
- ldr r0, [r5]
- add r1, r6, #0
- bl MOD11_0222FF7C
- bl MOD11_02253A74
- mov r5, #0
- ldr r1, _0225BB64 ; =0x0225F698
- add r2, r5, #0
- b _0225BB58
-_0225BB3A:
- lsl r6, r5, #1
- add r6, r5, r6
- add r3, r2, #0
- add r7, r1, r6
- b _0225BB52
-_0225BB44:
- ldrb r6, [r3, r7]
- cmp r4, r6
- bne _0225BB50
- strb r3, [r0]
- strb r5, [r0, #1]
- pop {r3, r4, r5, r6, r7, pc}
-_0225BB50:
- add r3, r3, #1
-_0225BB52:
- cmp r3, #3
- blt _0225BB44
- add r5, r5, #1
-_0225BB58:
- cmp r5, #2
- blt _0225BB3A
-_0225BB5C:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225BB60: .word 0x0000069E
-_0225BB64: .word 0x0225F698
-
- thumb_func_start MOD11_0225BB68
-MOD11_0225BB68: ; 0x0225BB68
- push {r4, r5, r6, lr}
- sub sp, #8
- add r6, r0, #0
- mov r0, #0x6f
- lsl r0, r0, #4
- add r3, r0, #0
- sub r3, #0x51
- ldrsb r5, [r6, r3]
- mov r3, #0x30
- ldr r2, _0225BC54 ; =0x0225FAAC
- mul r3, r5
- add r4, r6, r0
- add r5, r2, r3
- cmp r1, #1
- bne _0225BBCC
- mov r1, #0
- strb r1, [r4, #2]
- strb r1, [r4, #1]
- mov r1, #1
- ldrsb r2, [r4, r1]
- mov r3, #2
- ldr r1, _0225BC58 ; =0x0225F688
- ldrsb r3, [r4, r3]
- add r1, r1, r2
- sub r0, r0, #4
- ldrb r2, [r3, r1]
- ldr r1, [r5, #0x14]
- lsl r3, r2, #2
- add r1, r1, r3
- ldrb r1, [r1, #1]
- sub r1, #8
- str r1, [sp]
- mov r1, #0x11
- lsl r1, r1, #0x10
- str r1, [sp, #4]
- ldr r4, [r5, #0x14]
- ldr r0, [r6, r0]
- add r2, r4, r3
- ldrb r1, [r2, #2]
- ldrb r2, [r2, #3]
- ldrb r3, [r4, r3]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- mov r0, #0
- add sp, #8
- mvn r0, r0
- pop {r4, r5, r6, pc}
-_0225BBCC:
- ldr r3, _0225BC58 ; =0x0225F688
- add r0, r4, #0
- mov r1, #1
- mov r2, #2
- bl MOD11_0225C574
- cmp r0, #0x20
- bhi _0225BBF2
- bhs _0225BBFE
- cmp r0, #2
- bhi _0225BBEC
- cmp r0, #1
- blo _0225BC4A
- beq _0225BC38
- cmp r0, #2
- b _0225BC4A
-_0225BBEC:
- cmp r0, #0x10
- beq _0225BBFE
- b _0225BC4A
-_0225BBF2:
- cmp r0, #0x40
- bhi _0225BBFA
- beq _0225BBFE
- b _0225BC4A
-_0225BBFA:
- cmp r0, #0x80
- bne _0225BC4A
-_0225BBFE:
- mov r0, #1
- ldrsb r3, [r4, r0]
- mov r0, #2
- ldr r2, _0225BC58 ; =0x0225F688
- ldrsb r1, [r4, r0]
- add r0, r2, r3
- ldrb r1, [r1, r0]
- ldr r0, [r5, #0x14]
- lsl r3, r1, #2
- add r0, r0, r3
- ldrb r0, [r0, #1]
- sub r0, #8
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r4, [r5, #0x14]
- ldr r0, _0225BC5C ; =0x000006EC
- add r2, r4, r3
- ldrb r1, [r2, #2]
- ldrb r2, [r2, #3]
- ldrb r3, [r4, r3]
- ldr r0, [r6, r0]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- b _0225BC4A
-_0225BC38:
- mov r0, #1
- ldrsb r3, [r4, r0]
- mov r0, #2
- ldr r2, _0225BC58 ; =0x0225F688
- ldrsb r1, [r4, r0]
- add r0, r2, r3
- add sp, #8
- ldrb r0, [r1, r0]
- pop {r4, r5, r6, pc}
-_0225BC4A:
- mov r0, #0
- mvn r0, r0
- add sp, #8
- pop {r4, r5, r6, pc}
- nop
-_0225BC54: .word 0x0225FAAC
-_0225BC58: .word 0x0225F688
-_0225BC5C: .word 0x000006EC
-
- thumb_func_start MOD11_0225BC60
-MOD11_0225BC60: ; 0x0225BC60
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r7, r1, #0
- add r5, r0, #0
- ldr r1, _0225BDD0 ; =0x0000069E
- ldr r0, [r5]
- ldrb r1, [r5, r1]
- bl MOD11_0223022C
- add r1, r0, #0
- ldr r0, [r5]
- bl MOD11_0222FF7C
- bl MOD11_02253A74
- mov r1, #0x6f
- lsl r1, r1, #4
- add r4, r5, r1
- sub r1, #0x51
- ldrsb r2, [r5, r1]
- add r3, r0, #0
- mov r1, #0x30
- mul r1, r2
- ldr r0, _0225BDD4 ; =0x0225FAAC
- add r2, r5, #0
- add r6, r0, r1
- add r2, #0x18
- cmp r7, #1
- bne _0225BD10
- mov r0, #2
- ldrsb r0, [r3, r0]
- strb r0, [r4, #2]
- mov r0, #3
- ldrsb r0, [r3, r0]
- strb r0, [r4, #1]
- mov r0, #1
- ldrsb r0, [r4, r0]
- lsl r1, r0, #1
- mov r0, #2
- ldrsb r7, [r4, r0]
- ldr r0, _0225BDD8 ; =0x0225F6A0
- add r0, r0, r1
- ldrb r0, [r7, r0]
- cmp r0, #0
- beq _0225BCDE
- sub r1, r0, #1
- lsl r1, r1, #1
- ldrh r1, [r2, r1]
- cmp r1, #0
- bne _0225BCDE
- mov r0, #0
- strb r0, [r3, #2]
- strb r0, [r3, #3]
- strb r0, [r4, #2]
- strb r0, [r4, #1]
- mov r0, #1
- ldrsb r0, [r4, r0]
- lsl r2, r0, #1
- mov r0, #2
- ldrsb r1, [r4, r0]
- ldr r0, _0225BDD8 ; =0x0225F6A0
- add r0, r0, r2
- ldrb r0, [r1, r0]
-_0225BCDE:
- ldr r1, [r6, #0x14]
- lsl r3, r0, #2
- add r0, r1, r3
- ldrb r0, [r0, #1]
- sub r0, #8
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r4, [r6, #0x14]
- ldr r0, _0225BDDC ; =0x000006EC
- add r2, r4, r3
- ldrb r1, [r2, #2]
- ldrb r2, [r2, #3]
- ldrb r3, [r4, r3]
- ldr r0, [r5, r0]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- mov r0, #0
- add sp, #0x10
- mvn r0, r0
- pop {r3, r4, r5, r6, r7, pc}
-_0225BD10:
- ldr r0, _0225BDD8 ; =0x0225F6A0
- add r1, sp, #8
- mov r2, #6
- bl MI_CpuCopy8
- add r0, r4, #0
- mov r1, #2
- mov r2, #3
- add r3, sp, #8
- bl MOD11_0225C574
- cmp r0, #0x20
- bhi _0225BD42
- bhs _0225BD4E
- cmp r0, #2
- bhi _0225BD3C
- cmp r0, #1
- blo _0225BDC6
- beq _0225BD8A
- cmp r0, #2
- beq _0225BD9E
- b _0225BDC6
-_0225BD3C:
- cmp r0, #0x10
- beq _0225BD4E
- b _0225BDC6
-_0225BD42:
- cmp r0, #0x40
- bhi _0225BD4A
- beq _0225BD4E
- b _0225BDC6
-_0225BD4A:
- cmp r0, #0x80
- bne _0225BDC6
-_0225BD4E:
- mov r0, #1
- ldrsb r0, [r4, r0]
- ldr r2, _0225BDD8 ; =0x0225F6A0
- lsl r3, r0, #1
- mov r0, #2
- ldrsb r1, [r4, r0]
- add r0, r2, r3
- ldrb r1, [r1, r0]
- ldr r0, [r6, #0x14]
- lsl r3, r1, #2
- add r0, r0, r3
- ldrb r0, [r0, #1]
- sub r0, #8
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r4, [r6, #0x14]
- ldr r0, _0225BDDC ; =0x000006EC
- add r2, r4, r3
- ldrb r1, [r2, #2]
- ldrb r2, [r2, #3]
- ldrb r3, [r4, r3]
- ldr r0, [r5, r0]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- b _0225BDC6
-_0225BD8A:
- mov r0, #1
- ldrsb r0, [r4, r0]
- ldr r2, _0225BDD8 ; =0x0225F6A0
- add sp, #0x10
- lsl r3, r0, #1
- mov r0, #2
- ldrsb r1, [r4, r0]
- add r0, r2, r3
- ldrb r0, [r1, r0]
- pop {r3, r4, r5, r6, r7, pc}
-_0225BD9E:
- mov r0, #0
- add r2, r0, #0
- mov r3, #1
- ldr r1, [r6, #0x18]
- ldr r5, [r6, #0x14]
- b _0225BDB4
-_0225BDAA:
- lsl r4, r0, #2
- ldr r4, [r1, r4]
- cmp r4, #0xff
- beq _0225BDCA
- add r0, r0, #1
-_0225BDB4:
- lsl r4, r0, #2
- ldrb r4, [r5, r4]
- cmp r0, r4
- bge _0225BDC0
- add r4, r3, #0
- b _0225BDC2
-_0225BDC0:
- add r4, r2, #0
-_0225BDC2:
- cmp r4, #0xff
- bne _0225BDAA
-_0225BDC6:
- mov r0, #0
- mvn r0, r0
-_0225BDCA:
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225BDD0: .word 0x0000069E
-_0225BDD4: .word 0x0225FAAC
-_0225BDD8: .word 0x0225F6A0
-_0225BDDC: .word 0x000006EC
-
- thumb_func_start MOD11_0225BDE0
-MOD11_0225BDE0: ; 0x0225BDE0
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r4, r1, #0
- beq _0225BE26
- ldr r1, _0225BE28 ; =0x0000069E
- ldr r0, [r5]
- ldrb r1, [r5, r1]
- bl MOD11_0223022C
- add r1, r0, #0
- ldr r0, [r5]
- bl MOD11_0222FF7C
- bl MOD11_02253A74
- mov r3, #0
- ldr r7, _0225BE2C ; =0x0225F6A0
- add r1, r3, #0
- b _0225BE22
-_0225BE06:
- lsl r5, r3, #1
- add r2, r1, #0
- add r6, r7, r5
- b _0225BE1C
-_0225BE0E:
- ldrb r5, [r2, r6]
- cmp r4, r5
- bne _0225BE1A
- strb r2, [r0, #2]
- strb r3, [r0, #3]
- pop {r3, r4, r5, r6, r7, pc}
-_0225BE1A:
- add r2, r2, #1
-_0225BE1C:
- cmp r2, #2
- blt _0225BE0E
- add r3, r3, #1
-_0225BE22:
- cmp r3, #3
- blt _0225BE06
-_0225BE26:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225BE28: .word 0x0000069E
-_0225BE2C: .word 0x0225F6A0
-
- thumb_func_start MOD11_0225BE30
-MOD11_0225BE30: ; 0x0225BE30
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x60
- str r1, [sp, #0x18]
- add r6, r0, #0
- ldr r1, _0225C134 ; =0x0000069E
- mov r0, #0
- str r0, [sp, #0x44]
- ldrb r1, [r6, r1]
- ldr r0, [r6]
- bl MOD11_0223022C
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD11_0222FF7C
- bl MOD11_02253A74
- mov r1, #0x6f
- lsl r1, r1, #4
- add r7, r6, r1
- sub r1, #0x51
- ldrsb r2, [r6, r1]
- str r0, [sp, #0x1c]
- mov r1, #0x30
- mul r1, r2
- ldr r0, _0225C138 ; =0x0225FAAC
- mov r2, #6
- add r0, r0, r1
- str r0, [sp, #0x48]
- ldr r0, _0225C13C ; =0x0225F690
- add r1, sp, #0x50
- bl MI_CpuCopy8
- add r1, sp, #0x58
- add r0, r6, #0
- add r1, #2
- mov r2, #1
- bl MOD11_0225ACD4
- add r1, sp, #0x54
- add r0, r6, #0
- add r1, #2
- mov r2, #0
- bl MOD11_0225ACD4
- add r0, sp, #0x54
- mov r2, #0
- mov r4, #0xff
- add r0, #2
- b _0225BEB0
-_0225BE94:
- lsl r5, r2, #1
- add r1, sp, #0x50
- mov r3, #0
- add r1, r1, r5
- b _0225BEAA
-_0225BE9E:
- ldrb r5, [r3, r1]
- ldrb r5, [r0, r5]
- cmp r5, #0
- bne _0225BEA8
- strb r4, [r3, r1]
-_0225BEA8:
- add r3, r3, #1
-_0225BEAA:
- cmp r3, #2
- blt _0225BE9E
- add r2, r2, #1
-_0225BEB0:
- cmp r2, #2
- blt _0225BE94
- mov r0, #0x6a
- lsl r0, r0, #4
- ldrb r0, [r6, r0]
- cmp r0, #0xb
- bhi _0225BEE2
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225BECA: ; jump table
- .short _0225BEE2 - _0225BECA - 2 ; case 0
- .short _0225BEEC - _0225BECA - 2 ; case 1
- .short _0225BEEC - _0225BECA - 2 ; case 2
- .short _0225BEEC - _0225BECA - 2 ; case 3
- .short _0225BEE2 - _0225BECA - 2 ; case 4
- .short _0225BEEC - _0225BECA - 2 ; case 5
- .short _0225BEE2 - _0225BECA - 2 ; case 6
- .short _0225BEEC - _0225BECA - 2 ; case 7
- .short _0225BEE2 - _0225BECA - 2 ; case 8
- .short _0225BEE2 - _0225BECA - 2 ; case 9
- .short _0225BEE2 - _0225BECA - 2 ; case 10
- .short _0225BEE2 - _0225BECA - 2 ; case 11
-_0225BEE2:
- mov r0, #2
- mov ip, r0
- mov r0, #3
- str r0, [sp, #0x4c]
- b _0225C0C6
-_0225BEEC:
- mov r0, #1
- str r0, [sp, #0x44]
- mov ip, r0
- mov r0, #2
- str r0, [sp, #0x4c]
- add r0, sp, #0x50
- ldrb r1, [r0, #9]
- cmp r1, #1
- bne _0225BF26
- ldrb r0, [r0, #7]
- cmp r0, #1
- bne _0225BF26
- ldr r0, [sp, #0x48]
- ldr r1, [r0, #0x14]
- ldrb r0, [r1, #0xe]
- ldrb r2, [r1, #0xd]
- str r0, [sp, #0x34]
- add r0, #8
- str r0, [sp, #0x34]
- ldrb r0, [r1, #7]
- sub r2, #8
- str r0, [sp, #0x30]
- sub r0, #8
- str r0, [sp, #0x30]
- ldrb r0, [r1, #0xc]
- str r0, [sp, #0x38]
- add r0, #8
- str r0, [sp, #0x38]
- b _0225BF92
-_0225BF26:
- add r0, sp, #0x50
- ldrb r1, [r0, #9]
- cmp r1, #1
- bne _0225BF56
- ldrb r0, [r0, #7]
- cmp r0, #0
- bne _0225BF56
- ldr r0, [sp, #0x48]
- ldr r1, [r0, #0x14]
- ldrb r0, [r1, #0xe]
- ldrb r2, [r1, #0xd]
- str r0, [sp, #0x34]
- add r0, #8
- str r0, [sp, #0x34]
- ldrb r0, [r1, #0xf]
- sub r2, #8
- str r0, [sp, #0x30]
- sub r0, #8
- str r0, [sp, #0x30]
- ldrb r0, [r1, #0xc]
- str r0, [sp, #0x38]
- add r0, #8
- str r0, [sp, #0x38]
- b _0225BF92
-_0225BF56:
- add r0, sp, #0x50
- ldrb r1, [r0, #9]
- cmp r1, #0
- bne _0225BF86
- ldrb r0, [r0, #7]
- cmp r0, #1
- bne _0225BF86
- ldr r0, [sp, #0x48]
- ldr r1, [r0, #0x14]
- ldrb r0, [r1, #6]
- ldrb r2, [r1, #5]
- str r0, [sp, #0x34]
- add r0, #8
- str r0, [sp, #0x34]
- ldrb r0, [r1, #7]
- sub r2, #8
- str r0, [sp, #0x30]
- sub r0, #8
- str r0, [sp, #0x30]
- ldrb r0, [r1, #4]
- str r0, [sp, #0x38]
- add r0, #8
- str r0, [sp, #0x38]
- b _0225BF92
-_0225BF86:
- mov r0, #0
- mvn r0, r0
- str r0, [sp, #0x34]
- str r0, [sp, #0x30]
- str r0, [sp, #0x38]
- add r2, r0, #0
-_0225BF92:
- add r0, sp, #0x50
- ldrb r1, [r0, #6]
- cmp r1, #1
- bne _0225BFBA
- ldrb r0, [r0, #8]
- cmp r0, #1
- bne _0225BFBA
- ldr r0, [sp, #0x48]
- ldr r0, [r0, #0x14]
- ldrb r3, [r0, #2]
- ldrb r4, [r0, #0xb]
- ldrb r5, [r0]
- ldrb r0, [r0, #1]
- add r3, #8
- sub r4, #8
- str r0, [sp, #0x2c]
- sub r0, #8
- add r5, #8
- str r0, [sp, #0x2c]
- b _0225C014
-_0225BFBA:
- add r0, sp, #0x50
- ldrb r1, [r0, #6]
- cmp r1, #1
- bne _0225BFE2
- ldrb r0, [r0, #8]
- cmp r0, #0
- bne _0225BFE2
- ldr r0, [sp, #0x48]
- ldr r0, [r0, #0x14]
- ldrb r3, [r0, #2]
- ldrb r4, [r0, #3]
- ldrb r5, [r0]
- ldrb r0, [r0, #1]
- add r3, #8
- sub r4, #8
- str r0, [sp, #0x2c]
- sub r0, #8
- add r5, #8
- str r0, [sp, #0x2c]
- b _0225C014
-_0225BFE2:
- add r0, sp, #0x50
- ldrb r1, [r0, #6]
- cmp r1, #0
- bne _0225C00A
- ldrb r0, [r0, #8]
- cmp r0, #1
- bne _0225C00A
- ldr r0, [sp, #0x48]
- ldr r0, [r0, #0x14]
- ldrb r3, [r0, #0xa]
- ldrb r4, [r0, #0xb]
- ldrb r5, [r0, #8]
- ldrb r0, [r0, #9]
- add r3, #8
- sub r4, #8
- str r0, [sp, #0x2c]
- sub r0, #8
- add r5, #8
- str r0, [sp, #0x2c]
- b _0225C014
-_0225C00A:
- mov r3, #0
- mvn r3, r3
- add r4, r3, #0
- add r5, r3, #0
- str r3, [sp, #0x2c]
-_0225C014:
- mov r0, #0
- mvn r0, r0
- str r0, [sp, #0x40]
- str r0, [sp, #0x3c]
- str r0, [sp, #0x28]
- str r0, [sp, #0x24]
- ldr r0, [sp, #0x34]
- cmp r0, r3
- beq _0225C04A
- add r1, r0, #0
- ldr r0, [sp, #0x40]
- cmp r1, r0
- beq _0225C032
- cmp r3, r0
- beq _0225C04A
-_0225C032:
- mov r1, #0
- ldr r0, [sp, #0x34]
- mvn r1, r1
- cmp r0, r1
- bne _0225C044
- cmp r3, r1
- beq _0225C044
- str r3, [sp, #0x34]
- b _0225C04A
-_0225C044:
- mov r0, #2
- str r3, [sp, #0x40]
- str r0, [sp, #0x20]
-_0225C04A:
- ldr r0, [sp, #0x30]
- cmp r0, r4
- beq _0225C074
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- beq _0225C05C
- cmp r4, r1
- beq _0225C074
-_0225C05C:
- mov r1, #0
- ldr r0, [sp, #0x30]
- mvn r1, r1
- cmp r0, r1
- bne _0225C06E
- cmp r4, r1
- beq _0225C06E
- str r4, [sp, #0x30]
- b _0225C074
-_0225C06E:
- mov r0, #3
- str r4, [sp, #0x40]
- str r0, [sp, #0x20]
-_0225C074:
- mov r1, #0
- ldr r0, [sp, #0x38]
- mvn r1, r1
- cmp r0, r1
- beq _0225C082
- cmp r5, r1
- beq _0225C096
-_0225C082:
- mov r1, #0
- ldr r0, [sp, #0x38]
- mvn r1, r1
- cmp r0, r1
- bne _0225C094
- cmp r5, r1
- beq _0225C094
- str r5, [sp, #0x38]
- b _0225C096
-_0225C094:
- str r2, [sp, #0x3c]
-_0225C096:
- mov r1, #0
- mvn r1, r1
- cmp r2, r1
- beq _0225C0A8
- ldr r0, [sp, #0x2c]
- cmp r0, r1
- bne _0225C0A8
- str r2, [sp, #0x2c]
- b _0225C0C6
-_0225C0A8:
- mov r1, #0
- mvn r1, r1
- cmp r2, r1
- bne _0225C0B6
- ldr r0, [sp, #0x2c]
- cmp r0, r1
- bne _0225C0C6
-_0225C0B6:
- ldr r0, [sp, #0x2c]
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x20]
- cmp r0, #2
- bne _0225C0C4
- str r2, [sp, #0x24]
- b _0225C0C6
-_0225C0C4:
- str r2, [sp, #0x28]
-_0225C0C6:
- ldr r0, [sp, #0x18]
- cmp r0, #1
- beq _0225C0CE
- b _0225C236
-_0225C0CE:
- ldr r0, [sp, #0x44]
- cmp r0, #0
- bne _0225C17A
- ldr r0, [sp, #0x1c]
- mov r1, #6
- ldrsb r1, [r0, r1]
- mov r0, #0x6a
- lsl r0, r0, #4
- ldrb r0, [r6, r0]
- cmp r1, r0
- bne _0225C0F6
- ldr r0, [sp, #0x1c]
- mov r1, #4
- ldrsb r0, [r0, r1]
- mov r1, #5
- strb r0, [r7, #2]
- ldr r0, [sp, #0x1c]
- ldrsb r0, [r0, r1]
- strb r0, [r7, #1]
- b _0225C12C
-_0225C0F6:
- add r0, sp, #0x50
- ldrb r1, [r0, #0xd]
- cmp r1, #1
- bne _0225C106
- mov r0, #0
- strb r0, [r7, #2]
- strb r0, [r7, #1]
- b _0225C12C
-_0225C106:
- ldrb r1, [r0, #0xb]
- cmp r1, #1
- bne _0225C116
- mov r0, #1
- strb r0, [r7, #2]
- mov r0, #0
- strb r0, [r7, #1]
- b _0225C12C
-_0225C116:
- ldrb r0, [r0, #0xa]
- cmp r0, #1
- bne _0225C126
- mov r0, #0
- strb r0, [r7, #2]
- mov r0, #1
- strb r0, [r7, #1]
- b _0225C12C
-_0225C126:
- mov r0, #1
- strb r0, [r7, #2]
- strb r0, [r7, #1]
-_0225C12C:
- mov r0, #1
- ldrsb r0, [r7, r0]
- ldr r2, _0225C13C ; =0x0225F690
- b _0225C140
- .align 2, 0
-_0225C134: .word 0x0000069E
-_0225C138: .word 0x0225FAAC
-_0225C13C: .word 0x0225F690
-_0225C140:
- lsl r3, r0, #1
- mov r0, #2
- ldrsb r1, [r7, r0]
- add r0, r2, r3
- ldrb r1, [r1, r0]
- ldr r0, [sp, #0x48]
- lsl r3, r1, #2
- ldr r0, [r0, #0x14]
- ldr r1, [sp, #0x48]
- add r0, r0, r3
- ldrb r0, [r0, #1]
- sub r0, #8
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r4, [r1, #0x14]
- ldr r0, _0225C418 ; =0x000006EC
- add r2, r4, r3
- ldrb r1, [r2, #2]
- ldrb r2, [r2, #3]
- ldrb r3, [r4, r3]
- ldr r0, [r6, r0]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- b _0225C22E
-_0225C17A:
- mov r2, #0
- strb r2, [r7, #2]
- ldr r0, [sp, #0x24]
- sub r1, r2, #1
- strb r2, [r7, #1]
- cmp r0, r1
- bne _0225C18E
- ldr r0, [sp, #0x28]
- cmp r0, r1
- beq _0225C198
-_0225C18E:
- mov r1, #0
- ldr r0, [sp, #0x40]
- mvn r1, r1
- cmp r0, r1
- bne _0225C1B2
-_0225C198:
- ldr r0, [sp, #0x2c]
- ldr r1, [sp, #0x34]
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r0, _0225C418 ; =0x000006EC
- ldr r2, [sp, #0x30]
- ldr r0, [r6, r0]
- ldr r3, [sp, #0x38]
- bl MOD11_0225D5FC
- b _0225C210
-_0225C1B2:
- ldr r0, [sp, #0x24]
- cmp r0, r1
- beq _0225C1E8
- ldr r0, [sp, #0x28]
- cmp r0, r1
- bne _0225C1E8
- ldr r0, [sp, #0x38]
- ldr r1, [sp, #0x34]
- str r0, [sp]
- ldr r0, [sp, #0x34]
- ldr r2, [sp, #0x38]
- str r0, [sp, #4]
- ldr r0, [sp, #0x24]
- ldr r3, [sp, #0x30]
- str r0, [sp, #8]
- ldr r0, [sp, #0x30]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x2c]
- str r0, [sp, #0x10]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #0x14]
- ldr r0, _0225C418 ; =0x000006EC
- ldr r0, [r6, r0]
- bl MOD11_0225D52C
- b _0225C210
-_0225C1E8:
- ldr r0, [sp, #0x38]
- ldr r1, [sp, #0x34]
- str r0, [sp]
- ldr r0, [sp, #0x34]
- ldr r2, [sp, #0x38]
- str r0, [sp, #4]
- ldr r0, [sp, #0x2c]
- ldr r3, [sp, #0x30]
- str r0, [sp, #8]
- ldr r0, [sp, #0x30]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x28]
- str r0, [sp, #0x10]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #0x14]
- ldr r0, _0225C418 ; =0x000006EC
- ldr r0, [r6, r0]
- bl MOD11_0225D52C
-_0225C210:
- mov r1, #0
- ldr r0, [sp, #0x40]
- mvn r1, r1
- cmp r0, r1
- beq _0225C22E
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp]
- ldr r0, _0225C418 ; =0x000006EC
- ldr r1, [sp, #0x40]
- ldr r0, [r6, r0]
- ldr r2, [sp, #0x3c]
- ldr r3, [sp, #0x20]
- bl MOD11_0225D620
-_0225C22E:
- mov r0, #0
- add sp, #0x60
- mvn r0, r0
- pop {r3, r4, r5, r6, r7, pc}
-_0225C236:
- ldr r0, [sp, #0x44]
- cmp r0, #0
- bne _0225C24A
- ldr r2, [sp, #0x4c]
- add r0, r7, #0
- mov r1, ip
- add r3, sp, #0x50
- bl MOD11_0225C574
- b _0225C256
-_0225C24A:
- ldr r2, [sp, #0x4c]
- add r0, r7, #0
- mov r1, ip
- mov r3, #0
- bl MOD11_0225C574
-_0225C256:
- cmp r0, #0x20
- bhi _0225C276
- bhs _0225C284
- cmp r0, #2
- bhi _0225C270
- cmp r0, #1
- blo _0225C26E
- bne _0225C268
- b _0225C3BE
-_0225C268:
- cmp r0, #2
- bne _0225C26E
- b _0225C40A
-_0225C26E:
- b _0225C410
-_0225C270:
- cmp r0, #0x10
- beq _0225C284
- b _0225C410
-_0225C276:
- cmp r0, #0x40
- bhi _0225C27E
- beq _0225C284
- b _0225C410
-_0225C27E:
- cmp r0, #0x80
- beq _0225C284
- b _0225C410
-_0225C284:
- ldr r0, [sp, #0x44]
- cmp r0, #0
- bne _0225C2CA
- mov r0, #1
- ldrsb r0, [r7, r0]
- ldr r2, _0225C41C ; =0x0225F690
- lsl r3, r0, #1
- mov r0, #2
- ldrsb r1, [r7, r0]
- add r0, r2, r3
- ldrb r1, [r1, r0]
- ldr r0, [sp, #0x48]
- lsl r3, r1, #2
- ldr r0, [r0, #0x14]
- ldr r1, [sp, #0x48]
- add r0, r0, r3
- ldrb r0, [r0, #1]
- sub r0, #8
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r4, [r1, #0x14]
- ldr r0, _0225C418 ; =0x000006EC
- add r2, r4, r3
- ldrb r1, [r2, #2]
- ldrb r2, [r2, #3]
- ldrb r3, [r4, r3]
- ldr r0, [r6, r0]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- b _0225C410
-_0225C2CA:
- mov r2, #1
- ldrsb r0, [r7, r2]
- cmp r0, #0
- bne _0225C38C
- ldr r0, [sp, #0x28]
- sub r1, r2, #2
- cmp r0, r1
- bne _0225C2E0
- ldr r0, [sp, #0x24]
- cmp r0, r1
- beq _0225C2EA
-_0225C2E0:
- mov r1, #0
- ldr r0, [sp, #0x40]
- mvn r1, r1
- cmp r0, r1
- bne _0225C304
-_0225C2EA:
- ldr r0, [sp, #0x2c]
- ldr r1, [sp, #0x34]
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r0, _0225C418 ; =0x000006EC
- ldr r2, [sp, #0x30]
- ldr r0, [r6, r0]
- ldr r3, [sp, #0x38]
- bl MOD11_0225D5FC
- b _0225C362
-_0225C304:
- ldr r0, [sp, #0x24]
- cmp r0, r1
- beq _0225C33A
- ldr r0, [sp, #0x28]
- cmp r0, r1
- bne _0225C33A
- ldr r0, [sp, #0x38]
- ldr r1, [sp, #0x34]
- str r0, [sp]
- ldr r0, [sp, #0x34]
- ldr r2, [sp, #0x38]
- str r0, [sp, #4]
- ldr r0, [sp, #0x24]
- ldr r3, [sp, #0x30]
- str r0, [sp, #8]
- ldr r0, [sp, #0x30]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x2c]
- str r0, [sp, #0x10]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #0x14]
- ldr r0, _0225C418 ; =0x000006EC
- ldr r0, [r6, r0]
- bl MOD11_0225D52C
- b _0225C362
-_0225C33A:
- ldr r0, [sp, #0x38]
- ldr r1, [sp, #0x34]
- str r0, [sp]
- ldr r0, [sp, #0x34]
- ldr r2, [sp, #0x38]
- str r0, [sp, #4]
- ldr r0, [sp, #0x2c]
- ldr r3, [sp, #0x30]
- str r0, [sp, #8]
- ldr r0, [sp, #0x30]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x28]
- str r0, [sp, #0x10]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #0x14]
- ldr r0, _0225C418 ; =0x000006EC
- ldr r0, [r6, r0]
- bl MOD11_0225D52C
-_0225C362:
- mov r1, #0
- ldr r0, [sp, #0x40]
- mvn r1, r1
- cmp r0, r1
- beq _0225C382
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp]
- ldr r0, _0225C418 ; =0x000006EC
- ldr r1, [sp, #0x40]
- ldr r0, [r6, r0]
- ldr r2, [sp, #0x3c]
- ldr r3, [sp, #0x20]
- bl MOD11_0225D620
- b _0225C410
-_0225C382:
- ldr r0, _0225C418 ; =0x000006EC
- ldr r0, [r6, r0]
- bl MOD11_0225D664
- b _0225C410
-_0225C38C:
- ldr r0, [sp, #0x48]
- ldr r1, [sp, #0x48]
- ldr r0, [r0, #0x14]
- ldrb r0, [r0, #0x11]
- sub r0, #8
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r3, [r1, #0x14]
- ldr r0, _0225C418 ; =0x000006EC
- ldrb r1, [r3, #0x12]
- ldrb r2, [r3, #0x13]
- ldrb r3, [r3, #0x10]
- ldr r0, [r6, r0]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- ldr r0, _0225C418 ; =0x000006EC
- ldr r0, [r6, r0]
- bl MOD11_0225D664
- b _0225C410
-_0225C3BE:
- ldr r0, [sp, #0x44]
- cmp r0, #1
- bne _0225C3E8
- mov r0, #1
- ldrsb r0, [r7, r0]
- cmp r0, #0
- ble _0225C3D2
- add sp, #0x60
- mov r0, #4
- pop {r3, r4, r5, r6, r7, pc}
-_0225C3D2:
- add r2, sp, #0x58
- mov r0, #0
- add r2, #2
- b _0225C3E2
-_0225C3DA:
- ldrb r1, [r2, r0]
- cmp r1, #1
- beq _0225C414
- add r0, r0, #1
-_0225C3E2:
- cmp r0, #4
- blt _0225C3DA
- b _0225C410
-_0225C3E8:
- mov r0, #1
- ldrsb r0, [r7, r0]
- ldr r2, _0225C41C ; =0x0225F690
- lsl r3, r0, #1
- mov r0, #2
- ldrsb r1, [r7, r0]
- add r0, r2, r3
- ldrb r0, [r1, r0]
- cmp r0, #4
- beq _0225C414
- add r1, sp, #0x58
- add r1, #2
- ldrb r1, [r1, r0]
- cmp r1, #1
- bne _0225C410
- add sp, #0x60
- pop {r3, r4, r5, r6, r7, pc}
-_0225C40A:
- add sp, #0x60
- mov r0, #4
- pop {r3, r4, r5, r6, r7, pc}
-_0225C410:
- mov r0, #0
- mvn r0, r0
-_0225C414:
- add sp, #0x60
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225C418: .word 0x000006EC
-_0225C41C: .word 0x0225F690
-
- thumb_func_start MOD11_0225C420
-MOD11_0225C420: ; 0x0225C420
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- cmp r4, #4
- beq _0225C470
- ldr r1, _0225C474 ; =0x0000069E
- ldr r0, [r5]
- ldrb r1, [r5, r1]
- bl MOD11_0223022C
- add r1, r0, #0
- ldr r0, [r5]
- bl MOD11_0222FF7C
- bl MOD11_02253A74
- mov r1, #0x6a
- lsl r1, r1, #4
- ldrb r1, [r5, r1]
- mov r3, #0
- ldr r7, _0225C478 ; =0x0225F690
- strb r1, [r0, #6]
- add r1, r3, #0
- b _0225C46C
-_0225C450:
- lsl r5, r3, #1
- add r2, r1, #0
- add r6, r7, r5
- b _0225C466
-_0225C458:
- ldrb r5, [r2, r6]
- cmp r4, r5
- bne _0225C464
- strb r2, [r0, #4]
- strb r3, [r0, #5]
- pop {r3, r4, r5, r6, r7, pc}
-_0225C464:
- add r2, r2, #1
-_0225C466:
- cmp r2, #2
- blt _0225C458
- add r3, r3, #1
-_0225C46C:
- cmp r3, #3
- blt _0225C450
-_0225C470:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225C474: .word 0x0000069E
-_0225C478: .word 0x0225F690
-
- thumb_func_start MOD11_0225C47C
-MOD11_0225C47C: ; 0x0225C47C
- push {r4, r5, r6, lr}
- sub sp, #8
- add r6, r0, #0
- mov r0, #0x6f
- lsl r0, r0, #4
- add r3, r0, #0
- sub r3, #0x51
- ldrsb r5, [r6, r3]
- mov r3, #0x30
- ldr r2, _0225C568 ; =0x0225FAAC
- mul r3, r5
- add r4, r6, r0
- add r5, r2, r3
- cmp r1, #1
- bne _0225C4DA
- mov r1, #1
- ldrsb r2, [r4, r1]
- mov r3, #2
- ldr r1, _0225C56C ; =0x0225F684
- ldrsb r3, [r4, r3]
- add r1, r1, r2
- sub r0, r0, #4
- ldrb r2, [r3, r1]
- ldr r1, [r5, #0x14]
- lsl r3, r2, #2
- add r1, r1, r3
- ldrb r1, [r1, #1]
- sub r1, #8
- str r1, [sp]
- mov r1, #0x11
- lsl r1, r1, #0x10
- str r1, [sp, #4]
- ldr r4, [r5, #0x14]
- ldr r0, [r6, r0]
- add r2, r4, r3
- ldrb r1, [r2, #2]
- ldrb r2, [r2, #3]
- ldrb r3, [r4, r3]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- mov r0, #0
- add sp, #8
- mvn r0, r0
- pop {r4, r5, r6, pc}
-_0225C4DA:
- ldr r3, _0225C56C ; =0x0225F684
- add r0, r4, #0
- mov r1, #1
- mov r2, #2
- bl MOD11_0225C574
- cmp r0, #0x20
- bhi _0225C502
- bhs _0225C50E
- cmp r0, #2
- bhi _0225C4FC
- cmp r0, #1
- blo _0225C560
- beq _0225C548
- cmp r0, #2
- beq _0225C55A
- b _0225C560
-_0225C4FC:
- cmp r0, #0x10
- beq _0225C50E
- b _0225C560
-_0225C502:
- cmp r0, #0x40
- bhi _0225C50A
- beq _0225C50E
- b _0225C560
-_0225C50A:
- cmp r0, #0x80
- bne _0225C560
-_0225C50E:
- mov r0, #1
- ldrsb r3, [r4, r0]
- mov r0, #2
- ldr r2, _0225C56C ; =0x0225F684
- ldrsb r1, [r4, r0]
- add r0, r2, r3
- ldrb r1, [r1, r0]
- ldr r0, [r5, #0x14]
- lsl r3, r1, #2
- add r0, r0, r3
- ldrb r0, [r0, #1]
- sub r0, #8
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r4, [r5, #0x14]
- ldr r0, _0225C570 ; =0x000006EC
- add r2, r4, r3
- ldrb r1, [r2, #2]
- ldrb r2, [r2, #3]
- ldrb r3, [r4, r3]
- ldr r0, [r6, r0]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- b _0225C560
-_0225C548:
- mov r0, #1
- ldrsb r3, [r4, r0]
- mov r0, #2
- ldr r2, _0225C56C ; =0x0225F684
- ldrsb r1, [r4, r0]
- add r0, r2, r3
- add sp, #8
- ldrb r0, [r1, r0]
- pop {r4, r5, r6, pc}
-_0225C55A:
- add sp, #8
- mov r0, #1
- pop {r4, r5, r6, pc}
-_0225C560:
- mov r0, #0
- mvn r0, r0
- add sp, #8
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0225C568: .word 0x0225FAAC
-_0225C56C: .word 0x0225F684
-_0225C570: .word 0x000006EC
-
- thumb_func_start MOD11_0225C574
-MOD11_0225C574: ; 0x0225C574
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- mov r1, #2
- ldrsb r1, [r0, r1]
- add r6, r2, #0
- add r2, r3, #0
- cmp r1, r4
- blt _0225C588
- sub r1, r4, #1
- strb r1, [r0, #2]
-_0225C588:
- mov r1, #1
- ldrsb r1, [r0, r1]
- cmp r1, r6
- blt _0225C594
- sub r1, r6, #1
- strb r1, [r0, #1]
-_0225C594:
- mov r7, #2
- ldrsb r1, [r0, r7]
- mov r5, #1
- mov r3, #0x40
- str r1, [sp]
- ldrsb r1, [r0, r5]
- mov ip, r1
- ldr r1, _0225C764 ; =0x021C48B8
- ldr r1, [r1, #0x48]
- tst r3, r1
- beq _0225C5FA
- mov r1, ip
- sub r1, r1, #1
- strb r1, [r0, #1]
- ldrsb r1, [r0, r5]
- cmp r1, #0
- bge _0225C5BA
- mov r1, #0
- strb r1, [r0, #1]
-_0225C5BA:
- cmp r2, #0
- beq _0225C5F6
- mov r3, #1
- mov r1, #2
- ldrsb r3, [r0, r3]
- ldrsb r1, [r0, r1]
- mul r3, r4
- add r1, r1, r3
- ldrb r1, [r2, r1]
- cmp r1, #0xff
- bne _0225C5F6
- add r1, r0, #1
- mov r7, #0
- mov r6, #1
-_0225C5D6:
- ldrsb r3, [r1, r7]
- sub r3, r3, #1
- strb r3, [r1]
- ldrsb r3, [r0, r6]
- cmp r3, #0
- bge _0225C5E8
- mov r1, ip
- strb r1, [r0, #1]
- b _0225C5F6
-_0225C5E8:
- mov r5, #2
- ldrsb r5, [r0, r5]
- mul r3, r4
- add r5, r2, r5
- ldrb r3, [r3, r5]
- cmp r3, #0xff
- beq _0225C5D6
-_0225C5F6:
- mov r5, #0x40
- b _0225C70E
-_0225C5FA:
- mov r3, #0x80
- tst r3, r1
- beq _0225C650
- mov r1, ip
- add r1, r1, #1
- strb r1, [r0, #1]
- ldrsb r1, [r0, r5]
- cmp r1, r6
- blt _0225C610
- sub r1, r6, #1
- strb r1, [r0, #1]
-_0225C610:
- cmp r2, #0
- beq _0225C64C
- mov r3, #1
- mov r1, #2
- ldrsb r3, [r0, r3]
- ldrsb r1, [r0, r1]
- mul r3, r4
- add r1, r1, r3
- ldrb r1, [r2, r1]
- cmp r1, #0xff
- bne _0225C64C
- add r1, r0, #1
- mov r7, #1
-_0225C62A:
- mov r3, #0
- ldrsb r3, [r1, r3]
- add r3, r3, #1
- strb r3, [r1]
- ldrsb r3, [r0, r7]
- cmp r3, r6
- blt _0225C63E
- mov r1, ip
- strb r1, [r0, #1]
- b _0225C64C
-_0225C63E:
- mov r5, #2
- ldrsb r5, [r0, r5]
- mul r3, r4
- add r5, r2, r5
- ldrb r3, [r3, r5]
- cmp r3, #0xff
- beq _0225C62A
-_0225C64C:
- mov r5, #0x80
- b _0225C70E
-_0225C650:
- mov r3, #0x20
- tst r3, r1
- beq _0225C6A6
- ldr r1, [sp]
- sub r1, r1, #1
- strb r1, [r0, #2]
- ldrsb r1, [r0, r7]
- cmp r1, #0
- bge _0225C666
- mov r1, #0
- strb r1, [r0, #2]
-_0225C666:
- cmp r2, #0
- beq _0225C6A2
- mov r3, #1
- mov r1, #2
- ldrsb r3, [r0, r3]
- ldrsb r1, [r0, r1]
- mul r3, r4
- add r1, r1, r3
- ldrb r1, [r2, r1]
- cmp r1, #0xff
- bne _0225C6A2
- add r5, r0, #2
- mov r7, #0
- mov r6, #2
-_0225C682:
- ldrsb r1, [r5, r7]
- sub r1, r1, #1
- strb r1, [r5]
- ldrsb r3, [r0, r6]
- cmp r3, #0
- bge _0225C694
- ldr r1, [sp]
- strb r1, [r0, #2]
- b _0225C6A2
-_0225C694:
- mov r1, #1
- ldrsb r1, [r0, r1]
- add r3, r2, r3
- mul r1, r4
- ldrb r1, [r1, r3]
- cmp r1, #0xff
- beq _0225C682
-_0225C6A2:
- mov r5, #0x20
- b _0225C70E
-_0225C6A6:
- mov r3, #0x10
- tst r3, r1
- beq _0225C6FC
- ldr r1, [sp]
- add r1, r1, #1
- strb r1, [r0, #2]
- ldrsb r1, [r0, r7]
- cmp r1, r4
- blt _0225C6BC
- sub r1, r4, #1
- strb r1, [r0, #2]
-_0225C6BC:
- cmp r2, #0
- beq _0225C6F8
- mov r3, #1
- mov r1, #2
- ldrsb r3, [r0, r3]
- ldrsb r1, [r0, r1]
- mul r3, r4
- add r1, r1, r3
- ldrb r1, [r2, r1]
- cmp r1, #0xff
- bne _0225C6F8
- add r5, r0, #2
- mov r7, #0
- mov r6, #2
-_0225C6D8:
- ldrsb r1, [r5, r7]
- add r1, r1, #1
- strb r1, [r5]
- ldrsb r3, [r0, r6]
- cmp r3, r4
- blt _0225C6EA
- ldr r1, [sp]
- strb r1, [r0, #2]
- b _0225C6F8
-_0225C6EA:
- mov r1, #1
- ldrsb r1, [r0, r1]
- add r3, r2, r3
- mul r1, r4
- ldrb r1, [r1, r3]
- cmp r1, #0xff
- beq _0225C6D8
-_0225C6F8:
- mov r5, #0x10
- b _0225C70E
-_0225C6FC:
- add r3, r1, #0
- tst r3, r5
- bne _0225C70E
- tst r1, r7
- beq _0225C70A
- add r5, r7, #0
- b _0225C70E
-_0225C70A:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0225C70E:
- cmp r2, #0
- beq _0225C738
- mov r1, ip
- add r3, r4, #0
- mul r3, r1
- ldr r1, [sp]
- add r1, r1, r3
- mov r3, #2
- ldrsb r6, [r0, r3]
- mov r3, #1
- ldrsb r3, [r0, r3]
- ldrb r1, [r2, r1]
- mul r3, r4
- add r3, r6, r3
- ldrb r2, [r2, r3]
- cmp r1, r2
- bne _0225C738
- ldr r1, [sp]
- strb r1, [r0, #2]
- mov r1, ip
- strb r1, [r0, #1]
-_0225C738:
- mov r1, #2
- ldrsb r2, [r0, r1]
- ldr r1, [sp]
- cmp r2, r1
- bne _0225C74C
- mov r1, #1
- ldrsb r1, [r0, r1]
- mov r0, ip
- cmp r1, r0
- beq _0225C754
-_0225C74C:
- ldr r0, _0225C768 ; =0x000005DC
- bl FUN_020054C8
- b _0225C75E
-_0225C754:
- mov r0, #0xf0
- tst r0, r5
- beq _0225C75E
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0225C75E:
- add r0, r5, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225C764: .word 0x021C48B8
-_0225C768: .word 0x000005DC
-
- thumb_func_start MOD11_0225C76C
-MOD11_0225C76C: ; 0x0225C76C
- ldr r1, _0225C774 ; =0x000006F4
- ldrb r0, [r0, r1]
- bx lr
- nop
-_0225C774: .word 0x000006F4
-
- thumb_func_start MOD11_0225C778
-MOD11_0225C778: ; 0x0225C778
- ldr r2, _0225C780 ; =0x000006F4
- strb r1, [r0, r2]
- bx lr
- nop
-_0225C780: .word 0x000006F4
-
- thumb_func_start MOD11_0225C784
-MOD11_0225C784: ; 0x0225C784
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4]
- bl MOD11_02230078
- ldr r0, [r4]
- bl MOD11_02230080
- ldr r0, [r4]
- bl MOD11_022300CC
- ldr r0, [r4]
- bl MOD11_02231268
- cmp r0, #0
- bne _0225C7C0
- ldr r0, _0225C7E4 ; =0x000006FC
- ldrb r0, [r4, r0]
- cmp r0, #2
- blo _0225C7B0
- bl ErrorHandling
-_0225C7B0:
- ldr r1, _0225C7E4 ; =0x000006FC
- add r0, r4, #0
- ldrb r1, [r4, r1]
- lsl r2, r1, #2
- ldr r1, _0225C7E8 ; =0x0225F6B8
- ldr r1, [r1, r2]
- blx r1
- b _0225C7C6
-_0225C7C0:
- add r0, r4, #0
- bl MOD11_0225C8A0
-_0225C7C6:
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- beq _0225C7E2
- ldr r1, _0225C7EC ; =0x000006FD
- mov r3, #0
- strb r3, [r4, r1]
- add r2, r1, #1
- strb r3, [r4, r2]
- sub r2, r1, #1
- ldrb r2, [r4, r2]
- sub r1, r1, #1
- add r2, r2, #1
- strb r2, [r4, r1]
-_0225C7E2:
- pop {r4, pc}
- .align 2, 0
-_0225C7E4: .word 0x000006FC
-_0225C7E8: .word 0x0225F6B8
-_0225C7EC: .word 0x000006FD
-
- thumb_func_start MOD11_0225C7F0
-MOD11_0225C7F0: ; 0x0225C7F0
- push {r4, lr}
- add r4, r0, #0
- ldr r0, _0225C840 ; =0x000006FD
- ldrb r1, [r4, r0]
- cmp r1, #0
- bne _0225C820
- sub r0, r0, #5
- mov r3, #0x11
- ldr r0, [r4, r0]
- mov r1, #0x80
- mov r2, #0x3c
- lsl r3, r3, #0x10
- bl MOD11_0225D7D0
- ldr r0, _0225C844 ; =0x000006F8
- mov r1, #0x3c
- ldr r0, [r4, r0]
- bl MOD11_0225D820
- ldr r0, _0225C840 ; =0x000006FD
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0225C838
-_0225C820:
- sub r0, r0, #5
- ldr r0, [r4, r0]
- bl MOD11_0225D824
- cmp r0, #1
- bne _0225C838
- ldr r0, _0225C840 ; =0x000006FD
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- mov r0, #0
- pop {r4, pc}
-_0225C838:
- mov r0, #0
- mvn r0, r0
- pop {r4, pc}
- nop
-_0225C840: .word 0x000006FD
-_0225C844: .word 0x000006F8
-
- thumb_func_start MOD11_0225C848
-MOD11_0225C848: ; 0x0225C848
- push {r4, lr}
- add r4, r0, #0
- ldr r0, _0225C898 ; =0x000006FD
- ldrb r1, [r4, r0]
- cmp r1, #0
- bne _0225C878
- sub r0, r0, #5
- mov r3, #0x11
- ldr r0, [r4, r0]
- mov r1, #0x40
- mov r2, #0x16
- lsl r3, r3, #0x10
- bl MOD11_0225D7D0
- ldr r0, _0225C89C ; =0x000006F8
- mov r1, #0x3c
- ldr r0, [r4, r0]
- bl MOD11_0225D820
- ldr r0, _0225C898 ; =0x000006FD
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0225C890
-_0225C878:
- sub r0, r0, #5
- ldr r0, [r4, r0]
- bl MOD11_0225D824
- cmp r0, #1
- bne _0225C890
- ldr r0, _0225C898 ; =0x000006FD
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- mov r0, #1
- pop {r4, pc}
-_0225C890:
- mov r0, #0
- mvn r0, r0
- pop {r4, pc}
- nop
-_0225C898: .word 0x000006FD
-_0225C89C: .word 0x000006F8
-
- thumb_func_start MOD11_0225C8A0
-MOD11_0225C8A0: ; 0x0225C8A0
- push {r4, lr}
- ldr r1, _0225C914 ; =0x000006FD
- add r4, r0, #0
- ldrb r0, [r4, r1]
- cmp r0, #0
- beq _0225C8B2
- cmp r0, #1
- beq _0225C8D0
- b _0225C8F4
-_0225C8B2:
- add r0, r1, #1
- ldrb r0, [r4, r0]
- add r2, r0, #1
- add r0, r1, #1
- strb r2, [r4, r0]
- ldrb r0, [r4, r0]
- cmp r0, #0x3c
- bls _0225C90C
- mov r2, #0
- add r0, r1, #1
- strb r2, [r4, r0]
- ldrb r0, [r4, r1]
- add r0, r0, #1
- strb r0, [r4, r1]
- b _0225C90C
-_0225C8D0:
- sub r0, r1, #5
- mov r3, #0x11
- ldr r0, [r4, r0]
- mov r1, #0x28
- mov r2, #0x92
- lsl r3, r3, #0x10
- bl MOD11_0225D7D0
- ldr r0, _0225C918 ; =0x000006F8
- mov r1, #0x3c
- ldr r0, [r4, r0]
- bl MOD11_0225D820
- ldr r0, _0225C914 ; =0x000006FD
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0225C90C
-_0225C8F4:
- sub r0, r1, #5
- ldr r0, [r4, r0]
- bl MOD11_0225D824
- cmp r0, #1
- bne _0225C90C
- ldr r0, _0225C914 ; =0x000006FD
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- mov r0, #1
- pop {r4, pc}
-_0225C90C:
- mov r0, #0
- mvn r0, r0
- pop {r4, pc}
- nop
-_0225C914: .word 0x000006FD
-_0225C918: .word 0x000006F8
-
- thumb_func_start MOD11_0225C91C
-MOD11_0225C91C: ; 0x0225C91C
- push {r3, r4, r5, lr}
- sub sp, #0x18
- add r5, r0, #0
- mov r0, #0x1b
- str r0, [sp]
- mov r0, #0x4a
- str r0, [sp, #4]
- mov r0, #0
- add r4, r1, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- ldr r0, _0225C990 ; =0x00004E41
- mov r1, #2
- str r0, [sp, #0x14]
- add r0, r2, #0
- add r2, r5, #0
- add r3, r4, #0
- bl FUN_0200C0DC
- mov r0, #1
- str r0, [sp]
- str r0, [sp, #4]
- ldr r0, _0225C994 ; =0x00004FB9
- mov r2, #0x1b
- add r3, r2, #0
- str r0, [sp, #8]
- add r0, r5, #0
- add r1, r4, #0
- add r3, #0xf9
- bl FUN_0200C00C
- mov r0, #1
- str r0, [sp]
- ldr r0, _0225C998 ; =0x00004FB3
- mov r2, #0x1b
- add r3, r2, #0
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- add r3, #0xfa
- bl FUN_0200C124
- mov r0, #1
- str r0, [sp]
- ldr r0, _0225C99C ; =0x00004FA8
- mov r2, #0x1b
- add r3, r2, #0
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- add r3, #0xfb
- bl FUN_0200C13C
- add sp, #0x18
- pop {r3, r4, r5, pc}
- nop
-_0225C990: .word 0x00004E41
-_0225C994: .word 0x00004FB9
-_0225C998: .word 0x00004FB3
-_0225C99C: .word 0x00004FA8
-
- thumb_func_start MOD11_0225C9A0
-MOD11_0225C9A0: ; 0x0225C9A0
- push {r4, lr}
- ldr r1, _0225C9C4 ; =0x00004FB9
- add r4, r0, #0
- bl FUN_0200C358
- ldr r1, _0225C9C8 ; =0x00004E41
- add r0, r4, #0
- bl FUN_0200C368
- ldr r1, _0225C9CC ; =0x00004FB3
- add r0, r4, #0
- bl FUN_0200C378
- ldr r1, _0225C9D0 ; =0x00004FA8
- add r0, r4, #0
- bl FUN_0200C388
- pop {r4, pc}
- .align 2, 0
-_0225C9C4: .word 0x00004FB9
-_0225C9C8: .word 0x00004E41
-_0225C9CC: .word 0x00004FB3
-_0225C9D0: .word 0x00004FA8
-
- thumb_func_start MOD11_0225C9D4
-MOD11_0225C9D4: ; 0x0225C9D4
- push {r4, lr}
- mov r0, #5
- lsl r1, r0, #6
- bl AllocFromHeap
- mov r2, #5
- mov r1, #0
- lsl r2, r2, #6
- add r4, r0, #0
- bl MI_CpuFill8
- add r0, r4, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225C9F0
-MOD11_0225C9F0: ; 0x0225C9F0
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _0225C9FE
- bl ErrorHandling
-_0225C9FE:
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225CA08
-MOD11_0225CA08: ; 0x0225CA08
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x38]
- str r3, [sp, #0x1c]
- str r0, [sp, #0x38]
- add r6, r1, #0
- str r2, [sp, #0x18]
- ldr r7, [sp, #0x3c]
- bl MOD11_0225C9D4
- ldr r2, [sp, #0x1c]
- ldr r3, [sp, #0x38]
- add r1, r6, #0
- str r0, [sp, #0x20]
- str r7, [sp]
- bl MOD11_0225CB10
- ldr r5, [sp, #0x20]
- mov r4, #0
- add r5, #0x1c
-_0225CA32:
- ldr r0, [sp, #0x14]
- add r1, r6, #0
- ldrb r0, [r0, r4]
- bl MOD11_0225D374
- ldr r1, [sp, #0x1c]
- ldr r2, [sp, #0x20]
- str r1, [sp]
- str r4, [sp, #4]
- str r0, [sp, #8]
- ldr r0, [sp, #0x38]
- mov r1, #0x4f
- str r0, [sp, #0xc]
- lsl r1, r1, #2
- add r1, r2, r1
- ldr r3, [sp, #0x18]
- add r0, r5, #0
- add r2, r6, #0
- str r7, [sp, #0x10]
- bl MOD11_0225CDB0
- add r4, r4, #1
- add r5, #0x30
- cmp r4, #6
- blt _0225CA32
- ldr r0, [sp, #0x20]
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225CA6C
-MOD11_0225CA6C: ; 0x0225CA6C
- ldr r1, [r0, #4]
- cmp r1, #0
- bne _0225CA8A
- mov r2, #0
-_0225CA74:
- ldr r1, [r0, #0x20]
- cmp r1, #0
- bne _0225CA82
- add r2, r2, #1
- add r0, #0x30
- cmp r2, #6
- blt _0225CA74
-_0225CA82:
- cmp r2, #6
- bne _0225CA8A
- mov r0, #1
- bx lr
-_0225CA8A:
- mov r0, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0225CA90
-MOD11_0225CA90: ; 0x0225CA90
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- add r4, r1, #0
- add r7, r2, #0
- cmp r6, #0
- bne _0225CAA0
- bl ErrorHandling
-_0225CAA0:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0225CC68
- add r5, r6, #0
- mov r4, #0
- add r5, #0x1c
- add r6, #0x18
-_0225CAB0:
- add r0, r5, #0
- add r1, r4, #0
- add r2, r7, #0
- add r3, r6, #0
- bl MOD11_0225D1A8
- add r4, r4, #1
- add r5, #0x30
- cmp r4, #6
- blt _0225CAB0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225CAC8
-MOD11_0225CAC8: ; 0x0225CAC8
- ldr r1, [r0, #4]
- cmp r1, #0
- bne _0225CAE6
- mov r2, #0
-_0225CAD0:
- ldr r1, [r0, #0x20]
- cmp r1, #0
- bne _0225CADE
- add r2, r2, #1
- add r0, #0x30
- cmp r2, #6
- blt _0225CAD0
-_0225CADE:
- cmp r2, #6
- bne _0225CAE6
- mov r0, #1
- bx lr
-_0225CAE6:
- mov r0, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0225CAEC
-MOD11_0225CAEC: ; 0x0225CAEC
- push {r4, r5, r6, lr}
- add r6, r0, #0
- ldr r0, [r6]
- bl FUN_0200C3DC
- mov r4, #0
- add r5, r6, #0
-_0225CAFA:
- ldr r0, [r5, #0x1c]
- bl FUN_0200C3DC
- add r4, r4, #1
- add r5, #0x30
- cmp r4, #6
- blt _0225CAFA
- add r0, r6, #0
- bl MOD11_0225C9F0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0225CB10
-MOD11_0225CB10: ; 0x0225CB10
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, [r5]
- add r6, r1, #0
- add r4, r2, #0
- add r7, r3, #0
- mov r1, #0
- cmp r0, #0
- bne _0225CB2A
- ldr r0, [r5, #4]
- cmp r0, #0
- bne _0225CB2A
- mov r1, #1
-_0225CB2A:
- cmp r1, #0
- bne _0225CB32
- bl ErrorHandling
-_0225CB32:
- add r0, r5, #0
- mov r1, #0
- mov r2, #0x1c
- bl MI_CpuFill8
- ldr r1, [sp, #0x18]
- ldr r2, _0225CBA8 ; =0x0225FE48
- add r0, r7, #0
- bl FUN_0200C154
- str r0, [r5]
- cmp r6, #0
- ldr r0, [r5]
- bne _0225CB68
- ldr r2, _0225CBAC ; =0x0225FE38
- lsl r3, r4, #1
- ldrsh r2, [r2, r3]
- mov r1, #0x16
- lsl r1, r1, #4
- bl FUN_0200C714
- ldr r0, [r5]
- mov r1, #8
- ldr r0, [r0]
- bl FUN_02020130
- b _0225CB80
-_0225CB68:
- ldr r2, _0225CBB0 ; =0x0225FE30
- lsl r3, r4, #1
- ldrsh r2, [r2, r3]
- mov r1, #0x5f
- mvn r1, r1
- bl FUN_0200C714
- ldr r0, [r5]
- mov r1, #7
- ldr r0, [r0]
- bl FUN_02020130
-_0225CB80:
- ldr r0, [r5]
- ldr r0, [r0]
- bl FUN_0200C59C
- str r6, [r5, #0xc]
- mov r2, #0x7d
- str r4, [r5, #0x10]
- mov r0, #0
- strb r0, [r5, #0x1a]
- ldr r0, _0225CBB4 ; =MOD11_0225CBBC
- add r1, r5, #0
- lsl r2, r2, #2
- bl FUN_0200CA44
- str r0, [r5, #4]
- ldr r0, _0225CBB8 ; =0x00000711
- bl FUN_020054C8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225CBA8: .word 0x0225FE48
-_0225CBAC: .word 0x0225FE38
-_0225CBB0: .word 0x0225FE30
-_0225CBB4: .word MOD11_0225CBBC
-_0225CBB8: .word 0x00000711
-
- thumb_func_start MOD11_0225CBBC
-MOD11_0225CBBC: ; 0x0225CBBC
- push {r3, r4, lr}
- sub sp, #4
- add r4, r1, #0
- ldrb r1, [r4, #0x1a]
- cmp r1, #0
- beq _0225CBCE
- cmp r1, #1
- beq _0225CBEA
- b _0225CC52
-_0225CBCE:
- add r1, sp, #0
- ldr r0, [r4]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- add r1, sp, #0
- mov r0, #2
- ldrsh r0, [r1, r0]
- lsl r0, r0, #8
- str r0, [r4, #0x14]
- ldrb r0, [r4, #0x1a]
- add r0, r0, #1
- strb r0, [r4, #0x1a]
-_0225CBEA:
- ldr r0, [r4, #0xc]
- ldr r1, [r4, #0x14]
- cmp r0, #0
- bne _0225CC22
- mov r0, #0xe
- lsl r0, r0, #8
- sub r2, r1, r0
- lsl r1, r0, #4
- str r2, [r4, #0x14]
- cmp r2, r1
- bgt _0225CC0A
- lsl r0, r0, #4
- str r0, [r4, #0x14]
- ldrb r0, [r4, #0x1a]
- add r0, r0, #1
- strb r0, [r4, #0x1a]
-_0225CC0A:
- ldr r2, [r4, #0x10]
- ldr r1, [r4, #0x14]
- lsl r3, r2, #1
- ldr r2, _0225CC60 ; =0x0225FE38
- lsl r1, r1, #8
- ldrsh r2, [r2, r3]
- ldr r0, [r4]
- asr r1, r1, #0x10
- bl FUN_0200C714
- add sp, #4
- pop {r3, r4, pc}
-_0225CC22:
- mov r0, #0xe
- lsl r0, r0, #8
- add r1, r1, r0
- mov r0, #2
- lsl r0, r0, #0xc
- str r1, [r4, #0x14]
- cmp r1, r0
- blt _0225CC3A
- str r0, [r4, #0x14]
- ldrb r0, [r4, #0x1a]
- add r0, r0, #1
- strb r0, [r4, #0x1a]
-_0225CC3A:
- ldr r2, [r4, #0x10]
- ldr r1, [r4, #0x14]
- lsl r3, r2, #1
- ldr r2, _0225CC64 ; =0x0225FE30
- lsl r1, r1, #8
- ldrsh r2, [r2, r3]
- ldr r0, [r4]
- asr r1, r1, #0x10
- bl FUN_0200C714
- add sp, #4
- pop {r3, r4, pc}
-_0225CC52:
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #4]
- add sp, #4
- pop {r3, r4, pc}
- nop
-_0225CC60: .word 0x0225FE38
-_0225CC64: .word 0x0225FE30
-
- thumb_func_start MOD11_0225CC68
-MOD11_0225CC68: ; 0x0225CC68
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5]
- add r4, r1, #0
- cmp r0, #0
- beq _0225CC7A
- ldr r0, [r5, #4]
- cmp r0, #0
- beq _0225CC7E
-_0225CC7A:
- bl ErrorHandling
-_0225CC7E:
- mov r0, #0
- strb r0, [r5, #0x1a]
- str r4, [r5, #8]
- cmp r4, #0
- bne _0225CC8C
- mov r0, #4
- b _0225CC8C
-_0225CC8C:
- strb r0, [r5, #0x1b]
- mov r2, #0x7d
- ldr r0, _0225CCA0 ; =MOD11_0225CCA4
- add r1, r5, #0
- lsl r2, r2, #2
- bl FUN_0200CA44
- str r0, [r5, #4]
- pop {r3, r4, r5, pc}
- nop
-_0225CCA0: .word MOD11_0225CCA4
-
- thumb_func_start MOD11_0225CCA4
-MOD11_0225CCA4: ; 0x0225CCA4
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0x1a]
- cmp r0, #0
- beq _0225CCBC
- cmp r0, #1
- beq _0225CCFC
- cmp r0, #2
- beq _0225CD10
- b _0225CD8E
-_0225CCBC:
- add r1, sp, #4
- ldr r0, [r4]
- add r1, #2
- add r2, sp, #4
- bl FUN_0200C7A0
- add r1, sp, #4
- mov r0, #2
- ldrsh r0, [r1, r0]
- mov r1, #1
- lsl r0, r0, #8
- str r0, [r4, #0x14]
- ldr r0, [r4]
- bl FUN_0200C90C
- mov r0, #1
- lsl r0, r0, #0xc
- strh r0, [r4, #0x18]
- mov r0, #0x18
- ldrsh r0, [r4, r0]
- mov r1, #0
- mov r2, #0x3f
- asr r3, r0, #8
- mov r0, #0x10
- sub r0, r0, r3
- str r0, [sp]
- ldr r0, _0225CDA0 ; =0x04000050
- bl G2x_SetBlendAlpha_
- ldrb r0, [r4, #0x1a]
- add r0, r0, #1
- strb r0, [r4, #0x1a]
-_0225CCFC:
- ldrb r0, [r4, #0x1b]
- cmp r0, #0
- beq _0225CD0A
- sub r0, r0, #1
- add sp, #8
- strb r0, [r4, #0x1b]
- pop {r3, r4, r5, pc}
-_0225CD0A:
- ldrb r0, [r4, #0x1a]
- add r0, r0, #1
- strb r0, [r4, #0x1a]
-_0225CD10:
- ldr r0, [r4, #8]
- cmp r0, #0
- bne _0225CD54
- ldr r0, [r4, #0xc]
- ldr r1, [r4, #0x14]
- cmp r0, #0
- bne _0225CD3A
- mov r0, #1
- lsl r0, r0, #0xa
- sub r1, r1, r0
- str r1, [r4, #0x14]
- ldr r2, [r4, #0x10]
- lsl r1, r1, #8
- lsl r3, r2, #1
- ldr r2, _0225CDA4 ; =0x0225FE38
- ldr r0, [r4]
- ldrsh r2, [r2, r3]
- asr r1, r1, #0x10
- bl FUN_0200C714
- b _0225CD54
-_0225CD3A:
- mov r0, #1
- lsl r0, r0, #0xa
- add r1, r1, r0
- str r1, [r4, #0x14]
- ldr r2, [r4, #0x10]
- lsl r1, r1, #8
- lsl r3, r2, #1
- ldr r2, _0225CDA8 ; =0x0225FE30
- ldr r0, [r4]
- ldrsh r2, [r2, r3]
- asr r1, r1, #0x10
- bl FUN_0200C714
-_0225CD54:
- mov r1, #0x18
- ldrsh r2, [r4, r1]
- add r0, r1, #0
- add r0, #0xe8
- sub r0, r2, r0
- strh r0, [r4, #0x18]
- ldrsh r0, [r4, r1]
- cmp r0, #0
- bgt _0225CD78
- mov r1, #0
- strh r1, [r4, #0x18]
- ldr r0, [r4]
- ldr r0, [r0]
- bl FUN_0200C63C
- ldrb r0, [r4, #0x1a]
- add r0, r0, #1
- strb r0, [r4, #0x1a]
-_0225CD78:
- mov r0, #0x18
- ldrsh r0, [r4, r0]
- add sp, #8
- asr r1, r0, #8
- mov r0, #0x10
- sub r0, r0, r1
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0225CDAC ; =0x04000052
- strh r1, [r0]
- pop {r3, r4, r5, pc}
-_0225CD8E:
- bl MOD11_02231678
- add r0, r5, #0
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #4]
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0225CDA0: .word 0x04000050
-_0225CDA4: .word 0x0225FE38
-_0225CDA8: .word 0x0225FE30
-_0225CDAC: .word 0x04000052
-
- thumb_func_start MOD11_0225CDB0
-MOD11_0225CDB0: ; 0x0225CDB0
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, [r5]
- add r7, r1, #0
- add r6, r2, #0
- mov r1, #0
- str r3, [sp]
- ldr r4, [sp, #0x1c]
- cmp r0, #0
- bne _0225CDCC
- ldr r0, [r5, #4]
- cmp r0, #0
- bne _0225CDCC
- mov r1, #1
-_0225CDCC:
- cmp r1, #0
- bne _0225CDD4
- bl ErrorHandling
-_0225CDD4:
- add r0, r5, #0
- mov r1, #0
- mov r2, #0x30
- bl MI_CpuFill8
- ldr r0, [sp, #0x24]
- ldr r1, [sp, #0x28]
- ldr r2, _0225CEA4 ; =0x0225FE7C
- bl FUN_0200C154
- str r0, [r5]
- cmp r6, #0
- ldr r0, [r5]
- bne _0225CE02
- ldr r2, [sp, #0x18]
- mov r1, #0x45
- lsl r3, r2, #1
- ldr r2, _0225CEA8 ; =0x0225FE40
- lsl r1, r1, #2
- ldrsh r2, [r2, r3]
- bl FUN_0200C714
- b _0225CE12
-_0225CE02:
- ldr r2, [sp, #0x18]
- mov r1, #0x13
- lsl r3, r2, #1
- ldr r2, _0225CEAC ; =0x0225FE28
- mvn r1, r1
- ldrsh r2, [r2, r3]
- bl FUN_0200C714
-_0225CE12:
- ldr r0, [r5]
- ldr r1, [sp, #0x20]
- ldr r0, [r0]
- bl FUN_02020130
- ldr r0, [r5]
- ldr r0, [r0]
- bl FUN_0200C59C
- add r0, r5, #0
- str r6, [r5, #8]
- add r0, #0x2d
- strb r4, [r0]
- ldr r0, [sp, #0x18]
- str r0, [r5, #0xc]
- ldr r0, [sp, #0x20]
- bl MOD11_0225D3B4
- add r1, r5, #0
- add r1, #0x2e
- strb r0, [r1]
- ldr r0, [sp, #0x20]
- str r7, [r5, #0x14]
- cmp r0, #6
- bne _0225CE48
- ldr r0, _0225CEB0 ; =0x00000713
- b _0225CE4A
-_0225CE48:
- ldr r0, _0225CEB4 ; =0x00000712
-_0225CE4A:
- strh r0, [r5, #0x2a]
- cmp r6, #0
- bne _0225CE5E
- lsl r0, r4, #4
- add r0, #0xa2
- str r0, [r5, #0x20]
- mov r0, #0xf
- mul r0, r4
- add r0, #0x9c
- b _0225CE70
-_0225CE5E:
- lsl r1, r4, #4
- mov r0, #0x5e
- sub r0, r0, r1
- str r0, [r5, #0x20]
- mov r0, #0xf
- add r1, r4, #0
- mul r1, r0
- mov r0, #0x64
- sub r0, r0, r1
-_0225CE70:
- str r0, [r5, #0x24]
- add r0, r5, #0
- mov r1, #0
- add r0, #0x2c
- strb r1, [r0]
- ldr r0, [sp]
- ldr r2, _0225CEB8 ; =0x000001F5
- cmp r0, #0
- bne _0225CE96
- lsl r0, r4, #1
- add r0, r4, r0
- add r0, r0, #5
- strh r0, [r5, #0x28]
- ldr r0, _0225CEBC ; =MOD11_0225CEC4
- add r1, r5, #0
- bl FUN_0200CA44
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0225CE96:
- ldr r0, _0225CEC0 ; =MOD11_0225D0C4
- strh r1, [r5, #0x28]
- add r1, r5, #0
- bl FUN_0200CA44
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225CEA4: .word 0x0225FE7C
-_0225CEA8: .word 0x0225FE40
-_0225CEAC: .word 0x0225FE28
-_0225CEB0: .word 0x00000713
-_0225CEB4: .word 0x00000712
-_0225CEB8: .word 0x000001F5
-_0225CEBC: .word MOD11_0225CEC4
-_0225CEC0: .word MOD11_0225D0C4
-
- thumb_func_start MOD11_0225CEC4
-MOD11_0225CEC4: ; 0x0225CEC4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- cmp r0, #6
- bls _0225CED6
- b _0225D0A6
-_0225CED6:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225CEE2: ; jump table
- .short _0225CEF0 - _0225CEE2 - 2 ; case 0
- .short _0225CF14 - _0225CEE2 - 2 ; case 1
- .short _0225CF22 - _0225CEE2 - 2 ; case 2
- .short _0225CFA4 - _0225CEE2 - 2 ; case 3
- .short _0225CFBC - _0225CEE2 - 2 ; case 4
- .short _0225CFFC - _0225CEE2 - 2 ; case 5
- .short _0225D02A - _0225CEE2 - 2 ; case 6
-_0225CEF0:
- add r1, sp, #0
- ldr r0, [r4]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- add r1, sp, #0
- mov r0, #2
- ldrsh r0, [r1, r0]
- lsl r0, r0, #8
- str r0, [r4, #0x1c]
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225CF14:
- mov r0, #0x28
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _0225CF22
- sub r0, r0, #1
- strh r0, [r4, #0x28]
- pop {r3, r4, r5, pc}
-_0225CF22:
- ldr r0, [r4, #8]
- ldr r1, [r4, #0x1c]
- cmp r0, #0
- bne _0225CF66
- mov r0, #0xe
- lsl r0, r0, #8
- sub r1, r1, r0
- str r1, [r4, #0x1c]
- ldr r0, [r4, #0x24]
- lsl r0, r0, #8
- cmp r1, r0
- bgt _0225CF50
- str r0, [r4, #0x1c]
- ldrh r0, [r4, #0x2a]
- bl FUN_020054C8
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225CF50:
- ldr r2, [r4, #0xc]
- ldr r1, [r4, #0x1c]
- lsl r3, r2, #1
- ldr r2, _0225D0BC ; =0x0225FE40
- lsl r1, r1, #8
- ldrsh r2, [r2, r3]
- ldr r0, [r4]
- asr r1, r1, #0x10
- bl FUN_0200C714
- b _0225CF9A
-_0225CF66:
- mov r0, #0xe
- lsl r0, r0, #8
- add r1, r1, r0
- str r1, [r4, #0x1c]
- ldr r0, [r4, #0x24]
- lsl r0, r0, #8
- cmp r1, r0
- blt _0225CF86
- str r0, [r4, #0x1c]
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225CF86:
- ldr r2, [r4, #0xc]
- ldr r1, [r4, #0x1c]
- lsl r3, r2, #1
- ldr r2, _0225D0C0 ; =0x0225FE28
- lsl r1, r1, #8
- ldrsh r2, [r2, r3]
- ldr r0, [r4]
- asr r1, r1, #0x10
- bl FUN_0200C714
-_0225CF9A:
- ldr r0, [r4]
- ldr r0, [r0]
- bl FUN_0200C59C
- pop {r3, r4, r5, pc}
-_0225CFA4:
- ldr r1, [r4, #0x14]
- mov r0, #0
- ldrsb r0, [r1, r0]
- add r0, r0, #1
- strb r0, [r1]
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225CFBC:
- ldr r1, [r4, #0x14]
- mov r0, #0
- ldrsb r0, [r1, r0]
- cmp r0, #6
- beq _0225CFD0
- ldr r0, [r4]
- ldr r0, [r0]
- bl FUN_0200C59C
- pop {r3, r4, r5, pc}
-_0225CFD0:
- ldr r0, [r4, #8]
- cmp r0, #0
- ldr r0, [r4]
- bne _0225CFE2
- ldr r0, [r0]
- mov r1, #1
- bl FUN_02020208
- b _0225CFEA
-_0225CFE2:
- ldr r0, [r0]
- mov r1, #1
- bl FUN_02020208
-_0225CFEA:
- mov r0, #0
- strh r0, [r4, #0x28]
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225CFFC:
- mov r0, #0x28
- ldrsh r1, [r4, r0]
- add r1, r1, #1
- strh r1, [r4, #0x28]
- ldrsh r0, [r4, r0]
- cmp r0, #0
- blt _0225D0BA
- add r1, r4, #0
- ldr r0, [r4]
- add r1, #0x2e
- ldrb r1, [r1]
- ldr r0, [r0]
- bl FUN_02020130
- mov r0, #0
- strh r0, [r4, #0x28]
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225D02A:
- ldr r0, [r4, #8]
- ldr r1, [r4, #0x1c]
- cmp r0, #0
- bne _0225D068
- mov r0, #6
- lsl r0, r0, #8
- add r1, r1, r0
- str r1, [r4, #0x1c]
- ldr r0, [r4, #0x20]
- lsl r0, r0, #8
- cmp r1, r0
- blt _0225D052
- str r0, [r4, #0x1c]
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225D052:
- ldr r2, [r4, #0xc]
- ldr r1, [r4, #0x1c]
- lsl r3, r2, #1
- ldr r2, _0225D0BC ; =0x0225FE40
- lsl r1, r1, #8
- ldrsh r2, [r2, r3]
- ldr r0, [r4]
- asr r1, r1, #0x10
- bl FUN_0200C714
- b _0225D09C
-_0225D068:
- mov r0, #6
- lsl r0, r0, #8
- sub r1, r1, r0
- str r1, [r4, #0x1c]
- ldr r0, [r4, #0x20]
- lsl r0, r0, #8
- cmp r1, r0
- bgt _0225D088
- str r0, [r4, #0x1c]
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225D088:
- ldr r2, [r4, #0xc]
- ldr r1, [r4, #0x1c]
- lsl r3, r2, #1
- ldr r2, _0225D0C0 ; =0x0225FE28
- lsl r1, r1, #8
- ldrsh r2, [r2, r3]
- ldr r0, [r4]
- asr r1, r1, #0x10
- bl FUN_0200C714
-_0225D09C:
- ldr r0, [r4]
- ldr r0, [r0]
- bl FUN_0200C59C
- pop {r3, r4, r5, pc}
-_0225D0A6:
- ldr r0, [r4]
- mov r1, #0
- ldr r0, [r0]
- bl FUN_02020208
- add r0, r5, #0
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #4]
-_0225D0BA:
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0225D0BC: .word 0x0225FE40
-_0225D0C0: .word 0x0225FE28
-
- thumb_func_start MOD11_0225D0C4
-MOD11_0225D0C4: ; 0x0225D0C4
- push {r3, r4, lr}
- sub sp, #4
- add r4, r1, #0
- add r1, #0x2c
- ldrb r1, [r1]
- cmp r1, #0
- beq _0225D0DC
- cmp r1, #1
- beq _0225D10A
- cmp r1, #2
- beq _0225D11A
- b _0225D192
-_0225D0DC:
- add r1, sp, #0
- ldr r0, [r4]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- add r1, sp, #0
- mov r0, #2
- ldrsh r0, [r1, r0]
- mov r1, #0
- lsl r0, r0, #8
- str r0, [r4, #0x1c]
- ldr r0, [r4]
- ldr r0, [r0]
- bl FUN_02020208
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225D10A:
- mov r0, #0x28
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _0225D11A
- sub r0, r0, #1
- add sp, #4
- strh r0, [r4, #0x28]
- pop {r3, r4, pc}
-_0225D11A:
- ldr r0, [r4, #8]
- ldr r1, [r4, #0x1c]
- cmp r0, #0
- bne _0225D15A
- mov r0, #0xe
- lsl r0, r0, #8
- sub r1, r1, r0
- str r1, [r4, #0x1c]
- ldr r0, [r4, #0x20]
- lsl r0, r0, #8
- cmp r1, r0
- bgt _0225D142
- str r0, [r4, #0x1c]
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225D142:
- ldr r2, [r4, #0xc]
- ldr r1, [r4, #0x1c]
- lsl r3, r2, #1
- ldr r2, _0225D1A0 ; =0x0225FE40
- lsl r1, r1, #8
- ldrsh r2, [r2, r3]
- ldr r0, [r4]
- asr r1, r1, #0x10
- bl FUN_0200C714
- add sp, #4
- pop {r3, r4, pc}
-_0225D15A:
- mov r0, #0xe
- lsl r0, r0, #8
- add r1, r1, r0
- str r1, [r4, #0x1c]
- ldr r0, [r4, #0x20]
- lsl r0, r0, #8
- cmp r1, r0
- blt _0225D17A
- str r0, [r4, #0x1c]
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225D17A:
- ldr r2, [r4, #0xc]
- ldr r1, [r4, #0x1c]
- lsl r3, r2, #1
- ldr r2, _0225D1A4 ; =0x0225FE28
- lsl r1, r1, #8
- ldrsh r2, [r2, r3]
- ldr r0, [r4]
- asr r1, r1, #0x10
- bl FUN_0200C714
- add sp, #4
- pop {r3, r4, pc}
-_0225D192:
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #4]
- add sp, #4
- pop {r3, r4, pc}
- nop
-_0225D1A0: .word 0x0225FE40
-_0225D1A4: .word 0x0225FE28
-
- thumb_func_start MOD11_0225D1A8
-MOD11_0225D1A8: ; 0x0225D1A8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, [r5]
- add r6, r1, #0
- add r7, r2, #0
- add r4, r3, #0
- cmp r0, #0
- beq _0225D1BE
- ldr r0, [r5, #4]
- cmp r0, #0
- beq _0225D1C2
-_0225D1BE:
- bl ErrorHandling
-_0225D1C2:
- add r0, r5, #0
- mov r1, #0
- add r0, #0x2c
- strb r1, [r0]
- cmp r7, #0
- str r4, [r5, #0x18]
- ldr r2, _0225D200 ; =0x000001F5
- bne _0225D1EC
- lsl r0, r6, #1
- add r0, r6, r0
- strh r0, [r5, #0x28]
- add r0, r5, #0
- mov r1, #4
- add r0, #0x2f
- strb r1, [r0]
- ldr r0, _0225D204 ; =MOD11_0225D20C
- add r1, r5, #0
- bl FUN_0200CA44
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0225D1EC:
- add r0, r5, #0
- strh r1, [r5, #0x28]
- add r0, #0x2f
- strb r1, [r0]
- ldr r0, _0225D208 ; =MOD11_0225D31C
- add r1, r5, #0
- bl FUN_0200CA44
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225D200: .word 0x000001F5
-_0225D204: .word MOD11_0225D20C
-_0225D208: .word MOD11_0225D31C
-
- thumb_func_start MOD11_0225D20C
-MOD11_0225D20C: ; 0x0225D20C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldr r1, [r4, #0x18]
- add r5, r0, #0
- mov r0, #0
- ldrsh r0, [r1, r0]
- cmp r0, #0
- bne _0225D224
- add r0, r4, #0
- mov r1, #0x64
- add r0, #0x2c
- strb r1, [r0]
-_0225D224:
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- cmp r0, #2
- bgt _0225D23E
- cmp r0, #0
- blt _0225D2FA
- beq _0225D242
- cmp r0, #1
- beq _0225D26E
- cmp r0, #2
- beq _0225D294
- b _0225D2FA
-_0225D23E:
- cmp r0, #0x64
- b _0225D2FA
-_0225D242:
- add r1, sp, #0
- ldr r0, [r4]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- add r1, sp, #0
- mov r0, #2
- ldrsh r0, [r1, r0]
- mov r1, #1
- lsl r0, r0, #8
- str r0, [r4, #0x1c]
- ldr r0, [r4]
- bl FUN_0200C90C
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225D26E:
- add r0, r4, #0
- add r0, #0x2f
- ldrb r0, [r0]
- cmp r0, #0
- beq _0225D286
- add r0, r4, #0
- add r0, #0x2f
- ldrb r0, [r0]
- add r4, #0x2f
- sub r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_0225D286:
- mov r0, #0x28
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _0225D294
- sub r0, r0, #1
- strh r0, [r4, #0x28]
- pop {r3, r4, r5, pc}
-_0225D294:
- ldr r0, [r4, #8]
- ldr r1, [r4, #0x1c]
- cmp r0, #0
- bne _0225D2B8
- mov r0, #3
- lsl r0, r0, #0xa
- sub r1, r1, r0
- str r1, [r4, #0x1c]
- ldr r2, [r4, #0xc]
- lsl r1, r1, #8
- lsl r3, r2, #1
- ldr r2, _0225D310 ; =0x0225FE40
- ldr r0, [r4]
- ldrsh r2, [r2, r3]
- asr r1, r1, #0x10
- bl FUN_0200C714
- b _0225D2D2
-_0225D2B8:
- mov r0, #3
- lsl r0, r0, #0xa
- add r1, r1, r0
- str r1, [r4, #0x1c]
- ldr r2, [r4, #0xc]
- lsl r1, r1, #8
- lsl r3, r2, #1
- ldr r2, _0225D314 ; =0x0225FE28
- ldr r0, [r4]
- ldrsh r2, [r2, r3]
- asr r1, r1, #0x10
- bl FUN_0200C714
-_0225D2D2:
- ldr r1, [r4, #0x1c]
- ldr r0, _0225D318 ; =0xFFFFF000
- cmp r1, r0
- blt _0225D2E2
- mov r0, #0x11
- lsl r0, r0, #0xc
- cmp r1, r0
- ble _0225D2F0
-_0225D2E2:
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225D2F0:
- ldr r0, [r4]
- ldr r0, [r0]
- bl FUN_0200C59C
- pop {r3, r4, r5, pc}
-_0225D2FA:
- ldr r0, [r4]
- mov r1, #0
- ldr r0, [r0]
- bl FUN_0200C63C
- add r0, r5, #0
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0225D310: .word 0x0225FE40
-_0225D314: .word 0x0225FE28
-_0225D318: .word 0xFFFFF000
-
- thumb_func_start MOD11_0225D31C
-MOD11_0225D31C: ; 0x0225D31C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldr r1, [r4, #0x18]
- add r5, r0, #0
- mov r0, #0
- ldrsh r0, [r1, r0]
- cmp r0, #0
- bne _0225D334
- add r0, r4, #0
- mov r1, #0x64
- add r0, #0x2c
- strb r1, [r0]
-_0225D334:
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- cmp r0, #0
- beq _0225D346
- cmp r0, #1
- beq _0225D370
- cmp r0, #0x64
- b _0225D35C
-_0225D346:
- ldr r0, [r4]
- mov r1, #1
- bl FUN_0200C90C
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r4, #0x2c
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_0225D35C:
- ldr r0, [r4]
- mov r1, #0
- ldr r0, [r0]
- bl FUN_0200C63C
- add r0, r5, #0
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #4]
-_0225D370:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225D374
-MOD11_0225D374: ; 0x0225D374
- cmp r0, #3
- bhi _0225D38C
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225D384: ; jump table
- .short _0225D38C - _0225D384 - 2 ; case 0
- .short _0225D390 - _0225D384 - 2 ; case 1
- .short _0225D39C - _0225D384 - 2 ; case 2
- .short _0225D3A8 - _0225D384 - 2 ; case 3
-_0225D38C:
- mov r0, #6
- bx lr
-_0225D390:
- cmp r1, #0
- bne _0225D398
- mov r0, #3
- bx lr
-_0225D398:
- mov r0, #0
- bx lr
-_0225D39C:
- cmp r1, #0
- bne _0225D3A4
- mov r0, #5
- bx lr
-_0225D3A4:
- mov r0, #2
- bx lr
-_0225D3A8:
- cmp r1, #0
- bne _0225D3B0
- mov r0, #4
- bx lr
-_0225D3B0:
- mov r0, #1
- bx lr
-
- thumb_func_start MOD11_0225D3B4
-MOD11_0225D3B4: ; 0x0225D3B4
- cmp r0, #6
- bhi _0225D3EA
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0225D3C4: ; jump table
- .short _0225D3D8 - _0225D3C4 - 2 ; case 0
- .short _0225D3E8 - _0225D3C4 - 2 ; case 1
- .short _0225D3E0 - _0225D3C4 - 2 ; case 2
- .short _0225D3D4 - _0225D3C4 - 2 ; case 3
- .short _0225D3E4 - _0225D3C4 - 2 ; case 4
- .short _0225D3DC - _0225D3C4 - 2 ; case 5
- .short _0225D3D2 - _0225D3C4 - 2 ; case 6
-_0225D3D2:
- bx lr
-_0225D3D4:
- mov r0, #0
- bx lr
-_0225D3D8:
- mov r0, #3
- bx lr
-_0225D3DC:
- mov r0, #2
- bx lr
-_0225D3E0:
- mov r0, #5
- bx lr
-_0225D3E4:
- mov r0, #1
- bx lr
-_0225D3E8:
- mov r0, #4
-_0225D3EA:
- bx lr
-
- thumb_func_start MOD11_0225D3EC
-MOD11_0225D3EC: ; 0x0225D3EC
- push {r4, r5, r6, lr}
- sub sp, #0x18
- add r5, r0, #0
- mov r0, #0x1b
- str r0, [sp]
- mov r0, #0x2c
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- mov r0, #2
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x28]
- add r4, r1, #0
- add r6, r3, #0
- str r0, [sp, #0x14]
- add r0, r2, #0
- mov r1, #3
- add r2, r5, #0
- add r3, r4, #0
- bl FUN_0200C0DC
- mov r0, #1
- str r0, [sp]
- mov r0, #2
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1b
- mov r3, #0xba
- str r6, [sp, #8]
- bl FUN_0200C00C
- mov r0, #1
- str r0, [sp]
- ldr r0, [sp, #0x2c]
- add r1, r4, #0
- str r0, [sp, #4]
- add r0, r5, #0
- mov r2, #0x1b
- mov r3, #0xbb
- bl FUN_0200C124
- mov r0, #1
- str r0, [sp]
- ldr r0, [sp, #0x30]
- add r1, r4, #0
- str r0, [sp, #4]
- add r0, r5, #0
- mov r2, #0x1b
- mov r3, #0xbc
- bl FUN_0200C13C
- add sp, #0x18
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0225D45C
-MOD11_0225D45C: ; 0x0225D45C
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r4, r2, #0
- add r6, r3, #0
- bl FUN_0200C358
- add r0, r5, #0
- add r1, r4, #0
- bl FUN_0200C368
- add r0, r5, #0
- add r1, r6, #0
- bl FUN_0200C378
- ldr r1, [sp, #0x10]
- add r0, r5, #0
- bl FUN_0200C388
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225D484
-MOD11_0225D484: ; 0x0225D484
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- add r5, r3, #0
- mov ip, r2
- ldr r3, _0225D4FC ; =0x0225FEB0
- add r6, r0, #0
- add r7, r1, #0
- add r2, sp, #4
- mov r4, #6
-_0225D496:
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- sub r4, r4, #1
- bne _0225D496
- ldr r0, [r3]
- mov r1, #0x18
- str r0, [r2]
- ldr r0, [sp, #0x50]
- str r5, [sp, #0x18]
- str r0, [sp, #0x1c]
- ldr r0, [sp, #0x54]
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x58]
- str r0, [sp, #0x24]
- ldr r0, [sp, #0x5c]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x60]
- str r0, [sp, #0x30]
- mov r0, ip
- bl AllocFromHeap
- mov r1, #0
- mov r2, #0x18
- str r0, [sp]
- bl MI_CpuFill8
- ldr r5, [sp]
- mov r4, #0
-_0225D4CE:
- add r0, r6, #0
- add r1, r7, #0
- add r2, sp, #4
- bl FUN_0200C154
- mov r1, #0
- stmia r5!, {r0}
- bl FUN_0200C644
- add r4, r4, #1
- cmp r4, #5
- blt _0225D4CE
- ldr r0, _0225D500 ; =MOD11_0225D670
- ldr r1, [sp]
- ldr r2, _0225D504 ; =0x00009C40
- bl FUN_0200CA44
- ldr r1, [sp]
- str r0, [r1, #0x14]
- add r0, r1, #0
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225D4FC: .word 0x0225FEB0
-_0225D500: .word MOD11_0225D670
-_0225D504: .word 0x00009C40
-
- thumb_func_start MOD11_0225D508
-MOD11_0225D508: ; 0x0225D508
- push {r4, r5, r6, lr}
- add r6, r0, #0
- mov r4, #0
- add r5, r6, #0
-_0225D510:
- ldr r0, [r5]
- bl FUN_0200C3DC
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #5
- blt _0225D510
- ldr r0, [r6, #0x14]
- bl FUN_0200CAB4
- add r0, r6, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0225D52C
-MOD11_0225D52C: ; 0x0225D52C
- push {r4, r5, r6, lr}
- add r5, r0, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r4, [sp, #0x24]
- add r6, r3, #0
- ldr r0, [r5]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- add r3, r4, #0
- bl FUN_0200C750
- ldr r2, [sp, #0x10]
- lsl r1, r6, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r5, #4]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- add r3, r4, #0
- bl FUN_0200C750
- ldr r1, [sp, #0x14]
- ldr r2, [sp, #0x18]
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r5, #8]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- add r3, r4, #0
- bl FUN_0200C750
- ldr r1, [sp, #0x1c]
- ldr r2, [sp, #0x20]
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r5, #0xc]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- add r3, r4, #0
- bl FUN_0200C750
- ldr r0, [r5]
- mov r1, #0
- bl FUN_0200C5C0
- ldr r0, [r5, #4]
- mov r1, #1
- bl FUN_0200C5C0
- ldr r0, [r5, #8]
- mov r1, #2
- bl FUN_0200C5C0
- ldr r0, [r5, #0xc]
- mov r1, #3
- bl FUN_0200C5C0
- mov r4, #0
- mov r6, #1
-_0225D5A2:
- ldr r0, [r5]
- add r1, r6, #0
- bl FUN_0200C644
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #4
- blt _0225D5A2
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0225D5B4
-MOD11_0225D5B4: ; 0x0225D5B4
- push {r4, lr}
- sub sp, #0x18
- ldr r4, [sp, #0x20]
- str r4, [sp]
- ldr r4, [sp, #0x24]
- str r4, [sp, #4]
- ldr r4, [sp, #0x28]
- str r4, [sp, #8]
- ldr r4, [sp, #0x2c]
- str r4, [sp, #0xc]
- ldr r4, [sp, #0x30]
- str r4, [sp, #0x10]
- mov r4, #3
- lsl r4, r4, #0x12
- str r4, [sp, #0x14]
- bl MOD11_0225D52C
- add sp, #0x18
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225D5DC
-MOD11_0225D5DC: ; 0x0225D5DC
- push {r3, r4, lr}
- sub sp, #0x14
- add r4, r2, #0
- str r3, [sp]
- ldr r2, [sp, #0x20]
- str r1, [sp, #4]
- str r2, [sp, #8]
- str r4, [sp, #0xc]
- str r2, [sp, #0x10]
- add r2, r3, #0
- add r3, r4, #0
- bl MOD11_0225D5B4
- add sp, #0x14
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225D5FC
-MOD11_0225D5FC: ; 0x0225D5FC
- push {r4, lr}
- sub sp, #0x18
- add r4, r2, #0
- str r3, [sp]
- ldr r2, [sp, #0x20]
- str r1, [sp, #4]
- str r2, [sp, #8]
- str r4, [sp, #0xc]
- str r2, [sp, #0x10]
- ldr r2, [sp, #0x24]
- str r2, [sp, #0x14]
- add r2, r3, #0
- add r3, r4, #0
- bl MOD11_0225D52C
- add sp, #0x18
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225D620
-MOD11_0225D620: ; 0x0225D620
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r3, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r5, #0x10]
- ldr r3, [sp, #0x10]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C750
- ldr r0, [r5, #0x10]
- add r1, r4, #0
- bl FUN_0200C5C0
- ldr r0, [r5, #0x10]
- mov r1, #1
- bl FUN_0200C644
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0225D648
-MOD11_0225D648: ; 0x0225D648
- push {r4, r5, r6, lr}
- mov r4, #0
- add r5, r0, #0
- add r6, r4, #0
-_0225D650:
- ldr r0, [r5]
- add r1, r6, #0
- bl FUN_0200C644
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #5
- blt _0225D650
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225D664
-MOD11_0225D664: ; 0x0225D664
- ldr r3, _0225D66C ; =FUN_0200C644
- ldr r0, [r0, #0x10]
- mov r1, #0
- bx r3
- .align 2, 0
-_0225D66C: .word FUN_0200C644
-
- thumb_func_start MOD11_0225D670
-MOD11_0225D670: ; 0x0225D670
- push {r4, r5, r6, lr}
- add r6, r1, #0
- ldr r0, [r6]
- bl FUN_0200C658
- cmp r0, #0
- beq _0225D6A0
- mov r4, #0
- add r5, r6, #0
-_0225D682:
- ldr r0, [r5]
- bl FUN_0200C5A8
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #4
- blt _0225D682
- ldr r0, [r6, #0x10]
- bl FUN_0200C658
- cmp r0, #1
- bne _0225D6A0
- ldr r0, [r6, #0x10]
- bl FUN_0200C5A8
-_0225D6A0:
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225D6A4
-MOD11_0225D6A4: ; 0x0225D6A4
- push {r4, r5, r6, lr}
- sub sp, #0x18
- add r5, r0, #0
- mov r0, #0x52
- str r0, [sp]
- mov r0, #0xb
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- mov r0, #2
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x28]
- add r4, r1, #0
- add r6, r3, #0
- str r0, [sp, #0x14]
- add r0, r2, #0
- mov r1, #3
- add r2, r5, #0
- add r3, r4, #0
- bl FUN_0200C0DC
- mov r0, #0
- str r0, [sp]
- mov r0, #2
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x52
- mov r3, #0xa
- str r6, [sp, #8]
- bl FUN_0200C00C
- mov r0, #0
- str r0, [sp]
- ldr r0, [sp, #0x2c]
- add r1, r4, #0
- str r0, [sp, #4]
- add r0, r5, #0
- mov r2, #0x52
- mov r3, #0xc
- bl FUN_0200C124
- mov r0, #0
- str r0, [sp]
- ldr r0, [sp, #0x30]
- add r1, r4, #0
- str r0, [sp, #4]
- add r0, r5, #0
- mov r2, #0x52
- mov r3, #0xd
- bl FUN_0200C13C
- add sp, #0x18
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0225D714
-MOD11_0225D714: ; 0x0225D714
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r4, r2, #0
- add r6, r3, #0
- bl FUN_0200C358
- add r0, r5, #0
- add r1, r4, #0
- bl FUN_0200C368
- add r0, r5, #0
- add r1, r6, #0
- bl FUN_0200C378
- ldr r1, [sp, #0x10]
- add r0, r5, #0
- bl FUN_0200C388
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225D73C
-MOD11_0225D73C: ; 0x0225D73C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- ldr r5, _0225D7AC ; =0x0225FEE4
- add r6, r3, #0
- add r7, r0, #0
- str r1, [sp]
- add r4, sp, #4
- mov r3, #6
-_0225D74C:
- ldmia r5!, {r0, r1}
- stmia r4!, {r0, r1}
- sub r3, r3, #1
- bne _0225D74C
- ldr r0, [r5]
- mov r1, #0x20
- str r0, [r4]
- ldr r0, [sp, #0x50]
- str r6, [sp, #0x18]
- str r0, [sp, #0x1c]
- ldr r0, [sp, #0x54]
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x58]
- str r0, [sp, #0x24]
- ldr r0, [sp, #0x5c]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x60]
- str r0, [sp, #0x30]
- add r0, r2, #0
- bl AllocFromHeap
- mov r1, #0
- mov r2, #0x20
- add r4, r0, #0
- bl MI_CpuFill8
- ldr r1, [sp]
- add r0, r7, #0
- add r2, sp, #4
- bl FUN_0200C154
- mov r1, #0
- str r0, [r4]
- bl FUN_0200C644
- mov r0, #3
- lsl r0, r0, #0x12
- str r0, [r4, #0x14]
- ldr r0, _0225D7B0 ; =MOD11_0225D828
- ldr r2, _0225D7B4 ; =0x000003E7
- add r1, r4, #0
- bl FUN_0200CA44
- str r0, [r4, #4]
- add r0, r4, #0
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225D7AC: .word 0x0225FEE4
-_0225D7B0: .word MOD11_0225D828
-_0225D7B4: .word 0x000003E7
-
- thumb_func_start MOD11_0225D7B8
-MOD11_0225D7B8: ; 0x0225D7B8
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4]
- bl FUN_0200C3DC
- ldr r0, [r4, #4]
- bl FUN_0200CAB4
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
-
- thumb_func_start MOD11_0225D7D0
-MOD11_0225D7D0: ; 0x0225D7D0
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r7, r1, #0
- add r4, r2, #0
- add r6, r3, #0
- bl MOD11_0225D98C
- str r7, [r5, #8]
- str r4, [r5, #0xc]
- str r6, [r5, #0x14]
- lsl r1, r7, #0x10
- lsl r2, r4, #0x10
- ldr r0, [r5]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- add r3, r6, #0
- bl FUN_0200C750
- ldr r0, [r5]
- mov r1, #1
- bl FUN_0200C644
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225D800
-MOD11_0225D800: ; 0x0225D800
- push {r3, lr}
- mov r3, #3
- lsl r3, r3, #0x12
- bl MOD11_0225D7D0
- pop {r3, pc}
-
- thumb_func_start MOD11_0225D80C
-MOD11_0225D80C: ; 0x0225D80C
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4]
- mov r1, #0
- bl FUN_0200C644
- add r0, r4, #0
- bl MOD11_0225D98C
- pop {r4, pc}
-
- thumb_func_start MOD11_0225D820
-MOD11_0225D820: ; 0x0225D820
- strh r1, [r0, #0x18]
- bx lr
-
- thumb_func_start MOD11_0225D824
-MOD11_0225D824: ; 0x0225D824
- ldrb r0, [r0, #0x1b]
- bx lr
-
- thumb_func_start MOD11_0225D828
-MOD11_0225D828: ; 0x0225D828
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- ldrb r0, [r4, #0x1b]
- cmp r0, #1
- bne _0225D836
- mov r0, #0
- strb r0, [r4, #0x1b]
-_0225D836:
- mov r0, #0x18
- ldrsh r1, [r4, r0]
- cmp r1, #0
- ble _0225D84C
- sub r1, r1, #1
- strh r1, [r4, #0x18]
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bne _0225D84C
- mov r0, #1
- strb r0, [r4, #0x1a]
-_0225D84C:
- ldr r0, [r4]
- bl FUN_0200C658
- cmp r0, #0
- bne _0225D858
- b _0225D984
-_0225D858:
- ldrb r0, [r4, #0x1c]
- cmp r0, #0
- bne _0225D8DA
- mov r1, #0xfa
- ldr r2, [r4, #0x10]
- lsl r1, r1, #2
- add r2, r2, r1
- add r0, r4, #0
- ldr r1, _0225D988 ; =0x00004650
- add r0, #0x10
- str r2, [r4, #0x10]
- cmp r2, r1
- blt _0225D886
- ldr r2, [r0]
- sub r1, r2, r1
- str r1, [r0]
- ldrb r0, [r4, #0x1a]
- cmp r0, #1
- bne _0225D886
- mov r0, #1
- strb r0, [r4, #0x1c]
- mov r0, #0
- strb r0, [r4, #0x1a]
-_0225D886:
- ldrb r0, [r4, #0x1c]
- cmp r0, #0
- bne _0225D8DA
- ldr r0, [r4, #0x10]
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0201B93C
- mov r2, #0xe
- asr r1, r0, #0x1f
- lsl r2, r2, #0xc
- mov r3, #0
- bl _ll_mul
- add r5, r1, #0
- ldr r1, [r4, #8]
- mov r2, #2
- add r6, r0, #0
- lsl r1, r1, #0x10
- mov r7, #0
- lsl r2, r2, #0xa
- asr r1, r1, #0x10
- add r2, r6, r2
- adc r5, r7
- lsl r5, r5, #0x14
- lsr r2, r2, #0xc
- orr r2, r5
- asr r5, r2, #0xb
- lsr r5, r5, #0x14
- add r5, r2, r5
- ldr r3, [r4, #0xc]
- asr r2, r5, #0xc
- sub r2, r3, r2
- lsl r2, r2, #0x10
- ldr r0, [r4]
- ldr r3, [r4, #0x14]
- asr r2, r2, #0x10
- bl FUN_0200C750
-_0225D8DA:
- ldrb r0, [r4, #0x1c]
- cmp r0, #1
- bne _0225D97E
- ldrb r0, [r4, #0x1d]
- cmp r0, #3
- bhi _0225D97E
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225D8F2: ; jump table
- .short _0225D8FA - _0225D8F2 - 2 ; case 0
- .short _0225D912 - _0225D8F2 - 2 ; case 1
- .short _0225D934 - _0225D8F2 - 2 ; case 2
- .short _0225D962 - _0225D8F2 - 2 ; case 3
-_0225D8FA:
- ldrb r0, [r4, #0x1e]
- add r0, r0, #1
- strb r0, [r4, #0x1e]
- ldrb r0, [r4, #0x1e]
- cmp r0, #3
- bls _0225D97E
- mov r0, #0
- strb r0, [r4, #0x1e]
- ldrb r0, [r4, #0x1d]
- add r0, r0, #1
- strb r0, [r4, #0x1d]
- b _0225D97E
-_0225D912:
- ldr r2, [r4, #0xc]
- ldr r1, [r4, #8]
- add r2, #8
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r4]
- ldr r3, [r4, #0x14]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C750
- mov r0, #1
- strb r0, [r4, #0x1b]
- ldrb r0, [r4, #0x1d]
- add r0, r0, #1
- strb r0, [r4, #0x1d]
- b _0225D97E
-_0225D934:
- ldrb r0, [r4, #0x1e]
- add r0, r0, #1
- strb r0, [r4, #0x1e]
- ldrb r0, [r4, #0x1e]
- cmp r0, #2
- bls _0225D97E
- ldr r2, [r4, #0xc]
- ldr r1, [r4, #8]
- add r2, r2, #2
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r4]
- ldr r3, [r4, #0x14]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C750
- mov r0, #0
- strb r0, [r4, #0x1e]
- ldrb r0, [r4, #0x1d]
- add r0, r0, #1
- strb r0, [r4, #0x1d]
- b _0225D97E
-_0225D962:
- ldrb r0, [r4, #0x1e]
- add r0, r0, #1
- strb r0, [r4, #0x1e]
- ldrb r0, [r4, #0x1e]
- cmp r0, #2
- bls _0225D97E
- add r0, r4, #0
- bl MOD11_0225D80C
- mov r0, #0
- strb r0, [r4, #0x1e]
- ldrb r0, [r4, #0x1d]
- add r0, r0, #1
- strb r0, [r4, #0x1d]
-_0225D97E:
- ldr r0, [r4]
- bl FUN_0200C5A8
-_0225D984:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225D988: .word 0x00004650
-
- thumb_func_start MOD11_0225D98C
-MOD11_0225D98C: ; 0x0225D98C
- mov r1, #0
- str r1, [r0, #0x10]
- strb r1, [r0, #0x1c]
- strb r1, [r0, #0x1d]
- strb r1, [r0, #0x1e]
- bx lr
-
- .section .rodata
- ; 0x0225D998
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD11_0222D5C0
+MOD11_0222D5C0: ; 0x0222D5C0
+ push {r4, r5, r6, lr}
+ sub sp, #0x28
+ add r4, r1, #0
+ add r6, r0, #0
+ bl FUN_0200628C
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0xf
+ bhi _0222D6D2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222D5E0: ; jump table
+ .short _0222D600 - _0222D5E0 - 2 ; case 0
+ .short _0222D620 - _0222D5E0 - 2 ; case 1
+ .short _0222D65A - _0222D5E0 - 2 ; case 2
+ .short _0222D670 - _0222D5E0 - 2 ; case 3
+ .short _0222D686 - _0222D5E0 - 2 ; case 4
+ .short _0222D696 - _0222D5E0 - 2 ; case 5
+ .short _0222D6AC - _0222D5E0 - 2 ; case 6
+ .short _0222D6C8 - _0222D5E0 - 2 ; case 7
+ .short _0222D6DA - _0222D5E0 - 2 ; case 8
+ .short _0222D6EE - _0222D5E0 - 2 ; case 9
+ .short _0222D704 - _0222D5E0 - 2 ; case 10
+ .short _0222D720 - _0222D5E0 - 2 ; case 11
+ .short _0222D742 - _0222D5E0 - 2 ; case 12
+ .short _0222D752 - _0222D5E0 - 2 ; case 13
+ .short _0222D7C2 - _0222D5E0 - 2 ; case 14
+ .short _0222D7E4 - _0222D5E0 - 2 ; case 15
+_0222D600:
+ mov r2, #0xb
+ mov r0, #3
+ mov r1, #5
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ ldr r1, [r5]
+ mov r0, #4
+ tst r0, r1
+ beq _0222D61A
+ mov r0, #1
+ str r0, [r4]
+ b _0222D7EA
+_0222D61A:
+ mov r0, #3
+ str r0, [r4]
+ b _0222D7EA
+_0222D620:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0222F29C
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02033778
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0222D648
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x14
+ bl FUN_0202A0E8
+ b _0222D654
+_0222D648:
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x19
+ bl FUN_0202A0E8
+_0222D654:
+ mov r0, #2
+ str r0, [r4]
+ b _0222D7EA
+_0222D65A:
+ add r0, r6, #0
+ bl MOD11_0222F4E4
+ cmp r0, #1
+ bne _0222D6D2
+ add r0, r6, #0
+ bl MOD11_0222F93C
+ mov r0, #3
+ str r0, [r4]
+ b _0222D7EA
+_0222D670:
+ add r0, r6, #0
+ bl MOD11_0222F988
+ cmp r0, #1
+ bne _0222D680
+ mov r0, #4
+ str r0, [r4]
+ b _0222D7EA
+_0222D680:
+ mov r0, #5
+ str r0, [r4]
+ b _0222D7EA
+_0222D686:
+ add r0, r6, #0
+ bl MOD11_0222FABC
+ cmp r0, #1
+ bne _0222D6D2
+ mov r0, #5
+ str r0, [r4]
+ b _0222D7EA
+_0222D696:
+ add r0, r6, #0
+ bl MOD11_0222FB04
+ cmp r0, #1
+ bne _0222D6A6
+ mov r0, #6
+ str r0, [r4]
+ b _0222D7EA
+_0222D6A6:
+ mov r0, #8
+ str r0, [r4]
+ b _0222D7EA
+_0222D6AC:
+ add r0, r6, #0
+ bl MOD11_0222FC38
+ cmp r0, #1
+ bne _0222D6D2
+ ldr r0, _0222D7F0 ; =SDK_OVERLAY_MODULE_07_ID
+ bl UnloadOverlayByID
+ mov r0, #7
+ str r0, [r4]
+ mov r0, #0x3d
+ bl FUN_02031588
+ b _0222D7EA
+_0222D6C8:
+ mov r0, #0x3d
+ bl FUN_020315D8
+ cmp r0, #0
+ bne _0222D6D4
+_0222D6D2:
+ b _0222D7EA
+_0222D6D4:
+ mov r0, #8
+ str r0, [r4]
+ b _0222D7EA
+_0222D6DA:
+ ldr r0, _0222D7F4 ; =SDK_OVERLAY_MODULE_08_ID
+ mov r1, #2
+ bl HandleLoadOverlay
+ add r0, r6, #0
+ bl MOD11_0222DB50
+ mov r0, #9
+ str r0, [r4]
+ b _0222D7EA
+_0222D6EE:
+ add r0, r6, #0
+ bl MOD11_0222DF4C
+ cmp r0, #1
+ bne _0222D7EA
+ add r0, r6, #0
+ bl MOD11_0222DFA4
+ mov r0, #0xa
+ str r0, [r4]
+ b _0222D7EA
+_0222D704:
+ add r0, r6, #0
+ bl MOD11_0222FC80
+ cmp r0, #1
+ bne _0222D714
+ mov r0, #0xb
+ str r0, [r4]
+ b _0222D7EA
+_0222D714:
+ mov r0, #5
+ bl FUN_020168D0
+ mov r0, #0xd
+ str r0, [r4]
+ b _0222D7EA
+_0222D720:
+ add r0, r6, #0
+ bl MOD11_0222FE58
+ cmp r0, #1
+ bne _0222D7EA
+ ldr r0, _0222D7F0 ; =SDK_OVERLAY_MODULE_07_ID
+ bl UnloadOverlayByID
+ mov r0, #5
+ bl FUN_020168D0
+ mov r0, #0x3e
+ bl FUN_02031588
+ mov r0, #0xc
+ str r0, [r4]
+ b _0222D7EA
+_0222D742:
+ mov r0, #0x3e
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _0222D7EA
+ mov r0, #0xf
+ str r0, [r4]
+ b _0222D7EA
+_0222D752:
+ add r1, sp, #0x24
+ add r2, sp, #0x20
+ bl MOD11_02230D38
+ add r6, r0, #0
+ beq _0222D7BC
+ mov r0, #3
+ mov r1, #0x49
+ lsl r2, r0, #0x10
+ bl FUN_0201681C
+ ldr r0, [r5, #4]
+ ldr r1, [sp, #0x24]
+ bl GetPartyMonByIndex
+ add r1, r0, #0
+ mov r0, #0x5a
+ lsl r0, r0, #2
+ ldr r2, [r5, r0]
+ mov r3, #0x49
+ str r2, [sp]
+ add r2, r0, #0
+ sub r2, #0x58
+ ldr r2, [r5, r2]
+ str r2, [sp, #4]
+ add r2, r0, #0
+ sub r2, #0x60
+ ldr r2, [r5, r2]
+ str r2, [sp, #8]
+ add r2, r0, #0
+ sub r2, #0x24
+ ldr r2, [r5, r2]
+ sub r0, #0x40
+ str r2, [sp, #0xc]
+ ldr r0, [r5, r0]
+ add r2, r6, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x20]
+ str r0, [sp, #0x14]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ str r3, [sp, #0x1c]
+ add r3, #0xe7
+ ldr r0, [r5, #4]
+ ldr r3, [r5, r3]
+ bl FUN_0206C700
+ mov r1, #0x66
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0xe
+ str r0, [r4]
+ b _0222D7EA
+_0222D7BC:
+ mov r0, #0xf
+ str r0, [r4]
+ b _0222D7EA
+_0222D7C2:
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r5, [r5, r0]
+ add r0, r5, #0
+ bl FUN_0206C91C
+ cmp r0, #1
+ bne _0222D7EA
+ add r0, r5, #0
+ bl FUN_0206C92C
+ mov r0, #0x49
+ bl FUN_020168D0
+ mov r0, #0xd
+ str r0, [r4]
+ b _0222D7EA
+_0222D7E4:
+ add sp, #0x28
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0222D7EA:
+ mov r0, #0
+ add sp, #0x28
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222D7F0: .word SDK_OVERLAY_MODULE_07_ID
+_0222D7F4: .word SDK_OVERLAY_MODULE_08_ID
+
+ thumb_func_start MOD11_0222D7F8
+MOD11_0222D7F8: ; 0x0222D7F8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_02258658
+ ldr r0, [r4, #4]
+ bl MOD11_022584AC
+ ldr r1, _0222D834 ; =0x000023FB
+ mov r0, #4
+ ldrb r2, [r4, r1]
+ orr r0, r2
+ strb r0, [r4, r1]
+ mov r0, #2
+ bl FUN_02002CF8
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD11_02231338
+ ldr r0, _0222D838 ; =SDK_OVERLAY_MODULE_08_ID
+ bl UnloadOverlayByID
+ ldr r0, _0222D83C ; =SDK_OVERLAY_MODULE_09_ID
+ mov r1, #2
+ bl HandleLoadOverlay
+ pop {r4, pc}
+ .align 2, 0
+_0222D834: .word 0x000023FB
+_0222D838: .word SDK_OVERLAY_MODULE_08_ID
+_0222D83C: .word SDK_OVERLAY_MODULE_09_ID
+
+ thumb_func_start MOD11_0222D840
+MOD11_0222D840: ; 0x0222D840
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_02258658
+ ldr r0, [r4, #8]
+ bl FUN_02019178
+ ldr r0, [r4, #4]
+ bl MOD11_0222E4E8
+ add r0, r4, #0
+ bl MOD11_0222E51C
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0x90
+ add r1, #0x94
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl FUN_0200C398
+ add r4, #0x90
+ ldr r0, [r4]
+ bl FUN_0200BD04
+ bl FUN_0201C29C
+ mov r0, #2
+ bl FUN_02002CF8
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0222D88C
+MOD11_0222D88C: ; 0x0222D88C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, _0222D938 ; =SDK_OVERLAY_MODULE_09_ID
+ bl UnloadOverlayByID
+ ldr r0, _0222D93C ; =SDK_OVERLAY_MODULE_08_ID
+ mov r1, #2
+ bl HandleLoadOverlay
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_02231338
+ bl FUN_02022300
+ add r5, r0, #0
+ bl FUN_020222F8
+ add r1, r0, #0
+ mov r0, #0
+ add r2, r5, #0
+ bl MIi_CpuClear16
+ bl FUN_02031190
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223021C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_022584D4
+ mov r1, #0x67
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #2
+ mov r1, #5
+ bl FUN_02002C50
+ ldr r1, _0222D940 ; =0x000023FB
+ mov r0, #2
+ ldrb r2, [r4, r1]
+ orr r0, r2
+ strb r0, [r4, r1]
+ ldr r0, [r4, #4]
+ bl MOD11_02258450
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_022586BC
+ mov r0, #0x67
+ lsl r0, r0, #2
+ mov r1, #0
+ ldr r0, [r4, r0]
+ mov r2, #1
+ add r3, r1, #0
+ bl MOD11_02258820
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_02258958
+ mov r0, #1
+ bl FUN_02002840
+ add r0, r4, #0
+ bl MOD11_0222FE94
+ add r4, #0x90
+ ldr r0, [r4]
+ bl FUN_0200BB68
+ mov r2, #0x11
+ mov r1, #0
+ lsl r2, r2, #0x10
+ bl FUN_02008D24
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222D938: .word SDK_OVERLAY_MODULE_09_ID
+_0222D93C: .word SDK_OVERLAY_MODULE_08_ID
+_0222D940: .word 0x000023FB
+
+ thumb_func_start MOD11_0222D944
+MOD11_0222D944: ; 0x0222D944
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ bl FUN_02019178
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl MOD11_02231410
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0222D980
+MOD11_0222D980: ; 0x0222D980
+ push {r4, r5, r6, lr}
+ sub sp, #0x68
+ ldr r1, _0222DB38 ; =0x000023FB
+ add r5, r0, #0
+ ldrb r2, [r5, r1]
+ mov r0, #1
+ ldr r4, _0222DB3C ; =0x0225DAE0
+ bic r2, r0
+ mov r0, #1
+ orr r0, r2
+ strb r0, [r5, r1]
+ add r3, sp, #0x14
+ mov r2, #0xa
+_0222D99A:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222D99A
+ ldr r0, [r4]
+ mov r1, #1
+ str r0, [r3]
+ ldr r0, [r5, #4]
+ add r2, sp, #0x14
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #4]
+ mov r1, #1
+ bl FUN_02018744
+ ldr r0, [r5, #4]
+ mov r1, #2
+ add r2, sp, #0x30
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #4]
+ mov r1, #2
+ bl FUN_02018744
+ ldr r0, [r5, #4]
+ mov r1, #3
+ add r2, sp, #0x4c
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #4]
+ mov r1, #3
+ bl FUN_02018744
+ ldr r1, _0222DB40 ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #1
+ orr r2, r0
+ strh r2, [r1]
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ add r0, r5, #0
+ bl MOD11_02230E44
+ add r4, r0, #0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r1, #1
+ ldr r0, [r5, #4]
+ add r2, r1, #0
+ mov r3, #0xa
+ bl FUN_0200D274
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #5
+ str r0, [sp, #0xc]
+ mov r1, #9
+ lsl r1, r1, #0xa
+ ldr r1, [r5, r1]
+ ldr r2, [r5, #4]
+ mov r0, #7
+ add r1, r1, #3
+ mov r3, #3
+ bl FUN_0200687C
+ add r0, r5, #0
+ bl MOD11_02230C68
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r3, #9
+ str r0, [sp, #8]
+ lsl r3, r3, #0xa
+ ldr r6, [r5, r3]
+ ldr r0, [r5, #0x28]
+ lsl r3, r6, #1
+ add r3, r6, r3
+ add r3, #0x9e
+ add r2, r3, r2
+ mov r1, #7
+ mov r3, #5
+ bl FUN_020030E8
+ add r0, r4, #0
+ bl FUN_0200CD64
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xa0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x26
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xb0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x28]
+ mov r1, #0xe
+ mov r2, #7
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #5
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #7
+ mov r1, #2
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _0222DB44 ; =0xFFFF1FFF
+ ldr r3, _0222DB48 ; =0x04001000
+ and r2, r1
+ str r2, [r0]
+ ldr r2, [r3]
+ and r1, r2
+ add r2, r0, #0
+ str r1, [r3]
+ add r2, #0x48
+ ldrh r3, [r2]
+ mov r1, #0x3f
+ add r0, #0x4a
+ bic r3, r1
+ strh r3, [r2]
+ ldrh r2, [r0]
+ bic r2, r1
+ strh r2, [r0]
+ bl FUN_0201E788
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r0, _0222DB4C ; =MOD11_0222F01C
+ add r1, r5, #0
+ bl FUN_02015F10
+ ldr r0, _0222DB38 ; =0x000023FB
+ mov r3, #2
+ ldrb r1, [r5, r0]
+ mov r2, #1
+ orr r1, r3
+ strb r1, [r5, r0]
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ ldr r1, [r5, #8]
+ bl FUN_02019064
+ ldr r0, [r5, #8]
+ mov r1, #0xff
+ bl FUN_02019620
+ ldr r0, [r5, #8]
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ add r0, r5, #0
+ bl MOD11_0222FE94
+ add sp, #0x68
+ pop {r4, r5, r6, pc}
+ nop
+_0222DB38: .word 0x000023FB
+_0222DB3C: .word 0x0225DAE0
+_0222DB40: .word 0x04000008
+_0222DB44: .word 0xFFFF1FFF
+_0222DB48: .word 0x04001000
+_0222DB4C: .word MOD11_0222F01C
+
+ thumb_func_start MOD11_0222DB50
+MOD11_0222DB50: ; 0x0222DB50
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ bl FUN_02006278
+ add r4, r0, #0
+ bl FUN_020222F0
+ add r5, r0, #0
+ bl FUN_020222E8
+ add r1, r0, #0
+ mov r0, #0
+ add r2, r5, #0
+ bl MIi_CpuClear16
+ bl FUN_02022300
+ add r5, r0, #0
+ bl FUN_020222F8
+ add r1, r0, #0
+ mov r0, #0
+ add r2, r5, #0
+ bl MIi_CpuClear16
+ bl GetLCRNGSeed
+ ldr r1, _0222DF0C ; =0x00002430
+ str r0, [r4, r1]
+ add r0, sp, #0x20
+ add r1, sp, #0x14
+ bl FUN_0201265C
+ ldr r0, _0222DF10 ; =0x021C48B8
+ ldr r6, [sp, #0x24]
+ ldr r5, [r0, #0x2c]
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ lsl r6, r6, #8
+ add r0, r1, r0
+ lsl r3, r0, #0x18
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x20]
+ lsl r2, r0, #0x10
+ ldr r0, [sp, #0x28]
+ mul r6, r0
+ lsl r0, r6, #0x10
+ add r0, r1, r0
+ add r0, r2, r0
+ add r0, r3, r0
+ add r0, r5, r0
+ bl SetLCRNGSeed
+ bl MOD11_0222EF30
+ str r0, [r4]
+ bl FUN_02015F1C
+ mov r0, #2
+ mov r1, #5
+ bl FUN_02002C50
+ mov r0, #0xe
+ mov r1, #1
+ mov r2, #0xf
+ mov r3, #5
+ bl FUN_0200B870
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r2, [r4, r1]
+ add r0, r1, #4
+ str r2, [r4, r0]
+ mov r0, #5
+ bl FUN_02002FD0
+ str r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_020038F0
+ mov r2, #2
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ lsl r2, r2, #8
+ mov r3, #5
+ bl FUN_02003008
+ mov r1, #1
+ ldr r0, [r4, #0x28]
+ lsl r2, r1, #9
+ mov r3, #5
+ bl FUN_02003008
+ mov r2, #7
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ lsl r2, r2, #6
+ mov r3, #5
+ bl FUN_02003008
+ mov r2, #2
+ ldr r0, [r4, #0x28]
+ mov r1, #3
+ lsl r2, r2, #8
+ mov r3, #5
+ bl FUN_02003008
+ mov r0, #5
+ bl FUN_02016B94
+ str r0, [r4, #4]
+ mov r0, #5
+ mov r1, #3
+ bl FUN_02018FF4
+ mov r7, #0x73
+ str r0, [r4, #8]
+ mov r6, #0
+ add r5, r4, #0
+ lsl r7, r7, #2
+_0222DC42:
+ mov r1, #0x32
+ mov r0, #5
+ lsl r1, r1, #6
+ bl AllocFromHeap
+ str r0, [r5, r7]
+ add r6, r6, #1
+ add r5, #0x10
+ cmp r6, #4
+ blt _0222DC42
+ mov r0, #0x40
+ mov r1, #5
+ bl FUN_0201C24C
+ bl FUN_02031190
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223021C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_022584D4
+ mov r1, #0x67
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r1, [r4, #4]
+ add r0, r4, #0
+ bl MOD11_0222E264
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #8]
+ mov r2, #1
+ mov r3, #2
+ bl FUN_02019064
+ ldr r0, [r4, #8]
+ mov r1, #0xff
+ bl FUN_02019620
+ ldr r0, [r4, #8]
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r0, #5
+ bl FUN_0200BB14
+ add r1, r4, #0
+ add r1, #0x90
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ ldr r1, _0222DF14 ; =0x0225DA20
+ ldr r2, _0222DF18 ; =0x0225D9D8
+ mov r3, #0x20
+ bl FUN_0200BB6C
+ ldr r1, _0222DF1C ; =0x00100010
+ mov r0, #1
+ bl FUN_02008D44
+ mov r0, #1
+ bl FUN_02008DDC
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl FUN_0200BB34
+ add r1, r4, #0
+ add r1, #0x94
+ str r0, [r1]
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0x90
+ add r1, #0x94
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x80
+ bl FUN_0200BBF0
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0x90
+ add r1, #0x94
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, _0222DF20 ; =0x0225D9EC
+ bl FUN_0200BF60
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl FUN_0200BB68
+ mov r2, #0x11
+ mov r1, #0
+ lsl r2, r2, #0x10
+ bl FUN_02008D24
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_022586BC
+ mov r0, #0x67
+ lsl r0, r0, #2
+ mov r1, #0
+ ldr r0, [r4, r0]
+ mov r2, #1
+ add r3, r1, #0
+ bl MOD11_02258820
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_02258958
+ mov r0, #5
+ bl FUN_02006D98
+ add r1, r4, #0
+ add r1, #0x88
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0
+ mov r2, #0xc0
+ bl FUN_020081B4
+ add r0, r4, #0
+ bl MOD11_02231390
+ bl MOD11_0222EFDC
+ mov r0, #5
+ bl MOD08_02211F5C
+ add r1, r4, #0
+ add r1, #0x8c
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD11_0222E470
+ bl FUN_0201CC08
+ mov r0, #4
+ bl FUN_0201CC24
+ mov r2, #0x51
+ mov r0, #1
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ mov r3, #5
+ bl NewMsgDataFromNarc
+ str r0, [r4, #0xc]
+ mov r0, #1
+ mov r1, #0x1a
+ mov r2, #0
+ mov r3, #5
+ bl NewMsgDataFromNarc
+ str r0, [r4, #0x10]
+ mov r0, #5
+ bl FUN_0200AA80
+ str r0, [r4, #0x14]
+ mov r0, #5
+ lsl r0, r0, #6
+ mov r1, #5
+ bl FUN_020219F4
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020031FC
+ ldr r1, _0222DF24 ; =0x00002224
+ mov r2, #0xe0
+ add r1, r4, r1
+ bl MIi_CpuCopy16
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl FUN_020031FC
+ ldr r1, _0222DF28 ; =0x00002304
+ mov r2, #0xe0
+ add r1, r4, r1
+ bl MIi_CpuCopy16
+ add r0, r4, #0
+ bl MOD11_02230C68
+ mov r1, #0
+ lsl r5, r0, #2
+ mov r3, #9
+ str r1, [sp]
+ mov r0, #0x70
+ str r0, [sp, #4]
+ lsl r3, r3, #0xa
+ ldr r3, [r4, r3]
+ mov r6, #0xc
+ mul r6, r3
+ ldr r3, _0222DF2C ; =0x0225DB88
+ ldr r0, [r4, #0x28]
+ add r3, r3, r6
+ ldr r3, [r5, r3]
+ mov r2, #2
+ lsl r3, r3, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_02003914
+ mov r0, #0xc0
+ str r0, [sp]
+ add r0, #0x40
+ mov r3, #9
+ str r0, [sp, #4]
+ lsl r3, r3, #0xa
+ ldr r3, [r4, r3]
+ mov r6, #0xc
+ mul r6, r3
+ ldr r3, _0222DF2C ; =0x0225DB88
+ ldr r0, [r4, #0x28]
+ add r3, r3, r6
+ ldr r3, [r5, r3]
+ mov r1, #0
+ lsl r3, r3, #0x10
+ mov r2, #2
+ lsr r3, r3, #0x10
+ bl FUN_02003914
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xdf
+ mov r3, #9
+ str r0, [sp, #4]
+ lsl r3, r3, #0xa
+ mov r1, #2
+ ldr r3, [r4, r3]
+ mov r6, #0xc
+ mul r6, r3
+ ldr r3, _0222DF2C ; =0x0225DB88
+ ldr r0, [r4, #0x28]
+ add r3, r3, r6
+ ldr r3, [r5, r3]
+ add r2, r1, #0
+ lsl r3, r3, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_02003914
+ mov r1, #0
+ mov r0, #0xa0
+ str r0, [sp]
+ mov r0, #0xc0
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x28]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02003914
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x28]
+ ldr r3, _0222DF30 ; =0x0000FFFF
+ mov r1, #1
+ bl FUN_02003914
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x28]
+ ldr r3, _0222DF30 ; =0x0000FFFF
+ mov r1, #3
+ bl FUN_02003914
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ mov r2, #0xb
+ mov r3, #5
+ bl FUN_020142EC
+ mov r1, #0x1b
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #1
+ bl FUN_020143A8
+ ldr r0, _0222DF34 ; =MOD11_0222F100
+ ldr r2, _0222DF38 ; =0x0000EA60
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x1c]
+ ldr r0, _0222DF3C ; =MOD11_0222F144
+ ldr r2, _0222DF40 ; =0x0000C350
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x20]
+ mov r2, #0x4b
+ ldr r0, _0222DF44 ; =MOD11_0222F254
+ add r1, r4, #0
+ lsl r2, r2, #4
+ bl FUN_0200CA60
+ str r0, [r4, #0x24]
+ mov r1, #0x32
+ ldr r0, _0222DF48 ; =0x00002434
+ mvn r1, r1
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD11_0222FE94
+ add r0, r4, #0
+ bl MOD11_02230218
+ bl FUN_0206F1C0
+ mov r0, #5
+ mov r1, #4
+ mov r2, #0
+ bl FUN_02014BF4
+ mov r1, #0x71
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #2
+ mov r1, #5
+ bl FUN_0201C328
+ mov r1, #0x72
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222DF0C: .word 0x00002430
+_0222DF10: .word 0x021C48B8
+_0222DF14: .word 0x0225DA20
+_0222DF18: .word 0x0225D9D8
+_0222DF1C: .word 0x00100010
+_0222DF20: .word 0x0225D9EC
+_0222DF24: .word 0x00002224
+_0222DF28: .word 0x00002304
+_0222DF2C: .word 0x0225DB88
+_0222DF30: .word 0x0000FFFF
+_0222DF34: .word MOD11_0222F100
+_0222DF38: .word 0x0000EA60
+_0222DF3C: .word MOD11_0222F144
+_0222DF40: .word 0x0000C350
+_0222DF44: .word MOD11_0222F254
+_0222DF48: .word 0x00002434
+
+ thumb_func_start MOD11_0222DF4C
+MOD11_0222DF4C: ; 0x0222DF4C
+ push {r4, r5, r6, lr}
+ bl FUN_02006278
+ ldr r1, _0222DF9C ; =0x000023F8
+ add r4, r0, #0
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ beq _0222DF7A
+ ldr r2, [r4, #0x2c]
+ mov r1, #4
+ tst r1, r2
+ ldr r1, [r4, #0x30]
+ beq _0222DF6C
+ bl MOD11_0223D238
+ b _0222DF7A
+_0222DF6C:
+ bl MOD11_0223D238
+ ldr r1, _0222DFA0 ; =0x000023FA
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD11_02254820
+_0222DF7A:
+ ldr r0, [r4, #0x44]
+ mov r6, #0
+ cmp r0, #0
+ ble _0222DF96
+ add r5, r4, #0
+_0222DF84:
+ ldr r1, [r5, #0x34]
+ add r0, r4, #0
+ bl MOD11_0224CB38
+ ldr r0, [r4, #0x44]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0222DF84
+_0222DF96:
+ ldr r0, _0222DFA0 ; =0x000023FA
+ ldrb r0, [r4, r0]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222DF9C: .word 0x000023F8
+_0222DFA0: .word 0x000023FA
+
+ thumb_func_start MOD11_0222DFA4
+MOD11_0222DFA4: ; 0x0222DFA4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0200628C
+ add r7, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ add r0, r4, #0
+ bl MOD11_02230EC8
+ ldr r0, _0222E248 ; =0x0000241C
+ ldrb r0, [r4, r0]
+ cmp r0, #4
+ beq _0222DFE4
+ ldr r0, [r4, #0x6c]
+ mov r1, #0
+ bl GetPartyMonByIndex
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_02230FA8
+_0222DFE4:
+ mov r0, #0
+ str r0, [sp]
+ add r6, r7, #0
+ add r5, r4, #0
+_0222DFEC:
+ ldr r0, [r5, #0x68]
+ ldr r1, [r6, #4]
+ bl FUN_0206BAD0
+ ldr r0, [r5, #0x68]
+ bl FreeToHeap
+ add r1, r6, #0
+ add r1, #0xf8
+ ldr r0, [r5, #0x48]
+ ldr r1, [r1]
+ bl FUN_0202393C
+ ldr r0, [r5, #0x48]
+ bl FreeToHeap
+ ldr r0, [sp]
+ add r6, r6, #4
+ add r0, r0, #1
+ add r5, r5, #4
+ str r0, [sp]
+ cmp r0, #4
+ blt _0222DFEC
+ mov r0, #0x1b
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_020143D0
+ mov r1, #0x42
+ lsl r1, r1, #2
+ ldr r0, [r4, #0x58]
+ ldr r1, [r7, r1]
+ bl FUN_0206EBB4
+ ldr r0, [r4, #0x58]
+ bl FreeToHeap
+ mov r1, #0x11
+ lsl r1, r1, #4
+ ldr r0, [r4, #0x60]
+ ldr r1, [r7, r1]
+ bl FUN_02023D80
+ ldr r0, [r4, #0x60]
+ bl FreeToHeap
+ mov r0, #0x45
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ str r1, [r7, r0]
+ add r1, r0, #0
+ ldr r2, [r4, #0x5c]
+ sub r1, #8
+ str r2, [r7, r1]
+ add r1, r4, #0
+ add r1, #0x98
+ ldr r2, [r1]
+ add r1, r0, #0
+ add r1, #0x14
+ str r2, [r7, r1]
+ add r1, r4, #0
+ add r1, #0x9c
+ ldr r2, [r1]
+ add r1, r0, #0
+ add r1, #0x20
+ str r2, [r7, r1]
+ add r1, r0, #0
+ ldr r2, _0222E24C ; =0x00002410
+ add r1, #0x7c
+ ldr r3, [r4, r2]
+ add r0, #0x5c
+ str r3, [r7, r1]
+ add r1, r2, #0
+ add r1, #0xc
+ ldrb r3, [r4, r1]
+ mov r1, #0x3f
+ add r2, #0x28
+ and r1, r3
+ str r1, [r7, #0x14]
+ ldr r1, [r4, r2]
+ mov r2, #4
+ str r1, [r7, r0]
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r3, #0
+ bl MOD11_0224C474
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r7, r1]
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #3
+ mov r3, #0
+ bl MOD11_0224C474
+ mov r1, #0x4e
+ lsl r1, r1, #2
+ ldr r2, [r7, r1]
+ mov r3, #0
+ add r0, r2, r0
+ str r0, [r7, r1]
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #6
+ bl MOD11_0224C474
+ add r5, r0, #0
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #6
+ mov r3, #2
+ bl MOD11_0224C474
+ mov r1, #0x4f
+ lsl r1, r1, #2
+ ldr r2, [r7, r1]
+ add r0, r5, r0
+ add r0, r2, r0
+ str r0, [r7, r1]
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #7
+ mov r3, #0
+ bl MOD11_0224C474
+ add r5, r0, #0
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #7
+ mov r3, #2
+ bl MOD11_0224C474
+ mov r1, #5
+ lsl r1, r1, #6
+ ldr r2, [r7, r1]
+ add r0, r5, r0
+ add r0, r2, r0
+ str r0, [r7, r1]
+ add r7, r1, #0
+ mov r6, #0
+ add r5, r4, #0
+ add r7, #0x8c
+_0222E10A:
+ ldr r0, [r5, r7]
+ bl FreeToHeap
+ add r6, r6, #1
+ add r5, #0x10
+ cmp r6, #4
+ blt _0222E10A
+ ldr r0, [r4, #0x18]
+ bl FreeToHeap
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_02003038
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_02003038
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl FUN_02003038
+ ldr r0, [r4, #0x28]
+ mov r1, #3
+ bl FUN_02003038
+ ldr r0, [r4, #0x28]
+ bl FUN_02002FEC
+ ldr r0, [r4, #0xc]
+ bl DestroyMsgData
+ ldr r0, [r4, #0x10]
+ bl DestroyMsgData
+ ldr r0, [r4, #0x14]
+ bl FUN_0200AB18
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02014C28
+ bl FUN_02012EAC
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ bl MOD08_02212024
+ ldr r0, [r4, #0x30]
+ bl MOD11_0223D284
+ ldr r0, [r4, #0x44]
+ mov r6, #0
+ cmp r0, #0
+ ble _0222E194
+ ldr r7, _0222E250 ; =0x000023F9
+ add r5, r4, #0
+_0222E180:
+ ldrb r2, [r4, r7]
+ ldr r1, [r5, #0x34]
+ add r0, r4, #0
+ bl MOD11_0224CB54
+ ldr r0, [r4, #0x44]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0222E180
+_0222E194:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl FUN_020072E8
+ ldr r0, _0222E250 ; =0x000023F9
+ ldrb r0, [r4, r0]
+ cmp r0, #2
+ beq _0222E1AC
+ add r0, r4, #0
+ bl MOD11_0222D840
+_0222E1AC:
+ mov r0, #0
+ bl FUN_02002B60
+ mov r0, #0
+ bl FUN_02002B7C
+ mov r0, #0
+ bl FUN_02002BB8
+ ldr r0, [r4, #8]
+ mov r1, #3
+ bl FUN_020191A4
+ ldr r0, [r4, #4]
+ bl FreeToHeap
+ mov r0, #0x87
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FreeToHeap
+ mov r0, #0x22
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FreeToHeap
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200B990
+ mov r0, #2
+ bl FUN_02002CF8
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x20]
+ bl FUN_0200CAB4
+ bl FUN_0201CD04
+ ldr r0, [r4]
+ bl MOD11_0222EFD4
+ ldr r0, _0222E254 ; =0x00002430
+ ldr r0, [r4, r0]
+ bl SetLCRNGSeed
+ add r0, r4, #0
+ bl MOD11_02231474
+ cmp r0, #0
+ beq _0222E220
+ ldr r0, _0222E258 ; =0x00000704
+ mov r1, #0
+ bl FUN_020054F0
+_0222E220:
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0201C350
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, _0222E25C ; =SDK_OVERLAY_MODULE_08_ID
+ bl UnloadOverlayByID
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0222E244
+ ldr r0, _0222E260 ; =SDK_OVERLAY_MODULE_16_ID
+ bl UnloadOverlayByID
+_0222E244:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E248: .word 0x0000241C
+_0222E24C: .word 0x00002410
+_0222E250: .word 0x000023F9
+_0222E254: .word 0x00002430
+_0222E258: .word 0x00000704
+_0222E25C: .word SDK_OVERLAY_MODULE_08_ID
+_0222E260: .word SDK_OVERLAY_MODULE_16_ID
+
+ thumb_func_start MOD11_0222E264
+MOD11_0222E264: ; 0x0222E264
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x9c
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0201E6D8
+ mov r0, #0
+ bl FUN_0200E394
+ mov r0, #1
+ bl FUN_0200E394
+ ldr r6, _0222E450 ; =0x0225DA68
+ add r3, sp, #0x20
+ mov r2, #5
+_0222E282:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222E282
+ add r0, sp, #0x20
+ bl FUN_0201E66C
+ mov r1, #6
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x12
+ bl MIi_CpuClear32
+ mov r1, #0x62
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ bl MIi_CpuClear32
+ mov r1, #0x19
+ mov r2, #1
+ mov r0, #0
+ lsl r1, r1, #0x16
+ lsl r2, r2, #0x12
+ bl MIi_CpuClear32
+ mov r1, #0x66
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ bl MIi_CpuClear32
+ ldr r6, _0222E454 ; =0x0225D9A8
+ add r3, sp, #0x10
+ add r2, r3, #0
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r1, _0222E458 ; =0x000023FB
+ mov r0, #1
+ ldrb r2, [r5, r1]
+ ldr r6, _0222E45C ; =0x0225DB34
+ add r3, sp, #0x48
+ bic r2, r0
+ mov r0, #1
+ orr r0, r2
+ strb r0, [r5, r1]
+ mov r2, #0xa
+_0222E2F0:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222E2F0
+ ldr r0, [r6]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ add r2, sp, #0x48
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ add r0, r4, #0
+ mov r1, #2
+ add r2, sp, #0x64
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ add r0, r4, #0
+ mov r1, #3
+ add r2, sp, #0x80
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ ldr r1, _0222E460 ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #1
+ orr r2, r0
+ strh r2, [r1]
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ bl MOD11_02258450
+ add r0, r5, #0
+ bl MOD11_02230E44
+ add r7, r0, #0
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #1
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #0xa
+ bl FUN_0200D274
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #5
+ mov r1, #9
+ str r0, [sp, #0xc]
+ lsl r1, r1, #0xa
+ ldr r1, [r5, r1]
+ mov r0, #7
+ add r1, r1, #3
+ add r2, r4, #0
+ mov r3, #3
+ bl FUN_0200687C
+ add r0, r5, #0
+ bl MOD11_02230C68
+ add r6, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r2, #9
+ str r0, [sp, #8]
+ lsl r2, r2, #0xa
+ ldr r3, [r5, r2]
+ ldr r0, [r5, #0x28]
+ lsl r2, r3, #1
+ add r2, r3, r2
+ add r2, #0x9e
+ mov r1, #7
+ add r2, r2, r6
+ mov r3, #5
+ bl FUN_020030E8
+ add r0, r7, #0
+ bl FUN_0200CD64
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xa0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x26
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xb0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x28]
+ mov r1, #0xe
+ mov r2, #7
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #5
+ str r0, [sp, #0xc]
+ mov r0, #7
+ mov r1, #2
+ add r2, r4, #0
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _0222E464 ; =0xFFFF1FFF
+ ldr r3, _0222E468 ; =0x04001000
+ and r2, r1
+ str r2, [r0]
+ ldr r2, [r3]
+ and r1, r2
+ add r2, r0, #0
+ str r1, [r3]
+ add r2, #0x48
+ ldrh r3, [r2]
+ mov r1, #0x3f
+ add r0, #0x4a
+ bic r3, r1
+ strh r3, [r2]
+ ldrh r2, [r0]
+ bic r2, r1
+ strh r2, [r0]
+ bl FUN_0201E788
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r0, _0222E46C ; =MOD11_0222F01C
+ add r1, r5, #0
+ bl FUN_02015F10
+ add sp, #0x9c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E450: .word 0x0225DA68
+_0222E454: .word 0x0225D9A8
+_0222E458: .word 0x000023FB
+_0222E45C: .word 0x0225DB34
+_0222E460: .word 0x04000008
+_0222E464: .word 0xFFFF1FFF
+_0222E468: .word 0x04001000
+_0222E46C: .word MOD11_0222F01C
+
+ thumb_func_start MOD11_0222E470
+MOD11_0222E470: ; 0x0222E470
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl MOD11_02230294
+ add r4, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #0
+ add r3, r4, #0
+ bl MOD11_022583D8
+ mov r0, #0x63
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #1
+ add r3, r4, #0
+ bl MOD11_022583D8
+ add r0, r5, #0
+ bl MOD11_0222FF78
+ str r0, [sp]
+ ldr r0, [r5, #0x44]
+ mov r4, #0
+ cmp r0, #0
+ ble _0222E4E2
+ add r6, r5, #0
+_0222E4AC:
+ ldr r1, [sp]
+ add r0, r5, #0
+ mov r2, #2
+ add r3, r4, #0
+ bl MOD11_0224C474
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_02230014
+ mov r1, #0x9a
+ mov r2, #0
+ bl GetMonData
+ add r2, r0, #0
+ ldr r1, [r6, #0x34]
+ add r0, r5, #0
+ add r3, r7, #0
+ bl MOD11_0224CA94
+ ldr r0, [r5, #0x44]
+ add r4, r4, #1
+ add r6, r6, #4
+ cmp r4, r0
+ blt _0222E4AC
+_0222E4E2:
+ bl FUN_02033E74
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0222E4E8
+MOD11_0222E4E8: ; 0x0222E4E8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl MOD11_022584AC
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0222E51C
+MOD11_0222E51C: ; 0x0222E51C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0222E520
+MOD11_0222E520: ; 0x0222E520
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ add r4, r0, #0
+ ldr r0, [r1]
+ str r1, [sp, #4]
+ str r0, [r4, #0x2c]
+ mov r7, #0
+ add r6, r4, #0
+ add r5, r1, #0
+_0222E532:
+ mov r0, #5
+ bl FUN_02023928
+ add r1, r0, #0
+ add r0, r5, #0
+ str r1, [r6, #0x48]
+ add r0, #0xf8
+ ldr r0, [r0]
+ bl FUN_0202393C
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r7, r7, #1
+ str r0, [r6, #0x78]
+ add r6, r6, #4
+ add r5, r5, #4
+ cmp r7, #4
+ blt _0222E532
+ mov r0, #5
+ bl FUN_0206EB88
+ str r0, [r4, #0x58]
+ mov r1, #0x42
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ ldr r1, [r4, #0x58]
+ bl FUN_0206EBB4
+ mov r0, #5
+ bl FUN_02023D6C
+ str r0, [r4, #0x60]
+ mov r1, #0x11
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ ldr r1, [r4, #0x60]
+ bl FUN_02023D80
+ mov r1, #0x45
+ lsl r1, r1, #2
+ ldr r0, [sp, #4]
+ add r2, r1, #0
+ ldr r0, [r0, r1]
+ add r3, r1, #0
+ str r0, [r4, #0x64]
+ ldr r0, [sp, #4]
+ add r2, #0x1c
+ ldr r2, [r0, r2]
+ add r0, r1, #0
+ add r0, #0xa0
+ str r2, [r4, r0]
+ add r2, r1, #0
+ ldr r0, [sp, #4]
+ add r2, #0x38
+ ldr r2, [r0, r2]
+ add r0, r1, #0
+ add r0, #0xa4
+ str r2, [r4, r0]
+ add r2, r1, #0
+ ldr r0, [sp, #4]
+ sub r2, #8
+ ldr r0, [r0, r2]
+ add r2, r1, #0
+ str r0, [r4, #0x5c]
+ ldr r0, [sp, #4]
+ add r2, #0x14
+ ldr r2, [r0, r2]
+ add r0, r4, #0
+ add r0, #0x98
+ str r2, [r0]
+ add r2, r1, #0
+ ldr r0, [sp, #4]
+ add r2, #0x50
+ ldr r2, [r0, r2]
+ ldr r0, _0222E8BC ; =0x00002420
+ add r3, #0x20
+ str r2, [r4, r0]
+ ldr r2, [sp, #4]
+ ldr r3, [r2, r3]
+ add r2, r4, #0
+ add r2, #0x9c
+ str r3, [r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x7c
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x10
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x40
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x24
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x3c
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x20
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x44
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x1c
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x4c
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x14
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x78
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x18
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x80
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #8
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x54
+ ldr r3, [r2, r3]
+ add r2, r0, #4
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x58
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ add r2, #0xc
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x60
+ ldr r2, [r2, r3]
+ add r0, #8
+ str r2, [r4, r0]
+ ldr r0, [sp, #4]
+ add r1, #0x30
+ ldr r0, [r0, r1]
+ mov r1, #0x86
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [sp, #4]
+ sub r1, #0xd4
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _0222E67E
+ bl ErrorHandling
+_0222E67E:
+ ldr r5, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r4, [sp, #0x30]
+ add r6, r5, #0
+ add r7, r4, #0
+_0222E68A:
+ ldr r0, [sp, #0x30]
+ ldr r1, [r5, #0x18]
+ add r0, #0xa0
+ strh r1, [r0]
+ add r3, r6, #0
+ add r2, r7, #0
+ mov r0, #6
+ add r3, #0x28
+ add r2, #0xac
+ mov ip, r0
+_0222E69E:
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ mov r0, ip
+ sub r0, r0, #1
+ mov ip, r0
+ bne _0222E69E
+ ldr r0, [r3]
+ add r5, r5, #4
+ str r0, [r2]
+ ldr r0, [sp, #0x30]
+ add r6, #0x34
+ add r0, r0, #2
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #8]
+ add r7, #0x34
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, #4
+ blt _0222E68A
+ add r0, r4, #0
+ bl MOD11_0223D1DC
+ str r0, [r4, #0x30]
+ mov r6, #0
+ add r5, r4, #0
+ mov r7, #5
+_0222E6D2:
+ add r0, r7, #0
+ bl FUN_0206B8AC
+ str r0, [r5, #0x68]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0222E6D2
+ ldr r0, [r4, #0x2c]
+ mov r1, #4
+ tst r1, r0
+ bne _0222E6EC
+ b _0222EA8A
+_0222E6EC:
+ add r0, r4, #0
+ bl FUN_0206BF90
+ bl FUN_02031190
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x34]
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0222FEC0
+ ldr r1, [r4, #0x2c]
+ mov r0, #0x80
+ tst r0, r1
+ beq _0222E7D0
+ ldr r6, _0222E8C0 ; =0x0225DC18
+ mov r5, #0
+ add r7, r4, #0
+_0222E712:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ str r0, [r7, #0x34]
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #4
+ blt _0222E712
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222E734:
+ ldr r1, [r5, #0x34]
+ add r0, r4, #0
+ bl MOD11_0225377C
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222E734
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ ble _0222E7C6
+ add r7, r4, #0
+_0222E760:
+ ldr r0, [r7, #0x68]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222E7AA
+_0222E76C:
+ ldr r0, [r7, #0x68]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222E79E
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E79E
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E7AA
+_0222E79E:
+ ldr r0, [r7, #0x68]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222E76C
+_0222E7AA:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0xc]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #0xc]
+ ldr r1, [r4, #0x44]
+ add r0, r0, #1
+ add r7, r7, #4
+ str r0, [sp, #0xc]
+ cmp r0, r1
+ blt _0222E760
+_0222E7C6:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ b _0222EA80
+_0222E7D0:
+ mov r0, #8
+ tst r0, r1
+ beq _0222E8AC
+ mov r5, #0
+ add r6, r4, #0
+_0222E7DA:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldr r0, [sp, #0x34]
+ bl FUN_020313CC
+ add r7, r0, #0
+ add r0, r5, #0
+ bl FUN_020313CC
+ ldr r1, _0222E8C4 ; =0x0225D9C8
+ lsl r2, r7, #2
+ add r1, r1, r2
+ ldrb r1, [r0, r1]
+ add r0, sp, #0x3c
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ str r0, [r6, #0x34]
+ add r5, r5, #1
+ add r6, r6, #4
+ cmp r5, #4
+ blt _0222E7DA
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222E810:
+ ldr r1, [r5, #0x34]
+ add r0, r4, #0
+ bl MOD11_0225377C
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222E810
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ ble _0222E8A2
+ add r7, r4, #0
+_0222E83C:
+ ldr r0, [r7, #0x68]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222E886
+_0222E848:
+ ldr r0, [r7, #0x68]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222E87A
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E87A
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E886
+_0222E87A:
+ ldr r0, [r7, #0x68]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222E848
+_0222E886:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x10]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #0x10]
+ ldr r1, [r4, #0x44]
+ add r0, r0, #1
+ add r7, r7, #4
+ str r0, [sp, #0x10]
+ cmp r0, r1
+ blt _0222E83C
+_0222E8A2:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ b _0222EA80
+_0222E8AC:
+ mov r0, #2
+ tst r0, r1
+ bne _0222E8B4
+ b _0222E9D4
+_0222E8B4:
+ ldr r0, [sp, #0x34]
+ ldr r1, _0222E8C8 ; =0x0225D9A0
+ b _0222E8CC
+ nop
+_0222E8BC: .word 0x00002420
+_0222E8C0: .word 0x0225DC18
+_0222E8C4: .word 0x0225D9C8
+_0222E8C8: .word 0x0225D9A0
+_0222E8CC:
+ lsl r0, r0, #2
+ mov r5, #0
+ add r6, r1, r0
+ add r7, r4, #0
+_0222E8D4:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #4
+ blt _0222E8D4
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222E8FE:
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222E8FE
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ ble _0222E9D2
+_0222E920:
+ ldr r0, [sp, #0x14]
+ mov r1, #1
+ and r0, r1
+ str r0, [sp, #0x2c]
+ lsl r0, r0, #2
+ add r7, r4, r0
+ ldr r0, [r7, #0x68]
+ mov r6, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222E9B8
+_0222E938:
+ ldr r0, [r7, #0x68]
+ add r1, r6, #0
+ bl GetPartyMonByIndex
+ ldr r1, [sp, #0x14]
+ add r5, r0, #0
+ cmp r1, #1
+ ble _0222E984
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x2c]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C474
+ cmp r6, r0
+ beq _0222E9AC
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222E9AC
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E9AC
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E9B8
+ b _0222E9AC
+_0222E984:
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222E9AC
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E9AC
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E9B8
+_0222E9AC:
+ ldr r0, [r7, #0x68]
+ add r6, r6, #1
+ bl GetPartyCount
+ cmp r6, r0
+ blt _0222E938
+_0222E9B8:
+ str r6, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x14]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #0x14]
+ ldr r1, [r4, #0x44]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, r1
+ blt _0222E920
+_0222E9D2:
+ b _0222EA80
+_0222E9D4:
+ ldr r0, [sp, #0x34]
+ ldr r1, _0222EC6C ; =0x0225D99C
+ lsl r0, r0, #1
+ mov r5, #0
+ add r6, r1, r0
+ add r7, r4, #0
+_0222E9E0:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #2
+ blt _0222E9E0
+ mov r0, #0
+ str r5, [r4, #0x44]
+ str r0, [sp, #0x18]
+ add r7, r4, #0
+_0222EA0C:
+ ldr r0, [sp, #4]
+ ldr r1, [r7, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [r7, #0x68]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222EA60
+_0222EA22:
+ ldr r0, [r7, #0x68]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222EA54
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EA54
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EA60
+_0222EA54:
+ ldr r0, [r7, #0x68]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222EA22
+_0222EA60:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x18]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #4]
+ add r7, r7, #4
+ add r0, r0, #4
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, #4
+ blt _0222EA0C
+_0222EA80:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ b _0222EE3E
+_0222EA8A:
+ mov r1, #0x10
+ tst r1, r0
+ beq _0222EB90
+ ldr r6, _0222EC70 ; =0x0225DC18
+ mov r5, #0
+ add r7, r4, #0
+_0222EA96:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #4
+ blt _0222EA96
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222EAC0:
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222EAC0
+ ldr r0, [r4, #0x44]
+ mov r7, #0
+ cmp r0, #0
+ ble _0222EB80
+_0222EAE0:
+ add r0, r4, #0
+ add r1, r7, #0
+ mov r5, #0
+ bl MOD11_0222FFC8
+ cmp r0, #0
+ ble _0222EB64
+_0222EAEE:
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl MOD11_02230014
+ add r6, r0, #0
+ cmp r7, #2
+ bne _0222EB2E
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222EB56
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EB56
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222EB56
+ ldr r0, [sp, #0x38]
+ cmp r0, r5
+ bne _0222EB64
+ b _0222EB56
+_0222EB2E:
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222EB56
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EB56
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EB64
+_0222EB56:
+ add r0, r4, #0
+ add r1, r7, #0
+ add r5, r5, #1
+ bl MOD11_0222FFC8
+ cmp r5, r0
+ blt _0222EAEE
+_0222EB64:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #2
+ add r3, r7, #0
+ bl MOD11_0224C54C
+ cmp r7, #0
+ bne _0222EB78
+ str r5, [sp, #0x38]
+_0222EB78:
+ ldr r0, [r4, #0x44]
+ add r7, r7, #1
+ cmp r7, r0
+ blt _0222EAE0
+_0222EB80:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ ldr r0, _0222EC74 ; =0x000023F8
+ mov r1, #1
+ strb r1, [r4, r0]
+ b _0222EE3E
+_0222EB90:
+ mov r1, #8
+ tst r1, r0
+ beq _0222EC60
+ ldr r6, _0222EC70 ; =0x0225DC18
+ mov r5, #0
+ add r7, r4, #0
+_0222EB9C:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #4
+ blt _0222EB9C
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222EBC6:
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222EBC6
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ ble _0222EC50
+ add r7, r4, #0
+_0222EBEA:
+ ldr r0, [r7, #0x68]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222EC34
+_0222EBF6:
+ ldr r0, [r7, #0x68]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222EC28
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EC28
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EC34
+_0222EC28:
+ ldr r0, [r7, #0x68]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222EBF6
+_0222EC34:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x1c]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #0x1c]
+ ldr r1, [r4, #0x44]
+ add r0, r0, #1
+ add r7, r7, #4
+ str r0, [sp, #0x1c]
+ cmp r0, r1
+ blt _0222EBEA
+_0222EC50:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ ldr r0, _0222EC74 ; =0x000023F8
+ mov r1, #1
+ strb r1, [r4, r0]
+ b _0222EE3E
+_0222EC60:
+ mov r1, #2
+ tst r0, r1
+ bne _0222EC68
+ b _0222ED8A
+_0222EC68:
+ ldr r6, _0222EC70 ; =0x0225DC18
+ b _0222EC78
+ .align 2, 0
+_0222EC6C: .word 0x0225D99C
+_0222EC70: .word 0x0225DC18
+_0222EC74: .word 0x000023F8
+_0222EC78:
+ mov r5, #0
+ add r7, r4, #0
+_0222EC7C:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #4
+ blt _0222EC7C
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222ECA6:
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222ECA6
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ ble _0222ED7A
+_0222ECC8:
+ ldr r0, [sp, #0x20]
+ mov r1, #1
+ and r0, r1
+ str r0, [sp, #0x28]
+ lsl r0, r0, #2
+ add r7, r4, r0
+ ldr r0, [r7, #0x68]
+ mov r6, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222ED60
+_0222ECE0:
+ ldr r0, [r7, #0x68]
+ add r1, r6, #0
+ bl GetPartyMonByIndex
+ ldr r1, [sp, #0x20]
+ add r5, r0, #0
+ cmp r1, #1
+ ble _0222ED2C
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x28]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C474
+ cmp r6, r0
+ beq _0222ED54
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222ED54
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222ED54
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222ED60
+ b _0222ED54
+_0222ED2C:
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222ED54
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222ED54
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222ED60
+_0222ED54:
+ ldr r0, [r7, #0x68]
+ add r6, r6, #1
+ bl GetPartyCount
+ cmp r6, r0
+ blt _0222ECE0
+_0222ED60:
+ str r6, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x20]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #0x20]
+ ldr r1, [r4, #0x44]
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+ cmp r0, r1
+ blt _0222ECC8
+_0222ED7A:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ ldr r0, _0222EEE0 ; =0x000023F8
+ mov r1, #1
+ strb r1, [r4, r0]
+ b _0222EE3E
+_0222ED8A:
+ ldr r6, _0222EEE4 ; =0x0225D998
+ mov r5, #0
+ add r7, r4, #0
+_0222ED90:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #2
+ blt _0222ED90
+ mov r0, #0
+ str r5, [r4, #0x44]
+ str r0, [sp, #0x24]
+ add r7, r4, #0
+_0222EDBC:
+ ldr r0, [sp, #4]
+ ldr r1, [r7, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [r7, #0x68]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222EE10
+_0222EDD2:
+ ldr r0, [r7, #0x68]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222EE04
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EE04
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EE10
+_0222EE04:
+ ldr r0, [r7, #0x68]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222EDD2
+_0222EE10:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x24]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #4]
+ add r7, r7, #4
+ add r0, r0, #4
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x24]
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #4
+ blt _0222EDBC
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ ldr r0, _0222EEE0 ; =0x000023F8
+ mov r1, #1
+ strb r1, [r4, r0]
+_0222EE3E:
+ mov r0, #2
+ ldr r1, [r4, #0x2c]
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _0222EE5A
+ ldr r0, [r4, #0x6c]
+ mov r1, #0
+ bl GetPartyMonByIndex
+ add r2, r4, #0
+ mov r1, #0x8f
+ add r2, #0xf4
+ bl GetMonData
+_0222EE5A:
+ ldr r1, [r4, #0x2c]
+ mov r0, #1
+ tst r0, r1
+ beq _0222EEDC
+ add r0, r4, #0
+ add r0, #0xe1
+ ldrb r0, [r0]
+ bl MOD11_0222EEF0
+ cmp r0, #1
+ beq _0222EE7C
+ ldr r0, _0222EEE8 ; =0x00000149
+ ldrb r0, [r4, r0]
+ bl MOD11_0222EEF0
+ cmp r0, #1
+ bne _0222EEDC
+_0222EE7C:
+ ldr r0, [r4, #0x68]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222EEAC
+ ldr r6, _0222EEEC ; =0x00002404
+ mov r7, #3
+_0222EE8C:
+ ldr r0, [r4, #0x68]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ ldr r2, [r4, r6]
+ add r1, r7, #0
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl MonApplyFriendshipMod
+ ldr r0, [r4, #0x68]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222EE8C
+_0222EEAC:
+ ldr r0, [r4, #0x70]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222EEDC
+ ldr r6, _0222EEEC ; =0x00002404
+ mov r7, #3
+_0222EEBC:
+ ldr r0, [r4, #0x70]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ ldr r2, [r4, r6]
+ add r1, r7, #0
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl MonApplyFriendshipMod
+ ldr r0, [r4, #0x70]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222EEBC
+_0222EEDC:
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222EEE0: .word 0x000023F8
+_0222EEE4: .word 0x0225D998
+_0222EEE8: .word 0x00000149
+_0222EEEC: .word 0x00002404
+
+ thumb_func_start MOD11_0222EEF0
+MOD11_0222EEF0: ; 0x0222EEF0
+ sub r0, #0x3e
+ cmp r0, #0x11
+ bhi _0222EF2A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222EF02: ; jump table
+ .short _0222EF26 - _0222EF02 - 2 ; case 0
+ .short _0222EF2A - _0222EF02 - 2 ; case 1
+ .short _0222EF26 - _0222EF02 - 2 ; case 2
+ .short _0222EF26 - _0222EF02 - 2 ; case 3
+ .short _0222EF26 - _0222EF02 - 2 ; case 4
+ .short _0222EF26 - _0222EF02 - 2 ; case 5
+ .short _0222EF26 - _0222EF02 - 2 ; case 6
+ .short _0222EF26 - _0222EF02 - 2 ; case 7
+ .short _0222EF2A - _0222EF02 - 2 ; case 8
+ .short _0222EF2A - _0222EF02 - 2 ; case 9
+ .short _0222EF2A - _0222EF02 - 2 ; case 10
+ .short _0222EF2A - _0222EF02 - 2 ; case 11
+ .short _0222EF26 - _0222EF02 - 2 ; case 12
+ .short _0222EF26 - _0222EF02 - 2 ; case 13
+ .short _0222EF26 - _0222EF02 - 2 ; case 14
+ .short _0222EF26 - _0222EF02 - 2 ; case 15
+ .short _0222EF26 - _0222EF02 - 2 ; case 16
+ .short _0222EF26 - _0222EF02 - 2 ; case 17
+_0222EF26:
+ mov r0, #1
+ bx lr
+_0222EF2A:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0222EF30
+MOD11_0222EF30: ; 0x0222EF30
+ push {r3, lr}
+ sub sp, #8
+ mov r2, #2
+ mov r1, #0
+ ldr r0, _0222EF4C ; =MOD11_0222EF50
+ str r2, [sp]
+ str r0, [sp, #4]
+ mov r0, #5
+ add r3, r1, #0
+ bl FUN_02022318
+ add sp, #8
+ pop {r3, pc}
+ nop
+_0222EF4C: .word MOD11_0222EF50
+
+ thumb_func_start MOD11_0222EF50
+MOD11_0222EF50: ; 0x0222EF50
+ push {r3, lr}
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r0, _0222EFBC ; =0x04000008
+ mov r1, #3
+ ldrh r2, [r0]
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ strh r1, [r0]
+ add r0, #0x58
+ ldrh r2, [r0]
+ ldr r1, _0222EFC0 ; =0xFFFFCFFD
+ and r2, r1
+ strh r2, [r0]
+ add r2, r1, #2
+ ldrh r3, [r0]
+ add r1, r1, #2
+ and r3, r2
+ mov r2, #0x10
+ orr r2, r3
+ strh r2, [r0]
+ ldrh r3, [r0]
+ ldr r2, _0222EFC4 ; =0x0000CFFB
+ and r3, r2
+ strh r3, [r0]
+ ldrh r3, [r0]
+ sub r2, #0x1c
+ and r3, r1
+ mov r1, #8
+ orr r1, r3
+ strh r1, [r0]
+ ldrh r1, [r0]
+ and r1, r2
+ strh r1, [r0]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl G3X_SetFog
+ mov r0, #0
+ ldr r2, _0222EFC8 ; =0x00007FFF
+ add r1, r0, #0
+ mov r3, #0x3f
+ str r0, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _0222EFCC ; =0xBFFF0000
+ ldr r0, _0222EFD0 ; =0x04000580
+ str r1, [r0]
+ pop {r3, pc}
+ .align 2, 0
+_0222EFBC: .word 0x04000008
+_0222EFC0: .word 0xFFFFCFFD
+_0222EFC4: .word 0x0000CFFB
+_0222EFC8: .word 0x00007FFF
+_0222EFCC: .word 0xBFFF0000
+_0222EFD0: .word 0x04000580
+
+ thumb_func_start MOD11_0222EFD4
+MOD11_0222EFD4: ; 0x0222EFD4
+ ldr r3, _0222EFD8 ; =FUN_020223BC
+ bx r3
+ .align 2, 0
+_0222EFD8: .word FUN_020223BC
+
+ thumb_func_start MOD11_0222EFDC
+MOD11_0222EFDC: ; 0x0222EFDC
+ push {r3, r4, r5, lr}
+ ldr r3, _0222F014 ; =0x021064B8
+ mov r0, #2
+ mov r1, #0
+ ldr r3, [r3]
+ lsl r0, r0, #0xe
+ add r2, r1, #0
+ blx r3
+ ldr r3, _0222F018 ; =0x021064C0
+ mov r1, #0
+ add r4, r0, #0
+ ldr r3, [r3]
+ mov r0, #0xc0
+ add r2, r1, #0
+ blx r3
+ add r5, r0, #0
+ cmp r4, #0
+ bne _0222F004
+ bl ErrorHandling
+_0222F004:
+ cmp r5, #0
+ bne _0222F00C
+ bl ErrorHandling
+_0222F00C:
+ bl FUN_02012CC8
+ pop {r3, r4, r5, pc}
+ nop
+_0222F014: .word 0x021064B8
+_0222F018: .word 0x021064C0
+
+ thumb_func_start MOD11_0222F01C
+MOD11_0222F01C: ; 0x0222F01C
+ push {r3, r4, r5, lr}
+ sub sp, #0x50
+ add r4, r0, #0
+ bl LCRandom
+ ldr r1, _0222F0B8 ; =0x000023FB
+ ldrb r2, [r4, r1]
+ lsl r0, r2, #0x1f
+ lsr r0, r0, #0x1f
+ beq _0222F040
+ mov r0, #1
+ bic r2, r0
+ strb r2, [r4, r1]
+ ldr r0, _0222F0BC ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ ldr r0, _0222F0C0 ; =0x04001050
+ strh r1, [r0]
+_0222F040:
+ ldr r1, _0222F0B8 ; =0x000023FB
+ ldrb r2, [r4, r1]
+ lsl r0, r2, #0x1e
+ lsr r0, r0, #0x1f
+ beq _0222F064
+ mov r0, #2
+ bic r2, r0
+ strb r2, [r4, r1]
+ ldr r5, _0222F0C4 ; =0x0225DA90
+ add r3, sp, #0x28
+ mov r2, #5
+_0222F056:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222F056
+ add r0, sp, #0x28
+ bl FUN_0201E66C
+_0222F064:
+ ldr r1, _0222F0B8 ; =0x000023FB
+ ldrb r2, [r4, r1]
+ lsl r0, r2, #0x1d
+ lsr r0, r0, #0x1f
+ beq _0222F088
+ mov r0, #4
+ bic r2, r0
+ strb r2, [r4, r1]
+ ldr r5, _0222F0C8 ; =0x0225DAB8
+ add r3, sp, #0
+ mov r2, #5
+_0222F07A:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222F07A
+ add r0, sp, #0
+ bl FUN_0201E66C
+_0222F088:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl FUN_020081C4
+ bl FUN_0201C30C
+ bl FUN_0200BC30
+ ldr r0, [r4, #0x28]
+ bl FUN_0200372C
+ ldr r0, [r4, #4]
+ bl FUN_0201AB60
+ ldr r3, _0222F0CC ; =0x027E0000
+ ldr r1, _0222F0D0 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ add sp, #0x50
+ pop {r3, r4, r5, pc}
+ nop
+_0222F0B8: .word 0x000023FB
+_0222F0BC: .word 0x04000050
+_0222F0C0: .word 0x04001050
+_0222F0C4: .word 0x0225DA90
+_0222F0C8: .word 0x0225DAB8
+_0222F0CC: .word 0x027E0000
+_0222F0D0: .word 0x00003FF8
+
+ thumb_func_start MOD11_0222F0D4
+MOD11_0222F0D4: ; 0x0222F0D4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_0200372C
+ bl FUN_0201C30C
+ ldr r0, [r4, #4]
+ bl FUN_0201AB60
+ ldr r3, _0222F0F8 ; =0x027E0000
+ ldr r1, _0222F0FC ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ nop
+_0222F0F8: .word 0x027E0000
+_0222F0FC: .word 0x00003FF8
+
+ thumb_func_start MOD11_0222F100
+MOD11_0222F100: ; 0x0222F100
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #4]
+ mov r0, #5
+ bl FUN_020335F0
+ ldr r0, _0222F140 ; =0x000023F9
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ beq _0222F118
+ cmp r0, #3
+ bne _0222F13E
+_0222F118:
+ cmp r0, #0
+ bne _0222F120
+ bl MOD08_02215A44
+_0222F120:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl FUN_02006ED4
+ add r4, #0x94
+ ldr r0, [r4]
+ bl FUN_0200BC1C
+ bl FUN_0200BC38
+ mov r0, #1
+ mov r1, #0
+ bl FUN_020222B4
+_0222F13E:
+ pop {r4, pc}
+ .align 2, 0
+_0222F140: .word 0x000023F9
+
+ thumb_func_start MOD11_0222F144
+MOD11_0222F144: ; 0x0222F144
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD11_0222FF84
+ str r0, [sp]
+ add r0, r6, #0
+ mov r5, #0
+ bl MOD11_02231474
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _0222F24E
+ mov r0, #2
+ tst r0, r4
+ beq _0222F186
+ mov r0, #1
+ tst r0, r4
+ beq _0222F24E
+ ldr r0, _0222F250 ; =0x00000704
+ add r1, r5, #0
+ bl FUN_020054F0
+ add r0, r6, #0
+ mov r1, #2
+ bl MOD11_02231484
+ pop {r3, r4, r5, r6, r7, pc}
+_0222F186:
+ ldr r0, [sp]
+ add r4, r5, #0
+ cmp r0, #0
+ ble _0222F1D0
+_0222F18E:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0222FF7C
+ add r7, r0, #0
+ bl MOD11_02253A58
+ cmp r0, #0
+ bne _0222F1C8
+ add r0, r7, #0
+ bl MOD11_02253A70
+ add r1, r0, #0
+ beq _0222F1C8
+ ldr r0, [r1, #0x28]
+ ldr r1, [r1, #0x2c]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0x30
+ bl FUN_02079A54
+ cmp r0, #1
+ bne _0222F1C8
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_0222F1C8:
+ ldr r0, [sp]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _0222F18E
+_0222F1D0:
+ cmp r5, #0
+ beq _0222F1F6
+ add r0, r6, #0
+ bl MOD11_02231474
+ cmp r0, #0
+ bne _0222F1F6
+ ldr r0, _0222F250 ; =0x00000704
+ bl FUN_020054C8
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_02231484
+ add r0, r6, #0
+ mov r1, #4
+ bl MOD11_022314B0
+ b _0222F214
+_0222F1F6:
+ cmp r5, #0
+ bne _0222F214
+ add r0, r6, #0
+ bl MOD11_02231474
+ cmp r0, #0
+ beq _0222F214
+ ldr r0, _0222F250 ; =0x00000704
+ mov r1, #0
+ bl FUN_020054F0
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_02231484
+_0222F214:
+ add r0, r6, #0
+ bl MOD11_02231474
+ cmp r0, #0
+ beq _0222F24E
+ add r0, r6, #0
+ bl MOD11_022314A0
+ add r4, r0, #0
+ ldr r0, _0222F250 ; =0x00000704
+ bl FUN_02005508
+ cmp r0, #0
+ bne _0222F24E
+ sub r1, r4, #1
+ bne _0222F244
+ ldr r0, _0222F250 ; =0x00000704
+ bl FUN_020054C8
+ add r0, r6, #0
+ mov r1, #4
+ bl MOD11_022314B0
+ pop {r3, r4, r5, r6, r7, pc}
+_0222F244:
+ lsl r1, r1, #0x18
+ add r0, r6, #0
+ lsr r1, r1, #0x18
+ bl MOD11_022314B0
+_0222F24E:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F250: .word 0x00000704
+
+ thumb_func_start MOD11_0222F254
+MOD11_0222F254: ; 0x0222F254
+ push {r3, r4, r5, lr}
+ ldr r3, _0222F280 ; =0x00002434
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, r3]
+ mov r1, #1
+ add r0, r0, #3
+ str r0, [r4, r3]
+ ldr r0, [r4, #4]
+ ldr r3, [r4, r3]
+ mov r2, #3
+ bl FUN_020179E0
+ ldr r0, _0222F280 ; =0x00002434
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222F27C
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0222F27C:
+ pop {r3, r4, r5, pc}
+ nop
+_0222F280: .word 0x00002434
+
+ thumb_func_start MOD11_0222F284
+MOD11_0222F284: ; 0x0222F284 __sinit
+ push {r3, lr}
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0222F296
+ ldr r0, _0222F298 ; =SDK_OVERLAY_MODULE_16_ID
+ mov r1, #2
+ bl HandleLoadOverlay
+_0222F296:
+ pop {r3, pc}
+ .align 2, 0
+_0222F298: .word SDK_OVERLAY_MODULE_16_ID
+
+ thumb_func_start MOD11_0222F29C
+MOD11_0222F29C: ; 0x0222F29C
+ push {r4, r5, r6, lr}
+ sub sp, #0x68
+ add r4, r1, #0
+ ldr r1, _0222F4C0 ; =0x00001028
+ mov r2, #5
+ bl FUN_02006268
+ add r5, r0, #0
+ ldr r0, _0222F4C4 ; =0x00001020
+ str r4, [r5]
+ mov r2, #0
+ strb r2, [r5, r0]
+ add r1, r0, #1
+ strb r2, [r5, r1]
+ add r0, r0, #2
+ strh r2, [r5, r0]
+ mov r0, #5
+ bl FUN_02002FD0
+ str r0, [r5, #0xc]
+ mov r1, #1
+ bl FUN_020038F0
+ mov r2, #2
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ lsl r2, r2, #8
+ mov r3, #5
+ bl FUN_02003008
+ mov r1, #0
+ mov r0, #1
+ str r1, [sp]
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ ldr r0, [r5, #0xc]
+ mov r2, #2
+ add r3, r1, #0
+ bl FUN_02003914
+ mov r0, #5
+ bl FUN_02016B94
+ str r0, [r5, #4]
+ mov r0, #5
+ mov r1, #1
+ bl FUN_02018FF4
+ str r0, [r5, #8]
+ add r0, r5, #0
+ bl FUN_0206BFF0
+ bl FUN_0201E6D8
+ ldr r6, _0222F4C8 ; =0x0225DA40
+ add r3, sp, #0x40
+ mov r2, #5
+_0222F30E:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222F30E
+ add r0, sp, #0x40
+ bl FUN_0201E66C
+ mov r1, #6
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x12
+ bl MIi_CpuClear32
+ mov r1, #0x62
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ bl MIi_CpuClear32
+ mov r1, #0x19
+ mov r2, #1
+ mov r0, #0
+ lsl r1, r1, #0x16
+ lsl r2, r2, #0x12
+ bl MIi_CpuClear32
+ mov r1, #0x66
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ bl MIi_CpuClear32
+ mov r1, #5
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x18
+ lsl r2, r2, #8
+ bl MIi_CpuClear16
+ ldr r6, _0222F4CC ; =0x0225D9B8
+ add r3, sp, #0x30
+ add r2, r3, #0
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r6, _0222F4D0 ; =0x0225DA04
+ add r3, sp, #0x14
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ mov r1, #1
+ str r0, [r3]
+ ldr r0, [r5, #4]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #4]
+ mov r1, #1
+ bl FUN_02018744
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02025084
+ add r4, r0, #0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r1, #1
+ ldr r0, [r5, #4]
+ add r2, r1, #0
+ mov r3, #0xa
+ bl FUN_0200D274
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xb0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0xc]
+ mov r1, #0xe
+ mov r2, #7
+ mov r3, #5
+ bl FUN_020030E8
+ add r0, r4, #0
+ bl FUN_0200CD64
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xa0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0xc]
+ mov r1, #0x26
+ mov r3, #5
+ bl FUN_020030E8
+ mov r1, #0
+ mov r0, #1
+ str r1, [sp]
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ ldr r0, [r5, #0xc]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02003914
+ bl FUN_0201E788
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ ldr r1, [r5, #8]
+ mov r2, #1
+ mov r3, #2
+ bl FUN_02019064
+ ldr r0, [r5, #8]
+ mov r1, #0xff
+ bl FUN_02019620
+ ldr r0, [r5, #8]
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r2, #0x51
+ mov r0, #1
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ mov r3, #5
+ bl NewMsgDataFromNarc
+ add r4, r0, #0
+ mov r0, #1
+ lsl r0, r0, #8
+ mov r1, #5
+ bl FUN_020219F4
+ add r6, r0, #0
+ ldr r1, _0222F4D4 ; =0x0000039B
+ add r0, r4, #0
+ add r2, r6, #0
+ bl FUN_0200A8E0
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r5, #8]
+ mov r1, #1
+ add r2, r6, #0
+ bl FUN_0201BD84
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl DestroyMsgData
+ ldr r0, _0222F4D8 ; =MOD11_0222F0D4
+ add r1, r5, #0
+ bl FUN_02015F10
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r5, #0xc]
+ ldr r2, _0222F4DC ; =0x0000FFFF
+ mov r1, #5
+ bl FUN_02003210
+ ldr r0, [r5, #8]
+ mov r1, #1
+ bl FUN_0200D858
+ ldr r1, _0222F4E0 ; =0x00001024
+ str r0, [r5, r1]
+ bl FUN_02033E74
+ add sp, #0x68
+ pop {r4, r5, r6, pc}
+ nop
+_0222F4C0: .word 0x00001028
+_0222F4C4: .word 0x00001020
+_0222F4C8: .word 0x0225DA40
+_0222F4CC: .word 0x0225D9B8
+_0222F4D0: .word 0x0225DA04
+_0222F4D4: .word 0x0000039B
+_0222F4D8: .word MOD11_0222F0D4
+_0222F4DC: .word 0x0000FFFF
+_0222F4E0: .word 0x00001024
+
+ thumb_func_start MOD11_0222F4E4
+MOD11_0222F4E4: ; 0x0222F4E4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ mov r0, #5
+ bl FUN_020335F0
+ ldr r0, _0222F804 ; =0x00001021
+ mov r7, #0
+ ldrb r1, [r4, r0]
+ cmp r1, #0x21
+ bls _0222F502
+ b _0222F922
+_0222F502:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222F50E: ; jump table
+ .short _0222F552 - _0222F50E - 2 ; case 0
+ .short _0222F562 - _0222F50E - 2 ; case 1
+ .short _0222F576 - _0222F50E - 2 ; case 2
+ .short _0222F586 - _0222F50E - 2 ; case 3
+ .short _0222F5C0 - _0222F50E - 2 ; case 4
+ .short _0222F898 - _0222F50E - 2 ; case 5
+ .short _0222F5D8 - _0222F50E - 2 ; case 6
+ .short _0222F5F2 - _0222F50E - 2 ; case 7
+ .short _0222F898 - _0222F50E - 2 ; case 8
+ .short _0222F606 - _0222F50E - 2 ; case 9
+ .short _0222F622 - _0222F50E - 2 ; case 10
+ .short _0222F898 - _0222F50E - 2 ; case 11
+ .short _0222F636 - _0222F50E - 2 ; case 12
+ .short _0222F650 - _0222F50E - 2 ; case 13
+ .short _0222F898 - _0222F50E - 2 ; case 14
+ .short _0222F664 - _0222F50E - 2 ; case 15
+ .short _0222F67E - _0222F50E - 2 ; case 16
+ .short _0222F898 - _0222F50E - 2 ; case 17
+ .short _0222F692 - _0222F50E - 2 ; case 18
+ .short _0222F6AC - _0222F50E - 2 ; case 19
+ .short _0222F898 - _0222F50E - 2 ; case 20
+ .short _0222F6C0 - _0222F50E - 2 ; case 21
+ .short _0222F704 - _0222F50E - 2 ; case 22
+ .short _0222F898 - _0222F50E - 2 ; case 23
+ .short _0222F740 - _0222F50E - 2 ; case 24
+ .short _0222F774 - _0222F50E - 2 ; case 25
+ .short _0222F898 - _0222F50E - 2 ; case 26
+ .short _0222F7AE - _0222F50E - 2 ; case 27
+ .short _0222F7E2 - _0222F50E - 2 ; case 28
+ .short _0222F898 - _0222F50E - 2 ; case 29
+ .short _0222F82A - _0222F50E - 2 ; case 30
+ .short _0222F85E - _0222F50E - 2 ; case 31
+ .short _0222F898 - _0222F50E - 2 ; case 32
+ .short _0222F908 - _0222F50E - 2 ; case 33
+_0222F552:
+ add r0, r7, #0
+ bl FUN_0200E394
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F562:
+ ldr r0, [r4, #0xc]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0222F610
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F576:
+ mov r0, #0x32
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F586:
+ mov r0, #0x32
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _0222F5A8
+ mov r0, #0x33
+ bl FUN_02031588
+ ldr r0, _0222F808 ; =0x00001022
+ add r1, r7, #0
+ strh r1, [r4, r0]
+ sub r1, r0, #1
+ ldrb r1, [r4, r1]
+ sub r0, r0, #1
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F5A8:
+ ldr r0, _0222F808 ; =0x00001022
+ ldrh r1, [r4, r0]
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ ldrh r1, [r4, r0]
+ ldr r0, _0222F80C ; =0x00000708
+ cmp r1, r0
+ bls _0222F610
+ mov r0, #1
+ bl FUN_020336A0
+ b _0222F922
+_0222F5C0:
+ mov r1, #0x11
+ add r0, r4, #0
+ lsl r1, r1, #4
+ bl FUN_0206C1A0
+ cmp r0, #1
+ bne _0222F610
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F5D8:
+ add r0, r4, #0
+ bl FUN_0206C1FC
+ cmp r0, #1
+ bne _0222F610
+ mov r0, #0x34
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F5F2:
+ add r0, r4, #0
+ bl FUN_0206C224
+ cmp r0, #1
+ bne _0222F610
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F606:
+ add r0, r4, #0
+ bl FUN_0206C268
+ cmp r0, #1
+ beq _0222F612
+_0222F610:
+ b _0222F922
+_0222F612:
+ mov r0, #0x35
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F622:
+ add r0, r4, #0
+ bl FUN_0206C294
+ cmp r0, #1
+ bne _0222F71C
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F636:
+ add r0, r4, #0
+ bl FUN_0206C2D4
+ cmp r0, #1
+ bne _0222F71C
+ mov r0, #0x36
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F650:
+ add r0, r4, #0
+ bl FUN_0206C2F8
+ cmp r0, #1
+ bne _0222F71C
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F664:
+ add r0, r4, #0
+ bl FUN_0206C33C
+ cmp r0, #1
+ bne _0222F71C
+ mov r0, #0x37
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F67E:
+ add r0, r4, #0
+ bl FUN_0206C364
+ cmp r0, #1
+ bne _0222F71C
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F692:
+ add r0, r4, #0
+ bl FUN_0206C398
+ cmp r0, #1
+ bne _0222F71C
+ mov r0, #0x38
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F6AC:
+ add r0, r4, #0
+ bl FUN_0206C3F4
+ cmp r0, #1
+ bne _0222F71C
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F6C0:
+ ldr r1, [r4]
+ ldr r2, [r1]
+ mov r1, #0x80
+ tst r1, r2
+ bne _0222F6D0
+ mov r1, #0x21
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F6D0:
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F6E8
+ mov r0, #0x39
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F6E8:
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_0206C438
+ cmp r0, #1
+ bne _0222F71C
+ mov r0, #0x39
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F704:
+ mov r1, #1
+ sub r0, r0, #1
+ strb r1, [r4, r0]
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F728
+ mov r0, #0x39
+ bl FUN_020315D8
+ cmp r0, #1
+ beq _0222F71E
+_0222F71C:
+ b _0222F922
+_0222F71E:
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F728:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x39
+ bl FUN_0206C46C
+ cmp r0, #1
+ bne _0222F81E
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F740:
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F758
+ mov r0, #0x3a
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F758:
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_0206C438
+ cmp r0, #1
+ bne _0222F81E
+ mov r0, #0x3a
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F774:
+ mov r1, #1
+ sub r0, r0, #1
+ strb r1, [r4, r0]
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F796
+ mov r0, #0x3a
+ bl FUN_020315D8
+ cmp r0, #1
+ bne _0222F81E
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F796:
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #0x3a
+ bl FUN_0206C46C
+ cmp r0, #1
+ bne _0222F81E
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F7AE:
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F7C6
+ mov r0, #0x3b
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F7C6:
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_0206C4C4
+ cmp r0, #1
+ bne _0222F81E
+ mov r0, #0x3b
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F7E2:
+ mov r1, #1
+ sub r0, r0, #1
+ strb r1, [r4, r0]
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F810
+ mov r0, #0x3b
+ bl FUN_020315D8
+ cmp r0, #1
+ bne _0222F81E
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+ .align 2, 0
+_0222F804: .word 0x00001021
+_0222F808: .word 0x00001022
+_0222F80C: .word 0x00000708
+_0222F810:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x3b
+ bl FUN_0206C4F0
+ cmp r0, #1
+ beq _0222F820
+_0222F81E:
+ b _0222F922
+_0222F820:
+ ldr r0, _0222F928 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F82A:
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F842
+ mov r0, #0x3c
+ bl FUN_02031588
+ ldr r0, _0222F928 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F842:
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_0206C4C4
+ cmp r0, #1
+ bne _0222F922
+ mov r0, #0x3c
+ bl FUN_02031588
+ ldr r0, _0222F928 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F85E:
+ mov r1, #1
+ sub r0, r0, #1
+ strb r1, [r4, r0]
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F880
+ mov r0, #0x3c
+ bl FUN_020315D8
+ cmp r0, #1
+ bne _0222F922
+ ldr r0, _0222F928 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F880:
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #0x3c
+ bl FUN_0206C4F0
+ cmp r0, #1
+ bne _0222F922
+ ldr r0, _0222F928 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F898:
+ bl FUN_02030F20
+ ldr r1, _0222F92C ; =0x00001020
+ ldrb r2, [r4, r1]
+ cmp r2, r0
+ bne _0222F8EE
+ add r0, r1, #1
+ ldrb r0, [r4, r0]
+ cmp r0, #0x14
+ bne _0222F8BE
+ add r6, r7, #0
+ add r5, r4, #0
+_0222F8B0:
+ ldr r0, [r5, #0x10]
+ bl FreeToHeap
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0222F8B0
+_0222F8BE:
+ ldr r0, _0222F92C ; =0x00001020
+ mov r3, #0
+ strb r3, [r4, r0]
+ add r1, r0, #2
+ strh r3, [r4, r1]
+ add r1, r0, #1
+ ldrb r1, [r4, r1]
+ add r2, r1, #1
+ add r1, r0, #1
+ strb r2, [r4, r1]
+ add r0, r0, #1
+ ldrb r0, [r4, r0]
+ cmp r0, #0x21
+ bne _0222F922
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r4, #0xc]
+ ldr r2, _0222F930 ; =0x0000FFFF
+ mov r1, #5
+ bl FUN_02003210
+ b _0222F922
+_0222F8EE:
+ add r0, r1, #2
+ ldrh r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #2
+ strh r2, [r4, r0]
+ ldrh r1, [r4, r0]
+ ldr r0, _0222F934 ; =0x00000708
+ cmp r1, r0
+ bls _0222F922
+ mov r0, #1
+ bl FUN_020336A0
+ b _0222F922
+_0222F908:
+ ldr r0, [r4, #0xc]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0222F922
+ ldr r0, _0222F938 ; =0x00001024
+ mov r7, #1
+ ldr r0, [r4, r0]
+ bl FUN_0200DBFC
+ mov r0, #0
+ bl FUN_02031400
+_0222F922:
+ add r0, r7, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F928: .word 0x00001021
+_0222F92C: .word 0x00001020
+_0222F930: .word 0x0000FFFF
+_0222F934: .word 0x00000708
+_0222F938: .word 0x00001024
+
+ thumb_func_start MOD11_0222F93C
+MOD11_0222F93C: ; 0x0222F93C
+ push {r4, lr}
+ bl FUN_02006278
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_02003038
+ ldr r0, [r4, #0xc]
+ bl FUN_02002FEC
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_020191A4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ bl FreeToHeap
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0222F988
+MOD11_0222F988: ; 0x0222F988
+ push {r4, r5, r6, lr}
+ ldr r1, _0222FAB4 ; =0x00002444
+ add r5, r0, #0
+ mov r2, #5
+ bl FUN_02006268
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0200628C
+ add r6, r0, #0
+ bl FUN_02031190
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldr r2, _0222FAB4 ; =0x00002444
+ mov r0, #0
+ add r1, r4, #0
+ bl MIi_CpuClearFast
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222E520
+ ldr r1, [r4, #0x2c]
+ mov r0, #4
+ tst r0, r1
+ beq _0222F9C6
+ mov r0, #0x80
+ tst r0, r1
+ beq _0222F9CA
+_0222F9C6:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0222F9CA:
+ ldr r0, _0222FAB8 ; =SDK_OVERLAY_MODULE_07_ID
+ mov r1, #2
+ bl HandleLoadOverlay
+ ldr r1, [r4, #0x2c]
+ mov r0, #8
+ tst r0, r1
+ bne _0222F9DE
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0222F9DE:
+ mov r0, #5
+ mov r1, #0x2c
+ bl AllocFromHeap
+ mov r1, #7
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ ldr r1, [r4, r1]
+ mov r0, #0
+ mov r2, #0x2c
+ bl MIi_CpuClearFast
+ add r0, r5, #0
+ bl FUN_020313CC
+ cmp r0, #3
+ bhi _0222FA5A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222FA0C: ; jump table
+ .short _0222FA14 - _0222FA0C - 2 ; case 0
+ .short _0222FA3A - _0222FA0C - 2 ; case 1
+ .short _0222FA3A - _0222FA0C - 2 ; case 2
+ .short _0222FA14 - _0222FA0C - 2 ; case 3
+_0222FA14:
+ lsl r0, r5, #2
+ add r0, r4, r0
+ ldr r1, [r0, #0x68]
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ str r1, [r0, #4]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022302BC
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r1, [r0, #0x68]
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ str r1, [r0, #0xc]
+ b _0222FA5A
+_0222FA3A:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022302BC
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r2, [r0, #0x68]
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ str r2, [r1, #4]
+ lsl r1, r5, #2
+ add r1, r4, r1
+ ldr r1, [r1, #0x68]
+ ldr r0, [r4, r0]
+ str r1, [r0, #0xc]
+_0222FA5A:
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r2, #5
+ str r2, [r1, #0x24]
+ ldr r0, [r4, r0]
+ mov r1, #0
+ add r0, #0x28
+ strb r1, [r0]
+ add r0, r5, #0
+ bl FUN_020313CC
+ cmp r0, #3
+ bhi _0222FAA4
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222FA82: ; jump table
+ .short _0222FA8A - _0222FA82 - 2 ; case 0
+ .short _0222FA98 - _0222FA82 - 2 ; case 1
+ .short _0222FA98 - _0222FA82 - 2 ; case 2
+ .short _0222FA8A - _0222FA82 - 2 ; case 3
+_0222FA8A:
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #0
+ add r0, #0x29
+ strb r1, [r0]
+ b _0222FAA4
+_0222FA98:
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #1
+ add r0, #0x29
+ strb r1, [r0]
+_0222FAA4:
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ bl MOD07_02211E60
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ nop
+_0222FAB4: .word 0x00002444
+_0222FAB8: .word SDK_OVERLAY_MODULE_07_ID
+
+ thumb_func_start MOD11_0222FABC
+MOD11_0222FABC: ; 0x0222FABC
+ push {r3, r4, r5, r6, r7, lr}
+ bl FUN_02006278
+ add r6, r0, #0
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r6, r0]
+ add r0, #0x2b
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0222FAFE
+ mov r4, #0
+ mov r7, #7
+ add r5, r4, #0
+ lsl r7, r7, #6
+_0222FADA:
+ ldr r0, [r6, r7]
+ add r0, r0, r5
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ beq _0222FAE8
+ bl FreeToHeap
+_0222FAE8:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222FADA
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r6, r0]
+ bl FreeToHeap
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0222FAFE:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0222FB04
+MOD11_0222FB04: ; 0x0222FB04
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0200628C
+ bl FUN_02031190
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ ldr r1, [r4, #0x2c]
+ mov r0, #4
+ tst r0, r1
+ beq _0222FB2A
+ mov r0, #0x80
+ tst r0, r1
+ beq _0222FB2E
+_0222FB2A:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0222FB2E:
+ mov r0, #5
+ mov r1, #0x2c
+ bl AllocFromHeap
+ mov r1, #7
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ ldr r1, [r4, r1]
+ mov r0, #0
+ mov r2, #0x2c
+ bl MIi_CpuClearFast
+ ldr r1, [r4, #0x2c]
+ mov r0, #8
+ tst r0, r1
+ beq _0222FBA4
+ mov r6, #0
+ add r5, r4, #0
+_0222FB52:
+ add r0, r6, #0
+ bl FUN_020313CC
+ mov r2, #7
+ lsl r2, r2, #6
+ ldr r2, [r4, r2]
+ lsl r0, r0, #2
+ ldr r1, [r5, #0x68]
+ add r0, r2, r0
+ str r1, [r0, #4]
+ add r0, r6, #0
+ bl FUN_020313CC
+ add r7, r0, #0
+ ldr r0, [r5, #0x48]
+ mov r1, #5
+ bl FUN_020239A0
+ mov r1, #7
+ lsl r1, r1, #6
+ ldr r2, [r4, r1]
+ lsl r1, r7, #2
+ add r1, r2, r1
+ add r6, r6, #1
+ add r5, r5, #4
+ str r0, [r1, #0x14]
+ cmp r6, #4
+ blt _0222FB52
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r2, #5
+ str r2, [r1, #0x24]
+ ldr r1, [r4, r0]
+ mov r2, #1
+ add r1, #0x28
+ strb r2, [r1]
+ ldr r0, [r4, r0]
+ add r0, #0x29
+ strb r2, [r0]
+ b _0222FC2A
+_0222FBA4:
+ add r0, r7, #0
+ lsl r6, r7, #2
+ bl FUN_020313CC
+ mov r2, #7
+ lsl r2, r2, #6
+ add r1, r4, r6
+ ldr r2, [r4, r2]
+ lsl r0, r0, #2
+ ldr r1, [r1, #0x68]
+ add r0, r2, r0
+ str r1, [r0, #4]
+ mov r0, #1
+ eor r0, r7
+ lsl r5, r0, #2
+ str r0, [sp]
+ bl FUN_020313CC
+ add r1, r4, r5
+ ldr r2, [r1, #0x68]
+ mov r1, #7
+ lsl r1, r1, #6
+ ldr r1, [r4, r1]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r2, [r0, #4]
+ add r0, r7, #0
+ bl FUN_020313CC
+ add r7, r0, #0
+ add r0, r4, r6
+ ldr r0, [r0, #0x48]
+ mov r1, #5
+ bl FUN_020239A0
+ mov r1, #7
+ lsl r1, r1, #6
+ ldr r2, [r4, r1]
+ lsl r1, r7, #2
+ add r1, r2, r1
+ str r0, [r1, #0x14]
+ ldr r0, [sp]
+ bl FUN_020313CC
+ add r6, r0, #0
+ add r0, r4, r5
+ ldr r0, [r0, #0x48]
+ mov r1, #5
+ bl FUN_020239A0
+ mov r1, #7
+ lsl r1, r1, #6
+ ldr r3, [r4, r1]
+ lsl r2, r6, #2
+ add r2, r3, r2
+ str r0, [r2, #0x14]
+ ldr r0, [r4, r1]
+ mov r2, #5
+ str r2, [r0, #0x24]
+ ldr r0, [r4, r1]
+ mov r2, #1
+ add r0, #0x28
+ strb r2, [r0]
+ ldr r0, [r4, r1]
+ mov r2, #0
+ add r0, #0x29
+ strb r2, [r0]
+_0222FC2A:
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ bl MOD07_02211E60
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0222FC38
+MOD11_0222FC38: ; 0x0222FC38
+ push {r3, r4, r5, r6, r7, lr}
+ bl FUN_02006278
+ add r6, r0, #0
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r6, r0]
+ add r0, #0x2b
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0222FC7A
+ mov r4, #0
+ mov r7, #7
+ add r5, r4, #0
+ lsl r7, r7, #6
+_0222FC56:
+ ldr r0, [r6, r7]
+ add r0, r0, r5
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ beq _0222FC64
+ bl FreeToHeap
+_0222FC64:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222FC56
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r6, r0]
+ bl FreeToHeap
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0222FC7A:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0222FC80
+MOD11_0222FC80: ; 0x0222FC80
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ bl FUN_0200628C
+ add r7, r0, #0
+ bl FUN_02031190
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldr r1, [r7]
+ mov r0, #4
+ tst r0, r1
+ beq _0222FCA2
+ mov r0, #0x80
+ tst r0, r1
+ beq _0222FCA8
+_0222FCA2:
+ add sp, #0x10
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0222FCA8:
+ ldr r0, _0222FE54 ; =SDK_OVERLAY_MODULE_07_ID
+ mov r1, #2
+ bl HandleLoadOverlay
+ mov r0, #5
+ mov r1, #0x2c
+ bl AllocFromHeap
+ add r6, r0, #0
+ mov r0, #0x66
+ lsl r0, r0, #2
+ str r6, [r7, r0]
+ mov r0, #0
+ add r1, r6, #0
+ mov r2, #0x2c
+ bl MIi_CpuClearFast
+ str r7, [r6]
+ ldr r0, [r7, #0x14]
+ cmp r0, #5
+ bhi _0222FD54
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222FCDE: ; jump table
+ .short _0222FD54 - _0222FCDE - 2 ; case 0
+ .short _0222FCEA - _0222FCDE - 2 ; case 1
+ .short _0222FD0E - _0222FCDE - 2 ; case 2
+ .short _0222FD32 - _0222FCDE - 2 ; case 3
+ .short _0222FD54 - _0222FCDE - 2 ; case 4
+ .short _0222FD32 - _0222FCDE - 2 ; case 5
+_0222FCEA:
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0222FD00
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0x15
+ bl FUN_0202A0E8
+ b _0222FD54
+_0222FD00:
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0x1a
+ bl FUN_0202A0E8
+ b _0222FD54
+_0222FD0E:
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0222FD24
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0x16
+ bl FUN_0202A0E8
+ b _0222FD54
+_0222FD24:
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0x1b
+ bl FUN_0202A0E8
+ b _0222FD54
+_0222FD32:
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0222FD48
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0x17
+ bl FUN_0202A0E8
+ b _0222FD54
+_0222FD48:
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0x1c
+ bl FUN_0202A0E8
+_0222FD54:
+ ldr r1, [r7]
+ mov r0, #8
+ tst r0, r1
+ beq _0222FDBE
+ mov r4, #0
+ add r5, r7, #0
+_0222FD60:
+ add r0, r4, #0
+ bl FUN_020313CC
+ lsl r0, r0, #2
+ ldr r1, [r5, #4]
+ add r0, r6, r0
+ str r1, [r0, #4]
+ add r0, r4, #0
+ bl FUN_020313CC
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ mov r1, #5
+ bl FUN_020239A0
+ ldr r1, [sp, #8]
+ add r4, r4, #1
+ lsl r1, r1, #2
+ add r1, r6, r1
+ add r5, r5, #4
+ str r0, [r1, #0x14]
+ cmp r4, #4
+ blt _0222FD60
+ mov r0, #5
+ str r0, [r6, #0x24]
+ add r0, r6, #0
+ mov r1, #2
+ add r0, #0x28
+ strb r1, [r0]
+ add r0, r6, #0
+ mov r1, #1
+ add r0, #0x29
+ strb r1, [r0]
+ ldr r1, [r7, #0x14]
+ cmp r1, #5
+ beq _0222FDB4
+ add r0, r6, #0
+ add r0, #0x2a
+ strb r1, [r0]
+ b _0222FE48
+_0222FDB4:
+ add r0, r6, #0
+ mov r1, #3
+ add r0, #0x2a
+ strb r1, [r0]
+ b _0222FE48
+_0222FDBE:
+ ldr r0, [sp, #4]
+ lsl r5, r0, #2
+ bl FUN_020313CC
+ add r1, r7, r5
+ lsl r0, r0, #2
+ ldr r1, [r1, #4]
+ add r0, r6, r0
+ str r1, [r0, #4]
+ ldr r0, [sp, #4]
+ mov r1, #1
+ eor r0, r1
+ lsl r4, r0, #2
+ str r0, [sp]
+ bl FUN_020313CC
+ add r1, r7, r4
+ lsl r0, r0, #2
+ ldr r1, [r1, #4]
+ add r0, r6, r0
+ str r1, [r0, #4]
+ ldr r0, [sp, #4]
+ bl FUN_020313CC
+ str r0, [sp, #0xc]
+ add r0, r7, r5
+ add r0, #0xf8
+ ldr r0, [r0]
+ mov r1, #5
+ bl FUN_020239A0
+ ldr r1, [sp, #0xc]
+ lsl r1, r1, #2
+ add r1, r6, r1
+ str r0, [r1, #0x14]
+ ldr r0, [sp]
+ bl FUN_020313CC
+ add r5, r0, #0
+ add r0, r7, r4
+ add r0, #0xf8
+ ldr r0, [r0]
+ mov r1, #5
+ bl FUN_020239A0
+ lsl r1, r5, #2
+ add r1, r6, r1
+ str r0, [r1, #0x14]
+ mov r0, #5
+ str r0, [r6, #0x24]
+ add r0, r6, #0
+ mov r1, #2
+ add r0, #0x28
+ strb r1, [r0]
+ add r0, r6, #0
+ mov r1, #0
+ add r0, #0x29
+ strb r1, [r0]
+ ldr r1, [r7, #0x14]
+ cmp r1, #5
+ beq _0222FE40
+ add r0, r6, #0
+ add r0, #0x2a
+ strb r1, [r0]
+ b _0222FE48
+_0222FE40:
+ add r0, r6, #0
+ mov r1, #3
+ add r0, #0x2a
+ strb r1, [r0]
+_0222FE48:
+ add r0, r6, #0
+ bl MOD07_02211E60
+ mov r0, #1
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222FE54: .word SDK_OVERLAY_MODULE_07_ID
+
+ thumb_func_start MOD11_0222FE58
+MOD11_0222FE58: ; 0x0222FE58
+ push {r4, r5, r6, lr}
+ bl FUN_0200628C
+ mov r1, #0x66
+ lsl r1, r1, #2
+ ldr r6, [r0, r1]
+ add r0, r6, #0
+ add r0, #0x2b
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0222FE8E
+ mov r4, #0
+ add r5, r6, #0
+_0222FE72:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _0222FE7C
+ bl FreeToHeap
+_0222FE7C:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222FE72
+ add r0, r6, #0
+ bl FreeToHeap
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0222FE8E:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0222FE94
+MOD11_0222FE94: ; 0x0222FE94
+ push {r3, lr}
+ ldr r1, [r0, #0x2c]
+ ldr r0, _0222FEBC ; =0x00000404
+ tst r0, r1
+ beq _0222FEA6
+ mov r0, #1
+ bl FUN_02002B7C
+ pop {r3, pc}
+_0222FEA6:
+ mov r0, #3
+ bl FUN_02002B7C
+ mov r0, #1
+ bl FUN_02002B60
+ mov r0, #1
+ bl FUN_02002BB8
+ pop {r3, pc}
+ nop
+_0222FEBC: .word 0x00000404
+
+ thumb_func_start MOD11_0222FEC0
+MOD11_0222FEC0: ; 0x0222FEC0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ str r0, [sp]
+ mov r0, #0x5f
+ mov r3, #0
+ add r4, sp, #0x30
+ add r5, sp, #0x20
+ lsl r0, r0, #2
+_0222FED0:
+ stmia r4!, {r3}
+ ldr r2, [r1, r0]
+ add r3, r3, #1
+ add r1, r1, #4
+ stmia r5!, {r2}
+ cmp r3, #4
+ blt _0222FED0
+ bl FUN_02031190
+ str r0, [sp, #0x10]
+ bl FUN_02030F20
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xc]
+ sub r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, #0
+ ble _0222FF50
+ add r0, sp, #0x30
+ add r3, sp, #0x20
+ str r0, [sp, #8]
+ str r3, [sp, #0x18]
+ mov ip, r0
+_0222FF02:
+ ldr r0, [sp, #4]
+ add r2, r0, #1
+ ldr r0, [sp, #0xc]
+ cmp r2, r0
+ bge _0222FF3C
+ ldr r0, [sp, #0x18]
+ lsl r1, r2, #2
+ add r4, r0, r1
+ mov r0, ip
+ add r5, r0, r1
+_0222FF16:
+ ldr r0, [r4]
+ ldr r6, [r3]
+ str r0, [sp, #0x1c]
+ cmp r6, r0
+ bge _0222FF30
+ ldr r0, [sp, #8]
+ ldr r1, [r5]
+ ldr r7, [r0]
+ str r1, [r0]
+ ldr r0, [sp, #0x1c]
+ str r7, [r5]
+ str r0, [r3]
+ str r6, [r4]
+_0222FF30:
+ ldr r0, [sp, #0xc]
+ add r2, r2, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r2, r0
+ blt _0222FF16
+_0222FF3C:
+ ldr r0, [sp, #8]
+ add r3, r3, #4
+ add r0, r0, #4
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ add r1, r0, #1
+ ldr r0, [sp, #0x14]
+ str r1, [sp, #4]
+ cmp r1, r0
+ blt _0222FF02
+_0222FF50:
+ ldr r1, [sp, #0x30]
+ ldr r0, [sp, #0x10]
+ cmp r1, r0
+ bne _0222FF60
+ ldr r1, _0222FF64 ; =0x000023F8
+ ldr r0, [sp]
+ mov r2, #1
+ strb r2, [r0, r1]
+_0222FF60:
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222FF64: .word 0x000023F8
+
+ thumb_func_start MOD11_0222FF68
+MOD11_0222FF68: ; 0x0222FF68
+ ldr r0, [r0, #4]
+ bx lr
+
+ thumb_func_start MOD11_0222FF6C
+MOD11_0222FF6C: ; 0x0222FF6C
+ ldr r2, [r0, #8]
+ lsl r0, r1, #4
+ add r0, r2, r0
+ bx lr
+
+ thumb_func_start MOD11_0222FF74
+MOD11_0222FF74: ; 0x0222FF74
+ ldr r0, [r0, #0x2c]
+ bx lr
+
+ thumb_func_start MOD11_0222FF78
+MOD11_0222FF78: ; 0x0222FF78
+ ldr r0, [r0, #0x30]
+ bx lr
+
+ thumb_func_start MOD11_0222FF7C
+MOD11_0222FF7C: ; 0x0222FF7C
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r0, [r0, #0x34]
+ bx lr
+
+ thumb_func_start MOD11_0222FF84
+MOD11_0222FF84: ; 0x0222FF84
+ ldr r0, [r0, #0x44]
+ bx lr
+
+ thumb_func_start MOD11_0222FF88
+MOD11_0222FF88: ; 0x0222FF88
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _0222FFA6
+ mov r3, #0x10
+ tst r2, r3
+ beq _0222FFAE
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _0222FFAE
+_0222FFA6:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ pop {r3, r4, r5, pc}
+_0222FFAE:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _0222FFC0
+ lsl r0, r4, #0x1f
+ lsr r0, r0, #0x1d
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ pop {r3, r4, r5, pc}
+_0222FFC0:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0222FFC8
+MOD11_0222FFC8: ; 0x0222FFC8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _0222FFE6
+ mov r3, #0x10
+ tst r2, r3
+ beq _0222FFF2
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _0222FFF2
+_0222FFE6:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ bl GetPartyCount
+ pop {r3, r4, r5, pc}
+_0222FFF2:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _02230008
+ lsl r0, r4, #0x1f
+ lsr r0, r0, #0x1d
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ bl GetPartyCount
+ pop {r3, r4, r5, pc}
+_02230008:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ bl GetPartyCount
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02230014
+MOD11_02230014: ; 0x02230014
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r2, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _02230034
+ mov r3, #0x10
+ tst r2, r3
+ beq _02230042
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _02230042
+_02230034:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ add r1, r6, #0
+ bl GetPartyMonByIndex
+ pop {r4, r5, r6, pc}
+_02230042:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _0223005A
+ lsl r0, r4, #0x1f
+ lsr r0, r0, #0x1d
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ add r1, r6, #0
+ bl GetPartyMonByIndex
+ pop {r4, r5, r6, pc}
+_0223005A:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ add r1, r6, #0
+ bl GetPartyMonByIndex
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02230068
+MOD11_02230068: ; 0x02230068
+ add r0, #0x88
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02230070
+MOD11_02230070: ; 0x02230070
+ add r0, #0x8c
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02230078
+MOD11_02230078: ; 0x02230078
+ add r0, #0x90
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02230080
+MOD11_02230080: ; 0x02230080
+ add r0, #0x94
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02230088
+MOD11_02230088: ; 0x02230088
+ mov r2, #0x5f
+ lsl r2, r2, #2
+ add r2, r0, r2
+ lsl r0, r1, #4
+ add r0, r2, r0
+ bx lr
+
+ thumb_func_start MOD11_02230094
+MOD11_02230094: ; 0x02230094
+ mov r1, #0x67
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_0223009C
+MOD11_0223009C: ; 0x0223009C
+ lsl r1, r1, #2
+ add r1, r0, r1
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ bx lr
+
+ thumb_func_start MOD11_022300A8
+MOD11_022300A8: ; 0x022300A8
+ lsl r1, r1, #2
+ add r1, r0, r1
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ bx lr
+
+ thumb_func_start MOD11_022300B4
+MOD11_022300B4: ; 0x022300B4
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_022300BC
+MOD11_022300BC: ; 0x022300BC
+ mov r1, #0x6b
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_022300C4
+MOD11_022300C4: ; 0x022300C4
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start MOD11_022300C8
+MOD11_022300C8: ; 0x022300C8
+ ldr r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start MOD11_022300CC
+MOD11_022300CC: ; 0x022300CC
+ ldr r0, [r0, #0x28]
+ bx lr
+
+ thumb_func_start MOD11_022300D0
+MOD11_022300D0: ; 0x022300D0
+ ldr r0, [r0, #0x60]
+ bx lr
+
+ thumb_func_start MOD11_022300D4
+MOD11_022300D4: ; 0x022300D4
+ mov r1, #0x89
+ lsl r1, r1, #2
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start MOD11_022300DC
+MOD11_022300DC: ; 0x022300DC
+ ldr r1, _022300E4 ; =0x00001224
+ add r0, r0, r1
+ bx lr
+ nop
+_022300E4: .word 0x00001224
+
+ thumb_func_start MOD11_022300E8
+MOD11_022300E8: ; 0x022300E8
+ ldr r1, _022300F0 ; =0x000023E4
+ add r0, r0, r1
+ bx lr
+ nop
+_022300F0: .word 0x000023E4
+
+ thumb_func_start MOD11_022300F4
+MOD11_022300F4: ; 0x022300F4
+ ldr r1, _022300FC ; =0x000023E6
+ add r0, r0, r1
+ bx lr
+ nop
+_022300FC: .word 0x000023E6
+
+ thumb_func_start MOD11_02230100
+MOD11_02230100: ; 0x02230100
+ ldr r1, _02230108 ; =0x000023E8
+ add r0, r0, r1
+ bx lr
+ nop
+_02230108: .word 0x000023E8
+
+ thumb_func_start MOD11_0223010C
+MOD11_0223010C: ; 0x0223010C
+ ldr r1, _02230114 ; =0x000023EA
+ add r0, r0, r1
+ bx lr
+ nop
+_02230114: .word 0x000023EA
+
+ thumb_func_start MOD11_02230118
+MOD11_02230118: ; 0x02230118
+ ldr r1, _02230120 ; =0x000023EC
+ add r0, r0, r1
+ bx lr
+ nop
+_02230120: .word 0x000023EC
+
+ thumb_func_start MOD11_02230124
+MOD11_02230124: ; 0x02230124
+ ldr r1, _0223012C ; =0x000023EE
+ add r0, r0, r1
+ bx lr
+ nop
+_0223012C: .word 0x000023EE
+
+ thumb_func_start MOD11_02230130
+MOD11_02230130: ; 0x02230130
+ mov r1, #0x73
+ lsl r1, r1, #2
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start MOD11_02230138
+MOD11_02230138: ; 0x02230138
+ ldr r0, [r0, #0x14]
+ bx lr
+
+ thumb_func_start MOD11_0223013C
+MOD11_0223013C: ; 0x0223013C
+ ldr r0, [r0, #0x18]
+ bx lr
+
+ thumb_func_start MOD11_02230140
+MOD11_02230140: ; 0x02230140
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _0223015E
+ mov r3, #0x10
+ tst r2, r3
+ beq _02230168
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _02230168
+_0223015E:
+ lsl r0, r4, #1
+ add r0, r5, r0
+ add r0, #0xa0
+ ldrh r0, [r0]
+ pop {r3, r4, r5, pc}
+_02230168:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _0223017C
+ lsl r0, r4, #0x1f
+ lsr r0, r0, #0x1e
+ add r0, r5, r0
+ add r0, #0xa0
+ ldrh r0, [r0]
+ pop {r3, r4, r5, pc}
+_0223017C:
+ lsl r0, r4, #1
+ add r0, r5, r0
+ add r0, #0xa0
+ ldrh r0, [r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230188
+MOD11_02230188: ; 0x02230188
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _022301A6
+ mov r3, #0x10
+ tst r2, r3
+ beq _022301B0
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _022301B0
+_022301A6:
+ mov r0, #0x34
+ add r5, #0xac
+ mul r0, r4
+ add r0, r5, r0
+ pop {r3, r4, r5, pc}
+_022301B0:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _022301C8
+ mov r0, #1
+ add r1, r4, #0
+ and r1, r0
+ mov r0, #0x34
+ add r5, #0xac
+ mul r0, r1
+ add r0, r5, r0
+ pop {r3, r4, r5, pc}
+_022301C8:
+ mov r0, #0x34
+ add r5, #0xac
+ mul r0, r4
+ add r0, r5, r0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022301D4
+MOD11_022301D4: ; 0x022301D4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _022301F2
+ mov r3, #0x10
+ tst r2, r3
+ beq _022301FA
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _022301FA
+_022301F2:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x48]
+ pop {r3, r4, r5, pc}
+_022301FA:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _0223020C
+ lsl r0, r4, #0x1f
+ lsr r0, r0, #0x1d
+ add r0, r5, r0
+ ldr r0, [r0, #0x48]
+ pop {r3, r4, r5, pc}
+_0223020C:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x48]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02230214
+MOD11_02230214: ; 0x02230214
+ ldr r0, [r0, #0x58]
+ bx lr
+
+ thumb_func_start MOD11_02230218
+MOD11_02230218: ; 0x02230218
+ ldr r0, [r0, #0x5c]
+ bx lr
+
+ thumb_func_start MOD11_0223021C
+MOD11_0223021C: ; 0x0223021C
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r3, _02230228 ; =FUN_020239CC
+ ldr r0, [r0, #0x48]
+ bx r3
+ nop
+_02230228: .word FUN_020239CC
+
+ thumb_func_start MOD11_0223022C
+MOD11_0223022C: ; 0x0223022C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ add r7, r1, #0
+ mov r4, #0
+ cmp r0, #0
+ ble _02230250
+ add r5, r6, #0
+_0223023C:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A4C
+ cmp r7, r0
+ beq _02230250
+ ldr r0, [r6, #0x44]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _0223023C
+_02230250:
+ ldr r0, [r6, #0x44]
+ cmp r4, r0
+ blt _0223025A
+ bl ErrorHandling
+_0223025A:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230260
+MOD11_02230260: ; 0x02230260
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r3, _0223026C ; =MOD11_02253A4C
+ ldr r0, [r0, #0x34]
+ bx r3
+ nop
+_0223026C: .word MOD11_02253A4C
+
+ thumb_func_start MOD11_02230270
+MOD11_02230270: ; 0x02230270
+ push {r3, lr}
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r0, [r0, #0x34]
+ bl MOD11_02253A4C
+ mov r1, #1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230288
+MOD11_02230288: ; 0x02230288
+ mov r1, #0x1b
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_02230290
+MOD11_02230290: ; 0x02230290
+ ldr r0, [r0, #0x64]
+ bx lr
+
+ thumb_func_start MOD11_02230294
+MOD11_02230294: ; 0x02230294
+ ldr r1, _022302A4 ; =0x000023FC
+ ldr r0, [r0, r1]
+ cmp r0, #0xc
+ bgt _022302A0
+ cmp r0, #0
+ bge _022302A2
+_022302A0:
+ mov r0, #0xc
+_022302A2:
+ bx lr
+ .align 2, 0
+_022302A4: .word 0x000023FC
+
+ thumb_func_start MOD11_022302A8
+MOD11_022302A8: ; 0x022302A8
+ mov r1, #9
+ lsl r1, r1, #0xa
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_022302B0
+MOD11_022302B0: ; 0x022302B0
+ ldr r1, _022302B8 ; =0x00002404
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_022302B8: .word 0x00002404
+
+ thumb_func_start MOD11_022302BC
+MOD11_022302BC: ; 0x022302BC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ str r0, [sp]
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _022302D8
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022302D8:
+ ldr r0, [sp]
+ mov r4, #0
+ cmp r0, #0
+ ble _02230302
+_022302E0:
+ cmp r4, r5
+ beq _022302FA
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_02230270
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ cmp r7, r0
+ beq _02230302
+_022302FA:
+ ldr r0, [sp]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _022302E0
+_02230302:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230308
+MOD11_02230308: ; 0x02230308
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r6, r1, #0
+ str r2, [sp]
+ bl MOD11_0222FF84
+ str r0, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _0223032C
+ mov r0, #1
+ add sp, #8
+ eor r0, r6
+ pop {r3, r4, r5, r6, r7, pc}
+_0223032C:
+ ldr r0, [sp, #4]
+ mov r4, #0
+ cmp r0, #0
+ ble _02230368
+_02230334:
+ cmp r4, r6
+ beq _02230360
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02230260
+ mov r1, #2
+ and r1, r0
+ ldr r0, [sp]
+ cmp r0, r1
+ bne _02230360
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02230270
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02230270
+ cmp r7, r0
+ bne _02230368
+_02230360:
+ ldr r0, [sp, #4]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _02230334
+_02230368:
+ add r0, r4, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230370
+MOD11_02230370: ; 0x02230370
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r6, r1, #0
+ ldr r1, [sp, #0x38]
+ add r5, r2, #0
+ str r1, [sp, #0x38]
+ add r1, r0, #0
+ ldr r1, [r1, #0x30]
+ add r4, r3, #0
+ str r1, [sp, #0x1c]
+ mov r1, #0
+ str r1, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp, #4]
+ mov r2, #2
+ add r3, r6, #0
+ bl MOD11_0224C474
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ cmp r0, #3
+ beq _022303BA
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ tst r0, r1
+ beq _022303E0
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ bne _022303E0
+_022303BA:
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_022302BC
+ add r3, r0, #0
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x1c]
+ mov r2, #2
+ bl MOD11_0224C474
+ str r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022303E4
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_022302BC
+ add r6, r0, #0
+ b _022303E4
+_022303E0:
+ ldr r0, [sp, #0x10]
+ str r0, [sp, #0xc]
+_022303E4:
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ add r2, r5, #0
+ bl MOD11_02230014
+ str r0, [sp, #0x18]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x38]
+ mov r1, #0xf
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230478
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ mov r1, #7
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _02230478
+ mov r1, #7
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ add r2, sp, #0x20
+ bl SetMonData
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230434
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230474
+_02230434:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #7
+ str r0, [sp, #0x20]
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, _02230688 ; =0xF7FFFFFF
+ str r0, [sp, #0x20]
+ and r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+_02230474:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230478:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x10
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022304DC
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _0223068C ; =0x00000F88
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _022304DC
+ ldr r1, _02230690 ; =0xFFFFF077
+ add r2, sp, #0x20
+ and r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ bl SetMonData
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _022304B8
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022304D8
+_022304B8:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, _02230690 ; =0xFFFFF077
+ str r0, [sp, #0x20]
+ and r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+_022304D8:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022304DC:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x11
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230540
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ mov r1, #0x10
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _02230540
+ mov r1, #0x10
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ add r2, sp, #0x20
+ bl SetMonData
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _0223051C
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _0223053C
+_0223051C:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #0x10
+ str r0, [sp, #0x20]
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+_0223053C:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230540:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x12
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022305A4
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ mov r1, #0x20
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _022305A4
+ mov r1, #0x20
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ add r2, sp, #0x20
+ bl SetMonData
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230580
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022305A0
+_02230580:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #0x20
+ str r0, [sp, #0x20]
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+_022305A0:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022305A4:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x13
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230608
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ mov r1, #0x40
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _02230608
+ mov r1, #0x40
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ add r2, sp, #0x20
+ bl SetMonData
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _022305E4
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230604
+_022305E4:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #0x40
+ str r0, [sp, #0x20]
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+_02230604:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230608:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x14
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230650
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230626
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230650
+_02230626:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #7
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _02230650
+ mov r1, #7
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230650:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x15
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022306AC
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _0223066E
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022306AC
+_0223066E:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #0xf
+ lsl r1, r1, #0x10
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _022306AC
+ ldr r1, _02230694 ; =0xFFF0FFFF
+ b _02230698
+ .align 2, 0
+_02230688: .word 0xF7FFFFFF
+_0223068C: .word 0x00000F88
+_02230690: .word 0xFFFFF077
+_02230694: .word 0xFFF0FFFF
+_02230698:
+ mov r2, #0x35
+ and r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022306AC:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x16
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230706
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x1c]
+ mov r2, #1
+ add r3, r6, #0
+ bl MOD11_0224C474
+ str r0, [sp, #0x20]
+ cmp r0, #0
+ bne _02230706
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x1c]
+ mov r2, #0
+ add r3, r6, #0
+ bl MOD11_0224C474
+ mov r1, #0x40
+ str r0, [sp, #0x20]
+ orr r0, r1
+ str r0, [sp, #0x20]
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x1c]
+ mov r2, #0
+ add r3, r6, #0
+ bl MOD11_0224C54C
+ mov r0, #5
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x1c]
+ mov r2, #1
+ add r3, r6, #0
+ bl MOD11_0224C54C
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230706:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x1b
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230744
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230724
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230744
+_02230724:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x13
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0xc
+ bge _02230744
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x13
+ mov r3, #1
+ bl MOD11_02243DB0
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230744:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x1c
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230782
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230762
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230782
+_02230762:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x14
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0xc
+ bge _02230782
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x14
+ mov r3, #1
+ bl MOD11_02243DB0
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230782:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x1d
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022307C0
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _022307A0
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022307C0
+_022307A0:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x16
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0xc
+ bge _022307C0
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x16
+ mov r3, #1
+ bl MOD11_02243DB0
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022307C0:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x1e
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022307FE
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _022307DE
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022307FE
+_022307DE:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x17
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0xc
+ bge _022307FE
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x17
+ mov r3, #1
+ bl MOD11_02243DB0
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022307FE:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x1f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _0223083C
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _0223081C
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _0223083C
+_0223081C:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x15
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0xc
+ bge _0223083C
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x15
+ mov r3, #1
+ bl MOD11_02243DB0
+ mov r0, #1
+ str r0, [sp, #0x14]
+_0223083C:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x20
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _0223087A
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _0223085A
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _0223087A
+_0223085A:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x18
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0xc
+ bge _0223087A
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x18
+ mov r3, #1
+ bl MOD11_02243DB0
+ mov r0, #1
+ str r0, [sp, #0x14]
+_0223087A:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x21
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022308C4
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230898
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022308C4
+_02230898:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #1
+ lsl r1, r1, #0x14
+ add r2, r0, #0
+ str r0, [sp, #0x20]
+ tst r2, r1
+ bne _022308C4
+ orr r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022308C4:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x24
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _0223095A
+ ldr r0, [sp, #0x38]
+ mov r1, #0x37
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #0x20]
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ add r1, #0x3a
+ mov r2, #0
+ bl GetMonData
+ add r7, r0, #0
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ add r1, #0x42
+ mov r2, #0
+ bl GetMonData
+ cmp r7, r0
+ beq _0223095A
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x20]
+ add r1, #0x3a
+ bl AddMonData
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _0223091C
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230956
+_0223091C:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #2
+ lsl r1, r1, #0x14
+ tst r0, r1
+ bne _02230956
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x4b
+ mov r3, #0
+ bl MOD11_02243420
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ tst r0, r7
+ bne _02230956
+ add r4, #0x1f
+ ldr r0, [sp, #0x1c]
+ ldr r3, [sp, #0x20]
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02243DB0
+_02230956:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_0223095A:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x25
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022309F8
+ ldr r0, [sp, #0x38]
+ mov r1, #0x37
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #0x20]
+ mov r4, #0
+_0223097E:
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ add r1, #0x3a
+ mov r2, #0
+ bl GetMonData
+ add r7, r0, #0
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ add r1, #0x42
+ mov r2, #0
+ bl GetMonData
+ cmp r7, r0
+ beq _022309F2
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x20]
+ add r1, #0x3a
+ bl AddMonData
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _022309B4
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022309EE
+_022309B4:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #2
+ lsl r1, r1, #0x14
+ tst r0, r1
+ bne _022309EE
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x4b
+ mov r3, #0
+ bl MOD11_02243420
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ tst r0, r7
+ bne _022309EE
+ add r2, r4, #0
+ ldr r0, [sp, #0x1c]
+ ldr r3, [sp, #0x20]
+ add r1, r6, #0
+ add r2, #0x1f
+ bl MOD11_02243DB0
+_022309EE:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022309F2:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _0223097E
+_022309F8:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x26
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ bne _02230A0C
+ b _02230B14
+_02230A0C:
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x38]
+ mov r1, #0x17
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230A36
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _02230A42
+ mov r0, #1
+ str r0, [sp, #0x20]
+ b _02230A42
+_02230A36:
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #0x20]
+_02230A42:
+ ldr r0, [sp, #0x20]
+ cmp r0, #0
+ beq _02230B14
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ add r4, r0, #0
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa3
+ mov r2, #0
+ bl GetMonData
+ cmp r4, r0
+ beq _02230B14
+ ldr r0, [sp, #0x38]
+ mov r1, #0x36
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #0x20]
+ cmp r0, #0xfd
+ beq _02230AA2
+ cmp r0, #0xfe
+ beq _02230A8C
+ cmp r0, #0xff
+ bne _02230AC2
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa3
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #0x20]
+ b _02230AC2
+_02230A8C:
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa3
+ mov r2, #0
+ bl GetMonData
+ lsr r0, r0, #1
+ str r0, [sp, #0x20]
+ bne _02230AC2
+ mov r0, #1
+ str r0, [sp, #0x20]
+ b _02230AC2
+_02230AA2:
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa3
+ mov r2, #0
+ bl GetMonData
+ mov r1, #0x19
+ mul r1, r0
+ add r0, r1, #0
+ mov r1, #0x64
+ bl _u32_div_f
+ str r0, [sp, #0x20]
+ cmp r0, #0
+ bne _02230AC2
+ mov r0, #1
+ str r0, [sp, #0x20]
+_02230AC2:
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x20]
+ mov r1, #0xa2
+ bl AddMonData
+ ldr r0, [sp, #0x38]
+ mov r1, #0x17
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ bne _02230B10
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02230AF8
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x5f
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+ b _02230B10
+_02230AF8:
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230B04
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230B10
+_02230B04:
+ ldr r0, [sp, #0x1c]
+ ldr r3, [sp, #0x20]
+ add r1, r6, #0
+ mov r2, #0x2f
+ bl MOD11_02243DB0
+_02230B10:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230B14:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x2d
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230B4A
+ ldr r0, [sp, #0x18]
+ mov r1, #9
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0x64
+ bhs _02230B4A
+ ldr r0, [sp, #0x14]
+ cmp r0, #1
+ bne _02230B4A
+ ldr r0, [sp, #0x38]
+ mov r1, #0x38
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #8]
+_02230B4A:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x2e
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230B8E
+ ldr r0, [sp, #0x18]
+ mov r1, #9
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0x64
+ blo _02230B8E
+ ldr r0, [sp, #0x18]
+ mov r1, #9
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0xc8
+ bhs _02230B8E
+ ldr r0, [sp, #0x14]
+ cmp r0, #1
+ bne _02230B8E
+ ldr r0, [sp, #0x38]
+ mov r1, #0x39
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #8]
+_02230B8E:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x2f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230BC4
+ ldr r0, [sp, #0x18]
+ mov r1, #9
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0xc8
+ blo _02230BC4
+ ldr r0, [sp, #0x14]
+ cmp r0, #1
+ bne _02230BC4
+ ldr r0, [sp, #0x38]
+ mov r1, #0x3a
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #8]
+_02230BC4:
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _02230C4A
+ ble _02230C28
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9a
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0xb
+ bne _02230BE0
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+_02230BE0:
+ ldr r0, [sp, #0x18]
+ mov r1, #0x97
+ mov r2, #0
+ bl GetMonData
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ bl MOD11_022302B0
+ cmp r4, r0
+ bne _02230BFC
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+_02230BFC:
+ ldr r0, [sp, #0x18]
+ mov r1, #6
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x38]
+ mov r1, #1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0x34
+ bne _02230C28
+ ldr r1, [sp, #8]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ str r0, [sp, #8]
+_02230C28:
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #8]
+ mov r1, #9
+ bl AddMonData
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230C3E
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230C4A
+_02230C3E:
+ ldr r0, [sp, #0x1c]
+ ldr r3, [sp, #8]
+ add r1, r6, #0
+ mov r2, #0x2c
+ bl MOD11_02243DB0
+_02230C4A:
+ ldr r0, [sp, #0x14]
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02230C50
+MOD11_02230C50: ; 0x02230C50
+ ldr r1, _02230C58 ; =0x00002408
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_02230C58: .word 0x00002408
+
+ thumb_func_start MOD11_02230C5C
+MOD11_02230C5C: ; 0x02230C5C
+ ldr r1, _02230C64 ; =0x0000240C
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_02230C64: .word 0x0000240C
+
+ thumb_func_start MOD11_02230C68
+MOD11_02230C68: ; 0x02230C68
+ mov r2, #9
+ lsl r2, r2, #0xa
+ ldr r1, [r0, r2]
+ cmp r1, #5
+ bhi _02230CB4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02230C7E: ; jump table
+ .short _02230C8A - _02230C7E - 2 ; case 0
+ .short _02230C8A - _02230C7E - 2 ; case 1
+ .short _02230C8A - _02230C7E - 2 ; case 2
+ .short _02230C8A - _02230C7E - 2 ; case 3
+ .short _02230C8A - _02230C7E - 2 ; case 4
+ .short _02230C8A - _02230C7E - 2 ; case 5
+_02230C8A:
+ add r2, #0xc
+ ldr r1, [r0, r2]
+ cmp r1, #4
+ bhi _02230CB6
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02230C9E: ; jump table
+ .short _02230CA8 - _02230C9E - 2 ; case 0
+ .short _02230CA8 - _02230C9E - 2 ; case 1
+ .short _02230CAC - _02230C9E - 2 ; case 2
+ .short _02230CB0 - _02230C9E - 2 ; case 3
+ .short _02230CB0 - _02230C9E - 2 ; case 4
+_02230CA8:
+ mov r0, #0
+ bx lr
+_02230CAC:
+ mov r0, #1
+ bx lr
+_02230CB0:
+ mov r0, #2
+ bx lr
+_02230CB4:
+ mov r0, #0
+_02230CB6:
+ bx lr
+
+ thumb_func_start MOD11_02230CB8
+MOD11_02230CB8: ; 0x02230CB8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_02230260
+ cmp r0, #4
+ bne _02230D32
+ ldr r1, [r5, #0x2c]
+ mov r0, #8
+ tst r0, r1
+ bne _02230D32
+ mov r0, #4
+ tst r0, r1
+ beq _02230CEE
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022302BC
+ bl MaskOfFlagNo
+ mov r1, #0x91
+ lsl r1, r1, #6
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _02230D32
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02230CEE:
+ ldr r1, [r5, #0x30]
+ add r0, r5, #0
+ mov r2, #0xc
+ mov r3, #0
+ bl MOD11_0224C474
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r1, [r5, #0x30]
+ add r0, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_0224C474
+ cmp r0, #0xe
+ bne _02230D12
+ cmp r4, #0x10
+ bhi _02230D2A
+_02230D12:
+ ldr r1, [r5, #0x30]
+ add r0, r5, #0
+ mov r2, #0xa
+ mov r3, #0
+ bl MOD11_0224C474
+ add r4, r0, #0
+ mov r0, #0
+ bl MaskOfFlagNo
+ tst r0, r4
+ beq _02230D2E
+_02230D2A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02230D2E:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02230D32:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230D38
+MOD11_02230D38: ; 0x02230D38
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x14]
+ add r4, r1, #0
+ add r7, r2, #0
+ cmp r0, #1
+ beq _02230D5A
+ cmp r0, #4
+ beq _02230D5A
+ cmp r0, #5
+ beq _02230D5A
+ ldr r0, [sp, #4]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02230D5A:
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02230DCE
+_02230D64:
+ mov r0, #0
+ str r0, [r4]
+ cmp r0, #6
+ bge _02230D9C
+ mov r6, #0x5e
+ lsl r6, r6, #2
+_02230D70:
+ bl MaskOfFlagNo
+ ldr r1, [r5, r6]
+ tst r0, r1
+ beq _02230D92
+ ldr r0, [r4]
+ bl MaskOfFlagNo
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ mov r2, #0
+ mvn r2, r2
+ ldr r1, [r5, r3]
+ eor r0, r2
+ and r0, r1
+ str r0, [r5, r3]
+ b _02230D9C
+_02230D92:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ cmp r0, #6
+ blt _02230D70
+_02230D9C:
+ ldr r1, [r4]
+ cmp r1, #6
+ bge _02230DC4
+ ldr r0, [r5, #4]
+ bl GetPartyMonByIndex
+ mov r3, #0x59
+ str r7, [sp]
+ lsl r3, r3, #2
+ ldr r3, [r5, r3]
+ add r1, r0, #0
+ lsl r3, r3, #0x10
+ ldr r0, [r5, #4]
+ mov r2, #0
+ lsr r3, r3, #0x10
+ bl GetMonEvolution
+ str r0, [sp, #4]
+ cmp r0, #0
+ bne _02230DD0
+_02230DC4:
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _02230D64
+_02230DCE:
+ ldr r0, [sp, #4]
+_02230DD0:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02230DD4
+MOD11_02230DD4: ; 0x02230DD4
+ ldr r1, _02230DDC ; =0x000023F8
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_02230DDC: .word 0x000023F8
+
+ thumb_func_start MOD11_02230DE0
+MOD11_02230DE0: ; 0x02230DE0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ bne _02230DEE
+ bl ErrorHandling
+_02230DEE:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #5
+ mov r3, #0
+ bl MOD11_0224C474
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02230E00
+MOD11_02230E00: ; 0x02230E00
+ ldr r1, _02230E08 ; =0x00002410
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_02230E08: .word 0x00002410
+
+ thumb_func_start MOD11_02230E0C
+MOD11_02230E0C: ; 0x02230E0C
+ ldr r2, _02230E14 ; =0x00002410
+ str r1, [r0, r2]
+ bx lr
+ nop
+_02230E14: .word 0x00002410
+
+ thumb_func_start MOD11_02230E18
+MOD11_02230E18: ; 0x02230E18
+ mov r1, #0x6d
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_02230E20
+MOD11_02230E20: ; 0x02230E20
+ push {r3, lr}
+ ldr r2, [r0, #0x2c]
+ mov r1, #4
+ tst r1, r2
+ beq _02230E2E
+ mov r0, #1
+ pop {r3, pc}
+_02230E2E:
+ mov r1, #0x6d
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bl FUN_0202502C
+ cmp r0, #0
+ bne _02230E40
+ mov r0, #1
+ pop {r3, pc}
+_02230E40:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02230E44
+MOD11_02230E44: ; 0x02230E44
+ mov r1, #0x6d
+ lsl r1, r1, #2
+ ldr r3, _02230E50 ; =FUN_02025084
+ ldr r0, [r0, r1]
+ bx r3
+ nop
+_02230E50: .word FUN_02025084
+
+ thumb_func_start MOD11_02230E54
+MOD11_02230E54: ; 0x02230E54
+ push {r3, lr}
+ ldr r2, [r0, #0x2c]
+ mov r1, #4
+ tst r1, r2
+ beq _02230E62
+ mov r0, #1
+ pop {r3, pc}
+_02230E62:
+ mov r1, #0x6d
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bl FUN_02024FF4
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230E70
+MOD11_02230E70: ; 0x02230E70
+ mov r1, #0x6d
+ lsl r1, r1, #2
+ ldr r3, _02230E7C ; =FUN_02025048
+ ldr r0, [r0, r1]
+ bx r3
+ nop
+_02230E7C: .word FUN_02025048
+
+ thumb_func_start MOD11_02230E80
+MOD11_02230E80: ; 0x02230E80
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_02230E88
+MOD11_02230E88: ; 0x02230E88
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _02230EA6
+ mov r3, #0x10
+ tst r2, r3
+ beq _02230EAE
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _02230EAE
+_02230EA6:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x78]
+ pop {r3, r4, r5, pc}
+_02230EAE:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _02230EC0
+ lsl r0, r4, #0x1f
+ lsr r0, r0, #0x1d
+ add r0, r5, r0
+ ldr r0, [r0, #0x78]
+ pop {r3, r4, r5, pc}
+_02230EC0:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x78]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02230EC8
+MOD11_02230EC8: ; 0x02230EC8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r1, #0xa9
+ ldr r2, [r5, #0x2c]
+ lsl r1, r1, #2
+ tst r1, r2
+ bne _02230F66
+ mov r4, #0
+ add r1, r4, #0
+ bl MOD11_0222FFC8
+ cmp r0, #0
+ ble _02230F66
+ add r7, r4, #0
+_02230EE4:
+ add r0, r5, #0
+ mov r1, #0
+ add r2, r4, #0
+ bl MOD11_02230014
+ mov r1, #0xad
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ mov r0, #0x67
+ lsl r0, r0, #2
+ cmp r1, r0
+ bne _02230F58
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldr r1, _02230F68 ; =0x00002414
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ beq _02230F58
+ add r0, r5, #0
+ bl MOD11_02230294
+ cmp r0, #0xb
+ bhi _02230F40
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02230F28: ; jump table
+ .short _02230F44 - _02230F28 - 2 ; case 0
+ .short _02230F44 - _02230F28 - 2 ; case 1
+ .short _02230F40 - _02230F28 - 2 ; case 2
+ .short _02230F40 - _02230F28 - 2 ; case 3
+ .short _02230F44 - _02230F28 - 2 ; case 4
+ .short _02230F44 - _02230F28 - 2 ; case 5
+ .short _02230F40 - _02230F28 - 2 ; case 6
+ .short _02230F40 - _02230F28 - 2 ; case 7
+ .short _02230F40 - _02230F28 - 2 ; case 8
+ .short _02230F4A - _02230F28 - 2 ; case 9
+ .short _02230F40 - _02230F28 - 2 ; case 10
+ .short _02230F4A - _02230F28 - 2 ; case 11
+_02230F40:
+ str r7, [sp]
+ b _02230F4E
+_02230F44:
+ mov r0, #1
+ str r0, [sp]
+ b _02230F4E
+_02230F4A:
+ mov r0, #2
+ str r0, [sp]
+_02230F4E:
+ add r0, r6, #0
+ mov r1, #0x70
+ add r2, sp, #0
+ bl SetMonData
+_02230F58:
+ add r0, r5, #0
+ mov r1, #0
+ add r4, r4, #1
+ bl MOD11_0222FFC8
+ cmp r4, r0
+ blt _02230EE4
+_02230F66:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02230F68: .word 0x00002414
+
+ thumb_func_start MOD11_02230F6C
+MOD11_02230F6C: ; 0x02230F6C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r2, #0
+ add r4, r1, #0
+ bl MaskOfFlagNo
+ ldr r1, _02230F84 ; =0x00002414
+ add r2, r5, r1
+ ldrb r1, [r2, r4]
+ orr r0, r1
+ strb r0, [r2, r4]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02230F84: .word 0x00002414
+
+ thumb_func_start MOD11_02230F88
+MOD11_02230F88: ; 0x02230F88
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02230FA4
+ add r0, r1, #0
+ bl FUN_020690E4
+ add r4, #0x98
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl FUN_0204C104
+_02230FA4:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230FA8
+MOD11_02230FA8: ; 0x02230FA8
+ push {r3, r4, lr}
+ sub sp, #4
+ add r3, r0, #0
+ mov r0, #5
+ str r0, [sp]
+ ldr r4, _02230FC8 ; =0x0000241C
+ add r0, r3, #0
+ ldrb r2, [r3, r4]
+ add r4, r4, #2
+ add r0, #0x9c
+ ldrh r3, [r3, r4]
+ ldr r0, [r0]
+ bl FUN_02061028
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_02230FC8: .word 0x0000241C
+
+ thumb_func_start MOD11_02230FCC
+MOD11_02230FCC: ; 0x02230FCC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ mov r1, #1
+ add r4, r0, #0
+ mov r0, #5
+ lsl r1, r1, #0x10
+ bl AllocFromHeap
+ mov r1, #0x87
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #5
+ sub r1, #0x1c
+ bl AllocFromHeap
+ mov r1, #0x22
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ sub r1, r1, #4
+ mov r2, #1
+ ldr r0, _02231224 ; =0x06010000
+ ldr r1, [r4, r1]
+ lsl r2, r2, #0x10
+ bl MIi_CpuCopy32
+ mov r0, #0x22
+ lsl r0, r0, #4
+ ldr r5, [r4, r0]
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020031FC
+ mov r2, #2
+ add r1, r5, #0
+ lsl r2, r2, #8
+ bl MIi_CpuCopy32
+ mov r0, #0x19
+ lsl r0, r0, #0x16
+ str r0, [sp, #0x24]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r0, [r0]
+ bl FUN_02020350
+ ldr r1, [r0, #4]
+ ldr r0, [sp, #0x24]
+ add r0, r0, r1
+ str r0, [sp, #0x24]
+ mov r0, #0x14
+ str r0, [sp, #0x28]
+ lsl r0, r0, #0xb
+ str r0, [sp, #0xc]
+_02231038:
+ mov r0, #0x10
+ mov ip, r0
+ lsl r0, r0, #6
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x28]
+ mov r7, #1
+ sub r0, #0x14
+ lsl r1, r0, #8
+ ldr r0, [sp, #0x24]
+ add r0, r0, r1
+ str r0, [sp, #0x10]
+_0223104E:
+ mov r0, ip
+ sub r0, #0x10
+ ldr r1, [sp, #0x10]
+ lsl r3, r0, #5
+ add r3, r1, r3
+ ldr r5, [sp, #0xc]
+ ldr r1, [sp, #0x14]
+ mov r2, #0
+ add r6, r5, r1
+_02231060:
+ cmp r0, #8
+ bge _02231088
+ add r1, r2, #0
+ tst r1, r7
+ beq _0223107A
+ lsr r1, r2, #0x1f
+ add r1, r2, r1
+ asr r1, r1, #1
+ ldrb r5, [r3, r1]
+ mov r1, #0xf0
+ and r1, r5
+ asr r1, r1, #4
+ b _022310B6
+_0223107A:
+ lsr r1, r2, #0x1f
+ add r1, r2, r1
+ asr r1, r1, #1
+ ldrb r5, [r3, r1]
+ mov r1, #0xf
+ and r1, r5
+ b _022310B6
+_02231088:
+ mov r1, #1
+ tst r1, r2
+ beq _022310A4
+ lsr r1, r2, #0x1f
+ add r1, r2, r1
+ asr r1, r1, #1
+ add r5, r3, r1
+ mov r1, #7
+ lsl r1, r1, #8
+ ldrb r5, [r5, r1]
+ mov r1, #0xf0
+ and r1, r5
+ asr r1, r1, #4
+ b _022310B6
+_022310A4:
+ lsr r1, r2, #0x1f
+ add r1, r2, r1
+ asr r1, r1, #1
+ add r5, r3, r1
+ mov r1, #7
+ lsl r1, r1, #8
+ ldrb r5, [r5, r1]
+ mov r1, #0xf
+ and r1, r5
+_022310B6:
+ cmp r1, #0
+ beq _022310C6
+ mov r5, #0x87
+ lsl r5, r5, #2
+ ldr r5, [r4, r5]
+ add r1, #0x70
+ add r5, r6, r5
+ strb r1, [r2, r5]
+_022310C6:
+ add r2, r2, #1
+ cmp r2, #0x40
+ blt _02231060
+ ldr r0, [sp, #0x14]
+ add r0, #0x40
+ str r0, [sp, #0x14]
+ mov r0, ip
+ add r0, r0, #1
+ mov ip, r0
+ cmp r0, #0x20
+ blt _0223104E
+ mov r1, #2
+ ldr r0, [sp, #0xc]
+ lsl r1, r1, #0xa
+ add r0, r0, r1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x28]
+ add r0, r0, #1
+ str r0, [sp, #0x28]
+ cmp r0, #0x1c
+ blt _02231038
+ mov r0, #0x19
+ lsl r0, r0, #0x16
+ str r0, [sp, #8]
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r0, [r0]
+ bl FUN_02020350
+ ldr r1, [r0, #4]
+ ldr r0, [sp, #8]
+ mov r7, #0x26
+ add r0, r0, r1
+ str r0, [sp, #8]
+ mov r3, #0
+ mov r0, #0xf
+ mov r1, #0xf0
+ lsl r7, r7, #0xa
+ mov r2, #1
+_02231116:
+ add r5, r3, #0
+ tst r5, r2
+ beq _0223112C
+ lsr r5, r3, #0x1f
+ add r5, r3, r5
+ asr r6, r5, #1
+ ldr r5, [sp, #8]
+ ldrb r5, [r5, r6]
+ and r5, r1
+ asr r5, r5, #4
+ b _02231138
+_0223112C:
+ lsr r5, r3, #0x1f
+ add r5, r3, r5
+ asr r6, r5, #1
+ ldr r5, [sp, #8]
+ ldrb r5, [r5, r6]
+ and r5, r0
+_02231138:
+ cmp r5, #0
+ beq _02231148
+ mov r6, #0x87
+ lsl r6, r6, #2
+ ldr r6, [r4, r6]
+ add r5, #0x70
+ add r6, r6, r3
+ strb r5, [r6, r7]
+_02231148:
+ mov r5, #2
+ add r3, r3, #1
+ lsl r5, r5, #0xa
+ cmp r3, r5
+ blt _02231116
+ mov r0, #0x1c
+ str r0, [sp, #4]
+ lsl r0, r0, #0xb
+ str r0, [sp, #0x18]
+_0223115A:
+ ldr r0, [sp, #4]
+ mov r2, #0
+ sub r0, #0x1c
+ lsl r1, r0, #8
+ ldr r0, [sp, #8]
+ str r2, [sp, #0x20]
+ add r0, r0, r1
+ str r0, [sp, #0x1c]
+ mov r7, #1
+_0223116C:
+ asr r0, r2, #2
+ lsr r0, r0, #0x1d
+ add r0, r2, r0
+ asr r0, r0, #3
+ lsl r1, r0, #0xa
+ ldr r0, [sp, #0x1c]
+ lsr r5, r2, #0x1f
+ add r6, r0, r1
+ lsl r1, r2, #0x1d
+ sub r1, r1, r5
+ mov r0, #0x1d
+ ror r1, r0
+ add r0, r5, r1
+ lsl r0, r0, #5
+ ldr r5, [sp, #0x18]
+ ldr r1, [sp, #0x20]
+ mov r3, #0
+ add r0, r6, r0
+ add r1, r5, r1
+_02231192:
+ add r5, r3, #0
+ tst r5, r7
+ beq _022311AE
+ lsr r5, r3, #0x1f
+ add r5, r3, r5
+ asr r5, r5, #1
+ add r6, r0, r5
+ mov r5, #1
+ lsl r5, r5, #0xa
+ ldrb r6, [r6, r5]
+ mov r5, #0xf0
+ and r5, r6
+ asr r5, r5, #4
+ b _022311C0
+_022311AE:
+ lsr r5, r3, #0x1f
+ add r5, r3, r5
+ asr r5, r5, #1
+ add r6, r0, r5
+ mov r5, #1
+ lsl r5, r5, #0xa
+ ldrb r6, [r6, r5]
+ mov r5, #0xf
+ and r5, r6
+_022311C0:
+ cmp r5, #0
+ beq _022311D0
+ mov r6, #0x87
+ lsl r6, r6, #2
+ ldr r6, [r4, r6]
+ add r5, #0x70
+ add r6, r1, r6
+ strb r5, [r3, r6]
+_022311D0:
+ add r3, r3, #1
+ cmp r3, #0x40
+ blt _02231192
+ ldr r0, [sp, #0x20]
+ add r2, r2, #1
+ add r0, #0x40
+ str r0, [sp, #0x20]
+ cmp r2, #0x18
+ blt _0223116C
+ mov r3, #2
+ ldr r0, [sp, #0x18]
+ lsl r3, r3, #0xa
+ add r0, r0, r3
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #0x20
+ blt _0223115A
+ mov r0, #0
+ mov r2, #0x87
+ str r0, [sp]
+ lsl r2, r2, #2
+ ldr r0, [r4, #4]
+ ldr r2, [r4, r2]
+ mov r1, #3
+ lsl r3, r3, #5
+ bl FUN_02017E14
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD11_0225840C
+ mov r0, #0x63
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD11_0225840C
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02231224: .word 0x06010000
+
+ thumb_func_start MOD11_02231228
+MOD11_02231228: ; 0x02231228
+ mov r1, #0x87
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_02231230
+MOD11_02231230: ; 0x02231230
+ mov r1, #0x22
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_02231238
+MOD11_02231238: ; 0x02231238
+ ldr r1, _02231240 ; =0x00002424
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_02231240: .word 0x00002424
+
+ thumb_func_start MOD11_02231244
+MOD11_02231244: ; 0x02231244
+ ldr r1, _0223124C ; =0x00002224
+ add r0, r0, r1
+ bx lr
+ nop
+_0223124C: .word 0x00002224
+
+ thumb_func_start MOD11_02231250
+MOD11_02231250: ; 0x02231250
+ ldr r1, _02231258 ; =0x00002304
+ add r0, r0, r1
+ bx lr
+ nop
+_02231258: .word 0x00002304
+
+ thumb_func_start MOD11_0223125C
+MOD11_0223125C: ; 0x0223125C
+ ldr r1, _02231264 ; =0x00002428
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_02231264: .word 0x00002428
+
+ thumb_func_start MOD11_02231268
+MOD11_02231268: ; 0x02231268
+ ldr r1, _02231270 ; =0x0000241D
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_02231270: .word 0x0000241D
+
+ thumb_func_start MOD11_02231274
+MOD11_02231274: ; 0x02231274
+ ldr r2, _0223127C ; =0x0000241D
+ strb r1, [r0, r2]
+ bx lr
+ nop
+_0223127C: .word 0x0000241D
+
+ thumb_func_start MOD11_02231280
+MOD11_02231280: ; 0x02231280
+ ldr r1, _02231288 ; =0x0000242C
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_02231288: .word 0x0000242C
+
+ thumb_func_start MOD11_0223128C
+MOD11_0223128C: ; 0x0223128C
+ mov r2, #0x86
+ lsl r2, r2, #2
+ ldr r3, _02231298 ; =FUN_0202A0E8
+ ldr r0, [r0, r2]
+ bx r3
+ nop
+_02231298: .word FUN_0202A0E8
+
+ thumb_func_start MOD11_0223129C
+MOD11_0223129C: ; 0x0223129C
+ mov r1, #0x86
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ ldr r3, _022312A8 ; =FUN_0202A170
+ mov r1, #0x16
+ bx r3
+ .align 2, 0
+_022312A8: .word FUN_0202A170
+
+ thumb_func_start MOD11_022312AC
+MOD11_022312AC: ; 0x022312AC
+ ldr r2, _022312B4 ; =0x0000243C
+ str r1, [r0, r2]
+ bx lr
+ nop
+_022312B4: .word 0x0000243C
+
+ thumb_func_start MOD11_022312B8
+MOD11_022312B8: ; 0x022312B8
+ mov r2, #0x91
+ lsl r2, r2, #6
+ strb r1, [r0, r2]
+ bx lr
+
+ thumb_func_start MOD11_022312C0
+MOD11_022312C0: ; 0x022312C0
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_022312C8
+MOD11_022312C8: ; 0x022312C8
+ mov r2, #0x6f
+ lsl r2, r2, #2
+ str r1, [r0, r2]
+ bx lr
+
+ thumb_func_start MOD11_022312D0
+MOD11_022312D0: ; 0x022312D0
+ mov r2, #0x73
+ lsl r2, r2, #2
+ add r2, r0, r2
+ lsl r0, r1, #4
+ add r0, r2, r0
+ bx lr
+
+ thumb_func_start MOD11_022312DC
+MOD11_022312DC: ; 0x022312DC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ cmp r5, #4
+ blt _022312EA
+ bl ErrorHandling
+_022312EA:
+ lsl r0, r5, #4
+ ldr r0, [r4, r0]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022312F0
+MOD11_022312F0: ; 0x022312F0
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ cmp r4, #4
+ blt _02231300
+ bl ErrorHandling
+_02231300:
+ lsl r0, r4, #4
+ add r0, r5, r0
+ str r6, [r0, #4]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02231308
+MOD11_02231308: ; 0x02231308
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ cmp r4, #4
+ blt _02231318
+ bl ErrorHandling
+_02231318:
+ lsl r0, r4, #4
+ add r0, r5, r0
+ str r6, [r0, #8]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02231320
+MOD11_02231320: ; 0x02231320
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ cmp r4, #4
+ blt _02231330
+ bl ErrorHandling
+_02231330:
+ lsl r0, r4, #4
+ add r0, r5, r0
+ str r6, [r0, #0xc]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02231338
+MOD11_02231338: ; 0x02231338
+ ldr r2, _02231340 ; =0x000023F9
+ strb r1, [r0, r2]
+ bx lr
+ nop
+_02231340: .word 0x000023F9
+
+ thumb_func_start MOD11_02231344
+MOD11_02231344: ; 0x02231344
+ ldr r2, _0223134C ; =0x000023F0
+ str r1, [r0, r2]
+ bx lr
+ nop
+_0223134C: .word 0x000023F0
+
+ thumb_func_start MOD11_02231350
+MOD11_02231350: ; 0x02231350
+ ldr r2, _02231358 ; =0x000023F4
+ str r1, [r0, r2]
+ bx lr
+ nop
+_02231358: .word 0x000023F4
+
+ thumb_func_start MOD11_0223135C
+MOD11_0223135C: ; 0x0223135C
+ ldr r2, _02231364 ; =0x000023F0
+ ldr r0, [r0, r2]
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_02231364: .word 0x000023F0
+
+ thumb_func_start MOD11_02231368
+MOD11_02231368: ; 0x02231368
+ ldr r2, _02231370 ; =0x000023F4
+ ldr r0, [r0, r2]
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_02231370: .word 0x000023F4
+
+ thumb_func_start MOD11_02231374
+MOD11_02231374: ; 0x02231374
+ ldr r2, _0223137C ; =0x000023FA
+ strb r1, [r0, r2]
+ bx lr
+ nop
+_0223137C: .word 0x000023FA
+
+ thumb_func_start MOD11_02231380
+MOD11_02231380: ; 0x02231380
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r3, _0223138C ; =MOD11_02253A70
+ ldr r0, [r0, #0x34]
+ bx r3
+ nop
+_0223138C: .word MOD11_02253A70
+
+ thumb_func_start MOD11_02231390
+MOD11_02231390: ; 0x02231390
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ mov r7, #0
+ cmp r0, #0
+ ble _022313DC
+ add r5, r6, #0
+_0223139E:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A70
+ add r4, r0, #0
+ str r6, [r4, #0xc]
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A4C
+ str r0, [sp]
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD11_02257F6C
+ add r1, r4, #0
+ add r1, #0x25
+ strb r0, [r1]
+ add r0, r4, #0
+ bl MOD11_02256FB0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_022572AC
+ ldr r0, [r6, #0x44]
+ add r7, r7, #1
+ add r5, r5, #4
+ cmp r7, r0
+ blt _0223139E
+_022313DC:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022313E0
+MOD11_022313E0: ; 0x022313E0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ mov r4, #0
+ cmp r0, #0
+ ble _0223140C
+ add r5, r6, #0
+ mov r7, #1
+_022313F0:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A70
+ ldr r1, [r0, #0x28]
+ cmp r1, #0
+ beq _02231402
+ add r1, r7, #0
+ bl MOD11_022572AC
+_02231402:
+ ldr r0, [r6, #0x44]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _022313F0
+_0223140C:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02231410
+MOD11_02231410: ; 0x02231410
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ mov r4, #0
+ cmp r0, #0
+ ble _02231436
+ add r5, r6, #0
+ add r7, r4, #0
+_02231420:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A70
+ add r1, r7, #0
+ bl MOD11_022572AC
+ ldr r0, [r6, #0x44]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _02231420
+_02231436:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02231438
+MOD11_02231438: ; 0x02231438
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ mov r4, #0
+ cmp r0, #0
+ ble _0223145A
+ add r5, r6, #0
+_02231446:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A70
+ bl MOD11_02257030
+ ldr r0, [r6, #0x44]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _02231446
+_0223145A:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0223145C
+MOD11_0223145C: ; 0x0223145C
+ ldr r1, _02231464 ; =0x0000241C
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_02231464: .word 0x0000241C
+
+ thumb_func_start MOD11_02231468
+MOD11_02231468: ; 0x02231468
+ ldr r2, _02231470 ; =0x0000241C
+ strb r1, [r0, r2]
+ bx lr
+ nop
+_02231470: .word 0x0000241C
+
+ thumb_func_start MOD11_02231474
+MOD11_02231474: ; 0x02231474
+ ldr r1, _02231480 ; =0x000023FB
+ ldrb r0, [r0, r1]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1e
+ bx lr
+ nop
+_02231480: .word 0x000023FB
+
+ thumb_func_start MOD11_02231484
+MOD11_02231484: ; 0x02231484
+ push {r3, r4}
+ ldr r3, _0223149C ; =0x000023FB
+ lsl r1, r1, #0x1e
+ ldrb r4, [r0, r3]
+ mov r2, #0x18
+ lsr r1, r1, #0x1b
+ bic r4, r2
+ orr r1, r4
+ strb r1, [r0, r3]
+ pop {r3, r4}
+ bx lr
+ nop
+_0223149C: .word 0x000023FB
+
+ thumb_func_start MOD11_022314A0
+MOD11_022314A0: ; 0x022314A0
+ ldr r1, _022314AC ; =0x000023FB
+ ldrb r0, [r0, r1]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1d
+ bx lr
+ nop
+_022314AC: .word 0x000023FB
+
+ thumb_func_start MOD11_022314B0
+MOD11_022314B0: ; 0x022314B0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ cmp r4, #0xf
+ blo _022314BE
+ bl ErrorHandling
+_022314BE:
+ ldr r1, _022314D0 ; =0x000023FB
+ mov r0, #0xe0
+ ldrb r2, [r5, r1]
+ bic r2, r0
+ lsl r0, r4, #0x1d
+ lsr r0, r0, #0x18
+ orr r0, r2
+ strb r0, [r5, r1]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022314D0: .word 0x000023FB
+
+ thumb_func_start MOD11_022314D4
+MOD11_022314D4: ; 0x022314D4
+ ldr r2, _022314DC ; =0x00002438
+ str r1, [r0, r2]
+ bx lr
+ nop
+_022314DC: .word 0x00002438
+
+ thumb_func_start MOD11_022314E0
+MOD11_022314E0: ; 0x022314E0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ add r7, r1, #0
+ mov r4, #0
+ cmp r0, #0
+ ble _02231502
+ add r5, r6, #0
+_022314F0:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A4C
+ strb r4, [r7, r0]
+ ldr r0, [r6, #0x44]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _022314F0
+_02231502:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02231504
+MOD11_02231504: ; 0x02231504
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r6, r1, #0
+ mov r1, #0
+ mov r0, #0xff
+_0223150E:
+ strb r0, [r6, r1]
+ add r1, r1, #1
+ cmp r1, #4
+ blt _0223150E
+ ldr r0, [r7, #0x44]
+ mov r5, #0
+ cmp r0, #0
+ ble _02231532
+ add r4, r7, #0
+_02231520:
+ ldr r0, [r4, #0x34]
+ bl MOD11_02253A4C
+ strb r0, [r6, r5]
+ ldr r0, [r7, #0x44]
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, r0
+ blt _02231520
+_02231532:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02231534
+MOD11_02231534: ; 0x02231534
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r0, #0
+ add r6, r1, #0
+ add r5, r0, #0
+_0223153E:
+ add r0, r0, #1
+ stmia r1!, {r5}
+ cmp r0, #4
+ blt _0223153E
+ ldr r0, [r7, #0x44]
+ cmp r0, #0
+ ble _02231560
+ add r4, r7, #0
+_0223154E:
+ ldr r0, [r4, #0x34]
+ bl MOD11_02253A64
+ stmia r6!, {r0}
+ ldr r0, [r7, #0x44]
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, r0
+ blt _0223154E
+_02231560:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02231564
+MOD11_02231564: ; 0x02231564
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ add r7, r1, #0
+ mov r4, #0
+ cmp r0, #0
+ ble _0223158A
+ add r5, r6, #0
+_02231574:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A70
+ add r1, r7, #0
+ bl MOD11_02257264
+ ldr r0, [r6, #0x44]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _02231574
+_0223158A:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0223158C
+MOD11_0223158C: ; 0x0223158C
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ bl FUN_020239F4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ add r0, r5, #0
+ bl FUN_02069AEC
+ ldr r1, _022315BC ; =0x0225DC1C
+ lsl r0, r0, #2
+ ldrb r1, [r1, r4]
+ add r4, r1, #0
+ mul r4, r0
+ add r0, r6, #0
+ bl FUN_02023A10
+ cmp r4, r0
+ bls _022315B8
+ add r4, r0, #0
+_022315B8:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022315BC: .word 0x0225DC1C
+
+ thumb_func_start MOD11_022315C0
+MOD11_022315C0: ; 0x022315C0
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ lsl r0, r6, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x34]
+ bl MOD11_02253A4C
+ add r4, r0, #0
+ ldr r1, [r5, #0x30]
+ add r0, r5, #0
+ mov r2, #2
+ add r3, r6, #0
+ bl MOD11_0224C474
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02230014
+ add r6, r0, #0
+ ldr r0, [r5, #0x2c]
+ mov r1, #0x84
+ tst r1, r0
+ bne _02231606
+ mov r1, #1
+ tst r1, r4
+ bne _022315FE
+ sub r0, #0x4a
+ cmp r0, #1
+ bhi _02231606
+_022315FE:
+ ldr r0, [r5, #0x60]
+ add r1, r6, #0
+ bl FUN_0202498C
+_02231606:
+ mov r0, #1
+ tst r0, r4
+ bne _02231626
+ add r0, r6, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ mov r1, #0x67
+ lsl r1, r1, #2
+ cmp r0, r1
+ bne _02231626
+ ldr r0, [r5, #0x60]
+ add r1, r6, #0
+ bl FUN_02024AF0
+_02231626:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02231628
+MOD11_02231628: ; 0x02231628
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x34]
+ bl MOD11_02253A4C
+ ldr r2, [r5, #0x2c]
+ mov r1, #0x84
+ tst r1, r2
+ bne _02231664
+ mov r1, #1
+ tst r0, r1
+ beq _02231664
+ ldr r1, [r5, #0x30]
+ add r0, r5, #0
+ mov r2, #2
+ add r3, r4, #0
+ bl MOD11_0224C474
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02230014
+ add r1, r0, #0
+ ldr r0, [r5, #0x60]
+ bl FUN_02024AF0
+_02231664:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02231668
+MOD11_02231668: ; 0x02231668
+ ldr r3, _02231674 ; =FUN_02024594
+ lsl r1, r1, #0x10
+ ldr r0, [r0, #0x60]
+ lsr r1, r1, #0x10
+ bx r3
+ nop
+_02231674: .word FUN_02024594
+
+ thumb_func_start MOD11_02231678
+MOD11_02231678: ; 0x02231678
+ ldr r0, _02231680 ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_02231680: .word 0x04000050
+
+ thumb_func_start MOD11_02231684
+MOD11_02231684: ; 0x02231684
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r1, #0
+ str r2, [sp, #0xc]
+ add r7, r3, #0
+ bl MOD11_0222FF6C
+ add r6, r0, #0
+ ldr r1, [r5, #0x2c]
+ mov r0, #0x80
+ tst r0, r1
+ beq _0223174C
+ ldr r0, _02231780 ; =0x00002710
+ cmp r4, r0
+ bne _022316F6
+ cmp r7, #0x64
+ bne _022316BC
+ ldr r0, [sp, #0xc]
+ mov r1, #0x34
+ add r5, #0xd0
+ mul r1, r0
+ add r0, r5, r1
+ mov r1, #5
+ bl FUN_020137D4
+ b _022316CC
+_022316BC:
+ ldr r0, [sp, #0xc]
+ mov r1, #0x34
+ add r5, #0xd8
+ mul r1, r0
+ add r0, r5, r1
+ mov r1, #5
+ bl FUN_020137D4
+_022316CC:
+ add r4, r0, #0
+ add r0, r6, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0
+ ldr r0, [sp, #0x28]
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02231784 ; =MOD11_0223220C
+ mov r1, #1
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ bl FUN_0201BD84
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_02021A20
+ b _02231778
+_022316F6:
+ cmp r7, #0x64
+ bne _02231702
+ lsl r0, r4, #1
+ add r0, r4, r0
+ add r4, r0, #1
+ b _02231708
+_02231702:
+ lsl r0, r4, #1
+ add r0, r4, r0
+ add r4, r0, #2
+_02231708:
+ ldr r2, _02231788 ; =0x0000022B
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #5
+ bl NewMsgDataFromNarc
+ add r1, r4, #0
+ add r7, r0, #0
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r6, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0
+ ldr r0, [sp, #0x28]
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02231784 ; =MOD11_0223220C
+ mov r1, #1
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ bl FUN_0201BD84
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl DestroyMsgData
+ b _02231778
+_0223174C:
+ ldr r2, [r5, #0x18]
+ add r0, r4, #0
+ add r1, r7, #0
+ mov r3, #5
+ bl FUN_0206AD4C
+ add r0, r6, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0
+ ldr r0, [sp, #0x28]
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02231784 ; =MOD11_0223220C
+ mov r1, #1
+ str r0, [sp, #8]
+ ldr r2, [r5, #0x18]
+ add r0, r6, #0
+ bl FUN_0201BD84
+ add r5, r0, #0
+_02231778:
+ lsl r0, r5, #0x18
+ lsr r0, r0, #0x18
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02231780: .word 0x00002710
+_02231784: .word MOD11_0223220C
+_02231788: .word 0x0000022B
+
+ thumb_func_start MOD11_0223178C
+MOD11_0223178C: ; 0x0223178C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r1, [sp, #0xc]
+ add r5, r0, #0
+ add r4, r2, #0
+ mov r1, #0
+ add r6, r3, #0
+ bl MOD11_0222FF6C
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02231850
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02231A4C
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD11_022321EC
+ add r0, r7, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, _022317DC ; =MOD11_0223220C
+ str r6, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, [r5, #0x18]
+ add r0, r7, #0
+ mov r1, #1
+ bl FUN_0201BD84
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022317DC: .word MOD11_0223220C
+
+ thumb_func_start MOD11_022317E0
+MOD11_022317E0: ; 0x022317E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r3, #0
+ add r4, r1, #0
+ add r5, r0, #0
+ add r1, r7, #0
+ add r6, r2, #0
+ bl MOD11_02231850
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02231A4C
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_022321EC
+ ldr r1, [sp, #0x28]
+ mov r0, #1
+ tst r0, r1
+ beq _02231814
+ add r0, r4, #0
+ mov r1, #0xff
+ bl FUN_02019620
+_02231814:
+ ldr r1, [sp, #0x28]
+ mov r0, #2
+ tst r0, r1
+ beq _0223182C
+ mov r0, #0
+ ldr r1, [r5, #0x18]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldr r1, [sp, #0x2c]
+ sub r3, r1, r0
+ b _0223182E
+_0223182C:
+ mov r3, #0
+_0223182E:
+ ldr r0, [sp, #0x24]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #4]
+ ldr r0, _0223184C ; =MOD11_0223220C
+ str r0, [sp, #8]
+ add r0, r4, #0
+ ldr r4, [sp, #0x20]
+ ldr r2, [r5, #0x18]
+ add r3, r4, r3
+ bl FUN_0201BD84
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223184C: .word MOD11_0223220C
+
+ thumb_func_start MOD11_02231850
+MOD11_02231850: ; 0x02231850
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ bl MOD11_0222FF74
+ add r5, r0, #0
+ ldrb r0, [r4, #1]
+ mov r1, #0x80
+ tst r1, r0
+ bne _02231876
+ mov r1, #0x40
+ tst r1, r0
+ beq _02231880
+ ldr r1, [r4, #0x20]
+ add r0, r6, #0
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _02231878
+_02231876:
+ b _02231A4A
+_02231878:
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02231880:
+ mov r1, #0x3f
+ and r0, r1
+ cmp r0, #0x3c
+ bls _0223188A
+ b _02231A46
+_0223188A:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02231896: ; jump table
+ .short _02231A4A - _02231896 - 2 ; case 0
+ .short _02231910 - _02231896 - 2 ; case 1
+ .short _02231928 - _02231896 - 2 ; case 2
+ .short _02231A4A - _02231896 - 2 ; case 3
+ .short _02231A4A - _02231896 - 2 ; case 4
+ .short _02231A4A - _02231896 - 2 ; case 5
+ .short _02231A4A - _02231896 - 2 ; case 6
+ .short _02231A4A - _02231896 - 2 ; case 7
+ .short _02231A4A - _02231896 - 2 ; case 8
+ .short _0223198A - _02231896 - 2 ; case 9
+ .short _02231928 - _02231896 - 2 ; case 10
+ .short _02231928 - _02231896 - 2 ; case 11
+ .short _02231928 - _02231896 - 2 ; case 12
+ .short _02231928 - _02231896 - 2 ; case 13
+ .short _02231928 - _02231896 - 2 ; case 14
+ .short _02231928 - _02231896 - 2 ; case 15
+ .short _02231928 - _02231896 - 2 ; case 16
+ .short _02231928 - _02231896 - 2 ; case 17
+ .short _02231928 - _02231896 - 2 ; case 18
+ .short _02231928 - _02231896 - 2 ; case 19
+ .short _0223194E - _02231896 - 2 ; case 20
+ .short _02231966 - _02231896 - 2 ; case 21
+ .short _02231A4A - _02231896 - 2 ; case 22
+ .short _02231966 - _02231896 - 2 ; case 23
+ .short _02231A4A - _02231896 - 2 ; case 24
+ .short _02231A4A - _02231896 - 2 ; case 25
+ .short _02231A4A - _02231896 - 2 ; case 26
+ .short _02231A4A - _02231896 - 2 ; case 27
+ .short _02231A4A - _02231896 - 2 ; case 28
+ .short _02231A4A - _02231896 - 2 ; case 29
+ .short _02231A4A - _02231896 - 2 ; case 30
+ .short _0223198A - _02231896 - 2 ; case 31
+ .short _0223198A - _02231896 - 2 ; case 32
+ .short _0223198A - _02231896 - 2 ; case 33
+ .short _02231928 - _02231896 - 2 ; case 34
+ .short _02231928 - _02231896 - 2 ; case 35
+ .short _022319E8 - _02231896 - 2 ; case 36
+ .short _02231928 - _02231896 - 2 ; case 37
+ .short _02231928 - _02231896 - 2 ; case 38
+ .short _02231928 - _02231896 - 2 ; case 39
+ .short _02231928 - _02231896 - 2 ; case 40
+ .short _02231928 - _02231896 - 2 ; case 41
+ .short _02231928 - _02231896 - 2 ; case 42
+ .short _022319E8 - _02231896 - 2 ; case 43
+ .short _02231928 - _02231896 - 2 ; case 44
+ .short _02231928 - _02231896 - 2 ; case 45
+ .short _02231928 - _02231896 - 2 ; case 46
+ .short _02231928 - _02231896 - 2 ; case 47
+ .short _02231966 - _02231896 - 2 ; case 48
+ .short _02231A4A - _02231896 - 2 ; case 49
+ .short _02231A4A - _02231896 - 2 ; case 50
+ .short _02231A4A - _02231896 - 2 ; case 51
+ .short _022319E8 - _02231896 - 2 ; case 52
+ .short _022319E8 - _02231896 - 2 ; case 53
+ .short _022319E8 - _02231896 - 2 ; case 54
+ .short _022319E8 - _02231896 - 2 ; case 55
+ .short _02231A4A - _02231896 - 2 ; case 56
+ .short _02231A4A - _02231896 - 2 ; case 57
+ .short _02231A4A - _02231896 - 2 ; case 58
+ .short _02231A4A - _02231896 - 2 ; case 59
+ .short _02231A4A - _02231896 - 2 ; case 60
+_02231910:
+ ldr r1, [r4, #4]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231944
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02231928:
+ ldr r1, [r4, #4]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231944
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ mov r0, #1
+ tst r0, r5
+ bne _02231946
+_02231944:
+ b _02231A4A
+_02231946:
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_0223194E:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02231966:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ mov r0, #1
+ tst r0, r5
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_0223198A:
+ ldr r1, [r4, #4]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _022319C4
+ ldrh r0, [r4, #2]
+ add r0, r0, #3
+ strh r0, [r4, #2]
+ mov r0, #1
+ tst r0, r5
+ beq _022319AC
+ ldrh r0, [r4, #2]
+ add r0, r0, #2
+ strh r0, [r4, #2]
+_022319AC:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_022319C4:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ mov r0, #1
+ tst r0, r5
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_022319E8:
+ ldr r1, [r4, #4]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A22
+ ldrh r0, [r4, #2]
+ add r0, r0, #3
+ strh r0, [r4, #2]
+ mov r0, #1
+ tst r0, r5
+ beq _02231A0A
+ ldrh r0, [r4, #2]
+ add r0, r0, #2
+ strh r0, [r4, #2]
+_02231A0A:
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02231A22:
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ mov r0, #1
+ tst r0, r5
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02231A46:
+ bl ErrorHandling
+_02231A4A:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02231A4C
+MOD11_02231A4C: ; 0x02231A4C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r2, [r4, #1]
+ mov r1, #0x3f
+ add r5, r0, #0
+ and r1, r2
+ cmp r1, #0x3c
+ bls _02231A5E
+ b _022320C2
+_02231A5E:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02231A6A: ; jump table
+ .short _022320C6 - _02231A6A - 2 ; case 0
+ .short _022320C6 - _02231A6A - 2 ; case 1
+ .short _02231AE4 - _02231A6A - 2 ; case 2
+ .short _02231AEE - _02231A6A - 2 ; case 3
+ .short _02231AF8 - _02231A6A - 2 ; case 4
+ .short _02231B02 - _02231A6A - 2 ; case 5
+ .short _02231B0C - _02231A6A - 2 ; case 6
+ .short _02231B16 - _02231A6A - 2 ; case 7
+ .short _02231B22 - _02231A6A - 2 ; case 8
+ .short _02231B2C - _02231A6A - 2 ; case 9
+ .short _02231B40 - _02231A6A - 2 ; case 10
+ .short _02231B54 - _02231A6A - 2 ; case 11
+ .short _02231B68 - _02231A6A - 2 ; case 12
+ .short _02231B7C - _02231A6A - 2 ; case 13
+ .short _02231B90 - _02231A6A - 2 ; case 14
+ .short _02231BA4 - _02231A6A - 2 ; case 15
+ .short _02231BB8 - _02231A6A - 2 ; case 16
+ .short _02231BCC - _02231A6A - 2 ; case 17
+ .short _02231BE0 - _02231A6A - 2 ; case 18
+ .short _02231BF4 - _02231A6A - 2 ; case 19
+ .short _02231AEE - _02231A6A - 2 ; case 20
+ .short _02231C08 - _02231A6A - 2 ; case 21
+ .short _02231C1C - _02231A6A - 2 ; case 22
+ .short _02231C30 - _02231A6A - 2 ; case 23
+ .short _02231C44 - _02231A6A - 2 ; case 24
+ .short _02231C58 - _02231A6A - 2 ; case 25
+ .short _02231C6C - _02231A6A - 2 ; case 26
+ .short _02231C80 - _02231A6A - 2 ; case 27
+ .short _02231C94 - _02231A6A - 2 ; case 28
+ .short _02231CA8 - _02231A6A - 2 ; case 29
+ .short _02231CBC - _02231A6A - 2 ; case 30
+ .short _02231CD0 - _02231A6A - 2 ; case 31
+ .short _02231CEE - _02231A6A - 2 ; case 32
+ .short _02231D0C - _02231A6A - 2 ; case 33
+ .short _02231D2A - _02231A6A - 2 ; case 34
+ .short _02231D48 - _02231A6A - 2 ; case 35
+ .short _02231D66 - _02231A6A - 2 ; case 36
+ .short _02231D84 - _02231A6A - 2 ; case 37
+ .short _02231DA2 - _02231A6A - 2 ; case 38
+ .short _02231DC0 - _02231A6A - 2 ; case 39
+ .short _02231DDE - _02231A6A - 2 ; case 40
+ .short _02231DFC - _02231A6A - 2 ; case 41
+ .short _02231E1A - _02231A6A - 2 ; case 42
+ .short _02231E38 - _02231A6A - 2 ; case 43
+ .short _02231E56 - _02231A6A - 2 ; case 44
+ .short _02231E74 - _02231A6A - 2 ; case 45
+ .short _02231E92 - _02231A6A - 2 ; case 46
+ .short _02231EB0 - _02231A6A - 2 ; case 47
+ .short _02231ECE - _02231A6A - 2 ; case 48
+ .short _02231EEC - _02231A6A - 2 ; case 49
+ .short _02231F0A - _02231A6A - 2 ; case 50
+ .short _02231F28 - _02231A6A - 2 ; case 51
+ .short _02231F46 - _02231A6A - 2 ; case 52
+ .short _02231F6E - _02231A6A - 2 ; case 53
+ .short _02231F96 - _02231A6A - 2 ; case 54
+ .short _02231FBE - _02231A6A - 2 ; case 55
+ .short _02231FE6 - _02231A6A - 2 ; case 56
+ .short _0223200E - _02231A6A - 2 ; case 57
+ .short _02232036 - _02231A6A - 2 ; case 58
+ .short _0223205E - _02231A6A - 2 ; case 59
+ .short _02232086 - _02231A6A - 2 ; case 60
+_02231AE4:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231AEE:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231AF8:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_02232160
+ pop {r3, r4, r5, pc}
+_02231B02:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231B0C:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_02232104
+ pop {r3, r4, r5, pc}
+_02231B16:
+ ldr r2, [r4, #4]
+ ldr r3, [r4, #0x1c]
+ mov r1, #0
+ bl MOD11_0223211C
+ pop {r3, r4, r5, pc}
+_02231B22:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ pop {r3, r4, r5, pc}
+_02231B2C:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231B40:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231B54:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ pop {r3, r4, r5, pc}
+_02231B68:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232160
+ pop {r3, r4, r5, pc}
+_02231B7C:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232148
+ pop {r3, r4, r5, pc}
+_02231B90:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232178
+ pop {r3, r4, r5, pc}
+_02231BA4:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231BB8:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223219C
+ pop {r3, r4, r5, pc}
+_02231BCC:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232104
+ pop {r3, r4, r5, pc}
+_02231BE0:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ pop {r3, r4, r5, pc}
+_02231BF4:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321DC
+ pop {r3, r4, r5, pc}
+_02231C08:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320EC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231C1C:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320EC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231C30:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_02232154
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231C44:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320F8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231C58:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_02232104
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232104
+ pop {r3, r4, r5, pc}
+_02231C6C:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ pop {r3, r4, r5, pc}
+_02231C80:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231C94:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231CA8:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232104
+ pop {r3, r4, r5, pc}
+_02231CBC:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ pop {r3, r4, r5, pc}
+_02231CD0:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231CEE:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_02232154
+ pop {r3, r4, r5, pc}
+_02231D0C:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231D2A:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320EC
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231D48:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320EC
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_02232104
+ pop {r3, r4, r5, pc}
+_02231D66:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231D84:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231DA2:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231DC0:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_02232160
+ pop {r3, r4, r5, pc}
+_02231DDE:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_02232148
+ pop {r3, r4, r5, pc}
+_02231DFC:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0223216C
+ pop {r3, r4, r5, pc}
+_02231E1A:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_02232104
+ pop {r3, r4, r5, pc}
+_02231E38:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231E56:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231E74:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_02232160
+ pop {r3, r4, r5, pc}
+_02231E92:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0223216C
+ pop {r3, r4, r5, pc}
+_02231EB0:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321DC
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022321DC
+ pop {r3, r4, r5, pc}
+_02231ECE:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320F8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022321A0
+ pop {r3, r4, r5, pc}
+_02231EEC:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231F0A:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231F28:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231F46:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231F6E:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_02232154
+ pop {r3, r4, r5, pc}
+_02231F96:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_02232160
+ pop {r3, r4, r5, pc}
+_02231FBE:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231FE6:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022321C4
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_0223200E:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02232036:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022321C4
+ pop {r3, r4, r5, pc}
+_0223205E:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022321AC
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022321C4
+ pop {r3, r4, r5, pc}
+_02232086:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022321AC
+ ldr r2, [r4, #0x14]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD11_022321C4
+ ldr r2, [r4, #0x18]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_022320C2:
+ bl ErrorHandling
+_022320C6:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022320C8
+MOD11_022320C8: ; 0x022320C8
+ push {r3, r4, r5, lr}
+ mov r3, #0xff
+ lsl r3, r3, #8
+ add r4, r1, #0
+ lsl r1, r2, #0x18
+ and r2, r3
+ add r5, r0, #0
+ lsr r1, r1, #0x18
+ asr r2, r2, #8
+ bl MOD11_02230014
+ add r2, r0, #0
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0
+ bl FUN_0200ACF8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022320EC
+MOD11_022320EC: ; 0x022320EC
+ ldr r3, _022320F4 ; =FUN_0200AD5C
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_022320F4: .word FUN_0200AD5C
+
+ thumb_func_start MOD11_022320F8
+MOD11_022320F8: ; 0x022320F8
+ ldr r3, _02232100 ; =FUN_0200AE38
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_02232100: .word FUN_0200AE38
+
+ thumb_func_start MOD11_02232104
+MOD11_02232104: ; 0x02232104
+ push {r3, lr}
+ sub sp, #8
+ mov r3, #0
+ str r3, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ ldr r0, [r0, #0x14]
+ mov r3, #5
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD11_0223211C
+MOD11_0223211C: ; 0x0223211C
+ push {r4, lr}
+ sub sp, #8
+ cmp r3, #0
+ beq _02232134
+ mov r4, #1
+ str r4, [sp]
+ str r4, [sp, #4]
+ ldr r0, [r0, #0x14]
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r4, pc}
+_02232134:
+ mov r3, #1
+ str r3, [sp]
+ str r3, [sp, #4]
+ ldr r0, [r0, #0x14]
+ mov r3, #5
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02232148
+MOD11_02232148: ; 0x02232148
+ ldr r3, _02232150 ; =FUN_0200AF18
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_02232150: .word FUN_0200AF18
+
+ thumb_func_start MOD11_02232154
+MOD11_02232154: ; 0x02232154
+ ldr r3, _0223215C ; =FUN_0200ADCC
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_0223215C: .word FUN_0200ADCC
+
+ thumb_func_start MOD11_02232160
+MOD11_02232160: ; 0x02232160
+ ldr r3, _02232168 ; =FUN_0200AF50
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_02232168: .word FUN_0200AF50
+
+ thumb_func_start MOD11_0223216C
+MOD11_0223216C: ; 0x0223216C
+ ldr r3, _02232174 ; =FUN_0200AF88
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_02232174: .word FUN_0200AF88
+
+ thumb_func_start MOD11_02232178
+MOD11_02232178: ; 0x02232178
+ push {r3, r4, r5, lr}
+ mov r3, #0xff
+ lsl r3, r3, #8
+ add r4, r1, #0
+ lsl r1, r2, #0x18
+ and r2, r3
+ add r5, r0, #0
+ lsr r1, r1, #0x18
+ asr r2, r2, #8
+ bl MOD11_02230014
+ add r2, r0, #0
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0
+ bl FUN_0200AC60
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223219C
+MOD11_0223219C: ; 0x0223219C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_022321A0
+MOD11_022321A0: ; 0x022321A0
+ ldr r3, _022321A8 ; =FUN_0200AFBC
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_022321A8: .word FUN_0200AFBC
+
+ thumb_func_start MOD11_022321AC
+MOD11_022321AC: ; 0x022321AC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r1, r2, #0
+ bl MOD11_02230188
+ add r2, r0, #0
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0
+ bl FUN_0200B0D4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022321C4
+MOD11_022321C4: ; 0x022321C4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r1, r2, #0
+ bl MOD11_02230188
+ add r2, r0, #0
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0
+ bl FUN_0200B144
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022321DC
+MOD11_022321DC: ; 0x022321DC
+ push {r4, lr}
+ add r4, r0, #0
+ add r3, r2, #0
+ ldr r0, [r4, #0x14]
+ ldr r2, [r4, #0x64]
+ bl FUN_0200B410
+ pop {r4, pc}
+
+ thumb_func_start MOD11_022321EC
+MOD11_022321EC: ; 0x022321EC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ ldrh r1, [r2, #2]
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x18]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0223220C
+MOD11_0223220C: ; 0x0223220C
+ push {r4, lr}
+ mov r4, #0
+ cmp r1, #5
+ bhi _02232252
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02232220: ; jump table
+ .short _02232252 - _02232220 - 2 ; case 0
+ .short _0223222C - _02232220 - 2 ; case 1
+ .short _02232234 - _02232220 - 2 ; case 2
+ .short _0223223C - _02232220 - 2 ; case 3
+ .short _02232244 - _02232220 - 2 ; case 4
+ .short _0223224C - _02232220 - 2 ; case 5
+_0223222C:
+ bl FUN_02005514
+ add r4, r0, #0
+ b _02232252
+_02232234:
+ bl FUN_02005CBC
+ add r4, r0, #0
+ b _02232252
+_0223223C:
+ ldr r0, _02232258 ; =0x00000484
+ bl FUN_02005C28
+ b _02232252
+_02232244:
+ ldr r0, _0223225C ; =0x000005E6
+ bl FUN_020054C8
+ b _02232252
+_0223224C:
+ ldr r0, _02232260 ; =0x00000483
+ bl FUN_02005C28
+_02232252:
+ add r0, r4, #0
+ pop {r4, pc}
+ nop
+_02232258: .word 0x00000484
+_0223225C: .word 0x000005E6
+_02232260: .word 0x00000483
+
+ thumb_func_start MOD11_02232264
+MOD11_02232264: ; 0x02232264
+ push {r3, lr}
+ add r2, r1, #0
+ add r2, #0xb4
+ ldr r2, [r2]
+ lsl r2, r2, #2
+ add r3, r1, r2
+ mov r2, #0x27
+ lsl r2, r2, #8
+ ldr r2, [r3, r2]
+ lsl r3, r2, #2
+ ldr r2, _02232280 ; =0x0225DDE4
+ ldr r2, [r2, r3]
+ blx r2
+ pop {r3, pc}
+ .align 2, 0
+_02232280: .word 0x0225DDE4
+
+ thumb_func_start MOD11_02232284
+MOD11_02232284: ; 0x02232284
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_022548F0
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0223229C
+MOD11_0223229C: ; 0x0223229C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ cmp r0, #0
+ beq _022322C2
+ cmp r0, #3
+ beq _0223230E
+ cmp r0, #4
+ beq _022322E0
+_022322C2:
+ mov r5, #0
+ cmp r6, #0
+ ble _0223230E
+_022322C8:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254908
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+ add r5, r5, #1
+ cmp r5, r6
+ blt _022322C8
+ b _0223230E
+_022322E0:
+ mov r5, #0
+ cmp r6, #0
+ ble _0223230E
+ mov r7, #1
+_022322E8:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232314 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _02232308
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254908
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+_02232308:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _022322E8
+_0223230E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02232314: .word 0x00000195
+
+ thumb_func_start MOD11_02232318
+MOD11_02232318: ; 0x02232318
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ cmp r0, #6
+ bhi _02232350
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02232342: ; jump table
+ .short _02232350 - _02232342 - 2 ; case 0
+ .short _022323F4 - _02232342 - 2 ; case 1
+ .short _0223243E - _02232342 - 2 ; case 2
+ .short _0223236E - _02232342 - 2 ; case 3
+ .short _022323B2 - _02232342 - 2 ; case 4
+ .short _02232350 - _02232342 - 2 ; case 5
+ .short _02232488 - _02232342 - 2 ; case 6
+_02232350:
+ mov r5, #0
+ cmp r7, #0
+ ble _0223236C
+_02232356:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254A0C
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+ add r5, r5, #1
+ cmp r5, r7
+ blt _02232356
+_0223236C:
+ b _022324D0
+_0223236E:
+ mov r5, #0
+ cmp r7, #0
+ ble _0223239C
+_02232374:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022324D4 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232396
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254A0C
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+_02232396:
+ add r5, r5, #1
+ cmp r5, r7
+ blt _02232374
+_0223239C:
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _022324D0
+_022323B2:
+ mov r5, #0
+ cmp r7, #0
+ ble _022323F2
+_022323B8:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022324D4 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _022323EC
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022448BC
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r5, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254A0C
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+_022323EC:
+ add r5, r5, #1
+ cmp r5, r7
+ blt _022323B8
+_022323F2:
+ b _022324D0
+_022323F4:
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022324D4 ; =0x00000195
+ mov r2, #1
+ ldrb r0, [r0, r1]
+ tst r0, r2
+ bne _0223241A
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _0223242C
+_0223241A:
+ ldr r1, [r6, #0x64]
+ add r0, r6, #0
+ bl MOD11_022448BC
+ ldr r2, [r6, #0x64]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+_0223242C:
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ bl MOD11_022315C0
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ bl MOD11_02254A0C
+ b _022324D0
+_0223243E:
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022324D4 ; =0x00000195
+ mov r2, #1
+ ldrb r0, [r0, r1]
+ tst r0, r2
+ bne _02232464
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _02232476
+_02232464:
+ ldr r1, [r6, #0x6c]
+ add r0, r6, #0
+ bl MOD11_022448BC
+ ldr r2, [r6, #0x6c]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+_02232476:
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ bl MOD11_022315C0
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02254A0C
+ b _022324D0
+_02232488:
+ ldr r1, [r6, #0x78]
+ add r0, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022324D4 ; =0x00000195
+ mov r2, #1
+ ldrb r0, [r0, r1]
+ tst r0, r2
+ bne _022324AE
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _022324C0
+_022324AE:
+ ldr r1, [r6, #0x78]
+ add r0, r6, #0
+ bl MOD11_022448BC
+ ldr r2, [r6, #0x78]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+_022324C0:
+ ldr r1, [r6, #0x78]
+ add r0, r4, #0
+ bl MOD11_022315C0
+ ldr r1, [r6, #0x78]
+ add r0, r4, #0
+ bl MOD11_02254A0C
+_022324D0:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022324D4: .word 0x00000195
+
+ thumb_func_start MOD11_022324D8
+MOD11_022324D8: ; 0x022324D8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ cmp r0, #6
+ bhi _02232510
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02232502: ; jump table
+ .short _02232510 - _02232502 - 2 ; case 0
+ .short _022325C2 - _02232502 - 2 ; case 1
+ .short _02232610 - _02232502 - 2 ; case 2
+ .short _02232534 - _02232502 - 2 ; case 3
+ .short _0223257C - _02232502 - 2 ; case 4
+ .short _02232510 - _02232502 - 2 ; case 5
+ .short _0223265E - _02232502 - 2 ; case 6
+_02232510:
+ mov r5, #0
+ cmp r7, #0
+ ble _02232532
+ add r6, r5, #0
+_02232518:
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r6, #0
+ add r3, r6, #0
+ bl MOD11_02254B40
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+ add r5, r5, #1
+ cmp r5, r7
+ blt _02232518
+_02232532:
+ b _022326AA
+_02232534:
+ mov r5, #0
+ cmp r7, #0
+ ble _02232566
+_0223253A:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022326B0 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232560
+ mov r2, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ add r3, r2, #0
+ bl MOD11_02254B40
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+_02232560:
+ add r5, r5, #1
+ cmp r5, r7
+ blt _0223253A
+_02232566:
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _022326AA
+_0223257C:
+ mov r5, #0
+ cmp r7, #0
+ ble _022325C0
+_02232582:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022326B0 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _022325BA
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022448BC
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r5, #0
+ bl MOD11_022448CC
+ mov r2, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ add r3, r2, #0
+ bl MOD11_02254B40
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+_022325BA:
+ add r5, r5, #1
+ cmp r5, r7
+ blt _02232582
+_022325C0:
+ b _022326AA
+_022325C2:
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022326B0 ; =0x00000195
+ mov r2, #1
+ ldrb r0, [r0, r1]
+ tst r0, r2
+ bne _022325E8
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _022325FA
+_022325E8:
+ ldr r1, [r6, #0x64]
+ add r0, r6, #0
+ bl MOD11_022448BC
+ ldr r2, [r6, #0x64]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+_022325FA:
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ bl MOD11_022315C0
+ mov r2, #0
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ add r3, r2, #0
+ bl MOD11_02254B40
+ b _022326AA
+_02232610:
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022326B0 ; =0x00000195
+ mov r2, #1
+ ldrb r0, [r0, r1]
+ tst r0, r2
+ bne _02232636
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _02232648
+_02232636:
+ ldr r1, [r6, #0x6c]
+ add r0, r6, #0
+ bl MOD11_022448BC
+ ldr r2, [r6, #0x6c]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+_02232648:
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ bl MOD11_022315C0
+ mov r2, #0
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ add r3, r2, #0
+ bl MOD11_02254B40
+ b _022326AA
+_0223265E:
+ ldr r1, [r6, #0x78]
+ add r0, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022326B0 ; =0x00000195
+ mov r2, #1
+ ldrb r0, [r0, r1]
+ tst r0, r2
+ bne _02232684
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _02232696
+_02232684:
+ ldr r1, [r6, #0x78]
+ add r0, r6, #0
+ bl MOD11_022448BC
+ ldr r2, [r6, #0x78]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+_02232696:
+ ldr r1, [r6, #0x78]
+ add r0, r4, #0
+ bl MOD11_022315C0
+ mov r2, #0
+ ldr r1, [r6, #0x78]
+ add r0, r4, #0
+ add r3, r2, #0
+ bl MOD11_02254B40
+_022326AA:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022326B0: .word 0x00000195
+
+ thumb_func_start MOD11_022326B4
+MOD11_022326B4: ; 0x022326B4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ beq _022326DC
+ cmp r2, #3
+ beq _022326F4
+ cmp r2, #4
+ beq _0223271E
+ b _02232756
+_022326DC:
+ mov r4, #0
+ cmp r7, #0
+ ble _02232768
+_022326E2:
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02254D50
+ add r4, r4, #1
+ cmp r4, r7
+ blt _022326E2
+ b _02232768
+_022326F4:
+ mov r4, #0
+ cmp r7, #0
+ ble _02232768
+_022326FA:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _0223276C ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232716
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02254D50
+_02232716:
+ add r4, r4, #1
+ cmp r4, r7
+ blt _022326FA
+ b _02232768
+_0223271E:
+ mov r4, #0
+ cmp r7, #0
+ ble _02232768
+_02232724:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _0223276C ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _0223274E
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldr r1, _02232770 ; =0x00003108
+ ldrb r1, [r6, r1]
+ tst r0, r1
+ bne _0223274E
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02254D50
+_0223274E:
+ add r4, r4, #1
+ cmp r4, r7
+ blt _02232724
+ b _02232768
+_02232756:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02254D50
+_02232768:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223276C: .word 0x00000195
+_02232770: .word 0x00003108
+
+ thumb_func_start MOD11_02232774
+MOD11_02232774: ; 0x02232774
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_02254F60
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022327A0
+MOD11_022327A0: ; 0x022327A0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ cmp r0, #0
+ beq _022327C6
+ cmp r0, #3
+ beq _0223282A
+ cmp r0, #4
+ beq _0223286A
+_022327C6:
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ tst r0, r1
+ beq _022327F8
+ mov r5, #0
+ cmp r6, #0
+ ble _022328B4
+ ldr r7, _022328B8 ; =0x00000195
+_022327DA:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #4
+ beq _022327F0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254F7C
+_022327F0:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _022327DA
+ b _022328B4
+_022327F8:
+ mov r5, #0
+ cmp r6, #0
+ ble _022328B4
+ mov r7, #8
+_02232800:
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ tst r0, r7
+ bne _0223281A
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _0223281A
+ cmp r5, #1
+ bgt _022328B4
+_0223281A:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254F7C
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232800
+ b _022328B4
+_0223282A:
+ mov r5, #0
+ cmp r6, #0
+ ble _022328B4
+ mov r7, #1
+_02232832:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022328B8 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ bne _02232862
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254F7C
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _02232862
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _022328B4
+_02232862:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232832
+ b _022328B4
+_0223286A:
+ mov r5, #0
+ cmp r6, #0
+ ble _022328B4
+ mov r7, #1
+_02232872:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022328B8 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _022328AE
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254F7C
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _022328AE
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ tst r0, r1
+ bne _022328AE
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _022328B4
+_022328AE:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232872
+_022328B4:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022328B8: .word 0x00000195
+
+ thumb_func_start MOD11_022328BC
+MOD11_022328BC: ; 0x022328BC
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r7, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ add r0, r7, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ cmp r5, #0
+ beq _022328EC
+ cmp r5, #3
+ beq _02232920
+ cmp r5, #4
+ beq _02232962
+_022328EC:
+ mov r5, #0
+ cmp r6, #0
+ ble _022329AE
+_022328F2:
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _0223290E
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _0223290E
+ cmp r5, #1
+ bgt _022329AE
+_0223290E:
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_02254FAC
+ add r5, r5, #1
+ cmp r5, r6
+ blt _022328F2
+ b _022329AE
+_02232920:
+ mov r5, #0
+ cmp r6, #0
+ ble _022329AE
+_02232926:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022329B4 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _0223295A
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_02254FAC
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _0223295A
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _022329AE
+_0223295A:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232926
+ b _022329AE
+_02232962:
+ mov r5, #0
+ cmp r6, #0
+ ble _022329AE
+_02232968:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022329B4 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _022329A8
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_02254FAC
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _022329A8
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ tst r0, r1
+ bne _022329A8
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _022329AE
+_022329A8:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232968
+_022329AE:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022329B4: .word 0x00000195
+
+ thumb_func_start MOD11_022329B8
+MOD11_022329B8: ; 0x022329B8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r5, r0, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ cmp r0, #0xc
+ bhi _022329FC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022329E2: ; jump table
+ .short _022329FC - _022329E2 - 2 ; case 0
+ .short _022329FC - _022329E2 - 2 ; case 1
+ .short _022329FC - _022329E2 - 2 ; case 2
+ .short _02232A2E - _022329E2 - 2 ; case 3
+ .short _02232A6E - _022329E2 - 2 ; case 4
+ .short _022329FC - _022329E2 - 2 ; case 5
+ .short _022329FC - _022329E2 - 2 ; case 6
+ .short _022329FC - _022329E2 - 2 ; case 7
+ .short _022329FC - _022329E2 - 2 ; case 8
+ .short _02232ABA - _022329E2 - 2 ; case 9
+ .short _02232AE6 - _022329E2 - 2 ; case 10
+ .short _02232B12 - _022329E2 - 2 ; case 11
+ .short _02232B3A - _022329E2 - 2 ; case 12
+_022329FC:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232A2C
+ mov r7, #8
+_02232A04:
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ tst r0, r7
+ bne _02232A1E
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02232A1E
+ cmp r6, #1
+ bgt _02232A2C
+_02232A1E:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232A04
+_02232A2C:
+ b _02232B60
+_02232A2E:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232A6C
+ mov r7, #1
+_02232A36:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232B64 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ bne _02232A66
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _02232A66
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02232B60
+_02232A66:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232A36
+_02232A6C:
+ b _02232B60
+_02232A6E:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232B60
+ mov r7, #1
+_02232A76:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232B64 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _02232AB2
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _02232AB2
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ tst r0, r1
+ bne _02232AB2
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02232B60
+_02232AB2:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232A76
+ b _02232B60
+_02232ABA:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232B60
+ ldr r7, _02232B64 ; =0x00000195
+_02232AC2:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #0
+ beq _02232AD4
+ cmp r0, #2
+ bne _02232ADE
+_02232AD4:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ b _02232B60
+_02232ADE:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232AC2
+ b _02232B60
+_02232AE6:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232B60
+ ldr r7, _02232B64 ; =0x00000195
+_02232AEE:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #1
+ beq _02232B00
+ cmp r0, #3
+ bne _02232B0A
+_02232B00:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ b _02232B60
+_02232B0A:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232AEE
+ b _02232B60
+_02232B12:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232B60
+ ldr r7, _02232B64 ; =0x00000195
+_02232B1A:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #4
+ bne _02232B32
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ b _02232B60
+_02232B32:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232B1A
+ b _02232B60
+_02232B3A:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232B60
+ ldr r7, _02232B64 ; =0x00000195
+_02232B42:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #5
+ bne _02232B5A
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ b _02232B60
+_02232B5A:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232B42
+_02232B60:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02232B64: .word 0x00000195
+
+ thumb_func_start MOD11_02232B68
+MOD11_02232B68: ; 0x02232B68
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r5, r0, #0
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r7, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r7, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ cmp r6, #0xc
+ bhi _02232BB6
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02232B9C: ; jump table
+ .short _02232BB6 - _02232B9C - 2 ; case 0
+ .short _02232BB6 - _02232B9C - 2 ; case 1
+ .short _02232BB6 - _02232B9C - 2 ; case 2
+ .short _02232BDE - _02232B9C - 2 ; case 3
+ .short _02232C14 - _02232B9C - 2 ; case 4
+ .short _02232BB6 - _02232B9C - 2 ; case 5
+ .short _02232BB6 - _02232B9C - 2 ; case 6
+ .short _02232BB6 - _02232B9C - 2 ; case 7
+ .short _02232BB6 - _02232B9C - 2 ; case 8
+ .short _02232C4A - _02232B9C - 2 ; case 9
+ .short _02232C78 - _02232B9C - 2 ; case 10
+ .short _02232CA6 - _02232B9C - 2 ; case 11
+ .short _02232CD0 - _02232B9C - 2 ; case 12
+_02232BB6:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232BDC
+_02232BBC:
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02232BCC
+ cmp r6, #1
+ bgt _02232BDC
+_02232BCC:
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232BBC
+_02232BDC:
+ b _02232CF8
+_02232BDE:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232C12
+_02232BE4:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232CFC ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232C0C
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02232CF8
+_02232C0C:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232BE4
+_02232C12:
+ b _02232CF8
+_02232C14:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232CF8
+_02232C1A:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232CFC ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _02232C42
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02232CF8
+_02232C42:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232C1A
+ b _02232CF8
+_02232C4A:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232CF8
+_02232C50:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232CFC ; =0x00000195
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ beq _02232C64
+ cmp r0, #2
+ bne _02232C70
+_02232C64:
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ b _02232CF8
+_02232C70:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232C50
+ b _02232CF8
+_02232C78:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232CF8
+_02232C7E:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232CFC ; =0x00000195
+ ldrb r0, [r0, r1]
+ cmp r0, #1
+ beq _02232C92
+ cmp r0, #3
+ bne _02232C9E
+_02232C92:
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ b _02232CF8
+_02232C9E:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232C7E
+ b _02232CF8
+_02232CA6:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232CF8
+_02232CAC:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232CFC ; =0x00000195
+ ldrb r0, [r0, r1]
+ cmp r0, #4
+ bne _02232CC8
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ b _02232CF8
+_02232CC8:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232CAC
+ b _02232CF8
+_02232CD0:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232CF8
+_02232CD6:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232CFC ; =0x00000195
+ ldrb r0, [r0, r1]
+ cmp r0, #5
+ bne _02232CF2
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ b _02232CF8
+_02232CF2:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232CD6
+_02232CF8:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02232CFC: .word 0x00000195
+
+ thumb_func_start MOD11_02232D00
+MOD11_02232D00: ; 0x02232D00
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ bl MOD11_0222FF84
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r4, #0
+ cmp r5, #0
+ ble _02232D28
+_02232D1A:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0225624C
+ add r4, r4, #1
+ cmp r4, r5
+ blt _02232D1A
+_02232D28:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02232D2C
+MOD11_02232D2C: ; 0x02232D2C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r7, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ beq _02232D54
+ cmp r2, #3
+ beq _02232D6E
+ cmp r2, #4
+ beq _02232D9A
+ b _02232DC6
+_02232D54:
+ mov r5, #0
+ cmp r6, #0
+ ble _02232DDA
+_02232D5A:
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ mov r3, #0
+ bl MOD11_02255034
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232D5A
+ b _02232DDA
+_02232D6E:
+ mov r5, #0
+ cmp r6, #0
+ ble _02232DDA
+_02232D74:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232DE0 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232D92
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ mov r3, #0
+ bl MOD11_02255034
+_02232D92:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232D74
+ b _02232DDA
+_02232D9A:
+ mov r5, #0
+ cmp r6, #0
+ ble _02232DDA
+_02232DA0:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232DE0 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _02232DBE
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ mov r3, #0
+ bl MOD11_02255034
+_02232DBE:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232DA0
+ b _02232DDA
+_02232DC6:
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r4, #0
+ add r1, r7, #0
+ mov r3, #0
+ bl MOD11_02255034
+_02232DDA:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02232DE0: .word 0x00000195
+
+ thumb_func_start MOD11_02232DE4
+MOD11_02232DE4: ; 0x02232DE4
+ push {r3, r4, r5, r6, r7, lr}
+ str r1, [sp]
+ add r5, r0, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [sp]
+ bl MOD11_0223A404
+ add r2, r0, #0
+ ldr r4, _02232EA4 ; =0x00000000
+ beq _02232E0E
+ cmp r2, #3
+ beq _02232E28
+ cmp r2, #4
+ beq _02232E5A
+ b _02232E8C
+_02232E0E:
+ cmp r7, #0
+ ble _02232EA0
+ add r6, r4, #0
+_02232E14:
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD11_02255034
+ add r4, r4, #1
+ cmp r4, r7
+ blt _02232E14
+ b _02232EA0
+_02232E28:
+ add r6, r4, #0
+ cmp r7, #0
+ ble _02232EA0
+_02232E2E:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232EA8 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232E52
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD11_02255034
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_02232E52:
+ add r6, r6, #1
+ cmp r6, r7
+ blt _02232E2E
+ b _02232EA0
+_02232E5A:
+ add r6, r4, #0
+ cmp r7, #0
+ ble _02232EA0
+_02232E60:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232EA8 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _02232E84
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD11_02255034
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_02232E84:
+ add r6, r6, #1
+ cmp r6, r7
+ blt _02232E60
+ b _02232EA0
+_02232E8C:
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r3, r4, #0
+ bl MOD11_02255034
+_02232EA0:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02232EA4: .word 0x00000000
+_02232EA8: .word 0x00000195
+
+ thumb_func_start MOD11_02232EAC
+MOD11_02232EAC: ; 0x02232EAC
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r7, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ beq _02232ED4
+ cmp r2, #3
+ beq _02232EEA
+ cmp r2, #4
+ beq _02232F20
+ b _02232F48
+_02232ED4:
+ mov r5, #0
+ cmp r6, #0
+ ble _02232F58
+_02232EDA:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0225516C
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232EDA
+ b _02232F58
+_02232EEA:
+ mov r5, #0
+ cmp r6, #0
+ ble _02232F58
+_02232EF0:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232F5C ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232F18
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ ldr r1, _02232F60 ; =0x00003108
+ ldrb r1, [r7, r1]
+ tst r0, r1
+ bne _02232F18
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0225516C
+_02232F18:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232EF0
+ b _02232F58
+_02232F20:
+ mov r5, #0
+ cmp r6, #0
+ ble _02232F58
+ mov r7, #1
+_02232F28:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232F5C ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _02232F40
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0225516C
+_02232F40:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232F28
+ b _02232F58
+_02232F48:
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_0225516C
+_02232F58:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02232F5C: .word 0x00000195
+_02232F60: .word 0x00003108
+
+ thumb_func_start MOD11_02232F64
+MOD11_02232F64: ; 0x02232F64
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD11_02243388
+ cmp r0, #0
+ beq _02232F7C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ b _02232F82
+_02232F7C:
+ add r0, r4, #0
+ bl MOD11_022433DC
+_02232F82:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02232F88
+MOD11_02232F88: ; 0x02232F88
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r1, #0
+ ldr r1, [r5, #0x64]
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ bne _02232FA0
+ mov r4, #0
+ b _02232FB4
+_02232FA0:
+ ldr r0, _022330D4 ; =0x00002160
+ ldr r4, [r5, r0]
+ cmp r4, #0
+ bne _02232FB4
+ ldr r0, _022330D8 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _022330DC ; =0x000003E2
+ ldrb r4, [r1, r0]
+_02232FB4:
+ ldr r0, [r5, #0x6c]
+ str r0, [sp, #0x18]
+ ldr r1, [sp, #0x18]
+ add r0, r7, #0
+ bl MOD11_02230270
+ mov r3, #6
+ lsl r3, r3, #6
+ add r6, r0, #0
+ ldr r0, [r5, r3]
+ ldr r1, _022330E0 ; =0x00002154
+ str r0, [sp]
+ ldr r0, [r5, r1]
+ ldr r2, _022330D8 ; =0x00003044
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x64]
+ lsl r4, r6, #2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x18]
+ add r4, r5, r4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10]
+ sub r0, r1, #4
+ ldr r0, [r5, r0]
+ add r3, #0x3c
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x14]
+ ldr r2, [r5, r2]
+ ldr r3, [r4, r3]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_0224B310
+ ldr r1, _022330E4 ; =0x00002144
+ str r0, [r5, r1]
+ add r0, r1, #0
+ add r0, #0xc
+ ldr r2, [r5, r1]
+ ldr r0, [r5, r0]
+ mul r0, r2
+ str r0, [r5, r1]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ cmp r0, #0x61
+ bne _02233040
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ ldr r1, _022330E4 ; =0x00002144
+ add r0, #0x64
+ ldr r1, [r5, r1]
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r1, _022330E4 ; =0x00002144
+ str r0, [r5, r1]
+_02233040:
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ cmp r0, #0x68
+ bne _0223306E
+ ldr r0, _022330E4 ; =0x00002144
+ ldr r2, [r5, #0x64]
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r5, r0
+ ldr r0, _022330E8 ; =0x00002DCC
+ ldr r0, [r2, r0]
+ lsl r0, r0, #5
+ lsr r0, r0, #0x1c
+ add r0, #0xa
+ mul r0, r1
+ mov r1, #0xa
+ bl _u32_div_f
+ ldr r1, _022330E4 ; =0x00002144
+ str r0, [r5, r1]
+_0223306E:
+ ldr r2, [r5, #0x64]
+ mov r1, #0xc0
+ add r0, r2, #0
+ mul r0, r1
+ ldr r2, _022330E8 ; =0x00002DCC
+ add r3, r5, r0
+ ldr r3, [r3, r2]
+ lsl r3, r3, #1
+ lsr r3, r3, #0x1f
+ beq _022330CE
+ add r2, #0x10
+ add r3, r5, r2
+ add r1, #0xb4
+ ldr r2, [r5, r1]
+ ldr r1, [r3, r0]
+ cmp r2, r1
+ bne _02233094
+ sub r1, r1, #1
+ str r1, [r3, r0]
+_02233094:
+ ldr r2, [r5, #0x64]
+ mov r1, #0xc0
+ add r0, r2, #0
+ mul r0, r1
+ add r1, #0xb4
+ ldr r3, [r5, r1]
+ ldr r1, _022330EC ; =0x00002DDC
+ add r2, r5, r0
+ ldr r2, [r2, r1]
+ sub r2, r3, r2
+ cmp r2, #2
+ bge _022330C2
+ ldr r0, _022330E4 ; =0x00002144
+ ldr r1, [r5, r0]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ ldr r1, _022330E4 ; =0x00002144
+ add sp, #0x1c
+ str r0, [r5, r1]
+ pop {r4, r5, r6, r7, pc}
+_022330C2:
+ sub r1, #0x10
+ add r3, r5, r1
+ ldr r2, [r3, r0]
+ ldr r1, _022330F0 ; =0xBFFFFFFF
+ and r1, r2
+ str r1, [r3, r0]
+_022330CE:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022330D4: .word 0x00002160
+_022330D8: .word 0x00003044
+_022330DC: .word 0x000003E2
+_022330E0: .word 0x00002154
+_022330E4: .word 0x00002144
+_022330E8: .word 0x00002DCC
+_022330EC: .word 0x00002DDC
+_022330F0: .word 0xBFFFFFFF
+
+ thumb_func_start MOD11_022330F4
+MOD11_022330F4: ; 0x022330F4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02232F88
+ ldr r1, _02233128 ; =0x00002144
+ add r0, r4, #0
+ ldr r1, [r4, r1]
+ bl MOD11_0224BF10
+ ldr r1, _02233128 ; =0x00002144
+ str r0, [r4, r1]
+ mov r0, #0
+ ldr r2, [r4, r1]
+ mvn r0, r0
+ mul r0, r2
+ str r0, [r4, r1]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02233128: .word 0x00002144
+
+ thumb_func_start MOD11_0223312C
+MOD11_0223312C: ; 0x0223312C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02232F88
+ ldr r1, _02233154 ; =0x00002144
+ mov r0, #0
+ ldr r2, [r4, r1]
+ mvn r0, r0
+ mul r0, r2
+ str r0, [r4, r1]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02233154: .word 0x00002144
+
+ thumb_func_start MOD11_02233158
+MOD11_02233158: ; 0x02233158
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, _02233194 ; =0x0000213C
+ ldr r1, [r4, r0]
+ mov r0, #1
+ tst r0, r1
+ bne _02233178
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022559BC
+_02233178:
+ ldr r1, _02233194 ; =0x0000213C
+ mov r0, #1
+ ldr r2, [r4, r1]
+ orr r0, r2
+ str r0, [r4, r1]
+ add r0, r1, #4
+ ldr r2, [r4, r0]
+ mov r0, #4
+ orr r2, r0
+ add r0, r1, #4
+ str r2, [r4, r0]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02233194: .word 0x0000213C
+
+ thumb_func_start MOD11_02233198
+MOD11_02233198: ; 0x02233198
+ push {r4, r5, lr}
+ sub sp, #0x44
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ add r1, sp, #0x24
+ bl MOD11_0223C490
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0x24
+ add r3, sp, #0
+ bl MOD11_0223C55C
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0
+ bl MOD11_022559F4
+ mov r0, #0
+ add sp, #0x44
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD11_022331CC
+MOD11_022331CC: ; 0x022331CC
+ push {r4, r5, lr}
+ sub sp, #0x44
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ add r1, sp, #0x24
+ bl MOD11_0223C490
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0x24
+ add r3, sp, #0
+ bl MOD11_0223C55C
+ add r1, sp, #0
+ ldrb r2, [r1, #1]
+ mov r0, #0x80
+ orr r0, r2
+ strb r0, [r1, #1]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0
+ bl MOD11_022559F4
+ mov r0, #0
+ add sp, #0x44
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223320C
+MOD11_0223320C: ; 0x0223320C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r1, r4, #0
+ add r4, #0xf4
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD11_022559F4
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223322C
+MOD11_0223322C: ; 0x0223322C
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD11_0223C490
+ add r1, r4, #0
+ add r4, #0xf4
+ add r0, r5, #0
+ add r2, sp, #0
+ add r3, r4, #0
+ bl MOD11_0223C55C
+ mov r0, #0
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02233258
+MOD11_02233258: ; 0x02233258
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x44
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, sp, #0x24
+ bl MOD11_0223C490
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0x24
+ add r3, sp, #0
+ bl MOD11_0223C55C
+ add r1, sp, #0
+ ldrb r2, [r1, #1]
+ mov r0, #0x40
+ orr r0, r2
+ strb r0, [r1, #1]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ str r0, [sp, #0x20]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0
+ bl MOD11_022559F4
+ mov r0, #0
+ add sp, #0x44
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022332AC
+MOD11_022332AC: ; 0x022332AC
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ cmp r0, #0xff
+ bne _022332CA
+ mov r0, #0x49
+ lsl r0, r0, #2
+ b _022332CC
+_022332CA:
+ ldr r0, _0223331C ; =0x00003044
+_022332CC:
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, _02233320 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #1
+ lsl r0, r0, #0xe
+ tst r0, r1
+ bne _022332E8
+ add r0, r6, #0
+ bl MOD11_02230E20
+ cmp r0, #1
+ beq _022332EC
+_022332E8:
+ cmp r4, #0x90
+ bne _02233302
+_022332EC:
+ ldr r1, _02233320 ; =0x0000213C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ lsl r0, r0, #0xe
+ orr r0, r2
+ str r0, [r5, r1]
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_02255A10
+_02233302:
+ add r0, r6, #0
+ bl MOD11_02230E20
+ cmp r0, #0
+ bne _02233316
+ ldr r2, _02233324 ; =0x00000123
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A43C
+_02233316:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_0223331C: .word 0x00003044
+_02233320: .word 0x0000213C
+_02233324: .word 0x00000123
+
+ thumb_func_start MOD11_02233328
+MOD11_02233328: ; 0x02233328
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ cmp r6, #0xff
+ bne _0223335A
+ mov r0, #0x49
+ lsl r0, r0, #2
+ b _0223335C
+_0223335A:
+ ldr r0, _022333C8 ; =0x00003044
+_0223335C:
+ ldr r0, [r4, r0]
+ add r1, r4, #0
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ str r0, [sp, #4]
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r7, r0, #0
+ ldr r0, _022333CC ; =0x0000213C
+ ldr r1, [r4, r0]
+ mov r0, #1
+ lsl r0, r0, #0xe
+ tst r0, r1
+ bne _02233390
+ add r0, r5, #0
+ bl MOD11_02230E20
+ cmp r0, #1
+ beq _02233394
+_02233390:
+ cmp r6, #0x90
+ bne _022333AE
+_02233394:
+ ldr r1, _022333CC ; =0x0000213C
+ mov r0, #1
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0xe
+ orr r0, r2
+ str r0, [r4, r1]
+ ldr r3, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ str r7, [sp]
+ bl MOD11_02255A40
+_022333AE:
+ add r0, r5, #0
+ bl MOD11_02230E20
+ cmp r0, #0
+ bne _022333C2
+ ldr r2, _022333D0 ; =0x00000123
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A43C
+_022333C2:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022333C8: .word 0x00003044
+_022333CC: .word 0x0000213C
+_022333D0: .word 0x00000123
+
+ thumb_func_start MOD11_022333D4
+MOD11_022333D4: ; 0x022333D4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ ldr r2, _02233404 ; =0x0000216C
+ add r1, r0, #0
+ ldr r2, [r4, r2]
+ add r0, r5, #0
+ bl MOD11_02255A70
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02233404: .word 0x0000216C
+
+ thumb_func_start MOD11_02233408
+MOD11_02233408: ; 0x02233408
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ ldr r0, _0223349C ; =0x00002D8C
+ add r7, r2, #0
+ add r5, r4, r0
+ mov r0, #0xc0
+ mul r7, r0
+ ldr r0, _022334A0 ; =0x0000215C
+ ldr r6, [r5, r7]
+ ldr r3, [r4, r0]
+ add r1, r3, r6
+ cmp r1, #0
+ bgt _02233446
+ neg r1, r6
+ sub r0, #0x14
+ str r1, [r4, r0]
+ b _0223344A
+_02233446:
+ sub r0, #0x14
+ str r3, [r4, r0]
+_0223344A:
+ ldr r0, _022334A4 ; =0x00002148
+ ldr r6, [r4, r0]
+ cmp r6, #0
+ bge _02233460
+ mov r0, #0x59
+ lsl r0, r0, #2
+ add r3, r4, r0
+ lsl r1, r2, #2
+ ldr r0, [r3, r1]
+ sub r0, r0, r6
+ str r0, [r3, r1]
+_02233460:
+ mov r0, #0xc0
+ add r3, r2, #0
+ mul r3, r0
+ ldr r0, _0223349C ; =0x00002D8C
+ ldr r6, _022334A0 ; =0x0000215C
+ add r1, r4, r0
+ ldr r0, [r1, r3]
+ ldr r6, [r4, r6]
+ add r0, r0, r6
+ str r0, [r1, r3]
+ ldr r1, [r1, r3]
+ cmp r1, #0
+ bge _02233480
+ mov r0, #0
+ str r0, [r5, r7]
+ b _0223348E
+_02233480:
+ add r0, r4, r3
+ ldr r3, _0223349C ; =0x00002D8C
+ add r3, r3, #4
+ ldr r0, [r0, r3]
+ cmp r1, r0
+ bls _0223348E
+ str r0, [r5, r7]
+_0223348E:
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02245190
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223349C: .word 0x00002D8C
+_022334A0: .word 0x0000215C
+_022334A4: .word 0x00002148
+
+ thumb_func_start MOD11_022334A8
+MOD11_022334A8: ; 0x022334A8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02255A8C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022334D4
+MOD11_022334D4: ; 0x022334D4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ mov r1, #0xc0
+ mul r1, r4
+ add r2, r5, r1
+ ldr r1, _02233530 ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ bne _0223352A
+ str r4, [r5, #0x74]
+ bl MaskOfFlagNo
+ ldr r1, _02233534 ; =0x0000213C
+ lsl r0, r0, #0x18
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+ mov r0, #0x55
+ lsl r0, r0, #2
+ add r2, r5, r0
+ lsl r1, r4, #2
+ ldr r0, [r2, r1]
+ add r0, r0, #1
+ str r0, [r2, r1]
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223D0EC
+_0223352A:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02233530: .word 0x00002D8C
+_02233534: .word 0x0000213C
+
+ thumb_func_start MOD11_02233538
+MOD11_02233538: ; 0x02233538
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r2, [r4, #0x74]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02255BEC
+ ldr r0, [r4, #0x74]
+ bl MaskOfFlagNo
+ ldr r2, _02233594 ; =0x0000213C
+ lsl r3, r0, #0x18
+ mov r0, #0
+ mvn r0, r0
+ ldr r1, [r4, r2]
+ eor r0, r3
+ and r0, r1
+ str r0, [r4, r2]
+ ldr r0, [r4, #0x74]
+ bl MaskOfFlagNo
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0x1c
+ orr r0, r2
+ str r0, [r4, r1]
+ ldr r0, [r4, #0x74]
+ mov r2, #0x27
+ lsl r0, r0, #4
+ add r0, r4, r0
+ add r1, #0x68
+ str r2, [r0, r1]
+ ldr r2, [r4, #0x74]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02245A10
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02233594: .word 0x0000213C
+
+ thumb_func_start MOD11_02233598
+MOD11_02233598: ; 0x02233598
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ bne _022335D2
+ ldr r0, _022335FC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ ldr r0, _02233600 ; =0x00000C03
+ tst r0, r1
+ bne _022335CC
+ bl FUN_02020AA4
+ cmp r0, #0
+ beq _022335D2
+_022335CC:
+ add r0, r5, #0
+ add r0, #0xf0
+ str r4, [r0]
+_022335D2:
+ add r0, r5, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ cmp r4, r0
+ beq _022335F0
+ mov r1, #1
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r0, r0, #1
+ b _022335F2
+_022335F0:
+ mov r0, #0
+_022335F2:
+ add r5, #0xf0
+ str r0, [r5]
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_022335FC: .word 0x021C48B8
+_02233600: .word 0x00000C03
+
+ thumb_func_start MOD11_02233604
+MOD11_02233604: ; 0x02233604
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r3, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_02255D00
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0223363C
+MOD11_0223363C: ; 0x0223363C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r1, #0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_0223A444
+ cmp r7, #6
+ bhi _022336DA
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02233686: ; jump table
+ .short _02233694 - _02233686 - 2 ; case 0
+ .short _0223369E - _02233686 - 2 ; case 1
+ .short _022336A8 - _02233686 - 2 ; case 2
+ .short _022336B2 - _02233686 - 2 ; case 3
+ .short _022336BC - _02233686 - 2 ; case 4
+ .short _022336C6 - _02233686 - 2 ; case 5
+ .short _022336D0 - _02233686 - 2 ; case 6
+_02233694:
+ ldr r0, [r0]
+ cmp r0, r4
+ beq _022336DA
+ mov r5, #0
+ b _022336DA
+_0223369E:
+ ldr r0, [r0]
+ cmp r0, r4
+ bne _022336DA
+ mov r5, #0
+ b _022336DA
+_022336A8:
+ ldr r0, [r0]
+ cmp r0, r4
+ bgt _022336DA
+ mov r5, #0
+ b _022336DA
+_022336B2:
+ ldr r0, [r0]
+ cmp r0, r4
+ ble _022336DA
+ mov r5, #0
+ b _022336DA
+_022336BC:
+ ldr r0, [r0]
+ tst r0, r4
+ bne _022336DA
+ mov r5, #0
+ b _022336DA
+_022336C6:
+ ldr r0, [r0]
+ tst r0, r4
+ beq _022336DA
+ mov r5, #0
+ b _022336DA
+_022336D0:
+ ldr r0, [r0]
+ and r0, r4
+ cmp r4, r0
+ beq _022336DA
+ mov r5, #0
+_022336DA:
+ cmp r5, #0
+ beq _022336E6
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223A424
+_022336E6:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_022336EC
+MOD11_022336EC: ; 0x022336EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r1, #0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ ldr r2, [sp, #8]
+ add r0, r6, #0
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r7, #6
+ bhi _02233790
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223374A: ; jump table
+ .short _02233758 - _0223374A - 2 ; case 0
+ .short _02233760 - _0223374A - 2 ; case 1
+ .short _02233768 - _0223374A - 2 ; case 2
+ .short _02233770 - _0223374A - 2 ; case 3
+ .short _02233778 - _0223374A - 2 ; case 4
+ .short _02233780 - _0223374A - 2 ; case 5
+ .short _02233788 - _0223374A - 2 ; case 6
+_02233758:
+ cmp r0, r4
+ beq _02233790
+ mov r5, #0
+ b _02233790
+_02233760:
+ cmp r0, r4
+ bne _02233790
+ mov r5, #0
+ b _02233790
+_02233768:
+ cmp r0, r4
+ bgt _02233790
+ mov r5, #0
+ b _02233790
+_02233770:
+ cmp r0, r4
+ ble _02233790
+ mov r5, #0
+ b _02233790
+_02233778:
+ tst r0, r4
+ bne _02233790
+ mov r5, #0
+ b _02233790
+_02233780:
+ tst r0, r4
+ beq _02233790
+ mov r5, #0
+ b _02233790
+_02233788:
+ and r0, r4
+ cmp r4, r0
+ beq _02233790
+ mov r5, #0
+_02233790:
+ cmp r5, #0
+ beq _0223379C
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223A424
+_0223379C:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022337A4
+MOD11_022337A4: ; 0x022337A4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02255D20
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022337C0
+MOD11_022337C0: ; 0x022337C0
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A434
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD11_022337E0
+MOD11_022337E0: ; 0x022337E0
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r2, _02233804 ; =0x00003044
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ mov r1, #0x1e
+ lsl r2, r2, #4
+ add r3, r4, r2
+ ldr r2, _02233808 ; =0x000003DE
+ ldrh r2, [r3, r2]
+ bl MOD11_0223A434
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02233804: .word 0x00003044
+_02233808: .word 0x000003DE
+
+ thumb_func_start MOD11_0223380C
+MOD11_0223380C: ; 0x0223380C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ ldr r2, _02233890 ; =0x0000213C
+ mov r1, #1
+ ldr r3, [r4, r2]
+ bic r3, r1
+ str r3, [r4, r2]
+ ldr r3, [r4, r2]
+ ldr r1, _02233894 ; =0xFFFFBFFF
+ and r1, r3
+ mov r3, #0x49
+ lsl r3, r3, #2
+ str r1, [r4, r2]
+ ldr r2, [r4, r3]
+ ldr r1, _02233898 ; =0x00003044
+ cmp r0, #0
+ str r2, [r4, r1]
+ bne _02233866
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r3, [r4, r3]
+ ldr r2, [r4, #0x64]
+ lsl r3, r3, #0x10
+ add r0, r5, #0
+ add r1, r4, #0
+ lsr r3, r3, #0x10
+ bl MOD11_02244C28
+ str r0, [r4, #0x6c]
+ ldr r1, [r4, #0x64]
+ lsl r1, r1, #4
+ add r2, r4, r1
+ ldr r1, _0223389C ; =0x000021AC
+ str r0, [r2, r1]
+_02233866:
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0xff
+ bne _0223387C
+ mov r2, #0x26
+ str r2, [r4, #0xc]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, #0xf3
+ bl MOD11_0223A434
+ b _02233888
+_0223387C:
+ ldr r2, _02233898 ; =0x00003044
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ mov r1, #0
+ bl MOD11_0223A434
+_02233888:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_02233890: .word 0x0000213C
+_02233894: .word 0xFFFFBFFF
+_02233898: .word 0x00003044
+_0223389C: .word 0x000021AC
+
+ thumb_func_start MOD11_022338A0
+MOD11_022338A0: ; 0x022338A0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #1
+ lsl r1, r1, #0xa
+ tst r0, r1
+ bne _022338C8
+ add r0, r5, #0
+ bl MOD11_02230C50
+ mov r1, #1
+ tst r0, r1
+ beq _022338D0
+_022338C8:
+ ldr r0, _022338F4 ; =0x00002150
+ mov r1, #1
+ str r1, [r4, r0]
+ b _022338F0
+_022338D0:
+ ldr r3, [r4, #0x6c]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD11_0224C474
+ str r0, [sp]
+ ldr r3, _022338F8 ; =0x0000214C
+ ldr r1, [r4, #0x64]
+ ldr r2, [r4, #0x6c]
+ ldr r3, [r4, r3]
+ add r0, r4, #0
+ bl MOD11_0224BF3C
+ ldr r1, _022338F4 ; =0x00002150
+ str r0, [r4, r1]
+_022338F0:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022338F4: .word 0x00002150
+_022338F8: .word 0x0000214C
+
+ thumb_func_start MOD11_022338FC
+MOD11_022338FC: ; 0x022338FC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r7, r0, #0
+ bl MOD11_0222FF74
+ add r4, r0, #0
+ ldr r1, [r5, #0x74]
+ add r0, r7, #0
+ bl MOD11_0222FF7C
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ ldr r0, _02233A70 ; =0x00000195
+ ldrb r2, [r6, r0]
+ mov r0, #1
+ tst r0, r2
+ beq _02233936
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ tst r0, r4
+ beq _02233938
+_02233936:
+ b _02233A64
+_02233938:
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r1, [sp, #4]
+ str r0, [sp]
+ add r4, r0, #0
+ add r0, r7, #0
+ bl MOD11_0222FF88
+ bl GetPartyCount
+ cmp r0, #0
+ ble _022339C6
+_02233950:
+ add r0, r7, #0
+ mov r1, #0
+ add r2, r4, #0
+ bl MOD11_02230014
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022339B4
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022339B4
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldr r1, [r5, #0x74]
+ asr r1, r1, #1
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1d
+ add r1, r5, r1
+ add r1, #0xa4
+ ldr r1, [r1]
+ tst r0, r1
+ beq _02233994
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+_02233994:
+ add r0, r6, #0
+ mov r1, #6
+ mov r2, #0
+ bl GetMonData
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD11_0224C12C
+ cmp r0, #0x32
+ bne _022339B4
+ ldr r0, [sp]
+ add r0, r0, #1
+ str r0, [sp]
+_022339B4:
+ add r0, r7, #0
+ mov r1, #0
+ add r4, r4, #1
+ bl MOD11_0222FF88
+ bl GetPartyCount
+ cmp r4, r0
+ blt _02233950
+_022339C6:
+ ldr r1, [r5, #0x74]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r1, r0]
+ mov r1, #9
+ bl GetMonBaseStat
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ ldr r2, [r5, #0x74]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r5, r0
+ ldr r0, _02233A74 ; =0x00002D74
+ ldrb r0, [r2, r0]
+ mul r0, r1
+ mov r1, #7
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ ldr r1, [sp]
+ lsr r0, r0, #0x10
+ cmp r1, #0
+ beq _02233A3E
+ lsr r4, r0, #1
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl _s32_div_f
+ add r1, r5, #0
+ add r1, #0x9c
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02233A1E
+ add r0, r5, #0
+ mov r1, #1
+ add r0, #0x9c
+ str r1, [r0]
+_02233A1E:
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl _s32_div_f
+ add r1, r5, #0
+ add r1, #0xa0
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02233A6A
+ mov r0, #1
+ add r5, #0xa0
+ str r0, [r5]
+ b _02233A6A
+_02233A3E:
+ ldr r1, [sp, #4]
+ bl _s32_div_f
+ add r1, r5, #0
+ add r1, #0x9c
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02233A5C
+ add r0, r5, #0
+ mov r1, #1
+ add r0, #0x9c
+ str r1, [r0]
+_02233A5C:
+ mov r0, #0
+ add r5, #0xa0
+ str r0, [r5]
+ b _02233A6A
+_02233A64:
+ add r0, r5, #0
+ bl MOD11_0223A424
+_02233A6A:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02233A70: .word 0x00000195
+_02233A74: .word 0x00002D74
+
+ thumb_func_start MOD11_02233A78
+MOD11_02233A78: ; 0x02233A78
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r0, #5
+ mov r1, #0x58
+ bl AllocFromHeap
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r2, #0
+ str r5, [r0]
+ ldr r0, [r4, r1]
+ str r4, [r0, #4]
+ ldr r0, [r4, r1]
+ str r2, [r0, #0x28]
+ ldr r0, [r4, r1]
+ str r2, [r0, #0x48]
+ ldr r0, _02233AB4 ; =MOD11_0223A79C
+ ldr r1, [r4, r1]
+ bl FUN_0200CA44
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02233AB4: .word MOD11_0223A79C
+
+ thumb_func_start MOD11_02233AB8
+MOD11_02233AB8: ; 0x02233AB8
+ push {r3, lr}
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02233ACC
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+_02233ACC:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02233AD0
+MOD11_02233AD0: ; 0x02233AD0
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02233AE8
+MOD11_02233AE8: ; 0x02233AE8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r1, [sp, #8]
+ add r6, r0, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ ldr r0, [sp, #8]
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r4, #0
+ add r5, r4, #0
+ cmp r7, #0
+ ble _02233B40
+ ldr r0, [sp, #8]
+ str r0, [sp, #0xc]
+_02233B0A:
+ mov r0, #0x4f
+ ldr r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02233B34
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ orr r4, r0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ ldr r1, [sp, #8]
+ add r0, r6, #0
+ add r2, r5, #0
+ mov r3, #1
+ bl MOD11_022558E0
+_02233B34:
+ ldr r0, [sp, #0xc]
+ add r5, r5, #1
+ add r0, r0, #4
+ str r0, [sp, #0xc]
+ cmp r5, r7
+ blt _02233B0A
+_02233B40:
+ mov r5, #0
+ cmp r7, #0
+ ble _02233B98
+_02233B46:
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ cmp r0, #7
+ bne _02233B80
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022302BC
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ tst r0, r4
+ bne _02233B92
+ ldr r0, [sp, #0x10]
+ bl MaskOfFlagNo
+ tst r0, r4
+ bne _02233B92
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ orr r4, r0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022564CC
+ b _02233B92
+_02233B80:
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ tst r0, r4
+ bne _02233B92
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022564CC
+_02233B92:
+ add r5, r5, #1
+ cmp r5, r7
+ blt _02233B46
+_02233B98:
+ mov r0, #0
+ cmp r7, #0
+ ble _02233BBA
+ mov r1, #0x4f
+ ldr r4, [sp, #8]
+ lsl r1, r1, #2
+ mov r2, #1
+_02233BA6:
+ ldr r3, [r4, r1]
+ tst r3, r2
+ beq _02233BB2
+ ldr r1, [sp, #8]
+ str r0, [r1, #0x78]
+ b _02233BBA
+_02233BB2:
+ add r0, r0, #1
+ add r4, r4, #4
+ cmp r0, r7
+ blt _02233BA6
+_02233BBA:
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02233BC0
+MOD11_02233BC0: ; 0x02233BC0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #8]
+ mov r6, #0
+ ldr r1, [sp, #8]
+ add r0, r6, #0
+ cmp r1, #0
+ ble _02233BF2
+ mov r3, #0x4f
+ add r1, r5, #0
+ lsl r3, r3, #2
+ mov r4, #1
+_02233BE0:
+ ldr r2, [r1, r3]
+ tst r2, r4
+ beq _02233BE8
+ add r6, r6, #1
+_02233BE8:
+ ldr r2, [sp, #8]
+ add r0, r0, #1
+ add r1, r1, #4
+ cmp r0, r2
+ blt _02233BE0
+_02233BF2:
+ ldr r0, [sp, #8]
+ mov r4, #0
+ cmp r0, #0
+ ble _02233C6C
+ str r5, [sp, #4]
+ add r7, r5, #0
+_02233BFE:
+ mov r0, #0x4f
+ ldr r1, [sp, #4]
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02233C58
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _02233C58
+ mov r0, #0x23
+ lsl r0, r0, #8
+ ldrb r0, [r7, r0]
+ add r1, r5, r4
+ sub r6, r6, #1
+ sub r2, r0, #1
+ ldr r0, _02233C8C ; =0x000021A0
+ strb r2, [r1, r0]
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r1, [r5, r1]
+ lsl r0, r0, #0x18
+ tst r0, r1
+ bne _02233C58
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r1, [r5, r1]
+ lsl r0, r0, #0x18
+ orr r1, r0
+ mov r0, #0x85
+ lsl r0, r0, #6
+ str r1, [r5, r0]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_022564CC
+_02233C58:
+ ldr r0, [sp, #4]
+ add r4, r4, #1
+ add r0, r0, #4
+ str r0, [sp, #4]
+ mov r0, #1
+ lsl r0, r0, #8
+ add r7, r7, r0
+ ldr r0, [sp, #8]
+ cmp r4, r0
+ blt _02233BFE
+_02233C6C:
+ cmp r6, #0
+ bne _02233C84
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r2, [r5, r1]
+ ldr r0, _02233C90 ; =0xF0FFFFFF
+ and r0, r2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+_02233C84:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02233C8C: .word 0x000021A0
+_02233C90: .word 0xF0FFFFFF
+
+ thumb_func_start MOD11_02233C94
+MOD11_02233C94: ; 0x02233C94
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ cmp r0, #1
+ beq _02233CB6
+ cmp r0, #6
+ beq _02233CBA
+ cmp r0, #0x12
+ beq _02233CBE
+ b _02233CC0
+_02233CB6:
+ ldr r4, [r5, #0x64]
+ b _02233CC0
+_02233CBA:
+ ldr r4, [r5, #0x78]
+ b _02233CC0
+_02233CBE:
+ ldr r4, [r5, #0x6c]
+_02233CC0:
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ add r3, r5, r0
+ lsl r2, r4, #2
+ ldr r1, [r3, r2]
+ mov r0, #1
+ bic r1, r0
+ add r0, r4, #0
+ str r1, [r3, r2]
+ bl MaskOfFlagNo
+ ldr r3, _02233D24 ; =0x00003108
+ mov r2, #0
+ mvn r2, r2
+ eor r0, r2
+ ldrb r1, [r5, r3]
+ add r2, r4, #0
+ and r0, r1
+ ldr r1, _02233D28 ; =0x000021A0
+ strb r0, [r5, r3]
+ add r0, r5, r1
+ sub r1, r1, #4
+ add r6, r5, r1
+ ldrb r1, [r0, r4]
+ strb r1, [r6, r4]
+ mov r1, #6
+ strb r1, [r0, r4]
+ ldrb r3, [r6, r4]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02242B78
+ ldrb r3, [r6, r4]
+ add r0, r7, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0224B290
+ ldr r0, _02233D2C ; =0x00002E4C
+ add r2, r4, #0
+ ldr r1, [r5, r0]
+ ldr r0, _02233D30 ; =0x00003122
+ strh r1, [r5, r0]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02245608
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02233D24: .word 0x00003108
+_02233D28: .word 0x000021A0
+_02233D2C: .word 0x00002E4C
+_02233D30: .word 0x00003122
+
+ thumb_func_start MOD11_02233D34
+MOD11_02233D34: ; 0x02233D34
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ mov r0, #0
+ cmp r4, #0
+ ble _02233D76
+ mov r2, #0x4f
+ add r1, r5, #0
+ lsl r2, r2, #2
+ mov r3, #1
+_02233D5C:
+ ldr r6, [r1, r2]
+ tst r6, r3
+ beq _02233D6E
+ str r0, [r5, #0x78]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+ b _02233D76
+_02233D6E:
+ add r0, r0, #1
+ add r1, r1, #4
+ cmp r0, r4
+ blt _02233D5C
+_02233D76:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02233D7C
+MOD11_02233D7C: ; 0x02233D7C
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ mov r0, #5
+ mov r1, #0x58
+ bl AllocFromHeap
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r2, #0
+ str r5, [r0]
+ ldr r0, [r4, r1]
+ str r4, [r0, #4]
+ ldr r0, [r4, r1]
+ str r2, [r0, #0x28]
+ ldr r0, [r4, r1]
+ str r6, [r0, #0x24]
+ add r0, r1, #0
+ sub r0, #0x50
+ ldr r3, [r4, r0]
+ ldr r0, [r4, r1]
+ str r3, [r0, #0x2c]
+ ldr r0, _02233DC8 ; =MOD11_0223B49C
+ ldr r1, [r4, r1]
+ bl FUN_0200CA44
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02233DC8: .word MOD11_0223B49C
+
+ thumb_func_start MOD11_02233DCC
+MOD11_02233DCC: ; 0x02233DCC
+ push {r3, lr}
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02233DE0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+_02233DE0:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02233DE4
+MOD11_02233DE4: ; 0x02233DE4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r0, _02233E4C ; =0x0000217D
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ bne _02233E46
+ cmp r4, #0
+ bne _02233E36
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x5c
+ bne _02233E1C
+ mov r4, #5
+ b _02233E36
+_02233E1C:
+ bl LCRandom
+ mov r1, #3
+ and r0, r1
+ cmp r0, #2
+ bge _02233E2C
+ add r4, r0, #2
+ b _02233E36
+_02233E2C:
+ bl LCRandom
+ mov r1, #3
+ and r0, r1
+ add r4, r0, #2
+_02233E36:
+ lsl r0, r4, #0x18
+ ldr r1, _02233E50 ; =0x0000217C
+ lsr r2, r0, #0x18
+ strb r2, [r5, r1]
+ add r0, r1, #1
+ strb r2, [r5, r0]
+ add r1, #0xc
+ str r6, [r5, r1]
+_02233E46:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02233E4C: .word 0x0000217D
+_02233E50: .word 0x0000217C
+
+ thumb_func_start MOD11_02233E54
+MOD11_02233E54: ; 0x02233E54
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r2, [sp]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0223A444
+ add r4, r0, #0
+ cmp r6, #0x14
+ bhi _02233F3E
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02233E96: ; jump table
+ .short _02233F3E - _02233E96 - 2 ; case 0
+ .short _02233F3E - _02233E96 - 2 ; case 1
+ .short _02233F3E - _02233E96 - 2 ; case 2
+ .short _02233F3E - _02233E96 - 2 ; case 3
+ .short _02233F3E - _02233E96 - 2 ; case 4
+ .short _02233F3E - _02233E96 - 2 ; case 5
+ .short _02233F3E - _02233E96 - 2 ; case 6
+ .short _02233EC0 - _02233E96 - 2 ; case 7
+ .short _02233EC4 - _02233E96 - 2 ; case 8
+ .short _02233ECC - _02233E96 - 2 ; case 9
+ .short _02233ED4 - _02233E96 - 2 ; case 10
+ .short _02233EDC - _02233E96 - 2 ; case 11
+ .short _02233EEA - _02233E96 - 2 ; case 12
+ .short _02233EF4 - _02233E96 - 2 ; case 13
+ .short _02233F00 - _02233E96 - 2 ; case 14
+ .short _02233F08 - _02233E96 - 2 ; case 15
+ .short _02233F10 - _02233E96 - 2 ; case 16
+ .short _02233F1A - _02233E96 - 2 ; case 17
+ .short _02233F20 - _02233E96 - 2 ; case 18
+ .short _02233F2E - _02233E96 - 2 ; case 19
+ .short _02233F36 - _02233E96 - 2 ; case 20
+_02233EC0:
+ str r5, [r4]
+ b _02233F42
+_02233EC4:
+ ldr r0, [r4]
+ add r0, r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233ECC:
+ ldr r0, [r4]
+ sub r0, r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233ED4:
+ ldr r0, [r4]
+ orr r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233EDC:
+ mov r0, #0
+ mvn r0, r0
+ ldr r1, [r4]
+ eor r0, r5
+ and r0, r1
+ str r0, [r4]
+ b _02233F42
+_02233EEA:
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r5
+ str r1, [r4]
+ b _02233F42
+_02233EF4:
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl _s32_div_f
+ str r0, [r4]
+ b _02233F42
+_02233F00:
+ ldr r0, [r4]
+ lsl r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233F08:
+ ldr r0, [r4]
+ asr r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233F10:
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ str r0, [r4]
+ b _02233F42
+_02233F1A:
+ bl ErrorHandling
+ b _02233F42
+_02233F20:
+ ldr r0, [r4]
+ sub r0, r0, r5
+ str r0, [r4]
+ bpl _02233F42
+ mov r0, #0
+ str r0, [r4]
+ b _02233F42
+_02233F2E:
+ ldr r0, [r4]
+ eor r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233F36:
+ ldr r0, [r4]
+ and r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233F3E:
+ bl ErrorHandling
+_02233F42:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02233F48
+MOD11_02233F48: ; 0x02233F48
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ mov r0, #0xb5
+ add r5, r1, #0
+ lsl r0, r0, #6
+ add r2, r5, r0
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r6, r2, r0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_0223A404
+ ldr r1, _022342D0 ; =0x0000213C
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r2, [r5, r1]
+ ldr r0, _022342D4 ; =0xFFFDFFFF
+ and r2, r0
+ str r2, [r5, r1]
+ add r1, r5, #0
+ add r1, #0x8c
+ ldr r4, [r1]
+ cmp r4, #0x2e
+ blt _02233FA8
+ asr r7, r0, #0x11
+ mov r0, #0x4e
+ mov r1, #0xd
+ lsl r0, r0, #2
+ sub r4, #0x2e
+ str r1, [r5, r0]
+ b _02233FD8
+_02233FA8:
+ cmp r4, #0x27
+ blt _02233FBA
+ mov r0, #0x4e
+ mov r1, #0xc
+ lsl r0, r0, #2
+ sub r4, #0x27
+ mov r7, #2
+ str r1, [r5, r0]
+ b _02233FD8
+_02233FBA:
+ cmp r4, #0x16
+ blt _02233FCC
+ asr r7, r0, #0x12
+ mov r0, #0x4e
+ mov r1, #0xd
+ lsl r0, r0, #2
+ sub r4, #0x16
+ str r1, [r5, r0]
+ b _02233FD8
+_02233FCC:
+ mov r0, #0x4e
+ mov r1, #0xc
+ lsl r0, r0, #2
+ sub r4, #0xf
+ mov r7, #1
+ str r1, [r5, r0]
+_02233FD8:
+ cmp r7, #0
+ bgt _02233FDE
+ b _02234116
+_02233FDE:
+ add r1, r4, #1
+ add r6, #0x18
+ add r0, r6, r1
+ str r0, [sp, #4]
+ ldrsb r0, [r6, r1]
+ cmp r0, #0xc
+ bne _02234042
+ ldr r1, _022342D0 ; =0x0000213C
+ mov r0, #2
+ ldr r2, [r5, r1]
+ lsl r0, r0, #0x10
+ orr r0, r2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ sub r0, r0, #2
+ cmp r0, #1
+ bhi _0223400E
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ b _02234538
+_0223400E:
+ add r0, r5, #0
+ mov r1, #0x8e
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0xc
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r1, r4, #1
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r1, [sp, #0x14]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ b _02234538
+_02234042:
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #3
+ bne _0223408E
+ add r0, r5, #0
+ ldr r1, _022342D8 ; =0x0000026E
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x27
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _022342DC ; =0x00002D67
+ add r2, r5, r2
+ ldrb r2, [r2, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r2, [r0]
+ add r0, r4, #1
+ add r1, #0x40
+ str r0, [r5, r1]
+ b _022340FA
+_0223408E:
+ cmp r0, #5
+ bne _022340CA
+ mov r1, #0xbd
+ add r0, r5, #0
+ lsl r1, r1, #2
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x2d
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r2, [r0]
+ add r0, r4, #1
+ sub r1, #0x28
+ str r0, [r5, r1]
+ b _022340FA
+_022340CA:
+ cmp r7, #1
+ bne _022340D2
+ ldr r1, _022342E0 ; =0x000002EE
+ b _022340D4
+_022340D2:
+ ldr r1, _022342E4 ; =0x000002F1
+_022340D4:
+ add r0, r5, #0
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0xc
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r4, #1
+ add r5, #0xfc
+ str r0, [r5]
+_022340FA:
+ ldr r0, [sp, #4]
+ mov r1, #0
+ ldrsb r0, [r0, r1]
+ add r2, r0, r7
+ ldr r0, [sp, #4]
+ strb r2, [r0]
+ ldrsb r0, [r0, r1]
+ cmp r0, #0xc
+ bgt _0223410E
+ b _02234538
+_0223410E:
+ ldr r0, [sp, #4]
+ mov r1, #0xc
+ strb r1, [r0]
+ b _02234538
+_02234116:
+ add r0, r5, #0
+ add r0, #0x90
+ ldr r1, [r0]
+ mov r0, #2
+ lsl r0, r0, #0x1a
+ tst r1, r0
+ beq _02234126
+ b _0223449C
+_02234126:
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ ldr r2, [r5, #0x64]
+ cmp r2, r1
+ bne _02234134
+ b _022343E4
+_02234134:
+ ldr r0, [sp]
+ bl MOD11_02230270
+ lsl r0, r0, #3
+ mov r1, #0x71
+ add r0, r5, r0
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1d
+ beq _02234172
+ add r0, r5, #0
+ sub r1, #0xb3
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #2
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ mov r0, #1
+ str r0, [sp, #8]
+ b _0223444C
+_02234172:
+ add r2, r5, #0
+ add r2, #0x94
+ ldr r1, [r5, #0x64]
+ ldr r2, [r2]
+ add r0, r5, #0
+ mov r3, #0x1d
+ bl MOD11_02246D84
+ cmp r0, #1
+ beq _0223419A
+ add r2, r5, #0
+ add r2, #0x94
+ ldr r1, [r5, #0x64]
+ ldr r2, [r2]
+ add r0, r5, #0
+ mov r3, #0x49
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0223423C
+_0223419A:
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #3
+ bne _022341FE
+ add r0, r5, #0
+ ldr r1, _022342E8 ; =0x000002D7
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x35
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022342DC ; =0x00002D67
+ ldrb r1, [r1, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ mov r1, #1
+ lsl r1, r1, #8
+ str r0, [r5, r1]
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _022342DC ; =0x00002D67
+ add r2, r5, r2
+ ldrb r0, [r2, r0]
+ add r1, #0x44
+ str r0, [r5, r1]
+ b _02234236
+_022341FE:
+ add r0, r5, #0
+ ldr r1, _022342EC ; =0x0000029D
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0xb
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022342DC ; =0x00002D67
+ ldrb r1, [r1, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r1, [r0]
+_02234236:
+ mov r0, #1
+ str r0, [sp, #8]
+ b _0223444C
+_0223423C:
+ add r2, r5, #0
+ add r2, #0x94
+ ldr r1, [r5, #0x64]
+ ldr r2, [r2]
+ add r0, r5, #0
+ mov r3, #0x33
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02234256
+ add r0, r4, #1
+ cmp r0, #6
+ beq _0223426E
+_02234256:
+ add r2, r5, #0
+ add r2, #0x94
+ ldr r1, [r5, #0x64]
+ ldr r2, [r2]
+ add r0, r5, #0
+ mov r3, #0x34
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02234338
+ cmp r4, #0
+ bne _02234338
+_0223426E:
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #3
+ bne _022342F0
+ add r0, r5, #0
+ ldr r1, _022342E8 ; =0x000002D7
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x35
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022342DC ; =0x00002D67
+ ldrb r1, [r1, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ mov r1, #1
+ lsl r1, r1, #8
+ str r0, [r5, r1]
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _022342DC ; =0x00002D67
+ add r2, r5, r2
+ ldrb r0, [r2, r0]
+ add r1, #0x44
+ b _02234330
+ .align 2, 0
+_022342D0: .word 0x0000213C
+_022342D4: .word 0xFFFDFFFF
+_022342D8: .word 0x0000026E
+_022342DC: .word 0x00002D67
+_022342E0: .word 0x000002EE
+_022342E4: .word 0x000002F1
+_022342E8: .word 0x000002D7
+_022342EC: .word 0x0000029D
+_022342F0:
+ mov r1, #0xb
+ add r0, r5, #0
+ lsl r1, r1, #6
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x27
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _02234540 ; =0x00002D67
+ add r2, r5, r2
+ ldrb r2, [r2, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r2, [r0]
+ add r0, r4, #1
+ add r1, #0x40
+_02234330:
+ str r0, [r5, r1]
+ mov r0, #1
+ str r0, [sp, #8]
+ b _0223444C
+_02234338:
+ add r0, r4, #1
+ add r1, r6, r0
+ mov r0, #0x18
+ ldrsb r0, [r1, r0]
+ cmp r0, #0
+ bne _022343A2
+ ldr r1, _02234544 ; =0x0000213C
+ mov r0, #2
+ ldr r2, [r5, r1]
+ lsl r0, r0, #0x10
+ orr r0, r2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ sub r0, r0, #2
+ cmp r0, #1
+ bhi _0223436A
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223436A:
+ add r0, r5, #0
+ mov r1, #0x91
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0xc
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r1, r4, #1
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r1, [sp, #0x14]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022343A2:
+ add r2, r5, #0
+ add r2, #0x94
+ ldr r1, [r5, #0x64]
+ ldr r2, [r2]
+ add r0, r5, #0
+ mov r3, #0x13
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022343C6
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _022343C6
+ mov r0, #1
+ str r0, [sp, #8]
+ b _0223444C
+_022343C6:
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02234548 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x18
+ tst r0, r1
+ beq _0223444C
+ mov r0, #2
+ str r0, [sp, #8]
+ b _0223444C
+_022343E4:
+ add r1, r4, #1
+ add r2, r6, r1
+ mov r1, #0x18
+ ldrsb r1, [r2, r1]
+ cmp r1, #0
+ bne _0223444C
+ ldr r1, _02234544 ; =0x0000213C
+ lsr r0, r0, #0xa
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ sub r0, r0, #2
+ cmp r0, #1
+ bhi _02234414
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02234414:
+ add r0, r5, #0
+ mov r1, #0x91
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0xc
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r1, r4, #1
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r1, [sp, #0x14]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223444C:
+ ldr r0, [sp, #8]
+ cmp r0, #2
+ bne _0223446A
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _0223446A
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223446A:
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _02234488
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _02234488
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02234488:
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _0223449C
+ ldr r1, [sp, #0x14]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223449C:
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #3
+ bne _022344F0
+ add r0, r5, #0
+ ldr r1, _0223454C ; =0x00000296
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x36
+ add r0, #0xf5
+ strb r1, [r0]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02234540 ; =0x00002D67
+ ldrb r1, [r1, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ mov r1, #1
+ lsl r1, r1, #8
+ str r0, [r5, r1]
+ add r2, r4, #1
+ add r0, r1, #4
+ str r2, [r5, r0]
+ b _02234524
+_022344F0:
+ mov r0, #0
+ mvn r0, r0
+ cmp r7, r0
+ bne _022344FC
+ ldr r1, _02234550 ; =0x000002FA
+ b _022344FE
+_022344FC:
+ ldr r1, _02234554 ; =0x000002FD
+_022344FE:
+ add r0, r5, #0
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0xc
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r4, #1
+ add r5, #0xfc
+ str r0, [r5]
+_02234524:
+ add r6, #0x18
+ add r1, r4, #1
+ ldrsb r0, [r6, r1]
+ add r0, r0, r7
+ strb r0, [r6, r1]
+ ldrsb r0, [r6, r1]
+ cmp r0, #0
+ bge _02234538
+ mov r0, #0
+ strb r0, [r6, r1]
+_02234538:
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02234540: .word 0x00002D67
+_02234544: .word 0x0000213C
+_02234548: .word 0x00002DB0
+_0223454C: .word 0x00000296
+_02234550: .word 0x000002FA
+_02234554: .word 0x000002FD
+
+ thumb_func_start MOD11_02234558
+MOD11_02234558: ; 0x02234558
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ ldr r0, [sp]
+ ldr r2, [sp, #8]
+ add r1, r5, #0
+ bl MOD11_0223C230
+ str r0, [sp, #4]
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02243420
+ str r0, [sp, #0xc]
+ cmp r7, #0x14
+ bhi _02234644
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022345B2: ; jump table
+ .short _02234644 - _022345B2 - 2 ; case 0
+ .short _02234644 - _022345B2 - 2 ; case 1
+ .short _02234644 - _022345B2 - 2 ; case 2
+ .short _02234644 - _022345B2 - 2 ; case 3
+ .short _02234644 - _022345B2 - 2 ; case 4
+ .short _02234644 - _022345B2 - 2 ; case 5
+ .short _02234644 - _022345B2 - 2 ; case 6
+ .short _022345DC - _022345B2 - 2 ; case 7
+ .short _022345E0 - _022345B2 - 2 ; case 8
+ .short _022345E6 - _022345B2 - 2 ; case 9
+ .short _022345EC - _022345B2 - 2 ; case 10
+ .short _022345F2 - _022345B2 - 2 ; case 11
+ .short _022345FE - _022345B2 - 2 ; case 12
+ .short _02234606 - _022345B2 - 2 ; case 13
+ .short _02234610 - _022345B2 - 2 ; case 14
+ .short _02234616 - _022345B2 - 2 ; case 15
+ .short _0223461C - _022345B2 - 2 ; case 16
+ .short _02234626 - _022345B2 - 2 ; case 17
+ .short _0223462C - _022345B2 - 2 ; case 18
+ .short _02234638 - _022345B2 - 2 ; case 19
+ .short _0223463E - _022345B2 - 2 ; case 20
+_022345DC:
+ str r4, [sp, #0xc]
+ b _02234648
+_022345E0:
+ add r0, r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_022345E6:
+ sub r0, r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_022345EC:
+ orr r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_022345F2:
+ mov r1, #0
+ mvn r1, r1
+ eor r1, r4
+ and r0, r1
+ str r0, [sp, #0xc]
+ b _02234648
+_022345FE:
+ add r1, r0, #0
+ mul r1, r4
+ str r1, [sp, #0xc]
+ b _02234648
+_02234606:
+ add r1, r4, #0
+ bl _s32_div_f
+ str r0, [sp, #0xc]
+ b _02234648
+_02234610:
+ lsl r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_02234616:
+ asr r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_0223461C:
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ str r0, [sp, #0xc]
+ b _02234648
+_02234626:
+ bl ErrorHandling
+ b _02234648
+_0223462C:
+ sub r0, r0, r4
+ str r0, [sp, #0xc]
+ bpl _02234648
+ mov r0, #0
+ str r0, [sp, #0xc]
+ b _02234648
+_02234638:
+ eor r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_0223463E:
+ and r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_02234644:
+ bl ErrorHandling
+_02234648:
+ cmp r6, #0x1a
+ bne _0223465E
+ ldr r1, [sp, #4]
+ ldr r2, [sp, #0xc]
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ bl MOD11_0223D1C4
+_0223465E:
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ add r2, r6, #0
+ add r3, sp, #0xc
+ bl MOD11_0224379C
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r5, #0
+ bl MOD11_02245190
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223467C
+MOD11_0223467C: ; 0x0223467C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ ldr r1, _022346B4 ; =0x0000218C
+ add r2, r5, r1
+ lsl r1, r0, #2
+ ldr r0, [r2, r1]
+ orr r0, r4
+ str r0, [r2, r1]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022346B4: .word 0x0000218C
+
+ thumb_func_start MOD11_022346B8
+MOD11_022346B8: ; 0x022346B8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_02255D3C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022346F0
+MOD11_022346F0: ; 0x022346F0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ cmp r4, #0
+ bne _02234766
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ mov r4, #0
+ str r0, [sp, #4]
+ cmp r0, #0
+ ble _022347A8
+_02234732:
+ cmp r7, #0
+ bne _02234750
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _0223475C
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+ b _022347A8
+_02234750:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ beq _022347A8
+_0223475C:
+ ldr r0, [sp, #4]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _02234732
+ b _022347A8
+_02234766:
+ ldr r0, [sp]
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ cmp r7, #0
+ bne _02234790
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _022347A8
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+ b _022347A8
+_02234790:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ beq _022347A8
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+_022347A8:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022347B0
+MOD11_022347B0: ; 0x022347B0
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ bl LCRandom
+ add r1, r4, #1
+ bl _s32_div_f
+ mov r0, #0x4d
+ add r1, r6, r1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022347E4
+MOD11_022347E4: ; 0x022347E4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223A444
+ add r4, r0, #0
+ ldr r2, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_0223A444
+ add r1, r0, #0
+ cmp r6, #0x14
+ bhi _022348F2
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02234832: ; jump table
+ .short _022348F2 - _02234832 - 2 ; case 0
+ .short _022348F2 - _02234832 - 2 ; case 1
+ .short _022348F2 - _02234832 - 2 ; case 2
+ .short _022348F2 - _02234832 - 2 ; case 3
+ .short _022348F2 - _02234832 - 2 ; case 4
+ .short _022348F2 - _02234832 - 2 ; case 5
+ .short _022348F2 - _02234832 - 2 ; case 6
+ .short _0223485C - _02234832 - 2 ; case 7
+ .short _02234862 - _02234832 - 2 ; case 8
+ .short _0223486C - _02234832 - 2 ; case 9
+ .short _02234876 - _02234832 - 2 ; case 10
+ .short _02234880 - _02234832 - 2 ; case 11
+ .short _02234890 - _02234832 - 2 ; case 12
+ .short _0223489A - _02234832 - 2 ; case 13
+ .short _022348A6 - _02234832 - 2 ; case 14
+ .short _022348B2 - _02234832 - 2 ; case 15
+ .short _022348BE - _02234832 - 2 ; case 16
+ .short _022348C8 - _02234832 - 2 ; case 17
+ .short _022348CE - _02234832 - 2 ; case 18
+ .short _022348DE - _02234832 - 2 ; case 19
+ .short _022348E8 - _02234832 - 2 ; case 20
+_0223485C:
+ ldr r0, [r1]
+ str r0, [r4]
+ b _022348F6
+_02234862:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ add r0, r2, r0
+ str r0, [r4]
+ b _022348F6
+_0223486C:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ sub r0, r2, r0
+ str r0, [r4]
+ b _022348F6
+_02234876:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ orr r0, r2
+ str r0, [r4]
+ b _022348F6
+_02234880:
+ mov r0, #0
+ ldr r1, [r1]
+ mvn r0, r0
+ ldr r2, [r4]
+ eor r0, r1
+ and r0, r2
+ str r0, [r4]
+ b _022348F6
+_02234890:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ mul r0, r2
+ str r0, [r4]
+ b _022348F6
+_0223489A:
+ ldr r0, [r4]
+ ldr r1, [r1]
+ bl _s32_div_f
+ str r0, [r4]
+ b _022348F6
+_022348A6:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ add r1, r2, #0
+ lsl r1, r0
+ str r1, [r4]
+ b _022348F6
+_022348B2:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ add r1, r2, #0
+ asr r1, r0
+ str r1, [r4]
+ b _022348F6
+_022348BE:
+ ldr r0, [r1]
+ bl MaskOfFlagNo
+ str r0, [r4]
+ b _022348F6
+_022348C8:
+ ldr r0, [r4]
+ str r0, [r1]
+ b _022348F6
+_022348CE:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ sub r0, r2, r0
+ str r0, [r4]
+ bpl _022348F6
+ mov r0, #0
+ str r0, [r4]
+ b _022348F6
+_022348DE:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ eor r0, r2
+ str r0, [r4]
+ b _022348F6
+_022348E8:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ and r0, r2
+ str r0, [r4]
+ b _022348F6
+_022348F2:
+ bl ErrorHandling
+_022348F6:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022348FC
+MOD11_022348FC: ; 0x022348FC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ ldr r2, [sp, #4]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ str r0, [sp]
+ ldr r1, [sp]
+ add r0, r4, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02243420
+ str r0, [sp, #0xc]
+ ldr r2, [sp, #8]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0223A444
+ add r1, r0, #0
+ cmp r5, #0x14
+ bhi _02234A22
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02234962: ; jump table
+ .short _02234A22 - _02234962 - 2 ; case 0
+ .short _02234A22 - _02234962 - 2 ; case 1
+ .short _02234A22 - _02234962 - 2 ; case 2
+ .short _02234A22 - _02234962 - 2 ; case 3
+ .short _02234A22 - _02234962 - 2 ; case 4
+ .short _02234A22 - _02234962 - 2 ; case 5
+ .short _02234A22 - _02234962 - 2 ; case 6
+ .short _0223498C - _02234962 - 2 ; case 7
+ .short _02234992 - _02234962 - 2 ; case 8
+ .short _0223499C - _02234962 - 2 ; case 9
+ .short _022349A6 - _02234962 - 2 ; case 10
+ .short _022349B0 - _02234962 - 2 ; case 11
+ .short _022349C0 - _02234962 - 2 ; case 12
+ .short _022349CA - _02234962 - 2 ; case 13
+ .short _022349D6 - _02234962 - 2 ; case 14
+ .short _022349E2 - _02234962 - 2 ; case 15
+ .short _022349EE - _02234962 - 2 ; case 16
+ .short _022349F8 - _02234962 - 2 ; case 17
+ .short _022349FE - _02234962 - 2 ; case 18
+ .short _02234A0E - _02234962 - 2 ; case 19
+ .short _02234A18 - _02234962 - 2 ; case 20
+_0223498C:
+ ldr r0, [r1]
+ str r0, [sp, #0xc]
+ b _02234A26
+_02234992:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ add r0, r2, r0
+ str r0, [sp, #0xc]
+ b _02234A26
+_0223499C:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ sub r0, r2, r0
+ str r0, [sp, #0xc]
+ b _02234A26
+_022349A6:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ orr r0, r2
+ str r0, [sp, #0xc]
+ b _02234A26
+_022349B0:
+ ldr r2, [r1]
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [sp, #0xc]
+ eor r1, r2
+ and r0, r1
+ str r0, [sp, #0xc]
+ b _02234A26
+_022349C0:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ mul r0, r2
+ str r0, [sp, #0xc]
+ b _02234A26
+_022349CA:
+ ldr r0, [sp, #0xc]
+ ldr r1, [r1]
+ bl _s32_div_f
+ str r0, [sp, #0xc]
+ b _02234A26
+_022349D6:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ add r1, r2, #0
+ lsl r1, r0
+ str r1, [sp, #0xc]
+ b _02234A26
+_022349E2:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ add r1, r2, #0
+ asr r1, r0
+ str r1, [sp, #0xc]
+ b _02234A26
+_022349EE:
+ ldr r0, [r1]
+ bl MaskOfFlagNo
+ str r0, [sp, #0xc]
+ b _02234A26
+_022349F8:
+ ldr r0, [sp, #0xc]
+ str r0, [r1]
+ b _02234A26
+_022349FE:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ sub r0, r2, r0
+ str r0, [sp, #0xc]
+ bpl _02234A26
+ mov r0, #0
+ str r0, [sp, #0xc]
+ b _02234A26
+_02234A0E:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ eor r0, r2
+ str r0, [sp, #0xc]
+ b _02234A26
+_02234A18:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ and r0, r2
+ str r0, [sp, #0xc]
+ b _02234A26
+_02234A22:
+ bl ErrorHandling
+_02234A26:
+ cmp r5, #0x11
+ beq _02234A56
+ cmp r6, #0x1a
+ bne _02234A40
+ ldr r1, [sp]
+ ldr r2, [sp, #0xc]
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ bl MOD11_0223D1C4
+_02234A40:
+ ldr r1, [sp]
+ add r0, r4, #0
+ add r2, r6, #0
+ add r3, sp, #0xc
+ bl MOD11_0224379C
+ ldr r2, [sp]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02245190
+_02234A56:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02234A5C
+MOD11_02234A5C: ; 0x02234A5C
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A424
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234A7C
+MOD11_02234A7C: ; 0x02234A7C
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02234A9C
+MOD11_02234A9C: ; 0x02234A9C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A444
+ add r2, r0, #0
+ ldr r2, [r2]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234ACC
+MOD11_02234ACC: ; 0x02234ACC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ str r0, [sp, #8]
+ mov r4, #0
+ bl MOD11_0222FF74
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r5, #0x64]
+ lsl r0, r1, #1
+ add r2, r5, r0
+ ldr r0, _02234BCC ; =0x00003084
+ ldrh r2, [r2, r0]
+ cmp r2, #0
+ beq _02234AF6
+ add r4, r2, #0
+ b _02234B40
+_02234AF6:
+ mov r2, #2
+ tst r2, r6
+ beq _02234B40
+ lsl r1, r1, #3
+ add r3, r5, r1
+ add r1, r0, #0
+ add r1, #0xe
+ add r4, r0, #0
+ ldrh r2, [r3, r1]
+ add r1, r0, #0
+ add r4, #8
+ add r0, #0xa
+ add r1, #0xc
+ ldrh r4, [r3, r4]
+ ldrh r0, [r3, r0]
+ ldrh r1, [r3, r1]
+ add r0, r4, r0
+ add r0, r1, r0
+ add r4, r2, r0
+ beq _02234B40
+ ldr r6, _02234BD0 ; =0x0000308C
+ mov r7, #0x1e
+_02234B22:
+ bl LCRandom
+ lsr r2, r0, #0x1f
+ lsl r0, r0, #0x1e
+ ldr r1, [r5, #0x64]
+ sub r0, r0, r2
+ ror r0, r7
+ add r0, r2, r0
+ lsl r1, r1, #3
+ lsl r2, r0, #1
+ add r0, r5, r1
+ add r0, r2, r0
+ ldrh r4, [r0, r6]
+ cmp r4, #0
+ beq _02234B22
+_02234B40:
+ cmp r4, #0
+ beq _02234BAA
+ lsl r1, r4, #0x10
+ add r0, r5, #0
+ lsr r1, r1, #0x10
+ bl MOD11_0224C0B4
+ cmp r0, #1
+ bne _02234BAA
+ ldr r1, _02234BD4 ; =0x0000213C
+ lsl r3, r4, #0x10
+ ldr r2, [r5, r1]
+ mov r0, #1
+ bic r2, r0
+ str r2, [r5, r1]
+ ldr r2, [r5, r1]
+ ldr r0, _02234BD8 ; =0xFFFFBFFF
+ lsr r3, r3, #0x10
+ and r0, r2
+ str r0, [r5, r1]
+ ldr r0, _02234BDC ; =0x00003044
+ add r1, r5, #0
+ str r4, [r5, r0]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ ldr r2, [r5, #0x64]
+ bl MOD11_02244C28
+ str r0, [r5, #0x6c]
+ cmp r0, #0xff
+ bne _02234B94
+ mov r2, #0x26
+ str r2, [r5, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, #0xf3
+ bl MOD11_0223A434
+ b _02234BC4
+_02234B94:
+ ldr r1, [r5, #0x64]
+ lsl r1, r1, #4
+ add r2, r5, r1
+ ldr r1, _02234BE0 ; =0x000021AC
+ str r0, [r2, r1]
+ add r0, r5, #0
+ mov r1, #0
+ add r2, r4, #0
+ bl MOD11_0223A434
+ b _02234BC4
+_02234BAA:
+ ldr r2, [r5, #0x64]
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ mov r1, #0x1c
+ add r3, r2, #0
+ mul r3, r1
+ add r0, r5, r0
+ ldr r2, [r0, r3]
+ mov r1, #1
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ str r1, [r0, r3]
+_02234BC4:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02234BCC: .word 0x00003084
+_02234BD0: .word 0x0000308C
+_02234BD4: .word 0x0000213C
+_02234BD8: .word 0xFFFFBFFF
+_02234BDC: .word 0x00003044
+_02234BE0: .word 0x000021AC
+
+ thumb_func_start MOD11_02234BE4
+MOD11_02234BE4: ; 0x02234BE4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ mov r2, #0
+ cmp r0, #0
+ ble _02234C24
+ ldr r6, _02234C28 ; =0x00002D58
+ mov r1, #6
+ add r5, r6, #0
+ add r5, #0x58
+_02234C06:
+ mov r7, #0
+_02234C08:
+ add r3, r4, r7
+ add r7, r7, #1
+ strb r1, [r3, r6]
+ cmp r7, #8
+ blt _02234C08
+ ldr r3, _02234C2C ; =0x00002DB0
+ add r2, r2, #1
+ ldr r7, [r4, r3]
+ ldr r3, _02234C30 ; =0xFFEFFFFF
+ and r3, r7
+ str r3, [r4, r5]
+ add r4, #0xc0
+ cmp r2, r0
+ blt _02234C06
+_02234C24:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02234C28: .word 0x00002D58
+_02234C2C: .word 0x00002DB0
+_02234C30: .word 0xFFEFFFFF
+
+ thumb_func_start MOD11_02234C34
+MOD11_02234C34: ; 0x02234C34
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022451C0
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02234C60
+MOD11_02234C60: ; 0x02234C60
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022451F0
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02234C8C
+MOD11_02234C8C: ; 0x02234C8C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_02255E0C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234CC4
+MOD11_02234CC4: ; 0x02234CC4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_02255E2C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234CFC
+MOD11_02234CFC: ; 0x02234CFC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ add r7, r0, #0
+ add r5, r1, #0
+ str r2, [sp]
+ mov r0, #5
+ mov r1, #0x60
+ bl AllocFromHeap
+ add r4, r0, #0
+ ldr r0, [sp]
+ add r6, r7, #0
+ lsl r0, r0, #1
+ add r6, #0xa0
+ str r0, [sp, #4]
+ ldrh r0, [r6, r0]
+ add r1, sp, #8
+ bl FUN_0206ADE0
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ ldrh r0, [r6, r0]
+ bl FUN_0206ADF0
+ add r0, sp, #8
+ ldrb r1, [r0]
+ cmp r1, #3
+ bhi _02234D48
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02234D40: ; jump table
+ .short _02234D48 - _02234D40 - 2 ; case 0
+ .short _02234D5C - _02234D40 - 2 ; case 1
+ .short _02234D6E - _02234D40 - 2 ; case 2
+ .short _02234D7E - _02234D40 - 2 ; case 3
+_02234D48:
+ add r0, sp, #8
+ ldrb r0, [r0, #3]
+ sub r1, r0, #1
+ mov r0, #6
+ mul r0, r1
+ add r0, r4, r0
+ ldrh r0, [r0, #2]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ b _02234D8C
+_02234D5C:
+ ldrb r0, [r0, #3]
+ sub r1, r0, #1
+ mov r0, #0xe
+ mul r0, r1
+ add r0, r4, r0
+ ldrh r0, [r0, #2]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ b _02234D8C
+_02234D6E:
+ ldrb r0, [r0, #3]
+ sub r0, r0, #1
+ lsl r0, r0, #3
+ add r0, r4, r0
+ ldrh r0, [r0, #2]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ b _02234D8C
+_02234D7E:
+ ldrb r0, [r0, #3]
+ sub r0, r0, #1
+ lsl r0, r0, #4
+ add r0, r4, r0
+ ldrh r0, [r0, #2]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+_02234D8C:
+ ldr r2, [r7, #0x2c]
+ mov r0, #0x10
+ tst r0, r2
+ bne _02234D98
+ cmp r2, #0x4b
+ bne _02234DAE
+_02234D98:
+ add r0, sp, #8
+ ldrb r2, [r0, #1]
+ ldr r0, _02234DEC ; =0x0225FF20
+ lsl r1, r1, #2
+ ldrb r0, [r0, r2]
+ ldr r2, _02234DF0 ; =0x00002168
+ ldr r2, [r5, r2]
+ add r5, r0, #0
+ mul r1, r2
+ mul r5, r1
+ b _02234DDE
+_02234DAE:
+ mov r0, #2
+ tst r0, r2
+ add r0, sp, #8
+ beq _02234DCC
+ ldrb r2, [r0, #1]
+ ldr r0, _02234DEC ; =0x0225FF20
+ lsl r1, r1, #2
+ ldrb r0, [r0, r2]
+ ldr r2, _02234DF0 ; =0x00002168
+ ldr r2, [r5, r2]
+ add r5, r0, #0
+ mul r1, r2
+ lsl r1, r1, #1
+ mul r5, r1
+ b _02234DDE
+_02234DCC:
+ ldrb r2, [r0, #1]
+ ldr r0, _02234DEC ; =0x0225FF20
+ lsl r1, r1, #2
+ ldrb r0, [r0, r2]
+ ldr r2, _02234DF0 ; =0x00002168
+ ldr r2, [r5, r2]
+ add r5, r0, #0
+ mul r1, r2
+ mul r5, r1
+_02234DDE:
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02234DEC: .word 0x0225FF20
+_02234DF0: .word 0x00002168
+
+ thumb_func_start MOD11_02234DF4
+MOD11_02234DF4: ; 0x02234DF4
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, _02234E70 ; =0x0000241C
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ bne _02234E3E
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD11_02234CFC
+ add r4, r0, #0
+ ldr r1, [r5, #0x2c]
+ mov r0, #0x10
+ tst r0, r1
+ bne _02234E22
+ cmp r1, #0x4b
+ bne _02234E2E
+_02234E22:
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_02234CFC
+ add r4, r4, r0
+_02234E2E:
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_022301D4
+ add r1, r4, #0
+ bl FUN_02023A30
+ b _02234E56
+_02234E3E:
+ ldr r0, [r5, #0x68]
+ ldr r1, [r5, #0x48]
+ bl MOD11_0223158C
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_022301D4
+ add r1, r4, #0
+ bl FUN_02023A54
+_02234E56:
+ cmp r4, #0
+ beq _02234E62
+ mov r0, #0x13
+ lsl r0, r0, #4
+ str r4, [r6, r0]
+ b _02234E6A
+_02234E62:
+ mov r0, #0x13
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+_02234E6A:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02234E70: .word 0x0000241C
+
+ thumb_func_start MOD11_02234E74
+MOD11_02234E74: ; 0x02234E74
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_02230E20
+ cmp r0, #1
+ beq _02234EAC
+ cmp r4, #0xf
+ beq _02234EAC
+ cmp r4, #0x10
+ beq _02234EAC
+ add r0, r4, #0
+ sub r0, #0x19
+ cmp r0, #1
+ bhi _02234ED2
+_02234EAC:
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ bl MOD11_0224C20C
+ cmp r0, #1
+ bne _02234ED2
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ add r3, r4, #0
+ bl MOD11_02255E4C
+_02234ED2:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234ED8
+MOD11_02234ED8: ; 0x02234ED8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_02230E20
+ cmp r0, #1
+ beq _02234F1A
+ cmp r4, #0xf
+ beq _02234F1A
+ cmp r4, #0x10
+ beq _02234F1A
+ add r0, r4, #0
+ sub r0, #0x19
+ cmp r0, #1
+ bhi _02234F5C
+_02234F1A:
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ add r7, r0, #0
+ ldr r2, [sp, #4]
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223C230
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ bl MOD11_0224C20C
+ cmp r0, #1
+ bne _02234F5C
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD11_0224C20C
+ cmp r0, #1
+ bne _02234F5C
+ ldr r3, [sp, #8]
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ str r4, [sp]
+ bl MOD11_02255E7C
+_02234F5C:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234F64
+MOD11_02234F64: ; 0x02234F64
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r7, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ add r2, r6, #0
+ bl MOD11_0223A444
+ add r4, r0, #0
+ add r0, r7, #0
+ bl MOD11_02230E20
+ cmp r0, #1
+ beq _02234FB4
+ cmp r6, #0xf
+ beq _02234FB4
+ cmp r6, #0x10
+ beq _02234FB4
+ ldr r0, [r4]
+ sub r0, #0x19
+ cmp r0, #1
+ bhi _02234FCE
+_02234FB4:
+ ldr r1, [sp]
+ ldr r2, [r4]
+ add r0, r5, #0
+ bl MOD11_0224C20C
+ cmp r0, #1
+ bne _02234FCE
+ ldr r2, [sp]
+ ldr r3, [r4]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02255E4C
+_02234FCE:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234FD4
+MOD11_02234FD4: ; 0x02234FD4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r1, r4, #0
+ ldr r3, _02235008 ; =0x0000219C
+ add r4, r4, r2
+ ldrb r3, [r4, r3]
+ add r0, r5, #0
+ bl MOD11_02255EAC
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02235008: .word 0x0000219C
+
+ thumb_func_start MOD11_0223500C
+MOD11_0223500C: ; 0x0223500C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r1, r4, #0
+ ldr r3, _02235040 ; =0x0000219C
+ add r4, r4, r2
+ ldrb r3, [r4, r3]
+ add r0, r5, #0
+ bl MOD11_02255EF0
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02235040: .word 0x0000219C
+
+ thumb_func_start MOD11_02235044
+MOD11_02235044: ; 0x02235044
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02255F3C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02235070
+MOD11_02235070: ; 0x02235070
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02255F54
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0223509C
+MOD11_0223509C: ; 0x0223509C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ mov r2, #0x13
+ lsl r2, r2, #4
+ add r1, r0, #0
+ ldr r2, [r4, r2]
+ add r0, r5, #0
+ bl MOD11_02255E2C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022350CC
+MOD11_022350CC: ; 0x022350CC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x79
+ bne _022350FC
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022350FC:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _02235238 ; =0x00002D4C
+ mov r6, #0
+_02235108:
+ ldrh r1, [r2, r0]
+ cmp r1, #0
+ beq _02235116
+ add r6, r6, #1
+ add r2, r2, #2
+ cmp r6, #4
+ blt _02235108
+_02235116:
+ mov r0, #0
+ str r0, [sp, #4]
+ cmp r6, #0
+ ble _0223518E
+ add r7, r0, #0
+_02235120:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r0, r4, r0
+ add r2, r7, r0
+ ldr r0, _02235238 ; =0x00002D4C
+ ldrh r0, [r2, r0]
+ cmp r0, #0xa0
+ beq _02235182
+ lsl r0, r0, #4
+ add r2, r4, r0
+ ldr r0, _0223523C ; =0x000003E2
+ ldrb r5, [r2, r0]
+ cmp r5, #9
+ bne _02235162
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #7
+ beq _0223515C
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #7
+ bne _02235160
+_0223515C:
+ mov r5, #7
+ b _02235162
+_02235160:
+ mov r5, #0
+_02235162:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _02235182
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ bne _0223518E
+_02235182:
+ ldr r0, [sp, #4]
+ add r7, r7, #2
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, r6
+ blt _02235120
+_0223518E:
+ ldr r0, [sp, #4]
+ cmp r0, r6
+ bne _0223519E
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+ b _02235230
+_0223519E:
+ ldr r7, _02235238 ; =0x00002D4C
+_022351A0:
+ bl LCRandom
+ add r1, r6, #0
+ bl _s32_div_f
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ lsl r1, r1, #1
+ add r0, r4, r0
+ add r0, r1, r0
+ ldrh r0, [r0, r7]
+ cmp r0, #0xa0
+ beq _022351A0
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _0223523C ; =0x000003E2
+ ldrb r5, [r1, r0]
+ cmp r5, #9
+ bne _022351EE
+ add r1, r2, #0
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #7
+ beq _022351E8
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #7
+ bne _022351EC
+_022351E8:
+ mov r5, #7
+ b _022351EE
+_022351EC:
+ mov r5, #0
+_022351EE:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _022351A0
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _022351A0
+ ldr r1, [r4, #0x64]
+ lsl r0, r5, #0x18
+ add r3, r1, #0
+ mov r2, #0xc0
+ mul r3, r2
+ ldr r1, _02235240 ; =0x00002D64
+ lsr r0, r0, #0x18
+ add r3, r4, r3
+ strb r0, [r3, r1]
+ ldr r3, [r4, #0x64]
+ add r1, r1, #1
+ add r6, r3, #0
+ mul r6, r2
+ add r3, r4, r6
+ strb r0, [r3, r1]
+ add r2, #0x70
+ str r5, [r4, r2]
+_02235230:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02235238: .word 0x00002D4C
+_0223523C: .word 0x000003E2
+_02235240: .word 0x00002D64
+
+ thumb_func_start MOD11_02235244
+MOD11_02235244: ; 0x02235244
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r1, #0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r0, [sp]
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_0223A444
+ add r4, r0, #0
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_0223A444
+ cmp r7, #6
+ bhi _022352FC
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223529A: ; jump table
+ .short _022352A8 - _0223529A - 2 ; case 0
+ .short _022352B4 - _0223529A - 2 ; case 1
+ .short _022352C0 - _0223529A - 2 ; case 2
+ .short _022352CC - _0223529A - 2 ; case 3
+ .short _022352D8 - _0223529A - 2 ; case 4
+ .short _022352E4 - _0223529A - 2 ; case 5
+ .short _022352F0 - _0223529A - 2 ; case 6
+_022352A8:
+ ldr r1, [r4]
+ ldr r0, [r0]
+ cmp r1, r0
+ beq _022352FC
+ mov r5, #0
+ b _022352FC
+_022352B4:
+ ldr r1, [r4]
+ ldr r0, [r0]
+ cmp r1, r0
+ bne _022352FC
+ mov r5, #0
+ b _022352FC
+_022352C0:
+ ldr r1, [r4]
+ ldr r0, [r0]
+ cmp r1, r0
+ bhi _022352FC
+ mov r5, #0
+ b _022352FC
+_022352CC:
+ ldr r1, [r4]
+ ldr r0, [r0]
+ cmp r1, r0
+ bls _022352FC
+ mov r5, #0
+ b _022352FC
+_022352D8:
+ ldr r1, [r4]
+ ldr r0, [r0]
+ tst r0, r1
+ bne _022352FC
+ mov r5, #0
+ b _022352FC
+_022352E4:
+ ldr r1, [r4]
+ ldr r0, [r0]
+ tst r0, r1
+ beq _022352FC
+ mov r5, #0
+ b _022352FC
+_022352F0:
+ ldr r1, [r0]
+ ldr r0, [r4]
+ and r0, r1
+ cmp r1, r0
+ beq _022352FC
+ mov r5, #0
+_022352FC:
+ cmp r5, #0
+ beq _02235308
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223A424
+_02235308:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02235310
+MOD11_02235310: ; 0x02235310
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r1, #0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r0, [sp]
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ ldr r2, [sp, #4]
+ add r0, r6, #0
+ mov r3, #0
+ bl MOD11_02243420
+ add r4, r0, #0
+ ldr r0, [sp]
+ ldr r2, [sp, #8]
+ add r1, r6, #0
+ bl MOD11_0223A444
+ cmp r7, #6
+ bhi _022353D0
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223537A: ; jump table
+ .short _02235388 - _0223537A - 2 ; case 0
+ .short _02235392 - _0223537A - 2 ; case 1
+ .short _0223539C - _0223537A - 2 ; case 2
+ .short _022353A6 - _0223537A - 2 ; case 3
+ .short _022353B0 - _0223537A - 2 ; case 4
+ .short _022353BA - _0223537A - 2 ; case 5
+ .short _022353C4 - _0223537A - 2 ; case 6
+_02235388:
+ ldr r0, [r0]
+ cmp r4, r0
+ beq _022353D0
+ mov r5, #0
+ b _022353D0
+_02235392:
+ ldr r0, [r0]
+ cmp r4, r0
+ bne _022353D0
+ mov r5, #0
+ b _022353D0
+_0223539C:
+ ldr r0, [r0]
+ cmp r4, r0
+ bhi _022353D0
+ mov r5, #0
+ b _022353D0
+_022353A6:
+ ldr r0, [r0]
+ cmp r4, r0
+ bls _022353D0
+ mov r5, #0
+ b _022353D0
+_022353B0:
+ ldr r0, [r0]
+ tst r0, r4
+ bne _022353D0
+ mov r5, #0
+ b _022353D0
+_022353BA:
+ ldr r0, [r0]
+ tst r0, r4
+ beq _022353D0
+ mov r5, #0
+ b _022353D0
+_022353C4:
+ ldr r1, [r0]
+ add r0, r1, #0
+ and r0, r4
+ cmp r1, r0
+ beq _022353D0
+ mov r5, #0
+_022353D0:
+ cmp r5, #0
+ beq _022353DC
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223A424
+_022353DC:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022353E4
+MOD11_022353E4: ; 0x022353E4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r1, _0223542C ; =0x00002168
+ ldr r2, [r4, r0]
+ ldr r1, [r4, r1]
+ add r3, r2, #0
+ mul r3, r1
+ add r1, r0, #0
+ sub r1, #0x1c
+ str r3, [r4, r1]
+ add r1, r0, #0
+ sub r1, #0x1c
+ ldr r2, [r4, r1]
+ ldr r1, _02235430 ; =0x0000FFFF
+ cmp r2, r1
+ ble _02235416
+ sub r0, #0x1c
+ str r1, [r4, r0]
+_02235416:
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_022301D4
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ bl FUN_02023A30
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223542C: .word 0x00002168
+_02235430: .word 0x0000FFFF
+
+ thumb_func_start MOD11_02235434
+MOD11_02235434: ; 0x02235434
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r1, [r5, #0x64]
+ add r0, r7, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ add r3, r5, r0
+ lsl r2, r6, #2
+ ldr r1, [r3, r2]
+ mov r4, #2
+ tst r4, r1
+ beq _02235478
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ ldr r1, _02235508 ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+ b _02235504
+_02235478:
+ mov r4, #2
+ orr r1, r4
+ str r1, [r3, r2]
+ add r1, r0, #0
+ add r1, #8
+ add r4, r5, r1
+ lsl r6, r6, #3
+ ldr r2, [r4, r6]
+ ldr r1, _0223550C ; =0xFFFFFC7F
+ add r0, #0xc4
+ and r1, r2
+ orr r0, r1
+ str r0, [r4, r6]
+ ldr r0, [r4, r6]
+ mov r1, #0x60
+ bic r0, r1
+ ldr r1, [r5, #0x64]
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x19
+ orr r0, r1
+ str r0, [r4, r6]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ cmp r0, #0x60
+ bne _022354CC
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ ldr r1, [r4, r6]
+ ldr r2, _0223550C ; =0xFFFFFC7F
+ and r2, r1
+ lsl r1, r1, #0x16
+ lsr r1, r1, #0x1d
+ add r0, r1, r0
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x16
+ orr r0, r2
+ str r0, [r4, r6]
+_022354CC:
+ add r0, r5, #0
+ mov r1, #0x14
+ add r0, #0xf5
+ strb r1, [r0]
+ ldr r0, _02235510 ; =0x00003044
+ mov r2, #1
+ ldr r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0xf8
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r3, [r5, #0x64]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_022467AC
+ cmp r0, #2
+ bne _022354FE
+ mov r0, #0xc0
+ add r5, #0xf6
+ strh r0, [r5]
+ b _02235504
+_022354FE:
+ mov r0, #0xbe
+ add r5, #0xf6
+ strh r0, [r5]
+_02235504:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235508: .word 0x0000216C
+_0223550C: .word 0xFFFFFC7F
+_02235510: .word 0x00003044
+
+ thumb_func_start MOD11_02235514
+MOD11_02235514: ; 0x02235514
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r1, [r5, #0x64]
+ add r0, r7, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ add r3, r5, r0
+ lsl r2, r6, #2
+ ldr r1, [r3, r2]
+ mov r4, #1
+ tst r4, r1
+ beq _02235558
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ ldr r1, _022355EC ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+ b _022355E6
+_02235558:
+ mov r4, #1
+ orr r1, r4
+ add r0, #8
+ add r4, r5, r0
+ lsl r6, r6, #3
+ str r1, [r3, r2]
+ ldr r1, [r4, r6]
+ mov r0, #0x1c
+ bic r1, r0
+ mov r0, #0x14
+ orr r0, r1
+ str r0, [r4, r6]
+ ldr r0, [r4, r6]
+ mov r1, #3
+ bic r0, r1
+ ldr r2, [r5, #0x64]
+ mov r1, #3
+ and r1, r2
+ orr r0, r1
+ str r0, [r4, r6]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ cmp r0, #0x60
+ bne _022355AE
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ ldr r1, [r4, r6]
+ add r3, r0, #0
+ mov r0, #0x1c
+ add r2, r1, #0
+ bic r2, r0
+ lsl r0, r1, #0x1b
+ lsr r0, r0, #0x1d
+ add r0, r0, r3
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1b
+ orr r0, r2
+ str r0, [r4, r6]
+_022355AE:
+ add r0, r5, #0
+ mov r1, #0x14
+ add r0, #0xf5
+ strb r1, [r0]
+ ldr r0, _022355F0 ; =0x00003044
+ mov r2, #1
+ ldr r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0xf8
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r3, [r5, #0x64]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_022467AC
+ cmp r0, #2
+ bne _022355E0
+ mov r0, #0xc4
+ add r5, #0xf6
+ strh r0, [r5]
+ b _022355E6
+_022355E0:
+ mov r0, #0xc2
+ add r5, #0xf6
+ strh r0, [r5]
+_022355E6:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022355EC: .word 0x0000216C
+_022355F0: .word 0x00003044
+
+ thumb_func_start MOD11_022355F4
+MOD11_022355F4: ; 0x022355F4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ mov r5, #0x6f
+ add r2, r0, #0
+ lsl r5, r5, #2
+ add r1, r4, r5
+ lsl r0, r2, #2
+ ldr r6, [r1, r0]
+ mov r3, #0x40
+ tst r3, r6
+ beq _02235638
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+ ldr r1, _02235668 ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r4, r1]
+ orr r0, r2
+ str r0, [r4, r1]
+ b _02235662
+_02235638:
+ mov r3, #0x40
+ orr r3, r6
+ str r3, [r1, r0]
+ add r5, #8
+ lsl r0, r2, #3
+ add r1, r4, r5
+ ldr r3, [r1, r0]
+ ldr r2, _0223566C ; =0xFFFF8FFF
+ and r3, r2
+ mov r2, #5
+ lsl r2, r2, #0xc
+ orr r2, r3
+ str r2, [r1, r0]
+ ldr r3, [r1, r0]
+ ldr r2, _02235670 ; =0xFFFFF3FF
+ and r3, r2
+ ldr r2, [r4, #0x64]
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x14
+ orr r2, r3
+ str r2, [r1, r0]
+_02235662:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02235668: .word 0x0000216C
+_0223566C: .word 0xFFFF8FFF
+_02235670: .word 0xFFFFF3FF
+
+ thumb_func_start MOD11_02235674
+MOD11_02235674: ; 0x02235674
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, _02235844 ; =0x0000213C
+ mov r0, #1
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0xa
+ orr r0, r2
+ str r0, [r4, r1]
+ ldr r1, [r4, #0x64]
+ ldr r2, [r4, #0x6c]
+ add r0, r4, #0
+ mov r3, #5
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022356AA
+ ldr r1, _02235848 ; =0x0000216C
+ mov r0, #2
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0x12
+ orr r0, r2
+ str r0, [r4, r1]
+ b _0223583E
+_022356AA:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r1, [r1, r0]
+ mov r0, #0x18
+ tst r0, r1
+ bne _02235730
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x63
+ beq _02235730
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x63
+ beq _02235730
+ ldr r0, _0223584C ; =0x00003044
+ mov r2, #0xc0
+ ldr r0, [r4, r0]
+ ldr r5, [r4, #0x6c]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _02235850 ; =0x000003E3
+ ldrb r1, [r1, r0]
+ ldr r0, [r4, #0x64]
+ add r3, r0, #0
+ mul r3, r2
+ add r0, r4, r3
+ ldr r3, _02235854 ; =0x00002D74
+ mul r2, r5
+ add r2, r4, r2
+ ldrb r0, [r0, r3]
+ ldrb r2, [r2, r3]
+ sub r0, r0, r2
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ cmp r1, r5
+ bge _0223572C
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _02235854 ; =0x00002D74
+ add r2, r4, r2
+ ldrb r3, [r2, r1]
+ ldr r2, [r4, #0x6c]
+ mul r0, r2
+ add r0, r4, r0
+ ldrb r0, [r0, r1]
+ cmp r3, r0
+ blo _0223572C
+ mov r3, #1
+ b _022357E8
+_0223572C:
+ mov r3, #0
+ b _022357E8
+_02235730:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r3, r4, r0
+ ldr r0, _02235858 ; =0x00002DCC
+ ldr r1, [r4, #0x64]
+ ldr r2, [r3, r0]
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x1e
+ cmp r1, r2
+ bne _02235750
+ sub r0, #0xc
+ ldr r2, [r3, r0]
+ mov r0, #0x18
+ tst r0, r2
+ bne _02235766
+_02235750:
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x63
+ beq _02235766
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x63
+ bne _02235784
+_02235766:
+ ldr r0, [r4, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r3, [r4, #0x6c]
+ add r0, r4, r2
+ ldr r2, _02235854 ; =0x00002D74
+ mul r1, r3
+ add r1, r4, r1
+ ldrb r0, [r0, r2]
+ ldrb r1, [r1, r2]
+ cmp r0, r1
+ blo _02235784
+ mov r3, #1
+ b _022357DC
+_02235784:
+ ldr r0, _0223584C ; =0x00003044
+ mov r2, #0xc0
+ ldr r0, [r4, r0]
+ ldr r5, [r4, #0x6c]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _02235850 ; =0x000003E3
+ ldrb r1, [r1, r0]
+ ldr r0, [r4, #0x64]
+ add r3, r0, #0
+ mul r3, r2
+ add r0, r4, r3
+ ldr r3, _02235854 ; =0x00002D74
+ mul r2, r5
+ add r2, r4, r2
+ ldrb r0, [r0, r3]
+ ldrb r2, [r2, r3]
+ sub r0, r0, r2
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ cmp r1, r5
+ bge _022357DA
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _02235854 ; =0x00002D74
+ add r2, r4, r2
+ ldrb r3, [r2, r1]
+ ldr r2, [r4, #0x6c]
+ mul r0, r2
+ add r0, r4, r0
+ ldrb r0, [r0, r1]
+ cmp r3, r0
+ blo _022357DA
+ mov r3, #1
+ b _022357DC
+_022357DA:
+ mov r3, #0
+_022357DC:
+ ldr r1, _02235848 ; =0x0000216C
+ mov r0, #1
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0xa
+ orr r0, r2
+ str r0, [r4, r1]
+_022357E8:
+ cmp r3, #0
+ beq _0223580E
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0223585C ; =0x00002D8C
+ ldr r0, [r1, r0]
+ ldr r1, _02235860 ; =0x00002144
+ neg r0, r0
+ str r0, [r4, r1]
+ add r0, r1, #0
+ add r0, #0x28
+ ldr r2, [r4, r0]
+ mov r0, #0x20
+ orr r0, r2
+ add r1, #0x28
+ str r0, [r4, r1]
+ b _0223583E
+_0223580E:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _02235854 ; =0x00002D74
+ add r2, r4, r2
+ ldrb r3, [r2, r1]
+ ldr r2, [r4, #0x6c]
+ mul r0, r2
+ add r0, r4, r0
+ ldrb r0, [r0, r1]
+ cmp r3, r0
+ ldr r1, _02235848 ; =0x0000216C
+ blo _02235834
+ ldr r2, [r4, r1]
+ mov r0, #1
+ orr r0, r2
+ str r0, [r4, r1]
+ b _0223583E
+_02235834:
+ mov r0, #1
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0xc
+ orr r0, r2
+ str r0, [r4, r1]
+_0223583E:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02235844: .word 0x0000213C
+_02235848: .word 0x0000216C
+_0223584C: .word 0x00003044
+_02235850: .word 0x000003E3
+_02235854: .word 0x00002D74
+_02235858: .word 0x00002DCC
+_0223585C: .word 0x00002D8C
+_02235860: .word 0x00002144
+
+ thumb_func_start MOD11_02235864
+MOD11_02235864: ; 0x02235864
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223A444
+ add r4, r0, #0
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_022476C0
+ str r0, [r4]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0223589C
+MOD11_0223589C: ; 0x0223589C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223A444
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_0223A444
+ add r1, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ bge _022358DE
+ mov r5, #0
+ mvn r5, r5
+ b _022358E0
+_022358DE:
+ mov r5, #1
+_022358E0:
+ ldr r0, [r4]
+ ldr r1, [r1]
+ bl _s32_div_f
+ str r0, [r4]
+ cmp r0, #0
+ bne _022358F0
+ str r5, [r4]
+_022358F0:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_022358F4
+MOD11_022358F4: ; 0x022358F4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r0, [r6, #0x6c]
+ lsl r0, r0, #1
+ add r1, r6, r0
+ ldr r0, _02235A18 ; =0x0000307C
+ ldrh r0, [r1, r0]
+ bl MOD11_0224C044
+ cmp r0, #0
+ beq _0223594E
+ ldr r0, [r6, #0x64]
+ mov r2, #2
+ mov r3, #0xc0
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r6, r1
+ ldr r1, _02235A1C ; =0x00002DB0
+ mov ip, r0
+ ldr r0, [r0, r1]
+ lsl r2, r2, #0x14
+ tst r0, r2
+ bne _0223594E
+ ldr r0, [r6, #0x6c]
+ add r4, r0, #0
+ mul r4, r3
+ add r4, r6, r4
+ ldr r4, [r4, r1]
+ lsl r1, r2, #3
+ tst r1, r4
+ bne _0223594E
+ lsl r0, r0, #1
+ add r1, r6, r0
+ ldr r0, _02235A18 ; =0x0000307C
+ ldrh r7, [r1, r0]
+ cmp r7, #0
+ bne _02235958
+_0223594E:
+ ldr r1, [sp]
+ add r0, r6, #0
+ bl MOD11_0223A424
+ b _02235A14
+_02235958:
+ mov r2, #0
+ sub r3, #0xc1
+ mov r4, ip
+ add r5, r2, #0
+_02235960:
+ ldr r0, _02235A20 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ cmp r7, r0
+ beq _02235988
+ mov r0, ip
+ add r1, r0, r5
+ ldr r0, _02235A20 ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ cmp r0, #0x66
+ bne _0223597E
+ mov r0, #0
+ mvn r0, r0
+ cmp r3, r0
+ bne _0223597E
+ add r3, r2, #0
+_0223597E:
+ add r2, r2, #1
+ add r4, r4, #2
+ add r5, r5, #2
+ cmp r2, #4
+ blt _02235960
+_02235988:
+ cmp r2, #4
+ bne _02235A0C
+ mov r4, #0x49
+ lsl r4, r4, #2
+ str r7, [r6, r4]
+ ldr r2, [r6, #0x64]
+ mov r1, #0xc0
+ add r5, r2, #0
+ mul r5, r1
+ add r5, r6, r5
+ lsl r2, r3, #1
+ add r5, r5, r2
+ ldr r0, [r6, r4]
+ ldr r2, _02235A20 ; =0x00002D4C
+ strh r0, [r5, r2]
+ ldr r0, [r6, r4]
+ lsl r0, r0, #4
+ add r4, r6, r0
+ mov r0, #0xf9
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ cmp r0, #5
+ bhs _022359B8
+ b _022359BA
+_022359B8:
+ mov r0, #5
+_022359BA:
+ ldr r4, [r6, #0x64]
+ add r2, #0x20
+ mul r1, r4
+ add r1, r6, r1
+ add r1, r1, r3
+ strb r0, [r1, r2]
+ add r0, r3, #0
+ bl MaskOfFlagNo
+ ldr r1, _02235A24 ; =0x00002DCC
+ mov r4, #0xc0
+ add r3, r6, r1
+ ldr r1, [r6, #0x64]
+ mov r5, #0x3c
+ add r2, r1, #0
+ mul r2, r4
+ ldr r7, [r3, r2]
+ add r1, r7, #0
+ bic r1, r5
+ lsl r5, r7, #0x1a
+ lsr r5, r5, #0x1c
+ orr r0, r5
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ str r0, [r3, r2]
+ add r0, r4, #0
+ add r0, #0x64
+ ldr r1, [r6, r0]
+ add r0, r4, #0
+ add r0, #0xc3
+ cmp r1, r0
+ bne _02235A14
+ ldr r0, [r6, #0x64]
+ add r2, r0, #0
+ mul r2, r4
+ ldr r1, [r3, r2]
+ ldr r0, _02235A28 ; =0xFFFFE3FF
+ and r0, r1
+ str r0, [r3, r2]
+ b _02235A14
+_02235A0C:
+ ldr r1, [sp]
+ add r0, r6, #0
+ bl MOD11_0223A424
+_02235A14:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235A18: .word 0x0000307C
+_02235A1C: .word 0x00002DB0
+_02235A20: .word 0x00002D4C
+_02235A24: .word 0x00002DCC
+_02235A28: .word 0xFFFFE3FF
+
+ thumb_func_start MOD11_02235A2C
+MOD11_02235A2C: ; 0x02235A2C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r4, _02235A7C ; =0x00002D4C
+ mov r7, #0xc0
+_02235A3C:
+ bl LCRandom
+ ldr r1, _02235A80 ; =0x000001D3
+ bl _s32_div_f
+ add r0, r1, #1
+ ldr r1, [r6, #0x64]
+ lsl r0, r0, #0x10
+ add r2, r1, #0
+ mul r2, r7
+ lsr r5, r0, #0x10
+ mov r0, #0
+ add r2, r6, r2
+_02235A56:
+ ldrh r1, [r2, r4]
+ cmp r5, r1
+ beq _02235A64
+ add r0, r0, #1
+ add r2, r2, #2
+ cmp r0, #4
+ blt _02235A56
+_02235A64:
+ cmp r0, #4
+ bne _02235A3C
+ add r0, r5, #0
+ bl MOD11_0224C07C
+ cmp r0, #0
+ beq _02235A3C
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r5, [r6, r0]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235A7C: .word 0x00002D4C
+_02235A80: .word 0x000001D3
+
+ thumb_func_start MOD11_02235A84
+MOD11_02235A84: ; 0x02235A84
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r2, r5, r0
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ lsl r1, r1, #1
+ add r0, r2, r0
+ add r2, r5, r1
+ ldr r1, _02235B34 ; =0x0000307C
+ ldrh r1, [r2, r1]
+ bl MOD11_022461AC
+ ldr r3, [r5, #0x6c]
+ add r6, r0, #0
+ mov r7, #0xc0
+ add r0, r3, #0
+ mul r0, r7
+ add r2, r5, r0
+ ldr r0, _02235B38 ; =0x00002DE8
+ ldrh r1, [r2, r0]
+ cmp r1, #0
+ bne _02235B26
+ cmp r6, #4
+ beq _02235B26
+ add r1, r0, #0
+ add r2, r2, r6
+ sub r1, #0x7c
+ ldrb r1, [r2, r1]
+ cmp r1, #0
+ beq _02235B26
+ lsl r1, r3, #1
+ add r2, r5, r1
+ ldr r1, _02235B34 ; =0x0000307C
+ ldrh r2, [r2, r1]
+ cmp r2, #0
+ beq _02235B26
+ add r1, r7, #0
+ add r1, #0x64
+ str r2, [r5, r1]
+ add r1, r7, #0
+ add r1, #0x64
+ ldr r3, [r5, r1]
+ ldr r1, [r5, #0x6c]
+ add r2, r1, #0
+ mul r2, r7
+ add r1, r5, r2
+ strh r3, [r1, r0]
+ bl LCRandom
+ ldr r1, _02235B3C ; =0x00002DC8
+ ldr r4, [r5, #0x6c]
+ add r3, r5, r1
+ add r2, r4, #0
+ add r1, r7, #0
+ mul r2, r1
+ ldr r1, [r3, r2]
+ mov r4, #7
+ bic r1, r4
+ lsr r5, r0, #0x1f
+ lsl r4, r0, #0x1e
+ sub r4, r4, r5
+ mov r0, #0x1e
+ ror r4, r0
+ add r0, r5, r4
+ add r4, r0, #3
+ mov r0, #7
+ and r0, r4
+ orr r0, r1
+ str r0, [r3, r2]
+ b _02235B2E
+_02235B26:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+_02235B2E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02235B34: .word 0x0000307C
+_02235B38: .word 0x00002DE8
+_02235B3C: .word 0x00002DC8
+
+ thumb_func_start MOD11_02235B40
+MOD11_02235B40: ; 0x02235B40
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r5, #0x64]
+ lsl r0, r1, #6
+ add r2, r5, r0
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r4, [r2, r0]
+ ldr r0, [sp]
+ bl MOD11_02230270
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02230270
+ ldr r6, [r5, #0x64]
+ add r3, r0, #0
+ lsl r0, r6, #6
+ add r1, r5, r0
+ lsl r0, r4, #2
+ add r0, r1, r0
+ mov r1, #0x76
+ lsl r1, r1, #2
+ ldr r7, [r0, r1]
+ cmp r7, #0
+ beq _02235C06
+ ldr r0, [sp, #4]
+ cmp r0, r3
+ beq _02235C06
+ mov r0, #0xc0
+ mul r0, r4
+ add r2, r5, r0
+ ldr r0, _02235C30 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02235C06
+ ldr r0, _02235C34 ; =0x00002144
+ lsl r2, r7, #1
+ sub r1, #0x14
+ str r2, [r5, r0]
+ add r1, r5, r1
+ lsl r0, r3, #3
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02235BC0
+ lsl r0, r0, #9
+ lsr r0, r0, #0x1e
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r5, r1
+ ldr r1, _02235C30 ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02235BC0
+ str r0, [r5, #0x6c]
+ b _02235BC2
+_02235BC0:
+ str r4, [r5, #0x6c]
+_02235BC2:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02235C30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02235BFA
+ ldr r0, [sp]
+ ldr r2, [r5, #0x64]
+ add r1, r5, #0
+ bl MOD11_022482A4
+ mov r1, #0xc0
+ mul r1, r0
+ str r0, [r5, #0x6c]
+ ldr r0, _02235C30 ; =0x00002D8C
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02235BFA
+ mov r2, #0x26
+ str r2, [r5, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, #0xf3
+ bl MOD11_0223A434
+_02235BFA:
+ ldr r1, [r5, #0x64]
+ ldr r2, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_0224C438
+ b _02235C28
+_02235C06:
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ mov r1, #0x1c
+ add r3, r6, #0
+ mul r3, r1
+ add r0, r5, r0
+ ldr r2, [r0, r3]
+ mov r1, #1
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ str r1, [r0, r3]
+ ldr r1, _02235C38 ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+_02235C28:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02235C30: .word 0x00002D8C
+_02235C34: .word 0x00002144
+_02235C38: .word 0x0000216C
+
+ thumb_func_start MOD11_02235C3C
+MOD11_02235C3C: ; 0x02235C3C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r5, #0x64]
+ lsl r0, r1, #6
+ add r2, r5, r0
+ mov r0, #2
+ lsl r0, r0, #8
+ ldr r4, [r2, r0]
+ ldr r0, [sp]
+ bl MOD11_02230270
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02230270
+ ldr r6, [r5, #0x64]
+ add r3, r0, #0
+ lsl r0, r6, #6
+ add r1, r5, r0
+ lsl r0, r4, #2
+ add r0, r1, r0
+ mov r1, #0x1f
+ lsl r1, r1, #4
+ ldr r7, [r0, r1]
+ cmp r7, #0
+ beq _02235D02
+ ldr r0, [sp, #4]
+ cmp r0, r3
+ beq _02235D02
+ mov r0, #0xc0
+ mul r0, r4
+ add r2, r5, r0
+ ldr r0, _02235D2C ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02235D02
+ ldr r0, _02235D30 ; =0x00002144
+ lsl r2, r7, #1
+ sub r1, #0x2c
+ str r2, [r5, r0]
+ add r1, r5, r1
+ lsl r0, r3, #3
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02235CBC
+ lsl r0, r0, #9
+ lsr r0, r0, #0x1e
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r5, r1
+ ldr r1, _02235D2C ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02235CBC
+ str r0, [r5, #0x6c]
+ b _02235CBE
+_02235CBC:
+ str r4, [r5, #0x6c]
+_02235CBE:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02235D2C ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02235CF6
+ ldr r0, [sp]
+ ldr r2, [r5, #0x64]
+ add r1, r5, #0
+ bl MOD11_022482A4
+ mov r1, #0xc0
+ mul r1, r0
+ str r0, [r5, #0x6c]
+ ldr r0, _02235D2C ; =0x00002D8C
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02235CF6
+ mov r2, #0x26
+ str r2, [r5, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, #0xf3
+ bl MOD11_0223A434
+_02235CF6:
+ ldr r1, [r5, #0x64]
+ ldr r2, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_0224C438
+ b _02235D24
+_02235D02:
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ mov r1, #0x1c
+ add r3, r6, #0
+ mul r3, r1
+ add r0, r5, r0
+ ldr r2, [r0, r3]
+ mov r1, #1
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ str r1, [r0, r3]
+ ldr r1, _02235D34 ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+_02235D24:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02235D2C: .word 0x00002D8C
+_02235D30: .word 0x00002144
+_02235D34: .word 0x0000216C
+
+ thumb_func_start MOD11_02235D38
+MOD11_02235D38: ; 0x02235D38
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r2, r5, r0
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ lsl r1, r1, #1
+ add r0, r2, r0
+ add r2, r5, r1
+ ldr r1, _02235E0C ; =0x0000307C
+ ldrh r1, [r2, r1]
+ bl MOD11_022461AC
+ ldr r1, [r5, #0x6c]
+ add r4, r0, #0
+ lsl r1, r1, #1
+ add r2, r5, r1
+ ldr r1, _02235E0C ; =0x0000307C
+ add r0, r5, #0
+ ldrh r1, [r2, r1]
+ bl MOD11_0224C0B4
+ cmp r0, #0
+ bne _02235D7E
+ mov r4, #4
+_02235D7E:
+ ldr r0, [r5, #0x6c]
+ mov r2, #0xc0
+ add r1, r0, #0
+ mul r1, r2
+ ldr r3, _02235E10 ; =0x00002DEC
+ add r6, r5, r1
+ ldrh r1, [r6, r3]
+ cmp r1, #0
+ bne _02235DF6
+ cmp r4, #4
+ beq _02235DF6
+ add r1, r3, #0
+ add r6, r6, r4
+ sub r1, #0x80
+ ldrb r1, [r6, r1]
+ cmp r1, #0
+ beq _02235DF6
+ lsl r0, r0, #1
+ add r1, r5, r0
+ ldr r0, _02235E0C ; =0x0000307C
+ ldrh r1, [r1, r0]
+ cmp r1, #0
+ beq _02235DF6
+ add r0, r2, #0
+ add r0, #0x64
+ str r1, [r5, r0]
+ ldr r1, [r5, #0x6c]
+ add r0, r2, #0
+ add r0, #0x64
+ add r6, r1, #0
+ mul r6, r2
+ ldr r0, [r5, r0]
+ add r1, r5, r6
+ strh r0, [r1, r3]
+ ldr r0, [r5, #0x6c]
+ add r1, r0, #0
+ mul r1, r2
+ add r1, r5, r1
+ add r0, r3, #2
+ strh r4, [r1, r0]
+ bl LCRandom
+ ldr r1, _02235E14 ; =0x00002DC8
+ ldr r2, [r5, #0x6c]
+ add r4, r5, r1
+ mov r1, #0xc0
+ add r5, r2, #0
+ mul r5, r1
+ mov r1, #5
+ bl _s32_div_f
+ ldr r2, [r4, r5]
+ mov r0, #0x38
+ bic r2, r0
+ add r0, r1, #3
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1a
+ orr r0, r2
+ str r0, [r4, r5]
+ b _02235E08
+_02235DF6:
+ ldr r1, _02235E18 ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_02235E08:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235E0C: .word 0x0000307C
+_02235E10: .word 0x00002DEC
+_02235E14: .word 0x00002DC8
+_02235E18: .word 0x0000216C
+
+ thumb_func_start MOD11_02235E1C
+MOD11_02235E1C: ; 0x02235E1C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x79
+ bne _02235E4C
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02235E4C:
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #1
+ add r2, r4, r0
+ ldr r0, _02235FB4 ; =0x000030C4
+ ldrh r1, [r2, r0]
+ cmp r1, #0
+ beq _02235E62
+ add r0, #8
+ ldrh r0, [r2, r0]
+ cmp r0, #0xff
+ bne _02235E64
+_02235E62:
+ b _02235FA6
+_02235E64:
+ add r0, r4, #0
+ bl MOD11_02246AF8
+ cmp r0, #0
+ beq _02235E98
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #1
+ add r1, r4, r0
+ ldr r0, _02235FB8 ; =0x000030CC
+ ldrh r1, [r1, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02235FBC ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02235E98
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02235E98:
+ ldr r0, [r4, #0x64]
+ mov r7, #0
+ lsl r0, r0, #1
+ add r1, r4, r0
+ ldr r0, _02235FC0 ; =0x000030D4
+ ldrh r6, [r1, r0]
+_02235EA4:
+ add r1, sp, #4
+ add r2, sp, #4
+ ldr r0, _02235FC4 ; =0x0000FFFF
+ add r1, #2
+ add r2, #1
+ add r3, sp, #4
+ bl MOD11_02246B58
+ add r0, sp, #4
+ ldrb r0, [r0, #2]
+ cmp r0, r6
+ bne _02235F12
+ add r0, sp, #4
+ ldrb r0, [r0]
+ cmp r0, #5
+ bhi _02235F12
+ add r0, sp, #4
+ ldrb r5, [r0, #1]
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _02235F12
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _02235F12
+ ldr r0, [r4, #0x64]
+ add r3, sp, #4
+ mov r2, #0xc0
+ add r1, r0, #0
+ mul r1, r2
+ add r0, r4, r1
+ ldr r1, _02235FC8 ; =0x00002D64
+ add sp, #8
+ strb r5, [r0, r1]
+ ldr r5, [r4, #0x64]
+ ldrb r0, [r3, #1]
+ add r6, r5, #0
+ mul r6, r2
+ add r5, r4, r6
+ add r1, r1, #1
+ strb r0, [r5, r1]
+ ldrb r0, [r3, #1]
+ add r2, #0x70
+ str r0, [r4, r2]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02235F12:
+ mov r0, #0xfa
+ add r7, r7, #1
+ lsl r0, r0, #2
+ cmp r7, r0
+ blt _02235EA4
+ mov r7, #0
+ add r1, sp, #4
+ add r2, sp, #4
+ add r0, r7, #0
+ add r1, #2
+ add r2, #1
+ add r3, sp, #4
+ bl MOD11_02246B58
+ cmp r0, #1
+ bne _02235FA6
+_02235F32:
+ add r0, sp, #4
+ ldrb r0, [r0, #2]
+ cmp r0, r6
+ bne _02235F90
+ add r0, sp, #4
+ ldrb r0, [r0]
+ cmp r0, #5
+ bhi _02235F90
+ add r0, sp, #4
+ ldrb r5, [r0, #1]
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _02235F90
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _02235F90
+ ldr r0, [r4, #0x64]
+ add r3, sp, #4
+ mov r2, #0xc0
+ add r1, r0, #0
+ mul r1, r2
+ add r0, r4, r1
+ ldr r1, _02235FC8 ; =0x00002D64
+ add sp, #8
+ strb r5, [r0, r1]
+ ldr r5, [r4, #0x64]
+ ldrb r0, [r3, #1]
+ add r6, r5, #0
+ mul r6, r2
+ add r5, r4, r6
+ add r1, r1, #1
+ strb r0, [r5, r1]
+ ldrb r0, [r3, #1]
+ add r2, #0x70
+ str r0, [r4, r2]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02235F90:
+ add r7, r7, #1
+ add r1, sp, #4
+ add r2, sp, #4
+ add r0, r7, #0
+ add r1, #2
+ add r2, #1
+ add r3, sp, #4
+ bl MOD11_02246B58
+ cmp r0, #1
+ beq _02235F32
+_02235FA6:
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235FB4: .word 0x000030C4
+_02235FB8: .word 0x000030CC
+_02235FBC: .word 0x00002DB0
+_02235FC0: .word 0x000030D4
+_02235FC4: .word 0x0000FFFF
+_02235FC8: .word 0x00002D64
+
+ thumb_func_start MOD11_02235FCC
+MOD11_02235FCC: ; 0x02235FCC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ mov r0, #0
+ add r6, r1, #0
+ mvn r0, r0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ mov ip, r0
+ ldr r1, [r6, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ str r0, [sp, #4]
+ add r3, r6, r0
+ ldr r0, _022360DC ; =0x00002DB0
+ ldr r1, [r3, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r1
+ bne _0223601E
+ ldr r0, [r6, #0x6c]
+ lsl r0, r0, #1
+ add r1, r6, r0
+ ldr r0, _022360E0 ; =0x000030AC
+ ldrh r7, [r1, r0]
+ cmp r7, #0xa5
+ beq _0223601E
+ cmp r7, #0xa6
+ beq _0223601E
+ mov r0, #7
+ lsl r0, r0, #6
+ cmp r7, r0
+ beq _0223601E
+ cmp r7, #0
+ bne _02236028
+_0223601E:
+ add r0, r6, #0
+ mov r1, ip
+ bl MOD11_0223A424
+ b _022360D6
+_02236028:
+ mov r0, #0
+ add r1, r3, #0
+ add r2, r0, #0
+_0223602E:
+ ldr r4, _022360E4 ; =0x00002D4C
+ ldrh r4, [r1, r4]
+ cmp r4, #0xa6
+ beq _02236040
+ ldr r4, _022360E4 ; =0x00002D4C
+ add r5, r3, r2
+ ldrh r4, [r5, r4]
+ cmp r7, r4
+ beq _02236060
+_02236040:
+ ldr r4, _022360E4 ; =0x00002D4C
+ add r5, r3, r2
+ ldrh r4, [r5, r4]
+ cmp r4, #0xa6
+ bne _02236056
+ mov r5, #0
+ ldr r4, [sp, #8]
+ mvn r5, r5
+ cmp r4, r5
+ bne _02236056
+ str r0, [sp, #8]
+_02236056:
+ add r0, r0, #1
+ add r1, r1, #2
+ add r2, r2, #2
+ cmp r0, #4
+ blt _0223602E
+_02236060:
+ cmp r0, #4
+ bne _022360CE
+ ldr r0, [sp, #4]
+ add r1, r6, r0
+ ldr r0, [sp, #8]
+ lsl r0, r0, #1
+ add r1, r1, r0
+ ldr r0, _022360E4 ; =0x00002D4C
+ strh r7, [r1, r0]
+ ldr r1, [r6, #0x6c]
+ ldr r3, [r6, #0x64]
+ lsl r1, r1, #1
+ add r2, r6, r1
+ ldr r1, _022360E0 ; =0x000030AC
+ add r0, #0x20
+ ldrh r1, [r2, r1]
+ lsl r1, r1, #4
+ add r2, r6, r1
+ mov r1, #0xf9
+ lsl r1, r1, #2
+ ldrb r1, [r2, r1]
+ mov r2, #0xc0
+ mul r2, r3
+ add r3, r6, r2
+ ldr r2, [sp, #8]
+ add r2, r3, r2
+ strb r1, [r2, r0]
+ ldr r0, [sp]
+ ldr r2, [r6, #0x64]
+ add r1, r6, #0
+ bl MOD11_02256150
+ ldr r0, [r6, #0x6c]
+ lsl r0, r0, #1
+ add r1, r6, r0
+ ldr r0, _022360E0 ; =0x000030AC
+ ldrh r1, [r1, r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r1, [r6, r0]
+ ldr r1, [r6, r0]
+ add r0, #0x5f
+ cmp r1, r0
+ bne _022360D6
+ ldr r0, _022360E8 ; =0x00002DCC
+ ldr r1, [r6, #0x64]
+ add r3, r6, r0
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ ldr r0, _022360EC ; =0xFFFFE3FF
+ and r0, r1
+ str r0, [r3, r2]
+ b _022360D6
+_022360CE:
+ add r0, r6, #0
+ mov r1, ip
+ bl MOD11_0223A424
+_022360D6:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022360DC: .word 0x00002DB0
+_022360E0: .word 0x000030AC
+_022360E4: .word 0x00002D4C
+_022360E8: .word 0x00002DCC
+_022360EC: .word 0xFFFFE3FF
+
+ thumb_func_start MOD11_022360F0
+MOD11_022360F0: ; 0x022360F0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ mov r7, #0
+ str r0, [sp, #8]
+ add r6, r7, #0
+ add r4, r7, #0
+_0223610E:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r0, r5, r0
+ add r1, r4, r0
+ ldr r0, _022361B8 ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ bl MOD11_02246BE8
+ cmp r0, #0
+ bne _0223614E
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r0, r5, r0
+ add r1, r4, r0
+ ldr r0, _022361B8 ; =0x00002D4C
+ ldrh r1, [r1, r0]
+ mov r0, #0x42
+ lsl r0, r0, #2
+ cmp r1, r0
+ beq _0223614E
+ cmp r1, #0xfd
+ beq _0223614E
+ add r0, #0xb8
+ cmp r1, r0
+ beq _0223614E
+ add r0, r5, #0
+ bl MOD11_02246AF8
+ cmp r0, #0
+ beq _02236156
+_0223614E:
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r7, r0
+_02236156:
+ add r6, r6, #1
+ add r4, r4, #2
+ cmp r6, #4
+ blt _0223610E
+ mov r0, #2
+ mvn r0, r0
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [r5, #0x64]
+ add r1, r5, #0
+ add r3, r7, #0
+ bl MOD11_02245D38
+ add r4, r0, #0
+ cmp r4, #0xf
+ bne _02236180
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ b _022361B0
+_02236180:
+ mov r7, #0x1e
+_02236182:
+ bl LCRandom
+ lsr r1, r0, #0x1f
+ lsl r0, r0, #0x1e
+ sub r0, r0, r1
+ ror r0, r7
+ add r6, r1, r0
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ tst r0, r4
+ bne _02236182
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ add r2, r5, r2
+ lsl r0, r6, #1
+ add r2, r2, r0
+ ldr r0, _022361B8 ; =0x00002D4C
+ add r1, #0x64
+ ldrh r0, [r2, r0]
+ str r0, [r5, r1]
+_022361B0:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022361B8: .word 0x00002D4C
+
+ thumb_func_start MOD11_022361BC
+MOD11_022361BC: ; 0x022361BC
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _02236200 ; =0x00002D8C
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ add r1, r1, #4
+ ldr r1, [r2, r1]
+ mov r2, #0x40
+ bl FUN_02079A0C
+ ldr r3, _02236204 ; =0x0225DC3C
+ mov r2, #0
+_022361E2:
+ ldrb r1, [r3]
+ cmp r0, r1
+ ble _022361F0
+ add r2, r2, #1
+ add r3, r3, #2
+ cmp r2, #6
+ blo _022361E2
+_022361F0:
+ ldr r0, _02236208 ; =0x0225DC3D
+ lsl r1, r2, #1
+ ldrb r1, [r0, r1]
+ ldr r0, _0223620C ; =0x00002154
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02236200: .word 0x00002D8C
+_02236204: .word 0x0225DC3C
+_02236208: .word 0x0225DC3D
+_0223620C: .word 0x00002154
+
+ thumb_func_start MOD11_02236210
+MOD11_02236210: ; 0x02236210
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ ldr r2, [r5, #0x6c]
+ add r4, r0, #0
+ lsl r0, r2, #1
+ add r1, r5, r0
+ ldr r0, _022362AC ; =0x0000307C
+ ldrh r1, [r1, r0]
+ cmp r1, #0
+ beq _0223629E
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ mov r3, #0xc0
+ add r0, r5, r0
+ mul r3, r2
+ add r0, r0, r3
+ bl MOD11_022461AC
+ add r2, r0, #0
+ cmp r2, #4
+ beq _0223625C
+ ldr r0, [r5, #0x6c]
+ mov r1, #0xc0
+ mul r1, r0
+ add r1, r5, r1
+ add r3, r1, r2
+ ldr r1, _022362B0 ; =0x00002D6C
+ ldrb r3, [r3, r1]
+ cmp r3, #0
+ bne _02236266
+_0223625C:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+ b _022362A6
+_02236266:
+ mov r1, #4
+ cmp r3, #4
+ bge _0223626E
+ add r1, r3, #0
+_0223626E:
+ lsl r0, r0, #1
+ add r3, r5, r0
+ ldr r0, _022362AC ; =0x0000307C
+ ldrh r3, [r3, r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r3, [r5, r0]
+ add r0, #0xc
+ str r1, [r5, r0]
+ ldr r0, _022362B0 ; =0x00002D6C
+ ldr r4, [r5, #0x6c]
+ mov r3, #0xc0
+ add r0, r5, r0
+ mul r3, r4
+ add r3, r0, r3
+ ldrb r0, [r3, r2]
+ sub r0, r0, r1
+ strb r0, [r3, r2]
+ ldr r2, [r5, #0x6c]
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_02245190
+ b _022362A6
+_0223629E:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+_022362A6:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_022362AC: .word 0x0000307C
+_022362B0: .word 0x00002D6C
+
+ thumb_func_start MOD11_022362B4
+MOD11_022362B4: ; 0x022362B4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ bl MOD11_0222FF74
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r1, #0x4d
+ mov r0, #0
+ lsl r1, r1, #2
+ ldr r2, _022363F4 ; =0x00003044
+ str r0, [r5, r1]
+ ldr r2, [r5, r2]
+ cmp r2, #0xd7
+ bne _02236382
+ sub r1, #0x10
+ str r2, [r5, r1]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2b
+ beq _0223630A
+ ldr r2, [r5, #0x64]
+ mov r0, #0xc0
+ add r3, r2, #0
+ mul r3, r0
+ ldr r2, _022363F8 ; =0x00002DAC
+ mov r1, #0
+ add r3, r5, r3
+ str r1, [r3, r2]
+ add r1, r2, #4
+ ldr r2, [r5, #0x64]
+ add r1, r5, r1
+ mul r0, r2
+ ldr r3, [r1, r0]
+ ldr r2, _022363FC ; =0xF7FFFFFF
+ and r2, r3
+ str r2, [r1, r0]
+ b _02236316
+_0223630A:
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ mov r0, #5
+ orr r0, r2
+ str r0, [r5, r1]
+_02236316:
+ mov r0, #2
+ tst r0, r4
+ beq _02236374
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #0x10
+ bl MOD11_0223C230
+ add r4, r0, #0
+ bl MaskOfFlagNo
+ ldr r1, _02236400 ; =0x00003108
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _022363E2
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r4, #0
+ mov r3, #0x2b
+ bl MOD11_02246D84
+ cmp r0, #0
+ bne _0223635E
+ mov r0, #0xc0
+ mul r0, r4
+ ldr r1, _022363F8 ; =0x00002DAC
+ mov r3, #0
+ add r2, r5, r0
+ str r3, [r2, r1]
+ add r1, r1, #4
+ add r3, r5, r1
+ ldr r2, [r3, r0]
+ ldr r1, _022363FC ; =0xF7FFFFFF
+ and r1, r2
+ str r1, [r3, r0]
+ b _022363E2
+_0223635E:
+ mov r1, #0x46
+ lsl r1, r1, #2
+ add r0, r1, #0
+ str r4, [r5, r1]
+ add r0, #0x1c
+ ldr r2, [r5, r0]
+ mov r0, #0xa
+ orr r0, r2
+ add r1, #0x1c
+ str r0, [r5, r1]
+ b _022363E2
+_02236374:
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ mov r0, #8
+ orr r0, r2
+ str r0, [r5, r1]
+ b _022363E2
+_02236382:
+ ldr r3, [r5, #0x64]
+ mov r2, #0xc0
+ mul r2, r3
+ add r3, r5, r2
+ ldr r2, _022363F8 ; =0x00002DAC
+ str r0, [r3, r2]
+ add r0, r2, #4
+ add r6, r5, r0
+ ldr r0, [r5, #0x64]
+ mov r2, #0xc0
+ add r3, r0, #0
+ mul r3, r2
+ ldr r2, [r6, r3]
+ ldr r0, _022363FC ; =0xF7FFFFFF
+ and r0, r2
+ str r0, [r6, r3]
+ mov r0, #2
+ tst r0, r4
+ beq _022363DA
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #0x10
+ bl MOD11_0223C230
+ add r4, r0, #0
+ bl MaskOfFlagNo
+ ldr r1, _02236400 ; =0x00003108
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _022363E2
+ mov r0, #0xc0
+ mul r0, r4
+ ldr r1, _022363F8 ; =0x00002DAC
+ mov r3, #0
+ add r2, r5, r0
+ str r3, [r2, r1]
+ add r1, r1, #4
+ add r3, r5, r1
+ ldr r2, [r3, r0]
+ ldr r1, _022363FC ; =0xF7FFFFFF
+ and r1, r2
+ str r1, [r3, r0]
+ b _022363E2
+_022363DA:
+ ldr r2, [r5, r1]
+ mov r0, #8
+ orr r0, r2
+ str r0, [r5, r1]
+_022363E2:
+ ldr r3, _022363F4 ; =0x00003044
+ ldr r2, [r5, #0x64]
+ ldr r3, [r5, r3]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02256284
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022363F4: .word 0x00003044
+_022363F8: .word 0x00002DAC
+_022363FC: .word 0xF7FFFFFF
+_02236400: .word 0x00003108
+
+ thumb_func_start MOD11_02236404
+MOD11_02236404: ; 0x02236404
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ str r0, [sp, #4]
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ add r7, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02236454
+ ldr r0, [sp, #4]
+ mov r1, #0x84
+ tst r0, r1
+ bne _02236454
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _022364EC
+_02236454:
+ ldr r0, [r4, #0x64]
+ add r1, r4, r0
+ ldr r0, _022364F4 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl MaskOfFlagNo
+ lsl r1, r7, #3
+ add r2, r4, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #3
+ lsr r1, r1, #0x1a
+ tst r0, r1
+ beq _0223647C
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _022364EC
+_0223647C:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x79
+ beq _02236494
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x79
+ bne _0223649E
+_02236494:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _022364EC
+_0223649E:
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _022364F8 ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ beq _022364C6
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r3, #0x3c
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022364C6
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+ b _022364EC
+_022364C6:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _022364F8 ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ bne _022364E4
+ ldr r2, [r4, #0x6c]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246C50
+ cmp r0, #0
+ bne _022364EC
+_022364E4:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_022364EC:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022364F4: .word 0x0000219C
+_022364F8: .word 0x00002DB8
+
+ thumb_func_start MOD11_022364FC
+MOD11_022364FC: ; 0x022364FC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r1, #0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ ldr r1, [r6, #0x64]
+ str r0, [sp, #8]
+ lsl r0, r1, #1
+ add r2, r6, r0
+ ldr r0, _02236640 ; =0x0000305C
+ ldrh r0, [r2, r0]
+ cmp r0, #0xb6
+ beq _0223653C
+ cmp r0, #0xc5
+ beq _0223653C
+ cmp r0, #0xcb
+ beq _0223653C
+ ldr r0, _02236644 ; =0x00002DC8
+ add r3, r1, #0
+ mov r2, #0xc0
+ add r0, r6, r0
+ mul r3, r2
+ ldr r2, [r0, r3]
+ ldr r1, _02236648 ; =0xFFFFE7FF
+ and r1, r2
+ str r1, [r0, r3]
+_0223653C:
+ ldr r0, [sp]
+ mov r7, #0
+ add r4, r7, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _02236564
+ add r5, r6, #0
+_0223654C:
+ ldr r0, _0223664C ; =0x000021A8
+ ldr r0, [r5, r0]
+ cmp r0, #0x27
+ beq _02236556
+ add r7, r7, #1
+_02236556:
+ ldr r0, [sp]
+ add r5, #0x10
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _0223654C
+_02236564:
+ cmp r7, #1
+ beq _0223656E
+ mov r0, #1
+ str r0, [sp, #4]
+ b _02236572
+_0223656E:
+ mov r0, #0
+ str r0, [sp, #4]
+_02236572:
+ ldr r7, [r6, #0x64]
+ ldr r0, _02236644 ; =0x00002DC8
+ add r5, r7, #0
+ add r4, r6, r0
+ mov r0, #0xc0
+ mul r5, r0
+ bl LCRandom
+ ldr r1, [r4, r5]
+ lsl r1, r1, #0x13
+ lsr r1, r1, #0x1e
+ lsl r2, r1, #1
+ ldr r1, _02236650 ; =0x0225DC34
+ ldrh r1, [r1, r2]
+ cmp r1, r0
+ blo _02236628
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ beq _02236628
+ ldr r0, _02236654 ; =0x00003044
+ ldr r0, [r6, r0]
+ lsl r0, r0, #4
+ add r1, r6, r0
+ ldr r0, _02236658 ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x6f
+ bne _022365C0
+ mov r2, #0x75
+ lsl r2, r2, #2
+ add r0, r6, r2
+ lsl r4, r7, #6
+ ldr r3, [r0, r4]
+ mov r1, #4
+ orr r1, r3
+ str r1, [r0, r4]
+ add r0, r6, #0
+ sub r2, #0xba
+ add r0, #0xf6
+ strh r2, [r0]
+_022365C0:
+ ldr r0, _02236654 ; =0x00003044
+ ldr r0, [r6, r0]
+ lsl r0, r0, #4
+ add r1, r6, r0
+ ldr r0, _02236658 ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x74
+ bne _022365EC
+ mov r2, #0x75
+ ldr r1, [r6, #0x64]
+ lsl r2, r2, #2
+ lsl r4, r1, #6
+ add r0, r6, r2
+ add r1, r2, #0
+ ldr r3, [r0, r4]
+ add r1, #0x2c
+ orr r1, r3
+ str r1, [r0, r4]
+ add r0, r6, #0
+ sub r2, #0x1a
+ add r0, #0xf6
+ strh r2, [r0]
+_022365EC:
+ add r0, r6, #0
+ mov r1, #2
+ add r0, #0xf5
+ strb r1, [r0]
+ ldr r1, [r6, #0x64]
+ add r0, r6, #0
+ bl MOD11_0224682C
+ add r1, r6, #0
+ add r1, #0xf8
+ str r0, [r1]
+ ldr r2, [r6, #0x64]
+ mov r0, #0xc0
+ add r1, r2, #0
+ mul r1, r0
+ ldr r0, _02236644 ; =0x00002DC8
+ add r0, r6, r0
+ ldr r3, [r0, r1]
+ lsl r2, r3, #0x13
+ lsr r4, r2, #0x1e
+ cmp r4, #3
+ bhs _02236638
+ ldr r2, _02236648 ; =0xFFFFE7FF
+ and r3, r2
+ add r2, r4, #1
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x13
+ orr r2, r3
+ str r2, [r0, r1]
+ b _02236638
+_02236628:
+ ldr r1, [r4, r5]
+ ldr r0, _02236648 ; =0xFFFFE7FF
+ and r0, r1
+ str r0, [r4, r5]
+ ldr r1, [sp, #8]
+ add r0, r6, #0
+ bl MOD11_0223A424
+_02236638:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02236640: .word 0x0000305C
+_02236644: .word 0x00002DC8
+_02236648: .word 0xFFFFE7FF
+_0223664C: .word 0x000021A8
+_02236650: .word 0x0225DC34
+_02236654: .word 0x00003044
+_02236658: .word 0x000003DE
+
+ thumb_func_start MOD11_0223665C
+MOD11_0223665C: ; 0x0223665C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022366C8 ; =0x00002D90
+ ldr r0, [r1, r0]
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, [r5, #0x64]
+ mov r2, #0xc0
+ add r3, r1, #0
+ mul r3, r2
+ add r1, r5, r3
+ ldr r3, _022366CC ; =0x00002D8C
+ ldr r1, [r1, r3]
+ cmp r1, r0
+ bgt _0223669E
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+ b _022366C2
+_0223669E:
+ ldr r1, _022366D0 ; =0x0000215C
+ neg r4, r0
+ str r4, [r5, r1]
+ ldr r1, [r5, #0x64]
+ add r4, r1, #0
+ add r1, r3, #0
+ mul r4, r2
+ add r3, #0x24
+ add r4, r5, r4
+ add r1, #0x54
+ str r0, [r4, r1]
+ ldr r0, [r5, #0x64]
+ add r3, r5, r3
+ mul r2, r0
+ ldr r1, [r3, r2]
+ ldr r0, _022366D4 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r3, r2]
+_022366C2:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022366C8: .word 0x00002D90
+_022366CC: .word 0x00002D8C
+_022366D0: .word 0x0000215C
+_022366D4: .word 0xFFFF1FFF
+
+ thumb_func_start MOD11_022366D8
+MOD11_022366D8: ; 0x022366D8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ str r1, [sp]
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [sp]
+ bl MOD11_0223A404
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ add r4, r0, #0
+ mov r0, #1
+ tst r0, r4
+ bne _02236700
+ b _0223684E
+_02236700:
+ ldr r1, [sp]
+ add r0, r5, #0
+ ldr r1, [r1, #0x6c]
+ mov r7, #0
+ bl MOD11_0222FF88
+ ldr r1, [sp]
+ str r0, [sp, #0x14]
+ ldr r1, [r1, #0x6c]
+ add r0, r5, #0
+ bl MOD11_0222FFC8
+ add r6, r0, #0
+ mov r0, #8
+ tst r0, r4
+ bne _02236734
+ mov r0, #0x10
+ tst r0, r4
+ beq _0223674C
+ ldr r1, [sp]
+ add r0, r5, #0
+ ldr r1, [r1, #0x6c]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0223674C
+_02236734:
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ ldr r1, [r0, #0x6c]
+ add r1, r0, r1
+ ldr r0, _02236868 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #8]
+ str r0, [sp, #4]
+ b _0223678C
+_0223674C:
+ mov r0, #2
+ str r0, [sp, #0x10]
+ tst r0, r4
+ beq _02236776
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ ldr r1, [r0, #0x6c]
+ add r2, r0, r1
+ ldr r0, _02236868 ; =0x0000219C
+ ldrb r0, [r2, r0]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_022302BC
+ ldr r1, [sp]
+ add r1, r1, r0
+ ldr r0, _02236868 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #4]
+ b _0223678C
+_02236776:
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ ldr r1, [r0, #0x6c]
+ add r1, r0, r1
+ ldr r0, _02236868 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #8]
+ str r0, [sp, #4]
+_0223678C:
+ ldr r5, [sp, #0xc]
+ add r0, r5, #0
+ cmp r0, r6
+ bge _022367CE
+_02236794:
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r4, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022367C8
+ add r0, r4, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _022367C8
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022367C8
+ add r7, r7, #1
+_022367C8:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02236794
+_022367CE:
+ ldr r0, [sp, #0x10]
+ cmp r7, r0
+ bgt _022367DE
+ ldr r0, [sp]
+ ldr r1, [sp, #0x18]
+ bl MOD11_0223A424
+ b _02236860
+_022367DE:
+ ldr r0, [sp]
+ bl MOD11_02246CCC
+ cmp r0, #0
+ beq _02236844
+ mov r7, #5
+_022367EA:
+ bl LCRandom
+ add r1, r6, #0
+ bl _s32_div_f
+ ldr r0, [sp, #0xc]
+ add r5, r1, #0
+ add r5, r5, r0
+ ldr r0, [sp, #8]
+ cmp r5, r0
+ beq _022367EA
+ ldr r0, [sp, #4]
+ cmp r5, r0
+ beq _022367EA
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ add r1, r7, #0
+ mov r2, #0
+ add r4, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022367EA
+ add r0, r4, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #1
+ beq _022367EA
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022367EA
+ ldr r0, [sp]
+ ldr r1, [r0, #0x6c]
+ add r1, r0, r1
+ ldr r0, _0223686C ; =0x000021A0
+ strb r5, [r1, r0]
+ b _02236860
+_02236844:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x18]
+ bl MOD11_0223A424
+ b _02236860
+_0223684E:
+ ldr r0, [sp]
+ bl MOD11_02246CCC
+ cmp r0, #0
+ bne _02236860
+ ldr r0, [sp]
+ ldr r1, [sp, #0x18]
+ bl MOD11_0223A424
+_02236860:
+ mov r0, #0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02236868: .word 0x0000219C
+_0223686C: .word 0x000021A0
+
+ thumb_func_start MOD11_02236870
+MOD11_02236870: ; 0x02236870
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r5, [r4, #0x64]
+ ldr r1, _02236A40 ; =0x00002DB0
+ add r0, r5, #0
+ mov r2, #0xc0
+ mov r5, #2
+ add r3, r4, r1
+ mul r0, r2
+ ldr r6, [r3, r0]
+ lsl r5, r5, #0x14
+ orr r5, r6
+ str r5, [r3, r0]
+ ldr r3, [r4, #0x64]
+ mov r0, #0
+ add r5, r3, #0
+ mul r5, r2
+ add r3, r1, #0
+ add r5, r4, r5
+ add r3, #0x38
+ strh r0, [r5, r3]
+ add r3, r1, #0
+ add r3, #0x18
+ ldr r6, [r4, #0x64]
+ add r5, r4, r3
+ add r3, r6, #0
+ mul r3, r2
+ ldr r7, [r5, r3]
+ mov r6, #7
+ bic r7, r6
+ str r7, [r5, r3]
+ ldr r3, [r4, #0x6c]
+ add r5, r3, #0
+ mul r5, r2
+ add r3, r1, #0
+ add r5, r4, r5
+ sub r3, #8
+ ldr r3, [r5, r3]
+ ldr r5, [r4, #0x64]
+ add r6, r5, #0
+ mul r6, r2
+ add r5, r1, #0
+ add r6, r4, r6
+ add r5, #0x34
+ str r3, [r6, r5]
+ ldr r3, [r4, #0x6c]
+ add r5, r3, #0
+ mul r5, r2
+ add r3, r1, #0
+ add r5, r4, r5
+ add r3, #0xe
+ ldrb r3, [r5, r3]
+ ldr r5, [r4, #0x64]
+ add r6, r5, #0
+ lsl r3, r3, #0x1c
+ mul r6, r2
+ add r5, r1, #0
+ lsr r3, r3, #0x1c
+ add r6, r4, r6
+ add r5, #0x4a
+ strh r3, [r6, r5]
+ add r3, r1, #0
+ add r3, #0x1c
+ ldr r6, [r4, #0x64]
+ add r5, r4, r3
+ add r3, r6, #0
+ mul r3, r2
+ ldr r7, [r5, r3]
+ mov r6, #0x3c
+ bic r7, r6
+ str r7, [r5, r3]
+ ldr r6, [r4, #0x64]
+ sub r1, #0x70
+ add r3, r6, #0
+ mul r3, r2
+ ldr r7, [r5, r3]
+ ldr r6, _02236A44 ; =0xFFFFE3FF
+ and r6, r7
+ str r6, [r5, r3]
+ add r5, r4, r1
+ ldr r1, [r4, #0x64]
+ add r3, r1, #0
+ mul r3, r2
+ ldr r1, [r4, #0x6c]
+ add r3, r5, r3
+ mul r2, r1
+ add r2, r5, r2
+_02236926:
+ ldrb r1, [r2, r0]
+ strb r1, [r3, r0]
+ add r0, r0, #1
+ cmp r0, #0x28
+ blo _02236926
+ ldr r3, [r4, #0x64]
+ ldr r1, _02236A48 ; =0x00002D68
+ add r6, r3, #0
+ mov r2, #0xc0
+ add r0, r4, r1
+ mul r6, r2
+ ldr r5, [r0, r6]
+ mov r3, #1
+ bic r5, r3
+ str r5, [r0, r6]
+ ldr r3, [r4, #0x64]
+ add r6, r3, #0
+ mul r6, r2
+ ldr r5, [r0, r6]
+ mov r3, #2
+ bic r5, r3
+ str r5, [r0, r6]
+ ldr r3, [r4, #0x64]
+ add r6, r3, #0
+ mul r6, r2
+ ldr r5, [r0, r6]
+ mov r3, #4
+ bic r5, r3
+ str r5, [r0, r6]
+ ldr r3, [r4, #0x64]
+ add r6, r3, #0
+ mul r6, r2
+ ldr r5, [r0, r6]
+ mov r3, #8
+ bic r5, r3
+ str r5, [r0, r6]
+ ldr r3, [r4, #0x64]
+ add r6, r3, #0
+ mul r6, r2
+ ldr r5, [r0, r6]
+ mov r3, #0x10
+ bic r5, r3
+ str r5, [r0, r6]
+ ldr r3, [r4, #0x64]
+ add r6, r3, #0
+ mul r6, r2
+ ldr r5, [r0, r6]
+ mov r3, #0x20
+ bic r5, r3
+ str r5, [r0, r6]
+ ldr r5, [r4, #0x64]
+ add r3, r5, #0
+ mul r3, r2
+ ldr r6, [r0, r3]
+ ldr r5, _02236A4C ; =0xFFFFFEFF
+ and r5, r6
+ str r5, [r0, r3]
+ ldr r5, [r4, #0x64]
+ add r3, r5, #0
+ mul r3, r2
+ ldr r6, [r0, r3]
+ ldr r5, _02236A50 ; =0xFFFFFDFF
+ and r5, r6
+ str r5, [r0, r3]
+ ldr r5, [r4, #0x64]
+ add r3, r5, #0
+ mul r3, r2
+ ldr r6, [r0, r3]
+ ldr r5, _02236A54 ; =0xFFFFFBFF
+ and r5, r6
+ str r5, [r0, r3]
+ add r3, r1, #0
+ add r3, #0x60
+ add r6, r4, r3
+ ldr r3, [r4, #0x64]
+ add r1, #0x70
+ add r5, r3, #0
+ mul r5, r2
+ ldr r7, [r6, r5]
+ ldr r3, _02236A58 ; =0xBFFFFFFF
+ and r3, r7
+ add r7, r2, #0
+ add r7, #0x90
+ ldr r7, [r4, r7]
+ lsl r7, r7, #0x1f
+ lsr r7, r7, #1
+ orr r3, r7
+ str r3, [r6, r5]
+ add r3, r2, #0
+ add r3, #0x90
+ ldr r3, [r4, r3]
+ add r6, r3, #1
+ ldr r3, [r4, #0x64]
+ add r5, r3, #0
+ mul r5, r2
+ add r3, r4, r5
+ str r6, [r3, r1]
+ ldr r1, [r4, #0x64]
+ add r5, r1, #0
+ mul r5, r2
+ ldr r3, [r0, r5]
+ mov r1, #0x40
+ bic r3, r1
+ str r3, [r0, r5]
+ ldr r1, [r4, #0x64]
+ mov r6, #0
+ add r3, r1, #0
+ mul r3, r2
+ ldr r2, [r0, r3]
+ mov r1, #0x80
+ bic r2, r1
+ str r2, [r0, r3]
+ mov r0, #0xf9
+ add r5, r6, #0
+ mov r1, #5
+ lsl r0, r0, #2
+_02236A0E:
+ ldr r3, [r4, #0x64]
+ mov r2, #0xc0
+ mul r2, r3
+ add r3, r4, r2
+ ldr r2, _02236A5C ; =0x00002D4C
+ add r7, r3, r5
+ ldrh r2, [r7, r2]
+ lsl r2, r2, #4
+ add r2, r4, r2
+ ldrb r2, [r2, r0]
+ cmp r2, #5
+ bhs _02236A2E
+ add r7, r3, r6
+ ldr r3, _02236A60 ; =0x00002D6C
+ strb r2, [r7, r3]
+ b _02236A34
+_02236A2E:
+ ldr r2, _02236A60 ; =0x00002D6C
+ add r3, r3, r6
+ strb r1, [r3, r2]
+_02236A34:
+ add r6, r6, #1
+ add r5, r5, #2
+ cmp r6, #4
+ blt _02236A0E
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02236A40: .word 0x00002DB0
+_02236A44: .word 0xFFFFE3FF
+_02236A48: .word 0x00002D68
+_02236A4C: .word 0xFFFFFEFF
+_02236A50: .word 0xFFFFFDFF
+_02236A54: .word 0xFFFFFBFF
+_02236A58: .word 0xBFFFFFFF
+_02236A5C: .word 0x00002D4C
+_02236A60: .word 0x00002D6C
+
+ thumb_func_start MOD11_02236A64
+MOD11_02236A64: ; 0x02236A64
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ mov r2, #0x72
+ mov r1, #1
+ add r3, r0, #0
+ eor r3, r1
+ lsl r0, r3, #3
+ add r5, r4, r0
+ lsl r2, r2, #2
+ ldr r5, [r5, r2]
+ lsl r5, r5, #0x1e
+ lsr r5, r5, #0x1e
+ cmp r5, #3
+ bne _02236ABA
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r3, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r3
+ ldr r5, [r2, r0]
+ mov r3, #1
+ bic r5, r3
+ orr r1, r5
+ str r1, [r2, r0]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _02236AE2
+_02236ABA:
+ add r1, r2, #0
+ sub r1, #0xc
+ lsl r6, r3, #2
+ add r1, r4, r1
+ ldr r5, [r1, r6]
+ mov r3, #4
+ orr r3, r5
+ str r3, [r1, r6]
+ add r2, r4, r2
+ ldr r4, [r2, r0]
+ mov r3, #3
+ add r1, r4, #0
+ bic r1, r3
+ lsl r3, r4, #0x1e
+ lsr r3, r3, #0x1e
+ add r4, r3, #1
+ mov r3, #3
+ and r3, r4
+ orr r1, r3
+ str r1, [r2, r0]
+_02236AE2:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02236AE8
+MOD11_02236AE8: ; 0x02236AE8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_02230270
+ lsl r0, r0, #3
+ add r1, r5, r0
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1e
+ lsr r1, r0, #0x1e
+ beq _02236B56
+ mov r0, #0xc0
+ mul r0, r4
+ ldr r4, _02236B64 ; =0x00002D8C
+ add r0, r5, r0
+ ldr r2, [r0, r4]
+ cmp r2, #0
+ beq _02236B56
+ mov r2, #5
+ sub r1, r2, r1
+ ldr r3, _02236B68 ; =0x0000215C
+ lsl r1, r1, #1
+ str r1, [r5, r3]
+ add r1, r4, #4
+ ldr r1, [r0, r1]
+ sub r0, r2, #6
+ mul r0, r1
+ ldr r1, [r5, r3]
+ bl MOD11_022476C0
+ ldr r1, _02236B68 ; =0x0000215C
+ str r0, [r5, r1]
+ b _02236B5E
+_02236B56:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_02236B5E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02236B64: .word 0x00002D8C
+_02236B68: .word 0x0000215C
+
+ thumb_func_start MOD11_02236B6C
+MOD11_02236B6C: ; 0x02236B6C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ str r1, [sp]
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [sp]
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r4, #0
+ bl MOD11_0222FF84
+ mov r2, #0x4d
+ mov r7, #0
+ str r0, [sp, #4]
+ add r1, r0, #0
+ ldr r0, [sp]
+ lsl r2, r2, #2
+ str r1, [r0, r2]
+ ldr r0, [sp, #4]
+ add r6, r7, #0
+ cmp r0, #0
+ ble _02236BFC
+ ldr r4, [sp]
+ ldr r1, _02236C10 ; =0x00002DC8
+ add r0, r4, #0
+ add r5, r0, r1
+_02236BA8:
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _02236BCE
+ ldr r0, _02236C14 ; =0x00002D8C
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02236BCE
+ ldr r0, [sp]
+ add r2, r6, #0
+ add r1, r0, #0
+ ldr r1, [r1, #0x64]
+ mov r3, #0x2b
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02236BD2
+_02236BCE:
+ add r7, r7, #1
+ b _02236BF0
+_02236BD2:
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x20
+ orr r1, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ ldr r1, [r5]
+ ldr r0, _02236C18 ; =0xFFFF9FFF
+ and r1, r0
+ mov r0, #6
+ lsl r0, r0, #0xc
+ orr r0, r1
+ str r0, [r5]
+_02236BF0:
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r4, #0xc0
+ add r5, #0xc0
+ cmp r6, r0
+ blt _02236BA8
+_02236BFC:
+ ldr r0, [sp, #4]
+ cmp r7, r0
+ bne _02236C0A
+ ldr r0, [sp]
+ ldr r1, [sp, #8]
+ bl MOD11_0223A424
+_02236C0A:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02236C10: .word 0x00002DC8
+_02236C14: .word 0x00002D8C
+_02236C18: .word 0xFFFF9FFF
+
+ thumb_func_start MOD11_02236C1C
+MOD11_02236C1C: ; 0x02236C1C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A444
+ ldr r1, _02236C4C ; =0x00003104
+ ldr r1, [r4, r1]
+ add r2, r4, r1
+ ldr r1, _02236C50 ; =0x000021EC
+ ldrb r1, [r2, r1]
+ str r1, [r0]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02236C4C: .word 0x00003104
+_02236C50: .word 0x000021EC
+
+ thumb_func_start MOD11_02236C54
+MOD11_02236C54: ; 0x02236C54
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223A444
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r1, [r6]
+ cmp r1, r0
+ bhs _02236C92
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_02236C92:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02236C98
+MOD11_02236C98: ; 0x02236C98
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ mov r0, #0x4e
+ mov r3, #0
+ lsl r0, r0, #2
+ str r3, [r5, r0]
+ ldr r0, _02236F40 ; =0x0000215C
+ add r1, r4, #0
+ str r3, [r5, r0]
+ add r0, r5, #0
+ mov r2, #0x1b
+ bl MOD11_02243420
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ add r7, r0, #0
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _02236D08
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _02236D0A
+_02236D08:
+ b _02236F38
+_02236D0A:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0xc
+ tst r0, r1
+ beq _02236D74
+ ldr r0, [sp, #4]
+ cmp r0, #5
+ beq _02236D74
+ cmp r7, #5
+ beq _02236D74
+ cmp r0, #8
+ beq _02236D74
+ cmp r7, #8
+ beq _02236D74
+ cmp r0, #4
+ beq _02236D74
+ cmp r7, #4
+ beq _02236D74
+ mov r0, #0xc0
+ add r6, r4, #0
+ mul r6, r0
+ ldr r0, _02236F44 ; =0x00002D8C
+ add r1, r5, r6
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02236D74
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #8
+ beq _02236D74
+ mov r3, #0xb7
+ add r1, r5, r6
+ lsl r3, r3, #6
+ ldr r2, [r1, r3]
+ ldr r0, _02236F48 ; =0x00040080
+ tst r0, r2
+ bne _02236D74
+ mov r0, #0xc9
+ add r2, r0, #0
+ add r2, #0x5b
+ str r0, [r5, r2]
+ sub r3, #0x30
+ ldr r1, [r1, r3]
+ sub r0, #0xca
+ mul r0, r1
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _02236F40 ; =0x0000215C
+ str r0, [r5, r1]
+_02236D74:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0x30
+ tst r0, r1
+ beq _02236DDC
+ mov r0, #0xc0
+ add r6, r4, #0
+ mul r6, r0
+ ldr r0, _02236F44 ; =0x00002D8C
+ add r2, r5, r6
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ beq _02236DDC
+ add r0, #0x34
+ ldr r1, [r2, r0]
+ ldr r0, _02236F48 ; =0x00040080
+ tst r0, r1
+ bne _02236DDC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x57
+ beq _02236DB2
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x5e
+ bne _02236DC8
+_02236DB2:
+ ldr r0, _02236F4C ; =0x00002D90
+ add r1, r5, r6
+ ldr r1, [r1, r0]
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r1
+ mov r1, #8
+ bl MOD11_022476C0
+ ldr r1, _02236F40 ; =0x0000215C
+ str r0, [r5, r1]
+_02236DC8:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x5e
+ bne _02236DDC
+ mov r0, #0x4e
+ mov r1, #2
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_02236DDC:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ tst r1, r0
+ beq _02236E5E
+ ldr r1, _02236F44 ; =0x00002D8C
+ add r6, r4, #0
+ mul r6, r0
+ add r0, r5, r1
+ str r0, [sp, #8]
+ ldr r0, [r0, r6]
+ cmp r0, #0
+ beq _02236E5E
+ add r0, r5, r6
+ add r1, #0x34
+ ldr r1, [r0, r1]
+ ldr r0, _02236F48 ; =0x00040080
+ tst r0, r1
+ bne _02236E5E
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x73
+ bne _02236E2A
+ ldr r0, _02236F4C ; =0x00002D90
+ add r1, r5, r6
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #8]
+ ldr r1, [r1, r6]
+ cmp r1, r0
+ bhs _02236E5E
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _02236F40 ; =0x0000215C
+ str r0, [r5, r1]
+ b _02236E5E
+_02236E2A:
+ ldr r0, [sp, #4]
+ cmp r0, #0xf
+ beq _02236E5E
+ cmp r7, #0xf
+ beq _02236E5E
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x51
+ beq _02236E5E
+ ldr r1, _02236F50 ; =0x00000102
+ add r0, r1, #0
+ add r0, #0x22
+ str r1, [r5, r0]
+ ldr r0, _02236F4C ; =0x00002D90
+ add r1, r5, r6
+ ldr r1, [r1, r0]
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r1
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _02236F40 ; =0x0000215C
+ str r0, [r5, r1]
+_02236E5E:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #3
+ tst r0, r1
+ beq _02236F38
+ ldr r1, _02236F44 ; =0x00002D8C
+ mov r0, #0xc0
+ add r6, r4, #0
+ mul r6, r0
+ add r7, r5, r1
+ ldr r0, [r7, r6]
+ cmp r0, #0
+ beq _02236EA0
+ add r1, r1, #4
+ add r1, r5, r1
+ str r1, [sp, #0xc]
+ ldr r1, [r1, r6]
+ cmp r0, r1
+ bhs _02236EA0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2c
+ bne _02236EA0
+ ldr r0, [sp, #0xc]
+ mov r1, #0x10
+ ldr r0, [r0, r6]
+ bl MOD11_022476C0
+ ldr r1, _02236F40 ; =0x0000215C
+ str r0, [r5, r1]
+_02236EA0:
+ ldr r0, [r7, r6]
+ cmp r0, #0
+ beq _02236ECC
+ ldr r1, _02236F4C ; =0x00002D90
+ add r1, r5, r1
+ str r1, [sp, #0x10]
+ ldr r1, [r1, r6]
+ cmp r0, r1
+ bhs _02236ECC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x57
+ bne _02236ECC
+ ldr r0, [sp, #0x10]
+ mov r1, #8
+ ldr r0, [r0, r6]
+ bl MOD11_022476C0
+ ldr r1, _02236F40 ; =0x0000215C
+ str r0, [r5, r1]
+_02236ECC:
+ ldr r0, [r7, r6]
+ cmp r0, #0
+ beq _02236F38
+ ldr r0, _02236F54 ; =0x00002DAC
+ add r7, r5, r0
+ ldr r0, [r7, r6]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ beq _02236F38
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x5d
+ bne _02236F38
+ ldr r0, [r7, r6]
+ mov r1, #7
+ tst r1, r0
+ beq _02236EFC
+ mov r0, #0x13
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02236F30
+_02236EFC:
+ ldr r1, _02236F58 ; =0x00000F88
+ tst r1, r0
+ beq _02236F0C
+ mov r0, #0x13
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02236F30
+_02236F0C:
+ mov r1, #0x10
+ tst r1, r0
+ beq _02236F1C
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02236F30
+_02236F1C:
+ mov r1, #0x40
+ tst r0, r1
+ beq _02236F2A
+ mov r0, #3
+ add r1, #0xf0
+ str r0, [r5, r1]
+ b _02236F30
+_02236F2A:
+ mov r0, #4
+ add r1, #0xf0
+ str r0, [r5, r1]
+_02236F30:
+ mov r0, #0x4e
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_02236F38:
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02236F40: .word 0x0000215C
+_02236F44: .word 0x00002D8C
+_02236F48: .word 0x00040080
+_02236F4C: .word 0x00002D90
+_02236F50: .word 0x00000102
+_02236F54: .word 0x00002DAC
+_02236F58: .word 0x00000F88
+
+ thumb_func_start MOD11_02236F5C
+MOD11_02236F5C: ; 0x02236F5C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r6, [r4, #0x64]
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r2, r4, r0
+ mov r0, #0x1c
+ add r1, r6, #0
+ mul r1, r0
+ ldr r3, [r2, r1]
+ ldr r0, _0223705C ; =0xFFFFFE3F
+ mov r7, #0xc0
+ and r0, r3
+ add r3, r6, #0
+ mul r3, r7
+ add r6, r4, r3
+ ldr r3, _02237060 ; =0x00002DC8
+ ldr r6, [r6, r3]
+ sub r3, #0x18
+ lsl r6, r6, #0xe
+ lsr r6, r6, #0x1d
+ lsl r6, r6, #0x1d
+ lsr r6, r6, #0x17
+ orr r0, r6
+ str r0, [r2, r1]
+ ldr r2, [r4, #0x64]
+ add r0, r2, #0
+ mul r0, r7
+ add r0, r4, r0
+ ldr r1, [r0, r3]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ tst r0, r1
+ bne _02236FCA
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022451C0
+ ldr r0, _02237060 ; =0x00002DC8
+ ldr r2, [r4, #0x64]
+ add r1, r4, r0
+ add r0, r7, #0
+ mul r0, r2
+ ldr r3, [r1, r0]
+ ldr r2, _02237064 ; =0xFFFC7FFF
+ and r3, r2
+ mov r2, #0xa
+ lsl r2, r2, #0xe
+ orr r2, r3
+ str r2, [r1, r0]
+_02236FCA:
+ ldr r1, [r4, #0x64]
+ ldr r0, _02237060 ; =0x00002DC8
+ mov r7, #0xc0
+ add r3, r1, #0
+ add r6, r4, r0
+ mul r3, r7
+ ldr r1, [r6, r3]
+ ldr r2, _02237064 ; =0xFFFC7FFF
+ and r2, r1
+ lsl r1, r1, #0xe
+ lsr r1, r1, #0x1d
+ sub r1, r1, #1
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0xe
+ orr r1, r2
+ str r1, [r6, r3]
+ ldr r2, [r4, #0x64]
+ add r1, r2, #0
+ mul r1, r7
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0xe
+ lsr r0, r0, #0x1d
+ bne _02237002
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022451F0
+_02237002:
+ ldr r0, _02237068 ; =0x00003044
+ mov r2, #1
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _0223706C ; =0x000003E1
+ ldrb r1, [r1, r0]
+ ldr r0, _02237070 ; =0x00002154
+ str r1, [r4, r0]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02237060 ; =0x00002DC8
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0xe
+ lsr r1, r0, #0x1d
+ mov r0, #5
+ sub r3, r0, r1
+ cmp r3, #1
+ ble _0223703A
+ ldr r0, _02237070 ; =0x00002154
+_0223702E:
+ ldr r1, [r4, r0]
+ add r2, r2, #1
+ lsl r1, r1, #1
+ str r1, [r4, r0]
+ cmp r2, r3
+ blt _0223702E
+_0223703A:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02237074 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x1e
+ tst r0, r1
+ beq _02237056
+ ldr r0, _02237070 ; =0x00002154
+ ldr r1, [r4, r0]
+ lsl r1, r1, #1
+ str r1, [r4, r0]
+_02237056:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223705C: .word 0xFFFFFE3F
+_02237060: .word 0x00002DC8
+_02237064: .word 0xFFFC7FFF
+_02237068: .word 0x00003044
+_0223706C: .word 0x000003E1
+_02237070: .word 0x00002154
+_02237074: .word 0x00002DB0
+
+ thumb_func_start MOD11_02237078
+MOD11_02237078: ; 0x02237078
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ add r1, r2, #0
+ mul r1, r0
+ ldr r0, _022370F4 ; =0x00002DC8
+ add r0, r4, r0
+ ldr r3, [r0, r1]
+ lsl r2, r3, #0xb
+ lsr r5, r2, #0x1d
+ cmp r5, #5
+ bhs _022370A8
+ ldr r2, _022370F8 ; =0xFFE3FFFF
+ and r3, r2
+ add r2, r5, #1
+ lsl r2, r2, #0x1d
+ lsr r2, r2, #0xb
+ orr r2, r3
+ str r2, [r0, r1]
+_022370A8:
+ ldr r0, _022370FC ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _02237100 ; =0x000003E1
+ ldrb r1, [r1, r0]
+ ldr r0, _02237104 ; =0x00002154
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _022370F4 ; =0x00002DC8
+ mov r0, #1
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0xb
+ lsr r1, r1, #0x1d
+ cmp r1, #1
+ bls _022370EE
+ ldr r3, _02237104 ; =0x00002154
+ ldr r2, _022370F4 ; =0x00002DC8
+ mov r1, #0xc0
+_022370D4:
+ ldr r5, [r4, r3]
+ add r0, r0, #1
+ lsl r5, r5, #1
+ str r5, [r4, r3]
+ ldr r5, [r4, #0x64]
+ add r6, r5, #0
+ mul r6, r1
+ add r5, r4, r6
+ ldr r5, [r5, r2]
+ lsl r5, r5, #0xb
+ lsr r5, r5, #0x1d
+ cmp r0, r5
+ blo _022370D4
+_022370EE:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_022370F4: .word 0x00002DC8
+_022370F8: .word 0xFFE3FFFF
+_022370FC: .word 0x00003044
+_02237100: .word 0x000003E1
+_02237104: .word 0x00002154
+
+ thumb_func_start MOD11_02237108
+MOD11_02237108: ; 0x02237108
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r3, r0, #0
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ mov r5, #0xc0
+ add r1, r0, #0
+ mul r1, r5
+ ldr r6, _02237184 ; =0x00002DBE
+ add r1, r4, r1
+ ldrb r0, [r1, r6]
+ lsl r0, r0, #0x1c
+ lsr r2, r0, #0x1c
+ add r0, r5, #0
+ add r0, #0x58
+ ldr r0, [r4, r0]
+ mul r5, r0
+ add r5, r4, r5
+ ldrb r5, [r5, r6]
+ lsl r5, r5, #0x1c
+ lsr r5, r5, #0x1c
+ cmp r5, r2
+ beq _0223715A
+ sub r6, #0xe
+ ldr r6, [r1, r6]
+ mov r1, #0xf
+ lsl r1, r1, #0x10
+ tst r1, r6
+ bne _0223715A
+ cmp r5, #2
+ beq _0223715A
+ cmp r2, #2
+ bne _02237164
+_0223715A:
+ add r0, r4, #0
+ add r1, r3, #0
+ bl MOD11_0223A424
+ b _0223717E
+_02237164:
+ bl MaskOfFlagNo
+ ldr r1, _02237188 ; =0x00002DB0
+ mov r2, #0xc0
+ add r1, r4, r1
+ add r4, #0x94
+ ldr r3, [r4]
+ lsl r0, r0, #0x10
+ add r4, r3, #0
+ mul r4, r2
+ ldr r2, [r1, r4]
+ orr r0, r2
+ str r0, [r1, r4]
+_0223717E:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02237184: .word 0x00002DBE
+_02237188: .word 0x00002DB0
+
+ thumb_func_start MOD11_0223718C
+MOD11_0223718C: ; 0x0223718C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ mov r5, #0x6f
+ add r2, r0, #0
+ lsl r5, r5, #2
+ add r1, r4, r5
+ lsl r0, r2, #2
+ ldr r6, [r1, r0]
+ mov r3, #8
+ tst r3, r6
+ beq _022371D0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+ ldr r1, _02237214 ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r4, r1]
+ orr r0, r2
+ str r0, [r4, r1]
+ b _02237210
+_022371D0:
+ mov r3, #8
+ orr r3, r6
+ str r3, [r1, r0]
+ add r5, #8
+ lsl r0, r2, #3
+ add r1, r4, r5
+ ldr r3, [r1, r0]
+ ldr r2, _02237218 ; =0xFFF1FFFF
+ and r3, r2
+ mov r2, #0xa
+ lsl r2, r2, #0x10
+ orr r2, r3
+ str r2, [r1, r0]
+ ldr r3, [r1, r0]
+ ldr r2, _0223721C ; =0xFFFE7FFF
+ and r3, r2
+ ldr r2, [r4, #0x64]
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0xf
+ orr r2, r3
+ str r2, [r1, r0]
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ ldr r1, [r4, #0x64]
+ add r0, #0xf8
+ str r1, [r0]
+ mov r0, #0xc6
+ add r4, #0xf6
+ strh r0, [r4]
+_02237210:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02237214: .word 0x0000216C
+_02237218: .word 0xFFF1FFFF
+_0223721C: .word 0xFFFE7FFF
+
+ thumb_func_start MOD11_02237220
+MOD11_02237220: ; 0x02237220
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ bl LCRandom
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x66
+ bge _02237248
+ ldr r0, _02237284 ; =0x00002154
+ mov r1, #0x28
+ str r1, [r5, r0]
+ b _0223727E
+_02237248:
+ cmp r0, #0xb2
+ bge _02237254
+ ldr r0, _02237284 ; =0x00002154
+ mov r1, #0x50
+ str r1, [r5, r0]
+ b _0223727E
+_02237254:
+ cmp r0, #0xcc
+ bge _02237260
+ ldr r0, _02237284 ; =0x00002154
+ mov r1, #0x78
+ str r1, [r5, r0]
+ b _0223727E
+_02237260:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02237288 ; =0x00002D90
+ ldr r0, [r1, r0]
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, _0223728C ; =0x0000215C
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+_0223727E:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02237284: .word 0x00002154
+_02237288: .word 0x00002D90
+_0223728C: .word 0x0000215C
+
+ thumb_func_start MOD11_02237290
+MOD11_02237290: ; 0x02237290
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, _0223732C ; =0x00003120
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _0223731C
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r0, _0223732C ; =0x00003120
+ strb r1, [r4, r0]
+ ldrb r1, [r4, r0]
+ cmp r1, #5
+ bhs _022372C4
+ ldr r1, _02237330 ; =0x00002154
+ mov r2, #0xa
+ str r2, [r4, r1]
+ mov r1, #4
+ strb r1, [r4, r0]
+ b _0223731C
+_022372C4:
+ cmp r1, #0xf
+ bhs _022372D4
+ ldr r1, _02237330 ; =0x00002154
+ mov r2, #0x1e
+ str r2, [r4, r1]
+ mov r1, #5
+ strb r1, [r4, r0]
+ b _0223731C
+_022372D4:
+ cmp r1, #0x23
+ bhs _022372E4
+ ldr r1, _02237330 ; =0x00002154
+ mov r2, #0x32
+ str r2, [r4, r1]
+ mov r1, #6
+ strb r1, [r4, r0]
+ b _0223731C
+_022372E4:
+ cmp r1, #0x41
+ bhs _022372F4
+ ldr r1, _02237330 ; =0x00002154
+ mov r2, #0x46
+ str r2, [r4, r1]
+ mov r1, #7
+ strb r1, [r4, r0]
+ b _0223731C
+_022372F4:
+ cmp r1, #0x55
+ bhs _02237304
+ ldr r1, _02237330 ; =0x00002154
+ mov r2, #0x5a
+ str r2, [r4, r1]
+ mov r1, #8
+ strb r1, [r4, r0]
+ b _0223731C
+_02237304:
+ cmp r1, #0x5f
+ ldr r1, _02237330 ; =0x00002154
+ bhs _02237314
+ mov r2, #0x6e
+ str r2, [r4, r1]
+ mov r1, #9
+ strb r1, [r4, r0]
+ b _0223731C
+_02237314:
+ mov r2, #0x96
+ str r2, [r4, r1]
+ mov r1, #0xa
+ strb r1, [r4, r0]
+_0223731C:
+ ldr r0, _0223732C ; =0x00003120
+ ldrb r1, [r4, r0]
+ mov r0, #0x13
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0223732C: .word 0x00003120
+_02237330: .word 0x00002154
+
+ thumb_func_start MOD11_02237334
+MOD11_02237334: ; 0x02237334
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_02246DE0
+ cmp r0, #0
+ bne _0223737E
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ b _02237392
+_0223737E:
+ cmp r7, #1
+ bne _02237392
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ add r3, r5, r0
+ lsl r2, r4, #2
+ ldr r1, [r3, r2]
+ mov r0, #1
+ orr r0, r1
+ str r0, [r3, r2]
+_02237392:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02237398
+MOD11_02237398: ; 0x02237398
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x64]
+ bl MOD11_02230270
+ ldr r1, [r4, #0x64]
+ mov r6, #0xe
+ ldr r5, _022374D4 ; =0x00002DB0
+ add r2, r1, #0
+ mov r3, #0xc0
+ mul r2, r3
+ add r1, r4, r5
+ ldr r7, [r1, r2]
+ lsl r6, r6, #0xc
+ tst r6, r7
+ beq _022373F4
+ ldr r0, _022374D8 ; =0xFFFF1FFF
+ and r0, r7
+ str r0, [r1, r2]
+ ldr r0, [r4, #0x64]
+ mov r2, #0x74
+ add r1, r0, #0
+ add r0, r5, #0
+ mul r1, r3
+ add r1, r4, r1
+ add r0, #0x1c
+ ldr r0, [r1, r0]
+ add r5, #0x3a
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x1e
+ add r0, r3, #0
+ add r0, #0x58
+ str r1, [r4, r0]
+ ldr r0, [r4, #0x64]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r4, r1
+ ldrh r0, [r0, r5]
+ add r3, #0x64
+ mov r1, #1
+ str r0, [r4, r3]
+ add r0, r4, #0
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022373F4:
+ add r5, #0x10
+ add r5, r4, r5
+ ldr r1, [r5, r2]
+ mov r6, #4
+ tst r6, r1
+ beq _0223742A
+ mov r0, #4
+ bic r1, r0
+ str r1, [r5, r2]
+ ldr r0, [r4, #0x64]
+ add r2, r0, #0
+ mul r2, r3
+ ldr r1, [r5, r2]
+ mov r0, #3
+ bic r1, r0
+ str r1, [r5, r2]
+ mov r1, #0x49
+ add r0, r1, #0
+ add r0, #0xdb
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x75
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223742A:
+ mov r1, #0x72
+ lsl r1, r1, #2
+ add r6, r4, r1
+ lsl r5, r0, #3
+ ldr r2, [r6, r5]
+ lsl r3, r2, #0x1e
+ lsr r3, r3, #0x1e
+ beq _02237466
+ sub r1, #0xc
+ lsl r3, r0, #2
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #4
+ bic r2, r0
+ str r2, [r1, r3]
+ ldr r1, [r6, r5]
+ mov r0, #3
+ bic r1, r0
+ str r1, [r6, r5]
+ mov r1, #0xbf
+ add r0, r1, #0
+ add r0, #0x65
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x75
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02237466:
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x1e
+ beq _0223749A
+ add r2, r1, #0
+ sub r2, #0xc
+ lsl r7, r0, #2
+ add r3, r4, r2
+ ldr r2, [r3, r7]
+ ldr r0, _022374DC ; =0xFFFFFBFF
+ and r0, r2
+ str r0, [r3, r7]
+ ldr r2, [r6, r5]
+ mov r0, #0xc
+ bic r2, r0
+ add r0, r1, #0
+ str r2, [r6, r5]
+ sub r0, #0x42
+ sub r1, #0xa4
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x75
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223749A:
+ add r2, r1, #0
+ sub r2, #0xc
+ add r2, r4, r2
+ lsl r0, r0, #2
+ ldr r6, [r2, r0]
+ mov r5, #0x80
+ add r3, r6, #0
+ tst r3, r5
+ beq _022374C6
+ mov r3, #0x80
+ bic r6, r3
+ str r6, [r2, r0]
+ sub r1, #0xa
+ add r5, #0xa4
+ str r1, [r4, r5]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x75
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022374C6:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022374D4: .word 0x00002DB0
+_022374D8: .word 0xFFFF1FFF
+_022374DC: .word 0xFFFFFBFF
+
+ thumb_func_start MOD11_022374E0
+MOD11_022374E0: ; 0x022374E0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ ldr r0, _02237578 ; =0x000080FF
+ tst r0, r1
+ beq _02237522
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _02237522
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _02237536
+_02237522:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0223757C ; =0x00002D90
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ ldr r0, _02237580 ; =0x0000215C
+ str r1, [r4, r0]
+ b _02237572
+_02237536:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x30
+ tst r0, r1
+ ldr r1, [r4, #0x64]
+ beq _0223755E
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0223757C ; =0x00002D90
+ ldr r1, [r1, r0]
+ mov r0, #0x14
+ mul r0, r1
+ mov r1, #0x1e
+ bl MOD11_022476C0
+ ldr r1, _02237580 ; =0x0000215C
+ str r0, [r4, r1]
+ b _02237572
+_0223755E:
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0223757C ; =0x00002D90
+ ldr r0, [r1, r0]
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, _02237580 ; =0x0000215C
+ str r0, [r4, r1]
+_02237572:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02237578: .word 0x000080FF
+_0223757C: .word 0x00002D90
+_02237580: .word 0x0000215C
+
+ thumb_func_start MOD11_02237584
+MOD11_02237584: ; 0x02237584
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, _02237664 ; =0x00002D54
+ ldr r1, [r4, #0x64]
+ add r3, r4, r0
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, [r3, r0]
+ mov r5, #2
+ lsl r0, r1, #2
+ lsr r0, r0, #0x1b
+ and r0, r5
+ lsl r2, r0, #4
+ lsl r0, r1, #7
+ lsr r0, r0, #0x1b
+ and r0, r5
+ lsl r7, r0, #3
+ lsl r0, r1, #0xc
+ lsr r0, r0, #0x1b
+ and r0, r5
+ lsl r0, r0, #2
+ mov ip, r0
+ lsl r0, r1, #0x11
+ lsr r0, r0, #0x1b
+ and r0, r5
+ lsl r6, r0, #1
+ lsl r0, r1, #0x1b
+ lsr r0, r0, #0x1b
+ lsl r1, r1, #0x16
+ and r0, r5
+ lsr r1, r1, #0x1b
+ lsr r0, r0, #1
+ and r1, r5
+ orr r0, r1
+ add r1, r6, #0
+ orr r1, r0
+ mov r0, ip
+ orr r0, r1
+ orr r0, r7
+ add r1, r2, #0
+ orr r1, r0
+ ldr r0, _02237668 ; =0x00002154
+ str r1, [r4, r0]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r5, [r3, r0]
+ lsl r0, r5, #2
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r6, r0, #0x1a
+ lsl r0, r5, #7
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r3, r0, #0x1b
+ lsl r0, r5, #0xc
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r2, r0, #0x1c
+ lsl r0, r5, #0x11
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r7, r0, #0x1d
+ lsl r0, r5, #0x1b
+ lsr r1, r0, #0x1b
+ mov r0, #1
+ and r0, r1
+ lsl r1, r5, #0x16
+ lsr r1, r1, #0x1b
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1e
+ orr r0, r1
+ orr r0, r7
+ orr r0, r2
+ orr r0, r3
+ add r1, r6, #0
+ orr r1, r0
+ ldr r0, _02237668 ; =0x00002154
+ add r0, #0xc
+ str r1, [r4, r0]
+ ldr r0, _02237668 ; =0x00002154
+ ldr r1, [r4, r0]
+ mov r0, #0x28
+ mul r0, r1
+ mov r1, #0x3f
+ bl _s32_div_f
+ ldr r1, _02237668 ; =0x00002154
+ add r0, #0x1e
+ str r0, [r4, r1]
+ add r1, #0xc
+ ldr r1, [r4, r1]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0x3f
+ bl _s32_div_f
+ add r1, r0, #1
+ ldr r0, _0223766C ; =0x00002160
+ str r1, [r4, r0]
+ ldr r1, [r4, r0]
+ cmp r1, #9
+ blt _0223765E
+ add r1, r1, #1
+ str r1, [r4, r0]
+_0223765E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02237664: .word 0x00002D54
+_02237668: .word 0x00002154
+_0223766C: .word 0x00002160
+
+ thumb_func_start MOD11_02237670
+MOD11_02237670: ; 0x02237670
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r2, _022376C8 ; =0x00002D58
+ mov r1, #0
+ mov r3, #0xc0
+ add r5, r2, #0
+_02237684:
+ ldr r6, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r6
+ ldr r6, [r4, #0x64]
+ add r0, r4, r0
+ add r0, r1, r0
+ add r7, r6, #0
+ mul r7, r3
+ add r6, r4, r7
+ add r6, r1, r6
+ ldrsb r0, [r0, r2]
+ add r1, r1, #1
+ cmp r1, #8
+ strb r0, [r6, r5]
+ blt _02237684
+ ldr r0, [r4, #0x64]
+ ldr r6, [r4, #0x6c]
+ mov r3, #0xc0
+ add r1, r0, #0
+ ldr r5, _022376CC ; =0x00002DB0
+ mul r1, r3
+ mul r3, r6
+ add r2, r4, r5
+ add r3, r4, r3
+ ldr r4, [r3, r5]
+ mov r3, #1
+ lsl r3, r3, #0x14
+ ldr r0, [r2, r1]
+ and r3, r4
+ orr r0, r3
+ str r0, [r2, r1]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022376C8: .word 0x00002D58
+_022376CC: .word 0x00002DB0
+
+ thumb_func_start MOD11_022376D0
+MOD11_022376D0: ; 0x022376D0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ ldr r1, [r4, #0x6c]
+ add r2, r0, #0
+ mov r0, #0x62
+ add r3, r4, r1
+ lsl r0, r0, #2
+ ldrb r0, [r3, r0]
+ cmp r0, #0
+ bne _022377A4
+ add r0, r5, #0
+ bl MOD11_02230270
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ lsl r3, r0, #2
+ add r6, r4, r1
+ add r7, r1, #0
+ ldr r2, [r6, r3]
+ mov r0, #0x10
+ orr r0, r2
+ str r0, [r6, r3]
+ ldr r0, [r4, #0x6c]
+ sub r7, #0x34
+ add r2, r4, r0
+ mov r0, #3
+ strb r0, [r2, r7]
+ add r7, r1, #0
+ ldr r0, _022377B4 ; =0x00003044
+ sub r7, #0x2c
+ ldr r2, [r4, r0]
+ ldr r0, [r4, #0x6c]
+ sub r1, #0x24
+ lsl r0, r0, #1
+ add r0, r4, r0
+ strh r2, [r0, r7]
+ ldr r2, [r4, #0x6c]
+ ldr r0, [r4, #0x64]
+ lsl r2, r2, #2
+ add r2, r4, r2
+ str r0, [r2, r1]
+ mov r0, #3
+ lsl r0, r0, #7
+ ldr r0, [r4, r0]
+ ldr r2, _022377B4 ; =0x00003044
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x64]
+ add r1, r4, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r2, [r4, r2]
+ ldr r3, [r6, r3]
+ add r0, r5, #0
+ bl MOD11_0224B310
+ mov r1, #0
+ mvn r1, r1
+ mul r1, r0
+ add r0, r4, #0
+ bl MOD11_0224BF10
+ ldr r1, [r4, #0x6c]
+ lsl r1, r1, #2
+ add r2, r4, r1
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #6
+ add r2, r4, r0
+ add r0, r1, #0
+ add r0, #0x2c
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ beq _022377AC
+ ldr r0, [r4, #0x6c]
+ add r5, r4, r1
+ lsl r4, r0, #2
+ ldr r1, [r5, r4]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ str r0, [r5, r4]
+ b _022377AC
+_022377A4:
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD11_0223A424
+_022377AC:
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022377B4: .word 0x00003044
+
+ thumb_func_start MOD11_022377B8
+MOD11_022377B8: ; 0x022377B8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ add r6, r0, #0
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0223CC8C
+ str r0, [sp]
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r6, #0
+ bl MOD11_0223D29C
+ ldr r0, _02237830 ; =0x0000216C
+ ldr r1, [r4, r0]
+ ldr r0, _02237834 ; =0x001FD849
+ tst r0, r1
+ beq _02237828
+ ldr r1, [sp, #8]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02237828:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02237830: .word 0x0000216C
+_02237834: .word 0x001FD849
+
+ thumb_func_start MOD11_02237838
+MOD11_02237838: ; 0x02237838
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r3, #0
+ bl MOD11_02246ED0
+ cmp r0, #0
+ beq _02237866
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02237866:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223786C
+MOD11_0223786C: ; 0x0223786C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r5, #0x64]
+ add r0, r7, #0
+ bl MOD11_0222FFC8
+ ldr r1, _02237AA0 ; =0x0000217D
+ str r0, [sp]
+ ldrb r0, [r5, r1]
+ cmp r0, #0
+ bne _02237900
+ mov r0, #2
+ strb r0, [r5, r1]
+ add r0, r1, #0
+ mov r2, #0xfd
+ add r0, #0xb
+ str r2, [r5, r0]
+ mov r2, #0
+ add r0, r1, #2
+ strb r2, [r5, r0]
+ add r6, r1, #2
+_022378A2:
+ ldr r2, _02237AA4 ; =0x0000217F
+ ldr r1, [r5, #0x64]
+ ldrb r2, [r5, r2]
+ add r0, r7, #0
+ bl MOD11_02230014
+ ldr r1, _02237AA4 ; =0x0000217F
+ add r4, r0, #0
+ ldrb r3, [r5, r1]
+ ldr r1, [r5, #0x64]
+ add r2, r5, r1
+ ldr r1, _02237AA8 ; =0x0000219C
+ ldrb r1, [r2, r1]
+ cmp r3, r1
+ beq _02237900
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022378F8
+ add r0, r4, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022378F8
+ add r0, r4, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02237AAC ; =0x000001EE
+ cmp r0, r1
+ beq _022378F8
+ add r0, r4, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02237900
+_022378F8:
+ ldrb r0, [r5, r6]
+ add r0, r0, #1
+ strb r0, [r5, r6]
+ b _022378A2
+_02237900:
+ ldr r2, _02237AA4 ; =0x0000217F
+ ldr r1, [r5, #0x64]
+ ldrb r2, [r5, r2]
+ add r0, r7, #0
+ bl MOD11_02230014
+ add r4, r0, #0
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl GetMonData
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ mov r2, #1
+ bl GetMonBaseStat_HandleFormeConversion
+ ldr r1, _02237AB0 ; =0x00002144
+ ldr r2, _02237AB4 ; =0x00003044
+ str r0, [r5, r1]
+ ldr r2, [r5, r2]
+ ldr r0, [r5, r1]
+ lsl r2, r2, #4
+ add r3, r5, r2
+ ldr r2, _02237AB8 ; =0x000003E1
+ ldrb r2, [r3, r2]
+ mul r2, r0
+ str r2, [r5, r1]
+ lsl r0, r4, #1
+ mov r1, #5
+ bl _s32_div_f
+ ldr r1, _02237AB0 ; =0x00002144
+ add r0, r0, #2
+ ldr r2, [r5, r1]
+ mul r0, r2
+ str r0, [r5, r1]
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ mov r1, #0xb5
+ add r2, r5, r0
+ lsl r1, r1, #6
+ ldrh r0, [r2, r1]
+ add r1, #0x26
+ ldrb r1, [r2, r1]
+ mov r2, #2
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1b
+ bl GetMonBaseStat_HandleFormeConversion
+ add r1, r0, #0
+ ldr r0, _02237AB0 ; =0x00002144
+ ldr r0, [r5, r0]
+ bl _u32_div_f
+ ldr r1, _02237AB0 ; =0x00002144
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ mov r1, #0x32
+ bl _s32_div_f
+ ldr r1, _02237AB0 ; =0x00002144
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ add r0, r0, #2
+ str r0, [r5, r1]
+ add r0, r1, #0
+ add r0, #0xc
+ ldr r2, [r5, r1]
+ ldr r0, [r5, r0]
+ mul r0, r2
+ str r0, [r5, r1]
+ ldr r0, [r5, #0x64]
+ lsl r0, r0, #6
+ add r2, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ beq _022379CC
+ ldr r1, [r5, r1]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ ldr r1, _02237AB0 ; =0x00002144
+ str r0, [r5, r1]
+_022379CC:
+ ldr r1, _02237AB0 ; =0x00002144
+ add r0, r5, #0
+ ldr r1, [r5, r1]
+ bl MOD11_0224BF10
+ ldr r1, _02237AB0 ; =0x00002144
+ str r0, [r5, r1]
+ mov r0, #0
+ ldr r2, [r5, r1]
+ mvn r0, r0
+ mul r0, r2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r3, r1, #0
+ ldr r2, _02237ABC ; =0x000001E1
+ add r0, #0xf6
+ strh r2, [r0]
+ add r0, r5, #0
+ mov r2, #2
+ add r0, #0xf5
+ strb r2, [r0]
+ add r3, #0x3b
+ ldrb r3, [r5, r3]
+ ldr r0, [r5, #0x64]
+ add r6, r1, #0
+ lsl r3, r3, #8
+ orr r3, r0
+ add r0, r5, #0
+ add r0, #0xf8
+ str r3, [r0]
+ add r0, r1, #0
+ add r0, #0x3b
+ ldrb r0, [r5, r0]
+ add r6, #0x3b
+ add r3, r0, #1
+ add r0, r1, #0
+ add r0, #0x3b
+ strb r3, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x38
+ strb r2, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x3b
+ ldrb r2, [r5, r0]
+ ldr r0, [sp]
+ cmp r2, r0
+ bge _02237A94
+_02237A2A:
+ ldr r1, [r5, #0x64]
+ add r0, r7, #0
+ bl MOD11_02230014
+ ldr r1, _02237AA4 ; =0x0000217F
+ add r4, r0, #0
+ ldrb r3, [r5, r1]
+ ldr r1, [r5, #0x64]
+ add r2, r5, r1
+ ldr r1, _02237AA8 ; =0x0000219C
+ ldrb r1, [r2, r1]
+ cmp r3, r1
+ beq _02237A9A
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02237A7C
+ add r0, r4, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02237A7C
+ add r0, r4, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02237AAC ; =0x000001EE
+ cmp r0, r1
+ beq _02237A7C
+ add r0, r4, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02237A9A
+_02237A7C:
+ ldrb r0, [r5, r6]
+ add r0, r0, #1
+ strb r0, [r5, r6]
+ ldr r0, _02237AA4 ; =0x0000217F
+ ldrb r2, [r5, r0]
+ ldr r0, [sp]
+ cmp r2, r0
+ blt _02237A2A
+ ldr r0, _02237AC0 ; =0x0000217C
+ mov r1, #1
+ strb r1, [r5, r0]
+ b _02237A9A
+_02237A94:
+ mov r0, #1
+ add r1, #0x38
+ strb r0, [r5, r1]
+_02237A9A:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02237AA0: .word 0x0000217D
+_02237AA4: .word 0x0000217F
+_02237AA8: .word 0x0000219C
+_02237AAC: .word 0x000001EE
+_02237AB0: .word 0x00002144
+_02237AB4: .word 0x00003044
+_02237AB8: .word 0x000003E1
+_02237ABC: .word 0x000001E1
+_02237AC0: .word 0x0000217C
+
+ thumb_func_start MOD11_02237AC4
+MOD11_02237AC4: ; 0x02237AC4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ mov r1, #0x71
+ lsl r1, r1, #2
+ mov r2, #1
+ add r1, r4, r1
+ lsl r0, r0, #3
+ ldr r3, [r1, r0]
+ lsl r2, r2, #0x14
+ orr r2, r3
+ str r2, [r1, r0]
+ ldr r3, [r1, r0]
+ ldr r2, _02237B00 ; =0xFF9FFFFF
+ and r3, r2
+ ldr r2, [r4, #0x64]
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #9
+ orr r2, r3
+ str r2, [r1, r0]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02237B00: .word 0xFF9FFFFF
+
+ thumb_func_start MOD11_02237B04
+MOD11_02237B04: ; 0x02237B04
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02237B82
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #0x10
+ bl MOD11_0223C230
+ add r4, r0, #0
+ bl MaskOfFlagNo
+ ldr r1, _02237B90 ; =0x00003108
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _02237B78
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _02237B94 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02237B78
+ ldr r0, [r5, #0x64]
+ mov r2, #0x75
+ lsl r0, r0, #6
+ add r0, r5, r0
+ lsl r2, r2, #2
+ ldr r0, [r0, r2]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ bne _02237B78
+ add r1, r5, r2
+ lsl r0, r4, #6
+ ldr r3, [r1, r0]
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x1f
+ bne _02237B78
+ sub r2, #0xbc
+ str r4, [r5, r2]
+ ldr r3, [r1, r0]
+ mov r2, #8
+ orr r2, r3
+ str r2, [r1, r0]
+ b _02237B8A
+_02237B78:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _02237B8A
+_02237B82:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02237B8A:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02237B90: .word 0x00003108
+_02237B94: .word 0x00002D8C
+
+ thumb_func_start MOD11_02237B98
+MOD11_02237B98: ; 0x02237B98
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ str r0, [sp, #8]
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ str r0, [sp]
+ ldr r1, [r4, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02230270
+ add r7, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02237BF2
+ ldr r0, [sp, #8]
+ mov r1, #0x84
+ tst r0, r1
+ bne _02237BF2
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _02237C90
+_02237BF2:
+ ldr r0, [r4, #0x64]
+ add r1, r4, r0
+ ldr r0, _02237C98 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl MaskOfFlagNo
+ ldr r1, [sp]
+ lsl r1, r1, #3
+ add r2, r4, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #3
+ lsr r1, r1, #0x1a
+ tst r0, r1
+ bne _02237C30
+ ldr r0, [r4, #0x6c]
+ add r1, r4, r0
+ ldr r0, _02237C98 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl MaskOfFlagNo
+ lsl r1, r7, #3
+ add r2, r4, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #3
+ lsr r1, r1, #0x1a
+ tst r0, r1
+ beq _02237C3A
+_02237C30:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _02237C90
+_02237C3A:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ add r3, r4, r2
+ ldr r2, _02237C9C ; =0x00002DB8
+ ldrh r3, [r3, r2]
+ cmp r3, #0
+ bne _02237C58
+ ldr r3, [r4, #0x6c]
+ mul r0, r3
+ add r0, r4, r0
+ ldrh r0, [r0, r2]
+ cmp r0, #0
+ beq _02237C6E
+_02237C58:
+ add r0, r4, #0
+ bl MOD11_02246CAC
+ cmp r0, #0
+ beq _02237C6E
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02246CAC
+ cmp r0, #0
+ bne _02237C78
+_02237C6E:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _02237C90
+_02237C78:
+ ldr r1, [r4, #0x64]
+ ldr r2, [r4, #0x6c]
+ add r0, r4, #0
+ mov r3, #0x3c
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02237C90
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02237C90:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02237C98: .word 0x0000219C
+_02237C9C: .word 0x00002DB8
+
+ thumb_func_start MOD11_02237CA0
+MOD11_02237CA0: ; 0x02237CA0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ mov r2, #0x63
+ lsl r2, r2, #2
+ ldr r3, [r4, #0x64]
+ add r5, r4, r2
+ add r1, r0, #0
+ ldrb r0, [r5, r3]
+ cmp r0, #0
+ beq _02237CCA
+ add r0, r4, #0
+ bl MOD11_0223A424
+ b _02237CDA
+_02237CCA:
+ mov r0, #2
+ strb r0, [r5, r3]
+ ldr r0, [r4, #0x64]
+ add r2, #0x2c
+ add r1, r4, r0
+ ldr r0, _02237CE0 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ strb r0, [r1, r2]
+_02237CDA:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02237CE0: .word 0x0000219C
+
+ thumb_func_start MOD11_02237CE4
+MOD11_02237CE4: ; 0x02237CE4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x48
+ str r0, [sp]
+ str r1, [sp, #4]
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [sp, #4]
+ bl MOD11_0223A404
+ ldr r1, [sp, #4]
+ str r0, [sp, #0x14]
+ ldr r0, [sp]
+ ldr r1, [r1, #0x64]
+ mov r7, #0
+ bl MOD11_0222FFC8
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ ble _02237D8A
+ add r5, sp, #0x18
+_02237D16:
+ ldr r0, [sp, #4]
+ ldr r1, [r0, #0x64]
+ add r2, r0, r1
+ ldr r0, _02237DB8 ; =0x0000219C
+ ldrb r2, [r2, r0]
+ ldr r0, [sp, #0x10]
+ cmp r0, r2
+ beq _02237D7E
+ ldr r0, [sp]
+ ldr r2, [sp, #0x10]
+ bl MOD11_02230014
+ mov r1, #0xad
+ mov r2, #0
+ str r0, [sp, #8]
+ bl GetMonData
+ cmp r0, #0
+ beq _02237D7E
+ ldr r0, [sp, #8]
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02237DBC ; =0x000001EE
+ cmp r0, r1
+ beq _02237D7E
+ mov r4, #0
+_02237D4E:
+ add r1, r4, #0
+ ldr r0, [sp, #8]
+ add r1, #0x36
+ mov r2, #0
+ bl GetMonData
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r6, #0
+ bl MOD11_02246BE8
+ cmp r0, #0
+ bne _02237D78
+ add r0, r6, #0
+ bl MOD11_0224C07C
+ cmp r0, #1
+ bne _02237D78
+ strh r6, [r5]
+ add r5, r5, #2
+ add r7, r7, #1
+_02237D78:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _02237D4E
+_02237D7E:
+ ldr r0, [sp, #0x10]
+ add r1, r0, #1
+ ldr r0, [sp, #0xc]
+ str r1, [sp, #0x10]
+ cmp r1, r0
+ blt _02237D16
+_02237D8A:
+ cmp r7, #0
+ beq _02237DA8
+ bl LCRandom
+ add r1, r7, #0
+ bl _s32_div_f
+ lsl r1, r1, #1
+ add r0, sp, #0x18
+ ldrh r2, [r0, r1]
+ mov r1, #0x49
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ b _02237DB0
+_02237DA8:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x14]
+ bl MOD11_0223A424
+_02237DB0:
+ mov r0, #0
+ add sp, #0x48
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02237DB8: .word 0x0000219C
+_02237DBC: .word 0x000001EE
+
+ thumb_func_start MOD11_02237DC0
+MOD11_02237DC0: ; 0x02237DC0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ str r1, [sp]
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [sp]
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ mov r6, #0
+ add r0, r7, #0
+ add r4, r6, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _02237E00
+ ldr r5, [sp]
+_02237DE8:
+ ldr r0, _02237E30 ; =0x00002D8C
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02237DF2
+ add r6, r6, #1
+_02237DF2:
+ add r0, r7, #0
+ add r5, #0xc0
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _02237DE8
+_02237E00:
+ ldr r0, [sp]
+ add r0, #0xec
+ ldr r1, [r0]
+ sub r0, r6, #1
+ cmp r1, r0
+ bne _02237E16
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ bl MOD11_0223A424
+ b _02237E2A
+_02237E16:
+ mov r1, #0x75
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ add r3, r0, r1
+ ldr r0, [r0, #0x64]
+ lsl r2, r0, #6
+ ldr r1, [r3, r2]
+ mov r0, #0x10
+ orr r0, r1
+ str r0, [r3, r2]
+_02237E2A:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02237E30: .word 0x00002D8C
+
+ thumb_func_start MOD11_02237E34
+MOD11_02237E34: ; 0x02237E34
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r5, #0x64]
+ add r0, r6, #0
+ bl MOD11_02230270
+ add r1, r5, #0
+ ldr r4, [r5, #0x64]
+ add r1, #0x84
+ str r4, [r1]
+ ldr r1, [r5, #0x6c]
+ lsl r0, r0, #3
+ str r1, [r5, #0x64]
+ mov r1, #0x71
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02237E7E
+ lsl r0, r0, #9
+ lsr r0, r0, #0x1e
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r5, r1
+ ldr r1, _02237EDC ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02237E7E
+ str r0, [r5, #0x6c]
+ b _02237ECA
+_02237E7E:
+ ldr r0, _02237EE0 ; =0x00003044
+ ldr r3, [r5, r0]
+ lsl r0, r3, #4
+ add r1, r5, r0
+ ldr r0, _02237EE4 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ cmp r0, #4
+ beq _02237E92
+ cmp r0, #8
+ bne _02237E96
+_02237E92:
+ str r4, [r5, #0x6c]
+ b _02237ECA
+_02237E96:
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ lsl r3, r3, #0x10
+ ldr r2, [r5, #0x64]
+ add r0, r6, #0
+ add r1, r5, #0
+ lsr r3, r3, #0x10
+ bl MOD11_02244C28
+ mov r1, #0xb5
+ lsl r1, r1, #2
+ add r2, r5, r1
+ mov r1, #0x1c
+ mul r1, r0
+ ldr r1, [r2, r1]
+ lsl r2, r1, #0x1e
+ lsr r2, r2, #0x1f
+ bne _02237EC4
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x1f
+ beq _02237EC8
+_02237EC4:
+ str r0, [r5, #0x6c]
+ b _02237ECA
+_02237EC8:
+ str r4, [r5, #0x6c]
+_02237ECA:
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r2, [r5, r1]
+ mov r0, #8
+ orr r0, r2
+ str r0, [r5, r1]
+ mov r0, #0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02237EDC: .word 0x00002D8C
+_02237EE0: .word 0x00003044
+_02237EE4: .word 0x000003E6
+
+ thumb_func_start MOD11_02237EE8
+MOD11_02237EE8: ; 0x02237EE8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r5, #0x64]
+ ldr r0, [r5, #0x6c]
+ lsl r4, r1, #6
+ add r2, r5, r4
+ lsl r1, r0, #2
+ add r2, r2, r1
+ mov r1, #0x76
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02237F1A
+ bl MaskOfFlagNo
+ mov r1, #0x7b
+ add r2, r5, r4
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ tst r0, r1
+ bne _02237F40
+_02237F1A:
+ ldr r0, [r5, #0x6c]
+ add r2, r5, r4
+ lsl r1, r0, #2
+ add r2, r2, r1
+ mov r1, #0x1f
+ lsl r1, r1, #4
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02237F48
+ bl MaskOfFlagNo
+ ldr r1, [r5, #0x64]
+ lsl r1, r1, #6
+ add r2, r5, r1
+ mov r1, #0x81
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ tst r0, r1
+ beq _02237F48
+_02237F40:
+ ldr r0, _02237F54 ; =0x00002158
+ mov r1, #0x14
+ str r1, [r5, r0]
+ b _02237F4E
+_02237F48:
+ ldr r0, _02237F54 ; =0x00002158
+ mov r1, #0xa
+ str r1, [r5, r0]
+_02237F4E:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02237F54: .word 0x00002158
+
+ thumb_func_start MOD11_02237F58
+MOD11_02237F58: ; 0x02237F58
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r4, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02230270
+ lsl r1, r0, #2
+ add r2, r4, r1
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ ldr r2, [r2, r1]
+ mov r1, #1
+ tst r1, r2
+ bne _02237F8C
+ mov r1, #2
+ tst r1, r2
+ beq _02237FBC
+_02237F8C:
+ mov r5, #0x6f
+ lsl r5, r5, #2
+ add r2, r4, r5
+ lsl r1, r0, #2
+ ldr r6, [r2, r1]
+ mov r3, #1
+ bic r6, r3
+ str r6, [r2, r1]
+ ldr r6, [r2, r1]
+ mov r3, #2
+ bic r6, r3
+ add r5, #8
+ str r6, [r2, r1]
+ lsl r2, r0, #3
+ add r3, r4, r5
+ ldr r1, [r3, r2]
+ mov r0, #0x1c
+ bic r1, r0
+ str r1, [r3, r2]
+ ldr r1, [r3, r2]
+ ldr r0, _02237FC8 ; =0xFFFFFC7F
+ and r0, r1
+ str r0, [r3, r2]
+ b _02237FC4
+_02237FBC:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02237FC4:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02237FC8: .word 0xFFFFFC7F
+
+ thumb_func_start MOD11_02237FCC
+MOD11_02237FCC: ; 0x02237FCC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ add r3, r4, r0
+ ldr r0, [r4, #0x6c]
+ mov r5, #0xc0
+ add r2, r0, #0
+ mul r2, r5
+ ldr r0, [r3, r2]
+ lsl r5, r5, #5
+ tst r5, r0
+ beq _02237FFE
+ add r0, r4, #0
+ bl MOD11_0223A424
+ b _02238006
+_02237FFE:
+ mov r1, #1
+ lsl r1, r1, #0xc
+ orr r0, r1
+ str r0, [r3, r2]
+_02238006:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223800C
+MOD11_0223800C: ; 0x0223800C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r5, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02230270
+ add r4, r0, #0
+ ldr r2, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r5, r0
+ ldr r0, _02238118 ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ beq _02238086
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r3, #0x3c
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02238086
+ add r0, r5, #0
+ ldr r1, _0223811C ; =0x000002CA
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x25
+ add r0, #0xf5
+ strb r1, [r0]
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ ldr r0, [r5, #0x6c]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _02238120 ; =0x00002D67
+ add r2, r5, r2
+ ldrb r2, [r2, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r2, [r0]
+ ldr r0, _02238124 ; =0x00003044
+ add r1, #0x40
+ ldr r0, [r5, r0]
+ str r0, [r5, r1]
+ b _02238114
+_02238086:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02238118 ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ beq _0223810C
+ mov r1, #0x8a
+ add r0, r5, #0
+ lsl r1, r1, #2
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x21
+ add r0, #0xf5
+ strb r1, [r0]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xfc
+ str r0, [r1]
+ ldr r0, [r5, #0x6c]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ add r0, r5, r2
+ ldr r2, _02238118 ; =0x00002DB8
+ ldrh r3, [r0, r2]
+ add r0, r1, #0
+ add r0, #0x40
+ str r3, [r5, r0]
+ ldr r3, [r5, #0x6c]
+ mov r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ strh r0, [r1, r2]
+ ldr r0, [r5, #0x6c]
+ add r1, r5, r0
+ ldr r0, _02238128 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl MaskOfFlagNo
+ mov r1, #0x71
+ lsl r1, r1, #2
+ add r3, r5, r1
+ lsl r2, r4, #3
+ ldr r4, [r3, r2]
+ ldr r1, _0223812C ; =0xE07FFFFF
+ and r1, r4
+ lsl r4, r4, #3
+ lsr r4, r4, #0x1a
+ orr r0, r4
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #3
+ orr r0, r1
+ str r0, [r3, r2]
+ b _02238114
+_0223810C:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02238114:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02238118: .word 0x00002DB8
+_0223811C: .word 0x000002CA
+_02238120: .word 0x00002D67
+_02238124: .word 0x00003044
+_02238128: .word 0x0000219C
+_0223812C: .word 0xE07FFFFF
+
+ thumb_func_start MOD11_02238130
+MOD11_02238130: ; 0x02238130
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, _02238178 ; =0x00002154
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02238174
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0223817C ; =0x00003044
+ ldr r1, [r4, r1]
+ lsl r1, r1, #4
+ add r2, r4, r1
+ ldr r1, _02238180 ; =0x000003E1
+ ldrb r3, [r2, r1]
+ ldr r1, _02238184 ; =0x00002D8C
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ add r1, r1, #4
+ ldr r1, [r2, r1]
+ mul r0, r3
+ bl _u32_div_f
+ ldr r1, _02238178 ; =0x00002154
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _02238174
+ mov r0, #1
+ str r0, [r4, r1]
+_02238174:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02238178: .word 0x00002154
+_0223817C: .word 0x00003044
+_02238180: .word 0x000003E1
+_02238184: .word 0x00002D8C
+
+ thumb_func_start MOD11_02238188
+MOD11_02238188: ; 0x02238188
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r7, r1, #0
+ str r0, [sp]
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r7, #0
+ bl MOD11_0223A404
+ str r0, [sp, #0x14]
+ ldr r0, [sp]
+ ldr r1, [r7, #0x64]
+ mov r2, #0
+ bl MOD11_02230308
+ add r4, r0, #0
+ ldr r0, [sp]
+ ldr r1, [r7, #0x64]
+ mov r2, #2
+ bl MOD11_02230308
+ mov r6, #0xb7
+ add r3, r0, #0
+ lsl r6, r6, #6
+ add r1, r4, #0
+ mov r0, #0xc0
+ mov r4, #1
+ add r2, r7, r6
+ mul r1, r0
+ ldr r5, [r2, r1]
+ lsl r4, r4, #0x1e
+ orr r5, r4
+ str r5, [r2, r1]
+ add r1, r3, #0
+ mul r1, r0
+ ldr r3, [r2, r1]
+ orr r3, r4
+ str r3, [r2, r1]
+ ldr r1, [r7, #0x64]
+ mul r0, r1
+ add r0, r7, r0
+ ldr r2, [r0, r6]
+ lsr r0, r4, #0x11
+ tst r0, r2
+ beq _022381F0
+ ldr r1, [sp, #0x14]
+ add r0, r7, #0
+ bl MOD11_0223A424
+ b _02238294
+_022381F0:
+ ldr r0, [sp]
+ bl MOD11_02230270
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ ble _0223826A
+ str r7, [sp, #4]
+_0223820C:
+ ldr r0, [sp]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x10]
+ cmp r1, r0
+ beq _02238258
+ mov r2, #0
+ ldr r0, _0223829C ; =0x00002D4C
+ add r4, r2, #0
+_02238220:
+ ldr r1, [r7, #0x64]
+ mov r6, #0xc0
+ mul r6, r1
+ add r1, r7, r6
+ add r6, r1, r4
+ ldr r1, _0223829C ; =0x00002D4C
+ ldr r5, [sp, #4]
+ ldrh r6, [r6, r1]
+ mov r3, #0
+_02238232:
+ ldrh r1, [r5, r0]
+ cmp r6, r1
+ bne _02238240
+ cmp r6, #0
+ beq _02238240
+ cmp r1, #0
+ bne _02238248
+_02238240:
+ add r3, r3, #1
+ add r5, r5, #2
+ cmp r3, #4
+ blt _02238232
+_02238248:
+ cmp r3, #4
+ bne _02238254
+ add r2, r2, #1
+ add r4, r4, #2
+ cmp r2, #4
+ blt _02238220
+_02238254:
+ cmp r3, #4
+ bne _0223826A
+_02238258:
+ ldr r0, [sp, #4]
+ add r0, #0xc0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xc]
+ add r1, r0, #1
+ ldr r0, [sp, #8]
+ str r1, [sp, #0xc]
+ cmp r1, r0
+ blt _0223820C
+_0223826A:
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ bne _0223827C
+ ldr r1, [sp, #0x14]
+ add r0, r7, #0
+ bl MOD11_0223A424
+ b _02238294
+_0223827C:
+ mov r0, #0xb7
+ ldr r1, [r7, #0x64]
+ lsl r0, r0, #6
+ add r3, r7, r0
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ mov r0, #2
+ ldr r1, [r3, r2]
+ lsl r0, r0, #0xc
+ orr r0, r1
+ str r0, [r3, r2]
+_02238294:
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223829C: .word 0x00002D4C
+
+ thumb_func_start MOD11_022382A0
+MOD11_022382A0: ; 0x022382A0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r1, [r4, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02230270
+ ldr r6, [r4, #0x74]
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r4, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0xe
+ tst r0, r1
+ beq _0223833C
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02230270
+ cmp r7, r0
+ beq _0223833C
+ ldr r0, [r4, #0x64]
+ mov r2, #0xc0
+ add r1, r0, #0
+ mul r1, r2
+ ldr r3, _02238348 ; =0x00002D8C
+ add r0, r4, r1
+ ldr r0, [r0, r3]
+ cmp r0, #0
+ beq _0223833C
+ mov r1, #0xc1
+ lsl r1, r1, #6
+ ldr r6, [r4, r1]
+ cmp r6, #0xa5
+ beq _0223833C
+ add r0, r2, #0
+ add r0, #0x64
+ str r6, [r4, r0]
+ ldr r0, [r4, #0x64]
+ ldr r1, [r4, r1]
+ sub r3, #0x4c
+ lsl r1, r1, #0x10
+ add r3, r4, r3
+ mul r2, r0
+ add r0, r3, r2
+ lsr r1, r1, #0x10
+ bl MOD11_022461AC
+ ldr r3, [r4, #0x64]
+ mov r2, #0xc0
+ mul r2, r3
+ add r2, r4, r2
+ add r2, r2, r0
+ ldr r0, _0223834C ; =0x00002D6C
+ mov r1, #0
+ strb r1, [r2, r0]
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02245190
+ b _02238344
+_0223833C:
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02238344:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238348: .word 0x00002D8C
+_0223834C: .word 0x00002D6C
+
+ thumb_func_start MOD11_02238350
+MOD11_02238350: ; 0x02238350
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ str r1, [sp]
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [sp]
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ mov r6, #0
+ add r0, r7, #0
+ add r4, r6, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _02238390
+ ldr r5, [sp]
+_02238378:
+ ldr r0, _022383C0 ; =0x00002D8C
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02238382
+ add r6, r6, #1
+_02238382:
+ add r0, r7, #0
+ add r5, #0xc0
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _02238378
+_02238390:
+ ldr r0, [sp]
+ add r0, #0xec
+ ldr r1, [r0]
+ sub r0, r6, #1
+ cmp r1, r0
+ bne _022383A6
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ bl MOD11_0223A424
+ b _022383BA
+_022383A6:
+ mov r1, #0x75
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ add r3, r0, r1
+ ldr r0, [r0, #0x64]
+ lsl r2, r0, #6
+ ldr r1, [r3, r2]
+ mov r0, #0x20
+ orr r0, r1
+ str r0, [r3, r2]
+_022383BA:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022383C0: .word 0x00002D8C
+
+ thumb_func_start MOD11_022383C4
+MOD11_022383C4: ; 0x022383C4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _02238410 ; =0x00002D60
+ ldr r5, _02238414 ; =0x0225DCA8
+ ldr r3, [r2, r1]
+ ldr r1, _02238418 ; =0x0000FFFF
+ mov r0, #0
+_022383E2:
+ ldrh r2, [r5]
+ cmp r2, r3
+ bge _022383F2
+ add r5, r5, #4
+ ldrh r2, [r5]
+ add r0, r0, #1
+ cmp r2, r1
+ bne _022383E2
+_022383F2:
+ lsl r2, r0, #2
+ ldr r0, _02238414 ; =0x0225DCA8
+ ldrh r1, [r0, r2]
+ ldr r0, _02238418 ; =0x0000FFFF
+ cmp r1, r0
+ beq _02238404
+ ldr r0, _0223841C ; =0x0225DCAA
+ ldrh r1, [r0, r2]
+ b _02238406
+_02238404:
+ mov r1, #0x78
+_02238406:
+ ldr r0, _02238420 ; =0x00002154
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02238410: .word 0x00002D60
+_02238414: .word 0x0225DCA8
+_02238418: .word 0x0000FFFF
+_0223841C: .word 0x0225DCAA
+_02238420: .word 0x00002154
+
+ thumb_func_start MOD11_02238424
+MOD11_02238424: ; 0x02238424
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022384CC
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022384CC
+ mov r1, #6
+ lsl r1, r1, #6
+ ldr r2, [r4, r1]
+ ldr r0, _022384D0 ; =0x000080FF
+ tst r0, r2
+ ldr r0, _022384D4 ; =0x00003044
+ beq _022384BE
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r2, r4, r0
+ ldr r0, _022384D8 ; =0x000003E1
+ ldrb r0, [r2, r0]
+ lsl r2, r0, #1
+ ldr r0, _022384DC ; =0x00002154
+ str r2, [r4, r0]
+ ldr r2, [r4, r1]
+ mov r1, #3
+ tst r1, r2
+ beq _02238486
+ mov r1, #0xb
+ add r0, #0xc
+ str r1, [r4, r0]
+_02238486:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0xc
+ tst r0, r1
+ beq _02238498
+ ldr r0, _022384E0 ; =0x00002160
+ mov r1, #5
+ str r1, [r4, r0]
+_02238498:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x30
+ tst r0, r1
+ beq _022384AA
+ ldr r0, _022384E0 ; =0x00002160
+ mov r1, #0xa
+ str r1, [r4, r0]
+_022384AA:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0xc0
+ tst r0, r1
+ beq _022384CC
+ ldr r0, _022384E0 ; =0x00002160
+ mov r1, #0xf
+ str r1, [r4, r0]
+ b _022384CC
+_022384BE:
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _022384D8 ; =0x000003E1
+ ldrb r1, [r1, r0]
+ ldr r0, _022384DC ; =0x00002154
+ str r1, [r4, r0]
+_022384CC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022384D0: .word 0x000080FF
+_022384D4: .word 0x00003044
+_022384D8: .word 0x000003E1
+_022384DC: .word 0x00002154
+_022384E0: .word 0x00002160
+
+ thumb_func_start MOD11_022384E4
+MOD11_022384E4: ; 0x022384E4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r1, #0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ mov r7, #0
+ str r0, [sp, #0xc]
+ cmp r0, #0
+ bgt _0223850C
+ b _02238612
+_0223850C:
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r0, r6, r0
+ str r6, [sp, #8]
+ add r5, r6, #0
+ str r0, [sp, #4]
+_02238518:
+ ldr r1, [sp, #8]
+ ldr r0, _02238654 ; =0x000021A8
+ ldr r0, [r1, r0]
+ cmp r0, #0x27
+ beq _022385FC
+ ldr r0, _02238658 ; =0x00002D8C
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _022385FC
+ ldr r0, _0223865C ; =0x00002DAC
+ ldr r1, [r5, r0]
+ mov r0, #0x27
+ tst r0, r1
+ bne _022385FC
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_02247190
+ cmp r0, #0
+ bne _022385FC
+ ldr r0, [sp]
+ add r1, r7, #0
+ bl MOD11_02230270
+ str r0, [sp, #0x14]
+ ldr r0, [sp]
+ ldr r1, [r6, #0x78]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x14]
+ cmp r1, r0
+ beq _022385FC
+ ldr r0, _02238660 ; =0x00002DEC
+ ldrh r4, [r5, r0]
+ cmp r4, #0
+ beq _02238570
+ add r0, r0, #2
+ ldrh r0, [r5, r0]
+ lsl r0, r0, #1
+ add r1, r5, r0
+ ldr r0, _02238664 ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ cmp r4, r0
+ beq _0223857A
+_02238570:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_0224683C
+ add r4, r0, #0
+_0223857A:
+ cmp r4, #0
+ beq _022385FC
+ lsl r1, r4, #0x10
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x10
+ bl MOD11_022461AC
+ str r0, [sp, #0x18]
+ lsl r0, r4, #4
+ add r1, r6, r0
+ ldr r0, _02238668 ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x80
+ bne _022385FC
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _0223866C ; =0x00002D6C
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _022385FC
+ ldr r0, _0223866C ; =0x00002D6C
+ add r1, r6, r0
+ mov r0, #0xc0
+ mul r0, r7
+ add r5, r1, r0
+ ldr r0, [sp, #0x18]
+ ldrb r0, [r5, r0]
+ sub r1, r0, #1
+ ldr r0, [sp, #0x18]
+ strb r1, [r5, r0]
+ ldr r1, [r6, #0x78]
+ add r0, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2e
+ bne _022385D0
+ ldr r0, [sp, #0x18]
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ beq _022385D0
+ sub r1, r0, #1
+ ldr r0, [sp, #0x18]
+ strb r1, [r5, r0]
+_022385D0:
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_02247264
+ str r7, [r6, #0x64]
+ ldr r0, [r6, #0x78]
+ lsl r2, r7, #1
+ str r0, [r6, #0x6c]
+ ldr r1, _02238670 ; =0x00002158
+ mov r0, #0x14
+ str r0, [r6, r1]
+ ldr r0, _02238674 ; =0x00003044
+ add r2, r6, r2
+ str r4, [r6, r0]
+ add r0, #0x38
+ strh r4, [r2, r0]
+ lsl r0, r7, #4
+ mov r2, #0x27
+ add r0, r6, r0
+ add r1, #0x50
+ str r2, [r0, r1]
+ b _02238612
+_022385FC:
+ ldr r0, [sp, #8]
+ add r7, r7, #1
+ add r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ add r5, #0xc0
+ add r0, #0xc0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xc]
+ cmp r7, r0
+ blt _02238518
+_02238612:
+ ldr r0, [sp, #0xc]
+ cmp r7, r0
+ bne _02238622
+ ldr r1, [sp, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223A424
+ b _0223864E
+_02238622:
+ ldr r1, [r6, #0x64]
+ add r0, r6, #0
+ bl MOD11_02249D90
+ add r5, r0, #0
+ ldr r1, [r6, #0x64]
+ add r0, r6, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ cmp r5, #0x36
+ beq _02238642
+ cmp r5, #0x72
+ beq _02238642
+ cmp r5, #0x7c
+ bne _0223864E
+_02238642:
+ ldr r1, [r6, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r6, r0
+ ldr r0, _02238678 ; =0x00002DF8
+ strh r4, [r1, r0]
+_0223864E:
+ mov r0, #0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238654: .word 0x000021A8
+_02238658: .word 0x00002D8C
+_0223865C: .word 0x00002DAC
+_02238660: .word 0x00002DEC
+_02238664: .word 0x00002D4C
+_02238668: .word 0x000003DE
+_0223866C: .word 0x00002D6C
+_02238670: .word 0x00002158
+_02238674: .word 0x00003044
+_02238678: .word 0x00002DF8
+
+ thumb_func_start MOD11_0223867C
+MOD11_0223867C: ; 0x0223867C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [r4, #0x64]
+ ldr r3, _022386BC ; =0x00002144
+ str r0, [sp]
+ ldr r0, [r4, #0x6c]
+ ldr r2, _022386C0 ; =0x00003044
+ str r0, [sp, #4]
+ ldr r0, [r4, r3]
+ add r1, r4, #0
+ str r0, [sp, #8]
+ add r0, r3, #0
+ add r0, #0x28
+ add r0, r4, r0
+ str r0, [sp, #0xc]
+ add r3, #0x1c
+ ldr r2, [r4, r2]
+ ldr r3, [r4, r3]
+ add r0, r5, #0
+ bl MOD11_02246274
+ ldr r1, _022386BC ; =0x00002144
+ str r0, [r4, r1]
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022386BC: .word 0x00002144
+_022386C0: .word 0x00003044
+
+ thumb_func_start MOD11_022386C4
+MOD11_022386C4: ; 0x022386C4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ mov r6, #0
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ ldr r2, [sp, #8]
+ add r1, r4, #0
+ bl MOD11_0223C230
+ cmp r7, #6
+ bhi _022387B6
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02238710: ; jump table
+ .short _0223871E - _02238710 - 2 ; case 0
+ .short _02238734 - _02238710 - 2 ; case 1
+ .short _0223874A - _02238710 - 2 ; case 2
+ .short _02238760 - _02238710 - 2 ; case 3
+ .short _02238776 - _02238710 - 2 ; case 4
+ .short _0223878C - _02238710 - 2 ; case 5
+ .short _022387A2 - _02238710 - 2 ; case 6
+_0223871E:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+ b _022387B6
+_02238734:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+ b _022387B6
+_0223874A:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+ b _022387B6
+_02238760:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+ b _022387B6
+_02238776:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+ b _022387B6
+_0223878C:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+ b _022387B6
+_022387A2:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+_022387B6:
+ cmp r6, #0
+ beq _022387C2
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_022387C2:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_022387C8
+MOD11_022387C8: ; 0x022387C8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r2, [sp]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ cmp r6, #6
+ bhi _022388BC
+ add r1, r6, r6
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02238808: ; jump table
+ .short _02238816 - _02238808 - 2 ; case 0
+ .short _0223882E - _02238808 - 2 ; case 1
+ .short _02238846 - _02238808 - 2 ; case 2
+ .short _0223885E - _02238808 - 2 ; case 3
+ .short _02238876 - _02238808 - 2 ; case 4
+ .short _0223888E - _02238808 - 2 ; case 5
+ .short _022388A6 - _02238808 - 2 ; case 6
+_02238816:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #1
+ bic r2, r0
+ mov r0, #1
+ and r0, r5
+ orr r0, r2
+ str r0, [r1, r3]
+ b _022388BC
+_0223882E:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #2
+ bic r2, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1e
+ orr r0, r2
+ str r0, [r1, r3]
+ b _022388BC
+_02238846:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #4
+ bic r2, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1d
+ orr r0, r2
+ str r0, [r1, r3]
+ b _022388BC
+_0223885E:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #8
+ bic r2, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1c
+ orr r0, r2
+ str r0, [r1, r3]
+ b _022388BC
+_02238876:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #0x10
+ bic r2, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1b
+ orr r0, r2
+ str r0, [r1, r3]
+ b _022388BC
+_0223888E:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #0x20
+ bic r2, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1a
+ orr r0, r2
+ str r0, [r1, r3]
+ b _022388BC
+_022388A6:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #0x40
+ bic r2, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x19
+ orr r0, r2
+ str r0, [r1, r3]
+_022388BC:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_022388C0
+MOD11_022388C0: ; 0x022388C0
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [r4, #0x6c]
+ ldr r1, _022388FC ; =0x000021F0
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r2, [r0, r1]
+ mov r0, #0x19
+ mul r0, r2
+ ldr r2, [r4, #0x64]
+ lsl r2, r2, #2
+ add r2, r4, r2
+ ldr r1, [r2, r1]
+ bl _u32_div_f
+ add r1, r0, #1
+ ldr r0, _02238900 ; =0x00002154
+ str r1, [r4, r0]
+ ldr r1, [r4, r0]
+ cmp r1, #0x96
+ ble _022388F6
+ mov r1, #0x96
+ str r1, [r4, r0]
+_022388F6:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_022388FC: .word 0x000021F0
+_02238900: .word 0x00002154
+
+ thumb_func_start MOD11_02238904
+MOD11_02238904: ; 0x02238904
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r1, [r5, #0x64]
+ add r0, r6, #0
+ bl MOD11_02230270
+ ldr r1, [r5, #0x64]
+ add r7, r0, #0
+ lsl r1, r1, #6
+ add r2, r5, r1
+ mov r1, #0x83
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ add r0, r6, #0
+ bl MOD11_02230270
+ add r4, r0, #0
+ ldr r0, [r5, #0x64]
+ mov r2, #0x82
+ lsl r0, r0, #6
+ add r0, r5, r0
+ lsl r2, r2, #2
+ ldr r1, [r0, r2]
+ cmp r1, #0
+ beq _022389E4
+ cmp r7, r4
+ beq _022389E4
+ add r2, r2, #4
+ ldr r2, [r0, r2]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r5, r0
+ ldr r0, _022389F0 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _022389E4
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ ldr r1, _022389F4 ; =0x00002144
+ str r0, [r5, r1]
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r1, r5, r0
+ lsl r0, r4, #3
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02238992
+ lsl r0, r0, #9
+ lsr r0, r0, #0x1e
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r5, r1
+ ldr r1, _022389F0 ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02238992
+ str r0, [r5, #0x6c]
+ b _022389A0
+_02238992:
+ ldr r0, [r5, #0x64]
+ lsl r0, r0, #6
+ add r1, r5, r0
+ mov r0, #0x83
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ str r0, [r5, #0x6c]
+_022389A0:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022389F0 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022389D8
+ ldr r2, [r5, #0x64]
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022482A4
+ mov r1, #0xc0
+ mul r1, r0
+ str r0, [r5, #0x6c]
+ ldr r0, _022389F0 ; =0x00002D8C
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022389D8
+ mov r2, #0x26
+ str r2, [r5, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, #0xf3
+ bl MOD11_0223A434
+_022389D8:
+ ldr r1, [r5, #0x64]
+ ldr r2, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_0224C438
+ b _022389EC
+_022389E4:
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223A424
+_022389EC:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022389F0: .word 0x00002D8C
+_022389F4: .word 0x00002144
+
+ thumb_func_start MOD11_022389F8
+MOD11_022389F8: ; 0x022389F8
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [r4, #0x6c]
+ ldr r1, _02238A34 ; =0x000021A8
+ lsl r0, r0, #4
+ add r0, r4, r0
+ ldr r0, [r0, r1]
+ cmp r0, #0x27
+ ldr r0, _02238A38 ; =0x00003044
+ bne _02238A22
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r2, r4, r0
+ ldr r0, _02238A3C ; =0x000003E1
+ ldrb r0, [r2, r0]
+ lsl r0, r0, #1
+ b _02238A2C
+_02238A22:
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r2, r4, r0
+ ldr r0, _02238A3C ; =0x000003E1
+ ldrb r0, [r2, r0]
+_02238A2C:
+ sub r1, #0x54
+ str r0, [r4, r1]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02238A34: .word 0x000021A8
+_02238A38: .word 0x00003044
+_02238A3C: .word 0x000003E1
+
+ thumb_func_start MOD11_02238A40
+MOD11_02238A40: ; 0x02238A40
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ lsl r0, r1, #1
+ add r1, r4, r0
+ ldr r0, _02238A74 ; =0x000030BC
+ ldrh r0, [r1, r0]
+ add r1, r2, r0
+ ldr r0, _02238A78 ; =0x00002D6C
+ ldrb r1, [r1, r0]
+ cmp r1, #4
+ bls _02238A68
+ mov r1, #4
+_02238A68:
+ ldr r0, _02238A7C ; =0x0225DC2C
+ ldrb r1, [r0, r1]
+ ldr r0, _02238A80 ; =0x00002154
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02238A74: .word 0x000030BC
+_02238A78: .word 0x00002D6C
+_02238A7C: .word 0x0225DC2C
+_02238A80: .word 0x00002154
+
+ thumb_func_start MOD11_02238A84
+MOD11_02238A84: ; 0x02238A84
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r3, r4, r0
+ ldr r1, _02238AB4 ; =0x00002D8C
+ mov r0, #0x78
+ ldr r2, [r3, r1]
+ add r1, r1, #4
+ ldr r1, [r3, r1]
+ mul r0, r2
+ bl _u32_div_f
+ add r1, r0, #1
+ ldr r0, _02238AB8 ; =0x00002154
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02238AB4: .word 0x00002D8C
+_02238AB8: .word 0x00002154
+
+ thumb_func_start MOD11_02238ABC
+MOD11_02238ABC: ; 0x02238ABC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r3, _02238B68 ; =0x00002DEC
+ add r0, r5, r0
+ ldrh r4, [r0, r3]
+ cmp r4, #0
+ beq _02238AF0
+ add r2, r3, #2
+ ldrh r2, [r0, r2]
+ sub r3, #0xa0
+ lsl r2, r2, #1
+ add r0, r0, r2
+ ldrh r0, [r0, r3]
+ cmp r4, r0
+ beq _02238AF8
+_02238AF0:
+ add r0, r5, #0
+ bl MOD11_0224683C
+ add r4, r0, #0
+_02238AF8:
+ ldr r0, [r5, #0x6c]
+ lsl r1, r0, #4
+ add r2, r5, r1
+ ldr r1, _02238B6C ; =0x000021A8
+ ldr r1, [r2, r1]
+ cmp r1, #0x27
+ beq _02238B5C
+ lsl r0, r0, #6
+ add r1, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bne _02238B5C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224C0F0
+ cmp r0, #1
+ bne _02238B5C
+ lsl r0, r4, #4
+ add r1, r5, r0
+ ldr r0, _02238B70 ; =0x000003E1
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _02238B5C
+ ldr r2, [r5, #0x64]
+ ldr r3, _02238B74 ; =0x00002DCC
+ add r0, r2, #0
+ mov r6, #0xc0
+ add r1, r5, r3
+ mul r0, r6
+ mov r2, #1
+ ldr r7, [r1, r0]
+ lsl r2, r2, #0x1e
+ orr r2, r7
+ str r2, [r1, r0]
+ add r0, r6, #0
+ add r0, #0xb4
+ ldr r2, [r5, r0]
+ ldr r0, [r5, #0x64]
+ add r3, #0x10
+ add r1, r0, #0
+ mul r1, r6
+ add r0, r5, r1
+ str r2, [r0, r3]
+ add r6, #0x64
+ str r4, [r5, r6]
+ b _02238B64
+_02238B5C:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02238B64:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238B68: .word 0x00002DEC
+_02238B6C: .word 0x000021A8
+_02238B70: .word 0x000003E1
+_02238B74: .word 0x00002DCC
+
+ thumb_func_start MOD11_02238B78
+MOD11_02238B78: ; 0x02238B78
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ ldr r0, _02238BC8 ; =0x00003048
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl MOD11_02246BE8
+ cmp r0, #0
+ bne _02238BBC
+ ldr r0, _02238BC8 ; =0x00003048
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02238BBC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl MOD11_0224C07C
+ cmp r0, #1
+ bne _02238BBC
+ ldr r0, _02238BC8 ; =0x00003048
+ ldr r1, [r5, r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ b _02238BC4
+_02238BBC:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+_02238BC4:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02238BC8: .word 0x00003048
+
+ thumb_func_start MOD11_02238BCC
+MOD11_02238BCC: ; 0x02238BCC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r5, _02238C1C ; =0x00002D58
+ mov r1, #0
+ ldr r3, [r4, #0x6c]
+ mov r2, #0xc0
+ mul r2, r3
+ add r3, r4, r2
+ add r0, r1, #0
+ add r2, r3, #0
+ add r6, r5, #0
+_02238BEA:
+ ldrsb r7, [r2, r6]
+ cmp r7, #6
+ ble _02238BF8
+ add r7, r3, r0
+ ldrsb r7, [r7, r5]
+ sub r7, r7, #6
+ add r1, r1, r7
+_02238BF8:
+ add r0, r0, #1
+ add r2, r2, #1
+ cmp r0, #8
+ blt _02238BEA
+ mov r0, #0x14
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, _02238C20 ; =0x00002154
+ add r2, #0x3c
+ str r2, [r4, r0]
+ ldr r1, [r4, r0]
+ cmp r1, #0xc8
+ ble _02238C16
+ mov r1, #0xc8
+ str r1, [r4, r0]
+_02238C16:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02238C1C: .word 0x00002D58
+_02238C20: .word 0x00002154
+
+ thumb_func_start MOD11_02238C24
+MOD11_02238C24: ; 0x02238C24
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r6, _02238C94 ; =0x00002DEC
+ add r2, r5, r0
+ ldrh r0, [r2, r6]
+ cmp r0, #0
+ beq _02238C58
+ add r3, r6, #2
+ ldrh r3, [r2, r3]
+ sub r6, #0xa0
+ lsl r3, r3, #1
+ add r2, r2, r3
+ ldrh r2, [r2, r6]
+ cmp r0, r2
+ beq _02238C5E
+_02238C58:
+ add r0, r5, #0
+ bl MOD11_0224683C
+_02238C5E:
+ ldr r1, [r5, #0x6c]
+ lsl r2, r1, #4
+ add r3, r5, r2
+ ldr r2, _02238C98 ; =0x000021A8
+ ldr r2, [r3, r2]
+ cmp r2, #0x27
+ beq _02238C88
+ lsl r0, r0, #4
+ add r2, r5, r0
+ ldr r0, _02238C9C ; =0x000003E1
+ ldrb r0, [r2, r0]
+ cmp r0, #0
+ bne _02238C90
+ lsl r0, r1, #6
+ add r1, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bne _02238C90
+_02238C88:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+_02238C90:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02238C94: .word 0x00002DEC
+_02238C98: .word 0x000021A8
+_02238C9C: .word 0x000003E1
+
+ thumb_func_start MOD11_02238CA0
+MOD11_02238CA0: ; 0x02238CA0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r2, [sp, #8]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r7, #0
+ bl MOD11_02230270
+ ldr r1, [sp, #4]
+ cmp r1, #0
+ beq _02238CF2
+ cmp r1, #1
+ beq _02238CF2
+ cmp r1, #2
+ beq _02238D70
+ b _02238E4A
+_02238CF2:
+ cmp r6, #5
+ bls _02238CF8
+ b _02238E4A
+_02238CF8:
+ add r1, r6, r6
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02238D04: ; jump table
+ .short _02238D10 - _02238D04 - 2 ; case 0
+ .short _02238D20 - _02238D04 - 2 ; case 1
+ .short _02238D30 - _02238D04 - 2 ; case 2
+ .short _02238D40 - _02238D04 - 2 ; case 3
+ .short _02238D50 - _02238D04 - 2 ; case 4
+ .short _02238D60 - _02238D04 - 2 ; case 5
+_02238D10:
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1b
+ lsr r5, r0, #0x1d
+ b _02238E4A
+_02238D20:
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x16
+ lsr r5, r0, #0x1d
+ b _02238E4A
+_02238D30:
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x11
+ lsr r5, r0, #0x1d
+ b _02238E4A
+_02238D40:
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0xc
+ lsr r5, r0, #0x1d
+ b _02238E4A
+_02238D50:
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1e
+ lsr r5, r0, #0x1e
+ b _02238E4A
+_02238D60:
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r5, r0, #0x1e
+ b _02238E4A
+_02238D70:
+ cmp r6, #5
+ bhi _02238E4A
+ add r1, r6, r6
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02238D80: ; jump table
+ .short _02238D8C - _02238D80 - 2 ; case 0
+ .short _02238DAC - _02238D80 - 2 ; case 1
+ .short _02238DCC - _02238D80 - 2 ; case 2
+ .short _02238DEC - _02238D80 - 2 ; case 3
+ .short _02238E0C - _02238D80 - 2 ; case 4
+ .short _02238E2C - _02238D80 - 2 ; case 5
+_02238D8C:
+ mov r2, #0x71
+ lsl r2, r2, #2
+ add r6, r4, r2
+ lsl r3, r0, #3
+ ldr r7, [r6, r3]
+ mov r1, #0x1c
+ bic r7, r1
+ sub r2, #8
+ str r7, [r6, r3]
+ add r3, r4, r2
+ lsl r2, r0, #2
+ ldr r1, [r3, r2]
+ mov r0, #1
+ bic r1, r0
+ str r1, [r3, r2]
+ b _02238E4A
+_02238DAC:
+ mov r2, #0x71
+ lsl r2, r2, #2
+ add r6, r4, r2
+ lsl r7, r0, #3
+ ldr r3, [r6, r7]
+ ldr r1, _02238E74 ; =0xFFFFFC7F
+ sub r2, #8
+ and r1, r3
+ add r3, r4, r2
+ lsl r2, r0, #2
+ str r1, [r6, r7]
+ ldr r1, [r3, r2]
+ mov r0, #2
+ bic r1, r0
+ str r1, [r3, r2]
+ b _02238E4A
+_02238DCC:
+ mov r2, #0x71
+ lsl r2, r2, #2
+ add r6, r4, r2
+ lsl r7, r0, #3
+ ldr r3, [r6, r7]
+ ldr r1, _02238E78 ; =0xFFFF8FFF
+ sub r2, #8
+ and r1, r3
+ add r3, r4, r2
+ lsl r2, r0, #2
+ str r1, [r6, r7]
+ ldr r1, [r3, r2]
+ mov r0, #0x40
+ bic r1, r0
+ str r1, [r3, r2]
+ b _02238E4A
+_02238DEC:
+ mov r2, #0x71
+ lsl r2, r2, #2
+ add r6, r4, r2
+ lsl r7, r0, #3
+ ldr r3, [r6, r7]
+ ldr r1, _02238E7C ; =0xFFF1FFFF
+ sub r2, #8
+ and r1, r3
+ add r3, r4, r2
+ lsl r2, r0, #2
+ str r1, [r6, r7]
+ ldr r1, [r3, r2]
+ mov r0, #8
+ bic r1, r0
+ str r1, [r3, r2]
+ b _02238E4A
+_02238E0C:
+ mov r2, #0x72
+ lsl r2, r2, #2
+ add r6, r4, r2
+ lsl r3, r0, #3
+ ldr r7, [r6, r3]
+ mov r1, #3
+ bic r7, r1
+ sub r2, #0xc
+ str r7, [r6, r3]
+ add r3, r4, r2
+ lsl r2, r0, #2
+ ldr r1, [r3, r2]
+ mov r0, #4
+ bic r1, r0
+ str r1, [r3, r2]
+ b _02238E4A
+_02238E2C:
+ mov r2, #0x72
+ lsl r2, r2, #2
+ add r6, r4, r2
+ lsl r3, r0, #3
+ ldr r7, [r6, r3]
+ mov r1, #0xc
+ bic r7, r1
+ sub r2, #0xc
+ str r7, [r6, r3]
+ lsl r3, r0, #2
+ add r1, r4, r2
+ ldr r2, [r1, r3]
+ ldr r0, _02238E80 ; =0xFFFFFBFF
+ and r0, r2
+ str r0, [r1, r3]
+_02238E4A:
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _02238E5C
+ cmp r5, #0
+ bne _02238E5C
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02238E5C:
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _02238E6E
+ cmp r5, #0
+ beq _02238E6E
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02238E6E:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238E74: .word 0xFFFFFC7F
+_02238E78: .word 0xFFFF8FFF
+_02238E7C: .word 0xFFF1FFFF
+_02238E80: .word 0xFFFFFBFF
+
+ thumb_func_start MOD11_02238E84
+MOD11_02238E84: ; 0x02238E84
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #6
+ add r2, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ bne _02238EB0
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02238EB0:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02238EB4
+MOD11_02238EB4: ; 0x02238EB4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ ldr r0, [r4, #0x6c]
+ mov r2, #0xc0
+ add r3, r0, #0
+ mul r3, r2
+ add r5, r4, r3
+ ldr r3, _02238EFC ; =0x00002DAC
+ ldr r0, [r5, r3]
+ cmp r0, #0
+ bne _02238EF2
+ add r0, r3, #4
+ ldr r5, [r5, r0]
+ mov r0, #1
+ lsl r0, r0, #0x18
+ tst r0, r5
+ bne _02238EF2
+ ldr r0, [r4, #0x64]
+ mul r2, r0
+ add r0, r4, r2
+ ldr r0, [r0, r3]
+ cmp r0, #0
+ bne _02238EF8
+_02238EF2:
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02238EF8:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02238EFC: .word 0x00002DAC
+
+ thumb_func_start MOD11_02238F00
+MOD11_02238F00: ; 0x02238F00
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022473F8
+ ldr r2, [r4, #0x64]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _02238F48 ; =0x00002DCC
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0x13
+ lsr r2, r1, #0x1d
+ sub r1, r0, #1
+ cmp r2, r1
+ blo _02238F3A
+ cmp r0, #2
+ bge _02238F42
+_02238F3A:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02238F42:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02238F48: .word 0x00002DCC
+
+ thumb_func_start MOD11_02238F4C
+MOD11_02238F4C: ; 0x02238F4C
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ mov r2, #0x72
+ mov r1, #1
+ add r3, r0, #0
+ eor r3, r1
+ lsl r0, r3, #3
+ add r5, r4, r0
+ lsl r2, r2, #2
+ ldr r5, [r5, r2]
+ lsl r5, r5, #0x1c
+ lsr r5, r5, #0x1e
+ cmp r5, #2
+ bne _02238FA2
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r3, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r3
+ ldr r5, [r2, r0]
+ mov r3, #1
+ bic r5, r3
+ orr r1, r5
+ str r1, [r2, r0]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _02238FCA
+_02238FA2:
+ add r5, r2, #0
+ sub r5, #0xc
+ add r5, r4, r5
+ lsl r3, r3, #2
+ ldr r6, [r5, r3]
+ lsl r1, r1, #0xa
+ orr r1, r6
+ str r1, [r5, r3]
+ add r2, r4, r2
+ ldr r4, [r2, r0]
+ mov r3, #0xc
+ add r1, r4, #0
+ bic r1, r3
+ lsl r3, r4, #0x1c
+ lsr r3, r3, #0x1e
+ add r3, r3, #1
+ lsl r3, r3, #0x1e
+ lsr r3, r3, #0x1c
+ orr r1, r3
+ str r1, [r2, r0]
+_02238FCA:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02238FD0
+MOD11_02238FD0: ; 0x02238FD0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_02230270
+ mov r1, #0x72
+ lsl r1, r1, #2
+ add r4, r5, r1
+ lsl r6, r0, #3
+ str r0, [sp]
+ ldr r0, [r4, r6]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1e
+ beq _0223906A
+ sub r1, #0x94
+ str r0, [r5, r1]
+ add r0, r5, #0
+ mov r1, #6
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0x94
+ str r7, [r0]
+ ldr r1, [r5, #0x78]
+ add r0, r5, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #3
+ beq _02239048
+ ldr r1, [r5, #0x78]
+ add r0, r5, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #3
+ bne _02239072
+_02239048:
+ mov r0, #0x6f
+ ldr r1, [sp]
+ lsl r0, r0, #2
+ add r2, r5, r0
+ lsl r1, r1, #2
+ ldr r7, [r2, r1]
+ ldr r3, _02239078 ; =0xFFFFFBFF
+ sub r0, #0x88
+ and r3, r7
+ str r3, [r2, r1]
+ ldr r2, [r4, r6]
+ mov r1, #0xc
+ bic r2, r1
+ str r2, [r4, r6]
+ mov r1, #0
+ str r1, [r5, r0]
+ b _02239072
+_0223906A:
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A424
+_02239072:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02239078: .word 0xFFFFFBFF
+
+ thumb_func_start MOD11_0223907C
+MOD11_0223907C: ; 0x0223907C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ cmp r4, #0
+ bne _0223912C
+ add r0, r6, #0
+ bl MOD11_0222FF84
+ mov r6, #0
+ str r0, [sp]
+ cmp r0, #0
+ ble _02239194
+_022390BE:
+ ldr r0, _0223919C ; =0x000021EC
+ add r1, r5, r6
+ ldrb r4, [r1, r0]
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ bne _022390F6
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02239122
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022391A0 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02239122
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+ b _02239194
+_022390F6:
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD11_02246D84
+ cmp r0, #0
+ beq _02239114
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022391A0 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02239122
+_02239114:
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+ b _02239194
+_02239122:
+ ldr r0, [sp]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _022390BE
+ b _02239194
+_0223912C:
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ bne _0223916A
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02239194
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022391A0 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02239194
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+ b _02239194
+_0223916A:
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD11_02246D84
+ cmp r0, #0
+ beq _02239188
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022391A0 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02239194
+_02239188:
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+_02239194:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223919C: .word 0x000021EC
+_022391A0: .word 0x00002D8C
+
+ thumb_func_start MOD11_022391A4
+MOD11_022391A4: ; 0x022391A4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02230270
+ cmp r6, r0
+ bne _02239200
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02239200:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02239204
+MOD11_02239204: ; 0x02239204
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp]
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r7, #0
+ ldr r0, [sp]
+ add r1, r7, #0
+ bl MOD11_0222FFC8
+ cmp r0, #0
+ bgt _02239222
+ b _02239360
+_02239222:
+ ldr r0, [sp]
+ mov r1, #0
+ add r2, r7, #0
+ bl MOD11_02230014
+ mov r1, #0xad
+ mov r2, #0
+ add r4, r0, #0
+ bl GetMonData
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r4, #0
+ mov r1, #6
+ mov r2, #0
+ bl GetMonData
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xa
+ mov r2, #0
+ bl GetMonData
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ cmp r0, #0x35
+ bne _022392EC
+ cmp r6, #0
+ beq _022392EC
+ ldr r0, _02239368 ; =0x000001EE
+ cmp r6, r0
+ beq _022392EC
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ bne _022392EC
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ cmp r1, #0
+ bne _022392EC
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ add r5, r1, #0
+ add r0, r4, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ sub r0, r0, #1
+ mov r1, #0xa
+ bl _u32_div_f
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0xa
+ blo _022392A4
+ mov r2, #9
+_022392A4:
+ mov r1, #0
+ ldr r3, _0223936C ; =0x0225E150
+ str r1, [sp, #0xc]
+_022392AA:
+ ldrb r0, [r3]
+ cmp r0, r5
+ ble _022392C4
+ ldr r3, [sp, #0xc]
+ ldr r5, _02239370 ; =0x0225DD24
+ add r2, r2, r3
+ lsl r2, r2, #1
+ add r0, r4, #0
+ mov r1, #6
+ add r2, r5, r2
+ bl SetMonData
+ b _022392EC
+_022392C4:
+ cmp r5, #0x62
+ blt _022392E2
+ cmp r5, #0x63
+ bgt _022392E2
+ mov r3, #0x63
+ sub r3, r3, r5
+ add r2, r2, r3
+ lsl r3, r2, #1
+ ldr r2, _02239374 ; =0x0225DC48
+ add r0, r4, #0
+ mov r1, #6
+ add r2, r2, r3
+ bl SetMonData
+ b _022392EC
+_022392E2:
+ add r1, r1, #1
+ add r3, r3, #1
+ str r1, [sp, #0xc]
+ cmp r1, #9
+ blt _022392AA
+_022392EC:
+ ldr r0, [sp, #4]
+ cmp r0, #0x76
+ bne _02239350
+ cmp r6, #0
+ beq _02239350
+ ldr r0, _02239368 ; =0x000001EE
+ cmp r6, r0
+ beq _02239350
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ bne _02239350
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #0xa0
+ str r2, [sp, #0xc]
+ mov r5, #0xa
+ bl GetMonData
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r1, #0xa
+ ble _02239324
+ ldr r0, [sp, #0xc]
+_0223931A:
+ add r5, #0xa
+ add r0, r0, #1
+ cmp r5, r1
+ blt _0223931A
+ str r0, [sp, #0xc]
+_02239324:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0xa
+ blt _0223932E
+ bl ErrorHandling
+_0223932E:
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r2, [sp, #0xc]
+ ldr r0, _02239378 ; =0x0225E15C
+ ldrb r0, [r0, r2]
+ cmp r1, r0
+ bge _02239350
+ mov r0, #0x5e
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ mov r1, #6
+ add r2, sp, #0xc
+ bl SetMonData
+_02239350:
+ ldr r0, [sp]
+ mov r1, #0
+ add r7, r7, #1
+ bl MOD11_0222FFC8
+ cmp r7, r0
+ bge _02239360
+ b _02239222
+_02239360:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02239368: .word 0x000001EE
+_0223936C: .word 0x0225E150
+_02239370: .word 0x0225DD24
+_02239374: .word 0x0225DC48
+_02239378: .word 0x0225E15C
+
+ thumb_func_start MOD11_0223937C
+MOD11_0223937C: ; 0x0223937C
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r0, #0xb5
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ add r3, r4, r0
+ mov r0, #0x1c
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ mov r0, #0x10
+ orr r0, r1
+ str r0, [r3, r2]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022393A4
+MOD11_022393A4: ; 0x022393A4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_02249B7C
+ cmp r0, #1
+ bne _022393E0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_022393E0:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_022393E4
+MOD11_022393E4: ; 0x022393E4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r5, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ cmp r6, #0
+ bne _02239438
+ add r0, r5, #0
+ bl MOD11_02249D90
+ cmp r4, r0
+ bne _0223944A
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+ b _0223944A
+_02239438:
+ add r0, r5, #0
+ bl MOD11_02249D90
+ cmp r4, r0
+ beq _0223944A
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_0223944A:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02239450
+MOD11_02239450: ; 0x02239450
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A444
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #1
+ bl MOD11_0224C12C
+ str r0, [r6]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223949C
+MOD11_0223949C: ; 0x0223949C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A444
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C12C
+ str r0, [r6]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022394E8
+MOD11_022394E8: ; 0x022394E8
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x79
+ bne _02239516
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_02239516:
+ add r0, r4, #0
+ bl MOD11_02230294
+ ldr r1, _02239570 ; =0x0225E168
+ mov r2, #0x1b
+ ldrb r4, [r1, r0]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r4, r0
+ beq _02239564
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r4, r0
+ beq _02239564
+ ldr r1, [r5, #0x64]
+ lsl r0, r4, #0x18
+ add r3, r1, #0
+ mov r2, #0xc0
+ mul r3, r2
+ ldr r1, _02239574 ; =0x00002D64
+ lsr r0, r0, #0x18
+ add r3, r5, r3
+ strb r0, [r3, r1]
+ ldr r3, [r5, #0x64]
+ add r1, r1, #1
+ add r6, r3, #0
+ mul r6, r2
+ add r3, r5, r6
+ strb r0, [r3, r1]
+ add r2, #0x70
+ str r4, [r5, r2]
+ b _0223956C
+_02239564:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_0223956C:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02239570: .word 0x0225E168
+_02239574: .word 0x00002D64
+
+ thumb_func_start MOD11_02239578
+MOD11_02239578: ; 0x02239578
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_02230294
+ lsl r1, r0, #1
+ ldr r0, _0223959C ; =0x0225DD0A
+ ldrh r1, [r0, r1]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223959C: .word 0x0225DD0A
+
+ thumb_func_start MOD11_022395A0
+MOD11_022395A0: ; 0x022395A0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_02230294
+ lsl r1, r0, #2
+ ldr r0, _022395C4 ; =0x0225DD48
+ ldr r1, [r0, r1]
+ ldr r0, _022395C8 ; =0x00002174
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022395C4: .word 0x0225DD48
+_022395C8: .word 0x00002174
+
+ thumb_func_start MOD11_022395CC
+MOD11_022395CC: ; 0x022395CC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02249DF0
+ cmp r0, #0
+ beq _022395FE
+ ldr r1, _0223960C ; =0x00002154
+ str r0, [r4, r1]
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02249E04
+ ldr r1, _02239610 ; =0x00002160
+ str r0, [r4, r1]
+ b _02239606
+_022395FE:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0223A424
+_02239606:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0223960C: .word 0x00002154
+_02239610: .word 0x00002160
+
+ thumb_func_start MOD11_02239614
+MOD11_02239614: ; 0x02239614
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02239674 ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ beq _0223965A
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r3, #0x3c
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0223965A
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+ b _02239670
+_0223965A:
+ ldr r2, [r4, #0x6c]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02249F8C
+ cmp r0, #1
+ beq _02239670
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02239670:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02239674: .word 0x00002DB8
+
+ thumb_func_start MOD11_02239678
+MOD11_02239678: ; 0x02239678
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224A4E0
+ cmp r0, #1
+ beq _022396A4
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_022396A4:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_022396A8
+MOD11_022396A8: ; 0x022396A8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ mov r2, #0
+ str r2, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ str r2, [sp, #8]
+ bl MOD11_02255980
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022396D8
+MOD11_022396D8: ; 0x022396D8
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_0224AD90
+ add r4, r0, #0
+ beq _02239714
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ cmp r4, #0xff
+ bne _0223970C
+ add r0, r5, #0
+ bl MOD11_0223A424
+ b _02239714
+_0223970C:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02239714:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02239718
+MOD11_02239718: ; 0x02239718
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ bl MOD11_0222FF84
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD11_022558E0
+ mov r0, #0
+ str r0, [r4, #0x78]
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239748
+MOD11_02239748: ; 0x02239748
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_0224AD90
+ add r5, r0, #0
+ beq _0223977A
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ cmp r5, #0xff
+ bne _02239774
+ add r0, r4, #0
+ bl MOD11_0223A424
+ b _0223977A
+_02239774:
+ ldr r0, _02239780 ; =0x000021A0
+ sub r1, r5, #1
+ strb r1, [r4, r0]
+_0223977A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02239780: .word 0x000021A0
+
+ thumb_func_start MOD11_02239784
+MOD11_02239784: ; 0x02239784
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ beq _022397A2
+ add r0, r4, #0
+ bl MOD11_02256774
+_022397A2:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022397A8
+MOD11_022397A8: ; 0x022397A8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ add r2, r0, #0
+ lsl r0, r6, #2
+ add r1, r5, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #0x80
+ tst r0, r1
+ beq _0223989C
+ mov r0, #0xc0
+ add r6, r4, #0
+ mul r6, r0
+ ldr r0, _022398A8 ; =0x00002D8C
+ add r1, r5, r6
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0223989C
+ lsl r1, r7, #0x18
+ lsl r2, r2, #0x18
+ mov r0, #5
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ bl MOD11_02246B9C
+ cmp r0, #0x14
+ bgt _0223983A
+ bge _02239862
+ cmp r0, #0
+ bgt _02239834
+ beq _02239872
+ b _0223987E
+_02239834:
+ cmp r0, #0xa
+ beq _0223986A
+ b _0223987E
+_0223983A:
+ cmp r0, #0x50
+ bgt _02239846
+ bge _02239852
+ cmp r0, #0x28
+ beq _0223985A
+ b _0223987E
+_02239846:
+ cmp r0, #0xa0
+ bne _0223987E
+ ldr r0, _022398AC ; =0x0000215C
+ mov r1, #2
+ str r1, [r5, r0]
+ b _02239882
+_02239852:
+ ldr r0, _022398AC ; =0x0000215C
+ mov r1, #4
+ str r1, [r5, r0]
+ b _02239882
+_0223985A:
+ ldr r0, _022398AC ; =0x0000215C
+ mov r1, #8
+ str r1, [r5, r0]
+ b _02239882
+_02239862:
+ ldr r0, _022398AC ; =0x0000215C
+ mov r1, #0x10
+ str r1, [r5, r0]
+ b _02239882
+_0223986A:
+ ldr r0, _022398AC ; =0x0000215C
+ mov r1, #0x20
+ str r1, [r5, r0]
+ b _02239882
+_02239872:
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223987E:
+ bl ErrorHandling
+_02239882:
+ ldr r0, _022398B0 ; =0x00002D90
+ add r1, r5, r6
+ ldr r1, [r1, r0]
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r1
+ ldr r1, _022398AC ; =0x0000215C
+ ldr r1, [r5, r1]
+ bl MOD11_022476C0
+ ldr r1, _022398AC ; =0x0000215C
+ str r0, [r5, r1]
+ b _022398A4
+_0223989C:
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223A424
+_022398A4:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022398A8: .word 0x00002D8C
+_022398AC: .word 0x0000215C
+_022398B0: .word 0x00002D90
+
+ thumb_func_start MOD11_022398B4
+MOD11_022398B4: ; 0x022398B4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x20
+ ldr r0, _0223992C ; =0x00003044
+ bne _022398E6
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02239930 ; =0x000003E5
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x11
+ lsr r4, r0, #0x10
+ b _022398F0
+_022398E6:
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02239930 ; =0x000003E5
+ ldrb r4, [r1, r0]
+_022398F0:
+ cmp r4, #0
+ bne _022398F8
+ bl ErrorHandling
+_022398F8:
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ cmp r1, r4
+ bge _0223991E
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02239934 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0223991E
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0223991E:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_0223992C: .word 0x00003044
+_02239930: .word 0x000003E5
+_02239934: .word 0x00002D8C
+
+ thumb_func_start MOD11_02239938
+MOD11_02239938: ; 0x02239938
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ mov r3, #0xb5
+ mov r2, #0xc0
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r0, r5, r0
+ lsl r3, r3, #6
+ ldrh r4, [r0, r3]
+ add r2, #0xf9
+ cmp r4, r2
+ bne _022399BA
+ ldr r4, [r5, #0x6c]
+ mov r2, #0xc0
+ mul r2, r4
+ add r4, r5, r2
+ add r2, r3, #0
+ add r2, #0x4c
+ ldr r2, [r4, r2]
+ cmp r2, #0
+ beq _022399BA
+ add r3, #0x70
+ ldr r2, [r0, r3]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r2
+ bne _022399BA
+ add r0, r7, #0
+ bl MOD11_02230E88
+ bl FUN_02005EE0
+ cmp r0, #0
+ beq _02239998
+ cmp r0, #1
+ beq _0223999C
+ cmp r0, #2
+ beq _022399A0
+_02239998:
+ mov r4, #0
+ b _022399A2
+_0223999C:
+ mov r4, #0xa
+ b _022399A2
+_022399A0:
+ mov r4, #0x1e
+_022399A2:
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ cmp r1, r4
+ ble _022399C2
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _022399C2
+_022399BA:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_022399C2:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022399C8
+MOD11_022399C8: ; 0x022399C8
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ ldr r0, _022399F8 ; =0x000003DE
+ add r2, r4, r0
+ ldr r0, _022399FC ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r0, r2, r0
+ bl GetAttrFromWazaTbl
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_022399F8: .word 0x000003DE
+_022399FC: .word 0x00003044
+
+ thumb_func_start MOD11_02239A00
+MOD11_02239A00: ; 0x02239A00
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ ldr r3, [sp]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_022562E4
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02239A40
+MOD11_02239A40: ; 0x02239A40
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_02256308
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239A6C
+MOD11_02239A6C: ; 0x02239A6C
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_02256398
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02239A84
+MOD11_02239A84: ; 0x02239A84
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r2, _02239AC0 ; =0x0000219C
+ str r0, [sp]
+ add r3, r4, r1
+ ldrb r2, [r3, r2]
+ add r0, r5, #0
+ mov r3, #0
+ bl MOD11_02230370
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02239AC0: .word 0x0000219C
+
+ thumb_func_start MOD11_02239AC4
+MOD11_02239AC4: ; 0x02239AC4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022470B8
+ cmp r0, #0
+ beq _02239B02
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_02239B02:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239B08
+MOD11_02239B08: ; 0x02239B08
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_022563D0
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239B34
+MOD11_02239B34: ; 0x02239B34
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_022563F8
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239B60
+MOD11_02239B60: ; 0x02239B60
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_02256420
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239B8C
+MOD11_02239B8C: ; 0x02239B8C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_02256448
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239BB8
+MOD11_02239BB8: ; 0x02239BB8
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_02256470
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239BD0
+MOD11_02239BD0: ; 0x02239BD0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0225648C
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239BE8
+MOD11_02239BE8: ; 0x02239BE8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ ldr r3, [sp]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_022564A8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02239C28
+MOD11_02239C28: ; 0x02239C28
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022564F4
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02239C54
+MOD11_02239C54: ; 0x02239C54
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ mov r2, #0x4e
+ lsl r2, r2, #2
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r4, r2
+ bl MOD11_02248308
+ cmp r0, #0
+ bne _02239C84
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02239C84:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02239C88
+MOD11_02239C88: ; 0x02239C88
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ cmp r2, #3
+ beq _02239CAE
+ cmp r2, #4
+ beq _02239CD6
+ b _02239CFE
+_02239CAE:
+ mov r5, #0
+ cmp r6, #0
+ ble _02239D0E
+ mov r7, #1
+_02239CB6:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02239D14 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ bne _02239CCE
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022565A0
+_02239CCE:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02239CB6
+ b _02239D0E
+_02239CD6:
+ mov r5, #0
+ cmp r6, #0
+ ble _02239D0E
+ mov r7, #1
+_02239CDE:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02239D14 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _02239CF6
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022565A0
+_02239CF6:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02239CDE
+ b _02239D0E
+_02239CFE:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_022565A0
+_02239D0E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02239D14: .word 0x00000195
+
+ thumb_func_start MOD11_02239D18
+MOD11_02239D18: ; 0x02239D18
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ cmp r2, #3
+ beq _02239D3E
+ cmp r2, #4
+ beq _02239D66
+ b _02239D8E
+_02239D3E:
+ mov r5, #0
+ cmp r6, #0
+ ble _02239D9E
+ mov r7, #1
+_02239D46:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02239DA4 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ bne _02239D5E
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022565BC
+_02239D5E:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02239D46
+ b _02239D9E
+_02239D66:
+ mov r5, #0
+ cmp r6, #0
+ ble _02239D9E
+ mov r7, #1
+_02239D6E:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02239DA4 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _02239D86
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022565BC
+_02239D86:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02239D6E
+ b _02239D9E
+_02239D8E:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_022565BC
+_02239D9E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02239DA4: .word 0x00000195
+
+ thumb_func_start MOD11_02239DA8
+MOD11_02239DA8: ; 0x02239DA8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ str r1, [sp, #4]
+ add r0, r1, #0
+ mov r1, #1
+ mov r5, #0
+ bl MOD11_0223A424
+ ldr r0, [sp, #4]
+ bl MOD11_0223A404
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ bl MOD11_0223A404
+ str r0, [sp, #0x14]
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ add r2, r4, #0
+ bl MOD11_0223C230
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ mov r1, #8
+ tst r0, r1
+ bne _02239DFA
+ ldr r0, [sp, #0xc]
+ mov r1, #0x10
+ tst r0, r1
+ beq _02239EDA
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02239EDA
+_02239DFA:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_0222FF88
+ add r7, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD11_0222FF88
+ str r0, [sp, #8]
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_0222FF7C
+ add r0, r7, #0
+ mov r4, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02239E68
+_02239E2A:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02239E5C
+ add r0, r6, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02239F48 ; =0x000001EE
+ cmp r0, r1
+ beq _02239E5C
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ add r5, r5, r0
+_02239E5C:
+ add r0, r7, #0
+ add r4, r4, #1
+ bl GetPartyCount
+ cmp r4, r0
+ blt _02239E2A
+_02239E68:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x4b
+ beq _02239E76
+ cmp r0, #0xcb
+ beq _02239E76
+ cmp r0, #0x4a
+ bne _02239E82
+_02239E76:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02239ECC
+_02239E82:
+ ldr r0, [sp, #8]
+ mov r4, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02239ECC
+ ldr r7, _02239F48 ; =0x000001EE
+_02239E90:
+ ldr r0, [sp, #8]
+ add r1, r4, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02239EC0
+ add r0, r6, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ cmp r0, r7
+ beq _02239EC0
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ add r5, r5, r0
+_02239EC0:
+ ldr r0, [sp, #8]
+ add r4, r4, #1
+ bl GetPartyCount
+ cmp r4, r0
+ blt _02239E90
+_02239ECC:
+ cmp r5, #0
+ bne _02239F42
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x14]
+ bl MOD11_0223A424
+ b _02239F42
+_02239EDA:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_0222FF88
+ add r7, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_0222FF7C
+ add r0, r7, #0
+ mov r4, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02239F36
+_02239EF8:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02239F2A
+ add r0, r6, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02239F48 ; =0x000001EE
+ cmp r0, r1
+ beq _02239F2A
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ add r5, r5, r0
+_02239F2A:
+ add r0, r7, #0
+ add r4, r4, #1
+ bl GetPartyCount
+ cmp r4, r0
+ blt _02239EF8
+_02239F36:
+ cmp r5, #0
+ bne _02239F42
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x14]
+ bl MOD11_0223A424
+_02239F42:
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02239F48: .word 0x000001EE
+
+ thumb_func_start MOD11_02239F4C
+MOD11_02239F4C: ; 0x02239F4C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r6, r1, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ mov ip, r0
+ ldr r1, [r6, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r0, r6, r0
+ add r5, r0, #1
+ ldr r7, _02239FC0 ; =0x00002D58
+ mov r4, #0
+ mov r3, #1
+ add r0, sp, #0
+_02239F74:
+ ldrsb r1, [r5, r7]
+ cmp r1, #0xc
+ bge _02239F82
+ lsl r1, r4, #2
+ sub r2, r3, #1
+ add r4, r4, #1
+ str r2, [r0, r1]
+_02239F82:
+ add r3, r3, #1
+ add r5, r5, #1
+ cmp r3, #8
+ blt _02239F74
+ cmp r4, #0
+ beq _02239FB0
+ bl LCRandom
+ add r1, r4, #0
+ bl _s32_div_f
+ lsl r1, r1, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ ldr r1, _02239FC4 ; =0x00002170
+ add r0, #0x27
+ str r0, [r6, r1]
+ mov r0, #2
+ ldr r2, [r6, r1]
+ lsl r0, r0, #0x1e
+ orr r0, r2
+ str r0, [r6, r1]
+ b _02239FB8
+_02239FB0:
+ add r0, r6, #0
+ mov r1, ip
+ bl MOD11_0223A424
+_02239FB8:
+ mov r0, #0
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02239FC0: .word 0x00002D58
+_02239FC4: .word 0x00002170
+
+ thumb_func_start MOD11_02239FC8
+MOD11_02239FC8: ; 0x02239FC8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ ldr r0, _0223A00C ; =0x00002DB8
+ add r5, r2, #0
+ add r6, r4, r0
+ mov r0, #0xc0
+ mul r5, r0
+ lsl r0, r2, #1
+ add r1, r4, r0
+ ldrh r3, [r6, r5]
+ ldr r0, _0223A010 ; =0x00003124
+ strh r3, [r1, r0]
+ mov r0, #0
+ strh r0, [r6, r5]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02245190
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223A00C: .word 0x00002DB8
+_0223A010: .word 0x00003124
+
+ thumb_func_start MOD11_0223A014
+MOD11_0223A014: ; 0x0223A014
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ ldr r0, [r4, #0x64]
+ ldr r2, _0223A054 ; =0x00003124
+ lsl r0, r0, #1
+ add r0, r4, r0
+ ldrh r3, [r0, r2]
+ cmp r3, #0
+ beq _0223A048
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r3, [r4, r0]
+ ldr r0, [r4, #0x64]
+ mov r1, #0
+ lsl r0, r0, #1
+ add r0, r4, r0
+ strh r1, [r0, r2]
+ b _0223A04E
+_0223A048:
+ add r0, r4, #0
+ bl MOD11_0223A424
+_0223A04E:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0223A054: .word 0x00003124
+
+ thumb_func_start MOD11_0223A058
+MOD11_0223A058: ; 0x0223A058
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ mov r2, #0x4e
+ lsl r2, r2, #2
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r4, r2
+ bl MOD11_02249B94
+ cmp r0, #0
+ bne _0223A088
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_0223A088:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0223A08C
+MOD11_0223A08C: ; 0x0223A08C
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_022565D8
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A0A4
+MOD11_0223A0A4: ; 0x0223A0A4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022565F4
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A0C0
+MOD11_0223A0C0: ; 0x0223A0C0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0225664C
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A0D8
+MOD11_0223A0D8: ; 0x0223A0D8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ mov r4, #0
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223C230
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02249D90
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ bl MOD11_02249DA4
+ str r0, [sp]
+ cmp r6, #0x40
+ bne _0223A126
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r0, [sp]
+ cmp r1, r0
+ bge _0223A126
+ mov r4, #1
+_0223A126:
+ cmp r6, #0x66
+ bne _0223A13E
+ mov r0, #0xc0
+ mul r0, r7
+ add r2, r5, r0
+ ldr r0, _0223A170 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ add r0, r0, #4
+ ldr r0, [r2, r0]
+ cmp r1, r0
+ bne _0223A13E
+ mov r4, #1
+_0223A13E:
+ cmp r4, #0
+ beq _0223A16C
+ mov r1, #0xc0
+ add r0, r7, #0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _0223A170 ; =0x00002D8C
+ ldr r3, [r2, r0]
+ ldr r2, _0223A174 ; =0x0000215C
+ ldr r0, [r5, r2]
+ add r0, r0, r3
+ cmp r0, #0
+ bgt _0223A16C
+ sub r0, r3, #1
+ neg r0, r0
+ str r0, [r5, r2]
+ add r0, r2, #0
+ add r0, #0x10
+ ldr r0, [r5, r0]
+ add r1, #0x40
+ orr r0, r1
+ add r2, #0x10
+ str r0, [r5, r2]
+_0223A16C:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223A170: .word 0x00002D8C
+_0223A174: .word 0x0000215C
+
+ thumb_func_start MOD11_0223A178
+MOD11_0223A178: ; 0x0223A178
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ mov r0, #0xc0
+ add r4, r1, #0
+ mul r4, r0
+ ldr r0, _0223A208 ; =0x00002D8C
+ add r2, r5, r4
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _0223A1FA
+ ldr r0, _0223A20C ; =0x0000219C
+ add r2, r5, r1
+ ldrb r2, [r2, r0]
+ cmp r2, #6
+ beq _0223A1FA
+ add r0, r6, #0
+ bl MOD11_02230014
+ add r6, r0, #0
+ mov r1, #0xa
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, _0223A210 ; =0x00002D67
+ add r1, r5, r4
+ ldrb r0, [r1, r0]
+ cmp r0, #0x1e
+ beq _0223A202
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_02248A14
+ cmp r0, #0
+ bne _0223A202
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+ b _0223A202
+_0223A1FA:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_0223A202:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223A208: .word 0x00002D8C
+_0223A20C: .word 0x0000219C
+_0223A210: .word 0x00002D67
+
+ thumb_func_start MOD11_0223A214
+MOD11_0223A214: ; 0x0223A214
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _0223A26C ; =0x00002DB0
+ ldr r2, [r2, r1]
+ mov r1, #1
+ lsl r1, r1, #0x18
+ tst r1, r2
+ bne _0223A260
+ mov r1, #0x1c
+ mul r1, r0
+ mov r0, #0xba
+ add r1, r4, r1
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #8
+ tst r0, r1
+ beq _0223A268
+_0223A260:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_0223A268:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223A26C: .word 0x00002DB0
+
+ thumb_func_start MOD11_0223A270
+MOD11_0223A270: ; 0x0223A270
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0223A2B0
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _0223A2B8
+_0223A2B0:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_0223A2B8:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A2C0
+MOD11_0223A2C0: ; 0x0223A2C0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022482A4
+ str r0, [r4, #0x6c]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A2F0
+MOD11_0223A2F0: ; 0x0223A2F0
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ mov r2, #0x4e
+ lsl r2, r2, #2
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r4, r2
+ bl MOD11_0224C258
+ cmp r0, #0
+ bne _0223A320
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_0223A320:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0223A324
+MOD11_0223A324: ; 0x0223A324
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02256668
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0223A350
+MOD11_0223A350: ; 0x0223A350
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02256714
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0223A37C
+MOD11_0223A37C: ; 0x0223A37C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_02256754
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A3B4
+MOD11_0223A3B4: ; 0x0223A3B4
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_0222FFC8
+ cmp r0, #6
+ bne _0223A3E0
+ ldr r0, [r5, #0x64]
+ bl FUN_0206B334
+ cmp r0, #0x12
+ beq _0223A3F0
+_0223A3E0:
+ ldr r0, _0223A3F4 ; =0x00002410
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0223A3F0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_0223A3F0:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0223A3F4: .word 0x00002410
+
+ thumb_func_start MOD11_0223A3F8
+MOD11_0223A3F8: ; 0x0223A3F8
+ ldr r3, _0223A400 ; =MOD11_022432B4
+ add r0, r1, #0
+ bx r3
+ nop
+_0223A400: .word MOD11_022432B4
+
+ thumb_func_start MOD11_0223A404
+MOD11_0223A404: ; 0x0223A404
+ add r1, r0, #0
+ add r1, #0xb4
+ ldr r1, [r1]
+ lsl r1, r1, #2
+ add r2, r0, r1
+ mov r1, #0x27
+ lsl r1, r1, #8
+ ldr r2, [r2, r1]
+ add r1, r0, #0
+ add r1, #0xb4
+ ldr r1, [r1]
+ add r0, #0xb4
+ add r1, r1, #1
+ str r1, [r0]
+ add r0, r2, #0
+ bx lr
+
+ thumb_func_start MOD11_0223A424
+MOD11_0223A424: ; 0x0223A424
+ add r2, r0, #0
+ add r2, #0xb4
+ ldr r2, [r2]
+ add r0, #0xb4
+ add r1, r2, r1
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A434
+MOD11_0223A434: ; 0x0223A434
+ ldr r3, _0223A438 ; =MOD11_022431DC
+ bx r3
+ .align 2, 0
+_0223A438: .word MOD11_022431DC
+
+ thumb_func_start MOD11_0223A43C
+MOD11_0223A43C: ; 0x0223A43C
+ ldr r3, _0223A440 ; =MOD11_0224321C
+ bx r3
+ .align 2, 0
+_0223A440: .word MOD11_0224321C
+
+ thumb_func_start MOD11_0223A444
+MOD11_0223A444: ; 0x0223A444
+ push {r4, lr}
+ add r4, r1, #0
+ cmp r2, #0x44
+ bls _0223A44E
+ b _0223A738
+_0223A44E:
+ add r1, r2, r2
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223A45A: ; jump table
+ .short _0223A4E4 - _0223A45A - 2 ; case 0
+ .short _0223A4E8 - _0223A45A - 2 ; case 1
+ .short _0223A4EE - _0223A45A - 2 ; case 2
+ .short _0223A4F4 - _0223A45A - 2 ; case 3
+ .short _0223A4FA - _0223A45A - 2 ; case 4
+ .short _0223A500 - _0223A45A - 2 ; case 5
+ .short _0223A506 - _0223A45A - 2 ; case 6
+ .short _0223A50C - _0223A45A - 2 ; case 7
+ .short _0223A514 - _0223A45A - 2 ; case 8
+ .short _0223A51A - _0223A45A - 2 ; case 9
+ .short _0223A522 - _0223A45A - 2 ; case 10
+ .short _0223A528 - _0223A45A - 2 ; case 11
+ .short _0223A53A - _0223A45A - 2 ; case 12
+ .short _0223A54C - _0223A45A - 2 ; case 13
+ .short _0223A562 - _0223A45A - 2 ; case 14
+ .short _0223A568 - _0223A45A - 2 ; case 15
+ .short _0223A56E - _0223A45A - 2 ; case 16
+ .short _0223A574 - _0223A45A - 2 ; case 17
+ .short _0223A57A - _0223A45A - 2 ; case 18
+ .short _0223A580 - _0223A45A - 2 ; case 19
+ .short _0223A586 - _0223A45A - 2 ; case 20
+ .short _0223A58E - _0223A45A - 2 ; case 21
+ .short _0223A59A - _0223A45A - 2 ; case 22
+ .short _0223A5A2 - _0223A45A - 2 ; case 23
+ .short _0223A5AA - _0223A45A - 2 ; case 24
+ .short _0223A5B0 - _0223A45A - 2 ; case 25
+ .short _0223A5B8 - _0223A45A - 2 ; case 26
+ .short _0223A5C0 - _0223A45A - 2 ; case 27
+ .short _0223A5C8 - _0223A45A - 2 ; case 28
+ .short _0223A5D0 - _0223A45A - 2 ; case 29
+ .short _0223A5D6 - _0223A45A - 2 ; case 30
+ .short _0223A5DC - _0223A45A - 2 ; case 31
+ .short _0223A5E2 - _0223A45A - 2 ; case 32
+ .short _0223A5E8 - _0223A45A - 2 ; case 33
+ .short _0223A5EE - _0223A45A - 2 ; case 34
+ .short _0223A5F4 - _0223A45A - 2 ; case 35
+ .short _0223A5FC - _0223A45A - 2 ; case 36
+ .short _0223A604 - _0223A45A - 2 ; case 37
+ .short _0223A60C - _0223A45A - 2 ; case 38
+ .short _0223A614 - _0223A45A - 2 ; case 39
+ .short _0223A61A - _0223A45A - 2 ; case 40
+ .short _0223A622 - _0223A45A - 2 ; case 41
+ .short _0223A630 - _0223A45A - 2 ; case 42
+ .short _0223A63E - _0223A45A - 2 ; case 43
+ .short _0223A646 - _0223A45A - 2 ; case 44
+ .short _0223A64C - _0223A45A - 2 ; case 45
+ .short _0223A65A - _0223A45A - 2 ; case 46
+ .short _0223A668 - _0223A45A - 2 ; case 47
+ .short _0223A678 - _0223A45A - 2 ; case 48
+ .short _0223A688 - _0223A45A - 2 ; case 49
+ .short _0223A69A - _0223A45A - 2 ; case 50
+ .short _0223A6A0 - _0223A45A - 2 ; case 51
+ .short _0223A6A6 - _0223A45A - 2 ; case 52
+ .short _0223A6AC - _0223A45A - 2 ; case 53
+ .short _0223A6B8 - _0223A45A - 2 ; case 54
+ .short _0223A6BE - _0223A45A - 2 ; case 55
+ .short _0223A6C4 - _0223A45A - 2 ; case 56
+ .short _0223A6CA - _0223A45A - 2 ; case 57
+ .short _0223A6D0 - _0223A45A - 2 ; case 58
+ .short _0223A6D6 - _0223A45A - 2 ; case 59
+ .short _0223A6DC - _0223A45A - 2 ; case 60
+ .short _0223A6E4 - _0223A45A - 2 ; case 61
+ .short _0223A6EA - _0223A45A - 2 ; case 62
+ .short _0223A6EE - _0223A45A - 2 ; case 63
+ .short _0223A6F4 - _0223A45A - 2 ; case 64
+ .short _0223A6FA - _0223A45A - 2 ; case 65
+ .short _0223A70A - _0223A45A - 2 ; case 66
+ .short _0223A71A - _0223A45A - 2 ; case 67
+ .short _0223A728 - _0223A45A - 2 ; case 68
+_0223A4E4:
+ add r0, #0x2c
+ pop {r4, pc}
+_0223A4E8:
+ ldr r0, _0223A73C ; =0x0000214C
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A4EE:
+ ldr r0, _0223A740 ; =0x00002170
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A4F4:
+ ldr r0, _0223A744 ; =0x00002174
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A4FA:
+ ldr r0, _0223A748 ; =0x00002178
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A500:
+ add r4, #0x88
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A506:
+ ldr r0, _0223A74C ; =0x0000213C
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A50C:
+ mov r0, #6
+ lsl r0, r0, #6
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A514:
+ ldr r0, _0223A750 ; =0x00002158
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A51A:
+ mov r0, #0x4d
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A522:
+ ldr r0, _0223A754 ; =0x0000216C
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A528:
+ ldr r1, [r4, #0x64]
+ bl MOD11_02230270
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ add r1, r4, r1
+ lsl r0, r0, #2
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A53A:
+ ldr r1, [r4, #0x6c]
+ bl MOD11_02230270
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ add r1, r4, r1
+ lsl r0, r0, #2
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A54C:
+ add r1, r4, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ bl MOD11_02230270
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ add r1, r4, r1
+ lsl r0, r0, #2
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A562:
+ ldr r0, _0223A758 ; =0x00002144
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A568:
+ add r4, #0x64
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A56E:
+ add r4, #0x6c
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A574:
+ add r4, #0x94
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A57A:
+ add r4, #0x74
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A580:
+ add r4, #0x78
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A586:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A58E:
+ ldr r0, _0223A75C ; =0x000030E4
+ add r1, r4, r0
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A59A:
+ mov r0, #0x13
+ lsl r0, r0, #4
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5A2:
+ mov r0, #0x53
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5AA:
+ ldr r0, _0223A760 ; =0x00003044
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5B0:
+ mov r0, #0x15
+ lsl r0, r0, #4
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5B8:
+ mov r0, #0x47
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5C0:
+ mov r0, #0x12
+ lsl r0, r0, #4
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5C8:
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5D0:
+ add r4, #0x98
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A5D6:
+ ldr r0, _0223A764 ; =0x00002154
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5DC:
+ add r4, #0x38
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A5E2:
+ ldr r0, _0223A768 ; =0x0000215C
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5E8:
+ ldr r1, _0223A76C ; =0x0000241C
+ add r0, r0, r1
+ pop {r4, pc}
+_0223A5EE:
+ add r4, #0x8c
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A5F4:
+ mov r0, #0x49
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5FC:
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A604:
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A60C:
+ mov r0, #0x61
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A614:
+ ldr r0, _0223A770 ; =0x00003104
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A61A:
+ mov r0, #0x86
+ lsl r0, r0, #6
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A622:
+ mov r0, #0x7b
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #6
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A630:
+ mov r0, #0x81
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #6
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A63E:
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A646:
+ ldr r0, _0223A774 ; =0x00002150
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A64C:
+ mov r0, #0x82
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #6
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A65A:
+ mov r0, #0x82
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #6
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A668:
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r1, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4, pc}
+_0223A678:
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r1, [r4, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4, pc}
+_0223A688:
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r2, r4, r0
+ add r4, #0x94
+ ldr r1, [r4]
+ mov r0, #0x1c
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4, pc}
+_0223A69A:
+ ldr r0, _0223A778 ; =0x00003114
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A6A0:
+ ldr r0, _0223A77C ; =0x00003118
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A6A6:
+ ldr r1, _0223A780 ; =0x00002408
+ add r0, r0, r1
+ pop {r4, pc}
+_0223A6AC:
+ ldr r0, _0223A784 ; =0x0000304C
+ add r1, r4, r0
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A6B8:
+ ldr r0, _0223A788 ; =0x00002148
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A6BE:
+ ldr r1, _0223A78C ; =0x00002410
+ add r0, r0, r1
+ pop {r4, pc}
+_0223A6C4:
+ add r4, #0x7c
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A6CA:
+ ldr r0, _0223A790 ; =0x00002160
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A6D0:
+ ldr r0, _0223A794 ; =0x00002164
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A6D6:
+ ldr r1, _0223A798 ; =0x00002418
+ add r0, r0, r1
+ pop {r4, pc}
+_0223A6DC:
+ mov r0, #0x85
+ lsl r0, r0, #6
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A6E4:
+ add r4, #0xec
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A6EA:
+ add r0, #0x44
+ pop {r4, pc}
+_0223A6EE:
+ add r4, #0x68
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A6F4:
+ add r4, #0x70
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A6FA:
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r1, [r4, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4, pc}
+_0223A70A:
+ mov r0, #0x21
+ lsl r0, r0, #4
+ add r1, r4, r0
+ sub r0, #0xf8
+ ldr r0, [r4, r0]
+ lsl r0, r0, #6
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A71A:
+ mov r0, #0x21
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #6
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A728:
+ mov r0, #0xbb
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r1, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4, pc}
+_0223A738:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_0223A73C: .word 0x0000214C
+_0223A740: .word 0x00002170
+_0223A744: .word 0x00002174
+_0223A748: .word 0x00002178
+_0223A74C: .word 0x0000213C
+_0223A750: .word 0x00002158
+_0223A754: .word 0x0000216C
+_0223A758: .word 0x00002144
+_0223A75C: .word 0x000030E4
+_0223A760: .word 0x00003044
+_0223A764: .word 0x00002154
+_0223A768: .word 0x0000215C
+_0223A76C: .word 0x0000241C
+_0223A770: .word 0x00003104
+_0223A774: .word 0x00002150
+_0223A778: .word 0x00003114
+_0223A77C: .word 0x00003118
+_0223A780: .word 0x00002408
+_0223A784: .word 0x0000304C
+_0223A788: .word 0x00002148
+_0223A78C: .word 0x00002410
+_0223A790: .word 0x00002160
+_0223A794: .word 0x00002164
+_0223A798: .word 0x00002418
+
+ thumb_func_start MOD11_0223A79C
+MOD11_0223A79C: ; 0x0223A79C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xd4
+ add r4, r1, #0
+ str r0, [sp, #0x14]
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ str r0, [sp, #0x3c]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ str r0, [sp, #0x38]
+ ldr r0, [r4, #4]
+ mov r7, #0
+ ldr r0, [r0, #0x74]
+ ldr r5, [r4, #0x48]
+ asr r1, r0, #1
+ mov r0, #1
+ and r0, r1
+ str r0, [sp, #0x40]
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_0222FFC8
+ cmp r5, r0
+ bge _0223A81E
+ ldr r0, [sp, #0x40]
+ lsl r0, r0, #2
+ str r0, [sp, #0x24]
+_0223A7D6:
+ ldr r0, [r4]
+ mov r1, #0
+ add r2, r5, #0
+ bl MOD11_02230014
+ mov r1, #6
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #1
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0x32
+ beq _0223A81E
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ add r2, r0, #0
+ ldr r1, [r4, #4]
+ ldr r0, [sp, #0x24]
+ add r0, r0, r1
+ add r0, #0xa4
+ ldr r0, [r0]
+ tst r0, r2
+ bne _0223A81E
+ ldr r0, [r4]
+ mov r1, #0
+ add r5, r5, #1
+ bl MOD11_0222FFC8
+ cmp r5, r0
+ blt _0223A7D6
+_0223A81E:
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_0222FFC8
+ cmp r5, r0
+ bne _0223A830
+ mov r0, #0x26
+ str r0, [r4, #0x28]
+ b _0223A84C
+_0223A830:
+ ldr r0, [sp, #0x38]
+ mov r2, #2
+ tst r0, r2
+ beq _0223A84C
+ ldr r0, [sp, #0x38]
+ mov r1, #0x40
+ tst r0, r1
+ bne _0223A84C
+ ldr r1, [r4, #4]
+ ldr r0, _0223AB98 ; =0x0000219E
+ ldrb r0, [r1, r0]
+ cmp r0, r5
+ bne _0223A84C
+ add r7, r2, #0
+_0223A84C:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0x26
+ bls _0223A856
+ bl _0223B2AE
+_0223A856:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223A862: ; jump table
+ .short _0223A8B0 - _0223A862 - 2 ; case 0
+ .short _0223AA74 - _0223A862 - 2 ; case 1
+ .short _0223AA8C - _0223A862 - 2 ; case 2
+ .short _0223AA9E - _0223A862 - 2 ; case 3
+ .short _0223AACA - _0223A862 - 2 ; case 4
+ .short _0223AADE - _0223A862 - 2 ; case 5
+ .short _0223AB16 - _0223A862 - 2 ; case 6
+ .short _0223AC16 - _0223A862 - 2 ; case 7
+ .short _0223AC32 - _0223A862 - 2 ; case 8
+ .short _0223AC50 - _0223A862 - 2 ; case 9
+ .short _0223ACF8 - _0223A862 - 2 ; case 10
+ .short _0223AE3C - _0223A862 - 2 ; case 11
+ .short _0223ADBA - _0223A862 - 2 ; case 12
+ .short _0223AE3C - _0223A862 - 2 ; case 13
+ .short _0223AE5E - _0223A862 - 2 ; case 14
+ .short _0223AEC0 - _0223A862 - 2 ; case 15
+ .short _0223AF42 - _0223A862 - 2 ; case 16
+ .short _0223AFDA - _0223A862 - 2 ; case 17
+ .short _0223AFAC - _0223A862 - 2 ; case 18
+ .short _0223AFDA - _0223A862 - 2 ; case 19
+ .short _0223AFF2 - _0223A862 - 2 ; case 20
+ .short _0223B012 - _0223A862 - 2 ; case 21
+ .short _0223B05A - _0223A862 - 2 ; case 22
+ .short _0223B07E - _0223A862 - 2 ; case 23
+ .short _0223B16A - _0223A862 - 2 ; case 24
+ .short _0223AFDA - _0223A862 - 2 ; case 25
+ .short _0223B192 - _0223A862 - 2 ; case 26
+ .short _0223AFDA - _0223A862 - 2 ; case 27
+ .short _0223B1CE - _0223A862 - 2 ; case 28
+ .short _0223AFDA - _0223A862 - 2 ; case 29
+ .short _0223B1F6 - _0223A862 - 2 ; case 30
+ .short _0223B0B6 - _0223A862 - 2 ; case 31
+ .short _0223AFDA - _0223A862 - 2 ; case 32
+ .short _0223B0E0 - _0223A862 - 2 ; case 33
+ .short _0223B102 - _0223A862 - 2 ; case 34
+ .short _0223B152 - _0223A862 - 2 ; case 35
+ .short _0223B25C - _0223A862 - 2 ; case 36
+ .short _0223B272 - _0223A862 - 2 ; case 37
+ .short _0223B298 - _0223A862 - 2 ; case 38
+_0223A8B0:
+ add r0, r6, #0
+ mov r1, #6
+ mov r2, #0
+ bl GetMonData
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #1
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x38]
+ mov r1, #1
+ and r0, r1
+ str r0, [sp, #0x1c]
+ bne _0223A90E
+ ldr r1, [r4, #4]
+ ldr r0, _0223AB9C ; =0x00002E4C
+ ldr r2, _0223ABA0 ; =0x00002FCC
+ ldr r0, [r1, r0]
+ ldr r1, [r1, r2]
+ add r0, r0, r1
+ bne _0223A90E
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0223A90E
+ ldr r1, [r4, #4]
+ ldr r0, _0223ABA4 ; =0x00003144
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _0223A90E
+ ldr r0, _0223ABA8 ; =0x00000467
+ bl FUN_0200521C
+ ldr r1, [r4, #4]
+ ldr r0, _0223ABA4 ; =0x00003144
+ mov r2, #1
+ str r2, [r1, r0]
+ ldr r0, [r4]
+ mov r1, #2
+ bl MOD11_02231484
+_0223A90E:
+ mov r0, #0
+ str r0, [sp, #0x34]
+ mov r1, #1
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ ldr r2, [sp, #0x34]
+ add r0, r6, #0
+ mov r1, #0xa2
+ bl GetMonData
+ cmp r0, #0
+ bne _0223A928
+ b _0223AA34
+_0223A928:
+ add r0, r6, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0x64
+ beq _0223AA34
+ ldr r0, [r4, #4]
+ str r0, [sp, #0x20]
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ ldr r1, [sp, #0x40]
+ lsl r2, r1, #2
+ ldr r1, [sp, #0x20]
+ add r1, r1, r2
+ add r1, #0xa4
+ ldr r1, [r1]
+ tst r0, r1
+ beq _0223A958
+ ldr r0, [sp, #0x20]
+ add r0, #0x9c
+ ldr r0, [r0]
+ str r0, [sp, #0x34]
+_0223A958:
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x32
+ bne _0223A96C
+ ldr r0, [sp, #0x20]
+ add r0, #0xa0
+ str r0, [sp, #0x20]
+ ldr r1, [r0]
+ ldr r0, [sp, #0x34]
+ add r0, r0, r1
+ str r0, [sp, #0x34]
+_0223A96C:
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x41
+ bne _0223A980
+ ldr r1, [sp, #0x34]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _u32_div_f
+ str r0, [sp, #0x34]
+_0223A980:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _0223A994
+ ldr r1, [sp, #0x34]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _u32_div_f
+ str r0, [sp, #0x34]
+_0223A994:
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD11_0224AE14
+ cmp r0, #0
+ bne _0223A9D6
+ add r0, r6, #0
+ mov r1, #0xc
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _0223ABAC ; =0x020ECAC4
+ ldrb r1, [r1]
+ cmp r1, r0
+ beq _0223A9C2
+ ldr r1, [sp, #0x34]
+ mov r0, #0xaa
+ mul r0, r1
+ mov r1, #0x64
+ bl _u32_div_f
+ str r0, [sp, #0x34]
+ b _0223A9D0
+_0223A9C2:
+ ldr r1, [sp, #0x34]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _u32_div_f
+ str r0, [sp, #0x34]
+_0223A9D0:
+ mov r1, #2
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+_0223A9D6:
+ add r0, r6, #0
+ mov r1, #8
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #0x48]
+ add r0, r6, #0
+ bl GetMonBaseExperienceAtCurrentLevel
+ ldr r1, [sp, #0x48]
+ sub r0, r1, r0
+ str r0, [r4, #0x3c]
+ ldr r1, [sp, #0x48]
+ ldr r0, [sp, #0x34]
+ add r2, r1, r0
+ str r2, [sp, #0x48]
+ ldr r3, [r4, #4]
+ ldr r0, _0223ABB0 ; =0x0000219C
+ add r1, r3, r7
+ ldrb r0, [r1, r0]
+ cmp r5, r0
+ bne _0223AA0C
+ mov r0, #0xc0
+ mul r0, r7
+ add r1, r3, r0
+ ldr r0, _0223ABB4 ; =0x00002DA4
+ str r2, [r1, r0]
+_0223AA0C:
+ add r0, r6, #0
+ mov r1, #8
+ add r2, sp, #0x48
+ bl SetMonData
+ ldr r6, [r4, #4]
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_0222FF88
+ ldr r3, [r6, #0x74]
+ mov r2, #0xc0
+ mul r2, r3
+ add r3, r6, r2
+ mov r2, #0xb5
+ lsl r2, r2, #6
+ ldrh r2, [r3, r2]
+ add r1, r5, #0
+ bl MOD11_0223B2DC
+_0223AA34:
+ ldr r0, [sp, #0x34]
+ cmp r0, #0
+ beq _0223AA6C
+ mov r1, #0x11
+ add r0, sp, #0xb0
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r0, [sp, #0x34]
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AA6C:
+ mov r0, #0x25
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AA74:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223AB20
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AA8C:
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223AB20
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AA9E:
+ ldr r1, [r4, #4]
+ ldr r0, _0223ABB0 ; =0x0000219C
+ add r2, r1, r7
+ ldrb r0, [r2, r0]
+ cmp r5, r0
+ bne _0223AAC2
+ ldr r0, [r4]
+ ldr r3, [r4, #0x3c]
+ add r2, r7, #0
+ bl MOD11_02255B68
+ mov r0, #0
+ str r0, [r4, #0x3c]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AAC2:
+ mov r0, #5
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AACA:
+ ldr r0, [r4, #4]
+ bl MOD11_02243388
+ cmp r0, #0
+ beq _0223AB20
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AADE:
+ add r0, r6, #0
+ bl FUN_020690E8
+ cmp r0, #0
+ beq _0223AB0E
+ ldr r1, [r4, #4]
+ ldr r0, _0223ABB0 ; =0x0000219C
+ add r2, r1, r7
+ ldrb r0, [r2, r0]
+ cmp r5, r0
+ bne _0223AB06
+ ldr r0, [r4]
+ add r2, r7, #0
+ mov r3, #8
+ bl MOD11_02255E4C
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_02255FA0
+_0223AB06:
+ mov r0, #6
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AB0E:
+ mov r0, #0x25
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AB16:
+ ldr r0, [r4, #4]
+ bl MOD11_02243388
+ cmp r0, #0
+ bne _0223AB22
+_0223AB20:
+ b _0223B2AE
+_0223AB22:
+ ldr r3, _0223ABB8 ; =0x0225DCC0
+ add r2, sp, #0x98
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r6, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #0x30]
+ mov r0, #5
+ mov r1, #0x18
+ bl AllocFromHeap
+ mov r1, #0x5f
+ ldr r2, [r4, #4]
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, r1]
+ mov r1, #0
+ str r0, [sp, #0x2c]
+ str r1, [sp, #0x4c]
+_0223AB58:
+ lsl r2, r1, #2
+ add r1, sp, #0x98
+ ldr r1, [r1, r2]
+ add r0, r6, #0
+ mov r2, #0
+ bl GetMonData
+ ldr r1, [sp, #0x4c]
+ lsl r2, r1, #2
+ ldr r1, [sp, #0x2c]
+ str r0, [r1, r2]
+ ldr r0, [sp, #0x4c]
+ add r1, r0, #1
+ str r1, [sp, #0x4c]
+ cmp r1, #6
+ blt _0223AB58
+ ldr r0, [r4]
+ bl MOD11_022302B0
+ add r2, r0, #0
+ lsl r2, r2, #0x10
+ add r0, r6, #0
+ mov r1, #0
+ lsr r2, r2, #0x10
+ bl MonApplyFriendshipMod
+ add r0, r6, #0
+ bl CalcMonStats
+ ldr r1, [r4, #4]
+ ldr r0, _0223ABB0 ; =0x0000219C
+ b _0223ABBC
+ .align 2, 0
+_0223AB98: .word 0x0000219E
+_0223AB9C: .word 0x00002E4C
+_0223ABA0: .word 0x00002FCC
+_0223ABA4: .word 0x00003144
+_0223ABA8: .word 0x00000467
+_0223ABAC: .word 0x020ECAC4
+_0223ABB0: .word 0x0000219C
+_0223ABB4: .word 0x00002DA4
+_0223ABB8: .word 0x0225DCC0
+_0223ABBC:
+ add r2, r1, r7
+ ldrb r3, [r2, r0]
+ cmp r5, r3
+ bne _0223ABCC
+ ldr r0, [r4]
+ add r2, r7, #0
+ bl MOD11_02243054
+_0223ABCC:
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ ldr r1, [r4, #4]
+ ldr r2, _0223AF48 ; =0x00003109
+ ldrb r3, [r1, r2]
+ orr r0, r3
+ strb r0, [r1, r2]
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r7, #0
+ bl MOD11_02256020
+ mov r1, #3
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0x11
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #7
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AC16:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _0223AC26
+ b _0223B2AE
+_0223AC26:
+ mov r0, #8
+ str r0, [r4, #0x28]
+ mov r0, #0
+ add sp, #0xd4
+ str r0, [r4, #0x38]
+ pop {r4, r5, r6, r7, pc}
+_0223AC32:
+ ldr r0, [r4, #4]
+ add r1, r0, r7
+ ldr r0, _0223AF4C ; =0x0000219C
+ ldrb r0, [r1, r0]
+ cmp r5, r0
+ beq _0223AC48
+ ldr r0, [r4]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223CDC4
+_0223AC48:
+ mov r0, #9
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AC50:
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ add r6, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_0222FF6C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ add r7, r0, #0
+ ldr r0, _0223AF50 ; =0x04000008
+ mov r2, #3
+ ldrh r1, [r0]
+ bic r1, r2
+ mov r2, #2
+ orr r1, r2
+ strh r1, [r0]
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #0
+ bl FUN_020178BC
+ ldr r0, [r4]
+ mov r1, #2
+ bl MOD11_02231564
+ mov r0, #5
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #2
+ mov r2, #1
+ mov r3, #0
+ bl FUN_0200CABC
+ bl FUN_0200CAFC
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x80
+ str r0, [sp, #8]
+ add r0, r7, #0
+ mov r1, #0x26
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #7
+ str r0, [sp]
+ mov r0, #0xe
+ str r0, [sp, #4]
+ mov r0, #0xc
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ mov r0, #0xa
+ str r0, [sp, #0x10]
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, #2
+ mov r3, #0x11
+ bl FUN_02019064
+ add r0, r5, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #8
+ bl FUN_0200CCA4
+ mov r0, #0xa
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223ACF8:
+ ldr r3, _0223AF54 ; =0x0225DCD8
+ add r2, sp, #0x80
+ 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 r3, _0223AF58 ; =0x0225DC60
+ add r2, sp, #0x68
+ 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]
+ mov r1, #1
+ bl MOD11_0222FF6C
+ add r7, r0, #0
+ mov r0, #0x5f
+ ldr r1, [r4, #4]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ str r0, [sp, #0x28]
+ mov r0, #0
+ str r0, [sp, #0x4c]
+_0223AD30:
+ ldr r2, _0223AF5C ; =0x000003B3
+ add r1, sp, #0xb0
+ strh r2, [r1, #2]
+ mov r2, #4
+ strb r2, [r1, #1]
+ lsl r2, r0, #2
+ add r1, sp, #0x80
+ ldr r1, [r1, r2]
+ lsl r0, r0, #4
+ str r1, [sp, #0xb4]
+ mov r1, #0
+ str r1, [sp]
+ str r0, [sp, #4]
+ add r0, r1, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ ldr r2, [sp, #0x3c]
+ add r1, r7, #0
+ add r3, sp, #0xb0
+ bl MOD11_022317E0
+ mov r1, #0xed
+ ldr r5, [sp, #0x4c]
+ lsl r1, r1, #2
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #7
+ strb r1, [r0, #1]
+ lsl r2, r5, #2
+ add r1, sp, #0x68
+ ldr r1, [r1, r2]
+ add r0, r6, #0
+ mov r2, #0
+ bl GetMonData
+ ldr r1, [sp, #0x28]
+ lsl r2, r5, #2
+ ldr r1, [r1, r2]
+ ldr r2, [sp, #0x3c]
+ sub r0, r0, r1
+ str r0, [sp, #0xb4]
+ mov r0, #2
+ str r0, [sp, #0xcc]
+ mov r0, #0x50
+ str r0, [sp]
+ lsl r0, r5, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0x1c
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, r7, #0
+ add r3, sp, #0xb0
+ bl MOD11_022317E0
+ ldr r0, [sp, #0x4c]
+ add r0, r0, #1
+ str r0, [sp, #0x4c]
+ cmp r0, #6
+ blt _0223AD30
+ mov r0, #0xb
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223ADBA:
+ ldr r3, _0223AF60 ; =0x0225DC90
+ add r2, sp, #0x50
+ 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]
+ mov r1, #1
+ bl MOD11_0222FF6C
+ mov r1, #0x24
+ str r1, [sp]
+ mov r1, #0x60
+ str r1, [sp, #4]
+ mov r1, #0xf
+ mov r2, #0x50
+ mov r3, #0
+ add r7, r0, #0
+ bl FUN_020196F4
+ mov r1, #0
+ str r1, [sp, #0x4c]
+ add r5, sp, #0xb0
+_0223ADEC:
+ ldr r0, _0223AF64 ; =0x000003B5
+ lsl r2, r1, #2
+ add r1, sp, #0x50
+ strh r0, [r5, #2]
+ mov r0, #7
+ ldr r1, [r1, r2]
+ strb r0, [r5, #1]
+ add r0, r6, #0
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #0xb4]
+ mov r0, #3
+ str r0, [sp, #0xcc]
+ mov r0, #0x48
+ str r0, [sp]
+ ldr r0, [sp, #0x4c]
+ ldr r2, [sp, #0x3c]
+ lsl r0, r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0x24
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, r7, #0
+ add r3, r5, #0
+ bl MOD11_022317E0
+ ldr r0, [sp, #0x4c]
+ add r1, r0, #1
+ str r1, [sp, #0x4c]
+ cmp r1, #6
+ blt _0223ADEC
+ mov r0, #0xd
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AE3C:
+ ldr r0, _0223AF68 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ ldr r0, _0223AF6C ; =0x00000C03
+ tst r0, r1
+ bne _0223AE4E
+ bl FUN_02020AA4
+ cmp r0, #0
+ beq _0223AEDC
+_0223AE4E:
+ ldr r0, _0223AF70 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AE5E:
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_0222FF6C
+ add r6, r0, #0
+ mov r1, #0
+ bl FUN_0200CCF8
+ add r0, r6, #0
+ bl FUN_02019178
+ ldr r1, _0223AF50 ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #1
+ orr r2, r0
+ strh r2, [r1]
+ mov r1, #0
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #1
+ bl FUN_020178BC
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_02231564
+ ldr r0, [r4, #4]
+ add r1, r0, r7
+ ldr r0, _0223AF4C ; =0x0000219C
+ ldrb r0, [r1, r0]
+ cmp r5, r0
+ beq _0223AEAC
+ ldr r0, [r4]
+ add r1, r4, #0
+ bl MOD11_0223D068
+_0223AEAC:
+ mov r0, #0x5f
+ ldr r1, [r4, #4]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FreeToHeap
+ mov r0, #0xf
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AEC0:
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x38
+ add r2, sp, #0x44
+ bl FUN_02069818
+ cmp r0, #0
+ beq _0223AEE6
+ ldr r1, _0223AF74 ; =0x0000FFFE
+ cmp r0, r1
+ bne _0223AEDE
+_0223AEDC:
+ b _0223B2AE
+_0223AEDE:
+ add r1, r1, #1
+ cmp r0, r1
+ beq _0223AEEE
+ b _0223AEFC
+_0223AEE6:
+ mov r0, #3
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AEEE:
+ add r0, sp, #0x44
+ ldrh r0, [r0]
+ add sp, #0xd4
+ str r0, [r4, #0x40]
+ mov r0, #0x10
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AEFC:
+ ldr r1, [r4, #4]
+ ldr r0, _0223AF4C ; =0x0000219C
+ add r2, r1, r7
+ ldrb r3, [r2, r0]
+ cmp r5, r3
+ bne _0223AF10
+ ldr r0, [r4]
+ add r2, r7, #0
+ bl MOD11_02243054
+_0223AF10:
+ mov r1, #4
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0xa
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ add r0, sp, #0x44
+ ldrh r0, [r0]
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x24
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AF42:
+ ldr r1, _0223AF78 ; =0x0000049A
+ b _0223AF7C
+ nop
+_0223AF48: .word 0x00003109
+_0223AF4C: .word 0x0000219C
+_0223AF50: .word 0x04000008
+_0223AF54: .word 0x0225DCD8
+_0223AF58: .word 0x0225DC60
+_0223AF5C: .word 0x000003B3
+_0223AF60: .word 0x0225DC90
+_0223AF64: .word 0x000003B5
+_0223AF68: .word 0x021C48B8
+_0223AF6C: .word 0x00000C03
+_0223AF70: .word 0x000005DC
+_0223AF74: .word 0x0000FFFE
+_0223AF78: .word 0x0000049A
+_0223AF7C:
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0xa
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r0, [r4, #0x40]
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AFAC:
+ ldr r1, _0223B2B4 ; =0x0000049B
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #2
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AFDA:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223B01E
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AFF2:
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r3, _0223B2B8 ; =0x0000049C
+ add r2, r7, #0
+ bl MOD11_02255980
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B012:
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ bne _0223B020
+_0223B01E:
+ b _0223B2AE
+_0223B020:
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223B034
+ mov r0, #0x1f
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B034:
+ ldr r1, _0223B2BC ; =0x0000049F
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0
+ strb r1, [r0, #1]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x16
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B05A:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223B160
+ ldr r0, [r4]
+ ldr r2, [r4, #0x40]
+ add r1, r7, #0
+ add r3, r5, #0
+ bl MOD11_022562B0
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B07E:
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223B092
+ mov r0, #0x1f
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B092:
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223B160
+ ldr r1, [r4, #4]
+ lsl r0, r7, #8
+ add r1, r1, r0
+ mov r0, #0x23
+ lsl r0, r0, #8
+ ldrb r0, [r1, r0]
+ add sp, #0xd4
+ sub r0, r0, #1
+ str r0, [r4, #0x44]
+ mov r0, #0x18
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B0B6:
+ mov r1, #0x4a
+ lsl r1, r1, #4
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0
+ strb r1, [r0, #1]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B0E0:
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, [r4, #0x40]
+ ldr r3, _0223B2C0 ; =0x000004A1
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r7, #0
+ bl MOD11_02255980
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B102:
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223B160
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223B122
+ mov r0, #0x10
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B122:
+ ldr r1, _0223B2C4 ; =0x000004A4
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0xa
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r0, [r4, #0x40]
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x23
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B152:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _0223B162
+_0223B160:
+ b _0223B2AE
+_0223B162:
+ mov r0, #0xf
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B16A:
+ ldr r1, _0223B2C8 ; =0x000004A5
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0
+ strb r1, [r0, #1]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B192:
+ ldr r1, _0223B2CC ; =0x000004A6
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0xa
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r1, [r4, #0x44]
+ add r0, r6, #0
+ add r1, #0x36
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B1CE:
+ ldr r1, _0223B2D0 ; =0x000004A7
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0
+ strb r1, [r0, #1]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B1F6:
+ ldr r1, _0223B2D4 ; =0x000004A8
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0xa
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r0, [r4, #0x40]
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0
+ str r0, [sp, #0x4c]
+ ldr r1, [r4, #0x44]
+ add r0, r6, #0
+ add r1, #0x3e
+ add r2, sp, #0x4c
+ bl SetMonData
+ ldr r1, [r4, #0x40]
+ ldr r2, [r4, #0x44]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x18
+ add r0, r6, #0
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x18
+ bl FUN_020697CC
+ ldr r1, [r4, #4]
+ ldr r0, _0223B2D8 ; =0x0000219C
+ add r2, r1, r7
+ ldrb r3, [r2, r0]
+ cmp r5, r3
+ bne _0223B254
+ ldr r0, [r4]
+ add r2, r7, #0
+ bl MOD11_02243054
+_0223B254:
+ mov r0, #0x24
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B25C:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223B2AE
+ mov r0, #0xf
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B272:
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ ldr r1, [sp, #0x40]
+ ldr r2, [r4, #4]
+ mov r3, #0
+ mvn r3, r3
+ add r2, #0xa4
+ lsl r1, r1, #2
+ ldr r6, [r2, r1]
+ eor r0, r3
+ and r0, r6
+ str r0, [r2, r1]
+ add r0, r5, #1
+ str r0, [r4, #0x48]
+ mov r0, #0
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B298:
+ mov r0, #0x5e
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #2
+ str r2, [r1, r0]
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [sp, #0x14]
+ bl FUN_0200CAB4
+_0223B2AE:
+ add sp, #0xd4
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223B2B4: .word 0x0000049B
+_0223B2B8: .word 0x0000049C
+_0223B2BC: .word 0x0000049F
+_0223B2C0: .word 0x000004A1
+_0223B2C4: .word 0x000004A4
+_0223B2C8: .word 0x000004A5
+_0223B2CC: .word 0x000004A6
+_0223B2D0: .word 0x000004A7
+_0223B2D4: .word 0x000004A8
+_0223B2D8: .word 0x0000219C
+
+ thumb_func_start MOD11_0223B2DC
+MOD11_0223B2DC: ; 0x0223B2DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r0, [sp]
+ str r1, [sp, #4]
+ add r0, r2, #0
+ mov r1, #5
+ mov r4, #0
+ bl AllocAndLoadMonPersonal
+ add r7, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ bl GetPartyMonByIndex
+ mov r1, #6
+ add r2, r4, #0
+ str r0, [sp, #0x14]
+ bl GetMonData
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r6, #0
+ mov r1, #1
+ mov r2, #5
+ bl FUN_0206E7B8
+ add r5, r0, #0
+ add r0, r6, #0
+ mov r1, #2
+ mov r2, #5
+ bl FUN_0206E7B8
+ add r6, r0, #0
+ add r0, r4, #0
+ str r0, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ add r0, sp, #0x20
+ str r0, [sp, #0xc]
+_0223B328:
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x14]
+ add r1, #0xd
+ mov r2, #0
+ bl GetMonData
+ ldr r1, [sp, #0xc]
+ strb r0, [r1]
+ add r0, r1, #0
+ ldrb r1, [r0]
+ ldr r0, [sp, #0x18]
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #1
+ str r0, [sp, #0x1c]
+ cmp r0, #6
+ blt _0223B328
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, sp, #0x20
+ str r0, [sp, #0x10]
+_0223B35E:
+ ldr r1, [sp, #0x18]
+ ldr r0, _0223B498 ; =0x000001FE
+ cmp r1, r0
+ blo _0223B368
+ b _0223B48C
+_0223B368:
+ ldr r0, [sp, #8]
+ cmp r0, #5
+ bhi _0223B414
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223B37A: ; jump table
+ .short _0223B386 - _0223B37A - 2 ; case 0
+ .short _0223B39E - _0223B37A - 2 ; case 1
+ .short _0223B3B6 - _0223B37A - 2 ; case 2
+ .short _0223B3CE - _0223B37A - 2 ; case 3
+ .short _0223B3E6 - _0223B37A - 2 ; case 4
+ .short _0223B3FE - _0223B37A - 2 ; case 5
+_0223B386:
+ add r0, r7, #0
+ mov r1, #0xa
+ bl GetPersonalAttr
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r5, #0x79
+ bne _0223B414
+ add r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ b _0223B414
+_0223B39E:
+ add r0, r7, #0
+ mov r1, #0xb
+ bl GetPersonalAttr
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r5, #0x74
+ bne _0223B414
+ add r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ b _0223B414
+_0223B3B6:
+ add r0, r7, #0
+ mov r1, #0xc
+ bl GetPersonalAttr
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r5, #0x75
+ bne _0223B414
+ add r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ b _0223B414
+_0223B3CE:
+ add r0, r7, #0
+ mov r1, #0xd
+ bl GetPersonalAttr
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r5, #0x78
+ bne _0223B414
+ add r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ b _0223B414
+_0223B3E6:
+ add r0, r7, #0
+ mov r1, #0xe
+ bl GetPersonalAttr
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r5, #0x76
+ bne _0223B414
+ add r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ b _0223B414
+_0223B3FE:
+ add r0, r7, #0
+ mov r1, #0xf
+ bl GetPersonalAttr
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r5, #0x77
+ bne _0223B414
+ add r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+_0223B414:
+ ldr r0, [sp, #4]
+ bl MaskOfFlagNo
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ ldr r0, [sp]
+ lsr r1, r1, #0x18
+ bl FUN_02069CF4
+ cmp r0, #0
+ beq _0223B42E
+ lsl r0, r4, #0x11
+ asr r4, r0, #0x10
+_0223B42E:
+ cmp r5, #0x31
+ bne _0223B436
+ lsl r0, r4, #0x11
+ asr r4, r0, #0x10
+_0223B436:
+ ldr r0, [sp, #0x18]
+ ldr r1, _0223B498 ; =0x000001FE
+ add r0, r0, r4
+ cmp r0, r1
+ ble _0223B448
+ sub r0, r0, r1
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+_0223B448:
+ ldr r0, [sp, #0x10]
+ ldrb r0, [r0]
+ add r0, r0, r4
+ cmp r0, #0xff
+ ble _0223B45A
+ sub r0, #0xff
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+_0223B45A:
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x10]
+ ldrb r0, [r0]
+ add r1, r0, r4
+ ldr r0, [sp, #0x10]
+ strb r1, [r0]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #8]
+ add r0, r0, r4
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r1, #0xd
+ bl SetMonData
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, #6
+ bge _0223B48C
+ b _0223B35E
+_0223B48C:
+ add r0, r7, #0
+ bl FreeMonPersonal
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223B498: .word 0x000001FE
+
+ thumb_func_start MOD11_0223B49C
+MOD11_0223B49C: ; 0x0223B49C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x158
+ add r4, r1, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ str r0, [sp, #0x20]
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230068
+ mov r7, #1
+ str r0, [sp, #0x24]
+ add r0, r7, #0
+ ldr r6, [r4, #4]
+ bl MaskOfFlagNo
+ ldr r1, _0223B7F0 ; =0x00003108
+ ldrb r1, [r6, r1]
+ tst r0, r1
+ beq _0223B4D0
+ mov r7, #3
+_0223B4D0:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0x20
+ bls _0223B4DA
+ bl _0223BFD0
+_0223B4DA:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223B4E6: ; jump table
+ .short _0223B528 - _0223B4E6 - 2 ; case 0
+ .short _0223B5E8 - _0223B4E6 - 2 ; case 1
+ .short _0223B634 - _0223B4E6 - 2 ; case 2
+ .short _0223B662 - _0223B4E6 - 2 ; case 3
+ .short _0223B68C - _0223B4E6 - 2 ; case 4
+ .short _0223B6A0 - _0223B4E6 - 2 ; case 5
+ .short _0223B6D4 - _0223B4E6 - 2 ; case 6
+ .short _0223B6F6 - _0223B4E6 - 2 ; case 7
+ .short _0223B716 - _0223B4E6 - 2 ; case 8
+ .short _0223B75C - _0223B4E6 - 2 ; case 9
+ .short _0223B77A - _0223B4E6 - 2 ; case 10
+ .short _0223B8BC - _0223B4E6 - 2 ; case 11
+ .short _0223B90A - _0223B4E6 - 2 ; case 12
+ .short _0223B990 - _0223B4E6 - 2 ; case 13
+ .short _0223B9E4 - _0223B4E6 - 2 ; case 14
+ .short _0223BA12 - _0223B4E6 - 2 ; case 15
+ .short _0223BA42 - _0223B4E6 - 2 ; case 16
+ .short _0223BAC4 - _0223B4E6 - 2 ; case 17
+ .short _0223BAEA - _0223B4E6 - 2 ; case 18
+ .short _0223BB12 - _0223B4E6 - 2 ; case 19
+ .short _0223BB6A - _0223B4E6 - 2 ; case 20
+ .short _0223BC38 - _0223B4E6 - 2 ; case 21
+ .short _0223BC7E - _0223B4E6 - 2 ; case 22
+ .short _0223BC7E - _0223B4E6 - 2 ; case 23
+ .short _0223BDD8 - _0223B4E6 - 2 ; case 24
+ .short _0223BE26 - _0223B4E6 - 2 ; case 25
+ .short _0223BE62 - _0223B4E6 - 2 ; case 26
+ .short _0223BEA6 - _0223B4E6 - 2 ; case 27
+ .short _0223BED8 - _0223B4E6 - 2 ; case 28
+ .short _0223BEF0 - _0223B4E6 - 2 ; case 29
+ .short _0223BF06 - _0223B4E6 - 2 ; case 30
+ .short _0223BF5E - _0223B4E6 - 2 ; case 31
+ .short _0223BF8E - _0223B4E6 - 2 ; case 32
+_0223B528:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ bne _0223B5A4
+ mov r0, #3
+ str r0, [sp, #0x138]
+ mov r0, #5
+ str r0, [sp, #0x134]
+ ldr r0, _0223B7F4 ; =0x00004E20
+ add r0, r7, r0
+ str r0, [sp, #0x13c]
+ ldr r0, [r4, #0x2c]
+ str r0, [sp, #0x140]
+ ldr r0, [r4]
+ bl MOD11_02230078
+ str r0, [sp, #0x14c]
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ str r0, [sp, #0x150]
+ mov r0, #1
+ str r0, [sp, #0x144]
+ mov r0, #0
+ str r0, [sp, #0x148]
+ ldr r0, [r4]
+ str r0, [sp, #0x154]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _0223B578
+ cmp r7, #1
+ bne _0223B572
+ mov r0, #0x10
+ str r0, [sp, #0x130]
+ b _0223B57C
+_0223B572:
+ mov r0, #0x11
+ str r0, [sp, #0x130]
+ b _0223B57C
+_0223B578:
+ mov r0, #0xf
+ str r0, [sp, #0x130]
+_0223B57C:
+ add r0, sp, #0x130
+ bl MOD08_02229918
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [r4, #0x28]
+ ldr r0, _0223B7F8 ; =0x0000070A
+ bl FUN_020054C8
+ ldr r2, [r4]
+ ldr r0, _0223B7FC ; =0x0000241E
+ ldrh r1, [r2, r0]
+ add r1, r1, #1
+ strh r1, [r2, r0]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_02228AB8
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B5A4:
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A80
+ cmp r0, #4
+ beq _0223B678
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ add r5, #0x88
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [r5]
+ mov r0, #1
+ str r0, [r4, #0x28]
+ ldr r0, _0223B7F8 ; =0x0000070A
+ bl FUN_020054C8
+ ldr r2, [r4]
+ ldr r0, _0223B7FC ; =0x0000241E
+ ldrh r1, [r2, r0]
+ add r1, r1, #1
+ strh r1, [r2, r0]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_02228AB8
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B5E8:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223B678
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ beq _0223B618
+ ldr r0, _0223B800 ; =0x000005E6
+ mov r1, #0x75
+ bl FUN_020054A8
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD08_02228AB8
+ mov r0, #0x19
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B618:
+ ldr r0, _0223B804 ; =0x00000708
+ mov r1, #0x75
+ bl FUN_020054A8
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD08_02228AB8
+ mov r0, #2
+ str r0, [r4, #0x28]
+ mov r0, #0x17
+ add sp, #0x158
+ str r0, [r4, #0x34]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B634:
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223B678
+ ldr r0, [r4]
+ ldr r2, [r4, #0x2c]
+ add r1, r7, #0
+ bl MOD11_02254EA8
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ bl MOD11_0223BFD8
+ str r0, [r4, #0x38]
+ cmp r0, #4
+ bge _0223B656
+ b _0223B658
+_0223B656:
+ mov r0, #3
+_0223B658:
+ str r0, [r4, #0x3c]
+ mov r0, #3
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B662:
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223B678
+ ldr r0, [r4, #4]
+ bl MOD11_02243388
+ cmp r0, #0
+ bne _0223B67C
+_0223B678:
+ bl _0223BFD0
+_0223B67C:
+ ldr r0, [r4, #8]
+ mov r1, #3
+ bl MOD08_02228AB8
+ mov r0, #4
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B68C:
+ ldr r0, [r4, #8]
+ mov r1, #3
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223B78E
+ mov r0, #5
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B6A0:
+ ldr r0, [r4, #0x3c]
+ cmp r0, #0
+ bne _0223B6C0
+ ldr r0, [r4, #0x38]
+ cmp r0, #4
+ bne _0223B6B8
+ mov r0, #7
+ str r0, [r4, #0x28]
+ mov r0, #0xc
+ add sp, #0x158
+ str r0, [r4, #0x34]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B6B8:
+ mov r0, #0x1c
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B6C0:
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl MOD08_02228AB8
+ mov r0, #6
+ str r0, [r4, #0x28]
+ mov r0, #0xc
+ add sp, #0x158
+ str r0, [r4, #0x34]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B6D4:
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223B78E
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223B78E
+ ldr r0, [r4, #0x3c]
+ add sp, #0x158
+ sub r0, r0, #1
+ str r0, [r4, #0x3c]
+ mov r0, #5
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B6F6:
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223B78E
+ ldr r0, [r4, #8]
+ mov r1, #6
+ bl MOD08_02228AB8
+ ldr r0, _0223B808 ; =0x00000709
+ mov r1, #0x75
+ bl FUN_020054A8
+ mov r0, #8
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B716:
+ ldr r0, [r4, #8]
+ mov r1, #6
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223B78E
+ ldr r1, _0223B80C ; =0x00000363
+ add r0, sp, #0x10c
+ strh r1, [r0, #2]
+ mov r1, #0x82
+ strb r1, [r0, #1]
+ str r7, [sp, #0x110]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x20]
+ add r2, sp, #0x10c
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ mov r0, #9
+ str r0, [r4, #0x28]
+ ldr r0, _0223B810 ; =0x00000467
+ bl FUN_0200521C
+ ldr r0, [r4]
+ mov r1, #2
+ bl MOD11_02231484
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B75C:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223B78E
+ mov r0, #0xa
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #8]
+ mov r1, #7
+ bl MOD08_02228AB8
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B77A:
+ ldr r0, [r4, #8]
+ mov r1, #7
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223B78E
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ beq _0223B792
+_0223B78E:
+ bl _0223BFD0
+_0223B792:
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_022314D4
+ ldr r2, [r4, #4]
+ ldr r0, [r4]
+ add r3, r2, r7
+ ldr r2, _0223B814 ; =0x0000219C
+ add r1, r7, #0
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #6
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _0223B83C
+ ldr r2, [r4, #4]
+ ldr r0, [r4]
+ add r3, r2, r7
+ ldr r2, _0223B814 ; =0x0000219C
+ add r1, r7, #0
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ add r2, r0, #0
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ bl MOD11_0224AD38
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223B818 ; =0x0000FFFF
+ b _0223B81C
+ nop
+_0223B7F0: .word 0x00003108
+_0223B7F4: .word 0x00004E20
+_0223B7F8: .word 0x0000070A
+_0223B7FC: .word 0x0000241E
+_0223B800: .word 0x000005E6
+_0223B804: .word 0x00000708
+_0223B808: .word 0x00000709
+_0223B80C: .word 0x00000363
+_0223B810: .word 0x00000467
+_0223B814: .word 0x0000219C
+_0223B818: .word 0x0000FFFF
+_0223B81C:
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ mov r2, #0x10
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02007E98
+ mov r0, #0x20
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B83C:
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231668
+ cmp r0, #0
+ beq _0223B88A
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223BBD4 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #5
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ mov r2, #0x10
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02007E98
+ mov r0, #0x10
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B88A:
+ ldr r1, _0223BBD8 ; =0x00000367
+ add r0, sp, #0xe8
+ strh r1, [r0, #2]
+ mov r1, #0x82
+ strb r1, [r0, #1]
+ str r7, [sp, #0xec]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x20]
+ add r2, sp, #0xe8
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ mov r0, #0xb
+ str r0, [r4, #0x28]
+ ldr r0, [r4]
+ bl MOD11_0223129C
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B8BC:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223B914
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223B914
+ mov r0, #0xc
+ str r0, [r4, #0x28]
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223BBD4 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #5
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ str r1, [sp]
+ mov r2, #0x10
+ add r3, r1, #0
+ bl FUN_02007E98
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B90A:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _0223B916
+_0223B914:
+ b _0223BFD0
+_0223B916:
+ ldr r0, [r4, #8]
+ bl MOD08_02229A2C
+ ldr r0, [sp, #0x24]
+ bl FUN_02007540
+ ldr r0, [r4]
+ bl MOD11_0222D944
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_02230088
+ mov r1, #0
+ bl MOD11_022583C8
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_02230088
+ mov r1, #0
+ bl MOD11_022583C8
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ str r0, [sp, #0xd0]
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ str r0, [sp, #0xd4]
+ ldr r0, [sp, #0x24]
+ add r1, r7, #0
+ str r0, [sp, #0xd8]
+ mov r0, #5
+ str r0, [sp, #0xdc]
+ ldr r2, [r4, #4]
+ ldr r0, [r4]
+ add r3, r2, r7
+ ldr r2, _0223BBDC ; =0x0000219C
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ str r0, [sp, #0xe0]
+ ldr r0, [r4]
+ bl MOD11_022300D0
+ bl FUN_0206BB34
+ str r0, [sp, #0xe4]
+ bl FUN_0201D658
+ str r0, [r4, #0x54]
+ add r0, sp, #0xd0
+ bl MOD16_021EEF0C
+ str r0, [r4, #0x50]
+ mov r0, #0xd
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B990:
+ ldr r0, [r4, #0x50]
+ bl MOD16_021EEF84
+ cmp r0, #0
+ beq _0223BA4C
+ ldr r0, _0223BBE0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _0223B9AA
+ mov r0, #0xe
+ str r0, [r4, #0x28]
+ b _0223B9BC
+_0223B9AA:
+ bl FUN_02020AA4
+ cmp r0, #0
+ beq _0223B9BC
+ ldr r0, _0223BBE4 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xe
+ str r0, [r4, #0x28]
+_0223B9BC:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0xe
+ bne _0223BA4C
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223BBD4 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #5
+ mov r3, #1
+ bl FUN_02003210
+ ldr r0, [r4, #0x50]
+ mov r1, #0
+ bl MOD05_021EEF9C
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B9E4:
+ ldr r0, [r4, #0x50]
+ bl MOD16_021EEF98
+ add r5, r0, #0
+ mov r1, #0
+ mov r2, #4
+ bl FUN_020079E0
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200782C
+ cmp r0, #0x80
+ blt _0223BA4C
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #0x80
+ bl FUN_02007558
+ mov r0, #0xf
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BA12:
+ ldr r0, [r4, #0x50]
+ bl MOD05_021EEF68
+ ldr r0, [r4, #0x54]
+ bl FUN_0201D674
+ ldr r0, [r4]
+ bl MOD11_0222D980
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, _0223BBD4 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #5
+ mov r3, #1
+ bl FUN_02003210
+ mov r0, #0x11
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BA42:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _0223BA4E
+_0223BA4C:
+ b _0223BFD0
+_0223BA4E:
+ ldr r2, [r4, #4]
+ ldr r0, [r4]
+ add r3, r2, r7
+ ldr r2, _0223BBDC ; =0x0000219C
+ add r1, r7, #0
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ add r6, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_02229A2C
+ ldr r0, [sp, #0x24]
+ bl FUN_02007540
+ ldr r0, [r4]
+ bl MOD11_0222D944
+ ldr r0, [r4]
+ bl MOD11_0222D980
+ add r0, sp, #0xc0
+ add r1, r6, #0
+ mov r2, #2
+ bl FUN_02068B68
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x24]
+ add r1, sp, #0xc0
+ mov r2, #0x80
+ mov r3, #0x48
+ bl FUN_020073A0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, _0223BBD4 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #5
+ mov r3, #1
+ bl FUN_02003210
+ mov r2, #0
+ ldr r0, [sp, #0x24]
+ mov r1, #0x10
+ add r3, r2, #0
+ str r2, [sp]
+ bl FUN_02007E98
+ mov r0, #0x11
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BAC4:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0223BB74
+ mov r0, #0x12
+ str r0, [r4, #0x28]
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #0
+ bl FUN_020143A8
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_020038F0
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BAEA:
+ ldr r1, [r4, #4]
+ mov r0, #5
+ str r0, [sp]
+ mov r2, #0
+ ldr r0, _0223BBDC ; =0x0000219C
+ str r2, [sp, #4]
+ add r3, r1, r7
+ ldrb r0, [r3, r0]
+ mov r3, #0xd9
+ lsl r3, r3, #2
+ orr r0, r7
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ bl MOD11_02255980
+ ldr r0, [r4, #0x28]
+ add sp, #0x158
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BB12:
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223BB74
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223BB32
+ mov r0, #0x16
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BB32:
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223BBD4 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ mov r2, #0x10
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02007E98
+ mov r0, #0x14
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BB6A:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _0223BB76
+_0223BB74:
+ b _0223BFD0
+_0223BB76:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ ldr r2, [r4, #4]
+ ldr r0, [r4]
+ add r3, r2, r7
+ ldr r2, _0223BBDC ; =0x0000219C
+ add r1, r7, #0
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230E18
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #1
+ add r2, r5, #0
+ mov r3, #0xa
+ bl FUN_02077A84
+ add r5, r0, #0
+ str r5, [r4, #0x54]
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_0222FFC8
+ cmp r0, #6
+ bge _0223BBCA
+ mov r0, #0
+ b _0223BBEE
+_0223BBCA:
+ ldr r0, [r4]
+ bl MOD11_02231280
+ ldr r1, _0223BBE8 ; =0x00000496
+ b _0223BBEC
+ .align 2, 0
+_0223BBD4: .word 0x0000FFFF
+_0223BBD8: .word 0x00000367
+_0223BBDC: .word 0x0000219C
+_0223BBE0: .word 0x021C48B8
+_0223BBE4: .word 0x000005DC
+_0223BBE8: .word 0x00000496
+_0223BBEC:
+ add r0, r0, r1
+_0223BBEE:
+ str r0, [r5, #0x44]
+ add r0, r6, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl GetMonData
+ str r0, [r5, #8]
+ ldr r0, [r4]
+ bl MOD11_02230290
+ str r0, [r5, #0x48]
+ add r0, r6, #0
+ mov r1, #0x6f
+ mov r2, #0
+ bl GetMonData
+ str r0, [r5, #0x10]
+ ldr r0, _0223BF18 ; =0x020FA5FC
+ add r1, r5, #0
+ mov r2, #5
+ bl FUN_02006234
+ str r0, [r4, #0x50]
+ mov r0, #0x15
+ str r0, [r4, #0x28]
+ ldr r0, [r4]
+ bl MOD11_02231438
+ ldr r0, [r4]
+ bl MOD11_0222D840
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_02231338
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BC38:
+ ldr r0, [r4, #0x50]
+ bl FUN_02006290
+ cmp r0, #0
+ beq _0223BC88
+ ldr r2, [r4, #4]
+ ldr r5, [r4, #0x54]
+ add r3, r2, r7
+ ldr r2, _0223BF1C ; =0x0000219C
+ ldr r0, [r4]
+ ldrb r2, [r3, r2]
+ add r1, r7, #0
+ bl MOD11_02230014
+ ldr r1, [r5, #0x14]
+ cmp r1, #0
+ bne _0223BC62
+ ldr r2, [r5, #0x18]
+ mov r1, #0x77
+ bl SetMonData
+_0223BC62:
+ add r0, r5, #0
+ bl FUN_02077AC4
+ ldr r0, [r4, #0x50]
+ bl FUN_02006260
+ ldr r0, [r4]
+ mov r1, #2
+ bl MOD11_02231338
+ mov r0, #0x17
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BC7E:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _0223BC8A
+_0223BC88:
+ b _0223BFD0
+_0223BC8A:
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_0222FF88
+ ldr r2, [r4, #4]
+ str r0, [sp, #0x28]
+ add r3, r2, r7
+ ldr r2, _0223BF1C ; =0x0000219C
+ ldr r0, [r4]
+ ldrb r2, [r3, r2]
+ add r1, r7, #0
+ bl MOD11_02230014
+ add r6, r0, #0
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_02231628
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r6, #0
+ bl MOD11_0224AD38
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD11_02230F88
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD11_02230FA8
+ mov r1, #0
+ ldr r0, [r4]
+ add r2, r1, #0
+ mov r3, #9
+ bl MOD11_022564A8
+ ldr r0, [sp, #0x28]
+ add r1, r6, #0
+ bl FUN_0206B900
+ cmp r0, #1
+ bne _0223BD1E
+ ldr r0, [r4, #0x28]
+ cmp r0, #0x16
+ bne _0223BD16
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223BF20 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ mov r2, #0x10
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02007E98
+_0223BD16:
+ mov r0, #0x20
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BD1E:
+ ldr r0, [r4]
+ bl MOD11_02230290
+ str r0, [sp, #0x1c]
+ bl FUN_0206B330
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ bl FUN_0206B334
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x14]
+ bl FUN_0206B428
+ mov r5, #0
+_0223BD3E:
+ add r1, r5, #0
+ add r0, r6, #0
+ add r1, #0x42
+ mov r2, #0
+ bl GetMonData
+ add r1, r5, #0
+ str r0, [sp, #0x2c]
+ add r0, r6, #0
+ add r1, #0x3a
+ add r2, sp, #0x2c
+ bl SetMonData
+ add r5, r5, #1
+ cmp r5, #4
+ blt _0223BD3E
+ add r0, r6, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x14]
+ bl FUN_0206B244
+ ldr r0, [r4, #0x28]
+ cmp r0, #0x16
+ bne _0223BDD0
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ cmp r1, r0
+ ldr r0, [r4]
+ bne _0223BD96
+ bl MOD11_02231280
+ ldr r1, _0223BF24 ; =0x00000496
+ add r1, r0, r1
+ add r0, sp, #0x9c
+ strh r1, [r0, #2]
+ mov r1, #0x93
+ strb r1, [r0, #1]
+ ldr r0, [sp, #0x18]
+ str r7, [sp, #0xa0]
+ str r0, [sp, #0xa4]
+ b _0223BDB0
+_0223BD96:
+ bl MOD11_02231280
+ ldr r1, _0223BF28 ; =0x00000498
+ add r1, r0, r1
+ add r0, sp, #0x9c
+ strh r1, [r0, #2]
+ mov r1, #0xaf
+ strb r1, [r0, #1]
+ ldr r0, [sp, #0x18]
+ str r7, [sp, #0xa0]
+ str r0, [sp, #0xa4]
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #0xa8]
+_0223BDB0:
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x20]
+ add r2, sp, #0x9c
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ mov r0, #0x18
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BDD0:
+ mov r0, #0x20
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BDD8:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223BEBC
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223BEBC
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223BF20 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ mov r2, #0x10
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02007E98
+ mov r0, #0x20
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BE26:
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223BEBC
+ ldr r0, [r4, #8]
+ bl MOD08_02229A2C
+ ldr r1, _0223BF2C ; =0x0000035B
+ add r0, sp, #0x78
+ strh r1, [r0, #2]
+ mov r1, #0
+ strb r1, [r0, #1]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x20]
+ add r2, sp, #0x78
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ mov r0, #0x1a
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BE62:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223BEBC
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223BEBC
+ mov r1, #0xd7
+ lsl r1, r1, #2
+ add r0, sp, #0x2c
+ strh r1, [r0, #0x2a]
+ mov r1, #0
+ add r0, sp, #0x54
+ strb r1, [r0, #1]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x20]
+ add r2, sp, #0x54
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ mov r0, #0x1b
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BEA6:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223BEBC
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ beq _0223BEBE
+_0223BEBC:
+ b _0223BFD0
+_0223BEBE:
+ mov r0, #0x5e
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #2
+ str r2, [r1, r0]
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [sp, #0x10]
+ bl FUN_0200CAB4
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BED8:
+ ldr r0, [r4]
+ ldr r2, [r4, #0x2c]
+ add r1, r7, #0
+ mov r3, #1
+ bl MOD11_02254B40
+ mov r0, #0x1d
+ str r0, [r4, #0x28]
+ mov r0, #2
+ add sp, #0x158
+ str r0, [r4, #0x34]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BEF0:
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223BFD0
+ ldr r0, [r4, #8]
+ bl MOD08_02229A2C
+ mov r0, #0x1e
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BF06:
+ add r0, r6, #0
+ bl MOD11_02243388
+ cmp r0, #0
+ beq _0223BFD0
+ ldr r1, [r4, #0x38]
+ ldr r0, _0223BF30 ; =0x0000035F
+ b _0223BF34
+ nop
+_0223BF18: .word 0x020FA5FC
+_0223BF1C: .word 0x0000219C
+_0223BF20: .word 0x0000FFFF
+_0223BF24: .word 0x00000496
+_0223BF28: .word 0x00000498
+_0223BF2C: .word 0x0000035B
+_0223BF30: .word 0x0000035F
+_0223BF34:
+ add r1, r1, r0
+ add r0, sp, #0x2c
+ strh r1, [r0, #6]
+ mov r1, #0
+ strb r1, [r0, #5]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x20]
+ add r2, sp, #0x30
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ mov r0, #0x1f
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BF5E:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223BFD0
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223BFD0
+ mov r0, #0x5e
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #2
+ str r2, [r1, r0]
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [sp, #0x10]
+ bl FUN_0200CAB4
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BF8E:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0223BFD0
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #6
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _0223BFB2
+ ldr r0, [r4, #8]
+ bl MOD08_02229A2C
+ ldr r0, [sp, #0x24]
+ bl FUN_02007540
+_0223BFB2:
+ ldr r1, [r4]
+ ldr r0, _0223BFD4 ; =0x0000241C
+ mov r2, #4
+ strb r2, [r1, r0]
+ mov r0, #0x5e
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #2
+ str r2, [r1, r0]
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [sp, #0x10]
+ bl FUN_0200CAB4
+_0223BFD0:
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223BFD4: .word 0x0000241C
+
+ thumb_func_start MOD11_0223BFD8
+MOD11_0223BFD8: ; 0x0223BFD8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r4, r1, #0
+ bl MOD11_0222FF74
+ mov r1, #6
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _0223BFEE
+ mov r0, #4
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BFEE:
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, #0x6c]
+ cmp r0, #5
+ bne _0223C026
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r1, r0]
+ mov r1, #8
+ bl GetMonBaseStat
+ ldr r1, _0223C200 ; =0x0000311C
+ ldr r2, _0223C204 ; =0x0225DCF0
+ ldrb r1, [r4, r1]
+ lsl r1, r1, #1
+ ldrb r2, [r2, r1]
+ mul r2, r0
+ add r0, r2, #0
+ ldr r2, _0223C208 ; =0x0225DCF1
+ ldrb r1, [r2, r1]
+ bl _u32_div_f
+ str r0, [sp]
+ b _0223C03A
+_0223C026:
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r1, r0]
+ mov r1, #8
+ bl GetMonBaseStat
+ str r0, [sp]
+_0223C03A:
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ mov r5, #0xa
+ bl MOD11_02243420
+ add r7, r0, #0
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ add r1, r0, #0
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ ldr r2, [r4, r0]
+ cmp r2, #5
+ ble _0223C128
+ cmp r2, #0xf
+ bhi _0223C12E
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0223C072: ; jump table
+ .short _0223C12E - _0223C072 - 2 ; case 0
+ .short _0223C12E - _0223C072 - 2 ; case 1
+ .short _0223C12E - _0223C072 - 2 ; case 2
+ .short _0223C12E - _0223C072 - 2 ; case 3
+ .short _0223C12E - _0223C072 - 2 ; case 4
+ .short _0223C12E - _0223C072 - 2 ; case 5
+ .short _0223C092 - _0223C072 - 2 ; case 6
+ .short _0223C0A6 - _0223C072 - 2 ; case 7
+ .short _0223C0B4 - _0223C072 - 2 ; case 8
+ .short _0223C0D0 - _0223C072 - 2 ; case 9
+ .short _0223C0EC - _0223C072 - 2 ; case 10
+ .short _0223C12E - _0223C072 - 2 ; case 11
+ .short _0223C12E - _0223C072 - 2 ; case 12
+ .short _0223C0FA - _0223C072 - 2 ; case 13
+ .short _0223C12E - _0223C072 - 2 ; case 14
+ .short _0223C11C - _0223C072 - 2 ; case 15
+_0223C092:
+ cmp r7, #0xb
+ beq _0223C0A2
+ cmp r1, #0xb
+ beq _0223C0A2
+ cmp r7, #6
+ beq _0223C0A2
+ cmp r1, #6
+ bne _0223C12E
+_0223C0A2:
+ mov r5, #0x1e
+ b _0223C12E
+_0223C0A6:
+ add r0, r6, #0
+ bl MOD11_02230294
+ cmp r0, #7
+ bne _0223C12E
+ mov r5, #0x23
+ b _0223C12E
+_0223C0B4:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0223C20C ; =0x00002D74
+ ldrb r1, [r1, r0]
+ cmp r1, #0x28
+ bhs _0223C12E
+ mov r0, #0x28
+ sub r5, r0, r1
+ cmp r5, #0xa
+ bhs _0223C12E
+ mov r5, #0xa
+ b _0223C12E
+_0223C0D0:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ ldrh r1, [r2, r1]
+ add r0, r6, #0
+ bl MOD11_02231668
+ cmp r0, #1
+ bne _0223C12E
+ mov r5, #0x1e
+ b _0223C12E
+_0223C0EC:
+ add r0, #0x28
+ ldr r5, [r4, r0]
+ add r5, #0xa
+ cmp r5, #0x28
+ bls _0223C12E
+ mov r5, #0x28
+ b _0223C12E
+_0223C0FA:
+ add r0, r6, #0
+ bl MOD11_02230C5C
+ cmp r0, #3
+ beq _0223C118
+ add r0, r6, #0
+ bl MOD11_02230C5C
+ cmp r0, #4
+ beq _0223C118
+ add r0, r6, #0
+ bl MOD11_02230294
+ cmp r0, #5
+ bne _0223C12E
+_0223C118:
+ mov r5, #0x23
+ b _0223C12E
+_0223C11C:
+ add r0, #0x28
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bge _0223C12E
+ mov r5, #0x28
+ b _0223C12E
+_0223C128:
+ ldr r0, _0223C210 ; =0x0225DC28
+ sub r1, r2, #2
+ ldrb r5, [r0, r1]
+_0223C12E:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ add r6, r1, #0
+ mul r6, r0
+ ldr r0, _0223C214 ; =0x00002D90
+ add r1, r4, r6
+ ldr r1, [r1, r0]
+ lsl r0, r1, #1
+ add r7, r1, r0
+ ldr r1, [sp]
+ add r0, r1, #0
+ mul r0, r5
+ mov r1, #0xa
+ bl _u32_div_f
+ ldr r1, _0223C218 ; =0x00002D8C
+ add r2, r4, r6
+ ldr r1, [r2, r1]
+ lsl r1, r1, #1
+ sub r1, r7, r1
+ mul r1, r0
+ add r0, r1, #0
+ add r1, r7, #0
+ bl _u32_div_f
+ add r1, r0, #0
+ ldr r0, _0223C21C ; =0x00002DAC
+ add r2, r4, r6
+ ldr r2, [r2, r0]
+ mov r0, #0x27
+ tst r0, r2
+ beq _0223C170
+ lsl r1, r1, #1
+_0223C170:
+ mov r0, #0xd8
+ tst r0, r2
+ beq _0223C182
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _u32_div_f
+ add r1, r0, #0
+_0223C182:
+ cmp r1, #0xff
+ blo _0223C18A
+ mov r5, #4
+ b _0223C1FA
+_0223C18A:
+ ldr r0, _0223C220 ; =0x040002B0
+ mov r2, #0
+ strh r2, [r0]
+ mov r0, #0xff
+ lsl r0, r0, #0x10
+ bl _u32_div_f
+ ldr r1, _0223C224 ; =0x040002B8
+ add r2, r1, #0
+ str r0, [r1]
+ sub r2, #8
+ lsr r0, r1, #0xb
+_0223C1A2:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _0223C1A2
+ ldr r3, _0223C220 ; =0x040002B0
+ lsr r0, r3, #0xb
+_0223C1AC:
+ ldrh r1, [r3]
+ tst r1, r0
+ bne _0223C1AC
+ ldr r2, _0223C228 ; =0x040002B4
+ mov r0, #0
+ ldr r1, [r2]
+ strh r0, [r3]
+ mov r0, #2
+ str r1, [r2, #4]
+ sub r2, r2, #4
+ lsl r0, r0, #0xe
+_0223C1C2:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _0223C1C2
+ ldr r2, _0223C220 ; =0x040002B0
+ lsr r0, r2, #0xb
+_0223C1CC:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _0223C1CC
+ ldr r1, _0223C228 ; =0x040002B4
+ ldr r0, _0223C22C ; =0x000FFFF0
+ ldr r1, [r1]
+ bl _u32_div_f
+ add r6, r0, #0
+ mov r5, #0
+_0223C1E0:
+ bl LCRandom
+ cmp r0, r6
+ bhs _0223C1EE
+ add r5, r5, #1
+ cmp r5, #4
+ blt _0223C1E0
+_0223C1EE:
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0223C1FA
+ mov r5, #4
+_0223C1FA:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223C200: .word 0x0000311C
+_0223C204: .word 0x0225DCF0
+_0223C208: .word 0x0225DCF1
+_0223C20C: .word 0x00002D74
+_0223C210: .word 0x0225DC28
+_0223C214: .word 0x00002D90
+_0223C218: .word 0x00002D8C
+_0223C21C: .word 0x00002DAC
+_0223C220: .word 0x040002B0
+_0223C224: .word 0x040002B8
+_0223C228: .word 0x040002B4
+_0223C22C: .word 0x000FFFF0
+
+ thumb_func_start MOD11_0223C230
+MOD11_0223C230: ; 0x0223C230
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r6, r1, #0
+ cmp r2, #0x16
+ bgt _0223C27A
+ cmp r2, #0
+ blt _0223C280
+ add r1, r2, r2
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223C24C: ; jump table
+ .short _0223C280 - _0223C24C - 2 ; case 0
+ .short _0223C280 - _0223C24C - 2 ; case 1
+ .short _0223C284 - _0223C24C - 2 ; case 2
+ .short _0223C320 - _0223C24C - 2 ; case 3
+ .short _0223C29C - _0223C24C - 2 ; case 4
+ .short _0223C288 - _0223C24C - 2 ; case 5
+ .short _0223C28C - _0223C24C - 2 ; case 6
+ .short _0223C290 - _0223C24C - 2 ; case 7
+ .short _0223C296 - _0223C24C - 2 ; case 8
+ .short _0223C346 - _0223C24C - 2 ; case 9
+ .short _0223C2C2 - _0223C24C - 2 ; case 10
+ .short _0223C36E - _0223C24C - 2 ; case 11
+ .short _0223C2EA - _0223C24C - 2 ; case 12
+ .short _0223C280 - _0223C24C - 2 ; case 13
+ .short _0223C3A4 - _0223C24C - 2 ; case 14
+ .short _0223C3AC - _0223C24C - 2 ; case 15
+ .short _0223C3B4 - _0223C24C - 2 ; case 16
+ .short _0223C3F0 - _0223C24C - 2 ; case 17
+ .short _0223C280 - _0223C24C - 2 ; case 18
+ .short _0223C42C - _0223C24C - 2 ; case 19
+ .short _0223C456 - _0223C24C - 2 ; case 20
+ .short _0223C480 - _0223C24C - 2 ; case 21
+ .short _0223C28C - _0223C24C - 2 ; case 22
+_0223C27A:
+ cmp r2, #0xff
+ bne _0223C280
+ b _0223C480
+_0223C280:
+ ldr r5, [r6, #0x64]
+ b _0223C486
+_0223C284:
+ ldr r5, [r6, #0x6c]
+ b _0223C486
+_0223C288:
+ ldr r5, [r6, #0x74]
+ b _0223C486
+_0223C28C:
+ ldr r5, [r6, #0x78]
+ b _0223C486
+_0223C290:
+ add r6, #0x94
+ ldr r5, [r6]
+ b _0223C486
+_0223C296:
+ add r6, #0x80
+ ldr r5, [r6]
+ b _0223C486
+_0223C29C:
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ mov r5, #0
+ cmp r6, #0
+ ble _0223C2C0
+ mov r7, #1
+_0223C2AA:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _0223C48C ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ bne _0223C2C0
+ add r5, r5, #1
+ cmp r5, r6
+ blt _0223C2AA
+_0223C2C0:
+ b _0223C486
+_0223C2C2:
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ mov r5, #0
+ cmp r6, #0
+ ble _0223C2E8
+ ldr r7, _0223C48C ; =0x00000195
+_0223C2D0:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #3
+ beq _0223C2E8
+ cmp r0, #1
+ beq _0223C2E8
+ add r5, r5, #1
+ cmp r5, r6
+ blt _0223C2D0
+_0223C2E8:
+ b _0223C486
+_0223C2EA:
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _0223C2F8
+ mov r6, #5
+ b _0223C2FA
+_0223C2F8:
+ mov r6, #1
+_0223C2FA:
+ add r0, r4, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ mov r5, #0
+ cmp r7, #0
+ ble _0223C31E
+_0223C308:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _0223C48C ; =0x00000195
+ ldrb r0, [r0, r1]
+ cmp r0, r6
+ beq _0223C31E
+ add r5, r5, #1
+ cmp r5, r7
+ blt _0223C308
+_0223C31E:
+ b _0223C486
+_0223C320:
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ mov r5, #0
+ cmp r6, #0
+ ble _0223C344
+ mov r7, #1
+_0223C32E:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _0223C48C ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _0223C344
+ add r5, r5, #1
+ cmp r5, r6
+ blt _0223C32E
+_0223C344:
+ b _0223C486
+_0223C346:
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ mov r5, #0
+ cmp r6, #0
+ ble _0223C36C
+ ldr r7, _0223C48C ; =0x00000195
+_0223C354:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #2
+ beq _0223C36C
+ cmp r0, #0
+ beq _0223C36C
+ add r5, r5, #1
+ cmp r5, r6
+ blt _0223C354
+_0223C36C:
+ b _0223C486
+_0223C36E:
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _0223C37C
+ mov r6, #4
+ b _0223C37E
+_0223C37C:
+ mov r6, #0
+_0223C37E:
+ add r0, r4, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ mov r5, #0
+ cmp r7, #0
+ ble _0223C486
+_0223C38C:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _0223C48C ; =0x00000195
+ ldrb r0, [r0, r1]
+ cmp r0, r6
+ beq _0223C486
+ add r5, r5, #1
+ cmp r5, r7
+ blt _0223C38C
+ b _0223C486
+_0223C3A4:
+ mov r0, #0x47
+ lsl r0, r0, #2
+ ldr r5, [r6, r0]
+ b _0223C486
+_0223C3AC:
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r5, [r6, r0]
+ b _0223C486
+_0223C3B4:
+ bl MOD11_0222FF84
+ mov r5, #0
+ str r0, [sp, #4]
+ cmp r0, #0
+ ble _0223C3E6
+_0223C3C0:
+ ldr r7, [r6, #0x64]
+ cmp r5, r7
+ beq _0223C3DE
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_02230270
+ ldr r1, [sp, #8]
+ cmp r1, r0
+ beq _0223C3E6
+_0223C3DE:
+ ldr r0, [sp, #4]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _0223C3C0
+_0223C3E6:
+ ldr r0, [sp, #4]
+ cmp r5, r0
+ bne _0223C486
+ mov r5, #0
+ b _0223C486
+_0223C3F0:
+ bl MOD11_0222FF84
+ mov r5, #0
+ str r0, [sp]
+ cmp r0, #0
+ ble _0223C422
+_0223C3FC:
+ ldr r7, [r6, #0x6c]
+ cmp r5, r7
+ beq _0223C41A
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_02230270
+ ldr r1, [sp, #0xc]
+ cmp r1, r0
+ beq _0223C422
+_0223C41A:
+ ldr r0, [sp]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _0223C3FC
+_0223C422:
+ ldr r0, [sp]
+ cmp r5, r0
+ bne _0223C486
+ mov r5, #0
+ b _0223C486
+_0223C42C:
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ mov r5, #0
+ cmp r7, #0
+ ble _0223C486
+_0223C442:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ cmp r6, r0
+ bne _0223C486
+ add r5, r5, #1
+ cmp r5, r7
+ blt _0223C442
+ b _0223C486
+_0223C456:
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ mov r5, #0
+ cmp r7, #0
+ ble _0223C486
+_0223C46C:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ cmp r6, r0
+ bne _0223C486
+ add r5, r5, #1
+ cmp r5, r7
+ blt _0223C46C
+ b _0223C486
+_0223C480:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r5, [r6, r0]
+_0223C486:
+ add r0, r5, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223C48C: .word 0x00000195
+
+ thumb_func_start MOD11_0223C490
+MOD11_0223C490: ; 0x0223C490
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r4, r1, #0
+ mov r6, #0
+ bl MOD11_0223A404
+ str r0, [r4]
+ add r0, r7, #0
+ bl MOD11_0223A404
+ str r0, [r4, #4]
+ cmp r0, #0x3c
+ bhi _0223C544
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223C4B6: ; jump table
+ .short _0223C530 - _0223C4B6 - 2 ; case 0
+ .short _0223C532 - _0223C4B6 - 2 ; case 1
+ .short _0223C532 - _0223C4B6 - 2 ; case 2
+ .short _0223C532 - _0223C4B6 - 2 ; case 3
+ .short _0223C532 - _0223C4B6 - 2 ; case 4
+ .short _0223C532 - _0223C4B6 - 2 ; case 5
+ .short _0223C532 - _0223C4B6 - 2 ; case 6
+ .short _0223C532 - _0223C4B6 - 2 ; case 7
+ .short _0223C532 - _0223C4B6 - 2 ; case 8
+ .short _0223C536 - _0223C4B6 - 2 ; case 9
+ .short _0223C536 - _0223C4B6 - 2 ; case 10
+ .short _0223C536 - _0223C4B6 - 2 ; case 11
+ .short _0223C536 - _0223C4B6 - 2 ; case 12
+ .short _0223C536 - _0223C4B6 - 2 ; case 13
+ .short _0223C536 - _0223C4B6 - 2 ; case 14
+ .short _0223C536 - _0223C4B6 - 2 ; case 15
+ .short _0223C536 - _0223C4B6 - 2 ; case 16
+ .short _0223C536 - _0223C4B6 - 2 ; case 17
+ .short _0223C536 - _0223C4B6 - 2 ; case 18
+ .short _0223C536 - _0223C4B6 - 2 ; case 19
+ .short _0223C536 - _0223C4B6 - 2 ; case 20
+ .short _0223C536 - _0223C4B6 - 2 ; case 21
+ .short _0223C536 - _0223C4B6 - 2 ; case 22
+ .short _0223C536 - _0223C4B6 - 2 ; case 23
+ .short _0223C536 - _0223C4B6 - 2 ; case 24
+ .short _0223C536 - _0223C4B6 - 2 ; case 25
+ .short _0223C536 - _0223C4B6 - 2 ; case 26
+ .short _0223C536 - _0223C4B6 - 2 ; case 27
+ .short _0223C536 - _0223C4B6 - 2 ; case 28
+ .short _0223C536 - _0223C4B6 - 2 ; case 29
+ .short _0223C536 - _0223C4B6 - 2 ; case 30
+ .short _0223C53A - _0223C4B6 - 2 ; case 31
+ .short _0223C53A - _0223C4B6 - 2 ; case 32
+ .short _0223C53A - _0223C4B6 - 2 ; case 33
+ .short _0223C53A - _0223C4B6 - 2 ; case 34
+ .short _0223C53A - _0223C4B6 - 2 ; case 35
+ .short _0223C53A - _0223C4B6 - 2 ; case 36
+ .short _0223C53A - _0223C4B6 - 2 ; case 37
+ .short _0223C53A - _0223C4B6 - 2 ; case 38
+ .short _0223C53A - _0223C4B6 - 2 ; case 39
+ .short _0223C53A - _0223C4B6 - 2 ; case 40
+ .short _0223C53A - _0223C4B6 - 2 ; case 41
+ .short _0223C53A - _0223C4B6 - 2 ; case 42
+ .short _0223C53A - _0223C4B6 - 2 ; case 43
+ .short _0223C53A - _0223C4B6 - 2 ; case 44
+ .short _0223C53A - _0223C4B6 - 2 ; case 45
+ .short _0223C53A - _0223C4B6 - 2 ; case 46
+ .short _0223C53A - _0223C4B6 - 2 ; case 47
+ .short _0223C53A - _0223C4B6 - 2 ; case 48
+ .short _0223C53A - _0223C4B6 - 2 ; case 49
+ .short _0223C53A - _0223C4B6 - 2 ; case 50
+ .short _0223C53A - _0223C4B6 - 2 ; case 51
+ .short _0223C53E - _0223C4B6 - 2 ; case 52
+ .short _0223C53E - _0223C4B6 - 2 ; case 53
+ .short _0223C53E - _0223C4B6 - 2 ; case 54
+ .short _0223C53E - _0223C4B6 - 2 ; case 55
+ .short _0223C53E - _0223C4B6 - 2 ; case 56
+ .short _0223C53E - _0223C4B6 - 2 ; case 57
+ .short _0223C53E - _0223C4B6 - 2 ; case 58
+ .short _0223C53E - _0223C4B6 - 2 ; case 59
+ .short _0223C542 - _0223C4B6 - 2 ; case 60
+_0223C530:
+ b _0223C544
+_0223C532:
+ mov r6, #1
+ b _0223C544
+_0223C536:
+ mov r6, #2
+ b _0223C544
+_0223C53A:
+ mov r6, #3
+ b _0223C544
+_0223C53E:
+ mov r6, #4
+ b _0223C544
+_0223C542:
+ mov r6, #6
+_0223C544:
+ mov r5, #0
+ cmp r6, #0
+ ble _0223C55A
+_0223C54A:
+ add r0, r7, #0
+ bl MOD11_0223A404
+ str r0, [r4, #8]
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, r6
+ blt _0223C54A
+_0223C55A:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0223C55C
+MOD11_0223C55C: ; 0x0223C55C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r2, #0
+ ldr r2, [r4]
+ add r5, r3, #0
+ strh r2, [r5, #2]
+ ldr r2, [r4, #4]
+ add r7, r0, #0
+ strb r2, [r5, #1]
+ ldrb r2, [r5, #1]
+ add r6, r1, #0
+ cmp r2, #0x3c
+ bls _0223C576
+ b _0223CC58
+_0223C576:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0223C582: ; jump table
+ .short _0223CC58 - _0223C582 - 2 ; case 0
+ .short _0223C5FC - _0223C582 - 2 ; case 1
+ .short _0223C606 - _0223C582 - 2 ; case 2
+ .short _0223C610 - _0223C582 - 2 ; case 3
+ .short _0223C61C - _0223C582 - 2 ; case 4
+ .short _0223C628 - _0223C582 - 2 ; case 5
+ .short _0223C634 - _0223C582 - 2 ; case 6
+ .short _0223C634 - _0223C582 - 2 ; case 7
+ .short _0223C640 - _0223C582 - 2 ; case 8
+ .short _0223C64A - _0223C582 - 2 ; case 9
+ .short _0223C660 - _0223C582 - 2 ; case 10
+ .short _0223C674 - _0223C582 - 2 ; case 11
+ .short _0223C68A - _0223C582 - 2 ; case 12
+ .short _0223C69E - _0223C582 - 2 ; case 13
+ .short _0223C6B2 - _0223C582 - 2 ; case 14
+ .short _0223C6C8 - _0223C582 - 2 ; case 15
+ .short _0223C6DC - _0223C582 - 2 ; case 16
+ .short _0223C6F0 - _0223C582 - 2 ; case 17
+ .short _0223C704 - _0223C582 - 2 ; case 18
+ .short _0223C71A - _0223C582 - 2 ; case 19
+ .short _0223C728 - _0223C582 - 2 ; case 20
+ .short _0223C740 - _0223C582 - 2 ; case 21
+ .short _0223C758 - _0223C582 - 2 ; case 22
+ .short _0223C76E - _0223C582 - 2 ; case 23
+ .short _0223C784 - _0223C582 - 2 ; case 24
+ .short _0223C79A - _0223C582 - 2 ; case 25
+ .short _0223C7B0 - _0223C582 - 2 ; case 26
+ .short _0223C7C6 - _0223C582 - 2 ; case 27
+ .short _0223C7DC - _0223C582 - 2 ; case 28
+ .short _0223C7F0 - _0223C582 - 2 ; case 29
+ .short _0223C804 - _0223C582 - 2 ; case 30
+ .short _0223C81A - _0223C582 - 2 ; case 31
+ .short _0223C83A - _0223C582 - 2 ; case 32
+ .short _0223C85C - _0223C582 - 2 ; case 33
+ .short _0223C87C - _0223C582 - 2 ; case 34
+ .short _0223C89A - _0223C582 - 2 ; case 35
+ .short _0223C8B8 - _0223C582 - 2 ; case 36
+ .short _0223C8DA - _0223C582 - 2 ; case 37
+ .short _0223C8FA - _0223C582 - 2 ; case 38
+ .short _0223C91A - _0223C582 - 2 ; case 39
+ .short _0223C93A - _0223C582 - 2 ; case 40
+ .short _0223C95A - _0223C582 - 2 ; case 41
+ .short _0223C97A - _0223C582 - 2 ; case 42
+ .short _0223C99A - _0223C582 - 2 ; case 43
+ .short _0223C9BA - _0223C582 - 2 ; case 44
+ .short _0223C9D8 - _0223C582 - 2 ; case 45
+ .short _0223C9F6 - _0223C582 - 2 ; case 46
+ .short _0223CA14 - _0223C582 - 2 ; case 47
+ .short _0223CA26 - _0223C582 - 2 ; case 48
+ .short _0223CA48 - _0223C582 - 2 ; case 49
+ .short _0223CA6A - _0223C582 - 2 ; case 50
+ .short _0223CA8C - _0223C582 - 2 ; case 51
+ .short _0223CAAC - _0223C582 - 2 ; case 52
+ .short _0223CAD8 - _0223C582 - 2 ; case 53
+ .short _0223CB06 - _0223C582 - 2 ; case 54
+ .short _0223CB32 - _0223C582 - 2 ; case 55
+ .short _0223CB5C - _0223C582 - 2 ; case 56
+ .short _0223CB8A - _0223C582 - 2 ; case 57
+ .short _0223CBB8 - _0223C582 - 2 ; case 58
+ .short _0223CBE6 - _0223C582 - 2 ; case 59
+ .short _0223CC14 - _0223C582 - 2 ; case 60
+_0223C5FC:
+ ldr r2, [r4, #8]
+ bl MOD11_0223C230
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C606:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C610:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C61C:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CD6C
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C628:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C634:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C640:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C64A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C660:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C674:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C68A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CD6C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C69E:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CD2C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C6B2:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD84
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C6C8:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C6DC:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CD9C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C6F0:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C704:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C71A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r0, [r4, #0xc]
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C728:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223C230
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C740:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C758:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C76E:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CD38
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C784:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C79A:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C7B0:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C7C6:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C7DC:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C7F0:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C804:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C81A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C83A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C85C:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C87C:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C89A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C8B8:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C8DA:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C8FA:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C91A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD6C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C93A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD2C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C95A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD78
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C97A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C99A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C9BA:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C9D8:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD6C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C9F6:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD78
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CA14:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r0, [r4, #0xc]
+ str r0, [r5, #8]
+ ldr r0, [r4, #0x10]
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CA26:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CDA8
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CA48:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CA6A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CA8C:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CAAC:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r1, [r4, #0x14]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CAD8:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r2, [r4, #0x14]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CB06:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r1, [r4, #0x14]
+ add r0, r6, #0
+ bl MOD11_0223CD6C
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CB32:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r1, [r4, #0x14]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CB5C:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #0xc]
+ ldr r2, [r4, #0x14]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CB8A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r2, [r4, #0x14]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CBB8:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r2, [r4, #0x14]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CBE6:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDB4
+ str r0, [r5, #0xc]
+ ldr r2, [r4, #0x14]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CC14:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r2, [r4, #0x14]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDB4
+ str r0, [r5, #0x10]
+ ldr r2, [r4, #0x18]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #0x14]
+ ldr r2, [r4, #0x1c]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0x18]
+_0223CC58:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223CC5C
+MOD11_0223CC5C: ; 0x0223CC5C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ bl MOD11_0223C230
+ cmp r4, #0x16
+ bne _0223CC76
+ ldr r1, _0223CC84 ; =0x000021A0
+ add r2, r5, r0
+ ldrb r1, [r2, r1]
+ lsl r1, r1, #8
+ orr r0, r1
+ pop {r3, r4, r5, pc}
+_0223CC76:
+ ldr r1, _0223CC88 ; =0x0000219C
+ add r2, r5, r0
+ ldrb r1, [r2, r1]
+ lsl r1, r1, #8
+ orr r0, r1
+ pop {r3, r4, r5, pc}
+ nop
+_0223CC84: .word 0x000021A0
+_0223CC88: .word 0x0000219C
+
+ thumb_func_start MOD11_0223CC8C
+MOD11_0223CC8C: ; 0x0223CC8C
+ cmp r1, #1
+ beq _0223CC96
+ cmp r1, #0xff
+ beq _0223CC9C
+ bx lr
+_0223CC96:
+ ldr r1, _0223CCA4 ; =0x00003044
+ ldr r0, [r0, r1]
+ bx lr
+_0223CC9C:
+ mov r1, #0x49
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_0223CCA4: .word 0x00003044
+
+ thumb_func_start MOD11_0223CCA8
+MOD11_0223CCA8: ; 0x0223CCA8
+ push {r4, lr}
+ cmp r1, #0x15
+ bgt _0223CCC0
+ bge _0223CCF6
+ cmp r1, #2
+ bgt _0223CD18
+ cmp r1, #1
+ blt _0223CD18
+ beq _0223CCC6
+ cmp r1, #2
+ beq _0223CCDE
+ b _0223CD18
+_0223CCC0:
+ cmp r1, #0xff
+ beq _0223CD12
+ b _0223CD18
+_0223CCC6:
+ ldr r3, [r0, #0x64]
+ mov r1, #0xc0
+ mul r1, r3
+ add r2, r0, r1
+ ldr r1, _0223CD1C ; =0x00002DB8
+ ldrh r4, [r2, r1]
+ lsl r1, r3, #0x18
+ lsr r1, r1, #0x18
+ add r2, r4, #0
+ bl MOD11_0223D1D0
+ b _0223CD18
+_0223CCDE:
+ ldr r3, [r0, #0x6c]
+ mov r1, #0xc0
+ mul r1, r3
+ add r2, r0, r1
+ ldr r1, _0223CD1C ; =0x00002DB8
+ ldrh r4, [r2, r1]
+ lsl r1, r3, #0x18
+ lsr r1, r1, #0x18
+ add r2, r4, #0
+ bl MOD11_0223D1D0
+ b _0223CD18
+_0223CCF6:
+ mov r1, #0x46
+ lsl r1, r1, #2
+ ldr r3, [r0, r1]
+ mov r1, #0xc0
+ mul r1, r3
+ add r2, r0, r1
+ ldr r1, _0223CD1C ; =0x00002DB8
+ ldrh r4, [r2, r1]
+ lsl r1, r3, #0x18
+ lsr r1, r1, #0x18
+ add r2, r4, #0
+ bl MOD11_0223D1D0
+ b _0223CD18
+_0223CD12:
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ ldr r4, [r0, r1]
+_0223CD18:
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+_0223CD1C: .word 0x00002DB8
+
+ thumb_func_start MOD11_0223CD20
+MOD11_0223CD20: ; 0x0223CD20
+ cmp r1, #0xff
+ bne _0223CD2A
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+_0223CD2A:
+ bx lr
+
+ thumb_func_start MOD11_0223CD2C
+MOD11_0223CD2C: ; 0x0223CD2C
+ cmp r1, #0xff
+ bne _0223CD36
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+_0223CD36:
+ bx lr
+
+ thumb_func_start MOD11_0223CD38
+MOD11_0223CD38: ; 0x0223CD38
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ cmp r2, #0xff
+ bne _0223CD48
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ b _0223CD64
+_0223CD48:
+ bl MOD11_0223C230
+ add r1, r0, #0
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _0223CD68 ; =0x00002D67
+ lsl r1, r1, #0x18
+ ldrb r4, [r2, r0]
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r2, r4, #0
+ bl MOD11_0223D1C4
+_0223CD64:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223CD68: .word 0x00002D67
+
+ thumb_func_start MOD11_0223CD6C
+MOD11_0223CD6C: ; 0x0223CD6C
+ cmp r1, #0xff
+ bne _0223CD76
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+_0223CD76:
+ bx lr
+
+ thumb_func_start MOD11_0223CD78
+MOD11_0223CD78: ; 0x0223CD78
+ cmp r1, #0xff
+ bne _0223CD82
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+_0223CD82:
+ bx lr
+
+ thumb_func_start MOD11_0223CD84
+MOD11_0223CD84: ; 0x0223CD84
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0223C230
+ ldr r1, _0223CD98 ; =0x0000219C
+ add r2, r4, r0
+ ldrb r1, [r2, r1]
+ lsl r1, r1, #8
+ orr r0, r1
+ pop {r4, pc}
+ .align 2, 0
+_0223CD98: .word 0x0000219C
+
+ thumb_func_start MOD11_0223CD9C
+MOD11_0223CD9C: ; 0x0223CD9C
+ cmp r1, #0xff
+ bne _0223CDA6
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+_0223CDA6:
+ bx lr
+
+ thumb_func_start MOD11_0223CDA8
+MOD11_0223CDA8: ; 0x0223CDA8
+ cmp r1, #0xff
+ bne _0223CDB2
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+_0223CDB2:
+ bx lr
+
+ thumb_func_start MOD11_0223CDB4
+MOD11_0223CDB4: ; 0x0223CDB4
+ ldr r3, _0223CDB8 ; =MOD11_0223C230
+ bx r3
+ .align 2, 0
+_0223CDB8: .word MOD11_0223C230
+
+ thumb_func_start MOD11_0223CDBC
+MOD11_0223CDBC: ; 0x0223CDBC
+ ldr r3, _0223CDC0 ; =MOD11_0223C230
+ bx r3
+ .align 2, 0
+_0223CDC0: .word MOD11_0223C230
+
+ thumb_func_start MOD11_0223CDC4
+MOD11_0223CDC4: ; 0x0223CDC4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x78
+ add r7, r0, #0
+ add r5, r1, #0
+ str r2, [sp, #0x18]
+ bl MOD11_022300C4
+ str r0, [sp, #0x28]
+ add r0, r7, #0
+ bl MOD11_0223013C
+ str r0, [sp, #0x20]
+ add r0, r7, #0
+ bl MOD11_02230138
+ str r0, [sp, #0x24]
+ add r0, r7, #0
+ bl MOD11_0222FF68
+ str r0, [sp, #0x1c]
+ add r0, r7, #0
+ bl MOD11_02230078
+ add r6, r0, #0
+ add r0, r7, #0
+ bl MOD11_02230080
+ add r4, r0, #0
+ add r0, r7, #0
+ bl MOD11_022300CC
+ add r7, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0223D03C ; =0x00004E31
+ add r1, r4, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ mov r2, #0x1b
+ mov r3, #0xc0
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x2e
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r1, #2
+ str r1, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, _0223D040 ; =0x00004E2C
+ add r2, r6, #0
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223D044 ; =0x00004E29
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ mov r2, #0x1b
+ mov r3, #0xc1
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223D044 ; =0x00004E29
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ mov r2, #0x1b
+ mov r3, #0xc2
+ bl FUN_0200C13C
+ ldr r2, _0223D048 ; =0x0225DD7C
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_0200C154
+ str r0, [r5, #0xc]
+ bl FUN_0200C5A8
+ ldr r0, [sp, #0x18]
+ bl FUN_0206B6C8
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _0223D04C ; =0x00004E32
+ add r1, r4, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ mov r2, #0x13
+ bl FUN_0200C978
+ bl FUN_0206B888
+ mov r1, #0x13
+ str r1, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, _0223D050 ; =0x00004E2D
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+ bl FUN_0206B894
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0223D054 ; =0x00004E2A
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ mov r2, #0x13
+ bl FUN_0200C124
+ bl FUN_0206B8A0
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0223D054 ; =0x00004E2A
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ mov r2, #0x13
+ bl FUN_0200C13C
+ ldr r2, _0223D058 ; =0x0225DDB0
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_0200C154
+ str r0, [r5, #0x10]
+ ldr r0, [sp, #0x18]
+ bl FUN_0206B87C
+ add r1, r0, #0
+ ldr r0, [r5, #0x10]
+ ldr r0, [r0]
+ bl FUN_020202DC
+ ldr r0, [r5, #0x10]
+ bl FUN_0200C5A8
+ mov r0, #1
+ mov r1, #5
+ bl FUN_02011744
+ str r0, [r5, #0x50]
+ ldr r0, [sp, #0x18]
+ mov r1, #0xaf
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0223CF26
+ mov r0, #2
+ b _0223CF30
+_0223CF26:
+ ldr r0, [sp, #0x18]
+ mov r1, #0x6f
+ mov r2, #0
+ bl GetMonData
+_0223CF30:
+ cmp r0, #0
+ bne _0223CF42
+ mov r1, #0x3b
+ ldr r0, [sp, #0x28]
+ lsl r1, r1, #4
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _0223CF5C
+_0223CF42:
+ cmp r0, #1
+ bne _0223CF52
+ ldr r0, [sp, #0x28]
+ ldr r1, _0223D05C ; =0x000003B1
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _0223CF5C
+_0223CF52:
+ ldr r0, [sp, #0x28]
+ ldr r1, _0223D060 ; =0x000003B2
+ bl FUN_0200A914
+ add r6, r0, #0
+_0223CF5C:
+ ldr r0, [sp, #0x18]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [sp, #0x24]
+ mov r1, #0
+ bl FUN_0200ACF8
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ ldr r0, [sp, #0x24]
+ mov r3, #3
+ str r1, [sp, #4]
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x20]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, sp, #0x68
+ bl FUN_0201901C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x1c]
+ add r1, sp, #0x68
+ mov r2, #0xc
+ mov r3, #4
+ bl FUN_020190EC
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0223D064 ; =0x00010200
+ ldr r2, [sp, #0x20]
+ str r0, [sp, #8]
+ add r0, sp, #0x68
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, sp, #0x68
+ mov r1, #1
+ mov r2, #5
+ bl FUN_02011898
+ mov r1, #1
+ add r2, r1, #0
+ add r3, sp, #0x5c
+ bl FUN_0201D568
+ ldr r0, [r5, #0x50]
+ str r0, [sp, #0x2c]
+ add r0, sp, #0x68
+ str r0, [sp, #0x30]
+ add r0, r4, #0
+ bl FUN_0200CA40
+ str r0, [sp, #0x34]
+ ldr r1, _0223D040 ; =0x00004E2C
+ add r0, r4, #0
+ bl FUN_0200C334
+ mov r1, #0
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x60]
+ str r1, [sp, #0x3c]
+ str r0, [sp, #0x40]
+ mov r0, #0xb0
+ str r0, [sp, #0x44]
+ mov r0, #8
+ str r0, [sp, #0x48]
+ mov r0, #0x64
+ str r0, [sp, #0x50]
+ mov r0, #1
+ str r0, [sp, #0x54]
+ mov r0, #5
+ str r0, [sp, #0x58]
+ add r0, sp, #0x2c
+ str r1, [sp, #0x4c]
+ bl FUN_020117E8
+ add r2, r5, #0
+ add r3, sp, #0x5c
+ str r0, [r5, #0x14]
+ ldmia r3!, {r0, r1}
+ add r2, #0x18
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r1, #1
+ str r0, [r2]
+ ldr r0, [r5, #0x14]
+ bl FUN_02011AC0
+ add r0, sp, #0x68
+ bl FUN_02019178
+ add sp, #0x78
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223D03C: .word 0x00004E31
+_0223D040: .word 0x00004E2C
+_0223D044: .word 0x00004E29
+_0223D048: .word 0x0225DD7C
+_0223D04C: .word 0x00004E32
+_0223D050: .word 0x00004E2D
+_0223D054: .word 0x00004E2A
+_0223D058: .word 0x0225DDB0
+_0223D05C: .word 0x000003B1
+_0223D060: .word 0x000003B2
+_0223D064: .word 0x00010200
+
+ thumb_func_start MOD11_0223D068
+MOD11_0223D068: ; 0x0223D068
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl MOD11_02230080
+ add r4, r0, #0
+ ldr r0, [r5, #0xc]
+ bl FUN_0200C3DC
+ ldr r0, [r5, #0x10]
+ bl FUN_0200C3DC
+ ldr r0, [r5, #0x14]
+ bl FUN_02011870
+ add r0, r5, #0
+ add r0, #0x18
+ bl FUN_0201D5E8
+ ldr r1, _0223D0D4 ; =0x00004E31
+ add r0, r4, #0
+ bl FUN_0200C358
+ ldr r1, _0223D0D8 ; =0x00004E2C
+ add r0, r4, #0
+ bl FUN_0200C368
+ ldr r1, _0223D0DC ; =0x00004E29
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0223D0DC ; =0x00004E29
+ add r0, r4, #0
+ bl FUN_0200C388
+ ldr r1, _0223D0E0 ; =0x00004E32
+ add r0, r4, #0
+ bl FUN_0200C358
+ ldr r1, _0223D0E4 ; =0x00004E2D
+ add r0, r4, #0
+ bl FUN_0200C368
+ ldr r1, _0223D0E8 ; =0x00004E2A
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0223D0E8 ; =0x00004E2A
+ add r0, r4, #0
+ bl FUN_0200C388
+ ldr r0, [r5, #0x50]
+ bl FUN_020117BC
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223D0D4: .word 0x00004E31
+_0223D0D8: .word 0x00004E2C
+_0223D0DC: .word 0x00004E29
+_0223D0E0: .word 0x00004E32
+_0223D0E4: .word 0x00004E2D
+_0223D0E8: .word 0x00004E2A
+
+ thumb_func_start MOD11_0223D0EC
+MOD11_0223D0EC: ; 0x0223D0EC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r1, r2, #0
+ add r5, r0, #0
+ str r2, [sp]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _0223D1B8
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _0223D13C
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_0223022C
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD11_0223022C
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r2, #0xc0
+ add r0, r1, #0
+ mul r0, r2
+ mul r2, r6
+ ldr r3, _0223D1BC ; =0x00002D74
+ add r0, r4, r0
+ add r2, r4, r2
+ ldrb r0, [r0, r3]
+ ldrb r2, [r2, r3]
+ cmp r0, r2
+ bls _0223D148
+ add r6, r1, #0
+ b _0223D148
+_0223D13C:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223022C
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+_0223D148:
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, r1, #0
+ add r3, r4, r2
+ ldr r2, _0223D1C0 ; =0x0000219C
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ add r7, r0, #0
+ ldr r0, [sp]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ add r0, r4, r2
+ ldr r2, _0223D1BC ; =0x00002D74
+ mul r1, r6
+ add r1, r4, r1
+ ldrb r0, [r0, r2]
+ ldrb r1, [r1, r2]
+ cmp r1, r0
+ bls _0223D1A4
+ sub r0, r1, r0
+ cmp r0, #0x1e
+ blt _0223D18E
+ add r0, r5, #0
+ bl MOD11_022302B0
+ add r2, r0, #0
+ lsl r2, r2, #0x10
+ add r0, r7, #0
+ mov r1, #8
+ lsr r2, r2, #0x10
+ bl MonApplyFriendshipMod
+ pop {r3, r4, r5, r6, r7, pc}
+_0223D18E:
+ add r0, r5, #0
+ bl MOD11_022302B0
+ add r2, r0, #0
+ lsl r2, r2, #0x10
+ add r0, r7, #0
+ mov r1, #6
+ lsr r2, r2, #0x10
+ bl MonApplyFriendshipMod
+ pop {r3, r4, r5, r6, r7, pc}
+_0223D1A4:
+ add r0, r5, #0
+ bl MOD11_022302B0
+ add r2, r0, #0
+ lsl r2, r2, #0x10
+ add r0, r7, #0
+ mov r1, #6
+ lsr r2, r2, #0x10
+ bl MonApplyFriendshipMod
+_0223D1B8:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223D1BC: .word 0x00002D74
+_0223D1C0: .word 0x0000219C
+
+ thumb_func_start MOD11_0223D1C4
+MOD11_0223D1C4: ; 0x0223D1C4
+ add r1, r0, r1
+ mov r0, #0x39
+ lsl r0, r0, #4
+ strb r2, [r1, r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0223D1D0
+MOD11_0223D1D0: ; 0x0223D1D0
+ lsl r1, r1, #1
+ add r1, r0, r1
+ mov r0, #0xe5
+ lsl r0, r0, #2
+ strh r2, [r1, r0]
+ bx lr
+
+ thumb_func_start MOD11_0223D1DC
+MOD11_0223D1DC: ; 0x0223D1DC
+ push {r3, r4, r5, lr}
+ ldr r1, _0223D22C ; =0x0000314C
+ add r5, r0, #0
+ mov r0, #5
+ bl AllocFromHeap
+ add r4, r0, #0
+ ldr r2, _0223D22C ; =0x0000314C
+ mov r0, #0
+ add r1, r4, #0
+ bl MIi_CpuClearFast
+ add r0, r4, #0
+ bl MOD11_02245494
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02245588
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0223D216
+ mov r2, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD16_021EFBF4
+_0223D216:
+ ldr r0, _0223D230 ; =0x000003DE
+ add r0, r4, r0
+ bl LoadAllWazaTbl
+ mov r0, #5
+ bl FUN_0206EB50
+ ldr r1, _0223D234 ; =0x00002120
+ str r0, [r4, r1]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223D22C: .word 0x0000314C
+_0223D230: .word 0x000003DE
+_0223D234: .word 0x00002120
+
+ thumb_func_start MOD11_0223D238
+MOD11_0223D238: ; 0x0223D238
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, _0223D27C ; =0x0000311F
+ add r5, r0, #0
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ bne _0223D25E
+ bl MOD11_0223145C
+ cmp r0, #0
+ beq _0223D25E
+ add r0, r5, #0
+ bl MOD11_0223145C
+ mov r1, #0x40
+ tst r0, r1
+ bne _0223D25E
+ mov r0, #0x29
+ str r0, [r4, #8]
+_0223D25E:
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ lsl r3, r2, #2
+ ldr r2, _0223D280 ; =0x0225E194
+ add r1, r4, #0
+ ldr r2, [r2, r3]
+ blx r2
+ ldr r0, [r4, #8]
+ cmp r0, #0x2b
+ bne _0223D276
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0223D276:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0223D27C: .word 0x0000311F
+_0223D280: .word 0x0225E194
+
+ thumb_func_start MOD11_0223D284
+MOD11_0223D284: ; 0x0223D284
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0223D298 ; =0x00002120
+ ldr r0, [r4, r0]
+ bl FreeToHeap
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+ .align 2, 0
+_0223D298: .word 0x00002120
+
+ thumb_func_start MOD11_0223D29C
+MOD11_0223D29C: ; 0x0223D29C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ ldr r6, [sp, #0x20]
+ add r5, r0, #0
+ add r4, r1, #0
+ add r7, r2, #0
+ str r3, [sp, #4]
+ str r6, [sp]
+ bl MOD11_0224053C
+ ldr r0, [sp, #0x20]
+ ldr r3, [sp, #4]
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_02240890
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0223D2C4
+MOD11_0223D2C4: ; 0x0223D2C4
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ mov r4, #0
+ cmp r7, #0
+ ble _0223D2EC
+_0223D2D6:
+ ldr r3, _0223D2FC ; =0x0000219C
+ add r6, r5, r4
+ ldrb r3, [r6, r3]
+ ldr r0, [sp]
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_02242B78
+ add r4, r4, #1
+ cmp r4, r7
+ blt _0223D2D6
+_0223D2EC:
+ ldr r0, _0223D300 ; =0x00002E4C
+ ldr r1, [r5, r0]
+ ldr r0, _0223D304 ; =0x00003122
+ strh r1, [r5, r0]
+ mov r0, #1
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223D2FC: .word 0x0000219C
+_0223D300: .word 0x00002E4C
+_0223D304: .word 0x00003122
+
+ thumb_func_start MOD11_0223D308
+MOD11_0223D308: ; 0x0223D308
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #2
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0223D320
+MOD11_0223D320: ; 0x0223D320
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_0224529C
+ cmp r0, #0
+ beq _0223D342
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x29
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #3
+ str r0, [r4, #0xc]
+ b _0223D346
+_0223D342:
+ mov r0, #3
+ str r0, [r4, #8]
+_0223D346:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224728C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0223D350
+MOD11_0223D350: ; 0x0223D350
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_022476DC
+ add r2, r0, #0
+ beq _0223D370
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_0223D370:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224728C
+ mov r0, #4
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223D380
+MOD11_0223D380: ; 0x0223D380
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ add r4, r1, #0
+ bl MOD11_0222FF84
+ add r5, r0, #0
+ mov r3, #0
+ cmp r5, #0
+ ble _0223D3AA
+ mov r7, #0xb7
+ lsl r7, r7, #6
+ add r6, r4, #0
+ add r2, r3, #0
+ add r0, r7, #4
+_0223D39C:
+ strb r2, [r4, r3]
+ ldr r1, [r6, r7]
+ add r3, r3, #1
+ str r1, [r6, r0]
+ add r6, #0xc0
+ cmp r3, r5
+ blt _0223D39C
+_0223D3AA:
+ ldr r0, [sp]
+ mov r1, #0
+ bl MOD11_022312AC
+ mov r0, #5
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0223D3B8
+MOD11_0223D3B8: ; 0x0223D3B8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0xb8
+ add r7, r0, #0
+ add r6, r1, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #0x64]
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ str r0, [sp, #0x24]
+ mov r4, #0
+ ldr r0, [sp, #0x64]
+ str r4, [sp, #0x60]
+ cmp r0, #0
+ bgt _0223D3DA
+ b _0223DB58
+_0223D3DA:
+ mov r0, #0x75
+ lsl r0, r0, #2
+ add r0, r6, r0
+ str r0, [sp, #0x50]
+ ldr r0, _0223D710 ; =0x000021AC
+ mov r1, #2
+ add r0, r6, r0
+ str r0, [sp, #0x40]
+ mov r0, #0x23
+ lsl r0, r0, #8
+ add r0, r6, r0
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x24]
+ str r6, [sp, #0x54]
+ and r0, r1
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x24]
+ mov r1, #8
+ and r0, r1
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x24]
+ lsl r1, r1, #6
+ and r0, r1
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x24]
+ mov r1, #0x20
+ and r0, r1
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x24]
+ mov r1, #4
+ and r0, r1
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x24]
+ mov r1, #0x80
+ and r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x24]
+ mov r1, #1
+ and r0, r1
+ str r6, [sp, #0x4c]
+ str r6, [sp, #0x48]
+ str r6, [sp, #0x44]
+ str r0, [sp, #0x1c]
+_0223D430:
+ ldrb r0, [r6, r4]
+ add r5, r6, r4
+ cmp r0, #0x10
+ bhi _0223D50A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223D444: ; jump table
+ .short _0223D466 - _0223D444 - 2 ; case 0
+ .short _0223D4DA - _0223D444 - 2 ; case 1
+ .short _0223D6EE - _0223D444 - 2 ; case 2
+ .short _0223D6FC - _0223D444 - 2 ; case 3
+ .short _0223D7DA - _0223D444 - 2 ; case 4
+ .short _0223D814 - _0223D444 - 2 ; case 5
+ .short _0223D848 - _0223D444 - 2 ; case 6
+ .short _0223D856 - _0223D444 - 2 ; case 7
+ .short _0223D884 - _0223D444 - 2 ; case 8
+ .short _0223D8FC - _0223D444 - 2 ; case 9
+ .short _0223D93C - _0223D444 - 2 ; case 10
+ .short _0223D9F8 - _0223D444 - 2 ; case 11
+ .short _0223DA46 - _0223D444 - 2 ; case 12
+ .short _0223DA94 - _0223D444 - 2 ; case 13
+ .short _0223DA9C - _0223D444 - 2 ; case 14
+ .short _0223DAB6 - _0223D444 - 2 ; case 15
+ .short _0223DB14 - _0223D444 - 2 ; case 16
+_0223D466:
+ ldr r0, [sp, #0x38]
+ cmp r0, #0
+ beq _0223D486
+ ldr r0, [sp, #0x34]
+ cmp r0, #0
+ bne _0223D486
+ cmp r4, #2
+ bne _0223D47C
+ ldrb r0, [r6]
+ cmp r0, #0xd
+ bne _0223D50A
+_0223D47C:
+ cmp r4, #3
+ bne _0223D486
+ ldrb r0, [r6, #1]
+ cmp r0, #0xd
+ bne _0223D50A
+_0223D486:
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldr r1, _0223D714 ; =0x00003108
+ ldrb r1, [r6, r1]
+ tst r0, r1
+ beq _0223D4A2
+ mov r0, #0xc
+ strb r0, [r5]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x27
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D4A2:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD04
+ cmp r0, #0
+ bne _0223D4C8
+ ldr r0, [sp, #0x50]
+ mov r2, #0xd
+ ldr r1, [r0]
+ mov r0, #2
+ orr r1, r0
+ ldr r0, [sp, #0x50]
+ str r1, [r0]
+ mov r0, #0xc
+ strb r0, [r5]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D4C8:
+ ldr r3, _0223D71C ; =0x0000219C
+ add r0, r7, #0
+ ldrb r3, [r5, r3]
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02255188
+ mov r0, #1
+ strb r0, [r5]
+_0223D4DA:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223D50A
+ mov r1, #0x23
+ ldr r0, [sp, #0x4c]
+ lsl r1, r1, #8
+ ldrb r2, [r0, r1]
+ ldr r1, _0223D720 ; =0x000021B4
+ ldr r0, [sp, #0x54]
+ str r2, [r0, r1]
+ ldr r0, [sp, #0x30]
+ cmp r0, #0
+ beq _0223D52E
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #1
+ beq _0223D50C
+ cmp r0, #4
+ beq _0223D51E
+_0223D50A:
+ b _0223DB20
+_0223D50C:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5, #4]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x11
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D51E:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r1, #0xc
+ strb r1, [r5, #4]
+ ldr r2, _0223D718 ; =0x000021A8
+ ldr r1, [sp, #0x54]
+ str r0, [r1, r2]
+ b _0223DB20
+_0223D52E:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0
+ beq _0223D5B0
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #5
+ bhi _0223D5DA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223D54C: ; jump table
+ .short _0223DB20 - _0223D54C - 2 ; case 0
+ .short _0223D558 - _0223D54C - 2 ; case 1
+ .short _0223D56A - _0223D54C - 2 ; case 2
+ .short _0223D57C - _0223D54C - 2 ; case 3
+ .short _0223D58E - _0223D54C - 2 ; case 4
+ .short _0223D59E - _0223D54C - 2 ; case 5
+_0223D558:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5, #4]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x11
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D56A:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5, #4]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x12
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D57C:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5, #4]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x13
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D58E:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r1, #0xc
+ strb r1, [r5, #4]
+ ldr r2, _0223D718 ; =0x000021A8
+ ldr r1, [sp, #0x54]
+ str r0, [r1, r2]
+ b _0223DB20
+_0223D59E:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x14
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D5B0:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #4
+ bgt _0223D5D6
+ cmp r0, #0
+ blt _0223D5DA
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223D5CC: ; jump table
+ .short _0223DB20 - _0223D5CC - 2 ; case 0
+ .short _0223D5DC - _0223D5CC - 2 ; case 1
+ .short _0223D63C - _0223D5CC - 2 ; case 2
+ .short _0223D698 - _0223D5CC - 2 ; case 3
+ .short _0223D6A6 - _0223D5CC - 2 ; case 4
+_0223D5D6:
+ cmp r0, #0xff
+ beq _0223D6B4
+_0223D5DA:
+ b _0223DB20
+_0223D5DC:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ cmp r0, #0xf
+ bne _0223D5FC
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xf
+ strb r0, [r5, #4]
+ b _0223D632
+_0223D5FC:
+ ldr r3, _0223D724 ; =0x00002DEC
+ ldr r0, [sp, #0x48]
+ ldrh r0, [r0, r3]
+ cmp r0, #0
+ beq _0223D62E
+ ldr r0, [sp, #0x48]
+ add r1, r3, #2
+ ldrh r1, [r0, r1]
+ ldr r2, _0223D728 ; =0x000030BC
+ ldr r0, [sp, #0x44]
+ strh r1, [r0, r2]
+ ldr r0, [sp, #0x48]
+ sub r2, #8
+ ldrh r1, [r0, r3]
+ ldr r0, [sp, #0x44]
+ strh r1, [r0, r2]
+ ldr r1, _0223D72C ; =0x000021B0
+ ldr r0, [sp, #0x54]
+ mov r2, #0
+ str r2, [r0, r1]
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5, #4]
+ b _0223D632
+_0223D62E:
+ mov r0, #2
+ strb r0, [r5]
+_0223D632:
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0xd
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D63C:
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ mov r1, #0x84
+ tst r0, r1
+ beq _0223D68A
+ ldr r1, _0223D730 ; =0x00000251
+ add r0, sp, #0x90
+ strh r1, [r0, #6]
+ mov r1, #0
+ strb r1, [r0, #5]
+ mov r0, sp
+ str r0, [sp, #0x68]
+ sub r0, #8
+ str r0, [sp, #0x68]
+ add r3, r0, #0
+ mov r0, #4
+ add r2, sp, #0x94
+ str r0, [sp, #0x6c]
+_0223D662:
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [sp, #0x6c]
+ sub r0, r0, #1
+ str r0, [sp, #0x6c]
+ bne _0223D662
+ ldr r0, [r2]
+ add r1, r4, #0
+ str r0, [r3]
+ ldr r0, [sp, #0x68]
+ ldmia r0!, {r2, r3}
+ str r0, [sp, #0x68]
+ add r0, r7, #0
+ bl MOD11_02255FBC
+ mov r0, #0xe
+ strb r0, [r5]
+ mov r0, #0
+ strb r0, [r5, #4]
+ b _0223DB20
+_0223D68A:
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0xe
+ str r2, [r0, r1]
+ mov r0, #6
+ strb r0, [r5]
+ b _0223DB20
+_0223D698:
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0xf
+ str r2, [r0, r1]
+ mov r0, #8
+ strb r0, [r5]
+ b _0223DB20
+_0223D6A6:
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x10
+ str r2, [r0, r1]
+ mov r0, #0xa
+ strb r0, [r5]
+ b _0223DB20
+_0223D6B4:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0
+ beq _0223D6D4
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02256268
+ mov r0, #0
+ strb r0, [r5]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022302BC
+ mov r1, #0
+ strb r1, [r6, r0]
+ b _0223DB20
+_0223D6D4:
+ ldr r0, [sp, #0x38]
+ cmp r0, #0
+ beq _0223D740
+ cmp r4, #2
+ bne _0223D740
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02256268
+ mov r0, #0
+ strb r0, [r6]
+ strb r0, [r6, #2]
+ b _0223DB20
+_0223D6EE:
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02255544
+ mov r0, #3
+ strb r0, [r5]
+_0223D6FC:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223D734
+ mov r0, #0
+ strb r0, [r5]
+ b _0223DB20
+ nop
+_0223D710: .word 0x000021AC
+_0223D714: .word 0x00003108
+_0223D718: .word 0x000021A8
+_0223D71C: .word 0x0000219C
+_0223D720: .word 0x000021B4
+_0223D724: .word 0x00002DEC
+_0223D728: .word 0x000030BC
+_0223D72C: .word 0x000021B0
+_0223D730: .word 0x00000251
+_0223D734:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ bne _0223D742
+_0223D740:
+ b _0223DB20
+_0223D742:
+ mov r1, #0x23
+ ldr r0, [sp, #0x4c]
+ lsl r1, r1, #8
+ ldrb r0, [r0, r1]
+ sub r3, r0, #1
+ cmp r3, #4
+ bne _0223D75E
+ ldr r1, _0223DA6C ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x10
+ str r2, [r0, r1]
+ mov r0, #0xa
+ strb r0, [r5]
+ b _0223DB20
+_0223D75E:
+ add r0, sp, #0x94
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02245F74
+ cmp r0, #0
+ bne _0223D7A8
+ mov r0, sp
+ str r0, [sp, #0x70]
+ sub r0, #8
+ str r0, [sp, #0x70]
+ add r3, r0, #0
+ mov r0, #4
+ add r2, sp, #0x94
+ str r0, [sp, #0x74]
+_0223D780:
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [sp, #0x74]
+ sub r0, r0, #1
+ str r0, [sp, #0x74]
+ bne _0223D780
+ ldr r0, [r2]
+ add r1, r4, #0
+ str r0, [r3]
+ ldr r0, [sp, #0x70]
+ ldmia r0!, {r2, r3}
+ str r0, [sp, #0x70]
+ add r0, r7, #0
+ bl MOD11_02255FBC
+ mov r0, #0xe
+ strb r0, [r5]
+ mov r0, #2
+ strb r0, [r5, #4]
+ b _0223DB20
+_0223D7A8:
+ mov r3, #0x23
+ ldr r0, [sp, #0x4c]
+ lsl r3, r3, #8
+ ldrb r2, [r0, r3]
+ ldr r1, _0223DA70 ; =0x000021B0
+ ldr r0, [sp, #0x54]
+ str r2, [r0, r1]
+ ldr r0, [sp, #0x4c]
+ ldr r2, _0223DA74 ; =0x000030BC
+ ldrb r0, [r0, r3]
+ sub r1, r0, #1
+ ldr r0, [sp, #0x44]
+ strh r1, [r0, r2]
+ ldrh r0, [r0, r2]
+ sub r2, #8
+ lsl r1, r0, #1
+ ldr r0, [sp, #0x48]
+ add r1, r0, r1
+ ldr r0, _0223DA78 ; =0x00002D4C
+ ldrh r1, [r1, r0]
+ ldr r0, [sp, #0x44]
+ strh r1, [r0, r2]
+ mov r0, #4
+ strb r0, [r5]
+ b _0223DB20
+_0223D7DA:
+ add r0, sp, #0x90
+ str r0, [sp]
+ ldr r1, _0223DA74 ; =0x000030BC
+ ldr r0, [sp, #0x44]
+ lsl r2, r4, #0x18
+ ldrh r0, [r0, r1]
+ ldr r3, [sp, #0x24]
+ add r1, r6, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x40]
+ lsr r2, r2, #0x18
+ str r0, [sp, #8]
+ add r0, r7, #0
+ bl MOD11_0224235C
+ cmp r0, #0
+ beq _0223D80E
+ ldr r2, [sp, #0x90]
+ add r0, r7, #0
+ add r1, r6, #0
+ add r3, r4, #0
+ bl MOD11_02255600
+ mov r0, #5
+ strb r0, [r5]
+ b _0223DB20
+_0223D80E:
+ mov r0, #0xc
+ strb r0, [r5]
+ b _0223DB20
+_0223D814:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223D826
+ mov r0, #2
+ strb r0, [r5]
+ b _0223DB20
+_0223D826:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223D91A
+ mov r1, #0x23
+ ldr r0, [sp, #0x4c]
+ lsl r1, r1, #8
+ ldrb r0, [r0, r1]
+ ldr r1, _0223DA7C ; =0x000021AC
+ sub r2, r0, #1
+ ldr r0, [sp, #0x54]
+ str r2, [r0, r1]
+ mov r0, #0xc
+ strb r0, [r5]
+ b _0223DB20
+_0223D848:
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_0225573C
+ mov r0, #7
+ strb r0, [r5]
+_0223D856:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223D868
+ mov r0, #0
+ strb r0, [r5]
+ b _0223DB20
+_0223D868:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223D91A
+ ldr r0, [sp, #0x3c]
+ ldr r1, _0223DA70 ; =0x000021B0
+ ldr r2, [r0]
+ ldr r0, [sp, #0x54]
+ str r2, [r0, r1]
+ mov r0, #0xc
+ strb r0, [r5]
+ b _0223DB20
+_0223D884:
+ mov r0, #6
+ str r0, [sp, #0x58]
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02249E80
+ str r0, [sp, #0x5c]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02230260
+ cmp r0, #4
+ beq _0223D8AC
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02230260
+ cmp r0, #5
+ bne _0223D8E4
+_0223D8AC:
+ ldr r0, [sp, #0x24]
+ cmp r0, #3
+ beq _0223D8CA
+ cmp r0, #7
+ beq _0223D8CA
+ cmp r0, #0x83
+ beq _0223D8CA
+ cmp r0, #0x13
+ bne _0223D8E4
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02230260
+ cmp r0, #4
+ bne _0223D8E4
+_0223D8CA:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022302BC
+ lsl r0, r0, #4
+ add r2, r6, r0
+ ldr r0, _0223DA6C ; =0x000021A8
+ ldr r1, [r2, r0]
+ cmp r1, #0xf
+ bne _0223D8E4
+ add r0, #8
+ ldr r0, [r2, r0]
+ str r0, [sp, #0x58]
+_0223D8E4:
+ ldr r0, [sp, #0x5c]
+ add r1, r6, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x58]
+ add r2, r4, #0
+ str r0, [sp, #4]
+ add r0, r7, #0
+ mov r3, #0
+ bl MOD11_022558E0
+ mov r0, #9
+ strb r0, [r5]
+_0223D8FC:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223D90E
+ mov r0, #0
+ strb r0, [r5]
+ b _0223DB20
+_0223D90E:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ bne _0223D91C
+_0223D91A:
+ b _0223DB20
+_0223D91C:
+ mov r3, #0x23
+ ldr r0, [sp, #0x4c]
+ lsl r3, r3, #8
+ ldrb r0, [r0, r3]
+ ldr r2, _0223DA70 ; =0x000021B0
+ sub r1, r0, #1
+ ldr r0, [sp, #0x54]
+ str r1, [r0, r2]
+ ldr r0, [sp, #0x4c]
+ sub r2, #0x10
+ ldrb r0, [r0, r3]
+ sub r0, r0, #1
+ strb r0, [r5, r2]
+ mov r0, #0xc
+ strb r0, [r5]
+ b _0223DB20
+_0223D93C:
+ ldr r0, [sp, #0x20]
+ cmp r0, #0
+ beq _0223D95C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r3, _0223DA80 ; =0x000003BB
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02255980
+ mov r0, #0xb
+ strb r0, [r5]
+ b _0223DB20
+_0223D95C:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _0223D9AA
+ ldr r0, [sp, #0x28]
+ cmp r0, #0
+ bne _0223D9AA
+ mov r1, #0
+ add r0, sp, #0x90
+ strb r1, [r0, #5]
+ ldr r1, _0223DA84 ; =0x00000319
+ add r2, sp, #0x94
+ strh r1, [r0, #6]
+ mov r0, sp
+ str r0, [sp, #0x78]
+ sub r0, #8
+ str r0, [sp, #0x78]
+ add r3, r0, #0
+ mov r0, #4
+ str r0, [sp, #0x7c]
+_0223D982:
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [sp, #0x7c]
+ sub r0, r0, #1
+ str r0, [sp, #0x7c]
+ bne _0223D982
+ ldr r0, [r2]
+ add r1, r4, #0
+ str r0, [r3]
+ ldr r0, [sp, #0x78]
+ ldmia r0!, {r2, r3}
+ str r0, [sp, #0x78]
+ add r0, r7, #0
+ bl MOD11_02255FBC
+ mov r0, #0xe
+ strb r0, [r5]
+ mov r0, #0
+ strb r0, [r5, #4]
+ b _0223DB20
+_0223D9AA:
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ add r3, sp, #0x94
+ bl MOD11_02246ED0
+ cmp r0, #0
+ beq _0223D9F2
+ mov r0, sp
+ str r0, [sp, #0x80]
+ sub r0, #8
+ str r0, [sp, #0x80]
+ add r3, r0, #0
+ mov r0, #4
+ add r2, sp, #0x94
+ str r0, [sp, #0x84]
+_0223D9CA:
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [sp, #0x84]
+ sub r0, r0, #1
+ str r0, [sp, #0x84]
+ bne _0223D9CA
+ ldr r0, [r2]
+ add r1, r4, #0
+ str r0, [r3]
+ ldr r0, [sp, #0x80]
+ ldmia r0!, {r2, r3}
+ str r0, [sp, #0x80]
+ add r0, r7, #0
+ bl MOD11_02255FBC
+ mov r0, #0xe
+ strb r0, [r5]
+ mov r0, #0
+ strb r0, [r5, #4]
+ b _0223DB20
+_0223D9F2:
+ mov r0, #0xb
+ strb r0, [r5]
+ b _0223DB20
+_0223D9F8:
+ ldr r0, [sp, #0x20]
+ cmp r0, #0
+ beq _0223DA22
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223DA26
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223DA1C
+ mov r0, #0
+ strb r0, [r5]
+ b _0223DA26
+_0223DA1C:
+ mov r0, #0xc
+ strb r0, [r5]
+ b _0223DA26
+_0223DA22:
+ mov r0, #0xc
+ strb r0, [r5]
+_0223DA26:
+ ldr r0, [sp, #0x38]
+ cmp r0, #0
+ beq _0223DB20
+ ldr r0, [sp, #0x34]
+ cmp r0, #0
+ bne _0223DB20
+ ldrb r0, [r5]
+ cmp r0, #0xc
+ bne _0223DB20
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022302BC
+ mov r1, #0xc
+ strb r1, [r6, r0]
+ b _0223DB20
+_0223DA46:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02256268
+ ldr r0, [sp, #0x24]
+ cmp r0, #7
+ bne _0223DA88
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022302BC
+ ldrb r0, [r6, r0]
+ cmp r0, #0xd
+ bne _0223DA90
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022564CC
+ b _0223DA90
+ .align 2, 0
+_0223DA6C: .word 0x000021A8
+_0223DA70: .word 0x000021B0
+_0223DA74: .word 0x000030BC
+_0223DA78: .word 0x00002D4C
+_0223DA7C: .word 0x000021AC
+_0223DA80: .word 0x000003BB
+_0223DA84: .word 0x00000319
+_0223DA88:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022564CC
+_0223DA90:
+ mov r0, #0xd
+ strb r0, [r5]
+_0223DA94:
+ ldr r0, [sp, #0x60]
+ add r0, r0, #1
+ str r0, [sp, #0x60]
+ b _0223DB20
+_0223DA9C:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223DB20
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_02243400
+ ldrb r0, [r5, #4]
+ strb r0, [r5]
+ b _0223DB20
+_0223DAB6:
+ mov r1, #2
+ add r0, sp, #0x90
+ strb r1, [r0, #5]
+ mov r1, #0x26
+ lsl r1, r1, #4
+ strh r1, [r0, #6]
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224682C
+ str r0, [sp, #0x98]
+ mov r0, sp
+ str r0, [sp, #0x88]
+ sub r0, #8
+ str r0, [sp, #0x88]
+ add r3, r0, #0
+ mov r0, #4
+ add r2, sp, #0x94
+ mov ip, r0
+_0223DADC:
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ mov r0, ip
+ sub r0, r0, #1
+ mov ip, r0
+ bne _0223DADC
+ ldr r0, [r2]
+ add r1, r4, #0
+ str r0, [r3]
+ ldr r0, [sp, #0x88]
+ ldmia r0!, {r2, r3}
+ str r0, [sp, #0x88]
+ add r0, r7, #0
+ bl MOD11_02255FBC
+ ldr r0, [sp, #0x50]
+ mov r1, #1
+ ldr r0, [r0]
+ bic r0, r1
+ mov r1, #1
+ orr r1, r0
+ ldr r0, [sp, #0x50]
+ str r1, [r0]
+ mov r0, #0xe
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5, #4]
+ b _0223DB20
+_0223DB14:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022563B4
+ ldrb r0, [r5, #4]
+ strb r0, [r5]
+_0223DB20:
+ ldr r0, [sp, #0x54]
+ ldr r1, [sp, #0x4c]
+ add r0, #0x10
+ str r0, [sp, #0x54]
+ ldr r0, [sp, #0x50]
+ add r4, r4, #1
+ add r0, #0x40
+ str r0, [sp, #0x50]
+ mov r0, #1
+ lsl r0, r0, #8
+ add r1, r1, r0
+ str r1, [sp, #0x4c]
+ ldr r1, [sp, #0x48]
+ add r1, #0xc0
+ str r1, [sp, #0x48]
+ ldr r1, [sp, #0x44]
+ add r1, r1, #2
+ str r1, [sp, #0x44]
+ ldr r1, [sp, #0x40]
+ add r1, #0x10
+ str r1, [sp, #0x40]
+ ldr r1, [sp, #0x3c]
+ add r0, r1, r0
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x64]
+ cmp r4, r0
+ bge _0223DB58
+ b _0223D430
+_0223DB58:
+ ldr r1, [sp, #0x60]
+ ldr r0, [sp, #0x64]
+ cmp r1, r0
+ bne _0223DB96
+ mov r0, #6
+ str r0, [r6, #8]
+ ldr r0, [sp, #0x64]
+ mov r5, #0
+ cmp r0, #0
+ ble _0223DB96
+ str r6, [sp, #0x8c]
+_0223DB6E:
+ ldr r1, _0223DB9C ; =0x000021A8
+ ldr r0, [sp, #0x8c]
+ ldr r0, [r0, r1]
+ cmp r0, #0xf
+ bne _0223DB88
+ ldr r3, _0223DBA0 ; =0x000021A0
+ add r4, r6, r5
+ ldrb r3, [r4, r3]
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r5, #0
+ bl MOD11_0224B290
+_0223DB88:
+ ldr r0, [sp, #0x8c]
+ add r5, r5, #1
+ add r0, #0x10
+ str r0, [sp, #0x8c]
+ ldr r0, [sp, #0x64]
+ cmp r5, r0
+ blt _0223DB6E
+_0223DB96:
+ add sp, #0xb8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223DB9C: .word 0x000021A8
+_0223DBA0: .word 0x000021A0
+
+ thumb_func_start MOD11_0223DBA4
+MOD11_0223DBA4: ; 0x0223DBA4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r0, [sp, #4]
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ mov r2, #0x22
+ lsl r2, r2, #4
+ mov r1, #0
+ tst r2, r0
+ beq _0223DBDA
+ ldr r0, [sp, #0x14]
+ add r4, r1, #0
+ cmp r0, #0
+ ble _0223DBD8
+ ldr r1, _0223DD14 ; =0x000021E8
+_0223DBCC:
+ add r0, r5, r4
+ strb r4, [r0, r1]
+ ldr r0, [sp, #0x14]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _0223DBCC
+_0223DBD8:
+ b _0223DD0C
+_0223DBDA:
+ mov r2, #4
+ tst r0, r2
+ beq _0223DC02
+ ldr r0, [sp, #0x14]
+ add r4, r1, #0
+ cmp r0, #0
+ ble _0223DC1A
+ ldr r2, _0223DD18 ; =0x000021B4
+ add r3, r5, #0
+_0223DBEC:
+ ldr r0, [r3, r2]
+ cmp r0, #4
+ bne _0223DBF6
+ mov r1, #5
+ b _0223DC1A
+_0223DBF6:
+ ldr r0, [sp, #0x14]
+ add r4, r4, #1
+ add r3, #0x10
+ cmp r4, r0
+ blt _0223DBEC
+ b _0223DC1A
+_0223DC02:
+ ldr r0, _0223DD18 ; =0x000021B4
+ ldr r0, [r5, r0]
+ cmp r0, #4
+ bne _0223DC0E
+ add r4, r1, #0
+ mov r1, #5
+_0223DC0E:
+ ldr r0, _0223DD1C ; =0x000021D4
+ ldr r0, [r5, r0]
+ cmp r0, #4
+ bne _0223DC1A
+ mov r4, #2
+ mov r1, #5
+_0223DC1A:
+ cmp r1, #5
+ bne _0223DC42
+ ldr r0, _0223DD14 ; =0x000021E8
+ ldr r2, [sp, #0x14]
+ strb r4, [r5, r0]
+ mov r1, #1
+ mov r0, #0
+ cmp r2, #0
+ ble _0223DD0C
+ ldr r3, _0223DD14 ; =0x000021E8
+_0223DC2E:
+ cmp r0, r4
+ beq _0223DC38
+ add r2, r5, r1
+ strb r0, [r2, r3]
+ add r1, r1, #1
+_0223DC38:
+ ldr r2, [sp, #0x14]
+ add r0, r0, #1
+ cmp r0, r2
+ blt _0223DC2E
+ b _0223DD0C
+_0223DC42:
+ ldr r0, [sp, #0x14]
+ mov r2, #0
+ cmp r0, #0
+ ble _0223DC6A
+ ldr r4, _0223DD14 ; =0x000021E8
+ add r0, r5, #0
+ add r6, r4, #0
+ sub r6, #0x34
+_0223DC52:
+ ldr r3, [r0, r6]
+ sub r3, r3, #2
+ cmp r3, #1
+ bhi _0223DC60
+ add r3, r5, r1
+ strb r2, [r3, r4]
+ add r1, r1, #1
+_0223DC60:
+ ldr r3, [sp, #0x14]
+ add r2, r2, #1
+ add r0, #0x10
+ cmp r2, r3
+ blt _0223DC52
+_0223DC6A:
+ ldr r0, [sp, #0x14]
+ mov r2, #0
+ cmp r0, #0
+ ble _0223DC94
+ ldr r4, _0223DD14 ; =0x000021E8
+ add r0, r5, #0
+ add r6, r4, #0
+ sub r6, #0x34
+_0223DC7A:
+ ldr r3, [r0, r6]
+ cmp r3, #2
+ beq _0223DC8A
+ cmp r3, #3
+ beq _0223DC8A
+ add r3, r5, r1
+ strb r2, [r3, r4]
+ add r1, r1, #1
+_0223DC8A:
+ ldr r3, [sp, #0x14]
+ add r2, r2, #1
+ add r0, #0x10
+ cmp r2, r3
+ blt _0223DC7A
+_0223DC94:
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x14]
+ sub r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, #0
+ ble _0223DD0C
+_0223DCA2:
+ ldr r0, [sp, #8]
+ add r7, r0, #1
+ ldr r0, [sp, #0x14]
+ cmp r7, r0
+ bge _0223DD00
+ ldr r0, [sp, #8]
+ add r0, r5, r0
+ str r0, [sp, #0x10]
+_0223DCB2:
+ ldr r1, [sp, #0x10]
+ ldr r0, _0223DD14 ; =0x000021E8
+ ldrb r6, [r1, r0]
+ add r1, r5, r7
+ ldrb r4, [r1, r0]
+ lsl r0, r6, #4
+ str r1, [sp, #0xc]
+ add r1, r5, r0
+ ldr r0, _0223DD18 ; =0x000021B4
+ ldr r0, [r1, r0]
+ lsl r1, r4, #4
+ add r2, r5, r1
+ ldr r1, _0223DD18 ; =0x000021B4
+ ldr r1, [r2, r1]
+ cmp r0, r1
+ bne _0223DCF8
+ cmp r0, #1
+ beq _0223DCDA
+ mov r0, #1
+ b _0223DCDC
+_0223DCDA:
+ mov r0, #0
+_0223DCDC:
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD11_02244248
+ cmp r0, #0
+ beq _0223DCF8
+ ldr r1, [sp, #0x10]
+ ldr r0, _0223DD14 ; =0x000021E8
+ strb r4, [r1, r0]
+ ldr r1, [sp, #0xc]
+ strb r6, [r1, r0]
+_0223DCF8:
+ ldr r0, [sp, #0x14]
+ add r7, r7, #1
+ cmp r7, r0
+ blt _0223DCB2
+_0223DD00:
+ ldr r0, [sp, #8]
+ add r1, r0, #1
+ ldr r0, [sp, #0x18]
+ str r1, [sp, #8]
+ cmp r1, r0
+ blt _0223DCA2
+_0223DD0C:
+ mov r0, #7
+ str r0, [r5, #8]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223DD14: .word 0x000021E8
+_0223DD18: .word 0x000021B4
+_0223DD1C: .word 0x000021D4
+
+ thumb_func_start MOD11_0223DD20
+MOD11_0223DD20: ; 0x0223DD20
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r1, #0
+ str r0, [sp]
+ str r1, [sp, #4]
+ bl MOD11_0222FF84
+ add r7, r0, #0
+_0223DD32:
+ ldr r0, [r4, #0x28]
+ cmp r0, #3
+ bls _0223DD3A
+ b _0223DE4A
+_0223DD3A:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223DD46: ; jump table
+ .short _0223DD4E - _0223DD46 - 2 ; case 0
+ .short _0223DDE8 - _0223DD46 - 2 ; case 1
+ .short _0223DE26 - _0223DD46 - 2 ; case 2
+ .short _0223DE42 - _0223DD46 - 2 ; case 3
+_0223DD4E:
+ ldr r0, [r4, #0x2c]
+ cmp r0, r7
+ bge _0223DDDC
+ add r6, r4, #0
+ add r6, #0x2c
+_0223DD58:
+ add r1, r4, r0
+ ldr r0, _0223DE60 ; =0x000021E8
+ ldrb r5, [r1, r0]
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ ldr r1, _0223DE64 ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ ldr r0, [r6]
+ beq _0223DD74
+ add r0, r0, #1
+ str r0, [r6]
+ b _0223DDD6
+_0223DD74:
+ add r0, r0, #1
+ str r0, [r6]
+ mov r0, #0xc0
+ mul r0, r5
+ add r1, r4, r0
+ ldr r0, _0223DE68 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ bne _0223DDD6
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0224683C
+ mov r1, #0x42
+ lsl r1, r1, #2
+ cmp r0, r1
+ bne _0223DDD6
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02247190
+ cmp r0, #0
+ bne _0223DDD6
+ lsl r0, r5, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bne _0223DDD6
+ ldr r0, [sp]
+ bl MOD11_0225679C
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xe8
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #8
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223DDD6:
+ ldr r0, [r4, #0x2c]
+ cmp r0, r7
+ blt _0223DD58
+_0223DDDC:
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x28]
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ b _0223DE4A
+_0223DDE8:
+ mov r6, #0
+ cmp r7, #0
+ ble _0223DE1E
+ add r5, r4, #0
+_0223DDF0:
+ ldr r0, _0223DE6C ; =0x00002DB0
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0x16
+ tst r0, r1
+ beq _0223DE16
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0224683C
+ cmp r0, #0x63
+ beq _0223DE16
+ ldr r0, _0223DE6C ; =0x00002DB0
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0x16
+ and r1, r0
+ ldr r0, _0223DE6C ; =0x00002DB0
+ str r1, [r5, r0]
+_0223DE16:
+ add r6, r6, #1
+ add r5, #0xc0
+ cmp r6, r7
+ blt _0223DDF0
+_0223DE1E:
+ ldr r0, [r4, #0x28]
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ b _0223DE4A
+_0223DE26:
+ mov r6, #0
+ add r5, r4, #0
+_0223DE2A:
+ bl LCRandom
+ ldr r1, _0223DE70 ; =0x0000310C
+ add r6, r6, #1
+ strh r0, [r5, r1]
+ add r5, r5, #2
+ cmp r6, #4
+ blt _0223DE2A
+ ldr r0, [r4, #0x28]
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ b _0223DE4A
+_0223DE42:
+ mov r0, #0
+ str r0, [r4, #0x28]
+ mov r0, #2
+ str r0, [sp, #4]
+_0223DE4A:
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _0223DE52
+ b _0223DD32
+_0223DE52:
+ cmp r0, #2
+ bne _0223DE5A
+ mov r0, #8
+ str r0, [r4, #8]
+_0223DE5A:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223DE60: .word 0x000021E8
+_0223DE64: .word 0x00003108
+_0223DE68: .word 0x00002DAC
+_0223DE6C: .word 0x00002DB0
+_0223DE70: .word 0x0000310C
+
+ thumb_func_start MOD11_0223DE74
+MOD11_0223DE74: ; 0x0223DE74
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0224728C
+ add r0, r5, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ cmp r0, r4
+ bne _0223DEA0
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xec
+ str r1, [r0]
+ mov r0, #9
+ str r0, [r5, #8]
+ pop {r4, r5, r6, pc}
+_0223DEA0:
+ add r1, r5, r0
+ ldr r0, _0223DEB4 ; =0x000021E8
+ ldrb r1, [r1, r0]
+ sub r0, #0x40
+ lsl r1, r1, #4
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ str r0, [r5, #8]
+ pop {r4, r5, r6, pc}
+ nop
+_0223DEB4: .word 0x000021E8
+
+ thumb_func_start MOD11_0223DEB8
+MOD11_0223DEB8: ; 0x0223DEB8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ str r0, [sp]
+ add r4, r1, #0
+ mov r5, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #4]
+_0223DEC8:
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD11_0224246C
+ cmp r0, #1
+ beq _0223DEF2
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_02242510
+ cmp r0, #1
+ beq _0223DEF2
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02241FD8
+ cmp r0, #1
+ bne _0223DEF4
+_0223DEF2:
+ b _0223E684
+_0223DEF4:
+ ldr r0, [r4, #0x10]
+ cmp r0, #0xd
+ bhi _0223DFCE
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223DF06: ; jump table
+ .short _0223DF22 - _0223DF06 - 2 ; case 0
+ .short _0223DFDC - _0223DF06 - 2 ; case 1
+ .short _0223E086 - _0223DF06 - 2 ; case 2
+ .short _0223E132 - _0223DF06 - 2 ; case 3
+ .short _0223E1E0 - _0223DF06 - 2 ; case 4
+ .short _0223E25C - _0223DF06 - 2 ; case 5
+ .short _0223E2D8 - _0223DF06 - 2 ; case 6
+ .short _0223E3A0 - _0223DF06 - 2 ; case 7
+ .short _0223E430 - _0223DF06 - 2 ; case 8
+ .short _0223E4C0 - _0223DF06 - 2 ; case 9
+ .short _0223E554 - _0223DF06 - 2 ; case 10
+ .short _0223E5EA - _0223DF06 - 2 ; case 11
+ .short _0223E62C - _0223DF06 - 2 ; case 12
+ .short _0223E666 - _0223DF06 - 2 ; case 13
+_0223DF22:
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ bge _0223DFCA
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r0, [sp, #0x38]
+ add r0, r4, #0
+ str r0, [sp, #8]
+ add r0, #0x14
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0x1c]
+ mov r0, #0x1c
+ str r0, [sp, #0x18]
+_0223DF40:
+ lsl r0, r6, #2
+ mov r1, #0x6f
+ add r0, r4, r0
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r1, #1
+ tst r1, r2
+ beq _0223DFB6
+ ldr r1, [sp, #0x38]
+ lsl r3, r6, #3
+ ldr r7, [r1, r3]
+ ldr r2, [sp, #0x18]
+ add r1, r7, #0
+ str r7, [sp, #0x2c]
+ bic r1, r2
+ str r1, [sp, #0x2c]
+ lsl r1, r7, #0x1b
+ lsr r1, r1, #0x1d
+ sub r1, r1, #1
+ lsl r1, r1, #0x1d
+ lsr r2, r1, #0x1b
+ ldr r1, [sp, #0x2c]
+ orr r2, r1
+ ldr r1, [sp, #0x38]
+ str r2, [r1, r3]
+ ldr r1, [r1, r3]
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1d
+ bne _0223DFB6
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ ldr r1, [sp, #0x1c]
+ bic r2, r1
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ mov r1, #0x73
+ add r0, r1, #0
+ add r0, #0xb1
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x32
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r0, [sp]
+ add r2, r6, #0
+ bl MOD11_0224C150
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r5, #1
+_0223DFB6:
+ ldr r0, [sp, #8]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #8]
+ cmp r5, #0
+ str r1, [r0]
+ bne _0223DFCA
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ blt _0223DF40
+_0223DFCA:
+ cmp r5, #0
+ beq _0223DFD0
+_0223DFCE:
+ b _0223E668
+_0223DFD0:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223DFDC:
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ bge _0223E076
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r7, r4, r0
+ add r0, r4, #0
+ str r0, [sp, #0xc]
+ add r0, #0x14
+ str r0, [sp, #0xc]
+ mov r0, #2
+ str r0, [sp, #0x20]
+_0223DFF4:
+ lsl r0, r6, #2
+ add r3, r4, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r1, [r3, r0]
+ mov r0, #2
+ tst r0, r1
+ beq _0223E062
+ lsl r2, r6, #3
+ ldr r1, [r7, r2]
+ ldr r0, _0223E340 ; =0xFFFFFC7F
+ and r0, r1
+ str r0, [sp, #0x30]
+ lsl r0, r1, #0x16
+ lsr r0, r0, #0x1d
+ sub r0, r0, #1
+ lsl r0, r0, #0x1d
+ lsr r1, r0, #0x16
+ ldr r0, [sp, #0x30]
+ orr r0, r1
+ str r0, [r7, r2]
+ ldr r0, [r7, r2]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1d
+ bne _0223E062
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r0, [r3, r0]
+ ldr r1, [sp, #0x20]
+ mov r2, #0x32
+ bic r0, r1
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ str r0, [r3, r1]
+ mov r1, #0x71
+ add r0, r1, #0
+ add r0, #0xb3
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r0, [sp]
+ add r2, r6, #0
+ bl MOD11_0224C150
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r5, #1
+_0223E062:
+ ldr r0, [sp, #0xc]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #0xc]
+ cmp r5, #0
+ str r1, [r0]
+ bne _0223E076
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ blt _0223DFF4
+_0223E076:
+ cmp r5, #0
+ bne _0223E124
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223E086:
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ bge _0223E120
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r7, r4, r0
+ add r0, r4, #0
+ str r0, [sp, #0x10]
+ add r0, #0x14
+ str r0, [sp, #0x10]
+ mov r0, #0x40
+ str r0, [sp, #0x24]
+_0223E09E:
+ lsl r0, r6, #2
+ add r3, r4, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r1, [r3, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _0223E10C
+ lsl r2, r6, #3
+ ldr r1, [r7, r2]
+ ldr r0, _0223E344 ; =0xFFFF8FFF
+ and r0, r1
+ str r0, [sp, #0x34]
+ lsl r0, r1, #0x11
+ lsr r0, r0, #0x1d
+ sub r0, r0, #1
+ lsl r0, r0, #0x1d
+ lsr r1, r0, #0x11
+ ldr r0, [sp, #0x34]
+ orr r0, r1
+ str r0, [r7, r2]
+ ldr r0, [r7, r2]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1d
+ bne _0223E10C
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r0, [r3, r0]
+ ldr r1, [sp, #0x24]
+ mov r2, #0x32
+ bic r0, r1
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ str r0, [r3, r1]
+ mov r1, #0x36
+ add r0, r1, #0
+ add r0, #0xee
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r0, [sp]
+ add r2, r6, #0
+ bl MOD11_0224C150
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r5, #1
+_0223E10C:
+ ldr r0, [sp, #0x10]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #0x10]
+ cmp r5, #0
+ str r1, [r0]
+ bne _0223E120
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ blt _0223E09E
+_0223E120:
+ cmp r5, #0
+ beq _0223E126
+_0223E124:
+ b _0223E668
+_0223E126:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223E132:
+ ldr r7, [r4, #0x14]
+ cmp r7, #2
+ bge _0223E1D0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r6, r4, r0
+ add r0, r4, #0
+ str r0, [sp, #0x14]
+ add r0, #0x14
+ str r0, [sp, #0x14]
+ mov r0, #8
+ str r0, [sp, #0x28]
+_0223E14A:
+ lsl r0, r7, #2
+ add r3, r4, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r1, [r3, r0]
+ mov r0, #8
+ tst r0, r1
+ beq _0223E1BC
+ lsl r0, r7, #3
+ ldr r2, [r6, r0]
+ ldr r1, _0223E348 ; =0xFFF1FFFF
+ and r1, r2
+ mov ip, r1
+ lsl r1, r2, #0xc
+ lsr r1, r1, #0x1d
+ sub r1, r1, #1
+ lsl r1, r1, #0x1d
+ lsr r2, r1, #0xc
+ mov r1, ip
+ orr r1, r2
+ str r1, [r6, r0]
+ ldr r1, [r6, r0]
+ lsl r1, r1, #0xc
+ lsr r1, r1, #0x1d
+ bne _0223E1BC
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ ldr r1, [r3, r1]
+ ldr r2, [sp, #0x28]
+ bic r1, r2
+ mov r2, #0x6f
+ lsl r2, r2, #2
+ str r1, [r3, r2]
+ ldr r0, [r6, r0]
+ lsl r0, r0, #0xf
+ lsr r1, r0, #0x1e
+ add r0, r2, #0
+ sub r0, #0xa4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x6e
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r0, [sp]
+ add r2, r7, #0
+ bl MOD11_0224C150
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r5, #1
+_0223E1BC:
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #0x14]
+ cmp r5, #0
+ str r1, [r0]
+ bne _0223E1D0
+ ldr r7, [r4, #0x14]
+ cmp r7, #2
+ blt _0223E14A
+_0223E1D0:
+ cmp r5, #0
+ bne _0223E24E
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223E1E0:
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ bge _0223E24A
+ add r7, r4, #0
+ add r7, #0x14
+_0223E1EA:
+ lsl r0, r6, #2
+ mov r1, #0x6f
+ add r0, r4, r0
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r1, #3
+ lsl r1, r1, #8
+ tst r1, r2
+ beq _0223E23A
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ sub r1, #0xbc
+ sub r2, r2, r1
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ ldr r1, [r0, r1]
+ mov r0, #3
+ lsl r0, r0, #8
+ tst r0, r1
+ bne _0223E23A
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xe9
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r0, [sp]
+ add r2, r6, #0
+ bl MOD11_0224C150
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r5, #1
+_0223E23A:
+ ldr r0, [r7]
+ add r0, r0, #1
+ str r0, [r7]
+ cmp r5, #0
+ bne _0223E24A
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ blt _0223E1EA
+_0223E24A:
+ cmp r5, #0
+ beq _0223E250
+_0223E24E:
+ b _0223E668
+_0223E250:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223E25C:
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ bge _0223E2C8
+ add r7, r4, #0
+ add r7, #0x14
+_0223E266:
+ lsl r0, r6, #2
+ mov r1, #0x6f
+ add r0, r4, r0
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r1, #7
+ lsl r1, r1, #0xc
+ tst r1, r2
+ beq _0223E2B8
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r1, #1
+ lsl r1, r1, #0xc
+ sub r2, r2, r1
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ ldr r1, [r0, r1]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r1
+ bne _0223E2B8
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xfa
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r0, [sp]
+ add r2, r6, #0
+ bl MOD11_0224C150
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r5, #1
+_0223E2B8:
+ ldr r0, [r7]
+ add r0, r0, #1
+ str r0, [r7]
+ cmp r5, #0
+ bne _0223E2C8
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ blt _0223E266
+_0223E2C8:
+ cmp r5, #0
+ bne _0223E392
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223E2D8:
+ ldr r0, [r4, #0x14]
+ ldr r1, [sp, #4]
+ cmp r0, r1
+ bge _0223E38E
+ add r6, r4, #0
+ mov r7, #2
+ add r6, #0x14
+_0223E2E6:
+ add r1, r4, r0
+ ldr r0, _0223E34C ; =0x000021EC
+ ldrb r2, [r1, r0]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ add r1, r4, r2
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _0223E37C
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldrb r0, [r1, r0]
+ sub r3, r0, #1
+ mov r0, #0x63
+ lsl r0, r0, #2
+ strb r3, [r1, r0]
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _0223E37C
+ mov r0, #0xc0
+ mul r0, r2
+ ldr r3, _0223E350 ; =0x00002D8C
+ add r0, r4, r0
+ ldr r3, [r0, r3]
+ cmp r3, #0
+ beq _0223E37C
+ mov r3, #0x46
+ lsl r3, r3, #2
+ str r2, [r4, r3]
+ add r3, r4, #0
+ add r3, #0xf5
+ strb r7, [r3]
+ add r5, r4, #0
+ ldr r3, _0223E354 ; =0x00000215
+ add r5, #0xf6
+ strh r3, [r5]
+ sub r3, #0x5d
+ ldrb r1, [r1, r3]
+ lsl r1, r1, #8
+ orr r2, r1
+ add r1, r4, #0
+ add r1, #0xf8
+ str r2, [r1]
+ ldr r1, _0223E358 ; =0x00002D90
+ b _0223E35C
+ .align 2, 0
+_0223E340: .word 0xFFFFFC7F
+_0223E344: .word 0xFFFF8FFF
+_0223E348: .word 0xFFF1FFFF
+_0223E34C: .word 0x000021EC
+_0223E350: .word 0x00002D8C
+_0223E354: .word 0x00000215
+_0223E358: .word 0x00002D90
+_0223E35C:
+ ldr r0, [r0, r1]
+ add r1, r7, #0
+ bl MOD11_022476C0
+ ldr r1, _0223E688 ; =0x0000215C
+ mov r2, #0x88
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r5, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223E37C:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+ cmp r5, #0
+ bne _0223E38E
+ ldr r0, [r4, #0x14]
+ ldr r1, [sp, #4]
+ cmp r0, r1
+ blt _0223E2E6
+_0223E38E:
+ cmp r5, #0
+ beq _0223E394
+_0223E392:
+ b _0223E668
+_0223E394:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223E3A0:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r2, #3
+ tst r2, r1
+ beq _0223E428
+ mov r2, #2
+ tst r1, r2
+ beq _0223E3D6
+ add r0, r4, #0
+ ldr r1, _0223E68C ; =0x00000321
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E41E
+_0223E3D6:
+ add r1, r0, #4
+ ldr r1, [r4, r1]
+ sub r2, r1, #1
+ add r1, r0, #4
+ str r2, [r4, r1]
+ add r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0223E3FC
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xea
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E41E
+_0223E3FC:
+ add r0, r4, #0
+ ldr r1, _0223E68C ; =0x00000321
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223E41E:
+ mov r0, #0x4e
+ mov r1, #0x13
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r5, #1
+_0223E428:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _0223E668
+_0223E430:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r2, #0xc
+ tst r2, r1
+ beq _0223E4B8
+ mov r2, #8
+ tst r1, r2
+ beq _0223E466
+ add r0, r4, #0
+ ldr r1, _0223E690 ; =0x00000325
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E4AE
+_0223E466:
+ add r1, r0, #4
+ ldr r1, [r4, r1]
+ sub r2, r1, #1
+ add r1, r0, #4
+ str r2, [r4, r1]
+ add r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0223E48C
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xeb
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E4AE
+_0223E48C:
+ add r0, r4, #0
+ ldr r1, _0223E690 ; =0x00000325
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223E4AE:
+ mov r0, #0x4e
+ mov r1, #0x15
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r5, #1
+_0223E4B8:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _0223E668
+_0223E4C0:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r2, #0x30
+ tst r2, r1
+ beq _0223E54C
+ mov r2, #0x20
+ tst r1, r2
+ beq _0223E4F8
+ mov r1, #0xca
+ add r0, r4, #0
+ lsl r1, r1, #2
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E542
+_0223E4F8:
+ add r1, r0, #4
+ ldr r1, [r4, r1]
+ sub r2, r1, #1
+ add r1, r0, #4
+ str r2, [r4, r1]
+ add r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0223E51E
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xec
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E542
+_0223E51E:
+ mov r1, #0xca
+ add r0, r4, #0
+ lsl r1, r1, #2
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223E542:
+ mov r0, #0x4e
+ mov r1, #0x16
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r5, #1
+_0223E54C:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _0223E668
+_0223E554:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r2, [r4, r0]
+ mov r1, #0xc0
+ add r0, r2, #0
+ tst r0, r1
+ beq _0223E5E2
+ mov r0, #0x80
+ tst r0, r2
+ beq _0223E58C
+ add r0, r4, #0
+ ldr r1, _0223E694 ; =0x0000032B
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E5D8
+_0223E58C:
+ add r0, r1, #0
+ add r0, #0xc4
+ ldr r0, [r4, r0]
+ sub r2, r0, #1
+ add r0, r1, #0
+ add r0, #0xc4
+ add r1, #0xc4
+ str r2, [r4, r0]
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _0223E5B6
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xed
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E5D8
+_0223E5B6:
+ add r0, r4, #0
+ ldr r1, _0223E694 ; =0x0000032B
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223E5D8:
+ mov r0, #0x4e
+ mov r1, #0x14
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r5, #1
+_0223E5E2:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _0223E668
+_0223E5EA:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0xe
+ tst r0, r1
+ beq _0223E624
+ add r0, r4, #0
+ ldr r1, _0223E698 ; =0x0000032D
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r1, #0x12
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r5, #1
+_0223E624:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _0223E668
+_0223E62C:
+ mov r1, #6
+ lsl r1, r1, #6
+ ldr r3, [r4, r1]
+ mov r2, #7
+ lsl r2, r2, #0xc
+ add r0, r3, #0
+ tst r0, r2
+ beq _0223E65E
+ mov r0, #1
+ lsl r0, r0, #0xc
+ sub r0, r3, r0
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ tst r0, r2
+ bne _0223E65E
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xee
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r5, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223E65E:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _0223E668
+_0223E666:
+ mov r5, #2
+_0223E668:
+ cmp r5, #0
+ bne _0223E66E
+ b _0223DEC8
+_0223E66E:
+ cmp r5, #1
+ bne _0223E678
+ ldr r0, [sp]
+ bl MOD11_0225679C
+_0223E678:
+ cmp r5, #2
+ bne _0223E684
+ mov r0, #0
+ str r0, [r4, #0x10]
+ mov r0, #0xa
+ str r0, [r4, #8]
+_0223E684:
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223E688: .word 0x0000215C
+_0223E68C: .word 0x00000321
+_0223E690: .word 0x00000325
+_0223E694: .word 0x0000032B
+_0223E698: .word 0x0000032D
+
+ thumb_func_start MOD11_0223E69C
+MOD11_0223E69C: ; 0x0223E69C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r1, #0
+ mov r1, #0
+ str r1, [sp, #0x10]
+ str r0, [sp, #4]
+ bl MOD11_0222FF84
+ ldr r1, [r4, #8]
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD11_0224246C
+ cmp r0, #1
+ beq _0223E6D8
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_02242510
+ cmp r0, #1
+ beq _0223E6D8
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_02241FD8
+ cmp r0, #1
+ bne _0223E6DC
+_0223E6D8:
+ bl _0223F0B2
+_0223E6DC:
+ ldr r1, [r4, #0x1c]
+ ldr r0, [sp, #0xc]
+ cmp r1, r0
+ blt _0223E6E8
+ bl _0223F0A8
+_0223E6E8:
+ ldr r0, _0223EA14 ; =0x000021EC
+ add r1, r4, r1
+ ldrb r5, [r1, r0]
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ ldr r1, _0223EA18 ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ beq _0223E706
+ ldr r0, [r4, #0x1c]
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+ bl _0223F09C
+_0223E706:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0x1a
+ bls _0223E710
+ bl _0223F08C
+_0223E710:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223E71C: ; jump table
+ .short _0223E752 - _0223E71C - 2 ; case 0
+ .short _0223E7BA - _0223E71C - 2 ; case 1
+ .short _0223E83C - _0223E71C - 2 ; case 2
+ .short _0223E856 - _0223E71C - 2 ; case 3
+ .short _0223E872 - _0223E71C - 2 ; case 4
+ .short _0223E88C - _0223E71C - 2 ; case 5
+ .short _0223E8F6 - _0223E71C - 2 ; case 6
+ .short _0223E948 - _0223E71C - 2 ; case 7
+ .short _0223E9C8 - _0223E71C - 2 ; case 8
+ .short _0223EA04 - _0223E71C - 2 ; case 9
+ .short _0223EA72 - _0223E71C - 2 ; case 10
+ .short _0223EAB0 - _0223E71C - 2 ; case 11
+ .short _0223EB2A - _0223E71C - 2 ; case 12
+ .short _0223EBAE - _0223E71C - 2 ; case 13
+ .short _0223ECA6 - _0223E71C - 2 ; case 14
+ .short _0223ED0E - _0223E71C - 2 ; case 15
+ .short _0223ED90 - _0223E71C - 2 ; case 16
+ .short _0223EE56 - _0223E71C - 2 ; case 17
+ .short _0223EE74 - _0223E71C - 2 ; case 18
+ .short _0223EEBA - _0223E71C - 2 ; case 19
+ .short _0223EF06 - _0223E71C - 2 ; case 20
+ .short _0223EF50 - _0223E71C - 2 ; case 21
+ .short _0223EF9A - _0223E71C - 2 ; case 22
+ .short _0223EFE4 - _0223E71C - 2 ; case 23
+ .short _0223F034 - _0223E71C - 2 ; case 24
+ .short _0223F068 - _0223E71C - 2 ; case 25
+ .short _0223F082 - _0223E71C - 2 ; case 26
+_0223E752:
+ mov r6, #0xc0
+ add r0, r5, #0
+ mul r0, r6
+ add r3, r4, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ mov r1, #1
+ ldr r2, [r3, r0]
+ lsl r1, r1, #0xa
+ tst r1, r2
+ beq _0223E7B0
+ add r1, r0, #0
+ sub r1, #0x34
+ ldr r2, [r3, r1]
+ add r1, r0, #0
+ sub r1, #0x30
+ ldr r1, [r3, r1]
+ cmp r2, r1
+ beq _0223E7B0
+ cmp r2, #0
+ beq _0223E7B0
+ add r0, #0xc
+ ldr r0, [r3, r0]
+ lsl r0, r0, #0xd
+ lsr r0, r0, #0x1d
+ beq _0223E796
+ add r6, #0x58
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xef
+ str r5, [r4, r6]
+ bl MOD11_022431DC
+ b _0223E7A4
+_0223E796:
+ add r6, #0x58
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x89
+ str r5, [r4, r6]
+ bl MOD11_022431DC
+_0223E7A4:
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E7B0:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ bl _0223F08C
+_0223E7BA:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r6, r4, r1
+ mov r1, #0xb7
+ lsl r1, r1, #6
+ mov r2, #1
+ ldr r3, [r6, r1]
+ lsl r2, r2, #0x18
+ tst r2, r3
+ beq _0223E832
+ add r2, r1, #0
+ sub r2, #0x34
+ ldr r3, [r6, r2]
+ add r2, r1, #0
+ sub r2, #0x30
+ ldr r2, [r6, r2]
+ cmp r3, r2
+ beq _0223E832
+ cmp r3, #0
+ beq _0223E832
+ add r2, r1, #0
+ add r2, #0xc
+ ldr r2, [r6, r2]
+ lsl r2, r2, #0xd
+ lsr r2, r2, #0x1d
+ beq _0223E800
+ add r0, #0x58
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xef
+ bl MOD11_022431DC
+ b _0223E826
+_0223E800:
+ add r2, r0, #0
+ add r2, #0x58
+ str r5, [r4, r2]
+ add r2, r0, #0
+ add r2, #0xc8
+ add r0, #0x64
+ sub r1, #0x30
+ str r2, [r4, r0]
+ ldr r0, [r6, r1]
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _0223EA1C ; =0x0000215C
+ mov r2, #0xa9
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+_0223E826:
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E832:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ bl _0223F08C
+_0223E83C:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022475B8
+ cmp r0, #1
+ bne _0223E84C
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E84C:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ bl _0223F08C
+_0223E856:
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_02248C0C
+ cmp r0, #1
+ bne _0223E868
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E868:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ bl _0223F08C
+_0223E872:
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_022492A4
+ cmp r0, #1
+ bne _0223E884
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E884:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223E88C:
+ mov r3, #0xc0
+ add r0, r5, #0
+ mul r0, r3
+ mov r2, #0xb7
+ add r6, r4, r0
+ lsl r2, r2, #6
+ ldr r0, [r6, r2]
+ mov r1, #4
+ tst r1, r0
+ beq _0223E8EE
+ mov r1, #3
+ and r0, r1
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r4, r1
+ sub r2, #0x34
+ ldr r0, [r0, r2]
+ cmp r0, #0
+ beq _0223E8EE
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _0223E8EE
+ ldr r0, _0223EA20 ; =0x00002D8C
+ ldr r1, [r6, r0]
+ cmp r1, #0
+ beq _0223E8EE
+ add r0, #0x34
+ ldr r1, [r6, r0]
+ mov r0, #3
+ and r1, r0
+ mov r0, #0x47
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r0, #4
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x45
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E8EE:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223E8F6:
+ mov r2, #0xc0
+ add r0, r5, #0
+ mul r0, r2
+ ldr r3, _0223EA24 ; =0x00002DAC
+ add r0, r4, r0
+ ldr r1, [r0, r3]
+ mov r6, #8
+ tst r1, r6
+ beq _0223E940
+ add r1, r3, #0
+ sub r1, #0x20
+ ldr r1, [r0, r1]
+ cmp r1, #0
+ beq _0223E940
+ add r2, #0x58
+ str r5, [r4, r2]
+ sub r3, #0x1c
+ ldr r1, [r0, r3]
+ add r0, r6, #0
+ sub r0, #9
+ mul r0, r1
+ add r1, r6, #0
+ bl MOD11_022476C0
+ ldr r1, _0223EA1C ; =0x0000215C
+ mov r2, #0x17
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E940:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223E948:
+ mov r0, #0xc0
+ mul r0, r5
+ ldr r1, _0223EA24 ; =0x00002DAC
+ add r6, r4, r0
+ ldr r0, [r6, r1]
+ mov r2, #0x80
+ tst r0, r2
+ beq _0223E9C0
+ add r0, r1, #0
+ sub r0, #0x20
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _0223E9C0
+ add r2, #0x98
+ str r5, [r4, r2]
+ sub r1, #0x1c
+ ldr r0, [r6, r1]
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _0223EA1C ; =0x0000215C
+ str r0, [r4, r1]
+ ldr r1, _0223EA24 ; =0x00002DAC
+ mov r0, #0xf
+ ldr r2, [r6, r1]
+ lsl r0, r0, #8
+ add r3, r2, #0
+ and r3, r0
+ cmp r3, r0
+ beq _0223E98C
+ mov r0, #1
+ lsl r0, r0, #8
+ add r0, r2, r0
+ str r0, [r6, r1]
+_0223E98C:
+ ldr r2, _0223EA24 ; =0x00002DAC
+ ldr r0, _0223EA1C ; =0x0000215C
+ ldr r3, [r6, r2]
+ mov r2, #0xf
+ lsl r2, r2, #8
+ and r2, r3
+ ldr r1, [r4, r0]
+ lsr r2, r2, #8
+ mul r2, r1
+ str r2, [r4, r0]
+ mov r1, #0
+ ldr r2, [r4, r0]
+ mvn r1, r1
+ mul r1, r2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x17
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E9C0:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223E9C8:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r6, r4, r1
+ ldr r1, _0223EA24 ; =0x00002DAC
+ mov r2, #0x10
+ ldr r3, [r6, r1]
+ tst r2, r3
+ beq _0223E9FC
+ sub r1, #0x20
+ ldr r1, [r6, r1]
+ cmp r1, #0
+ beq _0223E9FC
+ add r0, #0x58
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1a
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E9FC:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EA04:
+ mov r6, #0xc0
+ add r0, r5, #0
+ mul r0, r6
+ add r3, r4, r0
+ ldr r7, _0223EA28 ; =0x00002DB0
+ ldr r0, _0223EA18 ; =0x00003108
+ b _0223EA2C
+ nop
+_0223EA14: .word 0x000021EC
+_0223EA18: .word 0x00003108
+_0223EA1C: .word 0x0000215C
+_0223EA20: .word 0x00002D8C
+_0223EA24: .word 0x00002DAC
+_0223EA28: .word 0x00002DB0
+_0223EA2C:
+ ldr r2, [r3, r7]
+ lsl r0, r0, #0x18
+ tst r0, r2
+ beq _0223EA6A
+ add r0, r7, #0
+ sub r0, #0x24
+ ldr r0, [r3, r0]
+ cmp r0, #0
+ beq _0223EA6A
+ sub r0, r7, #4
+ ldr r1, [r3, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0223EA64
+ add r6, #0x58
+ str r5, [r4, r6]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x5e
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ b _0223EA6A
+_0223EA64:
+ ldr r0, _0223ED9C ; =0xF7FFFFFF
+ and r0, r2
+ str r0, [r3, r7]
+_0223EA6A:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EA72:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r6, r4, r1
+ ldr r1, _0223EDA0 ; =0x00002DB0
+ mov r2, #1
+ ldr r3, [r6, r1]
+ lsl r2, r2, #0x1c
+ tst r2, r3
+ beq _0223EAA8
+ sub r1, #0x24
+ ldr r1, [r6, r1]
+ cmp r1, #0
+ beq _0223EAA8
+ add r0, #0x58
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x62
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EAA8:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EAB0:
+ mov r1, #0xc0
+ add r0, r5, #0
+ mul r0, r1
+ ldr r2, _0223EDA0 ; =0x00002DB0
+ add r6, r4, r0
+ ldr r3, [r6, r2]
+ mov r7, #0xe
+ lsl r7, r7, #0xc
+ add r0, r3, #0
+ tst r0, r7
+ beq _0223EB22
+ add r0, r2, #0
+ sub r0, #0x24
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _0223EB22
+ mov r0, #2
+ lsl r0, r0, #0xc
+ sub r0, r3, r0
+ str r0, [r6, r2]
+ ldr r0, [r6, r2]
+ tst r0, r7
+ beq _0223EAFE
+ sub r2, #0x20
+ ldr r2, [r6, r2]
+ sub r1, #0xc1
+ add r0, r2, #0
+ mul r0, r1
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _0223EDA4 ; =0x0000215C
+ mov r2, #0x3b
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ b _0223EB08
+_0223EAFE:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x3c
+ bl MOD11_022431DC
+_0223EB08:
+ ldr r0, _0223EDA8 ; =0x00002DEA
+ ldrh r1, [r6, r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r0, #0xc
+ str r5, [r4, r0]
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EB22:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EB2A:
+ mov r0, #0x7b
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ mov r2, #4
+ add r3, r5, #0
+ bl MOD11_02246870
+ mov r1, #0x4e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0xc0
+ mul r0, r5
+ add r6, r4, r0
+ ldr r0, _0223EDAC ; =0x00002DAC
+ ldr r1, [r6, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0223EBA6
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _0223EBA6
+ ldr r1, _0223EDB0 ; =0x00002D8C
+ ldr r0, [r6, r1]
+ cmp r0, #0
+ beq _0223EBA6
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0223EBA6
+ add r0, r1, #4
+ ldr r1, [r6, r0]
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r1
+ mov r1, #8
+ bl MOD11_022476C0
+ ldr r1, _0223EDA4 ; =0x0000215C
+ ldr r2, _0223EDB4 ; =0x00000107
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, _0223EDB8 ; =0x0000213C
+ mov r1, #0x40
+ ldr r2, [r4, r0]
+ orr r2, r1
+ str r2, [r4, r0]
+ add r1, #0xd8
+ str r5, [r4, r1]
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EBA6:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EBAE:
+ mov r0, #0xc0
+ mul r0, r5
+ add r7, r4, r0
+ ldr r0, _0223EDA0 ; =0x00002DB0
+ ldr r1, [r7, r0]
+ mov r0, #0x70
+ tst r0, r1
+ beq _0223EC96
+ ldr r0, [sp, #0xc]
+ mov r6, #0
+ cmp r0, #0
+ ble _0223EC08
+_0223EBC6:
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r4, r0
+ ldr r0, _0223EDAC ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0223EBFC
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2b
+ beq _0223EBFC
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r6, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x13
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223EC08
+_0223EBFC:
+ add r0, r6, #1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r0, [sp, #0xc]
+ cmp r6, r0
+ blt _0223EBC6
+_0223EC08:
+ ldr r0, [sp, #0xc]
+ cmp r6, r0
+ beq _0223EC14
+ mov r0, #2
+ str r0, [sp, #0x10]
+ b _0223F08C
+_0223EC14:
+ ldr r0, _0223EDA0 ; =0x00002DB0
+ ldr r1, [r7, r0]
+ sub r1, #0x10
+ str r1, [r7, r0]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246764
+ cmp r0, #0
+ ldr r2, _0223EDA0 ; =0x00002DB0
+ beq _0223EC4E
+ ldr r1, [r7, r2]
+ mov r0, #0x70
+ bic r1, r0
+ mov r6, #0xf1
+ add r0, r5, #0
+ str r1, [r7, r2]
+ bl MaskOfFlagNo
+ add r3, r6, #0
+ add r3, #0x8f
+ lsl r2, r0, #8
+ add r0, r6, #0
+ sub r0, #0xf2
+ ldr r1, [r4, r3]
+ eor r0, r2
+ and r0, r1
+ str r0, [r4, r3]
+ b _0223EC7A
+_0223EC4E:
+ ldr r1, [r7, r2]
+ mov r0, #0x70
+ tst r0, r1
+ beq _0223EC5A
+ mov r6, #0xf0
+ b _0223EC7A
+_0223EC5A:
+ mov r0, #0x70
+ bic r1, r0
+ mov r6, #0xf1
+ add r0, r5, #0
+ str r1, [r7, r2]
+ bl MaskOfFlagNo
+ add r3, r6, #0
+ add r3, #0x8f
+ lsl r2, r0, #8
+ add r0, r6, #0
+ sub r0, #0xf2
+ ldr r1, [r4, r3]
+ eor r0, r2
+ and r0, r1
+ str r0, [r4, r3]
+_0223EC7A:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r6, #0
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EC96:
+ ldr r0, [sp, #0x10]
+ cmp r0, #2
+ bne _0223EC9E
+ b _0223F08C
+_0223EC9E:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223ECA6:
+ mov r2, #0xc0
+ add r0, r5, #0
+ mul r0, r2
+ add r6, r4, r0
+ ldr r0, _0223EDA0 ; =0x00002DB0
+ lsl r2, r2, #4
+ ldr r1, [r6, r0]
+ tst r2, r1
+ beq _0223ED06
+ mov r2, #1
+ lsl r2, r2, #0xa
+ sub r1, r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246764
+ cmp r0, #0
+ beq _0223ECD8
+ ldr r1, _0223EDA0 ; =0x00002DB0
+ ldr r0, _0223EDBC ; =0xFFFFF3FF
+ ldr r2, [r6, r1]
+ and r0, r2
+ str r0, [r6, r1]
+ b _0223ED06
+_0223ECD8:
+ ldr r0, _0223EDA0 ; =0x00002DB0
+ ldr r1, [r6, r0]
+ mov r0, #3
+ lsl r0, r0, #0xa
+ tst r0, r1
+ bne _0223ED06
+ mov r0, #7
+ tst r0, r1
+ bne _0223ED06
+ add r0, r4, #0
+ add r0, #0x94
+ str r5, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x33
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223ED06:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223ED0E:
+ mov r0, #0xc0
+ add r6, r5, #0
+ mul r6, r0
+ add r0, r4, r6
+ ldr r1, _0223EDC0 ; =0x00002DE8
+ mov ip, r0
+ ldrh r3, [r0, r1]
+ cmp r3, #0
+ beq _0223ED88
+ ldr r7, _0223EDC4 ; =0x00002D4C
+ mov r2, #0
+ mov r1, ip
+_0223ED26:
+ ldrh r0, [r1, r7]
+ cmp r3, r0
+ beq _0223ED34
+ add r2, r2, #1
+ add r1, r1, #2
+ cmp r2, #4
+ blt _0223ED26
+_0223ED34:
+ cmp r2, #4
+ bne _0223ED44
+ ldr r0, _0223EDC8 ; =0x00002DC8
+ add r1, r4, r0
+ ldr r2, [r1, r6]
+ mov r0, #7
+ bic r2, r0
+ str r2, [r1, r6]
+_0223ED44:
+ ldr r1, _0223EDC8 ; =0x00002DC8
+ add r0, r4, r6
+ ldr r0, [r0, r1]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1d
+ beq _0223ED64
+ add r2, r4, r1
+ ldr r1, [r2, r6]
+ mov r3, #7
+ bic r1, r3
+ sub r3, r0, #1
+ mov r0, #7
+ and r0, r3
+ orr r0, r1
+ str r0, [r2, r6]
+ b _0223ED88
+_0223ED64:
+ mov r2, #0
+ add r1, #0x20
+ mov r0, ip
+ strh r2, [r0, r1]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x48
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223ED88:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223ED90:
+ mov r0, #0xc0
+ add r6, r5, #0
+ mul r6, r0
+ add r0, r4, r6
+ ldr r1, _0223EDCC ; =0x00002DEC
+ b _0223EDD0
+ .align 2, 0
+_0223ED9C: .word 0xF7FFFFFF
+_0223EDA0: .word 0x00002DB0
+_0223EDA4: .word 0x0000215C
+_0223EDA8: .word 0x00002DEA
+_0223EDAC: .word 0x00002DAC
+_0223EDB0: .word 0x00002D8C
+_0223EDB4: .word 0x00000107
+_0223EDB8: .word 0x0000213C
+_0223EDBC: .word 0xFFFFF3FF
+_0223EDC0: .word 0x00002DE8
+_0223EDC4: .word 0x00002D4C
+_0223EDC8: .word 0x00002DC8
+_0223EDCC: .word 0x00002DEC
+_0223EDD0:
+ str r0, [sp, #8]
+ ldrh r2, [r0, r1]
+ cmp r2, #0
+ beq _0223EE4E
+ ldr r7, _0223F0B8 ; =0x00002D4C
+ mov r3, #0
+ add r1, r0, #0
+_0223EDDE:
+ ldrh r0, [r1, r7]
+ cmp r2, r0
+ beq _0223EDEC
+ add r3, r3, #1
+ add r1, r1, #2
+ cmp r3, #4
+ blt _0223EDDE
+_0223EDEC:
+ cmp r3, #4
+ beq _0223EDFE
+ beq _0223EE0A
+ ldr r0, [sp, #8]
+ add r1, r0, r3
+ ldr r0, _0223F0BC ; =0x00002D6C
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _0223EE0A
+_0223EDFE:
+ ldr r0, _0223F0C0 ; =0x00002DC8
+ add r2, r4, r0
+ ldr r1, [r2, r6]
+ mov r0, #0x38
+ bic r1, r0
+ str r1, [r2, r6]
+_0223EE0A:
+ ldr r1, _0223F0C0 ; =0x00002DC8
+ add r0, r4, r6
+ ldr r0, [r0, r1]
+ lsl r0, r0, #0x1a
+ lsr r2, r0, #0x1d
+ beq _0223EE2A
+ add r1, r4, r1
+ sub r2, r2, #1
+ lsl r2, r2, #0x1d
+ ldr r0, [r1, r6]
+ mov r3, #0x38
+ bic r0, r3
+ lsr r2, r2, #0x1a
+ orr r0, r2
+ str r0, [r1, r6]
+ b _0223EE4E
+_0223EE2A:
+ ldr r0, [sp, #8]
+ mov r2, #0
+ add r1, #0x24
+ strh r2, [r0, r1]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x4a
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EE4E:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EE56:
+ mov r0, #0xc0
+ mul r0, r5
+ add r3, r4, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r2, [r3, r0]
+ mov r1, #0x18
+ tst r1, r2
+ beq _0223EE6C
+ sub r2, #8
+ str r2, [r3, r0]
+_0223EE6C:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EE74:
+ mov r0, #0xc0
+ mul r0, r5
+ ldr r2, _0223F0C0 ; =0x00002DC8
+ add r5, r4, r0
+ ldr r1, [r5, r2]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1e
+ beq _0223EEB2
+ add r3, r4, r2
+ ldr r6, [r3, r0]
+ mov r1, #0xc0
+ add r7, r6, #0
+ bic r7, r1
+ lsl r1, r6, #0x18
+ lsr r1, r1, #0x1e
+ sub r1, r1, #1
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x18
+ orr r1, r7
+ str r1, [r3, r0]
+ ldr r0, [r3, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ bne _0223EEB2
+ add r0, r2, #0
+ sub r0, #8
+ ldr r1, [r5, r0]
+ ldr r0, _0223F0C4 ; =0xFFFFFDFF
+ sub r2, #8
+ and r0, r1
+ str r0, [r5, r2]
+_0223EEB2:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EEBA:
+ ldr r0, _0223F0C0 ; =0x00002DC8
+ mov r2, #0xc0
+ add r3, r5, #0
+ mul r3, r2
+ add r1, r4, r0
+ ldr r7, [r1, r3]
+ lsl r0, r7, #0x15
+ lsr r6, r0, #0x1d
+ beq _0223EEFE
+ ldr r0, _0223F0C8 ; =0xFFFFF8FF
+ and r7, r0
+ sub r0, r6, #1
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x15
+ orr r0, r7
+ str r0, [r1, r3]
+ ldr r0, [r1, r3]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x1d
+ bne _0223EEFE
+ add r0, r2, #0
+ add r0, #0x58
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, #0x60
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EEFE:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EF06:
+ ldr r0, _0223F0CC ; =0x00002DCC
+ mov r1, #0xc0
+ add r3, r5, #0
+ mul r3, r1
+ add r2, r4, r0
+ ldr r7, [r2, r3]
+ lsl r0, r7, #0x10
+ lsr r6, r0, #0x1d
+ beq _0223EF48
+ ldr r0, _0223F0D0 ; =0xFFFF1FFF
+ and r7, r0
+ sub r0, r6, #1
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x10
+ orr r0, r7
+ str r0, [r2, r3]
+ ldr r0, [r2, r3]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1d
+ bne _0223EF48
+ add r1, #0x58
+ str r5, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xf2
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EF48:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EF50:
+ ldr r0, _0223F0CC ; =0x00002DCC
+ mov r1, #0xc0
+ add r3, r5, #0
+ mul r3, r1
+ add r2, r4, r0
+ ldr r7, [r2, r3]
+ lsl r0, r7, #0xd
+ lsr r6, r0, #0x1d
+ beq _0223EF92
+ ldr r0, _0223F0D4 ; =0xFFF8FFFF
+ and r7, r0
+ sub r0, r6, #1
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0xd
+ orr r0, r7
+ str r0, [r2, r3]
+ ldr r0, [r2, r3]
+ lsl r0, r0, #0xd
+ lsr r0, r0, #0x1d
+ bne _0223EF92
+ add r1, #0x58
+ str r5, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xf3
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EF92:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EF9A:
+ ldr r0, _0223F0CC ; =0x00002DCC
+ mov r1, #0xc0
+ add r3, r5, #0
+ mul r3, r1
+ add r2, r4, r0
+ ldr r7, [r2, r3]
+ lsl r0, r7, #0xa
+ lsr r6, r0, #0x1d
+ beq _0223EFDC
+ ldr r0, _0223F0D8 ; =0xFFC7FFFF
+ and r7, r0
+ sub r0, r6, #1
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0xa
+ orr r0, r7
+ str r0, [r2, r3]
+ ldr r0, [r2, r3]
+ lsl r0, r0, #0xa
+ lsr r0, r0, #0x1d
+ bne _0223EFDC
+ add r1, #0x58
+ str r5, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xf4
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EFDC:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EFE4:
+ mov r6, #0xc0
+ add r0, r5, #0
+ mul r0, r6
+ mov r3, #0xb7
+ add r1, r4, r0
+ lsl r3, r3, #6
+ ldr r0, [r1, r3]
+ lsl r2, r6, #5
+ tst r2, r0
+ beq _0223F02C
+ mov r2, #2
+ lsl r2, r2, #0xa
+ sub r0, r0, r2
+ str r0, [r1, r3]
+ ldr r1, [r1, r3]
+ lsl r0, r6, #5
+ tst r0, r1
+ bne _0223F02C
+ add r0, r4, #0
+ add r0, #0x94
+ str r5, [r0]
+ add r0, r4, #0
+ mov r1, #4
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x12
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223F02C:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223F034:
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ add r2, r5, #0
+ add r3, sp, #0x14
+ bl MOD11_022493A0
+ cmp r0, #1
+ bne _0223F060
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ ldr r2, [sp, #0x14]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223F060:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223F068:
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_02249A7C
+ cmp r0, #1
+ bne _0223F07A
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223F07A:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223F082:
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x1c]
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+_0223F08C:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _0223F09C
+ ldr r0, [sp, #4]
+ bl MOD11_0225679C
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F09C:
+ ldr r1, [r4, #0x1c]
+ ldr r0, [sp, #0xc]
+ cmp r1, r0
+ bge _0223F0A8
+ bl _0223E6E8
+_0223F0A8:
+ mov r0, #0
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x1c]
+ mov r0, #0xb
+ str r0, [r4, #8]
+_0223F0B2:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223F0B8: .word 0x00002D4C
+_0223F0BC: .word 0x00002D6C
+_0223F0C0: .word 0x00002DC8
+_0223F0C4: .word 0xFFFFFDFF
+_0223F0C8: .word 0xFFFFF8FF
+_0223F0CC: .word 0x00002DCC
+_0223F0D0: .word 0xFFFF1FFF
+_0223F0D4: .word 0xFFF8FFFF
+_0223F0D8: .word 0xFFC7FFFF
+
+ thumb_func_start MOD11_0223F0DC
+MOD11_0223F0DC: ; 0x0223F0DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ str r0, [sp]
+ bl MOD11_0222FF84
+ ldr r1, [r4, #8]
+ add r7, r0, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD11_0224246C
+ cmp r0, #1
+ bne _0223F0FC
+ b _0223F30C
+_0223F0FC:
+ ldr r0, [sp]
+ bl MOD11_0225679C
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ beq _0223F114
+ cmp r0, #1
+ beq _0223F1FE
+ cmp r0, #2
+ bne _0223F112
+ b _0223F2C4
+_0223F112:
+ b _0223F302
+_0223F114:
+ ldr r0, [r4, #0x24]
+ cmp r0, r7
+ bge _0223F1F4
+ add r5, r4, #0
+ add r5, #0x24
+_0223F11E:
+ add r1, r4, r0
+ ldr r0, _0223F310 ; =0x000021EC
+ ldrb r6, [r1, r0]
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ ldr r1, _0223F314 ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ ldr r0, [r5]
+ beq _0223F13A
+ add r0, r0, #1
+ str r0, [r5]
+ b _0223F1EE
+_0223F13A:
+ add r0, r0, #1
+ mov r1, #0x62
+ str r0, [r5]
+ add r0, r4, r6
+ lsl r1, r1, #2
+ ldrb r1, [r0, r1]
+ cmp r1, #0
+ beq _0223F1EE
+ mov r1, #0x62
+ lsl r1, r1, #2
+ ldrb r1, [r0, r1]
+ sub r2, r1, #1
+ mov r1, #0x62
+ lsl r1, r1, #2
+ strb r2, [r0, r1]
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _0223F1EE
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r4, r0
+ ldr r0, _0223F318 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0223F1EE
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_02230270
+ mov r2, #0x6f
+ lsl r2, r2, #2
+ add r1, r4, r2
+ lsl r5, r0, #2
+ ldr r3, [r1, r5]
+ mov r0, #0x10
+ bic r3, r0
+ add r0, r4, #0
+ str r3, [r1, r5]
+ add r2, #0x1f
+ add r0, #0xf6
+ strh r2, [r0]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0224682C
+ add r1, r4, #0
+ add r1, #0xf8
+ str r0, [r1]
+ mov r0, #0x19
+ lsl r0, r0, #4
+ add r1, r4, #0
+ add r3, r4, r0
+ lsl r2, r6, #1
+ ldrh r5, [r3, r2]
+ add r1, #0xfc
+ str r5, [r1]
+ add r1, r0, #0
+ sub r1, #0x78
+ str r6, [r4, r1]
+ lsl r1, r6, #2
+ add r5, r0, #0
+ add r1, r4, r1
+ add r5, #8
+ ldr r6, [r1, r5]
+ add r5, r0, #0
+ sub r5, #0x74
+ str r6, [r4, r5]
+ ldrh r3, [r3, r2]
+ add r2, r0, #0
+ sub r2, #0x6c
+ str r3, [r4, r2]
+ add r0, #0x18
+ ldr r1, [r1, r0]
+ ldr r0, _0223F31C ; =0x0000215C
+ mov r2, #0x79
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #8
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F1EE:
+ ldr r0, [r4, #0x24]
+ cmp r0, r7
+ blt _0223F11E
+_0223F1F4:
+ ldr r0, [r4, #0x20]
+ add r0, r0, #1
+ str r0, [r4, #0x20]
+ mov r0, #0
+ str r0, [r4, #0x24]
+_0223F1FE:
+ ldr r0, [r4, #0x24]
+ cmp r0, r7
+ bge _0223F2BA
+ add r5, r4, #0
+ add r5, #0x24
+_0223F208:
+ add r1, r4, r0
+ ldr r0, _0223F310 ; =0x000021EC
+ ldrb r6, [r1, r0]
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ ldr r1, _0223F314 ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ ldr r0, [r5]
+ beq _0223F224
+ add r0, r0, #1
+ str r0, [r5]
+ b _0223F2B4
+_0223F224:
+ add r0, r0, #1
+ str r0, [r5]
+ mov r0, #0xc0
+ mul r0, r6
+ mov r1, #0xb7
+ add r3, r4, r0
+ lsl r1, r1, #6
+ ldr r2, [r3, r1]
+ mov r1, #0x20
+ tst r1, r2
+ beq _0223F2B4
+ ldr r7, _0223F320 ; =0x00002DC8
+ add r2, r4, r7
+ ldr r1, [r2, r0]
+ lsl r1, r1, #0x11
+ lsr r1, r1, #0x1e
+ bne _0223F27E
+ add r1, r7, #0
+ sub r1, #8
+ add r1, r4, r1
+ str r1, [sp, #4]
+ ldr r1, [r1, r0]
+ mov r5, #0x20
+ bic r1, r5
+ ldr r5, [sp, #4]
+ sub r7, #0x3c
+ str r1, [r5, r0]
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0x11
+ lsr r1, r0, #0x1e
+ mov r0, #0x13
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, [r3, r7]
+ ldr r1, _0223F31C ; =0x0000215C
+ neg r0, r0
+ str r0, [r4, r1]
+ add r0, r1, #0
+ sub r0, #0x20
+ ldr r2, [r4, r0]
+ mov r0, #0x40
+ orr r0, r2
+ sub r1, #0x20
+ str r0, [r4, r1]
+ b _0223F298
+_0223F27E:
+ mov r3, #0x13
+ lsl r3, r3, #4
+ str r1, [r4, r3]
+ ldr r3, [r2, r0]
+ ldr r1, _0223F324 ; =0xFFFF9FFF
+ and r1, r3
+ lsl r3, r3, #0x11
+ lsr r3, r3, #0x1e
+ sub r3, r3, #1
+ lsl r3, r3, #0x1e
+ lsr r3, r3, #0x11
+ orr r1, r3
+ str r1, [r2, r0]
+_0223F298:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r6, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x66
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #8
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F2B4:
+ ldr r0, [r4, #0x24]
+ cmp r0, r7
+ blt _0223F208
+_0223F2BA:
+ ldr r0, [r4, #0x20]
+ add r0, r0, #1
+ str r0, [r4, #0x20]
+ mov r0, #0
+ str r0, [r4, #0x24]
+_0223F2C4:
+ mov r1, #6
+ lsl r1, r1, #6
+ ldr r3, [r4, r1]
+ mov r2, #7
+ lsl r2, r2, #0x10
+ add r0, r3, #0
+ tst r0, r2
+ beq _0223F2F8
+ mov r0, #1
+ lsl r0, r0, #0x10
+ sub r0, r3, r0
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ tst r0, r2
+ bne _0223F2F8
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xfb
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #8
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F2F8:
+ ldr r0, [r4, #0x20]
+ add r0, r0, #1
+ str r0, [r4, #0x20]
+ mov r0, #0
+ str r0, [r4, #0x24]
+_0223F302:
+ mov r0, #0
+ str r0, [r4, #0x20]
+ str r0, [r4, #0x24]
+ mov r0, #0xc
+ str r0, [r4, #8]
+_0223F30C:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223F310: .word 0x000021EC
+_0223F314: .word 0x00003108
+_0223F318: .word 0x00002D8C
+_0223F31C: .word 0x0000215C
+_0223F320: .word 0x00002DC8
+_0223F324: .word 0xFFFF9FFF
+
+ thumb_func_start MOD11_0223F328
+MOD11_0223F328: ; 0x0223F328
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #8]
+ add r5, r0, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_02242510
+ cmp r0, #1
+ beq _0223F37C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02241FD8
+ cmp r0, #1
+ beq _0223F37C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02241D2C
+ cmp r0, #1
+ beq _0223F37C
+ mov r1, #0x15
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ add r0, r0, #1
+ str r0, [r4, r1]
+ add r0, r1, #0
+ add r0, #0x24
+ ldr r0, [r4, r0]
+ add r1, #0x24
+ add r0, r0, #1
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD11_02245494
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02245C5C
+ mov r0, #2
+ str r0, [r4, #8]
+_0223F37C:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223F380
+MOD11_0223F380: ; 0x0223F380
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ mov r4, #0
+ add r1, r5, r0
+ ldr r0, _0223F4A8 ; =0x000021E8
+ ldrb r2, [r1, r0]
+ lsl r0, r2, #6
+ add r1, r5, r0
+ mov r0, #0x75
+ str r2, [r5, #0x64]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _0223F3B4
+ mov r0, #0xc1
+ mov r1, #0xa5
+ lsl r0, r0, #6
+ str r1, [r5, r0]
+ mov r4, #1
+ b _0223F478
+_0223F3B4:
+ mov r0, #0xc0
+ mul r0, r2
+ ldr r6, _0223F4AC ; =0x00002DEC
+ add r0, r5, r0
+ ldrh r1, [r0, r6]
+ cmp r1, #0
+ beq _0223F3DC
+ add r3, r6, #2
+ ldrh r3, [r0, r3]
+ sub r6, #0xa0
+ lsl r3, r3, #1
+ add r0, r0, r3
+ ldrh r0, [r0, r6]
+ cmp r1, r0
+ bne _0223F3DC
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ str r1, [r5, r0]
+ mov r4, #1
+ b _0223F478
+_0223F3DC:
+ cmp r1, #0
+ beq _0223F42E
+ mov r7, #0xc0
+ add r0, r2, #0
+ mul r0, r7
+ ldr r3, _0223F4B0 ; =0x00002DEE
+ add r0, r5, r0
+ ldrh r6, [r0, r3]
+ lsl r6, r6, #1
+ add r0, r0, r6
+ add r6, r3, #0
+ sub r6, #0xa2
+ ldrh r0, [r0, r6]
+ cmp r1, r0
+ beq _0223F42E
+ mov r1, #0xc1
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ ldr r1, [r5, #0x64]
+ mov r0, #0
+ add r2, r1, #0
+ mul r2, r7
+ add r2, r5, r2
+ sub r1, r3, #2
+ strh r0, [r2, r1]
+ ldr r1, [r5, #0x64]
+ mov r4, #1
+ add r2, r1, #0
+ mul r2, r7
+ add r1, r5, r2
+ strh r0, [r1, r3]
+ ldr r0, [r5, #0x64]
+ sub r3, #0x26
+ add r2, r0, #0
+ add r3, r5, r3
+ mul r2, r7
+ ldr r1, [r3, r2]
+ mov r0, #0x38
+ bic r1, r0
+ str r1, [r3, r2]
+ b _0223F478
+_0223F42E:
+ add r0, r5, #0
+ add r1, r2, #0
+ bl MOD11_0224AD04
+ cmp r0, #0
+ bne _0223F44A
+ ldr r0, [r5, #0x64]
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, _0223F4B4 ; =0x0000304C
+ ldr r1, [r1, r0]
+ sub r0, #0xc
+ str r1, [r5, r0]
+ b _0223F478
+_0223F44A:
+ ldr r2, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ lsl r1, r2, #1
+ add r3, r5, r0
+ add r0, r5, r1
+ ldr r1, _0223F4B8 ; =0x000030BC
+ ldrh r2, [r0, r1]
+ lsl r2, r2, #1
+ add r3, r3, r2
+ ldr r2, _0223F4BC ; =0x00002D4C
+ ldrh r3, [r3, r2]
+ add r2, r1, #0
+ sub r2, #8
+ ldrh r0, [r0, r2]
+ cmp r0, r3
+ beq _0223F474
+ sub r1, #0x7c
+ str r3, [r5, r1]
+ mov r4, #1
+ b _0223F478
+_0223F474:
+ sub r1, #0x7c
+ str r3, [r5, r1]
+_0223F478:
+ mov r3, #0xc1
+ lsl r3, r3, #6
+ ldr r1, [r5, r3]
+ add r0, r3, #4
+ str r1, [r5, r0]
+ mov r0, #0x16
+ str r0, [r5, #8]
+ str r4, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r3, [r5, r3]
+ ldr r0, [sp, #8]
+ lsl r3, r3, #0x10
+ ldr r2, [r5, #0x64]
+ add r1, r5, #0
+ lsr r3, r3, #0x10
+ bl MOD11_02244C28
+ str r0, [r5, #0x6c]
+ ldr r0, [sp, #8]
+ bl MOD11_0225679C
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223F4A8: .word 0x000021E8
+_0223F4AC: .word 0x00002DEC
+_0223F4B0: .word 0x00002DEE
+_0223F4B4: .word 0x0000304C
+_0223F4B8: .word 0x000030BC
+_0223F4BC: .word 0x00002D4C
+
+ thumb_func_start MOD11_0223F4C0
+MOD11_0223F4C0: ; 0x0223F4C0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0xec
+ ldr r2, [r2]
+ add r7, r0, #0
+ add r3, r4, r2
+ ldr r2, _0223F5FC ; =0x000021E8
+ ldrb r2, [r3, r2]
+ str r2, [r4, #0x64]
+ bl MOD11_022482A4
+ str r0, [r4, #0x6c]
+ ldr r0, _0223F600 ; =0x000021B0
+ ldr r1, [r4, #0x64]
+ add r2, r4, r0
+ lsl r0, r1, #4
+ add r6, r2, r0
+ add r0, r7, #0
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0223F568
+ ldr r0, [r4, #0x64]
+ asr r0, r0, #1
+ add r1, r4, r0
+ ldr r0, _0223F604 ; =0x000003D1
+ ldrb r2, [r1, r0]
+ cmp r2, #4
+ bhi _0223F554
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0223F508: ; jump table
+ .short _0223F512 - _0223F508 - 2 ; case 0
+ .short _0223F516 - _0223F508 - 2 ; case 1
+ .short _0223F51A - _0223F508 - 2 ; case 2
+ .short _0223F544 - _0223F508 - 2 ; case 3
+ .short _0223F552 - _0223F508 - 2 ; case 4
+_0223F512:
+ ldr r5, _0223F608 ; =0x00000121
+ b _0223F554
+_0223F516:
+ ldr r5, _0223F60C ; =0x0000010B
+ b _0223F554
+_0223F51A:
+ add r0, r0, #2
+ ldrb r0, [r1, r0]
+ mov r1, #1
+ tst r1, r0
+ beq _0223F534
+ mov r1, #0x3e
+ add r2, r0, #0
+ tst r2, r1
+ beq _0223F534
+ mov r0, #6
+ add r1, #0xf2
+ str r0, [r4, r1]
+ b _0223F53E
+_0223F534:
+ bl LowestFlagNo
+ mov r1, #0x13
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+_0223F53E:
+ mov r5, #0x43
+ lsl r5, r5, #2
+ b _0223F554
+_0223F544:
+ add r0, r0, #2
+ ldrb r0, [r1, r0]
+ mov r5, #0x13
+ lsl r5, r5, #4
+ str r0, [r4, r5]
+ sub r5, #0x23
+ b _0223F554
+_0223F552:
+ ldr r5, _0223F610 ; =0x0000010E
+_0223F554:
+ ldr r1, [r4, #0x64]
+ mov r0, #1
+ bic r1, r0
+ ldr r0, _0223F614 ; =0x000003D6
+ add r1, r4, r1
+ ldrh r1, [r1, r0]
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _0223F5DA
+_0223F568:
+ ldrb r0, [r6, #2]
+ cmp r0, #3
+ bhi _0223F5D2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223F57A: ; jump table
+ .short _0223F582 - _0223F57A - 2 ; case 0
+ .short _0223F582 - _0223F57A - 2 ; case 1
+ .short _0223F598 - _0223F57A - 2 ; case 2
+ .short _0223F582 - _0223F57A - 2 ; case 3
+_0223F582:
+ ldrh r1, [r6]
+ ldr r0, _0223F618 ; =0x0000FFC1
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _0223F594
+ mov r5, #0xde
+ b _0223F5D2
+_0223F594:
+ mov r5, #0xdf
+ b _0223F5D2
+_0223F598:
+ add r0, r7, #0
+ mov r5, #0xb
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ bne _0223F5D2
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ mov r1, #1
+ lsl r1, r1, #0xa
+ tst r0, r1
+ bne _0223F5D2
+ add r0, r7, #0
+ bl MOD11_02230214
+ ldrh r1, [r6]
+ mov r2, #1
+ mov r3, #5
+ bl FUN_0206EDD4
+ add r0, r7, #0
+ bl MOD11_02230218
+ ldrh r1, [r6]
+ ldrb r2, [r6, #2]
+ bl FUN_0206F1E4
+_0223F5D2:
+ ldrh r1, [r6]
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_0223F5DA:
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r5, #0
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ ldr r1, _0223F61C ; =0x0000216C
+ mov r0, #2
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0x1e
+ orr r0, r2
+ str r0, [r4, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223F5FC: .word 0x000021E8
+_0223F600: .word 0x000021B0
+_0223F604: .word 0x000003D1
+_0223F608: .word 0x00000121
+_0223F60C: .word 0x0000010B
+_0223F610: .word 0x0000010E
+_0223F614: .word 0x000003D6
+_0223F618: .word 0x0000FFC1
+_0223F61C: .word 0x0000216C
+
+ thumb_func_start MOD11_0223F620
+MOD11_0223F620: ; 0x0223F620
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #9
+ bl MOD11_022431DC
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ ldr r1, _0223F660 ; =0x000021E8
+ add r0, r4, r0
+ ldrb r0, [r0, r1]
+ mov r2, #0
+ str r0, [r4, #0x64]
+ str r0, [r4, #0x78]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x28
+ str r0, [r4, #0xc]
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ str r2, [r4, r0]
+ add r0, r1, #0
+ sub r0, #0x7c
+ ldr r2, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0x1e
+ orr r0, r2
+ sub r1, #0x7c
+ str r0, [r4, r1]
+ pop {r4, pc}
+ .align 2, 0
+_0223F660: .word 0x000021E8
+
+ thumb_func_start MOD11_0223F664
+MOD11_0223F664: ; 0x0223F664
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r1, #0xec
+ ldr r1, [r1]
+ add r5, r0, #0
+ add r2, r4, r1
+ ldr r1, _0223F71C ; =0x000021E8
+ ldrb r1, [r2, r1]
+ str r1, [r4, #0x64]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0223F6D6
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ bne _0223F6D6
+ ldr r0, [r4, #0x64]
+ mov r2, #0xc0
+ add r1, r0, #0
+ mul r1, r2
+ ldr r0, _0223F720 ; =0x00002DB0
+ add r1, r4, r1
+ ldr r1, [r1, r0]
+ ldr r0, _0223F724 ; =0x0400E000
+ tst r0, r1
+ beq _0223F6BA
+ add r0, r4, #0
+ mov r1, #1
+ add r2, #0x5e
+ bl MOD11_022431DC
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223F6BA:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xe6
+ bl MOD11_022431DC
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x2a
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223F6D6:
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022470B8
+ cmp r0, #0
+ beq _0223F700
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #3
+ bl MOD11_022431DC
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x2a
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223F700:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #8
+ bl MOD11_022431DC
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223F71C: .word 0x000021E8
+_0223F720: .word 0x00002DB0
+_0223F724: .word 0x0400E000
+
+ thumb_func_start MOD11_0223F728
+MOD11_0223F728: ; 0x0223F728
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r2, _0223F76C ; =0x00000113
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0
+ str r0, [r4, #0x64]
+ mov r0, #1
+ str r0, [r4, #0x6c]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ mov r0, #0x4a
+ mov r1, #5
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r5, #0
+ bl MOD11_02230E00
+ sub r1, r0, #1
+ add r0, r5, #0
+ bl MOD11_02230E0C
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD11_02256020
+ pop {r3, r4, r5, pc}
+ nop
+_0223F76C: .word 0x00000113
+
+ thumb_func_start MOD11_0223F770
+MOD11_0223F770: ; 0x0223F770
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xe3
+ bl MOD11_022431DC
+ mov r0, #0
+ str r0, [r4, #0x64]
+ mov r0, #1
+ str r0, [r4, #0x6c]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, _0223F7C4 ; =0x0000311C
+ ldrb r1, [r4, r0]
+ cmp r1, #0xc
+ bhs _0223F7AA
+ add r1, r1, #1
+ strb r1, [r4, r0]
+_0223F7AA:
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0223F7C0
+ ldr r0, _0223F7C8 ; =0x0000311D
+ ldrb r1, [r4, r0]
+ cmp r1, #0xc
+ bhs _0223F7C0
+ add r1, r1, #1
+ strb r1, [r4, r0]
+_0223F7C0:
+ pop {r4, pc}
+ nop
+_0223F7C4: .word 0x0000311C
+_0223F7C8: .word 0x0000311D
+
+ thumb_func_start MOD11_0223F7CC
+MOD11_0223F7CC: ; 0x0223F7CC
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xe4
+ bl MOD11_022431DC
+ mov r0, #0
+ str r0, [r4, #0x64]
+ mov r0, #1
+ str r0, [r4, #0x6c]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, _0223F824 ; =0x0000311D
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _0223F806
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+_0223F806:
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _0223F822
+ mov r1, #1
+ sub r0, #8
+ str r1, [r4, r0]
+ ldr r0, _0223F828 ; =0x0000311C
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _0223F822
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+_0223F822:
+ pop {r4, pc}
+ .align 2, 0
+_0223F824: .word 0x0000311D
+_0223F828: .word 0x0000311C
+
+ thumb_func_start MOD11_0223F82C
+MOD11_0223F82C: ; 0x0223F82C
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xe5
+ bl MOD11_022431DC
+ mov r0, #0
+ str r0, [r4, #0x64]
+ mov r0, #1
+ str r0, [r4, #0x6c]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0223F84C
+MOD11_0223F84C: ; 0x0223F84C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ str r0, [sp, #0x18]
+ add r4, r1, #0
+ add r6, r2, #0
+ bl MOD11_0222FF74
+ add r5, r0, #0
+ ldr r0, [sp, #0x18]
+ mov r1, #0
+ bl MOD11_022301D4
+ add r7, r0, #0
+ mov r0, #0x84
+ tst r0, r5
+ beq _0223F872
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F872:
+ ldr r0, [sp, #0x18]
+ ldr r1, [r4, #0x64]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0223F884
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F884:
+ mov r0, #0x40
+ tst r0, r5
+ beq _0223F89C
+ ldr r0, [sp, #0x18]
+ ldr r1, [r4, #0x64]
+ bl MOD11_02230260
+ cmp r0, #4
+ bne _0223F89C
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F89C:
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ bl MOD11_0224ADB8
+ cmp r0, #1
+ bne _0223F8AE
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F8AE:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_0224AD04
+ cmp r0, #0
+ bne _0223F8C0
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F8C0:
+ add r0, r7, #0
+ bl FUN_020239F4
+ cmp r0, #8
+ blt _0223F8D0
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F8D0:
+ add r0, r7, #0
+ mov r5, #0xa
+ bl FUN_020239F4
+ cmp r0, #2
+ blt _0223F8DE
+ mov r5, #0x1e
+_0223F8DE:
+ add r0, r7, #0
+ bl FUN_020239F4
+ cmp r0, #4
+ blt _0223F8EA
+ mov r5, #0x32
+_0223F8EA:
+ add r0, r7, #0
+ bl FUN_020239F4
+ cmp r0, #6
+ blt _0223F8F6
+ mov r5, #0x46
+_0223F8F6:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r7, r1, #0
+ mul r7, r0
+ ldr r0, _0223FAEC ; =0x00002D74
+ add r1, r4, r7
+ ldrb r0, [r1, r0]
+ cmp r0, r5
+ bhi _0223F90E
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F90E:
+ bl LCRandom
+ lsl r0, r0, #0x18
+ ldr r1, _0223FAEC ; =0x00002D74
+ add r2, r4, r7
+ ldrb r2, [r2, r1]
+ lsr r0, r0, #0x18
+ add r2, r5, r2
+ mul r0, r2
+ asr r0, r0, #8
+ cmp r0, r5
+ bge _0223F92C
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F92C:
+ ldr r0, _0223FAF0 ; =0x00003044
+ ldr r0, [r4, r0]
+ cmp r0, #0x63
+ bne _0223F940
+ add r1, #0x3c
+ add r0, r4, r1
+ ldr r2, [r0, r7]
+ ldr r1, _0223FAF4 ; =0xFF7FFFFF
+ and r1, r2
+ str r1, [r0, r7]
+_0223F940:
+ ldr r7, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r7
+ add r1, r4, r0
+ ldr r0, _0223FAF8 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0223F968
+ ldr r0, _0223FAF0 ; =0x00003044
+ ldr r0, [r4, r0]
+ cmp r0, #0xad
+ beq _0223F95E
+ cmp r0, #0xd6
+ bne _0223F968
+_0223F95E:
+ mov r0, #0xfe
+ str r0, [r6]
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F968:
+ mov r0, #0xc0
+ mul r0, r7
+ add r1, r4, r0
+ ldr r0, _0223FAEC ; =0x00002D74
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0x1c]
+ bl LCRandom
+ ldr r1, [sp, #0x1c]
+ lsl r0, r0, #0x18
+ add r1, r5, r1
+ lsr r0, r0, #0x18
+ mul r0, r1
+ asr r0, r0, #8
+ cmp r0, r5
+ bge _0223FA2E
+ lsl r0, r7, #1
+ add r1, r4, r0
+ ldr r0, _0223FAFC ; =0x000030BC
+ ldrh r0, [r1, r0]
+ bl MaskOfFlagNo
+ add r3, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp]
+ ldr r0, [sp, #0x18]
+ ldr r2, [r4, #0x64]
+ add r1, r4, #0
+ bl MOD11_02245D38
+ add r5, r0, #0
+ cmp r5, #0xf
+ bne _0223F9B6
+ mov r0, #0xff
+ str r0, [r6]
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F9B6:
+ bl LCRandom
+ mov r1, #3
+ add r7, r0, #0
+ and r7, r1
+ add r0, r7, #0
+ bl MaskOfFlagNo
+ tst r0, r5
+ bne _0223F9B6
+ ldr r0, [r4, #0x64]
+ ldr r3, _0223FAFC ; =0x000030BC
+ lsl r0, r0, #1
+ add r0, r4, r0
+ strh r7, [r0, r3]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ lsl r1, r1, #1
+ add r1, r4, r1
+ ldrh r1, [r1, r3]
+ add r0, r4, r0
+ lsl r1, r1, #1
+ add r1, r0, r1
+ ldr r0, _0223FB00 ; =0x00002D4C
+ ldrh r1, [r1, r0]
+ add r0, r3, #0
+ sub r0, #0x7c
+ str r1, [r4, r0]
+ add r0, r3, #0
+ sub r0, #0x7c
+ ldr r1, [r4, r0]
+ add r0, r3, #0
+ sub r0, #0x78
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ sub r3, #0x7c
+ ldr r3, [r4, r3]
+ ldr r0, [sp, #0x18]
+ lsl r3, r3, #0x10
+ ldr r2, [r4, #0x64]
+ add r1, r4, #0
+ lsr r3, r3, #0x10
+ bl MOD11_02244C28
+ str r0, [r4, #0x6c]
+ mov r0, #1
+ lsl r0, r0, #8
+ str r0, [r6]
+ ldr r1, _0223FB04 ; =0x00002184
+ mov r0, #1
+ ldr r2, [r4, r1]
+ add sp, #0x20
+ orr r0, r2
+ str r0, [r4, r1]
+ mov r0, #2
+ pop {r3, r4, r5, r6, r7, pc}
+_0223FA2E:
+ ldr r0, [sp, #0x1c]
+ sub r0, r0, r5
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ bl LCRandom
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ cmp r7, r5
+ bge _0223FA8E
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _0223FAF8 ; =0x00002DAC
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bne _0223FA8E
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x48
+ beq _0223FA8E
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0xf
+ beq _0223FA8E
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x66
+ beq _0223FA8E
+ mov r1, #6
+ lsl r1, r1, #6
+ mov r0, #0xf
+ ldr r2, [r4, r1]
+ lsl r0, r0, #8
+ tst r0, r2
+ bne _0223FA8E
+ sub r1, #0x7f
+ add sp, #0x20
+ str r1, [r6]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0223FA8E:
+ sub r0, r7, r5
+ cmp r0, r5
+ bge _0223FAE2
+ ldr r1, [r4, #0x64]
+ mov r0, #0x46
+ str r1, [r4, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r1, [r4, #0x64]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x28
+ str r0, [sp, #4]
+ lsl r0, r1, #0x18
+ str r3, [sp, #8]
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r2, #1
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ str r2, [sp, #0x14]
+ bl MOD11_0224B310
+ ldr r1, _0223FB08 ; =0x0000215C
+ str r0, [r4, r1]
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD11_0224BF10
+ ldr r1, _0223FB08 ; =0x0000215C
+ add sp, #0x20
+ str r0, [r4, r1]
+ mov r0, #0
+ ldr r2, [r4, r1]
+ mvn r0, r0
+ mul r0, r2
+ str r0, [r4, r1]
+ ldr r0, _0223FB0C ; =0x00000102
+ str r0, [r6]
+ mov r0, #3
+ pop {r3, r4, r5, r6, r7, pc}
+_0223FAE2:
+ mov r0, #0xff
+ str r0, [r6]
+ mov r0, #1
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223FAEC: .word 0x00002D74
+_0223FAF0: .word 0x00003044
+_0223FAF4: .word 0xFF7FFFFF
+_0223FAF8: .word 0x00002DAC
+_0223FAFC: .word 0x000030BC
+_0223FB00: .word 0x00002D4C
+_0223FB04: .word 0x00002184
+_0223FB08: .word 0x0000215C
+_0223FB0C: .word 0x00000102
+
+ thumb_func_start MOD11_0223FB10
+MOD11_0223FB10: ; 0x0223FB10
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ ldr r3, [r5, #0x64]
+ mov r2, #0x1c
+ mul r2, r3
+ add r6, r5, r2
+ mov r2, #0xb5
+ lsl r2, r2, #2
+ ldr r2, [r6, r2]
+ str r0, [sp, #4]
+ lsl r2, r2, #0x1f
+ mov r4, #1
+ lsr r2, r2, #0x1f
+ bne _0223FBCA
+ ldr r6, [r5, #0x6c]
+ cmp r6, #0xff
+ beq _0223FBCA
+ mov r2, #0xc1
+ lsl r2, r2, #6
+ ldr r7, [r5, r2]
+ ldr r2, _0223FC98 ; =0x0000011E
+ cmp r7, r2
+ bne _0223FB4E
+ mov r2, #0x2e
+ str r2, [sp]
+ mov r2, #3
+ bl MOD11_02246870
+ add r4, r4, r0
+ b _0223FBCA
+_0223FB4E:
+ lsl r0, r7, #4
+ add r1, r5, r0
+ ldr r0, _0223FC9C ; =0x000003E6
+ ldrh r1, [r1, r0]
+ cmp r1, #0x40
+ bgt _0223FB78
+ bge _0223FB94
+ cmp r1, #0x10
+ bgt _0223FB72
+ bge _0223FBCA
+ cmp r1, #8
+ bgt _0223FBB8
+ cmp r1, #4
+ blt _0223FBB8
+ beq _0223FBA6
+ cmp r1, #8
+ beq _0223FB94
+ b _0223FBB8
+_0223FB72:
+ cmp r1, #0x20
+ beq _0223FBCA
+ b _0223FBB8
+_0223FB78:
+ add r0, r2, #0
+ sub r0, #0x1e
+ cmp r1, r0
+ bgt _0223FB8C
+ sub r2, #0x1e
+ cmp r1, r2
+ bge _0223FBCA
+ cmp r1, #0x80
+ beq _0223FBA6
+ b _0223FBB8
+_0223FB8C:
+ add r2, #0xe2
+ cmp r1, r2
+ beq _0223FBCA
+ b _0223FBB8
+_0223FB94:
+ mov r0, #0x2e
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #9
+ bl MOD11_02246870
+ add r4, r4, r0
+ b _0223FBCA
+_0223FBA6:
+ mov r0, #0x2e
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #3
+ bl MOD11_02246870
+ add r4, r4, r0
+ b _0223FBCA
+_0223FBB8:
+ cmp r3, r6
+ beq _0223FBCA
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2e
+ bne _0223FBCA
+ add r4, r4, #1
+_0223FBCA:
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r2, r5, r0
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ mov r1, #0xc1
+ lsl r1, r1, #6
+ ldr r1, [r5, r1]
+ add r0, r2, r0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl MOD11_022461AC
+ add r6, r0, #0
+ ldr r1, [r5, #0x64]
+ mov r0, #0x75
+ lsl r0, r0, #2
+ add r0, r5, r0
+ lsl r7, r1, #6
+ ldr r3, [r0, r7]
+ lsl r2, r3, #0x1e
+ lsr r2, r2, #0x1f
+ bne _0223FC42
+ lsl r2, r3, #0x1f
+ lsr r2, r2, #0x1f
+ bne _0223FC42
+ mov r1, #2
+ orr r1, r3
+ str r1, [r0, r7]
+ ldr r0, _0223FCA0 ; =0x00002D6C
+ ldr r1, [r5, #0x64]
+ add r2, r5, r0
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r2, r0
+ ldrb r0, [r1, r6]
+ cmp r0, #0
+ beq _0223FC34
+ cmp r6, #4
+ bge _0223FC34
+ cmp r0, r4
+ ble _0223FC24
+ sub r0, r0, r4
+ b _0223FC26
+_0223FC24:
+ mov r0, #0
+_0223FC26:
+ strb r0, [r1, r6]
+ ldr r0, [sp, #4]
+ ldr r2, [r5, #0x64]
+ add r1, r5, #0
+ bl MOD11_02245190
+ b _0223FC90
+_0223FC34:
+ ldr r1, _0223FCA4 ; =0x0000216C
+ mov r0, #2
+ ldr r2, [r5, r1]
+ lsl r0, r0, #8
+ orr r0, r2
+ str r0, [r5, r1]
+ b _0223FC90
+_0223FC42:
+ mov r2, #0xc0
+ add r0, r1, #0
+ mul r0, r2
+ add r0, r5, r0
+ ldr r3, _0223FCA0 ; =0x00002D6C
+ add r4, r0, r6
+ ldrb r4, [r4, r3]
+ cmp r4, #0
+ bne _0223FC90
+ ldr r4, _0223FCA8 ; =0x0000213C
+ mov r7, #2
+ ldr r4, [r5, r4]
+ lsl r7, r7, #8
+ tst r4, r7
+ bne _0223FC90
+ add r3, #0x44
+ ldr r0, [r0, r3]
+ lsl r3, r7, #3
+ tst r3, r0
+ bne _0223FC90
+ lsl r2, r2, #4
+ tst r0, r2
+ bne _0223FC90
+ add r0, r1, #0
+ bl MaskOfFlagNo
+ add r1, r7, #0
+ sub r1, #0x80
+ ldr r2, [r5, r1]
+ lsl r0, r0, #8
+ tst r0, r2
+ bne _0223FC90
+ cmp r6, #4
+ bge _0223FC90
+ ldr r0, _0223FCA4 ; =0x0000216C
+ add r1, #0x80
+ ldr r2, [r5, r0]
+ orr r1, r2
+ str r1, [r5, r0]
+_0223FC90:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223FC98: .word 0x0000011E
+_0223FC9C: .word 0x000003E6
+_0223FCA0: .word 0x00002D6C
+_0223FCA4: .word 0x0000216C
+_0223FCA8: .word 0x0000213C
+
+ thumb_func_start MOD11_0223FCAC
+MOD11_0223FCAC: ; 0x0223FCAC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r0, [r5, #0x6c]
+ mov r4, #0
+ cmp r0, #0xff
+ bne _0223FCC6
+ ldr r1, _0223FD10 ; =0x00003044
+ add r0, r5, #0
+ ldr r1, [r5, r1]
+ bl MOD11_02246AF8
+ cmp r0, #0
+ beq _0223FCF8
+_0223FCC6:
+ ldr r0, [r5, #0x6c]
+ cmp r0, #0xff
+ bne _0223FD0C
+ ldr r1, _0223FD10 ; =0x00003044
+ add r0, r5, #0
+ ldr r1, [r5, r1]
+ bl MOD11_02246AF8
+ cmp r0, #1
+ bne _0223FD0C
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _0223FD14 ; =0x00002DB0
+ ldr r0, [r1, r0]
+ mov r1, #1
+ lsl r1, r1, #0xc
+ tst r0, r1
+ bne _0223FCF8
+ ldr r0, _0223FD18 ; =0x0000213C
+ ldr r2, [r5, r0]
+ lsr r0, r1, #3
+ tst r0, r2
+ beq _0223FD0C
+_0223FCF8:
+ ldr r2, _0223FD1C ; =0x00000119
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0x26
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+ mov r4, #1
+_0223FD0C:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223FD10: .word 0x00003044
+_0223FD14: .word 0x00002DB0
+_0223FD18: .word 0x0000213C
+_0223FD1C: .word 0x00000119
+
+ thumb_func_start MOD11_0223FD20
+MOD11_0223FD20: ; 0x0223FD20
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldr r1, _0223FDA0 ; =0x00003044
+ ldr r2, [r4, r1]
+ lsl r1, r2, #4
+ add r5, r4, r1
+ ldr r1, _0223FDA4 ; =0x000003E6
+ ldrh r3, [r5, r1]
+ cmp r3, #0x10
+ beq _0223FD54
+ cmp r3, #0x20
+ beq _0223FD54
+ sub r1, r1, #5
+ ldrb r1, [r5, r1]
+ cmp r1, #0
+ beq _0223FD54
+ ldr r1, _0223FDA8 ; =0x0000213C
+ ldr r3, [r4, r1]
+ mov r1, #2
+ lsl r1, r1, #0xe
+ tst r1, r3
+ bne _0223FD54
+ mov r1, #0x20
+ tst r1, r3
+ beq _0223FD58
+_0223FD54:
+ cmp r2, #0x56
+ bne _0223FD98
+_0223FD58:
+ ldr r1, [r4, #0x64]
+ ldr r3, _0223FDAC ; =0x00002144
+ str r1, [sp]
+ ldr r1, [r4, #0x6c]
+ str r1, [sp, #4]
+ ldr r1, [r4, r3]
+ str r1, [sp, #8]
+ add r1, r3, #0
+ add r1, #0x28
+ add r1, r4, r1
+ str r1, [sp, #0xc]
+ add r3, #0x1c
+ ldr r3, [r4, r3]
+ add r1, r4, #0
+ bl MOD11_02246274
+ ldr r1, _0223FDAC ; =0x00002144
+ str r0, [r4, r1]
+ add r1, #0x28
+ ldr r1, [r4, r1]
+ mov r0, #8
+ tst r0, r1
+ beq _0223FD98
+ mov r0, #0xd1
+ lsl r0, r0, #2
+ add r3, r4, r0
+ ldr r0, [r4, #0x64]
+ lsl r2, r0, #2
+ ldr r1, [r3, r2]
+ mov r0, #2
+ orr r0, r1
+ str r0, [r3, r2]
+_0223FD98:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_0223FDA0: .word 0x00003044
+_0223FDA4: .word 0x000003E6
+_0223FDA8: .word 0x0000213C
+_0223FDAC: .word 0x00002144
+
+ thumb_func_start MOD11_0223FDB0
+MOD11_0223FDB0: ; 0x0223FDB0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ str r0, [sp, #0x18]
+ add r4, r1, #0
+ ldr r0, _022400D8 ; =0x00003044
+ add r5, r4, #0
+ ldr r0, [r4, r0]
+ mov r7, #0
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _022400DC ; =0x000003DE
+ add r5, #0x50
+ ldrh r0, [r1, r0]
+ str r0, [sp, #0x1c]
+ mov r0, #0xd1
+ lsl r0, r0, #2
+ add r6, r4, r0
+ mov r0, #7
+ str r0, [sp, #0x20]
+ mov r0, #8
+ str r0, [sp, #0x24]
+ mov r0, #1
+ str r0, [sp, #0x28]
+_0223FDDE:
+ ldr r0, [r4, #0x50]
+ cmp r0, #0x10
+ bls _0223FDE6
+ b _0224043C
+_0223FDE6:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223FDF2: ; jump table
+ .short _0223FE14 - _0223FDF2 - 2 ; case 0
+ .short _0223FE48 - _0223FDF2 - 2 ; case 1
+ .short _0223FF42 - _0223FDF2 - 2 ; case 2
+ .short _0223FFA6 - _0223FDF2 - 2 ; case 3
+ .short _0223FFCE - _0223FDF2 - 2 ; case 4
+ .short _0224000A - _0223FDF2 - 2 ; case 5
+ .short _02240050 - _0223FDF2 - 2 ; case 6
+ .short _0224008C - _0223FDF2 - 2 ; case 7
+ .short _022400D4 - _0223FDF2 - 2 ; case 8
+ .short _02240138 - _0223FDF2 - 2 ; case 9
+ .short _02240174 - _0223FDF2 - 2 ; case 10
+ .short _022401B0 - _0223FDF2 - 2 ; case 11
+ .short _0224028C - _0223FDF2 - 2 ; case 12
+ .short _022402E8 - _0223FDF2 - 2 ; case 13
+ .short _0224034E - _0223FDF2 - 2 ; case 14
+ .short _022403FE - _0223FDF2 - 2 ; case 15
+ .short _02240436 - _0223FDF2 - 2 ; case 16
+_0223FE14:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _022400E0 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ ldr r0, _022400E4 ; =0xFDFFFFFF
+ and r1, r0
+ ldr r0, _022400E0 ; =0x00002DB0
+ str r1, [r2, r0]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r1, [r2, r0]
+ ldr r0, _022400E8 ; =0xFFFFBFFF
+ and r1, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ str r1, [r2, r0]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0223FE48:
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _022400EC ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0223FF3A
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0xf
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _0223FE92
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2b
+ beq _0223FE92
+ mov r0, #0x46
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x13
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223FF3A
+_0223FE92:
+ ldr r0, _022400D8 ; =0x00003044
+ ldr r0, [r4, r0]
+ cmp r0, #0xd6
+ beq _0223FEA8
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #0xd6
+ bne _0223FEA8
+ mov r0, #1
+ b _0223FEAA
+_0223FEA8:
+ mov r0, #0
+_0223FEAA:
+ cmp r0, #0
+ bne _0223FF3A
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x30
+ bne _0223FEBE
+ mov r3, #2
+ b _0223FEC0
+_0223FEBE:
+ mov r3, #1
+_0223FEC0:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _022400EC ; =0x00002DAC
+ ldr r1, [r2, r0]
+ mov r0, #7
+ and r0, r1
+ cmp r0, r3
+ ldr r0, _022400EC ; =0x00002DAC
+ bhs _0223FEDE
+ ldr r1, [r2, r0]
+ ldr r0, [sp, #0x20]
+ bic r1, r0
+ b _0223FEE2
+_0223FEDE:
+ ldr r0, [r2, r0]
+ sub r1, r0, r3
+_0223FEE2:
+ ldr r0, _022400EC ; =0x00002DAC
+ str r1, [r2, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _022400EC ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0223FF20
+ ldr r0, _022400D8 ; =0x00003044
+ ldr r0, [r4, r0]
+ cmp r0, #0xad
+ beq _0223FF3A
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #0xd6
+ beq _0223FF3A
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x14
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #2
+ b _0223FF3A
+_0223FF20:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r2, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x13
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223FF3A:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0223FF42:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _022400EC ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0223FF9E
+ bl LCRandom
+ mov r1, #5
+ bl _s32_div_f
+ cmp r1, #0
+ beq _0223FF82
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x7d
+ beq _0223FF9E
+ cmp r0, #0xfd
+ beq _0223FF9E
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1c
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+ b _0223FF9E
+_0223FF82:
+ mov r0, #0x46
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1d
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223FF9E:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0223FFA6:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02247190
+ cmp r0, #1
+ bne _0223FFC6
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xbf
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_0223FFC6:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0223FFCE:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _022400E0 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ mov r0, #1
+ lsl r0, r0, #0x16
+ tst r0, r1
+ beq _02240002
+ ldr r0, _022400E0 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ ldr r0, _022400F0 ; =0xFFBFFFFF
+ and r1, r0
+ ldr r0, _022400E0 ; =0x00002DB0
+ str r1, [r2, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x41
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_02240002:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0224000A:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _022400E0 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ mov r0, #8
+ tst r0, r1
+ beq _02240048
+ ldr r0, _022400E0 ; =0x00002DB0
+ ldr r1, [sp, #0x24]
+ ldr r0, [r2, r0]
+ bic r0, r1
+ ldr r1, _022400E0 ; =0x00002DB0
+ str r0, [r2, r1]
+ ldr r0, [r4, #0x64]
+ mov r1, #0x40
+ lsl r0, r0, #2
+ ldr r2, [r6, r0]
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xf
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_02240048:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_02240050:
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ ldr r3, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _022400F4 ; =0x00002DE8
+ ldrh r0, [r1, r0]
+ cmp r3, r0
+ bne _02240084
+ lsl r0, r2, #2
+ ldr r2, [r6, r0]
+ mov r1, #0x10
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x47
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_02240084:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0224008C:
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _022400F8 ; =0x00002DC8
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x1d
+ beq _022400CC
+ ldr r0, _022400D8 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _022400FC ; =0x000003E1
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _022400CC
+ lsl r0, r2, #2
+ ldr r2, [r6, r0]
+ mov r1, #0x20
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x85
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_022400CC:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_022400D4:
+ ldr r3, _022400D8 ; =0x00003044
+ b _02240100
+ .align 2, 0
+_022400D8: .word 0x00003044
+_022400DC: .word 0x000003DE
+_022400E0: .word 0x00002DB0
+_022400E4: .word 0xFDFFFFFF
+_022400E8: .word 0xFFFFBFFF
+_022400EC: .word 0x00002DAC
+_022400F0: .word 0xFFBFFFFF
+_022400F4: .word 0x00002DE8
+_022400F8: .word 0x00002DC8
+_022400FC: .word 0x000003E1
+_02240100:
+ ldr r0, [sp, #0x18]
+ ldr r2, [r4, #0x64]
+ ldr r3, [r4, r3]
+ add r1, r4, #0
+ bl MOD11_022471C4
+ cmp r0, #0
+ beq _02240130
+ ldr r0, [r4, #0x64]
+ mov r1, #4
+ lsl r0, r0, #2
+ ldr r2, [r6, r0]
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x90
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_02240130:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_02240138:
+ ldr r3, _0224047C ; =0x00003044
+ ldr r0, [sp, #0x18]
+ ldr r2, [r4, #0x64]
+ ldr r3, [r4, r3]
+ add r1, r4, #0
+ bl MOD11_02247314
+ cmp r0, #0
+ beq _0224016C
+ ldr r0, [r4, #0x64]
+ mov r1, #1
+ lsl r0, r0, #2
+ ldr r2, [r6, r0]
+ lsl r1, r1, #8
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x9d
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_0224016C:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_02240174:
+ ldr r3, _0224047C ; =0x00003044
+ ldr r0, [sp, #0x18]
+ ldr r2, [r4, #0x64]
+ ldr r3, [r4, r3]
+ add r1, r4, #0
+ bl MOD11_02247348
+ cmp r0, #0
+ beq _022401A8
+ ldr r0, [r4, #0x64]
+ mov r1, #2
+ lsl r0, r0, #2
+ ldr r2, [r6, r0]
+ lsl r1, r1, #8
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xae
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_022401A8:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_022401B0:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _02240480 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ mov r0, #7
+ tst r0, r1
+ bne _022401CA
+ b _0224043C
+_022401CA:
+ ldr r0, _02240480 ; =0x00002DB0
+ ldr r0, [r2, r0]
+ sub r1, r0, #1
+ ldr r0, _02240480 ; =0x00002DB0
+ str r1, [r2, r0]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02240480 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _02240276
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _02240204
+ add r0, r4, #0
+ mov r2, #0x26
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0224043C
+_02240204:
+ ldr r0, [r4, #0x64]
+ mov r1, #0x80
+ lsl r0, r0, #2
+ ldr r2, [r6, r0]
+ mov r3, #0
+ orr r1, r2
+ str r1, [r6, r0]
+ ldr r1, [r4, #0x64]
+ mov r0, #0x46
+ str r1, [r4, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, [r4, #0x64]
+ mov r1, #0
+ str r1, [sp]
+ mov r1, #0x28
+ str r1, [sp, #4]
+ mov r1, #0
+ lsl r0, r0, #0x18
+ str r1, [sp, #8]
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ mov r2, #0xa5
+ bl MOD11_0224B310
+ ldr r1, _02240484 ; =0x0000215C
+ str r0, [r4, r1]
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD11_0224BF10
+ ldr r1, _02240484 ; =0x0000215C
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r1, [r4, r0]
+ mov r0, #0
+ add r2, r1, #0
+ mvn r0, r0
+ mul r2, r0
+ ldr r0, _02240484 ; =0x0000215C
+ mov r1, #1
+ str r2, [r4, r0]
+ add r0, r4, #0
+ mov r2, #0x27
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x21
+ str r0, [r4, #0xc]
+ mov r7, #1
+ b _0224043C
+_02240276:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x28
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0224043C
+_0224028C:
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02240488 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _022402E0
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _022402E0
+ bl LCRandom
+ lsr r1, r0, #0x1f
+ lsl r2, r0, #0x1e
+ sub r2, r2, r1
+ mov r0, #0x1e
+ ror r2, r0
+ add r0, r1, r2
+ bne _022402E0
+ ldr r0, [r4, #0x64]
+ ldr r2, [sp, #0x28]
+ lsl r1, r0, #2
+ ldr r0, [r6, r1]
+ bic r0, r2
+ mov r2, #1
+ orr r0, r2
+ str r0, [r6, r1]
+ add r1, r2, #0
+ add r0, r4, #0
+ mov r2, #0x20
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_022402E0:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_022402E8:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02240480 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #0xf
+ lsl r0, r0, #0x10
+ and r0, r1
+ beq _02240346
+ lsr r0, r0, #0x10
+ bl LowestFlagNo
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _02240326
+ add r0, r4, #0
+ mov r2, #0x6b
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _02240346
+_02240326:
+ ldr r0, [r4, #0x64]
+ mov r1, #8
+ lsl r0, r0, #2
+ ldr r2, [r6, r0]
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x6c
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_02240346:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0224034E:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _02240480 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ mov r0, #3
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _0224043C
+ ldr r0, _02240480 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ mov r0, #1
+ lsl r0, r0, #8
+ sub r1, r1, r0
+ ldr r0, _02240480 ; =0x00002DB0
+ str r1, [r2, r0]
+ ldr r0, [r4, #0x64]
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02240480 ; =0x00002DB0
+ ldr r2, [r2, r1]
+ mov r1, #3
+ lsl r1, r1, #8
+ tst r1, r2
+ bne _022403E8
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, _0224048C ; =0x000030E4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022403E8
+ lsl r1, r0, #1
+ ldr r0, _02240490 ; =0x00002144
+ str r1, [r4, r0]
+ ldr r3, [r4, #0x64]
+ lsl r0, r3, #2
+ add r1, r4, r0
+ ldr r0, _02240494 ; =0x000030F4
+ ldr r2, [r1, r0]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02240498 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022403B8
+ str r2, [r4, #0x6c]
+ b _022403E8
+_022403B8:
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ add r2, r3, #0
+ bl MOD11_022482A4
+ mov r1, #0xc0
+ mul r1, r0
+ str r0, [r4, #0x6c]
+ ldr r0, _02240498 ; =0x00002D8C
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022403E8
+ ldr r2, _0224049C ; =0x0000011A
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r7, #2
+ b _0224043C
+_022403E8:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x24
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0224043C
+_022403FE:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02240488 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0224042E
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x7d
+ beq _0224041A
+ cmp r0, #0xfd
+ bne _0224042E
+_0224041A:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1e
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0224042E:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_02240436:
+ mov r0, #0
+ str r0, [r4, #0x50]
+ mov r7, #3
+_0224043C:
+ cmp r7, #0
+ bne _02240442
+ b _0223FDDE
+_02240442:
+ ldr r0, [sp, #0x18]
+ ldr r2, [r4, #0x64]
+ add r1, r4, #0
+ bl MOD11_02245190
+ cmp r7, #1
+ bne _0224046A
+ ldr r1, _022404A0 ; =0x0000213C
+ mov r0, #2
+ ldr r2, [r4, r1]
+ orr r0, r2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ add r0, #0x30
+ ldr r2, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0x1e
+ orr r0, r2
+ add r1, #0x30
+ str r0, [r4, r1]
+_0224046A:
+ cmp r7, #3
+ beq _02240474
+ add sp, #0x2c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02240474:
+ mov r0, #0
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224047C: .word 0x00003044
+_02240480: .word 0x00002DB0
+_02240484: .word 0x0000215C
+_02240488: .word 0x00002DAC
+_0224048C: .word 0x000030E4
+_02240490: .word 0x00002144
+_02240494: .word 0x000030F4
+_02240498: .word 0x00002D8C
+_0224049C: .word 0x0000011A
+_022404A0: .word 0x0000213C
+
+ thumb_func_start MOD11_022404A4
+MOD11_022404A4: ; 0x022404A4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r5, #0
+ ldr r7, _02240514 ; =0x0000216C
+ mov r4, #0
+ add r6, #0x54
+_022404B0:
+ ldr r0, [r5, #0x54]
+ cmp r0, #0
+ beq _022404BC
+ cmp r0, #1
+ beq _022404FC
+ b _02240502
+_022404BC:
+ ldr r1, [r5, #0x64]
+ ldr r2, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02247418
+ add r2, r0, #0
+ beq _022404D4
+ ldr r0, _02240514 ; =0x0000216C
+ ldr r1, [r5, r0]
+ ldr r0, _02240518 ; =0x001FD849
+ tst r0, r1
+ beq _022404D8
+_022404D4:
+ cmp r2, #0xb5
+ bne _022404F4
+_022404D8:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r5, #8]
+ mov r4, #1
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+ mov r0, #2
+ ldr r1, [r5, r7]
+ lsl r0, r0, #0x1e
+ orr r0, r1
+ str r0, [r5, r7]
+_022404F4:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+ b _02240502
+_022404FC:
+ mov r0, #0
+ str r0, [r5, #0x54]
+ mov r4, #2
+_02240502:
+ cmp r4, #0
+ beq _022404B0
+ cmp r4, #2
+ beq _0224050E
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0224050E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02240514: .word 0x0000216C
+_02240518: .word 0x001FD849
+
+ thumb_func_start MOD11_0224051C
+MOD11_0224051C: ; 0x0224051C
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r2, _02240538 ; =0x00000116
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_02240538: .word 0x00000116
+
+ thumb_func_start MOD11_0224053C
+MOD11_0224053C: ; 0x0224053C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ str r0, [sp, #4]
+ add r5, r1, #0
+ add r6, r2, #0
+ str r3, [sp, #8]
+ bl MOD11_0222FF74
+ mov r1, #1
+ lsl r1, r1, #0xa
+ tst r0, r1
+ beq _0224055A
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224055A:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ ldr r0, [sp, #0x38]
+ ldr r2, _02240868 ; =0x00002D5E
+ lsl r0, r0, #4
+ str r0, [sp, #0x10]
+ add r1, r5, r0
+ mov r0, #0x3e
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ add r1, r6, #0
+ str r0, [sp, #0x18]
+ mov r0, #0xc0
+ mul r1, r0
+ str r1, [sp, #0xc]
+ add r1, r5, r1
+ ldrsb r1, [r1, r2]
+ sub r1, r1, #6
+ lsl r1, r1, #0x18
+ asr r7, r1, #0x18
+ ldr r1, [sp, #8]
+ mul r0, r1
+ str r0, [sp, #0x14]
+ add r1, r5, r0
+ add r0, r2, #1
+ ldrsb r1, [r1, r0]
+ mov r0, #6
+ sub r0, r0, r1
+ lsl r0, r0, #0x18
+ asr r4, r0, #0x18
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x56
+ bne _022405AA
+ lsl r0, r7, #0x19
+ asr r7, r0, #0x18
+_022405AA:
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r3, #0x56
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022405BE
+ lsl r0, r4, #0x19
+ asr r4, r0, #0x18
+_022405BE:
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r3, #0x6d
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022405D0
+ mov r7, #0
+_022405D0:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x6d
+ bne _022405DE
+ mov r4, #0
+_022405DE:
+ ldr r0, _0224086C ; =0x00002DB0
+ ldr r1, [sp, #0x14]
+ add r2, r5, r0
+ str r2, [sp, #0x1c]
+ ldr r1, [r2, r1]
+ mov r2, #2
+ lsl r2, r2, #0x1c
+ tst r1, r2
+ bne _022405FE
+ ldr r1, [sp, #0x14]
+ add r0, #0x10
+ add r1, r5, r1
+ ldr r1, [r1, r0]
+ lsr r0, r2, #7
+ tst r0, r1
+ beq _02240604
+_022405FE:
+ cmp r4, #0
+ bge _02240604
+ mov r4, #0
+_02240604:
+ add r0, r4, #6
+ add r0, r0, r7
+ lsl r0, r0, #0x18
+ asr r7, r0, #0x18
+ bpl _02240610
+ mov r7, #0
+_02240610:
+ cmp r7, #0xc
+ ble _02240616
+ mov r7, #0xc
+_02240616:
+ ldr r0, _02240870 ; =0x000003E3
+ add r1, r5, r0
+ ldr r0, [sp, #0x10]
+ ldrb r4, [r1, r0]
+ cmp r4, #0
+ bne _02240628
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02240628:
+ ldr r0, _02240874 ; =0x0000213C
+ mov r1, #0x20
+ ldr r0, [r5, r0]
+ add r2, r0, #0
+ tst r2, r1
+ beq _0224063A
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224063A:
+ lsl r1, r1, #5
+ tst r0, r1
+ beq _02240646
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02240646:
+ mov r0, #0xd
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _02240688
+ mov r0, #0x4c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _02240688
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0x30
+ tst r0, r1
+ beq _02240688
+ ldr r0, [sp, #0x10]
+ add r1, r5, r0
+ ldr r0, _02240878 ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x98
+ bne _02240688
+ mov r4, #0x32
+_02240688:
+ ldr r0, _0224087C ; =0x0225E178
+ lsl r1, r7, #1
+ ldrb r0, [r0, r1]
+ ldr r2, _02240880 ; =0x0225E179
+ ldrb r1, [r2, r1]
+ mul r0, r4
+ bl _u32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0xe
+ bne _022406B6
+ mov r0, #0x82
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_022406B6:
+ mov r0, #0xd
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224074E
+ mov r0, #0x4c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224074E
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0xc
+ tst r0, r1
+ beq _02240708
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r3, #8
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02240708
+ mov r0, #0x50
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_02240708:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ tst r0, r1
+ beq _02240732
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r3, #0x51
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02240732
+ mov r0, #0x50
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_02240732:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0xe
+ tst r0, r1
+ beq _0224074E
+ mov r0, #6
+ mul r0, r4
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224074E:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x37
+ bne _0224076E
+ ldr r0, [sp, #0x18]
+ cmp r0, #0
+ bne _0224076E
+ mov r0, #0x50
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224076E:
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r3, #0x4d
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02240798
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x14]
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _02240798
+ mov r0, #0x32
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_02240798:
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ add r7, r0, #0
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ cmp r7, #0x2f
+ bne _022407BE
+ mov r1, #0x64
+ sub r0, r1, r0
+ mul r0, r4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_022407BE:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02249D90
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ add r6, r0, #0
+ cmp r7, #0x5c
+ bne _022407E6
+ add r0, #0x64
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_022407E6:
+ cmp r7, #0x67
+ bne _02240806
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_02249B7C
+ cmp r0, #1
+ bne _02240806
+ add r6, #0x64
+ add r0, r4, #0
+ mul r0, r6
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_02240806:
+ ldr r0, _02240884 ; =0x00002DCC
+ ldr r1, [sp, #0xc]
+ add r0, r5, r0
+ ldr r2, [r0, r1]
+ lsl r1, r2, #4
+ lsr r1, r1, #0x1f
+ beq _0224082A
+ ldr r1, _02240888 ; =0xF7FFFFFF
+ and r2, r1
+ ldr r1, [sp, #0xc]
+ str r2, [r0, r1]
+ mov r0, #0x78
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224082A:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02240846
+ mov r0, #0xa
+ mul r0, r4
+ mov r1, #6
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_02240846:
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ add r0, r1, #1
+ cmp r0, r4
+ ble _02240860
+ ldr r1, _0224088C ; =0x0000216C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+_02240860:
+ mov r0, #0
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02240868: .word 0x00002D5E
+_0224086C: .word 0x00002DB0
+_02240870: .word 0x000003E3
+_02240874: .word 0x0000213C
+_02240878: .word 0x000003DE
+_0224087C: .word 0x0225E178
+_02240880: .word 0x0225E179
+_02240884: .word 0x00002DCC
+_02240888: .word 0xF7FFFFFF
+_0224088C: .word 0x0000216C
+
+ thumb_func_start MOD11_02240890
+MOD11_02240890: ; 0x02240890
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp, #4]
+ add r5, r1, #0
+ ldr r0, _02240A54 ; =0x0000213C
+ add r6, r3, #0
+ ldr r3, [r5, r0]
+ mov r1, #0x20
+ add r7, r2, #0
+ ldr r4, [sp, #0x20]
+ tst r1, r3
+ beq _022408AE
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022408AE:
+ lsl r1, r6, #6
+ add r3, r5, r1
+ mov r1, #0x75
+ lsl r1, r1, #2
+ ldr r1, [r3, r1]
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x1f
+ beq _0224091C
+ lsl r1, r4, #4
+ add r3, r5, r1
+ ldr r1, _02240A58 ; =0x000003E9
+ ldrb r3, [r3, r1]
+ mov r1, #2
+ tst r1, r3
+ beq _0224091C
+ add r0, #0x30
+ ldr r1, [r5, r0]
+ ldr r0, _02240A5C ; =0x801FDA49
+ tst r0, r1
+ bne _0224091C
+ cmp r4, #0xae
+ bne _022408E8
+ lsl r1, r4, #0x10
+ add r0, r5, #0
+ lsr r1, r1, #0x10
+ bl MOD11_02246C20
+ cmp r0, #1
+ bne _0224091C
+_022408E8:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246AF8
+ cmp r0, #0
+ beq _02240900
+ ldr r0, _02240A54 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _0224091C
+_02240900:
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_022451F0
+ ldr r1, _02240A60 ; =0x0000216C
+ mov r0, #2
+ ldr r2, [r5, r1]
+ lsl r0, r0, #0xe
+ orr r0, r2
+ str r0, [r5, r1]
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224091C:
+ ldr r0, _02240A54 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #1
+ lsl r0, r0, #0xa
+ tst r0, r1
+ bne _0224096E
+ mov r0, #0xc0
+ mul r0, r6
+ add r3, r5, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r2, [r3, r0]
+ mov r1, #0x18
+ tst r1, r2
+ beq _02240946
+ add r0, #0xc
+ ldr r0, [r3, r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ cmp r7, r0
+ beq _0224095E
+_02240946:
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x63
+ beq _0224095E
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x63
+ bne _0224096E
+_0224095E:
+ ldr r1, _02240A60 ; =0x0000216C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ add sp, #8
+ bic r2, r0
+ str r2, [r5, r1]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224096E:
+ mov r0, #0xd
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022409DC
+ mov r0, #0x4c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022409DC
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #3
+ tst r0, r1
+ beq _022409B8
+ lsl r0, r4, #4
+ add r1, r5, r0
+ ldr r0, _02240A64 ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x98
+ bne _022409B8
+ ldr r1, _02240A60 ; =0x0000216C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ bic r2, r0
+ str r2, [r5, r1]
+_022409B8:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ mov r1, #0xc0
+ tst r0, r1
+ beq _022409DC
+ lsl r0, r4, #4
+ add r2, r5, r0
+ ldr r0, _02240A64 ; =0x000003DE
+ add r1, #0x44
+ ldrh r0, [r2, r0]
+ cmp r0, r1
+ bne _022409DC
+ ldr r1, _02240A60 ; =0x0000216C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ bic r2, r0
+ str r2, [r5, r1]
+_022409DC:
+ ldr r1, _02240A60 ; =0x0000216C
+ mov r2, #1
+ ldr r0, [r5, r1]
+ lsl r2, r2, #0xa
+ tst r0, r2
+ bne _02240A4C
+ ldr r0, _02240A68 ; =0x00003044
+ sub r2, #0x1a
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r0, r5, r0
+ ldrh r0, [r0, r2]
+ cmp r0, #0x80
+ beq _02240A4C
+ sub r1, #0x30
+ ldr r0, [r5, r1]
+ mov r1, #4
+ tst r1, r0
+ bne _02240A14
+ mov r1, #0xc0
+ mul r1, r6
+ add r2, r5, r1
+ mov r1, #0xb7
+ lsl r1, r1, #6
+ ldr r2, [r2, r1]
+ mov r1, #0x40
+ tst r1, r2
+ bne _02240A40
+_02240A14:
+ mov r1, #0xc0
+ mul r1, r6
+ add r2, r5, r1
+ mov r1, #0xb7
+ lsl r1, r1, #6
+ ldr r1, [r2, r1]
+ mov r2, #2
+ lsl r2, r2, #0x1c
+ tst r2, r1
+ bne _02240A40
+ mov r2, #8
+ tst r2, r0
+ bne _02240A34
+ mov r2, #0x80
+ tst r2, r1
+ bne _02240A40
+_02240A34:
+ mov r2, #0x10
+ tst r0, r2
+ bne _02240A4C
+ lsl r0, r2, #0xe
+ tst r0, r1
+ beq _02240A4C
+_02240A40:
+ ldr r1, _02240A60 ; =0x0000216C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ lsl r0, r0, #0x10
+ orr r0, r2
+ str r0, [r5, r1]
+_02240A4C:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02240A54: .word 0x0000213C
+_02240A58: .word 0x000003E9
+_02240A5C: .word 0x801FDA49
+_02240A60: .word 0x0000216C
+_02240A64: .word 0x000003DE
+_02240A68: .word 0x00003044
+
+ thumb_func_start MOD11_02240A6C
+MOD11_02240A6C: ; 0x02240A6C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ bl MOD11_0222FF84
+ add r2, r0, #0
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0xff
+ bne _02240A80
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02240A80:
+ ldr r6, _02240BBC ; =0x0000216C
+ ldr r1, _02240BC0 ; =0x801FDA49
+ ldr r3, [r4, r6]
+ add r7, r3, #0
+ and r7, r1
+ bne _02240B12
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r0, r0, #6
+ add r5, r4, r1
+ ldr r3, [r5, r0]
+ mov ip, r0
+ lsl r0, r3, #0x1b
+ lsr r0, r0, #0x1f
+ beq _02240B12
+ ldr r0, _02240BC4 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _02240BC8 ; =0x000003E9
+ ldrb r0, [r1, r0]
+ mov r1, #4
+ tst r0, r1
+ beq _02240B12
+ mov r0, #0x10
+ bic r3, r0
+ mov r0, ip
+ str r3, [r5, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0
+ lsl r2, r2, #1
+ add r3, r4, r2
+ ldr r2, _02240BC4 ; =0x00003044
+ add r2, #0x18
+ strh r0, [r3, r2]
+ ldr r2, [r4, #0x64]
+ ldr r0, _02240BC4 ; =0x00003044
+ lsl r2, r2, #1
+ sub r0, r0, #4
+ add r3, r4, r2
+ ldr r2, _02240BC4 ; =0x00003044
+ ldr r0, [r4, r0]
+ add r2, #0x38
+ strh r0, [r3, r2]
+ ldr r0, _02240BC4 ; =0x00003044
+ sub r0, r0, #4
+ ldr r2, [r4, r0]
+ ldr r0, _02240BC4 ; =0x00003044
+ add r0, r0, #4
+ str r2, [r4, r0]
+ add r0, r6, #0
+ sub r0, #0x30
+ ldr r2, [r4, r0]
+ lsl r0, r1, #0x12
+ orr r0, r2
+ sub r6, #0x30
+ str r0, [r4, r6]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x8b
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r1, [r4, #0x6c]
+ ldr r2, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_0224C438
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02240B12:
+ mov r1, #0
+ cmp r2, #0
+ ble _02240BB8
+ mov r0, #0x75
+ lsl r0, r0, #2
+ add r0, r4, r0
+_02240B1E:
+ ldr r3, _02240BCC ; =0x000021EC
+ add r5, r4, r1
+ ldrb r5, [r5, r3]
+ cmp r7, #0
+ bne _02240BB2
+ lsl r3, r5, #6
+ str r3, [sp]
+ ldr r3, [r0, r3]
+ lsl r3, r3, #0x1a
+ lsr r3, r3, #0x1f
+ beq _02240BB2
+ ldr r3, _02240BC4 ; =0x00003044
+ ldr r3, [r4, r3]
+ lsl r3, r3, #4
+ add r6, r4, r3
+ ldr r3, _02240BC8 ; =0x000003E9
+ ldrb r6, [r6, r3]
+ mov r3, #8
+ tst r3, r6
+ beq _02240BB2
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r5, [r4, r1]
+ ldr r1, [sp]
+ mov r7, #1
+ ldr r2, [r0, r1]
+ mov r1, #0x20
+ bic r2, r1
+ ldr r1, [sp]
+ lsl r7, r7, #0x14
+ str r2, [r0, r1]
+ ldr r2, _02240BD0 ; =0x0000213C
+ ldr r0, [r4, r2]
+ tst r0, r7
+ bne _02240B92
+ ldr r1, [r4, #0x64]
+ mov r0, #0
+ lsl r1, r1, #1
+ add r3, r4, r1
+ ldr r1, _02240BD4 ; =0x0000305C
+ strh r0, [r3, r1]
+ add r0, r1, #0
+ sub r0, #0x1c
+ ldr r6, [r4, r0]
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #1
+ add r3, r4, r0
+ add r0, r1, #0
+ add r0, #0x20
+ strh r6, [r3, r0]
+ add r0, r1, #0
+ sub r0, #0x1c
+ ldr r0, [r4, r0]
+ sub r1, #0x14
+ str r0, [r4, r1]
+ ldr r0, [r4, r2]
+ orr r0, r7
+ str r0, [r4, r2]
+_02240B92:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x92
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r2, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_0224C438
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02240BB2:
+ add r1, r1, #1
+ cmp r1, r2
+ blt _02240B1E
+_02240BB8:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02240BBC: .word 0x0000216C
+_02240BC0: .word 0x801FDA49
+_02240BC4: .word 0x00003044
+_02240BC8: .word 0x000003E9
+_02240BCC: .word 0x000021EC
+_02240BD0: .word 0x0000213C
+_02240BD4: .word 0x0000305C
+
+ thumb_func_start MOD11_02240BD8
+MOD11_02240BD8: ; 0x02240BD8
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_02232264
+ cmp r0, #1
+ bne _02240BF0
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ ldr r0, [r4, #0xc]
+ str r0, [r4, #8]
+_02240BF0:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02240BF4
+MOD11_02240BF4: ; 0x02240BF4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r2, [r4, #0x48]
+ add r5, r0, #0
+ cmp r2, #6
+ bhi _02240CEA
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02240C0C: ; jump table
+ .short _02240C1A - _02240C0C - 2 ; case 0
+ .short _02240C26 - _02240C0C - 2 ; case 1
+ .short _02240C3E - _02240C0C - 2 ; case 2
+ .short _02240C8A - _02240C0C - 2 ; case 3
+ .short _02240CA6 - _02240C0C - 2 ; case 4
+ .short _02240CB8 - _02240C0C - 2 ; case 5
+ .short _02240CD4 - _02240C0C - 2 ; case 6
+_02240C1A:
+ bl MOD11_0224051C
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+ pop {r3, r4, r5, pc}
+_02240C26:
+ ldr r2, _02240D30 ; =0x00002184
+ ldr r3, [r4, r2]
+ mov r2, #4
+ tst r2, r3
+ bne _02240C38
+ bl MOD11_0223FDB0
+ cmp r0, #1
+ beq _02240D2C
+_02240C38:
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+_02240C3E:
+ ldr r0, _02240D30 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #1
+ tst r0, r1
+ bne _02240C84
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0
+ bl MOD11_0223F84C
+ cmp r0, #0
+ beq _02240C84
+ cmp r0, #1
+ beq _02240C64
+ cmp r0, #2
+ beq _02240C6A
+ cmp r0, #3
+ beq _02240C70
+ b _02240C74
+_02240C64:
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ b _02240C74
+_02240C6A:
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ b _02240C74
+_02240C70:
+ mov r0, #0x21
+ str r0, [r4, #0xc]
+_02240C74:
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r2, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ pop {r3, r4, r5, pc}
+_02240C84:
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+_02240C8A:
+ ldr r0, _02240D30 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #8
+ tst r0, r1
+ bne _02240CA0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223FB10
+ cmp r0, #1
+ beq _02240D2C
+_02240CA0:
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+_02240CA6:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223FCAC
+ cmp r0, #1
+ beq _02240D2C
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+_02240CB8:
+ ldr r0, _02240D30 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #0x80
+ tst r0, r1
+ bne _02240CCE
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02240A6C
+ cmp r0, #1
+ beq _02240D2C
+_02240CCE:
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+_02240CD4:
+ ldr r3, _02240D34 ; =0x00003044
+ ldr r2, [r4, #0x64]
+ ldr r3, [r4, r3]
+ add r0, r5, #0
+ lsl r3, r3, #0x10
+ add r1, r4, #0
+ lsr r3, r3, #0x10
+ bl MOD11_02244F68
+ mov r0, #0
+ str r0, [r4, #0x48]
+_02240CEA:
+ ldr r1, _02240D38 ; =0x0000216C
+ ldr r0, _02240D3C ; =0x801FDA49
+ ldr r2, [r4, r1]
+ tst r0, r2
+ beq _02240CFA
+ mov r0, #0x19
+ str r0, [r4, #8]
+ b _02240D24
+_02240CFA:
+ add r0, r1, #0
+ sub r0, #0x2c
+ ldr r2, [r4, r0]
+ mov r0, #0x40
+ orr r0, r2
+ sub r1, #0x2c
+ str r0, [r4, r1]
+ ldr r2, _02240D34 ; =0x00003044
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ mov r1, #0
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x17
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02247380
+_02240D24:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224AB44
+_02240D2C:
+ pop {r3, r4, r5, pc}
+ nop
+_02240D30: .word 0x00002184
+_02240D34: .word 0x00003044
+_02240D38: .word 0x0000216C
+_02240D3C: .word 0x801FDA49
+
+ thumb_func_start MOD11_02240D40
+MOD11_02240D40: ; 0x02240D40
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r2, [r4, #0x4c]
+ add r5, r0, #0
+ cmp r2, #6
+ bhi _02240E20
+ add r3, r2, r2
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_02240D58: ; jump table
+ .short _02240D66 - _02240D58 - 2 ; case 0
+ .short _02240D72 - _02240D58 - 2 ; case 1
+ .short _02240D84 - _02240D58 - 2 ; case 2
+ .short _02240DAE - _02240D58 - 2 ; case 3
+ .short _02240DD8 - _02240D58 - 2 ; case 4
+ .short _02240DFA - _02240D58 - 2 ; case 5
+ .short _02240E1C - _02240D58 - 2 ; case 6
+_02240D66:
+ add r2, r2, #1
+ str r2, [r4, #0x4c]
+ bl MOD11_0223FCAC
+ cmp r0, #1
+ beq _02240E24
+_02240D72:
+ ldr r0, [r4, #0x4c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ add r0, r5, #0
+ bl MOD11_0224510C
+ cmp r0, #1
+ beq _02240E24
+_02240D84:
+ ldr r0, _02240E28 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _02240DA8
+ ldr r3, [r4, #0x6c]
+ cmp r3, #0xff
+ beq _02240DA8
+ ldr r0, _02240E2C ; =0x00003044
+ add r1, r4, #0
+ ldr r0, [r4, r0]
+ str r0, [sp]
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_0224053C
+ cmp r0, #1
+ beq _02240E24
+_02240DA8:
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+_02240DAE:
+ ldr r0, _02240E28 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #0x40
+ tst r0, r1
+ bne _02240DD2
+ ldr r3, [r4, #0x6c]
+ cmp r3, #0xff
+ beq _02240DD2
+ ldr r0, _02240E2C ; =0x00003044
+ add r1, r4, #0
+ ldr r0, [r4, r0]
+ str r0, [sp]
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02240890
+ cmp r0, #1
+ beq _02240E24
+_02240DD2:
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+_02240DD8:
+ ldr r0, _02240E28 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #2
+ tst r0, r1
+ bne _02240DF4
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0xff
+ beq _02240DF4
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223FD20
+ cmp r0, #1
+ beq _02240E24
+_02240DF4:
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+_02240DFA:
+ ldr r0, _02240E28 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #0x10
+ tst r0, r1
+ bne _02240E16
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0xff
+ beq _02240E16
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022404A4
+ cmp r0, #1
+ beq _02240E24
+_02240E16:
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+_02240E1C:
+ mov r0, #0
+ str r0, [r4, #0x4c]
+_02240E20:
+ mov r0, #0x18
+ str r0, [r4, #8]
+_02240E24:
+ pop {r3, r4, r5, pc}
+ nop
+_02240E28: .word 0x00002184
+_02240E2C: .word 0x00003044
+
+ thumb_func_start MOD11_02240E30
+MOD11_02240E30: ; 0x02240E30
+ push {r3, r4, lr}
+ sub sp, #4
+ add r2, sp, #0
+ add r4, r1, #0
+ bl MOD11_02244948
+ cmp r0, #1
+ bne _02240E56
+ ldr r2, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x19
+ add sp, #4
+ str r0, [r4, #0xc]
+ pop {r3, r4, pc}
+_02240E56:
+ mov r0, #0x19
+ str r0, [r4, #8]
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02240E60
+MOD11_02240E60: ; 0x02240E60
+ push {r4, lr}
+ ldr r0, _02240ED8 ; =0x0000216C
+ add r4, r1, #0
+ ldr r1, [r4, r0]
+ mov r2, #2
+ lsl r2, r2, #0x1e
+ add r3, r1, #0
+ tst r3, r2
+ beq _02240E78
+ mov r0, #0x22
+ str r0, [r4, #8]
+ pop {r4, pc}
+_02240E78:
+ lsr r2, r2, #0x16
+ tst r2, r1
+ beq _02240E92
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x2a
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+_02240E92:
+ add r2, r0, #0
+ add r2, #0x14
+ ldr r2, [r4, r2]
+ cmp r2, #0
+ beq _02240EB8
+ mov r3, #1
+ add r2, r1, #0
+ tst r2, r3
+ beq _02240EB8
+ mov r2, #1
+ bic r1, r2
+ str r1, [r4, r0]
+ ldr r2, [r4, r0]
+ lsl r1, r3, #0xe
+ orr r1, r2
+ str r1, [r4, r0]
+ mov r0, #0x1c
+ str r0, [r4, #8]
+ pop {r4, pc}
+_02240EB8:
+ ldr r0, _02240EDC ; =0x001FD849
+ tst r0, r1
+ beq _02240ED2
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #7
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x21
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+_02240ED2:
+ mov r0, #0x1a
+ str r0, [r4, #8]
+ pop {r4, pc}
+ .align 2, 0
+_02240ED8: .word 0x0000216C
+_02240EDC: .word 0x001FD849
+
+ thumb_func_start MOD11_02240EE0
+MOD11_02240EE0: ; 0x02240EE0
+ push {r4, lr}
+ add r4, r1, #0
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x1b
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02240EF8
+MOD11_02240EF8: ; 0x02240EF8
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r2, _02241260 ; =0x0000216C
+ add r4, r1, #0
+ ldr r1, [r4, r2]
+ add r5, r0, #0
+ mov r0, #0x20
+ tst r0, r1
+ beq _02240F1E
+ ldr r0, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r0, #0
+ mul r3, r1
+ ldr r0, _02241264 ; =0x00002D90
+ add r3, r4, r3
+ ldr r0, [r3, r0]
+ sub r1, #0xc1
+ mul r1, r0
+ sub r2, #0x28
+ str r1, [r4, r2]
+_02240F1E:
+ ldr r0, _02241268 ; =0x00002144
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02240F28
+ b _022412E8
+_02240F28:
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02249D90
+ add r7, r0, #0
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ str r0, [sp]
+ ldr r0, _02241268 ; =0x00002144
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ blt _02240F4A
+ bl ErrorHandling
+_02240F4A:
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ ldr r1, [r4, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02230270
+ cmp r6, r0
+ bne _02240F6C
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ mov r2, #0
+ mov r3, #0x46
+ bl MOD11_022564A8
+_02240F6C:
+ ldr r0, [r4, #0x6c]
+ ldr r2, [r4, #0x64]
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, _0224126C ; =0x000030F4
+ str r2, [r1, r0]
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ add r6, r1, #0
+ mul r6, r0
+ mov r2, #1
+ ldr r1, _02241270 ; =0x00002DB0
+ add r5, r4, r6
+ ldr r3, [r5, r1]
+ lsl r2, r2, #0x18
+ tst r2, r3
+ beq _02241044
+ ldr r2, _02241268 ; =0x00002144
+ ldr r2, [r4, r2]
+ cmp r2, #0
+ bge _02241044
+ add r3, r1, #0
+ add r3, #0x30
+ ldr r3, [r5, r3]
+ add r5, r2, r3
+ cmp r5, #0
+ bgt _02240FE8
+ mov r2, #0xbb
+ lsl r2, r2, #2
+ add r6, r4, r2
+ ldr r2, [r4, #0x64]
+ mov r5, #0x1c
+ mul r5, r2
+ ldr r2, [r6, r5]
+ sub r2, r2, r3
+ str r2, [r6, r5]
+ ldr r5, [r4, #0x6c]
+ add r3, r4, r1
+ add r2, r5, #0
+ mul r2, r0
+ ldr r6, [r3, r2]
+ ldr r5, _02241274 ; =0xFEFFFFFF
+ and r5, r6
+ str r5, [r3, r2]
+ ldr r2, [r4, #0x6c]
+ add r3, r2, #0
+ add r2, r1, #0
+ mul r3, r0
+ add r3, r4, r3
+ add r2, #0x30
+ ldr r2, [r3, r2]
+ add r1, #0x30
+ neg r3, r2
+ ldr r2, _02241268 ; =0x00002144
+ add r2, r2, #4
+ str r3, [r4, r2]
+ ldr r2, [r4, #0x6c]
+ mov r3, #0
+ mul r0, r2
+ add r0, r4, r0
+ str r3, [r0, r1]
+ b _02241014
+_02240FE8:
+ mov r3, #0xbb
+ lsl r3, r3, #2
+ add r6, r4, r3
+ ldr r3, [r4, #0x64]
+ mov r5, #0x1c
+ mul r5, r3
+ ldr r3, [r6, r5]
+ add r1, #0x30
+ add r2, r3, r2
+ str r2, [r6, r5]
+ ldr r2, [r4, #0x6c]
+ add r1, r4, r1
+ mul r0, r2
+ ldr r2, _02241268 ; =0x00002144
+ ldr r3, [r1, r0]
+ ldr r2, [r4, r2]
+ add r2, r3, r2
+ str r2, [r1, r0]
+ ldr r0, _02241268 ; =0x00002144
+ ldr r1, [r4, r0]
+ add r0, r0, #4
+ str r1, [r4, r0]
+_02241014:
+ mov r0, #0xba
+ lsl r0, r0, #2
+ ldr r2, [r4, #0x6c]
+ add r1, r4, r0
+ add r0, r2, #0
+ mov r3, #0x1c
+ mul r0, r3
+ ldr r5, [r1, r0]
+ mov r2, #8
+ orr r2, r5
+ str r2, [r1, r0]
+ ldr r0, [r4, #0x6c]
+ add r3, #0xfc
+ str r0, [r4, r3]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x5a
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x1c
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02241044:
+ ldr r0, _02241278 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _0224127C ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x65
+ bne _0224106A
+ ldr r0, _02241280 ; =0x00002D8C
+ add r1, r4, r6
+ ldr r2, [r1, r0]
+ ldr r0, _02241268 ; =0x00002144
+ ldr r1, [r4, r0]
+ add r1, r1, r2
+ cmp r1, #0
+ bgt _0224106A
+ sub r1, r2, #1
+ neg r1, r1
+ str r1, [r4, r0]
+_0224106A:
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1f
+ bne _022410D0
+ cmp r7, #0x40
+ bne _022410A4
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r0, [sp]
+ cmp r1, r0
+ bge _022410A4
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r2, [r4, #0x6c]
+ mov r0, #0x1c
+ mul r0, r2
+ ldr r3, [r1, r0]
+ mov r2, #0x20
+ orr r2, r3
+ str r2, [r1, r0]
+_022410A4:
+ cmp r7, #0x66
+ bne _022410D0
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r3, r4, r0
+ ldr r0, _02241280 ; =0x00002D8C
+ ldr r2, [r3, r0]
+ add r0, r0, #4
+ ldr r0, [r3, r0]
+ cmp r2, r0
+ bne _022410D0
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r3, r1, #0
+ mov r2, #0x1c
+ add r0, r4, r0
+ mul r3, r2
+ ldr r2, [r0, r3]
+ mov r1, #0x20
+ orr r1, r2
+ str r1, [r0, r3]
+_022410D0:
+ ldr r0, [r4, #0x6c]
+ lsl r1, r0, #6
+ add r2, r4, r1
+ mov r1, #0x75
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0x16
+ lsr r1, r1, #0x1f
+ bne _022410F4
+ mov r1, #0x1c
+ mul r1, r0
+ add r2, r4, r1
+ mov r1, #0xb5
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1f
+ beq _0224113E
+_022410F4:
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02241280 ; =0x00002D8C
+ add r1, r4, r1
+ ldr r2, _02241268 ; =0x00002144
+ ldr r1, [r1, r0]
+ ldr r0, [r4, r2]
+ add r0, r0, r1
+ cmp r0, #0
+ bgt _0224113E
+ sub r0, r1, #1
+ neg r0, r0
+ str r0, [r4, r2]
+ ldr r0, [r4, #0x6c]
+ mov r1, #0x75
+ lsl r0, r0, #6
+ add r0, r4, r0
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1f
+ beq _02241130
+ add r0, r2, #0
+ add r0, #0x28
+ ldr r1, [r4, r0]
+ mov r0, #0x80
+ orr r0, r1
+ add r2, #0x28
+ str r0, [r4, r2]
+ b _0224113E
+_02241130:
+ add r0, r2, #0
+ add r0, #0x28
+ ldr r0, [r4, r0]
+ sub r1, #0xd4
+ orr r0, r1
+ add r2, #0x28
+ str r0, [r4, r2]
+_0224113E:
+ ldr r1, [r4, #0x6c]
+ ldr r0, _02241284 ; =0x000030E4
+ lsl r3, r1, #2
+ ldr r1, _02241268 ; =0x00002144
+ add r0, r4, r0
+ ldr r2, [r0, r3]
+ ldr r1, [r4, r1]
+ add r1, r2, r1
+ str r1, [r0, r3]
+ ldr r0, _02241288 ; =0x00002DBC
+ ldr r1, [r4, #0x6c]
+ add r3, r4, r0
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldrb r0, [r3, r2]
+ cmp r0, #0xff
+ bhs _02241166
+ add r0, r0, #1
+ strb r0, [r3, r2]
+_02241166:
+ ldr r0, _02241278 ; =0x00003044
+ mov r1, #0x3e
+ ldr r0, [r4, r0]
+ lsl r1, r1, #4
+ lsl r0, r0, #4
+ add r0, r4, r0
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _022411D4
+ ldr r1, [r4, #0x6c]
+ ldr r0, _02241268 ; =0x00002144
+ lsl r1, r1, #6
+ add r2, r4, r1
+ ldr r1, [r4, #0x64]
+ ldr r0, [r4, r0]
+ lsl r1, r1, #2
+ add r2, r2, r1
+ mov r1, #0x76
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+ ldr r0, [r4, #0x6c]
+ ldr r2, [r4, #0x64]
+ lsl r0, r0, #6
+ add r0, r4, r0
+ add r1, #0x10
+ str r2, [r0, r1]
+ ldr r0, [r4, #0x64]
+ bl MaskOfFlagNo
+ mov r1, #0x7b
+ ldr r3, [r4, #0x6c]
+ lsl r1, r1, #2
+ add r2, r4, r1
+ lsl r5, r3, #6
+ ldr r3, [r2, r5]
+ orr r0, r3
+ str r0, [r2, r5]
+ ldr r2, [r4, #0x6c]
+ ldr r0, _02241268 ; =0x00002144
+ add r5, r2, #0
+ add r2, r1, #0
+ mov r3, #0x1c
+ mul r5, r3
+ ldr r0, [r4, r0]
+ add r5, r4, r5
+ add r2, #0xec
+ str r0, [r5, r2]
+ ldr r0, [r4, #0x6c]
+ ldr r5, [r4, #0x64]
+ add r2, r0, #0
+ mul r2, r3
+ add r0, r4, r2
+ add r1, #0xf0
+ str r5, [r0, r1]
+ b _02241232
+_022411D4:
+ cmp r0, #1
+ bne _02241232
+ ldr r2, [r4, #0x6c]
+ ldr r0, _02241268 ; =0x00002144
+ lsl r2, r2, #6
+ add r3, r4, r2
+ ldr r2, [r4, #0x64]
+ ldr r0, [r4, r0]
+ lsl r2, r2, #2
+ add r2, r3, r2
+ lsr r1, r1, #1
+ str r0, [r2, r1]
+ ldr r0, [r4, #0x6c]
+ ldr r2, [r4, #0x64]
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #2
+ lsl r0, r0, #8
+ str r2, [r1, r0]
+ ldr r0, [r4, #0x64]
+ bl MaskOfFlagNo
+ mov r1, #0x81
+ ldr r3, [r4, #0x6c]
+ lsl r1, r1, #2
+ add r2, r4, r1
+ lsl r5, r3, #6
+ ldr r3, [r2, r5]
+ orr r0, r3
+ str r0, [r2, r5]
+ ldr r2, [r4, #0x6c]
+ ldr r0, _02241268 ; =0x00002144
+ add r5, r2, #0
+ add r2, r1, #0
+ mov r3, #0x1c
+ mul r5, r3
+ ldr r0, [r4, r0]
+ add r5, r4, r5
+ add r2, #0xdc
+ str r0, [r5, r2]
+ ldr r0, [r4, #0x6c]
+ ldr r5, [r4, #0x64]
+ add r2, r0, #0
+ mul r2, r3
+ add r0, r4, r2
+ add r1, #0xe0
+ str r5, [r0, r1]
+_02241232:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02241280 ; =0x00002D8C
+ ldr r2, [r1, r0]
+ ldr r0, _02241268 ; =0x00002144
+ ldr r1, [r4, r0]
+ add r0, r1, r2
+ cmp r0, #0
+ bgt _0224128C
+ mov r0, #0xbb
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r3, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r3
+ ldr r3, [r1, r0]
+ neg r2, r2
+ add r2, r3, r2
+ str r2, [r1, r0]
+ b _022412A0
+ nop
+_02241260: .word 0x0000216C
+_02241264: .word 0x00002D90
+_02241268: .word 0x00002144
+_0224126C: .word 0x000030F4
+_02241270: .word 0x00002DB0
+_02241274: .word 0xFEFFFFFF
+_02241278: .word 0x00003044
+_0224127C: .word 0x000003DE
+_02241280: .word 0x00002D8C
+_02241284: .word 0x000030E4
+_02241288: .word 0x00002DBC
+_0224128C:
+ ldr r3, [r4, #0x64]
+ mov r0, #0xbb
+ lsl r0, r0, #2
+ mov r2, #0x1c
+ add r5, r3, #0
+ add r0, r4, r0
+ mul r5, r2
+ ldr r2, [r0, r5]
+ add r1, r2, r1
+ str r1, [r0, r5]
+_022412A0:
+ ldr r3, _022412F0 ; =0x00002144
+ ldr r0, [r4, #0x6c]
+ mov r2, #0x82
+ lsl r0, r0, #6
+ ldr r1, [r4, r3]
+ add r0, r4, r0
+ lsl r2, r2, #2
+ str r1, [r0, r2]
+ ldr r1, [r4, #0x6c]
+ ldr r0, [r4, #0x64]
+ lsl r1, r1, #6
+ add r5, r4, r1
+ add r1, r2, #4
+ str r0, [r5, r1]
+ ldr r0, [r4, #0x6c]
+ sub r2, #0xf0
+ str r0, [r4, r2]
+ ldr r0, [r4, r3]
+ add r3, #0x18
+ str r0, [r4, r3]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #2
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x1c
+ str r0, [r4, #0xc]
+ ldr r1, _022412F4 ; =0x0000213C
+ mov r0, #2
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0xc
+ orr r0, r2
+ str r0, [r4, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+_022412E8:
+ mov r0, #0x1c
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022412F0: .word 0x00002144
+_022412F4: .word 0x0000213C
+
+ thumb_func_start MOD11_022412F8
+MOD11_022412F8: ; 0x022412F8
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldr r2, [r4, #0x38]
+ add r5, r0, #0
+ cmp r2, #0
+ beq _0224130C
+ cmp r2, #1
+ beq _022413D2
+ b _02241490
+_0224130C:
+ ldr r2, [r4, #0x3c]
+ cmp r2, #5
+ bls _02241314
+ b _02241490
+_02241314:
+ add r3, r2, r2
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_02241320: ; jump table
+ .short _0224132C - _02241320 - 2 ; case 0
+ .short _02241338 - _02241320 - 2 ; case 1
+ .short _0224134A - _02241320 - 2 ; case 2
+ .short _0224137E - _02241320 - 2 ; case 3
+ .short _02241392 - _02241320 - 2 ; case 4
+ .short _022413BC - _02241320 - 2 ; case 5
+_0224132C:
+ add r2, r2, #1
+ str r2, [r4, #0x3c]
+ bl MOD11_02242774
+ cmp r0, #1
+ beq _02241390
+_02241338:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD11_02242790
+ cmp r0, #1
+ beq _02241390
+_0224134A:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ add r2, sp, #0xc
+ bl MOD11_022449EC
+ cmp r0, #1
+ bne _0224137E
+ ldr r0, _0224149C ; =0x0000216C
+ ldr r1, [r4, r0]
+ ldr r0, _022414A0 ; =0x001FD849
+ tst r0, r1
+ bne _0224137E
+ ldr r2, [sp, #0xc]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_0224137E:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD11_022427E4
+ cmp r0, #1
+ bne _02241392
+_02241390:
+ b _02241498
+_02241392:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ add r2, sp, #8
+ bl MOD11_02248308
+ cmp r0, #1
+ bne _022413BC
+ ldr r2, [sp, #8]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_022413BC:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD11_02242870
+ cmp r0, #1
+ bne _02241490
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_022413D2:
+ ldr r2, [r4, #0x3c]
+ cmp r2, #5
+ bhi _02241490
+ add r3, r2, r2
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_022413E4: ; jump table
+ .short _022413F0 - _022413E4 - 2 ; case 0
+ .short _022413FC - _022413E4 - 2 ; case 1
+ .short _02241430 - _022413E4 - 2 ; case 2
+ .short _02241442 - _022413E4 - 2 ; case 3
+ .short _0224146C - _022413E4 - 2 ; case 4
+ .short _0224147E - _022413E4 - 2 ; case 5
+_022413F0:
+ add r2, r2, #1
+ str r2, [r4, #0x3c]
+ bl MOD11_02242774
+ cmp r0, #1
+ beq _02241498
+_022413FC:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ add r2, sp, #4
+ bl MOD11_022449EC
+ cmp r0, #1
+ bne _02241430
+ ldr r0, _0224149C ; =0x0000216C
+ ldr r1, [r4, r0]
+ ldr r0, _022414A0 ; =0x001FD849
+ tst r0, r1
+ bne _02241430
+ ldr r2, [sp, #4]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02241430:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD11_022427E4
+ cmp r0, #1
+ beq _02241498
+_02241442:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ add r2, sp, #0
+ bl MOD11_02248308
+ cmp r0, #1
+ bne _0224146C
+ ldr r2, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_0224146C:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD11_02242790
+ cmp r0, #1
+ beq _02241498
+_0224147E:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD11_02242870
+ cmp r0, #1
+ beq _02241498
+_02241490:
+ mov r0, #0
+ str r0, [r4, #0x3c]
+ mov r0, #0x1e
+ str r0, [r4, #8]
+_02241498:
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224149C: .word 0x0000216C
+_022414A0: .word 0x001FD849
+
+ thumb_func_start MOD11_022414A4
+MOD11_022414A4: ; 0x022414A4
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_022414A8
+MOD11_022414A8: ; 0x022414A8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldr r1, [r4, #0x40]
+ add r7, r0, #0
+ cmp r1, #7
+ bls _022414B8
+ b _022416F2
+_022414B8:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022414C4: ; jump table
+ .short _022414D4 - _022414C4 - 2 ; case 0
+ .short _0224154E - _022414C4 - 2 ; case 1
+ .short _02241562 - _022414C4 - 2 ; case 2
+ .short _02241588 - _022414C4 - 2 ; case 3
+ .short _0224159C - _022414C4 - 2 ; case 4
+ .short _022415B6 - _022414C4 - 2 ; case 5
+ .short _022415E0 - _022414C4 - 2 ; case 6
+ .short _02241674 - _022414C4 - 2 ; case 7
+_022414D4:
+ mov r1, #0
+ ldr r5, [r4, #0x44]
+ str r1, [sp, #4]
+ bl MOD11_0222FF84
+ cmp r5, r0
+ bge _02241544
+ add r6, r4, #0
+ add r6, #0x44
+_022414E6:
+ mov r0, #0xc0
+ mul r0, r5
+ mov r1, #0xb7
+ add r0, r4, r0
+ lsl r1, r1, #6
+ ldr r2, [r0, r1]
+ ldr r1, _02241700 ; =0x200400C0
+ tst r1, r2
+ bne _0224152C
+ ldr r1, _02241704 ; =0x00002DC4
+ ldr r2, [r0, r1]
+ ldr r1, _02241700 ; =0x200400C0
+ tst r1, r2
+ beq _0224152C
+ ldr r1, _02241704 ; =0x00002DC4
+ ldr r2, [r0, r1]
+ ldr r1, _02241708 ; =0xDFFBFF3F
+ and r2, r1
+ ldr r1, _02241704 ; =0x00002DC4
+ str r2, [r0, r1]
+ ldr r2, _0224170C ; =0x0000011F
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0x46
+ ldr r1, [r4, #0x44]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #4]
+_0224152C:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _022415B4
+ ldr r5, [r4, #0x44]
+ add r0, r7, #0
+ bl MOD11_0222FF84
+ cmp r5, r0
+ blt _022414E6
+_02241544:
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ mov r0, #0
+ str r0, [r4, #0x44]
+_0224154E:
+ ldr r0, [r4, #0x40]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ ldr r2, [r4, #8]
+ add r0, r7, #0
+ bl MOD11_02248A78
+ cmp r0, #1
+ beq _022415B4
+_02241562:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022476DC
+ add r2, r0, #0
+ beq _02241582
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02241582:
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+_02241588:
+ ldr r0, [r4, #0x40]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ ldr r2, [r4, #0x64]
+ add r0, r7, #0
+ bl MOD11_02248C0C
+ cmp r0, #1
+ beq _022415B4
+_0224159C:
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ ldr r2, [r4, #0x6c]
+ cmp r2, #0xff
+ beq _022415B6
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02248C0C
+ cmp r0, #1
+ bne _022415B6
+_022415B4:
+ b _022416FC
+_022415B6:
+ ldr r0, [r4, #0x40]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ add r0, r7, #0
+ add r2, sp, #0xc
+ bl MOD11_02249B94
+ cmp r0, #1
+ bne _022415E0
+ ldr r2, [sp, #0xc]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_022415E0:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ bne _022415F0
+ mov r2, #0
+ b _02241604
+_022415F0:
+ ldr r0, _02241710 ; =0x00002160
+ ldr r2, [r4, r0]
+ cmp r2, #0
+ bne _02241604
+ ldr r0, _02241714 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _02241718 ; =0x000003E2
+ ldrb r2, [r1, r0]
+_02241604:
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ ldr r3, [r4, #0x6c]
+ cmp r3, #0xff
+ beq _02241674
+ mov r0, #0xc0
+ add r5, r3, #0
+ mul r5, r0
+ ldr r0, _0224171C ; =0x00002DAC
+ add r1, r4, r5
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r1, r0
+ beq _02241674
+ ldr r1, _02241720 ; =0x0000216C
+ lsl r0, r0, #9
+ ldr r1, [r4, r1]
+ tst r0, r1
+ bne _02241674
+ ldr r0, [r4, #0x64]
+ cmp r3, r0
+ beq _02241674
+ mov r0, #0x1c
+ mul r0, r3
+ add r6, r4, r0
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r1, [r6, r0]
+ cmp r1, #0
+ bne _0224164A
+ add r0, #8
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _02241674
+_0224164A:
+ ldr r0, _02241724 ; =0x00002D8C
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02241674
+ cmp r2, #0xa
+ bne _02241674
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r3, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1d
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02241674:
+ mov r0, #0
+ str r0, [sp]
+ ldr r6, [r4, #0x44]
+ add r0, r7, #0
+ bl MOD11_0222FF84
+ cmp r6, r0
+ bge _022416E2
+ add r5, r4, #0
+ add r5, #0x44
+_02241688:
+ ldr r0, _02241728 ; =0x000021EC
+ add r1, r4, r6
+ ldrb r6, [r1, r0]
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ ldr r1, _0224172C ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ ldr r0, [r5]
+ beq _022416A4
+ add r0, r0, #1
+ str r0, [r5]
+ b _022416D6
+_022416A4:
+ add r0, r0, #1
+ str r0, [r5]
+ add r0, r7, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ add r3, sp, #8
+ bl MOD11_022493A0
+ cmp r0, #1
+ bne _022416D6
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r6, [r4, r0]
+ ldr r2, [sp, #8]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp]
+ b _022416E2
+_022416D6:
+ ldr r6, [r4, #0x44]
+ add r0, r7, #0
+ bl MOD11_0222FF84
+ cmp r6, r0
+ blt _02241688
+_022416E2:
+ ldr r0, [sp]
+ cmp r0, #0
+ bne _022416F2
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ mov r0, #0
+ str r0, [r4, #0x44]
+_022416F2:
+ mov r0, #0
+ str r0, [r4, #0x40]
+ str r0, [r4, #0x44]
+ mov r0, #0x1f
+ str r0, [r4, #8]
+_022416FC:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02241700: .word 0x200400C0
+_02241704: .word 0x00002DC4
+_02241708: .word 0xDFFBFF3F
+_0224170C: .word 0x0000011F
+_02241710: .word 0x00002160
+_02241714: .word 0x00003044
+_02241718: .word 0x000003E2
+_0224171C: .word 0x00002DAC
+_02241720: .word 0x0000216C
+_02241724: .word 0x00002D8C
+_02241728: .word 0x000021EC
+_0224172C: .word 0x00003108
+
+ thumb_func_start MOD11_02241730
+MOD11_02241730: ; 0x02241730
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02241734
+MOD11_02241734: ; 0x02241734
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r6, _02241820 ; =0x0000217D
+ add r4, r1, #0
+ ldrb r2, [r4, r6]
+ str r0, [sp]
+ cmp r2, #0
+ beq _0224181A
+ ldr r3, [r4, #0x74]
+ mov ip, r3
+ cmp r3, #0xff
+ bne _022417CC
+ ldr r3, [r4, #0x64]
+ mov r7, #0xc0
+ add r5, r3, #0
+ mul r5, r7
+ ldr r3, _02241824 ; =0x00002DAC
+ add r5, r4, r5
+ ldr r5, [r5, r3]
+ mov r3, #7
+ tst r3, r5
+ bne _022417CC
+ add r3, r6, #0
+ sub r3, #0x11
+ ldr r5, [r4, r3]
+ mov r3, #1
+ lsl r3, r3, #0xe
+ tst r3, r5
+ bne _022417CC
+ sub r2, r6, #1
+ ldrb r2, [r4, r2]
+ sub r3, r2, #1
+ sub r2, r6, #1
+ strb r3, [r4, r2]
+ ldrb r2, [r4, r2]
+ cmp r2, #0
+ beq _022417B2
+ mov r3, #1
+ add r2, r6, #3
+ str r3, [r4, r2]
+ bl MOD11_02247264
+ add r1, r6, #0
+ sub r1, #0x41
+ ldr r2, [r4, r1]
+ ldr r0, _02241828 ; =0xFFFFBFFF
+ and r0, r2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ add r0, #0x4c
+ ldr r0, [r4, r0]
+ add r1, #0x48
+ str r0, [r4, r1]
+ ldr r2, _0224182C ; =0x00003044
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ mov r1, #0
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x17
+ str r0, [r4, #0xc]
+ b _02241812
+_022417B2:
+ ldrb r0, [r4, r6]
+ add r7, #0x70
+ mov r1, #1
+ str r0, [r4, r7]
+ add r0, r4, #0
+ mov r2, #0x11
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x21
+ str r0, [r4, #0xc]
+ b _02241812
+_022417CC:
+ mov r0, ip
+ cmp r0, #0xff
+ bne _022417E6
+ ldr r0, [r4, #0x64]
+ mov r1, #0xc0
+ add r3, r0, #0
+ mul r3, r1
+ ldr r0, _02241824 ; =0x00002DAC
+ add r3, r4, r3
+ ldr r3, [r3, r0]
+ mov r0, #7
+ tst r0, r3
+ beq _022417F6
+_022417E6:
+ ldr r0, _02241830 ; =0x0000217C
+ ldrb r0, [r4, r0]
+ sub r0, r2, r0
+ add r1, r0, #1
+ mov r0, #0x13
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _02241800
+_022417F6:
+ ldr r0, _02241830 ; =0x0000217C
+ add r1, #0x70
+ ldrb r0, [r4, r0]
+ sub r0, r2, r0
+ str r0, [r4, r1]
+_02241800:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x11
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x21
+ str r0, [r4, #0xc]
+_02241812:
+ ldr r0, [sp]
+ bl MOD11_0225679C
+ pop {r3, r4, r5, r6, r7, pc}
+_0224181A:
+ mov r0, #0x21
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02241820: .word 0x0000217D
+_02241824: .word 0x00002DAC
+_02241828: .word 0xFFFFBFFF
+_0224182C: .word 0x00003044
+_02241830: .word 0x0000217C
+
+ thumb_func_start MOD11_02241834
+MOD11_02241834: ; 0x02241834
+ push {r3, lr}
+ ldr r0, _02241858 ; =0x0000213C
+ ldr r2, [r1, r0]
+ mov r0, #0xf
+ lsl r0, r0, #0x18
+ tst r0, r2
+ beq _02241850
+ add r0, r1, #0
+ mov r1, #0x21
+ add r2, r1, #0
+ mov r3, #0
+ bl MOD11_0224246C
+ pop {r3, pc}
+_02241850:
+ mov r0, #0x22
+ str r0, [r1, #8]
+ pop {r3, pc}
+ nop
+_02241858: .word 0x0000213C
+
+ thumb_func_start MOD11_0224185C
+MOD11_0224185C: ; 0x0224185C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ mov r1, #0x85
+ lsl r1, r1, #6
+ add r5, r0, #0
+ ldr r2, [r4, r1]
+ mov r0, #8
+ tst r0, r2
+ beq _02241880
+ mov r0, #8
+ bic r2, r0
+ str r2, [r4, r1]
+ ldr r0, [r4, #0x64]
+ str r0, [r4, #0x6c]
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ str r0, [r4, #0x64]
+_02241880:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224256C
+ ldr r0, _022419E0 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _022419E4 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ cmp r0, #4
+ bne _0224194C
+ ldr r0, _022419E8 ; =0x0000213C
+ ldr r1, [r4, r0]
+ mov r0, #2
+ tst r0, r1
+ bne _0224194C
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r1, _022419EC ; =0x0000217E
+ ldrb r2, [r4, r1]
+ cmp r2, r0
+ bge _0224194C
+ mov r2, #0xd
+ add r0, r1, #6
+ str r2, [r4, r0]
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_0222FF7C
+ bl MOD11_02253A4C
+ mov r1, #1
+ add r7, r0, #0
+ and r7, r1
+_022418CE:
+ ldr r1, _022419EC ; =0x0000217E
+ ldr r0, _022419EC ; =0x0000217E
+ ldrb r1, [r4, r1]
+ ldrb r0, [r4, r0]
+ add r2, r1, #1
+ ldr r1, _022419EC ; =0x0000217E
+ strb r2, [r4, r1]
+ add r1, r4, r0
+ ldr r0, _022419F0 ; =0x000021EC
+ ldrb r6, [r1, r0]
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ ldr r1, _022419F4 ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ bne _02241936
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r4, r0
+ ldr r0, _022419F8 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02241936
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ str r0, [sp]
+ cmp r7, #0
+ beq _02241916
+ bl MOD11_02253A4C
+ mov r1, #1
+ tst r0, r1
+ beq _02241926
+_02241916:
+ cmp r7, #0
+ bne _02241936
+ ldr r0, [sp]
+ bl MOD11_02253A4C
+ mov r1, #1
+ tst r0, r1
+ beq _02241936
+_02241926:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02247264
+ str r6, [r4, #0x6c]
+ mov r0, #0x16
+ str r0, [r4, #8]
+ b _02241944
+_02241936:
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r1, _022419EC ; =0x0000217E
+ ldrb r1, [r4, r1]
+ cmp r1, r0
+ blt _022418CE
+_02241944:
+ add r0, r5, #0
+ bl MOD11_0225679C
+ pop {r3, r4, r5, r6, r7, pc}
+_0224194C:
+ ldr r0, _022419E0 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _022419E4 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ cmp r0, #8
+ bne _022419DA
+ ldr r0, _022419E8 ; =0x0000213C
+ ldr r1, [r4, r0]
+ mov r0, #2
+ tst r0, r1
+ bne _022419DA
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r1, _022419EC ; =0x0000217E
+ ldrb r2, [r4, r1]
+ cmp r2, r0
+ bge _022419DA
+ mov r2, #0xd
+ add r0, r1, #6
+ str r2, [r4, r0]
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r7, _022419EC ; =0x0000217E
+_02241982:
+ ldr r0, _022419EC ; =0x0000217E
+ ldrb r1, [r4, r0]
+ ldrb r0, [r4, r7]
+ add r1, r4, r1
+ add r0, r0, #1
+ strb r0, [r4, r7]
+ ldr r0, _022419F0 ; =0x000021EC
+ ldrb r6, [r1, r0]
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ ldr r1, _022419F4 ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ bne _022419C4
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r4, r0
+ ldr r0, _022419F8 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022419C4
+ ldr r0, [r4, #0x64]
+ cmp r6, r0
+ beq _022419C4
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02247264
+ str r6, [r4, #0x6c]
+ mov r0, #0x16
+ str r0, [r4, #8]
+ b _022419D2
+_022419C4:
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r1, _022419EC ; =0x0000217E
+ ldrb r1, [r4, r1]
+ cmp r1, r0
+ blt _02241982
+_022419D2:
+ add r0, r5, #0
+ bl MOD11_0225679C
+ pop {r3, r4, r5, r6, r7, pc}
+_022419DA:
+ mov r0, #0x23
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022419E0: .word 0x00003044
+_022419E4: .word 0x000003E6
+_022419E8: .word 0x0000213C
+_022419EC: .word 0x0000217E
+_022419F0: .word 0x000021EC
+_022419F4: .word 0x00003108
+_022419F8: .word 0x00002D8C
+
+ thumb_func_start MOD11_022419FC
+MOD11_022419FC: ; 0x022419FC
+ push {r4, lr}
+ ldr r0, _02241A38 ; =0x0000213C
+ add r4, r1, #0
+ ldr r1, [r4, r0]
+ mov r0, #0xf
+ lsl r0, r0, #0x1c
+ and r0, r1
+ beq _02241A32
+ lsr r0, r0, #0x1c
+ bl LowestFlagNo
+ str r0, [r4, #0x74]
+ ldr r1, _02241A38 ; =0x0000213C
+ ldr r0, _02241A3C ; =0x0FFFFFFF
+ ldr r2, [r4, r1]
+ and r0, r2
+ str r0, [r4, r1]
+ ldr r2, _02241A40 ; =0x00000115
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x24
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+_02241A32:
+ mov r0, #0x24
+ str r0, [r4, #8]
+ pop {r4, pc}
+ .align 2, 0
+_02241A38: .word 0x0000213C
+_02241A3C: .word 0x0FFFFFFF
+_02241A40: .word 0x00000115
+
+ thumb_func_start MOD11_02241A44
+MOD11_02241A44: ; 0x02241A44
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_022429B0
+ cmp r0, #1
+ beq _02241A54
+ mov r0, #0x26
+ str r0, [r4, #8]
+_02241A54:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02241A58
+MOD11_02241A58: ; 0x02241A58
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02241A5C
+MOD11_02241A5C: ; 0x02241A5C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x64]
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD11_02249D90
+ ldr r1, _02241B60 ; =0x0000213C
+ lsl r0, r0, #0x18
+ ldr r3, [r4, r1]
+ mov r2, #0x20
+ lsr r0, r0, #0x18
+ tst r2, r3
+ bne _02241A82
+ add r1, r1, #4
+ ldr r2, [r4, r1]
+ mov r1, #4
+ tst r1, r2
+ beq _02241AC4
+_02241A82:
+ cmp r0, #0x36
+ beq _02241A8E
+ cmp r0, #0x72
+ beq _02241A8E
+ cmp r0, #0x7c
+ bne _02241AB6
+_02241A8E:
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #0xa5
+ beq _02241AC4
+ cmp r0, #0xe2
+ bne _02241AA8
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r2, [r4, r1]
+ mov r1, #0x40
+ tst r1, r2
+ bne _02241AC4
+_02241AA8:
+ ldr r2, [r4, #0x64]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _02241B64 ; =0x00002DF8
+ strh r0, [r2, r1]
+ b _02241AC4
+_02241AB6:
+ ldr r2, [r4, #0x64]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _02241B64 ; =0x00002DF8
+ mov r0, #0
+ strh r0, [r2, r1]
+_02241AC4:
+ ldr r0, _02241B60 ; =0x0000213C
+ mov r1, #1
+ ldr r2, [r4, r0]
+ lsl r1, r1, #0x14
+ tst r1, r2
+ bne _02241B2C
+ add r0, r0, #4
+ ldr r1, [r4, r0]
+ mov r0, #4
+ tst r0, r1
+ beq _02241AF2
+ ldr r2, [r4, #0x64]
+ ldr r1, _02241B68 ; =0x00003044
+ lsl r2, r2, #1
+ add r3, r4, r2
+ add r2, r1, #0
+ ldr r0, [r4, r1]
+ add r2, #0x18
+ strh r0, [r3, r2]
+ sub r0, r1, #4
+ ldr r2, [r4, r0]
+ add r0, r1, #4
+ b _02241B00
+_02241AF2:
+ ldr r0, [r4, #0x64]
+ mov r2, #0
+ lsl r0, r0, #1
+ add r1, r4, r0
+ ldr r0, _02241B6C ; =0x0000305C
+ strh r2, [r1, r0]
+ sub r0, #0x14
+_02241B00:
+ str r2, [r4, r0]
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _02241B20
+ mov r0, #0xc1
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #6
+ ldr r2, [r4, r0]
+ lsl r1, r1, #1
+ add r1, r4, r1
+ add r0, #0x3c
+ strh r2, [r1, r0]
+ b _02241B2C
+_02241B20:
+ ldr r0, [r4, #0x64]
+ mov r2, #0
+ lsl r0, r0, #1
+ add r1, r4, r0
+ ldr r0, _02241B70 ; =0x0000307C
+ strh r2, [r1, r0]
+_02241B2C:
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #4
+ tst r0, r1
+ beq _02241B48
+ mov r0, #0xc1
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #6
+ ldr r2, [r4, r0]
+ lsl r1, r1, #1
+ add r1, r4, r1
+ add r0, #0x6c
+ strh r2, [r1, r0]
+_02241B48:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224256C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224ABF8
+ mov r0, #0x27
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+ nop
+_02241B60: .word 0x0000213C
+_02241B64: .word 0x00002DF8
+_02241B68: .word 0x00003044
+_02241B6C: .word 0x0000305C
+_02241B70: .word 0x0000307C
+
+ thumb_func_start MOD11_02241B74
+MOD11_02241B74: ; 0x02241B74
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _02241BF6
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r3, #0
+ bl MOD11_02248898
+ cmp r0, #1
+ beq _02241C4C
+ ldr r2, [r4, #0x6c]
+ cmp r2, #0xff
+ beq _02241BAA
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r3, #0
+ bl MOD11_02248898
+ cmp r0, #1
+ beq _02241C4C
+_02241BAA:
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_02242510
+ cmp r0, #1
+ beq _02241C4C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02241FD8
+ cmp r0, #1
+ beq _02241C4C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022476DC
+ add r2, r0, #0
+ beq _02241BE2
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02241BE2:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02242924
+ cmp r0, #1
+ beq _02241C4C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02242404
+_02241BF6:
+ add r1, r4, #0
+ add r1, #0xec
+ ldr r1, [r1]
+ mov r0, #0x27
+ add r2, r4, r1
+ ldr r1, _02241C50 ; =0x000021E8
+ ldrb r2, [r2, r1]
+ sub r1, #0x40
+ lsl r2, r2, #4
+ add r2, r4, r2
+ str r0, [r2, r1]
+ ldr r1, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r1
+ add r1, r4, r0
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ beq _02241C34
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224C178
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224728C
+ mov r1, #0
+ b _02241C3C
+_02241C34:
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ add r1, r0, #1
+_02241C3C:
+ add r0, r4, #0
+ add r0, #0xec
+ str r1, [r0]
+ add r0, r4, #0
+ bl MOD11_02245494
+ mov r0, #8
+ str r0, [r4, #8]
+_02241C4C:
+ pop {r3, r4, r5, pc}
+ nop
+_02241C50: .word 0x000021E8
+
+ thumb_func_start MOD11_02241C54
+MOD11_02241C54: ; 0x02241C54
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD11_0224246C
+ cmp r0, #1
+ beq _02241C6C
+ mov r0, #0x27
+ str r0, [r4, #8]
+_02241C6C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02241C70
+MOD11_02241C70: ; 0x02241C70
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_0223145C
+ mov r1, #0x80
+ tst r0, r1
+ beq _02241C86
+ mov r0, #0x2a
+ str r0, [r4, #8]
+ b _02241CE4
+_02241C86:
+ add r0, r5, #0
+ bl MOD11_0223145C
+ cmp r0, #2
+ beq _02241C9A
+ add r0, r5, #0
+ bl MOD11_0223145C
+ cmp r0, #3
+ bne _02241CAE
+_02241C9A:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #5
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x2a
+ str r0, [r4, #0xc]
+ b _02241CE4
+_02241CAE:
+ add r0, r5, #0
+ bl MOD11_0223145C
+ cmp r0, #1
+ bne _02241CCC
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #4
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x2a
+ str r0, [r4, #0xc]
+ b _02241CE4
+_02241CCC:
+ add r0, r5, #0
+ bl MOD11_0223145C
+ cmp r0, #4
+ beq _02241CE0
+ add r0, r5, #0
+ bl MOD11_0223145C
+ cmp r0, #5
+ bne _02241CE4
+_02241CE0:
+ mov r0, #0x2a
+ str r0, [r4, #8]
+_02241CE4:
+ ldr r0, _02241CEC ; =0x0000311F
+ mov r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02241CEC: .word 0x0000311F
+
+ thumb_func_start MOD11_02241CF0
+MOD11_02241CF0: ; 0x02241CF0
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ bl MOD11_0222FF74
+ mov r1, #4
+ add r4, r0, #0
+ and r4, r1
+ bne _02241D16
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_0222FF88
+ add r6, r0, #0
+ bl FUN_02069C4C
+ add r0, r6, #0
+ bl FUN_02069DC8
+_02241D16:
+ cmp r4, #0
+ beq _02241D20
+ mov r0, #0x16
+ bl FUN_020311DC
+_02241D20:
+ mov r0, #0x2b
+ str r0, [r5, #8]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02241D28
+MOD11_02241D28: ; 0x02241D28
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02241D2C
+MOD11_02241D2C: ; 0x02241D2C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ str r1, [sp, #4]
+ mov r1, #0
+ str r0, [sp]
+ str r1, [sp, #0x30]
+ bl MOD11_0222FF84
+ str r0, [sp, #0x28]
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #8]
+ str r0, [sp, #0x20]
+ mov r0, #0
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x28]
+ cmp r0, #0
+ bgt _02241D58
+ b _02241F4A
+_02241D58:
+ ldr r0, [sp, #4]
+ mov r1, #2
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x24]
+ and r0, r1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x24]
+ mov r1, #0x18
+ and r0, r1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x24]
+ mov r1, #0x10
+ and r0, r1
+ str r0, [sp, #0xc]
+_02241D76:
+ mov r1, #0x4f
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r0, #1
+ bic r2, r0
+ ldr r0, [sp, #0x1c]
+ str r2, [r0, r1]
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _02241D92
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _02241DA4
+_02241D92:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ beq _02241E8A
+ ldr r0, [sp]
+ ldr r1, [sp, #0x2c]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _02241E8A
+_02241DA4:
+ ldr r3, _02241FC8 ; =0x00002D8C
+ ldr r0, [sp, #0x18]
+ ldr r0, [r0, r3]
+ cmp r0, #0
+ bne _02241DCC
+ ldr r1, [sp, #0x2c]
+ mov r2, #2
+ add r4, r1, #0
+ eor r4, r2
+ mov r1, #0xc0
+ add r5, r4, #0
+ mul r5, r1
+ ldr r1, [sp, #4]
+ add r1, r1, r5
+ ldr r1, [r1, r3]
+ cmp r1, #0
+ bne _02241DCC
+ ldr r1, [sp, #0x2c]
+ tst r1, r2
+ bne _02241DD0
+_02241DCC:
+ cmp r0, #0
+ beq _02241DD2
+_02241DD0:
+ b _02241F30
+_02241DD2:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x2c]
+ mov r7, #0
+ bl MOD11_0222FF88
+ add r6, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x2c]
+ bl MOD11_0222FF7C
+ add r0, r6, #0
+ add r5, r7, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02241E4A
+ ldr r0, [sp, #0x2c]
+ mov r1, #2
+ eor r1, r0
+ ldr r0, [sp, #4]
+ add r0, r0, r1
+ str r0, [sp, #8]
+_02241DFE:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r4, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02241E3E
+ add r0, r4, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02241FCC ; =0x000001EE
+ cmp r0, r1
+ beq _02241E3E
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02241E3E
+ ldr r2, [sp, #8]
+ ldr r1, _02241FD0 ; =0x0000219C
+ ldrb r1, [r2, r1]
+ cmp r5, r1
+ beq _02241E3E
+ add r7, r7, r0
+_02241E3E:
+ add r0, r6, #0
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _02241DFE
+_02241E4A:
+ cmp r7, #0
+ bne _02241E6E
+ ldr r0, [sp, #0x2c]
+ bl MaskOfFlagNo
+ ldr r2, _02241FD4 ; =0x00003108
+ ldr r1, [sp, #4]
+ ldrb r1, [r1, r2]
+ orr r1, r0
+ ldr r0, [sp, #4]
+ strb r1, [r0, r2]
+ add r1, r0, #0
+ ldr r0, [sp, #0x2c]
+ mov r2, #6
+ add r1, r1, r0
+ ldr r0, _02241FD0 ; =0x0000219C
+ strb r2, [r1, r0]
+ b _02241F30
+_02241E6E:
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0xc]
+ mov r1, #0x15
+ str r1, [r0, #8]
+ mov r1, #0x4f
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r0, #1
+ orr r2, r0
+ ldr r0, [sp, #0x1c]
+ str r2, [r0, r1]
+ b _02241F30
+_02241E8A:
+ ldr r1, _02241FC8 ; =0x00002D8C
+ ldr r0, [sp, #0x18]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _02241F30
+ ldr r0, [sp]
+ ldr r1, [sp, #0x2c]
+ mov r7, #0
+ bl MOD11_0222FF88
+ add r6, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x2c]
+ bl MOD11_0222FF7C
+ add r0, r6, #0
+ add r5, r7, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02241EF2
+_02241EB4:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r4, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02241EE6
+ add r0, r4, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02241FCC ; =0x000001EE
+ cmp r0, r1
+ beq _02241EE6
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ add r7, r7, r0
+_02241EE6:
+ add r0, r6, #0
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _02241EB4
+_02241EF2:
+ cmp r7, #0
+ bne _02241F16
+ ldr r0, [sp, #0x2c]
+ bl MaskOfFlagNo
+ ldr r2, _02241FD4 ; =0x00003108
+ ldr r1, [sp, #4]
+ ldrb r1, [r1, r2]
+ orr r1, r0
+ ldr r0, [sp, #4]
+ strb r1, [r0, r2]
+ add r1, r0, #0
+ ldr r0, [sp, #0x2c]
+ mov r2, #6
+ add r1, r1, r0
+ ldr r0, _02241FD0 ; =0x0000219C
+ strb r2, [r1, r0]
+ b _02241F30
+_02241F16:
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0xc]
+ mov r1, #0x15
+ str r1, [r0, #8]
+ mov r1, #0x4f
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r0, #1
+ orr r2, r0
+ ldr r0, [sp, #0x1c]
+ str r2, [r0, r1]
+_02241F30:
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #4
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ add r0, #0xc0
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x2c]
+ add r1, r0, #1
+ ldr r0, [sp, #0x28]
+ str r1, [sp, #0x2c]
+ cmp r1, r0
+ bge _02241F4A
+ b _02241D76
+_02241F4A:
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #8]
+ cmp r0, #0x15
+ bne _02241FC0
+ ldr r0, [sp, #0x24]
+ mov r1, #0x86
+ tst r0, r1
+ bne _02241FB2
+ ldr r0, [sp]
+ bl MOD11_02230E70
+ cmp r0, #0
+ bne _02241FB2
+ mov r1, #0x4f
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r2, #1
+ tst r0, r2
+ beq _02241F7C
+ ldr r0, [sp, #4]
+ add r1, r1, #4
+ ldr r0, [r0, r1]
+ tst r0, r2
+ bne _02241FB2
+_02241F7C:
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ mov r2, #0
+ bl MOD11_02246DE0
+ cmp r0, #0
+ beq _02241FB2
+ mov r1, #0x4f
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r2, #1
+ tst r0, r2
+ beq _02241FA0
+ mov r2, #0
+ sub r1, r1, #4
+ ldr r0, [sp, #4]
+ b _02241FA4
+_02241FA0:
+ ldr r0, [sp, #4]
+ sub r1, r1, #4
+_02241FA4:
+ str r2, [r0, r1]
+ ldr r0, [sp, #4]
+ mov r1, #1
+ mov r2, #0xe7
+ bl MOD11_022431DC
+ b _02241FBC
+_02241FB2:
+ ldr r0, [sp, #4]
+ mov r1, #1
+ mov r2, #0xa
+ bl MOD11_022431DC
+_02241FBC:
+ mov r0, #1
+ str r0, [sp, #0x30]
+_02241FC0:
+ ldr r0, [sp, #0x30]
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02241FC8: .word 0x00002D8C
+_02241FCC: .word 0x000001EE
+_02241FD0: .word 0x0000219C
+_02241FD4: .word 0x00003108
+
+ thumb_func_start MOD11_02241FD8
+MOD11_02241FD8: ; 0x02241FD8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ str r0, [sp]
+ str r1, [sp, #4]
+ bl MOD11_0222FF84
+ str r0, [sp, #0x24]
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ str r0, [sp, #0x20]
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x24]
+ cmp r0, #0
+ bgt _02241FFC
+ b _02242256
+_02241FFC:
+ ldr r0, [sp, #0x20]
+ mov r1, #8
+ and r0, r1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x20]
+ mov r1, #0x10
+ and r0, r1
+ str r0, [sp, #8]
+_0224200C:
+ ldr r0, [sp, #0x20]
+ sub r0, #0x4a
+ cmp r0, #1
+ bhi _022420A6
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _022420A6
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_02230260
+ cmp r0, #2
+ bne _022420C8
+ ldr r1, _0224233C ; =0x00002D8C
+ ldr r0, [sp, #4]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _022420C8
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ mov r7, #0
+ bl MOD11_0222FF88
+ add r6, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_0222FF7C
+ add r0, r6, #0
+ add r4, r7, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02242094
+_02242056:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r5, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02242088
+ add r0, r5, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242340 ; =0x000001EE
+ cmp r0, r1
+ beq _02242088
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ add r7, r7, r0
+_02242088:
+ add r0, r6, #0
+ add r4, r4, #1
+ bl GetPartyCount
+ cmp r4, r0
+ blt _02242056
+_02242094:
+ cmp r7, #0
+ bne _022420C8
+ ldr r0, [sp, #0x1c]
+ mov r1, #2
+ orr r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+ b _02242242
+_022420A6:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _022420BE
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _022421B0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _022421B0
+_022420BE:
+ ldr r1, _0224233C ; =0x00002D8C
+ ldr r0, [sp, #4]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _022420CA
+_022420C8:
+ b _02242242
+_022420CA:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ mov r5, #0
+ bl MOD11_0222FF88
+ add r7, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD11_0222FF88
+ str r0, [sp, #0x18]
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_0222FF7C
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r4, r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0224213C
+_022420FE:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02242130
+ add r0, r6, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242340 ; =0x000001EE
+ cmp r0, r1
+ beq _02242130
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ add r5, r5, r0
+_02242130:
+ add r0, r7, #0
+ add r4, r4, #1
+ bl GetPartyCount
+ cmp r4, r0
+ blt _022420FE
+_0224213C:
+ ldr r0, [sp, #0x18]
+ mov r4, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02242186
+ ldr r7, _02242340 ; =0x000001EE
+_0224214A:
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0224217A
+ add r0, r6, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ cmp r0, r7
+ beq _0224217A
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ add r5, r5, r0
+_0224217A:
+ ldr r0, [sp, #0x18]
+ add r4, r4, #1
+ bl GetPartyCount
+ cmp r4, r0
+ blt _0224214A
+_02242186:
+ cmp r5, #0
+ bne _02242242
+ ldr r0, [sp, #0x14]
+ bl MOD11_02253A4C
+ mov r1, #1
+ tst r0, r1
+ beq _022421A2
+ ldr r0, [sp, #0x1c]
+ orr r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+ b _02242242
+_022421A2:
+ ldr r0, [sp, #0x1c]
+ mov r1, #2
+ orr r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+ b _02242242
+_022421B0:
+ ldr r1, _0224233C ; =0x00002D8C
+ ldr r0, [sp, #4]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _02242242
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ mov r7, #0
+ bl MOD11_0222FF88
+ add r6, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_0222FF7C
+ str r0, [sp, #0x10]
+ add r0, r6, #0
+ add r4, r7, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0224221A
+_022421DC:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r5, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0224220E
+ add r0, r5, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242340 ; =0x000001EE
+ cmp r0, r1
+ beq _0224220E
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ add r7, r7, r0
+_0224220E:
+ add r0, r6, #0
+ add r4, r4, #1
+ bl GetPartyCount
+ cmp r4, r0
+ blt _022421DC
+_0224221A:
+ cmp r7, #0
+ bne _02242242
+ ldr r0, [sp, #0x10]
+ bl MOD11_02253A4C
+ mov r1, #1
+ tst r0, r1
+ beq _02242236
+ ldr r0, [sp, #0x1c]
+ orr r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+ b _02242242
+_02242236:
+ ldr r0, [sp, #0x1c]
+ mov r1, #2
+ orr r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+_02242242:
+ ldr r0, [sp, #4]
+ add r0, #0xc0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x28]
+ add r1, r0, #1
+ ldr r0, [sp, #0x24]
+ str r1, [sp, #0x28]
+ cmp r1, r0
+ bge _02242256
+ b _0224200C
+_02242256:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #1
+ bne _0224226C
+ ldr r0, [sp, #0x20]
+ mov r1, #1
+ tst r0, r1
+ beq _0224226C
+ ldr r0, [sp, #0x20]
+ mov r1, #4
+ tst r0, r1
+ beq _02242282
+_0224226C:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #1
+ bne _0224231C
+ ldr r0, [sp, #0x20]
+ mov r1, #0x80
+ tst r0, r1
+ beq _0224231C
+ ldr r0, [sp, #0x20]
+ mov r1, #4
+ tst r0, r1
+ bne _0224231C
+_02242282:
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD11_02230188
+ ldrb r0, [r0, #1]
+ sub r0, #0x3e
+ cmp r0, #0x23
+ bhi _0224230E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224229E: ; jump table
+ .short _022422E6 - _0224229E - 2 ; case 0
+ .short _0224230E - _0224229E - 2 ; case 1
+ .short _022422E6 - _0224229E - 2 ; case 2
+ .short _02242306 - _0224229E - 2 ; case 3
+ .short _02242306 - _0224229E - 2 ; case 4
+ .short _02242306 - _0224229E - 2 ; case 5
+ .short _02242306 - _0224229E - 2 ; case 6
+ .short _022422EE - _0224229E - 2 ; case 7
+ .short _0224230E - _0224229E - 2 ; case 8
+ .short _0224230E - _0224229E - 2 ; case 9
+ .short _022422F6 - _0224229E - 2 ; case 10
+ .short _022422F6 - _0224229E - 2 ; case 11
+ .short _022422E6 - _0224229E - 2 ; case 12
+ .short _022422E6 - _0224229E - 2 ; case 13
+ .short _022422E6 - _0224229E - 2 ; case 14
+ .short _022422E6 - _0224229E - 2 ; case 15
+ .short _022422E6 - _0224229E - 2 ; case 16
+ .short _022422E6 - _0224229E - 2 ; case 17
+ .short _0224230E - _0224229E - 2 ; case 18
+ .short _0224230E - _0224229E - 2 ; case 19
+ .short _0224230E - _0224229E - 2 ; case 20
+ .short _0224230E - _0224229E - 2 ; case 21
+ .short _0224230E - _0224229E - 2 ; case 22
+ .short _0224230E - _0224229E - 2 ; case 23
+ .short _022422FE - _0224229E - 2 ; case 24
+ .short _022422F6 - _0224229E - 2 ; case 25
+ .short _022422F6 - _0224229E - 2 ; case 26
+ .short _022422F6 - _0224229E - 2 ; case 27
+ .short _0224230E - _0224229E - 2 ; case 28
+ .short _0224230E - _0224229E - 2 ; case 29
+ .short _0224230E - _0224229E - 2 ; case 30
+ .short _0224230E - _0224229E - 2 ; case 31
+ .short _0224230E - _0224229E - 2 ; case 32
+ .short _0224230E - _0224229E - 2 ; case 33
+ .short _0224230E - _0224229E - 2 ; case 34
+ .short _022422E6 - _0224229E - 2 ; case 35
+_022422E6:
+ ldr r0, _02242344 ; =0x00000469
+ bl FUN_0200521C
+ b _02242314
+_022422EE:
+ ldr r0, _02242348 ; =0x0000046A
+ bl FUN_0200521C
+ b _02242314
+_022422F6:
+ ldr r0, _0224234C ; =0x0000046B
+ bl FUN_0200521C
+ b _02242314
+_022422FE:
+ ldr r0, _02242350 ; =0x0000046C
+ bl FUN_0200521C
+ b _02242314
+_02242306:
+ ldr r0, _02242354 ; =0x0000046D
+ bl FUN_0200521C
+ b _02242314
+_0224230E:
+ ldr r0, _02242358 ; =0x00000468
+ bl FUN_0200521C
+_02242314:
+ ldr r0, [sp]
+ mov r1, #2
+ bl MOD11_02231484
+_0224231C:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _0224232A
+ ldr r0, [sp]
+ ldr r1, [sp, #0x1c]
+ bl MOD11_02231468
+_0224232A:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _02242336
+ add sp, #0x2c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02242336:
+ mov r0, #0
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224233C: .word 0x00002D8C
+_02242340: .word 0x000001EE
+_02242344: .word 0x00000469
+_02242348: .word 0x0000046A
+_0224234C: .word 0x0000046B
+_02242350: .word 0x0000046C
+_02242354: .word 0x0000046D
+_02242358: .word 0x00000468
+
+ thumb_func_start MOD11_0224235C
+MOD11_0224235C: ; 0x0224235C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp]
+ add r5, r1, #0
+ ldr r0, _022423F4 ; =0x00002D4C
+ add r6, r2, #0
+ mov r1, #0xc0
+ add r0, r5, r0
+ mul r1, r6
+ add r0, r0, r1
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x2c]
+ ldr r1, [sp, #8]
+ lsl r0, r0, #1
+ ldrh r1, [r1, r0]
+ str r3, [sp, #4]
+ ldr r4, [sp, #0x28]
+ ldr r7, [sp, #0x30]
+ str r0, [sp, #0xc]
+ cmp r1, #0xae
+ bne _02242396
+ add r0, r5, #0
+ bl MOD11_02246C20
+ cmp r0, #0
+ bne _02242396
+ mov r0, #0x10
+ str r0, [r4]
+ b _022423A6
+_02242396:
+ ldr r1, [sp, #8]
+ ldr r0, [sp, #0xc]
+ ldrh r0, [r1, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _022423F8 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ str r0, [r4]
+_022423A6:
+ ldr r0, [sp, #4]
+ mov r1, #2
+ tst r0, r1
+ beq _022423DC
+ ldr r0, [r4]
+ add r1, #0xfe
+ cmp r0, r1
+ bne _022423D6
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_022302BC
+ bl MaskOfFlagNo
+ ldr r1, _022423FC ; =0x00003108
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _022423D0
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022423D0:
+ add sp, #0x10
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022423D6:
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022423DC:
+ ldr r1, [r4]
+ ldr r0, _02242400 ; =0x00000251
+ tst r0, r1
+ beq _022423E8
+ str r6, [r7]
+ b _022423EE
+_022423E8:
+ mov r0, #1
+ eor r0, r6
+ str r0, [r7]
+_022423EE:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022423F4: .word 0x00002D4C
+_022423F8: .word 0x000003E6
+_022423FC: .word 0x00003108
+_02242400: .word 0x00000251
+
+ thumb_func_start MOD11_02242404
+MOD11_02242404: ; 0x02242404
+ push {r3, r4, r5, r6, r7, lr}
+ str r1, [sp]
+ bl MOD11_0222FF84
+ add r4, r0, #0
+ mov r3, #0
+ cmp r4, #0
+ ble _0224243E
+ ldr r5, [sp]
+ add r7, r3, #0
+ add r6, r5, #0
+_0224241A:
+ ldr r0, _02242460 ; =0x00002DB0
+ add r3, r3, #1
+ ldr r2, [r6, r0]
+ ldr r0, _02242464 ; =0x0000218C
+ ldr r1, [r5, r0]
+ mov r0, #0
+ mvn r0, r0
+ eor r0, r1
+ add r1, r2, #0
+ and r1, r0
+ ldr r0, _02242460 ; =0x00002DB0
+ str r1, [r6, r0]
+ ldr r0, _02242464 ; =0x0000218C
+ add r6, #0xc0
+ str r7, [r5, r0]
+ add r5, r5, #4
+ cmp r3, r4
+ blt _0224241A
+_0224243E:
+ ldr r1, [sp]
+ mov r0, #0
+ ldr r1, [r1, #0x64]
+ lsl r2, r1, #1
+ ldr r1, [sp]
+ add r1, r1, r2
+ ldr r2, _02242468 ; =0x00003064
+ strh r0, [r1, r2]
+ ldr r1, [sp]
+ add r2, #0x60
+ ldr r1, [r1, #0x64]
+ lsl r3, r1, #1
+ ldr r1, [sp]
+ add r1, r1, r3
+ strh r0, [r1, r2]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02242460: .word 0x00002DB0
+_02242464: .word 0x0000218C
+_02242468: .word 0x00003064
+
+ thumb_func_start MOD11_0224246C
+MOD11_0224246C: ; 0x0224246C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, _02242504 ; =0x000021EC
+ str r1, [sp]
+ ldrb r0, [r5, r0]
+ add r6, r2, #0
+ str r3, [sp, #4]
+ mov r4, #0
+ bl MaskOfFlagNo
+ ldr r1, _02242508 ; =0x0000213C
+ lsl r0, r0, #0x18
+ ldr r2, [r5, r1]
+ mov r1, #0xf
+ lsl r1, r1, #0x18
+ tst r1, r2
+ beq _022424FA
+ add r1, r2, #0
+ tst r1, r0
+ bne _022424AE
+ ldr r7, _02242504 ; =0x000021EC
+ add r6, r7, #0
+ sub r6, #0xb0
+_0224249C:
+ add r4, r4, #1
+ add r0, r5, r4
+ ldrb r0, [r0, r7]
+ bl MaskOfFlagNo
+ ldr r1, [r5, r6]
+ lsl r0, r0, #0x18
+ tst r1, r0
+ beq _0224249C
+_022424AE:
+ ldr r2, _02242508 ; =0x0000213C
+ mov r1, #0
+ mvn r1, r1
+ eor r1, r0
+ ldr r3, [r5, r2]
+ asr r0, r0, #0x18
+ and r1, r3
+ str r1, [r5, r2]
+ bl LowestFlagNo
+ str r0, [r5, #0x74]
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _022424D6
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #6
+ bl MOD11_022431DC
+ b _022424E0
+_022424D6:
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #0x53
+ bl MOD11_022431DC
+_022424E0:
+ mov r0, #0x15
+ str r0, [r5, #8]
+ ldr r0, [sp]
+ mov r2, #0x27
+ str r0, [r5, #0xc]
+ ldr r0, [r5, #0x74]
+ add sp, #8
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224250C ; =0x000021A8
+ str r2, [r1, r0]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022424FA:
+ str r6, [r5, #8]
+ add r0, r4, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02242504: .word 0x000021EC
+_02242508: .word 0x0000213C
+_0224250C: .word 0x000021A8
+
+ thumb_func_start MOD11_02242510
+MOD11_02242510: ; 0x02242510
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x85
+ lsl r0, r0, #6
+ add r4, r1, #0
+ ldr r1, [r5, r0]
+ mov r0, #0xf
+ lsl r0, r0, #0x1c
+ tst r0, r1
+ beq _02242564
+ mov r0, #1
+ lsl r0, r0, #0x1c
+ add r2, r1, #0
+ tst r2, r0
+ bne _02242536
+_0224252E:
+ lsl r0, r0, #1
+ add r2, r1, #0
+ tst r2, r0
+ beq _0224252E
+_02242536:
+ mov r2, #0x85
+ lsl r2, r2, #6
+ mov r1, #0
+ mvn r1, r1
+ eor r1, r0
+ ldr r3, [r5, r2]
+ asr r0, r0, #0x1c
+ and r1, r3
+ str r1, [r5, r2]
+ bl LowestFlagNo
+ mov r2, #0x45
+ str r0, [r5, #0x74]
+ add r0, r5, #0
+ mov r1, #1
+ lsl r2, r2, #2
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r5, #8]
+ str r4, [r5, #0xc]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02242564:
+ str r2, [r5, #8]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224256C
+MOD11_0224256C: ; 0x0224256C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ bne _02242580
+ mov r4, #0
+ b _02242594
+_02242580:
+ ldr r0, _0224274C ; =0x00002160
+ ldr r4, [r5, r0]
+ cmp r4, #0
+ bne _02242594
+ ldr r0, _02242750 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02242754 ; =0x000003E2
+ ldrb r4, [r1, r0]
+_02242594:
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ ldr r2, [r5, r0]
+ mov r6, #0x10
+ lsl r1, r2, #4
+ add r3, r5, r1
+ ldr r1, _02242758 ; =0x000003E9
+ ldrb r1, [r3, r1]
+ tst r1, r6
+ beq _022425DE
+ ldr r3, _0224275C ; =0x0000213C
+ lsl r6, r6, #0x10
+ ldr r1, [r5, r3]
+ tst r1, r6
+ bne _022425DE
+ ldr r1, [r5, #0x6c]
+ cmp r1, #0xff
+ beq _022425DE
+ add r3, r3, #4
+ ldr r6, [r5, r3]
+ mov r3, #4
+ tst r3, r6
+ beq _022425DE
+ lsl r1, r1, #1
+ add r3, r5, r1
+ add r1, r0, #0
+ add r1, #0x44
+ strh r2, [r3, r1]
+ ldr r2, [r5, #0x6c]
+ ldr r1, [r5, r0]
+ lsl r2, r2, #3
+ add r3, r5, r2
+ ldr r2, [r5, #0x64]
+ add r0, #0x4c
+ lsl r2, r2, #1
+ add r2, r3, r2
+ strh r1, [r2, r0]
+_022425DE:
+ ldr r1, [r5, #0x6c]
+ cmp r1, #0xff
+ beq _02242628
+ add r0, r5, #0
+ bl MOD11_02249D90
+ ldr r1, _0224275C ; =0x0000213C
+ lsl r0, r0, #0x18
+ ldr r3, [r5, r1]
+ mov r2, #0x20
+ lsr r0, r0, #0x18
+ tst r2, r3
+ bne _02242602
+ add r1, r1, #4
+ ldr r2, [r5, r1]
+ mov r1, #4
+ tst r1, r2
+ beq _0224261C
+_02242602:
+ cmp r0, #0x36
+ beq _0224261C
+ cmp r0, #0x72
+ beq _0224261C
+ cmp r0, #0x7c
+ beq _0224261C
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02242760 ; =0x00002DF8
+ mov r2, #0
+ strh r2, [r1, r0]
+_0224261C:
+ ldr r0, _0224275C ; =0x0000213C
+ mov r1, #1
+ ldr r2, [r5, r0]
+ lsl r1, r1, #0x14
+ tst r1, r2
+ beq _0224262A
+_02242628:
+ b _0224274A
+_0224262A:
+ add r0, r0, #4
+ ldr r1, [r5, r0]
+ mov r0, #4
+ tst r0, r1
+ beq _02242668
+ ldr r1, [r5, #0x6c]
+ ldr r0, _02242750 ; =0x00003044
+ lsl r1, r1, #1
+ add r2, r5, r1
+ add r1, r0, #0
+ ldr r3, [r5, r0]
+ add r1, #0x20
+ strh r3, [r2, r1]
+ ldr r1, [r5, #0x6c]
+ ldr r3, [r5, #0x64]
+ lsl r1, r1, #1
+ add r2, r5, r1
+ add r1, r0, #0
+ add r1, #0x28
+ strh r3, [r2, r1]
+ ldr r1, [r5, #0x6c]
+ lsl r1, r1, #1
+ add r2, r5, r1
+ add r1, r0, #0
+ add r1, #0x30
+ strh r4, [r2, r1]
+ sub r1, r0, #4
+ ldr r1, [r5, r1]
+ add r0, r0, #4
+ str r1, [r5, r0]
+ b _02242692
+_02242668:
+ ldr r0, [r5, #0x6c]
+ ldr r3, _02242764 ; =0x00003064
+ lsl r0, r0, #1
+ mov r1, #0
+ add r0, r5, r0
+ strh r1, [r0, r3]
+ ldr r2, [r5, #0x6c]
+ mov r0, #0xff
+ lsl r2, r2, #1
+ add r6, r5, r2
+ add r2, r3, #0
+ add r2, #8
+ strh r0, [r6, r2]
+ ldr r0, [r5, #0x6c]
+ lsl r0, r0, #1
+ add r2, r5, r0
+ add r0, r3, #0
+ add r0, #0x10
+ strh r1, [r2, r0]
+ sub r3, #0x1c
+ str r1, [r5, r3]
+_02242692:
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r2, [r5, r0]
+ mov r1, #0x40
+ tst r1, r2
+ beq _02242726
+ add r0, #0x2c
+ ldr r0, [r5, r0]
+ ldr r2, _02242768 ; =0x801FDA49
+ tst r0, r2
+ bne _02242726
+ ldr r0, _02242750 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r1, r0, #4
+ add r3, r5, r1
+ ldr r1, _0224276C ; =0x000003E6
+ ldrh r3, [r3, r1]
+ cmp r3, #0x40
+ bgt _022426C8
+ bge _022426DC
+ cmp r3, #0x10
+ bgt _022426C2
+ beq _022426DC
+ b _02242702
+_022426C2:
+ cmp r3, #0x20
+ beq _022426DC
+ b _02242702
+_022426C8:
+ lsr r1, r2, #0x17
+ cmp r3, r1
+ bgt _022426D6
+ bge _022426DC
+ cmp r3, #0x80
+ beq _022426DC
+ b _02242702
+_022426D6:
+ lsr r1, r2, #0x16
+ cmp r3, r1
+ bne _02242702
+_022426DC:
+ ldr r1, [r5, #0x6c]
+ ldr r2, _02242770 ; =0x000030C4
+ lsl r1, r1, #1
+ mov r0, #0
+ add r1, r5, r1
+ strh r0, [r1, r2]
+ ldr r1, [r5, #0x6c]
+ mov r4, #0xff
+ lsl r1, r1, #1
+ add r3, r5, r1
+ add r1, r2, #0
+ add r1, #8
+ strh r4, [r3, r1]
+ ldr r1, [r5, #0x6c]
+ add r2, #0x10
+ lsl r1, r1, #1
+ add r1, r5, r1
+ strh r0, [r1, r2]
+ pop {r4, r5, r6, pc}
+_02242702:
+ ldr r1, [r5, #0x6c]
+ lsl r1, r1, #1
+ add r2, r5, r1
+ ldr r1, _02242770 ; =0x000030C4
+ strh r0, [r2, r1]
+ ldr r0, [r5, #0x6c]
+ ldr r3, [r5, #0x64]
+ lsl r0, r0, #1
+ add r2, r5, r0
+ add r0, r1, #0
+ add r0, #8
+ strh r3, [r2, r0]
+ ldr r0, [r5, #0x6c]
+ add r1, #0x10
+ lsl r0, r0, #1
+ add r0, r5, r0
+ strh r4, [r0, r1]
+ pop {r4, r5, r6, pc}
+_02242726:
+ ldr r1, [r5, #0x6c]
+ ldr r2, _02242770 ; =0x000030C4
+ lsl r1, r1, #1
+ mov r0, #0
+ add r1, r5, r1
+ strh r0, [r1, r2]
+ ldr r1, [r5, #0x6c]
+ mov r4, #0xff
+ lsl r1, r1, #1
+ add r3, r5, r1
+ add r1, r2, #0
+ add r1, #8
+ strh r4, [r3, r1]
+ ldr r1, [r5, #0x6c]
+ add r2, #0x10
+ lsl r1, r1, #1
+ add r1, r5, r1
+ strh r0, [r1, r2]
+_0224274A:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224274C: .word 0x00002160
+_02242750: .word 0x00003044
+_02242754: .word 0x000003E2
+_02242758: .word 0x000003E9
+_0224275C: .word 0x0000213C
+_02242760: .word 0x00002DF8
+_02242764: .word 0x00003064
+_02242768: .word 0x801FDA49
+_0224276C: .word 0x000003E6
+_02242770: .word 0x000030C4
+
+ thumb_func_start MOD11_02242774
+MOD11_02242774: ; 0x02242774
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x10
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02242790
+MOD11_02242790: ; 0x02242790
+ push {r3, r4, r5, lr}
+ ldr r2, _022427E0 ; =0x0000216C
+ add r5, r1, #0
+ ldr r0, [r5, r2]
+ mov r4, #0
+ cmp r0, #0
+ beq _022427C4
+ add r1, r2, #0
+ add r1, #0x11
+ ldrb r1, [r5, r1]
+ cmp r1, #0
+ beq _022427C2
+ ldr r1, [r5, #0x74]
+ cmp r1, #0xff
+ bne _022427BE
+ add r2, #0x10
+ ldrb r1, [r5, r2]
+ cmp r1, #1
+ beq _022427BE
+ mov r1, #1
+ lsl r1, r1, #0xe
+ tst r0, r1
+ beq _022427C4
+_022427BE:
+ mov r4, #1
+ b _022427C4
+_022427C2:
+ mov r4, #1
+_022427C4:
+ cmp r4, #1
+ bne _022427DA
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #0x15
+ bl MOD11_022431DC
+ ldr r0, [r5, #8]
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+_022427DA:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022427E0: .word 0x0000216C
+
+ thumb_func_start MOD11_022427E4
+MOD11_022427E4: ; 0x022427E4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldr r2, [r4, #0x6c]
+ mov r3, #0
+ cmp r2, #0xff
+ bne _022427F4
+ add r0, r3, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022427F4:
+ mov r0, #0xc0
+ add r5, r2, #0
+ mul r5, r0
+ mov r1, #2
+ ldr r0, _02242864 ; =0x00002DB0
+ add r7, r4, r5
+ ldr r6, [r7, r0]
+ lsl r1, r1, #0x16
+ tst r1, r6
+ beq _0224285E
+ ldr r1, _02242868 ; =0x0000216C
+ mov r6, #2
+ lsl r6, r6, #0x16
+ ldr r1, [r4, r1]
+ lsr r6, r6, #9
+ tst r1, r6
+ bne _0224285E
+ ldr r1, [r4, #0x64]
+ cmp r2, r1
+ beq _0224285E
+ sub r0, #0x24
+ ldr r0, [r7, r0]
+ cmp r0, #0
+ beq _0224285E
+ mov r0, #0x1c
+ mul r0, r2
+ add r2, r4, r0
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ bne _0224283C
+ add r0, #8
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _0224285E
+_0224283C:
+ ldr r0, _0224286C ; =0x00002D59
+ add r1, r4, r0
+ ldrsb r0, [r1, r5]
+ cmp r0, #0xc
+ bge _0224285E
+ add r0, r0, #1
+ strb r0, [r1, r5]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xf5
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r3, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0224285E:
+ add r0, r3, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02242864: .word 0x00002DB0
+_02242868: .word 0x0000216C
+_0224286C: .word 0x00002D59
+
+ thumb_func_start MOD11_02242870
+MOD11_02242870: ; 0x02242870
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r4, #0
+ bl MOD11_02249D90
+ add r7, r0, #0
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD11_02249DA4
+ add r6, r0, #0
+ ldr r0, [r5, #0x6c]
+ cmp r0, #0xff
+ beq _0224290A
+ cmp r7, #0x37
+ bne _0224290A
+ ldr r1, _02242910 ; =0x0000216C
+ ldr r2, [r5, r1]
+ ldr r1, _02242914 ; =0x801FDA49
+ tst r1, r2
+ bne _0224290A
+ mov r1, #0x1c
+ mul r1, r0
+ mov r0, #0xb6
+ add r2, r5, r1
+ lsl r0, r0, #2
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ bne _022428B8
+ add r0, #8
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _0224290A
+_022428B8:
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ cmp r1, r6
+ bge _0224290A
+ ldr r0, _02242918 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224291C ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0224290A
+ ldr r0, [r5, #0x6c]
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r5, r1
+ ldr r1, _02242920 ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _0224290A
+ add r1, r5, #0
+ add r1, #0x94
+ str r0, [r1]
+ add r0, r5, #0
+ mov r1, #2
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #0xe
+ bl MOD11_022431DC
+ ldr r0, [r5, #8]
+ mov r4, #1
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+_0224290A:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02242910: .word 0x0000216C
+_02242914: .word 0x801FDA49
+_02242918: .word 0x00003044
+_0224291C: .word 0x000003E9
+_02242920: .word 0x00002D8C
+
+ thumb_func_start MOD11_02242924
+MOD11_02242924: ; 0x02242924
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r4, [r5, #0x5c]
+ str r0, [sp]
+ mov r7, #0
+ bl MOD11_0222FF84
+ cmp r4, r0
+ bge _02242994
+ add r6, r5, #0
+ add r6, #0x5c
+_0224293A:
+ mov r0, #0xc0
+ mul r0, r4
+ mov r1, #0xb7
+ add r0, r5, r0
+ lsl r1, r1, #6
+ ldr r2, [r0, r1]
+ ldr r1, _022429A0 ; =0x200400C0
+ tst r1, r2
+ bne _0224297E
+ ldr r1, _022429A4 ; =0x00002DC4
+ ldr r2, [r0, r1]
+ ldr r1, _022429A0 ; =0x200400C0
+ tst r1, r2
+ beq _0224297E
+ ldr r1, _022429A4 ; =0x00002DC4
+ ldr r2, [r0, r1]
+ ldr r1, _022429A8 ; =0xDFFBFF3F
+ and r2, r1
+ ldr r1, _022429A4 ; =0x00002DC4
+ str r2, [r0, r1]
+ ldr r2, _022429AC ; =0x0000011F
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0x46
+ ldr r1, [r5, #0x5c]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ ldr r0, [r5, #8]
+ mov r7, #1
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+_0224297E:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+ cmp r7, #1
+ beq _02242994
+ ldr r0, [sp]
+ ldr r4, [r5, #0x5c]
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _0224293A
+_02242994:
+ cmp r7, #0
+ bne _0224299C
+ mov r0, #0
+ str r0, [r5, #0x5c]
+_0224299C:
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022429A0: .word 0x200400C0
+_022429A4: .word 0x00002DC4
+_022429A8: .word 0xDFFBFF3F
+_022429AC: .word 0x0000011F
+
+ thumb_func_start MOD11_022429B0
+MOD11_022429B0: ; 0x022429B0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r6, #0
+ bl MOD11_0222FF84
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02249D90
+ str r0, [sp, #4]
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ add r2, r6, #0
+ bl MOD11_02249DA4
+ ldr r1, [r4, #8]
+ str r0, [sp]
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD11_0224246C
+ cmp r0, #1
+ bne _022429E8
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022429E8:
+ add r5, r4, #0
+ add r5, #0x30
+_022429EC:
+ ldr r0, [r4, #0x30]
+ cmp r0, #3
+ bls _022429F4
+ b _02242B44
+_022429F4:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02242A00: ; jump table
+ .short _02242A08 - _02242A00 - 2 ; case 0
+ .short _02242A38 - _02242A00 - 2 ; case 1
+ .short _02242AB8 - _02242A00 - 2 ; case 2
+ .short _02242B3C - _02242A00 - 2 ; case 3
+_02242A08:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _02242B5C ; =0x00002DB0
+ add r0, r4, r0
+ ldr r2, [r0, r1]
+ mov r1, #2
+ lsl r1, r1, #0x16
+ tst r1, r2
+ beq _02242A30
+ ldr r1, _02242B60 ; =0x00003044
+ ldr r1, [r4, r1]
+ cmp r1, #0x63
+ beq _02242A30
+ ldr r1, _02242B5C ; =0x00002DB0
+ ldr r2, [r0, r1]
+ ldr r1, _02242B64 ; =0xFF7FFFFF
+ and r2, r1
+ ldr r1, _02242B5C ; =0x00002DB0
+ str r2, [r0, r1]
+_02242A30:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _02242B44
+_02242A38:
+ ldr r3, [r4, #0x6c]
+ cmp r3, #0xff
+ beq _02242AB0
+ ldr r0, [sp, #4]
+ cmp r0, #0x57
+ bne _02242AB0
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x10
+ tst r0, r1
+ bne _02242AB0
+ ldr r0, _02242B68 ; =0x0000213C
+ ldr r1, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02242AB0
+ ldr r2, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r2
+ add r1, r4, r0
+ mov r0, #0xbb
+ lsl r0, r0, #2
+ ldr r7, [r1, r0]
+ cmp r7, #0
+ beq _02242AB0
+ cmp r2, r3
+ beq _02242AB0
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _02242B6C ; =0x00002D8C
+ ldr r1, [r2, r0]
+ add r0, r0, #4
+ ldr r0, [r2, r0]
+ cmp r1, r0
+ bhs _02242AB0
+ cmp r1, #0
+ beq _02242AB0
+ ldr r1, [sp]
+ neg r0, r7
+ bl MOD11_022476C0
+ ldr r1, _02242B70 ; =0x0000215C
+ mov r2, #0xd5
+ str r0, [r4, r1]
+ mov r0, #0x46
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r6, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_02242AB0:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _02242B44
+_02242AB8:
+ ldr r0, [sp, #4]
+ cmp r0, #0x61
+ bne _02242B34
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _02242B34
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x10
+ tst r0, r1
+ bne _02242B34
+ ldr r0, _02242B68 ; =0x0000213C
+ ldr r1, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02242B34
+ ldr r0, _02242B60 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ mov r0, #0x3e
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ cmp r0, #2
+ beq _02242B34
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _02242B6C ; =0x00002D8C
+ add r0, r4, r0
+ ldr r1, [r0, r1]
+ cmp r1, #0
+ beq _02242B34
+ ldr r1, _02242B74 ; =0x00002D90
+ ldr r1, [r0, r1]
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r1
+ mov r1, #0xa
+ bl MOD11_022476C0
+ ldr r1, _02242B70 ; =0x0000215C
+ mov r2, #0xd6
+ str r0, [r4, r1]
+ mov r0, #0x46
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r6, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_02242B34:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _02242B44
+_02242B3C:
+ mov r0, #0
+ str r0, [r4, #0x30]
+ str r0, [r4, #0x34]
+ mov r6, #2
+_02242B44:
+ cmp r6, #0
+ bne _02242B4A
+ b _022429EC
+_02242B4A:
+ cmp r6, #1
+ bne _02242B54
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02242B54:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02242B5C: .word 0x00002DB0
+_02242B60: .word 0x00003044
+_02242B64: .word 0xFF7FFFFF
+_02242B68: .word 0x0000213C
+_02242B6C: .word 0x00002D8C
+_02242B70: .word 0x0000215C
+_02242B74: .word 0x00002D90
+
+ thumb_func_start MOD11_02242B78
+MOD11_02242B78: ; 0x02242B78
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r7, r1, #0
+ str r2, [sp, #4]
+ add r1, r2, #0
+ add r2, r3, #0
+ str r0, [sp]
+ bl MOD11_02230014
+ ldr r1, [sp, #4]
+ mov r2, #0xc0
+ add r5, r1, #0
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ add r1, r7, r1
+ mul r5, r2
+ str r1, [sp, #0x18]
+ mov r1, #5
+ mov r2, #0
+ add r4, r0, #0
+ bl GetMonData
+ ldr r1, [sp, #0x18]
+ mov r2, #0
+ strh r0, [r1, r5]
+ add r0, r4, #0
+ mov r1, #0xa4
+ bl GetMonData
+ ldr r1, _02242F4C ; =0x00002D42
+ add r2, r7, r5
+ strh r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xa5
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242F50 ; =0x00002D44
+ add r2, r7, r5
+ strh r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xa6
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242F54 ; =0x00002D46
+ add r2, r7, r5
+ strh r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xa7
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242F58 ; =0x00002D48
+ add r2, r7, r5
+ strh r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xa8
+ mov r2, #0
+ bl GetMonData
+ add r1, r7, r5
+ ldr r2, _02242F5C ; =0x00002D4A
+ str r1, [sp, #0xc]
+ strh r0, [r1, r2]
+ add r0, r1, #0
+ mov r6, #0
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x10]
+_02242C02:
+ add r1, r6, #0
+ add r0, r4, #0
+ add r1, #0x36
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp, #0x14]
+ ldr r1, _02242F60 ; =0x00002D4C
+ strh r0, [r2, r1]
+ add r1, r6, #0
+ add r0, r4, #0
+ add r1, #0x3a
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp, #0x10]
+ ldr r1, _02242F64 ; =0x00002D6C
+ strb r0, [r2, r1]
+ add r1, r6, #0
+ add r0, r4, #0
+ add r1, #0x3e
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp, #0x10]
+ ldr r1, _02242F68 ; =0x00002D70
+ add r6, r6, #1
+ strb r0, [r2, r1]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #2
+ str r0, [sp, #0x14]
+ add r0, r2, #0
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r6, #4
+ blt _02242C02
+ add r0, r1, #0
+ sub r0, #0x1c
+ add r6, r7, r0
+ add r0, r4, #0
+ mov r1, #0x46
+ mov r2, #0
+ bl GetMonData
+ ldr r1, [r6, r5]
+ mov r2, #0x1f
+ bic r1, r2
+ mov r2, #0x1f
+ and r0, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x47
+ mov r2, #0
+ bl GetMonData
+ lsl r0, r0, #0x1b
+ ldr r2, [r6, r5]
+ ldr r1, _02242F6C ; =0xFFFFFC1F
+ lsr r0, r0, #0x16
+ and r1, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x48
+ mov r2, #0
+ bl GetMonData
+ lsl r0, r0, #0x1b
+ ldr r2, [r6, r5]
+ ldr r1, _02242F70 ; =0xFFFF83FF
+ lsr r0, r0, #0x11
+ and r1, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x49
+ mov r2, #0
+ bl GetMonData
+ lsl r0, r0, #0x1b
+ ldr r2, [r6, r5]
+ ldr r1, _02242F74 ; =0xFFF07FFF
+ lsr r0, r0, #0xc
+ and r1, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x4a
+ mov r2, #0
+ bl GetMonData
+ lsl r0, r0, #0x1b
+ ldr r2, [r6, r5]
+ ldr r1, _02242F78 ; =0xFE0FFFFF
+ lsr r0, r0, #7
+ and r1, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x4b
+ mov r2, #0
+ bl GetMonData
+ lsl r0, r0, #0x1b
+ ldr r2, [r6, r5]
+ ldr r1, _02242F7C ; =0xC1FFFFFF
+ lsr r0, r0, #2
+ and r1, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [r6, r5]
+ ldr r1, _02242F80 ; =0xBFFFFFFF
+ lsl r0, r0, #0x1f
+ and r1, r2
+ lsr r0, r0, #1
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x4d
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [r6, r5]
+ ldr r1, _02242F84 ; =0x7FFFFFFF
+ lsl r0, r0, #0x1f
+ and r1, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ ldr r0, _02242F88 ; =0x0000213C
+ ldr r1, [r7, r0]
+ mov r0, #1
+ lsl r0, r0, #8
+ tst r0, r1
+ bne _02242D2E
+ ldr r0, _02242F8C ; =0x00002D58
+ mov r2, #0
+ mov r1, #6
+_02242D20:
+ ldr r3, [sp, #0xc]
+ add r2, r2, #1
+ strb r1, [r3, r0]
+ add r3, r3, #1
+ str r3, [sp, #0xc]
+ cmp r2, #8
+ blt _02242D20
+_02242D2E:
+ ldr r0, _02242F90 ; =0x00002D68
+ mov r1, #1
+ add r0, r7, r0
+ ldr r2, [r0, r5]
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #2
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #4
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #8
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #0x10
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #0x20
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #0x40
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #0x80
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ ldr r1, _02242F94 ; =0xFFFFFEFF
+ and r1, r2
+ str r1, [r0, r5]
+ ldr r2, [r0, r5]
+ ldr r1, _02242F98 ; =0xFFFFFDFF
+ and r1, r2
+ str r1, [r0, r5]
+ ldr r2, [r0, r5]
+ ldr r1, _02242F9C ; =0xFFFFFBFF
+ and r1, r2
+ str r1, [r0, r5]
+ add r0, r4, #0
+ mov r1, #0xb0
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242FA0 ; =0x00002D64
+ add r2, r7, r5
+ strb r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xb1
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242FA4 ; =0x00002D65
+ add r2, r7, r5
+ strb r0, [r2, r1]
+ add r1, #0x59
+ add r0, r7, r1
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ bl GetMonGender
+ ldr r1, [sp, #0x1c]
+ mov r2, #0xf
+ ldrb r1, [r1, r5]
+ bic r1, r2
+ mov r2, #0xf
+ and r0, r2
+ orr r1, r0
+ ldr r0, [sp, #0x1c]
+ strb r1, [r0, r5]
+ ldr r0, _02242FA8 ; =0x00002D66
+ add r6, r7, r0
+ add r0, r4, #0
+ bl MonIsShiny
+ ldrb r1, [r6, r5]
+ mov r2, #0x20
+ lsl r0, r0, #0x1f
+ bic r1, r2
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ strb r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl GetMonData
+ ldrb r1, [r6, r5]
+ mov r2, #0x1f
+ lsl r0, r0, #0x18
+ bic r1, r2
+ lsr r2, r0, #0x18
+ mov r0, #0x1f
+ and r0, r2
+ orr r0, r1
+ strb r0, [r6, r5]
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ beq _02242E24
+ ldr r2, _02242FAC ; =0x00002D67
+ mov r0, #0
+ add r3, r7, r5
+ add r1, r2, #0
+ strb r0, [r3, r2]
+ add r2, #0x51
+ add r1, #0x45
+ add r2, r7, r2
+ str r0, [r3, r1]
+ add r1, r2, r5
+ str r1, [sp, #8]
+ strh r0, [r2, r5]
+ b _02242E58
+_02242E24:
+ add r0, r4, #0
+ mov r1, #0xa
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242FAC ; =0x00002D67
+ add r2, r7, r5
+ strb r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242FB0 ; =0x00002DAC
+ add r2, r7, r5
+ str r0, [r2, r1]
+ add r1, #0xc
+ add r6, r7, r1
+ add r0, r6, r5
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #6
+ mov r2, #0
+ bl GetMonData
+ strh r0, [r6, r5]
+_02242E58:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ add r6, r0, #0
+ mul r6, r1
+ add r0, r4, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242FB4 ; =0x00002D74
+ add r2, r7, r6
+ strb r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #9
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242FB8 ; =0x00002D75
+ add r2, r7, r6
+ strb r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242FBC ; =0x00002D8C
+ add r2, r7, r6
+ str r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xa3
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242FC0 ; =0x00002D90
+ add r2, r7, r6
+ str r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #8
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242FC4 ; =0x00002DA4
+ add r2, r7, r6
+ str r0, [r2, r1]
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl GetMonData
+ ldr r1, _02242FC8 ; =0x00002DA8
+ add r2, r7, r6
+ str r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #7
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242FCC ; =0x00002DB4
+ add r2, r7, r6
+ str r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0x9c
+ mov r2, #0
+ bl GetMonData
+ ldr r1, [sp, #0x1c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1c
+ ldrb r1, [r1, r5]
+ mov r2, #0xf0
+ lsr r0, r0, #0x18
+ bic r1, r2
+ orr r1, r0
+ ldr r0, [sp, #0x1c]
+ mov r2, #0
+ strb r1, [r0, r5]
+ add r0, r4, #0
+ mov r1, #0x9a
+ bl GetMonData
+ ldr r1, _02242FD0 ; =0x00002DBF
+ add r2, r7, r6
+ strb r0, [r2, r1]
+ mov r0, #5
+ bl FUN_02087A6C
+ mov r1, #0
+ mov r2, #5
+ str r0, [sp, #0x20]
+ bl FUN_02087A98
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x20]
+ ldrh r1, [r1, r5]
+ bl FUN_02087B78
+ ldr r1, _02242FD4 ; =0x00002D60
+ add r2, r7, r6
+ str r0, [r2, r1]
+ ldr r0, [sp, #0x20]
+ bl FUN_02087B0C
+ ldr r0, [sp, #0x20]
+ bl FUN_02087A84
+ ldr r2, _02242FD8 ; =0x00002D76
+ add r0, r4, #0
+ add r2, r7, r2
+ mov r1, #0x74
+ add r2, r2, r6
+ bl GetMonData
+ ldr r2, _02242FDC ; =0x00002D94
+ add r0, r4, #0
+ add r2, r7, r2
+ mov r1, #0x8f
+ add r2, r2, r6
+ bl GetMonData
+ ldr r0, _02242FE0 ; =0x00002DBC
+ b _02242FE4
+ .align 2, 0
+_02242F4C: .word 0x00002D42
+_02242F50: .word 0x00002D44
+_02242F54: .word 0x00002D46
+_02242F58: .word 0x00002D48
+_02242F5C: .word 0x00002D4A
+_02242F60: .word 0x00002D4C
+_02242F64: .word 0x00002D6C
+_02242F68: .word 0x00002D70
+_02242F6C: .word 0xFFFFFC1F
+_02242F70: .word 0xFFFF83FF
+_02242F74: .word 0xFFF07FFF
+_02242F78: .word 0xFE0FFFFF
+_02242F7C: .word 0xC1FFFFFF
+_02242F80: .word 0xBFFFFFFF
+_02242F84: .word 0x7FFFFFFF
+_02242F88: .word 0x0000213C
+_02242F8C: .word 0x00002D58
+_02242F90: .word 0x00002D68
+_02242F94: .word 0xFFFFFEFF
+_02242F98: .word 0xFFFFFDFF
+_02242F9C: .word 0xFFFFFBFF
+_02242FA0: .word 0x00002D64
+_02242FA4: .word 0x00002D65
+_02242FA8: .word 0x00002D66
+_02242FAC: .word 0x00002D67
+_02242FB0: .word 0x00002DAC
+_02242FB4: .word 0x00002D74
+_02242FB8: .word 0x00002D75
+_02242FBC: .word 0x00002D8C
+_02242FC0: .word 0x00002D90
+_02242FC4: .word 0x00002DA4
+_02242FC8: .word 0x00002DA8
+_02242FCC: .word 0x00002DB4
+_02242FD0: .word 0x00002DBF
+_02242FD4: .word 0x00002D60
+_02242FD8: .word 0x00002D76
+_02242FDC: .word 0x00002D94
+_02242FE0: .word 0x00002DBC
+_02242FE4:
+ mov r2, #0
+ add r1, r7, r6
+ strb r2, [r1, r0]
+ add r0, r0, #1
+ strb r2, [r1, r0]
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ bl MOD11_02230270
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, r7, r0
+ ldr r0, _02243048 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl MaskOfFlagNo
+ lsl r1, r4, #3
+ add r2, r7, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #3
+ lsr r1, r1, #0x1a
+ tst r0, r1
+ beq _0224302C
+ ldr r0, [sp, #8]
+ mov r1, #0
+ strh r1, [r0]
+ ldr r0, _0224304C ; =0x00002DCC
+ add sp, #0x24
+ add r2, r7, r0
+ ldr r1, [r2, r5]
+ ldr r0, _02243050 ; =0xFFBFFFFF
+ and r0, r1
+ str r0, [r2, r5]
+ pop {r4, r5, r6, r7, pc}
+_0224302C:
+ ldr r0, [sp, #8]
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _02243042
+ ldr r0, _0224304C ; =0x00002DCC
+ add r2, r7, r0
+ mov r0, #1
+ ldr r1, [r2, r5]
+ lsl r0, r0, #0x16
+ orr r0, r1
+ str r0, [r2, r5]
+_02243042:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02243048: .word 0x0000219C
+_0224304C: .word 0x00002DCC
+_02243050: .word 0xFFBFFFFF
+
+ thumb_func_start MOD11_02243054
+MOD11_02243054: ; 0x02243054
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r2, #0
+ str r1, [sp]
+ add r1, r5, #0
+ add r2, r3, #0
+ bl MOD11_02230014
+ mov r1, #0xc0
+ mul r1, r5
+ str r1, [sp, #4]
+ mov r1, #0xa4
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431A8 ; =0x00002D42
+ strh r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa5
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431AC ; =0x00002D44
+ strh r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa6
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431B0 ; =0x00002D46
+ strh r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa7
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431B4 ; =0x00002D48
+ strh r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa8
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431B8 ; =0x00002D4A
+ strh r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431BC ; =0x00002D74
+ strb r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #9
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431C0 ; =0x00002D75
+ strb r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431C4 ; =0x00002D8C
+ str r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa3
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431C8 ; =0x00002D90
+ str r0, [r2, r1]
+ add r0, r1, #0
+ add r0, #0x20
+ ldr r2, [r2, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r2
+ bne _022431A4
+ mov r0, #0xc0
+ mul r0, r5
+ ldr r2, [sp]
+ str r0, [sp, #8]
+ add r7, r2, r0
+ add r1, #0x3c
+ add r0, r2, #0
+ add r0, r0, r1
+ mov r4, #0
+ add r5, r7, #0
+ str r0, [sp, #0xc]
+_02243142:
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldr r2, [sp, #0xc]
+ ldr r1, [sp, #8]
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1c
+ tst r0, r1
+ bne _02243186
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x36
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _022431CC ; =0x00002D4C
+ mov r2, #0
+ strh r0, [r7, r1]
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x3a
+ bl GetMonData
+ ldr r1, _022431D0 ; =0x00002D6C
+ mov r2, #0
+ strb r0, [r5, r1]
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x3e
+ bl GetMonData
+ ldr r1, _022431D4 ; =0x00002D70
+ strb r0, [r5, r1]
+_02243186:
+ add r4, r4, #1
+ add r7, r7, #2
+ add r5, r5, #1
+ cmp r4, #4
+ blt _02243142
+ add r0, r6, #0
+ mov r1, #8
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431D8 ; =0x00002DA4
+ str r0, [r2, r1]
+_022431A4:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022431A8: .word 0x00002D42
+_022431AC: .word 0x00002D44
+_022431B0: .word 0x00002D46
+_022431B4: .word 0x00002D48
+_022431B8: .word 0x00002D4A
+_022431BC: .word 0x00002D74
+_022431C0: .word 0x00002D75
+_022431C4: .word 0x00002D8C
+_022431C8: .word 0x00002D90
+_022431CC: .word 0x00002D4C
+_022431D0: .word 0x00002D6C
+_022431D4: .word 0x00002D70
+_022431D8: .word 0x00002DA4
+
+ thumb_func_start MOD11_022431DC
+MOD11_022431DC: ; 0x022431DC
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r2, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl GetNarcMemberSizeByIdPair
+ mov r1, #0x19
+ lsl r1, r1, #6
+ cmp r0, r1
+ blo _022431F8
+ bl ErrorHandling
+_022431F8:
+ add r0, r5, #0
+ add r0, #0xac
+ str r4, [r0]
+ add r0, r5, #0
+ add r0, #0xb0
+ str r6, [r0]
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ mov r0, #0x27
+ lsl r0, r0, #8
+ add r0, r5, r0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl ReadWholeNarcMemberByIdPair
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0224321C
+MOD11_0224321C: ; 0x0224321C
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r2, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl GetNarcMemberSizeByIdPair
+ mov r1, #0x19
+ lsl r1, r1, #6
+ cmp r0, r1
+ blo _02243238
+ bl ErrorHandling
+_02243238:
+ add r0, r5, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ cmp r0, #4
+ blt _02243246
+ bl ErrorHandling
+_02243246:
+ add r1, r5, #0
+ add r1, #0xb8
+ ldr r1, [r1]
+ add r0, r5, #0
+ add r0, #0xac
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r0, [r0]
+ add r1, #0xbc
+ str r0, [r1]
+ add r1, r5, #0
+ add r1, #0xb8
+ ldr r1, [r1]
+ add r0, r5, #0
+ add r0, #0xb0
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r0, [r0]
+ add r1, #0xcc
+ str r0, [r1]
+ add r1, r5, #0
+ add r1, #0xb8
+ ldr r1, [r1]
+ add r0, r5, #0
+ add r0, #0xb4
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r0, [r0]
+ add r1, #0xdc
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ add r2, r6, #0
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0xb8
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xac
+ str r4, [r0]
+ add r0, r5, #0
+ add r0, #0xb0
+ str r6, [r0]
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ mov r0, #0x27
+ lsl r0, r0, #8
+ add r0, r5, r0
+ add r1, r4, #0
+ bl ReadWholeNarcMemberByIdPair
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_022432B4
+MOD11_022432B4: ; 0x022432B4
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ add r1, #0xb8
+ ldr r1, [r1]
+ cmp r1, #0
+ beq _022432FE
+ add r1, r4, #0
+ add r1, #0xb8
+ ldr r1, [r1]
+ sub r2, r1, #1
+ add r1, r4, #0
+ add r1, #0xb8
+ str r2, [r1]
+ add r1, r4, #0
+ add r1, #0xb8
+ ldr r1, [r1]
+ lsl r2, r1, #2
+ add r1, r4, r2
+ add r2, r4, r2
+ add r1, #0xbc
+ add r2, #0xcc
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl MOD11_022431DC
+ add r0, r4, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ add r0, #0xdc
+ ldr r0, [r0]
+ add r4, #0xb4
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+_022432FE:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02243304
+MOD11_02243304: ; 0x02243304
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ lsl r0, r1, #6
+ lsl r6, r2, #4
+ add r1, r4, r0
+ add r5, r1, r6
+ mov r1, #0x22
+ add r7, r3, #0
+ mov r3, #0
+ lsl r1, r1, #8
+_02243318:
+ ldrb r2, [r5, r1]
+ cmp r2, #0
+ bne _0224332C
+ add r0, r4, r0
+ add r0, r0, r6
+ add r1, r0, r3
+ mov r0, #0x22
+ lsl r0, r0, #8
+ strb r7, [r1, r0]
+ b _02243334
+_0224332C:
+ add r3, r3, #1
+ add r5, r5, #1
+ cmp r3, #0x10
+ blt _02243318
+_02243334:
+ cmp r3, #0x10
+ blt _0224333C
+ bl ErrorHandling
+_0224333C:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02243340
+MOD11_02243340: ; 0x02243340
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ str r2, [sp]
+ add r4, r3, #0
+ bne _02243350
+ bl ErrorHandling
+_02243350:
+ ldr r0, [sp]
+ lsl r6, r5, #6
+ lsl r5, r0, #4
+ add r0, r7, r6
+ add r3, r0, r5
+ mov r0, #0x22
+ mov r2, #0
+ lsl r0, r0, #8
+_02243360:
+ ldrb r1, [r3, r0]
+ cmp r4, r1
+ bne _02243376
+ add r1, r7, r6
+ add r1, r1, r5
+ add r3, r1, r2
+ mov r1, #0x22
+ mov r0, #0
+ lsl r1, r1, #8
+ strb r0, [r3, r1]
+ b _0224337E
+_02243376:
+ add r2, r2, #1
+ add r3, r3, #1
+ cmp r2, #0x10
+ blt _02243360
+_0224337E:
+ cmp r2, #0x10
+ blt _02243386
+ bl ErrorHandling
+_02243386:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02243388
+MOD11_02243388: ; 0x02243388
+ push {r3, r4, r5, r6, r7, lr}
+ mov r2, #0
+ mov r4, #0x22
+ mov lr, r0
+ mov ip, r2
+ add r7, r0, #0
+ add r6, r2, #0
+ lsl r4, r4, #8
+_02243398:
+ mov r0, #0
+ add r3, r7, #0
+_0224339C:
+ add r1, r6, #0
+_0224339E:
+ add r5, r3, r1
+ ldrb r5, [r5, r4]
+ add r1, r1, #1
+ add r2, r2, r5
+ cmp r1, #0x10
+ blt _0224339E
+ add r0, r0, #1
+ add r3, #0x10
+ cmp r0, #4
+ blt _0224339C
+ mov r0, ip
+ add r0, r0, #1
+ add r7, #0x40
+ mov ip, r0
+ cmp r0, #4
+ blt _02243398
+ cmp r2, #0
+ bne _022433CA
+ ldr r1, _022433D8 ; =0x00003148
+ mov r3, #0
+ mov r0, lr
+ str r3, [r0, r1]
+_022433CA:
+ cmp r2, #0
+ bne _022433D2
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022433D2:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022433D8: .word 0x00003148
+
+ thumb_func_start MOD11_022433DC
+MOD11_022433DC: ; 0x022433DC
+ push {r3, lr}
+ ldr r1, _022433F8 ; =0x00003148
+ ldr r2, [r0, r1]
+ add r2, r2, #1
+ str r2, [r0, r1]
+ ldr r1, [r0, r1]
+ ldr r0, _022433FC ; =0x00000708
+ cmp r1, r0
+ ble _022433F4
+ mov r0, #1
+ bl FUN_020336A0
+_022433F4:
+ pop {r3, pc}
+ nop
+_022433F8: .word 0x00003148
+_022433FC: .word 0x00000708
+
+ thumb_func_start MOD11_02243400
+MOD11_02243400: ; 0x02243400
+ push {r3, r4}
+ lsl r1, r1, #8
+ add r4, r0, r1
+ mov r3, #0
+ mov r0, #0x23
+ mov r1, #1
+ add r2, r3, #0
+ lsl r0, r0, #8
+ lsl r1, r1, #8
+_02243412:
+ add r3, r3, #1
+ strb r2, [r4, r0]
+ add r4, r4, #1
+ cmp r3, r1
+ blt _02243412
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD11_02243420
+MOD11_02243420: ; 0x02243420
+ push {r4, r5, r6, lr}
+ mov r4, #0xb5
+ lsl r4, r4, #6
+ add r5, r0, r4
+ mov r6, #0xc0
+ add r4, r1, #0
+ mul r4, r6
+ add r4, r5, r4
+ cmp r2, #0x64
+ bls _02243436
+ b _02243794
+_02243436:
+ add r5, r2, r2
+ add r5, pc
+ ldrh r5, [r5, #6]
+ lsl r5, r5, #0x10
+ asr r5, r5, #0x10
+ add pc, r5
+_02243442: ; jump table
+ .short _0224350C - _02243442 - 2 ; case 0
+ .short _02243510 - _02243442 - 2 ; case 1
+ .short _02243514 - _02243442 - 2 ; case 2
+ .short _02243518 - _02243442 - 2 ; case 3
+ .short _0224351C - _02243442 - 2 ; case 4
+ .short _02243520 - _02243442 - 2 ; case 5
+ .short _02243524 - _02243442 - 2 ; case 6
+ .short _02243524 - _02243442 - 2 ; case 7
+ .short _02243524 - _02243442 - 2 ; case 8
+ .short _02243524 - _02243442 - 2 ; case 9
+ .short _0224352E - _02243442 - 2 ; case 10
+ .short _02243536 - _02243442 - 2 ; case 11
+ .short _0224353E - _02243442 - 2 ; case 12
+ .short _02243546 - _02243442 - 2 ; case 13
+ .short _0224354E - _02243442 - 2 ; case 14
+ .short _02243556 - _02243442 - 2 ; case 15
+ .short _0224355E - _02243442 - 2 ; case 16
+ .short _02243566 - _02243442 - 2 ; case 17
+ .short _0224356C - _02243442 - 2 ; case 18
+ .short _0224356C - _02243442 - 2 ; case 19
+ .short _0224356C - _02243442 - 2 ; case 20
+ .short _0224356C - _02243442 - 2 ; case 21
+ .short _0224356C - _02243442 - 2 ; case 22
+ .short _0224356C - _02243442 - 2 ; case 23
+ .short _0224356C - _02243442 - 2 ; case 24
+ .short _0224356C - _02243442 - 2 ; case 25
+ .short _02243576 - _02243442 - 2 ; case 26
+ .short _0224357C - _02243442 - 2 ; case 27
+ .short _0224357C - _02243442 - 2 ; case 28
+ .short _02243582 - _02243442 - 2 ; case 29
+ .short _0224358C - _02243442 - 2 ; case 30
+ .short _02243596 - _02243442 - 2 ; case 31
+ .short _02243596 - _02243442 - 2 ; case 32
+ .short _02243596 - _02243442 - 2 ; case 33
+ .short _02243596 - _02243442 - 2 ; case 34
+ .short _022435A0 - _02243442 - 2 ; case 35
+ .short _022435A0 - _02243442 - 2 ; case 36
+ .short _022435A0 - _02243442 - 2 ; case 37
+ .short _022435A0 - _02243442 - 2 ; case 38
+ .short _022435AA - _02243442 - 2 ; case 39
+ .short _022435AA - _02243442 - 2 ; case 40
+ .short _022435AA - _02243442 - 2 ; case 41
+ .short _022435AA - _02243442 - 2 ; case 42
+ .short _022435BE - _02243442 - 2 ; case 43
+ .short _022435C4 - _02243442 - 2 ; case 44
+ .short _022435CA - _02243442 - 2 ; case 45
+ .short _022435DC - _02243442 - 2 ; case 46
+ .short _022435E8 - _02243442 - 2 ; case 47
+ .short _022435EC - _02243442 - 2 ; case 48
+ .short _022435F0 - _02243442 - 2 ; case 49
+ .short _02243606 - _02243442 - 2 ; case 50
+ .short _0224360A - _02243442 - 2 ; case 51
+ .short _0224360E - _02243442 - 2 ; case 52
+ .short _02243612 - _02243442 - 2 ; case 53
+ .short _02243616 - _02243442 - 2 ; case 54
+ .short _0224361A - _02243442 - 2 ; case 55
+ .short _02243620 - _02243442 - 2 ; case 56
+ .short _02243626 - _02243442 - 2 ; case 57
+ .short _0224362C - _02243442 - 2 ; case 58
+ .short _02243636 - _02243442 - 2 ; case 59
+ .short _0224363C - _02243442 - 2 ; case 60
+ .short _02243642 - _02243442 - 2 ; case 61
+ .short _0224364C - _02243442 - 2 ; case 62
+ .short _02243656 - _02243442 - 2 ; case 63
+ .short _02243660 - _02243442 - 2 ; case 64
+ .short _0224366A - _02243442 - 2 ; case 65
+ .short _02243674 - _02243442 - 2 ; case 66
+ .short _0224367E - _02243442 - 2 ; case 67
+ .short _02243688 - _02243442 - 2 ; case 68
+ .short _02243692 - _02243442 - 2 ; case 69
+ .short _0224369C - _02243442 - 2 ; case 70
+ .short _022436A6 - _02243442 - 2 ; case 71
+ .short _022436B0 - _02243442 - 2 ; case 72
+ .short _022436BA - _02243442 - 2 ; case 73
+ .short _022436C2 - _02243442 - 2 ; case 74
+ .short _022436CC - _02243442 - 2 ; case 75
+ .short _022436D6 - _02243442 - 2 ; case 76
+ .short _022436E0 - _02243442 - 2 ; case 77
+ .short _022436EA - _02243442 - 2 ; case 78
+ .short _022436F4 - _02243442 - 2 ; case 79
+ .short _022436FE - _02243442 - 2 ; case 80
+ .short _02243708 - _02243442 - 2 ; case 81
+ .short _02243712 - _02243442 - 2 ; case 82
+ .short _0224371C - _02243442 - 2 ; case 83
+ .short _02243726 - _02243442 - 2 ; case 84
+ .short _02243730 - _02243442 - 2 ; case 85
+ .short _0224373A - _02243442 - 2 ; case 86
+ .short _02243744 - _02243442 - 2 ; case 87
+ .short _0224374A - _02243442 - 2 ; case 88
+ .short _02243750 - _02243442 - 2 ; case 89
+ .short _02243756 - _02243442 - 2 ; case 90
+ .short _0224375C - _02243442 - 2 ; case 91
+ .short _02243762 - _02243442 - 2 ; case 92
+ .short _02243768 - _02243442 - 2 ; case 93
+ .short _0224376E - _02243442 - 2 ; case 94
+ .short _02243774 - _02243442 - 2 ; case 95
+ .short _0224377A - _02243442 - 2 ; case 96
+ .short _02243782 - _02243442 - 2 ; case 97
+ .short _02243794 - _02243442 - 2 ; case 98
+ .short _02243794 - _02243442 - 2 ; case 99
+ .short _0224378A - _02243442 - 2 ; case 100
+_0224350C:
+ ldrh r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243510:
+ ldrh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02243514:
+ ldrh r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_02243518:
+ ldrh r0, [r4, #6]
+ pop {r4, r5, r6, pc}
+_0224351C:
+ ldrh r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_02243520:
+ ldrh r0, [r4, #0xa]
+ pop {r4, r5, r6, pc}
+_02243524:
+ sub r0, r2, #6
+ lsl r0, r0, #1
+ add r0, r4, r0
+ ldrh r0, [r0, #0xc]
+ pop {r4, r5, r6, pc}
+_0224352E:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1b
+ pop {r4, r5, r6, pc}
+_02243536:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1b
+ pop {r4, r5, r6, pc}
+_0224353E:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1b
+ pop {r4, r5, r6, pc}
+_02243546:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0x1b
+ pop {r4, r5, r6, pc}
+_0224354E:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #7
+ lsr r0, r0, #0x1b
+ pop {r4, r5, r6, pc}
+_02243556:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #2
+ lsr r0, r0, #0x1b
+ pop {r4, r5, r6, pc}
+_0224355E:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #1
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_02243566:
+ ldr r0, [r4, #0x14]
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_0224356C:
+ sub r2, #0x12
+ add r1, r4, r2
+ mov r0, #0x18
+ ldrsb r0, [r1, r0]
+ pop {r4, r5, r6, pc}
+_02243576:
+ add r4, #0x27
+ ldrb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224357C:
+ bl MOD11_0224C740
+ pop {r4, r5, r6, pc}
+_02243582:
+ add r4, #0x7e
+ ldrb r0, [r4]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ pop {r4, r5, r6, pc}
+_0224358C:
+ add r4, #0x26
+ ldrb r0, [r4]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_02243596:
+ sub r2, #0x1f
+ add r0, r4, r2
+ add r0, #0x2c
+ ldrb r0, [r0]
+ pop {r4, r5, r6, pc}
+_022435A0:
+ sub r2, #0x23
+ add r0, r4, r2
+ add r0, #0x30
+ ldrb r0, [r0]
+ pop {r4, r5, r6, pc}
+_022435AA:
+ sub r2, #0x27
+ lsl r0, r2, #1
+ add r1, r4, r2
+ add r0, r4, r0
+ add r1, #0x30
+ ldrh r0, [r0, #0xc]
+ ldrb r1, [r1]
+ bl WazaGetMaxPp
+ pop {r4, r5, r6, pc}
+_022435BE:
+ add r4, #0x34
+ ldrb r0, [r4]
+ pop {r4, r5, r6, pc}
+_022435C4:
+ add r4, #0x35
+ ldrb r0, [r4]
+ pop {r4, r5, r6, pc}
+_022435CA:
+ mov r1, #0
+_022435CC:
+ ldrh r0, [r4, #0x36]
+ add r1, r1, #1
+ add r4, r4, #2
+ strh r0, [r3]
+ add r3, r3, #2
+ cmp r1, #0xb
+ blt _022435CC
+ b _02243798
+_022435DC:
+ add r4, #0x36
+ add r0, r3, #0
+ add r1, r4, #0
+ bl FUN_02021E28
+ b _02243798
+_022435E8:
+ ldr r0, [r4, #0x4c]
+ pop {r4, r5, r6, pc}
+_022435EC:
+ ldr r0, [r4, #0x50]
+ pop {r4, r5, r6, pc}
+_022435F0:
+ mov r1, #0
+_022435F2:
+ add r0, r4, #0
+ add r0, #0x54
+ ldrh r0, [r0]
+ add r1, r1, #1
+ add r4, r4, #2
+ strh r0, [r3]
+ add r3, r3, #2
+ cmp r1, #0xb
+ blt _022435F2
+ b _02243798
+_02243606:
+ ldr r0, [r4, #0x64]
+ pop {r4, r5, r6, pc}
+_0224360A:
+ ldr r0, [r4, #0x68]
+ pop {r4, r5, r6, pc}
+_0224360E:
+ ldr r0, [r4, #0x6c]
+ pop {r4, r5, r6, pc}
+_02243612:
+ ldr r0, [r4, #0x70]
+ pop {r4, r5, r6, pc}
+_02243616:
+ ldr r0, [r4, #0x74]
+ pop {r4, r5, r6, pc}
+_0224361A:
+ add r4, #0x78
+ ldrh r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243620:
+ add r4, #0x7c
+ ldrb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243626:
+ add r4, #0x7d
+ ldrb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224362C:
+ add r4, #0x7e
+ ldrb r0, [r4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ pop {r4, r5, r6, pc}
+_02243636:
+ add r4, #0x80
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224363C:
+ add r4, #0x84
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243642:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_0224364C:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_02243656:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ pop {r4, r5, r6, pc}
+_02243660:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_0224366A:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0x13
+ lsr r0, r0, #0x1e
+ pop {r4, r5, r6, pc}
+_02243674:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1e
+ pop {r4, r5, r6, pc}
+_0224367E:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0xe
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_02243688:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0xb
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_02243692:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #8
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_0224369C:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #5
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_022436A6:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #2
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_022436B0:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #1
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_022436BA:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_022436C2:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ pop {r4, r5, r6, pc}
+_022436CC:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1c
+ pop {r4, r5, r6, pc}
+_022436D6:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ pop {r4, r5, r6, pc}
+_022436E0:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1e
+ pop {r4, r5, r6, pc}
+_022436EA:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0x13
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_022436F4:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_022436FE:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0xd
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_02243708:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0xa
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_02243712:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #9
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_0224371C:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #5
+ lsr r0, r0, #0x1c
+ pop {r4, r5, r6, pc}
+_02243726:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #4
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_02243730:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #3
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_0224373A:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #2
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_02243744:
+ add r4, #0x90
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224374A:
+ add r4, #0x94
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243750:
+ add r4, #0x98
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243756:
+ add r4, #0xa0
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224375C:
+ add r4, #0xa4
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243762:
+ add r4, #0xa8
+ ldrh r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243768:
+ add r4, #0xac
+ ldrh r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224376E:
+ add r4, #0xaa
+ ldrh r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243774:
+ add r4, #0xbc
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224377A:
+ ldr r0, [r4, #0x28]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_02243782:
+ ldr r0, [r4, #0x28]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_0224378A:
+ add r6, #0x78
+ ldr r2, [r0, r6]
+ bl MOD11_02243420
+ pop {r4, r5, r6, pc}
+_02243794:
+ bl ErrorHandling
+_02243798:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0224379C
+MOD11_0224379C: ; 0x0224379C
+ push {r4, r5, r6, lr}
+ add r5, r2, #0
+ mov r2, #0xb5
+ lsl r2, r2, #6
+ add r4, r0, r2
+ mov r6, #0xc0
+ add r2, r1, #0
+ mul r2, r6
+ add r2, r4, r2
+ cmp r5, #0x64
+ bls _022437B4
+ b _02243D9E
+_022437B4:
+ add r4, r5, r5
+ add r4, pc
+ ldrh r4, [r4, #6]
+ lsl r4, r4, #0x10
+ asr r4, r4, #0x10
+ add pc, r4
+_022437C0: ; jump table
+ .short _0224388A - _022437C0 - 2 ; case 0
+ .short _02243890 - _022437C0 - 2 ; case 1
+ .short _02243896 - _022437C0 - 2 ; case 2
+ .short _0224389C - _022437C0 - 2 ; case 3
+ .short _022438A2 - _022437C0 - 2 ; case 4
+ .short _022438A8 - _022437C0 - 2 ; case 5
+ .short _022438AE - _022437C0 - 2 ; case 6
+ .short _022438AE - _022437C0 - 2 ; case 7
+ .short _022438AE - _022437C0 - 2 ; case 8
+ .short _022438AE - _022437C0 - 2 ; case 9
+ .short _022438BA - _022437C0 - 2 ; case 10
+ .short _022438CC - _022437C0 - 2 ; case 11
+ .short _022438DE - _022437C0 - 2 ; case 12
+ .short _022438F0 - _022437C0 - 2 ; case 13
+ .short _02243902 - _022437C0 - 2 ; case 14
+ .short _02243914 - _022437C0 - 2 ; case 15
+ .short _02243926 - _022437C0 - 2 ; case 16
+ .short _02243938 - _022437C0 - 2 ; case 17
+ .short _02243948 - _022437C0 - 2 ; case 18
+ .short _02243948 - _022437C0 - 2 ; case 19
+ .short _02243948 - _022437C0 - 2 ; case 20
+ .short _02243948 - _022437C0 - 2 ; case 21
+ .short _02243948 - _022437C0 - 2 ; case 22
+ .short _02243948 - _022437C0 - 2 ; case 23
+ .short _02243948 - _022437C0 - 2 ; case 24
+ .short _02243948 - _022437C0 - 2 ; case 25
+ .short _02243954 - _022437C0 - 2 ; case 26
+ .short _0224395C - _022437C0 - 2 ; case 27
+ .short _02243964 - _022437C0 - 2 ; case 28
+ .short _0224396C - _022437C0 - 2 ; case 29
+ .short _02243984 - _022437C0 - 2 ; case 30
+ .short _0224399C - _022437C0 - 2 ; case 31
+ .short _0224399C - _022437C0 - 2 ; case 32
+ .short _0224399C - _022437C0 - 2 ; case 33
+ .short _0224399C - _022437C0 - 2 ; case 34
+ .short _022439A8 - _022437C0 - 2 ; case 35
+ .short _022439A8 - _022437C0 - 2 ; case 36
+ .short _022439A8 - _022437C0 - 2 ; case 37
+ .short _022439A8 - _022437C0 - 2 ; case 38
+ .short _022439B4 - _022437C0 - 2 ; case 39
+ .short _022439B4 - _022437C0 - 2 ; case 40
+ .short _022439B4 - _022437C0 - 2 ; case 41
+ .short _022439B4 - _022437C0 - 2 ; case 42
+ .short _022439BA - _022437C0 - 2 ; case 43
+ .short _022439C2 - _022437C0 - 2 ; case 44
+ .short _022439CA - _022437C0 - 2 ; case 45
+ .short _02243D9E - _022437C0 - 2 ; case 46
+ .short _022439DC - _022437C0 - 2 ; case 47
+ .short _022439E4 - _022437C0 - 2 ; case 48
+ .short _022439EA - _022437C0 - 2 ; case 49
+ .short _02243A00 - _022437C0 - 2 ; case 50
+ .short _02243A06 - _022437C0 - 2 ; case 51
+ .short _02243A0C - _022437C0 - 2 ; case 52
+ .short _02243A12 - _022437C0 - 2 ; case 53
+ .short _02243A18 - _022437C0 - 2 ; case 54
+ .short _02243A1E - _022437C0 - 2 ; case 55
+ .short _02243A26 - _022437C0 - 2 ; case 56
+ .short _02243A2E - _022437C0 - 2 ; case 57
+ .short _02243A36 - _022437C0 - 2 ; case 58
+ .short _02243A4E - _022437C0 - 2 ; case 59
+ .short _02243A56 - _022437C0 - 2 ; case 60
+ .short _02243A5E - _022437C0 - 2 ; case 61
+ .short _02243A76 - _022437C0 - 2 ; case 62
+ .short _02243A8E - _022437C0 - 2 ; case 63
+ .short _02243AA6 - _022437C0 - 2 ; case 64
+ .short _02243ABE - _022437C0 - 2 ; case 65
+ .short _02243AD6 - _022437C0 - 2 ; case 66
+ .short _02243AEE - _022437C0 - 2 ; case 67
+ .short _02243B06 - _022437C0 - 2 ; case 68
+ .short _02243B1E - _022437C0 - 2 ; case 69
+ .short _02243B36 - _022437C0 - 2 ; case 70
+ .short _02243B4E - _022437C0 - 2 ; case 71
+ .short _02243B66 - _022437C0 - 2 ; case 72
+ .short _02243B7E - _022437C0 - 2 ; case 73
+ .short _02243B94 - _022437C0 - 2 ; case 74
+ .short _02243BAC - _022437C0 - 2 ; case 75
+ .short _02243BC4 - _022437C0 - 2 ; case 76
+ .short _02243BDC - _022437C0 - 2 ; case 77
+ .short _02243BF4 - _022437C0 - 2 ; case 78
+ .short _02243C0C - _022437C0 - 2 ; case 79
+ .short _02243C24 - _022437C0 - 2 ; case 80
+ .short _02243C3C - _022437C0 - 2 ; case 81
+ .short _02243C54 - _022437C0 - 2 ; case 82
+ .short _02243C6C - _022437C0 - 2 ; case 83
+ .short _02243CE0 - _022437C0 - 2 ; case 84
+ .short _02243CF8 - _022437C0 - 2 ; case 85
+ .short _02243D10 - _022437C0 - 2 ; case 86
+ .short _02243D28 - _022437C0 - 2 ; case 87
+ .short _02243D30 - _022437C0 - 2 ; case 88
+ .short _02243D38 - _022437C0 - 2 ; case 89
+ .short _02243D40 - _022437C0 - 2 ; case 90
+ .short _02243D48 - _022437C0 - 2 ; case 91
+ .short _02243D50 - _022437C0 - 2 ; case 92
+ .short _02243D58 - _022437C0 - 2 ; case 93
+ .short _02243D60 - _022437C0 - 2 ; case 94
+ .short _02243D68 - _022437C0 - 2 ; case 95
+ .short _02243D70 - _022437C0 - 2 ; case 96
+ .short _02243D82 - _022437C0 - 2 ; case 97
+ .short _02243D9E - _022437C0 - 2 ; case 98
+ .short _02243D9E - _022437C0 - 2 ; case 99
+ .short _02243D94 - _022437C0 - 2 ; case 100
+_0224388A:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243890:
+ ldrh r0, [r3]
+ strh r0, [r2, #2]
+ pop {r4, r5, r6, pc}
+_02243896:
+ ldrh r0, [r3]
+ strh r0, [r2, #4]
+ pop {r4, r5, r6, pc}
+_0224389C:
+ ldrh r0, [r3]
+ strh r0, [r2, #6]
+ pop {r4, r5, r6, pc}
+_022438A2:
+ ldrh r0, [r3]
+ strh r0, [r2, #8]
+ pop {r4, r5, r6, pc}
+_022438A8:
+ ldrh r0, [r3]
+ strh r0, [r2, #0xa]
+ pop {r4, r5, r6, pc}
+_022438AE:
+ sub r0, r5, #6
+ lsl r0, r0, #1
+ ldrh r1, [r3]
+ add r0, r2, r0
+ strh r1, [r0, #0xc]
+ pop {r4, r5, r6, pc}
+_022438BA:
+ ldr r4, [r2, #0x14]
+ mov r0, #0x1f
+ bic r4, r0
+ ldrb r1, [r3]
+ mov r0, #0x1f
+ and r0, r1
+ orr r0, r4
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_022438CC:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C78 ; =0xFFFFFC1F
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x16
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_022438DE:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C7C ; =0xFFFF83FF
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x11
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_022438F0:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C80 ; =0xFFF07FFF
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0xc
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_02243902:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C84 ; =0xFE0FFFFF
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #7
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_02243914:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C88 ; =0xC1FFFFFF
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #2
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_02243926:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C8C ; =0xBFFFFFFF
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #1
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_02243938:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C90 ; =0x7FFFFFFF
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_02243948:
+ mov r0, #0
+ ldrsb r1, [r3, r0]
+ sub r5, #0x12
+ add r0, r2, r5
+ strb r1, [r0, #0x18]
+ pop {r4, r5, r6, pc}
+_02243954:
+ ldrb r0, [r3]
+ add r2, #0x27
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_0224395C:
+ ldrb r0, [r3]
+ add r2, #0x24
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243964:
+ ldrb r0, [r3]
+ add r2, #0x25
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_0224396C:
+ add r0, r2, #0
+ add r0, #0x7e
+ ldrb r4, [r0]
+ ldrb r1, [r3]
+ mov r0, #0xf
+ bic r4, r0
+ mov r0, #0xf
+ and r0, r1
+ orr r0, r4
+ add r2, #0x7e
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243984:
+ add r0, r2, #0
+ add r0, #0x26
+ ldrb r1, [r0]
+ mov r0, #0x20
+ add r2, #0x26
+ bic r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_0224399C:
+ sub r5, #0x1f
+ add r0, r2, r5
+ ldrb r1, [r3]
+ add r0, #0x2c
+ strb r1, [r0]
+ pop {r4, r5, r6, pc}
+_022439A8:
+ sub r5, #0x23
+ add r0, r2, r5
+ ldrb r1, [r3]
+ add r0, #0x30
+ strb r1, [r0]
+ pop {r4, r5, r6, pc}
+_022439B4:
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+_022439BA:
+ ldrb r0, [r3]
+ add r2, #0x34
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_022439C2:
+ ldrb r0, [r3]
+ add r2, #0x35
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_022439CA:
+ mov r1, #0
+_022439CC:
+ ldrh r0, [r3]
+ add r1, r1, #1
+ add r3, r3, #2
+ strh r0, [r2, #0x36]
+ add r2, r2, #2
+ cmp r1, #0xb
+ blt _022439CC
+ pop {r4, r5, r6, pc}
+_022439DC:
+ mov r0, #0
+ ldrsh r0, [r3, r0]
+ str r0, [r2, #0x4c]
+ pop {r4, r5, r6, pc}
+_022439E4:
+ ldrh r0, [r3]
+ str r0, [r2, #0x50]
+ pop {r4, r5, r6, pc}
+_022439EA:
+ mov r4, #0
+_022439EC:
+ ldrh r1, [r3]
+ add r0, r2, #0
+ add r0, #0x54
+ add r4, r4, #1
+ strh r1, [r0]
+ add r3, r3, #2
+ add r2, r2, #2
+ cmp r4, #0xb
+ blt _022439EC
+ pop {r4, r5, r6, pc}
+_02243A00:
+ ldr r0, [r3]
+ str r0, [r2, #0x64]
+ pop {r4, r5, r6, pc}
+_02243A06:
+ ldr r0, [r3]
+ str r0, [r2, #0x68]
+ pop {r4, r5, r6, pc}
+_02243A0C:
+ ldr r0, [r3]
+ str r0, [r2, #0x6c]
+ pop {r4, r5, r6, pc}
+_02243A12:
+ ldr r0, [r3]
+ str r0, [r2, #0x70]
+ pop {r4, r5, r6, pc}
+_02243A18:
+ ldr r0, [r3]
+ str r0, [r2, #0x74]
+ pop {r4, r5, r6, pc}
+_02243A1E:
+ ldrh r0, [r3]
+ add r2, #0x78
+ strh r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A26:
+ ldrb r0, [r3]
+ add r2, #0x7c
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A2E:
+ ldrb r0, [r3]
+ add r2, #0x7d
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A36:
+ add r0, r2, #0
+ add r0, #0x7e
+ ldrb r1, [r0]
+ mov r0, #0xf0
+ add r2, #0x7e
+ bic r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x18
+ orr r0, r1
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A4E:
+ ldr r0, [r3]
+ add r2, #0x80
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A56:
+ ldr r0, [r3]
+ add r2, #0x84
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A5E:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r4, [r0]
+ mov r0, #7
+ bic r4, r0
+ ldrb r1, [r3]
+ mov r0, #7
+ add r2, #0x88
+ and r0, r1
+ orr r0, r4
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A76:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ mov r0, #0x38
+ bic r1, r0
+ ldrb r0, [r3]
+ add r2, #0x88
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A8E:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ mov r0, #0xc0
+ bic r1, r0
+ ldrb r0, [r3]
+ add r2, #0x88
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x18
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243AA6:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243C94 ; =0xFFFFF8FF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x15
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243ABE:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243C98 ; =0xFFFFE7FF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x13
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243AD6:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243C9C ; =0xFFFF9FFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x11
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243AEE:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243CA0 ; =0xFFFC7FFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0xe
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B06:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243CA4 ; =0xFFE3FFFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0xb
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B1E:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243CA8 ; =0xFF1FFFFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #8
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B36:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243CAC ; =0xF8FFFFFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #5
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B4E:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243CB0 ; =0xC7FFFFFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #2
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B66:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243C8C ; =0xBFFFFFFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #1
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B7E:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243C90 ; =0x7FFFFFFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B94:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r4, [r0]
+ mov r0, #3
+ bic r4, r0
+ ldrb r1, [r3]
+ mov r0, #3
+ add r2, #0x8c
+ and r0, r1
+ orr r0, r4
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243BAC:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ mov r0, #0x3c
+ bic r1, r0
+ ldrb r0, [r3]
+ add r2, #0x8c
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243BC4:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ mov r0, #0xc0
+ bic r1, r0
+ ldrb r0, [r3]
+ add r2, #0x8c
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x18
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243BDC:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CB4 ; =0xFFFFFCFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x16
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243BF4:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CB8 ; =0xFFFFE3FF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x13
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243C0C:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CBC ; =0xFFFF1FFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x10
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243C24:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CC0 ; =0xFFF8FFFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0xd
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243C3C:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CC4 ; =0xFFC7FFFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0xa
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243C54:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CC8 ; =0xFFBFFFFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #9
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243C6C:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CCC ; =0xF87FFFFF
+ b _02243CD0
+ nop
+_02243C78: .word 0xFFFFFC1F
+_02243C7C: .word 0xFFFF83FF
+_02243C80: .word 0xFFF07FFF
+_02243C84: .word 0xFE0FFFFF
+_02243C88: .word 0xC1FFFFFF
+_02243C8C: .word 0xBFFFFFFF
+_02243C90: .word 0x7FFFFFFF
+_02243C94: .word 0xFFFFF8FF
+_02243C98: .word 0xFFFFE7FF
+_02243C9C: .word 0xFFFF9FFF
+_02243CA0: .word 0xFFFC7FFF
+_02243CA4: .word 0xFFE3FFFF
+_02243CA8: .word 0xFF1FFFFF
+_02243CAC: .word 0xF8FFFFFF
+_02243CB0: .word 0xC7FFFFFF
+_02243CB4: .word 0xFFFFFCFF
+_02243CB8: .word 0xFFFFE3FF
+_02243CBC: .word 0xFFFF1FFF
+_02243CC0: .word 0xFFF8FFFF
+_02243CC4: .word 0xFFC7FFFF
+_02243CC8: .word 0xFFBFFFFF
+_02243CCC: .word 0xF87FFFFF
+_02243CD0:
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #5
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243CE0:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243DA4 ; =0xF7FFFFFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #4
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243CF8:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243DA8 ; =0xEFFFFFFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #3
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D10:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243DAC ; =0xDFFFFFFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #2
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D28:
+ ldr r0, [r3]
+ add r2, #0x90
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D30:
+ ldr r0, [r3]
+ add r2, #0x94
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D38:
+ ldr r0, [r3]
+ add r2, #0x98
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D40:
+ ldr r0, [r3]
+ add r2, #0xa0
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D48:
+ ldr r0, [r3]
+ add r2, #0xa4
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D50:
+ ldrh r0, [r3]
+ add r2, #0xa8
+ strh r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D58:
+ ldrh r0, [r3]
+ add r2, #0xac
+ strh r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D60:
+ ldrh r0, [r3]
+ add r2, #0xaa
+ strh r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D68:
+ ldr r0, [r3]
+ add r2, #0xbc
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D70:
+ ldr r1, [r2, #0x28]
+ mov r0, #0x40
+ bic r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x19
+ orr r0, r1
+ str r0, [r2, #0x28]
+ pop {r4, r5, r6, pc}
+_02243D82:
+ ldr r1, [r2, #0x28]
+ mov r0, #0x80
+ bic r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x18
+ orr r0, r1
+ str r0, [r2, #0x28]
+ pop {r4, r5, r6, pc}
+_02243D94:
+ add r6, #0x78
+ ldr r2, [r0, r6]
+ bl MOD11_0224379C
+ pop {r4, r5, r6, pc}
+_02243D9E:
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02243DA4: .word 0xF7FFFFFF
+_02243DA8: .word 0xEFFFFFFF
+_02243DAC: .word 0xDFFFFFFF
+
+ thumb_func_start MOD11_02243DB0
+MOD11_02243DB0: ; 0x02243DB0
+ push {r4, lr}
+ mov r4, #0xb5
+ lsl r4, r4, #6
+ add r4, r0, r4
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r2, #0
+ add r0, r4, r0
+ add r2, r3, #0
+ bl MOD11_02243DC8
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02243DC8
+MOD11_02243DC8: ; 0x02243DC8
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r5, r2, #0
+ cmp r1, #0x61
+ bls _02243DD4
+ b _02244200
+_02243DD4:
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02243DE0: ; jump table
+ .short _02244200 - _02243DE0 - 2 ; case 0
+ .short _02243EA4 - _02243DE0 - 2 ; case 1
+ .short _02243EAC - _02243DE0 - 2 ; case 2
+ .short _02243EB4 - _02243DE0 - 2 ; case 3
+ .short _02243EBC - _02243DE0 - 2 ; case 4
+ .short _02243EC4 - _02243DE0 - 2 ; case 5
+ .short _02244200 - _02243DE0 - 2 ; case 6
+ .short _02244200 - _02243DE0 - 2 ; case 7
+ .short _02244200 - _02243DE0 - 2 ; case 8
+ .short _02244200 - _02243DE0 - 2 ; case 9
+ .short _02243ECC - _02243DE0 - 2 ; case 10
+ .short _02243EE4 - _02243DE0 - 2 ; case 11
+ .short _02243EFA - _02243DE0 - 2 ; case 12
+ .short _02243F10 - _02243DE0 - 2 ; case 13
+ .short _02243F26 - _02243DE0 - 2 ; case 14
+ .short _02243F3C - _02243DE0 - 2 ; case 15
+ .short _02244200 - _02243DE0 - 2 ; case 16
+ .short _02244200 - _02243DE0 - 2 ; case 17
+ .short _02243F52 - _02243DE0 - 2 ; case 18
+ .short _02243F52 - _02243DE0 - 2 ; case 19
+ .short _02243F52 - _02243DE0 - 2 ; case 20
+ .short _02243F52 - _02243DE0 - 2 ; case 21
+ .short _02243F52 - _02243DE0 - 2 ; case 22
+ .short _02243F52 - _02243DE0 - 2 ; case 23
+ .short _02243F52 - _02243DE0 - 2 ; case 24
+ .short _02243F52 - _02243DE0 - 2 ; case 25
+ .short _02244200 - _02243DE0 - 2 ; case 26
+ .short _02244200 - _02243DE0 - 2 ; case 27
+ .short _02244200 - _02243DE0 - 2 ; case 28
+ .short _02244200 - _02243DE0 - 2 ; case 29
+ .short _02244200 - _02243DE0 - 2 ; case 30
+ .short _02243F70 - _02243DE0 - 2 ; case 31
+ .short _02243F70 - _02243DE0 - 2 ; case 32
+ .short _02243F70 - _02243DE0 - 2 ; case 33
+ .short _02243F70 - _02243DE0 - 2 ; case 34
+ .short _02243F96 - _02243DE0 - 2 ; case 35
+ .short _02243F96 - _02243DE0 - 2 ; case 36
+ .short _02243F96 - _02243DE0 - 2 ; case 37
+ .short _02243F96 - _02243DE0 - 2 ; case 38
+ .short _02244200 - _02243DE0 - 2 ; case 39
+ .short _02244200 - _02243DE0 - 2 ; case 40
+ .short _02244200 - _02243DE0 - 2 ; case 41
+ .short _02244200 - _02243DE0 - 2 ; case 42
+ .short _02243FA2 - _02243DE0 - 2 ; case 43
+ .short _02243FB0 - _02243DE0 - 2 ; case 44
+ .short _02244200 - _02243DE0 - 2 ; case 45
+ .short _02244200 - _02243DE0 - 2 ; case 46
+ .short _02243FD2 - _02243DE0 - 2 ; case 47
+ .short _02243FE4 - _02243DE0 - 2 ; case 48
+ .short _02244200 - _02243DE0 - 2 ; case 49
+ .short _02243FEC - _02243DE0 - 2 ; case 50
+ .short _02243FF4 - _02243DE0 - 2 ; case 51
+ .short _02244200 - _02243DE0 - 2 ; case 52
+ .short _02244200 - _02243DE0 - 2 ; case 53
+ .short _02244200 - _02243DE0 - 2 ; case 54
+ .short _02244200 - _02243DE0 - 2 ; case 55
+ .short _02244200 - _02243DE0 - 2 ; case 56
+ .short _02244200 - _02243DE0 - 2 ; case 57
+ .short _02244200 - _02243DE0 - 2 ; case 58
+ .short _02244200 - _02243DE0 - 2 ; case 59
+ .short _02244200 - _02243DE0 - 2 ; case 60
+ .short _02243FFC - _02243DE0 - 2 ; case 61
+ .short _0224401A - _02243DE0 - 2 ; case 62
+ .short _02244038 - _02243DE0 - 2 ; case 63
+ .short _02244056 - _02243DE0 - 2 ; case 64
+ .short _02244072 - _02243DE0 - 2 ; case 65
+ .short _0224408E - _02243DE0 - 2 ; case 66
+ .short _022440AA - _02243DE0 - 2 ; case 67
+ .short _022440C6 - _02243DE0 - 2 ; case 68
+ .short _022440E2 - _02243DE0 - 2 ; case 69
+ .short _022440FE - _02243DE0 - 2 ; case 70
+ .short _0224411A - _02243DE0 - 2 ; case 71
+ .short _02244200 - _02243DE0 - 2 ; case 72
+ .short _02244200 - _02243DE0 - 2 ; case 73
+ .short _02244200 - _02243DE0 - 2 ; case 74
+ .short _02244200 - _02243DE0 - 2 ; case 75
+ .short _02244200 - _02243DE0 - 2 ; case 76
+ .short _02244200 - _02243DE0 - 2 ; case 77
+ .short _02244136 - _02243DE0 - 2 ; case 78
+ .short _02244152 - _02243DE0 - 2 ; case 79
+ .short _0224416E - _02243DE0 - 2 ; case 80
+ .short _02244200 - _02243DE0 - 2 ; case 81
+ .short _02244200 - _02243DE0 - 2 ; case 82
+ .short _02244200 - _02243DE0 - 2 ; case 83
+ .short _02244200 - _02243DE0 - 2 ; case 84
+ .short _02244200 - _02243DE0 - 2 ; case 85
+ .short _02244200 - _02243DE0 - 2 ; case 86
+ .short _0224418A - _02243DE0 - 2 ; case 87
+ .short _02244198 - _02243DE0 - 2 ; case 88
+ .short _022441A6 - _02243DE0 - 2 ; case 89
+ .short _022441B4 - _02243DE0 - 2 ; case 90
+ .short _02244200 - _02243DE0 - 2 ; case 91
+ .short _02244200 - _02243DE0 - 2 ; case 92
+ .short _02244200 - _02243DE0 - 2 ; case 93
+ .short _02244200 - _02243DE0 - 2 ; case 94
+ .short _022441C2 - _02243DE0 - 2 ; case 95
+ .short _022441D0 - _02243DE0 - 2 ; case 96
+ .short _022441E8 - _02243DE0 - 2 ; case 97
+_02243EA4:
+ ldrh r0, [r4, #2]
+ add r0, r0, r5
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02243EAC:
+ ldrh r0, [r4, #4]
+ add r0, r0, r5
+ strh r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_02243EB4:
+ ldrh r0, [r4, #6]
+ add r0, r0, r5
+ strh r0, [r4, #6]
+ pop {r4, r5, r6, pc}
+_02243EBC:
+ ldrh r0, [r4, #8]
+ add r0, r0, r5
+ strh r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_02243EC4:
+ ldrh r0, [r4, #0xa]
+ add r0, r0, r5
+ strh r0, [r4, #0xa]
+ pop {r4, r5, r6, pc}
+_02243ECC:
+ ldr r2, [r4, #0x14]
+ mov r1, #0x1f
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x1b
+ lsr r1, r1, #0x1b
+ add r2, r1, r5
+ mov r1, #0x1f
+ and r1, r2
+ orr r0, r1
+ str r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_02243EE4:
+ ldr r1, [r4, #0x14]
+ ldr r0, _02244208 ; =0xFFFFFC1F
+ and r0, r1
+ lsl r1, r1, #0x16
+ lsr r1, r1, #0x1b
+ add r1, r1, r5
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x16
+ orr r0, r1
+ str r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_02243EFA:
+ ldr r1, [r4, #0x14]
+ ldr r0, _0224420C ; =0xFFFF83FF
+ and r0, r1
+ lsl r1, r1, #0x11
+ lsr r1, r1, #0x1b
+ add r1, r1, r5
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x11
+ orr r0, r1
+ str r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_02243F10:
+ ldr r1, [r4, #0x14]
+ ldr r0, _02244210 ; =0xFFF07FFF
+ and r0, r1
+ lsl r1, r1, #0xc
+ lsr r1, r1, #0x1b
+ add r1, r1, r5
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0xc
+ orr r0, r1
+ str r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_02243F26:
+ ldr r1, [r4, #0x14]
+ ldr r0, _02244214 ; =0xFE0FFFFF
+ and r0, r1
+ lsl r1, r1, #7
+ lsr r1, r1, #0x1b
+ add r1, r1, r5
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #7
+ orr r0, r1
+ str r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_02243F3C:
+ ldr r1, [r4, #0x14]
+ ldr r0, _02244218 ; =0xC1FFFFFF
+ and r0, r1
+ lsl r1, r1, #2
+ lsr r1, r1, #0x1b
+ add r1, r1, r5
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #2
+ orr r0, r1
+ str r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_02243F52:
+ add r4, #0x18
+ sub r1, #0x12
+ ldrsb r0, [r4, r1]
+ add r0, r5, r0
+ bpl _02243F62
+ mov r0, #0
+ strb r0, [r4, r1]
+ pop {r4, r5, r6, pc}
+_02243F62:
+ cmp r0, #0xc
+ ble _02243F6C
+ mov r0, #0xc
+ strb r0, [r4, r1]
+ pop {r4, r5, r6, pc}
+_02243F6C:
+ strb r0, [r4, r1]
+ pop {r4, r5, r6, pc}
+_02243F70:
+ add r6, r1, #0
+ sub r6, #0x1f
+ lsl r0, r6, #1
+ add r1, r4, r6
+ add r0, r4, r0
+ add r1, #0x30
+ ldrh r0, [r0, #0xc]
+ ldrb r1, [r1]
+ bl WazaGetMaxPp
+ add r4, #0x2c
+ ldrb r1, [r4, r6]
+ add r1, r5, r1
+ cmp r1, r0
+ ble _02243F92
+ strb r0, [r4, r6]
+ pop {r4, r5, r6, pc}
+_02243F92:
+ strb r1, [r4, r6]
+ pop {r4, r5, r6, pc}
+_02243F96:
+ add r4, #0x30
+ sub r1, #0x23
+ ldrb r0, [r4, r1]
+ add r0, r0, r5
+ strb r0, [r4, r1]
+ pop {r4, r5, r6, pc}
+_02243FA2:
+ add r0, r4, #0
+ add r0, #0x34
+ ldrb r0, [r0]
+ add r4, #0x34
+ add r0, r0, r5
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243FB0:
+ add r0, r4, #0
+ add r0, #0x35
+ ldrb r0, [r0]
+ add r0, r0, r5
+ cmp r0, #0xff
+ ble _02243FC4
+ mov r0, #0xff
+ add r4, #0x35
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243FC4:
+ add r0, r4, #0
+ add r0, #0x35
+ ldrb r0, [r0]
+ add r4, #0x35
+ add r0, r0, r5
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243FD2:
+ ldr r0, [r4, #0x4c]
+ ldr r1, [r4, #0x50]
+ add r0, r0, r5
+ cmp r0, r1
+ bls _02243FE0
+ str r1, [r4, #0x4c]
+ pop {r4, r5, r6, pc}
+_02243FE0:
+ str r0, [r4, #0x4c]
+ pop {r4, r5, r6, pc}
+_02243FE4:
+ ldr r0, [r4, #0x50]
+ add r0, r0, r5
+ str r0, [r4, #0x50]
+ pop {r4, r5, r6, pc}
+_02243FEC:
+ ldr r0, [r4, #0x64]
+ add r0, r0, r5
+ str r0, [r4, #0x64]
+ pop {r4, r5, r6, pc}
+_02243FF4:
+ ldr r0, [r4, #0x68]
+ add r0, r0, r5
+ str r0, [r4, #0x68]
+ pop {r4, r5, r6, pc}
+_02243FFC:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r2, [r0]
+ mov r1, #7
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x1d
+ lsr r1, r1, #0x1d
+ add r2, r1, r5
+ mov r1, #7
+ and r1, r2
+ orr r0, r1
+ add r4, #0x88
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224401A:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r2, [r0]
+ mov r1, #0x38
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x1a
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x1a
+ orr r0, r1
+ add r4, #0x88
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_02244038:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r2, [r0]
+ mov r1, #0xc0
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x1e
+ add r1, r1, r5
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x18
+ orr r0, r1
+ add r4, #0x88
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_02244056:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _0224421C ; =0xFFFFF8FF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x15
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_02244072:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02244220 ; =0xFFFFE7FF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #0x13
+ lsr r1, r1, #0x1e
+ add r1, r1, r5
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x13
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224408E:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02244224 ; =0xFFFF9FFF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #0x11
+ lsr r1, r1, #0x1e
+ add r1, r1, r5
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x11
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022440AA:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02244228 ; =0xFFFC7FFF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #0xe
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0xe
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022440C6:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _0224422C ; =0xFFE3FFFF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #0xb
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0xb
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022440E2:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02244230 ; =0xFF1FFFFF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #8
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #8
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022440FE:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02244234 ; =0xF8FFFFFF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #5
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #5
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224411A:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02244238 ; =0xC7FFFFFF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #2
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #2
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_02244136:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _0224423C ; =0xFFFFE3FF
+ add r4, #0x8c
+ and r0, r1
+ lsl r1, r1, #0x13
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x13
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_02244152:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02244240 ; =0xFFFF1FFF
+ add r4, #0x8c
+ and r0, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x10
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224416E:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02244244 ; =0xFFF8FFFF
+ add r4, #0x8c
+ and r0, r1
+ lsl r1, r1, #0xd
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0xd
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224418A:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ add r4, #0x90
+ add r0, r0, r5
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_02244198:
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r4, #0x94
+ add r0, r0, r5
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022441A6:
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ add r4, #0x98
+ add r0, r0, r5
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022441B4:
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ add r4, #0xa0
+ add r0, r0, r5
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022441C2:
+ add r0, r4, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ add r4, #0xbc
+ add r0, r0, r5
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022441D0:
+ ldr r2, [r4, #0x28]
+ mov r1, #0x40
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x19
+ lsr r1, r1, #0x1f
+ add r1, r1, r5
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x19
+ orr r0, r1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, pc}
+_022441E8:
+ ldr r2, [r4, #0x28]
+ mov r1, #0x80
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x1f
+ add r1, r1, r5
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x18
+ orr r0, r1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, pc}
+_02244200:
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+ nop
+_02244208: .word 0xFFFFFC1F
+_0224420C: .word 0xFFFF83FF
+_02244210: .word 0xFFF07FFF
+_02244214: .word 0xFE0FFFFF
+_02244218: .word 0xC1FFFFFF
+_0224421C: .word 0xFFFFF8FF
+_02244220: .word 0xFFFFE7FF
+_02244224: .word 0xFFFF9FFF
+_02244228: .word 0xFFFC7FFF
+_0224422C: .word 0xFFE3FFFF
+_02244230: .word 0xFF1FFFFF
+_02244234: .word 0xF8FFFFFF
+_02244238: .word 0xC7FFFFFF
+_0224423C: .word 0xFFFFE3FF
+_02244240: .word 0xFFFF1FFF
+_02244244: .word 0xFFF8FFFF
+
+ thumb_func_start MOD11_02244248
+MOD11_02244248: ; 0x02244248
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x68
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #0x64]
+ str r0, [sp, #0x60]
+ ldr r0, [sp, #0x64]
+ str r2, [sp, #8]
+ str r0, [sp, #0x5c]
+ ldr r0, [sp, #0x64]
+ str r3, [sp, #0xc]
+ str r0, [sp, #0x48]
+ ldr r0, [sp, #0x64]
+ add r5, r1, #0
+ str r0, [sp, #0x44]
+ ldr r0, [sp, #0x64]
+ mov r2, #0xc0
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0x64]
+ ldr r3, _0224455C ; =0x00002D8C
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x64]
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x64]
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #8]
+ add r1, r0, #0
+ mul r1, r2
+ add r0, r5, r1
+ ldr r0, [r0, r3]
+ str r1, [sp, #0x18]
+ cmp r0, #0
+ bne _0224429C
+ ldr r1, [sp, #0xc]
+ mul r2, r1
+ add r1, r5, r2
+ ldr r1, [r1, r3]
+ cmp r1, #0
+ beq _0224429C
+ add sp, #0x68
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0224429C:
+ cmp r0, #0
+ beq _022442B6
+ ldr r0, [sp, #0xc]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224455C ; =0x00002D8C
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022442B6
+ add sp, #0x68
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022442B6:
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ str r0, [sp, #0x2c]
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ str r0, [sp, #0x28]
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x58]
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x54]
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x50]
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x4c]
+ ldr r0, [sp, #0x18]
+ ldr r2, _02244560 ; =0x00002D5B
+ add r0, r5, r0
+ ldrsb r4, [r0, r2]
+ ldr r0, [sp, #0xc]
+ mov r1, #0xc0
+ mul r1, r0
+ add r0, r5, r1
+ str r1, [sp, #0x14]
+ ldrsb r7, [r0, r2]
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x56
+ bne _02244338
+ sub r0, r4, #6
+ lsl r0, r0, #1
+ add r4, r0, #6
+ cmp r4, #0xc
+ ble _02244332
+ mov r4, #0xc
+_02244332:
+ cmp r4, #0
+ bge _02244338
+ mov r4, #0
+_02244338:
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x56
+ bne _02244356
+ sub r0, r7, #6
+ lsl r0, r0, #1
+ add r7, r0, #6
+ cmp r7, #0xc
+ ble _02244350
+ mov r7, #0xc
+_02244350:
+ cmp r7, #0
+ bge _02244356
+ mov r7, #0
+_02244356:
+ ldr r0, [sp, #0x18]
+ lsl r1, r4, #1
+ add r2, r5, r0
+ ldr r0, _02244564 ; =0x00002D46
+ ldrh r2, [r2, r0]
+ ldr r0, _02244568 ; =0x0225E284
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224456C ; =0x0225E285
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r0, [sp, #0x14]
+ lsl r1, r7, #1
+ add r2, r5, r0
+ ldr r0, _02244564 ; =0x00002D46
+ ldrh r2, [r2, r0]
+ ldr r0, _02244568 ; =0x0225E284
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224456C ; =0x0225E285
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ add r4, r0, #0
+ mov r0, #0xd
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022443FE
+ mov r0, #0x4c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022443FE
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x21
+ bne _022443C4
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #3
+ tst r0, r1
+ bne _022443D6
+_022443C4:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x22
+ bne _022443D8
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0x30
+ tst r0, r1
+ beq _022443D8
+_022443D6:
+ lsl r6, r6, #1
+_022443D8:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x21
+ bne _022443EA
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #3
+ tst r0, r1
+ bne _022443FC
+_022443EA:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x22
+ bne _022443FE
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0x30
+ tst r0, r1
+ beq _022443FE
+_022443FC:
+ lsl r4, r4, #1
+_022443FE:
+ mov r0, #0
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x18]
+ ldr r7, _02244570 ; =0x0225E24C
+ add r0, r5, r0
+ str r0, [sp, #0x1c]
+_0224440A:
+ ldr r2, [sp, #0x1c]
+ ldr r1, _02244574 ; =0x00002DB8
+ add r0, r5, #0
+ ldrh r1, [r2, r1]
+ mov r2, #1
+ bl MOD11_0224C12C
+ ldrb r1, [r7]
+ cmp r1, r0
+ bne _02244422
+ lsr r6, r6, #1
+ b _0224442E
+_02244422:
+ ldr r0, [sp, #0x24]
+ add r7, r7, #1
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #8
+ blo _0224440A
+_0224442E:
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x72
+ bne _02244440
+ mov r0, #0xf
+ mul r0, r6
+ mov r1, #0xa
+ bl _u32_div_f
+ add r6, r0, #0
+_02244440:
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x65
+ bne _02244456
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r1, r0]
+ cmp r0, #0x84
+ bne _02244456
+ lsl r6, r6, #1
+_02244456:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x5f
+ bne _02244478
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _02244578 ; =0x00002DAC
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ beq _02244478
+ mov r0, #0xf
+ mul r0, r6
+ mov r1, #0xa
+ bl _u32_div_f
+ add r6, r0, #0
+ b _02244488
+_02244478:
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _02244578 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _02244488
+ lsr r6, r6, #2
+_02244488:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x70
+ bne _022444A4
+ ldr r1, [sp, #0x18]
+ mov r0, #0x15
+ add r2, r5, r1
+ ldr r1, _0224457C ; =0x00002DD8
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ ldr r1, [r2, r1]
+ sub r0, r0, r1
+ cmp r0, #5
+ bge _022444A4
+ lsr r6, r6, #1
+_022444A4:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x54
+ bne _022444C2
+ ldr r0, [sp, #0x18]
+ add r2, r5, r0
+ ldr r0, _02244580 ; =0x00002DCC
+ ldr r1, [r2, r0]
+ lsl r1, r1, #9
+ lsr r1, r1, #0x1f
+ beq _022444C2
+ sub r0, #0x14
+ ldrh r0, [r2, r0]
+ cmp r0, #0
+ bne _022444C2
+ lsl r6, r6, #1
+_022444C2:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #3
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _022444DE
+ lsl r6, r6, #1
+_022444DE:
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x33
+ bne _0224451C
+ ldr r1, [sp, #0x54]
+ mov r0, #0x64
+ bl _s32_div_f
+ add r1, r0, #0
+ ldr r0, [sp, #8]
+ lsl r0, r0, #1
+ add r2, r5, r0
+ ldr r0, _02244584 ; =0x0000310C
+ ldrh r0, [r2, r0]
+ bl _s32_div_f
+ cmp r1, #0
+ bne _0224451C
+ mov r0, #1
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bne _0224451C
+ ldr r0, _02244580 ; =0x00002DCC
+ ldr r1, [sp, #0x18]
+ add r0, r5, r0
+ ldr r2, [r0, r1]
+ mov r1, #2
+ lsl r1, r1, #0x1c
+ orr r2, r1
+ ldr r1, [sp, #0x18]
+ str r2, [r0, r1]
+_0224451C:
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _02244580 ; =0x00002DCC
+ ldr r0, [r1, r0]
+ lsl r0, r0, #3
+ lsr r0, r0, #0x1f
+ beq _0224452E
+ mov r0, #1
+ str r0, [sp, #0x40]
+_0224452E:
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x6a
+ bne _02244538
+ mov r0, #1
+ str r0, [sp, #0x38]
+_02244538:
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ ldr r7, _02244570 ; =0x0225E24C
+ add r0, r5, r0
+ str r0, [sp, #0x20]
+_02244544:
+ ldr r2, [sp, #0x20]
+ ldr r1, _02244574 ; =0x00002DB8
+ add r0, r5, #0
+ ldrh r1, [r2, r1]
+ mov r2, #1
+ bl MOD11_0224C12C
+ ldrb r1, [r7]
+ cmp r1, r0
+ bne _02244588
+ lsr r4, r4, #1
+ b _02244594
+ .align 2, 0
+_0224455C: .word 0x00002D8C
+_02244560: .word 0x00002D5B
+_02244564: .word 0x00002D46
+_02244568: .word 0x0225E284
+_0224456C: .word 0x0225E285
+_02244570: .word 0x0225E24C
+_02244574: .word 0x00002DB8
+_02244578: .word 0x00002DAC
+_0224457C: .word 0x00002DD8
+_02244580: .word 0x00002DCC
+_02244584: .word 0x0000310C
+_02244588:
+ ldr r0, [sp, #0x10]
+ add r7, r7, #1
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, #8
+ blo _02244544
+_02244594:
+ ldr r0, [sp, #0x50]
+ cmp r0, #0x72
+ bne _022445A6
+ mov r0, #0xf
+ mul r0, r4
+ mov r1, #0xa
+ bl _u32_div_f
+ add r4, r0, #0
+_022445A6:
+ ldr r0, [sp, #0x50]
+ cmp r0, #0x65
+ bne _022445BC
+ ldr r0, [sp, #0x14]
+ add r1, r5, r0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r1, r0]
+ cmp r0, #0x84
+ bne _022445BC
+ lsl r4, r4, #1
+_022445BC:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x5f
+ bne _022445DE
+ ldr r0, [sp, #0x14]
+ add r1, r5, r0
+ ldr r0, _02244894 ; =0x00002DAC
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ beq _022445DE
+ mov r0, #0xf
+ mul r0, r4
+ mov r1, #0xa
+ bl _u32_div_f
+ add r4, r0, #0
+ b _022445EE
+_022445DE:
+ ldr r0, [sp, #0x14]
+ add r1, r5, r0
+ ldr r0, _02244894 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _022445EE
+ lsr r4, r4, #2
+_022445EE:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x70
+ bne _0224460A
+ ldr r1, [sp, #0x14]
+ mov r0, #0x15
+ add r2, r5, r1
+ ldr r1, _02244898 ; =0x00002DD8
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ ldr r1, [r2, r1]
+ sub r0, r0, r1
+ cmp r0, #5
+ bge _0224460A
+ lsr r4, r4, #1
+_0224460A:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x54
+ bne _02244628
+ ldr r0, [sp, #0x14]
+ add r2, r5, r0
+ ldr r0, _0224489C ; =0x00002DCC
+ ldr r1, [r2, r0]
+ lsl r1, r1, #9
+ lsr r1, r1, #0x1f
+ beq _02244628
+ sub r0, #0x14
+ ldrh r0, [r2, r0]
+ cmp r0, #0
+ bne _02244628
+ lsl r4, r4, #1
+_02244628:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02230270
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #3
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _02244644
+ lsl r4, r4, #1
+_02244644:
+ ldr r0, [sp, #0x50]
+ cmp r0, #0x33
+ bne _02244682
+ ldr r1, [sp, #0x4c]
+ mov r0, #0x64
+ bl _s32_div_f
+ add r1, r0, #0
+ ldr r0, [sp, #0xc]
+ lsl r0, r0, #1
+ add r2, r5, r0
+ ldr r0, _022448A0 ; =0x0000310C
+ ldrh r0, [r2, r0]
+ bl _s32_div_f
+ cmp r1, #0
+ bne _02244682
+ mov r0, #1
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bne _02244682
+ ldr r0, _0224489C ; =0x00002DCC
+ ldr r1, [sp, #0x14]
+ add r0, r5, r0
+ ldr r2, [r0, r1]
+ mov r1, #2
+ lsl r1, r1, #0x1c
+ orr r2, r1
+ ldr r1, [sp, #0x14]
+ str r2, [r0, r1]
+_02244682:
+ ldr r0, [sp, #0x14]
+ add r1, r5, r0
+ ldr r0, _0224489C ; =0x00002DCC
+ ldr r0, [r1, r0]
+ lsl r0, r0, #3
+ lsr r0, r0, #0x1f
+ beq _02244694
+ mov r0, #1
+ str r0, [sp, #0x3c]
+_02244694:
+ ldr r0, [sp, #0x50]
+ cmp r0, #0x6a
+ bne _0224469E
+ mov r0, #1
+ str r0, [sp, #0x34]
+_0224469E:
+ ldr r0, [sp, #8]
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, _022448A4 ; =0x000021F0
+ str r6, [r1, r0]
+ ldr r1, [sp, #0xc]
+ lsl r1, r1, #2
+ add r1, r5, r1
+ str r4, [r1, r0]
+ ldr r1, [sp, #0x80]
+ cmp r1, #0
+ bne _02244756
+ ldr r1, [sp, #0xc]
+ ldr r3, _022448A8 ; =0x000030BC
+ lsl r1, r1, #4
+ add r2, r5, r1
+ add r1, r0, #0
+ sub r1, #0x3c
+ ldr r1, [r2, r1]
+ sub r0, #0x3c
+ str r1, [sp, #0x30]
+ ldr r1, [sp, #8]
+ lsl r1, r1, #1
+ add r1, r5, r1
+ ldrh r2, [r1, r3]
+ ldr r1, [sp, #0xc]
+ lsl r1, r1, #1
+ add r1, r5, r1
+ ldrh r7, [r1, r3]
+ ldr r1, [sp, #8]
+ lsl r1, r1, #4
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ cmp r0, #1
+ bne _0224470E
+ ldr r0, [sp, #8]
+ lsl r0, r0, #6
+ add r1, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _022446FC
+ mov r0, #0xa5
+ str r0, [sp, #0x60]
+ b _0224470E
+_022446FC:
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ add r2, r2, #6
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x60]
+_0224470E:
+ ldr r0, [sp, #0x30]
+ cmp r0, #1
+ bne _0224473E
+ ldr r0, [sp, #0xc]
+ lsl r0, r0, #6
+ add r1, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _0224472C
+ mov r0, #0xa5
+ str r0, [sp, #0x5c]
+ b _0224473E
+_0224472C:
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ add r2, r7, #6
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x5c]
+_0224473E:
+ ldr r0, [sp, #0x60]
+ mov r1, #0xfa
+ lsl r0, r0, #4
+ add r0, r5, r0
+ lsl r1, r1, #2
+ ldrsb r0, [r0, r1]
+ str r0, [sp, #0x48]
+ ldr r0, [sp, #0x5c]
+ lsl r0, r0, #4
+ add r0, r5, r0
+ ldrsb r0, [r0, r1]
+ str r0, [sp, #0x44]
+_02244756:
+ ldr r1, [sp, #0x48]
+ ldr r0, [sp, #0x44]
+ cmp r1, r0
+ beq _02244760
+ b _022448AC
+_02244760:
+ ldr r0, [sp, #0x40]
+ cmp r0, #0
+ beq _0224478C
+ ldr r0, [sp, #0x3c]
+ cmp r0, #0
+ beq _0224478C
+ cmp r6, r4
+ bhs _02244776
+ mov r0, #1
+ str r0, [sp, #0x64]
+ b _022448B4
+_02244776:
+ cmp r6, r4
+ bne _02244784
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ bne _02244786
+_02244784:
+ b _022448B4
+_02244786:
+ mov r0, #2
+ str r0, [sp, #0x64]
+ b _022448B4
+_0224478C:
+ ldr r0, [sp, #0x40]
+ cmp r0, #0
+ bne _0224479E
+ ldr r0, [sp, #0x3c]
+ cmp r0, #0
+ beq _0224479E
+ mov r0, #1
+ str r0, [sp, #0x64]
+ b _022448B4
+_0224479E:
+ ldr r0, [sp, #0x40]
+ cmp r0, #0
+ beq _022447B0
+ ldr r0, [sp, #0x3c]
+ cmp r0, #0
+ bne _022447B0
+ mov r0, #0
+ str r0, [sp, #0x64]
+ b _022448B4
+_022447B0:
+ ldr r0, [sp, #0x38]
+ cmp r0, #0
+ beq _022447DA
+ ldr r0, [sp, #0x34]
+ cmp r0, #0
+ beq _022447DA
+ cmp r6, r4
+ bls _022447C6
+ mov r0, #1
+ str r0, [sp, #0x64]
+ b _022448B4
+_022447C6:
+ cmp r6, r4
+ bne _022448B4
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _022448B4
+ mov r0, #2
+ str r0, [sp, #0x64]
+ b _022448B4
+_022447DA:
+ ldr r0, [sp, #0x38]
+ cmp r0, #0
+ beq _022447EC
+ ldr r0, [sp, #0x34]
+ cmp r0, #0
+ bne _022447EC
+ mov r0, #1
+ str r0, [sp, #0x64]
+ b _022448B4
+_022447EC:
+ ldr r0, [sp, #0x38]
+ cmp r0, #0
+ bne _022447FE
+ ldr r0, [sp, #0x34]
+ cmp r0, #0
+ beq _022447FE
+ mov r0, #0
+ str r0, [sp, #0x64]
+ b _022448B4
+_022447FE:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x64
+ bne _02244828
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x64
+ bne _02244828
+ cmp r6, r4
+ bls _02244814
+ mov r0, #1
+ str r0, [sp, #0x64]
+ b _022448B4
+_02244814:
+ cmp r6, r4
+ bne _022448B4
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _022448B4
+ mov r0, #2
+ str r0, [sp, #0x64]
+ b _022448B4
+_02244828:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x64
+ bne _0224483A
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x64
+ beq _0224483A
+ mov r0, #1
+ str r0, [sp, #0x64]
+ b _022448B4
+_0224483A:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x64
+ beq _0224484C
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x64
+ bne _0224484C
+ mov r0, #0
+ str r0, [sp, #0x64]
+ b _022448B4
+_0224484C:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #7
+ lsl r0, r0, #0x10
+ tst r0, r1
+ beq _02244876
+ cmp r6, r4
+ bls _02244862
+ mov r0, #1
+ str r0, [sp, #0x64]
+_02244862:
+ cmp r6, r4
+ bne _022448B4
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _022448B4
+ mov r0, #2
+ str r0, [sp, #0x64]
+ b _022448B4
+_02244876:
+ cmp r6, r4
+ bhs _0224487E
+ mov r0, #1
+ str r0, [sp, #0x64]
+_0224487E:
+ cmp r6, r4
+ bne _022448B4
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _022448B4
+ mov r0, #2
+ str r0, [sp, #0x64]
+ b _022448B4
+ nop
+_02244894: .word 0x00002DAC
+_02244898: .word 0x00002DD8
+_0224489C: .word 0x00002DCC
+_022448A0: .word 0x0000310C
+_022448A4: .word 0x000021F0
+_022448A8: .word 0x000030BC
+_022448AC:
+ cmp r1, r0
+ bge _022448B4
+ mov r0, #1
+ str r0, [sp, #0x64]
+_022448B4:
+ ldr r0, [sp, #0x64]
+ add sp, #0x68
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022448BC
+MOD11_022448BC: ; 0x022448BC
+ asr r1, r1, #1
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1d
+ add r0, r0, r1
+ mov r2, #0
+ add r0, #0xa4
+ str r2, [r0]
+ bx lr
+
+ thumb_func_start MOD11_022448CC
+MOD11_022448CC: ; 0x022448CC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r2, [sp]
+ add r5, r1, #0
+ mov r4, #0
+ bl MOD11_0222FF74
+ add r7, r0, #0
+ ldr r0, [sp]
+ mov r1, #0xc0
+ mul r1, r0
+ add r0, r5, r1
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ asr r0, r0, #1
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1d
+ add r6, r5, r0
+ add r6, #0xa4
+_022448F2:
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldr r1, _0224493C ; =0x00003108
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _02244928
+ ldr r0, [sp]
+ bl MaskOfFlagNo
+ ldr r1, _0224493C ; =0x00003108
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _02244928
+ ldr r1, [sp, #4]
+ ldr r0, _02244940 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244928
+ ldr r0, _02244944 ; =0x0000219C
+ add r1, r5, r4
+ ldrb r0, [r1, r0]
+ bl MaskOfFlagNo
+ ldr r1, [r6]
+ orr r0, r1
+ str r0, [r6]
+_02244928:
+ add r4, r4, #2
+ cmp r7, #0x4a
+ beq _02244936
+ cmp r7, #0x4b
+ beq _02244936
+ cmp r4, #2
+ ble _022448F2
+_02244936:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224493C: .word 0x00003108
+_02244940: .word 0x00002D8C
+_02244944: .word 0x0000219C
+
+ thumb_func_start MOD11_02244948
+MOD11_02244948: ; 0x02244948
+ push {r4, r5, r6, lr}
+ ldr r0, _022449D4 ; =0x00002170
+ add r5, r1, #0
+ add r4, r2, #0
+ ldr r2, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0x1c
+ mov r6, #0
+ tst r0, r2
+ beq _0224497A
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _022449D4 ; =0x00002170
+ add r1, r6, #0
+ str r1, [r5, r0]
+ sub r0, r0, #4
+ ldr r1, [r5, r0]
+ ldr r0, _022449D8 ; =0x801FDA49
+ tst r0, r1
+ bne _022449CE
+ mov r6, #1
+ b _022449CE
+_0224497A:
+ cmp r2, #0
+ beq _022449CE
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022449DC ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022449C8
+ ldr r1, _022449E0 ; =0x0000216C
+ ldr r2, _022449D8 ; =0x801FDA49
+ ldr r0, [r5, r1]
+ tst r2, r0
+ beq _022449C6
+ add r1, r1, #4
+ mov r2, #2
+ ldr r1, [r5, r1]
+ lsl r2, r2, #0x16
+ tst r2, r1
+ beq _022449B8
+ ldr r2, _022449E4 ; =0x00040008
+ tst r2, r0
+ bne _022449C6
+_022449B8:
+ mov r2, #1
+ lsl r2, r2, #0x1c
+ tst r1, r2
+ beq _022449C8
+ ldr r1, _022449E8 ; =0x00010001
+ tst r0, r1
+ beq _022449C8
+_022449C6:
+ mov r6, #1
+_022449C8:
+ ldr r0, _022449D4 ; =0x00002170
+ mov r1, #0
+ str r1, [r5, r0]
+_022449CE:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ nop
+_022449D4: .word 0x00002170
+_022449D8: .word 0x801FDA49
+_022449DC: .word 0x00002D8C
+_022449E0: .word 0x0000216C
+_022449E4: .word 0x00040008
+_022449E8: .word 0x00010001
+
+ thumb_func_start MOD11_022449EC
+MOD11_022449EC: ; 0x022449EC
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r0, _02244C04 ; =0x00002174
+ add r5, r1, #0
+ add r4, r2, #0
+ ldr r2, [r5, r0]
+ mov r1, #2
+ lsl r1, r1, #0x1c
+ add r3, r2, #0
+ mov r6, #0
+ tst r3, r1
+ beq _02244A20
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _02244C04 ; =0x00002174
+ add r1, r6, #0
+ str r1, [r5, r0]
+ sub r0, #8
+ ldr r1, [r5, r0]
+ ldr r0, _02244C08 ; =0x801FDA49
+ tst r0, r1
+ bne _02244AC0
+ mov r6, #1
+ b _02244C00
+_02244A20:
+ lsr r3, r1, #5
+ tst r3, r2
+ beq _02244A54
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _02244C04 ; =0x00002174
+ add r1, r6, #0
+ str r1, [r5, r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224AD9C
+ cmp r0, #0
+ bne _02244AC0
+ ldr r0, _02244C0C ; =0x0000216C
+ ldr r1, [r5, r0]
+ ldr r0, _02244C08 ; =0x801FDA49
+ tst r0, r1
+ bne _02244AC0
+ mov r6, #1
+ b _02244C00
+_02244A54:
+ lsr r3, r1, #4
+ tst r3, r2
+ beq _02244A96
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _02244C04 ; =0x00002174
+ add r1, r6, #0
+ str r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02244C10 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02244AC0
+ add r0, r5, #0
+ bl MOD11_0224AD9C
+ cmp r0, #0
+ bne _02244AC0
+ ldr r0, _02244C0C ; =0x0000216C
+ ldr r1, [r5, r0]
+ ldr r0, _02244C08 ; =0x801FDA49
+ tst r0, r1
+ bne _02244AC0
+ mov r6, #1
+ b _02244C00
+_02244A96:
+ lsr r3, r1, #1
+ tst r3, r2
+ beq _02244AC6
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _02244C04 ; =0x00002174
+ add r1, r6, #0
+ str r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02244C10 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02244AC2
+_02244AC0:
+ b _02244C00
+_02244AC2:
+ mov r6, #1
+ b _02244C00
+_02244AC6:
+ lsr r1, r1, #3
+ tst r1, r2
+ beq _02244B50
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x20
+ ldr r0, _02244C14 ; =0x00003044
+ bne _02244AEA
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02244C18 ; =0x000003E5
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x11
+ lsr r6, r0, #0x10
+ b _02244AF4
+_02244AEA:
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02244C18 ; =0x000003E5
+ ldrb r6, [r1, r0]
+_02244AF4:
+ cmp r6, #0
+ bne _02244AFC
+ bl ErrorHandling
+_02244AFC:
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ cmp r1, r6
+ bge _02244B16
+ ldr r1, _02244C1C ; =0x0000213C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ lsl r0, r0, #0x16
+ orr r0, r2
+ str r0, [r5, r1]
+_02244B16:
+ ldr r2, _02244C04 ; =0x00002174
+ add r0, r5, #0
+ ldr r2, [r5, r2]
+ mov r1, #2
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r1, _02244C04 ; =0x00002174
+ mov r0, #0
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r2, [r0]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r5, r0
+ ldr r0, _02244C10 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ bne _02244B4C
+ add r0, r1, #0
+ sub r0, #0x38
+ ldr r2, [r5, r0]
+ ldr r0, _02244C20 ; =0xFFBFFFFF
+ sub r1, #0x38
+ and r0, r2
+ str r0, [r5, r1]
+_02244B4C:
+ mov r6, #1
+ b _02244C00
+_02244B50:
+ cmp r2, #0
+ beq _02244BD2
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x20
+ ldr r0, _02244C14 ; =0x00003044
+ bne _02244B72
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02244C18 ; =0x000003E5
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x11
+ lsr r7, r0, #0x10
+ b _02244B7C
+_02244B72:
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02244C18 ; =0x000003E5
+ ldrb r7, [r1, r0]
+_02244B7C:
+ cmp r7, #0
+ bne _02244B84
+ bl ErrorHandling
+_02244B84:
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ cmp r1, r7
+ bge _02244C00
+ ldr r2, _02244C04 ; =0x00002174
+ add r0, r5, #0
+ ldr r2, [r5, r2]
+ mov r1, #2
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _02244C04 ; =0x00002174
+ mov r1, #0
+ str r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02244C10 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02244C00
+ add r0, r5, #0
+ bl MOD11_0224AD9C
+ cmp r0, #0
+ bne _02244C00
+ ldr r0, _02244C0C ; =0x0000216C
+ ldr r1, [r5, r0]
+ ldr r0, _02244C08 ; =0x801FDA49
+ tst r0, r1
+ bne _02244C00
+ mov r6, #1
+ b _02244C00
+_02244BD2:
+ add r0, r0, #4
+ ldr r2, [r5, r0]
+ cmp r2, #0
+ beq _02244C00
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _02244C24 ; =0x00002178
+ add r1, r6, #0
+ str r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02244C10 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244C00
+ mov r6, #1
+_02244C00:
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02244C04: .word 0x00002174
+_02244C08: .word 0x801FDA49
+_02244C0C: .word 0x0000216C
+_02244C10: .word 0x00002D8C
+_02244C14: .word 0x00003044
+_02244C18: .word 0x000003E5
+_02244C1C: .word 0x0000213C
+_02244C20: .word 0xFFBFFFFF
+_02244C24: .word 0x00002178
+
+ thumb_func_start MOD11_02244C28
+MOD11_02244C28: ; 0x02244C28
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r0, #0
+ mov r0, #0xff
+ add r4, r1, #0
+ add r5, r2, #0
+ str r0, [sp, #0xc]
+ cmp r3, #0
+ beq _02244C44
+ lsl r0, r3, #4
+ add r1, r4, r0
+ ldr r0, _02244F24 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ b _02244C46
+_02244C44:
+ ldr r0, [sp, #0x34]
+_02244C46:
+ cmp r0, #4
+ bne _02244CD6
+ add r0, r6, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ bl MOD11_02253A4C
+ ldr r1, _02244F28 ; =0x0000217E
+ mov r2, #0
+ strb r2, [r4, r1]
+ ldrb r1, [r4, r1]
+ ldr r2, [sp, #8]
+ cmp r1, r2
+ bge _02244CC4
+ mov r2, #1
+ add r5, r0, #0
+ and r5, r2
+_02244C72:
+ ldr r0, _02244F2C ; =0x000021EC
+ add r1, r4, r1
+ ldrb r7, [r1, r0]
+ mov r0, #0xc0
+ mul r0, r7
+ add r1, r4, r0
+ ldr r0, _02244F30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244CB2
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_0222FF7C
+ str r0, [sp]
+ cmp r5, #0
+ beq _02244C9E
+ bl MOD11_02253A4C
+ mov r1, #1
+ tst r0, r1
+ beq _02244CAE
+_02244C9E:
+ cmp r5, #0
+ bne _02244CB2
+ ldr r0, [sp]
+ bl MOD11_02253A4C
+ mov r1, #1
+ tst r0, r1
+ beq _02244CB2
+_02244CAE:
+ str r7, [sp, #0xc]
+ b _02244CC4
+_02244CB2:
+ ldr r0, _02244F28 ; =0x0000217E
+ ldrb r0, [r4, r0]
+ add r1, r0, #1
+ ldr r0, _02244F28 ; =0x0000217E
+ strb r1, [r4, r0]
+ ldrb r1, [r4, r0]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ blt _02244C72
+_02244CC4:
+ ldr r1, _02244F28 ; =0x0000217E
+ ldr r0, [sp, #8]
+ ldrb r2, [r4, r1]
+ cmp r2, r0
+ bne _02244CD0
+ b _02244F5C
+_02244CD0:
+ add r0, r2, #1
+ strb r0, [r4, r1]
+ b _02244F5C
+_02244CD6:
+ cmp r0, #8
+ bne _02244D26
+ add r0, r6, #0
+ bl MOD11_0222FF84
+ add r2, r0, #0
+ ldr r0, _02244F28 ; =0x0000217E
+ mov r1, #0
+ strb r1, [r4, r0]
+ ldrb r3, [r4, r0]
+ cmp r3, r2
+ bge _02244D18
+ ldr r7, _02244F30 ; =0x00002D8C
+_02244CF0:
+ ldr r1, _02244F2C ; =0x000021EC
+ add r6, r4, r3
+ ldrb r1, [r6, r1]
+ mov r6, #0xc0
+ mul r6, r1
+ add r6, r4, r6
+ ldr r6, [r6, r7]
+ cmp r6, #0
+ beq _02244D0A
+ cmp r1, r5
+ beq _02244D0A
+ str r1, [sp, #0xc]
+ b _02244D18
+_02244D0A:
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ ldr r1, _02244F28 ; =0x0000217E
+ ldrb r3, [r4, r1]
+ cmp r3, r2
+ blt _02244CF0
+_02244D18:
+ cmp r3, r2
+ beq _02244E02
+ ldr r0, _02244F28 ; =0x0000217E
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _02244F5C
+_02244D26:
+ mov r1, #2
+ lsl r1, r1, #8
+ cmp r0, r1
+ bne _02244D72
+ ldr r1, [sp, #0x30]
+ cmp r1, #1
+ bne _02244D72
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02244D6E
+ bl LCRandom
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ bne _02244D6E
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022302BC
+ mov r1, #0xc0
+ mul r1, r0
+ str r0, [sp, #0xc]
+ ldr r0, _02244F30 ; =0x00002D8C
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02244E02
+ str r5, [sp, #0xc]
+ b _02244F5C
+_02244D6E:
+ str r5, [sp, #0xc]
+ b _02244F5C
+_02244D72:
+ mov r1, #1
+ lsl r1, r1, #0xa
+ cmp r0, r1
+ bne _02244D8E
+ ldr r1, [sp, #0x30]
+ cmp r1, #1
+ bne _02244D8E
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_022482A4
+ str r0, [sp, #0xc]
+ b _02244F5C
+_02244D8E:
+ cmp r0, #0x80
+ bne _02244DA0
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_022482A4
+ str r0, [sp, #0xc]
+ b _02244F5C
+_02244DA0:
+ cmp r0, #0x10
+ beq _02244DB0
+ cmp r0, #0x20
+ beq _02244DB0
+ cmp r0, #1
+ beq _02244DB0
+ cmp r0, #0x40
+ bne _02244DB4
+_02244DB0:
+ str r5, [sp, #0xc]
+ b _02244F5C
+_02244DB4:
+ mov r1, #1
+ lsl r1, r1, #8
+ cmp r0, r1
+ bne _02244DD8
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02244DD4
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022302BC
+ str r0, [sp, #0xc]
+ b _02244F5C
+_02244DD4:
+ str r5, [sp, #0xc]
+ b _02244F5C
+_02244DD8:
+ lsl r1, r1, #1
+ cmp r0, r1
+ bne _02244E0C
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02244E08
+ lsl r0, r5, #4
+ add r1, r4, r0
+ ldr r0, _02244F34 ; =0x000021AC
+ ldr r0, [r1, r0]
+ mov r1, #0xc0
+ mul r1, r0
+ str r0, [sp, #0xc]
+ ldr r0, _02244F30 ; =0x00002D8C
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244E04
+_02244E02:
+ b _02244F5C
+_02244E04:
+ str r5, [sp, #0xc]
+ b _02244F5C
+_02244E08:
+ str r5, [sp, #0xc]
+ b _02244F5C
+_02244E0C:
+ cmp r0, #2
+ beq _02244E16
+ ldr r0, [sp, #0x30]
+ cmp r0, #1
+ bne _02244ED6
+_02244E16:
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ str r0, [sp, #0x10]
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ add r7, r0, #0
+ mov r1, #1
+ eor r7, r1
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, #0
+ bl MOD11_02230308
+ str r0, [sp, #0x14]
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, #2
+ bl MOD11_02230308
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x10]
+ mov r1, #2
+ tst r0, r1
+ beq _02244EBE
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r1, r4, r0
+ lsl r0, r7, #3
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02244E72
+ lsl r0, r0, #9
+ lsr r2, r0, #0x1e
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02244F30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244E72
+ str r2, [sp, #0xc]
+ b _02244F5C
+_02244E72:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ add r0, r4, r2
+ ldr r2, _02244F30 ; =0x00002D8C
+ ldr r0, [r0, r2]
+ cmp r0, #0
+ beq _02244EA0
+ ldr r3, [sp, #0x18]
+ mul r1, r3
+ add r1, r4, r1
+ ldr r1, [r1, r2]
+ cmp r1, #0
+ beq _02244EA0
+ bl LCRandom
+ lsl r0, r0, #0x1f
+ lsr r1, r0, #0x1d
+ add r0, sp, #0x14
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xc]
+ b _02244F5C
+_02244EA0:
+ cmp r0, #0
+ beq _02244EAA
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #0xc]
+ b _02244F5C
+_02244EAA:
+ ldr r2, [sp, #0x18]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02244F30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244F5C
+ str r2, [sp, #0xc]
+ b _02244F5C
+_02244EBE:
+ mov r0, #1
+ add r2, r5, #0
+ eor r2, r0
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02244F30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244F5C
+ str r2, [sp, #0xc]
+ b _02244F5C
+_02244ED6:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ mov r1, #1
+ eor r0, r1
+ str r0, [sp, #4]
+ lsl r0, r5, #4
+ add r1, r4, r0
+ ldr r0, _02244F34 ; =0x000021AC
+ ldr r7, [r1, r0]
+ add r0, r6, #0
+ bl MOD11_0222FF84
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, [sp, #4]
+ lsl r0, r0, #3
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02244F1A
+ lsl r0, r0, #9
+ lsr r0, r0, #0x1e
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02244F30 ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02244F1A
+ str r0, [sp, #0xc]
+ b _02244F5C
+_02244F1A:
+ mov r0, #0xc0
+ mul r0, r7
+ add r1, r4, r0
+ ldr r0, _02244F30 ; =0x00002D8C
+ b _02244F38
+ .align 2, 0
+_02244F24: .word 0x000003E6
+_02244F28: .word 0x0000217E
+_02244F2C: .word 0x000021EC
+_02244F30: .word 0x00002D8C
+_02244F34: .word 0x000021AC
+_02244F38:
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244F42
+ str r7, [sp, #0xc]
+ b _02244F5C
+_02244F42:
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_022482A4
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02244F64 ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02244F5C
+ str r0, [sp, #0xc]
+_02244F5C:
+ ldr r0, [sp, #0xc]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02244F64: .word 0x00002D8C
+
+ thumb_func_start MOD11_02244F68
+MOD11_02244F68: ; 0x02244F68
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x6c]
+ add r7, r2, #0
+ add r6, r3, #0
+ cmp r0, #0xff
+ beq _02244FC2
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ beq _02244FC2
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x68
+ beq _02244FC2
+ ldr r0, [sp, #4]
+ add r1, r7, #0
+ bl MOD11_02230270
+ add r2, r0, #0
+ mov r1, #1
+ mov r0, #0x71
+ eor r2, r1
+ lsl r0, r0, #2
+ add r1, r5, r0
+ lsl r0, r2, #3
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02244FC4
+ lsl r0, r0, #9
+ lsr r1, r0, #0x1e
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022450F8 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244FC4
+_02244FC2:
+ b _022450F4
+_02244FC4:
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r7, #0
+ add r3, r6, #0
+ bl MOD11_0224C8EC
+ str r0, [sp, #0xc]
+ cmp r0, #0
+ bne _02244FE0
+ lsl r0, r6, #4
+ add r1, r5, r0
+ ldr r0, _022450FC ; =0x000003E2
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0xc]
+_02244FE0:
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF84
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0xd
+ bne _02245070
+ lsl r0, r6, #4
+ add r1, r5, r0
+ ldr r0, _02245100 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ beq _02244FFE
+ cmp r0, #2
+ bne _02245070
+_02244FFE:
+ ldr r0, _02245104 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _02245070
+ mov r0, #0x1f
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #9
+ add r3, r7, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _02245070
+ ldr r0, [sp, #8]
+ mov r6, #0
+ cmp r0, #0
+ ble _02245050
+_02245024:
+ ldr r0, _02245108 ; =0x000021EC
+ add r1, r5, r6
+ ldrb r4, [r1, r0]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x1f
+ bne _02245048
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022450F8 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02245048
+ cmp r7, r4
+ bne _02245050
+_02245048:
+ ldr r0, [sp, #8]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _02245024
+_02245050:
+ ldr r0, [r5, #0x6c]
+ cmp r4, r0
+ beq _022450F4
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r3, r5, r0
+ mov r0, #0x1c
+ add r2, r4, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ mov r0, #2
+ orr r0, r1
+ str r0, [r3, r2]
+ add sp, #0x10
+ str r4, [r5, #0x6c]
+ pop {r3, r4, r5, r6, r7, pc}
+_02245070:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0xb
+ bne _022450F4
+ lsl r0, r6, #4
+ add r1, r5, r0
+ ldr r0, _02245100 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ beq _02245086
+ cmp r0, #2
+ bne _022450F4
+_02245086:
+ ldr r0, _02245104 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _022450F4
+ mov r0, #0x72
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #9
+ add r3, r7, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _022450F4
+ ldr r0, [sp, #8]
+ mov r6, #0
+ cmp r0, #0
+ ble _022450D8
+_022450AC:
+ ldr r0, _02245108 ; =0x000021EC
+ add r1, r5, r6
+ ldrb r4, [r1, r0]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x72
+ bne _022450D0
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022450F8 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022450D0
+ cmp r7, r4
+ bne _022450D8
+_022450D0:
+ ldr r0, [sp, #8]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _022450AC
+_022450D8:
+ ldr r0, [r5, #0x6c]
+ cmp r4, r0
+ beq _022450F4
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r3, r5, r0
+ mov r0, #0x1c
+ add r2, r4, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ mov r0, #4
+ orr r0, r1
+ str r0, [r3, r2]
+ str r4, [r5, #0x6c]
+_022450F4:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022450F8: .word 0x00002D8C
+_022450FC: .word 0x000003E2
+_02245100: .word 0x000003E6
+_02245104: .word 0x0000213C
+_02245108: .word 0x000021EC
+
+ thumb_func_start MOD11_0224510C
+MOD11_0224510C: ; 0x0224510C
+ push {r3, r4, r5, lr}
+ ldr r0, _02245188 ; =0x0000216C
+ add r4, r1, #0
+ ldr r1, [r4, r0]
+ ldr r0, _0224518C ; =0x801FDA49
+ mov r2, #0
+ tst r0, r1
+ bne _0224514A
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r3, [r4, #0x6c]
+ mov r0, #0x1c
+ mul r0, r3
+ ldr r3, [r1, r0]
+ lsl r5, r3, #0x1e
+ lsr r5, r5, #0x1f
+ beq _0224514A
+ mov r2, #2
+ bic r3, r2
+ str r3, [r1, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xb4
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r2, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0224514A:
+ ldr r0, _02245188 ; =0x0000216C
+ ldr r1, [r4, r0]
+ ldr r0, _0224518C ; =0x801FDA49
+ tst r0, r1
+ bne _02245182
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r3, [r4, #0x6c]
+ mov r0, #0x1c
+ mul r0, r3
+ ldr r3, [r1, r0]
+ lsl r5, r3, #0x1d
+ lsr r5, r5, #0x1f
+ beq _02245182
+ mov r2, #4
+ bic r3, r2
+ str r3, [r1, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xb4
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r2, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_02245182:
+ add r0, r2, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02245188: .word 0x0000216C
+_0224518C: .word 0x801FDA49
+
+ thumb_func_start MOD11_02245190
+MOD11_02245190: ; 0x02245190
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r4, r2, #0
+ mov r0, #0xc0
+ add r5, r1, #0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022451BC ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ bne _022451B0
+ lsl r1, r4, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl MOD11_0224C83C
+_022451B0:
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_02256150
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022451BC: .word 0x00002DB8
+
+ thumb_func_start MOD11_022451C0
+MOD11_022451C0: ; 0x022451C0
+ push {r4, r5}
+ ldr r0, _022451E8 ; =0x00002DB0
+ add r4, r2, #0
+ add r5, r1, r0
+ mov r0, #0xc0
+ mul r4, r0
+ mov r0, #1
+ ldr r3, [r5, r4]
+ lsl r0, r0, #0xc
+ orr r0, r3
+ str r0, [r5, r4]
+ ldr r0, _022451EC ; =0x00003044
+ lsl r2, r2, #2
+ ldr r3, [r1, r0]
+ add r1, r1, r2
+ add r0, #8
+ str r3, [r1, r0]
+ pop {r4, r5}
+ bx lr
+ nop
+_022451E8: .word 0x00002DB0
+_022451EC: .word 0x00003044
+
+ thumb_func_start MOD11_022451F0
+MOD11_022451F0: ; 0x022451F0
+ push {r4, r5}
+ ldr r4, _02245234 ; =0x00002DB0
+ add r3, r2, #0
+ mov r0, #0xc0
+ mul r3, r0
+ add r0, r1, r4
+ ldr r5, [r0, r3]
+ ldr r2, _02245238 ; =0xFFFFEFFF
+ and r2, r5
+ str r2, [r0, r3]
+ ldr r5, [r0, r3]
+ ldr r2, _0224523C ; =0xFFFFFCFF
+ and r2, r5
+ str r2, [r0, r3]
+ add r0, r4, #0
+ add r0, #0x10
+ add r5, r1, r0
+ ldr r2, [r5, r3]
+ ldr r0, _02245240 ; =0xDFFBFF3F
+ add r4, #0x18
+ and r0, r2
+ str r0, [r5, r3]
+ add r2, r1, r4
+ ldr r1, [r2, r3]
+ ldr r0, _02245244 ; =0xFFFC7FFF
+ and r0, r1
+ str r0, [r2, r3]
+ ldr r1, [r2, r3]
+ ldr r0, _02245248 ; =0xFFE3FFFF
+ and r0, r1
+ str r0, [r2, r3]
+ pop {r4, r5}
+ bx lr
+ nop
+_02245234: .word 0x00002DB0
+_02245238: .word 0xFFFFEFFF
+_0224523C: .word 0xFFFFFCFF
+_02245240: .word 0xDFFBFF3F
+_02245244: .word 0xFFFC7FFF
+_02245248: .word 0xFFE3FFFF
+
+ thumb_func_start MOD11_0224524C
+MOD11_0224524C: ; 0x0224524C
+ mov r2, #0xc0
+ mul r2, r1
+ add r1, r0, r2
+ ldr r0, _02245298 ; =0x00002DAC
+ ldr r0, [r1, r0]
+ mov r1, #7
+ tst r1, r0
+ beq _02245260
+ mov r0, #1
+ bx lr
+_02245260:
+ mov r1, #8
+ tst r1, r0
+ beq _0224526A
+ mov r0, #2
+ bx lr
+_0224526A:
+ mov r1, #0x10
+ tst r1, r0
+ beq _02245274
+ mov r0, #3
+ bx lr
+_02245274:
+ mov r1, #0x20
+ tst r1, r0
+ beq _0224527E
+ mov r0, #4
+ bx lr
+_0224527E:
+ mov r1, #0x40
+ tst r1, r0
+ beq _02245288
+ mov r0, #5
+ bx lr
+_02245288:
+ mov r1, #0x80
+ tst r0, r1
+ beq _02245292
+ mov r0, #2
+ bx lr
+_02245292:
+ mov r0, #0
+ bx lr
+ nop
+_02245298: .word 0x00002DAC
+
+ thumb_func_start MOD11_0224529C
+MOD11_0224529C: ; 0x0224529C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ add r7, r1, #0
+ bl MOD11_0222FF74
+ mov r1, #0x84
+ tst r1, r0
+ beq _022452B4
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_022452B4:
+ mov r1, #1
+ add r2, r0, #0
+ tst r2, r1
+ bne _022452C2
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_022452C2:
+ mov r2, #2
+ tst r0, r2
+ beq _022452CE
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_022452CE:
+ ldr r0, [sp]
+ bl MOD11_02230140
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #4]
+_022452DA:
+ ldr r0, [sp, #4]
+ cmp r0, #4
+ bls _022452E2
+ b _02245478
+_022452E2:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022452EE: ; jump table
+ .short _022452F8 - _022452EE - 2 ; case 0
+ .short _0224533C - _022452EE - 2 ; case 1
+ .short _02245384 - _022452EE - 2 ; case 2
+ .short _022453F8 - _022452EE - 2 ; case 3
+ .short _02245478 - _022452EE - 2 ; case 4
+_022452F8:
+ ldr r0, _02245488 ; =0x00002E7C
+ ldrb r0, [r7, r0]
+ cmp r0, #1
+ bne _02245334
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r1, [r7, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _02245334
+ ldr r0, [sp, #8]
+ mov r1, #0xd
+ mov r2, #5
+ bl FUN_0206ACD4
+ cmp r0, #0
+ beq _02245334
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r2, [r7, r1]
+ mov r0, #0x20
+ orr r0, r2
+ str r0, [r7, r1]
+ mov r0, #0x13
+ mov r1, #0xd
+ lsl r0, r0, #4
+ str r1, [r7, r0]
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02245334:
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ b _02245478
+_0224533C:
+ ldr r1, _0224548C ; =0x00002E7D
+ mov r0, #2
+ ldrb r2, [r7, r1]
+ tst r0, r2
+ bne _0224537C
+ add r0, r1, #0
+ sub r0, #0x31
+ sub r1, #0x2d
+ ldr r2, [r7, r0]
+ ldr r0, [r7, r1]
+ lsr r0, r0, #1
+ cmp r2, r0
+ bhi _0224537C
+ ldr r0, [sp, #8]
+ mov r1, #0xe
+ mov r2, #5
+ bl FUN_0206ACD4
+ cmp r0, #0
+ beq _0224537C
+ ldr r1, _0224548C ; =0x00002E7D
+ mov r0, #2
+ ldrb r2, [r7, r1]
+ add sp, #0xc
+ orr r0, r2
+ strb r0, [r7, r1]
+ mov r0, #0x13
+ mov r1, #0xe
+ lsl r0, r0, #4
+ str r1, [r7, r0]
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_0224537C:
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ b _02245478
+_02245384:
+ ldr r0, _0224548C ; =0x00002E7D
+ ldrb r1, [r7, r0]
+ mov r0, #3
+ tst r0, r1
+ bne _022453F0
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD11_0222FF88
+ mov r6, #0
+ add r5, r0, #0
+ add r4, r6, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _022453C6
+_022453A4:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022453BA
+ add r6, r6, #1
+_022453BA:
+ add r0, r5, #0
+ add r4, r4, #1
+ bl GetPartyCount
+ cmp r4, r0
+ blt _022453A4
+_022453C6:
+ cmp r6, #1
+ bne _022453F0
+ ldr r0, [sp, #8]
+ mov r1, #0xf
+ mov r2, #5
+ bl FUN_0206ACD4
+ cmp r0, #0
+ beq _022453F0
+ ldr r1, _0224548C ; =0x00002E7D
+ mov r0, #3
+ ldrb r2, [r7, r1]
+ add sp, #0xc
+ orr r0, r2
+ strb r0, [r7, r1]
+ mov r0, #0x13
+ mov r1, #0xf
+ lsl r0, r0, #4
+ str r1, [r7, r0]
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_022453F0:
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ b _02245478
+_022453F8:
+ ldr r0, _0224548C ; =0x00002E7D
+ ldrb r1, [r7, r0]
+ mov r0, #4
+ tst r0, r1
+ bne _02245472
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD11_0222FF88
+ mov r6, #0
+ add r5, r0, #0
+ add r4, r6, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0224543A
+_02245418:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0224542E
+ add r6, r6, #1
+_0224542E:
+ add r0, r5, #0
+ add r4, r4, #1
+ bl GetPartyCount
+ cmp r4, r0
+ blt _02245418
+_0224543A:
+ cmp r6, #1
+ bne _02245472
+ ldr r0, _02245490 ; =0x00002E4C
+ ldr r1, [r7, r0]
+ add r0, r0, #4
+ ldr r0, [r7, r0]
+ lsr r0, r0, #1
+ cmp r1, r0
+ bhi _02245472
+ ldr r0, [sp, #8]
+ mov r1, #0x10
+ mov r2, #5
+ bl FUN_0206ACD4
+ cmp r0, #0
+ beq _02245472
+ ldr r1, _0224548C ; =0x00002E7D
+ mov r0, #4
+ ldrb r2, [r7, r1]
+ add sp, #0xc
+ orr r0, r2
+ strb r0, [r7, r1]
+ mov r0, #0x13
+ mov r1, #0x10
+ lsl r0, r0, #4
+ str r1, [r7, r0]
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02245472:
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+_02245478:
+ ldr r0, [sp, #4]
+ cmp r0, #4
+ beq _02245480
+ b _022452DA
+_02245480:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02245488: .word 0x00002E7C
+_0224548C: .word 0x00002E7D
+_02245490: .word 0x00002E4C
+
+ thumb_func_start MOD11_02245494
+MOD11_02245494: ; 0x02245494
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r1, _02245574 ; =0x00002144
+ add r5, r0, #0
+ mov r4, #0
+ add r0, r1, #0
+ str r4, [r5, r1]
+ mov r2, #1
+ add r0, #0xc
+ str r2, [r5, r0]
+ add r0, r1, #0
+ add r0, #8
+ str r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x10
+ str r4, [r5, r0]
+ add r0, r1, #0
+ mov r2, #0xa
+ add r0, #0x14
+ str r2, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x1c
+ str r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x20
+ str r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x28
+ str r4, [r5, r0]
+ mov r0, #0xff
+ add r2, r1, #0
+ str r0, [r5, #0x74]
+ add r2, #0x2c
+ str r4, [r5, r2]
+ add r2, r1, #0
+ add r2, #0x30
+ str r4, [r5, r2]
+ add r2, r1, #0
+ add r2, #0x34
+ str r4, [r5, r2]
+ add r2, r5, #0
+ add r2, #0x88
+ str r4, [r2]
+ add r2, r5, #0
+ add r2, #0x8c
+ str r4, [r2]
+ add r2, r5, #0
+ add r2, #0x94
+ str r0, [r2]
+ add r0, r1, #0
+ add r0, #0x38
+ strb r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x39
+ strb r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x3a
+ strb r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x3c
+ str r4, [r5, r0]
+ add r0, r1, #0
+ str r4, [r5, #0x38]
+ add r0, #0x40
+ str r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x44
+ str r4, [r5, r0]
+ str r4, [r5, #0x10]
+ str r4, [r5, #0x18]
+ str r4, [r5, #0x20]
+ str r4, [r5, #0x28]
+ str r4, [r5, #0x30]
+ str r4, [r5, #0x3c]
+ str r4, [r5, #0x40]
+ str r4, [r5, #0x48]
+ str r4, [r5, #0x4c]
+ str r4, [r5, #0x50]
+ add r0, r1, #0
+ str r4, [r5, #0x54]
+ sub r0, #8
+ ldr r2, [r5, r0]
+ ldr r0, _02245578 ; =0xFF880000
+ mov r7, #6
+ and r2, r0
+ add r0, r1, #0
+ sub r0, #8
+ str r2, [r5, r0]
+ sub r0, r1, #4
+ ldr r2, [r5, r0]
+ ldr r0, _0224557C ; =0xFFFFFEA1
+ and r2, r0
+ sub r0, r1, #4
+ str r2, [r5, r0]
+ ldr r0, _02245580 ; =0x00003120
+ strb r4, [r5, r0]
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r6, r5, r0
+_02245558:
+ mov r0, #0
+ add r1, r6, #0
+ mov r2, #0x1c
+ bl MIi_CpuClearFast
+ add r1, r5, r4
+ ldr r0, _02245584 ; =0x000021A4
+ add r4, r4, #1
+ add r6, #0x1c
+ strb r7, [r1, r0]
+ cmp r4, #4
+ blt _02245558
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02245574: .word 0x00002144
+_02245578: .word 0xFF880000
+_0224557C: .word 0xFFFFFEA1
+_02245580: .word 0x00003120
+_02245584: .word 0x000021A4
+
+ thumb_func_start MOD11_02245588
+MOD11_02245588: ; 0x02245588
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ str r0, [sp]
+ mov r4, #0
+ add r5, r6, #0
+ mov r7, #0xff
+_02245594:
+ ldr r0, _022455F0 ; =0x0000306C
+ add r2, r6, r4
+ strh r7, [r5, r0]
+ ldr r0, _022455F4 ; =0x000021A0
+ mov r1, #6
+ strb r1, [r2, r0]
+ bl LCRandom
+ ldr r1, _022455F8 ; =0x0000310C
+ add r4, r4, #1
+ strh r0, [r5, r1]
+ add r5, r5, #2
+ cmp r4, #4
+ blt _02245594
+ ldr r0, _022455FC ; =0x00002168
+ mov r1, #1
+ str r1, [r6, r0]
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ str r1, [r6, r0]
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _022455E4
+ add r0, r1, #0
+ bl MaskOfFlagNo
+ ldr r1, _02245600 ; =0x00003108
+ ldrb r2, [r6, r1]
+ orr r0, r2
+ strb r0, [r6, r1]
+ mov r0, #3
+ bl MaskOfFlagNo
+ ldr r1, _02245600 ; =0x00003108
+ ldrb r2, [r6, r1]
+ orr r0, r2
+ strb r0, [r6, r1]
+_022455E4:
+ ldr r0, _02245604 ; =0x0000311C
+ mov r1, #6
+ strb r1, [r6, r0]
+ add r0, r0, #1
+ strb r1, [r6, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022455F0: .word 0x0000306C
+_022455F4: .word 0x000021A0
+_022455F8: .word 0x0000310C
+_022455FC: .word 0x00002168
+_02245600: .word 0x00003108
+_02245604: .word 0x0000311C
+
+ thumb_func_start MOD11_02245608
+MOD11_02245608: ; 0x02245608
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ str r1, [sp, #4]
+ str r0, [sp]
+ ldr r1, _0224594C ; =0x00002DC8
+ ldr r0, [sp, #4]
+ add r4, r2, #0
+ add r1, r0, r1
+ mov r0, #0xc0
+ mul r0, r4
+ add r5, r1, r0
+ str r5, [sp, #0x14]
+ add r3, sp, #0x20
+ mov r2, #7
+_02245624:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02245624
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ ldr r1, [sp, #4]
+ lsl r2, r4, #4
+ add r1, r1, r2
+ ldr r2, _02245950 ; =0x000021A8
+ mov r0, #0x27
+ str r0, [r1, r2]
+ ldr r1, [sp, #4]
+ sub r2, #0x6c
+ ldr r1, [r1, r2]
+ add r0, #0xd9
+ tst r0, r1
+ bne _022456E2
+ mov r5, #0
+ cmp r6, #0
+ ble _022456BE
+ ldr r1, [sp, #4]
+ ldr r2, _02245954 ; =0x00002DCC
+ add r0, r1, #0
+ add r2, r0, r2
+ mov r0, #0x18
+ mov ip, r0
+ mov r7, #3
+_02245666:
+ ldr r0, _02245958 ; =0x00002DB0
+ ldr r3, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ tst r0, r3
+ beq _02245688
+ ldr r0, [r2]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1e
+ cmp r4, r0
+ bne _02245688
+ ldr r0, _02245958 ; =0x00002DB0
+ ldr r3, [r1, r0]
+ ldr r0, _0224595C ; =0xFBFFFFFF
+ and r3, r0
+ ldr r0, _02245958 ; =0x00002DB0
+ str r3, [r1, r0]
+_02245688:
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r3, [r1, r0]
+ mov r0, #0x18
+ tst r0, r3
+ beq _022456B4
+ ldr r0, [r2]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ cmp r4, r0
+ bne _022456B4
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r0, [r1, r0]
+ mov r3, ip
+ bic r0, r3
+ mov r3, #0xb7
+ lsl r3, r3, #6
+ str r0, [r1, r3]
+ ldr r0, [r2]
+ bic r0, r7
+ str r0, [r2]
+_022456B4:
+ add r5, r5, #1
+ add r1, #0xc0
+ add r2, #0xc0
+ cmp r5, r6
+ blt _02245666
+_022456BE:
+ mov r0, #0xc0
+ mul r0, r4
+ str r0, [sp, #0xc]
+ ldr r2, [sp, #4]
+ ldr r1, [sp, #0xc]
+ mov r0, #0
+ add r1, r2, r1
+ ldr r2, _02245958 ; =0x00002DB0
+ str r0, [r1, r2]
+ ldr r1, [sp, #4]
+ add r2, #0x10
+ add r2, r1, r2
+ ldr r1, [sp, #0xc]
+ add r1, r2, r1
+ str r1, [sp, #0x10]
+ ldr r1, [sp, #0xc]
+ str r0, [r2, r1]
+ b _0224575A
+_022456E2:
+ mov r0, #0xc0
+ mul r0, r4
+ str r0, [sp, #0xc]
+ ldr r1, _02245958 ; =0x00002DB0
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0xc]
+ add r0, r0, r1
+ ldr r3, [r0, r2]
+ ldr r2, _02245960 ; =0x15100007
+ and r3, r2
+ ldr r2, [sp, #0xc]
+ str r3, [r0, r2]
+ add r2, r1, #0
+ ldr r0, [sp, #4]
+ add r2, #0x10
+ add r0, r0, r2
+ ldr r2, [sp, #0xc]
+ add r2, r0, r2
+ str r2, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ ldr r3, [r0, r2]
+ ldr r2, _02245964 ; =0x0FA3843F
+ and r3, r2
+ ldr r2, [sp, #0xc]
+ str r3, [r0, r2]
+ mov r2, #0
+ cmp r6, #0
+ ble _0224575A
+ ldr r0, [sp, #4]
+ add r1, #0x1c
+ add r3, r0, #0
+ add r1, r3, r1
+ mov r7, #0x18
+_02245724:
+ mov r3, #0xb7
+ lsl r3, r3, #6
+ ldr r5, [r0, r3]
+ mov r3, #0x18
+ tst r3, r5
+ beq _02245750
+ ldr r3, [r1]
+ lsl r3, r3, #0x1e
+ lsr r3, r3, #0x1e
+ cmp r4, r3
+ bne _02245750
+ mov r3, #0xb7
+ lsl r3, r3, #6
+ ldr r5, [r0, r3]
+ bic r5, r7
+ str r5, [r0, r3]
+ ldr r5, [r0, r3]
+ mov r3, #0x10
+ orr r5, r3
+ mov r3, #0xb7
+ lsl r3, r3, #6
+ str r5, [r0, r3]
+_02245750:
+ add r2, r2, #1
+ add r0, #0xc0
+ add r1, #0xc0
+ cmp r2, r6
+ blt _02245724
+_0224575A:
+ mov r0, #0
+ str r0, [sp, #8]
+ cmp r6, #0
+ ble _022457C2
+ ldr r5, [sp, #4]
+ ldr r1, _02245954 ; =0x00002DCC
+ add r0, r5, #0
+ add r7, r0, r1
+_0224576A:
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldr r1, _02245958 ; =0x00002DB0
+ lsl r0, r0, #0x10
+ ldr r1, [r5, r1]
+ tst r0, r1
+ beq _02245792
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldr r1, _02245958 ; =0x00002DB0
+ lsl r2, r0, #0x10
+ mov r0, #0
+ mvn r0, r0
+ ldr r1, [r5, r1]
+ eor r0, r2
+ and r1, r0
+ ldr r0, _02245958 ; =0x00002DB0
+ str r1, [r5, r0]
+_02245792:
+ ldr r0, _02245958 ; =0x00002DB0
+ ldr r1, [r5, r0]
+ mov r0, #0xe
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _022457B4
+ ldr r0, [r7]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ cmp r4, r0
+ bne _022457B4
+ ldr r0, _02245958 ; =0x00002DB0
+ ldr r1, [r5, r0]
+ ldr r0, _02245968 ; =0xFFFF1FFF
+ and r1, r0
+ ldr r0, _02245958 ; =0x00002DB0
+ str r1, [r5, r0]
+_022457B4:
+ ldr r0, [sp, #8]
+ add r5, #0xc0
+ add r0, r0, #1
+ add r7, #0xc0
+ str r0, [sp, #8]
+ cmp r0, r6
+ blt _0224576A
+_022457C2:
+ mov r2, #0
+ add r1, r2, #0
+_022457C6:
+ ldr r0, [sp, #0x14]
+ strb r1, [r0, r2]
+ add r2, r2, #1
+ cmp r2, #0x38
+ blo _022457C6
+ ldr r1, _0224596C ; =0x0000213C
+ ldr r0, [sp, #4]
+ ldr r1, [r0, r1]
+ mov r0, #1
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _0224587A
+ ldr r1, [sp, #4]
+ ldr r0, [sp, #0xc]
+ ldr r2, [sp, #0x38]
+ add r0, r1, r0
+ ldr r1, _02245970 ; =0x00002DE0
+ str r2, [r0, r1]
+ ldr r0, [sp, #4]
+ sub r1, #0x14
+ add r0, r0, r1
+ ldr r1, [sp, #0xc]
+ mov r2, #3
+ ldr r1, [r0, r1]
+ bic r1, r2
+ ldr r2, [sp, #0x24]
+ lsl r2, r2, #0x1e
+ lsr r3, r2, #0x1e
+ mov r2, #3
+ and r2, r3
+ orr r2, r1
+ ldr r1, [sp, #0xc]
+ str r2, [r0, r1]
+ ldr r3, [sp, #0x20]
+ ldr r1, [sp, #0x14]
+ lsl r3, r3, #0x11
+ lsr r3, r3, #0x1e
+ lsl r3, r3, #0x1e
+ ldr r1, [r1]
+ ldr r2, _02245974 ; =0xFFFF9FFF
+ lsr r3, r3, #0x11
+ and r1, r2
+ orr r3, r1
+ ldr r1, [sp, #0x14]
+ str r3, [r1]
+ ldr r1, [sp, #0xc]
+ ldr r3, [r0, r1]
+ asr r1, r2, #5
+ ldr r2, [sp, #0x24]
+ and r1, r3
+ lsl r2, r2, #0x16
+ lsr r2, r2, #0x1e
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x16
+ orr r2, r1
+ ldr r1, [sp, #0xc]
+ str r2, [r0, r1]
+ ldr r2, [r0, r1]
+ ldr r1, _02245968 ; =0xFFFF1FFF
+ and r1, r2
+ ldr r2, [sp, #0x24]
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x1d
+ lsl r2, r2, #0x1d
+ lsr r2, r2, #0x10
+ orr r2, r1
+ ldr r1, [sp, #0xc]
+ str r2, [r0, r1]
+ ldr r3, [sp, #0x24]
+ ldr r1, [r0, r1]
+ lsl r3, r3, #0xa
+ ldr r2, _02245978 ; =0xFFC7FFFF
+ lsr r3, r3, #0x1d
+ lsl r3, r3, #0x1d
+ and r1, r2
+ lsr r3, r3, #0xa
+ orr r3, r1
+ ldr r1, [sp, #0xc]
+ str r3, [r0, r1]
+ ldr r3, [r0, r1]
+ asr r1, r2, #3
+ ldr r2, [sp, #0x24]
+ and r1, r3
+ lsl r2, r2, #0xd
+ lsr r2, r2, #0x1d
+ lsl r2, r2, #0x1d
+ lsr r2, r2, #0xd
+ orr r2, r1
+ ldr r1, [sp, #0xc]
+ str r2, [r0, r1]
+_0224587A:
+ mov r0, #0xc0
+ add r3, r0, #0
+ ldr r2, [sp, #4]
+ add r3, #0x90
+ ldr r2, [r2, r3]
+ add r1, r4, #0
+ ldr r3, [sp, #4]
+ mul r1, r0
+ add r5, r0, #0
+ add r1, r3, r1
+ ldr r3, _0224597C ; =0x00002DD4
+ add r2, r2, #1
+ str r2, [r1, r3]
+ ldr r2, [sp, #4]
+ add r5, #0x90
+ ldr r2, [r2, r5]
+ add r0, #0x90
+ add r5, r2, #1
+ add r2, r3, #4
+ str r5, [r1, r2]
+ ldr r1, [sp, #0x14]
+ lsl r7, r4, #1
+ ldr r2, [r1]
+ ldr r1, _02245980 ; =0xBFFFFFFF
+ mov r5, #0
+ and r1, r2
+ ldr r2, [sp, #4]
+ ldr r0, [r2, r0]
+ add r0, r0, #1
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #1
+ orr r1, r0
+ ldr r0, [sp, #0x14]
+ str r1, [r0]
+ add r0, r2, #0
+ ldr r1, _02245984 ; =0x0000305C
+ add r3, r0, r7
+ add r0, r1, #0
+ strh r5, [r3, r1]
+ add r0, #8
+ strh r5, [r3, r0]
+ add r0, r1, #0
+ mov r2, #0xff
+ add r0, #0x10
+ strh r2, [r3, r0]
+ add r0, r1, #0
+ add r0, #0x18
+ strh r5, [r3, r0]
+ add r0, r1, #0
+ add r0, #0x20
+ strh r5, [r3, r0]
+ add r0, r1, #0
+ add r0, #0x28
+ strh r5, [r3, r0]
+ ldr r0, [sp, #4]
+ lsl r2, r4, #3
+ add r0, r0, r2
+ add r2, r1, #0
+ add r2, #0x30
+ strh r5, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x32
+ strh r5, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x34
+ strh r5, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x36
+ strh r5, [r0, r2]
+ add r0, r1, #0
+ add r0, #0x50
+ strh r5, [r3, r0]
+ add r0, r1, #0
+ add r0, #0x68
+ strh r5, [r3, r0]
+ add r0, r1, #0
+ add r0, #0x70
+ strh r5, [r3, r0]
+ add r0, r1, #0
+ add r0, #0x78
+ strh r5, [r3, r0]
+ add r1, #0x80
+ add r0, r4, #0
+ strh r5, [r3, r1]
+ bl MaskOfFlagNo
+ mov r1, #6
+ lsl r3, r0, #8
+ sub r0, r5, #1
+ ldr r2, [sp, #4]
+ lsl r1, r1, #6
+ ldr r2, [r2, r1]
+ eor r0, r3
+ and r2, r0
+ ldr r0, [sp, #4]
+ str r2, [r0, r1]
+ ldr r0, [sp, #0x10]
+ ldr r1, [r0]
+ mov r0, #2
+ lsl r0, r0, #0x16
+ tst r0, r1
+ beq _022459A2
+ ldr r0, _02245988 ; =0x00002D42
+ b _0224598C
+ nop
+_0224594C: .word 0x00002DC8
+_02245950: .word 0x000021A8
+_02245954: .word 0x00002DCC
+_02245958: .word 0x00002DB0
+_0224595C: .word 0xFBFFFFFF
+_02245960: .word 0x15100007
+_02245964: .word 0x0FA3843F
+_02245968: .word 0xFFFF1FFF
+_0224596C: .word 0x0000213C
+_02245970: .word 0x00002DE0
+_02245974: .word 0xFFFF9FFF
+_02245978: .word 0xFFC7FFFF
+_0224597C: .word 0x00002DD4
+_02245980: .word 0xBFFFFFFF
+_02245984: .word 0x0000305C
+_02245988: .word 0x00002D42
+_0224598C:
+ ldr r1, [sp, #4]
+ add r5, r1, r0
+ ldr r1, [sp, #0xc]
+ ldrh r3, [r5, r1]
+ add r1, r0, #2
+ ldr r0, [sp, #4]
+ add r2, r0, r1
+ ldr r0, [sp, #0xc]
+ ldrh r1, [r2, r0]
+ strh r1, [r5, r0]
+ strh r3, [r2, r0]
+_022459A2:
+ mov r5, #0
+ cmp r6, #0
+ ble _022459E6
+ ldr r0, [sp, #4]
+ str r0, [sp, #0x18]
+ add r7, r0, r7
+_022459AE:
+ cmp r5, r4
+ beq _022459D2
+ ldr r0, [sp]
+ add r1, r5, #0
+ bl MOD11_02230270
+ str r0, [sp, #0x1c]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02230270
+ ldr r1, [sp, #0x1c]
+ cmp r1, r0
+ beq _022459D2
+ ldr r1, [sp, #0x18]
+ ldr r0, _02245A08 ; =0x00003084
+ mov r2, #0
+ strh r2, [r1, r0]
+_022459D2:
+ ldr r0, _02245A0C ; =0x0000308C
+ mov r1, #0
+ strh r1, [r7, r0]
+ ldr r0, [sp, #0x18]
+ add r5, r5, #1
+ add r0, r0, #2
+ str r0, [sp, #0x18]
+ add r7, #8
+ cmp r5, r6
+ blt _022459AE
+_022459E6:
+ lsl r1, r4, #0x18
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x18
+ bl MOD11_0224C818
+ lsl r1, r4, #0x18
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x18
+ bl MOD11_0224C830
+ lsl r1, r4, #0x18
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x18
+ bl MOD11_0224C83C
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02245A08: .word 0x00003084
+_02245A0C: .word 0x0000308C
+
+ thumb_func_start MOD11_02245A10
+MOD11_02245A10: ; 0x02245A10
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r1, [sp, #4]
+ str r0, [sp]
+ add r5, r2, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #0xc]
+ mov r0, #0xc0
+ mul r0, r5
+ ldr r1, [sp, #4]
+ str r0, [sp, #8]
+ add r3, r1, r0
+ ldr r0, _02245C34 ; =0x00002D58
+ mov r2, #0
+ mov r1, #6
+_02245A30:
+ add r2, r2, #1
+ strb r1, [r3, r0]
+ add r3, r3, #1
+ cmp r2, #8
+ blt _02245A30
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ ldr r0, [sp, #4]
+ mov r7, #0
+ add r2, r0, r1
+ ldr r1, _02245C38 ; =0x00002DB0
+ add r0, r1, #0
+ str r7, [r2, r1]
+ add r0, #0x10
+ str r7, [r2, r0]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ ble _02245AD6
+ ldr r4, [sp, #4]
+ add r1, #0x1c
+ add r0, r4, #0
+ add r6, r0, r1
+_02245A5E:
+ ldr r0, _02245C38 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ tst r0, r1
+ beq _02245A80
+ ldr r0, [r6]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1e
+ cmp r5, r0
+ bne _02245A80
+ ldr r0, _02245C38 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ ldr r0, _02245C3C ; =0xFBFFFFFF
+ and r1, r0
+ ldr r0, _02245C38 ; =0x00002DB0
+ str r1, [r4, r0]
+_02245A80:
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ ldr r1, _02245C38 ; =0x00002DB0
+ lsl r0, r0, #0x10
+ ldr r1, [r4, r1]
+ tst r0, r1
+ beq _02245AA8
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ ldr r1, _02245C38 ; =0x00002DB0
+ lsl r2, r0, #0x10
+ mov r0, #0
+ mvn r0, r0
+ ldr r1, [r4, r1]
+ eor r0, r2
+ and r1, r0
+ ldr r0, _02245C38 ; =0x00002DB0
+ str r1, [r4, r0]
+_02245AA8:
+ ldr r0, _02245C38 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ mov r0, #0xe
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02245ACA
+ ldr r0, [r6]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ cmp r5, r0
+ bne _02245ACA
+ ldr r0, _02245C38 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ ldr r0, _02245C40 ; =0xFFFF1FFF
+ and r1, r0
+ ldr r0, _02245C38 ; =0x00002DB0
+ str r1, [r4, r0]
+_02245ACA:
+ ldr r0, [sp, #0xc]
+ add r7, r7, #1
+ add r4, #0xc0
+ add r6, #0xc0
+ cmp r7, r0
+ blt _02245A5E
+_02245AD6:
+ ldr r1, _02245C44 ; =0x00002DC8
+ ldr r0, [sp, #4]
+ add r1, r0, r1
+ ldr r0, [sp, #8]
+ add r6, r1, r0
+ mov r1, #0
+ add r0, r1, #0
+_02245AE4:
+ strb r0, [r6, r1]
+ add r1, r1, #1
+ cmp r1, #0x38
+ blo _02245AE4
+ mov r2, #0x75
+ ldr r1, [sp, #4]
+ lsl r2, r2, #2
+ add r2, r1, r2
+ lsl r1, r5, #6
+ add r1, r2, r1
+ mov r4, #0
+_02245AFA:
+ strb r4, [r1, r0]
+ add r0, r0, #1
+ cmp r0, #0x40
+ blo _02245AFA
+ mov r2, #0xc0
+ add r3, r2, #0
+ ldr r0, [sp, #4]
+ add r3, #0x90
+ ldr r0, [r0, r3]
+ add r1, r5, #0
+ ldr r3, [sp, #4]
+ mul r1, r2
+ add r3, r3, r1
+ add r1, r2, #0
+ ldr r7, _02245C48 ; =0x00002DD4
+ add r0, r0, #1
+ str r0, [r3, r7]
+ ldr r0, [sp, #4]
+ add r1, #0x90
+ ldr r0, [r0, r1]
+ add r1, r7, #4
+ add r0, r0, #1
+ str r0, [r3, r1]
+ ldr r1, [r6]
+ ldr r0, _02245C4C ; =0xBFFFFFFF
+ add r2, #0x90
+ and r0, r1
+ ldr r1, [sp, #4]
+ mov r3, #0xff
+ ldr r1, [r1, r2]
+ add r1, r1, #1
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #1
+ orr r0, r1
+ str r0, [r6]
+ ldr r0, [sp, #4]
+ lsl r6, r5, #1
+ add r2, r0, r6
+ ldr r0, _02245C50 ; =0x0000305C
+ add r1, r0, #0
+ strh r4, [r2, r0]
+ add r1, #8
+ strh r4, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x10
+ strh r3, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x18
+ strh r4, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x20
+ strh r4, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x28
+ strh r4, [r2, r1]
+ ldr r1, [sp, #4]
+ lsl r3, r5, #3
+ add r1, r1, r3
+ add r3, r0, #0
+ add r3, #0x30
+ strh r4, [r1, r3]
+ add r3, r0, #0
+ add r3, #0x32
+ strh r4, [r1, r3]
+ add r3, r0, #0
+ add r3, #0x34
+ strh r4, [r1, r3]
+ add r3, r0, #0
+ add r3, #0x36
+ strh r4, [r1, r3]
+ add r1, r0, #0
+ add r1, #0x50
+ strh r4, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x68
+ strh r4, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x70
+ strh r4, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x78
+ strh r4, [r2, r1]
+ add r0, #0x80
+ strh r4, [r2, r0]
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ mov r1, #6
+ lsl r3, r0, #8
+ mov r0, #0
+ mvn r0, r0
+ ldr r2, [sp, #4]
+ lsl r1, r1, #6
+ ldr r2, [r2, r1]
+ eor r0, r3
+ and r2, r0
+ ldr r0, [sp, #4]
+ mov r4, #0
+ str r2, [r0, r1]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ ble _02245C00
+ ldr r7, [sp, #4]
+ add r0, r7, #0
+ add r6, r0, r6
+_02245BCC:
+ cmp r4, r5
+ beq _02245BEE
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02230270
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ add r1, r5, #0
+ bl MOD11_02230270
+ ldr r1, [sp, #0x10]
+ cmp r1, r0
+ beq _02245BEE
+ ldr r0, _02245C54 ; =0x00003084
+ mov r1, #0
+ strh r1, [r7, r0]
+_02245BEE:
+ ldr r0, _02245C58 ; =0x0000308C
+ mov r1, #0
+ strh r1, [r6, r0]
+ ldr r0, [sp, #0xc]
+ add r4, r4, #1
+ add r7, r7, #2
+ add r6, #8
+ cmp r4, r0
+ blt _02245BCC
+_02245C00:
+ mov r1, #0x4f
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ add r3, r0, r1
+ lsl r2, r5, #2
+ ldr r1, [r3, r2]
+ mov r0, #1
+ bic r1, r0
+ str r1, [r3, r2]
+ lsl r1, r5, #0x18
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x18
+ bl MOD11_0224C818
+ lsl r1, r5, #0x18
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x18
+ bl MOD11_0224C830
+ lsl r1, r5, #0x18
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x18
+ bl MOD11_0224C83C
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02245C34: .word 0x00002D58
+_02245C38: .word 0x00002DB0
+_02245C3C: .word 0xFBFFFFFF
+_02245C40: .word 0xFFFF1FFF
+_02245C44: .word 0x00002DC8
+_02245C48: .word 0x00002DD4
+_02245C4C: .word 0xBFFFFFFF
+_02245C50: .word 0x0000305C
+_02245C54: .word 0x00003084
+_02245C58: .word 0x0000308C
+
+ thumb_func_start MOD11_02245C5C
+MOD11_02245C5C: ; 0x02245C5C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x75
+ add r5, r1, #0
+ lsl r0, r0, #2
+ add r7, r5, r0
+ mov r0, #0xd1
+ lsl r0, r0, #2
+ add r6, r5, r0
+ mov r0, #8
+ add r4, r5, #0
+ str r0, [sp, #8]
+_02245C7A:
+ mov r0, #0
+ add r1, r7, #0
+ mov r2, #0x40
+ bl MIi_CpuClearFast
+ mov r0, #0
+ add r1, r6, #0
+ mov r2, #4
+ bl MIi_CpuClearFast
+ ldr r0, _02245D24 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ ldr r0, [sp, #8]
+ bic r1, r0
+ ldr r0, _02245D24 ; =0x00002DB0
+ str r1, [r4, r0]
+ add r0, #0x20
+ ldr r0, [r4, r0]
+ add r1, r0, #1
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r1, r0
+ bge _02245CB6
+ ldr r0, _02245D24 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ ldr r0, _02245D28 ; =0xFFBFFFFF
+ and r1, r0
+ ldr r0, _02245D24 ; =0x00002DB0
+ str r1, [r4, r0]
+_02245CB6:
+ ldr r0, _02245D2C ; =0x00002DAC
+ ldr r1, [r4, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _02245CD6
+ ldr r0, _02245D24 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02245CD6
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r5, #0
+ bl MOD11_022451F0
+_02245CD6:
+ ldr r0, _02245D2C ; =0x00002DAC
+ ldr r1, [r4, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _02245CF8
+ ldr r0, _02245D24 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ mov r0, #3
+ lsl r0, r0, #0xa
+ tst r0, r1
+ beq _02245CF8
+ ldr r0, _02245D24 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ ldr r0, _02245D30 ; =0xFFFFF3FF
+ and r1, r0
+ ldr r0, _02245D24 ; =0x00002DB0
+ str r1, [r4, r0]
+_02245CF8:
+ ldr r0, [sp, #4]
+ add r7, #0x40
+ add r0, r0, #1
+ add r6, r6, #4
+ add r4, #0xc0
+ str r0, [sp, #4]
+ cmp r0, #4
+ blt _02245C7A
+ mov r2, #0x71
+ lsl r2, r2, #2
+ ldr r0, [r5, r2]
+ ldr r1, _02245D34 ; =0xFFEFFFFF
+ and r0, r1
+ str r0, [r5, r2]
+ add r0, r2, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ add r2, #8
+ and r0, r1
+ str r0, [r5, r2]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02245D24: .word 0x00002DB0
+_02245D28: .word 0xFFBFFFFF
+_02245D2C: .word 0x00002DAC
+_02245D30: .word 0xFFFFF3FF
+_02245D34: .word 0xFFEFFFFF
+
+ thumb_func_start MOD11_02245D38
+MOD11_02245D38: ; 0x02245D38
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ str r0, [sp]
+ ldr r0, [sp, #0x70]
+ add r7, r1, #0
+ str r0, [sp, #0x70]
+ str r2, [sp, #4]
+ add r0, r7, #0
+ add r1, r2, #0
+ add r5, r3, #0
+ bl MOD11_02249D90
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ add r4, r7, r1
+ str r1, [sp, #0x38]
+ ldr r0, [sp, #0x70]
+ mov r1, #1
+ and r0, r1
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x70]
+ mov r1, #2
+ and r0, r1
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x70]
+ mov r1, #4
+ and r0, r1
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #4]
+ mov r1, #8
+ lsl r0, r0, #1
+ add r0, r7, r0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x70]
+ mov r2, #0x10
+ and r0, r1
+ ldr r1, _02245F50 ; =0x00002DC8
+ str r0, [sp, #0x1c]
+ add r0, r7, r1
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x70]
+ sub r1, #0x88
+ and r0, r2
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x70]
+ mov r2, #0x20
+ and r0, r2
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x70]
+ mov r2, #0x40
+ and r0, r2
+ str r0, [sp, #0x10]
+ ldr r2, [sp, #0x70]
+ mov r0, #0x80
+ and r2, r0
+ str r2, [sp, #0xc]
+ lsl r2, r0, #2
+ ldr r0, [sp, #0x70]
+ mov r6, #0
+ and r0, r2
+ str r0, [sp, #8]
+ add r0, r7, r1
+ str r0, [sp, #0x40]
+ ldr r0, _02245F54 ; =0x00002DE8
+ str r4, [sp, #0x30]
+ add r0, r4, r0
+ str r0, [sp, #0x44]
+ ldr r0, _02245F58 ; =0x00002DB0
+ add r0, r4, r0
+ str r0, [sp, #0x48]
+ ldr r0, _02245F5C ; =0x00002DEC
+ add r0, r4, r0
+ str r0, [sp, #0x4c]
+ ldr r0, _02245F60 ; =0x00002DF8
+ add r0, r4, r0
+ str r0, [sp, #0x50]
+ ldr r0, _02245F60 ; =0x00002DF8
+ add r0, r4, r0
+ str r0, [sp, #0x58]
+ ldr r0, _02245F60 ; =0x00002DF8
+ add r0, r4, r0
+ str r0, [sp, #0x54]
+_02245DE0:
+ ldr r0, _02245F64 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ cmp r0, #0
+ bne _02245DF6
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0
+ beq _02245DF6
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_02245DF6:
+ ldr r1, [sp, #0x30]
+ ldr r0, _02245F68 ; =0x00002D6C
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _02245E0E
+ ldr r0, [sp, #0x28]
+ cmp r0, #0
+ beq _02245E0E
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_02245E0E:
+ ldr r0, [sp, #0x44]
+ ldrh r1, [r0]
+ ldr r0, _02245F64 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ cmp r1, r0
+ bne _02245E28
+ ldr r0, [sp, #0x24]
+ cmp r0, #0
+ beq _02245E28
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_02245E28:
+ ldr r1, [sp, #0x20]
+ ldr r0, _02245F6C ; =0x0000307C
+ ldrh r1, [r1, r0]
+ ldr r0, _02245F64 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ cmp r1, r0
+ bne _02245E50
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _02245E50
+ ldr r0, [sp, #0x48]
+ ldr r1, [r0]
+ mov r0, #2
+ lsl r0, r0, #0x1e
+ tst r0, r1
+ beq _02245E50
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_02245E50:
+ ldr r1, [sp, #0x3c]
+ ldr r0, [sp, #0x38]
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x1d
+ beq _02245E7A
+ ldr r0, [sp, #0x18]
+ cmp r0, #0
+ beq _02245E7A
+ ldr r0, _02245F64 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r7, r0
+ ldr r0, _02245F70 ; =0x000003E1
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _02245E7A
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_02245E7A:
+ ldr r3, _02245F64 ; =0x00002D4C
+ ldr r0, [sp]
+ ldrh r3, [r4, r3]
+ ldr r2, [sp, #4]
+ add r1, r7, #0
+ bl MOD11_022471C4
+ cmp r0, #0
+ beq _02245E9A
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _02245E9A
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_02245E9A:
+ ldr r3, _02245F64 ; =0x00002D4C
+ ldr r0, [sp]
+ ldrh r3, [r4, r3]
+ ldr r2, [sp, #4]
+ add r1, r7, #0
+ bl MOD11_02247314
+ cmp r0, #0
+ beq _02245EBA
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _02245EBA
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_02245EBA:
+ ldr r3, _02245F64 ; =0x00002D4C
+ ldr r0, [sp]
+ ldrh r3, [r4, r3]
+ ldr r2, [sp, #4]
+ add r1, r7, #0
+ bl MOD11_02247348
+ cmp r0, #0
+ beq _02245EDA
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ beq _02245EDA
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_02245EDA:
+ ldr r0, [sp, #0x4c]
+ ldrh r1, [r0]
+ cmp r1, #0
+ beq _02245EF2
+ ldr r0, _02245F64 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ cmp r1, r0
+ beq _02245EF2
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_02245EF2:
+ ldr r0, [sp, #0x34]
+ cmp r0, #0x36
+ beq _02245F00
+ cmp r0, #0x72
+ beq _02245F00
+ cmp r0, #0x7c
+ bne _02245F38
+_02245F00:
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _02245F38
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #0x38]
+ add r0, r1, r0
+ ldr r1, [sp, #0x50]
+ ldrh r1, [r1]
+ bl MOD11_022461AC
+ cmp r0, #4
+ bne _02245F20
+ ldr r0, [sp, #0x54]
+ mov r1, #0
+ strh r1, [r0]
+ b _02245F38
+_02245F20:
+ ldr r0, [sp, #0x58]
+ ldrh r1, [r0]
+ cmp r1, #0
+ beq _02245F38
+ ldr r0, _02245F64 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ cmp r1, r0
+ beq _02245F38
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_02245F38:
+ ldr r0, [sp, #0x30]
+ add r6, r6, #1
+ add r0, r0, #1
+ add r4, r4, #2
+ str r0, [sp, #0x30]
+ cmp r6, #4
+ bge _02245F48
+ b _02245DE0
+_02245F48:
+ add r0, r5, #0
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02245F50: .word 0x00002DC8
+_02245F54: .word 0x00002DE8
+_02245F58: .word 0x00002DB0
+_02245F5C: .word 0x00002DEC
+_02245F60: .word 0x00002DF8
+_02245F64: .word 0x00002D4C
+_02245F68: .word 0x00002D6C
+_02245F6C: .word 0x0000307C
+_02245F70: .word 0x000003E1
+
+ thumb_func_start MOD11_02245F74
+MOD11_02245F74: ; 0x02245F74
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r7, r3, #0
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r3, #4
+ str r3, [sp]
+ mov r3, #0
+ str r0, [sp, #4]
+ add r5, r1, #0
+ add r6, r2, #0
+ ldr r4, [sp, #0x40]
+ bl MOD11_02245D38
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ bl MaskOfFlagNo
+ ldr r1, [sp, #0xc]
+ tst r0, r1
+ beq _02245FC6
+ mov r0, #0xa
+ strb r0, [r4, #1]
+ ldr r0, _02246188 ; =0x00000261
+ add r1, r6, #0
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ lsl r0, r7, #1
+ add r1, r1, r0
+ ldr r0, _0224618C ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_02245FC6:
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ bl MaskOfFlagNo
+ ldr r1, [sp, #0x10]
+ tst r0, r1
+ beq _02245FFE
+ mov r0, #2
+ strb r0, [r4, #1]
+ mov r0, #0x99
+ lsl r0, r0, #2
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_02245FFE:
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ bl MaskOfFlagNo
+ ldr r1, [sp, #0x14]
+ tst r0, r1
+ beq _02246044
+ mov r0, #0xa
+ strb r0, [r4, #1]
+ ldr r0, _02246190 ; =0x00000265
+ add r1, r6, #0
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ lsl r0, r7, #1
+ add r1, r1, r0
+ ldr r0, _0224618C ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_02246044:
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ str r0, [sp, #0x18]
+ add r0, r7, #0
+ bl MaskOfFlagNo
+ ldr r1, [sp, #0x18]
+ tst r0, r1
+ beq _0224608C
+ mov r0, #0xa
+ strb r0, [r4, #1]
+ mov r0, #0x9a
+ lsl r0, r0, #2
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ lsl r0, r7, #1
+ add r1, r1, r0
+ ldr r0, _0224618C ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_0224608C:
+ mov r0, #0x40
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ str r0, [sp, #0x1c]
+ add r0, r7, #0
+ bl MaskOfFlagNo
+ ldr r1, [sp, #0x1c]
+ tst r0, r1
+ beq _022460D2
+ mov r0, #0xa
+ strb r0, [r4, #1]
+ ldr r0, _02246194 ; =0x000003E9
+ add r1, r6, #0
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ lsl r0, r7, #1
+ add r1, r1, r0
+ ldr r0, _0224618C ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_022460D2:
+ mov r0, #0x80
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ str r0, [sp, #0x20]
+ add r0, r7, #0
+ bl MaskOfFlagNo
+ ldr r1, [sp, #0x20]
+ tst r0, r1
+ beq _0224611C
+ mov r0, #0x22
+ strb r0, [r4, #1]
+ ldr r0, _02246198 ; =0x00000421
+ add r1, r6, #0
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ ldr r0, _0224619C ; =0x00000179
+ str r0, [r4, #8]
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ lsl r0, r7, #1
+ add r1, r1, r0
+ ldr r0, _0224618C ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_0224611C:
+ mov r0, #2
+ lsl r0, r0, #8
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ str r0, [sp, #0x24]
+ add r0, r7, #0
+ bl MaskOfFlagNo
+ ldr r1, [sp, #0x24]
+ tst r0, r1
+ beq _0224615C
+ mov r0, #0x18
+ strb r0, [r4, #1]
+ ldr r0, _022461A0 ; =0x0000038F
+ strh r0, [r4, #2]
+ mov r0, #0xc0
+ mul r0, r6
+ add r2, r5, r0
+ ldr r0, _022461A4 ; =0x00002DB8
+ ldrh r1, [r2, r0]
+ add r0, #0x40
+ str r1, [r4, #4]
+ ldrh r0, [r2, r0]
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_0224615C:
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ add r5, r0, #0
+ add r0, r7, #0
+ bl MaskOfFlagNo
+ tst r0, r5
+ beq _02246182
+ mov r0, #0
+ str r0, [sp, #8]
+ strb r0, [r4, #1]
+ ldr r0, _022461A8 ; =0x00000337
+ strh r0, [r4, #2]
+_02246182:
+ ldr r0, [sp, #8]
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02246188: .word 0x00000261
+_0224618C: .word 0x00002D4C
+_02246190: .word 0x00000265
+_02246194: .word 0x000003E9
+_02246198: .word 0x00000421
+_0224619C: .word 0x00000179
+_022461A0: .word 0x0000038F
+_022461A4: .word 0x00002DB8
+_022461A8: .word 0x00000337
+
+ thumb_func_start MOD11_022461AC
+MOD11_022461AC: ; 0x022461AC
+ mov r3, #0
+_022461AE:
+ ldrh r2, [r0, #0xc]
+ cmp r1, r2
+ beq _022461BC
+ add r3, r3, #1
+ add r0, r0, #2
+ cmp r3, #4
+ blt _022461AE
+_022461BC:
+ add r0, r3, #0
+ bx lr
+
+ thumb_func_start MOD11_022461C0
+MOD11_022461C0: ; 0x022461C0
+ push {r4, r5, r6, lr}
+ add r6, r2, #0
+ add r1, r6, #0
+ add r5, r0, #0
+ add r4, r3, #0
+ bl MOD11_02249D90
+ mov r1, #1
+ cmp r0, #0x69
+ beq _022461E6
+ mov r0, #0xc0
+ mul r0, r6
+ add r2, r5, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r2, [r2, r0]
+ lsl r0, r1, #0xa
+ tst r0, r2
+ beq _022461FC
+_022461E6:
+ lsl r0, r4, #1
+ add r2, r4, r0
+ ldr r0, _0224626C ; =0x0225E379
+ ldrb r0, [r0, r2]
+ cmp r0, #2
+ bne _022461FC
+ ldr r0, _02246270 ; =0x0225E37A
+ ldrb r0, [r0, r2]
+ cmp r0, #0
+ bne _022461FC
+ mov r1, #0
+_022461FC:
+ lsl r0, r6, #6
+ add r2, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ beq _0224621A
+ lsl r0, r4, #1
+ add r2, r4, r0
+ ldr r0, _0224626C ; =0x0225E379
+ ldrb r0, [r0, r2]
+ cmp r0, #2
+ bne _0224621A
+ mov r1, #0
+_0224621A:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r2, [r5, r0]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r2
+ beq _0224623E
+ lsl r0, r4, #1
+ add r2, r4, r0
+ ldr r0, _0224626C ; =0x0225E379
+ ldrb r0, [r0, r2]
+ cmp r0, #2
+ bne _0224623E
+ ldr r0, _02246270 ; =0x0225E37A
+ ldrb r0, [r0, r2]
+ cmp r0, #0
+ bne _0224623E
+ mov r1, #0
+_0224623E:
+ mov r0, #0xc0
+ mul r0, r6
+ add r2, r5, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r2, [r2, r0]
+ mov r0, #1
+ lsl r0, r0, #0x16
+ tst r0, r2
+ beq _02246268
+ lsl r0, r4, #1
+ add r2, r4, r0
+ ldr r0, _0224626C ; =0x0225E379
+ ldrb r0, [r0, r2]
+ cmp r0, #0x11
+ bne _02246268
+ ldr r0, _02246270 ; =0x0225E37A
+ ldrb r0, [r0, r2]
+ cmp r0, #0
+ bne _02246268
+ mov r1, #0
+_02246268:
+ add r0, r1, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224626C: .word 0x0225E379
+_02246270: .word 0x0225E37A
+
+ thumb_func_start MOD11_02246274
+MOD11_02246274: ; 0x02246274
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ ldr r0, [sp, #0x50]
+ add r5, r1, #0
+ str r0, [sp, #0x50]
+ ldr r0, [sp, #0x54]
+ str r2, [sp, #8]
+ str r0, [sp, #0x54]
+ add r0, r2, #0
+ add r4, r3, #0
+ ldr r7, [sp, #0x48]
+ ldr r6, [sp, #0x4c]
+ cmp r0, #0xa5
+ bne _02246296
+ ldr r0, [sp, #0x50]
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+_02246296:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02249D90
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x24]
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02249D90
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x20]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ bne _022462DE
+ mov r0, #0
+ str r0, [sp, #0x28]
+ b _022462F6
+_022462DE:
+ cmp r4, #0
+ beq _022462EA
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x28]
+ b _022462F6
+_022462EA:
+ ldr r0, [sp, #8]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02246588 ; =0x000003E2
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0x28]
+_022462F6:
+ ldr r0, [sp, #8]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224658C ; =0x000003E1
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0x14]
+ ldr r0, _02246590 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0xa
+ tst r0, r1
+ bne _02246354
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x28]
+ cmp r1, r0
+ beq _02246332
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x28]
+ cmp r1, r0
+ bne _02246354
+_02246332:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x5b
+ bne _02246346
+ ldr r0, [sp, #0x50]
+ lsl r0, r0, #1
+ str r0, [sp, #0x50]
+ b _02246354
+_02246346:
+ ldr r1, [sp, #0x50]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ str r0, [sp, #0x50]
+_02246354:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ mov r3, #0x1a
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02246380
+ ldr r0, [sp, #0x28]
+ cmp r0, #4
+ bne _02246380
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x69
+ beq _02246380
+ ldr r0, [sp, #0x54]
+ ldr r1, [r0]
+ mov r0, #2
+ lsl r0, r0, #0xa
+ orr r1, r0
+ ldr r0, [sp, #0x54]
+ str r1, [r0]
+ b _0224649C
+_02246380:
+ mov r0, #0xc0
+ add r1, r6, #0
+ mul r1, r0
+ ldr r0, _02246594 ; =0x00002DCC
+ add r3, r5, r1
+ ldr r2, [r3, r0]
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x1d
+ beq _022463B8
+ sub r0, #0xc
+ ldr r2, [r3, r0]
+ mov r0, #1
+ lsl r0, r0, #0xa
+ tst r2, r0
+ bne _022463B8
+ ldr r2, [sp, #0x28]
+ cmp r2, #4
+ bne _022463B8
+ ldr r2, [sp, #0x20]
+ cmp r2, #0x69
+ beq _022463B8
+ ldr r1, [sp, #0x54]
+ lsl r0, r0, #0xa
+ ldr r1, [r1]
+ orr r1, r0
+ ldr r0, [sp, #0x54]
+ str r1, [r0]
+ b _0224649C
+_022463B8:
+ add r0, r5, r1
+ mov r4, #0
+ str r0, [sp, #0x18]
+_022463BE:
+ lsl r0, r4, #1
+ ldr r1, _02246598 ; =0x0225E378
+ add r0, r4, r0
+ add r1, r1, r0
+ str r1, [sp, #0xc]
+ ldr r1, _02246598 ; =0x0225E378
+ ldrb r1, [r1, r0]
+ cmp r1, #0xfe
+ bne _022463EE
+ ldr r1, [sp, #0x18]
+ ldr r0, _0224659C ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #2
+ lsl r0, r0, #0x1c
+ tst r0, r1
+ bne _0224649C
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x71
+ beq _0224649C
+ add r4, r4, #1
+ b _02246490
+_022463EE:
+ ldr r0, [sp, #0x28]
+ cmp r0, r1
+ bne _0224648E
+ ldr r0, [sp, #0xc]
+ add r1, r6, #0
+ ldrb r0, [r0, #1]
+ mov r2, #0x1b
+ mov r3, #0
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x10]
+ cmp r1, r0
+ bne _02246434
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD11_022461C0
+ cmp r0, #1
+ bne _02246434
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0xc]
+ str r0, [sp]
+ ldr r0, [sp, #0x54]
+ ldr r3, [sp, #0x50]
+ str r0, [sp, #4]
+ ldrb r2, [r2, #2]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0224C648
+ str r0, [sp, #0x50]
+_02246434:
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x10]
+ cmp r1, r0
+ bne _0224648E
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ str r0, [sp, #0x2c]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x2c]
+ cmp r1, r0
+ beq _0224648E
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD11_022461C0
+ cmp r0, #1
+ bne _0224648E
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0xc]
+ str r0, [sp]
+ ldr r0, [sp, #0x54]
+ ldr r3, [sp, #0x50]
+ str r0, [sp, #4]
+ ldrb r2, [r2, #2]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0224C648
+ str r0, [sp, #0x50]
+_0224648E:
+ add r4, r4, #1
+_02246490:
+ lsl r0, r4, #1
+ add r1, r4, r0
+ ldr r0, _02246598 ; =0x0225E378
+ ldrb r0, [r0, r1]
+ cmp r0, #0xff
+ bne _022463BE
+_0224649C:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ mov r3, #0x19
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022464E0
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0224C6D4
+ cmp r0, #0
+ beq _022464E0
+ ldr r0, [sp, #0x54]
+ ldr r1, [r0]
+ mov r0, #2
+ tst r0, r1
+ beq _022464CA
+ mov r0, #6
+ and r0, r1
+ cmp r0, #6
+ bne _022464E0
+_022464CA:
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _022464E0
+ ldr r0, [sp, #0x54]
+ ldr r1, [r0]
+ mov r0, #1
+ lsl r0, r0, #0x12
+ orr r1, r0
+ ldr r0, [sp, #0x54]
+ str r1, [r0]
+ b _02246582
+_022464E0:
+ ldr r0, _02246590 ; =0x0000213C
+ ldr r2, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0xa
+ add r1, r2, #0
+ tst r1, r0
+ bne _0224656E
+ lsl r0, r0, #4
+ tst r0, r2
+ bne _0224656E
+ ldr r0, [sp, #0x54]
+ ldr r1, [r0]
+ mov r0, #2
+ tst r0, r1
+ beq _0224654A
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _0224654A
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ mov r3, #0x6f
+ bl MOD11_02246D84
+ cmp r0, #1
+ beq _02246524
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ mov r3, #0x74
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02246532
+_02246524:
+ ldr r0, [sp, #0x50]
+ lsl r1, r0, #1
+ add r0, r0, r1
+ mov r1, #4
+ bl MOD11_022476C0
+ str r0, [sp, #0x50]
+_02246532:
+ ldr r0, [sp, #0x24]
+ cmp r0, #0x5f
+ bne _0224654A
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x50]
+ add r0, #0x64
+ str r0, [sp, #0x1c]
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ str r0, [sp, #0x50]
+_0224654A:
+ ldr r0, [sp, #0x54]
+ ldr r1, [r0]
+ mov r0, #4
+ tst r0, r1
+ beq _02246582
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _02246582
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x6e
+ bne _02246582
+ ldr r0, [sp, #0x50]
+ lsl r0, r0, #1
+ str r0, [sp, #0x50]
+ b _02246582
+_0224656E:
+ ldr r0, [sp, #0x54]
+ ldr r1, [r0]
+ mov r0, #2
+ bic r1, r0
+ ldr r0, [sp, #0x54]
+ str r1, [r0]
+ mov r0, #4
+ bic r1, r0
+ ldr r0, [sp, #0x54]
+ str r1, [r0]
+_02246582:
+ ldr r0, [sp, #0x50]
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02246588: .word 0x000003E2
+_0224658C: .word 0x000003E1
+_02246590: .word 0x0000213C
+_02246594: .word 0x00002DCC
+_02246598: .word 0x0225E378
+_0224659C: .word 0x00002DB0
+
+ thumb_func_start MOD11_022465A0
+MOD11_022465A0: ; 0x022465A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r0, #0
+ ldr r0, [sp, #0x2c]
+ str r1, [sp]
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x30]
+ str r3, [sp, #4]
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x34]
+ ldr r6, [sp, #0x38]
+ str r0, [sp, #0x34]
+ add r0, r1, #0
+ cmp r0, #0xa5
+ beq _022466B6
+ add r0, r3, #0
+ cmp r0, #0x60
+ bne _022465CA
+ mov r0, #0
+ str r0, [sp, #0xc]
+ b _022465E2
+_022465CA:
+ cmp r2, #0
+ beq _022465D6
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ b _022465E2
+_022465D6:
+ add r0, r1, #0
+ lsl r0, r0, #4
+ add r1, r7, r0
+ ldr r0, _022466BC ; =0x000003E2
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0xc]
+_022465E2:
+ ldr r0, [sp, #4]
+ cmp r0, #0x68
+ beq _02246612
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x1a
+ bne _02246612
+ ldr r0, [sp, #0xc]
+ cmp r0, #4
+ bne _02246612
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r7, r0]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r1
+ bne _02246612
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x69
+ beq _02246612
+ ldr r1, [r6]
+ mov r0, #8
+ orr r0, r1
+ str r0, [r6]
+ b _02246686
+_02246612:
+ mov r4, #0
+_02246614:
+ lsl r0, r4, #1
+ add r1, r4, r0
+ ldr r0, _022466C0 ; =0x0225E378
+ add r5, r0, r1
+ ldrb r1, [r0, r1]
+ cmp r1, #0xfe
+ bne _0224662C
+ ldr r0, [sp, #4]
+ cmp r0, #0x71
+ beq _02246686
+ add r4, r4, #1
+ b _0224667A
+_0224662C:
+ ldr r0, [sp, #0xc]
+ cmp r0, r1
+ bne _02246678
+ ldrb r0, [r5, #1]
+ ldr r1, [sp, #0x30]
+ str r0, [sp, #8]
+ cmp r1, r0
+ bne _02246652
+ ldr r1, [sp, #0x2c]
+ add r0, r7, #0
+ add r2, r4, #0
+ bl MOD11_022466C4
+ cmp r0, #1
+ bne _02246652
+ ldrb r0, [r5, #2]
+ add r1, r6, #0
+ bl MOD11_02246714
+_02246652:
+ ldr r1, [sp, #0x34]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ bne _02246678
+ ldr r1, [sp, #0x30]
+ ldr r0, [sp, #0x34]
+ cmp r1, r0
+ beq _02246678
+ ldr r1, [sp, #0x2c]
+ add r0, r7, #0
+ add r2, r4, #0
+ bl MOD11_022466C4
+ cmp r0, #1
+ bne _02246678
+ ldrb r0, [r5, #2]
+ add r1, r6, #0
+ bl MOD11_02246714
+_02246678:
+ add r4, r4, #1
+_0224667A:
+ lsl r0, r4, #1
+ add r1, r4, r0
+ ldr r0, _022466C0 ; =0x0225E378
+ ldrb r0, [r0, r1]
+ cmp r0, #0xff
+ bne _02246614
+_02246686:
+ ldr r0, [sp, #4]
+ cmp r0, #0x68
+ beq _022466B6
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x19
+ bne _022466B6
+ ldr r1, [sp]
+ add r0, r7, #0
+ bl MOD11_0224C6D4
+ cmp r0, #0
+ beq _022466B6
+ ldr r1, [r6]
+ mov r0, #2
+ tst r0, r1
+ beq _022466AE
+ mov r0, #6
+ and r0, r1
+ cmp r0, #6
+ bne _022466B6
+_022466AE:
+ ldr r1, [r6]
+ mov r0, #8
+ orr r0, r1
+ str r0, [r6]
+_022466B6:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022466BC: .word 0x000003E2
+_022466C0: .word 0x0225E378
+
+ thumb_func_start MOD11_022466C4
+MOD11_022466C4: ; 0x022466C4
+ push {r3, r4}
+ mov r3, #1
+ cmp r1, #0x69
+ bne _022466E2
+ lsl r1, r2, #1
+ add r4, r2, r1
+ ldr r1, _0224670C ; =0x0225E379
+ ldrb r1, [r1, r4]
+ cmp r1, #2
+ bne _022466E2
+ ldr r1, _02246710 ; =0x0225E37A
+ ldrb r1, [r1, r4]
+ cmp r1, #0
+ bne _022466E2
+ mov r3, #0
+_022466E2:
+ mov r1, #6
+ lsl r1, r1, #6
+ ldr r1, [r0, r1]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02246706
+ lsl r0, r2, #1
+ add r1, r2, r0
+ ldr r0, _0224670C ; =0x0225E379
+ ldrb r0, [r0, r1]
+ cmp r0, #2
+ bne _02246706
+ ldr r0, _02246710 ; =0x0225E37A
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _02246706
+ mov r3, #0
+_02246706:
+ add r0, r3, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_0224670C: .word 0x0225E379
+_02246710: .word 0x0225E37A
+
+ thumb_func_start MOD11_02246714
+MOD11_02246714: ; 0x02246714
+ cmp r0, #0
+ beq _02246722
+ cmp r0, #5
+ beq _02246734
+ cmp r0, #0x14
+ beq _0224674C
+ bx lr
+_02246722:
+ ldr r2, [r1]
+ mov r0, #8
+ orr r2, r0
+ mov r0, #4
+ bic r2, r0
+ mov r0, #2
+ bic r2, r0
+ str r2, [r1]
+ bx lr
+_02246734:
+ ldr r2, [r1]
+ mov r0, #2
+ tst r0, r2
+ beq _02246744
+ mov r0, #2
+ bic r2, r0
+ str r2, [r1]
+ bx lr
+_02246744:
+ mov r0, #4
+ orr r0, r2
+ str r0, [r1]
+ bx lr
+_0224674C:
+ ldr r2, [r1]
+ mov r0, #4
+ tst r0, r2
+ beq _0224675C
+ mov r0, #4
+ bic r2, r0
+ str r2, [r1]
+ bx lr
+_0224675C:
+ mov r0, #2
+ orr r0, r2
+ str r0, [r1]
+ bx lr
+
+ thumb_func_start MOD11_02246764
+MOD11_02246764: ; 0x02246764
+ mov r2, #0xd1
+ lsl r2, r2, #2
+ add r2, r0, r2
+ lsl r0, r1, #2
+ ldr r0, [r2, r0]
+ lsl r1, r0, #0x1f
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x1e
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x1d
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x1c
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x1b
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x1a
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x19
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x17
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ beq _022467A8
+_022467A4:
+ mov r0, #1
+ bx lr
+_022467A8:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD11_022467AC
+MOD11_022467AC: ; 0x022467AC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ add r5, r1, #0
+ add r6, r2, #0
+ str r3, [sp, #4]
+ mov r4, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ cmp r6, #0
+ beq _022467CA
+ cmp r6, #1
+ beq _022467EE
+ b _02246822
+_022467CA:
+ add r0, r4, #0
+ cmp r7, #0
+ ble _02246822
+ ldr r2, _02246828 ; =0x00002D8C
+_022467D2:
+ ldr r1, [sp, #4]
+ cmp r0, r1
+ beq _022467E4
+ ldr r1, [r5, r2]
+ cmp r1, #0
+ beq _022467E4
+ add r1, r4, #1
+ lsl r1, r1, #0x18
+ lsr r4, r1, #0x18
+_022467E4:
+ add r0, r0, #1
+ add r5, #0xc0
+ cmp r0, r7
+ blt _022467D2
+ b _02246822
+_022467EE:
+ add r6, r4, #0
+ cmp r7, #0
+ ble _02246822
+_022467F4:
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_02230270
+ str r0, [sp, #8]
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ bl MOD11_02230270
+ ldr r1, [sp, #8]
+ cmp r1, r0
+ bne _0224681A
+ ldr r0, _02246828 ; =0x00002D8C
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0224681A
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_0224681A:
+ add r6, r6, #1
+ add r5, #0xc0
+ cmp r6, r7
+ blt _022467F4
+_02246822:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02246828: .word 0x00002D8C
+
+ thumb_func_start MOD11_0224682C
+MOD11_0224682C: ; 0x0224682C
+ add r2, r0, r1
+ ldr r0, _02246838 ; =0x0000219C
+ ldrb r0, [r2, r0]
+ lsl r0, r0, #8
+ orr r0, r1
+ bx lr
+ .align 2, 0
+_02246838: .word 0x0000219C
+
+ thumb_func_start MOD11_0224683C
+MOD11_0224683C: ; 0x0224683C
+ push {r4, r5}
+ lsl r3, r1, #4
+ add r5, r0, r3
+ ldr r3, _02246868 ; =0x000021B4
+ mov r2, #0
+ ldr r4, [r5, r3]
+ cmp r4, #1
+ bne _02246862
+ sub r3, r3, #4
+ ldr r3, [r5, r3]
+ cmp r3, #0
+ beq _02246862
+ mov r2, #0xc0
+ mul r2, r1
+ add r1, r0, r2
+ lsl r0, r3, #1
+ add r1, r1, r0
+ ldr r0, _0224686C ; =0x00002D4A
+ ldrh r2, [r1, r0]
+_02246862:
+ add r0, r2, #0
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_02246868: .word 0x000021B4
+_0224686C: .word 0x00002D4A
+
+ thumb_func_start MOD11_02246870
+MOD11_02246870: ; 0x02246870
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ str r2, [sp, #4]
+ str r0, [sp]
+ add r7, r1, #0
+ str r3, [sp, #8]
+ ldr r6, [sp, #0x70]
+ mov r4, #0
+ bl MOD11_0222FF84
+ add r5, r0, #0
+ ldr r0, [sp, #4]
+ cmp r0, #9
+ bhi _022468E4
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02246898: ; jump table
+ .short _022468AC - _02246898 - 2 ; case 0
+ .short _022468E6 - _02246898 - 2 ; case 1
+ .short _02246932 - _02246898 - 2 ; case 2
+ .short _0224696C - _02246898 - 2 ; case 3
+ .short _022469B8 - _02246898 - 2 ; case 4
+ .short _02246A0A - _02246898 - 2 ; case 5
+ .short _02246A2C - _02246898 - 2 ; case 6
+ .short _02246A54 - _02246898 - 2 ; case 7
+ .short _02246A80 - _02246898 - 2 ; case 8
+ .short _02246AB4 - _02246898 - 2 ; case 9
+_022468AC:
+ add r0, r4, #0
+ str r0, [sp, #0x44]
+ cmp r5, #0
+ ble _022468E4
+_022468B4:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x44]
+ bl MOD11_02230270
+ str r0, [sp, #0x48]
+ ldr r0, [sp]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x48]
+ cmp r1, r0
+ bne _022468DA
+ ldr r1, [sp, #0x44]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _022468DA
+ add r4, r4, #1
+_022468DA:
+ ldr r0, [sp, #0x44]
+ add r0, r0, #1
+ str r0, [sp, #0x44]
+ cmp r0, r5
+ blt _022468B4
+_022468E4:
+ b _02246AEC
+_022468E6:
+ add r0, r4, #0
+ str r0, [sp, #0xc]
+ cmp r5, #0
+ ble _02246930
+ str r7, [sp, #0x30]
+_022468F0:
+ ldr r0, [sp]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02230270
+ str r0, [sp, #0x4c]
+ ldr r0, [sp]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x4c]
+ cmp r1, r0
+ bne _02246920
+ ldr r1, [sp, #0x30]
+ ldr r0, _02246AF4 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02246920
+ ldr r1, [sp, #0xc]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246920
+ add r4, r4, #1
+_02246920:
+ ldr r0, [sp, #0x30]
+ add r0, #0xc0
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ cmp r0, r5
+ blt _022468F0
+_02246930:
+ b _02246AEC
+_02246932:
+ add r0, r4, #0
+ str r0, [sp, #0x10]
+ cmp r5, #0
+ ble _0224696A
+_0224693A:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_02230270
+ str r0, [sp, #0x50]
+ ldr r0, [sp]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x50]
+ cmp r1, r0
+ beq _02246960
+ ldr r1, [sp, #0x10]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246960
+ add r4, r4, #1
+_02246960:
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, r5
+ blt _0224693A
+_0224696A:
+ b _02246AEC
+_0224696C:
+ add r0, r4, #0
+ str r0, [sp, #0x14]
+ cmp r5, #0
+ ble _022469B6
+ str r7, [sp, #0x34]
+_02246976:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x14]
+ bl MOD11_02230270
+ str r0, [sp, #0x54]
+ ldr r0, [sp]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x54]
+ cmp r1, r0
+ beq _022469A6
+ ldr r1, [sp, #0x34]
+ ldr r0, _02246AF4 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022469A6
+ ldr r1, [sp, #0x14]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _022469A6
+ add r4, r4, #1
+_022469A6:
+ ldr r0, [sp, #0x34]
+ add r0, #0xc0
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, r5
+ blt _02246976
+_022469B6:
+ b _02246AEC
+_022469B8:
+ add r0, r4, #0
+ str r0, [sp, #0x18]
+ cmp r5, #0
+ ble _02246A08
+ str r7, [sp, #0x38]
+_022469C2:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x18]
+ bl MOD11_02230270
+ str r0, [sp, #0x58]
+ ldr r0, [sp]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x58]
+ cmp r1, r0
+ beq _022469F8
+ ldr r1, [sp, #0x38]
+ ldr r0, _02246AF4 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022469F8
+ ldr r1, [sp, #0x18]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _022469F8
+ ldr r0, [sp, #0x18]
+ bl MaskOfFlagNo
+ orr r4, r0
+_022469F8:
+ ldr r0, [sp, #0x38]
+ add r0, #0xc0
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, r5
+ blt _022469C2
+_02246A08:
+ b _02246AEC
+_02246A0A:
+ add r0, r4, #0
+ str r0, [sp, #0x1c]
+ cmp r5, #0
+ ble _02246AEC
+_02246A12:
+ ldr r1, [sp, #0x1c]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246A20
+ add r4, r4, #1
+_02246A20:
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #1
+ str r0, [sp, #0x1c]
+ cmp r0, r5
+ blt _02246A12
+ b _02246AEC
+_02246A2C:
+ add r0, r4, #0
+ str r0, [sp, #0x20]
+ cmp r5, #0
+ ble _02246AEC
+_02246A34:
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ beq _02246A48
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246A48
+ add r4, r4, #1
+_02246A48:
+ ldr r0, [sp, #0x20]
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+ cmp r0, r5
+ blt _02246A34
+ b _02246AEC
+_02246A54:
+ add r0, r4, #0
+ str r0, [sp, #0x24]
+ cmp r5, #0
+ ble _02246AEC
+_02246A5C:
+ ldr r1, [sp, #0x24]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ beq _02246A74
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246A74
+ ldr r0, [sp, #0x24]
+ add r4, r0, #1
+ b _02246AEC
+_02246A74:
+ ldr r0, [sp, #0x24]
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, r5
+ blt _02246A5C
+ b _02246AEC
+_02246A80:
+ add r0, r4, #0
+ str r0, [sp, #0x28]
+ cmp r5, #0
+ ble _02246AEC
+ str r7, [sp, #0x3c]
+_02246A8A:
+ ldr r1, [sp, #0x28]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246AA2
+ ldr r1, [sp, #0x3c]
+ ldr r0, _02246AF4 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02246AA2
+ add r4, r4, #1
+_02246AA2:
+ ldr r0, [sp, #0x3c]
+ add r0, #0xc0
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x28]
+ add r0, r0, #1
+ str r0, [sp, #0x28]
+ cmp r0, r5
+ blt _02246A8A
+ b _02246AEC
+_02246AB4:
+ add r0, r4, #0
+ str r0, [sp, #0x2c]
+ cmp r5, #0
+ ble _02246AEC
+ str r7, [sp, #0x40]
+_02246ABE:
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ beq _02246ADC
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246ADC
+ ldr r1, [sp, #0x40]
+ ldr r0, _02246AF4 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02246ADC
+ add r4, r4, #1
+_02246ADC:
+ ldr r0, [sp, #0x40]
+ add r0, #0xc0
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0x2c]
+ add r0, r0, #1
+ str r0, [sp, #0x2c]
+ cmp r0, r5
+ blt _02246ABE
+_02246AEC:
+ add r0, r4, #0
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02246AF4: .word 0x00002D8C
+
+ thumb_func_start MOD11_02246AF8
+MOD11_02246AF8: ; 0x02246AF8
+ lsl r1, r1, #4
+ add r1, r0, r1
+ ldr r0, _02246B54 ; =0x000003DE
+ ldrh r2, [r1, r0]
+ cmp r2, #0x9b
+ bgt _02246B2A
+ cmp r2, #0x97
+ blt _02246B10
+ beq _02246B4A
+ cmp r2, #0x9b
+ beq _02246B4A
+ b _02246B4E
+_02246B10:
+ cmp r2, #0x27
+ bgt _02246B1C
+ bge _02246B4A
+ cmp r2, #0x1a
+ beq _02246B4A
+ b _02246B4E
+_02246B1C:
+ cmp r2, #0x4b
+ bgt _02246B24
+ beq _02246B4A
+ b _02246B4E
+_02246B24:
+ cmp r2, #0x91
+ beq _02246B4A
+ b _02246B4E
+_02246B2A:
+ mov r1, #1
+ lsl r1, r1, #8
+ cmp r2, r1
+ bgt _02246B3A
+ bge _02246B4A
+ cmp r2, #0xff
+ beq _02246B4A
+ b _02246B4E
+_02246B3A:
+ add r0, r1, #7
+ cmp r2, r0
+ bgt _02246B44
+ beq _02246B4A
+ b _02246B4E
+_02246B44:
+ add r1, #0x10
+ cmp r2, r1
+ bne _02246B4E
+_02246B4A:
+ mov r0, #1
+ bx lr
+_02246B4E:
+ mov r0, #0
+ bx lr
+ nop
+_02246B54: .word 0x000003DE
+
+ thumb_func_start MOD11_02246B58
+MOD11_02246B58: ; 0x02246B58
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ add r7, r3, #0
+ mov r0, #1
+ cmp r6, #0x70
+ blo _02246B76
+ bl LCRandom
+ mov r1, #0x70
+ bl _u32_div_f
+ add r6, r1, #0
+ mov r0, #0
+_02246B76:
+ lsl r1, r6, #1
+ ldr r2, _02246B90 ; =0x0225E378
+ add r1, r6, r1
+ ldrb r2, [r2, r1]
+ strb r2, [r5]
+ ldr r2, _02246B94 ; =0x0225E379
+ ldrb r2, [r2, r1]
+ strb r2, [r4]
+ ldr r2, _02246B98 ; =0x0225E37A
+ ldrb r1, [r2, r1]
+ strb r1, [r7]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02246B90: .word 0x0225E378
+_02246B94: .word 0x0225E379
+_02246B98: .word 0x0225E37A
+
+ thumb_func_start MOD11_02246B9C
+MOD11_02246B9C: ; 0x02246B9C
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r4, _02246BE4 ; =0x0225E378
+ add r5, r1, #0
+ str r0, [sp]
+ add r6, r2, #0
+ mov r1, #0x28
+_02246BA8:
+ ldrb r2, [r4]
+ ldr r0, [sp]
+ cmp r0, r2
+ bne _02246BD6
+ ldrb r7, [r4, #1]
+ cmp r5, r7
+ bne _02246BC2
+ ldrb r0, [r4, #2]
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ add r1, r0, #0
+_02246BC2:
+ cmp r6, r7
+ bne _02246BD6
+ cmp r5, r6
+ beq _02246BD6
+ ldrb r0, [r4, #2]
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ add r1, r0, #0
+_02246BD6:
+ add r4, r4, #3
+ ldrb r0, [r4]
+ cmp r0, #0xff
+ bne _02246BA8
+ add r0, r1, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02246BE4: .word 0x0225E378
+
+ thumb_func_start MOD11_02246BE8
+MOD11_02246BE8: ; 0x02246BE8
+ cmp r0, #0
+ beq _02246C10
+ cmp r0, #0xd6
+ beq _02246C10
+ ldr r2, _02246C18 ; =0x0000017F
+ cmp r0, r2
+ beq _02246C10
+ add r1, r2, #0
+ sub r1, #0x6d
+ cmp r0, r1
+ beq _02246C10
+ sub r1, r2, #1
+ cmp r0, r1
+ beq _02246C10
+ ldr r1, _02246C1C ; =0x0000FF8A
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _02246C14
+_02246C10:
+ mov r0, #1
+ bx lr
+_02246C14:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_02246C18: .word 0x0000017F
+_02246C1C: .word 0x0000FF8A
+
+ thumb_func_start MOD11_02246C20
+MOD11_02246C20: ; 0x02246C20
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ cmp r1, #0xae
+ bne _02246C4C
+ add r1, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #7
+ beq _02246C48
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #7
+ bne _02246C4C
+_02246C48:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02246C4C:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02246C50
+MOD11_02246C50: ; 0x02246C50
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r2, #0
+ add r5, r1, #0
+ add r1, r6, #0
+ mov r7, #0
+ bl MOD11_02230270
+ str r0, [sp]
+ ldr r0, _02246CA4 ; =0x00002DB8
+ add r4, r5, r0
+ mov r0, #0xc0
+ mul r0, r6
+ str r0, [sp, #4]
+ ldrh r0, [r4, r0]
+ cmp r0, #0
+ beq _02246C9E
+ ldr r0, _02246CA8 ; =0x0000219C
+ add r1, r5, r6
+ ldrb r0, [r1, r0]
+ bl MaskOfFlagNo
+ ldr r1, [sp]
+ lsl r1, r1, #3
+ add r2, r5, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #3
+ lsr r1, r1, #0x1a
+ tst r0, r1
+ bne _02246C9E
+ ldr r0, [sp, #4]
+ ldrh r0, [r4, r0]
+ bl FUN_0206EA98
+ cmp r0, #0
+ bne _02246C9E
+ mov r7, #1
+_02246C9E:
+ add r0, r7, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02246CA4: .word 0x00002DB8
+_02246CA8: .word 0x0000219C
+
+ thumb_func_start MOD11_02246CAC
+MOD11_02246CAC: ; 0x02246CAC
+ push {r3, lr}
+ mov r2, #0xc0
+ mul r2, r1
+ add r1, r0, r2
+ ldr r0, _02246CC8 ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ bl FUN_0206EA98
+ cmp r0, #0
+ bne _02246CC4
+ mov r0, #1
+ pop {r3, pc}
+_02246CC4:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_02246CC8: .word 0x00002DB8
+
+ thumb_func_start MOD11_02246CCC
+MOD11_02246CCC: ; 0x02246CCC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ add r3, r1, #0
+ ldr r1, _02246D18 ; =0x00002D74
+ mul r3, r0
+ add r2, r5, r1
+ ldrb r4, [r2, r3]
+ ldr r2, [r5, #0x64]
+ mov r6, #0
+ mul r0, r2
+ add r0, r5, r0
+ ldrb r0, [r0, r1]
+ cmp r0, r4
+ blo _02246CF0
+ mov r6, #1
+ b _02246D14
+_02246CF0:
+ bl LCRandom
+ ldr r2, [r5, #0x64]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r5, r1
+ ldr r1, _02246D18 ; =0x00002D74
+ lsl r0, r0, #0x18
+ ldrb r1, [r2, r1]
+ lsr r0, r0, #0x18
+ add r1, r1, r4
+ mul r0, r1
+ asr r0, r0, #8
+ add r1, r0, #1
+ lsr r0, r4, #2
+ cmp r1, r0
+ ble _02246D14
+ mov r6, #1
+_02246D14:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02246D18: .word 0x00002D74
+
+ thumb_func_start MOD11_02246D1C
+MOD11_02246D1C: ; 0x02246D1C
+ push {r4, r5}
+ mov r2, #0xc0
+ mul r2, r1
+ mov r3, #0xb7
+ mov r4, #2
+ add r5, r0, r2
+ lsl r3, r3, #6
+ ldr r1, [r5, r3]
+ lsl r4, r4, #0x14
+ tst r4, r1
+ beq _02246D40
+ sub r3, #0x59
+ ldrb r3, [r5, r3]
+ cmp r3, #0x79
+ beq _02246D40
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+_02246D40:
+ mov r3, #6
+ lsl r3, r3, #6
+ ldr r4, [r0, r3]
+ mov r3, #7
+ lsl r3, r3, #0xc
+ tst r3, r4
+ beq _02246D5E
+ ldr r3, _02246D80 ; =0x00002D67
+ add r4, r0, r2
+ ldrb r3, [r4, r3]
+ cmp r3, #0x1a
+ bne _02246D5E
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+_02246D5E:
+ mov r3, #1
+ lsl r3, r3, #0xa
+ tst r1, r3
+ beq _02246D76
+ ldr r1, _02246D80 ; =0x00002D67
+ add r3, r0, r2
+ ldrb r1, [r3, r1]
+ cmp r1, #0x1a
+ bne _02246D76
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+_02246D76:
+ add r1, r0, r2
+ ldr r0, _02246D80 ; =0x00002D67
+ ldrb r0, [r1, r0]
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_02246D80: .word 0x00002D67
+
+ thumb_func_start MOD11_02246D84
+MOD11_02246D84: ; 0x02246D84
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r1, #0
+ str r2, [sp]
+ add r4, r3, #0
+ mov r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x68
+ beq _02246DA8
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r4, r0
+ bne _02246DD6
+ mov r6, #1
+ b _02246DD6
+_02246DA8:
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r4, r0
+ bne _02246DD6
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0x1c
+ mul r0, r7
+ ldr r3, [r1, r0]
+ lsl r2, r3, #0x1c
+ lsr r2, r2, #0x1f
+ bne _02246DD6
+ mov r2, #8
+ orr r3, r2
+ str r3, [r1, r0]
+ ldr r1, _02246DDC ; =0x0000213C
+ lsl r0, r2, #0x14
+ ldr r3, [r5, r1]
+ orr r0, r3
+ str r0, [r5, r1]
+_02246DD6:
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02246DDC: .word 0x0000213C
+
+ thumb_func_start MOD11_02246DE0
+MOD11_02246DE0: ; 0x02246DE0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ mov r6, #0
+ str r0, [sp]
+ str r1, [sp, #4]
+ add r4, r2, #0
+ str r6, [sp, #0x18]
+ bl MOD11_0222FF74
+ add r5, r0, #0
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_0222FF88
+ str r0, [sp, #0x14]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_0222FFC8
+ add r7, r0, #0
+ mov r0, #8
+ tst r0, r5
+ bne _02246E22
+ mov r0, #0x10
+ tst r0, r5
+ beq _02246E36
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _02246E36
+_02246E22:
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #4]
+ mov r5, #0
+ add r1, r0, r4
+ ldr r0, _02246ECC ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0xc]
+ str r0, [sp, #8]
+ b _02246E72
+_02246E36:
+ mov r0, #2
+ tst r0, r5
+ beq _02246E60
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #4]
+ mov r5, #0
+ add r1, r0, r4
+ ldr r0, _02246ECC ; =0x0000219C
+ ldrb r0, [r1, r0]
+ add r1, r4, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ bl MOD11_022302BC
+ ldr r1, [sp, #4]
+ add r1, r1, r0
+ ldr r0, _02246ECC ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #8]
+ b _02246E72
+_02246E60:
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #4]
+ mov r5, #0
+ add r1, r0, r4
+ ldr r0, _02246ECC ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0xc]
+ str r0, [sp, #8]
+_02246E72:
+ cmp r5, r7
+ bge _02246EBC
+_02246E76:
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r4, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02246EB6
+ add r0, r4, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _02246EB6
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02246EB6
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ beq _02246EB6
+ ldr r0, [sp, #8]
+ cmp r0, r5
+ beq _02246EB6
+ add r6, r6, #1
+_02246EB6:
+ add r5, r5, #1
+ cmp r5, r7
+ blt _02246E76
+_02246EBC:
+ ldr r0, [sp, #0x10]
+ cmp r6, r0
+ blt _02246EC6
+ mov r0, #1
+ str r0, [sp, #0x18]
+_02246EC6:
+ ldr r0, [sp, #0x18]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02246ECC: .word 0x0000219C
+
+ thumb_func_start MOD11_02246ED0
+MOD11_02246ED0: ; 0x02246ED0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ add r6, r2, #0
+ add r7, r0, #0
+ add r4, r3, #0
+ bl MOD11_0222FF74
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02249D90
+ str r0, [sp, #8]
+ cmp r0, #0x3e
+ beq _02246F06
+ mov r1, #0xa9
+ ldr r0, [sp, #0xc]
+ lsl r1, r1, #2
+ tst r0, r1
+ bne _02246F06
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x32
+ bne _02246F0C
+_02246F06:
+ add sp, #0x14
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_02246F0C:
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_02230270
+ add r0, r7, #0
+ bl MOD11_0222FF84
+ mov r0, #0x17
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #9
+ add r3, r6, #0
+ bl MOD11_02246870
+ str r0, [sp, #0x10]
+ cmp r0, #0
+ beq _02246F62
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x17
+ beq _02246F62
+ cmp r4, #0
+ bne _02246F46
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02246F46:
+ mov r0, #0xb
+ strb r0, [r4, #1]
+ mov r0, #0x27
+ strh r0, [r4, #2]
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0x17
+ str r0, [r4, #8]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02246F62:
+ mov r0, #0x47
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #3
+ add r3, r6, #0
+ bl MOD11_02246870
+ str r0, [sp, #4]
+ cmp r0, #0
+ beq _02247014
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r1
+ bne _02246FEE
+ ldr r0, [sp, #8]
+ cmp r0, #0x69
+ beq _02246FEE
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x1a
+ beq _02247014
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ ldr r0, _022470A8 ; =0x00002DCC
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1d
+ bne _02247014
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #2
+ beq _02247014
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #2
+ beq _02247014
+ cmp r4, #0
+ bne _02246FD2
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02246FD2:
+ mov r0, #0xb
+ strb r0, [r4, #1]
+ mov r0, #0x27
+ strh r0, [r4, #2]
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0x47
+ str r0, [r4, #8]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02246FEE:
+ cmp r4, #0
+ bne _02246FF8
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02246FF8:
+ mov r0, #0xb
+ strb r0, [r4, #1]
+ mov r0, #0x27
+ strh r0, [r4, #2]
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0x47
+ str r0, [r4, #8]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02247014:
+ mov r0, #0x2a
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #3
+ add r3, r6, #0
+ bl MOD11_02246870
+ add r7, r0, #0
+ beq _0224706E
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #8
+ beq _02247048
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #8
+ bne _0224706E
+_02247048:
+ cmp r4, #0
+ bne _02247052
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02247052:
+ mov r0, #0xb
+ strb r0, [r4, #1]
+ mov r0, #0x27
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0x2a
+ str r0, [r4, #8]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_0224706E:
+ mov r0, #0xc0
+ mul r0, r6
+ add r3, r5, r0
+ ldr r0, _022470AC ; =0x00002DB0
+ ldr r1, _022470B0 ; =0x0400E000
+ ldr r2, [r3, r0]
+ tst r2, r1
+ bne _02247088
+ add r0, #0x10
+ ldr r2, [r3, r0]
+ lsr r0, r1, #0x10
+ tst r0, r2
+ beq _022470A0
+_02247088:
+ cmp r4, #0
+ bne _02247092
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02247092:
+ mov r0, #0
+ strb r0, [r4, #1]
+ ldr r0, _022470B4 ; =0x0000031A
+ add sp, #0x14
+ strh r0, [r4, #2]
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_022470A0:
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022470A8: .word 0x00002DCC
+_022470AC: .word 0x00002DB0
+_022470B0: .word 0x0400E000
+_022470B4: .word 0x0000031A
+
+ thumb_func_start MOD11_022470B8
+MOD11_022470B8: ; 0x022470B8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ str r0, [sp]
+ bl MOD11_0222FF74
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02249D90
+ mov r6, #0
+ cmp r0, #0x3e
+ bne _022470EC
+ mov r0, #0x75
+ lsl r0, r0, #2
+ add r3, r5, r0
+ lsl r2, r4, #6
+ ldr r1, [r3, r2]
+ ldr r0, _02247184 ; =0xFFFFFE7F
+ mov r6, #1
+ and r1, r0
+ mov r0, #0x80
+ orr r0, r1
+ str r0, [r3, r2]
+ b _0224717E
+_022470EC:
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ tst r0, r7
+ beq _022470F8
+ mov r6, #1
+ b _0224717E
+_022470F8:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x32
+ bne _0224711C
+ mov r1, #0x75
+ lsl r1, r1, #2
+ add r5, r5, r1
+ lsl r3, r4, #6
+ ldr r2, [r5, r3]
+ ldr r0, _02247184 ; =0xFFFFFE7F
+ sub r1, #0xd4
+ and r0, r2
+ orr r0, r1
+ str r0, [r5, r3]
+ mov r6, #1
+ b _0224717E
+_0224711C:
+ mov r0, #1
+ add r1, r4, #0
+ eor r1, r0
+ mov r2, #0xc0
+ add r3, r1, #0
+ mul r3, r2
+ add r1, r5, r3
+ ldr r3, _02247188 ; =0x00002D46
+ mul r2, r4
+ add r2, r5, r2
+ ldrh r1, [r1, r3]
+ ldrh r2, [r2, r3]
+ cmp r2, r1
+ bhs _02247164
+ lsl r0, r2, #7
+ bl _s32_div_f
+ ldr r1, _0224718C ; =0x0000311E
+ ldrb r2, [r5, r1]
+ mov r1, #0x1e
+ mul r1, r2
+ add r0, r1, r0
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ bl LCRandom
+ lsr r1, r0, #0x1f
+ lsl r2, r0, #0x18
+ sub r2, r2, r1
+ mov r0, #0x18
+ ror r2, r0
+ add r0, r1, r2
+ cmp r7, r0
+ ble _02247166
+ mov r6, #1
+ b _02247166
+_02247164:
+ add r6, r0, #0
+_02247166:
+ cmp r6, #0
+ bne _02247176
+ ldr r0, [sp]
+ add r1, r4, #0
+ mov r2, #0
+ mov r3, #0x47
+ bl MOD11_022564A8
+_02247176:
+ ldr r0, _0224718C ; =0x0000311E
+ ldrb r1, [r5, r0]
+ add r1, r1, #1
+ strb r1, [r5, r0]
+_0224717E:
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02247184: .word 0xFFFFFE7F
+_02247188: .word 0x00002D46
+_0224718C: .word 0x0000311E
+
+ thumb_func_start MOD11_02247190
+MOD11_02247190: ; 0x02247190
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x36
+ bne _022471BA
+ mov r2, #0xc0
+ mul r2, r4
+ add r3, r5, r2
+ ldr r2, _022471C0 ; =0x00002DC8
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r2, [r3, r2]
+ ldr r1, [r5, r0]
+ mov r0, #1
+ lsl r2, r2, #1
+ and r1, r0
+ lsr r2, r2, #0x1f
+ cmp r1, r2
+ bne _022471BC
+_022471BA:
+ mov r0, #0
+_022471BC:
+ pop {r3, r4, r5, pc}
+ nop
+_022471C0: .word 0x00002DC8
+
+ thumb_func_start MOD11_022471C4
+MOD11_022471C4: ; 0x022471C4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r1, #0
+ mov r1, #0
+ str r0, [sp]
+ add r4, r2, #0
+ add r5, r3, #0
+ str r1, [sp, #4]
+ bl MOD11_0222FF84
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02230270
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ mov r7, #0
+ cmp r0, #0
+ ble _0224722E
+ ldr r4, _02247234 ; =0x00002D4C
+_022471EE:
+ ldr r0, [sp]
+ add r1, r7, #0
+ bl MOD11_02230270
+ ldr r1, [sp, #8]
+ cmp r1, r0
+ beq _02247224
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r1, [r6, r0]
+ mov r0, #2
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02247224
+ mov r1, #0
+ add r2, r6, #0
+_0224720E:
+ ldrh r0, [r2, r4]
+ cmp r5, r0
+ beq _0224721C
+ add r1, r1, #1
+ add r2, r2, #2
+ cmp r1, #4
+ blt _0224720E
+_0224721C:
+ cmp r1, #4
+ beq _02247224
+ mov r0, #1
+ str r0, [sp, #4]
+_02247224:
+ ldr r0, [sp, #0xc]
+ add r7, r7, #1
+ add r6, #0xc0
+ cmp r7, r0
+ blt _022471EE
+_0224722E:
+ ldr r0, [sp, #4]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02247234: .word 0x00002D4C
+
+ thumb_func_start MOD11_02247238
+MOD11_02247238: ; 0x02247238
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ mov r6, #0
+ bl MOD11_0222FF84
+ add r3, r6, #0
+ cmp r0, #0
+ ble _02247260
+ mov r1, #0xb7
+ lsl r1, r1, #6
+_0224724E:
+ ldr r2, [r5, r1]
+ tst r2, r4
+ beq _02247258
+ mov r6, #1
+ b _02247260
+_02247258:
+ add r3, r3, #1
+ add r5, #0xc0
+ cmp r3, r0
+ blt _0224724E
+_02247260:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02247264
+MOD11_02247264: ; 0x02247264
+ ldr r2, _02247284 ; =0x0000216C
+ mov r0, #0
+ str r0, [r1, r2]
+ add r0, r2, #0
+ mov r3, #1
+ sub r0, #0x1c
+ str r3, [r1, r0]
+ add r0, r2, #0
+ sub r0, #0x30
+ ldr r3, [r1, r0]
+ ldr r0, _02247288 ; =0xFFEFFFFF
+ sub r2, #0x30
+ and r0, r3
+ str r0, [r1, r2]
+ bx lr
+ nop
+_02247284: .word 0x0000216C
+_02247288: .word 0xFFEFFFFF
+
+ thumb_func_start MOD11_0224728C
+MOD11_0224728C: ; 0x0224728C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ bl MOD11_0222FF84
+ mov r2, #0
+ str r0, [sp, #0x14]
+ cmp r0, #0
+ ble _022472B0
+ ldr r1, _02247310 ; =0x000021EC
+_022472A2:
+ ldr r0, [sp, #8]
+ add r0, r0, r2
+ strb r2, [r0, r1]
+ ldr r0, [sp, #0x14]
+ add r2, r2, #1
+ cmp r2, r0
+ blt _022472A2
+_022472B0:
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ sub r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, #0
+ ble _0224730C
+_022472BE:
+ ldr r0, [sp, #0x10]
+ add r4, r0, #1
+ ldr r0, [sp, #0x14]
+ cmp r4, r0
+ bge _02247300
+ ldr r1, [sp, #8]
+ ldr r0, [sp, #0x10]
+ add r6, r1, r0
+_022472CE:
+ ldr r0, _02247310 ; =0x000021EC
+ ldr r1, [sp, #8]
+ ldrb r0, [r6, r0]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #8]
+ ldr r2, [sp, #0xc]
+ add r7, r0, r4
+ ldr r0, _02247310 ; =0x000021EC
+ ldrb r5, [r7, r0]
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r3, r5, #0
+ bl MOD11_02244248
+ cmp r0, #0
+ beq _022472F8
+ ldr r0, _02247310 ; =0x000021EC
+ ldr r1, [sp, #0xc]
+ strb r5, [r6, r0]
+ strb r1, [r7, r0]
+_022472F8:
+ ldr r0, [sp, #0x14]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _022472CE
+_02247300:
+ ldr r0, [sp, #0x10]
+ add r1, r0, #1
+ ldr r0, [sp, #0x18]
+ str r1, [sp, #0x10]
+ cmp r1, r0
+ blt _022472BE
+_0224730C:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02247310: .word 0x000021EC
+
+ thumb_func_start MOD11_02247314
+MOD11_02247314: ; 0x02247314
+ push {r3, r4}
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r2, [r1, r2]
+ mov r1, #7
+ lsl r1, r1, #0xc
+ mov r0, #0
+ tst r1, r2
+ beq _0224733E
+ ldr r4, _02247344 ; =0x0225E278
+ add r2, r0, #0
+_0224732A:
+ ldrh r1, [r4]
+ cmp r3, r1
+ bne _02247336
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+_02247336:
+ add r2, r2, #1
+ add r4, r4, #2
+ cmp r2, #6
+ blo _0224732A
+_0224733E:
+ pop {r3, r4}
+ bx lr
+ nop
+_02247344: .word 0x0225E278
+
+ thumb_func_start MOD11_02247348
+MOD11_02247348: ; 0x02247348
+ push {r3, r4}
+ mov r4, #0xc0
+ mul r4, r2
+ add r2, r1, r4
+ ldr r1, _02247378 ; =0x00002DCC
+ mov r0, #0
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0xd
+ lsr r1, r1, #0x1d
+ beq _02247374
+ ldr r4, _0224737C ; =0x0225E29E
+ add r2, r0, #0
+_02247360:
+ ldrh r1, [r4]
+ cmp r3, r1
+ bne _0224736C
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+_0224736C:
+ add r2, r2, #1
+ add r4, r4, #2
+ cmp r2, #0xe
+ blo _02247360
+_02247374:
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_02247378: .word 0x00002DCC
+_0224737C: .word 0x0225E29E
+
+ thumb_func_start MOD11_02247380
+MOD11_02247380: ; 0x02247380
+ push {r4, r5, r6, r7}
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ ldr r3, [r1, r0]
+ ldr r0, _022473E8 ; =0x00000183
+ cmp r3, r0
+ beq _022473E4
+ ldr r4, [r1, #0x64]
+ mov r0, #0xc0
+ add r2, r4, #0
+ mul r2, r0
+ ldr r4, _022473EC ; =0x00002DCC
+ add r0, r1, r2
+ ldr r4, [r0, r4]
+ lsl r4, r4, #0x13
+ lsr r7, r4, #0x1d
+ cmp r7, #4
+ beq _022473E4
+ mov r6, #0
+ cmp r7, #0
+ bls _022473BA
+ ldr r4, _022473F0 ; =0x00002DF0
+_022473AC:
+ ldrh r5, [r0, r4]
+ cmp r3, r5
+ beq _022473E4
+ add r6, r6, #1
+ add r0, r0, #2
+ cmp r6, r7
+ blo _022473AC
+_022473BA:
+ add r2, r1, r2
+ lsl r0, r6, #1
+ add r2, r2, r0
+ ldr r0, _022473F0 ; =0x00002DF0
+ strh r3, [r2, r0]
+ sub r0, #0x24
+ add r2, r1, r0
+ ldr r3, [r1, #0x64]
+ mov r0, #0xc0
+ add r1, r3, #0
+ mul r1, r0
+ ldr r3, [r2, r1]
+ ldr r0, _022473F4 ; =0xFFFFE3FF
+ and r0, r3
+ lsl r3, r3, #0x13
+ lsr r3, r3, #0x1d
+ add r3, r3, #1
+ lsl r3, r3, #0x1d
+ lsr r3, r3, #0x13
+ orr r0, r3
+ str r0, [r2, r1]
+_022473E4:
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+_022473E8: .word 0x00000183
+_022473EC: .word 0x00002DCC
+_022473F0: .word 0x00002DF0
+_022473F4: .word 0xFFFFE3FF
+
+ thumb_func_start MOD11_022473F8
+MOD11_022473F8: ; 0x022473F8
+ mov r3, #0xc0
+ mul r3, r2
+ add r3, r1, r3
+ ldr r1, _02247414 ; =0x00002D4C
+ mov r0, #0
+_02247402:
+ ldrh r2, [r3, r1]
+ cmp r2, #0
+ beq _02247410
+ add r0, r0, #1
+ add r3, r3, #2
+ cmp r0, #4
+ blt _02247402
+_02247410:
+ bx lr
+ nop
+_02247414: .word 0x00002D4C
+
+ thumb_func_start MOD11_02247418
+MOD11_02247418: ; 0x02247418
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r2, #0
+ mov r2, #0
+ add r5, r0, #0
+ add r7, r1, #0
+ str r2, [sp]
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ bne _02247430
+ mov r6, #0
+ b _02247444
+_02247430:
+ ldr r0, _02247594 ; =0x00002160
+ ldr r6, [r5, r0]
+ cmp r6, #0
+ bne _02247444
+ ldr r0, _02247598 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224759C ; =0x000003E2
+ ldrb r6, [r1, r0]
+_02247444:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ mov r3, #0xa
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02247474
+ cmp r6, #0xd
+ bne _02247474
+ cmp r7, r4
+ beq _02247474
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022475A0 ; =0x00002D90
+ ldr r0, [r1, r0]
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, _022475A4 ; =0x0000215C
+ str r0, [r5, r1]
+ mov r0, #0xb2
+ str r0, [sp]
+_02247474:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ mov r3, #0xb
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022474BA
+ cmp r6, #0xb
+ bne _022474BA
+ ldr r0, _022475A8 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _022474BA
+ ldr r0, _02247598 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _022475AC ; =0x000003E1
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _022474BA
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022475A0 ; =0x00002D90
+ ldr r0, [r1, r0]
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, _022475A4 ; =0x0000215C
+ str r0, [r5, r1]
+ mov r0, #0xb2
+ str r0, [sp]
+_022474BA:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ mov r3, #0x12
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02247500
+ cmp r6, #0xa
+ bne _02247500
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022475B0 ; =0x00002DAC
+ ldr r0, [r1, r0]
+ mov r1, #0x20
+ tst r0, r1
+ bne _02247500
+ ldr r0, _022475A8 ; =0x0000213C
+ ldr r0, [r5, r0]
+ tst r0, r1
+ bne _02247500
+ ldr r0, _02247598 ; =0x00003044
+ ldr r3, [r5, r0]
+ lsl r0, r3, #4
+ add r2, r5, r0
+ ldr r0, _022475AC ; =0x000003E1
+ ldrb r0, [r2, r0]
+ cmp r0, #0
+ bne _022474FC
+ add r1, #0xe5
+ cmp r3, r1
+ bne _02247500
+_022474FC:
+ mov r0, #0xb3
+ str r0, [sp]
+_02247500:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ mov r3, #0x2b
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224752C
+ ldr r0, _02247598 ; =0x00003044
+ ldr r2, _022475B4 ; =0x0225FF84
+ ldr r3, [r5, r0]
+ mov r1, #0
+_02247518:
+ ldrh r0, [r2]
+ cmp r3, r0
+ bne _02247524
+ mov r0, #0xb5
+ str r0, [sp]
+ b _0224752C
+_02247524:
+ add r1, r1, #1
+ add r2, r2, #2
+ cmp r1, #0xc
+ blo _02247518
+_0224752C:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ mov r3, #0x4e
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02247548
+ cmp r6, #0xd
+ bne _02247548
+ cmp r7, r4
+ beq _02247548
+ mov r0, #0xb6
+ str r0, [sp]
+_02247548:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ mov r3, #0x57
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224758E
+ cmp r6, #0xb
+ bne _0224758E
+ ldr r0, _022475A8 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _0224758E
+ ldr r0, _02247598 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _022475AC ; =0x000003E1
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _0224758E
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022475A0 ; =0x00002D90
+ ldr r0, [r1, r0]
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, _022475A4 ; =0x0000215C
+ str r0, [r5, r1]
+ mov r0, #0xb2
+ str r0, [sp]
+_0224758E:
+ ldr r0, [sp]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02247594: .word 0x00002160
+_02247598: .word 0x00003044
+_0224759C: .word 0x000003E2
+_022475A0: .word 0x00002D90
+_022475A4: .word 0x0000215C
+_022475A8: .word 0x0000213C
+_022475AC: .word 0x000003E1
+_022475B0: .word 0x00002DAC
+_022475B4: .word 0x0225FF84
+
+ thumb_func_start MOD11_022475B8
+MOD11_022475B8: ; 0x022475B8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #3
+ beq _022475D0
+ cmp r0, #0x3d
+ beq _02247616
+ b _02247696
+_022475D0:
+ mov r2, #0xc0
+ add r0, r4, #0
+ mul r0, r2
+ ldr r3, _022476B4 ; =0x00002D8C
+ add r0, r5, r0
+ ldr r1, [r0, r3]
+ cmp r1, #0
+ beq _02247696
+ add r1, r3, #0
+ sub r1, #0x31
+ ldrsb r1, [r0, r1]
+ cmp r1, #0xc
+ bge _02247696
+ add r2, #0x90
+ ldr r1, [r5, r2]
+ add r3, #0x48
+ ldr r0, [r0, r3]
+ add r1, r1, #1
+ cmp r1, r0
+ beq _02247696
+ add r0, r5, #0
+ mov r1, #0x11
+ add r0, #0x8c
+ str r1, [r0]
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0x94
+ str r4, [r0]
+ mov r0, #0xc
+ str r0, [sp]
+ mov r6, #1
+ b _02247696
+_02247616:
+ ldr r1, _022476B8 ; =0x00002DAC
+ mov r0, #0xc0
+ add r7, r4, #0
+ mul r7, r0
+ add r0, r5, r1
+ str r0, [sp, #4]
+ ldr r0, [r0, r7]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ beq _02247696
+ add r0, r5, r7
+ sub r1, #0x20
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _02247696
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ cmp r1, #3
+ bge _02247696
+ ldr r0, [sp, #4]
+ mov r1, #7
+ ldr r0, [r0, r7]
+ tst r1, r0
+ beq _02247656
+ mov r0, #0x13
+ add r1, r6, #0
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0224768A
+_02247656:
+ ldr r1, _022476BC ; =0x00000F88
+ tst r1, r0
+ beq _02247666
+ mov r0, #0x13
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0224768A
+_02247666:
+ mov r1, #0x10
+ tst r1, r0
+ beq _02247676
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0224768A
+_02247676:
+ mov r1, #0x40
+ tst r0, r1
+ beq _02247684
+ mov r0, #3
+ add r1, #0xf0
+ str r0, [r5, r1]
+ b _0224768A
+_02247684:
+ mov r0, #4
+ add r1, #0xf0
+ str r0, [r5, r1]
+_0224768A:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r4, [r5, r0]
+ mov r0, #0xbe
+ str r0, [sp]
+ mov r6, #1
+_02247696:
+ cmp r6, #1
+ bne _022476AC
+ ldr r2, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r5, #8]
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+_022476AC:
+ add r0, r6, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022476B4: .word 0x00002D8C
+_022476B8: .word 0x00002DAC
+_022476BC: .word 0x00000F88
+
+ thumb_func_start MOD11_022476C0
+MOD11_022476C0: ; 0x022476C0
+ push {r4, lr}
+ cmp r0, #0
+ bge _022476CC
+ mov r4, #0
+ mvn r4, r4
+ b _022476CE
+_022476CC:
+ mov r4, #1
+_022476CE:
+ bl _s32_div_f
+ cmp r0, #0
+ bne _022476D8
+ add r0, r4, #0
+_022476D8:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022476DC
+MOD11_022476DC: ; 0x022476DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0xd0
+ add r7, r0, #0
+ add r4, r1, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #0x80]
+ mov r0, #0
+ str r0, [sp, #0x84]
+ str r0, [sp, #0xcc]
+
+ thumb_func_start MOD11_022476F0
+MOD11_022476F0: ; 0x022476F0
+ ldr r0, [r4, #0x58]
+ cmp r0, #0xf
+ bls _022476FA
+ bl _02248282
+_022476FA:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02247706: ; jump table
+ .short _02247726 - _02247706 - 2 ; case 0
+ .short _022477A2 - _02247706 - 2 ; case 1
+ .short _0224785A - _02247706 - 2 ; case 2
+ .short _0224796A - _02247706 - 2 ; case 3
+ .short _022479E0 - _02247706 - 2 ; case 4
+ .short _02247B34 - _02247706 - 2 ; case 5
+ .short _02247C74 - _02247706 - 2 ; case 6
+ .short _02247E76 - _02247706 - 2 ; case 7
+ .short _02247FCC - _02247706 - 2 ; case 8
+ .short _022480A4 - _02247706 - 2 ; case 9
+ .short _02248118 - _02247706 - 2 ; case 10
+ .short _022481A6 - _02247706 - 2 ; case 11
+ .short _022481C4 - _02247706 - 2 ; case 12
+ .short _022481FE - _02247706 - 2 ; case 13
+ .short _0224823A - _02247706 - 2 ; case 14
+ .short _0224827A - _02247706 - 2 ; case 15
+_02247726:
+ ldr r0, _02247A18 ; =0x00003121
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _02247798
+ add r0, r7, #0
+ bl MOD11_0223125C
+ cmp r0, #0xf
+ bhi _0224778C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02247744: ; jump table
+ .short _0224778C - _02247744 - 2 ; case 0
+ .short _0224778C - _02247744 - 2 ; case 1
+ .short _02247764 - _02247744 - 2 ; case 2
+ .short _02247764 - _02247744 - 2 ; case 3
+ .short _02247764 - _02247744 - 2 ; case 4
+ .short _0224776E - _02247744 - 2 ; case 5
+ .short _0224776E - _02247744 - 2 ; case 6
+ .short _0224776E - _02247744 - 2 ; case 7
+ .short _0224778C - _02247744 - 2 ; case 8
+ .short _0224778C - _02247744 - 2 ; case 9
+ .short _0224777A - _02247744 - 2 ; case 10
+ .short _0224778C - _02247744 - 2 ; case 11
+ .short _0224778C - _02247744 - 2 ; case 12
+ .short _0224778C - _02247744 - 2 ; case 13
+ .short _02247784 - _02247744 - 2 ; case 14
+ .short _02247784 - _02247744 - 2 ; case 15
+_02247764:
+ ldr r0, _02247A1C ; =0x0000010F
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224778C
+_0224776E:
+ mov r0, #0x11
+ lsl r0, r0, #4
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224778C
+_0224777A:
+ ldr r0, _02247A20 ; =0x00000111
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224778C
+_02247784:
+ ldr r0, _02247A24 ; =0x00000112
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+_0224778C:
+ ldr r0, [sp, #0x84]
+ cmp r0, #1
+ bne _02247798
+ ldr r0, _02247A18 ; =0x00003121
+ mov r1, #1
+ strb r1, [r4, r0]
+_02247798:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ bl _02248282
+_022477A2:
+ ldr r0, [sp, #0x80]
+ mov r6, #0
+ cmp r0, #0
+ ble _02247846
+ ldr r0, _02247A28 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0x90]
+_022477B0:
+ ldr r0, _02247A2C ; =0x000021EC
+ add r1, r4, r6
+ ldrb r5, [r1, r0]
+ add r0, r7, #0
+ mov r2, #0
+ add r1, r5, #0
+ bl MOD11_02230308
+ str r0, [sp, #0x88]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #2
+ bl MOD11_02230308
+ add r2, r0, #0
+ ldr r1, [sp, #0x88]
+ add r0, r4, #0
+ bl MOD11_0224C84C
+ mov r1, #0x12
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ mov r0, #0xc0
+ mul r0, r5
+ ldr r1, [sp, #0x90]
+ str r0, [sp, #0x8c]
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ bne _0224783E
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r2, [r4, r0]
+ cmp r2, #0xff
+ beq _0224783E
+ ldr r0, [sp, #0x8c]
+ add r1, r4, r0
+ ldr r0, _02247A30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0224783E
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02247A30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0224783E
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x24
+ bne _0224783E
+ ldr r1, [sp, #0x90]
+ ldr r0, [sp, #0x8c]
+ ldr r1, [r1, r0]
+ mov r0, #4
+ add r2, r1, #0
+ orr r2, r0
+ ldr r1, [sp, #0x90]
+ ldr r0, [sp, #0x8c]
+ str r2, [r1, r0]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ mov r0, #0xbb
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247846
+_0224783E:
+ ldr r0, [sp, #0x80]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _022477B0
+_02247846:
+ ldr r0, [sp, #0x80]
+ cmp r6, r0
+ beq _02247850
+ bl _02248282
+_02247850:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ bl _02248282
+_0224785A:
+ mov r0, #0
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ ble _02247958
+ ldr r0, _02247A28 ; =0x00002D68
+ add r6, r4, r0
+ mov r0, #1
+ str r0, [sp, #0xbc]
+ str r0, [sp, #0xb8]
+ str r0, [sp, #0xb4]
+ str r0, [sp, #0xb0]
+_02247872:
+ ldr r0, [sp, #0x2c]
+ add r1, r4, r0
+ ldr r0, _02247A2C ; =0x000021EC
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ add r5, r1, #0
+ mul r5, r0
+ ldr r0, [r6, r5]
+ str r1, [sp, #0x10]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bne _0224793C
+ ldr r0, _02247A30 ; =0x00002D8C
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0224793C
+ ldr r1, [sp, #0x10]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2d
+ bgt _022478A8
+ bge _022478D8
+ cmp r0, #2
+ beq _022478B6
+ b _0224793C
+_022478A8:
+ cmp r0, #0x46
+ bgt _022478B0
+ beq _022478FA
+ b _0224793C
+_022478B0:
+ cmp r0, #0x75
+ beq _0224791C
+ b _0224793C
+_022478B6:
+ ldr r0, [r6, r5]
+ ldr r1, [sp, #0xb0]
+ bic r0, r1
+ mov r1, #1
+ orr r0, r1
+ str r0, [r6, r5]
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #2
+ tst r0, r1
+ bne _0224793C
+ mov r0, #0xb7
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224793C
+_022478D8:
+ ldr r0, [r6, r5]
+ ldr r1, [sp, #0xb4]
+ bic r0, r1
+ mov r1, #1
+ orr r0, r1
+ str r0, [r6, r5]
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #8
+ tst r0, r1
+ bne _0224793C
+ mov r0, #0xb8
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224793C
+_022478FA:
+ ldr r0, [r6, r5]
+ ldr r1, [sp, #0xb8]
+ bic r0, r1
+ mov r1, #1
+ orr r0, r1
+ str r0, [r6, r5]
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _0224793C
+ mov r0, #0xb9
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224793C
+_0224791C:
+ ldr r0, [r6, r5]
+ ldr r1, [sp, #0xbc]
+ bic r0, r1
+ mov r1, #1
+ orr r0, r1
+ str r0, [r6, r5]
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x80
+ tst r0, r1
+ bne _0224793C
+ mov r0, #0xfc
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+_0224793C:
+ ldr r0, [sp, #0x84]
+ cmp r0, #1
+ bne _0224794C
+ mov r1, #0x46
+ ldr r0, [sp, #0x10]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ b _02247958
+_0224794C:
+ ldr r0, [sp, #0x2c]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x2c]
+ cmp r1, r0
+ blt _02247872
+_02247958:
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #0x80]
+ cmp r1, r0
+ bne _022479D2
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ bl _02248282
+_0224796A:
+ ldr r0, [sp, #0x80]
+ mov r5, #0
+ cmp r0, #0
+ ble _022479CC
+ ldr r0, _02247A28 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0x94]
+_02247978:
+ ldr r0, _02247A2C ; =0x000021EC
+ add r1, r4, r5
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ add r6, r1, #0
+ mul r6, r0
+ ldr r0, [sp, #0x94]
+ str r1, [sp, #0x14]
+ ldr r0, [r0, r6]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ bne _022479C4
+ ldr r0, _02247A30 ; =0x00002D8C
+ add r1, r4, r6
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022479C4
+ ldr r1, [sp, #0x14]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x16
+ bne _022479C4
+ ldr r0, [sp, #0x94]
+ ldr r1, [r0, r6]
+ mov r0, #2
+ orr r1, r0
+ ldr r0, [sp, #0x94]
+ str r1, [r0, r6]
+ mov r1, #0x46
+ ldr r0, [sp, #0x14]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0xba
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _022479CC
+_022479C4:
+ ldr r0, [sp, #0x80]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _02247978
+_022479CC:
+ ldr r0, [sp, #0x80]
+ cmp r5, r0
+ beq _022479D6
+_022479D2:
+ bl _02248282
+_022479D6:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ bl _02248282
+_022479E0:
+ mov r0, #0
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bgt _022479EC
+ b _02247B22
+_022479EC:
+ ldr r0, _02247A28 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0x9c]
+_022479F2:
+ ldr r0, [sp, #0x30]
+ add r1, r4, r0
+ ldr r0, _02247A2C ; =0x000021EC
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ str r1, [sp, #0x18]
+ ldr r1, [sp, #0x9c]
+ str r0, [sp, #0x98]
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ beq _02247A0E
+ b _02247B14
+_02247A0E:
+ ldr r0, [sp, #0x98]
+ add r1, r4, r0
+ ldr r0, _02247A30 ; =0x00002D8C
+ b _02247A34
+ nop
+_02247A18: .word 0x00003121
+_02247A1C: .word 0x0000010F
+_02247A20: .word 0x00000111
+_02247A24: .word 0x00000112
+_02247A28: .word 0x00002D68
+_02247A2C: .word 0x000021EC
+_02247A30: .word 0x00002D8C
+_02247A34:
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02247B14
+ ldr r1, [sp, #0x18]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x58
+ bne _02247B14
+ mov r0, #0
+ str r0, [sp, #0x78]
+ str r0, [sp, #0x74]
+ str r0, [sp, #0x7c]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ ble _02247ACE
+ add r5, r4, #0
+_02247A56:
+ ldr r1, [sp, #0x18]
+ add r0, r7, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ ldr r1, [sp, #0x7c]
+ add r0, r7, #0
+ bl MOD11_02230270
+ cmp r6, r0
+ beq _02247AC0
+ ldr r0, _02247D60 ; =0x00002DB0
+ ldr r1, [r5, r0]
+ mov r0, #1
+ lsl r0, r0, #0x18
+ tst r0, r1
+ bne _02247AC0
+ ldr r0, _02247D64 ; =0x00002D8C
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02247AC0
+ ldr r0, _02247D68 ; =0x00002D5A
+ ldrsb r0, [r5, r0]
+ lsl r2, r0, #1
+ ldr r0, _02247D6C ; =0x0225E284
+ add r1, r0, r2
+ ldr r0, _02247D70 ; =0x00002D44
+ ldrb r1, [r1, #1]
+ ldrh r3, [r5, r0]
+ ldr r0, _02247D6C ; =0x0225E284
+ ldrb r0, [r0, r2]
+ mul r0, r3
+ bl _s32_div_f
+ ldr r1, [sp, #0x78]
+ add r0, r1, r0
+ str r0, [sp, #0x78]
+ ldr r0, _02247D74 ; =0x00002D5D
+ ldrsb r0, [r5, r0]
+ lsl r2, r0, #1
+ ldr r0, _02247D6C ; =0x0225E284
+ add r1, r0, r2
+ ldr r0, _02247D78 ; =0x00002D4A
+ ldrb r1, [r1, #1]
+ ldrh r3, [r5, r0]
+ ldr r0, _02247D6C ; =0x0225E284
+ ldrb r0, [r0, r2]
+ mul r0, r3
+ bl _s32_div_f
+ ldr r1, [sp, #0x74]
+ add r0, r1, r0
+ str r0, [sp, #0x74]
+_02247AC0:
+ ldr r0, [sp, #0x7c]
+ add r5, #0xc0
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x7c]
+ cmp r1, r0
+ blt _02247A56
+_02247ACE:
+ ldr r1, [sp, #0x9c]
+ ldr r0, [sp, #0x98]
+ ldr r1, [r1, r0]
+ mov r0, #8
+ add r2, r1, #0
+ orr r2, r0
+ ldr r1, [sp, #0x9c]
+ ldr r0, [sp, #0x98]
+ str r2, [r1, r0]
+ ldr r1, [sp, #0x78]
+ ldr r0, [sp, #0x74]
+ add r0, r1, r0
+ beq _02247B14
+ ldr r0, [sp, #0x74]
+ cmp r1, r0
+ blt _02247AF2
+ mov r1, #0x12
+ b _02247AF4
+_02247AF2:
+ mov r1, #0xf
+_02247AF4:
+ add r0, r4, #0
+ add r0, #0x8c
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ add r1, #0x94
+ str r0, [r1]
+ mov r0, #0xc
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247B22
+_02247B14:
+ ldr r0, [sp, #0x30]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x30]
+ cmp r1, r0
+ bge _02247B22
+ b _022479F2
+_02247B22:
+ ldr r1, [sp, #0x30]
+ ldr r0, [sp, #0x80]
+ cmp r1, r0
+ beq _02247B2C
+ b _02248282
+_02247B2C:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_02247B34:
+ mov r0, #0
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bgt _02247B40
+ b _02247C62
+_02247B40:
+ ldr r0, _02247D7C ; =0x00002D68
+ add r6, r4, r0
+_02247B44:
+ ldr r0, [sp, #0x34]
+ add r1, r4, r0
+ ldr r0, _02247D80 ; =0x000021EC
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ add r5, r1, #0
+ mul r5, r0
+ ldr r0, [r6, r5]
+ str r1, [sp, #0x1c]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ bne _02247C54
+ ldr r0, _02247D64 ; =0x00002D8C
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02247C54
+ ldr r1, [sp, #0x1c]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x6b
+ bne _02247C54
+ ldr r1, [r6, r5]
+ mov r0, #0x10
+ orr r0, r1
+ str r0, [r6, r5]
+ mov r0, #0
+ str r0, [sp, #0x70]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ ble _02247C40
+ add r0, r4, r5
+ str r4, [sp, #0x50]
+ str r0, [sp, #0x4c]
+_02247B8A:
+ ldr r1, [sp, #0x1c]
+ add r0, r7, #0
+ bl MOD11_02230270
+ add r5, r0, #0
+ ldr r1, [sp, #0x70]
+ add r0, r7, #0
+ bl MOD11_02230270
+ cmp r5, r0
+ beq _02247C2E
+ ldr r1, [sp, #0x50]
+ ldr r0, _02247D64 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02247C2E
+ mov r0, #0
+ str r0, [sp, #0x6c]
+ add r6, r1, #0
+_02247BB0:
+ ldr r0, _02247D84 ; =0x00002D4C
+ ldrh r5, [r6, r0]
+ cmp r5, #0
+ beq _02247C1C
+ mov r0, #0
+ str r0, [sp, #0xc8]
+ ldr r0, [sp, #0x70]
+ add r1, r4, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x1c]
+ add r2, r5, #0
+ str r0, [sp, #4]
+ ldr r0, _02247D88 ; =0x00002144
+ mov r3, #0
+ ldr r0, [r4, r0]
+ str r0, [sp, #8]
+ add r0, sp, #0xc8
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ bl MOD11_02246274
+ ldr r1, _02247D88 ; =0x00002144
+ str r0, [r4, r1]
+ ldr r1, [sp, #0xc8]
+ mov r0, #8
+ tst r0, r1
+ bne _02247C1C
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0224C8C0
+ cmp r0, #0
+ bne _02247C1C
+ ldr r1, [sp, #0xc8]
+ mov r0, #2
+ tst r0, r1
+ bne _02247C16
+ lsl r0, r5, #4
+ add r1, r4, r0
+ ldr r0, _02247D8C ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x26
+ bne _02247C1C
+ ldr r1, [sp, #0x4c]
+ ldr r0, _02247D90 ; =0x00002D74
+ ldr r2, [sp, #0x50]
+ ldrb r0, [r1, r0]
+ ldr r1, _02247D90 ; =0x00002D74
+ ldrb r1, [r2, r1]
+ cmp r0, r1
+ bhi _02247C1C
+_02247C16:
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247C28
+_02247C1C:
+ ldr r0, [sp, #0x6c]
+ add r6, r6, #2
+ add r0, r0, #1
+ str r0, [sp, #0x6c]
+ cmp r0, #4
+ blt _02247BB0
+_02247C28:
+ ldr r0, [sp, #0x84]
+ cmp r0, #1
+ beq _02247C40
+_02247C2E:
+ ldr r0, [sp, #0x50]
+ add r0, #0xc0
+ str r0, [sp, #0x50]
+ ldr r0, [sp, #0x70]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x70]
+ cmp r1, r0
+ blt _02247B8A
+_02247C40:
+ ldr r0, [sp, #0x84]
+ cmp r0, #1
+ bne _02247C62
+ mov r1, #0x46
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0xc2
+ str r0, [sp, #0xcc]
+ b _02247C62
+_02247C54:
+ ldr r0, [sp, #0x34]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x34]
+ cmp r1, r0
+ bge _02247C62
+ b _02247B44
+_02247C62:
+ ldr r1, [sp, #0x34]
+ ldr r0, [sp, #0x80]
+ cmp r1, r0
+ beq _02247C6C
+ b _02248282
+_02247C6C:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_02247C74:
+ mov r0, #0
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bgt _02247C80
+ b _02247E64
+_02247C80:
+ ldr r0, _02247D7C ; =0x00002D68
+ add r6, r4, r0
+_02247C84:
+ ldr r0, [sp, #0x38]
+ add r1, r4, r0
+ ldr r0, _02247D80 ; =0x000021EC
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ add r5, r1, #0
+ mul r5, r0
+ ldr r0, [r6, r5]
+ str r1, [sp, #0x20]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ bne _02247CB2
+ ldr r0, _02247D64 ; =0x00002D8C
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02247CB2
+ ldr r1, [sp, #0x20]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x6c
+ beq _02247CB4
+_02247CB2:
+ b _02247E56
+_02247CB4:
+ ldr r1, [r6, r5]
+ mov r0, #0x20
+ orr r0, r1
+ str r0, [r6, r5]
+ mov r5, #0
+ ldr r0, [sp, #0x80]
+ str r5, [sp, #0x5c]
+ str r5, [sp, #0x68]
+ cmp r0, #0
+ bgt _02247CCA
+ b _02247DF2
+_02247CCA:
+ str r4, [sp, #0x58]
+_02247CCC:
+ ldr r1, [sp, #0x20]
+ add r0, r7, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ ldr r1, [sp, #0x68]
+ add r0, r7, #0
+ bl MOD11_02230270
+ cmp r6, r0
+ beq _02247DDE
+ ldr r1, [sp, #0x58]
+ ldr r0, _02247D64 ; =0x00002D8C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _02247DDE
+ ldr r0, [sp, #0x5c]
+ add r0, r0, r1
+ str r0, [sp, #0x5c]
+ mov r0, #0
+ str r0, [sp, #0x64]
+ ldr r0, [sp, #0x58]
+ str r0, [sp, #0x54]
+_02247CFA:
+ ldr r1, [sp, #0x54]
+ ldr r0, _02247D84 ; =0x00002D4C
+ ldrh r6, [r1, r0]
+ ldr r1, _02247D94 ; =0x000003E1
+ lsl r0, r6, #4
+ add r0, r4, r0
+ ldrb r1, [r0, r1]
+ str r1, [sp, #0x60]
+ cmp r1, #1
+ bne _02247DB2
+ ldr r1, _02247D8C ; =0x000003DE
+ ldrh r0, [r0, r1]
+ cmp r0, #0x59
+ bgt _02247D1E
+ bge _02247D46
+ cmp r0, #0x26
+ beq _02247D2C
+ b _02247D98
+_02247D1E:
+ cmp r0, #0x90
+ bgt _02247D26
+ beq _02247D46
+ b _02247D98
+_02247D26:
+ cmp r0, #0xe3
+ beq _02247D46
+ b _02247D98
+_02247D2C:
+ cmp r5, #0x96
+ blo _02247D3C
+ bne _02247DCE
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _02247DCE
+_02247D3C:
+ mov r5, #0x96
+ add r0, r5, #0
+ add r0, #0x8e
+ str r6, [r4, r0]
+ b _02247DCE
+_02247D46:
+ cmp r5, #0x78
+ blo _02247D56
+ bne _02247DCE
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _02247DCE
+_02247D56:
+ mov r5, #0x78
+ add r0, r5, #0
+ add r0, #0xac
+ str r6, [r4, r0]
+ b _02247DCE
+ .align 2, 0
+_02247D60: .word 0x00002DB0
+_02247D64: .word 0x00002D8C
+_02247D68: .word 0x00002D5A
+_02247D6C: .word 0x0225E284
+_02247D70: .word 0x00002D44
+_02247D74: .word 0x00002D5D
+_02247D78: .word 0x00002D4A
+_02247D7C: .word 0x00002D68
+_02247D80: .word 0x000021EC
+_02247D84: .word 0x00002D4C
+_02247D88: .word 0x00002144
+_02247D8C: .word 0x000003DE
+_02247D90: .word 0x00002D74
+_02247D94: .word 0x000003E1
+_02247D98:
+ cmp r5, #0x50
+ blo _02247DA8
+ bne _02247DCE
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _02247DCE
+_02247DA8:
+ mov r5, #0x50
+ add r0, r5, #0
+ add r0, #0xd4
+ str r6, [r4, r0]
+ b _02247DCE
+_02247DB2:
+ add r0, r1, #0
+ cmp r5, r0
+ blo _02247DC6
+ cmp r5, r0
+ bne _02247DCE
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _02247DCE
+_02247DC6:
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r5, [sp, #0x60]
+ str r6, [r4, r0]
+_02247DCE:
+ ldr r0, [sp, #0x54]
+ add r0, r0, #2
+ str r0, [sp, #0x54]
+ ldr r0, [sp, #0x64]
+ add r0, r0, #1
+ str r0, [sp, #0x64]
+ cmp r0, #4
+ blt _02247CFA
+_02247DDE:
+ ldr r0, [sp, #0x58]
+ add r0, #0xc0
+ str r0, [sp, #0x58]
+ ldr r0, [sp, #0x68]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x68]
+ cmp r1, r0
+ bge _02247DF2
+ b _02247CCC
+_02247DF2:
+ cmp r5, #0
+ beq _02247E08
+ mov r1, #0x46
+ ldr r0, [sp, #0x20]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0xc3
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247E64
+_02247E08:
+ ldr r0, [sp, #0x5c]
+ cmp r0, #0
+ beq _02247E64
+ ldr r2, [sp, #0x20]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022482A4
+ add r5, r0, #0
+ add r0, r7, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_022473F8
+ add r6, r0, #0
+ bl LCRandom
+ add r1, r6, #0
+ bl _s32_div_f
+ mov r0, #0xc0
+ add r2, r5, #0
+ mul r2, r0
+ lsl r3, r1, #1
+ add r1, r4, r2
+ add r2, r3, r1
+ ldr r1, _02248144 ; =0x00002D4C
+ ldrh r2, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x64
+ str r2, [r4, r1]
+ ldr r1, [sp, #0x20]
+ add r0, #0x58
+ str r1, [r4, r0]
+ mov r0, #0xc3
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247E64
+_02247E56:
+ ldr r0, [sp, #0x38]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x38]
+ cmp r1, r0
+ bge _02247E64
+ b _02247C84
+_02247E64:
+ ldr r1, [sp, #0x38]
+ ldr r0, [sp, #0x80]
+ cmp r1, r0
+ beq _02247E6E
+ b _02248282
+_02247E6E:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_02247E76:
+ mov r0, #0
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bgt _02247E82
+ b _02247FBA
+_02247E82:
+ ldr r0, _02248148 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0xa0]
+_02247E88:
+ ldr r0, [sp, #0x3c]
+ add r1, r4, r0
+ ldr r0, _0224814C ; =0x000021EC
+ ldrb r5, [r1, r0]
+ mov r0, #0xc0
+ add r6, r5, #0
+ mul r6, r0
+ ldr r0, [sp, #0xa0]
+ ldr r0, [r0, r6]
+ lsl r0, r0, #0x17
+ lsr r0, r0, #0x1f
+ bne _02247F9A
+ ldr r0, _02248150 ; =0x00002D8C
+ add r1, r4, r6
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02247F9A
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x77
+ bne _02247F9A
+ ldr r0, [sp, #0xa0]
+ ldr r1, [r0, r6]
+ mov r0, #1
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, [sp, #0xa0]
+ str r1, [r0, r6]
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02247F74
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #0
+ bl MOD11_02230308
+ str r0, [sp, #0xc0]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #2
+ bl MOD11_02230308
+ ldr r2, [sp, #0xc0]
+ mov r1, #0xc0
+ mul r1, r2
+ ldr r2, _02248150 ; =0x00002D8C
+ add r1, r4, r1
+ ldr r3, [r1, r2]
+ str r0, [sp, #0xc4]
+ cmp r3, #0
+ beq _02247F38
+ add r2, #0x2c
+ ldrh r2, [r1, r2]
+ cmp r2, #0
+ beq _02247F38
+ mov r2, #0xc0
+ mul r2, r0
+ add r0, r4, r2
+ ldr r2, _02248150 ; =0x00002D8C
+ ldr r2, [r0, r2]
+ cmp r2, #0
+ beq _02247F38
+ ldr r2, _02248154 ; =0x00002DB8
+ ldrh r0, [r0, r2]
+ cmp r0, #0
+ beq _02247F38
+ bl LCRandom
+ lsl r0, r0, #0x1f
+ lsr r1, r0, #0x1d
+ add r0, sp, #0xc0
+ ldr r1, [r0, r1]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02248154 ; =0x00002DB8
+ ldrh r1, [r1, r0]
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247F9A
+_02247F38:
+ cmp r3, #0
+ beq _02247F50
+ ldr r0, _02248154 ; =0x00002DB8
+ ldrh r1, [r1, r0]
+ cmp r1, #0
+ beq _02247F50
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247F9A
+_02247F50:
+ ldr r1, [sp, #0xc4]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _02248150 ; =0x00002D8C
+ add r0, r4, r0
+ ldr r1, [r0, r1]
+ cmp r1, #0
+ beq _02247F9A
+ ldr r1, _02248154 ; =0x00002DB8
+ ldrh r1, [r0, r1]
+ cmp r1, #0
+ beq _02247F9A
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247F9A
+_02247F74:
+ mov r0, #1
+ add r1, r5, #0
+ eor r1, r0
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _02248150 ; =0x00002D8C
+ add r0, r4, r0
+ ldr r1, [r0, r1]
+ cmp r1, #0
+ beq _02247F9A
+ ldr r1, _02248154 ; =0x00002DB8
+ ldrh r1, [r0, r1]
+ cmp r1, #0
+ beq _02247F9A
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0x84]
+_02247F9A:
+ ldr r0, [sp, #0x84]
+ cmp r0, #1
+ bne _02247FAC
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ mov r0, #0xfd
+ str r0, [sp, #0xcc]
+ b _02247FBA
+_02247FAC:
+ ldr r0, [sp, #0x3c]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x3c]
+ cmp r1, r0
+ bge _02247FBA
+ b _02247E88
+_02247FBA:
+ ldr r1, [sp, #0x3c]
+ ldr r0, [sp, #0x80]
+ cmp r1, r0
+ beq _02247FC4
+ b _02248282
+_02247FC4:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_02247FCC:
+ mov r0, #0
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ ble _02248094
+ ldr r0, _02248148 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0xa4]
+_02247FDC:
+ ldr r0, [sp, #0x40]
+ add r1, r4, r0
+ ldr r0, _0224814C ; =0x000021EC
+ ldrb r6, [r1, r0]
+ mov r0, #0xc0
+ add r5, r6, #0
+ mul r5, r0
+ ldr r0, [sp, #0xa4]
+ ldr r0, [r0, r5]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ bne _02248038
+ ldr r0, _02248150 ; =0x00002D8C
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ str r1, [sp, #0x48]
+ cmp r0, #0
+ beq _02248038
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x70
+ bne _02248038
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r2, [r4, r0]
+ ldr r1, [sp, #0x48]
+ ldr r0, _02248158 ; =0x00002DD8
+ ldr r0, [r1, r0]
+ cmp r2, r0
+ bgt _02248038
+ ldr r0, [sp, #0xa4]
+ mov r2, #0x40
+ ldr r0, [r0, r5]
+ add r1, r0, #0
+ orr r1, r2
+ ldr r0, [sp, #0xa4]
+ add r2, #0xd8
+ str r1, [r0, r5]
+ str r6, [r4, r2]
+ mov r0, #0xc4
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02248094
+_02248038:
+ ldr r0, [sp, #0xa4]
+ ldr r0, [r0, r5]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ bne _02248088
+ ldr r0, _02248150 ; =0x00002D8C
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ str r1, [sp, #0x44]
+ cmp r0, #0
+ beq _02248088
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x70
+ bne _02248088
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r2, [r4, r0]
+ ldr r1, [sp, #0x44]
+ ldr r0, _02248158 ; =0x00002DD8
+ ldr r0, [r1, r0]
+ sub r0, r2, r0
+ cmp r0, #5
+ bne _02248088
+ ldr r0, [sp, #0xa4]
+ mov r2, #0x80
+ ldr r0, [r0, r5]
+ add r1, r0, #0
+ orr r1, r2
+ ldr r0, [sp, #0xa4]
+ add r2, #0x98
+ str r1, [r0, r5]
+ str r6, [r4, r2]
+ mov r0, #0xc5
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02248094
+_02248088:
+ ldr r0, [sp, #0x40]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x40]
+ cmp r1, r0
+ blt _02247FDC
+_02248094:
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #0x80]
+ cmp r1, r0
+ bne _0224810E
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_022480A4:
+ ldr r0, [sp, #0x80]
+ mov r5, #0
+ cmp r0, #0
+ ble _02248108
+ ldr r0, _02248148 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0xa8]
+_022480B2:
+ ldr r0, _0224814C ; =0x000021EC
+ add r1, r4, r5
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ add r6, r1, #0
+ mul r6, r0
+ ldr r0, [sp, #0xa8]
+ str r1, [sp, #0x24]
+ ldr r0, [r0, r6]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1f
+ bne _02248100
+ ldr r0, _02248150 ; =0x00002D8C
+ add r1, r4, r6
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02248100
+ ldr r1, [sp, #0x24]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x68
+ bne _02248100
+ ldr r0, [sp, #0xa8]
+ mov r2, #2
+ ldr r0, [r0, r6]
+ lsl r2, r2, #8
+ add r1, r0, #0
+ orr r1, r2
+ ldr r0, [sp, #0xa8]
+ sub r2, #0xe8
+ str r1, [r0, r6]
+ ldr r0, [sp, #0x24]
+ str r0, [r4, r2]
+ mov r0, #0xb1
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02248108
+_02248100:
+ ldr r0, [sp, #0x80]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _022480B2
+_02248108:
+ ldr r0, [sp, #0x80]
+ cmp r5, r0
+ beq _02248110
+_0224810E:
+ b _02248282
+_02248110:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_02248118:
+ ldr r0, [sp, #0x80]
+ mov r5, #0
+ cmp r0, #0
+ ble _02248198
+ ldr r0, _02248148 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0xac]
+_02248126:
+ ldr r0, _0224814C ; =0x000021EC
+ add r1, r4, r5
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ add r6, r1, #0
+ mul r6, r0
+ ldr r0, [sp, #0xac]
+ str r1, [sp, #0x28]
+ ldr r0, [r0, r6]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x1f
+ bne _02248190
+ ldr r0, _02248150 ; =0x00002D8C
+ b _0224815C
+ nop
+_02248144: .word 0x00002D4C
+_02248148: .word 0x00002D68
+_0224814C: .word 0x000021EC
+_02248150: .word 0x00002D8C
+_02248154: .word 0x00002DB8
+_02248158: .word 0x00002DD8
+_0224815C:
+ add r1, r4, r6
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02248190
+ ldr r1, [sp, #0x28]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2e
+ bne _02248190
+ ldr r0, [sp, #0xac]
+ ldr r1, [r0, r6]
+ mov r0, #1
+ lsl r0, r0, #0xa
+ orr r1, r0
+ ldr r0, [sp, #0xac]
+ str r1, [r0, r6]
+ mov r1, #0x46
+ ldr r0, [sp, #0x28]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #5
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02248198
+_02248190:
+ ldr r0, [sp, #0x80]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _02248126
+_02248198:
+ ldr r0, [sp, #0x80]
+ cmp r5, r0
+ bne _02248282
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_022481A6:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0224AE78
+ cmp r0, #1
+ bne _022481BC
+ ldr r0, _02248294 ; =0x00000106
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02248282
+_022481BC:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_022481C4:
+ ldr r0, [sp, #0x80]
+ mov r5, #0
+ cmp r0, #0
+ ble _022481F6
+ mov r6, #2
+_022481CE:
+ ldr r1, _02248298 ; =0x000021EC
+ add r2, r4, r5
+ ldrb r2, [r2, r1]
+ mov r1, #0xc0
+ add r0, r4, #0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224829C ; =0x00002DB8
+ ldrh r1, [r2, r1]
+ mov r2, #1
+ bl MOD11_0224C12C
+ cmp r0, #0x39
+ bne _022481EE
+ ldr r0, _022482A0 ; =0x00002168
+ str r6, [r4, r0]
+_022481EE:
+ ldr r0, [sp, #0x80]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _022481CE
+_022481F6:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_022481FE:
+ ldr r0, [sp, #0x80]
+ mov r5, #0
+ cmp r0, #0
+ ble _0224822C
+ ldr r6, _02248298 ; =0x000021EC
+_02248208:
+ add r2, r4, r5
+ ldrb r2, [r2, r6]
+ add r0, r7, #0
+ add r1, r4, #0
+ mov r3, #1
+ bl MOD11_02248898
+ cmp r0, #1
+ bne _02248224
+ mov r0, #0xdd
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224822C
+_02248224:
+ ldr r0, [sp, #0x80]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _02248208
+_0224822C:
+ ldr r0, [sp, #0x80]
+ cmp r5, r0
+ bne _02248282
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_0224823A:
+ ldr r0, [sp, #0x80]
+ mov r5, #0
+ cmp r0, #0
+ ble _0224826C
+_02248242:
+ ldr r0, _02248298 ; =0x000021EC
+ add r1, r4, r5
+ ldrb r6, [r1, r0]
+ add r0, r7, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ add r3, sp, #0xcc
+ bl MOD11_022493A0
+ cmp r0, #1
+ bne _02248264
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r6, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224826C
+_02248264:
+ ldr r0, [sp, #0x80]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _02248242
+_0224826C:
+ ldr r0, [sp, #0x80]
+ cmp r5, r0
+ bne _02248282
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_0224827A:
+ mov r0, #0
+ str r0, [r4, #0x58]
+ mov r0, #2
+ str r0, [sp, #0x84]
+_02248282:
+ ldr r0, [sp, #0x84]
+ cmp r0, #0
+ bne _0224828C
+ bl MOD11_022476F0
+_0224828C:
+ ldr r0, [sp, #0xcc]
+ add sp, #0xd0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02248294: .word 0x00000106
+_02248298: .word 0x000021EC
+_0224829C: .word 0x00002DB8
+_022482A0: .word 0x00002168
+
+ thumb_func_start MOD11_022482A4
+MOD11_022482A4: ; 0x022482A4
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _022482FA
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD11_02230308
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #2
+ bl MOD11_02230308
+ str r0, [sp, #4]
+ bl LCRandom
+ mov r3, #1
+ add r2, r0, #0
+ and r2, r3
+ lsl r0, r2, #2
+ add r1, sp, #0
+ ldr r0, [r1, r0]
+ mov r4, #0xc0
+ mul r4, r0
+ add r5, r6, r4
+ ldr r4, _02248304 ; =0x00002D8C
+ ldr r4, [r5, r4]
+ cmp r4, #0
+ bne _022482FE
+ add r0, r2, #0
+ eor r0, r3
+ lsl r0, r0, #2
+ add sp, #8
+ ldr r0, [r1, r0]
+ pop {r4, r5, r6, pc}
+_022482FA:
+ mov r0, #1
+ eor r0, r4
+_022482FE:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_02248304: .word 0x00002D8C
+
+ thumb_func_start MOD11_02248308
+MOD11_02248308: ; 0x02248308
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r1, [r5, #0x6c]
+ add r7, r0, #0
+ add r4, r2, #0
+ mov r6, #0
+ cmp r1, #0xff
+ bne _0224831C
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224831C:
+ add r0, r5, #0
+ bl MOD11_0224AD9C
+ cmp r0, #1
+ bne _0224832A
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224832A:
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x26
+ bgt _0224835A
+ blt _0224833A
+ b _022485FC
+_0224833A:
+ cmp r0, #0x10
+ bgt _02248346
+ bge _02248408
+ cmp r0, #9
+ beq _02248372
+ b _0224887A
+_02248346:
+ cmp r0, #0x1b
+ bgt _02248358
+ cmp r0, #0x18
+ blt _02248358
+ bne _02248352
+ b _022484B0
+_02248352:
+ cmp r0, #0x1b
+ bne _02248358
+ b _02248546
+_02248358:
+ b _0224887A
+_0224835A:
+ cmp r0, #0x38
+ bgt _0224836A
+ blt _02248362
+ b _02248752
+_02248362:
+ cmp r0, #0x31
+ bne _02248368
+ b _022486BE
+_02248368:
+ b _0224887A
+_0224836A:
+ cmp r0, #0x6a
+ bne _02248370
+ b _022487FA
+_02248370:
+ b _0224887A
+_02248372:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248660 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ beq _022483E6
+ add r1, r0, #0
+ add r1, #0x20
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ bne _022483E6
+ ldr r2, _02248664 ; =0x0000216C
+ ldr r1, _02248668 ; =0x801FDA49
+ ldr r3, [r5, r2]
+ tst r1, r3
+ bne _022483E6
+ add r1, r2, #0
+ sub r1, #0x30
+ ldr r3, [r5, r1]
+ mov r1, #0x20
+ tst r1, r3
+ bne _022483E6
+ sub r2, #0x2c
+ ldr r2, [r5, r2]
+ mov r1, #0x10
+ tst r1, r2
+ bne _022483E6
+ ldr r2, [r5, #0x6c]
+ mov r1, #0x1c
+ mul r1, r2
+ add r1, r5, r1
+ lsr r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022483C6
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022483E6
+_022483C6:
+ ldr r0, _0224866C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248670 ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _022483E6
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ cmp r1, #3
+ blt _022483E8
+_022483E6:
+ b _0224887A
+_022483E8:
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r0, #0x46
+ ldr r1, [r5, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0x1f
+ str r0, [r4]
+ mov r6, #1
+ b _0224887A
+_02248408:
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ bne _02248418
+ add r7, r6, #0
+ b _02248432
+_02248418:
+ ldr r0, _02248674 ; =0x00002160
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02248426
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ b _02248432
+_02248426:
+ ldr r0, _0224866C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248678 ; =0x000003E2
+ ldrb r7, [r1, r0]
+_02248432:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248660 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02248516
+ ldr r0, _02248664 ; =0x0000216C
+ ldr r2, [r5, r0]
+ ldr r0, _02248668 ; =0x801FDA49
+ tst r0, r2
+ bne _02248516
+ ldr r0, _0224866C ; =0x00003044
+ ldr r3, [r5, r0]
+ cmp r3, #0xa5
+ beq _02248516
+ mov r0, #0x1c
+ ldr r2, _02248660 ; =0x00002D8C
+ mul r0, r1
+ add r0, r5, r0
+ lsr r2, r2, #4
+ ldr r2, [r0, r2]
+ cmp r2, #0
+ bne _0224846E
+ mov r2, #0x2e
+ lsl r2, r2, #4
+ ldr r0, [r0, r2]
+ cmp r0, #0
+ beq _02248516
+_0224846E:
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r2, [r5, r0]
+ mov r0, #0x10
+ tst r0, r2
+ bne _02248516
+ lsl r0, r3, #4
+ add r2, r5, r0
+ ldr r0, _0224867C ; =0x000003E1
+ ldrb r0, [r2, r0]
+ cmp r0, #0
+ beq _02248516
+ add r0, r5, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r7, r0
+ beq _02248516
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r7, r0
+ beq _02248516
+ mov r0, #0xbc
+ str r0, [r4]
+ add r0, #0x74
+ str r7, [r5, r0]
+ mov r6, #1
+ b _0224887A
+_022484B0:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248660 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02248516
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _02248516
+ ldr r1, _02248664 ; =0x0000216C
+ ldr r0, _02248668 ; =0x801FDA49
+ ldr r2, [r5, r1]
+ tst r0, r2
+ bne _02248516
+ add r0, r1, #0
+ sub r0, #0x30
+ ldr r2, [r5, r0]
+ mov r0, #0x20
+ tst r0, r2
+ bne _02248516
+ sub r1, #0x2c
+ ldr r1, [r5, r1]
+ mov r0, #0x10
+ tst r0, r1
+ bne _02248516
+ ldr r1, [r5, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r2, r5, r0
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ bne _02248504
+ add r0, #8
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02248516
+_02248504:
+ ldr r0, _0224866C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248670 ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ bne _02248518
+_02248516:
+ b _0224887A
+_02248518:
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _02248680 ; =0x00002D90
+ add r2, r5, r2
+ ldr r2, [r2, r0]
+ sub r1, #0xc1
+ add r0, r2, #0
+ mul r0, r1
+ mov r1, #8
+ bl MOD11_022476C0
+ ldr r1, _02248684 ; =0x0000215C
+ mov r6, #1
+ str r0, [r5, r1]
+ mov r0, #0x46
+ ldr r1, [r5, #0x64]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0xbd
+ str r0, [r4]
+ b _0224887A
+_02248546:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248660 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ beq _02248650
+ add r1, r0, #0
+ add r1, #0x20
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ bne _02248650
+ ldr r2, _02248664 ; =0x0000216C
+ ldr r1, _02248668 ; =0x801FDA49
+ ldr r3, [r5, r2]
+ tst r1, r3
+ bne _02248650
+ add r1, r2, #0
+ sub r1, #0x30
+ ldr r3, [r5, r1]
+ mov r1, #0x20
+ tst r1, r3
+ bne _02248650
+ sub r2, #0x2c
+ ldr r2, [r5, r2]
+ mov r1, #0x10
+ tst r1, r2
+ bne _02248650
+ ldr r2, [r5, #0x6c]
+ mov r1, #0x1c
+ mul r1, r2
+ add r1, r5, r1
+ lsr r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _0224859A
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02248650
+_0224859A:
+ ldr r0, _0224866C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248670 ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02248650
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ cmp r1, #3
+ bge _02248650
+ bl LCRandom
+ mov r1, #3
+ bl _s32_div_f
+ cmp r1, #0
+ beq _022485D0
+ cmp r1, #1
+ beq _022485D6
+ cmp r1, #2
+ beq _022485DC
+_022485D0:
+ mov r0, #0x16
+ str r0, [r4]
+ b _022485E0
+_022485D6:
+ mov r0, #0x1f
+ str r0, [r4]
+ b _022485E0
+_022485DC:
+ mov r0, #0x12
+ str r0, [r4]
+_022485E0:
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r0, #0x46
+ ldr r1, [r5, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r6, #1
+ b _0224887A
+_022485FC:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248660 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ beq _02248650
+ add r1, r0, #0
+ add r1, #0x20
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ bne _02248650
+ ldr r2, _02248664 ; =0x0000216C
+ ldr r1, _02248668 ; =0x801FDA49
+ ldr r3, [r5, r2]
+ tst r1, r3
+ bne _02248650
+ add r1, r2, #0
+ sub r1, #0x30
+ ldr r3, [r5, r1]
+ mov r1, #0x20
+ tst r1, r3
+ bne _02248650
+ sub r2, #0x2c
+ ldr r2, [r5, r2]
+ mov r1, #0x10
+ tst r1, r2
+ bne _02248650
+ ldr r2, [r5, #0x6c]
+ mov r1, #0x1c
+ mul r1, r2
+ add r1, r5, r1
+ lsr r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02248652
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02248652
+_02248650:
+ b _0224887A
+_02248652:
+ ldr r0, _0224866C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248670 ; =0x000003E9
+ b _02248688
+ nop
+_02248660: .word 0x00002D8C
+_02248664: .word 0x0000216C
+_02248668: .word 0x801FDA49
+_0224866C: .word 0x00003044
+_02248670: .word 0x000003E9
+_02248674: .word 0x00002160
+_02248678: .word 0x000003E2
+_0224867C: .word 0x000003E1
+_02248680: .word 0x00002D90
+_02248684: .word 0x0000215C
+_02248688:
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02248770
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ cmp r1, #3
+ bge _02248770
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r0, #0x46
+ ldr r1, [r5, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0x16
+ str r0, [r4]
+ mov r6, #1
+ b _0224887A
+_022486BE:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248880 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ beq _02248770
+ add r1, r0, #0
+ add r1, #0x20
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ bne _02248770
+ ldr r2, _02248884 ; =0x0000216C
+ ldr r1, _02248888 ; =0x801FDA49
+ ldr r3, [r5, r2]
+ tst r1, r3
+ bne _02248770
+ add r1, r2, #0
+ sub r1, #0x30
+ ldr r3, [r5, r1]
+ mov r1, #0x20
+ tst r1, r3
+ bne _02248770
+ sub r2, #0x2c
+ ldr r2, [r5, r2]
+ mov r1, #0x10
+ tst r1, r2
+ bne _02248770
+ ldr r2, [r5, #0x6c]
+ mov r1, #0x1c
+ mul r1, r2
+ add r1, r5, r1
+ lsr r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02248712
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02248770
+_02248712:
+ ldr r0, _0224888C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248890 ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02248770
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ cmp r1, #3
+ bge _02248770
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r0, #0x46
+ ldr r1, [r5, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0x19
+ str r0, [r4]
+ mov r6, #1
+ b _0224887A
+_02248752:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248880 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ beq _02248770
+ add r1, r0, #0
+ add r1, #0x24
+ ldr r2, [r2, r1]
+ mov r1, #0xf
+ lsl r1, r1, #0x10
+ tst r1, r2
+ beq _02248772
+_02248770:
+ b _0224887A
+_02248772:
+ ldr r2, _02248884 ; =0x0000216C
+ ldr r1, _02248888 ; =0x801FDA49
+ ldr r3, [r5, r2]
+ tst r1, r3
+ bne _0224887A
+ add r1, r2, #0
+ sub r1, #0x30
+ ldr r3, [r5, r1]
+ mov r1, #0x20
+ tst r1, r3
+ bne _0224887A
+ sub r2, #0x2c
+ ldr r2, [r5, r2]
+ mov r1, #0x10
+ tst r1, r2
+ bne _0224887A
+ ldr r2, [r5, #0x6c]
+ mov r1, #0x1c
+ mul r1, r2
+ add r1, r5, r1
+ lsr r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022487AC
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0224887A
+_022487AC:
+ ldr r0, _0224888C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248890 ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _0224887A
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r5, r0
+ ldr r0, _02248880 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0224887A
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ cmp r1, #3
+ bge _0224887A
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r0, #0x46
+ ldr r1, [r5, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0x6a
+ str r0, [r4]
+ mov r6, #1
+ b _0224887A
+_022487FA:
+ ldr r1, [r5, #0x6c]
+ ldr r0, [r5, #0x74]
+ cmp r1, r0
+ bne _0224887A
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _0224887A
+ mov r0, #6
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #8
+ add r3, r6, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224887A
+ mov r2, #0x85
+ lsl r2, r2, #6
+ ldr r1, [r5, r2]
+ mov r0, #0x10
+ tst r0, r1
+ bne _0224887A
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02248880 ; =0x00002D8C
+ ldr r3, [r1, r0]
+ cmp r3, #0
+ beq _0224887A
+ add r2, #0x2c
+ ldr r3, [r5, r2]
+ ldr r2, _02248888 ; =0x801FDA49
+ tst r2, r3
+ bne _0224887A
+ ldr r2, _0224888C ; =0x00003044
+ ldr r2, [r5, r2]
+ lsl r2, r2, #4
+ add r3, r5, r2
+ ldr r2, _02248890 ; =0x000003E9
+ ldrb r3, [r3, r2]
+ mov r2, #1
+ tst r3, r2
+ beq _0224887A
+ add r0, r0, #4
+ ldr r1, [r1, r0]
+ sub r0, r2, #2
+ mul r0, r1
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, _02248894 ; =0x0000215C
+ mov r6, #1
+ str r0, [r5, r1]
+ mov r0, #0x46
+ ldr r1, [r5, #0x64]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0xc1
+ str r0, [r4]
+_0224887A:
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02248880: .word 0x00002D8C
+_02248884: .word 0x0000216C
+_02248888: .word 0x801FDA49
+_0224888C: .word 0x00003044
+_02248890: .word 0x000003E9
+_02248894: .word 0x0000215C
+
+ thumb_func_start MOD11_02248898
+MOD11_02248898: ; 0x02248898
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r2, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ add r7, r3, #0
+ mov r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x28
+ bgt _022488DE
+ bge _02248978
+ cmp r0, #7
+ bgt _022488B8
+ beq _02248926
+ b _022489D0
+_022488B8:
+ add r1, r0, #0
+ sub r1, #0xc
+ cmp r1, #8
+ bhi _022488E8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022488CC: ; jump table
+ .short _02248994 - _022488CC - 2 ; case 0
+ .short _022489D0 - _022488CC - 2 ; case 1
+ .short _022489D0 - _022488CC - 2 ; case 2
+ .short _02248940 - _022488CC - 2 ; case 3
+ .short _022489D0 - _022488CC - 2 ; case 4
+ .short _022488F0 - _022488CC - 2 ; case 5
+ .short _022489D0 - _022488CC - 2 ; case 6
+ .short _022489D0 - _022488CC - 2 ; case 7
+ .short _0224890A - _022488CC - 2 ; case 8
+_022488DE:
+ cmp r0, #0x48
+ bgt _022488EA
+ bge _02248940
+ cmp r0, #0x29
+ beq _0224895C
+_022488E8:
+ b _022489D0
+_022488EA:
+ cmp r0, #0x54
+ beq _022489B2
+ b _022489D0
+_022488F0:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02248A04 ; =0x00002DAC
+ ldr r2, [r2, r1]
+ ldr r1, _02248A08 ; =0x00000F88
+ tst r1, r2
+ beq _022489D0
+ mov r6, #1
+ add r0, #0x70
+ str r6, [r4, r0]
+ b _022489D0
+_0224890A:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02248A0C ; =0x00002DB0
+ ldr r2, [r2, r1]
+ mov r1, #7
+ tst r1, r2
+ beq _022489D0
+ mov r1, #5
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r6, #1
+ b _022489D0
+_02248926:
+ mov r0, #0xc0
+ mul r0, r5
+ add r1, r4, r0
+ ldr r0, _02248A04 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r1, r0
+ beq _022489D0
+ mov r1, #3
+ add r0, #0xf0
+ str r1, [r4, r0]
+ mov r6, #1
+ b _022489D0
+_02248940:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02248A04 ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #7
+ tst r1, r2
+ beq _022489D0
+ mov r1, #0
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r6, #1
+ b _022489D0
+_0224895C:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02248A04 ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #0x10
+ tst r1, r2
+ beq _022489D0
+ mov r1, #2
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r6, #1
+ b _022489D0
+_02248978:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02248A04 ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #0x20
+ tst r1, r2
+ beq _022489D0
+ mov r1, #4
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r6, #1
+ b _022489D0
+_02248994:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02248A0C ; =0x00002DB0
+ ldr r2, [r2, r1]
+ mov r1, #0xf
+ lsl r1, r1, #0x10
+ tst r1, r2
+ beq _022489D0
+ mov r1, #6
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r6, #1
+ b _022489D0
+_022489B2:
+ mov r0, #0xc0
+ add r3, r5, #0
+ mul r3, r0
+ ldr r0, _02248A10 ; =0x00002DB8
+ add r1, r4, r3
+ ldrh r1, [r1, r0]
+ cmp r1, #0
+ beq _022489D0
+ add r0, #0x14
+ add r2, r4, r0
+ mov r0, #1
+ ldr r1, [r2, r3]
+ lsl r0, r0, #0x16
+ orr r0, r1
+ str r0, [r2, r3]
+_022489D0:
+ cmp r6, #1
+ bne _022489FE
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246D1C
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ cmp r7, #0
+ bne _022489FE
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xdd
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_022489FE:
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02248A04: .word 0x00002DAC
+_02248A08: .word 0x00000F88
+_02248A0C: .word 0x00002DB0
+_02248A10: .word 0x00002DB8
+
+ thumb_func_start MOD11_02248A14
+MOD11_02248A14: ; 0x02248A14
+ mov r0, #0
+ cmp r1, #0x28
+ bgt _02248A34
+ bge _02248A6A
+ cmp r1, #7
+ bgt _02248A24
+ beq _02248A4C
+ bx lr
+_02248A24:
+ cmp r1, #0x11
+ bgt _02248A72
+ cmp r1, #0xf
+ blt _02248A72
+ beq _02248A56
+ cmp r1, #0x11
+ beq _02248A42
+ bx lr
+_02248A34:
+ cmp r1, #0x29
+ bgt _02248A3C
+ beq _02248A60
+ bx lr
+_02248A3C:
+ cmp r1, #0x48
+ beq _02248A56
+ bx lr
+_02248A42:
+ ldr r1, _02248A74 ; =0x00000F88
+ tst r1, r2
+ beq _02248A72
+ mov r0, #1
+ bx lr
+_02248A4C:
+ mov r1, #0x40
+ tst r1, r2
+ beq _02248A72
+ mov r0, #1
+ bx lr
+_02248A56:
+ mov r1, #7
+ tst r1, r2
+ beq _02248A72
+ mov r0, #1
+ bx lr
+_02248A60:
+ mov r1, #0x10
+ tst r1, r2
+ beq _02248A72
+ mov r0, #1
+ bx lr
+_02248A6A:
+ mov r1, #0x20
+ tst r1, r2
+ beq _02248A72
+ mov r0, #1
+_02248A72:
+ bx lr
+ .align 2, 0
+_02248A74: .word 0x00000F88
+
+ thumb_func_start MOD11_02248A78
+MOD11_02248A78: ; 0x02248A78
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x6c]
+ str r0, [sp]
+ mov r7, #0
+ add r0, r4, #0
+ add r6, r2, #0
+ add r5, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x1c
+ bne _02248ABA
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0xff
+ beq _02248ABA
+ add r1, r4, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ cmp r0, r1
+ bne _02248ABA
+ ldr r1, _02248BFC ; =0x0000213C
+ ldr r2, [r4, r1]
+ mov r1, #0x80
+ tst r2, r1
+ beq _02248ABA
+ add r1, #0x98
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, [r4, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r7, #1
+ b _02248AEA
+_02248ABA:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x1c
+ bne _02248AEA
+ add r1, r4, #0
+ add r1, #0x94
+ ldr r0, [r4, #0x64]
+ ldr r1, [r1]
+ cmp r0, r1
+ bne _02248AEA
+ ldr r1, _02248BFC ; =0x0000213C
+ ldr r2, [r4, r1]
+ mov r1, #0x80
+ tst r2, r1
+ beq _02248AEA
+ add r1, #0x98
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, [r4, #0x6c]
+ add r0, #0x94
+ str r1, [r0]
+ mov r7, #1
+_02248AEA:
+ cmp r7, #1
+ bne _02248B3A
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02248C00 ; =0x00002DAC
+ ldr r0, [r1, r0]
+ ldr r1, _02248C04 ; =0x00000F88
+ tst r1, r0
+ beq _02248B08
+ mov r5, #0x16
+ b _02248B1A
+_02248B08:
+ mov r1, #0x10
+ tst r1, r0
+ beq _02248B12
+ mov r5, #0x19
+ b _02248B1A
+_02248B12:
+ mov r1, #0x40
+ tst r0, r1
+ beq _02248B1A
+ mov r5, #0x1f
+_02248B1A:
+ cmp r5, #0
+ beq _02248B3A
+ add r0, r4, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r5, #0
+ bl MOD11_022431DC
+ str r6, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02248B3A:
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_0224AE78
+ add r5, r0, #0
+ cmp r5, #1
+ bne _02248B5C
+ ldr r2, _02248C08 ; =0x00000106
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ str r6, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02248B5C:
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02249D90
+ cmp r0, #0x6b
+ bne _02248B9C
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0xff
+ beq _02248B9C
+ add r1, r4, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ cmp r0, r1
+ bne _02248B9C
+ mov r1, #0x1c
+ add r2, r0, #0
+ mul r2, r1
+ add r3, r4, r2
+ mov r2, #0xba
+ lsl r2, r2, #2
+ ldr r3, [r3, r2]
+ mov r2, #4
+ tst r2, r3
+ beq _02248B9C
+ add r1, #0xfc
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, [r4, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r5, #1
+ b _02248BD6
+_02248B9C:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02249D90
+ cmp r0, #0x6b
+ bne _02248BD6
+ add r1, r4, #0
+ add r1, #0x94
+ ldr r0, [r4, #0x64]
+ ldr r1, [r1]
+ cmp r0, r1
+ bne _02248BD6
+ mov r1, #0x1c
+ add r2, r0, #0
+ mul r2, r1
+ add r3, r4, r2
+ mov r2, #0xba
+ lsl r2, r2, #2
+ ldr r3, [r3, r2]
+ mov r2, #4
+ tst r2, r3
+ beq _02248BD6
+ add r1, #0xfc
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, [r4, #0x6c]
+ add r0, #0x94
+ str r1, [r0]
+ mov r5, #1
+_02248BD6:
+ cmp r5, #1
+ bne _02248BF6
+ add r0, r4, #0
+ mov r1, #5
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x6a
+ bl MOD11_022431DC
+ str r6, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02248BF6:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02248BFC: .word 0x0000213C
+_02248C00: .word 0x00002DAC
+_02248C04: .word 0x00000F88
+_02248C08: .word 0x00000106
+
+ thumb_func_start MOD11_02248C0C
+MOD11_02248C0C: ; 0x02248C0C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ add r4, r1, #0
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r2, [sp, #4]
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD11_02249D90
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ add r6, r0, #0
+ ldr r0, [sp, #4]
+ mov r3, #0xc0
+ add r5, r0, #0
+ ldr r0, _02248F50 ; =0x00002D8C
+ mul r5, r3
+ add r1, r4, r0
+ ldr r2, [r1, r5]
+ str r1, [sp, #0x14]
+ cmp r2, #0
+ bne _02248C46
+ b _02249274
+_02248C46:
+ ldr r1, [sp, #0x10]
+ cmp r1, #0x35
+ bhi _02248CE8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02248C58: ; jump table
+ .short _02249246 - _02248C58 - 2 ; case 0
+ .short _02248CC4 - _02248C58 - 2 ; case 1
+ .short _02249246 - _02248C58 - 2 ; case 2
+ .short _02249246 - _02248C58 - 2 ; case 3
+ .short _02248D00 - _02248C58 - 2 ; case 4
+ .short _02248D14 - _02248C58 - 2 ; case 5
+ .short _02248D28 - _02248C58 - 2 ; case 6
+ .short _02248D3C - _02248C58 - 2 ; case 7
+ .short _02248D50 - _02248C58 - 2 ; case 8
+ .short _02248D64 - _02248C58 - 2 ; case 9
+ .short _02248DC6 - _02248C58 - 2 ; case 10
+ .short _02248DDA - _02248C58 - 2 ; case 11
+ .short _02248CDC - _02248C58 - 2 ; case 12
+ .short _02248E3A - _02248C58 - 2 ; case 13
+ .short _02248E76 - _02248C58 - 2 ; case 14
+ .short _02248EB2 - _02248C58 - 2 ; case 15
+ .short _02248EEE - _02248C58 - 2 ; case 16
+ .short _02248F2C - _02248C58 - 2 ; case 17
+ .short _02249246 - _02248C58 - 2 ; case 18
+ .short _02249246 - _02248C58 - 2 ; case 19
+ .short _02249246 - _02248C58 - 2 ; case 20
+ .short _02249246 - _02248C58 - 2 ; case 21
+ .short _02249246 - _02248C58 - 2 ; case 22
+ .short _02249246 - _02248C58 - 2 ; case 23
+ .short _02249246 - _02248C58 - 2 ; case 24
+ .short _02249246 - _02248C58 - 2 ; case 25
+ .short _02249246 - _02248C58 - 2 ; case 26
+ .short _02249246 - _02248C58 - 2 ; case 27
+ .short _02249246 - _02248C58 - 2 ; case 28
+ .short _02249246 - _02248C58 - 2 ; case 29
+ .short _02249246 - _02248C58 - 2 ; case 30
+ .short _02249246 - _02248C58 - 2 ; case 31
+ .short _02249246 - _02248C58 - 2 ; case 32
+ .short _02249246 - _02248C58 - 2 ; case 33
+ .short _02249246 - _02248C58 - 2 ; case 34
+ .short _02248F86 - _02248C58 - 2 ; case 35
+ .short _02248FCA - _02248C58 - 2 ; case 36
+ .short _02249012 - _02248C58 - 2 ; case 37
+ .short _02249058 - _02248C58 - 2 ; case 38
+ .short _0224909E - _02248C58 - 2 ; case 39
+ .short _022490E4 - _02248C58 - 2 ; case 40
+ .short _02249128 - _02248C58 - 2 ; case 41
+ .short _02249246 - _02248C58 - 2 ; case 42
+ .short _022491D8 - _02248C58 - 2 ; case 43
+ .short _0224920C - _02248C58 - 2 ; case 44
+ .short _02249246 - _02248C58 - 2 ; case 45
+ .short _02249246 - _02248C58 - 2 ; case 46
+ .short _02249246 - _02248C58 - 2 ; case 47
+ .short _02249194 - _02248C58 - 2 ; case 48
+ .short _02249246 - _02248C58 - 2 ; case 49
+ .short _02249246 - _02248C58 - 2 ; case 50
+ .short _02249246 - _02248C58 - 2 ; case 51
+ .short _02249246 - _02248C58 - 2 ; case 52
+ .short _022491BC - _02248C58 - 2 ; case 53
+_02248CC4:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r0, r0, #1
+ cmp r2, r0
+ bhi _02248CE8
+ ldr r0, _02248F54 ; =0x0000215C
+ mov r7, #0xc6
+ str r6, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248CDC:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r1, [r1, r0]
+ lsr r0, r1, #1
+ cmp r2, r0
+ bls _02248CEA
+_02248CE8:
+ b _02249246
+_02248CEA:
+ add r0, r6, #0
+ mul r0, r1
+ mov r1, #0x64
+ bl MOD11_022476C0
+ ldr r1, _02248F54 ; =0x0000215C
+ mov r7, #0xc6
+ str r0, [r4, r1]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248D00:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _02248DF2
+ mov r0, #1
+ mov r7, #0xc7
+ str r0, [sp, #0xc]
+ b _02249246
+_02248D14:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _02248DF2
+ mov r0, #1
+ mov r7, #0xc8
+ str r0, [sp, #0xc]
+ b _02249246
+_02248D28:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ ldr r0, _02248F58 ; =0x00000F88
+ tst r0, r1
+ beq _02248DF2
+ mov r0, #1
+ mov r7, #0xc9
+ str r0, [sp, #0xc]
+ b _02249246
+_02248D3C:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #0x10
+ tst r0, r1
+ beq _02248DF2
+ mov r0, #1
+ mov r7, #0xca
+ str r0, [sp, #0xc]
+ b _02249246
+_02248D50:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _02248DF2
+ mov r0, #1
+ mov r7, #0xcb
+ str r0, [sp, #0xc]
+ b _02249246
+_02248D64:
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, r4, r5
+ ldr r3, _02248F5C ; =0x00002D4C
+ add r1, r0, #0
+_02248D6E:
+ ldrh r2, [r0, r3]
+ cmp r2, #0
+ beq _02248D7C
+ ldr r2, _02248F60 ; =0x00002D6C
+ ldrb r2, [r1, r2]
+ cmp r2, #0
+ beq _02248D8A
+_02248D7C:
+ ldr r2, [sp, #8]
+ add r0, r0, #2
+ add r2, r2, #1
+ add r1, r1, #1
+ str r2, [sp, #8]
+ cmp r2, #4
+ blt _02248D6E
+_02248D8A:
+ ldr r0, [sp, #8]
+ cmp r0, #4
+ beq _02248DF2
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldr r1, [sp, #8]
+ add r0, r4, r0
+ add r0, r0, r5
+ add r1, #0x1f
+ add r2, r6, #0
+ bl MOD11_02243DC8
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_02245190
+ ldr r0, [sp, #8]
+ add r1, r4, r5
+ lsl r0, r0, #1
+ add r1, r1, r0
+ ldr r0, _02248F5C ; =0x00002D4C
+ mov r7, #0xcc
+ ldrh r1, [r1, r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248DC6:
+ add r1, r4, r5
+ add r0, #0x24
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _02248DF2
+ mov r0, #1
+ mov r7, #0xcd
+ str r0, [sp, #0xc]
+ b _02249246
+_02248DDA:
+ add r2, r0, #0
+ add r1, r4, r5
+ add r2, #0x20
+ ldr r2, [r1, r2]
+ lsl r3, r2, #0x18
+ lsr r3, r3, #0x18
+ bne _02248DF4
+ add r0, #0x24
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ bne _02248DF4
+_02248DF2:
+ b _02249246
+_02248DF4:
+ mov r0, #0x40
+ tst r0, r2
+ beq _02248DFC
+ mov r7, #0xc7
+_02248DFC:
+ mov r0, #7
+ tst r0, r2
+ beq _02248E04
+ mov r7, #0xc8
+_02248E04:
+ ldr r0, _02248F58 ; =0x00000F88
+ tst r0, r2
+ beq _02248E0C
+ mov r7, #0xc9
+_02248E0C:
+ mov r0, #0x10
+ tst r0, r2
+ beq _02248E14
+ mov r7, #0xca
+_02248E14:
+ mov r0, #0x20
+ tst r0, r2
+ beq _02248E1C
+ mov r7, #0xcb
+_02248E1C:
+ ldr r0, _02248F64 ; =0x00002DB0
+ add r1, r4, r5
+ ldr r1, [r1, r0]
+ mov r0, #7
+ and r0, r1
+ beq _02248E2A
+ mov r7, #0xcd
+_02248E2A:
+ cmp r3, #0
+ beq _02248E34
+ cmp r0, #0
+ beq _02248E34
+ mov r7, #0xce
+_02248E34:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248E3A:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _02248EFA
+ add r1, r6, #0
+ bl MOD11_022476C0
+ ldr r1, _02248F54 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02248F68 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02248E6E
+ mov r7, #0xcf
+ b _02248E70
+_02248E6E:
+ mov r7, #0xc6
+_02248E70:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248E76:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _02248EFA
+ add r1, r6, #0
+ bl MOD11_022476C0
+ ldr r1, _02248F54 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02248F68 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02248EAA
+ mov r7, #0xcf
+ b _02248EAC
+_02248EAA:
+ mov r7, #0xc6
+_02248EAC:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248EB2:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _02248EFA
+ add r1, r6, #0
+ bl MOD11_022476C0
+ ldr r1, _02248F54 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02248F68 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02248EE6
+ mov r7, #0xcf
+ b _02248EE8
+_02248EE6:
+ mov r7, #0xc6
+_02248EE8:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248EEE:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bls _02248EFC
+_02248EFA:
+ b _02249246
+_02248EFC:
+ add r1, r6, #0
+ bl MOD11_022476C0
+ ldr r1, _02248F54 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02248F68 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02248F24
+ mov r7, #0xcf
+ b _02248F26
+_02248F24:
+ mov r7, #0xc6
+_02248F26:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248F2C:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _02249000
+ add r1, r6, #0
+ bl MOD11_022476C0
+ ldr r1, _02248F54 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02248F68 ; =0x00002DA8
+ b _02248F6C
+ .align 2, 0
+_02248F50: .word 0x00002D8C
+_02248F54: .word 0x0000215C
+_02248F58: .word 0x00000F88
+_02248F5C: .word 0x00002D4C
+_02248F60: .word 0x00002D6C
+_02248F64: .word 0x00002DB0
+_02248F68: .word 0x00002DA8
+_02248F6C:
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02248F7E
+ mov r7, #0xcf
+ b _02248F80
+_02248F7E:
+ mov r7, #0xc6
+_02248F80:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248F86:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _02248F98
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_02248F98:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249000
+ ldr r0, _02249280 ; =0x00002D59
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _02249000
+ mov r1, #0x13
+ mov r0, #1
+ lsl r1, r1, #4
+ str r0, [sp, #0xc]
+ str r0, [r4, r1]
+ mov r7, #0xd0
+ b _02249246
+_02248FCA:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _02248FDC
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_02248FDC:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249000
+ ldr r0, _02249284 ; =0x00002D5A
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ blt _02249002
+_02249000:
+ b _02249246
+_02249002:
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #1
+ mov r7, #0xd0
+ str r0, [sp, #0xc]
+ b _02249246
+_02249012:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _02249024
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_02249024:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _0224911E
+ ldr r0, _02249288 ; =0x00002D5B
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _0224911E
+ mov r0, #0x13
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #1
+ mov r7, #0xd0
+ str r0, [sp, #0xc]
+ b _02249246
+_02249058:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _0224906A
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_0224906A:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _0224911E
+ ldr r0, _0224928C ; =0x00002D5C
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _0224911E
+ mov r0, #0x13
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #1
+ mov r7, #0xd0
+ str r0, [sp, #0xc]
+ b _02249246
+_0224909E:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _022490B0
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_022490B0:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _0224911E
+ ldr r0, _02249290 ; =0x00002D5D
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _0224911E
+ mov r0, #0x13
+ mov r1, #5
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #1
+ mov r7, #0xd0
+ str r0, [sp, #0xc]
+ b _02249246
+_022490E4:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _022490F6
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_022490F6:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _0224911E
+ ldr r0, _02249294 ; =0x00002DB0
+ add r1, r4, r5
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x14
+ tst r0, r1
+ beq _02249120
+_0224911E:
+ b _02249246
+_02249120:
+ mov r0, #1
+ mov r7, #0xd1
+ str r0, [sp, #0xc]
+ b _02249246
+_02249128:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _0224913A
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_0224913A:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249246
+ ldr r0, _02249280 ; =0x00002D59
+ mov r2, #0
+ add r3, r4, r5
+_0224915A:
+ ldrsb r1, [r3, r0]
+ cmp r1, #0xc
+ blt _02249168
+ add r2, r2, #1
+ add r3, r3, #1
+ cmp r2, #5
+ blt _0224915A
+_02249168:
+ cmp r2, #5
+ beq _02249246
+ ldr r6, _02249280 ; =0x00002D59
+ add r5, r4, r5
+ mov r7, #5
+_02249172:
+ bl LCRandom
+ add r1, r7, #0
+ bl _s32_div_f
+ add r0, r5, r1
+ ldrsb r0, [r0, r6]
+ cmp r0, #0xc
+ beq _02249172
+ mov r0, #0x13
+ add r1, r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #1
+ mov r7, #0xd2
+ str r0, [sp, #0xc]
+ b _02249246
+_02249194:
+ ldr r6, _02249298 ; =0x00002D58
+ add r1, r4, r5
+ mov r0, #0
+ mov r5, #6
+ add r3, r6, #0
+_0224919E:
+ ldrsb r2, [r1, r3]
+ cmp r2, #6
+ bge _022491AA
+ mov r2, #1
+ strb r5, [r1, r6]
+ str r2, [sp, #0xc]
+_022491AA:
+ add r0, r0, #1
+ add r1, r1, #1
+ cmp r0, #8
+ blt _0224919E
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _02249246
+ mov r7, #0xd3
+ b _02249246
+_022491BC:
+ add r1, r4, r5
+ add r0, #0x24
+ ldr r1, [r1, r0]
+ mov r0, #0xf
+ lsl r0, r0, #0x10
+ tst r0, r1
+ beq _02249246
+ mov r0, #6
+ add r3, #0x70
+ str r0, [r4, r3]
+ mov r0, #1
+ mov r7, #0xd4
+ str r0, [sp, #0xc]
+ b _02249246
+_022491D8:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _022491EA
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_022491EA:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249246
+ mov r0, #1
+ ldr r7, _0224929C ; =0x00000109
+ str r0, [sp, #0xc]
+ b _02249246
+_0224920C:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _0224921E
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_0224921E:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249246
+ ldr r0, _022492A0 ; =0x00002DCC
+ add r2, r4, r0
+ mov r0, #1
+ ldr r1, [r2, r5]
+ lsl r0, r0, #0x1c
+ orr r0, r1
+ str r0, [r2, r5]
+_02249246:
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _02249274
+ mov r1, #0x46
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02249B4C
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r7, #0
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_02249274:
+ ldr r0, [sp, #0xc]
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224927C: .word 0x00002D90
+_02249280: .word 0x00002D59
+_02249284: .word 0x00002D5A
+_02249288: .word 0x00002D5B
+_0224928C: .word 0x00002D5C
+_02249290: .word 0x00002D5D
+_02249294: .word 0x00002DB0
+_02249298: .word 0x00002D58
+_0224929C: .word 0x00000109
+_022492A0: .word 0x00002DCC
+
+ thumb_func_start MOD11_022492A4
+MOD11_022492A4: ; 0x022492A4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r2, #0
+ mov r7, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02249D90
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02249DA4
+ mov r0, #0xc0
+ add r4, r6, #0
+ mul r4, r0
+ ldr r0, _02249394 ; =0x00002D8C
+ add r1, r5, r0
+ str r1, [sp, #8]
+ ldr r1, [r1, r4]
+ cmp r1, #0
+ beq _0224938E
+ ldr r2, [sp, #4]
+ cmp r2, #0x44
+ beq _022492E2
+ add r0, r2, #0
+ cmp r0, #0x6c
+ beq _022492FE
+ b _02249364
+_022492E2:
+ add r2, r5, r4
+ add r0, r0, #4
+ ldr r0, [r2, r0]
+ cmp r1, r0
+ bhs _02249364
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _02249398 ; =0x0000215C
+ mov r7, #1
+ str r0, [r5, r1]
+ mov r0, #0xd5
+ str r0, [sp]
+ b _02249364
+_022492FE:
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ add r3, r7, #0
+ bl MOD11_02243420
+ cmp r0, #3
+ beq _0224931E
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1c
+ add r3, r7, #0
+ bl MOD11_02243420
+ cmp r0, #3
+ bne _0224933E
+_0224931E:
+ ldr r0, _0224939C ; =0x00002D90
+ add r1, r5, r4
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #8]
+ ldr r1, [r1, r4]
+ cmp r1, r0
+ bhs _02249364
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _02249398 ; =0x0000215C
+ mov r7, #1
+ str r0, [r5, r1]
+ mov r0, #0xd5
+ str r0, [sp]
+ b _02249364
+_0224933E:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _02249364
+ ldr r0, _0224939C ; =0x00002D90
+ add r1, r5, r4
+ ldr r1, [r1, r0]
+ sub r0, r7, #1
+ mul r0, r1
+ mov r1, #8
+ bl MOD11_022476C0
+ ldr r1, _02249398 ; =0x0000215C
+ mov r7, #1
+ str r0, [r5, r1]
+ mov r0, #0xd7
+ str r0, [sp]
+_02249364:
+ cmp r7, #1
+ bne _0224938E
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r6, [r5, r0]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02249B4C
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r2, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r5, #8]
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+_0224938E:
+ add r0, r7, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02249394: .word 0x00002D8C
+_02249398: .word 0x0000215C
+_0224939C: .word 0x00002D90
+
+ thumb_func_start MOD11_022493A0
+MOD11_022493A0: ; 0x022493A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ add r4, r1, #0
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r2, [sp, #4]
+ add r0, r4, #0
+ add r1, r2, #0
+ add r6, r3, #0
+ bl MOD11_02249D90
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ add r7, r0, #0
+ ldr r0, [sp, #4]
+ mov r3, #0xc0
+ add r5, r0, #0
+ ldr r0, _022496E4 ; =0x00002D8C
+ mul r5, r3
+ add r1, r4, r0
+ ldr r2, [r1, r5]
+ str r1, [sp, #0x14]
+ cmp r2, #0
+ bne _022493DC
+ b _02249A50
+_022493DC:
+ ldr r1, [sp, #0x10]
+ cmp r1, #0x35
+ bhi _02249480
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022493EE: ; jump table
+ .short _02249A3C - _022493EE - 2 ; case 0
+ .short _0224945A - _022493EE - 2 ; case 1
+ .short _02249A3C - _022493EE - 2 ; case 2
+ .short _02249A3C - _022493EE - 2 ; case 3
+ .short _0224949A - _022493EE - 2 ; case 4
+ .short _022494B0 - _022493EE - 2 ; case 5
+ .short _022494C6 - _022493EE - 2 ; case 6
+ .short _022494DC - _022493EE - 2 ; case 7
+ .short _022494F2 - _022493EE - 2 ; case 8
+ .short _02249508 - _022493EE - 2 ; case 9
+ .short _0224956C - _022493EE - 2 ; case 10
+ .short _02249582 - _022493EE - 2 ; case 11
+ .short _02249474 - _022493EE - 2 ; case 12
+ .short _022496BC - _022493EE - 2 ; case 13
+ .short _0224972C - _022493EE - 2 ; case 14
+ .short _0224976A - _022493EE - 2 ; case 15
+ .short _022497A8 - _022493EE - 2 ; case 16
+ .short _022497E6 - _022493EE - 2 ; case 17
+ .short _02249A3C - _022493EE - 2 ; case 18
+ .short _02249A3C - _022493EE - 2 ; case 19
+ .short _02249A3C - _022493EE - 2 ; case 20
+ .short _02249A3C - _022493EE - 2 ; case 21
+ .short _02249A3C - _022493EE - 2 ; case 22
+ .short _02249A3C - _022493EE - 2 ; case 23
+ .short _02249A3C - _022493EE - 2 ; case 24
+ .short _02249A3C - _022493EE - 2 ; case 25
+ .short _02249A3C - _022493EE - 2 ; case 26
+ .short _02249A3C - _022493EE - 2 ; case 27
+ .short _02249A3C - _022493EE - 2 ; case 28
+ .short _02249A3C - _022493EE - 2 ; case 29
+ .short _02249A3C - _022493EE - 2 ; case 30
+ .short _02249A3C - _022493EE - 2 ; case 31
+ .short _02249A3C - _022493EE - 2 ; case 32
+ .short _02249A3C - _022493EE - 2 ; case 33
+ .short _02249A3C - _022493EE - 2 ; case 34
+ .short _02249826 - _022493EE - 2 ; case 35
+ .short _0224986C - _022493EE - 2 ; case 36
+ .short _022498B4 - _022493EE - 2 ; case 37
+ .short _022498FC - _022493EE - 2 ; case 38
+ .short _02249946 - _022493EE - 2 ; case 39
+ .short _0224998E - _022493EE - 2 ; case 40
+ .short _022499D2 - _022493EE - 2 ; case 41
+ .short _02249A3C - _022493EE - 2 ; case 42
+ .short _0224964A - _022493EE - 2 ; case 43
+ .short _02249680 - _022493EE - 2 ; case 44
+ .short _02249A3C - _022493EE - 2 ; case 45
+ .short _02249A3C - _022493EE - 2 ; case 46
+ .short _02249A3C - _022493EE - 2 ; case 47
+ .short _02249602 - _022493EE - 2 ; case 48
+ .short _02249A3C - _022493EE - 2 ; case 49
+ .short _02249A3C - _022493EE - 2 ; case 50
+ .short _02249A3C - _022493EE - 2 ; case 51
+ .short _02249A3C - _022493EE - 2 ; case 52
+ .short _0224962C - _022493EE - 2 ; case 53
+_0224945A:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r0, r0, #1
+ cmp r2, r0
+ bhi _02249480
+ ldr r0, _022496E8 ; =0x0000215C
+ str r7, [r4, r0]
+ mov r0, #0xc6
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249474:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r1, [r1, r0]
+ lsr r0, r1, #1
+ cmp r2, r0
+ bls _02249482
+_02249480:
+ b _02249A3C
+_02249482:
+ add r0, r7, #0
+ mul r0, r1
+ mov r1, #0x64
+ bl MOD11_022476C0
+ ldr r1, _022496E8 ; =0x0000215C
+ str r0, [r4, r1]
+ mov r0, #0xc6
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_0224949A:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _0224959C
+ mov r0, #0xc7
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022494B0:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0224959C
+ mov r0, #0xc8
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022494C6:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ ldr r0, _022496EC ; =0x00000F88
+ tst r0, r1
+ beq _0224959C
+ mov r0, #0xc9
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022494DC:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #0x10
+ tst r0, r1
+ beq _0224959C
+ mov r0, #0xca
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022494F2:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0224959C
+ mov r0, #0xcb
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249508:
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, r4, r5
+ ldr r3, _022496F0 ; =0x00002D4C
+ add r1, r0, #0
+_02249512:
+ ldrh r2, [r0, r3]
+ cmp r2, #0
+ beq _02249520
+ ldr r2, _022496F4 ; =0x00002D6C
+ ldrb r2, [r1, r2]
+ cmp r2, #0
+ beq _0224952E
+_02249520:
+ ldr r2, [sp, #8]
+ add r0, r0, #2
+ add r2, r2, #1
+ add r1, r1, #1
+ str r2, [sp, #8]
+ cmp r2, #4
+ blt _02249512
+_0224952E:
+ ldr r0, [sp, #8]
+ cmp r0, #4
+ beq _0224959C
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldr r1, [sp, #8]
+ add r0, r4, r0
+ add r0, r0, r5
+ add r1, #0x1f
+ add r2, r7, #0
+ bl MOD11_02243DC8
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_02245190
+ ldr r0, [sp, #8]
+ add r1, r4, r5
+ lsl r0, r0, #1
+ add r1, r1, r0
+ ldr r0, _022496F0 ; =0x00002D4C
+ ldrh r1, [r1, r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #0xcc
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_0224956C:
+ add r1, r4, r5
+ add r0, #0x24
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0224959C
+ mov r0, #0xcd
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249582:
+ add r1, r0, #0
+ add r1, #0x20
+ add r1, r4, r1
+ ldr r2, [r1, r5]
+ lsl r3, r2, #0x18
+ lsr r3, r3, #0x18
+ bne _0224959E
+ add r3, r4, r5
+ add r0, #0x24
+ ldr r3, [r3, r0]
+ mov r0, #7
+ tst r0, r3
+ bne _0224959E
+_0224959C:
+ b _02249A3C
+_0224959E:
+ mov r0, #0x40
+ tst r0, r2
+ beq _022495A8
+ mov r0, #0xc7
+ str r0, [r6]
+_022495A8:
+ ldr r2, [r1, r5]
+ mov r0, #7
+ tst r0, r2
+ beq _022495B4
+ mov r0, #0xc8
+ str r0, [r6]
+_022495B4:
+ ldr r2, [r1, r5]
+ ldr r0, _022496EC ; =0x00000F88
+ tst r0, r2
+ beq _022495C0
+ mov r0, #0xc9
+ str r0, [r6]
+_022495C0:
+ ldr r2, [r1, r5]
+ mov r0, #0x10
+ tst r0, r2
+ beq _022495CC
+ mov r0, #0xca
+ str r0, [r6]
+_022495CC:
+ ldr r2, [r1, r5]
+ mov r0, #0x20
+ tst r0, r2
+ beq _022495D8
+ mov r0, #0xcb
+ str r0, [r6]
+_022495D8:
+ ldr r0, _022496F8 ; =0x00002DB0
+ mov r2, #7
+ add r0, r4, r0
+ ldr r3, [r0, r5]
+ tst r2, r3
+ beq _022495E8
+ mov r2, #0xcd
+ str r2, [r6]
+_022495E8:
+ ldr r1, [r1, r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ beq _022495FC
+ ldr r1, [r0, r5]
+ mov r0, #7
+ tst r0, r1
+ beq _022495FC
+ mov r0, #0xce
+ str r0, [r6]
+_022495FC:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249602:
+ ldr r7, _022496FC ; =0x00002D58
+ add r1, r4, r5
+ mov r0, #0
+ mov r5, #6
+ add r3, r7, #0
+_0224960C:
+ ldrsb r2, [r1, r3]
+ cmp r2, #6
+ bge _02249618
+ mov r2, #1
+ strb r5, [r1, r7]
+ str r2, [sp, #0xc]
+_02249618:
+ add r0, r0, #1
+ add r1, r1, #1
+ cmp r0, #8
+ blt _0224960C
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _022496C8
+ mov r0, #0xd3
+ str r0, [r6]
+ b _02249A3C
+_0224962C:
+ add r1, r4, r5
+ add r0, #0x24
+ ldr r1, [r1, r0]
+ mov r0, #0xf
+ lsl r0, r0, #0x10
+ tst r0, r1
+ beq _022496C8
+ mov r0, #6
+ add r3, #0x70
+ str r0, [r4, r3]
+ mov r0, #0xd4
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_0224964A:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _0224965C
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_0224965C:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249700 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _022496C8
+ ldr r0, _02249704 ; =0x00000109
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249680:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _02249692
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_02249692:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249700 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _022496C8
+ ldr r0, _02249708 ; =0x00002DCC
+ add r2, r4, r0
+ mov r0, #1
+ ldr r1, [r2, r5]
+ lsl r0, r0, #0x1c
+ orr r0, r1
+ str r0, [r2, r5]
+ b _02249A3C
+_022496BC:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bls _022496CA
+_022496C8:
+ b _02249A3C
+_022496CA:
+ add r1, r7, #0
+ bl MOD11_022476C0
+ ldr r1, _022496E8 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _0224970C ; =0x00002DA8
+ b _02249710
+ nop
+_022496E4: .word 0x00002D8C
+_022496E8: .word 0x0000215C
+_022496EC: .word 0x00000F88
+_022496F0: .word 0x00002D4C
+_022496F4: .word 0x00002D6C
+_022496F8: .word 0x00002DB0
+_022496FC: .word 0x00002D58
+_02249700: .word 0x00002D90
+_02249704: .word 0x00000109
+_02249708: .word 0x00002DCC
+_0224970C: .word 0x00002DA8
+_02249710:
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02249722
+ mov r0, #0xcf
+ b _02249724
+_02249722:
+ mov r0, #0xc6
+_02249724:
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_0224972C:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _022497F2
+ add r1, r7, #0
+ bl MOD11_022476C0
+ ldr r1, _02249A58 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02249A5C ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02249760
+ mov r0, #0xcf
+ b _02249762
+_02249760:
+ mov r0, #0xc6
+_02249762:
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_0224976A:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _022497F2
+ add r1, r7, #0
+ bl MOD11_022476C0
+ ldr r1, _02249A58 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02249A5C ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _0224979E
+ mov r0, #0xcf
+ b _022497A0
+_0224979E:
+ mov r0, #0xc6
+_022497A0:
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022497A8:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _022497F2
+ add r1, r7, #0
+ bl MOD11_022476C0
+ ldr r1, _02249A58 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02249A5C ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _022497DC
+ mov r0, #0xcf
+ b _022497DE
+_022497DC:
+ mov r0, #0xc6
+_022497DE:
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022497E6:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bls _022497F4
+_022497F2:
+ b _02249A3C
+_022497F4:
+ add r1, r7, #0
+ bl MOD11_022476C0
+ ldr r1, _02249A58 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02249A5C ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _0224981C
+ mov r0, #0xcf
+ b _0224981E
+_0224981C:
+ mov r0, #0xc6
+_0224981E:
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249826:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _02249838
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_02249838:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249932
+ ldr r0, _02249A64 ; =0x00002D59
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _02249932
+ mov r1, #0x13
+ mov r0, #1
+ lsl r1, r1, #4
+ str r0, [sp, #0xc]
+ str r0, [r4, r1]
+ mov r0, #0xd0
+ str r0, [r6]
+ b _02249A3C
+_0224986C:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _0224987E
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_0224987E:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249932
+ ldr r0, _02249A68 ; =0x00002D5A
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _02249932
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0xd0
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022498B4:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _022498C6
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_022498C6:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249932
+ ldr r0, _02249A6C ; =0x00002D5B
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _02249932
+ mov r0, #0x13
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0xd0
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022498FC:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _0224990E
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_0224990E:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249932
+ ldr r0, _02249A70 ; =0x00002D5C
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ blt _02249934
+_02249932:
+ b _02249A3C
+_02249934:
+ mov r0, #0x13
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0xd0
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249946:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _02249958
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_02249958:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249A3C
+ ldr r0, _02249A74 ; =0x00002D5D
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _02249A3C
+ mov r0, #0x13
+ mov r1, #5
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0xd0
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_0224998E:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _022499A0
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_022499A0:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249A3C
+ ldr r0, _02249A78 ; =0x00002DB0
+ add r1, r4, r5
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x14
+ tst r0, r1
+ bne _02249A3C
+ mov r0, #0xd1
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022499D2:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _022499E4
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_022499E4:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249A3C
+ ldr r0, _02249A64 ; =0x00002D59
+ mov r2, #0
+ add r3, r4, r5
+_02249A04:
+ ldrsb r1, [r3, r0]
+ cmp r1, #0xc
+ blt _02249A12
+ add r2, r2, #1
+ add r3, r3, #1
+ cmp r2, #5
+ blt _02249A04
+_02249A12:
+ cmp r2, #5
+ beq _02249A3C
+ ldr r7, _02249A64 ; =0x00002D59
+ add r5, r4, r5
+_02249A1A:
+ bl LCRandom
+ mov r1, #5
+ bl _s32_div_f
+ add r0, r5, r1
+ ldrsb r0, [r0, r7]
+ cmp r0, #0xc
+ beq _02249A1A
+ mov r0, #0x13
+ add r1, r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0xd2
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+_02249A3C:
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _02249A50
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02249B4C
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+_02249A50:
+ ldr r0, [sp, #0xc]
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02249A58: .word 0x0000215C
+_02249A5C: .word 0x00002DA8
+_02249A60: .word 0x00002D90
+_02249A64: .word 0x00002D59
+_02249A68: .word 0x00002D5A
+_02249A6C: .word 0x00002D5B
+_02249A70: .word 0x00002D5C
+_02249A74: .word 0x00002D5D
+_02249A78: .word 0x00002DB0
+
+ thumb_func_start MOD11_02249A7C
+MOD11_02249A7C: ; 0x02249A7C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r4, r2, #0
+ mov r6, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02249D90
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_02249DA4
+ str r0, [sp, #8]
+ mov r0, #0xc0
+ mul r0, r4
+ str r0, [sp]
+ add r1, r5, r0
+ ldr r0, _02249B40 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02249B38
+ cmp r7, #0x63
+ beq _02249ABA
+ cmp r7, #0x64
+ beq _02249AD0
+ cmp r7, #0x73
+ beq _02249AE6
+ b _02249B0E
+_02249ABA:
+ add r0, r5, #0
+ add r0, #0x94
+ str r4, [r0]
+ add r0, r5, #0
+ mov r1, #5
+ add r0, #0x88
+ str r1, [r0]
+ mov r0, #0x2f
+ str r0, [sp, #4]
+ mov r6, #1
+ b _02249B0E
+_02249AD0:
+ add r0, r5, #0
+ add r0, #0x94
+ str r4, [r0]
+ add r0, r5, #0
+ mov r1, #5
+ add r0, #0x88
+ str r1, [r0]
+ mov r0, #0x19
+ str r0, [sp, #4]
+ mov r6, #1
+ b _02249B0E
+_02249AE6:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _02249B0E
+ ldr r0, [sp]
+ add r1, r5, r0
+ ldr r0, _02249B44 ; =0x00002D90
+ ldr r1, [r1, r0]
+ sub r0, r6, #1
+ mul r0, r1
+ ldr r1, [sp, #8]
+ bl MOD11_022476C0
+ ldr r1, _02249B48 ; =0x0000215C
+ mov r6, #1
+ str r0, [r5, r1]
+ mov r0, #0xd7
+ str r0, [sp, #4]
+_02249B0E:
+ cmp r6, #1
+ bne _02249B38
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r4, [r5, r0]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02249B4C
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r2, [sp, #4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r5, #8]
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+_02249B38:
+ add r0, r6, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02249B40: .word 0x00002D8C
+_02249B44: .word 0x00002D90
+_02249B48: .word 0x0000215C
+
+ thumb_func_start MOD11_02249B4C
+MOD11_02249B4C: ; 0x02249B4C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x67
+ bne _02249B5E
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02249B5E:
+ mov r0, #0xc0
+ mul r0, r4
+ add r2, r5, r0
+ ldr r0, _02249B78 ; =0x00002DCC
+ ldr r1, [r2, r0]
+ lsl r1, r1, #0xa
+ lsr r1, r1, #0x1d
+ beq _02249B72
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02249B72:
+ sub r0, #0x14
+ ldrh r0, [r2, r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02249B78: .word 0x00002DCC
+
+ thumb_func_start MOD11_02249B7C
+MOD11_02249B7C: ; 0x02249B7C
+ lsl r1, r1, #4
+ add r1, r0, r1
+ ldr r0, _02249B90 ; =0x000021A8
+ ldr r0, [r1, r0]
+ cmp r0, #0x27
+ bne _02249B8C
+ mov r0, #1
+ bx lr
+_02249B8C:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_02249B90: .word 0x000021A8
+
+ thumb_func_start MOD11_02249B94
+MOD11_02249B94: ; 0x02249B94
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, [r5, #0x6c]
+ str r0, [sp]
+ add r6, r2, #0
+ mov r7, #0
+ cmp r1, #0xff
+ bne _02249BAC
+ add sp, #0xc
+ add r0, r7, #0
+ pop {r4, r5, r6, r7, pc}
+_02249BAC:
+ add r0, r5, #0
+ bl MOD11_0224AD9C
+ cmp r0, #1
+ bne _02249BBC
+ add sp, #0xc
+ add r0, r7, #0
+ pop {r4, r5, r6, r7, pc}
+_02249BBC:
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ add r4, r0, #0
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_02249DA4
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ ldr r1, [r5, #0x64]
+ bl MOD11_02230270
+ str r0, [sp, #8]
+ cmp r4, #0x2e
+ bgt _02249BF2
+ cmp r4, #0x2a
+ blt _02249BF0
+ bne _02249BE8
+ b _02249D24
+_02249BE8:
+ cmp r4, #0x2d
+ beq _02249C74
+ cmp r4, #0x2e
+ beq _02249CD2
+_02249BF0:
+ b _02249D6A
+_02249BF2:
+ cmp r4, #0x73
+ bne _02249C5C
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ mul r1, r0
+ add r3, r5, r1
+ ldr r1, _02249D70 ; =0x00002D8C
+ ldr r2, [r3, r1]
+ cmp r2, #0
+ beq _02249C5C
+ add r1, #0x2c
+ ldrh r1, [r3, r1]
+ cmp r1, #0
+ bne _02249C5C
+ add r1, r5, r0
+ ldr r0, _02249D74 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl MaskOfFlagNo
+ ldr r1, [sp, #8]
+ lsl r1, r1, #3
+ add r2, r5, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r2, [r2, r1]
+ lsl r2, r2, #3
+ lsr r2, r2, #0x1a
+ tst r0, r2
+ bne _02249C5C
+ ldr r0, _02249D78 ; =0x00003044
+ sub r1, #0xaa
+ ldr r0, [r5, r0]
+ cmp r0, r1
+ beq _02249C5C
+ ldr r2, [r5, #0x6c]
+ mov r1, #0x1c
+ mul r1, r2
+ add r3, r5, r1
+ mov r1, #0xb6
+ lsl r1, r1, #2
+ ldr r2, [r3, r1]
+ cmp r2, #0
+ bne _02249C50
+ add r1, #8
+ ldr r1, [r3, r1]
+ cmp r1, #0
+ beq _02249C5C
+_02249C50:
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r2, [r5, r1]
+ mov r1, #0x10
+ tst r1, r2
+ beq _02249C5E
+_02249C5C:
+ b _02249D6A
+_02249C5E:
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02249D7C ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r1, r0
+ beq _02249D6A
+ mov r1, #0xd8
+ str r1, [r6]
+ add r7, r0, #0
+ b _02249D6A
+_02249C74:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02249D70 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02249D6A
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _02249D6A
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0x10
+ tst r0, r1
+ bne _02249D6A
+ ldr r1, [r5, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r1, r5, r0
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02249D6A
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _02249D80 ; =0x00002D90
+ add r2, r5, r2
+ ldr r2, [r2, r0]
+ sub r1, #0xc1
+ add r0, r2, #0
+ mul r0, r1
+ ldr r1, [sp, #4]
+ bl MOD11_022476C0
+ ldr r1, _02249D84 ; =0x0000215C
+ mov r7, #1
+ str r0, [r5, r1]
+ lsr r0, r1, #5
+ str r0, [r6]
+ b _02249D6A
+_02249CD2:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02249D70 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02249D6A
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _02249D6A
+ ldr r1, [r5, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r1, r5, r0
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02249D6A
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _02249D80 ; =0x00002D90
+ add r2, r5, r2
+ ldr r2, [r2, r0]
+ sub r1, #0xc1
+ add r0, r2, #0
+ mul r0, r1
+ ldr r1, [sp, #4]
+ bl MOD11_022476C0
+ ldr r1, _02249D84 ; =0x0000215C
+ mov r7, #1
+ str r0, [r5, r1]
+ lsr r0, r1, #5
+ str r0, [r6]
+ b _02249D6A
+_02249D24:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r2, _02249D70 ; =0x00002D8C
+ add r0, r5, r0
+ ldr r1, [r0, r2]
+ cmp r1, #0
+ beq _02249D6A
+ ldr r1, _02249D88 ; =0x0000216C
+ ldr r3, [r5, r1]
+ mov r1, #2
+ tst r1, r3
+ beq _02249D6A
+ add r1, r2, #4
+ ldr r0, [r0, r1]
+ ldr r1, [sp, #4]
+ bl MOD11_022476C0
+ ldr r1, _02249D84 ; =0x0000215C
+ mov r7, #1
+ str r0, [r5, r1]
+ mov r1, #0xc6
+ str r1, [r6]
+ ldr r0, [r5, #0x6c]
+ add r1, #0x52
+ str r0, [r5, r1]
+ ldr r0, [r5, #0x6c]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _02249D8C ; =0x00002DB8
+ add r2, r5, r2
+ ldrh r0, [r2, r0]
+ add r1, #0x68
+ str r0, [r5, r1]
+_02249D6A:
+ add r0, r7, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02249D70: .word 0x00002D8C
+_02249D74: .word 0x0000219C
+_02249D78: .word 0x00003044
+_02249D7C: .word 0x000003E9
+_02249D80: .word 0x00002D90
+_02249D84: .word 0x0000215C
+_02249D88: .word 0x0000216C
+_02249D8C: .word 0x00002DB8
+
+ thumb_func_start MOD11_02249D90
+MOD11_02249D90: ; 0x02249D90
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #1
+ bl MOD11_0224C12C
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02249DA4
+MOD11_02249DA4: ; 0x02249DA4
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r2, #0
+ beq _02249DB6
+ cmp r2, #1
+ beq _02249DD2
+ cmp r2, #2
+ beq _02249DBE
+ b _02249DDC
+_02249DB6:
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ b _02249DDC
+_02249DBE:
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _02249DE8 ; =0x00002DCC
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0xa
+ lsr r0, r0, #0x1d
+ beq _02249DD2
+ mov r0, #0
+ pop {r4, pc}
+_02249DD2:
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02249DEC ; =0x00002DB8
+ ldrh r1, [r1, r0]
+_02249DDC:
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C12C
+ pop {r4, pc}
+ nop
+_02249DE8: .word 0x00002DCC
+_02249DEC: .word 0x00002DB8
+
+ thumb_func_start MOD11_02249DF0
+MOD11_02249DF0: ; 0x02249DF0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #0xb
+ bl MOD11_0224C12C
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02249E04
+MOD11_02249E04: ; 0x02249E04
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #0xc
+ bl MOD11_0224C12C
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02249E18
+MOD11_02249E18: ; 0x02249E18
+ mov r2, #0xc0
+ mul r2, r1
+ ldr r1, _02249E28 ; =0x00002DB8
+ add r2, r0, r2
+ ldrh r1, [r2, r1]
+ ldr r3, _02249E2C ; =MOD11_0224C12C
+ mov r2, #8
+ bx r3
+ .align 2, 0
+_02249E28: .word 0x00002DB8
+_02249E2C: .word MOD11_0224C12C
+
+ thumb_func_start MOD11_02249E30
+MOD11_02249E30: ; 0x02249E30
+ push {r3, lr}
+ mov r2, #0xc0
+ mul r2, r1
+ ldr r1, _02249E54 ; =0x00002DCC
+ add r3, r0, r2
+ ldr r2, [r3, r1]
+ lsl r2, r2, #0xa
+ lsr r2, r2, #0x1d
+ beq _02249E46
+ mov r0, #0
+ pop {r3, pc}
+_02249E46:
+ sub r1, #0x14
+ ldrh r1, [r3, r1]
+ mov r2, #9
+ bl MOD11_0224C12C
+ pop {r3, pc}
+ nop
+_02249E54: .word 0x00002DCC
+
+ thumb_func_start MOD11_02249E58
+MOD11_02249E58: ; 0x02249E58
+ push {r3, lr}
+ mov r2, #0xc0
+ mul r2, r1
+ ldr r1, _02249E7C ; =0x00002DCC
+ add r3, r0, r2
+ ldr r2, [r3, r1]
+ lsl r2, r2, #0xa
+ lsr r2, r2, #0x1d
+ beq _02249E6E
+ mov r0, #0
+ pop {r3, pc}
+_02249E6E:
+ sub r1, #0x14
+ ldrh r1, [r3, r1]
+ mov r2, #0xa
+ bl MOD11_0224C12C
+ pop {r3, pc}
+ nop
+_02249E7C: .word 0x00002DCC
+
+ thumb_func_start MOD11_02249E80
+MOD11_02249E80: ; 0x02249E80
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r4, r2, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r6, #0
+ bl MOD11_02249D90
+ cmp r0, #0x7a
+ bne _02249E9E
+ add sp, #8
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02249E9E:
+ mov r0, #0xc0
+ add r7, r4, #0
+ mul r7, r0
+ ldr r0, _02249F80 ; =0x00002DB0
+ add r2, r5, r7
+ ldr r1, [r2, r0]
+ ldr r3, _02249F84 ; =0x0400E000
+ tst r1, r3
+ bne _02249EBA
+ add r0, #0x10
+ ldr r1, [r2, r0]
+ lsr r0, r3, #0x10
+ tst r0, r1
+ beq _02249EBC
+_02249EBA:
+ mov r6, #1
+_02249EBC:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x17
+ beq _02249EDC
+ mov r0, #0x17
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #3
+ add r3, r4, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _02249F10
+_02249EDC:
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #8
+ beq _02249EFC
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #8
+ bne _02249F12
+_02249EFC:
+ mov r0, #0x2a
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #3
+ add r3, r4, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _02249F12
+_02249F10:
+ mov r6, #1
+_02249F12:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x1a
+ beq _02249F4A
+ ldr r0, _02249F88 ; =0x00002DCC
+ add r1, r5, r7
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1d
+ bne _02249F4A
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #2
+ beq _02249F4A
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #2
+ bne _02249F64
+_02249F4A:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02249D90
+ cmp r0, #0x69
+ beq _02249F64
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02249F7A
+_02249F64:
+ mov r0, #0x47
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #3
+ add r3, r4, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _02249F7A
+ mov r6, #1
+_02249F7A:
+ add r0, r6, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02249F80: .word 0x00002DB0
+_02249F84: .word 0x0400E000
+_02249F88: .word 0x00002DCC
+
+ thumb_func_start MOD11_02249F8C
+MOD11_02249F8C: ; 0x02249F8C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ str r0, [sp]
+ mov r6, #0
+ str r2, [sp, #4]
+ add r0, r4, #0
+ add r1, r2, #0
+ add r5, r6, #0
+ bl MOD11_02249E18
+ add r7, r0, #0
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ mov r2, #1
+ bl MOD11_02249DA4
+ str r0, [sp, #0x10]
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_0224AD9C
+ cmp r0, #1
+ bne _02249FC2
+ add sp, #0x14
+ add r0, r6, #0
+ pop {r4, r5, r6, r7, pc}
+_02249FC2:
+ cmp r7, #0x17
+ bls _02249FC8
+ b _0224A444
+_02249FC8:
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02249FD4: ; jump table
+ .short _0224A444 - _02249FD4 - 2 ; case 0
+ .short _0224A04E - _02249FD4 - 2 ; case 1
+ .short _0224A066 - _02249FD4 - 2 ; case 2
+ .short _0224A07E - _02249FD4 - 2 ; case 3
+ .short _0224A096 - _02249FD4 - 2 ; case 4
+ .short _0224A0AE - _02249FD4 - 2 ; case 5
+ .short _0224A0C6 - _02249FD4 - 2 ; case 6
+ .short _0224A004 - _02249FD4 - 2 ; case 7
+ .short _0224A13C - _02249FD4 - 2 ; case 8
+ .short _0224A154 - _02249FD4 - 2 ; case 9
+ .short _0224A024 - _02249FD4 - 2 ; case 10
+ .short _0224A1B6 - _02249FD4 - 2 ; case 11
+ .short _0224A1FC - _02249FD4 - 2 ; case 12
+ .short _0224A242 - _02249FD4 - 2 ; case 13
+ .short _0224A288 - _02249FD4 - 2 ; case 14
+ .short _0224A2CE - _02249FD4 - 2 ; case 15
+ .short _0224A314 - _02249FD4 - 2 ; case 16
+ .short _0224A360 - _02249FD4 - 2 ; case 17
+ .short _0224A37E - _02249FD4 - 2 ; case 18
+ .short _0224A39C - _02249FD4 - 2 ; case 19
+ .short _0224A3BA - _02249FD4 - 2 ; case 20
+ .short _0224A424 - _02249FD4 - 2 ; case 21
+ .short _0224A3D8 - _02249FD4 - 2 ; case 22
+ .short _0224A43E - _02249FD4 - 2 ; case 23
+_0224A004:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _0224A320 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ add r0, r0, #4
+ ldr r0, [r2, r0]
+ cmp r1, r0
+ beq _0224A020
+ ldr r1, _0224A324 ; =0x0000215C
+ ldr r0, [sp, #0x10]
+ mov r5, #0xc6
+ str r0, [r4, r1]
+_0224A020:
+ mov r6, #1
+ b _0224A45A
+_0224A024:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A328 ; =0x00002D90
+ ldr r2, [r1, r0]
+ sub r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, r2
+ beq _0224A04A
+ ldr r1, [sp, #0x10]
+ add r0, r1, #0
+ mul r0, r2
+ mov r1, #0x64
+ bl MOD11_022476C0
+ ldr r1, _0224A324 ; =0x0000215C
+ mov r5, #0xc6
+ str r0, [r4, r1]
+_0224A04A:
+ mov r6, #1
+ b _0224A45A
+_0224A04E:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A32C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _0224A062
+ mov r5, #0xc7
+_0224A062:
+ mov r6, #1
+ b _0224A45A
+_0224A066:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A32C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0224A07A
+ mov r5, #0xc8
+_0224A07A:
+ mov r6, #1
+ b _0224A45A
+_0224A07E:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A32C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ ldr r0, _0224A330 ; =0x00000F88
+ tst r0, r1
+ beq _0224A092
+ mov r5, #0xc9
+_0224A092:
+ mov r6, #1
+ b _0224A45A
+_0224A096:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A32C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x10
+ tst r0, r1
+ beq _0224A0AA
+ mov r5, #0xca
+_0224A0AA:
+ mov r6, #1
+ b _0224A45A
+_0224A0AE:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A32C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0224A0C2
+ mov r5, #0xcb
+_0224A0C2:
+ mov r6, #1
+ b _0224A45A
+_0224A0C6:
+ str r5, [sp, #0xc]
+_0224A0C8:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r7, r1, #0
+ mul r7, r0
+ add r1, r4, r7
+ ldr r0, _0224A334 ; =0x00002D4C
+ add r2, r6, r1
+ ldrh r0, [r2, r0]
+ cmp r0, #0
+ beq _0224A0FA
+ add r2, r5, r1
+ ldr r1, _0224A338 ; =0x00002D70
+ ldrb r1, [r2, r1]
+ bl WazaGetMaxPp
+ add r1, r4, r7
+ add r2, r5, r1
+ ldr r1, _0224A33C ; =0x00002D6C
+ ldrb r1, [r2, r1]
+ sub r1, r0, r1
+ ldr r0, [sp, #0xc]
+ cmp r1, r0
+ ble _0224A0FA
+ str r1, [sp, #0xc]
+ str r5, [sp, #8]
+_0224A0FA:
+ add r5, r5, #1
+ add r6, r6, #2
+ cmp r5, #4
+ blt _0224A0C8
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldr r1, [sp, #8]
+ add r0, r4, r0
+ ldr r2, [sp, #0x10]
+ add r0, r0, r7
+ add r1, #0x1f
+ bl MOD11_02243DC8
+ ldr r0, [sp]
+ ldr r2, [r4, #0x64]
+ add r1, r4, #0
+ bl MOD11_02245190
+ ldr r0, [r4, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, [sp, #8]
+ add r2, r4, r2
+ lsl r0, r0, #1
+ add r2, r2, r0
+ ldr r0, _0224A334 ; =0x00002D4C
+ add r1, #0x64
+ ldrh r0, [r2, r0]
+ mov r5, #0xcc
+ mov r6, #1
+ str r0, [r4, r1]
+ b _0224A45A
+_0224A13C:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A340 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0224A150
+ mov r5, #0xcd
+_0224A150:
+ mov r6, #1
+ b _0224A45A
+_0224A154:
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ add r1, r2, #0
+ mul r1, r0
+ ldr r6, _0224A32C ; =0x00002DAC
+ add r0, r4, r1
+ ldr r2, [r0, r6]
+ lsl r3, r2, #0x18
+ lsr r3, r3, #0x18
+ bne _0224A172
+ add r6, r6, #4
+ ldr r6, [r0, r6]
+ mov r0, #7
+ tst r0, r6
+ beq _0224A1B2
+_0224A172:
+ mov r0, #0x40
+ tst r0, r2
+ beq _0224A17A
+ mov r5, #0xc7
+_0224A17A:
+ mov r0, #7
+ tst r0, r2
+ beq _0224A182
+ mov r5, #0xc8
+_0224A182:
+ ldr r0, _0224A330 ; =0x00000F88
+ tst r0, r2
+ beq _0224A18A
+ mov r5, #0xc9
+_0224A18A:
+ mov r0, #0x10
+ tst r0, r2
+ beq _0224A192
+ mov r5, #0xca
+_0224A192:
+ mov r0, #0x20
+ tst r0, r2
+ beq _0224A19A
+ mov r5, #0xcb
+_0224A19A:
+ ldr r0, _0224A340 ; =0x00002DB0
+ add r1, r4, r1
+ ldr r1, [r1, r0]
+ mov r0, #7
+ and r0, r1
+ beq _0224A1A8
+ mov r5, #0xcd
+_0224A1A8:
+ cmp r3, #0
+ beq _0224A1B2
+ cmp r0, #0
+ beq _0224A1B2
+ mov r5, #0xce
+_0224A1B2:
+ mov r6, #1
+ b _0224A45A
+_0224A1B6:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224A328 ; =0x00002D90
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ sub r1, r1, #4
+ ldr r1, [r2, r1]
+ cmp r1, r0
+ beq _0224A1F8
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A324 ; =0x0000215C
+ str r0, [r4, r1]
+ mov r0, #0x13
+ add r1, r6, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A344 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r6, #1
+ cmp r0, r1
+ bne _0224A1F6
+ mov r5, #0xcf
+ b _0224A1F8
+_0224A1F6:
+ mov r5, #0xc6
+_0224A1F8:
+ mov r6, #1
+ b _0224A45A
+_0224A1FC:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224A328 ; =0x00002D90
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ sub r1, r1, #4
+ ldr r1, [r2, r1]
+ cmp r1, r0
+ beq _0224A23E
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A324 ; =0x0000215C
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A344 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r6, #1
+ cmp r0, r1
+ bne _0224A23C
+ mov r5, #0xcf
+ b _0224A23E
+_0224A23C:
+ mov r5, #0xc6
+_0224A23E:
+ mov r6, #1
+ b _0224A45A
+_0224A242:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224A328 ; =0x00002D90
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ sub r1, r1, #4
+ ldr r1, [r2, r1]
+ cmp r1, r0
+ beq _0224A284
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A324 ; =0x0000215C
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A344 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r6, #1
+ cmp r0, r1
+ bne _0224A282
+ mov r5, #0xcf
+ b _0224A284
+_0224A282:
+ mov r5, #0xc6
+_0224A284:
+ mov r6, #1
+ b _0224A45A
+_0224A288:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224A328 ; =0x00002D90
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ sub r1, r1, #4
+ ldr r1, [r2, r1]
+ cmp r1, r0
+ beq _0224A2CA
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A324 ; =0x0000215C
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A344 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r6, #1
+ cmp r0, r1
+ bne _0224A2C8
+ mov r5, #0xcf
+ b _0224A2CA
+_0224A2C8:
+ mov r5, #0xc6
+_0224A2CA:
+ mov r6, #1
+ b _0224A45A
+_0224A2CE:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224A328 ; =0x00002D90
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ sub r1, r1, #4
+ ldr r1, [r2, r1]
+ cmp r1, r0
+ beq _0224A310
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A324 ; =0x0000215C
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A344 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r6, #1
+ cmp r0, r1
+ bne _0224A30E
+ mov r5, #0xcf
+ b _0224A310
+_0224A30E:
+ mov r5, #0xc6
+_0224A310:
+ mov r6, #1
+ b _0224A45A
+_0224A314:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _0224A348 ; =0x00002D59
+ b _0224A34C
+ .align 2, 0
+_0224A320: .word 0x00002D8C
+_0224A324: .word 0x0000215C
+_0224A328: .word 0x00002D90
+_0224A32C: .word 0x00002DAC
+_0224A330: .word 0x00000F88
+_0224A334: .word 0x00002D4C
+_0224A338: .word 0x00002D70
+_0224A33C: .word 0x00002D6C
+_0224A340: .word 0x00002DB0
+_0224A344: .word 0x00002DA8
+_0224A348: .word 0x00002D59
+_0224A34C:
+ add r2, r4, r2
+ ldrsb r1, [r2, r1]
+ cmp r1, #0xc
+ bge _0224A35C
+ mov r1, #1
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r5, #0xd0
+_0224A35C:
+ mov r6, #1
+ b _0224A45A
+_0224A360:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _0224A4C0 ; =0x00002D5A
+ add r2, r4, r2
+ ldrsb r1, [r2, r1]
+ cmp r1, #0xc
+ bge _0224A37A
+ mov r1, #2
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r5, #0xd0
+_0224A37A:
+ mov r6, #1
+ b _0224A45A
+_0224A37E:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _0224A4C4 ; =0x00002D5B
+ add r2, r4, r2
+ ldrsb r1, [r2, r1]
+ cmp r1, #0xc
+ bge _0224A398
+ mov r1, #3
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r5, #0xd0
+_0224A398:
+ mov r6, #1
+ b _0224A45A
+_0224A39C:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _0224A4C8 ; =0x00002D5C
+ add r2, r4, r2
+ ldrsb r1, [r2, r1]
+ cmp r1, #0xc
+ bge _0224A3B6
+ mov r1, #4
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r5, #0xd0
+_0224A3B6:
+ mov r6, #1
+ b _0224A45A
+_0224A3BA:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _0224A4CC ; =0x00002D5D
+ add r2, r4, r2
+ ldrsb r1, [r2, r1]
+ cmp r1, #0xc
+ bge _0224A3D4
+ mov r1, #5
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r5, #0xd0
+_0224A3D4:
+ mov r6, #1
+ b _0224A45A
+_0224A3D8:
+ ldr r2, [r4, #0x64]
+ mov r1, #0xc0
+ mul r1, r2
+ add r3, r4, r1
+ ldr r1, _0224A4D0 ; =0x00002D59
+ add r0, r6, #0
+_0224A3E4:
+ ldrsb r2, [r3, r1]
+ cmp r2, #0xc
+ blt _0224A3F2
+ add r0, r0, #1
+ add r3, r3, #1
+ cmp r0, #5
+ blt _0224A3E4
+_0224A3F2:
+ cmp r0, #5
+ beq _0224A420
+ ldr r5, _0224A4D0 ; =0x00002D59
+ mov r7, #5
+ mov r6, #0xc0
+_0224A3FC:
+ bl LCRandom
+ add r1, r7, #0
+ bl _s32_div_f
+ ldr r0, [r4, #0x64]
+ add r2, r0, #0
+ mul r2, r6
+ add r0, r4, r2
+ add r0, r1, r0
+ ldrsb r0, [r0, r5]
+ cmp r0, #0xc
+ beq _0224A3FC
+ mov r0, #0x13
+ add r1, r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r5, #0xd2
+_0224A420:
+ mov r6, #1
+ b _0224A45A
+_0224A424:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A4D4 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x14
+ tst r0, r1
+ bne _0224A43A
+ mov r5, #0xd1
+_0224A43A:
+ mov r6, #1
+ b _0224A45A
+_0224A43E:
+ ldr r5, _0224A4D8 ; =0x00000109
+ mov r6, #1
+ b _0224A45A
+_0224A444:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224A4DC ; =0x00002DB8
+ add r1, r4, r1
+ ldrh r0, [r1, r0]
+ bl FUN_0206EAEC
+ cmp r0, #1
+ bne _0224A45A
+ mov r6, #1
+_0224A45A:
+ cmp r6, #1
+ bne _0224A4B8
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x67
+ beq _0224A482
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ mov r1, #0xb7
+ add r2, r4, r2
+ lsl r1, r1, #6
+ ldr r2, [r2, r1]
+ mov r1, #1
+ lsl r1, r1, #0x1a
+ tst r1, r2
+ beq _0224A48C
+_0224A482:
+ mov r0, #0x4e
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _0224A490
+_0224A48C:
+ add r0, #0x78
+ str r5, [r4, r0]
+_0224A490:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _0224A4DC ; =0x00002DB8
+ add r2, r4, r2
+ ldrh r0, [r2, r0]
+ add r1, #0x68
+ str r0, [r4, r1]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xba
+ lsl r0, r0, #2
+ mov r1, #0x1c
+ add r3, r2, #0
+ mul r3, r1
+ add r0, r4, r0
+ ldr r2, [r0, r3]
+ mov r1, #2
+ orr r1, r2
+ str r1, [r0, r3]
+_0224A4B8:
+ add r0, r6, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224A4C0: .word 0x00002D5A
+_0224A4C4: .word 0x00002D5B
+_0224A4C8: .word 0x00002D5C
+_0224A4CC: .word 0x00002D5D
+_0224A4D0: .word 0x00002D59
+_0224A4D4: .word 0x00002DB0
+_0224A4D8: .word 0x00000109
+_0224A4DC: .word 0x00002DB8
+
+ thumb_func_start MOD11_0224A4E0
+MOD11_0224A4E0: ; 0x0224A4E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ str r0, [sp]
+ str r2, [sp, #4]
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD11_02249E30
+ add r6, r0, #0
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_02249DA4
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02249E58
+ ldr r1, _0224A84C ; =0x00002154
+ add r2, r4, #0
+ str r0, [r4, r1]
+ ldr r0, _0224A850 ; =0x00003118
+ mov r5, #0
+ str r5, [r4, r0]
+ add r2, #0x88
+ str r5, [r2]
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ bne _0224A524
+ add sp, #0x14
+ add r0, r5, #0
+ pop {r4, r5, r6, r7, pc}
+_0224A524:
+ cmp r6, #0x1e
+ bls _0224A52A
+ b _0224AAAC
+_0224A52A:
+ add r1, r6, r6
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224A536: ; jump table
+ .short _0224AAAC - _0224A536 - 2 ; case 0
+ .short _0224A5A2 - _0224A536 - 2 ; case 1
+ .short _0224A5BA - _0224A536 - 2 ; case 2
+ .short _0224A5D2 - _0224A536 - 2 ; case 3
+ .short _0224A5EA - _0224A536 - 2 ; case 4
+ .short _0224A602 - _0224A536 - 2 ; case 5
+ .short _0224A61A - _0224A536 - 2 ; case 6
+ .short _0224A574 - _0224A536 - 2 ; case 7
+ .short _0224A69C - _0224A536 - 2 ; case 8
+ .short _0224A6B4 - _0224A536 - 2 ; case 9
+ .short _0224A580 - _0224A536 - 2 ; case 10
+ .short _0224A77A - _0224A536 - 2 ; case 11
+ .short _0224A7BC - _0224A536 - 2 ; case 12
+ .short _0224A7FE - _0224A536 - 2 ; case 13
+ .short _0224A840 - _0224A536 - 2 ; case 14
+ .short _0224A8B0 - _0224A536 - 2 ; case 15
+ .short _0224A9AC - _0224A536 - 2 ; case 16
+ .short _0224A9CA - _0224A536 - 2 ; case 17
+ .short _0224A9E8 - _0224A536 - 2 ; case 18
+ .short _0224AA06 - _0224A536 - 2 ; case 19
+ .short _0224AA24 - _0224A536 - 2 ; case 20
+ .short _0224AA8E - _0224A536 - 2 ; case 21
+ .short _0224AA42 - _0224A536 - 2 ; case 22
+ .short _0224AAA8 - _0224A536 - 2 ; case 23
+ .short _0224A8F2 - _0224A536 - 2 ; case 24
+ .short _0224A91A - _0224A536 - 2 ; case 25
+ .short _0224A93E - _0224A536 - 2 ; case 26
+ .short _0224A954 - _0224A536 - 2 ; case 27
+ .short _0224A96A - _0224A536 - 2 ; case 28
+ .short _0224A980 - _0224A536 - 2 ; case 29
+ .short _0224A996 - _0224A536 - 2 ; case 30
+_0224A574:
+ ldr r1, [sp, #0x10]
+ sub r2, r0, #4
+ str r1, [r4, r2]
+ mov r1, #0xc6
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A580:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A854 ; =0x00002D90
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ mul r0, r1
+ mov r1, #0x64
+ bl MOD11_022476C0
+ ldr r1, _0224A858 ; =0x00003114
+ mov r2, #0xc6
+ str r0, [r4, r1]
+ add r0, r1, #4
+ str r2, [r4, r0]
+ b _0224AAAC
+_0224A5A2:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224A85C ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #0x40
+ tst r1, r2
+ beq _0224A65C
+ mov r1, #0xc7
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A5BA:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224A85C ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #7
+ tst r1, r2
+ beq _0224A65C
+ mov r1, #0xc8
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A5D2:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224A85C ; =0x00002DAC
+ ldr r2, [r2, r1]
+ ldr r1, _0224A860 ; =0x00000F88
+ tst r1, r2
+ beq _0224A65C
+ mov r1, #0xc9
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A5EA:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224A85C ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #0x10
+ tst r1, r2
+ beq _0224A65C
+ mov r1, #0xca
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A602:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224A85C ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #0x20
+ tst r1, r2
+ beq _0224A65C
+ mov r1, #0xcb
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A61A:
+ add r6, r5, #0
+ add r7, r5, #0
+_0224A61E:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ str r0, [sp, #8]
+ ldr r0, _0224A864 ; =0x00002D4C
+ add r2, r7, r1
+ ldrh r0, [r2, r0]
+ cmp r0, #0
+ beq _0224A650
+ add r2, r6, r1
+ ldr r1, _0224A868 ; =0x00002D70
+ ldrb r1, [r2, r1]
+ bl WazaGetMaxPp
+ ldr r1, [sp, #8]
+ add r1, r4, r1
+ add r2, r6, r1
+ ldr r1, _0224A86C ; =0x00002D6C
+ ldrb r1, [r2, r1]
+ sub r0, r0, r1
+ cmp r0, r5
+ ble _0224A650
+ add r5, r0, #0
+ str r6, [sp, #0xc]
+_0224A650:
+ add r6, r6, #1
+ add r7, r7, #2
+ cmp r6, #4
+ blt _0224A61E
+ cmp r5, #0
+ bne _0224A65E
+_0224A65C:
+ b _0224AAAC
+_0224A65E:
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r1, r4, r0
+ ldr r0, [sp, #8]
+ ldr r2, [sp, #0x10]
+ add r0, r1, r0
+ ldr r1, [sp, #0xc]
+ add r1, #0x1f
+ bl MOD11_02243DC8
+ ldr r0, [sp]
+ ldr r2, [r4, #0x6c]
+ add r1, r4, #0
+ bl MOD11_02245190
+ ldr r0, [r4, #0x6c]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, [sp, #0xc]
+ add r2, r4, r2
+ lsl r0, r0, #1
+ add r2, r2, r0
+ ldr r0, _0224A864 ; =0x00002D4C
+ add r1, #0x64
+ ldrh r0, [r2, r0]
+ str r0, [r4, r1]
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xcc
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A69C:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224A870 ; =0x00002DB0
+ ldr r2, [r2, r1]
+ mov r1, #7
+ tst r1, r2
+ beq _0224A770
+ mov r1, #0xcd
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A6B4:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224A85C ; =0x00002DAC
+ add r3, r4, r0
+ ldr r0, [r3, r1]
+ lsl r2, r0, #0x18
+ lsr r2, r2, #0x18
+ bne _0224A6D0
+ add r1, r1, #4
+ ldr r2, [r3, r1]
+ mov r1, #7
+ tst r1, r2
+ beq _0224A770
+_0224A6D0:
+ mov r1, #0x40
+ tst r0, r1
+ beq _0224A6DC
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xc7
+ str r1, [r4, r0]
+_0224A6DC:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A85C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0224A6F4
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xc8
+ str r1, [r4, r0]
+_0224A6F4:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A85C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ ldr r0, _0224A860 ; =0x00000F88
+ tst r0, r1
+ beq _0224A70C
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xc9
+ str r1, [r4, r0]
+_0224A70C:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A85C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x10
+ tst r0, r1
+ beq _0224A724
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xca
+ str r1, [r4, r0]
+_0224A724:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A85C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0224A73C
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xcb
+ str r1, [r4, r0]
+_0224A73C:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A870 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0224A754
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xcd
+ str r1, [r4, r0]
+_0224A754:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _0224A85C ; =0x00002DAC
+ ldr r1, [r2, r0]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ beq _0224A770
+ add r0, r0, #4
+ ldr r1, [r2, r0]
+ mov r0, #7
+ tst r0, r1
+ bne _0224A772
+_0224A770:
+ b _0224AAAC
+_0224A772:
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xce
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A77A:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A854 ; =0x00002D90
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A858 ; =0x00003114
+ str r0, [r4, r1]
+ mov r0, #0x13
+ add r1, r5, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A874 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r5, #1
+ cmp r0, r1
+ ldr r0, _0224A850 ; =0x00003118
+ bne _0224A7B6
+ mov r1, #0xcf
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A7B6:
+ mov r1, #0xc6
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A7BC:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A854 ; =0x00002D90
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A858 ; =0x00003114
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A874 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r5, #1
+ cmp r0, r1
+ ldr r0, _0224A850 ; =0x00003118
+ bne _0224A7F8
+ mov r1, #0xcf
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A7F8:
+ mov r1, #0xc6
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A7FE:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A854 ; =0x00002D90
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A858 ; =0x00003114
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A874 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r5, #1
+ cmp r0, r1
+ ldr r0, _0224A850 ; =0x00003118
+ bne _0224A83A
+ mov r1, #0xcf
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A83A:
+ mov r1, #0xc6
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A840:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A854 ; =0x00002D90
+ b _0224A878
+ .align 2, 0
+_0224A84C: .word 0x00002154
+_0224A850: .word 0x00003118
+_0224A854: .word 0x00002D90
+_0224A858: .word 0x00003114
+_0224A85C: .word 0x00002DAC
+_0224A860: .word 0x00000F88
+_0224A864: .word 0x00002D4C
+_0224A868: .word 0x00002D70
+_0224A86C: .word 0x00002D6C
+_0224A870: .word 0x00002DB0
+_0224A874: .word 0x00002DA8
+_0224A878:
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224AB14 ; =0x00003114
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224AB18 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r5, #1
+ cmp r0, r1
+ ldr r0, _0224AB1C ; =0x00003118
+ bne _0224A8AA
+ mov r1, #0xcf
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A8AA:
+ mov r1, #0xc6
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A8B0:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224AB20 ; =0x00002D90
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224AB14 ; =0x00003114
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224AB18 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r5, #1
+ cmp r0, r1
+ ldr r0, _0224AB1C ; =0x00003118
+ bne _0224A8EC
+ mov r1, #0xcf
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A8EC:
+ mov r1, #0xc6
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A8F2:
+ ldr r2, _0224AB24 ; =0x00002D58
+ mov r6, #6
+ mov r3, #0xd3
+ mov r7, #0xc0
+_0224A8FA:
+ ldr r0, [r4, #0x6c]
+ add r1, r0, #0
+ mul r1, r7
+ add r0, r4, r1
+ add r0, r0, r5
+ ldrsb r1, [r0, r2]
+ cmp r1, #6
+ bge _0224A912
+ ldr r1, _0224AB24 ; =0x00002D58
+ strb r6, [r0, r1]
+ ldr r0, _0224AB1C ; =0x00003118
+ str r3, [r4, r0]
+_0224A912:
+ add r5, r5, #1
+ cmp r5, #8
+ blt _0224A8FA
+ b _0224AAAC
+_0224A91A:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r2, _0224AB28 ; =0x00002DB0
+ add r3, r4, r3
+ ldr r3, [r3, r2]
+ mov r2, #0xf
+ lsl r2, r2, #0x10
+ tst r2, r3
+ bne _0224A932
+ b _0224AAAC
+_0224A932:
+ mov r2, #6
+ add r1, #0x70
+ str r2, [r4, r1]
+ mov r1, #0xd4
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A93E:
+ add r2, r4, #0
+ ldr r1, [sp, #4]
+ add r2, #0x94
+ str r1, [r2]
+ add r1, r4, #0
+ mov r2, #2
+ add r1, #0x88
+ str r2, [r1]
+ mov r1, #0xe
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A954:
+ add r2, r4, #0
+ ldr r1, [sp, #4]
+ add r2, #0x94
+ str r1, [r2]
+ add r1, r4, #0
+ mov r2, #2
+ add r1, #0x88
+ str r2, [r1]
+ mov r1, #0x1f
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A96A:
+ add r2, r4, #0
+ ldr r1, [sp, #4]
+ add r2, #0x94
+ str r1, [r2]
+ add r1, r4, #0
+ mov r2, #2
+ add r1, #0x88
+ str r2, [r1]
+ mov r1, #0x16
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A980:
+ add r2, r4, #0
+ ldr r1, [sp, #4]
+ add r2, #0x94
+ str r1, [r2]
+ add r1, r4, #0
+ mov r2, #2
+ add r1, #0x88
+ str r2, [r1]
+ mov r1, #0x2f
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A996:
+ add r2, r4, #0
+ ldr r1, [sp, #4]
+ add r2, #0x94
+ str r1, [r2]
+ add r1, r4, #0
+ mov r2, #2
+ add r1, #0x88
+ str r2, [r1]
+ mov r1, #0x19
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A9AC:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r2, _0224AB2C ; =0x00002D59
+ add r3, r4, r3
+ ldrsb r2, [r3, r2]
+ cmp r2, #0xc
+ bge _0224AAAC
+ mov r2, #1
+ add r1, #0x70
+ str r2, [r4, r1]
+ mov r1, #0xd0
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A9CA:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r2, _0224AB30 ; =0x00002D5A
+ add r3, r4, r3
+ ldrsb r2, [r3, r2]
+ cmp r2, #0xc
+ bge _0224AAAC
+ mov r2, #2
+ add r1, #0x70
+ str r2, [r4, r1]
+ mov r1, #0xd0
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A9E8:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r2, _0224AB34 ; =0x00002D5B
+ add r3, r4, r3
+ ldrsb r2, [r3, r2]
+ cmp r2, #0xc
+ bge _0224AAAC
+ mov r2, #3
+ add r1, #0x70
+ str r2, [r4, r1]
+ mov r1, #0xd0
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224AA06:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r2, _0224AB38 ; =0x00002D5C
+ add r3, r4, r3
+ ldrsb r2, [r3, r2]
+ cmp r2, #0xc
+ bge _0224AAAC
+ mov r2, #4
+ add r1, #0x70
+ str r2, [r4, r1]
+ mov r1, #0xd0
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224AA24:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r2, _0224AB3C ; =0x00002D5D
+ add r3, r4, r3
+ ldrsb r2, [r3, r2]
+ cmp r2, #0xc
+ bge _0224AAAC
+ mov r2, #5
+ add r1, #0x70
+ str r2, [r4, r1]
+ mov r1, #0xd0
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224AA42:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _0224AB2C ; =0x00002D59
+_0224AA4C:
+ ldrsb r1, [r2, r0]
+ cmp r1, #0xc
+ blt _0224AA5A
+ add r5, r5, #1
+ add r2, r2, #1
+ cmp r5, #5
+ blt _0224AA4C
+_0224AA5A:
+ cmp r5, #5
+ beq _0224AAAC
+ ldr r5, _0224AB2C ; =0x00002D59
+ mov r7, #5
+ mov r6, #0xc0
+_0224AA64:
+ bl LCRandom
+ add r1, r7, #0
+ bl _s32_div_f
+ ldr r0, [r4, #0x6c]
+ add r2, r0, #0
+ mul r2, r6
+ add r0, r4, r2
+ add r0, r1, r0
+ ldrsb r0, [r0, r5]
+ cmp r0, #0xc
+ beq _0224AA64
+ mov r0, #0x13
+ add r1, r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _0224AB1C ; =0x00003118
+ mov r1, #0xd2
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224AA8E:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224AB28 ; =0x00002DB0
+ ldr r2, [r2, r1]
+ mov r1, #1
+ lsl r1, r1, #0x14
+ tst r1, r2
+ bne _0224AAAC
+ mov r1, #0xd1
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224AAA8:
+ ldr r1, _0224AB40 ; =0x00000109
+ str r1, [r4, r0]
+_0224AAAC:
+ ldr r0, [r4, #0x6c]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ add r0, r4, r2
+ mov r2, #0xb7
+ lsl r2, r2, #6
+ ldr r3, [r0, r2]
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ tst r0, r3
+ beq _0224AACC
+ ldr r0, _0224AB1C ; =0x00003118
+ mov r1, #0
+ str r1, [r4, r0]
+ b _0224AB0C
+_0224AACC:
+ ldr r0, [sp, #4]
+ sub r2, #8
+ add r3, r0, #0
+ mul r3, r1
+ add r0, r4, r3
+ ldrh r0, [r0, r2]
+ add r1, #0x68
+ str r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0224AB04
+ ldr r0, _0224AB1C ; =0x00003118
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0224AB04
+ mov r0, #0xba
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ add r3, r4, r0
+ mov r0, #0x1c
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ mov r0, #2
+ orr r0, r1
+ str r0, [r3, r2]
+_0224AB04:
+ mov r0, #0x46
+ ldr r1, [r4, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_0224AB0C:
+ mov r0, #1
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224AB14: .word 0x00003114
+_0224AB18: .word 0x00002DA8
+_0224AB1C: .word 0x00003118
+_0224AB20: .word 0x00002D90
+_0224AB24: .word 0x00002D58
+_0224AB28: .word 0x00002DB0
+_0224AB2C: .word 0x00002D59
+_0224AB30: .word 0x00002D5A
+_0224AB34: .word 0x00002D5B
+_0224AB38: .word 0x00002D5C
+_0224AB3C: .word 0x00002D5D
+_0224AB40: .word 0x00000109
+
+ thumb_func_start MOD11_0224AB44
+MOD11_0224AB44: ; 0x0224AB44
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02249D90
+ cmp r0, #0x68
+ bne _0224ABD2
+ ldr r5, [r4, #0x64]
+ mov r6, #0xc0
+ add r3, r5, #0
+ mul r3, r6
+ ldr r0, _0224ABE8 ; =0x00002DB0
+ add r2, r4, r3
+ ldr r1, [r2, r0]
+ lsl r6, r6, #4
+ tst r6, r1
+ bne _0224ABE6
+ mov r6, #0x70
+ tst r6, r1
+ bne _0224ABE6
+ ldr r6, _0224ABEC ; =0x0000213C
+ ldr r7, [r4, r6]
+ mov r6, #2
+ lsl r6, r6, #8
+ tst r7, r6
+ bne _0224ABE6
+ lsl r6, r6, #3
+ tst r1, r6
+ bne _0224ABE6
+ mov r6, #0xc1
+ lsl r6, r6, #6
+ lsl r5, r5, #1
+ add r7, r4, r5
+ add r5, r6, #0
+ add r5, #0x9c
+ ldrh r5, [r7, r5]
+ ldr r1, [r4, r6]
+ cmp r1, r5
+ bne _0224ABB8
+ add r1, r0, #0
+ add r1, #0x1c
+ ldr r1, [r2, r1]
+ lsl r1, r1, #5
+ lsr r5, r1, #0x1c
+ cmp r5, #0xa
+ bhs _0224ABE6
+ add r0, #0x1c
+ add r0, r4, r0
+ ldr r2, [r0, r3]
+ ldr r1, _0224ABF0 ; =0xF87FFFFF
+ and r2, r1
+ add r1, r5, #1
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #5
+ orr r1, r2
+ str r1, [r0, r3]
+ pop {r3, r4, r5, r6, r7, pc}
+_0224ABB8:
+ add r0, #0x1c
+ add r2, r4, r0
+ ldr r1, [r2, r3]
+ ldr r0, _0224ABF0 ; =0xF87FFFFF
+ and r0, r1
+ str r0, [r2, r3]
+ ldr r0, [r4, #0x64]
+ ldr r1, [r4, r6]
+ lsl r0, r0, #1
+ add r0, r4, r0
+ add r6, #0x9c
+ strh r1, [r0, r6]
+ pop {r3, r4, r5, r6, r7, pc}
+_0224ABD2:
+ ldr r0, _0224ABF4 ; =0x00002DCC
+ ldr r1, [r4, #0x64]
+ add r3, r4, r0
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ ldr r0, _0224ABF0 ; =0xF87FFFFF
+ and r0, r1
+ str r0, [r3, r2]
+_0224ABE6:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224ABE8: .word 0x00002DB0
+_0224ABEC: .word 0x0000213C
+_0224ABF0: .word 0xF87FFFFF
+_0224ABF4: .word 0x00002DCC
+
+ thumb_func_start MOD11_0224ABF8
+MOD11_0224ABF8: ; 0x0224ABF8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02249D90
+ cmp r0, #0x68
+ bne _0224AC84
+ ldr r5, _0224AC9C ; =0x0000216C
+ ldr r0, _0224ACA0 ; =0x801FDA49
+ ldr r1, [r4, r5]
+ tst r0, r1
+ beq _0224AC98
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ lsl r1, r2, #1
+ ldr r3, [r4, r0]
+ add r1, r4, r1
+ add r0, #0x9c
+ ldrh r0, [r1, r0]
+ cmp r3, r0
+ bne _0224AC98
+ mov r0, #0xc0
+ add r1, r2, #0
+ mul r1, r0
+ ldr r3, _0224ACA4 ; =0x00002DCC
+ add r6, r4, r1
+ ldr r0, [r6, r3]
+ lsl r0, r0, #5
+ lsr r0, r0, #0x1c
+ beq _0224AC98
+ mov r7, #0x1c
+ mul r7, r2
+ mov r2, #0xb5
+ add r7, r4, r7
+ lsl r2, r2, #2
+ ldr r7, [r7, r2]
+ lsl r7, r7, #0x17
+ lsr r7, r7, #0x1d
+ bne _0224AC98
+ add r7, r3, #0
+ sub r7, #0x1c
+ ldr r6, [r6, r7]
+ mov r7, #0xc0
+ lsl r7, r7, #4
+ tst r7, r6
+ bne _0224AC98
+ mov r7, #0x70
+ tst r7, r6
+ bne _0224AC98
+ sub r5, #0x30
+ ldr r5, [r4, r5]
+ sub r2, #0xd4
+ tst r2, r5
+ bne _0224AC98
+ mov r2, #1
+ lsl r2, r2, #0xc
+ tst r2, r6
+ bne _0224AC98
+ add r2, r4, r3
+ sub r0, r0, #1
+ lsl r0, r0, #0x1c
+ ldr r4, [r2, r1]
+ ldr r3, _0224ACA8 ; =0xF87FFFFF
+ lsr r0, r0, #5
+ and r3, r4
+ orr r0, r3
+ str r0, [r2, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+_0224AC84:
+ ldr r0, _0224ACA4 ; =0x00002DCC
+ ldr r1, [r4, #0x64]
+ add r3, r4, r0
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ ldr r0, _0224ACA8 ; =0xF87FFFFF
+ and r0, r1
+ str r0, [r3, r2]
+_0224AC98:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224AC9C: .word 0x0000216C
+_0224ACA0: .word 0x801FDA49
+_0224ACA4: .word 0x00002DCC
+_0224ACA8: .word 0xF87FFFFF
+
+ thumb_func_start MOD11_0224ACAC
+MOD11_0224ACAC: ; 0x0224ACAC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ cmp r3, #1
+ bne _0224ACBE
+ sub r0, r2, #2
+ cmp r0, #1
+ bhi _0224ACBE
+ mov r0, #1
+ b _0224ACC0
+_0224ACBE:
+ mov r0, #0
+_0224ACC0:
+ cmp r0, #1
+ mov r0, #0xc0
+ add r4, r1, #0
+ mul r4, r0
+ ldr r2, _0224ACFC ; =0x00002D8C
+ add r1, r5, r4
+ ldr r0, [r1, r2]
+ add r2, r2, #4
+ ldr r1, [r1, r2]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0x30
+ mov r6, #0
+ bl FUN_02079A54
+ ldr r1, _0224AD00 ; =0x00002DAC
+ add r2, r5, r4
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bne _0224ACF6
+ cmp r0, #4
+ beq _0224ACF8
+ cmp r0, #3
+ beq _0224ACF8
+_0224ACF6:
+ mov r6, #0xb
+_0224ACF8:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224ACFC: .word 0x00002D8C
+_0224AD00: .word 0x00002DAC
+
+ thumb_func_start MOD11_0224AD04
+MOD11_0224AD04: ; 0x0224AD04
+ push {r3, r4}
+ mov r3, #0xc0
+ add r4, r1, #0
+ mul r4, r3
+ add r1, r0, r4
+ ldr r0, _0224AD34 ; =0x00002DB0
+ mov r2, #1
+ ldr r0, [r1, r0]
+ lsl r1, r2, #0x16
+ tst r1, r0
+ bne _0224AD2C
+ lsl r1, r3, #4
+ tst r1, r0
+ bne _0224AD2C
+ mov r1, #0x70
+ tst r1, r0
+ bne _0224AD2C
+ lsl r1, r2, #0xc
+ tst r0, r1
+ beq _0224AD2E
+_0224AD2C:
+ mov r2, #0
+_0224AD2E:
+ add r0, r2, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_0224AD34: .word 0x00002DB0
+
+ thumb_func_start MOD11_0224AD38
+MOD11_0224AD38: ; 0x0224AD38
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r1, #0
+ add r6, r2, #0
+ bl MOD11_022301D4
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD11_022302B0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_02230294
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _0224AD76
+ add r0, r6, #0
+ mov r1, #0x9a
+ mov r2, #0
+ bl GetMonData
+ add r2, r0, #0
+ b _0224AD7A
+_0224AD76:
+ sub r1, #0xd8
+ ldr r2, [r4, r1]
+_0224AD7A:
+ str r7, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ ldr r1, [sp, #0xc]
+ ldr r3, [sp, #8]
+ add r0, r6, #0
+ bl FUN_0206A014
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224AD90
+MOD11_0224AD90: ; 0x0224AD90
+ lsl r1, r1, #8
+ add r1, r0, r1
+ mov r0, #0x23
+ lsl r0, r0, #8
+ ldrb r0, [r1, r0]
+ bx lr
+
+ thumb_func_start MOD11_0224AD9C
+MOD11_0224AD9C: ; 0x0224AD9C
+ mov r3, #0x1c
+ mul r3, r1
+ add r1, r0, r3
+ mov r0, #0xba
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #8
+ mov r2, #0
+ tst r0, r1
+ beq _0224ADB2
+ mov r2, #1
+_0224ADB2:
+ add r0, r2, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0224ADB8
+MOD11_0224ADB8: ; 0x0224ADB8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ mov r1, #0
+ bl MOD11_022301D4
+ add r4, r0, #0
+ bl FUN_020239BC
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_020239CC
+ add r7, r0, #0
+ add r0, r4, #0
+ bl FUN_0202398C
+ ldr r2, [r5, #0x64]
+ mov r1, #0xc0
+ add r4, r2, #0
+ mul r4, r1
+ ldr r1, _0224AE10 ; =0x00002DB4
+ add r3, r5, r4
+ ldr r2, [r3, r1]
+ cmp r6, r2
+ bne _0224AE0C
+ add r2, r1, #0
+ add r2, #0xa
+ ldrb r2, [r3, r2]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x1c
+ cmp r7, r2
+ bne _0224AE0C
+ sub r1, #0x20
+ add r1, r5, r1
+ add r1, r1, r4
+ mov r2, #7
+ bl StringNotEqualN
+ cmp r0, #0
+ bne _0224AE0C
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0224AE0C:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224AE10: .word 0x00002DB4
+
+ thumb_func_start MOD11_0224AE14
+MOD11_0224AE14: ; 0x0224AE14
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ mov r1, #0
+ bl MOD11_022301D4
+ add r4, r0, #0
+ bl FUN_020239BC
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_020239CC
+ add r7, r0, #0
+ add r0, r4, #0
+ bl FUN_0202398C
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0x8f
+ add r2, sp, #0
+ bl GetMonData
+ add r0, r5, #0
+ mov r1, #7
+ mov r2, #0
+ bl GetMonData
+ cmp r6, r0
+ bne _0224AE72
+ add r0, r5, #0
+ mov r1, #0x9c
+ mov r2, #0
+ bl GetMonData
+ cmp r7, r0
+ bne _0224AE72
+ add r0, r4, #0
+ add r1, sp, #0
+ mov r2, #7
+ bl StringNotEqualN
+ cmp r0, #0
+ bne _0224AE72
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0224AE72:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0224AE78
+MOD11_0224AE78: ; 0x0224AE78
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r4, #0
+ add r7, r0, #0
+ add r5, r1, #0
+ str r4, [sp, #4]
+ bl MOD11_0222FF84
+ cmp r0, #0
+ bgt _0224AE8E
+ b _0224B232
+_0224AE8E:
+ ldr r0, _0224B1B8 ; =0x00002D66
+ add r6, r5, r0
+_0224AE92:
+ ldr r0, _0224B1BC ; =0x000021EC
+ add r1, r5, r4
+ ldrb r1, [r1, r0]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ ldr r3, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r3
+ add r2, r5, r0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r1, [r2, r0]
+ ldr r0, _0224B1C0 ; =0x0000015F
+ cmp r1, r0
+ bne _0224AEC6
+ ldr r0, _0224B1C4 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _0224AEC6
+ add r0, r5, #0
+ add r1, r3, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x3b
+ beq _0224AEC8
+_0224AEC6:
+ b _0224B096
+_0224AEC8:
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224AEF0
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _0224AEF2
+_0224AEF0:
+ b _0224B04A
+_0224AEF2:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ mov r1, #0xf3
+ tst r1, r0
+ bne _0224AF4A
+ mov r1, #0x46
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ mov r1, #0xc0
+ mul r1, r2
+ ldr r2, _0224B1C8 ; =0x00002D64
+ add r1, r5, r1
+ ldrb r2, [r1, r2]
+ cmp r2, #0
+ beq _0224AF4A
+ ldr r2, _0224B1CC ; =0x00002D65
+ ldrb r2, [r1, r2]
+ cmp r2, #0
+ beq _0224AF4A
+ ldr r3, _0224B1C8 ; =0x00002D64
+ mov r2, #0
+ mov r0, #0x46
+ strb r2, [r1, r3]
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ mov r1, #0xc0
+ add r6, r4, #0
+ mul r6, r1
+ add r6, r5, r6
+ add r4, r3, #1
+ strb r2, [r6, r4]
+ add r2, r3, #2
+ ldr r0, [r5, r0]
+ add r2, r5, r2
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r1, [r2, r3]
+ mov r0, #0x1f
+ bic r1, r0
+ mov r0, #1
+ strb r1, [r2, r3]
+ str r0, [sp, #4]
+ b _0224B232
+_0224AF4A:
+ mov r1, #0x30
+ tst r1, r0
+ beq _0224AF9E
+ mov r1, #0x46
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ mov r1, #0xc0
+ mul r1, r2
+ ldr r2, _0224B1C8 ; =0x00002D64
+ add r1, r5, r1
+ ldrb r2, [r1, r2]
+ cmp r2, #0xa
+ beq _0224AF9E
+ ldr r2, _0224B1CC ; =0x00002D65
+ ldrb r2, [r1, r2]
+ cmp r2, #0xa
+ beq _0224AF9E
+ ldr r3, _0224B1C8 ; =0x00002D64
+ mov r2, #0xa
+ mov r0, #0x46
+ strb r2, [r1, r3]
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ mov r1, #0xc0
+ add r6, r4, #0
+ mul r6, r1
+ add r6, r5, r6
+ add r4, r3, #1
+ strb r2, [r6, r4]
+ add r2, r3, #2
+ ldr r0, [r5, r0]
+ add r2, r5, r2
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r1, [r2, r3]
+ mov r0, #0x1f
+ bic r1, r0
+ mov r0, #1
+ str r0, [sp, #4]
+ orr r0, r1
+ strb r0, [r2, r3]
+ b _0224B232
+_0224AF9E:
+ mov r1, #3
+ tst r1, r0
+ beq _0224AFF4
+ mov r1, #0x46
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ mov r1, #0xc0
+ mul r1, r2
+ ldr r2, _0224B1C8 ; =0x00002D64
+ add r1, r5, r1
+ ldrb r2, [r1, r2]
+ cmp r2, #0xb
+ beq _0224AFF4
+ ldr r2, _0224B1CC ; =0x00002D65
+ ldrb r2, [r1, r2]
+ cmp r2, #0xb
+ beq _0224AFF4
+ ldr r3, _0224B1C8 ; =0x00002D64
+ mov r2, #0xb
+ mov r0, #0x46
+ strb r2, [r1, r3]
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ mov r1, #0xc0
+ add r6, r4, #0
+ mul r6, r1
+ add r6, r5, r6
+ add r4, r3, #1
+ strb r2, [r6, r4]
+ add r2, r3, #2
+ ldr r0, [r5, r0]
+ add r2, r5, r2
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r1, [r2, r3]
+ mov r0, #0x1f
+ bic r1, r0
+ mov r0, #2
+ orr r0, r1
+ strb r0, [r2, r3]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224AFF4:
+ mov r1, #0xc0
+ tst r0, r1
+ beq _0224B096
+ add r0, r1, #0
+ add r0, #0x58
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224B1C8 ; =0x00002D64
+ add r0, r5, r0
+ ldrb r1, [r0, r1]
+ cmp r1, #0xf
+ beq _0224B096
+ ldr r1, _0224B1CC ; =0x00002D65
+ ldrb r1, [r0, r1]
+ cmp r1, #0xf
+ beq _0224B096
+ ldr r3, _0224B1C8 ; =0x00002D64
+ mov r2, #0xf
+ strb r2, [r0, r3]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ mov r1, #0xc0
+ add r6, r4, #0
+ mul r6, r1
+ add r6, r5, r6
+ add r4, r3, #1
+ strb r2, [r6, r4]
+ add r2, r3, #2
+ ldr r0, [r5, r0]
+ add r2, r5, r2
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r1, [r2, r3]
+ mov r0, #0x1f
+ bic r1, r0
+ mov r0, #3
+ orr r0, r1
+ strb r0, [r2, r3]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224B04A:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224B1C8 ; =0x00002D64
+ add r0, r5, r0
+ ldrb r1, [r0, r1]
+ cmp r1, #0
+ beq _0224B096
+ ldr r1, _0224B1CC ; =0x00002D65
+ ldrb r1, [r0, r1]
+ cmp r1, #0
+ beq _0224B096
+ ldr r3, _0224B1C8 ; =0x00002D64
+ mov r2, #0
+ strb r2, [r0, r3]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ mov r1, #0xc0
+ add r6, r4, #0
+ mul r6, r1
+ add r6, r5, r6
+ add r4, r3, #1
+ strb r2, [r6, r4]
+ add r2, r3, #2
+ ldr r0, [r5, r0]
+ add r2, r5, r2
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r1, [r2, r3]
+ mov r0, #0x1f
+ bic r1, r0
+ mov r0, #1
+ strb r1, [r2, r3]
+ str r0, [sp, #4]
+ b _0224B232
+_0224B096:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ mov r1, #0xb5
+ add r0, r5, r0
+ lsl r1, r1, #6
+ ldrh r2, [r0, r1]
+ ldr r1, _0224B1D0 ; =0x000001A5
+ cmp r2, r1
+ bne _0224B1A2
+ ldr r1, _0224B1C4 ; =0x00002D8C
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _0224B1A2
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224B182
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224B182
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r2, [r5, r0]
+ mov r0, #0xf3
+ tst r0, r2
+ bne _0224B10C
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0xc0
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r0, [r6, r3]
+ lsl r1, r0, #0x1b
+ lsr r1, r1, #0x1b
+ cmp r1, #1
+ bne _0224B10C
+ mov r1, #0x1f
+ bic r0, r1
+ strb r0, [r6, r3]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224B10C:
+ mov r0, #0x30
+ tst r0, r2
+ beq _0224B134
+ mov r0, #0x46
+ lsl r0, r0, #2
+_0224B116:
+ ldr r0, [r5, r0]
+ mov r1, #0xc0
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r0, [r6, r3]
+ lsl r1, r0, #0x1b
+ lsr r1, r1, #0x1b
+ bne _0224B134
+ mov r1, #0x1f
+ bic r0, r1
+ mov r1, #1
+ orr r0, r1
+ str r1, [sp, #4]
+ strb r0, [r6, r3]
+ b _0224B232
+_0224B134:
+ mov r0, #3
+ tst r0, r2
+ beq _0224B15C
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0xc0
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r0, [r6, r3]
+ lsl r1, r0, #0x1b
+ lsr r1, r1, #0x1b
+ cmp r1, #1
+ bne _0224B15C
+ mov r1, #0x1f
+ bic r0, r1
+ strb r0, [r6, r3]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224B15C:
+ mov r0, #0xc0
+ tst r0, r2
+ beq _0224B1A2
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ ldrb r2, [r6, r0]
+ lsl r1, r2, #0x1b
+ lsr r1, r1, #0x1b
+ cmp r1, #1
+ bne _0224B1A2
+ mov r1, #0x1f
+ bic r2, r1
+ strb r2, [r6, r0]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224B182:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ ldrb r2, [r6, r0]
+ lsl r1, r2, #0x1b
+ lsr r1, r1, #0x1b
+ cmp r1, #1
+ bne _0224B1A2
+ mov r1, #0x1f
+ bic r2, r1
+ strb r2, [r6, r0]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224B1A2:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ mov r1, #0xb5
+ add r0, r5, r0
+ lsl r1, r1, #6
+ ldrh r2, [r0, r1]
+ ldr r1, _0224B1D4 ; =0x000001ED
+ b _0224B1D8
+ .align 2, 0
+_0224B1B8: .word 0x00002D66
+_0224B1BC: .word 0x000021EC
+_0224B1C0: .word 0x0000015F
+_0224B1C4: .word 0x00002D8C
+_0224B1C8: .word 0x00002D64
+_0224B1CC: .word 0x00002D65
+_0224B1D0: .word 0x000001A5
+_0224B1D4: .word 0x000001ED
+_0224B1D8:
+ cmp r2, r1
+ bne _0224B224
+ ldr r1, _0224B238 ; =0x00002D8C
+ ldr r1, [r0, r1]
+ cmp r1, #0
+ beq _0224B224
+ ldr r1, _0224B23C ; =0x00002DB8
+ mov r2, #5
+ ldrh r0, [r0, r1]
+ mov r1, #1
+ bl FUN_0206E7B8
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl GetArceusTypeByHeldItemEffect
+ mov r1, #0x46
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ mov r2, #0xc0
+ add r3, r1, #0
+ mul r3, r2
+ ldrb r1, [r6, r3]
+ lsl r2, r1, #0x1b
+ lsr r2, r2, #0x1b
+ cmp r0, r2
+ beq _0224B224
+ mov r2, #0x1f
+ lsl r0, r0, #0x18
+ bic r1, r2
+ lsr r2, r0, #0x18
+ mov r0, #0x1f
+ and r0, r2
+ orr r0, r1
+ strb r0, [r6, r3]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224B224:
+ add r0, r7, #0
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ bge _0224B232
+ b _0224AE92
+_0224B232:
+ ldr r0, [sp, #4]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224B238: .word 0x00002D8C
+_0224B23C: .word 0x00002DB8
+
+ thumb_func_start MOD11_0224B240
+MOD11_0224B240: ; 0x0224B240
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp, #4]
+ str r1, [sp]
+ mov r7, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _0224B282
+ ldr r5, [sp]
+ ldr r4, _0224B288 ; =0x0000312C
+_0224B256:
+ mov r1, #0
+_0224B258:
+ add r0, r5, r1
+ strb r1, [r0, r4]
+ add r1, r1, #1
+ cmp r1, #6
+ blt _0224B258
+ ldr r1, [sp]
+ ldr r0, [sp, #4]
+ add r3, r1, #0
+ add r6, r3, r7
+ ldr r3, _0224B28C ; =0x0000219C
+ add r2, r7, #0
+ ldrb r3, [r6, r3]
+ bl MOD11_0224B290
+ ldr r0, [sp, #4]
+ add r5, r5, #6
+ add r7, r7, #1
+ bl MOD11_0222FF84
+ cmp r7, r0
+ blt _0224B256
+_0224B282:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224B288: .word 0x0000312C
+_0224B28C: .word 0x0000219C
+
+ thumb_func_start MOD11_0224B290
+MOD11_0224B290: ; 0x0224B290
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r6, r1, #0
+ add r5, r2, #0
+ add r4, r3, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r1, r0
+ beq _0224B2AA
+ mov r1, #0x18
+ tst r1, r0
+ beq _0224B2BE
+_0224B2AA:
+ mov r1, #0x10
+ tst r0, r1
+ beq _0224B2E2
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ bne _0224B2E2
+_0224B2BE:
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02230260
+ cmp r0, #4
+ beq _0224B2D6
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02230260
+ cmp r0, #5
+ bne _0224B2DA
+_0224B2D6:
+ mov r1, #1
+ b _0224B2DC
+_0224B2DA:
+ mov r1, #0
+_0224B2DC:
+ mov r0, #1
+ and r5, r0
+ b _0224B2E4
+_0224B2E2:
+ mov r1, #0
+_0224B2E4:
+ mov r2, #6
+ mul r2, r5
+ ldr r3, _0224B30C ; =0x0000312C
+ mov r0, #0
+ add r7, r6, r2
+_0224B2EE:
+ ldrb r5, [r7, r3]
+ cmp r4, r5
+ beq _0224B2FC
+ add r0, r0, #1
+ add r7, r7, #1
+ cmp r0, #6
+ blt _0224B2EE
+_0224B2FC:
+ ldr r3, _0224B30C ; =0x0000312C
+ add r3, r6, r3
+ add r4, r3, r2
+ ldrb r3, [r4, r1]
+ ldrb r2, [r4, r0]
+ strb r2, [r4, r1]
+ strb r3, [r4, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224B30C: .word 0x0000312C
+
+ thumb_func_start MOD11_0224B310
+MOD11_0224B310: ; 0x0224B310
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x8c
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xa0]
+ add r5, r1, #0
+ str r0, [sp, #0xa0]
+ ldr r0, [sp, #0xb4]
+ str r2, [sp, #8]
+ str r0, [sp, #0xb4]
+ mov r0, #0
+ str r0, [sp, #0x84]
+ ldr r0, [sp, #0xb4]
+ str r3, [sp, #0xc]
+ cmp r0, #1
+ beq _0224B334
+ bhi _0224B334
+ bl ErrorHandling
+_0224B334:
+ add r0, sp, #0x90
+ ldrb r0, [r0, #0x1c]
+ mov r2, #1
+ mov r3, #0
+ str r0, [sp, #0x24]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+ add r0, sp, #0xb0
+ ldrb r0, [r0]
+ mov r2, #2
+ mov r3, #0
+ str r0, [sp, #0x20]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x78]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #4
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #5
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x13
+ mov r3, #0
+ bl MOD11_02243420
+ sub r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x70]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x14
+ mov r3, #0
+ bl MOD11_02243420
+ sub r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x6c]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x16
+ mov r3, #0
+ bl MOD11_02243420
+ sub r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x68]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x17
+ mov r3, #0
+ bl MOD11_02243420
+ sub r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x64]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x2b
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r2, #0
+ str r0, [sp, #0x60]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ add r3, r2, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #0
+ str r0, [sp, #0x58]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ add r3, r2, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x54]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x2f
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #0x50]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x2f
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x30
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4c]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x30
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ str r0, [sp, #0x48]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ str r0, [sp, #0x44]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ add r7, r0, #0
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x1d
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x40]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x1d
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x3c]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x38]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x34]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ bl MOD11_02249B4C
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MOD11_0224C12C
+ str r0, [sp, #0x30]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #2
+ bl MOD11_0224C12C
+ str r0, [sp, #0x2c]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ bl MOD11_02249B4C
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MOD11_0224C12C
+ str r0, [sp, #0x28]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #2
+ bl MOD11_0224C12C
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ str r0, [sp, #0x5c]
+ add r0, sp, #0x90
+ ldrh r4, [r0, #0x14]
+ cmp r4, #0
+ bne _0224B534
+ ldr r0, [sp, #8]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224B754 ; =0x000003E1
+ ldrb r4, [r1, r0]
+_0224B534:
+ cmp r7, #0x60
+ bne _0224B53C
+ mov r6, #0
+ b _0224B558
+_0224B53C:
+ add r0, sp, #0x90
+ ldrb r1, [r0, #0x18]
+ cmp r1, #0
+ bne _0224B550
+ ldr r0, [sp, #8]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224B758 ; =0x000003E2
+ ldrb r6, [r1, r0]
+ b _0224B558
+_0224B550:
+ mov r0, #0x3f
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+_0224B558:
+ ldr r0, _0224B75C ; =0x00002158
+ ldr r0, [r5, r0]
+ cmp r0, #0xa
+ bge _0224B564
+ bl ErrorHandling
+_0224B564:
+ ldr r0, _0224B75C ; =0x00002158
+ mov r1, #0xa
+ ldr r0, [r5, r0]
+ mul r0, r4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, sp, #0x90
+ ldrb r0, [r0, #0x1c]
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r5, r1
+ mov r1, #0xb7
+ lsl r1, r1, #6
+ ldr r2, [r2, r1]
+ mov r1, #2
+ lsl r1, r1, #8
+ tst r1, r2
+ beq _0224B594
+ cmp r6, #0xd
+ bne _0224B594
+ lsl r1, r4, #0x11
+ lsr r4, r1, #0x10
+_0224B594:
+ lsl r0, r0, #6
+ add r1, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ beq _0224B5B2
+ mov r0, #0xf
+ mul r0, r4
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B5B2:
+ cmp r7, #0x65
+ bne _0224B5CE
+ ldr r0, [sp, #8]
+ cmp r0, #0xa5
+ beq _0224B5CE
+ cmp r4, #0x3c
+ bhi _0224B5CE
+ mov r0, #0xf
+ mul r0, r4
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B5CE:
+ ldr r0, [sp, #8]
+ lsl r0, r0, #4
+ str r0, [sp, #0x18]
+ add r1, r5, r0
+ mov r0, #0x3e
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ cmp r7, #0x25
+ str r0, [sp, #0x80]
+ beq _0224B5E6
+ cmp r7, #0x4a
+ bne _0224B5EE
+_0224B5E6:
+ ldr r0, [sp, #0x7c]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224B5EE:
+ cmp r7, #0x70
+ bne _0224B61C
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #3
+ mov r3, #0
+ bl MOD11_0224C474
+ str r0, [sp, #0x88]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x59
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x88]
+ sub r0, r1, r0
+ cmp r0, #5
+ bge _0224B61C
+ ldr r0, [sp, #0x7c]
+ lsl r0, r0, #0xf
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224B61C:
+ ldr r3, _0224B760 ; =0x0225E336
+ mov r2, #0
+_0224B620:
+ ldrb r1, [r3]
+ ldr r0, [sp, #0x30]
+ cmp r0, r1
+ bne _0224B640
+ ldrb r0, [r3, #1]
+ cmp r6, r0
+ bne _0224B640
+ ldr r0, [sp, #0x2c]
+ mov r1, #0x64
+ add r0, #0x64
+ mul r0, r4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0224B648
+_0224B640:
+ add r2, r2, #1
+ add r3, r3, #2
+ cmp r2, #0x21
+ blo _0224B620
+_0224B648:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x36
+ bne _0224B660
+ ldr r1, [sp, #0x7c]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224B660:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x7c
+ bne _0224B678
+ ldr r1, [sp, #0x74]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+_0224B678:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x3b
+ bne _0224B6A6
+ ldr r0, [sp, #0x5c]
+ mov r1, #0x80
+ tst r0, r1
+ bne _0224B6A6
+ ldr r1, _0224B764 ; =0x0000FE84
+ ldr r0, [sp, #0x58]
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _0224B6A6
+ ldr r1, [sp, #0x74]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+_0224B6A6:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x3b
+ bne _0224B6D4
+ ldr r0, [sp, #0x5c]
+ mov r1, #0x80
+ tst r0, r1
+ bne _0224B6D4
+ ldr r1, _0224B764 ; =0x0000FE84
+ ldr r0, [sp, #0x54]
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _0224B6D4
+ ldr r1, [sp, #0x10]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+_0224B6D4:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x3c
+ bne _0224B6EA
+ ldr r1, _0224B768 ; =0x0000016E
+ ldr r0, [sp, #0x58]
+ cmp r0, r1
+ bne _0224B6EA
+ ldr r0, [sp, #0x74]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+_0224B6EA:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x3d
+ bne _0224B700
+ ldr r1, _0224B768 ; =0x0000016E
+ ldr r0, [sp, #0x54]
+ cmp r0, r1
+ bne _0224B700
+ ldr r0, [sp, #0x10]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+_0224B700:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x46
+ bne _0224B710
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x19
+ bne _0224B710
+ lsl r0, r4, #0x11
+ lsr r4, r0, #0x10
+_0224B710:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x59
+ bne _0224B724
+ ldr r0, [sp, #0x54]
+ cmp r0, #0x84
+ bne _0224B724
+ ldr r0, [sp, #0x78]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x78]
+_0224B724:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x5a
+ bne _0224B740
+ ldr r1, _0224B76C ; =0x0000FF98
+ ldr r0, [sp, #0x58]
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _0224B740
+ ldr r0, [sp, #0x7c]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224B740:
+ ldr r0, [sp, #0x30]
+ cmp r0, #2
+ bne _0224B78A
+ cmp r6, #0x10
+ beq _0224B74E
+ cmp r6, #8
+ bne _0224B78A
+_0224B74E:
+ ldr r1, _0224B770 ; =0x000001E3
+ b _0224B774
+ nop
+_0224B754: .word 0x000003E1
+_0224B758: .word 0x000003E2
+_0224B75C: .word 0x00002158
+_0224B760: .word 0x0225E336
+_0224B764: .word 0x0000FE84
+_0224B768: .word 0x0000016E
+_0224B76C: .word 0x0000FF98
+_0224B770: .word 0x000001E3
+_0224B774:
+ ldr r0, [sp, #0x58]
+ cmp r0, r1
+ bne _0224B78A
+ ldr r0, [sp, #0x2c]
+ mov r1, #0x64
+ add r0, #0x64
+ mul r0, r4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B78A:
+ ldr r0, [sp, #0x30]
+ cmp r0, #3
+ bne _0224B7B2
+ cmp r6, #0x10
+ beq _0224B798
+ cmp r6, #0xb
+ bne _0224B7B2
+_0224B798:
+ mov r1, #0x79
+ ldr r0, [sp, #0x58]
+ lsl r1, r1, #2
+ cmp r0, r1
+ bne _0224B7B2
+ ldr r0, [sp, #0x2c]
+ mov r1, #0x64
+ add r0, #0x64
+ mul r0, r4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B7B2:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x5d
+ bne _0224B7CE
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bne _0224B7CE
+ ldr r0, [sp, #0x2c]
+ mov r1, #0x64
+ add r0, #0x64
+ mul r0, r4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B7CE:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x5e
+ bne _0224B7EC
+ ldr r0, [sp, #0x80]
+ cmp r0, #1
+ bne _0224B7EC
+ ldr r0, [sp, #0x2c]
+ mov r1, #0x64
+ add r0, #0x64
+ str r0, [sp, #0x2c]
+ mul r0, r4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B7EC:
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ mov r3, #0x2f
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224B808
+ cmp r6, #0xa
+ beq _0224B804
+ cmp r6, #0xf
+ bne _0224B808
+_0224B804:
+ lsl r0, r4, #0xf
+ lsr r4, r0, #0x10
+_0224B808:
+ cmp r7, #0x37
+ bne _0224B81E
+ ldr r1, [sp, #0x7c]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224B81E:
+ cmp r7, #0x3e
+ bne _0224B83A
+ ldr r0, [sp, #0x48]
+ cmp r0, #0
+ beq _0224B83A
+ ldr r1, [sp, #0x7c]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224B83A:
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ mov r3, #0x3f
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224B862
+ ldr r0, [sp, #0x44]
+ cmp r0, #0
+ beq _0224B862
+ ldr r1, [sp, #0x78]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x78]
+_0224B862:
+ cmp r7, #0x39
+ bne _0224B88C
+ mov r0, #0x3a
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x24]
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _0224B88C
+ ldr r1, [sp, #0x74]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+_0224B88C:
+ cmp r7, #0x3a
+ bne _0224B8B6
+ mov r0, #0x39
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x24]
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _0224B8B6
+ ldr r1, [sp, #0x74]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+_0224B8B6:
+ cmp r6, #0xd
+ bne _0224B8CE
+ mov r2, #1
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ lsl r2, r2, #0x10
+ bl MOD11_02247238
+ cmp r0, #0
+ beq _0224B8CE
+ lsl r0, r4, #0xf
+ lsr r4, r0, #0x10
+_0224B8CE:
+ cmp r6, #0xa
+ bne _0224B8E6
+ mov r2, #2
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ lsl r2, r2, #0x10
+ bl MOD11_02247238
+ cmp r0, #0
+ beq _0224B8E6
+ lsl r0, r4, #0xf
+ lsr r4, r0, #0x10
+_0224B8E6:
+ cmp r6, #0xc
+ bne _0224B90A
+ cmp r7, #0x41
+ bne _0224B90A
+ ldr r0, [sp, #0x4c]
+ mov r1, #3
+ bl _s32_div_f
+ ldr r1, [sp, #0x50]
+ cmp r1, r0
+ bgt _0224B90A
+ mov r0, #0x96
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B90A:
+ cmp r6, #0xa
+ bne _0224B92E
+ cmp r7, #0x42
+ bne _0224B92E
+ ldr r0, [sp, #0x4c]
+ mov r1, #3
+ bl _s32_div_f
+ ldr r1, [sp, #0x50]
+ cmp r1, r0
+ bgt _0224B92E
+ mov r0, #0x96
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B92E:
+ cmp r6, #0xb
+ bne _0224B952
+ cmp r7, #0x43
+ bne _0224B952
+ ldr r0, [sp, #0x4c]
+ mov r1, #3
+ bl _s32_div_f
+ ldr r1, [sp, #0x50]
+ cmp r1, r0
+ bgt _0224B952
+ mov r0, #0x96
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B952:
+ cmp r6, #6
+ bne _0224B976
+ cmp r7, #0x44
+ bne _0224B976
+ ldr r0, [sp, #0x4c]
+ mov r1, #3
+ bl _s32_div_f
+ ldr r1, [sp, #0x50]
+ cmp r1, r0
+ bgt _0224B976
+ mov r0, #0x96
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B976:
+ cmp r6, #0xa
+ bne _0224B98E
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ mov r3, #0x55
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224B98E
+ lsl r0, r4, #0xf
+ lsr r4, r0, #0x10
+_0224B98E:
+ cmp r6, #0xa
+ bne _0224B9B0
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ mov r3, #0x57
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224B9B0
+ mov r0, #0x7d
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B9B0:
+ cmp r7, #0x56
+ bne _0224B9F0
+ ldr r0, [sp, #0x70]
+ mov r1, #5
+ lsl r0, r0, #0x19
+ asr r0, r0, #0x18
+ str r0, [sp, #0x70]
+ ldr r0, [sp, #0x70]
+ mvn r1, r1
+ cmp r0, r1
+ bge _0224B9C8
+ str r1, [sp, #0x70]
+_0224B9C8:
+ ldr r0, [sp, #0x70]
+ cmp r0, #6
+ ble _0224B9D2
+ mov r0, #6
+ str r0, [sp, #0x70]
+_0224B9D2:
+ ldr r0, [sp, #0x68]
+ mov r1, #5
+ lsl r0, r0, #0x19
+ asr r0, r0, #0x18
+ str r0, [sp, #0x68]
+ ldr r0, [sp, #0x68]
+ mvn r1, r1
+ cmp r0, r1
+ bge _0224B9E6
+ str r1, [sp, #0x68]
+_0224B9E6:
+ ldr r0, [sp, #0x68]
+ cmp r0, #6
+ ble _0224B9F0
+ mov r0, #6
+ str r0, [sp, #0x68]
+_0224B9F0:
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ mov r3, #0x56
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224BA3C
+ ldr r0, [sp, #0x6c]
+ mov r1, #5
+ lsl r0, r0, #0x19
+ asr r0, r0, #0x18
+ str r0, [sp, #0x6c]
+ ldr r0, [sp, #0x6c]
+ mvn r1, r1
+ cmp r0, r1
+ bge _0224BA14
+ str r1, [sp, #0x6c]
+_0224BA14:
+ ldr r0, [sp, #0x6c]
+ cmp r0, #6
+ ble _0224BA1E
+ mov r0, #6
+ str r0, [sp, #0x6c]
+_0224BA1E:
+ ldr r0, [sp, #0x64]
+ mov r1, #5
+ lsl r0, r0, #0x19
+ asr r0, r0, #0x18
+ str r0, [sp, #0x64]
+ ldr r0, [sp, #0x64]
+ mvn r1, r1
+ cmp r0, r1
+ bge _0224BA32
+ str r1, [sp, #0x64]
+_0224BA32:
+ ldr r0, [sp, #0x64]
+ cmp r0, #6
+ ble _0224BA3C
+ mov r0, #6
+ str r0, [sp, #0x64]
+_0224BA3C:
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ mov r3, #0x6d
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224BA52
+ mov r0, #0
+ str r0, [sp, #0x70]
+ str r0, [sp, #0x68]
+_0224BA52:
+ cmp r7, #0x6d
+ bne _0224BA5C
+ mov r0, #0
+ str r0, [sp, #0x6c]
+ str r0, [sp, #0x64]
+_0224BA5C:
+ ldr r0, [sp, #0x70]
+ add r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x70]
+ ldr r0, [sp, #0x6c]
+ add r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x6c]
+ ldr r0, [sp, #0x68]
+ add r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x68]
+ ldr r0, [sp, #0x64]
+ add r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x64]
+ cmp r7, #0x4f
+ bne _0224BAAA
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #0x3c]
+ cmp r1, r0
+ bne _0224BAAA
+ add r0, r1, #0
+ cmp r0, #2
+ beq _0224BAAA
+ ldr r0, [sp, #0x3c]
+ cmp r0, #2
+ beq _0224BAAA
+ mov r0, #0x7d
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224BAAA:
+ cmp r7, #0x4f
+ bne _0224BAD0
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #0x3c]
+ cmp r1, r0
+ beq _0224BAD0
+ add r0, r1, #0
+ cmp r0, #2
+ beq _0224BAD0
+ ldr r0, [sp, #0x3c]
+ cmp r0, #2
+ beq _0224BAD0
+ mov r0, #0x4b
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224BAD0:
+ ldr r2, _0224BDDC ; =0x0225E2BA
+ mov r3, #0
+_0224BAD4:
+ ldrh r1, [r2]
+ ldr r0, [sp, #8]
+ cmp r0, r1
+ bne _0224BAF0
+ cmp r7, #0x59
+ bne _0224BAF0
+ mov r0, #0xc
+ mul r0, r4
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0224BAF8
+_0224BAF0:
+ add r3, r3, #1
+ add r2, r2, #2
+ cmp r3, #0xf
+ blo _0224BAD4
+_0224BAF8:
+ mov r0, #0xd
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224BBCA
+ mov r0, #0x4c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224BBCA
+ ldr r0, [sp, #0xa0]
+ mov r1, #0x30
+ and r0, r1
+ str r0, [sp, #0x1c]
+ beq _0224BB40
+ cmp r7, #0x5e
+ bne _0224BB40
+ ldr r1, [sp, #0x74]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+_0224BB40:
+ ldr r0, [sp, #0xa0]
+ mov r1, #0xc
+ tst r0, r1
+ beq _0224BB66
+ ldr r0, [sp, #0x38]
+ cmp r0, #5
+ beq _0224BB54
+ ldr r0, [sp, #0x34]
+ cmp r0, #5
+ bne _0224BB66
+_0224BB54:
+ ldr r1, [sp, #0x10]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+_0224BB66:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _0224BB92
+ mov r0, #0x7a
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x24]
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _0224BB92
+ ldr r1, [sp, #0x7c]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224BB92:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _0224BBCA
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x68
+ beq _0224BBCA
+ mov r0, #0x7a
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x20]
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _0224BBCA
+ ldr r1, [sp, #0x10]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+_0224BBCA:
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _0224BDE0 ; =0x000003DE
+ ldrh r0, [r1, r0]
+ str r0, [sp, #0x14]
+ cmp r0, #7
+ bne _0224BBE0
+ ldr r0, [sp, #0x78]
+ lsl r0, r0, #0xf
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x78]
+_0224BBE0:
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bne _0224BCE2
+ ldr r0, [sp, #0xb4]
+ cmp r0, #1
+ bls _0224BC0E
+ ldr r0, [sp, #0x70]
+ cmp r0, #6
+ ble _0224BC08
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldr r2, [sp, #0x7c]
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+ b _0224BC24
+_0224BC08:
+ ldr r0, [sp, #0x7c]
+ str r0, [sp, #0x84]
+ b _0224BC24
+_0224BC0E:
+ ldr r0, [sp, #0x70]
+ ldr r2, [sp, #0x7c]
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+_0224BC24:
+ ldr r0, [sp, #0x84]
+ add r1, r0, #0
+ ldr r0, [sp, #0x60]
+ mul r1, r4
+ str r1, [sp, #0x84]
+ lsl r0, r0, #1
+ mov r1, #5
+ bl _s32_div_f
+ add r1, r0, #2
+ ldr r0, [sp, #0x84]
+ mul r1, r0
+ ldr r0, [sp, #0xb4]
+ str r1, [sp, #0x84]
+ cmp r0, #1
+ bls _0224BC60
+ ldr r0, [sp, #0x6c]
+ cmp r0, #6
+ bge _0224BC76
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldr r2, [sp, #0x78]
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ str r0, [sp, #0x78]
+ b _0224BC76
+_0224BC60:
+ ldr r0, [sp, #0x6c]
+ ldr r2, [sp, #0x78]
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ str r0, [sp, #0x78]
+_0224BC76:
+ ldr r0, [sp, #0x84]
+ ldr r1, [sp, #0x78]
+ bl _s32_div_f
+ mov r1, #0x32
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+ ldr r0, [sp, #0x48]
+ mov r1, #0x10
+ tst r0, r1
+ beq _0224BC9C
+ cmp r7, #0x3e
+ beq _0224BC9C
+ ldr r0, [sp, #0x84]
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #1
+ str r0, [sp, #0x84]
+_0224BC9C:
+ ldr r0, [sp, #0xc]
+ mov r2, #1
+ tst r0, r2
+ beq _0224BCB0
+ ldr r0, [sp, #0xb4]
+ cmp r0, #1
+ bne _0224BCB0
+ ldr r0, [sp, #0x14]
+ cmp r0, #0xba
+ bne _0224BCB2
+_0224BCB0:
+ b _0224BDC8
+_0224BCB2:
+ ldr r0, [sp, #0x5c]
+ mov r1, #2
+ tst r0, r1
+ beq _0224BCD6
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x20]
+ add r1, r5, #0
+ bl MOD11_022467AC
+ cmp r0, #2
+ bne _0224BCD6
+ ldr r0, [sp, #0x84]
+ mov r1, #3
+ lsl r0, r0, #1
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+ b _0224BDC8
+_0224BCD6:
+ ldr r0, [sp, #0x84]
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #1
+ str r0, [sp, #0x84]
+ b _0224BDC8
+_0224BCE2:
+ cmp r0, #1
+ bne _0224BDC8
+ ldr r0, [sp, #0xb4]
+ cmp r0, #1
+ bls _0224BD0E
+ ldr r0, [sp, #0x68]
+ cmp r0, #6
+ ble _0224BD08
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldr r2, [sp, #0x74]
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+ b _0224BD24
+_0224BD08:
+ ldr r0, [sp, #0x74]
+ str r0, [sp, #0x84]
+ b _0224BD24
+_0224BD0E:
+ ldr r0, [sp, #0x68]
+ ldr r2, [sp, #0x74]
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+_0224BD24:
+ ldr r0, [sp, #0x84]
+ add r1, r0, #0
+ ldr r0, [sp, #0x60]
+ mul r1, r4
+ str r1, [sp, #0x84]
+ lsl r0, r0, #1
+ mov r1, #5
+ bl _s32_div_f
+ add r1, r0, #2
+ ldr r0, [sp, #0x84]
+ mul r1, r0
+ ldr r0, [sp, #0xb4]
+ str r1, [sp, #0x84]
+ cmp r0, #1
+ bls _0224BD60
+ ldr r0, [sp, #0x64]
+ cmp r0, #6
+ bge _0224BD76
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldr r2, [sp, #0x10]
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ str r0, [sp, #0x10]
+ b _0224BD76
+_0224BD60:
+ ldr r0, [sp, #0x64]
+ ldr r2, [sp, #0x10]
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ str r0, [sp, #0x10]
+_0224BD76:
+ ldr r0, [sp, #0x84]
+ ldr r1, [sp, #0x10]
+ bl _s32_div_f
+ mov r1, #0x32
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+ ldr r0, [sp, #0xc]
+ mov r1, #2
+ tst r0, r1
+ beq _0224BDC8
+ ldr r0, [sp, #0xb4]
+ cmp r0, #1
+ bne _0224BDC8
+ ldr r0, [sp, #0x14]
+ cmp r0, #0xba
+ beq _0224BDC8
+ ldr r0, [sp, #0x5c]
+ tst r0, r1
+ beq _0224BDBE
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x20]
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD11_022467AC
+ cmp r0, #2
+ bne _0224BDBE
+ ldr r0, [sp, #0x84]
+ mov r1, #3
+ lsl r0, r0, #1
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+ b _0224BDC8
+_0224BDBE:
+ ldr r0, [sp, #0x84]
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #1
+ str r0, [sp, #0x84]
+_0224BDC8:
+ ldr r0, [sp, #0x5c]
+ mov r1, #2
+ add r4, r0, #0
+ and r4, r1
+ beq _0224BE16
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _0224BDEC ; =0x000003E6
+ b _0224BDF0
+ nop
+_0224BDDC: .word 0x0225E2BA
+_0224BDE0: .word 0x000003DE
+_0224BDE4: .word 0x0225E284
+_0224BDE8: .word 0x0225E285
+_0224BDEC: .word 0x000003E6
+_0224BDF0:
+ ldrh r0, [r1, r0]
+ cmp r0, #4
+ bne _0224BE16
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x20]
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD11_022467AC
+ cmp r0, #2
+ bne _0224BE16
+ ldr r0, [sp, #0x84]
+ lsl r1, r0, #1
+ add r1, r0, r1
+ asr r0, r1, #1
+ lsr r0, r0, #0x1e
+ add r0, r1, r0
+ asr r0, r0, #2
+ str r0, [sp, #0x84]
+_0224BE16:
+ cmp r4, #0
+ beq _0224BE46
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _0224BF08 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ cmp r0, #8
+ bne _0224BE46
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x20]
+ add r1, r5, #0
+ mov r2, #0
+ bl MOD11_022467AC
+ cmp r0, #2
+ blo _0224BE46
+ ldr r0, [sp, #0x84]
+ lsl r1, r0, #1
+ add r1, r0, r1
+ asr r0, r1, #1
+ lsr r0, r0, #0x1e
+ add r0, r1, r0
+ asr r0, r0, #2
+ str r0, [sp, #0x84]
+_0224BE46:
+ mov r0, #0xd
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224BEDE
+ mov r0, #0x4c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224BEDE
+ ldr r0, [sp, #0xa0]
+ mov r1, #3
+ tst r0, r1
+ beq _0224BE9A
+ cmp r6, #0xa
+ beq _0224BE80
+ cmp r6, #0xb
+ beq _0224BE8C
+ b _0224BE9A
+_0224BE80:
+ ldr r0, [sp, #0x84]
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #1
+ str r0, [sp, #0x84]
+ b _0224BE9A
+_0224BE8C:
+ ldr r1, [sp, #0x84]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+_0224BE9A:
+ ldr r1, _0224BF0C ; =0x000080CF
+ ldr r0, [sp, #0xa0]
+ tst r0, r1
+ beq _0224BEB2
+ ldr r0, [sp, #8]
+ cmp r0, #0x4c
+ bne _0224BEB2
+ ldr r0, [sp, #0x84]
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #1
+ str r0, [sp, #0x84]
+_0224BEB2:
+ ldr r0, [sp, #0xa0]
+ mov r1, #0x30
+ tst r0, r1
+ beq _0224BEDE
+ cmp r6, #0xa
+ beq _0224BEC4
+ cmp r6, #0xb
+ beq _0224BED4
+ b _0224BEDE
+_0224BEC4:
+ ldr r1, [sp, #0x84]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+ b _0224BEDE
+_0224BED4:
+ ldr r0, [sp, #0x84]
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #1
+ str r0, [sp, #0x84]
+_0224BEDE:
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x49
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0
+ beq _0224BF00
+ cmp r6, #0xa
+ bne _0224BF00
+ ldr r1, [sp, #0x84]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+_0224BF00:
+ ldr r0, [sp, #0x84]
+ add r0, r0, #2
+ add sp, #0x8c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224BF08: .word 0x000003E6
+_0224BF0C: .word 0x000080CF
+
+ thumb_func_start MOD11_0224BF10
+MOD11_0224BF10: ; 0x0224BF10
+ push {r4, lr}
+ add r4, r1, #0
+ beq _0224BF36
+ bl LCRandom
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1c
+ sub r1, r1, r2
+ mov r0, #0x1c
+ ror r1, r0
+ add r0, r2, r1
+ mov r1, #0x64
+ sub r0, r1, r0
+ mul r0, r4
+ bl _s32_div_f
+ add r4, r0, #0
+ bne _0224BF36
+ mov r4, #1
+_0224BF36:
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224BF3C
+MOD11_0224BF3C: ; 0x0224BF3C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r7, #1
+ str r1, [sp]
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ add r0, r4, #0
+ add r2, r7, #0
+ bl MOD11_0224C12C
+ add r3, r0, #0
+ ldr r1, [sp]
+ mov r0, #0xc0
+ mul r0, r1
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ add r2, r4, r0
+ add r0, r1, #0
+ add r0, #0x70
+ ldr r0, [r2, r0]
+ ldr r6, [sp, #4]
+ str r0, [sp, #0x10]
+ mov r0, #0xc0
+ mul r0, r6
+ add r6, r4, r0
+ add r0, r1, #0
+ add r0, #0x80
+ ldr r0, [r6, r0]
+ ldrh r5, [r2, r1]
+ add r1, #0x27
+ str r0, [sp, #0xc]
+ ldrb r0, [r2, r1]
+ cmp r0, #0x69
+ bne _0224BF8C
+ add r2, r7, #0
+ b _0224BF8E
+_0224BF8C:
+ mov r2, #0
+_0224BF8E:
+ cmp r3, #0x42
+ bne _0224BF96
+ mov r6, #1
+ b _0224BF98
+_0224BF96:
+ mov r6, #0
+_0224BF98:
+ mov r1, #1
+ ldr r0, [sp, #0x10]
+ lsl r1, r1, #0x14
+ tst r0, r1
+ beq _0224BFA6
+ mov r0, #1
+ b _0224BFA8
+_0224BFA6:
+ mov r0, #0
+_0224BFA8:
+ cmp r3, #0x58
+ bne _0224BFB4
+ cmp r5, #0x71
+ bne _0224BFB4
+ mov r1, #1
+ b _0224BFB6
+_0224BFB4:
+ mov r1, #0
+_0224BFB6:
+ cmp r3, #0x5b
+ bne _0224BFC2
+ cmp r5, #0x53
+ bne _0224BFC2
+ mov r3, #1
+ b _0224BFC4
+_0224BFC2:
+ mov r3, #0
+_0224BFC4:
+ lsl r0, r0, #1
+ add r5, r6, r0
+ ldr r0, [sp, #8]
+ add r0, r0, r5
+ add r2, r2, r0
+ lsl r0, r1, #1
+ add r1, r2, r0
+ lsl r0, r3, #1
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #4
+ bls _0224BFE0
+ mov r5, #4
+_0224BFE0:
+ bl LCRandom
+ ldr r1, _0224C040 ; =0x0225E244
+ ldrb r1, [r1, r5]
+ bl _s32_div_f
+ cmp r1, #0
+ bne _0224C026
+ ldr r1, [sp]
+ ldr r2, [sp, #4]
+ add r0, r4, #0
+ mov r3, #4
+ bl MOD11_02246D84
+ cmp r0, #0
+ bne _0224C026
+ ldr r1, [sp]
+ ldr r2, [sp, #4]
+ add r0, r4, #0
+ mov r3, #0x4b
+ bl MOD11_02246D84
+ cmp r0, #0
+ bne _0224C026
+ mov r0, #7
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #0xc
+ tst r0, r1
+ bne _0224C026
+ mov r1, #2
+ ldr r0, [sp, #0xc]
+ lsl r1, r1, #0xe
+ tst r0, r1
+ bne _0224C026
+ mov r7, #2
+_0224C026:
+ cmp r7, #2
+ bne _0224C038
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x61
+ bne _0224C038
+ mov r7, #3
+_0224C038:
+ add r0, r7, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224C040: .word 0x0225E244
+
+ thumb_func_start MOD11_0224C044
+MOD11_0224C044: ; 0x0224C044
+ push {r3, r4}
+ ldr r4, _0224C074 ; =0x0225E300
+ ldr r1, _0224C078 ; =0x0000FFFE
+ mov r3, #0
+_0224C04C:
+ ldrh r2, [r4]
+ cmp r0, r2
+ beq _0224C05C
+ add r4, r4, #2
+ ldrh r2, [r4]
+ add r3, r3, #1
+ cmp r2, r1
+ bne _0224C04C
+_0224C05C:
+ ldr r0, _0224C074 ; =0x0225E300
+ lsl r1, r3, #1
+ ldrh r1, [r0, r1]
+ ldr r0, _0224C078 ; =0x0000FFFE
+ cmp r1, r0
+ bne _0224C06E
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+_0224C06E:
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_0224C074: .word 0x0225E300
+_0224C078: .word 0x0000FFFE
+
+ thumb_func_start MOD11_0224C07C
+MOD11_0224C07C: ; 0x0224C07C
+ push {r3, r4}
+ ldr r4, _0224C0AC ; =0x0225E300
+ ldr r1, _0224C0B0 ; =0x0000FFFF
+ mov r3, #0
+_0224C084:
+ ldrh r2, [r4]
+ cmp r0, r2
+ beq _0224C094
+ add r4, r4, #2
+ ldrh r2, [r4]
+ add r3, r3, #1
+ cmp r2, r1
+ bne _0224C084
+_0224C094:
+ ldr r0, _0224C0AC ; =0x0225E300
+ lsl r1, r3, #1
+ ldrh r1, [r0, r1]
+ ldr r0, _0224C0B0 ; =0x0000FFFF
+ cmp r1, r0
+ bne _0224C0A6
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+_0224C0A6:
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_0224C0AC: .word 0x0225E300
+_0224C0B0: .word 0x0000FFFF
+
+ thumb_func_start MOD11_0224C0B4
+MOD11_0224C0B4: ; 0x0224C0B4
+ push {r4, r5}
+ lsl r1, r1, #4
+ add r4, r0, r1
+ ldr r1, _0224C0E8 ; =0x000003DE
+ ldr r3, _0224C0EC ; =0x0225E254
+ ldrh r1, [r4, r1]
+ ldr r4, _0224C0E8 ; =0x000003DE
+ mov r2, #0
+_0224C0C4:
+ ldrh r5, [r3]
+ lsl r5, r5, #4
+ add r5, r0, r5
+ ldrh r5, [r5, r4]
+ cmp r1, r5
+ beq _0224C0D8
+ add r2, r2, #1
+ add r3, r3, #2
+ cmp r2, #6
+ blo _0224C0C4
+_0224C0D8:
+ cmp r2, #6
+ bne _0224C0E2
+ mov r0, #1
+ pop {r4, r5}
+ bx lr
+_0224C0E2:
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_0224C0E8: .word 0x000003DE
+_0224C0EC: .word 0x0225E254
+
+ thumb_func_start MOD11_0224C0F0
+MOD11_0224C0F0: ; 0x0224C0F0
+ push {r4, r5}
+ lsl r1, r1, #4
+ add r4, r0, r1
+ ldr r1, _0224C124 ; =0x000003DE
+ ldr r3, _0224C128 ; =0x0225E26C
+ ldrh r1, [r4, r1]
+ ldr r4, _0224C124 ; =0x000003DE
+ mov r2, #0
+_0224C100:
+ ldrh r5, [r3]
+ lsl r5, r5, #4
+ add r5, r0, r5
+ ldrh r5, [r5, r4]
+ cmp r1, r5
+ beq _0224C114
+ add r2, r2, #1
+ add r3, r3, #2
+ cmp r2, #6
+ blo _0224C100
+_0224C114:
+ cmp r2, #6
+ bne _0224C11E
+ mov r0, #1
+ pop {r4, r5}
+ bx lr
+_0224C11E:
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_0224C124: .word 0x000003DE
+_0224C128: .word 0x0225E26C
+
+ thumb_func_start MOD11_0224C12C
+MOD11_0224C12C: ; 0x0224C12C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ mov r1, #0
+ add r4, r2, #0
+ bl FUN_0206E640
+ add r1, r0, #0
+ ldr r0, _0224C14C ; =0x00002120
+ ldr r0, [r5, r0]
+ bl FUN_0206EB78
+ add r1, r4, #0
+ bl FUN_0206E7DC
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224C14C: .word 0x00002120
+
+ thumb_func_start MOD11_0224C150
+MOD11_0224C150: ; 0x0224C150
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r2, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ mov r4, #0
+ cmp r6, #0
+ ble _0224C174
+_0224C162:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02230270
+ cmp r5, r0
+ beq _0224C174
+ add r4, r4, #1
+ cmp r4, r6
+ blt _0224C162
+_0224C174:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0224C178
+MOD11_0224C178: ; 0x0224C178
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r0, [sp, #4]
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ sub r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, #0
+ ble _0224C1FE
+_0224C194:
+ ldr r0, [sp, #0x14]
+ add r7, r0, #1
+ ldr r0, [sp, #0x10]
+ cmp r7, r0
+ bge _0224C1F2
+ ldr r0, [sp, #0x14]
+ add r0, r5, r0
+ str r0, [sp, #0xc]
+_0224C1A4:
+ ldr r1, [sp, #0xc]
+ ldr r0, _0224C204 ; =0x000021E8
+ ldrb r6, [r1, r0]
+ add r1, r5, r7
+ ldrb r4, [r1, r0]
+ lsl r0, r6, #4
+ str r1, [sp, #8]
+ add r1, r5, r0
+ ldr r0, _0224C208 ; =0x000021B4
+ ldr r0, [r1, r0]
+ lsl r1, r4, #4
+ add r2, r5, r1
+ ldr r1, _0224C208 ; =0x000021B4
+ ldr r1, [r2, r1]
+ cmp r0, r1
+ bne _0224C1EA
+ cmp r0, #1
+ beq _0224C1CC
+ mov r0, #1
+ b _0224C1CE
+_0224C1CC:
+ mov r0, #0
+_0224C1CE:
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD11_02244248
+ cmp r0, #0
+ beq _0224C1EA
+ ldr r1, [sp, #0xc]
+ ldr r0, _0224C204 ; =0x000021E8
+ strb r4, [r1, r0]
+ ldr r1, [sp, #8]
+ strb r6, [r1, r0]
+_0224C1EA:
+ ldr r0, [sp, #0x10]
+ add r7, r7, #1
+ cmp r7, r0
+ blt _0224C1A4
+_0224C1F2:
+ ldr r0, [sp, #0x14]
+ add r1, r0, #1
+ ldr r0, [sp, #0x18]
+ str r1, [sp, #0x14]
+ cmp r1, r0
+ blt _0224C194
+_0224C1FE:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224C204: .word 0x000021E8
+_0224C208: .word 0x000021B4
+
+ thumb_func_start MOD11_0224C20C
+MOD11_0224C20C: ; 0x0224C20C
+ push {r4, r5}
+ mov r4, #0xc0
+ mul r4, r1
+ add r5, r0, r4
+ ldr r0, _0224C24C ; =0x00002DB0
+ mov r1, #1
+ ldr r4, [r5, r0]
+ lsl r1, r1, #0x18
+ mov r3, #0
+ tst r1, r4
+ bne _0224C22C
+ add r0, #0x10
+ ldr r1, [r5, r0]
+ ldr r0, _0224C250 ; =0x200400C0
+ tst r0, r1
+ beq _0224C244
+_0224C22C:
+ ldr r4, _0224C254 ; =0x0225E2D8
+ mov r1, #0
+_0224C230:
+ ldr r0, [r4]
+ cmp r2, r0
+ bne _0224C23A
+ mov r3, #1
+ b _0224C246
+_0224C23A:
+ add r1, r1, #1
+ add r4, r4, #4
+ cmp r1, #0xa
+ blo _0224C230
+ b _0224C246
+_0224C244:
+ mov r3, #1
+_0224C246:
+ add r0, r3, #0
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_0224C24C: .word 0x00002DB0
+_0224C250: .word 0x200400C0
+_0224C254: .word 0x0225E2D8
+
+ thumb_func_start MOD11_0224C258
+MOD11_0224C258: ; 0x0224C258
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ ldr r1, [r5, #0x64]
+ str r0, [sp]
+ add r0, r5, #0
+ add r4, r2, #0
+ mov r6, #0
+ bl MOD11_02249D90
+ str r0, [sp, #0xc]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r6, #0
+ bl MOD11_02249DA4
+ str r0, [sp, #0x10]
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ add r7, r0, #0
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ add r2, r6, #0
+ bl MOD11_02249DA4
+ str r0, [sp, #8]
+ ldr r0, [sp]
+ ldr r1, [r5, #0x64]
+ bl MOD11_02230270
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x57
+ bne _0224C2F4
+ ldr r0, _0224C41C ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _0224C2F4
+ ldr r0, [r5, #0x64]
+ mov r1, #0x1c
+ mul r1, r0
+ add r2, r5, r1
+ mov r1, #0xbb
+ lsl r1, r1, #2
+ ldr r2, [r2, r1]
+ cmp r2, #0
+ beq _0224C2F4
+ ldr r1, [r5, #0x6c]
+ cmp r0, r1
+ beq _0224C2F4
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r3, _0224C420 ; =0x00002D8C
+ add r1, r5, r1
+ ldr r0, [r1, r3]
+ add r3, r3, #4
+ ldr r1, [r1, r3]
+ cmp r0, r1
+ bhs _0224C2F4
+ cmp r0, #0
+ beq _0224C2F4
+ ldr r1, [sp, #0x10]
+ neg r0, r2
+ bl MOD11_022476C0
+ ldr r1, _0224C424 ; =0x0000215C
+ mov r6, #1
+ str r0, [r5, r1]
+ mov r0, #0x46
+ ldr r1, [r5, #0x64]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0xd5
+ str r0, [r4]
+_0224C2F4:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x61
+ bne _0224C356
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _0224C356
+ ldr r0, _0224C41C ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _0224C356
+ ldr r0, _0224C428 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ mov r0, #0x3e
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ cmp r0, #2
+ beq _0224C356
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r3, _0224C420 ; =0x00002D8C
+ add r2, r5, r2
+ ldr r1, [r2, r3]
+ cmp r1, #0
+ beq _0224C356
+ add r1, r3, #4
+ ldr r1, [r2, r1]
+ sub r0, #0xc1
+ mul r0, r1
+ mov r1, #0xa
+ bl MOD11_022476C0
+ ldr r1, _0224C424 ; =0x0000215C
+ mov r6, #1
+ str r0, [r5, r1]
+ mov r0, #0x46
+ ldr r1, [r5, #0x64]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0xd6
+ str r0, [r4]
+_0224C356:
+ cmp r7, #0x2d
+ bne _0224C3AA
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _0224C420 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _0224C3AA
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _0224C3AA
+ ldr r1, [r5, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r1, r5, r0
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0224C3AA
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _0224C42C ; =0x00002D90
+ add r2, r5, r2
+ ldr r2, [r2, r0]
+ sub r1, #0xc1
+ add r0, r2, #0
+ mul r0, r1
+ ldr r1, [sp, #8]
+ bl MOD11_022476C0
+ ldr r1, _0224C424 ; =0x0000215C
+ mov r6, #1
+ str r0, [r5, r1]
+ lsr r0, r1, #5
+ str r0, [r4]
+_0224C3AA:
+ cmp r7, #0x73
+ bne _0224C416
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ mul r1, r0
+ add r3, r5, r1
+ ldr r1, _0224C420 ; =0x00002D8C
+ ldr r2, [r3, r1]
+ cmp r2, #0
+ beq _0224C416
+ add r1, #0x2c
+ ldrh r1, [r3, r1]
+ cmp r1, #0
+ bne _0224C416
+ add r1, r5, r0
+ ldr r0, _0224C430 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl MaskOfFlagNo
+ ldr r1, [sp, #4]
+ lsl r1, r1, #3
+ add r2, r5, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #3
+ lsr r1, r1, #0x1a
+ tst r0, r1
+ bne _0224C416
+ ldr r1, [r5, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r2, r5, r0
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ bne _0224C3FE
+ add r0, #8
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _0224C416
+_0224C3FE:
+ ldr r0, _0224C428 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224C434 ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r1, r0
+ beq _0224C416
+ mov r1, #0xd8
+ str r1, [r4]
+ add r6, r0, #0
+_0224C416:
+ add r0, r6, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224C41C: .word 0x0000213C
+_0224C420: .word 0x00002D8C
+_0224C424: .word 0x0000215C
+_0224C428: .word 0x00003044
+_0224C42C: .word 0x00002D90
+_0224C430: .word 0x0000219C
+_0224C434: .word 0x000003E9
+
+ thumb_func_start MOD11_0224C438
+MOD11_0224C438: ; 0x0224C438
+ push {r4, r5, r6, lr}
+ add r6, r2, #0
+ add r4, r1, #0
+ add r1, r6, #0
+ add r5, r0, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2e
+ bne _0224C46A
+ cmp r6, #0xff
+ beq _0224C46A
+ ldr r0, _0224C46C ; =0x00002D6C
+ add r1, r5, r0
+ mov r0, #0xc0
+ mul r0, r4
+ add r0, r1, r0
+ lsl r1, r4, #1
+ add r2, r5, r1
+ ldr r1, _0224C470 ; =0x000030BC
+ ldrh r2, [r2, r1]
+ ldrb r1, [r0, r2]
+ cmp r1, #0
+ beq _0224C46A
+ sub r1, r1, #1
+ strb r1, [r0, r2]
+_0224C46A:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224C46C: .word 0x00002D6C
+_0224C470: .word 0x000030BC
+
+ thumb_func_start MOD11_0224C474
+MOD11_0224C474: ; 0x0224C474
+ push {r4, lr}
+ add r4, r1, #0
+ cmp r2, #0xc
+ bhi _0224C528
+ add r1, r2, r2
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224C488: ; jump table
+ .short _0224C4A2 - _0224C488 - 2 ; case 0
+ .short _0224C4B4 - _0224C488 - 2 ; case 1
+ .short _0224C4CA - _0224C488 - 2 ; case 2
+ .short _0224C4D2 - _0224C488 - 2 ; case 3
+ .short _0224C4DA - _0224C488 - 2 ; case 4
+ .short _0224C4E0 - _0224C488 - 2 ; case 5
+ .short _0224C4E6 - _0224C488 - 2 ; case 6
+ .short _0224C4F2 - _0224C488 - 2 ; case 7
+ .short _0224C4FE - _0224C488 - 2 ; case 8
+ .short _0224C508 - _0224C488 - 2 ; case 9
+ .short _0224C510 - _0224C488 - 2 ; case 10
+ .short _0224C516 - _0224C488 - 2 ; case 11
+ .short _0224C51E - _0224C488 - 2 ; case 12
+_0224C4A2:
+ add r1, r3, #0
+ bl MOD11_02230270
+ lsl r0, r0, #2
+ add r1, r4, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+_0224C4B4:
+ add r1, r3, #0
+ bl MOD11_02230270
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1d
+ pop {r4, pc}
+_0224C4CA:
+ ldr r0, _0224C530 ; =0x0000219C
+ add r1, r4, r3
+ ldrb r0, [r1, r0]
+ pop {r4, pc}
+_0224C4D2:
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ pop {r4, pc}
+_0224C4DA:
+ ldr r0, _0224C534 ; =0x00003109
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+_0224C4E0:
+ ldr r0, _0224C538 ; =0x0000311D
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+_0224C4E6:
+ lsl r0, r3, #2
+ add r1, r4, r0
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+_0224C4F2:
+ lsl r0, r3, #2
+ add r1, r4, r0
+ mov r0, #0x59
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+_0224C4FE:
+ lsl r0, r3, #4
+ add r1, r4, r0
+ ldr r0, _0224C53C ; =0x000021A8
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+_0224C508:
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+_0224C510:
+ ldr r0, _0224C540 ; =0x00003108
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+_0224C516:
+ ldr r0, _0224C544 ; =0x000003DA
+ add r1, r4, r3
+ ldrb r0, [r1, r0]
+ pop {r4, pc}
+_0224C51E:
+ lsl r0, r3, #4
+ add r1, r4, r0
+ ldr r0, _0224C548 ; =0x000021B0
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+_0224C528:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_0224C530: .word 0x0000219C
+_0224C534: .word 0x00003109
+_0224C538: .word 0x0000311D
+_0224C53C: .word 0x000021A8
+_0224C540: .word 0x00003108
+_0224C544: .word 0x000003DA
+_0224C548: .word 0x000021B0
+
+ thumb_func_start MOD11_0224C54C
+MOD11_0224C54C: ; 0x0224C54C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r4, [sp, #0x10]
+ cmp r2, #0xb
+ bhi _0224C5CA
+ add r1, r2, r2
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224C562: ; jump table
+ .short _0224C57A - _0224C562 - 2 ; case 0
+ .short _0224C58C - _0224C562 - 2 ; case 1
+ .short _0224C5AA - _0224C562 - 2 ; case 2
+ .short _0224C5B2 - _0224C562 - 2 ; case 3
+ .short _0224C5CA - _0224C562 - 2 ; case 4
+ .short _0224C5CA - _0224C562 - 2 ; case 5
+ .short _0224C5CA - _0224C562 - 2 ; case 6
+ .short _0224C5CA - _0224C562 - 2 ; case 7
+ .short _0224C5CA - _0224C562 - 2 ; case 8
+ .short _0224C5BA - _0224C562 - 2 ; case 9
+ .short _0224C5CA - _0224C562 - 2 ; case 10
+ .short _0224C5C2 - _0224C562 - 2 ; case 11
+_0224C57A:
+ add r1, r3, #0
+ bl MOD11_02230270
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ str r4, [r1, r0]
+ pop {r3, r4, r5, pc}
+_0224C58C:
+ add r1, r3, #0
+ bl MOD11_02230270
+ mov r1, #0x71
+ lsl r1, r1, #2
+ add r1, r5, r1
+ lsl r0, r0, #3
+ ldr r3, [r1, r0]
+ ldr r2, _0224C5D0 ; =0xFFFF8FFF
+ and r3, r2
+ lsl r2, r4, #0x1d
+ lsr r2, r2, #0x11
+ orr r2, r3
+ str r2, [r1, r0]
+ pop {r3, r4, r5, pc}
+_0224C5AA:
+ ldr r0, _0224C5D4 ; =0x0000219C
+ add r1, r5, r3
+ strb r4, [r1, r0]
+ pop {r3, r4, r5, pc}
+_0224C5B2:
+ mov r0, #0x15
+ lsl r0, r0, #4
+ str r4, [r5, r0]
+ pop {r3, r4, r5, pc}
+_0224C5BA:
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ strb r4, [r5, r0]
+ pop {r3, r4, r5, pc}
+_0224C5C2:
+ ldr r0, _0224C5D8 ; =0x000003DA
+ add r1, r5, r3
+ strb r4, [r1, r0]
+ pop {r3, r4, r5, pc}
+_0224C5CA:
+ bl ErrorHandling
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224C5D0: .word 0xFFFF8FFF
+_0224C5D4: .word 0x0000219C
+_0224C5D8: .word 0x000003DA
+
+ thumb_func_start MOD11_0224C5DC
+MOD11_0224C5DC: ; 0x0224C5DC
+ push {r4, lr}
+ add r3, r0, #0
+ add r3, #0x88
+ str r1, [r3]
+ add r3, r0, #0
+ ldr r1, _0224C640 ; =0x007FFFFF
+ add r4, r2, #0
+ and r4, r1
+ add r3, #0x8c
+ str r4, [r3]
+ lsl r1, r1, #0x17
+ add r3, r2, #0
+ and r3, r1
+ add r1, r0, #0
+ add r1, #0x90
+ str r3, [r1]
+ mov r3, #1
+ lsl r3, r3, #0x1e
+ add r1, r2, #0
+ tst r1, r3
+ beq _0224C60E
+ ldr r1, [r0, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ b _0224C62E
+_0224C60E:
+ lsl r1, r3, #1
+ tst r1, r2
+ beq _0224C61C
+ ldr r1, [r0, #0x6c]
+ add r0, #0x94
+ str r1, [r0]
+ b _0224C62E
+_0224C61C:
+ lsr r1, r3, #1
+ tst r1, r2
+ bne _0224C628
+ lsr r1, r3, #2
+ tst r1, r2
+ beq _0224C62E
+_0224C628:
+ mov r1, #0
+ add r0, #0x94
+ str r1, [r0]
+_0224C62E:
+ cmp r4, #0x91
+ blo _0224C636
+ bl ErrorHandling
+_0224C636:
+ ldr r0, _0224C644 ; =0x0225E4C8
+ lsl r1, r4, #2
+ ldr r0, [r0, r1]
+ pop {r4, pc}
+ nop
+_0224C640: .word 0x007FFFFF
+_0224C644: .word 0x0225E4C8
+
+ thumb_func_start MOD11_0224C648
+MOD11_0224C648: ; 0x0224C648
+ push {r3, r4, r5, lr}
+ ldr r1, _0224C6D0 ; =0x0000213C
+ add r5, r2, #0
+ ldr r2, [r0, r1]
+ mov r0, #2
+ lsl r0, r0, #0xa
+ add r1, r2, #0
+ ldr r4, [sp, #0x14]
+ tst r1, r0
+ bne _0224C672
+ lsl r0, r0, #4
+ tst r0, r2
+ bne _0224C672
+ cmp r3, #0
+ beq _0224C672
+ add r0, r3, #0
+ mul r0, r5
+ mov r1, #0xa
+ bl MOD11_022476C0
+ add r3, r0, #0
+_0224C672:
+ cmp r5, #0
+ beq _0224C680
+ cmp r5, #5
+ beq _0224C692
+ cmp r5, #0x14
+ beq _0224C6B0
+ b _0224C6CC
+_0224C680:
+ ldr r1, [r4]
+ mov r0, #8
+ orr r1, r0
+ mov r0, #4
+ bic r1, r0
+ mov r0, #2
+ bic r1, r0
+ str r1, [r4]
+ b _0224C6CC
+_0224C692:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _0224C6CC
+ ldr r1, [r4]
+ mov r0, #2
+ tst r0, r1
+ beq _0224C6A8
+ mov r0, #2
+ bic r1, r0
+ str r1, [r4]
+ b _0224C6CC
+_0224C6A8:
+ mov r0, #4
+ orr r0, r1
+ str r0, [r4]
+ b _0224C6CC
+_0224C6B0:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _0224C6CC
+ ldr r1, [r4]
+ mov r0, #4
+ tst r0, r1
+ beq _0224C6C6
+ mov r0, #4
+ bic r1, r0
+ str r1, [r4]
+ b _0224C6CC
+_0224C6C6:
+ mov r0, #2
+ orr r0, r1
+ str r0, [r4]
+_0224C6CC:
+ add r0, r3, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224C6D0: .word 0x0000213C
+
+ thumb_func_start MOD11_0224C6D4
+MOD11_0224C6D4: ; 0x0224C6D4
+ lsl r1, r1, #4
+ add r2, r0, r1
+ ldr r1, _0224C738 ; =0x000003DE
+ ldrh r3, [r2, r1]
+ cmp r3, #0x9b
+ bgt _0224C706
+ cmp r3, #0x97
+ blt _0224C6EC
+ beq _0224C726
+ cmp r3, #0x9b
+ beq _0224C726
+ b _0224C732
+_0224C6EC:
+ cmp r3, #0x27
+ bgt _0224C6F8
+ bge _0224C726
+ cmp r3, #0x1a
+ beq _0224C726
+ b _0224C732
+_0224C6F8:
+ cmp r3, #0x4b
+ bgt _0224C700
+ beq _0224C726
+ b _0224C732
+_0224C700:
+ cmp r3, #0x91
+ beq _0224C726
+ b _0224C732
+_0224C706:
+ mov r2, #1
+ lsl r2, r2, #8
+ cmp r3, r2
+ bgt _0224C716
+ bge _0224C726
+ cmp r3, #0xff
+ beq _0224C726
+ b _0224C732
+_0224C716:
+ add r1, r2, #7
+ cmp r3, r1
+ bgt _0224C720
+ beq _0224C726
+ b _0224C732
+_0224C720:
+ add r2, #0x11
+ cmp r3, r2
+ bne _0224C732
+_0224C726:
+ ldr r1, _0224C73C ; =0x0000213C
+ ldr r1, [r0, r1]
+ mov r0, #2
+ lsl r0, r0, #8
+ and r0, r1
+ bx lr
+_0224C732:
+ mov r0, #1
+ bx lr
+ nop
+_0224C738: .word 0x000003DE
+_0224C73C: .word 0x0000213C
+
+ thumb_func_start MOD11_0224C740
+MOD11_0224C740: ; 0x0224C740
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ cmp r2, #0x1b
+ bne _0224C756
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ ldr r0, _0224C80C ; =0x00002D64
+ ldrb r4, [r1, r0]
+ b _0224C76A
+_0224C756:
+ cmp r2, #0x1c
+ bne _0224C766
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ ldr r0, _0224C810 ; =0x00002D65
+ ldrb r4, [r1, r0]
+ b _0224C76A
+_0224C766:
+ bl ErrorHandling
+_0224C76A:
+ mov r0, #0xc0
+ mul r0, r6
+ mov r2, #0xb5
+ add r1, r5, r0
+ lsl r2, r2, #6
+ ldrh r3, [r1, r2]
+ ldr r0, _0224C814 ; =0x000001ED
+ cmp r3, r0
+ bne _0224C806
+ add r0, r2, #0
+ add r0, #0x27
+ ldrb r0, [r1, r0]
+ cmp r0, #0x79
+ bne _0224C806
+ add r2, #0x78
+ ldrh r1, [r1, r2]
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD11_0224C12C
+ sub r0, #0x7d
+ cmp r0, #0xf
+ bhi _0224C804
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224C7A4: ; jump table
+ .short _0224C7C4 - _0224C7A4 - 2 ; case 0
+ .short _0224C7C8 - _0224C7A4 - 2 ; case 1
+ .short _0224C7CC - _0224C7A4 - 2 ; case 2
+ .short _0224C7D0 - _0224C7A4 - 2 ; case 3
+ .short _0224C7D4 - _0224C7A4 - 2 ; case 4
+ .short _0224C7D8 - _0224C7A4 - 2 ; case 5
+ .short _0224C7DC - _0224C7A4 - 2 ; case 6
+ .short _0224C7E0 - _0224C7A4 - 2 ; case 7
+ .short _0224C7E4 - _0224C7A4 - 2 ; case 8
+ .short _0224C7E8 - _0224C7A4 - 2 ; case 9
+ .short _0224C7EC - _0224C7A4 - 2 ; case 10
+ .short _0224C7F0 - _0224C7A4 - 2 ; case 11
+ .short _0224C7F4 - _0224C7A4 - 2 ; case 12
+ .short _0224C7F8 - _0224C7A4 - 2 ; case 13
+ .short _0224C7FC - _0224C7A4 - 2 ; case 14
+ .short _0224C800 - _0224C7A4 - 2 ; case 15
+_0224C7C4:
+ mov r4, #0xa
+ b _0224C806
+_0224C7C8:
+ mov r4, #0xb
+ b _0224C806
+_0224C7CC:
+ mov r4, #0xd
+ b _0224C806
+_0224C7D0:
+ mov r4, #0xc
+ b _0224C806
+_0224C7D4:
+ mov r4, #0xf
+ b _0224C806
+_0224C7D8:
+ mov r4, #1
+ b _0224C806
+_0224C7DC:
+ mov r4, #3
+ b _0224C806
+_0224C7E0:
+ mov r4, #4
+ b _0224C806
+_0224C7E4:
+ mov r4, #2
+ b _0224C806
+_0224C7E8:
+ mov r4, #0xe
+ b _0224C806
+_0224C7EC:
+ mov r4, #6
+ b _0224C806
+_0224C7F0:
+ mov r4, #5
+ b _0224C806
+_0224C7F4:
+ mov r4, #7
+ b _0224C806
+_0224C7F8:
+ mov r4, #0x10
+ b _0224C806
+_0224C7FC:
+ mov r4, #0x11
+ b _0224C806
+_0224C800:
+ mov r4, #8
+ b _0224C806
+_0224C804:
+ mov r4, #0
+_0224C806:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ nop
+_0224C80C: .word 0x00002D64
+_0224C810: .word 0x00002D65
+_0224C814: .word 0x000001ED
+
+ thumb_func_start MOD11_0224C818
+MOD11_0224C818: ; 0x0224C818
+ lsl r1, r1, #3
+ add r3, r0, r1
+ mov r2, #0
+ mov r0, #0x37
+ add r1, r2, #0
+ lsl r0, r0, #4
+_0224C824:
+ add r2, r2, #1
+ strh r1, [r3, r0]
+ add r3, r3, #2
+ cmp r2, #4
+ blt _0224C824
+ bx lr
+
+ thumb_func_start MOD11_0224C830
+MOD11_0224C830: ; 0x0224C830
+ add r1, r0, r1
+ mov r0, #0x39
+ mov r2, #0
+ lsl r0, r0, #4
+ strb r2, [r1, r0]
+ bx lr
+
+ thumb_func_start MOD11_0224C83C
+MOD11_0224C83C: ; 0x0224C83C
+ lsl r1, r1, #1
+ add r1, r0, r1
+ mov r0, #0xe5
+ mov r2, #0
+ lsl r0, r0, #2
+ strh r2, [r1, r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0224C84C
+MOD11_0224C84C: ; 0x0224C84C
+ push {r4, r5, r6, lr}
+ add r4, r2, #0
+ add r3, r0, #0
+ mov r2, #0xc0
+ add r5, r1, #0
+ mul r1, r2
+ ldr r6, _0224C8BC ; =0x00002D67
+ add r1, r3, r1
+ ldrb r1, [r1, r6]
+ mov r0, #0xff
+ cmp r1, #0x3b
+ beq _0224C890
+ cmp r1, #0x24
+ beq _0224C890
+ cmp r1, #0x79
+ beq _0224C890
+ mul r2, r4
+ add r2, r3, r2
+ ldrb r2, [r2, r6]
+ cmp r2, #0x3b
+ beq _0224C890
+ cmp r2, #0x24
+ beq _0224C890
+ cmp r2, #0x79
+ beq _0224C890
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _0224C88C
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_0224C88C:
+ add r0, r5, #0
+ pop {r4, r5, r6, pc}
+_0224C890:
+ cmp r1, #0x3b
+ beq _0224C8A0
+ cmp r1, #0x24
+ beq _0224C8A0
+ cmp r1, #0x79
+ beq _0224C8A0
+ add r0, r5, #0
+ pop {r4, r5, r6, pc}
+_0224C8A0:
+ mov r1, #0xc0
+ mul r1, r4
+ add r2, r3, r1
+ ldr r1, _0224C8BC ; =0x00002D67
+ ldrb r1, [r2, r1]
+ cmp r1, #0x3b
+ beq _0224C8B8
+ cmp r1, #0x24
+ beq _0224C8B8
+ cmp r1, #0x79
+ beq _0224C8B8
+ add r0, r4, #0
+_0224C8B8:
+ pop {r4, r5, r6, pc}
+ nop
+_0224C8BC: .word 0x00002D67
+
+ thumb_func_start MOD11_0224C8C0
+MOD11_0224C8C0: ; 0x0224C8C0
+ lsl r1, r1, #4
+ add r1, r0, r1
+ ldr r0, _0224C8E4 ; =0x000003DE
+ ldr r3, _0224C8E8 ; =0x0225E260
+ ldrh r1, [r1, r0]
+ mov r2, #0
+_0224C8CC:
+ ldrh r0, [r3]
+ cmp r0, r1
+ bne _0224C8D6
+ mov r0, #1
+ bx lr
+_0224C8D6:
+ add r2, r2, #1
+ add r3, r3, #2
+ cmp r2, #6
+ blo _0224C8CC
+ mov r0, #0
+ bx lr
+ nop
+_0224C8E4: .word 0x000003DE
+_0224C8E8: .word 0x0225E260
+
+ thumb_func_start MOD11_0224C8EC
+MOD11_0224C8EC: ; 0x0224C8EC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r2, #0
+ ldr r2, _0224CA58 ; =0x00000137
+ add r7, r0, #0
+ add r4, r1, #0
+ cmp r3, r2
+ bgt _0224C904
+ blt _0224C8FE
+ b _0224CA00
+_0224C8FE:
+ cmp r3, #0xed
+ beq _0224C9A6
+ b _0224CA52
+_0224C904:
+ add r0, r2, #0
+ add r0, #0x34
+ cmp r3, r0
+ bgt _0224C914
+ add r2, #0x34
+ cmp r3, r2
+ beq _0224C91C
+ b _0224CA52
+_0224C914:
+ add r2, #0x8a
+ cmp r3, r2
+ beq _0224C928
+ b _0224CA52
+_0224C91C:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02249E04
+ add r5, r0, #0
+ b _0224CA54
+_0224C928:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02249D90
+ sub r0, #0x7d
+ cmp r0, #0xf
+ bhi _0224C9A2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224C942: ; jump table
+ .short _0224C982 - _0224C942 - 2 ; case 0
+ .short _0224C986 - _0224C942 - 2 ; case 1
+ .short _0224C98E - _0224C942 - 2 ; case 2
+ .short _0224C98A - _0224C942 - 2 ; case 3
+ .short _0224C996 - _0224C942 - 2 ; case 4
+ .short _0224C962 - _0224C942 - 2 ; case 5
+ .short _0224C96A - _0224C942 - 2 ; case 6
+ .short _0224C96E - _0224C942 - 2 ; case 7
+ .short _0224C966 - _0224C942 - 2 ; case 8
+ .short _0224C992 - _0224C942 - 2 ; case 9
+ .short _0224C976 - _0224C942 - 2 ; case 10
+ .short _0224C972 - _0224C942 - 2 ; case 11
+ .short _0224C97A - _0224C942 - 2 ; case 12
+ .short _0224C99A - _0224C942 - 2 ; case 13
+ .short _0224C99E - _0224C942 - 2 ; case 14
+ .short _0224C97E - _0224C942 - 2 ; case 15
+_0224C962:
+ mov r5, #1
+ b _0224CA54
+_0224C966:
+ mov r5, #2
+ b _0224CA54
+_0224C96A:
+ mov r5, #3
+ b _0224CA54
+_0224C96E:
+ mov r5, #4
+ b _0224CA54
+_0224C972:
+ mov r5, #5
+ b _0224CA54
+_0224C976:
+ mov r5, #6
+ b _0224CA54
+_0224C97A:
+ mov r5, #7
+ b _0224CA54
+_0224C97E:
+ mov r5, #8
+ b _0224CA54
+_0224C982:
+ mov r5, #0xa
+ b _0224CA54
+_0224C986:
+ mov r5, #0xb
+ b _0224CA54
+_0224C98A:
+ mov r5, #0xc
+ b _0224CA54
+_0224C98E:
+ mov r5, #0xd
+ b _0224CA54
+_0224C992:
+ mov r5, #0xe
+ b _0224CA54
+_0224C996:
+ mov r5, #0xf
+ b _0224CA54
+_0224C99A:
+ mov r5, #0x10
+ b _0224CA54
+_0224C99E:
+ mov r5, #0x11
+ b _0224CA54
+_0224C9A2:
+ mov r5, #0
+ b _0224CA54
+_0224C9A6:
+ ldr r0, _0224CA5C ; =0x00002D54
+ add r1, r4, r0
+ mov r0, #0xc0
+ mul r0, r6
+ ldr r4, [r1, r0]
+ lsl r0, r4, #2
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r5, r0, #0x1a
+ lsl r0, r4, #7
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r3, r0, #0x1b
+ lsl r0, r4, #0xc
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r2, r0, #0x1c
+ lsl r0, r4, #0x11
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r1, r0, #0x1d
+ lsl r0, r4, #0x1b
+ lsl r4, r4, #0x16
+ lsr r4, r4, #0x1b
+ lsr r6, r0, #0x1b
+ mov r0, #1
+ lsl r4, r4, #0x1f
+ and r0, r6
+ lsr r4, r4, #0x1e
+ orr r0, r4
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ add r1, r5, #0
+ orr r1, r0
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0x3f
+ bl _s32_div_f
+ add r5, r0, #1
+ cmp r5, #9
+ blt _0224CA54
+ add r5, r5, #1
+ b _0224CA54
+_0224CA00:
+ mov r2, #0xd
+ str r2, [sp]
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224CA54
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224CA54
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ ldr r1, _0224CA60 ; =0x000080FF
+ tst r1, r0
+ beq _0224CA54
+ mov r1, #3
+ tst r1, r0
+ beq _0224CA38
+ mov r5, #0xb
+_0224CA38:
+ mov r1, #0xc
+ tst r1, r0
+ beq _0224CA40
+ mov r5, #5
+_0224CA40:
+ mov r1, #0x30
+ tst r1, r0
+ beq _0224CA48
+ mov r5, #0xa
+_0224CA48:
+ mov r1, #0xc0
+ tst r0, r1
+ beq _0224CA54
+ mov r5, #0xf
+ b _0224CA54
+_0224CA52:
+ mov r5, #0
+_0224CA54:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224CA58: .word 0x00000137
+_0224CA5C: .word 0x00002D54
+_0224CA60: .word 0x000080FF
+
+ thumb_func_start MOD11_0224CA64
+MOD11_0224CA64: ; 0x0224CA64
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r1, #0x69
+ mov r0, #5
+ lsl r1, r1, #2
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r2, #0x69
+ mov r0, #0
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl MIi_CpuClearFast
+ mov r0, #0x65
+ ldrb r1, [r5]
+ lsl r0, r0, #2
+ strb r1, [r4, r0]
+ ldrb r1, [r5, #1]
+ add r0, r0, #1
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CA94
+MOD11_0224CA94: ; 0x0224CA94
+ push {r4, r5, r6, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _0224CB2C
+ sub r1, #0x8b
+ ldrb r1, [r4, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _0224CAC0
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ beq _0224CB2C
+_0224CAC0:
+ ldr r0, _0224CB30 ; =0x00000195
+ ldr r1, _0224CB34 ; =0x0225E818
+ ldrb r2, [r4, r0]
+ sub r0, r0, #1
+ ldrb r1, [r1, r2]
+ str r1, [sp]
+ mov r1, #5
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp, #8]
+ ldrb r0, [r4, r0]
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ str r6, [sp, #0x10]
+ bl MOD11_02230078
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ bl MOD11_022300CC
+ str r0, [sp, #0x20]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ add r0, sp, #0
+ bl MOD08_02229918
+ add r1, r4, #0
+ add r1, #0x88
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0x64
+ bl MOD08_0222A00C
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #2
+ bl MOD08_0222A018
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD08_02229FE4
+ add r4, #0x88
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_0222A008
+_0224CB2C:
+ add sp, #0x28
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224CB30: .word 0x00000195
+_0224CB34: .word 0x0225E818
+
+ thumb_func_start MOD11_0224CB38
+MOD11_0224CB38: ; 0x0224CB38
+ push {r3, lr}
+ add r2, r1, #0
+ add r2, #0x94
+ ldrb r2, [r2]
+ cmp r2, #0
+ beq _0224CB4C
+ lsl r3, r2, #2
+ ldr r2, _0224CB50 ; =0x0225E70C
+ ldr r2, [r2, r3]
+ blx r2
+_0224CB4C:
+ pop {r3, pc}
+ nop
+_0224CB50: .word 0x0225E70C
+
+ thumb_func_start MOD11_0224CB54
+MOD11_0224CB54: ; 0x0224CB54
+ push {r4, lr}
+ add r4, r1, #0
+ cmp r2, #2
+ beq _0224CB64
+ add r0, r4, #0
+ add r0, #0x28
+ bl MOD11_02257030
+_0224CB64:
+ add r0, r4, #0
+ bl MOD11_0225468C
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CB74
+MOD11_0224CB74: ; 0x0224CB74
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CB78
+MOD11_0224CB78: ; 0x0224CB78
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_0224D550
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0224CB98
+MOD11_0224CB98: ; 0x0224CB98
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224D574
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CBAC
+MOD11_0224CBAC: ; 0x0224CBAC
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224D738
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CBC0
+MOD11_0224CBC0: ; 0x0224CBC0
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224D87C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CBD4
+MOD11_0224CBD4: ; 0x0224CBD4
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224DA2C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CBE8
+MOD11_0224CBE8: ; 0x0224CBE8
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224DAE8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CBFC
+MOD11_0224CBFC: ; 0x0224CBFC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x20]
+ bl FUN_02007534
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #7
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CC20
+MOD11_0224CC20: ; 0x0224CC20
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224DB4C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CC34
+MOD11_0224CC34: ; 0x0224CC34
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224DCE4
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CC48
+MOD11_0224CC48: ; 0x0224CC48
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224DD44
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CC58
+MOD11_0224CC58: ; 0x0224CC58
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224DD8C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CC6C
+MOD11_0224CC6C: ; 0x0224CC6C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224DE50
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CC80
+MOD11_0224CC80: ; 0x0224CC80
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224DF18
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CC90
+MOD11_0224CC90: ; 0x0224CC90
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r4, #0
+ add r6, #0x94
+ add r1, r6, #0
+ add r1, #0x29
+ ldrb r1, [r1]
+ add r5, r0, #0
+ bl MOD11_022312B8
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0224DF60
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CCB8
+MOD11_0224CCB8: ; 0x0224CCB8
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E034
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CCCC
+MOD11_0224CCCC: ; 0x0224CCCC
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E0A4
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CCE0
+MOD11_0224CCE0: ; 0x0224CCE0
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E130
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CCF4
+MOD11_0224CCF4: ; 0x0224CCF4
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E1DC
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CD08
+MOD11_0224CD08: ; 0x0224CD08
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E248
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CD1C
+MOD11_0224CD1C: ; 0x0224CD1C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E28C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CD30
+MOD11_0224CD30: ; 0x0224CD30
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E2F4
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CD44
+MOD11_0224CD44: ; 0x0224CD44
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E344
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CD58
+MOD11_0224CD58: ; 0x0224CD58
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x20]
+ mov r1, #6
+ bl FUN_0200782C
+ cmp r0, #1
+ bne _0224CD7A
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x17
+ bl MOD11_022567B8
+ b _0224CD82
+_0224CD7A:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224E3E0
+_0224CD82:
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CD8C
+MOD11_0224CD8C: ; 0x0224CD8C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E410
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CDA0
+MOD11_0224CDA0: ; 0x0224CDA0
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E49C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CDB4
+MOD11_0224CDB4: ; 0x0224CDB4
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E510
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CDC8
+MOD11_0224CDC8: ; 0x0224CDC8
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E5F8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CDDC
+MOD11_0224CDDC: ; 0x0224CDDC
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224E628
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CDEC
+MOD11_0224CDEC: ; 0x0224CDEC
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E65C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE00
+MOD11_0224CE00: ; 0x0224CE00
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E6FC
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE14
+MOD11_0224CE14: ; 0x0224CE14
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E734
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE28
+MOD11_0224CE28: ; 0x0224CE28
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E790
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE3C
+MOD11_0224CE3C: ; 0x0224CE3C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E7E8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE50
+MOD11_0224CE50: ; 0x0224CE50
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224E840
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE60
+MOD11_0224CE60: ; 0x0224CE60
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E894
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE74
+MOD11_0224CE74: ; 0x0224CE74
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224E8EC
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE84
+MOD11_0224CE84: ; 0x0224CE84
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E924
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE98
+MOD11_0224CE98: ; 0x0224CE98
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E9C0
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CEAC
+MOD11_0224CEAC: ; 0x0224CEAC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r1, #0
+ mov r2, #0x65
+ add r6, #0x94
+ lsl r2, r2, #2
+ str r1, [sp, #4]
+ ldrb r1, [r1, r2]
+ ldrb r2, [r6, #1]
+ str r0, [sp]
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x1c
+ bl MOD11_02230014
+ add r7, r0, #0
+ mov r0, #2
+ ldr r1, [r6, #0x1c]
+ lsl r0, r0, #0x14
+ tst r0, r1
+ bne _0224CF14
+ add r0, r6, #0
+ add r5, r6, #0
+ str r0, [sp, #8]
+ add r0, #0x16
+ mov r4, #0
+ add r5, #0xe
+ str r0, [sp, #8]
+_0224CEE2:
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldrb r1, [r6, #1]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1c
+ tst r0, r1
+ bne _0224CF0C
+ add r1, r4, #0
+ add r0, r7, #0
+ add r1, #0x36
+ add r2, r5, #0
+ bl SetMonData
+ ldr r2, [sp, #8]
+ add r1, r4, #0
+ add r0, r7, #0
+ add r1, #0x3a
+ add r2, r2, r4
+ bl SetMonData
+_0224CF0C:
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #4
+ blt _0224CEE2
+_0224CF14:
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ bl MaskOfFlagNo
+ ldr r1, [r6, #8]
+ tst r0, r1
+ bne _0224CF30
+ add r2, r6, #0
+ add r0, r7, #0
+ mov r1, #6
+ add r2, #0xc
+ bl SetMonData
+_0224CF30:
+ add r0, r7, #0
+ mov r1, #0xa2
+ add r2, r6, #2
+ bl SetMonData
+ add r0, r7, #0
+ mov r1, #0x9f
+ add r2, r6, #4
+ bl SetMonData
+ mov r2, #0x65
+ ldr r1, [sp, #4]
+ lsl r2, r2, #2
+ ldrb r1, [r1, r2]
+ ldrb r2, [r6]
+ ldr r0, [sp]
+ bl MOD11_022567B8
+ ldr r0, [sp, #4]
+ bl MOD11_0224D548
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CF60
+MOD11_0224CF60: ; 0x0224CF60
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_0222FF74
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_02230094
+ ldr r2, _0224CFB0 ; =0x00000196
+ ldrb r1, [r4, r2]
+ cmp r1, #0
+ bne _0224CF94
+ mov r1, #8
+ and r1, r6
+ bne _0224CF8C
+ cmp r1, #0
+ bne _0224CF94
+ sub r1, r2, #1
+ ldrb r1, [r4, r1]
+ cmp r1, #4
+ beq _0224CF94
+_0224CF8C:
+ ldr r1, _0224CFB4 ; =0xFFFFF300
+ mov r2, #0
+ bl MOD11_02259098
+_0224CF94:
+ mov r1, #0x65
+ add r2, r4, #0
+ lsl r1, r1, #2
+ add r2, #0x94
+ ldrb r1, [r4, r1]
+ ldrb r2, [r2]
+ add r0, r5, #0
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+ nop
+_0224CFB0: .word 0x00000196
+_0224CFB4: .word 0xFFFFF300
+
+ thumb_func_start MOD11_0224CFB8
+MOD11_0224CFB8: ; 0x0224CFB8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x28
+ bl MOD11_02257238
+ add r0, r4, #0
+ bl MOD11_0225468C
+ mov r1, #0x65
+ add r2, r4, #0
+ lsl r1, r1, #2
+ add r2, #0x94
+ ldrb r1, [r4, r1]
+ ldrb r2, [r2]
+ add r0, r5, #0
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CFE8
+MOD11_0224CFE8: ; 0x0224CFE8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r1, #0
+ mov r1, #0
+ str r1, [sp, #8]
+ mov r1, #0x65
+ lsl r1, r1, #2
+ add r4, r7, #0
+ ldrb r1, [r7, r1]
+ str r0, [sp]
+ add r4, #0x94
+ bl MOD11_0222FFC8
+ mov r5, #0
+ str r0, [sp, #4]
+ cmp r0, #0
+ ble _0224D04A
+_0224D00A:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r7, r1]
+ ldr r0, [sp]
+ add r2, r5, #0
+ bl MOD11_02230014
+ ldrb r1, [r4, #1]
+ add r6, r0, #0
+ cmp r1, #0x68
+ bne _0224D024
+ mov r0, #0
+ b _0224D02C
+_0224D024:
+ mov r1, #0xa
+ mov r2, #0
+ bl GetMonData
+_0224D02C:
+ ldrh r1, [r4, #2]
+ cmp r1, #0xd7
+ bne _0224D038
+ bne _0224D042
+ cmp r0, #0x2b
+ beq _0224D042
+_0224D038:
+ add r0, r6, #0
+ mov r1, #0x9f
+ add r2, sp, #8
+ bl SetMonData
+_0224D042:
+ ldr r0, [sp, #4]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _0224D00A
+_0224D04A:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r7, r1]
+ ldrb r2, [r4]
+ ldr r0, [sp]
+ bl MOD11_022567B8
+ add r0, r7, #0
+ bl MOD11_0224D548
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224D064
+MOD11_0224D064: ; 0x0224D064
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EA74
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D078
+MOD11_0224D078: ; 0x0224D078
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EAAC
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D08C
+MOD11_0224D08C: ; 0x0224D08C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #0x10]
+ add r5, r1, #0
+ ldr r0, _0224D180 ; =0x00000195
+ add r4, r5, #0
+ ldrb r1, [r5, r0]
+ mov r0, #1
+ add r4, #0x94
+ tst r0, r1
+ beq _0224D0A6
+ mov r6, #2
+ b _0224D0A8
+_0224D0A6:
+ mov r6, #0
+_0224D0A8:
+ ldrb r0, [r4, #5]
+ lsl r3, r6, #0x18
+ lsr r3, r3, #0x18
+ str r0, [sp]
+ ldrb r0, [r4, #1]
+ str r0, [sp, #4]
+ ldr r0, [r4, #8]
+ str r0, [sp, #8]
+ ldrh r1, [r4, #2]
+ ldrb r2, [r4, #4]
+ add r0, sp, #0x14
+ bl FUN_02068C00
+ ldr r0, [r5, #0x20]
+ bl FUN_020081C0
+ add r7, r0, #0
+ add r3, sp, #0x14
+ add r2, r7, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r5, #0x20]
+ bl FUN_020080D0
+ ldr r0, [sp, #0x10]
+ bl MOD11_02230130
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ bl MOD11_022312DC
+ add r3, r0, #0
+ ldr r0, [r4, #8]
+ mov r2, #5
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r6, [sp, #8]
+ ldrh r0, [r7, #6]
+ str r0, [sp, #0xc]
+ ldrh r0, [r7]
+ ldrh r1, [r7, #2]
+ bl FUN_02012560
+ ldr r0, [sp, #0x10]
+ bl MOD11_02230130
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrh r2, [r7]
+ bl MOD11_022312F0
+ ldr r0, [sp, #0x10]
+ bl MOD11_02230130
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrh r2, [r7, #4]
+ bl MOD11_02231308
+ ldr r0, [r4, #8]
+ lsl r2, r6, #0x18
+ str r0, [sp]
+ ldrh r0, [r4, #2]
+ ldrb r1, [r4, #4]
+ ldrb r3, [r4, #1]
+ lsr r2, r2, #0x18
+ bl FUN_02068E88
+ add r6, r0, #0
+ ldr r0, [sp, #0x10]
+ bl MOD11_02230130
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r2, r6, #0
+ bl MOD11_02231320
+ ldr r0, _0224D180 ; =0x00000195
+ mov r1, #1
+ ldrb r0, [r5, r0]
+ bl MOD08_0222A6A4
+ add r2, r0, #0
+ ldr r0, [r5, #0x20]
+ mov r1, #1
+ add r2, r6, r2
+ bl FUN_02007558
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ ldr r0, [sp, #0x10]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl MOD11_0224D548
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224D180: .word 0x00000195
+
+ thumb_func_start MOD11_0224D184
+MOD11_0224D184: ; 0x0224D184
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_02230FCC
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x2e
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0224D1A4
+MOD11_0224D1A4: ; 0x0224D1A4
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ ldr r1, _0224D218 ; =0x00000196
+ add r5, r0, #0
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ bne _0224D200
+ bl MOD11_02230094
+ mov r1, #0
+ add r6, r0, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD11_02258820
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ bl MOD11_022302BC
+ add r1, r0, #0
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ cmp r1, r0
+ beq _0224D1EC
+ add r0, r5, #0
+ bl MOD11_02231380
+ bl MOD11_02258184
+_0224D1EC:
+ add r0, r4, #0
+ add r0, #0x28
+ bl MOD11_02257238
+ add r0, r6, #0
+ bl MOD11_02258E30
+ add r0, r4, #0
+ bl MOD11_0225468C
+_0224D200:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x2f
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+ nop
+_0224D218: .word 0x00000196
+
+ thumb_func_start MOD11_0224D21C
+MOD11_0224D21C: ; 0x0224D21C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EAEC
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D230
+MOD11_0224D230: ; 0x0224D230
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EB34
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D244
+MOD11_0224D244: ; 0x0224D244
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r6, r4, #0
+ add r5, r0, #0
+ add r6, #0x94
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0224D268
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0224EB6C
+ b _0224D276
+_0224D268:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x32
+ bl MOD11_022567B8
+_0224D276:
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224D280
+MOD11_0224D280: ; 0x0224D280
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r6, r4, #0
+ add r5, r0, #0
+ add r6, #0x94
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0224D2A4
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0224EBB8
+ b _0224D2B2
+_0224D2A4:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x33
+ bl MOD11_022567B8
+_0224D2B2:
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224D2BC
+MOD11_0224D2BC: ; 0x0224D2BC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_02230078
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_02230080
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_022300CC
+ add r2, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_0225C91C
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x34
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224D2F8
+MOD11_0224D2F8: ; 0x0224D2F8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_02230080
+ bl MOD11_0225C9A0
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x35
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0224D31C
+MOD11_0224D31C: ; 0x0224D31C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r5, #0
+ add r4, #0x94
+ ldrb r1, [r4, #1]
+ add r6, r0, #0
+ cmp r1, #0
+ ldr r1, _0224D360 ; =0x00000196
+ bne _0224D33C
+ ldrb r1, [r5, r1]
+ cmp r1, #0
+ bne _0224D348
+ ldrh r1, [r4, #2]
+ bl MOD11_0223128C
+ b _0224D348
+_0224D33C:
+ ldrb r1, [r5, r1]
+ cmp r1, #0
+ beq _0224D348
+ ldrh r1, [r4, #2]
+ bl MOD11_0223128C
+_0224D348:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ add r0, r6, #0
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+ nop
+_0224D360: .word 0x00000196
+
+ thumb_func_start MOD11_0224D364
+MOD11_0224D364: ; 0x0224D364
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224EBF4
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D374
+MOD11_0224D374: ; 0x0224D374
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EC4C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D388
+MOD11_0224D388: ; 0x0224D388
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224EC80
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D398
+MOD11_0224D398: ; 0x0224D398
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224ECB8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D3A8
+MOD11_0224D3A8: ; 0x0224D3A8
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224ECF0
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D3B8
+MOD11_0224D3B8: ; 0x0224D3B8
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224ED44
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D3CC
+MOD11_0224D3CC: ; 0x0224D3CC
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224ED98
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D3DC
+MOD11_0224D3DC: ; 0x0224D3DC
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EDEC
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D3F0
+MOD11_0224D3F0: ; 0x0224D3F0
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EE20
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D404
+MOD11_0224D404: ; 0x0224D404
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EE80
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D418
+MOD11_0224D418: ; 0x0224D418
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r7, #0
+ str r1, [sp, #4]
+ str r1, [sp, #0x10]
+ add r1, #0x94
+ str r0, [sp]
+ str r1, [sp, #0x10]
+ str r7, [sp, #8]
+ bl MOD11_0222FF74
+ mov r1, #0x80
+ tst r0, r1
+ beq _0224D444
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp]
+ ldr r1, [r1, #4]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02231468
+ b _0224D4FC
+_0224D444:
+ add r0, r7, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _0224D4D2
+_0224D452:
+ ldr r0, [sp]
+ ldr r1, [sp, #0xc]
+ bl MOD11_0222FF88
+ add r6, r0, #0
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0224D4C0
+_0224D466:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r4, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0224D4B4
+ add r0, r4, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0224D4B4
+ ldr r0, [sp]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0224D4A8
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ ldr r1, [sp, #8]
+ add r0, r1, r0
+ str r0, [sp, #8]
+ b _0224D4B4
+_0224D4A8:
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ add r7, r7, r0
+_0224D4B4:
+ add r0, r6, #0
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0224D466
+_0224D4C0:
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ ldr r1, [sp, #0xc]
+ cmp r1, r0
+ blt _0224D452
+_0224D4D2:
+ cmp r7, #0
+ bne _0224D4E6
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ bne _0224D4E6
+ ldr r0, [sp]
+ mov r1, #3
+ bl MOD11_02231468
+ b _0224D4FC
+_0224D4E6:
+ cmp r7, #0
+ bne _0224D4F4
+ ldr r0, [sp]
+ mov r1, #2
+ bl MOD11_02231468
+ b _0224D4FC
+_0224D4F4:
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD11_02231468
+_0224D4FC:
+ mov r2, #0x65
+ ldr r1, [sp, #4]
+ lsl r2, r2, #2
+ ldrb r1, [r1, r2]
+ ldr r2, [sp, #0x10]
+ ldr r0, [sp]
+ ldrb r2, [r2]
+ bl MOD11_022567B8
+ ldr r0, [sp, #4]
+ bl MOD11_0224D548
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0224D518
+MOD11_0224D518: ; 0x0224D518
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ mov r1, #0
+ add r5, r0, #0
+ bl MOD11_0222FF6C
+ add r6, r0, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ add r0, r6, #0
+ bl FUN_02019548
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x42
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0224D548
+MOD11_0224D548: ; 0x0224D548
+ mov r1, #0
+ add r0, #0x94
+ strb r1, [r0]
+ bx lr
+
+ thumb_func_start MOD11_0224D550
+MOD11_0224D550: ; 0x0224D550
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #0x18
+ bl AllocFromHeap
+ add r1, r0, #0
+ str r4, [r1]
+ mov r2, #0
+ strb r2, [r1, #0x14]
+ ldr r0, _0224D570 ; =MOD11_022530A0
+ strb r2, [r1, #0x15]
+ bl FUN_0200CA44
+ pop {r4, pc}
+ nop
+_0224D570: .word MOD11_022530A0
+
+ thumb_func_start MOD11_0224D574
+MOD11_0224D574: ; 0x0224D574
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ str r0, [sp, #0x24]
+ add r6, r1, #0
+ add r5, r2, #0
+ bl MOD11_02230068
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x24]
+ bl MOD11_0222FF74
+ mov r0, #5
+ mov r1, #0x2c
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r2, #0
+ ldr r0, _0224D720 ; =0x00000195
+ strb r2, [r4, #0x12]
+ ldrb r0, [r6, r0]
+ mov r1, #1
+ tst r0, r1
+ beq _0224D5CA
+ mov r0, #2
+ strb r0, [r4, #0x13]
+ ldr r0, [sp, #0x24]
+ bl MOD11_02230088
+ str r0, [r4, #0xc]
+ ldr r1, _0224D720 ; =0x00000195
+ ldr r0, [r0]
+ ldrb r2, [r6, r1]
+ mov r1, #1
+ and r2, r1
+ add r3, r2, #0
+ mov r1, #6
+ mul r3, r1
+ ldr r1, _0224D724 ; =0x0222D550
+ mov r2, #0x58
+ ldrsh r1, [r1, r3]
+ bl FUN_0200C714
+ b _0224D5F0
+_0224D5CA:
+ ldr r0, [sp, #0x24]
+ add r1, r2, #0
+ strb r2, [r4, #0x13]
+ bl MOD11_02230088
+ str r0, [r4, #0xc]
+ ldr r1, _0224D720 ; =0x00000195
+ ldr r0, [r0]
+ ldrb r2, [r6, r1]
+ mov r1, #1
+ and r2, r1
+ add r3, r2, #0
+ mov r1, #6
+ mul r3, r1
+ ldr r1, _0224D724 ; =0x0222D550
+ mov r2, #0x88
+ ldrsh r1, [r1, r3]
+ bl FUN_0200C714
+_0224D5F0:
+ ldrb r0, [r5, #1]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ beq _0224D5FC
+ mov r0, #1
+ b _0224D5FE
+_0224D5FC:
+ mov r0, #0
+_0224D5FE:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldrb r0, [r5, #1]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1b
+ str r0, [sp, #4]
+ ldr r0, [r5, #4]
+ str r0, [sp, #8]
+ ldrb r2, [r5, #1]
+ ldrh r1, [r5, #2]
+ ldrb r3, [r4, #0x13]
+ lsl r2, r2, #0x1e
+ add r0, sp, #0x48
+ lsr r2, r2, #0x1e
+ bl FUN_02068C00
+ ldr r0, [r5, #4]
+ str r0, [sp]
+ ldrb r3, [r5, #1]
+ ldrh r0, [r5, #2]
+ ldrb r2, [r4, #0x13]
+ lsl r1, r3, #0x1e
+ lsl r3, r3, #0x18
+ lsr r1, r1, #0x1e
+ lsr r3, r3, #0x1b
+ bl FUN_02068E88
+ str r0, [sp, #0x2c]
+ mov r0, #1
+ str r0, [sp]
+ add r0, sp, #0x30
+ ldrh r3, [r5, #2]
+ add r0, #2
+ mov r1, #0x8a
+ mov r2, #0
+ bl ReadFromNarcMemberByIdPair
+ mov r0, #1
+ str r0, [sp]
+ add r0, sp, #0x30
+ ldrh r3, [r5, #2]
+ add r0, #1
+ mov r1, #0x90
+ mov r2, #0
+ bl ReadFromNarcMemberByIdPair
+ mov r0, #1
+ str r0, [sp]
+ ldrh r3, [r5, #2]
+ add r0, sp, #0x30
+ mov r1, #0x8e
+ mov r2, #0
+ bl ReadFromNarcMemberByIdPair
+ add r0, sp, #0x30
+ ldrh r1, [r5, #2]
+ add r0, #3
+ bl FUN_02069010
+ ldr r1, _0224D720 ; =0x00000195
+ mov r0, #6
+ ldrb r2, [r6, r1]
+ ldr r3, _0224D724 ; =0x0222D550
+ add r7, r2, #0
+ mul r7, r0
+ ldr r0, _0224D728 ; =0x0222D552
+ mov r2, #2
+ ldrsh r0, [r0, r7]
+ ldrsh r3, [r3, r7]
+ str r0, [sp]
+ ldr r0, _0224D72C ; =0x0222D554
+ ldrsh r0, [r0, r7]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #8]
+ add r0, sp, #0x30
+ ldrsb r2, [r0, r2]
+ str r2, [sp, #0xc]
+ mov r2, #1
+ ldrsb r2, [r0, r2]
+ str r2, [sp, #0x10]
+ ldrb r0, [r0]
+ add r2, sp, #0x48
+ str r0, [sp, #0x14]
+ sub r0, r1, #1
+ ldrb r0, [r6, r0]
+ ldr r1, [sp, #0x28]
+ str r0, [sp, #0x18]
+ add r0, sp, #0x30
+ add r0, #3
+ str r0, [sp, #0x1c]
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x24]
+ bl MOD11_02253A88
+ str r0, [r6, #0x20]
+ str r0, [r4, #8]
+ ldrb r0, [r4, #0x13]
+ cmp r0, #2
+ bne _0224D6D8
+ mov r3, #0
+ str r3, [sp]
+ mov r1, #8
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ bl FUN_02007E68
+_0224D6D8:
+ ldr r1, _0224D720 ; =0x00000195
+ ldrb r0, [r6, r1]
+ lsl r2, r0, #2
+ ldr r0, _0224D730 ; =0x0222D538
+ ldrsh r0, [r0, r2]
+ strh r0, [r4, #0x14]
+ ldr r0, [sp, #0x24]
+ str r0, [r4]
+ str r6, [r4, #4]
+ ldrb r0, [r5]
+ strb r0, [r4, #0x10]
+ sub r0, r1, #1
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #0x11]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #0x16]
+ ldr r0, [r5, #8]
+ str r0, [r4, #0x18]
+ ldrb r0, [r6, r1]
+ str r0, [r4, #0x1c]
+ ldr r0, [r5, #4]
+ bl GetNatureFromPersonality
+ str r0, [r4, #0x24]
+ ldrb r0, [r5, #1]
+ add r1, r4, #0
+ mov r2, #0
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ str r0, [r4, #0x28]
+ ldr r0, _0224D734 ; =MOD11_0224EEA0
+ bl FUN_0200CA44
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224D720: .word 0x00000195
+_0224D724: .word 0x0222D550
+_0224D728: .word 0x0222D552
+_0224D72C: .word 0x0222D554
+_0224D730: .word 0x0222D538
+_0224D734: .word MOD11_0224EEA0
+
+ thumb_func_start MOD11_0224D738
+MOD11_0224D738: ; 0x0224D738
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0
+ add r6, r1, #0
+ add r5, r2, #0
+ bl MOD11_0222FF74
+ mov r0, #5
+ mov r1, #0x9c
+ bl AllocFromHeap
+ add r4, r0, #0
+ ldr r0, _0224D874 ; =0x00000195
+ ldrb r1, [r6, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _0224D75E
+ mov r1, #2
+ b _0224D760
+_0224D75E:
+ mov r1, #0
+_0224D760:
+ add r0, r4, #0
+ add r0, #0x84
+ strb r1, [r0]
+ ldrb r0, [r5, #1]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ beq _0224D772
+ mov r0, #1
+ b _0224D774
+_0224D772:
+ mov r0, #0
+_0224D774:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldrb r0, [r5, #1]
+ add r3, r4, #0
+ add r3, #0x84
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1b
+ str r0, [sp, #4]
+ ldr r0, [r5, #4]
+ str r0, [sp, #8]
+ ldrb r2, [r5, #1]
+ add r0, r4, #0
+ ldrh r1, [r5, #2]
+ lsl r2, r2, #0x1e
+ ldrb r3, [r3]
+ add r0, #0x14
+ lsr r2, r2, #0x1e
+ bl FUN_02068C00
+ ldr r0, [r5, #4]
+ add r2, r4, #0
+ str r0, [sp]
+ ldrb r3, [r5, #1]
+ add r2, #0x84
+ ldrh r0, [r5, #2]
+ lsl r1, r3, #0x1e
+ lsl r3, r3, #0x18
+ ldrb r2, [r2]
+ lsr r1, r1, #0x1e
+ lsr r3, r3, #0x1b
+ bl FUN_02068E88
+ add r1, r4, #0
+ add r1, #0x85
+ strb r0, [r1]
+ mov r0, #1
+ str r0, [sp]
+ add r0, r4, #0
+ ldrh r3, [r5, #2]
+ add r0, #0x90
+ mov r1, #0x8a
+ mov r2, #0
+ bl ReadFromNarcMemberByIdPair
+ mov r0, #1
+ str r0, [sp]
+ add r0, r4, #0
+ ldrh r3, [r5, #2]
+ add r0, #0x91
+ mov r1, #0x90
+ mov r2, #0
+ bl ReadFromNarcMemberByIdPair
+ mov r0, #1
+ str r0, [sp]
+ add r0, r4, #0
+ ldrh r3, [r5, #2]
+ add r0, #0x93
+ mov r1, #0x8e
+ mov r2, #0
+ bl ReadFromNarcMemberByIdPair
+ add r0, r6, #0
+ bl MOD11_02253A78
+ str r7, [r4]
+ add r0, r4, #0
+ str r6, [r4, #4]
+ mov r1, #0
+ add r0, #0x83
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x96
+ strb r1, [r0]
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x80
+ strb r1, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r2, [r6, r0]
+ add r1, r4, #0
+ add r1, #0x81
+ strb r2, [r1]
+ add r1, r4, #0
+ ldrh r2, [r5, #2]
+ add r1, #0x86
+ add r0, r0, #1
+ strh r2, [r1]
+ ldrb r1, [r6, r0]
+ add r0, r4, #0
+ add r0, #0x82
+ strb r1, [r0]
+ add r0, r4, #0
+ ldr r1, [r5, #8]
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r4, #0
+ ldr r1, [r5, #0xc]
+ add r0, #0x8c
+ strb r1, [r0]
+ ldr r0, [r5, #4]
+ bl GetNatureFromPersonality
+ add r1, r4, #0
+ add r1, #0x8d
+ strb r0, [r1]
+ add r0, r4, #0
+ ldr r1, [r5, #0x10]
+ add r0, #0x8e
+ strh r1, [r0]
+ ldrb r0, [r5, #1]
+ lsl r0, r0, #0x1d
+ lsr r1, r0, #0x1f
+ add r0, r4, #0
+ add r0, #0x92
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x94
+ strh r2, [r0]
+ ldr r0, _0224D878 ; =MOD11_0224F2DC
+ add r1, r4, #0
+ bl FUN_0200CA44
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224D874: .word 0x00000195
+_0224D878: .word MOD11_0224F2DC
+
+ thumb_func_start MOD11_0224D87C
+MOD11_0224D87C: ; 0x0224D87C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r7, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ bl MOD11_0222FF74
+ mov r0, #5
+ mov r1, #0x9c
+ bl AllocFromHeap
+ add r5, r0, #0
+ add r1, r5, #0
+ mov r0, #0
+ add r1, #0x83
+ strb r0, [r1]
+ ldr r1, _0224DA24 ; =0x00000195
+ ldrb r2, [r6, r1]
+ mov r1, #1
+ tst r1, r2
+ beq _0224D8B0
+ add r0, r5, #0
+ mov r1, #2
+ add r0, #0x84
+ strb r1, [r0]
+ b _0224D8B6
+_0224D8B0:
+ add r1, r5, #0
+ add r1, #0x84
+ strb r0, [r1]
+_0224D8B6:
+ ldrb r0, [r4, #1]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ beq _0224D8C2
+ mov r0, #1
+ b _0224D8C4
+_0224D8C2:
+ mov r0, #0
+_0224D8C4:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldrb r0, [r4, #1]
+ add r3, r5, #0
+ add r3, #0x84
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1b
+ str r0, [sp, #4]
+ ldr r0, [r4, #4]
+ str r0, [sp, #8]
+ ldrb r2, [r4, #1]
+ add r0, r5, #0
+ ldrh r1, [r4, #2]
+ lsl r2, r2, #0x1e
+ ldrb r3, [r3]
+ add r0, #0x14
+ lsr r2, r2, #0x1e
+ bl FUN_02068C00
+ ldr r0, [r4, #4]
+ add r2, r5, #0
+ str r0, [sp]
+ ldrb r3, [r4, #1]
+ add r2, #0x84
+ ldrh r0, [r4, #2]
+ lsl r1, r3, #0x1e
+ lsl r3, r3, #0x18
+ ldrb r2, [r2]
+ lsr r1, r1, #0x1e
+ lsr r3, r3, #0x1b
+ bl FUN_02068E88
+ add r1, r5, #0
+ add r1, #0x85
+ strb r0, [r1]
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ ldrh r3, [r4, #2]
+ add r0, #0x90
+ mov r1, #0x8a
+ mov r2, #0
+ bl ReadFromNarcMemberByIdPair
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ ldrh r3, [r4, #2]
+ add r0, #0x91
+ mov r1, #0x90
+ mov r2, #0
+ bl ReadFromNarcMemberByIdPair
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ ldrh r3, [r4, #2]
+ add r0, #0x93
+ mov r1, #0x8e
+ mov r2, #0
+ bl ReadFromNarcMemberByIdPair
+ add r0, r6, #0
+ bl MOD11_02253A78
+ str r7, [r5]
+ str r6, [r5, #4]
+ add r0, r5, #0
+ ldrb r1, [r4]
+ add r0, #0x80
+ strb r1, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r2, [r6, r0]
+ add r1, r5, #0
+ add r1, #0x81
+ strb r2, [r1]
+ add r1, r5, #0
+ ldrh r2, [r4, #2]
+ add r1, #0x86
+ add r0, r0, #1
+ strh r2, [r1]
+ ldrb r1, [r6, r0]
+ add r0, r5, #0
+ add r0, #0x82
+ strb r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r4, #8]
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x8c
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ bl GetNatureFromPersonality
+ add r1, r5, #0
+ add r1, #0x8d
+ strb r0, [r1]
+ add r0, r5, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x8e
+ strh r1, [r0]
+ ldrb r0, [r4, #1]
+ lsl r0, r0, #0x1d
+ lsr r1, r0, #0x1f
+ add r0, r5, #0
+ add r0, #0x92
+ strb r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r4, #0x14]
+ add r0, #0x94
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x96
+ strb r1, [r0]
+ add r0, r5, #0
+ ldr r2, [r4, #0x4c]
+ add r0, #0x98
+ str r2, [r0]
+ str r4, [sp, #0x18]
+ add r7, r5, #0
+ add r2, r4, #0
+ add r3, r5, #0
+_0224D9C2:
+ ldr r0, [sp, #0x18]
+ add r0, #0x50
+ ldrh r6, [r0]
+ add r0, r7, #0
+ add r0, #0x40
+ strh r6, [r0]
+ add r0, r4, r1
+ add r0, #0x58
+ ldrb r6, [r0]
+ add r0, r5, r1
+ str r0, [sp, #0x14]
+ add r0, #0x48
+ str r0, [sp, #0x14]
+ strb r6, [r0]
+ add r0, r4, r1
+ add r0, #0x5c
+ ldrb r6, [r0]
+ add r0, r5, r1
+ str r0, [sp, #0x10]
+ add r0, #0x4c
+ str r0, [sp, #0x10]
+ strb r6, [r0]
+ add r0, r4, r1
+ add r0, #0x60
+ ldrb r6, [r0]
+ add r0, r5, r1
+ str r0, [sp, #0xc]
+ add r0, #0x50
+ str r0, [sp, #0xc]
+ strb r6, [r0]
+ ldr r0, [r2, #0x64]
+ add r1, r1, #1
+ str r0, [r3, #0x54]
+ ldr r0, [sp, #0x18]
+ add r7, r7, #2
+ add r0, r0, #2
+ str r0, [sp, #0x18]
+ add r2, r2, #4
+ add r3, r3, #4
+ cmp r1, #4
+ blt _0224D9C2
+ ldr r0, _0224DA28 ; =MOD11_0224F7C4
+ add r1, r5, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224DA24: .word 0x00000195
+_0224DA28: .word MOD11_0224F7C4
+
+ thumb_func_start MOD11_0224DA2C
+MOD11_0224DA2C: ; 0x0224DA2C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x74
+ str r2, [sp]
+ bl AllocFromHeap
+ add r2, r0, #0
+ str r5, [r2]
+ str r4, [r2, #4]
+ ldr r0, [r4, #0x20]
+ add r7, r2, #0
+ str r0, [r2, #8]
+ ldr r0, [sp]
+ add r5, r2, #0
+ ldrb r1, [r0]
+ add r0, r2, #0
+ add r0, #0x68
+ strb r1, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r3, [r4, r0]
+ add r1, r2, #0
+ add r1, #0x69
+ add r0, r0, #1
+ strb r3, [r1]
+ ldrb r1, [r4, r0]
+ add r0, r2, #0
+ add r0, #0x6a
+ strb r1, [r0]
+ add r0, r2, #0
+ mov r1, #0
+ add r0, #0x6b
+ strb r1, [r0]
+ ldr r0, [sp]
+ ldrb r3, [r0, #1]
+ add r0, r2, #0
+ add r0, #0x6c
+ strb r3, [r0]
+ ldr r0, [sp]
+ ldrh r3, [r0, #2]
+ add r0, r2, #0
+ add r0, #0x6e
+ strh r3, [r0]
+ ldr r0, [sp]
+ ldr r3, [sp]
+ ldr r0, [r0, #4]
+ add r4, r3, #0
+ str r0, [r2, #0x70]
+_0224DA92:
+ ldrh r0, [r3, #8]
+ add r3, r3, #2
+ strh r0, [r7, #0x28]
+ ldr r0, [sp]
+ add r7, r7, #2
+ add r0, r0, r1
+ str r0, [sp, #0x10]
+ ldrb r0, [r0, #0x10]
+ str r0, [sp, #8]
+ add r0, r2, r1
+ ldr r6, [sp, #8]
+ add r0, #0x30
+ strb r6, [r0]
+ ldr r0, [sp, #0x10]
+ add r6, r2, r1
+ ldrb r0, [r0, #0x14]
+ str r6, [sp, #4]
+ add r6, #0x34
+ str r0, [sp, #0xc]
+ strb r0, [r6]
+ ldr r0, [sp, #0x10]
+ str r6, [sp, #4]
+ add r6, r2, r1
+ ldrb r0, [r0, #0x18]
+ add r6, #0x38
+ add r1, r1, #1
+ strb r0, [r6]
+ ldr r0, [r4, #0x1c]
+ add r4, r4, #4
+ str r0, [r5, #0x3c]
+ add r5, r5, #4
+ cmp r1, #4
+ blt _0224DA92
+ ldr r0, _0224DAE4 ; =MOD11_0224FD90
+ add r1, r2, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224DAE4: .word MOD11_0224FD90
+
+ thumb_func_start MOD11_0224DAE8
+MOD11_0224DAE8: ; 0x0224DAE8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r6, r2, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r7, [r4]
+ ldr r0, [r5, #0x20]
+ str r0, [r4, #4]
+ ldrb r0, [r6]
+ strb r0, [r4, #8]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ add r0, r0, #1
+ strb r1, [r4, #9]
+ ldrb r0, [r5, r0]
+ mov r1, #0
+ add r3, r1, #0
+ strb r0, [r4, #0xa]
+ strb r1, [r4, #0xb]
+ ldrb r0, [r6, #1]
+ strb r0, [r4, #0xc]
+ ldrh r0, [r6, #2]
+ lsl r2, r0, #1
+ ldr r0, _0224DB44 ; =0x0225E84A
+ ldrh r0, [r0, r2]
+ mov r2, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ bl FUN_02007E68
+ ldr r0, [r4, #4]
+ mov r1, #0x2d
+ mov r2, #1
+ bl FUN_02007558
+ ldr r0, _0224DB48 ; =MOD11_0224FFF0
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224DB44: .word 0x0225E84A
+_0224DB48: .word MOD11_0224FFF0
+
+ thumb_func_start MOD11_0224DB4C
+MOD11_0224DB4C: ; 0x0224DB4C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ add r6, r0, #0
+ add r5, r1, #0
+ str r2, [sp, #0x24]
+ bl MOD11_02230068
+ str r0, [sp, #0x2c]
+ mov r0, #5
+ mov r1, #0x24
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r2, #0
+ ldr r0, _0224DCCC ; =0x00000195
+ strb r2, [r4, #0x12]
+ ldrb r0, [r5, r0]
+ mov r1, #1
+ tst r0, r1
+ beq _0224DB9C
+ mov r0, #2
+ strb r0, [r4, #0x13]
+ add r0, r6, #0
+ bl MOD11_02230088
+ str r0, [r4, #8]
+ ldr r1, _0224DCCC ; =0x00000195
+ ldr r0, [r0]
+ ldrb r2, [r5, r1]
+ mov r1, #1
+ and r2, r1
+ add r3, r2, #0
+ mov r1, #6
+ mul r3, r1
+ ldr r1, _0224DCD0 ; =0x0222D550
+ mov r2, #0x58
+ ldrsh r1, [r1, r3]
+ bl FUN_0200C714
+ b _0224DBC2
+_0224DB9C:
+ add r0, r6, #0
+ add r1, r2, #0
+ strb r2, [r4, #0x13]
+ bl MOD11_02230088
+ str r0, [r4, #8]
+ ldr r1, _0224DCCC ; =0x00000195
+ ldr r0, [r0]
+ ldrb r2, [r5, r1]
+ mov r1, #1
+ and r2, r1
+ add r3, r2, #0
+ mov r1, #6
+ mul r3, r1
+ ldr r1, _0224DCD0 ; =0x0222D550
+ mov r2, #0x88
+ ldrsh r1, [r1, r3]
+ bl FUN_0200C714
+_0224DBC2:
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _0224DBE4
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ tst r0, r1
+ beq _0224DBEC
+ ldr r0, _0224DCCC ; =0x00000195
+ ldrb r1, [r5, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _0224DBEC
+_0224DBE4:
+ ldr r0, _0224DCCC ; =0x00000195
+ ldrb r0, [r5, r0]
+ str r0, [sp, #0x28]
+ b _0224DBF6
+_0224DBEC:
+ ldr r0, _0224DCCC ; =0x00000195
+ ldrb r1, [r5, r0]
+ mov r0, #1
+ and r0, r1
+ str r0, [sp, #0x28]
+_0224DBF6:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r0, r6, #0
+ bl MOD11_0223021C
+ add r3, r0, #0
+ ldr r1, [sp, #0x24]
+ lsl r3, r3, #0x18
+ ldrh r1, [r1, #2]
+ ldrb r2, [r4, #0x13]
+ add r0, sp, #0x30
+ lsr r3, r3, #0x18
+ bl FUN_02068FE0
+ ldr r0, [sp, #0x28]
+ mov r1, #6
+ add r7, r0, #0
+ mul r7, r1
+ ldr r0, _0224DCD4 ; =0x0222D552
+ mov r1, #0
+ ldrsh r0, [r0, r7]
+ ldr r3, _0224DCD0 ; =0x0222D550
+ add r2, sp, #0x30
+ str r0, [sp]
+ ldr r0, _0224DCD8 ; =0x0222D554
+ ldrsh r3, [r3, r7]
+ ldrsh r0, [r0, r7]
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ mov r0, #0x65
+ str r1, [sp, #0x14]
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ str r0, [sp, #0x18]
+ str r1, [sp, #0x1c]
+ str r1, [sp, #0x20]
+ ldr r1, [sp, #0x2c]
+ add r0, r6, #0
+ bl MOD11_02253A88
+ str r0, [r5, #0x1c]
+ str r0, [r4, #4]
+ ldrb r0, [r4, #0x13]
+ cmp r0, #0
+ bne _0224DC80
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _0224DC80
+ ldr r0, [sp, #0x24]
+ ldrh r0, [r0, #2]
+ bl FUN_0206AA30
+ ldr r3, _0224DCCC ; =0x00000195
+ add r2, r0, #0
+ ldrb r3, [r5, r3]
+ ldr r1, [sp, #0x28]
+ add r0, r6, #0
+ asr r3, r3, #1
+ bl MOD11_02254308
+ str r0, [r5, #0x18]
+ str r0, [r4, #0xc]
+_0224DC80:
+ ldr r0, [sp, #0x28]
+ lsl r1, r0, #2
+ ldr r0, _0224DCDC ; =0x0222D538
+ ldrsh r0, [r0, r1]
+ strh r0, [r4, #0x14]
+ ldr r0, [sp, #0x24]
+ str r6, [r4]
+ ldrb r0, [r0]
+ strb r0, [r4, #0x10]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ add r0, r0, #1
+ strb r1, [r4, #0x11]
+ ldrb r0, [r5, r0]
+ str r0, [r4, #0x18]
+ mov r0, #0
+ str r0, [r4, #0x20]
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _0224DCAE
+ cmp r0, #2
+ bne _0224DCBE
+_0224DCAE:
+ add r0, r6, #0
+ bl MOD11_0222FF68
+ mov r1, #3
+ mov r2, #2
+ mov r3, #0x84
+ bl FUN_020179E0
+_0224DCBE:
+ ldr r0, _0224DCE0 ; =MOD11_02250060
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224DCCC: .word 0x00000195
+_0224DCD0: .word 0x0222D550
+_0224DCD4: .word 0x0222D552
+_0224DCD8: .word 0x0222D554
+_0224DCDC: .word 0x0222D538
+_0224DCE0: .word MOD11_02250060
+
+ thumb_func_start MOD11_0224DCE4
+MOD11_0224DCE4: ; 0x0224DCE4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ mov r0, #5
+ mov r1, #0x1c
+ add r6, r2, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4, #0xa]
+ str r7, [r4]
+ ldrb r1, [r6]
+ strb r1, [r4, #8]
+ ldrb r1, [r6, #1]
+ str r1, [r4, #0x10]
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r2, [r5, r1]
+ strb r2, [r4, #9]
+ str r5, [r4, #4]
+ add r2, r1, #1
+ ldrb r3, [r5, r2]
+ mov r2, #1
+ tst r2, r3
+ beq _0224DD1E
+ mov r1, #2
+ strb r1, [r4, #0xb]
+ b _0224DD30
+_0224DD1E:
+ ldrb r1, [r5, r1]
+ add r0, r7, #0
+ bl MOD11_02230188
+ mov r1, #0
+ strb r1, [r4, #0xb]
+ ldrb r0, [r0, #1]
+ bl FUN_0206AA30
+_0224DD30:
+ str r0, [r4, #0xc]
+ ldr r0, _0224DD40 ; =MOD11_02250338
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224DD40: .word MOD11_02250338
+
+ thumb_func_start MOD11_0224DD44
+MOD11_0224DD44: ; 0x0224DD44
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r0, #0
+ strb r0, [r1, #0xa]
+ add r2, r4, #0
+ str r5, [r1]
+ add r2, #0x94
+ ldrb r2, [r2]
+ strb r2, [r1, #8]
+ mov r2, #0x65
+ lsl r2, r2, #2
+ ldrb r3, [r4, r2]
+ add r2, r2, #1
+ strb r3, [r1, #9]
+ str r4, [r1, #4]
+ ldrb r3, [r4, r2]
+ mov r2, #1
+ tst r2, r3
+ beq _0224DD7A
+ mov r0, #2
+ b _0224DD7A
+_0224DD7A:
+ strb r0, [r1, #0xb]
+ ldr r0, _0224DD88 ; =MOD11_022508A4
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ nop
+_0224DD88: .word MOD11_022508A4
+
+ thumb_func_start MOD11_0224DD8C
+MOD11_0224DD8C: ; 0x0224DD8C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r0, [sp, #0x10]
+ add r5, r1, #0
+ add r7, r2, #0
+ bl MOD11_02230068
+ str r0, [sp, #0x14]
+ mov r0, #5
+ mov r1, #0x10
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #0
+ ldr r1, _0224DE38 ; =0x00000195
+ strb r0, [r4, #0xa]
+ ldrb r2, [r5, r1]
+ mov r1, #1
+ tst r1, r2
+ beq _0224DDB8
+ mov r0, #2
+ b _0224DDB8
+_0224DDB8:
+ mov r1, #0x65
+ strb r0, [r4, #0xb]
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldr r0, [sp, #0x10]
+ bl MOD11_0223021C
+ add r3, r0, #0
+ lsl r3, r3, #0x18
+ ldrh r1, [r7, #2]
+ ldrb r2, [r4, #0xb]
+ add r0, sp, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02068FE0
+ ldr r0, _0224DE38 ; =0x00000195
+ mov r1, #6
+ ldrb r2, [r5, r0]
+ sub r0, r0, #1
+ ldr r3, _0224DE3C ; =0x0222D576
+ add r6, r2, #0
+ mul r6, r1
+ ldr r1, _0224DE40 ; =0x0222D578
+ ldr r2, _0224DE44 ; =0x0222D574
+ ldrsh r1, [r1, r6]
+ ldrsh r2, [r2, r6]
+ ldrsh r3, [r3, r6]
+ str r1, [sp]
+ ldrb r0, [r5, r0]
+ add r1, sp, #0x18
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ bl FUN_020073A0
+ str r0, [r5, #0x1c]
+ str r0, [r4, #4]
+ ldr r0, _0224DE38 ; =0x00000195
+ ldr r2, _0224DE48 ; =0x0222D538
+ ldrb r1, [r5, r0]
+ sub r0, r0, #1
+ lsl r1, r1, #0x1f
+ lsr r3, r1, #0x1d
+ ldr r1, [r7, #4]
+ add r2, r2, r3
+ lsl r1, r1, #1
+ ldrsh r1, [r1, r2]
+ mov r2, #0
+ strh r1, [r4, #0xc]
+ ldr r1, [sp, #0x10]
+ str r1, [r4]
+ ldrb r1, [r7]
+ strb r1, [r4, #8]
+ ldrb r0, [r5, r0]
+ add r1, r4, #0
+ strb r0, [r4, #9]
+ ldr r0, _0224DE4C ; =MOD11_0225092C
+ bl FUN_0200CA44
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224DE38: .word 0x00000195
+_0224DE3C: .word 0x0222D576
+_0224DE40: .word 0x0222D578
+_0224DE44: .word 0x0222D574
+_0224DE48: .word 0x0222D538
+_0224DE4C: .word MOD11_0225092C
+
+ thumb_func_start MOD11_0224DE50
+MOD11_0224DE50: ; 0x0224DE50
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r6, #0
+ add r4, #0x28
+ add r7, r0, #0
+ add r5, r2, #0
+ mov r0, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MIi_CpuClearFast
+ mov r0, #0x65
+ str r7, [r4, #0xc]
+ lsl r0, r0, #2
+ ldrb r1, [r6, r0]
+ add r0, r4, #0
+ add r0, #0x24
+ strb r1, [r0]
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ add r1, r0, #0
+ ldr r0, _0224DF10 ; =0x00000195
+ ldrb r0, [r6, r0]
+ bl MOD11_02257F6C
+ add r1, r4, #0
+ add r1, #0x25
+ strb r0, [r1]
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x4c
+ strb r1, [r0]
+ mov r0, #2
+ ldrsh r0, [r5, r0]
+ str r0, [r4, #0x28]
+ ldrh r0, [r5, #4]
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ ldrb r1, [r5, #1]
+ add r0, #0x48
+ strb r1, [r0]
+ ldrb r0, [r5, #7]
+ lsl r0, r0, #0x19
+ lsr r1, r0, #0x1e
+ add r0, r4, #0
+ add r0, #0x49
+ strb r1, [r0]
+ mov r1, #0
+ str r1, [r4, #0x30]
+ ldr r0, [r5, #8]
+ str r0, [r4, #0x38]
+ ldr r0, [r5, #0xc]
+ str r0, [r4, #0x3c]
+ add r0, r4, #0
+ ldrb r2, [r5, #6]
+ add r0, #0x26
+ strb r2, [r0]
+ ldrb r0, [r5, #7]
+ lsl r0, r0, #0x1b
+ lsr r2, r0, #0x1b
+ add r0, r4, #0
+ add r0, #0x4a
+ strb r2, [r0]
+ ldrb r0, [r5, #7]
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x1f
+ add r0, r4, #0
+ add r0, #0x4b
+ strb r2, [r0]
+ add r0, r4, #0
+ ldrb r2, [r5, #0x14]
+ add r0, #0x4d
+ strb r2, [r0]
+ add r0, r4, #0
+ ldr r2, [r5, #0x10]
+ add r0, #0x27
+ strb r2, [r0]
+ add r0, r4, #0
+ bl MOD11_022572AC
+ mov r2, #0
+ ldr r1, [r4, #0x28]
+ add r0, r4, #0
+ mvn r2, r2
+ bl MOD11_02256D70
+ mov r2, #0xfa
+ ldr r0, _0224DF14 ; =MOD11_022509B4
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224DF10: .word 0x00000195
+_0224DF14: .word MOD11_022509B4
+
+ thumb_func_start MOD11_0224DF18
+MOD11_0224DF18: ; 0x0224DF18
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r5, #0
+ add r4, #0x28
+ add r6, r0, #0
+ mov r0, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MIi_CpuClearFast
+ mov r0, #0x65
+ str r6, [r4, #0xc]
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ add r0, r4, #0
+ add r0, #0x24
+ strb r1, [r0]
+ add r5, #0x94
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x4c
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_02257334
+ mov r2, #0xfa
+ ldr r0, _0224DF5C ; =MOD11_02250A28
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224DF5C: .word MOD11_02250A28
+
+ thumb_func_start MOD11_0224DF60
+MOD11_0224DF60: ; 0x0224DF60
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #5
+ mov r1, #0x3c
+ add r5, r2, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r4, #0
+ mov r2, #0x3c
+ bl MIi_CpuClearFast
+ mov r7, #0
+ strb r7, [r4, #0xa]
+ strb r7, [r4, #0xb]
+ str r6, [r4]
+ ldrb r0, [r5]
+ mov r1, #0x65
+ lsl r1, r1, #2
+ strb r0, [r4, #8]
+ ldr r0, [sp]
+ add r3, r5, #0
+ ldrb r0, [r0, r1]
+ add r1, r1, #1
+ add r6, r4, #0
+ strb r0, [r4, #9]
+ ldr r0, [sp]
+ ldrb r1, [r0, r1]
+ add r0, r4, #0
+ add r0, #0x34
+ strb r1, [r0]
+ ldr r0, [sp]
+ add r0, #0x28
+ str r0, [r4, #4]
+ add r0, r4, #0
+ ldrb r1, [r5, #1]
+ add r0, #0x23
+ strb r1, [r0]
+ mov r0, #0x24
+ ldrsh r0, [r5, r0]
+ strh r0, [r4, #0x36]
+ ldrh r0, [r5, #0x26]
+ strh r0, [r4, #0x38]
+ add r0, r5, #0
+ add r0, #0x28
+ ldrb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x3a
+ strb r1, [r0]
+_0224DFC6:
+ mov r2, #0
+_0224DFC8:
+ add r0, r3, r2
+ ldrb r1, [r0, #8]
+ add r0, r6, r2
+ add r2, r2, #1
+ strb r1, [r0, #0x10]
+ cmp r2, #6
+ blt _0224DFC8
+ add r7, r7, #1
+ add r3, r3, #6
+ add r6, r6, #6
+ cmp r7, #2
+ blt _0224DFC6
+ mov r0, #0
+ add r3, r0, #0
+_0224DFE4:
+ add r2, r5, r0
+ ldrb r1, [r2, #8]
+ cmp r1, #2
+ bne _0224DFF2
+ add r1, r4, r0
+ strb r3, [r1, #0x1c]
+ b _0224DFF8
+_0224DFF2:
+ ldrb r2, [r2, #2]
+ add r1, r4, r0
+ strb r2, [r1, #0x1c]
+_0224DFF8:
+ add r0, r0, #1
+ cmp r0, #6
+ blt _0224DFE4
+ mov r2, #0
+ add r3, r5, #0
+ add r6, r4, #0
+_0224E004:
+ ldrh r0, [r3, #0x14]
+ add r7, r4, r2
+ add r1, r5, r2
+ strh r0, [r6, #0x24]
+ ldrb r0, [r1, #0x1c]
+ add r7, #0x2c
+ add r1, #0x20
+ strb r0, [r7]
+ add r0, r4, r2
+ ldrb r1, [r1]
+ add r0, #0x30
+ add r2, r2, #1
+ strb r1, [r0]
+ add r3, r3, #2
+ add r6, r6, #2
+ cmp r2, #4
+ blt _0224E004
+ ldr r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r0]
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0224E034
+MOD11_0224E034: ; 0x0224E034
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ str r1, [sp]
+ mov r0, #5
+ mov r1, #0x24
+ add r7, r2, #0
+ bl AllocFromHeap
+ add r3, r0, #0
+ mov r1, #0x65
+ mov r4, #0
+ add r0, #0x20
+ strb r4, [r0]
+ ldr r0, [sp]
+ str r5, [r3]
+ add r0, #0x94
+ ldrb r0, [r0]
+ lsl r1, r1, #2
+ add r5, r7, #0
+ strb r0, [r3, #0x1c]
+ ldr r0, [sp]
+ add r6, r3, #0
+ ldrb r0, [r0, r1]
+ add r1, r1, #1
+ strb r0, [r3, #0x1d]
+ ldr r0, [sp]
+ ldrb r0, [r0, r1]
+ strb r0, [r3, #0x1e]
+ ldr r0, [sp]
+ add r0, #0x28
+ str r0, [r3, #4]
+ ldrb r0, [r7, #1]
+ strb r0, [r3, #0x1f]
+_0224E076:
+ ldrh r0, [r5, #4]
+ add r2, r7, r4
+ add r1, r3, r4
+ strh r0, [r6, #0xc]
+ ldrb r0, [r2, #0xc]
+ add r4, r4, #1
+ add r5, r5, #2
+ strb r0, [r1, #0x14]
+ ldrb r0, [r2, #0x10]
+ add r6, r6, #2
+ cmp r4, #4
+ strb r0, [r1, #0x18]
+ blt _0224E076
+ ldrh r0, [r7, #2]
+ add r1, r3, #0
+ mov r2, #0
+ strh r0, [r3, #0x22]
+ ldr r0, [sp]
+ ldr r0, [r0, #4]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224E0A4
+MOD11_0224E0A4: ; 0x0224E0A4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ add r7, r1, #0
+ mov r0, #5
+ mov r1, #0x34
+ add r5, r2, #0
+ bl AllocFromHeap
+ add r6, r0, #0
+ mov r0, #0
+ strb r0, [r6, #0xf]
+ ldr r0, [sp]
+ str r0, [r6]
+ add r0, r7, #0
+ add r0, #0x94
+ ldrb r0, [r0]
+ strb r0, [r6, #0xc]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r7, r0]
+ add r0, r0, #1
+ strb r1, [r6, #0xd]
+ ldrb r0, [r7, r0]
+ strb r0, [r6, #0xe]
+ ldrh r0, [r5, #2]
+ strh r0, [r6, #0x30]
+ add r0, r7, #0
+ add r0, #0x28
+ str r0, [r6, #4]
+ add r0, r6, #0
+ ldrb r1, [r5, #1]
+ add r0, #0x32
+ strb r1, [r0]
+ ldr r0, [sp]
+ add r1, sp, #4
+ bl MOD11_02231504
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ add r4, r0, #0
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ mov r0, #0
+ cmp r4, #0
+ ble _0224E120
+ add r1, r6, #0
+_0224E106:
+ ldrh r2, [r5, #4]
+ add r0, r0, #1
+ strh r2, [r1, #0x10]
+ ldrh r2, [r5, #6]
+ strh r2, [r1, #0x12]
+ ldrh r2, [r5, #8]
+ strh r2, [r1, #0x14]
+ ldrh r2, [r5, #0xa]
+ add r5, #8
+ strh r2, [r1, #0x16]
+ add r1, #8
+ cmp r0, r4
+ blt _0224E106
+_0224E120:
+ ldr r0, [r7, #8]
+ add r1, r6, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224E130
+MOD11_0224E130: ; 0x0224E130
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ str r1, [sp]
+ mov r0, #5
+ mov r1, #0x34
+ str r2, [sp, #4]
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #0x34
+ bl AllocFromHeap
+ str r0, [r4, #8]
+ mov r0, #5
+ mov r1, #0x38
+ bl AllocFromHeap
+ ldr r1, [r4, #8]
+ str r0, [r1, #4]
+ mov r0, #5
+ bl FUN_0206B8AC
+ ldr r1, [r4, #8]
+ mov r6, #0
+ ldr r1, [r1, #4]
+ ldr r3, [sp, #4]
+ str r0, [r1]
+ strb r6, [r4, #0xe]
+ str r5, [r4]
+ ldr r0, [sp, #4]
+ mov r1, #0x65
+ ldrb r0, [r0]
+ lsl r1, r1, #2
+ add r5, r4, #0
+ strb r0, [r4, #0xc]
+ ldr r0, [sp]
+ ldrb r0, [r0, r1]
+ add r1, r1, #1
+ strb r0, [r4, #0xd]
+ ldr r0, [sp]
+ ldrb r0, [r0, r1]
+ strb r0, [r4, #0xf]
+ ldr r0, [sp, #4]
+ ldrb r0, [r0, #1]
+ strb r0, [r4, #0x14]
+ ldr r0, [sp, #4]
+ ldrb r0, [r0, #2]
+ strb r0, [r4, #0x15]
+ ldr r0, [sp, #4]
+ ldrb r0, [r0, #3]
+ strb r0, [r4, #0x16]
+_0224E19A:
+ ldr r0, [sp, #4]
+ ldr r1, [r4, #8]
+ add r7, r0, r6
+ ldrb r0, [r7, #4]
+ add r1, r1, r6
+ mov r2, #0
+ strb r0, [r1, #0xc]
+_0224E1A8:
+ add r0, r3, r2
+ ldrb r1, [r0, #8]
+ add r0, r5, r2
+ add r2, r2, #1
+ strb r1, [r0, #0x18]
+ cmp r2, #6
+ blt _0224E1A8
+ add r7, #0x20
+ ldrb r1, [r7]
+ add r0, r4, r6
+ add r0, #0x30
+ add r6, r6, #1
+ strb r1, [r0]
+ add r3, r3, #6
+ add r5, r5, #6
+ cmp r6, #4
+ blt _0224E19A
+ ldr r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r0, #0xc]
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224E1DC
+MOD11_0224E1DC: ; 0x0224E1DC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #5
+ mov r1, #0x34
+ add r7, r2, #0
+ bl AllocFromHeap
+ add r2, r0, #0
+ mov r3, #0
+ strb r3, [r2, #0xa]
+ str r4, [r2]
+ ldrb r0, [r7]
+ add r5, r7, #0
+ add r6, r2, #0
+ strb r0, [r2, #8]
+ ldrb r0, [r7, #1]
+ strb r0, [r2, #9]
+ ldrb r0, [r7, #2]
+ strb r0, [r2, #0xb]
+ ldr r0, [r7, #0x20]
+ str r0, [r2, #0x10]
+ ldrb r0, [r7, #3]
+ strb r0, [r2, #0x16]
+ add r0, r7, #0
+ strh r3, [r2, #0x14]
+ add r0, #0x24
+ ldrb r0, [r0]
+ strb r0, [r2, #0x18]
+_0224E216:
+ add r0, r7, r3
+ ldrb r1, [r0, #4]
+ add r0, r2, r3
+ mov r4, #0
+ strb r1, [r0, #0xc]
+_0224E220:
+ add r0, r5, r4
+ ldrb r1, [r0, #8]
+ add r0, r6, r4
+ add r4, r4, #1
+ strb r1, [r0, #0x1c]
+ cmp r4, #6
+ blt _0224E220
+ add r3, r3, #1
+ add r5, r5, #6
+ add r6, r6, #6
+ cmp r3, #4
+ blt _0224E216
+ ldr r0, [sp]
+ add r1, r2, #0
+ ldr r0, [r0, #0x10]
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224E248
+MOD11_0224E248: ; 0x0224E248
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #5
+ mov r1, #0x1c
+ add r4, r2, #0
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #0xe]
+ str r6, [r1]
+ ldrb r0, [r4]
+ strb r0, [r1, #0xc]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ strb r0, [r1, #0xd]
+ add r0, r5, #0
+ add r0, #0x28
+ str r0, [r1, #4]
+ ldrh r0, [r4, #2]
+ str r0, [r1, #0x10]
+ ldrb r0, [r4, #1]
+ strb r0, [r1, #0xf]
+ ldr r0, [r4, #4]
+ strh r0, [r1, #0x18]
+ ldr r0, [r4, #8]
+ str r0, [r1, #0x14]
+ ldr r0, [r5, #0x14]
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224E28C
+MOD11_0224E28C: ; 0x0224E28C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r6, r0, #0
+ add r7, r1, #0
+ add r5, r2, #0
+ bl MOD11_022300C8
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r6, [r4]
+ ldrb r0, [r5]
+ mov r1, #0x65
+ lsl r1, r1, #2
+ strb r0, [r4, #4]
+ ldrb r0, [r7, r1]
+ strb r0, [r4, #5]
+ ldrh r2, [r5, #2]
+ lsl r0, r2, #1
+ add r2, r2, r0
+ add r0, sp, #4
+ strh r2, [r0, #2]
+ mov r2, #2
+ strb r2, [r0, #1]
+ ldrb r0, [r5, #1]
+ ldrb r1, [r7, r1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [sp, #8]
+ add r0, r6, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r1, [sp]
+ add r0, r6, #0
+ add r2, sp, #4
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224E2F0 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224E2F0: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E2F4
+MOD11_0224E2F4: ; 0x0224E2F4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD11_022300C4
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ add r0, r6, #0
+ str r5, [r4]
+ add r0, #0x94
+ ldrb r0, [r0]
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224E340 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224E340: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E344
+MOD11_0224E344: ; 0x0224E344
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r6, r1, #0
+ mov r0, #5
+ mov r1, #0x70
+ add r5, r2, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r1, #0
+ add r0, #0x6a
+ strb r1, [r0]
+ str r7, [r4]
+ add r0, r6, #0
+ str r6, [r4, #4]
+ add r0, #0x94
+ ldrb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x68
+ strb r1, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r6, r0]
+ add r0, r4, #0
+ add r0, #0x69
+ strb r1, [r0]
+ add r0, r7, #0
+ bl MOD11_02230070
+ add r3, r4, #0
+ str r0, [r4, #0xc]
+ add r7, r5, #0
+ add r3, #0x10
+ mov r2, #0xb
+_0224E388:
+ ldmia r7!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0224E388
+ ldr r0, [r6, #0x20]
+ str r0, [r4, #8]
+ ldr r0, [r5, #0x4c]
+ cmp r0, #1
+ bne _0224E3A8
+ ldr r0, [r5, #0x50]
+ cmp r0, #0x19
+ bne _0224E3A8
+ mov r0, #0x1a
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+_0224E3A8:
+ ldr r0, [r5, #0x4c]
+ cmp r0, #1
+ bne _0224E3BC
+ ldr r0, [r5, #0x50]
+ cmp r0, #0x1a
+ bne _0224E3BC
+ mov r0, #0x1a
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+_0224E3BC:
+ ldrh r0, [r5, #2]
+ add r1, r4, #0
+ add r1, #0x6c
+ str r0, [sp]
+ add r0, r4, #0
+ ldr r2, [r5, #0x4c]
+ ldr r3, [r5, #0x50]
+ add r0, #0x6b
+ bl MOD11_022545B4
+ ldr r0, _0224E3DC ; =MOD11_02252754
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224E3DC: .word MOD11_02252754
+
+ thumb_func_start MOD11_0224E3E0
+MOD11_0224E3E0: ; 0x0224E3E0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0xc
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #9]
+ str r5, [r1]
+ ldr r0, [r4, #0x20]
+ str r0, [r1, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ strb r0, [r1, #8]
+ ldr r0, _0224E40C ; =MOD11_022529C0
+ strb r2, [r1, #0xa]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224E40C: .word MOD11_022529C0
+
+ thumb_func_start MOD11_0224E410
+MOD11_0224E410: ; 0x0224E410
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r7, r0, #0
+ ldr r0, [r6, #0x2c]
+ add r5, r2, #0
+ cmp r0, #0
+ bne _0224E422
+ bl ErrorHandling
+_0224E422:
+ add r4, r6, #0
+ add r4, #0x28
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MI_CpuFill8
+ str r7, [r4, #0xc]
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x4c
+ strb r1, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r6, r0]
+ add r0, r4, #0
+ add r0, #0x24
+ strb r1, [r0]
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ add r1, r0, #0
+ ldr r0, _0224E490 ; =0x00000195
+ ldrb r0, [r6, r0]
+ bl MOD11_02257F6C
+ add r1, r4, #0
+ add r1, #0x25
+ strb r0, [r1]
+ mov r0, #2
+ ldrsh r0, [r5, r0]
+ str r0, [r4, #0x28]
+ ldrh r0, [r5, #4]
+ str r0, [r4, #0x2c]
+ ldr r0, [r5, #8]
+ str r0, [r4, #0x30]
+ add r0, r4, #0
+ ldrb r1, [r5, #1]
+ add r0, #0x48
+ strb r1, [r0]
+ ldr r1, [r5, #8]
+ ldr r0, _0224E494 ; =0x00007FFF
+ cmp r1, r0
+ bne _0224E480
+ mov r0, #0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x30]
+_0224E480:
+ mov r2, #0xfa
+ ldr r0, _0224E498 ; =MOD11_02252A1C
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224E490: .word 0x00000195
+_0224E494: .word 0x00007FFF
+_0224E498: .word MOD11_02252A1C
+
+ thumb_func_start MOD11_0224E49C
+MOD11_0224E49C: ; 0x0224E49C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r7, r0, #0
+ ldr r0, [r6, #0x2c]
+ add r5, r2, #0
+ cmp r0, #0
+ bne _0224E4AE
+ bl ErrorHandling
+_0224E4AE:
+ add r4, r6, #0
+ add r4, #0x28
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MI_CpuFill8
+ str r7, [r4, #0xc]
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x4c
+ strb r1, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r2, [r6, r0]
+ add r1, r4, #0
+ add r1, #0x24
+ strb r2, [r1]
+ ldr r1, [r5, #4]
+ add r0, r0, #1
+ str r1, [r4, #0x38]
+ ldr r1, [r5, #0xc]
+ str r1, [r4, #0x3c]
+ ldr r2, [r5, #8]
+ ldr r1, [r4, #0x38]
+ sub r1, r2, r1
+ str r1, [r4, #0x40]
+ ldrb r0, [r6, r0]
+ cmp r0, #0
+ bne _0224E4FA
+ mov r2, #0xfa
+ ldr r0, _0224E50C ; =MOD11_02252A70
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0224E4FA:
+ add r1, r4, #0
+ ldr r0, [r4, #0xc]
+ add r1, #0x24
+ add r4, #0x4c
+ ldrb r1, [r1]
+ ldrb r2, [r4]
+ bl MOD11_022567B8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224E50C: .word MOD11_02252A70
+
+ thumb_func_start MOD11_0224E510
+MOD11_0224E510: ; 0x0224E510
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x74
+ str r2, [sp]
+ bl AllocFromHeap
+ add r1, r0, #0
+ ldr r0, _0224E5F0 ; =0x00000195
+ ldrb r2, [r4, r0]
+ mov r0, #1
+ tst r0, r2
+ beq _0224E532
+ mov r2, #2
+ b _0224E534
+_0224E532:
+ mov r2, #0
+_0224E534:
+ add r0, r1, #0
+ add r0, #0x67
+ strb r2, [r0]
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #0x66
+ strb r2, [r0]
+ str r5, [r1]
+ ldr r0, [sp]
+ str r4, [r1, #4]
+ ldrb r3, [r0]
+ add r0, r1, #0
+ add r0, #0x64
+ strb r3, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r3, [r4, r0]
+ add r0, r1, #0
+ add r0, #0x65
+ strb r3, [r0]
+ ldr r0, [r4, #0x20]
+ add r7, r1, #0
+ str r0, [r1, #8]
+ ldr r0, [sp]
+ add r5, r1, #0
+ ldrh r3, [r0, #2]
+ add r0, r1, #0
+ add r0, #0x68
+ strh r3, [r0]
+ ldr r0, [sp]
+ ldrb r3, [r0, #1]
+ add r0, r1, #0
+ add r0, #0x6a
+ strb r3, [r0]
+ ldr r0, [sp]
+ ldrb r3, [r0, #8]
+ add r0, r1, #0
+ add r0, #0x6b
+ strb r3, [r0]
+ ldr r0, [sp]
+ ldr r0, [r0, #4]
+ str r0, [r1, #0x6c]
+ ldr r0, [sp]
+ ldrb r3, [r0, #9]
+ add r0, r1, #0
+ add r0, #0x70
+ strh r3, [r0]
+ ldr r0, [sp]
+ ldrb r3, [r0, #0xa]
+ add r0, r1, #0
+ add r0, #0x72
+ strh r3, [r0]
+ ldr r3, [sp]
+ add r4, r3, #0
+_0224E5A0:
+ ldrh r0, [r3, #0xc]
+ add r3, r3, #2
+ strh r0, [r7, #0x24]
+ ldr r0, [sp]
+ add r7, r7, #2
+ add r0, r0, r2
+ str r0, [sp, #0x10]
+ ldrb r0, [r0, #0x14]
+ str r0, [sp, #8]
+ add r0, r1, r2
+ ldr r6, [sp, #8]
+ add r0, #0x2c
+ strb r6, [r0]
+ ldr r0, [sp, #0x10]
+ add r6, r1, r2
+ ldrb r0, [r0, #0x18]
+ str r6, [sp, #4]
+ add r6, #0x30
+ str r0, [sp, #0xc]
+ strb r0, [r6]
+ ldr r0, [sp, #0x10]
+ str r6, [sp, #4]
+ add r6, r1, r2
+ ldrb r0, [r0, #0x1c]
+ add r6, #0x34
+ add r2, r2, #1
+ strb r0, [r6]
+ ldr r0, [r4, #0x20]
+ add r4, r4, #4
+ str r0, [r5, #0x38]
+ add r5, r5, #4
+ cmp r2, #4
+ blt _0224E5A0
+ ldr r0, _0224E5F4 ; =MOD11_02252B30
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224E5F0: .word 0x00000195
+_0224E5F4: .word MOD11_02252B30
+
+ thumb_func_start MOD11_0224E5F8
+MOD11_0224E5F8: ; 0x0224E5F8
+ push {r3, r4, r5, lr}
+ add r5, r2, #0
+ ldr r2, _0224E624 ; =0x00000195
+ mov r4, #1
+ ldrb r2, [r1, r2]
+ tst r2, r4
+ beq _0224E60A
+ mov r4, #0x75
+ b _0224E60C
+_0224E60A:
+ sub r4, #0x76
+_0224E60C:
+ mov r2, #0x65
+ lsl r2, r2, #2
+ ldrb r1, [r1, r2]
+ ldrb r2, [r5]
+ bl MOD11_022567B8
+ ldrh r0, [r5, #2]
+ add r1, r4, #0
+ bl FUN_020054A8
+ pop {r3, r4, r5, pc}
+ nop
+_0224E624: .word 0x00000195
+
+ thumb_func_start MOD11_0224E628
+MOD11_0224E628: ; 0x0224E628
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #6]
+ add r0, r4, #0
+ str r5, [r1]
+ add r0, #0x94
+ ldrb r0, [r0]
+ strb r0, [r1, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ strb r0, [r1, #5]
+ ldr r0, _0224E658 ; =MOD11_02252DB4
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ nop
+_0224E658: .word MOD11_02252DB4
+
+ thumb_func_start MOD11_0224E65C
+MOD11_0224E65C: ; 0x0224E65C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x68
+ str r2, [sp]
+ bl AllocFromHeap
+ add r1, r0, #0
+ str r5, [r1]
+ ldr r0, [sp]
+ str r4, [r1, #4]
+ ldrb r2, [r0]
+ add r0, r1, #0
+ add r0, #0x60
+ strb r2, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #0x61
+ strb r2, [r0]
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #0x62
+ strb r2, [r0]
+ ldr r0, [sp]
+ add r7, r1, #0
+ ldrb r3, [r0, #1]
+ add r0, r1, #0
+ add r0, #0x63
+ strb r3, [r0]
+ ldr r0, [sp]
+ ldr r3, [sp]
+ ldrb r0, [r0, #2]
+ add r4, r3, #0
+ add r5, r1, #0
+ str r0, [r1, #0x64]
+_0224E6AA:
+ ldrh r0, [r3, #4]
+ add r3, r3, #2
+ strh r0, [r7, #0x20]
+ ldr r0, [sp]
+ add r7, r7, #2
+ add r0, r0, r2
+ str r0, [sp, #0x10]
+ ldrb r0, [r0, #0xc]
+ str r0, [sp, #8]
+ add r0, r1, r2
+ ldr r6, [sp, #8]
+ add r0, #0x28
+ strb r6, [r0]
+ ldr r0, [sp, #0x10]
+ add r6, r1, r2
+ ldrb r0, [r0, #0x10]
+ str r6, [sp, #4]
+ add r6, #0x2c
+ str r0, [sp, #0xc]
+ strb r0, [r6]
+ ldr r0, [sp, #0x10]
+ str r6, [sp, #4]
+ add r6, r1, r2
+ ldrb r0, [r0, #0x14]
+ add r6, #0x30
+ add r2, r2, #1
+ strb r0, [r6]
+ ldr r0, [r4, #0x18]
+ add r4, r4, #4
+ str r0, [r5, #0x34]
+ add r5, r5, #4
+ cmp r2, #4
+ blt _0224E6AA
+ ldr r0, _0224E6F8 ; =MOD11_02252E50
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224E6F8: .word MOD11_02252E50
+
+ thumb_func_start MOD11_0224E6FC
+MOD11_0224E6FC: ; 0x0224E6FC
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5, #0x2c]
+ add r4, r2, #0
+ cmp r0, #0
+ bne _0224E70E
+ bl ErrorHandling
+_0224E70E:
+ ldrb r1, [r4, #1]
+ add r0, r5, #0
+ add r0, #0x72
+ strb r1, [r0]
+ add r0, r5, #0
+ mov r2, #1
+ ldr r1, [r5, #0x50]
+ add r0, #0x28
+ lsl r2, r2, #8
+ bl MOD11_02256D70
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ add r0, r6, #0
+ bl MOD11_022567B8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0224E734
+MOD11_0224E734: ; 0x0224E734
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r6, r0, #0
+ add r7, r2, #0
+ bl MOD11_02230140
+ str r0, [sp, #4]
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r6, [r4]
+ ldrb r0, [r7]
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ strb r0, [r4, #5]
+ add r0, r6, #0
+ bl MOD11_02230E54
+ str r0, [sp]
+ mov r2, #0x65
+ lsl r2, r2, #2
+ ldrb r2, [r5, r2]
+ ldrb r3, [r7, #1]
+ ldr r1, [sp, #4]
+ add r0, r6, #0
+ bl MOD11_02231684
+ strb r0, [r4, #6]
+ ldr r0, _0224E78C ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224E78C: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E790
+MOD11_0224E790: ; 0x0224E790
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r3, sp, #4
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD11_02253B74
+ add r0, r5, #0
+ bl MOD11_022300C4
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ ldrb r0, [r7]
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, sp, #4
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224E7E4 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224E7E4: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E7E8
+MOD11_0224E7E8: ; 0x0224E7E8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r3, sp, #4
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD11_02253C48
+ add r0, r5, #0
+ bl MOD11_022300C4
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ ldrb r0, [r7]
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, sp, #4
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224E83C ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224E83C: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E840
+MOD11_0224E840: ; 0x0224E840
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ add r2, sp, #0
+ add r6, r1, #0
+ bl MOD11_02253D28
+ add r0, r5, #0
+ bl MOD11_022300C4
+ add r7, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ mov r0, #0x22
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, sp, #0
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224E890 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224E890: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E894
+MOD11_0224E894: ; 0x0224E894
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r3, sp, #4
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD11_02253DD4
+ add r0, r5, #0
+ bl MOD11_022300C4
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ ldrb r0, [r7]
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, sp, #4
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224E8E8 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224E8E8: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E8EC
+MOD11_0224E8EC: ; 0x0224E8EC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0xc
+ bl AllocFromHeap
+ add r1, r0, #0
+ add r0, r4, #0
+ str r5, [r1]
+ add r0, #0x94
+ ldrb r0, [r0]
+ mov r2, #0
+ strb r0, [r1, #8]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ add r4, #0x28
+ strb r0, [r1, #9]
+ strb r2, [r1, #0xa]
+ ldr r0, _0224E920 ; =MOD11_02252FBC
+ str r4, [r1, #4]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ nop
+_0224E920: .word MOD11_02252FBC
+
+ thumb_func_start MOD11_0224E924
+MOD11_0224E924: ; 0x0224E924
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r1, _0224E9B8 ; =0x00000196
+ add r4, r2, #0
+ ldrb r2, [r5, r1]
+ add r6, r0, #0
+ cmp r2, #0
+ bne _0224E976
+ bl MOD11_022300C4
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #0xc
+ bl AllocFromHeap
+ add r7, r0, #0
+ str r6, [r7]
+ ldrb r0, [r4]
+ strb r0, [r7, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ strb r0, [r7, #5]
+ mov r0, #0
+ strb r0, [r7, #7]
+ add r0, r6, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r1, [sp]
+ add r0, r6, #0
+ add r2, r4, #4
+ bl MOD11_0223178C
+ strb r0, [r7, #6]
+ ldr r0, _0224E9BC ; =MOD11_0225304C
+ add r1, r7, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+_0224E976:
+ cmp r2, #1
+ bne _0224E992
+ sub r1, r1, #2
+ ldrb r1, [r5, r1]
+ bl MOD11_02256004
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ add r0, r6, #0
+ bl MOD11_022567B8
+ pop {r3, r4, r5, r6, r7, pc}
+_0224E992:
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ bne _0224E9A8
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r0, r6, #0
+ bl MOD11_02256004
+_0224E9A8:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ add r0, r6, #0
+ bl MOD11_022567B8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224E9B8: .word 0x00000196
+_0224E9BC: .word MOD11_0225304C
+
+ thumb_func_start MOD11_0224E9C0
+MOD11_0224E9C0: ; 0x0224E9C0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r6, #0
+ add r4, #0x28
+ add r7, r0, #0
+ add r5, r2, #0
+ mov r0, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MIi_CpuClearFast
+ mov r0, #0x65
+ str r7, [r4, #0xc]
+ lsl r0, r0, #2
+ ldrb r1, [r6, r0]
+ add r0, r4, #0
+ add r0, #0x24
+ strb r1, [r0]
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ add r1, r0, #0
+ ldr r0, _0224EA70 ; =0x00000195
+ ldrb r0, [r6, r0]
+ bl MOD11_02257F6C
+ add r1, r4, #0
+ add r1, #0x25
+ strb r0, [r1]
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x4c
+ mov r2, #0
+ strb r1, [r0]
+ mov r0, #2
+ ldrsh r0, [r5, r0]
+ str r0, [r4, #0x28]
+ ldrh r0, [r5, #4]
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ ldrb r1, [r5, #1]
+ add r0, #0x48
+ strb r1, [r0]
+ ldrb r0, [r5, #7]
+ lsl r0, r0, #0x19
+ lsr r1, r0, #0x1e
+ add r0, r4, #0
+ add r0, #0x49
+ strb r1, [r0]
+ str r2, [r4, #0x30]
+ ldr r0, [r5, #8]
+ sub r2, #0x21
+ str r0, [r4, #0x38]
+ ldr r0, [r5, #0xc]
+ str r0, [r4, #0x3c]
+ add r0, r4, #0
+ ldrb r1, [r5, #6]
+ add r0, #0x26
+ strb r1, [r0]
+ ldrb r0, [r5, #7]
+ lsl r0, r0, #0x1b
+ lsr r1, r0, #0x1b
+ add r0, r4, #0
+ add r0, #0x4a
+ strb r1, [r0]
+ ldrb r0, [r5, #7]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x1f
+ add r0, r4, #0
+ add r0, #0x4b
+ strb r1, [r0]
+ add r0, r4, #0
+ ldr r1, [r5, #0x10]
+ add r0, #0x27
+ strb r1, [r0]
+ ldr r1, [r4, #0x28]
+ add r0, r4, #0
+ bl MOD11_02256D70
+ add r1, r4, #0
+ ldr r0, [r4, #0xc]
+ add r1, #0x24
+ add r4, #0x4c
+ ldrb r1, [r1]
+ ldrb r2, [r4]
+ bl MOD11_022567B8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224EA70: .word 0x00000195
+
+ thumb_func_start MOD11_0224EA74
+MOD11_0224EA74: ; 0x0224EA74
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r4, r2, #0
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #0xa]
+ str r5, [r1]
+ ldrb r0, [r4]
+ strb r0, [r1, #8]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r1, #9]
+ ldrh r0, [r4, #2]
+ strh r0, [r1, #0xc]
+ ldrb r0, [r4, #1]
+ strb r0, [r1, #0xe]
+ ldr r0, _0224EAA8 ; =MOD11_022533F4
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224EAA8: .word MOD11_022533F4
+
+ thumb_func_start MOD11_0224EAAC
+MOD11_0224EAAC: ; 0x0224EAAC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r4, r2, #0
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #0xa]
+ str r6, [r1]
+ ldr r0, [r5, #0x20]
+ str r0, [r1, #4]
+ ldrb r0, [r4]
+ strb r0, [r1, #8]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ strb r0, [r1, #9]
+ ldrb r0, [r4, #1]
+ strb r0, [r1, #0xb]
+ strb r2, [r1, #0xc]
+ ldrb r0, [r4, #2]
+ strb r0, [r1, #0xd]
+ ldr r0, _0224EAE8 ; =MOD11_0225352C
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ nop
+_0224EAE8: .word MOD11_0225352C
+
+ thumb_func_start MOD11_0224EAEC
+MOD11_0224EAEC: ; 0x0224EAEC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r4, r2, #0
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r0, #0
+ strb r0, [r1, #7]
+ str r6, [r1]
+ ldrb r2, [r4]
+ strb r2, [r1, #4]
+ mov r2, #0x65
+ lsl r2, r2, #2
+ ldrb r3, [r5, r2]
+ add r2, r2, #1
+ strb r3, [r1, #5]
+ ldrb r2, [r5, r2]
+ strb r2, [r1, #6]
+_0224EB16:
+ add r2, r4, r0
+ ldrb r3, [r2, #2]
+ add r2, r1, r0
+ add r0, r0, #1
+ strb r3, [r2, #8]
+ cmp r0, #6
+ blt _0224EB16
+ ldr r0, _0224EB30 ; =MOD11_0225359C
+ mov r2, #0
+ strb r2, [r1, #0xe]
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224EB30: .word MOD11_0225359C
+
+ thumb_func_start MOD11_0224EB34
+MOD11_0224EB34: ; 0x0224EB34
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r6, r2, #0
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #7]
+ str r5, [r1]
+ ldrb r0, [r6]
+ strb r0, [r1, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r3, [r4, r0]
+ add r0, r0, #1
+ strb r3, [r1, #5]
+ ldrb r0, [r4, r0]
+ strb r0, [r1, #6]
+ ldr r0, _0224EB68 ; =MOD11_02253650
+ strb r2, [r1, #0xe]
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224EB68: .word MOD11_02253650
+
+ thumb_func_start MOD11_0224EB6C
+MOD11_0224EB6C: ; 0x0224EB6C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r4, r2, #0
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r0, #0
+ strb r0, [r1, #7]
+ str r6, [r1]
+ ldrb r2, [r4]
+ strb r2, [r1, #4]
+ mov r2, #0x65
+ lsl r2, r2, #2
+ ldrb r3, [r5, r2]
+ add r2, r2, #1
+ strb r3, [r1, #5]
+ ldrb r2, [r5, r2]
+ strb r2, [r1, #6]
+_0224EB96:
+ add r2, r4, r0
+ ldrb r3, [r2, #2]
+ add r2, r1, r0
+ add r0, r0, #1
+ strb r3, [r2, #8]
+ cmp r0, #6
+ blt _0224EB96
+ mov r0, #1
+ strb r0, [r1, #0xe]
+ ldr r0, _0224EBB4 ; =MOD11_0225359C
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ nop
+_0224EBB4: .word MOD11_0225359C
+
+ thumb_func_start MOD11_0224EBB8
+MOD11_0224EBB8: ; 0x0224EBB8
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r6, r2, #0
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #7]
+ str r5, [r1]
+ ldrb r0, [r6]
+ strb r0, [r1, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r3, [r4, r0]
+ add r0, r0, #1
+ strb r3, [r1, #5]
+ ldrb r0, [r4, r0]
+ strb r0, [r1, #6]
+ mov r0, #1
+ strb r0, [r1, #0xe]
+ ldr r0, _0224EBF0 ; =MOD11_02253650
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ nop
+_0224EBF0: .word MOD11_02253650
+
+ thumb_func_start MOD11_0224EBF4
+MOD11_0224EBF4: ; 0x0224EBF4
+ push {r4, r5, lr}
+ sub sp, #0x24
+ add r4, r1, #0
+ ldr r1, _0224EC44 ; =0x00000196
+ add r5, r0, #0
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ bne _0224EC32
+ bl MOD11_022300C4
+ add r1, r0, #0
+ ldr r2, _0224EC48 ; =0x0000039B
+ add r0, sp, #0
+ strh r2, [r0, #2]
+ mov r3, #0
+ strb r3, [r0, #1]
+ add r0, r5, #0
+ add r2, sp, #0
+ bl MOD11_0223178C
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_0222FF6C
+ mov r1, #1
+ bl FUN_0200D858
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_022312C8
+_0224EC32:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x37
+ bl MOD11_022567B8
+ add sp, #0x24
+ pop {r4, r5, pc}
+ .align 2, 0
+_0224EC44: .word 0x00000196
+_0224EC48: .word 0x0000039B
+
+ thumb_func_start MOD11_0224EC4C
+MOD11_0224EC4C: ; 0x0224EC4C
+ push {r4, r5, r6, lr}
+ sub sp, #0x50
+ mov r3, #0x65
+ add r4, r1, #0
+ lsl r3, r3, #2
+ add r6, r2, #0
+ ldrb r3, [r4, r3]
+ add r1, r6, #0
+ add r2, sp, #0
+ add r5, r0, #0
+ bl MOD11_0225452C
+ add r0, sp, #0
+ mov r1, #5
+ bl MOD08_0222A494
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ ldrb r2, [r6]
+ add r0, r5, #0
+ bl MOD11_022567B8
+ add sp, #0x50
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224EC80
+MOD11_0224EC80: ; 0x0224EC80
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #0xe]
+ str r5, [r1]
+ add r0, r4, #0
+ str r4, [r1, #4]
+ add r0, #0x94
+ ldrb r0, [r0]
+ strb r0, [r1, #0xc]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ strb r0, [r1, #0xd]
+ ldr r0, [r4, #0x20]
+ str r0, [r1, #8]
+ ldr r0, _0224ECB4 ; =MOD11_022536D4
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224ECB4: .word MOD11_022536D4
+
+ thumb_func_start MOD11_0224ECB8
+MOD11_0224ECB8: ; 0x0224ECB8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #0xe]
+ str r5, [r1]
+ add r0, r4, #0
+ str r4, [r1, #4]
+ add r0, #0x94
+ ldrb r0, [r0]
+ strb r0, [r1, #0xc]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ strb r0, [r1, #0xd]
+ ldr r0, [r4, #0x20]
+ str r0, [r1, #8]
+ ldr r0, _0224ECEC ; =MOD11_02253720
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224ECEC: .word MOD11_02253720
+
+ thumb_func_start MOD11_0224ECF0
+MOD11_0224ECF0: ; 0x0224ECF0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ add r2, sp, #0
+ add r6, r1, #0
+ bl MOD11_02254108
+ add r0, r5, #0
+ bl MOD11_022300C4
+ add r7, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ mov r0, #0x3b
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, sp, #0
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224ED40 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224ED40: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224ED44
+MOD11_0224ED44: ; 0x0224ED44
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ add r3, sp, #0
+ add r6, r1, #0
+ bl MOD11_022541C4
+ add r0, r5, #0
+ bl MOD11_022300C4
+ add r7, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ mov r0, #0x3c
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, sp, #0
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224ED94 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224ED94: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224ED98
+MOD11_0224ED98: ; 0x0224ED98
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ add r2, sp, #0
+ add r6, r1, #0
+ bl MOD11_022542B4
+ add r0, r5, #0
+ bl MOD11_022300C4
+ add r7, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ mov r0, #0x3d
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, sp, #0
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224EDE8 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224EDE8: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224EDEC
+MOD11_0224EDEC: ; 0x0224EDEC
+ push {r4, r5, r6, lr}
+ sub sp, #0x50
+ mov r3, #0x65
+ add r4, r1, #0
+ lsl r3, r3, #2
+ add r6, r2, #0
+ ldrb r3, [r4, r3]
+ add r1, r6, #0
+ add r2, sp, #0
+ add r5, r0, #0
+ bl MOD11_0225452C
+ add r0, sp, #0
+ mov r1, #5
+ bl MOD08_0222A568
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ ldrb r2, [r6]
+ add r0, r5, #0
+ bl MOD11_022567B8
+ add sp, #0x50
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224EE20
+MOD11_0224EE20: ; 0x0224EE20
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ ldr r0, _0224EE70 ; =0x00000195
+ mov r1, #1
+ ldrb r0, [r5, r0]
+ add r4, r2, #0
+ tst r0, r1
+ beq _0224EE36
+ mov r1, #0x75
+ b _0224EE38
+_0224EE36:
+ sub r1, #0x76
+_0224EE38:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _0224EE48
+ cmp r0, #1
+ beq _0224EE58
+ cmp r0, #2
+ beq _0224EE50
+ b _0224EE5E
+_0224EE48:
+ ldr r0, _0224EE74 ; =0x000006FE
+ bl FUN_020054A8
+ b _0224EE5E
+_0224EE50:
+ ldr r0, _0224EE78 ; =0x000006FC
+ bl FUN_020054A8
+ b _0224EE5E
+_0224EE58:
+ ldr r0, _0224EE7C ; =0x000006FD
+ bl FUN_020054A8
+_0224EE5E:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ add r0, r6, #0
+ bl MOD11_022567B8
+ pop {r4, r5, r6, pc}
+ nop
+_0224EE70: .word 0x00000195
+_0224EE74: .word 0x000006FE
+_0224EE78: .word 0x000006FC
+_0224EE7C: .word 0x000006FD
+
+ thumb_func_start MOD11_0224EE80
+MOD11_0224EE80: ; 0x0224EE80
+ push {r4, r5, r6, lr}
+ add r4, r2, #0
+ add r6, r0, #0
+ ldrh r0, [r4, #2]
+ add r5, r1, #0
+ bl FUN_0200521C
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ add r0, r6, #0
+ bl MOD11_022567B8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224EEA0
+MOD11_0224EEA0: ; 0x0224EEA0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x6c
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ ldrb r1, [r4, #0x12]
+ add r5, r0, #0
+ cmp r1, #5
+ bls _0224EEB8
+ b _0224F2C2
+_0224EEB8:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224EEC4: ; jump table
+ .short _0224EED0 - _0224EEC4 - 2 ; case 0
+ .short _0224EEDA - _0224EEC4 - 2 ; case 1
+ .short _0224EEE8 - _0224EEC4 - 2 ; case 2
+ .short _0224F15E - _0224EEC4 - 2 ; case 3
+ .short _0224F1B2 - _0224EEC4 - 2 ; case 4
+ .short _0224F1D0 - _0224EEC4 - 2 ; case 5
+_0224EED0:
+ mov r0, #0x1c
+ str r0, [r4, #0x20]
+ ldrb r0, [r4, #0x12]
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+_0224EEDA:
+ ldr r0, [r4, #0x20]
+ sub r0, r0, #1
+ str r0, [r4, #0x20]
+ bne _0224EFAE
+ ldrb r0, [r4, #0x12]
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+_0224EEE8:
+ ldrb r0, [r4, #0x13]
+ add r1, sp, #0x10
+ cmp r0, #2
+ ldr r0, [r4, #0xc]
+ beq _0224EEF4
+ b _0224F040
+_0224EEF4:
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0x10
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #1
+ beq _0224EF08
+ cmp r0, #3
+ bne _0224EF2A
+_0224EF08:
+ add r1, sp, #0x10
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ cmp r0, #0xc0
+ ldr r0, [r4, #0xc]
+ bge _0224EF20
+ ldr r0, [r0]
+ mov r1, #8
+ mov r2, #0
+ bl FUN_0200C82C
+ b _0224EF2A
+_0224EF20:
+ ldr r0, [r0]
+ mov r1, #0xc0
+ mov r2, #0x58
+ bl FUN_0200C714
+_0224EF2A:
+ ldr r0, [r4, #0xc]
+ add r1, sp, #0x10
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0x10
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #1
+ bne _0224EF4E
+ add r3, sp, #0x10
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02007558
+ b _0224EF9E
+_0224EF4E:
+ cmp r0, #3
+ bne _0224EF78
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0x10
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r0, r1
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x18
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #8]
+ neg r2, r2
+ bl FUN_020079E0
+ b _0224EF9E
+_0224EF78:
+ cmp r0, #5
+ bne _0224EF9E
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0x10
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r1, r0
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x10
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #8]
+ bl FUN_020079E0
+_0224EF9E:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ mov r1, #0x14
+ ldrsh r1, [r4, r1]
+ cmp r0, r1
+ bge _0224EFB0
+_0224EFAE:
+ b _0224F2D8
+_0224EFB0:
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_02007314
+ ldr r0, [r4, #8]
+ mov r1, #0x2c
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ mov r1, #0x2d
+ mov r2, #0
+ bl FUN_02007558
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ ldr r1, [r4, #0x24]
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ ldrb r1, [r4, #0x11]
+ str r1, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldrb r3, [r4, #0x13]
+ ldr r1, [r4, #8]
+ bl FUN_02069038
+ ldrb r1, [r4, #0x11]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r1, #5
+ str r1, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldr r1, [r4, #0x18]
+ mov r3, #0x75
+ bl FUN_02069FB0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #1
+ beq _0224F01C
+ cmp r0, #3
+ bne _0224F028
+_0224F01C:
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc0
+ ldr r0, [r0]
+ mov r2, #0x58
+ bl FUN_0200C714
+_0224F028:
+ mov r2, #0
+ str r2, [sp]
+ ldr r0, [r4, #8]
+ mov r1, #8
+ add r3, r2, #0
+ bl FUN_02007E68
+ ldrb r0, [r4, #0x12]
+ add sp, #0x6c
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_0224F040:
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0x10
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _0224F054
+ cmp r0, #2
+ bne _0224F076
+_0224F054:
+ add r0, sp, #0x10
+ mov r1, #2
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x40
+ ldr r0, [r4, #0xc]
+ ble _0224F06C
+ ldr r0, [r0]
+ sub r1, #0xa
+ mov r2, #0
+ bl FUN_0200C82C
+ b _0224F076
+_0224F06C:
+ ldr r0, [r0]
+ mov r1, #0x40
+ mov r2, #0x88
+ bl FUN_0200C714
+_0224F076:
+ ldr r0, [r4, #0xc]
+ add r1, sp, #0x10
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0x10
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ bne _0224F09A
+ add r3, sp, #0x10
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02007558
+ b _0224F0EA
+_0224F09A:
+ cmp r0, #2
+ bne _0224F0C2
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0x10
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r1, r0
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x18
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #8]
+ bl FUN_020079E0
+ b _0224F0EA
+_0224F0C2:
+ cmp r0, #4
+ bne _0224F0EA
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0x10
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r0, r1
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x10
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #8]
+ neg r2, r2
+ bl FUN_020079E0
+_0224F0EA:
+ mov r0, #0x14
+ ldrsh r5, [r4, r0]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ cmp r0, r5
+ bgt _0224F1C0
+ ldr r0, [r4, #8]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ ldr r1, [r4, #0x24]
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ ldrb r1, [r4, #0x11]
+ str r1, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldrb r3, [r4, #0x13]
+ ldr r1, [r4, #8]
+ bl FUN_02069038
+ ldrb r1, [r4, #0x11]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r3, #5
+ str r3, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldr r1, [r4, #0x18]
+ sub r3, #0x7a
+ bl FUN_02069FB0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _0224F148
+ cmp r0, #2
+ bne _0224F154
+_0224F148:
+ ldr r0, [r4, #0xc]
+ mov r1, #0x40
+ ldr r0, [r0]
+ mov r2, #0x88
+ bl FUN_0200C714
+_0224F154:
+ ldrb r0, [r4, #0x12]
+ add sp, #0x6c
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_0224F15E:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ ldrb r1, [r4, #0x11]
+ bl FUN_02014D7C
+ cmp r0, #1
+ bne _0224F1C0
+ ldr r0, [r4, #8]
+ bl FUN_02007390
+ cmp r0, #0
+ bne _0224F1C0
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _0224F1AA
+ ldrb r1, [r4, #0x11]
+ mov r0, #0xb
+ add r2, sp, #0x14
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x14
+ bl MOD11_02254404
+ mov r0, #4
+ add sp, #0x6c
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_0224F1AA:
+ mov r0, #0xff
+ add sp, #0x6c
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_0224F1B2:
+ bl MOD08_02212384
+ add r0, r5, #0
+ bl MOD08_022123A0
+ cmp r0, #0
+ beq _0224F1C2
+_0224F1C0:
+ b _0224F2D8
+_0224F1C2:
+ add r0, r5, #0
+ bl MOD08_022123B0
+ mov r0, #0xff
+ add sp, #0x6c
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_0224F1D0:
+ ldrb r5, [r4, #0x13]
+ cmp r5, #2
+ bne _0224F25E
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_02007314
+ ldr r0, [r4, #8]
+ mov r1, #0x2c
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ mov r1, #0x2d
+ mov r2, #0
+ bl FUN_02007558
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ ldr r1, [r4, #0x24]
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ ldrb r1, [r4, #0x11]
+ str r1, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldrb r3, [r4, #0x13]
+ ldr r1, [r4, #8]
+ bl FUN_02069038
+ ldrb r1, [r4, #0x11]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r1, #5
+ str r1, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldr r1, [r4, #0x18]
+ mov r3, #0x75
+ bl FUN_02069FB0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #1
+ beq _0224F242
+ cmp r0, #3
+ bne _0224F24E
+_0224F242:
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc0
+ ldr r0, [r0]
+ mov r2, #0x58
+ bl FUN_0200C714
+_0224F24E:
+ mov r2, #0
+ str r2, [sp]
+ ldr r0, [r4, #8]
+ mov r1, #8
+ add r3, r2, #0
+ bl FUN_02007E68
+ b _0224F2BA
+_0224F25E:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ ldr r1, [r4, #0x24]
+ add r3, r5, #0
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ ldrb r1, [r4, #0x11]
+ str r1, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldr r1, [r4, #8]
+ bl FUN_02069038
+ ldrb r1, [r4, #0x11]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r3, #5
+ str r3, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldr r1, [r4, #0x18]
+ sub r3, #0x7a
+ bl FUN_02069FB0
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _0224F2AE
+ cmp r0, #2
+ bne _0224F2BA
+_0224F2AE:
+ ldr r0, [r4, #0xc]
+ mov r1, #0x40
+ ldr r0, [r0]
+ mov r2, #0x88
+ bl FUN_0200C714
+_0224F2BA:
+ mov r0, #3
+ add sp, #0x6c
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_0224F2C2:
+ ldrb r1, [r4, #0x11]
+ ldrb r2, [r4, #0x10]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_0224F2D8:
+ add sp, #0x6c
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0224F2DC
+MOD11_0224F2DC: ; 0x0224F2DC
+ push {r4, r5, lr}
+ sub sp, #0x9c
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ cmp r0, #7
+ bls _0224F2F0
+ b _0224F7A2
+_0224F2F0:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224F2FC: ; jump table
+ .short _0224F30C - _0224F2FC - 2 ; case 0
+ .short _0224F322 - _0224F2FC - 2 ; case 1
+ .short _0224F366 - _0224F2FC - 2 ; case 2
+ .short _0224F4B0 - _0224F2FC - 2 ; case 3
+ .short _0224F4CC - _0224F2FC - 2 ; case 4
+ .short _0224F6E2 - _0224F2FC - 2 ; case 5
+ .short _0224F6F6 - _0224F2FC - 2 ; case 6
+ .short _0224F77C - _0224F2FC - 2 ; case 7
+_0224F30C:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x96
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x83
+ strb r1, [r0]
+_0224F322:
+ add r1, sp, #0x38
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r4, #0
+ add r0, #0x82
+ ldrb r0, [r0]
+ add r1, r4, #0
+ add r2, r4, #0
+ str r0, [sp, #0x38]
+ add r1, #0x81
+ add r2, #0x8c
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_02230014
+ str r0, [sp, #0x40]
+ mov r0, #5
+ add r1, sp, #0x38
+ bl MOD08_02228218
+ str r0, [r4, #8]
+ bl MOD08_02228524
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x9c
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F366:
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A80
+ cmp r0, #0
+ bne _0224F3AE
+ ldr r0, [r4, #8]
+ bl MOD08_02228570
+ cmp r0, #1
+ bne _0224F3AE
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A00
+ cmp r0, #1
+ bne _0224F3AE
+ add r0, r4, #0
+ add r0, #0x82
+ ldrb r0, [r0]
+ cmp r0, #4
+ bne _0224F3B8
+ add r0, r4, #0
+ add r0, #0x96
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x96
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x96
+ ldrb r0, [r0]
+ cmp r0, #0xc
+ bhs _0224F3B0
+_0224F3AE:
+ b _0224F7C0
+_0224F3B0:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x96
+ strb r1, [r0]
+_0224F3B8:
+ ldr r0, [r4]
+ bl MOD11_02230068
+ add r1, r4, #0
+ add r1, #0x86
+ add r5, r0, #0
+ ldrh r1, [r1]
+ add r0, sp, #0x24
+ bl FUN_02069010
+ add r0, r4, #0
+ add r0, #0x82
+ ldrb r3, [r0]
+ mov r0, #6
+ add r2, r4, #0
+ add r1, r3, #0
+ mul r1, r0
+ ldr r0, _0224F690 ; =0x0222D552
+ add r2, #0x14
+ ldrsh r0, [r0, r1]
+ str r0, [sp]
+ ldr r0, _0224F694 ; =0x0222D554
+ ldrsh r0, [r0, r1]
+ add r1, r5, #0
+ lsl r5, r3, #2
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x85
+ ldrb r0, [r0]
+ ldr r3, _0224F698 ; =0x0222D538
+ str r0, [sp, #8]
+ mov r0, #0x90
+ ldrsb r0, [r4, r0]
+ ldrsh r3, [r3, r5]
+ str r0, [sp, #0xc]
+ mov r0, #0x91
+ ldrsb r0, [r4, r0]
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0x93
+ ldrb r0, [r0]
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r0, [r0]
+ str r0, [sp, #0x18]
+ add r0, sp, #0x24
+ str r0, [sp, #0x1c]
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [r4]
+ bl MOD11_02253A88
+ ldr r1, [r4, #4]
+ mov r2, #0
+ str r0, [r1, #0x20]
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ ldr r0, [r0, #0x20]
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #0xd
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #0x2c
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #6
+ ldr r0, [r0, #0x20]
+ mov r2, #1
+ bl FUN_02007558
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ mov r3, #0
+ lsl r1, r0, #1
+ ldr r0, _0224F69C ; =0x0225E84A
+ ldrh r0, [r0, r1]
+ mov r1, #0x10
+ add r2, r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007E68
+ ldr r0, [r4, #4]
+ mov r1, #6
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ bl MOD08_022285A4
+ add r0, r4, #0
+ add r0, #0x84
+ ldrb r0, [r0]
+ cmp r0, #2
+ ldr r0, _0224F6A0 ; =0x00000706
+ bne _0224F498
+ mov r1, #0x75
+ bl FUN_020054A8
+ b _0224F4A0
+_0224F498:
+ mov r1, #0x74
+ mvn r1, r1
+ bl FUN_020054A8
+_0224F4A0:
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x9c
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F4B0:
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_022299E8
+ cmp r0, #1
+ beq _0224F4CC
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x83
+ strb r1, [r0]
+_0224F4CC:
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ ldr r0, [r0, #0x20]
+ bl FUN_0200782C
+ mov r1, #1
+ lsl r1, r1, #8
+ cmp r0, r1
+ bne _0224F5B2
+ ldr r0, [r4, #8]
+ bl MOD08_022285B4
+ cmp r0, #0
+ bne _0224F5B2
+ add r0, r4, #0
+ add r0, #0x84
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _0224F534
+ ldr r0, [r4, #4]
+ mov r1, #1
+ ldr r0, [r0, #0x20]
+ bl FUN_02007314
+ ldr r0, [r4, #4]
+ mov r1, #0x2d
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r1, #5
+ add r2, r4, #0
+ str r1, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ mov r3, #0x75
+ bl FUN_02069FB0
+ b _0224F55E
+_0224F534:
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r3, #5
+ add r2, r4, #0
+ str r3, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ sub r3, #0x7a
+ bl FUN_02069FB0
+_0224F55E:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ add r1, r4, #0
+ add r1, #0x8d
+ ldrb r1, [r1]
+ add r2, r4, #0
+ add r3, r4, #0
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ add r2, #0x86
+ add r3, #0x84
+ str r1, [sp, #8]
+ ldr r1, [r4, #4]
+ ldrh r2, [r2]
+ ldrb r3, [r3]
+ ldr r1, [r1, #0x20]
+ bl FUN_02069038
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ mov r2, #0
+ add r3, r2, #0
+ lsl r1, r0, #1
+ ldr r0, _0224F69C ; =0x0225E84A
+ ldrh r0, [r0, r1]
+ mov r1, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007E68
+ mov r0, #5
+ add r4, #0x83
+ add sp, #0x9c
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F5B2:
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ ldr r0, [r0, #0x20]
+ bl FUN_0200782C
+ mov r2, #1
+ lsl r2, r2, #8
+ cmp r0, r2
+ ldr r0, [r4, #4]
+ blt _0224F6BC
+ ldr r0, [r0, #0x20]
+ mov r1, #0xc
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r0, #0x20]
+ add r2, #0xf3
+ bl FUN_02007558
+ add r0, r4, #0
+ add r0, #0x84
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _0224F628
+ ldr r0, [r4, #4]
+ mov r1, #1
+ ldr r0, [r0, #0x20]
+ bl FUN_02007314
+ ldr r0, [r4, #4]
+ mov r1, #0x2d
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r1, #5
+ add r2, r4, #0
+ str r1, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ mov r3, #0x75
+ bl FUN_02069FB0
+ b _0224F652
+_0224F628:
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r3, #5
+ add r2, r4, #0
+ str r3, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ sub r3, #0x7a
+ bl FUN_02069FB0
+_0224F652:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ add r1, r4, #0
+ add r1, #0x8d
+ ldrb r1, [r1]
+ add r2, r4, #0
+ add r3, r4, #0
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ add r2, #0x86
+ add r3, #0x84
+ str r1, [sp, #8]
+ ldr r1, [r4, #4]
+ ldrh r2, [r2]
+ ldrb r3, [r3]
+ ldr r1, [r1, #0x20]
+ bl FUN_02069038
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ mov r2, #0
+ mov r3, #1
+ lsl r1, r0, #1
+ ldr r0, _0224F69C ; =0x0225E84A
+ b _0224F6A4
+ .align 2, 0
+_0224F690: .word 0x0222D552
+_0224F694: .word 0x0222D554
+_0224F698: .word 0x0222D538
+_0224F69C: .word 0x0225E84A
+_0224F6A0: .word 0x00000706
+_0224F6A4:
+ ldrh r0, [r0, r1]
+ mov r1, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007E68
+ mov r0, #5
+ add r4, #0x83
+ add sp, #0x9c
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F6BC:
+ ldr r0, [r0, #0x20]
+ mov r1, #0xc
+ mov r2, #0x20
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0xd
+ ldr r0, [r0, #0x20]
+ mov r2, #0x20
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0x90
+ ldrsb r1, [r4, r1]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007F34
+ add sp, #0x9c
+ pop {r4, r5, pc}
+_0224F6E2:
+ ldr r0, [r4, #8]
+ bl MOD08_022285B4
+ cmp r0, #0
+ bne _0224F7C0
+ mov r0, #6
+ add r4, #0x83
+ add sp, #0x9c
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F6F6:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ bl FUN_02014D7C
+ cmp r0, #1
+ bne _0224F7C0
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007390
+ cmp r0, #0
+ bne _0224F7C0
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A2C
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x88
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ bl MOD08_02228618
+ add r0, r4, #0
+ add r0, #0x92
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0224F772
+ mov r0, #5
+ bl MOD08_02211F5C
+ str r0, [r4, #0x24]
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r1, [r0]
+ mov r0, #0xb
+ add r2, sp, #0x44
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x24]
+ add r3, sp, #0x44
+ bl MOD11_02254404
+ mov r0, #7
+ add r4, #0x83
+ add sp, #0x9c
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F772:
+ mov r0, #0xff
+ add r4, #0x83
+ add sp, #0x9c
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F77C:
+ ldr r0, [r4, #0x24]
+ bl MOD08_02212384
+ ldr r0, [r4, #0x24]
+ bl MOD08_022123A0
+ cmp r0, #0
+ bne _0224F7C0
+ ldr r0, [r4, #0x24]
+ bl MOD08_022123B0
+ ldr r0, [r4, #0x24]
+ bl MOD08_02212024
+ mov r0, #0xff
+ add r4, #0x83
+ add sp, #0x9c
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F7A2:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x81
+ add r2, #0x80
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0224F7C0:
+ add sp, #0x9c
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD11_0224F7C4
+MOD11_0224F7C4: ; 0x0224F7C4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c4
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r1, r4, #0
+ add r1, #0x83
+ ldrb r1, [r1]
+ add r5, r0, #0
+ cmp r1, #0xb
+ bls _0224F7E0
+ b _0224FD68
+_0224F7E0:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224F7EC: ; jump table
+ .short _0224F804 - _0224F7EC - 2 ; case 0
+ .short _0224F90C - _0224F7EC - 2 ; case 1
+ .short _0224F958 - _0224F7EC - 2 ; case 2
+ .short _0224F9E2 - _0224F7EC - 2 ; case 3
+ .short _0224F9FA - _0224F7EC - 2 ; case 4
+ .short _0224FC14 - _0224F7EC - 2 ; case 5
+ .short _0224FC28 - _0224F7EC - 2 ; case 6
+ .short _0224FC9C - _0224F7EC - 2 ; case 7
+ .short _0224FCC0 - _0224F7EC - 2 ; case 8
+ .short _0224FC9C - _0224F7EC - 2 ; case 9
+ .short _0224FD0C - _0224F7EC - 2 ; case 10
+ .short _0224FC9C - _0224F7EC - 2 ; case 11
+_0224F804:
+ add r0, r4, #0
+ add r0, #0x82
+ ldrb r1, [r0]
+ ldr r0, _0224FB58 ; =0x0225E818
+ ldrb r0, [r0, r1]
+ str r0, [sp, #0x44]
+ mov r0, #5
+ str r0, [sp, #0x48]
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r0, [r0]
+ str r0, [sp, #0x50]
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ str r0, [sp, #0x54]
+ ldr r0, [r4]
+ bl MOD11_02230078
+ str r0, [sp, #0x60]
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ str r0, [sp, #0x64]
+ mov r2, #1
+ mov r1, #0
+ add r0, r4, #0
+ str r2, [sp, #0x58]
+ str r1, [sp, #0x5c]
+ add r0, #0x94
+ ldrh r0, [r0]
+ cmp r0, #1
+ bne _0224F84A
+ str r2, [sp, #0x4c]
+ b _0224F84C
+_0224F84A:
+ str r1, [sp, #0x4c]
+_0224F84C:
+ add r0, sp, #0x44
+ bl MOD08_02229918
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_02230068
+ add r1, r4, #0
+ add r1, #0x86
+ add r5, r0, #0
+ ldrh r1, [r1]
+ add r0, sp, #0x30
+ bl FUN_02069010
+ add r0, r4, #0
+ add r0, #0x82
+ ldrb r3, [r0]
+ mov r0, #6
+ add r2, r4, #0
+ add r1, r3, #0
+ mul r1, r0
+ ldr r0, _0224FB5C ; =0x0222D552
+ add r2, #0x14
+ ldrsh r0, [r0, r1]
+ str r0, [sp]
+ ldr r0, _0224FB60 ; =0x0222D554
+ ldrsh r0, [r0, r1]
+ add r1, r5, #0
+ lsl r5, r3, #2
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x85
+ ldrb r0, [r0]
+ ldr r3, _0224FB64 ; =0x0222D538
+ str r0, [sp, #8]
+ mov r0, #0x90
+ ldrsb r0, [r4, r0]
+ ldrsh r3, [r3, r5]
+ str r0, [sp, #0xc]
+ mov r0, #0x91
+ ldrsb r0, [r4, r0]
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0x93
+ ldrb r0, [r0]
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r0, [r0]
+ str r0, [sp, #0x18]
+ add r0, sp, #0x30
+ str r0, [sp, #0x1c]
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [r4]
+ bl MOD11_02253A88
+ ldr r1, [r4, #4]
+ mov r2, #0
+ str r0, [r1, #0x20]
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ ldr r0, [r0, #0x20]
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #0xd
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #0x2c
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #6
+ ldr r0, [r0, #0x20]
+ mov r2, #1
+ bl FUN_02007558
+ ldr r0, [r4]
+ mov r1, #5
+ bl MOD08_0221590C
+ str r0, [r4, #0x10]
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x1c4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224F90C:
+ add r1, sp, #0x24
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r4, #0
+ add r0, #0x82
+ ldrb r0, [r0]
+ add r1, r4, #0
+ add r2, r4, #0
+ str r0, [sp, #0x24]
+ add r1, #0x81
+ add r2, #0x8c
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_02230014
+ str r0, [sp, #0x2c]
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ add r1, sp, #0x24
+ str r0, [sp, #0x28]
+ mov r0, #5
+ bl MOD08_02228218
+ str r0, [r4, #8]
+ bl MOD08_02228524
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x1c4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224F958:
+ ldr r0, [r4, #0xc]
+ bl MOD08_02229A80
+ cmp r0, #0
+ beq _0224F96C
+ add r0, r4, #0
+ add r0, #0x94
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _0224F980
+_0224F96C:
+ ldr r0, [r4, #8]
+ bl MOD08_02228570
+ cmp r0, #1
+ bne _0224F980
+ ldr r0, [r4, #0xc]
+ bl MOD08_02229A00
+ cmp r0, #1
+ beq _0224F982
+_0224F980:
+ b _0224FD86
+_0224F982:
+ ldr r0, [r4, #0x10]
+ bl MOD08_02215918
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ mov r3, #0
+ lsl r1, r0, #1
+ ldr r0, _0224FB68 ; =0x0225E84A
+ ldrh r0, [r0, r1]
+ mov r1, #0x10
+ add r2, r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007E68
+ ldr r0, [r4, #4]
+ mov r1, #6
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ bl MOD08_022285A4
+ add r0, r4, #0
+ add r0, #0x84
+ ldrb r0, [r0]
+ cmp r0, #2
+ ldr r0, _0224FB6C ; =0x00000706
+ bne _0224F9CA
+ mov r1, #0x75
+ bl FUN_020054A8
+ b _0224F9D2
+_0224F9CA:
+ mov r1, #0x74
+ mvn r1, r1
+ bl FUN_020054A8
+_0224F9D2:
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x1c4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224F9E2:
+ ldr r0, [r4, #0xc]
+ bl MOD08_022299E8
+ cmp r0, #1
+ beq _0224F9FA
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x83
+ strb r1, [r0]
+_0224F9FA:
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ ldr r0, [r0, #0x20]
+ bl FUN_0200782C
+ mov r1, #1
+ lsl r1, r1, #8
+ cmp r0, r1
+ bne _0224FAE0
+ ldr r0, [r4, #8]
+ bl MOD08_022285B4
+ cmp r0, #0
+ bne _0224FAE0
+ add r0, r4, #0
+ add r0, #0x84
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _0224FA62
+ ldr r0, [r4, #4]
+ mov r1, #1
+ ldr r0, [r0, #0x20]
+ bl FUN_02007314
+ ldr r0, [r4, #4]
+ mov r1, #0x2d
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r1, #5
+ add r2, r4, #0
+ str r1, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ mov r3, #0x75
+ bl FUN_02069FB0
+ b _0224FA8C
+_0224FA62:
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r3, #5
+ add r2, r4, #0
+ str r3, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ sub r3, #0x7a
+ bl FUN_02069FB0
+_0224FA8C:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ add r1, r4, #0
+ add r1, #0x8d
+ ldrb r1, [r1]
+ add r2, r4, #0
+ add r3, r4, #0
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ add r2, #0x86
+ add r3, #0x84
+ str r1, [sp, #8]
+ ldr r1, [r4, #4]
+ ldrh r2, [r2]
+ ldrb r3, [r3]
+ ldr r1, [r1, #0x20]
+ bl FUN_02069038
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ mov r2, #0
+ add r3, r2, #0
+ lsl r1, r0, #1
+ ldr r0, _0224FB68 ; =0x0225E84A
+ ldrh r0, [r0, r1]
+ mov r1, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007E68
+ mov r0, #5
+ add r4, #0x83
+ add sp, #0x1c4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FAE0:
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ ldr r0, [r0, #0x20]
+ bl FUN_0200782C
+ mov r2, #1
+ lsl r2, r2, #8
+ cmp r0, r2
+ ldr r0, [r4, #4]
+ blt _0224FBEE
+ ldr r0, [r0, #0x20]
+ mov r1, #0xc
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r0, #0x20]
+ add r2, #0xf3
+ bl FUN_02007558
+ add r0, r4, #0
+ add r0, #0x84
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _0224FB70
+ ldr r0, [r4, #4]
+ mov r1, #1
+ ldr r0, [r0, #0x20]
+ bl FUN_02007314
+ ldr r0, [r4, #4]
+ mov r1, #0x2d
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r1, #5
+ add r2, r4, #0
+ str r1, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ mov r3, #0x75
+ bl FUN_02069FB0
+ b _0224FB9A
+ nop
+_0224FB58: .word 0x0225E818
+_0224FB5C: .word 0x0222D552
+_0224FB60: .word 0x0222D554
+_0224FB64: .word 0x0222D538
+_0224FB68: .word 0x0225E84A
+_0224FB6C: .word 0x00000706
+_0224FB70:
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r3, #5
+ add r2, r4, #0
+ str r3, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ sub r3, #0x7a
+ bl FUN_02069FB0
+_0224FB9A:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ add r1, r4, #0
+ add r1, #0x8d
+ ldrb r1, [r1]
+ add r2, r4, #0
+ add r3, r4, #0
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ add r2, #0x86
+ add r3, #0x84
+ str r1, [sp, #8]
+ ldr r1, [r4, #4]
+ ldrh r2, [r2]
+ ldrb r3, [r3]
+ ldr r1, [r1, #0x20]
+ bl FUN_02069038
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ mov r2, #0
+ mov r3, #1
+ lsl r1, r0, #1
+ ldr r0, _0224FD8C ; =0x0225E84A
+ ldrh r0, [r0, r1]
+ mov r1, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007E68
+ mov r0, #5
+ add r4, #0x83
+ add sp, #0x1c4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FBEE:
+ ldr r0, [r0, #0x20]
+ mov r1, #0xc
+ mov r2, #0x20
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0xd
+ ldr r0, [r0, #0x20]
+ mov r2, #0x20
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0x90
+ ldrsb r1, [r4, r1]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007F34
+ add sp, #0x1c4
+ pop {r3, r4, r5, r6, pc}
+_0224FC14:
+ ldr r0, [r4, #8]
+ bl MOD08_022285B4
+ cmp r0, #0
+ bne _0224FC48
+ mov r0, #6
+ add r4, #0x83
+ add sp, #0x1c4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FC28:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ bl FUN_02014D7C
+ cmp r0, #1
+ bne _0224FC48
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007390
+ cmp r0, #0
+ beq _0224FC4A
+_0224FC48:
+ b _0224FD86
+_0224FC4A:
+ ldr r0, [r4, #0xc]
+ bl MOD08_02229A2C
+ ldr r0, [r4, #8]
+ bl MOD08_02228618
+ add r0, r4, #0
+ add r0, #0x92
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0224FC92
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r1, [r0]
+ mov r0, #0xb
+ add r2, sp, #0x16c
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x16c
+ bl MOD11_02254404
+ mov r0, #7
+ add r4, #0x83
+ add sp, #0x1c4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FC92:
+ mov r0, #8
+ add r4, #0x83
+ add sp, #0x1c4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FC9C:
+ bl MOD08_02212384
+ add r0, r5, #0
+ bl MOD08_022123A0
+ cmp r0, #0
+ bne _0224FD86
+ add r0, r5, #0
+ bl MOD08_022123B0
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x1c4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FCC0:
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0224FD02
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r1, [r0]
+ mov r0, #0xf
+ add r2, sp, #0x114
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x114
+ bl MOD11_02254404
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x1c4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FD02:
+ mov r0, #0xff
+ add r4, #0x83
+ add sp, #0x1c4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FD0C:
+ add r3, r4, #0
+ add r3, #0x81
+ ldrb r3, [r3]
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x28
+ add r2, sp, #0xc4
+ bl MOD11_0225452C
+ add r0, sp, #0xc4
+ mov r1, #5
+ bl MOD08_0222A568
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r1, [r0]
+ mov r0, #0x10
+ add r2, sp, #0x6c
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x6c
+ bl MOD11_02254404
+ mov r0, #0x1a
+ ldr r1, [r4, #4]
+ mov r2, #1
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x1c4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FD68:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x81
+ add r2, #0x80
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_0224FD86:
+ add sp, #0x1c4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0224FD8C: .word 0x0225E84A
+
+ thumb_func_start MOD11_0224FD90
+MOD11_0224FD90: ; 0x0224FD90
+ push {r4, r5, r6, lr}
+ sub sp, #0x138
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r1, r4, #0
+ add r1, #0x6b
+ ldrb r1, [r1]
+ add r5, r0, #0
+ cmp r1, #8
+ bhi _0224FE7A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224FDB6: ; jump table
+ .short _0224FDC8 - _0224FDB6 - 2 ; case 0
+ .short _0224FE6C - _0224FDB6 - 2 ; case 1
+ .short _0224FE10 - _0224FDB6 - 2 ; case 2
+ .short _0224FE6C - _0224FDB6 - 2 ; case 3
+ .short _0224FE92 - _0224FDB6 - 2 ; case 4
+ .short _0224FF36 - _0224FDB6 - 2 ; case 5
+ .short _0224FF50 - _0224FDB6 - 2 ; case 6
+ .short _0224FFA6 - _0224FDB6 - 2 ; case 7
+ .short _0224FFC0 - _0224FDB6 - 2 ; case 8
+_0224FDC8:
+ ldr r0, [r4, #0x70]
+ cmp r0, #0
+ beq _0224FE06
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r1, [r0]
+ mov r0, #0xf
+ add r2, sp, #0xe0
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0xe0
+ bl MOD11_02254404
+ add r0, r4, #0
+ add r0, #0x6b
+ ldrb r0, [r0]
+ add r4, #0x6b
+ add sp, #0x138
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FE06:
+ mov r0, #4
+ add r4, #0x6b
+ add sp, #0x138
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FE10:
+ add r3, r4, #0
+ add r3, #0x69
+ ldrb r3, [r3]
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x10
+ add r2, sp, #0x90
+ bl MOD11_0225452C
+ add r0, sp, #0x90
+ mov r1, #5
+ bl MOD08_0222A494
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r1, [r0]
+ mov r0, #0x10
+ add r2, sp, #0x38
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x38
+ bl MOD11_02254404
+ mov r0, #0x1a
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x6b
+ ldrb r0, [r0]
+ add r4, #0x6b
+ add sp, #0x138
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FE6C:
+ bl MOD08_02212384
+ add r0, r5, #0
+ bl MOD08_022123A0
+ cmp r0, #0
+ beq _0224FE7C
+_0224FE7A:
+ b _0224FFDE
+_0224FE7C:
+ add r0, r5, #0
+ bl MOD08_022123B0
+ add r0, r4, #0
+ add r0, #0x6b
+ ldrb r0, [r0]
+ add r4, #0x6b
+ add sp, #0x138
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FE92:
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r1, [r0]
+ mov r0, #1
+ tst r0, r1
+ beq _0224FEDA
+ ldr r0, _0224FFE4 ; =0x0225E818
+ ldrb r0, [r0, r1]
+ str r0, [sp, #0x10]
+ mov r0, #5
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r0, [r0]
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ add r0, #0x6e
+ ldrh r0, [r0]
+ str r0, [sp, #0x20]
+ ldr r0, [r4]
+ bl MOD11_02230078
+ str r0, [sp, #0x2c]
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ str r0, [sp, #0x30]
+ mov r0, #1
+ str r0, [sp, #0x24]
+ mov r0, #0
+ str r0, [sp, #0x28]
+ add r0, sp, #0x10
+ bl MOD08_02229918
+ str r0, [r4, #0xc]
+_0224FEDA:
+ add r0, r4, #0
+ mov r1, #5
+ add r0, #0x6b
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x6e
+ ldrh r0, [r0]
+ mov r2, #0x10
+ lsl r1, r0, #1
+ ldr r0, _0224FFE8 ; =0x0225E84A
+ ldrh r0, [r0, r1]
+ mov r1, #0
+ add r3, r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #8]
+ bl FUN_02007E68
+ add r4, #0x6a
+ ldrb r0, [r4]
+ cmp r0, #5
+ bhi _0224FFDE
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224FF10: ; jump table
+ .short _0224FF1C - _0224FF10 - 2 ; case 0
+ .short _0224FF2A - _0224FF10 - 2 ; case 1
+ .short _0224FF1C - _0224FF10 - 2 ; case 2
+ .short _0224FF2A - _0224FF10 - 2 ; case 3
+ .short _0224FF1C - _0224FF10 - 2 ; case 4
+ .short _0224FF2A - _0224FF10 - 2 ; case 5
+_0224FF1C:
+ mov r1, #0x74
+ ldr r0, _0224FFEC ; =0x00000706
+ mvn r1, r1
+ bl FUN_020054A8
+ add sp, #0x138
+ pop {r4, r5, r6, pc}
+_0224FF2A:
+ ldr r0, _0224FFEC ; =0x00000706
+ mov r1, #0x75
+ bl FUN_020054A8
+ add sp, #0x138
+ pop {r4, r5, r6, pc}
+_0224FF36:
+ ldr r0, [r4, #8]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _0224FFDE
+ add r0, r4, #0
+ add r0, #0x6b
+ ldrb r0, [r0]
+ add r4, #0x6b
+ add sp, #0x138
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FF50:
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #8]
+ sub r2, #0x2c
+ bl FUN_020079E0
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #8]
+ sub r2, #0x2d
+ bl FUN_020079E0
+ add r1, r4, #0
+ add r1, #0x6c
+ ldrb r1, [r1]
+ ldr r0, [r4, #8]
+ bl FUN_02007F34
+ ldr r0, [r4, #8]
+ mov r1, #0xc
+ bl FUN_0200782C
+ cmp r0, #0
+ bgt _0224FFDE
+ ldr r0, [r4, #8]
+ bl FUN_02007534
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r1, [r0]
+ mov r0, #1
+ tst r0, r1
+ beq _0224FF9C
+ mov r0, #7
+ add r4, #0x6b
+ add sp, #0x138
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FF9C:
+ mov r0, #8
+ add r4, #0x6b
+ add sp, #0x138
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FFA6:
+ ldr r0, [r4, #0xc]
+ bl MOD08_022299E8
+ cmp r0, #0
+ bne _0224FFDE
+ ldr r0, [r4, #0xc]
+ bl MOD08_02229A2C
+ mov r0, #8
+ add r4, #0x6b
+ add sp, #0x138
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FFC0:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x69
+ add r2, #0x68
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_0224FFDE:
+ add sp, #0x138
+ pop {r4, r5, r6, pc}
+ nop
+_0224FFE4: .word 0x0225E818
+_0224FFE8: .word 0x0225E84A
+_0224FFEC: .word 0x00000706
+
+ thumb_func_start MOD11_0224FFF0
+MOD11_0224FFF0: ; 0x0224FFF0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0
+ beq _02250002
+ cmp r0, #1
+ beq _02250048
+ pop {r3, r4, r5, pc}
+_02250002:
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #4]
+ sub r2, #0x2c
+ bl FUN_020079E0
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #4]
+ sub r2, #0x2d
+ bl FUN_020079E0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0225002E
+ sub r0, r0, #1
+ strb r0, [r4, #0xc]
+ mov r1, #1
+ ldr r0, [r4, #4]
+ sub r2, r1, #2
+ bl FUN_020079E0
+_0225002E:
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ bl FUN_0200782C
+ cmp r0, #0
+ bgt _0225005E
+ ldr r0, [r4, #4]
+ bl FUN_02007534
+ ldrb r0, [r4, #0xb]
+ add r0, r0, #1
+ strb r0, [r4, #0xb]
+ pop {r3, r4, r5, pc}
+_02250048:
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0225005E:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02250060
+MOD11_02250060: ; 0x02250060
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ add r5, r0, #0
+ ldr r0, [r4, #0x20]
+ cmp r0, #0x21
+ bge _0225009C
+ ldrb r0, [r4, #0x12]
+ cmp r0, #2
+ blo _0225009C
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _02250086
+ cmp r0, #2
+ bne _0225009C
+_02250086:
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ mov r1, #3
+ mov r2, #1
+ mov r3, #4
+ bl FUN_020179E0
+ ldr r0, [r4, #0x20]
+ add r0, r0, #1
+ str r0, [r4, #0x20]
+_0225009C:
+ ldrb r0, [r4, #0x12]
+ cmp r0, #4
+ bls _022500A4
+ b _02250332
+_022500A4:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022500B0: ; jump table
+ .short _022500BA - _022500B0 - 2 ; case 0
+ .short _022500C4 - _022500B0 - 2 ; case 1
+ .short _022500D2 - _022500B0 - 2 ; case 2
+ .short _022502CA - _022500B0 - 2 ; case 3
+ .short _022502E4 - _022500B0 - 2 ; case 4
+_022500BA:
+ mov r0, #0x1c
+ str r0, [r4, #0x1c]
+ ldrb r0, [r4, #0x12]
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+_022500C4:
+ ldr r0, [r4, #0x1c]
+ sub r0, r0, #1
+ str r0, [r4, #0x1c]
+ bne _022501A6
+ ldrb r0, [r4, #0x12]
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+_022500D2:
+ ldrb r0, [r4, #0x13]
+ add r1, sp, #0
+ cmp r0, #2
+ ldr r0, [r4, #8]
+ bne _022501D2
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ beq _022500F0
+ cmp r0, #3
+ bne _02250112
+_022500F0:
+ add r1, sp, #0
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ cmp r0, #0xc0
+ ldr r0, [r4, #8]
+ bge _02250108
+ ldr r0, [r0]
+ mov r1, #8
+ mov r2, #0
+ bl FUN_0200C82C
+ b _02250112
+_02250108:
+ ldr r0, [r0]
+ mov r1, #0xc0
+ mov r2, #0x58
+ bl FUN_0200C714
+_02250112:
+ ldr r0, [r4, #8]
+ add r1, sp, #0
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ beq _02250136
+ cmp r0, #3
+ bne _02250146
+ cmp r5, #3
+ beq _02250136
+ cmp r5, #0x83
+ beq _02250136
+ cmp r5, #7
+ bne _02250146
+_02250136:
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_02007558
+ b _02250196
+_02250146:
+ cmp r0, #3
+ bne _02250170
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r0, r1
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x18
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #4]
+ neg r2, r2
+ bl FUN_020079E0
+ b _02250196
+_02250170:
+ cmp r0, #5
+ bne _02250196
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r1, r0
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x10
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #4]
+ bl FUN_020079E0
+_02250196:
+ mov r0, #0x14
+ ldrsh r5, [r4, r0]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ cmp r0, r5
+ bge _022501A8
+_022501A6:
+ b _02250332
+_022501A8:
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ beq _022501BC
+ cmp r0, #3
+ bne _022501C8
+_022501BC:
+ ldr r0, [r4, #8]
+ mov r1, #0xc0
+ ldr r0, [r0]
+ mov r2, #0x58
+ bl FUN_0200C714
+_022501C8:
+ ldrb r0, [r4, #0x12]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_022501D2:
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _022501E6
+ cmp r0, #2
+ bne _02250208
+_022501E6:
+ add r0, sp, #0
+ mov r1, #2
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x40
+ ldr r0, [r4, #8]
+ ble _022501FE
+ ldr r0, [r0]
+ sub r1, #0xa
+ mov r2, #0
+ bl FUN_0200C82C
+ b _02250208
+_022501FE:
+ ldr r0, [r0]
+ mov r1, #0x40
+ mov r2, #0x88
+ bl FUN_0200C714
+_02250208:
+ ldr r0, [r4, #8]
+ add r1, sp, #0
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _02250230
+ cmp r0, #2
+ bne _02250240
+ cmp r5, #3
+ beq _02250230
+ cmp r5, #0x83
+ beq _02250230
+ cmp r5, #0x13
+ beq _02250230
+ cmp r5, #7
+ bne _02250240
+_02250230:
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_02007558
+ b _02250290
+_02250240:
+ cmp r0, #2
+ bne _02250268
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r1, r0
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x18
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #4]
+ bl FUN_020079E0
+ b _02250290
+_02250268:
+ cmp r0, #4
+ bne _02250290
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r0, r1
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x10
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #4]
+ neg r2, r2
+ bl FUN_020079E0
+_02250290:
+ mov r0, #0x14
+ ldrsh r5, [r4, r0]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ cmp r0, r5
+ bgt _02250332
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _022502B4
+ cmp r0, #2
+ bne _022502C0
+_022502B4:
+ ldr r0, [r4, #8]
+ mov r1, #0x40
+ ldr r0, [r0]
+ mov r2, #0x88
+ bl FUN_0200C714
+_022502C0:
+ ldrb r0, [r4, #0x12]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_022502CA:
+ ldrb r1, [r4, #0x11]
+ ldrb r2, [r4, #0x10]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_022502E4:
+ ldrb r0, [r4, #0x13]
+ cmp r0, #2
+ ldr r0, [r4, #4]
+ bne _0225030E
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ mov r1, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ beq _02250300
+ cmp r0, #3
+ bne _0225032E
+_02250300:
+ ldr r0, [r4, #8]
+ mov r1, #0xc0
+ ldr r0, [r0]
+ mov r2, #0x58
+ bl FUN_0200C714
+ b _0225032E
+_0225030E:
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ mov r1, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _02250322
+ cmp r0, #2
+ bne _0225032E
+_02250322:
+ ldr r0, [r4, #8]
+ mov r1, #0x40
+ ldr r0, [r0]
+ mov r2, #0x88
+ bl FUN_0200C714
+_0225032E:
+ mov r0, #3
+ strb r0, [r4, #0x12]
+_02250332:
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02250338
+MOD11_02250338: ; 0x02250338
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0xd0
+ ldr r3, _022505EC ; =0x0225E8D0
+ add r4, r1, #0
+ add r5, r0, #0
+ add r2, sp, #0x30
+ mov r1, #0x50
+_02250346:
+ ldrh r0, [r3]
+ add r3, r3, #2
+ strh r0, [r2]
+ add r2, r2, #2
+ sub r1, r1, #1
+ bne _02250346
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ add r6, r0, #0
+ ldrb r0, [r4, #0xa]
+ cmp r0, #6
+ bls _02250362
+ b _0225088A
+_02250362:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225036E: ; jump table
+ .short _0225037C - _0225036E - 2 ; case 0
+ .short _02250494 - _0225036E - 2 ; case 1
+ .short _0225059E - _0225036E - 2 ; case 2
+ .short _0225073C - _0225036E - 2 ; case 3
+ .short _022507F2 - _0225036E - 2 ; case 4
+ .short _0225084C - _0225036E - 2 ; case 5
+ .short _02250874 - _0225036E - 2 ; case 6
+_0225037C:
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ bne _0225038A
+ mov r0, #1
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225038A:
+ cmp r0, #4
+ bhi _022503A4
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225039A: ; jump table
+ .short _022503A4 - _0225039A - 2 ; case 0
+ .short _022503A4 - _0225039A - 2 ; case 1
+ .short _022503B2 - _0225039A - 2 ; case 2
+ .short _022503C0 - _0225039A - 2 ; case 3
+ .short _022503CE - _0225039A - 2 ; case 4
+_022503A4:
+ mov r0, #0xf
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [r4, #0x18]
+ mov r0, #5
+ str r0, [sp, #0x18]
+ b _022503DC
+_022503B2:
+ mov r0, #0xc
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, _022505F0 ; =0x00000111
+ str r0, [sp, #0x18]
+ b _022503DC
+_022503C0:
+ mov r0, #0xd
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, _022505F4 ; =0x00000112
+ str r0, [sp, #0x18]
+ b _022503DC
+_022503CE:
+ mov r0, #0xf
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [r4, #0x18]
+ mov r0, #0x11
+ lsl r0, r0, #4
+ str r0, [sp, #0x18]
+_022503DC:
+ mov r0, #5
+ str r0, [sp, #0xc]
+ mov r0, #4
+ str r0, [sp, #0x10]
+ ldrb r0, [r4, #9]
+ str r0, [sp, #0x14]
+ ldr r0, [r4]
+ bl MOD11_02230078
+ str r0, [sp, #0x24]
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ str r0, [sp, #0x28]
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [r4]
+ str r0, [sp, #0x2c]
+ add r0, sp, #8
+ bl MOD08_02229918
+ ldr r1, [r4, #4]
+ add r1, #0x88
+ str r0, [r1]
+ ldr r0, [r4, #4]
+ mov r1, #0x64
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_0222A00C
+ ldr r0, [r4, #4]
+ mov r1, #2
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_0222A018
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_0222A008
+ mov r1, #0
+ ldr r0, [r4]
+ ldr r2, [r4, #0xc]
+ add r3, r1, #0
+ bl MOD11_02254308
+ ldr r1, [r4, #4]
+ str r0, [r1, #0x18]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ add r1, sp, #4
+ strh r0, [r1, #2]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ add r3, sp, #4
+ strh r0, [r3]
+ ldr r0, [r4, #4]
+ mov r1, #2
+ mov r2, #0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C714
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C61C
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C5C0
+ ldr r0, [r4, #4]
+ mov r1, #6
+ ldr r0, [r0, #0x1c]
+ mov r2, #1
+ bl FUN_02007558
+ mov r0, #3
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_02250494:
+ ldrb r0, [r4, #0xb]
+ cmp r0, #2
+ ldr r0, [r4, #4]
+ bne _0225054A
+ ldr r0, [r0, #0x1c]
+ mov r1, #0
+ mov r2, #5
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ mov r1, #0x45
+ lsl r1, r1, #2
+ cmp r0, r1
+ blt _02250520
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A80
+ cmp r0, #0
+ beq _02250520
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229FE4
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A5C
+ mov r0, #2
+ tst r0, r6
+ beq _02250532
+ mov r0, #8
+ tst r0, r6
+ bne _02250532
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ add r4, r0, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #1
+ bl MOD08_02229FE4
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD08_02229A5C
+ add r4, #0x88
+ ldr r0, [r4]
+ mov r1, #0xc
+ bl MOD08_0222A024
+ add sp, #0xd0
+ pop {r3, r4, r5, r6, r7, pc}
+_02250520:
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ cmp r0, r1
+ bge _02250534
+_02250532:
+ b _0225088A
+_02250534:
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02007534
+ ldr r0, [r4, #4]
+ mov r1, #0
+ str r1, [r0, #0x1c]
+ mov r0, #6
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225054A:
+ ldr r0, [r0, #0x1c]
+ mov r1, #0
+ bl FUN_0200782C
+ add r1, sp, #4
+ strh r0, [r1, #2]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ add r3, sp, #4
+ strh r0, [r3]
+ ldr r0, [r4, #4]
+ mov r1, #2
+ mov r2, #0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C714
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C61C
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C5C0
+ mov r0, #2
+ strb r0, [r4, #0xa]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02007534
+ ldr r0, [r4, #4]
+ mov r1, #0
+ str r1, [r0, #0x1c]
+ add sp, #0xd0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225059E:
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #4]
+ mov r1, #4
+ ldr r0, [r0, #0x18]
+ mvn r1, r1
+ mov r2, #0
+ bl FUN_0200C82C
+ ldr r0, [r4, #4]
+ add r1, sp, #4
+ ldr r0, [r0, #0x18]
+ add r1, #2
+ add r2, sp, #4
+ bl FUN_0200C7A0
+ ldr r1, [r4, #4]
+ add r0, r1, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _022505D0
+ b _022506E4
+_022505D0:
+ ldr r0, [r1, #0x18]
+ bl FUN_0200C630
+ ldr r1, [r4, #0xc]
+ str r0, [sp]
+ lsl r5, r0, #2
+ mov r0, #0x14
+ add r2, r1, #0
+ mul r2, r0
+ add r0, sp, #0x30
+ add r0, r0, r2
+ ldrsh r1, [r5, r0]
+ ldr r0, _022505F8 ; =0x00007FFF
+ b _022505FC
+ .align 2, 0
+_022505EC: .word 0x0225E8D0
+_022505F0: .word 0x00000111
+_022505F4: .word 0x00000112
+_022505F8: .word 0x00007FFF
+_022505FC:
+ cmp r1, r0
+ beq _022506E4
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229FE4
+ ldr r1, [r4, #0xc]
+ mov r0, #0x14
+ add r3, r1, #0
+ mul r3, r0
+ add r2, sp, #0x30
+ add r2, r2, r3
+ add r7, sp, #4
+ mov r1, #2
+ ldrsh r1, [r7, r1]
+ ldrsh r2, [r5, r2]
+ ldr r0, [r4, #4]
+ add r1, r1, r2
+ mov r2, #0
+ ldrsh r7, [r7, r2]
+ add r2, sp, #0x30
+ add r2, #2
+ add r2, r2, r3
+ ldrsh r2, [r5, r2]
+ add r0, #0x88
+ lsl r1, r1, #0x10
+ add r2, r7, r2
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02229FF0
+ ldr r0, [sp]
+ cmp r0, #3
+ bne _022506E4
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A80
+ cmp r0, #0
+ beq _022506E4
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A5C
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_0222A008
+ mov r0, #2
+ tst r0, r6
+ beq _022506E4
+ mov r0, #8
+ tst r0, r6
+ bne _022506E4
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ ldr r1, [r4, #0xc]
+ add r6, r0, #0
+ add r3, r1, #0
+ mov r0, #0x14
+ mul r3, r0
+ add r2, sp, #0x30
+ add r2, r2, r3
+ add r0, r6, #0
+ add r0, #0x88
+ add r7, sp, #4
+ mov r1, #2
+ ldrsh r1, [r7, r1]
+ ldrsh r2, [r5, r2]
+ ldr r0, [r0]
+ add r1, r1, r2
+ mov r2, #0
+ ldrsh r7, [r7, r2]
+ add r2, sp, #0x30
+ add r2, #2
+ add r2, r2, r3
+ ldrsh r2, [r5, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r7, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02229FF0
+ add r0, r6, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #1
+ bl MOD08_02229FE4
+ add r0, r6, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD08_02229A5C
+ add r6, #0x88
+ ldr r0, [r6]
+ mov r1, #1
+ bl MOD08_0222A008
+_022506E4:
+ add r1, sp, #4
+ mov r0, #2
+ ldrsh r1, [r1, r0]
+ sub r0, #0x2a
+ cmp r1, r0
+ ble _022506F2
+ b _0225088A
+_022506F2:
+ ldr r0, [r4]
+ bl MOD11_02230080
+ add r6, r0, #0
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02230260
+ asr r5, r0, #1
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C3DC
+ ldr r1, _02250890 ; =0x00004E2F
+ add r0, r6, #0
+ add r1, r5, r1
+ bl FUN_0200C358
+ ldr r1, _02250894 ; =0x00004E2A
+ add r0, r6, #0
+ add r1, r5, r1
+ bl FUN_0200C368
+ ldr r1, _02250898 ; =0x00004E27
+ add r0, r6, #0
+ add r1, r5, r1
+ bl FUN_0200C378
+ ldr r1, _02250898 ; =0x00004E27
+ add r0, r6, #0
+ add r1, r5, r1
+ bl FUN_0200C388
+ mov r0, #6
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225073C:
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #4]
+ add r1, sp, #4
+ ldr r0, [r0, #0x18]
+ add r1, #2
+ add r2, sp, #4
+ bl FUN_0200C7A0
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C630
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022507E2
+ ldr r2, [r4, #0xc]
+ mov r1, #0x14
+ add r3, r2, #0
+ mul r3, r1
+ add r1, sp, #0x30
+ lsl r6, r5, #2
+ add r1, r1, r3
+ ldrsh r1, [r6, r1]
+ ldr r2, _0225089C ; =0x00007FFF
+ cmp r1, r2
+ beq _022507E2
+ add r7, sp, #4
+ mov r2, #2
+ ldrsh r2, [r7, r2]
+ add r1, r2, r1
+ mov r2, #0
+ ldrsh r7, [r7, r2]
+ add r2, sp, #0x30
+ add r2, #2
+ add r2, r2, r3
+ ldrsh r2, [r6, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r7, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02229FF0
+ cmp r5, #3
+ bne _022507E2
+ ldr r0, [r4, #4]
+ ldr r6, [r4, #0x18]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A80
+ cmp r6, r0
+ beq _022507E2
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A5C
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_0222A018
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_0222A008
+ ldr r0, [r4, #0x18]
+ cmp r0, #3
+ beq _022507E2
+ ldr r0, _022508A0 ; =0x0000070A
+ bl FUN_020054C8
+_022507E2:
+ cmp r5, #4
+ bne _0225088A
+ mov r0, #8
+ str r0, [r4, #0x14]
+ mov r0, #4
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_022507F2:
+ ldr r0, [r4, #0x14]
+ sub r0, r0, #1
+ str r0, [r4, #0x14]
+ bne _0225088A
+ ldr r0, [r4]
+ bl MOD11_02230080
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C3DC
+ ldr r1, _02250890 ; =0x00004E2F
+ add r0, r5, #0
+ bl FUN_0200C358
+ ldr r1, _02250894 ; =0x00004E2A
+ add r0, r5, #0
+ bl FUN_0200C368
+ ldr r1, _02250898 ; =0x00004E27
+ add r0, r5, #0
+ bl FUN_0200C378
+ ldr r1, _02250898 ; =0x00004E27
+ add r0, r5, #0
+ bl FUN_0200C388
+ ldr r0, [r4, #4]
+ mov r1, #6
+ ldr r0, [r0, #0x1c]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x18]
+ cmp r0, #3
+ bne _02250844
+ mov r0, #6
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_02250844:
+ mov r0, #5
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225084C:
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_022299E8
+ cmp r0, #1
+ beq _0225088A
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A2C
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x88
+ str r1, [r0]
+ mov r0, #6
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_02250874:
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0225088A:
+ add sp, #0xd0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02250890: .word 0x00004E2F
+_02250894: .word 0x00004E2A
+_02250898: .word 0x00004E27
+_0225089C: .word 0x00007FFF
+_022508A0: .word 0x0000070A
+
+ thumb_func_start MOD11_022508A4
+MOD11_022508A4: ; 0x022508A4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ beq _022508B6
+ cmp r0, #1
+ beq _02250906
+ pop {r3, r4, r5, pc}
+_022508B6:
+ ldrb r0, [r4, #0xb]
+ cmp r0, #2
+ ldr r0, [r4, #4]
+ bne _022508E2
+ ldr r0, [r0, #0x1c]
+ mov r1, #0
+ mov r2, #5
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ cmp r0, r1
+ blt _0225092A
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_022508E2:
+ mov r1, #0
+ ldr r0, [r0, #0x1c]
+ sub r2, r1, #5
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ mov r1, #0x27
+ mvn r1, r1
+ cmp r0, r1
+ bgt _0225092A
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_02250906:
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02007534
+ ldr r0, [r4, #4]
+ mov r1, #0
+ str r1, [r0, #0x1c]
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0225092A:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0225092C
+MOD11_0225092C: ; 0x0225092C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ beq _0225093E
+ cmp r0, #1
+ beq _0225099A
+ pop {r3, r4, r5, pc}
+_0225093E:
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0
+ ldr r0, [r4, #4]
+ bne _02250970
+ mov r1, #0
+ mov r2, #5
+ bl FUN_020079E0
+ mov r0, #0xc
+ ldrsh r5, [r4, r0]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ cmp r0, r5
+ blt _022509B0
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_02007558
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_02250970:
+ mov r1, #0
+ sub r2, r1, #5
+ bl FUN_020079E0
+ mov r0, #0xc
+ ldrsh r5, [r4, r0]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ cmp r0, r5
+ bgt _022509B0
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_02007558
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_0225099A:
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_022509B0:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022509B4
+MOD11_022509B4: ; 0x022509B4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0
+ beq _022509C6
+ cmp r1, #1
+ beq _022509F6
+ b _02250A0A
+_022509C6:
+ add r0, r4, #0
+ add r0, #0x4d
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022509DE
+ add r0, r4, #0
+ add r0, #0x4d
+ ldrb r0, [r0]
+ add r4, #0x4d
+ sub r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_022509DE:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_02257334
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022572AC
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_022509F6:
+ add r0, r4, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _02250A26
+ add r0, r1, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02250A0A:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x24
+ add r2, #0x4c
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4, #0xc]
+ bl MOD11_022567B8
+ mov r0, #0
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02250A26:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02250A28
+MOD11_02250A28: ; 0x02250A28
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0
+ bne _02250A48
+ add r0, r4, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _02250A6C
+ add r0, r1, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02250A48:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x24
+ add r2, #0x4c
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4, #0xc]
+ bl MOD11_022567B8
+ mov r0, #0
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_022572AC
+_02250A6C:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02250A70
+MOD11_02250A70: ; 0x02250A70
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ add r4, r1, #0
+ str r0, [sp]
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldr r0, [r4]
+ bl MOD11_02230094
+ add r6, r0, #0
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ add r7, r0, #0
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldrb r0, [r4, #9]
+ cmp r1, r0
+ beq _02250AB2
+ ldr r0, [r4]
+ bl MOD11_02231380
+ add r5, r0, #0
+ b _02250AB4
+_02250AB2:
+ mov r5, #0
+_02250AB4:
+ ldrb r0, [r4, #0xa]
+ cmp r0, #8
+ bls _02250ABC
+ b _02250F3E
+_02250ABC:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02250AC8: ; jump table
+ .short _02250ADA - _02250AC8 - 2 ; case 0
+ .short _02250B16 - _02250AC8 - 2 ; case 1
+ .short _02250C04 - _02250AC8 - 2 ; case 2
+ .short _02250C1A - _02250AC8 - 2 ; case 3
+ .short _02250C2C - _02250AC8 - 2 ; case 4
+ .short _02250DA0 - _02250AC8 - 2 ; case 5
+ .short _02250DF2 - _02250AC8 - 2 ; case 6
+ .short _02250ED6 - _02250AC8 - 2 ; case 7
+ .short _02250F14 - _02250AC8 - 2 ; case 8
+_02250ADA:
+ mov r0, #0
+ add r1, r4, #0
+ add r2, sp, #0x34
+_02250AE0:
+ ldrh r3, [r1, #0x24]
+ add r1, r1, #2
+ strh r3, [r2]
+ add r3, r4, r0
+ add r3, #0x2c
+ ldrb r3, [r3]
+ strh r3, [r2, #8]
+ add r3, r4, r0
+ add r3, #0x30
+ ldrb r3, [r3]
+ add r0, r0, #1
+ strh r3, [r2, #0x10]
+ add r2, r2, #2
+ cmp r0, #4
+ blt _02250AE0
+ ldr r0, [r4]
+ bl MOD11_02230094
+ add r1, r4, #0
+ add r1, #0x34
+ ldrb r1, [r1]
+ add r2, sp, #0x34
+ bl MOD11_0225A760
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+_02250B16:
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r5, r0, #0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ add r1, r7, #0
+ tst r1, r0
+ beq _02250B9A
+ ldr r0, [r4]
+ bl MOD11_02231268
+ cmp r0, #0
+ beq _02250B3A
+ cmp r0, #1
+ beq _02250B66
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_02250B3A:
+ mov r0, #2
+ add r1, sp, #8
+ strb r0, [r1, #9]
+ add r0, r4, #0
+ add r0, #0x23
+ ldrb r0, [r0]
+ ldrb r2, [r4, #9]
+ mov r3, #0
+ lsl r0, r0, #8
+ orr r0, r2
+ str r0, [sp, #0x14]
+ ldr r0, _02250E84 ; =0x00000399
+ add r2, sp, #0x10
+ strh r0, [r1, #0xa]
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD11_0223178C
+ mov r0, #3
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250B66:
+ mov r1, #0
+ add r0, sp, #8
+ strb r1, [r0, #9]
+ ldr r0, [r4]
+ bl MOD11_0223021C
+ ldr r1, _02250E88 ; =0x000004CA
+ add r1, r0, r1
+ add r0, sp, #8
+ strh r1, [r0, #0xa]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #0x10
+ bl MOD11_0223178C
+ add r1, r4, #0
+ add r1, #0x35
+ strb r0, [r1]
+ mov r0, #2
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250B9A:
+ mov r1, #0x20
+ add r2, r7, #0
+ tst r2, r1
+ beq _02250BBA
+ mov r1, #8
+ add r0, sp, #8
+ strb r1, [r0, #9]
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02230140
+ str r0, [sp, #0x14]
+ ldr r1, _02250E8C ; =0x0000039A
+ add r0, sp, #8
+ strh r1, [r0, #0xa]
+ b _02250BF0
+_02250BBA:
+ lsl r1, r1, #4
+ tst r1, r7
+ beq _02250BD8
+ mov r1, #8
+ add r0, sp, #8
+ strb r1, [r0, #9]
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02230140
+ str r0, [sp, #0x14]
+ ldr r1, _02250E90 ; =0x000004C6
+ add r0, sp, #8
+ strh r1, [r0, #0xa]
+ b _02250BF0
+_02250BD8:
+ add r2, r4, #0
+ mov r1, #2
+ add r3, sp, #8
+ strb r1, [r3, #9]
+ add r2, #0x23
+ ldrb r2, [r2]
+ ldrb r1, [r4, #9]
+ sub r0, #0x67
+ lsl r2, r2, #8
+ orr r1, r2
+ str r1, [sp, #0x14]
+ strh r0, [r3, #0xa]
+_02250BF0:
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #0x10
+ mov r3, #0
+ bl MOD11_0223178C
+ mov r0, #3
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250C04:
+ add r0, r4, #0
+ add r0, #0x35
+ ldrb r0, [r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02250C36
+ mov r0, #3
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250C1A:
+ ldr r0, [r4, #4]
+ bl MOD11_02257208
+ ldr r0, [sp, #4]
+ ldr r1, [r4]
+ bl MOD11_0225464C
+ mov r0, #4
+ strb r0, [r4, #0xa]
+_02250C2C:
+ add r0, r6, #0
+ bl MOD11_02258F5C
+ cmp r0, #0
+ bne _02250C38
+_02250C36:
+ b _02250F3E
+_02250C38:
+ ldrb r1, [r4, #9]
+ add r0, sp, #8
+ strb r1, [r0, #1]
+ add r1, r4, #0
+ add r1, #0x34
+ ldrb r1, [r1]
+ strb r1, [r0]
+ add r1, r4, #0
+ add r1, #0x23
+ ldrb r1, [r1]
+ strb r1, [r0, #2]
+ mov r1, #0x36
+ ldrsh r1, [r4, r1]
+ strh r1, [r0, #4]
+ ldrh r1, [r4, #0x38]
+ strh r1, [r0, #6]
+ add r1, r4, #0
+ add r1, #0x3a
+ ldrb r1, [r1]
+ strb r1, [r0, #3]
+ ldr r1, _02250E94 ; =0x00000197
+ ldr r0, [sp, #4]
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ beq _02250CFA
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0225B77C
+ ldr r0, [r4]
+ bl MOD11_02230C50
+ mov r1, #1
+ tst r0, r1
+ beq _02250C8C
+ add r0, r6, #0
+ mov r1, #6
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+ b _02250CF0
+_02250C8C:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _02250CA8
+ add r0, r6, #0
+ mov r1, #0xa
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+ b _02250CF0
+_02250CA8:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #0x20
+ tst r0, r1
+ beq _02250CC2
+ add r0, r6, #0
+ mov r1, #8
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+ b _02250CF0
+_02250CC2:
+ add r0, sp, #8
+ ldrb r0, [r0]
+ cmp r0, #4
+ bne _02250CE4
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _02250CE4
+ add r0, r6, #0
+ mov r1, #4
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+ b _02250CF0
+_02250CE4:
+ add r0, r6, #0
+ mov r1, #3
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+_02250CF0:
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_022312AC
+ b _02250D70
+_02250CFA:
+ ldr r0, [r4]
+ bl MOD11_02230C50
+ mov r1, #1
+ tst r0, r1
+ beq _02250D14
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+ b _02250D68
+_02250D14:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _02250D30
+ add r0, r6, #0
+ mov r1, #9
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+ b _02250D68
+_02250D30:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #0x20
+ tst r0, r1
+ add r3, sp, #8
+ beq _02250D4A
+ add r0, r6, #0
+ mov r1, #7
+ mov r2, #0
+ bl MOD11_02258820
+ b _02250D68
+_02250D4A:
+ add r0, sp, #8
+ ldrb r0, [r0]
+ cmp r0, #4
+ beq _02250D5E
+ add r0, r6, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD11_02258820
+ b _02250D68
+_02250D5E:
+ add r0, r6, #0
+ mov r1, #2
+ mov r2, #0
+ bl MOD11_02258820
+_02250D68:
+ ldr r1, _02250E94 ; =0x00000197
+ ldr r0, [sp, #4]
+ mov r2, #1
+ strb r2, [r0, r1]
+_02250D70:
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x1c
+ bl MOD11_02258D60
+ add r1, r4, #0
+ add r2, r4, #0
+ add r0, r6, #0
+ add r1, #0x10
+ add r2, #0x16
+ bl MOD11_02258D7C
+ add r0, r6, #0
+ bl MOD11_02258DD0
+ cmp r5, #0
+ beq _02250D98
+ add r0, r5, #0
+ bl MOD11_02258180
+_02250D98:
+ mov r0, #5
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250DA0:
+ ldr r0, _02250E98 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #8
+ tst r0, r1
+ beq _02250DD0
+ ldr r0, [r4]
+ mov r5, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _02250DD0
+_02250DB6:
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ add r0, #0x28
+ bl MOD11_0225704C
+ ldr r0, [r4]
+ add r5, r5, #1
+ bl MOD11_0222FF84
+ cmp r5, r0
+ blt _02250DB6
+_02250DD0:
+ add r0, r6, #0
+ bl MOD11_02258E74
+ mov r1, #0
+ mvn r1, r1
+ str r0, [r4, #0xc]
+ cmp r0, r1
+ beq _02250E02
+ mov r0, #0xa
+ strb r0, [r4, #0xb]
+ ldr r0, _02250E9C ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #6
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250DF2:
+ add r0, r6, #0
+ bl MOD11_02258F5C
+ cmp r0, #1
+ beq _02250E04
+ ldr r0, [r4, #0xc]
+ cmp r0, #1
+ beq _02250E04
+_02250E02:
+ b _02250F3E
+_02250E04:
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bhi _02250EC4
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02250E16: ; jump table
+ .short _02250EC4 - _02250E16 - 2 ; case 0
+ .short _02250E20 - _02250E16 - 2 ; case 1
+ .short _02250E34 - _02250E16 - 2 ; case 2
+ .short _02250E5C - _02250E16 - 2 ; case 3
+ .short _02250EA0 - _02250E16 - 2 ; case 4
+_02250E20:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ beq _02250EC8
+ mov r0, #7
+ strb r0, [r4, #0xa]
+ b _02250EC8
+_02250E34:
+ mov r1, #0
+ add r0, r6, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD11_02258820
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+ add r0, r5, #0
+ bl MOD11_02258184
+ ldr r0, [r4, #4]
+ bl MOD11_02257238
+ ldr r0, [sp, #4]
+ bl MOD11_0225468C
+ b _02250EC8
+_02250E5C:
+ mov r1, #0
+ add r0, r6, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD11_02258820
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+ add r0, r5, #0
+ bl MOD11_02258184
+ ldr r0, [r4, #4]
+ bl MOD11_02257238
+ ldr r0, [sp, #4]
+ bl MOD11_0225468C
+ b _02250EC8
+ .align 2, 0
+_02250E84: .word 0x00000399
+_02250E88: .word 0x000004CA
+_02250E8C: .word 0x0000039A
+_02250E90: .word 0x000004C6
+_02250E94: .word 0x00000197
+_02250E98: .word 0x021C48B8
+_02250E9C: .word 0x000005DD
+_02250EA0:
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02230CB8
+ cmp r0, #1
+ bne _02250EB6
+ add r0, r5, #0
+ bl MOD11_02258184
+ mov r0, #0xff
+ str r0, [r4, #0xc]
+_02250EB6:
+ mov r1, #0
+ add r0, r6, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD11_02258820
+ b _02250EC8
+_02250EC4:
+ bl ErrorHandling
+_02250EC8:
+ add r0, r6, #0
+ bl MOD11_02258E30
+ mov r0, #8
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250ED6:
+ add r0, r6, #0
+ bl MOD11_02258F5C
+ cmp r0, #1
+ bne _02250F3E
+ mov r1, #0
+ add r0, r6, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD11_02258820
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+ add r0, r5, #0
+ bl MOD11_02258184
+ ldr r0, [r4, #4]
+ bl MOD11_02257238
+ ldr r0, [sp, #4]
+ bl MOD11_0225468C
+ add r0, r6, #0
+ bl MOD11_02258E30
+ mov r0, #8
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250F14:
+ add r0, r6, #0
+ bl MOD11_0225B780
+ cmp r0, #1
+ bne _02250F3E
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ ldr r2, [r4, #0xc]
+ bl MOD11_02255528
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_02250F3E:
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02250F44
+MOD11_02250F44: ; 0x02250F44
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #9]
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD16_021F45A4
+ add r2, r0, #0
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02255528
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02250F74
+MOD11_02250F74: ; 0x02250F74
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #9]
+ add r5, r0, #0
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02250F94
+MOD11_02250F94: ; 0x02250F94
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230DE0
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF78
+ mov r2, #0
+ ldrb r1, [r4, #9]
+ add r3, r2, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0x1a
+ bl GetMonBaseStat
+ ldr r2, _0225100C ; =0x0225E830
+ lsl r1, r5, #1
+ ldrb r2, [r2, r1]
+ mul r2, r0
+ add r0, r2, #0
+ ldr r2, _02251010 ; =0x0225E831
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ add r5, r0, #0
+ bl LCRandom
+ mov r1, #0xff
+ bl _s32_div_f
+ cmp r1, r5
+ ldr r0, [r4]
+ bgt _02250FEA
+ ldrb r1, [r4, #9]
+ mov r2, #4
+ bl MOD11_02255528
+ b _02250FF2
+_02250FEA:
+ ldrb r1, [r4, #9]
+ mov r2, #5
+ bl MOD11_02255528
+_02250FF2:
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ pop {r4, r5, r6, pc}
+ nop
+_0225100C: .word 0x0225E830
+_02251010: .word 0x0225E831
+
+ thumb_func_start MOD11_02251014
+MOD11_02251014: ; 0x02251014
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #9]
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r2, #4
+ bl MOD11_02255528
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0225103C
+MOD11_0225103C: ; 0x0225103C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldr r0, [r4]
+ bl MOD11_02230094
+ add r7, r0, #0
+ ldrb r1, [r4, #0x1d]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ str r0, [sp]
+ ldrb r1, [r4, #0x1d]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldrb r0, [r4, #0x1d]
+ cmp r1, r0
+ beq _02251076
+ ldr r0, [r4]
+ bl MOD11_02231380
+ add r5, r0, #0
+ b _02251078
+_02251076:
+ mov r5, #0
+_02251078:
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #3
+ bls _02251084
+ b _0225118E
+_02251084:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02251090: ; jump table
+ .short _02251098 - _02251090 - 2 ; case 0
+ .short _02251114 - _02251090 - 2 ; case 1
+ .short _0225113A - _02251090 - 2 ; case 2
+ .short _02251180 - _02251090 - 2 ; case 3
+_02251098:
+ add r0, r7, #0
+ bl MOD11_02258F5C
+ cmp r0, #0
+ bne _022510A4
+ b _022511B6
+_022510A4:
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r1, r0, #0
+ mov r2, #2
+ add r0, sp, #4
+ strb r2, [r0, #0x15]
+ ldrb r2, [r4, #0x1f]
+ ldrb r3, [r4, #0x1d]
+ lsl r2, r2, #8
+ orr r2, r3
+ str r2, [sp, #0x1c]
+ ldr r2, _022511BC ; =0x00000399
+ mov r3, #0
+ strh r2, [r0, #0x16]
+ ldr r0, [r4]
+ add r2, sp, #0x18
+ bl MOD11_0223178C
+ add r0, r7, #0
+ bl MOD11_02258E30
+ add r5, sp, #4
+ mov r2, #0
+ add r3, r4, #0
+ add r6, r5, #0
+_022510D8:
+ ldrh r0, [r3, #0xc]
+ add r1, r4, r2
+ add r2, r2, #1
+ strh r0, [r5]
+ ldrb r0, [r1, #0x14]
+ add r3, r3, #2
+ add r5, r5, #2
+ strb r0, [r6, #8]
+ ldrb r0, [r1, #0x18]
+ strb r0, [r6, #0xc]
+ add r6, r6, #1
+ cmp r2, #4
+ blt _022510D8
+ ldrb r1, [r4, #0x1e]
+ add r0, sp, #4
+ mov r2, #0
+ strb r1, [r0, #0x10]
+ add r0, r7, #0
+ mov r1, #0xb
+ add r3, sp, #4
+ bl MOD11_02258820
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #0x3c
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_02251114:
+ add r0, r7, #0
+ bl MOD11_02258E74
+ mov r1, #0
+ mvn r1, r1
+ str r0, [r4, #8]
+ cmp r0, r1
+ beq _022511B6
+ ldr r0, _022511C0 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #0x3c
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_0225113A:
+ ldr r0, [r4, #8]
+ cmp r0, #0xff
+ beq _02251166
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02251166
+ add r0, r7, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+ add r0, r5, #0
+ bl MOD11_02258184
+ ldr r0, [r4, #4]
+ bl MOD11_02257238
+ ldr r0, [sp]
+ bl MOD11_0225468C
+_02251166:
+ ldrb r1, [r4, #0x1d]
+ ldr r0, [r4]
+ ldr r2, [r4, #8]
+ bl MOD11_022555E4
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #0x3c
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_02251180:
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+_0225118E:
+ add r0, r7, #0
+ bl MOD11_0225B780
+ cmp r0, #1
+ bne _022511B6
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_02231274
+ ldrb r1, [r4, #0x1d]
+ ldrb r2, [r4, #0x1c]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_022511B6:
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022511BC: .word 0x00000399
+_022511C0: .word 0x000005DD
+
+ thumb_func_start MOD11_022511C4
+MOD11_022511C4: ; 0x022511C4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r6, r1, #0
+ str r0, [sp, #8]
+ ldr r0, [r6]
+ bl MOD11_0222FF74
+ add r4, r0, #0
+ ldr r0, [r6]
+ bl MOD11_0222FF78
+ str r0, [sp, #0xc]
+ ldr r0, _02251290 ; =0x00000101
+ tst r0, r4
+ bne _022511FA
+ ldr r0, [r6]
+ bl MOD11_02230C50
+ mov r1, #1
+ tst r0, r1
+ bne _022511FA
+ ldrb r1, [r6, #0x1d]
+ ldr r0, [r6]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _02251216
+_022511FA:
+ bl FUN_02033590
+ cmp r0, #0
+ beq _02251206
+ bl ErrorHandling
+_02251206:
+ ldrb r1, [r6, #0x1d]
+ ldr r0, [r6]
+ bl MOD16_021EFD8C
+ cmp r0, #0xff
+ beq _0225128C
+ add r4, r0, #1
+ b _0225126C
+_02251216:
+ mov r7, #0
+ add r4, r7, #0
+ add r5, sp, #0x10
+_0225121C:
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldrh r1, [r6, #0x22]
+ tst r0, r1
+ bne _0225122E
+ add r0, r4, #1
+ stmia r5!, {r0}
+ add r7, r7, #1
+_0225122E:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _0225121C
+ bl LCRandom
+ add r1, r7, #0
+ bl _s32_div_f
+ lsl r1, r1, #2
+ add r0, sp, #0x10
+ ldr r4, [r0, r1]
+ mov r0, #1
+ sub r3, r4, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ lsl r3, r3, #1
+ add r3, r6, r3
+ ldrb r2, [r6, #0x1d]
+ ldrh r3, [r3, #0xc]
+ ldr r0, [r6]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02244C28
+ str r0, [sp]
+ ldrb r3, [r6, #0x1d]
+ ldr r0, [r6]
+ ldr r1, [sp, #0xc]
+ mov r2, #0xb
+ bl MOD11_0224C54C
+_0225126C:
+ ldrb r1, [r6, #0x1d]
+ ldr r0, [r6]
+ add r2, r4, #0
+ bl MOD11_022555E4
+ ldrb r1, [r6, #0x1d]
+ ldrb r2, [r6, #0x1c]
+ ldr r0, [r6]
+ bl MOD11_022567B8
+ add r0, r6, #0
+ bl FreeToHeap
+ ldr r0, [sp, #8]
+ bl FUN_0200CAB4
+_0225128C:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02251290: .word 0x00000101
+
+ thumb_func_start MOD11_02251294
+MOD11_02251294: ; 0x02251294
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #0x1d]
+ add r5, r0, #0
+ ldrb r2, [r4, #0x1c]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022512B4
+MOD11_022512B4: ; 0x022512B4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r4, r1, #0
+ str r0, [sp]
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230094
+ add r5, r0, #0
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldrb r0, [r4, #0xd]
+ cmp r1, r0
+ beq _022512EE
+ ldr r0, [r4]
+ bl MOD11_02231380
+ add r6, r0, #0
+ b _022512F0
+_022512EE:
+ mov r6, #0
+_022512F0:
+ ldrb r0, [r4, #0xf]
+ cmp r0, #3
+ bhi _022513BE
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02251302: ; jump table
+ .short _0225130A - _02251302 - 2 ; case 0
+ .short _02251366 - _02251302 - 2 ; case 1
+ .short _02251386 - _02251302 - 2 ; case 2
+ .short _022513BA - _02251302 - 2 ; case 3
+_0225130A:
+ add r0, r5, #0
+ bl MOD11_02258F5C
+ cmp r0, #0
+ bne _02251316
+ b _02251418
+_02251316:
+ add r2, sp, #8
+ mov r0, #0
+ add r1, r4, #0
+ add r2, #2
+_0225131E:
+ ldrh r3, [r1, #0x10]
+ add r0, r0, #1
+ strh r3, [r2]
+ ldrh r3, [r1, #0x12]
+ strh r3, [r2, #2]
+ ldrh r3, [r1, #0x14]
+ strh r3, [r2, #4]
+ ldrh r3, [r1, #0x16]
+ add r1, #8
+ strh r3, [r2, #6]
+ add r2, #8
+ cmp r0, #4
+ blt _0225131E
+ ldrb r1, [r4, #0xe]
+ add r0, sp, #0x28
+ add r0, #2
+ strb r1, [r0]
+ ldrh r0, [r4, #0x30]
+ ldrb r1, [r4, #0xe]
+ bl MOD11_02258F88
+ add r1, sp, #0x28
+ add r1, #2
+ strb r0, [r1, #1]
+ add r3, sp, #8
+ add r0, r5, #0
+ mov r1, #0xc
+ mov r2, #0
+ add r3, #2
+ bl MOD11_02258820
+ ldrb r0, [r4, #0xf]
+ add sp, #0x2c
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ pop {r4, r5, r6, r7, pc}
+_02251366:
+ add r0, r5, #0
+ bl MOD11_02258E74
+ mov r1, #0
+ mvn r1, r1
+ str r0, [r4, #8]
+ cmp r0, r1
+ beq _02251418
+ ldr r0, _0225141C ; =0x000005DD
+ bl FUN_020054C8
+ ldrb r0, [r4, #0xf]
+ add sp, #0x2c
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ pop {r4, r5, r6, r7, pc}
+_02251386:
+ ldr r0, [r4, #8]
+ cmp r0, #0xff
+ beq _022513B0
+ ldr r0, [r4, #4]
+ bl MOD11_02257238
+ add r0, r7, #0
+ bl MOD11_0225468C
+ add r0, r6, #0
+ bl MOD11_02258184
+ add r0, r4, #0
+ add r0, #0x32
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _022513B0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+_022513B0:
+ ldrb r0, [r4, #0xf]
+ add sp, #0x2c
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ pop {r4, r5, r6, r7, pc}
+_022513BA:
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+_022513BE:
+ add r0, r5, #0
+ bl MOD11_0225B780
+ cmp r0, #1
+ bne _02251418
+ ldr r0, [r4]
+ ldr r5, [r4, #8]
+ bl MOD11_0222FF74
+ add r6, r0, #0
+ cmp r5, #0xff
+ beq _022513F8
+ ldr r0, [r4]
+ add r1, sp, #4
+ bl MOD11_022314E0
+ mov r0, #2
+ tst r0, r6
+ ldr r0, [r4, #8]
+ beq _022513F0
+ add r1, r0, #1
+ add r0, sp, #4
+ ldrb r0, [r0, r1]
+ add r5, r0, #1
+ b _022513F8
+_022513F0:
+ sub r1, r0, #1
+ add r0, sp, #4
+ ldrb r0, [r0, r1]
+ add r5, r0, #1
+_022513F8:
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ add r2, r5, #0
+ bl MOD11_02255720
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_02251418:
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225141C: .word 0x000005DD
+
+ thumb_func_start MOD11_02251420
+MOD11_02251420: ; 0x02251420
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_0222FF78
+ add r1, r0, #0
+ ldrb r3, [r5, #0xd]
+ ldr r0, [r5]
+ mov r2, #0xb
+ bl MOD11_0224C474
+ add r4, r0, #1
+ cmp r4, #5
+ blt _02251442
+ bl ErrorHandling
+_02251442:
+ ldrb r1, [r5, #0xd]
+ ldr r0, [r5]
+ add r2, r4, #0
+ bl MOD11_02255720
+ ldrb r1, [r5, #0xd]
+ ldrb r2, [r5, #0xc]
+ ldr r0, [r5]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02251464
+MOD11_02251464: ; 0x02251464
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #0xd]
+ add r5, r0, #0
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02251484
+MOD11_02251484: ; 0x02251484
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x1fc
+ sub sp, #0x14
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ ldrb r1, [r4, #0xe]
+ add r5, r0, #0
+ cmp r1, #0x1e
+ bls _022514A0
+ bl _02251FEA
+_022514A0:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022514AC: ; jump table
+ .short _022514EA - _022514AC - 2 ; case 0
+ .short _02251540 - _022514AC - 2 ; case 1
+ .short _022515C2 - _022514AC - 2 ; case 2
+ .short _022515D6 - _022514AC - 2 ; case 3
+ .short _02251634 - _022514AC - 2 ; case 4
+ .short _0225177C - _022514AC - 2 ; case 5
+ .short _022517B8 - _022514AC - 2 ; case 6
+ .short _02251808 - _022514AC - 2 ; case 7
+ .short _022519DC - _022514AC - 2 ; case 8
+ .short _02251A5A - _022514AC - 2 ; case 9
+ .short _02251A96 - _022514AC - 2 ; case 10
+ .short _02251AB8 - _022514AC - 2 ; case 11
+ .short _02251FA2 - _022514AC - 2 ; case 12
+ .short _02251B3E - _022514AC - 2 ; case 13
+ .short _02251FA2 - _022514AC - 2 ; case 14
+ .short _02251BF2 - _022514AC - 2 ; case 15
+ .short _02251FD0 - _022514AC - 2 ; case 16
+ .short _02251AF8 - _022514AC - 2 ; case 17
+ .short _02251FA2 - _022514AC - 2 ; case 18
+ .short _02251CA6 - _022514AC - 2 ; case 19
+ .short _02251FA2 - _022514AC - 2 ; case 20
+ .short _02251CEC - _022514AC - 2 ; case 21
+ .short _02251D86 - _022514AC - 2 ; case 22
+ .short _02251DBC - _022514AC - 2 ; case 23
+ .short _02251FD0 - _022514AC - 2 ; case 24
+ .short _02251AF8 - _022514AC - 2 ; case 25
+ .short _02251FA2 - _022514AC - 2 ; case 26
+ .short _02251CA6 - _022514AC - 2 ; case 27
+ .short _02251FA2 - _022514AC - 2 ; case 28
+ .short _02251E2E - _022514AC - 2 ; case 29
+ .short _02251FD0 - _022514AC - 2 ; case 30
+_022514EA:
+ ldr r0, [r4]
+ bl MOD11_02230094
+ bl MOD11_0225C76C
+ strb r0, [r4, #0x10]
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ mov r2, #3
+ str r1, [sp]
+ mov r0, #7
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #5
+ add r3, r1, #0
+ add r0, r5, #0
+ lsl r2, r2, #0xa
+ sub r3, #0xd
+ bl FUN_02003210
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0xa
+ add r3, r1, #0
+ ldr r2, _02251850 ; =0x0000FFFF
+ add r0, r5, #0
+ sub r3, #0x12
+ bl FUN_02003210
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251540:
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _022515FE
+ ldr r0, [r4]
+ bl MOD11_0222D7F8
+ mov r0, #5
+ mov r1, #0x34
+ bl AllocFromHeap
+ str r0, [r4, #4]
+ ldr r1, [r4]
+ str r1, [r0]
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_022301D4
+ ldr r1, [r4, #4]
+ str r0, [r1, #4]
+ ldr r0, [r4, #4]
+ mov r1, #5
+ str r1, [r0, #0xc]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x26
+ strb r1, [r0]
+ ldr r0, [r4]
+ bl MOD11_02230214
+ ldr r1, [r4, #4]
+ str r0, [r1, #8]
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4, #4]
+ str r1, [r0, #0x10]
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0x10]
+ add r0, #0x25
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0x14]
+ add r0, #0x22
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0x15]
+ add r0, #0x23
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0x16]
+ add r0, #0x24
+ strb r1, [r0]
+ ldrb r0, [r4, #0xd]
+ add r0, r4, r0
+ add r0, #0x30
+ ldrb r1, [r0]
+ ldr r0, [r4, #4]
+ str r1, [r0, #0x18]
+ ldr r0, [r4, #4]
+ bl MOD09_022186F0
+ add sp, #0x1fc
+ mov r0, #3
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_022515C2:
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0x10]
+ add r0, #0x25
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ bl MOD09_022186F0
+ ldrb r0, [r4, #0xe]
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+_022515D6:
+ ldr r1, [r4, #4]
+ add r0, r1, #0
+ add r0, #0x26
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022515FE
+ mov r0, #0
+ add r1, #0x26
+ strb r0, [r1]
+ ldr r0, [r4, #4]
+ add r0, #0x25
+ ldrb r0, [r0]
+ strb r0, [r4, #0x10]
+ ldr r1, [r4, #4]
+ ldrh r0, [r1, #0x1c]
+ cmp r0, #0
+ beq _0225162A
+ ldrb r0, [r1, #0x1e]
+ cmp r0, #3
+ bls _02251602
+_022515FE:
+ bl _02251FEA
+_02251602:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225160E: ; jump table
+ .short _02251616 - _0225160E - 2 ; case 0
+ .short _02251616 - _0225160E - 2 ; case 1
+ .short _02251620 - _0225160E - 2 ; case 2
+ .short _02251620 - _0225160E - 2 ; case 3
+_02251616:
+ add sp, #0x1fc
+ mov r0, #4
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251620:
+ add sp, #0x1fc
+ mov r0, #6
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225162A:
+ add sp, #0x1fc
+ mov r0, #6
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251634:
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF88
+ str r0, [sp, #0x14]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02251660
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _02251660
+ ldrb r1, [r4, #0xd]
+ mov r0, #1
+ add r7, r1, #0
+ and r7, r0
+ b _02251662
+_02251660:
+ ldrb r7, [r4, #0xd]
+_02251662:
+ ldr r0, [r4, #8]
+ mov r1, #6
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FUN_0206B8CC
+ ldr r0, [sp, #0x14]
+ mov r6, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _022516B0
+ mov r0, #6
+ mul r0, r7
+ add r5, r4, r0
+_02251680:
+ ldrb r2, [r5, #0x18]
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_02230014
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FUN_0206B900
+ ldr r1, [r4, #8]
+ ldrb r0, [r5, #0x18]
+ ldr r1, [r1, #4]
+ add r5, r5, #1
+ add r1, r1, r6
+ add r1, #0x2c
+ strb r0, [r1]
+ ldr r0, [sp, #0x14]
+ add r6, r6, #1
+ bl GetPartyCount
+ cmp r6, r0
+ blt _02251680
+_022516B0:
+ ldr r0, [r4, #8]
+ ldr r1, [r4]
+ ldr r0, [r0, #4]
+ str r1, [r0, #8]
+ ldr r0, [r4, #8]
+ mov r1, #5
+ ldr r0, [r0, #4]
+ str r1, [r0, #0xc]
+ ldr r1, [r4, #8]
+ mov r0, #0
+ ldr r1, [r1, #4]
+ strb r0, [r1, #0x11]
+ ldr r1, [r4, #8]
+ ldr r1, [r1, #4]
+ add r1, #0x36
+ strb r0, [r1]
+ ldr r1, [r4, #8]
+ ldr r1, [r1, #4]
+ strh r0, [r1, #0x24]
+ ldr r0, [r4, #8]
+ mov r1, #2
+ ldr r0, [r0, #4]
+ add r0, #0x35
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ ldrh r1, [r0, #0x1c]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ strh r1, [r0, #0x22]
+ ldr r0, [r4, #4]
+ ldrb r1, [r0, #0x1e]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ add r0, #0x33
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ ldr r1, [r0, #0x10]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ str r1, [r0, #0x28]
+ ldr r0, [r4, #8]
+ ldrb r1, [r4, #0x10]
+ ldr r0, [r0, #4]
+ add r0, #0x32
+ strb r1, [r0]
+ ldrb r0, [r4, #0xd]
+ ldr r2, [r4, #8]
+ add r0, r2, r0
+ ldrb r1, [r0, #0xc]
+ ldr r0, [r2, #4]
+ strb r1, [r0, #0x14]
+ ldrb r1, [r4, #0xd]
+ ldr r5, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r0, r5, r0
+ ldrb r1, [r0, #0xc]
+ ldr r0, [r5, #4]
+ strb r1, [r0, #0x15]
+ ldrb r0, [r4, #0xf]
+ cmp r0, #4
+ bne _02251746
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r0, r4, r0
+ add r0, #0x30
+ ldrb r1, [r0]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ str r1, [r0, #0x18]
+ ldrb r0, [r4, #0xd]
+ b _0225175C
+_02251746:
+ ldrb r0, [r4, #0xd]
+ add r0, r4, r0
+ add r0, #0x30
+ ldrb r1, [r0]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ str r1, [r0, #0x18]
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+_0225175C:
+ add r0, r4, r0
+ add r0, #0x30
+ ldrb r1, [r0]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ str r1, [r0, #0x1c]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ bl MOD07_02211E60
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225177C:
+ ldr r0, [r4, #8]
+ ldr r1, [r0, #4]
+ add r0, r1, #0
+ add r0, #0x36
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02251832
+ add r1, #0x32
+ ldrb r0, [r1]
+ mov r1, #0
+ strb r0, [r4, #0x10]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ add r0, #0x36
+ strb r1, [r0]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldrb r0, [r0, #0x11]
+ cmp r0, #6
+ bne _022517AE
+ add sp, #0x1fc
+ mov r0, #2
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_022517AE:
+ add sp, #0x1fc
+ mov r0, #6
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_022517B8:
+ ldr r0, [r4]
+ bl MOD11_0222D88C
+ ldr r0, [r4]
+ bl MOD11_02230094
+ ldrb r1, [r4, #0x10]
+ bl MOD11_0225C778
+ mov r0, #7
+ str r0, [sp]
+ mov r0, #0
+ mov r1, #5
+ str r0, [sp, #4]
+ mov r2, #3
+ add r3, r1, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ lsl r2, r2, #0xa
+ sub r3, #0xd
+ bl FUN_02003210
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ mov r1, #0xa
+ str r0, [sp, #4]
+ add r3, r1, #0
+ str r0, [sp, #8]
+ ldr r2, _02251850 ; =0x0000FFFF
+ add r0, r5, #0
+ sub r3, #0x12
+ bl FUN_02003210
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251808:
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02251832
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #0
+ bl FUN_020143A8
+ ldr r0, [r4, #4]
+ ldrh r0, [r0, #0x1c]
+ cmp r0, #0
+ bne _02251826
+ b _022519D2
+_02251826:
+ mov r0, #9
+ strb r0, [r4, #0xe]
+ ldr r0, [r4, #4]
+ ldrb r1, [r0, #0x1e]
+ cmp r1, #3
+ bls _02251834
+_02251832:
+ b _02251FEA
+_02251834:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02251840: ; jump table
+ .short _022518F4 - _02251840 - 2 ; case 0
+ .short _02251848 - _02251840 - 2 ; case 1
+ .short _022519C8 - _02251840 - 2 ; case 2
+ .short _0225195E - _02251840 - 2 ; case 3
+_02251848:
+ ldrh r1, [r0, #0x1c]
+ ldr r0, _02251854 ; =0x0000FFE4
+ b _02251858
+ nop
+_02251850: .word 0x0000FFFF
+_02251854: .word 0x0000FFE4
+_02251858:
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _0225186C
+ add sp, #0x1fc
+ mov r0, #8
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225186C:
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldrb r0, [r0, #0x11]
+ cmp r0, #2
+ bhs _0225188A
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #3
+ beq _02251894
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #0x13
+ beq _02251894
+_0225188A:
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldrb r0, [r0, #0x11]
+ cmp r0, #1
+ bhs _022518EA
+_02251894:
+ ldr r0, [r4, #4]
+ ldrh r0, [r0, #0x1c]
+ cmp r0, #0x17
+ ldr r0, [r4]
+ bne _022518C4
+ bl MOD11_02230E20
+ cmp r0, #1
+ bne _022518B0
+ add sp, #0x1fc
+ mov r0, #0x11
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022518B0:
+ mov r1, #0x74
+ ldr r0, _02251BF8 ; =0x000005EC
+ mvn r1, r1
+ bl FUN_020054A8
+ add sp, #0x1fc
+ mov r0, #0x15
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022518C4:
+ bl MOD11_02230E20
+ cmp r0, #1
+ bne _022518D6
+ add sp, #0x1fc
+ mov r0, #0x19
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022518D6:
+ mov r1, #0x74
+ ldr r0, _02251BF8 ; =0x000005EC
+ mvn r1, r1
+ bl FUN_020054A8
+ add sp, #0x1fc
+ mov r0, #0x1d
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022518EA:
+ add sp, #0x1fc
+ mov r0, #8
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_022518F4:
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldrb r0, [r0, #0x11]
+ cmp r0, #2
+ bhs _02251912
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #3
+ beq _0225191C
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #0x13
+ beq _0225191C
+_02251912:
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldrb r0, [r0, #0x11]
+ cmp r0, #1
+ bhs _02251954
+_0225191C:
+ ldr r0, [r4, #4]
+ mov r1, #0x26
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251954
+ ldr r0, [r4]
+ bl MOD11_02230E20
+ cmp r0, #1
+ bne _02251940
+ add sp, #0x1fc
+ mov r0, #0x11
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251940:
+ mov r1, #0x74
+ ldr r0, _02251BF8 ; =0x000005EC
+ mvn r1, r1
+ bl FUN_020054A8
+ add sp, #0x1fc
+ mov r0, #0x15
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251954:
+ add sp, #0x1fc
+ mov r0, #8
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225195E:
+ ldrh r1, [r0, #0x1c]
+ ldr r0, _02251BFC ; =0x0000FFC1
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _02251976
+ add sp, #0x1fc
+ mov r0, #8
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251976:
+ cmp r1, #0x37
+ ldr r0, [r4]
+ bne _022519A2
+ bl MOD11_02230E20
+ cmp r0, #1
+ bne _0225198E
+ add sp, #0x1fc
+ mov r0, #0xd
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225198E:
+ mov r1, #0x74
+ ldr r0, _02251BF8 ; =0x000005EC
+ mvn r1, r1
+ bl FUN_020054A8
+ add sp, #0x1fc
+ mov r0, #0xf
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022519A2:
+ bl MOD11_02230E20
+ cmp r0, #1
+ bne _022519B4
+ add sp, #0x1fc
+ mov r0, #0xb
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022519B4:
+ mov r1, #0x74
+ ldr r0, _02251BF8 ; =0x000005EC
+ mvn r1, r1
+ bl FUN_020054A8
+ add sp, #0x1fc
+ mov r0, #0xf
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022519C8:
+ add sp, #0x1fc
+ mov r0, #8
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_022519D2:
+ add sp, #0x1fc
+ mov r0, #8
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_022519DC:
+ ldr r2, [r4, #4]
+ ldrh r0, [r2, #0x1c]
+ cmp r0, #0
+ bne _022519EC
+ mov r1, #0xff
+ add r0, sp, #0x1c
+ strh r1, [r0]
+ b _02251A08
+_022519EC:
+ add r1, sp, #0x1c
+ strh r0, [r1]
+ ldrb r0, [r2, #0x1e]
+ strb r0, [r1, #2]
+ cmp r0, #1
+ bhi _02251A08
+ ldr r0, [r4, #8]
+ ldr r2, [r0, #4]
+ ldrb r0, [r2, #0x11]
+ add r0, r2, r0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r0, r0, #1
+ strb r0, [r1, #3]
+_02251A08:
+ add r3, sp, #0x1c
+ ldrb r1, [r4, #0xd]
+ mov r2, sp
+ ldrh r5, [r3]
+ ldr r0, [r4]
+ sub r2, r2, #4
+ strh r5, [r2]
+ ldrh r3, [r3, #2]
+ strh r3, [r2, #2]
+ ldr r2, [r2]
+ bl MOD11_022558C4
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FreeToHeap
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ bl FreeToHeap
+ ldr r0, [r4, #8]
+ bl FreeToHeap
+ ldr r0, [r4, #4]
+ bl FreeToHeap
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r7, #0
+ bl FUN_0200CAB4
+ add sp, #0x1fc
+ add sp, #0x14
+ pop {r3, r4, r5, r6, r7, pc}
+_02251A5A:
+ ldr r1, _02251C00 ; =0x000004B6
+ add r0, sp, #0x8c
+ strh r1, [r0, #2]
+ mov r1, #5
+ strb r1, [r0, #1]
+ ldr r0, [r4, #4]
+ ldrh r0, [r0, #0x1c]
+ str r0, [sp, #0x90]
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #0x8c
+ bl MOD11_0223178C
+ strb r0, [r4, #0x11]
+ mov r0, #0x14
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251A96:
+ ldrb r0, [r4, #0x11]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02251AAC
+ ldrb r0, [r4, #0x17]
+ sub r0, r0, #1
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0x17]
+ cmp r0, #0
+ beq _02251AAE
+_02251AAC:
+ b _02251FEA
+_02251AAE:
+ ldrh r0, [r4, #0x12]
+ add sp, #0x1fc
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251AB8:
+ ldrb r1, [r4, #0xd]
+ mov r0, #9
+ add r2, sp, #0x1b8
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r3, sp, #0x1b8
+ bl MOD11_02254404
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251AF8:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ ldr r0, [r0, #4]
+ add r2, sp, #0x160
+ ldrb r0, [r0, #0x11]
+ mov r3, #1
+ lsl r5, r0, #1
+ mov r0, #9
+ str r0, [sp]
+ str r5, [sp, #4]
+ str r5, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD11_02256854
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r3, sp, #0x160
+ bl MOD11_02254404
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251B3E:
+ ldr r0, [r4, #4]
+ add r2, sp, #0x108
+ ldrh r0, [r0, #0x1c]
+ cmp r0, #0x37
+ bne _02251B7C
+ ldrb r0, [r4, #0xd]
+ mov r1, #0
+ add r3, r1, #0
+ str r1, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x36
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD11_02256854
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r3, sp, #0x108
+ bl MOD11_02254404
+ b _02251BE6
+_02251B7C:
+ cmp r0, #0x38
+ bne _02251BB4
+ ldrb r0, [r4, #0xd]
+ mov r1, #0
+ add r3, r1, #0
+ str r1, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x74
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD11_02256854
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r3, sp, #0x108
+ bl MOD11_02254404
+ b _02251BE6
+_02251BB4:
+ ldrb r1, [r4, #0xd]
+ mov r0, #0xc
+ mov r3, #1
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD11_02256854
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r3, sp, #0x108
+ bl MOD11_02254404
+_02251BE6:
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251BF2:
+ ldr r2, _02251C04 ; =0x000004B3
+ b _02251C08
+ nop
+_02251BF8: .word 0x000005EC
+_02251BFC: .word 0x0000FFC1
+_02251C00: .word 0x000004B6
+_02251C04: .word 0x000004B3
+_02251C08:
+ add r0, sp, #0x68
+ strh r2, [r0, #2]
+ mov r1, #0xc
+ strb r1, [r0, #1]
+ ldrb r1, [r4, #0xd]
+ ldr r3, [r4, #8]
+ add r3, r3, r1
+ ldrb r3, [r3, #0xc]
+ lsl r3, r3, #8
+ orr r1, r3
+ str r1, [sp, #0x6c]
+ ldr r1, [r4, #4]
+ ldrh r1, [r1, #0x1c]
+ sub r1, #0x37
+ cmp r1, #7
+ bhi _02251C7A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02251C34: ; jump table
+ .short _02251C68 - _02251C34 - 2 ; case 0
+ .short _02251C72 - _02251C34 - 2 ; case 1
+ .short _02251C44 - _02251C34 - 2 ; case 2
+ .short _02251C4A - _02251C34 - 2 ; case 3
+ .short _02251C50 - _02251C34 - 2 ; case 4
+ .short _02251C56 - _02251C34 - 2 ; case 5
+ .short _02251C5C - _02251C34 - 2 ; case 6
+ .short _02251C62 - _02251C34 - 2 ; case 7
+_02251C44:
+ mov r0, #1
+ str r0, [sp, #0x70]
+ b _02251C7A
+_02251C4A:
+ mov r0, #2
+ str r0, [sp, #0x70]
+ b _02251C7A
+_02251C50:
+ mov r0, #3
+ str r0, [sp, #0x70]
+ b _02251C7A
+_02251C56:
+ mov r0, #6
+ str r0, [sp, #0x70]
+ b _02251C7A
+_02251C5C:
+ mov r0, #4
+ str r0, [sp, #0x70]
+ b _02251C7A
+_02251C62:
+ mov r0, #5
+ str r0, [sp, #0x70]
+ b _02251C7A
+_02251C68:
+ add r1, r2, #1
+ strh r1, [r0, #2]
+ mov r1, #0
+ strb r1, [r0, #1]
+ b _02251C7A
+_02251C72:
+ add r1, r2, #2
+ strh r1, [r0, #2]
+ mov r1, #2
+ strb r1, [r0, #1]
+_02251C7A:
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #0x68
+ bl MOD11_0223178C
+ strb r0, [r4, #0x11]
+ mov r0, #0x14
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251CA6:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ ldr r0, [r0, #4]
+ add r2, sp, #0xb0
+ ldrb r0, [r0, #0x11]
+ mov r3, #1
+ lsl r5, r0, #1
+ mov r0, #0xe
+ str r0, [sp]
+ str r5, [sp, #4]
+ str r5, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD11_02256854
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r3, sp, #0xb0
+ bl MOD11_02254404
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251CEC:
+ ldr r0, [r4, #8]
+ ldr r1, [r0, #4]
+ ldrb r0, [r1, #0x11]
+ lsl r6, r0, #1
+ add r0, r1, r0
+ add r0, #0x2c
+ ldrb r7, [r0]
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD11_02231380
+ mov r1, #0
+ mov r2, #1
+ add r5, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD11_02230260
+ str r0, [sp, #0x18]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ add r1, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD11_02257F6C
+ add r1, r5, #0
+ add r1, #0x25
+ strb r0, [r1]
+ ldr r0, [r4]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02230014
+ mov r1, #0xa2
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ ldr r1, [r4, #8]
+ mov r2, #0
+ ldr r1, [r1, #4]
+ ldrh r1, [r1, #0x20]
+ sub r0, r0, r1
+ str r0, [r5, #0x28]
+ add r0, r6, #0
+ mov r1, #0xa3
+ bl GetMonData
+ str r0, [r5, #0x2c]
+ ldr r0, [r4, #8]
+ mov r1, #0x9f
+ ldr r0, [r0, #4]
+ mov r2, #0
+ ldrh r0, [r0, #0x20]
+ str r0, [r5, #0x30]
+ add r0, r6, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _02251D72
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x4a
+ strb r1, [r0]
+_02251D72:
+ ldr r1, [r5, #0x30]
+ add r0, r5, #0
+ bl MOD11_02257150
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251D86:
+ ldr r1, [r4, #8]
+ ldr r0, [r4]
+ ldr r1, [r1, #4]
+ ldrb r1, [r1, #0x11]
+ lsl r1, r1, #1
+ bl MOD11_02231380
+ add r5, r0, #0
+ bl MOD11_02257184
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02251DA4
+ b _02251FEA
+_02251DA4:
+ mov r2, #1
+ add r0, r5, #0
+ mov r1, #0
+ lsl r2, r2, #8
+ bl MOD11_02256D70
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251DBC:
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ ldr r1, [r0, #4]
+ ldrb r0, [r1, #0x11]
+ ldrh r1, [r1, #0x20]
+ lsl r0, r0, #1
+ cmp r1, #0
+ add r1, sp, #0x1c
+ beq _02251DF4
+ ldr r2, _02251FF0 ; =0x000004BE
+ strh r2, [r1, #0x2a]
+ mov r2, #0x11
+ add r1, sp, #0x44
+ strb r2, [r1, #1]
+ ldr r1, [r4, #8]
+ add r1, r1, r0
+ ldrb r1, [r1, #0xc]
+ lsl r1, r1, #8
+ orr r0, r1
+ str r0, [sp, #0x48]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldrh r0, [r0, #0x20]
+ str r0, [sp, #0x4c]
+ b _02251E0A
+_02251DF4:
+ ldr r2, _02251FF4 ; =0x000004E2
+ strh r2, [r1, #0x2a]
+ mov r2, #2
+ add r1, sp, #0x44
+ strb r2, [r1, #1]
+ ldr r1, [r4, #8]
+ add r1, r1, r0
+ ldrb r1, [r1, #0xc]
+ lsl r1, r1, #8
+ orr r0, r1
+ str r0, [sp, #0x48]
+_02251E0A:
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #0x44
+ bl MOD11_0223178C
+ strb r0, [r4, #0x11]
+ mov r0, #0x14
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251E2E:
+ ldr r0, [r4, #8]
+ mov r5, #0
+ ldr r0, [r0, #4]
+ ldrb r0, [r0, #0x11]
+ lsl r7, r0, #1
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_02231380
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #8]
+ add r1, r7, #0
+ ldr r3, [r0, #4]
+ ldr r0, [r4]
+ ldrb r2, [r3, #0x11]
+ add r2, r3, r2
+ add r2, #0x2c
+ ldrb r2, [r2]
+ bl MOD11_02230014
+ mov r1, #0x9f
+ add r2, r5, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _02251E6A
+ ldr r0, [sp, #0x10]
+ add r1, r5, #0
+ add r0, #0x4a
+ strb r1, [r0]
+_02251E6A:
+ ldr r0, [sp, #0x10]
+ mov r2, #1
+ add r1, r0, #0
+ ldr r1, [r1, #0x28]
+ lsl r2, r2, #8
+ bl MOD11_02256D70
+ mov r1, #2
+ add r0, sp, #0x1c
+ strb r1, [r0, #5]
+ ldr r0, [r4, #8]
+ mov r1, #0xf
+ add r0, r0, r7
+ ldrb r0, [r0, #0xc]
+ mov r2, #5
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [sp, #0x24]
+ ldr r0, [r4, #4]
+ ldrh r0, [r0, #0x1c]
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251E9E
+ mov r6, #0
+ add r5, r5, #1
+_02251E9E:
+ ldr r0, [r4, #4]
+ mov r1, #0x10
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251EB2
+ mov r6, #1
+ add r5, r5, #1
+_02251EB2:
+ ldr r0, [r4, #4]
+ mov r1, #0x11
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251EC6
+ mov r6, #2
+ add r5, r5, #1
+_02251EC6:
+ ldr r0, [r4, #4]
+ mov r1, #0x12
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251EDA
+ mov r6, #3
+ add r5, r5, #1
+_02251EDA:
+ ldr r0, [r4, #4]
+ mov r1, #0x13
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251EEE
+ mov r6, #4
+ add r5, r5, #1
+_02251EEE:
+ ldr r0, [r4, #4]
+ mov r1, #0x14
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251F02
+ mov r6, #5
+ add r5, r5, #1
+_02251F02:
+ ldr r0, [r4, #4]
+ mov r1, #0x15
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251F16
+ mov r6, #6
+ add r5, r5, #1
+_02251F16:
+ cmp r5, #1
+ beq _02251F22
+ ldr r1, _02251FF8 ; =0x000004CD
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F22:
+ cmp r6, #6
+ bhi _02251F76
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02251F32: ; jump table
+ .short _02251F40 - _02251F32 - 2 ; case 0
+ .short _02251F48 - _02251F32 - 2 ; case 1
+ .short _02251F50 - _02251F32 - 2 ; case 2
+ .short _02251F58 - _02251F32 - 2 ; case 3
+ .short _02251F60 - _02251F32 - 2 ; case 4
+ .short _02251F68 - _02251F32 - 2 ; case 5
+ .short _02251F70 - _02251F32 - 2 ; case 6
+_02251F40:
+ ldr r1, _02251FFC ; =0x000004BA
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F48:
+ ldr r1, _02252000 ; =0x000004B7
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F50:
+ ldr r1, _02252004 ; =0x000004B9
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F58:
+ ldr r1, _02252008 ; =0x000004BB
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F60:
+ ldr r1, _0225200C ; =0x000004B8
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F68:
+ ldr r1, _02252010 ; =0x000004BC
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F70:
+ ldr r1, _02252014 ; =0x000004BD
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+_02251F76:
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #0x20
+ bl MOD11_0223178C
+ strb r0, [r4, #0x11]
+ mov r0, #0x14
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251FA2:
+ ldr r0, [r4]
+ bl MOD11_02230070
+ bl MOD08_02212384
+ ldr r0, [r4]
+ bl MOD11_02230070
+ bl MOD08_022123A0
+ cmp r0, #0
+ bne _02251FEA
+ ldr r0, [r4]
+ bl MOD11_02230070
+ bl MOD08_022123B0
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251FD0:
+ ldrb r0, [r4, #0x11]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02251FEA
+ ldrb r0, [r4, #0x17]
+ sub r0, r0, #1
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0x17]
+ cmp r0, #0
+ bne _02251FEA
+ mov r0, #8
+ strb r0, [r4, #0xe]
+_02251FEA:
+ add sp, #0x1fc
+ add sp, #0x14
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02251FF0: .word 0x000004BE
+_02251FF4: .word 0x000004E2
+_02251FF8: .word 0x000004CD
+_02251FFC: .word 0x000004BA
+_02252000: .word 0x000004B7
+_02252004: .word 0x000004B9
+_02252008: .word 0x000004BB
+_0225200C: .word 0x000004B8
+_02252010: .word 0x000004BC
+_02252014: .word 0x000004BD
+
+ thumb_func_start MOD11_02252018
+MOD11_02252018: ; 0x02252018
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ mov r0, #1
+ add r3, sp, #0
+ strh r0, [r3]
+ add r4, r1, #0
+ mov r2, sp
+ ldrb r1, [r4, #0xd]
+ ldrh r6, [r3]
+ ldr r0, [r4]
+ sub r2, r2, #4
+ strh r6, [r2]
+ ldrh r3, [r3, #2]
+ strh r3, [r2, #2]
+ ldr r2, [r2]
+ bl MOD11_022558C4
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FreeToHeap
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ bl FreeToHeap
+ ldr r0, [r4, #8]
+ bl FreeToHeap
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02252070
+MOD11_02252070: ; 0x02252070
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #0xd]
+ add r5, r0, #0
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FreeToHeap
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ bl FreeToHeap
+ ldr r0, [r4, #8]
+ bl FreeToHeap
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022520A8
+MOD11_022520A8: ; 0x022520A8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ ldrb r1, [r4, #0xa]
+ add r5, r0, #0
+ cmp r1, #3
+ bhi _02252144
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022520CA: ; jump table
+ .short _022520D2 - _022520CA - 2 ; case 0
+ .short _0225213C - _022520CA - 2 ; case 1
+ .short _022523B2 - _022520CA - 2 ; case 2
+ .short _0225240E - _022520CA - 2 ; case 3
+_022520D2:
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_0222FF6C
+ add r6, r0, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ add r0, r6, #0
+ bl FUN_02019548
+ ldr r0, [r4]
+ bl MOD11_02230094
+ bl MOD11_0225C76C
+ strb r0, [r4, #0x17]
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ mov r2, #3
+ str r1, [sp]
+ mov r0, #7
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #5
+ add r3, r1, #0
+ add r0, r5, #0
+ lsl r2, r2, #0xa
+ sub r3, #0xd
+ bl FUN_02003210
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0xa
+ add r3, r1, #0
+ ldr r2, _0225246C ; =0x0000FFFF
+ add r0, r5, #0
+ sub r3, #0x12
+ bl FUN_02003210
+ ldrb r0, [r4, #0xa]
+ add sp, #0x24
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_0225213C:
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _02252146
+_02252144:
+ b _02252468
+_02252146:
+ ldr r0, [r4]
+ bl MOD11_0222D7F8
+ mov r0, #5
+ mov r1, #0x38
+ bl AllocFromHeap
+ str r0, [r4, #4]
+ mov r0, #5
+ bl FUN_0206B8AC
+ ldr r1, [r4, #4]
+ str r0, [r1]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #0xc
+ and r0, r1
+ cmp r0, #0xc
+ beq _0225217A
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #0xcb
+ beq _0225217A
+ b _0225228E
+_0225217A:
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02230260
+ cmp r0, #2
+ bne _02252196
+ ldrb r0, [r4, #9]
+ str r0, [sp, #0x18]
+ ldr r0, [r4]
+ ldr r1, [sp, #0x18]
+ bl MOD11_022302BC
+ str r0, [sp, #0x14]
+ b _022521A4
+_02252196:
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ str r0, [sp, #0x18]
+ ldrb r0, [r4, #9]
+ str r0, [sp, #0x14]
+_022521A4:
+ mov r0, #5
+ bl AllocMonZeroed
+ add r6, r0, #0
+ mov r5, #0
+_022521AE:
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ ldr r0, [r0]
+ bl FUN_0206B900
+ add r5, r5, #1
+ cmp r5, #6
+ blt _022521AE
+ add r0, r6, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ ldr r1, [sp, #0x18]
+ mov r7, #0
+ bl MOD11_0222FFC8
+ cmp r0, #0
+ ble _02252216
+ ldr r0, [sp, #0x18]
+ mov r1, #6
+ mul r1, r0
+ add r5, r4, r1
+ add r6, r7, #0
+_022521DC:
+ ldrb r2, [r5, #0x1c]
+ ldr r0, [r4]
+ ldr r1, [sp, #0x18]
+ bl MOD11_02230014
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ ldr r0, [r0]
+ bl GetPartyMonByIndex
+ add r1, r0, #0
+ ldr r0, [sp, #0x1c]
+ bl FUN_02069B88
+ ldr r0, [r4, #4]
+ ldrb r1, [r5, #0x1c]
+ add r0, r0, r6
+ add r0, #0x2c
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r1, [sp, #0x18]
+ add r5, r5, #1
+ add r6, r6, #2
+ add r7, r7, #1
+ bl MOD11_0222FFC8
+ cmp r7, r0
+ blt _022521DC
+_02252216:
+ ldr r0, [r4]
+ ldr r1, [sp, #0x14]
+ mov r6, #0
+ bl MOD11_0222FFC8
+ cmp r0, #0
+ ble _02252272
+ ldr r0, [sp, #0x14]
+ mov r1, #6
+ mul r1, r0
+ mov r0, #1
+ add r5, r4, r1
+ str r0, [sp, #0xc]
+ add r7, r6, #0
+_02252232:
+ ldrb r2, [r5, #0x1c]
+ ldr r0, [r4]
+ ldr r1, [sp, #0x14]
+ bl MOD11_02230014
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #4]
+ ldr r1, [sp, #0xc]
+ ldr r0, [r0]
+ bl GetPartyMonByIndex
+ add r1, r0, #0
+ ldr r0, [sp, #0x20]
+ bl FUN_02069B88
+ ldr r0, [r4, #4]
+ ldrb r1, [r5, #0x1c]
+ add r0, r0, r7
+ add r0, #0x2d
+ strb r1, [r0]
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x14]
+ add r0, r0, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ add r5, r5, #1
+ add r7, r7, #2
+ add r6, r6, #1
+ bl MOD11_0222FFC8
+ cmp r6, r0
+ blt _02252232
+_02252272:
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02230260
+ cmp r0, #4
+ bne _02252286
+ ldr r0, [r4, #4]
+ mov r1, #1
+ strb r1, [r0, #0x11]
+ b _0225230E
+_02252286:
+ ldr r0, [r4, #4]
+ mov r1, #0
+ strb r1, [r0, #0x11]
+ b _0225230E
+_0225228E:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _022522B0
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _022522B0
+ ldrb r1, [r4, #9]
+ mov r0, #1
+ add r7, r1, #0
+ and r7, r0
+ b _022522B4
+_022522B0:
+ ldrb r1, [r4, #9]
+ add r7, r1, #0
+_022522B4:
+ ldr r0, [r4]
+ bl MOD11_02230260
+ cmp r0, #4
+ bne _022522C2
+ mov r1, #1
+ b _022522C4
+_022522C2:
+ mov r1, #0
+_022522C4:
+ ldr r0, [r4, #4]
+ strb r1, [r0, #0x11]
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_0222FF88
+ str r0, [sp, #0x10]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0225230E
+ mov r0, #6
+ mul r0, r7
+ add r6, r4, r0
+_022522E2:
+ ldrb r2, [r6, #0x1c]
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_02230014
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ ldr r0, [r0]
+ bl FUN_0206B900
+ ldr r0, [r4, #4]
+ ldrb r1, [r6, #0x1c]
+ add r0, r0, r5
+ add r0, #0x2c
+ strb r1, [r0]
+ ldr r0, [sp, #0x10]
+ add r6, r6, #1
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _022522E2
+_0225230E:
+ ldr r1, [r4]
+ ldr r0, [r4, #4]
+ str r1, [r0, #8]
+ ldr r0, [r4, #4]
+ mov r1, #5
+ str r1, [r0, #0xc]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x36
+ strb r1, [r0]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #4]
+ strh r1, [r0, #0x24]
+ ldrb r1, [r4, #0x16]
+ ldr r0, [r4, #4]
+ strb r1, [r0, #0x12]
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0xb]
+ add r0, #0x35
+ strb r1, [r0]
+ ldrh r1, [r4, #0x14]
+ ldr r0, [r4, #4]
+ strh r1, [r0, #0x22]
+ ldrb r1, [r4, #9]
+ ldr r0, [r4, #4]
+ str r1, [r0, #0x28]
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0x17]
+ add r0, #0x32
+ strb r1, [r0]
+ ldrb r0, [r4, #9]
+ bl MaskOfFlagNo
+ ldrb r1, [r4, #0x18]
+ tst r0, r1
+ bne _0225235E
+ ldrb r0, [r4, #9]
+ add r0, r4, r0
+ ldrb r1, [r0, #0xc]
+ b _02252360
+_0225235E:
+ mov r1, #6
+_02252360:
+ ldr r0, [r4, #4]
+ strb r1, [r0, #0x14]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ beq _02252378
+ ldr r0, [r4, #4]
+ mov r1, #6
+ strb r1, [r0, #0x15]
+ b _022523A2
+_02252378:
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ bl MaskOfFlagNo
+ ldrb r1, [r4, #0x18]
+ tst r0, r1
+ bne _0225239C
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r0, r4, r0
+ ldrb r1, [r0, #0xc]
+ ldr r0, [r4, #4]
+ strb r1, [r0, #0x15]
+ b _022523A2
+_0225239C:
+ ldr r0, [r4, #4]
+ mov r1, #6
+ strb r1, [r0, #0x15]
+_022523A2:
+ ldr r0, [r4, #4]
+ bl MOD07_02211E60
+ ldrb r0, [r4, #0xa]
+ add sp, #0x24
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_022523B2:
+ ldr r0, [r4, #4]
+ add r0, #0x36
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02252468
+ ldr r0, [r4]
+ bl MOD11_0222D88C
+ ldr r0, [r4]
+ bl MOD11_02230094
+ ldr r1, [r4, #4]
+ add r1, #0x32
+ ldrb r1, [r1]
+ bl MOD11_0225C778
+ mov r0, #7
+ str r0, [sp]
+ mov r0, #0
+ mov r1, #5
+ str r0, [sp, #4]
+ mov r2, #3
+ add r3, r1, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ lsl r2, r2, #0xa
+ sub r3, #0xd
+ bl FUN_02003210
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ mov r1, #0xa
+ str r0, [sp, #4]
+ add r3, r1, #0
+ str r0, [sp, #8]
+ ldr r2, _0225246C ; =0x0000FFFF
+ add r0, r5, #0
+ sub r3, #0x12
+ bl FUN_02003210
+ ldrb r0, [r4, #0xa]
+ add sp, #0x24
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_0225240E:
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02252468
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #0
+ bl FUN_020143A8
+ ldr r3, [r4, #4]
+ ldr r0, [r4]
+ ldrb r2, [r3, #0x11]
+ cmp r2, #6
+ bne _02252436
+ ldrb r1, [r4, #9]
+ mov r2, #0xff
+ bl MOD11_02255964
+ b _02252444
+_02252436:
+ add r2, r3, r2
+ add r2, #0x2c
+ ldrb r2, [r2]
+ ldrb r1, [r4, #9]
+ add r2, r2, #1
+ bl MOD11_02255964
+_02252444:
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ ldr r0, [r4, #4]
+ ldr r0, [r0]
+ bl FreeToHeap
+ ldr r0, [r4, #4]
+ bl FreeToHeap
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_02252468:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225246C: .word 0x0000FFFF
+
+ thumb_func_start MOD11_02252470
+MOD11_02252470: ; 0x02252470
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ str r0, [sp]
+ ldr r0, [r5]
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ ldrb r6, [r5, #9]
+ tst r1, r0
+ bne _0225248C
+ mov r1, #8
+ tst r0, r1
+ beq _02252490
+_0225248C:
+ str r6, [sp, #4]
+ b _0225249A
+_02252490:
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl MOD11_022302BC
+ str r0, [sp, #4]
+_0225249A:
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl MOD16_021F4A30
+ add r4, r0, #0
+ cmp r4, #6
+ bne _022524FE
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl MOD16_021F4698
+ add r4, r0, #0
+ cmp r4, #6
+ bne _022524FE
+ ldrb r1, [r5, #9]
+ ldr r0, [r5]
+ bl MOD11_0222FF88
+ str r0, [sp, #8]
+ mov r4, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _022524FE
+ ldr r0, [sp, #4]
+ add r7, r5, r6
+ add r6, r5, r0
+_022524D0:
+ ldrb r1, [r5, #9]
+ ldr r0, [r5]
+ add r2, r4, #0
+ bl MOD11_02230014
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022524F2
+ ldrb r0, [r7, #0xc]
+ cmp r4, r0
+ beq _022524F2
+ ldrb r0, [r6, #0xc]
+ cmp r4, r0
+ bne _022524FE
+_022524F2:
+ ldr r0, [sp, #8]
+ add r4, r4, #1
+ bl GetPartyCount
+ cmp r4, r0
+ blt _022524D0
+_022524FE:
+ ldrb r1, [r5, #9]
+ ldr r0, [r5]
+ add r2, r4, #1
+ bl MOD11_02255964
+ ldrb r1, [r5, #9]
+ ldrb r2, [r5, #8]
+ ldr r0, [r5]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl FreeToHeap
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02252524
+MOD11_02252524: ; 0x02252524
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #9]
+ add r5, r0, #0
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02252544
+MOD11_02252544: ; 0x02252544
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldr r0, [r4]
+ bl MOD11_02230094
+ add r5, r0, #0
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ str r0, [sp]
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldrb r0, [r4, #0xd]
+ cmp r1, r0
+ beq _0225257E
+ ldr r0, [r4]
+ bl MOD11_02231380
+ add r6, r0, #0
+ b _02252580
+_0225257E:
+ mov r6, #0
+_02252580:
+ ldrb r0, [r4, #0xe]
+ cmp r0, #4
+ bhi _02252600
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02252592: ; jump table
+ .short _0225259C - _02252592 - 2 ; case 0
+ .short _022525EC - _02252592 - 2 ; case 1
+ .short _0225267E - _02252592 - 2 ; case 2
+ .short _0225269C - _02252592 - 2 ; case 3
+ .short _022526E0 - _02252592 - 2 ; case 4
+_0225259C:
+ add r0, r5, #0
+ bl MOD11_02258F5C
+ cmp r0, #0
+ beq _02252600
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _022525E4
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r5, r0, #0
+ ldrb r0, [r4, #0xf]
+ cmp r0, #5
+ add r0, sp, #4
+ bne _022525C6
+ mov r1, #0x82
+ strb r1, [r0, #5]
+ ldr r0, [r4, #0x14]
+ str r0, [sp, #0xc]
+ b _022525CA
+_022525C6:
+ mov r1, #0
+ strb r1, [r0, #5]
+_022525CA:
+ ldr r1, [r4, #0x10]
+ add r0, sp, #4
+ strh r1, [r0, #6]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #8
+ bl MOD11_0223178C
+ strh r0, [r4, #0x1a]
+_022525E4:
+ mov r0, #1
+ add sp, #0x2c
+ strb r0, [r4, #0xe]
+ pop {r4, r5, r6, r7, pc}
+_022525EC:
+ ldrh r0, [r4, #0x1a]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02252602
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _02252602
+_02252600:
+ b _0225270A
+_02252602:
+ add r0, r5, #0
+ bl MOD11_02258E30
+ ldrh r1, [r4, #0x18]
+ add r0, sp, #4
+ strh r1, [r0]
+ ldrb r0, [r4, #0xf]
+ cmp r0, #5
+ bhi _02252672
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02252620: ; jump table
+ .short _0225262C - _02252620 - 2 ; case 0
+ .short _0225263A - _02252620 - 2 ; case 1
+ .short _02252648 - _02252620 - 2 ; case 2
+ .short _02252656 - _02252620 - 2 ; case 3
+ .short _02252664 - _02252620 - 2 ; case 4
+ .short _0225262C - _02252620 - 2 ; case 5
+_0225262C:
+ add r0, r5, #0
+ mov r1, #0xd
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02258820
+ b _02252676
+_0225263A:
+ add r0, r5, #0
+ mov r1, #0xe
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02258820
+ b _02252676
+_02252648:
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02258820
+ b _02252676
+_02252656:
+ add r0, r5, #0
+ mov r1, #0x10
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02258820
+ b _02252676
+_02252664:
+ add r0, r5, #0
+ mov r1, #0x11
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02258820
+ b _02252676
+_02252672:
+ bl ErrorHandling
+_02252676:
+ mov r0, #2
+ add sp, #0x2c
+ strb r0, [r4, #0xe]
+ pop {r4, r5, r6, r7, pc}
+_0225267E:
+ add r0, r5, #0
+ bl MOD11_02258E74
+ mov r1, #0
+ mvn r1, r1
+ str r0, [r4, #8]
+ cmp r0, r1
+ beq _0225270A
+ ldr r0, _02252710 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #3
+ add sp, #0x2c
+ strb r0, [r4, #0xe]
+ pop {r4, r5, r6, r7, pc}
+_0225269C:
+ add r0, r5, #0
+ bl MOD11_02258F5C
+ cmp r0, #1
+ bne _0225270A
+ ldr r0, [r4, #4]
+ bl MOD11_02257238
+ ldr r0, [sp]
+ bl MOD11_0225468C
+ add r0, r6, #0
+ bl MOD11_02258184
+ add r0, r5, #0
+ bl MOD11_02258E30
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD11_02258820
+ ldr r0, [r4, #8]
+ cmp r0, #1
+ bne _022526D8
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+_022526D8:
+ mov r0, #4
+ add sp, #0x2c
+ strb r0, [r4, #0xe]
+ pop {r4, r5, r6, r7, pc}
+_022526E0:
+ add r0, r5, #0
+ bl MOD11_0225B780
+ cmp r0, #1
+ bne _0225270A
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ ldr r2, [r4, #8]
+ bl MOD11_02255528
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r7, #0
+ bl FUN_0200CAB4
+_0225270A:
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02252710: .word 0x000005DD
+
+ thumb_func_start MOD11_02252714
+MOD11_02252714: ; 0x02252714
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #0xd]
+ add r5, r0, #0
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02252734
+MOD11_02252734: ; 0x02252734
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #0xd]
+ add r5, r0, #0
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02252754
+MOD11_02252754: ; 0x02252754
+ push {r3, r4, r5, lr}
+ sub sp, #0x1fc
+ sub sp, #0x14
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r0, [r0]
+ cmp r0, #0xa
+ bls _0225276A
+ b _022529B8
+_0225276A:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02252776: ; jump table
+ .short _0225278C - _02252776 - 2 ; case 0
+ .short _02252996 - _02252776 - 2 ; case 1
+ .short _022527E6 - _02252776 - 2 ; case 2
+ .short _02252996 - _02252776 - 2 ; case 3
+ .short _02252842 - _02252776 - 2 ; case 4
+ .short _02252996 - _02252776 - 2 ; case 5
+ .short _02252890 - _02252776 - 2 ; case 6
+ .short _02252996 - _02252776 - 2 ; case 7
+ .short _02252918 - _02252776 - 2 ; case 8
+ .short _02252996 - _02252776 - 2 ; case 9
+ .short _02252974 - _02252776 - 2 ; case 10
+_0225278C:
+ ldrh r0, [r4, #0x1e]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _022527DA
+ ldr r0, [r4, #0x5c]
+ cmp r0, #0
+ bne _022527DA
+ ldr r0, [r4, #8]
+ mov r1, #6
+ bl FUN_0200782C
+ cmp r0, #0
+ bne _022527DA
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r1, [r0]
+ mov r0, #0xf
+ add r2, sp, #0x1b8
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0xc]
+ add r3, sp, #0x1b8
+ bl MOD11_02254404
+ add sp, #0x1fc
+ mov r0, #1
+ add r4, #0x6a
+ add sp, #0x14
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_022527DA:
+ add sp, #0x1fc
+ mov r0, #4
+ add r4, #0x6a
+ add sp, #0x14
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_022527E6:
+ add r3, r4, #0
+ add r3, #0x69
+ ldrb r3, [r3]
+ ldr r0, [r4]
+ add r1, #0x10
+ add r2, sp, #0x168
+ bl MOD11_0225452C
+ add r0, sp, #0x168
+ mov r1, #5
+ bl MOD08_0222A494
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r1, [r0]
+ mov r0, #0x10
+ add r2, sp, #0x110
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0xc]
+ add r3, sp, #0x110
+ bl MOD11_02254404
+ mov r0, #0x1a
+ add sp, #0x1fc
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r0, [r0]
+ add r4, #0x6a
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252842:
+ ldr r0, [r4]
+ mov r1, #2
+ bl MOD11_02231484
+ add r0, r4, #0
+ add r0, #0x6b
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0225285A
+ ldr r0, [r4]
+ bl MOD11_02231410
+_0225285A:
+ add r0, r4, #0
+ add r0, #0x6c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02252870
+ ldr r0, [r4]
+ bl MOD11_02230068
+ mov r1, #1
+ bl FUN_02008284
+_02252870:
+ add r3, r4, #0
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0xc]
+ add r3, #0x10
+ bl MOD11_02254404
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r0, [r0]
+ add sp, #0x1fc
+ add r4, #0x6a
+ add r0, r0, #1
+ add sp, #0x14
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252890:
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_02231484
+ add r0, r4, #0
+ add r0, #0x6b
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022528A8
+ ldr r0, [r4]
+ bl MOD11_022313E0
+_022528A8:
+ add r0, r4, #0
+ add r0, #0x6c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022528BE
+ ldr r0, [r4]
+ bl MOD11_02230068
+ mov r1, #1
+ bl FUN_02008290
+_022528BE:
+ ldrh r0, [r4, #0x1e]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _0225290C
+ ldr r0, [r4, #0x5c]
+ cmp r0, #0
+ bne _0225290C
+ ldr r0, [r4, #8]
+ mov r1, #6
+ bl FUN_0200782C
+ cmp r0, #0
+ bne _0225290C
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r1, [r0]
+ mov r0, #0xf
+ add r2, sp, #0xb8
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0xc]
+ add r3, sp, #0xb8
+ bl MOD11_02254404
+ add sp, #0x1fc
+ mov r0, #7
+ add r4, #0x6a
+ add sp, #0x14
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_0225290C:
+ add sp, #0x1fc
+ mov r0, #0xa
+ add r4, #0x6a
+ add sp, #0x14
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252918:
+ add r3, r4, #0
+ add r3, #0x69
+ ldrb r3, [r3]
+ ldr r0, [r4]
+ add r1, #0x10
+ add r2, sp, #0x68
+ bl MOD11_0225452C
+ add r0, sp, #0x68
+ mov r1, #5
+ bl MOD08_0222A568
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r1, [r0]
+ mov r0, #0x10
+ add r2, sp, #0x10
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0xc]
+ add r3, sp, #0x10
+ bl MOD11_02254404
+ mov r0, #0x1a
+ add sp, #0x1fc
+ ldr r1, [r4, #4]
+ mov r2, #1
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r0, [r0]
+ add r4, #0x6a
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252974:
+ add r2, r4, #0
+ add r1, #0x69
+ add r2, #0x68
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add sp, #0x1fc
+ add sp, #0x14
+ pop {r3, r4, r5, pc}
+_02252996:
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212384
+ ldr r0, [r4, #0xc]
+ bl MOD08_022123A0
+ cmp r0, #0
+ bne _022529B8
+ ldr r0, [r4, #0xc]
+ bl MOD08_022123B0
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r0, [r0]
+ add r4, #0x6a
+ add r0, r0, #1
+ strb r0, [r4]
+_022529B8:
+ add sp, #0x1fc
+ add sp, #0x14
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022529C0
+MOD11_022529C0: ; 0x022529C0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #9]
+ cmp r0, #6
+ bhs _022529FA
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ bne _022529F4
+ mov r0, #2
+ strb r0, [r4, #0xa]
+ ldrb r0, [r4, #9]
+ mov r1, #6
+ add r0, r0, #1
+ strb r0, [r4, #9]
+ ldr r0, [r4, #4]
+ bl FUN_0200782C
+ add r3, r0, #0
+ mov r2, #1
+ ldr r0, [r4, #4]
+ mov r1, #6
+ eor r2, r3
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_022529F4:
+ sub r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_022529FA:
+ ldr r0, [r4, #4]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ ldrb r1, [r4, #8]
+ ldr r0, [r4]
+ mov r2, #0x17
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02252A1C
+MOD11_02252A1C: ; 0x02252A1C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _02252A2E
+ cmp r0, #1
+ beq _02252A3C
+ b _02252A52
+_02252A2E:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_02257150
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_02252A3C:
+ add r0, r4, #0
+ bl MOD11_02257184
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02252A6C
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252A52:
+ add r2, r4, #0
+ add r1, #0x24
+ add r2, #0x4c
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4, #0xc]
+ bl MOD11_022567B8
+ mov r0, #0
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02252A6C:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02252A70
+MOD11_02252A70: ; 0x02252A70
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _02252A86
+ cmp r0, #1
+ beq _02252AA2
+ cmp r0, #2
+ beq _02252AE8
+ b _02252B0E
+_02252A86:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x4e
+ strb r1, [r0]
+ ldr r0, _02252B2C ; =0x0000070B
+ bl FUN_020054C8
+ ldr r1, [r4, #0x40]
+ add r0, r4, #0
+ bl MOD11_022571B8
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_02252AA2:
+ add r0, r4, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ cmp r0, #8
+ bhs _02252ABA
+ add r0, r4, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x4e
+ strb r1, [r0]
+_02252ABA:
+ add r0, r4, #0
+ bl MOD11_022571EC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02252B28
+ add r0, r4, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ cmp r0, #8
+ blo _02252AE0
+ ldr r0, _02252B2C ; =0x0000070B
+ mov r1, #0
+ bl FUN_020054F0
+ mov r0, #0x64
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252AE0:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252AE8:
+ add r0, r4, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x4e
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ cmp r0, #8
+ blo _02252B28
+ ldr r0, _02252B2C ; =0x0000070B
+ mov r1, #0
+ bl FUN_020054F0
+ mov r0, #0x64
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252B0E:
+ add r2, r4, #0
+ add r1, #0x24
+ add r2, #0x4c
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4, #0xc]
+ bl MOD11_022567B8
+ mov r0, #0
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02252B28:
+ pop {r3, r4, r5, pc}
+ nop
+_02252B2C: .word 0x0000070B
+
+ thumb_func_start MOD11_02252B30
+MOD11_02252B30: ; 0x02252B30
+ push {r4, r5, r6, lr}
+ sub sp, #0x110
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r1, r4, #0
+ add r1, #0x66
+ ldrb r1, [r1]
+ add r5, r0, #0
+ cmp r1, #0xa
+ bls _02252B4C
+ b _02252DAA
+_02252B4C:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02252B58: ; jump table
+ .short _02252B6E - _02252B58 - 2 ; case 0
+ .short _02252C16 - _02252B58 - 2 ; case 1
+ .short _02252BBA - _02252B58 - 2 ; case 2
+ .short _02252C16 - _02252B58 - 2 ; case 3
+ .short _02252C3A - _02252B58 - 2 ; case 4
+ .short _02252C82 - _02252B58 - 2 ; case 5
+ .short _02252C9C - _02252B58 - 2 ; case 6
+ .short _02252CD8 - _02252B58 - 2 ; case 7
+ .short _02252D04 - _02252B58 - 2 ; case 8
+ .short _02252D44 - _02252B58 - 2 ; case 9
+ .short _02252D8C - _02252B58 - 2 ; case 10
+_02252B6E:
+ add r0, r4, #0
+ add r0, #0x70
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _02252BB0
+ add r0, r4, #0
+ add r0, #0x65
+ ldrb r1, [r0]
+ mov r0, #0xf
+ add r2, sp, #0xb8
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0xb8
+ bl MOD11_02254404
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r4, #0x66
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252BB0:
+ mov r0, #4
+ add r4, #0x66
+ add sp, #0x110
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252BBA:
+ add r3, r4, #0
+ add r3, #0x65
+ ldrb r3, [r3]
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0xc
+ add r2, sp, #0x68
+ bl MOD11_0225452C
+ add r0, sp, #0x68
+ mov r1, #5
+ bl MOD08_0222A494
+ add r0, r4, #0
+ add r0, #0x65
+ ldrb r1, [r0]
+ mov r0, #0x10
+ add r2, sp, #0x10
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x10
+ bl MOD11_02254404
+ mov r0, #0x1a
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r4, #0x66
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252C16:
+ bl MOD08_02212384
+ add r0, r5, #0
+ bl MOD08_022123A0
+ cmp r0, #0
+ bne _02252C8A
+ add r0, r5, #0
+ bl MOD08_022123B0
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r4, #0x66
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252C3A:
+ add r0, r4, #0
+ add r0, #0x67
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _02252C48
+ mov r5, #0x75
+ b _02252C4C
+_02252C48:
+ mov r5, #0x74
+ mvn r5, r5
+_02252C4C:
+ add r1, r4, #0
+ add r1, #0x65
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ add r1, r4, #0
+ add r1, #0x72
+ ldrh r1, [r1]
+ add r2, r4, #0
+ add r2, #0x68
+ str r1, [sp, #4]
+ mov r1, #5
+ str r1, [sp, #8]
+ ldrh r2, [r2]
+ add r3, r5, #0
+ bl FUN_02069FB0
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x66
+ strb r1, [r0]
+_02252C82:
+ bl FUN_02005670
+ cmp r0, #0
+ beq _02252C8C
+_02252C8A:
+ b _02252DAA
+_02252C8C:
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r4, #0x66
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252C9C:
+ add r0, r4, #0
+ add r0, #0x67
+ ldrb r0, [r0]
+ cmp r0, #2
+ ldr r0, _02252DB0 ; =0x00000703
+ bne _02252CB0
+ mov r1, #0x75
+ bl FUN_020054A8
+ b _02252CB8
+_02252CB0:
+ mov r1, #0x74
+ mvn r1, r1
+ bl FUN_020054A8
+_02252CB8:
+ ldr r0, [r4, #8]
+ mov r1, #0x29
+ bl FUN_0200782C
+ cmp r0, #0
+ ble _02252CCE
+ mov r0, #7
+ add r4, #0x66
+ add sp, #0x110
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252CCE:
+ mov r0, #8
+ add r4, #0x66
+ add sp, #0x110
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252CD8:
+ ldr r0, [r4, #8]
+ mov r1, #0x29
+ bl FUN_0200782C
+ add r5, r0, #0
+ sub r5, #8
+ bpl _02252CE8
+ mov r5, #0
+_02252CE8:
+ ldr r0, [r4, #8]
+ mov r1, #0x29
+ add r2, r5, #0
+ bl FUN_02007558
+ cmp r5, #0
+ bne _02252DAA
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x66
+ strb r1, [r0]
+_02252D04:
+ ldr r0, [r4, #0x6c]
+ add r1, r4, #0
+ str r0, [sp]
+ add r0, r4, #0
+ add r2, r4, #0
+ add r3, r4, #0
+ add r0, #0x68
+ add r1, #0x6a
+ add r2, #0x67
+ add r3, #0x6b
+ ldrh r0, [r0]
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldrb r3, [r3]
+ bl FUN_02068E88
+ mov r3, #0x50
+ sub r0, r3, r0
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ bl FUN_02007E40
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r4, #0x66
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252D44:
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ add r2, r0, #0
+ ldr r0, [r4, #8]
+ mov r1, #1
+ add r2, #8
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ mov r1, #0x12
+ bl FUN_0200782C
+ add r5, r0, #0
+ sub r5, #8
+ bpl _02252D68
+ mov r5, #0
+_02252D68:
+ ldr r0, [r4, #8]
+ mov r1, #0x12
+ add r2, r5, #0
+ bl FUN_02007558
+ cmp r5, #0
+ bne _02252DAA
+ ldr r0, [r4, #8]
+ bl FUN_02007534
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r4, #0x66
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252D8C:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x65
+ add r2, #0x64
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_02252DAA:
+ add sp, #0x110
+ pop {r4, r5, r6, pc}
+ nop
+_02252DB0: .word 0x00000703
+
+ thumb_func_start MOD11_02252DB4
+MOD11_02252DB4: ; 0x02252DB4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300CC
+ add r4, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230068
+ add r7, r0, #0
+ ldrb r0, [r5, #6]
+ cmp r0, #0
+ beq _02252DDE
+ cmp r0, #1
+ beq _02252E1C
+ cmp r0, #2
+ beq _02252E30
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_02252DDE:
+ ldr r0, [r5]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _02252E4C ; =0x0000FFFF
+ add r0, r4, #0
+ mov r1, #0xf
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ add r0, r7, #0
+ mov r2, #0x10
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02007E98
+ mov r0, #0
+ mov r1, #0x10
+ bl FUN_020053CC
+ ldrb r0, [r5, #6]
+ add r0, r0, #1
+ strb r0, [r5, #6]
+_02252E1C:
+ add r0, r4, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02252E46
+ ldrb r0, [r5, #6]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r5, #6]
+ pop {r4, r5, r6, r7, pc}
+_02252E30:
+ ldrb r1, [r5, #5]
+ ldrb r2, [r5, #4]
+ ldr r0, [r5]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_02252E46:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02252E4C: .word 0x0000FFFF
+
+ thumb_func_start MOD11_02252E50
+MOD11_02252E50: ; 0x02252E50
+ push {r4, r5, r6, lr}
+ sub sp, #0x110
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r1, r4, #0
+ add r1, #0x62
+ ldrb r1, [r1]
+ add r5, r0, #0
+ cmp r1, #4
+ bls _02252E6C
+ b _02252F98
+_02252E6C:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02252E78: ; jump table
+ .short _02252E82 - _02252E78 - 2 ; case 0
+ .short _02252EC4 - _02252E78 - 2 ; case 1
+ .short _02252F74 - _02252E78 - 2 ; case 2
+ .short _02252F18 - _02252E78 - 2 ; case 3
+ .short _02252F74 - _02252E78 - 2 ; case 4
+_02252E82:
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ cmp r0, #0
+ beq _02252EBA
+ add r2, r4, #0
+ add r2, #0x63
+ ldrb r2, [r2]
+ mov r1, #6
+ bl FUN_02007558
+ add r0, r4, #0
+ add r0, #0x63
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _02252EAA
+ mov r0, #0xff
+ add r4, #0x62
+ add sp, #0x110
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252EAA:
+ add r0, r4, #0
+ add r0, #0x62
+ ldrb r0, [r0]
+ add r4, #0x62
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252EBA:
+ mov r0, #0xff
+ add r4, #0x62
+ add sp, #0x110
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252EC4:
+ ldr r0, [r4, #0x64]
+ cmp r0, #0
+ beq _02252F0E
+ mov r0, #0x1a
+ ldr r1, [r4, #4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02252F0E
+ add r0, r4, #0
+ add r0, #0x61
+ ldrb r1, [r0]
+ mov r0, #0xf
+ add r2, sp, #0xb8
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0xb8
+ bl MOD11_02254404
+ add r0, r4, #0
+ add r0, #0x62
+ ldrb r0, [r0]
+ add r4, #0x62
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252F0E:
+ mov r0, #0xff
+ add r4, #0x62
+ add sp, #0x110
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252F18:
+ add r3, r4, #0
+ add r3, #0x61
+ ldrb r3, [r3]
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #8
+ add r2, sp, #0x68
+ bl MOD11_0225452C
+ add r0, sp, #0x68
+ mov r1, #5
+ bl MOD08_0222A568
+ add r0, r4, #0
+ add r0, #0x61
+ ldrb r1, [r0]
+ mov r0, #0x10
+ add r2, sp, #0x10
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x10
+ bl MOD11_02254404
+ mov r0, #0x1a
+ ldr r1, [r4, #4]
+ mov r2, #1
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x62
+ ldrb r0, [r0]
+ add r4, #0x62
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252F74:
+ bl MOD08_02212384
+ add r0, r5, #0
+ bl MOD08_022123A0
+ cmp r0, #0
+ bne _02252FB6
+ add r0, r5, #0
+ bl MOD08_022123B0
+ add r0, r4, #0
+ add r0, #0x62
+ ldrb r0, [r0]
+ add r4, #0x62
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252F98:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x61
+ add r2, #0x60
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_02252FB6:
+ add sp, #0x110
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02252FBC
+MOD11_02252FBC: ; 0x02252FBC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ beq _02252FCE
+ cmp r0, #1
+ beq _02252FE4
+ pop {r3, r4, r5, pc}
+_02252FCE:
+ ldr r0, [r4, #4]
+ add r1, #0xb
+ bl MOD11_0225805C
+ ldr r0, _02253004 ; =0x0000070C
+ bl FUN_020054C8
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_02252FE4:
+ ldrb r0, [r4, #0xb]
+ cmp r0, #1
+ bne _02253000
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02253000:
+ pop {r3, r4, r5, pc}
+ nop
+_02253004: .word 0x0000070C
+
+ thumb_func_start MOD11_02253008
+MOD11_02253008: ; 0x02253008
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_022312C0
+ cmp r0, #0
+ beq _0225302A
+ ldr r0, [r4]
+ bl MOD11_022312C0
+ bl FUN_0200DBFC
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_022312C8
+_0225302A:
+ ldrb r0, [r4, #6]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0225304A
+ ldrb r1, [r4, #5]
+ ldrb r2, [r4, #4]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0225304A:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0225304C
+MOD11_0225304C: ; 0x0225304C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #7]
+ cmp r0, #0
+ beq _0225305E
+ cmp r0, #1
+ beq _02253074
+ pop {r3, r4, r5, pc}
+_0225305E:
+ ldrb r0, [r4, #6]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0225309E
+ ldrb r0, [r4, #7]
+ add r0, r0, #1
+ strb r0, [r4, #7]
+ mov r0, #0
+ strb r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02253074:
+ ldrb r0, [r4, #8]
+ add r0, r0, #1
+ strb r0, [r4, #8]
+ ldrb r0, [r4, #8]
+ cmp r0, #0x28
+ bne _0225309E
+ ldrb r1, [r4, #5]
+ ldr r0, [r4]
+ bl MOD11_02256004
+ ldrb r1, [r4, #5]
+ ldrb r2, [r4, #4]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0225309E:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022530A0
+MOD11_022530A0: ; 0x022530A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r1, #0
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230294
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_022302A8
+ lsl r1, r0, #2
+ ldr r0, _022533D8 ; =0x0225E86C
+ ldr r6, [r0, r1]
+ ldrb r0, [r4, #0x15]
+ add r0, r0, #1
+ strb r0, [r4, #0x15]
+ ldrb r0, [r4, #0x14]
+ cmp r0, #6
+ bhi _02253102
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022530E2: ; jump table
+ .short _022530F0 - _022530E2 - 2 ; case 0
+ .short _022530F8 - _022530E2 - 2 ; case 1
+ .short _0225314A - _022530E2 - 2 ; case 2
+ .short _022532AC - _022530E2 - 2 ; case 3
+ .short _022532C8 - _022530E2 - 2 ; case 4
+ .short _022532E4 - _022530E2 - 2 ; case 5
+ .short _022532F6 - _022530E2 - 2 ; case 6
+_022530F0:
+ add r0, r0, #1
+ add sp, #0x18
+ strb r0, [r4, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+_022530F8:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _02253104
+_02253102:
+ b _022533D4
+_02253104:
+ mov r0, #5
+ mov r1, #0
+ bl MOD08_0222A0D4
+ str r0, [r4, #4]
+ ldr r0, _022533DC ; =0x0225E820
+ add r1, sp, #0x10
+ ldrb r5, [r0, r7]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ str r5, [sp, #0x10]
+ ldr r0, [r4, #4]
+ bl MOD08_0222A110
+ str r0, [r4, #8]
+ add r0, r5, #1
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #4]
+ add r1, sp, #0x10
+ bl MOD08_0222A110
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ bl MOD08_0222A1DC
+ ldr r0, _022533E0 ; =0x0000084F
+ bl FUN_020054C8
+ ldrb r0, [r4, #0x14]
+ add sp, #0x18
+ add r0, r0, #1
+ strb r0, [r4, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225314A:
+ ldrb r0, [r4, #0x15]
+ cmp r0, #0xa
+ bne _02253180
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r2, _022533E4 ; =0x0000F3FF
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_02003210
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r2, _022533E8 ; =0x00003FFF
+ add r0, r5, #0
+ mov r1, #4
+ bl FUN_02003210
+_02253180:
+ ldrb r0, [r4, #0x15]
+ cmp r0, #0x14
+ bne _0225318C
+ ldr r0, [r4, #0xc]
+ bl MOD08_0222A1DC
+_0225318C:
+ ldrb r0, [r4, #0x15]
+ cmp r0, #0x17
+ bne _0225319A
+ mov r0, #0x85
+ lsl r0, r0, #4
+ bl FUN_020054C8
+_0225319A:
+ ldrb r0, [r4, #0x15]
+ cmp r0, #0x1c
+ bne _02253286
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_020031FC
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231244
+ add r1, r7, #0
+ mov r2, #0xe0
+ bl MIi_CpuCopy16
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #0x4a
+ bne _022531DC
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_020031FC
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r7, #0
+ mov r2, #0xa0
+ bl MIi_CpuCopy16
+ b _0225323E
+_022531DC:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02253200
+ add r0, r5, #0
+ bl FUN_020031FC
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r7, #0
+ mov r2, #0xe0
+ bl MIi_CpuCopy16
+ b _0225323E
+_02253200:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ beq _02253226
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_020031FC
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r7, #0
+ mov r2, #0xa0
+ bl MIi_CpuCopy16
+ b _0225323E
+_02253226:
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_020031FC
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r7, #0
+ mov r2, #0x80
+ bl MIi_CpuCopy16
+_0225323E:
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ lsl r0, r6, #0x10
+ str r3, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r2, _022533E4 ; =0x0000F3FF
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_02003210
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ lsl r0, r6, #0x10
+ str r3, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r2, _022533E8 ; =0x00003FFF
+ add r0, r5, #0
+ mov r1, #4
+ bl FUN_02003210
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ lsl r0, r6, #0x10
+ str r3, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r2, _022533EC ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #0xa
+ bl FUN_02003210
+_02253286:
+ ldrb r0, [r4, #0x15]
+ cmp r0, #0x32
+ bne _022532B6
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ mov r2, #3
+ str r3, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ lsl r2, r2, #0xa
+ bl FUN_02003210
+ ldrb r0, [r4, #0x14]
+ add sp, #0x18
+ add r0, r0, #1
+ strb r0, [r4, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+_022532AC:
+ ldr r0, [r4, #0xc]
+ bl MOD08_0222A204
+ cmp r0, #0
+ beq _022532B8
+_022532B6:
+ b _022533D4
+_022532B8:
+ ldr r0, [r4, #4]
+ bl MOD08_0222A14C
+ ldrb r0, [r4, #0x14]
+ add sp, #0x18
+ add r0, r0, #1
+ strb r0, [r4, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+_022532C8:
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #0
+ bl FUN_020143A8
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [sp, #0xc]
+ bl FUN_0200CAB4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_022532E4:
+ ldr r0, [r4, #4]
+ bl MOD08_0222A170
+ ldr r0, [r4, #4]
+ bl MOD08_0222A14C
+ ldrb r0, [r4, #0x14]
+ add r0, r0, #1
+ strb r0, [r4, #0x14]
+_022532F6:
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_020031FC
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231244
+ add r1, r6, #0
+ mov r2, #0xe0
+ bl MIi_CpuCopy16
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #0x4a
+ bne _02253332
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_020031FC
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r6, #0
+ mov r2, #0xa0
+ bl MIi_CpuCopy16
+ b _02253394
+_02253332:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02253356
+ add r0, r5, #0
+ bl FUN_020031FC
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r6, #0
+ mov r2, #0xe0
+ bl MIi_CpuCopy16
+ b _02253394
+_02253356:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ beq _0225337C
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_020031FC
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r6, #0
+ mov r2, #0xa0
+ bl MIi_CpuCopy16
+ b _02253394
+_0225337C:
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_020031FC
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r6, #0
+ mov r2, #0x80
+ bl MIi_CpuCopy16
+_02253394:
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, _022533F0 ; =0x00007FFF
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, _022533EC ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_02003210
+ mov r3, #0
+ str r3, [sp]
+ ldr r2, _022533EC ; =0x0000FFFF
+ str r3, [sp, #4]
+ str r2, [sp, #8]
+ add r0, r5, #0
+ mov r1, #4
+ lsr r2, r2, #2
+ bl FUN_02003210
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, _022533F0 ; =0x00007FFF
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, _022533EC ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #0xa
+ bl FUN_02003210
+ mov r0, #4
+ strb r0, [r4, #0x14]
+_022533D4:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022533D8: .word 0x0225E86C
+_022533DC: .word 0x0225E820
+_022533E0: .word 0x0000084F
+_022533E4: .word 0x0000F3FF
+_022533E8: .word 0x00003FFF
+_022533EC: .word 0x0000FFFF
+_022533F0: .word 0x00007FFF
+
+ thumb_func_start MOD11_022533F4
+MOD11_022533F4: ; 0x022533F4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ ldrb r1, [r4, #0xa]
+ add r6, r0, #0
+ cmp r1, #3
+ bls _0225340C
+ b _02253524
+_0225340C:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02253418: ; jump table
+ .short _02253420 - _02253418 - 2 ; case 0
+ .short _02253440 - _02253418 - 2 ; case 1
+ .short _022534B0 - _02253418 - 2 ; case 2
+ .short _022534E2 - _02253418 - 2 ; case 3
+_02253420:
+ mov r2, #0
+ str r2, [sp]
+ mov r1, #0x10
+ str r1, [sp, #4]
+ mov r1, #0xa
+ str r2, [sp, #8]
+ add r3, r1, #0
+ ldr r2, _02253528 ; =0x0000FFFF
+ sub r3, #0x12
+ bl FUN_02003210
+ ldrb r0, [r4, #0xa]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, pc}
+_02253440:
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02253524
+ ldr r0, [r4]
+ bl MOD11_0222D7F8
+ mov r0, #5
+ mov r1, #0x38
+ bl AllocFromHeap
+ str r0, [r4, #4]
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_0222FF88
+ ldr r1, [r4, #4]
+ mov r2, #3
+ str r0, [r1]
+ ldr r1, [r4]
+ ldr r0, [r4, #4]
+ str r1, [r0, #8]
+ ldr r0, [r4, #4]
+ mov r1, #5
+ str r1, [r0, #0xc]
+ ldrb r1, [r4, #0xe]
+ ldr r0, [r4, #4]
+ strb r1, [r0, #0x11]
+ ldrh r1, [r4, #0xc]
+ ldr r0, [r4, #4]
+ strh r1, [r0, #0x24]
+ ldr r1, [r4, #4]
+ mov r0, #0
+ add r1, #0x36
+ strb r0, [r1]
+ ldr r1, [r4, #4]
+ strb r0, [r1, #0x12]
+ ldr r1, [r4, #4]
+ add r1, #0x35
+ strb r2, [r1]
+ ldr r1, [r4, #4]
+ strh r0, [r1, #0x22]
+ ldrb r2, [r4, #9]
+ ldr r1, [r4, #4]
+ str r2, [r1, #0x28]
+ ldr r1, [r4, #4]
+ add r1, #0x32
+ strb r0, [r1]
+ ldr r0, [r4, #4]
+ bl MOD07_02211E60
+ ldrb r0, [r4, #0xa]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, pc}
+_022534B0:
+ ldr r0, [r4, #4]
+ add r0, #0x36
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02253524
+ ldr r0, [r4]
+ bl MOD11_0222D88C
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ mov r1, #0xa
+ str r0, [sp, #4]
+ add r3, r1, #0
+ str r0, [sp, #8]
+ ldr r2, _02253528 ; =0x0000FFFF
+ add r0, r6, #0
+ sub r3, #0x12
+ bl FUN_02003210
+ ldrb r0, [r4, #0xa]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, pc}
+_022534E2:
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02253524
+ ldr r0, [r4, #4]
+ add r0, #0x34
+ ldrb r2, [r0]
+ ldr r0, [r4]
+ cmp r2, #4
+ bne _02253500
+ ldrb r1, [r4, #9]
+ mov r2, #0xff
+ bl MOD11_02255964
+ b _02253508
+_02253500:
+ ldrb r1, [r4, #9]
+ add r2, r2, #1
+ bl MOD11_02255964
+_02253508:
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ ldr r0, [r4, #4]
+ bl FreeToHeap
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02253524:
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02253528: .word 0x0000FFFF
+
+ thumb_func_start MOD11_0225352C
+MOD11_0225352C: ; 0x0225352C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrb r0, [r5, #0xa]
+ cmp r0, #0
+ beq _0225353E
+ cmp r0, #1
+ beq _02253582
+ pop {r3, r4, r5, pc}
+_0225353E:
+ ldrb r1, [r5, #0xc]
+ ldrb r0, [r5, #0xd]
+ cmp r1, r0
+ bne _0225357C
+ mov r0, #0
+ strb r0, [r5, #0xc]
+ ldr r0, [r5, #4]
+ mov r1, #0x28
+ bl FUN_0200782C
+ add r4, r0, #0
+ ldrb r0, [r5, #0xb]
+ cmp r4, r0
+ ble _0225355E
+ sub r4, r4, #1
+ b _02253564
+_0225355E:
+ cmp r4, r0
+ bge _02253564
+ add r4, r4, #1
+_02253564:
+ ldr r0, [r5, #4]
+ mov r1, #0x28
+ add r2, r4, #0
+ bl FUN_02007558
+ ldrb r0, [r5, #0xb]
+ cmp r4, r0
+ bne _02253598
+ ldrb r0, [r5, #0xa]
+ add r0, r0, #1
+ strb r0, [r5, #0xa]
+ pop {r3, r4, r5, pc}
+_0225357C:
+ add r0, r1, #1
+ strb r0, [r5, #0xc]
+ pop {r3, r4, r5, pc}
+_02253582:
+ ldrb r1, [r5, #9]
+ ldrb r2, [r5, #8]
+ ldr r0, [r5]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl FreeToHeap
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_02253598:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225359C
+MOD11_0225359C: ; 0x0225359C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldrb r1, [r5, #5]
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _022535B4
+ mov r4, #0
+ b _022535B6
+_022535B4:
+ mov r4, #1
+_022535B6:
+ ldrb r0, [r5, #7]
+ cmp r0, #0
+ beq _022535C2
+ cmp r0, #1
+ beq _0225361C
+ b _02253636
+_022535C2:
+ ldrb r0, [r5, #0xe]
+ cmp r0, #0
+ bne _022535CE
+ mov r7, #0
+ mov r6, #1
+ b _022535E6
+_022535CE:
+ ldrb r0, [r5, #6]
+ mov r7, #1
+ cmp r0, #3
+ beq _022535DC
+ cmp r0, #5
+ beq _022535E0
+ b _022535E4
+_022535DC:
+ mov r6, #0
+ b _022535E6
+_022535E0:
+ mov r6, #2
+ b _022535E6
+_022535E4:
+ add r6, r7, #0
+_022535E6:
+ ldr r0, [r5]
+ bl MOD11_02230078
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ bl MOD11_02230080
+ ldr r1, [sp, #8]
+ add r2, r7, #0
+ str r1, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #8
+ add r1, r4, #0
+ add r3, r6, #0
+ bl MOD11_0225CA08
+ add r2, r0, #0
+ ldr r0, [r5]
+ add r1, r4, #0
+ bl MOD11_022300A8
+ ldrb r0, [r5, #7]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r5, #7]
+ pop {r4, r5, r6, r7, pc}
+_0225361C:
+ ldr r0, [r5]
+ add r1, r4, #0
+ bl MOD11_0223009C
+ bl MOD11_0225CA6C
+ cmp r0, #1
+ bne _0225364C
+ ldrb r0, [r5, #7]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r5, #7]
+ pop {r4, r5, r6, r7, pc}
+_02253636:
+ ldrb r1, [r5, #5]
+ ldrb r2, [r5, #4]
+ ldr r0, [r5]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_0225364C:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02253650
+MOD11_02253650: ; 0x02253650
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldrb r1, [r5, #5]
+ add r7, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _02253666
+ mov r4, #0
+ b _02253668
+_02253666:
+ mov r4, #1
+_02253668:
+ ldr r0, [r5]
+ add r1, r4, #0
+ bl MOD11_0223009C
+ ldrb r1, [r5, #7]
+ add r6, r0, #0
+ cmp r1, #0
+ beq _0225367E
+ cmp r1, #1
+ beq _0225369A
+ b _022536BA
+_0225367E:
+ ldrb r0, [r5, #0xe]
+ cmp r0, #0
+ bne _02253688
+ mov r1, #0
+ b _0225368A
+_02253688:
+ mov r1, #1
+_0225368A:
+ add r0, r6, #0
+ add r2, r1, #0
+ bl MOD11_0225CA90
+ ldrb r0, [r5, #7]
+ add r0, r0, #1
+ strb r0, [r5, #7]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225369A:
+ bl MOD11_0225CAC8
+ cmp r0, #1
+ bne _022536D0
+ add r0, r6, #0
+ bl MOD11_0225CAEC
+ ldr r0, [r5]
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD11_022300A8
+ ldrb r0, [r5, #7]
+ add r0, r0, #1
+ strb r0, [r5, #7]
+ pop {r3, r4, r5, r6, r7, pc}
+_022536BA:
+ ldrb r1, [r5, #5]
+ ldrb r2, [r5, #4]
+ ldr r0, [r5]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl FreeToHeap
+ add r0, r7, #0
+ bl FUN_0200CAB4
+_022536D0:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022536D4
+MOD11_022536D4: ; 0x022536D4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0
+ bne _02253706
+ ldr r0, [r4, #4]
+ add r0, #0x8c
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022536EE
+ bl ErrorHandling
+_022536EE:
+ ldrb r2, [r4, #0xd]
+ ldr r0, [r4]
+ mov r1, #5
+ bl MOD08_022156C0
+ ldr r1, [r4, #4]
+ add r1, #0x8c
+ str r0, [r1]
+ ldrb r0, [r4, #0xe]
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, pc}
+_02253706:
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02253720
+MOD11_02253720: ; 0x02253720
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ add r0, #0x8c
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02253734
+ bl ErrorHandling
+_02253734:
+ ldr r0, [r4, #4]
+ add r0, #0x8c
+ ldr r0, [r0]
+ bl MOD08_02215988
+ cmp r0, #3
+ bne _0225374E
+ ldrb r0, [r4, #0xe]
+ cmp r0, #5
+ bhs _0225374E
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, pc}
+_0225374E:
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0xd]
+ add r0, #0x8c
+ ldr r0, [r0]
+ bl MOD08_0221594C
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x8c
+ str r1, [r0]
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225377C
+MOD11_0225377C: ; 0x0225377C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_0222FF74
+ mov r1, #0x40
+ tst r1, r0
+ beq _022537D6
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _022537B6
+ ldr r1, _022539F4 ; =MOD11_02250F44
+ add r0, r0, #2
+ str r1, [r4]
+ ldr r1, _022539F8 ; =MOD11_022511C4
+ str r1, [r4, #4]
+ ldr r1, _022539FC ; =MOD11_02251420
+ str r1, [r4, #8]
+ ldr r1, _02253A00 ; =MOD11_02252018
+ str r1, [r4, #0xc]
+ ldr r1, _02253A04 ; =MOD11_02252470
+ str r1, [r4, #0x10]
+ ldr r1, _02253A08 ; =MOD11_02252714
+ str r1, [r4, #0x14]
+ mov r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_022537B6:
+ ldr r1, _02253A0C ; =MOD11_02250A70
+ add r0, r0, #2
+ str r1, [r4]
+ ldr r1, _02253A10 ; =MOD11_0225103C
+ str r1, [r4, #4]
+ ldr r1, _02253A14 ; =MOD11_022512B4
+ str r1, [r4, #8]
+ ldr r1, _02253A18 ; =MOD11_02251484
+ str r1, [r4, #0xc]
+ ldr r1, _02253A1C ; =MOD11_022520A8
+ str r1, [r4, #0x10]
+ ldr r1, _02253A20 ; =MOD11_02252544
+ str r1, [r4, #0x14]
+ mov r1, #0
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_022537D6:
+ mov r1, #0x88
+ and r1, r0
+ cmp r1, #0x88
+ bne _02253888
+ ldr r0, _02253A24 ; =0x00000195
+ ldrb r1, [r4, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02253832
+ add r0, r5, #0
+ bl MOD11_02230DD4
+ cmp r0, #0
+ beq _02253812
+ ldr r0, _022539F4 ; =MOD11_02250F44
+ mov r1, #1
+ str r0, [r4]
+ ldr r0, _022539F8 ; =MOD11_022511C4
+ str r0, [r4, #4]
+ ldr r0, _022539FC ; =MOD11_02251420
+ str r0, [r4, #8]
+ ldr r0, _02253A00 ; =MOD11_02252018
+ str r0, [r4, #0xc]
+ ldr r0, _02253A04 ; =MOD11_02252470
+ str r0, [r4, #0x10]
+ ldr r0, _02253A08 ; =MOD11_02252714
+ str r0, [r4, #0x14]
+ ldr r0, _02253A28 ; =0x00000196
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253812:
+ ldr r0, _02253A2C ; =MOD11_02250F74
+ mov r1, #2
+ str r0, [r4]
+ ldr r0, _02253A30 ; =MOD11_02251294
+ str r0, [r4, #4]
+ ldr r0, _02253A34 ; =MOD11_02251464
+ str r0, [r4, #8]
+ ldr r0, _02253A38 ; =MOD11_02252070
+ str r0, [r4, #0xc]
+ ldr r0, _02253A3C ; =MOD11_02252524
+ str r0, [r4, #0x10]
+ ldr r0, _02253A40 ; =MOD11_02252734
+ str r0, [r4, #0x14]
+ ldr r0, _02253A28 ; =0x00000196
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253832:
+ bl FUN_02031190
+ add r1, r0, #0
+ add r0, r5, #0
+ lsl r1, r1, #1
+ bl MOD11_02230260
+ ldr r1, _02253A24 ; =0x00000195
+ ldrb r2, [r4, r1]
+ cmp r2, r0
+ beq _02253868
+ ldr r0, _02253A2C ; =MOD11_02250F74
+ mov r2, #2
+ str r0, [r4]
+ ldr r0, _02253A30 ; =MOD11_02251294
+ str r0, [r4, #4]
+ ldr r0, _02253A34 ; =MOD11_02251464
+ str r0, [r4, #8]
+ ldr r0, _02253A38 ; =MOD11_02252070
+ str r0, [r4, #0xc]
+ ldr r0, _02253A3C ; =MOD11_02252524
+ str r0, [r4, #0x10]
+ ldr r0, _02253A40 ; =MOD11_02252734
+ str r0, [r4, #0x14]
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253868:
+ ldr r0, _02253A0C ; =MOD11_02250A70
+ mov r2, #0
+ str r0, [r4]
+ ldr r0, _02253A10 ; =MOD11_0225103C
+ str r0, [r4, #4]
+ ldr r0, _02253A14 ; =MOD11_022512B4
+ str r0, [r4, #8]
+ ldr r0, _02253A18 ; =MOD11_02251484
+ str r0, [r4, #0xc]
+ ldr r0, _02253A1C ; =MOD11_022520A8
+ str r0, [r4, #0x10]
+ ldr r0, _02253A20 ; =MOD11_02252544
+ str r0, [r4, #0x14]
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253888:
+ mov r1, #8
+ tst r1, r0
+ beq _022538E2
+ bl FUN_02031190
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_02230260
+ ldr r1, _02253A24 ; =0x00000195
+ ldrb r2, [r4, r1]
+ cmp r2, r0
+ beq _022538C2
+ ldr r0, _02253A2C ; =MOD11_02250F74
+ mov r2, #2
+ str r0, [r4]
+ ldr r0, _02253A30 ; =MOD11_02251294
+ str r0, [r4, #4]
+ ldr r0, _02253A34 ; =MOD11_02251464
+ str r0, [r4, #8]
+ ldr r0, _02253A38 ; =MOD11_02252070
+ str r0, [r4, #0xc]
+ ldr r0, _02253A3C ; =MOD11_02252524
+ str r0, [r4, #0x10]
+ ldr r0, _02253A40 ; =MOD11_02252734
+ str r0, [r4, #0x14]
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ pop {r3, r4, r5, pc}
+_022538C2:
+ ldr r0, _02253A0C ; =MOD11_02250A70
+ mov r2, #0
+ str r0, [r4]
+ ldr r0, _02253A10 ; =MOD11_0225103C
+ str r0, [r4, #4]
+ ldr r0, _02253A14 ; =MOD11_022512B4
+ str r0, [r4, #8]
+ ldr r0, _02253A18 ; =MOD11_02251484
+ str r0, [r4, #0xc]
+ ldr r0, _02253A1C ; =MOD11_022520A8
+ str r0, [r4, #0x10]
+ ldr r0, _02253A20 ; =MOD11_02252544
+ str r0, [r4, #0x14]
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ pop {r3, r4, r5, pc}
+_022538E2:
+ mov r1, #4
+ add r2, r0, #0
+ tst r2, r1
+ beq _02253934
+ ldr r0, _02253A24 ; =0x00000195
+ mov r1, #1
+ ldrb r2, [r4, r0]
+ tst r1, r2
+ beq _02253914
+ ldr r1, _02253A2C ; =MOD11_02250F74
+ add r0, r0, #1
+ str r1, [r4]
+ ldr r1, _02253A30 ; =MOD11_02251294
+ str r1, [r4, #4]
+ ldr r1, _02253A34 ; =MOD11_02251464
+ str r1, [r4, #8]
+ ldr r1, _02253A38 ; =MOD11_02252070
+ str r1, [r4, #0xc]
+ ldr r1, _02253A3C ; =MOD11_02252524
+ str r1, [r4, #0x10]
+ ldr r1, _02253A40 ; =MOD11_02252734
+ str r1, [r4, #0x14]
+ mov r1, #2
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253914:
+ ldr r1, _02253A0C ; =MOD11_02250A70
+ add r0, r0, #1
+ str r1, [r4]
+ ldr r1, _02253A10 ; =MOD11_0225103C
+ str r1, [r4, #4]
+ ldr r1, _02253A14 ; =MOD11_022512B4
+ str r1, [r4, #8]
+ ldr r1, _02253A18 ; =MOD11_02251484
+ str r1, [r4, #0xc]
+ ldr r1, _02253A1C ; =MOD11_022520A8
+ str r1, [r4, #0x10]
+ ldr r1, _02253A20 ; =MOD11_02252544
+ str r1, [r4, #0x14]
+ mov r1, #0
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253934:
+ lsl r1, r1, #7
+ tst r1, r0
+ beq _02253970
+ ldr r0, _02253A24 ; =0x00000195
+ mov r1, #1
+ ldrb r2, [r4, r0]
+ tst r2, r1
+ beq _0225395A
+ ldr r2, _02253A44 ; =MOD11_02251014
+ add r0, r0, #1
+ str r2, [r4]
+ mov r2, #0
+ str r2, [r4, #4]
+ str r2, [r4, #8]
+ str r2, [r4, #0xc]
+ str r2, [r4, #0x10]
+ str r2, [r4, #0x14]
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_0225395A:
+ ldr r1, _02253A0C ; =MOD11_02250A70
+ add r0, r0, #1
+ str r1, [r4]
+ mov r1, #0
+ str r1, [r4, #4]
+ str r1, [r4, #8]
+ str r1, [r4, #0xc]
+ str r1, [r4, #0x10]
+ str r1, [r4, #0x14]
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253970:
+ mov r1, #0x20
+ tst r0, r1
+ ldr r0, _02253A24 ; =0x00000195
+ beq _022539AE
+ ldrb r2, [r4, r0]
+ mov r1, #1
+ tst r2, r1
+ beq _02253996
+ ldr r2, _02253A48 ; =MOD11_02250F94
+ add r0, r0, #1
+ str r2, [r4]
+ mov r2, #0
+ str r2, [r4, #4]
+ str r2, [r4, #8]
+ str r2, [r4, #0xc]
+ str r2, [r4, #0x10]
+ str r2, [r4, #0x14]
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253996:
+ ldr r1, _02253A0C ; =MOD11_02250A70
+ mov r2, #0
+ str r1, [r4]
+ str r2, [r4, #4]
+ str r2, [r4, #8]
+ str r2, [r4, #0xc]
+ ldr r1, _02253A20 ; =MOD11_02252544
+ str r2, [r4, #0x10]
+ str r1, [r4, #0x14]
+ add r0, r0, #1
+ strb r2, [r4, r0]
+ pop {r3, r4, r5, pc}
+_022539AE:
+ ldrb r2, [r4, r0]
+ mov r1, #1
+ tst r2, r1
+ beq _022539D4
+ ldr r2, _022539F4 ; =MOD11_02250F44
+ add r0, r0, #1
+ str r2, [r4]
+ ldr r2, _022539F8 ; =MOD11_022511C4
+ str r2, [r4, #4]
+ ldr r2, _022539FC ; =MOD11_02251420
+ str r2, [r4, #8]
+ ldr r2, _02253A00 ; =MOD11_02252018
+ str r2, [r4, #0xc]
+ ldr r2, _02253A04 ; =MOD11_02252470
+ str r2, [r4, #0x10]
+ ldr r2, _02253A08 ; =MOD11_02252714
+ str r2, [r4, #0x14]
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_022539D4:
+ ldr r1, _02253A0C ; =MOD11_02250A70
+ add r0, r0, #1
+ str r1, [r4]
+ ldr r1, _02253A10 ; =MOD11_0225103C
+ str r1, [r4, #4]
+ ldr r1, _02253A14 ; =MOD11_022512B4
+ str r1, [r4, #8]
+ ldr r1, _02253A18 ; =MOD11_02251484
+ str r1, [r4, #0xc]
+ ldr r1, _02253A1C ; =MOD11_022520A8
+ str r1, [r4, #0x10]
+ ldr r1, _02253A20 ; =MOD11_02252544
+ str r1, [r4, #0x14]
+ mov r1, #0
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022539F4: .word MOD11_02250F44
+_022539F8: .word MOD11_022511C4
+_022539FC: .word MOD11_02251420
+_02253A00: .word MOD11_02252018
+_02253A04: .word MOD11_02252470
+_02253A08: .word MOD11_02252714
+_02253A0C: .word MOD11_02250A70
+_02253A10: .word MOD11_0225103C
+_02253A14: .word MOD11_022512B4
+_02253A18: .word MOD11_02251484
+_02253A1C: .word MOD11_022520A8
+_02253A20: .word MOD11_02252544
+_02253A24: .word 0x00000195
+_02253A28: .word 0x00000196
+_02253A2C: .word MOD11_02250F74
+_02253A30: .word MOD11_02251294
+_02253A34: .word MOD11_02251464
+_02253A38: .word MOD11_02252070
+_02253A3C: .word MOD11_02252524
+_02253A40: .word MOD11_02252734
+_02253A44: .word MOD11_02251014
+_02253A48: .word MOD11_02250F94
+
+ thumb_func_start MOD11_02253A4C
+MOD11_02253A4C: ; 0x02253A4C
+ ldr r1, _02253A54 ; =0x00000195
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_02253A54: .word 0x00000195
+
+ thumb_func_start MOD11_02253A58
+MOD11_02253A58: ; 0x02253A58
+ ldr r1, _02253A60 ; =0x00000196
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_02253A60: .word 0x00000196
+
+ thumb_func_start MOD11_02253A64
+MOD11_02253A64: ; 0x02253A64
+ ldr r1, [r0, #0x20]
+ cmp r1, #0
+ bne _02253A6C
+ ldr r1, [r0, #0x1c]
+_02253A6C:
+ add r0, r1, #0
+ bx lr
+
+ thumb_func_start MOD11_02253A70
+MOD11_02253A70: ; 0x02253A70
+ add r0, #0x28
+ bx lr
+
+ thumb_func_start MOD11_02253A74
+MOD11_02253A74: ; 0x02253A74
+ add r0, #0x80
+ bx lr
+
+ thumb_func_start MOD11_02253A78
+MOD11_02253A78: ; 0x02253A78
+ ldr r3, _02253A84 ; =0x020CE34C
+ add r0, #0x80
+ mov r1, #0
+ mov r2, #8
+ bx r3
+ nop
+_02253A84: .word 0x020CE34C
+
+ thumb_func_start MOD11_02253A88
+MOD11_02253A88: ; 0x02253A88
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ ldr r4, [sp, #0x50]
+ add r7, r0, #0
+ str r1, [sp, #0x14]
+ add r5, r2, #0
+ str r3, [sp, #0x18]
+ bl MOD11_02230130
+ add r1, r4, #0
+ bl MOD11_022312DC
+ str r0, [sp, #0x20]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02230260
+ add r6, r0, #0
+ mov r0, #1
+ and r0, r6
+ str r0, [sp, #0x1c]
+ beq _02253AB8
+ mov r1, #2
+ b _02253ABA
+_02253AB8:
+ mov r1, #0
+_02253ABA:
+ ldr r0, [r5, #0xc]
+ ldr r3, [sp, #0x20]
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldrh r0, [r5, #6]
+ mov r2, #5
+ str r0, [sp, #0xc]
+ ldrh r0, [r5]
+ ldrh r1, [r5, #2]
+ bl FUN_02012560
+ add r0, r7, #0
+ bl MOD11_02230130
+ ldrh r2, [r5]
+ add r1, r4, #0
+ bl MOD11_022312F0
+ add r0, r7, #0
+ bl MOD11_02230130
+ ldrh r2, [r5, #4]
+ add r1, r4, #0
+ bl MOD11_02231308
+ add r0, r7, #0
+ bl MOD11_02230130
+ ldr r2, [sp, #0x40]
+ add r1, r4, #0
+ bl MOD11_02231320
+ ldr r0, [sp, #0x3c]
+ ldr r3, [sp, #0x40]
+ str r0, [sp]
+ str r4, [sp, #4]
+ str r4, [sp, #8]
+ ldr r0, [sp, #0x54]
+ ldr r4, [sp, #0x38]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x58]
+ ldr r2, [sp, #0x18]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0
+ add r3, r4, r3
+ bl FUN_020073E8
+ add r4, r0, #0
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _02253B6E
+ cmp r6, #1
+ ble _02253B2C
+ asr r6, r6, #1
+_02253B2C:
+ add r0, r4, #0
+ mov r1, #0x2a
+ add r2, r6, #0
+ bl FUN_02007558
+ ldr r2, [sp, #0x4c]
+ add r0, r4, #0
+ mov r1, #0x2e
+ bl FUN_02007558
+ ldr r2, [sp, #0x38]
+ add r0, r4, #0
+ mov r1, #0x14
+ add r2, #0x24
+ bl FUN_02007558
+ ldr r2, [sp, #0x48]
+ add r0, r4, #0
+ mov r1, #0x15
+ bl FUN_02007558
+ ldr r3, [sp, #0x40]
+ mov r2, #0x24
+ add r0, r4, #0
+ mov r1, #0x16
+ sub r2, r2, r3
+ bl FUN_02007558
+ ldr r2, [sp, #0x44]
+ add r0, r4, #0
+ mov r1, #0x29
+ bl FUN_02007558
+_02253B6E:
+ add r0, r4, #0
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02253B74
+MOD11_02253B74: ; 0x02253B74
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r1, _02253C30 ; =0x00000195
+ add r6, r2, #0
+ ldrb r2, [r5, r1]
+ mov r1, #1
+ add r7, r0, #0
+ add r4, r3, #0
+ tst r1, r2
+ beq _02253BCE
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ beq _02253BAE
+ ldr r0, _02253C34 ; =0x000003DE
+ strh r0, [r4, #2]
+ mov r0, #0x1b
+ strb r0, [r4, #1]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ str r1, [r4, #4]
+ ldrb r1, [r5, r0]
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253BAE:
+ ldr r0, _02253C38 ; =0x000003DD
+ strh r0, [r4, #2]
+ mov r0, #0x32
+ strb r0, [r4, #1]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ str r1, [r4, #4]
+ ldrb r1, [r5, r0]
+ str r1, [r4, #8]
+ ldrb r1, [r5, r0]
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253BCE:
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02253C18
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ bne _02253C18
+ ldrh r0, [r6, #2]
+ cmp r0, #0
+ bne _02253BF2
+ mov r0, #0xf6
+ lsl r0, r0, #2
+ strh r0, [r4, #2]
+ b _02253C1C
+_02253BF2:
+ cmp r0, #0x19
+ bhs _02253BFC
+ ldr r0, _02253C3C ; =0x000003D9
+ strh r0, [r4, #2]
+ b _02253C1C
+_02253BFC:
+ cmp r0, #0x32
+ bhs _02253C08
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ strh r0, [r4, #2]
+ b _02253C1C
+_02253C08:
+ cmp r0, #0x4b
+ bhs _02253C12
+ ldr r0, _02253C40 ; =0x000003DA
+ strh r0, [r4, #2]
+ b _02253C1C
+_02253C12:
+ ldr r0, _02253C44 ; =0x000003DB
+ strh r0, [r4, #2]
+ b _02253C1C
+_02253C18:
+ ldr r0, _02253C3C ; =0x000003D9
+ strh r0, [r4, #2]
+_02253C1C:
+ mov r0, #2
+ strb r0, [r4, #1]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02253C30: .word 0x00000195
+_02253C34: .word 0x000003DE
+_02253C38: .word 0x000003DD
+_02253C3C: .word 0x000003D9
+_02253C40: .word 0x000003DA
+_02253C44: .word 0x000003DB
+
+ thumb_func_start MOD11_02253C48
+MOD11_02253C48: ; 0x02253C48
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r1, _02253D08 ; =0x00000195
+ add r6, r2, #0
+ ldrb r2, [r5, r1]
+ mov r1, #1
+ add r7, r0, #0
+ add r4, r3, #0
+ tst r1, r2
+ beq _02253CA4
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ bne _02253C88
+ mov r0, #0xf3
+ lsl r0, r0, #2
+ strh r0, [r4, #2]
+ mov r0, #0x32
+ strb r0, [r4, #1]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ str r1, [r4, #4]
+ ldrb r1, [r5, r0]
+ str r1, [r4, #8]
+ ldrb r1, [r5, r0]
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253C88:
+ ldr r0, _02253D0C ; =0x000003CE
+ strh r0, [r4, #2]
+ mov r0, #0x1b
+ strb r0, [r4, #1]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ str r1, [r4, #4]
+ ldrb r1, [r5, r0]
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253CA4:
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02253CF0
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ bne _02253CF0
+ ldrh r1, [r6, #2]
+ cmp r1, #0x64
+ bhs _02253CC6
+ ldr r0, _02253D10 ; =0x000003D6
+ strh r0, [r4, #2]
+ b _02253CF4
+_02253CC6:
+ ldr r0, _02253D14 ; =0x00000145
+ cmp r1, r0
+ bhs _02253CD2
+ ldr r0, _02253D18 ; =0x000003D7
+ strh r0, [r4, #2]
+ b _02253CF4
+_02253CD2:
+ add r0, #0xe1
+ cmp r1, r0
+ bhs _02253CDE
+ ldr r0, _02253D1C ; =0x000003D5
+ strh r0, [r4, #2]
+ b _02253CF4
+_02253CDE:
+ ldr r0, _02253D20 ; =0x00000307
+ cmp r1, r0
+ bhs _02253CEA
+ add r0, #0xcd
+ strh r0, [r4, #2]
+ b _02253CF4
+_02253CEA:
+ add r0, #0xcc
+ strh r0, [r4, #2]
+ b _02253CF4
+_02253CF0:
+ ldr r0, _02253D24 ; =0x000003D3
+ strh r0, [r4, #2]
+_02253CF4:
+ mov r0, #2
+ strb r0, [r4, #1]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02253D08: .word 0x00000195
+_02253D0C: .word 0x000003CE
+_02253D10: .word 0x000003D6
+_02253D14: .word 0x00000145
+_02253D18: .word 0x000003D7
+_02253D1C: .word 0x000003D5
+_02253D20: .word 0x00000307
+_02253D24: .word 0x000003D3
+
+ thumb_func_start MOD11_02253D28
+MOD11_02253D28: ; 0x02253D28
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r2, #0
+ bl MOD11_0222FF74
+ add r4, r0, #0
+ mov r0, #2
+ tst r0, r4
+ beq _02253D4E
+ add r0, r7, #0
+ mov r1, #3
+ bl MOD11_0223022C
+ add r6, r0, #0
+ add r0, r7, #0
+ mov r1, #5
+ bl MOD11_0223022C
+ b _02253D58
+_02253D4E:
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD11_0223022C
+ add r6, r0, #0
+_02253D58:
+ mov r1, #4
+ tst r1, r4
+ beq _02253D98
+ mov r1, #0x80
+ tst r1, r4
+ beq _02253D78
+ mov r1, #0x3e
+ lsl r1, r1, #4
+ strh r1, [r5, #2]
+ mov r1, #0x3b
+ strb r1, [r5, #1]
+ str r6, [r5, #4]
+ str r6, [r5, #8]
+ str r0, [r5, #0xc]
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253D78:
+ mov r1, #8
+ add r2, r4, #0
+ tst r2, r1
+ beq _02253D8E
+ ldr r1, _02253DC8 ; =0x000003CB
+ strh r1, [r5, #2]
+ mov r1, #0x1a
+ strb r1, [r5, #1]
+ str r6, [r5, #4]
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253D8E:
+ ldr r0, _02253DCC ; =0x000003CA
+ strh r0, [r5, #2]
+ strb r1, [r5, #1]
+ str r6, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253D98:
+ mov r1, #0x10
+ tst r1, r4
+ bne _02253DA4
+ mov r1, #8
+ tst r1, r4
+ beq _02253DB8
+_02253DA4:
+ mov r1, #0x3e
+ lsl r1, r1, #4
+ strh r1, [r5, #2]
+ mov r1, #0x3b
+ strb r1, [r5, #1]
+ str r6, [r5, #4]
+ str r6, [r5, #8]
+ str r0, [r5, #0xc]
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253DB8:
+ ldr r0, _02253DD0 ; =0x000003C9
+ strh r0, [r5, #2]
+ mov r0, #0x1e
+ strb r0, [r5, #1]
+ str r6, [r5, #4]
+ str r6, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02253DC8: .word 0x000003CB
+_02253DCC: .word 0x000003CA
+_02253DD0: .word 0x000003C9
+
+ thumb_func_start MOD11_02253DD4
+MOD11_02253DD4: ; 0x02253DD4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r1, [sp, #4]
+ str r0, [sp]
+ add r6, r2, #0
+ add r4, r3, #0
+ bl MOD11_0222FF74
+ str r0, [sp, #0x14]
+ ldr r2, _022540E4 ; =0x00000195
+ ldr r0, [sp, #4]
+ ldrb r1, [r0, r2]
+ mov r0, #1
+ tst r0, r1
+ bne _02253DF4
+ b _02253F3C
+_02253DF4:
+ ldr r0, [sp, #0x14]
+ mov r1, #2
+ and r0, r1
+ str r0, [sp, #0x10]
+ beq _02253E10
+ ldr r0, [sp, #4]
+ sub r1, r2, #1
+ ldrb r5, [r0, r1]
+ ldr r0, [sp]
+ add r1, r5, #0
+ bl MOD11_022302BC
+ add r7, r0, #0
+ b _02253E18
+_02253E10:
+ ldr r0, [sp, #4]
+ sub r1, r2, #1
+ ldrb r5, [r0, r1]
+ add r7, r5, #0
+_02253E18:
+ ldr r0, [sp, #0x14]
+ mov r1, #4
+ tst r0, r1
+ beq _02253EBE
+ ldr r0, [sp, #0x14]
+ mov r1, #0x80
+ tst r0, r1
+ beq _02253E50
+ ldr r0, _022540E8 ; =0x000003DF
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x3c
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ str r5, [r4, #8]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #0xc]
+ str r7, [r4, #0x10]
+ str r7, [r4, #0x14]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253E50:
+ ldr r0, [sp, #0x14]
+ mov r1, #8
+ tst r0, r1
+ beq _02253E7E
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ strh r0, [r4, #2]
+ mov r0, #0x38
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ add sp, #0x18
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #8]
+ str r7, [r4, #0xc]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253E7E:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _02253EA6
+ ldr r0, _022540EC ; =0x000003CF
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x31
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #8]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253EA6:
+ ldr r0, _022540F0 ; =0x000003CE
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x1b
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253EBE:
+ ldr r0, [sp, #0x14]
+ mov r1, #0x10
+ tst r0, r1
+ bne _02253ECE
+ ldr r0, [sp, #0x14]
+ mov r1, #8
+ tst r0, r1
+ beq _02253EF6
+_02253ECE:
+ ldr r0, _022540E8 ; =0x000003DF
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x3c
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ str r5, [r4, #8]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #0xc]
+ str r7, [r4, #0x10]
+ str r7, [r4, #0x14]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253EF6:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _02253F20
+ ldr r0, _022540F4 ; =0x000003CD
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x39
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ str r5, [r4, #8]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #0xc]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253F20:
+ mov r0, #0xf3
+ lsl r0, r0, #2
+ strh r0, [r4, #2]
+ mov r0, #0x32
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ str r5, [r4, #8]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ add sp, #0x18
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253F3C:
+ ldr r0, [sp, #0x14]
+ mov r1, #4
+ and r0, r1
+ str r0, [sp, #0xc]
+ beq _02253FCC
+ bl FUN_02031190
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ ldr r0, [sp, #0x14]
+ mov r1, #8
+ and r0, r1
+ str r0, [sp, #8]
+ beq _02253FA2
+ add r0, r2, #0
+ bl FUN_020313CC
+ cmp r0, #3
+ bhi _02254012
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02253F6E: ; jump table
+ .short _02253F76 - _02253F6E - 2 ; case 0
+ .short _02253F8C - _02253F6E - 2 ; case 1
+ .short _02253F8C - _02253F6E - 2 ; case 2
+ .short _02253F76 - _02253F6E - 2 ; case 3
+_02253F76:
+ ldr r0, [sp]
+ mov r1, #4
+ bl MOD11_0223022C
+ add r5, r0, #0
+ ldr r0, [sp]
+ mov r1, #2
+ bl MOD11_0223022C
+ add r7, r0, #0
+ b _02254012
+_02253F8C:
+ ldr r0, [sp]
+ mov r1, #2
+ bl MOD11_0223022C
+ add r5, r0, #0
+ ldr r0, [sp]
+ mov r1, #4
+ bl MOD11_0223022C
+ add r7, r0, #0
+ b _02254012
+_02253FA2:
+ ldr r0, [sp, #0x14]
+ mov r1, #2
+ tst r0, r1
+ beq _02253FBE
+ ldr r0, [sp]
+ bl MOD11_0223022C
+ add r5, r0, #0
+ ldr r0, [sp]
+ mov r1, #4
+ bl MOD11_0223022C
+ add r7, r0, #0
+ b _02254012
+_02253FBE:
+ ldr r0, [sp]
+ mov r1, #0
+ bl MOD11_0223022C
+ add r5, r0, #0
+ add r7, r5, #0
+ b _02254012
+_02253FCC:
+ ldr r0, [sp, #0x14]
+ mov r1, #8
+ and r0, r1
+ str r0, [sp, #8]
+ beq _02253FEE
+ ldr r1, [sp, #4]
+ sub r2, r2, #1
+ ldrb r1, [r1, r2]
+ ldr r0, [sp]
+ bl MOD11_022302BC
+ add r5, r0, #0
+ mov r1, #0x65
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ ldrb r7, [r0, r1]
+ b _02254012
+_02253FEE:
+ ldr r0, [sp, #0x14]
+ mov r1, #2
+ tst r0, r1
+ beq _0225400A
+ ldr r0, [sp]
+ bl MOD11_0223022C
+ add r5, r0, #0
+ ldr r0, [sp]
+ mov r1, #4
+ bl MOD11_0223022C
+ add r7, r0, #0
+ b _02254012
+_0225400A:
+ ldr r0, [sp, #4]
+ sub r1, r2, #1
+ ldrb r5, [r0, r1]
+ add r7, r5, #0
+_02254012:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ beq _0225407C
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _02254040
+ ldr r0, _022540F8 ; =0x000003D1
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x31
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #8]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02254040:
+ ldr r0, [sp, #0x14]
+ mov r1, #2
+ tst r0, r1
+ beq _02254068
+ ldr r0, _022540FC ; =0x000003D2
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #9
+ strb r0, [r4, #1]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #4]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02254068:
+ ldr r0, _02254100 ; =0x000003D3
+ add sp, #0x18
+ strh r0, [r4, #2]
+ strb r1, [r4, #1]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225407C:
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _022540A6
+ ldr r0, _02254104 ; =0x000003E1
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x39
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ str r5, [r4, #8]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #0xc]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_022540A6:
+ ldr r0, [sp, #0x14]
+ mov r1, #2
+ tst r0, r1
+ beq _022540CE
+ ldr r0, _022540FC ; =0x000003D2
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #9
+ strb r0, [r4, #1]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #4]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_022540CE:
+ ldr r0, _02254100 ; =0x000003D3
+ strh r0, [r4, #2]
+ strb r1, [r4, #1]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #4]
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022540E4: .word 0x00000195
+_022540E8: .word 0x000003DF
+_022540EC: .word 0x000003CF
+_022540F0: .word 0x000003CE
+_022540F4: .word 0x000003CD
+_022540F8: .word 0x000003D1
+_022540FC: .word 0x000003D2
+_02254100: .word 0x000003D3
+_02254104: .word 0x000003E1
+
+ thumb_func_start MOD11_02254108
+MOD11_02254108: ; 0x02254108
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ add r5, r2, #0
+ bl MOD11_0222FF74
+ add r6, r0, #0
+ ldr r0, [sp]
+ bl MOD11_0223145C
+ add r7, r0, #0
+ mov r0, #2
+ tst r0, r6
+ beq _02254136
+ ldr r0, [sp]
+ mov r1, #3
+ bl MOD11_0223022C
+ add r4, r0, #0
+ ldr r0, [sp]
+ mov r1, #5
+ bl MOD11_0223022C
+ b _02254140
+_02254136:
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD11_0223022C
+ add r4, r0, #0
+_02254140:
+ cmp r7, #1
+ beq _0225414E
+ cmp r7, #2
+ beq _0225416E
+ cmp r7, #3
+ beq _02254190
+ pop {r3, r4, r5, r6, r7, pc}
+_0225414E:
+ mov r1, #8
+ add r2, r6, #0
+ tst r2, r1
+ beq _02254164
+ ldr r1, _022541B0 ; =0x00000312
+ strh r1, [r5, #2]
+ mov r1, #0x1a
+ strb r1, [r5, #1]
+ str r4, [r5, #4]
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02254164:
+ ldr r0, _022541B4 ; =0x00000311
+ strh r0, [r5, #2]
+ strb r1, [r5, #1]
+ str r4, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225416E:
+ mov r1, #8
+ add r2, r6, #0
+ tst r2, r1
+ beq _02254186
+ mov r1, #0xc5
+ lsl r1, r1, #2
+ strh r1, [r5, #2]
+ mov r1, #0x1a
+ strb r1, [r5, #1]
+ str r4, [r5, #4]
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02254186:
+ ldr r0, _022541B8 ; =0x00000313
+ strh r0, [r5, #2]
+ strb r1, [r5, #1]
+ str r4, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02254190:
+ mov r1, #8
+ add r2, r6, #0
+ tst r2, r1
+ beq _022541A6
+ ldr r1, _022541BC ; =0x00000316
+ strh r1, [r5, #2]
+ mov r1, #0x1a
+ strb r1, [r5, #1]
+ str r4, [r5, #4]
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_022541A6:
+ ldr r0, _022541C0 ; =0x00000315
+ strh r0, [r5, #2]
+ strb r1, [r5, #1]
+ str r4, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022541B0: .word 0x00000312
+_022541B4: .word 0x00000311
+_022541B8: .word 0x00000313
+_022541BC: .word 0x00000316
+_022541C0: .word 0x00000315
+
+ thumb_func_start MOD11_022541C4
+MOD11_022541C4: ; 0x022541C4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r6, #0
+ add r5, r0, #0
+ str r2, [sp]
+ add r7, r3, #0
+ str r6, [sp, #4]
+ add r4, r6, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _0225420C
+_022541DC:
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldr r1, [sp]
+ ldrb r1, [r1, #1]
+ tst r0, r1
+ beq _02254200
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _022541FE
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ b _02254200
+_022541FE:
+ add r6, r6, #1
+_02254200:
+ add r0, r5, #0
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _022541DC
+_0225420C:
+ cmp r6, #0
+ beq _0225422A
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ beq _0225422A
+ ldr r0, _022542AC ; =0x0000030D
+ mov r1, #0xc3
+ strh r0, [r7, #2]
+ mov r0, #0
+ strb r0, [r7, #1]
+ add r0, r5, #0
+ bl MOD11_02231468
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_0225422A:
+ cmp r6, #0
+ beq _02254242
+ ldr r0, _022542AC ; =0x0000030D
+ mov r1, #0xc2
+ strh r0, [r7, #2]
+ mov r0, #0
+ strb r0, [r7, #1]
+ add r0, r5, #0
+ bl MOD11_02231468
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02254242:
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ beq _0225426E
+ mov r0, #0xc6
+ lsl r0, r0, #2
+ strh r0, [r7, #2]
+ mov r0, #0x1a
+ strb r0, [r7, #1]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_0223022C
+ str r0, [r7, #4]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD11_0223022C
+ str r0, [r7, #8]
+ b _0225429E
+_0225426E:
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ ldr r0, _022542B0 ; =0x00000317
+ beq _0225428E
+ strh r0, [r7, #2]
+ mov r0, #8
+ strb r0, [r7, #1]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_0223022C
+ str r0, [r7, #4]
+ b _0225429E
+_0225428E:
+ strh r0, [r7, #2]
+ mov r0, #8
+ strb r0, [r7, #1]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223022C
+ str r0, [r7, #4]
+_0225429E:
+ add r0, r5, #0
+ mov r1, #0xc1
+ bl MOD11_02231468
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022542AC: .word 0x0000030D
+_022542B0: .word 0x00000317
+
+ thumb_func_start MOD11_022542B4
+MOD11_022542B4: ; 0x022542B4
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ mov r1, #0xef
+ add r4, r2, #0
+ lsl r1, r1, #2
+ strh r1, [r4, #2]
+ mov r1, #8
+ add r5, r0, #0
+ strb r1, [r4, #1]
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ beq _022542F4
+ bl FUN_02031190
+ bl FUN_020313CC
+ cmp r0, #0
+ beq _022542E8
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD11_0223022C
+ str r0, [r4, #4]
+ b _022542FC
+_022542E8:
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0223022C
+ str r0, [r4, #4]
+ b _022542FC
+_022542F4:
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ str r0, [r4, #4]
+_022542FC:
+ add r0, r5, #0
+ mov r1, #0xc2
+ bl MOD11_02231468
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02254308
+MOD11_02254308: ; 0x02254308
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ str r0, [sp, #0x18]
+ str r1, [sp, #0x1c]
+ add r5, r2, #0
+ add r4, r3, #0
+ bl MOD11_02230078
+ add r7, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD11_02230080
+ add r6, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD11_022300CC
+ str r0, [sp, #0x20]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _022543EC ; =0x00004E2F
+ add r3, r5, #0
+ add r0, r4, r0
+ str r0, [sp, #8]
+ add r0, r7, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ add r3, #0xc3
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x2f
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _022543F0 ; =0x00004E2A
+ mov r1, #2
+ add r0, r4, r0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ add r2, r7, #0
+ add r3, r6, #0
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _022543F4 ; =0x00004E27
+ add r3, r5, #0
+ add r0, r4, r0
+ str r0, [sp, #4]
+ add r0, r7, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ add r3, #0xcb
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _022543F4 ; =0x00004E27
+ add r5, #0xd3
+ add r0, r4, r0
+ str r0, [sp, #4]
+ add r0, r7, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ add r3, r5, #0
+ bl FUN_0200C13C
+ ldr r5, _022543F8 ; =0x0225E89C
+ add r3, sp, #0x24
+ mov r2, #6
+_022543A0:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022543A0
+ ldr r0, [r5]
+ ldr r1, _022543EC ; =0x00004E2F
+ str r0, [r3]
+ add r0, r4, r1
+ str r0, [sp, #0x38]
+ sub r0, r1, #5
+ add r0, r4, r0
+ sub r1, #8
+ str r0, [sp, #0x3c]
+ add r0, r4, r1
+ str r0, [sp, #0x40]
+ str r0, [sp, #0x44]
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, sp, #0x24
+ bl FUN_0200C154
+ ldr r1, [sp, #0x1c]
+ mov r2, #6
+ add r3, r1, #0
+ mul r3, r2
+ ldr r1, _022543FC ; =0x0222D550
+ ldr r2, _02254400 ; =0x0222D552
+ ldrsh r1, [r1, r3]
+ ldrsh r2, [r2, r3]
+ add r4, r0, #0
+ bl FUN_0200C714
+ add r0, r4, #0
+ bl FUN_0200C5A8
+ add r0, r4, #0
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022543EC: .word 0x00004E2F
+_022543F0: .word 0x00004E2A
+_022543F4: .word 0x00004E27
+_022543F8: .word 0x0225E89C
+_022543FC: .word 0x0222D550
+_02254400: .word 0x0222D552
+
+ thumb_func_start MOD11_02254404
+MOD11_02254404: ; 0x02254404
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xac
+ str r0, [sp]
+ ldr r0, [r3, #0x4c]
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ str r3, [sp, #0xc]
+ cmp r0, #0
+ bne _02254422
+ mov r0, #8
+ str r0, [sp, #0x84]
+ add r0, r3, #0
+ ldrh r0, [r0, #2]
+ str r0, [sp, #0x18]
+ b _0225442C
+_02254422:
+ mov r0, #0x3f
+ str r0, [sp, #0x84]
+ add r0, r3, #0
+ ldr r0, [r0, #0x50]
+ str r0, [sp, #0x18]
+_0225442C:
+ ldr r0, [sp]
+ bl MOD11_0222FF68
+ str r0, [sp, #0x20]
+ ldr r0, [sp]
+ bl MOD11_022300CC
+ str r0, [sp, #0x24]
+ ldr r0, [sp]
+ bl MOD11_02230078
+ add r5, sp, #0x1c
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0xc]
+ mov r4, #0
+ str r0, [sp, #0x14]
+ str r5, [sp, #0x10]
+ add r6, r5, #0
+ add r7, r0, #0
+_02254452:
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_022312D0
+ str r0, [r5, #0xc]
+ ldr r0, [sp, #0x14]
+ ldrh r1, [r0, #0x18]
+ ldr r0, [sp, #0x10]
+ strh r1, [r0, #0x34]
+ ldr r0, [sp, #0xc]
+ add r0, r0, r4
+ add r0, #0x20
+ ldrb r1, [r0]
+ add r0, r6, #0
+ add r0, #0x3c
+ strb r1, [r0]
+ ldr r0, [sp, #0xc]
+ add r0, r0, r4
+ add r0, #0x24
+ ldrb r1, [r0]
+ add r0, r6, #0
+ add r0, #0x40
+ strb r1, [r0]
+ ldr r0, [sp, #0xc]
+ add r0, r0, r4
+ add r0, #0x28
+ ldrb r1, [r0]
+ add r0, r6, #0
+ add r0, #0x44
+ strb r1, [r0]
+ ldr r0, [r7, #0x2c]
+ add r4, r4, #1
+ str r0, [r5, #0x48]
+ ldr r0, [r7, #0x3c]
+ add r6, r6, #1
+ str r0, [r5, #0x58]
+ ldr r0, [sp, #0x14]
+ add r5, r5, #4
+ add r0, r0, #2
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ add r7, r7, #4
+ add r0, r0, #2
+ str r0, [sp, #0x10]
+ cmp r4, #4
+ blt _02254452
+ ldr r0, [sp]
+ add r1, sp, #0x38
+ bl MOD11_02231504
+ ldr r0, [sp]
+ add r1, sp, #0x3c
+ bl MOD11_02231534
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ mov r2, #0x65
+ str r0, [sp, #0x4c]
+ ldr r1, [sp, #4]
+ lsl r2, r2, #2
+ ldrb r1, [r1, r2]
+ ldr r0, [sp]
+ bl MOD11_02230E88
+ str r0, [sp, #0xa0]
+ ldr r0, [sp]
+ bl MOD11_02231228
+ str r0, [sp, #0xa4]
+ ldr r0, [sp]
+ bl MOD11_02231230
+ str r0, [sp, #0xa8]
+ mov r0, #7
+ str r0, [sp, #0x88]
+ ldr r0, [sp]
+ bl MOD11_022302A8
+ add r0, r0, #3
+ str r0, [sp, #0x8c]
+ ldr r0, [sp]
+ bl MOD11_02230C68
+ add r4, r0, #0
+ ldr r0, [sp]
+ bl MOD11_022302A8
+ lsl r1, r0, #1
+ add r0, r0, r1
+ add r0, #0x9e
+ add r0, r4, r0
+ str r0, [sp, #0x90]
+ mov r0, #2
+ str r0, [sp, #0x94]
+ mov r0, #0
+ ldr r2, [sp, #0x18]
+ str r0, [sp, #0x98]
+ mov r0, #8
+ str r0, [sp, #0x9c]
+ lsl r2, r2, #0x10
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ lsr r2, r2, #0x10
+ add r3, sp, #0x1c
+ bl MOD08_02212048
+ add sp, #0xac
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0225452C
+MOD11_0225452C: ; 0x0225452C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r2, #0
+ add r7, r1, #0
+ str r3, [r6]
+ str r0, [sp]
+ str r3, [r6, #4]
+ mov r4, #0
+ add r5, r6, #0
+ str r7, [sp, #0xc]
+ str r6, [sp, #8]
+ str r7, [sp, #4]
+_02254544:
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_022312D0
+ str r0, [r5, #8]
+ ldr r0, [sp, #0xc]
+ ldrh r1, [r0, #0x18]
+ ldr r0, [sp, #8]
+ strh r1, [r0, #0x28]
+ add r0, r7, r4
+ add r0, #0x20
+ ldrb r1, [r0]
+ add r0, r6, r4
+ add r0, #0x30
+ strb r1, [r0]
+ add r0, r7, r4
+ add r0, #0x24
+ ldrb r1, [r0]
+ add r0, r6, r4
+ add r0, #0x34
+ strb r1, [r0]
+ add r0, r7, r4
+ add r0, #0x28
+ ldrb r1, [r0]
+ add r0, r6, r4
+ add r0, #0x38
+ strb r1, [r0]
+ ldr r0, [sp, #4]
+ add r4, r4, #1
+ ldr r0, [r0, #0x2c]
+ str r0, [r5, #0x3c]
+ ldr r0, [sp, #0xc]
+ add r5, r5, #4
+ add r0, r0, #2
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #8]
+ add r0, r0, #2
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ add r0, r0, #4
+ str r0, [sp, #4]
+ cmp r4, #4
+ blt _02254544
+ add r1, r6, #0
+ ldr r0, [sp]
+ add r1, #0x4c
+ bl MOD11_02231504
+ add r6, #0x18
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_02231534
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022545B4
+MOD11_022545B4: ; 0x022545B4
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ cmp r2, #0
+ bne _022545F2
+ add r0, sp, #0
+ ldrh r6, [r0, #0x10]
+ mov r1, #9
+ add r0, r6, #0
+ bl GetWazaAttr
+ mov r1, #0x40
+ tst r0, r1
+ bne _022545D4
+ mov r0, #1
+ b _022545D6
+_022545D4:
+ mov r0, #0
+_022545D6:
+ strb r0, [r4]
+ add r0, r6, #0
+ mov r1, #9
+ bl GetWazaAttr
+ mov r1, #0x80
+ tst r0, r1
+ beq _022545EC
+ mov r0, #1
+ strb r0, [r5]
+ pop {r4, r5, r6, pc}
+_022545EC:
+ mov r0, #0
+ strb r0, [r5]
+ pop {r4, r5, r6, pc}
+_022545F2:
+ sub r3, #0x12
+ cmp r3, #0x15
+ bhi _02254642
+ add r0, r3, r3
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02254604: ; jump table
+ .short _02254630 - _02254604 - 2 ; case 0
+ .short _02254630 - _02254604 - 2 ; case 1
+ .short _02254630 - _02254604 - 2 ; case 2
+ .short _02254630 - _02254604 - 2 ; case 3
+ .short _02254630 - _02254604 - 2 ; case 4
+ .short _02254642 - _02254604 - 2 ; case 5
+ .short _02254642 - _02254604 - 2 ; case 6
+ .short _02254642 - _02254604 - 2 ; case 7
+ .short _02254642 - _02254604 - 2 ; case 8
+ .short _02254642 - _02254604 - 2 ; case 9
+ .short _02254642 - _02254604 - 2 ; case 10
+ .short _02254642 - _02254604 - 2 ; case 11
+ .short _02254642 - _02254604 - 2 ; case 12
+ .short _02254630 - _02254604 - 2 ; case 13
+ .short _02254630 - _02254604 - 2 ; case 14
+ .short _02254642 - _02254604 - 2 ; case 15
+ .short _02254630 - _02254604 - 2 ; case 16
+ .short _02254630 - _02254604 - 2 ; case 17
+ .short _0225463A - _02254604 - 2 ; case 18
+ .short _02254630 - _02254604 - 2 ; case 19
+ .short _0225463A - _02254604 - 2 ; case 20
+ .short _02254630 - _02254604 - 2 ; case 21
+_02254630:
+ mov r0, #1
+ strb r0, [r4]
+ mov r0, #0
+ strb r0, [r5]
+ pop {r4, r5, r6, pc}
+_0225463A:
+ mov r0, #1
+ strb r0, [r4]
+ strb r0, [r5]
+ pop {r4, r5, r6, pc}
+_02254642:
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r5]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225464C
+MOD11_0225464C: ; 0x0225464C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02254680
+ add r0, r1, #0
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _02254680
+ mov r1, #0xb4
+ add r0, r1, #0
+ add r0, #0xe8
+ strh r1, [r4, r0]
+ ldr r0, _02254684 ; =MOD11_022546B4
+ ldr r2, _02254688 ; =0x000003F2
+ add r1, r4, #0
+ bl FUN_0200CA44
+ mov r1, #0x66
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+_02254680:
+ pop {r4, pc}
+ nop
+_02254684: .word MOD11_022546B4
+_02254688: .word 0x000003F2
+
+ thumb_func_start MOD11_0225468C
+MOD11_0225468C: ; 0x0225468C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _022546B2
+ bl FUN_0200CAB4
+ mov r0, #0x66
+ mov r2, #0
+ lsl r0, r0, #2
+ str r2, [r4, r0]
+ add r0, r0, #4
+ strh r2, [r4, r0]
+ ldr r0, [r4, #0x20]
+ mov r1, #4
+ bl FUN_02007558
+_022546B2:
+ pop {r4, pc}
+
+ thumb_func_start MOD11_022546B4
+MOD11_022546B4: ; 0x022546B4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0x67
+ lsl r1, r1, #2
+ ldrh r0, [r4, r1]
+ add r0, #0x14
+ strh r0, [r4, r1]
+ add r0, r1, #0
+ ldrh r2, [r4, r1]
+ sub r0, #0x34
+ cmp r2, r0
+ blo _022546D4
+ add r0, r1, #0
+ sub r0, #0x34
+ sub r0, r2, r0
+ strh r0, [r4, r1]
+_022546D4:
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldrh r0, [r4, r0]
+ bl Sin
+ mov r2, #6
+ asr r1, r0, #0x1f
+ lsl r2, r2, #0xa
+ mov r3, #0
+ bl _ll_mul
+ add r2, r1, #0
+ mov r1, #4
+ add r5, r0, #0
+ ldr r0, [r4, #0x20]
+ mov r4, #0
+ lsl r3, r1, #9
+ add r3, r5, r3
+ adc r2, r4
+ lsl r2, r2, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r2
+ asr r2, r3, #0xb
+ lsr r2, r2, #0x14
+ add r2, r3, r2
+ asr r2, r2, #0xc
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02254710
+MOD11_02254710: ; 0x02254710
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0
+ str r1, [sp]
+ str r2, [sp, #4]
+ add r6, r3, #0
+ bl MOD11_022300DC
+ add r4, r0, #0
+ add r0, r7, #0
+ bl MOD11_02230118
+ add r5, r0, #0
+ add r0, r7, #0
+ bl MOD11_02230124
+ add r7, r0, #0
+ add r0, sp, #0x10
+ ldrh r2, [r5]
+ ldrb r3, [r0, #0x10]
+ add r0, r2, #5
+ add r1, r0, r3
+ mov r0, #1
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ bls _0225474A
+ strh r2, [r7]
+ mov r0, #0
+ strh r0, [r5]
+_0225474A:
+ ldr r1, [sp]
+ add r0, sp, #8
+ strb r1, [r0]
+ ldr r1, [sp, #4]
+ strb r1, [r0, #1]
+ add r1, sp, #0x10
+ ldrb r1, [r1, #0x10]
+ strh r1, [r0, #2]
+ add r1, sp, #8
+ mov r0, #0
+_0225475E:
+ ldrb r7, [r1, r0]
+ ldrh r2, [r5]
+ add r0, r0, #1
+ strb r7, [r4, r2]
+ ldrh r2, [r5]
+ add r2, r2, #1
+ strh r2, [r5]
+ cmp r0, #4
+ blo _0225475E
+ mov r0, #0
+ cmp r3, #0
+ ble _02254788
+_02254776:
+ ldrb r2, [r6, r0]
+ ldrh r1, [r5]
+ add r0, r0, #1
+ strb r2, [r4, r1]
+ ldrh r1, [r5]
+ add r1, r1, #1
+ strh r1, [r5]
+ cmp r0, r3
+ blt _02254776
+_02254788:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0225478C
+MOD11_0225478C: ; 0x0225478C
+ push {r3, r4, r5, r6, r7, lr}
+ add r3, r1, #0
+ ldrb r6, [r3, #3]
+ ldrb r1, [r3]
+ ldrb r7, [r3, #2]
+ lsl r6, r6, #8
+ add r5, r0, #0
+ mov r2, #0
+ orr r6, r7
+ ldrb r4, [r3, #1]
+ cmp r1, #0
+ bne _022547D2
+ ldr r0, [r5, #0x30]
+ lsl r1, r4, #8
+ add r4, r0, r1
+ mov r0, #0x23
+ lsl r0, r0, #8
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _0225481C
+ cmp r6, #0
+ ble _022547CE
+ mov r4, #0x23
+ lsl r4, r4, #8
+_022547BC:
+ add r0, r3, r2
+ ldr r7, [r5, #0x30]
+ ldrb r0, [r0, #4]
+ add r7, r1, r7
+ add r7, r2, r7
+ add r2, r2, #1
+ strb r0, [r7, r4]
+ cmp r2, r6
+ blt _022547BC
+_022547CE:
+ mov r2, #1
+ b _0225481C
+_022547D2:
+ cmp r1, #1
+ bne _022547FE
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r1, [r0, #0x34]
+ add r1, #0x94
+ ldrb r1, [r1]
+ cmp r1, #0
+ bne _0225481C
+ cmp r6, #0
+ ble _022547FA
+_022547E8:
+ add r1, r3, r2
+ ldrb r4, [r1, #4]
+ ldr r1, [r0, #0x34]
+ add r1, r1, r2
+ add r1, #0x94
+ add r2, r2, #1
+ strb r4, [r1]
+ cmp r2, r6
+ blt _022547E8
+_022547FA:
+ mov r2, #1
+ b _0225481C
+_022547FE:
+ cmp r1, #2
+ bne _0225481C
+ ldrb r7, [r3, #4]
+ ldrb r6, [r3, #5]
+ bl MOD11_02230DD4
+ cmp r0, #0
+ beq _0225481A
+ ldr r0, [r5, #0x30]
+ add r1, r6, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD11_02243340
+_0225481A:
+ mov r2, #1
+_0225481C:
+ add r0, r2, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02254820
+MOD11_02254820: ; 0x02254820
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ bl MOD11_022300DC
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223010C
+ add r5, r0, #0
+ add r0, r6, #0
+ bl MOD11_02230118
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD11_02230124
+ ldrh r1, [r5]
+ ldrh r2, [r7]
+ cmp r1, r2
+ beq _02254876
+ ldrh r2, [r0]
+ cmp r1, r2
+ bne _02254854
+ mov r1, #0
+ strh r1, [r5]
+ strh r1, [r0]
+_02254854:
+ ldrh r1, [r5]
+ add r0, r6, #0
+ add r1, r4, r1
+ bl MOD11_0225478C
+ cmp r0, #1
+ bne _02254876
+ ldrh r0, [r5]
+ add r1, r0, #2
+ ldrb r2, [r4, r1]
+ add r1, r0, #3
+ ldrb r1, [r4, r1]
+ lsl r1, r1, #8
+ orr r1, r2
+ add r1, r1, #4
+ add r0, r0, r1
+ strh r0, [r5]
+_02254876:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02254878
+MOD11_02254878: ; 0x02254878
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ str r1, [sp, #4]
+ ldr r1, [r5, #0x2c]
+ mov r0, #4
+ add r7, r2, #0
+ add r6, r3, #0
+ tst r0, r1
+ beq _022548C8
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _022548B2
+ mov r4, #0
+ bl FUN_02030F20
+ cmp r0, #0
+ ble _022548B2
+_0225489C:
+ ldrb r3, [r6]
+ ldr r0, [r5, #0x30]
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_02243304
+ add r4, r4, #1
+ bl FUN_02030F20
+ cmp r4, r0
+ blt _0225489C
+_022548B2:
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x10]
+ ldr r1, [sp, #4]
+ add r2, r7, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r3, r6, #0
+ bl FUN_0206C0C8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_022548C8:
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _022548D8
+ ldrb r3, [r6]
+ ldr r0, [r5, #0x30]
+ mov r1, #0
+ bl MOD11_02243304
+_022548D8:
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x10]
+ ldr r1, [sp, #4]
+ add r2, r7, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r3, r6, #0
+ bl MOD11_02254710
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022548F0
+MOD11_022548F0: ; 0x022548F0
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r3, #4
+ str r3, [sp]
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02254908
+MOD11_02254908: ; 0x02254908
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x48
+ add r7, r1, #0
+ mov r3, #2
+ add r2, sp, #0xc
+ strb r3, [r2]
+ mov r2, #0xc0
+ add r4, r7, #0
+ mul r4, r2
+ add r2, sp, #0xc
+ ldrb r2, [r2, #1]
+ mov r3, #3
+ add r6, r0, #0
+ str r2, [sp, #4]
+ bic r2, r3
+ str r2, [sp, #4]
+ ldr r2, [r6, #0x30]
+ add r3, r2, r4
+ ldr r2, _02254A04 ; =0x00002DBE
+ str r2, [sp, #8]
+ ldrb r2, [r3, r2]
+ lsl r2, r2, #0x1c
+ lsr r3, r2, #0x1c
+ mov r2, #3
+ and r3, r2
+ ldr r2, [sp, #4]
+ orr r3, r2
+ add r2, sp, #0xc
+ strb r3, [r2, #1]
+ ldrb r3, [r2, #1]
+ mov r2, #4
+ bic r3, r2
+ ldr r2, [r6, #0x30]
+ add r5, r2, r4
+ ldr r2, [sp, #8]
+ sub r2, #0x58
+ ldrb r2, [r5, r2]
+ lsl r2, r2, #0x1a
+ lsr r2, r2, #0x1f
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #0x1d
+ orr r3, r2
+ add r2, sp, #0xc
+ strb r3, [r2, #1]
+ ldr r2, [r6, #0x30]
+ add r3, r2, r4
+ ldr r2, [sp, #8]
+ sub r2, #0x7e
+ ldrh r3, [r3, r2]
+ add r2, sp, #0xc
+ strh r3, [r2, #2]
+ ldr r2, [r6, #0x30]
+ add r3, r2, r4
+ ldr r2, [sp, #8]
+ sub r2, #0x16
+ str r2, [sp, #8]
+ ldr r2, [r3, r2]
+ str r2, [sp, #0x10]
+ bl MOD11_02230260
+ add r2, r0, #0
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ mov r3, #1
+ bl MOD11_0224ACAC
+ add r2, sp, #0xc
+ str r0, [sp, #0x14]
+ ldrb r0, [r2, #1]
+ mov r1, #0xf8
+ add r5, sp, #0xc
+ bic r0, r1
+ ldr r1, [r6, #0x30]
+ add r3, r1, r4
+ ldr r1, _02254A08 ; =0x00002D66
+ mov r4, #0
+ ldrb r1, [r3, r1]
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1b
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x18
+ orr r0, r1
+ strb r0, [r2, #1]
+_022549AE:
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ add r2, r4, #6
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0xc]
+ add r2, r4, #0
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ add r2, #0x1f
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x14]
+ add r2, r4, #0
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ add r2, #0x27
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x1c]
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #4
+ blt _022549AE
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ mov r2, #0x2d
+ add r3, sp, #0x30
+ bl MOD11_02243420
+ mov r0, #0x3c
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ add r2, r7, #0
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x48
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254A04: .word 0x00002DBE
+_02254A08: .word 0x00002D66
+
+ thumb_func_start MOD11_02254A0C
+MOD11_02254A0C: ; 0x02254A0C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x7c
+ add r7, r1, #0
+ mov r3, #3
+ add r2, sp, #8
+ strb r3, [r2]
+ mov r2, #0xc0
+ add r4, r7, #0
+ mul r4, r2
+ add r2, sp, #8
+ ldrb r5, [r2, #1]
+ mov r2, #3
+ add r6, r0, #0
+ bic r5, r2
+ ldr r2, [r6, #0x30]
+ add r3, r2, r4
+ ldr r2, _02254B34 ; =0x00002DBE
+ str r2, [sp, #4]
+ ldrb r2, [r3, r2]
+ lsl r2, r2, #0x1c
+ lsr r3, r2, #0x1c
+ mov r2, #3
+ and r2, r3
+ add r3, r5, #0
+ orr r3, r2
+ add r2, sp, #8
+ strb r3, [r2, #1]
+ ldrb r3, [r2, #1]
+ mov r2, #4
+ bic r3, r2
+ ldr r2, [r6, #0x30]
+ add r5, r2, r4
+ ldr r2, [sp, #4]
+ sub r2, #0x58
+ ldrb r2, [r5, r2]
+ lsl r2, r2, #0x1a
+ lsr r2, r2, #0x1f
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #0x1d
+ orr r3, r2
+ add r2, sp, #8
+ strb r3, [r2, #1]
+ ldr r2, [r6, #0x30]
+ add r3, r2, r4
+ ldr r2, [sp, #4]
+ sub r2, #0x7e
+ ldrh r3, [r3, r2]
+ add r2, sp, #8
+ strh r3, [r2, #2]
+ ldr r2, [r6, #0x30]
+ add r3, r2, r4
+ ldr r2, [sp, #4]
+ sub r2, #0x16
+ str r2, [sp, #4]
+ ldr r2, [r3, r2]
+ str r2, [sp, #0xc]
+ bl MOD11_02230260
+ add r2, r0, #0
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ mov r3, #1
+ bl MOD11_0224ACAC
+ str r0, [sp, #0x10]
+ ldr r0, [r6, #0x30]
+ add r2, sp, #8
+ add r1, r0, r7
+ ldr r0, _02254B38 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ mov r1, #0xf8
+ str r0, [sp, #0x14]
+ ldrb r0, [r2, #1]
+ bic r0, r1
+ ldr r1, [r6, #0x30]
+ add r3, r1, r4
+ ldr r1, _02254B3C ; =0x00002D66
+ ldrb r3, [r3, r1]
+ add r1, #0x59
+ lsl r3, r3, #0x1b
+ lsr r3, r3, #0x1b
+ lsl r3, r3, #0x1b
+ lsr r3, r3, #0x18
+ orr r0, r3
+ strb r0, [r2, #1]
+ ldr r0, [r6, #0x30]
+ add r0, r0, r4
+ ldrb r0, [r0, r1]
+ add r1, r7, #0
+ str r0, [sp, #0x18]
+ add r0, r6, #0
+ bl MOD11_022302BC
+ ldr r1, [r6, #0x30]
+ ldr r2, [sp, #0x14]
+ add r1, r1, r0
+ ldr r0, _02254B38 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ add r1, r7, #0
+ str r0, [sp, #0x50]
+ add r0, r6, #0
+ bl MOD11_02230F6C
+ mov r4, #0
+ add r5, sp, #8
+_02254ADE:
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ add r2, r4, #6
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x18]
+ add r2, r4, #0
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ add r2, #0x1f
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x20]
+ add r2, r4, #0
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ add r2, #0x27
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x28]
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #4
+ blt _02254ADE
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ mov r2, #0x2d
+ add r3, sp, #0x38
+ bl MOD11_02243420
+ mov r0, #0x74
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ add r2, r7, #0
+ add r3, sp, #8
+ bl MOD11_02254878
+ add sp, #0x7c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254B34: .word 0x00002DBE
+_02254B38: .word 0x0000219C
+_02254B3C: .word 0x00002D66
+
+ thumb_func_start MOD11_02254B40
+MOD11_02254B40: ; 0x02254B40
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x84
+ add r7, r1, #0
+ add r4, r0, #0
+ mov r1, #4
+ add r6, sp, #0x10
+ strb r1, [r6]
+ mov r0, #0xc0
+ add r5, r7, #0
+ mul r5, r0
+ ldr r0, [r4, #0x30]
+ str r2, [sp, #4]
+ add r2, r0, r5
+ ldr r0, _02254D34 ; =0x00002DB0
+ str r3, [sp, #8]
+ ldr r3, [r2, r0]
+ lsl r1, r1, #0x13
+ tst r1, r3
+ ldrb r1, [r6, #1]
+ beq _02254B8A
+ mov r3, #3
+ bic r1, r3
+ add r3, r0, #0
+ add r3, #0x4a
+ ldrh r2, [r2, r3]
+ add r0, #0x34
+ lsl r2, r2, #0x18
+ lsr r3, r2, #0x18
+ mov r2, #3
+ and r2, r3
+ orr r1, r2
+ strb r1, [r6, #1]
+ ldr r1, [r4, #0x30]
+ add r1, r1, r5
+ ldr r0, [r1, r0]
+ str r0, [sp, #0x14]
+ b _02254BAA
+_02254B8A:
+ mov r3, #3
+ bic r1, r3
+ add r3, r0, #0
+ add r3, #0xe
+ ldrb r2, [r2, r3]
+ sub r0, #8
+ lsl r2, r2, #0x1c
+ lsr r3, r2, #0x1c
+ mov r2, #3
+ and r2, r3
+ orr r1, r2
+ strb r1, [r6, #1]
+ ldr r1, [r4, #0x30]
+ add r1, r1, r5
+ ldr r0, [r1, r0]
+ str r0, [sp, #0x14]
+_02254BAA:
+ mov r0, #0xc0
+ add r6, r7, #0
+ add r3, sp, #0x10
+ mul r6, r0
+ ldrb r0, [r3, #1]
+ mov r1, #4
+ bic r0, r1
+ ldr r1, [r4, #0x30]
+ add r2, r1, r6
+ ldr r1, _02254D38 ; =0x00002D66
+ ldrb r2, [r2, r1]
+ sub r1, #0x26
+ lsl r2, r2, #0x1a
+ lsr r2, r2, #0x1f
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #0x1d
+ orr r0, r2
+ strb r0, [r3, #1]
+ ldr r0, [r4, #0x30]
+ add r0, r0, r6
+ ldrh r0, [r0, r1]
+ add r1, r7, #0
+ strh r0, [r3, #2]
+ add r0, r4, #0
+ bl MOD11_02230260
+ add r2, r0, #0
+ ldr r0, [r4, #0x30]
+ add r1, r7, #0
+ mov r3, #0
+ bl MOD11_0224ACAC
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x30]
+ mov r2, #0xf8
+ add r1, r0, r7
+ ldr r0, _02254D3C ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0x1c]
+ add r0, sp, #0x10
+ ldrb r1, [r0, #1]
+ bic r1, r2
+ ldr r2, [r4, #0x30]
+ add r3, r2, r6
+ ldr r2, _02254D38 ; =0x00002D66
+ ldrb r3, [r3, r2]
+ lsl r3, r3, #0x1b
+ lsr r3, r3, #0x1b
+ lsl r3, r3, #0x1b
+ lsr r3, r3, #0x18
+ orr r1, r3
+ strb r1, [r0, #1]
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ beq _02254C1C
+ str r0, [sp, #0x20]
+ b _02254C26
+_02254C1C:
+ ldr r0, [r4, #0x30]
+ add r2, #0x59
+ add r0, r0, r5
+ ldrb r0, [r0, r2]
+ str r0, [sp, #0x20]
+_02254C26:
+ ldr r0, [sp, #8]
+ str r0, [sp, #0x24]
+ ldr r0, [r4, #0x30]
+ add r1, r0, r5
+ ldr r0, _02254D34 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x18
+ tst r0, r1
+ beq _02254C3E
+ mov r0, #1
+ b _02254C40
+_02254C3E:
+ mov r0, #0
+_02254C40:
+ ldr r2, [sp, #0x1c]
+ str r0, [sp, #0x5c]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_02230F6C
+ mov r6, #0
+ add r5, sp, #0x10
+_02254C50:
+ ldr r0, [r4, #0x30]
+ add r1, r7, #0
+ add r2, r6, #6
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x18]
+ add r2, r6, #0
+ ldr r0, [r4, #0x30]
+ add r1, r7, #0
+ add r2, #0x1f
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x20]
+ add r2, r6, #0
+ ldr r0, [r4, #0x30]
+ add r1, r7, #0
+ add r2, #0x27
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x28]
+ add r6, r6, #1
+ add r5, r5, #2
+ cmp r6, #4
+ blt _02254C50
+ ldr r0, [r4, #0x30]
+ add r1, r7, #0
+ mov r2, #0x2d
+ add r3, sp, #0x40
+ bl MOD11_02243420
+ add r3, sp, #0x10
+ mov r2, #0
+ mov ip, r2
+ str r3, [sp, #0xc]
+ add r5, r3, #0
+_02254C9C:
+ ldr r0, [r4, #0x30]
+ add r1, r0, r2
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r1, [r1, r0]
+ ldr r0, [sp, #0xc]
+ add r0, #0x50
+ strh r1, [r0]
+ ldr r0, [r4, #0x30]
+ add r1, r0, r2
+ ldr r0, _02254D38 ; =0x00002D66
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x1a
+ lsr r1, r0, #0x1f
+ add r0, r3, #0
+ add r0, #0x5c
+ strb r1, [r0]
+ ldr r0, [r4, #0x30]
+ add r1, r0, r2
+ ldr r0, _02254D38 ; =0x00002D66
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x1b
+ lsr r1, r0, #0x1b
+ add r0, r3, #0
+ add r0, #0x60
+ strb r1, [r0]
+ ldr r0, [r4, #0x30]
+ add r6, r0, r2
+ ldr r0, _02254D34 ; =0x00002DB0
+ ldr r1, [r6, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r1
+ beq _02254CF2
+ ldr r0, _02254D40 ; =0x00002DFA
+ ldrh r1, [r6, r0]
+ add r0, r3, #0
+ add r0, #0x58
+ strb r1, [r0]
+ ldr r0, [r4, #0x30]
+ add r1, r0, r2
+ ldr r0, _02254D44 ; =0x00002DE4
+ b _02254D06
+_02254CF2:
+ ldr r0, _02254D48 ; =0x00002DBE
+ ldrb r0, [r6, r0]
+ lsl r0, r0, #0x1c
+ lsr r1, r0, #0x1c
+ add r0, r3, #0
+ add r0, #0x58
+ strb r1, [r0]
+ ldr r0, [r4, #0x30]
+ add r1, r0, r2
+ ldr r0, _02254D4C ; =0x00002DA8
+_02254D06:
+ ldr r0, [r1, r0]
+ add r2, #0xc0
+ str r0, [r5, #0x64]
+ ldr r0, [sp, #0xc]
+ add r3, r3, #1
+ add r0, r0, #2
+ str r0, [sp, #0xc]
+ mov r0, ip
+ add r0, r0, #1
+ add r5, r5, #4
+ mov ip, r0
+ cmp r0, #4
+ blt _02254C9C
+ mov r0, #0x74
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r7, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x84
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254D34: .word 0x00002DB0
+_02254D38: .word 0x00002D66
+_02254D3C: .word 0x0000219C
+_02254D40: .word 0x00002DFA
+_02254D44: .word 0x00002DE4
+_02254D48: .word 0x00002DBE
+_02254D4C: .word 0x00002DA8
+
+ thumb_func_start MOD11_02254D50
+MOD11_02254D50: ; 0x02254D50
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r4, r1, #0
+ lsl r1, r2, #2
+ str r0, [sp, #4]
+ add r0, r0, r1
+ ldr r1, [r0, #0x34]
+ ldr r0, _02254E8C ; =0x00000195
+ str r2, [sp, #8]
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02254D6E
+ mov r2, #2
+ b _02254D70
+_02254D6E:
+ mov r2, #0
+_02254D70:
+ ldr r0, [sp, #8]
+ mov r1, #0xc0
+ add r5, r0, #0
+ ldr r0, [sp, #4]
+ mul r5, r1
+ ldr r0, [r0, #0x30]
+ ldr r3, _02254E90 ; =0x00002D66
+ add r0, r0, r5
+ ldrb r0, [r0, r3]
+ mov r1, #5
+ lsl r0, r0, #0x1b
+ lsr r7, r0, #0x1b
+ add r0, sp, #0xc
+ strb r1, [r0]
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x30]
+ add r1, r0, r5
+ add r0, r3, #0
+ add r0, #0x4a
+ ldr r6, [r1, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r6
+ beq _02254DC4
+ add r0, r3, #0
+ add r0, #0x7e
+ ldr r0, [r1, r0]
+ lsl r2, r2, #0x18
+ str r0, [sp]
+ add r0, r3, #0
+ sub r0, #0x26
+ add r3, #0x94
+ ldrh r0, [r1, r0]
+ ldrh r1, [r1, r3]
+ lsl r3, r7, #0x18
+ lsr r2, r2, #0x18
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02068E88
+ b _02254DE6
+_02254DC4:
+ add r0, r3, #0
+ add r0, #0x42
+ ldr r0, [r1, r0]
+ lsl r2, r2, #0x18
+ str r0, [sp]
+ add r0, r3, #0
+ sub r0, #0x26
+ add r3, #0x58
+ ldrh r0, [r1, r0]
+ ldrb r1, [r1, r3]
+ lsl r3, r7, #0x18
+ lsr r2, r2, #0x18
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ lsr r3, r3, #0x18
+ bl FUN_02068E88
+_02254DE6:
+ add r1, sp, #0xc
+ strb r0, [r1, #1]
+ ldr r0, [sp, #4]
+ ldr r1, _02254E94 ; =0x00002DBF
+ ldr r0, [r0, #0x30]
+ add r0, r0, r5
+ ldrb r2, [r0, r1]
+ add r0, sp, #0xc
+ sub r1, #0xf
+ strh r2, [r0, #2]
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x30]
+ add r0, r0, r5
+ ldr r1, [r0, r1]
+ mov r0, #1
+ lsl r0, r0, #0x18
+ tst r0, r1
+ beq _02254E0E
+ mov r0, #1
+ b _02254E10
+_02254E0E:
+ mov r0, #0
+_02254E10:
+ str r0, [sp, #0x10]
+ mov r0, #0
+ mov ip, r0
+ add r7, sp, #0xc
+ ldr r0, _02254E90 ; =0x00002D66
+ add r3, r7, #0
+ add r2, r4, r0
+ add r0, #0x58
+ add r5, r7, #0
+ add r6, r4, r0
+_02254E24:
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r4, r0]
+ strh r0, [r7, #8]
+ ldrb r0, [r2]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ strb r0, [r3, #0x14]
+ ldrb r0, [r2]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1b
+ strb r0, [r3, #0x18]
+ ldr r0, _02254E98 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r1
+ beq _02254E52
+ ldr r0, _02254E9C ; =0x00002DFA
+ ldrh r0, [r4, r0]
+ strb r0, [r3, #0x10]
+ ldr r0, _02254EA0 ; =0x00002DE4
+ b _02254E5C
+_02254E52:
+ ldrb r0, [r6]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ strb r0, [r3, #0x10]
+ ldr r0, _02254EA4 ; =0x00002DA8
+_02254E5C:
+ ldr r0, [r4, r0]
+ add r4, #0xc0
+ str r0, [r5, #0x1c]
+ mov r0, ip
+ add r0, r0, #1
+ add r7, r7, #2
+ add r2, #0xc0
+ add r3, r3, #1
+ add r5, r5, #4
+ add r6, #0xc0
+ mov ip, r0
+ cmp r0, #4
+ blt _02254E24
+ mov r0, #0x2c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #8]
+ mov r1, #1
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254E8C: .word 0x00000195
+_02254E90: .word 0x00002D66
+_02254E94: .word 0x00002DBF
+_02254E98: .word 0x00002DB0
+_02254E9C: .word 0x00002DFA
+_02254EA0: .word 0x00002DE4
+_02254EA4: .word 0x00002DA8
+
+ thumb_func_start MOD11_02254EA8
+MOD11_02254EA8: ; 0x02254EA8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r1, #0
+ add r4, r0, #0
+ lsl r0, r7, #2
+ add r0, r4, r0
+ ldr r1, [r0, #0x34]
+ ldr r0, _02254F58 ; =0x00000195
+ str r2, [sp, #4]
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02254EC6
+ mov r2, #2
+ b _02254EC8
+_02254EC6:
+ mov r2, #0
+_02254EC8:
+ mov r0, #0xc0
+ add r6, r7, #0
+ mul r6, r0
+ ldr r0, [r4, #0x30]
+ ldr r5, _02254F5C ; =0x00002D66
+ add r0, r0, r6
+ ldrb r0, [r0, r5]
+ mov r1, #6
+ lsl r0, r0, #0x1b
+ lsr r3, r0, #0x1b
+ add r0, sp, #8
+ strb r1, [r0]
+ ldr r0, [r4, #0x30]
+ add r1, r0, r6
+ add r0, r5, #0
+ add r0, #0x4a
+ ldr r6, [r1, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r6
+ beq _02254F16
+ add r0, r5, #0
+ add r0, #0x7e
+ ldr r0, [r1, r0]
+ lsl r2, r2, #0x18
+ str r0, [sp]
+ add r0, r5, #0
+ sub r0, #0x26
+ add r5, #0x94
+ ldrh r0, [r1, r0]
+ ldrh r1, [r1, r5]
+ lsl r3, r3, #0x18
+ lsr r2, r2, #0x18
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02068E88
+ b _02254F38
+_02254F16:
+ add r0, r5, #0
+ add r0, #0x42
+ ldr r0, [r1, r0]
+ lsl r2, r2, #0x18
+ str r0, [sp]
+ add r0, r5, #0
+ sub r0, #0x26
+ add r5, #0x58
+ ldrh r0, [r1, r0]
+ ldrb r1, [r1, r5]
+ lsl r3, r3, #0x18
+ lsr r2, r2, #0x18
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ lsr r3, r3, #0x18
+ bl FUN_02068E88
+_02254F38:
+ add r1, sp, #8
+ strb r0, [r1, #1]
+ ldr r0, [sp, #4]
+ add r1, sp, #8
+ strh r0, [r1, #2]
+ mov r0, #4
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r7, #0
+ add r3, sp, #8
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02254F58: .word 0x00000195
+_02254F5C: .word 0x00002D66
+
+ thumb_func_start MOD11_02254F60
+MOD11_02254F60: ; 0x02254F60
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #7
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02254F7C
+MOD11_02254F7C: ; 0x02254F7C
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #8
+ add r3, sp, #4
+ strb r1, [r3]
+ mov r1, #0x34
+ mul r1, r2
+ add r1, r0, r1
+ add r1, #0xad
+ ldrb r1, [r1]
+ strh r1, [r3, #2]
+ add r1, r0, r2
+ add r1, #0xa8
+ ldrb r1, [r1]
+ strb r1, [r3, #1]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02254FAC
+MOD11_02254FAC: ; 0x02254FAC
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ mov r6, #9
+ add r3, sp, #4
+ strb r6, [r3]
+ add r5, r0, #0
+ strb r2, [r3, #1]
+ add r4, r1, #0
+ bl MOD11_022302BC
+ ldr r1, [r5, #0x30]
+ add r2, r4, #0
+ add r1, r1, r0
+ ldr r0, _02254FE0 ; =0x0000219C
+ add r3, sp, #4
+ ldrb r1, [r1, r0]
+ add r0, sp, #4
+ strh r1, [r0, #2]
+ mov r0, #4
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02254FE0: .word 0x0000219C
+
+ thumb_func_start MOD11_02254FE4
+MOD11_02254FE4: ; 0x02254FE4
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0xa
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255000
+MOD11_02255000: ; 0x02255000
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r3, r1, #0
+ mov r1, #0xb
+ add r4, sp, #4
+ strb r1, [r4]
+ mov r1, #0x34
+ mul r1, r3
+ add r1, r0, r1
+ add r1, #0xad
+ ldrb r1, [r1]
+ strh r1, [r4, #2]
+ add r1, r0, r3
+ add r1, #0xa8
+ ldrb r1, [r1]
+ strb r1, [r4, #1]
+ str r2, [sp, #8]
+ mov r1, #8
+ str r1, [sp]
+ add r2, r3, #0
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD11_02255034
+MOD11_02255034: ; 0x02255034
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r5, r1, #0
+ ldr r1, _02255158 ; =0x0000219C
+ add r4, r2, #0
+ add r7, r5, r1
+ ldrb r2, [r7, r4]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ bl MOD11_02230014
+ add r6, r0, #0
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #0x10]
+ add r0, r6, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #0xc]
+ mov r0, #0xc
+ add r2, sp, #0x14
+ strb r0, [r2]
+ mov r0, #0xc0
+ add r6, r4, #0
+ mul r6, r0
+ ldr r1, _0225515C ; =0x00002D74
+ add r0, r5, r6
+ ldrb r3, [r0, r1]
+ strb r3, [r2, #1]
+ add r3, r1, #0
+ add r3, #0x18
+ ldr r3, [r0, r3]
+ add r1, #0x1c
+ strh r3, [r2, #2]
+ ldr r0, [r0, r1]
+ add r1, r4, #0
+ strh r0, [r2, #4]
+ ldrb r0, [r7, r4]
+ strb r0, [r2, #6]
+ add r0, r5, #0
+ bl MOD11_0224524C
+ add r1, sp, #0x14
+ ldrb r2, [r1, #7]
+ mov r3, #0x1f
+ lsl r0, r0, #0x18
+ bic r2, r3
+ lsr r3, r0, #0x18
+ mov r0, #0x1f
+ and r0, r3
+ orr r0, r2
+ strb r0, [r1, #7]
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r7, r5, r0
+ ldrh r0, [r7, r6]
+ cmp r0, #0x1d
+ beq _022550B6
+ cmp r0, #0x20
+ bne _022550D0
+_022550B6:
+ ldr r0, _02255160 ; =0x00002D54
+ add r1, r5, r6
+ ldr r0, [r1, r0]
+ lsr r0, r0, #0x1f
+ bne _022550D0
+ add r0, sp, #0x14
+ ldrb r1, [r0, #7]
+ mov r2, #0x60
+ bic r1, r2
+ mov r2, #0x40
+ orr r1, r2
+ strb r1, [r0, #7]
+ b _022550EA
+_022550D0:
+ add r3, sp, #0x14
+ ldrb r2, [r3, #7]
+ mov r0, #0x60
+ add r1, r5, r6
+ bic r2, r0
+ ldr r0, _02255164 ; =0x00002DBE
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x19
+ orr r0, r2
+ strb r0, [r3, #7]
+_022550EA:
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0xc]
+ bl GetMonExpBySpeciesAndLevel
+ mov r1, #0xc0
+ mul r1, r4
+ add r2, r5, r1
+ ldr r1, _02255168 ; =0x00002DA4
+ ldr r1, [r2, r1]
+ sub r0, r1, r0
+ ldr r1, [sp, #0xc]
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x10]
+ add r1, r1, #1
+ bl GetMonExpBySpeciesAndLevel
+ add r5, r0, #0
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0xc]
+ bl GetMonExpBySpeciesAndLevel
+ sub r0, r5, r0
+ str r0, [sp, #0x20]
+ ldrh r1, [r7, r6]
+ ldr r0, [sp, #4]
+ bl MOD11_02231668
+ add r3, sp, #0x14
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1f
+ ldrb r1, [r3, #7]
+ mov r2, #0x80
+ lsr r0, r0, #0x18
+ bic r1, r2
+ orr r0, r1
+ strb r0, [r3, #7]
+ ldr r0, [sp, #4]
+ bl MOD11_02230E00
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #8]
+ add r1, sp, #0x14
+ strb r0, [r1, #0x14]
+ mov r0, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #0x14
+ bl MOD11_02254878
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02255158: .word 0x0000219C
+_0225515C: .word 0x00002D74
+_02255160: .word 0x00002D54
+_02255164: .word 0x00002DBE
+_02255168: .word 0x00002DA4
+
+ thumb_func_start MOD11_0225516C
+MOD11_0225516C: ; 0x0225516C
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0xd
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255188
+MOD11_02255188: ; 0x02255188
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x54
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ mov r0, #0
+ add r1, sp, #0x28
+ mov r2, #0x2c
+ add r6, r3, #0
+ bl MIi_CpuClearFast
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF78
+ ldr r1, [sp, #0xc]
+ bl MOD11_02243400
+ mov r5, #0
+ ldr r0, [sp, #4]
+ add r4, r5, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _022551D8
+_022551B8:
+ ldr r0, [sp, #8]
+ add r1, r4, #0
+ bl MOD11_0224AD04
+ cmp r0, #0
+ bne _022551CC
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_022551CC:
+ ldr r0, [sp, #4]
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _022551B8
+_022551D8:
+ mov r1, #0xe
+ add r0, sp, #0x28
+ strb r1, [r0]
+ strb r6, [r0, #1]
+ ldr r1, _022554F8 ; =0x00003108
+ ldr r0, [sp, #8]
+ ldrb r0, [r0, r1]
+ add r1, r0, #0
+ orr r1, r5
+ add r0, sp, #0x48
+ strb r1, [r0, #9]
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ str r0, [sp, #0x20]
+ tst r0, r1
+ beq _0225520E
+ ldr r0, [sp, #0x20]
+ mov r1, #8
+ tst r0, r1
+ bne _0225520E
+ ldr r0, [sp, #0xc]
+ mov r1, #1
+ add r4, r0, #0
+ and r4, r1
+ b _02255210
+_0225520E:
+ ldr r4, [sp, #0xc]
+_02255210:
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_0222FF88
+ str r0, [sp, #0x24]
+ mov r6, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _022552A6
+ mov r0, #6
+ add r1, r4, #0
+ mul r1, r0
+ ldr r0, [sp, #8]
+ add r5, sp, #0x28
+ add r7, r0, r1
+ mov r1, #0xa9
+ ldr r0, [sp, #0x20]
+ lsl r1, r1, #2
+ and r0, r1
+ str r0, [sp, #0x1c]
+_0225523A:
+ ldr r1, _022554FC ; =0x0000312C
+ ldr r0, [sp, #0x24]
+ ldrb r1, [r7, r1]
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r4, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02255298
+ ldr r1, _02255500 ; =0x000001EE
+ cmp r0, r1
+ beq _02255298
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02255280
+ add r0, r4, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0225527A
+ mov r0, #3
+ strb r0, [r5, #8]
+ b _02255284
+_0225527A:
+ mov r0, #1
+ strb r0, [r5, #8]
+ b _02255284
+_02255280:
+ mov r0, #2
+ strb r0, [r5, #8]
+_02255284:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _0225528E
+ mov r0, #0
+ b _02255294
+_0225528E:
+ add r0, r4, #0
+ bl GetPercentProgressTowardsNextLevel
+_02255294:
+ strb r0, [r5, #2]
+ add r5, r5, #1
+_02255298:
+ ldr r0, [sp, #0x24]
+ add r7, r7, #1
+ add r6, r6, #1
+ bl GetPartyCount
+ cmp r6, r0
+ blt _0225523A
+_022552A6:
+ ldr r0, [sp, #0x20]
+ mov r1, #0xc
+ and r0, r1
+ cmp r0, #0xc
+ beq _022552C4
+ ldr r0, [sp, #0x20]
+ mov r1, #0x10
+ tst r0, r1
+ bne _022552C4
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x4b
+ beq _022552C4
+ cmp r0, #0xcb
+ beq _022552C4
+ b _022553FC
+_022552C4:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _022552DA
+ ldr r0, [sp, #4]
+ mov r1, #2
+ bl MOD11_0223022C
+ b _022552E2
+_022552DA:
+ ldr r0, [sp, #4]
+ mov r1, #3
+ bl MOD11_0223022C
+_022552E2:
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_0222FF88
+ str r0, [sp, #0x10]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0225535E
+ add r1, r4, #0
+ mov r0, #6
+ mul r1, r0
+ ldr r0, [sp, #8]
+ add r4, sp, #0x28
+ add r6, r0, r1
+_02255304:
+ ldr r1, _022554FC ; =0x0000312C
+ ldr r0, [sp, #0x10]
+ ldrb r1, [r6, r1]
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r7, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02255350
+ ldr r1, _02255500 ; =0x000001EE
+ cmp r0, r1
+ beq _02255350
+ add r0, r7, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0225534A
+ add r0, r7, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02255344
+ mov r0, #3
+ strb r0, [r4, #0xe]
+ b _0225534E
+_02255344:
+ mov r0, #1
+ strb r0, [r4, #0xe]
+ b _0225534E
+_0225534A:
+ mov r0, #2
+ strb r0, [r4, #0xe]
+_0225534E:
+ add r4, r4, #1
+_02255350:
+ ldr r0, [sp, #0x10]
+ add r6, r6, #1
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _02255304
+_0225535E:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02255374
+ ldr r0, [sp, #4]
+ mov r1, #4
+ bl MOD11_0223022C
+ b _0225537C
+_02255374:
+ ldr r0, [sp, #4]
+ mov r1, #5
+ bl MOD11_0223022C
+_0225537C:
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_0222FF88
+ str r0, [sp, #0x14]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02255482
+ add r1, r4, #0
+ mov r0, #6
+ mul r1, r0
+ ldr r0, [sp, #8]
+ add r4, sp, #0x28
+ add r6, r0, r1
+ add r4, #3
+_022553A0:
+ ldr r1, _022554FC ; =0x0000312C
+ ldr r0, [sp, #0x14]
+ ldrb r1, [r6, r1]
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r7, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022553EC
+ ldr r1, _02255500 ; =0x000001EE
+ cmp r0, r1
+ beq _022553EC
+ add r0, r7, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022553E6
+ add r0, r7, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022553E0
+ mov r0, #3
+ strb r0, [r4, #0xe]
+ b _022553EA
+_022553E0:
+ mov r0, #1
+ strb r0, [r4, #0xe]
+ b _022553EA
+_022553E6:
+ mov r0, #2
+ strb r0, [r4, #0xe]
+_022553EA:
+ add r4, r4, #1
+_022553EC:
+ ldr r0, [sp, #0x14]
+ add r6, r6, #1
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _022553A0
+ b _02255482
+_022553FC:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0xc]
+ mov r2, #2
+ bl MOD11_02230308
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_0222FF88
+ str r0, [sp, #0x18]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02255482
+ add r1, r4, #0
+ mov r0, #6
+ mul r1, r0
+ ldr r0, [sp, #8]
+ add r4, sp, #0x28
+ add r6, r0, r1
+_02255428:
+ ldr r1, _022554FC ; =0x0000312C
+ ldr r0, [sp, #0x18]
+ ldrb r1, [r6, r1]
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r7, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02255474
+ ldr r1, _02255500 ; =0x000001EE
+ cmp r0, r1
+ beq _02255474
+ add r0, r7, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0225546E
+ add r0, r7, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02255468
+ mov r0, #3
+ strb r0, [r4, #0xe]
+ b _02255472
+_02255468:
+ mov r0, #1
+ strb r0, [r4, #0xe]
+ b _02255472
+_0225546E:
+ mov r0, #2
+ strb r0, [r4, #0xe]
+_02255472:
+ add r4, r4, #1
+_02255474:
+ ldr r0, [sp, #0x18]
+ add r6, r6, #1
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _02255428
+_02255482:
+ mov r5, #0
+ add r6, sp, #0x28
+ add r4, r6, #0
+ add r7, r5, #0
+_0225548A:
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ add r2, r5, #6
+ add r3, r7, #0
+ bl MOD11_02243420
+ strh r0, [r6, #0x14]
+ add r2, r5, #0
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ add r2, #0x1f
+ mov r3, #0
+ bl MOD11_02243420
+ strb r0, [r4, #0x1c]
+ add r2, r5, #0
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ add r2, #0x27
+ mov r3, #0
+ bl MOD11_02243420
+ add r1, r4, #0
+ add r1, #0x20
+ add r5, r5, #1
+ strb r0, [r1]
+ add r6, r6, #2
+ add r4, r4, #1
+ cmp r5, #4
+ blt _0225548A
+ ldr r0, [sp, #0xc]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, [sp, #8]
+ add r3, sp, #0x28
+ add r0, r0, r1
+ ldr r1, _02255504 ; =0x00002D8C
+ ldr r2, [r0, r1]
+ strh r2, [r3, #0x24]
+ add r2, r1, #4
+ ldr r2, [r0, r2]
+ strh r2, [r3, #0x26]
+ mov r2, #0x24
+ ldrsh r2, [r3, r2]
+ cmp r2, #0
+ beq _0225550E
+ add r1, #0x20
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ add r0, sp, #0x48
+ beq _02255508
+ mov r1, #3
+ strb r1, [r0, #8]
+ b _02255514
+ nop
+_022554F8: .word 0x00003108
+_022554FC: .word 0x0000312C
+_02255500: .word 0x000001EE
+_02255504: .word 0x00002D8C
+_02255508:
+ mov r1, #1
+ strb r1, [r0, #8]
+ b _02255514
+_0225550E:
+ mov r1, #2
+ add r0, sp, #0x48
+ strb r1, [r0, #8]
+_02255514:
+ mov r0, #0x2c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0xc]
+ mov r1, #1
+ add r3, sp, #0x28
+ bl MOD11_02254878
+ add sp, #0x54
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02255528
+MOD11_02255528: ; 0x02255528
+ push {r0, r1, r2, r3}
+ push {r3, lr}
+ add r2, r1, #0
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD11_02255544
+MOD11_02255544: ; 0x02255544
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r2, [sp, #0xc]
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ bl MOD11_0222FF78
+ ldr r1, [sp, #0xc]
+ bl MOD11_02243400
+ mov r0, #0xf
+ add r2, sp, #0x14
+ strb r0, [r2]
+ add r7, sp, #0x14
+ ldr r1, [sp, #8]
+ ldr r0, [sp, #0xc]
+ add r5, r7, #0
+ add r1, r1, r0
+ ldr r0, _022555D4 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ mov r1, #0xc0
+ strb r0, [r2, #1]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ mul r1, r0
+ ldr r0, [sp, #8]
+ add r6, r0, r1
+ add r4, r6, #0
+_0225557E:
+ ldr r0, _022555D8 ; =0x00002D4C
+ ldr r1, _022555DC ; =0x00002D70
+ ldrh r0, [r6, r0]
+ strh r0, [r7, #4]
+ ldr r0, _022555E0 ; =0x00002D6C
+ ldrb r0, [r4, r0]
+ strb r0, [r5, #0xc]
+ ldr r0, _022555D8 ; =0x00002D4C
+ ldrb r1, [r4, r1]
+ ldrh r0, [r6, r0]
+ bl WazaGetMaxPp
+ strb r0, [r5, #0x10]
+ ldr r0, [sp, #0x10]
+ add r6, r6, #2
+ add r0, r0, #1
+ add r7, r7, #2
+ add r4, r4, #1
+ add r5, r5, #1
+ str r0, [sp, #0x10]
+ cmp r0, #4
+ blt _0225557E
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #0xc]
+ mov r3, #0
+ bl MOD11_02245D38
+ add r1, sp, #0x14
+ strh r0, [r1, #2]
+ mov r0, #0x14
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0xc]
+ mov r1, #1
+ add r3, sp, #0x14
+ bl MOD11_02254878
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022555D4: .word 0x0000219C
+_022555D8: .word 0x00002D4C
+_022555DC: .word 0x00002D70
+_022555E0: .word 0x00002D6C
+
+ thumb_func_start MOD11_022555E4
+MOD11_022555E4: ; 0x022555E4
+ push {r0, r1, r2, r3}
+ push {r3, lr}
+ add r2, r1, #0
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD11_02255600
+MOD11_02255600: ; 0x02255600
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ add r0, r1, #0
+ add r1, r3, #0
+ add r4, r2, #0
+ str r3, [sp, #0xc]
+ bl MOD11_02243400
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ mov r2, #0x10
+ add r1, sp, #0x1c
+ strb r2, [r1]
+ strh r4, [r1, #2]
+ mov r1, #2
+ add r2, r0, #0
+ and r2, r1
+ beq _0225563A
+ mov r1, #8
+ tst r0, r1
+ bne _0225563A
+ cmp r2, #0
+ beq _02255642
+ ldr r0, [sp, #0xc]
+ cmp r0, #2
+ blt _02255642
+_0225563A:
+ mov r1, #1
+ add r0, sp, #0x1c
+ strb r1, [r0, #1]
+ b _02255648
+_02255642:
+ mov r1, #0
+ add r0, sp, #0x1c
+ strb r1, [r0, #1]
+_02255648:
+ ldr r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r1, _0225570C ; =0x00002D54
+ add r0, r2, #0
+ add r7, r0, r1
+ add r1, #0x6a
+ add r5, r0, r1
+ mov r0, #3
+ add r4, sp, #0x20
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x10]
+ mov r0, #4
+ add r3, sp, #0x1c
+ add r4, #1
+ mov ip, r0
+_02255668:
+ ldr r0, _02255710 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _022556D6
+ strh r0, [r3, #8]
+ ldr r0, _02255714 ; =0x00002D90
+ ldr r0, [r2, r0]
+ strh r0, [r3, #0xa]
+ ldrb r1, [r4]
+ mov r0, #4
+ orr r0, r1
+ strb r0, [r4]
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r2, r0]
+ cmp r0, #0x1d
+ beq _0225568E
+ cmp r0, #0x20
+ bne _022556A2
+_0225568E:
+ ldr r0, [r7]
+ lsr r0, r0, #0x1f
+ bne _022556A2
+ ldrb r0, [r4]
+ ldr r1, [sp, #0x10]
+ bic r0, r1
+ mov r1, #2
+ orr r0, r1
+ strb r0, [r4]
+ b _022556B6
+_022556A2:
+ ldrb r6, [r4]
+ ldr r0, [sp, #0x14]
+ bic r6, r0
+ ldrb r0, [r5]
+ lsl r0, r0, #0x1c
+ lsr r1, r0, #0x1c
+ mov r0, #3
+ and r0, r1
+ orr r0, r6
+ strb r0, [r4]
+_022556B6:
+ ldr r1, [sp, #8]
+ ldr r0, [sp, #0x18]
+ add r1, r1, r0
+ ldr r0, _02255718 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ strb r0, [r3, #4]
+ ldr r0, _0225571C ; =0x00002DAC
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _022556D0
+ mov r0, #3
+ strb r0, [r3, #6]
+ b _022556E2
+_022556D0:
+ mov r0, #1
+ strb r0, [r3, #6]
+ b _022556E2
+_022556D6:
+ ldrb r1, [r4]
+ mov r0, ip
+ bic r1, r0
+ strb r1, [r4]
+ mov r0, #2
+ strb r0, [r3, #6]
+_022556E2:
+ ldr r0, [sp, #0x18]
+ add r2, #0xc0
+ add r0, r0, #1
+ add r3, #8
+ add r4, #8
+ add r7, #0xc0
+ add r5, #0xc0
+ str r0, [sp, #0x18]
+ cmp r0, #4
+ blt _02255668
+ mov r0, #0x24
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0xc]
+ mov r1, #1
+ add r3, sp, #0x1c
+ bl MOD11_02254878
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225570C: .word 0x00002D54
+_02255710: .word 0x00002D8C
+_02255714: .word 0x00002D90
+_02255718: .word 0x0000219C
+_0225571C: .word 0x00002DAC
+
+ thumb_func_start MOD11_02255720
+MOD11_02255720: ; 0x02255720
+ push {r0, r1, r2, r3}
+ push {r3, lr}
+ add r2, r1, #0
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD11_0225573C
+MOD11_0225573C: ; 0x0225573C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ add r0, r1, #0
+ add r1, r2, #0
+ str r2, [sp, #0xc]
+ bl MOD11_02243400
+ add r6, sp, #0x10
+ mov r1, #0x11
+ add r0, sp, #0x10
+ strb r1, [r0]
+ mov r0, #0
+ ldr r4, [sp, #8]
+ mov ip, r0
+ ldr r1, _022558B0 ; =0x00002DCC
+ add r0, r4, #0
+ add r7, r0, r1
+ ldr r0, _022558B4 ; =0x0000312C
+ add r5, r6, #0
+_02255766:
+ ldr r2, [sp, #8]
+ mov r1, ip
+ add r2, r2, r1
+ ldr r1, _022558B8 ; =0x0000219C
+ mov r3, #0
+ ldrb r1, [r2, r1]
+ strb r1, [r6, #4]
+_02255774:
+ add r1, r4, r3
+ ldrb r2, [r1, r0]
+ add r1, r5, r3
+ add r3, r3, #1
+ strb r2, [r1, #8]
+ cmp r3, #6
+ blt _02255774
+ ldr r1, [r7]
+ add r2, r6, #0
+ lsl r1, r1, #0xa
+ lsr r1, r1, #0x1d
+ add r2, #0x20
+ strb r1, [r2]
+ mov r1, ip
+ add r1, r1, #1
+ add r6, r6, #1
+ add r4, r4, #6
+ add r5, r5, #6
+ add r7, #0xc0
+ mov ip, r1
+ cmp r1, #4
+ blt _02255766
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ cmp r0, #0x4a
+ bne _02255852
+ mov r0, #1
+ bl MaskOfFlagNo
+ ldr r2, _022558BC ; =0x00003108
+ ldr r1, [sp, #8]
+ ldrb r1, [r1, r2]
+ tst r0, r1
+ bne _022557D8
+ mov r0, #3
+ bl MaskOfFlagNo
+ ldr r2, _022558BC ; =0x00003108
+ ldr r1, [sp, #8]
+ ldrb r1, [r1, r2]
+ tst r0, r1
+ bne _022557D8
+ mov r1, #1
+ add r0, sp, #0x10
+ strb r1, [r0, #1]
+ mov r1, #0
+ strb r1, [r0, #2]
+ strb r1, [r0, #3]
+ b _0225589C
+_022557D8:
+ mov r0, #1
+ bl MaskOfFlagNo
+ ldr r2, _022558BC ; =0x00003108
+ ldr r1, [sp, #8]
+ add r3, sp, #0x10
+ ldrb r1, [r1, r2]
+ tst r0, r1
+ bne _0225581E
+ mov r0, #0
+ mov r2, #0xba
+ ldr r1, [sp, #8]
+ strb r0, [r3, #1]
+ lsl r2, r2, #6
+ ldr r4, [r1, r2]
+ ldr r1, _022558C0 ; =0x200400C0
+ tst r1, r4
+ beq _02255804
+ mov r1, #1
+ strb r1, [r3, #2]
+ strb r0, [r3, #3]
+ b _0225589C
+_02255804:
+ ldr r1, [sp, #8]
+ sub r2, #0x10
+ ldr r2, [r1, r2]
+ mov r1, #1
+ lsl r1, r1, #0x18
+ tst r1, r2
+ strb r0, [r3, #2]
+ beq _0225581A
+ mov r0, #1
+ strb r0, [r3, #3]
+ b _0225589C
+_0225581A:
+ strb r0, [r3, #3]
+ b _0225589C
+_0225581E:
+ mov r0, #0
+ mov r2, #3
+ ldr r1, [sp, #8]
+ strb r0, [r3, #1]
+ lsl r2, r2, #0xc
+ ldr r4, [r1, r2]
+ ldr r1, _022558C0 ; =0x200400C0
+ tst r1, r4
+ beq _02255838
+ mov r1, #1
+ strb r1, [r3, #2]
+ strb r0, [r3, #3]
+ b _0225589C
+_02255838:
+ ldr r1, [sp, #8]
+ sub r2, #0x10
+ ldr r2, [r1, r2]
+ mov r1, #1
+ lsl r1, r1, #0x18
+ tst r1, r2
+ strb r0, [r3, #2]
+ beq _0225584E
+ mov r0, #1
+ strb r0, [r3, #3]
+ b _0225589C
+_0225584E:
+ strb r0, [r3, #3]
+ b _0225589C
+_02255852:
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ cmp r0, #0
+ bne _02255892
+ mov r2, #0xba
+ mov r0, #0
+ add r3, sp, #0x10
+ ldr r1, [sp, #8]
+ strb r0, [r3, #1]
+ lsl r2, r2, #6
+ ldr r4, [r1, r2]
+ ldr r1, _022558C0 ; =0x200400C0
+ tst r1, r4
+ beq _02255878
+ mov r1, #1
+ strb r1, [r3, #2]
+ strb r0, [r3, #3]
+ b _0225589C
+_02255878:
+ ldr r1, [sp, #8]
+ sub r2, #0x10
+ ldr r2, [r1, r2]
+ mov r1, #1
+ lsl r1, r1, #0x18
+ tst r1, r2
+ strb r0, [r3, #2]
+ beq _0225588E
+ mov r0, #1
+ strb r0, [r3, #3]
+ b _0225589C
+_0225588E:
+ strb r0, [r3, #3]
+ b _0225589C
+_02255892:
+ mov r1, #0
+ add r0, sp, #0x10
+ strb r1, [r0, #1]
+ strb r1, [r0, #2]
+ strb r1, [r0, #3]
+_0225589C:
+ mov r0, #0x24
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0xc]
+ mov r1, #1
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022558B0: .word 0x00002DCC
+_022558B4: .word 0x0000312C
+_022558B8: .word 0x0000219C
+_022558BC: .word 0x00003108
+_022558C0: .word 0x200400C0
+
+ thumb_func_start MOD11_022558C4
+MOD11_022558C4: ; 0x022558C4
+ push {r0, r1, r2, r3}
+ push {r3, lr}
+ add r2, r1, #0
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD11_022558E0
+MOD11_022558E0: ; 0x022558E0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ add r0, r1, #0
+ add r1, r2, #0
+ str r2, [sp, #0xc]
+ add r4, r3, #0
+ bl MOD11_02243400
+ mov r0, #0x12
+ add r1, sp, #0x10
+ strb r0, [r1]
+ ldr r0, [sp, #0xc]
+ add r7, sp, #0x10
+ strb r0, [r1, #1]
+ ldr r0, [sp, #0x50]
+ strb r4, [r1, #2]
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x54]
+ ldr r5, [sp, #8]
+ strb r0, [r1, #3]
+ ldr r1, _02255958 ; =0x00003108
+ ldr r0, [sp, #8]
+ mov r3, #0
+ ldrb r1, [r0, r1]
+ add r0, sp, #0x30
+ add r6, r7, #0
+ strb r1, [r0, #4]
+ ldr r0, _0225595C ; =0x0000312C
+_0225591C:
+ ldr r1, [sp, #8]
+ mov r4, #0
+ add r2, r1, r3
+ ldr r1, _02255960 ; =0x0000219C
+ ldrb r1, [r2, r1]
+ strb r1, [r7, #4]
+_02255928:
+ add r1, r5, r4
+ ldrb r2, [r1, r0]
+ add r1, r6, r4
+ add r4, r4, #1
+ strb r2, [r1, #8]
+ cmp r4, #6
+ blt _02255928
+ add r3, r3, #1
+ add r7, r7, #1
+ add r5, r5, #6
+ add r6, r6, #6
+ cmp r3, #4
+ blt _0225591C
+ mov r0, #0x28
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0xc]
+ mov r1, #1
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02255958: .word 0x00003108
+_0225595C: .word 0x0000312C
+_02255960: .word 0x0000219C
+
+ thumb_func_start MOD11_02255964
+MOD11_02255964: ; 0x02255964
+ push {r0, r1, r2, r3}
+ push {r3, lr}
+ add r2, r1, #0
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD11_02255980
+MOD11_02255980: ; 0x02255980
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r2, #0
+ add r6, r0, #0
+ add r0, r1, #0
+ add r1, r5, #0
+ add r4, r3, #0
+ bl MOD11_02243400
+ mov r1, #0x13
+ add r0, sp, #4
+ strb r1, [r0]
+ ldr r1, [sp, #0x20]
+ strh r4, [r0, #2]
+ strb r1, [r0, #1]
+ ldr r0, [sp, #0x24]
+ mov r1, #1
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x28]
+ add r2, r5, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xc
+ str r0, [sp]
+ add r0, r6, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022559BC
+MOD11_022559BC: ; 0x022559BC
+ push {r4, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x14
+ add r3, sp, #4
+ strb r1, [r3]
+ ldr r1, [r2, #0x64]
+ add r4, r2, r1
+ ldr r1, _022559EC ; =0x0000219C
+ ldrb r1, [r4, r1]
+ strb r1, [r3, #1]
+ ldr r1, _022559F0 ; =0x00003044
+ ldr r1, [r2, r1]
+ strh r1, [r3, #2]
+ mov r1, #4
+ str r1, [sp]
+ ldr r2, [r2, #0x64]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, pc}
+ nop
+_022559EC: .word 0x0000219C
+_022559F0: .word 0x00003044
+
+ thumb_func_start MOD11_022559F4
+MOD11_022559F4: ; 0x022559F4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r3, r2, #0
+ mov r1, #0x15
+ strb r1, [r3]
+ mov r1, #0x24
+ str r1, [sp]
+ ldr r2, [r4, #0x64]
+ mov r1, #1
+ bl MOD11_02254878
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD11_02255A10
+MOD11_02255A10: ; 0x02255A10
+ push {r4, r5, r6, lr}
+ sub sp, #0x68
+ mov r3, #0
+ add r4, r1, #0
+ str r3, [sp]
+ ldr r6, [r4, #0x64]
+ add r5, r0, #0
+ str r6, [sp, #4]
+ ldr r6, [r4, #0x6c]
+ str r6, [sp, #8]
+ str r2, [sp, #0xc]
+ add r2, sp, #0x10
+ bl MOD11_02256854
+ mov r0, #0x58
+ str r0, [sp]
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ mov r1, #1
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x68
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02255A40
+MOD11_02255A40: ; 0x02255A40
+ push {r4, r5, r6, lr}
+ sub sp, #0x68
+ add r4, r3, #0
+ mov r3, #0
+ str r3, [sp]
+ ldr r6, [sp, #0x78]
+ str r4, [sp, #4]
+ str r6, [sp, #8]
+ str r2, [sp, #0xc]
+ add r2, sp, #0x10
+ add r5, r0, #0
+ bl MOD11_02256854
+ mov r0, #0x58
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x68
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255A70
+MOD11_02255A70: ; 0x02255A70
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x17
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255A8C
+MOD11_02255A8C: ; 0x02255A8C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r1, #0
+ str r2, [sp, #8]
+ add r1, r2, #0
+ add r3, r5, r2
+ ldr r2, _02255B50 ; =0x0000219C
+ str r0, [sp, #4]
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ add r4, r0, #0
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ add r6, r0, #0
+ mov r0, #0x18
+ add r2, sp, #0xc
+ strb r0, [r2]
+ ldr r0, [sp, #8]
+ mov r1, #0xc0
+ add r4, r0, #0
+ mul r4, r1
+ ldr r1, _02255B54 ; =0x00002D74
+ add r0, r5, r4
+ ldrb r3, [r0, r1]
+ strb r3, [r2, #1]
+ add r3, r1, #0
+ add r3, #0x18
+ ldr r3, [r0, r3]
+ strh r3, [r2, #2]
+ add r3, r1, #0
+ add r3, #0x1c
+ ldr r3, [r0, r3]
+ sub r1, #0x34
+ strh r3, [r2, #4]
+ ldr r2, _02255B58 ; =0x0000215C
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x14]
+ ldrh r0, [r0, r1]
+ cmp r0, #0x1d
+ beq _02255AF2
+ cmp r0, #0x20
+ bne _02255B04
+_02255AF2:
+ ldr r0, _02255B5C ; =0x00002D54
+ add r1, r5, r4
+ ldr r0, [r1, r0]
+ lsr r0, r0, #0x1f
+ bne _02255B04
+ mov r1, #2
+ add r0, sp, #0xc
+ strb r1, [r0, #7]
+ b _02255B12
+_02255B04:
+ ldr r0, _02255B60 ; =0x00002DBE
+ add r1, r5, r4
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r1, r0, #0x1c
+ add r0, sp, #0xc
+ strb r1, [r0, #7]
+_02255B12:
+ add r0, r7, #0
+ add r1, r6, #0
+ bl GetMonExpBySpeciesAndLevel
+ ldr r1, _02255B64 ; =0x00002DA4
+ add r2, r5, r4
+ ldr r1, [r2, r1]
+ sub r0, r1, r0
+ str r0, [sp, #0x18]
+ add r0, r7, #0
+ add r1, r6, #1
+ bl GetMonExpBySpeciesAndLevel
+ add r4, r0, #0
+ add r0, r7, #0
+ add r1, r6, #0
+ bl GetMonExpBySpeciesAndLevel
+ sub r0, r4, r0
+ str r0, [sp, #0x1c]
+ mov r0, #0x14
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #8]
+ mov r1, #1
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02255B50: .word 0x0000219C
+_02255B54: .word 0x00002D74
+_02255B58: .word 0x0000215C
+_02255B5C: .word 0x00002D54
+_02255B60: .word 0x00002DBE
+_02255B64: .word 0x00002DA4
+
+ thumb_func_start MOD11_02255B68
+MOD11_02255B68: ; 0x02255B68
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r2, #0
+ add r5, r1, #0
+ str r3, [sp, #8]
+ ldr r2, _02255BE4 ; =0x0000219C
+ add r3, r5, r4
+ ldrb r2, [r3, r2]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ bl MOD11_02230014
+ add r6, r0, #0
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ add r7, r0, #0
+ add r0, r6, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ add r6, r0, #0
+ mov r1, #0x19
+ add r0, sp, #0xc
+ strb r1, [r0]
+ ldr r0, [sp, #8]
+ add r1, r6, #0
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ bl GetMonExpBySpeciesAndLevel
+ mov r1, #0xc0
+ mul r1, r4
+ add r2, r5, r1
+ ldr r1, _02255BE8 ; =0x00002DA4
+ ldr r1, [r2, r1]
+ sub r0, r1, r0
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r1, r6, #1
+ bl GetMonExpBySpeciesAndLevel
+ add r5, r0, #0
+ add r0, r7, #0
+ add r1, r6, #0
+ bl GetMonExpBySpeciesAndLevel
+ sub r0, r5, r0
+ str r0, [sp, #0x18]
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02255BE4: .word 0x0000219C
+_02255BE8: .word 0x00002DA4
+
+ thumb_func_start MOD11_02255BEC
+MOD11_02255BEC: ; 0x02255BEC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ str r0, [sp, #4]
+ add r0, r1, #0
+ mov ip, r2
+ mov r5, #0xb5
+ mov r2, #0x1a
+ add r1, sp, #0xc
+ strb r2, [r1]
+ mov r3, #0xc0
+ mov r2, ip
+ mul r3, r2
+ add r2, r0, r3
+ lsl r5, r5, #6
+ ldrh r4, [r2, r5]
+ strh r4, [r1, #2]
+ add r4, r5, #0
+ add r4, #0x26
+ ldrb r2, [r2, r4]
+ add r5, #0x70
+ lsl r2, r2, #0x1b
+ lsr r2, r2, #0x1b
+ strb r2, [r1, #8]
+ add r2, r0, r5
+ mov r1, #1
+ ldr r4, [r2, r3]
+ lsl r1, r1, #0x18
+ tst r1, r4
+ beq _02255C2A
+ mov r4, #1
+ b _02255C2C
+_02255C2A:
+ mov r4, #0
+_02255C2C:
+ add r1, sp, #0xc
+ strb r4, [r1, #9]
+ mov r1, #2
+ ldr r4, [r2, r3]
+ lsl r1, r1, #0x14
+ tst r1, r4
+ beq _02255C3E
+ mov r4, #1
+ b _02255C40
+_02255C3E:
+ mov r4, #0
+_02255C40:
+ add r1, sp, #0xc
+ strb r4, [r1, #0xa]
+ ldr r4, [r2, r3]
+ mov r2, #2
+ lsl r2, r2, #0x14
+ tst r2, r4
+ beq _02255C5E
+ ldr r2, _02255CE8 ; =0x00002DFA
+ add r4, r0, r3
+ ldrh r3, [r4, r2]
+ sub r2, #0x16
+ strb r3, [r1, #1]
+ ldr r1, [r4, r2]
+ str r1, [sp, #0x10]
+ b _02255C70
+_02255C5E:
+ ldr r2, _02255CEC ; =0x00002DBE
+ add r4, r0, r3
+ ldrb r3, [r4, r2]
+ sub r2, #0x16
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x1c
+ strb r3, [r1, #1]
+ ldr r1, [r4, r2]
+ str r1, [sp, #0x10]
+_02255C70:
+ mov r1, #0
+ str r1, [sp, #8]
+ ldr r1, _02255CF0 ; =0x00002D66
+ add r7, sp, #0xc
+ add r3, r0, r1
+ add r1, #0x58
+ add r4, r7, #0
+ add r5, r7, #0
+ add r6, r0, r1
+_02255C82:
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ ldrh r1, [r0, r1]
+ strh r1, [r7, #0xc]
+ ldrb r1, [r3]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1f
+ strb r1, [r4, #0x18]
+ ldrb r1, [r3]
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1b
+ strb r1, [r4, #0x1c]
+ ldr r1, _02255CF4 ; =0x00002DB0
+ ldr r2, [r0, r1]
+ mov r1, #2
+ lsl r1, r1, #0x14
+ tst r1, r2
+ beq _02255CB0
+ ldr r1, _02255CE8 ; =0x00002DFA
+ ldrh r1, [r0, r1]
+ strb r1, [r4, #0x14]
+ ldr r1, _02255CF8 ; =0x00002DE4
+ b _02255CBA
+_02255CB0:
+ ldrb r1, [r6]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ strb r1, [r4, #0x14]
+ ldr r1, _02255CFC ; =0x00002DA8
+_02255CBA:
+ ldr r1, [r0, r1]
+ add r0, #0xc0
+ str r1, [r5, #0x20]
+ ldr r1, [sp, #8]
+ add r7, r7, #2
+ add r1, r1, #1
+ add r3, #0xc0
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, #0xc0
+ str r1, [sp, #8]
+ cmp r1, #4
+ blt _02255C82
+ mov r0, #0x30
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ mov r1, #1
+ mov r2, ip
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02255CE8: .word 0x00002DFA
+_02255CEC: .word 0x00002DBE
+_02255CF0: .word 0x00002D66
+_02255CF4: .word 0x00002DB0
+_02255CF8: .word 0x00002DE4
+_02255CFC: .word 0x00002DA8
+
+ thumb_func_start MOD11_02255D00
+MOD11_02255D00: ; 0x02255D00
+ push {r4, lr}
+ sub sp, #8
+ mov r4, #0x1b
+ add r1, sp, #4
+ strb r4, [r1]
+ strh r2, [r1, #2]
+ mov r1, #4
+ str r1, [sp]
+ add r2, r3, #0
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255D20
+MOD11_02255D20: ; 0x02255D20
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x1c
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255D3C
+MOD11_02255D3C: ; 0x02255D3C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ mov ip, r1
+ mov r3, #0x1d
+ add r1, sp, #8
+ strb r3, [r1]
+ strb r2, [r1, #1]
+ ldr r3, [r0, #0x30]
+ mov r2, #0xc0
+ mov r1, ip
+ mul r2, r1
+ ldr r1, _02255DF4 ; =0x00002DB0
+ add r2, r3, r2
+ ldr r2, [r2, r1]
+ mov r1, #1
+ lsl r1, r1, #0x18
+ tst r1, r2
+ beq _02255D64
+ mov r2, #1
+ b _02255D66
+_02255D64:
+ mov r2, #0
+_02255D66:
+ add r7, sp, #8
+ add r1, sp, #8
+ mov r3, #0
+ strb r2, [r1, #2]
+ str r3, [sp, #4]
+ add r4, r7, #0
+ add r5, r7, #0
+_02255D74:
+ ldr r1, [r0, #0x30]
+ add r2, r1, r3
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ ldrh r1, [r2, r1]
+ strh r1, [r7, #4]
+ ldr r1, [r0, #0x30]
+ add r2, r1, r3
+ ldr r1, _02255DF8 ; =0x00002D66
+ ldrb r1, [r2, r1]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1f
+ strb r1, [r4, #0x10]
+ ldr r1, [r0, #0x30]
+ add r2, r1, r3
+ ldr r1, _02255DF8 ; =0x00002D66
+ ldrb r1, [r2, r1]
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1b
+ strb r1, [r4, #0x14]
+ ldr r1, [r0, #0x30]
+ add r6, r1, r3
+ ldr r1, _02255DF4 ; =0x00002DB0
+ ldr r2, [r6, r1]
+ mov r1, #2
+ lsl r1, r1, #0x14
+ tst r1, r2
+ beq _02255DBA
+ ldr r1, _02255DFC ; =0x00002DFA
+ ldrh r1, [r6, r1]
+ strb r1, [r4, #0xc]
+ ldr r1, [r0, #0x30]
+ add r2, r1, r3
+ ldr r1, _02255E00 ; =0x00002DE4
+ b _02255DCA
+_02255DBA:
+ ldr r1, _02255E04 ; =0x00002DBE
+ ldrb r1, [r6, r1]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ strb r1, [r4, #0xc]
+ ldr r1, [r0, #0x30]
+ add r2, r1, r3
+ ldr r1, _02255E08 ; =0x00002DA8
+_02255DCA:
+ ldr r1, [r2, r1]
+ add r3, #0xc0
+ str r1, [r5, #0x18]
+ ldr r1, [sp, #4]
+ add r7, r7, #2
+ add r1, r1, #1
+ add r4, r4, #1
+ add r5, r5, #4
+ str r1, [sp, #4]
+ cmp r1, #4
+ blt _02255D74
+ mov r1, #0x28
+ str r1, [sp]
+ mov r1, #1
+ mov r2, ip
+ add r3, sp, #8
+ bl MOD11_02254878
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02255DF4: .word 0x00002DB0
+_02255DF8: .word 0x00002D66
+_02255DFC: .word 0x00002DFA
+_02255E00: .word 0x00002DE4
+_02255E04: .word 0x00002DBE
+_02255E08: .word 0x00002DA8
+
+ thumb_func_start MOD11_02255E0C
+MOD11_02255E0C: ; 0x02255E0C
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r3, #0x1e
+ add r1, sp, #4
+ strb r3, [r1]
+ strb r2, [r1, #1]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02255E2C
+MOD11_02255E2C: ; 0x02255E2C
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r3, #0x1f
+ add r1, sp, #4
+ strb r3, [r1]
+ strb r2, [r1, #1]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02255E4C
+MOD11_02255E4C: ; 0x02255E4C
+ push {r3, r4, r5, lr}
+ sub sp, #0x68
+ add r4, r2, #0
+ str r3, [sp]
+ str r4, [sp, #4]
+ str r4, [sp, #8]
+ mov r2, #0
+ str r2, [sp, #0xc]
+ add r2, sp, #0x10
+ mov r3, #1
+ add r5, r0, #0
+ bl MOD11_02256854
+ mov r0, #0x58
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x68
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255E7C
+MOD11_02255E7C: ; 0x02255E7C
+ push {r3, r4, r5, lr}
+ sub sp, #0x68
+ add r4, r2, #0
+ ldr r2, [sp, #0x78]
+ add r5, r0, #0
+ str r2, [sp]
+ str r4, [sp, #4]
+ str r3, [sp, #8]
+ mov r2, #0
+ str r2, [sp, #0xc]
+ add r2, sp, #0x10
+ mov r3, #1
+ bl MOD11_02256854
+ mov r0, #0x58
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x68
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02255EAC
+MOD11_02255EAC: ; 0x02255EAC
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r4, r2, #0
+ mov r2, #0x20
+ add r0, sp, #4
+ strb r2, [r0]
+ strb r3, [r0, #1]
+ ldr r0, _02255EE8 ; =0x00003122
+ ldrsh r2, [r1, r0]
+ ldr r0, _02255EEC ; =0x00002E4C
+ ldr r0, [r1, r0]
+ sub r1, r2, r0
+ mov r0, #0x64
+ mul r0, r1
+ add r1, r2, #0
+ bl _s32_div_f
+ add r1, sp, #4
+ strh r0, [r1, #2]
+ mov r0, #4
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02255EE8: .word 0x00003122
+_02255EEC: .word 0x00002E4C
+
+ thumb_func_start MOD11_02255EF0
+MOD11_02255EF0: ; 0x02255EF0
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ mov r1, #0x21
+ add r0, sp, #4
+ strb r1, [r0]
+ ldr r2, _02255F38 ; =0x00002E4C
+ strb r3, [r0, #1]
+ ldr r1, [r6, r2]
+ cmp r1, #0
+ bne _02255F12
+ mov r1, #0xfa
+ lsl r1, r1, #2
+ strh r1, [r0, #2]
+ b _02255F24
+_02255F12:
+ mov r0, #0xfa
+ lsl r0, r0, #2
+ mul r0, r1
+ add r1, r2, #4
+ ldr r1, [r6, r1]
+ bl _u32_div_f
+ add r1, sp, #4
+ strh r0, [r1, #2]
+_02255F24:
+ mov r0, #4
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02255F38: .word 0x00002E4C
+
+ thumb_func_start MOD11_02255F3C
+MOD11_02255F3C: ; 0x02255F3C
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x22
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02255F54
+MOD11_02255F54: ; 0x02255F54
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r1, #0
+ str r2, [sp, #4]
+ mov r2, #0x23
+ add r1, sp, #8
+ add r6, r0, #0
+ strb r2, [r1]
+ mov r4, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _02255F86
+ add r5, sp, #8
+_02255F70:
+ ldr r0, _02255F9C ; =0x0000219C
+ add r1, r7, r4
+ ldrb r0, [r1, r0]
+ add r4, r4, #1
+ strb r0, [r5, #4]
+ add r0, r6, #0
+ add r5, r5, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _02255F70
+_02255F86:
+ mov r0, #8
+ str r0, [sp]
+ ldr r2, [sp, #4]
+ add r0, r6, #0
+ mov r1, #1
+ add r3, sp, #8
+ bl MOD11_02254878
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02255F9C: .word 0x0000219C
+
+ thumb_func_start MOD11_02255FA0
+MOD11_02255FA0: ; 0x02255FA0
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x24
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255FBC
+MOD11_02255FBC: ; 0x02255FBC
+ push {r0, r1, r2, r3}
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x2c
+ add r4, r1, #0
+ add r5, r0, #0
+ bl MOD11_0222FF78
+ add r1, r4, #0
+ bl MOD11_02243400
+ mov r1, #0x25
+ add r0, sp, #4
+ strb r1, [r0]
+ add r6, sp, #0x48
+ add r3, sp, #8
+ mov r2, #4
+_02255FDC:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02255FDC
+ ldr r0, [r6]
+ mov r1, #1
+ str r0, [r3]
+ mov r0, #0x28
+ str r0, [sp]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0x2c
+ pop {r3, r4, r5, r6}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD11_02256004
+MOD11_02256004: ; 0x02256004
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256020
+MOD11_02256020: ; 0x02256020
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r1, #0
+ ldr r1, _0225613C ; =0x0000219C
+ add r4, r2, #0
+ add r7, r5, r1
+ ldrb r2, [r7, r4]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ bl MOD11_02230014
+ add r6, r0, #0
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #0xc]
+ add r0, r6, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #8]
+ mov r0, #0x26
+ add r2, sp, #0x10
+ strb r0, [r2]
+ mov r0, #0xc0
+ add r6, r4, #0
+ mul r6, r0
+ ldr r1, _02256140 ; =0x00002D74
+ add r0, r5, r6
+ ldrb r3, [r0, r1]
+ strb r3, [r2, #1]
+ add r3, r1, #0
+ add r3, #0x18
+ ldr r3, [r0, r3]
+ add r1, #0x1c
+ strh r3, [r2, #2]
+ ldr r0, [r0, r1]
+ add r1, r4, #0
+ strh r0, [r2, #4]
+ ldrb r0, [r7, r4]
+ strb r0, [r2, #6]
+ add r0, r5, #0
+ bl MOD11_0224524C
+ add r1, sp, #0x10
+ ldrb r2, [r1, #7]
+ mov r3, #0x1f
+ lsl r0, r0, #0x18
+ bic r2, r3
+ lsr r3, r0, #0x18
+ mov r0, #0x1f
+ and r0, r3
+ orr r0, r2
+ strb r0, [r1, #7]
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r7, r5, r0
+ ldrh r0, [r7, r6]
+ cmp r0, #0x1d
+ beq _022560A0
+ cmp r0, #0x20
+ bne _022560BA
+_022560A0:
+ ldr r0, _02256144 ; =0x00002D54
+ add r1, r5, r6
+ ldr r0, [r1, r0]
+ lsr r0, r0, #0x1f
+ bne _022560BA
+ add r0, sp, #0x10
+ ldrb r1, [r0, #7]
+ mov r2, #0x60
+ bic r1, r2
+ mov r2, #0x40
+ orr r1, r2
+ strb r1, [r0, #7]
+ b _022560D4
+_022560BA:
+ add r3, sp, #0x10
+ ldrb r2, [r3, #7]
+ mov r0, #0x60
+ add r1, r5, r6
+ bic r2, r0
+ ldr r0, _02256148 ; =0x00002DBE
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x19
+ orr r0, r2
+ strb r0, [r3, #7]
+_022560D4:
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #8]
+ bl GetMonExpBySpeciesAndLevel
+ mov r1, #0xc0
+ mul r1, r4
+ add r2, r5, r1
+ ldr r1, _0225614C ; =0x00002DA4
+ ldr r1, [r2, r1]
+ sub r0, r1, r0
+ ldr r1, [sp, #8]
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0xc]
+ add r1, r1, #1
+ bl GetMonExpBySpeciesAndLevel
+ add r5, r0, #0
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #8]
+ bl GetMonExpBySpeciesAndLevel
+ sub r0, r5, r0
+ str r0, [sp, #0x1c]
+ ldrh r1, [r7, r6]
+ ldr r0, [sp, #4]
+ bl MOD11_02231668
+ add r3, sp, #0x10
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1f
+ ldrb r1, [r3, #7]
+ mov r2, #0x80
+ lsr r0, r0, #0x18
+ bic r1, r2
+ orr r0, r1
+ strb r0, [r3, #7]
+ ldr r0, [sp, #4]
+ bl MOD11_02230E00
+ str r0, [sp, #0x20]
+ mov r0, #0x14
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0225613C: .word 0x0000219C
+_02256140: .word 0x00002D74
+_02256144: .word 0x00002D54
+_02256148: .word 0x00002DBE
+_0225614C: .word 0x00002DA4
+
+ thumb_func_start MOD11_02256150
+MOD11_02256150: ; 0x02256150
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r6, r1, #0
+ str r2, [sp, #8]
+ mov r1, #0x27
+ add r2, sp, #0x10
+ strb r1, [r2]
+ ldrb r1, [r2, #1]
+ mov r3, #0xf
+ str r0, [sp, #4]
+ bic r1, r3
+ ldr r3, [sp, #8]
+ add r4, r6, r3
+ ldr r3, _02256230 ; =0x0000219C
+ ldrb r4, [r4, r3]
+ mov r3, #0xf
+ and r3, r4
+ orr r1, r3
+ strb r1, [r2, #1]
+ ldr r1, [sp, #8]
+ mov r3, #0xc0
+ mul r3, r1
+ ldrb r4, [r2, #1]
+ mov r1, #0xf0
+ str r3, [sp, #0xc]
+ bic r4, r1
+ add r1, r3, #0
+ add r3, r6, r1
+ ldr r1, _02256234 ; =0x00002DCC
+ ldr r5, [r3, r1]
+ lsl r5, r5, #0x1a
+ lsr r5, r5, #0x1c
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ lsl r5, r5, #0x1c
+ lsr r5, r5, #0x18
+ orr r4, r5
+ strb r4, [r2, #1]
+ add r4, r1, #0
+ sub r4, #0x40
+ ldr r4, [r3, r4]
+ sub r1, #0x14
+ strh r4, [r2, #2]
+ ldrh r1, [r3, r1]
+ strh r1, [r2, #0xc]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ lsl r0, r0, #3
+ add r1, r6, r0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #8]
+ mov r2, #0xc0
+ mul r2, r1
+ lsl r0, r0, #3
+ lsr r0, r0, #0x1a
+ add r1, r6, r2
+ mov ip, r2
+ add r2, sp, #0x10
+ str r0, [sp, #0x18]
+ ldr r7, _02256238 ; =0x00002D6C
+ mov r0, #0
+ add r3, r1, #0
+ add r4, r2, #0
+_022561D4:
+ ldr r5, _0225623C ; =0x00002D4C
+ add r0, r0, #1
+ ldrh r5, [r1, r5]
+ add r1, r1, #2
+ strh r5, [r2, #0xe]
+ ldrb r5, [r3, r7]
+ add r2, r2, #2
+ add r3, r3, #1
+ strb r5, [r4, #0x16]
+ add r4, r4, #1
+ cmp r0, #4
+ blt _022561D4
+ add r1, sp, #0x10
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ cmp r0, #0
+ beq _0225620C
+ mov r0, ip
+ add r3, r6, r0
+ ldr r0, _02256240 ; =0x00002DAC
+ ldr r1, _02256244 ; =0xFFFFF0FF
+ ldr r2, [r3, r0]
+ add r0, r0, #4
+ and r1, r2
+ str r1, [sp, #0x14]
+ ldr r0, [r3, r0]
+ str r0, [sp, #0x2c]
+ b _0225621A
+_0225620C:
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0xc]
+ add r1, r6, r0
+ ldr r0, _02256248 ; =0x00002DB0
+ ldr r0, [r1, r0]
+ str r0, [sp, #0x2c]
+_0225621A:
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #8]
+ mov r1, #1
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02256230: .word 0x0000219C
+_02256234: .word 0x00002DCC
+_02256238: .word 0x00002D6C
+_0225623C: .word 0x00002D4C
+_02256240: .word 0x00002DAC
+_02256244: .word 0xFFFFF0FF
+_02256248: .word 0x00002DB0
+
+ thumb_func_start MOD11_0225624C
+MOD11_0225624C: ; 0x0225624C
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x28
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256268
+MOD11_02256268: ; 0x02256268
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x29
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256284
+MOD11_02256284: ; 0x02256284
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ mov r5, #0x2a
+ add r4, sp, #4
+ strb r5, [r4]
+ strh r3, [r4, #2]
+ mov r3, #0xc0
+ mul r3, r2
+ add r3, r1, r3
+ ldr r1, _022562AC ; =0x00002D67
+ ldrb r1, [r3, r1]
+ add r3, sp, #4
+ strb r1, [r4, #1]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022562AC: .word 0x00002D67
+
+ thumb_func_start MOD11_022562B0
+MOD11_022562B0: ; 0x022562B0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r7, r0, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl MOD11_0222FF78
+ add r1, r5, #0
+ bl MOD11_02243400
+ mov r1, #0x2b
+ add r0, sp, #4
+ strb r1, [r0]
+ strh r4, [r0, #2]
+ strb r6, [r0, #1]
+ mov r0, #4
+ str r0, [sp]
+ add r0, r7, #0
+ mov r1, #1
+ add r2, r5, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_022562E4
+MOD11_022562E4: ; 0x022562E4
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r5, #0x2c
+ add r1, sp, #4
+ strb r5, [r1]
+ strb r2, [r1, #1]
+ strb r3, [r1, #2]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256308
+MOD11_02256308: ; 0x02256308
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r1, #0
+ mov r1, #0x2d
+ add r3, sp, #4
+ strb r1, [r3]
+ mov r1, #0xc0
+ add r6, r7, #0
+ mul r6, r1
+ ldr r1, [r0, #0x30]
+ add r2, r1, r6
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ ldrh r2, [r2, r1]
+ strh r2, [r3, #2]
+ ldr r2, [r0, #0x30]
+ add r4, r2, r6
+ add r2, r1, #0
+ add r2, #0x26
+ ldrb r2, [r4, r2]
+ lsl r2, r2, #0x1a
+ lsr r2, r2, #0x1f
+ strb r2, [r3, #5]
+ ldr r2, [r0, #0x30]
+ add r5, r2, r6
+ add r2, r1, #0
+ add r2, #0x70
+ ldr r4, [r5, r2]
+ mov r2, #2
+ lsl r2, r2, #0x14
+ tst r2, r4
+ beq _0225635C
+ add r2, r1, #0
+ add r2, #0xba
+ ldrh r2, [r5, r2]
+ add r1, #0xa4
+ strb r2, [r3, #4]
+ ldr r2, [r0, #0x30]
+ add r2, r2, r6
+ ldr r1, [r2, r1]
+ str r1, [sp, #0xc]
+ b _02256372
+_0225635C:
+ add r2, r1, #0
+ add r2, #0x7e
+ ldrb r2, [r5, r2]
+ add r1, #0x68
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x1c
+ strb r2, [r3, #4]
+ ldr r2, [r0, #0x30]
+ add r2, r2, r6
+ ldr r1, [r2, r1]
+ str r1, [sp, #0xc]
+_02256372:
+ ldr r1, [r0, #0x30]
+ add r3, sp, #4
+ add r2, r1, r6
+ ldr r1, _02256394 ; =0x00002D66
+ ldrb r1, [r2, r1]
+ lsl r1, r1, #0x1b
+ lsr r2, r1, #0x1b
+ add r1, sp, #4
+ strb r2, [r1, #1]
+ mov r1, #0xc
+ str r1, [sp]
+ mov r1, #1
+ add r2, r7, #0
+ bl MOD11_02254878
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02256394: .word 0x00002D66
+
+ thumb_func_start MOD11_02256398
+MOD11_02256398: ; 0x02256398
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x2e
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022563B4
+MOD11_022563B4: ; 0x022563B4
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x2f
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022563D0
+MOD11_022563D0: ; 0x022563D0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ str r4, [sp]
+ ldr r1, [r5, #0x30]
+ add r2, sp, #4
+ mov r3, #0x30
+ bl MOD11_022569DC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD11_022563F8
+MOD11_022563F8: ; 0x022563F8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ str r4, [sp]
+ ldr r1, [r5, #0x30]
+ add r2, sp, #4
+ mov r3, #0x31
+ bl MOD11_022569DC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD11_02256420
+MOD11_02256420: ; 0x02256420
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ str r4, [sp]
+ ldr r1, [r5, #0x30]
+ add r2, sp, #4
+ mov r3, #0x32
+ bl MOD11_022569DC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD11_02256448
+MOD11_02256448: ; 0x02256448
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ str r4, [sp]
+ ldr r1, [r5, #0x30]
+ add r2, sp, #4
+ mov r3, #0x33
+ bl MOD11_022569DC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD11_02256470
+MOD11_02256470: ; 0x02256470
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x34
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225648C
+MOD11_0225648C: ; 0x0225648C
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x35
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022564A8
+MOD11_022564A8: ; 0x022564A8
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r5, #0x36
+ add r1, sp, #4
+ strb r5, [r1]
+ strb r2, [r1, #1]
+ strh r3, [r1, #2]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022564CC
+MOD11_022564CC: ; 0x022564CC
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r1, #0x37
+ add r5, r0, #0
+ str r1, [sp, #4]
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ beq _022564F0
+ str r1, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+_022564F0:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022564F4
+MOD11_022564F4: ; 0x022564F4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x64
+ str r0, [sp, #4]
+ add r0, r1, #0
+ str r2, [sp, #8]
+ mov r2, #0x38
+ add r7, sp, #0xc
+ add r1, sp, #0xc
+ strb r2, [r1]
+ mov r1, #0
+ mov ip, r1
+ ldr r1, _0225658C ; =0x00002D66
+ add r4, r7, #0
+ add r3, r0, r1
+ add r1, #0x58
+ add r5, r7, #0
+ add r6, r0, r1
+_02256516:
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ ldrh r1, [r0, r1]
+ add r2, r4, #0
+ add r2, #0x24
+ strh r1, [r7, #0x18]
+ ldrb r1, [r3]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1f
+ strb r1, [r2]
+ ldrb r1, [r3]
+ add r2, r4, #0
+ add r2, #0x28
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1b
+ strb r1, [r2]
+ ldr r1, _02256590 ; =0x00002DB0
+ ldr r2, [r0, r1]
+ mov r1, #2
+ lsl r1, r1, #0x14
+ tst r1, r2
+ beq _02256550
+ ldr r1, _02256594 ; =0x00002DFA
+ add r2, r4, #0
+ ldrh r1, [r0, r1]
+ add r2, #0x20
+ strb r1, [r2]
+ ldr r1, _02256598 ; =0x00002DE4
+ b _0225655E
+_02256550:
+ ldrb r1, [r6]
+ add r2, r4, #0
+ add r2, #0x20
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ strb r1, [r2]
+ ldr r1, _0225659C ; =0x00002DA8
+_0225655E:
+ ldr r1, [r0, r1]
+ add r0, #0xc0
+ str r1, [r5, #0x2c]
+ mov r1, ip
+ add r1, r1, #1
+ add r7, r7, #2
+ add r3, #0xc0
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, #0xc0
+ mov ip, r1
+ cmp r1, #4
+ blt _02256516
+ mov r0, #0x58
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #8]
+ mov r1, #1
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x64
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225658C: .word 0x00002D66
+_02256590: .word 0x00002DB0
+_02256594: .word 0x00002DFA
+_02256598: .word 0x00002DE4
+_0225659C: .word 0x00002DA8
+
+ thumb_func_start MOD11_022565A0
+MOD11_022565A0: ; 0x022565A0
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x39
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022565BC
+MOD11_022565BC: ; 0x022565BC
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x3a
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022565D8
+MOD11_022565D8: ; 0x022565D8
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x3b
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022565F4
+MOD11_022565F4: ; 0x022565F4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ mov r2, #0x3c
+ add r1, sp, #4
+ strb r2, [r1]
+ mov r4, #0
+ add r6, r0, #0
+ strb r4, [r1, #1]
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _02256632
+ add r7, sp, #4
+_02256610:
+ ldr r0, _02256648 ; =0x000021A8
+ ldr r0, [r5, r0]
+ cmp r0, #0x10
+ bne _02256624
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldrb r1, [r7, #1]
+ orr r0, r1
+ strb r0, [r7, #1]
+_02256624:
+ add r0, r6, #0
+ add r5, #0x10
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _02256610
+_02256632:
+ mov r0, #4
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02256648: .word 0x000021A8
+
+ thumb_func_start MOD11_0225664C
+MOD11_0225664C: ; 0x0225664C
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x3d
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256668
+MOD11_02256668: ; 0x02256668
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x64
+ str r0, [sp, #4]
+ add r0, r1, #0
+ str r2, [sp, #8]
+ mov r2, #0x3e
+ add r7, sp, #0xc
+ add r1, sp, #0xc
+ strb r2, [r1]
+ mov r1, #0
+ mov ip, r1
+ ldr r1, _02256700 ; =0x00002D66
+ add r4, r7, #0
+ add r3, r0, r1
+ add r1, #0x58
+ add r5, r7, #0
+ add r6, r0, r1
+_0225668A:
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ ldrh r1, [r0, r1]
+ add r2, r4, #0
+ add r2, #0x24
+ strh r1, [r7, #0x18]
+ ldrb r1, [r3]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1f
+ strb r1, [r2]
+ ldrb r1, [r3]
+ add r2, r4, #0
+ add r2, #0x28
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1b
+ strb r1, [r2]
+ ldr r1, _02256704 ; =0x00002DB0
+ ldr r2, [r0, r1]
+ mov r1, #2
+ lsl r1, r1, #0x14
+ tst r1, r2
+ beq _022566C4
+ ldr r1, _02256708 ; =0x00002DFA
+ add r2, r4, #0
+ ldrh r1, [r0, r1]
+ add r2, #0x20
+ strb r1, [r2]
+ ldr r1, _0225670C ; =0x00002DE4
+ b _022566D2
+_022566C4:
+ ldrb r1, [r6]
+ add r2, r4, #0
+ add r2, #0x20
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ strb r1, [r2]
+ ldr r1, _02256710 ; =0x00002DA8
+_022566D2:
+ ldr r1, [r0, r1]
+ add r0, #0xc0
+ str r1, [r5, #0x2c]
+ mov r1, ip
+ add r1, r1, #1
+ add r7, r7, #2
+ add r3, #0xc0
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, #0xc0
+ mov ip, r1
+ cmp r1, #4
+ blt _0225668A
+ mov r0, #0x58
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #8]
+ mov r1, #1
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x64
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02256700: .word 0x00002D66
+_02256704: .word 0x00002DB0
+_02256708: .word 0x00002DFA
+_0225670C: .word 0x00002DE4
+_02256710: .word 0x00002DA8
+
+ thumb_func_start MOD11_02256714
+MOD11_02256714: ; 0x02256714
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ mov r3, #0x3f
+ add r4, sp, #4
+ strb r3, [r4]
+ ldr r3, _02256750 ; =0x0000216C
+ ldr r5, [r1, r3]
+ mov r1, #2
+ add r3, r5, #0
+ tst r3, r1
+ beq _0225672E
+ strb r1, [r4, #1]
+ b _0225673E
+_0225672E:
+ mov r1, #4
+ tst r1, r5
+ beq _0225673A
+ mov r1, #1
+ strb r1, [r4, #1]
+ b _0225673E
+_0225673A:
+ mov r1, #0
+ strb r1, [r4, #1]
+_0225673E:
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_02256750: .word 0x0000216C
+
+ thumb_func_start MOD11_02256754
+MOD11_02256754: ; 0x02256754
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r3, #0x40
+ add r1, sp, #4
+ strb r3, [r1]
+ strh r2, [r1, #2]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02256774
+MOD11_02256774: ; 0x02256774
+ push {r3, r4, lr}
+ sub sp, #0xc
+ mov r2, #0x41
+ add r1, sp, #4
+ strb r2, [r1]
+ add r4, r0, #0
+ bl MOD11_0223145C
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225679C
+MOD11_0225679C: ; 0x0225679C
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x42
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022567B8
+MOD11_022567B8: ; 0x022567B8
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r0, sp, #4
+ add r4, r1, #0
+ strb r2, [r0]
+ bl FUN_02031190
+ add r1, sp, #4
+ strb r0, [r1, #1]
+ mov r0, #4
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #2
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022567E0
+MOD11_022567E0: ; 0x022567E0
+ push {r3, r4, r5, r6, r7, lr}
+ ldrb r6, [r1, #3]
+ ldrb r3, [r1]
+ ldrb r2, [r1, #2]
+ lsl r6, r6, #8
+ add r5, r0, #0
+ orr r2, r6
+ ldrb r4, [r1, #1]
+ cmp r3, #0
+ bne _02256814
+ mov r3, #0
+ cmp r2, #0
+ ble _02256852
+ mov r6, #0x23
+ lsl r4, r4, #8
+ lsl r6, r6, #8
+_02256800:
+ add r0, r1, r3
+ ldr r7, [r5, #0x30]
+ ldrb r0, [r0, #4]
+ add r7, r4, r7
+ add r7, r3, r7
+ add r3, r3, #1
+ strb r0, [r7, r6]
+ cmp r3, r2
+ blt _02256800
+ pop {r3, r4, r5, r6, r7, pc}
+_02256814:
+ cmp r3, #1
+ bne _02256836
+ mov r0, #0
+ cmp r2, #0
+ ble _02256852
+ lsl r3, r4, #2
+ add r5, r5, r3
+_02256822:
+ add r3, r1, r0
+ ldrb r4, [r3, #4]
+ ldr r3, [r5, #0x34]
+ add r3, r3, r0
+ add r3, #0x94
+ add r0, r0, #1
+ strb r4, [r3]
+ cmp r0, r2
+ blt _02256822
+ pop {r3, r4, r5, r6, r7, pc}
+_02256836:
+ cmp r3, #2
+ bne _02256852
+ ldrb r7, [r1, #4]
+ ldrb r6, [r1, #5]
+ bl MOD11_02230DD4
+ cmp r0, #0
+ beq _02256852
+ ldr r0, [r5, #0x30]
+ add r1, r6, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD11_02243340
+_02256852:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02256854
+MOD11_02256854: ; 0x02256854
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r5, r2, #0
+ mov r1, #0x16
+ strb r1, [r5]
+ add r1, sp, #0x18
+ ldrh r1, [r1, #0x1c]
+ add r7, r0, #0
+ strh r1, [r5, #2]
+ ldr r1, [sp, #0x2c]
+ strh r1, [r5, #0x14]
+ ldr r1, [sp, #0x30]
+ strh r1, [r5, #0x16]
+ ldr r1, [sp, #0x28]
+ str r3, [r5, #0x4c]
+ str r1, [r5, #0x50]
+ bl MOD11_02230294
+ str r0, [r5, #0x54]
+ cmp r4, #0
+ bne _02256882
+ b _022569B2
+_02256882:
+ ldr r0, _022569B8 ; =0x00002144
+ ldr r1, [r4, r0]
+ add r0, #0x10
+ str r1, [r5, #4]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02256892
+ b _0225689E
+_02256892:
+ add r0, sp, #0x18
+ ldrh r0, [r0, #0x1c]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _022569BC ; =0x000003E1
+ ldrb r0, [r1, r0]
+_0225689E:
+ ldr r1, [sp, #0x2c]
+ strh r0, [r5, #8]
+ mov r0, #0xc0
+ add r6, r1, #0
+ mul r6, r0
+ ldr r0, _022569C0 ; =0x00002D75
+ add r1, r4, r6
+ ldrb r0, [r1, r0]
+ add r1, r4, #0
+ mov r2, #8
+ strh r0, [r5, #0xc]
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r7, #0
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022568E2
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022568E2
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ str r0, [r5, #0x10]
+ b _022568E6
+_022568E2:
+ mov r0, #0
+ str r0, [r5, #0x10]
+_022568E6:
+ ldr r0, _022569C4 ; =0x00002164
+ ldr r0, [r4, r0]
+ strh r0, [r5, #0xa]
+ ldr r0, _022569C8 ; =0x00002DB0
+ add r1, r4, r0
+ mov r0, #1
+ ldr r2, [r1, r6]
+ lsl r0, r0, #0x18
+ tst r0, r2
+ beq _022568FE
+ mov r3, #1
+ b _02256900
+_022568FE:
+ mov r3, #0
+_02256900:
+ ldrh r0, [r5, #0xe]
+ mov r2, #1
+ bic r0, r2
+ lsl r2, r3, #0x10
+ lsr r3, r2, #0x10
+ mov r2, #1
+ and r3, r2
+ orr r0, r3
+ strh r0, [r5, #0xe]
+ ldr r1, [r1, r6]
+ lsl r0, r2, #0x15
+ tst r0, r1
+ bne _0225691C
+ mov r2, #0
+_0225691C:
+ ldrh r0, [r5, #0xe]
+ mov r1, #2
+ str r5, [sp, #0x10]
+ bic r0, r1
+ lsl r1, r2, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1e
+ orr r0, r1
+ strh r0, [r5, #0xe]
+ ldr r0, _022569CC ; =0x00002D66
+ mov r1, #0
+ add r2, r4, r0
+ add r0, #0x58
+ add r3, r5, #0
+ add r7, r4, r0
+_0225693C:
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r6, [r4, r0]
+ ldr r0, [sp, #0x10]
+ strh r6, [r0, #0x18]
+ ldrb r0, [r2]
+ lsl r0, r0, #0x1a
+ lsr r6, r0, #0x1f
+ add r0, r5, r1
+ str r0, [sp, #8]
+ add r0, #0x24
+ str r0, [sp, #8]
+ strb r6, [r0]
+ ldrb r0, [r2]
+ lsl r0, r0, #0x1b
+ lsr r6, r0, #0x1b
+ add r0, r5, r1
+ str r0, [sp, #4]
+ add r0, #0x28
+ str r0, [sp, #4]
+ strb r6, [r0]
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ str r0, [r3, #0x3c]
+ ldr r0, _022569C8 ; =0x00002DB0
+ ldr r6, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r6
+ beq _0225698C
+ ldr r0, _022569D0 ; =0x00002DFA
+ ldrh r6, [r4, r0]
+ add r0, r5, r1
+ str r0, [sp, #0xc]
+ add r0, #0x20
+ str r0, [sp, #0xc]
+ strb r6, [r0]
+ ldr r0, _022569D4 ; =0x00002DE4
+ b _0225699A
+_0225698C:
+ ldrb r0, [r7]
+ lsl r0, r0, #0x1c
+ lsr r6, r0, #0x1c
+ add r0, r5, r1
+ add r0, #0x20
+ strb r6, [r0]
+ ldr r0, _022569D8 ; =0x00002DA8
+_0225699A:
+ ldr r0, [r4, r0]
+ add r1, r1, #1
+ str r0, [r3, #0x2c]
+ ldr r0, [sp, #0x10]
+ add r4, #0xc0
+ add r0, r0, #2
+ str r0, [sp, #0x10]
+ add r2, #0xc0
+ add r3, r3, #4
+ add r7, #0xc0
+ cmp r1, #4
+ blt _0225693C
+_022569B2:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022569B8: .word 0x00002144
+_022569BC: .word 0x000003E1
+_022569C0: .word 0x00002D75
+_022569C4: .word 0x00002164
+_022569C8: .word 0x00002DB0
+_022569CC: .word 0x00002D66
+_022569D0: .word 0x00002DFA
+_022569D4: .word 0x00002DE4
+_022569D8: .word 0x00002DA8
+
+ thumb_func_start MOD11_022569DC
+MOD11_022569DC: ; 0x022569DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ str r0, [sp]
+ ldr r0, [sp, #0x38]
+ add r5, r2, #0
+ str r1, [sp, #4]
+ str r0, [sp, #0x38]
+ mov r0, #0
+ add r1, r5, #0
+ mov r2, #8
+ add r6, r3, #0
+ bl MIi_CpuClearFast
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ add r4, r0, #0
+ mov r0, #0xc
+ and r0, r4
+ strb r6, [r5]
+ cmp r0, #0xc
+ beq _02256A30
+ mov r0, #0x10
+ tst r0, r4
+ beq _02256A1A
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _02256A30
+_02256A1A:
+ cmp r4, #0x4b
+ bne _02256A2A
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _02256A30
+_02256A2A:
+ cmp r4, #0xcb
+ beq _02256A30
+ b _02256B66
+_02256A30:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_02230260
+ cmp r0, #2
+ beq _02256A48
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_02230260
+ cmp r0, #3
+ bne _02256A56
+_02256A48:
+ ldr r6, [sp, #0x38]
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_022302BC
+ str r0, [sp, #0x38]
+ b _02256A60
+_02256A56:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_022302BC
+ add r6, r0, #0
+_02256A60:
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_0222FF88
+ mov r4, #0
+ str r0, [sp, #0x10]
+ add r7, r4, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02256AE0
+ mov r0, #6
+ add r1, r6, #0
+ mul r1, r0
+ ldr r0, [sp, #4]
+ add r6, r0, r1
+_02256A80:
+ ldr r1, _02256C00 ; =0x0000312C
+ ldr r0, [sp, #0x10]
+ ldrb r1, [r6, r1]
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ str r0, [sp, #0x14]
+ bl GetMonData
+ cmp r0, #0
+ beq _02256AD2
+ ldr r1, _02256C04 ; =0x000001EE
+ cmp r0, r1
+ beq _02256AD2
+ ldr r0, [sp, #0x14]
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02256ACA
+ ldr r0, [sp, #0x14]
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02256AC2
+ add r1, r5, r4
+ mov r0, #3
+ strb r0, [r1, #2]
+ b _02256AD0
+_02256AC2:
+ add r1, r5, r4
+ mov r0, #1
+ strb r0, [r1, #2]
+ b _02256AD0
+_02256ACA:
+ add r1, r5, r4
+ mov r0, #2
+ strb r0, [r1, #2]
+_02256AD0:
+ add r4, r4, #1
+_02256AD2:
+ ldr r0, [sp, #0x10]
+ add r6, r6, #1
+ add r7, r7, #1
+ bl GetPartyCount
+ cmp r7, r0
+ blt _02256A80
+_02256AE0:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_0222FF88
+ str r0, [sp, #8]
+ mov r4, #3
+ mov r6, #0
+ bl GetPartyCount
+ cmp r0, #0
+ bgt _02256AF8
+ b _02256BFA
+_02256AF8:
+ ldr r0, [sp, #0x38]
+ mov r1, #6
+ mul r1, r0
+ ldr r0, [sp, #4]
+ add r7, r0, r1
+_02256B02:
+ ldr r1, _02256C00 ; =0x0000312C
+ ldr r0, [sp, #8]
+ ldrb r1, [r7, r1]
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ str r0, [sp, #0x18]
+ bl GetMonData
+ cmp r0, #0
+ beq _02256B54
+ ldr r1, _02256C04 ; =0x000001EE
+ cmp r0, r1
+ beq _02256B54
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02256B4C
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02256B44
+ add r1, r5, r4
+ mov r0, #3
+ strb r0, [r1, #2]
+ b _02256B52
+_02256B44:
+ add r1, r5, r4
+ mov r0, #1
+ strb r0, [r1, #2]
+ b _02256B52
+_02256B4C:
+ add r1, r5, r4
+ mov r0, #2
+ strb r0, [r1, #2]
+_02256B52:
+ add r4, r4, #1
+_02256B54:
+ ldr r0, [sp, #8]
+ add r7, r7, #1
+ add r6, r6, #1
+ bl GetPartyCount
+ cmp r6, r0
+ blt _02256B02
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+_02256B66:
+ mov r0, #2
+ tst r0, r4
+ beq _02256B7A
+ mov r0, #8
+ tst r0, r4
+ bne _02256B7A
+ ldr r0, [sp, #0x38]
+ mov r1, #1
+ and r0, r1
+ str r0, [sp, #0x38]
+_02256B7A:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_0222FF88
+ mov r4, #0
+ str r0, [sp, #0xc]
+ add r7, r4, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02256BFA
+ ldr r0, [sp, #0x38]
+ mov r1, #6
+ mul r1, r0
+ ldr r0, [sp, #4]
+ add r6, r0, r1
+_02256B9A:
+ ldr r1, _02256C00 ; =0x0000312C
+ ldr r0, [sp, #0xc]
+ ldrb r1, [r6, r1]
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ str r0, [sp, #0x1c]
+ bl GetMonData
+ cmp r0, #0
+ beq _02256BEC
+ ldr r1, _02256C04 ; =0x000001EE
+ cmp r0, r1
+ beq _02256BEC
+ ldr r0, [sp, #0x1c]
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02256BE4
+ ldr r0, [sp, #0x1c]
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02256BDC
+ add r1, r5, r4
+ mov r0, #3
+ strb r0, [r1, #2]
+ b _02256BEA
+_02256BDC:
+ add r1, r5, r4
+ mov r0, #1
+ strb r0, [r1, #2]
+ b _02256BEA
+_02256BE4:
+ add r1, r5, r4
+ mov r0, #2
+ strb r0, [r1, #2]
+_02256BEA:
+ add r4, r4, #1
+_02256BEC:
+ ldr r0, [sp, #0xc]
+ add r6, r6, #1
+ add r7, r7, #1
+ bl GetPartyCount
+ cmp r7, r0
+ blt _02256B9A
+_02256BFA:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02256C00: .word 0x0000312C
+_02256C04: .word 0x000001EE
+
+ thumb_func_start MOD11_02256C08
+MOD11_02256C08: ; 0x02256C08
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ lsl r0, r3, #0x18
+ lsr r0, r0, #0x18
+ add r4, r1, #0
+ add r7, r2, #0
+ str r3, [sp, #0x18]
+ bl MOD11_02257FC0
+ add r6, r0, #0
+ ldr r3, [r6, #0x14]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ str r3, [sp, #8]
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x23
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _02256CC8 ; =0x00004E26
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+ ldr r3, [r6, #0x1c]
+ mov r0, #1
+ str r0, [sp]
+ str r3, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ bl FUN_0200C124
+ ldr r3, [r6, #0x20]
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ str r3, [sp, #4]
+ bl FUN_0200C13C
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x23
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _02256CCC ; =0x00004E27
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+ ldr r0, [sp, #0x18]
+ sub r0, r0, #6
+ cmp r0, #1
+ bhi _02256CC4
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x2d
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _02256CD0 ; =0x00004E28
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+_02256CC4:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02256CC8: .word 0x00004E26
+_02256CCC: .word 0x00004E27
+_02256CD0: .word 0x00004E28
+
+ thumb_func_start MOD11_02256CD4
+MOD11_02256CD4: ; 0x02256CD4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ lsl r0, r3, #0x18
+ lsr r0, r0, #0x18
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD11_02258024
+ add r4, r0, #0
+ beq _02256D44
+ ldr r3, [r4, #0x14]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ str r3, [sp, #8]
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x23
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _02256D48 ; =0x00004E26
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r2, r5, #0
+ add r3, r6, #0
+ bl FUN_0200C0DC
+ ldr r3, [r4, #0x1c]
+ mov r0, #1
+ str r0, [sp]
+ str r3, [sp, #4]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ bl FUN_0200C124
+ ldr r3, [r4, #0x20]
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ str r3, [sp, #4]
+ bl FUN_0200C13C
+_02256D44:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02256D48: .word 0x00004E26
+
+ thumb_func_start MOD11_02256D4C
+MOD11_02256D4C: ; 0x02256D4C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ lsl r0, r2, #0x18
+ add r4, r1, #0
+ lsr r0, r0, #0x18
+ bl MOD11_02257FC0
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200C154
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_0200C59C
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02256D70
+MOD11_02256D70: ; 0x02256D70
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ add r6, r1, #0
+ add r4, r2, #0
+ cmp r0, #0
+ bne _02256D82
+ bl ErrorHandling
+_02256D82:
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ cmp r0, #6
+ bne _02256D94
+ mov r1, #3
+ lsl r1, r1, #0xa
+ and r4, r1
+ b _02256DA4
+_02256D94:
+ cmp r0, #7
+ bne _02256DA0
+ mov r1, #3
+ lsl r1, r1, #0xc
+ and r4, r1
+ b _02256DA4
+_02256DA0:
+ ldr r1, _02256F00 ; =0xFFFFC3FF
+ and r4, r1
+_02256DA4:
+ cmp r0, #7
+ bhi _02256DEA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02256DB4: ; jump table
+ .short _02256DE6 - _02256DB4 - 2 ; case 0
+ .short _02256DC4 - _02256DB4 - 2 ; case 1
+ .short _02256DCA - _02256DB4 - 2 ; case 2
+ .short _02256DC4 - _02256DB4 - 2 ; case 3
+ .short _02256DCA - _02256DB4 - 2 ; case 4
+ .short _02256DC4 - _02256DB4 - 2 ; case 5
+ .short _02256DEA - _02256DB4 - 2 ; case 6
+ .short _02256DEA - _02256DB4 - 2 ; case 7
+_02256DC4:
+ mov r0, #0x26
+ bic r4, r0
+ b _02256DEA
+_02256DCA:
+ ldr r0, _02256F04 ; =0xFFFFFDDF
+ and r4, r0
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ bne _02256DE0
+ mov r0, #6
+ bic r4, r0
+ b _02256DEA
+_02256DE0:
+ mov r0, #1
+ bic r4, r0
+ b _02256DEA
+_02256DE6:
+ ldr r0, _02256F08 ; =0xFFFFFDFF
+ and r4, r0
+_02256DEA:
+ ldr r0, [r5, #0xc]
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ beq _02256DFA
+ ldr r0, _02256F08 ; =0xFFFFFDFF
+ and r4, r0
+_02256DFA:
+ mov r0, #1
+ tst r0, r4
+ beq _02256E10
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_02257150
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_02257BEC
+_02256E10:
+ mov r0, #2
+ tst r0, r4
+ beq _02256E1E
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0225787C
+_02256E1E:
+ mov r0, #4
+ tst r0, r4
+ beq _02256E2A
+ add r0, r5, #0
+ bl MOD11_02257908
+_02256E2A:
+ mov r0, #0x80
+ tst r0, r4
+ bne _02256E36
+ mov r0, #0x40
+ tst r0, r4
+ beq _02256E3C
+_02256E36:
+ add r0, r5, #0
+ bl MOD11_02257654
+_02256E3C:
+ mov r0, #8
+ tst r0, r4
+ beq _02256E48
+ add r0, r5, #0
+ bl MOD11_0225775C
+_02256E48:
+ mov r0, #0x10
+ tst r0, r4
+ beq _02256E54
+ add r0, r5, #0
+ bl MOD11_022574F0
+_02256E54:
+ mov r0, #0x20
+ tst r0, r4
+ beq _02256E6A
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_022571B8
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02257BEC
+_02256E6A:
+ mov r0, #2
+ lsl r0, r0, #8
+ tst r0, r4
+ beq _02256E78
+ add r0, r5, #0
+ bl MOD11_02257968
+_02256E78:
+ mov r0, #1
+ lsl r0, r0, #8
+ tst r0, r4
+ beq _02256EDC
+ add r0, r5, #0
+ add r0, #0x4a
+ ldrb r0, [r0]
+ cmp r0, #5
+ bhi _02256EA2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02256E96: ; jump table
+ .short _02256EA2 - _02256E96 - 2 ; case 0
+ .short _02256EAC - _02256E96 - 2 ; case 1
+ .short _02256EB6 - _02256E96 - 2 ; case 2
+ .short _02256EC0 - _02256E96 - 2 ; case 3
+ .short _02256ECA - _02256E96 - 2 ; case 4
+ .short _02256ED4 - _02256E96 - 2 ; case 5
+_02256EA2:
+ add r0, r5, #0
+ mov r1, #0x38
+ bl MOD11_022579B8
+ b _02256EDC
+_02256EAC:
+ add r0, r5, #0
+ mov r1, #0x2f
+ bl MOD11_022579B8
+ b _02256EDC
+_02256EB6:
+ add r0, r5, #0
+ mov r1, #0x32
+ bl MOD11_022579B8
+ b _02256EDC
+_02256EC0:
+ add r0, r5, #0
+ mov r1, #0x35
+ bl MOD11_022579B8
+ b _02256EDC
+_02256ECA:
+ add r0, r5, #0
+ mov r1, #0x2c
+ bl MOD11_022579B8
+ b _02256EDC
+_02256ED4:
+ add r0, r5, #0
+ mov r1, #0x29
+ bl MOD11_022579B8
+_02256EDC:
+ mov r0, #5
+ lsl r0, r0, #0xa
+ tst r0, r4
+ beq _02256EEC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022579F8
+_02256EEC:
+ mov r0, #0xa
+ lsl r0, r0, #0xa
+ tst r0, r4
+ beq _02256EFC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02257AD4
+_02256EFC:
+ pop {r4, r5, r6, pc}
+ nop
+_02256F00: .word 0xFFFFC3FF
+_02256F04: .word 0xFFFFFDDF
+_02256F08: .word 0xFFFFFDFF
+
+ thumb_func_start MOD11_02256F0C
+MOD11_02256F0C: ; 0x02256F0C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x50]
+ cmp r0, #0
+ beq _02256F1E
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x50]
+_02256F1E:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02256F2C
+ bl FUN_0200C3DC
+ mov r0, #0
+ str r0, [r4, #4]
+_02256F2C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256F30
+MOD11_02256F30: ; 0x02256F30
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02256F42
+ bl FUN_0200C3DC
+ mov r0, #0
+ str r0, [r4, #8]
+_02256F42:
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02256F44
+MOD11_02256F44: ; 0x02256F44
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ bl MOD11_02257FC0
+ add r4, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230078
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230080
+ ldr r1, [r4, #0x14]
+ add r5, r0, #0
+ bl FUN_0200C358
+ ldr r1, [r4, #0x1c]
+ add r0, r5, #0
+ bl FUN_0200C378
+ ldr r1, [r4, #0x20]
+ add r0, r5, #0
+ bl FUN_0200C388
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02256F78
+MOD11_02256F78: ; 0x02256F78
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ bl MOD11_02258024
+ add r4, r0, #0
+ beq _02256FAC
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230078
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230080
+ ldr r1, [r4, #0x14]
+ add r5, r0, #0
+ bl FUN_0200C358
+ ldr r1, [r4, #0x1c]
+ add r0, r5, #0
+ bl FUN_0200C378
+ ldr r1, [r4, #0x20]
+ add r0, r5, #0
+ bl FUN_0200C388
+_02256FAC:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256FB0
+MOD11_02256FB0: ; 0x02256FB0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230078
+ add r6, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230080
+ add r7, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_022300CC
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ bl MOD11_02257FC0
+ add r3, r5, #0
+ add r3, #0x25
+ add r4, r0, #0
+ ldrb r3, [r3]
+ ldr r2, [sp]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_02256C08
+ add r2, r5, #0
+ add r2, #0x25
+ ldrb r2, [r2]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_02256D4C
+ add r3, r5, #0
+ str r0, [r5, #4]
+ add r3, #0x25
+ ldrb r3, [r3]
+ ldr r2, [sp]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_02256CD4
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _0225702A
+ add r5, #0x25
+ mov r1, #0
+ ldrsh r3, [r4, r1]
+ ldrb r2, [r5]
+ ldr r1, _0225702C ; =0x0225E970
+ ldr r0, [r0]
+ ldrsb r1, [r1, r2]
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ sub r1, r3, r1
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ bl FUN_0200C6E4
+_0225702A:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225702C: .word 0x0225E970
+
+ thumb_func_start MOD11_02257030
+MOD11_02257030: ; 0x02257030
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_02256F0C
+ add r0, r4, #0
+ bl MOD11_02256F44
+ add r0, r4, #0
+ bl MOD11_02256F30
+ add r0, r4, #0
+ bl MOD11_02256F78
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0225704C
+MOD11_0225704C: ; 0x0225704C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ cmp r0, #2
+ beq _0225705C
+ cmp r0, #4
+ bne _02257136
+_0225705C:
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r2, [r0]
+ mov r1, #8
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x1c
+ lsr r2, r1, #0x1f
+ mov r1, #1
+ eor r1, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1c
+ orr r1, r0
+ add r0, r5, #0
+ add r0, #0x4f
+ strb r1, [r0]
+ ldr r0, [r5, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _022570E8
+ mov r0, #0x38
+ bl MOD11_02257F60
+ add r1, r5, #0
+ add r1, #0x25
+ ldrb r1, [r1]
+ mov r6, #0x19
+ ldr r3, _02257138 ; =0x0225E9B0
+ lsl r2, r1, #2
+ ldrh r3, [r3, r2]
+ lsl r6, r6, #0x16
+ ldr r1, [r4, #4]
+ add r3, r6, r3
+ add r1, r1, r3
+ ldr r3, _0225713C ; =0x0225E9B2
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ mov r0, #0x45
+ bl MOD11_02257F60
+ add r1, r5, #0
+ add r1, #0x25
+ ldrb r1, [r1]
+ ldr r3, _02257140 ; =0x0225EA10
+ lsl r2, r1, #2
+ ldrh r3, [r3, r2]
+ ldr r1, [r4, #4]
+ add r3, r6, r3
+ add r1, r1, r3
+ ldr r3, _02257144 ; =0x0225EA12
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ ldr r1, [r5, #0x28]
+ add r0, r5, #0
+ mov r2, #6
+ bl MOD11_02256D70
+ pop {r4, r5, r6, pc}
+_022570E8:
+ mov r0, #0x42
+ bl MOD11_02257F60
+ add r1, r5, #0
+ add r1, #0x25
+ ldrb r1, [r1]
+ mov r6, #0x19
+ ldr r3, _02257138 ; =0x0225E9B0
+ lsl r2, r1, #2
+ ldrh r3, [r3, r2]
+ lsl r6, r6, #0x16
+ ldr r1, [r4, #4]
+ add r3, r6, r3
+ add r1, r1, r3
+ ldr r3, _0225713C ; =0x0225E9B2
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ mov r0, #0x44
+ bl MOD11_02257F60
+ add r1, r5, #0
+ add r1, #0x25
+ ldrb r1, [r1]
+ ldr r3, _02257148 ; =0x0225E9E0
+ lsl r2, r1, #2
+ ldrh r3, [r3, r2]
+ ldr r1, [r4, #4]
+ add r3, r6, r3
+ add r1, r1, r3
+ ldr r3, _0225714C ; =0x0225E9E2
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ ldr r1, [r5, #0x28]
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD11_02256D70
+_02257136:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02257138: .word 0x0225E9B0
+_0225713C: .word 0x0225E9B2
+_02257140: .word 0x0225EA10
+_02257144: .word 0x0225EA12
+_02257148: .word 0x0225E9E0
+_0225714C: .word 0x0225E9E2
+
+ thumb_func_start MOD11_02257150
+MOD11_02257150: ; 0x02257150
+ mov r2, #2
+ lsl r2, r2, #0x1e
+ str r2, [r0, #0x34]
+ ldr r3, [r0, #0x28]
+ add r2, r3, r1
+ bpl _0225715E
+ sub r1, r1, r2
+_0225715E:
+ ldr r2, [r0, #0x2c]
+ add r3, r3, r1
+ cmp r3, r2
+ ble _0225716A
+ sub r2, r3, r2
+ sub r1, r1, r2
+_0225716A:
+ neg r1, r1
+ str r1, [r0, #0x30]
+ ldr r1, [r0, #0x28]
+ cmp r1, #0
+ bge _02257178
+ mov r1, #0
+ str r1, [r0, #0x28]
+_02257178:
+ ldr r2, [r0, #0x2c]
+ ldr r1, [r0, #0x28]
+ cmp r1, r2
+ ble _02257182
+ str r2, [r0, #0x28]
+_02257182:
+ bx lr
+
+ thumb_func_start MOD11_02257184
+MOD11_02257184: ; 0x02257184
+ push {r3, r4, r5, lr}
+ mov r1, #0
+ add r5, r0, #0
+ bl MOD11_02257BEC
+ add r4, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _022571AA
+ ldr r1, [r5, #0x28]
+ ldr r0, [r5, #0x30]
+ mov r2, #2
+ sub r1, r1, r0
+ add r0, r5, #0
+ str r1, [r5, #0x28]
+ bl MOD11_02256D70
+ b _022571B4
+_022571AA:
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #2
+ bl MOD11_02256D70
+_022571B4:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022571B8
+MOD11_022571B8: ; 0x022571B8
+ mov r2, #2
+ lsl r2, r2, #0x1e
+ str r2, [r0, #0x44]
+ ldr r3, [r0, #0x38]
+ add r2, r3, r1
+ bpl _022571C6
+ sub r1, r1, r2
+_022571C6:
+ ldr r2, [r0, #0x3c]
+ add r3, r3, r1
+ cmp r3, r2
+ ble _022571D2
+ sub r2, r3, r2
+ sub r1, r1, r2
+_022571D2:
+ neg r1, r1
+ str r1, [r0, #0x40]
+ ldr r1, [r0, #0x38]
+ cmp r1, #0
+ bge _022571E0
+ mov r1, #0
+ str r1, [r0, #0x38]
+_022571E0:
+ ldr r2, [r0, #0x3c]
+ ldr r1, [r0, #0x38]
+ cmp r1, r2
+ ble _022571EA
+ str r2, [r0, #0x38]
+_022571EA:
+ bx lr
+
+ thumb_func_start MOD11_022571EC
+MOD11_022571EC: ; 0x022571EC
+ push {r4, lr}
+ mov r1, #1
+ add r4, r0, #0
+ bl MOD11_02257BEC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02257206
+ ldr r2, [r4, #0x38]
+ ldr r1, [r4, #0x40]
+ sub r1, r2, r1
+ str r1, [r4, #0x38]
+_02257206:
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02257208
+MOD11_02257208: ; 0x02257208
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02257222
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_020200BC
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_02257284
+_02257222:
+ ldr r0, [r4, #0xc]
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _02257236
+ add r0, r4, #0
+ bl MOD11_02258188
+_02257236:
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02257238
+MOD11_02257238: ; 0x02257238
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _0225725C
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_020200BC
+ ldr r0, [r4, #8]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_02020208
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_02257284
+_0225725C:
+ add r0, r4, #0
+ bl MOD11_022581B0
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02257264
+MOD11_02257264: ; 0x02257264
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ add r4, r1, #0
+ cmp r0, #0
+ beq _02257280
+ bl FUN_0200C6B0
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _02257280
+ add r1, r4, #0
+ bl FUN_0200C6B0
+_02257280:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02257284
+MOD11_02257284: ; 0x02257284
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ add r4, r1, #0
+ cmp r0, #0
+ beq _022572AA
+ ldr r0, [r5, #0xc]
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ beq _022572A2
+ cmp r4, #1
+ beq _022572AA
+_022572A2:
+ ldr r0, [r5, #8]
+ add r1, r4, #0
+ bl FUN_0200C644
+_022572AA:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022572AC
+MOD11_022572AC: ; 0x022572AC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ add r4, r1, #0
+ cmp r0, #0
+ beq _022572C4
+ bl FUN_0200C644
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02257284
+_022572C4:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022572C8
+MOD11_022572C8: ; 0x022572C8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ add r6, r1, #0
+ add r7, r2, #0
+ cmp r0, #0
+ bne _022572DA
+ bl ErrorHandling
+_022572DA:
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ bl MOD11_02257FC0
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r5, #4]
+ add r1, r1, r6
+ add r2, r2, r7
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _0225732C
+ add r5, #0x25
+ ldrb r3, [r5]
+ mov r1, #0
+ ldr r2, _02257330 ; =0x0225E970
+ ldrsh r1, [r4, r1]
+ ldrsb r2, [r2, r3]
+ ldr r0, [r0]
+ add r1, r1, r6
+ sub r1, r1, r2
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r2, r7
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+_0225732C:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02257330: .word 0x0225E970
+
+ thumb_func_start MOD11_02257334
+MOD11_02257334: ; 0x02257334
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ cmp r4, #0
+ bne _02257342
+ bl ErrorHandling
+_02257342:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ bne _0225734C
+ bl ErrorHandling
+_0225734C:
+ add r0, r4, #0
+ add r0, #0x4f
+ ldrb r1, [r0]
+ mov r0, #2
+ bic r1, r0
+ add r0, r4, #0
+ add r0, #0x4f
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ mov r1, #1
+ bic r0, r1
+ lsl r1, r5, #0x18
+ lsr r2, r1, #0x18
+ mov r1, #1
+ and r1, r2
+ orr r1, r0
+ add r0, r4, #0
+ add r0, #0x4f
+ strb r1, [r0]
+ cmp r5, #0
+ bne _022573BA
+ add r0, r4, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ cmp r0, #7
+ bhi _022573AC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02257390: ; jump table
+ .short _022573A0 - _02257390 - 2 ; case 0
+ .short _022573AC - _02257390 - 2 ; case 1
+ .short _022573A0 - _02257390 - 2 ; case 2
+ .short _022573AC - _02257390 - 2 ; case 3
+ .short _022573A0 - _02257390 - 2 ; case 4
+ .short _022573AC - _02257390 - 2 ; case 5
+ .short _022573A0 - _02257390 - 2 ; case 6
+ .short _022573A0 - _02257390 - 2 ; case 7
+_022573A0:
+ add r0, r4, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl MOD11_022572C8
+ b _022573C4
+_022573AC:
+ mov r1, #0x9f
+ add r0, r4, #0
+ mvn r1, r1
+ mov r2, #0
+ bl MOD11_022572C8
+ b _022573C4
+_022573BA:
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_022572C8
+_022573C4:
+ ldr r0, _022573D0 ; =MOD11_022573D8
+ ldr r2, _022573D4 ; =0x000003DE
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022573D0: .word MOD11_022573D8
+_022573D4: .word 0x000003DE
+
+ thumb_func_start MOD11_022573D8
+MOD11_022573D8: ; 0x022573D8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ mov r4, #0
+ bl MOD11_02257FC0
+ add r6, r0, #0
+ add r1, sp, #0
+ ldr r0, [r5, #4]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ cmp r0, #7
+ bhi _0225745E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225740E: ; jump table
+ .short _0225741E - _0225740E - 2 ; case 0
+ .short _0225745E - _0225740E - 2 ; case 1
+ .short _0225741E - _0225740E - 2 ; case 2
+ .short _0225745E - _0225740E - 2 ; case 3
+ .short _0225741E - _0225740E - 2 ; case 4
+ .short _0225745E - _0225740E - 2 ; case 5
+ .short _0225741E - _0225740E - 2 ; case 6
+ .short _0225741E - _0225740E - 2 ; case 7
+_0225741E:
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ add r0, sp, #0
+ bne _02257444
+ mov r1, #2
+ ldrsh r2, [r0, r1]
+ sub r2, #0x18
+ strh r2, [r0, #2]
+ add r2, r4, #0
+ ldrsh r1, [r0, r1]
+ ldrsh r2, [r6, r2]
+ cmp r1, r2
+ bge _0225749C
+ strh r2, [r0, #2]
+ add r4, r4, #1
+ b _0225749C
+_02257444:
+ mov r1, #2
+ ldrsh r2, [r0, r1]
+ add r2, #0x18
+ strh r2, [r0, #2]
+ add r2, r4, #0
+ ldrsh r2, [r6, r2]
+ ldrsh r1, [r0, r1]
+ add r2, #0xa0
+ cmp r1, r2
+ ble _0225749C
+ strh r2, [r0, #2]
+ add r4, r4, #1
+ b _0225749C
+_0225745E:
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ add r0, sp, #0
+ bne _02257484
+ mov r1, #2
+ ldrsh r2, [r0, r1]
+ add r2, #0x18
+ strh r2, [r0, #2]
+ mov r2, #0
+ ldrsh r1, [r0, r1]
+ ldrsh r2, [r6, r2]
+ cmp r1, r2
+ ble _0225749C
+ strh r2, [r0, #2]
+ add r4, r4, #1
+ b _0225749C
+_02257484:
+ mov r1, #2
+ ldrsh r2, [r0, r1]
+ sub r2, #0x18
+ strh r2, [r0, #2]
+ mov r2, #0
+ ldrsh r2, [r6, r2]
+ ldrsh r1, [r0, r1]
+ sub r2, #0x18
+ cmp r1, r2
+ bge _0225749C
+ strh r2, [r0, #2]
+ add r4, r4, #1
+_0225749C:
+ add r2, sp, #0
+ mov r1, #2
+ mov r3, #0
+ ldrsh r1, [r2, r1]
+ ldrsh r2, [r2, r3]
+ ldr r0, [r5, #4]
+ bl FUN_0200C714
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _022574D0
+ add r6, sp, #0
+ mov r1, #2
+ ldrsh r3, [r6, r1]
+ add r1, r5, #0
+ add r1, #0x25
+ ldrb r2, [r1]
+ ldr r1, _022574EC ; =0x0225E970
+ ldrsb r1, [r1, r2]
+ mov r2, #0
+ ldrsh r2, [r6, r2]
+ sub r1, r3, r1
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+_022574D0:
+ cmp r4, #0
+ ble _022574E8
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r1, [r0]
+ mov r0, #2
+ add r5, #0x4f
+ orr r0, r1
+ strb r0, [r5]
+ add r0, r7, #0
+ bl FUN_0200CAB4
+_022574E8:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022574EC: .word 0x0225E970
+
+ thumb_func_start MOD11_022574F0
+MOD11_022574F0: ; 0x022574F0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_0222FF68
+ add r6, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_022300C4
+ add r7, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230138
+ add r4, r0, #0
+ mov r0, #0x16
+ mov r1, #5
+ bl FUN_020219F4
+ mov r1, #0xf1
+ str r0, [sp, #0x18]
+ add r0, r7, #0
+ lsl r1, r1, #2
+ bl FUN_0200A914
+ add r1, r5, #0
+ add r2, r5, #0
+ add r1, #0x24
+ add r2, #0x26
+ str r0, [sp, #0x1c]
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230014
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_0200ACF8
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x1c]
+ add r0, r4, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r1, sp, #0x24
+ mov r2, #8
+ mov r3, #2
+ bl FUN_020190EC
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02257630 ; =0x000E020F
+ ldr r2, [sp, #0x18]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0x14]
+ add r0, sp, #0x24
+ add r3, r1, #0
+ bl FUN_0201BE3C
+ ldr r0, [r5, #4]
+ ldr r6, [sp, #0x30]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r4, r0, #0
+ mov r0, #1
+ lsl r0, r0, #8
+ add r0, r6, r0
+ str r0, [sp, #0x20]
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ ldr r1, _02257634 ; =0x0225EC88
+ ldr r3, [r4, #4]
+ lsl r7, r0, #4
+ ldrh r2, [r1, r7]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ add r1, r1, r2
+ ldr r2, _02257638 ; =0x0225EC8A
+ add r0, r6, #0
+ ldrh r2, [r2, r7]
+ add r1, r3, r1
+ bl MIi_CpuCopy16
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ ldr r1, _0225763C ; =0x0225EC8C
+ ldr r3, [r4, #4]
+ lsl r7, r0, #4
+ ldrh r2, [r1, r7]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ add r1, r1, r2
+ ldr r2, _02257640 ; =0x0225EC8E
+ ldr r0, [sp, #0x20]
+ ldrh r2, [r2, r7]
+ add r1, r3, r1
+ bl MIi_CpuCopy16
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ ldr r3, _02257644 ; =0x0225EC90
+ ldr r1, [r4, #4]
+ lsl r2, r0, #4
+ ldr r0, _02257638 ; =0x0225EC8A
+ ldrh r0, [r0, r2]
+ add r0, r6, r0
+ ldrh r6, [r3, r2]
+ mov r3, #0x19
+ lsl r3, r3, #0x16
+ add r3, r3, r6
+ add r1, r1, r3
+ ldr r3, _02257648 ; =0x0225EC92
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ add r5, #0x25
+ ldrb r0, [r5]
+ ldr r4, [r4, #4]
+ lsl r2, r0, #4
+ ldr r0, _02257640 ; =0x0225EC8E
+ ldrh r1, [r0, r2]
+ ldr r0, [sp, #0x20]
+ add r0, r0, r1
+ ldr r1, _0225764C ; =0x0225EC94
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ add r1, r1, r3
+ ldr r3, _02257650 ; =0x0225EC96
+ add r1, r4, r1
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ add r0, sp, #0x24
+ bl FUN_02019178
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02257630: .word 0x000E020F
+_02257634: .word 0x0225EC88
+_02257638: .word 0x0225EC8A
+_0225763C: .word 0x0225EC8C
+_02257640: .word 0x0225EC8E
+_02257644: .word 0x0225EC90
+_02257648: .word 0x0225EC92
+_0225764C: .word 0x0225EC94
+_02257650: .word 0x0225EC96
+
+ thumb_func_start MOD11_02257654
+MOD11_02257654: ; 0x02257654
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp]
+ add r0, #0x49
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02257666
+ mov r0, #0x3e
+ b _02257670
+_02257666:
+ cmp r0, #1
+ bne _0225766E
+ mov r0, #0x3c
+ b _02257670
+_0225766E:
+ mov r0, #0x40
+_02257670:
+ bl MOD11_02257F60
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #0x80
+ bl AllocFromHeap
+ add r7, r0, #0
+ ldr r0, [sp]
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ ldr r1, _0225774C ; =0x0225EAB8
+ add r0, #0x25
+ ldrb r0, [r0]
+ lsl r2, r0, #3
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ ldr r0, [sp, #4]
+ add r1, r1, r3
+ ldr r3, _02257750 ; =0x0225EABA
+ ldr r0, [r0, #4]
+ ldrh r2, [r3, r2]
+ add r0, r0, r1
+ add r1, r7, #0
+ bl MIi_CpuCopy16
+ ldr r0, [sp]
+ ldr r1, _02257754 ; =0x0225EABC
+ add r0, #0x25
+ ldrb r0, [r0]
+ lsl r2, r0, #3
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ ldr r0, [sp, #4]
+ lsl r1, r1, #0x16
+ add r1, r1, r3
+ ldr r3, _02257758 ; =0x0225EABE
+ ldr r0, [r0, #4]
+ ldrh r2, [r3, r2]
+ add r0, r0, r1
+ add r1, r7, #0
+ add r1, #0x40
+ bl MIi_CpuCopy16
+ mov r2, #0
+ add r1, r2, #0
+_022576D6:
+ mov r0, #0
+ add r3, r7, r1
+_022576DA:
+ ldrb r5, [r4, r2]
+ add r6, r4, r2
+ add r0, r0, #1
+ strb r5, [r3, #0x10]
+ ldrb r6, [r6, #0x10]
+ add r5, r3, #0
+ add r5, #0x40
+ strb r6, [r5]
+ add r2, r2, #1
+ add r3, r3, #1
+ cmp r0, #0x10
+ blt _022576DA
+ add r1, #0x20
+ add r2, #0x10
+ cmp r1, #0x40
+ blt _022576D6
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ add r0, #0x25
+ ldrb r0, [r0]
+ ldr r3, _0225774C ; =0x0225EAB8
+ ldr r1, [r1, #4]
+ lsl r2, r0, #3
+ ldrh r4, [r3, r2]
+ mov r3, #0x19
+ lsl r3, r3, #0x16
+ add r3, r3, r4
+ add r1, r1, r3
+ ldr r3, _02257750 ; =0x0225EABA
+ add r0, r7, #0
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ ldr r0, [sp]
+ ldr r3, _02257754 ; =0x0225EABC
+ add r0, #0x25
+ str r0, [sp]
+ ldrb r0, [r0]
+ ldr r1, [sp, #4]
+ lsl r2, r0, #3
+ ldrh r4, [r3, r2]
+ mov r3, #0x19
+ lsl r3, r3, #0x16
+ add r0, r7, #0
+ ldr r1, [r1, #4]
+ add r3, r3, r4
+ add r1, r1, r3
+ ldr r3, _02257758 ; =0x0225EABE
+ add r0, #0x40
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ add r0, r7, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225774C: .word 0x0225EAB8
+_02257750: .word 0x0225EABA
+_02257754: .word 0x0225EABC
+_02257758: .word 0x0225EABE
+
+ thumb_func_start MOD11_0225775C
+MOD11_0225775C: ; 0x0225775C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #4]
+ mov r0, #5
+ mov r1, #0x60
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #0xc0
+ bl AllocFromHeap
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #0xff
+ mov r2, #0x60
+ bl MI_CpuFill8
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0xc]
+ bl MOD11_022300BC
+ ldr r1, [sp, #4]
+ str r4, [sp]
+ add r1, #0x48
+ ldrb r1, [r1]
+ mov r2, #3
+ mov r3, #0
+ bl FUN_0200BAAC
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ ldr r1, _0225786C ; =0x0225EA28
+ add r0, #0x25
+ ldrb r0, [r0]
+ lsl r2, r0, #3
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ ldr r0, [sp, #8]
+ add r1, r1, r3
+ ldr r3, _02257870 ; =0x0225EA2A
+ ldr r0, [r0, #4]
+ ldrh r2, [r3, r2]
+ add r0, r0, r1
+ add r1, r7, #0
+ bl MIi_CpuCopy16
+ ldr r0, [sp, #4]
+ ldr r1, _02257874 ; =0x0225EA2C
+ add r0, #0x25
+ ldrb r0, [r0]
+ lsl r2, r0, #3
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ ldr r0, [sp, #8]
+ lsl r1, r1, #0x16
+ add r1, r1, r3
+ ldr r3, _02257878 ; =0x0225EA2E
+ ldr r0, [r0, #4]
+ ldrh r2, [r3, r2]
+ add r0, r0, r1
+ add r1, r7, #0
+ add r1, #0x60
+ bl MIi_CpuCopy16
+ mov r2, #0
+ add r1, r2, #0
+_022577EE:
+ mov r0, #0
+ add r3, r7, r1
+_022577F2:
+ ldrb r5, [r4, r2]
+ add r6, r4, r2
+ add r0, r0, #1
+ strb r5, [r3, #0x10]
+ ldrb r6, [r6, #0x10]
+ add r5, r3, #0
+ add r5, #0x60
+ strb r6, [r5]
+ add r2, r2, #1
+ add r3, r3, #1
+ cmp r0, #0x10
+ blt _022577F2
+ add r1, #0x20
+ add r2, #0x10
+ cmp r1, #0x60
+ blt _022577EE
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #8]
+ add r0, #0x25
+ ldrb r0, [r0]
+ ldr r3, _0225786C ; =0x0225EA28
+ ldr r1, [r1, #4]
+ lsl r2, r0, #3
+ ldrh r5, [r3, r2]
+ mov r3, #0x19
+ lsl r3, r3, #0x16
+ add r3, r3, r5
+ add r1, r1, r3
+ ldr r3, _02257870 ; =0x0225EA2A
+ add r0, r7, #0
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ ldr r0, [sp, #4]
+ ldr r3, _02257874 ; =0x0225EA2C
+ add r0, #0x25
+ str r0, [sp, #4]
+ ldrb r0, [r0]
+ ldr r1, [sp, #8]
+ lsl r2, r0, #3
+ ldrh r5, [r3, r2]
+ mov r3, #0x19
+ lsl r3, r3, #0x16
+ add r0, r7, #0
+ ldr r1, [r1, #4]
+ add r3, r3, r5
+ add r1, r1, r3
+ ldr r3, _02257878 ; =0x0225EA2E
+ add r0, #0x60
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r7, #0
+ bl FreeToHeap
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0225786C: .word 0x0225EA28
+_02257870: .word 0x0225EA2A
+_02257874: .word 0x0225EA2C
+_02257878: .word 0x0225EA2E
+
+ thumb_func_start MOD11_0225787C
+MOD11_0225787C: ; 0x0225787C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #5
+ mov r1, #0x60
+ bl AllocFromHeap
+ mov r1, #0xff
+ mov r2, #0x60
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [r5, #0xc]
+ bl MOD11_022300B4
+ str r4, [sp]
+ add r1, r6, #0
+ mov r2, #3
+ mov r3, #1
+ bl FUN_0200BAAC
+ ldr r0, [r5, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ mov r7, #0x19
+ ldr r3, _022578F8 ; =0x0225EA58
+ lsl r2, r0, #3
+ ldrh r3, [r3, r2]
+ lsl r7, r7, #0x16
+ ldr r1, [r6, #4]
+ add r3, r7, r3
+ add r1, r1, r3
+ ldr r3, _022578FC ; =0x0225EA5A
+ add r0, r4, #0
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ add r5, #0x25
+ ldrb r0, [r5]
+ ldr r3, _02257900 ; =0x0225EA5C
+ ldr r1, [r6, #4]
+ lsl r2, r0, #3
+ ldrh r3, [r3, r2]
+ ldr r0, _022578FC ; =0x0225EA5A
+ add r3, r7, r3
+ add r1, r1, r3
+ ldrh r0, [r0, r2]
+ ldr r3, _02257904 ; =0x0225EA5E
+ ldrh r2, [r3, r2]
+ add r0, r4, r0
+ bl MIi_CpuCopy16
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022578F8: .word 0x0225EA58
+_022578FC: .word 0x0225EA5A
+_02257900: .word 0x0225EA5C
+_02257904: .word 0x0225EA5E
+
+ thumb_func_start MOD11_02257908
+MOD11_02257908: ; 0x02257908
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #5
+ mov r1, #0x60
+ bl AllocFromHeap
+ mov r1, #0xff
+ mov r2, #0x60
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [r5, #0xc]
+ bl MOD11_022300B4
+ str r4, [sp]
+ ldr r1, [r5, #0x2c]
+ mov r2, #3
+ mov r3, #0
+ bl FUN_0200BAAC
+ ldr r0, [r5, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r1, r0, #0
+ add r5, #0x25
+ ldrb r0, [r5]
+ ldr r3, _02257960 ; =0x0225E9F8
+ ldr r1, [r1, #4]
+ lsl r2, r0, #2
+ ldrh r5, [r3, r2]
+ mov r3, #0x19
+ lsl r3, r3, #0x16
+ add r3, r5, r3
+ add r1, r1, r3
+ ldr r3, _02257964 ; =0x0225E9FA
+ add r0, r4, #0
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02257960: .word 0x0225E9F8
+_02257964: .word 0x0225E9FA
+
+ thumb_func_start MOD11_02257968
+MOD11_02257968: ; 0x02257968
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0x4b
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _0225797C
+ mov r0, #0x3b
+ bl MOD11_02257F60
+ b _02257982
+_0225797C:
+ mov r0, #0x38
+ bl MOD11_02257F60
+_02257982:
+ add r4, r0, #0
+ ldr r0, [r5, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r5, #0x25
+ add r1, r0, #0
+ ldrb r0, [r5]
+ lsl r2, r0, #2
+ add r0, r4, #0
+ ldr r4, [r1, #4]
+ ldr r1, _022579B0 ; =0x0225E9C8
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ add r1, r3, r1
+ ldr r3, _022579B4 ; =0x0225E9CA
+ add r1, r4, r1
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ pop {r3, r4, r5, pc}
+ nop
+_022579B0: .word 0x0225E9C8
+_022579B4: .word 0x0225E9CA
+
+ thumb_func_start MOD11_022579B8
+MOD11_022579B8: ; 0x022579B8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ bl MOD11_02257F60
+ add r4, r0, #0
+ ldr r0, [r5, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r5, #0x25
+ add r1, r0, #0
+ ldrb r0, [r5]
+ lsl r2, r0, #2
+ add r0, r4, #0
+ ldr r4, [r1, #4]
+ ldr r1, _022579F0 ; =0x0225E998
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ add r1, r3, r1
+ ldr r3, _022579F4 ; =0x0225E99A
+ add r1, r4, r1
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ pop {r3, r4, r5, pc}
+ nop
+_022579F0: .word 0x0225E998
+_022579F4: .word 0x0225E99A
+
+ thumb_func_start MOD11_022579F8
+MOD11_022579F8: ; 0x022579F8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ add r5, r1, #0
+ bl MOD11_0222FF68
+ add r6, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD11_022300C4
+ mov r1, #1
+ lsl r1, r1, #0xa
+ add r2, r5, #0
+ tst r2, r1
+ beq _02257A20
+ sub r1, #0x4a
+ bl FUN_0200A914
+ b _02257A26
+_02257A20:
+ add r1, #0xc4
+ bl FUN_0200A914
+_02257A26:
+ add r7, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r1, sp, #0x18
+ mov r2, #0xd
+ mov r3, #2
+ bl FUN_020190EC
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02257AD0 ; =0x000E020F
+ add r2, r7, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0x14]
+ add r0, sp, #0x18
+ add r3, r1, #0
+ bl FUN_0201BE3C
+ ldr r0, [r4, #4]
+ ldr r5, [sp, #0x24]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r4, r0, #0
+ mov r2, #0x1a
+ mov r6, #0x19
+ lsl r2, r2, #4
+ lsl r6, r6, #0x16
+ add r2, #0xa0
+ ldr r1, [r4, #4]
+ add r2, r6, r2
+ add r1, r1, r2
+ add r0, r5, #0
+ mov r2, #0xc0
+ bl MIi_CpuCopy16
+ mov r2, #0xd
+ mov r0, #0x1a
+ lsl r2, r2, #6
+ lsl r0, r0, #4
+ ldr r1, [r4, #4]
+ add r2, r6, r2
+ add r1, r1, r2
+ add r0, r5, r0
+ mov r2, #0xc0
+ bl MIi_CpuCopy16
+ mov r2, #0xa
+ lsl r2, r2, #8
+ add r0, r5, #0
+ ldr r1, [r4, #4]
+ add r2, r6, r2
+ add r1, r1, r2
+ add r0, #0xc0
+ mov r2, #0xe0
+ bl MIi_CpuCopy16
+ mov r0, #0x1a
+ mov r1, #0xb
+ lsl r0, r0, #4
+ lsl r1, r1, #8
+ add r0, r5, r0
+ ldr r2, [r4, #4]
+ add r1, r6, r1
+ add r1, r2, r1
+ add r0, #0xc0
+ mov r2, #0xe0
+ bl MIi_CpuCopy16
+ add r0, sp, #0x18
+ bl FUN_02019178
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02257AD0: .word 0x000E020F
+
+ thumb_func_start MOD11_02257AD4
+MOD11_02257AD4: ; 0x02257AD4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ add r5, r1, #0
+ bl MOD11_0222FF68
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #0xc]
+ bl MOD11_022300C4
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #0xc]
+ bl MOD11_02230138
+ add r7, r0, #0
+ mov r0, #0x1e
+ mov r1, #5
+ bl FUN_020219F4
+ mov r1, #1
+ add r6, r0, #0
+ lsl r1, r1, #0xa
+ add r0, r5, #0
+ tst r0, r1
+ beq _02257B14
+ ldr r0, [sp, #0x20]
+ sub r1, #0x49
+ bl FUN_0200A914
+ str r0, [sp, #0x18]
+ b _02257B1E
+_02257B14:
+ ldr r0, [sp, #0x20]
+ add r1, #0xc5
+ bl FUN_0200A914
+ str r0, [sp, #0x18]
+_02257B1E:
+ mov r0, #1
+ str r0, [sp]
+ add r2, r4, #0
+ str r0, [sp, #4]
+ add r2, #0x27
+ ldrb r2, [r2]
+ add r0, r7, #0
+ mov r1, #0
+ mov r3, #2
+ bl FUN_0200AD38
+ ldr r2, [sp, #0x18]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x1c]
+ add r1, sp, #0x24
+ mov r2, #0xd
+ mov r3, #2
+ bl FUN_020190EC
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02257BE8 ; =0x000E020F
+ add r2, r6, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0x14]
+ add r0, sp, #0x24
+ add r3, r1, #0
+ bl FUN_0201BE3C
+ ldr r0, [r4, #4]
+ ldr r5, [sp, #0x30]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r4, r0, #0
+ mov r7, #0x19
+ mov r2, #0x11
+ lsl r7, r7, #0x16
+ lsl r2, r2, #6
+ ldr r1, [r4, #4]
+ add r2, r7, r2
+ add r1, r1, r2
+ add r0, r5, #0
+ mov r2, #0xc0
+ bl MIi_CpuCopy16
+ mov r2, #0x15
+ mov r0, #0x1a
+ lsl r2, r2, #6
+ lsl r0, r0, #4
+ ldr r1, [r4, #4]
+ add r2, r7, r2
+ add r1, r1, r2
+ add r0, r5, r0
+ mov r2, #0xc0
+ bl MIi_CpuCopy16
+ mov r2, #3
+ lsl r2, r2, #0xa
+ add r0, r5, #0
+ ldr r1, [r4, #4]
+ add r2, r7, r2
+ add r1, r1, r2
+ add r0, #0xc0
+ mov r2, #0xe0
+ bl MIi_CpuCopy16
+ mov r0, #0x1a
+ mov r1, #0xd
+ lsl r0, r0, #4
+ lsl r1, r1, #8
+ add r0, r5, r0
+ ldr r2, [r4, #4]
+ add r1, r7, r1
+ add r1, r2, r1
+ add r0, #0xc0
+ mov r2, #0xe0
+ bl MIi_CpuCopy16
+ add r0, sp, #0x24
+ bl FUN_02019178
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02257BE8: .word 0x000E020F
+
+ thumb_func_start MOD11_02257BEC
+MOD11_02257BEC: ; 0x02257BEC
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r4, r1, #0
+ bne _02257C10
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r3, r5, #0
+ ldr r0, [r5, #0x2c]
+ ldr r1, [r5, #0x28]
+ ldr r2, [r5, #0x30]
+ add r3, #0x34
+ bl MOD11_02257DE8
+ add r6, r0, #0
+ b _02257C48
+_02257C10:
+ ldr r0, [r5, #0x38]
+ ldr r1, [r5, #0x40]
+ ldr r2, [r5, #0x3c]
+ mov r3, #0xb
+ bl MOD11_02257F20
+ add r1, r0, #0
+ bne _02257C22
+ mov r1, #1
+_02257C22:
+ ldr r6, [r5, #0x40]
+ add r0, r6, #0
+ bl _s32_div_f
+ bl abs
+ mov r1, #0xb
+ lsl r0, r0, #0x10
+ add r3, r5, #0
+ str r1, [sp]
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x3c]
+ ldr r1, [r5, #0x38]
+ add r2, r6, #0
+ add r3, #0x44
+ bl MOD11_02257DE8
+ add r6, r0, #0
+_02257C48:
+ cmp r4, #0
+ bne _02257C5A
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ beq _02257C64
+_02257C5A:
+ lsl r1, r4, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl MOD11_02257C80
+_02257C64:
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ bne _02257C7A
+ cmp r4, #0
+ bne _02257C76
+ mov r0, #0
+ str r0, [r5, #0x34]
+ b _02257C7A
+_02257C76:
+ mov r0, #0
+ str r0, [r5, #0x44]
+_02257C7A:
+ add r0, r6, #0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02257C80
+MOD11_02257C80: ; 0x02257C80
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r0, #0
+ ldr r0, [r6, #4]
+ add r4, r1, #0
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r5, r0, #0
+ cmp r4, #0
+ beq _02257C9E
+ cmp r4, #1
+ beq _02257D50
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+_02257C9E:
+ add r0, sp, #0x10
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ add r3, r6, #0
+ ldr r0, [r6, #0x2c]
+ ldr r1, [r6, #0x28]
+ ldr r2, [r6, #0x30]
+ add r3, #0x34
+ bl MOD11_02257EA4
+ mov r1, #0x30
+ bl FUN_02079A24
+ cmp r0, #1
+ beq _02257CCE
+ cmp r0, #2
+ beq _02257CCA
+ cmp r0, #3
+ bne _02257CCE
+ mov r0, #2
+ b _02257CD0
+_02257CCA:
+ mov r0, #0xb
+ b _02257CD0
+_02257CCE:
+ mov r0, #0x14
+_02257CD0:
+ bl MOD11_02257F60
+ str r0, [sp, #0xc]
+ add r0, r6, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ mov r4, #0
+ lsl r1, r0, #3
+ ldr r0, _02257DE0 ; =0x0225EA8A
+ ldrh r0, [r0, r1]
+ lsr r7, r0, #5
+_02257CE6:
+ cmp r4, r7
+ add r0, sp, #0x10
+ bge _02257D16
+ add r2, r6, #0
+ add r2, #0x25
+ ldrb r2, [r2]
+ ldrb r0, [r0, r4]
+ lsl r3, r2, #3
+ ldr r2, _02257DE4 ; =0x0225EA88
+ lsl r1, r0, #5
+ ldrh r3, [r2, r3]
+ ldr r0, [sp, #0xc]
+ mov r2, #0x19
+ lsl r2, r2, #0x16
+ add r0, r0, r1
+ add r3, r2, r3
+ lsl r2, r4, #5
+ ldr r1, [r5, #4]
+ add r2, r3, r2
+ add r1, r1, r2
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+ b _02257D42
+_02257D16:
+ ldrb r0, [r0, r4]
+ ldr r2, [r5, #4]
+ lsl r1, r0, #5
+ ldr r0, [sp, #0xc]
+ add r0, r0, r1
+ add r1, r6, #0
+ add r1, #0x25
+ ldrb r1, [r1]
+ lsl r3, r1, #3
+ ldr r1, _02257DE4 ; =0x0225EA88
+ add r1, r1, r3
+ ldrh r3, [r1, #4]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ add r1, r1, r3
+ sub r3, r4, r7
+ lsl r3, r3, #5
+ add r1, r1, r3
+ add r1, r2, r1
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+_02257D42:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #6
+ blo _02257CE6
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+_02257D50:
+ add r0, sp, #0x10
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #4]
+ add r3, r6, #0
+ ldr r0, [r6, #0x3c]
+ ldr r1, [r6, #0x38]
+ ldr r2, [r6, #0x40]
+ add r3, #0x44
+ bl MOD11_02257EA4
+ add r6, #0x48
+ ldrb r0, [r6]
+ cmp r0, #0x64
+ bne _02257D80
+ mov r0, #0
+ add r2, r0, #0
+ add r1, sp, #0x10
+_02257D74:
+ strb r2, [r1, r0]
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0xb
+ blo _02257D74
+_02257D80:
+ mov r0, #0x1d
+ bl MOD11_02257F60
+ add r6, r0, #0
+ mov r1, #0x19
+ mov r0, #0x1a
+ lsl r1, r1, #0x16
+ lsl r0, r0, #6
+ add r0, r1, r0
+ str r0, [sp, #8]
+ mov r0, #0xe
+ lsl r0, r0, #8
+ mov r4, #0
+ add r7, r1, r0
+_02257D9C:
+ cmp r4, #4
+ add r0, sp, #0x10
+ bhs _02257DBA
+ ldrb r0, [r0, r4]
+ ldr r1, [sp, #8]
+ lsl r2, r4, #5
+ lsl r0, r0, #5
+ add r1, r1, r2
+ ldr r3, [r5, #4]
+ add r0, r6, r0
+ add r1, r3, r1
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+ b _02257DD0
+_02257DBA:
+ ldrb r0, [r0, r4]
+ sub r2, r4, #4
+ lsl r2, r2, #5
+ lsl r0, r0, #5
+ ldr r1, [r5, #4]
+ add r2, r7, r2
+ add r1, r1, r2
+ add r0, r6, r0
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+_02257DD0:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0xb
+ blo _02257D9C
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02257DE0: .word 0x0225EA8A
+_02257DE4: .word 0x0225EA88
+
+ thumb_func_start MOD11_02257DE8
+MOD11_02257DE8: ; 0x02257DE8
+ push {r4, r5, r6, lr}
+ add r6, r2, #0
+ add r2, sp, #0
+ add r5, r3, #0
+ ldrb r2, [r2, #0x10]
+ mov r3, #2
+ ldr r4, [r5]
+ lsl r2, r2, #0x1b
+ lsl r3, r3, #0x1e
+ lsr r2, r2, #0x18
+ cmp r4, r3
+ bne _02257E0C
+ cmp r0, r2
+ bge _02257E0A
+ lsl r3, r1, #8
+ str r3, [r5]
+ b _02257E0C
+_02257E0A:
+ str r1, [r5]
+_02257E0C:
+ sub r4, r1, r6
+ bpl _02257E14
+ mov r4, #0
+ b _02257E1A
+_02257E14:
+ cmp r4, r0
+ ble _02257E1A
+ add r4, r0, #0
+_02257E1A:
+ cmp r0, r2
+ bge _02257E32
+ ldr r3, [r5]
+ asr r1, r3, #8
+ cmp r4, r1
+ bne _02257E3E
+ lsl r1, r3, #0x18
+ lsr r1, r1, #0x18
+ bne _02257E3E
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, r5, r6, pc}
+_02257E32:
+ ldr r1, [r5]
+ cmp r4, r1
+ bne _02257E3E
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, r5, r6, pc}
+_02257E3E:
+ cmp r0, r2
+ bge _02257E7E
+ lsl r0, r0, #8
+ add r1, r2, #0
+ bl _s32_div_f
+ cmp r6, #0
+ ldr r1, [r5]
+ bge _02257E62
+ add r0, r1, r0
+ str r0, [r5]
+ asr r0, r0, #8
+ cmp r0, r4
+ blt _02257EA2
+ lsl r0, r4, #8
+ str r0, [r5]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02257E62:
+ sub r1, r1, r0
+ str r1, [r5]
+ asr r0, r1, #8
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, #0
+ ble _02257E72
+ add r0, r0, #1
+_02257E72:
+ cmp r0, r4
+ bgt _02257EA2
+ lsl r0, r4, #8
+ str r0, [r5]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02257E7E:
+ cmp r6, #0
+ ldr r1, [r5]
+ add r0, sp, #0
+ bge _02257E94
+ ldrh r0, [r0, #0x14]
+ add r0, r1, r0
+ str r0, [r5]
+ cmp r0, r4
+ ble _02257EA0
+ str r4, [r5]
+ b _02257EA0
+_02257E94:
+ ldrh r0, [r0, #0x14]
+ sub r0, r1, r0
+ str r0, [r5]
+ cmp r0, r4
+ bge _02257EA0
+ str r4, [r5]
+_02257EA0:
+ ldr r0, [r5]
+_02257EA2:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02257EA4
+MOD11_02257EA4: ; 0x02257EA4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r5, [sp, #0x18]
+ sub r7, r1, r2
+ bpl _02257EB2
+ mov r7, #0
+ b _02257EB8
+_02257EB2:
+ cmp r7, r6
+ ble _02257EB8
+ add r7, r6, #0
+_02257EB8:
+ add r0, sp, #8
+ ldrb r4, [r0, #0x14]
+ mov r1, #0
+ lsl r2, r4, #3
+ cmp r4, #0
+ ble _02257ECE
+ add r0, r1, #0
+_02257EC6:
+ strb r0, [r5, r1]
+ add r1, r1, #1
+ cmp r1, r4
+ blt _02257EC6
+_02257ECE:
+ cmp r6, r2
+ ldr r1, [r3]
+ bhs _02257EE2
+ add r0, r1, #0
+ mul r0, r2
+ add r1, r6, #0
+ bl _u32_div_f
+ lsr r0, r0, #8
+ b _02257EEC
+_02257EE2:
+ add r0, r1, #0
+ mul r0, r2
+ add r1, r6, #0
+ bl _u32_div_f
+_02257EEC:
+ add r2, r0, #0
+ cmp r0, #0
+ bne _02257EFC
+ cmp r7, #0
+ ble _02257EFC
+ mov r2, #1
+ strb r2, [r5]
+ b _02257F18
+_02257EFC:
+ mov r3, #0
+ cmp r4, #0
+ ble _02257F18
+ mov r1, #8
+_02257F04:
+ cmp r0, #8
+ blo _02257F0E
+ strb r1, [r5, r3]
+ sub r0, #8
+ b _02257F12
+_02257F0E:
+ strb r0, [r5, r3]
+ b _02257F18
+_02257F12:
+ add r3, r3, #1
+ cmp r3, r4
+ blt _02257F04
+_02257F18:
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02257F20
+MOD11_02257F20: ; 0x02257F20
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ lsl r0, r3, #0x1b
+ add r5, r2, #0
+ lsr r6, r0, #0x18
+ sub r4, r7, r1
+ bpl _02257F32
+ mov r4, #0
+ b _02257F38
+_02257F32:
+ cmp r4, r5
+ ble _02257F38
+ add r4, r5, #0
+_02257F38:
+ add r0, r7, #0
+ mul r0, r6
+ add r1, r5, #0
+ bl _s32_div_f
+ add r7, r0, #0
+ add r0, r4, #0
+ mul r0, r6
+ add r1, r5, #0
+ bl _s32_div_f
+ lsl r1, r7, #0x18
+ lsl r0, r0, #0x18
+ asr r1, r1, #0x18
+ asr r0, r0, #0x18
+ sub r0, r1, r0
+ bl abs
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02257F60
+MOD11_02257F60: ; 0x02257F60
+ ldr r1, _02257F68 ; =0x0225ECE8
+ lsl r0, r0, #5
+ add r0, r1, r0
+ bx lr
+ .align 2, 0
+_02257F68: .word 0x0225ECE8
+
+ thumb_func_start MOD11_02257F6C
+MOD11_02257F6C: ; 0x02257F6C
+ push {r3, lr}
+ cmp r0, #5
+ bhi _02257FB8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02257F7E: ; jump table
+ .short _02257F8A - _02257F7E - 2 ; case 0
+ .short _02257FA4 - _02257F7E - 2 ; case 1
+ .short _02257FA8 - _02257F7E - 2 ; case 2
+ .short _02257FAC - _02257F7E - 2 ; case 3
+ .short _02257FB0 - _02257F7E - 2 ; case 4
+ .short _02257FB4 - _02257F7E - 2 ; case 5
+_02257F8A:
+ mov r0, #2
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _02257F96
+ mov r0, #7
+ pop {r3, pc}
+_02257F96:
+ mov r0, #0x20
+ tst r0, r1
+ beq _02257FA0
+ mov r0, #6
+ pop {r3, pc}
+_02257FA0:
+ mov r0, #0
+ pop {r3, pc}
+_02257FA4:
+ mov r0, #1
+ pop {r3, pc}
+_02257FA8:
+ mov r0, #2
+ pop {r3, pc}
+_02257FAC:
+ mov r0, #3
+ pop {r3, pc}
+_02257FB0:
+ mov r0, #4
+ pop {r3, pc}
+_02257FB4:
+ mov r0, #5
+ pop {r3, pc}
+_02257FB8:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02257FC0
+MOD11_02257FC0: ; 0x02257FC0
+ push {r3, lr}
+ cmp r0, #7
+ bhi _02257FFE
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02257FD2: ; jump table
+ .short _02257FE2 - _02257FD2 - 2 ; case 0
+ .short _02257FE6 - _02257FD2 - 2 ; case 1
+ .short _02257FEA - _02257FD2 - 2 ; case 2
+ .short _02257FEE - _02257FD2 - 2 ; case 3
+ .short _02257FF2 - _02257FD2 - 2 ; case 4
+ .short _02257FF6 - _02257FD2 - 2 ; case 5
+ .short _02257FFA - _02257FD2 - 2 ; case 6
+ .short _02257FFA - _02257FD2 - 2 ; case 7
+_02257FE2:
+ ldr r0, _02258008 ; =0x0225EBEC
+ pop {r3, pc}
+_02257FE6:
+ ldr r0, _0225800C ; =0x0225EC20
+ pop {r3, pc}
+_02257FEA:
+ ldr r0, _02258010 ; =0x0225EAE8
+ pop {r3, pc}
+_02257FEE:
+ ldr r0, _02258014 ; =0x0225EB1C
+ pop {r3, pc}
+_02257FF2:
+ ldr r0, _02258018 ; =0x0225EB84
+ pop {r3, pc}
+_02257FF6:
+ ldr r0, _0225801C ; =0x0225EC54
+ pop {r3, pc}
+_02257FFA:
+ ldr r0, _02258020 ; =0x0225EBB8
+ pop {r3, pc}
+_02257FFE:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_02258008: .word 0x0225EBEC
+_0225800C: .word 0x0225EC20
+_02258010: .word 0x0225EAE8
+_02258014: .word 0x0225EB1C
+_02258018: .word 0x0225EB84
+_0225801C: .word 0x0225EC54
+_02258020: .word 0x0225EBB8
+
+ thumb_func_start MOD11_02258024
+MOD11_02258024: ; 0x02258024
+ push {r3, lr}
+ cmp r0, #7
+ bhi _0225804E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02258036: ; jump table
+ .short _02258046 - _02258036 - 2 ; case 0
+ .short _0225804A - _02258036 - 2 ; case 1
+ .short _02258046 - _02258036 - 2 ; case 2
+ .short _0225804A - _02258036 - 2 ; case 3
+ .short _02258046 - _02258036 - 2 ; case 4
+ .short _0225804A - _02258036 - 2 ; case 5
+ .short _02258046 - _02258036 - 2 ; case 6
+ .short _02258046 - _02258036 - 2 ; case 7
+_02258046:
+ ldr r0, _02258058 ; =0x0225EB50
+ pop {r3, pc}
+_0225804A:
+ mov r0, #0
+ pop {r3, pc}
+_0225804E:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_02258058: .word 0x0225EB50
+
+ thumb_func_start MOD11_0225805C
+MOD11_0225805C: ; 0x0225805C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0
+ strb r0, [r6]
+ mov r0, #5
+ mov r1, #0xc
+ bl AllocFromHeap
+ mov r1, #0
+ mov r2, #0xc
+ add r4, r0, #0
+ bl MI_CpuFill8
+ mov r2, #0xfa
+ str r5, [r4]
+ ldr r0, _0225808C ; =MOD11_02258090
+ add r1, r4, #0
+ lsl r2, r2, #2
+ str r6, [r4, #4]
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ nop
+_0225808C: .word MOD11_02258090
+
+ thumb_func_start MOD11_02258090
+MOD11_02258090: ; 0x02258090
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4]
+ ldr r0, [r0, #0xc]
+ bl MOD11_02230080
+ add r5, r0, #0
+ ldr r0, [r4]
+ ldr r0, [r0, #0xc]
+ bl MOD11_022300CC
+ add r6, r0, #0
+ ldrb r0, [r4, #8]
+ cmp r0, #0
+ beq _022580BC
+ cmp r0, #1
+ beq _022580DA
+ cmp r0, #2
+ beq _02258112
+ b _0225814A
+_022580BC:
+ ldr r1, _02258174 ; =0x00004E27
+ add r0, r5, #0
+ mov r2, #1
+ bl FUN_0200C344
+ add r5, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ ldr r0, [r0, #4]
+ bl FUN_0200C66C
+ strb r5, [r4, #9]
+ ldrb r0, [r4, #8]
+ add r0, r0, #1
+ strb r0, [r4, #8]
+_022580DA:
+ mov r0, #0xa
+ ldrsb r1, [r4, r0]
+ add r1, r1, #4
+ strb r1, [r4, #0xa]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x10
+ blt _022580F2
+ mov r0, #0x10
+ strb r0, [r4, #0xa]
+ ldrb r0, [r4, #8]
+ add r0, r0, #1
+ strb r0, [r4, #8]
+_022580F2:
+ ldrb r0, [r4, #0xa]
+ mov r1, #2
+ mov r3, #1
+ str r0, [sp]
+ ldr r0, _02258178 ; =0x000073A5
+ str r0, [sp, #4]
+ ldrb r2, [r4, #9]
+ add r0, r6, #0
+ lsl r2, r2, #4
+ add r2, #0xf
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_020039E8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02258112:
+ mov r0, #0xa
+ ldrsb r1, [r4, r0]
+ sub r1, r1, #4
+ strb r1, [r4, #0xa]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bgt _0225812A
+ mov r0, #0
+ strb r0, [r4, #0xa]
+ ldrb r0, [r4, #8]
+ add r0, r0, #1
+ strb r0, [r4, #8]
+_0225812A:
+ ldrb r0, [r4, #0xa]
+ mov r1, #2
+ mov r3, #1
+ str r0, [sp]
+ ldr r0, _02258178 ; =0x000073A5
+ str r0, [sp, #4]
+ ldrb r2, [r4, #9]
+ add r0, r6, #0
+ lsl r2, r2, #4
+ add r2, #0xf
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_020039E8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_0225814A:
+ ldr r1, _0225817C ; =0x00004E26
+ add r0, r5, #0
+ mov r2, #1
+ bl FUN_0200C344
+ add r1, r0, #0
+ ldr r0, [r4]
+ ldr r0, [r0, #4]
+ bl FUN_0200C66C
+ ldr r0, [r4, #4]
+ mov r1, #1
+ strb r1, [r0]
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r7, #0
+ bl FUN_0200CAB4
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02258174: .word 0x00004E27
+_02258178: .word 0x000073A5
+_0225817C: .word 0x00004E26
+
+ thumb_func_start MOD11_02258180
+MOD11_02258180: ; 0x02258180
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02258184
+MOD11_02258184: ; 0x02258184
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02258188
+MOD11_02258188: ; 0x02258188
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x50]
+ cmp r0, #0
+ bne _022581A6
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x54
+ strh r1, [r0]
+ ldr r0, _022581A8 ; =MOD11_022581D4
+ ldr r2, _022581AC ; =0x000003F2
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x50]
+_022581A6:
+ pop {r4, pc}
+ .align 2, 0
+_022581A8: .word MOD11_022581D4
+_022581AC: .word 0x000003F2
+
+ thumb_func_start MOD11_022581B0
+MOD11_022581B0: ; 0x022581B0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x50]
+ cmp r0, #0
+ beq _022581C2
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x50]
+_022581C2:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x54
+ strh r1, [r0]
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_022572C8
+ pop {r4, pc}
+
+ thumb_func_start MOD11_022581D4
+MOD11_022581D4: ; 0x022581D4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r1, #0x54
+ ldrh r2, [r1]
+ add r1, r4, #0
+ add r1, #0x54
+ add r2, #0x14
+ strh r2, [r1]
+ add r1, r4, #0
+ add r1, #0x54
+ ldrh r2, [r1]
+ mov r1, #0x5a
+ add r0, r4, #0
+ lsl r1, r1, #2
+ add r0, #0x54
+ cmp r2, r1
+ blo _022581FC
+ ldrh r2, [r0]
+ sub r1, r2, r1
+ strh r1, [r0]
+_022581FC:
+ add r0, r4, #0
+ add r0, #0x54
+ ldrh r0, [r0]
+ bl Sin
+ mov r2, #6
+ asr r1, r0, #0x1f
+ lsl r2, r2, #0xa
+ mov r3, #0
+ bl _ll_mul
+ mov r2, #2
+ add r3, r0, #0
+ add r5, r1, #0
+ mov r1, #0
+ lsl r2, r2, #0xa
+ add r0, r4, #0
+ add r3, r3, r2
+ adc r5, r1
+ lsl r2, r5, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r2
+ asr r2, r3, #0xb
+ lsr r2, r2, #0x14
+ add r2, r3, r2
+ asr r2, r2, #0xc
+ bl MOD11_022572C8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02258238
+MOD11_02258238: ; 0x02258238
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ bl MOD11_02230078
+ str r0, [sp, #0x20]
+ ldr r0, [r5, #4]
+ bl MOD11_02230080
+ add r7, r0, #0
+ ldr r0, [r5, #4]
+ bl MOD11_02230C68
+ add r6, r0, #0
+ ldrb r0, [r5, #8]
+ cmp r0, #0
+ ldrb r0, [r5, #9]
+ bne _02258274
+ lsl r1, r0, #1
+ ldr r0, _02258320 ; =0x0225F5C0
+ ldrh r3, [r0, r1]
+ ldr r0, _02258324 ; =0x00004E2D
+ mov r1, #0x58
+ str r1, [sp, #0x1c]
+ add r4, r0, #0
+ mov r1, #0x59
+ sub r4, #8
+ str r1, [sp, #0x18]
+ b _02258288
+_02258274:
+ lsl r1, r0, #1
+ ldr r0, _02258328 ; =0x0225F5A8
+ ldrh r3, [r0, r1]
+ ldr r0, _0225832C ; =0x00004E2E
+ mov r1, #0x5b
+ str r1, [sp, #0x1c]
+ add r4, r0, #0
+ mov r1, #0x5c
+ sub r4, #8
+ str r1, [sp, #0x18]
+_02258288:
+ mov r1, #1
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x20]
+ add r1, r7, #0
+ mov r2, #0x1b
+ bl FUN_0200C00C
+ ldr r0, [r5, #4]
+ bl MOD11_022300CC
+ mov r1, #0x1b
+ str r1, [sp]
+ ldrb r1, [r5, #9]
+ mov r2, #6
+ add r3, r1, #0
+ mul r3, r2
+ ldr r2, _02258330 ; =0x0225F5D8
+ lsl r1, r6, #1
+ add r2, r2, r3
+ ldrh r1, [r1, r2]
+ ldr r2, [sp, #0x20]
+ add r3, r7, #0
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ mov r1, #1
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ ldr r1, _02258334 ; =0x00004E29
+ str r1, [sp, #0x14]
+ mov r1, #2
+ bl FUN_0200C0DC
+ ldr r0, [r5, #4]
+ bl MOD11_022300CC
+ mov r1, #0
+ str r1, [sp]
+ mov r1, #0x20
+ str r1, [sp, #4]
+ mov r1, #0x70
+ str r1, [sp, #8]
+ ldrb r2, [r5, #9]
+ mov r3, #6
+ lsl r5, r6, #1
+ mul r3, r2
+ ldr r2, _02258330 ; =0x0225F5D8
+ mov r1, #0x1b
+ add r2, r2, r3
+ ldrh r2, [r5, r2]
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, [sp, #0x20]
+ ldr r3, [sp, #0x1c]
+ add r1, r7, #0
+ mov r2, #0x1b
+ str r4, [sp, #4]
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, [sp, #0x20]
+ ldr r3, [sp, #0x18]
+ add r1, r7, #0
+ mov r2, #0x1b
+ str r4, [sp, #4]
+ bl FUN_0200C13C
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02258320: .word 0x0225F5C0
+_02258324: .word 0x00004E2D
+_02258328: .word 0x0225F5A8
+_0225832C: .word 0x00004E2E
+_02258330: .word 0x0225F5D8
+_02258334: .word 0x00004E29
+
+ thumb_func_start MOD11_02258338
+MOD11_02258338: ; 0x02258338
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD11_02230078
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD11_02230080
+ add r1, r0, #0
+ add r0, r5, #0
+ ldrb r3, [r4, #8]
+ mov r2, #0x34
+ ldr r5, _02258368 ; =0x0225F61C
+ mul r2, r3
+ add r2, r5, r2
+ bl FUN_0200C154
+ str r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ pop {r3, r4, r5, pc}
+ nop
+_02258368: .word 0x0225F61C
+
+ thumb_func_start MOD11_0225836C
+MOD11_0225836C: ; 0x0225836C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0225837E
+ bl FUN_0200C3DC
+ mov r0, #0
+ str r0, [r4]
+_0225837E:
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02258380
+MOD11_02258380: ; 0x02258380
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ bl MOD11_02230080
+ add r4, r0, #0
+ ldrb r0, [r5, #8]
+ cmp r0, #0
+ bne _02258396
+ ldr r1, _022583BC ; =0x00004E2D
+ b _02258398
+_02258396:
+ ldr r1, _022583C0 ; =0x00004E2E
+_02258398:
+ add r5, r1, #0
+ add r0, r4, #0
+ sub r5, #8
+ bl FUN_0200C358
+ ldr r1, _022583C4 ; =0x00004E29
+ add r0, r4, #0
+ bl FUN_0200C368
+ add r0, r4, #0
+ add r1, r5, #0
+ bl FUN_0200C378
+ add r0, r4, #0
+ add r1, r5, #0
+ bl FUN_0200C388
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022583BC: .word 0x00004E2D
+_022583C0: .word 0x00004E2E
+_022583C4: .word 0x00004E29
+
+ thumb_func_start MOD11_022583C8
+MOD11_022583C8: ; 0x022583C8
+ push {r3, lr}
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022583D4
+ bl FUN_0200C644
+_022583D4:
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022583D8
+MOD11_022583D8: ; 0x022583D8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ mov r0, #0
+ add r1, r5, #0
+ mov r2, #0x10
+ add r7, r3, #0
+ bl MIi_CpuClearFast
+ str r4, [r5, #4]
+ strb r6, [r5, #8]
+ strb r7, [r5, #9]
+ cmp r7, #0xc
+ blt _022583FE
+ bl ErrorHandling
+ mov r0, #0
+ strb r0, [r5, #9]
+_022583FE:
+ add r0, r5, #0
+ bl MOD11_02258238
+ add r0, r5, #0
+ bl MOD11_02258338
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0225840C
+MOD11_0225840C: ; 0x0225840C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_0225836C
+ add r0, r4, #0
+ bl MOD11_02258380
+ mov r0, #0
+ add r1, r4, #0
+ mov r2, #0x10
+ bl MIi_CpuClearFast
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02258428
+MOD11_02258428: ; 0x02258428
+ push {r4, lr}
+ mov r1, #7
+ mov r0, #5
+ lsl r1, r1, #8
+ bl AllocFromHeap
+ mov r2, #7
+ mov r1, #0
+ lsl r2, r2, #8
+ add r4, r0, #0
+ bl MI_CpuFill8
+ mov r1, #0
+ ldr r0, _0225844C ; =0x0000069F
+ mvn r1, r1
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+_0225844C: .word 0x0000069F
+
+ thumb_func_start MOD11_02258450
+MOD11_02258450: ; 0x02258450
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ ldr r6, _022584A4 ; =0x0225F97C
+ add r5, r0, #0
+ add r7, r4, #0
+_0225845A:
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r2, r6, #0
+ add r3, r7, #0
+ bl FUN_02016C18
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ ldr r2, _022584A8 ; =0x000002FF
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl FUN_02018768
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ mov r2, #0
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r4, r4, #1
+ add r6, #0x1c
+ cmp r4, #4
+ blo _0225845A
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022584A4: .word 0x0225F97C
+_022584A8: .word 0x000002FF
+
+ thumb_func_start MOD11_022584AC
+MOD11_022584AC: ; 0x022584AC
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_022584B4:
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r6, #0
+ bl FUN_0201797C
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178A0
+ add r4, r4, #1
+ cmp r4, #4
+ blo _022584B4
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_022584D4
+MOD11_022584D4: ; 0x022584D4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ add r5, r1, #0
+ bl MOD11_02258428
+ add r6, r0, #0
+ ldr r0, _0225863C ; =0x000006A1
+ str r4, [r6]
+ strb r5, [r6, r0]
+ add r0, r4, #0
+ bl MOD11_022300CC
+ str r0, [sp, #0x10]
+ mov r0, #0xd
+ mov r1, #5
+ bl FUN_02011744
+ ldr r2, _02258640 ; =0x000004C8
+ add r1, r6, #0
+ str r0, [r6, r2]
+ ldr r0, _02258644 ; =MOD11_0225B794
+ add r2, #0x56
+ bl FUN_0200CA44
+ ldr r1, _02258648 ; =0x000006AC
+ mov r7, #2
+ str r0, [r6, r1]
+ mov r4, #0
+ lsl r7, r7, #0xa
+ b _0225854E
+_02258512:
+ mov r0, #5
+ add r1, r7, #0
+ bl AllocFromHeap
+ lsl r1, r4, #2
+ add r1, r6, r1
+ str r0, [r1, #0x3c]
+ mov r0, #5
+ str r0, [sp]
+ ldr r1, _0225864C ; =0x0225F6FC
+ lsl r2, r4, #1
+ ldrh r1, [r1, r2]
+ mov r0, #7
+ mov r2, #1
+ add r3, sp, #0x18
+ bl FUN_02006BDC
+ add r5, r0, #0
+ lsl r0, r4, #2
+ add r0, r6, r0
+ ldr r1, [r0, #0x3c]
+ ldr r0, [sp, #0x18]
+ add r2, r7, #0
+ add r0, #0xc
+ bl MIi_CpuCopy32
+ add r0, r5, #0
+ bl FreeToHeap
+ add r4, r4, #1
+_0225854E:
+ cmp r4, #7
+ blt _02258512
+ mov r1, #2
+ mov r0, #5
+ lsl r1, r1, #8
+ bl AllocFromHeap
+ str r0, [r6, #0x58]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x10]
+ mov r1, #7
+ mov r2, #0xc3
+ mov r3, #5
+ bl FUN_020030E8
+ ldr r0, [sp, #0x10]
+ mov r1, #1
+ bl FUN_020031FC
+ mov r2, #2
+ ldr r1, [r6, #0x58]
+ lsl r2, r2, #8
+ bl MIi_CpuCopy16
+ add r5, r6, #0
+ mov r7, #0x46
+ mov r4, #0
+ add r5, #0x68
+ lsl r7, r7, #2
+ b _022585A2
+_02258592:
+ add r0, r4, #0
+ mul r0, r7
+ add r0, r5, r0
+ mov r1, #0xff
+ mov r2, #0x18
+ bl MI_CpuFill8
+ add r4, r4, #1
+_022585A2:
+ cmp r4, #4
+ blt _02258592
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r7, #6
+ b _022585DE
+_022585AE:
+ mov r0, #0x46
+ ldr r1, [sp, #0xc]
+ lsl r0, r0, #2
+ mul r0, r1
+ mov r5, #0
+ add r4, r6, r0
+ b _022585D4
+_022585BC:
+ add r0, r7, #0
+ bl FUN_020799E8
+ add r1, r0, #0
+ mov r0, #5
+ bl AllocFromHeap
+ lsl r1, r5, #2
+ add r1, r4, r1
+ add r1, #0x80
+ str r0, [r1]
+ add r5, r5, #1
+_022585D4:
+ cmp r5, #4
+ blt _022585BC
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+_022585DE:
+ ldr r0, [sp, #0xc]
+ cmp r0, #4
+ blt _022585AE
+ mov r0, #5
+ mov r1, #0x20
+ bl AllocFromHeap
+ str r0, [r6, #0x5c]
+ mov r0, #5
+ mov r1, #0x20
+ bl AllocFromHeap
+ str r0, [r6, #0x60]
+ ldr r1, [r6, #0x5c]
+ ldr r0, [r6, #0x58]
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+ mov r0, #7
+ mov r1, #0xca
+ add r2, sp, #0x14
+ mov r3, #5
+ bl FUN_02006C08
+ add r4, r0, #0
+ ldr r0, [sp, #0x14]
+ ldr r1, [r6, #0x60]
+ ldr r0, [r0, #0xc]
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+ add r0, r4, #0
+ bl FreeToHeap
+ bl FUN_02002BE4
+ bl FUN_02002C04
+ ldr r0, _02258650 ; =MOD11_0225B824
+ ldr r2, _02258654 ; =0x0000D6D8
+ add r1, r6, #0
+ bl FUN_0200CA44
+ str r0, [r6, #0x64]
+ add r0, r6, #0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225863C: .word 0x000006A1
+_02258640: .word 0x000004C8
+_02258644: .word MOD11_0225B794
+_02258648: .word 0x000006AC
+_0225864C: .word 0x0225F6FC
+_02258650: .word MOD11_0225B824
+_02258654: .word 0x0000D6D8
+
+ thumb_func_start MOD11_02258658
+MOD11_02258658: ; 0x02258658
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl MOD11_0225ACB0
+ add r0, r6, #0
+ bl MOD11_02258B10
+ add r0, r6, #0
+ bl MOD11_022587A8
+ ldr r0, _022586B4 ; =0x000004C8
+ ldr r0, [r6, r0]
+ bl FUN_020117BC
+ ldr r0, _022586B8 ; =0x000006AC
+ ldr r0, [r6, r0]
+ bl FUN_0200CAB4
+ mov r4, #0
+ add r5, r6, #0
+_02258680:
+ ldr r0, [r5, #0x3c]
+ bl FreeToHeap
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #7
+ blt _02258680
+ ldr r0, [r6, #0x58]
+ bl FreeToHeap
+ add r0, r6, #0
+ bl MOD11_0225A6B0
+ ldr r0, [r6, #0x5c]
+ bl FreeToHeap
+ ldr r0, [r6, #0x60]
+ bl FreeToHeap
+ ldr r0, [r6, #0x64]
+ bl FUN_0200CAB4
+ add r0, r6, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022586B4: .word 0x000004C8
+_022586B8: .word 0x000006AC
+
+ thumb_func_start MOD11_022586BC
+MOD11_022586BC: ; 0x022586BC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r7, r0, #0
+ ldr r0, [r7]
+ bl MOD11_02230078
+ add r6, r0, #0
+ ldr r0, [r7]
+ bl MOD11_02230080
+ add r4, r0, #0
+ ldr r0, [r7]
+ bl MOD11_0222FF68
+ add r5, r0, #0
+ ldr r0, [r7]
+ bl MOD11_022300CC
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #5
+ str r0, [sp, #0xc]
+ mov r0, #7
+ mov r1, #0x11
+ add r2, r5, #0
+ mov r3, #4
+ bl FUN_0200687C
+ ldr r2, _02258790 ; =0x00004E2D
+ add r0, r6, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl FUN_0206E1D4
+ ldr r0, [r7]
+ bl MOD11_022300CC
+ mov r1, #2
+ str r1, [sp]
+ ldr r1, _02258794 ; =0x00004E30
+ add r2, r6, #0
+ str r1, [sp, #4]
+ mov r1, #3
+ add r3, r4, #0
+ bl FUN_0206E198
+ mov r5, #0
+_02258726:
+ ldr r0, _02258798 ; =0x00004E35
+ add r1, r4, #0
+ add r0, r5, r0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r2, #2
+ mov r3, #0
+ bl FUN_0206E130
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02258726
+ ldr r0, [r7]
+ bl MOD11_0222FF74
+ mov r1, #1
+ lsl r1, r1, #0xa
+ tst r0, r1
+ beq _0225878C
+ ldr r0, _0225879C ; =0x00004E40
+ ldr r3, _022587A0 ; =0x00004FB2
+ str r0, [sp]
+ add r0, r3, #0
+ str r3, [sp, #4]
+ sub r0, #0xb
+ str r0, [sp, #8]
+ ldr r2, [sp, #0x14]
+ add r0, r6, #0
+ add r1, r4, #0
+ add r3, r3, #6
+ bl MOD11_0225D6A4
+ ldr r0, _0225879C ; =0x00004E40
+ ldr r3, _022587A0 ; =0x00004FB2
+ str r0, [sp]
+ add r0, r3, #0
+ str r3, [sp, #4]
+ sub r0, #0xb
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ add r0, r6, #0
+ add r1, r4, #0
+ mov r2, #5
+ add r3, r3, #6
+ bl MOD11_0225D73C
+ ldr r1, _022587A4 ; =0x000006F8
+ str r0, [r7, r1]
+_0225878C:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02258790: .word 0x00004E2D
+_02258794: .word 0x00004E30
+_02258798: .word 0x00004E35
+_0225879C: .word 0x00004E40
+_022587A0: .word 0x00004FB2
+_022587A4: .word 0x000006F8
+
+ thumb_func_start MOD11_022587A8
+MOD11_022587A8: ; 0x022587A8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r0, [r7]
+ bl MOD11_02230078
+ ldr r0, [r7]
+ bl MOD11_02230080
+ ldr r6, _02258808 ; =0x00004E35
+ add r5, r0, #0
+ mov r4, #0
+_022587BE:
+ add r0, r5, #0
+ add r1, r4, r6
+ bl FUN_0206E21C
+ add r4, r4, #1
+ cmp r4, #4
+ blt _022587BE
+ ldr r1, _0225880C ; =0x00004E30
+ add r0, r5, #0
+ bl FUN_0206E224
+ ldr r1, _02258810 ; =0x00004E2D
+ add r0, r5, #0
+ add r2, r1, #0
+ bl FUN_0206E22C
+ ldr r0, [r7]
+ bl MOD11_0222FF74
+ mov r1, #1
+ lsl r1, r1, #0xa
+ tst r0, r1
+ beq _02258806
+ ldr r0, _02258814 ; =0x000006F8
+ ldr r0, [r7, r0]
+ bl MOD11_0225D7B8
+ ldr r3, _02258818 ; =0x00004FA7
+ ldr r2, _0225881C ; =0x00004E40
+ add r1, r3, #0
+ str r3, [sp]
+ add r0, r5, #0
+ add r1, #0x11
+ add r3, #0xb
+ bl MOD11_0225D714
+_02258806:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02258808: .word 0x00004E35
+_0225880C: .word 0x00004E30
+_02258810: .word 0x00004E2D
+_02258814: .word 0x000006F8
+_02258818: .word 0x00004FA7
+_0225881C: .word 0x00004E40
+
+ thumb_func_start MOD11_02258820
+MOD11_02258820: ; 0x02258820
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r7, r0, #0
+ str r1, [sp, #0x18]
+ str r2, [sp, #0x1c]
+ cmp r3, #0
+ beq _0225883A
+ add r1, r7, #0
+ add r0, r3, #0
+ add r1, #0x18
+ mov r2, #0x22
+ bl MI_CpuCopy8
+_0225883A:
+ ldr r0, _0225893C ; =0x000006A2
+ mov r1, #0
+ strb r1, [r7, r0]
+ ldr r0, [r7]
+ bl MOD11_0222FF68
+ str r0, [sp, #0x28]
+ ldr r0, [r7]
+ bl MOD11_02230078
+ str r0, [sp, #0x24]
+ ldr r0, [r7]
+ bl MOD11_02230080
+ str r0, [sp, #0x20]
+ ldr r0, _02258940 ; =0x0000069F
+ ldrsb r2, [r7, r0]
+ mov r0, #0
+ mvn r0, r0
+ cmp r2, r0
+ bne _0225886C
+ mov r0, #1
+ str r0, [sp, #0x1c]
+ mov r5, #0
+ b _02258874
+_0225886C:
+ mov r0, #0x30
+ ldr r1, _02258944 ; =0x0225FAAC
+ mul r0, r2
+ add r5, r1, r0
+_02258874:
+ ldr r0, [sp, #0x18]
+ mov r1, #0x30
+ ldr r2, _02258944 ; =0x0225FAAC
+ mul r1, r0
+ add r0, r2, r1
+ str r0, [sp, #0x2c]
+ ldr r0, [r7]
+ bl MOD11_022300CC
+ mov r1, #2
+ lsl r1, r1, #8
+ str r1, [sp]
+ ldr r1, [r7, #0x58]
+ mov r2, #1
+ mov r3, #0
+ bl FUN_02003054
+ ldr r6, [sp, #0x2c]
+ mov r4, #0
+_0225889A:
+ ldrh r2, [r6, #4]
+ ldr r0, _02258948 ; =0x0000FFFF
+ cmp r2, r0
+ beq _022588D0
+ ldr r0, [sp, #0x1c]
+ cmp r0, #1
+ beq _022588AE
+ ldrh r0, [r5, #4]
+ cmp r2, r0
+ beq _022588D0
+_022588AE:
+ lsl r2, r2, #2
+ add r1, r4, #4
+ add r2, r7, r2
+ lsl r1, r1, #0x18
+ mov r3, #2
+ ldr r0, [sp, #0x28]
+ ldr r2, [r2, #0x3c]
+ lsr r1, r1, #0x18
+ lsl r3, r3, #0xa
+ bl FUN_02017DFC
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ ldr r0, [sp, #0x28]
+ lsr r1, r1, #0x18
+ bl FUN_0201AC68
+_022588D0:
+ add r4, r4, #1
+ add r6, r6, #2
+ add r5, r5, #2
+ cmp r4, #4
+ blt _0225889A
+ ldr r0, [r7]
+ bl MOD11_022300CC
+ mov r1, #0x1b
+ str r1, [sp]
+ mov r1, #0x24
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ mov r1, #7
+ str r1, [sp, #0xc]
+ mov r1, #2
+ str r1, [sp, #0x10]
+ ldr r1, _0225894C ; =0x00004E33
+ ldr r2, [sp, #0x24]
+ str r1, [sp, #0x14]
+ ldr r3, [sp, #0x20]
+ mov r1, #3
+ bl FUN_0200C0DC
+ ldr r1, _02258940 ; =0x0000069F
+ ldr r0, [sp, #0x18]
+ mov r2, #0xf
+ strb r0, [r7, r1]
+ mov r0, #4
+ str r0, [sp]
+ ldr r0, _02258950 ; =0x04001050
+ mov r1, #2
+ mov r3, #0x1b
+ bl G2x_SetBlendAlpha_
+ add r0, r7, #0
+ bl MOD11_0225ACB0
+ ldr r0, [sp, #0x2c]
+ ldr r3, [r0, #0x28]
+ cmp r3, #0
+ beq _0225892E
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x1c]
+ add r0, r7, #0
+ blx r3
+_0225892E:
+ ldr r0, _02258954 ; =MOD11_0225B700
+ add r1, r7, #0
+ mov r2, #0xa
+ bl FUN_0200CA98
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225893C: .word 0x000006A2
+_02258940: .word 0x0000069F
+_02258944: .word 0x0225FAAC
+_02258948: .word 0x0000FFFF
+_0225894C: .word 0x00004E33
+_02258950: .word 0x04001050
+_02258954: .word MOD11_0225B700
+
+ thumb_func_start MOD11_02258958
+MOD11_02258958: ; 0x02258958
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ ldr r1, _02258ADC ; =0x000005D4
+ str r0, [sp, #0x14]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _02258970
+ ldr r0, [sp, #0x14]
+ add r1, #0x18
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _02258974
+_02258970:
+ bl ErrorHandling
+_02258974:
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ bl MOD11_02230078
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ bl MOD11_02230080
+ add r7, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _02258AE0 ; =0x00004E33
+ add r1, r7, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x1b
+ mov r3, #0x90
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02258AE4 ; =0x00004E2B
+ add r1, r7, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x1b
+ mov r3, #0x8f
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02258AE4 ; =0x00004E2B
+ add r1, r7, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x1b
+ mov r3, #0x91
+ bl FUN_0200C13C
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _02258AE8 ; =0x00004E34
+ add r1, r7, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x1b
+ mov r3, #0x8d
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02258AEC ; =0x00004E2C
+ add r1, r7, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x1b
+ mov r3, #0x8c
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02258AEC ; =0x00004E2C
+ add r1, r7, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x1b
+ mov r3, #0x8e
+ bl FUN_0200C13C
+ mov r0, #0
+ ldr r4, [sp, #0x14]
+ str r0, [sp, #0x1c]
+ mov r6, #0xc
+ mov r5, #0xf6
+_02258A12:
+ ldr r0, [sp, #0x18]
+ ldr r2, _02258AF0 ; =0x0225F8AC
+ add r1, r7, #0
+ bl FUN_0200C154
+ ldr r1, _02258ADC ; =0x000005D4
+ mov r3, #0x11
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ lsl r1, r6, #0x10
+ ldr r0, [r0]
+ asr r1, r1, #0x10
+ mov r2, #0xd
+ lsl r3, r3, #0x10
+ bl FUN_0200C720
+ ldr r0, _02258ADC ; =0x000005D4
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_0200C840
+ ldr r0, [sp, #0x18]
+ ldr r2, _02258AF4 ; =0x0225F8E0
+ add r1, r7, #0
+ bl FUN_0200C154
+ ldr r1, _02258AF8 ; =0x000005EC
+ mov r3, #0x11
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ lsl r1, r5, #0x10
+ ldr r0, [r0]
+ asr r1, r1, #0x10
+ mov r2, #9
+ lsl r3, r3, #0x10
+ bl FUN_0200C720
+ ldr r0, [sp, #0x1c]
+ add r4, r4, #4
+ add r0, r0, #1
+ add r6, #0x13
+ sub r5, #0xc
+ str r0, [sp, #0x1c]
+ cmp r0, #6
+ blt _02258A12
+ ldr r0, [sp, #0x14]
+ bl MOD11_02258E30
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ beq _02258A82
+ bl ErrorHandling
+_02258A82:
+ ldr r0, _02258AFC ; =MOD11_02258BE0
+ ldr r1, [sp, #0x14]
+ ldr r2, _02258B00 ; =0x00000514
+ bl FUN_0200CA44
+ ldr r1, [sp, #0x14]
+ str r0, [r1, #4]
+ add r0, r1, #0
+ ldr r0, [r0]
+ bl MOD11_022300CC
+ add r2, r0, #0
+ ldr r0, _02258B04 ; =0x00004E3F
+ ldr r3, _02258B08 ; =0x00004FB1
+ str r0, [sp]
+ add r0, r3, #0
+ str r3, [sp, #4]
+ sub r0, #0xb
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x18]
+ add r1, r7, #0
+ add r3, r3, #6
+ bl MOD11_0225D3EC
+ ldr r0, _02258B04 ; =0x00004E3F
+ ldr r3, _02258B08 ; =0x00004FB1
+ str r0, [sp]
+ add r0, r3, #0
+ str r3, [sp, #4]
+ sub r0, #0xb
+ str r0, [sp, #8]
+ mov r2, #5
+ str r2, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x18]
+ add r1, r7, #0
+ add r3, r3, #6
+ bl MOD11_0225D484
+ ldr r2, _02258B0C ; =0x000006EC
+ ldr r1, [sp, #0x14]
+ str r0, [r1, r2]
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02258ADC: .word 0x000005D4
+_02258AE0: .word 0x00004E33
+_02258AE4: .word 0x00004E2B
+_02258AE8: .word 0x00004E34
+_02258AEC: .word 0x00004E2C
+_02258AF0: .word 0x0225F8AC
+_02258AF4: .word 0x0225F8E0
+_02258AF8: .word 0x000005EC
+_02258AFC: .word MOD11_02258BE0
+_02258B00: .word 0x00000514
+_02258B04: .word 0x00004E3F
+_02258B08: .word 0x00004FB1
+_02258B0C: .word 0x000006EC
+
+ thumb_func_start MOD11_02258B10
+MOD11_02258B10: ; 0x02258B10
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, _02258BBC ; =0x000005D4
+ ldr r1, [r6, r0]
+ cmp r1, #0
+ beq _02258B24
+ add r0, #0x18
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ bne _02258B28
+_02258B24:
+ bl ErrorHandling
+_02258B28:
+ ldr r0, [r6]
+ bl MOD11_02230078
+ ldr r0, [r6]
+ bl MOD11_02230080
+ ldr r1, _02258BC0 ; =0x00004E33
+ add r7, r0, #0
+ bl FUN_0200C358
+ ldr r1, _02258BC4 ; =0x00004E2B
+ add r0, r7, #0
+ bl FUN_0200C378
+ ldr r1, _02258BC4 ; =0x00004E2B
+ add r0, r7, #0
+ bl FUN_0200C388
+ ldr r1, _02258BC8 ; =0x00004E34
+ add r0, r7, #0
+ bl FUN_0200C358
+ ldr r1, _02258BCC ; =0x00004E2C
+ add r0, r7, #0
+ bl FUN_0200C378
+ ldr r1, _02258BCC ; =0x00004E2C
+ add r0, r7, #0
+ bl FUN_0200C388
+ ldr r1, _02258BC0 ; =0x00004E33
+ add r0, r7, #0
+ bl FUN_0200C368
+ mov r4, #0
+ add r5, r6, #0
+_02258B70:
+ ldr r0, _02258BBC ; =0x000005D4
+ ldr r0, [r5, r0]
+ bl FUN_0200C3DC
+ ldr r0, _02258BBC ; =0x000005D4
+ mov r1, #0
+ str r1, [r5, r0]
+ add r0, #0x18
+ ldr r0, [r5, r0]
+ bl FUN_0200C3DC
+ ldr r0, _02258BD0 ; =0x000005EC
+ mov r1, #0
+ str r1, [r5, r0]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02258B70
+ ldr r0, [r6, #4]
+ bl FUN_0200CAB4
+ ldr r3, _02258BD4 ; =0x00004FA6
+ mov r0, #0
+ str r0, [r6, #4]
+ add r1, r3, #0
+ str r3, [sp]
+ ldr r2, _02258BD8 ; =0x00004E3F
+ add r0, r7, #0
+ add r1, #0x11
+ add r3, #0xb
+ bl MOD11_0225D45C
+ ldr r0, _02258BDC ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D508
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02258BBC: .word 0x000005D4
+_02258BC0: .word 0x00004E33
+_02258BC4: .word 0x00004E2B
+_02258BC8: .word 0x00004E34
+_02258BCC: .word 0x00004E2C
+_02258BD0: .word 0x000005EC
+_02258BD4: .word 0x00004FA6
+_02258BD8: .word 0x00004E3F
+_02258BDC: .word 0x000006EC
+
+ thumb_func_start MOD11_02258BE0
+MOD11_02258BE0: ; 0x02258BE0
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r0, _02258D54 ; =0x00000644
+ add r5, r1, #0
+ mov r7, #0
+ add r4, r5, r0
+ mov r6, #0xc
+_02258BEC:
+ ldrb r0, [r4, #3]
+ cmp r0, #4
+ bhi _02258C08
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02258BFE: ; jump table
+ .short _02258C08 - _02258BFE - 2 ; case 0
+ .short _02258C48 - _02258BFE - 2 ; case 1
+ .short _02258C5A - _02258BFE - 2 ; case 2
+ .short _02258CF2 - _02258BFE - 2 ; case 3
+ .short _02258C5A - _02258BFE - 2 ; case 4
+_02258C08:
+ ldr r0, _02258D58 ; =0x000005D4
+ ldr r0, [r5, r0]
+ ldr r0, [r0]
+ bl FUN_0200C650
+ cmp r0, #0
+ beq _02258C1C
+ ldrb r0, [r4, #2]
+ cmp r0, #0x57
+ bhs _02258C1E
+_02258C1C:
+ b _02258D42
+_02258C1E:
+ mov r0, #0
+ strb r0, [r4, #4]
+ mov r0, #0xa
+ strb r0, [r4, #5]
+ bl LCRandom
+ lsr r1, r0, #0x1f
+ lsl r3, r0, #0x1d
+ ldrb r2, [r4, #5]
+ sub r3, r3, r1
+ mov r0, #0x1d
+ ror r3, r0
+ add r0, r1, r3
+ add r0, r2, r0
+ strb r0, [r4, #5]
+ mov r0, #2
+ strb r0, [r4, #7]
+ ldrb r0, [r4, #3]
+ add r0, r0, #1
+ strb r0, [r4, #3]
+ b _02258D42
+_02258C48:
+ ldrb r1, [r4, #5]
+ cmp r1, #0
+ beq _02258C54
+ sub r0, r1, #1
+ strb r0, [r4, #5]
+ b _02258D42
+_02258C54:
+ add r0, r0, #1
+ strb r0, [r4, #3]
+ b _02258D42
+_02258C5A:
+ ldr r0, _02258D58 ; =0x000005D4
+ mov r1, #2
+ ldr r0, [r5, r0]
+ lsl r1, r1, #0xa
+ bl FUN_0200C8BC
+ mov r0, #0
+ ldrsh r1, [r4, r0]
+ mov r0, #6
+ lsl r0, r0, #6
+ add r0, r1, r0
+ strh r0, [r4]
+ mov r1, #0
+ ldrsh r1, [r4, r1]
+ ldr r0, _02258D58 ; =0x000005D4
+ mov r3, #0x11
+ asr r2, r1, #7
+ lsr r2, r2, #0x18
+ add r2, r1, r2
+ asr r1, r2, #8
+ add r1, r1, r6
+ lsl r1, r1, #0x10
+ ldr r0, [r5, r0]
+ asr r1, r1, #0x10
+ mov r2, #0xd
+ lsl r3, r3, #0x10
+ bl FUN_0200C750
+ ldrb r0, [r4, #6]
+ add r0, r0, #1
+ strb r0, [r4, #6]
+ ldrb r1, [r4, #6]
+ ldrb r0, [r4, #7]
+ cmp r1, r0
+ blo _02258D42
+ mov r0, #0
+ strb r0, [r4, #6]
+ ldrb r0, [r4, #3]
+ cmp r0, #2
+ bne _02258CB0
+ add r0, r0, #1
+ strb r0, [r4, #3]
+ b _02258D42
+_02258CB0:
+ ldr r0, _02258D58 ; =0x000005D4
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200C898
+ ldr r0, _02258D58 ; =0x000005D4
+ lsl r1, r6, #0x10
+ mov r3, #0x11
+ ldr r0, [r5, r0]
+ asr r1, r1, #0x10
+ mov r2, #0xd
+ lsl r3, r3, #0x10
+ bl FUN_0200C750
+ mov r0, #0
+ strh r0, [r4]
+ ldrb r0, [r4, #8]
+ cmp r0, #1
+ bhs _02258CEA
+ add r0, r0, #1
+ strb r0, [r4, #8]
+ ldrb r0, [r4, #7]
+ cmp r0, #1
+ bls _02258CE4
+ sub r0, r0, #1
+ strb r0, [r4, #7]
+_02258CE4:
+ mov r0, #2
+ strb r0, [r4, #3]
+ b _02258D42
+_02258CEA:
+ mov r0, #0
+ strb r0, [r4, #8]
+ strb r0, [r4, #3]
+ b _02258D42
+_02258CF2:
+ ldr r0, _02258D58 ; =0x000005D4
+ ldr r1, _02258D5C ; =0xFFFFF800
+ ldr r0, [r5, r0]
+ bl FUN_0200C8BC
+ mov r0, #0
+ ldrsh r1, [r4, r0]
+ mov r0, #6
+ lsl r0, r0, #6
+ sub r0, r1, r0
+ strh r0, [r4]
+ mov r1, #0
+ ldrsh r1, [r4, r1]
+ ldr r0, _02258D58 ; =0x000005D4
+ mov r3, #0x11
+ asr r2, r1, #7
+ lsr r2, r2, #0x18
+ add r2, r1, r2
+ asr r1, r2, #8
+ add r1, r1, r6
+ lsl r1, r1, #0x10
+ ldr r0, [r5, r0]
+ asr r1, r1, #0x10
+ mov r2, #0xd
+ lsl r3, r3, #0x10
+ bl FUN_0200C750
+ ldrb r0, [r4, #6]
+ add r0, r0, #1
+ strb r0, [r4, #6]
+ ldrb r1, [r4, #7]
+ ldrb r0, [r4, #6]
+ lsl r1, r1, #1
+ cmp r0, r1
+ blt _02258D42
+ mov r0, #0
+ strb r0, [r4, #6]
+ ldrb r0, [r4, #3]
+ add r0, r0, #1
+ strb r0, [r4, #3]
+_02258D42:
+ add r7, r7, #1
+ add r4, #0xa
+ add r5, r5, #4
+ add r6, #0x13
+ cmp r7, #6
+ bge _02258D50
+ b _02258BEC
+_02258D50:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02258D54: .word 0x00000644
+_02258D58: .word 0x000005D4
+_02258D5C: .word 0xFFFFF800
+
+ thumb_func_start MOD11_02258D60
+MOD11_02258D60: ; 0x02258D60
+ push {r3, r4}
+ ldr r2, _02258D78 ; =0x00000646
+ mov r4, #0
+_02258D66:
+ ldrb r3, [r1, r4]
+ add r4, r4, #1
+ strb r3, [r0, r2]
+ add r0, #0xa
+ cmp r4, #6
+ blt _02258D66
+ pop {r3, r4}
+ bx lr
+ nop
+_02258D78: .word 0x00000646
+
+ thumb_func_start MOD11_02258D7C
+MOD11_02258D7C: ; 0x02258D7C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ mov r4, #0
+_02258D86:
+ ldrb r0, [r6, r4]
+ bl MOD11_0225A400
+ add r1, r0, #0
+ ldr r0, _02258DC8 ; =0x000005D4
+ ldr r0, [r5, r0]
+ ldr r0, [r0]
+ bl FUN_02020130
+ ldr r0, _02258DC8 ; =0x000005D4
+ ldr r0, [r5, r0]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldrb r0, [r7, r4]
+ bl MOD11_0225A400
+ add r1, r0, #0
+ ldr r0, _02258DCC ; =0x000005EC
+ ldr r0, [r5, r0]
+ ldr r0, [r0]
+ bl FUN_02020130
+ ldr r0, _02258DCC ; =0x000005EC
+ ldr r0, [r5, r0]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02258D86
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02258DC8: .word 0x000005D4
+_02258DCC: .word 0x000005EC
+
+ thumb_func_start MOD11_02258DD0
+MOD11_02258DD0: ; 0x02258DD0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _02258E28 ; =0x000005D4
+ ldr r1, [r5, r0]
+ cmp r1, #0
+ beq _02258DE4
+ add r0, #0x18
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _02258DE8
+_02258DE4:
+ bl ErrorHandling
+_02258DE8:
+ ldr r7, _02258E28 ; =0x000005D4
+ mov r6, #0
+ add r4, r5, #0
+_02258DEE:
+ ldr r0, [r4, r7]
+ mov r1, #1
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #6
+ blt _02258DEE
+ ldr r0, [r5]
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ beq _02258E24
+ ldr r6, _02258E2C ; =0x000005EC
+ mov r4, #0
+ add r7, r1, #0
+_02258E12:
+ ldr r0, [r5, r6]
+ add r1, r7, #0
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02258E12
+_02258E24:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02258E28: .word 0x000005D4
+_02258E2C: .word 0x000005EC
+
+ thumb_func_start MOD11_02258E30
+MOD11_02258E30: ; 0x02258E30
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _02258E70 ; =0x000005D4
+ ldr r1, [r5, r0]
+ cmp r1, #0
+ beq _02258E44
+ add r0, #0x18
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _02258E48
+_02258E44:
+ bl ErrorHandling
+_02258E48:
+ ldr r7, _02258E70 ; =0x000005D4
+ mov r4, #0
+ add r6, r7, #0
+ add r6, #0x18
+_02258E50:
+ ldr r0, [r5, r7]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ ldr r0, [r5, r6]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02258E50
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02258E70: .word 0x000005D4
+
+ thumb_func_start MOD11_02258E74
+MOD11_02258E74: ; 0x02258E74
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _02258F4C ; =0x0000069F
+ mov r6, #0
+ ldrsb r1, [r5, r0]
+ sub r0, r6, #1
+ cmp r1, r0
+ bne _02258E88
+ bl ErrorHandling
+_02258E88:
+ ldr r0, _02258F4C ; =0x0000069F
+ ldr r3, _02258F50 ; =0x0225FAAC
+ ldrsb r2, [r5, r0]
+ mov r1, #0x30
+ mul r1, r2
+ add r4, r3, r1
+ ldr r1, [r4, #0x14]
+ cmp r1, #0
+ beq _02258EA2
+ add r0, r0, #3
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ bne _02258EA8
+_02258EA2:
+ mov r0, #0
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_02258EA8:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ bne _02258EB2
+ bl ErrorHandling
+_02258EB2:
+ ldr r0, [r5]
+ bl MOD11_0222FF74
+ mov r1, #1
+ lsl r1, r1, #0xa
+ tst r0, r1
+ beq _02258ECA
+ add r0, r5, #0
+ bl MOD11_0225C784
+ add r7, r0, #0
+ b _02258EE4
+_02258ECA:
+ ldr r0, [r4, #0x14]
+ bl FUN_02020988
+ add r7, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r7, r0
+ bne _02258EE4
+ add r0, r5, #0
+ bl MOD11_0225B8B0
+ add r7, r0, #0
+ add r6, r6, #1
+_02258EE4:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp]
+ cmp r7, r0
+ bne _02258EF2
+ mov r2, #0xff
+ b _02258EFE
+_02258EF2:
+ ldr r1, [r4, #0x18]
+ lsl r0, r7, #2
+ ldr r0, [r1, r0]
+ str r0, [sp]
+ ldr r0, [r4, #0x1c]
+ ldrb r2, [r0, r7]
+_02258EFE:
+ ldr r3, [r4, #0x2c]
+ cmp r3, #0
+ beq _02258F46
+ ldr r1, [sp]
+ add r0, r5, #0
+ blx r3
+ mov r1, #0
+ mvn r1, r1
+ str r0, [sp]
+ cmp r0, r1
+ beq _02258F46
+ ldr r2, [r4, #0x24]
+ cmp r2, #0
+ beq _02258F20
+ add r0, r5, #0
+ add r1, r7, #0
+ blx r2
+_02258F20:
+ mov r0, #0x6f
+ lsl r0, r0, #4
+ add r0, r5, r0
+ mov r1, #0
+ mov r2, #4
+ bl MI_CpuFill8
+ ldr r0, _02258F54 ; =0x000006EC
+ ldr r0, [r5, r0]
+ bl MOD11_0225D648
+ cmp r6, #0
+ ldr r0, _02258F58 ; =0x000006F4
+ ble _02258F42
+ mov r1, #1
+ strb r1, [r5, r0]
+ b _02258F46
+_02258F42:
+ mov r1, #0
+ strb r1, [r5, r0]
+_02258F46:
+ ldr r0, [sp]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02258F4C: .word 0x0000069F
+_02258F50: .word 0x0225FAAC
+_02258F54: .word 0x000006EC
+_02258F58: .word 0x000006F4
+
+ thumb_func_start MOD11_02258F5C
+MOD11_02258F5C: ; 0x02258F5C
+ push {r3, lr}
+ ldr r1, [r0, #8]
+ cmp r1, #0
+ bne _02258F7E
+ ldr r1, [r0, #0xc]
+ cmp r1, #0
+ bne _02258F7E
+ ldr r1, _02258F84 ; =0x00000684
+ ldr r1, [r0, r1]
+ cmp r1, #0
+ bne _02258F7E
+ bl MOD11_0225B780
+ cmp r0, #1
+ bne _02258F7E
+ mov r0, #1
+ pop {r3, pc}
+_02258F7E:
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_02258F84: .word 0x00000684
+
+ thumb_func_start MOD11_02258F88
+MOD11_02258F88: ; 0x02258F88
+ push {r3, lr}
+ cmp r0, #0x40
+ bgt _02258FBE
+ bge _02259014
+ cmp r0, #0x10
+ bgt _02258FB8
+ bge _02258FEC
+ cmp r0, #8
+ bhi _02259024
+ add r2, r0, r0
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02258FA6: ; jump table
+ .short _02258FE0 - _02258FA6 - 2 ; case 0
+ .short _02258FEC - _02258FA6 - 2 ; case 1
+ .short _02258FEC - _02258FA6 - 2 ; case 2
+ .short _02259024 - _02258FA6 - 2 ; case 3
+ .short _02258FF8 - _02258FA6 - 2 ; case 4
+ .short _02259024 - _02258FA6 - 2 ; case 5
+ .short _02259024 - _02258FA6 - 2 ; case 6
+ .short _02259024 - _02258FA6 - 2 ; case 7
+ .short _02258FFC - _02258FA6 - 2 ; case 8
+_02258FB8:
+ cmp r0, #0x20
+ beq _0225901C
+ b _02259024
+_02258FBE:
+ mov r2, #1
+ lsl r2, r2, #8
+ cmp r0, r2
+ bgt _02258FCE
+ bge _02259008
+ cmp r0, #0x80
+ beq _02258FF8
+ b _02259024
+_02258FCE:
+ lsl r1, r2, #1
+ cmp r0, r1
+ bgt _02258FD8
+ beq _02259018
+ b _02259024
+_02258FD8:
+ lsl r1, r2, #2
+ cmp r0, r1
+ beq _02259020
+ b _02259024
+_02258FE0:
+ cmp r1, #4
+ bne _02258FE8
+ mov r0, #9
+ pop {r3, pc}
+_02258FE8:
+ mov r0, #8
+ pop {r3, pc}
+_02258FEC:
+ cmp r1, #4
+ bne _02258FF4
+ mov r0, #6
+ pop {r3, pc}
+_02258FF4:
+ mov r0, #4
+ pop {r3, pc}
+_02258FF8:
+ mov r0, #1
+ pop {r3, pc}
+_02258FFC:
+ cmp r1, #4
+ bne _02259004
+ mov r0, #7
+ pop {r3, pc}
+_02259004:
+ mov r0, #2
+ pop {r3, pc}
+_02259008:
+ cmp r1, #4
+ bne _02259010
+ mov r0, #4
+ pop {r3, pc}
+_02259010:
+ mov r0, #6
+ pop {r3, pc}
+_02259014:
+ mov r0, #3
+ pop {r3, pc}
+_02259018:
+ mov r0, #0xa
+ pop {r3, pc}
+_0225901C:
+ mov r0, #5
+ pop {r3, pc}
+_02259020:
+ mov r0, #0xb
+ pop {r3, pc}
+_02259024:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD11_0225902C
+MOD11_0225902C: ; 0x0225902C
+ push {r4, r5}
+ ldr r1, _0225908C ; =0x04001000
+ ldr r2, _02259090 ; =0xFFFF1FFF
+ ldr r3, [r1]
+ add r5, r1, #0
+ and r3, r2
+ lsr r2, r1, #0xd
+ orr r2, r3
+ str r2, [r1]
+ add r5, #0x4a
+ ldrh r4, [r5]
+ mov r3, #0x3f
+ mov r2, #0x1f
+ bic r4, r3
+ orr r2, r4
+ mov r4, #0x20
+ orr r2, r4
+ strh r2, [r5]
+ add r1, #0x48
+ ldrh r5, [r1]
+ mov r2, #0x1b
+ bic r5, r3
+ orr r2, r5
+ orr r2, r4
+ strh r2, [r1]
+ mov r1, #0x6e
+ lsl r1, r1, #4
+ ldr r1, [r0, r1]
+ asr r0, r1, #7
+ lsr r0, r0, #0x18
+ add r0, r1, r0
+ asr r1, r0, #8
+ mov r0, #0xff
+ sub r0, r0, r1
+ bpl _02259074
+ mov r0, #0
+_02259074:
+ lsl r1, r0, #8
+ mov r0, #0xff
+ lsl r0, r0, #8
+ and r1, r0
+ mov r0, #0xff
+ orr r0, r1
+ ldr r1, _02259094 ; =0x04001040
+ strh r0, [r1]
+ mov r0, #0xc0
+ strh r0, [r1, #4]
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_0225908C: .word 0x04001000
+_02259090: .word 0xFFFF1FFF
+_02259094: .word 0x04001040
+
+ thumb_func_start MOD11_02259098
+MOD11_02259098: ; 0x02259098
+ push {r4, lr}
+ lsl r4, r2, #8
+ mov r2, #0x6e
+ add r3, r0, #0
+ lsl r2, r2, #4
+ ldr r0, [r3, r2]
+ cmp r0, r4
+ beq _022590BC
+ add r0, r2, #4
+ str r1, [r3, r0]
+ add r2, #8
+ str r4, [r3, r2]
+ mov r2, #0x4b
+ ldr r0, _022590C0 ; =MOD11_022590C4
+ add r1, r3, #0
+ lsl r2, r2, #4
+ bl FUN_0200CA44
+_022590BC:
+ pop {r4, pc}
+ nop
+_022590C0: .word MOD11_022590C4
+
+ thumb_func_start MOD11_022590C4
+MOD11_022590C4: ; 0x022590C4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r4, #0
+ bl MOD11_0222FF68
+ add r7, r0, #0
+ mov r0, #0x6e
+ lsl r0, r0, #4
+ add r1, r0, #4
+ ldr r2, [r5, r0]
+ ldr r1, [r5, r1]
+ add r1, r2, r1
+ str r1, [r5, r0]
+ add r1, r0, #4
+ ldr r1, [r5, r1]
+ cmp r1, #0
+ bgt _022590F6
+ add r2, r0, #0
+ add r2, #8
+ ldr r2, [r5, r2]
+ ldr r0, [r5, r0]
+ cmp r0, r2
+ ble _02259106
+_022590F6:
+ cmp r1, #0
+ ble _0225910E
+ ldr r0, _0225915C ; =0x000006E8
+ ldr r2, [r5, r0]
+ sub r0, #8
+ ldr r0, [r5, r0]
+ cmp r0, r2
+ blt _0225910E
+_02259106:
+ mov r0, #0x6e
+ lsl r0, r0, #4
+ str r2, [r5, r0]
+ mov r4, #1
+_0225910E:
+ mov r3, #0x6e
+ lsl r3, r3, #4
+ ldr r3, [r5, r3]
+ add r0, r7, #0
+ asr r6, r3, #7
+ lsr r6, r6, #0x18
+ add r6, r3, r6
+ mov r1, #6
+ mov r2, #0
+ asr r3, r6, #8
+ bl FUN_020179E0
+ add r0, r5, #0
+ bl MOD11_0225902C
+ cmp r4, #1
+ bne _0225915A
+ ldr r2, _02259160 ; =0x000002FF
+ add r0, r7, #0
+ mov r1, #7
+ bl FUN_02018768
+ mov r0, #7
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #7
+ mov r1, #0
+ bl FUN_020178BC
+ ldr r2, _02259164 ; =0x04001000
+ ldr r0, _02259168 ; =0xFFFF1FFF
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_0225915A:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225915C: .word 0x000006E8
+_02259160: .word 0x000002FF
+_02259164: .word 0x04001000
+_02259168: .word 0xFFFF1FFF
+
+ thumb_func_start MOD11_0225916C
+MOD11_0225916C: ; 0x0225916C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ ldr r0, _02259240 ; =0x000006A2
+ mov r1, #1
+ strb r1, [r5, r0]
+ ldr r1, _02259244 ; =0x0400104A
+ mov r4, #0x3f
+ ldrh r2, [r1]
+ mov r0, #0xf
+ mov r7, #0xc
+ bic r2, r4
+ orr r0, r2
+ mov r2, #0x20
+ orr r0, r2
+ strh r0, [r1]
+ sub r0, r1, #2
+ ldrh r3, [r0]
+ bic r3, r4
+ orr r3, r7
+ orr r3, r2
+ strh r3, [r0]
+ ldrh r4, [r0]
+ ldr r3, _02259248 ; =0xFFFFC0FF
+ lsl r2, r2, #8
+ and r4, r3
+ lsl r3, r7, #8
+ orr r3, r4
+ orr r2, r3
+ strh r2, [r0]
+ add r2, r1, #0
+ mov r0, #0xff
+ sub r2, #0xa
+ strh r0, [r2]
+ mov r3, #0x90
+ sub r2, r1, #6
+ strh r3, [r2]
+ add r2, r1, #0
+ sub r2, #8
+ strh r0, [r2]
+ sub r0, r1, #4
+ ldr r2, _0225924C ; =0x000090C0
+ sub r1, #0x4a
+ strh r2, [r0]
+ ldr r2, [r1]
+ ldr r0, _02259250 ; =0xFFFF1FFF
+ and r2, r0
+ lsl r0, r7, #0xb
+ orr r0, r2
+ str r0, [r1]
+ mov r0, #5
+ mov r1, #0x14
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x14
+ bl MI_CpuFill8
+ str r5, [r4]
+ ldr r0, _02259254 ; =0xFFFF9C64
+ strb r6, [r4, #0x12]
+ strh r0, [r4, #8]
+ mov r0, #0xfa
+ lsl r0, r0, #4
+ strh r0, [r4, #0xa]
+ mov r0, #8
+ ldrsh r1, [r4, r0]
+ ldr r0, _02259258 ; =0x0000639C
+ sub r0, r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ strh r0, [r4, #0xc]
+ mov r0, #0xa
+ ldrsh r1, [r4, r0]
+ mov r0, #0xfa
+ lsl r0, r0, #4
+ sub r0, r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ strh r0, [r4, #0xe]
+ ldr r0, _0225925C ; =0x0000070E
+ bl FUN_020054C8
+ ldr r0, _02259260 ; =MOD11_0225B438
+ ldr r2, _02259264 ; =0x000004BA
+ add r1, r4, #0
+ bl FUN_0200CA44
+ ldr r0, _02259268 ; =MOD11_0225B644
+ add r1, r4, #0
+ bl FUN_02015F34
+ cmp r0, #1
+ beq _02259232
+ bl ErrorHandling
+_02259232:
+ ldr r0, _0225926C ; =MOD11_0225B538
+ add r1, r4, #0
+ mov r2, #0xa
+ bl FUN_0200CA60
+ str r0, [r4, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02259240: .word 0x000006A2
+_02259244: .word 0x0400104A
+_02259248: .word 0xFFFFC0FF
+_0225924C: .word 0x000090C0
+_02259250: .word 0xFFFF1FFF
+_02259254: .word 0xFFFF9C64
+_02259258: .word 0x0000639C
+_0225925C: .word 0x0000070E
+_02259260: .word MOD11_0225B438
+_02259264: .word 0x000004BA
+_02259268: .word MOD11_0225B644
+_0225926C: .word MOD11_0225B538
+
+ thumb_func_start MOD11_02259270
+MOD11_02259270: ; 0x02259270
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrb r4, [r5, #0x18]
+ bl MOD11_02259284
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0225916C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02259284
+MOD11_02259284: ; 0x02259284
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r6, r5, #0
+ ldrb r7, [r5, #0x18]
+ add r6, #0x18
+ bl MOD11_022300C4
+ add r4, r0, #0
+ ldr r0, _02259484 ; =0x0000069E
+ strb r7, [r5, r0]
+ ldr r0, [r5]
+ bl MOD11_0222FF74
+ mov r1, #0x20
+ tst r0, r1
+ beq _022592CA
+ ldr r1, _02259488 ; =0x000003A3
+ add r0, r4, #0
+ bl FUN_0200A914
+ mov r1, #0xe9
+ str r0, [sp, #0x24]
+ add r0, r4, #0
+ lsl r1, r1, #2
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ ldr r1, _0225948C ; =0x000003A5
+ add r0, r4, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x1c]
+ b _0225931A
+_022592CA:
+ ldr r0, [r5]
+ bl MOD11_0222FF74
+ mov r1, #2
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _022592FA
+ ldr r1, _02259490 ; =0x000004C7
+ add r0, r4, #0
+ bl FUN_0200A914
+ mov r1, #0xe9
+ str r0, [sp, #0x24]
+ add r0, r4, #0
+ lsl r1, r1, #2
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ ldr r1, _0225948C ; =0x000003A5
+ add r0, r4, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x1c]
+ b _0225931A
+_022592FA:
+ mov r1, #0xe7
+ add r0, r4, #0
+ lsl r1, r1, #2
+ bl FUN_0200A914
+ str r0, [sp, #0x24]
+ ldr r1, _02259494 ; =0x0000039D
+ add r0, r4, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ ldr r1, _02259498 ; =0x0000039E
+ add r0, r4, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x1c]
+_0225931A:
+ ldr r0, [r5]
+ add r1, r7, #0
+ bl MOD11_0223022C
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230CB8
+ cmp r0, #1
+ bne _0225933E
+ mov r1, #0x3a
+ add r0, r4, #0
+ lsl r1, r1, #4
+ bl FUN_0200A914
+ add r4, r0, #0
+ mov r1, #1
+ b _0225934A
+_0225933E:
+ ldr r1, _0225949C ; =0x0000039F
+ add r0, r4, #0
+ bl FUN_0200A914
+ add r4, r0, #0
+ mov r1, #0
+_0225934A:
+ ldr r0, _022594A0 ; =0x000006A3
+ mov r3, #2
+ strb r1, [r5, r0]
+ ldr r0, _022594A4 ; =0x00010203
+ ldr r1, _022594A8 ; =0x000004CC
+ str r0, [sp]
+ ldr r0, _022594AC ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x54
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r2, [sp, #0x24]
+ add r0, r5, #0
+ add r1, r5, r1
+ bl MOD11_0225A458
+ ldr r0, _022594B0 ; =0x00040506
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r3, #2
+ lsl r1, r1, #4
+ ldr r0, _022594AC ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x28
+ str r0, [sp, #0xc]
+ mov r0, #0xaa
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ add r1, r5, r1
+ bl MOD11_0225A458
+ ldr r0, _022594B4 ; =0x00070809
+ ldr r1, _022594B8 ; =0x000004F4
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _022594AC ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0xd8
+ str r0, [sp, #0xc]
+ mov r0, #0xaa
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r2, [sp, #0x1c]
+ add r0, r5, #0
+ add r1, r5, r1
+ bl MOD11_0225A458
+ ldr r0, _022594BC ; =0x000A0B0C
+ ldr r1, _022594C0 ; =0x00000508
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _022594AC ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0xb2
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r4, #0
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x24]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_02021A20
+ ldr r0, [r5]
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _0225947E
+ ldrb r1, [r6, #1]
+ ldrb r2, [r6, #2]
+ ldr r0, [r5]
+ bl MOD11_02230014
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0225A164
+ ldrh r0, [r6, #6]
+ mov r3, #4
+ add r1, r4, #0
+ str r0, [sp]
+ ldrb r0, [r6, #3]
+ add r2, r7, #0
+ str r0, [sp, #4]
+ ldrsh r3, [r6, r3]
+ add r0, r5, #0
+ bl MOD11_0225A270
+ add r4, r0, #0
+ ldr r0, _022594A8 ; =0x000004CC
+ add r1, sp, #0x2c
+ ldr r0, [r5, r0]
+ add r2, sp, #0x28
+ bl FUN_020119A4
+ cmp r7, #4
+ bne _0225945E
+ ldr r0, _022594C4 ; =0x000004DC
+ ldr r1, [sp, #0x2c]
+ ldrh r0, [r5, r0]
+ add r0, #0x10
+ add r0, r1, r0
+ str r0, [sp, #0x2c]
+ b _02259464
+_0225945E:
+ ldr r0, [sp, #0x2c]
+ sub r0, #0x10
+ str r0, [sp, #0x2c]
+_02259464:
+ mov r3, #0x11
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x28]
+ lsl r3, r3, #4
+ sub r2, r2, r3
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ add r0, r4, #0
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ lsl r3, r3, #0xc
+ bl FUN_0200C750
+_0225947E:
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02259484: .word 0x0000069E
+_02259488: .word 0x000003A3
+_0225948C: .word 0x000003A5
+_02259490: .word 0x000004C7
+_02259494: .word 0x0000039D
+_02259498: .word 0x0000039E
+_0225949C: .word 0x0000039F
+_022594A0: .word 0x000006A3
+_022594A4: .word 0x00010203
+_022594A8: .word 0x000004CC
+_022594AC: .word 0x00004E33
+_022594B0: .word 0x00040506
+_022594B4: .word 0x00070809
+_022594B8: .word 0x000004F4
+_022594BC: .word 0x000A0B0C
+_022594C0: .word 0x00000508
+_022594C4: .word 0x000004DC
+
+ thumb_func_start MOD11_022594C8
+MOD11_022594C8: ; 0x022594C8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrb r4, [r5, #0x18]
+ bl MOD11_022594DC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0225916C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022594DC
+MOD11_022594DC: ; 0x022594DC
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ bl MOD11_02259284
+ ldr r0, [r5]
+ bl MOD11_0222FF68
+ mov r1, #0x10
+ str r1, [sp]
+ mov r1, #0x20
+ str r1, [sp, #4]
+ mov r1, #8
+ str r1, [sp, #8]
+ mov r1, #0x11
+ str r1, [sp, #0xc]
+ ldr r2, _02259534 ; =0x000002FF
+ add r4, r0, #0
+ mov r1, #4
+ mov r3, #0
+ bl FUN_02018540
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_0201AC68
+ mov r0, #0x4e
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020119D0
+ ldr r0, _02259538 ; =0x000004F4
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ ldr r0, _0225953C ; =0x00000508
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02259534: .word 0x000002FF
+_02259538: .word 0x000004F4
+_0225953C: .word 0x00000508
+
+ thumb_func_start MOD11_02259540
+MOD11_02259540: ; 0x02259540
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrb r4, [r5, #0x18]
+ bl MOD11_02259554
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0225916C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02259554
+MOD11_02259554: ; 0x02259554
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ bl MOD11_02259284
+ ldr r0, [r5]
+ bl MOD11_0222FF68
+ mov r1, #0x10
+ str r1, [sp]
+ mov r1, #0xa
+ str r1, [sp, #4]
+ mov r1, #8
+ str r1, [sp, #8]
+ mov r1, #0x11
+ str r1, [sp, #0xc]
+ ldr r2, _022595C0 ; =0x000002FF
+ mov r1, #4
+ mov r3, #0
+ add r4, r0, #0
+ bl FUN_02018540
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r2, _022595C0 ; =0x000002FF
+ add r0, r4, #0
+ mov r1, #4
+ mov r3, #0x16
+ bl FUN_02018540
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_0201AC68
+ mov r0, #0x4e
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020119D0
+ ldr r0, _022595C4 ; =0x000004F4
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_022595C0: .word 0x000002FF
+_022595C4: .word 0x000004F4
+
+ thumb_func_start MOD11_022595C8
+MOD11_022595C8: ; 0x022595C8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0
+ add r6, r5, #0
+ add r6, #0x18
+ bne _022595D8
+ bl ErrorHandling
+_022595D8:
+ ldrb r1, [r6, #0x10]
+ ldr r0, _02259854 ; =0x0000069E
+ strb r1, [r5, r0]
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ str r0, [sp, #0x1c]
+ ldrb r1, [r6, #0x10]
+ add r0, r5, #0
+ bl MOD11_0225A69C
+ str r0, [sp, #0x20]
+ add r0, r5, #0
+ bl MOD11_0225A9D4
+ ldr r0, _02259858 ; =0x00070809
+ ldr r1, _0225985C ; =0x000004CC
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r0, _02259860 ; =0x00004E33
+ add r1, r5, r1
+ str r0, [sp, #8]
+ mov r0, #0x40
+ str r0, [sp, #0xc]
+ mov r0, #0x2e
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ mov r2, #0
+ add r0, #0x28
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ mov r3, #2
+ bl MOD11_0225A458
+ ldr r0, _02259858 ; =0x00070809
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r0, _02259860 ; =0x00004E33
+ lsl r1, r1, #4
+ str r0, [sp, #8]
+ mov r0, #0xc0
+ str r0, [sp, #0xc]
+ mov r0, #0x2e
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ add r1, r5, r1
+ add r0, #0x3c
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ mov r2, #0
+ mov r3, #2
+ bl MOD11_0225A458
+ ldr r0, _02259858 ; =0x00070809
+ ldr r1, _02259864 ; =0x000004F4
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r0, _02259860 ; =0x00004E33
+ add r1, r5, r1
+ str r0, [sp, #8]
+ mov r0, #0x40
+ str r0, [sp, #0xc]
+ mov r0, #0x6e
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ mov r2, #0
+ add r0, #0x50
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ mov r3, #2
+ bl MOD11_0225A458
+ ldr r0, _02259858 ; =0x00070809
+ ldr r1, _02259868 ; =0x00000508
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r0, _02259860 ; =0x00004E33
+ add r1, r5, r1
+ str r0, [sp, #8]
+ mov r0, #0xc0
+ str r0, [sp, #0xc]
+ mov r0, #0x6e
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ mov r2, #0
+ add r0, #0x64
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ mov r3, #2
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x20]
+ mov r4, #0
+ str r0, [sp, #0x28]
+ add r0, #0x78
+ str r0, [sp, #0x28]
+ ldr r0, _0225985C ; =0x000004CC
+ add r7, r5, r0
+ ldr r0, [sp, #0x20]
+ add r0, #0xc8
+ str r0, [sp, #0x20]
+ b _02259748
+_022596BE:
+ add r1, r6, r4
+ ldrb r0, [r1, #8]
+ ldrb r1, [r1, #0xc]
+ bl MOD11_0225B3D4
+ str r0, [sp, #0x24]
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r0, _02259860 ; =0x00004E33
+ ldr r1, _0225986C ; =0x0225F73C
+ str r0, [sp, #8]
+ lsl r0, r4, #2
+ ldrh r1, [r1, r0]
+ add r2, r4, #0
+ add r2, #9
+ str r1, [sp, #0xc]
+ ldr r1, _0225986C ; =0x0225F73C
+ add r0, r1, r0
+ ldrh r0, [r0, #2]
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ mov r0, #0x14
+ mul r1, r0
+ ldr r0, [sp, #0x28]
+ add r0, r0, r1
+ mov r1, #0x14
+ mul r1, r2
+ mov r2, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r7, r1
+ add r3, r2, #0
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x24]
+ ldr r1, _02259870 ; =0x0225F78C
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r0, _02259860 ; =0x00004E33
+ add r2, r4, #5
+ str r0, [sp, #8]
+ lsl r0, r4, #2
+ ldrh r1, [r1, r0]
+ str r1, [sp, #0xc]
+ ldr r1, _02259870 ; =0x0225F78C
+ add r0, r1, r0
+ ldrh r0, [r0, #2]
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ mov r0, #0x14
+ mul r1, r0
+ ldr r0, [sp, #0x20]
+ add r0, r0, r1
+ mov r1, #0x14
+ mul r1, r2
+ mov r2, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r7, r1
+ add r3, r2, #0
+ bl MOD11_0225A458
+ add r4, r4, #1
+_02259748:
+ cmp r4, #4
+ blt _022596BE
+ ldr r0, [sp, #0x1c]
+ ldr r1, _02259874 ; =0x000003A1
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r0, _02259878 ; =0x000A0B0C
+ ldr r1, _0225987C ; =0x0000051C
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _02259860 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0xb2
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r4, #0
+ bl MOD11_0225A458
+ add r0, r4, #0
+ bl FUN_02021A20
+ mov r4, #0
+ mov r7, #3
+ b _022597B0
+_0225978A:
+ lsl r0, r4, #1
+ ldrh r0, [r6, r0]
+ cmp r0, #0
+ beq _022597A4
+ add r1, r7, #0
+ bl GetWazaAttr
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD11_0225AB34
+ b _022597AE
+_022597A4:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0225AB50
+ b _022597B4
+_022597AE:
+ add r4, r4, #1
+_022597B0:
+ cmp r4, #4
+ blt _0225978A
+_022597B4:
+ ldr r0, [r5]
+ bl MOD11_0222FF68
+ ldrh r0, [r6]
+ cmp r0, #0
+ bne _022597E2
+ ldr r0, _0225985C ; =0x000004CC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ mov r0, #0x53
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020119D0
+ mov r0, #0x16
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020119D0
+_022597E2:
+ ldrh r0, [r6, #2]
+ cmp r0, #0
+ bne _02259808
+ mov r0, #0x4e
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020119D0
+ ldr r0, _02259880 ; =0x00000544
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ ldr r0, _02259884 ; =0x00000594
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+_02259808:
+ ldrh r0, [r6, #4]
+ cmp r0, #0
+ bne _0225982C
+ ldr r0, _02259864 ; =0x000004F4
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ ldr r0, _02259888 ; =0x00000558
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ ldr r0, _0225988C ; =0x000005A8
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+_0225982C:
+ ldrh r0, [r6, #6]
+ cmp r0, #0
+ bne _02259850
+ ldr r0, _02259868 ; =0x00000508
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ ldr r0, _02259890 ; =0x0000056C
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ ldr r0, _02259894 ; =0x000005BC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+_02259850:
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02259854: .word 0x0000069E
+_02259858: .word 0x00070809
+_0225985C: .word 0x000004CC
+_02259860: .word 0x00004E33
+_02259864: .word 0x000004F4
+_02259868: .word 0x00000508
+_0225986C: .word 0x0225F73C
+_02259870: .word 0x0225F78C
+_02259874: .word 0x000003A1
+_02259878: .word 0x000A0B0C
+_0225987C: .word 0x0000051C
+_02259880: .word 0x00000544
+_02259884: .word 0x00000594
+_02259888: .word 0x00000558
+_0225988C: .word 0x000005A8
+_02259890: .word 0x0000056C
+_02259894: .word 0x000005BC
+
+ thumb_func_start MOD11_02259898
+MOD11_02259898: ; 0x02259898
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ mov r1, #0xeb
+ lsl r1, r1, #2
+ add r6, r0, #0
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r1, _0225991C ; =0x000003AD
+ add r0, r6, #0
+ bl FUN_0200A914
+ add r6, r0, #0
+ ldr r0, _02259920 ; =0x00010203
+ ldr r1, _02259924 ; =0x000004CC
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _02259928 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x44
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r4, #0
+ bl MOD11_0225A458
+ ldr r0, _0225992C ; =0x000A0B0C
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r3, #2
+ lsl r1, r1, #4
+ ldr r0, _02259928 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x8c
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r6, #0
+ bl MOD11_0225A458
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0225991C: .word 0x000003AD
+_02259920: .word 0x00010203
+_02259924: .word 0x000004CC
+_02259928: .word 0x00004E33
+_0225992C: .word 0x000A0B0C
+
+ thumb_func_start MOD11_02259930
+MOD11_02259930: ; 0x02259930
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ ldr r1, _022599B4 ; =0x0000049D
+ add r6, r0, #0
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r1, _022599B8 ; =0x0000049E
+ add r0, r6, #0
+ bl FUN_0200A914
+ add r6, r0, #0
+ ldr r0, _022599BC ; =0x00010203
+ ldr r1, _022599C0 ; =0x000004CC
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _022599C4 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x44
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r4, #0
+ bl MOD11_0225A458
+ ldr r0, _022599C8 ; =0x000A0B0C
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r3, #2
+ lsl r1, r1, #4
+ ldr r0, _022599C4 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x8c
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r6, #0
+ bl MOD11_0225A458
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ nop
+_022599B4: .word 0x0000049D
+_022599B8: .word 0x0000049E
+_022599BC: .word 0x00010203
+_022599C0: .word 0x000004CC
+_022599C4: .word 0x00004E33
+_022599C8: .word 0x000A0B0C
+
+ thumb_func_start MOD11_022599CC
+MOD11_022599CC: ; 0x022599CC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230138
+ add r4, r0, #0
+ ldr r1, _02259A98 ; =0x000004A2
+ add r0, r6, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x1c]
+ ldr r1, _02259A9C ; =0x000004A3
+ add r0, r6, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ mov r0, #0x64
+ mov r1, #5
+ bl FUN_020219F4
+ add r6, r0, #0
+ mov r0, #0x64
+ mov r1, #5
+ bl FUN_020219F4
+ add r7, r0, #0
+ ldrh r2, [r5, #0x18]
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_0200AD5C
+ ldr r2, [sp, #0x1c]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ ldr r2, [sp, #0x20]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl FUN_0200B7B8
+ ldr r0, _02259AA0 ; =0x00010203
+ ldr r1, _02259AA4 ; =0x000004CC
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _02259AA8 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x44
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r6, #0
+ bl MOD11_0225A458
+ ldr r0, _02259AAC ; =0x000A0B0C
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r3, #2
+ lsl r1, r1, #4
+ ldr r0, _02259AA8 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x8c
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r7, #0
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02259A98: .word 0x000004A2
+_02259A9C: .word 0x000004A3
+_02259AA0: .word 0x00010203
+_02259AA4: .word 0x000004CC
+_02259AA8: .word 0x00004E33
+_02259AAC: .word 0x000A0B0C
+
+ thumb_func_start MOD11_02259AB0
+MOD11_02259AB0: ; 0x02259AB0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230138
+ add r4, r0, #0
+ ldr r1, _02259B7C ; =0x000004C1
+ add r0, r6, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x1c]
+ ldr r1, _02259B80 ; =0x000004C2
+ add r0, r6, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ mov r0, #0x64
+ mov r1, #5
+ bl FUN_020219F4
+ add r6, r0, #0
+ mov r0, #0x64
+ mov r1, #5
+ bl FUN_020219F4
+ add r7, r0, #0
+ ldrh r2, [r5, #0x18]
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_0200AD5C
+ ldr r2, [sp, #0x1c]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ ldr r2, [sp, #0x20]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl FUN_0200B7B8
+ ldr r0, _02259B84 ; =0x00010203
+ ldr r1, _02259B88 ; =0x000004CC
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _02259B8C ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x44
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r6, #0
+ bl MOD11_0225A458
+ ldr r0, _02259B90 ; =0x000A0B0C
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r3, #2
+ lsl r1, r1, #4
+ ldr r0, _02259B8C ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x8c
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r7, #0
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02259B7C: .word 0x000004C1
+_02259B80: .word 0x000004C2
+_02259B84: .word 0x00010203
+_02259B88: .word 0x000004CC
+_02259B8C: .word 0x00004E33
+_02259B90: .word 0x000A0B0C
+
+ thumb_func_start MOD11_02259B94
+MOD11_02259B94: ; 0x02259B94
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230138
+ add r4, r0, #0
+ ldr r1, _02259C60 ; =0x000004BF
+ add r0, r6, #0
+ bl FUN_0200A914
+ mov r1, #0x13
+ str r0, [sp, #0x1c]
+ add r0, r6, #0
+ lsl r1, r1, #6
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ mov r0, #0x64
+ mov r1, #5
+ bl FUN_020219F4
+ add r6, r0, #0
+ mov r0, #0x64
+ mov r1, #5
+ bl FUN_020219F4
+ add r7, r0, #0
+ ldrh r2, [r5, #0x18]
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_0200AD5C
+ ldr r2, [sp, #0x1c]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ ldr r2, [sp, #0x20]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl FUN_0200B7B8
+ ldr r0, _02259C64 ; =0x00010203
+ ldr r1, _02259C68 ; =0x000004CC
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _02259C6C ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x44
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r6, #0
+ bl MOD11_0225A458
+ ldr r0, _02259C70 ; =0x000A0B0C
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r3, #2
+ lsl r1, r1, #4
+ ldr r0, _02259C6C ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x8c
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r7, #0
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02259C60: .word 0x000004BF
+_02259C64: .word 0x00010203
+_02259C68: .word 0x000004CC
+_02259C6C: .word 0x00004E33
+_02259C70: .word 0x000A0B0C
+
+ thumb_func_start MOD11_02259C74
+MOD11_02259C74: ; 0x02259C74
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ add r5, r0, #0
+ add r7, r5, #0
+ add r7, #0x18
+ add r0, r7, #0
+ add r0, #0x21
+ ldrb r1, [r0]
+ mov r0, #0x6a
+ lsl r0, r0, #4
+ strb r1, [r5, r0]
+ add r1, r7, #0
+ add r1, #0x20
+ ldrb r1, [r1]
+ sub r0, r0, #2
+ strb r1, [r5, r0]
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ str r0, [sp, #0x2c]
+ ldr r0, [r5]
+ bl MOD11_02230138
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ add r1, sp, #0x40
+ mov r2, #0
+ bl MOD11_0225ACD4
+ add r0, r5, #0
+ bl MOD11_0225A164
+ add r0, r5, #0
+ bl MOD11_0225A5C0
+ add r1, sp, #0x38
+ ldr r0, [r5]
+ add r1, #2
+ bl MOD11_02231504
+ ldr r0, [r5]
+ add r1, sp, #0x34
+ bl MOD11_022314E0
+ mov r0, #0x18
+ mov r1, #5
+ bl FUN_020219F4
+ str r0, [sp, #0x28]
+ ldr r0, _02259E38 ; =0x000004CC
+ mov r4, #0
+ add r0, r5, r0
+ str r0, [sp, #0x30]
+ b _02259DEC
+_02259CE0:
+ add r1, r4, #2
+ add r0, sp, #0x34
+ ldrb r6, [r0, r1]
+ lsl r0, r6, #3
+ add r0, r7, r0
+ ldrb r1, [r0, #1]
+ lsl r0, r1, #0x1d
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _02259DDA
+ add r0, sp, #0x40
+ ldrb r0, [r0, r4]
+ cmp r0, #1
+ bne _02259DDA
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ bne _02259D0E
+ ldr r0, [sp, #0x2c]
+ ldr r1, _02259E3C ; =0x000003C2
+ bl FUN_0200A914
+ str r0, [sp, #0x24]
+ b _02259D2A
+_02259D0E:
+ cmp r0, #1
+ bne _02259D1E
+ ldr r0, [sp, #0x2c]
+ ldr r1, _02259E40 ; =0x000003C3
+ bl FUN_0200A914
+ str r0, [sp, #0x24]
+ b _02259D2A
+_02259D1E:
+ mov r1, #0xf1
+ ldr r0, [sp, #0x2c]
+ lsl r1, r1, #2
+ bl FUN_0200A914
+ str r0, [sp, #0x24]
+_02259D2A:
+ lsl r2, r6, #3
+ ldrb r2, [r7, r2]
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl MOD11_02230014
+ str r0, [sp, #0x20]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [sp, #0x1c]
+ mov r1, #0
+ bl FUN_0200ACF8
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x28]
+ ldr r2, [sp, #0x24]
+ bl FUN_0200B7B8
+ mov r0, #1
+ tst r0, r4
+ beq _02259D5A
+ ldr r0, _02259E44 ; =0x00010203
+ b _02259D5C
+_02259D5A:
+ ldr r0, _02259E48 ; =0x00040506
+_02259D5C:
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ ldr r0, _02259E4C ; =0x00004E33
+ ldr r1, _02259E50 ; =0x0225F7D4
+ str r0, [sp, #8]
+ lsl r0, r4, #2
+ ldrh r1, [r1, r0]
+ add r2, r4, #0
+ mov r3, #2
+ str r1, [sp, #0xc]
+ ldr r1, _02259E50 ; =0x0225F7D4
+ add r0, r1, r0
+ ldrh r0, [r0, #2]
+ mov r1, #0x14
+ mul r2, r1
+ ldr r1, [sp, #0x30]
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ add r1, r1, r2
+ str r0, [sp, #0x18]
+ ldr r2, [sp, #0x28]
+ add r0, r5, #0
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x24]
+ bl FUN_02021A20
+ cmp r4, #1
+ beq _02259DA2
+ cmp r4, #3
+ beq _02259DBE
+ b _02259DEA
+_02259DA2:
+ lsl r0, r6, #3
+ add r6, r7, r0
+ ldrh r0, [r6, #6]
+ mov r3, #4
+ ldr r1, [sp, #0x20]
+ str r0, [sp]
+ ldrb r0, [r6, #2]
+ mov r2, #3
+ str r0, [sp, #4]
+ ldrsh r3, [r6, r3]
+ add r0, r5, #0
+ bl MOD11_0225A270
+ b _02259DEA
+_02259DBE:
+ lsl r0, r6, #3
+ add r6, r7, r0
+ ldrh r0, [r6, #6]
+ mov r3, #4
+ ldr r1, [sp, #0x20]
+ str r0, [sp]
+ ldrb r0, [r6, #2]
+ mov r2, #5
+ str r0, [sp, #4]
+ ldrsh r3, [r6, r3]
+ add r0, r5, #0
+ bl MOD11_0225A270
+ b _02259DEA
+_02259DDA:
+ add r0, sp, #0x40
+ ldrb r0, [r0, r4]
+ cmp r0, #0
+ bne _02259DEA
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0225ABA4
+_02259DEA:
+ add r4, r4, #1
+_02259DEC:
+ cmp r4, #4
+ bge _02259DF2
+ b _02259CE0
+_02259DF2:
+ ldr r0, [sp, #0x28]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x2c]
+ ldr r1, _02259E54 ; =0x000003A2
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r0, _02259E58 ; =0x000A0B0C
+ mov r3, #2
+ str r0, [sp]
+ ldr r0, _02259E4C ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, _02259E5C ; =0x0225F7C4
+ add r2, r4, #0
+ ldrh r1, [r0, #0x20]
+ str r1, [sp, #0xc]
+ ldrh r0, [r0, #0x22]
+ ldr r1, _02259E60 ; =0x0000051C
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ bl MOD11_0225A458
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02259E38: .word 0x000004CC
+_02259E3C: .word 0x000003C2
+_02259E40: .word 0x000003C3
+_02259E44: .word 0x00010203
+_02259E48: .word 0x00040506
+_02259E4C: .word 0x00004E33
+_02259E50: .word 0x0225F7D4
+_02259E54: .word 0x000003A2
+_02259E58: .word 0x000A0B0C
+_02259E5C: .word 0x0225F7C4
+_02259E60: .word 0x0000051C
+
+ thumb_func_start MOD11_02259E64
+MOD11_02259E64: ; 0x02259E64
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ mov r0, #0xff
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #1
+ cmp r0, #5
+ bhi _02259E8C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02259E80: ; jump table
+ .short _02259E8C - _02259E80 - 2 ; case 0
+ .short _02259E8C - _02259E80 - 2 ; case 1
+ .short _02259E90 - _02259E80 - 2 ; case 2
+ .short _02259EB4 - _02259E80 - 2 ; case 3
+ .short _02259EBA - _02259E80 - 2 ; case 4
+ .short _02259EC0 - _02259E80 - 2 ; case 5
+_02259E8C:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02259E90:
+ ldr r0, _02259F24 ; =0x0000069E
+ mov r7, #0
+ ldrb r0, [r4, r0]
+ add r6, r7, #0
+ cmp r0, #0
+ beq _02259EA6
+ cmp r0, #2
+ beq _02259EAA
+ cmp r0, #4
+ beq _02259EAA
+ b _02259EC4
+_02259EA6:
+ str r0, [sp]
+ b _02259EC4
+_02259EAA:
+ ldr r0, _02259F24 ; =0x0000069E
+ ldrb r0, [r4, r0]
+ sub r0, r0, #2
+ str r0, [sp]
+ b _02259EC4
+_02259EB4:
+ mov r7, #1
+ add r6, r7, #0
+ b _02259EC4
+_02259EBA:
+ mov r7, #2
+ mov r6, #1
+ b _02259EC4
+_02259EC0:
+ mov r7, #3
+ mov r6, #1
+_02259EC4:
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD11_0225ADD4
+ ldr r0, _02259F28 ; =MOD11_0225AE4C
+ add r1, r4, #0
+ bl MOD11_0225AD80
+ ldr r0, _02259F2C ; =0x0225F854
+ sub r2, r5, #1
+ mov r1, #6
+ mul r1, r2
+ add r0, r0, r1
+ ldr r1, _02259F30 ; =0x000006B4
+ lsl r2, r2, #2
+ str r0, [r4, r1]
+ ldr r0, _02259F34 ; =0x0225F70C
+ add r3, r0, r2
+ add r0, r1, #4
+ str r3, [r4, r0]
+ add r0, r1, #0
+ mov r3, #1
+ add r0, #0xc
+ strb r3, [r4, r0]
+ add r0, r1, #0
+ add r0, #8
+ str r5, [r4, r0]
+ add r0, r1, #0
+ add r0, #0xd
+ strb r7, [r4, r0]
+ add r3, r1, #0
+ ldr r0, [sp]
+ add r3, #0xe
+ strb r0, [r4, r3]
+ add r0, r1, #0
+ add r0, #0xf
+ strb r6, [r4, r0]
+ ldr r0, _02259F38 ; =0x0225F79C
+ add r3, r0, r2
+ ldrh r2, [r0, r2]
+ add r0, r1, #0
+ add r0, #0x10
+ strh r2, [r4, r0]
+ ldrh r0, [r3, #2]
+ add r1, #0x12
+ strh r0, [r4, r1]
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02259F24: .word 0x0000069E
+_02259F28: .word MOD11_0225AE4C
+_02259F2C: .word 0x0225F854
+_02259F30: .word 0x000006B4
+_02259F34: .word 0x0225F70C
+_02259F38: .word 0x0225F79C
+
+ thumb_func_start MOD11_02259F3C
+MOD11_02259F3C: ; 0x02259F3C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r1, #0
+ mvn r0, r0
+ add r1, r2, #0
+ cmp r4, r0
+ bne _02259F50
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02259F50:
+ add r2, r5, #0
+ add r2, #0x18
+ cmp r4, #1
+ blt _02259F66
+ cmp r4, #4
+ bgt _02259F66
+ sub r3, r4, #1
+ lsl r3, r3, #1
+ ldrh r2, [r2, r3]
+ cmp r2, #0
+ beq _02259FCA
+_02259F66:
+ sub r0, r4, #1
+ cmp r4, #4
+ bgt _02259F88
+ add r2, r4, #1
+ bmi _02259F8C
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02259F7C: ; jump table
+ .short _02259F8C - _02259F7C - 2 ; case 0
+ .short _02259F8C - _02259F7C - 2 ; case 1
+ .short _02259F92 - _02259F7C - 2 ; case 2
+ .short _02259F92 - _02259F7C - 2 ; case 3
+ .short _02259F92 - _02259F7C - 2 ; case 4
+ .short _02259F92 - _02259F7C - 2 ; case 5
+_02259F88:
+ cmp r4, #0xff
+ beq _02259FA2
+_02259F8C:
+ mov r0, #0
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_02259F92:
+ mov r2, #6
+ mul r2, r0
+ ldr r3, _02259FCC ; =0x0225F86C
+ lsl r0, r0, #2
+ add r7, r3, r2
+ ldr r2, _02259FD0 ; =0x0225F7AC
+ add r6, r2, r0
+ b _02259FA6
+_02259FA2:
+ ldr r7, _02259FD4 ; =0x0225F884
+ ldr r6, _02259FD8 ; =0x0225F7BC
+_02259FA6:
+ add r0, r5, #0
+ bl MOD11_0225ADD4
+ ldr r0, _02259FDC ; =MOD11_0225AF9C
+ add r1, r5, #0
+ bl MOD11_0225AD80
+ ldr r1, _02259FE0 ; =0x000006B4
+ mov r2, #3
+ str r7, [r5, r1]
+ add r0, r1, #4
+ str r6, [r5, r0]
+ add r0, r1, #0
+ add r0, #0xc
+ strb r2, [r5, r0]
+ add r1, #8
+ str r4, [r5, r1]
+ add r0, r4, #0
+_02259FCA:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02259FCC: .word 0x0225F86C
+_02259FD0: .word 0x0225F7AC
+_02259FD4: .word 0x0225F884
+_02259FD8: .word 0x0225F7BC
+_02259FDC: .word MOD11_0225AF9C
+_02259FE0: .word 0x000006B4
+
+ thumb_func_start MOD11_02259FE4
+MOD11_02259FE4: ; 0x02259FE4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r1, #0
+ mvn r0, r0
+ cmp r4, r0
+ beq _02259FFA
+ cmp r4, #1
+ beq _02259FFE
+ cmp r4, #0xff
+ beq _0225A002
+_02259FFA:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02259FFE:
+ mov r6, #0
+ b _0225A004
+_0225A002:
+ mov r6, #1
+_0225A004:
+ add r0, r5, #0
+ add r1, r2, #0
+ bl MOD11_0225ADD4
+ ldr r0, _0225A048 ; =MOD11_0225AE4C
+ add r1, r5, #0
+ bl MOD11_0225AD80
+ cmp r4, #1
+ ldr r0, _0225A04C ; =0x000006B4
+ bne _0225A022
+ ldr r1, _0225A050 ; =0x0225F6F6
+ str r1, [r5, r0]
+ ldr r1, _0225A054 ; =0x0225F6CC
+ b _0225A028
+_0225A022:
+ ldr r1, _0225A058 ; =0x0225F6F0
+ str r1, [r5, r0]
+ ldr r1, _0225A05C ; =0x0225F6C8
+_0225A028:
+ add r0, r0, #4
+ str r1, [r5, r0]
+ mov r0, #0x1b
+ mov r1, #6
+ lsl r0, r0, #6
+ strb r1, [r5, r0]
+ sub r1, r0, #4
+ str r4, [r5, r1]
+ add r1, r0, #1
+ strb r6, [r5, r1]
+ mov r1, #3
+ add r0, r0, #3
+ strb r1, [r5, r0]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ nop
+_0225A048: .word MOD11_0225AE4C
+_0225A04C: .word 0x000006B4
+_0225A050: .word 0x0225F6F6
+_0225A054: .word 0x0225F6CC
+_0225A058: .word 0x0225F6F0
+_0225A05C: .word 0x0225F6C8
+
+ thumb_func_start MOD11_0225A060
+MOD11_0225A060: ; 0x0225A060
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r1, #0
+ add r1, sp, #0
+ mov r2, #1
+ add r4, r0, #0
+ bl MOD11_0225ACD4
+ cmp r5, #4
+ bgt _0225A090
+ add r0, r5, #1
+ bmi _0225A094
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225A084: ; jump table
+ .short _0225A094 - _0225A084 - 2 ; case 0
+ .short _0225A094 - _0225A084 - 2 ; case 1
+ .short _0225A09A - _0225A084 - 2 ; case 2
+ .short _0225A0AA - _0225A084 - 2 ; case 3
+ .short _0225A0BA - _0225A084 - 2 ; case 4
+ .short _0225A0CA - _0225A084 - 2 ; case 5
+_0225A090:
+ cmp r5, #0xff
+ beq _0225A0DA
+_0225A094:
+ add sp, #4
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, pc}
+_0225A09A:
+ add r0, sp, #0
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0225A116
+ mov r0, #0
+ add sp, #4
+ mvn r0, r0
+ pop {r3, r4, r5, r6, pc}
+_0225A0AA:
+ add r0, sp, #0
+ ldrb r0, [r0, #1]
+ cmp r0, #0
+ bne _0225A116
+ mov r0, #0
+ add sp, #4
+ mvn r0, r0
+ pop {r3, r4, r5, r6, pc}
+_0225A0BA:
+ add r0, sp, #0
+ ldrb r0, [r0, #2]
+ cmp r0, #0
+ bne _0225A116
+ mov r0, #0
+ add sp, #4
+ mvn r0, r0
+ pop {r3, r4, r5, r6, pc}
+_0225A0CA:
+ add r0, sp, #0
+ ldrb r0, [r0, #3]
+ cmp r0, #0
+ bne _0225A116
+ mov r0, #0
+ add sp, #4
+ mvn r0, r0
+ pop {r3, r4, r5, r6, pc}
+_0225A0DA:
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD11_0225ADD4
+ ldr r0, _0225A14C ; =MOD11_0225AE4C
+ add r1, r4, #0
+ bl MOD11_0225AD80
+ ldr r0, _0225A150 ; =0x0225F8A4
+ ldr r1, _0225A154 ; =0x000006B4
+ ldr r2, _0225A158 ; =0x0225F80C
+ str r0, [r4, r1]
+ add r0, r1, #4
+ str r2, [r4, r0]
+ add r0, r1, #0
+ mov r2, #4
+ add r0, #0xc
+ strb r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #8
+ str r5, [r4, r0]
+ add r0, r1, #0
+ add r0, #0xd
+ strb r2, [r4, r0]
+ mov r0, #3
+ add r1, #0xf
+ strb r0, [r4, r1]
+ add sp, #4
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, pc}
+_0225A116:
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldr r2, _0225A15C ; =0x000002FF
+ add r6, r0, #0
+ mov r1, #5
+ bl FUN_02018768
+ add r0, r6, #0
+ mov r1, #5
+ bl FUN_0201AC68
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0225ADD0
+ ldr r0, _0225A160 ; =MOD11_0225B234
+ add r1, r4, #0
+ bl MOD11_0225AD80
+ mov r0, #0x6d
+ lsl r0, r0, #4
+ str r5, [r4, r0]
+ add r0, r5, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0225A14C: .word MOD11_0225AE4C
+_0225A150: .word 0x0225F8A4
+_0225A154: .word 0x000006B4
+_0225A158: .word 0x0225F80C
+_0225A15C: .word 0x000002FF
+_0225A160: .word MOD11_0225B234
+
+ thumb_func_start MOD11_0225A164
+MOD11_0225A164: ; 0x0225A164
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230078
+ add r4, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230080
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300CC
+ add r5, r0, #0
+ bl FUN_0206B888
+ mov r1, #0x13
+ str r1, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r1, #3
+ str r1, [sp, #0xc]
+ mov r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, _0225A1DC ; =0x00004E32
+ add r2, r4, #0
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ add r3, r6, #0
+ bl FUN_0200C0DC
+ bl FUN_0206B890
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0225A1E0 ; =0x00004E31
+ add r1, r6, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x13
+ bl FUN_0200C124
+ bl FUN_0206B89C
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0225A1E0 ; =0x00004E31
+ add r1, r6, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x13
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+ nop
+_0225A1DC: .word 0x00004E32
+_0225A1E0: .word 0x00004E31
+
+ thumb_func_start MOD11_0225A1E4
+MOD11_0225A1E4: ; 0x0225A1E4
+ push {r4, lr}
+ ldr r0, [r0]
+ bl MOD11_02230080
+ ldr r1, _0225A220 ; =0x00004E40
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _0225A224 ; =0x00004E41
+ add r0, r4, #0
+ bl FUN_0200C358
+ ldr r1, _0225A228 ; =0x00004E42
+ add r0, r4, #0
+ bl FUN_0200C358
+ ldr r1, _0225A22C ; =0x00004E31
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0225A22C ; =0x00004E31
+ add r0, r4, #0
+ bl FUN_0200C388
+ ldr r1, _0225A230 ; =0x00004E32
+ add r0, r4, #0
+ bl FUN_0200C368
+ pop {r4, pc}
+ nop
+_0225A220: .word 0x00004E40
+_0225A224: .word 0x00004E41
+_0225A228: .word 0x00004E42
+_0225A22C: .word 0x00004E31
+_0225A230: .word 0x00004E32
+
+ thumb_func_start MOD11_0225A234
+MOD11_0225A234: ; 0x0225A234
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+ add r7, r4, #0
+_0225A23E:
+ ldr r0, _0225A268 ; =0x00000624
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0225A24E
+ bl FUN_0200C3DC
+ ldr r0, _0225A268 ; =0x00000624
+ str r6, [r5, r0]
+_0225A24E:
+ ldr r0, _0225A26C ; =0x00000634
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0225A25E
+ bl FUN_0200CAB4
+ ldr r0, _0225A26C ; =0x00000634
+ str r7, [r5, r0]
+_0225A25E:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0225A23E
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225A268: .word 0x00000624
+_0225A26C: .word 0x00000634
+
+ thumb_func_start MOD11_0225A270
+MOD11_0225A270: ; 0x0225A270
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x50
+ add r6, r2, #0
+ add r4, r0, #0
+ str r1, [sp, #0xc]
+ str r3, [sp, #0x10]
+ cmp r6, #2
+ blt _0225A284
+ sub r5, r6, #2
+ b _0225A286
+_0225A284:
+ add r5, r6, #0
+_0225A286:
+ lsl r0, r5, #2
+ add r1, r4, r0
+ ldr r0, _0225A3D0 ; =0x00000624
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225A296
+ bl ErrorHandling
+_0225A296:
+ lsl r0, r5, #2
+ add r1, r4, r0
+ ldr r0, _0225A3D4 ; =0x00000634
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225A2A6
+ bl ErrorHandling
+_0225A2A6:
+ cmp r6, #5
+ bhi _0225A2CE
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225A2B6: ; jump table
+ .short _0225A2C2 - _0225A2B6 - 2 ; case 0
+ .short _0225A2CE - _0225A2B6 - 2 ; case 1
+ .short _0225A2C2 - _0225A2B6 - 2 ; case 2
+ .short _0225A2C6 - _0225A2B6 - 2 ; case 3
+ .short _0225A2C2 - _0225A2B6 - 2 ; case 4
+ .short _0225A2CA - _0225A2B6 - 2 ; case 5
+_0225A2C2:
+ ldr r6, _0225A3D8 ; =0x00004E40
+ b _0225A2D8
+_0225A2C6:
+ ldr r6, _0225A3DC ; =0x00004E41
+ b _0225A2D8
+_0225A2CA:
+ ldr r6, _0225A3E0 ; =0x00004E42
+ b _0225A2D8
+_0225A2CE:
+ bl ErrorHandling
+ add sp, #0x50
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225A2D8:
+ ldr r0, [r4]
+ bl MOD11_02230078
+ str r0, [sp, #0x18]
+ ldr r0, [r4]
+ bl MOD11_02230080
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0xc]
+ bl FUN_0206B6C8
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x14]
+ mov r2, #0x13
+ str r6, [sp, #8]
+ bl FUN_0200C00C
+ ldr r3, _0225A3E4 ; =0x0225F948
+ add r2, sp, #0x1c
+ mov r7, #6
+_0225A30A:
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ sub r7, r7, #1
+ bne _0225A30A
+ ldr r0, [r3]
+ lsl r3, r5, #2
+ str r0, [r2]
+ ldr r2, _0225A3E8 ; =0x0225F76C
+ str r6, [sp, #0x30]
+ ldrh r1, [r2, r3]
+ add r0, sp, #0x1c
+ strh r1, [r0]
+ add r1, r2, r3
+ ldrh r1, [r1, #2]
+ add r2, sp, #0x1c
+ strh r1, [r0, #2]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x14]
+ bl FUN_0200C154
+ add r3, sp, #0x1c
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ mov r3, #0x11
+ lsl r3, r3, #0x10
+ add r6, r0, #0
+ bl FUN_0200C750
+ ldr r0, [sp, #0xc]
+ bl FUN_0206B87C
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl FUN_020202DC
+ ldr r0, [sp, #0x10]
+ mov r7, #0
+ cmp r0, #0
+ beq _0225A3A8
+ ldr r0, [sp, #0x6c]
+ cmp r0, #2
+ beq _0225A3A8
+ cmp r0, #3
+ beq _0225A3A8
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x68]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0x30
+ bl FUN_02079A54
+ cmp r0, #4
+ bhi _0225A3A0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225A388: ; jump table
+ .short _0225A3A0 - _0225A388 - 2 ; case 0
+ .short _0225A39E - _0225A388 - 2 ; case 1
+ .short _0225A39A - _0225A388 - 2 ; case 2
+ .short _0225A396 - _0225A388 - 2 ; case 3
+ .short _0225A392 - _0225A388 - 2 ; case 4
+_0225A392:
+ mov r7, #1
+ b _0225A3A0
+_0225A396:
+ mov r7, #2
+ b _0225A3A0
+_0225A39A:
+ mov r7, #3
+ b _0225A3A0
+_0225A39E:
+ mov r7, #4
+_0225A3A0:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl FUN_0200C5C0
+_0225A3A8:
+ add r0, r6, #0
+ bl FUN_0200C5A8
+ lsl r0, r5, #2
+ add r1, r4, r0
+ ldr r0, _0225A3D0 ; =0x00000624
+ ldr r2, _0225A3EC ; =0x00000514
+ str r6, [r1, r0]
+ ldr r0, _0225A3F0 ; =MOD11_0225A3F4
+ add r1, r6, #0
+ bl FUN_0200CA44
+ lsl r1, r5, #2
+ add r2, r4, r1
+ ldr r1, _0225A3D4 ; =0x00000634
+ str r0, [r2, r1]
+ add r0, r6, #0
+ add sp, #0x50
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225A3D0: .word 0x00000624
+_0225A3D4: .word 0x00000634
+_0225A3D8: .word 0x00004E40
+_0225A3DC: .word 0x00004E41
+_0225A3E0: .word 0x00004E42
+_0225A3E4: .word 0x0225F948
+_0225A3E8: .word 0x0225F76C
+_0225A3EC: .word 0x00000514
+_0225A3F0: .word MOD11_0225A3F4
+
+ thumb_func_start MOD11_0225A3F4
+MOD11_0225A3F4: ; 0x0225A3F4
+ ldr r3, _0225A3FC ; =FUN_0200C5A8
+ add r0, r1, #0
+ bx r3
+ nop
+_0225A3FC: .word FUN_0200C5A8
+
+ thumb_func_start MOD11_0225A400
+MOD11_0225A400: ; 0x0225A400
+ cmp r0, #3
+ bhi _0225A418
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225A410: ; jump table
+ .short _0225A418 - _0225A410 - 2 ; case 0
+ .short _0225A41C - _0225A410 - 2 ; case 1
+ .short _0225A420 - _0225A410 - 2 ; case 2
+ .short _0225A424 - _0225A410 - 2 ; case 3
+_0225A418:
+ mov r0, #0
+ bx lr
+_0225A41C:
+ mov r0, #1
+ bx lr
+_0225A420:
+ mov r0, #3
+ bx lr
+_0225A424:
+ mov r0, #2
+ bx lr
+
+ thumb_func_start MOD11_0225A428
+MOD11_0225A428: ; 0x0225A428
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r6, r2, #0
+ add r0, r1, #0
+ add r1, r4, #0
+ mov r2, #0
+ add r7, r3, #0
+ bl FUN_02002E14
+ add r4, r0, #0
+ asr r1, r4, #2
+ lsr r1, r1, #0x1d
+ add r1, r4, r1
+ asr r5, r1, #3
+ mov r1, #8
+ bl FX_ModS32
+ cmp r0, #0
+ beq _0225A450
+ add r5, r5, #1
+_0225A450:
+ str r4, [r6]
+ str r5, [r7]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225A458
+MOD11_0225A458: ; 0x0225A458
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x7c
+ add r5, r1, #0
+ add r7, r0, #0
+ ldr r0, [r5]
+ str r2, [sp, #0x18]
+ str r3, [sp, #0x1c]
+ ldr r6, [sp, #0x9c]
+ ldr r4, [sp, #0xa8]
+ cmp r0, #0
+ beq _0225A472
+ bl ErrorHandling
+_0225A472:
+ ldr r0, [r7]
+ bl MOD11_02230080
+ str r0, [sp, #0x20]
+ ldr r0, [r7]
+ bl MOD11_0222FF68
+ str r0, [sp, #0x24]
+ cmp r4, #0
+ bne _0225A494
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ add r2, sp, #0x2c
+ add r3, sp, #0x28
+ bl MOD11_0225A428
+ b _0225A49C
+_0225A494:
+ ldrh r0, [r4, #0x12]
+ str r0, [sp, #0x2c]
+ ldrh r0, [r4, #0x10]
+ str r0, [sp, #0x28]
+_0225A49C:
+ cmp r4, #0
+ bne _0225A4DA
+ add r0, sp, #0x3c
+ bl FUN_0201901C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r2, [sp, #0x28]
+ ldr r0, [sp, #0x24]
+ lsl r2, r2, #0x18
+ add r1, sp, #0x3c
+ lsr r2, r2, #0x18
+ mov r3, #2
+ bl FUN_020190EC
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x90]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ str r3, [sp, #0x10]
+ ldr r2, [sp, #0x18]
+ add r0, sp, #0x3c
+ str r3, [sp, #0x14]
+ bl FUN_0201BE3C
+ b _0225A4E6
+_0225A4DA:
+ add r3, r4, #0
+ add r2, sp, #0x3c
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+_0225A4E6:
+ add r0, sp, #0x3c
+ mov r1, #2
+ mov r2, #5
+ bl FUN_02011898
+ mov r1, #1
+ mov r2, #2
+ add r3, sp, #0x30
+ bl FUN_0201D568
+ ldr r0, [sp, #0xa4]
+ cmp r0, #1
+ bne _0225A50A
+ ldr r1, [sp, #0x2c]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ sub r6, r6, r0
+_0225A50A:
+ ldr r0, _0225A588 ; =0x000004C8
+ ldr r0, [r7, r0]
+ str r0, [sp, #0x4c]
+ add r0, sp, #0x3c
+ str r0, [sp, #0x50]
+ ldr r0, [sp, #0x20]
+ bl FUN_0200CA40
+ str r0, [sp, #0x54]
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x98]
+ bl FUN_0200C334
+ str r0, [sp, #0x58]
+ mov r0, #0
+ ldr r1, [sp, #0x34]
+ str r0, [sp, #0x5c]
+ str r0, [sp, #0x6c]
+ mov r0, #0x64
+ str r1, [sp, #0x60]
+ mov r1, #0x42
+ str r0, [sp, #0x70]
+ mov r0, #2
+ str r0, [sp, #0x74]
+ mov r0, #5
+ str r0, [sp, #0x78]
+ ldr r2, [sp, #0xa0]
+ lsl r1, r1, #2
+ add r1, r2, r1
+ add r0, sp, #0x4c
+ str r6, [sp, #0x64]
+ str r1, [sp, #0x68]
+ bl FUN_020117E8
+ ldr r1, [sp, #0x94]
+ add r7, r0, #0
+ bl FUN_02011AC0
+ mov r2, #0x42
+ ldr r3, [sp, #0xa0]
+ lsl r2, r2, #2
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r3, r2
+ bl FUN_020118C4
+ cmp r4, #0
+ bne _0225A570
+ add r0, sp, #0x3c
+ bl FUN_02019178
+_0225A570:
+ str r7, [r5]
+ add r3, sp, #0x30
+ ldmia r3!, {r0, r1}
+ add r2, r5, #4
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [sp, #0x2c]
+ strh r0, [r5, #0x10]
+ add sp, #0x7c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0225A588: .word 0x000004C8
+
+ thumb_func_start MOD11_0225A58C
+MOD11_0225A58C: ; 0x0225A58C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r0, #0x4d
+ mov r6, #0
+ lsl r0, r0, #4
+ add r4, r5, r0
+ add r7, r6, #0
+_0225A59A:
+ ldr r0, _0225A5BC ; =0x000004CC
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0225A5B0
+ bl FUN_02011870
+ add r0, r4, #0
+ bl FUN_0201D5E8
+ ldr r0, _0225A5BC ; =0x000004CC
+ str r7, [r5, r0]
+_0225A5B0:
+ add r6, r6, #1
+ add r5, #0x14
+ add r4, #0x14
+ cmp r6, #0xd
+ blt _0225A59A
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225A5BC: .word 0x000004CC
+
+ thumb_func_start MOD11_0225A5C0
+MOD11_0225A5C0: ; 0x0225A5C0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ ldr r0, [r7]
+ bl MOD11_0222FF68
+ mov r1, #5
+ bl FUN_0201886C
+ add r4, r0, #0
+ add r0, r7, #0
+ add r1, sp, #4
+ mov r2, #0
+ bl MOD11_0225ACD4
+ add r0, sp, #0
+ ldrb r0, [r0, #4]
+ cmp r0, #1
+ bne _0225A63A
+ add r0, r7, #0
+ mov r1, #1
+ add r2, sp, #0
+ mov r3, #0
+ bl MOD11_0225AD2C
+ add r0, sp, #0
+ ldrb r0, [r0, #2]
+ cmp r0, #1
+ bne _0225A61E
+ mov r5, #0xc
+ mov r0, #0xa9
+ lsl r6, r5, #5
+ lsl r0, r0, #2
+ mov r2, #0xf
+_0225A604:
+ lsl r1, r6, #1
+ add r1, r4, r1
+ add r3, r2, #0
+ add r1, #0x1e
+_0225A60C:
+ add r3, r3, #1
+ strh r0, [r1]
+ add r1, r1, #2
+ cmp r3, #0x10
+ ble _0225A60C
+ add r5, r5, #1
+ add r6, #0x20
+ cmp r5, #0x10
+ ble _0225A604
+_0225A61E:
+ add r0, sp, #0
+ ldrb r0, [r0, #3]
+ cmp r0, #1
+ bne _0225A63A
+ mov r0, #0xa1
+ lsl r0, r0, #2
+ add r1, r4, r0
+ mov r2, #2
+ add r0, #0x20
+_0225A630:
+ add r2, r2, #1
+ strh r0, [r1]
+ add r1, r1, #2
+ cmp r2, #0xc
+ ble _0225A630
+_0225A63A:
+ add r0, sp, #0
+ ldrb r0, [r0, #5]
+ cmp r0, #1
+ bne _0225A694
+ add r0, r7, #0
+ mov r1, #2
+ add r2, sp, #0
+ mov r3, #0
+ bl MOD11_0225AD2C
+ add r0, sp, #0
+ ldrb r0, [r0, #2]
+ cmp r0, #1
+ bne _0225A668
+ ldr r0, _0225A698 ; =0x000002A6
+ mov r2, #0x13
+ add r1, r4, r0
+ sub r0, r0, #2
+_0225A65E:
+ add r2, r2, #1
+ strh r0, [r1]
+ add r1, r1, #2
+ cmp r2, #0x1d
+ ble _0225A65E
+_0225A668:
+ add r0, sp, #0
+ ldrb r0, [r0, #3]
+ cmp r0, #1
+ bne _0225A694
+ mov r0, #0xa9
+ mov r5, #3
+ mov r3, #0x60
+ lsl r0, r0, #2
+ mov r2, #0xf
+_0225A67A:
+ lsl r1, r3, #1
+ add r1, r4, r1
+ add r6, r2, #0
+ add r1, #0x1e
+_0225A682:
+ add r6, r6, #1
+ strh r0, [r1]
+ add r1, r1, #2
+ cmp r6, #0x10
+ ble _0225A682
+ add r5, r5, #1
+ add r3, #0x20
+ cmp r5, #7
+ ble _0225A67A
+_0225A694:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225A698: .word 0x000002A6
+
+ thumb_func_start MOD11_0225A69C
+MOD11_0225A69C: ; 0x0225A69C
+ cmp r1, #2
+ blt _0225A6A2
+ sub r1, r1, #2
+_0225A6A2:
+ mov r2, #0x46
+ lsl r2, r2, #2
+ add r0, #0x68
+ mul r2, r1
+ add r0, r0, r2
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0225A6B0
+MOD11_0225A6B0: ; 0x0225A6B0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [sp]
+ mov r1, #0x13
+ str r0, [sp, #0x10]
+ add r0, #0x90
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ lsl r1, r1, #4
+ str r0, [sp, #0xc]
+ add r0, #0xe0
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ add r0, r0, r1
+ str r0, [sp, #8]
+_0225A6D4:
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r0, [sp]
+ ldr r7, [sp, #0x10]
+ ldr r6, [sp, #0xc]
+ ldr r5, [sp, #8]
+ str r0, [sp, #4]
+ add r4, r0, #0
+_0225A6E4:
+ ldr r0, [sp, #4]
+ add r0, #0x80
+ ldr r0, [r0]
+ bl FreeToHeap
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225A6FE
+ add r0, r7, #0
+ bl FUN_02019178
+_0225A6FE:
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225A70E
+ add r0, r6, #0
+ bl FUN_02019178
+_0225A70E:
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0225A71E
+ add r0, r5, #0
+ bl FUN_02019178
+_0225A71E:
+ ldr r0, [sp, #4]
+ add r4, #0x14
+ add r0, r0, #4
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ add r7, #0x14
+ add r0, r0, #1
+ add r6, #0x14
+ add r5, #0x14
+ str r0, [sp, #0x18]
+ cmp r0, #4
+ blt _0225A6E4
+ mov r0, #0x46
+ ldr r1, [sp]
+ lsl r0, r0, #2
+ add r1, r1, r0
+ str r1, [sp]
+ ldr r1, [sp, #0x10]
+ add r1, r1, r0
+ str r1, [sp, #0x10]
+ ldr r1, [sp, #0xc]
+ add r1, r1, r0
+ str r1, [sp, #0xc]
+ ldr r1, [sp, #8]
+ add r0, r1, r0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, #4
+ blt _0225A6D4
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0225A760
+MOD11_0225A760: ; 0x0225A760
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x50
+ add r7, r0, #0
+ ldr r0, [r7]
+ add r5, r1, #0
+ str r2, [sp, #8]
+ bl MOD11_022300C4
+ add r4, r0, #0
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_0225A69C
+ str r0, [sp, #0x38]
+ mov r0, #6
+ bl FUN_020799E8
+ str r0, [sp, #0xc]
+ ldr r1, _0225A95C ; =0x000003AA
+ add r0, r4, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x28]
+ ldr r0, [r7]
+ bl MOD11_02230138
+ str r0, [sp, #0x24]
+ mov r0, #0x10
+ mov r1, #5
+ bl FUN_020219F4
+ str r0, [sp, #0x30]
+ ldr r1, _0225A960 ; =0x000003A9
+ add r0, r4, #0
+ bl FUN_0200A914
+ ldr r4, [sp, #0x38]
+ str r0, [sp, #0x2c]
+ mov r0, #0
+ str r0, [sp, #0x34]
+ add r0, r4, #0
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x18]
+ add r0, #0x28
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ str r0, [sp, #0x14]
+ add r0, #0x78
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ str r0, [sp, #0x10]
+ add r0, #0xc8
+ ldr r5, [sp, #8]
+ add r6, r4, #0
+ str r0, [sp, #0x10]
+_0225A7CE:
+ ldrh r0, [r5]
+ ldrh r1, [r4]
+ cmp r0, r1
+ beq _0225A814
+ cmp r0, #0
+ beq _0225A814
+ mov r1, #3
+ bl GetWazaAttr
+ str r0, [sp, #0x3c]
+ bl FUN_0206E12C
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0x3c]
+ bl FUN_0206E0F0
+ add r1, r0, #0
+ mov r0, #5
+ str r0, [sp]
+ ldr r0, [sp, #0x40]
+ mov r2, #1
+ add r3, sp, #0x4c
+ bl FUN_02006BB0
+ str r0, [sp, #0x44]
+ ldr r0, [sp, #0x4c]
+ ldr r1, [sp, #0x1c]
+ ldr r0, [r0, #0x14]
+ ldr r1, [r1, #0x18]
+ ldr r2, [sp, #0xc]
+ bl MIi_CpuCopy32
+ ldr r0, [sp, #0x44]
+ bl FreeToHeap
+_0225A814:
+ ldr r0, [r6, #0x34]
+ cmp r0, #0
+ beq _0225A826
+ ldrh r1, [r5]
+ ldrh r0, [r4]
+ cmp r1, r0
+ beq _0225A846
+ cmp r1, #0
+ beq _0225A846
+_0225A826:
+ ldrh r0, [r5]
+ mov r1, #5
+ bl FUN_0200AA14
+ str r0, [sp, #0x48]
+ ldr r0, _0225A964 ; =0x00070809
+ ldr r1, [sp, #0x48]
+ str r0, [sp]
+ ldr r3, [sp, #0x18]
+ add r0, r7, #0
+ mov r2, #2
+ bl MOD11_0225A968
+ ldr r0, [sp, #0x48]
+ bl FUN_02021A20
+_0225A846:
+ add r0, r6, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225A876
+ add r0, r6, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225A876
+ ldrh r1, [r5]
+ cmp r1, #0
+ bne _0225A876
+ ldrh r0, [r4]
+ cmp r1, r0
+ bne _0225A876
+ ldrh r1, [r5, #8]
+ ldrh r0, [r4, #8]
+ cmp r1, r0
+ bne _0225A876
+ ldrh r1, [r5, #0x10]
+ ldrh r0, [r4, #0x10]
+ cmp r1, r0
+ beq _0225A906
+_0225A876:
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldrh r2, [r5, #8]
+ ldr r0, [sp, #0x24]
+ mov r1, #0
+ mov r3, #2
+ bl FUN_0200AD38
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldrh r2, [r5, #0x10]
+ ldr r0, [sp, #0x24]
+ mov r1, #1
+ mov r3, #2
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x30]
+ ldr r2, [sp, #0x2c]
+ bl FUN_0200B7B8
+ ldrh r0, [r5, #8]
+ ldrh r1, [r5, #0x10]
+ bl MOD11_0225B3D4
+ str r0, [sp, #0x20]
+ add r0, r6, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225A8CC
+ ldrh r1, [r5]
+ ldrh r0, [r4]
+ cmp r1, r0
+ bne _0225A8CC
+ ldrh r1, [r5, #8]
+ ldrh r0, [r4, #8]
+ cmp r1, r0
+ beq _0225A8DC
+_0225A8CC:
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x30]
+ str r0, [sp]
+ ldr r3, [sp, #0x14]
+ add r0, r7, #0
+ mov r2, #0
+ bl MOD11_0225A968
+_0225A8DC:
+ add r0, r6, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225A8F6
+ ldrh r1, [r5]
+ ldrh r0, [r4]
+ cmp r1, r0
+ bne _0225A8F6
+ ldrh r1, [r5, #8]
+ ldrh r0, [r4, #8]
+ cmp r1, r0
+ beq _0225A906
+_0225A8F6:
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x28]
+ str r0, [sp]
+ ldr r3, [sp, #0x10]
+ add r0, r7, #0
+ mov r2, #0
+ bl MOD11_0225A968
+_0225A906:
+ ldr r0, [sp, #0x1c]
+ add r4, r4, #2
+ add r0, r0, #4
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ add r5, r5, #2
+ add r0, #0x14
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r6, #0x14
+ add r0, #0x14
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ add r0, #0x14
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x34]
+ add r0, r0, #1
+ str r0, [sp, #0x34]
+ cmp r0, #4
+ bge _0225A930
+ b _0225A7CE
+_0225A930:
+ ldr r0, [sp, #0x28]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x2c]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x30]
+ bl FUN_02021A20
+ mov r0, #0xc
+_0225A944:
+ ldr r1, [sp, #8]
+ ldrh r2, [r1]
+ add r1, r1, #2
+ str r1, [sp, #8]
+ ldr r1, [sp, #0x38]
+ strh r2, [r1]
+ add r1, r1, #2
+ str r1, [sp, #0x38]
+ sub r0, r0, #1
+ bne _0225A944
+ add sp, #0x50
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225A95C: .word 0x000003AA
+_0225A960: .word 0x000003A9
+_0225A964: .word 0x00070809
+
+ thumb_func_start MOD11_0225A968
+MOD11_0225A968: ; 0x0225A968
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r7, r2, #0
+ add r6, r1, #0
+ add r5, r0, #0
+ add r4, r3, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, sp, #0x1c
+ add r3, sp, #0x18
+ bl MOD11_0225A428
+ ldr r0, [sp, #0x1c]
+ strh r0, [r4, #0x12]
+ ldr r0, [sp, #0x18]
+ strh r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0225A994
+ add r0, r4, #0
+ bl FUN_02019178
+_0225A994:
+ add r0, r4, #0
+ bl FUN_0201901C
+ ldr r0, [r5]
+ bl MOD11_0222FF68
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ ldr r2, [sp, #0x18]
+ add r1, r4, #0
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ mov r3, #2
+ bl FUN_020190EC
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x38]
+ add r1, r7, #0
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ str r3, [sp, #0x10]
+ add r0, r4, #0
+ add r2, r6, #0
+ str r3, [sp, #0x14]
+ bl FUN_0201BE3C
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0225A9D4
+MOD11_0225A9D4: ; 0x0225A9D4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ add r5, r0, #0
+ str r0, [sp, #4]
+ add r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [r5]
+ bl MOD11_02230078
+ str r0, [sp, #0xc]
+ ldr r0, [r5]
+ bl MOD11_02230080
+ ldr r1, _0225AAA8 ; =0x0000069E
+ str r0, [sp, #8]
+ ldrb r1, [r5, r1]
+ add r0, r5, #0
+ bl MOD11_0225A69C
+ ldr r4, _0225AAAC ; =0x0225F914
+ str r0, [sp]
+ add r3, sp, #0x10
+ mov r2, #6
+_0225AA02:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0225AA02
+ ldr r0, [r4]
+ mov r4, #0
+ str r0, [r3]
+ add r6, sp, #0x10
+ b _0225AAA0
+_0225AA14:
+ lsl r0, r4, #2
+ add r1, r5, r0
+ ldr r0, _0225AAB0 ; =0x00000604
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225AA24
+ bl ErrorHandling
+_0225AA24:
+ ldr r0, [sp, #4]
+ lsl r1, r4, #1
+ ldrh r0, [r0, r1]
+ cmp r0, #0
+ beq _0225AA9E
+ mov r1, #3
+ bl GetWazaAttr
+ add r2, r0, #0
+ ldr r0, _0225AAB4 ; =0x00004E35
+ ldr r1, _0225AAB8 ; =0x0225F72C
+ add r0, r4, r0
+ str r0, [sp, #0x24]
+ lsl r0, r4, #2
+ ldrh r1, [r1, r0]
+ add r3, sp, #0x10
+ strh r1, [r6]
+ ldr r1, _0225AAB8 ; =0x0225F72C
+ add r0, r1, r0
+ ldrh r0, [r0, #2]
+ ldr r1, [sp, #8]
+ strh r0, [r6, #2]
+ ldr r0, [sp, #0xc]
+ bl FUN_0206E240
+ lsl r1, r4, #2
+ add r2, r5, r1
+ ldr r1, _0225AAB0 ; =0x00000604
+ mov r3, #0x11
+ str r0, [r2, r1]
+ add r0, r1, #0
+ ldr r0, [r2, r0]
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r6, r1]
+ ldrsh r2, [r6, r2]
+ lsl r3, r3, #0x10
+ bl FUN_0200C750
+ lsl r0, r4, #2
+ add r1, r5, r0
+ ldr r0, _0225AAB0 ; =0x00000604
+ ldr r0, [r1, r0]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r7, r0, #0
+ mov r0, #6
+ bl FUN_020799E8
+ add r2, r0, #0
+ ldr r0, [sp]
+ lsl r3, r4, #2
+ add r0, r0, r3
+ mov r3, #0x66
+ ldr r1, [r7, #8]
+ lsl r3, r3, #0x14
+ ldr r0, [r0, #0x18]
+ add r1, r3, r1
+ bl MIi_CpuCopy16
+_0225AA9E:
+ add r4, r4, #1
+_0225AAA0:
+ cmp r4, #4
+ blt _0225AA14
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225AAA8: .word 0x0000069E
+_0225AAAC: .word 0x0225F914
+_0225AAB0: .word 0x00000604
+_0225AAB4: .word 0x00004E35
+_0225AAB8: .word 0x0225F72C
+
+ thumb_func_start MOD11_0225AABC
+MOD11_0225AABC: ; 0x0225AABC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230078
+ ldr r0, [r5]
+ bl MOD11_02230080
+ mov r4, #0
+ ldr r7, _0225AAEC ; =0x00000604
+ add r6, r4, #0
+_0225AAD2:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _0225AAE0
+ bl FUN_0206E270
+ ldr r0, _0225AAEC ; =0x00000604
+ str r6, [r5, r0]
+_0225AAE0:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0225AAD2
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225AAEC: .word 0x00000604
+
+ thumb_func_start MOD11_0225AAF0
+MOD11_0225AAF0: ; 0x0225AAF0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230078
+ ldr r0, [r5]
+ bl MOD11_02230080
+ mov r4, #0
+ add r6, r0, #0
+ add r7, r4, #0
+_0225AB06:
+ ldr r0, _0225AB2C ; =0x00000614
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0225AB20
+ bl FUN_0206E2E8
+ ldr r1, _0225AB30 ; =0x00004E39
+ add r0, r6, #0
+ add r1, r4, r1
+ bl FUN_0206E2E0
+ ldr r0, _0225AB2C ; =0x00000614
+ str r7, [r5, r0]
+_0225AB20:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0225AB06
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225AB2C: .word 0x00000614
+_0225AB30: .word 0x00004E39
+
+ thumb_func_start MOD11_0225AB34
+MOD11_0225AB34: ; 0x0225AB34
+ push {r3, r4, r5, lr}
+ ldr r0, [r0]
+ add r5, r1, #0
+ add r4, r2, #0
+ bl MOD11_022300CC
+ add r4, #8
+ add r1, r5, #0
+ mov r2, #5
+ mov r3, #1
+ str r4, [sp]
+ bl MOD08_02211E7C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0225AB50
+MOD11_0225AB50: ; 0x0225AB50
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ bl MOD11_022300CC
+ add r6, r0, #0
+ mov r7, #0
+ b _0225AB96
+_0225AB62:
+ ldr r1, _0225AB9C ; =0x0225F6A8
+ lsl r2, r4, #1
+ add r1, r1, r2
+ ldr r2, _0225ABA0 ; =0x0225F74C
+ lsl r3, r4, #2
+ add r2, r2, r3
+ add r0, r5, #0
+ mov r3, #3
+ str r7, [sp]
+ bl MOD11_0225ADD8
+ mov r0, #0x20
+ str r0, [sp]
+ add r3, r4, #0
+ mov r1, #7
+ add r3, #8
+ lsl r3, r3, #0x14
+ ldr r2, [r5, #0x58]
+ lsl r1, r1, #6
+ add r1, r2, r1
+ add r0, r6, #0
+ mov r2, #1
+ lsr r3, r3, #0x10
+ bl FUN_02003054
+ add r4, r4, #1
+_0225AB96:
+ cmp r4, #4
+ blt _0225AB62
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225AB9C: .word 0x0225F6A8
+_0225ABA0: .word 0x0225F74C
+
+ thumb_func_start MOD11_0225ABA4
+MOD11_0225ABA4: ; 0x0225ABA4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ ldr r1, _0225AC50 ; =0x0225F684
+ add r5, r0, #0
+ ldrb r2, [r1, #6]
+ add r0, sp, #0x10
+ strb r2, [r0]
+ ldrb r2, [r1, #7]
+ strb r2, [r0, #1]
+ ldrb r2, [r1, #8]
+ ldrb r1, [r1, #9]
+ strb r2, [r0, #2]
+ strb r1, [r0, #3]
+ ldr r0, [r5]
+ bl MOD11_0222FF68
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300CC
+ add r7, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r2, _0225AC54 ; =0x0225F6C0
+ lsl r1, r4, #1
+ add r1, r2, r1
+ ldr r3, _0225AC58 ; =0x0225F71C
+ lsl r2, r4, #2
+ add r2, r3, r2
+ add r0, r5, #0
+ mov r3, #4
+ bl MOD11_0225ADD8
+ mov r0, #0x20
+ str r0, [sp]
+ add r3, sp, #0x10
+ ldrb r3, [r3, r4]
+ mov r1, #7
+ ldr r2, [r5, #0x58]
+ lsl r1, r1, #6
+ lsl r3, r3, #0x14
+ add r1, r2, r1
+ add r0, r7, #0
+ mov r2, #1
+ lsr r3, r3, #0x10
+ bl FUN_02003054
+ add r0, r6, #0
+ mov r1, #4
+ bl FUN_0201AC68
+ ldr r0, _0225AC58 ; =0x0225F71C
+ lsl r1, r4, #2
+ ldrb r2, [r0, r1]
+ add r3, r0, r1
+ str r2, [sp]
+ ldrb r4, [r3, #3]
+ ldrb r2, [r3, #2]
+ sub r2, r4, r2
+ add r2, r2, #1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp, #4]
+ ldrb r0, [r0, r1]
+ ldrb r2, [r3, #1]
+ mov r1, #5
+ sub r0, r2, r0
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldrb r3, [r3, #2]
+ ldr r2, _0225AC5C ; =0x000002FF
+ add r0, r6, #0
+ bl FUN_02018540
+ add r0, r6, #0
+ mov r1, #5
+ bl FUN_0201AC68
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0225AC50: .word 0x0225F684
+_0225AC54: .word 0x0225F6C0
+_0225AC58: .word 0x0225F71C
+_0225AC5C: .word 0x000002FF
+
+ thumb_func_start MOD11_0225AC60
+MOD11_0225AC60: ; 0x0225AC60
+ push {r4, r5, r6, lr}
+ mov r5, #0
+ mov r6, #1
+ add r4, r5, #0
+_0225AC68:
+ add r0, r5, #4
+ cmp r0, #6
+ beq _0225AC7A
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r4, #0
+ bl FUN_0201797C
+ b _0225AC84
+_0225AC7A:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r6, #0
+ bl FUN_0201797C
+_0225AC84:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _0225AC68
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0225AC8C
+MOD11_0225AC8C: ; 0x0225AC8C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ cmp r1, #1
+ bne _0225AC9A
+ bl MOD11_0225ACB0
+_0225AC9A:
+ cmp r4, #1
+ bne _0225ACA8
+ ldr r0, _0225ACAC ; =MOD11_0225B76C
+ add r1, r5, #0
+ mov r2, #0xa
+ bl FUN_0200CA98
+_0225ACA8:
+ pop {r3, r4, r5, pc}
+ nop
+_0225ACAC: .word MOD11_0225B76C
+
+ thumb_func_start MOD11_0225ACB0
+MOD11_0225ACB0: ; 0x0225ACB0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_0225AABC
+ add r0, r4, #0
+ bl MOD11_0225AAF0
+ add r0, r4, #0
+ bl MOD11_0225A58C
+ add r0, r4, #0
+ bl MOD11_0225A1E4
+ add r0, r4, #0
+ bl MOD11_0225A234
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225ACD4
+MOD11_0225ACD4: ; 0x0225ACD4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ add r6, r5, #0
+ add r1, sp, #0
+ add r7, r2, #0
+ add r6, #0x18
+ bl MOD11_022314E0
+ mov r0, #0
+ b _0225AD1E
+_0225ACEE:
+ add r2, r0, #2
+ add r1, sp, #0
+ ldrb r1, [r1, r2]
+ cmp r7, #1
+ bne _0225AD0A
+ lsl r1, r1, #3
+ add r1, r6, r1
+ ldrb r1, [r1, #1]
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x1f
+ bne _0225AD0A
+ mov r1, #0
+ strb r1, [r4, r0]
+ b _0225AD1C
+_0225AD0A:
+ mov r1, #0x6a
+ lsl r1, r1, #4
+ ldrb r1, [r5, r1]
+ lsl r2, r0, #2
+ lsl r3, r1, #4
+ ldr r1, _0225AD28 ; =0x0225F9EC
+ add r1, r1, r3
+ ldr r1, [r2, r1]
+ strb r1, [r4, r0]
+_0225AD1C:
+ add r0, r0, #1
+_0225AD1E:
+ cmp r0, #4
+ blt _0225ACEE
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225AD28: .word 0x0225F9EC
+
+ thumb_func_start MOD11_0225AD2C
+MOD11_0225AD2C: ; 0x0225AD2C
+ push {r4, lr}
+ mov r4, #0x6a
+ lsl r4, r4, #4
+ ldrb r4, [r0, r4]
+ cmp r4, #0xb
+ bhi _0225AD76
+ add r4, r4, r4
+ add r4, pc
+ ldrh r4, [r4, #6]
+ lsl r4, r4, #0x10
+ asr r4, r4, #0x10
+ add pc, r4
+_0225AD44: ; jump table
+ .short _0225AD5C - _0225AD44 - 2 ; case 0
+ .short _0225AD76 - _0225AD44 - 2 ; case 1
+ .short _0225AD76 - _0225AD44 - 2 ; case 2
+ .short _0225AD76 - _0225AD44 - 2 ; case 3
+ .short _0225AD76 - _0225AD44 - 2 ; case 4
+ .short _0225AD76 - _0225AD44 - 2 ; case 5
+ .short _0225AD76 - _0225AD44 - 2 ; case 6
+ .short _0225AD76 - _0225AD44 - 2 ; case 7
+ .short _0225AD5C - _0225AD44 - 2 ; case 8
+ .short _0225AD5C - _0225AD44 - 2 ; case 9
+ .short _0225AD5C - _0225AD44 - 2 ; case 10
+ .short _0225AD5C - _0225AD44 - 2 ; case 11
+_0225AD5C:
+ mov r4, #0
+ add r0, r4, #0
+ mov r3, #1
+ sub r1, r1, #1
+_0225AD64:
+ cmp r4, r1
+ bne _0225AD6C
+ strb r3, [r2, r4]
+ b _0225AD6E
+_0225AD6C:
+ strb r0, [r2, r4]
+_0225AD6E:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _0225AD64
+ pop {r4, pc}
+_0225AD76:
+ add r1, r2, #0
+ add r2, r3, #0
+ bl MOD11_0225ACD4
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0225AD80
+MOD11_0225AD80: ; 0x0225AD80
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _0225AD90
+ bl ErrorHandling
+_0225AD90:
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ add r0, r4, r0
+ mov r1, #0
+ mov r2, #0x24
+ bl MI_CpuFill8
+ ldr r2, _0225ADAC ; =0x00000514
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0225ADAC: .word 0x00000514
+
+ thumb_func_start MOD11_0225ADB0
+MOD11_0225ADB0: ; 0x0225ADB0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _0225ADCE
+ bl FUN_0200CAB4
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ mov r1, #0
+ add r0, r4, r0
+ mov r2, #0x24
+ str r1, [r4, #8]
+ bl MI_CpuFill8
+_0225ADCE:
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0225ADD0
+MOD11_0225ADD0: ; 0x0225ADD0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0225ADD4
+MOD11_0225ADD4: ; 0x0225ADD4
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0225ADD8
+MOD11_0225ADD8: ; 0x0225ADD8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r6, r1, #0
+ add r4, r2, #0
+ add r7, r3, #0
+ bl MOD11_0222FF68
+ mov r1, #4
+ str r0, [sp, #4]
+ bl FUN_0201886C
+ mov ip, r0
+ lsl r0, r7, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x3c]
+ ldrb r7, [r4]
+ str r0, [sp]
+ ldr r0, [sp, #0x20]
+ lsl r0, r0, #1
+ ldrsh r1, [r6, r0]
+ ldrb r0, [r4, #1]
+ cmp r7, r0
+ bgt _0225AE40
+ lsl r6, r7, #5
+_0225AE0C:
+ lsl r2, r6, #1
+ mov r0, ip
+ add r5, r0, r2
+ ldr r0, [sp]
+ ldrb r3, [r4, #3]
+ add r2, r0, r2
+ ldrb r0, [r4, #2]
+ cmp r0, r3
+ bgt _0225AE36
+ lsl r3, r0, #1
+ add r2, r2, r3
+ add r3, r5, r3
+_0225AE24:
+ ldrh r5, [r2]
+ add r0, r0, #1
+ add r2, r2, #2
+ add r5, r1, r5
+ strh r5, [r3]
+ ldrb r5, [r4, #3]
+ add r3, r3, #2
+ cmp r0, r5
+ ble _0225AE24
+_0225AE36:
+ ldrb r0, [r4, #1]
+ add r7, r7, #1
+ add r6, #0x20
+ cmp r7, r0
+ ble _0225AE0C
+_0225AE40:
+ ldr r0, [sp, #4]
+ mov r1, #4
+ bl FUN_0201AC68
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0225AE4C
+MOD11_0225AE4C: ; 0x0225AE4C
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ mov r3, #0x6b
+ lsl r3, r3, #4
+ ldrsh r0, [r4, r3]
+ cmp r0, #0
+ beq _0225AE6C
+ cmp r0, #1
+ beq _0225AEDC
+ cmp r0, #2
+ beq _0225AEF8
+ b _0225AF66
+_0225AE6C:
+ mov r0, #2
+ str r0, [sp]
+ add r1, r3, #4
+ add r2, r3, #0
+ add r3, #0x10
+ add r2, #8
+ ldrb r3, [r4, r3]
+ ldr r1, [r4, r1]
+ ldr r2, [r4, r2]
+ add r0, r4, #0
+ bl MOD11_0225ADD8
+ ldr r0, _0225AF8C ; =0x000006C1
+ add r2, sp, #4
+ ldrb r1, [r4, r0]
+ mov r0, #0x14
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0225AF90 ; =0x000004CC
+ ldr r0, [r1, r0]
+ add r1, sp, #8
+ bl FUN_020119A4
+ ldr r0, _0225AF8C ; =0x000006C1
+ ldr r2, [sp, #4]
+ ldrb r1, [r4, r0]
+ mov r0, #0x14
+ sub r2, r2, #2
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0225AF90 ; =0x000004CC
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #8]
+ bl FUN_020118C4
+ ldr r0, _0225AF94 ; =0x000006C2
+ ldrb r1, [r4, r0]
+ cmp r1, #0xff
+ beq _0225AECE
+ lsl r1, r1, #2
+ add r1, r4, r1
+ sub r0, #0x9e
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225AECE
+ mov r1, #0
+ sub r2, r1, #2
+ bl FUN_0200C82C
+_0225AECE:
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ ldrsh r1, [r4, r0]
+ add sp, #0xc
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r3, r4, pc}
+_0225AEDC:
+ add r0, r3, #2
+ ldrsh r0, [r4, r0]
+ add r1, r0, #1
+ add r0, r3, #2
+ strh r1, [r4, r0]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225AF86
+ mov r1, #0
+ add r0, r3, #2
+ strh r1, [r4, r0]
+ ldrsh r0, [r4, r3]
+ add r0, r0, #1
+ strh r0, [r4, r3]
+_0225AEF8:
+ mov r0, #1
+ ldr r3, _0225AF98 ; =0x000006B4
+ str r0, [sp]
+ add r2, r3, #4
+ ldr r1, [r4, r3]
+ add r3, #0xc
+ ldrb r3, [r4, r3]
+ ldr r2, [r4, r2]
+ add r0, r4, #0
+ bl MOD11_0225ADD8
+ ldr r0, _0225AF8C ; =0x000006C1
+ add r2, sp, #4
+ ldrb r1, [r4, r0]
+ mov r0, #0x14
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0225AF90 ; =0x000004CC
+ ldr r0, [r1, r0]
+ add r1, sp, #8
+ bl FUN_020119A4
+ ldr r0, _0225AF8C ; =0x000006C1
+ ldr r2, [sp, #4]
+ ldrb r1, [r4, r0]
+ mov r0, #0x14
+ add r2, r2, #1
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0225AF90 ; =0x000004CC
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #8]
+ bl FUN_020118C4
+ ldr r0, _0225AF94 ; =0x000006C2
+ ldrb r1, [r4, r0]
+ cmp r1, #0xff
+ beq _0225AF58
+ lsl r1, r1, #2
+ add r1, r4, r1
+ sub r0, #0x9e
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225AF58
+ mov r1, #0
+ mov r2, #1
+ bl FUN_0200C82C
+_0225AF58:
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ ldrsh r1, [r4, r0]
+ add sp, #0xc
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r3, r4, pc}
+_0225AF66:
+ add r0, r3, #2
+ ldrsh r0, [r4, r0]
+ add r1, r0, #1
+ add r0, r3, #2
+ strh r1, [r4, r0]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225AF86
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD11_0225AC8C
+ add r0, r4, #0
+ bl MOD11_0225ADB0
+_0225AF86:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_0225AF8C: .word 0x000006C1
+_0225AF90: .word 0x000004CC
+_0225AF94: .word 0x000006C2
+_0225AF98: .word 0x000006B4
+
+ thumb_func_start MOD11_0225AF9C
+MOD11_0225AF9C: ; 0x0225AF9C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r4, r1, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldr r0, _0225B21C ; =0x000006BC
+ add r1, r4, #0
+ ldr r0, [r4, r0]
+ add r1, #0x18
+ cmp r0, #4
+ bgt _0225AFCE
+ cmp r0, #0
+ blt _0225B00A
+ add r2, r0, r0
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0225AFC4: ; jump table
+ .short _0225B00A - _0225AFC4 - 2 ; case 0
+ .short _0225AFD2 - _0225AFC4 - 2 ; case 1
+ .short _0225AFE0 - _0225AFC4 - 2 ; case 2
+ .short _0225AFEE - _0225AFC4 - 2 ; case 3
+ .short _0225AFFC - _0225AFC4 - 2 ; case 4
+_0225AFCE:
+ cmp r0, #0xff
+ b _0225B00A
+_0225AFD2:
+ mov r0, #5
+ str r0, [sp, #8]
+ ldrh r0, [r1]
+ mov r5, #0
+ mov r6, #9
+ str r0, [sp, #4]
+ b _0225B012
+_0225AFE0:
+ mov r0, #6
+ str r0, [sp, #8]
+ ldrh r0, [r1, #2]
+ mov r5, #1
+ mov r6, #0xa
+ str r0, [sp, #4]
+ b _0225B012
+_0225AFEE:
+ mov r0, #7
+ str r0, [sp, #8]
+ ldrh r0, [r1, #4]
+ mov r5, #2
+ mov r6, #0xb
+ str r0, [sp, #4]
+ b _0225B012
+_0225AFFC:
+ mov r0, #8
+ str r0, [sp, #8]
+ ldrh r0, [r1, #6]
+ mov r5, #3
+ mov r6, #0xc
+ str r0, [sp, #4]
+ b _0225B012
+_0225B00A:
+ mov r5, #0
+ add r6, r5, #0
+ str r5, [sp, #8]
+ str r5, [sp, #4]
+_0225B012:
+ mov r3, #0x6b
+ lsl r3, r3, #4
+ ldrsh r0, [r4, r3]
+ cmp r0, #0
+ beq _0225B026
+ cmp r0, #1
+ beq _0225B100
+ cmp r0, #2
+ beq _0225B11E
+ b _0225B1F6
+_0225B026:
+ mov r0, #2
+ str r0, [sp]
+ add r1, r3, #4
+ add r2, r3, #0
+ add r3, #0x10
+ add r2, #8
+ ldrb r3, [r4, r3]
+ ldr r1, [r4, r1]
+ ldr r2, [r4, r2]
+ add r0, r4, #0
+ bl MOD11_0225ADD8
+ ldr r0, _0225B21C ; =0x000006BC
+ add r1, sp, #0x20
+ ldr r0, [r4, r0]
+ cmp r0, #0xff
+ beq _0225B0DA
+ ldr r0, _0225B220 ; =0x000004CC
+ add r2, sp, #0x1c
+ add r7, r4, r0
+ mov r0, #0x14
+ mul r0, r5
+ str r0, [sp, #0xc]
+ ldr r0, [r7, r0]
+ bl FUN_020119A4
+ ldr r0, [sp, #0xc]
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r7, r0]
+ ldr r1, [sp, #0x20]
+ sub r2, r2, #2
+ bl FUN_020118C4
+ ldr r0, _0225B220 ; =0x000004CC
+ add r1, sp, #0x20
+ add r7, r4, r0
+ mov r0, #0x14
+ mul r0, r6
+ str r0, [sp, #0x10]
+ ldr r0, [r7, r0]
+ add r2, sp, #0x1c
+ bl FUN_020119A4
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r7, r0]
+ ldr r1, [sp, #0x20]
+ sub r2, r2, #2
+ bl FUN_020118C4
+ ldr r0, _0225B220 ; =0x000004CC
+ mov r1, #0x14
+ add r6, r4, r0
+ ldr r0, [sp, #8]
+ add r2, sp, #0x1c
+ add r7, r0, #0
+ mul r7, r1
+ ldr r0, [r6, r7]
+ add r1, sp, #0x20
+ bl FUN_020119A4
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r6, r7]
+ ldr r1, [sp, #0x20]
+ sub r2, r2, #2
+ bl FUN_020118C4
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ beq _0225B0F2
+ lsl r5, r5, #2
+ ldr r0, _0225B224 ; =0x00000604
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ mov r1, #0
+ ldr r0, [r0]
+ sub r2, r1, #2
+ bl FUN_0200C7FC
+ ldr r0, _0225B228 ; =0x00000614
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225B0F2
+ mov r1, #0
+ ldr r0, [r0]
+ sub r2, r1, #2
+ bl FUN_0200C7FC
+ b _0225B0F2
+_0225B0DA:
+ ldr r0, _0225B22C ; =0x0000051C
+ add r2, sp, #0x1c
+ ldr r0, [r4, r0]
+ bl FUN_020119A4
+ ldr r0, _0225B22C ; =0x0000051C
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r4, r0]
+ ldr r1, [sp, #0x20]
+ sub r2, r2, #2
+ bl FUN_020118C4
+_0225B0F2:
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ ldrsh r1, [r4, r0]
+ add sp, #0x24
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r4, r5, r6, r7, pc}
+_0225B100:
+ add r0, r3, #2
+ ldrsh r0, [r4, r0]
+ add r1, r0, #1
+ add r0, r3, #2
+ strh r1, [r4, r0]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bgt _0225B112
+ b _0225B216
+_0225B112:
+ mov r1, #0
+ add r0, r3, #2
+ strh r1, [r4, r0]
+ ldrsh r0, [r4, r3]
+ add r0, r0, #1
+ strh r0, [r4, r3]
+_0225B11E:
+ mov r0, #1
+ ldr r3, _0225B230 ; =0x000006B4
+ str r0, [sp]
+ add r2, r3, #4
+ ldr r1, [r4, r3]
+ add r3, #0xc
+ ldrb r3, [r4, r3]
+ ldr r2, [r4, r2]
+ add r0, r4, #0
+ bl MOD11_0225ADD8
+ ldr r0, _0225B21C ; =0x000006BC
+ add r1, sp, #0x20
+ ldr r0, [r4, r0]
+ cmp r0, #0xff
+ beq _0225B1D0
+ ldr r0, _0225B220 ; =0x000004CC
+ add r2, sp, #0x1c
+ add r7, r4, r0
+ mov r0, #0x14
+ mul r0, r5
+ str r0, [sp, #0x14]
+ ldr r0, [r7, r0]
+ bl FUN_020119A4
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r7, r0]
+ ldr r1, [sp, #0x20]
+ add r2, r2, #1
+ bl FUN_020118C4
+ ldr r0, _0225B220 ; =0x000004CC
+ add r1, sp, #0x20
+ add r7, r4, r0
+ mov r0, #0x14
+ mul r0, r6
+ str r0, [sp, #0x18]
+ ldr r0, [r7, r0]
+ add r2, sp, #0x1c
+ bl FUN_020119A4
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r7, r0]
+ ldr r1, [sp, #0x20]
+ add r2, r2, #1
+ bl FUN_020118C4
+ ldr r0, _0225B220 ; =0x000004CC
+ mov r1, #0x14
+ add r6, r4, r0
+ ldr r0, [sp, #8]
+ add r2, sp, #0x1c
+ add r7, r0, #0
+ mul r7, r1
+ ldr r0, [r6, r7]
+ add r1, sp, #0x20
+ bl FUN_020119A4
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r6, r7]
+ ldr r1, [sp, #0x20]
+ add r2, r2, #1
+ bl FUN_020118C4
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ beq _0225B1E8
+ lsl r5, r5, #2
+ ldr r0, _0225B224 ; =0x00000604
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, #1
+ bl FUN_0200C7FC
+ ldr r0, _0225B228 ; =0x00000614
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225B1E8
+ ldr r0, [r0]
+ mov r1, #0
+ mov r2, #1
+ bl FUN_0200C7FC
+ b _0225B1E8
+_0225B1D0:
+ ldr r0, _0225B22C ; =0x0000051C
+ add r2, sp, #0x1c
+ ldr r0, [r4, r0]
+ bl FUN_020119A4
+ ldr r0, _0225B22C ; =0x0000051C
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r4, r0]
+ ldr r1, [sp, #0x20]
+ add r2, r2, #1
+ bl FUN_020118C4
+_0225B1E8:
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ ldrsh r1, [r4, r0]
+ add sp, #0x24
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r4, r5, r6, r7, pc}
+_0225B1F6:
+ add r0, r3, #2
+ ldrsh r0, [r4, r0]
+ add r1, r0, #1
+ add r0, r3, #2
+ strh r1, [r4, r0]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225B216
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_0225AC8C
+ add r0, r4, #0
+ bl MOD11_0225ADB0
+_0225B216:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0225B21C: .word 0x000006BC
+_0225B220: .word 0x000004CC
+_0225B224: .word 0x00000604
+_0225B228: .word 0x00000614
+_0225B22C: .word 0x0000051C
+_0225B230: .word 0x000006B4
+
+ thumb_func_start MOD11_0225B234
+MOD11_0225B234: ; 0x0225B234
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ mov r1, #0x6b
+ lsl r1, r1, #4
+ ldrsh r0, [r4, r1]
+ cmp r0, #3
+ bls _0225B24C
+ b _0225B3AE
+_0225B24C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225B258: ; jump table
+ .short _0225B260 - _0225B258 - 2 ; case 0
+ .short _0225B2E8 - _0225B258 - 2 ; case 1
+ .short _0225B304 - _0225B258 - 2 ; case 2
+ .short _0225B38E - _0225B258 - 2 ; case 3
+_0225B260:
+ add r1, #0x20
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ add r2, sp, #4
+ mov r3, #1
+ bl MOD11_0225AD2C
+ mov r5, #0
+ mov r7, #2
+ add r6, sp, #4
+ b _0225B2D6
+_0225B276:
+ ldrb r0, [r6, r5]
+ cmp r0, #1
+ bne _0225B2D4
+ mov r1, #6
+ add r2, r5, #0
+ mul r2, r1
+ ldr r1, _0225B3C4 ; =0x0225F88C
+ lsl r3, r5, #2
+ add r1, r1, r2
+ ldr r2, _0225B3C8 ; =0x0225F7FC
+ add r0, r4, #0
+ add r2, r2, r3
+ mov r3, #4
+ str r7, [sp]
+ bl MOD11_0225ADD8
+ mov r0, #0x14
+ mul r0, r5
+ add r1, r4, r0
+ ldr r0, _0225B3CC ; =0x000004CC
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225B2C0
+ add r1, sp, #0xc
+ add r2, sp, #8
+ bl FUN_020119A4
+ mov r0, #0x14
+ mul r0, r5
+ add r1, r4, r0
+ ldr r0, _0225B3CC ; =0x000004CC
+ ldr r2, [sp, #8]
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0xc]
+ sub r2, r2, #2
+ bl FUN_020118C4
+_0225B2C0:
+ lsl r0, r5, #2
+ add r1, r4, r0
+ ldr r0, _0225B3D0 ; =0x00000624
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225B2D4
+ mov r1, #0
+ sub r2, r1, #2
+ bl FUN_0200C82C
+_0225B2D4:
+ add r5, r5, #1
+_0225B2D6:
+ cmp r5, #4
+ blt _0225B276
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ ldrsh r1, [r4, r0]
+ add sp, #0x10
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225B2E8:
+ add r0, r1, #2
+ ldrsh r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #2
+ strh r2, [r4, r0]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225B3BE
+ mov r2, #0
+ add r0, r1, #2
+ strh r2, [r4, r0]
+ ldrsh r0, [r4, r1]
+ add r0, r0, #1
+ strh r0, [r4, r1]
+_0225B304:
+ mov r1, #0x6d
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ add r2, sp, #4
+ mov r3, #1
+ bl MOD11_0225AD2C
+ mov r5, #0
+ mov r7, #1
+ add r6, sp, #4
+ b _0225B37C
+_0225B31C:
+ ldrb r0, [r6, r5]
+ cmp r0, #1
+ bne _0225B37A
+ mov r1, #6
+ add r2, r5, #0
+ mul r2, r1
+ ldr r1, _0225B3C4 ; =0x0225F88C
+ lsl r3, r5, #2
+ add r1, r1, r2
+ ldr r2, _0225B3C8 ; =0x0225F7FC
+ add r0, r4, #0
+ add r2, r2, r3
+ mov r3, #4
+ str r7, [sp]
+ bl MOD11_0225ADD8
+ mov r0, #0x14
+ mul r0, r5
+ add r1, r4, r0
+ ldr r0, _0225B3CC ; =0x000004CC
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225B366
+ add r1, sp, #0xc
+ add r2, sp, #8
+ bl FUN_020119A4
+ mov r0, #0x14
+ mul r0, r5
+ add r1, r4, r0
+ ldr r0, _0225B3CC ; =0x000004CC
+ ldr r2, [sp, #8]
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0xc]
+ add r2, r2, #1
+ bl FUN_020118C4
+_0225B366:
+ lsl r0, r5, #2
+ add r1, r4, r0
+ ldr r0, _0225B3D0 ; =0x00000624
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225B37A
+ mov r1, #0
+ mov r2, #1
+ bl FUN_0200C82C
+_0225B37A:
+ add r5, r5, #1
+_0225B37C:
+ cmp r5, #4
+ blt _0225B31C
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ ldrsh r1, [r4, r0]
+ add sp, #0x10
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225B38E:
+ add r0, r1, #2
+ ldrsh r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #2
+ strh r2, [r4, r0]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225B3BE
+ mov r2, #0
+ add r0, r1, #2
+ strh r2, [r4, r0]
+ ldrsh r0, [r4, r1]
+ add sp, #0x10
+ add r0, r0, #1
+ strh r0, [r4, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225B3AE:
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_0225AC8C
+ add r0, r4, #0
+ bl MOD11_0225ADB0
+_0225B3BE:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225B3C4: .word 0x0225F88C
+_0225B3C8: .word 0x0225F7FC
+_0225B3CC: .word 0x000004CC
+_0225B3D0: .word 0x00000624
+
+ thumb_func_start MOD11_0225B3D4
+MOD11_0225B3D4: ; 0x0225B3D4
+ cmp r0, #0
+ bne _0225B3DC
+ ldr r0, _0225B42C ; =0x00070800
+ bx lr
+_0225B3DC:
+ cmp r1, r0
+ bne _0225B3E4
+ ldr r0, _0225B430 ; =0x00010200
+ bx lr
+_0225B3E4:
+ cmp r1, #2
+ bgt _0225B3F0
+ cmp r0, #1
+ bne _0225B428
+ ldr r0, _0225B434 ; =0x00050600
+ bx lr
+_0225B3F0:
+ cmp r1, #7
+ bgt _0225B408
+ cmp r0, #1
+ beq _0225B3FE
+ cmp r0, #2
+ beq _0225B402
+ b _0225B428
+_0225B3FE:
+ ldr r0, _0225B434 ; =0x00050600
+ bx lr
+_0225B402:
+ mov r0, #0xc1
+ lsl r0, r0, #0xa
+ bx lr
+_0225B408:
+ asr r2, r1, #1
+ lsr r2, r2, #0x1e
+ add r2, r1, r2
+ asr r2, r2, #2
+ cmp r0, r2
+ bgt _0225B418
+ ldr r0, _0225B434 ; =0x00050600
+ bx lr
+_0225B418:
+ lsr r2, r1, #0x1f
+ add r2, r1, r2
+ asr r1, r2, #1
+ cmp r0, r1
+ bgt _0225B428
+ mov r0, #0xc1
+ lsl r0, r0, #0xa
+ bx lr
+_0225B428:
+ ldr r0, _0225B430 ; =0x00010200
+ bx lr
+ .align 2, 0
+_0225B42C: .word 0x00070800
+_0225B430: .word 0x00010200
+_0225B434: .word 0x00050600
+
+ thumb_func_start MOD11_0225B438
+MOD11_0225B438: ; 0x0225B438
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl MOD11_0222FF68
+ add r4, r0, #0
+ ldrb r0, [r5, #0x13]
+ cmp r0, #0
+ beq _0225B454
+ cmp r0, #1
+ beq _0225B4AA
+ b _0225B4D6
+_0225B454:
+ mov r2, #8
+ ldrsh r1, [r5, r2]
+ ldr r0, _0225B528 ; =0x000018E7
+ add r1, r1, r0
+ strh r1, [r5, #8]
+ mov r1, #0xa
+ ldrsh r3, [r5, r1]
+ mov r1, #0xfa
+ lsl r1, r1, #2
+ sub r1, r3, r1
+ strh r1, [r5, #0xa]
+ ldrsh r1, [r5, r2]
+ lsl r0, r0, #2
+ sub r0, r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ strh r0, [r5, #0xc]
+ mov r0, #0xa
+ ldrsh r0, [r5, r0]
+ mov r1, #0x64
+ neg r0, r0
+ bl _s32_div_f
+ strh r0, [r5, #0xe]
+ mov r0, #8
+ ldrsh r0, [r5, r0]
+ cmp r0, #0
+ bge _0225B496
+ mov r0, #0xa
+ ldrsh r0, [r5, r0]
+ cmp r0, #0
+ bgt _0225B526
+_0225B496:
+ mov r1, #0
+ strh r1, [r5, #8]
+ mov r0, #0x90
+ strh r0, [r5, #0xa]
+ strh r1, [r5, #0xc]
+ strh r1, [r5, #0xe]
+ ldrb r0, [r5, #0x13]
+ add r0, r0, #1
+ strb r0, [r5, #0x13]
+ pop {r4, r5, r6, pc}
+_0225B4AA:
+ ldr r1, [r5]
+ ldr r0, _0225B52C ; =0x000006A2
+ mov r2, #0
+ strb r2, [r1, r0]
+ ldr r0, [r5, #4]
+ bl FUN_0200CAB4
+ bl FUN_02015F1C
+ ldr r2, _0225B530 ; =0x04001000
+ ldr r0, _0225B534 ; =0xFFFF1FFF
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [r5]
+ mov r1, #1
+ bl MOD11_0225B77C
+ ldrb r0, [r5, #0x13]
+ add r0, r0, #1
+ strb r0, [r5, #0x13]
+ pop {r4, r5, r6, pc}
+_0225B4D6:
+ ldr r0, [r5]
+ bl MOD11_0225B780
+ cmp r0, #0
+ beq _0225B526
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #4
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #4
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #5
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #5
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ ldr r0, [r5]
+ mov r1, #1
+ ldr r0, [r0]
+ bl MOD11_022312AC
+ add r0, r5, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_0225B526:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0225B528: .word 0x000018E7
+_0225B52C: .word 0x000006A2
+_0225B530: .word 0x04001000
+_0225B534: .word 0xFFFF1FFF
+
+ thumb_func_start MOD11_0225B538
+MOD11_0225B538: ; 0x0225B538
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl MOD11_0222FF68
+ add r6, r0, #0
+ ldrb r0, [r5, #0x12]
+ cmp r0, #4
+ bne _0225B586
+ mov r0, #0xc
+ ldrsh r1, [r5, r0]
+ mov r0, #0xff
+ sub r3, r0, r1
+ cmp r3, #0
+ ble _0225B55A
+ mov r3, #0
+_0225B55A:
+ add r0, r6, #0
+ mov r1, #4
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r4, [r5, r3]
+ mov r3, #0xff
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #0
+ sub r3, r3, r4
+ bl FUN_020179E0
+ mov r0, #8
+ ldrsh r0, [r5, r0]
+ mov r1, #0x64
+ neg r0, r0
+ bl _s32_div_f
+ add r4, r0, #0
+ b _0225B5B6
+_0225B586:
+ mov r0, #0xc
+ ldrsh r3, [r5, r0]
+ cmp r3, #0
+ bge _0225B590
+ mov r3, #0
+_0225B590:
+ add r0, r6, #0
+ mov r1, #4
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r3, [r5, r3]
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020179E0
+ mov r0, #8
+ ldrsh r0, [r5, r0]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r4, r0, #0
+ add r4, #0xff
+_0225B5B6:
+ add r0, r6, #0
+ mov r1, #4
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ mov r0, #0xa
+ ldrsh r0, [r5, r0]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r0, #0x90
+ cmp r4, #0
+ bge _0225B5E2
+ mov r4, #0
+ b _0225B5E8
+_0225B5E2:
+ cmp r4, #0xff
+ ble _0225B5E8
+ mov r4, #0xff
+_0225B5E8:
+ cmp r0, #0xc0
+ ble _0225B5F0
+ mov r0, #0xc0
+ b _0225B5F6
+_0225B5F0:
+ cmp r0, #0
+ bge _0225B5F6
+ mov r0, #0
+_0225B5F6:
+ ldrb r1, [r5, #0x12]
+ cmp r1, #4
+ bne _0225B60A
+ lsl r1, r4, #0x18
+ ldr r2, _0225B63C ; =0x04001040
+ lsr r1, r1, #0x18
+ strh r1, [r2]
+ mov r1, #0x90
+ strh r1, [r2, #4]
+ b _0225B620
+_0225B60A:
+ cmp r4, #0
+ bne _0225B610
+ mov r4, #1
+_0225B610:
+ mov r1, #0xff
+ lsl r2, r4, #8
+ lsl r1, r1, #8
+ and r1, r2
+ ldr r2, _0225B63C ; =0x04001040
+ strh r1, [r2]
+ mov r1, #0x90
+ strh r1, [r2, #4]
+_0225B620:
+ ldr r2, _0225B640 ; =0x04001042
+ mov r1, #0xff
+ lsl r0, r0, #0x18
+ strh r1, [r2]
+ lsr r1, r0, #0x18
+ mov r0, #9
+ lsl r0, r0, #0xc
+ orr r0, r1
+ strh r0, [r2, #4]
+ mov r0, #0xe
+ ldrsh r0, [r5, r0]
+ strh r0, [r5, #0x10]
+ pop {r4, r5, r6, pc}
+ nop
+_0225B63C: .word 0x04001040
+_0225B640: .word 0x04001042
+
+ thumb_func_start MOD11_0225B644
+MOD11_0225B644: ; 0x0225B644
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ ldr r0, _0225B6FC ; =0x04000006
+ ldrh r0, [r0]
+ cmp r0, #0x90
+ bne _0225B68E
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl MOD11_0222FF68
+ mov r2, #0
+ mov r1, #4
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_020179E0
+ mov r3, #0x10
+ ldrsh r3, [r4, r3]
+ add r0, r5, #0
+ mov r1, #4
+ mov r2, #3
+ bl FUN_020179E0
+ mov r2, #0
+ add r0, r5, #0
+ mov r1, #5
+ add r3, r2, #0
+ bl FUN_020179E0
+ mov r3, #0x10
+ ldrsh r3, [r4, r3]
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #3
+ bl FUN_020179E0
+ pop {r4, r5, r6, pc}
+_0225B68E:
+ cmp r0, #0xc0
+ ble _0225B6F8
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl MOD11_0222FF68
+ ldrb r1, [r4, #0x12]
+ add r5, r0, #0
+ cmp r1, #4
+ bne _0225B6C6
+ mov r3, #0xc
+ ldrsh r6, [r4, r3]
+ mov r3, #0xff
+ mov r1, #4
+ mov r2, #0
+ sub r3, r3, r6
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r4, [r4, r3]
+ mov r3, #0xff
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ sub r3, r3, r4
+ bl FUN_020179E0
+ b _0225B6E0
+_0225B6C6:
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ mov r1, #4
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020179E0
+_0225B6E0:
+ add r0, r5, #0
+ mov r1, #4
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+_0225B6F8:
+ pop {r4, r5, r6, pc}
+ nop
+_0225B6FC: .word 0x04000006
+
+ thumb_func_start MOD11_0225B700
+MOD11_0225B700: ; 0x0225B700
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ ldr r0, _0225B760 ; =0x0000069F
+ ldr r2, _0225B764 ; =0x0225FAAC
+ ldrsb r1, [r1, r0]
+ mov r0, #0x30
+ ldr r7, _0225B768 ; =0x0000FFFF
+ mul r0, r1
+ add r6, r2, r0
+ mov r4, #0
+ add r5, r6, #0
+_0225B716:
+ ldrh r0, [r5, #4]
+ cmp r0, r7
+ bne _0225B72A
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0
+ bl FUN_0201797C
+ b _0225B736
+_0225B72A:
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #1
+ bl FUN_0201797C
+_0225B736:
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #4
+ blt _0225B716
+ mov r4, #0
+_0225B740:
+ ldrh r1, [r6, #0xc]
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ add r4, r4, #1
+ add r6, r6, #2
+ cmp r4, #4
+ blt _0225B740
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225B760: .word 0x0000069F
+_0225B764: .word 0x0225FAAC
+_0225B768: .word 0x0000FFFF
+
+ thumb_func_start MOD11_0225B76C
+MOD11_0225B76C: ; 0x0225B76C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_0225AC60
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0225B77C
+MOD11_0225B77C: ; 0x0225B77C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0225B780
+MOD11_0225B780: ; 0x0225B780
+ ldr r1, _0225B790 ; =0x00000698
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _0225B78C
+ mov r0, #1
+ bx lr
+_0225B78C:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_0225B790: .word 0x00000698
+
+ thumb_func_start MOD11_0225B794
+MOD11_0225B794: ; 0x0225B794
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r1, #0
+ ldr r0, [r5]
+ bl MOD11_022300CC
+ add r4, r0, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0225B814
+ ldr r0, _0225B818 ; =0x000006AA
+ mov r1, #1
+ ldrsh r0, [r5, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ asr r0, r0, #8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, _0225B81C ; =0x00007FFF
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl FUN_020039E8
+ ldr r1, _0225B820 ; =0x000006A8
+_0225B7C8:
+ ldrb r0, [r5, r1]
+ cmp r0, #0
+ bne _0225B7DA
+ add r0, r1, #2
+ ldrsh r2, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #8
+ add r2, r2, r0
+ b _0225B7E4
+_0225B7DA:
+ add r0, r1, #2
+ ldrsh r2, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #8
+ sub r2, r2, r0
+_0225B7E4:
+ add r0, r1, #2
+ strh r2, [r5, r0]
+ ldr r0, _0225B818 ; =0x000006AA
+ mov r1, #0x11
+ ldrsh r2, [r5, r0]
+ lsl r1, r1, #8
+ cmp r2, r1
+ blt _0225B804
+ mov r1, #0xf
+ lsl r1, r1, #8
+ strh r1, [r5, r0]
+ mov r1, #1
+ sub r0, r0, #2
+ add sp, #8
+ strb r1, [r5, r0]
+ pop {r3, r4, r5, pc}
+_0225B804:
+ cmp r2, #0
+ bgt _0225B814
+ mov r1, #1
+ lsl r1, r1, #8
+ strh r1, [r5, r0]
+ mov r1, #0
+ sub r0, r0, #2
+ strb r1, [r5, r0]
+_0225B814:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0225B818: .word 0x000006AA
+_0225B81C: .word 0x00007FFF
+_0225B820: .word 0x000006A8
+
+ thumb_func_start MOD11_0225B824
+MOD11_0225B824: ; 0x0225B824
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ bl FUN_02002BD4
+ add r6, r0, #0
+ bl FUN_02002BF4
+ add r7, r0, #0
+ bl FUN_02002BE4
+ bl FUN_02002C04
+ ldr r0, [r5]
+ bl MOD11_022300CC
+ add r4, r0, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0225B8A8
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02003204
+ add r4, r0, #0
+ ldr r0, _0225B8AC ; =0x021C48F8
+ ldrh r0, [r0, #0x22]
+ cmp r0, #0
+ beq _0225B888
+ cmp r6, #1
+ beq _0225B866
+ cmp r7, #1
+ bne _0225B888
+_0225B866:
+ ldr r1, [r5, #0x5c]
+ add r0, r4, #0
+ add r0, #0x16
+ add r1, #0x16
+ mov r2, #0xa
+ bl memcmp
+ cmp r0, #0
+ bne _0225B8A8
+ ldr r0, [r5, #0x60]
+ add r4, #0x16
+ add r0, #0x16
+ add r1, r4, #0
+ mov r2, #0xa
+ bl MIi_CpuCopy16
+ pop {r3, r4, r5, r6, r7, pc}
+_0225B888:
+ ldr r1, [r5, #0x60]
+ add r0, r4, #0
+ add r0, #0x16
+ add r1, #0x16
+ mov r2, #0xa
+ bl memcmp
+ cmp r0, #0
+ bne _0225B8A8
+ ldr r0, [r5, #0x5c]
+ add r4, #0x16
+ add r0, #0x16
+ add r1, r4, #0
+ mov r2, #0xa
+ bl MIi_CpuCopy16
+_0225B8A8:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225B8AC: .word 0x021C48F8
+
+ thumb_func_start MOD11_0225B8B0
+MOD11_0225B8B0: ; 0x0225B8B0
+ push {r4, r5, r6, lr}
+ mov r6, #0x6f
+ lsl r6, r6, #4
+ add r2, r6, #0
+ add r5, r0, #0
+ sub r2, #0x51
+ ldrsb r2, [r5, r2]
+ ldr r1, _0225B914 ; =0x0225FAAC
+ mov r3, #0x30
+ add r4, r2, #0
+ mul r4, r3
+ add r4, r1, r4
+ ldr r2, [r4, #0x20]
+ cmp r2, #0
+ bne _0225B8D4
+ sub r3, #0x31
+ add r0, r3, #0
+ pop {r4, r5, r6, pc}
+_0225B8D4:
+ ldrb r1, [r5, r6]
+ cmp r1, #0
+ bne _0225B90C
+ add r0, r6, #4
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ beq _0225B8EC
+ ldr r1, _0225B918 ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ ldr r1, _0225B91C ; =0x00000CF3
+ tst r1, r2
+ beq _0225B906
+_0225B8EC:
+ cmp r0, #0
+ bne _0225B8F6
+ ldr r0, _0225B920 ; =0x000005DC
+ bl FUN_020054C8
+_0225B8F6:
+ mov r1, #1
+ ldr r0, _0225B924 ; =0x000006F4
+ strb r1, [r5, r6]
+ mov r2, #0
+ strb r2, [r5, r0]
+ ldr r2, [r4, #0x20]
+ add r0, r5, #0
+ blx r2
+_0225B906:
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, r5, r6, pc}
+_0225B90C:
+ mov r1, #0
+ blx r2
+ pop {r4, r5, r6, pc}
+ nop
+_0225B914: .word 0x0225FAAC
+_0225B918: .word 0x021C48B8
+_0225B91C: .word 0x00000CF3
+_0225B920: .word 0x000005DC
+_0225B924: .word 0x000006F4
+
+ thumb_func_start MOD11_0225B928
+MOD11_0225B928: ; 0x0225B928
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r1, [sp, #8]
+ mov r1, #0x6f
+ lsl r1, r1, #4
+ add r6, r0, #0
+ add r2, r1, #0
+ sub r2, #0x51
+ ldrsb r3, [r6, r2]
+ add r4, r6, r1
+ mov r2, #0x30
+ sub r1, #0x52
+ ldr r0, _0225BAE8 ; =0x0225FAAC
+ mul r2, r3
+ add r7, r0, r2
+ ldrb r1, [r6, r1]
+ ldr r0, [r6]
+ bl MOD11_0223022C
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD11_0222FF7C
+ bl MOD11_02253A74
+ ldr r1, [sp, #8]
+ cmp r1, #1
+ bne _0225B9AE
+ mov r1, #0
+ ldrsb r1, [r0, r1]
+ ldr r2, _0225BAEC ; =0x0225F698
+ strb r1, [r4, #2]
+ mov r1, #1
+ ldrsb r0, [r0, r1]
+ strb r0, [r4, #1]
+ ldrsb r1, [r4, r1]
+ lsl r0, r1, #1
+ add r3, r1, r0
+ mov r0, #2
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ ldrb r1, [r1, r0]
+ ldr r0, [r7, #0x14]
+ lsl r3, r1, #2
+ add r0, r0, r3
+ ldrb r0, [r0, #1]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r4, [r7, #0x14]
+ ldr r0, _0225BAF0 ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ mov r0, #0
+ add sp, #0x10
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225B9AE:
+ ldr r0, _0225BAF4 ; =0x0000069F
+ ldrsb r0, [r6, r0]
+ cmp r0, #5
+ beq _0225B9BA
+ cmp r0, #6
+ bne _0225B9CA
+_0225B9BA:
+ mov r1, #1
+ ldr r3, _0225BAEC ; =0x0225F698
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_0225C574
+ add r5, r0, #0
+ b _0225BA34
+_0225B9CA:
+ mov r0, #1
+ ldrsb r1, [r4, r0]
+ lsl r0, r1, #1
+ add r2, r1, r0
+ mov r0, #2
+ ldr r1, _0225BAEC ; =0x0225F698
+ ldrsb r0, [r4, r0]
+ add r1, r1, r2
+ ldrb r0, [r0, r1]
+ str r0, [sp, #0xc]
+ cmp r0, #3
+ bne _0225B9EC
+ ldr r0, _0225BAF8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x40
+ tst r0, r1
+ bne _0225BA34
+_0225B9EC:
+ ldr r3, _0225BAEC ; =0x0225F698
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #2
+ bl MOD11_0225C574
+ add r5, r0, #0
+ bne _0225BA34
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _0225BA34
+ ldr r0, _0225BAF8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0225BA1E
+ mov r0, #0
+ strb r0, [r4, #2]
+ mov r0, #1
+ strb r0, [r4, #1]
+ ldr r0, _0225BAFC ; =0x000005DC
+ bl FUN_020054C8
+ mov r5, #0x20
+ b _0225BA34
+_0225BA1E:
+ mov r0, #0x10
+ tst r0, r1
+ beq _0225BA34
+ mov r0, #2
+ strb r0, [r4, #2]
+ mov r0, #1
+ strb r0, [r4, #1]
+ ldr r0, _0225BAFC ; =0x000005DC
+ bl FUN_020054C8
+ mov r5, #0x10
+_0225BA34:
+ cmp r5, #0x20
+ bhi _0225BA50
+ bhs _0225BA5C
+ cmp r5, #2
+ bhi _0225BA4A
+ cmp r5, #1
+ blo _0225BAE0
+ beq _0225BA9A
+ cmp r5, #2
+ beq _0225BAB0
+ b _0225BAE0
+_0225BA4A:
+ cmp r5, #0x10
+ beq _0225BA5C
+ b _0225BAE0
+_0225BA50:
+ cmp r5, #0x40
+ bhi _0225BA58
+ beq _0225BA5C
+ b _0225BAE0
+_0225BA58:
+ cmp r5, #0x80
+ bne _0225BAE0
+_0225BA5C:
+ mov r0, #1
+ ldrsb r1, [r4, r0]
+ ldr r2, _0225BAEC ; =0x0225F698
+ lsl r0, r1, #1
+ add r3, r1, r0
+ mov r0, #2
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ ldrb r1, [r1, r0]
+ ldr r0, [r7, #0x14]
+ lsl r3, r1, #2
+ add r0, r0, r3
+ ldrb r0, [r0, #1]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r4, [r7, #0x14]
+ ldr r0, _0225BAF0 ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ b _0225BAE0
+_0225BA9A:
+ mov r0, #1
+ ldrsb r1, [r4, r0]
+ ldr r2, _0225BAEC ; =0x0225F698
+ add sp, #0x10
+ lsl r0, r1, #1
+ add r3, r1, r0
+ mov r0, #2
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ ldrb r0, [r1, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225BAB0:
+ ldr r0, _0225BB00 ; =0x000006A3
+ ldrb r0, [r6, r0]
+ cmp r0, #1
+ bne _0225BAE0
+ mov r0, #0
+ add r2, r0, #0
+ mov r3, #1
+ ldr r1, [r7, #0x18]
+ ldr r5, [r7, #0x14]
+ b _0225BACE
+_0225BAC4:
+ lsl r4, r0, #2
+ ldr r4, [r1, r4]
+ cmp r4, #4
+ beq _0225BAE4
+ add r0, r0, #1
+_0225BACE:
+ lsl r4, r0, #2
+ ldrb r4, [r5, r4]
+ cmp r0, r4
+ bge _0225BADA
+ add r4, r3, #0
+ b _0225BADC
+_0225BADA:
+ add r4, r2, #0
+_0225BADC:
+ cmp r4, #0xff
+ bne _0225BAC4
+_0225BAE0:
+ mov r0, #0
+ mvn r0, r0
+_0225BAE4:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225BAE8: .word 0x0225FAAC
+_0225BAEC: .word 0x0225F698
+_0225BAF0: .word 0x000006EC
+_0225BAF4: .word 0x0000069F
+_0225BAF8: .word 0x021C48B8
+_0225BAFC: .word 0x000005DC
+_0225BB00: .word 0x000006A3
+
+ thumb_func_start MOD11_0225BB04
+MOD11_0225BB04: ; 0x0225BB04
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r1, _0225BB60 ; =0x0000069E
+ ldr r0, [r5]
+ ldrb r1, [r5, r1]
+ bl MOD11_0223022C
+ add r6, r0, #0
+ cmp r4, #3
+ bne _0225BB26
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl MOD11_02230CB8
+ cmp r0, #0
+ bne _0225BB5C
+_0225BB26:
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ bl MOD11_02253A74
+ mov r5, #0
+ ldr r1, _0225BB64 ; =0x0225F698
+ add r2, r5, #0
+ b _0225BB58
+_0225BB3A:
+ lsl r6, r5, #1
+ add r6, r5, r6
+ add r3, r2, #0
+ add r7, r1, r6
+ b _0225BB52
+_0225BB44:
+ ldrb r6, [r3, r7]
+ cmp r4, r6
+ bne _0225BB50
+ strb r3, [r0]
+ strb r5, [r0, #1]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225BB50:
+ add r3, r3, #1
+_0225BB52:
+ cmp r3, #3
+ blt _0225BB44
+ add r5, r5, #1
+_0225BB58:
+ cmp r5, #2
+ blt _0225BB3A
+_0225BB5C:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225BB60: .word 0x0000069E
+_0225BB64: .word 0x0225F698
+
+ thumb_func_start MOD11_0225BB68
+MOD11_0225BB68: ; 0x0225BB68
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, r0, #0
+ mov r0, #0x6f
+ lsl r0, r0, #4
+ add r3, r0, #0
+ sub r3, #0x51
+ ldrsb r5, [r6, r3]
+ mov r3, #0x30
+ ldr r2, _0225BC54 ; =0x0225FAAC
+ mul r3, r5
+ add r4, r6, r0
+ add r5, r2, r3
+ cmp r1, #1
+ bne _0225BBCC
+ mov r1, #0
+ strb r1, [r4, #2]
+ strb r1, [r4, #1]
+ mov r1, #1
+ ldrsb r2, [r4, r1]
+ mov r3, #2
+ ldr r1, _0225BC58 ; =0x0225F688
+ ldrsb r3, [r4, r3]
+ add r1, r1, r2
+ sub r0, r0, #4
+ ldrb r2, [r3, r1]
+ ldr r1, [r5, #0x14]
+ lsl r3, r2, #2
+ add r1, r1, r3
+ ldrb r1, [r1, #1]
+ sub r1, #8
+ str r1, [sp]
+ mov r1, #0x11
+ lsl r1, r1, #0x10
+ str r1, [sp, #4]
+ ldr r4, [r5, #0x14]
+ ldr r0, [r6, r0]
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ mov r0, #0
+ add sp, #8
+ mvn r0, r0
+ pop {r4, r5, r6, pc}
+_0225BBCC:
+ ldr r3, _0225BC58 ; =0x0225F688
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #2
+ bl MOD11_0225C574
+ cmp r0, #0x20
+ bhi _0225BBF2
+ bhs _0225BBFE
+ cmp r0, #2
+ bhi _0225BBEC
+ cmp r0, #1
+ blo _0225BC4A
+ beq _0225BC38
+ cmp r0, #2
+ b _0225BC4A
+_0225BBEC:
+ cmp r0, #0x10
+ beq _0225BBFE
+ b _0225BC4A
+_0225BBF2:
+ cmp r0, #0x40
+ bhi _0225BBFA
+ beq _0225BBFE
+ b _0225BC4A
+_0225BBFA:
+ cmp r0, #0x80
+ bne _0225BC4A
+_0225BBFE:
+ mov r0, #1
+ ldrsb r3, [r4, r0]
+ mov r0, #2
+ ldr r2, _0225BC58 ; =0x0225F688
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ ldrb r1, [r1, r0]
+ ldr r0, [r5, #0x14]
+ lsl r3, r1, #2
+ add r0, r0, r3
+ ldrb r0, [r0, #1]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r4, [r5, #0x14]
+ ldr r0, _0225BC5C ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ b _0225BC4A
+_0225BC38:
+ mov r0, #1
+ ldrsb r3, [r4, r0]
+ mov r0, #2
+ ldr r2, _0225BC58 ; =0x0225F688
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ add sp, #8
+ ldrb r0, [r1, r0]
+ pop {r4, r5, r6, pc}
+_0225BC4A:
+ mov r0, #0
+ mvn r0, r0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_0225BC54: .word 0x0225FAAC
+_0225BC58: .word 0x0225F688
+_0225BC5C: .word 0x000006EC
+
+ thumb_func_start MOD11_0225BC60
+MOD11_0225BC60: ; 0x0225BC60
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r1, #0
+ add r5, r0, #0
+ ldr r1, _0225BDD0 ; =0x0000069E
+ ldr r0, [r5]
+ ldrb r1, [r5, r1]
+ bl MOD11_0223022C
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl MOD11_0222FF7C
+ bl MOD11_02253A74
+ mov r1, #0x6f
+ lsl r1, r1, #4
+ add r4, r5, r1
+ sub r1, #0x51
+ ldrsb r2, [r5, r1]
+ add r3, r0, #0
+ mov r1, #0x30
+ mul r1, r2
+ ldr r0, _0225BDD4 ; =0x0225FAAC
+ add r2, r5, #0
+ add r6, r0, r1
+ add r2, #0x18
+ cmp r7, #1
+ bne _0225BD10
+ mov r0, #2
+ ldrsb r0, [r3, r0]
+ strb r0, [r4, #2]
+ mov r0, #3
+ ldrsb r0, [r3, r0]
+ strb r0, [r4, #1]
+ mov r0, #1
+ ldrsb r0, [r4, r0]
+ lsl r1, r0, #1
+ mov r0, #2
+ ldrsb r7, [r4, r0]
+ ldr r0, _0225BDD8 ; =0x0225F6A0
+ add r0, r0, r1
+ ldrb r0, [r7, r0]
+ cmp r0, #0
+ beq _0225BCDE
+ sub r1, r0, #1
+ lsl r1, r1, #1
+ ldrh r1, [r2, r1]
+ cmp r1, #0
+ bne _0225BCDE
+ mov r0, #0
+ strb r0, [r3, #2]
+ strb r0, [r3, #3]
+ strb r0, [r4, #2]
+ strb r0, [r4, #1]
+ mov r0, #1
+ ldrsb r0, [r4, r0]
+ lsl r2, r0, #1
+ mov r0, #2
+ ldrsb r1, [r4, r0]
+ ldr r0, _0225BDD8 ; =0x0225F6A0
+ add r0, r0, r2
+ ldrb r0, [r1, r0]
+_0225BCDE:
+ ldr r1, [r6, #0x14]
+ lsl r3, r0, #2
+ add r0, r1, r3
+ ldrb r0, [r0, #1]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r4, [r6, #0x14]
+ ldr r0, _0225BDDC ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r5, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ mov r0, #0
+ add sp, #0x10
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225BD10:
+ ldr r0, _0225BDD8 ; =0x0225F6A0
+ add r1, sp, #8
+ mov r2, #6
+ bl MI_CpuCopy8
+ add r0, r4, #0
+ mov r1, #2
+ mov r2, #3
+ add r3, sp, #8
+ bl MOD11_0225C574
+ cmp r0, #0x20
+ bhi _0225BD42
+ bhs _0225BD4E
+ cmp r0, #2
+ bhi _0225BD3C
+ cmp r0, #1
+ blo _0225BDC6
+ beq _0225BD8A
+ cmp r0, #2
+ beq _0225BD9E
+ b _0225BDC6
+_0225BD3C:
+ cmp r0, #0x10
+ beq _0225BD4E
+ b _0225BDC6
+_0225BD42:
+ cmp r0, #0x40
+ bhi _0225BD4A
+ beq _0225BD4E
+ b _0225BDC6
+_0225BD4A:
+ cmp r0, #0x80
+ bne _0225BDC6
+_0225BD4E:
+ mov r0, #1
+ ldrsb r0, [r4, r0]
+ ldr r2, _0225BDD8 ; =0x0225F6A0
+ lsl r3, r0, #1
+ mov r0, #2
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ ldrb r1, [r1, r0]
+ ldr r0, [r6, #0x14]
+ lsl r3, r1, #2
+ add r0, r0, r3
+ ldrb r0, [r0, #1]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r4, [r6, #0x14]
+ ldr r0, _0225BDDC ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r5, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ b _0225BDC6
+_0225BD8A:
+ mov r0, #1
+ ldrsb r0, [r4, r0]
+ ldr r2, _0225BDD8 ; =0x0225F6A0
+ add sp, #0x10
+ lsl r3, r0, #1
+ mov r0, #2
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ ldrb r0, [r1, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225BD9E:
+ mov r0, #0
+ add r2, r0, #0
+ mov r3, #1
+ ldr r1, [r6, #0x18]
+ ldr r5, [r6, #0x14]
+ b _0225BDB4
+_0225BDAA:
+ lsl r4, r0, #2
+ ldr r4, [r1, r4]
+ cmp r4, #0xff
+ beq _0225BDCA
+ add r0, r0, #1
+_0225BDB4:
+ lsl r4, r0, #2
+ ldrb r4, [r5, r4]
+ cmp r0, r4
+ bge _0225BDC0
+ add r4, r3, #0
+ b _0225BDC2
+_0225BDC0:
+ add r4, r2, #0
+_0225BDC2:
+ cmp r4, #0xff
+ bne _0225BDAA
+_0225BDC6:
+ mov r0, #0
+ mvn r0, r0
+_0225BDCA:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225BDD0: .word 0x0000069E
+_0225BDD4: .word 0x0225FAAC
+_0225BDD8: .word 0x0225F6A0
+_0225BDDC: .word 0x000006EC
+
+ thumb_func_start MOD11_0225BDE0
+MOD11_0225BDE0: ; 0x0225BDE0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ beq _0225BE26
+ ldr r1, _0225BE28 ; =0x0000069E
+ ldr r0, [r5]
+ ldrb r1, [r5, r1]
+ bl MOD11_0223022C
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl MOD11_0222FF7C
+ bl MOD11_02253A74
+ mov r3, #0
+ ldr r7, _0225BE2C ; =0x0225F6A0
+ add r1, r3, #0
+ b _0225BE22
+_0225BE06:
+ lsl r5, r3, #1
+ add r2, r1, #0
+ add r6, r7, r5
+ b _0225BE1C
+_0225BE0E:
+ ldrb r5, [r2, r6]
+ cmp r4, r5
+ bne _0225BE1A
+ strb r2, [r0, #2]
+ strb r3, [r0, #3]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225BE1A:
+ add r2, r2, #1
+_0225BE1C:
+ cmp r2, #2
+ blt _0225BE0E
+ add r3, r3, #1
+_0225BE22:
+ cmp r3, #3
+ blt _0225BE06
+_0225BE26:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225BE28: .word 0x0000069E
+_0225BE2C: .word 0x0225F6A0
+
+ thumb_func_start MOD11_0225BE30
+MOD11_0225BE30: ; 0x0225BE30
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x60
+ str r1, [sp, #0x18]
+ add r6, r0, #0
+ ldr r1, _0225C134 ; =0x0000069E
+ mov r0, #0
+ str r0, [sp, #0x44]
+ ldrb r1, [r6, r1]
+ ldr r0, [r6]
+ bl MOD11_0223022C
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD11_0222FF7C
+ bl MOD11_02253A74
+ mov r1, #0x6f
+ lsl r1, r1, #4
+ add r7, r6, r1
+ sub r1, #0x51
+ ldrsb r2, [r6, r1]
+ str r0, [sp, #0x1c]
+ mov r1, #0x30
+ mul r1, r2
+ ldr r0, _0225C138 ; =0x0225FAAC
+ mov r2, #6
+ add r0, r0, r1
+ str r0, [sp, #0x48]
+ ldr r0, _0225C13C ; =0x0225F690
+ add r1, sp, #0x50
+ bl MI_CpuCopy8
+ add r1, sp, #0x58
+ add r0, r6, #0
+ add r1, #2
+ mov r2, #1
+ bl MOD11_0225ACD4
+ add r1, sp, #0x54
+ add r0, r6, #0
+ add r1, #2
+ mov r2, #0
+ bl MOD11_0225ACD4
+ add r0, sp, #0x54
+ mov r2, #0
+ mov r4, #0xff
+ add r0, #2
+ b _0225BEB0
+_0225BE94:
+ lsl r5, r2, #1
+ add r1, sp, #0x50
+ mov r3, #0
+ add r1, r1, r5
+ b _0225BEAA
+_0225BE9E:
+ ldrb r5, [r3, r1]
+ ldrb r5, [r0, r5]
+ cmp r5, #0
+ bne _0225BEA8
+ strb r4, [r3, r1]
+_0225BEA8:
+ add r3, r3, #1
+_0225BEAA:
+ cmp r3, #2
+ blt _0225BE9E
+ add r2, r2, #1
+_0225BEB0:
+ cmp r2, #2
+ blt _0225BE94
+ mov r0, #0x6a
+ lsl r0, r0, #4
+ ldrb r0, [r6, r0]
+ cmp r0, #0xb
+ bhi _0225BEE2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225BECA: ; jump table
+ .short _0225BEE2 - _0225BECA - 2 ; case 0
+ .short _0225BEEC - _0225BECA - 2 ; case 1
+ .short _0225BEEC - _0225BECA - 2 ; case 2
+ .short _0225BEEC - _0225BECA - 2 ; case 3
+ .short _0225BEE2 - _0225BECA - 2 ; case 4
+ .short _0225BEEC - _0225BECA - 2 ; case 5
+ .short _0225BEE2 - _0225BECA - 2 ; case 6
+ .short _0225BEEC - _0225BECA - 2 ; case 7
+ .short _0225BEE2 - _0225BECA - 2 ; case 8
+ .short _0225BEE2 - _0225BECA - 2 ; case 9
+ .short _0225BEE2 - _0225BECA - 2 ; case 10
+ .short _0225BEE2 - _0225BECA - 2 ; case 11
+_0225BEE2:
+ mov r0, #2
+ mov ip, r0
+ mov r0, #3
+ str r0, [sp, #0x4c]
+ b _0225C0C6
+_0225BEEC:
+ mov r0, #1
+ str r0, [sp, #0x44]
+ mov ip, r0
+ mov r0, #2
+ str r0, [sp, #0x4c]
+ add r0, sp, #0x50
+ ldrb r1, [r0, #9]
+ cmp r1, #1
+ bne _0225BF26
+ ldrb r0, [r0, #7]
+ cmp r0, #1
+ bne _0225BF26
+ ldr r0, [sp, #0x48]
+ ldr r1, [r0, #0x14]
+ ldrb r0, [r1, #0xe]
+ ldrb r2, [r1, #0xd]
+ str r0, [sp, #0x34]
+ add r0, #8
+ str r0, [sp, #0x34]
+ ldrb r0, [r1, #7]
+ sub r2, #8
+ str r0, [sp, #0x30]
+ sub r0, #8
+ str r0, [sp, #0x30]
+ ldrb r0, [r1, #0xc]
+ str r0, [sp, #0x38]
+ add r0, #8
+ str r0, [sp, #0x38]
+ b _0225BF92
+_0225BF26:
+ add r0, sp, #0x50
+ ldrb r1, [r0, #9]
+ cmp r1, #1
+ bne _0225BF56
+ ldrb r0, [r0, #7]
+ cmp r0, #0
+ bne _0225BF56
+ ldr r0, [sp, #0x48]
+ ldr r1, [r0, #0x14]
+ ldrb r0, [r1, #0xe]
+ ldrb r2, [r1, #0xd]
+ str r0, [sp, #0x34]
+ add r0, #8
+ str r0, [sp, #0x34]
+ ldrb r0, [r1, #0xf]
+ sub r2, #8
+ str r0, [sp, #0x30]
+ sub r0, #8
+ str r0, [sp, #0x30]
+ ldrb r0, [r1, #0xc]
+ str r0, [sp, #0x38]
+ add r0, #8
+ str r0, [sp, #0x38]
+ b _0225BF92
+_0225BF56:
+ add r0, sp, #0x50
+ ldrb r1, [r0, #9]
+ cmp r1, #0
+ bne _0225BF86
+ ldrb r0, [r0, #7]
+ cmp r0, #1
+ bne _0225BF86
+ ldr r0, [sp, #0x48]
+ ldr r1, [r0, #0x14]
+ ldrb r0, [r1, #6]
+ ldrb r2, [r1, #5]
+ str r0, [sp, #0x34]
+ add r0, #8
+ str r0, [sp, #0x34]
+ ldrb r0, [r1, #7]
+ sub r2, #8
+ str r0, [sp, #0x30]
+ sub r0, #8
+ str r0, [sp, #0x30]
+ ldrb r0, [r1, #4]
+ str r0, [sp, #0x38]
+ add r0, #8
+ str r0, [sp, #0x38]
+ b _0225BF92
+_0225BF86:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x34]
+ str r0, [sp, #0x30]
+ str r0, [sp, #0x38]
+ add r2, r0, #0
+_0225BF92:
+ add r0, sp, #0x50
+ ldrb r1, [r0, #6]
+ cmp r1, #1
+ bne _0225BFBA
+ ldrb r0, [r0, #8]
+ cmp r0, #1
+ bne _0225BFBA
+ ldr r0, [sp, #0x48]
+ ldr r0, [r0, #0x14]
+ ldrb r3, [r0, #2]
+ ldrb r4, [r0, #0xb]
+ ldrb r5, [r0]
+ ldrb r0, [r0, #1]
+ add r3, #8
+ sub r4, #8
+ str r0, [sp, #0x2c]
+ sub r0, #8
+ add r5, #8
+ str r0, [sp, #0x2c]
+ b _0225C014
+_0225BFBA:
+ add r0, sp, #0x50
+ ldrb r1, [r0, #6]
+ cmp r1, #1
+ bne _0225BFE2
+ ldrb r0, [r0, #8]
+ cmp r0, #0
+ bne _0225BFE2
+ ldr r0, [sp, #0x48]
+ ldr r0, [r0, #0x14]
+ ldrb r3, [r0, #2]
+ ldrb r4, [r0, #3]
+ ldrb r5, [r0]
+ ldrb r0, [r0, #1]
+ add r3, #8
+ sub r4, #8
+ str r0, [sp, #0x2c]
+ sub r0, #8
+ add r5, #8
+ str r0, [sp, #0x2c]
+ b _0225C014
+_0225BFE2:
+ add r0, sp, #0x50
+ ldrb r1, [r0, #6]
+ cmp r1, #0
+ bne _0225C00A
+ ldrb r0, [r0, #8]
+ cmp r0, #1
+ bne _0225C00A
+ ldr r0, [sp, #0x48]
+ ldr r0, [r0, #0x14]
+ ldrb r3, [r0, #0xa]
+ ldrb r4, [r0, #0xb]
+ ldrb r5, [r0, #8]
+ ldrb r0, [r0, #9]
+ add r3, #8
+ sub r4, #8
+ str r0, [sp, #0x2c]
+ sub r0, #8
+ add r5, #8
+ str r0, [sp, #0x2c]
+ b _0225C014
+_0225C00A:
+ mov r3, #0
+ mvn r3, r3
+ add r4, r3, #0
+ add r5, r3, #0
+ str r3, [sp, #0x2c]
+_0225C014:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x40]
+ str r0, [sp, #0x3c]
+ str r0, [sp, #0x28]
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x34]
+ cmp r0, r3
+ beq _0225C04A
+ add r1, r0, #0
+ ldr r0, [sp, #0x40]
+ cmp r1, r0
+ beq _0225C032
+ cmp r3, r0
+ beq _0225C04A
+_0225C032:
+ mov r1, #0
+ ldr r0, [sp, #0x34]
+ mvn r1, r1
+ cmp r0, r1
+ bne _0225C044
+ cmp r3, r1
+ beq _0225C044
+ str r3, [sp, #0x34]
+ b _0225C04A
+_0225C044:
+ mov r0, #2
+ str r3, [sp, #0x40]
+ str r0, [sp, #0x20]
+_0225C04A:
+ ldr r0, [sp, #0x30]
+ cmp r0, r4
+ beq _0225C074
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0225C05C
+ cmp r4, r1
+ beq _0225C074
+_0225C05C:
+ mov r1, #0
+ ldr r0, [sp, #0x30]
+ mvn r1, r1
+ cmp r0, r1
+ bne _0225C06E
+ cmp r4, r1
+ beq _0225C06E
+ str r4, [sp, #0x30]
+ b _0225C074
+_0225C06E:
+ mov r0, #3
+ str r4, [sp, #0x40]
+ str r0, [sp, #0x20]
+_0225C074:
+ mov r1, #0
+ ldr r0, [sp, #0x38]
+ mvn r1, r1
+ cmp r0, r1
+ beq _0225C082
+ cmp r5, r1
+ beq _0225C096
+_0225C082:
+ mov r1, #0
+ ldr r0, [sp, #0x38]
+ mvn r1, r1
+ cmp r0, r1
+ bne _0225C094
+ cmp r5, r1
+ beq _0225C094
+ str r5, [sp, #0x38]
+ b _0225C096
+_0225C094:
+ str r2, [sp, #0x3c]
+_0225C096:
+ mov r1, #0
+ mvn r1, r1
+ cmp r2, r1
+ beq _0225C0A8
+ ldr r0, [sp, #0x2c]
+ cmp r0, r1
+ bne _0225C0A8
+ str r2, [sp, #0x2c]
+ b _0225C0C6
+_0225C0A8:
+ mov r1, #0
+ mvn r1, r1
+ cmp r2, r1
+ bne _0225C0B6
+ ldr r0, [sp, #0x2c]
+ cmp r0, r1
+ bne _0225C0C6
+_0225C0B6:
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x20]
+ cmp r0, #2
+ bne _0225C0C4
+ str r2, [sp, #0x24]
+ b _0225C0C6
+_0225C0C4:
+ str r2, [sp, #0x28]
+_0225C0C6:
+ ldr r0, [sp, #0x18]
+ cmp r0, #1
+ beq _0225C0CE
+ b _0225C236
+_0225C0CE:
+ ldr r0, [sp, #0x44]
+ cmp r0, #0
+ bne _0225C17A
+ ldr r0, [sp, #0x1c]
+ mov r1, #6
+ ldrsb r1, [r0, r1]
+ mov r0, #0x6a
+ lsl r0, r0, #4
+ ldrb r0, [r6, r0]
+ cmp r1, r0
+ bne _0225C0F6
+ ldr r0, [sp, #0x1c]
+ mov r1, #4
+ ldrsb r0, [r0, r1]
+ mov r1, #5
+ strb r0, [r7, #2]
+ ldr r0, [sp, #0x1c]
+ ldrsb r0, [r0, r1]
+ strb r0, [r7, #1]
+ b _0225C12C
+_0225C0F6:
+ add r0, sp, #0x50
+ ldrb r1, [r0, #0xd]
+ cmp r1, #1
+ bne _0225C106
+ mov r0, #0
+ strb r0, [r7, #2]
+ strb r0, [r7, #1]
+ b _0225C12C
+_0225C106:
+ ldrb r1, [r0, #0xb]
+ cmp r1, #1
+ bne _0225C116
+ mov r0, #1
+ strb r0, [r7, #2]
+ mov r0, #0
+ strb r0, [r7, #1]
+ b _0225C12C
+_0225C116:
+ ldrb r0, [r0, #0xa]
+ cmp r0, #1
+ bne _0225C126
+ mov r0, #0
+ strb r0, [r7, #2]
+ mov r0, #1
+ strb r0, [r7, #1]
+ b _0225C12C
+_0225C126:
+ mov r0, #1
+ strb r0, [r7, #2]
+ strb r0, [r7, #1]
+_0225C12C:
+ mov r0, #1
+ ldrsb r0, [r7, r0]
+ ldr r2, _0225C13C ; =0x0225F690
+ b _0225C140
+ .align 2, 0
+_0225C134: .word 0x0000069E
+_0225C138: .word 0x0225FAAC
+_0225C13C: .word 0x0225F690
+_0225C140:
+ lsl r3, r0, #1
+ mov r0, #2
+ ldrsb r1, [r7, r0]
+ add r0, r2, r3
+ ldrb r1, [r1, r0]
+ ldr r0, [sp, #0x48]
+ lsl r3, r1, #2
+ ldr r0, [r0, #0x14]
+ ldr r1, [sp, #0x48]
+ add r0, r0, r3
+ ldrb r0, [r0, #1]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r4, [r1, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ b _0225C22E
+_0225C17A:
+ mov r2, #0
+ strb r2, [r7, #2]
+ ldr r0, [sp, #0x24]
+ sub r1, r2, #1
+ strb r2, [r7, #1]
+ cmp r0, r1
+ bne _0225C18E
+ ldr r0, [sp, #0x28]
+ cmp r0, r1
+ beq _0225C198
+_0225C18E:
+ mov r1, #0
+ ldr r0, [sp, #0x40]
+ mvn r1, r1
+ cmp r0, r1
+ bne _0225C1B2
+_0225C198:
+ ldr r0, [sp, #0x2c]
+ ldr r1, [sp, #0x34]
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r2, [sp, #0x30]
+ ldr r0, [r6, r0]
+ ldr r3, [sp, #0x38]
+ bl MOD11_0225D5FC
+ b _0225C210
+_0225C1B2:
+ ldr r0, [sp, #0x24]
+ cmp r0, r1
+ beq _0225C1E8
+ ldr r0, [sp, #0x28]
+ cmp r0, r1
+ bne _0225C1E8
+ ldr r0, [sp, #0x38]
+ ldr r1, [sp, #0x34]
+ str r0, [sp]
+ ldr r0, [sp, #0x34]
+ ldr r2, [sp, #0x38]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x24]
+ ldr r3, [sp, #0x30]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0x10]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D52C
+ b _0225C210
+_0225C1E8:
+ ldr r0, [sp, #0x38]
+ ldr r1, [sp, #0x34]
+ str r0, [sp]
+ ldr r0, [sp, #0x34]
+ ldr r2, [sp, #0x38]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x2c]
+ ldr r3, [sp, #0x30]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x28]
+ str r0, [sp, #0x10]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D52C
+_0225C210:
+ mov r1, #0
+ ldr r0, [sp, #0x40]
+ mvn r1, r1
+ cmp r0, r1
+ beq _0225C22E
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r1, [sp, #0x40]
+ ldr r0, [r6, r0]
+ ldr r2, [sp, #0x3c]
+ ldr r3, [sp, #0x20]
+ bl MOD11_0225D620
+_0225C22E:
+ mov r0, #0
+ add sp, #0x60
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C236:
+ ldr r0, [sp, #0x44]
+ cmp r0, #0
+ bne _0225C24A
+ ldr r2, [sp, #0x4c]
+ add r0, r7, #0
+ mov r1, ip
+ add r3, sp, #0x50
+ bl MOD11_0225C574
+ b _0225C256
+_0225C24A:
+ ldr r2, [sp, #0x4c]
+ add r0, r7, #0
+ mov r1, ip
+ mov r3, #0
+ bl MOD11_0225C574
+_0225C256:
+ cmp r0, #0x20
+ bhi _0225C276
+ bhs _0225C284
+ cmp r0, #2
+ bhi _0225C270
+ cmp r0, #1
+ blo _0225C26E
+ bne _0225C268
+ b _0225C3BE
+_0225C268:
+ cmp r0, #2
+ bne _0225C26E
+ b _0225C40A
+_0225C26E:
+ b _0225C410
+_0225C270:
+ cmp r0, #0x10
+ beq _0225C284
+ b _0225C410
+_0225C276:
+ cmp r0, #0x40
+ bhi _0225C27E
+ beq _0225C284
+ b _0225C410
+_0225C27E:
+ cmp r0, #0x80
+ beq _0225C284
+ b _0225C410
+_0225C284:
+ ldr r0, [sp, #0x44]
+ cmp r0, #0
+ bne _0225C2CA
+ mov r0, #1
+ ldrsb r0, [r7, r0]
+ ldr r2, _0225C41C ; =0x0225F690
+ lsl r3, r0, #1
+ mov r0, #2
+ ldrsb r1, [r7, r0]
+ add r0, r2, r3
+ ldrb r1, [r1, r0]
+ ldr r0, [sp, #0x48]
+ lsl r3, r1, #2
+ ldr r0, [r0, #0x14]
+ ldr r1, [sp, #0x48]
+ add r0, r0, r3
+ ldrb r0, [r0, #1]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r4, [r1, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ b _0225C410
+_0225C2CA:
+ mov r2, #1
+ ldrsb r0, [r7, r2]
+ cmp r0, #0
+ bne _0225C38C
+ ldr r0, [sp, #0x28]
+ sub r1, r2, #2
+ cmp r0, r1
+ bne _0225C2E0
+ ldr r0, [sp, #0x24]
+ cmp r0, r1
+ beq _0225C2EA
+_0225C2E0:
+ mov r1, #0
+ ldr r0, [sp, #0x40]
+ mvn r1, r1
+ cmp r0, r1
+ bne _0225C304
+_0225C2EA:
+ ldr r0, [sp, #0x2c]
+ ldr r1, [sp, #0x34]
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r2, [sp, #0x30]
+ ldr r0, [r6, r0]
+ ldr r3, [sp, #0x38]
+ bl MOD11_0225D5FC
+ b _0225C362
+_0225C304:
+ ldr r0, [sp, #0x24]
+ cmp r0, r1
+ beq _0225C33A
+ ldr r0, [sp, #0x28]
+ cmp r0, r1
+ bne _0225C33A
+ ldr r0, [sp, #0x38]
+ ldr r1, [sp, #0x34]
+ str r0, [sp]
+ ldr r0, [sp, #0x34]
+ ldr r2, [sp, #0x38]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x24]
+ ldr r3, [sp, #0x30]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0x10]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D52C
+ b _0225C362
+_0225C33A:
+ ldr r0, [sp, #0x38]
+ ldr r1, [sp, #0x34]
+ str r0, [sp]
+ ldr r0, [sp, #0x34]
+ ldr r2, [sp, #0x38]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x2c]
+ ldr r3, [sp, #0x30]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x28]
+ str r0, [sp, #0x10]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D52C
+_0225C362:
+ mov r1, #0
+ ldr r0, [sp, #0x40]
+ mvn r1, r1
+ cmp r0, r1
+ beq _0225C382
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r1, [sp, #0x40]
+ ldr r0, [r6, r0]
+ ldr r2, [sp, #0x3c]
+ ldr r3, [sp, #0x20]
+ bl MOD11_0225D620
+ b _0225C410
+_0225C382:
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D664
+ b _0225C410
+_0225C38C:
+ ldr r0, [sp, #0x48]
+ ldr r1, [sp, #0x48]
+ ldr r0, [r0, #0x14]
+ ldrb r0, [r0, #0x11]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r3, [r1, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldrb r1, [r3, #0x12]
+ ldrb r2, [r3, #0x13]
+ ldrb r3, [r3, #0x10]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D664
+ b _0225C410
+_0225C3BE:
+ ldr r0, [sp, #0x44]
+ cmp r0, #1
+ bne _0225C3E8
+ mov r0, #1
+ ldrsb r0, [r7, r0]
+ cmp r0, #0
+ ble _0225C3D2
+ add sp, #0x60
+ mov r0, #4
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C3D2:
+ add r2, sp, #0x58
+ mov r0, #0
+ add r2, #2
+ b _0225C3E2
+_0225C3DA:
+ ldrb r1, [r2, r0]
+ cmp r1, #1
+ beq _0225C414
+ add r0, r0, #1
+_0225C3E2:
+ cmp r0, #4
+ blt _0225C3DA
+ b _0225C410
+_0225C3E8:
+ mov r0, #1
+ ldrsb r0, [r7, r0]
+ ldr r2, _0225C41C ; =0x0225F690
+ lsl r3, r0, #1
+ mov r0, #2
+ ldrsb r1, [r7, r0]
+ add r0, r2, r3
+ ldrb r0, [r1, r0]
+ cmp r0, #4
+ beq _0225C414
+ add r1, sp, #0x58
+ add r1, #2
+ ldrb r1, [r1, r0]
+ cmp r1, #1
+ bne _0225C410
+ add sp, #0x60
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C40A:
+ add sp, #0x60
+ mov r0, #4
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C410:
+ mov r0, #0
+ mvn r0, r0
+_0225C414:
+ add sp, #0x60
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225C418: .word 0x000006EC
+_0225C41C: .word 0x0225F690
+
+ thumb_func_start MOD11_0225C420
+MOD11_0225C420: ; 0x0225C420
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ cmp r4, #4
+ beq _0225C470
+ ldr r1, _0225C474 ; =0x0000069E
+ ldr r0, [r5]
+ ldrb r1, [r5, r1]
+ bl MOD11_0223022C
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl MOD11_0222FF7C
+ bl MOD11_02253A74
+ mov r1, #0x6a
+ lsl r1, r1, #4
+ ldrb r1, [r5, r1]
+ mov r3, #0
+ ldr r7, _0225C478 ; =0x0225F690
+ strb r1, [r0, #6]
+ add r1, r3, #0
+ b _0225C46C
+_0225C450:
+ lsl r5, r3, #1
+ add r2, r1, #0
+ add r6, r7, r5
+ b _0225C466
+_0225C458:
+ ldrb r5, [r2, r6]
+ cmp r4, r5
+ bne _0225C464
+ strb r2, [r0, #4]
+ strb r3, [r0, #5]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C464:
+ add r2, r2, #1
+_0225C466:
+ cmp r2, #2
+ blt _0225C458
+ add r3, r3, #1
+_0225C46C:
+ cmp r3, #3
+ blt _0225C450
+_0225C470:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225C474: .word 0x0000069E
+_0225C478: .word 0x0225F690
+
+ thumb_func_start MOD11_0225C47C
+MOD11_0225C47C: ; 0x0225C47C
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, r0, #0
+ mov r0, #0x6f
+ lsl r0, r0, #4
+ add r3, r0, #0
+ sub r3, #0x51
+ ldrsb r5, [r6, r3]
+ mov r3, #0x30
+ ldr r2, _0225C568 ; =0x0225FAAC
+ mul r3, r5
+ add r4, r6, r0
+ add r5, r2, r3
+ cmp r1, #1
+ bne _0225C4DA
+ mov r1, #1
+ ldrsb r2, [r4, r1]
+ mov r3, #2
+ ldr r1, _0225C56C ; =0x0225F684
+ ldrsb r3, [r4, r3]
+ add r1, r1, r2
+ sub r0, r0, #4
+ ldrb r2, [r3, r1]
+ ldr r1, [r5, #0x14]
+ lsl r3, r2, #2
+ add r1, r1, r3
+ ldrb r1, [r1, #1]
+ sub r1, #8
+ str r1, [sp]
+ mov r1, #0x11
+ lsl r1, r1, #0x10
+ str r1, [sp, #4]
+ ldr r4, [r5, #0x14]
+ ldr r0, [r6, r0]
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ mov r0, #0
+ add sp, #8
+ mvn r0, r0
+ pop {r4, r5, r6, pc}
+_0225C4DA:
+ ldr r3, _0225C56C ; =0x0225F684
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #2
+ bl MOD11_0225C574
+ cmp r0, #0x20
+ bhi _0225C502
+ bhs _0225C50E
+ cmp r0, #2
+ bhi _0225C4FC
+ cmp r0, #1
+ blo _0225C560
+ beq _0225C548
+ cmp r0, #2
+ beq _0225C55A
+ b _0225C560
+_0225C4FC:
+ cmp r0, #0x10
+ beq _0225C50E
+ b _0225C560
+_0225C502:
+ cmp r0, #0x40
+ bhi _0225C50A
+ beq _0225C50E
+ b _0225C560
+_0225C50A:
+ cmp r0, #0x80
+ bne _0225C560
+_0225C50E:
+ mov r0, #1
+ ldrsb r3, [r4, r0]
+ mov r0, #2
+ ldr r2, _0225C56C ; =0x0225F684
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ ldrb r1, [r1, r0]
+ ldr r0, [r5, #0x14]
+ lsl r3, r1, #2
+ add r0, r0, r3
+ ldrb r0, [r0, #1]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r4, [r5, #0x14]
+ ldr r0, _0225C570 ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ b _0225C560
+_0225C548:
+ mov r0, #1
+ ldrsb r3, [r4, r0]
+ mov r0, #2
+ ldr r2, _0225C56C ; =0x0225F684
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ add sp, #8
+ ldrb r0, [r1, r0]
+ pop {r4, r5, r6, pc}
+_0225C55A:
+ add sp, #8
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0225C560:
+ mov r0, #0
+ mvn r0, r0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0225C568: .word 0x0225FAAC
+_0225C56C: .word 0x0225F684
+_0225C570: .word 0x000006EC
+
+ thumb_func_start MOD11_0225C574
+MOD11_0225C574: ; 0x0225C574
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ mov r1, #2
+ ldrsb r1, [r0, r1]
+ add r6, r2, #0
+ add r2, r3, #0
+ cmp r1, r4
+ blt _0225C588
+ sub r1, r4, #1
+ strb r1, [r0, #2]
+_0225C588:
+ mov r1, #1
+ ldrsb r1, [r0, r1]
+ cmp r1, r6
+ blt _0225C594
+ sub r1, r6, #1
+ strb r1, [r0, #1]
+_0225C594:
+ mov r7, #2
+ ldrsb r1, [r0, r7]
+ mov r5, #1
+ mov r3, #0x40
+ str r1, [sp]
+ ldrsb r1, [r0, r5]
+ mov ip, r1
+ ldr r1, _0225C764 ; =0x021C48B8
+ ldr r1, [r1, #0x48]
+ tst r3, r1
+ beq _0225C5FA
+ mov r1, ip
+ sub r1, r1, #1
+ strb r1, [r0, #1]
+ ldrsb r1, [r0, r5]
+ cmp r1, #0
+ bge _0225C5BA
+ mov r1, #0
+ strb r1, [r0, #1]
+_0225C5BA:
+ cmp r2, #0
+ beq _0225C5F6
+ mov r3, #1
+ mov r1, #2
+ ldrsb r3, [r0, r3]
+ ldrsb r1, [r0, r1]
+ mul r3, r4
+ add r1, r1, r3
+ ldrb r1, [r2, r1]
+ cmp r1, #0xff
+ bne _0225C5F6
+ add r1, r0, #1
+ mov r7, #0
+ mov r6, #1
+_0225C5D6:
+ ldrsb r3, [r1, r7]
+ sub r3, r3, #1
+ strb r3, [r1]
+ ldrsb r3, [r0, r6]
+ cmp r3, #0
+ bge _0225C5E8
+ mov r1, ip
+ strb r1, [r0, #1]
+ b _0225C5F6
+_0225C5E8:
+ mov r5, #2
+ ldrsb r5, [r0, r5]
+ mul r3, r4
+ add r5, r2, r5
+ ldrb r3, [r3, r5]
+ cmp r3, #0xff
+ beq _0225C5D6
+_0225C5F6:
+ mov r5, #0x40
+ b _0225C70E
+_0225C5FA:
+ mov r3, #0x80
+ tst r3, r1
+ beq _0225C650
+ mov r1, ip
+ add r1, r1, #1
+ strb r1, [r0, #1]
+ ldrsb r1, [r0, r5]
+ cmp r1, r6
+ blt _0225C610
+ sub r1, r6, #1
+ strb r1, [r0, #1]
+_0225C610:
+ cmp r2, #0
+ beq _0225C64C
+ mov r3, #1
+ mov r1, #2
+ ldrsb r3, [r0, r3]
+ ldrsb r1, [r0, r1]
+ mul r3, r4
+ add r1, r1, r3
+ ldrb r1, [r2, r1]
+ cmp r1, #0xff
+ bne _0225C64C
+ add r1, r0, #1
+ mov r7, #1
+_0225C62A:
+ mov r3, #0
+ ldrsb r3, [r1, r3]
+ add r3, r3, #1
+ strb r3, [r1]
+ ldrsb r3, [r0, r7]
+ cmp r3, r6
+ blt _0225C63E
+ mov r1, ip
+ strb r1, [r0, #1]
+ b _0225C64C
+_0225C63E:
+ mov r5, #2
+ ldrsb r5, [r0, r5]
+ mul r3, r4
+ add r5, r2, r5
+ ldrb r3, [r3, r5]
+ cmp r3, #0xff
+ beq _0225C62A
+_0225C64C:
+ mov r5, #0x80
+ b _0225C70E
+_0225C650:
+ mov r3, #0x20
+ tst r3, r1
+ beq _0225C6A6
+ ldr r1, [sp]
+ sub r1, r1, #1
+ strb r1, [r0, #2]
+ ldrsb r1, [r0, r7]
+ cmp r1, #0
+ bge _0225C666
+ mov r1, #0
+ strb r1, [r0, #2]
+_0225C666:
+ cmp r2, #0
+ beq _0225C6A2
+ mov r3, #1
+ mov r1, #2
+ ldrsb r3, [r0, r3]
+ ldrsb r1, [r0, r1]
+ mul r3, r4
+ add r1, r1, r3
+ ldrb r1, [r2, r1]
+ cmp r1, #0xff
+ bne _0225C6A2
+ add r5, r0, #2
+ mov r7, #0
+ mov r6, #2
+_0225C682:
+ ldrsb r1, [r5, r7]
+ sub r1, r1, #1
+ strb r1, [r5]
+ ldrsb r3, [r0, r6]
+ cmp r3, #0
+ bge _0225C694
+ ldr r1, [sp]
+ strb r1, [r0, #2]
+ b _0225C6A2
+_0225C694:
+ mov r1, #1
+ ldrsb r1, [r0, r1]
+ add r3, r2, r3
+ mul r1, r4
+ ldrb r1, [r1, r3]
+ cmp r1, #0xff
+ beq _0225C682
+_0225C6A2:
+ mov r5, #0x20
+ b _0225C70E
+_0225C6A6:
+ mov r3, #0x10
+ tst r3, r1
+ beq _0225C6FC
+ ldr r1, [sp]
+ add r1, r1, #1
+ strb r1, [r0, #2]
+ ldrsb r1, [r0, r7]
+ cmp r1, r4
+ blt _0225C6BC
+ sub r1, r4, #1
+ strb r1, [r0, #2]
+_0225C6BC:
+ cmp r2, #0
+ beq _0225C6F8
+ mov r3, #1
+ mov r1, #2
+ ldrsb r3, [r0, r3]
+ ldrsb r1, [r0, r1]
+ mul r3, r4
+ add r1, r1, r3
+ ldrb r1, [r2, r1]
+ cmp r1, #0xff
+ bne _0225C6F8
+ add r5, r0, #2
+ mov r7, #0
+ mov r6, #2
+_0225C6D8:
+ ldrsb r1, [r5, r7]
+ add r1, r1, #1
+ strb r1, [r5]
+ ldrsb r3, [r0, r6]
+ cmp r3, r4
+ blt _0225C6EA
+ ldr r1, [sp]
+ strb r1, [r0, #2]
+ b _0225C6F8
+_0225C6EA:
+ mov r1, #1
+ ldrsb r1, [r0, r1]
+ add r3, r2, r3
+ mul r1, r4
+ ldrb r1, [r1, r3]
+ cmp r1, #0xff
+ beq _0225C6D8
+_0225C6F8:
+ mov r5, #0x10
+ b _0225C70E
+_0225C6FC:
+ add r3, r1, #0
+ tst r3, r5
+ bne _0225C70E
+ tst r1, r7
+ beq _0225C70A
+ add r5, r7, #0
+ b _0225C70E
+_0225C70A:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C70E:
+ cmp r2, #0
+ beq _0225C738
+ mov r1, ip
+ add r3, r4, #0
+ mul r3, r1
+ ldr r1, [sp]
+ add r1, r1, r3
+ mov r3, #2
+ ldrsb r6, [r0, r3]
+ mov r3, #1
+ ldrsb r3, [r0, r3]
+ ldrb r1, [r2, r1]
+ mul r3, r4
+ add r3, r6, r3
+ ldrb r2, [r2, r3]
+ cmp r1, r2
+ bne _0225C738
+ ldr r1, [sp]
+ strb r1, [r0, #2]
+ mov r1, ip
+ strb r1, [r0, #1]
+_0225C738:
+ mov r1, #2
+ ldrsb r2, [r0, r1]
+ ldr r1, [sp]
+ cmp r2, r1
+ bne _0225C74C
+ mov r1, #1
+ ldrsb r1, [r0, r1]
+ mov r0, ip
+ cmp r1, r0
+ beq _0225C754
+_0225C74C:
+ ldr r0, _0225C768 ; =0x000005DC
+ bl FUN_020054C8
+ b _0225C75E
+_0225C754:
+ mov r0, #0xf0
+ tst r0, r5
+ beq _0225C75E
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C75E:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225C764: .word 0x021C48B8
+_0225C768: .word 0x000005DC
+
+ thumb_func_start MOD11_0225C76C
+MOD11_0225C76C: ; 0x0225C76C
+ ldr r1, _0225C774 ; =0x000006F4
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_0225C774: .word 0x000006F4
+
+ thumb_func_start MOD11_0225C778
+MOD11_0225C778: ; 0x0225C778
+ ldr r2, _0225C780 ; =0x000006F4
+ strb r1, [r0, r2]
+ bx lr
+ nop
+_0225C780: .word 0x000006F4
+
+ thumb_func_start MOD11_0225C784
+MOD11_0225C784: ; 0x0225C784
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230078
+ ldr r0, [r4]
+ bl MOD11_02230080
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ ldr r0, [r4]
+ bl MOD11_02231268
+ cmp r0, #0
+ bne _0225C7C0
+ ldr r0, _0225C7E4 ; =0x000006FC
+ ldrb r0, [r4, r0]
+ cmp r0, #2
+ blo _0225C7B0
+ bl ErrorHandling
+_0225C7B0:
+ ldr r1, _0225C7E4 ; =0x000006FC
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ lsl r2, r1, #2
+ ldr r1, _0225C7E8 ; =0x0225F6B8
+ ldr r1, [r1, r2]
+ blx r1
+ b _0225C7C6
+_0225C7C0:
+ add r0, r4, #0
+ bl MOD11_0225C8A0
+_0225C7C6:
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0225C7E2
+ ldr r1, _0225C7EC ; =0x000006FD
+ mov r3, #0
+ strb r3, [r4, r1]
+ add r2, r1, #1
+ strb r3, [r4, r2]
+ sub r2, r1, #1
+ ldrb r2, [r4, r2]
+ sub r1, r1, #1
+ add r2, r2, #1
+ strb r2, [r4, r1]
+_0225C7E2:
+ pop {r4, pc}
+ .align 2, 0
+_0225C7E4: .word 0x000006FC
+_0225C7E8: .word 0x0225F6B8
+_0225C7EC: .word 0x000006FD
+
+ thumb_func_start MOD11_0225C7F0
+MOD11_0225C7F0: ; 0x0225C7F0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0225C840 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ bne _0225C820
+ sub r0, r0, #5
+ mov r3, #0x11
+ ldr r0, [r4, r0]
+ mov r1, #0x80
+ mov r2, #0x3c
+ lsl r3, r3, #0x10
+ bl MOD11_0225D7D0
+ ldr r0, _0225C844 ; =0x000006F8
+ mov r1, #0x3c
+ ldr r0, [r4, r0]
+ bl MOD11_0225D820
+ ldr r0, _0225C840 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0225C838
+_0225C820:
+ sub r0, r0, #5
+ ldr r0, [r4, r0]
+ bl MOD11_0225D824
+ cmp r0, #1
+ bne _0225C838
+ ldr r0, _0225C840 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+_0225C838:
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, pc}
+ nop
+_0225C840: .word 0x000006FD
+_0225C844: .word 0x000006F8
+
+ thumb_func_start MOD11_0225C848
+MOD11_0225C848: ; 0x0225C848
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0225C898 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ bne _0225C878
+ sub r0, r0, #5
+ mov r3, #0x11
+ ldr r0, [r4, r0]
+ mov r1, #0x40
+ mov r2, #0x16
+ lsl r3, r3, #0x10
+ bl MOD11_0225D7D0
+ ldr r0, _0225C89C ; =0x000006F8
+ mov r1, #0x3c
+ ldr r0, [r4, r0]
+ bl MOD11_0225D820
+ ldr r0, _0225C898 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0225C890
+_0225C878:
+ sub r0, r0, #5
+ ldr r0, [r4, r0]
+ bl MOD11_0225D824
+ cmp r0, #1
+ bne _0225C890
+ ldr r0, _0225C898 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+_0225C890:
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, pc}
+ nop
+_0225C898: .word 0x000006FD
+_0225C89C: .word 0x000006F8
+
+ thumb_func_start MOD11_0225C8A0
+MOD11_0225C8A0: ; 0x0225C8A0
+ push {r4, lr}
+ ldr r1, _0225C914 ; =0x000006FD
+ add r4, r0, #0
+ ldrb r0, [r4, r1]
+ cmp r0, #0
+ beq _0225C8B2
+ cmp r0, #1
+ beq _0225C8D0
+ b _0225C8F4
+_0225C8B2:
+ add r0, r1, #1
+ ldrb r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ ldrb r0, [r4, r0]
+ cmp r0, #0x3c
+ bls _0225C90C
+ mov r2, #0
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ ldrb r0, [r4, r1]
+ add r0, r0, #1
+ strb r0, [r4, r1]
+ b _0225C90C
+_0225C8D0:
+ sub r0, r1, #5
+ mov r3, #0x11
+ ldr r0, [r4, r0]
+ mov r1, #0x28
+ mov r2, #0x92
+ lsl r3, r3, #0x10
+ bl MOD11_0225D7D0
+ ldr r0, _0225C918 ; =0x000006F8
+ mov r1, #0x3c
+ ldr r0, [r4, r0]
+ bl MOD11_0225D820
+ ldr r0, _0225C914 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0225C90C
+_0225C8F4:
+ sub r0, r1, #5
+ ldr r0, [r4, r0]
+ bl MOD11_0225D824
+ cmp r0, #1
+ bne _0225C90C
+ ldr r0, _0225C914 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+_0225C90C:
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, pc}
+ nop
+_0225C914: .word 0x000006FD
+_0225C918: .word 0x000006F8
+
+ thumb_func_start MOD11_0225C91C
+MOD11_0225C91C: ; 0x0225C91C
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x4a
+ str r0, [sp, #4]
+ mov r0, #0
+ add r4, r1, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _0225C990 ; =0x00004E41
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r2, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0225C994 ; =0x00004FB9
+ mov r2, #0x1b
+ add r3, r2, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, #0xf9
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0225C998 ; =0x00004FB3
+ mov r2, #0x1b
+ add r3, r2, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, #0xfa
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0225C99C ; =0x00004FA8
+ mov r2, #0x1b
+ add r3, r2, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, #0xfb
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_0225C990: .word 0x00004E41
+_0225C994: .word 0x00004FB9
+_0225C998: .word 0x00004FB3
+_0225C99C: .word 0x00004FA8
+
+ thumb_func_start MOD11_0225C9A0
+MOD11_0225C9A0: ; 0x0225C9A0
+ push {r4, lr}
+ ldr r1, _0225C9C4 ; =0x00004FB9
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _0225C9C8 ; =0x00004E41
+ add r0, r4, #0
+ bl FUN_0200C368
+ ldr r1, _0225C9CC ; =0x00004FB3
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0225C9D0 ; =0x00004FA8
+ add r0, r4, #0
+ bl FUN_0200C388
+ pop {r4, pc}
+ .align 2, 0
+_0225C9C4: .word 0x00004FB9
+_0225C9C8: .word 0x00004E41
+_0225C9CC: .word 0x00004FB3
+_0225C9D0: .word 0x00004FA8
+
+ thumb_func_start MOD11_0225C9D4
+MOD11_0225C9D4: ; 0x0225C9D4
+ push {r4, lr}
+ mov r0, #5
+ lsl r1, r0, #6
+ bl AllocFromHeap
+ mov r2, #5
+ mov r1, #0
+ lsl r2, r2, #6
+ add r4, r0, #0
+ bl MI_CpuFill8
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225C9F0
+MOD11_0225C9F0: ; 0x0225C9F0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _0225C9FE
+ bl ErrorHandling
+_0225C9FE:
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225CA08
+MOD11_0225CA08: ; 0x0225CA08
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x38]
+ str r3, [sp, #0x1c]
+ str r0, [sp, #0x38]
+ add r6, r1, #0
+ str r2, [sp, #0x18]
+ ldr r7, [sp, #0x3c]
+ bl MOD11_0225C9D4
+ ldr r2, [sp, #0x1c]
+ ldr r3, [sp, #0x38]
+ add r1, r6, #0
+ str r0, [sp, #0x20]
+ str r7, [sp]
+ bl MOD11_0225CB10
+ ldr r5, [sp, #0x20]
+ mov r4, #0
+ add r5, #0x1c
+_0225CA32:
+ ldr r0, [sp, #0x14]
+ add r1, r6, #0
+ ldrb r0, [r0, r4]
+ bl MOD11_0225D374
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ str r1, [sp]
+ str r4, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x38]
+ mov r1, #0x4f
+ str r0, [sp, #0xc]
+ lsl r1, r1, #2
+ add r1, r2, r1
+ ldr r3, [sp, #0x18]
+ add r0, r5, #0
+ add r2, r6, #0
+ str r7, [sp, #0x10]
+ bl MOD11_0225CDB0
+ add r4, r4, #1
+ add r5, #0x30
+ cmp r4, #6
+ blt _0225CA32
+ ldr r0, [sp, #0x20]
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225CA6C
+MOD11_0225CA6C: ; 0x0225CA6C
+ ldr r1, [r0, #4]
+ cmp r1, #0
+ bne _0225CA8A
+ mov r2, #0
+_0225CA74:
+ ldr r1, [r0, #0x20]
+ cmp r1, #0
+ bne _0225CA82
+ add r2, r2, #1
+ add r0, #0x30
+ cmp r2, #6
+ blt _0225CA74
+_0225CA82:
+ cmp r2, #6
+ bne _0225CA8A
+ mov r0, #1
+ bx lr
+_0225CA8A:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0225CA90
+MOD11_0225CA90: ; 0x0225CA90
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r4, r1, #0
+ add r7, r2, #0
+ cmp r6, #0
+ bne _0225CAA0
+ bl ErrorHandling
+_0225CAA0:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0225CC68
+ add r5, r6, #0
+ mov r4, #0
+ add r5, #0x1c
+ add r6, #0x18
+_0225CAB0:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ add r3, r6, #0
+ bl MOD11_0225D1A8
+ add r4, r4, #1
+ add r5, #0x30
+ cmp r4, #6
+ blt _0225CAB0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225CAC8
+MOD11_0225CAC8: ; 0x0225CAC8
+ ldr r1, [r0, #4]
+ cmp r1, #0
+ bne _0225CAE6
+ mov r2, #0
+_0225CAD0:
+ ldr r1, [r0, #0x20]
+ cmp r1, #0
+ bne _0225CADE
+ add r2, r2, #1
+ add r0, #0x30
+ cmp r2, #6
+ blt _0225CAD0
+_0225CADE:
+ cmp r2, #6
+ bne _0225CAE6
+ mov r0, #1
+ bx lr
+_0225CAE6:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0225CAEC
+MOD11_0225CAEC: ; 0x0225CAEC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6]
+ bl FUN_0200C3DC
+ mov r4, #0
+ add r5, r6, #0
+_0225CAFA:
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, #0x30
+ cmp r4, #6
+ blt _0225CAFA
+ add r0, r6, #0
+ bl MOD11_0225C9F0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0225CB10
+MOD11_0225CB10: ; 0x0225CB10
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r6, r1, #0
+ add r4, r2, #0
+ add r7, r3, #0
+ mov r1, #0
+ cmp r0, #0
+ bne _0225CB2A
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ bne _0225CB2A
+ mov r1, #1
+_0225CB2A:
+ cmp r1, #0
+ bne _0225CB32
+ bl ErrorHandling
+_0225CB32:
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #0x1c
+ bl MI_CpuFill8
+ ldr r1, [sp, #0x18]
+ ldr r2, _0225CBA8 ; =0x0225FE48
+ add r0, r7, #0
+ bl FUN_0200C154
+ str r0, [r5]
+ cmp r6, #0
+ ldr r0, [r5]
+ bne _0225CB68
+ ldr r2, _0225CBAC ; =0x0225FE38
+ lsl r3, r4, #1
+ ldrsh r2, [r2, r3]
+ mov r1, #0x16
+ lsl r1, r1, #4
+ bl FUN_0200C714
+ ldr r0, [r5]
+ mov r1, #8
+ ldr r0, [r0]
+ bl FUN_02020130
+ b _0225CB80
+_0225CB68:
+ ldr r2, _0225CBB0 ; =0x0225FE30
+ lsl r3, r4, #1
+ ldrsh r2, [r2, r3]
+ mov r1, #0x5f
+ mvn r1, r1
+ bl FUN_0200C714
+ ldr r0, [r5]
+ mov r1, #7
+ ldr r0, [r0]
+ bl FUN_02020130
+_0225CB80:
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ str r6, [r5, #0xc]
+ mov r2, #0x7d
+ str r4, [r5, #0x10]
+ mov r0, #0
+ strb r0, [r5, #0x1a]
+ ldr r0, _0225CBB4 ; =MOD11_0225CBBC
+ add r1, r5, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ ldr r0, _0225CBB8 ; =0x00000711
+ bl FUN_020054C8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225CBA8: .word 0x0225FE48
+_0225CBAC: .word 0x0225FE38
+_0225CBB0: .word 0x0225FE30
+_0225CBB4: .word MOD11_0225CBBC
+_0225CBB8: .word 0x00000711
+
+ thumb_func_start MOD11_0225CBBC
+MOD11_0225CBBC: ; 0x0225CBBC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldrb r1, [r4, #0x1a]
+ cmp r1, #0
+ beq _0225CBCE
+ cmp r1, #1
+ beq _0225CBEA
+ b _0225CC52
+_0225CBCE:
+ add r1, sp, #0
+ ldr r0, [r4]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r1, sp, #0
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ lsl r0, r0, #8
+ str r0, [r4, #0x14]
+ ldrb r0, [r4, #0x1a]
+ add r0, r0, #1
+ strb r0, [r4, #0x1a]
+_0225CBEA:
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x14]
+ cmp r0, #0
+ bne _0225CC22
+ mov r0, #0xe
+ lsl r0, r0, #8
+ sub r2, r1, r0
+ lsl r1, r0, #4
+ str r2, [r4, #0x14]
+ cmp r2, r1
+ bgt _0225CC0A
+ lsl r0, r0, #4
+ str r0, [r4, #0x14]
+ ldrb r0, [r4, #0x1a]
+ add r0, r0, #1
+ strb r0, [r4, #0x1a]
+_0225CC0A:
+ ldr r2, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ lsl r3, r2, #1
+ ldr r2, _0225CC60 ; =0x0225FE38
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ add sp, #4
+ pop {r3, r4, pc}
+_0225CC22:
+ mov r0, #0xe
+ lsl r0, r0, #8
+ add r1, r1, r0
+ mov r0, #2
+ lsl r0, r0, #0xc
+ str r1, [r4, #0x14]
+ cmp r1, r0
+ blt _0225CC3A
+ str r0, [r4, #0x14]
+ ldrb r0, [r4, #0x1a]
+ add r0, r0, #1
+ strb r0, [r4, #0x1a]
+_0225CC3A:
+ ldr r2, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ lsl r3, r2, #1
+ ldr r2, _0225CC64 ; =0x0225FE30
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ add sp, #4
+ pop {r3, r4, pc}
+_0225CC52:
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0225CC60: .word 0x0225FE38
+_0225CC64: .word 0x0225FE30
+
+ thumb_func_start MOD11_0225CC68
+MOD11_0225CC68: ; 0x0225CC68
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ cmp r0, #0
+ beq _0225CC7A
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ beq _0225CC7E
+_0225CC7A:
+ bl ErrorHandling
+_0225CC7E:
+ mov r0, #0
+ strb r0, [r5, #0x1a]
+ str r4, [r5, #8]
+ cmp r4, #0
+ bne _0225CC8C
+ mov r0, #4
+ b _0225CC8C
+_0225CC8C:
+ strb r0, [r5, #0x1b]
+ mov r2, #0x7d
+ ldr r0, _0225CCA0 ; =MOD11_0225CCA4
+ add r1, r5, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ pop {r3, r4, r5, pc}
+ nop
+_0225CCA0: .word MOD11_0225CCA4
+
+ thumb_func_start MOD11_0225CCA4
+MOD11_0225CCA4: ; 0x0225CCA4
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x1a]
+ cmp r0, #0
+ beq _0225CCBC
+ cmp r0, #1
+ beq _0225CCFC
+ cmp r0, #2
+ beq _0225CD10
+ b _0225CD8E
+_0225CCBC:
+ add r1, sp, #4
+ ldr r0, [r4]
+ add r1, #2
+ add r2, sp, #4
+ bl FUN_0200C7A0
+ add r1, sp, #4
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ mov r1, #1
+ lsl r0, r0, #8
+ str r0, [r4, #0x14]
+ ldr r0, [r4]
+ bl FUN_0200C90C
+ mov r0, #1
+ lsl r0, r0, #0xc
+ strh r0, [r4, #0x18]
+ mov r0, #0x18
+ ldrsh r0, [r4, r0]
+ mov r1, #0
+ mov r2, #0x3f
+ asr r3, r0, #8
+ mov r0, #0x10
+ sub r0, r0, r3
+ str r0, [sp]
+ ldr r0, _0225CDA0 ; =0x04000050
+ bl G2x_SetBlendAlpha_
+ ldrb r0, [r4, #0x1a]
+ add r0, r0, #1
+ strb r0, [r4, #0x1a]
+_0225CCFC:
+ ldrb r0, [r4, #0x1b]
+ cmp r0, #0
+ beq _0225CD0A
+ sub r0, r0, #1
+ add sp, #8
+ strb r0, [r4, #0x1b]
+ pop {r3, r4, r5, pc}
+_0225CD0A:
+ ldrb r0, [r4, #0x1a]
+ add r0, r0, #1
+ strb r0, [r4, #0x1a]
+_0225CD10:
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ bne _0225CD54
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x14]
+ cmp r0, #0
+ bne _0225CD3A
+ mov r0, #1
+ lsl r0, r0, #0xa
+ sub r1, r1, r0
+ str r1, [r4, #0x14]
+ ldr r2, [r4, #0x10]
+ lsl r1, r1, #8
+ lsl r3, r2, #1
+ ldr r2, _0225CDA4 ; =0x0225FE38
+ ldr r0, [r4]
+ ldrsh r2, [r2, r3]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ b _0225CD54
+_0225CD3A:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ add r1, r1, r0
+ str r1, [r4, #0x14]
+ ldr r2, [r4, #0x10]
+ lsl r1, r1, #8
+ lsl r3, r2, #1
+ ldr r2, _0225CDA8 ; =0x0225FE30
+ ldr r0, [r4]
+ ldrsh r2, [r2, r3]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+_0225CD54:
+ mov r1, #0x18
+ ldrsh r2, [r4, r1]
+ add r0, r1, #0
+ add r0, #0xe8
+ sub r0, r2, r0
+ strh r0, [r4, #0x18]
+ ldrsh r0, [r4, r1]
+ cmp r0, #0
+ bgt _0225CD78
+ mov r1, #0
+ strh r1, [r4, #0x18]
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ ldrb r0, [r4, #0x1a]
+ add r0, r0, #1
+ strb r0, [r4, #0x1a]
+_0225CD78:
+ mov r0, #0x18
+ ldrsh r0, [r4, r0]
+ add sp, #8
+ asr r1, r0, #8
+ mov r0, #0x10
+ sub r0, r0, r1
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0225CDAC ; =0x04000052
+ strh r1, [r0]
+ pop {r3, r4, r5, pc}
+_0225CD8E:
+ bl MOD11_02231678
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0225CDA0: .word 0x04000050
+_0225CDA4: .word 0x0225FE38
+_0225CDA8: .word 0x0225FE30
+_0225CDAC: .word 0x04000052
+
+ thumb_func_start MOD11_0225CDB0
+MOD11_0225CDB0: ; 0x0225CDB0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r7, r1, #0
+ add r6, r2, #0
+ mov r1, #0
+ str r3, [sp]
+ ldr r4, [sp, #0x1c]
+ cmp r0, #0
+ bne _0225CDCC
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ bne _0225CDCC
+ mov r1, #1
+_0225CDCC:
+ cmp r1, #0
+ bne _0225CDD4
+ bl ErrorHandling
+_0225CDD4:
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #0x30
+ bl MI_CpuFill8
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x28]
+ ldr r2, _0225CEA4 ; =0x0225FE7C
+ bl FUN_0200C154
+ str r0, [r5]
+ cmp r6, #0
+ ldr r0, [r5]
+ bne _0225CE02
+ ldr r2, [sp, #0x18]
+ mov r1, #0x45
+ lsl r3, r2, #1
+ ldr r2, _0225CEA8 ; =0x0225FE40
+ lsl r1, r1, #2
+ ldrsh r2, [r2, r3]
+ bl FUN_0200C714
+ b _0225CE12
+_0225CE02:
+ ldr r2, [sp, #0x18]
+ mov r1, #0x13
+ lsl r3, r2, #1
+ ldr r2, _0225CEAC ; =0x0225FE28
+ mvn r1, r1
+ ldrsh r2, [r2, r3]
+ bl FUN_0200C714
+_0225CE12:
+ ldr r0, [r5]
+ ldr r1, [sp, #0x20]
+ ldr r0, [r0]
+ bl FUN_02020130
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ add r0, r5, #0
+ str r6, [r5, #8]
+ add r0, #0x2d
+ strb r4, [r0]
+ ldr r0, [sp, #0x18]
+ str r0, [r5, #0xc]
+ ldr r0, [sp, #0x20]
+ bl MOD11_0225D3B4
+ add r1, r5, #0
+ add r1, #0x2e
+ strb r0, [r1]
+ ldr r0, [sp, #0x20]
+ str r7, [r5, #0x14]
+ cmp r0, #6
+ bne _0225CE48
+ ldr r0, _0225CEB0 ; =0x00000713
+ b _0225CE4A
+_0225CE48:
+ ldr r0, _0225CEB4 ; =0x00000712
+_0225CE4A:
+ strh r0, [r5, #0x2a]
+ cmp r6, #0
+ bne _0225CE5E
+ lsl r0, r4, #4
+ add r0, #0xa2
+ str r0, [r5, #0x20]
+ mov r0, #0xf
+ mul r0, r4
+ add r0, #0x9c
+ b _0225CE70
+_0225CE5E:
+ lsl r1, r4, #4
+ mov r0, #0x5e
+ sub r0, r0, r1
+ str r0, [r5, #0x20]
+ mov r0, #0xf
+ add r1, r4, #0
+ mul r1, r0
+ mov r0, #0x64
+ sub r0, r0, r1
+_0225CE70:
+ str r0, [r5, #0x24]
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x2c
+ strb r1, [r0]
+ ldr r0, [sp]
+ ldr r2, _0225CEB8 ; =0x000001F5
+ cmp r0, #0
+ bne _0225CE96
+ lsl r0, r4, #1
+ add r0, r4, r0
+ add r0, r0, #5
+ strh r0, [r5, #0x28]
+ ldr r0, _0225CEBC ; =MOD11_0225CEC4
+ add r1, r5, #0
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225CE96:
+ ldr r0, _0225CEC0 ; =MOD11_0225D0C4
+ strh r1, [r5, #0x28]
+ add r1, r5, #0
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225CEA4: .word 0x0225FE7C
+_0225CEA8: .word 0x0225FE40
+_0225CEAC: .word 0x0225FE28
+_0225CEB0: .word 0x00000713
+_0225CEB4: .word 0x00000712
+_0225CEB8: .word 0x000001F5
+_0225CEBC: .word MOD11_0225CEC4
+_0225CEC0: .word MOD11_0225D0C4
+
+ thumb_func_start MOD11_0225CEC4
+MOD11_0225CEC4: ; 0x0225CEC4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ cmp r0, #6
+ bls _0225CED6
+ b _0225D0A6
+_0225CED6:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225CEE2: ; jump table
+ .short _0225CEF0 - _0225CEE2 - 2 ; case 0
+ .short _0225CF14 - _0225CEE2 - 2 ; case 1
+ .short _0225CF22 - _0225CEE2 - 2 ; case 2
+ .short _0225CFA4 - _0225CEE2 - 2 ; case 3
+ .short _0225CFBC - _0225CEE2 - 2 ; case 4
+ .short _0225CFFC - _0225CEE2 - 2 ; case 5
+ .short _0225D02A - _0225CEE2 - 2 ; case 6
+_0225CEF0:
+ add r1, sp, #0
+ ldr r0, [r4]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r1, sp, #0
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ lsl r0, r0, #8
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225CF14:
+ mov r0, #0x28
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225CF22
+ sub r0, r0, #1
+ strh r0, [r4, #0x28]
+ pop {r3, r4, r5, pc}
+_0225CF22:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x1c]
+ cmp r0, #0
+ bne _0225CF66
+ mov r0, #0xe
+ lsl r0, r0, #8
+ sub r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x24]
+ lsl r0, r0, #8
+ cmp r1, r0
+ bgt _0225CF50
+ str r0, [r4, #0x1c]
+ ldrh r0, [r4, #0x2a]
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225CF50:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ lsl r3, r2, #1
+ ldr r2, _0225D0BC ; =0x0225FE40
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ b _0225CF9A
+_0225CF66:
+ mov r0, #0xe
+ lsl r0, r0, #8
+ add r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x24]
+ lsl r0, r0, #8
+ cmp r1, r0
+ blt _0225CF86
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225CF86:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ lsl r3, r2, #1
+ ldr r2, _0225D0C0 ; =0x0225FE28
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+_0225CF9A:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ pop {r3, r4, r5, pc}
+_0225CFA4:
+ ldr r1, [r4, #0x14]
+ mov r0, #0
+ ldrsb r0, [r1, r0]
+ add r0, r0, #1
+ strb r0, [r1]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225CFBC:
+ ldr r1, [r4, #0x14]
+ mov r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #6
+ beq _0225CFD0
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ pop {r3, r4, r5, pc}
+_0225CFD0:
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ ldr r0, [r4]
+ bne _0225CFE2
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_02020208
+ b _0225CFEA
+_0225CFE2:
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_02020208
+_0225CFEA:
+ mov r0, #0
+ strh r0, [r4, #0x28]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225CFFC:
+ mov r0, #0x28
+ ldrsh r1, [r4, r0]
+ add r1, r1, #1
+ strh r1, [r4, #0x28]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ blt _0225D0BA
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x2e
+ ldrb r1, [r1]
+ ldr r0, [r0]
+ bl FUN_02020130
+ mov r0, #0
+ strh r0, [r4, #0x28]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D02A:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x1c]
+ cmp r0, #0
+ bne _0225D068
+ mov r0, #6
+ lsl r0, r0, #8
+ add r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x20]
+ lsl r0, r0, #8
+ cmp r1, r0
+ blt _0225D052
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D052:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ lsl r3, r2, #1
+ ldr r2, _0225D0BC ; =0x0225FE40
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ b _0225D09C
+_0225D068:
+ mov r0, #6
+ lsl r0, r0, #8
+ sub r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x20]
+ lsl r0, r0, #8
+ cmp r1, r0
+ bgt _0225D088
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D088:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ lsl r3, r2, #1
+ ldr r2, _0225D0C0 ; =0x0225FE28
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+_0225D09C:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ pop {r3, r4, r5, pc}
+_0225D0A6:
+ ldr r0, [r4]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_02020208
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+_0225D0BA:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0225D0BC: .word 0x0225FE40
+_0225D0C0: .word 0x0225FE28
+
+ thumb_func_start MOD11_0225D0C4
+MOD11_0225D0C4: ; 0x0225D0C4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r1, #0x2c
+ ldrb r1, [r1]
+ cmp r1, #0
+ beq _0225D0DC
+ cmp r1, #1
+ beq _0225D10A
+ cmp r1, #2
+ beq _0225D11A
+ b _0225D192
+_0225D0DC:
+ add r1, sp, #0
+ ldr r0, [r4]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r1, sp, #0
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ mov r1, #0
+ lsl r0, r0, #8
+ str r0, [r4, #0x1c]
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_02020208
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D10A:
+ mov r0, #0x28
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225D11A
+ sub r0, r0, #1
+ add sp, #4
+ strh r0, [r4, #0x28]
+ pop {r3, r4, pc}
+_0225D11A:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x1c]
+ cmp r0, #0
+ bne _0225D15A
+ mov r0, #0xe
+ lsl r0, r0, #8
+ sub r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x20]
+ lsl r0, r0, #8
+ cmp r1, r0
+ bgt _0225D142
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D142:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ lsl r3, r2, #1
+ ldr r2, _0225D1A0 ; =0x0225FE40
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ add sp, #4
+ pop {r3, r4, pc}
+_0225D15A:
+ mov r0, #0xe
+ lsl r0, r0, #8
+ add r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x20]
+ lsl r0, r0, #8
+ cmp r1, r0
+ blt _0225D17A
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D17A:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ lsl r3, r2, #1
+ ldr r2, _0225D1A4 ; =0x0225FE28
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ add sp, #4
+ pop {r3, r4, pc}
+_0225D192:
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0225D1A0: .word 0x0225FE40
+_0225D1A4: .word 0x0225FE28
+
+ thumb_func_start MOD11_0225D1A8
+MOD11_0225D1A8: ; 0x0225D1A8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r6, r1, #0
+ add r7, r2, #0
+ add r4, r3, #0
+ cmp r0, #0
+ beq _0225D1BE
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ beq _0225D1C2
+_0225D1BE:
+ bl ErrorHandling
+_0225D1C2:
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x2c
+ strb r1, [r0]
+ cmp r7, #0
+ str r4, [r5, #0x18]
+ ldr r2, _0225D200 ; =0x000001F5
+ bne _0225D1EC
+ lsl r0, r6, #1
+ add r0, r6, r0
+ strh r0, [r5, #0x28]
+ add r0, r5, #0
+ mov r1, #4
+ add r0, #0x2f
+ strb r1, [r0]
+ ldr r0, _0225D204 ; =MOD11_0225D20C
+ add r1, r5, #0
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225D1EC:
+ add r0, r5, #0
+ strh r1, [r5, #0x28]
+ add r0, #0x2f
+ strb r1, [r0]
+ ldr r0, _0225D208 ; =MOD11_0225D31C
+ add r1, r5, #0
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225D200: .word 0x000001F5
+_0225D204: .word MOD11_0225D20C
+_0225D208: .word MOD11_0225D31C
+
+ thumb_func_start MOD11_0225D20C
+MOD11_0225D20C: ; 0x0225D20C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x18]
+ add r5, r0, #0
+ mov r0, #0
+ ldrsh r0, [r1, r0]
+ cmp r0, #0
+ bne _0225D224
+ add r0, r4, #0
+ mov r1, #0x64
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D224:
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ cmp r0, #2
+ bgt _0225D23E
+ cmp r0, #0
+ blt _0225D2FA
+ beq _0225D242
+ cmp r0, #1
+ beq _0225D26E
+ cmp r0, #2
+ beq _0225D294
+ b _0225D2FA
+_0225D23E:
+ cmp r0, #0x64
+ b _0225D2FA
+_0225D242:
+ add r1, sp, #0
+ ldr r0, [r4]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r1, sp, #0
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ mov r1, #1
+ lsl r0, r0, #8
+ str r0, [r4, #0x1c]
+ ldr r0, [r4]
+ bl FUN_0200C90C
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D26E:
+ add r0, r4, #0
+ add r0, #0x2f
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0225D286
+ add r0, r4, #0
+ add r0, #0x2f
+ ldrb r0, [r0]
+ add r4, #0x2f
+ sub r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_0225D286:
+ mov r0, #0x28
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225D294
+ sub r0, r0, #1
+ strh r0, [r4, #0x28]
+ pop {r3, r4, r5, pc}
+_0225D294:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x1c]
+ cmp r0, #0
+ bne _0225D2B8
+ mov r0, #3
+ lsl r0, r0, #0xa
+ sub r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r2, [r4, #0xc]
+ lsl r1, r1, #8
+ lsl r3, r2, #1
+ ldr r2, _0225D310 ; =0x0225FE40
+ ldr r0, [r4]
+ ldrsh r2, [r2, r3]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ b _0225D2D2
+_0225D2B8:
+ mov r0, #3
+ lsl r0, r0, #0xa
+ add r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r2, [r4, #0xc]
+ lsl r1, r1, #8
+ lsl r3, r2, #1
+ ldr r2, _0225D314 ; =0x0225FE28
+ ldr r0, [r4]
+ ldrsh r2, [r2, r3]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+_0225D2D2:
+ ldr r1, [r4, #0x1c]
+ ldr r0, _0225D318 ; =0xFFFFF000
+ cmp r1, r0
+ blt _0225D2E2
+ mov r0, #0x11
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ ble _0225D2F0
+_0225D2E2:
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D2F0:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ pop {r3, r4, r5, pc}
+_0225D2FA:
+ ldr r0, [r4]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0225D310: .word 0x0225FE40
+_0225D314: .word 0x0225FE28
+_0225D318: .word 0xFFFFF000
+
+ thumb_func_start MOD11_0225D31C
+MOD11_0225D31C: ; 0x0225D31C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x18]
+ add r5, r0, #0
+ mov r0, #0
+ ldrsh r0, [r1, r0]
+ cmp r0, #0
+ bne _0225D334
+ add r0, r4, #0
+ mov r1, #0x64
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D334:
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0225D346
+ cmp r0, #1
+ beq _0225D370
+ cmp r0, #0x64
+ b _0225D35C
+_0225D346:
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_0200C90C
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r4, #0x2c
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_0225D35C:
+ ldr r0, [r4]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+_0225D370:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D374
+MOD11_0225D374: ; 0x0225D374
+ cmp r0, #3
+ bhi _0225D38C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225D384: ; jump table
+ .short _0225D38C - _0225D384 - 2 ; case 0
+ .short _0225D390 - _0225D384 - 2 ; case 1
+ .short _0225D39C - _0225D384 - 2 ; case 2
+ .short _0225D3A8 - _0225D384 - 2 ; case 3
+_0225D38C:
+ mov r0, #6
+ bx lr
+_0225D390:
+ cmp r1, #0
+ bne _0225D398
+ mov r0, #3
+ bx lr
+_0225D398:
+ mov r0, #0
+ bx lr
+_0225D39C:
+ cmp r1, #0
+ bne _0225D3A4
+ mov r0, #5
+ bx lr
+_0225D3A4:
+ mov r0, #2
+ bx lr
+_0225D3A8:
+ cmp r1, #0
+ bne _0225D3B0
+ mov r0, #4
+ bx lr
+_0225D3B0:
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD11_0225D3B4
+MOD11_0225D3B4: ; 0x0225D3B4
+ cmp r0, #6
+ bhi _0225D3EA
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0225D3C4: ; jump table
+ .short _0225D3D8 - _0225D3C4 - 2 ; case 0
+ .short _0225D3E8 - _0225D3C4 - 2 ; case 1
+ .short _0225D3E0 - _0225D3C4 - 2 ; case 2
+ .short _0225D3D4 - _0225D3C4 - 2 ; case 3
+ .short _0225D3E4 - _0225D3C4 - 2 ; case 4
+ .short _0225D3DC - _0225D3C4 - 2 ; case 5
+ .short _0225D3D2 - _0225D3C4 - 2 ; case 6
+_0225D3D2:
+ bx lr
+_0225D3D4:
+ mov r0, #0
+ bx lr
+_0225D3D8:
+ mov r0, #3
+ bx lr
+_0225D3DC:
+ mov r0, #2
+ bx lr
+_0225D3E0:
+ mov r0, #5
+ bx lr
+_0225D3E4:
+ mov r0, #1
+ bx lr
+_0225D3E8:
+ mov r0, #4
+_0225D3EA:
+ bx lr
+
+ thumb_func_start MOD11_0225D3EC
+MOD11_0225D3EC: ; 0x0225D3EC
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x2c
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ mov r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x28]
+ add r4, r1, #0
+ add r6, r3, #0
+ str r0, [sp, #0x14]
+ add r0, r2, #0
+ mov r1, #3
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ mov r3, #0xba
+ str r6, [sp, #8]
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, [sp, #0x2c]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x1b
+ mov r3, #0xbb
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, [sp, #0x30]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x1b
+ mov r3, #0xbc
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0225D45C
+MOD11_0225D45C: ; 0x0225D45C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl FUN_0200C358
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200C368
+ add r0, r5, #0
+ add r1, r6, #0
+ bl FUN_0200C378
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl FUN_0200C388
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D484
+MOD11_0225D484: ; 0x0225D484
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r5, r3, #0
+ mov ip, r2
+ ldr r3, _0225D4FC ; =0x0225FEB0
+ add r6, r0, #0
+ add r7, r1, #0
+ add r2, sp, #4
+ mov r4, #6
+_0225D496:
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ sub r4, r4, #1
+ bne _0225D496
+ ldr r0, [r3]
+ mov r1, #0x18
+ str r0, [r2]
+ ldr r0, [sp, #0x50]
+ str r5, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x54]
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x58]
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x5c]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x60]
+ str r0, [sp, #0x30]
+ mov r0, ip
+ bl AllocFromHeap
+ mov r1, #0
+ mov r2, #0x18
+ str r0, [sp]
+ bl MI_CpuFill8
+ ldr r5, [sp]
+ mov r4, #0
+_0225D4CE:
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, sp, #4
+ bl FUN_0200C154
+ mov r1, #0
+ stmia r5!, {r0}
+ bl FUN_0200C644
+ add r4, r4, #1
+ cmp r4, #5
+ blt _0225D4CE
+ ldr r0, _0225D500 ; =MOD11_0225D670
+ ldr r1, [sp]
+ ldr r2, _0225D504 ; =0x00009C40
+ bl FUN_0200CA44
+ ldr r1, [sp]
+ str r0, [r1, #0x14]
+ add r0, r1, #0
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225D4FC: .word 0x0225FEB0
+_0225D500: .word MOD11_0225D670
+_0225D504: .word 0x00009C40
+
+ thumb_func_start MOD11_0225D508
+MOD11_0225D508: ; 0x0225D508
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_0225D510:
+ ldr r0, [r5]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _0225D510
+ ldr r0, [r6, #0x14]
+ bl FUN_0200CAB4
+ add r0, r6, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0225D52C
+MOD11_0225D52C: ; 0x0225D52C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r4, [sp, #0x24]
+ add r6, r3, #0
+ ldr r0, [r5]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ add r3, r4, #0
+ bl FUN_0200C750
+ ldr r2, [sp, #0x10]
+ lsl r1, r6, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #4]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ add r3, r4, #0
+ bl FUN_0200C750
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x18]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #8]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ add r3, r4, #0
+ bl FUN_0200C750
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0xc]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ add r3, r4, #0
+ bl FUN_0200C750
+ ldr r0, [r5]
+ mov r1, #0
+ bl FUN_0200C5C0
+ ldr r0, [r5, #4]
+ mov r1, #1
+ bl FUN_0200C5C0
+ ldr r0, [r5, #8]
+ mov r1, #2
+ bl FUN_0200C5C0
+ ldr r0, [r5, #0xc]
+ mov r1, #3
+ bl FUN_0200C5C0
+ mov r4, #0
+ mov r6, #1
+_0225D5A2:
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl FUN_0200C644
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0225D5A2
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0225D5B4
+MOD11_0225D5B4: ; 0x0225D5B4
+ push {r4, lr}
+ sub sp, #0x18
+ ldr r4, [sp, #0x20]
+ str r4, [sp]
+ ldr r4, [sp, #0x24]
+ str r4, [sp, #4]
+ ldr r4, [sp, #0x28]
+ str r4, [sp, #8]
+ ldr r4, [sp, #0x2c]
+ str r4, [sp, #0xc]
+ ldr r4, [sp, #0x30]
+ str r4, [sp, #0x10]
+ mov r4, #3
+ lsl r4, r4, #0x12
+ str r4, [sp, #0x14]
+ bl MOD11_0225D52C
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D5DC
+MOD11_0225D5DC: ; 0x0225D5DC
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r2, #0
+ str r3, [sp]
+ ldr r2, [sp, #0x20]
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ str r4, [sp, #0xc]
+ str r2, [sp, #0x10]
+ add r2, r3, #0
+ add r3, r4, #0
+ bl MOD11_0225D5B4
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D5FC
+MOD11_0225D5FC: ; 0x0225D5FC
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r2, #0
+ str r3, [sp]
+ ldr r2, [sp, #0x20]
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ str r4, [sp, #0xc]
+ str r2, [sp, #0x10]
+ ldr r2, [sp, #0x24]
+ str r2, [sp, #0x14]
+ add r2, r3, #0
+ add r3, r4, #0
+ bl MOD11_0225D52C
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D620
+MOD11_0225D620: ; 0x0225D620
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r3, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0x10]
+ ldr r3, [sp, #0x10]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C750
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0
+ bl FUN_0200C5C0
+ ldr r0, [r5, #0x10]
+ mov r1, #1
+ bl FUN_0200C644
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0225D648
+MOD11_0225D648: ; 0x0225D648
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_0225D650:
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl FUN_0200C644
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _0225D650
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D664
+MOD11_0225D664: ; 0x0225D664
+ ldr r3, _0225D66C ; =FUN_0200C644
+ ldr r0, [r0, #0x10]
+ mov r1, #0
+ bx r3
+ .align 2, 0
+_0225D66C: .word FUN_0200C644
+
+ thumb_func_start MOD11_0225D670
+MOD11_0225D670: ; 0x0225D670
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ ldr r0, [r6]
+ bl FUN_0200C658
+ cmp r0, #0
+ beq _0225D6A0
+ mov r4, #0
+ add r5, r6, #0
+_0225D682:
+ ldr r0, [r5]
+ bl FUN_0200C5A8
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0225D682
+ ldr r0, [r6, #0x10]
+ bl FUN_0200C658
+ cmp r0, #1
+ bne _0225D6A0
+ ldr r0, [r6, #0x10]
+ bl FUN_0200C5A8
+_0225D6A0:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D6A4
+MOD11_0225D6A4: ; 0x0225D6A4
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #0x52
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ mov r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x28]
+ add r4, r1, #0
+ add r6, r3, #0
+ str r0, [sp, #0x14]
+ add r0, r2, #0
+ mov r1, #3
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x52
+ mov r3, #0xa
+ str r6, [sp, #8]
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x2c]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x52
+ mov r3, #0xc
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x30]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x52
+ mov r3, #0xd
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0225D714
+MOD11_0225D714: ; 0x0225D714
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl FUN_0200C358
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200C368
+ add r0, r5, #0
+ add r1, r6, #0
+ bl FUN_0200C378
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl FUN_0200C388
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D73C
+MOD11_0225D73C: ; 0x0225D73C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ ldr r5, _0225D7AC ; =0x0225FEE4
+ add r6, r3, #0
+ add r7, r0, #0
+ str r1, [sp]
+ add r4, sp, #4
+ mov r3, #6
+_0225D74C:
+ ldmia r5!, {r0, r1}
+ stmia r4!, {r0, r1}
+ sub r3, r3, #1
+ bne _0225D74C
+ ldr r0, [r5]
+ mov r1, #0x20
+ str r0, [r4]
+ ldr r0, [sp, #0x50]
+ str r6, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x54]
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x58]
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x5c]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x60]
+ str r0, [sp, #0x30]
+ add r0, r2, #0
+ bl AllocFromHeap
+ mov r1, #0
+ mov r2, #0x20
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r1, [sp]
+ add r0, r7, #0
+ add r2, sp, #4
+ bl FUN_0200C154
+ mov r1, #0
+ str r0, [r4]
+ bl FUN_0200C644
+ mov r0, #3
+ lsl r0, r0, #0x12
+ str r0, [r4, #0x14]
+ ldr r0, _0225D7B0 ; =MOD11_0225D828
+ ldr r2, _0225D7B4 ; =0x000003E7
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #4]
+ add r0, r4, #0
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225D7AC: .word 0x0225FEE4
+_0225D7B0: .word MOD11_0225D828
+_0225D7B4: .word 0x000003E7
+
+ thumb_func_start MOD11_0225D7B8
+MOD11_0225D7B8: ; 0x0225D7B8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #4]
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0225D7D0
+MOD11_0225D7D0: ; 0x0225D7D0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r1, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl MOD11_0225D98C
+ str r7, [r5, #8]
+ str r4, [r5, #0xc]
+ str r6, [r5, #0x14]
+ lsl r1, r7, #0x10
+ lsl r2, r4, #0x10
+ ldr r0, [r5]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ add r3, r6, #0
+ bl FUN_0200C750
+ ldr r0, [r5]
+ mov r1, #1
+ bl FUN_0200C644
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D800
+MOD11_0225D800: ; 0x0225D800
+ push {r3, lr}
+ mov r3, #3
+ lsl r3, r3, #0x12
+ bl MOD11_0225D7D0
+ pop {r3, pc}
+
+ thumb_func_start MOD11_0225D80C
+MOD11_0225D80C: ; 0x0225D80C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_0200C644
+ add r0, r4, #0
+ bl MOD11_0225D98C
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0225D820
+MOD11_0225D820: ; 0x0225D820
+ strh r1, [r0, #0x18]
+ bx lr
+
+ thumb_func_start MOD11_0225D824
+MOD11_0225D824: ; 0x0225D824
+ ldrb r0, [r0, #0x1b]
+ bx lr
+
+ thumb_func_start MOD11_0225D828
+MOD11_0225D828: ; 0x0225D828
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldrb r0, [r4, #0x1b]
+ cmp r0, #1
+ bne _0225D836
+ mov r0, #0
+ strb r0, [r4, #0x1b]
+_0225D836:
+ mov r0, #0x18
+ ldrsh r1, [r4, r0]
+ cmp r1, #0
+ ble _0225D84C
+ sub r1, r1, #1
+ strh r1, [r4, #0x18]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bne _0225D84C
+ mov r0, #1
+ strb r0, [r4, #0x1a]
+_0225D84C:
+ ldr r0, [r4]
+ bl FUN_0200C658
+ cmp r0, #0
+ bne _0225D858
+ b _0225D984
+_0225D858:
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #0
+ bne _0225D8DA
+ mov r1, #0xfa
+ ldr r2, [r4, #0x10]
+ lsl r1, r1, #2
+ add r2, r2, r1
+ add r0, r4, #0
+ ldr r1, _0225D988 ; =0x00004650
+ add r0, #0x10
+ str r2, [r4, #0x10]
+ cmp r2, r1
+ blt _0225D886
+ ldr r2, [r0]
+ sub r1, r2, r1
+ str r1, [r0]
+ ldrb r0, [r4, #0x1a]
+ cmp r0, #1
+ bne _0225D886
+ mov r0, #1
+ strb r0, [r4, #0x1c]
+ mov r0, #0
+ strb r0, [r4, #0x1a]
+_0225D886:
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #0
+ bne _0225D8DA
+ ldr r0, [r4, #0x10]
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl Sin
+ mov r2, #0xe
+ asr r1, r0, #0x1f
+ lsl r2, r2, #0xc
+ mov r3, #0
+ bl _ll_mul
+ add r5, r1, #0
+ ldr r1, [r4, #8]
+ mov r2, #2
+ add r6, r0, #0
+ lsl r1, r1, #0x10
+ mov r7, #0
+ lsl r2, r2, #0xa
+ asr r1, r1, #0x10
+ add r2, r6, r2
+ adc r5, r7
+ lsl r5, r5, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r5
+ asr r5, r2, #0xb
+ lsr r5, r5, #0x14
+ add r5, r2, r5
+ ldr r3, [r4, #0xc]
+ asr r2, r5, #0xc
+ sub r2, r3, r2
+ lsl r2, r2, #0x10
+ ldr r0, [r4]
+ ldr r3, [r4, #0x14]
+ asr r2, r2, #0x10
+ bl FUN_0200C750
+_0225D8DA:
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #1
+ bne _0225D97E
+ ldrb r0, [r4, #0x1d]
+ cmp r0, #3
+ bhi _0225D97E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225D8F2: ; jump table
+ .short _0225D8FA - _0225D8F2 - 2 ; case 0
+ .short _0225D912 - _0225D8F2 - 2 ; case 1
+ .short _0225D934 - _0225D8F2 - 2 ; case 2
+ .short _0225D962 - _0225D8F2 - 2 ; case 3
+_0225D8FA:
+ ldrb r0, [r4, #0x1e]
+ add r0, r0, #1
+ strb r0, [r4, #0x1e]
+ ldrb r0, [r4, #0x1e]
+ cmp r0, #3
+ bls _0225D97E
+ mov r0, #0
+ strb r0, [r4, #0x1e]
+ ldrb r0, [r4, #0x1d]
+ add r0, r0, #1
+ strb r0, [r4, #0x1d]
+ b _0225D97E
+_0225D912:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #8]
+ add r2, #8
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r4]
+ ldr r3, [r4, #0x14]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C750
+ mov r0, #1
+ strb r0, [r4, #0x1b]
+ ldrb r0, [r4, #0x1d]
+ add r0, r0, #1
+ strb r0, [r4, #0x1d]
+ b _0225D97E
+_0225D934:
+ ldrb r0, [r4, #0x1e]
+ add r0, r0, #1
+ strb r0, [r4, #0x1e]
+ ldrb r0, [r4, #0x1e]
+ cmp r0, #2
+ bls _0225D97E
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #8]
+ add r2, r2, #2
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r4]
+ ldr r3, [r4, #0x14]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C750
+ mov r0, #0
+ strb r0, [r4, #0x1e]
+ ldrb r0, [r4, #0x1d]
+ add r0, r0, #1
+ strb r0, [r4, #0x1d]
+ b _0225D97E
+_0225D962:
+ ldrb r0, [r4, #0x1e]
+ add r0, r0, #1
+ strb r0, [r4, #0x1e]
+ ldrb r0, [r4, #0x1e]
+ cmp r0, #2
+ bls _0225D97E
+ add r0, r4, #0
+ bl MOD11_0225D80C
+ mov r0, #0
+ strb r0, [r4, #0x1e]
+ ldrb r0, [r4, #0x1d]
+ add r0, r0, #1
+ strb r0, [r4, #0x1d]
+_0225D97E:
+ ldr r0, [r4]
+ bl FUN_0200C5A8
+_0225D984:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225D988: .word 0x00004650
+
+ thumb_func_start MOD11_0225D98C
+MOD11_0225D98C: ; 0x0225D98C
+ mov r1, #0
+ str r1, [r0, #0x10]
+ strb r1, [r0, #0x1c]
+ strb r1, [r0, #0x1d]
+ strb r1, [r0, #0x1e]
+ bx lr
+
+ .section .rodata
+ ; 0x0225D998
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x02, 0x03, 0x04, 0x05, 0x03, 0x02, 0x05, 0x04
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
@@ -99234,19 +99234,19 @@ MOD11_0225D98C: ; 0x0225D98C
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- ; Stupid hack to override alignment
- ; .section .sinit
- ; 0x0225FF18
- .global SDK_OVERLAY.MODULE_11.SINIT_START
- .global SDK_OVERLAY.MODULE_11.SINIT_END
-SDK_OVERLAY.MODULE_11.SINIT_START:
- .word MOD11_0222F284
- .word 0
-SDK_OVERLAY.MODULE_11.SINIT_END:
-
- .section .data
- ; 0x0225FF20
+
+ ; Stupid hack to override alignment
+ ; .section .sinit
+ ; 0x0225FF18
+ .global SDK_OVERLAY.MODULE_11.SINIT_START
+ .global SDK_OVERLAY.MODULE_11.SINIT_END
+SDK_OVERLAY.MODULE_11.SINIT_START:
+ .word MOD11_0222F284
+ .word 0
+SDK_OVERLAY.MODULE_11.SINIT_END:
+
+ .section .data
+ ; 0x0225FF20
.byte 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x08, 0x08, 0x06, 0x0C
.byte 0x0C, 0x0C, 0x04, 0x08, 0x10, 0x10, 0x02, 0x10, 0x0F, 0x0F, 0x08, 0x14, 0x02, 0x08, 0x08, 0x1E
.byte 0x28, 0x28, 0x32, 0x32, 0x0E, 0x10, 0x0A, 0x0F, 0x0F, 0x0C, 0x04, 0x04, 0x01, 0x01, 0x08, 0x05
diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s
index 2256bd99..d7aca4f9 100644
--- a/arm9/modules/12/asm/module_12.s
+++ b/arm9/modules/12/asm/module_12.s
@@ -16250,7 +16250,7 @@ _022356DA:
bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
- bl FUN_0201B954
+ bl Cos
str r0, [sp]
lsl r6, r4, #0xc
ldrh r0, [r5, #0x1e]
@@ -16259,7 +16259,7 @@ _022356DA:
bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
- bl FUN_0201B93C
+ bl Sin
str r0, [sp, #4]
ldr r0, [sp]
add r2, r6, #0
@@ -16534,14 +16534,14 @@ _0223591A:
bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
- bl FUN_0201B93C
+ bl Sin
add r4, r0, #0
ldrh r0, [r5, #0xc]
mov r1, #0x64
bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
- bl FUN_0201B954
+ bl Cos
add r6, r0, #0
ldr r0, [r5, #0x20]
mov r2, #3
@@ -25318,7 +25318,7 @@ MOD12_02239980: ; 0x02239980
cmp r0, #0
bne _022399EE
ldr r0, [r4, #0x10]
- bl FUN_0201B9B8
+ bl Sin32
lsl r1, r0, #3
asr r0, r1, #0xb
lsr r0, r0, #0x14
@@ -34508,7 +34508,7 @@ _0223E01C:
mov r5, #3
lsl r0, r0, #8
lsr r0, r0, #0x10
- bl FUN_0201B954
+ bl Cos
add r1, r5, #0
mul r1, r0
ldrb r2, [r4, #0x19]
@@ -34988,7 +34988,7 @@ MOD12_0223E3DC: ; 0x0223E3DC
bl _u32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
- bl FUN_0201B93C
+ bl Sin
mov r1, #0xa
mul r1, r0
asr r0, r1, #0xb
@@ -35344,7 +35344,7 @@ _0223E6B6:
strb r0, [r4, #0x10]
_0223E6C6:
ldr r0, [r4, #0x20]
- bl FUN_0201B9B8
+ bl Sin32
lsl r1, r0, #2
asr r0, r1, #0xb
lsr r0, r0, #0x14
@@ -44552,7 +44552,7 @@ _02242E62:
add r0, r1, r0
lsl r0, r0, #8
lsr r0, r0, #0x10
- bl FUN_0201B93C
+ bl Sin
asr r1, r0, #0x1f
asr r3, r5, #0x1f
add r2, r5, #0
diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s
index 191de449..17079687 100644
--- a/arm9/modules/14/asm/module_14.s
+++ b/arm9/modules/14/asm/module_14.s
@@ -17075,7 +17075,7 @@ _021DFB5E:
str r0, [r4, #0x18]
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B93C
+ bl Sin
ldr r1, [r4, #0x24]
add r2, r1, #0
mul r2, r0
diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s
index 0dae9777..8fa63c8c 100644
--- a/arm9/modules/16/asm/module_16.s
+++ b/arm9/modules/16/asm/module_16.s
@@ -14346,7 +14346,7 @@ MOD16_021DDECC: ; 0x021DDECC
mov r0, #0x83
ldr r1, [r6, #0xc]
lsl r0, r0, #2
- bl FUN_0201BC84
+ bl MathUtil_0201BC84
add r2, r0, #0
ldr r3, [r6, #0x1c]
add r0, r4, #0
@@ -15542,7 +15542,7 @@ MOD16_021DE8A0: ; 0x021DE8A0
sub r1, #0x68
sub r2, #0xf8
sub r3, #0x68
- bl FUN_0201BBD0
+ bl CircularDistance
mov r1, #0xa
mul r1, r0
str r1, [r4, #0xc]
@@ -44165,7 +44165,7 @@ MOD16_021EBC30: ; 0x021EBC30
sub r1, #0x9d
sub r2, #0x33
sub r3, #0x9d
- bl FUN_0201BBD0
+ bl CircularDistance
add r6, r0, #0
bpl _021EBC56
neg r0, r6
@@ -44306,7 +44306,7 @@ MOD16_021EBD3C: ; 0x021EBD3C
ldr r1, [r1, #0x5c]
add r4, r0, #0
mov r0, #0xe
- bl FUN_0201BC84
+ bl MathUtil_0201BC84
add r1, r0, #0
lsl r1, r1, #0x10
ldr r0, [r4]
@@ -52755,7 +52755,7 @@ _021EFCEA:
lsl r0, r0, #2
strb r7, [r1, r0]
_021EFCFC:
- bl rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
mov r1, #1
tst r0, r1
beq _021F0FBA
@@ -59600,7 +59600,7 @@ _021F3122:
str r0, [sp, #0x20]
b _021F3214
_021F3132:
- bl rand_LC
+ bl LCRandom
mov r1, #0xb
bl _s32_div_f
ldr r0, [sp, #0x64]
@@ -59644,7 +59644,7 @@ _021F3170:
add r4, r0, #0
b _021F3214
_021F318E:
- bl rand_LC
+ bl LCRandom
mov r1, #0x64
bl _s32_div_f
cmp r1, #5
@@ -60483,7 +60483,7 @@ _021F3730:
mov r0, #2
tst r0, r1
beq _021F37D8
- bl rand_LC
+ bl LCRandom
mov r1, #3
bl _s32_div_f
cmp r1, #2
@@ -60820,7 +60820,7 @@ _021F3A58:
mov r0, #2
tst r0, r1
beq _021F3A7E
- bl rand_LC
+ bl LCRandom
mov r1, #3
bl _s32_div_f
cmp r1, #2
@@ -60884,7 +60884,7 @@ _021F3AE4:
mov r0, #2
tst r0, r1
beq _021F3B0A
- bl rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
mov r1, #1
tst r0, r1
beq _021F3FE6
@@ -61776,7 +61776,7 @@ _021F4182:
mov r0, #2
tst r0, r1
beq _021F4232
- bl rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
mov r1, #1
tst r0, r1
beq _021F42C8
@@ -61874,7 +61874,7 @@ _021F42C8:
ldrb r0, [r1, r0]
cmp r0, #0
bne _021F42EE
- bl rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 a9ad0efd..a45d8d7f 100644
--- a/arm9/modules/17/asm/module_17.s
+++ b/arm9/modules/17/asm/module_17.s
@@ -6601,7 +6601,7 @@ _021DA6B8:
str r0, [r5]
mov r0, #0x12
str r0, [r4]
- bl rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
ldr r2, [sp, #0x14]
mov r1, #0x7d
sub r1, r1, r2
@@ -8316,14 +8316,14 @@ _021DB2C2:
add r1, sp, #0x14
add r2, sp, #0x10
bl MOD17_021DBC08
- bl rand_MT
+ bl MTRandom
ldr r2, [sp, #0x14]
mov r1, #0x6c
sub r1, r1, r2
bl _u32_div_f
add r1, #0xa
str r1, [sp, #0xc]
- bl rand_MT
+ bl MTRandom
ldr r2, [sp, #0x10]
mov r1, #0x7d
sub r1, r1, r2
diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s
index 36ef4cf5..d233da89 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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
mov r1, #0x7d
lsl r1, r1, #2
bl _s32_div_f
add r1, #0x32
str r1, [r4]
- bl rand_LC
+ bl LCRandom
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 rand_MT
+ bl MTRandom
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 2ba07ed6..faaa636a 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 rand_MT
+ bl MTRandom
mov r1, #0x3f
and r0, r1
sub r0, #0x20
lsl r4, r0, #0xc
- bl rand_MT
+ bl MTRandom
mov r1, #0x3f
and r0, r1
sub r0, #0x20
@@ -2216,7 +2216,7 @@ _022558A6:
add r0, r4, #0
add r0, #0x35
ldrb r0, [r0]
- bl FUN_0201B93C
+ bl Sin
mov r1, #0x13
mvn r1, r1
mul r1, r0
diff --git a/arm9/modules/36/asm/module_36.s b/arm9/modules/36/asm/module_36.s
index 93e6816a..4c84dc7b 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 rand_MT
+ bl MTRandom
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 7433805c..886ec479 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 rand_MT
+ bl MTRandom
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 456ae1e6..7adce220 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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 03a8eda6..883995c8 100644
--- a/arm9/modules/53/asm/module_53.s
+++ b/arm9/modules/53/asm/module_53.s
@@ -3336,7 +3336,7 @@ MOD53_021D8FB8: ; 0x021D8FB8
strh r1, [r0]
_021D8FCE:
ldrh r0, [r0]
- bl FUN_0201B970
+ bl Sin_Wrap
mov r1, #0xa
mul r1, r0
asr r0, r1, #0xb
diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s
index 48b488bf..144c730b 100644
--- a/arm9/modules/54/asm/module_54.s
+++ b/arm9/modules/54/asm/module_54.s
@@ -2724,7 +2724,7 @@ MOD54_021D8A90: ; 0x021D8A90
strh r1, [r0]
_021D8AA6:
ldrh r0, [r0]
- bl FUN_0201B970
+ bl Sin_Wrap
mov r1, #0xa
add r2, r0, #0
mul r2, r1
diff --git a/arm9/modules/58/asm/module_58.s b/arm9/modules/58/asm/module_58.s
index 17e5c6d8..4c10cb07 100644
--- a/arm9/modules/58/asm/module_58.s
+++ b/arm9/modules/58/asm/module_58.s
@@ -2148,7 +2148,7 @@ MOD58_021DAB34: ; 0x021DAB34
strh r1, [r0]
_021DAB4A:
ldrh r0, [r0]
- bl FUN_0201B970
+ bl Sin_Wrap
mov r1, #0xa
mul r1, r0
asr r0, r1, #0xb
diff --git a/arm9/modules/63/asm/module_63.s b/arm9/modules/63/asm/module_63.s
index a6498412..70c6dc91 100644
--- a/arm9/modules/63/asm/module_63.s
+++ b/arm9/modules/63/asm/module_63.s
@@ -3077,10 +3077,10 @@ MOD63_021D8D10: ; 0x021D8D10
ldr r0, _021D8D94 ; =0x021C4918
strb r1, [r0, #5]
bl FUN_0201E7A0
- bl getseed_LC
+ bl GetLCRNGSeed
str r0, [r4, #0x14]
mov r0, #0
- bl seedr_LC
+ bl SetLCRNGSeed
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 seedr_LC
+ bl SetLCRNGSeed
add r0, r5, #0
bl FUN_0200627C
mov r0, #0x4c
@@ -7639,7 +7639,7 @@ _021DB248:
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
- bl rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
mov r1, #0xe0
bl _s32_div_f
add r1, #0xa
lsl r0, r1, #0xc
str r0, [sp, #4]
- bl rand_LC
+ bl LCRandom
mov r1, #0x38
bl _s32_div_f
ldr r0, _021DB41C ; =0x0000013A
diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s
index fa4d0c5b..10af9dcd 100644
--- a/arm9/modules/65/asm/module_65.s
+++ b/arm9/modules/65/asm/module_65.s
@@ -4239,7 +4239,7 @@ MOD65_021D95A4: ; 0x021D95A4
orr r1, r0
lsl r0, r1, #4
lsr r0, r0, #0x10
- bl FUN_0201B970
+ bl Sin_Wrap
ldr r2, _021D9678 ; =0xFFFC0000
asr r1, r0, #0x1f
asr r3, r2, #0x12
@@ -5018,7 +5018,7 @@ MOD65_021D9BD8: ; 0x021D9BD8
orr r1, r0
lsl r0, r1, #4
lsr r0, r0, #0x10
- bl FUN_0201B970
+ bl Sin_Wrap
ldr r2, _021D9CD8 ; =0xFFFFA000
asr r1, r0, #0x1f
asr r3, r2, #0xf
@@ -5240,7 +5240,7 @@ MOD65_021D9E20: ; 0x021D9E20
add r0, r4, #0
add r0, #0x50
ldrh r0, [r0]
- bl FUN_0201B970
+ bl Sin_Wrap
asr r1, r0, #0x1f
lsr r2, r0, #0x13
lsl r1, r1, #0xd
diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s
index bdd1afca..a5103ad4 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 AllocFromHeap
str r0, [sp, #0x28]
- bl rand_LC
+ bl LCRandom
str r0, [sp, #0x20]
ldr r0, _0222F348 ; =0x00003594
- bl seedr_LC
+ bl SetLCRNGSeed
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
mov r1, #7
and r0, r1
sub r5, r0, #1
@@ -3594,7 +3594,7 @@ _0222F2FA:
b _0222F1EE
_0222F320:
ldr r0, [sp, #0x20]
- bl seedr_LC
+ bl SetLCRNGSeed
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 a480a3f6..425cfc0b 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 rand_LC
+ bl LCRandom
ldr r1, _0222E0F0 ; =0x00000445
bl _s32_div_f
lsl r0, r0, #0x10
@@ -3488,7 +3488,7 @@ MOD71_0222F2D8: ; 0x0222F2D8
strh r1, [r0]
_0222F2EE:
ldrh r0, [r0]
- bl FUN_0201B970
+ bl Sin_Wrap
mov r1, #0xa
mul r1, r0
asr r0, r1, #0xb
diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s
index 97f57105..2ea96e13 100644
--- a/arm9/modules/73/asm/module_73.s
+++ b/arm9/modules/73/asm/module_73.s
@@ -6714,17 +6714,17 @@ _021DA900:
ldr r0, [sp, #0x60]
bl MOD73_021DAB30
_021DA906:
- bl rand_MT
+ bl MTRandom
lsl r0, r0, #0x10
lsr r6, r0, #0x10
- bl rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
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 rand_MT
+ bl MTRandom
ldr r1, [sp, #0xa0]
bl _u32_div_f
ldr r0, [sp, #0x9c]
@@ -8078,7 +8078,7 @@ MOD73_021DB2D0: ; 0x021DB2D0
sub r2, r5, r6
sub r0, r0, r6
add r3, r4, #0
- bl FUN_0201BBD0
+ bl CircularDistance
mov r1, #0xa0
mul r1, r0
add r0, r1, #0
@@ -8365,7 +8365,7 @@ _021DB4E4:
bl _s32_div_f
add r1, r0, #0
mov r0, #0x44
- bl FUN_0201BC84
+ bl MathUtil_0201BC84
ldr r1, [r5, #8]
add r0, r1, r0
str r0, [r5, #8]
@@ -8639,7 +8639,7 @@ MOD73_021DB698: ; 0x021DB698
ldr r0, [r5, #4]
cmp r0, #0
bge _021DB70A
- bl rand_MT
+ bl MTRandom
mov r1, #5
add r6, r0, #0
bl _u32_div_f
diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s
index cb2b9ef0..1aa36886 100644
--- a/arm9/modules/75/asm/module_75.s
+++ b/arm9/modules/75/asm/module_75.s
@@ -6823,11 +6823,11 @@ _021EA18A:
sub r0, r7, r0
sub r2, r7, r2
sub r3, r3, r4
- bl FUN_0201BBD0
+ bl CircularDistance
add r4, r0, #0
mov r0, #0x50
lsl r1, r4, #1
- bl FUN_0201BC84
+ bl MathUtil_0201BC84
lsl r0, r0, #8
mov r1, #0xb6
bl _s32_div_f
diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s
index 2ff872c5..1af82a16 100644
--- a/arm9/modules/80/asm/module_80.s
+++ b/arm9/modules/80/asm/module_80.s
@@ -15859,7 +15859,7 @@ MOD80_022353B4: ; 0x022353B4
bl FUN_02022840
mov r0, #0x1f
str r0, [r4, #0x2c]
- bl rand_LC
+ bl LCRandom
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 82f5fbd1..e6f22ba3 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 rand_MT
+ bl MTRandom
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 seedr_MT
+ bl SetMTRNGSeed
add r0, r5, #0
bl FreeToHeap
_022397A0:
@@ -4154,17 +4154,17 @@ MOD81_02239E00: ; 0x02239E00
add r3, sp, #0x60
bl MOD81_022387A8
ldr r0, _02239F18 ; =0x035947D1
- bl seedr_MT
+ bl SetMTRNGSeed
mov r0, #0
str r0, [sp, #0x14]
add r4, r7, #0
_02239E9A:
- bl rand_MT
+ bl MTRandom
mov r1, #0xe8
bl _u32_div_f
add r6, r1, #0
add r6, #0xc
- bl rand_MT
+ bl MTRandom
mov r1, #0x71
lsl r1, r1, #2
bl _u32_div_f
diff --git a/arm9/modules/84/asm/module_84.s b/arm9/modules/84/asm/module_84.s
index fc7ebf31..8fd1ddbe 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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
ldr r1, _021D8428 ; =0x00001220
ldr r1, [r4, r1]
sub r1, r1, r7
@@ -1748,7 +1748,7 @@ _021D8358:
cmp r7, r0
blt _021D8358
_021D83B0:
- bl rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 seedr_LC
+ bl SetLCRNGSeed
add r0, r4, #0
bl MOD84_021D9044
add r0, r4, #0
@@ -3393,7 +3393,7 @@ _021D8FE4:
b _021D9034
_021D9028:
ldr r0, _021D9040 ; =0x00003485
- bl seedr_LC
+ bl SetLCRNGSeed
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 f89be7c2..aeaa3704 100644
--- a/arm9/modules/85/asm/module_85.s
+++ b/arm9/modules/85/asm/module_85.s
@@ -1587,7 +1587,7 @@ MOD85_021D81C8: ; 0x021D81C8
mov r4, #0
lsl r6, r7, #0x11
_021D81D2:
- bl rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
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 rand_LC
+ bl LCRandom
mov r1, #6
bl _s32_div_f
str r1, [r4, #0x34]
@@ -11751,7 +11751,7 @@ MOD85_021DCB6C: ; 0x021DCB6C
add r1, sp, #0x1c
bl FUN_02020064
mov r0, #0
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
ldr r0, [r4, #4]
bl FUN_02020088
@@ -12308,7 +12308,7 @@ MOD85_021DCF88: ; 0x021DCF88
add r1, sp, #0x1c
bl FUN_02020054
mov r0, #0
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
ldr r0, [r4, #0x28]
bl FUN_02020088
@@ -13715,7 +13715,7 @@ MOD85_021DDA60: ; 0x021DDA60
add r1, sp, #0x1c
bl FUN_02020064
mov r0, #0
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
ldr r0, [r4, #0xc]
bl FUN_02020088
@@ -13933,7 +13933,7 @@ MOD85_021DDBFC: ; 0x021DDBFC
add r1, sp, #0x1c
bl FUN_02020064
mov r0, #0
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
ldr r0, [r4, #0xc]
bl FUN_02020088
@@ -14473,7 +14473,7 @@ _021DE036:
add r1, sp, #0x20
bl FUN_02020064
mov r0, #0
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
ldr r0, [r4, #0x1c]
bl FUN_02020088