diff options
author | PikalaxALT <PikalaxALT@users.noreply.github.com> | 2020-05-13 20:05:37 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-13 20:05:37 -0400 |
commit | a9f33a9d8b7ad84380553f37c6e46276b25005c5 (patch) | |
tree | 5c7d933b791b996eb8a983fef429d95fb781f440 | |
parent | e1e71184d0ae05a9b68aaca30ce490075e530ced (diff) | |
parent | 676600b2ce66cea6712651ed02c1cb591a950fd7 (diff) |
Merge branch 'master' into master
40 files changed, 32362 insertions, 747 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf index f0de195d..57e6e64f 100644 --- a/arm9/arm9.lcf +++ b/arm9/arm9.lcf @@ -2748,7 +2748,17 @@ SECTIONS { SDK_OVERLAY_MODULE_70_ID = 70; SDK_OVERLAY.MODULE_70.ID = 70; SDK_OVERLAY.MODULE_70.START = .; - FILE_2C4C00.o (.text) /* 0x2C0C00 */ + module_70.o (.text) + module_70.o (.rodata) + module_70.o (.init) + SDK_OVERLAY.MODULE_70.SINIT_START = .; + module_70.o (.ctor) + module_70.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_70.SINIT_END = .; + . = ALIGN(32); + module_70.o (.sdata) + module_70.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_70.END = .; SDK_OVERLAY.MODULE_70.SIZE = SDK_OVERLAY.MODULE_70.END - SDK_OVERLAY.MODULE_70.START; @@ -2758,7 +2768,8 @@ SECTIONS { { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_70.BSS_START = .; - FILE_2C4C00.o (.bss) + module_70.o (.bss) + module_70.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_70.BSS_END = .; SDK_OVERLAY.MODULE_70.BSS_SIZE = SDK_OVERLAY.MODULE_70.BSS_END - SDK_OVERLAY.MODULE_70.BSS_START; @@ -2769,7 +2780,17 @@ SECTIONS { SDK_OVERLAY_MODULE_71_ID = 71; SDK_OVERLAY.MODULE_71.ID = 71; SDK_OVERLAY.MODULE_71.START = .; - FILE_2C5C00.o (.text) /* 0x2C1C00 */ + module_71.o (.text) + module_71.o (.rodata) + module_71.o (.init) + SDK_OVERLAY.MODULE_71.SINIT_START = .; + module_71.o (.ctor) + module_71.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_71.SINIT_END = .; + . = ALIGN(32); + module_71.o (.sdata) + module_71.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_71.END = .; SDK_OVERLAY.MODULE_71.SIZE = SDK_OVERLAY.MODULE_71.END - SDK_OVERLAY.MODULE_71.START; @@ -2779,7 +2800,8 @@ SECTIONS { { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_71.BSS_START = .; - FILE_2C5C00.o (.bss) + module_71.o (.bss) + module_71.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_71.BSS_END = .; SDK_OVERLAY.MODULE_71.BSS_SIZE = SDK_OVERLAY.MODULE_71.BSS_END - SDK_OVERLAY.MODULE_71.BSS_START; @@ -2790,7 +2812,17 @@ SECTIONS { SDK_OVERLAY_MODULE_72_ID = 72; SDK_OVERLAY.MODULE_72.ID = 72; SDK_OVERLAY.MODULE_72.START = .; - FILE_2C9C00.o (.text) /* 0x2C5C00 */ + module_72_dummy.o (.text) + module_72_dummy.o (.rodata) + module_72_dummy.o (.init) + SDK_OVERLAY.MODULE_72.SINIT_START = .; + module_72_dummy.o (.ctor) + module_72_dummy.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_72.SINIT_END = .; + . = ALIGN(32); + module_72_dummy.o (.sdata) + module_72_dummy.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_72.END = .; SDK_OVERLAY.MODULE_72.SIZE = SDK_OVERLAY.MODULE_72.END - SDK_OVERLAY.MODULE_72.START; @@ -2800,7 +2832,8 @@ SECTIONS { { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_72.BSS_START = .; - FILE_2C9C00.o (.bss) + module_72_dummy.o (.bss) + module_72_dummy.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_72.BSS_END = .; SDK_OVERLAY.MODULE_72.BSS_SIZE = SDK_OVERLAY.MODULE_72.BSS_END - SDK_OVERLAY.MODULE_72.BSS_START; @@ -2811,7 +2844,17 @@ SECTIONS { SDK_OVERLAY_MODULE_73_ID = 73; SDK_OVERLAY.MODULE_73.ID = 73; SDK_OVERLAY.MODULE_73.START = .; - FILE_2C9E00.o (.text) /* 0x2C5E00 */ + module_73.o (.text) + module_73.o (.rodata) + module_73.o (.init) + SDK_OVERLAY.MODULE_73.SINIT_START = .; + module_73.o (.ctor) + module_73.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_73.SINIT_END = .; + . = ALIGN(32); + module_73.o (.sdata) + module_73.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_73.END = .; SDK_OVERLAY.MODULE_73.SIZE = SDK_OVERLAY.MODULE_73.END - SDK_OVERLAY.MODULE_73.START; @@ -2821,7 +2864,8 @@ SECTIONS { { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_73.BSS_START = .; - FILE_2C9E00.o (.bss) + module_73.o (.bss) + module_73.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_73.BSS_END = .; SDK_OVERLAY.MODULE_73.BSS_SIZE = SDK_OVERLAY.MODULE_73.BSS_END - SDK_OVERLAY.MODULE_73.BSS_START; @@ -2832,7 +2876,17 @@ SECTIONS { SDK_OVERLAY_MODULE_74_ID = 74; SDK_OVERLAY.MODULE_74.ID = 74; SDK_OVERLAY.MODULE_74.START = .; - FILE_2CEA00.o (.text) /* 0x2CAA00 */ + module_74.o (.text) + module_74.o (.rodata) + module_74.o (.init) + SDK_OVERLAY.MODULE_74.SINIT_START = .; + module_74.o (.ctor) + module_74.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_74.SINIT_END = .; + . = ALIGN(32); + module_74.o (.sdata) + module_74.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_74.END = .; SDK_OVERLAY.MODULE_74.SIZE = SDK_OVERLAY.MODULE_74.END - SDK_OVERLAY.MODULE_74.START; @@ -2842,7 +2896,8 @@ SECTIONS { { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_74.BSS_START = .; - FILE_2CEA00.o (.bss) + module_74.o (.bss) + module_74.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_74.BSS_END = .; SDK_OVERLAY.MODULE_74.BSS_SIZE = SDK_OVERLAY.MODULE_74.BSS_END - SDK_OVERLAY.MODULE_74.BSS_START; @@ -2853,7 +2908,17 @@ SECTIONS { SDK_OVERLAY_MODULE_75_ID = 75; SDK_OVERLAY.MODULE_75.ID = 75; SDK_OVERLAY.MODULE_75.START = .; - FILE_2CFE00.o (.text) /* 0x2CBE00 */ + module_75.o (.text) + module_75.o (.rodata) + module_75.o (.init) + SDK_OVERLAY.MODULE_75.SINIT_START = .; + module_75.o (.ctor) + module_75.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_75.SINIT_END = .; + . = ALIGN(32); + module_75.o (.sdata) + module_75.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_75.END = .; SDK_OVERLAY.MODULE_75.SIZE = SDK_OVERLAY.MODULE_75.END - SDK_OVERLAY.MODULE_75.START; @@ -2863,7 +2928,8 @@ SECTIONS { { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_75.BSS_START = .; - FILE_2CFE00.o (.bss) + module_75.o (.bss) + module_75.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_75.BSS_END = .; SDK_OVERLAY.MODULE_75.BSS_SIZE = SDK_OVERLAY.MODULE_75.BSS_END - SDK_OVERLAY.MODULE_75.BSS_START; @@ -3855,12 +3921,60 @@ SECTIONS { WRITEW 69; WRITEW 0; - OVERLAY_TABLE(MODULE_70, 70) - OVERLAY_TABLE(MODULE_71, 71) - OVERLAY_TABLE(MODULE_72, 72) - OVERLAY_TABLE(MODULE_73, 73) - OVERLAY_TABLE(MODULE_74, 74) - OVERLAY_TABLE(MODULE_75, 75) + WRITEW 70; + WRITEW ADDR(.MODULE_70); + WRITEW SDK_OVERLAY.MODULE_70.SIZE; + WRITEW SDK_OVERLAY.MODULE_70.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_70.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_70.SINIT_END; + WRITEW 70; + WRITEW 0; + + WRITEW 71; + WRITEW ADDR(.MODULE_71); + WRITEW SDK_OVERLAY.MODULE_71.SIZE; + WRITEW SDK_OVERLAY.MODULE_71.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_71.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_71.SINIT_END; + WRITEW 71; + WRITEW 0; + + WRITEW 72; + WRITEW ADDR(.MODULE_72); + WRITEW SDK_OVERLAY.MODULE_72.SIZE; + WRITEW SDK_OVERLAY.MODULE_72.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_72.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_72.SINIT_END; + WRITEW 72; + WRITEW 0; + + WRITEW 73; + WRITEW ADDR(.MODULE_73); + WRITEW SDK_OVERLAY.MODULE_73.SIZE; + WRITEW SDK_OVERLAY.MODULE_73.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_73.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_73.SINIT_END; + WRITEW 73; + WRITEW 0; + + WRITEW 74; + WRITEW ADDR(.MODULE_74); + WRITEW SDK_OVERLAY.MODULE_74.SIZE; + WRITEW SDK_OVERLAY.MODULE_74.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_74.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_74.SINIT_END; + WRITEW 74; + WRITEW 0; + + WRITEW 75; + WRITEW ADDR(.MODULE_75); + WRITEW SDK_OVERLAY.MODULE_75.SIZE; + WRITEW SDK_OVERLAY.MODULE_75.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_75.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_75.SINIT_END; + WRITEW 75; + WRITEW 0; + OVERLAY_TABLE(MODULE_76, 76) OVERLAY_TABLE(MODULE_77, 77) OVERLAY_TABLE(MODULE_78, 78) diff --git a/arm9/asm/crt0.s b/arm9/asm/crt0.s index 05a91b28..65084858 100644 --- a/arm9/asm/crt0.s +++ b/arm9/asm/crt0.s @@ -73,7 +73,7 @@ _020008C4: bl _fp_init bl NitroStartUp bl __call_static_initializers - ldr r1, _02000934 ; =0x02000C55 + ldr r1, _02000934 ; =NitroMain ldr lr, _02000938 ; =0xFFFF0000 tst sp, #4 subne sp, sp, #4 diff --git a/arm9/asm/unk_02006864.s b/arm9/asm/unk_02006864.s index d45448fb..e029023c 100644 --- a/arm9/asm/unk_02006864.s +++ b/arm9/asm/unk_02006864.s @@ -5096,13 +5096,13 @@ _02008DD8: .word 0x0001FE00 thumb_func_start FUN_02008DDC
FUN_02008DDC: ; 0x02008DDC
- ldr r3, _02008DE8 ; =0x0201E069
+ ldr r3, _02008DE8 ; =FUN_0201E068
add r1, r0, #0x0
mov r0, #0x3
lsl r0, r0, #0xe
bx r3
nop
-_02008DE8: .word 0x0201E069
+_02008DE8: .word FUN_0201E068
thumb_func_start FUN_02008DEC
FUN_02008DEC: ; 0x02008DEC
@@ -12523,11 +12523,11 @@ _0200C5A4: .word FUN_020201E4 thumb_func_start FUN_0200C5A8
FUN_0200C5A8: ; 0x0200C5A8
- ldr r3, _0200C5B0 ; =0x0200C59D
+ ldr r3, _0200C5B0 ; =FUN_0200C59C
ldr r0, [r0, #0x0]
bx r3
nop
-_0200C5B0: .word 0x0200C59D
+_0200C5B0: .word FUN_0200C59C
thumb_func_start FUN_0200C5B4
FUN_0200C5B4: ; 0x0200C5B4
@@ -12607,11 +12607,11 @@ _0200C618: .word FUN_02020208 thumb_func_start FUN_0200C61C
FUN_0200C61C: ; 0x0200C61C
- ldr r3, _0200C624 ; =0x0200C615
+ ldr r3, _0200C624 ; =FUN_0200C614
ldr r0, [r0, #0x0]
bx r3
nop
-_0200C624: .word 0x0200C615
+_0200C624: .word FUN_0200C614
thumb_func_start FUN_0200C628
FUN_0200C628: ; 0x0200C628
@@ -12707,11 +12707,11 @@ _0200C6A0: .word FUN_02020238 thumb_func_start FUN_0200C6A4
FUN_0200C6A4: ; 0x0200C6A4
- ldr r3, _0200C6AC ; =0x02020241
+ ldr r3, _0200C6AC ; =FUN_02020240
ldr r0, [r0, #0x0]
bx r3
nop
-_0200C6AC: .word 0x02020241
+_0200C6AC: .word FUN_02020240
thumb_func_start FUN_0200C6B0
FUN_0200C6B0: ; 0x0200C6B0
@@ -12949,11 +12949,11 @@ _0200C83C: .word FUN_020200EC thumb_func_start FUN_0200C840
FUN_0200C840: ; 0x0200C840
- ldr r3, _0200C848 ; =0x0200C839
+ ldr r3, _0200C848 ; =FUN_0200C838
ldr r0, [r0, #0x0]
bx r3
nop
-_0200C848: .word 0x0200C839
+_0200C848: .word FUN_0200C838
thumb_func_start FUN_0200C84C
FUN_0200C84C: ; 0x0200C84C
@@ -13057,11 +13057,11 @@ FUN_0200C8DC: ; 0x0200C8DC thumb_func_start FUN_0200C8F8
FUN_0200C8F8: ; 0x0200C8F8
- ldr r3, _0200C900 ; =0x02020359
+ ldr r3, _0200C900 ; =FUN_02020358
ldr r0, [r0, #0x0]
bx r3
nop
-_0200C900: .word 0x02020359
+_0200C900: .word FUN_02020358
thumb_func_start FUN_0200C904
FUN_0200C904: ; 0x0200C904
@@ -31039,11 +31039,11 @@ _02014F24: .word FUN_02014F08 thumb_func_start FUN_02014F28
FUN_02014F28: ; 0x02014F28
- ldr r3, _02014F30 ; =0x02014F1D
+ ldr r3, _02014F30 ; =FUN_02014F1C
mov r1, #0x1
bx r3
nop
-_02014F30: .word 0x02014F1D
+_02014F30: .word FUN_02014F1C
thumb_func_start FUN_02014F34
FUN_02014F34: ; 0x02014F34
@@ -47117,21 +47117,21 @@ _0201C4F0: .word 0xFFFF0000 thumb_func_start FUN_0201C4F4
FUN_0201C4F4: ; 0x0201C4F4
- ldr r3, _0201C4FC ; =0x0201C50D
+ ldr r3, _0201C4FC ; =FUN_0201C50C
ldr r0, [r0, #0x4]
ldrb r1, [r1, #0x0]
bx r3
.balign 4
-_0201C4FC: .word 0x0201C50D
+_0201C4FC: .word FUN_0201C50C
thumb_func_start FUN_0201C500
FUN_0201C500: ; 0x0201C500
- ldr r3, _0201C508 ; =0x0201C541
+ ldr r3, _0201C508 ; =FUN_0201C540
ldr r0, [r0, #0x4]
ldrb r1, [r1, #0x1]
bx r3
.balign 4
-_0201C508: .word 0x0201C541
+_0201C508: .word FUN_0201C540
thumb_func_start FUN_0201C50C
FUN_0201C50C: ; 0x0201C50C
@@ -66319,11 +66319,11 @@ _02024EBC: .word FUN_02022610 thumb_func_start FUN_02024EC0
FUN_02024EC0: ; 0x02024EC0
- ldr r3, _02024EC8 ; =0x02022635
+ ldr r3, _02024EC8 ; =FUN_02022634
mov r1, #0xa
bx r3
nop
-_02024EC8: .word 0x02022635
+_02024EC8: .word FUN_02022634
thumb_func_start FUN_02024ECC
FUN_02024ECC: ; 0x02024ECC
diff --git a/arm9/asm/unk_02046030.s b/arm9/asm/unk_02046030.s index 4b46da9e..1eda4b12 100644 --- a/arm9/asm/unk_02046030.s +++ b/arm9/asm/unk_02046030.s @@ -10681,11 +10681,11 @@ FUN_0204B410: ; 0x0204B410 thumb_func_start FUN_0204B444
FUN_0204B444: ; 0x0204B444
- ldr r3, _0204B44C ; =0x021E4C01
+ ldr r3, _0204B44C ; =MOD05_021E4C00
ldr r0, [r0, #0x60]
bx r3
nop
-_0204B44C: .word 0x021E4C01
+_0204B44C: .word MOD05_021E4C00
thumb_func_start FUN_0204B450
FUN_0204B450: ; 0x0204B450
@@ -11519,11 +11519,11 @@ _0204BAD0: .word 0x021C5A1C thumb_func_start FUN_0204BAD4
FUN_0204BAD4: ; 0x0204BAD4
- ldr r3, _0204BADC ; =0x0204BE11
+ ldr r3, _0204BADC ; =FUN_0204BE10
ldr r0, _0204BAE0 ; =0x021C5A1C
bx r3
nop
-_0204BADC: .word 0x0204BE11
+_0204BADC: .word FUN_0204BE10
_0204BAE0: .word 0x021C5A1C
thumb_func_start FUN_0204BAE4
@@ -16813,11 +16813,11 @@ FUN_0204E2E0: ; 0x0204E2E0 thumb_func_start FUN_0204E2F0
FUN_0204E2F0: ; 0x0204E2F0
- ldr r3, _0204E2F8 ; =0x0223E4BD
+ ldr r3, _0204E2F8 ; =MOD18_0223E4BC
ldrb r0, [r2, #0x0]
bx r3
nop
-_0204E2F8: .word 0x0223E4BD
+_0204E2F8: .word MOD18_0223E4BC
thumb_func_start FUN_0204E2FC
FUN_0204E2FC: ; 0x0204E2FC
@@ -21235,10 +21235,10 @@ _02050588: .word FUN_0205058C thumb_func_start FUN_0205058C
FUN_0205058C: ; 0x0205058C
- ldr r3, _02050590 ; =0x02247831
+ ldr r3, _02050590 ; =MOD18_02247830
bx r3
.balign 4
-_02050590: .word 0x02247831
+_02050590: .word MOD18_02247830
thumb_func_start FUN_02050594
FUN_02050594: ; 0x02050594
@@ -127105,11 +127105,11 @@ FUN_020835A0: ; 0x020835A0 mov r0, #0x5b
lsl r0, r0, #0x2
ldr r0, [r3, r0]
- ldr r3, _020835AC ; =0x0223D1CD
+ ldr r3, _020835AC ; =MOD12_0223D1CC
add r1, r2, #0x0
bx r3
.balign 4
-_020835AC: .word 0x0223D1CD
+_020835AC: .word MOD12_0223D1CC
thumb_func_start FUN_020835B0
FUN_020835B0: ; 0x020835B0
diff --git a/arm9/global.inc b/arm9/global.inc index 05c59cbd..a9bbc871 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -5710,6 +5710,89 @@ .extern FUN_020334DC
.extern FUN_02088858
.extern FUN_02088868
+.extern FUN_02006874
+.extern FUN_0200AF88
+.extern FUN_0200AFBC
+.extern FUN_02013840
+.extern FUN_02013EFC
+.extern FUN_02013F00
+.extern FUN_0201C78C
+.extern FUN_02024648
+.extern FUN_02024674
+.extern FUN_020247A4
+.extern FUN_02024828
+.extern FUN_0202489C
+.extern FUN_0202490C
+.extern FUN_02024930
+.extern FUN_02024970
+.extern FUN_02024CC4
+.extern FUN_02025E20
+.extern FUN_02025FFC
+.extern FUN_020260EC
+.extern FUN_0202A398
+.extern FUN_0202B5D8
+.extern FUN_0202B9EC
+.extern FUN_02031258
+.extern FUN_02046948
+.extern FUN_0204E178
+.extern FUN_02050E10
+.extern FUN_02050E2C
+.extern FUN_020556C8
+.extern FUN_0205E49C
+.extern FUN_0206EA54
+.extern FUN_02085410
+.extern FUN_02085414
+.extern FUN_02087A38
+.extern FUN_0202B1F0
+.extern FUN_0202B250
+.extern FUN_0202B29C
+.extern FUN_0202B31C
+.extern FUN_020124B4
+.extern FUN_020166A8
+.extern FUN_020166B8
+.extern FUN_0202945C
+.extern FUN_0202E288
+.extern FUN_0206AA84
+.extern FUN_0206B8A4
+.extern FUN_02083B84
+.extern FUN_02083D10
+.extern FUN_0200904C
+.extern FUN_02013F04
+.extern FUN_0201CBEC
+.extern FUN_02027E30
+.extern FUN_02027E94
+.extern FUN_02029520
+.extern FUN_0202A878
+.extern FUN_02060FAC
+.extern FUN_020842D0
+.extern FUN_020842D8
+.extern FUN_02001354
+.extern FUN_0200145C
+.extern FUN_02001464
+.extern FUN_02001DDC
+.extern FUN_02001E60
+.extern FUN_020021CC
+.extern FUN_02018878
+.extern FUN_020209A8
+.extern FUN_020209F4
+.extern FUN_0205D51C
+.extern FUN_0206E164
+.extern FUN_0206E3F8
+.extern FUN_0206E51C
+.extern FUN_0206E5B4
+.extern FUN_0206EB0C
+.extern FUN_0206EBC4
+.extern FUN_0206EBCC
+.extern FUN_0206EE20
+.extern FUN_0206EF10
+.extern FUN_0206F18C
+.extern FUN_0206F19C
+.extern FUN_02085284
+.extern MOD05_021F54E0
+.extern MOD06_0224C24C
+.extern MOD12_0223D1CC
+.extern MOD18_0223E4BC
+.extern MOD18_02247830
.extern MOD04_021D80E0
.extern MOD04_021D83D4
.extern MOD04_021D8478
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index cbfe382b..3cefdc1e 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -744,10 +744,10 @@ MOD05_021D7B38: ; 0x021D7B38 thumb_func_start MOD05_021D7B5C MOD05_021D7B5C: ; 0x021D7B5C - ldr r3, _021D7B60 ; =0x02009FA1 + ldr r3, _021D7B60 ; =FUN_02009FA0 bx r3 .balign 4, 0 -_021D7B60: .word 0x02009FA1 +_021D7B60: .word FUN_02009FA0 thumb_func_start MOD05_021D7B64 MOD05_021D7B64: ; 0x021D7B64 @@ -1207,10 +1207,10 @@ MOD05_021D7F40: ; 0x021D7F40 thumb_func_start MOD05_021D7F44 MOD05_021D7F44: ; 0x021D7F44 - ldr r3, _021D7F48 ; =0x02016A19 + ldr r3, _021D7F48 ; =FUN_02016A18 bx r3 .balign 4, 0 -_021D7F48: .word 0x02016A19 +_021D7F48: .word FUN_02016A18 thumb_func_start MOD05_021D7F4C MOD05_021D7F4C: ; 0x021D7F4C @@ -1278,11 +1278,11 @@ _021D7FBC: thumb_func_start MOD05_021D7FD0 MOD05_021D7FD0: ; 0x021D7FD0 - ldr r3, _021D7FD8 ; =0x0201B5CD + ldr r3, _021D7FD8 ; =FUN_0201B5CC ldr r0, [r0, #0x10] bx r3 nop -_021D7FD8: .word 0x0201B5CD +_021D7FD8: .word FUN_0201B5CC thumb_func_start MOD05_021D7FDC MOD05_021D7FDC: ; 0x021D7FDC @@ -3238,12 +3238,12 @@ MOD05_021D8F90: ; 0x021D8F90 thumb_func_start MOD05_021D8F9C MOD05_021D8F9C: ; 0x021D8F9C - ldr r3, _021D8FA4 ; =0x0224C24D + ldr r3, _021D8FA4 ; =MOD06_0224C24C add r1, r0, #0 ldr r0, [r1, #0xc] bx r3 .balign 4, 0 -_021D8FA4: .word 0x0224C24D +_021D8FA4: .word MOD06_0224C24C thumb_func_start MOD05_021D8FA8 MOD05_021D8FA8: ; 0x021D8FA8 @@ -5724,11 +5724,11 @@ _021DA21A: MOD05_021DA220: ; 0x021DA220 mov r1, #0xad lsl r1, r1, #2 - ldr r3, _021DA22C ; =0x02006875 + ldr r3, _021DA22C ; =FUN_02006874 ldr r0, [r0, r1] bx r3 nop -_021DA22C: .word 0x02006875 +_021DA22C: .word FUN_02006874 thumb_func_start MOD05_021DA230 MOD05_021DA230: ; 0x021DA230 @@ -6243,10 +6243,10 @@ MOD05_021DA5B8: ; 0x021DA5B8 thumb_func_start MOD05_021DA5C8 MOD05_021DA5C8: ; 0x021DA5C8 - ldr r3, _021DA5CC ; =0x02016A19 + ldr r3, _021DA5CC ; =FUN_02016A18 bx r3 .balign 4, 0 -_021DA5CC: .word 0x02016A19 +_021DA5CC: .word FUN_02016A18 thumb_func_start MOD05_021DA5D0 MOD05_021DA5D0: ; 0x021DA5D0 @@ -9476,10 +9476,10 @@ _021DBE94: .word MOD05_021EFAAC thumb_func_start MOD05_021DBE98 MOD05_021DBE98: ; 0x021DBE98 - ldr r3, _021DBE9C ; =0x02050E2D + ldr r3, _021DBE9C ; =FUN_02050E2C bx r3 .balign 4, 0 -_021DBE9C: .word 0x02050E2D +_021DBE9C: .word FUN_02050E2C thumb_func_start MOD05_021DBEA0 MOD05_021DBEA0: ; 0x021DBEA0 @@ -9505,10 +9505,10 @@ _021DBEC0: .word MOD05_021EFB14 thumb_func_start MOD05_021DBEC4 MOD05_021DBEC4: ; 0x021DBEC4 - ldr r3, _021DBEC8 ; =0x02050E11 + ldr r3, _021DBEC8 ; =FUN_02050E10 bx r3 .balign 4, 0 -_021DBEC8: .word 0x02050E11 +_021DBEC8: .word FUN_02050E10 thumb_func_start MOD05_021DBECC MOD05_021DBECC: ; 0x021DBECC @@ -10288,12 +10288,12 @@ _021DC470: .word MOD05_021DC474 thumb_func_start MOD05_021DC474 MOD05_021DC474: ; 0x021DC474 - ldr r3, _021DC47C ; =0x0201FDED + ldr r3, _021DC47C ; =FUN_0201FDEC add r1, #0xf4 ldr r0, [r1] bx r3 .balign 4, 0 -_021DC47C: .word 0x0201FDED +_021DC47C: .word FUN_0201FDEC thumb_func_start MOD05_021DC480 MOD05_021DC480: ; 0x021DC480 @@ -20312,13 +20312,13 @@ _021E127E: thumb_func_start MOD05_021E1290 MOD05_021E1290: ; 0x021E1290 - ldr r3, _021E129C ; =0x0200CA99 + ldr r3, _021E129C ; =FUN_0200CA98 add r1, r0, #0 ldr r0, _021E12A0 ; =MOD05_021E12A4 mov r2, #0x80 bx r3 nop -_021E129C: .word 0x0200CA99 +_021E129C: .word FUN_0200CA98 _021E12A0: .word MOD05_021E12A4 thumb_func_start MOD05_021E12A4 @@ -21231,10 +21231,10 @@ _021E1986: thumb_func_start MOD05_021E198C MOD05_021E198C: ; 0x021E198C - ldr r3, _021E1990 ; =0x02058E91 + ldr r3, _021E1990 ; =FUN_02058E90 bx r3 .balign 4, 0 -_021E1990: .word 0x02058E91 +_021E1990: .word FUN_02058E90 thumb_func_start MOD05_021E1994 MOD05_021E1994: ; 0x021E1994 @@ -25672,14 +25672,14 @@ _021E3BFC: .word 0xFFFF1FFF thumb_func_start MOD05_021E3C00 MOD05_021E3C00: ; 0x021E3C00 - ldr r3, _021E3C0C ; =0x0200CA99 + ldr r3, _021E3C0C ; =FUN_0200CA98 mov r2, #1 add r1, r0, #0 ldr r0, _021E3C10 ; =MOD05_021E3C14 lsl r2, r2, #0xa bx r3 .balign 4, 0 -_021E3C0C: .word 0x0200CA99 +_021E3C0C: .word FUN_0200CA98 _021E3C10: .word MOD05_021E3C14 thumb_func_start MOD05_021E3C14 @@ -26334,10 +26334,10 @@ MOD05_021E4140: ; 0x021E4140 thumb_func_start MOD05_021E4158 MOD05_021E4158: ; 0x021E4158 - ldr r3, _021E415C ; =0x02016A19 + ldr r3, _021E415C ; =FUN_02016A18 bx r3 .balign 4, 0 -_021E415C: .word 0x02016A19 +_021E415C: .word FUN_02016A18 thumb_func_start MOD05_021E4160 MOD05_021E4160: ; 0x021E4160 @@ -26452,10 +26452,10 @@ MOD05_021E4220: ; 0x021E4220 thumb_func_start MOD05_021E4238 MOD05_021E4238: ; 0x021E4238 - ldr r3, _021E423C ; =0x02016A19 + ldr r3, _021E423C ; =FUN_02016A18 bx r3 .balign 4, 0 -_021E423C: .word 0x02016A19 +_021E423C: .word FUN_02016A18 thumb_func_start MOD05_021E4240 MOD05_021E4240: ; 0x021E4240 @@ -26859,10 +26859,10 @@ _021E452A: thumb_func_start MOD05_021E4534 MOD05_021E4534: ; 0x021E4534 - ldr r3, _021E4538 ; =0x02016A19 + ldr r3, _021E4538 ; =FUN_02016A18 bx r3 .balign 4, 0 -_021E4538: .word 0x02016A19 +_021E4538: .word FUN_02016A18 thumb_func_start MOD05_021E453C MOD05_021E453C: ; 0x021E453C @@ -27610,14 +27610,14 @@ _021E4ACC: .word 0x0400006C thumb_func_start MOD05_021E4AD0 MOD05_021E4AD0: ; 0x021E4AD0 - ldr r3, _021E4ADC ; =0x0200CA99 + ldr r3, _021E4ADC ; =FUN_0200CA98 mov r2, #1 add r1, r0, #0 ldr r0, _021E4AE0 ; =MOD05_021E4AB8 lsl r2, r2, #0xa bx r3 .balign 4, 0 -_021E4ADC: .word 0x0200CA99 +_021E4ADC: .word FUN_0200CA98 _021E4AE0: .word MOD05_021E4AB8 thumb_func_start MOD05_021E4AE4 @@ -27772,10 +27772,10 @@ MOD05_021E4BE8: ; 0x021E4BE8 thumb_func_start MOD05_021E4C00 MOD05_021E4C00: ; 0x021E4C00 - ldr r3, _021E4C04 ; =0x02016A19 + ldr r3, _021E4C04 ; =FUN_02016A18 bx r3 .balign 4, 0 -_021E4C04: .word 0x02016A19 +_021E4C04: .word FUN_02016A18 thumb_func_start MOD05_021E4C08 MOD05_021E4C08: ; 0x021E4C08 @@ -27822,27 +27822,27 @@ MOD05_021E4C34: ; 0x021E4C34 thumb_func_start MOD05_021E4C48 MOD05_021E4C48: ; 0x021E4C48 - ldr r3, _021E4C50 ; =0x020066F5 + ldr r3, _021E4C50 ; =FUN_020066F4 ldr r0, [r0, #0x20] bx r3 nop -_021E4C50: .word 0x020066F5 +_021E4C50: .word FUN_020066F4 thumb_func_start MOD05_021E4C54 MOD05_021E4C54: ; 0x021E4C54 - ldr r3, _021E4C5C ; =0x020067D1 + ldr r3, _021E4C5C ; =FUN_020067D0 ldr r0, [r0, #0x20] bx r3 nop -_021E4C5C: .word 0x020067D1 +_021E4C5C: .word FUN_020067D0 thumb_func_start MOD05_021E4C60 MOD05_021E4C60: ; 0x021E4C60 - ldr r3, _021E4C68 ; =0x02006775 + ldr r3, _021E4C68 ; =FUN_02006774 ldr r0, [r0, #0x20] bx r3 nop -_021E4C68: .word 0x02006775 +_021E4C68: .word FUN_02006774 thumb_func_start MOD05_021E4C6C MOD05_021E4C6C: ; 0x021E4C6C @@ -28079,10 +28079,10 @@ _021E4DDE: thumb_func_start MOD05_021E4DE4 MOD05_021E4DE4: ; 0x021E4DE4 - ldr r3, _021E4DE8 ; =0x02064521 + ldr r3, _021E4DE8 ; =FUN_02064520 bx r3 .balign 4, 0 -_021E4DE8: .word 0x02064521 +_021E4DE8: .word FUN_02064520 thumb_func_start MOD05_021E4DEC MOD05_021E4DEC: ; 0x021E4DEC @@ -28513,11 +28513,11 @@ _021E5106: thumb_func_start MOD05_021E5114 MOD05_021E5114: ; 0x021E5114 ldr r0, [r0, #0x28] - ldr r3, _021E511C ; =0x02020FF1 + ldr r3, _021E511C ; =FUN_02020FF0 ldr r0, [r0, #0x18] bx r3 .balign 4, 0 -_021E511C: .word 0x02020FF1 +_021E511C: .word FUN_02020FF0 thumb_func_start MOD05_021E5120 MOD05_021E5120: ; 0x021E5120 @@ -30435,10 +30435,10 @@ _021E5FD4: .word MOD05_021F5430 thumb_func_start MOD05_021E5FD8 MOD05_021E5FD8: ; 0x021E5FD8 - ldr r3, _021E5FDC ; =0x020553D5 + ldr r3, _021E5FDC ; =FUN_020553D4 bx r3 .balign 4, 0 -_021E5FDC: .word 0x020553D5 +_021E5FDC: .word FUN_020553D4 thumb_func_start MOD05_021E5FE0 MOD05_021E5FE0: ; 0x021E5FE0 @@ -30576,11 +30576,11 @@ _021E60D2: thumb_func_start MOD05_021E610C MOD05_021E610C: ; 0x021E610C - ldr r3, _021E6114 ; =0x020556C9 + ldr r3, _021E6114 ; =FUN_020556C8 mov r1, #1 bx r3 nop -_021E6114: .word 0x020556C9 +_021E6114: .word FUN_020556C8 thumb_func_start MOD05_021E6118 MOD05_021E6118: ; 0x021E6118 @@ -32839,12 +32839,12 @@ _021E72CC: thumb_func_start MOD05_021E72DC MOD05_021E72DC: ; 0x021E72DC - ldr r3, _021E72E4 ; =0x02016A8D + ldr r3, _021E72E4 ; =FUN_02016A8C add r1, r0, #0 mov r0, #4 bx r3 .balign 4, 0 -_021E72E4: .word 0x02016A8D +_021E72E4: .word FUN_02016A8C thumb_func_start MOD05_021E72E8 MOD05_021E72E8: ; 0x021E72E8 @@ -33116,12 +33116,12 @@ _021E74E8: thumb_func_start MOD05_021E74F8 MOD05_021E74F8: ; 0x021E74F8 - ldr r3, _021E7500 ; =0x02016A8D + ldr r3, _021E7500 ; =FUN_02016A8C add r1, r0, #0 mov r0, #4 bx r3 .balign 4, 0 -_021E7500: .word 0x02016A8D +_021E7500: .word FUN_02016A8C thumb_func_start MOD05_021E7504 MOD05_021E7504: ; 0x021E7504 @@ -33157,12 +33157,12 @@ _021E7532: str r0, [r1, #0x10] _021E7536: ldr r0, [r1] - ldr r3, _021E7540 ; =0x02055305 + ldr r3, _021E7540 ; =FUN_02055304 ldr r0, [r0, #0x38] ldr r1, [r1, #0x10] bx r3 .balign 4, 0 -_021E7540: .word 0x02055305 +_021E7540: .word FUN_02055304 thumb_func_start MOD05_021E7544 MOD05_021E7544: ; 0x021E7544 @@ -34048,10 +34048,10 @@ MOD05_021E7C00: ; 0x021E7C00 thumb_func_start MOD05_021E7C14 MOD05_021E7C14: ; 0x021E7C14 - ldr r3, _021E7C18 ; =0x02016A19 + ldr r3, _021E7C18 ; =FUN_02016A18 bx r3 .balign 4, 0 -_021E7C18: .word 0x02016A19 +_021E7C18: .word FUN_02016A18 thumb_func_start MOD05_021E7C1C MOD05_021E7C1C: ; 0x021E7C1C @@ -36434,14 +36434,14 @@ _021E8E50: .word 0x04000010 thumb_func_start MOD05_021E8E54 MOD05_021E8E54: ; 0x021E8E54 - ldr r3, _021E8E60 ; =0x0200CA61 + ldr r3, _021E8E60 ; =FUN_0200CA60 mov r2, #1 add r1, r0, #0 ldr r0, _021E8E64 ; =MOD05_021E8E68 lsl r2, r2, #0xa bx r3 .balign 4, 0 -_021E8E60: .word 0x0200CA61 +_021E8E60: .word FUN_0200CA60 _021E8E64: .word MOD05_021E8E68 thumb_func_start MOD05_021E8E68 @@ -45836,11 +45836,11 @@ MOD05_021EDA98: ; 0x021EDA98 thumb_func_start MOD05_021EDAE8 MOD05_021EDAE8: ; 0x021EDAE8 - ldr r3, _021EDAF0 ; =0x0201F745 + ldr r3, _021EDAF0 ; =FUN_0201F744 ldr r0, [r1, #0x20] bx r3 nop -_021EDAF0: .word 0x0201F745 +_021EDAF0: .word FUN_0201F744 thumb_func_start MOD05_021EDAF4 MOD05_021EDAF4: ; 0x021EDAF4 @@ -54282,10 +54282,10 @@ _021F1C18: .word MOD05_021F1CA4 thumb_func_start MOD05_021F1C1C MOD05_021F1C1C: ; 0x021F1C1C - ldr r3, _021F1C20 ; =0x02058629 + ldr r3, _021F1C20 ; =FUN_02058628 bx r3 .balign 4, 0 -_021F1C20: .word 0x02058629 +_021F1C20: .word FUN_02058628 thumb_func_start MOD05_021F1C24 MOD05_021F1C24: ; 0x021F1C24 @@ -56743,10 +56743,10 @@ MOD05_021F2E40: ; 0x021F2E40 thumb_func_start MOD05_021F2E68 MOD05_021F2E68: ; 0x021F2E68 - ldr r3, _021F2E6C ; =0x0201F23D + ldr r3, _021F2E6C ; =FUN_0201F23C bx r3 .balign 4, 0 -_021F2E6C: .word 0x0201F23D +_021F2E6C: .word FUN_0201F23C thumb_func_start MOD05_021F2E70 MOD05_021F2E70: ; 0x021F2E70 @@ -57964,12 +57964,12 @@ _021F37C2: thumb_func_start MOD05_021F37D0 MOD05_021F37D0: ; 0x021F37D0 - ldr r3, _021F37D8 ; =0x02016A8D + ldr r3, _021F37D8 ; =FUN_02016A8C add r1, r0, #0 ldr r0, [r1] bx r3 .balign 4, 0 -_021F37D8: .word 0x02016A8D +_021F37D8: .word FUN_02016A8C thumb_func_start MOD05_021F37DC MOD05_021F37DC: ; 0x021F37DC @@ -59235,13 +59235,13 @@ _021F4180: thumb_func_start MOD05_021F4184 MOD05_021F4184: ; 0x021F4184 - ldr r3, _021F4190 ; =0x02006865 + ldr r3, _021F4190 ; =FUN_02006864 add r2, r1, #0 mov r1, #0x1c ldr r2, [r2] bx r3 nop -_021F4190: .word 0x02006865 +_021F4190: .word FUN_02006864 thumb_func_start MOD05_021F4194 MOD05_021F4194: ; 0x021F4194 @@ -59250,10 +59250,10 @@ MOD05_021F4194: ; 0x021F4194 mov r1, #0xc mul r1, r2 ldr r2, [r3, #0x10] - ldr r3, _021F41A4 ; =0x02006865 + ldr r3, _021F41A4 ; =FUN_02006864 bx r3 nop -_021F41A4: .word 0x02006865 +_021F41A4: .word FUN_02006864 thumb_func_start MOD05_021F41A8 MOD05_021F41A8: ; 0x021F41A8 @@ -59262,10 +59262,10 @@ MOD05_021F41A8: ; 0x021F41A8 mov r1, #0xc mul r1, r2 ldr r2, [r3, #0x14] - ldr r3, _021F41B8 ; =0x02006865 + ldr r3, _021F41B8 ; =FUN_02006864 bx r3 nop -_021F41B8: .word 0x02006865 +_021F41B8: .word FUN_02006864 thumb_func_start MOD05_021F41BC MOD05_021F41BC: ; 0x021F41BC @@ -59274,41 +59274,41 @@ MOD05_021F41BC: ; 0x021F41BC mov r1, #0xc mul r1, r2 ldr r2, [r3, #4] - ldr r3, _021F41CC ; =0x02006865 + ldr r3, _021F41CC ; =FUN_02006864 bx r3 nop -_021F41CC: .word 0x02006865 +_021F41CC: .word FUN_02006864 thumb_func_start MOD05_021F41D0 MOD05_021F41D0: ; 0x021F41D0 add r3, r1, #0 ldr r1, [r2, #0xc] ldr r2, [r3, #8] - ldr r3, _021F41DC ; =0x02006865 + ldr r3, _021F41DC ; =FUN_02006864 lsl r1, r1, #2 bx r3 .balign 4, 0 -_021F41DC: .word 0x02006865 +_021F41DC: .word FUN_02006864 thumb_func_start MOD05_021F41E0 MOD05_021F41E0: ; 0x021F41E0 add r3, r1, #0 ldr r1, [r2, #0x14] ldr r2, [r3, #0xc] - ldr r3, _021F41EC ; =0x02006865 + ldr r3, _021F41EC ; =FUN_02006864 bx r3 nop -_021F41EC: .word 0x02006865 +_021F41EC: .word FUN_02006864 thumb_func_start MOD05_021F41F0 MOD05_021F41F0: ; 0x021F41F0 add r3, r1, #0 ldr r1, [r2, #0x10] ldr r2, [r3, #0x18] - ldr r3, _021F41FC ; =0x02006865 + ldr r3, _021F41FC ; =FUN_02006864 bx r3 nop -_021F41FC: .word 0x02006865 +_021F41FC: .word FUN_02006864 thumb_func_start MOD05_021F4200 MOD05_021F4200: ; 0x021F4200 @@ -60336,12 +60336,12 @@ MOD05_021F491C: ; 0x021F491C thumb_func_start MOD05_021F4968 MOD05_021F4968: ; 0x021F4968 ldr r2, [r1, #0x14] - ldr r3, _021F4974 ; =0x02016B45 + ldr r3, _021F4974 ; =FUN_02016B44 add r1, r1, r2 sub r1, r1, r0 bx r3 nop -_021F4974: .word 0x02016B45 +_021F4974: .word FUN_02016B44 thumb_func_start MOD05_021F4978 MOD05_021F4978: ; 0x021F4978 @@ -62106,21 +62106,21 @@ _021F5696: thumb_func_start MOD05_021F569C MOD05_021F569C: ; 0x021F569C - ldr r3, _021F56A4 ; =0x02017FE5 + ldr r3, _021F56A4 ; =FUN_02017FE4 mov r0, #2 mov r1, #0 bx r3 .balign 4, 0 -_021F56A4: .word 0x02017FE5 +_021F56A4: .word FUN_02017FE4 thumb_func_start MOD05_021F56A8 MOD05_021F56A8: ; 0x021F56A8 - ldr r3, _021F56B0 ; =0x02017FE5 + ldr r3, _021F56B0 ; =FUN_02017FE4 mov r0, #2 ldr r1, _021F56B4 ; =0x00007FFF bx r3 .balign 4, 0 -_021F56B0: .word 0x02017FE5 +_021F56B0: .word FUN_02017FE4 _021F56B4: .word 0x00007FFF thumb_func_start MOD05_021F56B8 @@ -62710,10 +62710,10 @@ _021F5B30: thumb_func_start MOD05_021F5B34 MOD05_021F5B34: ; 0x021F5B34 - ldr r3, _021F5B38 ; =0x02016A19 + ldr r3, _021F5B38 ; =FUN_02016A18 bx r3 .balign 4, 0 -_021F5B38: .word 0x02016A19 +_021F5B38: .word FUN_02016A18 thumb_func_start MOD05_021F5B3C MOD05_021F5B3C: ; 0x021F5B3C @@ -63791,13 +63791,13 @@ _021F62F2: thumb_func_start MOD05_021F62FC MOD05_021F62FC: ; 0x021F62FC - ldr r3, _021F6308 ; =0x0201EFE1 + ldr r3, _021F6308 ; =FUN_0201EFE0 add r1, r0, #0 ldr r0, [r1, #0x20] ldr r1, [r1, #0x30] bx r3 nop -_021F6308: .word 0x0201EFE1 +_021F6308: .word FUN_0201EFE0 thumb_func_start MOD05_021F630C MOD05_021F630C: ; 0x021F630C diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index b439e37b..a7ddd5a6 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -180,26 +180,26 @@ _022397F0: .word 0x0224F1D8 thumb_func_start MOD06_022397F4 MOD06_022397F4: ; 0x022397F4 - ldr r3, _02239800 ; =0x0200CA99 + ldr r3, _02239800 ; =FUN_0200CA98 mov r2, #1 add r1, r0, #0 ldr r0, _02239804 ; =MOD06_0223981C lsl r2, r2, #0xa bx r3 .align 2, 0 -_02239800: .word 0x0200CA99 +_02239800: .word FUN_0200CA98 _02239804: .word MOD06_0223981C thumb_func_start MOD06_02239808 MOD06_02239808: ; 0x02239808 - ldr r3, _02239814 ; =0x0200CA99 + ldr r3, _02239814 ; =FUN_0200CA98 mov r2, #1 add r1, r0, #0 ldr r0, _02239818 ; =MOD06_02239840 lsl r2, r2, #0xa bx r3 .align 2, 0 -_02239814: .word 0x0200CA99 +_02239814: .word FUN_0200CA98 _02239818: .word MOD06_02239840 thumb_func_start MOD06_0223981C @@ -238,10 +238,10 @@ MOD06_02239840: ; 0x02239840 thumb_func_start MOD06_02239864 MOD06_02239864: ; 0x02239864 - ldr r3, _02239868 ; =0x021D7A29 + ldr r3, _02239868 ; =MOD05_021D7A28 bx r3 .align 2, 0 -_02239868: .word 0x021D7A29 +_02239868: .word MOD05_021D7A28 thumb_func_start MOD06_0223986C MOD06_0223986C: ; 0x0223986C @@ -279,14 +279,14 @@ _022398A4: .word 0x0224F21C thumb_func_start MOD06_022398A8 MOD06_022398A8: ; 0x022398A8 - ldr r3, _022398B4 ; =0x0200CA99 + ldr r3, _022398B4 ; =FUN_0200CA98 mov r2, #1 add r1, r0, #0 ldr r0, _022398B8 ; =MOD06_022398BC lsl r2, r2, #0xa bx r3 .align 2, 0 -_022398B4: .word 0x0200CA99 +_022398B4: .word FUN_0200CA98 _022398B8: .word MOD06_022398BC thumb_func_start MOD06_022398BC @@ -822,20 +822,20 @@ _02239CE4: thumb_func_start MOD06_02239CE8 MOD06_02239CE8: ; 0x02239CE8 ldr r0, [r0, #4] - ldr r3, _02239CF4 ; =0x021D8025 + ldr r3, _02239CF4 ; =MOD05_021D8024 ldr r0, [r0, #4] ldr r1, _02239CF8 ; =0x0224F1C0 bx r3 nop -_02239CF4: .word 0x021D8025 +_02239CF4: .word MOD05_021D8024 _02239CF8: .word 0x0224F1C0 thumb_func_start MOD06_02239CFC MOD06_02239CFC: ; 0x02239CFC - ldr r3, _02239D00 ; =0x021D80A5 + ldr r3, _02239D00 ; =MOD05_021D80A4 bx r3 .align 2, 0 -_02239D00: .word 0x021D80A5 +_02239D00: .word MOD05_021D80A4 thumb_func_start MOD06_02239D04 MOD06_02239D04: ; 0x02239D04 @@ -1170,20 +1170,20 @@ _02239F60: .word MOD06_0223B340 thumb_func_start MOD06_02239F64 MOD06_02239F64: ; 0x02239F64 ldr r0, [r0, #4] - ldr r3, _02239F70 ; =0x021D8025 + ldr r3, _02239F70 ; =MOD05_021D8024 ldr r0, [r0, #4] ldr r1, _02239F74 ; =0x0224F190 bx r3 nop -_02239F70: .word 0x021D8025 +_02239F70: .word MOD05_021D8024 _02239F74: .word 0x0224F190 thumb_func_start MOD06_02239F78 MOD06_02239F78: ; 0x02239F78 - ldr r3, _02239F7C ; =0x021D80A5 + ldr r3, _02239F7C ; =MOD05_021D80A4 bx r3 .align 2, 0 -_02239F7C: .word 0x021D80A5 +_02239F7C: .word MOD05_021D80A4 thumb_func_start MOD06_02239F80 MOD06_02239F80: ; 0x02239F80 @@ -1437,7 +1437,7 @@ MOD06_0223A1B0: ; 0x0223A1B0 MOD06_0223A1C4: ; 0x0223A1C4 lsl r2, r1, #2 ldr r1, _0223A1D8 ; =0x0224F174 - ldr r3, _0223A1DC ; =0x021D8025 + ldr r3, _0223A1DC ; =MOD05_021D8024 ldr r2, [r1, r2] ldr r1, _0223A1E0 ; =0x02252240 str r2, [r1, #8] @@ -1447,7 +1447,7 @@ MOD06_0223A1C4: ; 0x0223A1C4 bx r3 .align 2, 0 _0223A1D8: .word 0x0224F174 -_0223A1DC: .word 0x021D8025 +_0223A1DC: .word MOD05_021D8024 _0223A1E0: .word 0x02252240 _0223A1E4: .word 0x02252240 @@ -1585,20 +1585,20 @@ _0223A2E4: .word MOD06_0223A828 thumb_func_start MOD06_0223A2E8 MOD06_0223A2E8: ; 0x0223A2E8 ldr r0, [r0, #4] - ldr r3, _0223A2F4 ; =0x021D8025 + ldr r3, _0223A2F4 ; =MOD05_021D8024 ldr r0, [r0, #4] ldr r1, _0223A2F8 ; =0x0224F1A8 bx r3 nop -_0223A2F4: .word 0x021D8025 +_0223A2F4: .word MOD05_021D8024 _0223A2F8: .word 0x0224F1A8 thumb_func_start MOD06_0223A2FC MOD06_0223A2FC: ; 0x0223A2FC - ldr r3, _0223A300 ; =0x021D80A5 + ldr r3, _0223A300 ; =MOD05_021D80A4 bx r3 .align 2, 0 -_0223A300: .word 0x021D80A5 +_0223A300: .word MOD05_021D80A4 thumb_func_start MOD06_0223A304 MOD06_0223A304: ; 0x0223A304 @@ -1701,10 +1701,10 @@ MOD06_0223A39C: ; 0x0223A39C thumb_func_start MOD06_0223A3A4 MOD06_0223A3A4: ; 0x0223A3A4 - ldr r3, _0223A3A8 ; =0x021F52C9 + ldr r3, _0223A3A8 ; =MOD05_021F52C8 bx r3 .align 2, 0 -_0223A3A8: .word 0x021F52C9 +_0223A3A8: .word MOD05_021F52C8 thumb_func_start MOD06_0223A3AC MOD06_0223A3AC: ; 0x0223A3AC @@ -1720,70 +1720,70 @@ MOD06_0223A3AC: ; 0x0223A3AC thumb_func_start MOD06_0223A3C0 MOD06_0223A3C0: ; 0x0223A3C0 - ldr r3, _0223A3C4 ; =0x021F5359 + ldr r3, _0223A3C4 ; =MOD05_021F5358 bx r3 .align 2, 0 -_0223A3C4: .word 0x021F5359 +_0223A3C4: .word MOD05_021F5358 thumb_func_start MOD06_0223A3C8 MOD06_0223A3C8: ; 0x0223A3C8 - ldr r3, _0223A3D0 ; =0x021F5385 + ldr r3, _0223A3D0 ; =MOD05_021F5384 mov r1, #1 lsl r1, r1, #0xc bx r3 .align 2, 0 -_0223A3D0: .word 0x021F5385 +_0223A3D0: .word MOD05_021F5384 thumb_func_start MOD06_0223A3D4 MOD06_0223A3D4: ; 0x0223A3D4 - ldr r3, _0223A3D8 ; =0x021F5385 + ldr r3, _0223A3D8 ; =MOD05_021F5384 bx r3 .align 2, 0 -_0223A3D8: .word 0x021F5385 +_0223A3D8: .word MOD05_021F5384 thumb_func_start MOD06_0223A3DC MOD06_0223A3DC: ; 0x0223A3DC - ldr r3, _0223A3E4 ; =0x021F53BD + ldr r3, _0223A3E4 ; =MOD05_021F53BC mov r1, #1 lsl r1, r1, #0xc bx r3 .align 2, 0 -_0223A3E4: .word 0x021F53BD +_0223A3E4: .word MOD05_021F53BC thumb_func_start MOD06_0223A3E8 MOD06_0223A3E8: ; 0x0223A3E8 - ldr r3, _0223A3EC ; =0x021F53F9 + ldr r3, _0223A3EC ; =MOD05_021F53F8 bx r3 .align 2, 0 -_0223A3EC: .word 0x021F53F9 +_0223A3EC: .word MOD05_021F53F8 thumb_func_start MOD06_0223A3F0 MOD06_0223A3F0: ; 0x0223A3F0 - ldr r3, _0223A3F4 ; =0x021F5401 + ldr r3, _0223A3F4 ; =MOD05_021F5400 bx r3 .align 2, 0 -_0223A3F4: .word 0x021F5401 +_0223A3F4: .word MOD05_021F5400 thumb_func_start MOD06_0223A3F8 MOD06_0223A3F8: ; 0x0223A3F8 - ldr r3, _0223A3FC ; =0x021F5425 + ldr r3, _0223A3FC ; =MOD05_021F5424 bx r3 .align 2, 0 -_0223A3FC: .word 0x021F5425 +_0223A3FC: .word MOD05_021F5424 thumb_func_start MOD06_0223A400 MOD06_0223A400: ; 0x0223A400 - ldr r3, _0223A404 ; =0x021F5431 + ldr r3, _0223A404 ; =MOD05_021F5430 bx r3 .align 2, 0 -_0223A404: .word 0x021F5431 +_0223A404: .word MOD05_021F5430 thumb_func_start MOD06_0223A408 MOD06_0223A408: ; 0x0223A408 - ldr r3, _0223A40C ; =0x021F54CD + ldr r3, _0223A40C ; =MOD05_021F54CC bx r3 .align 2, 0 -_0223A40C: .word 0x021F54CD +_0223A40C: .word MOD05_021F54CC thumb_func_start MOD06_0223A410 MOD06_0223A410: ; 0x0223A410 @@ -1799,10 +1799,10 @@ MOD06_0223A418: ; 0x0223A418 thumb_func_start MOD06_0223A420 MOD06_0223A420: ; 0x0223A420 - ldr r3, _0223A424 ; =0x021F54E1 + ldr r3, _0223A424 ; =MOD05_021F54E0 bx r3 .align 2, 0 -_0223A424: .word 0x021F54E1 +_0223A424: .word MOD05_021F54E0 thumb_func_start MOD06_0223A428 MOD06_0223A428: ; 0x0223A428 @@ -2335,7 +2335,7 @@ MOD06_0223A800: ; 0x0223A800 mov r2, #0 lsl r0, r0, #4 str r2, [r1, r0] - ldr r3, _0223A818 ; =0x0200CA45 + ldr r3, _0223A818 ; =FUN_0200CA44 mov r2, #4 sub r0, r0, #4 str r2, [r1, r0] @@ -2343,7 +2343,7 @@ MOD06_0223A800: ; 0x0223A800 lsl r2, r2, #8 bx r3 .align 2, 0 -_0223A818: .word 0x0200CA45 +_0223A818: .word FUN_0200CA44 _0223A81C: .word MOD06_0223A944 thumb_func_start MOD06_0223A820 @@ -4371,10 +4371,10 @@ _0223B72C: thumb_func_start MOD06_0223B73C MOD06_0223B73C: ; 0x0223B73C - ldr r3, _0223B740 ; =0x02016A19 + ldr r3, _0223B740 ; =FUN_02016A18 bx r3 .align 2, 0 -_0223B740: .word 0x02016A19 +_0223B740: .word FUN_02016A18 thumb_func_start MOD06_0223B744 MOD06_0223B744: ; 0x0223B744 @@ -4388,12 +4388,12 @@ MOD06_0223B744: ; 0x0223B744 str r1, [r0, #0x10] str r2, [r0, #0x14] ldr r0, [r0] - ldr r3, _0223B764 ; =0x021DB52D + ldr r3, _0223B764 ; =MOD05_021DB52C ldr r0, [r0, #0x48] bx r3 nop _0223B760: .word 0x0224F248 -_0223B764: .word 0x021DB52D +_0223B764: .word MOD05_021DB52C thumb_func_start MOD06_0223B768 MOD06_0223B768: ; 0x0223B768 @@ -11061,11 +11061,11 @@ _0223ECC4: .word 0x00000241 MOD06_0223ECC8: ; 0x0223ECC8 mov r2, #2 lsl r2, r2, #8 - ldr r3, _0223ECD4 ; =0x0200C665 + ldr r3, _0223ECD4 ; =FUN_0200C664 ldr r0, [r0, r2] bx r3 nop -_0223ECD4: .word 0x0200C665 +_0223ECD4: .word FUN_0200C664 thumb_func_start MOD06_0223ECD8 MOD06_0223ECD8: ; 0x0223ECD8 @@ -12486,10 +12486,10 @@ MOD06_0223F89C: ; 0x0223F89C thumb_func_start MOD06_0223F8B4 MOD06_0223F8B4: ; 0x0223F8B4 - ldr r3, _0223F8B8 ; =0x02050025 + ldr r3, _0223F8B8 ; =FUN_02050024 bx r3 .align 2, 0 -_0223F8B8: .word 0x02050025 +_0223F8B8: .word FUN_02050024 thumb_func_start MOD06_0223F8BC MOD06_0223F8BC: ; 0x0223F8BC @@ -14240,26 +14240,26 @@ _0224074C: .word 0x02252420 thumb_func_start MOD06_02240750 MOD06_02240750: ; 0x02240750 ldr r0, _0224075C ; =0x02252420 - ldr r3, _02240760 ; =0x02031259 + ldr r3, _02240760 ; =FUN_02031258 ldr r0, [r0] add r0, #0x91 ldrb r0, [r0] bx r3 .align 2, 0 _0224075C: .word 0x02252420 -_02240760: .word 0x02031259 +_02240760: .word FUN_02031258 thumb_func_start MOD06_02240764 MOD06_02240764: ; 0x02240764 ldr r0, _02240770 ; =0x02252420 - ldr r3, _02240774 ; =0x02031249 + ldr r3, _02240774 ; =FUN_02031248 ldr r0, [r0] add r0, #0x91 ldrb r0, [r0] bx r3 .align 2, 0 _02240770: .word 0x02252420 -_02240774: .word 0x02031249 +_02240774: .word FUN_02031248 thumb_func_start MOD06_02240778 MOD06_02240778: ; 0x02240778 @@ -19828,17 +19828,17 @@ _022433A4: .word 0x020CD3B4 thumb_func_start MOD06_022433A8 MOD06_022433A8: ; 0x022433A8 - ldr r3, _022433AC ; =0x0202A1E5 + ldr r3, _022433AC ; =FUN_0202A1E4 bx r3 .align 2, 0 -_022433AC: .word 0x0202A1E5 +_022433AC: .word FUN_0202A1E4 thumb_func_start MOD06_022433B0 MOD06_022433B0: ; 0x022433B0 - ldr r3, _022433B4 ; =0x0202A399 + ldr r3, _022433B4 ; =FUN_0202A398 bx r3 .align 2, 0 -_022433B4: .word 0x0202A399 +_022433B4: .word FUN_0202A398 thumb_func_start MOD06_022433B8 MOD06_022433B8: ; 0x022433B8 @@ -21125,10 +21125,10 @@ _02243DB4: .word MOD06_022442C4 thumb_func_start MOD06_02243DB8 MOD06_02243DB8: ; 0x02243DB8 - ldr r3, _02243DBC ; =0x02046949 + ldr r3, _02243DBC ; =FUN_02046948 bx r3 .align 2, 0 -_02243DBC: .word 0x02046949 +_02243DBC: .word FUN_02046948 thumb_func_start MOD06_02243DC0 MOD06_02243DC0: ; 0x02243DC0 @@ -23104,20 +23104,20 @@ MOD06_02244CE8: ; 0x02244CE8 add r3, r0, #0 add r2, r1, #0 add r1, r3, #0 - ldr r3, _02244CF4 ; =0x0200650D + ldr r3, _02244CF4 ; =LoadFromNarc_2 mov r0, #0x86 bx r3 .align 2, 0 -_02244CF4: .word 0x0200650D +_02244CF4: .word LoadFromNarc_2 thumb_func_start MOD06_02244CF8 MOD06_02244CF8: ; 0x02244CF8 - ldr r3, _02244D00 ; =0x020064F1 + ldr r3, _02244D00 ; =LoadFromNARC add r2, r1, #0 mov r1, #0x87 bx r3 .align 2, 0 -_02244D00: .word 0x020064F1 +_02244D00: .word LoadFromNARC thumb_func_start MOD06_02244D04 MOD06_02244D04: ; 0x02244D04 @@ -23207,19 +23207,19 @@ _02244DA4: thumb_func_start MOD06_02244DB0 MOD06_02244DB0: ; 0x02244DB0 - ldr r3, _02244DB8 ; =0x020169D9 + ldr r3, _02244DB8 ; =FUN_020169D8 mov r1, #0x17 lsl r1, r1, #4 bx r3 .align 2, 0 -_02244DB8: .word 0x020169D9 +_02244DB8: .word FUN_020169D8 thumb_func_start MOD06_02244DBC MOD06_02244DBC: ; 0x02244DBC - ldr r3, _02244DC0 ; =0x02016A19 + ldr r3, _02244DC0 ; =FUN_02016A18 bx r3 .align 2, 0 -_02244DC0: .word 0x02016A19 +_02244DC0: .word FUN_02016A18 thumb_func_start MOD06_02244DC4 MOD06_02244DC4: ; 0x02244DC4 @@ -23376,14 +23376,14 @@ MOD06_02244EF8: ; 0x02244EF8 mov r2, #1 lsl r0, r0, #2 str r2, [r1, r0] - ldr r3, _02244F10 ; =0x0200CA45 + ldr r3, _02244F10 ; =FUN_0200CA44 mov r2, #0 add r0, r0, #4 str r2, [r1, r0] ldr r0, _02244F14 ; =MOD06_02244F64 bx r3 nop -_02244F10: .word 0x0200CA45 +_02244F10: .word FUN_0200CA44 _02244F14: .word MOD06_02244F64 thumb_func_start MOD06_02244F18 @@ -23688,10 +23688,10 @@ _0224518C: .word 0x0000071D thumb_func_start MOD06_02245190 MOD06_02245190: ; 0x02245190 - ldr r3, _02245194 ; =0x02016A19 + ldr r3, _02245194 ; =FUN_02016A18 bx r3 .align 2, 0 -_02245194: .word 0x02016A19 +_02245194: .word FUN_02016A18 thumb_func_start MOD06_02245198 MOD06_02245198: ; 0x02245198 @@ -24562,10 +24562,10 @@ _02245808: thumb_func_start MOD06_02245824 MOD06_02245824: ; 0x02245824 - ldr r3, _02245828 ; =0x0205E49D + ldr r3, _02245828 ; =FUN_0205E49C bx r3 .align 2, 0 -_02245828: .word 0x0205E49D +_02245828: .word FUN_0205E49C thumb_func_start MOD06_0224582C MOD06_0224582C: ; 0x0224582C @@ -25623,11 +25623,11 @@ _02245FEE: thumb_func_start MOD06_02245FF8 MOD06_02245FF8: ; 0x02245FF8 - ldr r3, _02246000 ; =0x0201FFC9 + ldr r3, _02246000 ; =FUN_0201FFC8 ldr r0, [r1, #0x68] bx r3 nop -_02246000: .word 0x0201FFC9 +_02246000: .word FUN_0201FFC8 thumb_func_start MOD06_02246004 MOD06_02246004: ; 0x02246004 @@ -26394,12 +26394,12 @@ MOD06_02246600: ; 0x02246600 thumb_func_start MOD06_02246604 MOD06_02246604: ; 0x02246604 - ldr r3, _0224660C ; =0x02006671 + ldr r3, _0224660C ; =FUN_02006670 mov r0, #0x61 mov r1, #4 bx r3 .align 2, 0 -_0224660C: .word 0x02006671 +_0224660C: .word FUN_02006670 thumb_func_start MOD06_02246610 MOD06_02246610: ; 0x02246610 @@ -26514,10 +26514,10 @@ MOD06_022466C0: ; 0x022466C0 thumb_func_start MOD06_022466E0 MOD06_022466E0: ; 0x022466E0 - ldr r3, _022466E4 ; =0x02016A19 + ldr r3, _022466E4 ; =FUN_02016A18 bx r3 .align 2, 0 -_022466E4: .word 0x02016A19 +_022466E4: .word FUN_02016A18 thumb_func_start MOD06_022466E8 MOD06_022466E8: ; 0x022466E8 @@ -27751,12 +27751,12 @@ _02247008: .word 0x04000008 thumb_func_start MOD06_0224700C MOD06_0224700C: ; 0x0224700C - ldr r3, _02247014 ; =0x02006671 + ldr r3, _02247014 ; =FUN_02006670 mov r0, #0x61 mov r1, #4 bx r3 .align 2, 0 -_02247014: .word 0x02006671 +_02247014: .word FUN_02006670 thumb_func_start MOD06_02247018 MOD06_02247018: ; 0x02247018 @@ -28514,11 +28514,11 @@ MOD06_022475A4: ; 0x022475A4 thumb_func_start MOD06_02247610 MOD06_02247610: ; 0x02247610 - ldr r3, _02247618 ; =0x02018745 + ldr r3, _02247618 ; =FUN_02018744 mov r1, #3 bx r3 nop -_02247618: .word 0x02018745 +_02247618: .word FUN_02018744 thumb_func_start MOD06_0224761C MOD06_0224761C: ; 0x0224761C @@ -28718,14 +28718,14 @@ _02247778: .word 0x0400004A thumb_func_start MOD06_0224777C MOD06_0224777C: ; 0x0224777C - ldr r3, _02247788 ; =0x02068B69 + ldr r3, _02247788 ; =FUN_02068B68 add r2, r0, #0 add r0, r1, #0 ldr r1, [r2, #0x5c] mov r2, #2 bx r3 .align 2, 0 -_02247788: .word 0x02068B69 +_02247788: .word FUN_02068B68 thumb_func_start MOD06_0224778C MOD06_0224778C: ; 0x0224778C @@ -28769,10 +28769,10 @@ MOD06_022477D4: ; 0x022477D4 add r2, r1, #0 ldrh r0, [r3] ldrh r1, [r3, #4] - ldr r3, _022477E0 ; =0x02012471 + ldr r3, _022477E0 ; =FUN_02012470 bx r3 .align 2, 0 -_022477E0: .word 0x02012471 +_022477E0: .word FUN_02012470 thumb_func_start MOD06_022477E4 MOD06_022477E4: ; 0x022477E4 @@ -29127,11 +29127,11 @@ MOD06_02247A54: ; 0x02247A54 thumb_func_start MOD06_02247A9C MOD06_02247A9C: ; 0x02247A9C - ldr r3, _02247AA4 ; =0x0201FFC9 + ldr r3, _02247AA4 ; =FUN_0201FFC8 ldr r0, [r1, #8] bx r3 nop -_02247AA4: .word 0x0201FFC9 +_02247AA4: .word FUN_0201FFC8 thumb_func_start MOD06_02247AA8 MOD06_02247AA8: ; 0x02247AA8 @@ -29290,11 +29290,11 @@ MOD06_02247BA0: ; 0x02247BA0 thumb_func_start MOD06_02247BCC MOD06_02247BCC: ; 0x02247BCC - ldr r3, _02247BD4 ; =0x0201FFC9 + ldr r3, _02247BD4 ; =FUN_0201FFC8 ldr r0, [r1, #0x58] bx r3 nop -_02247BD4: .word 0x0201FFC9 +_02247BD4: .word FUN_0201FFC8 thumb_func_start MOD06_02247BD8 MOD06_02247BD8: ; 0x02247BD8 @@ -31249,12 +31249,12 @@ MOD06_02248B20: ; 0x02248B20 thumb_func_start MOD06_02248B24 MOD06_02248B24: ; 0x02248B24 - ldr r3, _02248B2C ; =0x02002269 + ldr r3, _02248B2C ; =StringCopyN add r0, r0, #4 mov r2, #8 bx r3 .align 2, 0 -_02248B2C: .word 0x02002269 +_02248B2C: .word StringCopyN thumb_func_start MOD06_02248B30 MOD06_02248B30: ; 0x02248B30 @@ -31296,11 +31296,11 @@ MOD06_02248B5C: ; 0x02248B5C thumb_func_start MOD06_02248B60 MOD06_02248B60: ; 0x02248B60 - ldr r3, _02248B68 ; =0x0202B5D9 + ldr r3, _02248B68 ; =FUN_0202B5D8 ldr r0, [r0, #0x14] bx r3 nop -_02248B68: .word 0x0202B5D9 +_02248B68: .word FUN_0202B5D8 thumb_func_start MOD06_02248B6C MOD06_02248B6C: ; 0x02248B6C @@ -31450,10 +31450,10 @@ _02248CA4: thumb_func_start MOD06_02248CB8 MOD06_02248CB8: ; 0x02248CB8 - ldr r3, _02248CBC ; =0x02016A19 + ldr r3, _02248CBC ; =FUN_02016A18 bx r3 .align 2, 0 -_02248CBC: .word 0x02016A19 +_02248CBC: .word FUN_02016A18 thumb_func_start MOD06_02248CC0 MOD06_02248CC0: ; 0x02248CC0 @@ -32321,11 +32321,11 @@ _0224930C: .word MOD06_02249388 thumb_func_start MOD06_02249310 MOD06_02249310: ; 0x02249310 - ldr r3, _02249318 ; =0x0200CAB5 + ldr r3, _02249318 ; =FUN_0200CAB4 ldr r0, [r0, #0x24] bx r3 nop -_02249318: .word 0x0200CAB5 +_02249318: .word FUN_0200CAB4 thumb_func_start MOD06_0224931C MOD06_0224931C: ; 0x0224931C @@ -32939,22 +32939,22 @@ MOD06_022497BC: ; 0x022497BC thumb_func_start MOD06_022497CC MOD06_022497CC: ; 0x022497CC - ldr r3, _022497D8 ; =0x021E5079 + ldr r3, _022497D8 ; =MOD05_021E5078 ldr r0, [r0] mov r1, #2 mov r2, #0x14 bx r3 nop -_022497D8: .word 0x021E5079 +_022497D8: .word MOD05_021E5078 thumb_func_start MOD06_022497DC MOD06_022497DC: ; 0x022497DC - ldr r3, _022497E4 ; =0x021E50A1 + ldr r3, _022497E4 ; =MOD05_021E50A0 ldr r0, [r0] mov r1, #2 bx r3 .align 2, 0 -_022497E4: .word 0x021E50A1 +_022497E4: .word MOD05_021E50A0 thumb_func_start MOD06_022497E8 MOD06_022497E8: ; 0x022497E8 @@ -33477,11 +33477,11 @@ _02249BD6: thumb_func_start MOD06_02249C24 MOD06_02249C24: ; 0x02249C24 - ldr r3, _02249C2C ; =0x0201F745 + ldr r3, _02249C2C ; =FUN_0201F744 ldr r0, [r1, #0x3c] bx r3 nop -_02249C2C: .word 0x0201F745 +_02249C2C: .word FUN_0201F744 thumb_func_start MOD06_02249C30 MOD06_02249C30: ; 0x02249C30 @@ -35124,11 +35124,11 @@ _0224A86C: thumb_func_start MOD06_0224A870 MOD06_0224A870: ; 0x0224A870 ldr r0, [r1, #0x1c] - ldr r3, _0224A878 ; =0x021F5431 + ldr r3, _0224A878 ; =MOD05_021F5430 add r0, #0x18 bx r3 .align 2, 0 -_0224A878: .word 0x021F5431 +_0224A878: .word MOD05_021F5430 thumb_func_start MOD06_0224A87C MOD06_0224A87C: ; 0x0224A87C @@ -35174,11 +35174,11 @@ MOD06_0224A8A8: ; 0x0224A8A8 thumb_func_start MOD06_0224A8C8 MOD06_0224A8C8: ; 0x0224A8C8 - ldr r3, _0224A8D0 ; =0x021E4C01 + ldr r3, _0224A8D0 ; =MOD05_021E4C00 ldr r0, [r0, #0x5c] bx r3 nop -_0224A8D0: .word 0x021E4C01 +_0224A8D0: .word MOD05_021E4C00 thumb_func_start MOD06_0224A8D4 MOD06_0224A8D4: ; 0x0224A8D4 @@ -35364,11 +35364,11 @@ MOD06_0224AA14: ; 0x0224AA14 thumb_func_start MOD06_0224AA34 MOD06_0224AA34: ; 0x0224AA34 - ldr r3, _0224AA3C ; =0x021E4C01 + ldr r3, _0224AA3C ; =MOD05_021E4C00 ldr r0, [r0, #0x5c] bx r3 nop -_0224AA3C: .word 0x021E4C01 +_0224AA3C: .word MOD05_021E4C00 thumb_func_start MOD06_0224AA40 MOD06_0224AA40: ; 0x0224AA40 @@ -35554,11 +35554,11 @@ MOD06_0224AB80: ; 0x0224AB80 thumb_func_start MOD06_0224ABA0 MOD06_0224ABA0: ; 0x0224ABA0 - ldr r3, _0224ABA8 ; =0x021E4C01 + ldr r3, _0224ABA8 ; =MOD05_021E4C00 ldr r0, [r0, #0x5c] bx r3 nop -_0224ABA8: .word 0x021E4C01 +_0224ABA8: .word MOD05_021E4C00 thumb_func_start MOD06_0224ABAC MOD06_0224ABAC: ; 0x0224ABAC @@ -36429,11 +36429,11 @@ _0224B234: thumb_func_start MOD06_0224B23C MOD06_0224B23C: ; 0x0224B23C ldr r0, [r1] - ldr r3, _0224B244 ; =0x021F5431 + ldr r3, _0224B244 ; =MOD05_021F5430 add r0, #0x18 bx r3 .align 2, 0 -_0224B244: .word 0x021F5431 +_0224B244: .word MOD05_021F5430 thumb_func_start MOD06_0224B248 MOD06_0224B248: ; 0x0224B248 @@ -36635,11 +36635,11 @@ _0224B3D0: thumb_func_start MOD06_0224B3D8 MOD06_0224B3D8: ; 0x0224B3D8 ldr r0, [r1] - ldr r3, _0224B3E0 ; =0x021F5431 + ldr r3, _0224B3E0 ; =MOD05_021F5430 add r0, #0x18 bx r3 .align 2, 0 -_0224B3E0: .word 0x021F5431 +_0224B3E0: .word MOD05_021F5430 thumb_func_start MOD06_0224B3E4 MOD06_0224B3E4: ; 0x0224B3E4 @@ -36928,11 +36928,11 @@ _0224B65E: thumb_func_start MOD06_0224B664 MOD06_0224B664: ; 0x0224B664 - ldr r3, _0224B66C ; =0x0201F745 + ldr r3, _0224B66C ; =FUN_0201F744 ldr r0, [r1, #0x34] bx r3 nop -_0224B66C: .word 0x0201F745 +_0224B66C: .word FUN_0201F744 thumb_func_start MOD06_0224B670 MOD06_0224B670: ; 0x0224B670 @@ -37102,11 +37102,11 @@ MOD06_0224B788: ; 0x0224B788 thumb_func_start MOD06_0224B7C0 MOD06_0224B7C0: ; 0x0224B7C0 - ldr r3, _0224B7C8 ; =0x0201F745 + ldr r3, _0224B7C8 ; =FUN_0201F744 ldr r0, [r1, #0x1c] bx r3 nop -_0224B7C8: .word 0x0201F745 +_0224B7C8: .word FUN_0201F744 thumb_func_start MOD06_0224B7CC MOD06_0224B7CC: ; 0x0224B7CC @@ -37270,11 +37270,11 @@ _0224B8EC: thumb_func_start MOD06_0224B8FC MOD06_0224B8FC: ; 0x0224B8FC - ldr r3, _0224B904 ; =0x0201F745 + ldr r3, _0224B904 ; =FUN_0201F744 ldr r0, [r1, #0x24] bx r3 nop -_0224B904: .word 0x0201F745 +_0224B904: .word FUN_0201F744 thumb_func_start MOD06_0224B908 MOD06_0224B908: ; 0x0224B908 @@ -37470,11 +37470,11 @@ MOD06_0224BA30: ; 0x0224BA30 thumb_func_start MOD06_0224BA88 MOD06_0224BA88: ; 0x0224BA88 - ldr r3, _0224BA90 ; =0x0201F745 + ldr r3, _0224BA90 ; =FUN_0201F744 ldr r0, [r1, #0x24] bx r3 nop -_0224BA90: .word 0x0201F745 +_0224BA90: .word FUN_0201F744 thumb_func_start MOD06_0224BA94 MOD06_0224BA94: ; 0x0224BA94 @@ -37723,11 +37723,11 @@ MOD06_0224BC50: ; 0x0224BC50 thumb_func_start MOD06_0224BC94 MOD06_0224BC94: ; 0x0224BC94 - ldr r3, _0224BC9C ; =0x0201F745 + ldr r3, _0224BC9C ; =FUN_0201F744 ldr r0, [r1, #0x20] bx r3 nop -_0224BC9C: .word 0x0201F745 +_0224BC9C: .word FUN_0201F744 thumb_func_start MOD06_0224BCA0 MOD06_0224BCA0: ; 0x0224BCA0 @@ -37966,11 +37966,11 @@ _0224BE86: thumb_func_start MOD06_0224BE8C MOD06_0224BE8C: ; 0x0224BE8C - ldr r3, _0224BE94 ; =0x0201F745 + ldr r3, _0224BE94 ; =FUN_0201F744 ldr r0, [r1, #0x34] bx r3 nop -_0224BE94: .word 0x0201F745 +_0224BE94: .word FUN_0201F744 thumb_func_start MOD06_0224BE98 MOD06_0224BE98: ; 0x0224BE98 @@ -38299,11 +38299,11 @@ _0224C138: thumb_func_start MOD06_0224C140 MOD06_0224C140: ; 0x0224C140 - ldr r3, _0224C148 ; =0x0201F745 + ldr r3, _0224C148 ; =FUN_0201F744 ldr r0, [r1, #0x34] bx r3 nop -_0224C148: .word 0x0201F745 +_0224C148: .word FUN_0201F744 thumb_func_start MOD06_0224C14C MOD06_0224C14C: ; 0x0224C14C @@ -38992,21 +38992,21 @@ _0224C6E4: .word 0x02251DE4 thumb_func_start MOD06_0224C6E8 MOD06_0224C6E8: ; 0x0224C6E8 - ldr r3, _0224C6F0 ; =0x021DA4ED + ldr r3, _0224C6F0 ; =MOD05_021DA4EC ldr r0, [r0, #0x50] mov r2, #0 bx r3 .align 2, 0 -_0224C6F0: .word 0x021DA4ED +_0224C6F0: .word MOD05_021DA4EC thumb_func_start MOD06_0224C6F4 MOD06_0224C6F4: ; 0x0224C6F4 - ldr r3, _0224C6FC ; =0x021DA4ED + ldr r3, _0224C6FC ; =MOD05_021DA4EC ldr r0, [r0, #0x50] mov r2, #1 bx r3 .align 2, 0 -_0224C6FC: .word 0x021DA4ED +_0224C6FC: .word MOD05_021DA4EC thumb_func_start MOD06_0224C700 MOD06_0224C700: ; 0x0224C700 @@ -40655,11 +40655,11 @@ MOD06_0224D344: ; 0x0224D344 thumb_func_start MOD06_0224D388 MOD06_0224D388: ; 0x0224D388 - ldr r3, _0224D390 ; =0x0201F745 + ldr r3, _0224D390 ; =FUN_0201F744 ldr r0, [r1, #0x20] bx r3 nop -_0224D390: .word 0x0201F745 +_0224D390: .word FUN_0201F744 thumb_func_start MOD06_0224D394 MOD06_0224D394: ; 0x0224D394 @@ -41710,11 +41710,11 @@ MOD06_0224DC3C: ; 0x0224DC3C thumb_func_start MOD06_0224DC50 MOD06_0224DC50: ; 0x0224DC50 - ldr r3, _0224DC58 ; =0x0201FD59 + ldr r3, _0224DC58 ; =FUN_0201FD58 ldr r0, [r0, #0x1c] bx r3 nop -_0224DC58: .word 0x0201FD59 +_0224DC58: .word FUN_0201FD58 thumb_func_start MOD06_0224DC5C MOD06_0224DC5C: ; 0x0224DC5C @@ -42756,13 +42756,13 @@ _0224E4A2: thumb_func_start MOD06_0224E4A4 MOD06_0224E4A4: ; 0x0224E4A4 - ldr r3, _0224E4B0 ; =0x020021AD + ldr r3, _0224E4B0 ; =FUN_020021AC add r1, r0, #0 ldr r0, [r1, #4] ldr r1, [r1, #8] bx r3 nop -_0224E4B0: .word 0x020021AD +_0224E4B0: .word FUN_020021AC thumb_func_start MOD06_0224E4B4 MOD06_0224E4B4: ; 0x0224E4B4 @@ -42822,11 +42822,11 @@ MOD06_0224E510: ; 0x0224E510 mov r3, #0xc mul r3, r2 ldr r1, [r1, r3] - ldr r3, _0224E51C ; =0x020270D9 + ldr r3, _0224E51C ; =FUN_020270D8 mov r2, #1 bx r3 .align 2, 0 -_0224E51C: .word 0x020270D9 +_0224E51C: .word FUN_020270D8 thumb_func_start MOD06_0224E520 MOD06_0224E520: ; 0x0224E520 @@ -43156,13 +43156,13 @@ _0224E794: thumb_func_start MOD06_0224E7C4 MOD06_0224E7C4: ; 0x0224E7C4 - ldr r3, _0224E7D0 ; =0x0204640D + ldr r3, _0224E7D0 ; =FUN_0204640C ldr r0, [r0, #0x10] ldr r1, _0224E7D4 ; =MOD06_0224E7D8 mov r2, #0 bx r3 nop -_0224E7D0: .word 0x0204640D +_0224E7D0: .word FUN_0204640C _0224E7D4: .word MOD06_0224E7D8 thumb_func_start MOD06_0224E7D8 @@ -43506,10 +43506,10 @@ _0224EA58: thumb_func_start MOD06_0224EA5C MOD06_0224EA5C: ; 0x0224EA5C - ldr r3, _0224EA60 ; =0x021F5431 + ldr r3, _0224EA60 ; =MOD05_021F5430 bx r3 .align 2, 0 -_0224EA60: .word 0x021F5431 +_0224EA60: .word MOD05_021F5430 thumb_func_start MOD06_0224EA64 MOD06_0224EA64: ; 0x0224EA64 @@ -43595,20 +43595,20 @@ _0224EAF8: .word MOD06_0224EA5C thumb_func_start MOD06_0224EAFC MOD06_0224EAFC: ; 0x0224EAFC ldr r0, [r0, #4] - ldr r3, _0224EB08 ; =0x021D8025 + ldr r3, _0224EB08 ; =MOD05_021D8024 ldr r0, [r0, #4] ldr r1, _0224EB0C ; =0x022521D4 bx r3 nop -_0224EB08: .word 0x021D8025 +_0224EB08: .word MOD05_021D8024 _0224EB0C: .word 0x022521D4 thumb_func_start MOD06_0224EB10 MOD06_0224EB10: ; 0x0224EB10 - ldr r3, _0224EB14 ; =0x021D80A5 + ldr r3, _0224EB14 ; =MOD05_021D80A4 bx r3 .align 2, 0 -_0224EB14: .word 0x021D80A5 +_0224EB14: .word MOD05_021D80A4 thumb_func_start MOD06_0224EB18 MOD06_0224EB18: ; 0x0224EB18 @@ -43744,31 +43744,31 @@ _0224EC10: .word MOD06_0224EA5C thumb_func_start MOD06_0224EC14 MOD06_0224EC14: ; 0x0224EC14 ldr r0, [r0, #4] - ldr r3, _0224EC20 ; =0x021D8025 + ldr r3, _0224EC20 ; =MOD05_021D8024 ldr r0, [r0, #4] ldr r1, _0224EC24 ; =0x0225218C bx r3 nop -_0224EC20: .word 0x021D8025 +_0224EC20: .word MOD05_021D8024 _0224EC24: .word 0x0225218C thumb_func_start MOD06_0224EC28 MOD06_0224EC28: ; 0x0224EC28 ldr r0, [r0, #4] - ldr r3, _0224EC34 ; =0x021D8025 + ldr r3, _0224EC34 ; =MOD05_021D8024 ldr r0, [r0, #4] ldr r1, _0224EC38 ; =0x022521A4 bx r3 nop -_0224EC34: .word 0x021D8025 +_0224EC34: .word MOD05_021D8024 _0224EC38: .word 0x022521A4 thumb_func_start MOD06_0224EC3C MOD06_0224EC3C: ; 0x0224EC3C - ldr r3, _0224EC40 ; =0x021D80A5 + ldr r3, _0224EC40 ; =MOD05_021D80A4 bx r3 .align 2, 0 -_0224EC40: .word 0x021D80A5 +_0224EC40: .word MOD05_021D80A4 thumb_func_start MOD06_0224EC44 MOD06_0224EC44: ; 0x0224EC44 @@ -43949,20 +43949,20 @@ MOD06_0224ED84: ; 0x0224ED84 thumb_func_start MOD06_0224ED94 MOD06_0224ED94: ; 0x0224ED94 ldr r0, [r0, #4] - ldr r3, _0224EDA0 ; =0x021D8025 + ldr r3, _0224EDA0 ; =MOD05_021D8024 ldr r0, [r0, #4] ldr r1, _0224EDA4 ; =0x022521BC bx r3 nop -_0224EDA0: .word 0x021D8025 +_0224EDA0: .word MOD05_021D8024 _0224EDA4: .word 0x022521BC thumb_func_start MOD06_0224EDA8 MOD06_0224EDA8: ; 0x0224EDA8 - ldr r3, _0224EDAC ; =0x021D80A5 + ldr r3, _0224EDAC ; =MOD05_021D80A4 bx r3 .align 2, 0 -_0224EDAC: .word 0x021D80A5 +_0224EDAC: .word MOD05_021D80A4 thumb_func_start MOD06_0224EDB0 MOD06_0224EDB0: ; 0x0224EDB0 @@ -44373,20 +44373,20 @@ _0224F0AC: thumb_func_start MOD06_0224F0BC MOD06_0224F0BC: ; 0x0224F0BC ldr r0, [r0, #4] - ldr r3, _0224F0C8 ; =0x021D8025 + ldr r3, _0224F0C8 ; =MOD05_021D8024 ldr r0, [r0, #4] ldr r1, _0224F0CC ; =0x022521EC bx r3 nop -_0224F0C8: .word 0x021D8025 +_0224F0C8: .word MOD05_021D8024 _0224F0CC: .word 0x022521EC thumb_func_start MOD06_0224F0D0 MOD06_0224F0D0: ; 0x0224F0D0 - ldr r3, _0224F0D4 ; =0x021D80A5 + ldr r3, _0224F0D4 ; =MOD05_021D80A4 bx r3 .align 2, 0 -_0224F0D4: .word 0x021D80A5 +_0224F0D4: .word MOD05_021D80A4 thumb_func_start MOD06_0224F0D8 MOD06_0224F0D8: ; 0x0224F0D8 diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s index ec645354..77a1f93f 100644 --- a/arm9/modules/08/asm/module_08.s +++ b/arm9/modules/08/asm/module_08.s @@ -1003,13 +1003,13 @@ _02212544: thumb_func_start MOD08_0221255C
MOD08_0221255C: ; 0x0221255C
- ldr r3, _02212568 ; =0x0200CA45
+ ldr r3, _02212568 ; =FUN_0200CA44
str r0, [r1, #0x38]
ldr r0, _0221256C ; =MOD08_02212574
ldr r2, _02212570 ; =0x0000044C
bx r3
nop
-_02212568: .word 0x0200CA45
+_02212568: .word FUN_0200CA44
_0221256C: .word MOD08_02212574
_02212570: .word 0x0000044C
@@ -6040,7 +6040,7 @@ MOD08_02214B38: ; 0x02214B38 thumb_func_start MOD08_02214B3C
MOD08_02214B3C: ; 0x02214B3C
ldr r1, [r0, #0x18]
- ldr r3, _02214B50 ; =0x020054C9
+ ldr r3, _02214B50 ; =FUN_020054C8
add r1, r1, #4
str r1, [r0, #0x18]
ldr r2, [r1]
@@ -6050,12 +6050,12 @@ MOD08_02214B3C: ; 0x02214B3C lsr r0, r0, #0x10
bx r3
.align 2, 0
-_02214B50: .word 0x020054C9
+_02214B50: .word FUN_020054C8
thumb_func_start MOD08_02214B54
MOD08_02214B54: ; 0x02214B54
ldr r1, [r0, #0x18]
- ldr r3, _02214B6C ; =0x020054F1
+ ldr r3, _02214B6C ; =FUN_020054F0
add r1, r1, #4
str r1, [r0, #0x18]
ldr r2, [r1]
@@ -6066,7 +6066,7 @@ MOD08_02214B54: ; 0x02214B54 mov r1, #0
bx r3
nop
-_02214B6C: .word 0x020054F1
+_02214B6C: .word FUN_020054F0
thumb_func_start MOD08_02214B70
MOD08_02214B70: ; 0x02214B70
@@ -7001,18 +7001,18 @@ MOD08_02215284: ; 0x02215284 add r2, r0, r2
mov r0, #0x4f
lsl r0, r0, #2
- ldr r3, _022152A4 ; =0x0200C645
+ ldr r3, _022152A4 ; =FUN_0200C644
ldr r0, [r2, r0]
bx r3
.align 2, 0
-_022152A4: .word 0x0200C645
+_022152A4: .word FUN_0200C644
thumb_func_start MOD08_022152A8
MOD08_022152A8: ; 0x022152A8
- ldr r3, _022152AC ; =0x02020C2D
+ ldr r3, _022152AC ; =ErrorHandling
bx r3
.align 2, 0
-_022152AC: .word 0x02020C2D
+_022152AC: .word ErrorHandling
thumb_func_start MOD08_022152B0
MOD08_022152B0: ; 0x022152B0
@@ -8148,10 +8148,10 @@ MOD08_02215ACC: ; 0x02215ACC thumb_func_start MOD08_02215AF8
MOD08_02215AF8: ; 0x02215AF8
- ldr r3, _02215AFC ; =0x02006705
+ ldr r3, _02215AFC ; =FUN_02006704
bx r3
.align 2, 0
-_02215AFC: .word 0x02006705
+_02215AFC: .word FUN_02006704
thumb_func_start MOD08_02215B00
MOD08_02215B00: ; 0x02215B00
@@ -14296,11 +14296,11 @@ MOD08_022188BC: ; 0x022188BC thumb_func_start MOD08_022188D0
MOD08_022188D0: ; 0x022188D0
- ldr r3, _022188D8 ; =0x02012B69
+ ldr r3, _022188D8 ; =FUN_02012B68
ldr r0, [r0, #0x1c]
bx r3
nop
-_022188D8: .word 0x02012B69
+_022188D8: .word FUN_02012B68
thumb_func_start MOD08_022188DC
MOD08_022188DC: ; 0x022188DC
@@ -32594,19 +32594,19 @@ _02221D98: thumb_func_start MOD08_02221DF0
MOD08_02221DF0: ; 0x02221DF0
- ldr r3, _02221DF8 ; =0x0200C3DD
+ ldr r3, _02221DF8 ; =FUN_0200C3DC
ldr r0, [r0]
bx r3
nop
-_02221DF8: .word 0x0200C3DD
+_02221DF8: .word FUN_0200C3DC
thumb_func_start MOD08_02221DFC
MOD08_02221DFC: ; 0x02221DFC
- ldr r3, _02221E04 ; =0x0200C645
+ ldr r3, _02221E04 ; =FUN_0200C644
ldr r0, [r0]
bx r3
nop
-_02221E04: .word 0x0200C645
+_02221E04: .word FUN_0200C644
thumb_func_start MOD08_02221E08
MOD08_02221E08: ; 0x02221E08
@@ -34855,11 +34855,11 @@ _022230D4: .word 0xBF800000 thumb_func_start MOD08_022230D8
MOD08_022230D8: ; 0x022230D8
- ldr r3, _022230E0 ; =0x0200C3DD
+ ldr r3, _022230E0 ; =FUN_0200C3DC
ldr r0, [r0]
bx r3
nop
-_022230E0: .word 0x0200C3DD
+_022230E0: .word FUN_0200C3DC
thumb_func_start MOD08_022230E4
MOD08_022230E4: ; 0x022230E4
@@ -44142,11 +44142,11 @@ _02227B4E: thumb_func_start MOD08_02227B64
MOD08_02227B64: ; 0x02227B64
- ldr r3, _02227B6C ; =0x0200C7A1
+ ldr r3, _02227B6C ; =FUN_0200C7A0
add r2, r1, #2
bx r3
nop
-_02227B6C: .word 0x0200C7A1
+_02227B6C: .word FUN_0200C7A0
thumb_func_start MOD08_02227B70
MOD08_02227B70: ; 0x02227B70
@@ -45529,10 +45529,10 @@ _02228616: thumb_func_start MOD08_02228618
MOD08_02228618: ; 0x02228618
- ldr r3, _0222861C ; =0x02016A19
+ ldr r3, _0222861C ; =FUN_02016A18
bx r3
.align 2, 0
-_0222861C: .word 0x02016A19
+_0222861C: .word FUN_02016A18
thumb_func_start MOD08_02228620
MOD08_02228620: ; 0x02228620
@@ -45972,10 +45972,10 @@ _0222896C: thumb_func_start MOD08_02228970
MOD08_02228970: ; 0x02228970
- ldr r3, _02228974 ; =0x02016A19
+ ldr r3, _02228974 ; =FUN_02016A18
bx r3
.align 2, 0
-_02228974: .word 0x02016A19
+_02228974: .word FUN_02016A18
thumb_func_start MOD08_02228978
MOD08_02228978: ; 0x02228978
@@ -48264,12 +48264,12 @@ MOD08_02229A5C: ; 0x02229A5C add r1, r2, #0
str r0, [r2, #0x1c]
ldr r0, [r2, #0x30]
- ldr r3, _02229A7C ; =0x0200C7A1
+ ldr r3, _02229A7C ; =FUN_0200C7A0
add r1, #0xb8
add r2, #0xba
bx r3
nop
-_02229A7C: .word 0x0200C7A1
+_02229A7C: .word FUN_0200C7A0
thumb_func_start MOD08_02229A80
MOD08_02229A80: ; 0x02229A80
@@ -48971,27 +48971,27 @@ _02229FE0: .word 0x00001770 thumb_func_start MOD08_02229FE4
MOD08_02229FE4: ; 0x02229FE4
- ldr r3, _02229FEC ; =0x0200C645
+ ldr r3, _02229FEC ; =FUN_0200C644
ldr r0, [r0, #0x30]
bx r3
nop
-_02229FEC: .word 0x0200C645
+_02229FEC: .word FUN_0200C644
thumb_func_start MOD08_02229FF0
MOD08_02229FF0: ; 0x02229FF0
- ldr r3, _02229FF8 ; =0x0200C715
+ ldr r3, _02229FF8 ; =FUN_0200C714
ldr r0, [r0, #0x30]
bx r3
nop
-_02229FF8: .word 0x0200C715
+_02229FF8: .word FUN_0200C714
thumb_func_start MOD08_02229FFC
MOD08_02229FFC: ; 0x02229FFC
- ldr r3, _0222A004 ; =0x0200C899
+ ldr r3, _0222A004 ; =FUN_0200C898
ldr r0, [r0, #0x30]
bx r3
nop
-_0222A004: .word 0x0200C899
+_0222A004: .word FUN_0200C898
thumb_func_start MOD08_0222A008
MOD08_0222A008: ; 0x0222A008
@@ -49000,19 +49000,19 @@ MOD08_0222A008: ; 0x0222A008 thumb_func_start MOD08_0222A00C
MOD08_0222A00C: ; 0x0222A00C
- ldr r3, _0222A014 ; =0x0200C6C5
+ ldr r3, _0222A014 ; =FUN_0200C6C4
ldr r0, [r0, #0x30]
bx r3
nop
-_0222A014: .word 0x0200C6C5
+_0222A014: .word FUN_0200C6C4
thumb_func_start MOD08_0222A018
MOD08_0222A018: ; 0x0222A018
- ldr r3, _0222A020 ; =0x0200C6B1
+ ldr r3, _0222A020 ; =FUN_0200C6B0
ldr r0, [r0, #0x30]
bx r3
nop
-_0222A020: .word 0x0200C6B1
+_0222A020: .word FUN_0200C6B0
thumb_func_start MOD08_0222A024
MOD08_0222A024: ; 0x0222A024
@@ -49325,10 +49325,10 @@ _0222A24E: thumb_func_start MOD08_0222A258
MOD08_0222A258: ; 0x0222A258
- ldr r3, _0222A25C ; =0x0201341D
+ ldr r3, _0222A25C ; =FUN_0201341C
bx r3
.align 2, 0
-_0222A25C: .word 0x0201341D
+_0222A25C: .word FUN_0201341C
thumb_func_start MOD08_0222A260
MOD08_0222A260: ; 0x0222A260
diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s index 04792e97..27a9c5be 100644 --- a/arm9/modules/09/asm/module_09.s +++ b/arm9/modules/09/asm/module_09.s @@ -2950,11 +2950,11 @@ _02213610: .word 0x00002088 thumb_func_start MOD09_02213614
MOD09_02213614: ; 0x02213614
- ldr r3, _0221361C ; =0x02020989
+ ldr r3, _0221361C ; =FUN_02020988
add r0, r1, #0
bx r3
nop
-_0221361C: .word 0x02020989
+_0221361C: .word FUN_02020988
thumb_func_start MOD09_02213620
MOD09_02213620: ; 0x02213620
@@ -3742,10 +3742,10 @@ _02213C1C: add r0, r1, r0
ldrh r0, [r0, #0x34]
_02213C2A:
- ldr r3, _02213C30 ; =0x0206EA55
+ ldr r3, _02213C30 ; =FUN_0206EA54
bx r3
nop
-_02213C30: .word 0x0206EA55
+_02213C30: .word FUN_0206EA54
thumb_func_start MOD09_02213C34
MOD09_02213C34: ; 0x02213C34
@@ -3969,12 +3969,12 @@ MOD09_02213DE0: ; 0x02213DE0 add r2, r0, #0
ldr r0, [r2, r1]
add r1, r1, #4
- ldr r3, _02213DF4 ; =0x020191A5
+ ldr r3, _02213DF4 ; =FUN_020191A4
ldrb r1, [r2, r1]
bx r3
nop
_02213DF0: .word 0x00002070
-_02213DF4: .word 0x020191A5
+_02213DF4: .word FUN_020191A4
thumb_func_start MOD09_02213DF8
MOD09_02213DF8: ; 0x02213DF8
@@ -14263,11 +14263,11 @@ _02219420: .word 0x0000114C thumb_func_start MOD09_02219424
MOD09_02219424: ; 0x02219424
- ldr r3, _0221942C ; =0x02020989
+ ldr r3, _0221942C ; =FUN_02020988
add r0, r1, #0
bx r3
nop
-_0221942C: .word 0x02020989
+_0221942C: .word FUN_02020988
thumb_func_start MOD09_02219430
MOD09_02219430: ; 0x02219430
@@ -14391,11 +14391,11 @@ MOD09_02219510: ; 0x02219510 add r1, r0, #0
ldr r0, [r1, #0x2c]
add r1, #0x30
- ldr r3, _0221951C ; =0x020191A5
+ ldr r3, _0221951C ; =FUN_020191A4
ldrb r1, [r1]
bx r3
.align 2, 0
-_0221951C: .word 0x020191A5
+_0221951C: .word FUN_020191A4
thumb_func_start MOD09_02219520
MOD09_02219520: ; 0x02219520
@@ -17275,10 +17275,10 @@ _0221AC12: thumb_func_start MOD09_0221AC1C
MOD09_0221AC1C: ; 0x0221AC1C
- ldr r3, _0221AC20 ; =0x02016A19
+ ldr r3, _0221AC20 ; =FUN_02016A18
bx r3
.align 2, 0
-_0221AC20: .word 0x02016A19
+_0221AC20: .word FUN_02016A18
thumb_func_start MOD09_0221AC24
MOD09_0221AC24: ; 0x0221AC24
diff --git a/arm9/modules/11/asm/module_11.s b/arm9/modules/11/asm/module_11.s index 37f1b829..9112a837 100644 --- a/arm9/modules/11/asm/module_11.s +++ b/arm9/modules/11/asm/module_11.s @@ -3053,10 +3053,10 @@ _0222EFD0: .word 0x04000580 thumb_func_start MOD11_0222EFD4
MOD11_0222EFD4: ; 0x0222EFD4
- ldr r3, _0222EFD8 ; =0x020223BD
+ ldr r3, _0222EFD8 ; =FUN_020223BC
bx r3
.align 2, 0
-_0222EFD8: .word 0x020223BD
+_0222EFD8: .word FUN_020223BC
thumb_func_start MOD11_0222EFDC
MOD11_0222EFDC: ; 0x0222EFDC
@@ -5432,11 +5432,11 @@ MOD11_02230218: ; 0x02230218 MOD11_0223021C: ; 0x0223021C
lsl r1, r1, #2
add r0, r0, r1
- ldr r3, _02230228 ; =0x020239CD
+ ldr r3, _02230228 ; =FUN_020239CC
ldr r0, [r0, #0x48]
bx r3
nop
-_02230228: .word 0x020239CD
+_02230228: .word FUN_020239CC
thumb_func_start MOD11_0223022C
MOD11_0223022C: ; 0x0223022C
@@ -7002,11 +7002,11 @@ _02230E40: MOD11_02230E44: ; 0x02230E44
mov r1, #0x6d
lsl r1, r1, #2
- ldr r3, _02230E50 ; =0x02025085
+ ldr r3, _02230E50 ; =FUN_02025084
ldr r0, [r0, r1]
bx r3
nop
-_02230E50: .word 0x02025085
+_02230E50: .word FUN_02025084
thumb_func_start MOD11_02230E54
MOD11_02230E54: ; 0x02230E54
@@ -7029,11 +7029,11 @@ _02230E62: MOD11_02230E70: ; 0x02230E70
mov r1, #0x6d
lsl r1, r1, #2
- ldr r3, _02230E7C ; =0x02025049
+ ldr r3, _02230E7C ; =FUN_02025048
ldr r0, [r0, r1]
bx r3
nop
-_02230E7C: .word 0x02025049
+_02230E7C: .word FUN_02025048
thumb_func_start MOD11_02230E80
MOD11_02230E80: ; 0x02230E80
@@ -7605,22 +7605,22 @@ _02231288: .word 0x0000242C MOD11_0223128C: ; 0x0223128C
mov r2, #0x86
lsl r2, r2, #2
- ldr r3, _02231298 ; =0x0202A0E9
+ ldr r3, _02231298 ; =FUN_0202A0E8
ldr r0, [r0, r2]
bx r3
nop
-_02231298: .word 0x0202A0E9
+_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 ; =0x0202A171
+ ldr r3, _022312A8 ; =FUN_0202A170
mov r1, #0x16
bx r3
.align 2, 0
-_022312A8: .word 0x0202A171
+_022312A8: .word FUN_0202A170
thumb_func_start MOD11_022312AC
MOD11_022312AC: ; 0x022312AC
@@ -8186,13 +8186,13 @@ _02231664: thumb_func_start MOD11_02231668
MOD11_02231668: ; 0x02231668
- ldr r3, _02231674 ; =0x02024595
+ ldr r3, _02231674 ; =FUN_02024594
lsl r1, r1, #0x10
ldr r0, [r0, #0x60]
lsr r1, r1, #0x10
bx r3
nop
-_02231674: .word 0x02024595
+_02231674: .word FUN_02024594
thumb_func_start MOD11_02231678
MOD11_02231678: ; 0x02231678
@@ -9450,19 +9450,19 @@ MOD11_022320C8: ; 0x022320C8 thumb_func_start MOD11_022320EC
MOD11_022320EC: ; 0x022320EC
- ldr r3, _022320F4 ; =0x0200AD5D
+ ldr r3, _022320F4 ; =FUN_0200AD5C
ldr r0, [r0, #0x14]
bx r3
nop
-_022320F4: .word 0x0200AD5D
+_022320F4: .word FUN_0200AD5C
thumb_func_start MOD11_022320F8
MOD11_022320F8: ; 0x022320F8
- ldr r3, _02232100 ; =0x0200AE39
+ ldr r3, _02232100 ; =FUN_0200AE38
ldr r0, [r0, #0x14]
bx r3
nop
-_02232100: .word 0x0200AE39
+_02232100: .word FUN_0200AE38
thumb_func_start MOD11_02232104
MOD11_02232104: ; 0x02232104
@@ -9504,35 +9504,35 @@ _02232134: thumb_func_start MOD11_02232148
MOD11_02232148: ; 0x02232148
- ldr r3, _02232150 ; =0x0200AF19
+ ldr r3, _02232150 ; =FUN_0200AF18
ldr r0, [r0, #0x14]
bx r3
nop
-_02232150: .word 0x0200AF19
+_02232150: .word FUN_0200AF18
thumb_func_start MOD11_02232154
MOD11_02232154: ; 0x02232154
- ldr r3, _0223215C ; =0x0200ADCD
+ ldr r3, _0223215C ; =FUN_0200ADCC
ldr r0, [r0, #0x14]
bx r3
nop
-_0223215C: .word 0x0200ADCD
+_0223215C: .word FUN_0200ADCC
thumb_func_start MOD11_02232160
MOD11_02232160: ; 0x02232160
- ldr r3, _02232168 ; =0x0200AF51
+ ldr r3, _02232168 ; =FUN_0200AF50
ldr r0, [r0, #0x14]
bx r3
nop
-_02232168: .word 0x0200AF51
+_02232168: .word FUN_0200AF50
thumb_func_start MOD11_0223216C
MOD11_0223216C: ; 0x0223216C
- ldr r3, _02232174 ; =0x0200AF89
+ ldr r3, _02232174 ; =FUN_0200AF88
ldr r0, [r0, #0x14]
bx r3
nop
-_02232174: .word 0x0200AF89
+_02232174: .word FUN_0200AF88
thumb_func_start MOD11_02232178
MOD11_02232178: ; 0x02232178
@@ -9560,11 +9560,11 @@ MOD11_0223219C: ; 0x0223219C thumb_func_start MOD11_022321A0
MOD11_022321A0: ; 0x022321A0
- ldr r3, _022321A8 ; =0x0200AFBD
+ ldr r3, _022321A8 ; =FUN_0200AFBC
ldr r0, [r0, #0x14]
bx r3
nop
-_022321A8: .word 0x0200AFBD
+_022321A8: .word FUN_0200AFBC
thumb_func_start MOD11_022321AC
MOD11_022321AC: ; 0x022321AC
@@ -91571,11 +91571,11 @@ _0225A3F0: .word MOD11_0225A3F4 thumb_func_start MOD11_0225A3F4
MOD11_0225A3F4: ; 0x0225A3F4
- ldr r3, _0225A3FC ; =0x0200C5A9
+ ldr r3, _0225A3FC ; =FUN_0200C5A8
add r0, r1, #0
bx r3
nop
-_0225A3FC: .word 0x0200C5A9
+_0225A3FC: .word FUN_0200C5A8
thumb_func_start MOD11_0225A400
MOD11_0225A400: ; 0x0225A400
@@ -98209,12 +98209,12 @@ _0225D650: thumb_func_start MOD11_0225D664
MOD11_0225D664: ; 0x0225D664
- ldr r3, _0225D66C ; =0x0200C645
+ ldr r3, _0225D66C ; =FUN_0200C644
ldr r0, [r0, #0x10]
mov r1, #0
bx r3
.align 2, 0
-_0225D66C: .word 0x0200C645
+_0225D66C: .word FUN_0200C644
thumb_func_start MOD11_0225D670
MOD11_0225D670: ; 0x0225D670
diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s index cb6807a6..f7999898 100644 --- a/arm9/modules/12/asm/module_12.s +++ b/arm9/modules/12/asm/module_12.s @@ -4162,12 +4162,12 @@ _0222F820: .word 0x000080EA thumb_func_start MOD12_0222F824 MOD12_0222F824: ; 0x0222F824 - ldr r3, _0222F82C ; =0x0200C369 + ldr r3, _0222F82C ; =FUN_0200C368 ldr r0, [r0, #0x2c] ldr r1, _0222F830 ; =0x000080EA bx r3 .align 2, 0 -_0222F82C: .word 0x0200C369 +_0222F82C: .word FUN_0200C368 _0222F830: .word 0x000080EA thumb_func_start MOD12_0222F834 @@ -5933,10 +5933,10 @@ MOD12_022306A4: ; 0x022306A4 thumb_func_start MOD12_022306F0 MOD12_022306F0: ; 0x022306F0 - ldr r3, _022306F4 ; =0x02012CC9 + ldr r3, _022306F4 ; =FUN_02012CC8 bx r3 .align 2, 0 -_022306F4: .word 0x02012CC9 +_022306F4: .word FUN_02012CC8 thumb_func_start MOD12_022306F8 MOD12_022306F8: ; 0x022306F8 @@ -7537,10 +7537,10 @@ _02231374: .word 0x04000580 thumb_func_start MOD12_02231378 MOD12_02231378: ; 0x02231378 - ldr r3, _0223137C ; =0x020223BD + ldr r3, _0223137C ; =FUN_020223BC bx r3 .align 2, 0 -_0223137C: .word 0x020223BD +_0223137C: .word FUN_020223BC thumb_func_start MOD12_02231380 MOD12_02231380: ; 0x02231380 @@ -7680,12 +7680,12 @@ MOD12_02231490: ; 0x02231490 lsr r3, r3, #1 sub r1, r1, r3 _0223149A: - ldr r3, _022314A4 ; =0x020118C5 + ldr r3, _022314A4 ; =FUN_020118C4 ldr r0, [r0] sub r2, #8 bx r3 nop -_022314A4: .word 0x020118C5 +_022314A4: .word FUN_020118C4 thumb_func_start MOD12_022314A8 MOD12_022314A8: ; 0x022314A8 @@ -11875,10 +11875,10 @@ _02233498: .word 0x000080F6 thumb_func_start MOD12_0223349C MOD12_0223349C: ; 0x0223349C - ldr r3, _022334A0 ; =0x0200C3DD + ldr r3, _022334A0 ; =FUN_0200C3DC bx r3 .align 2, 0 -_022334A0: .word 0x0200C3DD +_022334A0: .word FUN_0200C3DC thumb_func_start MOD12_022334A4 MOD12_022334A4: ; 0x022334A4 @@ -11953,10 +11953,10 @@ _02233530: .word 0x0224519C thumb_func_start MOD12_02233534 MOD12_02233534: ; 0x02233534 - ldr r3, _02233538 ; =0x0200C3DD + ldr r3, _02233538 ; =FUN_0200C3DC bx r3 .align 2, 0 -_02233538: .word 0x0200C3DD +_02233538: .word FUN_0200C3DC thumb_func_start MOD12_0223353C MOD12_0223353C: ; 0x0223353C @@ -12621,10 +12621,10 @@ _02233A60: .word 0x0224533C thumb_func_start MOD12_02233A64 MOD12_02233A64: ; 0x02233A64 - ldr r3, _02233A68 ; =0x0200C3DD + ldr r3, _02233A68 ; =FUN_0200C3DC bx r3 .align 2, 0 -_02233A68: .word 0x0200C3DD +_02233A68: .word FUN_0200C3DC thumb_func_start MOD12_02233A6C MOD12_02233A6C: ; 0x02233A6C @@ -25566,12 +25566,12 @@ _02239B78: .word 0x02245F4A thumb_func_start MOD12_02239B7C MOD12_02239B7C: ; 0x02239B7C - ldr r3, _02239B84 ; =0x0201BD71 + ldr r3, _02239B84 ; =FUN_0201BD70 add r0, #0xd0 ldrb r0, [r0] bx r3 .align 2, 0 -_02239B84: .word 0x0201BD71 +_02239B84: .word FUN_0201BD70 thumb_func_start MOD12_02239B88 MOD12_02239B88: ; 0x02239B88 @@ -31736,11 +31736,11 @@ _0223CB14: .word 0x00009CAE MOD12_0223CB18: ; 0x0223CB18 mov r1, #2 lsl r1, r1, #8 - ldr r3, _0223CB24 ; =0x0200CAB5 + ldr r3, _0223CB24 ; =FUN_0200CAB4 ldr r0, [r0, r1] bx r3 nop -_0223CB24: .word 0x0200CAB5 +_0223CB24: .word FUN_0200CAB4 thumb_func_start MOD12_0223CB28 MOD12_0223CB28: ; 0x0223CB28 @@ -34820,12 +34820,12 @@ _0223E2A4: .word 0x02246226 thumb_func_start MOD12_0223E2A8 MOD12_0223E2A8: ; 0x0223E2A8 ldr r1, _0223E2B0 ; =0x00000AB8 - ldr r3, _0223E2B4 ; =0x0201BD71 + ldr r3, _0223E2B4 ; =FUN_0201BD70 ldrb r0, [r0, r1] bx r3 .align 2, 0 _0223E2B0: .word 0x00000AB8 -_0223E2B4: .word 0x0201BD71 +_0223E2B4: .word FUN_0201BD70 thumb_func_start MOD12_0223E2B8 MOD12_0223E2B8: ; 0x0223E2B8 @@ -34963,11 +34963,11 @@ _0223E3CA: strb r0, [r1, #0xc] _0223E3CE: ldr r0, [r1, #4] - ldr r3, _0223E3D8 ; =0x0200C59D + ldr r3, _0223E3D8 ; =FUN_0200C59C ldr r0, [r0] bx r3 nop -_0223E3D8: .word 0x0200C59D +_0223E3D8: .word FUN_0200C59C thumb_func_start MOD12_0223E3DC MOD12_0223E3DC: ; 0x0223E3DC @@ -35014,12 +35014,12 @@ _0223E438: .word 0x00027100 thumb_func_start MOD12_0223E43C MOD12_0223E43C: ; 0x0223E43C - ldr r3, _0223E444 ; =0x0200C645 + ldr r3, _0223E444 ; =FUN_0200C644 ldr r0, [r0, #4] mov r1, #0 bx r3 .align 2, 0 -_0223E444: .word 0x0200C645 +_0223E444: .word FUN_0200C644 thumb_func_start MOD12_0223E448 MOD12_0223E448: ; 0x0223E448 @@ -40568,10 +40568,10 @@ MOD12_02240E34: ; 0x02240E34 thumb_func_start MOD12_02240E7C MOD12_02240E7C: ; 0x02240E7C - ldr r3, _02240E80 ; =0x0200C359 + ldr r3, _02240E80 ; =FUN_0200C358 bx r3 .align 2, 0 -_02240E80: .word 0x0200C359 +_02240E80: .word FUN_0200C358 thumb_func_start MOD12_02240E84 MOD12_02240E84: ; 0x02240E84 @@ -40612,10 +40612,10 @@ _02240EA6: thumb_func_start MOD12_02240EC8 MOD12_02240EC8: ; 0x02240EC8 - ldr r3, _02240ECC ; =0x0200C3DD + ldr r3, _02240ECC ; =FUN_0200C3DC bx r3 .align 2, 0 -_02240ECC: .word 0x0200C3DD +_02240ECC: .word FUN_0200C3DC thumb_func_start MOD12_02240ED0 MOD12_02240ED0: ; 0x02240ED0 @@ -43608,11 +43608,11 @@ _022426A8: .word 0x0224664E MOD12_022426AC: ; 0x022426AC mov r1, #0xe6 lsl r1, r1, #2 - ldr r3, _022426B8 ; =0x0201BD71 + ldr r3, _022426B8 ; =FUN_0201BD70 ldrb r0, [r0, r1] bx r3 nop -_022426B8: .word 0x0201BD71 +_022426B8: .word FUN_0201BD70 thumb_func_start MOD12_022426BC MOD12_022426BC: ; 0x022426BC diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s index 1ace4733..e725bfc5 100644 --- a/arm9/modules/14/asm/module_14.s +++ b/arm9/modules/14/asm/module_14.s @@ -7805,11 +7805,11 @@ MOD14_021DB470: ; 0x021DB470 thumb_func_start MOD14_021DB490 MOD14_021DB490: ; 0x021DB490 - ldr r3, _021DB498 ; =0x02016A19 + ldr r3, _021DB498 ; =FUN_02016A18 ldr r0, [r0] bx r3 nop -_021DB498: .word 0x02016A19 +_021DB498: .word FUN_02016A18 thumb_func_start MOD14_021DB49C MOD14_021DB49C: ; 0x021DB49C @@ -7829,11 +7829,11 @@ MOD14_021DB49C: ; 0x021DB49C thumb_func_start MOD14_021DB4BC MOD14_021DB4BC: ; 0x021DB4BC - ldr r3, _021DB4C4 ; =0x02021A21 + ldr r3, _021DB4C4 ; =FUN_02021A20 ldr r0, [r0, #4] bx r3 nop -_021DB4C4: .word 0x02021A21 +_021DB4C4: .word FUN_02021A20 thumb_func_start MOD14_021DB4C8 MOD14_021DB4C8: ; 0x021DB4C8 @@ -9849,11 +9849,11 @@ MOD14_021DC3AC: ; 0x021DC3AC MOD14_021DC3B4: ; 0x021DC3B4 mov r1, #0x69 lsl r1, r1, #2 - ldr r3, _021DC3C0 ; =0x02025085 + ldr r3, _021DC3C0 ; =FUN_02025084 ldr r0, [r0, r1] bx r3 nop -_021DC3C0: .word 0x02025085 +_021DC3C0: .word FUN_02025084 thumb_func_start MOD14_021DC3C4 MOD14_021DC3C4: ; 0x021DC3C4 @@ -13176,10 +13176,10 @@ _021DDD3C: thumb_func_start MOD14_021DDD40 MOD14_021DDD40: ; 0x021DDD40 - ldr r3, _021DDD44 ; =0x0200CA61 + ldr r3, _021DDD44 ; =FUN_0200CA60 bx r3 .align 2, 0 -_021DDD44: .word 0x0200CA61 +_021DDD44: .word FUN_0200CA60 thumb_func_start MOD14_021DDD48 MOD14_021DDD48: ; 0x021DDD48 @@ -17686,12 +17686,12 @@ _021E0024: thumb_func_start MOD14_021E002C MOD14_021E002C: ; 0x021E002C - ldr r3, _021E0034 ; =0x02020131 + ldr r3, _021E0034 ; =FUN_02020130 ldr r0, [r0, #4] mov r1, #1 bx r3 .align 2, 0 -_021E0034: .word 0x02020131 +_021E0034: .word FUN_02020130 thumb_func_start MOD14_021E0038 MOD14_021E0038: ; 0x021E0038 @@ -19244,11 +19244,11 @@ _021E0C64: _021E0C66: ldr r0, [r1] ldrh r1, [r1, #0x2c] - ldr r3, _021E0C70 ; =0x02020249 + ldr r3, _021E0C70 ; =FUN_02020248 add r1, r1, r2 bx r3 .align 2, 0 -_021E0C70: .word 0x02020249 +_021E0C70: .word FUN_02020248 thumb_func_start MOD14_021E0C74 MOD14_021E0C74: ; 0x021E0C74 @@ -27001,12 +27001,12 @@ _021E4762: thumb_func_start MOD14_021E4764 MOD14_021E4764: ; 0x021E4764 - ldr r3, _021E476C ; =0x0201797D + ldr r3, _021E476C ; =FUN_0201797C mov r0, #4 mov r1, #0 bx r3 .align 2, 0 -_021E476C: .word 0x0201797D +_021E476C: .word FUN_0201797C thumb_func_start MOD14_021E4770 MOD14_021E4770: ; 0x021E4770 diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s index 8659bfeb..88e9d55a 100644 --- a/arm9/modules/15/asm/module_15.s +++ b/arm9/modules/15/asm/module_15.s @@ -2402,11 +2402,11 @@ MOD15_021D86E4: ; 0x021D86E4 thumb_func_start MOD15_021D86E8
MOD15_021D86E8: ; 0x021D86E8
- ldr r3, _021D86F0 ; =0x02085411
+ ldr r3, _021D86F0 ; =FUN_02085410
ldr r0, [r0]
bx r3
nop
-_021D86F0: .word 0x02085411
+_021D86F0: .word FUN_02085410
thumb_func_start MOD15_021D86F4
MOD15_021D86F4: ; 0x021D86F4
@@ -2417,11 +2417,11 @@ MOD15_021D86F4: ; 0x021D86F4 thumb_func_start MOD15_021D86FC
MOD15_021D86FC: ; 0x021D86FC
- ldr r3, _021D8704 ; =0x02013921
+ ldr r3, _021D8704 ; =FUN_02013920
add r0, #8
bx r3
nop
-_021D8704: .word 0x02013921
+_021D8704: .word FUN_02013920
thumb_func_start MOD15_021D8708
MOD15_021D8708: ; 0x021D8708
@@ -2440,11 +2440,11 @@ _021D8718: thumb_func_start MOD15_021D8720
MOD15_021D8720: ; 0x021D8720
- ldr r3, _021D8728 ; =0x02013841
+ ldr r3, _021D8728 ; =FUN_02013840
add r0, #8
bx r3
nop
-_021D8728: .word 0x02013841
+_021D8728: .word FUN_02013840
thumb_func_start MOD15_021D872C
MOD15_021D872C: ; 0x021D872C
@@ -2560,11 +2560,11 @@ _021D87DC: thumb_func_start MOD15_021D87E0
MOD15_021D87E0: ; 0x021D87E0
- ldr r3, _021D87E8 ; =0x02085415
+ ldr r3, _021D87E8 ; =FUN_02085414
ldr r0, [r0]
bx r3
nop
-_021D87E8: .word 0x02085415
+_021D87E8: .word FUN_02085414
thumb_func_start MOD15_021D87EC
MOD15_021D87EC: ; 0x021D87EC
@@ -2676,10 +2676,10 @@ _021D88CE: thumb_func_start MOD15_021D88D0
MOD15_021D88D0: ; 0x021D88D0
- ldr r3, _021D88D4 ; =0x0200CA61
+ ldr r3, _021D88D4 ; =FUN_0200CA60
bx r3
.align 2, 0
-_021D88D4: .word 0x0200CA61
+_021D88D4: .word FUN_0200CA60
thumb_func_start MOD15_021D88D8
MOD15_021D88D8: ; 0x021D88D8
@@ -4967,11 +4967,11 @@ _021D9B2C: .word 0x0000FFFE thumb_func_start MOD15_021D9B30
MOD15_021D9B30: ; 0x021D9B30
- ldr r3, _021D9B38 ; =0x02021A21
+ ldr r3, _021D9B38 ; =FUN_02021A20
ldr r0, [r0]
bx r3
nop
-_021D9B38: .word 0x02021A21
+_021D9B38: .word FUN_02021A20
thumb_func_start MOD15_021D9B3C
MOD15_021D9B3C: ; 0x021D9B3C
@@ -5718,37 +5718,37 @@ MOD15_021DA0B8: ; 0x021DA0B8 thumb_func_start MOD15_021DA0F4
MOD15_021DA0F4: ; 0x021DA0F4
- ldr r3, _021DA0FC ; =0x02020131
+ ldr r3, _021DA0FC ; =FUN_02020130
ldr r0, [r0, #0xc]
mov r1, #3
bx r3
.align 2, 0
-_021DA0FC: .word 0x02020131
+_021DA0FC: .word FUN_02020130
thumb_func_start MOD15_021DA100
MOD15_021DA100: ; 0x021DA100
- ldr r3, _021DA108 ; =0x02020131
+ ldr r3, _021DA108 ; =FUN_02020130
ldr r0, [r0, #0xc]
mov r1, #2
bx r3
.align 2, 0
-_021DA108: .word 0x02020131
+_021DA108: .word FUN_02020130
thumb_func_start MOD15_021DA10C
MOD15_021DA10C: ; 0x021DA10C
- ldr r3, _021DA114 ; =0x020200A1
+ ldr r3, _021DA114 ; =FUN_020200A0
ldr r0, [r0, #0xc]
bx r3
nop
-_021DA114: .word 0x020200A1
+_021DA114: .word FUN_020200A0
thumb_func_start MOD15_021DA118
MOD15_021DA118: ; 0x021DA118
- ldr r3, _021DA120 ; =0x02020129
+ ldr r3, _021DA120 ; =FUN_02020128
ldr r0, [r0, #0xc]
bx r3
nop
-_021DA120: .word 0x02020129
+_021DA120: .word FUN_02020128
thumb_func_start MOD15_021DA124
MOD15_021DA124: ; 0x021DA124
diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s index 77cc5176..4c66bac5 100644 --- a/arm9/modules/16/asm/module_16.s +++ b/arm9/modules/16/asm/module_16.s @@ -229,10 +229,10 @@ MOD16_021D7684: ; 0x021D7684 thumb_func_start MOD16_021D76A4 MOD16_021D76A4: ; 0x021D76A4 - ldr r3, _021D76A8 ; =0x0200E309 + ldr r3, _021D76A8 ; =FUN_0200E308 bx r3 .align 2, 0 -_021D76A8: .word 0x0200E309 +_021D76A8: .word FUN_0200E308 thumb_func_end MOD16_021D76A4 thumb_func_start MOD16_021D76AC @@ -2954,11 +2954,11 @@ _021D8B1C: thumb_func_start MOD16_021D8B30 MOD16_021D8B30: ; 0x021D8B30 - ldr r3, _021D8B38 ; =0x02020129 + ldr r3, _021D8B38 ; =FUN_02020128 ldr r0, [r0] bx r3 nop -_021D8B38: .word 0x02020129 +_021D8B38: .word FUN_02020128 thumb_func_end MOD16_021D8B30 thumb_func_start MOD16_021D8B3C @@ -3527,11 +3527,11 @@ MOD16_021D8F60: ; 0x021D8F60 thumb_func_start MOD16_021D8F90 MOD16_021D8F90: ; 0x021D8F90 - ldr r3, _021D8F98 ; =0x02019179 + ldr r3, _021D8F98 ; =FUN_02019178 add r0, r0, #4 bx r3 nop -_021D8F98: .word 0x02019179 +_021D8F98: .word FUN_02019178 thumb_func_end MOD16_021D8F90 thumb_func_start MOD16_021D8F9C @@ -4322,11 +4322,11 @@ _021D95E0: .word MOD16_021D95F4 MOD16_021D95E4: ; 0x021D95E4 mov r1, #0x9d lsl r1, r1, #2 - ldr r3, _021D95F0 ; =0x0200CAB5 + ldr r3, _021D95F0 ; =FUN_0200CAB4 ldr r0, [r0, r1] bx r3 nop -_021D95F0: .word 0x0200CAB5 +_021D95F0: .word FUN_0200CAB4 thumb_func_end MOD16_021D95E4 thumb_func_start MOD16_021D95F4 @@ -4712,13 +4712,13 @@ _021D98D8: .word 0x00001748 thumb_func_start MOD16_021D98DC MOD16_021D98DC: ; 0x021D98DC - ldr r3, _021D98E8 ; =0x02024675 + ldr r3, _021D98E8 ; =FUN_02024674 lsl r1, r1, #0x10 ldr r0, [r0] lsr r1, r1, #0x10 bx r3 nop -_021D98E8: .word 0x02024675 +_021D98E8: .word FUN_02024674 thumb_func_end MOD16_021D98DC thumb_func_start MOD16_021D98EC @@ -4882,84 +4882,84 @@ _021D99F0: thumb_func_start MOD16_021D99F4 MOD16_021D99F4: ; 0x021D99F4 - ldr r3, _021D99FC ; =0x0202471D + ldr r3, _021D99FC ; =FUN_0202471C ldr r0, [r0] bx r3 nop -_021D99FC: .word 0x0202471D +_021D99FC: .word FUN_0202471C thumb_func_end MOD16_021D99F4 thumb_func_start MOD16_021D9A00 MOD16_021D9A00: ; 0x021D9A00 - ldr r3, _021D9A08 ; =0x020247A5 + ldr r3, _021D9A08 ; =FUN_020247A4 ldr r0, [r0] bx r3 nop -_021D9A08: .word 0x020247A5 +_021D9A08: .word FUN_020247A4 thumb_func_end MOD16_021D9A00 thumb_func_start MOD16_021D9A0C MOD16_021D9A0C: ; 0x021D9A0C - ldr r3, _021D9A14 ; =0x02024829 + ldr r3, _021D9A14 ; =FUN_02024828 ldr r0, [r0] bx r3 nop -_021D9A14: .word 0x02024829 +_021D9A14: .word FUN_02024828 thumb_func_end MOD16_021D9A0C thumb_func_start MOD16_021D9A18 MOD16_021D9A18: ; 0x021D9A18 - ldr r3, _021D9A20 ; =0x0202489D + ldr r3, _021D9A20 ; =FUN_0202489C ldr r0, [r0] bx r3 nop -_021D9A20: .word 0x0202489D +_021D9A20: .word FUN_0202489C thumb_func_end MOD16_021D9A18 thumb_func_start MOD16_021D9A24 MOD16_021D9A24: ; 0x021D9A24 - ldr r3, _021D9A2C ; =0x0202490D + ldr r3, _021D9A2C ; =FUN_0202490C ldr r0, [r0] bx r3 nop -_021D9A2C: .word 0x0202490D +_021D9A2C: .word FUN_0202490C thumb_func_end MOD16_021D9A24 thumb_func_start MOD16_021D9A30 MOD16_021D9A30: ; 0x021D9A30 - ldr r3, _021D9A38 ; =0x02024649 + ldr r3, _021D9A38 ; =FUN_02024648 ldr r0, [r0] mov r1, #0 bx r3 .align 2, 0 -_021D9A38: .word 0x02024649 +_021D9A38: .word FUN_02024648 thumb_func_end MOD16_021D9A30 thumb_func_start MOD16_021D9A3C MOD16_021D9A3C: ; 0x021D9A3C - ldr r3, _021D9A44 ; =0x02024931 + ldr r3, _021D9A44 ; =FUN_02024930 ldr r0, [r0] bx r3 nop -_021D9A44: .word 0x02024931 +_021D9A44: .word FUN_02024930 thumb_func_end MOD16_021D9A3C thumb_func_start MOD16_021D9A48 MOD16_021D9A48: ; 0x021D9A48 - ldr r3, _021D9A50 ; =0x02024971 + ldr r3, _021D9A50 ; =FUN_02024970 ldr r0, [r0] bx r3 nop -_021D9A50: .word 0x02024971 +_021D9A50: .word FUN_02024970 thumb_func_end MOD16_021D9A48 thumb_func_start MOD16_021D9A54 MOD16_021D9A54: ; 0x021D9A54 - ldr r3, _021D9A5C ; =0x02024CA5 + ldr r3, _021D9A5C ; =FUN_02024CA4 ldr r0, [r0] bx r3 nop -_021D9A5C: .word 0x02024CA5 +_021D9A5C: .word FUN_02024CA4 thumb_func_end MOD16_021D9A54 thumb_func_start MOD16_021D9A60 @@ -5709,11 +5709,11 @@ _021D9F72: thumb_func_start MOD16_021D9F80 MOD16_021D9F80: ; 0x021D9F80 - ldr r3, _021D9F88 ; =0x02024CC5 + ldr r3, _021D9F88 ; =FUN_02024CC4 ldr r0, [r0] bx r3 nop -_021D9F88: .word 0x02024CC5 +_021D9F88: .word FUN_02024CC4 thumb_func_end MOD16_021D9F80 thumb_func_start MOD16_021D9F8C @@ -8453,11 +8453,11 @@ MOD16_021DB388: ; 0x021DB388 thumb_func_start MOD16_021DB3BC MOD16_021DB3BC: ; 0x021DB3BC - ldr r3, _021DB3C4 ; =0x020191A5 + ldr r3, _021DB3C4 ; =FUN_020191A4 mov r1, #1 bx r3 nop -_021DB3C4: .word 0x020191A5 +_021DB3C4: .word FUN_020191A4 thumb_func_end MOD16_021DB3BC thumb_func_start MOD16_021DB3C8 @@ -8590,10 +8590,10 @@ _021DB49E: thumb_func_start MOD16_021DB4A8 MOD16_021DB4A8: ; 0x021DB4A8 - ldr r3, _021DB4AC ; =0x02016A19 + ldr r3, _021DB4AC ; =FUN_02016A18 bx r3 .align 2, 0 -_021DB4AC: .word 0x02016A19 +_021DB4AC: .word FUN_02016A18 thumb_func_end MOD16_021DB4A8 thumb_func_start MOD16_021DB4B0 @@ -9663,22 +9663,22 @@ _021DBBA8: thumb_func_start MOD16_021DBBAC MOD16_021DBBAC: ; 0x021DBBAC - ldr r3, _021DBBB0 ; =0x02021A21 + ldr r3, _021DBBB0 ; =FUN_02021A20 bx r3 .align 2, 0 -_021DBBB0: .word 0x02021A21 +_021DBBB0: .word FUN_02021A20 thumb_func_end MOD16_021DBBAC thumb_func_start MOD16_021DBBB4 MOD16_021DBBB4: ; 0x021DBBB4 add r1, r0, #1 ldr r0, _021DBBC0 ; =0x021FF568 - ldr r3, _021DBBC4 ; =0x02087A39 + ldr r3, _021DBBC4 ; =FUN_02087A38 ldrb r0, [r0, r1] bx r3 nop _021DBBC0: .word 0x021FF568 -_021DBBC4: .word 0x02087A39 +_021DBBC4: .word FUN_02087A38 thumb_func_end MOD16_021DBBB4 thumb_func_start MOD16_021DBBC8 @@ -28228,22 +28228,22 @@ _021E4534: thumb_func_start MOD16_021E4538 MOD16_021E4538: ; 0x021E4538 - ldr r3, _021E4540 ; =0x02020399 + ldr r3, _021E4540 ; =FUN_02020398 ldr r0, [r0] mov r1, #1 bx r3 .align 2, 0 -_021E4540: .word 0x02020399 +_021E4540: .word FUN_02020398 thumb_func_end MOD16_021E4538 thumb_func_start MOD16_021E4544 MOD16_021E4544: ; 0x021E4544 - ldr r3, _021E454C ; =0x02020399 + ldr r3, _021E454C ; =FUN_02020398 ldr r0, [r0] mov r1, #0 bx r3 .align 2, 0 -_021E454C: .word 0x02020399 +_021E454C: .word FUN_02020398 thumb_func_end MOD16_021E4544 thumb_func_start MOD16_021E4550 @@ -28576,11 +28576,11 @@ _021E47D4: .word 0x0000083F thumb_func_start MOD16_021E47D8 MOD16_021E47D8: ; 0x021E47D8 - ldr r3, _021E47E0 ; =0x0201FFC9 + ldr r3, _021E47E0 ; =FUN_0201FFC8 ldr r0, [r0] bx r3 nop -_021E47E0: .word 0x0201FFC9 +_021E47E0: .word FUN_0201FFC8 thumb_func_end MOD16_021E47D8 thumb_func_start MOD16_021E47E4 @@ -44846,13 +44846,13 @@ _021EC10C: .word 0x0000FFFF thumb_func_start MOD16_021EC110 MOD16_021EC110: ; 0x021EC110 - ldr r3, _021EC11C ; =0x02004829 + ldr r3, _021EC11C ; =FUN_02004828 add r1, r0, #0 mov r0, #8 mov r2, #0 bx r3 nop -_021EC11C: .word 0x02004829 +_021EC11C: .word FUN_02004828 thumb_func_end MOD16_021EC110 thumb_func_start MOD16_021EC120 @@ -45330,22 +45330,22 @@ _021EC456: thumb_func_start MOD16_021EC45C MOD16_021EC45C: ; 0x021EC45C - ldr r3, _021EC464 ; =0x02020399 + ldr r3, _021EC464 ; =FUN_02020398 ldr r0, [r0, #0x10] mov r1, #1 bx r3 .align 2, 0 -_021EC464: .word 0x02020399 +_021EC464: .word FUN_02020398 thumb_func_end MOD16_021EC45C thumb_func_start MOD16_021EC468 MOD16_021EC468: ; 0x021EC468 - ldr r3, _021EC470 ; =0x02020399 + ldr r3, _021EC470 ; =FUN_02020398 ldr r0, [r0, #0x10] mov r1, #0 bx r3 .align 2, 0 -_021EC470: .word 0x02020399 +_021EC470: .word FUN_02020398 thumb_func_end MOD16_021EC468 thumb_func_start MOD16_021EC474 @@ -45767,11 +45767,11 @@ _021EC7D0: .word 0x00001748 thumb_func_start MOD16_021EC7D4 MOD16_021EC7D4: ; 0x021EC7D4 - ldr r3, _021EC7DC ; =0x0201FFC9 + ldr r3, _021EC7DC ; =FUN_0201FFC8 ldr r0, [r0, #0x10] bx r3 nop -_021EC7DC: .word 0x0201FFC9 +_021EC7DC: .word FUN_0201FFC8 thumb_func_end MOD16_021EC7D4 thumb_func_start MOD16_021EC7E0 @@ -46079,13 +46079,13 @@ MOD16_021ECA48: ; 0x021ECA48 thumb_func_start MOD16_021ECA64 MOD16_021ECA64: ; 0x021ECA64 - ldr r3, _021ECA70 ; =0x02007559 + ldr r3, _021ECA70 ; =FUN_02007558 add r2, r1, #0 mov r1, #1 add r2, #0x58 bx r3 nop -_021ECA70: .word 0x02007559 +_021ECA70: .word FUN_02007558 thumb_func_end MOD16_021ECA64 thumb_func_start MOD16_021ECA74 @@ -49068,11 +49068,11 @@ MOD16_021EE110: ; 0x021EE110 thumb_func_start MOD16_021EE14C MOD16_021EE14C: ; 0x021EE14C - ldr r3, _021EE154 ; =0x02013EA9 + ldr r3, _021EE154 ; =FUN_02013EA8 ldr r0, [r0, #0xc] bx r3 nop -_021EE154: .word 0x02013EA9 +_021EE154: .word FUN_02013EA8 thumb_func_end MOD16_021EE14C thumb_func_start MOD16_021EE158 @@ -50660,11 +50660,11 @@ _021EECF4: .word 0x0000083F thumb_func_start MOD16_021EECF8 MOD16_021EECF8: ; 0x021EECF8 - ldr r3, _021EED00 ; =0x0201FFC9 + ldr r3, _021EED00 ; =FUN_0201FFC8 ldr r0, [r0] bx r3 nop -_021EED00: .word 0x0201FFC9 +_021EED00: .word FUN_0201FFC8 thumb_func_end MOD16_021EECF8 thumb_func_start MOD16_021EED04 @@ -51798,11 +51798,11 @@ _021EF5DA: thumb_func_start MOD16_021EF5E0 MOD16_021EF5E0: ; 0x021EF5E0 - ldr r3, _021EF5E8 ; =0x0201FFC9 + ldr r3, _021EF5E8 ; =FUN_0201FFC8 ldr r0, [r0] bx r3 nop -_021EF5E8: .word 0x0201FFC9 +_021EF5E8: .word FUN_0201FFC8 thumb_func_end MOD16_021EF5E0 thumb_func_start MOD16_021EF5EC @@ -51848,11 +51848,11 @@ _021EF62E: thumb_func_start MOD16_021EF63C MOD16_021EF63C: ; 0x021EF63C - ldr r3, _021EF644 ; =0x0201FFC9 + ldr r3, _021EF644 ; =FUN_0201FFC8 ldr r0, [r0] bx r3 nop -_021EF644: .word 0x0201FFC9 +_021EF644: .word FUN_0201FFC8 thumb_func_end MOD16_021EF63C thumb_func_start MOD16_021EF648 @@ -52482,10 +52482,10 @@ _021EFB14: .word 0x00200010 thumb_func_start MOD16_021EFB18 MOD16_021EFB18: ; 0x021EFB18 - ldr r3, _021EFB1C ; =0x0201D12D + ldr r3, _021EFB1C ; =FUN_0201D12C bx r3 .align 2, 0 -_021EFB1C: .word 0x0201D12D +_021EFB1C: .word FUN_0201D12C thumb_func_end MOD16_021EFB18 thumb_func_start MOD16_021EFB20 diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s index b839403b..68f06a9b 100644 --- a/arm9/modules/17/asm/module_17.s +++ b/arm9/modules/17/asm/module_17.s @@ -159,11 +159,11 @@ MOD17_021D75DC: ; 0x021D75DC thumb_func_start MOD17_021D75F4 MOD17_021D75F4: ; 0x021D75F4 - ldr r3, _021D75FC ; =0x02013EC5 + ldr r3, _021D75FC ; =FUN_02013EC4 ldr r0, [r0, #4] bx r3 nop -_021D75FC: .word 0x02013EC5 +_021D75FC: .word FUN_02013EC4 thumb_func_end MOD17_021D75F4 thumb_func_start MOD17_021D7600 @@ -222,29 +222,29 @@ MOD17_021D7630: ; 0x021D7630 thumb_func_start MOD17_021D7660 MOD17_021D7660: ; 0x021D7660 - ldr r3, _021D7668 ; =0x02013EB1 + ldr r3, _021D7668 ; =FUN_02013EB0 ldr r0, [r0, #4] bx r3 nop -_021D7668: .word 0x02013EB1 +_021D7668: .word FUN_02013EB0 thumb_func_end MOD17_021D7660 thumb_func_start MOD17_021D766C MOD17_021D766C: ; 0x021D766C - ldr r3, _021D7674 ; =0x02013EFD + ldr r3, _021D7674 ; =FUN_02013EFC ldr r0, [r0, #4] bx r3 nop -_021D7674: .word 0x02013EFD +_021D7674: .word FUN_02013EFC thumb_func_end MOD17_021D766C thumb_func_start MOD17_021D7678 MOD17_021D7678: ; 0x021D7678 - ldr r3, _021D7680 ; =0x02013F01 + ldr r3, _021D7680 ; =FUN_02013F00 ldr r0, [r0, #4] bx r3 nop -_021D7680: .word 0x02013F01 +_021D7680: .word FUN_02013F00 thumb_func_end MOD17_021D7678 thumb_func_start MOD17_021D7684 @@ -1016,21 +1016,21 @@ MOD17_021D7BE4: ; 0x021D7BE4 thumb_func_start MOD17_021D7C10 MOD17_021D7C10: ; 0x021D7C10 - ldr r3, _021D7C18 ; =0x020178A1 + ldr r3, _021D7C18 ; =FUN_020178A0 ldr r0, [r0, #0x38] mov r1, #2 bx r3 .align 2, 0 -_021D7C18: .word 0x020178A1 +_021D7C18: .word FUN_020178A0 thumb_func_end MOD17_021D7C10 thumb_func_start MOD17_021D7C1C MOD17_021D7C1C: ; 0x021D7C1C - ldr r3, _021D7C24 ; =0x020081C5 + ldr r3, _021D7C24 ; =FUN_020081C4 ldr r0, [r0, #0x20] bx r3 nop -_021D7C24: .word 0x020081C5 +_021D7C24: .word FUN_020081C4 thumb_func_end MOD17_021D7C1C thumb_func_start MOD17_021D7C28 @@ -1330,11 +1330,11 @@ MOD17_021D7E58: ; 0x021D7E58 thumb_func_start MOD17_021D7E68 MOD17_021D7E68: ; 0x021D7E68 - ldr r3, _021D7E70 ; =0x02013D5D + ldr r3, _021D7E70 ; =FUN_02013D5C ldr r0, [r0] bx r3 nop -_021D7E70: .word 0x02013D5D +_021D7E70: .word FUN_02013D5C thumb_func_end MOD17_021D7E68 thumb_func_start MOD17_021D7E74 @@ -1730,11 +1730,11 @@ _021D8178: thumb_func_start MOD17_021D8194 MOD17_021D8194: ; 0x021D8194 - ldr r3, _021D819C ; =0x0201FDED + ldr r3, _021D819C ; =FUN_0201FDEC ldr r0, [r0, #0x3c] bx r3 nop -_021D819C: .word 0x0201FDED +_021D819C: .word FUN_0201FDEC thumb_func_end MOD17_021D8194 thumb_func_start MOD17_021D81A0 @@ -1956,11 +1956,11 @@ _021D8348: .word 0xFFFF0000 thumb_func_start MOD17_021D834C MOD17_021D834C: ; 0x021D834C - ldr r3, _021D8354 ; =0x020072E9 + ldr r3, _021D8354 ; =FUN_020072E8 ldr r0, [r0, #0x20] bx r3 nop -_021D8354: .word 0x020072E9 +_021D8354: .word FUN_020072E8 thumb_func_end MOD17_021D834C thumb_func_start MOD17_021D8358 @@ -8952,23 +8952,23 @@ _021DB7CE: thumb_func_start MOD17_021DB7D8 MOD17_021DB7D8: ; 0x021DB7D8 - ldr r3, _021DB7E4 ; =0x02007559 + ldr r3, _021DB7E4 ; =FUN_02007558 add r2, r1, #0 ldr r0, [r0] mov r1, #2 bx r3 nop -_021DB7E4: .word 0x02007559 +_021DB7E4: .word FUN_02007558 thumb_func_end MOD17_021DB7D8 thumb_func_start MOD17_021DB7E8 MOD17_021DB7E8: ; 0x021DB7E8 - ldr r3, _021DB7F0 ; =0x0200782D + ldr r3, _021DB7F0 ; =FUN_0200782C ldr r0, [r0] mov r1, #2 bx r3 .align 2, 0 -_021DB7F0: .word 0x0200782D +_021DB7F0: .word FUN_0200782C thumb_func_end MOD17_021DB7E8 thumb_func_start MOD17_021DB7F4 @@ -9011,20 +9011,20 @@ MOD17_021DB7F4: ; 0x021DB7F4 thumb_func_start MOD17_021DB840 MOD17_021DB840: ; 0x021DB840 - ldr r3, _021DB848 ; =0x02020A41 + ldr r3, _021DB848 ; =FUN_02020A40 add r0, r0, #4 bx r3 nop -_021DB848: .word 0x02020A41 +_021DB848: .word FUN_02020A40 thumb_func_end MOD17_021DB840 thumb_func_start MOD17_021DB84C MOD17_021DB84C: ; 0x021DB84C - ldr r3, _021DB854 ; =0x02020AE9 + ldr r3, _021DB854 ; =FUN_02020AE8 add r0, r0, #4 bx r3 nop -_021DB854: .word 0x02020AE9 +_021DB854: .word FUN_02020AE8 thumb_func_end MOD17_021DB84C thumb_func_start MOD17_021DB858 @@ -10513,32 +10513,32 @@ MOD17_021DC2DC: ; 0x021DC2DC thumb_func_start MOD17_021DC2E0 MOD17_021DC2E0: ; 0x021DC2E0 - ldr r3, _021DC2E8 ; =0x02020209 + ldr r3, _021DC2E8 ; =FUN_02020208 ldr r0, [r0] mov r1, #2 bx r3 .align 2, 0 -_021DC2E8: .word 0x02020209 +_021DC2E8: .word FUN_02020208 thumb_func_end MOD17_021DC2E0 thumb_func_start MOD17_021DC2EC MOD17_021DC2EC: ; 0x021DC2EC - ldr r3, _021DC2F4 ; =0x02020209 + ldr r3, _021DC2F4 ; =FUN_02020208 ldr r0, [r0] mov r1, #0 bx r3 .align 2, 0 -_021DC2F4: .word 0x02020209 +_021DC2F4: .word FUN_02020208 thumb_func_end MOD17_021DC2EC thumb_func_start MOD17_021DC2F8 MOD17_021DC2F8: ; 0x021DC2F8 - ldr r3, _021DC300 ; =0x02020209 + ldr r3, _021DC300 ; =FUN_02020208 ldr r0, [r0] mov r1, #1 bx r3 .align 2, 0 -_021DC300: .word 0x02020209 +_021DC300: .word FUN_02020208 thumb_func_end MOD17_021DC2F8 thumb_func_start MOD17_021DC304 @@ -11304,11 +11304,11 @@ _021DC8F4: .word 0x00010203 thumb_func_start MOD17_021DC8F8 MOD17_021DC8F8: ; 0x021DC8F8 - ldr r3, _021DC900 ; =0x020191A5 + ldr r3, _021DC900 ; =FUN_020191A4 mov r1, #1 bx r3 nop -_021DC900: .word 0x020191A5 +_021DC900: .word FUN_020191A4 thumb_func_end MOD17_021DC8F8 thumb_func_start MOD17_021DC904 @@ -11844,11 +11844,11 @@ _021DCCDC: .word MOD17_021DBD4C thumb_func_start MOD17_021DCCE0 MOD17_021DCCE0: ; 0x021DCCE0 - ldr r3, _021DCCE8 ; =0x020191A5 + ldr r3, _021DCCE8 ; =FUN_020191A4 mov r1, #1 bx r3 nop -_021DCCE8: .word 0x020191A5 +_021DCCE8: .word FUN_020191A4 thumb_func_end MOD17_021DCCE0 thumb_func_start MOD17_021DCCEC diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index f6e4bcea..4a32f55f 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -6785,10 +6785,10 @@ _0223CB58: .word 0x00000808 thumb_func_start MOD18_0223CB5C MOD18_0223CB5C: ; 0x0223CB5C - ldr r3, _0223CB60 ; =0x0204F7FD + ldr r3, _0223CB60 ; =FUN_0204F7FC bx r3 .align 2, 0 -_0223CB60: .word 0x0204F7FD +_0223CB60: .word FUN_0204F7FC thumb_func_end MOD18_0223CB5C thumb_func_start MOD18_0223CB64 @@ -11161,10 +11161,10 @@ _0223ECD8: .word 0x022513A0 thumb_func_start MOD18_0223ECDC MOD18_0223ECDC: ; 0x0223ECDC - ldr r3, _0223ECE0 ; =0x0204F7FD + ldr r3, _0223ECE0 ; =FUN_0204F7FC bx r3 .align 2, 0 -_0223ECE0: .word 0x0204F7FD +_0223ECE0: .word FUN_0204F7FC thumb_func_end MOD18_0223ECDC thumb_func_start MOD18_0223ECE4 @@ -11550,7 +11550,7 @@ _0223EF78: .word MOD18_02240C8C thumb_func_start MOD18_0223EF7C MOD18_0223EF7C: ; 0x0223EF7C ldr r1, _0223EF90 ; =0x022513A0 - ldr r3, _0223EF94 ; =0x0203105D + ldr r3, _0223EF94 ; =FUN_0203105C ldr r2, [r1, #4] mov r1, #0xa9 lsl r1, r1, #2 @@ -11560,7 +11560,7 @@ MOD18_0223EF7C: ; 0x0223EF7C bx r3 nop _0223EF90: .word 0x022513A0 -_0223EF94: .word 0x0203105D +_0223EF94: .word FUN_0203105C thumb_func_end MOD18_0223EF7C thumb_func_start MOD18_0223EF98 @@ -13519,20 +13519,20 @@ MOD18_0223FE98: ; 0x0223FE98 thumb_func_start MOD18_0223FEAC MOD18_0223FEAC: ; 0x0223FEAC - ldr r3, _0223FEB4 ; =0x0204E759 + ldr r3, _0223FEB4 ; =FUN_0204E758 mov r1, #2 bx r3 nop -_0223FEB4: .word 0x0204E759 +_0223FEB4: .word FUN_0204E758 thumb_func_end MOD18_0223FEAC thumb_func_start MOD18_0223FEB8 MOD18_0223FEB8: ; 0x0223FEB8 - ldr r3, _0223FEC0 ; =0x0204E759 + ldr r3, _0223FEC0 ; =FUN_0204E758 mov r1, #2 bx r3 nop -_0223FEC0: .word 0x0204E759 +_0223FEC0: .word FUN_0204E758 thumb_func_end MOD18_0223FEB8 thumb_func_start MOD18_0223FEC4 @@ -13549,82 +13549,82 @@ MOD18_0223FEC4: ; 0x0223FEC4 thumb_func_start MOD18_0223FED8 MOD18_0223FED8: ; 0x0223FED8 - ldr r3, _0223FEE0 ; =0x0204E179 + ldr r3, _0223FEE0 ; =FUN_0204E178 mov r1, #0 add r2, r1, #0 bx r3 .align 2, 0 -_0223FEE0: .word 0x0204E179 +_0223FEE0: .word FUN_0204E178 thumb_func_end MOD18_0223FED8 thumb_func_start MOD18_0223FEE4 MOD18_0223FEE4: ; 0x0223FEE4 - ldr r3, _0223FEEC ; =0x0204E179 + ldr r3, _0223FEEC ; =FUN_0204E178 mov r1, #1 mov r2, #0 bx r3 .align 2, 0 -_0223FEEC: .word 0x0204E179 +_0223FEEC: .word FUN_0204E178 thumb_func_end MOD18_0223FEE4 thumb_func_start MOD18_0223FEF0 MOD18_0223FEF0: ; 0x0223FEF0 - ldr r3, _0223FEF8 ; =0x0204E179 + ldr r3, _0223FEF8 ; =FUN_0204E178 mov r1, #2 mov r2, #0 bx r3 .align 2, 0 -_0223FEF8: .word 0x0204E179 +_0223FEF8: .word FUN_0204E178 thumb_func_end MOD18_0223FEF0 thumb_func_start MOD18_0223FEFC MOD18_0223FEFC: ; 0x0223FEFC - ldr r3, _0223FF04 ; =0x0204E179 + ldr r3, _0223FF04 ; =FUN_0204E178 mov r1, #3 mov r2, #0 bx r3 .align 2, 0 -_0223FF04: .word 0x0204E179 +_0223FF04: .word FUN_0204E178 thumb_func_end MOD18_0223FEFC thumb_func_start MOD18_0223FF08 MOD18_0223FF08: ; 0x0223FF08 - ldr r3, _0223FF10 ; =0x0204E179 + ldr r3, _0223FF10 ; =FUN_0204E178 mov r1, #0 mov r2, #1 bx r3 .align 2, 0 -_0223FF10: .word 0x0204E179 +_0223FF10: .word FUN_0204E178 thumb_func_end MOD18_0223FF08 thumb_func_start MOD18_0223FF14 MOD18_0223FF14: ; 0x0223FF14 - ldr r3, _0223FF1C ; =0x0204E179 + ldr r3, _0223FF1C ; =FUN_0204E178 mov r1, #1 add r2, r1, #0 bx r3 .align 2, 0 -_0223FF1C: .word 0x0204E179 +_0223FF1C: .word FUN_0204E178 thumb_func_end MOD18_0223FF14 thumb_func_start MOD18_0223FF20 MOD18_0223FF20: ; 0x0223FF20 - ldr r3, _0223FF28 ; =0x0204E179 + ldr r3, _0223FF28 ; =FUN_0204E178 mov r1, #2 mov r2, #1 bx r3 .align 2, 0 -_0223FF28: .word 0x0204E179 +_0223FF28: .word FUN_0204E178 thumb_func_end MOD18_0223FF20 thumb_func_start MOD18_0223FF2C MOD18_0223FF2C: ; 0x0223FF2C - ldr r3, _0223FF34 ; =0x0204E179 + ldr r3, _0223FF34 ; =FUN_0204E178 mov r1, #3 mov r2, #1 bx r3 .align 2, 0 -_0223FF34: .word 0x0204E179 +_0223FF34: .word FUN_0204E178 thumb_func_end MOD18_0223FF2C thumb_func_start MOD18_0223FF38 @@ -18630,11 +18630,11 @@ _022425C4: .word 0x022513A0 thumb_func_start MOD18_022425C8 MOD18_022425C8: ; 0x022425C8 - ldr r3, _022425D0 ; =0x0204E759 + ldr r3, _022425D0 ; =FUN_0204E758 mov r1, #2 bx r3 nop -_022425D0: .word 0x0204E759 +_022425D0: .word FUN_0204E758 thumb_func_end MOD18_022425C8 thumb_func_start MOD18_022425D4 @@ -20189,11 +20189,11 @@ _0224321C: .word 0x022513A0 thumb_func_start MOD18_02243220 MOD18_02243220: ; 0x02243220 - ldr r3, _02243228 ; =0x0204E759 + ldr r3, _02243228 ; =FUN_0204E758 mov r1, #2 bx r3 nop -_02243228: .word 0x0204E759 +_02243228: .word FUN_0204E758 thumb_func_end MOD18_02243220 thumb_func_start MOD18_0224322C @@ -20943,11 +20943,11 @@ _02243808: .word 0x022513A0 thumb_func_start MOD18_0224380C MOD18_0224380C: ; 0x0224380C - ldr r3, _02243814 ; =0x0204E759 + ldr r3, _02243814 ; =FUN_0204E758 mov r1, #2 bx r3 nop -_02243814: .word 0x0204E759 +_02243814: .word FUN_0204E758 thumb_func_end MOD18_0224380C thumb_func_start MOD18_02243818 @@ -21213,11 +21213,11 @@ _02243A14: .word 0x022513A0 thumb_func_start MOD18_02243A18 MOD18_02243A18: ; 0x02243A18 - ldr r3, _02243A20 ; =0x0204E759 + ldr r3, _02243A20 ; =FUN_0204E758 mov r1, #2 bx r3 nop -_02243A20: .word 0x0204E759 +_02243A20: .word FUN_0204E758 thumb_func_end MOD18_02243A18 thumb_func_start MOD18_02243A24 @@ -24592,10 +24592,10 @@ _022453DC: .word 0x00001284 thumb_func_start MOD18_022453E0 MOD18_022453E0: ; 0x022453E0 - ldr r3, _022453E4 ; =0x0204F7FD + ldr r3, _022453E4 ; =FUN_0204F7FC bx r3 .align 2, 0 -_022453E4: .word 0x0204F7FD +_022453E4: .word FUN_0204F7FC thumb_func_end MOD18_022453E0 thumb_func_start MOD18_022453E8 @@ -26007,11 +26007,11 @@ _02245F18: .word 0x000013E6 thumb_func_start MOD18_02245F1C MOD18_02245F1C: ; 0x02245F1C - ldr r3, _02245F24 ; =0x020311DD + ldr r3, _02245F24 ; =FUN_020311DC mov r0, #0x38 bx r3 nop -_02245F24: .word 0x020311DD +_02245F24: .word FUN_020311DC thumb_func_end MOD18_02245F1C thumb_func_start MOD18_02245F28 @@ -31952,22 +31952,22 @@ _02248E68: .word 0x00002710 thumb_func_start MOD18_02248E6C MOD18_02248E6C: ; 0x02248E6C - ldr r3, _02248E74 ; =0x02030C4D + ldr r3, _02248E74 ; =FUN_02030C4C mov r0, #0x4b add r1, r2, #0 bx r3 .align 2, 0 -_02248E74: .word 0x02030C4D +_02248E74: .word FUN_02030C4C thumb_func_end MOD18_02248E6C thumb_func_start MOD18_02248E78 MOD18_02248E78: ; 0x02248E78 - ldr r3, _02248E80 ; =0x02030C4D + ldr r3, _02248E80 ; =FUN_02030C4C mov r0, #0x4c add r1, r2, #0 bx r3 .align 2, 0 -_02248E80: .word 0x02030C4D +_02248E80: .word FUN_02030C4C thumb_func_end MOD18_02248E78 thumb_func_start MOD18_02248E84 @@ -32040,12 +32040,12 @@ MOD18_02248EF0: ; 0x02248EF0 thumb_func_start MOD18_02248EF4 MOD18_02248EF4: ; 0x02248EF4 - ldr r3, _02248EFC ; =0x02030C4D + ldr r3, _02248EFC ; =FUN_02030C4C mov r0, #0x4e add r1, r2, #0 bx r3 .align 2, 0 -_02248EFC: .word 0x02030C4D +_02248EFC: .word FUN_02030C4C thumb_func_end MOD18_02248EF4 thumb_func_start MOD18_02248F00 @@ -32114,12 +32114,12 @@ MOD18_02248F74: ; 0x02248F74 thumb_func_start MOD18_02248F78 MOD18_02248F78: ; 0x02248F78 - ldr r3, _02248F80 ; =0x02030C4D + ldr r3, _02248F80 ; =FUN_02030C4C mov r0, #0x50 add r1, r2, #0 bx r3 .align 2, 0 -_02248F80: .word 0x02030C4D +_02248F80: .word FUN_02030C4C thumb_func_end MOD18_02248F78 thumb_func_start MOD18_02248F84 @@ -32612,12 +32612,12 @@ _02249324: .word 0x022513F8 thumb_func_start MOD18_02249328 MOD18_02249328: ; 0x02249328 ldr r0, _02249330 ; =0x022513F8 - ldr r3, _02249334 ; =0x02016A19 + ldr r3, _02249334 ; =FUN_02016A18 ldr r0, [r0] bx r3 .align 2, 0 _02249330: .word 0x022513F8 -_02249334: .word 0x02016A19 +_02249334: .word FUN_02016A18 thumb_func_end MOD18_02249328 thumb_func_start MOD18_02249338 @@ -32823,26 +32823,26 @@ _0224949C: .word 0x022513F8 MOD18_022494A0: ; 0x022494A0 add r1, r0, #0 ldr r0, _022494AC ; =0x022513F8 - ldr r3, _022494B0 ; =0x02026299 + ldr r3, _022494B0 ; =FUN_02026298 ldr r0, [r0] ldr r0, [r0] bx r3 .align 2, 0 _022494AC: .word 0x022513F8 -_022494B0: .word 0x02026299 +_022494B0: .word FUN_02026298 thumb_func_end MOD18_022494A0 thumb_func_start MOD18_022494B4 MOD18_022494B4: ; 0x022494B4 add r1, r0, #0 ldr r0, _022494C0 ; =0x022513F8 - ldr r3, _022494C4 ; =0x02025FD9 + ldr r3, _022494C4 ; =FUN_02025FD8 ldr r0, [r0] ldr r0, [r0] bx r3 .align 2, 0 _022494C0: .word 0x022513F8 -_022494C4: .word 0x02025FD9 +_022494C4: .word FUN_02025FD8 thumb_func_end MOD18_022494B4 thumb_func_start MOD18_022494C8 @@ -34102,7 +34102,7 @@ MOD18_02249EF4: ; 0x02249EF4 str r1, [r0, r2] ldr r1, _02249F24 ; =MOD18_02249EBC str r1, [r0, #0x60] - ldr r1, _02249F28 ; =0x020260ED + ldr r1, _02249F28 ; =FUN_020260EC bx r3 nop _02249F14: .word MOD18_022493C8 @@ -34110,7 +34110,7 @@ _02249F18: .word MOD18_022493F4 _02249F1C: .word MOD18_0224940C _02249F20: .word MOD18_02249F8C _02249F24: .word MOD18_02249EBC -_02249F28: .word 0x020260ED +_02249F28: .word FUN_020260EC thumb_func_end MOD18_02249EF4 thumb_func_start MOD18_02249F2C @@ -34145,7 +34145,7 @@ MOD18_02249F2C: ; 0x02249F2C ldr r0, [r4, r0] add r1, #0x1c strh r0, [r4, r1] - ldr r1, _02249F88 ; =0x020260ED + ldr r1, _02249F88 ; =FUN_020260EC add r0, r4, #0 bl MOD18_02249F8C pop {r4, pc} @@ -34154,7 +34154,7 @@ _02249F78: .word MOD18_022493C8 _02249F7C: .word MOD18_022493F4 _02249F80: .word MOD18_0224940C _02249F84: .word MOD18_02249EBC -_02249F88: .word 0x020260ED +_02249F88: .word FUN_020260EC thumb_func_end MOD18_02249F2C thumb_func_start MOD18_02249F8C @@ -35487,7 +35487,7 @@ MOD18_0224AA4C: ; 0x0224AA4C ldr r0, [r4, r0] add r1, #0x1c strh r0, [r4, r1] - ldr r1, _0224AAA0 ; =0x02025FFD + ldr r1, _0224AAA0 ; =FUN_02025FFC add r0, r4, #0 bl MOD18_0224AB08 pop {r4, pc} @@ -35495,7 +35495,7 @@ MOD18_0224AA4C: ; 0x0224AA4C _0224AA94: .word MOD18_02249378 _0224AA98: .word MOD18_0224938C _0224AA9C: .word MOD18_0224A9B4 -_0224AAA0: .word 0x02025FFD +_0224AAA0: .word FUN_02025FFC thumb_func_end MOD18_0224AA4C thumb_func_start MOD18_0224AAA4 @@ -35512,14 +35512,14 @@ MOD18_0224AAA4: ; 0x0224AAA4 str r1, [r0, #0x60] mov r1, #0 str r1, [r0, #0x64] - ldr r1, _0224AAD0 ; =0x02025FFD + ldr r1, _0224AAD0 ; =FUN_02025FFC bx r3 .align 2, 0 _0224AAC0: .word MOD18_02249378 _0224AAC4: .word MOD18_0224938C _0224AAC8: .word MOD18_0224A9B4 _0224AACC: .word MOD18_0224AB08 -_0224AAD0: .word 0x02025FFD +_0224AAD0: .word FUN_02025FFC thumb_func_end MOD18_0224AAA4 thumb_func_start MOD18_0224AAD4 @@ -35536,7 +35536,7 @@ MOD18_0224AAD4: ; 0x0224AAD4 str r1, [r0, #0x60] ldr r1, _0224AB00 ; =MOD18_0224A9EC str r1, [r0, #0x64] - ldr r1, _0224AB04 ; =0x02025E21 + ldr r1, _0224AB04 ; =FUN_02025E20 bx r3 .align 2, 0 _0224AAF0: .word MOD18_0224934C @@ -35544,7 +35544,7 @@ _0224AAF4: .word MOD18_02249360 _0224AAF8: .word MOD18_0224A9B4 _0224AAFC: .word MOD18_0224AB08 _0224AB00: .word MOD18_0224A9EC -_0224AB04: .word 0x02025E21 +_0224AB04: .word FUN_02025E20 thumb_func_end MOD18_0224AAD4 thumb_func_start MOD18_0224AB08 @@ -36307,11 +36307,11 @@ _0224B118: thumb_func_start MOD18_0224B11C MOD18_0224B11C: ; 0x0224B11C - ldr r3, _0224B124 ; =0x0204F775 + ldr r3, _0224B124 ; =FUN_0204F774 mov r0, #0x40 bx r3 nop -_0224B124: .word 0x0204F775 +_0224B124: .word FUN_0204F774 thumb_func_end MOD18_0224B11C thumb_func_start MOD18_0224B128 @@ -40932,11 +40932,11 @@ MOD18_0224D734: ; 0x0224D734 add r3, r1, #0 add r1, r2, #0 add r2, r3, #0 - ldr r3, _0224D740 ; =0x02030BC5 + ldr r3, _0224D740 ; =FUN_02030BC4 mov r0, #0x52 bx r3 .align 2, 0 -_0224D740: .word 0x02030BC5 +_0224D740: .word FUN_02030BC4 thumb_func_end MOD18_0224D734 thumb_func_start MOD18_0224D744 @@ -40990,10 +40990,10 @@ _0224D790: .word 0x022513FC thumb_func_start MOD18_0224D794 MOD18_0224D794: ; 0x0224D794 - ldr r3, _0224D798 ; =0x0204F7FD + ldr r3, _0224D798 ; =FUN_0204F7FC bx r3 .align 2, 0 -_0224D798: .word 0x0204F7FD +_0224D798: .word FUN_0204F7FC thumb_func_end MOD18_0224D794 thumb_func_start MOD18_0224D79C @@ -42024,11 +42024,11 @@ MOD18_0224DF40: ; 0x0224DF40 thumb_func_start MOD18_0224DF54 MOD18_0224DF54: ; 0x0224DF54 - ldr r3, _0224DF5C ; =0x0200B7A9 + ldr r3, _0224DF5C ; =FUN_0200B7A8 ldr r0, [r0, #0x28] bx r3 nop -_0224DF5C: .word 0x0200B7A9 +_0224DF5C: .word FUN_0200B7A8 thumb_func_end MOD18_0224DF54 thumb_func_start MOD18_0224DF60 @@ -42156,12 +42156,12 @@ _0224E018: .word 0x0225074A thumb_func_start MOD18_0224E01C MOD18_0224E01C: ; 0x0224E01C - ldr r3, _0224E024 ; =0x02016999 + ldr r3, _0224E024 ; =FUN_02016998 mov r0, #4 mov r1, #0x44 bx r3 .align 2, 0 -_0224E024: .word 0x02016999 +_0224E024: .word FUN_02016998 thumb_func_end MOD18_0224E01C thumb_func_start MOD18_0224E028 @@ -42194,10 +42194,10 @@ _0224E058: .word 0x000003D9 thumb_func_start MOD18_0224E05C MOD18_0224E05C: ; 0x0224E05C - ldr r3, _0224E060 ; =0x02016A19 + ldr r3, _0224E060 ; =FUN_02016A18 bx r3 .align 2, 0 -_0224E060: .word 0x02016A19 +_0224E060: .word FUN_02016A18 thumb_func_end MOD18_0224E05C thumb_func_start MOD18_0224E064 @@ -42508,12 +42508,12 @@ _0224E2CC: thumb_func_start MOD18_0224E2D8 MOD18_0224E2D8: ; 0x0224E2D8 - ldr r3, _0224E2E0 ; =0x02016999 + ldr r3, _0224E2E0 ; =FUN_02016998 mov r0, #4 mov r1, #0x4c bx r3 .align 2, 0 -_0224E2E0: .word 0x02016999 +_0224E2E0: .word FUN_02016998 thumb_func_end MOD18_0224E2D8 thumb_func_start MOD18_0224E2E4 @@ -42555,10 +42555,10 @@ MOD18_0224E314: ; 0x0224E314 thumb_func_start MOD18_0224E320 MOD18_0224E320: ; 0x0224E320 - ldr r3, _0224E324 ; =0x02016A19 + ldr r3, _0224E324 ; =FUN_02016A18 bx r3 .align 2, 0 -_0224E324: .word 0x02016A19 +_0224E324: .word FUN_02016A18 thumb_func_end MOD18_0224E320 thumb_func_start MOD18_0224E328 @@ -42930,7 +42930,7 @@ _0224E5CE: ldr r0, _0224E6A0 ; =MOD18_0224E3F0 str r7, [sp, #0x4c] str r0, [sp, #0x34] - ldr r0, _0224E6A4 ; =0x02025E21 + ldr r0, _0224E6A4 ; =FUN_02025E20 str r0, [sp] str r7, [sp, #4] mov r0, #1 @@ -42978,7 +42978,7 @@ _0224E694: .word 0x00000115 _0224E698: .word 0x022507D0 _0224E69C: .word MOD18_0224E2B4 _0224E6A0: .word MOD18_0224E3F0 -_0224E6A4: .word 0x02025E21 +_0224E6A4: .word FUN_02025E20 thumb_func_end MOD18_0224E430 thumb_func_start MOD18_0224E6A8 @@ -43142,13 +43142,13 @@ _0224E776: thumb_func_start MOD18_0224E7E4 MOD18_0224E7E4: ; 0x0224E7E4 add r2, r0, #0 - ldr r3, _0224E7F0 ; =0x021E7C81 + ldr r3, _0224E7F0 ; =MOD05_021E7C80 add r2, #0xa0 add r0, r1, #0 ldr r1, [r2] bx r3 .align 2, 0 -_0224E7F0: .word 0x021E7C81 +_0224E7F0: .word MOD05_021E7C80 thumb_func_end MOD18_0224E7E4 thumb_func_start MOD18_0224E7F4 @@ -45659,11 +45659,11 @@ _0224FBC4: .word 0x02251350 thumb_func_start MOD18_0224FBC8 MOD18_0224FBC8: ; 0x0224FBC8 - ldr r3, _0224FBD0 ; =0x02016A19 + ldr r3, _0224FBD0 ; =FUN_02016A18 ldr r0, [r0, #0x54] bx r3 nop -_0224FBD0: .word 0x02016A19 +_0224FBD0: .word FUN_02016A18 thumb_func_end MOD18_0224FBC8 thumb_func_start MOD18_0224FBD4 diff --git a/arm9/modules/21/asm/module_21.s b/arm9/modules/21/asm/module_21.s index 0c30eb9a..45ec356b 100644 --- a/arm9/modules/21/asm/module_21.s +++ b/arm9/modules/21/asm/module_21.s @@ -423,20 +423,20 @@ _02254B30: .word 0x02254DAC thumb_func_start MOD21_02254B34 MOD21_02254B34: ; 0x02254B34 - ldr r3, _02254B3C ; =0x02253795 + ldr r3, _02254B3C ; =MOD20_02253794 add r0, #8 bx r3 nop -_02254B3C: .word 0x02253795 +_02254B3C: .word MOD20_02253794 thumb_func_end MOD21_02254B34 thumb_func_start MOD21_02254B40 MOD21_02254B40: ; 0x02254B40 - ldr r3, _02254B48 ; =0x022537B9 + ldr r3, _02254B48 ; =MOD20_022537B8 add r0, #8 bx r3 nop -_02254B48: .word 0x022537B9 +_02254B48: .word MOD20_022537B8 thumb_func_end MOD21_02254B40 thumb_func_start MOD21_02254B4C diff --git a/arm9/modules/22/asm/module_22.s b/arm9/modules/22/asm/module_22.s index 610d0a55..5a63c8bc 100644 --- a/arm9/modules/22/asm/module_22.s +++ b/arm9/modules/22/asm/module_22.s @@ -626,11 +626,11 @@ _02254CD0: .word MOD22_02254CE0 thumb_func_start MOD22_02254CD4 MOD22_02254CD4: ; 0x02254CD4 - ldr r3, _02254CDC ; =0x02254199 + ldr r3, _02254CDC ; =MOD20_02254198 ldr r0, [r0, #0x5c] bx r3 nop -_02254CDC: .word 0x02254199 +_02254CDC: .word MOD20_02254198 thumb_func_end MOD22_02254CD4 thumb_func_start MOD22_02254CE0 @@ -1124,20 +1124,20 @@ _02255068: .word 0x02255670 thumb_func_start MOD22_0225506C MOD22_0225506C: ; 0x0225506C - ldr r3, _02255074 ; =0x02253795 + ldr r3, _02255074 ; =MOD20_02253794 add r0, #8 bx r3 nop -_02255074: .word 0x02253795 +_02255074: .word MOD20_02253794 thumb_func_end MOD22_0225506C thumb_func_start MOD22_02255078 MOD22_02255078: ; 0x02255078 - ldr r3, _02255080 ; =0x022537B9 + ldr r3, _02255080 ; =MOD20_022537B8 add r0, #8 bx r3 nop -_02255080: .word 0x022537B9 +_02255080: .word MOD20_022537B8 thumb_func_end MOD22_02255078 thumb_func_start MOD22_02255084 diff --git a/arm9/modules/23/asm/module_23.s b/arm9/modules/23/asm/module_23.s index a5adabbb..acb9bed3 100644 --- a/arm9/modules/23/asm/module_23.s +++ b/arm9/modules/23/asm/module_23.s @@ -1123,20 +1123,20 @@ _02255058: .word 0x02256040 thumb_func_start MOD23_0225505C MOD23_0225505C: ; 0x0225505C - ldr r3, _02255064 ; =0x02253795 + ldr r3, _02255064 ; =MOD20_02253794 add r0, #8 bx r3 nop -_02255064: .word 0x02253795 +_02255064: .word MOD20_02253794 thumb_func_end MOD23_0225505C thumb_func_start MOD23_02255068 MOD23_02255068: ; 0x02255068 - ldr r3, _02255070 ; =0x022537B9 + ldr r3, _02255070 ; =MOD20_022537B8 add r0, #8 bx r3 nop -_02255070: .word 0x022537B9 +_02255070: .word MOD20_022537B8 thumb_func_end MOD23_02255068 thumb_func_start MOD23_02255074 @@ -1746,10 +1746,10 @@ _0225553C: thumb_func_start MOD23_02255540 MOD23_02255540: ; 0x02255540 - ldr r3, _02255544 ; =0x02016A19 + ldr r3, _02255544 ; =FUN_02016A18 bx r3 .align 2, 0 -_02255544: .word 0x02016A19 +_02255544: .word FUN_02016A18 thumb_func_end MOD23_02255540 thumb_func_start MOD23_02255548 diff --git a/arm9/modules/28/asm/module_28.s b/arm9/modules/28/asm/module_28.s index e1a1d741..42733627 100644 --- a/arm9/modules/28/asm/module_28.s +++ b/arm9/modules/28/asm/module_28.s @@ -5,12 +5,12 @@ thumb_func_start MOD28_02254840 MOD28_02254840: ; 0x02254840 - ldr r3, _02254848 ; =0x02252979 + ldr r3, _02254848 ; =MOD20_02252978 ldr r0, _0225484C ; =MOD28_02254854 ldr r1, _02254850 ; =MOD28_022549F4 bx r3 .align 2, 0 -_02254848: .word 0x02252979 +_02254848: .word MOD20_02252978 _0225484C: .word MOD28_02254854 _02254850: .word MOD28_022549F4 thumb_func_end MOD28_02254840 @@ -519,20 +519,20 @@ _02254BE8: .word 0x02255EF4 thumb_func_start MOD28_02254BEC MOD28_02254BEC: ; 0x02254BEC - ldr r3, _02254BF4 ; =0x02253795 + ldr r3, _02254BF4 ; =MOD20_02253794 add r0, #8 bx r3 nop -_02254BF4: .word 0x02253795 +_02254BF4: .word MOD20_02253794 thumb_func_end MOD28_02254BEC thumb_func_start MOD28_02254BF8 MOD28_02254BF8: ; 0x02254BF8 - ldr r3, _02254C00 ; =0x022537B9 + ldr r3, _02254C00 ; =MOD20_022537B8 add r0, #8 bx r3 nop -_02254C00: .word 0x022537B9 +_02254C00: .word MOD20_022537B8 thumb_func_end MOD28_02254BF8 thumb_func_start MOD28_02254C04 @@ -1531,11 +1531,11 @@ MOD28_02255344: ; 0x02255344 mov r0, #0x4e lsl r0, r0, #2 ldr r0, [r1, r0] - ldr r3, _02255358 ; =0x02253F79 + ldr r3, _02255358 ; =MOD20_02253F78 mov r1, #1 bx r3 nop -_02255358: .word 0x02253F79 +_02255358: .word MOD20_02253F78 thumb_func_end MOD28_02255344 thumb_func_start MOD28_0225535C diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s index e4dacfc6..ce93b6bc 100644 --- a/arm9/modules/53/asm/module_53.s +++ b/arm9/modules/53/asm/module_53.s @@ -3691,11 +3691,11 @@ MOD53_021D925C: ; 0x021D925C mov r1, #0xb6 lsl r1, r1, #2 add r0, r0, r1 - ldr r3, _021D9268 ; =0x0200D0E1 + ldr r3, _021D9268 ; =FUN_0200D0E0 mov r1, #0 bx r3 .align 2, 0 -_021D9268: .word 0x0200D0E1 +_021D9268: .word FUN_0200D0E0 thumb_func_end MOD53_021D925C thumb_func_start MOD53_021D926C diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s index 817d6824..c3e477c6 100644 --- a/arm9/modules/54/asm/module_54.s +++ b/arm9/modules/54/asm/module_54.s @@ -3082,11 +3082,11 @@ MOD54_021D8D40: ; 0x021D8D40 mov r1, #0xba lsl r1, r1, #2 add r0, r0, r1 - ldr r3, _021D8D4C ; =0x0200D0E1 + ldr r3, _021D8D4C ; =FUN_0200D0E0 mov r1, #0 bx r3 .align 2, 0 -_021D8D4C: .word 0x0200D0E1 +_021D8D4C: .word FUN_0200D0E0 thumb_func_end MOD54_021D8D40 thumb_func_start MOD54_021D8D50 @@ -4184,10 +4184,10 @@ MOD54_021D9500: ; 0x021D9500 thumb_func_start MOD54_021D9518 MOD54_021D9518: ; 0x021D9518 - ldr r3, _021D951C ; =0x0202B9ED + ldr r3, _021D951C ; =FUN_0202B9EC bx r3 .align 2, 0 -_021D951C: .word 0x0202B9ED +_021D951C: .word FUN_0202B9EC thumb_func_end MOD54_021D9518 thumb_func_start MOD54_021D9520 diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s index 46173b3f..a854022c 100644 --- a/arm9/modules/55/asm/module_55.s +++ b/arm9/modules/55/asm/module_55.s @@ -385,11 +385,11 @@ _021D7808: .word 0x00003FF8 thumb_func_start MOD55_021D780C MOD55_021D780C: ; 0x021D780C - ldr r3, _021D7814 ; =0x0201E66D + ldr r3, _021D7814 ; =FUN_0201E66C ldr r0, _021D7818 ; =0x021DA458 bx r3 nop -_021D7814: .word 0x0201E66D +_021D7814: .word FUN_0201E66C _021D7818: .word 0x021DA458 thumb_func_end MOD55_021D780C @@ -5033,11 +5033,11 @@ MOD55_021D9E04: ; 0x021D9E04 thumb_func_start MOD55_021D9E34 MOD55_021D9E34: ; 0x021D9E34 - ldr r3, _021D9E3C ; =0x0201C78D + ldr r3, _021D9E3C ; =FUN_0201C78C ldrh r0, [r0] bx r3 nop -_021D9E3C: .word 0x0201C78D +_021D9E3C: .word FUN_0201C78C thumb_func_end MOD55_021D9E34 thumb_func_start MOD55_021D9E40 @@ -5518,11 +5518,11 @@ MOD55_021DA214: ; 0x021DA214 mov r1, #0xce lsl r1, r1, #2 add r0, r0, r1 - ldr r3, _021DA220 ; =0x0200D0E1 + ldr r3, _021DA220 ; =FUN_0200D0E0 mov r1, #0 bx r3 .align 2, 0 -_021DA220: .word 0x0200D0E1 +_021DA220: .word FUN_0200D0E0 thumb_func_end MOD55_021DA214 thumb_func_start MOD55_021DA224 diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s index 7208de4e..d5dae418 100644 --- a/arm9/modules/57/asm/module_57.s +++ b/arm9/modules/57/asm/module_57.s @@ -2487,11 +2487,11 @@ _021D8864: thumb_func_start MOD57_021D8894 MOD57_021D8894: ; 0x021D8894 - ldr r3, _021D889C ; =0x020054C9 + ldr r3, _021D889C ; =FUN_020054C8 ldr r0, _021D88A0 ; =0x00000699 bx r3 nop -_021D889C: .word 0x020054C9 +_021D889C: .word FUN_020054C8 _021D88A0: .word 0x00000699 thumb_func_end MOD57_021D8894 diff --git a/arm9/modules/59/asm/module_59.s b/arm9/modules/59/asm/module_59.s index 0809afd7..7841f0bd 100644 --- a/arm9/modules/59/asm/module_59.s +++ b/arm9/modules/59/asm/module_59.s @@ -265,11 +265,11 @@ _021D7720: .word 0x021D76D8 thumb_func_start MOD59_021D7724 MOD59_021D7724: ; 0x021D7724 - ldr r3, _021D772C ; =0x0201AB61 + ldr r3, _021D772C ; =FUN_0201AB60 ldr r0, [r0, #0x18] bx r3 nop -_021D772C: .word 0x0201AB61 +_021D772C: .word FUN_0201AB60 thumb_func_end MOD59_021D7724 thumb_func_start MOD59_021D7730 @@ -647,11 +647,11 @@ MOD59_021D7A4C: ; 0x021D7A4C thumb_func_start MOD59_021D7A5C MOD59_021D7A5C: ; 0x021D7A5C - ldr r3, _021D7A64 ; =0x020145A9 + ldr r3, _021D7A64 ; =FUN_020145A8 ldr r0, [r0, #0x68] bx r3 nop -_021D7A64: .word 0x020145A9 +_021D7A64: .word FUN_020145A8 thumb_func_end MOD59_021D7A5C thumb_func_start MOD59_021D7A68 @@ -2536,12 +2536,12 @@ _021D8910: .word 0x000001BE thumb_func_start MOD59_021D8914 MOD59_021D8914: ; 0x021D8914 - ldr r3, _021D891C ; =0x020178BD + ldr r3, _021D891C ; =FUN_020178BC mov r0, #2 mov r1, #1 bx r3 .align 2, 0 -_021D891C: .word 0x020178BD +_021D891C: .word FUN_020178BC thumb_func_end MOD59_021D8914 thumb_func_start MOD59_021D8920 @@ -4616,11 +4616,11 @@ MOD59_021D99F8: ; 0x021D99F8 thumb_func_start MOD59_021D9A14 MOD59_021D9A14: ; 0x021D9A14 - ldr r3, _021D9A1C ; =0x0201AB61 + ldr r3, _021D9A1C ; =FUN_0201AB60 ldr r0, [r0, #4] bx r3 nop -_021D9A1C: .word 0x0201AB61 +_021D9A1C: .word FUN_0201AB60 thumb_func_end MOD59_021D9A14 thumb_func_start MOD59_021D9A20 @@ -4887,11 +4887,11 @@ _021D9C64: .word 0x00000225 thumb_func_start MOD59_021D9C68 MOD59_021D9C68: ; 0x021D9C68 - ldr r3, _021D9C70 ; =0x0200A8B9 + ldr r3, _021D9C70 ; =FUN_0200A8B8 ldr r0, [r0, #8] bx r3 nop -_021D9C70: .word 0x0200A8B9 +_021D9C70: .word FUN_0200A8B8 thumb_func_end MOD59_021D9C68 thumb_func_start MOD59_021D9C74 diff --git a/arm9/modules/60/asm/module_60.s b/arm9/modules/60/asm/module_60.s index 6318e002..d458564e 100644 --- a/arm9/modules/60/asm/module_60.s +++ b/arm9/modules/60/asm/module_60.s @@ -817,11 +817,11 @@ MOD60_021D7A40: ; 0x021D7A40 thumb_func_start MOD60_021D7B98 MOD60_021D7B98: ; 0x021D7B98 - ldr r3, _021D7BA0 ; =0x02016A19 + ldr r3, _021D7BA0 ; =FUN_02016A18 ldr r0, [r0, #0x24] bx r3 nop -_021D7BA0: .word 0x02016A19 +_021D7BA0: .word FUN_02016A18 thumb_func_end MOD60_021D7B98 thumb_func_start MOD60_021D7BA4 diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s index 4623b0ae..ced7fa63 100644 --- a/arm9/modules/62/asm/module_62.s +++ b/arm9/modules/62/asm/module_62.s @@ -4374,14 +4374,14 @@ MOD62_0222F778: ; 0x0222F778 mov r0, #0xf1 lsl r0, r0, #2 ldr r0, [r1, r0] - ldr r3, _0222F78C ; =0x02029C75 + ldr r3, _0222F78C ; =FUN_02029C74 lsl r0, r0, #3 add r0, r1, r0 ldr r0, [r0, #8] add r1, #0x68 bx r3 .align 2, 0 -_0222F78C: .word 0x02029C75 +_0222F78C: .word FUN_02029C74 thumb_func_end MOD62_0222F778 thumb_func_start MOD62_0222F790 @@ -4390,14 +4390,14 @@ MOD62_0222F790: ; 0x0222F790 add r2, r0, #0 lsl r1, r1, #2 ldr r1, [r2, r1] - ldr r3, _0222F7A4 ; =0x02029C75 + ldr r3, _0222F7A4 ; =FUN_02029C74 lsl r1, r1, #3 add r1, r2, r1 add r0, #0x68 ldr r1, [r1, #8] bx r3 .align 2, 0 -_0222F7A4: .word 0x02029C75 +_0222F7A4: .word FUN_02029C74 thumb_func_end MOD62_0222F790 thumb_func_start MOD62_0222F7A8 @@ -5927,22 +5927,22 @@ MOD62_02230388: ; 0x02230388 mov r1, #0x6a lsl r1, r1, #2 ldr r0, [r0, r1] - ldr r3, _02230398 ; =0x02007559 + ldr r3, _02230398 ; =FUN_02007558 mov r1, #6 bx r3 nop -_02230398: .word 0x02007559 +_02230398: .word FUN_02007558 thumb_func_end MOD62_02230388 thumb_func_start MOD62_0223039C MOD62_0223039C: ; 0x0223039C mov r1, #0x6a lsl r1, r1, #2 - ldr r3, _022303A8 ; =0x02007535 + ldr r3, _022303A8 ; =FUN_02007534 ldr r0, [r0, r1] bx r3 nop -_022303A8: .word 0x02007535 +_022303A8: .word FUN_02007534 thumb_func_end MOD62_0223039C thumb_func_start MOD62_022303AC diff --git a/arm9/modules/63/asm/module_63.s b/arm9/modules/63/asm/module_63.s index beeb3428..8759faaf 100644 --- a/arm9/modules/63/asm/module_63.s +++ b/arm9/modules/63/asm/module_63.s @@ -400,11 +400,11 @@ _021D7828: .word 0x021DBE18 thumb_func_start MOD63_021D782C MOD63_021D782C: ; 0x021D782C - ldr r3, _021D7834 ; =0x0201AB61 + ldr r3, _021D7834 ; =FUN_0201AB60 ldr r0, [r0, #4] bx r3 nop -_021D7834: .word 0x0201AB61 +_021D7834: .word FUN_0201AB60 thumb_func_end MOD63_021D782C thumb_func_start MOD63_021D7838 @@ -482,11 +482,11 @@ _021D78AC: .word 0x04000008 thumb_func_start MOD63_021D78B0 MOD63_021D78B0: ; 0x021D78B0 - ldr r3, _021D78B8 ; =0x020223BD + ldr r3, _021D78B8 ; =FUN_020223BC ldr r0, [r0, #8] bx r3 nop -_021D78B8: .word 0x020223BD +_021D78B8: .word FUN_020223BC thumb_func_end MOD63_021D78B0 thumb_func_start MOD63_021D78BC @@ -2178,12 +2178,12 @@ _021D8640: .word 0x020ECAC0 thumb_func_start MOD63_021D8644 MOD63_021D8644: ; 0x021D8644 - ldr r3, _021D864C ; =0x02019179 + ldr r3, _021D864C ; =FUN_02019178 add r2, #0xac add r0, r2, #0 bx r3 .align 2, 0 -_021D864C: .word 0x02019179 +_021D864C: .word FUN_02019178 thumb_func_end MOD63_021D8644 thumb_func_start MOD63_021D8650 @@ -2972,10 +2972,10 @@ _021D8CA4: .word 0x04000580 thumb_func_start MOD63_021D8CA8 MOD63_021D8CA8: ; 0x021D8CA8 - ldr r3, _021D8CAC ; =0x02009F81 + ldr r3, _021D8CAC ; =FUN_02009F80 bx r3 .align 2, 0 -_021D8CAC: .word 0x02009F81 +_021D8CAC: .word FUN_02009F80 thumb_func_end MOD63_021D8CA8 thumb_func_start MOD63_021D8CB0 @@ -6002,11 +6002,11 @@ MOD63_021DA588: ; 0x021DA588 strb r2, [r0, #3] mov r2, #0 strb r2, [r0, #1] - ldr r3, _021DA59C ; =0x0201E6E5 + ldr r3, _021DA59C ; =FUN_0201E6E4 add r0, r1, #0 bx r3 nop -_021DA59C: .word 0x0201E6E5 +_021DA59C: .word FUN_0201E6E4 thumb_func_end MOD63_021DA588 thumb_func_start MOD63_021DA5A0 @@ -6807,11 +6807,11 @@ _021DABEC: thumb_func_start MOD63_021DAC18 MOD63_021DAC18: ; 0x021DAC18 - ldr r3, _021DAC20 ; =0x0201FDED + ldr r3, _021DAC20 ; =FUN_0201FDEC ldr r0, [r0] bx r3 nop -_021DAC20: .word 0x0201FDED +_021DAC20: .word FUN_0201FDEC thumb_func_end MOD63_021DAC18 thumb_func_start MOD63_021DAC24 @@ -6821,11 +6821,11 @@ MOD63_021DAC24: ; 0x021DAC24 mov r0, #0x63 lsl r0, r0, #2 ldr r0, [r1, r0] - ldr r3, _021DAC34 ; =0x020200A1 + ldr r3, _021DAC34 ; =FUN_020200A0 add r1, r2, #0 bx r3 .align 2, 0 -_021DAC34: .word 0x020200A1 +_021DAC34: .word FUN_020200A0 thumb_func_end MOD63_021DAC24 thumb_func_start MOD63_021DAC38 @@ -7533,11 +7533,11 @@ _021DB15C: thumb_func_start MOD63_021DB1A0 MOD63_021DB1A0: ; 0x021DB1A0 - ldr r3, _021DB1A8 ; =0x0201FDED + ldr r3, _021DB1A8 ; =FUN_0201FDEC ldr r0, [r0] bx r3 nop -_021DB1A8: .word 0x0201FDED +_021DB1A8: .word FUN_0201FDEC thumb_func_end MOD63_021DB1A0 thumb_func_start MOD63_021DB1AC diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s index e7d103d1..be87b0fd 100644 --- a/arm9/modules/64/asm/module_64.s +++ b/arm9/modules/64/asm/module_64.s @@ -362,10 +362,10 @@ MOD64_021D77E8: ; 0x021D77E8 thumb_func_start MOD64_021D7808 MOD64_021D7808: ; 0x021D7808 - ldr r3, _021D780C ; =0x0200E309 + ldr r3, _021D780C ; =FUN_0200E308 bx r3 .align 2, 0 -_021D780C: .word 0x0200E309 +_021D780C: .word FUN_0200E308 thumb_func_end MOD64_021D7808 thumb_func_start MOD64_021D7810 @@ -911,12 +911,12 @@ _021D7C60: .word 0x0000064C thumb_func_start MOD64_021D7C64 MOD64_021D7C64: ; 0x021D7C64 ldr r1, _021D7C6C ; =0x0000064C - ldr r3, _021D7C70 ; =0x02013D19 + ldr r3, _021D7C70 ; =FUN_02013D18 ldr r0, [r0, r1] bx r3 .align 2, 0 _021D7C6C: .word 0x0000064C -_021D7C70: .word 0x02013D19 +_021D7C70: .word FUN_02013D18 thumb_func_end MOD64_021D7C64 thumb_func_start MOD64_021D7C74 @@ -1736,11 +1736,11 @@ _021D82B8: .word 0x00000FA4 MOD64_021D82BC: ; 0x021D82BC mov r1, #0x5f lsl r1, r1, #4 - ldr r3, _021D82C8 ; =0x0201EB71 + ldr r3, _021D82C8 ; =FUN_0201EB70 ldr r0, [r0, r1] bx r3 nop -_021D82C8: .word 0x0201EB71 +_021D82C8: .word FUN_0201EB70 thumb_func_end MOD64_021D82BC thumb_func_start MOD64_021D82CC @@ -2765,11 +2765,11 @@ MOD64_021D89FC: ; 0x021D89FC thumb_func_start MOD64_021D8A78 MOD64_021D8A78: ; 0x021D8A78 - ldr r3, _021D8A80 ; =0x0201FFC9 + ldr r3, _021D8A80 ; =FUN_0201FFC8 ldr r0, [r0] bx r3 nop -_021D8A80: .word 0x0201FFC9 +_021D8A80: .word FUN_0201FFC8 thumb_func_end MOD64_021D8A78 thumb_func_start MOD64_021D8A84 @@ -2890,11 +2890,11 @@ _021D8B56: thumb_func_start MOD64_021D8B58 MOD64_021D8B58: ; 0x021D8B58 - ldr r3, _021D8B60 ; =0x020200A1 + ldr r3, _021D8B60 ; =FUN_020200A0 ldr r0, [r0] bx r3 nop -_021D8B60: .word 0x020200A1 +_021D8B60: .word FUN_020200A0 thumb_func_end MOD64_021D8B58 thumb_func_start MOD64_021D8B64 @@ -2999,11 +2999,11 @@ MOD64_021D8C0C: ; 0x021D8C0C thumb_func_start MOD64_021D8C30 MOD64_021D8C30: ; 0x021D8C30 - ldr r3, _021D8C38 ; =0x02013EB1 + ldr r3, _021D8C38 ; =FUN_02013EB0 ldr r0, [r0, #8] bx r3 nop -_021D8C38: .word 0x02013EB1 +_021D8C38: .word FUN_02013EB0 thumb_func_end MOD64_021D8C30 thumb_func_start MOD64_021D8C3C @@ -3537,14 +3537,14 @@ MOD64_021D902C: ; 0x021D902C add r1, r0, #0 add r1, #0xa8 ldr r1, [r1] - ldr r3, _021D9040 ; =0x02019571 + ldr r3, _021D9040 ; =FUN_02019570 lsl r1, r1, #2 add r0, r0, r1 add r0, #0x9c ldr r0, [r0] bx r3 nop -_021D9040: .word 0x02019571 +_021D9040: .word FUN_02019570 thumb_func_end MOD64_021D902C thumb_func_start MOD64_021D9044 diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s index a254fc52..07e7acd3 100644 --- a/arm9/modules/65/asm/module_65.s +++ b/arm9/modules/65/asm/module_65.s @@ -2057,11 +2057,11 @@ _021D84E0: .word 0x00000001 thumb_func_start MOD65_021D84E4 MOD65_021D84E4: ; 0x021D84E4 - ldr r3, _021D84EC ; =0x02001471 + ldr r3, _021D84EC ; =FUN_02001470 mov r1, #0x13 bx r3 nop -_021D84EC: .word 0x02001471 +_021D84EC: .word FUN_02001470 thumb_func_end MOD65_021D84E4 thumb_func_start MOD65_021D84F0 @@ -3416,11 +3416,11 @@ MOD65_021D8F34: ; 0x021D8F34 thumb_func_start MOD65_021D8FA4 MOD65_021D8FA4: ; 0x021D8FA4 - ldr r3, _021D8FAC ; =0x02021A21 + ldr r3, _021D8FAC ; =FUN_02021A20 ldr r0, [r0, #0x3c] bx r3 nop -_021D8FAC: .word 0x02021A21 +_021D8FAC: .word FUN_02021A20 thumb_func_end MOD65_021D8FA4 thumb_func_start MOD65_021D8FB0 diff --git a/arm9/modules/66/asm/module_66.s b/arm9/modules/66/asm/module_66.s index 709a8b84..e1053077 100644 --- a/arm9/modules/66/asm/module_66.s +++ b/arm9/modules/66/asm/module_66.s @@ -3727,20 +3727,20 @@ MOD66_021D91F4: ; 0x021D91F4 thumb_func_start MOD66_021D9214 MOD66_021D9214: ; 0x021D9214 - ldr r3, _021D921C ; =0x0200BC1D + ldr r3, _021D921C ; =FUN_0200BC1C add r0, #0xdc ldr r0, [r0] bx r3 .align 2, 0 -_021D921C: .word 0x0200BC1D +_021D921C: .word FUN_0200BC1C thumb_func_end MOD66_021D9214 thumb_func_start MOD66_021D9220 MOD66_021D9220: ; 0x021D9220 - ldr r3, _021D9224 ; =0x0200BC31 + ldr r3, _021D9224 ; =FUN_0200BC30 bx r3 .align 2, 0 -_021D9224: .word 0x0200BC31 +_021D9224: .word FUN_0200BC30 thumb_func_end MOD66_021D9220 thumb_func_start MOD66_021D9228 diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s index 8756cbb5..c7484f37 100644 --- a/arm9/modules/67/asm/module_67.s +++ b/arm9/modules/67/asm/module_67.s @@ -708,10 +708,10 @@ _021D7AA4: .word 0x0000105F thumb_func_start MOD67_021D7AA8 MOD67_021D7AA8: ; 0x021D7AA8 - ldr r3, _021D7AAC ; =0x0200E309 + ldr r3, _021D7AAC ; =FUN_0200E308 bx r3 .align 2, 0 -_021D7AAC: .word 0x0200E309 +_021D7AAC: .word FUN_0200E308 thumb_func_end MOD67_021D7AA8 thumb_func_start MOD67_021D7AB0 diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s index 1c34783c..1ee371c6 100644 --- a/arm9/modules/68/asm/module_68.s +++ b/arm9/modules/68/asm/module_68.s @@ -1496,12 +1496,12 @@ _021D80A4: .word 0x04000540 thumb_func_start MOD_021D80A8 MOD_021D80A8: ; 0x021D80A8 - ldr r3, _021D80B0 ; =0x0201EB71 + ldr r3, _021D80B0 ; =FUN_0201EB70 add r0, #0xd0 ldr r0, [r0] bx r3 .align 2, 0 -_021D80B0: .word 0x0201EB71 +_021D80B0: .word FUN_0201EB70 thumb_func_end MOD_021D80A8 thumb_func_start MOD_021D80B4 diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s index 8d8b5870..f1e9fefd 100644 --- a/arm9/modules/69/asm/module_69.s +++ b/arm9/modules/69/asm/module_69.s @@ -724,10 +724,10 @@ _0222DBA0: .word 0x04000540 thumb_func_start MOD69_0222DBA4 MOD69_0222DBA4: ; 0x0222DBA4 - ldr r3, _0222DBA8 ; =0x0200CA61 + ldr r3, _0222DBA8 ; =FUN_0200CA60 bx r3 .align 2, 0 -_0222DBA8: .word 0x0200CA61 +_0222DBA8: .word FUN_0200CA60 thumb_func_start MOD69_0222DBAC MOD69_0222DBAC: ; 0x0222DBAC @@ -1059,12 +1059,12 @@ _0222DE84: .word 0x00000FA4 thumb_func_start MOD69_0222DE88 MOD69_0222DE88: ; 0x0222DE88 ldr r1, _0222DE90 ; =0x00001B1C - ldr r3, _0222DE94 ; =0x0201EB71 + ldr r3, _0222DE94 ; =FUN_0201EB70 ldr r0, [r0, r1] bx r3 .align 2, 0 _0222DE90: .word 0x00001B1C -_0222DE94: .word 0x0201EB71 +_0222DE94: .word FUN_0201EB70 thumb_func_start MOD69_0222DE98 MOD69_0222DE98: ; 0x0222DE98 @@ -1477,13 +1477,13 @@ MOD69_0222E1FC: ; 0x0222E1FC thumb_func_start MOD69_0222E204 MOD69_0222E204: ; 0x0222E204 - ldr r3, _0222E210 ; =0x0200CA99 + ldr r3, _0222E210 ; =FUN_0200CA98 add r1, r0, #0 ldr r0, _0222E214 ; =MOD69_0222E1E4 mov r2, #0 bx r3 nop -_0222E210: .word 0x0200CA99 +_0222E210: .word FUN_0200CA98 _0222E214: .word MOD69_0222E1E4 thumb_func_start MOD69_0222E218 diff --git a/arm9/modules/70/asm/module_70.s b/arm9/modules/70/asm/module_70.s new file mode 100644 index 00000000..dd072eaa --- /dev/null +++ b/arm9/modules/70/asm/module_70.s @@ -0,0 +1,1702 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD70_021D74E0 +MOD70_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, lr} + mov r2, #1 + add r5, r0, #0 + mov r0, #3 + mov r1, #0x3c + lsl r2, r2, #0xe + bl FUN_0201681C + mov r2, #7 + mov r0, #3 + mov r1, #0x3d + lsl r2, r2, #0xe + bl FUN_0201681C + add r0, r5, #0 + mov r1, #0xdc + mov r2, #0x3c + bl FUN_02006268 + add r4, r0, #0 + beq _021D7558 + add r0, r5, #0 + bl FUN_0200628C + add r1, r4, #0 + add r1, #0xcc + str r0, [r1] + add r0, r4, #0 + mov r1, #0 + add r0, #0xd4 + str r1, [r0] + add r0, r4, #0 + add r0, #0xcc + ldr r0, [r0] + bl FUN_0202B1F0 + add r1, r4, #0 + add r1, #0xd0 + str r0, [r1] + add r1, r4, #0 + add r1, #0xcc + ldr r1, [r1] + add r0, r4, #0 + bl MOD70_021D7724 + add r0, r4, #0 + add r1, r4, #0 + bl MOD70_021D77CC + add r1, r4, #0 + add r1, #0xc8 + str r0, [r1] + add r0, r4, #0 + add r0, #0xc8 + ldr r0, [r0] + mov r1, #0 + bl MOD70_021D7930 + add r4, #0xd8 + str r0, [r4] +_021D7558: + mov r0, #1 + pop {r3, r4, r5, pc} + thumb_func_end MOD70_021D74E0 + + thumb_func_start MOD70_021D755C +MOD70_021D755C: ; 0x021D755C + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + add r0, #0xc8 + ldr r0, [r0] + bl MOD70_021D78A0 + add r0, r4, #0 + bl MOD70_021D7760 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0x3d + bl FUN_020168D0 + mov r0, #0x3c + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD70_021D755C + + thumb_func_start MOD70_021D758C +MOD70_021D758C: ; 0x021D758C + push {r3, r4, r5, lr} + add r5, r1, #0 + bl FUN_02006278 + add r4, r0, #0 + add r0, #0xd8 + ldr r0, [r0] + cmp r0, #0 + beq _021D75B8 + add r0, r4, #0 + add r0, #0xc8 + ldr r0, [r0] + bl MOD70_021D7958 + cmp r0, #0 + bne _021D75B0 + mov r0, #0 + pop {r3, r4, r5, pc} +_021D75B0: + add r0, r4, #0 + mov r1, #0 + add r0, #0xd8 + str r1, [r0] +_021D75B8: + ldr r0, [r5] + cmp r0, #0 + beq _021D75C4 + cmp r0, #1 + beq _021D768A + b _021D768E +_021D75C4: + ldr r0, _021D7694 ; =0x021C48B8 + mov r1, #2 + ldr r0, [r0, #0x48] + add r2, r0, #0 + tst r2, r1 + beq _021D75E0 + add r0, r4, #0 + mov r1, #1 + bl MOD70_021D7698 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D768E +_021D75E0: + mov r2, #1 + add r3, r0, #0 + tst r3, r2 + beq _021D75F8 + ldr r0, [r4, #0x1c] + mov r1, #4 + eor r0, r2 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD70_021D7698 + b _021D768E +_021D75F8: + mov r2, #0x20 + tst r2, r0 + beq _021D7612 + add r0, r4, #0 + bl MOD70_021D76AC + cmp r0, #0 + beq _021D768E + add r0, r4, #0 + mov r1, #3 + bl MOD70_021D7698 + b _021D768E +_021D7612: + mov r2, #0x10 + tst r2, r0 + beq _021D762C + add r0, r4, #0 + bl MOD70_021D76E8 + cmp r0, #0 + beq _021D768E + add r0, r4, #0 + mov r1, #3 + bl MOD70_021D7698 + b _021D768E +_021D762C: + mov r2, #0x40 + tst r2, r0 + beq _021D765C + ldr r0, [r4, #0x18] + sub r0, r0, #1 + str r0, [r4, #0x18] + bpl _021D7654 + add r0, r4, #0 + bl MOD70_021D76AC + cmp r0, #0 + beq _021D768E + ldr r0, [r4, #0x14] + mov r1, #3 + sub r0, r0, #1 + str r0, [r4, #0x18] + add r0, r4, #0 + bl MOD70_021D7698 + b _021D768E +_021D7654: + add r0, r4, #0 + bl MOD70_021D7698 + b _021D768E +_021D765C: + mov r2, #0x80 + tst r0, r2 + beq _021D768E + ldr r0, [r4, #0x18] + add r2, r0, #1 + str r2, [r4, #0x18] + ldr r0, [r4, #0x14] + cmp r2, r0 + blt _021D7682 + add r0, r4, #0 + bl MOD70_021D76E8 + cmp r0, #0 + beq _021D768E + add r0, r4, #0 + mov r1, #3 + bl MOD70_021D7698 + b _021D768E +_021D7682: + add r0, r4, #0 + bl MOD70_021D7698 + b _021D768E +_021D768A: + mov r0, #1 + pop {r3, r4, r5, pc} +_021D768E: + mov r0, #0 + pop {r3, r4, r5, pc} + nop +_021D7694: .word 0x021C48B8 + thumb_func_end MOD70_021D758C + + thumb_func_start MOD70_021D7698 +MOD70_021D7698: ; 0x021D7698 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc8 + ldr r0, [r0] + bl MOD70_021D7930 + add r4, #0xd8 + str r0, [r4] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD70_021D7698 + + thumb_func_start MOD70_021D76AC +MOD70_021D76AC: ; 0x021D76AC + push {r3, lr} + add r1, r0, #0 + add r1, #0xd4 + ldr r1, [r1] + add r2, r1, #1 + add r1, r0, #0 + add r1, #0xd4 + str r2, [r1] + add r1, r0, #0 + add r1, #0xd4 + ldr r2, [r1] + add r1, r0, #0 + add r1, #0xd0 + ldr r1, [r1] + cmp r2, r1 + blt _021D76D4 + add r1, r0, #0 + mov r2, #0 + add r1, #0xd4 + str r2, [r1] +_021D76D4: + add r1, r0, #0 + add r2, r0, #0 + add r1, #0xcc + add r2, #0xd4 + ldr r1, [r1] + ldr r2, [r2] + bl MOD70_021D777C + mov r0, #1 + pop {r3, pc} + thumb_func_end MOD70_021D76AC + + thumb_func_start MOD70_021D76E8 +MOD70_021D76E8: ; 0x021D76E8 + push {r3, lr} + add r1, r0, #0 + add r1, #0xd4 + ldr r1, [r1] + sub r2, r1, #1 + add r1, r0, #0 + add r1, #0xd4 + str r2, [r1] + add r1, r0, #0 + add r1, #0xd4 + ldr r1, [r1] + cmp r1, #0 + bge _021D7710 + add r1, r0, #0 + add r1, #0xd0 + ldr r1, [r1] + sub r2, r1, #1 + add r1, r0, #0 + add r1, #0xd4 + str r2, [r1] +_021D7710: + add r1, r0, #0 + add r2, r0, #0 + add r1, #0xcc + add r2, #0xd4 + ldr r1, [r1] + ldr r2, [r2] + bl MOD70_021D777C + mov r0, #1 + pop {r3, pc} + thumb_func_end MOD70_021D76E8 + + thumb_func_start MOD70_021D7724 +MOD70_021D7724: ; 0x021D7724 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + str r0, [sp] + str r1, [sp, #4] + mov r4, #0 + add r5, r0, #0 + mov r6, #0xc + mov r7, #0x3c +_021D7734: + add r0, r6, #0 + add r1, r7, #0 + bl FUN_020219F4 + str r0, [r5, #0x20] + mov r0, #8 + mov r1, #0x3c + bl FUN_020219F4 + str r0, [r5, #0x24] + add r4, r4, #1 + add r5, #0x1c + cmp r4, #6 + blt _021D7734 + ldr r0, [sp] + mov r2, #0 + ldr r1, [sp, #4] + str r2, [r0, #0x1c] + bl MOD70_021D777C + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD70_021D7724 + + thumb_func_start MOD70_021D7760 +MOD70_021D7760: ; 0x021D7760 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_021D7766: + ldr r0, [r5, #0x20] + bl FUN_02021A20 + ldr r0, [r5, #0x24] + bl FUN_02021A20 + add r4, r4, #1 + add r5, #0x1c + cmp r4, #6 + blt _021D7766 + pop {r3, r4, r5, pc} + thumb_func_end MOD70_021D7760 + + thumb_func_start MOD70_021D777C +MOD70_021D777C: ; 0x021D777C + push {r3, r4, r5, r6, r7, lr} + add r7, r1, #0 + add r6, r0, #0 + str r2, [sp] + add r0, r7, #0 + add r1, r2, #0 + bl FUN_0202B21C + str r0, [r6] + ldr r1, [sp] + add r0, r7, #0 + bl FUN_0202B250 + str r0, [r6, #0x14] + ldr r1, [sp] + add r0, r7, #0 + add r2, r6, #4 + bl FUN_0202B31C + ldr r0, [r6, #0x14] + mov r4, #0 + cmp r0, #0 + ble _021D77C4 + add r5, r6, #0 + add r5, #0x20 +_021D77AE: + ldr r1, [sp] + add r0, r7, #0 + add r2, r4, #0 + add r3, r5, #0 + bl FUN_0202B29C + ldr r0, [r6, #0x14] + add r4, r4, #1 + add r5, #0x1c + cmp r4, r0 + blt _021D77AE +_021D77C4: + mov r0, #0 + str r0, [r6, #0x18] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD70_021D777C + + thumb_func_start MOD70_021D77CC +MOD70_021D77CC: ; 0x021D77CC + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r6, r1, #0 + add r5, r0, #0 + ldr r1, _021D7894 ; =0x00000E1C + mov r0, #0x3d + bl FUN_02016998 + add r4, r0, #0 + beq _021D788C + str r5, [r4] + str r6, [r4, #4] + mov r0, #0x3d + bl FUN_02016B94 + str r0, [r4, #0x10] + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x80 + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r2, #0x3d + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + add r1, r4, #0 + mov r0, #0x40 + add r1, #0x38 + mov r2, #0x3d + bl FUN_02008C9C + str r0, [r4, #0x34] + ldr r2, _021D7898 ; =0x00000139 + mov r0, #0 + mov r1, #0x1a + mov r3, #0x3d + bl FUN_0200A86C + mov r2, #6 + lsl r2, r2, #6 + str r0, [r4, r2] + mov r0, #1 + mov r1, #0x1a + sub r2, #0x16 + mov r3, #0x3d + bl FUN_0200A86C + mov r2, #0x61 + lsl r2, r2, #2 + str r0, [r4, r2] + mov r0, #1 + mov r1, #0x1a + add r2, #0xc8 + mov r3, #0x3d + bl FUN_0200A86C + mov r1, #0x62 + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0x3d + bl FUN_0200AA80 + mov r1, #0x63 + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x8c + add r0, r1, #0 + mov r1, #0x3d + bl FUN_020219F4 + mov r1, #0x19 + lsl r1, r1, #4 + str r0, [r4, r1] + sub r1, #0x90 + add r0, r1, #0 + mov r1, #0x3d + bl FUN_020219F4 + mov r1, #0x65 + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0x3d + bl FUN_020669C0 + mov r1, #0x66 + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, _021D789C ; =MOD70_021D790C + add r1, r4, #0 + bl FUN_02015F10 +_021D788C: + add r0, r4, #0 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + nop +_021D7894: .word 0x00000E1C +_021D7898: .word 0x00000139 +_021D789C: .word MOD70_021D790C + thumb_func_end MOD70_021D77CC + + thumb_func_start MOD70_021D78A0 +MOD70_021D78A0: ; 0x021D78A0 + push {r4, lr} + add r4, r0, #0 + beq _021D790A + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0x66 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02016A18 + mov r0, #0x65 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02021A20 + mov r0, #0x19 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02021A20 + mov r0, #0x63 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200AB18 + mov r0, #0x62 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + mov r0, #0x61 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + ldr r0, [r4, #0x34] + bl FUN_0201FD58 + bl FUN_02009FA0 + ldr r0, [r4, #0x10] + bl FUN_02016A18 + add r0, r4, #0 + bl FUN_02016A18 +_021D790A: + pop {r4, pc} + thumb_func_end MOD70_021D78A0 + + thumb_func_start MOD70_021D790C +MOD70_021D790C: ; 0x021D790C + push {r3, lr} + ldr r0, [r0, #0x34] + bl FUN_0201FDEC + bl FUN_02009F80 + ldr r3, _021D7928 ; =0x027E0000 + ldr r1, _021D792C ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r3, pc} + nop +_021D7928: .word 0x027E0000 +_021D792C: .word 0x00003FF8 + thumb_func_end MOD70_021D790C + + thumb_func_start MOD70_021D7930 +MOD70_021D7930: ; 0x021D7930 + push {r3, lr} + add r2, r1, #0 + str r2, [r0, #0xc] + mov r1, #0 + lsl r3, r2, #2 + str r1, [r0, #8] + ldr r2, _021D7954 ; =0x021D82E0 + add r1, r0, #0 + ldr r2, [r2, r3] + add r1, #8 + blx r2 + cmp r0, #0 + bne _021D794E + mov r0, #1 + pop {r3, pc} +_021D794E: + mov r0, #0 + pop {r3, pc} + nop +_021D7954: .word 0x021D82E0 + thumb_func_end MOD70_021D7930 + + thumb_func_start MOD70_021D7958 +MOD70_021D7958: ; 0x021D7958 + push {r3, lr} + ldr r2, [r0, #0xc] + add r1, r0, #0 + lsl r3, r2, #2 + ldr r2, _021D796C ; =0x021D82E0 + add r1, #8 + ldr r2, [r2, r3] + blx r2 + pop {r3, pc} + nop +_021D796C: .word 0x021D82E0 + thumb_func_end MOD70_021D7958 + + thumb_func_start MOD70_021D7970 +MOD70_021D7970: ; 0x021D7970 + push {r4, r5, lr} + sub sp, #0xc + add r4, r1, #0 + ldr r1, [r4] + add r5, r0, #0 + cmp r1, #0 + beq _021D7984 + cmp r1, #1 + beq _021D79AC + b _021D79BA +_021D7984: + bl MOD70_021D7AF4 + add r0, r5, #0 + bl MOD70_021D7F70 + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3d + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D79BA +_021D79AC: + bl FUN_0200E308 + cmp r0, #0 + beq _021D79BA + add sp, #0xc + mov r0, #1 + pop {r4, r5, pc} +_021D79BA: + mov r0, #0 + add sp, #0xc + pop {r4, r5, pc} + thumb_func_end MOD70_021D7970 + + thumb_func_start MOD70_021D79C0 +MOD70_021D79C0: ; 0x021D79C0 + push {r4, r5, lr} + sub sp, #0xc + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021D79D4 + cmp r0, #1 + beq _021D79FA + b _021D7A14 +_021D79D4: + ldr r0, _021D7A1C ; =0x0000060E + bl FUN_020054C8 + mov r1, #0 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3d + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D7A14 +_021D79FA: + bl FUN_0200E308 + cmp r0, #0 + beq _021D7A14 + add r0, r5, #0 + bl MOD70_021D7FC4 + add r0, r5, #0 + bl MOD70_021D7C10 + add sp, #0xc + mov r0, #1 + pop {r4, r5, pc} +_021D7A14: + mov r0, #0 + add sp, #0xc + pop {r4, r5, pc} + nop +_021D7A1C: .word 0x0000060E + thumb_func_end MOD70_021D79C0 + + thumb_func_start MOD70_021D7A20 +MOD70_021D7A20: ; 0x021D7A20 + push {r3, r4, r5, r6, r7, lr} + ldr r7, [r0, #4] + str r0, [sp] + ldr r0, [r7, #0x14] + mov r4, #0 + cmp r0, #0 + ble _021D7A82 + ldr r5, [sp] + add r6, r7, #0 +_021D7A32: + ldr r0, [r7, #0x18] + cmp r4, r0 + bne _021D7A5E + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02020398 + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02020310 + mov r0, #1 + bl FUN_02005E80 + ldrh r0, [r6, #0x30] + bl FUN_02005578 + b _021D7A76 +_021D7A5E: + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_02020398 + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r5, r0] + add r1, r4, #1 + bl FUN_02020310 +_021D7A76: + ldr r0, [r7, #0x14] + add r4, r4, #1 + add r5, r5, #4 + add r6, #0x1c + cmp r4, r0 + blt _021D7A32 +_021D7A82: + ldr r0, [sp] + bl MOD70_021D7D98 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD70_021D7A20 + + thumb_func_start MOD70_021D7A8C +MOD70_021D7A8C: ; 0x021D7A8C + push {r4, lr} + add r4, r1, #0 + ldr r1, [r4] + cmp r1, #3 + bhi _021D7AD6 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D7AA2: ; jump table + .short _021D7AAA - _021D7AA2 - 2 ; case 0 + .short _021D7AB6 - _021D7AA2 - 2 ; case 1 + .short _021D7AC2 - _021D7AA2 - 2 ; case 2 + .short _021D7ACE - _021D7AA2 - 2 ; case 3 +_021D7AAA: + bl MOD70_021D7CC0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D7AD6 +_021D7AB6: + bl MOD70_021D820C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D7AD6 +_021D7AC2: + bl MOD70_021D80C8 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D7AD6 +_021D7ACE: + bl MOD70_021D7CB0 + mov r0, #1 + pop {r4, pc} +_021D7AD6: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD70_021D7A8C + + thumb_func_start MOD70_021D7ADC +MOD70_021D7ADC: ; 0x021D7ADC + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D7AF0 ; =0x000005DC + bl FUN_020054C8 + add r0, r4, #0 + bl MOD70_021D7D98 + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_021D7AF0: .word 0x000005DC + thumb_func_end MOD70_021D7ADC + + thumb_func_start MOD70_021D7AF4 +MOD70_021D7AF4: ; 0x021D7AF4 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r0, _021D7BF8 ; =0x021D8284 + bl FUN_0201E66C + ldr r2, _021D7BFC ; =0x04000304 + ldrh r1, [r2] + lsr r0, r2, #0xb + orr r0, r1 + strh r0, [r2] + ldr r0, _021D7C00 ; =0x021D823C + bl FUN_02016BBC + ldr r0, [r5, #0x10] + ldr r2, _021D7C04 ; =0x021D8268 + mov r1, #1 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r5, #0x10] + ldr r2, _021D7C08 ; =0x021D824C + mov r1, #2 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r1, #1 + str r1, [sp, #8] + mov r0, #0x3d + str r0, [sp, #0xc] + ldr r2, [r5, #0x10] + mov r0, #0x65 + mov r3, #2 + bl FUN_0200687C + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3d + str r0, [sp, #0xc] + ldr r2, [r5, #0x10] + mov r0, #0x65 + mov r3, #2 + bl FUN_020068C8 + mov r0, #0x40 + str r0, [sp] + mov r0, #0x3d + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x65 + mov r1, #2 + add r3, r2, #0 + bl FUN_02006930 + mov r2, #0 + str r2, [sp] + mov r1, #1 + ldr r0, [r5, #0x10] + add r3, r1, #0 + bl FUN_02017F48 + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + str r2, [sp, #0xc] + ldr r0, [r5, #0x10] + mov r1, #1 + add r3, r2, #0 + bl FUN_02018540 + add r0, r5, #0 + mov r1, #1 + bl MOD70_021D7C2C + add r4, r0, #0 + add r0, r5, #0 + bl MOD70_021D7CB0 + mov r0, #0 + str r0, [sp] + mov r0, #0x3d + str r0, [sp, #4] + lsl r2, r4, #0x10 + ldr r0, [r5, #0x10] + mov r1, #1 + lsr r2, r2, #0x10 + mov r3, #2 + bl FUN_0200CB00 + add r0, r5, #0 + lsl r2, r4, #0x10 + add r0, #0x14 + mov r1, #0 + lsr r2, r2, #0x10 + mov r3, #2 + bl FUN_0200CCA4 + add r0, r5, #0 + lsl r2, r4, #0x10 + add r0, #0x24 + mov r1, #0 + lsr r2, r2, #0x10 + mov r3, #2 + bl FUN_0200CCA4 + ldr r0, [r5, #0x10] + mov r1, #1 + bl FUN_02017CD0 + mov r3, #8 + ldr r0, _021D7C0C ; =0x04000050 + mov r1, #0 + mov r2, #6 + str r3, [sp] + bl G2x_SetBlendAlpha_ + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D7BF8: .word 0x021D8284 +_021D7BFC: .word 0x04000304 +_021D7C00: .word 0x021D823C +_021D7C04: .word 0x021D8268 +_021D7C08: .word 0x021D824C +_021D7C0C: .word 0x04000050 + thumb_func_end MOD70_021D7AF4 + + thumb_func_start MOD70_021D7C10 +MOD70_021D7C10: ; 0x021D7C10 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x10] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r4, #0x10] + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + bl MOD70_021D7C98 + pop {r4, pc} + thumb_func_end MOD70_021D7C10 + + thumb_func_start MOD70_021D7C2C +MOD70_021D7C2C: ; 0x021D7C2C + push {r4, r5, lr} + sub sp, #0x14 + mov r2, #1 + add r5, r0, #0 + str r2, [sp] + mov r0, #0x1e + str r0, [sp, #4] + mov r0, #2 + add r4, r1, #0 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + add r1, r5, #0 + ldr r0, [r5, #0x10] + add r1, #0x14 + add r3, r2, #0 + bl FUN_02019064 + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1e + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + add r0, r4, #0 + add r0, #0x3c + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + add r1, r5, #0 + mov r2, #1 + ldr r0, [r5, #0x10] + add r1, #0x24 + add r3, r2, #0 + bl FUN_02019064 + add r0, r5, #0 + add r0, #0x14 + bl FUN_02019270 + add r5, #0x24 + add r0, r5, #0 + bl FUN_02019270 + add r4, #0xb4 + add r0, r4, #0 + add sp, #0x14 + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD70_021D7C2C + + thumb_func_start MOD70_021D7C98 +MOD70_021D7C98: ; 0x021D7C98 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 + add r5, #0x14 +_021D7CA0: + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #2 + blt _021D7CA0 + pop {r3, r4, r5, pc} + thumb_func_end MOD70_021D7C98 + + thumb_func_start MOD70_021D7CB0 +MOD70_021D7CB0: ; 0x021D7CB0 + push {r4, lr} + add r4, r0, #0 + bl MOD70_021D7CE8 + add r0, r4, #0 + bl MOD70_021D7D98 + pop {r4, pc} + thumb_func_end MOD70_021D7CB0 + + thumb_func_start MOD70_021D7CC0 +MOD70_021D7CC0: ; 0x021D7CC0 + push {r4, lr} + add r4, r0, #0 + add r0, #0x14 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x24 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019548 + add r4, #0x24 + add r0, r4, #0 + bl FUN_02019548 + pop {r4, pc} + thumb_func_end MOD70_021D7CC0 + + thumb_func_start MOD70_021D7CE8 +MOD70_021D7CE8: ; 0x021D7CE8 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r4, [r5, #4] + mov r1, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x63 + lsl r0, r0, #2 + add r6, r5, #0 + ldr r0, [r5, r0] + ldr r2, [r4] + mov r3, #4 + add r6, #0x14 + bl FUN_0200AD38 + mov r0, #0 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x63 + lsl r0, r0, #2 + mov r2, #0x7d + ldr r3, [r4, #4] + lsl r2, r2, #4 + add r2, r3, r2 + ldr r0, [r5, r0] + mov r3, #4 + bl FUN_0200AD38 + mov r0, #0x63 + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r2, [r4, #8] + mov r1, #2 + bl FUN_0200B764 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x63 + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r2, [r4, #0xc] + mov r1, #3 + mov r3, #2 + bl FUN_0200AD38 + mov r2, #6 + lsl r2, r2, #6 + ldr r0, [r5, r2] + add r2, #0x10 + ldr r2, [r5, r2] + mov r1, #0 + bl FUN_0200A8E0 + mov r2, #0x63 + lsl r2, r2, #2 + add r1, r2, #0 + ldr r0, [r5, r2] + add r1, #8 + add r2, r2, #4 + ldr r1, [r5, r1] + ldr r2, [r5, r2] + bl FUN_0200B7B8 + add r0, r6, #0 + mov r1, #0xf + bl FUN_02019620 + mov r1, #0 + str r1, [sp] + mov r2, #0xff + str r2, [sp, #4] + str r1, [sp, #8] + add r2, #0x95 + ldr r2, [r5, r2] + add r0, r6, #0 + add r3, r1, #0 + bl FUN_0201BD84 + add r0, r6, #0 + bl FUN_02019548 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + thumb_func_end MOD70_021D7CE8 + + thumb_func_start MOD70_021D7D98 +MOD70_021D7D98: ; 0x021D7D98 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r4, [r5, #4] + mov r0, #0x1c + ldr r1, [r4, #0x18] + add r2, r4, #0 + mul r0, r1 + add r2, #0x20 + add r7, r2, r0 + add r0, r5, #0 + str r0, [sp, #0xc] + add r0, #0x24 + mov r1, #0xf + str r0, [sp, #0xc] + bl FUN_02019620 + ldr r0, [r4, #0x1c] + cmp r0, #0 + beq _021D7DC8 + cmp r0, #1 + bne _021D7DC6 + b _021D7F1C +_021D7DC6: + b _021D7F66 +_021D7DC8: + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + str r1, [sp, #8] + ldr r0, [sp, #0xc] + ldr r2, [r7] + add r3, r1, #0 + bl FUN_0201BD84 + mov r2, #6 + lsl r2, r2, #6 + ldr r0, [r5, r2] + add r2, #0x10 + ldr r2, [r5, r2] + mov r1, #5 + bl FUN_0200A8E0 + mov r1, #0 + str r1, [sp] + mov r2, #0xff + str r2, [sp, #4] + str r1, [sp, #8] + add r2, #0x91 + ldr r0, [sp, #0xc] + ldr r2, [r5, r2] + mov r3, #0x48 + bl FUN_0201BD84 + mov r2, #0x61 + lsl r2, r2, #2 + ldr r0, [r5, r2] + add r2, #0xc + ldrh r1, [r7, #0x10] + ldr r2, [r5, r2] + bl FUN_0200A8E0 + mov r1, #0 + str r1, [sp] + mov r2, #0xff + str r2, [sp, #4] + str r1, [sp, #8] + add r2, #0x91 + ldr r0, [sp, #0xc] + ldr r2, [r5, r2] + mov r3, #0x5e + bl FUN_0201BD84 + ldrh r0, [r7, #0x10] + ldr r1, [r7, #8] + bl FUN_02068A20 + cmp r0, #0 + beq _021D7E3A + cmp r0, #1 + beq _021D7E4C + b _021D7E5E +_021D7E3A: + mov r2, #6 + lsl r2, r2, #6 + ldr r0, [r5, r2] + add r2, #0x10 + ldr r2, [r5, r2] + mov r1, #3 + bl FUN_0200A8E0 + b _021D7E68 +_021D7E4C: + mov r2, #6 + lsl r2, r2, #6 + ldr r0, [r5, r2] + add r2, #0x10 + ldr r2, [r5, r2] + mov r1, #4 + bl FUN_0200A8E0 + b _021D7E68 +_021D7E5E: + mov r0, #0x19 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02021A4C +_021D7E68: + mov r1, #0 + str r1, [sp] + mov r2, #0xff + str r2, [sp, #4] + str r1, [sp, #8] + add r2, #0x91 + ldr r0, [sp, #0xc] + ldr r2, [r5, r2] + mov r3, #0xae + bl FUN_0201BD84 + mov r2, #6 + lsl r2, r2, #6 + ldr r0, [r5, r2] + add r2, #0x10 + ldr r2, [r5, r2] + mov r1, #1 + bl FUN_0200A8E0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r0, #0x63 + lsl r0, r0, #2 + ldrb r2, [r7, #0x12] + ldr r0, [r5, r0] + mov r1, #0 + mov r3, #4 + bl FUN_0200AD38 + mov r2, #0x63 + lsl r2, r2, #2 + add r1, r2, #0 + ldr r0, [r5, r2] + add r1, #8 + add r2, r2, #4 + ldr r1, [r5, r1] + ldr r2, [r5, r2] + bl FUN_0200B7B8 + mov r1, #0 + str r1, [sp] + mov r2, #0xff + str r2, [sp, #4] + str r1, [sp, #8] + add r2, #0x95 + ldr r0, [sp, #0xc] + ldr r2, [r5, r2] + mov r3, #0xc2 + bl FUN_0201BD84 + mov r2, #6 + lsl r2, r2, #6 + ldr r0, [r5, r2] + add r2, #0x10 + ldr r2, [r5, r2] + mov r1, #2 + bl FUN_0200A8E0 + mov r0, #0x10 + str r0, [sp] + mov r2, #0xff + str r2, [sp, #4] + mov r1, #0 + str r1, [sp, #8] + add r2, #0x91 + ldr r0, [sp, #0xc] + ldr r2, [r5, r2] + add r3, r1, #0 + bl FUN_0201BD84 + mov r1, #0x19 + lsl r1, r1, #4 + mov r0, #0 + ldr r1, [r5, r1] + add r2, r0, #0 + bl FUN_02002E14 + add r3, r0, #0 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r1, #0 + str r1, [sp, #8] + ldr r0, [sp, #0xc] + ldr r2, [r7, #4] + bl FUN_0201BD84 + b _021D7F66 +_021D7F1C: + mov r4, #0 +_021D7F1E: + ldrh r1, [r7, #0x14] + cmp r1, #0 + beq _021D7F66 + mov r0, #0x62 + mov r2, #0x19 + lsl r0, r0, #2 + lsl r2, r2, #4 + ldr r0, [r5, r0] + ldr r2, [r5, r2] + bl FUN_0200A8E0 + lsr r0, r4, #0x1f + add r0, r4, r0 + asr r0, r0, #1 + lsl r0, r0, #4 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r0, #0 + mov r2, #0x19 + str r0, [sp, #8] + lsl r2, r2, #4 + mov r3, #1 + add r6, r4, #0 + and r6, r3 + mov r3, #0x60 + ldr r0, [sp, #0xc] + ldr r2, [r5, r2] + mov r1, #0 + mul r3, r6 + bl FUN_0201BD84 + add r4, r4, #1 + add r7, r7, #2 + cmp r4, #4 + blt _021D7F1E +_021D7F66: + ldr r0, [sp, #0xc] + bl FUN_02019548 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD70_021D7D98 + + thumb_func_start MOD70_021D7F70 +MOD70_021D7F70: ; 0x021D7F70 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #0x3d + str r0, [sp] + mov r0, #0x1b + mov r1, #0x29 + mov r2, #0 + add r3, sp, #8 + bl FUN_02006C30 + mov r1, #0x5e + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0x3d + str r0, [sp] + mov r0, #0x1b + mov r1, #0x2a + mov r2, #0 + add r3, sp, #4 + bl FUN_02006C5C + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r4, r1] + add r1, #0x20 + mov r2, #0x32 + mov r0, #0 + add r1, r4, r1 + lsl r2, r2, #6 + bl MIi_CpuClearFast + ldr r1, [sp, #8] + ldr r2, [sp, #4] + add r0, r4, #0 + bl MOD70_021D7FF8 + add r0, r4, #0 + bl MOD70_021D80C8 + add sp, #0xc + pop {r3, r4, pc} + thumb_func_end MOD70_021D7F70 + + thumb_func_start MOD70_021D7FC4 +MOD70_021D7FC4: ; 0x021D7FC4 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r6, #0x16 + mov r4, #0 + add r5, r7, #0 + lsl r6, r6, #4 +_021D7FD0: + ldr r0, [r5, r6] + cmp r0, #0 + beq _021D7FDA + bl FUN_0201FFC8 +_021D7FDA: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _021D7FD0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r7, r0] + bl FUN_02016A18 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r7, r0] + bl FUN_02016A18 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD70_021D7FC4 + + thumb_func_start MOD70_021D7FF8 +MOD70_021D7FF8: ; 0x021D7FF8 + push {r4, r5, r6, r7, lr} + sub sp, #0x94 + mov r3, #0 + add r5, r0, #0 + str r1, [sp, #0x7c] + str r2, [sp, #0x80] + str r3, [sp, #0x74] + str r3, [sp, #0x84] + str r3, [sp, #0x88] + str r3, [sp, #0x8c] + add r0, sp, #0x90 + strb r3, [r0] + add r0, sp, #0x2c + str r0, [sp, #0x70] + add r0, sp, #0x18 + str r0, [sp, #0x78] + ldr r0, [r5, #0x34] + mov r1, #0x28 + str r0, [sp, #0x50] + add r0, sp, #0x70 + str r0, [sp, #0x54] + mov r0, #1 + str r0, [sp, #0x68] + mov r0, #0x3d + str r3, [sp, #0x60] + str r0, [sp, #0x6c] + str r0, [sp] + add r2, r3, #0 + mov r0, #0x1b + add r3, sp, #0x14 + bl FUN_02006BB0 + str r0, [sp, #0xc] + mov r0, #0x1b + mov r1, #0x27 + add r2, sp, #0x10 + mov r3, #0x3d + bl FUN_02006C08 + mov r4, #0 + ldr r6, _021D80C4 ; =0x021D82AC + str r0, [sp, #8] + str r4, [sp, #4] + add r7, r4, #0 +_021D8050: + add r0, sp, #0x2c + bl FUN_020B1A24 + add r0, sp, #0x18 + bl FUN_020B19DC + ldr r0, [sp, #0x14] + add r1, r4, #0 + mov r2, #1 + add r3, sp, #0x2c + bl FUN_020B1768 + ldr r0, [sp, #0x10] + add r1, r7, #0 + mov r2, #1 + add r3, sp, #0x18 + bl FUN_020B1240 + ldr r0, [r6] + lsl r0, r0, #0xc + str r0, [sp, #0x58] + ldr r0, [r6, #4] + lsl r0, r0, #0xc + str r0, [sp, #0x5c] + ldr r0, [sp, #4] + add r0, r0, #1 + str r0, [sp, #0x64] + add r0, sp, #0x50 + bl FUN_0201FF84 + mov r1, #0x16 + lsl r1, r1, #4 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0x32 + lsl r0, r0, #6 + add r4, r4, r0 + ldr r0, [sp, #4] + add r7, #0x20 + add r0, r0, #1 + add r6, #8 + add r5, r5, #4 + str r0, [sp, #4] + cmp r0, #6 + blt _021D8050 + ldr r0, [sp, #8] + bl FUN_02016A18 + ldr r0, [sp, #0xc] + bl FUN_02016A18 + add sp, #0x94 + pop {r4, r5, r6, r7, pc} + nop +_021D80C4: .word 0x021D82AC + thumb_func_end MOD70_021D7FF8 + + thumb_func_start MOD70_021D80C8 +MOD70_021D80C8: ; 0x021D80C8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x38 + add r7, r0, #0 + ldr r0, [r7, #4] + mov r4, #0 + str r0, [sp, #0x20] + ldr r0, [r0, #0x14] + cmp r0, #0 + bgt _021D80DC + b _021D81E4 +_021D80DC: + ldr r5, [sp, #0x20] + str r4, [sp, #0x18] + add r0, r5, #0 + str r0, [sp, #0x1c] + add r0, #0x33 + str r0, [sp, #0x1c] + mov r0, #0x67 + lsl r0, r0, #2 + add r0, r7, r0 + str r4, [sp, #0x14] + add r6, r7, #0 + str r0, [sp, #0x24] +_021D80F4: + mov r0, #1 + str r0, [sp] + ldr r0, [r5, #0x28] + add r2, r5, #0 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + ldr r0, [r5, #0x2c] + add r2, #0x32 + str r0, [sp, #0xc] + mov r0, #0x66 + lsl r0, r0, #2 + ldrh r1, [r5, #0x30] + ldrb r2, [r2] + ldr r0, [r7, r0] + mov r3, #0x20 + bl FUN_02066ACC + mov r0, #0x66 + lsl r0, r0, #2 + ldr r0, [r7, r0] + ldr r2, [sp, #0x1c] + mov r1, #0x70 + bl FUN_02067830 + mov r1, #0x66 + lsl r1, r1, #2 + ldr r1, [r7, r1] + add r0, sp, #0x28 + mov r2, #2 + bl FUN_02068B68 + ldr r0, [sp, #0x24] + add r1, sp, #0x28 + str r0, [sp] + ldr r0, [r5, #0x28] + ldr r3, _021D8208 ; =0x021D822C + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + mov r0, #2 + str r0, [sp, #0xc] + ldrh r0, [r5, #0x30] + mov r2, #0x3d + str r0, [sp, #0x10] + add r0, sp, #0x28 + ldrh r0, [r0] + ldrh r1, [r1, #2] + bl FUN_02012530 + mov r1, #0x32 + ldr r0, [sp, #0x24] + lsl r1, r1, #6 + bl DC_FlushRange + mov r2, #0x32 + ldr r0, [sp, #0x24] + ldr r1, [sp, #0x18] + lsl r2, r2, #6 + bl GX_LoadOBJ + mov r0, #0x20 + str r0, [sp] + mov r0, #0x3d + str r0, [sp, #4] + add r0, sp, #0x28 + add r1, sp, #0x28 + ldrh r0, [r0] + ldrh r1, [r1, #4] + ldr r3, [sp, #0x14] + mov r2, #1 + bl FUN_02006930 + ldr r0, [sp, #0x20] + ldr r0, [r0, #0x18] + cmp r4, r0 + bne _021D81A8 + mov r0, #1 + bl FUN_02005E80 + ldrh r0, [r5, #0x30] + bl FUN_02005578 + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r6, r0] + mov r1, #0 + bl FUN_02020398 + b _021D81B4 +_021D81A8: + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r6, r0] + mov r1, #1 + bl FUN_02020398 +_021D81B4: + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r6, r0] + mov r1, #1 + bl FUN_020200A0 + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x18] + add r0, #0x1c + str r0, [sp, #0x1c] + mov r0, #0x32 + lsl r0, r0, #6 + add r0, r1, r0 + str r0, [sp, #0x18] + ldr r0, [sp, #0x14] + add r4, r4, #1 + add r0, #0x20 + str r0, [sp, #0x14] + ldr r0, [sp, #0x20] + add r5, #0x1c + ldr r0, [r0, #0x14] + add r6, r6, #4 + cmp r4, r0 + blt _021D80F4 +_021D81E4: + cmp r4, #6 + bge _021D8202 + lsl r0, r4, #2 + mov r6, #0x16 + add r5, r7, r0 + mov r7, #0 + lsl r6, r6, #4 +_021D81F2: + ldr r0, [r5, r6] + add r1, r7, #0 + bl FUN_020200A0 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _021D81F2 +_021D8202: + add sp, #0x38 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8208: .word 0x021D822C + thumb_func_end MOD70_021D80C8 + + thumb_func_start MOD70_021D820C +MOD70_021D820C: ; 0x021D820C + push {r3, r4, r5, r6, r7, lr} + mov r4, #0 + mov r6, #0x16 + add r5, r0, #0 + add r7, r4, #0 + lsl r6, r6, #4 +_021D8218: + ldr r0, [r5, r6] + add r1, r7, #0 + bl FUN_020200A0 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _021D8218 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD70_021D820C + + .section .rodata + ; 0x021D822C + .incbin "baserom.nds", 0x2C594C, 0xB0 + + .section .data + ; 0x021D82E0 + .incbin "baserom.nds", 0x2C5A00, 0x20 diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s new file mode 100644 index 00000000..9aa14aef --- /dev/null +++ b/arm9/modules/71/asm/module_71.s @@ -0,0 +1,7155 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD71_0222D5C0 +MOD71_0222D5C0: ; 0x0222D5C0 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _0222D72C ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _0222D730 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + ldr r2, _0222D734 ; =0x000707D0 + mov r0, #3 + mov r1, #0x1a + bl FUN_0201681C + ldr r1, _0222D738 ; =0x000036B4 + add r0, r5, #0 + mov r2, #0x1a + bl FUN_02006268 + add r4, r0, #0 + ldr r2, _0222D738 ; =0x000036B4 + mov r0, #0 + add r1, r4, #0 + bl MIi_CpuClearFast + mov r0, #0x1a + bl FUN_02016B94 + mov r1, #0x5d + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0xc + mov r1, #0x16 + mov r2, #0x1a + bl FUN_0200AA90 + mov r1, #0x5e + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0x1a + bl FUN_0200AA80 + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0x1a + bl FUN_0200AA80 + mov r2, #6 + lsl r2, r2, #6 + str r0, [r4, r2] + mov r1, #0x1a + mov r0, #0 + sub r2, #0x44 + add r3, r1, #0 + bl FUN_0200A86C + mov r1, #0x61 + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0 + str r0, [r4, #0x40] + add r0, r4, #0 + add r1, r5, #0 + bl MOD70_0222E76C + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + bl MOD70_0222E558 + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD70_0222E578 + mov r0, #0x10 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x1a + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + add r0, r4, #0 + bl MOD70_0222E900 + ldr r0, _0222D73C ; =MOD70_0222E4DC + add r1, r4, #0 + bl FUN_02015F10 + bl MOD70_0222EA38 + add r0, r4, #0 + bl MOD70_0222EA68 + add r0, r4, #0 + bl MOD70_0222EF90 + mov r0, #0x5d + ldr r2, [r4, #8] + lsl r0, r0, #2 + ldr r1, _0222D740 ; =0x00000438 + ldr r0, [r4, r0] + ldr r2, [r2, #0x18] + add r1, r4, r1 + bl MOD70_02230C48 + ldr r0, [r4, #8] + add r1, r4, #0 + ldr r0, [r0] + str r0, [r4] + bl FUN_02083D10 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _0222D744 ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x14 + mov r2, #1 + bl MOD70_02230F40 + ldr r0, [r4] + bl FUN_02083B84 + mov r0, #0 + mov r1, #1 + bl FUN_0201797C + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r1, #0x5d + lsl r1, r1, #2 + ldr r1, [r4, r1] + mov r0, #0x1a + bl FUN_020335F0 + bl FUN_02033E74 + bl FUN_0201277C + cmp r0, #0 + bne _0222D71A + ldr r1, _0222D748 ; =0x0000043D + mov r0, #4 + mov r2, #1 + bl FUN_0200433C + b _0222D724 +_0222D71A: + ldr r1, _0222D74C ; =0x0000043E + mov r0, #4 + mov r2, #1 + bl FUN_0200433C +_0222D724: + mov r0, #1 + add sp, #0xc + pop {r4, r5, pc} + nop +_0222D72C: .word 0xFFFFE0FF +_0222D730: .word 0x04001000 +_0222D734: .word 0x000707D0 +_0222D738: .word 0x000036B4 +_0222D73C: .word MOD70_0222E4DC +_0222D740: .word 0x00000438 +_0222D744: .word 0x000005A8 +_0222D748: .word 0x0000043D +_0222D74C: .word 0x0000043E + thumb_func_end MOD71_0222D5C0 + + thumb_func_start MOD70_0222D750 +MOD70_0222D750: ; 0x0222D750 + push {r4, r5, r6, lr} + add r5, r1, #0 + ldr r1, [sp, #0x10] + add r4, r2, #0 + lsl r1, r1, #4 + add r1, #0x92 + mov r2, #2 + ldr r0, [r0, #0x14] + add r6, r3, #0 + lsl r1, r1, #5 + lsl r2, r2, #8 + bl GX_LoadOBJ + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl FUN_0206B7BC + add r1, r0, #0 + ldr r0, [sp, #0x14] + add r1, #0xa + bl FUN_020202A8 + pop {r4, r5, r6, pc} + thumb_func_end MOD70_0222D750 + + thumb_func_start MOD70_0222D780 +MOD70_0222D780: ; 0x0222D780 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + bl FUN_02031190 + bl FUN_0202DFA4 + add r4, r0, #0 + bl FUN_02031190 + mov r1, #1 + eor r0, r1 + bl FUN_0202DFA4 + add r6, r0, #0 + add r0, r4, #0 + mov r1, #0x1a + bl FUN_020239A0 + add r4, r0, #0 + add r0, r6, #0 + mov r1, #0x1a + bl FUN_020239A0 + add r6, r0, #0 + mov r0, #0x61 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x30 + bl FUN_0200A914 + add r7, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + ldr r0, _0222D814 ; =0x00000438 + add r1, r4, #0 + add r0, r5, r0 + mov r2, #0xa + mov r3, #0 + bl MOD70_02230EFC + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + ldr r0, _0222D818 ; =0x00000448 + add r1, r6, #0 + add r0, r5, r0 + mov r2, #0xa + mov r3, #0 + bl MOD70_02230EFC + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + ldr r0, _0222D81C ; =0x00000498 + add r1, r7, #0 + add r0, r5, r0 + mov r2, #5 + mov r3, #0 + bl MOD70_02230EFC + add r0, r7, #0 + bl FUN_02021A20 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222D814: .word 0x00000438 +_0222D818: .word 0x00000448 +_0222D81C: .word 0x00000498 + thumb_func_end MOD70_0222D780 + + thumb_func_start MOD70_0222D820 +MOD70_0222D820: ; 0x0222D820 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + bl MOD70_0222E558 + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD70_0222E578 + add r0, r4, #0 + bl MOD70_0222E900 + add r0, r4, #0 + bl MOD70_0222D93C + add r0, r4, #0 + bl MOD70_0222D780 + ldr r0, [r4, #8] + ldr r0, [r0, #0x18] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r2, #0x5d + str r0, [sp] + mov r0, #0x1a + lsl r2, r2, #2 + str r0, [sp, #4] + ldr r0, [r4, r2] + mov r1, #0 + add r2, #0x65 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + mov r2, #0x5d + str r1, [sp] + mov r0, #0x1a + lsl r2, r2, #2 + str r0, [sp, #4] + ldr r0, [r4, r2] + add r2, #0x83 + mov r3, #0xb + bl FUN_0200CB00 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _0222D92C ; =0x00000588 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0xf + mov r2, #1 + bl MOD70_02230F40 + mov r0, #4 + mov r1, #1 + bl FUN_0201797C + mov r0, #5 + mov r1, #1 + bl FUN_0201797C + mov r0, #6 + mov r1, #1 + bl FUN_0201797C + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + mov r0, #0 + mov r1, #1 + bl FUN_0201797C + mov r0, #1 + add r1, r0, #0 + bl FUN_0201797C + mov r0, #2 + mov r1, #1 + bl FUN_0201797C + mov r0, #3 + mov r1, #1 + bl FUN_0201797C + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + bl MOD70_0222EA38 + add r0, r4, #0 + bl MOD70_0222EA68 + add r0, r4, #0 + bl MOD70_0222EF90 + ldr r0, _0222D930 ; =0x00002218 + mov r1, #0 + ldr r0, [r4, r0] + add r2, r4, #0 + bl MOD70_0222DBEC + ldr r0, _0222D934 ; =0x0000221C + mov r1, #6 + ldr r0, [r4, r0] + add r2, r4, #0 + bl MOD70_0222DBEC + mov r0, #0xce + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0xcf + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + ldr r0, _0222D938 ; =MOD70_0222E4DC + add r1, r4, #0 + bl FUN_02015F10 + add sp, #8 + pop {r4, pc} + nop +_0222D92C: .word 0x00000588 +_0222D930: .word 0x00002218 +_0222D934: .word 0x0000221C +_0222D938: .word MOD70_0222E4DC + thumb_func_end MOD70_0222D820 + + thumb_func_start MOD70_0222D93C +MOD70_0222D93C: ; 0x0222D93C + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5e + ldr r1, _0222D9B8 ; =0x00002218 + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + mov r2, #0 + bl MOD70_0222DB5C + mov r0, #0x5e + ldr r1, _0222D9BC ; =0x0000221C + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + mov r2, #6 + bl MOD70_0222DB5C + mov r0, #0 + mov r2, #0x5e + str r0, [sp] + lsl r2, r2, #2 + ldr r3, _0222D9B8 ; =0x00002218 + ldr r0, _0222D9C0 ; =0x000004A8 + ldr r1, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + ldr r3, [r5, r3] + add r0, r5, r0 + bl MOD70_0222DB94 + mov r0, #6 + mov r2, #0x5e + str r0, [sp] + lsl r2, r2, #2 + ldr r3, _0222D9BC ; =0x0000221C + ldr r0, _0222D9C4 ; =0x00000508 + ldr r1, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + ldr r3, [r5, r3] + add r0, r5, r0 + bl MOD70_0222DB94 + ldr r0, _0222D9B8 ; =0x00002218 + ldr r0, [r5, r0] + bl FUN_0206B9AC + add r4, r0, #0 + ldr r0, _0222D9BC ; =0x0000221C + ldr r0, [r5, r0] + bl FUN_0206B9AC + add r2, r0, #0 + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl MOD70_0222E8DC + pop {r3, r4, r5, pc} + nop +_0222D9B8: .word 0x00002218 +_0222D9BC: .word 0x0000221C +_0222D9C0: .word 0x000004A8 +_0222D9C4: .word 0x00000508 + thumb_func_end MOD70_0222D93C + + thumb_func_start MOD70_0222D9C8 +MOD70_0222D9C8: ; 0x0222D9C8 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + bl FUN_02006278 + ldr r1, [r5] + add r4, r0, #0 + mov r6, #0 + cmp r1, #0 + beq _0222D9E8 + cmp r1, #1 + beq _0222D9FC + cmp r1, #2 + bne _0222D9E6 + b _0222DB28 +_0222D9E6: + b _0222DB32 +_0222D9E8: + bl FUN_0200E308 + cmp r0, #0 + beq _0222DA02 + mov r0, #1 + str r0, [r5] + add r0, r4, #0 + bl MOD70_0222D780 + b _0222DB32 +_0222D9FC: + ldr r1, [r4, #0x48] + cmp r1, #7 + bls _0222DA04 +_0222DA02: + b _0222DB32 +_0222DA04: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0222DA10: ; jump table + .short _0222DA20 - _0222DA10 - 2 ; case 0 + .short _0222DA28 - _0222DA10 - 2 ; case 1 + .short _0222DA36 - _0222DA10 - 2 ; case 2 + .short _0222DA54 - _0222DA10 - 2 ; case 3 + .short _0222DA72 - _0222DA10 - 2 ; case 4 + .short _0222DAAE - _0222DA10 - 2 ; case 5 + .short _0222DAFE - _0222DA10 - 2 ; case 6 + .short _0222DB1A - _0222DA10 - 2 ; case 7 +_0222DA20: + bl MOD70_0222DD60 + str r0, [r4, #0x48] + b _0222DB32 +_0222DA28: + bl MOD70_0222E2D4 + str r0, [r4, #0x48] + add r0, r4, #0 + bl MOD70_0222F264 + b _0222DB32 +_0222DA36: + mov r0, #8 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x1a + str r0, [sp, #8] + add r0, r6, #0 + add r1, r6, #0 + add r2, r6, #0 + add r3, r6, #0 + bl FUN_0200E1D0 + mov r0, #2 + str r0, [r5] + b _0222DB32 +_0222DA54: + mov r0, #8 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x1a + str r0, [sp, #8] + add r0, r6, #0 + add r1, r6, #0 + add r2, r6, #0 + add r3, r6, #0 + bl FUN_0200E1D0 + mov r0, #4 + str r0, [r4, #0x48] + b _0222DB32 +_0222DA72: + bl FUN_0200E308 + cmp r0, #0 + beq _0222DB32 + add r0, r4, #0 + bl MOD70_0222E3D4 + add r0, r4, #0 + bl MOD70_0222E378 + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD70_0222E848 + mov r0, #1 + str r0, [r4, #0x44] + mov r0, #5 + str r0, [r4, #0x48] + add r0, r4, #0 + add r0, #0x88 + ldr r0, [r0] + mov r1, #6 + bl _s32_div_f + add r1, r0, #0 + add r0, r4, #0 + bl MOD70_0222F59C + b _0222DB32 +_0222DAAE: + ldr r0, [r4, #0x40] + bl FUN_02006290 + cmp r0, #0 + beq _0222DB32 + ldr r0, [r4, #0x40] + bl FUN_02006260 + add r0, r4, #0 + bl MOD70_0222D820 + add r0, r6, #0 + str r0, [r4, #0x44] + add r0, r4, #0 + add r0, #0x20 + ldrb r2, [r0] + ldr r1, [r4, #0x3c] + mov r0, #6 + mul r0, r1 + add r1, r2, r0 + add r0, r4, #0 + add r0, #0x88 + str r1, [r0] + add r0, r4, #0 + bl MOD70_0222E224 + add r0, r4, #0 + mov r1, #0xce + add r0, #0x88 + lsl r1, r1, #2 + ldr r0, [r0] + ldr r1, [r4, r1] + add r2, r6, #0 + bl MOD70_0222F350 + bl FUN_02033E74 + mov r0, #6 + str r0, [r4, #0x48] + b _0222DB32 +_0222DAFE: + mov r0, #8 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x1a + str r0, [sp, #8] + add r0, r6, #0 + add r2, r1, #0 + add r3, r6, #0 + bl FUN_0200E1D0 + mov r0, #7 + str r0, [r4, #0x48] + b _0222DB32 +_0222DB1A: + bl FUN_0200E308 + cmp r0, #0 + beq _0222DB32 + mov r0, #1 + str r0, [r4, #0x48] + b _0222DB32 +_0222DB28: + bl FUN_0200E308 + cmp r0, #0 + beq _0222DB32 + mov r6, #1 +_0222DB32: + ldr r0, [r4, #0x44] + cmp r0, #0 + bne _0222DB48 + add r0, r4, #0 + bl MOD70_02230B3C + mov r0, #0x65 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0201FDEC +_0222DB48: + mov r1, #0x5d + lsl r1, r1, #2 + ldr r1, [r4, r1] + mov r0, #0x1a + bl FUN_020335F0 + add r0, r6, #0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD70_0222D9C8 + + thumb_func_start MOD70_0222DB5C +MOD70_0222DB5C: ; 0x0222DB5C + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + add r7, r0, #0 + add r0, r5, #0 + add r6, r2, #0 + mov r4, #0 + bl FUN_0206B9AC + cmp r0, #0 + ble _0222DB92 +_0222DB70: + add r0, r5, #0 + add r1, r4, #0 + bl FUN_0206B9B0 + bl FUN_020690E4 + add r2, r0, #0 + add r0, r7, #0 + add r1, r4, r6 + bl FUN_0200ACF8 + add r0, r5, #0 + add r4, r4, #1 + bl FUN_0206B9AC + cmp r4, r0 + blt _0222DB70 +_0222DB92: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD70_0222DB5C + + thumb_func_start MOD70_0222DB94 +MOD70_0222DB94: ; 0x0222DB94 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + add r0, r3, #0 + str r1, [sp, #8] + str r2, [sp, #0xc] + str r3, [sp, #0x10] + ldr r6, [sp, #0x28] + mov r4, #0 + bl FUN_0206B9AC + cmp r0, #0 + ble _0222DBE6 + add r7, r6, #1 +_0222DBB0: + ldr r0, [sp, #8] + ldr r1, [sp, #0xc] + add r2, r7, r4 + mov r3, #0x1a + bl FUN_0200A9C4 + add r6, r0, #0 + mov r0, #1 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r6, #0 + mov r2, #8 + mov r3, #0 + bl MOD70_02230EFC + add r0, r6, #0 + bl FUN_02021A20 + ldr r0, [sp, #0x10] + add r5, #0x10 + add r4, r4, #1 + bl FUN_0206B9AC + cmp r4, r0 + blt _0222DBB0 +_0222DBE6: + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD70_0222DB94 + + thumb_func_start MOD70_0222DBEC +MOD70_0222DBEC: ; 0x0222DBEC + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + str r0, [sp, #8] + str r1, [sp, #0xc] + str r2, [sp, #0x20] + mov r7, #0 + bl FUN_0206B9AC + cmp r0, #0 + bgt _0222DC02 + b _0222DD10 +_0222DC02: + mov r1, #0x1f + ldr r0, [sp, #0x20] + lsl r1, r1, #6 + add r0, r0, r1 + str r0, [sp, #0x1c] +_0222DC0C: + ldr r0, [sp, #0xc] + ldr r2, _0222DD50 ; =0x00000696 + add r0, r7, r0 + str r0, [sp, #0x10] + lsl r0, r0, #2 + str r0, [sp, #0x18] + ldr r0, [sp, #0x10] + lsl r1, r0, #4 + ldr r0, [sp, #0x20] + add r4, r0, r1 + ldr r1, [sp, #0x18] + ldrb r2, [r4, r2] + add r5, r0, r1 + mov r0, #0x69 + ldr r1, _0222DD54 ; =0x00000695 + lsl r0, r0, #4 + ldrh r0, [r4, r0] + ldrb r1, [r4, r1] + bl FUN_0206B6D4 + add r1, r0, #0 + mov r0, #0x1a + str r0, [sp] + ldr r6, [sp, #0x1c] + ldr r3, [sp, #0x18] + mov r0, #0x13 + mov r2, #0 + add r3, r6, r3 + bl FUN_02006BB0 + mov r1, #0x79 + lsl r1, r1, #4 + str r0, [r5, r1] + add r0, r1, #0 + add r0, #0x30 + ldr r0, [r5, r0] + mov r1, #2 + ldr r0, [r0, #0x14] + lsl r1, r1, #8 + bl DC_FlushRange + ldr r0, [sp, #0x10] + mov r1, #0x69 + str r0, [sp] + mov r0, #0x37 + lsl r0, r0, #4 + ldr r0, [r5, r0] + ldr r2, _0222DD50 ; =0x00000696 + str r0, [sp, #4] + ldr r3, _0222DD54 ; =0x00000695 + mov r0, #0x1f + lsl r1, r1, #4 + lsl r0, r0, #6 + ldrh r1, [r4, r1] + ldrb r2, [r4, r2] + ldrb r3, [r4, r3] + ldr r0, [r5, r0] + bl MOD70_0222D750 + mov r0, #0x37 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + ldr r0, _0222DD58 ; =0x00000692 + ldrh r0, [r4, r0] + cmp r0, #0 + bne _0222DCA4 + mov r0, #0x3a + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + b _0222DCCC +_0222DCA4: + ldr r0, [sp, #0x10] + lsl r1, r0, #2 + ldr r0, [sp, #0x20] + add r1, r0, r1 + mov r0, #0x3a + lsl r0, r0, #4 + ldr r0, [r1, r0] + str r1, [sp, #0x14] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x3a + ldr r1, [sp, #0x14] + lsl r0, r0, #4 + ldr r0, [r1, r0] + ldr r1, _0222DD58 ; =0x00000692 + ldrh r1, [r4, r1] + add r1, r1, #2 + bl FUN_02020130 +_0222DCCC: + ldr r0, _0222DD5C ; =0x0000069C + ldr r0, [r4, r0] + cmp r0, #0 + bne _0222DCE2 + mov r0, #0x3d + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + b _0222DD02 +_0222DCE2: + ldr r0, [sp, #0x10] + lsl r1, r0, #2 + ldr r0, [sp, #0x20] + add r4, r0, r1 + mov r0, #0x3d + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x3d + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0x15 + bl FUN_02020130 +_0222DD02: + ldr r0, [sp, #8] + add r7, r7, #1 + bl FUN_0206B9AC + cmp r7, r0 + bge _0222DD10 + b _0222DC0C +_0222DD10: + cmp r7, #6 + bge _0222DD4C + ldr r0, [sp, #0xc] + mov r6, #0x3a + lsl r1, r0, #2 + ldr r0, [sp, #0x20] + lsl r6, r6, #4 + add r1, r0, r1 + lsl r0, r7, #2 + add r5, r6, #0 + add r4, r1, r0 + add r5, #0x30 +_0222DD28: + mov r0, #0x37 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [r4, r6] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [r4, r5] + mov r1, #0 + bl FUN_020200A0 + add r7, r7, #1 + add r4, r4, #4 + cmp r7, #6 + blt _0222DD28 +_0222DD4C: + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222DD50: .word 0x00000696 +_0222DD54: .word 0x00000695 +_0222DD58: .word 0x00000692 +_0222DD5C: .word 0x0000069C + thumb_func_end MOD70_0222DBEC + + thumb_func_start MOD70_0222DD60 +MOD70_0222DD60: ; 0x0222DD60 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r4, r0, #0 + bl MOD70_02230C1C + ldr r0, [r4, #0x4c] + cmp r0, #0x13 + bls _0222DD72 + b _0222E0E8 +_0222DD72: + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0222DD7E: ; jump table + .short _0222DDA6 - _0222DD7E - 2 ; case 0 + .short _0222DDC0 - _0222DD7E - 2 ; case 1 + .short _0222DE12 - _0222DD7E - 2 ; case 2 + .short _0222DE22 - _0222DD7E - 2 ; case 3 + .short _0222DE38 - _0222DD7E - 2 ; case 4 + .short _0222DE48 - _0222DD7E - 2 ; case 5 + .short _0222DE60 - _0222DD7E - 2 ; case 6 + .short _0222DE74 - _0222DD7E - 2 ; case 7 + .short _0222DE86 - _0222DD7E - 2 ; case 8 + .short _0222DEB2 - _0222DD7E - 2 ; case 9 + .short _0222DEC0 - _0222DD7E - 2 ; case 10 + .short _0222DECC - _0222DD7E - 2 ; case 11 + .short _0222DF58 - _0222DD7E - 2 ; case 12 + .short _0222DF74 - _0222DD7E - 2 ; case 13 + .short _0222DF80 - _0222DD7E - 2 ; case 14 + .short _0222DF92 - _0222DD7E - 2 ; case 15 + .short _0222DFD6 - _0222DD7E - 2 ; case 16 + .short _0222E010 - _0222DD7E - 2 ; case 17 + .short _0222E054 - _0222DD7E - 2 ; case 18 + .short _0222E094 - _0222DD7E - 2 ; case 19 +_0222DDA6: + mov r0, #0x50 + bl FUN_02031588 + mov r0, #2 + bl FUN_020166A8 + add r0, r4, #0 + bl MOD70_02230B88 + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DDC0: + mov r0, #0x50 + bl FUN_020315D8 + cmp r0, #0 + beq _0222DEB8 + ldr r0, [r4, #8] + ldr r0, [r0, #0x34] + cmp r0, #0 + bne _0222DDD6 + mov r0, #6 + b _0222DDD8 +_0222DDD6: + mov r0, #2 +_0222DDD8: + str r0, [r4, #0x4c] + bl FUN_02031190 + cmp r0, #0 + bne _0222DE04 + bl FUN_0201B9EC + ldr r1, _0222E0F0 ; =0x00000445 + bl _s32_div_f + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #0x3c + blo _0222DDF8 + bl ErrorHandling +_0222DDF8: + bl FUN_02031190 + mov r1, #0x1f + add r2, r5, #3 + bl MOD70_0222F42C +_0222DE04: + ldr r0, [r4, #4] + bl MOD70_0222F4A8 + add r0, r4, #0 + bl MOD70_02230C08 + b _0222E0E8 +_0222DE12: + mov r1, #0x8b + lsl r1, r1, #6 + ldr r1, [r4, r1] + cmp r1, #0 + beq _0222DEB8 + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DE22: + mov r0, #0x8b + lsl r0, r0, #6 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r0, [r4, r0] + cmp r0, #0 + bne _0222DEB8 + mov r0, #4 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DE38: + ldr r0, _0222E0F4 ; =0x0000369C + add r0, r4, r0 + bl FUN_020336C0 + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DE48: + ldr r2, _0222E0F4 ; =0x0000369C + ldr r0, [r4, #4] + mov r1, #2 + add r2, r4, r2 + bl FUN_020336C8 + cmp r0, #0 + beq _0222DEB8 + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DE60: + mov r0, #1 + bl FUN_02031400 + mov r0, #0x51 + bl FUN_02031588 + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DE74: + mov r0, #0x51 + bl FUN_020315D8 + cmp r0, #0 + beq _0222DEB8 + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DE86: + mov r0, #0 + str r0, [r4, #0x50] + str r0, [r4, #0x54] + str r0, [r4, #0x58] + bl FUN_02031190 + cmp r0, #1 + bne _0222DEAA + bl FUN_02031190 + ldr r1, _0222E0F8 ; =0x00002218 + ldr r2, [r4, #0x50] + ldr r1, [r4, r1] + bl MOD70_0222F480 + ldr r0, [r4, #0x50] + add r0, r0, #1 + str r0, [r4, #0x50] +_0222DEAA: + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DEB2: + ldr r0, [r4, #0x54] + cmp r0, #0 + bne _0222DEBA +_0222DEB8: + b _0222E0E8 +_0222DEBA: + mov r0, #0xa + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DEC0: + add r0, r0, #1 + str r0, [r4, #0x4c] + add r0, r4, #0 + bl MOD70_0222D93C + b _0222E0E8 +_0222DECC: + mov r1, #0 + mov r0, #0x69 + add r2, r4, #0 + add r5, r1, #0 + lsl r0, r0, #4 +_0222DED6: + add r1, r1, #1 + strh r5, [r2, r0] + add r2, #0x10 + cmp r1, #0xd + blt _0222DED6 + ldr r0, _0222E0F8 ; =0x00002218 + ldr r0, [r4, r0] + bl FUN_0206B9AC + cmp r0, #0 + ble _0222DF12 + mov r0, #0x69 + lsl r0, r0, #4 + ldr r7, _0222E0F8 ; =0x00002218 + add r6, r4, r0 +_0222DEF4: + ldr r0, _0222E0F8 ; =0x00002218 + add r1, r5, #0 + ldr r0, [r4, r0] + bl FUN_0206B9B0 + add r1, r6, #0 + bl MOD70_0222E118 + ldr r0, [r4, r7] + add r6, #0x10 + add r5, r5, #1 + bl FUN_0206B9AC + cmp r5, r0 + blt _0222DEF4 +_0222DF12: + ldr r0, _0222E0FC ; =0x0000221C + mov r5, #0 + ldr r0, [r4, r0] + bl FUN_0206B9AC + cmp r0, #0 + ble _0222DF48 + mov r0, #0x69 + lsl r0, r0, #4 + ldr r7, _0222E0FC ; =0x0000221C + add r6, r4, r0 +_0222DF28: + ldr r0, _0222E0FC ; =0x0000221C + add r1, r5, #0 + ldr r0, [r4, r0] + bl FUN_0206B9B0 + add r1, r5, #6 + lsl r1, r1, #4 + add r1, r6, r1 + bl MOD70_0222E118 + ldr r0, [r4, r7] + add r5, r5, #1 + bl FUN_0206B9AC + cmp r5, r0 + blt _0222DF28 +_0222DF48: + mov r0, #0x75 + mov r1, #1 + lsl r0, r0, #4 + strh r1, [r4, r0] + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DF58: + bl FUN_02031190 + bl FUN_0202DFA4 + ldr r2, _0222E100 ; =0x00002224 + ldr r1, [r4, r2] + add r2, r2, #4 + add r2, r4, r2 + bl MOD70_0222F4BC + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DF74: + ldr r1, [r4, #0x54] + cmp r1, #3 + bne _0222DFD4 + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DF80: + ldr r0, [r4, #4] + bl FUN_02029EF8 + bl MOD70_0222F528 + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DF92: + ldr r1, [r4, #0x54] + cmp r1, #4 + bne _0222DFD4 + add r0, r0, #1 + str r0, [r4, #0x4c] + mov r0, #0x10 + mov r1, #0 + bl FUN_0201E6E4 + ldr r0, _0222E0F8 ; =0x00002218 + mov r1, #0 + ldr r0, [r4, r0] + add r2, r4, #0 + bl MOD70_0222DBEC + ldr r0, _0222E0FC ; =0x0000221C + mov r1, #6 + ldr r0, [r4, r0] + add r2, r4, #0 + bl MOD70_0222DBEC + mov r6, #0xce + mov r5, #0 + mov r7, #1 + lsl r6, r6, #2 +_0222DFC4: + ldr r0, [r4, r6] + add r1, r7, #0 + bl FUN_020200A0 + add r5, r5, #1 + add r4, r4, #4 + cmp r5, #2 + blt _0222DFC4 +_0222DFD4: + b _0222E0E8 +_0222DFD6: + mov r1, #0 + mov r0, #1 + add r2, r1, #0 + str r0, [sp] + mov r0, #8 + sub r2, #0x10 + mov r3, #0x1e + bl FUN_0200A208 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201797C + mov r0, #2 + mov r1, #1 + bl FUN_0201797C + mov r0, #3 + mov r1, #1 + bl FUN_0201797C + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222E010: + mov r0, #1 + bl FUN_0200A344 + cmp r0, #0 + beq _0222E0E8 + ldr r0, _0222E0F8 ; =0x00002218 + mov r1, #0 + ldr r0, [r4, r0] + bl FUN_0206B9B0 + mov r2, #0x7f + ldr r3, _0222E104 ; =0x000020F0 + lsl r2, r2, #4 + add r1, r0, #0 + mov r0, #0 + add r2, r4, r2 + add r3, r4, r3 + bl MOD70_0222EBFC + ldr r1, _0222E108 ; =0x00002110 + ldr r2, _0222E0F8 ; =0x00002218 + str r0, [r4, r1] + str r4, [sp] + ldr r0, _0222E10C ; =0x00000438 + mov r1, #0 + ldr r2, [r4, r2] + add r0, r4, r0 + add r3, r1, #0 + bl MOD70_0222ECD4 + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222E054: + mov r1, #0 + mov r0, #2 + add r2, r1, #0 + str r0, [sp] + mov r0, #8 + sub r2, #0x10 + mov r3, #0x17 + bl FUN_0200A208 + mov r0, #4 + mov r1, #1 + bl FUN_0201797C + mov r0, #5 + mov r1, #1 + bl FUN_0201797C + mov r0, #6 + mov r1, #1 + bl FUN_0201797C + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + add r0, r4, #0 + bl MOD70_02230BA8 + b _0222E0E8 +_0222E094: + mov r0, #2 + bl FUN_0200A344 + cmp r0, #0 + beq _0222E0E8 + ldr r0, _0222E110 ; =0x000005A8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200D0E0 + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _0222E114 ; =0x00000588 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0xf + mov r2, #1 + bl MOD70_02230F40 + mov r0, #2 + bl FUN_020166B8 + add sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0222E0E8: + mov r0, #0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222E0F0: .word 0x00000445 +_0222E0F4: .word 0x0000369C +_0222E0F8: .word 0x00002218 +_0222E0FC: .word 0x0000221C +_0222E100: .word 0x00002224 +_0222E104: .word 0x000020F0 +_0222E108: .word 0x00002110 +_0222E10C: .word 0x00000438 +_0222E110: .word 0x000005A8 +_0222E114: .word 0x00000588 + thumb_func_end MOD70_0222DD60 + + thumb_func_start MOD70_0222E118 +MOD70_0222E118: ; 0x0222E118 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_020669D4 + add r7, r0, #0 + add r0, r5, #0 + mov r1, #0x9a + mov r2, #0 + bl FUN_020671BC + strb r0, [r4, #4] + add r0, r5, #0 + mov r1, #5 + mov r2, #0 + bl FUN_020671BC + strh r0, [r4] + add r0, r5, #0 + mov r1, #0x70 + mov r2, #0 + bl FUN_020671BC + strb r0, [r4, #6] + add r0, r5, #0 + mov r1, #0x4c + mov r2, #0 + bl FUN_020671BC + strb r0, [r4, #5] + add r0, r5, #0 + mov r1, #0x6f + mov r2, #0 + bl FUN_020671BC + strh r0, [r4, #8] + add r0, r5, #0 + mov r1, #0xa1 + mov r2, #0 + bl FUN_020671BC + str r0, [r4, #0xc] + add r0, r5, #0 + mov r1, #6 + mov r2, #0 + bl FUN_020671BC + add r6, r0, #0 + add r0, r5, #0 + add r1, r7, #0 + bl FUN_02066A20 + ldrh r0, [r4] + cmp r0, #0 + beq _0222E18E + mov r1, #0x1c + bl FUN_02068678 + strh r0, [r4, #0xa] +_0222E18E: + cmp r6, #0 + beq _0222E19E + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + bl FUN_0206EA98 + add r0, r0, #1 + strh r0, [r4, #2] +_0222E19E: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD70_0222E118 + + thumb_func_start MOD70_0222E1A0 +MOD70_0222E1A0: ; 0x0222E1A0 + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #6 + bl _s32_div_f + ldr r0, _0222E20C ; =0x0000221C + add r7, r1, #0 + ldr r0, [r5, r0] + bl FUN_0206B9B0 + add r6, r0, #0 + add r0, r4, #0 + mov r1, #6 + bl _s32_div_f + add r1, r6, #0 + mov r2, #0x7f + mov r6, #0x32 + add r3, r0, #0 + lsl r2, r2, #4 + lsl r6, r6, #6 + mul r6, r3 + add r2, r5, r2 + add r2, r2, r6 + ldr r6, _0222E210 ; =0x000020F0 + lsl r3, r3, #4 + add r6, r5, r6 + mov r0, #1 + add r3, r6, r3 + bl MOD70_0222EBFC + ldr r1, _0222E214 ; =0x00002110 + ldr r2, _0222E20C ; =0x0000221C + str r0, [r5, r1] + str r5, [sp] + ldr r0, _0222E218 ; =0x00000438 + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + add r3, r7, #0 + bl MOD70_0222ECD4 + lsl r1, r4, #4 + add r2, r5, r1 + ldr r1, _0222E21C ; =0x00000694 + ldr r0, _0222E220 ; =0x0000040C + ldrb r1, [r2, r1] + ldr r0, [r5, r0] + add r1, r1, #5 + bl FUN_02020130 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222E20C: .word 0x0000221C +_0222E210: .word 0x000020F0 +_0222E214: .word 0x00002110 +_0222E218: .word 0x00000438 +_0222E21C: .word 0x00000694 +_0222E220: .word 0x0000040C + thumb_func_end MOD70_0222E1A0 + + thumb_func_start MOD70_0222E224 +MOD70_0222E224: ; 0x0222E224 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r1, r5, #0 + add r1, #0x88 + ldr r1, [r1] + cmp r1, #0xc + beq _0222E2B8 + cmp r1, #6 + bge _0222E29E + ldr r0, _0222E2BC ; =0x00002218 + ldr r0, [r5, r0] + bl FUN_0206B9B0 + add r4, r0, #0 + add r0, r5, #0 + add r0, #0x88 + ldr r0, [r0] + mov r1, #6 + bl _s32_div_f + mov r2, #0x7f + add r3, r0, #0 + lsl r2, r2, #4 + add r1, r4, #0 + add r4, r5, r2 + mov r2, #0x32 + lsl r2, r2, #6 + mul r2, r3 + add r2, r4, r2 + ldr r4, _0222E2C0 ; =0x000020F0 + lsl r3, r3, #4 + add r4, r5, r4 + mov r0, #0 + add r3, r4, r3 + bl MOD70_0222EBFC + ldr r1, _0222E2C4 ; =0x00002110 + add r3, r5, #0 + str r0, [r5, r1] + ldr r0, _0222E2C8 ; =0x00000438 + ldr r2, _0222E2BC ; =0x00002218 + str r5, [sp] + add r3, #0x88 + ldr r2, [r5, r2] + ldr r3, [r3] + add r0, r5, r0 + mov r1, #0 + bl MOD70_0222ECD4 + ldr r0, _0222E2C8 ; =0x00000438 + mov r1, #1 + add r0, r5, r0 + add r2, r5, #0 + bl MOD70_0222EF24 + ldr r0, _0222E2CC ; =0x0000040C + mov r1, #0 + ldr r0, [r5, r0] + bl FUN_020200A0 + pop {r3, r4, r5, pc} +_0222E29E: + bl MOD70_0222E1A0 + ldr r0, _0222E2C8 ; =0x00000438 + mov r1, #0 + add r0, r5, r0 + add r2, r5, #0 + bl MOD70_0222EF24 + ldr r0, _0222E2D0 ; =0x00000408 + mov r1, #0 + ldr r0, [r5, r0] + bl FUN_020200A0 +_0222E2B8: + pop {r3, r4, r5, pc} + nop +_0222E2BC: .word 0x00002218 +_0222E2C0: .word 0x000020F0 +_0222E2C4: .word 0x00002110 +_0222E2C8: .word 0x00000438 +_0222E2CC: .word 0x0000040C +_0222E2D0: .word 0x00000408 + thumb_func_end MOD70_0222E224 + + thumb_func_start MOD70_0222E2D4 +MOD70_0222E2D4: ; 0x0222E2D4 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0222E374 ; =0x00002214 + add r4, r0, #0 + ldr r1, [r4, r1] + cmp r1, #0 + beq _0222E2EA + blx r1 + mov r1, #5 + lsl r1, r1, #6 + str r0, [r4, r1] +_0222E2EA: + mov r0, #5 + lsl r0, r0, #6 + ldr r0, [r4, r0] + cmp r0, #3 + bhi _0222E314 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222E300: ; jump table + .short _0222E314 - _0222E300 - 2 ; case 0 + .short _0222E314 - _0222E300 - 2 ; case 1 + .short _0222E308 - _0222E300 - 2 ; case 2 + .short _0222E30E - _0222E300 - 2 ; case 3 +_0222E308: + add sp, #4 + mov r0, #2 + pop {r3, r4, pc} +_0222E30E: + add sp, #4 + mov r0, #3 + pop {r3, r4, pc} +_0222E314: + mov r0, #0 + mov r2, #0xce + str r0, [sp] + mov r0, #0x53 + lsl r2, r2, #2 + mov r3, #0x69 + lsl r0, r0, #2 + add r1, r4, #0 + lsl r3, r3, #4 + ldr r2, [r4, r2] + add r0, r4, r0 + add r1, #0x88 + add r3, r4, r3 + bl MOD70_0222F3DC + cmp r0, #0 + beq _0222E33C + add r0, r4, #0 + bl MOD70_0222E224 +_0222E33C: + mov r0, #1 + mov r2, #0xcf + str r0, [sp] + mov r0, #0x15 + lsl r2, r2, #2 + mov r3, #0x69 + lsl r0, r0, #4 + add r1, r4, #0 + lsl r3, r3, #4 + ldr r2, [r4, r2] + add r0, r4, r0 + add r1, #0x8c + add r3, r4, r3 + bl MOD70_0222F3DC + add r0, r4, #0 + add r0, #0x90 + bl MOD70_0222F2D8 + add r0, r4, #0 + add r4, #0x88 + ldr r2, [r4] + mov r1, #0x17 + bl MOD70_0222F440 + mov r0, #1 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0222E374: .word 0x00002214 + thumb_func_end MOD70_0222E2D4 + + thumb_func_start MOD70_0222E378 +MOD70_0222E378: ; 0x0222E378 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r0, #0x2d + lsl r0, r0, #4 + ldr r0, [r6, r0] + bl FUN_02009C0C + mov r0, #0x2e + lsl r0, r0, #4 + ldr r0, [r6, r0] + bl FUN_02009C0C + mov r0, #0xb5 + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009E04 + mov r0, #0xb9 + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009E04 + mov r7, #0xb + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #6 +_0222E3AC: + ldr r0, [r5, r7] + bl FUN_02008E2C + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _0222E3AC + mov r0, #0x65 + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_0201FD58 + bl FUN_02009FA0 + bl FUN_0201D12C + bl FUN_0201E08C + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD70_0222E378 + + thumb_func_start MOD70_0222E3D4 +MOD70_0222E3D4: ; 0x0222E3D4 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + ldr r0, _0222E42C ; =0x00002218 + mov r4, #0 + ldr r0, [r6, r0] + bl FUN_0206B9AC + cmp r0, #0 + ble _0222E402 + ldr r7, _0222E42C ; =0x00002218 + add r5, r6, #0 +_0222E3EA: + mov r0, #0x79 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02016A18 + ldr r0, [r6, r7] + add r5, r5, #4 + add r4, r4, #1 + bl FUN_0206B9AC + cmp r4, r0 + blt _0222E3EA +_0222E402: + ldr r0, _0222E430 ; =0x0000221C + mov r5, #0 + ldr r0, [r6, r0] + bl FUN_0206B9AC + cmp r0, #0 + ble _0222E42A + ldr r7, _0222E430 ; =0x0000221C + add r4, r6, #0 +_0222E414: + ldr r0, _0222E434 ; =0x000007A8 + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, [r6, r7] + add r4, r4, #4 + add r5, r5, #1 + bl FUN_0206B9AC + cmp r5, r0 + blt _0222E414 +_0222E42A: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222E42C: .word 0x00002218 +_0222E430: .word 0x0000221C +_0222E434: .word 0x000007A8 + thumb_func_end MOD70_0222E3D4 + + thumb_func_start MOD70_0222E438 +MOD70_0222E438: ; 0x0222E438 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + add r0, r5, #0 + bl FUN_0200628C + ldr r1, [r4, #0x5c] + str r1, [r0, #0x28] + add r0, r4, #0 + bl MOD70_0222E3D4 + mov r0, #0x19 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02021A20 + ldr r0, _0222E4D4 ; =0x0000221C + ldr r0, [r4, r0] + bl FUN_02016A18 + add r0, r4, #0 + bl MOD70_0222E378 + ldr r0, _0222E4D8 ; =0x00000438 + add r0, r4, r0 + bl MOD70_02230E88 + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD70_0222E848 + mov r1, #0x5d + lsl r1, r1, #2 + ldr r1, [r4, r1] + mov r0, #0x1a + bl FUN_02016A8C + mov r0, #0x61 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + bl FUN_0200AB18 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200AB18 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200AB18 + mov r0, #0x63 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02021A20 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0x1a + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_0222E4D4: .word 0x0000221C +_0222E4D8: .word 0x00000438 + thumb_func_end MOD70_0222E438 + + thumb_func_start MOD70_0222E4DC +MOD70_0222E4DC: ; 0x0222E4DC + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_0201AB60 + ldr r0, _0222E548 ; =0x00002110 + ldr r0, [r5, r0] + cmp r0, #0 + beq _0222E52E + sub r4, r0, #1 + mov r0, #0x7f + mov r2, #0x32 + lsl r0, r0, #4 + lsl r2, r2, #6 + add r1, r4, #0 + add r0, r5, r0 + mul r1, r2 + add r0, r0, r1 + bl GXS_LoadOBJ + lsl r1, r4, #4 + mov r0, #0x20 + add r2, r5, r1 + str r0, [sp] + mov r0, #0x1a + add r3, r4, #2 + ldr r1, _0222E54C ; =0x000020F0 + str r0, [sp, #4] + ldrh r0, [r2, r1] + add r1, r1, #4 + ldrh r1, [r2, r1] + mov r2, #5 + lsl r3, r3, #5 + bl FUN_02006930 + ldr r0, _0222E548 ; =0x00002110 + mov r1, #0 + str r1, [r5, r0] +_0222E52E: + bl FUN_0201C30C + bl FUN_02009F80 + ldr r3, _0222E550 ; =0x027E0000 + ldr r1, _0222E554 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + add sp, #8 + pop {r3, r4, r5, pc} + nop +_0222E548: .word 0x00002110 +_0222E54C: .word 0x000020F0 +_0222E550: .word 0x027E0000 +_0222E554: .word 0x00003FF8 + thumb_func_end MOD70_0222E4DC + + thumb_func_start MOD70_0222E558 +MOD70_0222E558: ; 0x0222E558 + push {r4, lr} + sub sp, #0x28 + ldr r4, _0222E574 ; =0x022311B0 + add r3, sp, #0 + mov r2, #5 +_0222E562: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _0222E562 + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_0222E574: .word 0x022311B0 + thumb_func_end MOD70_0222E558 + + thumb_func_start MOD70_0222E578 +MOD70_0222E578: ; 0x0222E578 + push {r4, r5, r6, r7, lr} + sub sp, #0xd4 + ldr r4, _0222E748 ; =0x022310B4 + add r3, sp, #0xc4 + add r5, r0, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r4, _0222E74C ; =0x0223115C + add r3, sp, #0xa8 + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r4] + mov r1, #0 + str r0, [r3] + add r0, r5, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r5, #0 + mov r1, #0 + bl FUN_02018744 + ldr r4, _0222E750 ; =0x02231124 + add r3, sp, #0x8c + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r4] + mov r1, #1 + str r0, [r3] + add r0, r5, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r5, #0 + mov r1, #1 + bl FUN_02018744 + ldr r4, _0222E754 ; =0x02231178 + add r3, sp, #0x70 + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r4] + mov r1, #2 + str r0, [r3] + add r0, r5, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r5, #0 + mov r1, #2 + bl FUN_02018744 + ldr r4, _0222E758 ; =0x02231194 + add r3, sp, #0x54 + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r4] + mov r1, #3 + str r0, [r3] + add r0, r5, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r4, _0222E75C ; =0x022310EC + add r3, sp, #0x38 + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r4] + str r0, [r3] + add r0, r5, #0 + mov r1, #4 + mov r3, #0 + bl FUN_02016C18 + add r0, r5, #0 + mov r1, #4 + bl FUN_02018744 + ldr r4, _0222E760 ; =0x02231108 + add r3, sp, #0x1c + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r4] + mov r1, #5 + str r0, [r3] + add r0, r5, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r4, _0222E764 ; =0x02231140 + add r3, sp, #0 + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r4] + mov r1, #6 + str r0, [r3] + add r0, r5, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x1a + bl FUN_02017F18 + mov r0, #1 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x1a + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x1a + bl FUN_02017F18 + mov r4, #0 + mov r6, #3 + add r7, r4, #0 +_0222E6BC: + lsl r1, r4, #0x18 + mov r2, #0 + add r0, r5, #0 + lsr r1, r1, #0x18 + add r3, r2, #0 + bl FUN_020179E0 + lsl r1, r4, #0x18 + add r0, r5, #0 + lsr r1, r1, #0x18 + add r2, r6, #0 + add r3, r7, #0 + bl FUN_020179E0 + 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 + cmp r4, #4 + blt _0222E6BC + mov r0, #0 + add r1, r0, #0 + bl FUN_0201797C + mov r0, #1 + mov r1, #0 + bl FUN_0201797C + mov r0, #2 + mov r1, #0 + bl FUN_0201797C + mov r0, #3 + mov r1, #0 + bl FUN_0201797C + mov r0, #4 + mov r1, #0 + bl FUN_0201797C + mov r0, #5 + mov r1, #0 + bl FUN_0201797C + mov r0, #6 + mov r1, #0 + bl FUN_0201797C + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _0222E768 ; =0xFFFF1FFF + and r0, r1 + str r0, [r2] + add sp, #0xd4 + pop {r4, r5, r6, r7, pc} + nop +_0222E748: .word 0x022310B4 +_0222E74C: .word 0x0223115C +_0222E750: .word 0x02231124 +_0222E754: .word 0x02231178 +_0222E758: .word 0x02231194 +_0222E75C: .word 0x022310EC +_0222E760: .word 0x02231108 +_0222E764: .word 0x02231140 +_0222E768: .word 0xFFFF1FFF + thumb_func_end MOD70_0222E578 + + thumb_func_start MOD70_0222E76C +MOD70_0222E76C: ; 0x0222E76C + push {r4, r5, r6, lr} + add r5, r0, #0 + add r0, r1, #0 + bl FUN_0200628C + add r4, r0, #0 + mov r2, #6 + ldr r0, _0222E830 ; =0x00000668 + str r4, [r5, #8] + mov r1, #4 + str r1, [r5, r0] + mov r3, #0 + str r3, [r5, #0x44] + sub r0, r0, #4 + str r3, [r5, r0] + mov r0, #0x5b + lsl r0, r0, #2 + str r2, [r5, r0] + add r1, r0, #4 + str r2, [r5, r1] + add r1, r5, #0 + add r1, #0x88 + str r3, [r1] + add r1, r5, #0 + add r1, #0x8c + str r2, [r1] + sub r0, #0x2c + str r3, [r5, r0] + str r3, [r5, #0x48] + ldr r0, _0222E834 ; =MOD70_0222F538 + ldr r1, _0222E838 ; =0x00002214 + str r3, [r5, #0x4c] + str r0, [r5, r1] + str r3, [r5, #0x60] + str r3, [r5, #0x64] + ldr r0, _0222E83C ; =0x00002110 + str r3, [r5, #0x5c] + str r3, [r5, r0] + ldr r0, _0222E840 ; =0x000036A0 + sub r6, r2, #7 + str r6, [r5, r0] + add r2, r0, #4 + str r6, [r5, r2] + add r2, r1, #0 + add r2, #0xac + str r3, [r5, r2] + add r2, r0, #0 + add r2, #0xc + str r3, [r5, r2] + add r0, #0x10 + str r3, [r5, r0] + add r0, r1, #4 + ldr r2, [r4, #8] + add r1, #0x10 + str r2, [r5, r0] + ldr r0, [r4, #0xc] + str r0, [r5, r1] + ldr r0, [r4, #0x10] + str r0, [r5, #4] + bl FUN_0206B8A4 + add r1, r0, #0 + mov r0, #0x1a + bl FUN_02016998 + ldr r1, _0222E844 ; =0x0000221C + str r0, [r5, r1] + ldr r0, [r5, r1] + mov r1, #6 + bl FUN_0206B8CC + bl FUN_0206B8A4 + add r2, r0, #0 + ldr r0, _0222E844 ; =0x0000221C + mov r1, #0xff + ldr r0, [r5, r0] + bl Call_FillMemWithValue + ldr r0, [r4, #4] + mov r1, #0x1a + bl FUN_020239A0 + mov r1, #0x63 + lsl r1, r1, #2 + str r0, [r5, r1] + sub r1, #8 + ldr r0, [r5, r1] + mov r1, #0x28 + bl FUN_0200A914 + mov r1, #0x19 + lsl r1, r1, #4 + str r0, [r5, r1] + ldr r0, [r4, #0x14] + bl FUN_02033778 + pop {r4, r5, r6, pc} + .align 2, 0 +_0222E830: .word 0x00000668 +_0222E834: .word MOD70_0222F538 +_0222E838: .word 0x00002214 +_0222E83C: .word 0x00002110 +_0222E840: .word 0x000036A0 +_0222E844: .word 0x0000221C + thumb_func_end MOD70_0222E76C + + thumb_func_start MOD70_0222E848 +MOD70_0222E848: ; 0x0222E848 + push {r4, lr} + add r4, r0, #0 + mov r1, #6 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #3 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD70_0222E848 + + thumb_func_start MOD70_0222E884 +MOD70_0222E884: ; 0x0222E884 + push {r4, r5, r6, lr} + sub sp, #8 + add r5, r2, #0 + mov r2, #1 + add r4, r3, #0 + str r2, [sp] + ldr r2, [sp, #0x20] + ldr r3, [sp, #0x24] + bl FUN_02006C98 + add r6, r0, #0 + beq _0222E8D6 + add r1, sp, #4 + bl FUN_020B0180 + cmp r0, #0 + beq _0222E8D0 + ldr r0, [sp, #0x1c] + cmp r0, #0 + bne _0222E8B2 + ldr r0, [sp, #4] + ldr r0, [r0, #8] + str r0, [sp, #0x1c] +_0222E8B2: + lsl r1, r4, #0x18 + add r0, r5, #0 + lsr r1, r1, #0x18 + bl FUN_0201886C + cmp r0, #0 + beq _0222E8D0 + ldr r2, [sp, #4] + lsl r1, r4, #0x18 + ldr r3, [sp, #0x1c] + add r0, r5, #0 + lsr r1, r1, #0x18 + add r2, #0xc + bl FUN_02017DFC +_0222E8D0: + add r0, r6, #0 + bl FUN_02016A18 +_0222E8D6: + add sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD70_0222E884 + + thumb_func_start MOD70_0222E8DC +MOD70_0222E8DC: ; 0x0222E8DC + push {r3, r4, lr} + sub sp, #4 + mov r1, #2 + add r4, r0, #0 + bl FUN_0201886C + add r2, r0, #0 + mov r0, #0 + mov r3, #6 + str r0, [sp] + add r0, r4, #0 + mov r1, #2 + lsl r3, r3, #8 + bl FUN_02017CE8 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD70_0222E8DC + + thumb_func_start MOD70_0222E900 +MOD70_0222E900: ; 0x0222E900 + push {r4, lr} + sub sp, #0x10 + mov r1, #0x5d + lsl r1, r1, #2 + ldr r4, [r0, r1] + sub r1, #0x54 + str r1, [sp] + mov r0, #0x1a + mov r1, #0 + str r0, [sp, #4] + mov r0, #0x36 + mov r2, #4 + add r3, r1, #0 + bl FUN_02006930 + mov r1, #0 + mov r0, #0x12 + lsl r0, r0, #4 + str r0, [sp] + mov r0, #0x1a + str r0, [sp, #4] + mov r0, #0x36 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02006930 + mov r0, #0 + add r1, r0, #0 + bl FUN_02017FE4 + mov r0, #4 + mov r1, #0 + bl FUN_02017FE4 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x1a + bl FUN_02002EEC + mov r0, #0 + str r0, [sp] + mov r0, #9 + lsl r0, r0, #0xa + str r0, [sp, #4] + mov r1, #1 + str r1, [sp, #8] + mov r0, #0x1a + str r0, [sp, #0xc] + mov r0, #0x36 + add r2, r4, #0 + mov r3, #2 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x1a + str r0, [sp, #0xc] + mov r0, #0x36 + mov r1, #3 + add r2, r4, #0 + mov r3, #2 + bl MOD70_0222E884 + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x1a + str r0, [sp, #0xc] + mov r0, #0x36 + mov r1, #4 + add r2, r4, #0 + mov r3, #3 + bl FUN_020068C8 + mov r0, #0 + mov r1, #0x40 + mov r2, #0x1a + bl FUN_02002EEC + mov r0, #0 + mov r1, #0x60 + mov r2, #0x1a + bl FUN_02002ED0 + mov r0, #0 + str r0, [sp] + mov r0, #2 + lsl r0, r0, #0xa + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x1a + str r0, [sp, #0xc] + mov r0, #0x36 + mov r1, #2 + add r2, r4, #0 + mov r3, #5 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x1a + mov r1, #5 + str r0, [sp, #0xc] + mov r0, #0x36 + add r2, r4, #0 + add r3, r1, #0 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x1a + mov r1, #6 + str r0, [sp, #0xc] + mov r0, #0x36 + add r2, r4, #0 + add r3, r1, #0 + bl FUN_020068C8 + mov r0, #4 + mov r1, #0x40 + mov r2, #0x1a + bl FUN_02002EEC + mov r0, #4 + mov r1, #0x60 + mov r2, #0x1a + bl FUN_02002ED0 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD70_0222E900 + + thumb_func_start MOD70_0222EA38 +MOD70_0222EA38: ; 0x0222EA38 + push {r4, lr} + sub sp, #0x10 + ldr r4, _0222EA64 ; =0x022310C4 + add r3, sp, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_0201D040 + mov r0, #0x14 + mov r1, #0x1a + bl FUN_0201E00C + bl FUN_0201D168 + bl FUN_0201E0BC + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_0222EA64: .word 0x022310C4 + thumb_func_end MOD70_0222EA38 + + thumb_func_start MOD70_0222EA68 +MOD70_0222EA68: ; 0x0222EA68 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x7f + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r2, #0x1a + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + mov r1, #0x66 + lsl r1, r1, #2 + mov r0, #0x2d + add r1, r5, r1 + mov r2, #0x1a + bl FUN_02008C9C + mov r1, #0x65 + lsl r1, r1, #2 + mov r7, #0xb + str r0, [r5, r1] + mov r6, #0 + add r4, r5, #0 + lsl r7, r7, #6 +_0222EAA6: + mov r0, #2 + add r1, r6, #0 + mov r2, #0x1a + bl FUN_02008DEC + str r0, [r4, r7] + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #4 + blt _0222EAA6 + mov r0, #0 + str r0, [sp] + mov r3, #1 + str r3, [sp, #4] + mov r0, #0x1a + str r0, [sp, #8] + mov r0, #0xb + lsl r0, r0, #6 + ldr r0, [r5, r0] + mov r1, #0x36 + mov r2, #7 + bl FUN_02008F34 + mov r1, #0x2d + lsl r1, r1, #4 + str r0, [r5, r1] + mov r2, #0 + str r2, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #9 + str r0, [sp, #8] + mov r0, #0x1a + sub r1, #0xc + str r0, [sp, #0xc] + ldr r0, [r5, r1] + mov r1, #0x36 + add r3, r2, #0 + bl FUN_02008FEC + mov r1, #0xb5 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x1a + sub r1, #0xc + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x36 + mov r2, #8 + mov r3, #1 + bl FUN_020090AC + mov r1, #0xb6 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0 + str r0, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x1a + sub r1, #0xc + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x36 + mov r2, #9 + mov r3, #1 + bl FUN_020090AC + mov r1, #0xb7 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r3, #1 + str r3, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x1a + sub r1, #0x1c + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x36 + mov r2, #0xa + bl FUN_02008F34 + mov r1, #0x2e + lsl r1, r1, #4 + str r0, [r5, r1] + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0xa + str r0, [sp, #8] + mov r0, #0x1a + mov r2, #0 + sub r1, #0x1c + str r0, [sp, #0xc] + ldr r0, [r5, r1] + mov r1, #0x36 + add r3, r2, #0 + bl FUN_02008FEC + mov r1, #0xb9 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r3, #1 + str r3, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x1a + sub r1, #0x1c + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x36 + mov r2, #0xb + bl FUN_020090AC + mov r1, #0xba + lsl r1, r1, #2 + str r0, [r5, r1] + mov r3, #1 + str r3, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x1a + sub r1, #0x1c + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x36 + mov r2, #0xc + bl FUN_020090AC + mov r1, #0xbb + lsl r1, r1, #2 + str r0, [r5, r1] + sub r1, #0x1c + ldr r0, [r5, r1] + bl FUN_02009A50 + mov r0, #0x2e + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02009A50 + mov r0, #0xb5 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02009CF0 + mov r0, #0xb9 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02009CF0 + bl FUN_0206B888 + mov r3, #0x80 + add r1, r0, #0 + str r3, [sp] + mov r0, #0x1a + str r0, [sp, #4] + mov r0, #0x13 + mov r2, #1 + add r3, #0xc0 + bl FUN_02006930 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD70_0222EA68 + + thumb_func_start MOD70_0222EBFC +MOD70_0222EBFC: ; 0x0222EBFC + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r5, r0, #0 + add r4, r2, #0 + add r0, r3, #0 + mov r2, #2 + add r6, r1, #0 + str r3, [sp, #0x20] + bl FUN_02068B68 + mov r1, #0 + add r0, r6, #0 + add r2, r1, #0 + bl FUN_020671BC + add r7, r0, #0 + add r0, r6, #0 + mov r1, #5 + mov r2, #0 + bl FUN_020671BC + mov r3, #0 + str r3, [sp] + mov r1, #0xa + str r1, [sp, #4] + str r1, [sp, #8] + str r4, [sp, #0xc] + str r7, [sp, #0x10] + str r3, [sp, #0x14] + mov r1, #2 + str r1, [sp, #0x18] + str r0, [sp, #0x1c] + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x20] + ldrh r0, [r0] + ldrh r1, [r1, #2] + mov r2, #0x1a + bl FUN_020124B4 + mov r1, #0x32 + add r0, r4, #0 + lsl r1, r1, #6 + bl DC_FlushRange + add r0, r5, #1 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD70_0222EBFC + + thumb_func_start MOD70_0222EC5C +MOD70_0222EC5C: ; 0x0222EC5C + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + add r6, r1, #0 + add r7, r2, #0 + mov r0, #0x14 + mov r1, #0x1a + str r3, [sp, #8] + bl FUN_020219F4 + add r4, r0, #0 + add r0, r6, #0 + add r1, r7, #0 + bl FUN_0206B9B0 + mov r1, #0x76 + add r2, r4, #0 + bl FUN_020671BC + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + ldr r0, [sp, #0x20] + ldr r2, [sp, #8] + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r4, #0 + mov r3, #0 + bl MOD70_02230EFC + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD70_0222EC5C + + thumb_func_start MOD70_0222ECA8 +MOD70_0222ECA8: ; 0x0222ECA8 + push {r4, lr} + ldrh r0, [r0] + add r4, r3, #0 + cmp r0, #0x1d + beq _0222ECB6 + cmp r0, #0x20 + bne _0222ECCE +_0222ECB6: + add r0, r1, #0 + add r1, r2, #0 + bl FUN_0206B9B0 + mov r1, #0x4d + mov r2, #0 + bl FUN_020671BC + cmp r0, #0 + bne _0222ECCE + mov r0, #2 + pop {r4, pc} +_0222ECCE: + add r0, r4, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD70_0222ECA8 + + thumb_func_start MOD70_0222ECD4 +MOD70_0222ECD4: ; 0x0222ECD4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x38 + add r6, r0, #0 + add r5, r1, #0 + add r0, r2, #0 + add r1, r3, #0 + str r2, [sp, #8] + str r3, [sp, #0xc] + ldr r4, [sp, #0x50] + bl FUN_0206B9B0 + mov r1, #2 + bl FUN_02068E14 + str r0, [sp, #0x10] + mov r0, #1 + lsl r0, r0, #0xa + add r7, r4, r0 + lsl r0, r5, #2 + str r0, [sp, #0x14] + ldr r0, [r7, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0xc + add r3, r5, #0 + mul r3, r0 + ldr r1, _0222EF10 ; =0x022311D8 + ldr r0, [sp, #0x14] + ldr r2, _0222EF14 ; =0x022311DC + ldr r1, [r1, r3] + ldr r3, [r2, r3] + ldr r2, [sp, #0x10] + ldr r0, [r7, r0] + add r2, r2, r3 + add r2, #0xc0 + bl MOD70_02230B70 + cmp r5, #0 + bne _0222ED36 + ldr r1, [sp, #0xc] + ldr r0, [sp, #0x14] + lsl r1, r1, #4 + add r2, r4, r1 + ldr r1, _0222EF18 ; =0x0000069A + ldr r0, [r7, r0] + ldrh r1, [r2, r1] + bl FUN_02020100 +_0222ED36: + ldr r1, [sp, #0xc] + mov r0, #1 + lsl r1, r1, #4 + add r2, r4, r1 + ldr r1, _0222EF1C ; =0x00000694 + lsl r0, r0, #0xa + add r7, r4, r0 + add r0, r5, #2 + ldrb r1, [r2, r1] + lsl r0, r0, #2 + str r0, [sp, #0x18] + ldr r0, [r7, r0] + add r1, r1, #5 + bl FUN_02020130 + ldr r0, [sp, #0x18] + mov r1, #1 + ldr r0, [r7, r0] + bl FUN_020200A0 + mov r0, #6 + str r0, [sp] + add r0, r5, #0 + add r0, #0x1a + lsl r0, r0, #4 + ldr r1, [sp, #8] + ldr r2, [sp, #0xc] + add r0, r6, r0 + mov r3, #9 + bl MOD70_0222EC5C + mov r7, #0x69 + mov r0, #6 + add r1, r5, #0 + mul r1, r0 + ldr r0, [sp, #0xc] + lsl r7, r7, #4 + add r0, r0, r1 + lsl r0, r0, #4 + str r0, [sp, #0x34] + add r1, r4, r7 + ldr r3, [sp, #0x34] + add r0, r1, r0 + add r3, r4, r3 + add r7, #8 + ldrh r3, [r3, r7] + ldr r1, [sp, #8] + ldr r2, [sp, #0xc] + bl MOD70_0222ECA8 + ldr r1, _0222EF20 ; =0x00000695 + add r2, r4, r1 + ldr r1, [sp, #0x34] + str r2, [sp, #0x1c] + ldrb r1, [r2, r1] + cmp r1, #0 + beq _0222EDAA + mov r0, #2 +_0222EDAA: + cmp r0, #0 + beq _0222EDCA + cmp r0, #1 + beq _0222EDF0 + cmp r0, #2 + bne _0222EE14 + add r0, r5, #4 + lsl r0, r0, #2 + add r1, r4, r0 + mov r0, #1 + lsl r0, r0, #0xa + ldr r0, [r1, r0] + mov r1, #0 + bl FUN_020200A0 + b _0222EE14 +_0222EDCA: + mov r0, #1 + lsl r0, r0, #0xa + add r0, r4, r0 + str r0, [sp, #0x20] + add r0, r5, #4 + lsl r0, r0, #2 + ldr r1, [sp, #0x20] + str r0, [sp, #0x24] + ldr r0, [r1, r0] + mov r1, #1 + bl FUN_020200A0 + ldr r1, [sp, #0x20] + ldr r0, [sp, #0x24] + ldr r0, [r1, r0] + mov r1, #0x17 + bl FUN_02020130 + b _0222EE14 +_0222EDF0: + mov r0, #1 + lsl r0, r0, #0xa + add r0, r4, r0 + str r0, [sp, #0x28] + add r0, r5, #4 + lsl r0, r0, #2 + ldr r1, [sp, #0x28] + str r0, [sp, #0x2c] + ldr r0, [r1, r0] + mov r1, #1 + bl FUN_020200A0 + ldr r1, [sp, #0x28] + ldr r0, [sp, #0x2c] + ldr r0, [r1, r0] + mov r1, #0x16 + bl FUN_02020130 +_0222EE14: + ldr r1, [sp, #0x1c] + ldr r0, [sp, #0x34] + ldrb r0, [r1, r0] + cmp r0, #0 + bne _0222EE9A + mov r0, #0xa + mov r1, #0x1a + bl FUN_020219F4 + add r7, r0, #0 + add r0, r5, #0 + add r0, #0x1c + lsl r0, r0, #4 + str r0, [sp, #0x30] + add r0, r6, r0 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x61 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x27 + add r2, r7, #0 + bl FUN_0200A8E0 + mov r0, #6 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + ldr r0, [sp, #0x30] + add r1, r7, #0 + add r0, r6, r0 + mov r2, #9 + mov r3, #0xff + bl MOD70_02230EFC + ldr r0, [sp, #8] + ldr r1, [sp, #0xc] + bl FUN_0206B9B0 + mov r1, #0xa0 + mov r2, #0 + bl FUN_020671BC + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + mov r0, #1 + str r0, [sp] + add r0, r7, #0 + mov r2, #3 + mov r3, #0 + bl FUN_02021B04 + mov r0, #0x1e + str r0, [sp] + ldr r0, [sp, #0x30] + mov r3, #0 + add r0, r6, r0 + add r1, r7, #0 + mov r2, #9 + str r3, [sp, #4] + bl MOD70_02230EFC + add r0, r7, #0 + bl FUN_02021A20 + b _0222EEA6 +_0222EE9A: + add r0, r5, #0 + add r0, #0x1c + lsl r0, r0, #4 + add r0, r6, r0 + bl FUN_02019570 +_0222EEA6: + mov r0, #3 + str r0, [sp] + mov r3, #0 + add r0, r5, #0 + mov r1, #0x19 + add r0, #0x1e + lsl r0, r0, #4 + str r3, [sp, #4] + lsl r1, r1, #4 + ldr r1, [r4, r1] + add r0, r6, r0 + mov r2, #7 + bl MOD70_02230EFC + ldr r0, [sp, #8] + ldr r1, [sp, #0xc] + bl FUN_0206B9B0 + mov r1, #6 + mov r2, #0 + bl FUN_020671BC + add r5, #0x20 + lsl r0, r0, #0x10 + lsl r4, r5, #4 + lsr r7, r0, #0x10 + add r0, r6, r4 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x14 + mov r1, #0x1a + bl FUN_020219F4 + add r1, r7, #0 + mov r2, #0x1a + add r5, r0, #0 + bl FUN_0206E768 + mov r0, #3 + str r0, [sp] + mov r3, #0 + add r0, r6, r4 + add r1, r5, #0 + mov r2, #9 + str r3, [sp, #4] + bl MOD70_02230EFC + add r0, r5, #0 + bl FUN_02021A20 + add sp, #0x38 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222EF10: .word 0x022311D8 +_0222EF14: .word 0x022311DC +_0222EF18: .word 0x0000069A +_0222EF1C: .word 0x00000694 +_0222EF20: .word 0x00000695 + thumb_func_end MOD70_0222ECD4 + + thumb_func_start MOD70_0222EF24 +MOD70_0222EF24: ; 0x0222EF24 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + add r6, r2, #0 + lsl r0, r4, #2 + add r1, r6, r0 + mov r0, #1 + lsl r0, r0, #0xa + ldr r0, [r1, r0] + mov r1, #0 + bl FUN_020200A0 + add r0, r4, #2 + lsl r0, r0, #2 + add r1, r6, r0 + mov r0, #1 + lsl r0, r0, #0xa + ldr r0, [r1, r0] + mov r1, #0 + bl FUN_020200A0 + add r0, r4, #4 + lsl r0, r0, #2 + add r1, r6, r0 + mov r0, #1 + lsl r0, r0, #0xa + ldr r0, [r1, r0] + mov r1, #0 + bl FUN_020200A0 + add r0, r4, #0 + add r0, #0x1a + lsl r0, r0, #4 + add r0, r5, r0 + bl FUN_02019570 + add r0, r4, #0 + add r0, #0x1c + lsl r0, r0, #4 + add r0, r5, r0 + bl FUN_02019570 + add r0, r4, #0 + add r0, #0x1e + lsl r0, r0, #4 + add r0, r5, r0 + bl FUN_02019570 + add r4, #0x20 + lsl r0, r4, #4 + add r0, r5, r0 + bl FUN_02019570 + pop {r4, r5, r6, pc} + thumb_func_end MOD70_0222EF24 + + thumb_func_start MOD70_0222EF90 +MOD70_0222EF90: ; 0x0222EF90 + push {r4, r5, r6, r7, lr} + sub sp, #0x5c + mov r1, #0 + add r5, r0, #0 + str r1, [sp] + sub r0, r1, #1 + str r0, [sp, #4] + str r0, [sp, #8] + mov r2, #0xb + str r1, [sp, #0xc] + mov r0, #2 + lsl r2, r2, #6 + str r0, [sp, #0x10] + ldr r0, [r5, r2] + add r3, r1, #0 + str r0, [sp, #0x14] + add r0, r2, #4 + ldr r0, [r5, r0] + str r0, [sp, #0x18] + add r0, r2, #0 + add r0, #8 + ldr r0, [r5, r0] + str r0, [sp, #0x1c] + add r0, r2, #0 + add r0, #0xc + ldr r0, [r5, r0] + add r2, #0x30 + str r0, [sp, #0x20] + str r1, [sp, #0x24] + add r0, r5, r2 + add r2, r1, #0 + str r1, [sp, #0x28] + bl FUN_02008AA4 + mov r1, #1 + mov r3, #0xb + str r1, [sp] + sub r0, r1, #2 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + lsl r3, r3, #6 + ldr r2, [r5, r3] + str r2, [sp, #0x14] + add r2, r3, #4 + ldr r2, [r5, r2] + str r2, [sp, #0x18] + add r2, r3, #0 + add r2, #8 + ldr r2, [r5, r2] + str r2, [sp, #0x1c] + add r2, r3, #0 + add r2, #0xc + ldr r2, [r5, r2] + add r3, #0x54 + str r2, [sp, #0x20] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + add r0, r5, r3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02008AA4 + mov r0, #0x65 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #2 + str r0, [sp, #0x2c] + mov r0, #0x2f + lsl r0, r0, #4 + add r0, r5, r0 + str r0, [sp, #0x30] + mov r0, #6 + lsl r1, r1, #0x10 + lsl r0, r0, #0x10 + str r0, [sp, #0x38] + lsr r0, r1, #5 + mov r7, #0 + str r1, [sp, #0x34] + str r7, [sp, #0x3c] + str r0, [sp, #0x40] + str r0, [sp, #0x44] + str r0, [sp, #0x48] + add r0, sp, #0x2c + strh r7, [r0, #0x20] + mov r0, #1 + str r0, [sp, #0x54] + mov r0, #0x1a + ldr r6, _0222F218 ; =0x02231220 + str r7, [sp, #0x50] + str r0, [sp, #0x58] + add r4, r5, #0 +_0222F04C: + ldr r0, [r6] + lsl r0, r0, #0xc + str r0, [sp, #0x34] + ldr r0, [r6, #4] + lsl r0, r0, #0xc + str r0, [sp, #0x38] + add r0, sp, #0x2c + bl FUN_0201FE94 + mov r1, #0xce + lsl r1, r1, #2 + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200BC + add r0, r4, #0 + mov r1, #0xce + add r0, #0x88 + lsl r1, r1, #2 + ldr r0, [r0] + ldr r1, [r4, r1] + add r2, r7, #0 + bl MOD70_0222F350 + mov r0, #0xce + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x64 + bl FUN_02020310 + mov r0, #0xce + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + add r7, r7, #1 + add r6, #8 + add r4, r4, #4 + cmp r7, #2 + blt _0222F04C + ldr r6, _0222F218 ; =0x02231220 + mov r7, #0 + add r4, r5, #0 +_0222F0A8: + ldr r0, [r6] + add r0, #0x10 + lsl r0, r0, #0xc + str r0, [sp, #0x34] + ldr r0, [r6, #4] + sub r0, r0, #6 + lsl r0, r0, #0xc + str r0, [sp, #0x38] + add r0, sp, #0x2c + bl FUN_0201FE94 + mov r1, #0x37 + lsl r1, r1, #4 + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x37 + lsl r0, r0, #4 + ldr r0, [r4, r0] + add r1, r7, #5 + bl FUN_02020130 + mov r0, #0x37 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #5 + bl FUN_02020310 + mov r0, #0x37 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + add r7, r7, #1 + add r6, #8 + add r4, r4, #4 + cmp r7, #0xc + blt _0222F0A8 + ldr r6, _0222F218 ; =0x02231220 + mov r7, #0 + add r4, r5, #0 +_0222F102: + ldr r0, [r6] + add r0, #0x24 + lsl r0, r0, #0xc + str r0, [sp, #0x34] + ldr r0, [r6, #4] + add r0, #0x10 + lsl r0, r0, #0xc + str r0, [sp, #0x38] + mov r0, #0 + str r0, [sp, #0x50] + add r0, sp, #0x2c + bl FUN_0201FE94 + mov r1, #0x3a + lsl r1, r1, #4 + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + mov r1, #3 + bl FUN_02020310 + mov r0, #0x3a + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + add r7, r7, #1 + add r6, #8 + add r4, r4, #4 + cmp r7, #0xc + blt _0222F102 + ldr r6, _0222F218 ; =0x02231220 + mov r7, #0 + add r4, r5, #0 +_0222F148: + ldr r0, [r6] + add r0, #0x2d + lsl r0, r0, #0xc + str r0, [sp, #0x34] + ldr r0, [r6, #4] + add r0, #0x10 + lsl r0, r0, #0xc + str r0, [sp, #0x38] + mov r0, #0 + str r0, [sp, #0x50] + add r0, sp, #0x2c + bl FUN_0201FE94 + mov r1, #0x3d + lsl r1, r1, #4 + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + mov r1, #3 + bl FUN_02020310 + mov r0, #0x3d + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + add r7, r7, #1 + add r6, #8 + add r4, r4, #4 + cmp r7, #0xc + blt _0222F148 + mov r0, #6 + lsl r0, r0, #0x10 + str r0, [sp, #0x34] + mov r0, #0x42 + lsl r0, r0, #0xc + str r0, [sp, #0x38] + add r0, sp, #0x2c + bl FUN_0201FE94 + ldr r1, _0222F21C ; =0x00000418 + str r0, [r5, r1] + ldr r0, [r5, r1] + mov r1, #1 + bl FUN_020200BC + ldr r0, _0222F21C ; =0x00000418 + mov r1, #0x14 + ldr r0, [r5, r0] + bl FUN_02020130 + ldr r0, _0222F21C ; =0x00000418 + mov r1, #0 + ldr r0, [r5, r0] + bl FUN_020200A0 + mov r0, #0xc5 + lsl r0, r0, #2 + ldr r4, _0222F220 ; =0x022311D8 + mov r6, #0 + add r7, r5, r0 +_0222F1C4: + ldr r0, [r4] + str r7, [sp, #0x30] + lsl r0, r0, #0xc + str r0, [sp, #0x34] + ldr r0, [r4, #4] + lsl r1, r0, #0xc + mov r0, #3 + lsl r0, r0, #0x12 + add r0, r1, r0 + str r0, [sp, #0x38] + mov r0, #2 + str r0, [sp, #0x54] + add r0, sp, #0x2c + bl FUN_0201FE94 + mov r1, #1 + lsl r1, r1, #0xa + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #1 + lsl r0, r0, #0xa + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200BC + mov r0, #1 + lsl r0, r0, #0xa + ldr r0, [r5, r0] + ldr r1, [r4, #8] + bl FUN_02020130 + add r6, r6, #1 + add r4, #0xc + add r5, r5, #4 + cmp r6, #6 + blt _0222F1C4 + add sp, #0x5c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222F218: .word 0x02231220 +_0222F21C: .word 0x00000418 +_0222F220: .word 0x022311D8 + thumb_func_end MOD70_0222EF90 + + thumb_func_start MOD70_0222F224 +MOD70_0222F224: ; 0x0222F224 + push {r3, r4} + ldr r3, _0222F260 ; =0x021C48B8 + mov r1, #0 + ldr r3, [r3, #0x4c] + mov r4, #0x40 + add r2, r1, #0 + tst r4, r3 + beq _0222F238 + mov r2, #1 + add r1, r1, #1 +_0222F238: + mov r4, #0x80 + tst r4, r3 + beq _0222F242 + mov r2, #2 + add r1, r1, #1 +_0222F242: + mov r4, #0x20 + tst r4, r3 + beq _0222F24C + mov r2, #3 + add r1, r1, #1 +_0222F24C: + mov r4, #0x10 + tst r3, r4 + beq _0222F256 + mov r2, #4 + add r1, r1, #1 +_0222F256: + cmp r1, #0 + beq _0222F25C + str r2, [r0] +_0222F25C: + pop {r3, r4} + bx lr + .align 2, 0 +_0222F260: .word 0x021C48B8 + thumb_func_end MOD70_0222F224 + + thumb_func_start MOD70_0222F264 +MOD70_0222F264: ; 0x0222F264 + push {r4, r5, r6, lr} + add r4, r0, #0 + add r0, #0x88 + ldr r0, [r0] + cmp r0, #6 + bge _0222F2CA + ldr r0, _0222F2CC ; =0x022310AC + bl FUN_02020988 + add r5, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r5, r0 + beq _0222F2CA + add r0, r4, #0 + add r0, #0x88 + ldr r0, [r0] + lsl r0, r0, #4 + add r2, r4, r0 + ldr r0, _0222F2D0 ; =0x00000695 + ldrb r1, [r2, r0] + cmp r1, #0 + bne _0222F2CA + sub r0, r0, #5 + ldrh r0, [r2, r0] + ldr r1, _0222F2D4 ; =0x000001B9 + cmp r0, r1 + bne _0222F2AE + ldr r0, [r4, #4] + bl FUN_02029EF8 + mov r1, #0 + mov r2, #0x64 + add r3, r1, #0 + bl FUN_02005E90 + b _0222F2B2 +_0222F2AE: + bl FUN_02005578 +_0222F2B2: + mov r0, #1 + lsl r0, r0, #0xa + add r4, r4, r0 + lsl r6, r5, #2 + ldr r0, [r4, r6] + mov r1, #1 + bl FUN_020200BC + ldr r0, [r4, r6] + add r1, r5, #4 + bl FUN_02020130 +_0222F2CA: + pop {r4, r5, r6, pc} + .align 2, 0 +_0222F2CC: .word 0x022310AC +_0222F2D0: .word 0x00000695 +_0222F2D4: .word 0x000001B9 + thumb_func_end MOD70_0222F264 + + thumb_func_start MOD70_0222F2D8 +MOD70_0222F2D8: ; 0x0222F2D8 + push {r3, lr} + ldrh r1, [r0] + add r1, #0x14 + strh r1, [r0] + ldrh r2, [r0] + mov r1, #0x5a + lsl r1, r1, #2 + cmp r2, r1 + bls _0222F2EE + mov r1, #0 + strh r1, [r0] +_0222F2EE: + ldrh r0, [r0] + bl FUN_0201B970 + mov r1, #0xa + mul r1, r0 + asr r0, r1, #0xb + lsr r0, r0, #0x14 + add r0, r1, r0 + asr r0, r0, #0xc + add r0, #0xf + lsl r1, r0, #5 + mov r0, #0x1d + orr r1, r0 + add r0, sp, #0 + strh r1, [r0] + add r0, sp, #0 + mov r1, #0x3a + mov r2, #2 + bl GX_LoadOBJPltt + pop {r3, pc} + thumb_func_end MOD70_0222F2D8 + + thumb_func_start MOD70_0222F318 +MOD70_0222F318: ; 0x0222F318 + push {r3, r4, r5, r6} + mov r5, #0x18 + mul r5, r0 + ldr r6, _0222F34C ; =0x02231288 + mov r0, #6 + mov r4, #0 + add r5, r6, r5 + mul r0, r1 + add r5, r5, r0 + add r3, r4, #0 + add r1, r5, #0 +_0222F32E: + ldrb r0, [r1] + lsl r0, r0, #4 + ldrh r0, [r2, r0] + cmp r0, #0 + beq _0222F33C + ldrb r4, [r5, r3] + b _0222F344 +_0222F33C: + add r3, r3, #1 + add r1, r1, #1 + cmp r3, #6 + blt _0222F32E +_0222F344: + add r0, r4, #0 + pop {r3, r4, r5, r6} + bx lr + nop +_0222F34C: .word 0x02231288 + thumb_func_end MOD70_0222F318 + + thumb_func_start MOD70_0222F350 +MOD70_0222F350: ; 0x0222F350 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r6, r1, #0 + add r4, r2, #0 + cmp r5, #0xd + blt _0222F362 + bl ErrorHandling +_0222F362: + ldr r1, _0222F3C8 ; =0x02231220 + lsl r0, r5, #3 + ldr r1, [r1, r0] + lsl r1, r1, #0xc + str r1, [sp] + ldr r1, _0222F3CC ; =0x02231224 + ldr r0, [r1, r0] + add r1, sp, #0 + lsl r0, r0, #0xc + str r0, [sp, #4] + cmp r5, #0xc + bne _0222F394 + add r0, r6, #0 + bl FUN_02020044 + mov r1, #0xc + add r2, r4, #0 + mul r2, r1 + ldr r1, _0222F3D0 ; =0x022310DC + add r0, r6, #0 + ldr r1, [r1, r2] + bl FUN_02020130 + add sp, #0xc + pop {r3, r4, r5, r6, pc} +_0222F394: + add r0, r6, #0 + bl FUN_02020044 + cmp r5, #6 + bge _0222F3B2 + mov r1, #0xc + add r2, r4, #0 + mul r2, r1 + ldr r1, _0222F3D4 ; =0x022310D4 + add r0, r6, #0 + ldr r1, [r1, r2] + bl FUN_02020130 + add sp, #0xc + pop {r3, r4, r5, r6, pc} +_0222F3B2: + mov r1, #0xc + add r2, r4, #0 + mul r2, r1 + ldr r1, _0222F3D8 ; =0x022310D8 + add r0, r6, #0 + ldr r1, [r1, r2] + bl FUN_02020130 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_0222F3C8: .word 0x02231220 +_0222F3CC: .word 0x02231224 +_0222F3D0: .word 0x022310DC +_0222F3D4: .word 0x022310D4 +_0222F3D8: .word 0x022310D8 + thumb_func_end MOD70_0222F350 + + thumb_func_start MOD70_0222F3DC +MOD70_0222F3DC: ; 0x0222F3DC + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + str r2, [sp] + ldr r0, [r5] + add r4, r1, #0 + ldr r2, [sp, #0x18] + sub r1, r0, #1 + mov r7, #0 + cmp r2, #0 + bne _0222F41C + cmp r0, #0 + beq _0222F416 + ldr r0, [r4] + add r2, r3, #0 + bl MOD70_0222F318 + ldr r1, [sp] + ldr r2, [sp, #0x18] + add r6, r0, #0 + bl MOD70_0222F350 + ldr r0, [r4] + cmp r0, r6 + beq _0222F416 + ldr r0, _0222F428 ; =0x000005DC + bl FUN_020054C8 + str r6, [r4] + mov r7, #1 +_0222F416: + mov r0, #0 + str r0, [r5] + b _0222F424 +_0222F41C: + ldr r0, [r4] + ldr r1, [sp] + bl MOD70_0222F350 +_0222F424: + add r0, r7, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222F428: .word 0x000005DC + thumb_func_end MOD70_0222F3DC + + thumb_func_start MOD70_0222F42C +MOD70_0222F42C: ; 0x0222F42C + push {r3, lr} + add r0, sp, #0 + strb r2, [r0] + add r0, r1, #0 + add r1, sp, #0 + mov r2, #1 + bl FUN_02030ADC + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD70_0222F42C + + thumb_func_start MOD70_0222F440 +MOD70_0222F440: ; 0x0222F440 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, _0222F470 ; =0x000036A0 + add r4, r1, #0 + ldr r1, [r5, r0] + add r6, r2, #0 + cmp r6, r1 + bne _0222F458 + add r0, r0, #4 + ldr r0, [r5, r0] + cmp r4, r0 + beq _0222F46C +_0222F458: + bl FUN_02031190 + add r1, r4, #0 + add r2, r6, #0 + bl MOD70_0222F42C + ldr r0, _0222F470 ; =0x000036A0 + str r6, [r5, r0] + add r0, r0, #4 + str r4, [r5, r0] +_0222F46C: + pop {r4, r5, r6, pc} + nop +_0222F470: .word 0x000036A0 + thumb_func_end MOD70_0222F440 + + thumb_func_start MOD70_0222F474 +MOD70_0222F474: ; 0x0222F474 + mov r2, #0x59 + lsl r2, r2, #4 + mul r2, r1 + add r0, r0, r2 + bx lr + .align 2, 0 + thumb_func_end MOD70_0222F474 + + thumb_func_start MOD70_0222F480 +MOD70_0222F480: ; 0x0222F480 + push {r3, r4, r5, lr} + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add r5, r1, #0 + add r4, r2, #0 + bl FUN_02030E7C + cmp r0, #0 + beq _0222F4A6 + add r0, r5, #0 + add r1, r4, #0 + bl MOD70_0222F474 + mov r2, #0x59 + add r1, r0, #0 + mov r0, #0x16 + lsl r2, r2, #4 + bl FUN_02030A78 +_0222F4A6: + pop {r3, r4, r5, pc} + thumb_func_end MOD70_0222F480 + + thumb_func_start MOD70_0222F4A8 +MOD70_0222F4A8: ; 0x0222F4A8 + push {r3, lr} + bl FUN_0202A918 + add r1, r0, #0 + mov r0, #0x20 + mov r2, #0xe + bl FUN_02030ADC + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD70_0222F4A8 + + thumb_func_start MOD70_0222F4BC +MOD70_0222F4BC: ; 0x0222F4BC + push {r4, r5, r6, lr} + add r4, r2, #0 + add r6, r0, #0 + add r5, r1, #0 + bl FUN_0202398C + add r1, r0, #0 + add r0, r4, #0 + bl StringCopy + add r0, r6, #0 + bl FUN_020239BC + str r0, [r4, #0x10] + add r0, r6, #0 + bl FUN_02023A70 + strb r0, [r4, #0x14] + add r0, r6, #0 + bl FUN_02023A68 + strb r0, [r4, #0x15] + add r0, r6, #0 + bl FUN_020239CC + strb r0, [r4, #0x16] + mov r0, #0 + add r1, r4, #0 +_0222F4F4: + ldr r2, [r5, #0x10] + str r2, [r1, #0x18] + ldrb r3, [r5, #0x15] + add r2, r4, r0 + add r2, #0x58 + strb r3, [r2] + add r2, r4, r0 + ldrb r3, [r5, #0x14] + add r2, #0x68 + add r1, r1, #4 + strb r3, [r2] + add r2, r4, r0 + ldrb r3, [r5, #0x16] + add r2, #0x78 + add r0, r0, #1 + add r5, #0x88 + strb r3, [r2] + cmp r0, #0x10 + blt _0222F4F4 + mov r0, #0x1c + add r1, r4, #0 + mov r2, #0x88 + bl FUN_02030A78 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD70_0222F4BC + + thumb_func_start MOD70_0222F528 +MOD70_0222F528: ; 0x0222F528 + ldr r3, _0222F534 ; =FUN_02030A78 + mov r2, #0xfa + add r1, r0, #0 + mov r0, #0x1d + lsl r2, r2, #2 + bx r3 + .align 2, 0 +_0222F534: .word FUN_02030A78 + thumb_func_end MOD70_0222F528 + + thumb_func_start MOD70_0222F538 +MOD70_0222F538: ; 0x0222F538 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x53 + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD70_0222F224 + ldr r0, _0222F588 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _0222F584 + mov r0, #0x53 + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #0 + bne _0222F584 + add r0, r4, #0 + add r0, #0x88 + ldr r0, [r0] + cmp r0, #0xc + bne _0222F56C + ldr r1, _0222F58C ; =MOD70_0222F674 + ldr r0, _0222F590 ; =0x00002214 + str r1, [r4, r0] + b _0222F584 +_0222F56C: + cmp r0, #6 + bge _0222F578 + ldr r1, _0222F594 ; =MOD70_0222FDD8 + ldr r0, _0222F590 ; =0x00002214 + str r1, [r4, r0] + b _0222F584 +_0222F578: + blt _0222F584 + cmp r0, #0xc + bge _0222F584 + ldr r1, _0222F598 ; =MOD70_02230810 + ldr r0, _0222F590 ; =0x00002214 + str r1, [r4, r0] +_0222F584: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_0222F588: .word 0x021C48B8 +_0222F58C: .word MOD70_0222F674 +_0222F590: .word 0x00002214 +_0222F594: .word MOD70_0222FDD8 +_0222F598: .word MOD70_02230810 + thumb_func_end MOD70_0222F538 + + thumb_func_start MOD70_0222F59C +MOD70_0222F59C: ; 0x0222F59C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bne _0222F5CC + ldr r0, _0222F660 ; =0x00002218 + ldr r0, [r5, r0] + str r0, [r5, #0xc] + ldr r0, [r5, #8] + ldr r0, [r0, #8] + bl FUN_0206B9AC + strb r0, [r5, #0x1f] + mov r0, #0 + str r0, [r5, #0x34] + bl FUN_02031190 + bl FUN_0202DFA4 + add r1, r0, #0 + add r0, r5, #0 + add r0, #0xc + bl FUN_0207C2A4 + b _0222F606 +_0222F5CC: + ldr r0, _0222F664 ; =0x0000221C + ldr r1, [r5, r0] + str r1, [r5, #0xc] + ldr r0, [r5, r0] + bl FUN_0206B9AC + strb r0, [r5, #0x1f] + bl FUN_02031190 + mov r2, #1 + ldr r1, _0222F668 ; =0x00002E14 + eor r2, r0 + mov r0, #0xfb + lsl r0, r0, #2 + add r1, r5, r1 + mul r0, r2 + add r0, r1, r0 + str r0, [r5, #0x34] + bl FUN_02031190 + mov r1, #1 + eor r0, r1 + bl FUN_0202DFA4 + add r1, r0, #0 + add r0, r5, #0 + add r0, #0xc + bl FUN_0207C2A4 +_0222F606: + mov r0, #1 + strb r0, [r5, #0x1d] + add r0, r5, #0 + add r0, #0x88 + ldr r0, [r0] + mov r1, #6 + bl _s32_div_f + add r0, r5, #0 + add r0, #0x20 + strb r1, [r0] + mov r0, #1 + strb r0, [r5, #0x1e] + mov r0, #0 + strh r0, [r5, #0x24] + ldr r0, [r5, #8] + ldr r0, [r0, #0x10] + bl FUN_02079C70 + str r0, [r5, #0x38] + ldr r0, [r5, #8] + ldr r0, [r0, #0x30] + str r0, [r5, #0x28] + ldr r0, [r5, #8] + ldr r0, [r0, #0x18] + str r0, [r5, #0x10] + ldr r0, [r5, #8] + ldr r0, [r0, #0x10] + bl FUN_0202A918 + str r0, [r5, #0x2c] + add r0, r5, #0 + ldr r1, _0222F66C ; =0x022313C0 + add r0, #0xc + bl FUN_0207B000 + add r1, r5, #0 + ldr r0, _0222F670 ; =0x020FA6E8 + add r1, #0xc + mov r2, #0x1a + bl FUN_02006234 + str r0, [r5, #0x40] + str r4, [r5, #0x3c] + pop {r3, r4, r5, pc} + .align 2, 0 +_0222F660: .word 0x00002218 +_0222F664: .word 0x0000221C +_0222F668: .word 0x00002E14 +_0222F66C: .word 0x022313C0 +_0222F670: .word 0x020FA6E8 + thumb_func_end MOD70_0222F59C + + thumb_func_start MOD70_0222F674 +MOD70_0222F674: ; 0x0222F674 + push {r4, lr} + sub sp, #0x10 + mov r1, #0 + add r4, r0, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _0222F6BC ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x19 + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _0222F6C0 ; =MOD70_0222F6C8 + ldr r0, _0222F6C4 ; =0x00002214 + str r1, [r4, r0] + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + nop +_0222F6BC: .word 0x000005A8 +_0222F6C0: .word MOD70_0222F6C8 +_0222F6C4: .word 0x00002214 + thumb_func_end MOD70_0222F674 + + thumb_func_start MOD70_0222F6C8 +MOD70_0222F6C8: ; 0x0222F6C8 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0x5d + ldr r2, _0222F778 ; =0x00000658 + lsl r0, r0, #2 + add r1, r4, r2 + add r2, #0xc + ldr r0, [r4, r0] + add r2, r4, r2 + bl MOD70_02230FB0 + cmp r0, #0 + beq _0222F6EE + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _0222F738 + b _0222F772 +_0222F6EE: + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _0222F77C ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x1c + mov r2, #1 + bl MOD70_02230F40 + add r0, r4, #0 + mov r1, #0x18 + mov r2, #1 + bl MOD70_0222F440 + ldr r1, _0222F780 ; =MOD70_0222FD9C + ldr r0, _0222F784 ; =0x00002214 + str r1, [r4, r0] + mov r0, #0 + str r0, [r4, #0x5c] + b _0222F772 +_0222F738: + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _0222F788 ; =0x00000588 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0xf + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _0222F78C ; =MOD70_0222F538 + ldr r0, _0222F784 ; =0x00002214 + str r1, [r4, r0] +_0222F772: + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_0222F778: .word 0x00000658 +_0222F77C: .word 0x000005A8 +_0222F780: .word MOD70_0222FD9C +_0222F784: .word 0x00002214 +_0222F788: .word 0x00000588 +_0222F78C: .word MOD70_0222F538 + thumb_func_end MOD70_0222F6C8 + + thumb_func_start MOD70_0222F790 +MOD70_0222F790: ; 0x0222F790 + push {r4, lr} + sub sp, #0x10 + mov r1, #0 + add r4, r0, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _0222F7D8 ; =0x000005A8 + ldr r1, [r4, #0x68] + ldr r3, [r4, r3] + add r0, r4, r0 + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _0222F7DC ; =MOD70_0222F7E4 + ldr r0, _0222F7E0 ; =0x00002214 + str r1, [r4, r0] + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + nop +_0222F7D8: .word 0x000005A8 +_0222F7DC: .word MOD70_0222F7E4 +_0222F7E0: .word 0x00002214 + thumb_func_end MOD70_0222F790 + + thumb_func_start MOD70_0222F7E4 +MOD70_0222F7E4: ; 0x0222F7E4 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + ldr r0, _0222F83C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _0222F834 + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _0222F840 ; =0x00000588 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0xf + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _0222F844 ; =MOD70_0222F538 + ldr r0, _0222F848 ; =0x00002214 + str r1, [r4, r0] + add r0, r4, #0 + bl MOD70_02230390 +_0222F834: + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + nop +_0222F83C: .word 0x021C48B8 +_0222F840: .word 0x00000588 +_0222F844: .word MOD70_0222F538 +_0222F848: .word 0x00002214 + thumb_func_end MOD70_0222F7E4 + + thumb_func_start MOD70_0222F84C +MOD70_0222F84C: ; 0x0222F84C + push {r3, r4, lr} + sub sp, #4 + ldr r4, _0222F86C ; =0x00003674 + add r3, r0, #0 + ldr r0, [r3, r4] + add r4, r4, #4 + str r0, [sp] + ldr r0, _0222F870 ; =0x000005A8 + mov r2, #1 + add r0, r3, r0 + ldr r3, [r3, r4] + bl MOD70_02230F40 + add sp, #4 + pop {r3, r4, pc} + nop +_0222F86C: .word 0x00003674 +_0222F870: .word 0x000005A8 + thumb_func_end MOD70_0222F84C + + thumb_func_start MOD70_0222F874 +MOD70_0222F874: ; 0x0222F874 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x5d + ldr r2, _0222F8B4 ; =0x00000658 + lsl r0, r0, #2 + add r1, r4, r2 + add r2, #0xc + ldr r0, [r4, r0] + add r2, r4, r2 + bl MOD70_02230FB0 + cmp r0, #0 + beq _0222F898 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _0222F8A0 + b _0222F8AE +_0222F898: + ldr r1, _0222F8B8 ; =MOD70_0222FBF0 + ldr r0, _0222F8BC ; =0x00002214 + str r1, [r4, r0] + b _0222F8AE +_0222F8A0: + add r0, r4, #0 + mov r1, #0x22 + bl MOD70_0222F84C + ldr r1, _0222F8C0 ; =MOD70_0222FADC + ldr r0, _0222F8BC ; =0x00002214 + str r1, [r4, r0] +_0222F8AE: + mov r0, #0 + pop {r4, pc} + nop +_0222F8B4: .word 0x00000658 +_0222F8B8: .word MOD70_0222FBF0 +_0222F8BC: .word 0x00002214 +_0222F8C0: .word MOD70_0222FADC + thumb_func_end MOD70_0222F874 + + thumb_func_start MOD70_0222F8C4 +MOD70_0222F8C4: ; 0x0222F8C4 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + mov r0, #0x5d + ldr r2, _0222F938 ; =0x00000658 + lsl r0, r0, #2 + add r1, r4, r2 + add r2, #0xc + ldr r0, [r4, r0] + add r2, r4, r2 + bl MOD70_02230FB0 + cmp r0, #0 + beq _0222F8EA + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _0222F910 + b _0222F932 +_0222F8EA: + ldr r1, _0222F93C ; =0x00003694 + ldr r0, [r4, r1] + sub r1, #0x24 + ldr r1, [r4, r1] + bl FUN_02028468 + mov r0, #0 + str r0, [sp] + ldr r1, _0222F940 ; =0x0000366C + ldr r0, [r4, #4] + ldr r1, [r4, r1] + mov r2, #0x1f + mov r3, #0x1a + bl FUN_02033A70 + ldr r1, _0222F944 ; =MOD70_0222FBF0 + ldr r0, _0222F948 ; =0x00002214 + str r1, [r4, r0] + b _0222F932 +_0222F910: + ldr r0, _0222F940 ; =0x0000366C + ldr r0, [r4, r0] + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, _0222F94C ; =0x00003674 + mov r1, #0 + ldr r0, [r4, r0] + bl FUN_0200ABC0 + add r0, r4, #0 + mov r1, #0x23 + bl MOD70_0222F84C + ldr r1, _0222F950 ; =MOD70_0222F874 + ldr r0, _0222F948 ; =0x00002214 + str r1, [r4, r0] +_0222F932: + mov r0, #0 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0222F938: .word 0x00000658 +_0222F93C: .word 0x00003694 +_0222F940: .word 0x0000366C +_0222F944: .word MOD70_0222FBF0 +_0222F948: .word 0x00002214 +_0222F94C: .word 0x00003674 +_0222F950: .word MOD70_0222F874 + thumb_func_end MOD70_0222F8C4 + + thumb_func_start MOD70_0222F954 +MOD70_0222F954: ; 0x0222F954 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r0, #0xda + lsl r0, r0, #6 + ldr r0, [r5, r0] + bl FUN_02001204 + add r4, r0, #0 + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + beq _0222F976 + add r0, r0, #1 + cmp r4, r0 + bne _0222F9A0 + mov r0, #0 + pop {r4, r5, r6, pc} +_0222F976: + ldr r0, _0222FA10 ; =0x000005DC + bl FUN_020054C8 + ldr r0, _0222FA14 ; =0x0000366C + ldr r0, [r5, r0] + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, _0222FA18 ; =0x00003674 + mov r1, #0 + ldr r0, [r5, r0] + bl FUN_0200ABC0 + add r0, r5, #0 + mov r1, #0x23 + bl MOD70_0222F84C + ldr r1, _0222FA1C ; =MOD70_0222F874 + ldr r0, _0222FA20 ; =0x00002214 + str r1, [r5, r0] + b _0222F9E4 +_0222F9A0: + ldr r0, _0222FA10 ; =0x000005DC + bl FUN_020054C8 + ldr r0, _0222FA24 ; =0x00003670 + str r4, [r5, r0] + mov r0, #0x1a + bl FUN_02023928 + add r6, r0, #0 + ldr r0, _0222FA28 ; =0x00003694 + add r1, r4, #0 + ldr r0, [r5, r0] + bl FUN_020283A4 + add r1, r0, #0 + add r0, r6, #0 + bl FUN_0202395C + ldr r0, _0222FA18 ; =0x00003674 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r6, #0 + bl FUN_0200ABC0 + add r0, r6, #0 + bl FUN_02016A18 + add r0, r5, #0 + mov r1, #0x24 + bl MOD70_0222F84C + ldr r1, _0222FA2C ; =MOD70_0222F8C4 + ldr r0, _0222FA20 ; =0x00002214 + str r1, [r5, r0] +_0222F9E4: + ldr r0, _0222FA30 ; =0x00003684 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _0222FA30 ; =0x00003684 + add r0, r5, r0 + bl FUN_02019178 + mov r0, #0xda + lsl r0, r0, #6 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, _0222FA34 ; =0x0000367C + ldr r0, [r5, r0] + bl FUN_02012870 + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_0222FA10: .word 0x000005DC +_0222FA14: .word 0x0000366C +_0222FA18: .word 0x00003674 +_0222FA1C: .word MOD70_0222F874 +_0222FA20: .word 0x00002214 +_0222FA24: .word 0x00003670 +_0222FA28: .word 0x00003694 +_0222FA2C: .word MOD70_0222F8C4 +_0222FA30: .word 0x00003684 +_0222FA34: .word 0x0000367C + thumb_func_end MOD70_0222F954 + + thumb_func_start MOD70_0222FA38 +MOD70_0222FA38: ; 0x0222FA38 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, _0222FACC ; =0x00003694 + ldr r0, [r5, r0] + bl FUN_02028448 + str r0, [sp] + add r0, r0, #1 + mov r1, #0x1a + bl FUN_02012838 + ldr r1, _0222FAD0 ; =0x0000367C + str r0, [r5, r1] + mov r0, #0x64 + mov r1, #0x1a + bl FUN_020219F4 + ldr r7, _0222FACC ; =0x00003694 + add r6, r0, #0 + mov r4, #0 +_0222FA60: + ldr r0, [r5, r7] + add r1, r4, #0 + bl FUN_0202842C + cmp r0, #0 + beq _0222FA8A + ldr r0, _0222FACC ; =0x00003694 + add r1, r4, #0 + ldr r0, [r5, r0] + bl FUN_020283A4 + add r1, r0, #0 + add r0, r6, #0 + bl FUN_02021E28 + ldr r0, _0222FAD0 ; =0x0000367C + add r1, r6, #0 + ldr r0, [r5, r0] + add r2, r4, #0 + bl FUN_020128A0 +_0222FA8A: + add r4, r4, #1 + cmp r4, #0x20 + blt _0222FA60 + ldr r1, _0222FAD0 ; =0x0000367C + mov r2, #0xb + ldr r0, [r5, r1] + sub r1, r1, #4 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0xd + bl FUN_02012880 + add r0, r6, #0 + bl FUN_02021A20 + ldr r2, _0222FAD0 ; =0x0000367C + mov r3, #0x5d + lsl r3, r3, #2 + ldr r0, [r5, r2] + add r2, #8 + ldr r1, [sp] + ldr r3, [r5, r3] + add r2, r5, r2 + bl MOD70_02231018 + mov r1, #0xda + lsl r1, r1, #6 + str r0, [r5, r1] + ldr r1, _0222FAD4 ; =MOD70_0222F954 + ldr r0, _0222FAD8 ; =0x00002214 + str r1, [r5, r0] + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222FACC: .word 0x00003694 +_0222FAD0: .word 0x0000367C +_0222FAD4: .word MOD70_0222F954 +_0222FAD8: .word 0x00002214 + thumb_func_end MOD70_0222FA38 + + thumb_func_start MOD70_0222FADC +MOD70_0222FADC: ; 0x0222FADC + push {r4, lr} + add r4, r0, #0 + mov r0, #0x5d + ldr r2, _0222FB30 ; =0x00000658 + lsl r0, r0, #2 + add r1, r4, r2 + add r2, #0xc + ldr r0, [r4, r0] + add r2, r4, r2 + bl MOD70_02230FB0 + cmp r0, #0 + beq _0222FB00 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _0222FB08 + b _0222FB2A +_0222FB00: + ldr r1, _0222FB34 ; =MOD70_0222FA38 + ldr r0, _0222FB38 ; =0x00002214 + str r1, [r4, r0] + b _0222FB2A +_0222FB08: + ldr r0, _0222FB3C ; =0x0000366C + ldr r0, [r4, r0] + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, _0222FB40 ; =0x00003674 + mov r1, #0 + ldr r0, [r4, r0] + bl FUN_0200ABC0 + add r0, r4, #0 + mov r1, #0x23 + bl MOD70_0222F84C + ldr r1, _0222FB44 ; =MOD70_0222F874 + ldr r0, _0222FB38 ; =0x00002214 + str r1, [r4, r0] +_0222FB2A: + mov r0, #0 + pop {r4, pc} + nop +_0222FB30: .word 0x00000658 +_0222FB34: .word MOD70_0222FA38 +_0222FB38: .word 0x00002214 +_0222FB3C: .word 0x0000366C +_0222FB40: .word 0x00003674 +_0222FB44: .word MOD70_0222F874 + thumb_func_end MOD70_0222FADC + + thumb_func_start MOD70_0222FB48 +MOD70_0222FB48: ; 0x0222FB48 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + mov r0, #0x5d + ldr r2, _0222FBC4 ; =0x00000658 + lsl r0, r0, #2 + add r1, r5, r2 + add r2, #0xc + ldr r0, [r5, r0] + add r2, r5, r2 + bl MOD70_02230FB0 + cmp r0, #0 + beq _0222FB6E + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _0222FBB6 + b _0222FBBC +_0222FB6E: + ldr r1, _0222FBC8 ; =MOD70_0222FBF0 + ldr r0, _0222FBCC ; =0x00002214 + ldr r6, _0222FBD0 ; =0x00003694 + str r1, [r5, r0] + mov r4, #0 +_0222FB78: + ldr r0, [r5, r6] + add r1, r4, #0 + bl FUN_0202842C + cmp r0, #0 + bne _0222FB98 + mov r0, #0 + str r0, [sp] + ldr r1, _0222FBD4 ; =0x0000366C + ldr r0, [r5, #4] + ldr r1, [r5, r1] + add r2, r4, #0 + mov r3, #0x1a + bl FUN_02033A70 + b _0222FB9E +_0222FB98: + add r4, r4, #1 + cmp r4, #0x20 + blt _0222FB78 +_0222FB9E: + cmp r4, #0x20 + bne _0222FBBC + add r0, r5, #0 + mov r1, #0x22 + bl MOD70_0222F84C + ldr r1, _0222FBD8 ; =MOD70_0222FADC + ldr r0, _0222FBCC ; =0x00002214 + add sp, #4 + str r1, [r5, r0] + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_0222FBB6: + ldr r1, _0222FBC8 ; =MOD70_0222FBF0 + ldr r0, _0222FBCC ; =0x00002214 + str r1, [r5, r0] +_0222FBBC: + mov r0, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_0222FBC4: .word 0x00000658 +_0222FBC8: .word MOD70_0222FBF0 +_0222FBCC: .word 0x00002214 +_0222FBD0: .word 0x00003694 +_0222FBD4: .word 0x0000366C +_0222FBD8: .word MOD70_0222FADC + thumb_func_end MOD70_0222FB48 + + thumb_func_start MOD70_0222FBDC +MOD70_0222FBDC: ; 0x0222FBDC + push {r3, lr} + mov r0, #0x13 + bl FUN_020315D8 + cmp r0, #0 + beq _0222FBEC + mov r0, #2 + pop {r3, pc} +_0222FBEC: + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD70_0222FBDC + + thumb_func_start MOD70_0222FBF0 +MOD70_0222FBF0: ; 0x0222FBF0 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r1, #0 + ldr r0, _0222FCE4 ; =0x0000366C + mvn r1, r1 + str r1, [r6, r0] + mov r4, #0 + bl FUN_02030F20 + cmp r0, #0 + ble _0222FC2C + ldr r7, _0222FCE8 ; =0x000035EC + add r5, r6, #0 +_0222FC0A: + ldr r0, [r5, r7] + cmp r0, #2 + bne _0222FC20 + ldr r0, _0222FCE4 ; =0x0000366C + lsl r1, r4, #2 + str r4, [r6, r0] + mov r2, #0 + add r1, r6, r1 + sub r0, #0x80 + str r2, [r1, r0] + b _0222FC2C +_0222FC20: + add r5, r5, #4 + add r4, r4, #1 + bl FUN_02030F20 + cmp r4, r0 + blt _0222FC0A +_0222FC2C: + ldr r0, _0222FCE4 ; =0x0000366C + mov r1, #0 + ldr r2, [r6, r0] + mvn r1, r1 + cmp r2, r1 + bne _0222FC70 + add r0, #0xc + ldr r0, [r6, r0] + bl FUN_0200A8B8 + ldr r0, _0222FCEC ; =0x00003674 + ldr r0, [r6, r0] + bl FUN_0200AB18 + mov r0, #0x13 + bl FUN_02031588 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r6, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _0222FCF0 ; =0x000005A8 + ldr r3, [r6, r3] + add r0, r6, r0 + mov r1, #0x1c + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _0222FCF4 ; =MOD70_0222FBDC + ldr r0, _0222FCF8 ; =0x00002214 + str r1, [r6, r0] + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_0222FC70: + ldr r0, [r6, #4] + bl FUN_0206F158 + ldr r1, _0222FCFC ; =0x000001B5 + mov r2, #1 + mov r3, #0x1a + bl FUN_0206EE50 + cmp r0, #1 + bne _0222FCAA + ldr r0, _0222FCE4 ; =0x0000366C + ldr r0, [r6, r0] + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, _0222FCEC ; =0x00003674 + mov r1, #0 + ldr r0, [r6, r0] + bl FUN_0200ABC0 + add r0, r6, #0 + mov r1, #0x21 + bl MOD70_0222F84C + ldr r1, _0222FD00 ; =MOD70_0222FB48 + ldr r0, _0222FCF8 ; =0x00002214 + str r1, [r6, r0] + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_0222FCAA: + ldr r0, [r6, #4] + bl FUN_020286EC + add r5, r0, #0 + mov r4, #0 +_0222FCB4: + add r0, r5, #0 + add r1, r4, #0 + bl FUN_0202842C + cmp r0, #0 + bne _0222FCD4 + mov r0, #0 + str r0, [sp] + ldr r1, _0222FCE4 ; =0x0000366C + ldr r0, [r6, #4] + ldr r1, [r6, r1] + add r2, r4, #0 + mov r3, #0x1a + bl FUN_02033A70 + b _0222FCDA +_0222FCD4: + add r4, r4, #1 + cmp r4, #0x20 + blt _0222FCB4 +_0222FCDA: + ldr r1, _0222FD04 ; =MOD70_0222FBF0 + ldr r0, _0222FCF8 ; =0x00002214 + str r1, [r6, r0] + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222FCE4: .word 0x0000366C +_0222FCE8: .word 0x000035EC +_0222FCEC: .word 0x00003674 +_0222FCF0: .word 0x000005A8 +_0222FCF4: .word MOD70_0222FBDC +_0222FCF8: .word 0x00002214 +_0222FCFC: .word 0x000001B5 +_0222FD00: .word MOD70_0222FB48 +_0222FD04: .word MOD70_0222FBF0 + thumb_func_end MOD70_0222FBF0 + + thumb_func_start MOD70_0222FD08 +MOD70_0222FD08: ; 0x0222FD08 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r1, _0222FD78 ; =0x000035EC + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0x1a + bl FUN_020339B4 + cmp r0, #0 + bne _0222FD48 + mov r0, #0x13 + bl FUN_02031588 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _0222FD7C ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x1c + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _0222FD80 ; =MOD70_0222FBDC + ldr r0, _0222FD84 ; =0x00002214 + add sp, #4 + str r1, [r4, r0] + mov r0, #0 + pop {r3, r4, pc} +_0222FD48: + mov r0, #0x1a + bl FUN_0200AA80 + ldr r1, _0222FD88 ; =0x00003674 + ldr r2, _0222FD8C ; =0x00000251 + str r0, [r4, r1] + mov r1, #0x1a + mov r0, #0 + add r3, r1, #0 + bl FUN_0200A86C + ldr r1, _0222FD90 ; =0x00003678 + str r0, [r4, r1] + ldr r0, [r4, #4] + bl FUN_020286EC + ldr r1, _0222FD94 ; =0x00003694 + str r0, [r4, r1] + ldr r1, _0222FD98 ; =MOD70_0222FBF0 + ldr r0, _0222FD84 ; =0x00002214 + str r1, [r4, r0] + mov r0, #0 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0222FD78: .word 0x000035EC +_0222FD7C: .word 0x000005A8 +_0222FD80: .word MOD70_0222FBDC +_0222FD84: .word 0x00002214 +_0222FD88: .word 0x00003674 +_0222FD8C: .word 0x00000251 +_0222FD90: .word 0x00003678 +_0222FD94: .word 0x00003694 +_0222FD98: .word MOD70_0222FBF0 + thumb_func_end MOD70_0222FD08 + + thumb_func_start MOD70_0222FD9C +MOD70_0222FD9C: ; 0x0222FD9C + ldr r2, [r0, #0x60] + cmp r2, #0 + beq _0222FDC8 + ldr r1, [r0, #0x64] + cmp r1, #0 + beq _0222FDC8 + cmp r2, #1 + bne _0222FDB8 + cmp r1, #1 + bne _0222FDB8 + ldr r2, _0222FDCC ; =MOD70_0222FD08 + ldr r1, _0222FDD0 ; =0x00002214 + str r2, [r0, r1] + b _0222FDBE +_0222FDB8: + ldr r2, _0222FDD4 ; =MOD70_0222F790 + ldr r1, _0222FDD0 ; =0x00002214 + str r2, [r0, r1] +_0222FDBE: + mov r1, #0 + str r1, [r0, #0x60] + str r1, [r0, #0x64] + mov r1, #0x1d + str r1, [r0, #0x68] +_0222FDC8: + mov r0, #0 + bx lr + .align 2, 0 +_0222FDCC: .word MOD70_0222FD08 +_0222FDD0: .word 0x00002214 +_0222FDD4: .word MOD70_0222F790 + thumb_func_end MOD70_0222FD9C + + thumb_func_start MOD70_0222FDD8 +MOD70_0222FDD8: ; 0x0222FDD8 + push {r3, r4, lr} + sub sp, #0x1c + add r4, r0, #0 + mov r0, #0 + add r1, sp, #0x10 + strb r0, [r1, #8] + mov r0, #1 + strb r0, [r1, #9] + mov r0, #3 + strb r0, [r1, #0xa] + ldrb r2, [r1, #0xb] + mov r0, #0xf + bic r2, r0 + strb r2, [r1, #0xb] + ldrb r2, [r1, #0xb] + mov r0, #0x30 + bic r2, r0 + strb r2, [r1, #0xb] + ldrb r2, [r1, #0xb] + mov r0, #0xc0 + bic r2, r0 + strb r2, [r1, #0xb] + ldr r0, _0222FED0 ; =0x00002218 + add r1, r4, #0 + add r1, #0x88 + ldr r0, [r4, r0] + ldr r1, [r1] + bl FUN_0206B9B0 + bl FUN_020690E4 + add r2, r0, #0 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200ACF8 + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5f + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #8 + str r0, [sp] + ldr r0, _0222FED4 ; =0x00000598 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x10 + mov r2, #1 + bl MOD70_02230F40 + mov r0, #3 + mov r1, #0x1a + bl FUN_02012838 + ldr r1, _0222FED8 ; =0x0000065C + mov r2, #0x11 + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #0x61 + lsl r1, r1, #2 + ldr r1, [r4, r1] + mov r3, #0 + bl FUN_02012880 + ldr r0, _0222FED8 ; =0x0000065C + mov r1, #0x61 + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + mov r2, #0x12 + mov r3, #1 + bl FUN_02012880 + ldr r0, _0222FED8 ; =0x0000065C + mov r1, #0x61 + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + mov r2, #0x13 + mov r3, #2 + bl FUN_02012880 + ldr r0, _0222FED8 ; =0x0000065C + ldr r1, [r4, r0] + str r1, [sp, #0x10] + sub r0, #0xa4 + add r0, r4, r0 + str r0, [sp, #0x14] + bl MOD70_02231004 + mov r0, #0x1a + str r0, [sp] + mov r0, #2 + mov r2, #0 + str r0, [sp, #4] + add r0, sp, #0x10 + mov r1, #8 + add r3, r2, #0 + bl FUN_02001C14 + mov r1, #0x66 + lsl r1, r1, #4 + str r0, [r4, r1] + ldr r1, _0222FEDC ; =MOD70_0222FEE4 + ldr r0, _0222FEE0 ; =0x00002214 + str r1, [r4, r0] + mov r0, #0 + add sp, #0x1c + pop {r3, r4, pc} + nop +_0222FED0: .word 0x00002218 +_0222FED4: .word 0x00000598 +_0222FED8: .word 0x0000065C +_0222FEDC: .word MOD70_0222FEE4 +_0222FEE0: .word 0x00002214 + thumb_func_end MOD70_0222FDD8 + + thumb_func_start MOD70_0222FEE4 +MOD70_0222FEE4: ; 0x0222FEE4 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0x66 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02001C78 + cmp r0, #2 + bhi _0222FF06 + cmp r0, #0 + beq _0222FF10 + cmp r0, #1 + beq _0222FF64 + cmp r0, #2 + beq _0222FFB4 + b _02230002 +_0222FF06: + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _0222FFB4 + b _02230002 +_0222FF10: + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _02230008 ; =0x00000588 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0xf + mov r2, #1 + bl MOD70_02230F40 + mov r0, #0x66 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _0223000C ; =0x0000065C + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r1, _02230010 ; =MOD70_0222F538 + ldr r0, _02230014 ; =0x00002214 + add sp, #0x10 + str r1, [r4, r0] + mov r0, #3 + pop {r4, pc} +_0222FF64: + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _02230018 ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x14 + mov r2, #1 + bl MOD70_02230F40 + mov r0, #0x66 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _0223000C ; =0x0000065C + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r1, _0223001C ; =MOD70_02230020 + ldr r0, _02230014 ; =0x00002214 + str r1, [r4, r0] + b _02230002 +_0222FFB4: + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _02230008 ; =0x00000588 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0xf + mov r2, #1 + bl MOD70_02230F40 + mov r0, #0x66 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _0223000C ; =0x0000065C + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r1, _02230010 ; =MOD70_0222F538 + ldr r0, _02230014 ; =0x00002214 + str r1, [r4, r0] +_02230002: + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_02230008: .word 0x00000588 +_0223000C: .word 0x0000065C +_02230010: .word MOD70_0222F538 +_02230014: .word 0x00002214 +_02230018: .word 0x000005A8 +_0223001C: .word MOD70_02230020 + thumb_func_end MOD70_0222FEE4 + + thumb_func_start MOD70_02230020 +MOD70_02230020: ; 0x02230020 + push {r4, lr} + sub sp, #0x10 + mov r1, #0 + add r4, r0, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _02230070 ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x14 + mov r2, #1 + bl MOD70_02230F40 + add r0, r4, #0 + mov r1, #0x18 + mov r2, #2 + bl MOD70_0222F440 + ldr r1, _02230074 ; =MOD70_0223007C + ldr r0, _02230078 ; =0x00002214 + str r1, [r4, r0] + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_02230070: .word 0x000005A8 +_02230074: .word MOD70_0223007C +_02230078: .word 0x00002214 + thumb_func_end MOD70_02230020 + + thumb_func_start MOD70_0223007C +MOD70_0223007C: ; 0x0223007C + ldr r2, [r0, #0x60] + cmp r2, #0 + beq _022300A8 + ldr r1, [r0, #0x64] + cmp r1, #0 + beq _022300A8 + cmp r2, #2 + bne _02230098 + cmp r1, #2 + bne _02230098 + ldr r2, _022300AC ; =MOD70_022300B8 + ldr r1, _022300B0 ; =0x00002214 + str r2, [r0, r1] + b _0223009E +_02230098: + ldr r2, _022300B4 ; =MOD70_0222F790 + ldr r1, _022300B0 ; =0x00002214 + str r2, [r0, r1] +_0223009E: + mov r1, #0x18 + str r1, [r0, #0x68] + mov r1, #0 + str r1, [r0, #0x60] + str r1, [r0, #0x64] +_022300A8: + mov r0, #0 + bx lr + .align 2, 0 +_022300AC: .word MOD70_022300B8 +_022300B0: .word 0x00002214 +_022300B4: .word MOD70_0222F790 + thumb_func_end MOD70_0223007C + + thumb_func_start MOD70_022300B8 +MOD70_022300B8: ; 0x022300B8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r7, r0, #0 + ldr r0, _022301D8 ; =0x00000438 + mov r6, #0 + add r0, r7, r0 + add r4, r7, #0 + add r5, r7, #0 + str r0, [sp, #4] +_022300CA: + add r0, r7, #0 + add r0, #0x88 + ldr r0, [r0] + cmp r6, r0 + beq _02230108 + mov r0, #0x37 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + ldr r0, _022301DC ; =0x00000692 + ldrh r0, [r5, r0] + cmp r0, #0 + beq _022300F4 + mov r0, #0x3a + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 +_022300F4: + ldr r0, _022301E0 ; =0x0000069C + ldr r0, [r5, r0] + cmp r0, #0 + beq _02230108 + mov r0, #0x3d + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 +_02230108: + add r0, r6, #7 + lsl r1, r0, #4 + ldr r0, [sp, #4] + add r0, r0, r1 + bl FUN_0201958C + add r0, r7, #0 + add r0, #0x8c + ldr r0, [r0] + sub r0, r0, #6 + cmp r6, r0 + beq _02230154 + mov r0, #0xe2 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + ldr r0, _022301E4 ; =0x000006F2 + ldrh r0, [r5, r0] + cmp r0, #0 + beq _02230140 + mov r0, #0xee + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 +_02230140: + ldr r0, _022301E8 ; =0x000006FC + ldr r0, [r5, r0] + cmp r0, #0 + beq _02230154 + mov r0, #0xfa + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 +_02230154: + add r0, r6, #0 + add r0, #0xd + lsl r1, r0, #4 + ldr r0, [sp, #4] + add r0, r0, r1 + bl FUN_0201958C + add r6, r6, #1 + add r4, r4, #4 + add r5, #0x10 + cmp r6, #6 + blt _022300CA + mov r0, #0xce + lsl r0, r0, #2 + ldr r0, [r7, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0xcf + lsl r0, r0, #2 + ldr r0, [r7, r0] + mov r1, #0 + bl FUN_020200A0 + add r0, r7, #0 + add r0, #0x88 + ldr r0, [r0] + mov r3, #0x30 + lsl r2, r0, #3 + ldr r1, _022301EC ; =0x02231220 + ldr r0, _022301F0 ; =0x000022C4 + ldr r1, [r1, r2] + ldr r4, _022301F4 ; =0x02231224 + add r0, r7, r0 + ldr r2, [r4, r2] + add r1, #0x10 + sub r2, r2, #6 + str r3, [sp] + bl MOD70_02230204 + add r0, r7, #0 + add r0, #0x8c + ldr r0, [r0] + ldr r1, _022301EC ; =0x02231220 + lsl r2, r0, #3 + mov r0, #0x30 + str r0, [sp] + ldr r0, _022301F8 ; =0x000022DC + ldr r1, [r1, r2] + add r3, r4, #0 + ldr r2, [r3, r2] + add r0, r7, r0 + add r1, #0x10 + sub r2, r2, #6 + mov r3, #0xb0 + bl MOD70_02230204 + ldr r1, _022301FC ; =0x000022BC + mov r0, #0 + str r0, [r7, r1] + ldr r2, _02230200 ; =MOD70_0223029C + sub r1, #0xa8 + str r2, [r7, r1] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_022301D8: .word 0x00000438 +_022301DC: .word 0x00000692 +_022301E0: .word 0x0000069C +_022301E4: .word 0x000006F2 +_022301E8: .word 0x000006FC +_022301EC: .word 0x02231220 +_022301F0: .word 0x000022C4 +_022301F4: .word 0x02231224 +_022301F8: .word 0x000022DC +_022301FC: .word 0x000022BC +_02230200: .word MOD70_0223029C + thumb_func_end MOD70_022300B8 + + thumb_func_start MOD70_02230204 +MOD70_02230204: ; 0x02230204 + lsl r1, r1, #0xc + str r1, [r0] + lsl r1, r2, #0xc + str r1, [r0, #4] + lsl r1, r3, #0xc + str r1, [r0, #0xc] + ldr r1, [sp] + lsl r1, r1, #0xc + str r1, [r0, #0x10] + bx lr + thumb_func_end MOD70_02230204 + + thumb_func_start MOD70_02230218 +MOD70_02230218: ; 0x02230218 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x30 + ldr r7, [sp, #0x48] + str r0, [sp] + ldr r4, [r7] + ldr r0, [r7, #0xc] + str r1, [sp, #4] + add r6, r3, #0 + sub r0, r0, r4 + mov r1, #0x14 + str r2, [sp, #8] + ldr r5, [sp, #0x4c] + bl _s32_div_f + mul r0, r6 + add r0, r4, r0 + str r0, [sp, #0x24] + ldr r4, [r7, #4] + ldr r0, [r7, #0x10] + mov r1, #0x14 + sub r0, r0, r4 + bl _s32_div_f + mul r0, r6 + add r0, r4, r0 + str r0, [sp, #0x28] + ldr r0, [sp] + add r1, sp, #0x24 + bl FUN_02020044 + ldrh r0, [r5, #2] + cmp r0, #0 + beq _02230276 + mov r0, #5 + ldr r1, [sp, #0x24] + lsl r0, r0, #0xe + add r0, r1, r0 + str r0, [sp, #0x18] + mov r0, #0x16 + ldr r1, [sp, #0x28] + lsl r0, r0, #0xc + add r0, r1, r0 + str r0, [sp, #0x1c] + ldr r0, [sp, #4] + add r1, sp, #0x18 + bl FUN_02020044 +_02230276: + ldr r0, [r5, #0xc] + cmp r0, #0 + beq _02230298 + mov r0, #7 + ldr r1, [sp, #0x24] + lsl r0, r0, #0xe + add r0, r1, r0 + str r0, [sp, #0xc] + mov r0, #0x16 + ldr r1, [sp, #0x28] + lsl r0, r0, #0xc + add r0, r1, r0 + str r0, [sp, #0x10] + ldr r0, [sp, #8] + add r1, sp, #0xc + bl FUN_02020044 +_02230298: + add sp, #0x30 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD70_02230218 + + thumb_func_start MOD70_0223029C +MOD70_0223029C: ; 0x0223029C + push {r3, r4, r5, lr} + sub sp, #8 + ldr r3, _02230370 ; =0x000022BC + add r4, r0, #0 + ldr r0, [r4, r3] + add r2, r3, #0 + add r0, r0, #1 + str r0, [r4, r3] + add r0, r4, #0 + add r0, #0x88 + ldr r1, [r0] + add r2, #8 + add r2, r4, r2 + lsl r0, r1, #2 + str r2, [sp] + mov r2, #0x69 + lsl r2, r2, #4 + add r2, r4, r2 + lsl r1, r1, #4 + add r1, r2, r1 + mov r2, #0x37 + str r1, [sp, #4] + lsl r2, r2, #4 + add r5, r4, r0 + add r1, r2, #0 + ldr r0, [r5, r2] + add r1, #0x30 + add r2, #0x60 + ldr r1, [r5, r1] + ldr r2, [r5, r2] + ldr r3, [r4, r3] + bl MOD70_02230218 + add r0, r4, #0 + add r0, #0x8c + ldr r3, _02230374 ; =0x000022DC + ldr r5, [r0] + add r1, r4, r3 + str r1, [sp] + mov r1, #0x69 + lsl r1, r1, #4 + add r2, r4, r1 + lsl r1, r5, #4 + add r1, r2, r1 + mov r2, #0x37 + lsl r0, r5, #2 + lsl r2, r2, #4 + str r1, [sp, #4] + add r5, r4, r0 + add r1, r2, #0 + ldr r0, [r5, r2] + add r1, #0x30 + add r2, #0x60 + sub r3, #0x20 + ldr r1, [r5, r1] + ldr r2, [r5, r2] + ldr r3, [r4, r3] + bl MOD70_02230218 + ldr r1, _02230370 ; =0x000022BC + ldr r0, [r4, r1] + cmp r0, #0x15 + bne _02230368 + mov r0, #1 + add r2, r4, #0 + str r0, [sp] + ldr r0, _02230378 ; =0x00000568 + sub r1, #0xa4 + add r2, #0x88 + ldr r1, [r4, r1] + ldr r2, [r2] + add r0, r4, r0 + mov r3, #8 + bl MOD70_0222EC5C + mov r0, #1 + add r2, r4, #0 + str r0, [sp] + ldr r1, _0223037C ; =0x0000221C + add r2, #0x8c + ldr r0, _02230380 ; =0x00000578 + ldr r2, [r2] + ldr r1, [r4, r1] + add r0, r4, r0 + sub r2, r2, #6 + mov r3, #8 + bl MOD70_0222EC5C + add r1, r4, #0 + add r1, #0x8c + ldr r1, [r1] + add r0, r4, #0 + bl MOD70_0222E1A0 + ldr r1, _02230384 ; =MOD70_022304AC + ldr r0, _02230388 ; =0x00002214 + str r1, [r4, r0] + ldr r0, _0223038C ; =0x00000418 + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_020200A0 +_02230368: + mov r0, #0 + add sp, #8 + pop {r3, r4, r5, pc} + nop +_02230370: .word 0x000022BC +_02230374: .word 0x000022DC +_02230378: .word 0x00000568 +_0223037C: .word 0x0000221C +_02230380: .word 0x00000578 +_02230384: .word MOD70_022304AC +_02230388: .word 0x00002214 +_0223038C: .word 0x00000418 + thumb_func_end MOD70_0223029C + + thumb_func_start MOD70_02230390 +MOD70_02230390: ; 0x02230390 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + ldr r1, _0223048C ; =0x00000568 + str r0, [sp] + add r0, r0, r1 + bl FUN_0201958C + ldr r1, _02230490 ; =0x00000578 + ldr r0, [sp] + add r0, r0, r1 + bl FUN_0201958C + ldr r6, [sp] + ldr r1, _02230494 ; =0x00000438 + add r0, r6, #0 + add r0, r0, r1 + ldr r4, _02230498 ; =0x02231220 + mov r7, #0 + add r5, r6, #0 + str r0, [sp, #4] +_022303B8: + mov r0, #0x69 + lsl r0, r0, #4 + ldrh r0, [r6, r0] + cmp r0, #0 + beq _02230438 + mov r0, #0x37 + lsl r0, r0, #4 + ldr r1, [r4] + ldr r2, [r4, #4] + ldr r0, [r5, r0] + add r1, #0x10 + sub r2, r2, #6 + bl MOD70_02230B70 + mov r0, #0x37 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + ldr r0, _0223049C ; =0x00000692 + ldrh r0, [r6, r0] + cmp r0, #0 + beq _02230406 + mov r0, #0x3a + lsl r0, r0, #4 + ldr r1, [r4] + ldr r2, [r4, #4] + ldr r0, [r5, r0] + add r1, #0x24 + add r2, #0x10 + bl MOD70_02230B70 + mov r0, #0x3a + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 +_02230406: + ldr r0, _022304A0 ; =0x0000069C + ldr r0, [r6, r0] + cmp r0, #0 + beq _0223042C + mov r0, #0x3d + lsl r0, r0, #4 + ldr r1, [r4] + ldr r2, [r4, #4] + ldr r0, [r5, r0] + add r1, #0x2c + add r2, #0x10 + bl MOD70_02230B70 + mov r0, #0x3d + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 +_0223042C: + add r0, r7, #7 + lsl r1, r0, #4 + ldr r0, [sp, #4] + add r0, r0, r1 + bl FUN_02019220 +_02230438: + add r7, r7, #1 + add r6, #0x10 + add r4, #8 + add r5, r5, #4 + cmp r7, #0xc + blt _022303B8 + mov r1, #0xce + ldr r0, [sp] + lsl r1, r1, #2 + ldr r0, [r0, r1] + mov r1, #1 + bl FUN_020200A0 + mov r1, #0xcf + ldr r0, [sp] + lsl r1, r1, #2 + ldr r0, [r0, r1] + mov r1, #1 + bl FUN_020200A0 + ldr r1, _02230494 ; =0x00000438 + ldr r0, [sp] + ldr r2, [sp] + add r0, r0, r1 + mov r1, #1 + bl MOD70_0222EF24 + ldr r1, _022304A4 ; =0x0000040C + ldr r0, [sp] + ldr r0, [r0, r1] + mov r1, #0 + bl FUN_020200A0 + ldr r1, _022304A8 ; =0x00000418 + ldr r0, [sp] + ldr r0, [r0, r1] + mov r1, #0 + bl FUN_020200A0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_0223048C: .word 0x00000568 +_02230490: .word 0x00000578 +_02230494: .word 0x00000438 +_02230498: .word 0x02231220 +_0223049C: .word 0x00000692 +_022304A0: .word 0x0000069C +_022304A4: .word 0x0000040C +_022304A8: .word 0x00000418 + thumb_func_end MOD70_02230390 + + thumb_func_start MOD70_022304AC +MOD70_022304AC: ; 0x022304AC + push {r4, lr} + sub sp, #0x10 + mov r1, #0 + add r4, r0, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + ldr r0, _02230534 ; =0x00002218 + add r1, r4, #0 + add r1, #0x88 + ldr r0, [r4, r0] + ldr r1, [r1] + bl FUN_0206B9B0 + bl FUN_020690E4 + add r2, r0, #0 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200ACF8 + add r1, r4, #0 + ldr r0, _02230538 ; =0x0000221C + add r1, #0x8c + ldr r1, [r1] + ldr r0, [r4, r0] + sub r1, r1, #6 + bl FUN_0206B9B0 + bl FUN_020690E4 + add r2, r0, #0 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_0200ACF8 + mov r3, #0x5f + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #8 + str r0, [sp] + ldr r0, _0223053C ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x15 + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _02230540 ; =MOD70_02230548 + ldr r0, _02230544 ; =0x00002214 + str r1, [r4, r0] + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_02230534: .word 0x00002218 +_02230538: .word 0x0000221C +_0223053C: .word 0x000005A8 +_02230540: .word MOD70_02230548 +_02230544: .word 0x00002214 + thumb_func_end MOD70_022304AC + + thumb_func_start MOD70_02230548 +MOD70_02230548: ; 0x02230548 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0x5d + ldr r2, _02230638 ; =0x00000658 + lsl r0, r0, #2 + add r1, r4, r2 + add r2, #0xc + ldr r0, [r4, r0] + add r2, r4, r2 + bl MOD70_02230FB0 + cmp r0, #0 + beq _0223056E + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _022305EE + b _02230632 +_0223056E: + add r0, r4, #0 + add r0, #0x88 + ldr r0, [r0] + lsl r0, r0, #4 + add r1, r4, r0 + ldr r0, _0223063C ; =0x0000069C + ldr r0, [r1, r0] + cmp r0, #0 + bne _022305E6 + add r0, r4, #0 + bl MOD70_02230BC4 + cmp r0, #0 + beq _022305D4 + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _02230640 ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x14 + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _02230644 ; =MOD70_02230770 + ldr r0, _02230648 ; =0x00002214 + mov r2, #3 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #0x18 + bl MOD70_0222F440 + mov r0, #1 + str r0, [r4, #0x5c] + b _02230632 +_022305D4: + ldr r1, _02230644 ; =MOD70_02230770 + ldr r0, _02230648 ; =0x00002214 + mov r2, #4 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #0x18 + bl MOD70_0222F440 + b _02230632 +_022305E6: + ldr r1, _0223064C ; =MOD70_02230650 + ldr r0, _02230648 ; =0x00002214 + str r1, [r4, r0] + b _02230632 +_022305EE: + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _02230640 ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x14 + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _02230644 ; =MOD70_02230770 + ldr r0, _02230648 ; =0x00002214 + mov r2, #4 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #0x18 + bl MOD70_0222F440 +_02230632: + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_02230638: .word 0x00000658 +_0223063C: .word 0x0000069C +_02230640: .word 0x000005A8 +_02230644: .word MOD70_02230770 +_02230648: .word 0x00002214 +_0223064C: .word MOD70_02230650 + thumb_func_end MOD70_02230548 + + thumb_func_start MOD70_02230650 +MOD70_02230650: ; 0x02230650 + push {r4, lr} + sub sp, #0x10 + mov r1, #0 + add r4, r0, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5f + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #8 + str r0, [sp] + ldr r0, _02230698 ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x24 + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _0223069C ; =MOD70_022306A4 + ldr r0, _022306A0 ; =0x00002214 + str r1, [r4, r0] + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + nop +_02230698: .word 0x000005A8 +_0223069C: .word MOD70_022306A4 +_022306A0: .word 0x00002214 + thumb_func_end MOD70_02230650 + + thumb_func_start MOD70_022306A4 +MOD70_022306A4: ; 0x022306A4 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0x5d + ldr r2, _02230760 ; =0x00000658 + lsl r0, r0, #2 + add r1, r4, r2 + add r2, #0xc + ldr r0, [r4, r0] + add r2, r4, r2 + bl MOD70_02230FB0 + cmp r0, #0 + beq _022306CA + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _02230714 + b _02230758 +_022306CA: + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _02230764 ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x14 + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _02230768 ; =MOD70_02230770 + ldr r0, _0223076C ; =0x00002214 + mov r2, #3 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #0x18 + bl MOD70_0222F440 + mov r0, #1 + str r0, [r4, #0x5c] + b _02230758 +_02230714: + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _02230764 ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x14 + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _02230768 ; =MOD70_02230770 + ldr r0, _0223076C ; =0x00002214 + mov r2, #4 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #0x18 + bl MOD70_0222F440 +_02230758: + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + nop +_02230760: .word 0x00000658 +_02230764: .word 0x000005A8 +_02230768: .word MOD70_02230770 +_0223076C: .word 0x00002214 + thumb_func_end MOD70_022306A4 + + thumb_func_start MOD70_02230770 +MOD70_02230770: ; 0x02230770 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #0x60] + cmp r1, #0 + beq _022307B8 + ldr r0, [r4, #0x64] + cmp r0, #0 + beq _022307B8 + cmp r1, #3 + bne _02230798 + cmp r0, #3 + bne _02230798 + ldr r0, _022307BC ; =0x00003698 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + ldr r1, _022307C0 ; =MOD70_022307CC + ldr r0, _022307C4 ; =0x00002214 + str r1, [r4, r0] + b _0223079E +_02230798: + ldr r1, _022307C8 ; =MOD70_0222F790 + ldr r0, _022307C4 ; =0x00002214 + str r1, [r4, r0] +_0223079E: + mov r0, #0 + str r0, [r4, #0x60] + str r0, [r4, #0x64] + add r0, r4, #0 + bl MOD70_02230BC4 + cmp r0, #0 + beq _022307B4 + mov r0, #0x18 + str r0, [r4, #0x68] + b _022307B8 +_022307B4: + mov r0, #0x22 + str r0, [r4, #0x68] +_022307B8: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_022307BC: .word 0x00003698 +_022307C0: .word MOD70_022307CC +_022307C4: .word 0x00002214 +_022307C8: .word MOD70_0222F790 + thumb_func_end MOD70_02230770 + + thumb_func_start MOD70_022307CC +MOD70_022307CC: ; 0x022307CC + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, [r4, #4] + mov r1, #1 + bl FUN_0202E288 + ldr r0, [r4, #8] + add r3, r4, #0 + add r2, r4, #0 + ldr r1, _02230804 ; =0x00002218 + str r0, [sp] + add r3, #0x8c + ldr r0, [r4, r1] + add r1, r1, #4 + add r2, #0x88 + ldr r3, [r3] + ldr r1, [r4, r1] + ldr r2, [r2] + sub r3, r3, #6 + bl MOD70_022309E8 + ldr r1, _02230808 ; =MOD70_0222F790 + ldr r0, _0223080C ; =0x00002214 + str r1, [r4, r0] + mov r0, #2 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02230804: .word 0x00002218 +_02230808: .word MOD70_0222F790 +_0223080C: .word 0x00002214 + thumb_func_end MOD70_022307CC + + thumb_func_start MOD70_02230810 +MOD70_02230810: ; 0x02230810 + push {r3, r4, lr} + sub sp, #0x1c + add r4, r0, #0 + mov r0, #0 + add r1, sp, #0x10 + strb r0, [r1, #8] + mov r0, #1 + strb r0, [r1, #9] + mov r0, #2 + strb r0, [r1, #0xa] + ldrb r2, [r1, #0xb] + mov r0, #0xf + bic r2, r0 + strb r2, [r1, #0xb] + ldrb r2, [r1, #0xb] + mov r0, #0x30 + bic r2, r0 + strb r2, [r1, #0xb] + ldrb r2, [r1, #0xb] + mov r0, #0xc0 + bic r2, r0 + strb r2, [r1, #0xb] + add r1, r4, #0 + ldr r0, _022308F8 ; =0x0000221C + add r1, #0x88 + ldr r1, [r1] + ldr r0, [r4, r0] + sub r1, r1, #6 + bl FUN_0206B9B0 + bl FUN_020690E4 + add r2, r0, #0 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200ACF8 + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5f + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #8 + str r0, [sp] + ldr r0, _022308FC ; =0x00000598 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x10 + mov r2, #1 + bl MOD70_02230F40 + mov r0, #2 + mov r1, #0x1a + bl FUN_02012838 + ldr r1, _02230900 ; =0x0000065C + mov r2, #0x11 + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #0x61 + lsl r1, r1, #2 + ldr r1, [r4, r1] + mov r3, #0 + bl FUN_02012880 + ldr r0, _02230900 ; =0x0000065C + mov r1, #0x61 + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + mov r2, #0x13 + mov r3, #1 + bl FUN_02012880 + ldr r0, _02230900 ; =0x0000065C + ldr r1, [r4, r0] + sub r0, #0x94 + add r0, r4, r0 + str r1, [sp, #0x10] + str r0, [sp, #0x14] + bl MOD70_02231004 + mov r0, #0x1a + str r0, [sp] + mov r0, #2 + mov r2, #0 + str r0, [sp, #4] + add r0, sp, #0x10 + mov r1, #8 + add r3, r2, #0 + bl FUN_02001C14 + mov r1, #0x66 + lsl r1, r1, #4 + str r0, [r4, r1] + ldr r1, _02230904 ; =MOD70_0223090C + ldr r0, _02230908 ; =0x00002214 + str r1, [r4, r0] + mov r0, #0 + add sp, #0x1c + pop {r3, r4, pc} + nop +_022308F8: .word 0x0000221C +_022308FC: .word 0x00000598 +_02230900: .word 0x0000065C +_02230904: .word MOD70_0223090C +_02230908: .word 0x00002214 + thumb_func_end MOD70_02230810 + + thumb_func_start MOD70_0223090C +MOD70_0223090C: ; 0x0223090C + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0x66 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02001C78 + cmp r0, #0 + beq _0223092E + cmp r0, #1 + beq _02230982 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _02230982 + b _022309D0 +_0223092E: + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _022309D8 ; =0x00000588 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0xf + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _022309DC ; =MOD70_0222F538 + ldr r0, _022309E0 ; =0x00002214 + str r1, [r4, r0] + mov r0, #0x66 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _022309E4 ; =0x0000065C + ldr r0, [r4, r0] + bl FUN_02012870 + add sp, #0x10 + mov r0, #3 + pop {r4, pc} +_02230982: + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _022309D8 ; =0x00000588 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0xf + mov r2, #1 + bl MOD70_02230F40 + mov r0, #0x66 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _022309E4 ; =0x0000065C + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r1, _022309DC ; =MOD70_0222F538 + ldr r0, _022309E0 ; =0x00002214 + str r1, [r4, r0] +_022309D0: + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + nop +_022309D8: .word 0x00000588 +_022309DC: .word MOD70_0222F538 +_022309E0: .word 0x00002214 +_022309E4: .word 0x0000065C + thumb_func_end MOD70_0223090C + + thumb_func_start MOD70_022309E8 +MOD70_022309E8: ; 0x022309E8 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + str r0, [sp, #4] + mov r0, #0x1a + str r1, [sp, #8] + add r6, r2, #0 + str r3, [sp, #0xc] + ldr r5, [sp, #0x28] + bl FUN_020669C0 + add r7, r0, #0 + mov r0, #0x1a + bl FUN_020669C0 + add r4, r0, #0 + ldr r0, [sp, #4] + add r1, r6, #0 + bl FUN_0206B9B0 + add r1, r7, #0 + bl FUN_02069B88 + ldr r0, [sp, #8] + ldr r1, [sp, #0xc] + bl FUN_0206B9B0 + add r1, r4, #0 + bl FUN_02069B88 + add r0, r4, #0 + mov r1, #0x4c + mov r2, #0 + bl FUN_020671BC + cmp r0, #0 + bne _02230A40 + mov r1, #0x46 + add r0, sp, #0x10 + strb r1, [r0] + add r0, r4, #0 + mov r1, #9 + add r2, sp, #0x10 + bl FUN_02067830 +_02230A40: + bl FUN_02031190 + bl FUN_0202DFA4 + add r1, r0, #0 + mov r0, #0xb + str r0, [sp] + add r0, r4, #0 + mov r2, #5 + mov r3, #0 + bl FUN_0208089C + add r0, r4, #0 + bl FUN_0206AA84 + ldr r1, [r5, #0x3c] + add r0, r7, #0 + bl FUN_02069B88 + ldr r1, [r5, #0x40] + add r0, r4, #0 + bl FUN_02069B88 + bl FUN_02031190 + mov r1, #1 + eor r0, r1 + bl FUN_0202DFA4 + ldr r1, [r5, #0x38] + bl FUN_0202393C + ldr r0, [sp, #4] + ldr r1, _02230AE0 ; =0x000001B9 + str r6, [r5, #0x2c] + bl FUN_0206BAE4 + cmp r0, #0 + bne _02230A98 + ldr r0, [r5, #0x10] + bl FUN_02029EF8 + bl FUN_02029F08 +_02230A98: + ldr r0, [r5, #0x10] + add r1, r4, #0 + bl FUN_0202C144 + ldr r0, [sp, #4] + add r1, r6, #0 + bl FUN_0206B9B0 + add r1, r0, #0 + add r0, r4, #0 + bl FUN_02069B88 + ldr r0, [sp, #8] + ldr r1, [sp, #0xc] + bl FUN_0206B9B0 + add r1, r0, #0 + add r0, r7, #0 + bl FUN_02069B88 + ldr r0, [r5, #0x1c] + add r1, r4, #0 + bl MOD70_02230AE4 + ldr r0, [r5, #0x20] + mov r1, #0x13 + bl FUN_0202A0E8 + add r0, r7, #0 + bl FUN_02016A18 + add r0, r4, #0 + bl FUN_02016A18 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02230AE0: .word 0x000001B9 + thumb_func_end MOD70_022309E8 + + thumb_func_start MOD70_02230AE4 +MOD70_02230AE4: ; 0x02230AE4 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r6, r0, #0 + add r4, r1, #0 + bl FUN_02031190 + mov r1, #1 + eor r0, r1 + bl FUN_0202DFA4 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #0x74 + add r2, sp, #4 + bl FUN_020671BC + add r0, r5, #0 + bl FUN_0202398C + add r7, r0, #0 + add r0, r5, #0 + bl FUN_020239CC + add r5, r0, #0 + add r0, r4, #0 + bl FUN_020689E0 + add r3, r0, #0 + mov r0, #0x1a + lsl r1, r5, #0x18 + str r0, [sp] + add r0, r7, #0 + lsr r1, r1, #0x18 + add r2, sp, #4 + bl FUN_0202945C + add r1, r0, #0 + add r0, r6, #0 + mov r2, #4 + bl FUN_02028AD4 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD70_02230AE4 + + thumb_func_start MOD70_02230B3C +MOD70_02230B3C: ; 0x02230B3C + push {r4, lr} + ldr r3, _02230B6C ; =0x000022B8 + add r4, r0, #0 + ldr r0, [r4, r3] + mov r1, #6 + add r0, r0, #2 + str r0, [r4, r3] + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r4, r0] + ldr r3, [r4, r3] + mov r2, #0 + bl FUN_020179E0 + mov r0, #0x5d + ldr r3, _02230B6C ; =0x000022B8 + lsl r0, r0, #2 + ldr r0, [r4, r0] + ldr r3, [r4, r3] + mov r1, #3 + mov r2, #0 + bl FUN_020179E0 + pop {r4, pc} + .align 2, 0 +_02230B6C: .word 0x000022B8 + thumb_func_end MOD70_02230B3C + + thumb_func_start MOD70_02230B70 +MOD70_02230B70: ; 0x02230B70 + push {lr} + sub sp, #0xc + lsl r1, r1, #0xc + str r1, [sp] + lsl r1, r2, #0xc + str r1, [sp, #4] + add r1, sp, #0 + bl FUN_02020044 + add sp, #0xc + pop {pc} + .align 2, 0 + thumb_func_end MOD70_02230B70 + + thumb_func_start MOD70_02230B88 +MOD70_02230B88: ; 0x02230B88 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02230B9C ; =0x000005A8 + ldr r1, _02230BA0 ; =0x000001D9 + add r0, r4, r0 + bl FUN_0200D858 + ldr r1, _02230BA4 ; =0x000036A8 + str r0, [r4, r1] + pop {r4, pc} + .align 2, 0 +_02230B9C: .word 0x000005A8 +_02230BA0: .word 0x000001D9 +_02230BA4: .word 0x000036A8 + thumb_func_end MOD70_02230B88 + + thumb_func_start MOD70_02230BA8 +MOD70_02230BA8: ; 0x02230BA8 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02230BC0 ; =0x000036A8 + ldr r0, [r4, r0] + cmp r0, #0 + beq _02230BBE + bl FUN_0200DBFC + ldr r0, _02230BC0 ; =0x000036A8 + mov r1, #0 + str r1, [r4, r0] +_02230BBE: + pop {r4, pc} + .align 2, 0 +_02230BC0: .word 0x000036A8 + thumb_func_end MOD70_02230BA8 + + thumb_func_start MOD70_02230BC4 +MOD70_02230BC4: ; 0x02230BC4 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, _02230C00 ; =0x00002218 + mov r4, #0 + ldr r0, [r5, r0] + bl FUN_0206B9AC + add r3, r4, #0 + cmp r0, #0 + ble _02230BF0 + add r1, r5, #0 + add r1, #0x88 + ldr r6, [r1] + ldr r1, _02230C04 ; =0x00000695 +_02230BE0: + cmp r3, r6 + beq _02230BE8 + ldrb r2, [r5, r1] + add r4, r4, r2 +_02230BE8: + add r3, r3, #1 + add r5, #0x10 + cmp r3, r0 + blt _02230BE0 +_02230BF0: + sub r0, r0, #1 + cmp r4, r0 + bne _02230BFA + mov r0, #0 + pop {r4, r5, r6, pc} +_02230BFA: + mov r0, #1 + pop {r4, r5, r6, pc} + nop +_02230C00: .word 0x00002218 +_02230C04: .word 0x00000695 + thumb_func_end MOD70_02230BC4 + + thumb_func_start MOD70_02230C08 +MOD70_02230C08: ; 0x02230C08 + ldr r1, _02230C18 ; =0x000036AC + mov r2, #1 + str r2, [r0, r1] + mov r2, #0 + add r1, r1, #4 + str r2, [r0, r1] + bx lr + nop +_02230C18: .word 0x000036AC + thumb_func_end MOD70_02230C08 + + thumb_func_start MOD70_02230C1C +MOD70_02230C1C: ; 0x02230C1C + push {r3, lr} + ldr r2, _02230C40 ; =0x000036AC + ldr r1, [r0, r2] + cmp r1, #0 + beq _02230C3E + add r1, r2, #4 + ldr r1, [r0, r1] + add r3, r1, #1 + add r1, r2, #4 + str r3, [r0, r1] + ldr r1, [r0, r1] + ldr r0, _02230C44 ; =0x00000708 + cmp r1, r0 + ble _02230C3E + mov r0, #4 + bl FUN_020336A0 +_02230C3E: + pop {r3, pc} + .align 2, 0 +_02230C40: .word 0x000036AC +_02230C44: .word 0x00000708 + thumb_func_end MOD70_02230C1C + + thumb_func_start MOD70_02230C48 +MOD70_02230C48: ; 0x02230C48 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r4, r2, #0 + mov r2, #1 + str r2, [sp] + mov r3, #0xa + str r3, [sp, #4] + mov r3, #2 + str r3, [sp, #8] + mov r6, #8 + str r6, [sp, #0xc] + add r5, r1, #0 + str r0, [sp, #0x14] + str r2, [sp, #0x10] + bl FUN_02019064 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + mov r2, #1 + add r1, r5, #0 + str r2, [sp] + mov r0, #0xa + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + add r0, r6, #0 + str r0, [sp, #0xc] + mov r0, #0x15 + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + add r1, #0x10 + mov r3, #0x14 + bl FUN_02019064 + add r0, r5, #0 + add r0, #0x10 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x15 + str r0, [sp] + mov r0, #5 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + add r0, r6, #0 + str r0, [sp, #0xc] + mov r0, #0x29 + str r0, [sp, #0x10] + add r1, r5, #0 + ldr r0, [sp, #0x14] + add r1, #0x60 + mov r2, #1 + mov r3, #0x1a + bl FUN_02019064 + add r0, r5, #0 + add r0, #0x60 + mov r1, #0 + bl FUN_02019620 + add r0, r4, #0 + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x1a + str r0, [sp, #4] + ldr r0, [sp, #0x14] + ldr r2, _02230E78 ; =0x000001D9 + mov r1, #0 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x1a + str r0, [sp, #4] + ldr r0, [sp, #0x14] + ldr r2, _02230E7C ; =0x000001F7 + mov r3, #0xb + bl FUN_0200CB00 + mov r1, #0x15 + str r1, [sp] + mov r0, #0x14 + str r0, [sp, #4] + mov r3, #2 + lsl r1, r1, #4 + str r3, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #1 + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + add r1, r5, r1 + mov r2, #0 + bl FUN_02019064 + mov r0, #0x15 + lsl r0, r0, #4 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x13 + str r0, [sp] + mov r0, #0xe + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + mov r1, #0x16 + str r0, [sp, #0x10] + lsl r1, r1, #4 + ldr r0, [sp, #0x14] + add r1, r5, r1 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + mov r0, #0x16 + lsl r0, r0, #4 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x38 + mov r1, #0x17 + str r0, [sp, #0x10] + lsl r1, r1, #4 + ldr r0, [sp, #0x14] + add r1, r5, r1 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + mov r0, #0x17 + lsl r0, r0, #4 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x11 + str r0, [sp] + mov r0, #0xb + str r0, [sp, #4] + mov r0, #6 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r1, #0xa4 + str r1, [sp, #0x10] + add r1, #0xdc + ldr r0, [sp, #0x14] + add r1, r5, r1 + mov r2, #0 + mov r3, #0x14 + bl FUN_02019064 + mov r0, #6 + lsl r0, r0, #6 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x13 + str r0, [sp] + mov r0, #0xb + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r1, #0xe6 + str r1, [sp, #0x10] + add r1, #0xaa + ldr r0, [sp, #0x14] + add r1, r5, r1 + mov r2, #0 + mov r3, #0x14 + bl FUN_02019064 + mov r0, #0x19 + lsl r0, r0, #4 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + ldr r4, _02230E80 ; =0x022313F4 + mov r7, #0 + mov r6, #0x33 +_02230DE2: + add r0, r7, #7 + lsl r0, r0, #4 + str r0, [sp, #0x18] + ldrh r0, [r4, #2] + ldr r1, [sp, #0x18] + mov r2, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldrh r3, [r4] + ldr r0, [sp, #0x14] + add r1, r5, r1 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + bl FUN_02019064 + ldr r0, [sp, #0x18] + mov r1, #0 + add r0, r5, r0 + bl FUN_02019620 + add r7, r7, #1 + add r6, #0x10 + add r4, r4, #4 + cmp r7, #0xe + blt _02230DE2 + ldr r4, _02230E84 ; =0x0223142C + mov r6, #0 +_02230E2C: + add r0, r6, #0 + add r0, #0x1a + lsl r7, r0, #4 + ldrh r0, [r4, #2] + add r1, r5, r7 + mov r2, #4 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldrh r0, [r4, #4] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #4] + ldrh r0, [r4, #6] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldrh r0, [r4, #8] + str r0, [sp, #0x10] + ldrh r3, [r4] + ldr r0, [sp, #0x14] + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + bl FUN_02019064 + add r0, r5, r7 + mov r1, #0 + bl FUN_02019620 + add r6, r6, #1 + add r4, #0xa + cmp r6, #8 + blt _02230E2C + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_02230E78: .word 0x000001D9 +_02230E7C: .word 0x000001F7 +_02230E80: .word 0x022313F4 +_02230E84: .word 0x0223142C + thumb_func_end MOD70_02230C48 + + thumb_func_start MOD70_02230E88 +MOD70_02230E88: ; 0x02230E88 + push {r3, r4, r5, lr} + add r4, r0, #0 + mov r5, #0 +_02230E8E: + add r0, r5, #7 + lsl r0, r0, #4 + add r0, r4, r0 + bl FUN_02019178 + add r5, r5, #1 + cmp r5, #0xe + blt _02230E8E + mov r5, #0 +_02230EA0: + add r0, r5, #0 + add r0, #0x1a + lsl r0, r0, #4 + add r0, r4, r0 + bl FUN_02019178 + add r5, r5, #1 + cmp r5, #8 + blt _02230EA0 + add r0, r4, #0 + bl FUN_02019178 + add r0, r4, #0 + add r0, #0x10 + bl FUN_02019178 + add r0, r4, #0 + add r0, #0x60 + bl FUN_02019178 + mov r0, #0x15 + lsl r0, r0, #4 + add r0, r4, r0 + bl FUN_02019178 + mov r0, #0x16 + lsl r0, r0, #4 + add r0, r4, r0 + bl FUN_02019178 + mov r0, #0x17 + lsl r0, r0, #4 + add r0, r4, r0 + bl FUN_02019178 + mov r0, #6 + lsl r0, r0, #6 + add r0, r4, r0 + bl FUN_02019178 + mov r0, #0x19 + lsl r0, r0, #4 + add r0, r4, r0 + bl FUN_02019178 + pop {r3, r4, r5, pc} + thumb_func_end MOD70_02230E88 + + thumb_func_start MOD70_02230EFC +MOD70_02230EFC: ; 0x02230EFC + push {r4, r5, r6, lr} + sub sp, #0x10 + add r4, r3, #0 + ldr r3, [sp, #0x20] + add r5, r0, #0 + add r6, r1, #0 + cmp r3, #1 + bne _02230F20 + mov r0, #0 + add r2, r0, #0 + bl FUN_02002E14 + ldrb r1, [r5, #7] + lsl r1, r1, #3 + sub r1, r1, r0 + lsr r0, r1, #0x1f + add r0, r1, r0 + asr r3, r0, #1 +_02230F20: + ldr r0, [sp, #0x24] + mov r1, #0 + str r0, [sp] + ldr r0, _02230F3C ; =0x000B0C00 + str r4, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r2, r6, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_02230F3C: .word 0x000B0C00 + thumb_func_end MOD70_02230EFC + + thumb_func_start MOD70_02230F40 +MOD70_02230F40: ; 0x02230F40 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + add r6, r1, #0 + add r4, r2, #0 + add r1, r3, #0 + ldr r0, [sp, #0x20] + add r2, r6, #0 + mov r3, #0x1a + bl FUN_0200A9C4 + add r6, r0, #0 + cmp r4, #1 + bne _02230F6A + ldr r2, _02230FA4 ; =0x000001D9 + add r0, r5, #0 + mov r1, #0 + mov r3, #0xa + bl FUN_0200D0BC + b _02230F76 +_02230F6A: + ldr r2, _02230FA8 ; =0x000001F7 + add r0, r5, #0 + mov r1, #0 + mov r3, #0xb + bl FUN_0200CCA4 +_02230F76: + add r0, r5, #0 + mov r1, #0xf + bl FUN_02019620 + mov r3, #0 + str r3, [sp] + ldr r0, _02230FAC ; =0x0001020F + str r3, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + str r3, [sp, #0xc] + bl FUN_0201BDE0 + add r4, r0, #0 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_02230FA4: .word 0x000001D9 +_02230FA8: .word 0x000001F7 +_02230FAC: .word 0x0001020F + thumb_func_end MOD70_02230F40 + + thumb_func_start MOD70_02230FB0 +MOD70_02230FB0: ; 0x02230FB0 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r4, r2, #0 + add r5, r1, #0 + mov r6, #0 + ldr r1, [r4] + mvn r6, r6 + cmp r1, #0 + beq _02230FC8 + cmp r1, #1 + beq _02230FE0 + b _02230FF6 +_02230FC8: + mov r1, #0x1a + str r1, [sp] + ldr r1, _02230FFC ; =0x022313CC + ldr r2, _02231000 ; =0x000001F7 + mov r3, #0xb + bl FUN_02002198 + str r0, [r5] + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _02230FF6 +_02230FE0: + ldr r0, [r5] + mov r1, #0x1a + bl FUN_020021AC + add r6, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r6, r0 + beq _02230FF6 + mov r0, #0 + str r0, [r4] +_02230FF6: + add r0, r6, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_02230FFC: .word 0x022313CC +_02231000: .word 0x000001F7 + thumb_func_end MOD70_02230FB0 + + thumb_func_start MOD70_02231004 +MOD70_02231004: ; 0x02231004 + push {r3, lr} + ldr r2, _02231014 ; =0x000001F7 + mov r1, #0 + mov r3, #0xb + bl FUN_0200CCA4 + pop {r3, pc} + nop +_02231014: .word 0x000001F7 + thumb_func_end MOD70_02231004 + + thumb_func_start MOD70_02231018 +MOD70_02231018: ; 0x02231018 + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + add r5, r0, #0 + mov r0, #1 + str r0, [sp] + mov r0, #0xc + str r0, [sp, #4] + mov r0, #0xa + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _02231088 ; =0x0000014D + add r4, r2, #0 + add r6, r1, #0 + str r0, [sp, #0x10] + add r0, r3, #0 + add r1, r4, #0 + mov r2, #0 + mov r3, #0x13 + bl FUN_02019064 + ldr r2, _0223108C ; =0x000001F7 + add r0, r4, #0 + mov r1, #0 + mov r3, #0xb + bl FUN_0200CCA4 + ldr r3, _02231090 ; =0x022313D4 + add r2, sp, #0x14 + add r7, 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} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + add r1, r6, #1 + add r0, sp, #0x14 + strh r1, [r0, #0x10] + mov r1, #5 + strh r1, [r0, #0x12] + ldr r0, _02231094 ; =MOD70_02231098 + mov r1, #0 + str r0, [sp, #0x18] + add r0, r7, #0 + add r2, r1, #0 + mov r3, #0x1a + str r5, [sp, #0x14] + str r4, [sp, #0x20] + bl FUN_020010A8 + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + nop +_02231088: .word 0x0000014D +_0223108C: .word 0x000001F7 +_02231090: .word 0x022313D4 +_02231094: .word MOD70_02231098 + thumb_func_end MOD70_02231018 + + thumb_func_start MOD70_02231098 +MOD70_02231098: ; 0x02231098 + push {r3, lr} + cmp r2, #0 + bne _022310A4 + ldr r0, _022310A8 ; =0x000005DC + bl FUN_020054C8 +_022310A4: + pop {r3, pc} + nop +_022310A8: .word 0x000005DC + thumb_func_end MOD70_02231098 + + .section .rodata + ; 0x022310AC + .incbin "baserom.nds", 0x2C96EC, 0x3D0 diff --git a/arm9/modules/72/asm/module_72_dummy.s b/arm9/modules/72/asm/module_72_dummy.s new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/arm9/modules/72/asm/module_72_dummy.s @@ -0,0 +1 @@ + diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s new file mode 100644 index 00000000..071770b3 --- /dev/null +++ b/arm9/modules/73/asm/module_73.s @@ -0,0 +1,9424 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD73_021D74E0 +MOD73_021D74E0: ; 0x021D74E0 + push {r3, lr} + ldr r0, [r0, #0x18] + bl MOD73_021D88B0 + bl FUN_0201C30C + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD73_021D74E0 + + thumb_func_start MOD73_021D74F0 +MOD73_021D74F0: ; 0x021D74F0 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_0200628C + mov r2, #2 + add r4, r0, #0 + mov r0, #3 + mov r1, #0x38 + lsl r2, r2, #0x10 + bl FUN_0201681C + ldr r1, _021D757C ; =0x000015E8 + add r0, r5, #0 + mov r2, #0x38 + bl FUN_02006268 + ldr r2, _021D757C ; =0x000015E8 + add r5, r0, #0 + mov r1, #0 + bl Call_FillMemWithValue + str r5, [r4, #0x18] + mov r1, #0x38 + str r1, [r5] + mov r0, #0x10 + bl FUN_0201C24C + ldrh r0, [r4, #6] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #1 + bne _021D7534 + mov r1, #1 + b _021D7536 +_021D7534: + mov r1, #0 +_021D7536: + ldr r0, _021D7580 ; =0x00001428 + str r1, [r5, r0] + ldr r1, [r4, #0x10] + add r0, r5, #0 + ldr r1, [r1, #0x10] + bl MOD73_021D8DF4 + ldr r0, [r4, #0x10] + ldr r0, [r0, #0x18] + bl FUN_02025084 + str r0, [r5, #0x24] + ldr r0, [r4, #0x10] + ldr r0, [r0, #0x18] + bl FUN_02024FF4 + str r0, [r5, #0x28] + mov r0, #0xae + mov r1, #1 + lsl r0, r0, #2 + str r1, [r5, r0] + ldr r0, _021D7584 ; =MOD73_021D74E0 + add r1, r4, #0 + bl FUN_02015F10 + bl FUN_02015F1C + ldr r1, _021D7588 ; =0x0000049F + mov r0, #0xc + mov r2, #1 + bl FUN_0200433C + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_021D757C: .word 0x000015E8 +_021D7580: .word 0x00001428 +_021D7584: .word MOD73_021D74E0 +_021D7588: .word 0x0000049F + thumb_func_end MOD73_021D74F0 + + thumb_func_start MOD73_021D758C +MOD73_021D758C: ; 0x021D758C + push {r3, r4, r5, r6, r7, lr} + add r4, r0, #0 + add r5, r1, #0 + bl FUN_0200628C + add r7, r0, #0 + add r0, r4, #0 + bl FUN_02006278 + add r4, r0, #0 + ldr r0, [r4, #0xc] + ldr r1, _021D763C ; =0x021DBC9C + str r0, [sp] + lsl r0, r0, #3 + add r1, r1, r0 + ldr r0, [r5] + cmp r0, #0 + beq _021D75BA + cmp r0, #1 + beq _021D75FC + cmp r0, #2 + beq _021D760C + b _021D7620 +_021D75BA: + ldr r3, [r1] + cmp r3, #0 + beq _021D7620 + ldr r6, [r1, #4] + add r2, r4, #0 + add r0, r7, #0 + add r1, r4, #0 + add r2, #0x10 + blx r3 + str r0, [r4, #0xc] + ldr r0, [r4, #0x14] + cmp r0, #0 + beq _021D75DC + ldr r0, [r4, #0x18] + str r0, [r4, #0xc] + mov r0, #0 + str r0, [r4, #0x14] +_021D75DC: + ldr r1, [r4, #0xc] + ldr r0, [sp] + cmp r0, r1 + beq _021D7620 + mov r0, #0 + str r0, [r4, #0x10] + ldrh r0, [r7, #6] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + beq _021D7620 + cmp r6, #0 + beq _021D7620 + str r6, [r4, #8] + mov r0, #1 + str r0, [r5] + b _021D7620 +_021D75FC: + ldr r0, [r4, #8] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_02031588 + mov r0, #2 + str r0, [r5] + b _021D7620 +_021D760C: + ldr r0, [r4, #8] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_020315D8 + cmp r0, #0 + beq _021D7620 + mov r0, #0 + str r0, [r5] + str r0, [r4, #8] +_021D7620: + add r0, r4, #0 + bl MOD73_021D8858 + ldr r0, [r4] + ldr r1, [r4, #0x20] + bl FUN_020335F0 + ldr r0, [r4, #4] + cmp r0, #0 + beq _021D7638 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D7638: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D763C: .word 0x021DBC9C + thumb_func_end MOD73_021D758C + + thumb_func_start MOD73_021D7640 +MOD73_021D7640: ; 0x021D7640 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + bl FUN_0200628C + add r6, r0, #0 + add r0, r5, #0 + bl FUN_02006278 + add r7, r0, #0 + ldr r4, [r7] + bl MOD73_021D8E90 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201C29C + ldr r2, _021D7688 ; =0x000015E8 + add r0, r7, #0 + mov r1, #0 + bl MI_CpuFill8 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0 + str r0, [r6, #0x18] + add r0, r4, #0 + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D7688: .word 0x000015E8 + thumb_func_end MOD73_021D7640 + + thumb_func_start MOD73_021D768C +MOD73_021D768C: ; 0x021D768C + str r1, [r0, #0x18] + mov r1, #1 + str r1, [r0, #0x14] + bx lr + thumb_func_end MOD73_021D768C + + thumb_func_start MOD73_021D7694 +MOD73_021D7694: ; 0x021D7694 + mov r1, #1 + str r1, [r0, #4] + bx lr + .align 2, 0 + thumb_func_end MOD73_021D7694 + + thumb_func_start MOD73_021D769C +MOD73_021D769C: ; 0x021D769C + push {r4, r5, lr} + sub sp, #0xc + add r4, r2, #0 + ldr r0, [r4] + add r5, r1, #0 + cmp r0, #0 + beq _021D76B8 + cmp r0, #1 + bne _021D76B0 + b _021D77C6 +_021D76B0: + cmp r0, #2 + bne _021D76B6 + b _021D77E4 +_021D76B6: + b _021D77F4 +_021D76B8: + add r0, r5, #0 + bl MOD73_021D852C + ldr r0, _021D77FC ; =0x00001424 + ldr r0, [r5, r0] + bl MOD73_021D910C + cmp r0, #0 + bne _021D76D4 + mov r0, #0xba + lsl r0, r0, #2 + add r0, r5, r0 + bl MOD73_021DB884 +_021D76D4: + ldr r0, [r5, #0x24] + ldr r2, _021D7800 ; =0x00001574 + str r0, [sp] + ldr r0, [r5] + ldr r3, _021D7804 ; =0x00001420 + str r0, [sp, #4] + ldr r0, _021D7808 ; =0x0000054C + ldr r1, [r5, r3] + add r3, #0xc + add r0, r5, r0 + add r2, r5, r2 + add r3, r5, r3 + bl MOD73_021D9A28 + ldr r0, _021D780C ; =0x000005A4 + add r0, r5, r0 + bl MOD73_021D9E80 + ldr r0, [r5, #0x24] + ldr r2, _021D7800 ; =0x00001574 + str r0, [sp] + ldr r0, [r5] + ldr r3, _021D7804 ; =0x00001420 + str r0, [sp, #4] + ldr r0, _021D7810 ; =0x0000063C + ldr r1, [r5, r3] + add r3, #0xc + add r0, r5, r0 + add r2, r5, r2 + add r3, r5, r3 + bl MOD73_021DA210 + mov r0, #0x16 + lsl r0, r0, #6 + add r0, r5, r0 + bl MOD73_021D9D84 + ldr r0, _021D7814 ; =0x0000058C + add r0, r5, r0 + bl MOD73_021D9D84 + ldr r0, _021D7818 ; =0x00000598 + add r0, r5, r0 + bl MOD73_021D9D84 + ldr r3, _021D781C ; =0x0000142C + ldr r0, _021D7820 ; =0x0000061C + add r2, r3, #0 + add r1, r5, r3 + sub r2, #0xc + sub r3, #8 + ldr r2, [r5, r2] + ldr r3, [r5, r3] + add r0, r5, r0 + bl MOD73_021DA0E0 + mov r0, #0x67 + lsl r0, r0, #4 + add r0, r5, r0 + bl MOD73_021DA81C + ldr r0, _021D7824 ; =0x00000A84 + add r0, r5, r0 + bl MOD73_021DAD78 + ldr r1, _021D7804 ; =0x00001420 + ldr r0, _021D7828 ; =0x00000B04 + ldr r1, [r5, r1] + add r0, r5, r0 + bl MOD73_021DAF70 + mov r0, #0x2d + lsl r0, r0, #4 + add r0, r5, r0 + bl MOD73_021DB2FC + add r0, r5, #0 + bl MOD73_021D8630 + bl FUN_02033E74 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + ldr r0, _021D7804 ; =0x00001420 + ldr r0, [r5, r0] + cmp r0, #1 + ble _021D778E + ldr r0, _021D7808 ; =0x0000054C + add r0, r5, r0 + bl MOD73_021D9AC8 +_021D778E: + ldr r0, _021D780C ; =0x000005A4 + mov r1, #3 + add r0, r5, r0 + mov r2, #1 + bl MOD73_021D9FC0 + ldr r0, _021D780C ; =0x000005A4 + mov r1, #4 + add r0, r5, r0 + mov r2, #1 + bl MOD73_021D9FC0 + ldr r0, _021D780C ; =0x000005A4 + mov r1, #5 + add r0, r5, r0 + mov r2, #1 + bl MOD73_021D9FC0 + ldr r0, _021D780C ; =0x000005A4 + mov r1, #6 + add r0, r5, r0 + mov r2, #1 + bl MOD73_021D9FC0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D77F4 +_021D77C6: + mov r0, #6 + mov r1, #1 + str r0, [sp] + str r1, [sp, #4] + ldr r0, [r5] + ldr r3, _021D782C ; =0x0000FFFF + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D77F4 +_021D77E4: + bl FUN_0200E308 + cmp r0, #0 + beq _021D77F4 + ldr r0, [r5, #0xc] + add sp, #0xc + add r0, r0, #1 + pop {r4, r5, pc} +_021D77F4: + ldr r0, [r5, #0xc] + add sp, #0xc + pop {r4, r5, pc} + nop +_021D77FC: .word 0x00001424 +_021D7800: .word 0x00001574 +_021D7804: .word 0x00001420 +_021D7808: .word 0x0000054C +_021D780C: .word 0x000005A4 +_021D7810: .word 0x0000063C +_021D7814: .word 0x0000058C +_021D7818: .word 0x00000598 +_021D781C: .word 0x0000142C +_021D7820: .word 0x0000061C +_021D7824: .word 0x00000A84 +_021D7828: .word 0x00000B04 +_021D782C: .word 0x0000FFFF + thumb_func_end MOD73_021D769C + + thumb_func_start MOD73_021D7830 +MOD73_021D7830: ; 0x021D7830 + push {r4, lr} + ldr r0, _021D7854 ; =0x00001424 + add r4, r1, #0 + ldr r0, [r4, r0] + bl MOD73_021D910C + cmp r0, #0 + bne _021D784E + ldr r3, _021D7854 ; =0x00001424 + mov r1, #0 + ldr r3, [r4, r3] + mov r0, #0x16 + add r2, r1, #0 + bl MOD73_021D90D0 +_021D784E: + ldr r0, [r4, #0xc] + add r0, r0, #1 + pop {r4, pc} + .align 2, 0 +_021D7854: .word 0x00001424 + thumb_func_end MOD73_021D7830 + + thumb_func_start MOD73_021D7858 +MOD73_021D7858: ; 0x021D7858 + ldr r0, [r1, #0xc] + bx lr + thumb_func_end MOD73_021D7858 + + thumb_func_start MOD73_021D785C +MOD73_021D785C: ; 0x021D785C + push {r3, r4, r5, lr} + add r4, r2, #0 + add r5, r1, #0 + ldr r1, [r4] + cmp r1, #0 + beq _021D786E + cmp r1, #1 + beq _021D7884 + b _021D78AA +_021D786E: + ldr r1, _021D78B0 ; =0x00001420 + mov r0, #0xd7 + lsl r0, r0, #2 + ldr r1, [r5, r1] + add r0, r5, r0 + bl MOD73_021D96B0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D78AA +_021D7884: + ldr r1, [r0, #8] + ldr r0, _021D78B4 ; =0x0000142C + str r1, [r5, r0] + bl MOD73_021D9088 + ldr r3, _021D78B4 ; =0x0000142C + add r2, r0, #0 + add r1, r5, r3 + sub r3, #8 + ldr r3, [r5, r3] + mov r0, #0x19 + bl MOD73_021D90D0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + ldr r0, [r5, #0xc] + add r0, r0, #1 + pop {r3, r4, r5, pc} +_021D78AA: + ldr r0, [r5, #0xc] + pop {r3, r4, r5, pc} + nop +_021D78B0: .word 0x00001420 +_021D78B4: .word 0x0000142C + thumb_func_end MOD73_021D785C + + thumb_func_start MOD73_021D78B8 +MOD73_021D78B8: ; 0x021D78B8 + push {r3, r4, r5, r6, r7, lr} + add r5, r2, #0 + ldr r0, [r5] + add r4, r1, #0 + cmp r0, #5 + bhi _021D79C4 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D78D0: ; jump table + .short _021D78DC - _021D78D0 - 2 ; case 0 + .short _021D78F0 - _021D78D0 - 2 ; case 1 + .short _021D7902 - _021D78D0 - 2 ; case 2 + .short _021D7924 - _021D78D0 - 2 ; case 3 + .short _021D7940 - _021D78D0 - 2 ; case 4 + .short _021D7966 - _021D78D0 - 2 ; case 5 +_021D78DC: + ldr r0, _021D79C8 ; =0x00001418 + ldr r1, [r4] + ldr r2, [r4, #0x20] + add r0, r4, r0 + bl MOD73_021DB26C + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D79C4 +_021D78F0: + mov r0, #0xd7 + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD73_021D97F0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D79C4 +_021D7902: + mov r0, #0xd7 + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD73_021D98B8 + cmp r0, #1 + bne _021D79C4 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + ldr r0, _021D79CC ; =0x0000054C + add r0, r4, r0 + bl MOD73_021D9AB4 + mov r0, #0x18 + str r0, [r4, #0x1c] + b _021D79C4 +_021D7924: + ldr r0, [r4, #0x1c] + cmp r0, #0 + ble _021D7930 + sub r0, r0, #1 + str r0, [r4, #0x1c] + b _021D79C4 +_021D7930: + ldr r0, _021D79D0 ; =0x00000598 + add r0, r4, r0 + bl MOD73_021D9E3C + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D79C4 +_021D7940: + ldr r0, _021D79D0 ; =0x00000598 + add r0, r4, r0 + bl MOD73_021D9E6C + cmp r0, #0 + beq _021D79C4 + ldr r0, _021D79CC ; =0x0000054C + add r0, r4, r0 + bl MOD73_021D9AF0 + mov r0, #0x16 + lsl r0, r0, #6 + add r0, r4, r0 + bl MOD73_021D9E24 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D79C4 +_021D7966: + mov r0, #0x16 + lsl r0, r0, #6 + add r0, r4, r0 + bl MOD73_021D9E6C + add r6, r0, #0 + ldr r0, _021D79D4 ; =0x00000588 + ldr r0, [r4, r0] + bl FUN_0202022C + add r7, r0, #0 + add r0, r7, #1 + mov r1, #3 + bl _s32_div_f + add r5, r0, #0 + mov r0, #0xd6 + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, r5 + beq _021D79A8 + cmp r7, #0xa + bge _021D799C + ldr r0, _021D79D8 ; =0x000006BD + bl FUN_020054C8 + b _021D79A2 +_021D799C: + ldr r0, _021D79DC ; =0x000006BE + bl FUN_020054C8 +_021D79A2: + mov r0, #0xd6 + lsl r0, r0, #2 + str r5, [r4, r0] +_021D79A8: + cmp r6, #0 + beq _021D79C4 + ldr r0, _021D79E0 ; =0x0000061C + mov r1, #1 + add r0, r4, r0 + bl MOD73_021DA1D8 + ldr r0, _021D79E4 ; =0x000005A4 + add r0, r4, r0 + bl MOD73_021DA03C + ldr r0, [r4, #0xc] + add r0, r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D79C4: + ldr r0, [r4, #0xc] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D79C8: .word 0x00001418 +_021D79CC: .word 0x0000054C +_021D79D0: .word 0x00000598 +_021D79D4: .word 0x00000588 +_021D79D8: .word 0x000006BD +_021D79DC: .word 0x000006BE +_021D79E0: .word 0x0000061C +_021D79E4: .word 0x000005A4 + thumb_func_end MOD73_021D78B8 + + thumb_func_start MOD73_021D79E8 +MOD73_021D79E8: ; 0x021D79E8 + push {r4, lr} + mov r0, #0x2d + add r4, r1, #0 + lsl r0, r0, #4 + add r0, r4, r0 + bl MOD73_021DB318 + ldr r0, _021D7A98 ; =0x00001430 + mov r1, #0x2d + lsl r1, r1, #4 + add r0, r4, r0 + add r1, r4, r1 + bl MOD73_021DB368 + ldr r0, _021D7A9C ; =0x00001424 + ldr r0, [r4, r0] + bl MOD73_021D910C + cmp r0, #0 + bne _021D7A5C + ldr r2, _021D7AA0 ; =0x0000142C + mov r0, #0xba + add r1, r4, r2 + sub r2, #0xc + lsl r0, r0, #2 + ldr r2, [r4, r2] + add r0, r4, r0 + bl MOD73_021DB8AC + cmp r0, #1 + bne _021D7A40 + ldr r3, _021D7A9C ; =0x00001424 + mov r1, #0 + ldr r3, [r4, r3] + mov r0, #0x17 + add r2, r1, #0 + bl MOD73_021D90D0 + cmp r0, #0 + bne _021D7A3C + bl ErrorHandling +_021D7A3C: + ldr r0, [r4, #0xc] + pop {r4, pc} +_021D7A40: + mov r0, #0xba + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD73_021DB9F0 + ldr r2, _021D7AA0 ; =0x0000142C + mov r0, #0xba + add r1, r4, r2 + sub r2, #0xc + lsl r0, r0, #2 + ldr r2, [r4, r2] + add r0, r4, r0 + bl MOD73_021DB924 +_021D7A5C: + bl MOD73_021D908C + ldr r3, _021D7A98 ; =0x00001430 + add r2, r0, #0 + add r1, r4, r3 + sub r3, #0xc + ldr r3, [r4, r3] + mov r0, #0x1a + bl MOD73_021D90D0 + add r0, r4, #0 + bl MOD73_021D810C + mov r0, #0x67 + ldr r1, _021D7AA0 ; =0x0000142C + lsl r0, r0, #4 + add r0, r4, r0 + add r1, r4, r1 + bl MOD73_021DA884 + ldr r0, _021D7AA4 ; =0x00000A84 + add r0, r4, r0 + bl MOD73_021DAE54 + ldr r0, _021D7AA8 ; =0x00000B04 + add r0, r4, r0 + bl MOD73_021DB008 + ldr r0, [r4, #0xc] + pop {r4, pc} + .align 2, 0 +_021D7A98: .word 0x00001430 +_021D7A9C: .word 0x00001424 +_021D7AA0: .word 0x0000142C +_021D7AA4: .word 0x00000A84 +_021D7AA8: .word 0x00000B04 + thumb_func_end MOD73_021D79E8 + + thumb_func_start MOD73_021D7AAC +MOD73_021D7AAC: ; 0x021D7AAC + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r6, r0, #0 + add r4, r1, #0 + mov r0, #0x67 + ldr r1, _021D7C68 ; =0x0000142C + lsl r0, r0, #4 + add r5, r2, #0 + add r0, r4, r0 + add r1, r4, r1 + bl MOD73_021DA884 + ldr r0, [r5] + cmp r0, #4 + bls _021D7ACC + b _021D7C5C +_021D7ACC: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D7AD8: ; jump table + .short _021D7AE2 - _021D7AD8 - 2 ; case 0 + .short _021D7B6C - _021D7AD8 - 2 ; case 1 + .short _021D7B98 - _021D7AD8 - 2 ; case 2 + .short _021D7BA8 - _021D7AD8 - 2 ; case 3 + .short _021D7C1A - _021D7AD8 - 2 ; case 4 +_021D7AE2: + ldr r0, _021D7C6C ; =0x0000063C + add r0, r4, r0 + bl MOD73_021DA4AC + ldr r0, _021D7C70 ; =0x00000A84 + mov r1, #0 + add r0, r4, r0 + bl MOD73_021DAEAC + ldr r0, _021D7C70 ; =0x00000A84 + mov r1, #1 + add r0, r4, r0 + bl MOD73_021DAEAC + ldr r0, _021D7C70 ; =0x00000A84 + mov r1, #2 + add r0, r4, r0 + bl MOD73_021DAEAC + ldr r0, _021D7C70 ; =0x00000A84 + mov r1, #3 + add r0, r4, r0 + bl MOD73_021DAEAC + ldr r0, _021D7C74 ; =0x0000058C + add r0, r4, r0 + bl MOD73_021D9E24 + ldr r0, _021D7C78 ; =0x000006BA + mov r1, #0 + bl FUN_020054F0 + ldr r0, _021D7C7C ; =0x000006BB + mov r1, #0 + bl FUN_020054F0 + ldr r0, _021D7C80 ; =0x000006BF + mov r1, #0 + bl FUN_020054F0 + ldr r0, _021D7C84 ; =0x000006C1 + mov r1, #0 + bl FUN_020054F0 + ldr r0, _021D7C88 ; =0x000006C2 + bl FUN_020054C8 + ldr r0, _021D7C8C ; =0x000005A4 + mov r1, #0 + add r0, r4, r0 + add r2, r1, #0 + bl MOD73_021D9FC0 + ldr r0, _021D7C8C ; =0x000005A4 + mov r1, #1 + add r0, r4, r0 + mov r2, #0 + bl MOD73_021D9FC0 + ldr r0, _021D7C8C ; =0x000005A4 + mov r1, #2 + add r0, r4, r0 + mov r2, #0 + bl MOD73_021D9FC0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7C60 +_021D7B6C: + ldr r0, _021D7C74 ; =0x0000058C + add r0, r4, r0 + bl MOD73_021D9E6C + cmp r0, #0 + beq _021D7C60 + mov r0, #6 + str r0, [sp] + mov r0, #1 + mov r1, #0 + str r0, [sp, #4] + ldr r0, [r4] + add r2, r1, #0 + str r0, [sp, #8] + mov r0, #3 + add r3, r1, #0 + bl FUN_0200E1D0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7C60 +_021D7B98: + bl FUN_0200E308 + cmp r0, #0 + beq _021D7C60 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7C60 +_021D7BA8: + ldr r0, [r6, #0x10] + ldr r0, [r0, #0xc] + bl FUN_02029FC8 + ldr r1, _021D7C90 ; =0x00001428 + ldr r1, [r4, r1] + cmp r1, #0 + bne _021D7BC0 + mov r1, #0xc + bl FUN_0202A170 + b _021D7BC6 +_021D7BC0: + mov r1, #0x12 + bl FUN_0202A170 +_021D7BC6: + ldr r0, _021D7C94 ; =0x00001424 + ldr r0, [r4, r0] + bl MOD73_021D910C + cmp r0, #0 + bne _021D7C12 + ldr r0, [r4] + bl FUN_02027E5C + add r6, r0, #0 + ldr r0, [r4] + ldr r3, _021D7C68 ; =0x0000142C + str r0, [sp] + mov r0, #0xba + add r2, r4, r3 + sub r3, #0xc + lsl r0, r0, #2 + ldr r3, [r4, r3] + add r0, r4, r0 + add r1, r6, #0 + bl MOD73_021DBA24 + bl FUN_02027E30 + ldr r3, _021D7C94 ; =0x00001424 + add r2, r0, #0 + ldr r3, [r4, r3] + mov r0, #0x1c + add r1, r6, #0 + bl MOD73_021D90D0 + cmp r0, #0 + bne _021D7C0C + bl ErrorHandling +_021D7C0C: + add r0, r6, #0 + bl FUN_02016A18 +_021D7C12: + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7C60 +_021D7C1A: + ldr r0, _021D7C94 ; =0x00001424 + ldr r0, [r4, r0] + bl MOD73_021D910C + cmp r0, #0 + bne _021D7C54 + ldr r2, _021D7C68 ; =0x0000142C + mov r0, #0xba + add r1, r4, r2 + sub r2, #0xc + lsl r0, r0, #2 + ldr r2, [r4, r2] + add r0, r4, r0 + bl MOD73_021DBBFC + bl MOD73_021D9090 + ldr r3, _021D7C98 ; =0x0000144C + add r2, r0, #0 + add r1, r4, r3 + sub r3, #0x28 + ldr r3, [r4, r3] + mov r0, #0x1b + bl MOD73_021D90D0 + cmp r0, #0 + bne _021D7C54 + bl ErrorHandling +_021D7C54: + ldr r0, [r4, #0xc] + add sp, #0xc + add r0, r0, #1 + pop {r3, r4, r5, r6, pc} +_021D7C5C: + bl ErrorHandling +_021D7C60: + ldr r0, [r4, #0xc] + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021D7C68: .word 0x0000142C +_021D7C6C: .word 0x0000063C +_021D7C70: .word 0x00000A84 +_021D7C74: .word 0x0000058C +_021D7C78: .word 0x000006BA +_021D7C7C: .word 0x000006BB +_021D7C80: .word 0x000006BF +_021D7C84: .word 0x000006C1 +_021D7C88: .word 0x000006C2 +_021D7C8C: .word 0x000005A4 +_021D7C90: .word 0x00001428 +_021D7C94: .word 0x00001424 +_021D7C98: .word 0x0000144C + thumb_func_end MOD73_021D7AAC + + thumb_func_start MOD73_021D7C9C +MOD73_021D7C9C: ; 0x021D7C9C + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r2, #0 + add r6, r0, #0 + ldr r0, [r5] + add r4, r1, #0 + cmp r0, #0xb + bls _021D7CAE + b _021D7F3A +_021D7CAE: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D7CBA: ; jump table + .short _021D7CD2 - _021D7CBA - 2 ; case 0 + .short _021D7D2E - _021D7CBA - 2 ; case 1 + .short _021D7D42 - _021D7CBA - 2 ; case 2 + .short _021D7D66 - _021D7CBA - 2 ; case 3 + .short _021D7D94 - _021D7CBA - 2 ; case 4 + .short _021D7DC0 - _021D7CBA - 2 ; case 5 + .short _021D7DF4 - _021D7CBA - 2 ; case 6 + .short _021D7E1C - _021D7CBA - 2 ; case 7 + .short _021D7E36 - _021D7CBA - 2 ; case 8 + .short _021D7EA8 - _021D7CBA - 2 ; case 9 + .short _021D7ED6 - _021D7CBA - 2 ; case 10 + .short _021D7F0C - _021D7CBA - 2 ; case 11 +_021D7CD2: + ldr r0, _021D7F44 ; =0x0000063C + mov r1, #0 + add r0, r4, r0 + bl MOD73_021DA730 + mov r0, #1 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0xae + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + ldr r0, [r4] + ldr r3, _021D7F48 ; =0x00001410 + str r0, [sp] + add r0, r4, r3 + add r3, #0x80 + ldrb r3, [r4, r3] + mov r1, #0x80 + mov r2, #0x90 + bl MOD73_021DB20C + mov r0, #6 + mov r2, #0 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r0, [r4] + add r3, r2, #0 + str r0, [sp, #8] + mov r0, #3 + bl FUN_0200E1D0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7F3E +_021D7D2E: + bl FUN_0200E308 + cmp r0, #0 + beq _021D7E12 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + mov r0, #0x1e + str r0, [r4, #0x1c] + b _021D7F3E +_021D7D42: + ldr r0, [r4, #0x1c] + sub r0, r0, #1 + str r0, [r4, #0x1c] + bpl _021D7E12 + ldr r0, _021D7F44 ; =0x0000063C + mov r1, #1 + add r0, r4, r0 + bl MOD73_021DA730 + ldr r0, _021D7F4C ; =0x000006C3 + bl FUN_020054C8 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + mov r0, #0x1e + str r0, [r4, #0x1c] + b _021D7F3E +_021D7D66: + ldr r0, [r4, #0x1c] + sub r0, r0, #1 + str r0, [r4, #0x1c] + bpl _021D7E12 + ldr r0, _021D7F44 ; =0x0000063C + mov r1, #2 + add r0, r4, r0 + bl MOD73_021DA730 + ldr r0, _021D7F48 ; =0x00001410 + add r0, r4, r0 + bl MOD73_021DB260 + ldr r0, _021D7F4C ; =0x000006C3 + bl FUN_020054C8 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + mov r0, #0x96 + lsl r0, r0, #2 + str r0, [r4, #0x1c] + b _021D7F3E +_021D7D94: + ldr r0, [r4, #0x1c] + sub r0, r0, #1 + str r0, [r4, #0x1c] + bmi _021D7DAE + ldr r0, _021D7F50 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + bne _021D7DAE + ldr r0, _021D7F54 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _021D7DB6 +_021D7DAE: + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7F3E +_021D7DB6: + ldr r0, _021D7F48 ; =0x00001410 + add r0, r4, r0 + bl MOD73_021DB260 + b _021D7F3E +_021D7DC0: + ldr r0, _021D7F48 ; =0x00001410 + add r0, r4, r0 + bl MOD73_021DB24C + ldr r0, _021D7F44 ; =0x0000063C + add r0, r4, r0 + bl MOD73_021DA754 + ldr r1, _021D7F58 ; =0x0000152C + ldr r2, _021D7F5C ; =0x00001420 + ldr r1, [r4, r1] + ldr r2, [r4, r2] + add r0, r6, #0 + bl MOD73_021D8590 + ldr r0, _021D7F44 ; =0x0000063C + mov r1, #0 + add r0, r4, r0 + bl MOD73_021DA770 + mov r0, #0x96 + str r0, [r4, #0x1c] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7F3E +_021D7DF4: + ldr r0, [r4, #0x1c] + sub r0, r0, #1 + str r0, [r4, #0x1c] + ldr r0, _021D7F50 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + bne _021D7E14 + ldr r0, [r4, #0x1c] + cmp r0, #0 + blt _021D7E14 + ldr r0, _021D7F54 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021D7E14 +_021D7E12: + b _021D7F3E +_021D7E14: + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7F3E +_021D7E1C: + ldr r0, _021D7F44 ; =0x0000063C + mov r1, #1 + add r0, r4, r0 + bl MOD73_021DA770 + ldr r0, _021D7F60 ; =0x00001418 + add r0, r4, r0 + bl MOD73_021DB28C + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7F3E +_021D7E36: + ldr r0, _021D7F60 ; =0x00001418 + add r0, r4, r0 + bl MOD73_021DB2B8 + sub r1, r0, #1 + cmp r1, #1 + bhi _021D7F3E + cmp r0, #1 + bne _021D7E90 + ldr r0, [r6, #0x10] + ldr r0, [r0, #8] + bl FUN_020281B8 + cmp r0, #0x64 + blo _021D7E68 + ldr r0, _021D7F44 ; =0x0000063C + mov r1, #2 + add r0, r4, r0 + bl MOD73_021DA770 + mov r0, #0xa + str r0, [r5] + mov r0, #0x96 + str r0, [r4, #0x1c] + b _021D7F3E +_021D7E68: + ldr r0, [r6, #0x10] + mov r1, #4 + ldr r0, [r0, #0x14] + bl FUN_0206EE64 + cmp r0, #0 + bne _021D7E8A + ldr r0, _021D7F44 ; =0x0000063C + mov r1, #5 + add r0, r4, r0 + bl MOD73_021DA770 + mov r0, #0xa + str r0, [r5] + mov r0, #0x96 + str r0, [r4, #0x1c] + b _021D7F3E +_021D7E8A: + mov r0, #9 + str r0, [r5] + b _021D7E94 +_021D7E90: + mov r0, #0xb + str r0, [r5] +_021D7E94: + ldr r0, _021D7F5C ; =0x00001420 + ldr r0, [r4, r0] + cmp r0, #1 + ble _021D7F3E + ldr r0, _021D7F44 ; =0x0000063C + mov r1, #6 + add r0, r4, r0 + bl MOD73_021DA770 + b _021D7F3E +_021D7EA8: + mov r0, #0x35 + mov r1, #1 + lsl r0, r0, #4 + str r1, [r4, r0] + bl MOD73_021D9080 + ldr r3, _021D7F64 ; =0x00001424 + mov r1, #0x35 + lsl r1, r1, #4 + add r2, r0, #0 + ldr r3, [r4, r3] + mov r0, #0x1e + add r1, r4, r1 + bl MOD73_021D90D0 + cmp r0, #0 + bne _021D7ECE + bl ErrorHandling +_021D7ECE: + ldr r0, [r4, #0xc] + add sp, #0xc + add r0, r0, #1 + pop {r3, r4, r5, r6, pc} +_021D7ED6: + ldr r0, [r4, #0x1c] + sub r0, r0, #1 + str r0, [r4, #0x1c] + ldr r0, _021D7F50 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + bne _021D7EF4 + ldr r0, [r4, #0x1c] + cmp r0, #0 + blt _021D7EF4 + ldr r0, _021D7F54 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _021D7F3E +_021D7EF4: + ldr r0, _021D7F5C ; =0x00001420 + ldr r0, [r4, r0] + cmp r0, #1 + ble _021D7F06 + ldr r0, _021D7F44 ; =0x0000063C + mov r1, #6 + add r0, r4, r0 + bl MOD73_021DA770 +_021D7F06: + mov r0, #0xb + str r0, [r5] + b _021D7F3E +_021D7F0C: + mov r0, #0x35 + mov r1, #0 + lsl r0, r0, #4 + str r1, [r4, r0] + bl MOD73_021D9080 + ldr r3, _021D7F64 ; =0x00001424 + mov r1, #0x35 + lsl r1, r1, #4 + add r2, r0, #0 + ldr r3, [r4, r3] + mov r0, #0x1e + add r1, r4, r1 + bl MOD73_021D90D0 + cmp r0, #0 + bne _021D7F32 + bl ErrorHandling +_021D7F32: + ldr r0, [r4, #0xc] + add sp, #0xc + add r0, r0, #1 + pop {r3, r4, r5, r6, pc} +_021D7F3A: + bl ErrorHandling +_021D7F3E: + ldr r0, [r4, #0xc] + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021D7F44: .word 0x0000063C +_021D7F48: .word 0x00001410 +_021D7F4C: .word 0x000006C3 +_021D7F50: .word 0x021C48F8 +_021D7F54: .word 0x021C48B8 +_021D7F58: .word 0x0000152C +_021D7F5C: .word 0x00001420 +_021D7F60: .word 0x00001418 +_021D7F64: .word 0x00001424 + thumb_func_end MOD73_021D7C9C + + thumb_func_start MOD73_021D7F68 +MOD73_021D7F68: ; 0x021D7F68 + ldr r3, _021D7F70 ; =MOD73_021D8810 + add r0, r1, #0 + add r1, r2, #0 + bx r3 + .align 2, 0 +_021D7F70: .word MOD73_021D8810 + thumb_func_end MOD73_021D7F68 + + thumb_func_start MOD73_021D7F74 +MOD73_021D7F74: ; 0x021D7F74 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r2, #0 + add r6, r0, #0 + ldr r0, [r5] + add r4, r1, #0 + cmp r0, #4 + bhi _021D8056 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D7F90: ; jump table + .short _021D7F9A - _021D7F90 - 2 ; case 0 + .short _021D8000 - _021D7F90 - 2 ; case 1 + .short _021D8010 - _021D7F90 - 2 ; case 2 + .short _021D8030 - _021D7F90 - 2 ; case 3 + .short _021D8040 - _021D7F90 - 2 ; case 4 +_021D7F9A: + ldr r0, _021D805C ; =0x00001571 + ldrb r0, [r4, r0] + cmp r0, #1 + bne _021D7FB2 + ldr r0, _021D8060 ; =0x0000063C + mov r1, #3 + add r0, r4, r0 + bl MOD73_021DA770 + mov r0, #1 + str r0, [r6, #0x20] + b _021D7FF4 +_021D7FB2: + mov r0, #0 + str r0, [r6, #0x20] + mov r0, #0x35 + lsl r0, r0, #4 + ldr r0, [r4, r0] + cmp r0, #1 + bne _021D7FCC + ldr r0, _021D8060 ; =0x0000063C + mov r1, #4 + add r0, r4, r0 + bl MOD73_021DA770 + b _021D7FDA +_021D7FCC: + ldr r0, _021D8064 ; =0x00001420 + ldr r0, [r4, r0] + cmp r0, #1 + bgt _021D7FDA + mov r0, #2 + str r0, [r5] + b _021D8056 +_021D7FDA: + ldr r0, _021D8068 ; =0x00001428 + ldr r0, [r4, r0] + cmp r0, #1 + bne _021D7FF4 + ldr r0, [r4] + bl FUN_02029520 + add r1, r0, #0 + ldr r0, [r6, #0x10] + mov r2, #4 + ldr r0, [r0, #0x1c] + bl FUN_02028AD4 +_021D7FF4: + mov r0, #0x3c + str r0, [r4, #0x1c] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D8056 +_021D8000: + ldr r0, [r4, #0x1c] + sub r0, r0, #1 + str r0, [r4, #0x1c] + bpl _021D8056 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D8056 +_021D8010: + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D8056 +_021D8030: + bl FUN_0200E308 + cmp r0, #0 + beq _021D8056 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D8056 +_021D8040: + add r0, r4, #0 + add r1, r5, #0 + bl MOD73_021D8840 + add r0, r4, #0 + bl MOD73_021D875C + ldr r0, [r4, #0xc] + add sp, #0xc + add r0, r0, #1 + pop {r3, r4, r5, r6, pc} +_021D8056: + ldr r0, [r4, #0xc] + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021D805C: .word 0x00001571 +_021D8060: .word 0x0000063C +_021D8064: .word 0x00001420 +_021D8068: .word 0x00001428 + thumb_func_end MOD73_021D7F74 + + thumb_func_start MOD73_021D806C +MOD73_021D806C: ; 0x021D806C + push {r4, lr} + mov r0, #0xd7 + add r4, r1, #0 + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD73_021D96C8 + ldr r0, _021D80E8 ; =0x0000054C + add r0, r4, r0 + bl MOD73_021D9A4C + mov r0, #0x16 + lsl r0, r0, #6 + add r0, r4, r0 + bl MOD73_021D9DA0 + ldr r0, _021D80EC ; =0x0000058C + add r0, r4, r0 + bl MOD73_021D9DA0 + ldr r0, _021D80F0 ; =0x00000598 + add r0, r4, r0 + bl MOD73_021D9DA0 + ldr r0, _021D80F4 ; =0x000005A4 + add r0, r4, r0 + bl MOD73_021D9E8C + ldr r0, _021D80F8 ; =0x0000061C + add r0, r4, r0 + bl MOD73_021DA0FC + ldr r0, _021D80FC ; =0x0000063C + add r0, r4, r0 + bl MOD73_021DA234 + mov r0, #0x67 + lsl r0, r0, #4 + add r0, r4, r0 + bl MOD73_021DA82C + ldr r0, _021D8100 ; =0x00000A84 + add r0, r4, r0 + bl MOD73_021DAD84 + ldr r0, _021D8104 ; =0x00000B04 + add r0, r4, r0 + bl MOD73_021DAF88 + ldr r0, _021D8108 ; =0x00001418 + add r0, r4, r0 + bl MOD73_021DB280 + add r0, r4, #0 + bl MOD73_021D856C + add r0, r4, #0 + bl MOD73_021D7694 + ldr r0, [r4, #0xc] + pop {r4, pc} + nop +_021D80E8: .word 0x0000054C +_021D80EC: .word 0x0000058C +_021D80F0: .word 0x00000598 +_021D80F4: .word 0x000005A4 +_021D80F8: .word 0x0000061C +_021D80FC: .word 0x0000063C +_021D8100: .word 0x00000A84 +_021D8104: .word 0x00000B04 +_021D8108: .word 0x00001418 + thumb_func_end MOD73_021D806C + + thumb_func_start MOD73_021D810C +MOD73_021D810C: ; 0x021D810C + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021D8170 ; =0x000014C4 + add r4, r5, r0 + ldr r0, _021D8174 ; =0x000005A4 + ldrh r1, [r4, #8] + add r0, r5, r0 + bl MOD73_021D9FE0 + add r0, r5, #0 + bl MOD73_021D85E4 + ldrh r0, [r4, #0xa] + ldrb r1, [r4, #0xd] + bl MOD73_021DB644 + add r1, r0, #0 + ldr r0, _021D8174 ; =0x000005A4 + add r0, r5, r0 + bl MOD73_021D9FFC + ldr r0, _021D8174 ; =0x000005A4 + ldrb r1, [r4, #0xd] + add r0, r5, r0 + bl MOD73_021DA058 + ldr r0, _021D8178 ; =0x0000061C + add r0, r5, r0 + bl MOD73_021DA194 + add r0, r5, #0 + bl MOD73_021D817C + add r0, r5, #0 + bl MOD73_021D8458 + add r0, r5, #0 + bl MOD73_021D8254 + add r0, r5, #0 + bl MOD73_021D82FC + add r0, r5, #0 + bl MOD73_021D83D0 + add r0, r5, #0 + bl MOD73_021D84FC + pop {r3, r4, r5, pc} + nop +_021D8170: .word 0x000014C4 +_021D8174: .word 0x000005A4 +_021D8178: .word 0x0000061C + thumb_func_end MOD73_021D810C + + thumb_func_start MOD73_021D817C +MOD73_021D817C: ; 0x021D817C + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, _021D8230 ; =0x000014C4 + mov r2, #7 + add r4, r5, r0 + ldrb r3, [r4, #0xd] + ldr r0, _021D8234 ; =0x000005A4 + mov r1, #5 + add r6, r3, #0 + mul r6, r2 + ldr r2, _021D8238 ; =0x021DBC84 + add r0, r5, r0 + ldrb r2, [r2, r6] + bl MOD73_021D9FC0 + ldrb r3, [r4, #0xd] + ldr r0, _021D8234 ; =0x000005A4 + mov r2, #7 + add r6, r3, #0 + mul r6, r2 + ldr r2, _021D823C ; =0x021DBC85 + add r0, r5, r0 + ldrb r2, [r2, r6] + mov r1, #6 + bl MOD73_021D9FC0 + ldrb r2, [r4, #0xd] + ldr r0, _021D8234 ; =0x000005A4 + mov r1, #7 + add r3, r2, #0 + ldr r2, _021D8240 ; =0x021DBC86 + mul r3, r1 + ldrb r2, [r2, r3] + add r0, r5, r0 + bl MOD73_021D9FC0 + ldrb r3, [r4, #0xd] + ldr r0, _021D8234 ; =0x000005A4 + mov r2, #7 + add r6, r3, #0 + mul r6, r2 + ldr r2, _021D8244 ; =0x021DBC87 + add r0, r5, r0 + ldrb r2, [r2, r6] + mov r1, #0 + bl MOD73_021D9FC0 + ldrb r3, [r4, #0xd] + ldr r0, _021D8234 ; =0x000005A4 + mov r2, #7 + add r6, r3, #0 + mul r6, r2 + ldr r2, _021D8248 ; =0x021DBC88 + add r0, r5, r0 + ldrb r2, [r2, r6] + mov r1, #1 + bl MOD73_021D9FC0 + ldrb r3, [r4, #0xd] + ldr r0, _021D8234 ; =0x000005A4 + mov r2, #7 + add r6, r3, #0 + mul r6, r2 + ldr r2, _021D824C ; =0x021DBC89 + add r0, r5, r0 + ldrb r2, [r2, r6] + mov r1, #2 + bl MOD73_021D9FC0 + ldrb r1, [r4, #0xd] + mov r0, #7 + add r2, r1, #0 + mul r2, r0 + ldr r0, _021D8250 ; =0x021DBC8A + ldrb r1, [r0, r2] + cmp r1, #8 + beq _021D822E + ldrb r2, [r4, #0x10] + ldr r0, _021D8234 ; =0x000005A4 + cmp r2, #0 + beq _021D8226 + add r0, r5, r0 + bl MOD73_021DA01C + pop {r4, r5, r6, pc} +_021D8226: + add r0, r5, r0 + mov r2, #0 + bl MOD73_021D9FC0 +_021D822E: + pop {r4, r5, r6, pc} + .align 2, 0 +_021D8230: .word 0x000014C4 +_021D8234: .word 0x000005A4 +_021D8238: .word 0x021DBC84 +_021D823C: .word 0x021DBC85 +_021D8240: .word 0x021DBC86 +_021D8244: .word 0x021DBC87 +_021D8248: .word 0x021DBC88 +_021D824C: .word 0x021DBC89 +_021D8250: .word 0x021DBC8A + thumb_func_end MOD73_021D817C + + thumb_func_start MOD73_021D8254 +MOD73_021D8254: ; 0x021D8254 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D82F0 ; =0x000014C4 + add r1, r4, r0 + ldrb r2, [r1, #0x11] + ldrb r0, [r1, #0xc] + cmp r2, r0 + beq _021D8274 + ldrh r0, [r1, #0xa] + cmp r0, #0 + beq _021D8274 + mov r0, #0xb + lsl r0, r0, #6 + ldr r1, [r4, r0] + cmp r1, #0 + beq _021D8292 +_021D8274: + ldr r0, _021D82F4 ; =0x00000A84 + mov r1, #1 + add r0, r4, r0 + bl MOD73_021DAEAC + ldr r0, _021D82F4 ; =0x00000A84 + mov r1, #3 + add r0, r4, r0 + bl MOD73_021DAEAC + mov r0, #0xb1 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + pop {r4, pc} +_021D8292: + cmp r2, #0 + bne _021D82C2 + add r0, r0, #4 + ldr r0, [r4, r0] + cmp r0, #1 + beq _021D82EC + ldr r0, _021D82F4 ; =0x00000A84 + mov r1, #1 + add r0, r4, r0 + bl MOD73_021DAE7C + mov r0, #0xb1 + mov r1, #1 + lsl r0, r0, #2 + str r1, [r4, r0] + ldr r0, _021D82F4 ; =0x00000A84 + mov r1, #3 + add r0, r4, r0 + bl MOD73_021DAEAC + ldr r0, _021D82F8 ; =0x000006C1 + bl FUN_020054C8 + pop {r4, pc} +_021D82C2: + add r0, r0, #4 + ldr r0, [r4, r0] + cmp r0, #2 + beq _021D82EC + ldr r0, _021D82F4 ; =0x00000A84 + mov r1, #3 + add r0, r4, r0 + bl MOD73_021DAE7C + mov r0, #0xb1 + mov r1, #2 + lsl r0, r0, #2 + str r1, [r4, r0] + ldr r0, _021D82F4 ; =0x00000A84 + mov r1, #1 + add r0, r4, r0 + bl MOD73_021DAEAC + ldr r0, _021D82F8 ; =0x000006C1 + bl FUN_020054C8 +_021D82EC: + pop {r4, pc} + nop +_021D82F0: .word 0x000014C4 +_021D82F4: .word 0x00000A84 +_021D82F8: .word 0x000006C1 + thumb_func_end MOD73_021D8254 + + thumb_func_start MOD73_021D82FC +MOD73_021D82FC: ; 0x021D82FC + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021D83C0 ; =0x000014C4 + mov r1, #0xb1 + lsl r1, r1, #2 + add r4, r5, r0 + ldr r0, [r5, r1] + cmp r0, #0 + bne _021D8316 + sub r0, r1, #4 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021D832C +_021D8316: + ldr r0, _021D83C4 ; =0x0000063C + add r0, r5, r0 + bl MOD73_021DA4AC + mov r0, #0xb3 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] + sub r0, r0, #4 + str r1, [r5, r0] + pop {r3, r4, r5, pc} +_021D832C: + add r1, #8 + ldr r0, [r5, r1] + cmp r0, #0 + bne _021D8360 + ldrb r0, [r4, #0x13] + cmp r0, #0 + beq _021D8374 + ldr r0, _021D83C4 ; =0x0000063C + add r0, r5, r0 + bl MOD73_021DA4AC + ldr r0, _021D83C4 ; =0x0000063C + ldrb r2, [r4, #0xd] + ldr r1, _021D83C8 ; =0x021DBC58 + add r0, r5, r0 + ldrb r1, [r1, r2] + bl MOD73_021DA434 + mov r0, #0xb3 + mov r1, #1 + lsl r0, r0, #2 + str r1, [r5, r0] + mov r1, #0 + sub r0, r0, #4 + str r1, [r5, r0] + b _021D8374 +_021D8360: + ldr r0, _021D83C4 ; =0x0000063C + add r0, r5, r0 + bl MOD73_021DA49C + cmp r0, #0 + beq _021D8374 + mov r0, #0xb3 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] +_021D8374: + mov r0, #0xb2 + lsl r0, r0, #2 + ldr r0, [r5, r0] + cmp r0, #0 + bne _021D83AA + ldrb r0, [r4, #0x12] + cmp r0, #0 + beq _021D83BE + ldr r0, _021D83C4 ; =0x0000063C + add r0, r5, r0 + bl MOD73_021DA4AC + ldr r0, _021D83C4 ; =0x0000063C + ldrb r2, [r4, #0xd] + ldr r1, _021D83CC ; =0x021DBC5C + add r0, r5, r0 + ldrb r1, [r1, r2] + bl MOD73_021DA434 + mov r0, #0xb2 + mov r1, #1 + lsl r0, r0, #2 + str r1, [r5, r0] + mov r1, #0 + add r0, r0, #4 + str r1, [r5, r0] + pop {r3, r4, r5, pc} +_021D83AA: + ldr r0, _021D83C4 ; =0x0000063C + add r0, r5, r0 + bl MOD73_021DA49C + cmp r0, #0 + beq _021D83BE + mov r0, #0xb2 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] +_021D83BE: + pop {r3, r4, r5, pc} + .align 2, 0 +_021D83C0: .word 0x000014C4 +_021D83C4: .word 0x0000063C +_021D83C8: .word 0x021DBC58 +_021D83CC: .word 0x021DBC5C + thumb_func_end MOD73_021D82FC + + thumb_func_start MOD73_021D83D0 +MOD73_021D83D0: ; 0x021D83D0 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021D844C ; =0x000014C4 + add r4, r5, r0 + ldrb r0, [r4, #0x13] + cmp r0, #0 + beq _021D83FC + mov r0, #0x67 + lsl r0, r0, #4 + ldrb r1, [r4, #0xd] + add r0, r5, r0 + mov r2, #2 + bl MOD73_021DA8BC + ldrb r0, [r4, #0xd] + lsl r1, r0, #2 + ldr r0, _021D8450 ; =0x021DBC60 + ldr r0, [r0, r1] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_020054C8 +_021D83FC: + ldrb r0, [r4, #0x12] + cmp r0, #1 + bne _021D8422 + mov r0, #0x67 + lsl r0, r0, #4 + ldrb r1, [r4, #0xd] + add r0, r5, r0 + mov r2, #1 + bl MOD73_021DA8BC + ldrb r0, [r4, #0xd] + lsl r1, r0, #2 + ldr r0, _021D8454 ; =0x021DBC6C + ldr r0, [r0, r1] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_020054C8 + b _021D8434 +_021D8422: + cmp r0, #2 + bne _021D8434 + mov r0, #0x67 + lsl r0, r0, #4 + ldrb r1, [r4, #0xd] + add r0, r5, r0 + mov r2, #0 + bl MOD73_021DA8BC +_021D8434: + ldrh r0, [r4, #0xa] + ldrb r1, [r4, #0xd] + bl MOD73_021DB62C + cmp r0, #0 + bne _021D844A + mov r0, #0x67 + lsl r0, r0, #4 + add r0, r5, r0 + bl MOD73_021DAAA8 +_021D844A: + pop {r3, r4, r5, pc} + .align 2, 0 +_021D844C: .word 0x000014C4 +_021D8450: .word 0x021DBC60 +_021D8454: .word 0x021DBC6C + thumb_func_end MOD73_021D83D0 + + thumb_func_start MOD73_021D8458 +MOD73_021D8458: ; 0x021D8458 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D84F0 ; =0x000014C4 + add r1, r4, r0 + ldrb r0, [r1, #0xe] + cmp r0, #0 + beq _021D84B0 + ldrb r0, [r1, #0x11] + cmp r0, #0 + ldr r0, _021D84F4 ; =0x00000A84 + bne _021D8490 + add r0, r4, r0 + mov r1, #0 + bl MOD73_021DAE7C + ldr r0, _021D84F4 ; =0x00000A84 + mov r1, #2 + add r0, r4, r0 + bl MOD73_021DAEAC + ldr r0, _021D84F8 ; =0x000006C1 + bl FUN_020054C8 + mov r0, #0xb + mov r1, #1 + lsl r0, r0, #6 + str r1, [r4, r0] + b _021D84B0 +_021D8490: + add r0, r4, r0 + mov r1, #2 + bl MOD73_021DAE7C + ldr r0, _021D84F4 ; =0x00000A84 + mov r1, #0 + add r0, r4, r0 + bl MOD73_021DAEAC + ldr r0, _021D84F8 ; =0x000006C1 + bl FUN_020054C8 + mov r0, #0xb + mov r1, #2 + lsl r0, r0, #6 + str r1, [r4, r0] +_021D84B0: + mov r0, #0xb + lsl r0, r0, #6 + ldr r0, [r4, r0] + cmp r0, #1 + bne _021D84D2 + ldr r0, _021D84F4 ; =0x00000A84 + mov r1, #0 + add r0, r4, r0 + bl MOD73_021DAECC + cmp r0, #1 + bne _021D84EC + mov r0, #0xb + mov r1, #0 + lsl r0, r0, #6 + str r1, [r4, r0] + pop {r4, pc} +_021D84D2: + cmp r0, #2 + bne _021D84EC + ldr r0, _021D84F4 ; =0x00000A84 + mov r1, #2 + add r0, r4, r0 + bl MOD73_021DAECC + cmp r0, #1 + bne _021D84EC + mov r0, #0xb + mov r1, #0 + lsl r0, r0, #6 + str r1, [r4, r0] +_021D84EC: + pop {r4, pc} + nop +_021D84F0: .word 0x000014C4 +_021D84F4: .word 0x00000A84 +_021D84F8: .word 0x000006C1 + thumb_func_end MOD73_021D8458 + + thumb_func_start MOD73_021D84FC +MOD73_021D84FC: ; 0x021D84FC + push {r3, lr} + ldr r3, _021D8520 ; =0x00001430 + add r2, r3, #1 + ldrb r1, [r0, r3] + add r3, #0xa3 + ldrb r3, [r0, r3] + ldrb r2, [r0, r2] + cmp r3, #1 + bne _021D851C + ldr r3, _021D8524 ; =0x00000B04 + add r0, r0, r3 + bl MOD73_021DB020 + ldr r0, _021D8528 ; =0x000006BF + bl FUN_020054C8 +_021D851C: + pop {r3, pc} + nop +_021D8520: .word 0x00001430 +_021D8524: .word 0x00000B04 +_021D8528: .word 0x000006BF + thumb_func_end MOD73_021D84FC + + thumb_func_start MOD73_021D852C +MOD73_021D852C: ; 0x021D852C + push {r3, r4, r5, lr} + add r4, r0, #0 + ldr r0, [r4] + bl FUN_02027E5C + ldr r1, _021D8560 ; =0x0000152C + str r0, [r4, r1] + ldr r0, _021D8564 ; =0x00001424 + ldr r0, [r4, r0] + bl MOD73_021D910C + ldr r1, _021D8568 ; =0x00001570 + mov r5, #0 + strb r0, [r4, r1] + add r0, r1, #0 + mov r3, #0x80 + mov r2, #0x60 + sub r0, #0xb4 + sub r1, #0xb3 +_021D8552: + strb r3, [r4, r0] + strb r2, [r4, r1] + add r5, r5, #1 + add r4, #0x1c + cmp r5, #4 + blt _021D8552 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8560: .word 0x0000152C +_021D8564: .word 0x00001424 +_021D8568: .word 0x00001570 + thumb_func_end MOD73_021D852C + + thumb_func_start MOD73_021D856C +MOD73_021D856C: ; 0x021D856C + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D858C ; =0x0000152C + ldr r0, [r4, r0] + cmp r0, #0 + bne _021D857C + bl ErrorHandling +_021D857C: + ldr r0, _021D858C ; =0x0000152C + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, _021D858C ; =0x0000152C + mov r1, #0 + str r1, [r4, r0] + pop {r4, pc} + .align 2, 0 +_021D858C: .word 0x0000152C + thumb_func_end MOD73_021D856C + + thumb_func_start MOD73_021D8590 +MOD73_021D8590: ; 0x021D8590 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r5, #0x10] + add r7, r1, #0 + ldr r0, [r0, #0xc] + add r6, r2, #0 + bl FUN_02022504 + mov r4, #0 + str r0, [sp] + cmp r6, #0 + ble _021D85CA +_021D85AE: + ldr r0, [r5, #0x10] + add r1, r7, #0 + ldr r0, [r0, #8] + bl FUN_02028094 + ldr r1, _021D85E0 ; =0x0000FFFF + cmp r0, r1 + bne _021D85C4 + mov r0, #0 + str r0, [sp, #4] + b _021D85CA +_021D85C4: + add r4, r4, #1 + cmp r4, r6 + blt _021D85AE +_021D85CA: + add r0, r7, #0 + mov r1, #0 + bl FUN_02027E94 + add r1, r0, #0 + ldr r0, [sp] + bl FUN_02060FAC + ldr r0, [sp, #4] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D85E0: .word 0x0000FFFF + thumb_func_end MOD73_021D8590 + + thumb_func_start MOD73_021D85E4 +MOD73_021D85E4: ; 0x021D85E4 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021D8628 ; =0x000014C4 + add r4, r5, r0 + ldrb r2, [r4, #0xc] + cmp r2, #0 + bne _021D85FE + mov r0, #0xd5 + lsl r0, r0, #2 + ldr r1, [r5, r0] + ldrh r0, [r4, #8] + cmp r1, r0 + bgt _021D860E +_021D85FE: + cmp r2, #1 + bne _021D861E + mov r0, #0xd5 + lsl r0, r0, #2 + ldr r1, [r5, r0] + ldrh r0, [r4, #8] + cmp r1, r0 + bge _021D861E +_021D860E: + ldrb r0, [r4, #0xd] + lsl r1, r0, #2 + ldr r0, _021D862C ; =0x021DBC78 + ldr r0, [r0, r1] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_020054C8 +_021D861E: + ldrh r1, [r4, #8] + mov r0, #0xd5 + lsl r0, r0, #2 + str r1, [r5, r0] + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8628: .word 0x000014C4 +_021D862C: .word 0x021DBC78 + thumb_func_end MOD73_021D85E4 + + thumb_func_start MOD73_021D8630 +MOD73_021D8630: ; 0x021D8630 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + bl MOD73_021D8B4C + add r0, r4, #0 + ldr r1, [r4] + add r0, #0x20 + bl MOD73_021D88E4 + add r0, r4, #0 + bl MOD73_021D8A18 + add r0, r4, #0 + bl MOD73_021D89AC + add r0, r4, #0 + bl MOD73_021D89DC + add r0, r4, #0 + bl MOD73_021D8A84 + ldr r0, _021D8738 ; =0x0000054C + ldr r1, [r4, #0x20] + ldr r2, [r4] + add r0, r4, r0 + bl MOD73_021D9A68 + ldr r0, _021D873C ; =0x0000063C + ldr r1, [r4, #0x20] + ldr r2, [r4] + add r0, r4, r0 + bl MOD73_021DA254 + mov r1, #0xaf + ldr r0, _021D8740 ; =0x000005A4 + lsl r1, r1, #2 + ldr r1, [r4, r1] + ldr r2, [r4] + add r0, r4, r0 + bl MOD73_021D9EA8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #0x16 + mov r2, #0x5a + lsl r0, r0, #6 + add r1, r4, #0 + lsl r2, r2, #2 + ldr r3, [r4] + add r0, r4, r0 + add r1, #0x2c + add r2, r4, r2 + bl MOD73_021D9DCC + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _021D8744 ; =0x00000598 + mov r2, #0x5a + add r1, r4, #0 + lsl r2, r2, #2 + ldr r3, [r4] + add r0, r4, r0 + add r1, #0x2c + add r2, r4, r2 + bl MOD73_021D9DCC + mov r0, #5 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + ldr r0, _021D8748 ; =0x0000058C + mov r2, #0x5a + add r1, r4, #0 + lsl r2, r2, #2 + ldr r3, [r4] + add r0, r4, r0 + add r1, #0x2c + add r2, r4, r2 + bl MOD73_021D9DCC + ldr r0, _021D874C ; =0x0000061C + mov r2, #0x5a + add r1, r4, #0 + lsl r2, r2, #2 + ldr r3, [r4] + add r0, r4, r0 + add r1, #0x2c + add r2, r4, r2 + bl MOD73_021DA118 + mov r0, #0x67 + mov r2, #0x5a + lsl r0, r0, #4 + add r1, r4, #0 + lsl r2, r2, #2 + ldr r3, [r4] + add r0, r4, r0 + add r1, #0x2c + add r2, r4, r2 + bl MOD73_021DA84C + ldr r0, _021D8750 ; =0x00000A84 + add r1, r4, #0 + ldr r2, [r4] + add r0, r4, r0 + add r1, #0x2c + bl MOD73_021DADA0 + ldr r0, _021D8754 ; =0x00000B04 + mov r2, #0x5a + add r1, r4, #0 + lsl r2, r2, #2 + ldr r3, [r4] + add r0, r4, r0 + add r1, #0x2c + add r2, r4, r2 + bl MOD73_021DAFA8 + add r0, r4, #0 + bl MOD73_021D8BDC + ldr r0, _021D8758 ; =0x021C4918 + mov r1, #1 + strb r1, [r0, #5] + bl FUN_0201E7A0 + add sp, #8 + pop {r4, pc} + .align 2, 0 +_021D8738: .word 0x0000054C +_021D873C: .word 0x0000063C +_021D8740: .word 0x000005A4 +_021D8744: .word 0x00000598 +_021D8748: .word 0x0000058C +_021D874C: .word 0x0000061C +_021D8750: .word 0x00000A84 +_021D8754: .word 0x00000B04 +_021D8758: .word 0x021C4918 + thumb_func_end MOD73_021D8630 + + thumb_func_start MOD73_021D875C +MOD73_021D875C: ; 0x021D875C + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D87EC ; =0x0000063C + add r0, r4, r0 + bl MOD73_021DA290 + ldr r0, _021D87F0 ; =0x0000054C + add r0, r4, r0 + bl MOD73_021D9A94 + ldr r0, _021D87F4 ; =0x000005A4 + add r0, r4, r0 + bl MOD73_021D9F74 + add r0, r4, #0 + bl MOD73_021D8B2C + mov r0, #0x16 + lsl r0, r0, #6 + add r0, r4, r0 + bl MOD73_021D9E08 + ldr r0, _021D87F8 ; =0x0000058C + add r0, r4, r0 + bl MOD73_021D9E08 + ldr r0, _021D87FC ; =0x00000598 + add r0, r4, r0 + bl MOD73_021D9E08 + ldr r0, _021D8800 ; =0x0000061C + add r0, r4, r0 + bl MOD73_021DA178 + mov r0, #0x67 + lsl r0, r0, #4 + add r0, r4, r0 + bl MOD73_021DA858 + ldr r0, _021D8804 ; =0x00000A84 + add r0, r4, r0 + bl MOD73_021DAE24 + ldr r0, _021D8808 ; =0x00000B04 + add r0, r4, r0 + bl MOD73_021DAFEC + add r0, r4, #0 + add r0, #0x20 + bl MOD73_021D8980 + add r0, r4, #0 + bl MOD73_021D89D0 + add r0, r4, #0 + bl MOD73_021D8A74 + add r0, r4, #0 + bl MOD73_021D8A08 + add r0, r4, #0 + bl MOD73_021D8BD0 + add r0, r4, #0 + bl MOD73_021D8D18 + ldr r0, _021D880C ; =0x021C4918 + mov r1, #0 + strb r1, [r0, #5] + bl FUN_0201E7A0 + pop {r4, pc} + .align 2, 0 +_021D87EC: .word 0x0000063C +_021D87F0: .word 0x0000054C +_021D87F4: .word 0x000005A4 +_021D87F8: .word 0x0000058C +_021D87FC: .word 0x00000598 +_021D8800: .word 0x0000061C +_021D8804: .word 0x00000A84 +_021D8808: .word 0x00000B04 +_021D880C: .word 0x021C4918 + thumb_func_end MOD73_021D875C + + thumb_func_start MOD73_021D8810 +MOD73_021D8810: ; 0x021D8810 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, [r4] + ldr r1, _021D883C ; =0x00001498 + str r0, [sp] + mov r0, #0xd7 + mov r3, #0x5a + lsl r0, r0, #2 + add r2, r4, #0 + lsl r3, r3, #2 + add r0, r4, r0 + add r1, r4, r1 + add r2, #0x2c + add r3, r4, r3 + bl MOD73_021D96E4 + ldr r0, [r4, #0xc] + add r0, r0, #1 + add sp, #4 + pop {r3, r4, pc} + nop +_021D883C: .word 0x00001498 + thumb_func_end MOD73_021D8810 + + thumb_func_start MOD73_021D8840 +MOD73_021D8840: ; 0x021D8840 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xd7 + lsl r0, r0, #2 + add r1, r4, #0 + add r0, r4, r0 + add r1, #0x2c + bl MOD73_021D97A4 + ldr r0, [r4, #0xc] + add r0, r0, #1 + pop {r4, pc} + thumb_func_end MOD73_021D8840 + + thumb_func_start MOD73_021D8858 +MOD73_021D8858: ; 0x021D8858 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + bl FUN_020222AC + mov r1, #0 + mov r0, #0x11 + add r2, r1, #0 + bl FUN_020BB1C0 + bl FUN_020BB394 + bl FUN_020B02C8 + mov r0, #0xaf + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #0 + beq _021D8882 + bl FUN_02013D5C +_021D8882: + mov r2, #1 + mov r0, #0x12 + add r1, sp, #0 + str r2, [sp] + bl FUN_020BB1C0 + mov r0, #0 + add r1, r0, #0 + bl FUN_020222B4 + mov r0, #0xae + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #0 + beq _021D88AA + ldr r0, [r4, #0x2c] + cmp r0, #0 + beq _021D88AA + bl FUN_0201FDEC +_021D88AA: + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D8858 + + thumb_func_start MOD73_021D88B0 +MOD73_021D88B0: ; 0x021D88B0 + push {r4, lr} + add r4, r0, #0 + bl FUN_02009F80 + ldr r0, [r4, #0x20] + cmp r0, #0 + beq _021D88C2 + bl FUN_0201AB60 +_021D88C2: + pop {r4, pc} + thumb_func_end MOD73_021D88B0 + + thumb_func_start MOD73_021D88C4 +MOD73_021D88C4: ; 0x021D88C4 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D88E0 ; =0x021DBD40 + add r3, sp, #0 + mov r2, #5 +_021D88CE: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D88CE + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D88E0: .word 0x021DBD40 + thumb_func_end MOD73_021D88C4 + + thumb_func_start MOD73_021D88E4 +MOD73_021D88E4: ; 0x021D88E4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x88 + str r1, [sp] + add r6, r0, #0 + bl MOD73_021D88C4 + ldr r0, [sp] + bl FUN_02016B94 + add r3, sp, #8 + ldr r4, _021D8974 ; =0x021DBD30 + str r0, [r6] + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + mov r0, #0 + mov r1, #2 + bl FUN_020178BC + ldr r4, _021D8978 ; =0x021DBD68 + add r3, sp, #0x18 + mov r2, #0xe +_021D8922: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D8922 + ldr r1, _021D897C ; =0x021DBD0C + add r0, sp, #4 + ldrb r2, [r1] + mov r7, #0 + add r5, sp, #4 + strb r2, [r0] + ldrb r2, [r1, #1] + add r4, sp, #0x18 + strb r2, [r0, #1] + ldrb r2, [r1, #2] + ldrb r1, [r1, #3] + strb r2, [r0, #2] + strb r1, [r0, #3] +_021D8944: + ldrb r1, [r5] + ldr r0, [r6] + add r2, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldrb r1, [r5] + ldr r0, [r6] + bl FUN_02018744 + ldrb r0, [r5] + ldr r3, [sp] + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + add r7, r7, #1 + add r4, #0x1c + add r5, r5, #1 + cmp r7, #4 + blt _021D8944 + add sp, #0x88 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8974: .word 0x021DBD30 +_021D8978: .word 0x021DBD68 +_021D897C: .word 0x021DBD0C + thumb_func_end MOD73_021D88E4 + + thumb_func_start MOD73_021D8980 +MOD73_021D8980: ; 0x021D8980 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + mov r1, #5 + bl FUN_020178A0 + ldr r0, [r4] + mov r1, #4 + bl FUN_020178A0 + ldr r0, [r4] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r4] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r4] + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD73_021D8980 + + thumb_func_start MOD73_021D89AC +MOD73_021D89AC: ; 0x021D89AC + push {r3, lr} + add r3, r0, #0 + ldr r3, [r3] + add r0, #0x2c + mov r1, #0x48 + mov r2, #0x10 + bl MOD73_021D92EC + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD73_021D89AC + + thumb_func_start MOD73_021D89D0 +MOD73_021D89D0: ; 0x021D89D0 + ldr r3, _021D89D8 ; =MOD73_021D931C + add r0, #0x2c + bx r3 + nop +_021D89D8: .word MOD73_021D931C + thumb_func_end MOD73_021D89D0 + + thumb_func_start MOD73_021D89DC +MOD73_021D89DC: ; 0x021D89DC + push {r3, r4, r5, lr} + sub sp, #0x10 + ldr r5, _021D8A04 ; =0x021DBD10 + add r3, sp, #0 + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r4] + str r0, [sp, #0xc] + add r0, r2, #0 + bl FUN_02013CD4 + mov r1, #0xaf + lsl r1, r1, #2 + str r0, [r4, r1] + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8A04: .word 0x021DBD10 + thumb_func_end MOD73_021D89DC + + thumb_func_start MOD73_021D8A08 +MOD73_021D8A08: ; 0x021D8A08 + mov r1, #0xaf + lsl r1, r1, #2 + ldr r3, _021D8A14 ; =FUN_02013D18 + ldr r0, [r0, r1] + bx r3 + nop +_021D8A14: .word FUN_02013D18 + thumb_func_end MOD73_021D8A08 + + thumb_func_start MOD73_021D8A18 +MOD73_021D8A18: ; 0x021D8A18 + push {r4, r5, lr} + sub sp, #0x24 + add r4, r0, #0 + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x80 + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + ldr r2, [r4] + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + ldr r5, _021D8A6C ; =0x021DBD20 + add r3, sp, #0x14 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r4] + ldr r1, _021D8A70 ; =0x00200010 + str r0, [sp, #0x20] + add r0, r2, #0 + mov r2, #0x10 + bl FUN_0201D060 + ldr r1, [r4] + mov r0, #0x20 + bl FUN_0201E00C + bl FUN_0201D168 + bl FUN_0201E0BC + add sp, #0x24 + pop {r4, r5, pc} + nop +_021D8A6C: .word 0x021DBD20 +_021D8A70: .word 0x00200010 + thumb_func_end MOD73_021D8A18 + + thumb_func_start MOD73_021D8A74 +MOD73_021D8A74: ; 0x021D8A74 + push {r3, lr} + bl FUN_02009FA0 + bl FUN_0201D12C + bl FUN_0201E08C + pop {r3, pc} + thumb_func_end MOD73_021D8A74 + + thumb_func_start MOD73_021D8A84 +MOD73_021D8A84: ; 0x021D8A84 + push {r4, r5, r6, r7, lr} + sub sp, #0x2c + str r0, [sp, #0x18] + ldr r0, _021D8B28 ; =0x021DBDD8 + mov r1, #0x5a + str r0, [sp, #0x20] + mov r0, #0xc + str r0, [sp, #0x28] + ldr r0, [sp, #0x18] + lsl r1, r1, #2 + add r0, r0, r1 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x18] + mov r4, #0 + str r0, [sp, #0x24] + add r0, #0x2c + mov r7, #0xd + mov r5, #0xe + str r0, [sp, #0x24] +_021D8AAA: + cmp r4, #0 + ble _021D8AE0 + ldr r0, [sp, #0x20] + ldrb r0, [r0] + cmp r0, #8 + bne _021D8AE0 + str r5, [sp] + ldr r0, [sp, #0x28] + str r7, [sp, #4] + str r0, [sp, #8] + mov r0, #0x7d + lsl r0, r0, #4 + add r0, r4, r0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x18] + mov r2, #0x7a + ldr r0, [r0] + add r3, r2, #0 + str r0, [sp, #0x10] + ldr r6, [sp, #0x18] + add r3, #0xf2 + ldr r0, [sp, #0x24] + ldr r1, [sp, #0x1c] + ldr r3, [r6, r3] + bl MOD73_021D942C + b _021D8B08 +_021D8AE0: + mov r0, #2 + str r0, [sp] + str r5, [sp, #4] + ldr r0, [sp, #0x28] + str r7, [sp, #8] + str r0, [sp, #0xc] + mov r0, #0x7d + lsl r0, r0, #4 + add r0, r4, r0 + str r0, [sp, #0x10] + ldr r0, [sp, #0x18] + ldr r3, [sp, #0x20] + ldr r0, [r0] + ldr r1, [sp, #0x1c] + str r0, [sp, #0x14] + ldrb r3, [r3] + ldr r0, [sp, #0x24] + mov r2, #0x7a + bl MOD73_021D9340 +_021D8B08: + ldr r0, [sp, #0x20] + add r4, r4, #1 + add r0, r0, #1 + str r0, [sp, #0x20] + ldr r0, [sp, #0x28] + add r7, r7, #3 + add r0, r0, #3 + str r0, [sp, #0x28] + ldr r0, [sp, #0x1c] + add r5, r5, #3 + add r0, #0x38 + str r0, [sp, #0x1c] + cmp r4, #6 + blt _021D8AAA + add sp, #0x2c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D8B28: .word 0x021DBDD8 + thumb_func_end MOD73_021D8A84 + + thumb_func_start MOD73_021D8B2C +MOD73_021D8B2C: ; 0x021D8B2C + push {r4, r5, r6, lr} + mov r1, #0x5a + lsl r1, r1, #2 + add r6, r0, #0 + mov r4, #0 + add r5, r0, r1 + add r6, #0x2c +_021D8B3A: + add r0, r6, #0 + add r1, r5, #0 + bl MOD73_021D94F4 + add r4, r4, #1 + add r5, #0x38 + cmp r4, #6 + blt _021D8B3A + pop {r4, r5, r6, pc} + thumb_func_end MOD73_021D8B2C + + thumb_func_start MOD73_021D8B4C +MOD73_021D8B4C: ; 0x021D8B4C + push {r3, r4, lr} + sub sp, #4 + bl FUN_020BB7F4 + bl G3X_InitMtxStack + ldr r0, _021D8BB8 ; =0x04000060 + ldr r2, _021D8BBC ; =0xFFFFCFFD + ldrh r1, [r0] + and r1, r2 + strh r1, [r0] + ldrh r3, [r0] + add r1, r2, #2 + and r3, r1 + mov r1, #0x10 + orr r1, r3 + strh r1, [r0] + ldrh r1, [r0] + ldr r3, _021D8BC0 ; =0x0000CFFB + and r1, r3 + strh r1, [r0] + add r1, r2, #2 + ldrh r4, [r0] + sub r3, #0x1c + lsr r2, r2, #0x11 + and r4, r1 + mov r1, #8 + orr r1, r4 + strh r1, [r0] + ldrh r1, [r0] + and r1, r3 + strh r1, [r0] + mov r1, #0 + ldr r0, _021D8BC4 ; =0x000043FF + mov r3, #0x3f + str r1, [sp] + bl G3X_SetClearColor + ldr r2, _021D8BC8 ; =0x04000540 + mov r0, #2 + ldr r1, _021D8BCC ; =0xBFFF0000 + str r0, [r2] + str r1, [r2, #0x40] + mov r1, #1 + bl FUN_020AEB70 + mov r0, #2 + lsl r0, r0, #0xe + mov r1, #1 + bl FUN_020AEDF4 + add sp, #4 + pop {r3, r4, pc} + nop +_021D8BB8: .word 0x04000060 +_021D8BBC: .word 0xFFFFCFFD +_021D8BC0: .word 0x0000CFFB +_021D8BC4: .word 0x000043FF +_021D8BC8: .word 0x04000540 +_021D8BCC: .word 0xBFFF0000 + thumb_func_end MOD73_021D8B4C + + thumb_func_start MOD73_021D8BD0 +MOD73_021D8BD0: ; 0x021D8BD0 + push {r3, lr} + bl FUN_020AEAF4 + bl FUN_020AEC60 + pop {r3, pc} + thumb_func_end MOD73_021D8BD0 + + thumb_func_start MOD73_021D8BDC +MOD73_021D8BDC: ; 0x021D8BDC + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r2, _021D8CE0 ; =0x0000019D + ldr r3, [r5] + mov r0, #0 + mov r1, #0x1a + bl FUN_0200A86C + ldr r1, _021D8CE4 ; =0x00001574 + str r0, [r5, r1] + ldr r2, [r5] + mov r0, #4 + mov r1, #0x40 + bl FUN_0200AA90 + ldr r1, _021D8CE8 ; =0x00001578 + str r0, [r5, r1] + ldr r1, [r5] + mov r0, #0x40 + bl FUN_020219F4 + ldr r1, _021D8CEC ; =0x0000157C + str r0, [r5, r1] + sub r1, #8 + ldr r0, [r5, r1] + mov r1, #0 + bl FUN_0200A914 + mov r1, #0x56 + lsl r1, r1, #6 + str r0, [r5, r1] + sub r1, #0xc + ldr r0, [r5, r1] + mov r1, #1 + bl FUN_0200A914 + ldr r1, _021D8CF0 ; =0x00001584 + str r0, [r5, r1] + sub r1, #0x10 + ldr r0, [r5, r1] + mov r1, #2 + bl FUN_0200A914 + ldr r1, _021D8CF4 ; =0x00001588 + str r0, [r5, r1] + sub r1, #0x14 + ldr r0, [r5, r1] + mov r1, #0x14 + bl FUN_0200A914 + ldr r1, _021D8CF8 ; =0x0000158C + str r0, [r5, r1] + sub r1, #0x18 + ldr r0, [r5, r1] + mov r1, #0x15 + bl FUN_0200A914 + ldr r1, _021D8CFC ; =0x00001590 + str r0, [r5, r1] + sub r1, #0x1c + ldr r0, [r5, r1] + mov r1, #0x16 + bl FUN_0200A914 + ldr r1, _021D8D00 ; =0x00001594 + str r0, [r5, r1] + sub r1, #0x20 + ldr r0, [r5, r1] + mov r1, #0x17 + bl FUN_0200A914 + ldr r1, _021D8D04 ; =0x00001598 + str r0, [r5, r1] + sub r1, #0x24 + ldr r0, [r5, r1] + mov r1, #0x18 + bl FUN_0200A914 + ldr r1, _021D8D08 ; =0x0000159C + str r0, [r5, r1] + sub r1, #0x28 + ldr r0, [r5, r1] + mov r1, #0x19 + bl FUN_0200A914 + ldr r1, _021D8D0C ; =0x000015A0 + str r0, [r5, r1] + sub r1, #0x2c + ldr r0, [r5, r1] + mov r1, #8 + bl FUN_0200A914 + ldr r1, _021D8D10 ; =0x000015A4 + str r0, [r5, r1] + sub r1, #0x30 + ldr r0, [r5, r1] + mov r1, #9 + bl FUN_0200A914 + ldr r1, _021D8D14 ; =0x000015A8 + mov r4, #0 + str r0, [r5, r1] + add r6, r5, #0 + add r7, r1, #4 +_021D8CAC: + ldr r0, _021D8CE4 ; =0x00001574 + add r1, r4, #3 + ldr r0, [r5, r0] + bl FUN_0200A914 + str r0, [r6, r7] + add r4, r4, #1 + add r6, r6, #4 + cmp r4, #5 + blt _021D8CAC + mov r7, #0x57 + mov r4, #0 + add r6, r5, #0 + lsl r7, r7, #6 +_021D8CC8: + ldr r0, _021D8CE4 ; =0x00001574 + add r1, r4, #0 + ldr r0, [r5, r0] + add r1, #0xa + bl FUN_0200A914 + str r0, [r6, r7] + add r4, r4, #1 + add r6, r6, #4 + cmp r4, #0xa + blt _021D8CC8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D8CE0: .word 0x0000019D +_021D8CE4: .word 0x00001574 +_021D8CE8: .word 0x00001578 +_021D8CEC: .word 0x0000157C +_021D8CF0: .word 0x00001584 +_021D8CF4: .word 0x00001588 +_021D8CF8: .word 0x0000158C +_021D8CFC: .word 0x00001590 +_021D8D00: .word 0x00001594 +_021D8D04: .word 0x00001598 +_021D8D08: .word 0x0000159C +_021D8D0C: .word 0x000015A0 +_021D8D10: .word 0x000015A4 +_021D8D14: .word 0x000015A8 + thumb_func_end MOD73_021D8BDC + + thumb_func_start MOD73_021D8D18 +MOD73_021D8D18: ; 0x021D8D18 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + ldr r0, _021D8DBC ; =0x000015A8 + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r0, _021D8DC0 ; =0x000015A4 + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r0, _021D8DC4 ; =0x00001594 + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r0, _021D8DC8 ; =0x00001590 + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r0, _021D8DCC ; =0x0000158C + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r0, _021D8DD0 ; =0x00001588 + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r0, _021D8DD4 ; =0x00001584 + ldr r0, [r6, r0] + bl FUN_02021A20 + mov r0, #0x56 + lsl r0, r0, #6 + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r0, _021D8DD8 ; =0x00001598 + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r0, _021D8DDC ; =0x0000159C + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r0, _021D8DE0 ; =0x000015A0 + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r7, _021D8DE4 ; =0x000015AC + mov r4, #0 + add r5, r6, #0 +_021D8D7C: + ldr r0, [r5, r7] + bl FUN_02021A20 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #5 + blt _021D8D7C + mov r7, #0x57 + mov r5, #0 + add r4, r6, #0 + lsl r7, r7, #6 +_021D8D92: + ldr r0, [r4, r7] + bl FUN_02021A20 + add r5, r5, #1 + add r4, r4, #4 + cmp r5, #0xa + blt _021D8D92 + ldr r0, _021D8DE8 ; =0x0000157C + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r0, _021D8DEC ; =0x00001578 + ldr r0, [r6, r0] + bl FUN_0200AB18 + ldr r0, _021D8DF0 ; =0x00001574 + ldr r0, [r6, r0] + bl FUN_0200A8B8 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8DBC: .word 0x000015A8 +_021D8DC0: .word 0x000015A4 +_021D8DC4: .word 0x00001594 +_021D8DC8: .word 0x00001590 +_021D8DCC: .word 0x0000158C +_021D8DD0: .word 0x00001588 +_021D8DD4: .word 0x00001584 +_021D8DD8: .word 0x00001598 +_021D8DDC: .word 0x0000159C +_021D8DE0: .word 0x000015A0 +_021D8DE4: .word 0x000015AC +_021D8DE8: .word 0x0000157C +_021D8DEC: .word 0x00001578 +_021D8DF0: .word 0x00001574 + thumb_func_end MOD73_021D8D18 + + thumb_func_start MOD73_021D8DF4 +MOD73_021D8DF4: ; 0x021D8DF4 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + ldr r0, _021D8E7C ; =0x00001428 + add r4, r1, #0 + ldr r1, [r7, r0] + cmp r1, #1 + bne _021D8E0C + bl FUN_02030F20 + ldr r1, _021D8E80 ; =0x00001420 + str r0, [r7, r1] + b _021D8E12 +_021D8E0C: + mov r1, #1 + sub r0, #8 + str r1, [r7, r0] +_021D8E12: + bl FUN_020842D0 + add r5, r0, #0 + bl FUN_020842D8 + add r1, r0, #0 + ldr r0, [r7] + ldr r3, _021D8E7C ; =0x00001428 + str r0, [sp] + ldr r3, [r7, r3] + add r0, r5, #0 + add r2, r7, #0 + bl MOD73_021D9094 + ldr r1, _021D8E84 ; =0x00001424 + str r0, [r7, r1] + ldr r0, _021D8E88 ; =0x0000155C + mov r1, #4 + add r0, r7, r0 + add r2, r1, #0 + bl Call_FillMemWithValue + ldr r0, _021D8E7C ; =0x00001428 + ldr r0, [r7, r0] + cmp r0, #1 + bne _021D8E70 + mov r6, #0 + add r4, r6, #0 + add r5, r7, #0 +_021D8E4C: + add r0, r4, #0 + bl FUN_0202DFA4 + ldr r1, _021D8E8C ; =0x00001560 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021D8E66 + ldr r0, _021D8E88 ; =0x0000155C + add r1, r7, r6 + strb r4, [r1, r0] + add r6, r6, #1 +_021D8E66: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021D8E4C + pop {r3, r4, r5, r6, r7, pc} +_021D8E70: + ldr r0, _021D8E88 ; =0x0000155C + mov r1, #0 + strb r1, [r7, r0] + add r0, r0, #4 + str r4, [r7, r0] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D8E7C: .word 0x00001428 +_021D8E80: .word 0x00001420 +_021D8E84: .word 0x00001424 +_021D8E88: .word 0x0000155C +_021D8E8C: .word 0x00001560 + thumb_func_end MOD73_021D8DF4 + + thumb_func_start MOD73_021D8E90 +MOD73_021D8E90: ; 0x021D8E90 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D8EA4 ; =0x00001424 + ldr r0, [r4, r0] + bl MOD73_021D90F4 + ldr r0, _021D8EA4 ; =0x00001424 + mov r1, #0 + str r1, [r4, r0] + pop {r4, pc} + .align 2, 0 +_021D8EA4: .word 0x00001424 + thumb_func_end MOD73_021D8E90 + + thumb_func_start MOD73_021D8EA8 +MOD73_021D8EA8: ; 0x021D8EA8 + add r0, r3, #0 + ldr r3, _021D8EB0 ; =MOD73_021D768C + mov r1, #3 + bx r3 + .align 2, 0 +_021D8EB0: .word MOD73_021D768C + thumb_func_end MOD73_021D8EA8 + + thumb_func_start MOD73_021D8EB4 +MOD73_021D8EB4: ; 0x021D8EB4 + add r0, r3, #0 + ldr r3, _021D8EBC ; =MOD73_021D768C + mov r1, #8 + bx r3 + .align 2, 0 +_021D8EBC: .word MOD73_021D768C + thumb_func_end MOD73_021D8EB4 + + thumb_func_start MOD73_021D8EC0 +MOD73_021D8EC0: ; 0x021D8EC0 + push {r3, r4, r5, lr} + ldr r0, _021D8EF4 ; =0x00001498 + add r5, r1, #0 + add r4, r3, #0 + add r1, r2, #0 + add r0, r4, r0 + add r2, r5, #0 + bl memcpy + ldr r0, _021D8EF8 ; =0x000014A8 + mov r1, #0xa + add r3, r4, r0 + add r0, #0x1c + add r2, r4, r0 +_021D8EDC: + ldrh r0, [r3] + add r3, r3, #2 + strh r0, [r2] + add r2, r2, #2 + sub r1, r1, #1 + bne _021D8EDC + add r0, r4, #0 + mov r1, #5 + bl MOD73_021D768C + pop {r3, r4, r5, pc} + nop +_021D8EF4: .word 0x00001498 +_021D8EF8: .word 0x000014A8 + thumb_func_end MOD73_021D8EC0 + + thumb_func_start MOD73_021D8EFC +MOD73_021D8EFC: ; 0x021D8EFC + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r6, r0, #0 + ldr r0, _021D8F7C ; =0x00001424 + add r5, r3, #0 + ldr r0, [r5, r0] + str r1, [sp] + str r2, [sp, #4] + bl MOD73_021D910C + cmp r0, #0 + bne _021D8F76 + mov r0, #0x55 + lsl r0, r0, #6 + lsl r4, r6, #2 + add r7, r5, r0 + ldr r1, [sp, #4] + ldr r2, [sp] + add r0, r7, r4 + bl memcpy + ldr r0, _021D8F80 ; =0x00001550 + mov r2, #1 + add r1, r5, r6 + strb r2, [r1, r0] + ldr r1, [r7, r4] + add r2, r5, r4 + sub r0, #0xf0 + str r1, [r2, r0] + mov r0, #0 + ldr r1, _021D8F80 ; =0x00001550 + add r3, r0, #0 +_021D8F3C: + add r2, r5, r3 + ldrb r2, [r2, r1] + cmp r2, #1 + bne _021D8F46 + add r0, r0, #1 +_021D8F46: + add r3, r3, #1 + cmp r3, #4 + blt _021D8F3C + ldr r1, _021D8F84 ; =0x00001420 + ldr r2, [r5, r1] + cmp r0, r2 + blt _021D8F76 + mov r0, #0xba + lsl r0, r0, #2 + add r1, #0x50 + add r0, r5, r0 + add r1, r5, r1 + bl MOD73_021DB994 + bl MOD73_021D9084 + ldr r3, _021D8F88 ; =0x00001460 + add r2, r0, #0 + add r1, r5, r3 + sub r3, #0x3c + ldr r3, [r5, r3] + mov r0, #0x18 + bl MOD73_021D90D0 +_021D8F76: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8F7C: .word 0x00001424 +_021D8F80: .word 0x00001550 +_021D8F84: .word 0x00001420 +_021D8F88: .word 0x00001460 + thumb_func_end MOD73_021D8EFC + + thumb_func_start MOD73_021D8F8C +MOD73_021D8F8C: ; 0x021D8F8C + push {r4, lr} + add r4, r1, #0 + ldr r1, _021D8FA4 ; =0x000014BC + add r3, r3, r1 + mov r1, #0x1c + mul r1, r0 + add r0, r3, r1 + add r1, r2, #0 + add r2, r4, #0 + bl memcpy + pop {r4, pc} + .align 2, 0 +_021D8FA4: .word 0x000014BC + thumb_func_end MOD73_021D8F8C + + thumb_func_start MOD73_021D8FA8 +MOD73_021D8FA8: ; 0x021D8FA8 + push {r3, r4, r5, lr} + ldr r0, _021D8FC4 ; =0x00001484 + add r5, r1, #0 + add r4, r3, #0 + add r1, r2, #0 + add r0, r4, r0 + add r2, r5, #0 + bl memcpy + add r0, r4, #0 + mov r1, #0xa + bl MOD73_021D768C + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8FC4: .word 0x00001484 + thumb_func_end MOD73_021D8FA8 + + thumb_func_start MOD73_021D8FC8 +MOD73_021D8FC8: ; 0x021D8FC8 + push {r4, lr} + ldr r0, _021D8FDC ; =0x0000152C + add r4, r1, #0 + ldr r0, [r3, r0] + add r1, r2, #0 + add r2, r4, #0 + bl memcpy + pop {r4, pc} + nop +_021D8FDC: .word 0x0000152C + thumb_func_end MOD73_021D8FC8 + + thumb_func_start MOD73_021D8FE0 +MOD73_021D8FE0: ; 0x021D8FE0 + push {r3, r4, r5, lr} + ldr r0, _021D8FFC ; =0x00001571 + add r5, r1, #0 + add r4, r3, #0 + add r1, r2, #0 + add r0, r4, r0 + add r2, r5, #0 + bl memcpy + add r0, r4, #0 + mov r1, #0xc + bl MOD73_021D768C + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8FFC: .word 0x00001571 + thumb_func_end MOD73_021D8FE0 + + thumb_func_start MOD73_021D9000 +MOD73_021D9000: ; 0x021D9000 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, _021D906C ; =0x00001424 + add r4, r3, #0 + ldr r0, [r4, r0] + add r6, r1, #0 + add r7, r2, #0 + bl MOD73_021D910C + cmp r0, #0 + bne _021D906A + ldr r0, _021D9070 ; =0x00001554 + add r1, r7, #0 + add r0, r4, r0 + add r0, r0, r5 + add r2, r6, #0 + bl memcpy + ldr r0, _021D9074 ; =0x00001558 + add r1, r4, r5 + mov r2, #1 + strb r2, [r1, r0] + add r6, sp, #0 + mov r3, #0 + strb r2, [r6] + add r2, r3, #0 + sub r7, r0, #4 + add r5, r0, #0 +_021D9038: + add r1, r4, r2 + ldrb r0, [r1, r5] + cmp r0, #1 + bne _021D904A + ldrb r0, [r6] + ldrb r1, [r1, r7] + add r3, r3, #1 + and r0, r1 + strb r0, [r6] +_021D904A: + add r2, r2, #1 + cmp r2, #4 + blt _021D9038 + ldr r0, _021D9078 ; =0x00001420 + ldr r0, [r4, r0] + cmp r3, r0 + blt _021D906A + bl MOD73_021D9080 + ldr r3, _021D906C ; =0x00001424 + add r2, r0, #0 + ldr r3, [r4, r3] + mov r0, #0x1d + add r1, sp, #0 + bl MOD73_021D90D0 +_021D906A: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D906C: .word 0x00001424 +_021D9070: .word 0x00001554 +_021D9074: .word 0x00001558 +_021D9078: .word 0x00001420 + thumb_func_end MOD73_021D9000 + + thumb_func_start MOD73_021D907C +MOD73_021D907C: ; 0x021D907C + mov r0, #0 + bx lr + thumb_func_end MOD73_021D907C + + thumb_func_start MOD73_021D9080 +MOD73_021D9080: ; 0x021D9080 + mov r0, #1 + bx lr + thumb_func_end MOD73_021D9080 + + thumb_func_start MOD73_021D9084 +MOD73_021D9084: ; 0x021D9084 + mov r0, #0x24 + bx lr + thumb_func_end MOD73_021D9084 + + thumb_func_start MOD73_021D9088 +MOD73_021D9088: ; 0x021D9088 + mov r0, #4 + bx lr + thumb_func_end MOD73_021D9088 + + thumb_func_start MOD73_021D908C +MOD73_021D908C: ; 0x021D908C + mov r0, #0x1c + bx lr + thumb_func_end MOD73_021D908C + + thumb_func_start MOD73_021D9090 +MOD73_021D9090: ; 0x021D9090 + mov r0, #0x14 + bx lr + thumb_func_end MOD73_021D9090 + + thumb_func_start MOD73_021D9094 +MOD73_021D9094: ; 0x021D9094 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + add r7, r1, #0 + ldr r0, [sp, #0x18] + mov r1, #8 + str r2, [sp] + add r5, r3, #0 + bl FUN_02016998 + add r4, r0, #0 + mov r0, #0 + str r5, [r4] + str r0, [r4, #4] + cmp r5, #1 + bne _021D90BE + ldr r2, [sp] + add r0, r6, #0 + add r1, r7, #0 + bl FUN_0202D8D0 + b _021D90CC +_021D90BE: + ldr r2, [sp] + ldr r3, [sp, #0x18] + add r0, r6, #0 + add r1, r7, #0 + bl MOD73_021D9120 + str r0, [r4, #4] +_021D90CC: + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD73_021D9094 + + thumb_func_start MOD73_021D90D0 +MOD73_021D90D0: ; 0x021D90D0 + push {r3, r4, r5, r6, r7, lr} + add r6, r3, #0 + ldr r3, [r6] + add r5, r0, #0 + add r4, r1, #0 + add r7, r2, #0 + cmp r3, #1 + bne _021D90E6 + bl FUN_02030ADC + pop {r3, r4, r5, r6, r7, pc} +_021D90E6: + ldr r0, [r6, #4] + add r1, r5, #0 + add r2, r4, #0 + add r3, r7, #0 + bl MOD73_021D91D4 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD73_021D90D0 + + thumb_func_start MOD73_021D90F4 +MOD73_021D90F4: ; 0x021D90F4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + bne _021D9104 + ldr r0, [r4, #4] + bl MOD73_021D91BC +_021D9104: + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD73_021D90F4 + + thumb_func_start MOD73_021D910C +MOD73_021D910C: ; 0x021D910C + push {r3, lr} + ldr r0, [r0] + cmp r0, #1 + bne _021D911A + bl FUN_02031190 + pop {r3, pc} +_021D911A: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD73_021D910C + + thumb_func_start MOD73_021D9120 +MOD73_021D9120: ; 0x021D9120 + push {r3, r4, r5, r6, r7, lr} + add r6, r1, #0 + mov r1, #0x1b + add r5, r0, #0 + add r0, r3, #0 + lsl r1, r1, #4 + add r7, r2, #0 + bl FUN_02016998 + mov r2, #0x1b + mov r1, #0 + lsl r2, r2, #4 + add r4, r0, #0 + bl Call_FillMemWithValue + mov r1, #0x1a + lsl r1, r1, #4 + str r5, [r4, r1] + add r0, r1, #4 + str r6, [r4, r0] + add r1, #8 + str r7, [r4, r1] + ldr r0, _021D9160 ; =MOD73_021D9168 + ldr r2, _021D9164 ; =0x00001388 + add r1, r4, #0 + bl FUN_0200CA98 + mov r1, #0x6b + lsl r1, r1, #2 + str r0, [r4, r1] + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D9160: .word MOD73_021D9168 +_021D9164: .word 0x00001388 + thumb_func_end MOD73_021D9120 + + thumb_func_start MOD73_021D9168 +MOD73_021D9168: ; 0x021D9168 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r7, r1, #0 + mov r0, #0 + str r0, [sp] + add r6, r7, #0 +_021D9174: + ldr r0, [r6] + cmp r0, #1 + bne _021D91AA + mov r4, #0x1a + lsl r4, r4, #4 + ldr r4, [r7, r4] + mov r3, #0x6a + mov ip, r4 + ldr r4, [r6, #4] + mov r5, #0xc + mul r5, r4 + str r5, [sp, #4] + lsl r3, r3, #2 + add r2, r6, #0 + ldr r4, [sp, #4] + mov r5, ip + ldr r1, [r6, #0x30] + ldr r3, [r7, r3] + ldr r4, [r5, r4] + mov r0, #0 + add r2, #8 + blx r4 + add r0, r6, #0 + mov r1, #0 + mov r2, #0x34 + bl Call_FillMemWithValue +_021D91AA: + ldr r0, [sp] + add r6, #0x34 + add r0, r0, #1 + str r0, [sp] + cmp r0, #8 + blt _021D9174 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021D9168 + + thumb_func_start MOD73_021D91BC +MOD73_021D91BC: ; 0x021D91BC + push {r4, lr} + add r4, r0, #0 + mov r0, #0x6b + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200CAB4 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D91BC + + thumb_func_start MOD73_021D91D4 +MOD73_021D91D4: ; 0x021D91D4 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r4, #0 + str r2, [sp] + add r7, r1, #0 + add r5, r3, #0 + add r0, r4, #0 + add r2, r6, #0 +_021D91E4: + ldr r1, [r2] + cmp r1, #0 + bne _021D91F2 + mov r1, #0x34 + mul r1, r0 + add r4, r6, r1 + b _021D91FA +_021D91F2: + add r0, r0, #1 + add r2, #0x34 + cmp r0, #8 + blt _021D91E4 +_021D91FA: + cmp r4, #0 + bne _021D9202 + bl ErrorHandling +_021D9202: + mov r0, #0x1a + lsl r0, r0, #4 + add r1, r7, #0 + ldr r2, [r6, r0] + sub r1, #0x16 + mov r0, #0xc + mul r0, r1 + add r0, r2, r0 + ldr r0, [r0, #4] + blx r0 + cmp r0, r5 + beq _021D921E + bl ErrorHandling +_021D921E: + cmp r5, #0x26 + blt _021D9226 + bl ErrorHandling +_021D9226: + sub r7, #0x16 + str r7, [r4, #4] + cmp r5, #0 + ble _021D923A + add r0, r4, #0 + ldr r1, [sp] + add r0, #8 + add r2, r5, #0 + bl memcpy +_021D923A: + str r5, [r4, #0x30] + mov r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021D91D4 + + thumb_func_start MOD73_021D9244 +MOD73_021D9244: ; 0x021D9244 + push {r4, lr} + add r4, r0, #0 + add r0, r2, #0 + mov r2, #0 + bl FUN_02002E14 + lsr r0, r0, #1 + sub r0, r4, r0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D9244 + + thumb_func_start MOD73_021D9258 +MOD73_021D9258: ; 0x021D9258 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + str r2, [sp] + mov r0, #0x7a + mov r2, #0 + add r3, sp, #4 + bl FUN_02006BB0 + add r4, r0, #0 + ldr r0, [sp, #4] + str r5, [sp, #8] + str r0, [sp, #0xc] + add r0, sp, #8 + bl FUN_02013D98 + add r5, r0, #0 + add r0, r4, #0 + bl FUN_02016A18 + add r0, r5, #0 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD73_021D9258 + + thumb_func_start MOD73_021D9288 +MOD73_021D9288: ; 0x021D9288 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + add r3, r2, #0 + mov r0, #0x7a + add r2, sp, #0 + bl FUN_02006C08 + add r4, r0, #0 + ldr r0, [sp] + str r5, [sp, #4] + str r0, [sp, #8] + mov r0, #1 + str r0, [sp, #0xc] + add r0, sp, #4 + bl FUN_02013E14 + add r5, r0, #0 + add r0, r4, #0 + bl FUN_02016A18 + add r0, r5, #0 + add sp, #0x10 + pop {r3, r4, r5, pc} + thumb_func_end MOD73_021D9288 + + thumb_func_start MOD73_021D92B8 +MOD73_021D92B8: ; 0x021D92B8 + push {r4, lr} + sub sp, #0x20 + str r0, [sp] + str r1, [sp, #4] + str r2, [sp, #8] + add r0, sp, #0 + ldr r1, [sp, #0x28] + strh r3, [r0, #0xc] + strh r1, [r0, #0xe] + mov r2, #0 + strh r2, [r0, #0x10] + mov r1, #0x1f + str r1, [sp, #0x14] + ldr r1, [sp, #0x2c] + str r1, [sp, #0x18] + strh r2, [r0, #0x1c] + add r0, sp, #0 + bl FUN_02013E84 + mov r1, #0 + add r4, r0, #0 + bl FUN_02013EB0 + add r0, r4, #0 + add sp, #0x20 + pop {r4, pc} + thumb_func_end MOD73_021D92B8 + + thumb_func_start MOD73_021D92EC +MOD73_021D92EC: ; 0x021D92EC + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r0, r1, #0 + add r6, r3, #0 + add r7, r2, #0 + add r1, r5, #4 + add r2, r6, #0 + bl FUN_02008C9C + str r0, [r5] + mov r4, #0 +_021D9302: + add r0, r7, #0 + add r1, r4, #0 + add r2, r6, #0 + bl FUN_02008DEC + mov r1, #0x4b + lsl r1, r1, #2 + str r0, [r5, r1] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021D9302 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD73_021D92EC + + thumb_func_start MOD73_021D931C +MOD73_021D931C: ; 0x021D931C + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, [r5] + bl FUN_0201FD58 + mov r4, #0 + mov r6, #0x4b + str r4, [r5] + lsl r6, r6, #2 +_021D932E: + ldr r0, [r5, r6] + bl FUN_02008E2C + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021D932E + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD73_021D931C + + thumb_func_start MOD73_021D9340 +MOD73_021D9340: ; 0x021D9340 + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + ldr r6, [sp, #0x58] + add r5, r0, #0 + ldr r7, [sp, #0x5c] + str r6, [sp] + mov r0, #1 + str r0, [sp, #4] + str r7, [sp, #8] + str r0, [sp, #0xc] + mov r0, #0x4b + lsl r0, r0, #2 + add r4, r1, #0 + str r3, [sp, #0x30] + str r2, [sp, #0x2c] + add r1, r2, #0 + ldr r0, [r5, r0] + ldr r2, [sp, #0x4c] + mov r3, #0 + bl FUN_02008F90 + str r0, [r4] + str r6, [sp] + mov r1, #1 + ldr r0, [sp, #0x48] + str r1, [sp, #4] + str r0, [sp, #8] + str r7, [sp, #0xc] + mov r0, #0x13 + str r1, [sp, #0x10] + lsl r0, r0, #4 + ldr r0, [r5, r0] + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x30] + mov r3, #0 + bl FUN_0200904C + str r0, [r4, #4] + mov r3, #0 + str r3, [r4, #0x10] + str r6, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x4d + str r7, [sp, #8] + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x50] + bl FUN_020090AC + str r0, [r4, #8] + str r6, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x4e + str r7, [sp, #8] + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x54] + mov r3, #0 + bl FUN_020090AC + str r0, [r4, #0xc] + ldr r0, [r4] + bl FUN_02009B78 + cmp r0, #0 + bne _021D93D0 + bl ErrorHandling +_021D93D0: + ldr r0, [r4] + bl FUN_02009474 + ldr r0, [r4, #4] + bl FUN_02009D68 + cmp r0, #0 + bne _021D93E4 + bl ErrorHandling +_021D93E4: + ldr r0, [r4, #4] + bl FUN_02009474 + mov r0, #0 + mov r2, #0x4b + str r6, [sp] + mvn r0, r0 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + lsl r2, r2, #2 + ldr r1, [r5, r2] + add r4, #0x14 + str r1, [sp, #0x14] + add r1, r2, #4 + ldr r1, [r5, r1] + add r3, r6, #0 + str r1, [sp, #0x18] + add r1, r2, #0 + add r1, #8 + ldr r1, [r5, r1] + add r2, #0xc + str r1, [sp, #0x1c] + ldr r1, [r5, r2] + add r2, r6, #0 + str r1, [sp, #0x20] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + add r0, r4, #0 + add r1, r6, #0 + bl FUN_02008AA4 + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD73_021D9340 + + thumb_func_start MOD73_021D942C +MOD73_021D942C: ; 0x021D942C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x38 + ldr r6, [sp, #0x5c] + add r5, r0, #0 + ldr r7, [sp, #0x60] + str r6, [sp] + mov r0, #1 + str r0, [sp, #4] + str r7, [sp, #8] + str r0, [sp, #0xc] + mov r0, #0x4b + lsl r0, r0, #2 + add r4, r1, #0 + str r3, [sp, #0x30] + str r2, [sp, #0x2c] + add r1, r2, #0 + ldr r0, [r5, r0] + ldr r2, [sp, #0x50] + mov r3, #0 + bl FUN_02008F90 + str r0, [r4] + ldr r0, [sp, #0x30] + str r0, [r4, #4] + mov r0, #1 + str r0, [r4, #0x10] + ldr r0, [sp, #0x30] + bl FUN_02009530 + str r0, [sp, #0x34] + str r6, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x4d + str r7, [sp, #8] + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x54] + mov r3, #0 + bl FUN_020090AC + str r0, [r4, #8] + str r6, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x4e + str r7, [sp, #8] + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x58] + mov r3, #0 + bl FUN_020090AC + str r0, [r4, #0xc] + ldr r0, [r4] + bl FUN_02009B78 + cmp r0, #0 + bne _021D94AA + bl ErrorHandling +_021D94AA: + ldr r0, [r4] + bl FUN_02009474 + mov r0, #0 + mov r2, #0x4b + str r6, [sp] + mvn r0, r0 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + lsl r2, r2, #2 + ldr r1, [r5, r2] + add r4, #0x14 + str r1, [sp, #0x14] + add r1, r2, #4 + ldr r1, [r5, r1] + add r3, r6, #0 + str r1, [sp, #0x18] + add r1, r2, #0 + add r1, #8 + ldr r1, [r5, r1] + add r2, #0xc + str r1, [sp, #0x1c] + ldr r1, [r5, r2] + ldr r2, [sp, #0x34] + str r1, [sp, #0x20] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + add r0, r4, #0 + add r1, r6, #0 + bl FUN_02008AA4 + add sp, #0x38 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021D942C + + thumb_func_start MOD73_021D94F4 +MOD73_021D94F4: ; 0x021D94F4 + push {r3, r4, r5, r6, r7, lr} + add r7, r1, #0 + add r5, r0, #0 + ldr r0, [r7] + bl FUN_02009C0C + ldr r0, [r7, #0x10] + cmp r0, #0 + bne _021D950C + ldr r0, [r7, #4] + bl FUN_02009E04 +_021D950C: + mov r6, #0 + add r4, r7, #0 +_021D9510: + cmp r6, #1 + beq _021D9522 + mov r0, #0x4b + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r1, [r4] + bl FUN_02009490 + b _021D9534 +_021D9522: + ldr r0, [r7, #0x10] + cmp r0, #0 + bne _021D9534 + mov r0, #0x4b + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r1, [r4] + bl FUN_02009490 +_021D9534: + add r6, r6, #1 + add r4, r4, #4 + add r5, r5, #4 + cmp r6, #4 + blt _021D9510 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD73_021D94F4 + + thumb_func_start MOD73_021D9540 +MOD73_021D9540: ; 0x021D9540 + push {r4, lr} + sub sp, #0x20 + ldr r0, [r0] + add r1, #0x14 + str r0, [sp] + ldr r0, [sp, #0x28] + str r1, [sp, #4] + str r0, [sp, #0x10] + ldr r0, [sp, #0x2c] + str r2, [sp, #8] + str r0, [sp, #0x14] + mov r0, #1 + str r0, [sp, #0x18] + ldr r0, [sp, #0x30] + str r3, [sp, #0xc] + str r0, [sp, #0x1c] + add r0, sp, #0 + bl FUN_0201FF84 + add r4, r0, #0 + bne _021D956E + bl ErrorHandling +_021D956E: + add r0, r4, #0 + add sp, #0x20 + pop {r4, pc} + thumb_func_end MOD73_021D9540 + + thumb_func_start MOD73_021D9574 +MOD73_021D9574: ; 0x021D9574 + str r1, [r0] + str r1, [r0, #4] + sub r1, r2, r1 + str r1, [r0, #8] + str r3, [r0, #0x10] + mov r1, #0 + str r1, [r0, #0xc] + bx lr + thumb_func_end MOD73_021D9574 + + thumb_func_start MOD73_021D9584 +MOD73_021D9584: ; 0x021D9584 + push {r4, lr} + add r4, r0, #0 + ldr r2, [r4, #0xc] + ldr r0, [r4, #8] + lsl r2, r2, #0xc + asr r1, r0, #0x1f + 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 + ldr r1, [r4, #0x10] + lsl r1, r1, #0xc + bl FX_Div + ldr r1, [r4, #4] + add r0, r0, r1 + str r0, [r4] + ldr r0, [r4, #0xc] + ldr r1, [r4, #0x10] + add r0, r0, #1 + cmp r0, r1 + bgt _021D95C4 + str r0, [r4, #0xc] + mov r0, #0 + pop {r4, pc} +_021D95C4: + str r1, [r4, #0xc] + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D9584 + + thumb_func_start MOD73_021D95CC +MOD73_021D95CC: ; 0x021D95CC + push {r3, r4, r5, r6, r7, lr} + ldr r4, [sp, #0x18] + add r5, r0, #0 + add r7, r2, #0 + add r0, r3, #0 + add r6, r1, #0 + lsl r2, r4, #0xc + str r3, [sp] + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + add r2, r0, #0 + sub r0, r7, r6 + mov r7, #2 + mov r3, #0 + lsl r7, r7, #0xa + add r2, r2, r7 + adc r1, r3 + lsl r1, r1, #0x14 + lsr r2, r2, #0xc + orr r2, r1 + sub r2, r0, r2 + asr r1, r2, #0x1f + lsr r0, r2, #0x13 + lsl r1, r1, #0xd + orr r1, r0 + lsl r0, r2, #0xd + add r0, r0, r7 + adc r1, r3 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + add r1, r4, #0 + mul r1, r4 + lsl r1, r1, #0xc + bl FX_Div + str r6, [r5] + ldr r1, [sp] + str r6, [r5, #4] + str r1, [r5, #8] + str r0, [r5, #0xc] + mov r0, #0 + str r0, [r5, #0x10] + str r4, [r5, #0x14] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021D95CC + + thumb_func_start MOD73_021D962C +MOD73_021D962C: ; 0x021D962C + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r6, [r5, #0x10] + ldr r0, [r5, #8] + lsl r2, r6, #0xc + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + mov r2, #2 + mov r3, #0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsr r4, r2, #0xc + lsl r0, r1, #0x14 + add r2, r6, #0 + orr r4, r0 + ldr r0, [r5, #0xc] + mul r2, r6 + lsl r2, r2, #0xc + asr r1, r0, #0x1f + 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, #2 + bl FX_Div + ldr r1, [r5, #4] + add r0, r4, r0 + add r0, r1, r0 + str r0, [r5] + ldr r0, [r5, #0x10] + ldr r1, [r5, #0x14] + add r0, r0, #1 + cmp r0, r1 + bgt _021D968C + str r0, [r5, #0x10] + mov r0, #0 + pop {r4, r5, r6, pc} +_021D968C: + str r1, [r5, #0x10] + mov r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD73_021D962C + + thumb_func_start MOD73_021D9694 +MOD73_021D9694: ; 0x021D9694 + push {r4} + sub sp, #0xc + str r2, [sp, #4] + str r3, [sp, #8] + add r2, sp, #0 + add r4, r0, #0 + str r1, [sp] + ldmia r2!, {r0, r1} + stmia r4!, {r0, r1} + ldr r0, [r2] + str r0, [r4] + add sp, #0xc + pop {r4} + bx lr + thumb_func_end MOD73_021D9694 + + thumb_func_start MOD73_021D96B0 +MOD73_021D96B0: ; 0x021D96B0 + push {r3, r4, r5, lr} + mov r2, #0x1f + add r4, r1, #0 + mov r1, #0 + lsl r2, r2, #4 + add r5, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x42 + lsl r0, r0, #2 + str r4, [r5, r0] + pop {r3, r4, r5, pc} + thumb_func_end MOD73_021D96B0 + + thumb_func_start MOD73_021D96C8 +MOD73_021D96C8: ; 0x021D96C8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021D96D6 + bl ErrorHandling +_021D96D6: + mov r2, #0x1f + add r0, r4, #0 + mov r1, #0 + lsl r2, r2, #4 + bl Call_FillMemWithValue + pop {r4, pc} + thumb_func_end MOD73_021D96C8 + + thumb_func_start MOD73_021D96E4 +MOD73_021D96E4: ; 0x021D96E4 + push {r4, r5, r6, r7, lr} + sub sp, #0x2c + str r0, [sp, #0x18] + ldr r4, [sp, #0x18] + mov r0, #0 + ldr r6, [sp, #0x40] + ldr r5, [sp, #0x18] + str r1, [sp, #0x1c] + add r7, r2, #0 + str r3, [sp, #0x20] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + add r4, #0x28 +_021D96FE: + ldr r0, [sp, #0x1c] + ldr r3, [r0] + cmp r3, #0 + beq _021D977A + mov r0, #1 + str r0, [sp] + add r0, r3, #0 + sub r0, #0x8f + str r0, [sp, #4] + mov r0, #5 + str r0, [sp, #8] + mov r0, #4 + str r0, [sp, #0xc] + mov r0, #0xfa + ldr r1, [sp, #0x28] + lsl r0, r0, #2 + add r0, r1, r0 + str r0, [sp, #0x10] + add r0, r7, #0 + add r1, r4, #0 + mov r2, #0x35 + sub r3, #0x4f + str r6, [sp, #0x14] + bl MOD73_021D9340 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r2, #0 + add r0, r7, #0 + add r1, r4, #0 + add r3, r2, #0 + str r6, [sp, #8] + bl MOD73_021D9540 + mov r1, #0 + str r0, [r5, #8] + bl FUN_020200A0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r2, #0 + ldr r1, [sp, #0x20] + str r6, [sp, #8] + add r0, r7, #0 + add r3, r2, #0 + bl MOD73_021D9540 + str r0, [r5, #0x18] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [r5, #0x18] + mov r1, #1 + bl FUN_02020130 + ldr r0, [sp, #0x24] + add r4, #0x38 + add r0, r0, #1 + add r5, r5, #4 + str r0, [sp, #0x24] +_021D977A: + mov r0, #0x42 + ldr r1, [sp, #0x18] + lsl r0, r0, #2 + ldr r1, [r1, r0] + ldr r0, [sp, #0x24] + cmp r1, r0 + beq _021D9798 + ldr r0, [sp, #0x1c] + add r0, r0, #4 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x28] + add r0, r0, #1 + str r0, [sp, #0x28] + cmp r0, #4 + blt _021D96FE +_021D9798: + ldr r0, [sp, #0x18] + mov r1, #1 + str r1, [r0] + add sp, #0x2c + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021D96E4 + + thumb_func_start MOD73_021D97A4 +MOD73_021D97A4: ; 0x021D97A4 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + ldr r0, [r7] + str r1, [sp] + cmp r0, #1 + beq _021D97B4 + bl ErrorHandling +_021D97B4: + mov r0, #0x42 + lsl r0, r0, #2 + ldr r0, [r7, r0] + mov r4, #0 + cmp r0, #0 + ble _021D97EA + add r6, r7, #0 + add r5, r7, #0 + add r6, #0x28 +_021D97C6: + ldr r0, [r5, #8] + bl FUN_0201FFC8 + ldr r0, [r5, #0x18] + bl FUN_0201FFC8 + ldr r0, [sp] + add r1, r6, #0 + bl MOD73_021D94F4 + mov r0, #0x42 + lsl r0, r0, #2 + ldr r0, [r7, r0] + add r4, r4, #1 + add r5, r5, #4 + add r6, #0x38 + cmp r4, r0 + blt _021D97C6 +_021D97EA: + mov r0, #0 + str r0, [r7] + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD73_021D97A4 + + thumb_func_start MOD73_021D97F0 +MOD73_021D97F0: ; 0x021D97F0 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + str r0, [sp, #4] + ldr r0, [r0, #4] + cmp r0, #0 + beq _021D9800 + bl ErrorHandling +_021D9800: + mov r0, #0 + str r0, [sp, #0xc] + mov r2, #0x42 + ldr r0, [sp, #4] + lsl r2, r2, #2 + ldr r0, [r0, r2] + cmp r0, #0 + ble _021D98A0 + ldr r0, [sp, #4] + add r1, r2, #4 + add r0, r0, r1 + str r0, [sp, #8] + ldr r0, [sp, #4] + add r2, #0x64 + ldr r4, _021D98B4 ; =0x021DBE2C + add r7, r0, r2 + add r6, r0, #0 + add r5, r0, #0 +_021D9824: + ldrb r0, [r4, #0x10] + mov r1, #8 + mov r2, #0xa + str r0, [sp] + ldrsh r1, [r4, r1] + ldrsh r2, [r4, r2] + ldr r0, [sp, #8] + ldr r3, [r4] + lsl r1, r1, #0xc + lsl r2, r2, #0xc + bl MOD73_021D95CC + ldrb r0, [r4, #0x10] + mov r1, #0xc + mov r2, #0xe + str r0, [sp] + ldrsh r1, [r4, r1] + ldrsh r2, [r4, r2] + ldr r3, [r4, #4] + add r0, r7, #0 + lsl r1, r1, #0xc + lsl r2, r2, #0xc + bl MOD73_021D95CC + mov r1, #0x43 + mov r2, #0x5b + lsl r1, r1, #2 + lsl r2, r2, #2 + ldr r1, [r6, r1] + ldr r2, [r6, r2] + add r0, sp, #0x10 + mov r3, #0 + bl MOD73_021D9694 + ldr r0, [r5, #8] + add r1, sp, #0x10 + bl FUN_02020044 + mov r0, #0x73 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] + ldrb r1, [r4, #0x11] + add r0, #0x10 + add r4, #0x14 + str r1, [r5, r0] + ldr r0, [sp, #8] + ldr r1, [sp, #4] + add r0, #0x18 + str r0, [sp, #8] + ldr r0, [sp, #0xc] + add r7, #0x18 + add r0, r0, #1 + str r0, [sp, #0xc] + mov r0, #0x42 + lsl r0, r0, #2 + ldr r1, [r1, r0] + ldr r0, [sp, #0xc] + add r6, #0x18 + add r5, r5, #4 + cmp r0, r1 + blt _021D9824 +_021D98A0: + mov r1, #0x7b + ldr r0, [sp, #4] + mov r2, #0 + lsl r1, r1, #2 + str r2, [r0, r1] + mov r1, #1 + str r1, [r0, #4] + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_021D98B4: .word 0x021DBE2C + thumb_func_end MOD73_021D97F0 + + thumb_func_start MOD73_021D98B8 +MOD73_021D98B8: ; 0x021D98B8 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r6, r0, #0 + mov r0, #0 + str r0, [sp, #4] + ldr r0, [r6, #4] + cmp r0, #0 + bne _021D98CE + add sp, #0x1c + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021D98CE: + mov r0, #0x7b + lsl r0, r0, #2 + add r1, r0, #0 + sub r1, #0xe4 + ldr r2, [r6, r0] + ldr r1, [r6, r1] + cmp r2, r1 + bge _021D991E + add r1, r0, #0 + sub r1, #0x10 + add r1, r6, r1 + lsl r3, r2, #2 + ldr r2, [r1, r3] + sub r2, r2, #1 + str r2, [r1, r3] + ldr r1, [r6, r0] + lsl r1, r1, #2 + add r2, r6, r1 + add r1, r0, #0 + sub r1, #0x10 + ldr r1, [r2, r1] + cmp r1, #0 + bgt _021D991E + add r3, r0, #0 + mov r1, #1 + sub r3, #0x20 + str r1, [r2, r3] + ldr r0, [r6, r0] + lsl r0, r0, #2 + add r0, r6, r0 + ldr r0, [r0, #8] + bl FUN_020200A0 + mov r1, #0x7b + lsl r1, r1, #2 + ldr r2, [r6, r1] + add r0, r2, #2 + str r0, [sp, #4] + add r0, r2, #1 + str r0, [r6, r1] +_021D991E: + mov r1, #0x42 + mov r0, #0 + lsl r1, r1, #2 + str r0, [sp, #8] + ldr r0, [r6, r1] + cmp r0, #0 + ble _021D9A02 + add r0, r1, #4 + add r0, r6, r0 + add r1, #0x64 + add r4, r6, #0 + str r0, [sp] + add r7, r6, r1 + add r5, r6, #0 +_021D993A: + mov r0, #0x73 + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #3 + bhi _021D99E0 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D9950: ; jump table + .short _021D99E4 - _021D9950 - 2 ; case 0 + .short _021D9958 - _021D9950 - 2 ; case 1 + .short _021D99BE - _021D9950 - 2 ; case 2 + .short _021D99E4 - _021D9950 - 2 ; case 3 +_021D9958: + ldr r0, [sp] + bl MOD73_021D962C + str r0, [sp, #0xc] + add r0, r7, #0 + bl MOD73_021D962C + mov r1, #0x43 + mov r2, #0x5b + lsl r1, r1, #2 + lsl r2, r2, #2 + ldr r1, [r5, r1] + ldr r2, [r5, r2] + add r0, sp, #0x10 + mov r3, #0 + bl MOD73_021D9694 + ldr r0, [r4, #8] + add r1, sp, #0x10 + bl FUN_02020044 + ldr r0, [sp, #0xc] + cmp r0, #1 + bne _021D99E4 + ldr r0, [r4, #0x18] + add r1, sp, #0x10 + bl FUN_02020044 + ldr r0, [r4, #0x18] + mov r1, #1 + bl FUN_020200A0 + ldr r0, [r4, #0x18] + mov r1, #1 + bl FUN_020200BC + ldr r0, [r4, #8] + mov r1, #0 + bl FUN_020200A0 + ldr r0, _021D9A24 ; =0x000006BC + bl FUN_020054C8 + mov r0, #0x73 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, r0, #1 + mov r0, #0x73 + lsl r0, r0, #2 + str r1, [r4, r0] + b _021D99E4 +_021D99BE: + ldr r0, [r4, #0x18] + bl FUN_02020388 + cmp r0, #0 + bne _021D99E4 + ldr r0, [r4, #0x18] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0x73 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, r0, #1 + mov r0, #0x73 + lsl r0, r0, #2 + str r1, [r4, r0] + b _021D99E4 +_021D99E0: + bl ErrorHandling +_021D99E4: + ldr r0, [sp] + add r4, r4, #4 + add r0, #0x18 + str r0, [sp] + ldr r0, [sp, #8] + add r7, #0x18 + add r0, r0, #1 + str r0, [sp, #8] + mov r0, #0x42 + lsl r0, r0, #2 + ldr r0, [r6, r0] + ldr r1, [sp, #8] + add r5, #0x18 + cmp r1, r0 + blt _021D993A +_021D9A02: + sub r0, r0, #1 + lsl r0, r0, #2 + add r1, r6, r0 + mov r0, #0x73 + lsl r0, r0, #2 + ldr r0, [r1, r0] + cmp r0, #3 + bne _021D9A1C + mov r0, #0 + str r0, [r6, #4] + add sp, #0x1c + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021D9A1C: + ldr r0, [sp, #4] + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_021D9A24: .word 0x000006BC + thumb_func_end MOD73_021D98B8 + + thumb_func_start MOD73_021D9A28 +MOD73_021D9A28: ; 0x021D9A28 + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + add r6, r2, #0 + add r5, r0, #0 + mov r1, #0 + mov r2, #0x34 + add r7, r3, #0 + bl Call_FillMemWithValue + str r6, [r5, #0x18] + ldr r0, [sp, #0x1c] + str r4, [r5, #0x14] + str r0, [r5] + ldr r0, [sp, #0x18] + str r7, [r5, #0x1c] + str r0, [r5, #0x10] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021D9A28 + + thumb_func_start MOD73_021D9A4C +MOD73_021D9A4C: ; 0x021D9A4C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x30] + cmp r0, #0 + beq _021D9A5A + bl ErrorHandling +_021D9A5A: + add r0, r4, #0 + mov r1, #0 + mov r2, #0x34 + bl Call_FillMemWithValue + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D9A4C + + thumb_func_start MOD73_021D9A68 +MOD73_021D9A68: ; 0x021D9A68 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, [r5, #0x30] + add r4, r1, #0 + add r6, r2, #0 + cmp r0, #0 + beq _021D9A7A + bl ErrorHandling +_021D9A7A: + add r0, r5, #0 + add r1, r6, #0 + str r4, [r5, #4] + bl MOD73_021D9BE0 + add r0, r5, #0 + add r1, r6, #0 + bl MOD73_021D9CA0 + mov r0, #1 + str r0, [r5, #0x30] + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD73_021D9A68 + + thumb_func_start MOD73_021D9A94 +MOD73_021D9A94: ; 0x021D9A94 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x30] + cmp r0, #1 + beq _021D9AA2 + bl ErrorHandling +_021D9AA2: + add r0, r4, #0 + bl MOD73_021D9C7C + add r0, r4, #0 + bl MOD73_021D9D48 + mov r0, #0 + str r0, [r4, #0x30] + pop {r4, pc} + thumb_func_end MOD73_021D9A94 + + thumb_func_start MOD73_021D9AB4 +MOD73_021D9AB4: ; 0x021D9AB4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + bl FUN_02019570 + ldr r0, [r4, #4] + mov r1, #4 + bl FUN_02018744 + pop {r4, pc} + thumb_func_end MOD73_021D9AB4 + + thumb_func_start MOD73_021D9AC8 +MOD73_021D9AC8: ; 0x021D9AC8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + mov r1, #0xf + bl FUN_02019620 + ldr r1, [r4, #0x18] + mov r2, #0 + ldr r0, [r4, #8] + ldr r1, [r1, #0xc] + add r3, r2, #0 + bl MOD73_021D9D5C + mov r1, #0 + ldr r0, [r4, #8] + mov r2, #1 + add r3, r1, #0 + bl FUN_0200D0BC + pop {r4, pc} + thumb_func_end MOD73_021D9AC8 + + thumb_func_start MOD73_021D9AF0 +MOD73_021D9AF0: ; 0x021D9AF0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r5, r0, #0 + ldr r0, [r5, #0x14] + cmp r0, #1 + beq _021D9BDC + mov r4, #0 + cmp r0, #0 + ble _021D9BCE +_021D9B02: + lsr r2, r4, #0x1f + lsl r1, r4, #0x1f + sub r1, r1, r2 + mov r0, #0x1f + ror r1, r0 + add r1, r2, r1 + add r2, r4, r2 + asr r2, r2, #1 + mov r0, #0xc + add r6, r1, #0 + mul r6, r0 + lsl r0, r2, #2 + add r2, r2, r0 + str r2, [sp, #0x1c] + mov r2, #0xa + str r2, [sp] + mov r2, #4 + str r2, [sp, #4] + ldr r2, [r5, #0x2c] + lsl r0, r0, #0x18 + add r2, #0xc + str r2, [sp, #8] + mov r2, #0xa + mul r2, r1 + lsl r1, r2, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0xc] + lsr r0, r0, #0x18 + ldr r3, [sp, #0x1c] + str r0, [sp, #0x10] + mov r0, #0x14 + str r0, [sp, #0x14] + mov r0, #8 + add r2, r6, #5 + add r3, #0xd + str r0, [sp, #0x18] + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + ldr r0, [r5, #4] + mov r1, #5 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl FUN_02018170 + mov r0, #0xa + ldr r3, [sp, #0x1c] + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #2 + add r2, r6, #5 + add r3, #0xd + str r0, [sp, #8] + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + ldr r0, [r5, #4] + mov r1, #5 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl FUN_020186B4 + ldr r7, [r5, #0x1c] + mov r2, #0x13 + ldr r0, [r5, #0x18] + add r3, r7, r4 + lsl r2, r2, #4 + ldrb r2, [r3, r2] + ldr r0, [r0, #4] + mov r1, #0 + lsl r2, r2, #2 + add r3, r7, r2 + mov r2, #0x4d + lsl r2, r2, #2 + ldr r2, [r3, r2] + bl FUN_0200ABC0 + ldr r2, [r5, #0x18] + ldr r0, [r2, #4] + ldr r1, [r2, #8] + ldr r2, [r2, #0x14] + bl FUN_0200B7B8 + ldr r1, [r5, #0x18] + lsl r0, r6, #3 + ldr r1, [r1, #8] + add r0, #0x20 + mov r2, #1 + bl MOD73_021D9244 + ldr r1, [r5, #0x18] + ldr r3, [sp, #0x1c] + add r2, r0, #0 + lsl r3, r3, #3 + ldr r0, [r5, #0xc] + ldr r1, [r1, #8] + add r3, #8 + bl MOD73_021D9D5C + ldr r0, [r5, #0x14] + add r4, r4, #1 + cmp r4, r0 + blt _021D9B02 +_021D9BCE: + ldr r0, [r5, #0xc] + bl FUN_02019220 + ldr r0, [r5, #4] + mov r1, #5 + bl FUN_0201AC68 +_021D9BDC: + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD73_021D9AF0 + + thumb_func_start MOD73_021D9BE0 +MOD73_021D9BE0: ; 0x021D9BE0 + push {r4, r5, lr} + sub sp, #0x14 + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018FF4 + str r0, [r5, #8] + add r0, r4, #0 + mov r1, #1 + bl FUN_02018FF4 + str r0, [r5, #0xc] + mov r0, #0x13 + str r0, [sp] + mov r0, #0x17 + str r0, [sp, #4] + mov r2, #4 + str r2, [sp, #8] + mov r0, #1 + str r0, [sp, #0xc] + mov r0, #0x1f + str r0, [sp, #0x10] + ldr r0, [r5, #4] + ldr r1, [r5, #8] + add r3, r2, #0 + bl FUN_02019064 + mov r0, #0xd + str r0, [sp] + mov r0, #0x14 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #1 + str r0, [sp, #0xc] + mov r0, #0x1f + str r0, [sp, #0x10] + ldr r0, [r5, #4] + ldr r1, [r5, #0xc] + mov r2, #4 + mov r3, #6 + bl FUN_02019064 + ldr r0, [r5, #8] + mov r1, #0xf + bl FUN_02019620 + ldr r0, [r5, #0xc] + mov r1, #0 + bl FUN_02019620 + ldr r0, [r5, #0x10] + mov r1, #4 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + str r4, [sp, #4] + ldr r0, [r5, #4] + mov r2, #1 + mov r3, #0 + bl FUN_0200CD68 + mov r0, #4 + mov r1, #0x20 + add r2, r4, #0 + bl FUN_02002EEC + mov r1, #1 + ldr r0, [r5, #8] + add r2, r1, #0 + mov r3, #0 + bl FUN_0200D0BC + add sp, #0x14 + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD73_021D9BE0 + + thumb_func_start MOD73_021D9C7C +MOD73_021D9C7C: ; 0x021D9C7C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + bl FUN_02019178 + ldr r0, [r4, #8] + mov r1, #1 + bl FUN_020191A4 + ldr r0, [r4, #0xc] + bl FUN_02019178 + ldr r0, [r4, #0xc] + mov r1, #1 + bl FUN_020191A4 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D9C7C + + thumb_func_start MOD73_021D9CA0 +MOD73_021D9CA0: ; 0x021D9CA0 + push {r3, r4, r5, lr} + sub sp, #0x10 + mov r3, #0x40 + add r5, r0, #0 + add r4, r1, #0 + str r3, [sp] + mov r0, #0x7a + mov r1, #1 + mov r2, #4 + str r4, [sp, #4] + bl FUN_02006930 + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + str r1, [sp, #8] + str r4, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x7a + mov r3, #5 + bl FUN_0200687C + ldr r0, [r5, #0x14] + cmp r0, #1 + bne _021D9CD6 + mov r1, #2 + b _021D9CD8 +_021D9CD6: + mov r1, #3 +_021D9CD8: + add r3, r5, #0 + str r4, [sp] + mov r0, #0x7a + mov r2, #0 + add r3, #0x24 + bl FUN_02006BDC + str r0, [r5, #0x20] + ldr r2, [r5, #0x24] + mov r3, #0 + str r3, [sp] + ldrh r0, [r2] + mov r1, #5 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #4] + ldrh r0, [r2, #2] + add r2, #0xc + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #8] + ldr r0, [r5, #4] + bl FUN_02018148 + ldr r1, [r5, #0x24] + mov r2, #0 + ldrh r0, [r1] + add r3, r2, #0 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp] + ldrh r0, [r1, #2] + mov r1, #5 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #4] + mov r0, #3 + str r0, [sp, #8] + ldr r0, [r5, #4] + bl FUN_020186B4 + add r3, r5, #0 + str r4, [sp] + mov r0, #0x7a + mov r1, #4 + mov r2, #0 + add r3, #0x2c + bl FUN_02006BDC + str r0, [r5, #0x28] + ldr r0, [r5, #4] + mov r1, #5 + bl FUN_0201AC68 + add sp, #0x10 + pop {r3, r4, r5, pc} + thumb_func_end MOD73_021D9CA0 + + thumb_func_start MOD73_021D9D48 +MOD73_021D9D48: ; 0x021D9D48 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x20] + bl FUN_02016A18 + ldr r0, [r4, #0x28] + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D9D48 + + thumb_func_start MOD73_021D9D5C +MOD73_021D9D5C: ; 0x021D9D5C + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r1, #0 + add r4, r2, #0 + str r3, [sp] + mov r2, #0 + ldr r1, _021D9D80 ; =0x0001020F + str r2, [sp, #4] + str r1, [sp, #8] + str r2, [sp, #0xc] + mov r1, #1 + add r2, r5, #0 + add r3, r4, #0 + bl FUN_0201BDE0 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021D9D80: .word 0x0001020F + thumb_func_end MOD73_021D9D5C + + thumb_func_start MOD73_021D9D84 +MOD73_021D9D84: ; 0x021D9D84 + mov r1, #0 + strb r1, [r0] + strb r1, [r0, #1] + strb r1, [r0, #2] + strb r1, [r0, #3] + strb r1, [r0, #4] + strb r1, [r0, #5] + strb r1, [r0, #6] + strb r1, [r0, #7] + strb r1, [r0, #8] + strb r1, [r0, #9] + strb r1, [r0, #0xa] + strb r1, [r0, #0xb] + bx lr + thumb_func_end MOD73_021D9D84 + + thumb_func_start MOD73_021D9DA0 +MOD73_021D9DA0: ; 0x021D9DA0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021D9DAE + bl ErrorHandling +_021D9DAE: + mov r0, #0 + strb r0, [r4] + strb r0, [r4, #1] + strb r0, [r4, #2] + strb r0, [r4, #3] + strb r0, [r4, #4] + strb r0, [r4, #5] + strb r0, [r4, #6] + strb r0, [r4, #7] + strb r0, [r4, #8] + strb r0, [r4, #9] + strb r0, [r4, #0xa] + strb r0, [r4, #0xb] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D9DA0 + + thumb_func_start MOD73_021D9DCC +MOD73_021D9DCC: ; 0x021D9DCC + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r3, [sp, #8] + add r0, r1, #0 + ldr r3, [sp, #0x18] + mov r1, #0x38 + mul r1, r3 + add r1, r2, r1 + mov r2, #2 + mov r3, #6 + lsl r2, r2, #0x12 + lsl r3, r3, #0x10 + bl MOD73_021D9540 + str r0, [r4, #8] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [r4, #8] + ldr r1, [sp, #0x1c] + bl FUN_02020130 + mov r0, #1 + str r0, [r4] + add sp, #0xc + pop {r3, r4, pc} + thumb_func_end MOD73_021D9DCC + + thumb_func_start MOD73_021D9E08 +MOD73_021D9E08: ; 0x021D9E08 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #1 + beq _021D9E16 + bl ErrorHandling +_021D9E16: + ldr r0, [r4, #8] + bl FUN_0201FFC8 + mov r0, #0 + str r0, [r4] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D9E08 + + thumb_func_start MOD73_021D9E24 +MOD73_021D9E24: ; 0x021D9E24 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + mov r1, #1 + bl FUN_020200A0 + ldr r0, [r4, #8] + mov r1, #1 + bl FUN_020200BC + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D9E24 + + thumb_func_start MOD73_021D9E3C +MOD73_021D9E3C: ; 0x021D9E3C + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, [r4, #8] + mov r1, #1 + bl FUN_020200A0 + ldr r0, [r4, #8] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x2a + lsl r0, r0, #0xe + str r0, [sp] + mov r0, #0xf + lsl r0, r0, #0xe + str r0, [sp, #4] + ldr r0, [r4, #8] + add r1, sp, #0 + bl FUN_02020044 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D9E3C + + thumb_func_start MOD73_021D9E6C +MOD73_021D9E6C: ; 0x021D9E6C + push {r3, lr} + ldr r0, [r0, #8] + bl FUN_02020388 + cmp r0, #0 + bne _021D9E7C + mov r0, #1 + pop {r3, pc} +_021D9E7C: + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD73_021D9E6C + + thumb_func_start MOD73_021D9E80 +MOD73_021D9E80: ; 0x021D9E80 + ldr r3, _021D9E88 ; =Call_FillMemWithValue + mov r1, #0 + mov r2, #0x78 + bx r3 + .align 2, 0 +_021D9E88: .word Call_FillMemWithValue + thumb_func_end MOD73_021D9E80 + + thumb_func_start MOD73_021D9E8C +MOD73_021D9E8C: ; 0x021D9E8C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x74] + cmp r0, #0 + beq _021D9E9A + bl ErrorHandling +_021D9E9A: + add r0, r4, #0 + mov r1, #0 + mov r2, #0x78 + bl Call_FillMemWithValue + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D9E8C + + thumb_func_start MOD73_021D9EA8 +MOD73_021D9EA8: ; 0x021D9EA8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + str r0, [sp, #8] + ldr r0, [r0, #0x74] + add r7, r2, #0 + str r1, [sp, #0xc] + cmp r0, #0 + beq _021D9EBC + bl ErrorHandling +_021D9EBC: + ldr r4, _021D9F5C ; =0x021DBDE4 + ldr r5, [sp, #8] + mov r6, #0 +_021D9EC2: + ldrb r1, [r4] + ldr r0, [sp, #0xc] + add r2, r7, #0 + bl MOD73_021D9258 + add r6, r6, #1 + add r4, r4, #1 + stmia r5!, {r0} + cmp r6, #6 + blt _021D9EC2 + ldr r4, _021D9F60 ; =0x021DBE04 + ldr r5, [sp, #8] + mov r6, #0 +_021D9EDC: + ldrb r1, [r4] + ldr r0, [sp, #0xc] + add r2, r7, #0 + bl MOD73_021D9288 + str r0, [r5, #0x18] + add r6, r6, #1 + add r4, r4, #1 + add r5, r5, #4 + cmp r6, #8 + blt _021D9EDC + mov r0, #0 + str r0, [sp, #0x10] + ldr r0, _021D9F64 ; =0x021DBDF4 + ldr r6, _021D9F68 ; =0x021DBDFC + ldr r4, _021D9F6C ; =0x021DBE0C + ldr r5, [sp, #8] + ldr r7, _021D9F70 ; =0x021DBDEC + str r0, [sp, #0x14] +_021D9F02: + ldrb r0, [r6] + str r0, [sp] + ldr r0, [sp, #0x14] + ldrb r0, [r0] + str r0, [sp, #4] + ldrb r1, [r7] + ldrb r3, [r4] + ldr r0, [sp, #0xc] + lsl r2, r1, #2 + ldr r1, [sp, #8] + ldr r1, [r1, r2] + ldr r2, [r5, #0x18] + bl MOD73_021D92B8 + str r0, [r5, #0x38] + ldrb r2, [r4] + mov r1, #0x80 + ldrb r3, [r6] + sub r1, r1, r2 + mov r2, #0x60 + sub r2, r2, r3 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl FUN_02013ED8 + ldr r0, [sp, #0x14] + add r6, r6, #1 + add r0, r0, #1 + str r0, [sp, #0x14] + ldr r0, [sp, #0x10] + add r4, r4, #1 + add r0, r0, #1 + add r5, r5, #4 + add r7, r7, #1 + str r0, [sp, #0x10] + cmp r0, #8 + blt _021D9F02 + ldr r0, [sp, #8] + mov r1, #1 + str r1, [r0, #0x74] + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D9F5C: .word 0x021DBDE4 +_021D9F60: .word 0x021DBE04 +_021D9F64: .word 0x021DBDF4 +_021D9F68: .word 0x021DBDFC +_021D9F6C: .word 0x021DBE0C +_021D9F70: .word 0x021DBDEC + thumb_func_end MOD73_021D9EA8 + + thumb_func_start MOD73_021D9F74 +MOD73_021D9F74: ; 0x021D9F74 + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r0, [r6, #0x74] + cmp r0, #1 + beq _021D9F82 + bl ErrorHandling +_021D9F82: + mov r4, #0 + add r5, r6, #0 +_021D9F86: + ldr r0, [r5, #0x38] + bl FUN_02013EA8 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #8 + blt _021D9F86 + mov r5, #0 + add r4, r6, #0 +_021D9F98: + ldr r0, [r4] + bl FUN_02013DD4 + add r5, r5, #1 + add r4, r4, #4 + cmp r5, #6 + blt _021D9F98 + mov r5, #0 + add r4, r6, #0 +_021D9FAA: + ldr r0, [r4, #0x18] + bl FUN_02013E44 + add r5, r5, #1 + add r4, r4, #4 + cmp r5, #8 + blt _021D9FAA + mov r0, #0 + str r0, [r6, #0x74] + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD73_021D9F74 + + thumb_func_start MOD73_021D9FC0 +MOD73_021D9FC0: ; 0x021D9FC0 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + add r6, r2, #0 + cmp r4, #8 + blo _021D9FD0 + bl ErrorHandling +_021D9FD0: + lsl r0, r4, #2 + add r0, r5, r0 + ldr r0, [r0, #0x38] + add r1, r6, #0 + bl FUN_02013EB0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD73_021D9FC0 + + thumb_func_start MOD73_021D9FE0 +MOD73_021D9FE0: ; 0x021D9FE0 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r4, #5 + add r5, #0x14 +_021D9FEA: + ldr r0, [r5, #0x38] + add r1, r6, #0 + bl FUN_02013F2C + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #7 + ble _021D9FEA + pop {r4, r5, r6, pc} + thumb_func_end MOD73_021D9FE0 + + thumb_func_start MOD73_021D9FFC +MOD73_021D9FFC: ; 0x021D9FFC + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r4, #5 + add r5, #0x14 +_021DA006: + ldr r0, [r5, #0x38] + add r1, r6, #0 + add r2, r6, #0 + bl FUN_02013EE0 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #7 + ble _021DA006 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD73_021D9FFC + + thumb_func_start MOD73_021DA01C +MOD73_021DA01C: ; 0x021DA01C + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + add r6, r2, #0 + cmp r4, #8 + blo _021DA02C + bl ErrorHandling +_021DA02C: + lsl r0, r4, #2 + add r0, r5, r0 + lsl r1, r6, #0x18 + ldr r0, [r0, #0x38] + lsr r1, r1, #0x18 + bl FUN_02013F04 + pop {r4, r5, r6, pc} + thumb_func_end MOD73_021DA01C + + thumb_func_start MOD73_021DA03C +MOD73_021DA03C: ; 0x021DA03C + push {r3, lr} + mov r2, #1 + str r2, [r0, #0x6c] + mov r1, #0 + str r1, [r0, #0x70] + lsl r1, r2, #0xc + ldr r2, _021DA054 ; =0x00000FAE + add r0, #0x58 + mov r3, #4 + bl MOD73_021D9574 + pop {r3, pc} + .align 2, 0 +_021DA054: .word 0x00000FAE + thumb_func_end MOD73_021DA03C + + thumb_func_start MOD73_021DA058 +MOD73_021DA058: ; 0x021DA058 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, [r5, #0x6c] + add r3, r1, #0 + cmp r0, #0 + beq _021DA06A + cmp r0, #1 + beq _021DA0A4 + b _021DA0CE +_021DA06A: + ldr r0, [r5, #0x70] + cmp r0, #0 + bne _021DA088 + ldr r1, _021DA0D4 ; =0x021DBE14 + lsl r4, r3, #2 + ldr r2, _021DA0D8 ; =0x021DBE20 + ldr r1, [r1, r4] + ldr r2, [r2, r4] + ldr r4, _021DA0DC ; =0x021DBDE0 + add r0, r5, #0 + ldrb r3, [r4, r3] + add r0, #0x58 + bl MOD73_021D9574 + b _021DA09E +_021DA088: + ldr r1, _021DA0D8 ; =0x021DBE20 + lsl r4, r3, #2 + ldr r2, _021DA0D4 ; =0x021DBE14 + ldr r1, [r1, r4] + ldr r2, [r2, r4] + ldr r4, _021DA0DC ; =0x021DBDE0 + add r0, r5, #0 + ldrb r3, [r4, r3] + add r0, #0x58 + bl MOD73_021D9574 +_021DA09E: + ldr r0, [r5, #0x6c] + add r0, r0, #1 + str r0, [r5, #0x6c] +_021DA0A4: + add r0, r5, #0 + add r0, #0x58 + bl MOD73_021D9584 + add r7, r0, #0 + mov r6, #0 + add r4, r5, #0 +_021DA0B2: + ldr r1, [r5, #0x58] + ldr r0, [r4, #0x38] + add r2, r1, #0 + bl FUN_02013EE0 + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #2 + ble _021DA0B2 + cmp r7, #1 + bne _021DA0D2 + mov r0, #0 + str r0, [r5, #0x6c] + pop {r3, r4, r5, r6, r7, pc} +_021DA0CE: + bl ErrorHandling +_021DA0D2: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021DA0D4: .word 0x021DBE14 +_021DA0D8: .word 0x021DBE20 +_021DA0DC: .word 0x021DBDE0 + thumb_func_end MOD73_021DA058 + + thumb_func_start MOD73_021DA0E0 +MOD73_021DA0E0: ; 0x021DA0E0 + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + add r6, r2, #0 + mov r1, #0 + mov r2, #0x20 + add r5, r0, #0 + add r7, r3, #0 + bl Call_FillMemWithValue + str r4, [r5, #0x14] + str r6, [r5, #0x18] + str r7, [r5, #0x1c] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021DA0E0 + + thumb_func_start MOD73_021DA0FC +MOD73_021DA0FC: ; 0x021DA0FC + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021DA10A + bl ErrorHandling +_021DA10A: + add r0, r4, #0 + mov r1, #0 + mov r2, #0x20 + bl Call_FillMemWithValue + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021DA0FC + + thumb_func_start MOD73_021DA118 +MOD73_021DA118: ; 0x021DA118 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + str r0, [sp, #0xc] + mov r0, #2 + lsl r0, r0, #0x12 + str r0, [sp, #0x14] + mov r0, #6 + add r6, r2, #0 + lsl r0, r0, #0x10 + ldr r5, [sp, #0xc] + str r1, [sp, #0x10] + add r7, r3, #0 + str r0, [sp, #0x18] + mov r4, #0 + add r6, #0x38 +_021DA136: + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, [sp, #0x10] + str r7, [sp, #8] + add r1, r6, #0 + mov r2, #0x80 + mov r3, #0x60 + bl MOD73_021D9540 + str r0, [r5, #4] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [r5, #4] + add r1, r4, #4 + bl FUN_02020130 + ldr r0, [r5, #4] + add r1, sp, #0x14 + bl FUN_02020044 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021DA136 + ldr r0, [sp, #0xc] + mov r1, #1 + str r1, [r0] + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021DA118 + + thumb_func_start MOD73_021DA178 +MOD73_021DA178: ; 0x021DA178 + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_021DA180: + ldr r0, [r5, #4] + bl FUN_0201FFC8 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021DA180 + mov r0, #0 + str r0, [r6] + pop {r4, r5, r6, pc} + thumb_func_end MOD73_021DA178 + + thumb_func_start MOD73_021DA194 +MOD73_021DA194: ; 0x021DA194 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r6, r0, #0 + ldr r7, [r6, #0x14] + ldr r0, [r6, #0x18] + add r7, #0x98 + mov r4, #0 + cmp r0, #0 + bls _021DA1D2 + add r5, r6, #0 +_021DA1A8: + ldr r0, [r6, #0x14] + add r1, r0, r4 + mov r0, #0x13 + lsl r0, r0, #4 + ldrb r1, [r1, r0] + add r0, r7, r1 + ldrb r1, [r7, r1] + lsl r1, r1, #0xc + str r1, [sp] + ldrb r0, [r0, #4] + add r1, sp, #0 + lsl r0, r0, #0xc + str r0, [sp, #4] + ldr r0, [r5, #4] + bl FUN_02020044 + ldr r0, [r6, #0x18] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, r0 + blo _021DA1A8 +_021DA1D2: + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021DA194 + + thumb_func_start MOD73_021DA1D8 +MOD73_021DA1D8: ; 0x021DA1D8 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, [r5, #0x18] + mov r4, #0 + str r1, [sp] + cmp r0, #0 + bls _021DA20E + add r6, r5, #0 +_021DA1E8: + ldr r0, [r5, #0x14] + add r1, r0, r4 + mov r0, #0x13 + lsl r0, r0, #4 + ldrb r7, [r1, r0] + ldr r0, [r5, #0x1c] + bl MOD73_021D910C + cmp r7, r0 + beq _021DA204 + ldr r0, [r6, #4] + ldr r1, [sp] + bl FUN_020200A0 +_021DA204: + ldr r0, [r5, #0x18] + add r4, r4, #1 + add r6, r6, #4 + cmp r4, r0 + blo _021DA1E8 +_021DA20E: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD73_021DA1D8 + + thumb_func_start MOD73_021DA210 +MOD73_021DA210: ; 0x021DA210 + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + add r6, r2, #0 + add r5, r0, #0 + mov r1, #0 + mov r2, #0x34 + add r7, r3, #0 + bl Call_FillMemWithValue + str r6, [r5, #0x1c] + ldr r0, [sp, #0x1c] + str r4, [r5, #0x20] + str r0, [r5] + ldr r0, [sp, #0x18] + str r7, [r5, #0x24] + str r0, [r5, #0x18] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021DA210 + + thumb_func_start MOD73_021DA234 +MOD73_021DA234: ; 0x021DA234 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + cmp r0, #0 + beq _021DA242 + bl ErrorHandling +_021DA242: + add r0, r4, #0 + bl MOD73_021DA4AC + add r0, r4, #0 + mov r1, #0 + mov r2, #0x34 + bl Call_FillMemWithValue + pop {r4, pc} + thumb_func_end MOD73_021DA234 + + thumb_func_start MOD73_021DA254 +MOD73_021DA254: ; 0x021DA254 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, [r5, #0x28] + add r4, r1, #0 + add r6, r2, #0 + cmp r0, #0 + beq _021DA266 + bl ErrorHandling +_021DA266: + add r0, r5, #0 + add r1, r6, #0 + str r4, [r5, #4] + bl MOD73_021DA2AC + add r0, r5, #0 + add r1, r6, #0 + bl MOD73_021DA374 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #1 + str r0, [r5, #0x28] + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD73_021DA254 + + thumb_func_start MOD73_021DA290 +MOD73_021DA290: ; 0x021DA290 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + cmp r0, #1 + beq _021DA29E + bl ErrorHandling +_021DA29E: + add r0, r4, #0 + bl MOD73_021DA354 + mov r0, #0 + str r0, [r4, #0x28] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021DA290 + + thumb_func_start MOD73_021DA2AC +MOD73_021DA2AC: ; 0x021DA2AC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r7, r0, #0 + ldr r0, [r7, #0x18] + str r1, [sp, #0x14] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + add r0, r1, #0 + str r0, [sp, #4] + ldr r0, [r7, #4] + mov r1, #2 + mov r2, #1 + mov r3, #0 + bl FUN_0200CD68 + ldr r2, [sp, #0x14] + mov r0, #0 + mov r1, #0x40 + bl FUN_02002EEC + mov r0, #0 + str r0, [sp] + ldr r0, [sp, #0x14] + mov r1, #2 + str r0, [sp, #4] + ldr r0, [r7, #4] + mov r2, #0x1f + mov r3, #1 + bl FUN_0200CB00 + ldr r2, [sp, #0x14] + mov r0, #0 + mov r1, #0x60 + bl FUN_02002ED0 + ldr r5, _021DA350 ; =0x021DBF80 + mov r6, #0 + add r4, r7, #0 +_021DA2FA: + ldr r0, [sp, #0x14] + mov r1, #1 + bl FUN_02018FF4 + str r0, [r4, #8] + ldrh r0, [r5, #2] + mov r2, #2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldrh r0, [r5, #4] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #4] + ldrh r0, [r5, #6] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #8] + ldrh r0, [r5, #8] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xc] + ldrh r0, [r5, #0xa] + str r0, [sp, #0x10] + ldrh r3, [r5] + ldr r0, [r7, #4] + ldr r1, [r4, #8] + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + bl FUN_02019064 + ldr r0, [r4, #8] + mov r1, #0 + bl FUN_02019620 + add r6, r6, #1 + add r4, r4, #4 + add r5, #0xc + cmp r6, #4 + blt _021DA2FA + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_021DA350: .word 0x021DBF80 + thumb_func_end MOD73_021DA2AC + + thumb_func_start MOD73_021DA354 +MOD73_021DA354: ; 0x021DA354 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r4, #0 + mov r6, #1 +_021DA35C: + ldr r0, [r5, #8] + bl FUN_02019178 + ldr r0, [r5, #8] + add r1, r6, #0 + bl FUN_020191A4 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021DA35C + pop {r4, r5, r6, pc} + thumb_func_end MOD73_021DA354 + + thumb_func_start MOD73_021DA374 +MOD73_021DA374: ; 0x021DA374 + push {r4, r5, lr} + sub sp, #0x14 + add r4, r0, #0 + mov r0, #0x20 + add r5, r1, #0 + str r0, [sp] + mov r0, #0x7a + mov r1, #6 + mov r2, #0 + mov r3, #0x80 + str r5, [sp, #4] + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r5, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7a + mov r1, #5 + mov r3, #1 + bl FUN_0200687C + str r5, [sp] + mov r0, #0x7a + mov r1, #7 + mov r2, #0 + add r3, sp, #0x10 + bl FUN_02006BDC + ldr r2, [sp, #0x10] + mov r3, #0 + str r3, [sp] + add r5, r0, #0 + ldrh r0, [r2] + mov r1, #1 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #4] + ldrh r0, [r2, #2] + add r2, #0xc + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #8] + ldr r0, [r4, #4] + bl FUN_02018148 + ldr r1, [sp, #0x10] + mov r2, #0 + ldrh r0, [r1] + add r3, r2, #0 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp] + ldrh r0, [r1, #2] + mov r1, #1 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + ldr r0, [r4, #4] + bl FUN_020186B4 + add r0, r5, #0 + bl FUN_02016A18 + ldr r0, [r4, #4] + mov r1, #1 + bl FUN_0201AC68 + add sp, #0x14 + pop {r4, r5, pc} + thumb_func_end MOD73_021DA374 + + thumb_func_start MOD73_021DA408 +MOD73_021DA408: ; 0x021DA408 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #0x30] + add r0, r0, #1 + str r0, [r4, #0x30] + cmp r0, #0x1e + blt _021DA432 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #0 + bl FUN_0201E6E4 + add r0, r5, #0 + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r4, #0x2c] +_021DA432: + pop {r3, r4, r5, pc} + thumb_func_end MOD73_021DA408 + + thumb_func_start MOD73_021DA434 +MOD73_021DA434: ; 0x021DA434 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r0, [r5, #0x2c] + add r4, r1, #0 + cmp r0, #0 + beq _021DA446 + bl ErrorHandling +_021DA446: + mov r2, #1 + ldr r0, _021DA494 ; =MOD73_021DA408 + add r1, r5, #0 + lsl r2, r2, #0xa + bl FUN_0200CA44 + str r0, [r5, #0x2c] + mov r1, #0 + str r1, [r5, #0x30] + ldr r0, [r5, #8] + bl FUN_02019620 + mov r3, #0 + str r3, [sp] + ldr r0, _021DA498 ; =0x0001020F + str r3, [sp, #4] + str r0, [sp, #8] + str r3, [sp, #0xc] + ldr r6, [r5, #0x1c] + lsl r2, r4, #2 + add r2, r6, r2 + ldr r0, [r5, #8] + ldr r2, [r2, #0x38] + mov r1, #1 + bl FUN_0201BDE0 + ldr r0, [r5, #8] + bl FUN_020191D0 + mov r0, #2 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #1 + bl FUN_0201E6E4 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021DA494: .word MOD73_021DA408 +_021DA498: .word 0x0001020F + thumb_func_end MOD73_021DA434 + + thumb_func_start MOD73_021DA49C +MOD73_021DA49C: ; 0x021DA49C + ldr r0, [r0, #0x2c] + cmp r0, #0 + bne _021DA4A6 + mov r0, #1 + bx lr +_021DA4A6: + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD73_021DA49C + + thumb_func_start MOD73_021DA4AC +MOD73_021DA4AC: ; 0x021DA4AC + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x2c] + cmp r0, #0 + beq _021DA4D0 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #0 + bl FUN_0201E6E4 + ldr r0, [r4, #0x2c] + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r4, #0x2c] +_021DA4D0: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021DA4AC + + thumb_func_start MOD73_021DA4D4 +MOD73_021DA4D4: ; 0x021DA4D4 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + ldr r0, [r4, #4] + mov r1, #2 + bl FUN_02018744 + ldr r0, [r4, #0xc] + mov r1, #0xf + bl FUN_02019620 + mov r1, #0 + str r1, [sp] + ldr r0, _021DA54C ; =0x0001020F + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0xc] + ldr r2, [r2, #0x34] + mov r3, #0x38 + bl FUN_0201BDE0 + ldr r0, [r4, #0xc] + mov r1, #0 + mov r2, #0x1f + mov r3, #1 + bl FUN_0200CCA4 + ldr r0, [r4, #0x10] + mov r1, #0xf + bl FUN_02019620 + mov r1, #0 + str r1, [sp] + ldr r0, _021DA54C ; =0x0001020F + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0x10] + ldr r2, [r2, #0x64] + add r3, r1, #0 + bl FUN_0201BDE0 + ldr r0, [r4, #0x10] + mov r1, #0 + mov r2, #0x1f + mov r3, #1 + bl FUN_0200CCA4 + ldr r0, [r4, #0xc] + bl FUN_02019220 + ldr r0, [r4, #0x10] + bl FUN_02019220 + add sp, #0x10 + pop {r4, pc} + nop +_021DA54C: .word 0x0001020F + thumb_func_end MOD73_021DA4D4 + + thumb_func_start MOD73_021DA550 +MOD73_021DA550: ; 0x021DA550 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0x18 + str r0, [sp] + mov r1, #0 + ldr r0, _021DA6B8 ; =0x0001020F + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0xc] + ldr r2, [r2, #0x4c] + add r3, r1, #0 + bl FUN_0201BDE0 + mov r3, #2 + str r3, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, [r4, #0x24] + ldr r0, [r4, #0x1c] + add r2, #0x66 + ldrb r2, [r2] + ldr r0, [r0, #4] + mov r1, #0 + bl FUN_0200AD38 + mov r3, #2 + str r3, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r2, [r4, #0x24] + ldr r0, [r4, #0x1c] + add r2, #0x67 + ldrb r2, [r2] + ldr r0, [r0, #4] + bl FUN_0200AD38 + mov r1, #2 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, [r4, #0x24] + ldr r0, [r4, #0x1c] + add r2, #0x68 + ldrb r2, [r2] + ldr r0, [r0, #4] + add r3, r1, #0 + bl FUN_0200AD38 + ldr r2, [r4, #0x1c] + ldr r0, [r2, #4] + ldr r1, [r2, #8] + ldr r2, [r2, #0x50] + bl FUN_0200B7B8 + mov r0, #0x18 + str r0, [sp] + mov r1, #0 + ldr r0, _021DA6B8 ; =0x0001020F + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0xc] + ldr r2, [r2, #8] + mov r3, #0xa0 + bl FUN_0201BDE0 + mov r0, #0x30 + str r0, [sp] + mov r1, #0 + ldr r0, _021DA6B8 ; =0x0001020F + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0xc] + ldr r2, [r2, #0x54] + add r3, r1, #0 + bl FUN_0201BDE0 + mov r1, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4, #0x1c] + ldr r2, [r4, #0x24] + ldr r0, [r0, #4] + ldr r2, [r2, #0x58] + mov r3, #4 + bl FUN_0200AD38 + ldr r0, [r4, #0x24] + ldr r0, [r0, #0x58] + cmp r0, #1 + bne _021DA618 + mov r2, #3 + b _021DA61A +_021DA618: + mov r2, #5 +_021DA61A: + ldr r3, [r4, #0x1c] + lsl r2, r2, #2 + add r2, r3, r2 + ldr r0, [r3, #4] + ldr r1, [r3, #8] + ldr r2, [r2, #0x4c] + bl FUN_0200B7B8 + mov r0, #0x30 + str r0, [sp] + mov r1, #0 + ldr r0, _021DA6B8 ; =0x0001020F + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0xc] + ldr r2, [r2, #8] + mov r3, #0xa0 + bl FUN_0201BDE0 + mov r0, #0x44 + str r0, [sp] + mov r1, #0 + ldr r0, _021DA6B8 ; =0x0001020F + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0xc] + ldr r2, [r2, #0x5c] + add r3, r1, #0 + bl FUN_0201BDE0 + mov r1, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4, #0x1c] + ldr r2, [r4, #0x24] + ldr r0, [r0, #4] + ldr r2, [r2, #0x5c] + mov r3, #4 + bl FUN_0200AD38 + ldr r0, [r4, #0x24] + ldr r0, [r0, #0x5c] + cmp r0, #1 + bne _021DA680 + mov r2, #3 + b _021DA682 +_021DA680: + mov r2, #5 +_021DA682: + ldr r3, [r4, #0x1c] + lsl r2, r2, #2 + add r2, r3, r2 + ldr r0, [r3, #4] + ldr r1, [r3, #8] + ldr r2, [r2, #0x4c] + bl FUN_0200B7B8 + mov r0, #0x44 + str r0, [sp] + mov r1, #0 + ldr r0, _021DA6B8 ; =0x0001020F + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0xc] + ldr r2, [r2, #8] + mov r3, #0xa0 + bl FUN_0201BDE0 + ldr r0, [r4, #0xc] + bl FUN_02019220 + add sp, #0x10 + pop {r4, pc} + nop +_021DA6B8: .word 0x0001020F + thumb_func_end MOD73_021DA550 + + thumb_func_start MOD73_021DA6BC +MOD73_021DA6BC: ; 0x021DA6BC + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + ldr r2, [r4, #0x24] + ldr r0, [r4, #0x1c] + add r2, #0x64 + ldrb r2, [r2] + ldr r0, [r0, #4] + mov r1, #3 + bl FUN_0200B628 + mov r3, #2 + str r3, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r2, [r4, #0x24] + ldr r0, [r4, #0x1c] + add r2, #0x65 + ldrb r2, [r2] + ldr r0, [r0, #4] + bl FUN_0200AD38 + mov r1, #2 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4, #0x1c] + ldr r2, [r4, #0x20] + ldr r0, [r0, #4] + add r3, r1, #0 + bl FUN_0200AD38 + ldr r2, [r4, #0x1c] + ldr r0, [r2, #4] + ldr r1, [r2, #8] + ldr r2, [r2, #0x68] + bl FUN_0200B7B8 + mov r0, #0x18 + str r0, [sp] + mov r1, #0 + ldr r0, _021DA72C ; =0x0001020F + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0x10] + ldr r2, [r2, #8] + mov r3, #0x10 + bl FUN_0201BDE0 + ldr r0, [r4, #0x10] + bl FUN_02019220 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_021DA72C: .word 0x0001020F + thumb_func_end MOD73_021DA6BC + + thumb_func_start MOD73_021DA730 +MOD73_021DA730: ; 0x021DA730 + push {r3, lr} + cmp r1, #0 + beq _021DA740 + cmp r1, #1 + beq _021DA746 + cmp r1, #2 + beq _021DA74C + pop {r3, pc} +_021DA740: + bl MOD73_021DA4D4 + pop {r3, pc} +_021DA746: + bl MOD73_021DA550 + pop {r3, pc} +_021DA74C: + bl MOD73_021DA6BC + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD73_021DA730 + + thumb_func_start MOD73_021DA754 +MOD73_021DA754: ; 0x021DA754 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + mov r1, #2 + bl FUN_02018744 + ldr r0, [r4, #0xc] + bl FUN_02019570 + ldr r0, [r4, #0x10] + bl FUN_02019570 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021DA754 + + thumb_func_start MOD73_021DA770 +MOD73_021DA770: ; 0x021DA770 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r4, r0, #0 + ldr r0, [r4, #0x14] + add r6, r1, #0 + mov r1, #0xf + bl FUN_02019620 + cmp r6, #6 + bhi _021DA7EC + add r0, r6, r6 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021DA790: ; jump table + .short _021DA79E - _021DA790 - 2 ; case 0 + .short _021DA7CA - _021DA790 - 2 ; case 1 + .short _021DA7D0 - _021DA790 - 2 ; case 2 + .short _021DA7D6 - _021DA790 - 2 ; case 3 + .short _021DA7DC - _021DA790 - 2 ; case 4 + .short _021DA7E2 - _021DA790 - 2 ; case 5 + .short _021DA7E8 - _021DA790 - 2 ; case 6 +_021DA79E: + mov r3, #0x51 + ldr r2, [r4, #0x24] + lsl r3, r3, #2 + ldrb r5, [r2, r3] + ldr r0, [r4, #0x1c] + sub r3, #0x10 + lsl r5, r5, #2 + add r2, r2, r5 + ldr r0, [r0, #4] + ldr r2, [r2, r3] + mov r1, #0 + bl FUN_0200ABC0 + ldr r2, [r4, #0x1c] + ldr r0, [r2, #4] + ldr r1, [r2, #8] + ldr r2, [r2, #0x18] + bl FUN_0200B7B8 + ldr r0, [r4, #0x1c] + ldr r5, [r0, #8] + b _021DA7EC +_021DA7CA: + ldr r0, [r4, #0x1c] + ldr r5, [r0, #0x1c] + b _021DA7EC +_021DA7D0: + ldr r0, [r4, #0x1c] + ldr r5, [r0, #0x28] + b _021DA7EC +_021DA7D6: + ldr r0, [r4, #0x1c] + ldr r5, [r0, #0x24] + b _021DA7EC +_021DA7DC: + ldr r0, [r4, #0x1c] + ldr r5, [r0, #0x20] + b _021DA7EC +_021DA7E2: + ldr r0, [r4, #0x1c] + ldr r5, [r0, #0x2c] + b _021DA7EC +_021DA7E8: + ldr r0, [r4, #0x1c] + ldr r5, [r0, #0xc] +_021DA7EC: + mov r3, #0 + str r3, [sp] + ldr r0, _021DA818 ; =0x0001020F + str r3, [sp, #4] + str r0, [sp, #8] + str r3, [sp, #0xc] + ldr r0, [r4, #0x14] + mov r1, #1 + add r2, r5, #0 + bl FUN_0201BDE0 + mov r1, #0 + ldr r0, [r4, #0x14] + mov r2, #1 + add r3, r1, #0 + bl FUN_0200D0BC + ldr r0, [r4, #0x14] + bl FUN_02019220 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021DA818: .word 0x0001020F + thumb_func_end MOD73_021DA770 + + thumb_func_start MOD73_021DA81C +MOD73_021DA81C: ; 0x021DA81C + ldr r3, _021DA824 ; =Call_FillMemWithValue + mov r1, #0 + ldr r2, _021DA828 ; =0x00000414 + bx r3 + .align 2, 0 +_021DA824: .word Call_FillMemWithValue +_021DA828: .word 0x00000414 + thumb_func_end MOD73_021DA81C + + thumb_func_start MOD73_021DA82C +MOD73_021DA82C: ; 0x021DA82C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021DA83A + bl ErrorHandling +_021DA83A: + ldr r2, _021DA848 ; =0x00000414 + add r0, r4, #0 + mov r1, #0 + bl Call_FillMemWithValue + pop {r4, pc} + nop +_021DA848: .word 0x00000414 + thumb_func_end MOD73_021DA82C + + thumb_func_start MOD73_021DA84C +MOD73_021DA84C: ; 0x021DA84C + str r1, [r0, #4] + str r2, [r0, #8] + str r3, [r0, #0xc] + mov r1, #1 + str r1, [r0] + bx lr + thumb_func_end MOD73_021DA84C + + thumb_func_start MOD73_021DA858 +MOD73_021DA858: ; 0x021DA858 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r5, r7, #0 + mov r6, #0 + add r4, r7, #0 + add r5, #0x10 +_021DA864: + add r0, r4, #0 + add r0, #0x88 + ldr r0, [r0] + cmp r0, #0 + beq _021DA874 + add r0, r5, #0 + bl MOD73_021DAB30 +_021DA874: + add r6, r6, #1 + add r4, #0x80 + add r5, #0x80 + cmp r6, #8 + blt _021DA864 + mov r0, #0 + str r0, [r7] + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD73_021DA858 + + thumb_func_start MOD73_021DA884 +MOD73_021DA884: ; 0x021DA884 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r4, r5, #0 + add r7, r1, #0 + mov r6, #0 + add r4, #0x10 +_021DA890: + add r0, r5, #0 + add r0, #0x88 + ldr r0, [r0] + cmp r0, #0 + beq _021DA8AE + add r0, r4, #0 + bl MOD73_021DAB50 + ldr r0, [r5, #0x20] + cmp r0, #0 + beq _021DA8AE + add r0, r4, #0 + add r1, r7, #0 + bl MOD73_021DABD0 +_021DA8AE: + add r6, r6, #1 + add r5, #0x80 + add r4, #0x80 + cmp r6, #8 + blt _021DA890 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021DA884 + + thumb_func_start MOD73_021DA8BC +MOD73_021DA8BC: ; 0x021DA8BC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0xb8 + add r5, r0, #0 + lsl r0, r1, #1 + add r0, r1, r0 + add r1, r2, r0 + mov r0, #0x1c + add r2, r1, #0 + mul r2, r0 + ldr r0, _021DAA9C ; =0x021DBE7C + add r3, r0, r2 + ldmia r3!, {r0, r1} + add r2, sp, #0x9c + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + add r0, r5, #0 + bl MOD73_021DAAD0 + str r0, [sp, #0x60] + cmp r0, #0 + bne _021DA906 + add r0, r5, #0 + bl MOD73_021DAAF4 + str r0, [sp, #0x60] + cmp r0, #0 + bne _021DA900 + bl ErrorHandling +_021DA900: + ldr r0, [sp, #0x60] + bl MOD73_021DAB30 +_021DA906: + bl FUN_0201BA60 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + bl FUN_0201BA60 + add r1, sp, #0x9c + ldrb r1, [r1, #0x11] + bl _u32_div_f + add r0, sp, #0x9c + ldrb r0, [r0, #0x10] + add r4, r0, r1 + bl FUN_0201BA60 + add r1, sp, #0x9c + ldrb r1, [r1, #0x13] + bl _u32_div_f + add r0, sp, #0x9c + ldrb r0, [r0, #0x12] + add r0, r0, r1 + add r0, r0, r4 + asr r1, r6, #4 + lsl r2, r1, #1 + lsl r0, r0, #0xc + str r0, [sp, #0x6c] + asr r0, r0, #0x1f + lsl r3, r2, #1 + ldr r1, _021DAAA0 ; =0x020FFA38 + str r0, [sp, #0x70] + ldr r0, [sp, #0xa8] + ldrsh r6, [r1, r3] + lsl r3, r4, #0xc + add r2, r2, #1 + str r3, [sp, #0x64] + asr r3, r3, #0x1f + lsl r2, r2, #1 + str r0, [sp, #0x74] + asr r0, r0, #0x1f + str r3, [sp, #0x68] + ldrsh r4, [r1, r2] + str r0, [sp, #0x78] + bl FUN_0201BA60 + ldr r1, [sp, #0xa0] + bl _u32_div_f + ldr r0, [sp, #0x9c] + ldr r2, [sp, #0x64] + add r0, r0, r1 + str r0, [sp, #0x5c] + asr r0, r6, #0x1f + str r0, [sp, #0x7c] + ldr r1, [sp, #0x7c] + ldr r3, [sp, #0x68] + add r0, r6, #0 + asr r7, r4, #0x1f + bl _ll_mul + str r1, [sp, #0x58] + str r0, [sp, #0x80] + ldr r1, [sp, #0x7c] + ldr r2, [sp, #0x6c] + ldr r3, [sp, #0x70] + add r0, r6, #0 + bl _ll_mul + str r1, [sp, #0x50] + str r0, [sp, #0x84] + ldr r1, [sp, #0x7c] + ldr r2, [sp, #0x74] + ldr r3, [sp, #0x78] + add r0, r6, #0 + bl _ll_mul + str r0, [sp, #0x88] + str r1, [sp, #0x98] + ldr r2, [sp, #0x64] + ldr r3, [sp, #0x68] + add r0, r4, #0 + add r1, r7, #0 + bl _ll_mul + str r0, [sp, #0x8c] + str r1, [sp, #0x48] + ldr r2, [sp, #0x6c] + ldr r3, [sp, #0x70] + add r0, r4, #0 + add r1, r7, #0 + bl _ll_mul + str r0, [sp, #0x90] + str r1, [sp, #0x40] + ldr r2, [sp, #0x74] + ldr r3, [sp, #0x78] + add r0, r4, #0 + add r1, r7, #0 + bl _ll_mul + add r2, r0, #0 + mov r4, #2 + ldr r0, [sp, #0x88] + ldr r3, [sp, #0x98] + mov r6, #0 + lsl r4, r4, #0xa + add r0, r0, r4 + adc r3, r6 + str r3, [sp, #0x98] + lsl r3, r3, #0x14 + lsr r0, r0, #0xc + orr r0, r3 + str r0, [sp] + ldr r0, [sp, #0x8c] + ldr r3, [sp, #0x48] + add r0, r0, r4 + adc r3, r6 + str r3, [sp, #0x48] + mov r7, #6 + lsl r3, r3, #0x14 + lsr r0, r0, #0xc + orr r0, r3 + lsl r7, r7, #0x10 + add r0, r0, r7 + str r0, [sp, #4] + ldr r0, [sp, #0x90] + ldr r3, [sp, #0x40] + add r0, r0, r4 + adc r3, r6 + str r3, [sp, #0x40] + lsl r3, r3, #0x14 + lsr r0, r0, #0xc + orr r0, r3 + add r0, r0, r7 + add r2, r2, r4 + adc r1, r6 + str r0, [sp, #8] + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + str r1, [sp, #0xc] + ldr r0, _021DAAA4 ; =0x0000019A + add r2, sp, #0x9c + str r0, [sp, #0x10] + ldr r0, [sp, #0x5c] + mov r1, #0x38 + str r0, [sp, #0x14] + ldr r0, [sp, #0xa4] + str r0, [sp, #0x18] + ldrb r0, [r2, #0x18] + str r0, [sp, #0x1c] + ldrb r0, [r2, #0x14] + str r0, [sp, #0x20] + ldrb r3, [r2, #0x15] + ldr r0, [r5, #8] + mul r1, r3 + add r0, r0, r1 + str r0, [sp, #0x24] + ldrb r0, [r2, #0x16] + str r0, [sp, #0x28] + ldr r0, [r5, #4] + str r0, [sp, #0x2c] + ldr r0, [r5, #0xc] + str r0, [sp, #0x30] + ldrb r0, [r2, #0x19] + str r0, [sp, #0x34] + ldrb r0, [r2, #0x1a] + str r0, [sp, #0x38] + ldrb r1, [r2, #0x17] + ldr r2, [sp, #0x80] + ldr r0, [sp, #0x60] + add r3, r2, r4 + ldr r2, [sp, #0x58] + adc r2, r6 + str r2, [sp, #0x58] + lsl r2, r2, #0x14 + lsr r3, r3, #0xc + orr r3, r2 + lsl r2, r4, #8 + add r2, r3, r2 + ldr r3, [sp, #0x84] + add r7, r3, r4 + ldr r3, [sp, #0x50] + adc r3, r6 + str r3, [sp, #0x50] + lsl r3, r3, #0x14 + lsr r6, r7, #0xc + orr r6, r3 + lsl r3, r4, #8 + add r3, r6, r3 + bl MOD73_021DAC9C + mov r1, #0x41 + lsl r1, r1, #4 + ldr r2, [r5, r1] + ldr r0, [sp, #0x60] + str r2, [r0, #0x7c] + ldr r0, [r5, r1] + add r0, r0, #1 + str r0, [r5, r1] + add sp, #0xb8 + pop {r3, r4, r5, r6, r7, pc} + nop +_021DAA9C: .word 0x021DBE7C +_021DAAA0: .word 0x020FFA38 +_021DAAA4: .word 0x0000019A + thumb_func_end MOD73_021DA8BC + + thumb_func_start MOD73_021DAAA8 +MOD73_021DAAA8: ; 0x021DAAA8 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r5, #0 + mov r6, #0 + add r4, #0x10 +_021DAAB2: + add r0, r5, #0 + add r0, #0x88 + ldr r0, [r0] + cmp r0, #0 + beq _021DAAC2 + add r0, r4, #0 + bl MOD73_021DAD44 +_021DAAC2: + add r6, r6, #1 + add r5, #0x80 + add r4, #0x80 + cmp r6, #8 + blt _021DAAB2 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD73_021DAAA8 + + thumb_func_start MOD73_021DAAD0 +MOD73_021DAAD0: ; 0x021DAAD0 + mov r2, #0 + add r3, r0, #0 +_021DAAD4: + add r1, r3, #0 + add r1, #0x88 + ldr r1, [r1] + cmp r1, #0 + bne _021DAAE6 + add r0, #0x10 + lsl r1, r2, #7 + add r0, r0, r1 + bx lr +_021DAAE6: + add r2, r2, #1 + add r3, #0x80 + cmp r2, #8 + blt _021DAAD4 + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD73_021DAAD0 + + thumb_func_start MOD73_021DAAF4 +MOD73_021DAAF4: ; 0x021DAAF4 + push {r4, r5} + mov r2, #0 + add r3, r0, #0 + add r1, r2, #0 + add r3, #0x10 +_021DAAFE: + add r4, r0, #0 + add r4, #0x88 + ldr r4, [r4] + cmp r4, #0 + beq _021DAB1E + cmp r2, #0 + bne _021DAB10 + add r2, r3, #0 + b _021DAB1E +_021DAB10: + add r4, r0, #0 + add r4, #0x8c + ldr r5, [r2, #0x7c] + ldr r4, [r4] + cmp r5, r4 + ble _021DAB1E + add r2, r3, #0 +_021DAB1E: + add r1, r1, #1 + add r0, #0x80 + add r3, #0x80 + cmp r1, #8 + blt _021DAAFE + add r0, r2, #0 + pop {r4, r5} + bx lr + .align 2, 0 + thumb_func_end MOD73_021DAAF4 + + thumb_func_start MOD73_021DAB30 +MOD73_021DAB30: ; 0x021DAB30 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x78] + cmp r0, #0 + bne _021DAB3E + bl ErrorHandling +_021DAB3E: + ldr r0, [r4, #0x78] + bl FUN_0201FFC8 + add r0, r4, #0 + mov r1, #0 + mov r2, #0x80 + bl Call_FillMemWithValue + pop {r4, pc} + thumb_func_end MOD73_021DAB30 + + thumb_func_start MOD73_021DAB50 +MOD73_021DAB50: ; 0x021DAB50 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + cmp r0, #0 + bne _021DABA2 + add r0, r4, #0 + add r0, #0x30 + bl MOD73_021D962C + str r0, [r4, #4] + add r0, r4, #0 + add r0, #0x48 + bl MOD73_021D962C + add r0, r4, #0 + add r0, #0x60 + bl MOD73_021D962C + ldr r0, [r4, #0x30] + add r1, r4, #0 + str r0, [r4, #0x14] + ldr r0, [r4, #0x48] + add r1, #0x14 + str r0, [r4, #0x18] + ldr r0, [r4, #0x78] + bl FUN_02020044 + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _021DABA2 + ldr r0, [r4, #0x60] + add r1, r4, #0 + str r0, [r4, #0x20] + ldr r0, [r4, #0x60] + add r1, #0x20 + str r0, [r4, #0x24] + ldr r0, [r4, #0x60] + str r0, [r4, #0x28] + ldr r0, [r4, #0x78] + bl FUN_02020064 +_021DABA2: + ldr r0, [r4, #8] + cmp r0, #0 + bne _021DABB6 + ldr r0, [r4, #0x78] + bl FUN_02020388 + cmp r0, #0 + bne _021DABB6 + mov r0, #1 + str r0, [r4, #8] +_021DABB6: + ldr r0, [r4] + cmp r0, #0 + bne _021DABCE + ldr r0, [r4, #4] + cmp r0, #1 + bne _021DABCE + ldr r0, [r4, #8] + cmp r0, #1 + bne _021DABCE + add r0, r4, #0 + bl MOD73_021DAB30 +_021DABCE: + pop {r4, pc} + thumb_func_end MOD73_021DAB50 + + thumb_func_start MOD73_021DABD0 +MOD73_021DABD0: ; 0x021DABD0 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, [r5, #4] + cmp r0, #1 + bne _021DAC94 + ldr r0, [r5, #8] + cmp r0, #1 + bne _021DAC94 + add r0, r1, #0 + add r0, #0xa4 + ldrb r0, [r0] + ldr r2, [r5, #0x2c] + cmp r0, #0 + bne _021DABF6 + add r1, #0xa2 + ldrh r0, [r1] + add r0, r2, r0 + b _021DABFC +_021DABF6: + add r1, #0xa2 + ldrh r0, [r1] + sub r0, r2, r0 +_021DABFC: + str r0, [r5, #0x2c] + mov r0, #2 + ldr r1, [r5, #0x14] + lsl r0, r0, #0x12 + sub r4, r1, r0 + mov r0, #6 + mov r2, #0 + ldr r1, [r5, #0x18] + lsl r0, r0, #0x10 + sub r6, r1, r0 + asr r0, r4, #0xc + asr r1, r6, #0xc + add r3, r2, #0 + bl FUN_0201CBEC + add r7, r0, #0 + add r0, r6, #0 + add r1, r4, #0 + bl FX_Atan2 + lsl r6, r7, #0xc + ldr r1, [r5, #0x2c] + asr r7, r6, #0x1f + add r0, r0, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #4 + lsl r4, r0, #1 + add r0, r4, #1 + lsl r1, r0, #1 + ldr r0, _021DAC98 ; =0x020FFA38 + add r2, r6, #0 + ldrsh r0, [r0, r1] + add r3, r7, #0 + asr r1, r0, #0x1f + bl _ll_mul + add r2, r0, #0 + mov r0, #2 + mov r3, #0 + lsl r0, r0, #0xa + add r0, r2, r0 + adc r1, r3 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + str r0, [sp] + ldr r0, _021DAC98 ; =0x020FFA38 + lsl r1, r4, #1 + ldrsh r0, [r0, r1] + add r2, r6, #0 + add r3, r7, #0 + asr r1, r0, #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 + ldr r3, [sp] + lsl r1, r2, #8 + add r1, r3, r1 + str r1, [sp] + mov r1, #6 + lsl r1, r1, #0x10 + str r0, [sp, #4] + add r0, r0, r1 + str r0, [sp, #4] + ldr r0, [r5, #0x78] + add r1, sp, #0 + bl FUN_02020044 +_021DAC94: + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021DAC98: .word 0x020FFA38 + thumb_func_end MOD73_021DABD0 + + thumb_func_start MOD73_021DAC9C +MOD73_021DAC9C: ; 0x021DAC9C + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, [sp, #0x40] + str r1, [r5] + add r4, r2, #0 + str r0, [sp] + add r0, r5, #0 + add r2, r3, #0 + ldr r3, [sp, #0x20] + add r0, #0x30 + add r1, r4, #0 + ldr r6, [sp, #0x30] + bl MOD73_021D95CC + ldr r0, [sp, #0x40] + ldr r1, [sp, #0x24] + str r0, [sp] + add r0, r5, #0 + ldr r2, [sp, #0x28] + ldr r3, [sp, #0x2c] + add r0, #0x48 + bl MOD73_021D95CC + ldr r0, [sp, #0x40] + ldr r2, [sp, #0x34] + str r0, [sp] + add r0, r5, #0 + ldr r3, [sp, #0x38] + add r0, #0x60 + add r1, r6, #0 + bl MOD73_021D95CC + ldr r3, [sp, #0x24] + str r4, [r5, #0x14] + str r3, [r5, #0x18] + str r6, [r5, #0x20] + str r6, [r5, #0x24] + ldr r0, [sp, #0x3c] + str r6, [r5, #0x28] + str r0, [r5, #0xc] + ldr r0, [sp, #0x54] + ldr r1, [sp, #0x44] + str r0, [r5, #0x10] + mov r0, #0 + str r0, [sp] + add r0, sp, #0x58 + ldrb r0, [r0] + add r2, r4, #0 + str r0, [sp, #4] + ldr r0, [sp, #0x50] + str r0, [sp, #8] + ldr r0, [sp, #0x4c] + bl MOD73_021D9540 + str r0, [r5, #0x78] + cmp r0, #0 + bne _021DAD14 + bl ErrorHandling +_021DAD14: + ldr r0, [r5, #0xc] + cmp r0, #0 + beq _021DAD26 + add r1, r5, #0 + ldr r0, [r5, #0x78] + add r1, #0x20 + mov r2, #2 + bl FUN_02020074 +_021DAD26: + ldr r0, [r5, #0x78] + ldr r1, [sp, #0x48] + bl FUN_02020130 + ldr r0, [r5, #0x78] + mov r1, #1 + bl FUN_020200BC + ldr r0, [r5, #0x78] + mov r1, #2 + bl FUN_02020238 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD73_021DAC9C + + thumb_func_start MOD73_021DAD44 +MOD73_021DAD44: ; 0x021DAD44 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #1 + bne _021DAD72 + mov r0, #8 + str r0, [sp] + add r0, r4, #0 + ldr r1, [r4, #0x60] + add r0, #0x60 + mov r2, #0xcd + mov r3, #0 + bl MOD73_021D95CC + mov r0, #0 + str r0, [r4] + mov r0, #1 + str r0, [r4, #0xc] + ldr r0, [r4, #0x78] + mov r1, #2 + bl FUN_020200EC +_021DAD72: + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD73_021DAD44 + + thumb_func_start MOD73_021DAD78 +MOD73_021DAD78: ; 0x021DAD78 + ldr r3, _021DAD80 ; =Call_FillMemWithValue + mov r1, #0 + mov r2, #0x80 + bx r3 + .align 2, 0 +_021DAD80: .word Call_FillMemWithValue + thumb_func_end MOD73_021DAD78 + + thumb_func_start MOD73_021DAD84 +MOD73_021DAD84: ; 0x021DAD84 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x7c] + cmp r0, #0 + beq _021DAD92 + bl ErrorHandling +_021DAD92: + add r0, r4, #0 + mov r1, #0 + mov r2, #0x80 + bl Call_FillMemWithValue + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021DAD84 + + thumb_func_start MOD73_021DADA0 +MOD73_021DADA0: ; 0x021DADA0 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r6, r0, #0 + ldr r0, [r6, #0x7c] + add r7, r1, #0 + str r2, [sp, #0x18] + cmp r0, #0 + beq _021DADB4 + bl ErrorHandling +_021DADB4: + str r7, [r6] + mov r0, #2 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x1f + str r0, [sp, #8] + mov r0, #0x1e + str r0, [sp, #0xc] + ldr r0, _021DAE20 ; =0x00001B58 + add r1, r6, #4 + str r0, [sp, #0x10] + ldr r0, [sp, #0x18] + mov r2, #0x7a + str r0, [sp, #0x14] + add r0, r7, #0 + mov r3, #0x21 + bl MOD73_021D9340 + mov r4, #0 + add r5, r6, #0 +_021DADDE: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + ldr r0, [sp, #0x18] + mov r2, #2 + mov r3, #6 + str r0, [sp, #8] + add r0, r7, #0 + add r1, r6, #4 + lsl r2, r2, #0x12 + lsl r3, r3, #0x10 + bl MOD73_021D9540 + str r0, [r5, #0x3c] + cmp r4, #2 + blt _021DAE06 + ldr r0, [r5, #0x3c] + mov r1, #1 + bl FUN_02020130 +_021DAE06: + ldr r0, [r5, #0x3c] + mov r1, #0 + bl FUN_020200A0 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #4 + blt _021DADDE + mov r0, #1 + str r0, [r6, #0x7c] + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_021DAE20: .word 0x00001B58 + thumb_func_end MOD73_021DADA0 + + thumb_func_start MOD73_021DAE24 +MOD73_021DAE24: ; 0x021DAE24 + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r0, [r6, #0x7c] + cmp r0, #1 + beq _021DAE32 + bl ErrorHandling +_021DAE32: + mov r4, #0 + add r5, r6, #0 +_021DAE36: + ldr r0, [r5, #0x3c] + bl FUN_0201FFC8 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #4 + blt _021DAE36 + ldr r0, [r6] + add r1, r6, #4 + bl MOD73_021D94F4 + mov r0, #0 + str r0, [r6, #0x7c] + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD73_021DAE24 + + thumb_func_start MOD73_021DAE54 +MOD73_021DAE54: ; 0x021DAE54 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 + add r5, #0x3c +_021DAE5C: + cmp r4, #2 + beq _021DAE64 + cmp r4, #0 + bne _021DAE6C +_021DAE64: + add r0, r5, #0 + bl MOD73_021DAEFC + b _021DAE72 +_021DAE6C: + add r0, r5, #0 + bl MOD73_021DAF34 +_021DAE72: + add r4, r4, #1 + add r5, #0x10 + cmp r4, #4 + blt _021DAE5C + pop {r3, r4, r5, pc} + thumb_func_end MOD73_021DAE54 + + thumb_func_start MOD73_021DAE7C +MOD73_021DAE7C: ; 0x021DAE7C + push {r3, r4, r5, lr} + add r5, r1, #0 + add r4, r0, #0 + cmp r5, #4 + blt _021DAE8A + bl ErrorHandling +_021DAE8A: + cmp r5, #2 + beq _021DAE92 + cmp r5, #0 + bne _021DAE9E +_021DAE92: + add r4, #0x3c + lsl r0, r5, #4 + add r0, r4, r0 + bl MOD73_021DAEEC + pop {r3, r4, r5, pc} +_021DAE9E: + add r4, #0x3c + lsl r0, r5, #4 + add r0, r4, r0 + bl MOD73_021DAF28 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD73_021DAE7C + + thumb_func_start MOD73_021DAEAC +MOD73_021DAEAC: ; 0x021DAEAC + push {r3, r4, r5, lr} + add r5, r1, #0 + add r4, r0, #0 + cmp r5, #4 + blt _021DAEBA + bl ErrorHandling +_021DAEBA: + lsl r0, r5, #4 + mov r1, #0 + add r0, r4, r0 + str r1, [r0, #0x48] + ldr r0, [r0, #0x3c] + bl FUN_020200A0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD73_021DAEAC + + thumb_func_start MOD73_021DAECC +MOD73_021DAECC: ; 0x021DAECC + push {r3, r4, r5, lr} + add r5, r1, #0 + add r4, r0, #0 + cmp r5, #4 + blt _021DAEDA + bl ErrorHandling +_021DAEDA: + lsl r0, r5, #4 + add r0, r4, r0 + ldr r0, [r0, #0x48] + cmp r0, #0 + bne _021DAEE8 + mov r0, #1 + pop {r3, r4, r5, pc} +_021DAEE8: + mov r0, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD73_021DAECC + + thumb_func_start MOD73_021DAEEC +MOD73_021DAEEC: ; 0x021DAEEC + mov r1, #0 + str r1, [r0, #4] + mov r1, #3 + str r1, [r0, #8] + mov r1, #1 + str r1, [r0, #0xc] + bx lr + .align 2, 0 + thumb_func_end MOD73_021DAEEC + + thumb_func_start MOD73_021DAEFC +MOD73_021DAEFC: ; 0x021DAEFC + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #0xc] + cmp r1, #0 + beq _021DAF24 + bl MOD73_021DAF34 + ldr r0, [r4, #4] + cmp r0, #0 + bne _021DAF24 + ldr r0, [r4, #8] + sub r0, r0, #1 + str r0, [r4, #8] + cmp r0, #0 + bgt _021DAF24 + mov r1, #0 + str r1, [r4, #0xc] + ldr r0, [r4] + bl FUN_020200A0 +_021DAF24: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021DAEFC + + thumb_func_start MOD73_021DAF28 +MOD73_021DAF28: ; 0x021DAF28 + mov r1, #0 + str r1, [r0, #4] + mov r1, #1 + str r1, [r0, #0xc] + bx lr + .align 2, 0 + thumb_func_end MOD73_021DAF28 + + thumb_func_start MOD73_021DAF34 +MOD73_021DAF34: ; 0x021DAF34 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _021DAF6C + ldr r0, [r4, #4] + cmp r0, #0 + bne _021DAF4E + ldr r0, [r4] + mov r1, #1 + bl FUN_020200A0 + b _021DAF66 +_021DAF4E: + cmp r0, #8 + bne _021DAF5C + ldr r0, [r4] + mov r1, #0 + bl FUN_020200A0 + b _021DAF66 +_021DAF5C: + cmp r0, #0x10 + bne _021DAF66 + mov r0, #0 + str r0, [r4, #4] + pop {r4, pc} +_021DAF66: + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021DAF6C: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021DAF34 + + thumb_func_start MOD73_021DAF70 +MOD73_021DAF70: ; 0x021DAF70 + push {r3, r4, r5, lr} + ldr r2, _021DAF84 ; =0x0000090C + add r4, r1, #0 + mov r1, #0 + add r5, r0, #0 + bl Call_FillMemWithValue + str r4, [r5, #4] + pop {r3, r4, r5, pc} + nop +_021DAF84: .word 0x0000090C + thumb_func_end MOD73_021DAF70 + + thumb_func_start MOD73_021DAF88 +MOD73_021DAF88: ; 0x021DAF88 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021DAF96 + bl ErrorHandling +_021DAF96: + ldr r2, _021DAFA4 ; =0x0000090C + add r0, r4, #0 + mov r1, #0 + bl Call_FillMemWithValue + pop {r4, pc} + nop +_021DAFA4: .word 0x0000090C + thumb_func_end MOD73_021DAF88 + + thumb_func_start MOD73_021DAFA8 +MOD73_021DAFA8: ; 0x021DAFA8 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r6, r2, #0 + str r0, [sp, #0xc] + str r1, [sp, #0x10] + add r7, r3, #0 + mov r4, #0 + add r5, r0, #0 + add r6, #0x38 +_021DAFBA: + mov r0, #0 + str r0, [sp] + mov r0, #5 + str r0, [sp, #4] + mov r2, #0 + ldr r0, [sp, #0x10] + add r1, r6, #0 + add r3, r2, #0 + str r7, [sp, #8] + bl MOD73_021D9540 + mov r1, #0 + str r0, [r5, #0x50] + bl FUN_020200A0 + add r4, r4, #1 + add r5, #0x48 + cmp r4, #0x20 + blt _021DAFBA + ldr r0, [sp, #0xc] + mov r1, #1 + str r1, [r0] + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021DAFA8 + + thumb_func_start MOD73_021DAFEC +MOD73_021DAFEC: ; 0x021DAFEC + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_021DAFF4: + ldr r0, [r5, #0x50] + bl FUN_0201FFC8 + add r4, r4, #1 + add r5, #0x48 + cmp r4, #0x20 + blt _021DAFF4 + mov r0, #0 + str r0, [r6] + pop {r4, r5, r6, pc} + thumb_func_end MOD73_021DAFEC + + thumb_func_start MOD73_021DB008 +MOD73_021DB008: ; 0x021DB008 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 + add r5, #0xc +_021DB010: + add r0, r5, #0 + bl MOD73_021DB14C + add r4, r4, #1 + add r5, #0x48 + cmp r4, #0x20 + blt _021DB010 + pop {r3, r4, r5, pc} + thumb_func_end MOD73_021DB008 + + thumb_func_start MOD73_021DB020 +MOD73_021DB020: ; 0x021DB020 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r4, r0, #0 + add r0, r1, #0 + str r1, [sp, #0x10] + add r1, r2, #0 + sub r0, #0x80 + sub r1, #0x60 + str r2, [sp, #0x14] + bl FX_Atan2 + asr r0, r0, #4 + lsl r1, r0, #1 + add r0, r1, #1 + ldr r7, _021DB124 ; =0x020FFA38 + lsl r0, r0, #1 + ldrsh r3, [r7, r0] + asr r6, r3, #0x1f + lsr r2, r3, #0x10 + lsl r0, r6, #0x10 + orr r0, r2 + mov r2, #2 + lsl r5, r3, #0x10 + lsl r2, r2, #0xa + add r5, r5, r2 + ldr r2, _021DB128 ; =0x00000000 + adc r0, r2 + lsr r2, r5, #0xc + lsl r0, r0, #0x14 + str r2, [sp, #0x18] + orr r2, r0 + lsl r0, r1, #1 + str r2, [sp, #0x18] + ldrsh r2, [r7, r0] + asr r0, r2, #0x1f + mov ip, r0 + lsr r1, r2, #0x10 + lsl r0, r0, #0x10 + orr r0, r1 + mov r1, #2 + lsl r5, r2, #0x10 + lsl r1, r1, #0xa + add r1, r5, r1 + ldr r5, _021DB128 ; =0x00000000 + adc r0, r5 + lsr r7, r1, #0xc + lsl r0, r0, #0x14 + orr r7, r0 + lsr r0, r3, #0x14 + lsl r1, r6, #0xc + orr r1, r0 + mov r0, #2 + lsl r3, r3, #0xc + lsl r0, r0, #0xa + add r0, r3, r0 + ldr r3, _021DB128 ; =0x00000000 + adc r1, r3 + lsr r6, r0, #0xc + lsl r1, r1, #0x14 + orr r6, r1 + mov r1, ip + lsr r0, r2, #0x14 + lsl r1, r1, #0xc + orr r1, r0 + mov r0, #2 + lsl r2, r2, #0xc + lsl r0, r0, #0xa + add r2, r2, r0 + ldr r0, _021DB128 ; =0x00000000 + adc r1, r0 + lsl r0, r1, #0x14 + lsr r5, r2, #0xc + orr r5, r0 + add r0, r4, #0 + bl MOD73_021DB12C + cmp r0, #0 + beq _021DB0E0 + mov r2, #2 + ldr r1, [sp, #0x18] + lsl r2, r2, #0x12 + add r1, r1, r2 + str r1, [sp] + mov r1, #6 + lsl r1, r1, #0x10 + add r1, r7, r1 + str r1, [sp, #4] + str r6, [sp, #8] + str r5, [sp, #0xc] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x14] + ldr r1, [r4, #8] + lsl r2, r2, #0xc + lsl r3, r3, #0xc + bl MOD73_021DB1A8 +_021DB0E0: + add r0, r4, #0 + bl MOD73_021DB12C + cmp r0, #0 + beq _021DB112 + mov r2, #2 + ldr r1, [sp, #0x18] + lsl r2, r2, #0x12 + sub r1, r2, r1 + str r1, [sp] + mov r1, #6 + lsl r1, r1, #0x10 + sub r1, r1, r7 + str r1, [sp, #4] + neg r1, r6 + str r1, [sp, #8] + neg r1, r5 + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x14] + str r1, [sp, #0xc] + ldr r1, [r4, #8] + lsl r2, r2, #0xc + lsl r3, r3, #0xc + bl MOD73_021DB1A8 +_021DB112: + ldr r0, [r4, #8] + ldr r1, [r4, #4] + add r0, r0, #1 + bl _s32_div_f + str r1, [r4, #8] + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_021DB124: .word 0x020FFA38 +_021DB128: .word 0x00000000 + thumb_func_end MOD73_021DB020 + + thumb_func_start MOD73_021DB12C +MOD73_021DB12C: ; 0x021DB12C + mov r2, #0 + add r3, r0, #0 +_021DB130: + ldr r1, [r3, #0xc] + cmp r1, #0 + bne _021DB140 + mov r1, #0x48 + add r0, #0xc + mul r1, r2 + add r0, r0, r1 + bx lr +_021DB140: + add r2, r2, #1 + add r3, #0x48 + cmp r2, #0x20 + blt _021DB130 + mov r0, #0 + bx lr + thumb_func_end MOD73_021DB12C + + thumb_func_start MOD73_021DB14C +MOD73_021DB14C: ; 0x021DB14C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021DB18C + ldr r0, [r4, #4] + cmp r0, #0 + bne _021DB180 + add r0, r4, #0 + add r0, #0x14 + bl MOD73_021D962C + str r0, [r4, #4] + add r0, r4, #0 + add r0, #0x2c + bl MOD73_021D962C + ldr r0, [r4, #0x14] + add r1, r4, #0 + str r0, [r4, #8] + ldr r0, [r4, #0x2c] + add r1, #8 + str r0, [r4, #0xc] + ldr r0, [r4, #0x44] + bl FUN_02020044 +_021DB180: + ldr r0, [r4, #4] + cmp r0, #1 + bne _021DB18C + add r0, r4, #0 + bl MOD73_021DB190 +_021DB18C: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021DB14C + + thumb_func_start MOD73_021DB190 +MOD73_021DB190: ; 0x021DB190 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021DB1A6 + ldr r0, [r4, #0x44] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0 + str r0, [r4] +_021DB1A6: + pop {r4, pc} + thumb_func_end MOD73_021DB190 + + thumb_func_start MOD73_021DB1A8 +MOD73_021DB1A8: ; 0x021DB1A8 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + mov r0, #0x10 + add r4, r2, #0 + add r6, r3, #0 + str r0, [sp] + add r0, r5, #0 + add r7, r1, #0 + ldr r2, [sp, #0x18] + ldr r3, [sp, #0x20] + add r0, #0x14 + add r1, r4, #0 + bl MOD73_021D95CC + mov r0, #0x10 + str r0, [sp] + add r0, r5, #0 + ldr r2, [sp, #0x1c] + ldr r3, [sp, #0x24] + add r0, #0x2c + add r1, r6, #0 + bl MOD73_021D95CC + str r4, [r5, #8] + str r6, [r5, #0xc] + ldr r0, [r5, #0x44] + mov r1, #1 + bl FUN_020200A0 + ldr r0, [r5, #0x44] + add r1, r7, #0 + bl FUN_02020130 + ldr r0, [r5, #0x44] + bl FUN_02020198 + ldr r0, [r5, #0x44] + mov r1, #1 + bl FUN_020200BC + ldr r0, [r5, #0x44] + mov r1, #2 + bl FUN_02020238 + mov r0, #1 + str r0, [r5] + mov r0, #0 + str r0, [r5, #4] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021DB1A8 + + thumb_func_start MOD73_021DB20C +MOD73_021DB20C: ; 0x021DB20C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r0, #2 + add r4, r1, #0 + str r0, [sp] + ldr r0, [sp, #0x28] + mov r1, #1 + add r6, r2, #0 + add r7, r3, #0 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02088320 + str r0, [r5] + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + lsl r2, r4, #0x10 + lsl r3, r6, #0x10 + ldr r0, [r5] + add r1, r7, #0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x10 + bl FUN_02088490 + str r0, [r5, #4] + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021DB20C + + thumb_func_start MOD73_021DB24C +MOD73_021DB24C: ; 0x021DB24C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + ldr r1, [r4, #4] + bl FUN_02088694 + ldr r0, [r4] + bl FUN_02088360 + pop {r4, pc} + thumb_func_end MOD73_021DB24C + + thumb_func_start MOD73_021DB260 +MOD73_021DB260: ; 0x021DB260 + ldr r3, _021DB268 ; =FUN_02088484 + ldr r0, [r0] + bx r3 + nop +_021DB268: .word FUN_02088484 + thumb_func_end MOD73_021DB260 + + thumb_func_start MOD73_021DB26C +MOD73_021DB26C: ; 0x021DB26C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, r1, #0 + add r4, r2, #0 + bl FUN_02014590 + str r0, [r5] + str r4, [r5, #4] + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD73_021DB26C + + thumb_func_start MOD73_021DB280 +MOD73_021DB280: ; 0x021DB280 + ldr r3, _021DB288 ; =FUN_020145A8 + ldr r0, [r0] + bx r3 + nop +_021DB288: .word FUN_020145A8 + thumb_func_end MOD73_021DB280 + + thumb_func_start MOD73_021DB28C +MOD73_021DB28C: ; 0x021DB28C + push {lr} + sub sp, #0x14 + ldr r1, [r0, #4] + mov r2, #0x18 + str r1, [sp] + mov r1, #2 + str r1, [sp, #4] + mov r1, #0xaf + str r1, [sp, #8] + mov r1, #5 + str r1, [sp, #0xc] + add r1, sp, #0 + strb r2, [r1, #0x10] + mov r2, #8 + strb r2, [r1, #0x11] + ldr r0, [r0] + add r1, sp, #0 + bl FUN_020145C8 + add sp, #0x14 + pop {pc} + .align 2, 0 + thumb_func_end MOD73_021DB28C + + thumb_func_start MOD73_021DB2B8 +MOD73_021DB2B8: ; 0x021DB2B8 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5] + bl FUN_0201466C + add r4, r0, #0 + beq _021DB2CC + ldr r0, [r5] + bl FUN_020146C4 +_021DB2CC: + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD73_021DB2B8 + + thumb_func_start MOD73_021DB2D0 +MOD73_021DB2D0: ; 0x021DB2D0 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r4, r1, #0 + add r1, r3, #0 + ldr r3, [sp, #0x1c] + add r5, r0, #0 + ldr r6, [sp, #0x18] + add r0, r2, #0 + sub r4, r4, r3 + sub r1, r1, r3 + mov r3, #0 + str r3, [sp] + sub r2, r5, r6 + sub r0, r0, r6 + add r3, r4, #0 + bl FUN_0201BBD0 + mov r1, #0xa0 + mul r1, r0 + add r0, r1, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + thumb_func_end MOD73_021DB2D0 + + thumb_func_start MOD73_021DB2FC +MOD73_021DB2FC: ; 0x021DB2FC + add r3, r0, #0 + mov r2, #0x18 + mov r1, #0 +_021DB302: + strb r1, [r3] + add r3, r3, #1 + sub r2, r2, #1 + bne _021DB302 + mov r2, #0x80 + str r2, [r0] + mov r1, #0x60 + str r1, [r0, #4] + str r2, [r0, #8] + str r1, [r0, #0xc] + bx lr + thumb_func_end MOD73_021DB2FC + + thumb_func_start MOD73_021DB318 +MOD73_021DB318: ; 0x021DB318 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + ldr r0, _021DB364 ; =0x021C48F8 + ldrh r1, [r0, #0x22] + cmp r1, #0 + beq _021DB33C + ldrh r1, [r0, #0x1c] + str r1, [r4] + ldrh r0, [r0, #0x1e] + str r0, [r4, #4] + ldr r0, [r4, #0x14] + cmp r0, #0 + bne _021DB33C + ldr r0, [r4] + str r0, [r4, #8] + ldr r0, [r4, #4] + str r0, [r4, #0xc] +_021DB33C: + mov r0, #0x80 + str r0, [sp] + mov r0, #0x60 + str r0, [sp, #4] + ldr r0, [r4] + ldr r1, [r4, #4] + ldr r2, [r4, #8] + ldr r3, [r4, #0xc] + bl MOD73_021DB2D0 + str r0, [r4, #0x10] + ldr r0, [r4] + str r0, [r4, #8] + ldr r0, [r4, #4] + str r0, [r4, #0xc] + ldr r0, _021DB364 ; =0x021C48F8 + ldrh r0, [r0, #0x22] + str r0, [r4, #0x14] + add sp, #8 + pop {r4, pc} + .align 2, 0 +_021DB364: .word 0x021C48F8 + thumb_func_end MOD73_021DB318 + + thumb_func_start MOD73_021DB368 +MOD73_021DB368: ; 0x021DB368 + ldr r2, [r1] + strb r2, [r0] + ldr r2, [r1, #4] + strb r2, [r0, #1] + ldr r1, [r1, #0x10] + cmp r1, #0 + bge _021DB380 + neg r1, r1 + strh r1, [r0, #2] + mov r1, #1 + strb r1, [r0, #4] + bx lr +_021DB380: + strh r1, [r0, #2] + mov r1, #0 + strb r1, [r0, #4] + bx lr + thumb_func_end MOD73_021DB368 + + thumb_func_start MOD73_021DB388 +MOD73_021DB388: ; 0x021DB388 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, r1, #0 + add r1, r2, #0 + mov r2, #0x80 + mov r3, #0x60 + bl FUN_0201CBEC + add r4, r0, #0 + ldr r0, [r5, #0xc] + cmp r0, #0 + bge _021DB3A2 + neg r0, r0 +_021DB3A2: + lsl r0, r0, #0x10 + ldr r1, [r5] + lsr r0, r0, #0x10 + bl MOD73_021DB644 + asr r2, r0, #0x1f + lsl r3, r2, #0x12 + lsr r1, r0, #0xe + orr r3, r1 + mov r1, #2 + lsl r2, r0, #0x12 + mov r0, #0 + lsl r1, r1, #0xa + add r2, r2, r1 + adc r3, r0 + lsl r1, r3, #0x14 + lsr r2, r2, #0xc + orr r2, r1 + asr r1, r2, #0xc + cmp r4, #0x10 + bhs _021DB3D0 + mov r0, #1 + pop {r3, r4, r5, pc} +_021DB3D0: + add r1, #8 + cmp r4, r1 + bls _021DB3D8 + mov r0, #2 +_021DB3D8: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD73_021DB388 + + thumb_func_start MOD73_021DB3DC +MOD73_021DB3DC: ; 0x021DB3DC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r0, #1 + str r0, [r5, #0x10] + mov r0, #0 + add r4, r1, #0 + str r2, [sp] + str r3, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + add r0, r2, #0 + beq _021DB468 +_021DB3F6: + ldr r0, [sp, #0xc] + add r1, r4, r0 + mov r0, #0x13 + lsl r0, r0, #4 + ldrb r1, [r1, r0] + mov r0, #0x1c + add r6, r1, #0 + mul r6, r0 + add r1, r4, r6 + add r2, r4, r6 + add r1, #0x90 + add r2, #0x91 + ldrb r1, [r1] + ldrb r2, [r2] + add r0, r5, #0 + bl MOD73_021DB388 + cmp r0, #0 + beq _021DB426 + cmp r0, #1 + beq _021DB42E + cmp r0, #2 + beq _021DB43E + b _021DB444 +_021DB426: + add r0, r4, r6 + add r0, #0x92 + ldrh r7, [r0] + b _021DB444 +_021DB42E: + add r0, r4, r6 + add r0, #0x92 + ldrh r0, [r0] + lsl r0, r0, #0xf + lsr r7, r0, #0x10 + mov r0, #0 + str r0, [r5, #0x10] + b _021DB444 +_021DB43E: + mov r7, #0 + add r0, r7, #0 + str r0, [r5, #0x10] +_021DB444: + add r0, r4, r6 + add r0, #0x94 + ldrb r0, [r0] + cmp r0, #0 + bne _021DB456 + ldr r0, [sp, #8] + add r0, r0, r7 + str r0, [sp, #8] + b _021DB45C +_021DB456: + ldr r0, [sp, #8] + sub r0, r0, r7 + str r0, [sp, #8] +_021DB45C: + ldr r0, [sp, #0xc] + add r1, r0, #1 + ldr r0, [sp] + str r1, [sp, #0xc] + cmp r1, r0 + blo _021DB3F6 +_021DB468: + ldr r0, [sp, #8] + ldr r1, [sp] + bl _s32_div_f + add r4, r0, #0 + ldr r1, [r5] + ldr r0, _021DB550 ; =0x021DBF5C + ldrb r0, [r0, r1] + mov r1, #0x33 + lsl r1, r1, #0xe + lsl r0, r0, #0xc + bl FX_Div + add r2, r0, #0 + lsl r0, r4, #0xc + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + mov r4, #2 + mov r2, #0 + lsl r4, r4, #0xa + add r4, r0, r4 + adc r1, r2 + lsl r0, r1, #0x14 + lsr r1, r4, #0xc + orr r1, r0 + ldr r3, [r5, #0xc] + asr r0, r1, #0xc + add r0, r3, r0 + str r0, [r5, #0xc] + cmp r0, #0 + ble _021DB4BC + ldr r1, [r5] + lsl r3, r1, #1 + ldr r1, _021DB554 ; =0x021DBF68 + ldrh r1, [r1, r3] + sub r0, r0, r1 + str r0, [r5, #0xc] + bpl _021DB4D0 + str r2, [r5, #0xc] + b _021DB4D0 +_021DB4BC: + bge _021DB4D0 + ldr r1, [r5] + lsl r3, r1, #1 + ldr r1, _021DB554 ; =0x021DBF68 + ldrh r1, [r1, r3] + add r0, r0, r1 + str r0, [r5, #0xc] + cmp r0, #0 + ble _021DB4D0 + str r2, [r5, #0xc] +_021DB4D0: + ldr r1, [r5, #0xc] + ldr r0, _021DB558 ; =0x00000E38 + cmp r1, r0 + ble _021DB4DC + str r0, [r5, #0xc] + b _021DB4E4 +_021DB4DC: + ldr r0, _021DB55C ; =0xFFFFF1C8 + cmp r1, r0 + bge _021DB4E4 + str r0, [r5, #0xc] +_021DB4E4: + ldr r0, [r5, #0xc] + mov r1, #0xa0 + ldr r4, [r5, #8] + bl _s32_div_f + add r1, r0, #0 + mov r0, #0x44 + bl FUN_0201BC84 + ldr r1, [r5, #8] + add r0, r1, r0 + str r0, [r5, #8] + ldr r0, [sp, #4] + cmp r0, #0 + bne _021DB508 + ldr r0, [r5, #0xc] + cmp r0, #0 + bge _021DB514 +_021DB508: + ldr r0, [sp, #4] + cmp r0, #1 + bne _021DB544 + ldr r0, [r5, #0xc] + cmp r0, #0 + bge _021DB544 +_021DB514: + ldr r0, [sp, #4] + cmp r0, #0 + bne _021DB530 + lsl r0, r4, #0x10 + lsr r1, r0, #0x10 + ldr r0, [r5, #8] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r1, r0 + ble _021DB544 + ldr r0, [r5, #4] + add r0, r0, #1 + str r0, [r5, #4] + b _021DB544 +_021DB530: + lsl r0, r4, #0x10 + lsr r1, r0, #0x10 + ldr r0, [r5, #8] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r1, r0 + bge _021DB544 + ldr r0, [r5, #4] + add r0, r0, #1 + str r0, [r5, #4] +_021DB544: + ldr r0, [r5, #8] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_021DB550: .word 0x021DBF5C +_021DB554: .word 0x021DBF68 +_021DB558: .word 0x00000E38 +_021DB55C: .word 0xFFFFF1C8 + thumb_func_end MOD73_021DB3DC + + thumb_func_start MOD73_021DB560 +MOD73_021DB560: ; 0x021DB560 + ldr r0, [r0, #8] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr + thumb_func_end MOD73_021DB560 + + thumb_func_start MOD73_021DB568 +MOD73_021DB568: ; 0x021DB568 + ldr r0, [r0, #4] + bx lr + thumb_func_end MOD73_021DB568 + + thumb_func_start MOD73_021DB56C +MOD73_021DB56C: ; 0x021DB56C + push {r3, r4, r5, lr} + add r5, r1, #0 + add r4, r0, #0 + cmp r5, #3 + blt _021DB57A + bl ErrorHandling +_021DB57A: + str r5, [r4] + mov r0, #0 + str r0, [r4, #4] + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD73_021DB56C + + thumb_func_start MOD73_021DB584 +MOD73_021DB584: ; 0x021DB584 + ldr r0, [r0, #0xc] + bx lr + thumb_func_end MOD73_021DB584 + + thumb_func_start MOD73_021DB588 +MOD73_021DB588: ; 0x021DB588 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r0, #0 + str r0, [r5, #0x18] + add r4, r1, #0 + add r6, r2, #0 + str r0, [r5, #0x10] + add r0, r4, #0 + add r1, r6, #0 + bl MOD73_021DB60C + cmp r0, #0 + beq _021DB5C6 + ldr r0, [r5, #0xc] + add r0, r0, #1 + str r0, [r5, #0xc] + cmp r0, #0x1e + blo _021DB5C0 + ldr r1, [r5, #4] + ldr r0, _021DB608 ; =0x0000270F + cmp r1, r0 + bhs _021DB5B8 + add r0, r1, #1 + str r0, [r5, #4] +_021DB5B8: + mov r0, #1 + str r0, [r5, #0x18] + mov r0, #0 + str r0, [r5, #0xc] +_021DB5C0: + mov r0, #0 + str r0, [r5, #0x14] + pop {r4, r5, r6, pc} +_021DB5C6: + add r0, r4, #0 + add r1, r6, #0 + bl MOD73_021DB62C + cmp r0, #0 + beq _021DB602 + ldr r0, [r5, #8] + add r0, r0, #1 + str r0, [r5, #8] + cmp r0, #0x5a + blo _021DB606 + mov r0, #0 + str r0, [r5, #8] + ldr r0, [r5, #0x14] + cmp r0, #0 + bne _021DB5F0 + mov r0, #2 + str r0, [r5, #0x10] + mov r0, #1 + str r0, [r5, #0x14] + pop {r4, r5, r6, pc} +_021DB5F0: + mov r0, #1 + str r0, [r5, #0x10] + ldr r1, [r5] + ldr r0, _021DB608 ; =0x0000270F + cmp r1, r0 + bhs _021DB606 + add r0, r1, #1 + str r0, [r5] + pop {r4, r5, r6, pc} +_021DB602: + mov r0, #0 + str r0, [r5, #0x14] +_021DB606: + pop {r4, r5, r6, pc} + .align 2, 0 +_021DB608: .word 0x0000270F + thumb_func_end MOD73_021DB588 + + thumb_func_start MOD73_021DB60C +MOD73_021DB60C: ; 0x021DB60C + cmp r1, #2 + bne _021DB614 + mov r0, #0 + bx lr +_021DB614: + cmp r0, #0 + bge _021DB61A + neg r0, r0 +_021DB61A: + ldr r1, _021DB628 ; =0x00000E38 + cmp r0, r1 + blt _021DB624 + mov r0, #1 + bx lr +_021DB624: + mov r0, #0 + bx lr + .align 2, 0 +_021DB628: .word 0x00000E38 + thumb_func_end MOD73_021DB60C + + thumb_func_start MOD73_021DB62C +MOD73_021DB62C: ; 0x021DB62C + cmp r0, #0 + bge _021DB632 + neg r0, r0 +_021DB632: + ldr r1, _021DB640 ; =0x0000038E + cmp r0, r1 + bgt _021DB63C + mov r0, #1 + bx lr +_021DB63C: + mov r0, #0 + bx lr + .align 2, 0 +_021DB640: .word 0x0000038E + thumb_func_end MOD73_021DB62C + + thumb_func_start MOD73_021DB644 +MOD73_021DB644: ; 0x021DB644 + push {r3, lr} + ldr r1, _021DB678 ; =0x0000038E + sub r0, r0, r1 + bpl _021DB64E + mov r0, #0 +_021DB64E: + lsl r2, r0, #0xc + asr r1, r2, #0x1f + lsr r0, r2, #0x16 + lsl r3, r1, #0xa + orr r3, r0 + mov r0, #2 + lsl r2, r2, #0xa + mov r1, #0 + lsl r0, r0, #0xa + add r0, r2, r0 + adc r3, r1 + lsl r1, r3, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + ldr r1, _021DB67C ; =0x00AAA000 + bl FX_Div + mov r1, #1 + lsl r1, r1, #0xc + add r0, r0, r1 + pop {r3, pc} + .align 2, 0 +_021DB678: .word 0x0000038E +_021DB67C: .word 0x00AAA000 + thumb_func_end MOD73_021DB644 + + thumb_func_start MOD73_021DB680 +MOD73_021DB680: ; 0x021DB680 + add r3, r0, #0 + mov r2, #0x10 + mov r1, #0 +_021DB686: + strb r1, [r3] + add r3, r3, #1 + sub r2, r2, #1 + bne _021DB686 + mov r1, #2 + str r1, [r0, #8] + sub r1, r1, #3 + str r1, [r0, #4] + bx lr + thumb_func_end MOD73_021DB680 + + thumb_func_start MOD73_021DB698 +MOD73_021DB698: ; 0x021DB698 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + mov r1, #0 + str r1, [r5, #0xc] + add r1, r2, #0 + add r6, r3, #0 + bl MOD73_021DB718 + cmp r0, #1 + beq _021DB710 + cmp r6, #1 + beq _021DB710 + ldr r0, [r5, #4] + cmp r0, #0 + bge _021DB70A + bl FUN_0201BA60 + mov r1, #5 + add r6, r0, #0 + bl _u32_div_f + ldr r0, [r5, #8] + cmp r1, r0 + bhi _021DB6D0 + mov r1, #1 + str r1, [r5, #0xc] + b _021DB6D6 +_021DB6D0: + mov r0, #1 + mov r1, #0 + str r0, [r5, #0xc] +_021DB6D6: + ldr r0, [r5] + cmp r1, r0 + bne _021DB6F4 + cmp r0, #1 + ldr r0, [r5, #8] + bne _021DB6EA + sub r0, r0, #1 + bmi _021DB6FA + str r0, [r5, #8] + b _021DB6FA +_021DB6EA: + add r0, r0, #1 + cmp r0, #5 + bge _021DB6FA + str r0, [r5, #8] + b _021DB6FA +_021DB6F4: + str r1, [r5] + mov r0, #2 + str r0, [r5, #8] +_021DB6FA: + add r0, r6, #0 + mov r1, #0x3c + bl _u32_div_f + ldr r0, _021DB714 ; =0x021DBFB0 + ldrb r0, [r0, r4] + add r0, r0, r1 + str r0, [r5, #4] +_021DB70A: + ldr r0, [r5, #4] + sub r0, r0, #1 + str r0, [r5, #4] +_021DB710: + pop {r4, r5, r6, pc} + nop +_021DB714: .word 0x021DBFB0 + thumb_func_end MOD73_021DB698 + + thumb_func_start MOD73_021DB718 +MOD73_021DB718: ; 0x021DB718 + cmp r1, #0 + bge _021DB722 + ldr r2, [r0] + cmp r2, #0 + beq _021DB72C +_021DB722: + cmp r1, #0 + ble _021DB730 + ldr r0, [r0] + cmp r0, #1 + bne _021DB730 +_021DB72C: + mov r0, #1 + bx lr +_021DB730: + mov r0, #0 + bx lr + thumb_func_end MOD73_021DB718 + + thumb_func_start MOD73_021DB734 +MOD73_021DB734: ; 0x021DB734 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + mov r7, #0x1f + add r0, r1, #0 + str r1, [sp] + add r6, r7, #0 + bl MOD73_021DB568 + add r4, r0, #0 + mov r0, #0x96 + ldr r1, [r5] + lsl r0, r0, #2 + cmp r1, r0 + beq _021DB75A + ldr r1, [r5, #8] + ldr r0, _021DB7B8 ; =0x021DBF60 + ldrb r0, [r0, r1] + cmp r4, r0 + blt _021DB774 +_021DB75A: + ldr r0, [r5, #8] + mov r4, #0 + add r0, r0, #1 + str r0, [r5, #8] + str r4, [r5] + ldr r1, [r5, #8] + cmp r1, #3 + blt _021DB76E + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DB76E: + ldr r0, [sp] + bl MOD73_021DB56C +_021DB774: + mov r0, #0x96 + ldr r1, [r5] + lsl r0, r0, #2 + sub r1, r0, r1 + cmp r1, #0x3c + bgt _021DB78C + mov r0, #0x1f + mul r0, r1 + mov r1, #0x3c + bl _s32_div_f + add r7, r0, #0 +_021DB78C: + ldr r1, [r5, #8] + ldr r0, _021DB7B8 ; =0x021DBF60 + ldrb r0, [r0, r1] + sub r1, r0, r4 + cmp r1, #5 + bgt _021DB7A4 + mov r0, #0x1f + mul r0, r1 + mov r1, #5 + bl _s32_div_f + add r6, r0, #0 +_021DB7A4: + cmp r7, r6 + bge _021DB7AC + str r7, [r5, #4] + b _021DB7AE +_021DB7AC: + str r6, [r5, #4] +_021DB7AE: + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021DB7B8: .word 0x021DBF60 + thumb_func_end MOD73_021DB734 + + thumb_func_start MOD73_021DB7BC +MOD73_021DB7BC: ; 0x021DB7BC + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + mov r1, #0 + str r1, [r0, #0xc] + add r7, r5, #0 + add r4, r3, #0 + str r0, [sp] + ldr r1, [sp, #0x18] + add r0, r4, #0 + add r6, r2, #0 + add r7, #0x98 + bl MOD73_021DB62C + cmp r0, #1 + beq _021DB7EC + ldr r1, [sp, #0x18] + add r0, r4, #0 + bl MOD73_021DB60C + cmp r0, #1 + beq _021DB7EC + ldr r0, [sp, #0x1c] + cmp r0, #0 + bne _021DB7F6 +_021DB7EC: + ldr r0, [sp] + mov r1, #0 + str r1, [r0, #4] + str r1, [r0, #8] + pop {r3, r4, r5, r6, r7, pc} +_021DB7F6: + cmp r6, #1 + bgt _021DB804 + ldr r0, [sp] + mov r1, #0 + str r1, [r0, #4] + str r1, [r0, #8] + pop {r3, r4, r5, r6, r7, pc} +_021DB804: + ldr r0, [sp, #0x20] + cmp r0, #1 + beq _021DB882 + mov r0, #0 + cmp r6, #0 + ble _021DB832 + mov r2, #0x96 + mov r4, #0x1c + lsl r2, r2, #2 +_021DB816: + mov r1, #0x13 + add r3, r5, r0 + lsl r1, r1, #4 + ldrb r1, [r3, r1] + add r3, r1, #0 + mul r3, r4 + add r1, r5, r3 + add r1, #0x92 + ldrh r1, [r1] + cmp r1, r2 + bls _021DB882 + add r0, r0, #1 + cmp r0, r6 + blt _021DB816 +_021DB832: + mov r4, #1 + cmp r6, #1 + ble _021DB862 +_021DB838: + mov r0, #0x13 + add r1, r5, r4 + lsl r0, r0, #4 + ldrb r2, [r1, r0] + ldrb r0, [r7] + ldrb r1, [r7, #4] + add r3, r7, r2 + ldrb r2, [r7, r2] + ldrb r3, [r3, #4] + bl FUN_0201CBEC + cmp r0, #0x20 + bls _021DB85C + ldr r0, [sp] + mov r1, #0 + str r1, [r0, #4] + str r1, [r0, #8] + pop {r3, r4, r5, r6, r7, pc} +_021DB85C: + add r4, r4, #1 + cmp r4, r6 + blt _021DB838 +_021DB862: + ldr r0, [sp] + ldr r0, [r0, #4] + cmp r0, #4 + bge _021DB872 + add r1, r0, #1 + ldr r0, [sp] + str r1, [r0, #4] + pop {r3, r4, r5, r6, r7, pc} +_021DB872: + ldr r0, [sp] + mov r2, #1 + str r2, [r0, #0xc] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp] + str r1, [r0] + str r2, [r0, #8] +_021DB882: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD73_021DB7BC + + thumb_func_start MOD73_021DB884 +MOD73_021DB884: ; 0x021DB884 + push {r4, lr} + add r4, r0, #0 + mov r1, #0 + mov r2, #0x68 + bl Call_FillMemWithValue + add r0, r4, #0 + add r0, #0xc + bl MOD73_021DB680 + mov r1, #0 + mov r0, #0x1f + str r0, [r4, #0x50] + add r4, #0xc + add r0, r4, #0 + add r2, r1, #0 + add r3, r1, #0 + bl MOD73_021DB698 + pop {r4, pc} + thumb_func_end MOD73_021DB884 + + thumb_func_start MOD73_021DB8AC +MOD73_021DB8AC: ; 0x021DB8AC + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + add r6, r1, #0 + add r1, r5, #0 + add r0, #0x4c + add r1, #0x1c + add r7, r2, #0 + bl MOD73_021DB734 + cmp r0, #1 + bne _021DB8CA + add sp, #0xc + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021DB8CA: + add r0, r5, #0 + ldr r3, [r5, #0xc] + add r0, #0x1c + add r1, r6, #0 + add r2, r7, #0 + bl MOD73_021DB3DC + add r0, r5, #0 + add r0, #0x1c + bl MOD73_021DB584 + add r4, r0, #0 + add r0, r5, #0 + ldr r2, [r5, #0x54] + add r0, #0x30 + add r1, r4, #0 + bl MOD73_021DB588 + add r0, r5, #0 + add r0, #0xc + add r1, r4, #0 + bl MOD73_021DB718 + ldr r1, [r5, #0x54] + add r2, r7, #0 + str r1, [sp] + ldr r1, [r5, #0x2c] + add r3, r4, #0 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0x58 + add r1, r6, #0 + bl MOD73_021DB7BC + add r0, r5, #0 + ldr r1, [r5, #0x54] + ldr r3, [r5, #0x60] + add r0, #0xc + add r2, r4, #0 + bl MOD73_021DB698 + mov r0, #0 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD73_021DB8AC + + thumb_func_start MOD73_021DB924 +MOD73_021DB924: ; 0x021DB924 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + add r4, #0xc + mov r2, #0 +_021DB92E: + add r3, r1, #0 + add r3, #0x90 + ldrb r3, [r3] + add r0, r4, r2 + strb r3, [r4, r2] + add r3, r1, #0 + add r3, #0x91 + ldrb r3, [r3] + add r2, r2, #1 + add r1, #0x1c + strb r3, [r0, #4] + cmp r2, #4 + blt _021DB92E + add r0, r5, #0 + add r0, #0x1c + bl MOD73_021DB584 + cmp r0, #0 + blt _021DB95A + strh r0, [r4, #0xa] + mov r0, #0 + b _021DB960 +_021DB95A: + neg r0, r0 + strh r0, [r4, #0xa] + mov r0, #1 +_021DB960: + strb r0, [r4, #0xc] + add r0, r5, #0 + add r0, #0x1c + bl MOD73_021DB560 + strh r0, [r4, #8] + ldr r0, [r5, #0x40] + strb r0, [r4, #0x12] + ldr r0, [r5, #0x48] + strb r0, [r4, #0x13] + ldr r0, [r5, #0xc] + strb r0, [r4, #0x11] + ldr r0, [r5, #0x18] + strb r0, [r4, #0xe] + ldr r0, [r5, #0x54] + cmp r0, #3 + bge _021DB984 + b _021DB986 +_021DB984: + mov r0, #2 +_021DB986: + strb r0, [r4, #0xd] + ldr r0, [r5, #0x50] + strb r0, [r4, #0x10] + ldr r0, [r5, #0x64] + strb r0, [r4, #0xf] + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD73_021DB924 + + thumb_func_start MOD73_021DB994 +MOD73_021DB994: ; 0x021DB994 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + mov r3, #0 + mov r1, #0x80 + mov r0, #0x60 +_021DB9A0: + add r2, r4, r3 + strb r1, [r4, r3] + add r3, r3, #1 + strb r0, [r2, #4] + cmp r3, #4 + blt _021DB9A0 + add r0, r5, #0 + add r0, #0x1c + bl MOD73_021DB584 + cmp r0, #0 + blt _021DB9BE + strh r0, [r4, #0xa] + mov r0, #0 + b _021DB9C4 +_021DB9BE: + neg r0, r0 + strh r0, [r4, #0xa] + mov r0, #1 +_021DB9C4: + strb r0, [r4, #0xc] + add r0, r5, #0 + add r0, #0x1c + bl MOD73_021DB560 + strh r0, [r4, #8] + ldr r0, [r5, #0x40] + strb r0, [r4, #0x12] + ldr r0, [r5, #0x48] + strb r0, [r4, #0x13] + ldr r0, [r5, #0xc] + strb r0, [r4, #0x11] + ldr r0, [r5, #0x18] + strb r0, [r4, #0xe] + ldr r0, [r5, #0x54] + strb r0, [r4, #0xd] + ldr r0, [r5, #0x50] + strb r0, [r4, #0x10] + ldr r0, [r5, #0x64] + strb r0, [r4, #0xf] + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD73_021DB994 + + thumb_func_start MOD73_021DB9F0 +MOD73_021DB9F0: ; 0x021DB9F0 + ldr r1, [r0] + add r1, r1, #1 + str r1, [r0] + bx lr + thumb_func_end MOD73_021DB9F0 + + thumb_func_start MOD73_021DB9F8 +MOD73_021DB9F8: ; 0x021DB9F8 + push {r4, lr} + add r4, r1, #0 + mov r1, #6 + bl _u32_div_f + ldr r1, _021DBA1C ; =0x021DBF63 + ldrb r1, [r1, r4] + mul r1, r0 + add r0, r1, #0 + mov r1, #0xa + bl _u32_div_f + ldr r1, _021DBA20 ; =0x0000270F + cmp r0, r1 + ble _021DBA18 + add r0, r1, #0 +_021DBA18: + pop {r4, pc} + nop +_021DBA1C: .word 0x021DBF63 +_021DBA20: .word 0x0000270F + thumb_func_end MOD73_021DB9F8 + + thumb_func_start MOD73_021DBA24 +MOD73_021DBA24: ; 0x021DBA24 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x60 + str r0, [sp] + ldr r0, [sp, #0x78] + str r1, [sp, #4] + str r0, [sp, #0x78] + add r0, r2, #0 + str r0, [sp, #0x24] + add r0, #0x34 + str r0, [sp, #0x24] + mov r1, #0 + add r0, sp, #0x4c + str r1, [r0] + str r1, [r0, #4] + str r1, [r0, #8] + str r1, [r0, #0xc] + str r1, [r0, #0x10] + add r0, r1, #0 + add r6, r3, #0 + str r2, [sp, #8] + str r1, [sp, #0x20] + str r0, [sp, #0x18] + str r0, [sp, #0x28] + cmp r6, #0 + bls _021DBAD6 +_021DBA56: + ldr r1, [sp, #8] + ldr r0, [sp, #0x28] + add r1, r1, r0 + mov r0, #0x13 + lsl r0, r0, #4 + ldrb r0, [r1, r0] + ldr r1, [sp, #0x78] + lsl r4, r0, #2 + ldr r0, [sp, #0x24] + ldr r0, [r0, r4] + bl FUN_02085284 + mov r3, #0 + add r7, r0, #0 + add r2, r3, #0 + cmp r6, #0 + bls _021DBA98 + ldr r0, [sp, #0x24] + mov r5, #0x13 + ldr r4, [r0, r4] + lsl r5, r5, #4 +_021DBA80: + ldr r0, [sp, #8] + add r0, r0, r2 + ldrb r0, [r0, r5] + lsl r1, r0, #2 + ldr r0, [sp, #0x24] + ldr r0, [r0, r1] + cmp r4, r0 + bne _021DBA92 + add r3, r3, #1 +_021DBA92: + add r2, r2, #1 + cmp r2, r6 + blo _021DBA80 +_021DBA98: + ldr r0, [sp, #0x18] + cmp r3, r0 + ble _021DBAA0 + str r3, [sp, #0x18] +_021DBAA0: + mov r5, #0 + add r4, sp, #0x4c +_021DBAA4: + add r0, r7, #0 + add r1, r5, #5 + bl FUN_02085290 + ldr r1, [r4] + add r5, r5, #1 + add r0, r1, r0 + stmia r4!, {r0} + cmp r5, #5 + blt _021DBAA4 + add r0, r7, #0 + mov r1, #0xa + bl FUN_02085290 + ldr r1, [sp, #0x20] + add r0, r1, r0 + str r0, [sp, #0x20] + add r0, r7, #0 + bl FUN_02016A18 + ldr r0, [sp, #0x28] + add r0, r0, #1 + str r0, [sp, #0x28] + cmp r0, r6 + blo _021DBA56 +_021DBAD6: + ldr r0, [sp, #0x18] + cmp r0, #2 + blt _021DBAE6 + cmp r6, #1 + bls _021DBAE6 + mov r0, #1 + str r0, [sp, #0x14] + b _021DBAEA +_021DBAE6: + mov r0, #0 + str r0, [sp, #0x14] +_021DBAEA: + ldr r0, [sp, #0x20] + add r1, r6, #0 + bl _u32_div_f + sub r0, r0, r6 + mov r5, #0 + add r4, sp, #0x4c + str r0, [sp, #0x1c] + str r5, [sp, #0xc] + add r7, sp, #0x38 + str r4, [sp, #0x2c] +_021DBB00: + ldr r0, [sp, #0xc] + mov r1, #5 + add r0, r0, #1 + bl _s32_div_f + lsl r2, r1, #2 + ldr r1, [sp, #0x2c] + ldr r0, [r4] + ldr r1, [r1, r2] + sub r0, r0, r1 + str r0, [r7] + bpl _021DBB1A + add r5, r5, #1 +_021DBB1A: + ldr r0, [sp, #0xc] + add r4, r4, #4 + add r0, r0, #1 + add r7, r7, #4 + str r0, [sp, #0xc] + cmp r0, #5 + blt _021DBB00 + mov r2, #0 + add r1, sp, #0x38 +_021DBB2C: + ldr r0, [r1] + add r2, r2, #1 + sub r0, r0, r5 + stmia r1!, {r0} + cmp r2, #5 + blt _021DBB2C + cmp r5, #4 + blt _021DBB40 + mov r0, #1 + str r0, [sp, #0x14] +_021DBB40: + ldr r1, [sp] + ldr r0, _021DBBF8 ; =0x001B7740 + ldr r1, [r1] + bl _u32_div_f + mov r1, #0xa + add r5, r0, #0 + bl _s32_div_f + cmp r1, #5 + blt _021DBB58 + add r5, #0xa +_021DBB58: + add r0, r5, #0 + mov r1, #0xa + mov r7, #0 + add r4, sp, #0x38 + bl _s32_div_f + str r0, [sp, #0x10] +_021DBB66: + ldr r0, [sp, #0x10] + ldr r1, [r4] + add r5, r0, #0 + mul r5, r1 + add r0, r5, #0 + mov r1, #0x64 + bl _s32_div_f + cmp r1, #0x32 + blt _021DBB7C + add r5, #0x64 +_021DBB7C: + add r0, r5, #0 + mov r1, #0x64 + bl _s32_div_f + ldr r1, [sp] + ldr r2, [r1, #0x30] + ldr r1, [r1, #0x34] + add r1, r2, r1 + sub r0, r0, r1 + str r0, [r4] + bpl _021DBB96 + mov r0, #0 + str r0, [r4] +_021DBB96: + add r7, r7, #1 + add r4, r4, #4 + cmp r7, #5 + blt _021DBB66 + cmp r6, #1 + bls _021DBBB8 + ldr r0, [sp] + add r1, r6, #0 + ldr r0, [r0, #0x58] + bl MOD73_021DB9F8 + cmp r0, #0xa + ble _021DBBB2 + mov r0, #0xa +_021DBBB2: + ldr r1, [sp, #0x1c] + sub r0, r1, r0 + str r0, [sp, #0x1c] +_021DBBB8: + ldr r0, [sp, #0x1c] + cmp r0, #0xf + bge _021DBBC2 + mov r0, #0xf + str r0, [sp, #0x1c] +_021DBBC2: + mov r3, #0 + add r1, sp, #0x38 + add r2, sp, #0x30 +_021DBBC8: + ldr r0, [r1] + add r3, r3, #1 + strb r0, [r2] + add r1, r1, #4 + add r2, r2, #1 + cmp r3, #5 + blt _021DBBC8 + ldr r2, [sp, #0x1c] + ldr r0, [sp, #4] + lsl r2, r2, #0x18 + ldr r3, [sp, #0x14] + add r1, sp, #0x30 + lsr r2, r2, #0x18 + bl FUN_02027F04 + ldr r1, [sp] + str r0, [r1, #4] + ldr r0, [sp, #4] + bl FUN_02027FDC + ldr r1, [sp] + str r0, [r1, #8] + add sp, #0x60 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021DBBF8: .word 0x001B7740 + thumb_func_end MOD73_021DBA24 + + thumb_func_start MOD73_021DBBFC +MOD73_021DBBFC: ; 0x021DBBFC + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x34] + add r4, r1, #0 + str r0, [r1, #0x20] + ldr r0, [r5, #0x30] + add r4, #0x20 + str r0, [r4, #4] + ldr r0, [r5, #0x58] + add r1, r2, #0 + bl MOD73_021DB9F8 + str r0, [r4, #8] + ldr r0, [r5, #4] + ldr r1, _021DBC54 ; =0x00000708 + strb r0, [r4, #0xc] + ldr r0, [r5, #8] + strb r0, [r4, #0xd] + ldr r5, [r5] + add r0, r5, #0 + bl _s32_div_f + strb r0, [r4, #0xe] + ldrb r1, [r4, #0xe] + ldr r0, _021DBC54 ; =0x00000708 + mul r0, r1 + sub r5, r5, r0 + add r0, r5, #0 + mov r1, #0x1e + bl _s32_div_f + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xf] + mov r1, #0x1e + add r2, r0, #0 + mul r2, r1 + sub r2, r5, r2 + mov r0, #0x64 + mul r0, r2 + bl _s32_div_f + strb r0, [r4, #0x10] + pop {r3, r4, r5, pc} + nop +_021DBC54: .word 0x00000708 + thumb_func_end MOD73_021DBBFC + + .section .rodata + ; 0x021DBC58 + .incbin "baserom.nds", 0x2CE578, 0x318 + + .section .data + ; 0x021DBF80 + .incbin "baserom.nds", 0x2CE8A0, 0x40 diff --git a/arm9/modules/74/asm/module_74.s b/arm9/modules/74/asm/module_74.s new file mode 100644 index 00000000..416745d9 --- /dev/null +++ b/arm9/modules/74/asm/module_74.s @@ -0,0 +1,2022 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD74_021D74E0 +MOD74_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, lr} + add r4, r0, #0 + bl FUN_0200628C + mov r2, #1 + add r5, r0, #0 + mov r0, #3 + mov r1, #0x4a + lsl r2, r2, #0x10 + bl FUN_0201681C + mov r1, #0xad + add r0, r4, #0 + lsl r1, r1, #2 + mov r2, #0x4a + bl FUN_02006268 + mov r2, #0xad + mov r1, #0 + lsl r2, r2, #2 + add r4, r0, #0 + bl Call_FillMemWithValue + ldrh r0, [r5, #4] + strh r0, [r4, #8] + ldrh r0, [r5, #6] + strb r0, [r4, #0xa] + ldr r0, [r5] + bl LoadPlayerDataAddress + str r0, [r4, #0x18] + ldr r0, [r5] + bl FUN_02029FC8 + str r0, [r4, #0x1c] + ldr r0, [r5] + bl FUN_0202A8D8 + str r0, [r4, #0x20] + ldr r0, [r5] + bl FUN_0202A8E4 + str r0, [r4, #0x24] + mov r0, #0x4a + str r0, [r4] + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD74_021D74E0 + + thumb_func_start MOD74_021D7540 +MOD74_021D7540: ; 0x021D7540 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + add r0, r5, #0 + bl FUN_0200627C + ldr r0, [r4] + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD74_021D7540 + + thumb_func_start MOD74_021D755C +MOD74_021D755C: ; 0x021D755C + push {r4, r5, lr} + sub sp, #0xc + add r4, r1, #0 + bl FUN_02006278 + ldr r1, [r4] + add r5, r0, #0 + cmp r1, #4 + bhi _021D760C + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D757A: ; jump table + .short _021D7584 - _021D757A - 2 ; case 0 + .short _021D75AA - _021D757A - 2 ; case 1 + .short _021D75BA - _021D757A - 2 ; case 2 + .short _021D75EE - _021D757A - 2 ; case 3 + .short _021D75FE - _021D757A - 2 ; case 4 +_021D7584: + bl MOD74_021D7624 + cmp r0, #0 + beq _021D760C + mov r0, #6 + mov r1, #1 + str r0, [sp] + str r1, [sp, #4] + ldr r0, [r5] + add r2, r1, #0 + str r0, [sp, #8] + mov r0, #3 + mov r3, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D760C +_021D75AA: + bl FUN_0200E308 + cmp r0, #0 + beq _021D760C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D760C +_021D75BA: + ldrh r1, [r5, #8] + cmp r1, #0 + bne _021D75C6 + bl MOD74_021D77AC + b _021D75CA +_021D75C6: + bl MOD74_021D790C +_021D75CA: + cmp r0, #0 + beq _021D760C + mov r0, #6 + str r0, [sp] + mov r0, #1 + mov r1, #0 + str r0, [sp, #4] + ldr r0, [r5] + add r2, r1, #0 + str r0, [sp, #8] + mov r0, #3 + add r3, r1, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D760C +_021D75EE: + bl FUN_0200E308 + cmp r0, #0 + beq _021D760C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D760C +_021D75FE: + bl MOD74_021D76E8 + cmp r0, #0 + beq _021D760C + add sp, #0xc + mov r0, #1 + pop {r4, r5, pc} +_021D760C: + ldr r0, [r4] + cmp r0, #1 + blt _021D761C + cmp r0, #3 + bgt _021D761C + add r0, r5, #0 + bl MOD74_021D82D4 +_021D761C: + mov r0, #0 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD74_021D755C + + thumb_func_start MOD74_021D7624 +MOD74_021D7624: ; 0x021D7624 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #4] + cmp r1, #4 + bhi _021D76D2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D763A: ; jump table + .short _021D7644 - _021D763A - 2 ; case 0 + .short _021D7684 - _021D763A - 2 ; case 1 + .short _021D7690 - _021D763A - 2 ; case 2 + .short _021D76B6 - _021D763A - 2 ; case 3 + .short _021D76C2 - _021D763A - 2 ; case 4 +_021D7644: + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D76DC ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D76E0 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + bl MOD74_021D7764 + mov r0, #0 + bl FUN_0200E388 + mov r0, #1 + bl FUN_0200E388 + add r0, r4, #0 + bl MOD74_021D7934 + b _021D76D2 +_021D7684: + bl MOD74_021D79F8 + add r0, r4, #0 + bl MOD74_021D7B20 + b _021D76D2 +_021D7690: + bl MOD74_021D7A88 + ldrh r0, [r4, #8] + cmp r0, #0 + bne _021D76A8 + add r0, r4, #0 + bl MOD74_021D7D1C + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + b _021D76D2 +_021D76A8: + add r0, r4, #0 + bl MOD74_021D7E9C + add r0, r4, #0 + bl MOD74_021D8008 + b _021D76D2 +_021D76B6: + bl MOD74_021D8200 + add r0, r4, #0 + bl MOD74_021D82F0 + b _021D76D2 +_021D76C2: + ldr r0, _021D76E4 ; =MOD74_021D7784 + add r1, r4, #0 + bl FUN_02015F10 + mov r0, #0 + str r0, [r4, #4] + mov r0, #1 + pop {r4, pc} +_021D76D2: + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D76DC: .word 0xFFFFE0FF +_021D76E0: .word 0x04001000 +_021D76E4: .word MOD74_021D7784 + thumb_func_end MOD74_021D7624 + + thumb_func_start MOD74_021D76E8 +MOD74_021D76E8: ; 0x021D76E8 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #4] + cmp r1, #0 + beq _021D76F8 + cmp r1, #1 + beq _021D7722 + b _021D7752 +_021D76F8: + ldrh r1, [r4, #8] + cmp r1, #0 + beq _021D770E + bl MOD74_021D836C + add r0, r4, #0 + bl MOD74_021D82B0 + add r0, r4, #0 + bl MOD74_021D7F28 +_021D770E: + add r0, r4, #0 + bl MOD74_021D7AF0 + add r0, r4, #0 + bl MOD74_021D7BB4 + add r0, r4, #0 + bl MOD74_021D79C8 + b _021D7752 +_021D7722: + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D775C ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D7760 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r0, #0 + str r0, [r4, #4] + mov r0, #1 + pop {r4, pc} +_021D7752: + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D775C: .word 0xFFFFE0FF +_021D7760: .word 0x04001000 + thumb_func_end MOD74_021D76E8 + + thumb_func_start MOD74_021D7764 +MOD74_021D7764: ; 0x021D7764 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D7780 ; =0x021D8518 + add r3, sp, #0 + mov r2, #5 +_021D776E: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D776E + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D7780: .word 0x021D8518 + thumb_func_end MOD74_021D7764 + + thumb_func_start MOD74_021D7784 +MOD74_021D7784: ; 0x021D7784 + push {r4, lr} + add r4, r0, #0 + bl MOD74_021D82E8 + bl FUN_020AEEB8 + ldr r0, [r4, #0x10] + bl FUN_0201AB60 + ldr r3, _021D77A4 ; =0x027E0000 + ldr r1, _021D77A8 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r4, pc} + .align 2, 0 +_021D77A4: .word 0x027E0000 +_021D77A8: .word 0x00003FF8 + thumb_func_end MOD74_021D7784 + + thumb_func_start MOD74_021D77AC +MOD74_021D77AC: ; 0x021D77AC + ldr r0, _021D77C0 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _021D77BA + mov r0, #1 + bx lr +_021D77BA: + mov r0, #0 + bx lr + nop +_021D77C0: .word 0x021C48B8 + thumb_func_end MOD74_021D77AC + + thumb_func_start MOD74_021D77C4 +MOD74_021D77C4: ; 0x021D77C4 + push {r3, r4, r5, lr} + sub sp, #8 + ldr r1, _021D78B8 ; =0x021C48B8 + add r4, r0, #0 + ldr r2, [r1, #0x48] + mov r1, #2 + mov r3, #0 + tst r1, r2 + beq _021D77DC + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, pc} +_021D77DC: + mov r1, #1 + add r5, r2, #0 + tst r5, r1 + beq _021D7800 + ldrb r2, [r4, #0xb] + cmp r2, #0xa + blo _021D77F0 + add sp, #8 + add r0, r1, #0 + pop {r3, r4, r5, pc} +_021D77F0: + ldrb r1, [r4, #0xd] + add r1, r1, #1 + strb r1, [r4, #0xd] + bl MOD74_021D80D0 + add sp, #8 + mov r0, #0 + pop {r3, r4, r5, pc} +_021D7800: + mov r0, #0x40 + tst r0, r2 + beq _021D7828 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _021D787A + sub r0, r0, #1 + strb r0, [r4, #0xb] + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _021D7820 + ldrb r0, [r4, #0xe] + add r3, r1, #0 + sub r0, r0, #1 + strb r0, [r4, #0xe] + b _021D787A +_021D7820: + sub r0, r0, #1 + strb r0, [r4, #0xf] + add r3, r1, #0 + b _021D787A +_021D7828: + mov r0, #0x80 + tst r0, r2 + beq _021D7850 + ldrb r0, [r4, #0xb] + cmp r0, #0xa + bhs _021D787A + add r0, r0, #1 + strb r0, [r4, #0xb] + ldrb r0, [r4, #0xf] + cmp r0, #1 + bls _021D7848 + ldrb r0, [r4, #0xe] + add r3, r1, #0 + add r0, r0, #1 + strb r0, [r4, #0xe] + b _021D787A +_021D7848: + add r0, r0, #1 + strb r0, [r4, #0xf] + add r3, r1, #0 + b _021D787A +_021D7850: + mov r0, #0x20 + tst r0, r2 + beq _021D7866 + ldrb r0, [r4, #0xc] + mov r1, #3 + add r0, r0, #2 + bl _s32_div_f + strb r1, [r4, #0xc] + mov r3, #1 + b _021D787A +_021D7866: + mov r0, #0x10 + tst r0, r2 + beq _021D787A + ldrb r0, [r4, #0xc] + mov r1, #3 + add r0, r0, #1 + bl _s32_div_f + strb r1, [r4, #0xc] + mov r3, #1 +_021D787A: + ldrb r0, [r4, #0xb] + cmp r0, #0xa + bne _021D7884 + mov r0, #2 + strb r0, [r4, #0xc] +_021D7884: + cmp r3, #0 + bne _021D788E + add sp, #8 + mov r0, #0 + pop {r3, r4, r5, pc} +_021D788E: + ldrb r1, [r4, #0xb] + ldrb r2, [r4, #0xc] + ldrb r3, [r4, #0xf] + add r0, r4, #0 + bl MOD74_021D83D4 + ldrb r0, [r4, #0xb] + add r1, r4, #0 + add r1, #0x7c + str r0, [sp] + ldrb r0, [r4, #0xc] + str r0, [sp, #4] + add r0, r4, #0 + ldrb r3, [r4, #0xe] + ldr r2, [r4, #0x34] + add r0, #0xbc + bl MOD74_021D7F44 + mov r0, #0 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D78B8: .word 0x021C48B8 + thumb_func_end MOD74_021D77C4 + + thumb_func_start MOD74_021D78BC +MOD74_021D78BC: ; 0x021D78BC + push {r4, lr} + ldr r1, _021D78E8 ; =0x021C48B8 + add r4, r0, #0 + ldr r2, [r1, #0x48] + mov r1, #1 + tst r1, r2 + beq _021D78D6 + bl MOD74_021D818C + ldrb r0, [r4, #0xd] + add r0, r0, #1 + strb r0, [r4, #0xd] + b _021D78E4 +_021D78D6: + mov r1, #2 + tst r1, r2 + beq _021D78E4 + bl MOD74_021D81E0 + mov r0, #0 + strb r0, [r4, #0xd] +_021D78E4: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D78E8: .word 0x021C48B8 + thumb_func_end MOD74_021D78BC + + thumb_func_start MOD74_021D78EC +MOD74_021D78EC: ; 0x021D78EC + push {r4, lr} + ldr r1, _021D7908 ; =0x021C48B8 + add r4, r0, #0 + ldr r2, [r1, #0x48] + mov r1, #3 + tst r1, r2 + beq _021D7902 + bl MOD74_021D81E0 + mov r0, #0 + strb r0, [r4, #0xd] +_021D7902: + mov r0, #0 + pop {r4, pc} + nop +_021D7908: .word 0x021C48B8 + thumb_func_end MOD74_021D78EC + + thumb_func_start MOD74_021D790C +MOD74_021D790C: ; 0x021D790C + push {r3, lr} + ldrb r1, [r0, #0xd] + cmp r1, #0 + beq _021D791E + cmp r1, #1 + beq _021D7924 + cmp r1, #2 + beq _021D792A + b _021D7930 +_021D791E: + bl MOD74_021D77C4 + pop {r3, pc} +_021D7924: + bl MOD74_021D78BC + pop {r3, pc} +_021D792A: + bl MOD74_021D78EC + pop {r3, pc} +_021D7930: + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD74_021D790C + + thumb_func_start MOD74_021D7934 +MOD74_021D7934: ; 0x021D7934 + push {r4, r5, r6, r7, lr} + sub sp, #0x64 + add r5, r0, #0 + ldr r0, [r5] + bl FUN_02016B94 + add r3, sp, #0 + ldr r4, _021D79C0 ; =0x021D84A0 + str r0, [r5, #0x10] + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r4, _021D79C4 ; =0x021D8570 + add r3, sp, #0x10 + mov r2, #0xa +_021D795C: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D795C + ldr r0, [r4] + mov r4, #0 + str r0, [r3] + ldrh r0, [r5, #8] + add r7, r4, #0 + add r0, r0, #2 + cmp r0, #0 + ble _021D799C + add r6, sp, #0x10 +_021D7976: + lsl r1, r4, #0x18 + ldr r0, [r5, #0x10] + lsr r1, r1, #0x18 + add r2, r6, #0 + mov r3, #0 + bl FUN_02016C18 + lsl r1, r4, #0x18 + ldr r0, [r5, #0x10] + lsr r1, r1, #0x18 + bl FUN_02018744 + ldrh r0, [r5, #8] + add r7, r7, #1 + add r4, r4, #1 + add r0, r0, #2 + add r6, #0x1c + cmp r7, r0 + blt _021D7976 +_021D799C: + mov r0, #0 + ldr r3, [r5] + mov r1, #0x20 + add r2, r0, #0 + bl FUN_02017F18 + ldrh r0, [r5, #8] + cmp r0, #0 + beq _021D79BA + ldr r3, [r5] + mov r0, #2 + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 +_021D79BA: + add sp, #0x64 + pop {r4, r5, r6, r7, pc} + nop +_021D79C0: .word 0x021D84A0 +_021D79C4: .word 0x021D8570 + thumb_func_end MOD74_021D7934 + + thumb_func_start MOD74_021D79C8 +MOD74_021D79C8: ; 0x021D79C8 + push {r4, r5, r6, lr} + add r6, r0, #0 + ldrh r0, [r6, #8] + mov r5, #0 + add r4, r5, #0 + add r0, r0, #2 + cmp r0, #0 + ble _021D79EE +_021D79D8: + lsl r1, r5, #0x18 + ldr r0, [r6, #0x10] + lsr r1, r1, #0x18 + add r5, r5, #1 + bl FUN_020178A0 + ldrh r0, [r6, #8] + add r4, r4, #1 + add r0, r0, #2 + cmp r4, r0 + blt _021D79D8 +_021D79EE: + ldr r0, [r6, #0x10] + bl FUN_02016A18 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD74_021D79C8 + + thumb_func_start MOD74_021D79F8 +MOD74_021D79F8: ; 0x021D79F8 + push {r4, r5, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r1, [r5] + mov r0, #0x7b + bl FUN_02006670 + add r4, r0, #0 + mov r0, #5 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x10] + ldr r1, [r5] + add r2, r4, #0 + mov r3, #0x7b + bl FUN_02079B60 + mov r0, #4 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0x40 + str r0, [sp, #0xc] + mov r0, #0 + str r0, [sp, #0x10] + ldr r0, [r5, #0x10] + ldr r1, [r5] + add r2, r4, #0 + mov r3, #0x7b + bl FUN_02079B60 + ldrh r0, [r5, #8] + cmp r0, #1 + bne _021D7A4E + mov r0, #7 + b _021D7A5A +_021D7A4E: + ldrb r0, [r5, #0xa] + cmp r0, #2 + bne _021D7A58 + mov r0, #8 + b _021D7A5A +_021D7A58: + mov r0, #6 +_021D7A5A: + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x10] + ldr r1, [r5] + add r2, r4, #0 + mov r3, #0x7b + bl FUN_02079B60 + add r0, r4, #0 + bl FUN_020066F4 + ldr r0, [r5, #0x10] + mov r1, #1 + bl FUN_0201AC68 + add sp, #0x14 + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD74_021D79F8 + + thumb_func_start MOD74_021D7A88 +MOD74_021D7A88: ; 0x021D7A88 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + ldrh r0, [r6, #8] + cmp r0, #0 + bne _021D7AB8 + add r5, r6, #0 + ldr r4, _021D7AE8 ; =0x021D8540 + mov r7, #0 + add r5, #0x6c +_021D7A9A: + ldr r0, [r6, #0x10] + add r1, r5, #0 + add r2, r4, #0 + bl FUN_02019150 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + add r7, r7, #1 + add r4, #8 + add r5, #0x10 + cmp r7, #5 + blt _021D7A9A + b _021D7ADC +_021D7AB8: + add r5, r6, #0 + ldr r4, _021D7AEC ; =0x021D84C4 + mov r7, #0 + add r5, #0x6c +_021D7AC0: + ldr r0, [r6, #0x10] + add r1, r5, #0 + add r2, r4, #0 + bl FUN_02019150 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + add r7, r7, #1 + add r4, #8 + add r5, #0x10 + cmp r7, #3 + blt _021D7AC0 +_021D7ADC: + ldr r2, [r6] + mov r0, #0 + mov r1, #0x40 + bl FUN_02002ED0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D7AE8: .word 0x021D8540 +_021D7AEC: .word 0x021D84C4 + thumb_func_end MOD74_021D7A88 + + thumb_func_start MOD74_021D7AF0 +MOD74_021D7AF0: ; 0x021D7AF0 + push {r4, r5, r6, lr} + ldrh r1, [r0, #8] + cmp r1, #0 + bne _021D7AFC + mov r6, #5 + b _021D7AFE +_021D7AFC: + mov r6, #3 +_021D7AFE: + mov r4, #0 + cmp r6, #0 + ble _021D7B1C + add r5, r0, #0 + add r5, #0x6c +_021D7B08: + add r0, r5, #0 + bl FUN_02019570 + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, r6 + blt _021D7B08 +_021D7B1C: + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD74_021D7AF0 + + thumb_func_start MOD74_021D7B20 +MOD74_021D7B20: ; 0x021D7B20 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r3, [r5] + mov r0, #0 + mov r1, #0x1a + mov r2, #0x11 + bl FUN_0200A86C + str r0, [r5, #0x28] + ldr r2, [r5] + mov r0, #2 + mov r1, #0x4c + bl FUN_0200AA90 + str r0, [r5, #0x2c] + ldr r1, [r5] + mov r0, #0x4c + bl FUN_020219F4 + str r0, [r5, #0x30] + mov r6, #0 + add r4, r5, #0 +_021D7B4C: + add r1, r6, #0 + ldr r0, [r5, #0x28] + add r1, #9 + bl FUN_0200A914 + str r0, [r4, #0x4c] + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #6 + blt _021D7B4C + ldr r0, [r5, #0x28] + mov r1, #0xf + bl FUN_0200A914 + str r0, [r5, #0x38] + ldr r0, [r5, #0x28] + mov r1, #0x11 + bl FUN_0200A914 + str r0, [r5, #0x3c] + ldr r0, [r5, #0x28] + mov r1, #0x12 + bl FUN_0200A914 + str r0, [r5, #0x34] + ldr r0, [r5, #0x28] + mov r1, #0x13 + bl FUN_0200A914 + str r0, [r5, #0x40] + ldr r0, [r5, #0x28] + mov r1, #0x14 + bl FUN_0200A914 + str r0, [r5, #0x44] + ldr r0, [r5, #0x28] + mov r1, #0x15 + bl FUN_0200A914 + str r0, [r5, #0x48] + ldr r0, [r5, #0x28] + mov r1, #0x16 + bl FUN_0200A914 + str r0, [r5, #0x64] + ldr r0, [r5, #0x28] + mov r1, #0x17 + bl FUN_0200A914 + str r0, [r5, #0x68] + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD74_021D7B20 + + thumb_func_start MOD74_021D7BB4 +MOD74_021D7BB4: ; 0x021D7BB4 + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r0, [r6, #0x68] + bl FUN_02021A20 + ldr r0, [r6, #0x64] + bl FUN_02021A20 + ldr r0, [r6, #0x48] + bl FUN_02021A20 + ldr r0, [r6, #0x44] + bl FUN_02021A20 + ldr r0, [r6, #0x40] + bl FUN_02021A20 + ldr r0, [r6, #0x34] + bl FUN_02021A20 + ldr r0, [r6, #0x3c] + bl FUN_02021A20 + ldr r0, [r6, #0x38] + bl FUN_02021A20 + mov r4, #0 + add r5, r6, #0 +_021D7BEC: + ldr r0, [r5, #0x4c] + bl FUN_02021A20 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _021D7BEC + ldr r0, [r6, #0x30] + bl FUN_02021A20 + ldr r0, [r6, #0x2c] + bl FUN_0200AB18 + ldr r0, [r6, #0x28] + bl FUN_0200A8B8 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD74_021D7BB4 + + thumb_func_start MOD74_021D7C10 +MOD74_021D7C10: ; 0x021D7C10 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + add r7, r3, #0 + add r4, r1, #0 + ldr r0, [r5, #0x1c] + add r1, r7, #0 + add r6, r2, #0 + bl FUN_0202A150 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, [r5, #0x1c] + add r1, r7, #1 + bl FUN_0202A150 + lsl r0, r0, #0x10 + add r6, #8 + lsr r7, r0, #0x10 + lsl r1, r6, #0x10 + ldr r0, [r5, #0x20] + lsr r1, r1, #0x10 + mov r2, #0 + bl FUN_0202A578 + lsl r2, r0, #0x10 + add r0, sp, #0x18 + ldrb r6, [r0, #0x10] + lsr r2, r2, #0xe + mov r0, #0xff + str r6, [sp] + str r0, [sp, #4] + mov r0, #0xc1 + lsl r0, r0, #0xa + str r0, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + add r2, r5, r2 + ldr r2, [r2, #0x4c] + add r0, r4, #0 + mov r3, #4 + bl FUN_0201BDE0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + ldr r0, [r5, #0x2c] + mov r1, #0 + add r2, r7, #0 + mov r3, #4 + bl FUN_0200AD38 + ldr r0, [r5, #0x2c] + ldr r1, [r5, #0x30] + ldr r2, [r5, #0x5c] + bl FUN_0200B7B8 + mov r0, #0 + ldr r1, [r5, #0x30] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xa4 + sub r3, r1, r0 + str r6, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D7D18 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r5, #0x30] + add r0, r4, #0 + bl FUN_0201BDE0 + add r0, sp, #0x18 + ldrb r0, [r0, #0x10] + add r0, #0x18 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + str r6, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r0, #0xc1 + lsl r0, r0, #0xa + str r0, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + ldr r2, [r5, #0x54] + add r0, r4, #0 + mov r3, #4 + bl FUN_0201BDE0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + ldr r0, [r5, #0x2c] + ldr r2, [sp, #0x10] + mov r1, #0 + mov r3, #4 + bl FUN_0200AD38 + ldr r0, [r5, #0x2c] + ldr r1, [r5, #0x30] + ldr r2, [r5, #0x5c] + bl FUN_0200B7B8 + mov r0, #0 + ldr r1, [r5, #0x30] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xa4 + sub r3, r1, r0 + str r6, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D7D18 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r5, #0x30] + add r0, r4, #0 + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_020191D0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D7D18: .word 0x00010200 + thumb_func_end MOD74_021D7C10 + + thumb_func_start MOD74_021D7D1C +MOD74_021D7D1C: ; 0x021D7D1C + push {r3, r4, r5, lr} + sub sp, #0x10 + add r4, r0, #0 + ldrb r1, [r4, #0xa] + ldr r0, [r4, #0x28] + ldr r2, [r4, #0x30] + bl FUN_0200A8E0 + mov r0, #0 + ldr r1, [r4, #0x30] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xc0 + sub r3, r1, r0 + mov r0, #8 + str r0, [sp] + mov r1, #0 + lsr r5, r3, #0x1f + add r5, r3, r5 + ldr r0, _021D7E94 ; =0x000F0200 + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x30] + add r0, #0x6c + asr r3, r5, #1 + bl FUN_0201BDE0 + ldrb r1, [r4, #0xa] + ldr r0, [r4, #0x28] + ldr r2, [r4, #0x30] + add r1, r1, #3 + bl FUN_0200A8E0 + mov r1, #0 + str r1, [sp] + mov r0, #0xc1 + str r1, [sp, #4] + lsl r0, r0, #0xa + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x30] + add r0, #0x7c + add r3, r1, #0 + bl FUN_0201BDE0 + ldrb r1, [r4, #0xa] + ldr r0, [r4, #0x28] + ldr r2, [r4, #0x30] + add r1, r1, #6 + bl FUN_0200A8E0 + mov r0, #3 + str r0, [sp] + mov r1, #0 + mov r0, #0xc1 + str r1, [sp, #4] + lsl r0, r0, #0xa + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x30] + add r0, #0x8c + add r3, r1, #0 + bl FUN_0201BDE0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _021D7DB8 + cmp r0, #1 + beq _021D7DDE + cmp r0, #2 + beq _021D7E04 + add sp, #0x10 + pop {r3, r4, r5, pc} +_021D7DB8: + add r1, r4, #0 + mov r2, #0 + add r0, r4, #0 + add r1, #0x9c + mov r3, #0x35 + str r2, [sp] + bl MOD74_021D7C10 + mov r0, #3 + str r0, [sp] + add r0, r4, #0 + add r4, #0xac + add r1, r4, #0 + mov r2, #1 + mov r3, #0x37 + bl MOD74_021D7C10 + add sp, #0x10 + pop {r3, r4, r5, pc} +_021D7DDE: + mov r0, #0 + add r1, r4, #0 + str r0, [sp] + add r0, r4, #0 + add r1, #0x9c + mov r2, #2 + mov r3, #0x39 + bl MOD74_021D7C10 + add r0, r4, #0 + add r4, #0xac + mov r2, #3 + add r1, r4, #0 + mov r3, #0x3b + str r2, [sp] + bl MOD74_021D7C10 + add sp, #0x10 + pop {r3, r4, r5, pc} +_021D7E04: + ldr r0, [r4, #0x28] + ldr r2, [r4, #0x30] + mov r1, #0xc + bl FUN_0200A8E0 + mov r0, #0xa + str r0, [sp] + mov r1, #0 + mov r0, #0xc1 + str r1, [sp, #4] + lsl r0, r0, #0xa + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x30] + add r0, #0x9c + mov r3, #4 + bl FUN_0201BDE0 + ldr r0, [r4, #0x20] + mov r1, #0 + bl FUN_0202A444 + mov r1, #0 + add r2, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4, #0x2c] + mov r3, #2 + bl FUN_0200AD38 + ldr r0, [r4, #0x2c] + ldr r1, [r4, #0x30] + ldr r2, [r4, #0x60] + bl FUN_0200B7B8 + mov r0, #0 + ldr r1, [r4, #0x30] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0x40 + sub r1, r1, r0 + lsr r0, r1, #0x1f + add r0, r1, r0 + asr r3, r0, #1 + mov r0, #0xa + str r0, [sp] + mov r1, #0 + ldr r0, _021D7E98 ; =0x00050600 + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x30] + add r3, #0x40 + add r0, #0x9c + bl FUN_0201BDE0 + mov r0, #3 + str r0, [sp] + add r0, r4, #0 + add r4, #0xac + add r1, r4, #0 + mov r2, #4 + mov r3, #0x3d + bl MOD74_021D7C10 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021D7E94: .word 0x000F0200 +_021D7E98: .word 0x00050600 + thumb_func_end MOD74_021D7D1C + + thumb_func_start MOD74_021D7E9C +MOD74_021D7E9C: ; 0x021D7E9C + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r7, r0, #0 + ldr r0, [r7, #0x24] + ldr r1, [r7] + bl FUN_0202A878 + str r0, [sp] + ldr r5, [sp] + mov r0, #0 + add r4, r7, #0 + str r0, [sp, #4] + add r4, #0xbc + add r6, r5, #0 +_021D7EB8: + add r0, r5, #0 + add r0, #0x20 + ldrb r0, [r0] + add r1, r4, #0 + add r1, #8 + lsl r0, r0, #0x1e + lsr r0, r0, #0x1f + strb r0, [r4, #4] + ldrb r0, [r5, #0x12] + mov r2, #8 + strb r0, [r4, #5] + ldrb r0, [r5, #0x13] + strb r0, [r4, #6] + add r0, r5, #0 + add r0, #0x20 + ldrb r0, [r0] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + strb r0, [r4, #7] + add r0, r5, #0 + add r0, #0x18 + bl MI_CpuCopy8 + ldr r1, [r7] + mov r0, #8 + bl FUN_020219F4 + str r0, [r4] + ldrb r0, [r4, #7] + cmp r0, #0 + ldr r0, [r4] + beq _021D7F06 + ldrb r1, [r4, #4] + lsl r1, r1, #2 + add r1, r7, r1 + ldr r1, [r1, #0x64] + bl FUN_02021A74 + b _021D7F0C +_021D7F06: + add r1, r6, #0 + bl FUN_02021E28 +_021D7F0C: + ldr r0, [sp, #4] + add r4, #0x10 + add r0, r0, #1 + add r5, #0x22 + add r6, #0x22 + str r0, [sp, #4] + cmp r0, #0x1e + blt _021D7EB8 + ldr r0, [sp] + bl FUN_02016A18 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD74_021D7E9C + + thumb_func_start MOD74_021D7F28 +MOD74_021D7F28: ; 0x021D7F28 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_021D7F2E: + add r0, r5, #0 + add r0, #0xbc + ldr r0, [r0] + bl FUN_02021A20 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #0x1e + blt _021D7F2E + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD74_021D7F28 + + thumb_func_start MOD74_021D7F44 +MOD74_021D7F44: ; 0x021D7F44 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + str r0, [sp, #0x10] + str r1, [sp, #0x14] + add r0, r1, #0 + mov r1, #0 + add r5, r2, #0 + add r4, r3, #0 + bl FUN_02019620 + cmp r4, #8 + blo _021D7F8C + mov r0, #2 + str r0, [sp, #0x18] + mov r0, #0 + add r1, r5, #0 + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0x28 + sub r0, r1, r0 + lsr r3, r0, #1 + mov r0, #0x34 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D7FFC ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + ldr r0, [sp, #0x14] + add r2, r5, #0 + add r3, #0xa0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + b _021D7F90 +_021D7F8C: + mov r0, #3 + str r0, [sp, #0x18] +_021D7F90: + lsl r0, r4, #1 + add r0, r4, r0 + str r0, [sp, #0x1c] + mov r0, #0 + str r0, [sp, #0x20] + ldr r0, [sp, #0x18] + cmp r0, #0 + ble _021D7FF0 + ldr r7, [sp, #0x20] + mov r6, #4 +_021D7FA4: + mov r4, #0 + add r5, r4, #0 +_021D7FA8: + ldr r0, [sp, #0x1c] + add r1, r4, r7 + add r0, r0, r1 + lsl r1, r0, #4 + ldr r0, [sp, #0x10] + add r2, r0, r1 + ldrb r0, [r2, #4] + cmp r0, #0 + beq _021D7FBE + ldr r1, _021D8000 ; =0x000B0C00 + b _021D7FC0 +_021D7FBE: + ldr r1, _021D8004 ; =0x00090A00 +_021D7FC0: + str r6, [sp] + mov r0, #0xff + str r0, [sp, #4] + str r1, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x14] + ldr r2, [r2] + mov r1, #0 + add r3, r5, #0 + bl FUN_0201BDE0 + add r4, r4, #1 + add r5, #0x48 + cmp r4, #3 + blt _021D7FA8 + ldr r0, [sp, #0x20] + add r7, r7, #3 + add r1, r0, #1 + ldr r0, [sp, #0x18] + add r6, #0x18 + str r1, [sp, #0x20] + cmp r1, r0 + blt _021D7FA4 +_021D7FF0: + ldr r0, [sp, #0x14] + bl FUN_020191D0 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + nop +_021D7FFC: .word 0x00010200 +_021D8000: .word 0x000B0C00 +_021D8004: .word 0x00090A00 + thumb_func_end MOD74_021D7F44 + + thumb_func_start MOD74_021D8008 +MOD74_021D8008: ; 0x021D8008 + push {r4, r5, lr} + sub sp, #0x14 + add r4, r0, #0 + ldr r0, [r4, #0x24] + add r1, sp, #0x10 + bl FUN_0202A864 + ldr r0, [r4, #0x30] + bl FUN_02021A4C + mov r1, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + add r2, sp, #0x10 + ldrb r2, [r2] + ldr r0, [r4, #0x2c] + mov r3, #2 + bl FUN_0200AD38 + mov r0, #2 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + add r2, sp, #0x10 + ldrb r2, [r2, #1] + ldr r0, [r4, #0x2c] + mov r3, #3 + bl FUN_0200AD38 + ldr r0, [r4, #0x2c] + ldr r1, [r4, #0x30] + ldr r2, [r4, #0x38] + bl FUN_0200B7B8 + mov r0, #0 + ldr r1, [r4, #0x30] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xc0 + sub r3, r1, r0 + mov r0, #4 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D80CC ; =0x000F0200 + lsr r5, r3, #0x1f + str r0, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + add r0, r4, #0 + add r5, r3, r5 + ldr r2, [r4, #0x30] + add r0, #0x6c + asr r3, r5, #1 + bl FUN_0201BDE0 + ldrb r1, [r4, #0xa] + ldr r0, [r4, #0x28] + ldr r2, [r4, #0x30] + add r1, #0x10 + bl FUN_0200A8E0 + mov r0, #0 + ldr r1, [r4, #0x30] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xc0 + sub r3, r1, r0 + mov r0, #0x14 + str r0, [sp] + mov r1, #0 + lsr r5, r3, #0x1f + add r5, r3, r5 + ldr r0, _021D80CC ; =0x000F0200 + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x30] + add r0, #0x6c + asr r3, r5, #1 + bl FUN_0201BDE0 + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + add r0, r4, #0 + add r1, r4, #0 + ldr r2, [r4, #0x34] + add r0, #0xbc + add r1, #0x7c + bl MOD74_021D7F44 + add sp, #0x14 + pop {r4, r5, pc} + .align 2, 0 +_021D80CC: .word 0x000F0200 + thumb_func_end MOD74_021D8008 + + thumb_func_start MOD74_021D80D0 +MOD74_021D80D0: ; 0x021D80D0 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r4, r0, #0 + ldrb r2, [r4, #0xb] + ldrb r3, [r4, #0xc] + add r0, #0xbc + lsl r1, r2, #1 + add r1, r2, r1 + add r1, r3, r1 + lsl r1, r1, #4 + add r5, r0, r1 + ldrb r2, [r5, #5] + cmp r2, #0 + bne _021D8108 + mov r0, #4 + str r0, [sp] + mov r1, #0 + ldr r0, _021D8188 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x48] + add r0, #0x8c + add r3, r1, #0 + bl FUN_0201BDE0 + b _021D8172 +_021D8108: + ldrb r0, [r5, #6] + cmp r0, #0 + ldr r0, [r4, #0x2c] + bne _021D813C + mov r1, #0 + bl FUN_0200B4A0 + ldr r0, [r4, #0x2c] + ldr r1, [r4, #0x30] + ldr r2, [r4, #0x44] + bl FUN_0200B7B8 + mov r0, #4 + str r0, [sp] + mov r1, #0 + ldr r0, _021D8188 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x30] + add r0, #0x8c + add r3, r1, #0 + bl FUN_0201BDE0 + b _021D8172 +_021D813C: + mov r1, #0 + bl FUN_0200B4A0 + ldrb r2, [r5, #5] + ldrb r3, [r5, #6] + ldr r0, [r4, #0x2c] + mov r1, #1 + bl FUN_0200B4D8 + ldr r0, [r4, #0x2c] + ldr r1, [r4, #0x30] + ldr r2, [r4, #0x40] + bl FUN_0200B7B8 + mov r0, #4 + str r0, [sp] + mov r1, #0 + ldr r0, _021D8188 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x30] + add r0, #0x8c + add r3, r1, #0 + bl FUN_0201BDE0 +_021D8172: + add r0, r4, #0 + add r0, #0x8c + bl FUN_020191D0 + add r0, r4, #0 + mov r1, #0 + bl MOD74_021D8388 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021D8188: .word 0x00010200 + thumb_func_end MOD74_021D80D0 + + thumb_func_start MOD74_021D818C +MOD74_021D818C: ; 0x021D818C + push {r3, r4, r5, lr} + sub sp, #0x10 + add r4, r0, #0 + ldrb r2, [r4, #0xb] + ldrb r3, [r4, #0xc] + add r0, #0xbc + lsl r1, r2, #1 + add r1, r2, r1 + add r1, r3, r1 + lsl r1, r1, #4 + add r0, r0, r1 + ldr r1, [r4] + add r0, #8 + bl FUN_020137D4 + add r5, r0, #0 + add r0, r4, #0 + add r0, #0x8c + mov r1, #0 + bl FUN_02019620 + mov r0, #4 + str r0, [sp] + mov r1, #0 + ldr r0, _021D81DC ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r4, #0x8c + add r0, r4, #0 + add r2, r5, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r5, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021D81DC: .word 0x00010200 + thumb_func_end MOD74_021D818C + + thumb_func_start MOD74_021D81E0 +MOD74_021D81E0: ; 0x021D81E0 + push {r4, lr} + add r4, r0, #0 + add r0, #0x8c + mov r1, #0 + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x8c + bl FUN_02019570 + add r0, r4, #0 + mov r1, #1 + bl MOD74_021D8388 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD74_021D81E0 + + thumb_func_start MOD74_021D8200 +MOD74_021D8200: ; 0x021D8200 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x50 + add r4, r0, #0 + ldr r1, [r4] + mov r0, #0x20 + bl FUN_0201C24C + ldr r0, [r4] + bl FUN_0200BB14 + mov r1, #0xa7 + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [r4, r1] + bl FUN_0200BB34 + mov r7, #0x2a + lsl r7, r7, #4 + add r2, sp, #0x30 + ldr r3, _021D82A4 ; =0x021D84F8 + str r0, [r4, r7] + ldmia r3!, {r0, r1} + add r6, r2, #0 + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + ldr r5, _021D82A8 ; =0x021D84B0 + stmia r2!, {r0, r1} + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + add r1, r6, #0 + str r0, [r3] + sub r0, r7, #4 + ldr r0, [r4, r0] + mov r3, #0x20 + bl FUN_0200BB6C + sub r1, r7, #4 + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + mov r2, #4 + bl FUN_0200BBF0 + ldr r0, [r4] + bl FUN_0200A064 + ldr r0, [r4] + bl FUN_0200A06C + ldr r5, _021D82AC ; =0x021D84DC + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + sub r1, r7, #4 + str r0, [r3] + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + bl FUN_0200BD20 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + add sp, #0x50 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D82A4: .word 0x021D84F8 +_021D82A8: .word 0x021D84B0 +_021D82AC: .word 0x021D84DC + thumb_func_end MOD74_021D8200 + + thumb_func_start MOD74_021D82B0 +MOD74_021D82B0: ; 0x021D82B0 + push {r4, lr} + mov r1, #0xa7 + add r4, r0, #0 + lsl r1, r1, #2 + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + bl FUN_0200BCE0 + mov r0, #0xa7 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200BD04 + bl FUN_0201C29C + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD74_021D82B0 + + thumb_func_start MOD74_021D82D4 +MOD74_021D82D4: ; 0x021D82D4 + push {r3, lr} + mov r1, #0x2a + lsl r1, r1, #4 + ldr r0, [r0, r1] + cmp r0, #0 + beq _021D82E4 + bl FUN_0200BC1C +_021D82E4: + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD74_021D82D4 + + thumb_func_start MOD74_021D82E8 +MOD74_021D82E8: ; 0x021D82E8 + ldr r3, _021D82EC ; =FUN_0200BC30 + bx r3 + .align 2, 0 +_021D82EC: .word FUN_0200BC30 + thumb_func_end MOD74_021D82E8 + + thumb_func_start MOD74_021D82F0 +MOD74_021D82F0: ; 0x021D82F0 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r6, _021D8368 ; =0x021D85C4 + mov r7, #0 + add r4, r5, #0 +_021D82FA: + mov r0, #0xa7 + mov r1, #0x2a + lsl r0, r0, #2 + lsl r1, r1, #4 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200BE38 + mov r1, #0xa9 + lsl r1, r1, #2 + str r0, [r4, r1] + add r7, r7, #1 + add r6, #0x28 + add r4, r4, #4 + cmp r7, #4 + blt _021D82FA + add r0, r1, #0 + add r0, #8 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0xaa + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0xa9 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0xab + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x2b + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0xaa + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #3 + bl FUN_02020238 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8368: .word 0x021D85C4 + thumb_func_end MOD74_021D82F0 + + thumb_func_start MOD74_021D836C +MOD74_021D836C: ; 0x021D836C + push {r4, r5, r6, lr} + mov r6, #0xa9 + add r5, r0, #0 + mov r4, #0 + lsl r6, r6, #2 +_021D8376: + ldr r0, [r5, r6] + bl FUN_0200BC14 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021D8376 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD74_021D836C + + thumb_func_start MOD74_021D8388 +MOD74_021D8388: ; 0x021D8388 + push {r3, r4, r5, lr} + add r5, r0, #0 + cmp r1, #0 + bne _021D83A0 + mov r0, #0xa9 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_02020248 + mov r4, #0 + b _021D83AE +_021D83A0: + mov r0, #0xa9 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02020248 + mov r4, #1 +_021D83AE: + mov r0, #0xa9 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_020200BC + mov r0, #0xab + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_020200BC + mov r0, #0x2b + lsl r0, r0, #4 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_020200BC + pop {r3, r4, r5, pc} + thumb_func_end MOD74_021D8388 + + thumb_func_start MOD74_021D83D4 +MOD74_021D83D4: ; 0x021D83D4 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldrb r0, [r5, #0xe] + add r4, r1, #0 + add r6, r2, #0 + add r7, r3, #0 + cmp r0, #8 + bne _021D8428 + mov r0, #0xaa + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + cmp r4, #0xa + bne _021D840E + mov r0, #0xaa + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_02020208 + mov r0, #0xa9 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + b _021D8440 +_021D840E: + mov r0, #0xaa + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02020208 + mov r0, #0xa9 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + b _021D8440 +_021D8428: + mov r0, #0xa9 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0xaa + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 +_021D8440: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _021D844C + cmp r0, #8 + beq _021D845A + b _021D8468 +_021D844C: + mov r0, #0xab + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + b _021D8480 +_021D845A: + mov r0, #0x2b + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + b _021D8480 +_021D8468: + mov r0, #0xab + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x2b + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 +_021D8480: + mov r1, #0x48 + mov r2, #0x18 + mov r0, #0xa9 + mul r1, r6 + mul r2, r7 + lsl r0, r0, #2 + add r1, #0x36 + add r2, #0x44 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r5, r0] + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl FUN_0200C6E4 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD74_021D83D4 + + .section .rodata + ; 0x021D84A0 + .incbin "baserom.nds", 0x2CF9C0, 0x1C4 + + .section .data + ; 0x021D8680 + .incbin "baserom.nds", 0x2CFBA0, 0x80 diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s new file mode 100644 index 00000000..6f85109d --- /dev/null +++ b/arm9/modules/75/asm/module_75.s @@ -0,0 +1,11114 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD75_021E6BA0 +MOD75_021E6BA0: ; 0x021E6BA0 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r0, #1 + lsl r0, r0, #0x1a + ldr r2, [r0] + ldr r1, _021E6D58 ; =0xFFFFE0FF + ldr r3, _021E6D5C ; =0x04001000 + and r2, r1 + str r2, [r0] + ldr r2, [r3] + add r0, #0x50 + and r1, r2 + str r1, [r3] + mov r1, #0 + strh r1, [r0] + add r3, #0x50 + strh r1, [r3] + mov r1, #6 + mov r0, #3 + lsl r2, r1, #0xf + bl FUN_0201681C + ldr r1, _021E6D60 ; =0x000004A4 + add r0, r5, #0 + mov r2, #6 + bl FUN_02006268 + ldr r2, _021E6D60 ; =0x000004A4 + mov r1, #0 + add r4, r0, #0 + bl Call_FillMemWithValue + add r0, r5, #0 + bl FUN_0200628C + add r1, r4, #0 + add r1, #0xc4 + str r0, [r1] + add r0, r4, #0 + bl MOD75_021E6FA4 + mov r0, #6 + bl FUN_02016B94 + str r0, [r4] + add r0, r4, #0 + add r0, #0xcc + ldr r0, [r0] + bl FUN_020239CC + ldr r1, _021E6D64 ; =0x00000425 + mov r3, #0 + strb r0, [r4, r1] + mov r1, #6 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + str r1, [sp, #8] + mov r1, #3 + add r2, r1, #0 + bl FUN_0200E1D0 + mov r0, #3 + mov r1, #8 + bl FUN_0201669C + add r0, r4, #0 + bl MOD75_021E7470 + add r0, r4, #0 + bl MOD75_021E737C + add r0, r4, #0 + bl MOD75_021E771C + add r0, r4, #0 + bl MOD75_021E73E8 + add r0, r4, #0 + bl MOD75_021E7CE4 + bl MOD75_021E7034 + ldr r0, [r4] + bl MOD75_021E7054 + add r0, r4, #0 + bl MOD75_021E7214 + add r0, r4, #0 + bl MOD75_021E8680 + bl FUN_0201CC08 + mov r0, #4 + bl FUN_0201CC24 + add r0, r4, #0 + bl MOD75_021EA604 + mov r0, #1 + bl FUN_02002BB8 + add r0, r4, #0 + bl MOD75_021EA7BC + add r0, r4, #0 + bl MOD75_021EA81C + add r0, r4, #0 + bl MOD75_021EA8BC + add r0, r4, #0 + bl MOD75_021EA9F8 + add r0, r4, #0 + bl MOD75_021EB048 + add r0, r4, #0 + bl MOD75_021EAD94 + add r0, r4, #0 + bl MOD75_021E7580 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r0, r3, #0 + add r1, r3, #0 + add r0, #0xa + add r1, #8 + add r0, r0, r2 + add r1, r1, r2 + add r2, r3, r2 + ldrb r2, [r2, #0xd] + bl MOD75_021E7758 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r0, r3, #0 + add r1, r3, #0 + add r0, #0xa + add r1, #8 + add r0, r0, r2 + add r1, r1, r2 + add r2, r3, r2 + ldrb r2, [r2, #0xd] + mov r3, #9 + bl MOD75_021E7794 + add r0, r4, #0 + bl MOD75_021EB9B4 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r2, r3, r2 + ldrh r1, [r2, #0xa] + ldrh r2, [r2, #8] + add r0, r4, #0 + bl MOD75_021E77E8 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x65 + ldrb r0, [r0] + add r0, #0xfc + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #1 + bhi _021E6D3A + add r0, r4, #0 + bl MOD75_021EB8E8 +_021E6D3A: + ldr r0, _021E6D68 ; =MOD75_021E700C + add r1, r4, #0 + bl FUN_02015F10 + mov r1, #0 + mov r0, #0x33 + add r2, r1, #0 + bl FUN_0200433C + bl FUN_02033F20 + mov r0, #1 + add sp, #0xc + pop {r4, r5, pc} + nop +_021E6D58: .word 0xFFFFE0FF +_021E6D5C: .word 0x04001000 +_021E6D60: .word 0x000004A4 +_021E6D64: .word 0x00000425 +_021E6D68: .word MOD75_021E700C + thumb_func_end MOD75_021E6BA0 + + thumb_func_start MOD75_021E6D6C +MOD75_021E6D6C: ; 0x021E6D6C + push {r3, r4, r5, lr} + add r4, r1, #0 + bl FUN_02006278 + ldr r1, [r4] + add r5, r0, #0 + cmp r1, #0x18 + bhi _021E6DC2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021E6D88: ; jump table + .short _021E6DBA - _021E6D88 - 2 ; case 0 + .short _021E6DF2 - _021E6D88 - 2 ; case 1 + .short _021E6DFA - _021E6D88 - 2 ; case 2 + .short _021E6E36 - _021E6D88 - 2 ; case 3 + .short _021E6E44 - _021E6D88 - 2 ; case 4 + .short _021E6EE0 - _021E6D88 - 2 ; case 5 + .short _021E6EE0 - _021E6D88 - 2 ; case 6 + .short _021E6E4C - _021E6D88 - 2 ; case 7 + .short _021E6E54 - _021E6D88 - 2 ; case 8 + .short _021E6E5C - _021E6D88 - 2 ; case 9 + .short _021E6E64 - _021E6D88 - 2 ; case 10 + .short _021E6E6C - _021E6D88 - 2 ; case 11 + .short _021E6E74 - _021E6D88 - 2 ; case 12 + .short _021E6E7C - _021E6D88 - 2 ; case 13 + .short _021E6E84 - _021E6D88 - 2 ; case 14 + .short _021E6E8C - _021E6D88 - 2 ; case 15 + .short _021E6E94 - _021E6D88 - 2 ; case 16 + .short _021E6E9C - _021E6D88 - 2 ; case 17 + .short _021E6EA4 - _021E6D88 - 2 ; case 18 + .short _021E6EAC - _021E6D88 - 2 ; case 19 + .short _021E6EB4 - _021E6D88 - 2 ; case 20 + .short _021E6EBC - _021E6D88 - 2 ; case 21 + .short _021E6EC4 - _021E6D88 - 2 ; case 22 + .short _021E6ECC - _021E6D88 - 2 ; case 23 + .short _021E6ED4 - _021E6D88 - 2 ; case 24 +_021E6DBA: + bl FUN_0200E308 + cmp r0, #1 + beq _021E6DC4 +_021E6DC2: + b _021E6EE0 +_021E6DC4: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x65 + ldrb r0, [r0] + cmp r0, #2 + bne _021E6DD8 + mov r0, #0x10 + str r0, [r4] + b _021E6EE0 +_021E6DD8: + cmp r0, #1 + bne _021E6DE2 + mov r0, #0xe + str r0, [r4] + b _021E6EE0 +_021E6DE2: + cmp r0, #3 + bne _021E6DEC + mov r0, #0x17 + str r0, [r4] + b _021E6EE0 +_021E6DEC: + mov r0, #1 + str r0, [r4] + b _021E6EE0 +_021E6DF2: + bl MOD75_021E7AE0 + str r0, [r4] + b _021E6EE0 +_021E6DFA: + bl MOD75_021E86C0 + add r0, r5, #0 + bl MOD75_021E7EE4 + cmp r0, #1 + bne _021E6EE0 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x65 + ldrb r0, [r0] + cmp r0, #2 + bne _021E6E1C + mov r0, #0x10 + str r0, [r4] + b _021E6EE0 +_021E6E1C: + cmp r0, #1 + bne _021E6E26 + mov r0, #0xe + str r0, [r4] + b _021E6EE0 +_021E6E26: + cmp r0, #3 + bne _021E6E30 + mov r0, #0x17 + str r0, [r4] + b _021E6EE0 +_021E6E30: + mov r0, #1 + str r0, [r4] + b _021E6EE0 +_021E6E36: + bl MOD75_021E88BC + cmp r0, #1 + bne _021E6EE0 + mov r0, #1 + str r0, [r4] + b _021E6EE0 +_021E6E44: + bl MOD75_021E8CF4 + str r0, [r4] + b _021E6EE0 +_021E6E4C: + bl MOD75_021E94D0 + str r0, [r4] + b _021E6EE0 +_021E6E54: + bl MOD75_021E95BC + str r0, [r4] + b _021E6EE0 +_021E6E5C: + bl MOD75_021E95E0 + str r0, [r4] + b _021E6EE0 +_021E6E64: + bl MOD75_021E971C + str r0, [r4] + b _021E6EE0 +_021E6E6C: + bl MOD75_021E9750 + str r0, [r4] + b _021E6EE0 +_021E6E74: + bl MOD75_021E8EB0 + str r0, [r4] + b _021E6EE0 +_021E6E7C: + bl MOD75_021E8FC8 + str r0, [r4] + b _021E6EE0 +_021E6E84: + bl MOD75_021E9840 + str r0, [r4] + b _021E6EE0 +_021E6E8C: + bl MOD75_021E9930 + str r0, [r4] + b _021E6EE0 +_021E6E94: + bl MOD75_021E9980 + str r0, [r4] + b _021E6EE0 +_021E6E9C: + bl MOD75_021E9B4C + str r0, [r4] + b _021E6EE0 +_021E6EA4: + bl MOD75_021E9B88 + str r0, [r4] + b _021E6EE0 +_021E6EAC: + bl MOD75_021E9D6C + str r0, [r4] + b _021E6EE0 +_021E6EB4: + bl MOD75_021E9D90 + str r0, [r4] + b _021E6EE0 +_021E6EBC: + bl MOD75_021E9EE4 + str r0, [r4] + b _021E6EE0 +_021E6EC4: + bl MOD75_021E9F74 + str r0, [r4] + b _021E6EE0 +_021E6ECC: + bl MOD75_021E9FDC + str r0, [r4] + b _021E6EE0 +_021E6ED4: + bl FUN_0200E308 + cmp r0, #1 + bne _021E6EE0 + mov r0, #1 + pop {r3, r4, r5, pc} +_021E6EE0: + add r0, r5, #0 + bl MOD75_021E85D8 + add r0, r5, #0 + bl MOD75_021EC3B8 + add r0, r5, #0 + bl MOD75_021EC018 + add r5, #0xdc + ldr r0, [r5] + bl FUN_0200BC1C + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD75_021E6D6C + + thumb_func_start MOD75_021E6F00 +MOD75_021E6F00: ; 0x021E6F00 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + bl MOD75_021EBFE4 + add r0, r4, #0 + bl MOD75_021E7AA4 + add r0, r4, #0 + bl MOD75_021E752C + add r0, r4, #4 + bl MOD75_021EA7A0 + ldr r0, [r4] + bl MOD75_021E71BC + bl FUN_0201CD04 + bl FUN_0201C29C + add r0, r4, #0 + bl MOD75_021EB110 + add r0, r4, #0 + bl MOD75_021EA7F8 + add r0, r4, #0 + bl MOD75_021EADC0 + add r0, r4, #0 + bl MOD75_021E773C + mov r0, #0xfe + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02021A20 + mov r0, #0x12 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + mov r0, #0x47 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + mov r0, #0x11 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_0200B990 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200AB18 + add r4, #0xd4 + ldr r0, [r4] + bl FUN_020066F4 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #6 + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD75_021E6F00 + + thumb_func_start MOD75_021E6FA4 +MOD75_021E6FA4: ; 0x021E6FA4 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r0, [r0] + bl FUN_0206F158 + add r1, r4, #0 + add r1, #0xc8 + str r0, [r1] + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r0, [r0] + bl FUN_020238F4 + add r1, r4, #0 + add r1, #0xcc + str r0, [r1] + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r0, [r0] + bl LoadPlayerDataAddress + add r4, #0xd0 + str r0, [r4] + pop {r4, pc} + thumb_func_end MOD75_021E6FA4 + + thumb_func_start MOD75_021E6FDC +MOD75_021E6FDC: ; 0x021E6FDC + add r0, #0xc4 + ldr r0, [r0] + ldr r3, _021E6FE8 ; =FUN_0202A9B0 + ldr r0, [r0] + bx r3 + nop +_021E6FE8: .word FUN_0202A9B0 + thumb_func_end MOD75_021E6FDC + + thumb_func_start MOD75_021E6FEC +MOD75_021E6FEC: ; 0x021E6FEC + push {r4, lr} + add r4, r1, #0 + bl MOD75_021E6FDC + bl FUN_0202AB4C + strb r4, [r0] + pop {r4, pc} + thumb_func_end MOD75_021E6FEC + + thumb_func_start MOD75_021E6FFC +MOD75_021E6FFC: ; 0x021E6FFC + push {r4, lr} + add r4, r1, #0 + bl MOD75_021E6FDC + add r1, r4, #0 + bl FUN_0202AB68 + pop {r4, pc} + thumb_func_end MOD75_021E6FFC + + thumb_func_start MOD75_021E700C +MOD75_021E700C: ; 0x021E700C + push {r3, lr} + ldr r0, [r0] + bl FUN_0201AB60 + bl FUN_0201C30C + bl FUN_0200BC30 + ldr r3, _021E702C ; =0x027E0000 + ldr r1, _021E7030 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r3, pc} + nop +_021E702C: .word 0x027E0000 +_021E7030: .word 0x00003FF8 + thumb_func_end MOD75_021E700C + + thumb_func_start MOD75_021E7034 +MOD75_021E7034: ; 0x021E7034 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021E7050 ; =0x021EC568 + add r3, sp, #0 + mov r2, #5 +_021E703E: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021E703E + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021E7050: .word 0x021EC568 + thumb_func_end MOD75_021E7034 + + thumb_func_start MOD75_021E7054 +MOD75_021E7054: ; 0x021E7054 + push {r4, r5, lr} + sub sp, #0xd4 + ldr r5, _021E719C ; =0x021EC41C + add r3, sp, #0xc4 + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _021E71A0 ; =0x021EC440 + add r3, sp, #0xa8 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _021E71A4 ; =0x021EC45C + add r3, sp, #0x8c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021E71A8 ; =0x021EC494 + add r3, sp, #0x70 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #2 + bl FUN_02018744 + ldr r5, _021E71AC ; =0x021EC4E8 + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #3 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021E71B0 ; =0x021EC478 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + str r0, [r3] + add r0, r4, #0 + mov r1, #4 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _021E71B4 ; =0x021EC4B0 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #5 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021E71B8 ; =0x021EC4CC + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #7 + str r0, [r3] + add r0, r4, #0 + mov r3, #1 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #7 + mov r2, #9 + mov r3, #0x80 + bl FUN_0201AF50 + add r0, r4, #0 + mov r1, #7 + mov r2, #0xc + mov r3, #0x50 + bl FUN_0201AF50 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #6 + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #6 + bl FUN_02017F18 + add sp, #0xd4 + pop {r4, r5, pc} + nop +_021E719C: .word 0x021EC41C +_021E71A0: .word 0x021EC440 +_021E71A4: .word 0x021EC45C +_021E71A8: .word 0x021EC494 +_021E71AC: .word 0x021EC4E8 +_021E71B0: .word 0x021EC478 +_021E71B4: .word 0x021EC4B0 +_021E71B8: .word 0x021EC4CC + thumb_func_end MOD75_021E7054 + + thumb_func_start MOD75_021E71BC +MOD75_021E71BC: ; 0x021E71BC + push {r4, lr} + add r4, r0, #0 + mov r0, #0x1f + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #0x1b + mov r1, #0 + bl FUN_0201E74C + add r0, r4, #0 + mov r1, #7 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #3 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + mov r0, #6 + add r1, r4, #0 + bl FUN_02016A8C + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E71BC + + thumb_func_start MOD75_021E7214 +MOD75_021E7214: ; 0x021E7214 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0xd + mov r1, #6 + bl FUN_02006670 + add r1, r4, #0 + add r1, #0xd4 + str r0, [r1] + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #7 + mov r3, #1 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #0xa + mov r3, #1 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #9 + mov r3, #3 + bl FUN_020068C8 + mov r2, #0 + str r2, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #0xd + mov r1, #8 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #0x20 + str r0, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #0xd + mov r1, #0x12 + mov r2, #0 + lsl r3, r0, #5 + bl FUN_02006930 + mov r1, #0x16 + mov r0, #0 + lsl r1, r1, #4 + mov r2, #6 + bl FUN_02002EEC + mov r1, #0 + str r1, [sp] + mov r0, #6 + str r0, [sp, #4] + ldr r0, [r4] + ldr r2, _021E7374 ; =0x000003F7 + mov r3, #0xe + bl FUN_0200CB00 + add r0, r4, #0 + add r0, #0xd0 + ldr r0, [r0] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #6 + str r0, [sp, #4] + ldr r0, [r4] + ldr r2, _021E7378 ; =0x000003D9 + mov r1, #0 + mov r3, #0xc + bl FUN_0200CD68 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #0xb + mov r3, #5 + bl FUN_0200687C + mov r3, #0 + str r3, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #0xd + mov r1, #0xc + mov r2, #4 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + mov r0, #0xd + ldr r2, [r4] + add r1, r0, #0 + mov r3, #5 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #0x25 + mov r3, #7 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #0x24 + mov r3, #7 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #0xf + mov r3, #4 + bl FUN_0200687C + mov r3, #0x40 + str r3, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #0xd + mov r1, #0xe + mov r2, #4 + bl FUN_02006930 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_021E7374: .word 0x000003F7 +_021E7378: .word 0x000003D9 + thumb_func_end MOD75_021E7214 + + thumb_func_start MOD75_021E737C +MOD75_021E737C: ; 0x021E737C + push {r4, lr} + add r4, r0, #0 + mov r0, #0 + mov r1, #0x1a + mov r2, #7 + mov r3, #6 + bl FUN_0200A86C + mov r1, #0x45 + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #1 + mov r1, #2 + mov r2, #0 + mov r3, #6 + bl FUN_0200B870 + mov r1, #0x11 + lsl r1, r1, #4 + str r0, [r4, r1] + mov r0, #6 + bl FUN_0200AA80 + mov r2, #0x46 + lsl r2, r2, #2 + str r0, [r4, r2] + mov r0, #0 + mov r1, #0x1a + add r2, #0x40 + mov r3, #6 + bl FUN_0200A86C + mov r1, #0x47 + lsl r1, r1, #2 + str r0, [r4, r1] + mov r2, #0x93 + mov r0, #0 + mov r1, #0x1a + lsl r2, r2, #2 + mov r3, #6 + bl FUN_0200A86C + mov r1, #0x12 + lsl r1, r1, #4 + str r0, [r4, r1] + sub r1, #0x20 + add r0, r1, #0 + mov r1, #6 + bl FUN_020219F4 + mov r1, #0xfe + lsl r1, r1, #2 + str r0, [r4, r1] + pop {r4, pc} + thumb_func_end MOD75_021E737C + + thumb_func_start MOD75_021E73E8 +MOD75_021E73E8: ; 0x021E73E8 + push {r4, r5} + ldr r2, _021E741C ; =0x00000424 + mov r1, #0 + strb r1, [r0, r2] + add r4, r2, #0 + mov r3, #0xc +_021E73F4: + add r2, r0, #0 + add r2, #0xc4 + ldr r5, [r2] + add r2, r1, #0 + mul r2, r3 + add r2, r5, r2 + ldr r2, [r2, #4] + cmp r2, #0 + beq _021E740C + ldrb r2, [r0, r4] + add r2, r2, #1 + strb r2, [r0, r4] +_021E740C: + add r1, r1, #1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, #8 + blo _021E73F4 + pop {r4, r5} + bx lr + nop +_021E741C: .word 0x00000424 + thumb_func_end MOD75_021E73E8 + + thumb_func_start MOD75_021E7420 +MOD75_021E7420: ; 0x021E7420 + push {r3, r4} + add r0, #0xc4 + ldr r0, [r0] + add r4, r0, #4 + add r0, #0x64 + ldrb r3, [r0] + mov r0, #0xc + mul r0, r3 + cmp r2, #0 + ldr r2, [r4, r0] + bne _021E743E + lsl r0, r1, #2 + ldrh r0, [r2, r0] + pop {r3, r4} + bx lr +_021E743E: + lsl r0, r1, #2 + add r0, r2, r0 + ldrh r0, [r0, #2] + pop {r3, r4} + bx lr + thumb_func_end MOD75_021E7420 + + thumb_func_start MOD75_021E7448 +MOD75_021E7448: ; 0x021E7448 + add r3, r1, #0 + add r1, r2, #0 + add r2, r3, #0 + ldr r3, _021E7454 ; =FUN_0200A8E0 + bx r3 + nop +_021E7454: .word FUN_0200A8E0 + thumb_func_end MOD75_021E7448 + + thumb_func_start MOD75_021E7458 +MOD75_021E7458: ; 0x021E7458 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + add r0, r2, #0 + bl FUN_0206EA30 + add r1, r0, #0 + add r0, r5, #0 + add r2, r4, #0 + bl FUN_0200A8E0 + pop {r3, r4, r5, pc} + thumb_func_end MOD75_021E7458 + + thumb_func_start MOD75_021E7470 +MOD75_021E7470: ; 0x021E7470 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r5, #0 + add r0, #0x64 + strb r5, [r0] + add r0, r7, #0 + add r0, #0xc4 + ldr r0, [r0] + add r6, r0, #4 + ldr r0, [r0, #0x6c] + cmp r0, #0 + bne _021E74AE + mov r3, #1 + add r2, r5, #0 + mov r1, #0xc +_021E7492: + add r0, r5, #0 + mul r0, r1 + add r4, r6, r0 + ldr r0, [r6, r0] + cmp r0, #0 + beq _021E7528 + add r0, r5, #1 + lsl r0, r0, #0x10 + strh r3, [r4, #4] + lsr r5, r0, #0x10 + strh r2, [r4, #6] + cmp r5, #8 + blo _021E7492 + pop {r3, r4, r5, r6, r7, pc} +_021E74AE: + mov r0, #0xc + mul r0, r5 + add r4, r6, r0 + ldr r0, [r6, r0] + cmp r0, #0 + beq _021E74F2 + add r0, r7, #0 + add r0, #0xc4 + ldr r0, [r0] + ldrb r1, [r4, #8] + add r2, sp, #0 + ldr r0, [r0, #0x6c] + add r2, #1 + add r3, sp, #0 + bl FUN_0206F17C + add r0, sp, #0 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _021E74DC + mov r1, #1 + add r0, sp, #0 + strb r1, [r0, #1] +_021E74DC: + add r0, sp, #0 + ldrb r0, [r0, #1] + strh r0, [r4, #4] + add r0, sp, #0 + ldrb r0, [r0] + strh r0, [r4, #6] + add r0, r5, #1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #8 + blo _021E74AE +_021E74F2: + add r0, r7, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r0, [r0, #0x6c] + bl FUN_0206F18C + mov r1, #0 + mov r3, #0xc +_021E7502: + add r2, r1, #0 + mul r2, r3 + add r4, r6, r2 + ldr r2, [r6, r2] + cmp r2, #0 + beq _021E7528 + ldrb r2, [r4, #8] + cmp r0, r2 + bne _021E751E + add r2, r7, #0 + add r2, #0xc4 + ldr r2, [r2] + add r2, #0x64 + strb r1, [r2] +_021E751E: + add r1, r1, #1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + cmp r1, #8 + blo _021E7502 +_021E7528: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD75_021E7470 + + thumb_func_start MOD75_021E752C +MOD75_021E752C: ; 0x021E752C + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + add r0, #0xc4 + ldr r1, [r0] + ldr r0, [r1, #0x6c] + cmp r0, #0 + beq _021E757E + add r7, r1, #4 + mov r4, #0 + add r5, r7, #0 +_021E7540: + ldr r0, [r5] + cmp r0, #0 + beq _021E7568 + add r0, r6, #0 + add r0, #0xc4 + ldrh r2, [r5, #4] + ldrh r3, [r5, #6] + ldr r0, [r0] + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + ldrb r1, [r5, #8] + ldr r0, [r0, #0x6c] + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl FUN_0206F190 + add r4, r4, #1 + add r5, #0xc + cmp r4, #8 + blo _021E7540 +_021E7568: + add r6, #0xc4 + ldr r1, [r6] + ldr r0, [r1, #0x6c] + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + mul r1, r2 + add r1, r7, r1 + ldrb r1, [r1, #8] + bl FUN_0206F19C +_021E757E: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD75_021E752C + + thumb_func_start MOD75_021E7580 +MOD75_021E7580: ; 0x021E7580 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r4, r2, r0 + ldrb r1, [r4, #8] + ldr r0, _021E7718 ; =0x021EC674 + ldrb r0, [r0, r1] + mov r1, #6 + add r0, r0, #3 + bl FUN_02012838 + mov r1, #0x16 + lsl r1, r1, #4 + str r0, [r5, r1] + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x20 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x23 + bl FUN_02012880 + ldrb r3, [r4, #8] + cmp r3, #3 + bne _021E764A + ldr r0, _021E7718 ; =0x021EC674 + mov r6, #0 + ldrb r0, [r0, r3] + cmp r0, #0 + bls _021E761A + str r6, [sp] + add r7, r5, #0 +_021E75CE: + ldr r0, [r4] + ldr r2, [sp] + ldr r1, [sp] + ldrh r2, [r0, r2] + add r1, r0, r1 + cmp r2, #0 + beq _021E761A + ldrh r0, [r1, #2] + cmp r0, #0 + beq _021E761A + mov r0, #0x12 + mov r1, #0x59 + lsl r0, r0, #4 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r7, r1] + mov r3, #6 + bl MOD75_021E7458 + mov r0, #0x16 + mov r1, #0x59 + lsl r0, r0, #4 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r7, r1] + add r2, r6, #0 + bl FUN_020128A0 + ldr r0, [sp] + ldrb r1, [r4, #8] + add r0, r0, #4 + str r0, [sp] + ldr r0, _021E7718 ; =0x021EC674 + add r6, r6, #1 + ldrb r0, [r0, r1] + add r7, r7, #4 + cmp r6, r0 + blo _021E75CE +_021E761A: + mov r1, #0x16 + lsl r1, r1, #4 + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x20 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x22 + bl FUN_02012880 + mov r1, #0x16 + lsl r1, r1, #4 + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x20 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x23 + bl FUN_02012880 + add r0, r6, #3 + add sp, #8 + strb r0, [r4, #9] + pop {r3, r4, r5, r6, r7, pc} +_021E764A: + ldr r0, _021E7718 ; =0x021EC674 + mov r6, #0 + ldrb r0, [r0, r3] + cmp r0, #0 + bls _021E76A4 + str r6, [sp, #4] + add r7, r5, #0 +_021E7658: + ldr r2, [r4] + ldr r0, [sp, #4] + ldr r1, [sp, #4] + add r0, r2, r0 + ldrh r2, [r2, r1] + cmp r2, #0 + beq _021E76A4 + ldrh r0, [r0, #2] + cmp r0, #0 + beq _021E76A4 + mov r0, #0x47 + mov r1, #0x59 + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r7, r1] + mov r3, #6 + bl MOD75_021E7448 + mov r0, #0x16 + mov r1, #0x59 + lsl r0, r0, #4 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r7, r1] + add r2, r6, #0 + bl FUN_020128A0 + ldr r0, [sp, #4] + ldrb r3, [r4, #8] + add r0, r0, #4 + str r0, [sp, #4] + ldr r0, _021E7718 ; =0x021EC674 + add r6, r6, #1 + ldrb r0, [r0, r3] + add r7, r7, #4 + cmp r6, r0 + blo _021E7658 +_021E76A4: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x65 + ldrb r0, [r0] + cmp r0, #5 + beq _021E76FC + cmp r3, #4 + bne _021E76CC + mov r1, #0x16 + lsl r1, r1, #4 + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x20 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x22 + bl FUN_02012880 + b _021E76E0 +_021E76CC: + mov r1, #0x16 + lsl r1, r1, #4 + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x29 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x2b + bl FUN_02012880 +_021E76E0: + mov r1, #0x16 + lsl r1, r1, #4 + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x20 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x23 + bl FUN_02012880 + add r0, r6, #3 + add sp, #8 + strb r0, [r4, #9] + pop {r3, r4, r5, r6, r7, pc} +_021E76FC: + mov r1, #0x16 + lsl r1, r1, #4 + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x20 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x23 + bl FUN_02012880 + add r0, r6, #2 + strb r0, [r4, #9] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021E7718: .word 0x021EC674 + thumb_func_end MOD75_021E7580 + + thumb_func_start MOD75_021E771C +MOD75_021E771C: ; 0x021E771C + push {r3, r4, r5, r6, r7, lr} + mov r6, #0x59 + add r5, r0, #0 + mov r4, #0 + mov r7, #0x12 + lsl r6, r6, #2 +_021E7728: + add r0, r7, #0 + mov r1, #6 + bl FUN_020219F4 + str r0, [r5, r6] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xa5 + blo _021E7728 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD75_021E771C + + thumb_func_start MOD75_021E773C +MOD75_021E773C: ; 0x021E773C + push {r4, r5, r6, lr} + mov r6, #0x59 + add r5, r0, #0 + mov r4, #0 + lsl r6, r6, #2 +_021E7746: + ldr r0, [r5, r6] + bl FUN_02021A20 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xa5 + blo _021E7746 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD75_021E773C + + thumb_func_start MOD75_021E7758 +MOD75_021E7758: ; 0x021E7758 + push {r4, r5} + sub r2, r2, #1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + cmp r2, #8 + bls _021E7768 + mov r5, #7 + b _021E776E +_021E7768: + sub r3, r2, #1 + lsl r3, r3, #0x18 + lsr r5, r3, #0x18 +_021E776E: + ldrh r3, [r0] + cmp r3, #0 + beq _021E7780 + sub r4, r2, #1 + add r3, r3, r5 + cmp r3, r4 + ble _021E7780 + sub r3, r4, r5 + strh r3, [r0] +_021E7780: + ldrh r3, [r0] + ldrh r0, [r1] + sub r2, r2, #1 + add r0, r3, r0 + cmp r0, r2 + blt _021E7790 + sub r0, r2, r3 + strh r0, [r1] +_021E7790: + pop {r4, r5} + bx lr + thumb_func_end MOD75_021E7758 + + thumb_func_start MOD75_021E7794 +MOD75_021E7794: ; 0x021E7794 + push {r3, r4, r5, r6} + sub r2, r2, #1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + cmp r2, #8 + bls _021E77A4 + mov r5, #7 + b _021E77AA +_021E77A4: + sub r4, r2, #1 + lsl r4, r4, #0x18 + lsr r5, r4, #0x18 +_021E77AA: + ldrh r6, [r1] + asr r4, r3, #1 + add r3, r4, #2 + cmp r6, r3 + blt _021E77E2 + sub r6, r6, r4 + mov r3, #0 + sub r6, r6, #2 + bmi _021E77E2 + sub r2, r2, #1 +_021E77BE: + ldrh r6, [r0] + add r6, r6, r5 + cmp r2, r6 + beq _021E77E2 + ldrh r6, [r1] + add r3, r3, #1 + lsl r3, r3, #0x18 + sub r6, r6, #1 + strh r6, [r1] + ldrh r6, [r0] + lsr r3, r3, #0x18 + add r6, r6, #1 + strh r6, [r0] + ldrh r6, [r1] + sub r6, r6, r4 + sub r6, r6, #2 + cmp r3, r6 + ble _021E77BE +_021E77E2: + pop {r3, r4, r5, r6} + bx lr + .align 2, 0 + thumb_func_end MOD75_021E7794 + + thumb_func_start MOD75_021E77E8 +MOD75_021E77E8: ; 0x021E77E8 + push {r4, r5, r6, lr} + sub sp, #0x20 + ldr r6, _021E786C ; =0x021EC504 + add r5, sp, #0 + add r4, r0, #0 + add r3, r1, #0 + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r4, r0] + str r0, [sp] + add r0, r4, #4 + str r0, [sp, #0xc] + add r0, r4, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r1, #0 + add r0, #0x64 + ldrb r5, [r0] + mov r0, #0xc + add r6, r5, #0 + mul r6, r0 + add r1, r1, r6 + ldrb r5, [r1, #0xd] + add r1, sp, #0 + strh r5, [r1, #0x10] + add r5, r4, #0 + str r4, [sp, #0x1c] + add r5, #0xc4 + ldr r5, [r5] + add r6, r5, #0 + add r6, #0x64 + ldrb r6, [r6] + mul r0, r6 + add r0, r5, r0 + ldrb r0, [r0, #0xc] + add r0, #0xfd + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #1 + bhi _021E784C + mov r0, #0x23 + b _021E784E +_021E784C: + mov r0, #0 +_021E784E: + strb r0, [r1, #0x15] + add r1, r3, #0 + add r0, sp, #0 + mov r3, #6 + bl FUN_020010A8 + mov r1, #0x57 + lsl r1, r1, #2 + str r0, [r4, r1] + add r0, r4, #4 + bl FUN_02019220 + add sp, #0x20 + pop {r4, r5, r6, pc} + nop +_021E786C: .word 0x021EC504 + thumb_func_end MOD75_021E77E8 + + thumb_func_start MOD75_021E7870 +MOD75_021E7870: ; 0x021E7870 + push {r3, r4, r5, r6, r7, lr} + add r7, r1, #0 + mov r1, #0x13 + add r4, r2, #0 + bl FUN_02001470 + add r5, r0, #0 + cmp r4, #1 + beq _021E78F8 + ldr r0, _021E7960 ; =0x00000482 + ldrb r0, [r5, r0] + cmp r0, #0 + beq _021E7890 + cmp r0, #1 + beq _021E7898 + b _021E78A0 +_021E7890: + ldr r0, _021E7964 ; =0x000006CC + bl FUN_020054C8 + b _021E78A6 +_021E7898: + ldr r0, _021E7968 ; =0x000006CD + bl FUN_020054C8 + b _021E78A6 +_021E78A0: + ldr r0, _021E796C ; =0x000006CE + bl FUN_020054C8 +_021E78A6: + ldr r0, _021E7960 ; =0x00000482 + mov r1, #3 + ldrb r0, [r5, r0] + add r0, r0, #1 + bl _s32_div_f + ldr r0, _021E7960 ; =0x00000482 + strb r1, [r5, r0] + add r0, #0x10 + ldrb r0, [r5, r0] + cmp r0, #0 + beq _021E78CC + add r0, r5, #0 + add r0, #0xe0 + ldr r0, [r0] + bl FUN_0200C608 + cmp r0, #0 + bne _021E78F8 +_021E78CC: + add r0, r5, #0 + add r0, #0xe0 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C61C + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r5, #0 + add r2, r1, #0 + add r2, #0x64 + ldrb r3, [r2] + mov r2, #0xc + add r0, #0xe0 + mul r2, r3 + add r1, r1, r2 + ldrb r1, [r1, #0xc] + ldr r0, [r0] + add r1, #8 + bl FUN_0200C5C0 +_021E78F8: + ldr r0, _021E7970 ; =0x0000047A + ldrb r0, [r5, r0] + cmp r0, #1 + beq _021E795C + add r0, r5, #0 + add r0, #0x14 + mov r1, #0 + bl FUN_02019620 + mov r1, #1 + mvn r1, r1 + cmp r7, r1 + beq _021E793C + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + lsl r7, r7, #2 + add r4, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r6, r1, #0 + mul r6, r0 + ldr r1, [r4, r6] + add r0, r5, #0 + ldrh r1, [r1, r7] + bl MOD75_021EAAE8 + ldr r1, [r4, r6] + add r0, r5, #0 + ldrh r1, [r1, r7] + bl MOD75_021EC034 + b _021E794C +_021E793C: + add r0, r5, #0 + lsr r1, r1, #0x10 + bl MOD75_021EAAE8 + ldr r1, _021E7974 ; =0x0000FFFF + add r0, r5, #0 + bl MOD75_021EC034 +_021E794C: + ldr r0, _021E7978 ; =0x00000479 + ldrb r0, [r5, r0] + cmp r0, #0 + bne _021E795C + add r5, #0x14 + add r0, r5, #0 + bl FUN_02019220 +_021E795C: + pop {r3, r4, r5, r6, r7, pc} + nop +_021E7960: .word 0x00000482 +_021E7964: .word 0x000006CC +_021E7968: .word 0x000006CD +_021E796C: .word 0x000006CE +_021E7970: .word 0x0000047A +_021E7974: .word 0x0000FFFF +_021E7978: .word 0x00000479 + thumb_func_end MOD75_021E7870 + + thumb_func_start MOD75_021E797C +MOD75_021E797C: ; 0x021E797C + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + mov r1, #0x13 + str r0, [sp] + add r7, r2, #0 + bl FUN_02001470 + add r4, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r6, r2, r0 + ldr r0, _021E7A98 ; =0x0000047A + ldrb r1, [r4, r0] + cmp r1, #1 + bne _021E79BA + add r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, r5 + bne _021E79BA + ldr r0, [sp] + mov r1, #8 + mov r2, #0 + mov r3, #9 + bl FUN_020013E8 + b _021E79C6 +_021E79BA: + ldr r0, [sp] + mov r1, #1 + mov r2, #0 + mov r3, #2 + bl FUN_020013E8 +_021E79C6: + ldrb r0, [r6, #8] + cmp r0, #7 + bne _021E79F8 + mov r0, #2 + mvn r0, r0 + cmp r5, r0 + beq _021E7A94 + add r0, r0, #1 + cmp r5, r0 + beq _021E7A94 + add r0, r4, #0 + add r0, #0xc8 + ldr r0, [r0] + bl FUN_0206EBC4 + ldr r2, [r6] + lsl r1, r5, #2 + ldrh r1, [r2, r1] + cmp r1, r0 + bne _021E7A94 + add r0, r4, #0 + add r1, r7, #0 + bl MOD75_021EB004 + pop {r3, r4, r5, r6, r7, pc} +_021E79F8: + cmp r0, #3 + bne _021E7A24 + mov r0, #1 + mvn r0, r0 + cmp r5, r0 + bne _021E7A0E + add r0, r4, #0 + add r1, r7, #0 + bl MOD75_021EAFB0 + pop {r3, r4, r5, r6, r7, pc} +_021E7A0E: + sub r0, r0, #1 + cmp r5, r0 + beq _021E7A94 + ldr r2, [r6] + lsl r1, r5, #2 + add r1, r2, r1 + add r0, r4, #0 + add r2, r7, #0 + bl MOD75_021EAE90 + pop {r3, r4, r5, r6, r7, pc} +_021E7A24: + cmp r0, #4 + bne _021E7A50 + mov r0, #1 + mvn r0, r0 + cmp r5, r0 + bne _021E7A3A + add r0, r4, #0 + add r1, r7, #0 + bl MOD75_021EAFB0 + pop {r3, r4, r5, r6, r7, pc} +_021E7A3A: + sub r0, r0, #1 + cmp r5, r0 + beq _021E7A94 + ldr r2, [r6] + lsl r1, r5, #2 + add r1, r2, r1 + add r0, r4, #0 + add r2, r7, #0 + bl MOD75_021EAF0C + pop {r3, r4, r5, r6, r7, pc} +_021E7A50: + mov r0, #2 + mvn r0, r0 + cmp r5, r0 + beq _021E7A94 + add r0, r0, #1 + cmp r5, r0 + beq _021E7A94 + ldr r0, _021E7A98 ; =0x0000047A + ldrb r1, [r4, r0] + cmp r1, #1 + bne _021E7A82 + add r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, r5 + bne _021E7A82 + ldr r2, [r6] + lsl r1, r5, #2 + add r1, r2, r1 + ldrh r1, [r1, #2] + ldr r3, _021E7A9C ; =0x00080900 + add r0, r4, #0 + add r2, r7, #0 + bl MOD75_021EADDC + pop {r3, r4, r5, r6, r7, pc} +_021E7A82: + ldr r2, [r6] + lsl r1, r5, #2 + add r1, r2, r1 + ldrh r1, [r1, #2] + ldr r3, _021E7AA0 ; =0x00010200 + add r0, r4, #0 + add r2, r7, #0 + bl MOD75_021EADDC +_021E7A94: + pop {r3, r4, r5, r6, r7, pc} + nop +_021E7A98: .word 0x0000047A +_021E7A9C: .word 0x00080900 +_021E7AA0: .word 0x00010200 + thumb_func_end MOD75_021E797C + + thumb_func_start MOD75_021E7AA4 +MOD75_021E7AA4: ; 0x021E7AA4 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + add r1, r3, #0 + mul r2, r0 + mov r0, #0x57 + lsl r0, r0, #2 + add r1, #0xa + ldr r0, [r4, r0] + add r3, #8 + add r1, r1, r2 + add r2, r3, r2 + bl FUN_02001300 + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02012870 + mov r0, #0x57 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + pop {r4, pc} + thumb_func_end MOD75_021E7AA4 + + thumb_func_start MOD75_021E7AE0 +MOD75_021E7AE0: ; 0x021E7AE0 + push {r4, lr} + add r4, r0, #0 + bl MOD75_021E86C0 + add r0, r4, #0 + bl MOD75_021EA2D8 + cmp r0, #1 + bne _021E7AF6 + mov r0, #1 + pop {r4, pc} +_021E7AF6: + add r0, r4, #0 + bl MOD75_021E7D14 + cmp r0, #1 + bne _021E7B04 + mov r0, #2 + pop {r4, pc} +_021E7B04: + add r0, r4, #0 + bl MOD75_021E8304 + cmp r0, #1 + bne _021E7B12 + mov r0, #2 + pop {r4, pc} +_021E7B12: + add r0, r4, #0 + bl MOD75_021E7B7C + cmp r0, #1 + bne _021E7B60 + add r0, r4, #0 + mov r1, #2 + bl MOD75_021EC090 + add r0, r4, #0 + add r0, #0x14 + mov r1, #0 + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019570 + add r0, r4, #0 + bl MOD75_021E8B70 + add r0, r4, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r2, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r0, r2, r0 + ldrb r0, [r0, #0xc] + cmp r0, #3 + bne _021E7B5C + add r0, r4, #0 + mov r1, #1 + bl MOD75_021E8DAC +_021E7B5C: + mov r0, #4 + pop {r4, pc} +_021E7B60: + cmp r0, #2 + bne _021E7B6E + add r0, r4, #0 + bl MOD75_021E8864 + mov r0, #3 + pop {r4, pc} +_021E7B6E: + cmp r0, #3 + bne _021E7B76 + mov r0, #0x18 + pop {r4, pc} +_021E7B76: + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E7AE0 + + thumb_func_start MOD75_021E7B7C +MOD75_021E7B7C: ; 0x021E7B7C + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r4, r2, r0 + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #6 + add r2, r4, #4 + bl FUN_02001448 + ldr r0, _021E7CD8 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #4 + tst r0, r1 + beq _021E7BC0 + add r0, r5, #0 + bl MOD75_021E8808 + cmp r0, #1 + bne _021E7BC0 + ldr r0, _021E7CDC ; =0x000005DC + bl FUN_020054C8 + add sp, #4 + mov r0, #2 + pop {r3, r4, r5, r6, pc} +_021E7BC0: + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001204 + add r6, r0, #0 + mov r0, #0x57 + lsl r0, r0, #2 + add r1, sp, #0 + ldr r0, [r5, r0] + add r1, #2 + add r2, sp, #0 + bl FUN_02001448 + add r0, sp, #0 + ldrh r2, [r0] + ldrh r0, [r4, #4] + cmp r0, r2 + beq _021E7BFC + sub r2, r2, #1 + add r0, r5, #0 + lsl r2, r2, #4 + add r0, #0xf0 + add r2, #0x18 + lsl r2, r2, #0x10 + ldr r0, [r0] + mov r1, #0xb1 + asr r2, r2, #0x10 + bl FUN_0200C714 +_021E7BFC: + add r0, sp, #0 + ldrh r1, [r0, #2] + strh r1, [r4, #6] + ldrh r0, [r0] + strh r0, [r4, #4] + mov r0, #0 + mvn r0, r0 + cmp r6, r0 + bne _021E7C38 + add r0, r5, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E7C38 + add r1, sp, #0 + ldrh r2, [r1, #2] + ldrh r1, [r1] + mov r0, #0x57 + lsl r0, r0, #2 + add r1, r2, r1 + lsl r1, r1, #0x10 + ldr r0, [r5, r0] + lsr r1, r1, #0x10 + bl FUN_02001464 + add r6, r0, #0 + mov r0, #0x49 + mov r1, #1 + lsl r0, r0, #4 + strb r1, [r5, r0] +_021E7C38: + mov r0, #1 + mvn r0, r0 + cmp r6, r0 + beq _021E7C6E + add r0, r0, #1 + cmp r6, r0 + bne _021E7CAC + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_0200145C + cmp r0, #1 + bne _021E7C5E + add r0, r5, #0 + mov r1, #0x24 + bl MOD75_021EA0CC + b _021E7CD2 +_021E7C5E: + cmp r0, #2 + bne _021E7CD2 + mov r1, #0x23 + add r0, r5, #0 + mvn r1, r1 + bl MOD75_021EA0CC + b _021E7CD2 +_021E7C6E: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x65 + ldrb r0, [r0] + cmp r0, #5 + bne _021E7C82 + add sp, #4 + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_021E7C82: + ldr r0, _021E7CDC ; =0x000005DC + bl FUN_020054C8 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #0 + add r0, #0x66 + strh r1, [r0] + add r5, #0xc4 + ldr r0, [r5] + mov r1, #5 + add r0, #0x68 + strh r1, [r0] + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add sp, #4 + mov r0, #3 + pop {r3, r4, r5, r6, pc} +_021E7CAC: + ldr r0, _021E7CDC ; =0x000005DC + bl FUN_020054C8 + ldr r0, [r4] + lsl r2, r6, #2 + ldrh r1, [r0, r2] + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add sp, #4 + add r0, #0x66 + strh r1, [r0] + ldr r0, [r4] + add r0, r0, r2 + ldrh r1, [r0, #2] + ldr r0, _021E7CE0 ; =0x0000048A + strh r1, [r5, r0] + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021E7CD2: + mov r0, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021E7CD8: .word 0x021C48B8 +_021E7CDC: .word 0x000005DC +_021E7CE0: .word 0x0000048A + thumb_func_end MOD75_021E7B7C + + thumb_func_start MOD75_021E7CE4 +MOD75_021E7CE4: ; 0x021E7CE4 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E7D0C ; =0x00000424 + ldrb r2, [r4, r0] + mov r0, #0xa + add r1, r2, #0 + mul r1, r0 + mov r0, #0x5a + sub r0, r0, r1 + add r1, r2, #1 + bl _s32_div_f + add r1, r0, #6 + ldr r0, _021E7D10 ; =0x00000427 + strb r1, [r4, r0] + ldrb r1, [r4, r0] + add r0, r0, #1 + add r1, r1, #4 + strb r1, [r4, r0] + pop {r4, pc} + .align 2, 0 +_021E7D0C: .word 0x00000424 +_021E7D10: .word 0x00000427 + thumb_func_end MOD75_021E7CE4 + + thumb_func_start MOD75_021E7D14 +MOD75_021E7D14: ; 0x021E7D14 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E7DF8 ; =0x021C48B8 + ldr r1, [r0, #0x4c] + mov r0, #0x20 + tst r0, r1 + beq _021E7D88 + ldr r0, _021E7DFC ; =0x00000424 + ldrb r0, [r4, r0] + cmp r0, #1 + bne _021E7D2E + mov r0, #0 + pop {r4, pc} +_021E7D2E: + ldr r0, _021E7E00 ; =0x000006CA + bl FUN_020054C8 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x64 + ldrb r0, [r0] + cmp r0, #0 + beq _021E7D58 + ldr r1, _021E7E04 ; =0x00000429 + sub r0, r0, #1 + strb r0, [r4, r1] + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, #0x4f + add r0, #0x64 + ldrb r0, [r0] + sub r0, r0, #1 + b _021E7D68 +_021E7D58: + ldr r1, _021E7DFC ; =0x00000424 + ldrb r0, [r4, r1] + sub r2, r0, #1 + add r0, r1, #5 + strb r2, [r4, r0] + ldrb r0, [r4, r1] + add r1, #0x54 + sub r0, r0, #1 +_021E7D68: + strb r0, [r4, r1] + add r0, r4, #0 + bl MOD75_021EC0C4 + ldr r0, _021E7E08 ; =0x0000042A + mov r1, #0 + strb r1, [r4, r0] + add r0, r4, #0 + bl MOD75_021E7E0C + ldr r0, [r4] + mov r1, #4 + bl FUN_0201AC68 + mov r0, #1 + pop {r4, pc} +_021E7D88: + mov r0, #0x10 + tst r0, r1 + beq _021E7DF2 + ldr r0, _021E7DFC ; =0x00000424 + ldrb r0, [r4, r0] + cmp r0, #1 + bne _021E7D9A + mov r0, #0 + pop {r4, pc} +_021E7D9A: + ldr r0, _021E7E00 ; =0x000006CA + bl FUN_020054C8 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r1, _021E7DFC ; =0x00000424 + add r0, #0x64 + ldrb r0, [r0] + add r2, r0, #1 + ldrb r0, [r4, r1] + cmp r2, r0 + bge _021E7DCA + add r0, r1, #5 + strb r2, [r4, r0] + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, #0x54 + add r0, #0x64 + ldrb r0, [r0] + add r0, r0, #1 + strb r0, [r4, r1] + b _021E7DD4 +_021E7DCA: + add r0, r1, #5 + mov r2, #0 + strb r2, [r4, r0] + add r1, #0x54 + strb r2, [r4, r1] +_021E7DD4: + add r0, r4, #0 + bl MOD75_021EC0C4 + ldr r0, _021E7E08 ; =0x0000042A + mov r1, #1 + strb r1, [r4, r0] + add r0, r4, #0 + bl MOD75_021E7E0C + ldr r0, [r4] + mov r1, #4 + bl FUN_0201AC68 + mov r0, #1 + pop {r4, pc} +_021E7DF2: + mov r0, #0 + pop {r4, pc} + nop +_021E7DF8: .word 0x021C48B8 +_021E7DFC: .word 0x00000424 +_021E7E00: .word 0x000006CA +_021E7E04: .word 0x00000429 +_021E7E08: .word 0x0000042A + thumb_func_end MOD75_021E7D14 + + thumb_func_start MOD75_021E7E0C +MOD75_021E7E0C: ; 0x021E7E0C + push {r4, lr} + add r4, r0, #0 + bl MOD75_021E7E60 + ldr r0, _021E7E28 ; =0x0000042D + mov r1, #3 + strb r1, [r4, r0] + add r1, r0, #3 + ldrb r2, [r4, r1] + mov r1, #0x80 + add r0, r0, #3 + bic r2, r1 + strb r2, [r4, r0] + pop {r4, pc} + .align 2, 0 +_021E7E28: .word 0x0000042D + thumb_func_end MOD75_021E7E0C + + thumb_func_start MOD75_021E7E2C +MOD75_021E7E2C: ; 0x021E7E2C + push {r4, lr} + ldr r1, _021E7E58 ; =0x0000042A + add r4, r0, #0 + ldrb r2, [r4, r1] + cmp r2, #2 + beq _021E7E3E + bl MOD75_021E7E60 + b _021E7E44 +_021E7E3E: + mov r2, #2 + add r0, r1, #1 + strb r2, [r4, r0] +_021E7E44: + ldr r0, _021E7E5C ; =0x0000042D + mov r1, #0 + strb r1, [r4, r0] + add r1, r0, #3 + ldrb r2, [r4, r1] + mov r1, #0x80 + add r0, r0, #3 + orr r1, r2 + strb r1, [r4, r0] + pop {r4, pc} + .align 2, 0 +_021E7E58: .word 0x0000042A +_021E7E5C: .word 0x0000042D + thumb_func_end MOD75_021E7E2C + + thumb_func_start MOD75_021E7E60 +MOD75_021E7E60: ; 0x021E7E60 + push {r4, lr} + ldr r1, _021E7EE0 ; =0x00000429 + add r4, r0, #0 + add r1, r4, r1 + mov r2, #0 + strb r2, [r1, #2] + strb r2, [r1, #3] + strb r2, [r1, #5] + ldrb r3, [r1, #7] + mov r2, #0xf + bic r3, r2 + strb r3, [r1, #7] + ldrb r3, [r1, #7] + mov r2, #0x70 + bic r3, r2 + strb r3, [r1, #7] + bl MOD75_021E7AA4 + add r0, r4, #4 + mov r1, #0 + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x14 + mov r1, #0 + bl FUN_02019620 + add r0, r4, #4 + bl FUN_02019220 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + add r0, #0xf0 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + add r1, r4, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r4, #0 + add r1, #0x64 + ldrb r1, [r1] + mov r2, #0 + bl MOD75_021EA96C + add r0, r4, #0 + add r4, #0xc4 + ldr r1, [r4] + mov r2, #0 + add r1, #0x64 + ldrb r1, [r1] + bl MOD75_021E84E4 + pop {r4, pc} + .align 2, 0 +_021E7EE0: .word 0x00000429 + thumb_func_end MOD75_021E7E60 + + thumb_func_start MOD75_021E7EE4 +MOD75_021E7EE4: ; 0x021E7EE4 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, _021E8018 ; =0x00000429 + add r4, r5, r0 + bl FUN_02020A98 + cmp r0, #0 + bne _021E7F00 + ldrb r1, [r4, #7] + mov r0, #0x70 + bic r1, r0 + mov r0, #0x10 + orr r0, r1 + strb r0, [r4, #7] +_021E7F00: + add r0, r5, #0 + bl MOD75_021E83CC + add r6, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r6, r0 + beq _021E7F16 + ldrb r0, [r4] + cmp r6, r0 + beq _021E7F22 +_021E7F16: + ldrb r1, [r4, #7] + mov r0, #0xf + bic r1, r0 + mov r0, #1 + orr r0, r1 + strb r0, [r4, #7] +_021E7F22: + add r0, r5, #0 + bl MOD75_021E8020 + cmp r0, #0 + bne _021E7FB6 + ldrb r0, [r4, #7] + lsl r0, r0, #0x19 + lsr r0, r0, #0x1d + cmp r0, #1 + bne _021E7FB6 + mov r0, #0 + mvn r0, r0 + cmp r6, r0 + beq _021E7FB6 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + ldrb r1, [r4] + add r0, #0x64 + strb r1, [r0] + lsl r0, r6, #0x18 + ldrb r1, [r4] + lsr r0, r0, #0x18 + cmp r1, r0 + bls _021E7F6E + mov r2, #0 + strb r2, [r4, #1] + strb r2, [r4, #2] + ldrb r1, [r4] + add r0, r5, #0 + bl MOD75_021E84E4 + ldrb r1, [r4] + add r0, r5, #0 + mov r2, #0 + bl MOD75_021EA96C + b _021E7F92 +_021E7F6E: + cmp r1, r0 + bhs _021E7F8E + mov r0, #1 + strb r0, [r4, #1] + mov r2, #0 + strb r2, [r4, #2] + ldrb r1, [r4] + add r0, r5, #0 + bl MOD75_021E84E4 + ldrb r1, [r4] + add r0, r5, #0 + mov r2, #0 + bl MOD75_021EA96C + b _021E7F92 +_021E7F8E: + mov r0, #2 + strb r0, [r4, #1] +_021E7F92: + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + strb r0, [r4] + ldrb r2, [r4, #7] + mov r1, #0xf + bic r2, r1 + strb r2, [r4, #7] + ldrb r2, [r4, #7] + mov r1, #0x70 + bic r2, r1 + strb r2, [r4, #7] + mov r1, #0 + strb r1, [r4, #4] + ldr r1, _021E801C ; =0x00000478 + strb r0, [r5, r1] + add r0, r5, #0 + bl MOD75_021EC0C4 +_021E7FB6: + add r0, r5, #0 + bl MOD75_021E819C + add r6, r0, #0 + add r0, r5, #0 + bl MOD75_021E8424 + add r7, r0, #0 + add r0, r5, #0 + bl MOD75_021EC0DC + cmp r6, #1 + bne _021E8012 + cmp r7, #1 + bne _021E8012 + ldrb r0, [r4, #7] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + cmp r0, #1 + bne _021E8012 + add r0, r5, #0 + bl MOD75_021EC0AC + cmp r0, #1 + bne _021E8012 + ldrb r0, [r4, #7] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1f + cmp r0, #1 + bne _021E8004 + ldrb r1, [r4] + add r0, r5, #0 + mov r2, #1 + bl MOD75_021E84E4 + ldr r0, [r5] + mov r1, #4 + bl FUN_0201AC68 +_021E8004: + add r5, #0xfc + ldr r0, [r5] + mov r1, #1 + bl FUN_0200C644 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021E8012: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_021E8018: .word 0x00000429 +_021E801C: .word 0x00000478 + thumb_func_end MOD75_021E7EE4 + + thumb_func_start MOD75_021E8020 +MOD75_021E8020: ; 0x021E8020 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021E8188 ; =0x021C48B8 + ldr r1, _021E818C ; =0x00000429 + ldr r2, [r0, #0x48] + mov r0, #0x20 + add r4, r5, r1 + tst r0, r2 + beq _021E80D8 + sub r0, r1, #5 + ldrb r0, [r5, r0] + cmp r0, #1 + bne _021E803E + mov r0, #1 + pop {r3, r4, r5, pc} +_021E803E: + ldr r0, _021E8190 ; =0x000006CA + bl FUN_020054C8 + add r1, r5, #0 + add r1, #0xc4 + ldr r3, [r1] + add r0, r5, #0 + add r0, #0xe0 + ldrb r2, [r4] + mov r1, #0xc + ldr r0, [r0] + mul r1, r2 + add r1, r3, r1 + ldrb r1, [r1, #0xc] + bl FUN_0200C5C0 + ldrb r1, [r4] + add r0, r5, #0 + mov r2, #0 + bl MOD75_021E84E4 + ldr r0, [r5] + mov r1, #4 + bl FUN_0201AC68 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + ldrb r1, [r4] + add r0, #0x64 + strb r1, [r0] + ldrb r0, [r4] + cmp r0, #0 + beq _021E808E + sub r0, r0, #1 + strb r0, [r4] + ldr r0, _021E8194 ; =0x00000478 + ldrb r1, [r5, r0] + sub r1, r1, #1 + b _021E809C +_021E808E: + ldr r0, _021E8198 ; =0x00000424 + ldrb r1, [r5, r0] + sub r1, r1, #1 + strb r1, [r4] + ldrb r1, [r5, r0] + add r0, #0x54 + sub r1, r1, #1 +_021E809C: + strb r1, [r5, r0] + mov r0, #0 + strb r0, [r4, #2] + strb r0, [r4, #1] + ldrb r1, [r4, #7] + mov r0, #0x70 + bic r1, r0 + mov r0, #0x10 + orr r0, r1 + strb r0, [r4, #7] + ldrb r1, [r4, #7] + mov r0, #0xf + bic r1, r0 + mov r0, #1 + orr r0, r1 + strb r0, [r4, #7] + ldrb r1, [r4, #7] + mov r0, #0x80 + bic r1, r0 + strb r1, [r4, #7] + ldrb r0, [r4, #4] + cmp r0, #3 + beq _021E80CE + mov r0, #4 + strb r0, [r4, #4] +_021E80CE: + add r0, r5, #0 + bl MOD75_021EC0C4 + mov r0, #1 + pop {r3, r4, r5, pc} +_021E80D8: + mov r0, #0x10 + tst r0, r2 + beq _021E8182 + sub r0, r1, #5 + ldrb r0, [r5, r0] + cmp r0, #1 + bne _021E80EA + mov r0, #1 + pop {r3, r4, r5, pc} +_021E80EA: + ldr r0, _021E8190 ; =0x000006CA + bl FUN_020054C8 + add r1, r5, #0 + add r1, #0xc4 + ldr r3, [r1] + add r0, r5, #0 + add r0, #0xe0 + ldrb r2, [r4] + mov r1, #0xc + ldr r0, [r0] + mul r1, r2 + add r1, r3, r1 + ldrb r1, [r1, #0xc] + bl FUN_0200C5C0 + ldrb r1, [r4] + add r0, r5, #0 + mov r2, #0 + bl MOD75_021E84E4 + ldr r0, [r5] + mov r1, #4 + bl FUN_0201AC68 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + ldrb r1, [r4] + add r0, #0x64 + strb r1, [r0] + ldrb r0, [r4] + ldr r1, _021E8198 ; =0x00000424 + add r2, r0, #1 + ldrb r0, [r5, r1] + cmp r2, r0 + bge _021E8140 + add r0, r1, #0 + strb r2, [r4] + add r0, #0x54 + ldrb r0, [r5, r0] + add r0, r0, #1 + b _021E8144 +_021E8140: + mov r0, #0 + strb r0, [r4] +_021E8144: + add r1, #0x54 + strb r0, [r5, r1] + mov r0, #0 + strb r0, [r4, #2] + mov r0, #1 + strb r0, [r4, #1] + ldrb r2, [r4, #7] + mov r1, #0x70 + bic r2, r1 + mov r1, #0x10 + orr r1, r2 + strb r1, [r4, #7] + ldrb r2, [r4, #7] + mov r1, #0xf + bic r2, r1 + orr r0, r2 + strb r0, [r4, #7] + ldrb r1, [r4, #7] + mov r0, #0x80 + bic r1, r0 + strb r1, [r4, #7] + ldrb r0, [r4, #4] + cmp r0, #3 + beq _021E8178 + mov r0, #4 + strb r0, [r4, #4] +_021E8178: + add r0, r5, #0 + bl MOD75_021EC0C4 + mov r0, #1 + pop {r3, r4, r5, pc} +_021E8182: + mov r0, #0 + pop {r3, r4, r5, pc} + nop +_021E8188: .word 0x021C48B8 +_021E818C: .word 0x00000429 +_021E8190: .word 0x000006CA +_021E8194: .word 0x00000478 +_021E8198: .word 0x00000424 + thumb_func_end MOD75_021E8020 + + thumb_func_start MOD75_021E819C +MOD75_021E819C: ; 0x021E819C + push {r4, r5, r6, lr} + ldr r1, _021E8300 ; =0x00000429 + add r5, r0, #0 + add r4, r5, r1 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _021E81B6 + cmp r1, #1 + beq _021E81C2 + cmp r1, #2 + bne _021E81B4 + b _021E82F8 +_021E81B4: + b _021E82FC +_021E81B6: + mov r0, #0 + strb r0, [r4, #3] + ldrb r0, [r4, #2] + add r0, r0, #1 + strb r0, [r4, #2] + b _021E82FC +_021E81C2: + ldrb r1, [r4, #3] + cmp r1, #8 + bhs _021E81D2 + add r1, r1, #1 + strb r1, [r4, #3] + bl MOD75_021EA8BC + b _021E82FC +_021E81D2: + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021E8206 + add r1, r5, #0 + add r1, #0xc4 + ldr r3, [r1] + add r1, r3, #0 + add r1, #0x64 + ldrb r6, [r1] + mov r1, #0xc + add r2, r6, #0 + mul r2, r1 + add r1, r3, #0 + add r1, #0xa + add r3, #8 + add r1, r1, r2 + add r2, r3, r2 + bl FUN_02001300 + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02012870 +_021E8206: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + ldrb r1, [r4] + add r0, #0x64 + strb r1, [r0] + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r5, #0 + add r2, r1, #0 + add r2, #0x64 + ldrb r3, [r2] + mov r2, #0xc + add r0, #0xe0 + mul r2, r3 + add r1, r1, r2 + ldrb r1, [r1, #0xc] + ldr r0, [r0] + bl FUN_0200C5C0 + add r0, r5, #0 + bl MOD75_021EA9F8 + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r5, #0 + add r1, #0x64 + ldrb r1, [r1] + mov r2, #1 + bl MOD75_021EA96C + add r0, r5, #0 + bl MOD75_021E7580 + add r0, r5, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r0, r3, #0 + add r1, r3, #0 + add r0, #0xa + add r1, #8 + add r0, r0, r2 + add r1, r1, r2 + add r2, r3, r2 + ldrb r2, [r2, #0xd] + bl MOD75_021E7758 + add r0, r5, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r0, r3, #0 + add r1, r3, #0 + add r0, #0xa + add r1, #8 + add r0, r0, r2 + add r1, r1, r2 + add r2, r3, r2 + ldrb r2, [r2, #0xd] + mov r3, #9 + bl MOD75_021E7794 + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r1, #0 + add r0, #0x64 + ldrb r2, [r0] + mov r0, #0xc + add r3, r2, #0 + mul r3, r0 + add r2, r1, r3 + ldrh r1, [r2, #0xa] + ldrh r2, [r2, #8] + add r0, r5, #0 + bl MOD75_021E77E8 + add r0, r5, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r5, #0 + add r3, r2, #0 + add r3, #0x64 + ldrb r6, [r3] + mov r3, #0xc + add r0, #0xf0 + mul r3, r6 + add r2, r2, r3 + ldrh r2, [r2, #8] + ldr r0, [r0] + mov r1, #0xb1 + sub r2, r2, #1 + lsl r2, r2, #4 + add r2, #0x18 + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + bl FUN_0200C714 + add r5, #0xf0 + ldr r0, [r5] + mov r1, #1 + bl FUN_0200C644 + ldrb r0, [r4, #2] + add r0, r0, #1 + strb r0, [r4, #2] + mov r0, #1 + pop {r4, r5, r6, pc} +_021E82F8: + mov r0, #1 + pop {r4, r5, r6, pc} +_021E82FC: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_021E8300: .word 0x00000429 + thumb_func_end MOD75_021E819C + + thumb_func_start MOD75_021E8304 +MOD75_021E8304: ; 0x021E8304 + push {r4, lr} + add r4, r0, #0 + bl MOD75_021E8374 + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + bne _021E8318 + mov r0, #0 + pop {r4, pc} +_021E8318: + ldr r2, _021E836C ; =0x00000424 + ldrb r1, [r4, r2] + cmp r1, #1 + bne _021E8324 + mov r0, #0 + pop {r4, pc} +_021E8324: + add r1, r4, #0 + add r1, #0xc4 + ldr r1, [r1] + add r1, #0x64 + ldrb r3, [r1] + lsl r1, r0, #0x18 + lsr r1, r1, #0x18 + cmp r3, r1 + bne _021E833E + mov r3, #2 + add r1, r2, #6 + strb r3, [r4, r1] + b _021E8350 +_021E833E: + cmp r3, r1 + bls _021E834A + mov r3, #0 + add r1, r2, #6 + strb r3, [r4, r1] + b _021E8350 +_021E834A: + mov r3, #1 + add r1, r2, #6 + strb r3, [r4, r1] +_021E8350: + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + ldr r0, _021E8370 ; =0x00000429 + strb r1, [r4, r0] + add r0, #0x4f + strb r1, [r4, r0] + add r0, r4, #0 + bl MOD75_021EC0C4 + add r0, r4, #0 + bl MOD75_021E7E2C + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_021E836C: .word 0x00000424 +_021E8370: .word 0x00000429 + thumb_func_end MOD75_021E8304 + + thumb_func_start MOD75_021E8374 +MOD75_021E8374: ; 0x021E8374 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + ldr r0, _021E83BC ; =0x00000424 + ldrb r0, [r5, r0] + lsl r1, r0, #3 + ldr r0, _021E83C0 ; =0x021EC628 + ldr r0, [r0, r1] + bl FUN_02020988 + add r4, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + beq _021E83B6 + ldr r1, _021E83C4 ; =0x0000FFFE + add r0, sp, #4 + strh r1, [r0] + add r0, sp, #4 + str r0, [sp] + ldr r3, _021E83C8 ; =0x021C48F8 + ldr r0, [r5] + ldrh r2, [r3, #0x1c] + ldrh r3, [r3, #0x1e] + mov r1, #4 + bl FUN_0201AFBC + cmp r0, #0 + bne _021E83B6 + mov r0, #0 + add sp, #8 + mvn r0, r0 + pop {r3, r4, r5, pc} +_021E83B6: + add r0, r4, #0 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021E83BC: .word 0x00000424 +_021E83C0: .word 0x021EC628 +_021E83C4: .word 0x0000FFFE +_021E83C8: .word 0x021C48F8 + thumb_func_end MOD75_021E8374 + + thumb_func_start MOD75_021E83CC +MOD75_021E83CC: ; 0x021E83CC + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + ldr r0, _021E8414 ; =0x00000424 + ldrb r0, [r5, r0] + lsl r1, r0, #3 + ldr r0, _021E8418 ; =0x021EC628 + ldr r0, [r0, r1] + bl FUN_02020968 + add r4, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + beq _021E840E + ldr r1, _021E841C ; =0x0000FFFE + add r0, sp, #4 + strh r1, [r0] + add r0, sp, #4 + str r0, [sp] + ldr r3, _021E8420 ; =0x021C48F8 + ldr r0, [r5] + ldrh r2, [r3, #0x1c] + ldrh r3, [r3, #0x1e] + mov r1, #4 + bl FUN_0201AFBC + cmp r0, #0 + bne _021E840E + mov r0, #0 + add sp, #8 + mvn r0, r0 + pop {r3, r4, r5, pc} +_021E840E: + add r0, r4, #0 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021E8414: .word 0x00000424 +_021E8418: .word 0x021EC628 +_021E841C: .word 0x0000FFFE +_021E8420: .word 0x021C48F8 + thumb_func_end MOD75_021E83CC + + thumb_func_start MOD75_021E8424 +MOD75_021E8424: ; 0x021E8424 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021E84D4 ; =0x00000429 + add r4, r5, r0 + ldrb r0, [r4, #4] + cmp r0, #4 + bhi _021E84CA + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021E843E: ; jump table + .short _021E8448 - _021E843E - 2 ; case 0 + .short _021E8460 - _021E843E - 2 ; case 1 + .short _021E84B0 - _021E843E - 2 ; case 2 + .short _021E84BE - _021E843E - 2 ; case 3 + .short _021E84C2 - _021E843E - 2 ; case 4 +_021E8448: + mov r0, #0 + strb r0, [r4, #5] + ldrb r1, [r4, #7] + mov r0, #0x80 + orr r0, r1 + strb r0, [r4, #7] + ldrb r0, [r4] + strb r0, [r4, #6] + ldrb r0, [r4, #4] + add r0, r0, #1 + strb r0, [r4, #4] + b _021E84CA +_021E8460: + ldrb r0, [r4, #5] + cmp r0, #3 + bne _021E84CA + ldr r0, _021E84D8 ; =0x000005E4 + bl FUN_020054C8 + ldrb r1, [r4, #6] + add r0, r5, #0 + mov r2, #2 + bl MOD75_021E84E4 + ldr r0, [r5] + mov r1, #4 + bl FUN_0201AC68 + ldrb r0, [r4, #6] + lsl r3, r0, #1 + ldr r0, _021E84DC ; =0x00000424 + ldrb r0, [r5, r0] + lsl r1, r0, #3 + ldr r0, _021E84E0 ; =0x021EC624 + ldr r2, [r0, r1] + add r0, r5, #0 + ldrb r1, [r2, r3] + add r3, r3, #1 + ldrb r2, [r2, r3] + lsl r1, r1, #3 + add r1, #0x14 + lsl r2, r2, #3 + add r2, #0x14 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl MOD75_021EC380 + ldrb r0, [r4, #4] + add r0, r0, #1 + strb r0, [r4, #4] + b _021E84CA +_021E84B0: + ldrb r1, [r4, #5] + cmp r1, #7 + bne _021E84CA + add r0, r0, #1 + strb r0, [r4, #4] + mov r0, #1 + pop {r3, r4, r5, pc} +_021E84BE: + mov r0, #1 + pop {r3, r4, r5, pc} +_021E84C2: + mov r0, #3 + strb r0, [r4, #4] + mov r0, #1 + pop {r3, r4, r5, pc} +_021E84CA: + ldrb r0, [r4, #5] + add r0, r0, #1 + strb r0, [r4, #5] + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021E84D4: .word 0x00000429 +_021E84D8: .word 0x000005E4 +_021E84DC: .word 0x00000424 +_021E84E0: .word 0x021EC624 + thumb_func_end MOD75_021E8424 + + thumb_func_start MOD75_021E84E4 +MOD75_021E84E4: ; 0x021E84E4 + push {r3, r4, r5, r6, r7, lr} + add r4, r0, #0 + ldr r0, [r4] + add r5, r1, #0 + mov r1, #4 + add r6, r2, #0 + bl FUN_0201886C + add r7, r0, #0 + ldr r0, _021E856C ; =0x00000424 + ldrb r0, [r4, r0] + add r4, #0xc4 + lsl r1, r0, #3 + ldr r0, _021E8570 ; =0x021EC624 + ldr r1, [r0, r1] + lsl r0, r5, #1 + add r2, r1, r0 + ldr r1, [r4] + mov r0, #0xc + mul r0, r5 + add r0, r1, r0 + ldrb r3, [r0, #0xc] + lsl r0, r6, #2 + add r1, r6, r0 + lsr r5, r3, #1 + mov r0, #0x96 + mul r0, r5 + mov r5, #1 + and r5, r3 + mov r3, #0xf + mul r3, r5 + add r0, r0, r3 + add r0, #0x1e + add r0, r1, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r4, #0 + mov ip, r0 +_021E8530: + mov r0, #0x1e + add r1, r4, #0 + mul r1, r0 + mov r0, ip + mov r3, #0 + add r5, r0, r1 +_021E853C: + ldrb r6, [r2, #1] + mov r0, #2 + add r1, r3, r5 + lsl r0, r0, #0xc + add r1, r1, r0 + add r6, r4, r6 + lsl r6, r6, #5 + ldrb r0, [r2] + add r6, r3, r6 + add r0, r0, r6 + lsl r0, r0, #1 + strh r1, [r7, r0] + add r0, r3, #1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + cmp r3, #5 + blo _021E853C + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #5 + blo _021E8530 + pop {r3, r4, r5, r6, r7, pc} + nop +_021E856C: .word 0x00000424 +_021E8570: .word 0x021EC624 + thumb_func_end MOD75_021E84E4 + + thumb_func_start MOD75_021E8574 +MOD75_021E8574: ; 0x021E8574 + push {r3, r4, r5, r6, r7, lr} + str r0, [sp] + add r4, r1, #0 + ldr r0, [r0] + mov r1, #4 + bl FUN_0201886C + mov ip, r0 + add r1, r4, #0 + mov r0, #6 + mul r1, r0 + ldr r0, _021E85D4 ; =0x00000276 + mov r4, #3 + add r0, r1, r0 + lsl r0, r0, #0x10 + mov r6, #0 + lsr r7, r0, #0x10 + lsl r4, r4, #0xc +_021E8598: + mov r0, #0x1e + mul r0, r6 + add r2, r7, r0 + add r0, r6, #7 + lsl r3, r0, #6 + mov r0, ip + mov r1, #0 + add r3, r0, r3 +_021E85A8: + add r0, r1, r2 + lsl r5, r1, #1 + add r0, r0, r4 + add r5, r3, r5 + strh r0, [r5, #0x1a] + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + cmp r1, #6 + blo _021E85A8 + add r0, r6, #1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #6 + blo _021E8598 + ldr r0, [sp] + mov r1, #4 + ldr r0, [r0] + bl FUN_0201AC68 + pop {r3, r4, r5, r6, r7, pc} + nop +_021E85D4: .word 0x00000276 + thumb_func_end MOD75_021E8574 + + thumb_func_start MOD75_021E85D8 +MOD75_021E85D8: ; 0x021E85D8 + push {r4, lr} + mov r1, #0x49 + add r4, r0, #0 + lsl r1, r1, #4 + ldrb r2, [r4, r1] + cmp r2, #3 + bhi _021E8674 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_021E85F2: ; jump table + .short _021E8674 - _021E85F2 - 2 ; case 0 + .short _021E85FA - _021E85F2 - 2 ; case 1 + .short _021E8622 - _021E85F2 - 2 ; case 2 + .short _021E864E - _021E85F2 - 2 ; case 3 +_021E85FA: + mov r1, #0x80 + mov r2, #0x50 + bl MOD75_021EC380 + ldr r0, _021E8678 ; =0x000005E4 + bl FUN_020054C8 + add r0, r4, #0 + mov r1, #2 + bl MOD75_021E8574 + ldr r0, _021E867C ; =0x00000491 + mov r1, #0 + strb r1, [r4, r0] + sub r1, r0, #1 + ldrb r1, [r4, r1] + sub r0, r0, #1 + add r1, r1, #1 + strb r1, [r4, r0] + pop {r4, pc} +_021E8622: + add r2, r1, #1 + ldrb r2, [r4, r2] + cmp r2, #3 + bne _021E8642 + mov r1, #1 + bl MOD75_021E8574 + mov r0, #0x49 + lsl r0, r0, #4 + ldrb r1, [r4, r0] + add r1, r1, #1 + strb r1, [r4, r0] + mov r1, #0 + add r0, r0, #1 + strb r1, [r4, r0] + pop {r4, pc} +_021E8642: + add r0, r1, #1 + ldrb r0, [r4, r0] + add r2, r0, #1 + add r0, r1, #1 + strb r2, [r4, r0] + pop {r4, pc} +_021E864E: + add r2, r1, #1 + ldrb r2, [r4, r2] + cmp r2, #2 + bne _021E866A + mov r1, #0 + bl MOD75_021E8574 + mov r0, #0x49 + mov r1, #0 + lsl r0, r0, #4 + strb r1, [r4, r0] + add r0, r0, #1 + strb r1, [r4, r0] + pop {r4, pc} +_021E866A: + add r0, r1, #1 + ldrb r0, [r4, r0] + add r2, r0, #1 + add r0, r1, #1 + strb r2, [r4, r0] +_021E8674: + pop {r4, pc} + nop +_021E8678: .word 0x000005E4 +_021E867C: .word 0x00000491 + thumb_func_end MOD75_021E85D8 + + thumb_func_start MOD75_021E8680 +MOD75_021E8680: ; 0x021E8680 + push {r3, r4, r5, r6, r7, lr} + mov r1, #0 + add r5, r0, #0 + bl MOD75_021E8574 + ldr r0, _021E86BC ; =0x00000424 + ldrb r0, [r5, r0] + cmp r0, #1 + beq _021E86B2 + mov r4, #0 + cmp r0, #0 + bls _021E86B2 + ldr r6, _021E86BC ; =0x00000424 + add r7, r4, #0 +_021E869C: + add r0, r5, #0 + add r1, r4, #0 + add r2, r7, #0 + bl MOD75_021E84E4 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldrb r0, [r5, r6] + cmp r4, r0 + blo _021E869C +_021E86B2: + ldr r0, [r5] + mov r1, #4 + bl FUN_0201AC68 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021E86BC: .word 0x00000424 + thumb_func_end MOD75_021E8680 + + thumb_func_start MOD75_021E86C0 +MOD75_021E86C0: ; 0x021E86C0 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, _021E87B4 ; =0x00000481 + ldrb r1, [r4, r0] + cmp r1, #0 + bne _021E87A2 + sub r0, r0, #1 + ldrb r0, [r4, r0] + cmp r0, #3 + bhi _021E8794 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021E86E2: ; jump table + .short _021E86EA - _021E86E2 - 2 ; case 0 + .short _021E86EA - _021E86E2 - 2 ; case 1 + .short _021E8740 - _021E86E2 - 2 ; case 2 + .short _021E8740 - _021E86E2 - 2 ; case 3 +_021E86EA: + add r0, r4, #0 + add r0, #0xe8 + add r1, sp, #0 + ldr r0, [r0] + add r1, #2 + add r2, sp, #0 + bl FUN_0200C7A0 + add r3, sp, #0 + mov r1, #2 + ldrsh r0, [r3, r1] + mov r2, #0 + sub r0, r0, #1 + strh r0, [r3, #2] + add r0, r4, #0 + add r0, #0xe8 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldr r0, [r0] + bl FUN_0200C714 + add r0, r4, #0 + add r0, #0xec + add r1, sp, #0 + ldr r0, [r0] + add r1, #2 + add r2, sp, #0 + bl FUN_0200C7A0 + add r3, sp, #0 + mov r1, #2 + ldrsh r0, [r3, r1] + mov r2, #0 + add r0, r0, #1 + strh r0, [r3, #2] + add r0, r4, #0 + add r0, #0xec + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldr r0, [r0] + bl FUN_0200C714 + b _021E8794 +_021E8740: + add r0, r4, #0 + add r0, #0xe8 + add r1, sp, #0 + ldr r0, [r0] + add r1, #2 + add r2, sp, #0 + bl FUN_0200C7A0 + add r3, sp, #0 + mov r1, #2 + ldrsh r0, [r3, r1] + mov r2, #0 + add r0, r0, #1 + strh r0, [r3, #2] + add r0, r4, #0 + add r0, #0xe8 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldr r0, [r0] + bl FUN_0200C714 + add r0, r4, #0 + add r0, #0xec + add r1, sp, #0 + ldr r0, [r0] + add r1, #2 + add r2, sp, #0 + bl FUN_0200C7A0 + add r3, sp, #0 + mov r1, #2 + ldrsh r0, [r3, r1] + mov r2, #0 + sub r0, r0, #1 + strh r0, [r3, #2] + add r0, r4, #0 + add r0, #0xec + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldr r0, [r0] + bl FUN_0200C714 +_021E8794: + mov r1, #0x12 + lsl r1, r1, #6 + ldrb r0, [r4, r1] + add r2, r0, #1 + mov r0, #3 + and r0, r2 + strb r0, [r4, r1] +_021E87A2: + ldr r1, _021E87B4 ; =0x00000481 + ldrb r0, [r4, r1] + add r2, r0, #1 + mov r0, #3 + and r0, r2 + strb r0, [r4, r1] + add sp, #4 + pop {r3, r4, pc} + nop +_021E87B4: .word 0x00000481 + thumb_func_end MOD75_021E86C0 + + thumb_func_start MOD75_021E87B8 +MOD75_021E87B8: ; 0x021E87B8 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + ldr r0, _021E87FC ; =0x021EC3F4 + bl FUN_02020988 + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _021E87F4 + ldr r1, _021E8800 ; =0x0000FFFE + add r0, sp, #4 + strh r1, [r0] + add r0, sp, #4 + str r0, [sp] + ldr r3, _021E8804 ; =0x021C48F8 + ldr r0, [r4] + ldrh r2, [r3, #0x1c] + ldrh r3, [r3, #0x1e] + mov r1, #4 + bl FUN_0201AFBC + cmp r0, #0 + beq _021E87EE + add sp, #8 + mov r0, #1 + pop {r4, pc} +_021E87EE: + add sp, #8 + mov r0, #0 + pop {r4, pc} +_021E87F4: + mov r0, #0 + add sp, #8 + pop {r4, pc} + nop +_021E87FC: .word 0x021EC3F4 +_021E8800: .word 0x0000FFFE +_021E8804: .word 0x021C48F8 + thumb_func_end MOD75_021E87B8 + + thumb_func_start MOD75_021E8808 +MOD75_021E8808: ; 0x021E8808 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r4, r2, r0 + mov r0, #0x57 + lsl r0, r0, #2 + ldrh r2, [r4, #6] + ldrh r1, [r4, #4] + ldr r0, [r5, r0] + add r1, r2, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl FUN_02001464 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + bne _021E883C + mov r0, #0 + pop {r3, r4, r5, pc} +_021E883C: + add r5, #0xc4 + ldr r0, [r5] + add r0, #0x65 + ldrb r0, [r0] + cmp r0, #0 + beq _021E884C + mov r0, #0 + pop {r3, r4, r5, pc} +_021E884C: + ldrb r0, [r4, #8] + add r0, #0xfd + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #1 + bls _021E885C + mov r0, #1 + b _021E885E +_021E885C: + mov r0, #0 +_021E885E: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, r4, r5, pc} + thumb_func_end MOD75_021E8808 + + thumb_func_start MOD75_021E8864 +MOD75_021E8864: ; 0x021E8864 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r3, r2, r0 + ldr r1, _021E88B4 ; =0x0000047A + mov r0, #1 + strb r0, [r4, r1] + ldrh r2, [r3, #6] + ldrh r0, [r3, #4] + add r2, r2, r0 + add r0, r1, #1 + strb r2, [r4, r0] + mov r0, #0x57 + add r1, r1, #1 + lsl r0, r0, #2 + ldrb r1, [r4, r1] + ldr r0, [r4, r0] + bl FUN_02001464 + ldr r1, _021E88B8 ; =0x0000047C + str r0, [r4, r1] + add r0, r4, #0 + bl MOD75_021EB3D8 + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02001328 + add r0, r4, #0 + bl MOD75_021E8AAC + pop {r4, pc} + nop +_021E88B4: .word 0x0000047A +_021E88B8: .word 0x0000047C + thumb_func_end MOD75_021E8864 + + thumb_func_start MOD75_021E88BC +MOD75_021E88BC: ; 0x021E88BC + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + bl MOD75_021EA3F4 + cmp r0, #1 + bne _021E88D0 + add sp, #4 + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_021E88D0: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r4, r2, r0 + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #6 + add r2, r4, #4 + bl FUN_02001448 + add r0, r5, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E8912 + ldr r0, _021E89E8 ; =0x000005DC + bl FUN_020054C8 + add r0, r5, #0 + bl MOD75_021E89F0 + mov r1, #0x49 + mov r0, #1 + lsl r1, r1, #4 + add sp, #4 + strb r0, [r5, r1] + pop {r3, r4, r5, r6, pc} +_021E8912: + ldr r0, _021E89EC ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #4 + tst r0, r1 + beq _021E892E + ldr r0, _021E89E8 ; =0x000005DC + bl FUN_020054C8 + add r0, r5, #0 + bl MOD75_021E89F0 + add sp, #4 + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021E892E: + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001204 + add r6, r0, #0 + mov r0, #0x57 + lsl r0, r0, #2 + add r1, sp, #0 + ldr r0, [r5, r0] + add r1, #2 + add r2, sp, #0 + bl FUN_02001448 + add r0, sp, #0 + ldrh r2, [r0] + ldrh r0, [r4, #4] + cmp r0, r2 + beq _021E896A + sub r2, r2, #1 + add r0, r5, #0 + lsl r2, r2, #4 + add r0, #0xf4 + add r2, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r0] + mov r1, #0xb1 + asr r2, r2, #0x10 + bl FUN_0200C714 +_021E896A: + add r0, sp, #0 + ldrh r1, [r0, #2] + strh r1, [r4, #6] + ldrh r0, [r0] + strh r0, [r4, #4] + mov r0, #1 + mvn r0, r0 + cmp r6, r0 + beq _021E89AA + add r0, r0, #1 + cmp r6, r0 + bne _021E89CE + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_0200145C + cmp r0, #1 + bne _021E899A + add r0, r5, #0 + mov r1, #0x24 + bl MOD75_021EA0CC + b _021E89E0 +_021E899A: + cmp r0, #2 + bne _021E89E0 + mov r1, #0x23 + add r0, r5, #0 + mvn r1, r1 + bl MOD75_021EA0CC + b _021E89E0 +_021E89AA: + ldr r0, _021E89E8 ; =0x000005DC + bl FUN_020054C8 + ldr r0, _021E89EC ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _021E89C2 + add r0, r5, #0 + bl MOD75_021E89F0 + b _021E89C8 +_021E89C2: + add r0, r5, #0 + bl MOD75_021E8A48 +_021E89C8: + add sp, #4 + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021E89CE: + ldr r0, _021E89E8 ; =0x000005DC + bl FUN_020054C8 + add r0, r5, #0 + bl MOD75_021E89F0 + add sp, #4 + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021E89E0: + mov r0, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_021E89E8: .word 0x000005DC +_021E89EC: .word 0x021C48B8 + thumb_func_end MOD75_021E88BC + + thumb_func_start MOD75_021E89F0 +MOD75_021E89F0: ; 0x021E89F0 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r0, r2, r0 + ldrh r2, [r0, #6] + ldrh r1, [r0, #4] + add r1, r2, r1 + lsl r1, r1, #0x10 + lsr r2, r1, #0x10 + ldr r1, _021E8A44 ; =0x0000047B + ldrb r1, [r4, r1] + cmp r1, r2 + beq _021E8A3C + sub r2, r2, #1 + cmp r1, r2 + beq _021E8A3C + sub r1, r1, #1 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r0] + lsr r1, r1, #0x10 + lsr r2, r2, #0x10 + bl FUN_0206E5B4 + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02012870 + add r0, r4, #0 + bl MOD75_021E7580 +_021E8A3C: + add r0, r4, #0 + bl MOD75_021E8A48 + pop {r4, pc} + .align 2, 0 +_021E8A44: .word 0x0000047B + thumb_func_end MOD75_021E89F0 + + thumb_func_start MOD75_021E8A48 +MOD75_021E8A48: ; 0x021E8A48 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r4, r2, r0 + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #6 + add r2, r4, #4 + bl FUN_02001300 + mov r0, #0x57 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] + ldr r0, _021E8AA4 ; =0x0000047B + ldrh r1, [r4, #6] + ldrb r2, [r5, r0] + ldrh r0, [r4, #4] + add r1, r1, r0 + cmp r2, r1 + bge _021E8A84 + sub r0, r0, #1 + strh r0, [r4, #4] +_021E8A84: + ldr r0, _021E8AA8 ; =0x0000047A + mov r2, #0 + strb r2, [r5, r0] + add r1, r0, #1 + strb r2, [r5, r1] + add r0, r0, #2 + str r2, [r5, r0] + ldrh r1, [r4, #6] + ldrh r2, [r4, #4] + add r0, r5, #0 + bl MOD75_021E77E8 + add r0, r5, #0 + bl MOD75_021E8AAC + pop {r3, r4, r5, pc} + .align 2, 0 +_021E8AA4: .word 0x0000047B +_021E8AA8: .word 0x0000047A + thumb_func_end MOD75_021E8A48 + + thumb_func_start MOD75_021E8AAC +MOD75_021E8AAC: ; 0x021E8AAC + push {r4, lr} + add r4, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r2, r2, r0 + ldr r0, _021E8B68 ; =0x0000047A + ldrb r0, [r4, r0] + cmp r0, #0 + bne _021E8B18 + ldrh r2, [r2, #4] + add r0, r4, #0 + add r0, #0xf0 + sub r2, r2, #1 + lsl r2, r2, #4 + add r2, #0x18 + lsl r2, r2, #0x10 + ldr r0, [r0] + mov r1, #0xb1 + asr r2, r2, #0x10 + bl FUN_0200C714 + add r0, r4, #0 + add r0, #0xf0 + ldr r0, [r0] + mov r1, #1 + bl FUN_0200C644 + add r0, r4, #0 + add r0, #0xf4 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + ldr r0, _021E8B6C ; =0x00000424 + ldrb r0, [r4, r0] + cmp r0, #1 + beq _021E8B66 + add r0, r4, #0 + add r0, #0xe8 + ldr r0, [r0] + mov r1, #1 + bl FUN_0200C644 + add r4, #0xec + ldr r0, [r4] + mov r1, #1 + bl FUN_0200C644 + pop {r4, pc} +_021E8B18: + ldrh r2, [r2, #4] + add r0, r4, #0 + add r0, #0xf4 + sub r2, r2, #1 + lsl r2, r2, #4 + add r2, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r0] + mov r1, #0xb1 + asr r2, r2, #0x10 + bl FUN_0200C714 + add r0, r4, #0 + add r0, #0xf0 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + add r0, r4, #0 + add r0, #0xf4 + ldr r0, [r0] + mov r1, #1 + bl FUN_0200C644 + ldr r0, _021E8B6C ; =0x00000424 + ldrb r0, [r4, r0] + cmp r0, #1 + beq _021E8B66 + add r0, r4, #0 + add r0, #0xe8 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + add r4, #0xec + ldr r0, [r4] + mov r1, #0 + bl FUN_0200C644 +_021E8B66: + pop {r4, pc} + .align 2, 0 +_021E8B68: .word 0x0000047A +_021E8B6C: .word 0x00000424 + thumb_func_end MOD75_021E8AAC + + thumb_func_start MOD75_021E8B70 +MOD75_021E8B70: ; 0x021E8B70 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #0 + add r0, #0x66 + ldrh r0, [r0] + mov r2, #6 + bl FUN_0206E710 + add r7, r0, #0 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r4, #0 + add r1, r0, #0 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + mul r1, r2 + add r1, r0, r1 + add r0, #0x65 + ldrb r0, [r0] + ldrb r6, [r1, #0xc] + cmp r0, #0 + beq _021E8BA8 + b _021E8CB6 +_021E8BA8: + cmp r6, #4 + bne _021E8BB4 + mov r1, #9 + add r0, sp, #0 + strb r1, [r0] + add r4, r4, #1 +_021E8BB4: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, r0, #0 + add r1, #0x76 + ldrh r1, [r1] + lsl r1, r1, #0x10 + lsr r2, r1, #0x11 + ldr r1, _021E8CE8 ; =0x0000FFFE + add r1, r2, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + cmp r1, #1 + bhi _021E8BEC + add r1, r0, #0 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + mul r1, r2 + add r0, r0, r1 + ldrb r0, [r0, #0xc] + cmp r0, #5 + bne _021E8C66 + mov r1, #2 + add r0, sp, #0 + strb r1, [r0, r4] + add r4, r4, #1 + b _021E8C66 +_021E8BEC: + add r0, r7, #0 + mov r1, #6 + bl FUN_0206E7DC + cmp r0, #0 + beq _021E8C66 + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + ldr r2, _021E8CEC ; =0x000001C2 + add r0, r1, #0 + add r0, #0x66 + ldrh r0, [r0] + cmp r0, r2 + bne _021E8C20 + add r2, r1, #0 + add r2, #0x76 + ldrh r2, [r2] + lsl r2, r2, #0x1f + lsr r2, r2, #0x1f + cmp r2, #1 + bne _021E8C20 + mov r1, #1 + add r0, sp, #0 + strb r1, [r0, r4] + b _021E8C64 +_021E8C20: + add r2, r1, #0 + add r2, #0x64 + ldrb r3, [r2] + mov r2, #0xc + mul r2, r3 + add r2, r1, r2 + ldrb r3, [r2, #0xc] + cmp r3, #5 + bne _021E8C3A + mov r1, #2 + add r0, sp, #0 + strb r1, [r0, r4] + b _021E8C64 +_021E8C3A: + ldr r2, _021E8CF0 ; =0x000001C1 + cmp r0, r2 + bne _021E8C48 + mov r1, #4 + add r0, sp, #0 + strb r1, [r0, r4] + b _021E8C64 +_021E8C48: + cmp r3, #4 + bne _021E8C5E + ldr r0, [r1, #0x70] + bl FUN_0205D51C + cmp r0, #1 + bne _021E8C5E + mov r1, #3 + add r0, sp, #0 + strb r1, [r0, r4] + b _021E8C64 +_021E8C5E: + mov r1, #0 + add r0, sp, #0 + strb r1, [r0, r4] +_021E8C64: + add r4, r4, #1 +_021E8C66: + add r0, r7, #0 + mov r1, #3 + bl FUN_0206E7DC + cmp r0, #0 + bne _021E8C84 + mov r0, #8 + add r1, sp, #0 + strb r0, [r1, r4] + add r4, r4, #1 + cmp r6, #3 + beq _021E8C84 + mov r0, #5 + strb r0, [r1, r4] + add r4, r4, #1 +_021E8C84: + add r0, r7, #0 + mov r1, #4 + bl FUN_0206E7DC + cmp r0, #0 + beq _021E8CCC + add r0, r5, #0 + add r0, #0xc8 + ldr r0, [r0] + bl FUN_0206EBC4 + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r1, #0x66 + ldrh r1, [r1] + cmp r1, r0 + bne _021E8CAC + mov r1, #7 + b _021E8CAE +_021E8CAC: + mov r1, #6 +_021E8CAE: + add r0, sp, #0 + strb r1, [r0, r4] + add r4, r4, #1 + b _021E8CCC +_021E8CB6: + add r0, #0xfc + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #1 + bhi _021E8CCC + mov r1, #0xa + add r0, sp, #0 + strb r1, [r0] + mov r1, #9 + strb r1, [r0, #1] + add r4, r4, #2 +_021E8CCC: + add r2, r4, #1 + lsl r2, r2, #0x18 + mov r0, #0xb + add r1, sp, #0 + strb r0, [r1, r4] + add r0, r5, #0 + lsr r2, r2, #0x18 + bl MOD75_021EB130 + add r0, r7, #0 + bl FUN_02016A18 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021E8CE8: .word 0x0000FFFE +_021E8CEC: .word 0x000001C2 +_021E8CF0: .word 0x000001C1 + thumb_func_end MOD75_021E8B70 + + thumb_func_start MOD75_021E8CF4 +MOD75_021E8CF4: ; 0x021E8CF4 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl MOD75_021EA510 + cmp r0, #1 + bne _021E8D04 + mov r0, #4 + pop {r3, r4, r5, pc} +_021E8D04: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001C78 + add r4, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + bne _021E8D38 + add r0, r5, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E8D38 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001DDC + add r4, r0, #0 + mov r0, #0x49 + mov r1, #1 + lsl r0, r0, #4 + strb r1, [r5, r0] +_021E8D38: + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + beq _021E8D6E + add r0, r0, #1 + cmp r4, r0 + bne _021E8DA0 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001E60 + cmp r0, #1 + bne _021E8D5E + add r0, r5, #0 + mov r1, #0x12 + bl MOD75_021EA0CC + b _021E8DA6 +_021E8D5E: + cmp r0, #2 + bne _021E8DA6 + mov r1, #0x11 + add r0, r5, #0 + mvn r1, r1 + bl MOD75_021EA0CC + b _021E8DA6 +_021E8D6E: + add r0, r5, #0 + mov r1, #1 + bl MOD75_021EC090 + add r0, r5, #0 + bl MOD75_021EB344 + add r0, r5, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r2, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r0, r2, r0 + ldrb r0, [r0, #0xc] + cmp r0, #3 + bne _021E8D9C + add r0, r5, #0 + mov r1, #0 + bl MOD75_021E8DAC +_021E8D9C: + mov r0, #1 + pop {r3, r4, r5, pc} +_021E8DA0: + add r0, r5, #0 + blx r4 + pop {r3, r4, r5, pc} +_021E8DA6: + mov r0, #4 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD75_021E8CF4 + + thumb_func_start MOD75_021E8DAC +MOD75_021E8DAC: ; 0x021E8DAC + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + cmp r1, #0 + bne _021E8DDA + mov r0, #0x12 + str r0, [sp] + mov r0, #5 + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r4] + ldr r2, _021E8E08 ; =0x021EC5C0 + mov r1, #1 + mov r3, #0 + bl FUN_02018148 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #1 + bl FUN_0200C644 + b _021E8DFC +_021E8DDA: + mov r0, #0x12 + str r0, [sp] + mov r0, #5 + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r4] + ldr r2, _021E8E0C ; =0x021EC5F2 + mov r1, #1 + mov r3, #0 + bl FUN_02018148 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 +_021E8DFC: + ldr r0, [r4] + mov r1, #1 + bl FUN_0201AC68 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 +_021E8E08: .word 0x021EC5C0 +_021E8E0C: .word 0x021EC5F2 + thumb_func_end MOD75_021E8DAC + + thumb_func_start MOD75_021E8E10 +MOD75_021E8E10: ; 0x021E8E10 + lsl r1, r0, #2 + ldr r0, _021E8E18 ; =0x021EC590 + ldr r0, [r0, r1] + bx lr + .align 2, 0 +_021E8E18: .word 0x021EC590 + thumb_func_end MOD75_021E8E10 + + thumb_func_start MOD75_021E8E1C +MOD75_021E8E1C: ; 0x021E8E1C + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + bl MOD75_021EB344 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #6 + add r0, #0x66 + ldrh r0, [r0] + add r2, r1, #0 + bl FUN_0206E7B8 + add r1, r0, #0 + lsl r1, r1, #0x10 + mov r0, #2 + lsr r1, r1, #0x10 + bl FUN_0205CE48 + add r1, r0, #0 + beq _021E8E9C + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r0, [r0, #0x70] + blx r1 + add r3, r0, #0 + beq _021E8E9C + mov r0, #6 + add r2, r4, #0 + str r0, [sp] + add r2, #0xc4 + ldr r2, [r2] + add r0, r4, #0 + mov r1, #0xfe + add r2, #0x66 + add r0, #0xcc + lsl r1, r1, #2 + ldrh r2, [r2] + ldr r0, [r0] + ldr r1, [r4, r1] + bl FUN_0206E51C + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + ldr r2, _021E8EA8 ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E8EAC ; =0x00000426 + add sp, #4 + strb r0, [r4, r1] + mov r0, #0xc + pop {r3, r4, pc} +_021E8E9C: + add r0, r4, #0 + bl MOD75_021E8F10 + add sp, #4 + pop {r3, r4, pc} + nop +_021E8EA8: .word 0x000003D9 +_021E8EAC: .word 0x00000426 + thumb_func_end MOD75_021E8E1C + + thumb_func_start MOD75_021E8EB0 +MOD75_021E8EB0: ; 0x021E8EB0 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E8F04 ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E8F00 + ldr r0, _021E8F08 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021E8ED2 + ldr r0, _021E8F0C ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021E8F00 +_021E8ED2: + add r0, r4, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + add r4, #0xc4 + ldr r0, [r4] + add r0, #0x65 + ldrb r0, [r0] + cmp r0, #3 + bne _021E8EFC + mov r0, #0x17 + pop {r4, pc} +_021E8EFC: + mov r0, #1 + pop {r4, pc} +_021E8F00: + mov r0, #0xc + pop {r4, pc} + .align 2, 0 +_021E8F04: .word 0x00000426 +_021E8F08: .word 0x021C48B8 +_021E8F0C: .word 0x021C48F8 + thumb_func_end MOD75_021E8EB0 + + thumb_func_start MOD75_021E8F10 +MOD75_021E8F10: ; 0x021E8F10 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r2, r2, r0 + ldr r1, _021E8FB0 ; =0x00000483 + mov r0, #0 + strb r0, [r4, r1] + ldrb r0, [r2, #8] + cmp r0, #3 + bne _021E8F3A + ldr r2, _021E8FB4 ; =MOD75_021E8FD8 + add r0, r1, #1 + str r2, [r4, r0] + mov r0, #0xd + pop {r4, pc} +_021E8F3A: + add r0, r4, #0 + add r0, #0xc4 + ldr r2, [r0] + sub r1, #0x8b + ldr r0, [r2] + add r2, #0x66 + ldrh r2, [r2] + ldr r1, [r4, r1] + mov r3, #6 + bl FUN_0206E3F8 + cmp r0, #1 + bne _021E8F7A + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + ldr r2, _021E8FB8 ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E8FBC ; =0x00000426 + strb r0, [r4, r1] + mov r0, #0xc + pop {r4, pc} +_021E8F7A: + add r1, r4, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r4, #0 + add r1, #0x66 + ldrh r1, [r1] + bl MOD75_021E91B8 + cmp r0, #1 + bne _021E8F98 + ldr r1, _021E8FC0 ; =MOD75_021E9394 + ldr r0, _021E8FC4 ; =0x00000484 + str r1, [r4, r0] + mov r0, #0xd + pop {r4, pc} +_021E8F98: + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add r4, #0xc4 + ldr r0, [r4] + mov r1, #0 + add r0, #0x68 + strh r1, [r0] + mov r0, #0x18 + pop {r4, pc} + nop +_021E8FB0: .word 0x00000483 +_021E8FB4: .word MOD75_021E8FD8 +_021E8FB8: .word 0x000003D9 +_021E8FBC: .word 0x00000426 +_021E8FC0: .word MOD75_021E9394 +_021E8FC4: .word 0x00000484 + thumb_func_end MOD75_021E8F10 + + thumb_func_start MOD75_021E8FC8 +MOD75_021E8FC8: ; 0x021E8FC8 + push {r3, lr} + ldr r1, _021E8FD4 ; =0x00000484 + ldr r1, [r0, r1] + blx r1 + pop {r3, pc} + nop +_021E8FD4: .word 0x00000484 + thumb_func_end MOD75_021E8FC8 + + thumb_func_start MOD75_021E8FD8 +MOD75_021E8FD8: ; 0x021E8FD8 + push {r3, r4, r5, lr} + ldr r1, _021E91A4 ; =0x00000483 + add r4, r0, #0 + ldrb r2, [r4, r1] + cmp r2, #3 + bls _021E8FE6 + b _021E91A0 +_021E8FE6: + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_021E8FF2: ; jump table + .short _021E8FFA - _021E8FF2 - 2 ; case 0 + .short _021E9070 - _021E8FF2 - 2 ; case 1 + .short _021E90D0 - _021E8FF2 - 2 ; case 2 + .short _021E90EA - _021E8FF2 - 2 ; case 3 +_021E8FFA: + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x66 + ldrh r0, [r0] + bl FUN_0206EA30 + add r5, r0, #0 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + add r2, r5, #0 + bl FUN_0200AD5C + add r0, r5, #0 + bl FUN_0206EA54 + cmp r0, #1 + bne _021E9034 + mov r0, #0x45 + mov r2, #0xfe + lsl r0, r0, #2 + lsl r2, r2, #2 + ldr r0, [r4, r0] + ldr r2, [r4, r2] + mov r1, #0x3b + bl FUN_0200A8E0 + b _021E9046 +_021E9034: + mov r0, #0x45 + mov r2, #0xfe + lsl r0, r0, #2 + lsl r2, r2, #2 + ldr r0, [r4, r0] + ldr r2, [r4, r2] + mov r1, #0x3a + bl FUN_0200A8E0 +_021E9046: + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + ldr r2, _021E91A8 ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E91AC ; =0x00000426 + strb r0, [r4, r1] + mov r0, #1 + add r1, #0x5d + strb r0, [r4, r1] + b _021E91A0 +_021E9070: + sub r1, #0x5d + ldrb r0, [r4, r1] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9132 + ldr r0, _021E91B0 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021E908E + ldr r0, _021E91B4 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021E9132 +_021E908E: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x3c + bl FUN_0200A914 + add r5, r0, #0 + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + add r2, r5, #0 + bl FUN_0200B7B8 + add r0, r5, #0 + bl FUN_02021A20 + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E91AC ; =0x00000426 + strb r0, [r4, r1] + mov r0, #2 + add r1, #0x5d + strb r0, [r4, r1] + b _021E91A0 +_021E90D0: + sub r1, #0x5d + ldrb r0, [r4, r1] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E91A0 + add r0, r4, #0 + bl MOD75_021EB6E0 + ldr r0, _021E91A4 ; =0x00000483 + mov r1, #3 + strb r1, [r4, r0] + b _021E91A0 +_021E90EA: + bl MOD75_021EA510 + cmp r0, #1 + beq _021E91A0 + add r0, r4, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E9114 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + mov r2, #6 + bl FUN_020021CC + mov r1, #0x49 + mov r2, #1 + lsl r1, r1, #4 + strb r2, [r4, r1] + b _021E9120 +_021E9114: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #6 + bl FUN_020021AC +_021E9120: + cmp r0, #0 + beq _021E9134 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _021E917A + add r1, r1, #1 + cmp r0, r1 + beq _021E9152 +_021E9132: + b _021E91A0 +_021E9134: + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021E8DAC + add r4, #0xc4 + ldr r0, [r4] + mov r1, #0 + add r0, #0x68 + strh r1, [r0] + mov r0, #0x18 + pop {r3, r4, r5, pc} +_021E9152: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02001E60 + cmp r0, #1 + bne _021E916A + add r0, r4, #0 + mov r1, #0x12 + bl MOD75_021EA0CC + b _021E91A0 +_021E916A: + cmp r0, #2 + bne _021E91A0 + mov r1, #0x11 + add r0, r4, #0 + mvn r1, r1 + bl MOD75_021EA0CC + b _021E91A0 +_021E917A: + add r0, r4, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021E8DAC + mov r0, #1 + pop {r3, r4, r5, pc} +_021E91A0: + mov r0, #0xd + pop {r3, r4, r5, pc} + .align 2, 0 +_021E91A4: .word 0x00000483 +_021E91A8: .word 0x000003D9 +_021E91AC: .word 0x00000426 +_021E91B0: .word 0x021C48B8 +_021E91B4: .word 0x021C48F8 + thumb_func_end MOD75_021E8FD8 + + thumb_func_start MOD75_021E91B8 +MOD75_021E91B8: ; 0x021E91B8 + push {r3, r4, r5, lr} + add r4, r0, #0 + mov r0, #0x46 + add r2, r4, #0 + lsl r0, r0, #2 + add r2, #0xcc + add r5, r1, #0 + ldr r0, [r4, r0] + ldr r2, [r2] + mov r1, #0 + bl FUN_0200ABC0 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + add r2, r5, #0 + bl FUN_0200AE38 + cmp r5, #0x44 + bne _021E9200 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x40 + bl FUN_0200A914 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021E6FFC + ldr r0, _021E925C ; =0x00000488 + mov r1, #0 + strh r1, [r4, r0] + b _021E923E +_021E9200: + cmp r5, #0x45 + bne _021E9222 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x3f + bl FUN_0200A914 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #2 + bl MOD75_021E6FFC + ldr r0, _021E925C ; =0x00000488 + mov r1, #0 + strh r1, [r4, r0] + b _021E923E +_021E9222: + cmp r5, #0x4d + beq _021E922E + cmp r5, #0x4c + beq _021E922E + cmp r5, #0x4f + bne _021E923A +_021E922E: + add r0, r4, #0 + add r1, r5, #0 + bl MOD75_021E9260 + add r5, r0, #0 + b _021E923E +_021E923A: + mov r0, #0 + pop {r3, r4, r5, pc} +_021E923E: + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + add r2, r5, #0 + bl FUN_0200B7B8 + add r0, r5, #0 + bl FUN_02021A20 + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_021E925C: .word 0x00000488 + thumb_func_end MOD75_021E91B8 + + thumb_func_start MOD75_021E9260 +MOD75_021E9260: ; 0x021E9260 + push {r3, r4, r5, lr} + add r4, r0, #0 + add r5, r1, #0 + bl MOD75_021E6FDC + bl FUN_0202AB54 + cmp r0, #0 + bne _021E9286 + ldr r0, _021E92B8 ; =0x00000488 + mov r1, #0 + strh r1, [r4, r0] + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x3e + bl FUN_0200A914 + pop {r3, r4, r5, pc} +_021E9286: + add r0, r5, #0 + mov r1, #2 + mov r2, #6 + bl FUN_0206E7B8 + add r1, r0, #0 + lsl r1, r1, #0x18 + add r0, r4, #0 + lsr r1, r1, #0x18 + bl MOD75_021E6FEC + ldr r0, _021E92B8 ; =0x00000488 + mov r1, #1 + strh r1, [r4, r0] + mov r0, #6 + lsl r0, r0, #8 + bl FUN_020054C8 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x3d + bl FUN_0200A914 + pop {r3, r4, r5, pc} + .align 2, 0 +_021E92B8: .word 0x00000488 + thumb_func_end MOD75_021E9260 + + thumb_func_start MOD75_021E92BC +MOD75_021E92BC: ; 0x021E92BC + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r2, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r3, r1, #0 + mul r3, r0 + add r1, r2, r3 + mov r0, #6 + str r0, [sp] + ldr r3, _021E9390 ; =0x00000488 + ldr r0, [r1, #4] + ldrb r1, [r1, #0xd] + add r2, #0x66 + ldrh r2, [r2] + ldrh r3, [r4, r3] + sub r1, r1, #3 + bl FUN_0206EE20 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + add r1, r3, #0 + mul r2, r0 + mov r0, #0x57 + lsl r0, r0, #2 + add r1, #0xa + ldr r0, [r4, r0] + add r3, #8 + add r1, r1, r2 + add r2, r3, r2 + bl FUN_02001300 + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02012870 + add r0, r4, #0 + bl MOD75_021E7580 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r0, r3, #0 + add r1, r3, #0 + add r0, #0xa + add r1, #8 + add r0, r0, r2 + add r1, r1, r2 + add r2, r3, r2 + ldrb r2, [r2, #0xd] + bl MOD75_021E7758 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r0, r3, #0 + add r1, r3, #0 + add r0, #0xa + add r1, #8 + add r0, r0, r2 + add r1, r1, r2 + add r2, r3, r2 + ldrb r2, [r2, #0xd] + mov r3, #9 + bl MOD75_021E7794 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r2, r3, r2 + ldrh r1, [r2, #0xa] + ldrh r2, [r2, #8] + add r0, r4, #0 + bl MOD75_021E77E8 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_021E9390: .word 0x00000488 + thumb_func_end MOD75_021E92BC + + thumb_func_start MOD75_021E9394 +MOD75_021E9394: ; 0x021E9394 + push {r4, lr} + ldr r1, _021E9428 ; =0x00000483 + add r4, r0, #0 + ldrb r2, [r4, r1] + cmp r2, #0 + beq _021E93AA + cmp r2, #1 + beq _021E93D2 + cmp r2, #2 + beq _021E9402 + b _021E9422 +_021E93AA: + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + ldr r2, _021E942C ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E9430 ; =0x00000426 + strb r0, [r4, r1] + mov r0, #1 + add r1, #0x5d + strb r0, [r4, r1] + b _021E9422 +_021E93D2: + sub r1, #0x5d + ldrb r0, [r4, r1] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9422 + ldr r0, _021E9434 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021E93F0 + ldr r0, _021E9438 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021E9422 +_021E93F0: + add r0, r4, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + ldr r0, _021E9428 ; =0x00000483 + mov r1, #2 + strb r1, [r4, r0] + b _021E9422 +_021E9402: + add r1, r1, #5 + ldrsh r1, [r4, r1] + cmp r1, #0 + beq _021E940E + bl MOD75_021E92BC +_021E940E: + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + mov r0, #1 + pop {r4, pc} +_021E9422: + mov r0, #0xd + pop {r4, pc} + nop +_021E9428: .word 0x00000483 +_021E942C: .word 0x000003D9 +_021E9430: .word 0x00000426 +_021E9434: .word 0x021C48B8 +_021E9438: .word 0x021C48F8 + thumb_func_end MOD75_021E9394 + + thumb_func_start MOD75_021E943C +MOD75_021E943C: ; 0x021E943C + push {r4, lr} + add r4, r0, #0 + bl MOD75_021EB344 + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add r4, #0xc4 + ldr r0, [r4] + mov r1, #1 + add r0, #0x68 + strh r1, [r0] + mov r0, #0x18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E943C + + thumb_func_start MOD75_021E945C +MOD75_021E945C: ; 0x021E945C + push {r4, lr} + add r4, r0, #0 + bl MOD75_021EB344 + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add r4, #0xc4 + ldr r0, [r4] + mov r1, #3 + add r0, #0x68 + strh r1, [r0] + mov r0, #0x18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E945C + + thumb_func_start MOD75_021E947C +MOD75_021E947C: ; 0x021E947C + push {r4, lr} + add r4, r0, #0 + bl MOD75_021EB344 + ldr r0, _021E94CC ; =0x00000488 + mov r1, #1 + strh r1, [r4, r0] + add r0, r4, #0 + add r0, #0xc4 + ldr r2, [r0] + mov r3, #6 + add r0, r2, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r1, r2, r0 + ldr r0, [r1, #4] + ldrb r1, [r1, #0xd] + add r2, #0x66 + ldrh r2, [r2] + sub r1, r1, #3 + bl FUN_0206EF10 + cmp r0, #1 + bne _021E94BA + add r0, r4, #0 + bl MOD75_021EB5B0 + mov r0, #8 + pop {r4, pc} +_021E94BA: + add r0, r4, #0 + bl MOD75_021EB454 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EC24C + mov r0, #7 + pop {r4, pc} + .align 2, 0 +_021E94CC: .word 0x00000488 + thumb_func_end MOD75_021E947C + + thumb_func_start MOD75_021E94D0 +MOD75_021E94D0: ; 0x021E94D0 + push {r4, lr} + ldr r2, _021E95AC ; =0x00000488 + add r4, r0, #0 + add r1, r4, r2 + add r2, r2, #2 + ldrh r2, [r4, r2] + bl MOD75_021EA594 + cmp r0, #1 + bne _021E94EE + add r0, r4, #0 + bl MOD75_021EB504 + mov r0, #7 + pop {r4, pc} +_021E94EE: + add r0, r4, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E9512 + add r0, r4, #0 + bl MOD75_021EB5B0 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EC298 + mov r0, #0x49 + mov r1, #1 + lsl r0, r0, #4 + strb r1, [r4, r0] + mov r0, #8 + pop {r4, pc} +_021E9512: + ldr r1, _021E95AC ; =0x00000488 + add r0, r4, r1 + add r1, r1, #2 + ldrh r1, [r4, r1] + bl FUN_02079AAC + cmp r0, #0 + beq _021E955E + cmp r0, #1 + beq _021E952C + cmp r0, #2 + beq _021E9544 + b _021E955E +_021E952C: + add r0, r4, #0 + mov r1, #0x12 + bl MOD75_021EA0CC + add r0, r4, #0 + bl MOD75_021EB504 + ldr r0, _021E95B0 ; =0x00000638 + bl FUN_020054C8 + mov r0, #7 + pop {r4, pc} +_021E9544: + mov r1, #0x11 + add r0, r4, #0 + mvn r1, r1 + bl MOD75_021EA0CC + add r0, r4, #0 + bl MOD75_021EB504 + ldr r0, _021E95B0 ; =0x00000638 + bl FUN_020054C8 + mov r0, #7 + pop {r4, pc} +_021E955E: + ldr r0, _021E95B4 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _021E9580 + add r0, r4, #0 + bl MOD75_021EB5B0 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EC298 + ldr r0, _021E95B8 ; =0x000005DC + bl FUN_020054C8 + mov r0, #8 + pop {r4, pc} +_021E9580: + mov r0, #2 + tst r0, r1 + beq _021E95A6 + add r0, r4, #0 + bl MOD75_021EB580 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EC298 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + ldr r0, _021E95B8 ; =0x000005DC + bl FUN_020054C8 + mov r0, #1 + pop {r4, pc} +_021E95A6: + mov r0, #7 + pop {r4, pc} + nop +_021E95AC: .word 0x00000488 +_021E95B0: .word 0x00000638 +_021E95B4: .word 0x021C48B8 +_021E95B8: .word 0x000005DC + thumb_func_end MOD75_021E94D0 + + thumb_func_start MOD75_021E95BC +MOD75_021E95BC: ; 0x021E95BC + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E95DC ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E95D6 + add r0, r4, #0 + bl MOD75_021EB6E0 + mov r0, #9 + pop {r4, pc} +_021E95D6: + mov r0, #8 + pop {r4, pc} + nop +_021E95DC: .word 0x00000426 + thumb_func_end MOD75_021E95BC + + thumb_func_start MOD75_021E95E0 +MOD75_021E95E0: ; 0x021E95E0 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + bl MOD75_021EA510 + cmp r0, #1 + bne _021E95F4 + add sp, #8 + mov r0, #9 + pop {r3, r4, r5, pc} +_021E95F4: + add r0, r5, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E9616 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + mov r2, #6 + bl FUN_020021CC + mov r1, #0x49 + mov r2, #1 + lsl r1, r1, #4 + strb r2, [r5, r1] + b _021E9622 +_021E9616: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #6 + bl FUN_020021AC +_021E9622: + cmp r0, #0 + beq _021E9636 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _021E96EC + add r1, r1, #1 + cmp r0, r1 + beq _021E96C4 + b _021E970C +_021E9636: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x35 + bl FUN_0200A914 + add r4, r0, #0 + ldr r0, _021E9714 ; =0x00000488 + ldrsh r0, [r5, r0] + cmp r0, #1 + bne _021E9664 + add r2, r5, #0 + add r2, #0xc4 + ldr r2, [r2] + mov r0, #0x46 + add r2, #0x66 + lsl r0, r0, #2 + ldrh r2, [r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AE38 + b _021E967A +_021E9664: + add r2, r5, #0 + add r2, #0xc4 + ldr r2, [r2] + mov r0, #0x46 + add r2, #0x66 + lsl r0, r0, #2 + ldrh r2, [r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AEA8 +_021E967A: + mov r0, #0 + str r0, [sp] + mov r1, #1 + mov r0, #0x46 + ldr r2, _021E9714 ; =0x00000488 + str r1, [sp, #4] + lsl r0, r0, #2 + ldrsh r2, [r5, r2] + ldr r0, [r5, r0] + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021E9718 ; =0x00000426 + add sp, #8 + strb r0, [r5, r1] + mov r0, #0xa + pop {r3, r4, r5, pc} +_021E96C4: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001E60 + cmp r0, #1 + bne _021E96DC + add r0, r5, #0 + mov r1, #0x12 + bl MOD75_021EA0CC + b _021E970C +_021E96DC: + cmp r0, #2 + bne _021E970C + mov r1, #0x11 + add r0, r5, #0 + mvn r1, r1 + bl MOD75_021EA0CC + b _021E970C +_021E96EC: + add r0, r5, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r5, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r5, #0 + mov r1, #1 + bl MOD75_021EC090 + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, pc} +_021E970C: + mov r0, #9 + add sp, #8 + pop {r3, r4, r5, pc} + nop +_021E9714: .word 0x00000488 +_021E9718: .word 0x00000426 + thumb_func_end MOD75_021E95E0 + + thumb_func_start MOD75_021E971C +MOD75_021E971C: ; 0x021E971C + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9748 ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + beq _021E9730 + mov r0, #0xa + pop {r4, pc} +_021E9730: + ldr r0, _021E974C ; =0x00000479 + mov r1, #1 + strb r1, [r4, r0] + add r0, r4, #0 + bl MOD75_021E92BC + add r4, #0x64 + add r0, r4, #0 + bl FUN_02019220 + mov r0, #0xb + pop {r4, pc} + .align 2, 0 +_021E9748: .word 0x00000426 +_021E974C: .word 0x00000479 + thumb_func_end MOD75_021E971C + + thumb_func_start MOD75_021E9750 +MOD75_021E9750: ; 0x021E9750 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9798 ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9794 + ldr r0, _021E979C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021E9772 + ldr r0, _021E97A0 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021E9794 +_021E9772: + ldr r0, _021E97A4 ; =0x00000479 + mov r1, #0 + strb r1, [r4, r0] + add r0, r4, #0 + add r0, #0x64 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + mov r0, #1 + pop {r4, pc} +_021E9794: + mov r0, #0xb + pop {r4, pc} + .align 2, 0 +_021E9798: .word 0x00000426 +_021E979C: .word 0x021C48B8 +_021E97A0: .word 0x021C48F8 +_021E97A4: .word 0x00000479 + thumb_func_end MOD75_021E9750 + + thumb_func_start MOD75_021E97A8 +MOD75_021E97A8: ; 0x021E97A8 + push {r4, lr} + add r4, r0, #0 + add r1, r4, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, #0xc8 + add r1, #0x66 + ldrh r1, [r1] + ldr r0, [r0] + bl FUN_0206EBCC + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02001328 + add r0, r4, #0 + bl MOD75_021EB344 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E97A8 + + thumb_func_start MOD75_021E97E4 +MOD75_021E97E4: ; 0x021E97E4 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc8 + ldr r0, [r0] + mov r1, #0 + bl FUN_0206EBCC + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02001328 + add r0, r4, #0 + bl MOD75_021EB344 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E97E4 + + thumb_func_start MOD75_021E9818 +MOD75_021E9818: ; 0x021E9818 + push {r4, lr} + add r4, r0, #0 + bl MOD75_021EB344 + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021E8DAC + add r4, #0xc4 + ldr r0, [r4] + mov r1, #2 + add r0, #0x68 + strh r1, [r0] + mov r0, #0x18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E9818 + + thumb_func_start MOD75_021E9840 +MOD75_021E9840: ; 0x021E9840 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl MOD75_021E86C0 + add r0, r5, #0 + bl MOD75_021EA2D8 + cmp r0, #1 + bne _021E9856 + mov r0, #0xe + pop {r3, r4, r5, pc} +_021E9856: + add r0, r5, #0 + bl MOD75_021E7D14 + cmp r0, #1 + bne _021E9864 + mov r0, #2 + pop {r3, r4, r5, pc} +_021E9864: + add r0, r5, #0 + bl MOD75_021E8304 + cmp r0, #1 + bne _021E9872 + mov r0, #2 + pop {r3, r4, r5, pc} +_021E9872: + add r0, r5, #0 + bl MOD75_021E7B7C + cmp r0, #1 + bne _021E9912 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #3 + add r0, #0x66 + ldrh r0, [r0] + mov r2, #6 + bl FUN_0206E7B8 + cmp r0, #0 + beq _021E98FC + add r0, r5, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r5, #0 + ldr r2, _021E9928 ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r2, r5, #0 + add r2, #0xc4 + ldr r2, [r2] + mov r0, #0x46 + add r2, #0x66 + lsl r0, r0, #2 + ldrh r2, [r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AE38 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x2e + bl FUN_0200A914 + add r4, r0, #0 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021E992C ; =0x00000426 + strb r0, [r5, r1] + add r0, r5, #0 + mov r1, #2 + bl MOD75_021EC090 + mov r0, #0xf + pop {r3, r4, r5, pc} +_021E98FC: + add r5, #0xc4 + ldr r0, [r5] + mov r1, #4 + add r0, #0x68 + strh r1, [r0] + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + mov r0, #0x18 + pop {r3, r4, r5, pc} +_021E9912: + cmp r0, #3 + bne _021E9924 + add r5, #0xc4 + ldr r0, [r5] + mov r1, #4 + add r0, #0x68 + strh r1, [r0] + mov r0, #0x18 + pop {r3, r4, r5, pc} +_021E9924: + mov r0, #0xe + pop {r3, r4, r5, pc} + .align 2, 0 +_021E9928: .word 0x000003D9 +_021E992C: .word 0x00000426 + thumb_func_end MOD75_021E9840 + + thumb_func_start MOD75_021E9930 +MOD75_021E9930: ; 0x021E9930 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9974 ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9970 + ldr r0, _021E9978 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021E9952 + ldr r0, _021E997C ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021E9970 +_021E9952: + add r0, r4, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + mov r0, #0xe + pop {r4, pc} +_021E9970: + mov r0, #0xf + pop {r4, pc} + .align 2, 0 +_021E9974: .word 0x00000426 +_021E9978: .word 0x021C48B8 +_021E997C: .word 0x021C48F8 + thumb_func_end MOD75_021E9930 + + thumb_func_start MOD75_021E9980 +MOD75_021E9980: ; 0x021E9980 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + bl MOD75_021E86C0 + add r0, r5, #0 + bl MOD75_021EA2D8 + cmp r0, #1 + bne _021E999A + add sp, #8 + mov r0, #0x10 + pop {r3, r4, r5, pc} +_021E999A: + add r0, r5, #0 + bl MOD75_021E7D14 + cmp r0, #1 + bne _021E99AA + add sp, #8 + mov r0, #2 + pop {r3, r4, r5, pc} +_021E99AA: + add r0, r5, #0 + bl MOD75_021E8304 + cmp r0, #1 + bne _021E99BA + add sp, #8 + mov r0, #2 + pop {r3, r4, r5, pc} +_021E99BA: + add r0, r5, #0 + bl MOD75_021E7B7C + cmp r0, #1 + beq _021E99C6 + b _021E9B2A +_021E99C6: + add r0, r5, #0 + mov r1, #0 + bl MOD75_021EB808 + add r0, r5, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r5, #0 + ldr r2, _021E9B3C ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r2, r5, #0 + add r2, #0xc4 + ldr r2, [r2] + mov r0, #0x46 + add r2, #0x66 + lsl r0, r0, #2 + ldrh r2, [r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AE38 + add r0, r5, #0 + mov r1, #2 + bl MOD75_021EC090 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #0 + add r0, #0x66 + ldrh r0, [r0] + mov r2, #6 + bl FUN_0206E7B8 + ldr r1, _021E9B40 ; =0x0000048C + mov r2, #6 + str r0, [r5, r1] + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #3 + add r0, #0x66 + ldrh r0, [r0] + bl FUN_0206E7B8 + cmp r0, #0 + bne _021E9A38 + ldr r1, _021E9B40 ; =0x0000048C + ldr r0, [r5, r1] + cmp r0, #0 + bne _021E9A6E +_021E9A38: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x4a + bl FUN_0200A914 + add r4, r0, #0 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021E9B44 ; =0x00000426 + add sp, #8 + strb r0, [r5, r1] + mov r0, #0x16 + pop {r3, r4, r5, pc} +_021E9A6E: + mov r2, #1 + sub r0, r1, #4 + strh r2, [r5, r0] + ldr r0, [r5, r1] + mov r3, #6 + lsr r0, r0, #1 + str r0, [r5, r1] + add r0, r5, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r2, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r1, r2, r0 + ldr r0, [r1, #4] + ldrb r1, [r1, #0xd] + add r2, #0x66 + ldrh r2, [r2] + sub r1, r1, #3 + bl FUN_0206EF10 + cmp r0, #1 + bne _021E9AF4 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x4c + bl FUN_0200A914 + mov r1, #0 + add r4, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, _021E9B48 ; =0x00000488 + mov r0, #0x46 + ldrsh r3, [r5, r2] + add r2, r2, #4 + lsl r0, r0, #2 + ldr r2, [r5, r2] + ldr r0, [r5, r0] + mul r2, r3 + mov r3, #6 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021E9B44 ; =0x00000426 + add sp, #8 + strb r0, [r5, r1] + mov r0, #0x13 + pop {r3, r4, r5, pc} +_021E9AF4: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x4b + bl FUN_0200A914 + add r4, r0, #0 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021E9B44 ; =0x00000426 + add sp, #8 + strb r0, [r5, r1] + mov r0, #0x11 + pop {r3, r4, r5, pc} +_021E9B2A: + cmp r0, #3 + bne _021E9B34 + add sp, #8 + mov r0, #0x18 + pop {r3, r4, r5, pc} +_021E9B34: + mov r0, #0x10 + add sp, #8 + pop {r3, r4, r5, pc} + nop +_021E9B3C: .word 0x000003D9 +_021E9B40: .word 0x0000048C +_021E9B44: .word 0x00000426 +_021E9B48: .word 0x00000488 + thumb_func_end MOD75_021E9980 + + thumb_func_start MOD75_021E9B4C +MOD75_021E9B4C: ; 0x021E9B4C + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9B80 ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9B7C + ldr r0, _021E9B84 ; =0x0000048A + ldrh r1, [r4, r0] + cmp r1, #0x63 + bls _021E9B68 + mov r1, #0x63 + strh r1, [r4, r0] +_021E9B68: + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EB708 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC24C + mov r0, #0x12 + pop {r4, pc} +_021E9B7C: + mov r0, #0x11 + pop {r4, pc} + .align 2, 0 +_021E9B80: .word 0x00000426 +_021E9B84: .word 0x0000048A + thumb_func_end MOD75_021E9B4C + + thumb_func_start MOD75_021E9B88 +MOD75_021E9B88: ; 0x021E9B88 + push {r3, r4, r5, lr} + sub sp, #8 + ldr r2, _021E9D54 ; =0x00000488 + add r4, r0, #0 + add r1, r4, r2 + add r2, r2, #2 + ldrh r2, [r4, r2] + bl MOD75_021EA594 + cmp r0, #1 + bne _021E9BAC + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EB708 + add sp, #8 + mov r0, #0x12 + pop {r3, r4, r5, pc} +_021E9BAC: + add r0, r4, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E9C2C + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EC298 + add r0, r4, #0 + add r0, #0x74 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x4c + bl FUN_0200A914 + mov r1, #0 + add r5, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, _021E9D54 ; =0x00000488 + mov r0, #0x46 + ldrsh r3, [r4, r2] + add r2, r2, #4 + lsl r0, r0, #2 + ldr r2, [r4, r2] + ldr r0, [r4, r0] + mul r2, r3 + mov r3, #6 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + add r2, r5, #0 + bl FUN_0200B7B8 + add r0, r5, #0 + bl FUN_02021A20 + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E9D58 ; =0x00000426 + add sp, #8 + strb r0, [r4, r1] + mov r0, #1 + add r1, #0x6a + strb r0, [r4, r1] + mov r0, #0x13 + pop {r3, r4, r5, pc} +_021E9C2C: + ldr r1, _021E9D54 ; =0x00000488 + add r0, r4, r1 + add r1, r1, #2 + ldrh r1, [r4, r1] + bl FUN_02079AAC + cmp r0, #0 + beq _021E9C80 + cmp r0, #1 + beq _021E9C46 + cmp r0, #2 + beq _021E9C62 + b _021E9C80 +_021E9C46: + add r0, r4, #0 + mov r1, #0x12 + bl MOD75_021EA0CC + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EB708 + ldr r0, _021E9D5C ; =0x00000638 + bl FUN_020054C8 + add sp, #8 + mov r0, #0x12 + pop {r3, r4, r5, pc} +_021E9C62: + mov r1, #0x11 + add r0, r4, #0 + mvn r1, r1 + bl MOD75_021EA0CC + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EB708 + ldr r0, _021E9D5C ; =0x00000638 + bl FUN_020054C8 + add sp, #8 + mov r0, #0x12 + pop {r3, r4, r5, pc} +_021E9C80: + ldr r0, _021E9D60 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _021E9D00 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EC298 + add r0, r4, #0 + add r0, #0x74 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x4c + bl FUN_0200A914 + mov r1, #0 + add r5, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, _021E9D54 ; =0x00000488 + mov r0, #0x46 + ldrsh r3, [r4, r2] + add r2, r2, #4 + lsl r0, r0, #2 + ldr r2, [r4, r2] + ldr r0, [r4, r0] + mul r2, r3 + mov r3, #6 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + add r2, r5, #0 + bl FUN_0200B7B8 + add r0, r5, #0 + bl FUN_02021A20 + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E9D58 ; =0x00000426 + strb r0, [r4, r1] + ldr r0, _021E9D64 ; =0x000005DC + bl FUN_020054C8 + add sp, #8 + mov r0, #0x13 + pop {r3, r4, r5, pc} +_021E9D00: + mov r0, #2 + tst r0, r1 + beq _021E9D4C + ldr r0, _021E9D68 ; =0x0000048C + mov r1, #0 + str r1, [r4, r0] + add r0, r4, #0 + bl MOD75_021EC298 + add r0, r4, #0 + add r0, #0x84 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r4, #0 + add r0, #0x74 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r4, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + ldr r0, _021E9D64 ; =0x000005DC + bl FUN_020054C8 + add sp, #8 + mov r0, #0x10 + pop {r3, r4, r5, pc} +_021E9D4C: + mov r0, #0x12 + add sp, #8 + pop {r3, r4, r5, pc} + nop +_021E9D54: .word 0x00000488 +_021E9D58: .word 0x00000426 +_021E9D5C: .word 0x00000638 +_021E9D60: .word 0x021C48B8 +_021E9D64: .word 0x000005DC +_021E9D68: .word 0x0000048C + thumb_func_end MOD75_021E9B88 + + thumb_func_start MOD75_021E9D6C +MOD75_021E9D6C: ; 0x021E9D6C + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9D8C ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9D86 + add r0, r4, #0 + bl MOD75_021EB6E0 + mov r0, #0x14 + pop {r4, pc} +_021E9D86: + mov r0, #0x13 + pop {r4, pc} + nop +_021E9D8C: .word 0x00000426 + thumb_func_end MOD75_021E9D6C + + thumb_func_start MOD75_021E9D90 +MOD75_021E9D90: ; 0x021E9D90 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + bl MOD75_021EA510 + cmp r0, #1 + bne _021E9DA4 + add sp, #8 + mov r0, #0x14 + pop {r3, r4, r5, pc} +_021E9DA4: + add r0, r5, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E9DC6 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + mov r2, #6 + bl FUN_020021CC + mov r1, #0x49 + mov r2, #1 + lsl r1, r1, #4 + strb r2, [r5, r1] + b _021E9DD2 +_021E9DC6: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #6 + bl FUN_020021AC +_021E9DD2: + cmp r0, #0 + beq _021E9DE6 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _021E9EA2 + add r1, r1, #1 + cmp r0, r1 + beq _021E9E7A + b _021E9ED2 +_021E9DE6: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x4d + bl FUN_0200A914 + add r4, r0, #0 + ldr r0, _021E9ED8 ; =0x00000488 + ldrsh r0, [r5, r0] + cmp r0, #1 + ble _021E9E14 + add r2, r5, #0 + add r2, #0xc4 + ldr r2, [r2] + mov r0, #0x46 + add r2, #0x66 + lsl r0, r0, #2 + ldrh r2, [r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AEA8 + b _021E9E2A +_021E9E14: + add r2, r5, #0 + add r2, #0xc4 + ldr r2, [r2] + mov r0, #0x46 + add r2, #0x66 + lsl r0, r0, #2 + ldrh r2, [r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AE38 +_021E9E2A: + mov r0, #0 + str r0, [sp] + mov r1, #1 + mov r0, #0x46 + ldr r2, _021E9ED8 ; =0x00000488 + str r1, [sp, #4] + ldrsh r3, [r5, r2] + add r2, r2, #4 + lsl r0, r0, #2 + ldr r2, [r5, r2] + ldr r0, [r5, r0] + mul r2, r3 + mov r3, #6 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021E9EDC ; =0x00000426 + add sp, #8 + strb r0, [r5, r1] + mov r0, #0x15 + pop {r3, r4, r5, pc} +_021E9E7A: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001E60 + cmp r0, #1 + bne _021E9E92 + add r0, r5, #0 + mov r1, #0x12 + bl MOD75_021EA0CC + b _021E9ED2 +_021E9E92: + cmp r0, #2 + bne _021E9ED2 + mov r1, #0x11 + add r0, r5, #0 + mvn r1, r1 + bl MOD75_021EA0CC + b _021E9ED2 +_021E9EA2: + ldr r0, _021E9EE0 ; =0x0000048C + mov r1, #0 + str r1, [r5, r0] + add r0, r5, #0 + add r0, #0x84 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r5, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r5, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r5, #0 + mov r1, #1 + bl MOD75_021EC090 + add sp, #8 + mov r0, #0x10 + pop {r3, r4, r5, pc} +_021E9ED2: + mov r0, #0x14 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021E9ED8: .word 0x00000488 +_021E9EDC: .word 0x00000426 +_021E9EE0: .word 0x0000048C + thumb_func_end MOD75_021E9D90 + + thumb_func_start MOD75_021E9EE4 +MOD75_021E9EE4: ; 0x021E9EE4 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9F64 ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + beq _021E9EF8 + mov r0, #0x15 + pop {r4, pc} +_021E9EF8: + ldr r0, _021E9F68 ; =0x00000644 + bl FUN_020054C8 + ldr r1, _021E9F6C ; =0x00000488 + add r0, r4, #0 + ldrsh r2, [r4, r1] + add r1, r1, #4 + add r0, #0xcc + ldr r1, [r4, r1] + ldr r0, [r0] + mul r1, r2 + bl FUN_02023A30 + ldr r0, _021E9F6C ; =0x00000488 + ldrsh r0, [r4, r0] + cmp r0, #1 + bne _021E9F38 + add r0, r4, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r1, #0 + add r0, #0x75 + ldrb r0, [r0] + cmp r0, #0xff + beq _021E9F44 + add r0, r1, #0 + add r0, #0x75 + ldrb r0, [r0] + add r1, #0x75 + add r0, r0, #1 + strb r0, [r1] + b _021E9F44 +_021E9F38: + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #2 + add r0, #0x75 + strb r1, [r0] +_021E9F44: + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EB808 + ldr r0, _021E9F70 ; =0x00000479 + mov r1, #1 + strb r1, [r4, r0] + add r0, r4, #0 + bl MOD75_021E92BC + add r4, #0x64 + add r0, r4, #0 + bl FUN_02019220 + mov r0, #0x16 + pop {r4, pc} + .align 2, 0 +_021E9F64: .word 0x00000426 +_021E9F68: .word 0x00000644 +_021E9F6C: .word 0x00000488 +_021E9F70: .word 0x00000479 + thumb_func_end MOD75_021E9EE4 + + thumb_func_start MOD75_021E9F74 +MOD75_021E9F74: ; 0x021E9F74 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9FCC ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9FC8 + ldr r0, _021E9FD0 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021E9F96 + ldr r0, _021E9FD4 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021E9FC8 +_021E9F96: + ldr r0, _021E9FD8 ; =0x00000479 + mov r1, #0 + strb r1, [r4, r0] + add r0, #0x13 + str r1, [r4, r0] + add r0, r4, #0 + add r0, #0x84 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r4, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + mov r0, #0x10 + pop {r4, pc} +_021E9FC8: + mov r0, #0x16 + pop {r4, pc} + .align 2, 0 +_021E9FCC: .word 0x00000426 +_021E9FD0: .word 0x021C48B8 +_021E9FD4: .word 0x021C48F8 +_021E9FD8: .word 0x00000479 + thumb_func_end MOD75_021E9F74 + + thumb_func_start MOD75_021E9FDC +MOD75_021E9FDC: ; 0x021E9FDC + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + bl MOD75_021E86C0 + add r0, r4, #0 + bl MOD75_021EA2D8 + cmp r0, #1 + bne _021E9FF6 + add sp, #4 + mov r0, #0x17 + pop {r3, r4, pc} +_021E9FF6: + add r0, r4, #0 + bl MOD75_021E7D14 + cmp r0, #1 + bne _021EA006 + add sp, #4 + mov r0, #2 + pop {r3, r4, pc} +_021EA006: + add r0, r4, #0 + bl MOD75_021E8304 + cmp r0, #1 + bne _021EA016 + add sp, #4 + mov r0, #2 + pop {r3, r4, pc} +_021EA016: + add r0, r4, #0 + bl MOD75_021E7B7C + cmp r0, #1 + bne _021EA0A8 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, r0, #0 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + mul r1, r2 + add r1, r0, r1 + ldrb r1, [r1, #0xc] + cmp r1, #0 + bne _021EA090 + add r0, #0x66 + ldrh r0, [r0] + mov r1, #6 + add r2, r1, #0 + bl FUN_0206E7B8 + cmp r0, #0xd + beq _021EA090 + mov r3, #6 + add r2, r4, #0 + str r3, [sp] + add r2, #0xc4 + ldr r2, [r2] + add r0, r4, #0 + mov r1, #0xfe + add r2, #0x66 + add r0, #0xcc + lsl r1, r1, #2 + ldrh r2, [r2] + ldr r0, [r0] + ldr r1, [r4, r1] + sub r3, r3, #7 + bl FUN_0206E51C + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + ldr r2, _021EA0C4 ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021EA0C8 ; =0x00000426 + add sp, #4 + strb r0, [r4, r1] + mov r0, #0xc + pop {r3, r4, pc} +_021EA090: + add r4, #0xc4 + ldr r0, [r4] + mov r1, #0 + add r0, #0x68 + strh r1, [r0] + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add sp, #4 + mov r0, #0x18 + pop {r3, r4, pc} +_021EA0A8: + cmp r0, #3 + bne _021EA0BC + add r4, #0xc4 + ldr r0, [r4] + mov r1, #5 + add r0, #0x68 + strh r1, [r0] + add sp, #4 + mov r0, #0x18 + pop {r3, r4, pc} +_021EA0BC: + mov r0, #0x17 + add sp, #4 + pop {r3, r4, pc} + nop +_021EA0C4: .word 0x000003D9 +_021EA0C8: .word 0x00000426 + thumb_func_end MOD75_021E9FDC + + thumb_func_start MOD75_021EA0CC +MOD75_021EA0CC: ; 0x021EA0CC + push {r3, r4, r5, lr} + add r4, r0, #0 + ldr r0, [r4] + add r5, r1, #0 + mov r1, #7 + bl FUN_02018878 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add r0, r0, r5 + lsl r0, r0, #0x10 + asr r5, r0, #0x10 + mov r0, #0x5a + lsl r0, r0, #2 + cmp r5, r0 + blt _021EA0F4 + sub r0, r5, r0 + lsl r0, r0, #0x10 + asr r5, r0, #0x10 + b _021EA0FE +_021EA0F4: + cmp r5, #0 + bge _021EA0FE + add r0, r5, r0 + lsl r0, r0, #0x10 + asr r5, r0, #0x10 +_021EA0FE: + lsl r3, r5, #0x10 + ldr r0, [r4] + mov r1, #7 + mov r2, #0 + lsr r3, r3, #0x10 + bl FUN_0201AF08 + ldr r0, _021EA114 ; =0x0000049A + strh r5, [r4, r0] + pop {r3, r4, r5, pc} + nop +_021EA114: .word 0x0000049A + thumb_func_end MOD75_021EA0CC + + thumb_func_start MOD75_021EA118 +MOD75_021EA118: ; 0x021EA118 + push {r3, lr} + ldr r0, _021EA12C ; =0x021EC404 + bl FUN_020209F4 + cmp r0, #1 + bne _021EA128 + mov r0, #1 + pop {r3, pc} +_021EA128: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_021EA12C: .word 0x021EC404 + thumb_func_end MOD75_021EA118 + + thumb_func_start MOD75_021EA130 +MOD75_021EA130: ; 0x021EA130 + push {r3, lr} + ldr r0, _021EA144 ; =0x021EC410 + bl FUN_020209A8 + cmp r0, #1 + bne _021EA140 + mov r0, #1 + pop {r3, pc} +_021EA140: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_021EA144: .word 0x021EC410 + thumb_func_end MOD75_021EA130 + + thumb_func_start MOD75_021EA148 +MOD75_021EA148: ; 0x021EA148 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + bl MOD75_021EA118 + cmp r0, #1 + bne _021EA176 + ldr r1, _021EA2BC ; =0x00000492 + mov r0, #1 + strb r0, [r5, r1] + mov r2, #0 + add r0, r1, #6 + strh r2, [r5, r0] + add r0, r1, #2 + str r2, [r5, r0] + add r0, r1, #0 + ldr r2, _021EA2C0 ; =0x021C48F8 + add r0, #0xc + ldrh r3, [r2, #0x1c] + add r1, #0xe + strh r3, [r5, r0] + ldrh r0, [r2, #0x1e] + strh r0, [r5, r1] +_021EA176: + ldr r0, _021EA2BC ; =0x00000492 + ldrb r0, [r5, r0] + cmp r0, #1 + beq _021EA180 + b _021EA2B6 +_021EA180: + bl MOD75_021EA130 + cmp r0, #1 + beq _021EA18A + b _021EA2A8 +_021EA18A: + mov r3, #0x50 + ldr r1, _021EA2C4 ; =0x0000049E + str r3, [sp] + ldr r4, _021EA2C0 ; =0x021C48F8 + ldrh r0, [r5, r1] + add r1, r1, #2 + ldrh r1, [r5, r1] + ldrh r2, [r4, #0x1c] + mov r7, #0x80 + ldrh r4, [r4, #0x1e] + sub r1, r3, r1 + sub r0, r7, r0 + sub r2, r7, r2 + sub r3, r3, r4 + bl FUN_0201BBD0 + add r4, r0, #0 + mov r0, #0x50 + lsl r1, r4, #1 + bl FUN_0201BC84 + lsl r0, r0, #8 + mov r1, #0xb6 + bl _s32_div_f + ldr r1, _021EA2C8 ; =0x0000049A + asr r3, r0, #8 + ldrsh r2, [r5, r1] + add r0, r5, r1 + add r2, r2, r3 + strh r2, [r0] + ldrsh r1, [r5, r1] + cmp r1, #0 + bge _021EA1DC + mov r1, #0 + ldrsh r2, [r0, r1] + add r1, r7, #0 + add r1, #0xe8 + add r1, r2, r1 + strh r1, [r0] + b _021EA1EC +_021EA1DC: + add r2, r7, #0 + add r2, #0xe8 + cmp r1, r2 + blt _021EA1EC + mov r1, #0 + ldrsh r1, [r0, r1] + sub r1, r1, r2 + strh r1, [r0] +_021EA1EC: + ldr r3, _021EA2C8 ; =0x0000049A + ldr r0, [r5] + ldrh r3, [r5, r3] + mov r1, #7 + mov r2, #0 + bl FUN_0201AF08 + ldr r0, _021EA2CC ; =0x000001F6 + add r1, r6, #0 + bl _s32_div_f + add r6, r0, #0 + cmp r4, #0 + ble _021EA250 + ldr r0, _021EA2D0 ; =0x00000498 + ldrsh r1, [r5, r0] + cmp r1, #0 + bge _021EA22A + add r0, r4, #0 + add r1, r6, #0 + bl _s32_div_f + ldr r1, _021EA2D0 ; =0x00000498 + strh r0, [r5, r1] + add r0, r4, #0 + add r1, r6, #0 + bl _s32_div_f + ldr r0, _021EA2D4 ; =0x00000494 + str r1, [r5, r0] + b _021EA298 +_021EA22A: + sub r0, r0, #4 + ldr r0, [r5, r0] + add r1, r6, #0 + add r0, r0, r4 + bl _s32_div_f + ldr r1, _021EA2D0 ; =0x00000498 + ldrsh r2, [r5, r1] + add r0, r2, r0 + strh r0, [r5, r1] + sub r0, r1, #4 + ldr r0, [r5, r0] + add r1, r6, #0 + add r0, r0, r4 + bl _s32_div_f + ldr r0, _021EA2D4 ; =0x00000494 + str r1, [r5, r0] + b _021EA298 +_021EA250: + bge _021EA298 + ldr r0, _021EA2D0 ; =0x00000498 + ldrsh r1, [r5, r0] + cmp r1, #0 + ble _021EA274 + add r0, r4, #0 + add r1, r6, #0 + bl _s32_div_f + ldr r1, _021EA2D0 ; =0x00000498 + strh r0, [r5, r1] + add r0, r4, #0 + add r1, r6, #0 + bl _s32_div_f + ldr r0, _021EA2D4 ; =0x00000494 + str r1, [r5, r0] + b _021EA298 +_021EA274: + sub r0, r0, #4 + ldr r0, [r5, r0] + add r1, r6, #0 + add r0, r0, r4 + bl _s32_div_f + ldr r1, _021EA2D0 ; =0x00000498 + ldrsh r2, [r5, r1] + add r0, r2, r0 + strh r0, [r5, r1] + sub r0, r1, #4 + ldr r0, [r5, r0] + add r1, r6, #0 + add r0, r0, r4 + bl _s32_div_f + ldr r0, _021EA2D4 ; =0x00000494 + str r1, [r5, r0] +_021EA298: + ldr r1, _021EA2C0 ; =0x021C48F8 + ldr r0, _021EA2C4 ; =0x0000049E + ldrh r2, [r1, #0x1c] + strh r2, [r5, r0] + ldrh r1, [r1, #0x1e] + add r0, r0, #2 + strh r1, [r5, r0] + b _021EA2B2 +_021EA2A8: + ldr r0, _021EA2BC ; =0x00000492 + mov r1, #0 + strb r1, [r5, r0] + add r0, r0, #6 + strh r1, [r5, r0] +_021EA2B2: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021EA2B6: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_021EA2BC: .word 0x00000492 +_021EA2C0: .word 0x021C48F8 +_021EA2C4: .word 0x0000049E +_021EA2C8: .word 0x0000049A +_021EA2CC: .word 0x000001F6 +_021EA2D0: .word 0x00000498 +_021EA2D4: .word 0x00000494 + thumb_func_end MOD75_021EA148 + + thumb_func_start MOD75_021EA2D8 +MOD75_021EA2D8: ; 0x021EA2D8 + push {r4, lr} + mov r1, #0x24 + add r4, r0, #0 + bl MOD75_021EA148 + ldr r1, _021EA324 ; =0x00000498 + ldrsh r1, [r4, r1] + cmp r1, #0 + ble _021EA306 + add r0, r4, #0 + mov r1, #0x40 + bl MOD75_021EA328 + cmp r0, #1 + ldr r0, _021EA324 ; =0x00000498 + bne _021EA2FE + ldrsh r1, [r4, r0] + sub r1, r1, #1 + b _021EA300 +_021EA2FE: + mov r1, #0 +_021EA300: + strh r1, [r4, r0] + mov r0, #1 + pop {r4, pc} +_021EA306: + bge _021EA322 + add r0, r4, #0 + mov r1, #0x80 + bl MOD75_021EA328 + cmp r0, #1 + ldr r0, _021EA324 ; =0x00000498 + bne _021EA31C + ldrsh r1, [r4, r0] + add r1, r1, #1 + b _021EA31E +_021EA31C: + mov r1, #0 +_021EA31E: + strh r1, [r4, r0] + mov r0, #1 +_021EA322: + pop {r4, pc} + .align 2, 0 +_021EA324: .word 0x00000498 + thumb_func_end MOD75_021EA2D8 + + thumb_func_start MOD75_021EA328 +MOD75_021EA328: ; 0x021EA328 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r4, r0, #0 + add r0, #0xc4 + ldr r3, [r0] + mov r5, #0xc + add r0, r3, #0 + add r0, #0x64 + ldrb r0, [r0] + add r2, r0, #0 + mul r2, r5 + add r0, r3, r2 + ldrh r0, [r0, #0xa] + add r3, sp, #0x10 + strh r0, [r3, #2] + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #0 + add r2, #0x64 + ldrb r2, [r2] + mul r5, r2 + add r0, r0, r5 + ldrh r0, [r0, #8] + strh r0, [r3] + mov r0, #1 + str r0, [sp] + add r0, sp, #0x10 + str r1, [sp, #4] + add r0, #2 + str r0, [sp, #8] + add r0, sp, #0x10 + str r0, [sp, #0xc] + mov r0, #0x57 + lsl r0, r0, #2 + ldrh r2, [r3, #2] + ldrh r3, [r3] + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02001354 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, r0, #0 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + add r5, r2, #0 + mul r5, r1 + add r1, sp, #0x10 + add r2, r0, r5 + ldrh r3, [r1, #2] + ldrh r0, [r2, #0xa] + cmp r3, r0 + bne _021EA3A6 + ldrh r1, [r1] + ldrh r0, [r2, #8] + cmp r1, r0 + bne _021EA3A6 + add sp, #0x14 + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_021EA3A6: + add r2, sp, #0x10 + ldrh r2, [r2] + add r0, r4, #0 + add r0, #0xf0 + sub r2, r2, #1 + lsl r2, r2, #4 + add r2, #0x18 + lsl r2, r2, #0x10 + ldr r0, [r0] + mov r1, #0xb1 + asr r2, r2, #0x10 + bl FUN_0200C714 + add r0, r4, #0 + add r0, #0xc4 + ldr r6, [r0] + add r2, sp, #0x10 + add r0, r6, #0 + add r0, #0x64 + ldrb r0, [r0] + ldrh r5, [r2, #2] + mov r1, #0xc + add r3, r0, #0 + mul r3, r1 + add r0, r6, r3 + strh r5, [r0, #0xa] + add r4, #0xc4 + ldr r3, [r4] + ldrh r2, [r2] + add r0, r3, #0 + add r0, #0x64 + ldrb r0, [r0] + mul r1, r0 + add r0, r3, r1 + strh r2, [r0, #8] + mov r0, #1 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD75_021EA328 + + thumb_func_start MOD75_021EA3F4 +MOD75_021EA3F4: ; 0x021EA3F4 + push {r4, lr} + mov r1, #0x24 + add r4, r0, #0 + bl MOD75_021EA148 + ldr r1, _021EA440 ; =0x00000498 + ldrsh r1, [r4, r1] + cmp r1, #0 + ble _021EA422 + add r0, r4, #0 + mov r1, #0x40 + bl MOD75_021EA444 + cmp r0, #1 + ldr r0, _021EA440 ; =0x00000498 + bne _021EA41A + ldrsh r1, [r4, r0] + sub r1, r1, #1 + b _021EA41C +_021EA41A: + mov r1, #0 +_021EA41C: + strh r1, [r4, r0] + mov r0, #1 + pop {r4, pc} +_021EA422: + bge _021EA43E + add r0, r4, #0 + mov r1, #0x80 + bl MOD75_021EA444 + cmp r0, #1 + ldr r0, _021EA440 ; =0x00000498 + bne _021EA438 + ldrsh r1, [r4, r0] + add r1, r1, #1 + b _021EA43A +_021EA438: + mov r1, #0 +_021EA43A: + strh r1, [r4, r0] + mov r0, #1 +_021EA43E: + pop {r4, pc} + .align 2, 0 +_021EA440: .word 0x00000498 + thumb_func_end MOD75_021EA3F4 + + thumb_func_start MOD75_021EA444 +MOD75_021EA444: ; 0x021EA444 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r4, r0, #0 + add r0, #0xc4 + ldr r3, [r0] + mov r5, #0xc + add r0, r3, #0 + add r0, #0x64 + ldrb r0, [r0] + add r2, r0, #0 + mul r2, r5 + add r0, r3, r2 + ldrh r0, [r0, #0xa] + add r3, sp, #0x10 + strh r0, [r3, #2] + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #0 + add r2, #0x64 + ldrb r2, [r2] + mul r5, r2 + add r0, r0, r5 + ldrh r0, [r0, #8] + strh r0, [r3] + mov r0, #1 + str r0, [sp] + add r0, sp, #0x10 + str r1, [sp, #4] + add r0, #2 + str r0, [sp, #8] + add r0, sp, #0x10 + str r0, [sp, #0xc] + mov r0, #0x57 + lsl r0, r0, #2 + ldrh r2, [r3, #2] + ldrh r3, [r3] + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02001354 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, r0, #0 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + add r5, r2, #0 + mul r5, r1 + add r1, sp, #0x10 + add r2, r0, r5 + ldrh r3, [r1, #2] + ldrh r0, [r2, #0xa] + cmp r3, r0 + bne _021EA4C2 + ldrh r1, [r1] + ldrh r0, [r2, #8] + cmp r1, r0 + bne _021EA4C2 + add sp, #0x14 + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_021EA4C2: + add r2, sp, #0x10 + ldrh r2, [r2] + add r0, r4, #0 + add r0, #0xf4 + sub r2, r2, #1 + lsl r2, r2, #4 + add r2, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r0] + mov r1, #0xb1 + asr r2, r2, #0x10 + bl FUN_0200C714 + add r0, r4, #0 + add r0, #0xc4 + ldr r6, [r0] + add r2, sp, #0x10 + add r0, r6, #0 + add r0, #0x64 + ldrb r0, [r0] + ldrh r5, [r2, #2] + mov r1, #0xc + add r3, r0, #0 + mul r3, r1 + add r0, r6, r3 + strh r5, [r0, #0xa] + add r4, #0xc4 + ldr r3, [r4] + ldrh r2, [r2] + add r0, r3, #0 + add r0, #0x64 + ldrb r0, [r0] + mul r1, r0 + add r0, r3, r1 + strh r2, [r0, #8] + mov r0, #1 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD75_021EA444 + + thumb_func_start MOD75_021EA510 +MOD75_021EA510: ; 0x021EA510 + push {r4, lr} + mov r1, #0x12 + add r4, r0, #0 + bl MOD75_021EA148 + ldr r1, _021EA55C ; =0x00000498 + ldrsh r1, [r4, r1] + cmp r1, #0 + ble _021EA53E + add r0, r4, #0 + mov r1, #2 + bl MOD75_021EA560 + cmp r0, #1 + ldr r0, _021EA55C ; =0x00000498 + bne _021EA536 + ldrsh r1, [r4, r0] + sub r1, r1, #1 + b _021EA538 +_021EA536: + mov r1, #0 +_021EA538: + strh r1, [r4, r0] + mov r0, #1 + pop {r4, pc} +_021EA53E: + bge _021EA55A + add r0, r4, #0 + mov r1, #3 + bl MOD75_021EA560 + cmp r0, #1 + ldr r0, _021EA55C ; =0x00000498 + bne _021EA554 + ldrsh r1, [r4, r0] + add r1, r1, #1 + b _021EA556 +_021EA554: + mov r1, #0 +_021EA556: + strh r1, [r4, r0] + mov r0, #1 +_021EA55A: + pop {r4, pc} + .align 2, 0 +_021EA55C: .word 0x00000498 + thumb_func_end MOD75_021EA510 + + thumb_func_start MOD75_021EA560 +MOD75_021EA560: ; 0x021EA560 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r6, r1, #0 + bl FUN_02001E5C + add r4, r0, #0 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r6, #0 + bl FUN_02001DDC + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001E5C + cmp r4, r0 + beq _021EA590 + mov r0, #1 + pop {r4, r5, r6, pc} +_021EA590: + mov r0, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD75_021EA560 + + thumb_func_start MOD75_021EA594 +MOD75_021EA594: ; 0x021EA594 + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + mov r1, #0x12 + add r5, r0, #0 + add r6, r2, #0 + bl MOD75_021EA148 + ldr r7, _021EA5FC ; =0x00000498 + mov r1, #0 + ldrsh r2, [r5, r7] + ldrsh r3, [r4, r1] + cmp r2, #0 + ble _021EA5D4 + sub r0, r2, #1 + strh r0, [r5, r7] + ldrsh r0, [r4, r1] + add r0, r0, #1 + strh r0, [r4] + ldrsh r0, [r4, r1] + cmp r0, r6 + ble _021EA5C2 + mov r0, #1 + strh r0, [r4] +_021EA5C2: + mov r0, #0 + ldrsh r1, [r4, r0] + cmp r1, r3 + beq _021EA5F8 + ldr r0, _021EA600 ; =0x00000638 + bl FUN_020054C8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021EA5D4: + bge _021EA5F8 + add r0, r2, #1 + strh r0, [r5, r7] + ldrsh r0, [r4, r1] + sub r0, r0, #1 + strh r0, [r4] + ldrsh r0, [r4, r1] + cmp r0, #0 + bgt _021EA5E8 + strh r6, [r4] +_021EA5E8: + mov r0, #0 + ldrsh r1, [r4, r0] + cmp r1, r3 + beq _021EA5F8 + ldr r0, _021EA600 ; =0x00000638 + bl FUN_020054C8 + mov r0, #1 +_021EA5F8: + pop {r3, r4, r5, r6, r7, pc} + nop +_021EA5FC: .word 0x00000498 +_021EA600: .word 0x00000638 + thumb_func_end MOD75_021EA594 + + thumb_func_start MOD75_021EA604 +MOD75_021EA604: ; 0x021EA604 + push {r3, r4, lr} + sub sp, #0x14 + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #0x11 + str r0, [sp, #4] + mov r0, #0x12 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + mov r0, #1 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, r4, #4 + mov r2, #2 + mov r3, #0xe + bl FUN_02019064 + mov r0, #0x12 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #6 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EA780 ; =0x00000133 + add r1, r4, #0 + str r0, [sp, #0x10] + mov r2, #0 + ldr r0, [r4] + add r1, #0x14 + add r3, r2, #0 + bl FUN_02019064 + mov r0, #0xd + str r0, [sp] + mov r0, #0x24 + str r0, [sp, #4] + mov r0, #3 + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _021EA784 ; =0x000001F3 + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x24 + mov r2, #2 + mov r3, #0 + bl FUN_02019064 + mov r0, #0x13 + str r0, [sp] + mov r0, #0xe + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xb + str r0, [sp, #0xc] + ldr r0, _021EA788 ; =0x0000025F + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x34 + mov r2, #0 + mov r3, #6 + bl FUN_02019064 + mov r0, #0x13 + str r0, [sp] + mov r0, #0xd + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xb + str r0, [sp, #0xc] + ldr r0, _021EA788 ; =0x0000025F + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x44 + mov r2, #0 + mov r3, #6 + bl FUN_02019064 + mov r0, #0xb + str r0, [sp] + mov r0, #0xc + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _021EA78C ; =0x00000297 + add r1, r4, #0 + str r0, [sp, #0x10] + mov r2, #0 + ldr r0, [r4] + add r1, #0x54 + add r3, r2, #0 + bl FUN_02019064 + 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] + ldr r0, _021EA790 ; =0x000002AF + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x64 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + mov r0, #0xd + str r0, [sp] + mov r0, #0xc + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EA794 ; =0x00000337 + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x74 + mov r2, #0 + mov r3, #0x13 + bl FUN_02019064 + mov r3, #1 + add r1, r4, #0 + str r3, [sp] + mov r0, #0xa + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EA798 ; =0x00000367 + add r1, #0x84 + str r0, [sp, #0x10] + ldr r0, [r4] + mov r2, #0 + bl FUN_02019064 + mov r0, #0x13 + str r0, [sp] + mov r0, #7 + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EA79C ; =0x00000387 + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x94 + mov r2, #0 + mov r3, #0x18 + bl FUN_02019064 + mov r0, #0xc + str r0, [sp] + mov r0, #0xb + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EA79C ; =0x00000387 + mov r2, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r4, #0xa4 + add r1, r4, #0 + mov r3, #1 + bl FUN_02019064 + add sp, #0x14 + pop {r3, r4, pc} + nop +_021EA780: .word 0x00000133 +_021EA784: .word 0x000001F3 +_021EA788: .word 0x0000025F +_021EA78C: .word 0x00000297 +_021EA790: .word 0x000002AF +_021EA794: .word 0x00000337 +_021EA798: .word 0x00000367 +_021EA79C: .word 0x00000387 + thumb_func_end MOD75_021EA604 + + thumb_func_start MOD75_021EA7A0 +MOD75_021EA7A0: ; 0x021EA7A0 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_021EA7A6: + lsl r0, r4, #4 + add r0, r5, r0 + bl FUN_02019178 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0xb + blo _021EA7A6 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD75_021EA7A0 + + thumb_func_start MOD75_021EA7BC +MOD75_021EA7BC: ; 0x021EA7BC + push {r3, r4, r5, r6, r7, lr} + mov r2, #0x57 + add r5, r0, #0 + mov r0, #1 + mov r1, #0x1a + lsl r2, r2, #2 + mov r3, #6 + bl FUN_0200A86C + ldr r7, _021EA7F4 ; =0x00000404 + add r6, r0, #0 + mov r4, #0 +_021EA7D4: + add r0, r6, #0 + add r1, r4, #0 + bl FUN_0200A914 + lsl r1, r4, #2 + add r1, r5, r1 + str r0, [r1, r7] + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #8 + blo _021EA7D4 + add r0, r6, #0 + bl FUN_0200A8B8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021EA7F4: .word 0x00000404 + thumb_func_end MOD75_021EA7BC + + thumb_func_start MOD75_021EA7F8 +MOD75_021EA7F8: ; 0x021EA7F8 + push {r4, r5, r6, lr} + ldr r6, _021EA818 ; =0x00000404 + add r5, r0, #0 + mov r4, #0 +_021EA800: + lsl r0, r4, #2 + add r0, r5, r0 + ldr r0, [r0, r6] + bl FUN_02021A20 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #8 + blo _021EA800 + pop {r4, r5, r6, pc} + nop +_021EA818: .word 0x00000404 + thumb_func_end MOD75_021EA7F8 + + thumb_func_start MOD75_021EA81C +MOD75_021EA81C: ; 0x021EA81C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r4, #0 + mov r6, #0xd + mov r7, #1 +_021EA828: + str r6, [sp] + ldr r2, _021EA878 ; =0x000001FF + str r7, [sp, #4] + add r2, r4, r2 + lsl r2, r2, #0x10 + lsl r3, r4, #0x18 + str r7, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, [r5] + mov r1, #2 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl FUN_02018540 + mov r0, #0xe + str r0, [sp] + mov r0, #1 + ldr r2, _021EA87C ; =0x00000223 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #3 + add r2, r4, r2 + str r0, [sp, #0xc] + lsl r2, r2, #0x10 + lsl r3, r4, #0x18 + ldr r0, [r5] + mov r1, #2 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl FUN_02018540 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0xc + blo _021EA828 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_021EA878: .word 0x000001FF +_021EA87C: .word 0x00000223 + thumb_func_end MOD75_021EA81C + + thumb_func_start MOD75_021EA880 +MOD75_021EA880: ; 0x021EA880 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r0, #0 + add r4, r2, #0 + add r2, r0, #0 + add r6, r1, #0 + bl FUN_02002E14 + add r3, r0, #0 + mov r0, #2 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EA8B8 ; =0x00010200 + lsr r3, r3, #1 + add r5, #0x24 + str r0, [sp, #8] + mov r1, #0 + add r0, r5, #0 + add r2, r6, #0 + sub r3, r4, r3 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_021EA8B8: .word 0x00010200 + thumb_func_end MOD75_021EA880 + + thumb_func_start MOD75_021EA8BC +MOD75_021EA8BC: ; 0x021EA8BC + push {r3, r4, r5, r6, r7, lr} + add r4, r0, #0 + add r0, #0x24 + mov r1, #0 + bl FUN_02019620 + add r2, r4, #0 + add r2, #0xc4 + ldr r6, [r2] + ldr r1, _021EA94C ; =0x00000429 + add r2, r6, #0 + add r2, #0x64 + ldrb r3, [r2] + mov r2, #0xc + add r0, r4, r1 + add r5, r3, #0 + mul r5, r2 + add r3, r6, r5 + ldrb r3, [r3, #0xc] + lsl r3, r3, #2 + add r5, r4, r3 + add r3, r1, #0 + sub r3, #0x25 + ldr r7, [r5, r3] + ldrb r3, [r0] + sub r1, #0x25 + add r5, r3, #0 + mul r5, r2 + add r3, r6, r5 + ldrb r3, [r3, #0xc] + lsl r3, r3, #2 + add r3, r4, r3 + ldr r1, [r3, r1] + ldrb r3, [r0, #1] + ldrb r0, [r0, #3] + cmp r3, #0 + bne _021EA91E + mul r2, r0 + add r2, #0x92 + lsl r0, r2, #0x10 + lsr r5, r0, #0x10 + add r2, r5, #0 + sub r2, #0x60 + lsl r2, r2, #0x10 + add r0, r4, #0 + lsr r2, r2, #0x10 + bl MOD75_021EA880 + b _021EA936 +_021EA91E: + mul r2, r0 + mov r0, #0x92 + sub r0, r0, r2 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + add r2, r5, #0 + add r2, #0x60 + lsl r2, r2, #0x10 + add r0, r4, #0 + lsr r2, r2, #0x10 + bl MOD75_021EA880 +_021EA936: + add r0, r4, #0 + add r1, r7, #0 + add r2, r5, #0 + bl MOD75_021EA880 + add r4, #0x24 + add r0, r4, #0 + bl FUN_02019548 + pop {r3, r4, r5, r6, r7, pc} + nop +_021EA94C: .word 0x00000429 + thumb_func_end MOD75_021EA8BC + + thumb_func_start MOD75_021EA950 +MOD75_021EA950: ; 0x021EA950 + push {r3, r4, r5, lr} + add r0, #0xd4 + ldr r0, [r0] + add r5, r1, #0 + mov r1, #0x11 + mov r2, #6 + bl FUN_02006704 + add r1, r5, #0 + add r4, r0, #0 + bl FUN_020B0030 + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD75_021EA950 + + thumb_func_start MOD75_021EA96C +MOD75_021EA96C: ; 0x021EA96C + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r4, r1, #0 + add r1, sp, #0x18 + add r5, r0, #0 + add r6, r2, #0 + bl MOD75_021EA950 + add r7, r0, #0 + cmp r6, #1 + bne _021EA998 + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + mov r0, #0xc + mul r0, r4 + add r0, r1, r0 + ldrb r0, [r0, #0xc] + lsl r0, r0, #5 + add r0, #0x10 + lsl r0, r0, #0x18 + b _021EA9A8 +_021EA998: + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + mov r0, #0xc + mul r0, r4 + add r0, r1, r0 + ldrb r0, [r0, #0xc] + lsl r0, r0, #0x1d +_021EA9A8: + lsr r2, r0, #0x18 + mov r0, #1 + lsl r0, r0, #8 + str r0, [sp] + mov r0, #0x10 + ldr r1, _021EA9F4 ; =0x00000427 + str r0, [sp, #4] + ldrb r0, [r5, r1] + add r1, r1, #1 + ldrb r1, [r5, r1] + add r3, r1, #0 + mul r3, r4 + add r0, r0, r3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + mov r0, #0xa + str r0, [sp, #0x10] + str r0, [sp, #0x14] + ldr r1, [sp, #0x18] + add r0, r5, #0 + ldr r1, [r1, #0x14] + add r0, #0x54 + mov r3, #0 + bl FUN_02019658 + add r5, #0x54 + add r0, r5, #0 + bl FUN_02019220 + mov r0, #6 + add r1, r7, #0 + bl FUN_02016A8C + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021EA9F4: .word 0x00000427 + thumb_func_end MOD75_021EA96C + + thumb_func_start MOD75_021EA9F8 +MOD75_021EA9F8: ; 0x021EA9F8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r5, r0, #0 + add r1, sp, #0x1c + bl MOD75_021EA950 + str r0, [sp, #0x18] + add r0, r5, #0 + add r0, #0x54 + mov r1, #0 + bl FUN_02019620 + ldr r0, _021EAAA0 ; =0x00000424 + mov r4, #0 + ldrb r0, [r5, r0] + cmp r0, #0 + bls _021EAA8C + mov r7, #1 + add r6, r5, #0 + lsl r7, r7, #8 + add r6, #0x54 +_021EAA22: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, r0, #0 + add r1, #0x64 + ldrb r1, [r1] + cmp r4, r1 + bne _021EAA42 + mov r1, #0xc + mul r1, r4 + add r0, r0, r1 + ldrb r0, [r0, #0xc] + lsl r0, r0, #5 + add r0, #0x10 + lsl r0, r0, #0x18 + b _021EAA4C +_021EAA42: + mov r1, #0xc + mul r1, r4 + add r0, r0, r1 + ldrb r0, [r0, #0xc] + lsl r0, r0, #0x1d +_021EAA4C: + lsr r2, r0, #0x18 + str r7, [sp] + mov r0, #0x10 + str r0, [sp, #4] + ldr r0, _021EAAA4 ; =0x00000427 + ldrb r3, [r5, r0] + add r0, r0, #1 + ldrb r0, [r5, r0] + add r1, r0, #0 + mul r1, r4 + add r0, r3, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + mov r0, #0xa + str r0, [sp, #0x10] + str r0, [sp, #0x14] + ldr r1, [sp, #0x1c] + add r0, r6, #0 + ldr r1, [r1, #0x14] + mov r3, #0 + bl FUN_02019658 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, _021EAAA0 ; =0x00000424 + ldrb r0, [r5, r0] + cmp r4, r0 + blo _021EAA22 +_021EAA8C: + add r5, #0x54 + add r0, r5, #0 + bl FUN_02019220 + ldr r1, [sp, #0x18] + mov r0, #6 + bl FUN_02016A8C + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021EAAA0: .word 0x00000424 +_021EAAA4: .word 0x00000427 + thumb_func_end MOD75_021EA9F8 + + thumb_func_start MOD75_021EAAA8 +MOD75_021EAAA8: ; 0x021EAAA8 + push {r3, r4, r5, lr} + lsl r1, r1, #0x10 + add r4, r2, #0 + lsr r1, r1, #0x10 + mov r2, #0 + add r5, r0, #0 + bl MOD75_021E7420 + add r2, r0, #0 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_0200AE38 + pop {r3, r4, r5, pc} + thumb_func_end MOD75_021EAAA8 + + thumb_func_start MOD75_021EAAC8 +MOD75_021EAAC8: ; 0x021EAAC8 + push {r3, r4, r5, lr} + lsl r1, r1, #0x10 + add r4, r2, #0 + lsr r1, r1, #0x10 + mov r2, #0 + add r5, r0, #0 + bl MOD75_021E7420 + add r2, r0, #0 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_0200AEA8 + pop {r3, r4, r5, pc} + thumb_func_end MOD75_021EAAC8 + + thumb_func_start MOD75_021EAAE8 +MOD75_021EAAE8: ; 0x021EAAE8 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r0, _021EAB3C ; =0x0000FFFF + add r6, r1, #0 + cmp r6, r0 + beq _021EAB0A + mov r0, #0x82 + mov r1, #6 + bl FUN_020219F4 + add r1, r6, #0 + mov r2, #6 + add r4, r0, #0 + bl FUN_0206E790 + b _021EAB18 +_021EAB0A: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x5e + bl FUN_0200A914 + add r4, r0, #0 +_021EAB18: + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAB40 ; =0x000F0E00 + add r5, #0x14 + str r0, [sp, #8] + add r0, r5, #0 + add r2, r4, #0 + mov r3, #0x28 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021EAB3C: .word 0x0000FFFF +_021EAB40: .word 0x000F0E00 + thumb_func_end MOD75_021EAAE8 + + thumb_func_start MOD75_021EAB44 +MOD75_021EAB44: ; 0x021EAB44 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + add r4, r5, #0 + add r0, r1, #0 + add r4, #0x14 + bl FUN_0206EA30 + str r0, [sp, #0x10] + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x62 + bl FUN_0200A914 + mov r1, #0 + add r6, r0, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + add r2, r6, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x56 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + mov r1, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r2, r6, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x59 + bl FUN_0200A914 + add r6, r0, #0 + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + add r2, r6, #0 + str r0, [sp, #8] + add r0, r4, #0 + mov r3, #0x60 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x57 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + mov r1, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r2, r6, #0 + mov r3, #0x60 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x58 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #0x20 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + mov r1, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r2, r6, #0 + mov r3, #0x60 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + ldr r0, [sp, #0x10] + mov r1, #0 + bl FUN_0206AB30 + add r7, r0, #0 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x5a + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + add r2, r7, #0 + mov r3, #2 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + mov r2, #0xfe + str r0, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r4, #0 + mov r3, #0x30 + bl FUN_0201BDE0 + ldr r0, [sp, #0x10] + mov r1, #2 + bl FUN_0206AB18 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + cmp r7, #1 + bhi _021EACBA + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x18 + bl FUN_0200A914 + b _021EACC6 +_021EACBA: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x5b + bl FUN_0200A914 +_021EACC6: + mov r1, #0 + add r6, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r2, r7, #0 + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + mov r2, #0xfe + str r0, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r4, #0 + mov r3, #0xa0 + bl FUN_0201BDE0 + ldr r0, [sp, #0x10] + mov r1, #4 + bl FUN_0206AB18 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + bne _021EAD30 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x18 + bl FUN_0200A914 + b _021EAD3C +_021EAD30: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x5b + bl FUN_0200A914 +_021EAD3C: + mov r1, #0 + add r6, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r2, r7, #0 + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x20 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + mov r2, #0xfe + str r0, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r4, #0 + mov r3, #0xa0 + bl FUN_0201BDE0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021EAD90: .word 0x000F0E00 + thumb_func_end MOD75_021EAB44 + + thumb_func_start MOD75_021EAD94 +MOD75_021EAD94: ; 0x021EAD94 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x26 + bl FUN_0200A914 + mov r1, #0xff + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x25 + bl FUN_0200A914 + mov r1, #1 + lsl r1, r1, #0xa + str r0, [r4, r1] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021EAD94 + + thumb_func_start MOD75_021EADC0 +MOD75_021EADC0: ; 0x021EADC0 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xff + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02021A20 + mov r0, #1 + lsl r0, r0, #0xa + ldr r0, [r4, r0] + bl FUN_02021A20 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021EADC0 + + thumb_func_start MOD75_021EADDC +MOD75_021EADDC: ; 0x021EADDC + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + str r1, [sp, #0x10] + add r0, #0xc4 + ldr r0, [r0] + add r4, r2, #0 + add r1, r0, #0 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + add r6, r3, #0 + mul r1, r2 + add r0, r0, r1 + ldrb r0, [r0, #0xc] + cmp r0, #3 + str r4, [sp] + bne _021EAE18 + mov r2, #0xff + str r2, [sp, #4] + str r6, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r5, #4 + mov r3, #0x73 + bl FUN_0201BDE0 + b _021EAE2E +_021EAE18: + mov r2, #0xff + str r2, [sp, #4] + str r6, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r5, #4 + mov r3, #0x6d + bl FUN_0201BDE0 +_021EAE2E: + mov r0, #0xa + mov r1, #6 + bl FUN_020219F4 + mov r1, #0 + add r7, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r2, [sp, #0x10] + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r2, #1 + lsl r0, r0, #2 + lsl r2, r2, #0xa + ldr r0, [r5, r0] + ldr r2, [r5, r2] + add r1, r7, #0 + bl FUN_0200B7B8 + mov r0, #0 + add r1, r7, #0 + add r2, r0, #0 + bl FUN_02002E14 + add r3, r0, #0 + str r4, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r4, #0x86 + str r6, [sp, #8] + mov r1, #0 + add r0, r5, #4 + add r2, r7, #0 + sub r3, r4, r3 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD75_021EADDC + + thumb_func_start MOD75_021EAE90 +MOD75_021EAE90: ; 0x021EAE90 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r6, r1, #0 + add r4, r2, #0 + add r5, r0, #0 + mov r0, #0x69 + ldrh r2, [r6] + lsl r0, r0, #2 + cmp r2, r0 + bhs _021EAEDA + add r1, r0, #0 + sub r1, #0x5d + sub r1, r2, r1 + lsl r1, r1, #0x10 + lsr r2, r1, #0x10 + mov r1, #2 + str r1, [sp] + add r3, r5, #4 + str r3, [sp, #4] + mov r3, #0 + str r3, [sp, #8] + add r3, r4, #5 + str r3, [sp, #0xc] + sub r0, #0x94 + ldr r0, [r5, r0] + add r3, r1, #0 + bl FUN_0200BA78 + lsl r2, r4, #0x10 + ldrh r1, [r6, #2] + ldr r3, _021EAF08 ; =0x00010200 + add r0, r5, #0 + lsr r2, r2, #0x10 + bl MOD75_021EADDC + add sp, #0x10 + pop {r4, r5, r6, pc} +_021EAEDA: + sub r1, r0, #1 + sub r1, r2, r1 + add r2, r5, #4 + str r2, [sp] + mov r2, #0x10 + str r2, [sp, #4] + add r2, r4, #5 + str r2, [sp, #8] + sub r0, #0x94 + lsl r1, r1, #0x10 + ldr r0, [r5, r0] + lsr r1, r1, #0x10 + mov r2, #2 + mov r3, #1 + bl FUN_0200B9EC + add r0, r5, #0 + add r1, r4, #0 + bl MOD75_021EAF70 + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_021EAF08: .word 0x00010200 + thumb_func_end MOD75_021EAE90 + + thumb_func_start MOD75_021EAF0C +MOD75_021EAF0C: ; 0x021EAF0C + push {r4, r5, r6, lr} + sub sp, #0x10 + add r4, r1, #0 + add r5, r0, #0 + ldrh r0, [r4] + add r6, r2, #0 + bl FUN_0206EB0C + mov r1, #2 + add r2, r0, #0 + str r1, [sp] + add r0, r5, #4 + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + add r0, r6, #5 + str r0, [sp, #0xc] + mov r0, #0x11 + lsl r0, r0, #4 + ldr r0, [r5, r0] + add r2, r2, #1 + add r3, r1, #0 + bl FUN_0200BA78 + lsl r2, r6, #0x10 + ldrh r1, [r4, #2] + ldr r3, _021EAF50 ; =0x00010200 + add r0, r5, #0 + lsr r2, r2, #0x10 + bl MOD75_021EADDC + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_021EAF50: .word 0x00010200 + thumb_func_end MOD75_021EAF0C + + thumb_func_start MOD75_021EAF54 +MOD75_021EAF54: ; 0x021EAF54 + push {r3, r4, r5, lr} + add r0, #0xd4 + ldr r0, [r0] + add r5, r1, #0 + mov r1, #0x26 + mov r2, #6 + bl FUN_02006704 + add r1, r5, #0 + add r4, r0, #0 + bl FUN_020B0030 + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD75_021EAF54 + + thumb_func_start MOD75_021EAF70 +MOD75_021EAF70: ; 0x021EAF70 + push {r3, r4, r5, r6, lr} + sub sp, #0x1c + add r4, r1, #0 + add r1, sp, #0x18 + add r5, r0, #0 + bl MOD75_021EAF54 + add r6, r0, #0 + mov r0, #0x40 + str r0, [sp] + mov r0, #0x10 + lsl r1, r4, #0x10 + str r0, [sp, #4] + mov r3, #0 + str r3, [sp, #8] + lsr r1, r1, #0x10 + str r1, [sp, #0xc] + mov r1, #0x18 + str r1, [sp, #0x10] + str r0, [sp, #0x14] + ldr r1, [sp, #0x18] + add r0, r5, #4 + ldr r1, [r1, #0x14] + mov r2, #0x28 + bl FUN_02019658 + mov r0, #6 + add r1, r6, #0 + bl FUN_02016A8C + add sp, #0x1c + pop {r3, r4, r5, r6, pc} + thumb_func_end MOD75_021EAF70 + + thumb_func_start MOD75_021EAFB0 +MOD75_021EAFB0: ; 0x021EAFB0 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r0, #0x45 + lsl r0, r0, #2 + add r4, r1, #0 + ldr r0, [r5, r0] + mov r1, #0x29 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #0x88 + str r0, [sp] + mov r0, #0x10 + mov r1, #0 + lsl r3, r4, #0x10 + str r0, [sp, #4] + add r0, r5, #4 + add r2, r1, #0 + lsr r3, r3, #0x10 + bl FUN_020196F4 + mov r1, #0 + str r4, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EB000 ; =0x00010200 + add r2, r6, #0 + str r0, [sp, #8] + add r0, r5, #4 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_021EB000: .word 0x00010200 + thumb_func_end MOD75_021EAFB0 + + thumb_func_start MOD75_021EB004 +MOD75_021EB004: ; 0x021EB004 + push {r3, r4, r5, r6, lr} + sub sp, #0x1c + add r4, r1, #0 + add r1, sp, #0x18 + add r5, r0, #0 + bl MOD75_021EAF54 + add r6, r0, #0 + mov r0, #0x40 + str r0, [sp] + mov r0, #0x10 + mov r2, #0 + str r0, [sp, #4] + mov r1, #0x60 + str r1, [sp, #8] + lsl r1, r4, #0x10 + lsr r1, r1, #0x10 + str r1, [sp, #0xc] + mov r1, #0x28 + str r1, [sp, #0x10] + str r0, [sp, #0x14] + ldr r1, [sp, #0x18] + add r0, r5, #4 + ldr r1, [r1, #0x14] + add r3, r2, #0 + bl FUN_02019658 + mov r0, #6 + add r1, r6, #0 + bl FUN_02016A8C + add sp, #0x1c + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD75_021EB004 + + thumb_func_start MOD75_021EB048 +MOD75_021EB048: ; 0x021EB048 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200A914 + mov r1, #0x49 + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x10 + ldr r0, [r4, r1] + mov r1, #6 + bl FUN_0200A914 + mov r1, #0x4a + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x14 + ldr r0, [r4, r1] + mov r1, #0x10 + bl FUN_0200A914 + mov r1, #0x4b + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x18 + ldr r0, [r4, r1] + mov r1, #0x5f + bl FUN_0200A914 + mov r1, #0x13 + lsl r1, r1, #4 + str r0, [r4, r1] + sub r1, #0x1c + ldr r0, [r4, r1] + mov r1, #0x60 + bl FUN_0200A914 + mov r1, #0x4d + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x20 + ldr r0, [r4, r1] + mov r1, #1 + bl FUN_0200A914 + mov r1, #0x4e + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x24 + ldr r0, [r4, r1] + mov r1, #2 + bl FUN_0200A914 + mov r1, #0x4f + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x28 + ldr r0, [r4, r1] + mov r1, #0x12 + bl FUN_0200A914 + mov r1, #5 + lsl r1, r1, #6 + str r0, [r4, r1] + sub r1, #0x2c + ldr r0, [r4, r1] + mov r1, #3 + bl FUN_0200A914 + mov r1, #0x51 + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x30 + ldr r0, [r4, r1] + mov r1, #4 + bl FUN_0200A914 + mov r1, #0x52 + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x34 + ldr r0, [r4, r1] + mov r1, #5 + bl FUN_0200A914 + mov r1, #0x53 + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x38 + ldr r0, [r4, r1] + mov r1, #8 + bl FUN_0200A914 + mov r1, #0x15 + lsl r1, r1, #4 + str r0, [r4, r1] + pop {r4, pc} + thumb_func_end MOD75_021EB048 + + thumb_func_start MOD75_021EB110 +MOD75_021EB110: ; 0x021EB110 + push {r4, r5, r6, lr} + mov r6, #0x49 + add r5, r0, #0 + mov r4, #0 + lsl r6, r6, #2 +_021EB11A: + lsl r0, r4, #2 + add r0, r5, r0 + ldr r0, [r0, r6] + bl FUN_02021A20 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0xc + blo _021EB11A + pop {r4, r5, r6, pc} + thumb_func_end MOD75_021EB110 + + thumb_func_start MOD75_021EB130 +MOD75_021EB130: ; 0x021EB130 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x28 + add r5, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r6, r1, #0 + add r1, r0, #0 + add r1, #0x64 + add r7, r2, #0 + ldrb r2, [r1] + mov r1, #0xc + mul r1, r2 + add r0, r0, r1 + ldrb r0, [r0, #0xc] + cmp r0, #4 + bne _021EB180 + lsl r0, r7, #1 + mov r3, #0x17 + sub r1, r3, r0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp] + mov r1, #8 + lsl r0, r0, #0x18 + str r1, [sp, #4] + lsr r0, r0, #0x18 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EB338 ; =0x00000337 + add r1, r5, #0 + str r0, [sp, #0x10] + ldr r0, [r5] + add r1, #0xb4 + mov r2, #0 + bl FUN_02019064 + mov r0, #4 + str r0, [sp, #0x14] + b _021EB1B0 +_021EB180: + lsl r0, r7, #1 + mov r1, #0x17 + sub r1, r1, r0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp] + mov r1, #7 + lsl r0, r0, #0x18 + str r1, [sp, #4] + lsr r0, r0, #0x18 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EB338 ; =0x00000337 + add r1, r5, #0 + str r0, [sp, #0x10] + ldr r0, [r5] + add r1, #0xb4 + mov r2, #0 + mov r3, #0x18 + bl FUN_02019064 + mov r0, #3 + str r0, [sp, #0x14] +_021EB1B0: + add r0, r7, #0 + mov r1, #6 + bl FUN_02012838 + mov r1, #0x55 + lsl r1, r1, #2 + mov r4, #0 + str r0, [r5, r1] + cmp r7, #0 + ble _021EB1EC +_021EB1C4: + ldrb r0, [r6, r4] + bl MOD75_021E8E10 + ldrb r1, [r6, r4] + add r2, r0, #0 + mov r0, #0x55 + lsl r1, r1, #2 + add r3, r5, r1 + mov r1, #0x49 + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r3, r1] + bl FUN_020128A0 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, r7 + blt _021EB1C4 +_021EB1EC: + mov r0, #0x55 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + str r0, [sp, #0x1c] + add r0, r5, #0 + add r0, #0xb4 + str r0, [sp, #0x20] + add r0, sp, #0x1c + strb r1, [r0, #8] + mov r1, #1 + strb r1, [r0, #9] + strb r7, [r0, #0xa] + ldrb r2, [r0, #0xb] + mov r1, #0xf + bic r2, r1 + strb r2, [r0, #0xb] + ldrb r2, [r0, #0xb] + mov r1, #0x30 + bic r2, r1 + strb r2, [r0, #0xb] + cmp r7, #4 + ldrb r2, [r0, #0xb] + blo _021EB228 + mov r1, #0xc0 + bic r2, r1 + mov r1, #0x40 + orr r1, r2 + strb r1, [r0, #0xb] + b _021EB22E +_021EB228: + mov r1, #0xc0 + bic r2, r1 + strb r2, [r0, #0xb] +_021EB22E: + mov r0, #6 + str r0, [sp] + mov r0, #2 + mov r2, #0 + str r0, [sp, #4] + add r0, sp, #0x1c + mov r1, #8 + add r3, r2, #0 + bl FUN_02001B8C + mov r1, #0x56 + lsl r1, r1, #2 + str r0, [r5, r1] + add r0, r5, #0 + add r0, #0xc4 + ldr r2, [r0] + mov r3, #0xc + add r0, r2, #0 + add r0, #0x64 + ldrb r0, [r0] + add r1, r0, #0 + mul r1, r3 + add r0, r2, r1 + ldrb r0, [r0, #0xc] + cmp r0, #3 + bne _021EB298 + add r0, r5, #0 + add r0, #0x14 + mov r1, #0 + bl FUN_02019620 + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r5, #0 + add r1, #0x66 + ldrh r1, [r1] + bl MOD75_021EAB44 + add r0, r5, #0 + add r0, #0x14 + bl FUN_02019220 + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r5, #0 + add r1, #0x66 + ldrh r1, [r1] + mov r2, #1 + bl MOD75_021EC2B8 + b _021EB31E +_021EB298: + ldr r0, [sp, #0x14] + add r4, r5, #4 + lsl r6, r0, #4 + ldr r2, _021EB33C ; =0x000003D9 + add r0, r4, r6 + mov r1, #1 + bl FUN_0200D0BC + add r0, r4, r6 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x2a + bl FUN_0200A914 + str r0, [sp, #0x18] + mov r0, #0x38 + mov r1, #6 + bl FUN_020219F4 + add r7, r0, #0 + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r1, #4 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + mul r1, r2 + add r1, r0, r1 + ldrh r2, [r1, #6] + ldrh r1, [r1, #4] + add r0, r5, #0 + add r1, r2, r1 + sub r1, r1, #1 + mov r2, #0 + bl MOD75_021EAAA8 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r2, [sp, #0x18] + add r1, r7, #0 + bl FUN_0200B7B8 + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + add r0, r4, r6 + mov r1, #1 + add r2, r7, #0 + str r3, [sp, #8] + bl FUN_0201BD84 + add r0, r7, #0 + bl FUN_02021A20 + ldr r0, [sp, #0x18] + bl FUN_02021A20 + add r0, r4, r6 + bl FUN_02019220 +_021EB31E: + add r0, r5, #0 + ldr r2, _021EB340 ; =0x000003F7 + add r0, #0xb4 + mov r1, #1 + mov r3, #0xe + bl FUN_0200CCA4 + add r5, #0xb4 + add r0, r5, #0 + bl FUN_02019220 + add sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021EB338: .word 0x00000337 +_021EB33C: .word 0x000003D9 +_021EB340: .word 0x000003F7 + thumb_func_end MOD75_021EB130 + + thumb_func_start MOD75_021EB344 +MOD75_021EB344: ; 0x021EB344 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r2, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r0, r2, r0 + ldrb r0, [r0, #0xc] + cmp r0, #4 + bne _021EB362 + mov r1, #4 + b _021EB364 +_021EB362: + mov r1, #3 +_021EB364: + cmp r0, #3 + beq _021EB37A + lsl r6, r1, #4 + add r4, r5, #4 + add r0, r4, r6 + mov r1, #1 + bl FUN_0200D0E0 + add r0, r4, r6 + bl FUN_0201958C +_021EB37A: + add r0, r5, #0 + add r0, #0xb4 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r5, #0 + add r0, #0xb4 + bl FUN_0201958C + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001C5C + mov r0, #0x55 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02012870 + add r0, r5, #0 + add r0, #0xb4 + bl FUN_02019178 + add r0, r5, #0 + add r0, #0x14 + mov r1, #0 + bl FUN_02019620 + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r5, #0 + add r1, #0x66 + ldrh r1, [r1] + bl MOD75_021EAAE8 + add r0, r5, #0 + add r0, #0x14 + bl FUN_02019220 + mov r1, #0 + add r0, r5, #0 + add r2, r1, #0 + bl MOD75_021EC2B8 + pop {r4, r5, r6, pc} + thumb_func_end MOD75_021EB344 + + thumb_func_start MOD75_021EB3D8 +MOD75_021EB3D8: ; 0x021EB3D8 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + add r0, #0x14 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x2d + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #0x82 + mov r1, #6 + bl FUN_020219F4 + ldr r1, _021EB44C ; =0x0000047B + add r4, r0, #0 + ldrb r1, [r5, r1] + add r0, r5, #0 + mov r2, #0 + sub r1, r1, #1 + bl MOD75_021EAAA8 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + add r2, r6, #0 + bl FUN_0200B7B8 + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EB450 ; =0x000F0E00 + add r2, r4, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0x14 + mov r3, #0x28 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r5, #0x14 + add r0, r5, #0 + bl FUN_02019220 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021EB44C: .word 0x0000047B +_021EB450: .word 0x000F0E00 + thumb_func_end MOD75_021EB3D8 + + thumb_func_start MOD75_021EB454 +MOD75_021EB454: ; 0x021EB454 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + ldr r2, _021EB4FC ; =0x000003F7 + add r5, r0, #0 + add r0, #0x94 + mov r1, #1 + mov r3, #0xe + bl FUN_0200CCA4 + add r0, r5, #0 + bl MOD75_021EB504 + add r0, r5, #0 + ldr r2, _021EB500 ; =0x000003D9 + add r0, #0x34 + mov r1, #1 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r5, #0 + add r0, #0x34 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x34 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #0x38 + mov r1, #6 + bl FUN_020219F4 + add r4, r0, #0 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r1, r2, r0 + ldrh r2, [r1, #6] + ldrh r1, [r1, #4] + add r0, r5, #0 + add r1, r2, r1 + sub r1, r1, #1 + mov r2, #0 + bl MOD75_021EAAA8 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + add r2, r6, #0 + bl FUN_0200B7B8 + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0x34 + mov r1, #1 + add r2, r4, #0 + str r3, [sp, #8] + bl FUN_0201BD84 + add r5, #0x34 + add r0, r5, #0 + bl FUN_02019220 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021EB4FC: .word 0x000003F7 +_021EB500: .word 0x000003D9 + thumb_func_end MOD75_021EB454 + + thumb_func_start MOD75_021EB504 +MOD75_021EB504: ; 0x021EB504 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r4, r5, #0 + add r4, #0x94 + add r0, r4, #0 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x54 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #2 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, _021EB57C ; =0x00000488 + mov r0, #0x46 + lsl r0, r0, #2 + ldrsh r2, [r5, r2] + ldr r0, [r5, r0] + mov r1, #0 + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + mov r0, #8 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r1, #0 + mov r2, #0xfe + str r1, [sp, #8] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r4, #0 + mov r3, #0x10 + bl FUN_0201BD84 + add r0, r4, #0 + bl FUN_02019220 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021EB57C: .word 0x00000488 + thumb_func_end MOD75_021EB504 + + thumb_func_start MOD75_021EB580 +MOD75_021EB580: ; 0x021EB580 + push {r4, lr} + add r4, r0, #0 + add r0, #0x34 + mov r1, #1 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x94 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r4, #0 + add r0, #0x34 + bl FUN_0201958C + add r0, r4, #0 + add r0, #0x94 + bl FUN_0201958C + add r4, #0x14 + add r0, r4, #0 + bl FUN_02019220 + pop {r4, pc} + thumb_func_end MOD75_021EB580 + + thumb_func_start MOD75_021EB5B0 +MOD75_021EB5B0: ; 0x021EB5B0 + push {r3, r4, r5, lr} + sub sp, #8 + ldr r2, _021EB654 ; =0x000003D9 + add r5, r0, #0 + add r0, #0x64 + mov r1, #1 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r5, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_0200A914 + add r4, r0, #0 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r1, r2, r0 + ldr r0, _021EB658 ; =0x00000488 + ldrsh r0, [r5, r0] + cmp r0, #1 + bne _021EB606 + ldrh r2, [r1, #6] + ldrh r1, [r1, #4] + add r0, r5, #0 + add r1, r2, r1 + sub r1, r1, #1 + mov r2, #0 + bl MOD75_021EAAA8 + b _021EB616 +_021EB606: + ldrh r2, [r1, #6] + ldrh r1, [r1, #4] + add r0, r5, #0 + add r1, r2, r1 + sub r1, r1, #1 + mov r2, #0 + bl MOD75_021EAAC8 +_021EB616: + mov r0, #0 + str r0, [sp] + mov r1, #1 + mov r0, #0x46 + ldr r2, _021EB658 ; =0x00000488 + str r1, [sp, #4] + lsl r0, r0, #2 + ldrsh r2, [r5, r2] + ldr r0, [r5, r0] + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021EB65C ; =0x00000426 + strb r0, [r5, r1] + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021EB654: .word 0x000003D9 +_021EB658: .word 0x00000488 +_021EB65C: .word 0x00000426 + thumb_func_end MOD75_021EB5B0 + + thumb_func_start MOD75_021EB660 +MOD75_021EB660: ; 0x021EB660 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #1 + bl FUN_02002B60 + mov r0, #0 + bl FUN_02002B7C + add r0, r4, #0 + add r0, #0xd0 + ldr r0, [r0] + bl FUN_02024FF4 + mov r3, #0 + str r3, [sp] + str r0, [sp, #4] + ldr r0, _021EB69C ; =MOD75_021EB6A0 + mov r2, #0xfe + str r0, [sp, #8] + lsl r2, r2, #2 + add r0, r4, #0 + ldr r2, [r4, r2] + add r0, #0x64 + mov r1, #1 + bl FUN_0201BD84 + add sp, #0xc + pop {r3, r4, pc} + nop +_021EB69C: .word MOD75_021EB6A0 + thumb_func_end MOD75_021EB660 + + thumb_func_start MOD75_021EB6A0 +MOD75_021EB6A0: ; 0x021EB6A0 + push {r3, lr} + cmp r1, #4 + bhi _021EB6D8 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021EB6B2: ; jump table + .short _021EB6D8 - _021EB6B2 - 2 ; case 0 + .short _021EB6BC - _021EB6B2 - 2 ; case 1 + .short _021EB6C2 - _021EB6B2 - 2 ; case 2 + .short _021EB6C8 - _021EB6B2 - 2 ; case 3 + .short _021EB6D0 - _021EB6B2 - 2 ; case 4 +_021EB6BC: + bl FUN_02005514 + pop {r3, pc} +_021EB6C2: + bl FUN_02005CBC + pop {r3, pc} +_021EB6C8: + ldr r0, _021EB6DC ; =0x0000060D + bl FUN_020054C8 + b _021EB6D8 +_021EB6D0: + ldr r0, _021EB6DC ; =0x0000060D + bl FUN_02005508 + pop {r3, pc} +_021EB6D8: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_021EB6DC: .word 0x0000060D + thumb_func_end MOD75_021EB6A0 + + thumb_func_start MOD75_021EB6E0 +MOD75_021EB6E0: ; 0x021EB6E0 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + mov r0, #6 + str r0, [sp] + ldr r0, [r4] + ldr r1, _021EB700 ; =0x021EC6AC + ldr r2, _021EB704 ; =0x000003F7 + mov r3, #0xe + bl FUN_02002198 + mov r1, #0x56 + lsl r1, r1, #2 + str r0, [r4, r1] + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_021EB700: .word 0x021EC6AC +_021EB704: .word 0x000003F7 + thumb_func_end MOD75_021EB6E0 + + thumb_func_start MOD75_021EB708 +MOD75_021EB708: ; 0x021EB708 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r4, r5, #0 + add r4, #0x74 + cmp r1, #0 + bne _021EB722 + ldr r2, _021EB7FC ; =0x000003F7 + add r0, r4, #0 + mov r1, #1 + mov r3, #0xe + bl FUN_0200CCA4 +_021EB722: + add r0, r4, #0 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x50 + bl FUN_0200A914 + mov r3, #2 + add r6, r0, #0 + str r3, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, _021EB800 ; =0x00000488 + mov r0, #0x46 + lsl r0, r0, #2 + ldrsh r2, [r5, r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + mov r0, #8 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r1, #0 + mov r2, #0xfe + str r1, [sp, #8] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_0201BD84 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x51 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + ldr r2, _021EB804 ; =0x0000048C + mov r0, #0x46 + ldr r3, [r5, r2] + sub r2, r2, #4 + ldrsh r2, [r5, r2] + lsl r0, r0, #2 + ldr r0, [r5, r0] + mul r2, r3 + mov r1, #0 + mov r3, #6 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + mov r1, #0xfe + lsl r1, r1, #2 + mov r0, #0 + ldr r1, [r5, r1] + add r2, r0, #0 + bl FUN_02002E14 + add r3, r0, #0 + mov r0, #8 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r1, #0 + mov r2, #0xfe + str r1, [sp, #8] + lsl r2, r2, #2 + ldr r2, [r5, r2] + mov r5, #0x60 + add r0, r4, #0 + sub r3, r5, r3 + bl FUN_0201BD84 + add r0, r4, #0 + bl FUN_02019220 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021EB7FC: .word 0x000003F7 +_021EB800: .word 0x00000488 +_021EB804: .word 0x0000048C + thumb_func_end MOD75_021EB708 + + thumb_func_start MOD75_021EB808 +MOD75_021EB808: ; 0x021EB808 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r4, r5, #0 + add r4, #0x84 + cmp r1, #0 + bne _021EB854 + add r0, r4, #0 + mov r1, #0xf + bl FUN_02019620 + ldr r2, _021EB8E4 ; =0x000003F7 + add r0, r4, #0 + mov r1, #1 + mov r3, #0xe + bl FUN_0200CCA4 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x4e + bl FUN_0200A914 + mov r1, #0 + add r6, r0, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + add r0, r4, #0 + add r2, r6, #0 + add r3, r1, #0 + str r1, [sp, #8] + bl FUN_0201BD84 + add r0, r6, #0 + bl FUN_02021A20 + b _021EB866 +_021EB854: + mov r0, #0x50 + str r0, [sp] + mov r3, #0x10 + add r0, r4, #0 + mov r1, #0xf + mov r2, #0 + str r3, [sp, #4] + bl FUN_020196F4 +_021EB866: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x4f + bl FUN_0200A914 + add r6, r0, #0 + add r0, r5, #0 + add r0, #0xcc + ldr r0, [r0] + bl FUN_02023A10 + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + mov r3, #6 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + mov r1, #0xfe + lsl r1, r1, #2 + mov r0, #0 + ldr r1, [r5, r1] + add r2, r0, #0 + bl FUN_02002E14 + add r3, r0, #0 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r1, #0 + mov r2, #0xfe + str r1, [sp, #8] + lsl r2, r2, #2 + ldr r2, [r5, r2] + mov r5, #0x50 + add r0, r4, #0 + sub r3, r5, r3 + bl FUN_0201BD84 + add r0, r4, #0 + bl FUN_02019220 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021EB8E4: .word 0x000003F7 + thumb_func_end MOD75_021EB808 + + thumb_func_start MOD75_021EB8E8 +MOD75_021EB8E8: ; 0x021EB8E8 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r4, r5, #0 + add r4, #0xa4 + add r0, r4, #0 + mov r1, #0xf + bl FUN_02019620 + ldr r2, _021EB9B0 ; =0x000003F7 + add r0, r4, #0 + mov r1, #1 + mov r3, #0xe + bl FUN_0200CCA4 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x6c + bl FUN_0200A914 + mov r1, #0 + add r6, r0, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + add r0, r4, #0 + add r2, r6, #0 + add r3, r1, #0 + str r1, [sp, #8] + bl FUN_0201BD84 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x6d + bl FUN_0200A914 + add r6, r0, #0 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r0, [r0] + bl FUN_02028048 + bl FUN_020281B8 + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + add r0, r6, #0 + bl FUN_02021A20 + mov r1, #0xfe + lsl r1, r1, #2 + mov r0, #0 + ldr r1, [r5, r1] + add r2, r0, #0 + bl FUN_02002E14 + add r3, r0, #0 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r1, #0 + mov r2, #0xfe + str r1, [sp, #8] + lsl r2, r2, #2 + ldr r2, [r5, r2] + mov r5, #0x58 + add r0, r4, #0 + sub r3, r5, r3 + bl FUN_0201BD84 + add r0, r4, #0 + bl FUN_02019220 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021EB9B0: .word 0x000003F7 + thumb_func_end MOD75_021EB8E8 + + thumb_func_start MOD75_021EB9B4 +MOD75_021EB9B4: ; 0x021EB9B4 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + mov r0, #0x20 + mov r1, #6 + bl FUN_0201C24C + add r0, r4, #0 + bl MOD75_021EB9E4 + add r0, r4, #0 + bl MOD75_021EBA80 + add r0, r4, #0 + bl MOD75_021EBEAC + pop {r4, pc} + thumb_func_end MOD75_021EB9B4 + + thumb_func_start MOD75_021EB9E4 +MOD75_021EB9E4: ; 0x021EB9E4 + push {r3, r4, r5, r6, lr} + sub sp, #0x4c + ldr r3, _021EBA74 ; =0x021EC6D4 + add r2, sp, #0x34 + 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} + mov r0, #6 + bl FUN_0200BB14 + add r1, r4, #0 + add r1, #0xd8 + str r0, [r1] + add r0, r4, #0 + add r0, #0xd8 + ldr r0, [r0] + bl FUN_0200BB34 + add r1, r4, #0 + add r1, #0xdc + add r2, sp, #0x14 + ldr r5, _021EBA78 ; =0x021EC6EC + str r0, [r1] + ldmia r5!, {r0, r1} + add r3, r2, #0 + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + ldr r6, _021EBA7C ; =0x021EC6C0 + stmia r2!, {r0, r1} + add r5, sp, #0 + ldmia r6!, {r0, r1} + add r2, r5, #0 + stmia r5!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + ldr r0, [r6] + add r1, r3, #0 + str r0, [r5] + add r0, r4, #0 + add r0, #0xd8 + ldr r0, [r0] + mov r3, #0x20 + bl FUN_0200BB6C + add r0, r4, #0 + add r1, r4, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xc + bl FUN_0200BBF0 + add r0, r4, #0 + add r0, #0xd8 + add r4, #0xdc + ldr r0, [r0] + ldr r1, [r4] + add r2, sp, #0x34 + bl FUN_0200BF60 + add sp, #0x4c + pop {r3, r4, r5, r6, pc} + nop +_021EBA74: .word 0x021EC6D4 +_021EBA78: .word 0x021EC6EC +_021EBA7C: .word 0x021EC6C0 + thumb_func_end MOD75_021EB9E4 + + thumb_func_start MOD75_021EBA80 +MOD75_021EBA80: ; 0x021EBA80 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r0, _021EBE38 ; =0x00000425 + ldrb r0, [r5, r0] + cmp r0, #0 + bne _021EBA94 + mov r3, #2 + mov r4, #3 + b _021EBA98 +_021EBA94: + mov r3, #0x22 + mov r4, #0x23 +_021EBA98: + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021EBE3C ; =0x0000C0F9 + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + bl FUN_0200C00C + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021EBE40 ; =0x0000C0FA + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x15 + bl FUN_0200C00C + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021EBE44 ; =0x0000C0FB + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x18 + bl FUN_0200C00C + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021EBE48 ; =0x0000C0FC + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x1b + bl FUN_0200C00C + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021EBE4C ; =0x0000C0FD + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #6 + bl FUN_0200C00C + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _021EBE50 ; =0x0000C0FE + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x1e + bl FUN_0200C00C + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0xc1 + lsl r0, r0, #8 + str r0, [sp, #8] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x3e + mov r3, #4 + bl FUN_0200C00C + mov r0, #0 + mov r1, #1 + bl FUN_0206E640 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021EBE54 ; =0x0000C0FF + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x10 + bl FUN_0200C00C + ldr r0, _021EBE58 ; =0x0000C101 + add r1, r5, #0 + str r0, [sp] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #1 + mov r3, #0 + bl FUN_0206E130 + ldr r0, _021EBE5C ; =0x0000C102 + add r1, r5, #0 + str r0, [sp] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #1 + mov r3, #0 + bl FUN_0206E2AC + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, _021EBE3C ; =0x0000C0F9 + add r1, r5, #0 + str r0, [sp, #0xc] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + add r3, r4, #0 + bl FUN_0200C06C + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + ldr r0, _021EBE40 ; =0x0000C0FA + add r1, r5, #0 + str r0, [sp, #0xc] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x10 + bl FUN_0200C06C + mov r0, #0 + mov r1, #2 + bl FUN_0206E640 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, _021EBE48 ; =0x0000C0FC + add r1, r5, #0 + str r0, [sp, #0xc] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x10 + bl FUN_0200C06C + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + ldr r0, _021EBE4C ; =0x0000C0FD + add r1, r5, #0 + str r0, [sp, #0xc] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x3e + mov r3, #0xa + bl FUN_0200C06C + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + ldr r3, _021EBE50 ; =0x0000C0FE + mov r2, #1 + bl FUN_0206E164 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + ldr r0, _021EBE44 ; =0x0000C0FB + add r1, r5, #0 + str r0, [sp, #0xc] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x1f + bl FUN_0200C06C + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE3C ; =0x0000C0F9 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #1 + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE40 ; =0x0000C0FA + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x14 + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE44 ; =0x0000C0FB + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x17 + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE48 ; =0x0000C0FC + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x1a + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE4C ; =0x0000C0FD + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #5 + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE50 ; =0x0000C0FE + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x1d + bl FUN_0200C124 + bl FUN_0206E708 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE54 ; =0x0000C0FF + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x10 + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + mov r0, #0xc1 + lsl r0, r0, #8 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x3e + mov r3, #5 + bl FUN_0200C124 + mov r3, #0 + add r1, r5, #0 + ldr r0, _021EBE3C ; =0x0000C0F9 + str r3, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + bl FUN_0200C13C + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE40 ; =0x0000C0FA + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x13 + bl FUN_0200C13C + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE44 ; =0x0000C0FB + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x16 + bl FUN_0200C13C + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE48 ; =0x0000C0FC + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x19 + bl FUN_0200C13C + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE4C ; =0x0000C0FD + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #4 + bl FUN_0200C13C + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE50 ; =0x0000C0FE + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x1c + bl FUN_0200C13C + bl FUN_0206E70C + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE54 ; =0x0000C0FF + b _021EBE60 + nop +_021EBE38: .word 0x00000425 +_021EBE3C: .word 0x0000C0F9 +_021EBE40: .word 0x0000C0FA +_021EBE44: .word 0x0000C0FB +_021EBE48: .word 0x0000C0FC +_021EBE4C: .word 0x0000C0FD +_021EBE50: .word 0x0000C0FE +_021EBE54: .word 0x0000C0FF +_021EBE58: .word 0x0000C101 +_021EBE5C: .word 0x0000C102 +_021EBE60: + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x10 + bl FUN_0200C13C + mov r0, #0 + str r0, [sp] + mov r0, #0xc1 + lsl r0, r0, #8 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x3e + mov r3, #6 + bl FUN_0200C13C + add r0, r5, #0 + add r0, #0xd8 + add r5, #0xdc + ldr r2, _021EBEA8 ; =0x0000C101 + ldr r0, [r0] + ldr r1, [r5] + add r3, r2, #0 + bl FUN_0206E1D4 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_021EBEA8: .word 0x0000C101 + thumb_func_end MOD75_021EBA80 + + thumb_func_start MOD75_021EBEAC +MOD75_021EBEAC: ; 0x021EBEAC + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r4, _021EBFD8 ; =0x021EC70C + mov r7, #0 + add r6, r5, #0 +_021EBEB8: + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + add r2, r4, #0 + bl FUN_0200C154 + add r1, r6, #0 + add r1, #0xe0 + add r7, r7, #1 + str r0, [r1] + add r4, #0x34 + add r6, r6, #4 + cmp r7, #0xc + blo _021EBEB8 + add r0, r5, #0 + add r0, #0xf4 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + add r0, r5, #0 + add r0, #0xf8 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + mov r0, #0x42 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200C644 + mov r0, #0x43 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200C644 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x65 + ldrb r0, [r0] + add r0, #0xfc + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #1 + bhi _021EBF2A + add r0, r5, #0 + add r0, #0xe4 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 +_021EBF2A: + ldr r0, _021EBFDC ; =0x00000424 + ldrb r0, [r5, r0] + cmp r0, #1 + bne _021EBF4A + add r0, r5, #0 + add r0, #0xe8 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + add r0, r5, #0 + add r0, #0xec + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 +_021EBF4A: + add r0, r5, #0 + mov r1, #0 + bl MOD75_021EC298 + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r5, #0 + add r2, r1, #0 + add r2, #0x64 + ldrb r3, [r2] + mov r2, #0xc + add r0, #0xe0 + mul r2, r3 + add r1, r1, r2 + ldrb r1, [r1, #0xc] + ldr r0, [r0] + bl FUN_0200C5C0 + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r5, #0 + add r1, #0x64 + ldrb r1, [r1] + bl MOD75_021EC18C + add r1, r0, #0 + add r0, r5, #0 + add r0, #0xe4 + ldr r0, [r0] + mov r2, #0x61 + bl FUN_0200C714 + add r0, r5, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r5, #0 + add r3, r2, #0 + add r3, #0x64 + ldrb r4, [r3] + mov r3, #0xc + add r0, #0xf0 + mul r3, r4 + add r2, r2, r3 + ldrh r2, [r2, #8] + ldr r0, [r0] + mov r1, #0xb1 + sub r2, r2, #1 + lsl r2, r2, #4 + add r2, #0x18 + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + bl FUN_0200C714 + ldr r4, _021EBFE0 ; =0x021EC6B4 + add r3, sp, #0 + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r4] + add r1, r2, #0 + add r5, #0xe0 + str r0, [r3] + ldr r0, [r5] + mov r2, #2 + ldr r0, [r0] + bl FUN_02020074 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021EBFD8: .word 0x021EC70C +_021EBFDC: .word 0x00000424 +_021EBFE0: .word 0x021EC6B4 + thumb_func_end MOD75_021EBEAC + + thumb_func_start MOD75_021EBFE4 +MOD75_021EBFE4: ; 0x021EBFE4 + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_021EBFEC: + add r0, r5, #0 + add r0, #0xe0 + ldr r0, [r0] + bl FUN_0200C3DC + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xc + blo _021EBFEC + add r0, r6, #0 + add r1, r6, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + bl FUN_0200C398 + add r6, #0xd8 + ldr r0, [r6] + bl FUN_0200BD04 + pop {r4, r5, r6, pc} + thumb_func_end MOD75_021EBFE4 + + thumb_func_start MOD75_021EC018 +MOD75_021EC018: ; 0x021EC018 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_021EC01E: + add r0, r5, #0 + add r0, #0xe0 + ldr r0, [r0] + bl FUN_0200C5A8 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xc + blo _021EC01E + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD75_021EC018 + + thumb_func_start MOD75_021EC034 +MOD75_021EC034: ; 0x021EC034 + push {r3, r4, r5, lr} + sub sp, #8 + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #1 + bl FUN_0206E640 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, _021EC088 ; =0x0000C0FF + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x10 + bl FUN_0200C9D8 + add r0, r4, #0 + mov r1, #2 + bl FUN_0206E640 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, _021EC08C ; =0x0000C0FC + mov r2, #0x10 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r5, #0xdc + ldr r0, [r0] + ldr r1, [r5] + bl FUN_0200CA0C + add sp, #8 + pop {r3, r4, r5, pc} + nop +_021EC088: .word 0x0000C0FF +_021EC08C: .word 0x0000C0FC + thumb_func_end MOD75_021EC034 + + thumb_func_start MOD75_021EC090 +MOD75_021EC090: ; 0x021EC090 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, #0xf0 + ldr r0, [r0] + add r4, r1, #0 + bl FUN_0200C66C + add r5, #0xe4 + ldr r0, [r5] + add r1, r4, #0 + bl FUN_0200C66C + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD75_021EC090 + + thumb_func_start MOD75_021EC0AC +MOD75_021EC0AC: ; 0x021EC0AC + ldr r1, _021EC0C0 ; =0x00000454 + ldrb r0, [r0, r1] + cmp r0, #0 + bne _021EC0B8 + mov r0, #1 + b _021EC0BA +_021EC0B8: + mov r0, #0 +_021EC0BA: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr + .align 2, 0 +_021EC0C0: .word 0x00000454 + thumb_func_end MOD75_021EC0AC + + thumb_func_start MOD75_021EC0C4 +MOD75_021EC0C4: ; 0x021EC0C4 + ldr r1, _021EC0D4 ; =0x00000457 + mov r2, #0 + strb r2, [r0, r1] + ldr r3, _021EC0D8 ; =MOD75_021EC1A4 + mov r2, #1 + sub r1, r1, #3 + strb r2, [r0, r1] + bx r3 + .align 2, 0 +_021EC0D4: .word 0x00000457 +_021EC0D8: .word MOD75_021EC1A4 + thumb_func_end MOD75_021EC0C4 + + thumb_func_start MOD75_021EC0DC +MOD75_021EC0DC: ; 0x021EC0DC + push {r3, lr} + ldr r1, _021EC0F0 ; =0x00000454 + ldrb r1, [r0, r1] + cmp r1, #0 + beq _021EC0EE + cmp r1, #1 + bne _021EC0EE + bl MOD75_021EC0F4 +_021EC0EE: + pop {r3, pc} + .align 2, 0 +_021EC0F0: .word 0x00000454 + thumb_func_end MOD75_021EC0DC + + thumb_func_start MOD75_021EC0F4 +MOD75_021EC0F4: ; 0x021EC0F4 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + add r0, #0xe4 + ldr r0, [r0] + ldr r0, [r0] + bl FUN_0202011C + add r3, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0 + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + ldr r2, _021EC180 ; =0x00000455 + ldrb r0, [r4, r2] + cmp r0, #0 + bne _021EC12C + add r1, r2, #2 + ldrb r1, [r4, r1] + ldr r0, [sp] + lsl r1, r1, #2 + add r3, r4, r1 + add r1, r2, #3 + ldr r1, [r3, r1] + sub r0, r0, r1 + str r0, [sp] + b _021EC13E +_021EC12C: + add r1, r2, #2 + ldrb r1, [r4, r1] + ldr r0, [sp] + lsl r1, r1, #2 + add r3, r4, r1 + add r1, r2, #3 + ldr r1, [r3, r1] + add r0, r0, r1 + str r0, [sp] +_021EC13E: + add r0, r4, #0 + add r0, #0xe4 + ldr r0, [r0] + add r1, sp, #0 + ldr r0, [r0] + bl FUN_02020044 + ldr r1, _021EC184 ; =0x00000457 + ldrb r0, [r4, r1] + add r0, r0, #1 + strb r0, [r4, r1] + ldrb r0, [r4, r1] + cmp r0, #8 + bne _021EC17C + add r1, #0x21 + ldrb r1, [r4, r1] + add r0, r4, #0 + bl MOD75_021EC18C + lsl r0, r0, #0xc + str r0, [sp] + add r0, r4, #0 + add r0, #0xe4 + ldr r0, [r0] + add r1, sp, #0 + ldr r0, [r0] + bl FUN_02020044 + ldr r0, _021EC188 ; =0x00000454 + mov r1, #0 + strb r1, [r4, r0] +_021EC17C: + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 +_021EC180: .word 0x00000455 +_021EC184: .word 0x00000457 +_021EC188: .word 0x00000454 + thumb_func_end MOD75_021EC0F4 + + thumb_func_start MOD75_021EC18C +MOD75_021EC18C: ; 0x021EC18C + ldr r2, _021EC1A0 ; =0x00000427 + ldrb r3, [r0, r2] + add r2, r2, #1 + ldrb r0, [r0, r2] + mul r1, r0 + add r0, r3, r1 + add r0, r0, #6 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr + .align 2, 0 +_021EC1A0: .word 0x00000427 + thumb_func_end MOD75_021EC18C + + thumb_func_start MOD75_021EC1A4 +MOD75_021EC1A4: ; 0x021EC1A4 + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + add r0, #0xe4 + ldr r0, [r0] + ldr r0, [r0] + bl FUN_0202011C + add r3, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0 + stmia r2!, {r0, r1} + ldr r0, [r3] + ldr r1, _021EC240 ; =0x00000478 + str r0, [r2] + ldrb r1, [r4, r1] + add r0, r4, #0 + bl MOD75_021EC18C + lsl r1, r0, #0xc + ldr r0, [sp] + cmp r1, r0 + bge _021EC1DE + sub r0, r0, r1 + mov r1, #0x64 + bl _s32_div_f + mov r2, #0 + b _021EC1E8 +_021EC1DE: + sub r0, r1, r0 + mov r1, #0x64 + bl _s32_div_f + mov r2, #1 +_021EC1E8: + ldr r1, _021EC244 ; =0x00000455 + mov r3, #0x28 + strb r2, [r4, r1] + add r5, r0, #0 + ldr r1, _021EC248 ; =0x00000458 + mov r2, #0 + mul r5, r3 + str r2, [r4, r1] + add r3, r1, #4 + str r5, [r4, r3] + mov r3, #0x19 + add r5, r0, #0 + mul r5, r3 + add r3, r1, #0 + add r3, #8 + str r5, [r4, r3] + mov r3, #0xf + add r5, r0, #0 + mul r5, r3 + add r3, r1, #0 + add r3, #0xc + str r5, [r4, r3] + mov r3, #0xa + add r5, r0, #0 + mul r5, r3 + add r3, r1, #0 + add r3, #0x10 + str r5, [r4, r3] + mov r3, #7 + add r5, r0, #0 + mul r5, r3 + add r3, r1, #0 + add r3, #0x14 + str r5, [r4, r3] + lsl r3, r0, #1 + add r3, r0, r3 + add r0, r1, #0 + add r0, #0x18 + str r3, [r4, r0] + add r1, #0x1c + str r2, [r4, r1] + add sp, #0xc + pop {r4, r5, pc} + nop +_021EC240: .word 0x00000478 +_021EC244: .word 0x00000455 +_021EC248: .word 0x00000458 + thumb_func_end MOD75_021EC1A4 + + thumb_func_start MOD75_021EC24C +MOD75_021EC24C: ; 0x021EC24C + push {r4, lr} + add r4, r0, #0 + cmp r1, #0 + bne _021EC272 + mov r0, #1 + lsl r0, r0, #8 + ldr r0, [r4, r0] + mov r1, #0xdc + mov r2, #0x9c + bl FUN_0200C714 + mov r0, #0x41 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xdc + mov r2, #0xb4 + bl FUN_0200C714 + b _021EC28E +_021EC272: + mov r0, #1 + lsl r0, r0, #8 + ldr r0, [r4, r0] + mov r1, #0xa2 + mov r2, #0x6c + bl FUN_0200C714 + mov r0, #0x41 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xa2 + mov r2, #0x84 + bl FUN_0200C714 +_021EC28E: + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC298 + pop {r4, pc} + thumb_func_end MOD75_021EC24C + + thumb_func_start MOD75_021EC298 +MOD75_021EC298: ; 0x021EC298 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #1 + lsl r0, r0, #8 + ldr r0, [r5, r0] + add r4, r1, #0 + bl FUN_0200C644 + mov r0, #0x41 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_0200C644 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD75_021EC298 + + thumb_func_start MOD75_021EC2B8 +MOD75_021EC2B8: ; 0x021EC2B8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #0x42 + lsl r0, r0, #2 + add r4, r2, #0 + add r6, r1, #0 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_0200C644 + mov r0, #0x43 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_0200C644 + cmp r4, #0 + beq _021EC374 + add r0, r6, #0 + bl FUN_0206EA30 + mov r1, #3 + add r4, r0, #0 + bl FUN_0206AB18 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + add r0, r4, #0 + mov r1, #1 + bl FUN_0206AB18 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + bl FUN_0206E12C + add r7, r0, #0 + add r0, r6, #0 + bl FUN_0206E0F0 + add r3, r0, #0 + mov r0, #1 + str r0, [sp] + ldr r0, _021EC378 ; =0x0000C101 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + add r2, r7, #0 + bl FUN_0200C9D8 + add r0, r6, #0 + bl FUN_0206E114 + add r1, r0, #0 + mov r0, #0x42 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r1, #6 + bl FUN_0200C66C + bl FUN_0206E2A8 + add r6, r0, #0 + add r0, r4, #0 + bl FUN_0206E278 + add r3, r0, #0 + mov r0, #1 + str r0, [sp] + ldr r0, _021EC37C ; =0x0000C102 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + add r2, r6, #0 + bl FUN_0200C9D8 + add r0, r4, #0 + bl FUN_0206E290 + add r1, r0, #0 + mov r0, #0x43 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r1, #6 + bl FUN_0200C66C +_021EC374: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021EC378: .word 0x0000C101 +_021EC37C: .word 0x0000C102 + thumb_func_end MOD75_021EC2B8 + + thumb_func_start MOD75_021EC380 +MOD75_021EC380: ; 0x021EC380 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r0, #0xf8 + add r4, r1, #0 + ldr r0, [r0] + mov r1, #1 + add r6, r2, #0 + bl FUN_0200C644 + add r0, r5, #0 + add r0, #0xf8 + ldr r0, [r0] + add r1, r4, #0 + add r2, r6, #0 + bl FUN_0200C714 + add r0, r5, #0 + add r0, #0xf8 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C61C + add r5, #0xf8 + ldr r0, [r5] + mov r1, #0 + bl FUN_0200C5C0 + pop {r4, r5, r6, pc} + thumb_func_end MOD75_021EC380 + + thumb_func_start MOD75_021EC3B8 +MOD75_021EC3B8: ; 0x021EC3B8 + push {r4, lr} + add r4, r0, #0 + add r0, #0xf8 + ldr r0, [r0] + bl FUN_0200C658 + cmp r0, #1 + bne _021EC3EE + add r0, r4, #0 + add r0, #0xf8 + mov r1, #1 + ldr r0, [r0] + lsl r1, r1, #0xc + bl FUN_0200C5B4 + add r0, r4, #0 + add r0, #0xf8 + ldr r0, [r0] + bl FUN_0200C630 + cmp r0, #2 + bne _021EC3EE + add r4, #0xf8 + ldr r0, [r4] + mov r1, #0 + bl FUN_0200C644 +_021EC3EE: + pop {r4, pc} + thumb_func_end MOD75_021EC3B8 + + .section .rodata + ; 0x021EC3F0 + .incbin "baserom.nds", 0x2D5650, 0x58C |