summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-05-13 15:41:48 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-05-13 15:41:48 -0400
commitae0127ffd1304e6ab91d74071e96fcb6b20d4e67 (patch)
tree3f2890a0debc784591b0693f8f76f063d577aa13
parent15656cc5427b31e9304143dee74d32f8e7dcf100 (diff)
Disassemble module 83
-rw-r--r--arm9/arm9.lcf25
-rw-r--r--arm9/asm/secure.s9
-rw-r--r--arm9/asm/unk_02046030.s36
-rw-r--r--arm9/global.inc122
-rw-r--r--arm9/modules/04/asm/arm_04.s8
-rw-r--r--arm9/modules/69/asm/module_69.s2
-rw-r--r--arm9/modules/82/asm/module_82.s30
-rw-r--r--arm9/modules/83/asm/module_83.s26448
-rw-r--r--arm9/undefined_syms.txt28
9 files changed, 26612 insertions, 96 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index 2e310f7d..bc65fa88 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -3173,7 +3173,17 @@ SECTIONS {
SDK_OVERLAY_MODULE_83_ID = 83;
SDK_OVERLAY.MODULE_83.ID = 83;
SDK_OVERLAY.MODULE_83.START = .;
- FILE_2F1600.o (.text) /* 0x2ED600 */
+ module_83.o (.text)
+ module_83.o (.rodata)
+ module_83.o (.init)
+ SDK_OVERLAY.MODULE_83.SINIT_START = .;
+ module_83.o (.ctor)
+ module_83.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_83.SINIT_END = .;
+ . = ALIGN(32);
+ module_83.o (.sdata)
+ module_83.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_83.END = .;
SDK_OVERLAY.MODULE_83.SIZE = SDK_OVERLAY.MODULE_83.END - SDK_OVERLAY.MODULE_83.START;
@@ -3183,7 +3193,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_83.BSS_START = .;
- FILE_2F1600.o (.bss)
+ module_83.o (.bss)
+ module_83.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_83.BSS_END = .;
SDK_OVERLAY.MODULE_83.BSS_SIZE = SDK_OVERLAY.MODULE_83.BSS_END - SDK_OVERLAY.MODULE_83.BSS_START;
@@ -4124,7 +4135,15 @@ SECTIONS {
WRITEW 82;
WRITEW 0;
- OVERLAY_TABLE(MODULE_83, 83)
+ WRITEW 83;
+ WRITEW ADDR(.MODULE_83);
+ WRITEW SDK_OVERLAY.MODULE_83.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_83.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_83.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_83.SINIT_END;
+ WRITEW 83;
+ WRITEW 0;
+
OVERLAY_TABLE(MODULE_84, 84)
OVERLAY_TABLE(MODULE_85, 85)
OVERLAY_TABLE(MODULE_86, 86)
diff --git a/arm9/asm/secure.s b/arm9/asm/secure.s
index 632f43bc..f97ccac8 100644
--- a/arm9/asm/secure.s
+++ b/arm9/asm/secure.s
@@ -3,7 +3,14 @@
.section .text
-.incbin "baserom.nds", 0x4000, 0x19E
+.incbin "baserom.nds", 0x4000, 0xC8
+ non_word_aligned_thumb_func_start SVC_GetCRC16
+SVC_GetCRC16: ; 0x020000C8
+ swi 14
+ bx lr
+ thumb_func_end SVC_GetCRC16
+
+.incbin "baserom.nds", 0x40CC, 0xD2
non_word_aligned_thumb_func_start SVC_Sqrt
SVC_Sqrt: ; 0x0200019E
diff --git a/arm9/asm/unk_02046030.s b/arm9/asm/unk_02046030.s
index 1eda4b12..fb010491 100644
--- a/arm9/asm/unk_02046030.s
+++ b/arm9/asm/unk_02046030.s
@@ -127956,21 +127956,21 @@ FUN_02083BAC: ; 0x02083BAC
add r0, r4, #0x0
mov r1, #0x1b
mov r2, #0x0
- bl FUN_0222F440
+ bl MOD70_0222F440
b _02083C14
_02083BF6:
bl FUN_02031190
ldr r1, _02083C20 ; =0x00002218
ldr r2, [r4, #0x50]
ldr r1, [r4, r1]
- bl FUN_0222F480
+ bl MOD70_0222F480
b _02083C14
_02083C06:
bl FUN_02031190
ldr r1, _02083C20 ; =0x00002218
ldr r2, [r4, #0x50]
ldr r1, [r4, r1]
- bl FUN_0222F480
+ bl MOD70_0222F480
_02083C14:
ldr r0, [r4, #0x50]
add r0, r0, #0x1
@@ -131937,8 +131937,8 @@ FUN_020859C0: ; 0x020859C0
lsl r2, r2, #0x12
bl FUN_0201681C
mov r0, #0x35
- bl FUN_02230F3C
- bl FUN_0222F7E0
+ bl MOD62_02230F3C
+ bl MOD62_0222F7E0
ldr r1, _02085BA0 ; =0x0000042C
add r0, r5, #0x0
mov r2, #0x35
@@ -131947,7 +131947,7 @@ FUN_020859C0: ; 0x020859C0
mov r1, #0x0
add r4, r0, #0x0
bl Call_FillMemWithValue
- bl FUN_0222E2BC
+ bl MOD62_0222E2BC
mov r1, #0x23
lsl r1, r1, #0x4
str r0, [r4, r1]
@@ -132083,8 +132083,8 @@ _02085A9A:
add r0, r4, #0x0
add r0, #0xe4
ldr r0, [r0, #0x0]
- bl FUN_02230F80
- bl FUN_0222E360
+ bl MOD62_02230F80
+ bl MOD62_0222E360
mov r0, #0x35
bl FUN_02006D98
mov r1, #0x69
@@ -132108,7 +132108,7 @@ _02085A9A:
ldr r0, [r0, #0x0]
ldr r1, [r1, #0x0]
add r2, r5, #0x0
- bl FUN_0222ED34
+ bl MOD62_0222ED34
add r0, r4, #0x0
add r1, r4, #0x0
add r0, #0xe4
@@ -132116,20 +132116,20 @@ _02085A9A:
ldr r0, [r0, #0x0]
ldr r1, [r1, #0x0]
add r2, r5, #0x0
- bl FUN_0222EDBC
+ bl MOD62_0222EDBC
add r0, r4, #0x0
add r0, #0xd4
- bl FUN_0222E7E8
+ bl MOD62_0222E7E8
bl FUN_0201CC08
mov r0, #0x4
bl FUN_0201CC24
add r0, r4, #0x0
- bl FUN_022300E4
+ bl MOD62_022300E4
ldr r0, _02085BAC ; =0x022310CD
add r1, r4, #0x0
bl FUN_02015F10
add r0, r4, #0x0
- bl FUN_0222DD1C
+ bl MOD62_0222DD1C
mov r1, #0x0
mov r0, #0x3b
add r2, r1, #0x0
@@ -132175,7 +132175,7 @@ _02085BE6:
lsl r0, r0, #0x2
ldr r0, [r4, r0]
bl FUN_02006ED4
- bl FUN_0222E3A0
+ bl MOD62_0222E3A0
b _02085C02
_02085BF6:
bl FUN_0200E308
@@ -132292,7 +132292,7 @@ FUN_02085C08: ; 0x02085C08
ldr r0, [r4, r0]
bl FUN_02016A18
add r0, r4, #0x0
- bl FUN_0222DAEC
+ bl MOD62_0222DAEC
mov r0, #0x73
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -132306,17 +132306,17 @@ FUN_02085C08: ; 0x02085C08
ldr r0, [r4, r0]
bl FUN_02014C28
add r0, r4, #0x0
- bl FUN_0222DD38
+ bl MOD62_0222DD38
add r0, r4, #0x0
add r0, #0xd4
- bl FUN_0222E874
+ bl MOD62_0222E874
bl FUN_0201C29C
mov r0, #0x23
lsl r0, r0, #0x4
ldr r0, [r4, r0]
bl FUN_020223BC
mov r0, #0x35
- bl FUN_02230F70
+ bl MOD62_02230F70
add r0, r5, #0x0
bl FUN_0200627C
bl FUN_0201CD04
diff --git a/arm9/global.inc b/arm9/global.inc
index ae314edd..2bbdde65 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -3011,38 +3011,38 @@
.extern MOD05_021F61DC
.extern MOD05_021F61E8
.extern MOD07_02211E60
-.extern FUN_02213B08
-.extern FUN_02213D80
-.extern FUN_02213DBC
-.extern FUN_02213E24
+.extern MOD79_02213B08
+.extern MOD79_02213D80
+.extern MOD79_02213DBC
+.extern MOD79_02213E24
.extern MOD11_0222D5C0
-.extern FUN_0222DAEC
-.extern FUN_0222DD1C
-.extern FUN_0222DD38
-.extern FUN_0222E2BC
-.extern FUN_0222E360
-.extern FUN_0222E3A0
-.extern FUN_0222E7E8
-.extern FUN_0222E874
-.extern FUN_0222EC60
-.extern FUN_0222ED34
-.extern FUN_0222EDBC
-.extern FUN_0222F440
-.extern FUN_0222F480
-.extern FUN_0222F7E0
+.extern MOD62_0222DAEC
+.extern MOD62_0222DD1C
+.extern MOD62_0222DD38
+.extern MOD62_0222E2BC
+.extern MOD62_0222E360
+.extern MOD62_0222E3A0
+.extern MOD62_0222E7E8
+.extern MOD62_0222E874
+.extern MOD69_0222EC60
+.extern MOD62_0222ED34
+.extern MOD62_0222EDBC
+.extern MOD70_0222F440
+.extern MOD70_0222F480
+.extern MOD62_0222F7E0
.extern MOD12_0222F990
.extern MOD11_022300D4
.extern MOD11_022300DC
-.extern FUN_022300E4
+.extern MOD62_022300E4
.extern MOD11_022300E8
.extern MOD11_022300F4
.extern MOD11_02230100
.extern MOD11_0223010C
.extern MOD11_02230118
.extern MOD11_02230124
-.extern FUN_02230F3C
-.extern FUN_02230F70
-.extern FUN_02230F80
+.extern MOD62_02230F3C
+.extern MOD62_02230F70
+.extern MOD62_02230F80
.extern MOD11_02231344
.extern MOD11_02231350
.extern MOD11_0223135C
@@ -5872,11 +5872,79 @@
.extern FUN_0202A754
.extern FUN_0202A784
.extern FUN_0202A838
-.extern FUN_022122E4
-.extern FUN_02212308
-.extern FUN_022123A8
-.extern FUN_02212474
-.extern FUN_02212480
+.extern MOD79_022122E4
+.extern MOD79_02212308
+.extern MOD79_022123A8
+.extern MOD79_02212474
+.extern MOD79_02212480
+.extern FUN_02015D88
+.extern FUN_02016444
+.extern FUN_02016454
+.extern FUN_0201AB1C
+.extern FUN_0201AB20
+.extern FUN_020224D8
+.extern FUN_0202251C
+.extern FUN_02023820
+.extern FUN_0202AC28
+.extern FUN_0202AC64
+.extern FUN_0202AC98
+.extern FUN_0202AD08
+.extern FUN_0202ADC8
+.extern FUN_0202ADF0
+.extern FUN_0202AE0C
+.extern FUN_0202AE4C
+.extern FUN_0202AE70
+.extern FUN_0202AE90
+.extern FUN_0202AEF4
+.extern FUN_0202AF24
+.extern FUN_0202AF50
+.extern FUN_0202AF60
+.extern FUN_0202BF7C
+.extern FUN_0202BF90
+.extern FUN_0202C028
+.extern FUN_0202C060
+.extern FUN_0202C094
+.extern FUN_0202C0B8
+.extern FUN_0202F10C
+.extern FUN_0202F124
+.extern FUN_02031C74
+.extern FUN_02031CA8
+.extern FUN_02032D44
+.extern FUN_02032D80
+.extern FUN_02032D9C
+.extern FUN_02033310
+.extern FUN_02033364
+.extern FUN_02068800
+.extern FUN_0206E6D8
+.extern FUN_02089F24
+.extern SetCustomAllocator
+.extern FUN_020910EC
+.extern FUN_0209521C
+.extern FUN_020952AC
+.extern CTRDG_CpuCopy16
+.extern CTRDG_CpuCopy32
+.extern CTRDG_CpuCopy8
+.extern CTRDG_Enable
+.extern CTRDG_GetAgbGameCode
+.extern CTRDG_GetAgbMakerCode
+.extern CTRDG_IdentifyAgbBackup
+.extern CTRDG_IsAgbCartridge
+.extern CTRDG_Read32
+.extern CTRDG_ReadAgbFlash
+.extern CTRDG_TerminateForPulledOut
+.extern CTRDG_WriteAndVerifyAgbFlashAsync
+.extern SVC_GetCRC16
+.extern FUN_021DE330
+.extern MOD04_021DDB40
+.extern MOD04_021DDF40
+.extern MOD04_021DE2D0
+.extern MOD04_021DE308
+.extern MOD04_021DE364
+.extern MOD04_021DE3AC
+.extern MOD04_021DE3D0
+.extern MOD04_021DE404
+.extern MOD04_021DE45C
+.extern RTC_ConvertDayToDate
.extern MOD04_021DD808
.extern MOD04_021DD984
.extern MOD04_021DD9DC
diff --git a/arm9/modules/04/asm/arm_04.s b/arm9/modules/04/asm/arm_04.s
index 132857e1..83993b5d 100644
--- a/arm9/modules/04/asm/arm_04.s
+++ b/arm9/modules/04/asm/arm_04.s
@@ -21204,7 +21204,7 @@ _021EB430:
mov r0, r5
mov r3, r4
mov r1, #0
- bl FUN_02213D80
+ bl MOD79_02213D80
movs r5, r0
bpl _021EB46C
bl MOD04_021EB25C
@@ -21280,7 +21280,7 @@ MOD04_021EB524: ; 0x021EB524
addne sp, sp, #4
movne r0, #0
ldmneia sp!, {pc}
- bl FUN_02213B08
+ bl MOD79_02213B08
mov r0, #1
add sp, sp, #4
ldmfd sp!, {pc}
@@ -21292,7 +21292,7 @@ MOD04_021EB524: ; 0x021EB524
addle sp, sp, #4
movle r0, #1
ldmleia sp!, {pc}
- bl FUN_02213DBC
+ bl MOD79_02213DBC
ldr r0, _021EB598 ; =0x02210E44
ldr r1, [r0]
subs r1, r1, #1
@@ -21310,7 +21310,7 @@ _021EB598: .word 0x02210E44
MOD04_021EB59C: ; 0x021EB59C
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_02213E24
+ bl MOD79_02213E24
ldr r1, _021EB5C4 ; =0x02210E44
mov r0, #1
ldr r2, [r1]
diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s
index f1e9fefd..6470d422 100644
--- a/arm9/modules/69/asm/module_69.s
+++ b/arm9/modules/69/asm/module_69.s
@@ -586,7 +586,7 @@ _0222DA74:
b _0222DAD4
_0222DA90:
mov r1, #0
- bl FUN_0222EC60
+ bl MOD69_0222EC60
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
diff --git a/arm9/modules/82/asm/module_82.s b/arm9/modules/82/asm/module_82.s
index dad045e3..98afbcaa 100644
--- a/arm9/modules/82/asm/module_82.s
+++ b/arm9/modules/82/asm/module_82.s
@@ -48,7 +48,7 @@ _0222D5F4: ; jump table
.short _0222D7A8 - _0222D5F4 - 2 ; case 9
.short _0222D7B4 - _0222D5F4 - 2 ; case 10
_0222D60A:
- bl FUN_022123A8
+ bl MOD79_022123A8
cmp r0, #1
beq _0222D618
cmp r0, #7
@@ -58,7 +58,7 @@ _0222D618:
ldr r0, _0222D7B8 ; =0x0222FB00
mov r1, #0xa
str r1, [r0]
- bl FUN_02212474
+ bl MOD79_02212474
bl MOD82_0222D99C
ldr r1, _0222D7B8 ; =0x0222FB00
str r0, [r1, #4]
@@ -68,7 +68,7 @@ _0222D630:
ldr r0, _0222D7B8 ; =0x0222FB00
mov r1, #0xa
str r1, [r0]
- bl FUN_02212480
+ bl MOD79_02212480
cmp r0, #0
ble _0222D646
ldr r0, _0222D7BC ; =0x0222FC00
@@ -84,7 +84,7 @@ _0222D64C:
bl MOD56_0221244C
pop {r3, pc}
_0222D654:
- bl FUN_022123A8
+ bl MOD79_022123A8
cmp r0, #1
beq _0222D662
cmp r0, #7
@@ -94,7 +94,7 @@ _0222D662:
ldr r0, _0222D7B8 ; =0x0222FB00
mov r1, #0xa
str r1, [r0]
- bl FUN_02212474
+ bl MOD79_02212474
bl MOD82_0222D99C
ldr r1, _0222D7B8 ; =0x0222FB00
str r0, [r1, #4]
@@ -104,7 +104,7 @@ _0222D67A:
ldr r0, _0222D7B8 ; =0x0222FB00
mov r1, #0xa
str r1, [r0]
- bl FUN_02212480
+ bl MOD79_02212480
ldr r1, _0222D7C0 ; =0x00000A38
cmp r0, r1
bne _0222D692
@@ -142,7 +142,7 @@ _0222D6BE:
bl MOD56_0221244C
pop {r3, pc}
_0222D6C4:
- bl FUN_022123A8
+ bl MOD79_022123A8
cmp r0, #1
beq _0222D6D2
cmp r0, #7
@@ -152,7 +152,7 @@ _0222D6D2:
ldr r0, _0222D7B8 ; =0x0222FB00
mov r1, #0xa
str r1, [r0]
- bl FUN_02212474
+ bl MOD79_02212474
bl MOD82_0222D99C
ldr r1, _0222D7B8 ; =0x0222FB00
str r0, [r1, #4]
@@ -204,7 +204,7 @@ _0222D730:
bl MOD56_0221244C
pop {r3, pc}
_0222D736:
- bl FUN_022123A8
+ bl MOD79_022123A8
cmp r0, #1
beq _0222D744
cmp r0, #7
@@ -214,7 +214,7 @@ _0222D744:
ldr r0, _0222D7B8 ; =0x0222FB00
mov r1, #0xa
str r1, [r0]
- bl FUN_02212474
+ bl MOD79_02212474
bl MOD82_0222D99C
ldr r1, _0222D7B8 ; =0x0222FB00
str r0, [r1, #4]
@@ -316,7 +316,7 @@ MOD82_0222D7F0: ; 0x0222D7F0
push {r3, r4, lr}
sub sp, #4
add r4, r0, #0
- bl FUN_022122E4
+ bl MOD79_022122E4
ldr r0, _0222D830 ; =0x0222FB00
sub r1, r4, #1
strb r1, [r0, #0x14]
@@ -359,7 +359,7 @@ MOD82_0222D840: ; 0x0222D840
add r6, r2, #0
add r4, r1, #0
str r6, [r0, #8]
- bl FUN_022122E4
+ bl MOD79_022122E4
ldr r0, _0222D890 ; =0x0222FB00
sub r1, r5, #1
strb r1, [r0, #0x14]
@@ -403,7 +403,7 @@ MOD82_0222D8A0: ; 0x0222D8A0
add r4, r1, #0
add r6, r2, #0
add r7, r3, #0
- bl FUN_022122E4
+ bl MOD79_022122E4
ldr r0, _0222D904 ; =0x0222FB14
add r1, r7, #0
mov r2, #0xe4
@@ -458,7 +458,7 @@ _0222D91C: .word 0x0222FB00
thumb_func_start MOD82_0222D920
MOD82_0222D920: ; 0x0222D920
push {r3, lr}
- bl FUN_022122E4
+ bl MOD79_022122E4
mov r0, #2
str r0, [sp]
ldr r0, _0222D954 ; =0x0222F9C4
@@ -500,7 +500,7 @@ MOD82_0222D964: ; 0x0222D964
add r2, r5, #0
ldr r1, [r1, #8]
add r3, r4, #0
- bl FUN_02212308
+ bl MOD79_02212308
cmp r0, #0
beq _0222D98A
cmp r0, #1
diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s
new file mode 100644
index 00000000..1ab49f6e
--- /dev/null
+++ b/arm9/modules/83/asm/module_83.s
@@ -0,0 +1,26448 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD83_0222D5C0
+MOD83_0222D5C0: ; 0x0222D5C0
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD83_0222D5C0
+
+ thumb_func_start MOD83_0222D5C4
+MOD83_0222D5C4: ; 0x0222D5C4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ add r5, r0, #0
+ mov r0, #5
+ lsl r0, r0, #6
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ bne _0222D63C
+ mov r1, #0x4f
+ mov r0, #0
+ add r3, r5, #0
+ lsl r1, r1, #2
+_0222D5E0:
+ ldr r2, [r3, r1]
+ cmp r2, #1
+ bne _0222D632
+ lsl r1, r0, #2
+ add r3, r5, r1
+ mov r1, #0x4f
+ add r6, r0, #0
+ mov r2, #0
+ lsl r1, r1, #2
+ str r2, [r3, r1]
+ mov r3, #0x1c
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ add r1, r1, #4
+ ldr r7, _0222D670 ; =0x0223A794
+ mul r6, r3
+ add r4, r7, r6
+ ldr r3, [r4, #0x10]
+ add r0, sp, #8
+ add r1, r5, r1
+ bl MOD83_022388E4
+ ldr r1, [r4, #8]
+ ldr r2, [r4, #0xc]
+ add r0, sp, #8
+ mov r3, #0x13
+ bl MOD83_02238934
+ ldr r0, [r4, #0x14]
+ add r1, sp, #8
+ str r0, [sp]
+ ldr r0, [r5]
+ ldr r2, [r7, r6]
+ ldr r3, [r4, #4]
+ bl MOD83_02238A38
+ add sp, #0x5c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_0222D632:
+ add r0, r0, #1
+ add r3, r3, #4
+ cmp r0, #1
+ blt _0222D5E0
+ b _0222D668
+_0222D63C:
+ ldr r0, _0222D674 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _0222D662
+ ldr r0, _0222D678 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #5
+ lsl r0, r0, #6
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #5
+ lsl r0, r0, #6
+ add r0, r5, r0
+ bl FUN_02019178
+_0222D662:
+ add sp, #0x5c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_0222D668:
+ mov r0, #0
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0222D670: .word 0x0223A794
+_0222D674: .word 0x021C48B8
+_0222D678: .word 0x000005DC
+ thumb_func_end MOD83_0222D5C4
+
+ thumb_func_start MOD83_0222D67C
+MOD83_0222D67C: ; 0x0222D67C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0
+ bl MOD83_02236E18
+ mov r4, #0
+ str r4, [r5, #0x24]
+ cmp r0, #0
+ bne _0222D6E6
+ bl MOD83_02236E9C
+ cmp r0, #4
+ bhi _0222D6BE
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222D6A2: ; jump table
+ .short _0222D6AC - _0222D6A2 - 2 ; case 0
+ .short _0222D6B0 - _0222D6A2 - 2 ; case 1
+ .short _0222D6B4 - _0222D6A2 - 2 ; case 2
+ .short _0222D6B8 - _0222D6A2 - 2 ; case 3
+ .short _0222D6BC - _0222D6A2 - 2 ; case 4
+_0222D6AC:
+ mov r4, #2
+ b _0222D6BE
+_0222D6B0:
+ mov r4, #1
+ b _0222D6BE
+_0222D6B4:
+ mov r4, #5
+ b _0222D6BE
+_0222D6B8:
+ mov r4, #4
+ b _0222D6BE
+_0222D6BC:
+ mov r4, #3
+_0222D6BE:
+ add r0, r4, #0
+ bl FUN_02016438
+ ldr r0, [r5, #8]
+ bl FUN_02024CA4
+ cmp r0, #0
+ beq _0222D6E6
+ bl MOD83_02236EA8
+ ldr r1, _0222D6E8 ; =0x020ECAC4
+ ldrb r1, [r1]
+ cmp r1, r0
+ bne _0222D6E6
+ bl MOD83_02236E9C
+ add r0, r0, #1
+ str r0, [r5, #0x24]
+ bl MOD83_02239490
+_0222D6E6:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222D6E8: .word 0x020ECAC4
+ thumb_func_end MOD83_0222D67C
+
+ thumb_func_start MOD83_0222D6EC
+MOD83_0222D6EC: ; 0x0222D6EC
+ push {r4, lr}
+ mov r1, #0x43
+ add r4, r0, #0
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ sub r0, #0xa
+ cmp r0, #4
+ bhi _0222D7DC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222D708: ; jump table
+ .short _0222D712 - _0222D708 - 2 ; case 0
+ .short _0222D718 - _0222D708 - 2 ; case 1
+ .short _0222D7DC - _0222D708 - 2 ; case 2
+ .short _0222D74C - _0222D708 - 2 ; case 3
+ .short _0222D7D0 - _0222D708 - 2 ; case 4
+_0222D712:
+ mov r0, #0xb
+ str r0, [r4, r1]
+ pop {r4, pc}
+_0222D718:
+ ldr r0, [r4, #4]
+ bl FUN_02032D44
+ mov r1, #0x78
+ add r0, r1, #0
+ add r0, #0x98
+ str r1, [r4, r0]
+ mov r1, #0xd
+ add r0, r1, #0
+ add r0, #0xff
+ str r1, [r4, r0]
+ mov r0, #0
+ str r0, [r4, #0x40]
+ ldr r0, [r4, #0x14]
+ bl FUN_0202AF50
+ cmp r0, #1
+ bne _0222D7DC
+ ldr r1, [r4, #0x40]
+ mov r0, #1
+ orr r1, r0
+ str r1, [r4, #0x40]
+ ldr r1, [r4, #0x44]
+ orr r0, r1
+ str r0, [r4, #0x44]
+ pop {r4, pc}
+_0222D74C:
+ add r1, #0xc
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _0222D7DC
+ bl FUN_02032D9C
+ ldr r1, [r4, #0x40]
+ bic r0, r1
+ beq _0222D7B2
+ mov r2, #0x45
+ lsl r2, r2, #2
+ ldr r3, [r4, r2]
+ cmp r3, #0xf
+ bne _0222D7B2
+ add r2, r2, #4
+ ldr r2, [r4, r2]
+ cmp r2, #0
+ bne _0222D7B2
+ cmp r1, r0
+ beq _0222D7B2
+ mov r2, #1
+ add r1, r0, #0
+ str r2, [r4, #0x48]
+ tst r1, r2
+ beq _0222D782
+ str r2, [r4, #0x34]
+ add r0, r2, #0
+_0222D782:
+ mov r1, #2
+ add r2, r0, #0
+ tst r2, r1
+ beq _0222D790
+ mov r0, #1
+ str r0, [r4, #0x2c]
+ add r0, r1, #0
+_0222D790:
+ mov r1, #4
+ add r2, r0, #0
+ tst r2, r1
+ beq _0222D79E
+ mov r0, #1
+ str r0, [r4, #0x30]
+ add r0, r1, #0
+_0222D79E:
+ mov r1, #3
+ tst r1, r0
+ beq _0222D7AC
+ mov r1, #0x4e
+ mov r2, #1
+ lsl r1, r1, #2
+ str r2, [r4, r1]
+_0222D7AC:
+ ldr r1, [r4, #0x40]
+ orr r0, r1
+ str r0, [r4, #0x40]
+_0222D7B2:
+ mov r0, #0x11
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222D7DC
+ bl FUN_02032D80
+ mov r0, #0x43
+ mov r1, #0xc
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ pop {r4, pc}
+_0222D7D0:
+ bl FUN_02032D80
+ mov r0, #0x43
+ mov r1, #0xc
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_0222D7DC:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0222D6EC
+
+ thumb_func_start MOD83_0222D7E0
+MOD83_0222D7E0: ; 0x0222D7E0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x60
+ mov r1, #0x45
+ add r4, r0, #0
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ sub r0, #0xf
+ cmp r0, #4
+ bls _0222D7F4
+ b _0222D994
+_0222D7F4:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222D800: ; jump table
+ .short _0222D80A - _0222D800 - 2 ; case 0
+ .short _0222D832 - _0222D800 - 2 ; case 1
+ .short _0222D85E - _0222D800 - 2 ; case 2
+ .short _0222D932 - _0222D800 - 2 ; case 3
+ .short _0222D974 - _0222D800 - 2 ; case 4
+_0222D80A:
+ add r0, r1, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222D818
+ add sp, #0x60
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0222D818:
+ add r0, r1, #4
+ ldr r0, [r4, r0]
+ sub r2, r0, #1
+ add r0, r1, #4
+ str r2, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222D82C
+ mov r0, #0x10
+ str r0, [r4, r1]
+_0222D82C:
+ add sp, #0x60
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0222D832:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x51
+ str r0, [sp, #4]
+ mov r1, #1
+ ldr r0, [r4]
+ add r2, r1, #0
+ mov r3, #2
+ bl FUN_0200CB00
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_02018744
+ ldr r1, _0222D99C ; =0x00006B5A
+ ldr r0, _0222D9A0 ; =0x05000042
+ strh r1, [r0]
+ mov r0, #0x45
+ mov r1, #0x11
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _0222D994
+_0222D85E:
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ add r1, #0x10
+ str r0, [sp, #4]
+ add r0, sp, #0xc
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #0xc
+ bl MOD83_022388E4
+ ldr r0, [r4, #0x44]
+ ldr r1, [r4, #0x40]
+ mvn r0, r0
+ and r0, r1
+ mov r1, #1
+ add r2, r0, #0
+ tst r2, r1
+ beq _0222D892
+ ldr r2, [r4, #0x38]
+ tst r1, r2
+ beq _0222D88E
+ ldr r5, _0222D9A4 ; =0x0223A7F0
+ b _0222D8B2
+_0222D88E:
+ ldr r5, _0222D9A8 ; =0x0223A804
+ b _0222D8B2
+_0222D892:
+ mov r1, #2
+ add r2, r0, #0
+ tst r2, r1
+ beq _0222D8A8
+ ldr r2, [r4, #0x38]
+ tst r1, r2
+ beq _0222D8A4
+ ldr r5, _0222D9AC ; =0x0223A818
+ b _0222D8B2
+_0222D8A4:
+ ldr r5, _0222D9B0 ; =0x0223A82C
+ b _0222D8B2
+_0222D8A8:
+ mov r1, #0x80
+ tst r1, r0
+ beq _0222D8B2
+ ldr r5, _0222D9B4 ; =0x0223A840
+ mov r0, #0
+_0222D8B2:
+ ldr r1, [r4, #0x44]
+ mov r3, #0x13
+ orr r0, r1
+ str r0, [r4, #0x44]
+ ldr r1, [r5, #8]
+ ldr r2, [r5, #0xc]
+ add r0, sp, #0xc
+ bl MOD83_02238934
+ mov r0, #1
+ str r0, [sp, #0x38]
+ ldr r0, [r5, #0x10]
+ add r1, sp, #0xc
+ str r0, [sp]
+ ldr r0, [r4]
+ ldr r2, [r5]
+ ldr r3, [r5, #4]
+ bl MOD83_02238A38
+ ldr r0, [sp, #0x1c]
+ bl FUN_0201AB14
+ add r6, r0, #0
+ ldr r0, [sp, #0x1c]
+ bl FUN_0201AB18
+ add r7, r0, #0
+ ldr r0, [sp, #0x1c]
+ bl FUN_0201AB0C
+ add r5, r0, #0
+ ldr r0, [sp, #0x1c]
+ bl FUN_0201AB10
+ str r5, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #1
+ add r2, r6, #0
+ add r3, r7, #0
+ bl FUN_020186B4
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r1, #0x1e
+ add r0, r1, #0
+ add r0, #0xfe
+ str r1, [r4, r0]
+ mov r0, #0x12
+ add r1, #0xf6
+ str r0, [r4, r1]
+ b _0222D994
+_0222D932:
+ add r0, r1, #0
+ add r0, #8
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0222D94A
+ add r0, r1, #0
+ add r0, #8
+ ldr r0, [r4, r0]
+ add r1, #8
+ sub r0, r0, #1
+ str r0, [r4, r1]
+ b _0222D994
+_0222D94A:
+ ldr r0, _0222D9B8 ; =0x021C48B8
+ ldr r2, [r0, #0x48]
+ mov r0, #3
+ tst r0, r2
+ beq _0222D994
+ add r1, #0x10
+ add r0, r4, r1
+ bl FUN_02019178
+ mov r0, #0x45
+ mov r1, #0x13
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r1, _0222D9B8 ; =0x021C48B8
+ add r0, #0xc
+ ldr r1, [r1, #0x48]
+ str r1, [r4, r0]
+ ldr r0, _0222D9BC ; =0x000005DC
+ bl FUN_020054C8
+ b _0222D994
+_0222D974:
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #0x45
+ mov r1, #0xf
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_0222D994:
+ mov r0, #1
+ add sp, #0x60
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222D99C: .word 0x00006B5A
+_0222D9A0: .word 0x05000042
+_0222D9A4: .word 0x0223A7F0
+_0222D9A8: .word 0x0223A804
+_0222D9AC: .word 0x0223A818
+_0222D9B0: .word 0x0223A82C
+_0222D9B4: .word 0x0223A840
+_0222D9B8: .word 0x021C48B8
+_0222D9BC: .word 0x000005DC
+ thumb_func_end MOD83_0222D7E0
+
+ thumb_func_start MOD83_0222D9C0
+MOD83_0222D9C0: ; 0x0222D9C0
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ sub r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, r1
+ beq _0222DA48
+ sub r1, r1, r0
+ asr r0, r1, #1
+ lsr r0, r0, #0x1e
+ add r0, r1, r0
+ asr r0, r0, #2
+ asr r2, r0, #0x1f
+ add r1, r0, #0
+ eor r1, r2
+ sub r2, r1, r2
+ mov r1, #3
+ lsl r1, r1, #0xe
+ cmp r2, r1
+ ble _0222D9F6
+ cmp r0, #0
+ ble _0222D9F4
+ add r0, r1, #0
+ b _0222D9F6
+_0222D9F4:
+ ldr r0, _0222DA4C ; =0xFFFF4000
+_0222D9F6:
+ mov r1, #0x41
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ add r0, r2, r0
+ str r0, [r4, r1]
+ add r0, r1, #4
+ ldr r0, [r4, r0]
+ ldr r2, [r4, r1]
+ sub r2, r0, r2
+ asr r3, r2, #0x1f
+ eor r2, r3
+ sub r3, r2, r3
+ add r2, r1, #0
+ add r2, #0xfc
+ cmp r3, r2
+ bge _0222DA18
+ str r0, [r4, r1]
+_0222DA18:
+ mov r3, #0x41
+ lsl r3, r3, #2
+ ldr r5, [r4, r3]
+ ldr r0, [r4]
+ asr r3, r5, #0xb
+ lsr r3, r3, #0x14
+ add r3, r5, r3
+ mov r1, #0
+ mov r2, #3
+ asr r3, r3, #0xc
+ bl FUN_0201AEE4
+ mov r3, #0x41
+ lsl r3, r3, #2
+ ldr r0, [r4]
+ ldr r4, [r4, r3]
+ mov r1, #2
+ asr r3, r4, #0xb
+ lsr r3, r3, #0x14
+ add r3, r4, r3
+ mov r2, #3
+ asr r3, r3, #0xc
+ bl FUN_0201AEE4
+_0222DA48:
+ pop {r3, r4, r5, pc}
+ nop
+_0222DA4C: .word 0xFFFF4000
+ thumb_func_end MOD83_0222D9C0
+
+ thumb_func_start MOD83_0222DA50
+MOD83_0222DA50: ; 0x0222DA50
+ push {r3, r4, r5, lr}
+ sub sp, #0x40
+ ldr r5, _0222DB4C ; =0x0223A380
+ add r4, r0, #0
+ add r3, sp, #0x18
+ mov r2, #5
+_0222DA5C:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222DA5C
+ ldr r3, _0222DB50 ; =0x0223A370
+ add r2, sp, #8
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, sp, #0x18
+ bl FUN_0201E66C
+ add r0, sp, #8
+ bl FUN_02016BBC
+ mov r1, #0
+ str r1, [sp]
+ mov r3, #0xf
+ ldr r0, [r4]
+ mov r2, #2
+ lsl r3, r3, #0xc
+ bl MOD83_022387D8
+ ldr r1, _0222DB54 ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ mov r3, #0x51
+ bic r2, r0
+ mov r0, #2
+ orr r0, r2
+ strh r0, [r1]
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ bl FUN_02017F18
+ mov r0, #2
+ lsl r0, r0, #0xe
+ str r0, [sp]
+ mov r1, #1
+ mov r3, #0x36
+ ldr r0, [r4]
+ add r2, r1, #0
+ lsl r3, r3, #0xa
+ bl MOD83_022387D8
+ ldr r1, _0222DB58 ; =0x0400000A
+ mov r0, #3
+ ldrh r2, [r1]
+ mov r3, #0x51
+ bic r2, r0
+ mov r0, #1
+ orr r2, r0
+ strh r2, [r1]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #2
+ mov r3, #0xe
+ ldr r0, [r4]
+ add r2, r1, #0
+ lsl r3, r3, #0xc
+ bl MOD83_022387D8
+ ldr r1, _0222DB5C ; =0x0400000C
+ mov r0, #3
+ ldrh r2, [r1]
+ mov r3, #0x51
+ bic r2, r0
+ strh r2, [r1]
+ mov r0, #2
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ bl FUN_0201BD5C
+ mov r0, #0
+ mov r1, #0x20
+ mov r2, #0x51
+ bl FUN_02002ED0
+ mov r0, #0
+ add r1, r0, #0
+ mov r2, #0x51
+ bl FUN_02002ED0
+ mov r2, #5
+ mov r1, #0
+ lsl r2, r2, #0x18
+ ldr r0, _0222DB60 ; =0x00006B5A
+ strh r1, [r2]
+ strh r0, [r2, #0x3e]
+ str r1, [sp]
+ mov r0, #0x51
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ mov r2, #1
+ mov r3, #2
+ bl FUN_0200CB00
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x51
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0xa
+ mov r3, #3
+ bl FUN_0200CB00
+ ldr r1, _0222DB60 ; =0x00006B5A
+ ldr r0, _0222DB64 ; =0x05000042
+ strh r1, [r0]
+ add sp, #0x40
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222DB4C: .word 0x0223A380
+_0222DB50: .word 0x0223A370
+_0222DB54: .word 0x04000008
+_0222DB58: .word 0x0400000A
+_0222DB5C: .word 0x0400000C
+_0222DB60: .word 0x00006B5A
+_0222DB64: .word 0x05000042
+ thumb_func_end MOD83_0222DA50
+
+ thumb_func_start MOD83_0222DB68
+MOD83_0222DB68: ; 0x0222DB68
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ bl MOD83_02238AFC
+ bl MOD83_02238B4C
+ mov r0, #0x25
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0x27
+ mov r2, #0x24
+ mov r3, #0x26
+ bl MOD83_02238BC4
+ mov r0, #0
+ mov r1, #0x15
+ str r0, [sp]
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0x80
+ mov r3, #8
+ bl MOD83_02238DBC
+ mov r1, #0x15
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #1
+ mov r1, #0x55
+ str r0, [sp]
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ mov r0, #0
+ mov r2, #0x80
+ mov r3, #0xb8
+ bl MOD83_02238DBC
+ mov r1, #0x55
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #8
+ pop {r4, pc}
+ thumb_func_end MOD83_0222DB68
+
+ thumb_func_start MOD83_0222DBD0
+MOD83_0222DBD0: ; 0x0222DBD0
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x51
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0x29
+ mov r2, #0
+ mov r3, #0x80
+ bl FUN_02006930
+ mov r0, #0xe
+ lsl r0, r0, #6
+ str r0, [sp]
+ mov r0, #2
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #0x51
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x74
+ mov r1, #0x28
+ mov r3, #2
+ bl FUN_0200687C
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0222DBD0
+
+ thumb_func_start MOD83_0222DC10
+MOD83_0222DC10: ; 0x0222DC10
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ mov r1, #2
+ add r6, r2, #0
+ add r7, r3, #0
+ bl FUN_0201886C
+ ldr r1, _0222DC5C ; =0x00004380
+ cmp r7, #2
+ bne _0222DC2A
+ add r1, r1, #2
+_0222DC2A:
+ lsl r2, r6, #5
+ add r3, r4, r2
+ lsl r2, r3, #1
+ add r3, r3, #1
+ strh r1, [r0, r2]
+ add r2, r1, #1
+ lsl r3, r3, #1
+ strh r2, [r0, r3]
+ add r3, r1, #0
+ add r2, r6, #1
+ lsl r2, r2, #5
+ add r4, r4, r2
+ add r3, #8
+ lsl r2, r4, #1
+ strh r3, [r0, r2]
+ add r2, r4, #1
+ add r1, #9
+ lsl r2, r2, #1
+ strh r1, [r0, r2]
+ ldr r0, [r5]
+ mov r1, #2
+ bl FUN_02017CD0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222DC5C: .word 0x00004380
+ thumb_func_end MOD83_0222DC10
+
+ thumb_func_start MOD83_0222DC60
+MOD83_0222DC60: ; 0x0222DC60
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ add r6, r2, #0
+ mov r1, #2
+ bl FUN_0201886C
+ lsl r1, r6, #5
+ add r3, r4, r1
+ ldr r1, _0222DC9C ; =0x00004384
+ lsl r2, r3, #1
+ strh r1, [r0, r2]
+ add r2, r3, #1
+ lsl r2, r2, #1
+ strh r1, [r0, r2]
+ add r2, r6, #1
+ lsl r2, r2, #5
+ add r3, r4, r2
+ lsl r2, r3, #1
+ strh r1, [r0, r2]
+ add r2, r3, #1
+ lsl r2, r2, #1
+ strh r1, [r0, r2]
+ ldr r0, [r5]
+ mov r1, #2
+ bl FUN_02017CD0
+ pop {r4, r5, r6, pc}
+ nop
+_0222DC9C: .word 0x00004384
+ thumb_func_end MOD83_0222DC60
+
+ thumb_func_start MOD83_0222DCA0
+MOD83_0222DCA0: ; 0x0222DCA0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r0, #0
+ add r0, r2, #0
+ add r7, r3, #0
+ ldr r2, [sp, #0x28]
+ mov r3, #0x51
+ bl FUN_0200A9C4
+ add r5, r0, #0
+ mov r0, #0
+ mov r1, #2
+ bl FUN_02002E4C
+ add r2, r0, #0
+ mov r0, #0
+ add r1, r5, #0
+ bl FUN_02002E14
+ add r4, r0, #0
+ add r0, r6, #0
+ bl FUN_0201AB0C
+ lsl r0, r0, #3
+ add r4, #0x20
+ sub r3, r0, r4
+ ldr r0, [sp, #0x2c]
+ mov r1, #0
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r7, [sp, #8]
+ add r0, r6, #0
+ add r2, r5, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_0222DCA0
+
+ thumb_func_start MOD83_0222DCF4
+MOD83_0222DCF4: ; 0x0222DCF4
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ cmp r2, #0x64
+ blt _0222DD04
+ mov r3, #3
+ mov r1, #0
+ b _0222DD12
+_0222DD04:
+ cmp r2, #0xa
+ blt _0222DD0E
+ mov r3, #3
+ mov r1, #1
+ b _0222DD12
+_0222DD0E:
+ mov r3, #2
+ mov r1, #1
+_0222DD12:
+ str r1, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r1, #0
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0222DCF4
+
+ thumb_func_start MOD83_0222DD24
+MOD83_0222DD24: ; 0x0222DD24
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ str r2, [sp, #0x18]
+ str r0, [sp, #0x10]
+ str r1, [sp, #0x14]
+ add r4, r3, #0
+ ldr r2, _0222DEB4 ; =0x000001EE
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #0x51
+ bl FUN_0200A86C
+ str r0, [sp, #0x24]
+ mov r0, #0x51
+ bl FUN_0200AA80
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x10]
+ ldr r0, [r0, #0xc]
+ bl FUN_020239CC
+ cmp r0, #1
+ bne _0222DD58
+ ldr r0, _0222DEB8 ; =0x0003040F
+ str r0, [sp, #0x1c]
+ b _0222DD5C
+_0222DD58:
+ ldr r0, _0222DEBC ; =0x0007080F
+ str r0, [sp, #0x1c]
+_0222DD5C:
+ ldr r0, [sp, #0x14]
+ ldr r1, _0222DEC0 ; =0x0223A85C
+ lsl r0, r0, #4
+ str r0, [sp, #0x20]
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x18]
+ str r0, [sp]
+ ldr r0, [sp, #0x10]
+ mov r2, #3
+ ldr r0, [r0]
+ add r3, r4, #0
+ bl MOD83_02238A38
+ ldr r4, _0222DEC4 ; =0x0223A784
+ mov r6, #1
+ mov r5, #0x10
+_0222DD7C:
+ cmp r6, #4
+ bne _0222DD88
+ ldr r0, [sp, #0x10]
+ ldr r0, [r0, #0x4c]
+ cmp r0, #0
+ beq _0222DDB8
+_0222DD88:
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #0x24]
+ ldr r2, [r4]
+ mov r3, #0x51
+ bl FUN_0200A9C4
+ add r7, r0, #0
+ str r5, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x1c]
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x18]
+ add r2, r7, #0
+ ldr r0, [r0, #0x10]
+ mov r3, #0x20
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+_0222DDB8:
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, #0x10
+ cmp r6, #5
+ blo _0222DD7C
+ ldr r2, [sp, #0x10]
+ ldr r0, [sp, #0x28]
+ ldr r2, [r2, #0xc]
+ mov r1, #0
+ bl FUN_0200ABC0
+ mov r0, #0x10
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x24]
+ ldr r0, [r0, #0x10]
+ ldr r2, [sp, #0x28]
+ ldr r3, [sp, #0x1c]
+ bl MOD83_0222DCA0
+ ldr r0, [sp, #0x10]
+ ldr r0, [r0, #0x10]
+ bl FUN_02029EBC
+ add r1, r0, #0
+ ldr r0, [sp, #0x28]
+ bl MOD83_0222DCF4
+ ldr r0, [sp, #0x10]
+ ldr r0, [r0, #0x10]
+ bl FUN_02029EC0
+ add r2, r0, #0
+ mov r3, #2
+ ldr r0, [sp, #0x28]
+ str r3, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ bl FUN_0200AD38
+ mov r0, #0x11
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x24]
+ ldr r0, [r0, #0x10]
+ ldr r2, [sp, #0x28]
+ ldr r3, [sp, #0x1c]
+ bl MOD83_0222DCA0
+ mov r1, #0
+ str r1, [sp]
+ mov r3, #1
+ ldr r2, [sp, #0x10]
+ str r3, [sp, #4]
+ ldr r0, [sp, #0x28]
+ ldr r2, [r2, #0x50]
+ bl FUN_0200AD38
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x30
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x24]
+ ldr r0, [r0, #0x10]
+ ldr r2, [sp, #0x28]
+ ldr r3, [sp, #0x1c]
+ bl MOD83_0222DCA0
+ ldr r0, [sp, #0x10]
+ ldr r0, [r0, #0x4c]
+ cmp r0, #0
+ beq _0222DE76
+ ldr r0, [sp, #0x10]
+ ldr r0, [r0, #8]
+ bl FUN_02024440
+ add r1, r0, #0
+ ldr r0, [sp, #0x28]
+ bl MOD83_0222DCF4
+ mov r0, #0x12
+ str r0, [sp]
+ mov r0, #0x40
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x24]
+ ldr r0, [r0, #0x10]
+ ldr r2, [sp, #0x28]
+ ldr r3, [sp, #0x1c]
+ bl MOD83_0222DCA0
+_0222DE76:
+ ldr r2, [sp, #0x18]
+ ldr r3, [sp, #0x18]
+ ldr r0, [sp, #0x18]
+ ldr r2, [r2, #0x38]
+ ldr r3, [r3, #0x3c]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [r0, #0x10]
+ mov r1, #0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_0200CCA4
+ ldr r1, _0222DEC8 ; =0x0223A854
+ ldr r0, [sp, #0x20]
+ ldr r2, [r1, r0]
+ ldr r0, [sp, #0x14]
+ lsl r1, r0, #2
+ ldr r0, [sp, #0x10]
+ add r0, r0, r1
+ add r0, #0xcc
+ str r2, [r0]
+ ldr r0, [sp, #0x28]
+ bl FUN_0200AB18
+ ldr r0, [sp, #0x24]
+ bl FUN_0200A8B8
+ mov r0, #1
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222DEB4: .word 0x000001EE
+_0222DEB8: .word 0x0003040F
+_0222DEBC: .word 0x0007080F
+_0222DEC0: .word 0x0223A85C
+_0222DEC4: .word 0x0223A784
+_0222DEC8: .word 0x0223A854
+ thumb_func_end MOD83_0222DD24
+
+ thumb_func_start MOD83_0222DECC
+MOD83_0222DECC: ; 0x0222DECC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r0, #0
+ add r5, r1, #0
+ add r1, r2, #0
+ ldr r2, [r4, #0x24]
+ add r6, r3, #0
+ cmp r2, #0
+ bne _0222DEE4
+ add sp, #4
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_0222DEE4:
+ sub r2, r2, #1
+ cmp r2, #4
+ bhi _0222DF12
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0222DEF6: ; jump table
+ .short _0222DF00 - _0222DEF6 - 2 ; case 0
+ .short _0222DF04 - _0222DEF6 - 2 ; case 1
+ .short _0222DF08 - _0222DEF6 - 2 ; case 2
+ .short _0222DF0C - _0222DEF6 - 2 ; case 3
+ .short _0222DF10 - _0222DEF6 - 2 ; case 4
+_0222DF00:
+ mov r0, #4
+ b _0222DF12
+_0222DF04:
+ mov r0, #5
+ b _0222DF12
+_0222DF08:
+ mov r0, #6
+ b _0222DF12
+_0222DF0C:
+ mov r0, #7
+ b _0222DF12
+_0222DF10:
+ mov r0, #8
+_0222DF12:
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r2, #3
+ add r3, r6, #0
+ bl MOD83_02238A38
+ add r0, r4, #0
+ mov r1, #0x1a
+ add r2, r6, #0
+ bl MOD83_0222DC60
+ ldr r0, _0222DF3C ; =0x0223A854
+ lsl r1, r5, #4
+ ldr r1, [r0, r1]
+ lsl r0, r5, #2
+ add r0, r4, r0
+ add r0, #0xcc
+ str r1, [r0]
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0222DF3C: .word 0x0223A854
+ thumb_func_end MOD83_0222DECC
+
+ thumb_func_start MOD83_0222DF40
+MOD83_0222DF40: ; 0x0222DF40
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5, #0x34]
+ add r4, r1, #0
+ add r7, r3, #0
+ str r2, [sp, #4]
+ cmp r0, #0
+ bne _0222DF88
+ ldr r0, [r5, #0x14]
+ bl FUN_0202AF50
+ cmp r0, #1
+ bne _0222DF60
+ mov r0, #1
+ str r0, [r5, #0x34]
+_0222DF60:
+ ldr r0, [r5, #4]
+ bl FUN_02023788
+ bl FUN_02023820
+ cmp r0, #1
+ bne _0222DF72
+ mov r0, #1
+ str r0, [r5, #0x34]
+_0222DF72:
+ mov r0, #0x51
+ bl MOD83_022385FC
+ bl MOD83_02238700
+ cmp r0, #0
+ beq _0222DF88
+ mov r0, #1
+ str r0, [r5, #0x34]
+ bl MOD83_02239450
+_0222DF88:
+ ldr r0, [r5, #0x34]
+ cmp r0, #1
+ bne _0222DF98
+ ldr r0, [r5, #0x4c]
+ cmp r0, #0
+ bne _0222DF98
+ mov r0, #0
+ str r0, [r5, #0x34]
+_0222DF98:
+ ldr r0, [r5, #0x34]
+ cmp r0, #1
+ bne _0222DFDC
+ ldr r0, _0222DFE4 ; =0x0223A85C
+ lsl r6, r4, #4
+ ldr r0, [r0, r6]
+ ldr r1, [sp, #4]
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r2, #3
+ add r3, r7, #0
+ bl MOD83_02238A38
+ add r0, r5, #0
+ mov r1, #0x1a
+ add r2, r7, #0
+ bl MOD83_0222DC60
+ ldr r0, _0222DFE8 ; =0x0223A854
+ ldr r1, [r0, r6]
+ lsl r0, r4, #2
+ add r0, r5, r0
+ add r0, #0xcc
+ str r1, [r0]
+ ldr r1, [r5, #0x38]
+ mov r0, #1
+ orr r0, r1
+ str r0, [r5, #0x38]
+ ldr r0, [r5, #0x14]
+ bl FUN_0202AF60
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0222DFDC:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222DFE4: .word 0x0223A85C
+_0222DFE8: .word 0x0223A854
+ thumb_func_end MOD83_0222DF40
+
+ thumb_func_start MOD83_0222DFEC
+MOD83_0222DFEC: ; 0x0222DFEC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x2c]
+ add r4, r1, #0
+ add r7, r3, #0
+ cmp r0, #1
+ bne _0222E03C
+ ldr r0, [r5, #0x4c]
+ cmp r0, #1
+ bne _0222E03C
+ ldr r0, _0222E040 ; =0x0223A85C
+ lsl r6, r4, #4
+ ldr r0, [r0, r6]
+ add r1, r2, #0
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r2, #3
+ bl MOD83_02238A38
+ add r0, r5, #0
+ mov r1, #0x1a
+ add r2, r7, #0
+ mov r3, #1
+ bl MOD83_0222DC10
+ lsl r3, r4, #2
+ add r1, r5, r3
+ mov r0, #1
+ add r1, #0xe8
+ str r0, [r1]
+ ldr r1, _0222E044 ; =0x0223A854
+ ldr r2, [r1, r6]
+ add r1, r5, r3
+ add r1, #0xcc
+ str r2, [r1]
+ ldr r2, [r5, #0x38]
+ mov r1, #2
+ orr r1, r2
+ str r1, [r5, #0x38]
+ pop {r3, r4, r5, r6, r7, pc}
+_0222E03C:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E040: .word 0x0223A85C
+_0222E044: .word 0x0223A854
+ thumb_func_end MOD83_0222DFEC
+
+ thumb_func_start MOD83_0222E048
+MOD83_0222E048: ; 0x0222E048
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ add r5, r1, #0
+ add r7, r3, #0
+ cmp r0, #1
+ bne _0222E08A
+ ldr r0, _0222E090 ; =0x0223A85C
+ lsl r6, r5, #4
+ ldr r0, [r0, r6]
+ add r1, r2, #0
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r2, #3
+ bl MOD83_02238A38
+ lsl r5, r5, #2
+ add r0, r4, r5
+ mov r3, #1
+ add r0, #0xe8
+ str r3, [r0]
+ add r0, r4, #0
+ mov r1, #0x1a
+ add r2, r7, #0
+ bl MOD83_0222DC10
+ ldr r0, _0222E094 ; =0x0223A854
+ ldr r1, [r0, r6]
+ add r0, r4, r5
+ add r0, #0xcc
+ str r1, [r0]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0222E08A:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E090: .word 0x0223A85C
+_0222E094: .word 0x0223A854
+ thumb_func_end MOD83_0222E048
+
+ thumb_func_start MOD83_0222E098
+MOD83_0222E098: ; 0x0222E098
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, _0222E0D4 ; =0x0223A85C
+ lsl r6, r4, #4
+ ldr r0, [r0, r6]
+ add r1, r2, #0
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r2, #3
+ add r7, r3, #0
+ bl MOD83_02238A38
+ lsl r4, r4, #2
+ add r0, r5, r4
+ mov r3, #2
+ add r0, #0xe8
+ str r3, [r0]
+ add r0, r5, #0
+ mov r1, #0x1a
+ add r2, r7, #0
+ bl MOD83_0222DC10
+ ldr r0, _0222E0D8 ; =0x0223A854
+ ldr r1, [r0, r6]
+ add r0, r5, r4
+ add r0, #0xcc
+ str r1, [r0]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E0D4: .word 0x0223A85C
+_0222E0D8: .word 0x0223A854
+ thumb_func_end MOD83_0222E098
+
+ thumb_func_start MOD83_0222E0DC
+MOD83_0222E0DC: ; 0x0222E0DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x70
+ add r7, r0, #0
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x13
+ str r0, [r7, #0x20]
+ ldr r0, [sp, #0xc]
+ ldr r4, _0222E1F0 ; =0x0223A854
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ str r0, [sp, #8]
+ add r0, #0x5c
+ str r0, [sp, #8]
+ add r0, r7, #0
+ str r0, [sp, #0x14]
+ add r0, #0x20
+ mov r5, #1
+ str r7, [sp, #0x18]
+ str r0, [sp, #0x14]
+_0222E104:
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r1, [sp, #8]
+ ldr r3, _0222E1F4 ; =0x000001EE
+ add r0, sp, #0x1c
+ mov r2, #1
+ bl MOD83_022388E4
+ ldr r2, [r4, #4]
+ ldr r3, [r7, #0x20]
+ add r0, sp, #0x1c
+ mov r1, #0x1a
+ bl MOD83_02238934
+ ldr r0, [r4, #0xc]
+ mov ip, r0
+ cmp r0, #0
+ beq _0222E1A4
+ ldr r0, [sp, #0x18]
+ add r0, #0xcc
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0222E188
+ ldr r0, [sp, #0x2c]
+ mov r1, #3
+ bl FUN_0201AB1C
+ lsl r1, r5, #0x18
+ ldr r0, [sp, #0x2c]
+ lsr r1, r1, #0x18
+ bl FUN_0201AB20
+ ldr r2, [sp, #0x54]
+ ldr r3, [sp, #0x58]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x2c]
+ mov r1, #0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_0200CCA4
+ ldr r0, [sp, #0x18]
+ add r0, #0xe8
+ ldr r3, [r0]
+ cmp r3, #0
+ beq _0222E172
+ add r0, r7, #0
+ mov r1, #0x1a
+ add r2, r5, #0
+ bl MOD83_0222DC10
+ b _0222E17C
+_0222E172:
+ add r0, r7, #0
+ mov r1, #0x1a
+ add r2, r5, #0
+ bl MOD83_0222DC60
+_0222E17C:
+ ldr r0, [r4, #4]
+ add r0, r0, #2
+ add r5, r5, r0
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _0222E1C2
+_0222E188:
+ ldr r1, [sp, #0x10]
+ add r0, r7, #0
+ add r2, sp, #0x1c
+ add r3, r5, #0
+ mov r6, ip
+ blx r6
+ cmp r0, #1
+ bne _0222E1C2
+ ldr r0, [r4, #4]
+ add r0, r0, #2
+ add r5, r5, r0
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _0222E1C2
+_0222E1A4:
+ ldr r0, [r4, #8]
+ add r1, sp, #0x1c
+ str r0, [sp]
+ ldr r0, [r7]
+ mov r2, #3
+ add r3, r5, #0
+ bl MOD83_02238A38
+ ldr r0, [sp, #0x18]
+ ldr r1, [r4]
+ add r0, #0xcc
+ str r1, [r0]
+ ldr r0, [r4, #4]
+ add r0, r0, #2
+ add r5, r5, r0
+_0222E1C2:
+ ldr r0, [sp, #0x14]
+ ldr r1, [r4, #4]
+ ldr r2, [r0]
+ mov r0, #0x1a
+ mul r0, r1
+ add r1, r2, r0
+ ldr r0, [sp, #0x14]
+ add r4, #0x10
+ str r1, [r0]
+ ldr r0, [sp, #8]
+ add r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #4
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, #7
+ blo _0222E104
+ ldr r0, [sp, #0xc]
+ add sp, #0x70
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E1F0: .word 0x0223A854
+_0222E1F4: .word 0x000001EE
+ thumb_func_end MOD83_0222E0DC
+
+ thumb_func_start MOD83_0222E1F8
+MOD83_0222E1F8: ; 0x0222E1F8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r6, r0, #0
+ add r5, r6, #0
+ str r1, [sp, #0xc]
+ mov r4, #0
+ add r5, #0x5c
+_0222E206:
+ add r0, r5, #0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _0222E294
+ ldr r0, [sp, #0xc]
+ cmp r4, r0
+ bne _0222E256
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #0xa
+ mov r3, #3
+ bl FUN_0200CCA4
+ add r0, r5, #0
+ bl FUN_0201AB14
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ bl FUN_0201AB18
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ bl FUN_0201AB0C
+ add r7, r0, #0
+ add r0, r5, #0
+ bl FUN_0201AB10
+ str r7, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r6]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x14]
+ mov r1, #0
+ bl FUN_020186B4
+ b _0222E294
+_0222E256:
+ mov r1, #1
+ add r0, r5, #0
+ add r2, r1, #0
+ mov r3, #2
+ bl FUN_0200CCA4
+ add r0, r5, #0
+ bl FUN_0201AB14
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ bl FUN_0201AB18
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ bl FUN_0201AB0C
+ add r7, r0, #0
+ add r0, r5, #0
+ bl FUN_0201AB10
+ str r7, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r6]
+ ldr r2, [sp, #0x18]
+ ldr r3, [sp, #0x1c]
+ mov r1, #0
+ bl FUN_020186B4
+_0222E294:
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #7
+ blo _0222E206
+ ldr r0, [r6]
+ mov r1, #0
+ bl FUN_02017CD0
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_0222E1F8
+
+ thumb_func_start MOD83_0222E2A8
+MOD83_0222E2A8: ; 0x0222E2A8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r2, r1, #0
+ ldr r1, [r5, #0x54]
+ mov r7, #6
+ add r4, r1, #0
+ mov r0, #0
+ sub r6, r7, #7
+_0222E2B8:
+ add r4, r4, r2
+ cmp r4, r6
+ bne _0222E2C0
+ add r4, r0, #0
+_0222E2C0:
+ cmp r4, #7
+ bne _0222E2C6
+ add r4, r7, #0
+_0222E2C6:
+ cmp r4, r1
+ beq _0222E2DC
+ lsl r3, r4, #2
+ add r3, r5, r3
+ add r3, #0xcc
+ ldr r3, [r3]
+ cmp r3, #0
+ beq _0222E2B8
+ ldr r0, _0222E2E0 ; =0x000005DC
+ bl FUN_020054C8
+_0222E2DC:
+ str r4, [r5, #0x54]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E2E0: .word 0x000005DC
+ thumb_func_end MOD83_0222E2A8
+
+ thumb_func_start MOD83_0222E2E4
+MOD83_0222E2E4: ; 0x0222E2E4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x54]
+ add r1, r5, #0
+ add r1, #0x5c
+ lsl r0, r0, #4
+ add r0, r1, r0
+ bl FUN_0201AB18
+ sub r0, r0, #1
+ lsl r4, r0, #3
+ ldr r0, [r5, #0x54]
+ add r1, r5, #0
+ add r1, #0x5c
+ lsl r0, r0, #4
+ add r0, r1, r0
+ bl FUN_0201AB10
+ add r0, r0, #2
+ lsl r3, r0, #3
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r2, [r5, r0]
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r2, r1, #0xc
+ cmp r2, r4
+ ble _0222E322
+ lsl r1, r4, #0xc
+ str r1, [r5, r0]
+_0222E322:
+ add r2, #0xc0
+ cmp r2, r4
+ bgt _0222E334
+ add r0, r4, r3
+ sub r0, #0xc0
+ lsl r1, r0, #0xc
+ mov r0, #0x42
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_0222E334:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0222E2E4
+
+ thumb_func_start MOD83_0222E338
+MOD83_0222E338: ; 0x0222E338
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r1, #0x42
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ ldr r1, [r0, r1]
+ ldr r5, [sp]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r7, r0, #0xc
+ add r0, r7, #0
+ str r0, [sp, #0xc]
+ add r0, #0xc0
+ ldr r6, [sp, #4]
+ add r5, #0x5c
+ str r0, [sp, #0xc]
+_0222E362:
+ add r0, r5, #0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _0222E38E
+ add r0, r5, #0
+ bl FUN_0201AB18
+ sub r0, r0, #1
+ lsl r4, r0, #3
+ add r0, r5, #0
+ bl FUN_0201AB10
+ cmp r7, r4
+ ble _0222E384
+ mov r0, #1
+ str r0, [sp, #8]
+_0222E384:
+ ldr r0, [sp, #0xc]
+ cmp r0, r4
+ bgt _0222E38E
+ mov r0, #1
+ str r0, [sp, #4]
+_0222E38E:
+ add r6, r6, #1
+ add r5, #0x10
+ cmp r6, #7
+ blo _0222E362
+ mov r1, #0x15
+ ldr r0, [sp]
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ ldr r1, [sp, #8]
+ bl FUN_020200A0
+ mov r1, #0x55
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ ldr r1, [sp, #4]
+ bl FUN_020200A0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0222E338
+
+ thumb_func_start MOD83_0222E3B8
+MOD83_0222E3B8: ; 0x0222E3B8
+ push {r3, r4, r5, r6, r7, lr}
+ bl FUN_02006278
+ mov r1, #0x15
+ add r7, r0, #0
+ lsl r1, r1, #4
+ ldr r0, [r7, r1]
+ cmp r0, #0
+ bne _0222E3D2
+ add r1, r1, #4
+ ldr r1, [r7, r1]
+ cmp r1, #0
+ beq _0222E3E4
+_0222E3D2:
+ bl FUN_0201FFC8
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_0201FFC8
+ bl MOD83_02238E48
+_0222E3E4:
+ add r5, r7, #0
+ mov r6, #0
+ add r4, r7, #0
+ add r5, #0x5c
+_0222E3EC:
+ ldr r0, [r4, #0x5c]
+ cmp r0, #0
+ beq _0222E3FE
+ add r0, r5, #0
+ bl FUN_02019570
+ add r0, r5, #0
+ bl FUN_02019178
+_0222E3FE:
+ add r6, r6, #1
+ add r4, #0x10
+ add r5, #0x10
+ cmp r6, #7
+ blo _0222E3EC
+ ldr r0, [r7]
+ mov r1, #0
+ bl FUN_020178A0
+ ldr r0, [r7]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r7]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r7]
+ bl FUN_02016A18
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_0222E3B8
+
+ thumb_func_start MOD83_0222E430
+MOD83_0222E430: ; 0x0222E430
+ mov r1, #0x56
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ lsl r3, r2, #1
+ ldr r2, _0222E45C ; =0x0223A7B0
+ ldrh r2, [r2, r3]
+ cmp r2, #0
+ bne _0222E444
+ mov r2, #0
+ str r2, [r0, r1]
+_0222E444:
+ mov r1, #0x56
+ lsl r1, r1, #2
+ ldr r3, [r0, r1]
+ add r2, r3, #1
+ str r2, [r0, r1]
+ ldr r0, _0222E45C ; =0x0223A7B0
+ lsl r1, r3, #1
+ ldrh r1, [r0, r1]
+ ldr r0, _0222E460 ; =0x0500006C
+ strh r1, [r0]
+ bx lr
+ nop
+_0222E45C: .word 0x0223A7B0
+_0222E460: .word 0x0500006C
+ thumb_func_end MOD83_0222E430
+
+ thumb_func_start MOD83_0222E464
+MOD83_0222E464: ; 0x0222E464
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ add r0, r4, #0
+ bl FUN_0201AB60
+ ldr r3, _0222E484 ; =0x027E0000
+ ldr r1, _0222E488 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ .align 2, 0
+_0222E484: .word 0x027E0000
+_0222E488: .word 0x00003FF8
+ thumb_func_end MOD83_0222E464
+
+ thumb_func_start MOD83_0222E48C
+MOD83_0222E48C: ; 0x0222E48C
+ push {r3, r4, r5, lr}
+ mov r2, #1
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #0x51
+ lsl r2, r2, #0x12
+ bl FUN_0201681C
+ mov r1, #0x57
+ add r0, r5, #0
+ lsl r1, r1, #2
+ mov r2, #0x51
+ bl FUN_02006268
+ mov r2, #0x57
+ mov r1, #0
+ lsl r2, r2, #2
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x51
+ bl FUN_02016B94
+ str r0, [r4]
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ add r0, r5, #0
+ bl FUN_0200628C
+ ldr r0, [r0, #8]
+ str r0, [r4, #4]
+ bl FUN_0202251C
+ str r0, [r4, #0x14]
+ mov r0, #0x41
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, [r4, #4]
+ bl FUN_020238F4
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #4]
+ bl FUN_02024DA0
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ bl FUN_02023918
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #8]
+ bl FUN_02024D64
+ str r0, [r4, #0x4c]
+ ldr r0, [r4, #0xc]
+ bl FUN_020239F4
+ str r0, [r4, #0x50]
+ mov r0, #0x45
+ mov r1, #0xf
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #0x51
+ bl MOD83_02238770
+ ldr r0, [r4, #4]
+ bl FUN_02022804
+ cmp r0, #0
+ bne _0222E530
+ mov r0, #0x4d
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_0222E530:
+ mov r0, #0
+ bl FUN_0200516C
+ mov r0, #0
+ bl FUN_0200415C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD83_0222E48C
+
+ thumb_func_start MOD83_0222E540
+MOD83_0222E540: ; 0x0222E540
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ bl CTRDG_IsExisting
+ add r0, r4, #0
+ bl MOD83_0222D7E0
+ cmp r0, #1
+ bne _0222E570
+ add r0, r4, #0
+ bl MOD83_0222D6EC
+ add r0, r4, #0
+ bl MOD83_0222D9C0
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0222E570:
+ add r0, r4, #0
+ bl MOD83_0222E430
+ ldr r0, [r5]
+ cmp r0, #9
+ bhi _0222E5D8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222E588: ; jump table
+ .short _0222E59C - _0222E588 - 2 ; case 0
+ .short _0222E5A8 - _0222E588 - 2 ; case 1
+ .short _0222E5CE - _0222E588 - 2 ; case 2
+ .short _0222E5E8 - _0222E588 - 2 ; case 3
+ .short _0222E616 - _0222E588 - 2 ; case 4
+ .short _0222E656 - _0222E588 - 2 ; case 5
+ .short _0222E74A - _0222E588 - 2 ; case 6
+ .short _0222E772 - _0222E588 - 2 ; case 7
+ .short _0222E77C - _0222E588 - 2 ; case 8
+ .short _0222E784 - _0222E588 - 2 ; case 9
+_0222E59C:
+ add r0, r4, #0
+ bl MOD83_0222DA50
+ mov r0, #1
+ str r0, [r5]
+ b _0222E788
+_0222E5A8:
+ add r0, r4, #0
+ bl MOD83_0222D5C0
+ cmp r0, #0
+ bne _0222E5B8
+ mov r0, #3
+ str r0, [r5]
+ b _0222E788
+_0222E5B8:
+ mov r0, #1
+ mov r1, #2
+ add r2, r5, #0
+ mov r3, #8
+ bl MOD83_0223886C
+ mov r0, #5
+ ldr r1, _0222E79C ; =0x00007D8C
+ lsl r0, r0, #0x18
+ strh r1, [r0]
+ b _0222E788
+_0222E5CE:
+ add r0, r4, #0
+ bl MOD83_0222D5C4
+ cmp r0, #0
+ beq _0222E5DA
+_0222E5D8:
+ b _0222E788
+_0222E5DA:
+ mov r0, #0
+ mov r1, #3
+ add r2, r5, #0
+ mov r3, #8
+ bl MOD83_0223886C
+ b _0222E788
+_0222E5E8:
+ mov r0, #0x43
+ mov r1, #0xc
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, #0x28
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0222E60A
+ mov r0, #2
+ str r0, [r4, #0x58]
+ mov r0, #0
+ mov r1, #7
+ add r2, r5, #0
+ mov r3, #8
+ bl MOD83_0223886C
+ b _0222E788
+_0222E60A:
+ add r0, r4, #0
+ bl MOD83_0222D67C
+ mov r0, #4
+ str r0, [r5]
+ b _0222E788
+_0222E616:
+ add r0, r4, #0
+ bl MOD83_0222DB68
+ add r0, r4, #0
+ bl MOD83_0222DBD0
+ ldr r0, _0222E7A0 ; =MOD83_0222E464
+ ldr r1, [r4]
+ bl FUN_02015F10
+ add r0, r4, #0
+ bl MOD83_0222E0DC
+ ldr r1, [r4, #0x54]
+ add r0, r4, #0
+ bl MOD83_0222E1F8
+ mov r0, #1
+ mov r1, #5
+ add r2, r5, #0
+ mov r3, #8
+ bl MOD83_0223886C
+ mov r0, #5
+ ldr r1, _0222E79C ; =0x00007D8C
+ lsl r0, r0, #0x18
+ strh r1, [r0]
+ mov r0, #0x43
+ mov r1, #0xa
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _0222E788
+_0222E656:
+ ldr r0, _0222E7A4 ; =0x021C48B8
+ mov r1, #3
+ ldr r0, [r0, #0x48]
+ tst r1, r0
+ beq _0222E6E8
+ mov r1, #1
+ tst r0, r1
+ ldr r0, _0222E7A8 ; =0x000005DC
+ beq _0222E69A
+ bl FUN_020054C8
+ ldr r0, [r4, #0x54]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ add r0, #0xcc
+ ldr r0, [r0]
+ str r0, [r4, #0x58]
+ cmp r0, #5
+ bne _0222E6A8
+ bl CTRDG_IsPulledOut
+ cmp r0, #1
+ bne _0222E6A8
+ mov r0, #0x43
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0xc
+ beq _0222E692
+ bl FUN_02032D80
+_0222E692:
+ mov r0, #0x51
+ bl FUN_02089F24
+ b _0222E6A8
+_0222E69A:
+ bl FUN_020054C8
+ mov r0, #0
+ str r0, [r4, #0x58]
+ mov r0, #1
+ bl MOD83_02238860
+_0222E6A8:
+ ldr r0, [r4, #0x58]
+ cmp r0, #2
+ bne _0222E6C2
+ ldr r1, [r4, #0x40]
+ mov r0, #0x80
+ orr r1, r0
+ str r1, [r4, #0x40]
+ mov r1, #1
+ add r0, #0x98
+ str r1, [r4, r0]
+ mov r0, #6
+ str r0, [r5]
+ b _0222E6D8
+_0222E6C2:
+ cmp r0, #6
+ bne _0222E6CC
+ mov r0, #1
+ bl MOD83_02238860
+_0222E6CC:
+ mov r0, #0
+ mov r1, #7
+ add r2, r5, #0
+ mov r3, #8
+ bl MOD83_0223886C
+_0222E6D8:
+ mov r0, #0x43
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0xd
+ bne _0222E788
+ mov r1, #0xe
+ str r1, [r4, r0]
+ b _0222E788
+_0222E6E8:
+ ldr r1, [r4, #0x48]
+ cmp r1, #1
+ bne _0222E6FA
+ add r0, r4, #0
+ bl MOD83_0222E0DC
+ mov r0, #0
+ str r0, [r4, #0x48]
+ b _0222E788
+_0222E6FA:
+ mov r1, #0x40
+ tst r0, r1
+ beq _0222E708
+ add r0, r4, #0
+ sub r1, #0x41
+ bl MOD83_0222E2A8
+_0222E708:
+ ldr r0, _0222E7A4 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x80
+ tst r0, r1
+ beq _0222E71A
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222E2A8
+_0222E71A:
+ ldr r1, [r4, #0x54]
+ add r0, r4, #0
+ bl MOD83_0222E1F8
+ add r0, r4, #0
+ bl MOD83_0222E2E4
+ add r0, r4, #0
+ bl MOD83_0222E338
+ ldr r0, [r5]
+ cmp r0, #5
+ bne _0222E788
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #1
+ bne _0222E788
+ mov r1, #0
+ str r1, [r4, r0]
+ mov r1, #1
+ sub r0, #0x20
+ str r1, [r4, r0]
+ b _0222E788
+_0222E74A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0xf
+ bne _0222E788
+ add r0, #0xc
+ ldr r1, [r4, r0]
+ mov r0, #2
+ tst r0, r1
+ beq _0222E764
+ mov r0, #5
+ str r0, [r5]
+ b _0222E788
+_0222E764:
+ mov r0, #0
+ mov r1, #7
+ add r2, r5, #0
+ mov r3, #8
+ bl MOD83_0223886C
+ b _0222E788
+_0222E772:
+ add r0, r6, #0
+ bl MOD83_0222E3B8
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0222E77C:
+ add r0, r5, #0
+ bl MOD83_022388CC
+ b _0222E788
+_0222E784:
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0222E788:
+ add r0, r4, #0
+ bl MOD83_0222D6EC
+ add r0, r4, #0
+ bl MOD83_0222D9C0
+ bl MOD83_02238D58
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222E79C: .word 0x00007D8C
+_0222E7A0: .word MOD83_0222E464
+_0222E7A4: .word 0x021C48B8
+_0222E7A8: .word 0x000005DC
+ thumb_func_end MOD83_0222E540
+
+ thumb_func_start MOD83_0222E7AC
+MOD83_0222E7AC: ; 0x0222E7AC
+ push {r3, lr}
+ ldr r0, [r0, #0x58]
+ cmp r0, #7
+ bhi _0222E822
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222E7C0: ; jump table
+ .short _0222E81A - _0222E7C0 - 2 ; case 0
+ .short _0222E7D0 - _0222E7C0 - 2 ; case 1
+ .short _0222E7DA - _0222E7C0 - 2 ; case 2
+ .short _0222E7E4 - _0222E7C0 - 2 ; case 3
+ .short _0222E7F8 - _0222E7C0 - 2 ; case 4
+ .short _0222E7EE - _0222E7C0 - 2 ; case 5
+ .short _0222E802 - _0222E7C0 - 2 ; case 6
+ .short _0222E80A - _0222E7C0 - 2 ; case 7
+_0222E7D0:
+ ldr r0, _0222E824 ; =0x00000034
+ ldr r1, _0222E828 ; =0x021D76C8
+ bl FUN_02000E7C
+ pop {r3, pc}
+_0222E7DA:
+ ldr r0, _0222E824 ; =0x00000034
+ ldr r1, _0222E82C ; =0x021D76E8
+ bl FUN_02000E7C
+ pop {r3, pc}
+_0222E7E4:
+ ldr r0, _0222E830 ; =0x00000053
+ ldr r1, _0222E834 ; =0x0223A434
+ bl FUN_02000E7C
+ pop {r3, pc}
+_0222E7EE:
+ ldr r0, _0222E830 ; =0x00000053
+ ldr r1, _0222E838 ; =0x0223A4FC
+ bl FUN_02000E7C
+ pop {r3, pc}
+_0222E7F8:
+ ldr r0, _0222E830 ; =0x00000053
+ ldr r1, _0222E83C ; =0x0223A3A8
+ bl FUN_02000E7C
+ pop {r3, pc}
+_0222E802:
+ ldr r0, _0222E840 ; =0x0223A8C4
+ bl FUN_020224D8
+ pop {r3, pc}
+_0222E80A:
+ bl FUN_0200541C
+ mov r0, #0
+ ldr r1, _0222E844 ; =0x020FD6D4
+ mvn r0, r0
+ bl FUN_02000E7C
+ pop {r3, pc}
+_0222E81A:
+ ldr r0, _0222E848 ; =0x0000003F
+ ldr r1, _0222E84C ; =0x021DBAB8
+ bl FUN_02000E7C
+_0222E822:
+ pop {r3, pc}
+ .align 2, 0
+_0222E824: .word 0x00000034
+_0222E828: .word 0x021D76C8
+_0222E82C: .word 0x021D76E8
+_0222E830: .word 0x00000053
+_0222E834: .word 0x0223A434
+_0222E838: .word 0x0223A4FC
+_0222E83C: .word 0x0223A3A8
+_0222E840: .word 0x0223A8C4
+_0222E844: .word 0x020FD6D4
+_0222E848: .word 0x0000003F
+_0222E84C: .word 0x021DBAB8
+ thumb_func_end MOD83_0222E7AC
+
+ thumb_func_start MOD83_0222E850
+MOD83_0222E850: ; 0x0222E850
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02006278
+ bl MOD83_0222E7AC
+ add r0, r4, #0
+ bl FUN_0200627C
+ mov r0, #0x51
+ bl FUN_020168D0
+ mov r0, #0
+ bl MOD83_02239450
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0222E850
+
+ thumb_func_start MOD83_0222E874
+MOD83_0222E874: ; 0x0222E874
+ push {r3, r4}
+ ldr r4, _0222E89C ; =0x0223A8E0
+ ldr r1, _0222E8A0 ; =0x00000123
+ mov r3, #0
+_0222E87C:
+ ldrh r2, [r4, #2]
+ cmp r0, r2
+ bne _0222E88C
+ ldr r0, _0222E89C ; =0x0223A8E0
+ lsl r1, r3, #2
+ ldrh r0, [r0, r1]
+ pop {r3, r4}
+ bx lr
+_0222E88C:
+ add r3, r3, #1
+ add r4, r4, #4
+ cmp r3, r1
+ blo _0222E87C
+ mov r0, #0x3f
+ pop {r3, r4}
+ bx lr
+ nop
+_0222E89C: .word 0x0223A8E0
+_0222E8A0: .word 0x00000123
+ thumb_func_end MOD83_0222E874
+
+ thumb_func_start MOD83_0222E8A4
+MOD83_0222E8A4: ; 0x0222E8A4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r1, _0222E90C ; =0x00002710
+ add r0, r4, #0
+ bl _s32_div_f
+ add r0, #0x30
+ strh r0, [r5]
+ ldr r1, _0222E90C ; =0x00002710
+ add r0, r4, #0
+ bl _s32_div_f
+ add r4, r1, #0
+ mov r1, #0xfa
+ add r0, r4, #0
+ lsl r1, r1, #2
+ bl _s32_div_f
+ add r0, #0x30
+ mov r1, #0xfa
+ strh r0, [r5, #2]
+ add r0, r4, #0
+ lsl r1, r1, #2
+ bl _s32_div_f
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #0x64
+ bl _s32_div_f
+ add r0, #0x30
+ strh r0, [r5, #4]
+ add r0, r4, #0
+ mov r1, #0x64
+ bl _s32_div_f
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #0xa
+ bl _s32_div_f
+ add r0, #0x30
+ strh r0, [r5, #6]
+ add r0, r4, #0
+ mov r1, #0xa
+ bl _s32_div_f
+ add r4, r1, #0
+ add r4, #0x30
+ strh r4, [r5, #8]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222E90C: .word 0x00002710
+ thumb_func_end MOD83_0222E8A4
+
+ thumb_func_start MOD83_0222E910
+MOD83_0222E910: ; 0x0222E910
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r0, [r7, #0x10]
+ bl FUN_0202398C
+ ldr r5, _0222E948 ; =0x0223B860
+ add r4, r0, #0
+ mov r6, #0
+_0222E920:
+ ldrh r0, [r4]
+ bl MOD83_0222E874
+ strh r0, [r5]
+ add r6, r6, #1
+ add r4, r4, #2
+ add r5, r5, #2
+ cmp r6, #8
+ blt _0222E920
+ ldr r0, [r7, #0x10]
+ bl FUN_020239C0
+ add r1, r0, #0
+ ldr r0, _0222E94C ; =0x0223B870
+ bl MOD83_0222E8A4
+ ldr r0, _0222E950 ; =0x0223B860
+ mov r1, #0
+ strh r1, [r0, #0x1a]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E948: .word 0x0223B860
+_0222E94C: .word 0x0223B870
+_0222E950: .word 0x0223B860
+ thumb_func_end MOD83_0222E910
+
+ thumb_func_start MOD83_0222E954
+MOD83_0222E954: ; 0x0222E954
+ push {r3, r4, r5, lr}
+ sub sp, #0x48
+ ldr r5, _0222EA80 ; =0x0223A3C8
+ add r4, r0, #0
+ add r3, sp, #0x20
+ mov r2, #5
+_0222E960:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222E960
+ ldr r3, _0222EA84 ; =0x0223A3B8
+ add r2, sp, #0x10
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, sp, #0x20
+ bl FUN_0201E66C
+ add r0, sp, #0x10
+ bl FUN_02016BBC
+ mov r1, #0
+ str r1, [sp]
+ mov r3, #0xf
+ ldr r0, [r4, #4]
+ mov r2, #1
+ lsl r3, r3, #0xc
+ bl MOD83_022387D8
+ mov r0, #1
+ lsl r0, r0, #0xe
+ str r0, [sp]
+ mov r1, #1
+ mov r3, #0x3e
+ ldr r0, [r4, #4]
+ add r2, r1, #0
+ lsl r3, r3, #0xa
+ bl MOD83_022387D8
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #0x1e
+ ldr r0, [r4, #4]
+ mov r1, #4
+ mov r2, #1
+ lsl r3, r3, #0xa
+ bl MOD83_022387D8
+ mov r0, #1
+ lsl r0, r0, #0xe
+ str r0, [sp]
+ mov r3, #7
+ ldr r0, [r4, #4]
+ mov r1, #5
+ mov r2, #1
+ lsl r3, r3, #0xc
+ bl MOD83_022387D8
+ bl FUN_0201BD5C
+ mov r0, #0
+ ldr r2, [r4]
+ add r1, r0, #0
+ bl FUN_02002ED0
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4]
+ mov r2, #1
+ str r0, [sp, #4]
+ ldr r0, [r4, #4]
+ add r3, r2, #0
+ bl FUN_0200CB00
+ ldr r0, [r4, #0x14]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r1, #0
+ str r0, [sp, #4]
+ ldr r0, [r4, #4]
+ mov r2, #0xa
+ mov r3, #2
+ bl FUN_0200CD68
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r1, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ add r3, r0, #0
+ add r2, r1, #0
+ add r3, #0x8c
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #5
+ lsl r0, r0, #0xa
+ mov r1, #1
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r0, [r4]
+ add r3, r1, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x74
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #2
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x74
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r2, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_020186B4
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02017CD0
+ add r0, r4, #0
+ bl MOD83_0222EA88
+ add sp, #0x48
+ pop {r3, r4, r5, pc}
+ nop
+_0222EA80: .word 0x0223A3C8
+_0222EA84: .word 0x0223A3B8
+ thumb_func_end MOD83_0222E954
+
+ thumb_func_start MOD83_0222EA88
+MOD83_0222EA88: ; 0x0222EA88
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r2, #4
+ add r3, r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0
+ add r3, #0xfc
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #5
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ ldr r0, [r4]
+ mov r3, #4
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x74
+ 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]
+ ldr r0, [r4]
+ mov r1, #2
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x74
+ mov r3, #4
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r2, #0
+ ldr r0, [r4, #4]
+ mov r1, #4
+ add r3, r2, #0
+ bl FUN_020186B4
+ ldr r0, [r4, #4]
+ mov r1, #4
+ bl FUN_02017CD0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0222EA88
+
+ thumb_func_start MOD83_0222EB04
+MOD83_0222EB04: ; 0x0222EB04
+ push {r3, r4, lr}
+ sub sp, #0x5c
+ add r4, r0, #0
+ add r0, #0x18
+ bl FUN_02019048
+ cmp r0, #0
+ bne _0222EB4E
+ mov r0, #1
+ str r0, [sp]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, sp, #8
+ add r1, #0x18
+ mov r2, #0
+ mov r3, #0xc
+ bl MOD83_022388E4
+ mov r3, #0x51
+ lsl r3, r3, #2
+ ldr r3, [r4, r3]
+ add r0, sp, #8
+ mov r1, #0x16
+ mov r2, #0x10
+ bl MOD83_02238934
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ add r1, sp, #8
+ mov r2, #5
+ mov r3, #4
+ bl MOD83_02238A38
+ add sp, #0x5c
+ mov r0, #1
+ pop {r3, r4, pc}
+_0222EB4E:
+ ldr r0, _0222EB78 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _0222EB70
+ add r0, r4, #0
+ add r0, #0x18
+ mov r1, #0
+ bl FUN_0200CCF8
+ add r4, #0x18
+ add r0, r4, #0
+ bl FUN_02019178
+ add sp, #0x5c
+ mov r0, #0
+ pop {r3, r4, pc}
+_0222EB70:
+ mov r0, #1
+ add sp, #0x5c
+ pop {r3, r4, pc}
+ nop
+_0222EB78: .word 0x021C48B8
+ thumb_func_end MOD83_0222EB04
+
+ thumb_func_start MOD83_0222EB7C
+MOD83_0222EB7C: ; 0x0222EB7C
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, r4, #0
+ ldr r3, _0222EC70 ; =0x00000172
+ add r0, #0x48
+ add r1, #0x28
+ mov r2, #0
+ bl MOD83_022388E4
+ mov r3, #0x51
+ lsl r3, r3, #2
+ add r0, r4, #0
+ ldr r3, [r4, r3]
+ add r0, #0x48
+ mov r1, #0x1b
+ mov r2, #4
+ bl MOD83_02238934
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x48
+ add r2, r1, #0
+ bl MOD83_0223893C
+ mov r0, #0x46
+ str r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ mov r2, #2
+ mov r3, #0x13
+ bl MOD83_02238A38
+ add r0, r4, #0
+ add r0, #0x48
+ bl MOD83_02238AF4
+ mov r3, #0x51
+ lsl r3, r3, #2
+ ldr r1, [r4, r3]
+ mov r2, #0
+ add r0, r1, r0
+ str r0, [r4, r3]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0x9c
+ add r1, #0x18
+ add r3, #0x2e
+ bl MOD83_022388E4
+ mov r3, #0x51
+ lsl r3, r3, #2
+ add r0, r4, #0
+ ldr r3, [r4, r3]
+ add r0, #0x9c
+ mov r1, #0x1e
+ mov r2, #4
+ bl MOD83_02238934
+ add r0, r4, #0
+ add r0, #0x9c
+ mov r1, #0
+ mov r2, #1
+ bl MOD83_0223893C
+ mov r0, #0xb
+ str r0, [sp]
+ add r1, r4, #0
+ mov r2, #1
+ ldr r0, [r4, #4]
+ add r1, #0x9c
+ add r3, r2, #0
+ bl MOD83_02238A38
+ add r0, r4, #0
+ add r0, #0x9c
+ bl MOD83_02238AF4
+ mov r1, #0x51
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ add r0, r2, r0
+ str r0, [r4, r1]
+ bl MOD83_02238AFC
+ bl MOD83_02238B4C
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0xa
+ mov r2, #7
+ mov r3, #9
+ bl MOD83_02238BC4
+ mov r0, #1
+ str r0, [sp]
+ ldr r1, _0222EC74 ; =0x00003170
+ mov r0, #0
+ ldr r1, [r4, r1]
+ mov r2, #0x80
+ mov r3, #0x4c
+ bl MOD83_02238DBC
+ ldr r1, _0222EC74 ; =0x00003170
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD83_0222EC78
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_0222EC70: .word 0x00000172
+_0222EC74: .word 0x00003170
+ thumb_func_end MOD83_0222EB7C
+
+ thumb_func_start MOD83_0222EC78
+MOD83_0222EC78: ; 0x0222EC78
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl FUN_0200AA80
+ add r4, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r5, #0
+ ldr r3, _0222ED84 ; =0x00000172
+ add r0, #0xf0
+ add r1, #0x38
+ mov r2, #0
+ bl MOD83_022388E4
+ mov r3, #0x51
+ lsl r3, r3, #2
+ add r0, r5, #0
+ ldr r3, [r5, r3]
+ add r0, #0xf0
+ mov r1, #0x1a
+ mov r2, #4
+ bl MOD83_02238934
+ add r0, r5, #0
+ add r0, #0xf0
+ mov r1, #0
+ mov r2, #1
+ bl MOD83_0223893C
+ mov r0, #0x41
+ lsl r0, r0, #2
+ str r4, [r5, r0]
+ ldr r2, [r5, #0x10]
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_0200ABC0
+ ldr r0, [r5, #0x10]
+ bl FUN_020239C0
+ add r2, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r1, #1
+ add r0, r4, #0
+ mov r3, #5
+ str r1, [sp, #4]
+ bl FUN_0200AD38
+ mov r0, #0x42
+ str r0, [sp]
+ add r1, r5, #0
+ ldr r0, [r5, #4]
+ add r1, #0xf0
+ mov r2, #3
+ mov r3, #0xd
+ bl MOD83_02238A38
+ add r1, r5, #0
+ mov r0, #0
+ add r1, #0xf8
+ str r0, [r1]
+ mov r1, #1
+ bl FUN_02002E4C
+ add r2, r0, #0
+ add r0, r5, #0
+ add r0, #0xf0
+ mov r1, #0
+ bl MOD83_02238944
+ mov r2, #0x44
+ str r2, [sp]
+ add r1, r5, #0
+ sub r2, #0x45
+ ldr r0, [r5, #4]
+ add r1, #0xf0
+ add r3, r2, #0
+ bl MOD83_02238A38
+ add r0, sp, #0x10
+ bl OS_GetMacAddress
+ add r0, sp, #0x10
+ bl MOD83_02234704
+ add r1, sp, #0x1c
+ add r2, sp, #0x18
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ bl MOD83_02234748
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, [sp, #0x1c]
+ add r0, r4, #0
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ mov r0, #2
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r2, [sp, #0x18]
+ add r0, r4, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ add r0, r5, #0
+ mov r1, #1
+ add r0, #0xfc
+ str r1, [r0]
+ mov r2, #0x45
+ str r2, [sp]
+ ldr r0, [r5, #4]
+ add r5, #0xf0
+ sub r2, #0x46
+ add r1, r5, #0
+ add r3, r2, #0
+ bl MOD83_02238A38
+ add r0, r4, #0
+ bl FUN_0200AB18
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+ nop
+_0222ED84: .word 0x00000172
+ thumb_func_end MOD83_0222EC78
+
+ thumb_func_start MOD83_0222ED88
+MOD83_0222ED88: ; 0x0222ED88
+ push {r4, lr}
+ bl FUN_02006278
+ add r4, r0, #0
+ bl MOD83_02238E48
+ add r0, r4, #0
+ add r0, #0x18
+ bl FUN_02019048
+ cmp r0, #1
+ bne _0222EDD0
+ add r0, r4, #0
+ add r0, #0x18
+ bl FUN_02019570
+ add r0, r4, #0
+ add r0, #0x18
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x28
+ bl FUN_02019570
+ add r0, r4, #0
+ add r0, #0x28
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x38
+ bl FUN_02019570
+ add r0, r4, #0
+ add r0, #0x38
+ bl FUN_02019178
+_0222EDD0:
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #4
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #5
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD83_0222ED88
+
+ thumb_func_start MOD83_0222EDF8
+MOD83_0222EDF8: ; 0x0222EDF8
+ push {r3, r4, r5, lr}
+ mov r3, #2
+ ldr r2, _0222EE80 ; =0x000034DC
+ mov r1, #0x55
+ lsl r3, r3, #0x10
+ add r5, r0, #0
+ bl MOD83_022387A0
+ add r4, r0, #0
+ mov r0, #0x55
+ str r0, [r4]
+ bl FUN_02016B94
+ str r0, [r4, #4]
+ add r0, r5, #0
+ bl FUN_0200628C
+ ldr r0, [r0, #8]
+ str r0, [r4, #8]
+ bl FUN_020238F4
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #8]
+ bl FUN_02024DA0
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x14]
+ ldr r0, [r4]
+ bl MOD83_02238770
+ ldr r0, [r4, #8]
+ bl FUN_0202251C
+ ldr r1, _0222EE84 ; =0x00003174
+ mov r2, #0x53
+ str r0, [r4, r1]
+ mov r0, #9
+ lsl r2, r2, #2
+ str r0, [r4, r2]
+ add r0, r2, #0
+ mov r1, #0x28
+ sub r0, #8
+ str r1, [r4, r0]
+ add r1, r2, #0
+ mov r0, #0
+ add r1, #8
+ str r0, [r4, r1]
+ add r1, r2, #0
+ add r1, #0x10
+ str r0, [r4, r1]
+ add r2, #0xc
+ str r0, [r4, r2]
+ mov r2, #3
+ mov r1, #0x5b
+ lsl r2, r2, #8
+ bl FUN_0201681C
+ ldr r1, _0222EE88 ; =0x00000496
+ mov r0, #9
+ mov r2, #1
+ bl FUN_0200433C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_0222EE80: .word 0x000034DC
+_0222EE84: .word 0x00003174
+_0222EE88: .word 0x00000496
+ thumb_func_end MOD83_0222EDF8
+
+ thumb_func_start MOD83_0222EE8C
+MOD83_0222EE8C: ; 0x0222EE8C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r1, #0
+ add r6, r0, #0
+ bl FUN_02006278
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #0xd
+ bhi _0222EEF2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222EEAC: ; jump table
+ .short _0222EEC8 - _0222EEAC - 2 ; case 0
+ .short _0222EEEA - _0222EEAC - 2 ; case 1
+ .short _0222EF08 - _0222EEAC - 2 ; case 2
+ .short _0222EF5A - _0222EEAC - 2 ; case 3
+ .short _0222EF86 - _0222EEAC - 2 ; case 4
+ .short _0222EFC2 - _0222EEAC - 2 ; case 5
+ .short _0222EFFC - _0222EEAC - 2 ; case 6
+ .short _0222F02C - _0222EEAC - 2 ; case 7
+ .short _0222F02C - _0222EEAC - 2 ; case 8
+ .short _0222F02C - _0222EEAC - 2 ; case 9
+ .short _0222F02C - _0222EEAC - 2 ; case 10
+ .short _0222F012 - _0222EEAC - 2 ; case 11
+ .short _0222F01A - _0222EEAC - 2 ; case 12
+ .short _0222F026 - _0222EEAC - 2 ; case 13
+_0222EEC8:
+ bl MOD83_0222E954
+ ldr r0, [r4, #0xc]
+ bl FUN_02024D64
+ cmp r0, #0
+ bne _0222EEE4
+ mov r0, #1
+ add r1, r0, #0
+ add r2, r5, #0
+ mov r3, #0xd
+ bl MOD83_0223886C
+ b _0222F02C
+_0222EEE4:
+ mov r0, #2
+ str r0, [r5]
+ b _0222F02C
+_0222EEEA:
+ bl MOD83_0222EB04
+ cmp r0, #0
+ beq _0222EEF4
+_0222EEF2:
+ b _0222F02C
+_0222EEF4:
+ mov r0, #1
+ bl MOD83_02238860
+ mov r0, #0
+ mov r1, #0xc
+ add r2, r5, #0
+ mov r3, #0xd
+ bl MOD83_0223886C
+ b _0222F02C
+_0222EF08:
+ bl MOD83_0222EB7C
+ ldr r0, _0222F038 ; =0x00003174
+ ldr r0, [r4, r0]
+ bl FUN_0202ADF0
+ cmp r0, #0
+ bne _0222EF44
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x98
+ str r1, [r0]
+ mov r0, #0x15
+ str r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ mov r2, #2
+ mov r3, #0x13
+ bl MOD83_02238A38
+ ldr r1, _0222F03C ; =0x0000317C
+ add r2, r5, #0
+ str r0, [r4, r1]
+ mov r0, #1
+ mov r1, #3
+ mov r3, #0xd
+ bl MOD83_0223886C
+ b _0222F02C
+_0222EF44:
+ mov r0, #0x53
+ mov r1, #7
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ mov r1, #4
+ add r2, r5, #0
+ mov r3, #0xd
+ bl MOD83_0223886C
+ b _0222F02C
+_0222EF5A:
+ ldr r0, _0222F03C ; =0x0000317C
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0222F02C
+ ldr r0, _0222F040 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r1, r0
+ beq _0222F02C
+ bl MOD83_02238860
+ mov r0, #0
+ mov r1, #0xc
+ add r2, r5, #0
+ mov r3, #0xd
+ bl MOD83_0223886C
+ b _0222F02C
+_0222EF86:
+ bl MOD83_0222F210
+ mov r1, #0x15
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ cmp r0, #5
+ bne _0222EFAA
+ mov r0, #1
+ bl MOD83_02238860
+ mov r0, #0
+ mov r1, #0xc
+ add r2, r5, #0
+ mov r3, #0xd
+ bl MOD83_0223886C
+ b _0222F02C
+_0222EFAA:
+ cmp r0, #4
+ bne _0222F02C
+ mov r0, #1
+ bl MOD83_02238860
+ mov r0, #0
+ mov r1, #0xc
+ add r2, r5, #0
+ mov r3, #0xd
+ bl MOD83_0223886C
+ b _0222F02C
+_0222EFC2:
+ bl MOD83_0222EA88
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E74C
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r1, #0xc6
+ lsl r1, r1, #6
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0x55
+ bl MOD83_02233168
+ mov r0, #1
+ mov r1, #6
+ add r2, r5, #0
+ mov r3, #0xd
+ bl MOD83_0223886C
+ ldr r1, _0222F044 ; =0x000032D2
+ mov r0, #4
+ ldrb r2, [r4, r1]
+ bic r2, r0
+ strb r2, [r4, r1]
+ b _0222F02C
+_0222EFFC:
+ ldr r0, _0222F040 ; =0x021C48B8
+ ldr r0, [r0, #0x48]
+ cmp r0, #0
+ beq _0222F02C
+ mov r0, #0
+ mov r1, #0xb
+ add r2, r5, #0
+ mov r3, #0xd
+ bl MOD83_0223886C
+ b _0222F02C
+_0222F012:
+ mov r0, #0
+ bl OS_ResetSystem
+ b _0222F02C
+_0222F01A:
+ add r0, r6, #0
+ bl MOD83_0222ED88
+ add sp, #4
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_0222F026:
+ add r0, r5, #0
+ bl MOD83_022388CC
+_0222F02C:
+ bl MOD83_02238D58
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0222F038: .word 0x00003174
+_0222F03C: .word 0x0000317C
+_0222F040: .word 0x021C48B8
+_0222F044: .word 0x000032D2
+ thumb_func_end MOD83_0222EE8C
+
+ thumb_func_start MOD83_0222F048
+MOD83_0222F048: ; 0x0222F048
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x5b
+ bl FUN_020168D0
+ ldr r0, _0222F06C ; =0x0000003F
+ ldr r1, _0222F070 ; =0x021DBAB8
+ bl FUN_02000E7C
+ add r0, r4, #0
+ bl FUN_0200627C
+ mov r0, #0x55
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_0222F06C: .word 0x0000003F
+_0222F070: .word 0x021DBAB8
+ thumb_func_end MOD83_0222F048
+
+ thumb_func_start MOD83_0222F074
+MOD83_0222F074: ; 0x0222F074
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #0xc6
+ lsl r0, r0, #6
+ add r4, r5, r0
+ mov r2, #0xd6
+ add r0, r4, #0
+ mov r1, #0
+ lsl r2, r2, #2
+ bl MI_CpuFill8
+ ldr r2, _0222F1A0 ; =0x00000172
+ ldr r3, [r5]
+ mov r0, #1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl FUN_0200AA80
+ mov r1, #0xc6
+ mov r2, #7
+ lsl r1, r1, #6
+ strh r2, [r5, r1]
+ ldr r3, [r5]
+ add r1, r6, #0
+ mov r2, #0x4c
+ str r0, [sp]
+ bl FUN_0200A9C4
+ mov r1, #0x41
+ lsl r1, r1, #2
+ add r7, r0, #0
+ add r1, r4, r1
+ mov r2, #0x24
+ bl FUN_02021EF0
+ add r0, r7, #0
+ bl FUN_02021A20
+ mov r0, #0xc
+ bl MOD83_02238EF4
+ add r7, r0, #0
+ mov r0, #0xa
+ bl MOD83_02238EF4
+ str r0, [sp, #4]
+ mov r0, #0xb
+ bl MOD83_02238EF4
+ ldr r1, [sp, #4]
+ mov r2, #1
+ orr r0, r1
+ add r1, r7, #0
+ orr r1, r0
+ mov r0, #0x53
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r1, r0, #4
+ strh r2, [r4, r1]
+ add r1, r0, #6
+ ldrb r2, [r4, r1]
+ mov r1, #1
+ bic r2, r1
+ add r1, r0, #6
+ strb r2, [r4, r1]
+ ldrb r2, [r4, r1]
+ mov r1, #2
+ bic r2, r1
+ add r1, r0, #6
+ strb r2, [r4, r1]
+ ldrb r2, [r4, r1]
+ mov r1, #4
+ orr r2, r1
+ add r1, r0, #6
+ strb r2, [r4, r1]
+ ldrb r2, [r4, r1]
+ mov r1, #8
+ orr r2, r1
+ add r1, r0, #6
+ strb r2, [r4, r1]
+ ldrb r2, [r4, r1]
+ mov r1, #0x20
+ add r0, r0, #6
+ bic r2, r1
+ strb r2, [r4, r0]
+ ldr r0, [sp]
+ ldr r3, [r5]
+ add r1, r6, #0
+ mov r2, #0x4b
+ bl FUN_0200A9C4
+ add r7, r0, #0
+ mov r1, #0x55
+ lsl r1, r1, #2
+ add r1, r4, r1
+ mov r2, #0xfa
+ bl FUN_02021EF0
+ add r0, r7, #0
+ bl FUN_02021A20
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ mov r1, #0
+ ldr r3, _0222F1A4 ; =0x000001EA
+ strb r1, [r4, r0]
+ add r2, r0, #2
+ strh r3, [r4, r2]
+ add r2, r0, #4
+ strh r1, [r4, r2]
+ add r2, r0, #6
+ strh r1, [r4, r2]
+ add r0, #8
+ strb r1, [r4, r0]
+ add r0, sp, #8
+ bl FUN_020126B4
+ add r0, sp, #8
+ bl RTC_ConvertDateToDay
+ mov r1, #0xd5
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [sp]
+ bl FUN_0200AB18
+ add r0, r6, #0
+ bl FUN_0200A8B8
+ ldr r0, _0222F1A8 ; =0x00003174
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ mov r2, #0
+ bl FUN_0202AC98
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E74C
+ ldr r0, [r5, #4]
+ add r1, r4, #0
+ bl MOD83_022391EC
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222F1A0: .word 0x00000172
+_0222F1A4: .word 0x000001EA
+_0222F1A8: .word 0x00003174
+ thumb_func_end MOD83_0222F074
+
+ thumb_func_start MOD83_0222F1AC
+MOD83_0222F1AC: ; 0x0222F1AC
+ mov r2, #0x16
+ lsl r2, r2, #4
+ str r1, [r0, r2]
+ bx lr
+ thumb_func_end MOD83_0222F1AC
+
+ thumb_func_start MOD83_0222F1B4
+MOD83_0222F1B4: ; 0x0222F1B4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r1, #0x16
+ lsl r1, r1, #4
+ add r4, r3, #0
+ ldr r3, [r0, r1]
+ sub r3, r3, #1
+ str r3, [r0, r1]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _0222F1D6
+ bl MOD83_02234518
+ mov r0, #0x17
+ str r0, [r5]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0222F1D6:
+ cmp r2, #0
+ beq _0222F1EE
+ bl MOD83_022344E4
+ cmp r0, #0
+ bne _0222F1EE
+ bl MOD83_02234518
+ mov r0, #0x16
+ str r0, [r5]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0222F1EE:
+ cmp r4, #0
+ beq _0222F206
+ ldr r0, _0222F20C ; =0x021C48B8
+ ldr r0, [r0, #0x48]
+ tst r0, r4
+ beq _0222F206
+ bl MOD83_02234518
+ mov r0, #0x1a
+ str r0, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0222F206:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0222F20C: .word 0x021C48B8
+ thumb_func_end MOD83_0222F1B4
+
+ thumb_func_start MOD83_0222F210
+MOD83_0222F210: ; 0x0222F210
+ push {r3, r4, r5, lr}
+ mov r5, #0x57
+ lsl r5, r5, #2
+ add r4, r0, #0
+ sub r0, r5, #4
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0222F236
+ bl MOD83_0223438C
+ mov r1, #3
+ sub r0, r1, r0
+ bl FUN_02033EEC
+ bl MOD83_02234238
+ mov r0, #1
+ bl MOD83_022345C8
+_0222F236:
+ ldr r0, [r4, r5]
+ cmp r0, #0x1e
+ bls _0222F23E
+ b _0222F736
+_0222F23E:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222F24A: ; jump table
+ .short _0222F288 - _0222F24A - 2 ; case 0
+ .short _0222F29E - _0222F24A - 2 ; case 1
+ .short _0222F2C4 - _0222F24A - 2 ; case 2
+ .short _0222F2E6 - _0222F24A - 2 ; case 3
+ .short _0222F310 - _0222F24A - 2 ; case 4
+ .short _0222F736 - _0222F24A - 2 ; case 5
+ .short _0222F736 - _0222F24A - 2 ; case 6
+ .short _0222F342 - _0222F24A - 2 ; case 7
+ .short _0222F3B8 - _0222F24A - 2 ; case 8
+ .short _0222F3D6 - _0222F24A - 2 ; case 9
+ .short _0222F420 - _0222F24A - 2 ; case 10
+ .short _0222F45C - _0222F24A - 2 ; case 11
+ .short _0222F476 - _0222F24A - 2 ; case 12
+ .short _0222F4AA - _0222F24A - 2 ; case 13
+ .short _0222F4EC - _0222F24A - 2 ; case 14
+ .short _0222F50C - _0222F24A - 2 ; case 15
+ .short _0222F524 - _0222F24A - 2 ; case 16
+ .short _0222F53E - _0222F24A - 2 ; case 17
+ .short _0222F594 - _0222F24A - 2 ; case 18
+ .short _0222F61C - _0222F24A - 2 ; case 19
+ .short _0222F664 - _0222F24A - 2 ; case 20
+ .short _0222F736 - _0222F24A - 2 ; case 21
+ .short _0222F698 - _0222F24A - 2 ; case 22
+ .short _0222F69C - _0222F24A - 2 ; case 23
+ .short _0222F736 - _0222F24A - 2 ; case 24
+ .short _0222F736 - _0222F24A - 2 ; case 25
+ .short _0222F704 - _0222F24A - 2 ; case 26
+ .short _0222F736 - _0222F24A - 2 ; case 27
+ .short _0222F6D0 - _0222F24A - 2 ; case 28
+ .short _0222F35E - _0222F24A - 2 ; case 29
+ .short _0222F39C - _0222F24A - 2 ; case 30
+_0222F288:
+ add r0, r4, #0
+ bl MOD83_0222E910
+ bl FUN_0202E49C
+ mov r0, #0x52
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ str r1, [r4, r5]
+ b _0222F736
+_0222F29E:
+ bl FUN_0202E4C8
+ cmp r0, #0
+ beq _0222F356
+ mov r1, #0x5b
+ lsl r1, r1, #2
+ ldr r0, _0222F5E0 ; =0x0223A8D4
+ add r1, r4, r1
+ bl MOD83_02233F94
+ mov r0, #0x56
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ bl FUN_02033E74
+ mov r0, #2
+ str r0, [r4, r5]
+ b _0222F736
+_0222F2C4:
+ bl MOD83_0223427C
+ mov r1, #0x19
+ add r0, r4, #0
+ lsl r1, r1, #6
+ bl MOD83_0222F1AC
+ add r0, r4, #0
+ add r0, #0x28
+ mov r1, #0xa
+ bl FUN_0200D858
+ ldr r1, _0222F5E4 ; =0x000034D8
+ str r0, [r4, r1]
+ mov r0, #3
+ str r0, [r4, r5]
+ b _0222F736
+_0222F2E6:
+ bl MOD83_022343A4
+ cmp r0, #0
+ beq _0222F302
+ sub r1, r0, #1
+ mov r0, #0x59
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r1, _0222F5E8 ; =0x00000708
+ add r0, r4, #0
+ bl MOD83_0222F1AC
+ mov r0, #4
+ str r0, [r4, r5]
+_0222F302:
+ add r0, r4, #0
+ add r1, r4, r5
+ mov r2, #0
+ mov r3, #2
+ bl MOD83_0222F1B4
+ b _0222F736
+_0222F310:
+ mov r0, #0x59
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD83_022342C8
+ cmp r0, #0
+ beq _0222F334
+ mov r0, #0x59
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD83_02234304
+ mov r0, #7
+ str r0, [r4, r5]
+ mov r0, #0x16
+ ldr r1, _0222F5E8 ; =0x00000708
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+_0222F334:
+ add r0, r4, #0
+ add r1, r4, r5
+ mov r2, #0
+ mov r3, #2
+ bl MOD83_0222F1B4
+ b _0222F736
+_0222F342:
+ add r0, r4, #0
+ add r1, r4, r5
+ mov r2, #0
+ mov r3, #2
+ bl MOD83_0222F1B4
+ bl MOD83_022344E4
+ cmp r0, #0
+ bne _0222F358
+_0222F356:
+ b _0222F736
+_0222F358:
+ mov r0, #0x1d
+ str r0, [r4, r5]
+ b _0222F736
+_0222F35E:
+ mov r0, #0x1e
+ str r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ mov r2, #2
+ mov r3, #0x13
+ bl MOD83_02238A38
+ ldr r0, _0222F5EC ; =0x00003170
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ ldr r0, _0222F5E4 ; =0x000034D8
+ ldr r0, [r4, r0]
+ bl FUN_0200DBFC
+ ldr r0, _0222F5E4 ; =0x000034D8
+ mov r1, #0
+ str r1, [r4, r0]
+ ldr r0, _0222F5F0 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x16
+ ldr r1, _0222F5E8 ; =0x00000708
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0x1e
+ str r0, [r4, r5]
+ b _0222F736
+_0222F39C:
+ ldr r0, _0222F5F4 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _0222F3AA
+ mov r0, #8
+ str r0, [r4, r5]
+_0222F3AA:
+ add r0, r4, #0
+ add r1, r4, r5
+ mov r2, #1
+ mov r3, #2
+ bl MOD83_0222F1B4
+ b _0222F736
+_0222F3B8:
+ bl MOD83_022343C4
+ mov r0, #9
+ str r0, [r4, r5]
+ mov r0, #0x16
+ ldr r1, _0222F5E8 ; =0x00000708
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ add r1, r4, r5
+ mov r2, #1
+ mov r3, #2
+ bl MOD83_0222F1B4
+ b _0222F736
+_0222F3D6:
+ bl MOD83_02234450
+ cmp r0, #0
+ beq _0222F412
+ bl MOD83_022343F8
+ mov r0, #0xa
+ str r0, [r4, r5]
+ mov r1, #0x32
+ mov r0, #0x16
+ lsl r1, r1, #6
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0x22
+ str r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ mov r2, #2
+ mov r3, #0x13
+ bl MOD83_02238A38
+ ldr r0, _0222F5F0 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _0222F5E4 ; =0x000034D8
+ mov r1, #0
+ str r1, [r4, r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0222F412:
+ add r0, r4, #0
+ add r1, r4, r5
+ mov r2, #1
+ mov r3, #2
+ bl MOD83_0222F1B4
+ b _0222F736
+_0222F420:
+ bl MOD83_02234450
+ cmp r0, #0
+ beq _0222F44E
+ mov r0, #0x47
+ str r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ mov r2, #2
+ mov r3, #0x13
+ bl MOD83_02238A38
+ ldr r0, _0222F5EC ; =0x00003170
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ add r0, r4, #0
+ bl MOD83_0222EC78
+ mov r0, #0xb
+ str r0, [r4, r5]
+_0222F44E:
+ add r0, r4, #0
+ add r1, r4, r5
+ mov r2, #1
+ mov r3, #2
+ bl MOD83_0222F1B4
+ b _0222F736
+_0222F45C:
+ ldr r0, _0222F5F8 ; =0x0223AD6C
+ mov r1, #0x2a
+ mov r2, #1
+ bl MOD83_02234424
+ mov r0, #0xc
+ str r0, [r4, r5]
+ mov r1, #0x32
+ mov r0, #0x16
+ lsl r1, r1, #6
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _0222F736
+_0222F476:
+ bl MOD83_0223447C
+ cmp r0, #0
+ beq _0222F49C
+ mov r0, #0xd
+ str r0, [r4, r5]
+ mov r0, #0x16
+ mov r1, #0x3c
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0x47
+ str r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ mov r2, #2
+ mov r3, #0x13
+ bl MOD83_02238A38
+_0222F49C:
+ add r0, r4, #0
+ add r1, r4, r5
+ mov r2, #1
+ mov r3, #2
+ bl MOD83_0222F1B4
+ b _0222F736
+_0222F4AA:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222F51C
+ mov r0, #0x48
+ str r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ mov r2, #2
+ mov r3, #0x13
+ bl MOD83_02238A38
+ add r0, r4, #0
+ add r0, #0x28
+ mov r1, #0xa
+ bl FUN_0200D858
+ ldr r1, _0222F5E4 ; =0x000034D8
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD83_0222F074
+ ldr r0, [r4, #8]
+ bl MOD83_022394BC
+ mov r0, #0xe
+ str r0, [r4, r5]
+ b _0222F736
+_0222F4EC:
+ bl MOD83_022394CC
+ cmp r0, #1
+ bne _0222F51C
+ mov r0, #0xf
+ str r0, [r4, r5]
+ bl OS_GetTickLo
+ mov r1, #0x36
+ bl _s32_div_f
+ mov r0, #0x16
+ add r1, r1, #6
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _0222F736
+_0222F50C:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0222F51E
+_0222F51C:
+ b _0222F736
+_0222F51E:
+ mov r0, #0x10
+ str r0, [r4, r5]
+ b _0222F736
+_0222F524:
+ ldr r0, _0222F5F8 ; =0x0223AD6C
+ mov r1, #0x2a
+ mov r2, #2
+ bl MOD83_02234424
+ mov r0, #0x11
+ str r0, [r4, r5]
+ mov r1, #0x4b
+ mov r0, #0x16
+ lsl r1, r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _0222F736
+_0222F53E:
+ bl MOD83_022344A8
+ cmp r0, #0
+ beq _0222F55A
+ bl MOD83_02239544
+ mov r0, #0x12
+ str r0, [r4, r5]
+ mov r1, #0x32
+ mov r0, #0x16
+ lsl r1, r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _0222F736
+_0222F55A:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222F57A
+ bl MOD83_02234518
+ mov r0, #0x17
+ mov r1, #0x78
+ str r0, [r4, r5]
+ add r0, r1, #0
+ add r0, #0xe8
+ str r1, [r4, r0]
+_0222F57A:
+ bl MOD83_022344E4
+ cmp r0, #0
+ bne _0222F62C
+ bl MOD83_02234518
+ mov r0, #0x16
+ mov r1, #0x78
+ str r0, [r4, r5]
+ add r0, r1, #0
+ add r0, #0xe8
+ str r1, [r4, r0]
+ b _0222F736
+_0222F594:
+ bl MOD83_02239574
+ cmp r0, #3
+ bne _0222F5AE
+ bl MOD83_02234518
+ mov r0, #0x16
+ mov r1, #0x78
+ str r0, [r4, r5]
+ add r0, r1, #0
+ add r0, #0xe8
+ str r1, [r4, r0]
+ b _0222F5FC
+_0222F5AE:
+ bl MOD83_02239574
+ cmp r0, #2
+ beq _0222F5BC
+ bl MOD83_022394CC
+ b _0222F5FC
+_0222F5BC:
+ bl MOD83_0223447C
+ cmp r0, #0
+ bne _0222F5CC
+ bl MOD83_022344E4
+ cmp r0, #0
+ bne _0222F5FC
+_0222F5CC:
+ mov r0, #0x13
+ str r0, [r4, r5]
+ mov r0, #0x16
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ bl MOD83_02234518
+ b _0222F736
+ nop
+_0222F5E0: .word 0x0223A8D4
+_0222F5E4: .word 0x000034D8
+_0222F5E8: .word 0x00000708
+_0222F5EC: .word 0x00003170
+_0222F5F0: .word 0x000005DC
+_0222F5F4: .word 0x021C48B8
+_0222F5F8: .word 0x0223AD6C
+_0222F5FC:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222F61C
+ bl MOD83_02234518
+ mov r0, #0x17
+ str r0, [r4, r5]
+ mov r0, #0x16
+ mov r1, #0xa
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+_0222F61C:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0222F62E
+_0222F62C:
+ b _0222F736
+_0222F62E:
+ mov r0, #0x14
+ str r0, [r4, r5]
+ mov r0, #0x49
+ str r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ mov r2, #2
+ mov r3, #0x13
+ bl MOD83_02238A38
+ ldr r0, _0222F73C ; =0x00003170
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ ldr r0, _0222F740 ; =0x000034D8
+ ldr r0, [r4, r0]
+ bl FUN_0200DBFC
+ ldr r0, _0222F744 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _0222F740 ; =0x000034D8
+ mov r1, #0
+ str r1, [r4, r0]
+ b _0222F736
+_0222F664:
+ bl MOD83_02234558
+ cmp r0, #0
+ beq _0222F736
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0222F686
+ bl FUN_0202E4F0
+ bl FUN_02033ED0
+ mov r0, #0x52
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_0222F686:
+ ldr r0, _0222F748 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _0222F736
+ mov r0, #0x1b
+ str r0, [r4, r5]
+ mov r0, #4
+ pop {r3, r4, r5, pc}
+_0222F698:
+ mov r0, #0x17
+ str r0, [r4, r5]
+_0222F69C:
+ mov r0, #0x4a
+ str r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ mov r2, #2
+ mov r3, #0x13
+ bl MOD83_02238A38
+ ldr r0, _0222F73C ; =0x00003170
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ ldr r0, _0222F740 ; =0x000034D8
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0222F6C4
+ bl FUN_0200DBFC
+_0222F6C4:
+ ldr r0, _0222F740 ; =0x000034D8
+ mov r1, #0
+ str r1, [r4, r0]
+ mov r0, #0x1c
+ str r0, [r4, r5]
+ b _0222F736
+_0222F6D0:
+ bl MOD83_02234558
+ cmp r0, #0
+ beq _0222F736
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0222F6F2
+ bl FUN_0202E4F0
+ bl FUN_02033ED0
+ mov r0, #0x52
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_0222F6F2:
+ ldr r0, _0222F748 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _0222F736
+ mov r0, #0
+ bl OS_ResetSystem
+ b _0222F736
+_0222F704:
+ bl MOD83_02234558
+ cmp r0, #0
+ beq _0222F736
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0222F736
+ bl FUN_0202E4F0
+ bl FUN_02033ED0
+ mov r0, #0x52
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, _0222F740 ; =0x000034D8
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0222F732
+ bl FUN_0200DBFC
+_0222F732:
+ mov r0, #5
+ pop {r3, r4, r5, pc}
+_0222F736:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0222F73C: .word 0x00003170
+_0222F740: .word 0x000034D8
+_0222F744: .word 0x000005DC
+_0222F748: .word 0x021C48B8
+ thumb_func_end MOD83_0222F210
+
+ thumb_func_start MOD83_0222F74C
+MOD83_0222F74C: ; 0x0222F74C
+ push {r4, lr}
+ ldr r1, _0222F79C ; =0x0223B884
+ add r4, r0, #0
+ ldr r1, [r1]
+ cmp r1, #0
+ bne _0222F798
+ bl MOD83_0222F9F8
+ mov r1, #0xf5
+ mov r0, #0xf
+ lsl r1, r1, #2
+ bl FUN_02016998
+ ldr r1, _0222F79C ; =0x0223B884
+ mov r2, #0xf5
+ str r0, [r1]
+ mov r1, #0
+ lsl r2, r2, #2
+ bl MI_CpuFill8
+ ldr r0, _0222F79C ; =0x0223B884
+ mov r1, #0x32
+ ldr r0, [r0]
+ mov r2, #0xa
+ strh r1, [r0, #0x24]
+ ldr r0, _0222F7A0 ; =MOD83_0222F89C
+ mov r1, #0
+ bl FUN_0200CA44
+ ldr r1, _0222F79C ; =0x0223B884
+ ldr r2, [r1]
+ str r0, [r2, #0x1c]
+ ldr r0, [r1]
+ str r4, [r0]
+ ldr r0, [r1]
+ add r0, r0, #4
+ bl FUN_020312BC
+_0222F798:
+ pop {r4, pc}
+ nop
+_0222F79C: .word 0x0223B884
+_0222F7A0: .word MOD83_0222F89C
+ thumb_func_end MOD83_0222F74C
+
+ thumb_func_start MOD83_0222F7A4
+MOD83_0222F7A4: ; 0x0222F7A4
+ ldr r2, _0222F7B0 ; =0x0223B884
+ ldr r3, [r2]
+ str r0, [r3, #0x20]
+ ldr r0, [r2]
+ strh r1, [r0, #0x24]
+ bx lr
+ .align 2, 0
+_0222F7B0: .word 0x0223B884
+ thumb_func_end MOD83_0222F7A4
+
+ thumb_func_start MOD83_0222F7B4
+MOD83_0222F7B4: ; 0x0222F7B4
+ push {r4, lr}
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0
+ beq _0222F7E2
+ mov r4, #0
+ ldr r1, _0222F7E4 ; =0x0223B884
+ ldr r0, _0222F7E8 ; =0x000003C1
+ add r3, r4, #0
+_0222F7CA:
+ ldr r2, [r1]
+ add r2, r2, r4
+ add r4, r4, #1
+ strb r3, [r2, r0]
+ cmp r4, #0x10
+ blt _0222F7CA
+ bl FUN_0202DBE0
+ ldr r0, _0222F7EC ; =MOD83_0222F7F0
+ mov r1, #0
+ bl MOD83_0222F7A4
+_0222F7E2:
+ pop {r4, pc}
+ .align 2, 0
+_0222F7E4: .word 0x0223B884
+_0222F7E8: .word 0x000003C1
+_0222F7EC: .word MOD83_0222F7F0
+ thumb_func_end MOD83_0222F7B4
+
+ thumb_func_start MOD83_0222F7F0
+MOD83_0222F7F0: ; 0x0222F7F0
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ ldr r6, _0222F824 ; =0x0223B884
+ add r5, r4, #0
+_0222F7F8:
+ ldr r0, [r6]
+ add r0, r0, r5
+ ldr r0, [r0, #0x28]
+ cmp r0, #0
+ bne _0222F81A
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #1
+ bne _0222F81A
+ add r0, r4, #0
+ bl FUN_0202DFA4
+ ldr r1, [r6]
+ add r1, r1, r5
+ str r0, [r1, #0x28]
+_0222F81A:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x10
+ blt _0222F7F8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222F824: .word 0x0223B884
+ thumb_func_end MOD83_0222F7F0
+
+ thumb_func_start MOD83_0222F828
+MOD83_0222F828: ; 0x0222F828
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0
+ beq _0222F83A
+ ldr r0, _0222F83C ; =MOD83_0222F840
+ mov r1, #0
+ bl MOD83_0222F7A4
+_0222F83A:
+ pop {r3, pc}
+ .align 2, 0
+_0222F83C: .word MOD83_0222F840
+ thumb_func_end MOD83_0222F828
+
+ thumb_func_start MOD83_0222F840
+MOD83_0222F840: ; 0x0222F840
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_0222F840
+
+ thumb_func_start MOD83_0222F844
+MOD83_0222F844: ; 0x0222F844
+ push {r3, lr}
+ ldr r0, _0222F85C ; =0x0223B884
+ ldr r0, [r0]
+ add r0, #0x27
+ ldrb r0, [r0]
+ bl FUN_020319D8
+ ldr r0, _0222F860 ; =MOD83_0222F864
+ mov r1, #0
+ bl MOD83_0222F7A4
+ pop {r3, pc}
+ .align 2, 0
+_0222F85C: .word 0x0223B884
+_0222F860: .word MOD83_0222F864
+ thumb_func_end MOD83_0222F844
+
+ thumb_func_start MOD83_0222F864
+MOD83_0222F864: ; 0x0222F864
+ push {r3, lr}
+ bl FUN_02031A2C
+ cmp r0, #0
+ beq _0222F88C
+ ldr r0, _0222F890 ; =0x0223B884
+ mov r2, #0
+ ldr r1, [r0]
+ mov r0, #0xf
+ lsl r0, r0, #6
+ strb r2, [r1, r0]
+ bl FUN_0202DBE0
+ mov r0, #0xab
+ bl FUN_02031588
+ ldr r0, _0222F894 ; =MOD83_0222F898
+ mov r1, #0
+ bl MOD83_0222F7A4
+_0222F88C:
+ pop {r3, pc}
+ nop
+_0222F890: .word 0x0223B884
+_0222F894: .word MOD83_0222F898
+ thumb_func_end MOD83_0222F864
+
+ thumb_func_start MOD83_0222F898
+MOD83_0222F898: ; 0x0222F898
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_0222F898
+
+ thumb_func_start MOD83_0222F89C
+MOD83_0222F89C: ; 0x0222F89C
+ push {r3, lr}
+ ldr r1, _0222F8C0 ; =0x0223B884
+ ldr r2, [r1]
+ cmp r2, #0
+ bne _0222F8AC
+ bl FUN_0200CAB4
+ pop {r3, pc}
+_0222F8AC:
+ ldr r1, [r2, #0x20]
+ cmp r1, #0
+ beq _0222F8BC
+ add r2, #0x26
+ ldrb r0, [r2]
+ cmp r0, #0
+ bne _0222F8BC
+ blx r1
+_0222F8BC:
+ pop {r3, pc}
+ nop
+_0222F8C0: .word 0x0223B884
+ thumb_func_end MOD83_0222F89C
+
+ thumb_func_start MOD83_0222F8C4
+MOD83_0222F8C4: ; 0x0222F8C4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ bl FUN_02030F40
+ cmp r0, #0
+ bne _0222F8EA
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_02031C74
+ add r0, r5, #0
+ bl MOD83_0222F74C
+ ldr r0, _0222F8EC ; =MOD83_0222F7B4
+ mov r1, #0
+ bl MOD83_0222F7A4
+_0222F8EA:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222F8EC: .word MOD83_0222F7B4
+ thumb_func_end MOD83_0222F8C4
+
+ thumb_func_start MOD83_0222F8F0
+MOD83_0222F8F0: ; 0x0222F8F0
+ add r3, r0, #0
+ add r2, r1, #0
+ add r1, r3, #0
+ ldr r3, _0222F8FC ; =FUN_02030B3C
+ mov r0, #0x16
+ bx r3
+ .align 2, 0
+_0222F8FC: .word FUN_02030B3C
+ thumb_func_end MOD83_0222F8F0
+
+ thumb_func_start MOD83_0222F900
+MOD83_0222F900: ; 0x0222F900
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02030F40
+ cmp r0, #0
+ bne _0222F92C
+ bl MOD83_02231364
+ bl FUN_0200628C
+ ldr r0, [r0, #8]
+ add r1, r4, #0
+ bl FUN_02031CA8
+ add r0, r5, #0
+ bl MOD83_0222F74C
+ ldr r0, _0222F930 ; =MOD83_0222F828
+ mov r1, #0
+ bl MOD83_0222F7A4
+_0222F92C:
+ pop {r3, r4, r5, pc}
+ nop
+_0222F930: .word MOD83_0222F828
+ thumb_func_end MOD83_0222F900
+
+ thumb_func_start MOD83_0222F934
+MOD83_0222F934: ; 0x0222F934
+ ldr r1, _0222F944 ; =0x0223B884
+ ldr r3, _0222F948 ; =MOD83_0222F7A4
+ ldr r1, [r1]
+ add r1, #0x27
+ strb r0, [r1]
+ ldr r0, _0222F94C ; =MOD83_0222F844
+ mov r1, #0
+ bx r3
+ .align 2, 0
+_0222F944: .word 0x0223B884
+_0222F948: .word MOD83_0222F7A4
+_0222F94C: .word MOD83_0222F844
+ thumb_func_end MOD83_0222F934
+
+ thumb_func_start MOD83_0222F950
+MOD83_0222F950: ; 0x0222F950
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_0222F956:
+ add r0, r4, #0
+ bl FUN_0202F124
+ add r1, r0, #0
+ beq _0222F976
+ add r0, #0x4c
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _0222F976
+ add r5, #0x8c
+ add r0, r5, #0
+ mov r2, #0x50
+ bl memcpy
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_0222F976:
+ add r4, r4, #1
+ cmp r4, #0x10
+ blt _0222F956
+ mov r0, #0
+ mvn r0, r0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0222F950
+
+ thumb_func_start MOD83_0222F984
+MOD83_0222F984: ; 0x0222F984
+ ldr r1, _0222F99C ; =0x0223B884
+ ldr r2, [r1]
+ add r1, r2, #0
+ add r1, #0x27
+ ldrb r1, [r1]
+ cmp r1, r0
+ bne _0222F99A
+ mov r0, #0xf
+ mov r1, #1
+ lsl r0, r0, #6
+ strb r1, [r2, r0]
+_0222F99A:
+ bx lr
+ .align 2, 0
+_0222F99C: .word 0x0223B884
+ thumb_func_end MOD83_0222F984
+
+ thumb_func_start MOD83_0222F9A0
+MOD83_0222F9A0: ; 0x0222F9A0
+ ldr r0, _0222F9AC ; =0x0223B884
+ ldr r1, [r0]
+ mov r0, #0xf
+ lsl r0, r0, #6
+ ldrb r0, [r1, r0]
+ bx lr
+ .align 2, 0
+_0222F9AC: .word 0x0223B884
+ thumb_func_end MOD83_0222F9A0
+
+ thumb_func_start MOD83_0222F9B0
+MOD83_0222F9B0: ; 0x0222F9B0
+ mov r0, #0xd6
+ lsl r0, r0, #2
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_0222F9B0
+
+ thumb_func_start MOD83_0222F9B8
+MOD83_0222F9B8: ; 0x0222F9B8
+ ldr r0, _0222F9C0 ; =0x0223B884
+ ldr r0, [r0]
+ add r0, #0x68
+ bx lr
+ .align 2, 0
+_0222F9C0: .word 0x0223B884
+ thumb_func_end MOD83_0222F9B8
+
+ thumb_func_start MOD83_0222F9C4
+MOD83_0222F9C4: ; 0x0222F9C4
+ ldr r1, _0222F9D4 ; =0x0223B884
+ mov r2, #1
+ ldr r1, [r1]
+ add r1, r1, r0
+ ldr r0, _0222F9D8 ; =0x000003C1
+ strb r2, [r1, r0]
+ bx lr
+ nop
+_0222F9D4: .word 0x0223B884
+_0222F9D8: .word 0x000003C1
+ thumb_func_end MOD83_0222F9C4
+
+ thumb_func_start MOD83_0222F9DC
+MOD83_0222F9DC: ; 0x0222F9DC
+ push {r3, lr}
+ ldr r1, _0222F9F4 ; =0x0223B884
+ mov r0, #0xf
+ ldr r1, [r1]
+ bl FUN_02016A8C
+ ldr r0, _0222F9F4 ; =0x0223B884
+ mov r1, #0
+ str r1, [r0]
+ bl FUN_02031A08
+ pop {r3, pc}
+ .align 2, 0
+_0222F9F4: .word 0x0223B884
+ thumb_func_end MOD83_0222F9DC
+
+ thumb_func_start MOD83_0222F9F8
+MOD83_0222F9F8: ; 0x0222F9F8
+ ldr r3, _0222FA04 ; =FUN_0202D8D0
+ add r2, r0, #0
+ ldr r0, _0222FA08 ; =0x0223A3F0
+ mov r1, #2
+ bx r3
+ nop
+_0222FA04: .word FUN_0202D8D0
+_0222FA08: .word 0x0223A3F0
+ thumb_func_end MOD83_0222F9F8
+
+ thumb_func_start MOD83_0222FA0C
+MOD83_0222FA0C: ; 0x0222FA0C
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r1, #1
+ ldr r0, _0222FA40 ; =0x00002994
+ bne _0222FA2C
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222FA3C
+ add r0, r4, #0
+ add r0, #0x18
+ mov r1, #1
+ bl FUN_0200D858
+ ldr r1, _0222FA40 ; =0x00002994
+ str r0, [r4, r1]
+ pop {r4, pc}
+_0222FA2C:
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0222FA36
+ bl FUN_0200DBFC
+_0222FA36:
+ ldr r0, _0222FA40 ; =0x00002994
+ mov r1, #0
+ str r1, [r4, r0]
+_0222FA3C:
+ pop {r4, pc}
+ nop
+_0222FA40: .word 0x00002994
+ thumb_func_end MOD83_0222FA0C
+
+ thumb_func_start MOD83_0222FA44
+MOD83_0222FA44: ; 0x0222FA44
+ ldr r3, _0222FA48 ; =MOD83_0222FA0C
+ bx r3
+ .align 2, 0
+_0222FA48: .word MOD83_0222FA0C
+ thumb_func_end MOD83_0222FA44
+
+ thumb_func_start MOD83_0222FA4C
+MOD83_0222FA4C: ; 0x0222FA4C
+ push {r3, r4, r5, r6, r7, lr}
+ bl FUN_02006278
+ add r7, r0, #0
+ bl MOD83_02238E48
+ ldr r0, [r7, #0x7c]
+ cmp r0, #0
+ beq _0222FA62
+ bl FUN_02012870
+_0222FA62:
+ ldr r0, [r7, #0x78]
+ cmp r0, #0
+ beq _0222FA70
+ mov r1, #0
+ add r2, r1, #0
+ bl FUN_02001300
+_0222FA70:
+ add r0, r7, #0
+ add r0, #0x18
+ bl FUN_02019570
+ add r0, r7, #0
+ add r0, #0x18
+ bl FUN_02019178
+ add r0, r7, #0
+ add r0, #0x58
+ bl FUN_02019048
+ cmp r0, #0
+ beq _0222FA9C
+ add r0, r7, #0
+ add r0, #0x58
+ bl FUN_02019570
+ add r0, r7, #0
+ add r0, #0x58
+ bl FUN_02019178
+_0222FA9C:
+ add r5, r7, #0
+ mov r6, #0
+ add r4, r7, #0
+ add r5, #0x28
+_0222FAA4:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _0222FAB6
+ add r0, r5, #0
+ bl FUN_02019570
+ add r0, r5, #0
+ bl FUN_02019178
+_0222FAB6:
+ add r6, r6, #1
+ add r4, #0x10
+ add r5, #0x10
+ cmp r6, #3
+ blt _0222FAA4
+ ldr r0, [r7]
+ mov r1, #0
+ bl FUN_020178A0
+ ldr r0, [r7]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r7]
+ mov r1, #4
+ bl FUN_020178A0
+ ldr r0, [r7]
+ mov r1, #5
+ bl FUN_020178A0
+ ldr r0, [r7]
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_0222FA4C
+
+ thumb_func_start MOD83_0222FAE8
+MOD83_0222FAE8: ; 0x0222FAE8
+ push {r3, lr}
+ sub sp, #8
+ bl MOD83_02238AFC
+ bl MOD83_02238B4C
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0xa
+ mov r2, #7
+ mov r3, #9
+ bl MOD83_02238BC4
+ add sp, #8
+ pop {r3, pc}
+ thumb_func_end MOD83_0222FAE8
+
+ thumb_func_start MOD83_0222FB0C
+MOD83_0222FB0C: ; 0x0222FB0C
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r1, r0
+ beq _0222FB32
+ str r1, [sp]
+ ldr r1, _0222FB40 ; =0x000005C4
+ mov r0, #0
+ ldr r1, [r4, r1]
+ mov r2, #0x80
+ mov r3, #0x64
+ bl MOD83_02238DBC
+ ldr r1, _0222FB40 ; =0x000005C4
+ add sp, #4
+ str r0, [r4, r1]
+ pop {r3, r4, pc}
+_0222FB32:
+ ldr r0, _0222FB40 ; =0x000005C4
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222FB40: .word 0x000005C4
+ thumb_func_end MOD83_0222FB0C
+
+ thumb_func_start MOD83_0222FB44
+MOD83_0222FB44: ; 0x0222FB44
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02019048
+ cmp r0, #1
+ bne _0222FB5A
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200CCF8
+_0222FB5A:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD83_0222FB44
+
+ thumb_func_start MOD83_0222FB5C
+MOD83_0222FB5C: ; 0x0222FB5C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, _0222FBB0 ; =0x000015D4
+ ldr r0, [r4, r0]
+ cmp r0, #2
+ beq _0222FB7A
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x18
+ mov r2, #3
+ bl MOD83_0223050C
+_0222FB7A:
+ add r0, r4, #0
+ add r0, #0x48
+ mov r1, #0
+ bl MOD83_0222FB44
+ ldr r0, _0222FBB0 ; =0x000015D4
+ ldr r0, [r4, r0]
+ cmp r0, #2
+ beq _0222FBAA
+ add r0, r4, #0
+ mov r1, #0xf
+ bl MOD83_0222F900
+ ldr r1, _0222FBB4 ; =0x00001C20
+ ldr r0, _0222FBB8 ; =0x00000434
+ str r1, [r4, r0]
+ bl FUN_02033E74
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FA0C
+ mov r0, #7
+ pop {r3, r4, r5, pc}
+_0222FBAA:
+ mov r0, #0x13
+ pop {r3, r4, r5, pc}
+ nop
+_0222FBB0: .word 0x000015D4
+_0222FBB4: .word 0x00001C20
+_0222FBB8: .word 0x00000434
+ thumb_func_end MOD83_0222FB5C
+
+ thumb_func_start MOD83_0222FBBC
+MOD83_0222FBBC: ; 0x0222FBBC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, #0x80
+ ldr r1, [r0]
+ cmp r1, #1
+ bne _0222FBD2
+ mov r0, #0x30
+ pop {r3, r4, r5, pc}
+_0222FBD2:
+ sub r0, r1, #2
+ cmp r0, #2
+ bhi _0222FBDC
+ mov r0, #0x30
+ pop {r3, r4, r5, pc}
+_0222FBDC:
+ cmp r1, #5
+ bne _0222FBE4
+ mov r0, #0x30
+ pop {r3, r4, r5, pc}
+_0222FBE4:
+ ldr r0, _0222FC38 ; =0x000015D4
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0222FBF4
+ ldr r0, _0222FC3C ; =0x00000438
+ ldr r0, [r4, r0]
+ bl MOD83_0222F934
+_0222FBF4:
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x18
+ mov r2, #6
+ bl MOD83_0223050C
+ add r0, r4, #0
+ add r0, #0x48
+ mov r1, #0
+ bl MOD83_0222FB44
+ ldr r0, _0222FC38 ; =0x000015D4
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0222FC22
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FB0C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FA0C
+_0222FC22:
+ ldr r0, _0222FC38 ; =0x000015D4
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0222FC34
+ mov r0, #0xab
+ bl FUN_02031588
+ mov r0, #9
+ pop {r3, r4, r5, pc}
+_0222FC34:
+ mov r0, #0x15
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222FC38: .word 0x000015D4
+_0222FC3C: .word 0x00000438
+ thumb_func_end MOD83_0222FBBC
+
+ thumb_func_start MOD83_0222FC40
+MOD83_0222FC40: ; 0x0222FC40
+ push {r3, r4, r5, r6, r7, lr}
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, _0222FCA4 ; =0x000015D4
+ add r5, r4, #0
+ add r6, r4, #0
+ ldr r0, [r4, r0]
+ add r5, #0xdc
+ add r6, #0x8c
+ cmp r0, #1
+ beq _0222FC5E
+ cmp r0, #3
+ beq _0222FC84
+ b _0222FC9E
+_0222FC5E:
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ bl MOD83_0222F9B8
+ mov r2, #0xd6
+ add r1, r0, #0
+ add r0, r5, #0
+ lsl r2, r2, #2
+ bl memcpy
+ add r0, r4, #0
+ add r4, #0xdc
+ add r0, #0x8c
+ add r1, r4, #0
+ mov r2, #0x56
+ bl MOD83_02239374
+ b _0222FC9E
+_0222FC84:
+ ldr r7, _0222FCA8 ; =0x000005D4
+ mov r2, #0xd6
+ add r1, r4, r7
+ add r0, r5, #0
+ add r1, #0x50
+ lsl r2, r2, #2
+ bl memcpy
+ add r0, r6, #0
+ add r1, r4, r7
+ mov r2, #0x50
+ bl memcpy
+_0222FC9E:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222FCA4: .word 0x000015D4
+_0222FCA8: .word 0x000005D4
+ thumb_func_end MOD83_0222FC40
+
+ thumb_func_start MOD83_0222FCAC
+MOD83_0222FCAC: ; 0x0222FCAC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0222FCD8 ; =0x00002990
+ ldr r1, [r4, r0]
+ cmp r1, #1
+ bne _0222FCBE
+ mov r1, #0
+ sub r0, r0, #4
+ str r1, [r4, r0]
+_0222FCBE:
+ bl MOD83_022394CC
+ sub r0, r0, #2
+ cmp r0, #1
+ bhi _0222FCD4
+ ldr r0, _0222FCDC ; =0x0000061B
+ bl FUN_020054C8
+ ldr r0, _0222FCE0 ; =0x0000298C
+ mov r1, #0
+ str r1, [r4, r0]
+_0222FCD4:
+ pop {r4, pc}
+ nop
+_0222FCD8: .word 0x00002990
+_0222FCDC: .word 0x0000061B
+_0222FCE0: .word 0x0000298C
+ thumb_func_end MOD83_0222FCAC
+
+ thumb_func_start MOD83_0222FCE4
+MOD83_0222FCE4: ; 0x0222FCE4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r7, r0, #0
+ bl FUN_02006278
+ add r6, r0, #0
+ add r4, r6, #0
+ add r5, r6, #0
+ add r0, r7, #0
+ add r4, #0x8c
+ add r5, #0xdc
+ bl FUN_0200628C
+ ldr r0, [r0, #8]
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ bne _0222FD12
+ mov r7, #0
+ b _0222FD3E
+_0222FD12:
+ mov r1, #0x35
+ add r2, r4, #0
+ mov r0, #0
+ lsl r1, r1, #4
+ strb r0, [r5, r1]
+ add r2, #0x4e
+ ldrb r2, [r2]
+ mov r7, #1
+ lsl r2, r2, #0x1b
+ lsr r2, r2, #0x1f
+ bne _0222FD2C
+ sub r1, #8
+ strb r0, [r5, r1]
+_0222FD2C:
+ add r0, sp, #8
+ bl FUN_020126B4
+ add r0, sp, #8
+ bl RTC_ConvertDateToDay
+ mov r1, #0xd5
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+_0222FD3E:
+ ldr r0, [sp]
+ bl FUN_0202251C
+ add r4, #0x4c
+ ldrh r1, [r4]
+ str r0, [sp, #4]
+ bl FUN_0202AF24
+ cmp r7, #0
+ bne _0222FD5E
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #0
+ bl FUN_0202AC98
+ b _0222FD66
+_0222FD5E:
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ bl FUN_0202AD08
+_0222FD66:
+ ldr r0, [sp]
+ bl MOD83_022394BC
+ ldr r0, _0222FD7C ; =0x00002990
+ mov r1, #0
+ str r1, [r6, r0]
+ ldr r1, _0222FD80 ; =MOD83_0222FCAC
+ sub r0, r0, #4
+ str r1, [r6, r0]
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222FD7C: .word 0x00002990
+_0222FD80: .word MOD83_0222FCAC
+ thumb_func_end MOD83_0222FCE4
+
+ thumb_func_start MOD83_0222FD84
+MOD83_0222FD84: ; 0x0222FD84
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ add r4, r1, #0
+ bl FUN_02006278
+ cmp r4, #0
+ bne _0222FD98
+ mov r5, #4
+ b _0222FD9C
+_0222FD98:
+ mov r5, #0
+ mvn r5, r5
+_0222FD9C:
+ ldr r1, [r0, #0x48]
+ add r4, r0, #0
+ add r4, #0x48
+ cmp r1, #0
+ bne _0222FDC6
+ mov r1, #0xa
+ str r1, [sp]
+ mov r1, #6
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp, #8]
+ mov r2, #0
+ mov r1, #0x6b
+ str r2, [sp, #0xc]
+ lsl r1, r1, #2
+ str r1, [sp, #0x10]
+ ldr r0, [r0]
+ add r1, r4, #0
+ mov r3, #0x17
+ bl FUN_02019064
+_0222FDC6:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #3
+ bl FUN_0200CCA4
+ ldr r1, _0222FDE4 ; =0x0223ADD8
+ add r0, r6, #0
+ mov r2, #2
+ add r3, r4, #0
+ str r5, [sp]
+ bl MOD83_022303B0
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0222FDE4: .word 0x0223ADD8
+ thumb_func_end MOD83_0222FD84
+
+ thumb_func_start MOD83_0222FDE8
+MOD83_0222FDE8: ; 0x0222FDE8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, #0x48
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r0, r4, #0
+ add r0, #0x58
+ mov r1, #0
+ bl MOD83_0222FB44
+ ldr r0, _0222FE20 ; =0x000015D4
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0222FE14
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+_0222FE14:
+ bl FUN_02033ED0
+ add r0, r5, #0
+ bl MOD83_02230118
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222FE20: .word 0x000015D4
+ thumb_func_end MOD83_0222FDE8
+
+ thumb_func_start MOD83_0222FE24
+MOD83_0222FE24: ; 0x0222FE24
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ bl FUN_02006278
+ add r5, r0, #0
+ bl MOD83_02238700
+ cmp r0, #0
+ beq _0222FE3C
+ mov r1, #2
+ b _0222FE3E
+_0222FE3C:
+ mov r1, #1
+_0222FE3E:
+ ldr r0, _0222FE98 ; =0x000015D4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x38
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r4, r5, #0
+ ldr r0, [r5, #0x48]
+ add r4, #0x48
+ cmp r0, #0
+ bne _0222FE76
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r2, #0
+ mov r0, #0x6b
+ str r2, [sp, #0xc]
+ lsl r0, r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, [r5]
+ add r1, r4, #0
+ mov r3, #0x17
+ bl FUN_02019064
+_0222FE76:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #3
+ bl FUN_0200CCA4
+ mov r2, #2
+ ldr r1, _0222FE9C ; =0x0223ADC8
+ add r0, r6, #0
+ add r3, r4, #0
+ str r2, [sp]
+ bl MOD83_022303B0
+ mov r0, #5
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0222FE98: .word 0x000015D4
+_0222FE9C: .word 0x0223ADC8
+ thumb_func_end MOD83_0222FE24
+
+ thumb_func_start MOD83_0222FEA0
+MOD83_0222FEA0: ; 0x0222FEA0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, _0222FF08 ; =0x000015D4
+ mov r1, #4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0x38
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r5, r4, #0
+ ldr r0, [r4, #0x48]
+ add r5, #0x48
+ cmp r0, #0
+ bne _0222FEE6
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r2, #0
+ mov r0, #0x6b
+ str r2, [sp, #0xc]
+ lsl r0, r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, r5, #0
+ mov r3, #0x17
+ bl FUN_02019064
+_0222FEE6:
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #3
+ bl FUN_0200CCA4
+ mov r0, #0x4e
+ str r0, [sp]
+ ldr r1, _0222FF0C ; =0x0223AD98
+ add r0, r6, #0
+ mov r2, #2
+ add r3, r5, #0
+ bl MOD83_022303B0
+ mov r0, #5
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0222FF08: .word 0x000015D4
+_0222FF0C: .word 0x0223AD98
+ thumb_func_end MOD83_0222FEA0
+
+ thumb_func_start MOD83_0222FF10
+MOD83_0222FF10: ; 0x0222FF10
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, _0222FF78 ; =0x000015D4
+ mov r1, #3
+ str r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0x38
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r5, r4, #0
+ ldr r0, [r4, #0x48]
+ add r5, #0x48
+ cmp r0, #0
+ bne _0222FF56
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r2, #0
+ mov r0, #0x6b
+ str r2, [sp, #0xc]
+ lsl r0, r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, r5, #0
+ mov r3, #0x17
+ bl FUN_02019064
+_0222FF56:
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #3
+ bl FUN_0200CCA4
+ mov r0, #0x4d
+ str r0, [sp]
+ ldr r1, _0222FF7C ; =0x0223ADA8
+ add r0, r6, #0
+ mov r2, #2
+ add r3, r5, #0
+ bl MOD83_022303B0
+ mov r0, #5
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0222FF78: .word 0x000015D4
+_0222FF7C: .word 0x0223ADA8
+ thumb_func_end MOD83_0222FF10
+
+ thumb_func_start MOD83_0222FF80
+MOD83_0222FF80: ; 0x0222FF80
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r1, [r0, #0x48]
+ add r4, #0x48
+ cmp r1, #0
+ bne _0222FFB4
+ mov r1, #0xa
+ str r1, [sp]
+ mov r1, #6
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp, #8]
+ mov r2, #0
+ mov r1, #0x6b
+ str r2, [sp, #0xc]
+ lsl r1, r1, #2
+ str r1, [sp, #0x10]
+ ldr r0, [r0]
+ add r1, r4, #0
+ mov r3, #0x17
+ bl FUN_02019064
+_0222FFB4:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #3
+ bl FUN_0200CCA4
+ mov r0, #4
+ str r0, [sp]
+ ldr r1, _0222FFD4 ; =0x0223ADB8
+ add r0, r5, #0
+ mov r2, #2
+ add r3, r4, #0
+ bl MOD83_022303B0
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_0222FFD4: .word 0x0223ADB8
+ thumb_func_end MOD83_0222FF80
+
+ thumb_func_start MOD83_0222FFD8
+MOD83_0222FFD8: ; 0x0222FFD8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, #0x48
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r0, r4, #0
+ add r0, #0x58
+ mov r1, #0
+ bl MOD83_0222FB44
+ bl FUN_02033ED0
+ ldr r0, _0223000C ; =0x000015D4
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _02230004
+ bl MOD83_0222F9DC
+_02230004:
+ add r0, r5, #0
+ bl MOD83_02230118
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223000C: .word 0x000015D4
+ thumb_func_end MOD83_0222FFD8
+
+ thumb_func_start MOD83_02230010
+MOD83_02230010: ; 0x02230010
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x18
+ mov r2, #3
+ bl MOD83_0223050C
+ add r0, r4, #0
+ add r0, #0x48
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FA0C
+ ldr r0, _02230044 ; =0x0223B888
+ mov r1, #0x24
+ str r1, [r0, #0x10]
+ mov r0, #0x20
+ pop {r3, r4, r5, pc}
+ nop
+_02230044: .word 0x0223B888
+ thumb_func_end MOD83_02230010
+
+ thumb_func_start MOD83_02230048
+MOD83_02230048: ; 0x02230048
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ sub r0, r0, #2
+ cmp r0, #2
+ bhi _02230060
+ mov r0, #0x30
+ pop {r3, r4, r5, pc}
+_02230060:
+ add r0, r4, #0
+ add r0, #0x48
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FB0C
+ add r4, #0x18
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #7
+ bl MOD83_0223050C
+ mov r0, #0x21
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02230048
+
+ thumb_func_start MOD83_02230084
+MOD83_02230084: ; 0x02230084
+ push {r3, lr}
+ ldr r0, _022300A8 ; =0x0223B888
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x27
+ beq _02230096
+ cmp r0, #0x28
+ beq _02230096
+ cmp r0, #0x2f
+ bne _022300A4
+_02230096:
+ bl MOD83_02239A14
+ cmp r0, #0
+ beq _022300A4
+ ldr r0, _022300A8 ; =0x0223B888
+ mov r1, #0x2a
+ str r1, [r0, #0x10]
+_022300A4:
+ mov r0, #0x23
+ pop {r3, pc}
+ .align 2, 0
+_022300A8: .word 0x0223B888
+ thumb_func_end MOD83_02230084
+
+ thumb_func_start MOD83_022300AC
+MOD83_022300AC: ; 0x022300AC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x18
+ mov r2, #3
+ bl MOD83_0223050C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FA0C
+ add r0, r4, #0
+ add r0, #0x48
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FA0C
+ mov r1, #1
+ ldr r0, _022300F0 ; =0x000015DC
+ lsl r1, r1, #0xc
+ str r1, [r4, r0]
+ ldr r0, _022300F4 ; =0x00002620
+ mov r1, #0
+ str r1, [r4, r0]
+ mov r0, #0x1b
+ pop {r3, r4, r5, pc}
+ nop
+_022300F0: .word 0x000015DC
+_022300F4: .word 0x00002620
+ thumb_func_end MOD83_022300AC
+
+ thumb_func_start MOD83_022300F8
+MOD83_022300F8: ; 0x022300F8
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02006278
+ add r0, #0x38
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r0, r4, #0
+ mov r1, #0xc4
+ mov r2, #0
+ bl MOD83_02230464
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022300F8
+
+ thumb_func_start MOD83_02230118
+MOD83_02230118: ; 0x02230118
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ bl FUN_02006278
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ bl FUN_0202251C
+ ldr r0, _02230194 ; =0x000005C8
+ ldr r1, [r5, r0]
+ cmp r1, #0x1e
+ bne _0223013E
+ mov r1, #1
+ add r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD83_022313E4
+_0223013E:
+ add r0, r5, #0
+ add r0, #0x28
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r4, r5, #0
+ ldr r0, [r5, #0x38]
+ add r4, #0x38
+ cmp r0, #0
+ bne _02230172
+ mov r0, #9
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r2, #0
+ mov r0, #0x49
+ str r2, [sp, #0xc]
+ lsl r0, r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, [r5]
+ add r1, r4, #0
+ mov r3, #0xf
+ bl FUN_02019064
+_02230172:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #3
+ bl FUN_0200CCA4
+ mov r0, #1
+ str r0, [sp]
+ ldr r1, _02230198 ; =0x0223AE20
+ add r0, r6, #0
+ mov r2, #4
+ add r3, r4, #0
+ bl MOD83_022303B0
+ mov r0, #4
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02230194: .word 0x000005C8
+_02230198: .word 0x0223AE20
+ thumb_func_end MOD83_02230118
+
+ thumb_func_start MOD83_0223019C
+MOD83_0223019C: ; 0x0223019C
+ push {r4, lr}
+ bl FUN_02006278
+ ldr r1, _022301CC ; =0x000005C8
+ add r4, r0, #0
+ ldr r2, [r4, r1]
+ cmp r2, #0x1e
+ bne _022301B6
+ mov r2, #1
+ add r1, r1, #4
+ str r2, [r4, r1]
+ bl MOD83_022313E4
+_022301B6:
+ ldr r2, _022301D0 ; =0x000015D8
+ mov r0, #0
+ ldr r2, [r4, r2]
+ mov r1, #0x35
+ mov r3, #2
+ bl MOD83_0223886C
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, pc}
+ nop
+_022301CC: .word 0x000005C8
+_022301D0: .word 0x000015D8
+ thumb_func_end MOD83_0223019C
+
+ thumb_func_start MOD83_022301D4
+MOD83_022301D4: ; 0x022301D4
+ push {r4, lr}
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, _02230204 ; =0x000005C8
+ ldr r1, [r4, r0]
+ cmp r1, #0x1e
+ bne _022301EA
+ mov r1, #1
+ add r0, r0, #4
+ str r1, [r4, r0]
+_022301EA:
+ mov r0, #1
+ bl MOD83_02238860
+ ldr r2, _02230208 ; =0x000015D8
+ mov r0, #0
+ ldr r2, [r4, r2]
+ mov r1, #0x34
+ mov r3, #2
+ bl MOD83_0223886C
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, pc}
+ .align 2, 0
+_02230204: .word 0x000005C8
+_02230208: .word 0x000015D8
+ thumb_func_end MOD83_022301D4
+
+ thumb_func_start MOD83_0223020C
+MOD83_0223020C: ; 0x0223020C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r3, #0
+ ldr r3, _02230254 ; =0x0223A418
+ add r7, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r2, sp, #0
+ ldmia r3!, {r0, r1}
+ mov ip, r2
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ lsr r1, r6, #0xb
+ str r0, [r2]
+ add r0, sp, #0
+ strb r1, [r0, #0x12]
+ lsr r1, r5, #0xe
+ strb r1, [r0, #0x13]
+ lsl r1, r4, #0x18
+ add r0, r7, #0
+ lsr r1, r1, #0x18
+ mov r2, ip
+ mov r3, #0
+ bl FUN_02016C18
+ lsl r1, r4, #0x18
+ add r0, r7, #0
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02230254: .word 0x0223A418
+ thumb_func_end MOD83_0223020C
+
+ thumb_func_start MOD83_02230258
+MOD83_02230258: ; 0x02230258
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ ldr r5, _022302B0 ; =0x0223A408
+ 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}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ mov r1, #0
+ mov r2, #0xf
+ add r0, r4, #0
+ lsl r2, r2, #0xc
+ add r3, r1, #0
+ bl MOD83_0223020C
+ mov r1, #1
+ mov r2, #0x3e
+ add r0, r4, #0
+ lsl r2, r2, #0xa
+ lsl r3, r1, #0xf
+ bl MOD83_0223020C
+ mov r2, #0xe
+ add r0, r4, #0
+ mov r1, #4
+ lsl r2, r2, #0xa
+ mov r3, #0
+ bl MOD83_0223020C
+ mov r2, #0x1e
+ mov r3, #1
+ add r0, r4, #0
+ mov r1, #5
+ lsl r2, r2, #0xa
+ lsl r3, r3, #0xe
+ bl MOD83_0223020C
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022302B0: .word 0x0223A408
+ thumb_func_end MOD83_02230258
+
+ thumb_func_start MOD83_022302B4
+MOD83_022302B4: ; 0x022302B4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x20
+ mov r2, #4
+ str r0, [sp]
+ mov r0, #0x56
+ add r3, r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0
+ add r3, #0xfc
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #5
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ mov r0, #0x56
+ str r0, [sp, #0xc]
+ mov r0, #0x74
+ 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, #0x56
+ str r0, [sp, #0xc]
+ mov r0, #0x74
+ mov r1, #2
+ add r2, r4, #0
+ mov r3, #5
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #8
+ mov r2, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #5
+ add r3, r2, #0
+ bl FUN_020186B4
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_02017CD0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022302B4
+
+ thumb_func_start MOD83_02230330
+MOD83_02230330: ; 0x02230330
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x56
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0
+ add r3, r0, #0
+ add r2, r1, #0
+ add r3, #0x8c
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #5
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ mov r0, #0x56
+ str r0, [sp, #0xc]
+ mov r0, #0x74
+ add r2, r4, #0
+ add r3, r1, #0
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x56
+ str r0, [sp, #0xc]
+ mov r0, #0x74
+ mov r1, #2
+ add r2, r4, #0
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #8
+ mov r2, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_020186B4
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02017CD0
+ add r0, r4, #0
+ bl MOD83_022302B4
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02230330
+
+ thumb_func_start MOD83_022303B0
+MOD83_022303B0: ; 0x022303B0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r0, [sp]
+ add r5, r1, #0
+ add r7, r2, #0
+ str r3, [sp, #4]
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r4, #0x7c]
+ cmp r0, #0
+ beq _022303CC
+ bl FUN_02012870
+_022303CC:
+ add r0, r7, #0
+ mov r1, #0x56
+ bl FUN_02012838
+ str r0, [r4, #0x7c]
+ ldr r2, _0223045C ; =0x00000172
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x56
+ bl FUN_0200A86C
+ mov r6, #0
+ str r0, [r4, #0x10]
+ cmp r7, #0
+ ble _022303FE
+_022303EA:
+ ldr r0, [r4, #0x7c]
+ ldr r1, [r4, #0x10]
+ ldr r2, [r5]
+ ldr r3, [r5, #4]
+ bl FUN_02012880
+ add r6, r6, #1
+ add r5, #8
+ cmp r6, r7
+ blt _022303EA
+_022303FE:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200A8B8
+ ldr r3, _02230460 ; =0x0223AE00
+ add r2, sp, #8
+ 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}
+ ldr r0, [r4, #0x7c]
+ str r0, [sp, #8]
+ add r0, sp, #8
+ strh r7, [r0, #0x12]
+ ldrh r1, [r0, #0x12]
+ strh r1, [r0, #0x10]
+ ldr r0, [sp, #4]
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x78]
+ cmp r0, #0
+ beq _02230436
+ mov r1, #0
+ add r2, r1, #0
+ bl FUN_02001300
+_02230436:
+ mov r1, #0
+ add r0, sp, #8
+ add r2, r1, #0
+ mov r3, #0x56
+ bl FUN_020010A8
+ str r0, [r4, #0x78]
+ mov r0, #0
+ ldr r2, [sp, #0x40]
+ mvn r0, r0
+ cmp r2, r0
+ beq _02230458
+ add r4, #0x18
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD83_0223050C
+_02230458:
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223045C: .word 0x00000172
+_02230460: .word 0x0223AE00
+ thumb_func_end MOD83_022303B0
+
+ thumb_func_start MOD83_02230464
+MOD83_02230464: ; 0x02230464
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ str r0, [sp, #0x14]
+ str r1, [sp, #0x1c]
+ str r2, [sp, #0x18]
+ bl FUN_02006278
+ add r7, r0, #0
+ ldr r0, [r7, #4]
+ mov r5, #0
+ bl FUN_0202251C
+ ldr r1, _02230508 ; =0x0223AD98
+ add r4, r7, #0
+ ldr r2, [r1, #0x50]
+ ldr r1, [r1, #0x54]
+ add r4, #0x28
+ add r5, r5, #1
+ str r2, [sp, #0x20]
+ str r1, [sp, #0x24]
+ bl FUN_0202AE70
+ cmp r0, #0
+ beq _022304A8
+ lsl r6, r5, #3
+ add r0, sp, #0x20
+ add r1, r0, r6
+ ldr r0, _02230508 ; =0x0223AD98
+ add r5, r5, #1
+ ldr r3, [r0, #0x58]
+ ldr r2, [r0, #0x5c]
+ add r0, sp, #0x20
+ str r3, [r0, r6]
+ str r2, [r1, #4]
+_022304A8:
+ lsl r6, r5, #3
+ add r0, sp, #0x20
+ add r1, r0, r6
+ ldr r0, _02230508 ; =0x0223AD98
+ ldr r3, [r0, #0x60]
+ ldr r2, [r0, #0x64]
+ add r0, sp, #0x20
+ str r3, [r0, r6]
+ str r2, [r1, #4]
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _022304E6
+ mov r0, #7
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r5, #1
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x1c]
+ mov r2, #0
+ lsl r0, r0, #0x10
+ str r2, [sp, #0xc]
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [r7]
+ add r1, r4, #0
+ mov r3, #8
+ bl FUN_02019064
+_022304E6:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #3
+ bl FUN_0200CCA4
+ ldr r0, [sp, #0x18]
+ add r1, sp, #0x20
+ str r0, [sp]
+ ldr r0, [sp, #0x14]
+ add r2, r5, #1
+ add r3, r4, #0
+ bl MOD83_022303B0
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02230508: .word 0x0223AD98
+ thumb_func_end MOD83_02230464
+
+ thumb_func_start MOD83_0223050C
+MOD83_0223050C: ; 0x0223050C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r7, r2, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r2, _0223059C ; =0x00000172
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #0x56
+ bl FUN_0200A86C
+ str r0, [r4, #0x10]
+ mov r0, #0x56
+ bl FUN_0200AA80
+ str r0, [r4, #0xc]
+ mov r0, #1
+ mov r1, #6
+ bl FUN_02002E4C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl FUN_02019620
+ ldr r6, [r4, #0x14]
+ cmp r6, #0
+ bne _02230554
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ add r2, r7, #0
+ mov r3, #0x56
+ bl FUN_0200A9C4
+ add r6, r0, #0
+_02230554:
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, [r4, #0x68]
+ mov r1, #1
+ str r0, [sp, #4]
+ ldr r0, _022305A0 ; =0x0001020F
+ add r2, r6, #0
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ add r0, r5, #0
+ bl FUN_0201BDE0
+ str r0, [r4, #0x6c]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ bne _0223057A
+ add r0, r6, #0
+ bl FUN_02021A20
+_0223057A:
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #2
+ bl FUN_0200D0BC
+ ldr r0, [r4, #0x10]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0xc]
+ bl FUN_0200AB18
+ mov r0, #0xff
+ str r0, [r4, #0x68]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223059C: .word 0x00000172
+_022305A0: .word 0x0001020F
+ thumb_func_end MOD83_0223050C
+
+ thumb_func_start MOD83_022305A4
+MOD83_022305A4: ; 0x022305A4
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r6, r2, #0
+ bl FUN_02006278
+ mov r0, #0x25
+ mov r1, #0x56
+ bl FUN_020219F4
+ add r1, r6, #0
+ mov r2, #0x24
+ add r4, r0, #0
+ bl FUN_02021E8C
+ mov r0, #0
+ mov r1, #6
+ bl FUN_02002E4C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02230600 ; =0x0001020F
+ add r2, r4, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #0x1f
+ mov r3, #3
+ bl FUN_0200CCA4
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02230600: .word 0x0001020F
+ thumb_func_end MOD83_022305A4
+
+ thumb_func_start MOD83_02230604
+MOD83_02230604: ; 0x02230604
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl FUN_02006278
+ ldr r0, [r0, #0x78]
+ bl FUN_02001204
+ add r4, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _02230628
+ add r0, r0, #1
+ cmp r4, r0
+ beq _0223065E
+ b _02230642
+_02230628:
+ ldr r0, _02230660 ; =0x000005DC
+ bl FUN_020054C8
+ cmp r6, #0
+ beq _0223065E
+ add r0, r7, #0
+ blx r6
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0223065E
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_02230642:
+ ldr r0, _02230660 ; =0x000005DC
+ bl FUN_020054C8
+ cmp r4, #0
+ beq _0223065E
+ ldr r0, _02230664 ; =0x0223B888
+ str r4, [r0, #0xc]
+ add r0, r7, #0
+ blx r4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0223065E
+ str r0, [r5]
+_0223065E:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02230660: .word 0x000005DC
+_02230664: .word 0x0223B888
+ thumb_func_end MOD83_02230604
+
+ thumb_func_start MOD83_02230668
+MOD83_02230668: ; 0x02230668
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0201BD5C
+ mov r0, #0
+ add r1, r0, #0
+ mov r2, #0x56
+ bl FUN_02002ED0
+ mov r0, #0
+ mov r1, #0x20
+ mov r2, #0x56
+ bl FUN_02002ED0
+ ldr r0, [r4, #8]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x56
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #1
+ mov r3, #2
+ bl FUN_0200CD68
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x56
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0x1f
+ mov r3, #3
+ bl FUN_0200CB00
+ mov r0, #5
+ ldr r1, _02230710 ; =0x00007D8C
+ lsl r0, r0, #0x18
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x18
+ bl FUN_02019048
+ cmp r0, #0
+ bne _022306EC
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r2, #0
+ add r1, r4, #0
+ str r2, [sp, #0xc]
+ mov r0, #0x28
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, #0x18
+ mov r3, #2
+ bl FUN_02019064
+_022306EC:
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x18
+ mov r2, #0
+ bl MOD83_0223050C
+ add r0, r5, #0
+ mov r1, #0xc4
+ mov r2, #0
+ bl MOD83_02230464
+ ldr r0, [r4]
+ bl MOD83_02230330
+ mov r0, #1
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_02230710: .word 0x00007D8C
+ thumb_func_end MOD83_02230668
+
+ thumb_func_start MOD83_02230714
+MOD83_02230714: ; 0x02230714
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r1, _022307A4 ; =0x000015DC
+ add r0, r6, #0
+ add r1, r4, r1
+ bl MOD83_02239F34
+ cmp r0, #4
+ bhi _022307A2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223073A: ; jump table
+ .short _022307A2 - _0223073A - 2 ; case 0
+ .short _02230744 - _0223073A - 2 ; case 1
+ .short _02230768 - _0223073A - 2 ; case 2
+ .short _02230768 - _0223073A - 2 ; case 3
+ .short _02230776 - _0223073A - 2 ; case 4
+_02230744:
+ ldr r1, _022307A8 ; =0x000015FC
+ add r0, r4, #0
+ mov r2, #0xea
+ add r0, #0x8c
+ add r1, r4, r1
+ lsl r2, r2, #2
+ bl memcpy
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ mov r0, #0x1b
+ add r4, #0x84
+ str r0, [r4]
+ mov r0, #0x13
+ str r0, [r5]
+ pop {r4, r5, r6, pc}
+_02230768:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ mov r0, #0x11
+ str r0, [r5]
+ pop {r4, r5, r6, pc}
+_02230776:
+ ldr r0, _022307AC ; =0x00002624
+ add r0, r4, r0
+ bl FUN_02019570
+ ldr r0, _022307AC ; =0x00002624
+ add r0, r4, r0
+ bl FUN_02019178
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_02018744
+ ldr r0, _022307B0 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r6, #0
+ mov r1, #0xc4
+ mov r2, #0
+ bl MOD83_02230464
+ mov r0, #3
+ str r0, [r5]
+_022307A2:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022307A4: .word 0x000015DC
+_022307A8: .word 0x000015FC
+_022307AC: .word 0x00002624
+_022307B0: .word 0x000005DC
+ thumb_func_end MOD83_02230714
+
+ thumb_func_start MOD83_022307B4
+MOD83_022307B4: ; 0x022307B4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x5c
+ add r5, r0, #0
+ ldr r0, _0223083C ; =0x00002610
+ ldr r4, [r5, r0]
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _022307C8
+ mov r4, #0xb
+_022307C8:
+ mov r0, #0x10
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, [r5]
+ mov r1, #0
+ bl FUN_02018744
+ mov r0, #0x56
+ bl FUN_0200AA80
+ mov r1, #2
+ str r1, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r2, _02230840 ; =0x00002614
+ mov r1, #0
+ ldr r2, [r5, r2]
+ mov r3, #5
+ add r6, r0, #0
+ bl FUN_0200AD38
+ mov r0, #0x1f
+ ldr r1, _02230844 ; =0x00002624
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r3, _02230848 ; =0x00000265
+ add r0, sp, #8
+ add r1, r5, r1
+ mov r2, #1
+ bl MOD83_022388E4
+ add r0, sp, #8
+ mov r1, #0x18
+ mov r2, #0x10
+ mov r3, #0x64
+ bl MOD83_02238934
+ add r0, sp, #8
+ mov r1, #0
+ mov r2, #1
+ bl MOD83_0223893C
+ str r6, [sp, #0x1c]
+ str r4, [sp]
+ mov r2, #4
+ ldr r0, [r5]
+ add r1, sp, #8
+ add r3, r2, #0
+ bl MOD83_02238A38
+ add r0, r6, #0
+ bl FUN_0200AB18
+ add sp, #0x5c
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0223083C: .word 0x00002610
+_02230840: .word 0x00002614
+_02230844: .word 0x00002624
+_02230848: .word 0x00000265
+ thumb_func_end MOD83_022307B4
+
+ thumb_func_start MOD83_0223084C
+MOD83_0223084C: ; 0x0223084C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r1, r0, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #3
+ bne _02230862
+ mov r4, #0x15
+ b _0223088C
+_02230862:
+ cmp r0, #4
+ bne _0223086A
+ mov r4, #0x19
+ b _0223088C
+_0223086A:
+ cmp r0, #2
+ bne _02230872
+ mov r4, #0x16
+ b _0223088C
+_02230872:
+ cmp r0, #1
+ bne _0223087A
+ mov r4, #0x1b
+ b _0223088C
+_0223087A:
+ cmp r0, #5
+ bne _0223088C
+ add r0, r5, #0
+ add r1, #0x18
+ mov r2, #9
+ mov r3, #0x33
+ bl MOD83_0223089C
+ pop {r3, r4, r5, pc}
+_0223088C:
+ add r0, r5, #0
+ add r1, #0x18
+ add r2, r4, #0
+ mov r3, #0x32
+ bl MOD83_0223089C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0223084C
+
+ thumb_func_start MOD83_0223089C
+MOD83_0223089C: ; 0x0223089C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ add r6, r1, #0
+ add r5, r2, #0
+ str r3, [sp, #4]
+ bl FUN_02006278
+ add r4, r0, #0
+ cmp r6, #0
+ beq _022308F8
+ cmp r5, #0
+ beq _022308F8
+ ldr r2, _02230920 ; =0x00000172
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #0x56
+ bl FUN_0200A86C
+ add r7, r0, #0
+ mov r0, #0x56
+ bl FUN_0200AA80
+ add r1, r7, #0
+ add r2, r5, #0
+ mov r3, #0x56
+ str r0, [sp, #8]
+ bl FUN_0200A9C4
+ str r0, [r4, #0x14]
+ mov r0, #1
+ str r0, [r4, #0x68]
+ ldr r0, [sp]
+ add r1, r6, #0
+ add r2, r5, #0
+ bl MOD83_0223050C
+ ldr r0, [sp, #4]
+ str r0, [r4, #0x74]
+ ldr r0, [sp, #8]
+ bl FUN_0200AB18
+ add r0, r7, #0
+ bl FUN_0200A8B8
+ b _02230918
+_022308F8:
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02230918
+ ldr r0, [r4, #0x14]
+ bl FUN_02021A20
+ mov r0, #0
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x68]
+ add sp, #0xc
+ ldr r0, [r4, #0x74]
+ pop {r4, r5, r6, r7, pc}
+_02230918:
+ mov r0, #0x31
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02230920: .word 0x00000172
+ thumb_func_end MOD83_0223089C
+
+ thumb_func_start MOD83_02230924
+MOD83_02230924: ; 0x02230924
+ push {r3, lr}
+ ldr r1, _02230950 ; =0x000015D4
+ ldr r0, [r0, r1]
+ cmp r0, #4
+ bhi _0223094C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223093A: ; jump table
+ .short _0223094C - _0223093A - 2 ; case 0
+ .short _02230944 - _0223093A - 2 ; case 1
+ .short _0223094C - _0223093A - 2 ; case 2
+ .short _0223094C - _0223093A - 2 ; case 3
+ .short _0223094C - _0223093A - 2 ; case 4
+_02230944:
+ bl MOD83_0222F9DC
+ bl FUN_02033ED0
+_0223094C:
+ pop {r3, pc}
+ nop
+_02230950: .word 0x000015D4
+ thumb_func_end MOD83_02230924
+
+ thumb_func_start MOD83_02230954
+MOD83_02230954: ; 0x02230954
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD83_02231370
+ mov r0, #3
+ mov r1, #0x56
+ lsl r2, r0, #0x10
+ bl FUN_0201681C
+ ldr r1, _022309FC ; =0x00002998
+ add r0, r5, #0
+ mov r2, #0x56
+ bl FUN_02006268
+ ldr r2, _022309FC ; =0x00002998
+ mov r1, #0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x56
+ bl FUN_02016B94
+ str r0, [r4]
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ bl MOD83_022331C0
+ ldr r0, [r4]
+ bl MOD83_02230258
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ ldr r1, _02230A00 ; =0x00000496
+ mov r0, #0xa
+ mov r2, #1
+ bl FUN_0200433C
+ mov r0, #0x56
+ bl MOD83_022385FC
+ bl MOD83_02238700
+ cmp r0, #0
+ beq _022309D0
+ ldr r0, _02230A04 ; =0x000015D4
+ mov r1, #2
+ str r1, [r4, r0]
+ ldr r0, _02230A08 ; =0x020ECAC0
+ ldrb r0, [r0]
+ bl FUN_02016438
+ mov r0, #1
+ bl MOD83_02239450
+_022309D0:
+ ldr r0, _02230A0C ; =0x000005C8
+ mov r1, #0x1d
+ str r1, [r4, r0]
+ add r0, r5, #0
+ bl FUN_0200628C
+ ldr r0, [r0, #8]
+ str r0, [r4, #4]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #8]
+ mov r0, #0xff
+ mov r2, #3
+ str r0, [r4, #0x68]
+ mov r0, #0
+ mov r1, #0x5b
+ lsl r2, r2, #8
+ bl FUN_0201681C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_022309FC: .word 0x00002998
+_02230A00: .word 0x00000496
+_02230A04: .word 0x000015D4
+_02230A08: .word 0x020ECAC0
+_02230A0C: .word 0x000005C8
+ thumb_func_end MOD83_02230954
+
+ thumb_func_start MOD83_02230A10
+MOD83_02230A10: ; 0x02230A10
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ bl CTRDG_IsExisting
+ ldr r0, _02230D5C ; =0x000005C8
+ ldr r0, [r4, r0]
+ cmp r0, #0x1d
+ beq _02230A30
+ add r0, r4, #0
+ bl MOD83_022313E4
+_02230A30:
+ ldr r3, [r5]
+ cmp r3, #0x38
+ bls _02230A3A
+ bl _02231334
+_02230A3A:
+ add r0, r3, r3
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02230A46: ; jump table
+ .short _02230AB8 - _02230A46 - 2 ; case 0
+ .short _02230ACA - _02230A46 - 2 ; case 1
+ .short _02230AE8 - _02230A46 - 2 ; case 2
+ .short _02230AF2 - _02230A46 - 2 ; case 3
+ .short _02230B00 - _02230A46 - 2 ; case 4
+ .short _02230B0E - _02230A46 - 2 ; case 5
+ .short _02231334 - _02230A46 - 2 ; case 6
+ .short _02230CA0 - _02230A46 - 2 ; case 7
+ .short _02230D50 - _02230A46 - 2 ; case 8
+ .short _02230D8C - _02230A46 - 2 ; case 9
+ .short _02230E4C - _02230A46 - 2 ; case 10
+ .short _02230E9A - _02230A46 - 2 ; case 11
+ .short _02230EBC - _02230A46 - 2 ; case 12
+ .short _02230F4C - _02230A46 - 2 ; case 13
+ .short _02230FA2 - _02230A46 - 2 ; case 14
+ .short _02230FCE - _02230A46 - 2 ; case 15
+ .short _0223100E - _02230A46 - 2 ; case 16
+ .short _02231030 - _02230A46 - 2 ; case 17
+ .short _0223105A - _02230A46 - 2 ; case 18
+ .short _0223107A - _02230A46 - 2 ; case 19
+ .short _0223110E - _02230A46 - 2 ; case 20
+ .short _0223111A - _02230A46 - 2 ; case 21
+ .short _0223113C - _02230A46 - 2 ; case 22
+ .short _02231172 - _02230A46 - 2 ; case 23
+ .short _0223118C - _02230A46 - 2 ; case 24
+ .short _02231204 - _02230A46 - 2 ; case 25
+ .short _02231334 - _02230A46 - 2 ; case 26
+ .short _02230B1C - _02230A46 - 2 ; case 27
+ .short _02231334 - _02230A46 - 2 ; case 28
+ .short _02231334 - _02230A46 - 2 ; case 29
+ .short _02231334 - _02230A46 - 2 ; case 30
+ .short _02230BD6 - _02230A46 - 2 ; case 31
+ .short _02230B28 - _02230A46 - 2 ; case 32
+ .short _02230BE8 - _02230A46 - 2 ; case 33
+ .short _02230C0A - _02230A46 - 2 ; case 34
+ .short _02230C7C - _02230A46 - 2 ; case 35
+ .short _02231334 - _02230A46 - 2 ; case 36
+ .short _02231334 - _02230A46 - 2 ; case 37
+ .short _02231334 - _02230A46 - 2 ; case 38
+ .short _02231334 - _02230A46 - 2 ; case 39
+ .short _02231334 - _02230A46 - 2 ; case 40
+ .short _02231334 - _02230A46 - 2 ; case 41
+ .short _02231334 - _02230A46 - 2 ; case 42
+ .short _02231334 - _02230A46 - 2 ; case 43
+ .short _02231334 - _02230A46 - 2 ; case 44
+ .short _02231334 - _02230A46 - 2 ; case 45
+ .short _02231334 - _02230A46 - 2 ; case 46
+ .short _02231334 - _02230A46 - 2 ; case 47
+ .short _02231220 - _02230A46 - 2 ; case 48
+ .short _02231244 - _02230A46 - 2 ; case 49
+ .short _02231252 - _02230A46 - 2 ; case 50
+ .short _0223126E - _02230A46 - 2 ; case 51
+ .short _02231284 - _02230A46 - 2 ; case 52
+ .short _02231298 - _02230A46 - 2 ; case 53
+ .short _022312AA - _02230A46 - 2 ; case 54
+ .short _022312EC - _02230A46 - 2 ; case 55
+ .short _0223132E - _02230A46 - 2 ; case 56
+_02230AB8:
+ mov r0, #0x56
+ bl MOD83_02238770
+ ldr r0, _02230D60 ; =0x000015D8
+ str r5, [r4, r0]
+ mov r0, #1
+ str r0, [r5]
+ bl _02231334
+_02230ACA:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD83_02230668
+ add r0, r4, #0
+ bl MOD83_0222FAE8
+ mov r0, #1
+ mov r1, #3
+ add r2, r5, #0
+ mov r3, #2
+ bl MOD83_0223886C
+ bl _02231334
+_02230AE8:
+ add r0, r5, #0
+ bl MOD83_022388CC
+ bl _02231334
+_02230AF2:
+ ldr r2, _02230D64 ; =MOD83_022301D4
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD83_02230604
+ bl _02231334
+_02230B00:
+ ldr r2, _02230D68 ; =MOD83_022300F8
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD83_02230604
+ bl _02231334
+_02230B0E:
+ ldr r2, _02230D6C ; =MOD83_0222FDE8
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD83_02230604
+ bl _02231334
+_02230B1C:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD83_02230714
+ bl _02231334
+_02230B28:
+ add r0, r4, #0
+ bl MOD83_022314B4
+ ldr r0, _02230D70 ; =0x0223B888
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x2c
+ bne _02230BC0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ add r0, r6, #0
+ bl MOD83_0222FC40
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x8c
+ bl MOD83_022332B4
+ add r1, r4, #0
+ add r1, #0x80
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _02230B6C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ mov r0, #0x30
+ str r0, [r5]
+ b _02230BC0
+_02230B6C:
+ add r0, r4, #0
+ add r0, #0x58
+ bl FUN_02019048
+ cmp r0, #0
+ bne _02230B9A
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r2, #0
+ mov r0, #0x71
+ add r1, r4, #0
+ str r2, [sp, #0xc]
+ lsl r0, r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, #0x58
+ mov r3, #3
+ bl FUN_02019064
+_02230B9A:
+ bl MOD83_02239DA0
+ add r1, r4, #0
+ add r2, r0, #0
+ add r0, r6, #0
+ add r1, #0x58
+ bl MOD83_022305A4
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #4
+ bl MOD83_0223050C
+ add r0, r6, #0
+ bl MOD83_0222FF80
+ mov r0, #0x1f
+ str r0, [r5]
+_02230BC0:
+ ldr r0, _02230D70 ; =0x0223B888
+ ldr r0, [r0, #0x10]
+ sub r0, #0x2d
+ cmp r0, #1
+ bls _02230BCC
+ b _02231334
+_02230BCC:
+ bl MOD83_02231494
+ mov r0, #0x11
+ str r0, [r5]
+ b _02231334
+_02230BD6:
+ ldr r2, _02230D74 ; =MOD83_02230084
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD83_02230604
+ add r0, r4, #0
+ bl MOD83_022314B4
+ b _02231334
+_02230BE8:
+ add r0, r6, #0
+ bl MOD83_0222FC40
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD83_022391EC
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FA0C
+ add r0, r6, #0
+ bl MOD83_0222FCE4
+ mov r0, #0x22
+ str r0, [r5]
+ b _02231334
+_02230C0A:
+ bl MOD83_02239574
+ cmp r0, #4
+ bne _02230C16
+ bl MOD83_02239544
+_02230C16:
+ bl MOD83_02239574
+ cmp r0, #2
+ bne _02230C48
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ mov r1, #0
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD83_0222FB0C
+ ldr r0, _02230D78 ; =0x00000624
+ bl FUN_020054C8
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #8
+ mov r3, #0x36
+ bl MOD83_0223089C
+ str r0, [r5]
+ b _02231334
+_02230C48:
+ bl MOD83_02239574
+ cmp r0, #3
+ bne _02230D38
+ mov r1, #0
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD83_0222FB0C
+ add r0, r4, #0
+ add r0, #0xda
+ ldrb r1, [r0]
+ mov r0, #4
+ mov r2, #0x1a
+ bic r1, r0
+ add r0, r4, #0
+ add r0, #0xda
+ strb r1, [r0]
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r3, #0x36
+ bl MOD83_0223089C
+ str r0, [r5]
+ b _02231334
+_02230C7C:
+ add r0, r4, #0
+ bl MOD83_022314B4
+ ldr r0, _02230D70 ; =0x0223B888
+ ldr r1, [r0, #0x10]
+ add r0, r1, #0
+ sub r0, #0x2c
+ cmp r0, #2
+ bhi _02230D38
+ cmp r1, #0x2e
+ bne _02230C96
+ bl MOD83_02231494
+_02230C96:
+ add r0, r6, #0
+ bl MOD83_0222FFD8
+ str r0, [r5]
+ b _02231334
+_02230CA0:
+ add r0, r4, #0
+ bl MOD83_0222F950
+ ldr r1, _02230D7C ; =0x00000438
+ str r0, [r4, r1]
+ mov r0, #0
+ ldr r1, [r4, r1]
+ mvn r0, r0
+ cmp r1, r0
+ beq _02230D20
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x8c
+ bl MOD83_022332B4
+ add r1, r4, #0
+ add r1, #0x80
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x58
+ bl FUN_02019048
+ cmp r0, #0
+ bne _02230CFA
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r2, #0
+ mov r0, #0x71
+ add r1, r4, #0
+ str r2, [sp, #0xc]
+ lsl r0, r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, #0x58
+ mov r3, #3
+ bl FUN_02019064
+_02230CFA:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r0, r6, #0
+ add r1, #0x58
+ add r2, #0x8c
+ bl MOD83_022305A4
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #4
+ bl MOD83_0223050C
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD83_0222FD84
+ mov r0, #8
+ str r0, [r5]
+_02230D20:
+ ldr r0, _02230D80 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ bne _02230D3A
+ ldr r0, _02230D84 ; =0x00000434
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02230D3A
+_02230D38:
+ b _02231334
+_02230D3A:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ bl MOD83_0222F9DC
+ bl FUN_02033ED0
+ mov r0, #0x11
+ str r0, [r5]
+ b _02231334
+_02230D50:
+ ldr r2, _02230D88 ; =MOD83_0222FFD8
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD83_02230604
+ b _02231334
+ .align 2, 0
+_02230D5C: .word 0x000005C8
+_02230D60: .word 0x000015D8
+_02230D64: .word MOD83_022301D4
+_02230D68: .word MOD83_022300F8
+_02230D6C: .word MOD83_0222FDE8
+_02230D70: .word 0x0223B888
+_02230D74: .word MOD83_02230084
+_02230D78: .word 0x00000624
+_02230D7C: .word 0x00000438
+_02230D80: .word 0x021C48B8
+_02230D84: .word 0x00000434
+_02230D88: .word MOD83_0222FFD8
+_02230D8C:
+ bl FUN_02031190
+ add r7, r0, #0
+ beq _02230DE4
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0
+ beq _02230DE4
+ mov r0, #0xab
+ bl FUN_020315D8
+ cmp r0, #1
+ bne _02230E14
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_020334E8
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #7
+ bl MOD83_0223050C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FB0C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FA0C
+ mov r1, #0x96
+ ldr r0, _02231120 ; =0x00000434
+ lsl r1, r1, #2
+ str r1, [r4, r0]
+ mov r0, #0xa
+ str r0, [r5]
+ b _02230E14
+_02230DE4:
+ cmp r7, #0
+ beq _02230E14
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0
+ bne _02230E14
+ bl MOD83_0222F9DC
+ bl FUN_02033ED0
+ mov r1, #0
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD83_0222FB0C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ mov r0, #0x10
+ str r0, [r5]
+ b _02231334
+_02230E14:
+ ldr r0, _02231124 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ bne _02230E2C
+ ldr r0, _02231120 ; =0x00000434
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02230F1C
+_02230E2C:
+ bl MOD83_0222F9DC
+ bl FUN_02033ED0
+ mov r1, #0
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD83_0222FB0C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ mov r0, #0x11
+ str r0, [r5]
+ b _02231334
+_02230E4C:
+ bl MOD83_0222F9A0
+ cmp r0, #0
+ beq _02230E58
+ mov r0, #0xb
+ str r0, [r5]
+_02230E58:
+ bl FUN_02031190
+ ldr r1, _02231124 ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ mov r1, #2
+ tst r1, r2
+ bne _02230E84
+ ldr r1, _02231120 ; =0x00000434
+ ldr r2, [r4, r1]
+ sub r2, r2, #1
+ str r2, [r4, r1]
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ beq _02230E84
+ cmp r0, #0
+ beq _02230F1C
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0
+ bne _02230F1C
+_02230E84:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ bl MOD83_0222F9DC
+ bl FUN_02033ED0
+ mov r0, #0x11
+ str r0, [r5]
+ b _02231334
+_02230E9A:
+ add r0, r6, #0
+ bl MOD83_0222FC40
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD83_022391EC
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_020334E8
+ add r0, r6, #0
+ bl MOD83_0222FCE4
+ mov r0, #0xc
+ str r0, [r5]
+ b _02231334
+_02230EBC:
+ bl FUN_02031190
+ cmp r0, #0
+ beq _02230EFA
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0
+ bne _02230EFA
+ bl MOD83_0222F9DC
+ ldr r0, _02231128 ; =0x00002990
+ mov r1, #1
+ str r1, [r4, r0]
+ bl MOD83_0223955C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ bl FUN_02033ED0
+ mov r1, #0
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD83_0222FB0C
+ mov r0, #0xe
+ str r0, [r5]
+ b _02231334
+_02230EFA:
+ bl MOD83_02239574
+ cmp r0, #4
+ bne _02230F14
+ mov r0, #0x93
+ bl FUN_02031588
+ mov r0, #0xd
+ str r0, [r5]
+ ldr r0, _0223112C ; =0x0000043C
+ mov r1, #0x78
+ str r1, [r4, r0]
+ b _02231334
+_02230F14:
+ bl MOD83_02239574
+ cmp r0, #3
+ beq _02230F1E
+_02230F1C:
+ b _02231334
+_02230F1E:
+ bl MOD83_0223955C
+ add r0, r4, #0
+ add r0, #0xda
+ ldrb r1, [r0]
+ mov r0, #4
+ bic r1, r0
+ add r0, r4, #0
+ add r0, #0xda
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #0x1a
+ mov r3, #0x36
+ bl MOD83_0223089C
+ str r0, [r5]
+ b _02231334
+_02230F4C:
+ mov r0, #0x93
+ bl FUN_020315D8
+ cmp r0, #1
+ bne _02230F66
+ bl MOD83_02239544
+ ldr r0, _0223112C ; =0x0000043C
+ mov r1, #0xa
+ str r1, [r4, r0]
+ mov r0, #0xf
+ str r0, [r5]
+ b _02231334
+_02230F66:
+ ldr r0, _0223112C ; =0x0000043C
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02231062
+ bl MOD83_0223955C
+ add r0, r4, #0
+ add r0, #0xda
+ ldrb r1, [r0]
+ mov r0, #4
+ bic r1, r0
+ add r0, r4, #0
+ add r0, #0xda
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #0x1a
+ mov r3, #0x36
+ bl MOD83_0223089C
+ str r0, [r5]
+ b _02231334
+_02230FA2:
+ add r0, r4, #0
+ add r0, #0x58
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r0, r4, #0
+ add r0, #0xda
+ ldrb r1, [r0]
+ mov r0, #4
+ mov r2, #0x1c
+ bic r1, r0
+ add r0, r4, #0
+ add r0, #0xda
+ strb r1, [r0]
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r3, #0x36
+ bl MOD83_0223089C
+ str r0, [r5]
+ b _02231334
+_02230FCE:
+ ldr r0, _0223112C ; =0x0000043C
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02231062
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ bl MOD83_0222F9DC
+ bl FUN_02033ED0
+ ldr r0, _02231130 ; =0x00000624
+ bl FUN_020054C8
+ mov r1, #0
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD83_0222FB0C
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #8
+ mov r3, #0x36
+ bl MOD83_0223089C
+ str r0, [r5]
+ b _02231334
+_0223100E:
+ ldr r0, _02231134 ; =0x000005DC
+ bl FUN_020054C8
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #0x18
+ bl MOD83_0223050C
+ add r0, r4, #0
+ add r0, #0x58
+ mov r1, #0
+ bl MOD83_0222FB44
+ mov r0, #0x12
+ str r0, [r5]
+ b _02231334
+_02231030:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ ldr r0, _02231134 ; =0x000005DC
+ bl FUN_020054C8
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #0x17
+ bl MOD83_0223050C
+ add r0, r4, #0
+ add r0, #0x58
+ mov r1, #0
+ bl MOD83_0222FB44
+ mov r0, #0x12
+ str r0, [r5]
+ b _02231334
+_0223105A:
+ ldr r0, _02231124 ; =0x021C48B8
+ ldr r0, [r0, #0x48]
+ cmp r0, #0
+ bne _02231064
+_02231062:
+ b _02231334
+_02231064:
+ ldr r0, _02231134 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r6, #0
+ mov r1, #0xc4
+ mov r2, #0
+ bl MOD83_02230464
+ mov r0, #3
+ str r0, [r5]
+ b _02231334
+_0223107A:
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0x1b
+ beq _02231090
+ add r0, r4, #0
+ mov r1, #0xea
+ add r0, #0x8c
+ lsl r1, r1, #2
+ bl MOD83_02238728
+_02231090:
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x8c
+ bl MOD83_022332B4
+ add r1, r4, #0
+ add r1, #0x80
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _022310B8
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ mov r0, #0x30
+ str r0, [r5]
+ b _02231334
+_022310B8:
+ add r0, r4, #0
+ add r0, #0x58
+ bl FUN_02019048
+ cmp r0, #0
+ bne _022310E6
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r2, #0
+ mov r0, #0x71
+ add r1, r4, #0
+ str r2, [sp, #0xc]
+ lsl r0, r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, #0x58
+ mov r3, #3
+ bl FUN_02019064
+_022310E6:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r0, r6, #0
+ add r1, #0x58
+ add r2, #0x8c
+ bl MOD83_022305A4
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #4
+ bl MOD83_0223050C
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD83_0222FD84
+ mov r0, #0x14
+ str r0, [r5]
+ b _02231334
+_0223110E:
+ ldr r2, _02231138 ; =MOD83_0222FFD8
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD83_02230604
+ b _02231334
+_0223111A:
+ mov r0, #0x16
+ str r0, [r5]
+ b _02231334
+ .align 2, 0
+_02231120: .word 0x00000434
+_02231124: .word 0x021C48B8
+_02231128: .word 0x00002990
+_0223112C: .word 0x0000043C
+_02231130: .word 0x00000624
+_02231134: .word 0x000005DC
+_02231138: .word MOD83_0222FFD8
+_0223113C:
+ add r0, r6, #0
+ bl MOD83_0222FC40
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD83_022391EC
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #7
+ bl MOD83_0223050C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FB0C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FA0C
+ ldr r0, _0223134C ; =0x0000043C
+ mov r1, #0x3c
+ str r1, [r4, r0]
+ mov r0, #0x17
+ str r0, [r5]
+ b _02231334
+_02231172:
+ ldr r0, _0223134C ; =0x0000043C
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02231212
+ add r0, r6, #0
+ bl MOD83_0222FCE4
+ mov r0, #0x18
+ str r0, [r5]
+ b _02231334
+_0223118C:
+ bl MOD83_02239574
+ cmp r0, #4
+ bne _02231198
+ bl MOD83_02239544
+_02231198:
+ bl MOD83_02239574
+ cmp r0, #2
+ bne _022311D0
+ ldr r0, _0223134C ; =0x0000043C
+ mov r1, #1
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ mov r1, #0
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD83_0222FB0C
+ ldr r0, _02231350 ; =0x00000624
+ bl FUN_020054C8
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #8
+ mov r3, #0x19
+ bl MOD83_0223089C
+ str r0, [r5]
+ b _02231334
+_022311D0:
+ bl MOD83_02239574
+ cmp r0, #3
+ bne _02231212
+ mov r1, #0
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD83_0222FB0C
+ add r0, r4, #0
+ add r0, #0xda
+ ldrb r1, [r0]
+ mov r0, #4
+ mov r2, #0x1a
+ bic r1, r0
+ add r0, r4, #0
+ add r0, #0xda
+ strb r1, [r0]
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r3, #0x36
+ bl MOD83_0223089C
+ str r0, [r5]
+ b _02231334
+_02231204:
+ ldr r0, _0223134C ; =0x0000043C
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _02231214
+_02231212:
+ b _02231334
+_02231214:
+ mov r1, #1
+ lsl r1, r1, #0x10
+ str r1, [r4, r0]
+ mov r0, #0x36
+ str r0, [r5]
+ b _02231334
+_02231220:
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #5
+ beq _02231230
+ add r0, r4, #0
+ bl MOD83_02230924
+_02231230:
+ add r0, r6, #0
+ bl MOD83_0223084C
+ str r0, [r5]
+ add r0, r4, #0
+ add r0, #0x48
+ mov r1, #0
+ bl MOD83_0222FB44
+ b _02231334
+_02231244:
+ mov r1, #0
+ add r0, r6, #0
+ add r2, r1, #0
+ bl MOD83_0223089C
+ str r0, [r5]
+ b _02231334
+_02231252:
+ ldr r0, _02231354 ; =0x021C48B8
+ ldr r0, [r0, #0x48]
+ cmp r0, #0
+ beq _02231334
+ add r0, r4, #0
+ add r0, #0x58
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r0, r6, #0
+ bl MOD83_022300F8
+ str r0, [r5]
+ b _02231334
+_0223126E:
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD83_0222FD84
+ mov r0, #8
+ str r0, [r5]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x80
+ str r1, [r0]
+ b _02231334
+_02231284:
+ add r0, r6, #0
+ bl MOD83_0222FA4C
+ mov r0, #0x11
+ mov r1, #0
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02231298:
+ add r0, r6, #0
+ bl MOD83_0222FA4C
+ mov r1, #0x11
+ mov r0, #1
+ lsl r1, r1, #6
+ add sp, #0x14
+ str r0, [r4, r1]
+ pop {r4, r5, r6, r7, pc}
+_022312AA:
+ ldr r0, _02231354 ; =0x021C48B8
+ ldr r0, [r0, #0x48]
+ cmp r0, #0
+ beq _02231334
+ ldr r0, _02231358 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r0, #0xda
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _022312D6
+ ldr r2, _0223135C ; =0x000015D8
+ mov r0, #0
+ ldr r2, [r4, r2]
+ mov r1, #0x37
+ mov r3, #2
+ bl MOD83_0223886C
+ b _02231334
+_022312D6:
+ mov r0, #1
+ bl MOD83_02238860
+ ldr r2, _0223135C ; =0x000015D8
+ mov r0, #0
+ ldr r2, [r4, r2]
+ mov r1, #0x38
+ mov r3, #2
+ bl MOD83_0223886C
+ b _02231334
+_022312EC:
+ ldr r0, [r4]
+ bl MOD83_022302B4
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E74C
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0xdc
+ mov r2, #0x56
+ bl MOD83_02233168
+ ldr r2, _0223135C ; =0x000015D8
+ mov r0, #1
+ ldr r2, [r4, r2]
+ mov r1, #0x36
+ mov r3, #2
+ bl MOD83_0223886C
+ add r0, r4, #0
+ add r0, #0xda
+ ldrb r1, [r0]
+ mov r0, #4
+ bic r1, r0
+ add r0, r4, #0
+ add r0, #0xda
+ strb r1, [r0]
+ b _02231334
+_0223132E:
+ mov r0, #0
+ bl OS_ResetSystem
+_02231334:
+ ldr r0, _02231360 ; =0x0000298C
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _02231340
+ add r0, r4, #0
+ blx r1
+_02231340:
+ bl MOD83_02238D58
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223134C: .word 0x0000043C
+_02231350: .word 0x00000624
+_02231354: .word 0x021C48B8
+_02231358: .word 0x000005DC
+_0223135C: .word 0x000015D8
+_02231360: .word 0x0000298C
+ thumb_func_end MOD83_02230A10
+
+ thumb_func_start MOD83_02231364
+MOD83_02231364: ; 0x02231364
+ ldr r0, _0223136C ; =0x0223B888
+ ldr r0, [r0, #4]
+ bx lr
+ nop
+_0223136C: .word 0x0223B888
+ thumb_func_end MOD83_02231364
+
+ thumb_func_start MOD83_02231370
+MOD83_02231370: ; 0x02231370
+ ldr r1, _02231378 ; =0x0223B888
+ str r0, [r1, #4]
+ bx lr
+ nop
+_02231378: .word 0x0223B888
+ thumb_func_end MOD83_02231370
+
+ thumb_func_start MOD83_0223137C
+MOD83_0223137C: ; 0x0223137C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ mov r0, #0x11
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0223139A
+ ldr r0, _022313D0 ; =0x0000003F
+ ldr r1, _022313D4 ; =0x021DBAB8
+ bl FUN_02000E7C
+ b _022313A6
+_0223139A:
+ cmp r0, #1
+ bne _022313A6
+ ldr r0, _022313D8 ; =0x00000053
+ ldr r1, _022313DC ; =0x0223A444
+ bl FUN_02000E7C
+_022313A6:
+ mov r0, #0x5b
+ bl FUN_020168D0
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0x56
+ bl FUN_020168D0
+ ldr r0, _022313E0 ; =0x000015D4
+ ldr r0, [r4, r0]
+ cmp r0, #2
+ bne _022313C6
+ mov r0, #0
+ bl FUN_02016438
+_022313C6:
+ mov r0, #0
+ bl MOD83_02239450
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022313D0: .word 0x0000003F
+_022313D4: .word 0x021DBAB8
+_022313D8: .word 0x00000053
+_022313DC: .word 0x0223A444
+_022313E0: .word 0x000015D4
+ thumb_func_end MOD83_0223137C
+
+ thumb_func_start MOD83_022313E4
+MOD83_022313E4: ; 0x022313E4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02231438 ; =0x000005C8
+ ldr r0, [r4, r0]
+ cmp r0, #0x1c
+ beq _022313FA
+ cmp r0, #0x1d
+ beq _02231436
+ cmp r0, #0x1e
+ beq _0223140E
+ pop {r4, pc}
+_022313FA:
+ ldr r0, [r4, #4]
+ bl FUN_02032D44
+ ldr r0, _0223143C ; =0x000005CC
+ mov r1, #0x78
+ str r1, [r4, r0]
+ mov r1, #0x1e
+ sub r0, r0, #4
+ str r1, [r4, r0]
+ pop {r4, pc}
+_0223140E:
+ bl FUN_02032D9C
+ mov r1, #1
+ tst r0, r1
+ beq _0223141E
+ mov r0, #0x5d
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+_0223141E:
+ ldr r0, _0223143C ; =0x000005CC
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02231436
+ bl FUN_02032D80
+ ldr r0, _02231438 ; =0x000005C8
+ mov r1, #0x1d
+ str r1, [r4, r0]
+_02231436:
+ pop {r4, pc}
+ .align 2, 0
+_02231438: .word 0x000005C8
+_0223143C: .word 0x000005CC
+ thumb_func_end MOD83_022313E4
+
+ thumb_func_start MOD83_02231440
+MOD83_02231440: ; 0x02231440
+ cmp r0, #4
+ bhi _0223148C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02231450: ; jump table
+ .short _0223145A - _02231450 - 2 ; case 0
+ .short _02231462 - _02231450 - 2 ; case 1
+ .short _0223146A - _02231450 - 2 ; case 2
+ .short _02231472 - _02231450 - 2 ; case 3
+ .short _02231486 - _02231450 - 2 ; case 4
+_0223145A:
+ ldr r0, _02231490 ; =0x0223B888
+ mov r1, #0x27
+ str r1, [r0, #0x10]
+ bx lr
+_02231462:
+ ldr r0, _02231490 ; =0x0223B888
+ mov r1, #0x28
+ str r1, [r0, #0x10]
+ bx lr
+_0223146A:
+ ldr r0, _02231490 ; =0x0223B888
+ mov r1, #0x29
+ str r1, [r0, #0x10]
+ bx lr
+_02231472:
+ ldr r0, _02231490 ; =0x0223B888
+ ldr r1, [r0, #0x10]
+ cmp r1, #0x29
+ bne _02231480
+ mov r1, #0x2b
+ str r1, [r0, #0x10]
+ bx lr
+_02231480:
+ mov r1, #0x2e
+ str r1, [r0, #0x10]
+ bx lr
+_02231486:
+ ldr r0, _02231490 ; =0x0223B888
+ mov r1, #0x2f
+ str r1, [r0, #0x10]
+_0223148C:
+ bx lr
+ nop
+_02231490: .word 0x0223B888
+ thumb_func_end MOD83_02231440
+
+ thumb_func_start MOD83_02231494
+MOD83_02231494: ; 0x02231494
+ push {r3, lr}
+ bl FUN_0202E4F0
+ ldr r0, _022314B0 ; =0x0223B888
+ ldr r0, [r0, #8]
+ bl FUN_02016A18
+ bl FUN_02033ED0
+ ldr r0, _022314B0 ; =0x0223B888
+ mov r1, #0
+ str r1, [r0, #8]
+ pop {r3, pc}
+ nop
+_022314B0: .word 0x0223B888
+ thumb_func_end MOD83_02231494
+
+ thumb_func_start MOD83_022314B4
+MOD83_022314B4: ; 0x022314B4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _022315C0 ; =0x0223B888
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x2b
+ bne _022314DA
+ bl MOD83_02231494
+ bl MOD83_02239CEC
+ cmp r0, #0
+ beq _022314D4
+ ldr r0, _022315C0 ; =0x0223B888
+ mov r1, #0x2c
+ str r1, [r0, #0x10]
+ b _022314DA
+_022314D4:
+ ldr r0, _022315C0 ; =0x0223B888
+ mov r1, #0x2d
+ str r1, [r0, #0x10]
+_022314DA:
+ ldr r0, _022315C0 ; =0x0223B888
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x24
+ beq _022314F6
+ cmp r0, #0x25
+ beq _022314F6
+ cmp r0, #0x26
+ beq _022314F6
+ cmp r0, #0x27
+ beq _022314F6
+ cmp r0, #0x28
+ beq _022314F6
+ cmp r0, #0x2a
+ bne _02231502
+_022314F6:
+ bl WM_GetLinkLevel
+ mov r1, #3
+ sub r0, r1, r0
+ bl FUN_02033EEC
+_02231502:
+ ldr r1, _022315C0 ; =0x0223B888
+ ldr r0, [r1, #0x10]
+ sub r0, #0x24
+ cmp r0, #0xb
+ bhi _0223157C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02231518: ; jump table
+ .short _02231530 - _02231518 - 2 ; case 0
+ .short _0223153C - _02231518 - 2 ; case 1
+ .short _0223157C - _02231518 - 2 ; case 2
+ .short _0223157C - _02231518 - 2 ; case 3
+ .short _02231572 - _02231518 - 2 ; case 4
+ .short _0223157C - _02231518 - 2 ; case 5
+ .short _0223157C - _02231518 - 2 ; case 6
+ .short _0223157C - _02231518 - 2 ; case 7
+ .short _0223157C - _02231518 - 2 ; case 8
+ .short _0223157C - _02231518 - 2 ; case 9
+ .short _0223157A - _02231518 - 2 ; case 10
+ .short _0223157C - _02231518 - 2 ; case 11
+_02231530:
+ bl FUN_0202E49C
+ ldr r0, _022315C0 ; =0x0223B888
+ mov r1, #0x25
+ str r1, [r0, #0x10]
+ b _0223157C
+_0223153C:
+ bl FUN_0202E4C8
+ cmp r0, #1
+ bne _0223157C
+ ldr r0, _022315C0 ; =0x0223B888
+ mov r1, #0
+ str r1, [r0]
+ bl MOD83_02239D98
+ add r1, r0, #0
+ mov r0, #0x56
+ bl FUN_02016998
+ add r2, r0, #0
+ ldr r0, _022315C0 ; =0x0223B888
+ ldr r1, _022315C4 ; =MOD83_02231440
+ str r2, [r0, #8]
+ ldr r0, _022315C8 ; =0x000005D4
+ add r0, r4, r0
+ bl MOD83_02239A98
+ ldr r0, _022315C0 ; =0x0223B888
+ mov r1, #0x26
+ str r1, [r0, #0x10]
+ bl FUN_02033E74
+ b _0223157C
+_02231572:
+ ldr r0, [r1]
+ add r0, r0, #1
+ str r0, [r1]
+ b _0223157C
+_0223157A:
+ pop {r4, pc}
+_0223157C:
+ ldr r0, _022315CC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ beq _022315BC
+ ldr r0, _022315C0 ; =0x0223B888
+ ldr r0, [r0, #0x10]
+ sub r0, #0x27
+ cmp r0, #8
+ bhi _022315BC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223159C: ; jump table
+ .short _022315AE - _0223159C - 2 ; case 0
+ .short _022315AE - _0223159C - 2 ; case 1
+ .short _022315BC - _0223159C - 2 ; case 2
+ .short _022315BC - _0223159C - 2 ; case 3
+ .short _022315BC - _0223159C - 2 ; case 4
+ .short _022315BC - _0223159C - 2 ; case 5
+ .short _022315BC - _0223159C - 2 ; case 6
+ .short _022315BC - _0223159C - 2 ; case 7
+ .short _022315AE - _0223159C - 2 ; case 8
+_022315AE:
+ bl MOD83_02239A14
+ cmp r0, #0
+ beq _022315BC
+ ldr r0, _022315C0 ; =0x0223B888
+ mov r1, #0x2a
+ str r1, [r0, #0x10]
+_022315BC:
+ pop {r4, pc}
+ nop
+_022315C0: .word 0x0223B888
+_022315C4: .word MOD83_02231440
+_022315C8: .word 0x000005D4
+_022315CC: .word 0x021C48B8
+ thumb_func_end MOD83_022314B4
+
+ thumb_func_start MOD83_022315D0
+MOD83_022315D0: ; 0x022315D0
+ push {r3, lr}
+ sub sp, #8
+ bl MOD83_022315F8
+ bl MOD83_02238AFC
+ bl MOD83_02238B4C
+ mov r0, #0xd
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0xf
+ mov r2, #0xc
+ mov r3, #0xe
+ bl MOD83_02238BC4
+ add sp, #8
+ pop {r3, pc}
+ thumb_func_end MOD83_022315D0
+
+ thumb_func_start MOD83_022315F8
+MOD83_022315F8: ; 0x022315F8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0223165C ; =0x00002D64
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02231608
+ bl FUN_0201FFC8
+_02231608:
+ ldr r0, _02231660 ; =0x00002D68
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02231614
+ bl FUN_0201FFC8
+_02231614:
+ ldr r0, _02231660 ; =0x00002D68
+ mov r1, #0
+ str r1, [r4, r0]
+ ldr r2, [r4, r0]
+ sub r1, r0, #4
+ str r2, [r4, r1]
+ add r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0223162C
+ bl FUN_0201FFC8
+_0223162C:
+ ldr r0, _02231664 ; =0x00002D70
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02231638
+ bl FUN_0201FFC8
+_02231638:
+ ldr r0, _02231668 ; =0x00002D74
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02231644
+ bl FUN_0201FFC8
+_02231644:
+ ldr r1, _02231668 ; =0x00002D74
+ mov r0, #0
+ str r0, [r4, r1]
+ ldr r2, [r4, r1]
+ sub r0, r1, #4
+ str r2, [r4, r0]
+ ldr r0, [r4, r0]
+ sub r1, #8
+ str r0, [r4, r1]
+ bl MOD83_02238E48
+ pop {r4, pc}
+ .align 2, 0
+_0223165C: .word 0x00002D64
+_02231660: .word 0x00002D68
+_02231664: .word 0x00002D70
+_02231668: .word 0x00002D74
+ thumb_func_end MOD83_022315F8
+
+ thumb_func_start MOD83_0223166C
+MOD83_0223166C: ; 0x0223166C
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _022316B4 ; =0x00003CEC
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [r4, r1]
+ mov r1, #1
+ str r1, [sp]
+ ldr r1, _022316B8 ; =0x00002D64
+ mov r2, #0x48
+ ldr r1, [r4, r1]
+ mov r3, #0xa8
+ bl MOD83_02238DBC
+ ldr r1, _022316B8 ; =0x00002D64
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #2
+ bl FUN_02020238
+ mov r0, #0
+ ldr r1, _022316BC ; =0x00002D68
+ str r0, [sp]
+ ldr r1, [r4, r1]
+ mov r2, #0xb8
+ mov r3, #0xa8
+ bl MOD83_02238DBC
+ ldr r1, _022316BC ; =0x00002D68
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #2
+ bl FUN_02020238
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_022316B4: .word 0x00003CEC
+_022316B8: .word 0x00002D64
+_022316BC: .word 0x00002D68
+ thumb_func_end MOD83_0223166C
+
+ thumb_func_start MOD83_022316C0
+MOD83_022316C0: ; 0x022316C0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02019048
+ cmp r0, #1
+ bne _022316D6
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200CCF8
+_022316D6:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD83_022316C0
+
+ thumb_func_start MOD83_022316D8
+MOD83_022316D8: ; 0x022316D8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02019048
+ cmp r0, #1
+ bne _022316EE
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200D0E0
+_022316EE:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD83_022316D8
+
+ thumb_func_start MOD83_022316F0
+MOD83_022316F0: ; 0x022316F0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ ldr r0, _02231794 ; =0x00002B6C
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ add r7, r2, #0
+ str r3, [sp]
+ cmp r0, #0
+ beq _02231708
+ bl FUN_02012870
+_02231708:
+ ldr r0, _02231798 ; =0x00002B68
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02231718
+ mov r1, #0
+ add r2, r1, #0
+ bl FUN_02001300
+_02231718:
+ add r0, r7, #0
+ mov r1, #0x57
+ bl FUN_02012838
+ ldr r1, _02231794 ; =0x00002B6C
+ ldr r2, _0223179C ; =0x00000172
+ str r0, [r5, r1]
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x57
+ bl FUN_0200A86C
+ ldr r1, _022317A0 ; =0x000029A4
+ mov r6, #0
+ str r0, [r5, r1]
+ cmp r7, #0
+ ble _02231752
+_0223173A:
+ ldr r0, _02231794 ; =0x00002B6C
+ ldr r1, _022317A0 ; =0x000029A4
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ bl FUN_02012880
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, r7
+ blt _0223173A
+_02231752:
+ ldr r0, _022317A0 ; =0x000029A4
+ ldr r0, [r5, r0]
+ bl FUN_0200A8B8
+ ldr r4, _022317A4 ; =0x0223AE90
+ add r3, sp, #4
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, _02231794 ; =0x00002B6C
+ mov r1, #0
+ ldr r0, [r5, r0]
+ mov r3, #0x57
+ str r0, [sp, #4]
+ add r0, sp, #4
+ strh r7, [r0, #0x10]
+ ldr r0, [sp]
+ str r0, [sp, #0x10]
+ add r0, r2, #0
+ add r2, r1, #0
+ bl FUN_020010A8
+ ldr r1, _02231798 ; =0x00002B68
+ str r0, [r5, r1]
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02231794: .word 0x00002B6C
+_02231798: .word 0x00002B68
+_0223179C: .word 0x00000172
+_022317A0: .word 0x000029A4
+_022317A4: .word 0x0223AE90
+ thumb_func_end MOD83_022316F0
+
+ thumb_func_start MOD83_022317A8
+MOD83_022317A8: ; 0x022317A8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ ldr r2, _02231818 ; =0x00000172
+ add r5, r0, #0
+ add r7, r1, #0
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #0x57
+ bl FUN_0200A86C
+ add r4, r0, #0
+ mov r0, #0x57
+ bl FUN_0200AA80
+ add r6, r0, #0
+ mov r0, #1
+ mov r1, #6
+ bl FUN_02002E4C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl FUN_02019620
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ mov r3, #0x57
+ bl FUN_0200A9C4
+ add r7, r0, #0
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0223181C ; =0x00010200
+ mov r1, #1
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r2, r7, #0
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ bl FUN_020191D0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_0200A8B8
+ add r0, r6, #0
+ bl FUN_0200AB18
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02231818: .word 0x00000172
+_0223181C: .word 0x00010200
+ thumb_func_end MOD83_022317A8
+
+ thumb_func_start MOD83_02231820
+MOD83_02231820: ; 0x02231820
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x57
+ mov r3, #0x1e
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0xb
+ mov r2, #0
+ lsl r3, r3, #4
+ bl FUN_02006930
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x57
+ mov r3, #6
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0x10
+ mov r2, #0
+ lsl r3, r3, #6
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x57
+ str r0, [sp, #0xc]
+ mov r0, #0x74
+ mov r1, #0x11
+ add r2, r4, #0
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x57
+ str r0, [sp, #0xc]
+ mov r0, #0x74
+ mov r1, #0x12
+ add r2, r4, #0
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #0xc
+ mov r2, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_020186B4
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02017CD0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02231820
+
+ thumb_func_start MOD83_022318B0
+MOD83_022318B0: ; 0x022318B0
+ push {r4, lr}
+ bl FUN_02006278
+ add r4, r0, #0
+ bl MOD83_02231A00
+ ldr r0, _022318DC ; =0x00002B70
+ mov r1, #0x2e
+ add r0, r4, r0
+ bl MOD83_022317A8
+ mov r3, #0xae
+ lsl r3, r3, #6
+ add r1, r4, r3
+ add r3, #0x10
+ ldr r3, [r4, r3]
+ add r0, r4, #0
+ mov r2, #0xa
+ bl MOD83_02231F88
+ mov r0, #0xd
+ pop {r4, pc}
+ .align 2, 0
+_022318DC: .word 0x00002B70
+ thumb_func_end MOD83_022318B0
+
+ thumb_func_start MOD83_022318E0
+MOD83_022318E0: ; 0x022318E0
+ push {r4, lr}
+ bl FUN_02006278
+ add r4, r0, #0
+ bl MOD83_02231A00
+ mov r1, #0xad
+ lsl r1, r1, #6
+ ldr r0, [r4, r1]
+ add r1, #0x20
+ ldr r1, [r4, r1]
+ add r1, r1, #1
+ bl FUN_0202AE90
+ cmp r0, #1
+ ldr r0, _0223192C ; =0x00002B70
+ bne _0223190C
+ add r0, r4, r0
+ mov r1, #0x3e
+ bl MOD83_022317A8
+ b _02231914
+_0223190C:
+ add r0, r4, r0
+ mov r1, #0x3d
+ bl MOD83_022317A8
+_02231914:
+ mov r3, #0xae
+ lsl r3, r3, #6
+ add r1, r4, r3
+ add r3, #0x10
+ ldr r3, [r4, r3]
+ add r0, r4, #0
+ mov r2, #9
+ bl MOD83_02231F88
+ mov r0, #0xc
+ pop {r4, pc}
+ nop
+_0223192C: .word 0x00002B70
+ thumb_func_end MOD83_022318E0
+
+ thumb_func_start MOD83_02231930
+MOD83_02231930: ; 0x02231930
+ push {r4, lr}
+ bl FUN_02006278
+ add r4, r0, #0
+ bl MOD83_02231A00
+ ldr r0, _022319C0 ; =0x00002B70
+ mov r1, #0x3f
+ add r0, r4, r0
+ bl MOD83_022317A8
+ ldr r0, _022319C0 ; =0x00002B70
+ mov r1, #0x13
+ add r0, r4, r0
+ bl FUN_0200D858
+ ldr r1, _022319C4 ; =0x00003CF0
+ str r0, [r4, r1]
+ mov r1, #0xad
+ lsl r1, r1, #6
+ ldr r0, [r4, r1]
+ add r1, #0x20
+ ldr r1, [r4, r1]
+ bl FUN_0202ADC8
+ ldr r0, _022319C8 ; =0x00002B44
+ ldr r0, [r4, r0]
+ bl FUN_02022720
+ ldr r0, _022319C4 ; =0x00003CF0
+ ldr r0, [r4, r0]
+ bl FUN_0200DBFC
+ mov r0, #0xad
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ bl FUN_0202AE70
+ cmp r0, #0
+ bne _02231984
+ mov r0, #0x1a
+ pop {r4, pc}
+_02231984:
+ ldr r1, _022319CC ; =0x00002B60
+ add r0, r4, #0
+ ldr r1, [r4, r1]
+ mov r2, #1
+ bl MOD83_022320A4
+ ldr r1, _022319CC ; =0x00002B60
+ str r0, [r4, r1]
+ add r1, #0x10
+ add r0, r4, r1
+ mov r1, #0x24
+ bl MOD83_022317A8
+ mov r3, #0xae
+ lsl r3, r3, #6
+ add r1, r4, r3
+ add r3, #0x10
+ ldr r3, [r4, r3]
+ add r0, r4, #0
+ mov r2, #8
+ bl MOD83_02231F88
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD83_02231DF0
+ mov r0, #5
+ pop {r4, pc}
+ nop
+_022319C0: .word 0x00002B70
+_022319C4: .word 0x00003CF0
+_022319C8: .word 0x00002B44
+_022319CC: .word 0x00002B60
+ thumb_func_end MOD83_02231930
+
+ thumb_func_start MOD83_022319D0
+MOD83_022319D0: ; 0x022319D0
+ push {r4, lr}
+ bl FUN_02006278
+ add r4, r0, #0
+ bl MOD83_02231A00
+ ldr r0, _022319FC ; =0x00002B70
+ mov r1, #0x24
+ add r0, r4, r0
+ bl MOD83_022317A8
+ mov r3, #0xae
+ lsl r3, r3, #6
+ add r1, r4, r3
+ add r3, #0x10
+ ldr r3, [r4, r3]
+ add r0, r4, #0
+ mov r2, #8
+ bl MOD83_02231F88
+ mov r0, #5
+ pop {r4, pc}
+ .align 2, 0
+_022319FC: .word 0x00002B70
+ thumb_func_end MOD83_022319D0
+
+ thumb_func_start MOD83_02231A00
+MOD83_02231A00: ; 0x02231A00
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02231A40 ; =0x00002B6C
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ mov r1, #0
+ ldr r0, _02231A40 ; =0x00002B6C
+ add r2, r1, #0
+ str r1, [r4, r0]
+ sub r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02001300
+ ldr r0, _02231A44 ; =0x00002B68
+ mov r1, #0
+ str r1, [r4, r0]
+ add r0, #0x18
+ add r0, r4, r0
+ bl MOD83_022316C0
+ mov r0, #0xae
+ lsl r0, r0, #6
+ add r0, r4, r0
+ bl FUN_02019570
+ mov r0, #0xae
+ lsl r0, r0, #6
+ add r0, r4, r0
+ bl FUN_02019178
+ pop {r4, pc}
+ .align 2, 0
+_02231A40: .word 0x00002B6C
+_02231A44: .word 0x00002B68
+ thumb_func_end MOD83_02231A00
+
+ thumb_func_start MOD83_02231A48
+MOD83_02231A48: ; 0x02231A48
+ mov r0, #1
+ bx lr
+ thumb_func_end MOD83_02231A48
+
+ thumb_func_start MOD83_02231A4C
+MOD83_02231A4C: ; 0x02231A4C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r7, r1, #0
+ ldr r1, [r5]
+ mov r0, #0x25
+ add r4, r2, #0
+ bl FUN_020219F4
+ ldr r1, _02231A9C ; =0x00002B60
+ add r6, r0, #0
+ ldr r2, [r5, r1]
+ sub r1, #0xc
+ lsl r2, r2, #2
+ add r2, r5, r2
+ ldr r2, [r2, r1]
+ mov r1, #0x41
+ lsl r1, r1, #2
+ add r1, r2, r1
+ mov r2, #0x24
+ bl FUN_02021E8C
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ add r0, r7, #0
+ mov r1, #1
+ add r2, r6, #0
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #1
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02231A9C: .word 0x00002B60
+ thumb_func_end MOD83_02231A4C
+
+ thumb_func_start MOD83_02231AA0
+MOD83_02231AA0: ; 0x02231AA0
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, _02231B10 ; =0x00002B60
+ add r6, r1, #0
+ ldr r1, [r4, r0]
+ add r5, r2, #0
+ lsl r2, r1, #2
+ add r3, r4, r2
+ add r2, r0, #0
+ sub r2, #0xc
+ ldr r3, [r3, r2]
+ ldr r2, _02231B14 ; =0x00000152
+ ldrb r2, [r3, r2]
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x1f
+ bne _02231AC6
+ mov r2, #0x27
+ b _02231ADE
+_02231AC6:
+ sub r0, #0x20
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02231AD8
+ add r1, r1, #1
+ bl FUN_0202AE90
+ cmp r0, #1
+ bne _02231ADC
+_02231AD8:
+ mov r2, #0x25
+ b _02231ADE
+_02231ADC:
+ mov r2, #0x26
+_02231ADE:
+ ldr r1, _02231B18 ; =0x000029A0
+ ldr r3, [r4]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ bl FUN_0200A9C4
+ add r4, r0, #0
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r5, [sp, #8]
+ add r0, r6, #0
+ mov r1, #1
+ add r2, r4, #0
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ mov r0, #1
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02231B10: .word 0x00002B60
+_02231B14: .word 0x00000152
+_02231B18: .word 0x000029A0
+ thumb_func_end MOD83_02231AA0
+
+ thumb_func_start MOD83_02231B1C
+MOD83_02231B1C: ; 0x02231B1C
+ push {r4, lr}
+ sub sp, #0x18
+ ldr r1, _02231B7C ; =0x00002B60
+ add r4, r0, #0
+ ldr r2, [r4, r1]
+ sub r1, #0xc
+ lsl r2, r2, #2
+ add r2, r4, r2
+ ldr r2, [r2, r1]
+ mov r1, #0xd5
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ add r0, sp, #8
+ bl RTC_ConvertDayToDate
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _02231B80 ; =0x000029A0
+ mov r2, #0x7d
+ ldr r3, [sp, #8]
+ lsl r2, r2, #4
+ add r2, r3, r2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r0, _02231B80 ; =0x000029A0
+ ldr r2, [sp, #0xc]
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200B764
+ mov r1, #2
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _02231B80 ; =0x000029A0
+ ldr r2, [sp, #0x10]
+ ldr r0, [r4, r0]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ mov r0, #1
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+_02231B7C: .word 0x00002B60
+_02231B80: .word 0x000029A0
+ thumb_func_end MOD83_02231B1C
+
+ thumb_func_start MOD83_02231B84
+MOD83_02231B84: ; 0x02231B84
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r7, r1, #0
+ mov r0, #0xfb
+ mov r1, #0x57
+ add r4, r2, #0
+ bl FUN_020219F4
+ ldr r1, _02231BD4 ; =0x00002B60
+ add r6, r0, #0
+ ldr r2, [r5, r1]
+ sub r1, #0xc
+ lsl r2, r2, #2
+ add r2, r5, r2
+ ldr r2, [r2, r1]
+ mov r1, #0x55
+ lsl r1, r1, #2
+ add r1, r2, r1
+ mov r2, #0xfa
+ bl FUN_02021E8C
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ add r0, r7, #0
+ mov r1, #1
+ add r2, r6, #0
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02231BD4: .word 0x00002B60
+ thumb_func_end MOD83_02231B84
+
+ thumb_func_start MOD83_02231BD8
+MOD83_02231BD8: ; 0x02231BD8
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r3, r0, #0
+ ldr r0, _02231C50 ; =0x00002B60
+ add r6, r1, #0
+ ldr r1, [r3, r0]
+ sub r0, #0xc
+ lsl r1, r1, #2
+ add r1, r3, r1
+ ldr r1, [r1, r0]
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ add r5, r2, #0
+ ldrb r2, [r1, r0]
+ cmp r2, #0xff
+ bne _02231C2C
+ ldr r1, _02231C54 ; =0x000029A0
+ mov r2, #0x33
+ ldr r0, [r3, r1]
+ add r1, r1, #4
+ ldr r1, [r3, r1]
+ mov r3, #0x57
+ bl FUN_0200A9C4
+ add r4, r0, #0
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r5, [sp, #8]
+ add r0, r6, #0
+ mov r1, #1
+ add r2, r4, #0
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_02231C2C:
+ cmp r2, #0
+ beq _02231C48
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _02231C54 ; =0x000029A0
+ ldr r0, [r3, r0]
+ mov r3, #3
+ bl FUN_0200AD38
+ add sp, #0x10
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02231C48:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_02231C50: .word 0x00002B60
+_02231C54: .word 0x000029A0
+ thumb_func_end MOD83_02231BD8
+
+ thumb_func_start MOD83_02231C58
+MOD83_02231C58: ; 0x02231C58
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ mov r0, #0
+ add r7, r1, #0
+ add r1, r0, #1
+ ldr r0, _02231D38 ; =0x0223AE40
+ ldr r2, _02231D38 ; =0x0223AE40
+ ldr r0, [r0, #0x30]
+ ldr r2, [r2, #0x34]
+ str r0, [sp, #0x14]
+ ldr r0, _02231D3C ; =0x00002B60
+ str r2, [sp, #0x18]
+ ldr r2, [r5, r0]
+ sub r0, #0xc
+ lsl r2, r2, #2
+ add r2, r5, r2
+ ldr r2, [r2, r0]
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ ldrb r0, [r2, r0]
+ add r4, r1, #0
+ add r6, sp, #0x14
+ cmp r0, #0
+ beq _02231C9C
+ ldr r0, _02231D38 ; =0x0223AE40
+ ldr r2, _02231D38 ; =0x0223AE40
+ ldr r0, [r0, #0x38]
+ add r4, r1, #1
+ lsl r1, r1, #3
+ ldr r2, [r2, #0x3c]
+ add r3, r6, r1
+ str r0, [r6, r1]
+ str r2, [r3, #4]
+_02231C9C:
+ mov r1, #0xad
+ lsl r1, r1, #6
+ ldr r0, [r5, r1]
+ add r1, #0x20
+ ldr r1, [r5, r1]
+ add r1, r1, #1
+ bl FUN_0202AE90
+ cmp r0, #0
+ bne _02231CC2
+ ldr r2, _02231D38 ; =0x0223AE40
+ lsl r1, r4, #3
+ ldr r0, [r2, #0x40]
+ add r6, sp, #0x14
+ ldr r2, [r2, #0x44]
+ add r3, r6, r1
+ str r0, [r6, r1]
+ add r4, r4, #1
+ str r2, [r3, #4]
+_02231CC2:
+ ldr r2, _02231D38 ; =0x0223AE40
+ lsl r1, r4, #3
+ ldr r0, [r2, #0x48]
+ add r6, sp, #0x14
+ str r0, [r6, r1]
+ ldr r2, [r2, #0x4c]
+ add r3, r6, r1
+ ldr r0, _02231D40 ; =0x00002B3C
+ str r2, [r3, #4]
+ ldr r6, [r5, r0]
+ add r0, r7, #0
+ bl FUN_02019570
+ add r0, r7, #0
+ bl FUN_02019178
+ add r1, r4, #1
+ mov r0, #4
+ sub r0, r0, r1
+ ldr r1, [r6, #8]
+ lsl r0, r0, #1
+ add r1, r1, r0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp]
+ ldr r1, [r6, #0xc]
+ mov r2, #2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #4]
+ ldr r1, [r6, #0x10]
+ sub r0, r1, r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ ldr r0, _02231D44 ; =0x00002B38
+ add r1, r7, #0
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, _02231D48 ; =0x0000299C
+ ldr r3, [r6, #4]
+ ldr r0, [r5, r0]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ add r0, r5, #0
+ add r1, sp, #0x14
+ add r2, r4, #1
+ add r3, r7, #0
+ bl MOD83_022316F0
+ mov r0, #1
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02231D38: .word 0x0223AE40
+_02231D3C: .word 0x00002B60
+_02231D40: .word 0x00002B3C
+_02231D44: .word 0x00002B38
+_02231D48: .word 0x0000299C
+ thumb_func_end MOD83_02231C58
+
+ thumb_func_start MOD83_02231D4C
+MOD83_02231D4C: ; 0x02231D4C
+ push {r3, lr}
+ add r3, r1, #0
+ ldr r1, _02231D5C ; =0x0223AE40
+ mov r2, #2
+ bl MOD83_022316F0
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_02231D5C: .word 0x0223AE40
+ thumb_func_end MOD83_02231D4C
+
+ thumb_func_start MOD83_02231D60
+MOD83_02231D60: ; 0x02231D60
+ push {r3, lr}
+ add r3, r1, #0
+ ldr r1, _02231D70 ; =0x0223AE60
+ mov r2, #2
+ bl MOD83_022316F0
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_02231D70: .word 0x0223AE60
+ thumb_func_end MOD83_02231D60
+
+ thumb_func_start MOD83_02231D74
+MOD83_02231D74: ; 0x02231D74
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _02231D94 ; =0x00002B70
+ add r4, r1, #0
+ add r0, r5, r0
+ mov r1, #2
+ bl MOD83_022317A8
+ ldr r1, _02231D98 ; =0x0223AE50
+ add r0, r5, #0
+ mov r2, #2
+ add r3, r4, #0
+ bl MOD83_022316F0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02231D94: .word 0x00002B70
+_02231D98: .word 0x0223AE50
+ thumb_func_end MOD83_02231D74
+
+ thumb_func_start MOD83_02231D9C
+MOD83_02231D9C: ; 0x02231D9C
+ push {r3, lr}
+ sub sp, #8
+ mov r3, #1
+ str r3, [sp]
+ ldr r1, _02231DB8 ; =0x000029A0
+ str r3, [sp, #4]
+ ldr r0, [r0, r1]
+ mov r1, #0
+ add r2, r1, #0
+ bl FUN_0200AD38
+ mov r0, #1
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+_02231DB8: .word 0x000029A0
+ thumb_func_end MOD83_02231D9C
+
+ thumb_func_start MOD83_02231DBC
+MOD83_02231DBC: ; 0x02231DBC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x57
+ str r0, [sp, #8]
+ add r6, r2, #0
+ mov r0, #0
+ add r4, r3, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ cmp r4, #0
+ beq _02231DE4
+ mov r0, #0x1b
+ str r0, [r4]
+_02231DE4:
+ ldr r0, _02231DEC ; =0x00002BE0
+ str r6, [r5, r0]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02231DEC: .word 0x00002BE0
+ thumb_func_end MOD83_02231DBC
+
+ thumb_func_start MOD83_02231DF0
+MOD83_02231DF0: ; 0x02231DF0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ str r2, [sp, #0x14]
+ ldr r2, _02231F68 ; =0x00000172
+ ldr r3, [r5]
+ mov r0, #1
+ mov r1, #0x1a
+ ldr r4, _02231F6C ; =0x0223AEB0
+ bl FUN_0200A86C
+ ldr r1, _02231F70 ; =0x000029A4
+ str r0, [r5, r1]
+ ldr r0, [r5]
+ bl FUN_0200AA80
+ ldr r1, _02231F74 ; =0x000029A0
+ str r0, [r5, r1]
+ ldr r1, _02231F78 ; =0x00002B64
+ ldr r0, [sp, #0x14]
+ str r0, [r5, r1]
+ ldr r1, [sp, #0x14]
+ add r0, r5, #0
+ bl MOD83_02232118
+ mov r0, #0
+ str r0, [sp, #0x2c]
+ ldr r0, _02231F7C ; =0x000029A8
+ add r7, r4, #0
+ str r5, [sp, #0x1c]
+ add r6, r5, r0
+_02231E2E:
+ ldr r1, [r7]
+ ldr r0, [sp, #0x14]
+ cmp r0, r1
+ beq _02231E50
+ cmp r1, #2
+ beq _02231E50
+ ldr r1, [sp, #0x1c]
+ ldr r0, _02231F7C ; =0x000029A8
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02231E50
+ add r0, r6, #0
+ bl FUN_02019570
+ add r0, r6, #0
+ bl FUN_02019178
+_02231E50:
+ ldr r0, [sp, #0x1c]
+ add r7, #0x30
+ add r0, #0x10
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x2c]
+ add r6, #0x10
+ add r0, r0, #1
+ str r0, [sp, #0x2c]
+ cmp r0, #0x13
+ blo _02231E2E
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r0, _02231F7C ; =0x000029A8
+ mov r7, #0x31
+ str r5, [sp, #0x24]
+ str r5, [sp, #0x20]
+ add r6, r5, r0
+_02231E72:
+ ldr r1, [r4]
+ ldr r0, [sp, #0x14]
+ cmp r0, r1
+ bne _02231F2E
+ ldr r1, [sp, #0x24]
+ ldr r0, _02231F7C ; =0x000029A8
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02231EBE
+ ldr r1, [sp, #0x20]
+ ldr r0, _02231F80 ; =0x00002AE8
+ mov r2, #0
+ str r7, [r1, r0]
+ ldr r0, [r4, #8]
+ add r1, r6, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [r4, #0xc]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, _02231F84 ; =0x0000299C
+ ldr r3, [r4, #4]
+ ldr r0, [r5, r0]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+_02231EBE:
+ ldr r0, [r4, #0x14]
+ ldr r1, [r4, #0x1c]
+ lsl r0, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02002E4C
+ add r1, r0, #0
+ add r0, r6, #0
+ bl FUN_02019620
+ ldr r0, [r4, #0x18]
+ ldr r3, [r4, #0x24]
+ str r0, [sp, #0x28]
+ ldr r2, [sp, #0x28]
+ add r0, r5, #0
+ add r1, r6, #0
+ blx r3
+ cmp r0, #1
+ bne _02231F20
+ ldr r2, [r4, #0x20]
+ cmp r2, #0
+ beq _02231F20
+ ldr r0, _02231F74 ; =0x000029A0
+ ldr r1, _02231F70 ; =0x000029A4
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ ldr r3, [r5]
+ bl FUN_0200A9C4
+ str r0, [sp, #0x30]
+ ldr r0, [r4, #0x2c]
+ ldr r2, [sp, #0x30]
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x28]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r1, [r4, #0x14]
+ ldr r3, [r4, #0x28]
+ add r0, r6, #0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x30]
+ bl FUN_02021A20
+_02231F20:
+ add r0, r6, #0
+ bl FUN_020191D0
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #0x10]
+ mul r0, r1
+ add r7, r7, r0
+_02231F2E:
+ ldr r0, [sp, #0x24]
+ add r4, #0x30
+ add r0, #0x10
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x20]
+ add r6, #0x10
+ add r0, r0, #4
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, #0x13
+ blo _02231E72
+ ldr r0, _02231F70 ; =0x000029A4
+ ldr r0, [r5, r0]
+ bl FUN_0200A8B8
+ ldr r0, _02231F74 ; =0x000029A0
+ ldr r0, [r5, r0]
+ bl FUN_0200AB18
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ bne _02231F64
+ add r0, r5, #0
+ bl MOD83_0223227C
+_02231F64:
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02231F68: .word 0x00000172
+_02231F6C: .word 0x0223AEB0
+_02231F70: .word 0x000029A4
+_02231F74: .word 0x000029A0
+_02231F78: .word 0x00002B64
+_02231F7C: .word 0x000029A8
+_02231F80: .word 0x00002AE8
+_02231F84: .word 0x0000299C
+ thumb_func_end MOD83_02231DF0
+
+ thumb_func_start MOD83_02231F88
+MOD83_02231F88: ; 0x02231F88
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r7, r3, #0
+ mov r3, #0x30
+ ldr r0, _02232084 ; =0x0223AEB0
+ mul r3, r2
+ add r6, r1, #0
+ add r4, r0, r3
+ ldr r0, [r6]
+ cmp r0, #0
+ bne _02231FD2
+ ldr r0, [r4, #8]
+ mov r2, #2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [r4, #0xc]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, _02232088 ; =0x0000299C
+ ldr r3, [r4, #4]
+ ldr r0, [r5, r0]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+_02231FD2:
+ ldr r1, [r4, #0x1c]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02019620
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ beq _02231FFE
+ ldr r2, _0223208C ; =0x00000172
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #0x57
+ bl FUN_0200A86C
+ ldr r1, _02232090 ; =0x000029A4
+ str r0, [r5, r1]
+ mov r0, #0x57
+ bl FUN_0200AA80
+ ldr r1, _02232094 ; =0x000029A0
+ str r0, [r5, r1]
+_02231FFE:
+ ldr r0, _02232098 ; =0x00002B38
+ ldr r2, _0223209C ; =0x00010200
+ str r7, [r5, r0]
+ add r0, r0, #4
+ str r4, [r5, r0]
+ ldr r3, [r4, #0x24]
+ add r0, r5, #0
+ add r1, r6, #0
+ blx r3
+ ldr r2, [r4, #0x20]
+ cmp r2, #0
+ beq _02232054
+ ldr r1, _02232094 ; =0x000029A0
+ mov r3, #0x57
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl FUN_0200A9C4
+ str r0, [sp, #0x14]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x18]
+ ldr r2, [sp, #0x14]
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r1, [r4, #0x14]
+ add r0, r6, #0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x14]
+ bl FUN_02021A20
+ ldr r0, _02232090 ; =0x000029A4
+ ldr r0, [r5, r0]
+ bl FUN_0200A8B8
+ ldr r0, _02232094 ; =0x000029A0
+ ldr r0, [r5, r0]
+ bl FUN_0200AB18
+_02232054:
+ ldr r0, _022320A0 ; =0x00002B70
+ add r0, r5, r0
+ cmp r6, r0
+ bne _0223206A
+ add r0, r6, #0
+ mov r1, #0
+ mov r2, #0x13
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ b _02232076
+_0223206A:
+ add r0, r6, #0
+ mov r1, #0
+ mov r2, #0xa
+ mov r3, #0xe
+ bl FUN_0200CCA4
+_02232076:
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #0x10]
+ mul r0, r1
+ add r0, r7, r0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02232084: .word 0x0223AEB0
+_02232088: .word 0x0000299C
+_0223208C: .word 0x00000172
+_02232090: .word 0x000029A4
+_02232094: .word 0x000029A0
+_02232098: .word 0x00002B38
+_0223209C: .word 0x00010200
+_022320A0: .word 0x00002B70
+ thumb_func_end MOD83_02231F88
+
+ thumb_func_start MOD83_022320A4
+MOD83_022320A4: ; 0x022320A4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ add r7, r4, #0
+_022320AE:
+ add r4, r4, r6
+ cmp r4, #3
+ bne _022320B6
+ mov r4, #0
+_022320B6:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _022320C0
+ mov r4, #2
+_022320C0:
+ cmp r7, r4
+ beq _022320D4
+ mov r0, #0xad
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_0202AE4C
+ cmp r0, #0
+ beq _022320AE
+_022320D4:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_022320A4
+
+ thumb_func_start MOD83_022320D8
+MOD83_022320D8: ; 0x022320D8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r2, #0
+ mov r2, #1
+ add r5, r0, #0
+ str r2, [sp]
+ add r6, r3, #0
+ ldr r3, [r5]
+ mov r0, #0x74
+ bl FUN_02006C98
+ add r1, sp, #4
+ add r7, r0, #0
+ bl FUN_020B0180
+ ldr r0, _02232114 ; =0x0000299C
+ ldr r2, [sp, #4]
+ lsl r1, r4, #0x18
+ ldr r0, [r5, r0]
+ lsr r1, r1, #0x18
+ add r2, #0xc
+ add r3, r6, #0
+ bl FUN_02017DFC
+ add r0, r7, #0
+ bl FUN_02016A18
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02232114: .word 0x0000299C
+ thumb_func_end MOD83_022320D8
+
+ thumb_func_start MOD83_02232118
+MOD83_02232118: ; 0x02232118
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #1
+ lsl r0, r0, #8
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r2, #0
+ add r4, r1, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ ldr r0, [r5]
+ ldr r2, _02232204 ; =0x0000299C
+ str r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r0, #0x74
+ mov r1, #6
+ bl FUN_0200687C
+ cmp r4, #0
+ beq _0223215E
+ cmp r4, #1
+ beq _0223217E
+ b _0223219C
+_0223215E:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ ldr r0, [r5]
+ ldr r2, _02232204 ; =0x0000299C
+ str r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r0, #0x74
+ mov r1, #4
+ bl FUN_020068C8
+ b _0223219C
+_0223217E:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ ldr r0, [r5]
+ ldr r2, _02232204 ; =0x0000299C
+ str r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r0, #0x74
+ mov r1, #5
+ bl FUN_020068C8
+_0223219C:
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r1, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ add r3, r0, #0
+ add r2, r1, #0
+ add r3, #0xec
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ ldr r0, [r5]
+ ldr r2, _02232204 ; =0x0000299C
+ str r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r0, #0x74
+ mov r3, #3
+ bl FUN_0200687C
+ mov r2, #3
+ add r0, r5, #0
+ mov r1, #2
+ lsl r3, r2, #9
+ bl MOD83_022320D8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #0xb
+ str r0, [sp, #8]
+ ldr r0, _02232204 ; =0x0000299C
+ mov r2, #0
+ ldr r0, [r5, r0]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020186B4
+ ldr r0, _02232204 ; =0x0000299C
+ mov r1, #3
+ ldr r0, [r5, r0]
+ bl FUN_02017CD0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02232204: .word 0x0000299C
+ thumb_func_end MOD83_02232118
+
+ thumb_func_start MOD83_02232208
+MOD83_02232208: ; 0x02232208
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl FUN_02006278
+ ldr r1, _02232270 ; =0x00002B68
+ ldr r0, [r0, r1]
+ bl FUN_02001204
+ add r4, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _0223222E
+ add r0, r0, #1
+ cmp r4, r0
+ beq _0223226C
+ b _02232248
+_0223222E:
+ ldr r0, _02232274 ; =0x000005DC
+ bl FUN_020054C8
+ cmp r6, #0
+ beq _0223226C
+ add r0, r7, #0
+ blx r6
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0223226C
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_02232248:
+ ldr r0, _02232274 ; =0x000005DC
+ bl FUN_020054C8
+ cmp r4, #0
+ beq _0223226C
+ cmp r4, #0x1e
+ bhs _0223225A
+ str r4, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223225A:
+ ldr r0, _02232278 ; =0x0223B89C
+ str r4, [r0]
+ add r0, r7, #0
+ blx r4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0223226C
+ str r0, [r5]
+_0223226C:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02232270: .word 0x00002B68
+_02232274: .word 0x000005DC
+_02232278: .word 0x0223B89C
+ thumb_func_end MOD83_02232208
+
+ thumb_func_start MOD83_0223227C
+MOD83_0223227C: ; 0x0223227C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ ldr r1, _02232398 ; =0x00002D6C
+ add r5, r0, #0
+ ldr r0, [r5, r1]
+ cmp r0, #0
+ bne _022322DC
+ add r0, r1, #4
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _022322DC
+ add r1, #8
+ ldr r0, [r5, r1]
+ cmp r0, #0
+ bne _022322DC
+ bl MOD83_02238B38
+ cmp r0, #1
+ bne _022322A8
+ add r0, r5, #0
+ bl MOD83_022315F8
+_022322A8:
+ bl MOD83_02238AFC
+ bl MOD83_02238B4C
+ mov r0, #0x18
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0x1a
+ mov r2, #0x17
+ mov r3, #0x19
+ bl MOD83_02238BC4
+ bl FUN_0206B888
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r2, #1
+ str r0, [sp, #4]
+ mov r0, #0x13
+ mov r3, #0x60
+ bl FUN_02006930
+_022322DC:
+ mov r0, #0xb2
+ mov r6, #0
+ str r0, [sp, #0x10]
+ str r6, [sp, #8]
+ add r4, r5, #0
+ mov r7, #0x64
+_022322E8:
+ ldr r0, _0223239C ; =0x00002B60
+ ldr r0, [r5, r0]
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, _022323A0 ; =0x00002B54
+ ldr r1, [r1, r0]
+ ldr r0, [sp, #8]
+ add r1, r1, r0
+ ldr r0, _022323A4 ; =0x0000034A
+ ldrh r0, [r1, r0]
+ str r0, [sp, #0xc]
+ cmp r0, #0
+ bne _02232312
+ ldr r0, _02232398 ; =0x00002D6C
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0223237C
+ mov r1, #0
+ bl FUN_020200A0
+ b _0223237C
+_02232312:
+ add r0, r6, #0
+ add r0, #0xa
+ str r0, [sp]
+ ldr r1, _02232398 ; =0x00002D6C
+ ldr r2, [sp, #0x10]
+ ldr r1, [r4, r1]
+ mov r0, #0
+ mov r3, #0x10
+ bl MOD83_02238DBC
+ ldr r1, _02232398 ; =0x00002D6C
+ str r0, [r4, r1]
+ mov r1, #0
+ ldr r0, [sp, #0xc]
+ add r2, r1, #0
+ bl FUN_0206B6D4
+ add r1, r0, #0
+ ldr r0, [r5]
+ mov r2, #0
+ str r0, [sp]
+ mov r0, #0x13
+ add r3, sp, #0x18
+ bl FUN_02006BB0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ mov r1, #2
+ ldr r0, [r0, #0x14]
+ lsl r1, r1, #8
+ bl DC_FlushRange
+ ldr r0, [sp, #0x18]
+ mov r2, #2
+ ldr r0, [r0, #0x14]
+ lsl r1, r7, #5
+ lsl r2, r2, #8
+ bl GX_LoadOBJ
+ mov r1, #0
+ ldr r0, [sp, #0xc]
+ add r2, r1, #0
+ bl FUN_0206B7BC
+ add r1, r0, #0
+ ldr r0, _02232398 ; =0x00002D6C
+ add r1, r1, #3
+ ldr r0, [r4, r0]
+ bl FUN_02020248
+ ldr r0, [sp, #0x14]
+ bl FUN_02016A18
+_0223237C:
+ ldr r0, [sp, #8]
+ add r6, r6, #1
+ add r0, r0, #2
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x10]
+ add r4, r4, #4
+ add r0, #0x19
+ add r7, #0x10
+ str r0, [sp, #0x10]
+ cmp r6, #3
+ blt _022322E8
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02232398: .word 0x00002D6C
+_0223239C: .word 0x00002B60
+_022323A0: .word 0x00002B54
+_022323A4: .word 0x0000034A
+ thumb_func_end MOD83_0223227C
+
+ thumb_func_start MOD83_022323A8
+MOD83_022323A8: ; 0x022323A8
+ push {r4, lr}
+ mov r2, #2
+ add r4, r0, #0
+ mov r0, #3
+ mov r1, #0x57
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ ldr r1, _0223240C ; =0x00003CF4
+ add r0, r4, #0
+ mov r2, #0x57
+ bl FUN_02006268
+ ldr r2, _0223240C ; =0x00003CF4
+ mov r1, #0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x57
+ bl FUN_02016B94
+ ldr r1, _02232410 ; =0x0000299C
+ str r0, [r4, r1]
+ mov r0, #0x57
+ str r0, [r4]
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ ldr r0, _02232414 ; =0x00002B60
+ mov r1, #2
+ str r1, [r4, r0]
+ mov r1, #1
+ add r0, #0x7c
+ str r1, [r4, r0]
+ mov r0, #0x57
+ bl MOD83_02238770
+ mov r2, #3
+ mov r0, #0
+ mov r1, #0x5b
+ lsl r2, r2, #8
+ bl FUN_0201681C
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_0223240C: .word 0x00003CF4
+_02232410: .word 0x0000299C
+_02232414: .word 0x00002B60
+ thumb_func_end MOD83_022323A8
+
+ thumb_func_start MOD83_02232418
+MOD83_02232418: ; 0x02232418
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_020129C8
+ mov r0, #3
+ lsl r0, r0, #0xa
+ ldr r0, [r4, r0]
+ bl FUN_0201299C
+ ldr r1, _02232438 ; =0x04000010
+ mov r2, #8
+ mov r3, #1
+ bl FUN_020129D8
+ pop {r4, pc}
+ nop
+_02232438: .word 0x04000010
+ thumb_func_end MOD83_02232418
+
+ thumb_func_start MOD83_0223243C
+MOD83_0223243C: ; 0x0223243C
+ push {r3, r4, r5, lr}
+ ldr r4, _02232490 ; =0x000030D0
+ ldr r5, _02232494 ; =0x00000C14
+ add r4, r0, r4
+ add r0, r5, #0
+ str r1, [r4, r5]
+ sub r0, #0xc
+ str r2, [r4, r0]
+ add r0, r5, #0
+ sub r0, #8
+ sub r5, #0x14
+ str r3, [r4, r0]
+ ldr r0, [r4, r5]
+ cmp r0, #0
+ bne _0223246E
+ mov r2, #6
+ lsl r2, r2, #8
+ mov r0, #0x57
+ add r1, r4, #0
+ add r2, r4, r2
+ bl FUN_02012944
+ mov r1, #3
+ lsl r1, r1, #0xa
+ str r0, [r4, r1]
+_0223246E:
+ ldr r0, _02232498 ; =0x00000C04
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02232486
+ mov r2, #1
+ ldr r0, _0223249C ; =MOD83_02232418
+ add r1, r4, #0
+ lsl r2, r2, #0xa
+ bl FUN_0200CA60
+ ldr r1, _02232498 ; =0x00000C04
+ str r0, [r4, r1]
+_02232486:
+ mov r0, #0xc1
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02232490: .word 0x000030D0
+_02232494: .word 0x00000C14
+_02232498: .word 0x00000C04
+_0223249C: .word MOD83_02232418
+ thumb_func_end MOD83_0223243C
+
+ thumb_func_start MOD83_022324A0
+MOD83_022324A0: ; 0x022324A0
+ push {r4, lr}
+ ldr r1, _022324D4 ; =0x000030D0
+ add r4, r0, r1
+ mov r0, #3
+ lsl r0, r0, #0xa
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _022324B4
+ bl FUN_02012974
+_022324B4:
+ ldr r0, _022324D8 ; =0x00000C04
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _022324C0
+ bl FUN_0200CAB4
+_022324C0:
+ mov r0, #3
+ mov r1, #0
+ lsl r0, r0, #0xa
+ str r1, [r4, r0]
+ add r0, r0, #4
+ str r1, [r4, r0]
+ bl FUN_020129C8
+ pop {r4, pc}
+ nop
+_022324D4: .word 0x000030D0
+_022324D8: .word 0x00000C04
+ thumb_func_end MOD83_022324A0
+
+ thumb_func_start MOD83_022324DC
+MOD83_022324DC: ; 0x022324DC
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r1, _022325E4 ; =0x000030D0
+ mov r5, #0x15
+ add r4, r0, r1
+ mov r0, #0xc1
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ lsl r5, r5, #0xe
+ cmp r1, #0
+ bne _022324F4
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022324F4:
+ add r1, r0, #4
+ ldr r1, [r4, r1]
+ cmp r1, #1
+ bne _02232542
+ add r1, r0, #0
+ sub r1, #8
+ ldr r2, [r4, r1]
+ sub r1, r0, #4
+ ldr r1, [r4, r1]
+ add r2, r2, r1
+ add r1, r0, #0
+ sub r1, #8
+ str r2, [r4, r1]
+ sub r1, r0, #4
+ ldr r2, [r4, r1]
+ add r1, r2, #0
+ add r2, r2, r1
+ sub r1, r0, #4
+ str r2, [r4, r1]
+ add r1, r0, #0
+ sub r1, #8
+ ldr r2, [r4, r1]
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r2, r1, #0xc
+ mov r1, #0xfa
+ lsl r1, r1, #2
+ cmp r2, r1
+ ble _0223257C
+ mov r2, #0
+ add r1, r0, #0
+ str r2, [r4, r0]
+ sub r1, #8
+ str r2, [r4, r1]
+ sub r0, r0, #4
+ mov r5, #0xa8
+ str r2, [r4, r0]
+ b _0223257C
+_02232542:
+ add r1, r0, #0
+ sub r1, #8
+ ldr r2, [r4, r1]
+ sub r1, r0, #4
+ ldr r1, [r4, r1]
+ sub r2, r2, r1
+ add r1, r0, #0
+ sub r1, #8
+ str r2, [r4, r1]
+ sub r1, r0, #4
+ ldr r2, [r4, r1]
+ lsr r1, r2, #0x1f
+ add r1, r2, r1
+ asr r2, r1, #1
+ sub r1, r0, #4
+ str r2, [r4, r1]
+ mov r2, #1
+ ldr r1, [r4, r1]
+ lsl r2, r2, #0xa
+ cmp r1, r2
+ bge _0223257C
+ mov r1, #0
+ lsl r3, r2, #2
+ add r2, r0, #0
+ str r1, [r4, r0]
+ sub r2, #8
+ str r3, [r4, r2]
+ sub r0, r0, #4
+ str r1, [r4, r0]
+_0223257C:
+ mov r0, #3
+ lsl r0, r0, #0xa
+ ldr r0, [r4, r0]
+ bl FUN_02012988
+ add r2, r0, #0
+ mov r0, #0x54
+ add r3, r0, #0
+ add r3, #0xfc
+_0223258E:
+ asr r1, r5, #0xb
+ lsr r1, r1, #0x14
+ add r1, r5, r1
+ asr r1, r1, #0xc
+ bpl _0223259A
+ mov r1, #0
+_0223259A:
+ cmp r1, #0xa8
+ ble _022325A0
+ mov r1, #0xa8
+_022325A0:
+ lsl r6, r3, #1
+ add r7, r2, r6
+ sub r6, r1, r0
+ strh r6, [r7, #6]
+ ldrh r6, [r7, #6]
+ sub r1, r0, r1
+ add r3, r3, #4
+ strh r6, [r7, #2]
+ mov r6, #0xa8
+ sub r6, r6, r0
+ lsl r6, r6, #3
+ add r6, r2, r6
+ strh r1, [r6, #6]
+ ldrh r1, [r6, #6]
+ add r0, r0, #1
+ strh r1, [r6, #2]
+ ldr r1, _022325E8 ; =0x00000C08
+ ldr r1, [r4, r1]
+ add r5, r5, r1
+ cmp r0, #0xa8
+ blt _0223258E
+ mov r1, #6
+ add r0, r2, #0
+ lsl r1, r1, #8
+ bl DC_FlushRange
+ mov r0, #3
+ lsl r0, r0, #0xa
+ ldr r0, [r4, r0]
+ bl FUN_020129B4
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022325E4: .word 0x000030D0
+_022325E8: .word 0x00000C08
+ thumb_func_end MOD83_022324DC
+
+ thumb_func_start MOD83_022325EC
+MOD83_022325EC: ; 0x022325EC
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_022394CC
+ sub r0, r0, #2
+ cmp r0, #1
+ bhi _02232606
+ ldr r0, _02232608 ; =0x0000061B
+ bl FUN_020054C8
+ ldr r0, _0223260C ; =0x00003CE8
+ mov r1, #0
+ str r1, [r4, r0]
+_02232606:
+ pop {r4, pc}
+ .align 2, 0
+_02232608: .word 0x0000061B
+_0223260C: .word 0x00003CE8
+ thumb_func_end MOD83_022325EC
+
+ thumb_func_start MOD83_02232610
+MOD83_02232610: ; 0x02232610
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02232658 ; =0x00002B60
+ ldr r1, [r4, r0]
+ sub r0, #0xc
+ lsl r1, r1, #2
+ add r1, r4, r1
+ ldr r2, [r1, r0]
+ mov r0, #0x35
+ lsl r0, r0, #4
+ ldrb r1, [r2, r0]
+ cmp r1, #0xff
+ beq _0223262E
+ add r1, r1, #1
+ strb r1, [r2, r0]
+_0223262E:
+ ldr r0, _02232658 ; =0x00002B60
+ ldr r1, [r4, r0]
+ sub r0, #0xc
+ lsl r1, r1, #2
+ add r1, r4, r1
+ ldr r2, [r1, r0]
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ ldrb r1, [r2, r0]
+ cmp r1, #0xff
+ beq _02232648
+ sub r1, r1, #1
+ strb r1, [r2, r0]
+_02232648:
+ ldr r0, _0223265C ; =0x00002B44
+ ldr r0, [r4, r0]
+ bl MOD83_022394BC
+ ldr r1, _02232660 ; =MOD83_022325EC
+ ldr r0, _02232664 ; =0x00003CE8
+ str r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+_02232658: .word 0x00002B60
+_0223265C: .word 0x00002B44
+_02232660: .word MOD83_022325EC
+_02232664: .word 0x00003CE8
+ thumb_func_end MOD83_02232610
+
+ thumb_func_start MOD83_02232668
+MOD83_02232668: ; 0x02232668
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r2, #0
+ ldr r2, _02232768 ; =0x021C48B8
+ add r6, r1, #0
+ ldr r3, [r2, #0x48]
+ ldr r1, _0223276C ; =0x00003CEC
+ add r5, r0, #0
+ mov r2, #0x10
+ ldr r0, [r5, r1]
+ tst r2, r3
+ beq _02232686
+ cmp r0, #1
+ beq _02232686
+ mov r2, #1
+ str r2, [r5, r1]
+_02232686:
+ ldr r1, _02232768 ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ mov r1, #0x20
+ tst r1, r2
+ beq _0223269C
+ ldr r1, _0223276C ; =0x00003CEC
+ ldr r2, [r5, r1]
+ cmp r2, #0
+ beq _0223269C
+ mov r2, #0
+ str r2, [r5, r1]
+_0223269C:
+ ldr r1, _0223276C ; =0x00003CEC
+ ldr r1, [r5, r1]
+ cmp r0, r1
+ beq _022326CC
+ cmp r1, #0
+ bne _022326AC
+ mov r1, #1
+ b _022326AE
+_022326AC:
+ mov r1, #0
+_022326AE:
+ ldr r0, _02232770 ; =0x00002D64
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+ ldr r0, _0223276C ; =0x00003CEC
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _022326C2
+ mov r1, #1
+ b _022326C4
+_022326C2:
+ mov r1, #0
+_022326C4:
+ ldr r0, _02232774 ; =0x00002D68
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+_022326CC:
+ ldr r0, _02232768 ; =0x021C48B8
+ mov r4, #0
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ add r2, r1, #0
+ tst r2, r0
+ beq _022326DE
+ add r4, r0, #0
+ b _0223270E
+_022326DE:
+ mov r0, #1
+ and r1, r0
+ beq _022326F4
+ cmp r6, #0
+ beq _022326F4
+ ldr r2, _0223276C ; =0x00003CEC
+ ldr r2, [r5, r2]
+ cmp r2, #0
+ bne _022326F4
+ add r4, r0, #0
+ b _0223270E
+_022326F4:
+ cmp r1, #0
+ beq _02232704
+ ldr r0, _0223276C ; =0x00003CEC
+ ldr r0, [r5, r0]
+ cmp r0, #1
+ bne _02232704
+ mov r4, #2
+ b _0223270E
+_02232704:
+ cmp r1, #0
+ beq _0223270E
+ cmp r6, #0
+ bne _0223270E
+ mov r4, #3
+_0223270E:
+ cmp r4, #1
+ bne _02232746
+ ldr r0, _02232778 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xab
+ bl FUN_02031588
+ mov r3, #0xa
+ ldr r1, _0223277C ; =0x00002BD4
+ mov r0, #1
+ str r0, [r5, r1]
+ mov r0, #0x15
+ sub r1, #0x64
+ str r0, [r7]
+ add r0, r5, #0
+ add r1, r5, r1
+ mov r2, #0x11
+ lsl r3, r3, #6
+ bl MOD83_02231F88
+ ldr r0, _02232780 ; =0x00002B70
+ mov r1, #0x13
+ add r0, r5, r0
+ bl FUN_0200D858
+ ldr r1, _02232784 ; =0x00003CF0
+ str r0, [r5, r1]
+_02232746:
+ cmp r4, #2
+ bne _0223275A
+ ldr r0, _02232778 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0x13
+ bl MOD83_02233084
+_0223275A:
+ cmp r4, #3
+ bne _02232764
+ ldr r0, _02232778 ; =0x000005DC
+ bl FUN_020054C8
+_02232764:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02232768: .word 0x021C48B8
+_0223276C: .word 0x00003CEC
+_02232770: .word 0x00002D64
+_02232774: .word 0x00002D68
+_02232778: .word 0x000005DC
+_0223277C: .word 0x00002BD4
+_02232780: .word 0x00002B70
+_02232784: .word 0x00003CF0
+ thumb_func_end MOD83_02232668
+
+ thumb_func_start MOD83_02232788
+MOD83_02232788: ; 0x02232788
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r6, r0, #0
+ bl FUN_02006278
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #0x1d
+ bls _0223279E
+ b _02232CF4
+_0223279E:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022327AA: ; jump table
+ .short _022327E6 - _022327AA - 2 ; case 0
+ .short _02232854 - _022327AA - 2 ; case 1
+ .short _02232866 - _022327AA - 2 ; case 2
+ .short _022328DC - _022327AA - 2 ; case 3
+ .short _02232956 - _022327AA - 2 ; case 4
+ .short _0223297E - _022327AA - 2 ; case 5
+ .short _0223299E - _022327AA - 2 ; case 6
+ .short _022329D6 - _022327AA - 2 ; case 7
+ .short _022329FA - _022327AA - 2 ; case 8
+ .short _02232A20 - _022327AA - 2 ; case 9
+ .short _02232A4C - _022327AA - 2 ; case 10
+ .short _02232A88 - _022327AA - 2 ; case 11
+ .short _02232AAC - _022327AA - 2 ; case 12
+ .short _02232AB8 - _022327AA - 2 ; case 13
+ .short _02232AC4 - _022327AA - 2 ; case 14
+ .short _02232AD6 - _022327AA - 2 ; case 15
+ .short _02232AE2 - _022327AA - 2 ; case 16
+ .short _02232B24 - _022327AA - 2 ; case 17
+ .short _02232B3A - _022327AA - 2 ; case 18
+ .short _02232BDC - _022327AA - 2 ; case 19
+ .short _02232BE8 - _022327AA - 2 ; case 20
+ .short _02232C36 - _022327AA - 2 ; case 21
+ .short _02232C26 - _022327AA - 2 ; case 22
+ .short _02232C6A - _022327AA - 2 ; case 23
+ .short _02232C7E - _022327AA - 2 ; case 24
+ .short _02232CB8 - _022327AA - 2 ; case 25
+ .short _02232CC8 - _022327AA - 2 ; case 26
+ .short _02232CD4 - _022327AA - 2 ; case 27
+ .short _02232CE4 - _022327AA - 2 ; case 28
+ .short _02232CF4 - _022327AA - 2 ; case 29
+_022327E6:
+ add r0, r6, #0
+ bl FUN_0200628C
+ ldr r1, [r0, #8]
+ ldr r0, _02232B54 ; =0x00002B44
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ bl FUN_0202251C
+ mov r1, #0xad
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ add r0, r1, #4
+ ldr r0, [r4, r0]
+ bl LoadPlayerDataAddress
+ ldr r1, _02232B58 ; =0x00002B48
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ bl FUN_02025084
+ ldr r1, _02232B5C ; =0x00002B4C
+ str r0, [r4, r1]
+ sub r1, #0xc
+ ldr r0, [r4, r1]
+ mov r1, #0
+ bl FUN_0202AC64
+ ldr r1, _02232B60 ; =0x00002B54
+ str r0, [r4, r1]
+ sub r1, #0x14
+ ldr r0, [r4, r1]
+ mov r1, #1
+ bl FUN_0202AC64
+ ldr r1, _02232B64 ; =0x00002B58
+ str r0, [r4, r1]
+ sub r1, #0x18
+ ldr r0, [r4, r1]
+ mov r1, #2
+ bl FUN_0202AC64
+ ldr r1, _02232B68 ; =0x00002B5C
+ mov r2, #1
+ str r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD83_022320A4
+ ldr r1, _02232B6C ; =0x00002B60
+ str r0, [r4, r1]
+ mov r0, #1
+ str r0, [r5]
+ b _02232CF4
+_02232854:
+ bl MOD83_022331C0
+ ldr r0, _02232B70 ; =0x0000299C
+ ldr r0, [r4, r0]
+ bl MOD83_022331E0
+ mov r0, #2
+ str r0, [r5]
+ b _02232CF4
+_02232866:
+ bl FUN_0201BD5C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_02232118
+ mov r1, #0x1e
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x57
+ bl FUN_02002ED0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x57
+ str r0, [sp, #4]
+ ldr r0, _02232B70 ; =0x0000299C
+ mov r2, #1
+ ldr r0, [r4, r0]
+ mov r3, #0xd
+ bl FUN_0200CB00
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x57
+ str r0, [sp, #4]
+ ldr r0, _02232B70 ; =0x0000299C
+ mov r1, #0
+ ldr r0, [r4, r0]
+ mov r2, #0xa
+ mov r3, #0xe
+ bl FUN_0200CB00
+ ldr r0, _02232B5C ; =0x00002B4C
+ mov r1, #0
+ ldr r0, [r4, r0]
+ mov r2, #0x13
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x57
+ str r0, [sp, #4]
+ ldr r0, _02232B70 ; =0x0000299C
+ mov r3, #0xa
+ ldr r0, [r4, r0]
+ bl FUN_0200CD68
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD83_02231DF0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #3
+ add r3, r5, #0
+ bl MOD83_02231DBC
+ b _02232CF4
+_022328DC:
+ ldr r1, _02232B6C ; =0x00002B60
+ mov r2, #0x40
+ ldr r6, [r4, r1]
+ ldr r1, _02232B74 ; =0x021C48B8
+ ldr r1, [r1, #0x48]
+ add r3, r1, #0
+ tst r3, r2
+ beq _022328F8
+ add r1, r6, #0
+ sub r2, #0x41
+ bl MOD83_022320A4
+ add r6, r0, #0
+ b _02232934
+_022328F8:
+ mov r2, #0x80
+ tst r2, r1
+ beq _0223290A
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD83_022320A4
+ add r6, r0, #0
+ b _02232934
+_0223290A:
+ mov r0, #2
+ tst r0, r1
+ beq _02232924
+ ldr r0, _02232B78 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x1c
+ add r3, r5, #0
+ bl MOD83_02231DBC
+ b _02232934
+_02232924:
+ mov r0, #1
+ tst r0, r1
+ beq _02232934
+ ldr r0, _02232B78 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #4
+ str r0, [r5]
+_02232934:
+ ldr r0, _02232B6C ; =0x00002B60
+ ldr r0, [r4, r0]
+ cmp r0, r6
+ bne _0223293E
+ b _02232CF4
+_0223293E:
+ mov r0, #6
+ lsl r0, r0, #8
+ bl FUN_020054C8
+ ldr r0, _02232B6C ; =0x00002B60
+ mov r1, #1
+ str r6, [r4, r0]
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD83_02231DF0
+ b _02232CF4
+_02232956:
+ ldr r1, _02232B7C ; =0x00002B70
+ mov r3, #0xa
+ add r1, r4, r1
+ mov r2, #7
+ lsl r3, r3, #6
+ bl MOD83_02231F88
+ ldr r3, _02232B80 ; =0x00002B90
+ mov r2, #8
+ add r1, r3, #0
+ str r0, [r4, r3]
+ sub r1, #0x10
+ ldr r3, [r4, r3]
+ add r0, r4, #0
+ add r1, r4, r1
+ bl MOD83_02231F88
+ mov r0, #5
+ str r0, [r5]
+ b _02232CF4
+_0223297E:
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, #0
+ bl MOD83_02232208
+ ldr r0, _02232B74 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ beq _02232A54
+ ldr r0, _02232B78 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xb
+ str r0, [r5]
+ b _02232CF4
+_0223299E:
+ mov r0, #6
+ lsl r0, r0, #8
+ bl FUN_020054C8
+ mov r0, #0x10
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, _02232B7C ; =0x00002B70
+ mov r1, #0
+ add r0, r4, r0
+ bl MOD83_022316D8
+ mov r0, #0xae
+ lsl r0, r0, #6
+ add r0, r4, r0
+ mov r1, #0
+ bl MOD83_022316C0
+ mov r1, #1
+ add r0, r4, #0
+ lsl r2, r1, #0xc
+ mov r3, #0x66
+ bl MOD83_0223243C
+ mov r0, #7
+ str r0, [r5]
+ b _02232CF4
+_022329D6:
+ bl MOD83_022324DC
+ cmp r0, #0
+ beq _02232A54
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD83_02231DF0
+ ldr r2, _02232B84 ; =0x00708000
+ add r0, r4, #0
+ mov r1, #0
+ lsr r3, r2, #1
+ bl MOD83_0223243C
+ mov r0, #8
+ str r0, [r5]
+ b _02232CF4
+_022329FA:
+ bl MOD83_022324DC
+ ldr r0, _02232B74 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r1, r0
+ beq _02232A54
+ lsl r0, r0, #9
+ bl FUN_020054C8
+ mov r1, #1
+ add r0, r4, #0
+ lsl r2, r1, #0xc
+ mov r3, #0x66
+ bl MOD83_0223243C
+ mov r0, #9
+ str r0, [r5]
+ b _02232CF4
+_02232A20:
+ bl MOD83_022324DC
+ cmp r0, #0
+ beq _02232A54
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD83_02231DF0
+ ldr r2, _02232B84 ; =0x00708000
+ add r0, r4, #0
+ mov r1, #0
+ lsr r3, r2, #1
+ bl MOD83_0223243C
+ mov r0, #0x10
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #0xa
+ str r0, [r5]
+ b _02232CF4
+_02232A4C:
+ bl MOD83_022324DC
+ cmp r0, #0
+ bne _02232A56
+_02232A54:
+ b _02232CF4
+_02232A56:
+ ldr r0, _02232B7C ; =0x00002B70
+ mov r1, #0
+ add r0, r4, r0
+ mov r2, #0x13
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r0, #0xae
+ lsl r0, r0, #6
+ add r0, r4, r0
+ mov r1, #0
+ mov r2, #0xa
+ mov r3, #0xe
+ bl FUN_0200CCA4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ bl MOD83_022324A0
+ mov r0, #5
+ str r0, [r5]
+ b _02232CF4
+_02232A88:
+ bl MOD83_02231A00
+ ldr r0, _02232B7C ; =0x00002B70
+ mov r1, #0
+ add r0, r4, r0
+ bl MOD83_022316D8
+ ldr r0, _02232B7C ; =0x00002B70
+ add r0, r4, r0
+ bl FUN_02019570
+ ldr r0, _02232B7C ; =0x00002B70
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #3
+ str r0, [r5]
+ b _02232CF4
+_02232AAC:
+ ldr r2, _02232B88 ; =MOD83_022319D0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD83_02232208
+ b _02232CF4
+_02232AB8:
+ ldr r2, _02232B88 ; =MOD83_022319D0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD83_02232208
+ b _02232CF4
+_02232AC4:
+ mov r1, #0xae
+ lsl r1, r1, #6
+ ldr r2, _02232B8C ; =0x00010200
+ add r1, r4, r1
+ bl MOD83_02231D74
+ mov r0, #0xd
+ str r0, [r5]
+ b _02232CF4
+_02232AD6:
+ mov r1, #0
+ mov r2, #0x10
+ add r3, r5, #0
+ bl MOD83_02231DBC
+ b _02232CF4
+_02232AE2:
+ bl MOD83_02231A00
+ ldr r0, _02232B7C ; =0x00002B70
+ mov r1, #0
+ add r0, r4, r0
+ bl MOD83_022316D8
+ ldr r0, _02232B7C ; =0x00002B70
+ add r0, r4, r0
+ bl FUN_02019570
+ ldr r0, _02232B7C ; =0x00002B70
+ add r0, r4, r0
+ bl FUN_02019178
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #3
+ bl MOD83_02231DF0
+ ldr r0, _02232B70 ; =0x0000299C
+ ldr r0, [r4, r0]
+ bl MOD83_02231820
+ add r0, r4, #0
+ bl MOD83_022315D0
+ add r0, r4, #0
+ bl MOD83_0223166C
+ mov r0, #0x11
+ str r0, [r5]
+ b _02232CF4
+_02232B24:
+ bl MOD83_02232D44
+ bl FUN_02033E74
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x12
+ add r3, r5, #0
+ bl MOD83_02231DBC
+ b _02232CF4
+_02232B3A:
+ mov r6, #0
+ add r0, r6, #0
+ bl FUN_02030E7C
+ cmp r0, #0
+ beq _02232BD0
+ add r0, r4, #0
+ add r0, #0x90
+ bl FUN_0202F10C
+ ldr r1, _02232B90 ; =0x00002AA8
+ b _02232B94
+ nop
+_02232B54: .word 0x00002B44
+_02232B58: .word 0x00002B48
+_02232B5C: .word 0x00002B4C
+_02232B60: .word 0x00002B54
+_02232B64: .word 0x00002B58
+_02232B68: .word 0x00002B5C
+_02232B6C: .word 0x00002B60
+_02232B70: .word 0x0000299C
+_02232B74: .word 0x021C48B8
+_02232B78: .word 0x000005DC
+_02232B7C: .word 0x00002B70
+_02232B80: .word 0x00002B90
+_02232B84: .word 0x00708000
+_02232B88: .word MOD83_022319D0
+_02232B8C: .word 0x00010200
+_02232B90: .word 0x00002AA8
+_02232B94:
+ add r0, r4, #0
+ add r1, r4, r1
+ bl MOD83_02232E0C
+ add r6, r0, #0
+ bne _02232BC0
+ ldr r0, _02232D18 ; =0x00002BD0
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02232BC0
+ ldr r0, _02232D1C ; =0x00002AA8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_02019620
+ ldr r0, _02232D1C ; =0x00002AA8
+ add r0, r4, r0
+ bl FUN_020191D0
+ ldr r0, _02232D18 ; =0x00002BD0
+ mov r1, #0
+ str r1, [r4, r0]
+_02232BC0:
+ ldr r1, _02232D20 ; =0x00002A98
+ add r0, r4, #0
+ add r1, r4, r1
+ add r2, r6, #0
+ bl MOD83_02232FE4
+ ldr r0, _02232D18 ; =0x00002BD0
+ str r6, [r4, r0]
+_02232BD0:
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r5, #0
+ bl MOD83_02232668
+ b _02232CF4
+_02232BDC:
+ mov r1, #0
+ mov r2, #0x14
+ add r3, r5, #0
+ bl MOD83_02231DBC
+ b _02232CF4
+_02232BE8:
+ bl MOD83_022315F8
+ ldr r0, _02232D24 ; =0x00002B70
+ mov r1, #0
+ add r0, r4, r0
+ bl MOD83_022316D8
+ mov r0, #0xae
+ lsl r0, r0, #6
+ add r0, r4, r0
+ mov r1, #0
+ bl MOD83_022316C0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD83_02231DF0
+ mov r1, #0x1e
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x57
+ bl FUN_02002ED0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #4
+ add r3, r5, #0
+ bl MOD83_02231DBC
+ b _02232CF4
+_02232C26:
+ bl FUN_02031810
+ cmp r0, #0
+ bne _02232CF4
+ ldr r0, _02232D28 ; =0x00002BE0
+ ldr r0, [r4, r0]
+ str r0, [r5]
+ b _02232CF4
+_02232C36:
+ ldr r0, _02232D2C ; =0x00002BD4
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02232CF4
+ ldr r1, _02232D30 ; =0x00002D78
+ add r0, r4, #0
+ ldr r2, [r4]
+ add r0, #0x90
+ add r1, r4, r1
+ bl MOD83_022392EC
+ ldr r0, _02232D30 ; =0x00002D78
+ mov r1, #0xd6
+ add r0, r4, r0
+ lsl r1, r1, #2
+ bl MOD83_0222F8F0
+ add r0, r4, #0
+ bl MOD83_02232610
+ mov r0, #0x17
+ str r0, [r5]
+ b _02232CF4
+_02232C6A:
+ bl MOD83_02239574
+ cmp r0, #4
+ bne _02232CF4
+ mov r0, #0x93
+ bl FUN_02031588
+ mov r0, #0x18
+ str r0, [r5]
+ b _02232CF4
+_02232C7E:
+ bl MOD83_02232DF0
+ cmp r0, #0
+ beq _02232C90
+ mov r0, #0x93
+ bl FUN_020315D8
+ cmp r0, #1
+ bne _02232CF4
+_02232C90:
+ bl MOD83_02239544
+ ldr r1, _02232D24 ; =0x00002B70
+ mov r3, #0xa
+ add r0, r4, #0
+ add r1, r4, r1
+ mov r2, #0x12
+ lsl r3, r3, #6
+ bl MOD83_02231F88
+ ldr r0, _02232D34 ; =0x00003CF0
+ ldr r0, [r4, r0]
+ bl FUN_0200DBFC
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #0x19
+ bl MOD83_02233084
+ b _02232CF4
+_02232CB8:
+ ldr r0, _02232D38 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _02232CF4
+ mov r0, #0x13
+ str r0, [r5]
+ b _02232CF4
+_02232CC8:
+ mov r1, #0
+ mov r2, #0x1c
+ add r3, r5, #0
+ bl MOD83_02231DBC
+ b _02232CF4
+_02232CD4:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _02232CF4
+ ldr r0, _02232D28 ; =0x00002BE0
+ ldr r0, [r4, r0]
+ str r0, [r5]
+ b _02232CF4
+_02232CE4:
+ bl MOD83_022315F8
+ add r0, r4, #0
+ bl MOD83_022324A0
+ add sp, #8
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02232CF4:
+ ldr r0, _02232D3C ; =0x00002BE4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02232D00
+ bl FUN_0201FDEC
+_02232D00:
+ bl MOD83_02238D58
+ ldr r0, _02232D40 ; =0x00003CE8
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _02232D10
+ add r0, r4, #0
+ blx r1
+_02232D10:
+ mov r0, #0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_02232D18: .word 0x00002BD0
+_02232D1C: .word 0x00002AA8
+_02232D20: .word 0x00002A98
+_02232D24: .word 0x00002B70
+_02232D28: .word 0x00002BE0
+_02232D2C: .word 0x00002BD4
+_02232D30: .word 0x00002D78
+_02232D34: .word 0x00003CF0
+_02232D38: .word 0x021C48B8
+_02232D3C: .word 0x00002BE4
+_02232D40: .word 0x00003CE8
+ thumb_func_end MOD83_02232788
+
+ thumb_func_start MOD83_02232D44
+MOD83_02232D44: ; 0x02232D44
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _02232DA8 ; =0x00002B60
+ mov r2, #0xd6
+ ldr r1, [r5, r0]
+ sub r0, #0xc
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r4, [r1, r0]
+ add r0, r5, #0
+ add r0, #0xe0
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl memcpy
+ mov r1, #0x41
+ add r0, r5, #0
+ lsl r1, r1, #2
+ add r0, #0x90
+ add r1, r4, r1
+ mov r2, #0x50
+ bl memcpy
+ ldr r0, _02232DAC ; =0x00000428
+ mov r1, #0
+ strb r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0xde
+ ldrb r1, [r0]
+ mov r0, #0x10
+ mov r2, #0xf
+ bic r1, r0
+ add r0, r5, #0
+ add r0, #0xde
+ strb r1, [r0]
+ add r0, r5, #0
+ add r0, #0xde
+ ldrb r1, [r0]
+ mov r0, #0x20
+ orr r1, r0
+ add r0, r5, #0
+ add r0, #0xde
+ strb r1, [r0]
+ ldr r1, _02232DB0 ; =0x00002B44
+ add r0, r5, #4
+ ldr r1, [r5, r1]
+ bl MOD83_0222F8C4
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02232DA8: .word 0x00002B60
+_02232DAC: .word 0x00000428
+_02232DB0: .word 0x00002B44
+ thumb_func_end MOD83_02232D44
+
+ thumb_func_start MOD83_02232DB4
+MOD83_02232DB4: ; 0x02232DB4
+ push {r3, r4}
+ ldr r3, [r0]
+ ldr r1, [r0, #4]
+ add r2, r0, #0
+ mov r4, #0
+ cmp r1, r3
+ bge _02232DC8
+ add r3, r1, #0
+ mov r4, #1
+ add r2, r0, #4
+_02232DC8:
+ ldr r1, [r0, #8]
+ cmp r1, r3
+ bge _02232DD6
+ add r2, r0, #0
+ add r3, r1, #0
+ mov r4, #2
+ add r2, #8
+_02232DD6:
+ ldr r1, [r0, #0xc]
+ cmp r1, r3
+ bge _02232DE2
+ add r2, r0, #0
+ mov r4, #3
+ add r2, #0xc
+_02232DE2:
+ ldr r0, _02232DEC ; =0x3FFF0001
+ str r0, [r2]
+ add r0, r4, #1
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_02232DEC: .word 0x3FFF0001
+ thumb_func_end MOD83_02232DB4
+
+ thumb_func_start MOD83_02232DF0
+MOD83_02232DF0: ; 0x02232DF0
+ push {r3, r4, r5, lr}
+ mov r5, #0
+ mov r4, #1
+_02232DF6:
+ add r0, r4, #0
+ bl FUN_0202DFA4
+ cmp r0, #0
+ beq _02232E02
+ add r5, r5, #1
+_02232E02:
+ add r4, r4, #1
+ cmp r4, #5
+ blt _02232DF6
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD83_02232DF0
+
+ thumb_func_start MOD83_02232E0C
+MOD83_02232E0C: ; 0x02232E0C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x48
+ add r5, r0, #0
+ mov r6, #0
+ mov r0, #1
+ str r1, [sp, #0x10]
+ add r7, r6, #0
+ str r0, [sp, #0x24]
+ add r4, r5, #4
+_02232E1E:
+ ldr r0, [sp, #0x24]
+ bl FUN_0202DFA4
+ cmp r0, #0
+ bne _02232E40
+ ldr r0, _02232FCC ; =0x00002BA8
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02232E32
+ add r7, r7, #1
+_02232E32:
+ ldr r0, _02232FCC ; =0x00002BA8
+ mov r1, #0
+ str r1, [r4, r0]
+ ldr r1, _02232FD0 ; =0x3FFF0001
+ add r0, #0x14
+ str r1, [r4, r0]
+ b _02232E68
+_02232E40:
+ ldr r1, _02232FCC ; =0x00002BA8
+ ldr r1, [r4, r1]
+ cmp r1, r0
+ beq _02232E66
+ ldr r1, _02232FCC ; =0x00002BA8
+ add r7, r7, #1
+ str r0, [r4, r1]
+ add r0, r1, #0
+ add r1, #0x34
+ ldr r1, [r5, r1]
+ add r0, #0x34
+ add r2, r1, #1
+ ldr r0, [r5, r0]
+ ldr r1, _02232FD4 ; =0x00002BDC
+ add r6, r6, #1
+ str r2, [r5, r1]
+ sub r1, #0x20
+ str r0, [r4, r1]
+ b _02232E68
+_02232E66:
+ add r6, r6, #1
+_02232E68:
+ ldr r0, [sp, #0x24]
+ add r4, r4, #4
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #5
+ blt _02232E1E
+ cmp r7, #0
+ bne _02232E7E
+ add sp, #0x48
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02232E7E:
+ mov r1, #0xaf
+ lsl r1, r1, #6
+ ldr r0, [r5, r1]
+ str r0, [sp, #0x38]
+ add r0, r1, #4
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x3c]
+ add r0, r1, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ add r1, #0xc
+ str r0, [sp, #0x40]
+ ldr r0, [r5, r1]
+ str r0, [sp, #0x44]
+ add r0, sp, #0x38
+ bl MOD83_02232DB4
+ str r0, [sp, #0x28]
+ add r0, sp, #0x38
+ bl MOD83_02232DB4
+ str r0, [sp, #0x2c]
+ add r0, sp, #0x38
+ bl MOD83_02232DB4
+ str r0, [sp, #0x30]
+ add r0, sp, #0x38
+ bl MOD83_02232DB4
+ str r0, [sp, #0x34]
+ mov r0, #0x57
+ bl FUN_0200AA80
+ add r4, r0, #0
+ ldr r2, _02232FD8 ; =0x00000172
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #0x57
+ bl FUN_0200A86C
+ str r0, [sp, #0x1c]
+ mov r5, #0
+ ldr r0, [sp, #0x10]
+ add r1, r5, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ str r0, [sp, #0x14]
+ cmp r6, #0
+ ble _02232FAE
+ add r0, sp, #0x28
+ str r0, [sp, #0x18]
+_02232EE6:
+ ldr r0, [sp, #0x18]
+ ldr r0, [r0]
+ bl FUN_0202DFA4
+ add r7, r0, #0
+ beq _02232F9E
+ add r0, r4, #0
+ mov r1, #0
+ add r2, r7, #0
+ bl FUN_0200ABC0
+ ldr r1, [sp, #0x1c]
+ add r0, r4, #0
+ mov r2, #0x35
+ mov r3, #0x57
+ bl FUN_0200A9C4
+ str r0, [sp, #0x20]
+ add r0, r7, #0
+ bl FUN_020239CC
+ cmp r0, #0
+ str r5, [sp]
+ bne _02232F30
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02232FDC ; =0x00050600
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x20]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ b _02232F4A
+_02232F30:
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0xc1
+ lsl r0, r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r1, #0
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x20]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+_02232F4A:
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_020239BC
+ add r2, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ lsl r2, r2, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0
+ lsr r2, r2, #0x10
+ mov r3, #5
+ bl FUN_0200AD38
+ ldr r1, [sp, #0x1c]
+ add r0, r4, #0
+ mov r2, #0x36
+ mov r3, #0x57
+ bl FUN_0200A9C4
+ add r7, r0, #0
+ str r5, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02232FE0 ; =0x000E0F00
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ add r2, r7, #0
+ mov r3, #0x50
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r5, #0x18
+_02232F9E:
+ ldr r0, [sp, #0x18]
+ add r0, r0, #4
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, r6
+ blt _02232EE6
+_02232FAE:
+ cmp r6, #0
+ beq _02232FB8
+ ldr r0, [sp, #0x10]
+ bl FUN_020191D0
+_02232FB8:
+ ldr r0, [sp, #0x1c]
+ bl FUN_0200A8B8
+ add r0, r4, #0
+ bl FUN_0200AB18
+ add r0, r6, #0
+ add sp, #0x48
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02232FCC: .word 0x00002BA8
+_02232FD0: .word 0x3FFF0001
+_02232FD4: .word 0x00002BDC
+_02232FD8: .word 0x00000172
+_02232FDC: .word 0x00050600
+_02232FE0: .word 0x000E0F00
+ thumb_func_end MOD83_02232E0C
+
+ thumb_func_start MOD83_02232FE4
+MOD83_02232FE4: ; 0x02232FE4
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, _02233070 ; =0x00002B94
+ add r4, r1, #0
+ str r2, [r5, r0]
+ ldr r2, _02233074 ; =0x00000172
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #0x57
+ bl FUN_0200A86C
+ ldr r1, _02233078 ; =0x000029A4
+ str r0, [r5, r1]
+ mov r0, #0x57
+ bl FUN_0200AA80
+ ldr r1, _0223307C ; =0x000029A0
+ str r0, [r5, r1]
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r3, #1
+ str r3, [sp]
+ ldr r0, _0223307C ; =0x000029A0
+ str r3, [sp, #4]
+ ldr r2, _02233070 ; =0x00002B94
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r2]
+ mov r1, #0
+ bl FUN_0200AD38
+ ldr r1, _0223307C ; =0x000029A0
+ mov r2, #0x38
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r3, #0x57
+ bl FUN_0200A9C4
+ add r6, r0, #0
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02233080 ; =0x00010200
+ mov r1, #1
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r2, r6, #0
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_020191D0
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, _02233078 ; =0x000029A4
+ ldr r0, [r5, r0]
+ bl FUN_0200A8B8
+ ldr r0, _0223307C ; =0x000029A0
+ ldr r0, [r5, r0]
+ bl FUN_0200AB18
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02233070: .word 0x00002B94
+_02233074: .word 0x00000172
+_02233078: .word 0x000029A4
+_0223307C: .word 0x000029A0
+_02233080: .word 0x00010200
+ thumb_func_end MOD83_02232FE4
+
+ thumb_func_start MOD83_02233084
+MOD83_02233084: ; 0x02233084
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ bl MOD83_0222F9DC
+ bl FUN_02033ED0
+ ldr r0, _022330A0 ; =0x00002BE0
+ str r6, [r5, r0]
+ mov r0, #0x16
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+ nop
+_022330A0: .word 0x00002BE0
+ thumb_func_end MOD83_02233084
+
+ thumb_func_start MOD83_022330A4
+MOD83_022330A4: ; 0x022330A4
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ bl FUN_02006278
+ add r7, r0, #0
+ ldr r0, _02233154 ; =0x000029A8
+ mov r6, #0
+ add r4, r7, #0
+ add r5, r7, r0
+_022330B6:
+ ldr r0, _02233154 ; =0x000029A8
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _022330CA
+ add r0, r5, #0
+ bl FUN_02019570
+ add r0, r5, #0
+ bl FUN_02019178
+_022330CA:
+ add r6, r6, #1
+ add r4, #0x10
+ add r5, #0x10
+ cmp r6, #0x13
+ blo _022330B6
+ ldr r0, _02233158 ; =0x00002B70
+ ldr r1, [r7, r0]
+ cmp r1, #0
+ beq _022330EA
+ add r0, r7, r0
+ bl FUN_02019570
+ ldr r0, _02233158 ; =0x00002B70
+ add r0, r7, r0
+ bl FUN_02019178
+_022330EA:
+ mov r0, #0xae
+ lsl r0, r0, #6
+ ldr r1, [r7, r0]
+ cmp r1, #0
+ beq _02233104
+ add r0, r7, r0
+ bl FUN_02019570
+ mov r0, #0xae
+ lsl r0, r0, #6
+ add r0, r7, r0
+ bl FUN_02019178
+_02233104:
+ ldr r0, _0223315C ; =0x0000299C
+ mov r1, #0
+ ldr r0, [r7, r0]
+ bl FUN_020178A0
+ ldr r0, _0223315C ; =0x0000299C
+ mov r1, #1
+ ldr r0, [r7, r0]
+ bl FUN_020178A0
+ ldr r0, _0223315C ; =0x0000299C
+ mov r1, #2
+ ldr r0, [r7, r0]
+ bl FUN_020178A0
+ ldr r0, _0223315C ; =0x0000299C
+ mov r1, #3
+ ldr r0, [r7, r0]
+ bl FUN_020178A0
+ ldr r0, _0223315C ; =0x0000299C
+ ldr r0, [r7, r0]
+ bl FUN_02016A18
+ ldr r0, _02233160 ; =0x00000053
+ ldr r1, _02233164 ; =0x0223A434
+ bl FUN_02000E7C
+ mov r0, #0x5b
+ bl FUN_020168D0
+ ldr r0, [sp]
+ bl FUN_0200627C
+ mov r0, #0x57
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02233154: .word 0x000029A8
+_02233158: .word 0x00002B70
+_0223315C: .word 0x0000299C
+_02233160: .word 0x00000053
+_02233164: .word 0x0223A434
+ thumb_func_end MOD83_022330A4
+
+ thumb_func_start MOD83_02233168
+MOD83_02233168: ; 0x02233168
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ add r5, r2, #0
+ bl MOD83_022331E0
+ ldr r1, _022331B4 ; =0x00003CF4
+ add r0, r5, #0
+ bl FUN_020169D8
+ ldr r2, _022331B4 ; =0x00003CF4
+ mov r1, #0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ ldr r0, _022331B8 ; =0x0000299C
+ mov r1, #0x1e
+ str r6, [r4, r0]
+ mov r0, #0
+ lsl r1, r1, #4
+ add r2, r5, #0
+ str r5, [r4]
+ bl FUN_02002ED0
+ ldr r0, _022331BC ; =0x00002B54
+ mov r2, #0
+ str r7, [r4, r0]
+ add r0, #0xc
+ str r2, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_02231DF0
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022331B4: .word 0x00003CF4
+_022331B8: .word 0x0000299C
+_022331BC: .word 0x00002B54
+ thumb_func_end MOD83_02233168
+
+ thumb_func_start MOD83_022331C0
+MOD83_022331C0: ; 0x022331C0
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _022331DC ; =0x0223A4D4
+ add r3, sp, #0
+ mov r2, #5
+_022331CA:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022331CA
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_022331DC: .word 0x0223A4D4
+ thumb_func_end MOD83_022331C0
+
+ thumb_func_start MOD83_022331E0
+MOD83_022331E0: ; 0x022331E0
+ push {r3, r4, r5, lr}
+ sub sp, #0x80
+ ldr r5, _022332A0 ; =0x0223A454
+ add r3, sp, #0x70
+ 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, _022332A4 ; =0x0223A480
+ 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, #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, _022332A8 ; =0x0223A4B8
+ 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]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r5, _022332AC ; =0x0223A49C
+ 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, #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, _022332B0 ; =0x0223A464
+ 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, #3
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ add sp, #0x80
+ pop {r3, r4, r5, pc}
+ nop
+_022332A0: .word 0x0223A454
+_022332A4: .word 0x0223A480
+_022332A8: .word 0x0223A4B8
+_022332AC: .word 0x0223A49C
+_022332B0: .word 0x0223A464
+ thumb_func_end MOD83_022331E0
+
+ thumb_func_start MOD83_022332B4
+MOD83_022332B4: ; 0x022332B4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ bl FUN_0202251C
+ mov r1, #0
+ ldr r4, [r5, #0x48]
+ mvn r1, r1
+ add r6, r0, #0
+ cmp r4, r1
+ bne _022332E8
+ add r2, r5, #0
+ add r2, #0x4c
+ ldrh r2, [r2]
+ lsr r1, r1, #0x10
+ cmp r2, r1
+ bne _022332E8
+ bl FUN_0202AC28
+ add r0, r7, #0
+ mov r1, #0
+ bl FUN_020227A0
+ mov r0, #0
+ bl OS_ResetSystem
+_022332E8:
+ cmp r4, #0
+ bne _022332F0
+ mov r4, #0
+ mvn r4, r4
+_022332F0:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ tst r0, r4
+ bne _022332FC
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022332FC:
+ add r0, r5, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _0223331E
+ add r1, r5, #0
+ add r1, #0x4c
+ ldrh r1, [r1]
+ add r0, r6, #0
+ bl FUN_0202AEF4
+ cmp r0, #1
+ bne _0223331E
+ mov r0, #2
+ pop {r3, r4, r5, r6, r7, pc}
+_0223331E:
+ add r0, r5, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _0223333A
+ add r0, r6, #0
+ bl FUN_0202AE0C
+ cmp r0, #0
+ bne _0223333A
+ mov r0, #4
+ pop {r3, r4, r5, r6, r7, pc}
+_0223333A:
+ add r0, r6, #0
+ bl FUN_0202ADF0
+ cmp r0, #0
+ bne _02233348
+ mov r0, #3
+ pop {r3, r4, r5, r6, r7, pc}
+_02233348:
+ add r5, #0x4e
+ ldrb r0, [r5]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _02233358
+ mov r0, #5
+ pop {r3, r4, r5, r6, r7, pc}
+_02233358:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_022332B4
+
+ thumb_func_start MOD83_0223335C
+MOD83_0223335C: ; 0x0223335C
+ push {r3, lr}
+ mov r0, #4
+ bl MOD83_02234580
+ bl MOD83_02234C34
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0223335C
+
+ thumb_func_start MOD83_0223336C
+MOD83_0223336C: ; 0x0223336C
+ push {r3, lr}
+ bl MOD83_02234704
+ str r0, [sp]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0223336C
+
+ thumb_func_start MOD83_02233378
+MOD83_02233378: ; 0x02233378
+ push {r3, lr}
+ bl MOD83_02234724
+ add r1, sp, #0
+ strh r0, [r1]
+ mov r0, #0
+ ldrsh r0, [r1, r0]
+ pop {r3, pc}
+ thumb_func_end MOD83_02233378
+
+ thumb_func_start MOD83_02233388
+MOD83_02233388: ; 0x02233388
+ push {r4, lr}
+ bl MOD83_0223458C
+ cmp r0, #0xc
+ bne _022333AA
+ bl MOD83_0223456C
+ add r4, r0, #0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ bne _022333A6
+ bl MOD83_02234C34
+ mov r0, #1
+ str r0, [r4, #0x1c]
+_022333A6:
+ mov r0, #1
+ pop {r4, pc}
+_022333AA:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233388
+
+ thumb_func_start MOD83_022333B0
+MOD83_022333B0: ; 0x022333B0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_0223466C
+ mov r3, #0
+ add r1, r3, #0
+_022333BC:
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _022333CC
+ ldrh r2, [r0, #6]
+ cmp r4, r2
+ bne _022333CC
+ strb r1, [r0, #8]
+ strb r1, [r0, #0xa]
+_022333CC:
+ add r3, r3, #1
+ add r0, #0xc
+ cmp r3, #8
+ blt _022333BC
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022333B0
+
+ thumb_func_start MOD83_022333D8
+MOD83_022333D8: ; 0x022333D8
+ push {r3, lr}
+ bl MOD83_0223466C
+ add r1, r0, #0
+ add r1, #0x62
+ ldrh r3, [r1]
+ mov r2, #1
+ add r1, r3, #0
+ tst r1, r2
+ beq _022333FE
+ add r1, r0, #0
+ add r1, #0x62
+ ldrh r3, [r1]
+ mov r1, #1
+ add r0, #0x62
+ bic r3, r1
+ strh r3, [r0]
+ add r0, r2, #0
+ pop {r3, pc}
+_022333FE:
+ mov r1, #0x40
+ add r2, r3, #0
+ tst r2, r1
+ beq _02233418
+ add r1, r0, #0
+ add r1, #0x62
+ ldrh r2, [r1]
+ mov r1, #0x40
+ add r0, #0x62
+ bic r2, r1
+ strh r2, [r0]
+ mov r0, #7
+ pop {r3, pc}
+_02233418:
+ lsl r1, r1, #6
+ tst r1, r3
+ beq _02233430
+ add r1, r0, #0
+ add r1, #0x62
+ ldrh r2, [r1]
+ ldr r1, _02233434 ; =0xFFFFEFFF
+ add r0, #0x62
+ and r1, r2
+ strh r1, [r0]
+ mov r0, #0xd
+ pop {r3, pc}
+_02233430:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_02233434: .word 0xFFFFEFFF
+ thumb_func_end MOD83_022333D8
+
+ thumb_func_start MOD83_02233438
+MOD83_02233438: ; 0x02233438
+ push {r4, lr}
+ bl MOD83_0223466C
+ add r4, r0, #0
+ mov r1, #1
+ add r0, #0x60
+ strb r1, [r0]
+ bl WM_GetAllowedChannel
+ add r1, r4, #0
+ add r1, #0x62
+ strh r0, [r1]
+ add r0, r4, #0
+ add r0, #0x62
+ ldrh r1, [r0]
+ cmp r1, #0
+ beq _02233462
+ mov r0, #2
+ lsl r0, r0, #0xe
+ cmp r1, r0
+ bne _02233466
+_02233462:
+ mov r0, #0
+ pop {r4, pc}
+_02233466:
+ add r0, r4, #0
+ mov r1, #0x66
+ add r0, #0x61
+ strb r1, [r0]
+ mov r0, #0
+ add r4, #0x64
+ strb r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD83_02233438
+
+ thumb_func_start MOD83_02233478
+MOD83_02233478: ; 0x02233478
+ push {r4, lr}
+ bl MOD83_02234564
+ add r4, r0, #0
+ bl WM_GetDispersionBeaconPeriod
+ strh r0, [r4, #0x18]
+ bl WM_GetNextTgid
+ strh r0, [r4, #0xc]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233478
+
+ thumb_func_start MOD83_02233490
+MOD83_02233490: ; 0x02233490
+ push {r4, lr}
+ bl MOD83_022345D4
+ add r4, r0, #0
+ bl MOD83_02234610
+ str r0, [r4]
+ bl MOD83_02234564
+ ldrh r0, [r0, #0x32]
+ strh r0, [r4, #4]
+ bl WM_GetDispersionScanPeriod
+ strh r0, [r4, #6]
+ mov r0, #0xff
+ strb r0, [r4, #8]
+ strb r0, [r4, #9]
+ strb r0, [r4, #0xa]
+ strb r0, [r4, #0xb]
+ strb r0, [r4, #0xc]
+ strb r0, [r4, #0xd]
+ pop {r4, pc}
+ thumb_func_end MOD83_02233490
+
+ thumb_func_start MOD83_022334BC
+MOD83_022334BC: ; 0x022334BC
+ push {r3, r4, r5, r6, r7, lr}
+ bl MOD83_022345D4
+ add r7, r0, #0
+ bl WM_GetAllowedChannel
+ add r3, r0, #0
+ beq _02233508
+ ldrh r2, [r7, #4]
+ mov r1, #0
+ mov r0, #1
+ mov ip, r2
+ mov r4, #0x1c
+_022334D6:
+ lsr r6, r2, #0x1f
+ lsl r5, r2, #0x1c
+ sub r5, r5, r6
+ ror r5, r4
+ add r5, r6, r5
+ add r6, r0, #0
+ lsl r6, r5
+ add r5, r3, #0
+ tst r5, r6
+ beq _02233500
+ mov r0, ip
+ add r0, r0, r1
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1c
+ sub r1, r1, r2
+ mov r0, #0x1c
+ ror r1, r0
+ add r0, r2, r1
+ add r0, r0, #1
+ strh r0, [r7, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02233500:
+ add r1, r1, #1
+ add r2, r2, #1
+ cmp r1, #0x10
+ blt _022334D6
+_02233508:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022334BC
+
+ thumb_func_start MOD83_0223350C
+MOD83_0223350C: ; 0x0223350C
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #4]
+ bl MOD83_0223495C
+ ldrh r0, [r4, #2]
+ cmp r0, #8
+ bne _02233524
+ bl MOD83_02234958
+ bl MOD83_0223335C
+_02233524:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0223350C
+
+ thumb_func_start MOD83_02233528
+MOD83_02233528: ; 0x02233528
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #8]
+ bl MOD83_0223495C
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ beq _0223353C
+ bl MOD83_02234958
+_0223353C:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233528
+
+ thumb_func_start MOD83_02233540
+MOD83_02233540: ; 0x02233540
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ bne _02233576
+ mov r0, #2
+ bl MOD83_02234580
+ bl MOD83_0223458C
+ cmp r0, #0xc
+ bne _02233562
+ bl MOD83_022349CC
+ mov r0, #2
+ bl MOD83_02234580
+ pop {r3, pc}
+_02233562:
+ bl MOD83_02234BF8
+ cmp r0, #0
+ bne _0223357E
+ bl MOD83_022349CC
+ mov r0, #2
+ bl MOD83_02234580
+ pop {r3, pc}
+_02233576:
+ bl MOD83_02234958
+ bl MOD83_022349CC
+_0223357E:
+ pop {r3, pc}
+ thumb_func_end MOD83_02233540
+
+ thumb_func_start MOD83_02233580
+MOD83_02233580: ; 0x02233580
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ bne _022335AA
+ bl MOD83_0223458C
+ cmp r0, #0xc
+ bne _022335A2
+ bl WM_Finish
+ mov r0, #0xc
+ bl MOD83_02234580
+ mov r0, #1
+ bl MOD83_0223464C
+ pop {r3, pc}
+_022335A2:
+ mov r0, #1
+ bl MOD83_02234580
+ pop {r3, pc}
+_022335AA:
+ bl MOD83_02234958
+ mov r0, #4
+ bl MOD83_02234580
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233580
+
+ thumb_func_start MOD83_022335B8
+MOD83_022335B8: ; 0x022335B8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrh r0, [r5, #2]
+ cmp r0, #0
+ bne _02233616
+ bl MOD83_0223466C
+ add r4, r0, #0
+ add r0, #0x61
+ ldrh r1, [r5, #0xa]
+ ldrb r0, [r0]
+ cmp r0, r1
+ ble _022335E0
+ add r0, r4, #0
+ add r0, #0x61
+ strb r1, [r0]
+ add r0, r4, #0
+ ldrh r1, [r5, #8]
+ add r0, #0x64
+ strb r1, [r0]
+_022335E0:
+ bl MOD83_022333D8
+ cmp r0, #0
+ beq _022335F6
+ bl MOD83_022349EC
+ cmp r0, #0
+ bne _0223361E
+ bl MOD83_0223335C
+ pop {r3, r4, r5, pc}
+_022335F6:
+ add r4, #0x61
+ ldrb r0, [r4]
+ cmp r0, #0x66
+ bhs _02233610
+ bl MOD83_02233478
+ bl MOD83_02234A18
+ cmp r0, #0
+ bne _0223361E
+ bl MOD83_0223335C
+ pop {r3, r4, r5, pc}
+_02233610:
+ bl MOD83_0223335C
+ pop {r3, r4, r5, pc}
+_02233616:
+ bl MOD83_02234958
+ bl MOD83_0223335C
+_0223361E:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD83_022335B8
+
+ thumb_func_start MOD83_02233620
+MOD83_02233620: ; 0x02233620
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ bne _0223363E
+ bl MOD83_02233388
+ cmp r0, #0
+ bne _02233646
+ bl MOD83_02234A54
+ cmp r0, #0
+ bne _02233646
+ bl MOD83_0223335C
+ pop {r3, pc}
+_0223363E:
+ bl MOD83_02234958
+ bl MOD83_0223335C
+_02233646:
+ pop {r3, pc}
+ thumb_func_end MOD83_02233620
+
+ thumb_func_start MOD83_02233648
+MOD83_02233648: ; 0x02233648
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldrh r0, [r5, #8]
+ bl MOD83_0223495C
+ ldrh r0, [r5, #2]
+ cmp r0, #0
+ beq _0223365C
+ b _0223376E
+_0223365C:
+ bl MOD83_0223466C
+ add r4, r0, #0
+ mov r0, #8
+ bl MOD83_02234580
+ bl MOD83_02233388
+ cmp r0, #0
+ beq _02233672
+ b _02233776
+_02233672:
+ add r0, r4, #0
+ add r0, #0x60
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _02233684
+ add r0, r4, #0
+ mov r1, #2
+ add r0, #0x60
+ strb r1, [r0]
+_02233684:
+ ldrh r0, [r5, #8]
+ cmp r0, #7
+ bgt _0223369C
+ bge _022336BE
+ cmp r0, #2
+ bgt _02233776
+ cmp r0, #0
+ blt _02233776
+ beq _022336A4
+ add sp, #0xc
+ cmp r0, #2
+ pop {r4, r5, pc}
+_0223369C:
+ cmp r0, #9
+ beq _02233764
+ add sp, #0xc
+ pop {r4, r5, pc}
+_022336A4:
+ bl MOD83_02234B80
+ cmp r0, #0
+ bne _022336B4
+ bl MOD83_0223335C
+ add sp, #0xc
+ pop {r4, r5, pc}
+_022336B4:
+ mov r0, #0
+ bl MOD83_0223461C
+ add sp, #0xc
+ pop {r4, r5, pc}
+_022336BE:
+ bl MOD83_0223466C
+ bl MOD83_02234968
+ add r4, #0x60
+ ldrb r0, [r4]
+ cmp r0, #2
+ bne _02233776
+ add r4, r5, #0
+ add r4, #0x14
+ bl MOD83_022346BC
+ ldr r1, [r5, #0x14]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, r0
+ bne _02233776
+ bl MOD83_022346CC
+ ldr r1, [r4]
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x1c
+ cmp r1, r0
+ bhi _02233776
+ bl MOD83_022346DC
+ ldr r1, [r4, #4]
+ lsr r1, r1, #0x10
+ cmp r1, r0
+ bne _02233776
+ bl MOD83_0223466C
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0xa
+ bl MOD83_0223336C
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xa
+ bl MOD83_02233378
+ add r1, sp, #0
+ strh r0, [r1]
+ ldrh r0, [r1]
+ ldr r2, [sp, #8]
+ add r3, r4, #0
+ strh r0, [r1, #2]
+ mov r0, #0
+_02233722:
+ ldr r1, [r3]
+ cmp r1, r2
+ bne _0223373A
+ mov r1, #0xc
+ mul r1, r0
+ ldrh r0, [r5, #0x10]
+ add r1, r4, r1
+ add sp, #0xc
+ strh r0, [r1, #6]
+ mov r0, #1
+ strb r0, [r1, #0xa]
+ pop {r4, r5, pc}
+_0223373A:
+ cmp r1, #0
+ bne _02233758
+ mov r1, #0xc
+ mul r1, r0
+ str r2, [r4, r1]
+ add r0, sp, #0
+ ldrh r0, [r0, #2]
+ add r1, r4, r1
+ add sp, #0xc
+ strh r0, [r1, #4]
+ ldrh r0, [r5, #0x10]
+ strh r0, [r1, #6]
+ mov r0, #1
+ strb r0, [r1, #0xa]
+ pop {r4, r5, pc}
+_02233758:
+ add r0, r0, #1
+ add r3, #0xc
+ cmp r0, #8
+ blt _02233722
+ add sp, #0xc
+ pop {r4, r5, pc}
+_02233764:
+ ldrh r0, [r5, #0x10]
+ bl MOD83_022333B0
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0223376E:
+ bl MOD83_02234958
+ bl MOD83_0223335C
+_02233776:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233648
+
+ thumb_func_start MOD83_0223377C
+MOD83_0223377C: ; 0x0223377C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ str r0, [sp]
+ bl MOD83_02234664
+ add r7, r0, #0
+ add r0, r4, #4
+ bl MOD83_0223336C
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ add r0, r4, #4
+ bl MOD83_02233378
+ add r2, sp, #4
+ strh r0, [r2]
+ ldrh r0, [r2]
+ ldr r6, [sp, #0xc]
+ add r1, r7, #0
+ strh r0, [r2, #2]
+ ldrh r3, [r2, #2]
+ mov r0, #0
+_022337AA:
+ ldr r2, [r1]
+ add r5, r1, #0
+ add r5, #0x34
+ cmp r2, r6
+ bne _022337C0
+ ldrh r5, [r5]
+ cmp r5, r3
+ bne _022337C0
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022337C0:
+ cmp r2, #0
+ bne _0223380C
+ mov r1, #0x38
+ mul r1, r0
+ ldr r0, [sp, #0xc]
+ add r5, r4, #0
+ str r0, [r7, r1]
+ add r0, r7, r1
+ add r5, #0x58
+ add r3, r0, #4
+ mov r2, #0xc
+_022337D6:
+ ldrh r0, [r5]
+ add r5, r5, #2
+ strh r0, [r3]
+ add r3, r3, #2
+ sub r2, r2, #1
+ bne _022337D6
+ add r3, r7, r1
+ add r4, #0x70
+ add r3, #0x1c
+ mov r2, #0xc
+_022337EA:
+ ldrh r0, [r4]
+ add r4, r4, #2
+ strh r0, [r3]
+ add r3, r3, #2
+ sub r2, r2, #1
+ bne _022337EA
+ add r0, sp, #4
+ ldrh r0, [r0, #2]
+ add r1, r7, r1
+ strh r0, [r1, #0x34]
+ ldr r0, [sp]
+ add r1, #0x36
+ ldrh r0, [r0, #0x12]
+ add sp, #0x10
+ strb r0, [r1]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0223380C:
+ add r0, r0, #1
+ add r1, #0x38
+ cmp r0, #8
+ blt _022337AA
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0223377C
+
+ thumb_func_start MOD83_0223381C
+MOD83_0223381C: ; 0x0223381C
+ push {r3, lr}
+ bl MOD83_022334BC
+ bl MOD83_02234A70
+ cmp r0, #0
+ bne _0223382E
+ bl MOD83_0223335C
+_0223382E:
+ pop {r3, pc}
+ thumb_func_end MOD83_0223381C
+
+ thumb_func_start MOD83_02233830
+MOD83_02233830: ; 0x02233830
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl MOD83_02234610
+ add r4, r0, #0
+ bl MOD83_02234664
+ add r5, r0, #0
+ bl MOD83_02233388
+ cmp r0, #0
+ beq _0223384C
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0223384C:
+ mov r1, #0
+ add r2, r1, #0
+ add r3, r5, #0
+_02233852:
+ ldr r0, [r3]
+ cmp r0, #0
+ beq _0223385C
+ mov r1, #1
+ b _02233864
+_0223385C:
+ add r2, r2, #1
+ add r3, #0x38
+ cmp r2, #8
+ blt _02233852
+_02233864:
+ cmp r1, #0
+ beq _02233882
+ mov r0, #7
+ lsl r0, r0, #6
+ ldrh r0, [r5, r0]
+ cmp r0, #0
+ bne _02233882
+ bl MOD83_02234B2C
+ cmp r0, #0
+ bne _0223387E
+ bl MOD83_0223335C
+_0223387E:
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02233882:
+ add r0, r4, #0
+ mov r1, #0xc0
+ bl DC_InvalidateRange
+ bl MOD83_02234664
+ bl MOD83_02234964
+ ldrh r0, [r6, #0x36]
+ cmp r0, #8
+ blo _0223390C
+ bl MOD83_022346B0
+ ldr r1, [r4, #0x44]
+ cmp r1, r0
+ bne _0223390C
+ add r5, r4, #0
+ add r5, #0x50
+ bl MOD83_022346BC
+ ldr r1, [r4, #0x50]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, r0
+ bne _0223390C
+ bl MOD83_022346CC
+ ldr r1, [r5]
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x1c
+ cmp r1, r0
+ bhi _0223390C
+ bl MOD83_022346DC
+ ldr r1, [r5, #4]
+ lsr r1, r1, #0x10
+ cmp r1, r0
+ bne _0223390C
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD83_0223377C
+ cmp r0, #0
+ beq _022338FC
+ bl MOD83_02234664
+ ldr r1, _02233910 ; =0x000001C2
+ ldrb r2, [r0, r1]
+ add r2, r2, #1
+ strb r2, [r0, r1]
+ ldrb r0, [r0, r1]
+ cmp r0, #0x1c
+ bls _0223390C
+ bl MOD83_02234B2C
+ cmp r0, #0
+ bne _0223390C
+ bl MOD83_0223335C
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_022338FC:
+ bl MOD83_02234B2C
+ cmp r0, #0
+ bne _02233908
+ bl MOD83_0223335C
+_02233908:
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0223390C:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02233910: .word 0x000001C2
+ thumb_func_end MOD83_02233830
+
+ thumb_func_start MOD83_02233914
+MOD83_02233914: ; 0x02233914
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #8]
+ bl MOD83_0223495C
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ bne _0223397A
+ bl MOD83_02234610
+ bl MOD83_02234960
+ mov r0, #6
+ bl MOD83_02234580
+ bl MOD83_02233388
+ cmp r0, #0
+ bne _02233982
+ bl MOD83_022345A4
+ cmp r0, #1
+ bne _02233954
+ bl MOD83_02234664
+ ldr r2, _02233984 ; =0x000001C3
+ mov r1, #0xf0
+ ldrb r3, [r0, r2]
+ bic r3, r1
+ mov r1, #0x10
+ orr r1, r3
+ strb r1, [r0, r2]
+_02233954:
+ ldrh r0, [r4, #8]
+ cmp r0, #4
+ beq _02233968
+ cmp r0, #5
+ bne _0223396E
+ add r0, r4, #0
+ bl MOD83_02233830
+ cmp r0, #0
+ bne _02233982
+_02233968:
+ bl MOD83_0223381C
+ pop {r4, pc}
+_0223396E:
+ ldrh r0, [r4, #2]
+ bl MOD83_02234958
+ bl MOD83_0223335C
+ pop {r4, pc}
+_0223397A:
+ bl MOD83_02234958
+ bl MOD83_0223335C
+_02233982:
+ pop {r4, pc}
+ .align 2, 0
+_02233984: .word 0x000001C3
+ thumb_func_end MOD83_02233914
+
+ thumb_func_start MOD83_02233988
+MOD83_02233988: ; 0x02233988
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ bl MOD83_02234610
+ add r4, r0, #0
+ bl MOD83_02234664
+ add r6, r0, #0
+ bl MOD83_02234564
+ bl MOD83_02233388
+ cmp r0, #0
+ beq _022339AA
+ add sp, #8
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_022339AA:
+ add r0, r4, #0
+ mov r1, #0xc0
+ bl DC_InvalidateRange
+ bl MOD83_02234664
+ bl MOD83_02234964
+ ldrh r0, [r4, #0x3c]
+ cmp r0, #8
+ blo _02233A24
+ bl MOD83_022346B0
+ ldr r1, [r4, #0x44]
+ cmp r1, r0
+ bne _02233A24
+ add r5, r4, #0
+ add r5, #0x50
+ bl MOD83_022346BC
+ ldr r1, [r4, #0x50]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, r0
+ bne _02233A24
+ bl MOD83_022346CC
+ ldr r1, [r5]
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x1c
+ cmp r1, r0
+ bhi _02233A24
+ bl MOD83_022346DC
+ ldr r1, [r5, #4]
+ lsr r1, r1, #0x10
+ cmp r1, r0
+ bne _02233A24
+ add r0, r4, #4
+ bl MOD83_0223336C
+ ldr r1, _02233A2C ; =0x000001C3
+ str r0, [sp]
+ ldrb r1, [r6, r1]
+ str r0, [sp, #4]
+ lsl r1, r1, #0x1c
+ lsr r2, r1, #0x1c
+ mov r1, #0x38
+ mul r1, r2
+ ldr r1, [r6, r1]
+ cmp r1, r0
+ bne _02233A24
+ bl MOD83_02234B2C
+ cmp r0, #0
+ bne _02233A1E
+ bl MOD83_0223335C
+_02233A1E:
+ add sp, #8
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02233A24:
+ mov r0, #0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_02233A2C: .word 0x000001C3
+ thumb_func_end MOD83_02233988
+
+ thumb_func_start MOD83_02233A30
+MOD83_02233A30: ; 0x02233A30
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #8]
+ bl MOD83_0223495C
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ bne _02233A90
+ bl MOD83_02234664
+ ldr r2, _02233A9C ; =0x000001C3
+ mov r1, #0xf0
+ ldrb r3, [r0, r2]
+ bic r3, r1
+ mov r1, #0x20
+ orr r1, r3
+ strb r1, [r0, r2]
+ mov r0, #6
+ bl MOD83_02234580
+ bl MOD83_02233388
+ cmp r0, #0
+ bne _02233A98
+ ldrh r0, [r4, #8]
+ cmp r0, #4
+ beq _02233A72
+ cmp r0, #5
+ bne _02233A84
+ bl MOD83_02233988
+ cmp r0, #0
+ bne _02233A98
+_02233A72:
+ bl MOD83_022334BC
+ bl MOD83_02234A94
+ cmp r0, #0
+ bne _02233A98
+ bl MOD83_0223335C
+ pop {r4, pc}
+_02233A84:
+ ldrh r0, [r4, #2]
+ bl MOD83_02234958
+ bl MOD83_0223335C
+ pop {r4, pc}
+_02233A90:
+ bl MOD83_02234958
+ bl MOD83_0223335C
+_02233A98:
+ pop {r4, pc}
+ nop
+_02233A9C: .word 0x000001C3
+ thumb_func_end MOD83_02233A30
+
+ thumb_func_start MOD83_02233AA0
+MOD83_02233AA0: ; 0x02233AA0
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ bne _02233AE4
+ mov r0, #7
+ bl MOD83_02234580
+ bl MOD83_02233388
+ cmp r0, #0
+ bne _02233AEC
+ bl MOD83_022345A4
+ cmp r0, #1
+ bne _02233AEC
+ bl MOD83_02234664
+ ldr r1, _02233AF0 ; =0x000001C3
+ ldrb r0, [r0, r1]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ cmp r0, #2
+ bne _02233AEC
+ bl MOD83_02234B48
+ cmp r0, #0
+ bne _02233ADC
+ bl MOD83_0223335C
+ pop {r3, pc}
+_02233ADC:
+ mov r0, #3
+ bl MOD83_02234580
+ pop {r3, pc}
+_02233AE4:
+ bl MOD83_02234958
+ bl MOD83_0223335C
+_02233AEC:
+ pop {r3, pc}
+ nop
+_02233AF0: .word 0x000001C3
+ thumb_func_end MOD83_02233AA0
+
+ thumb_func_start MOD83_02233AF4
+MOD83_02233AF4: ; 0x02233AF4
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #8]
+ bl MOD83_0223495C
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ bne _02233B7A
+ mov r0, #9
+ bl MOD83_02234580
+ bl MOD83_02233388
+ cmp r0, #0
+ bne _02233B82
+ ldrh r0, [r4, #8]
+ cmp r0, #9
+ bhi _02233B6E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02233B24: ; jump table
+ .short _02233B6E - _02233B24 - 2 ; case 0
+ .short _02233B6E - _02233B24 - 2 ; case 1
+ .short _02233B6E - _02233B24 - 2 ; case 2
+ .short _02233B6E - _02233B24 - 2 ; case 3
+ .short _02233B6E - _02233B24 - 2 ; case 4
+ .short _02233B6E - _02233B24 - 2 ; case 5
+ .short _02233B82 - _02233B24 - 2 ; case 6
+ .short _02233B38 - _02233B24 - 2 ; case 7
+ .short _02233B82 - _02233B24 - 2 ; case 8
+ .short _02233B58 - _02233B24 - 2 ; case 9
+_02233B38:
+ ldrh r0, [r4, #0xa]
+ bl MOD83_0223461C
+ mov r0, #1
+ bl MOD83_02234634
+ mov r0, #0
+ bl MOD83_02234640
+ bl MOD83_02234B80
+ cmp r0, #0
+ bne _02233B82
+ bl MOD83_0223335C
+ pop {r4, pc}
+_02233B58:
+ bl MOD83_02234628
+ cmp r0, #0
+ beq _02233B66
+ mov r0, #1
+ bl MOD83_02234640
+_02233B66:
+ mov r0, #0
+ bl MOD83_02234634
+ pop {r4, pc}
+_02233B6E:
+ ldrh r0, [r4, #2]
+ bl MOD83_02234958
+ bl MOD83_0223335C
+ pop {r4, pc}
+_02233B7A:
+ bl MOD83_02234958
+ bl MOD83_0223335C
+_02233B82:
+ pop {r4, pc}
+ thumb_func_end MOD83_02233AF4
+
+ thumb_func_start MOD83_02233B84
+MOD83_02233B84: ; 0x02233B84
+ push {r3, lr}
+ bl MOD83_022345A4
+ cmp r0, #1
+ beq _02233BBE
+ cmp r0, #2
+ bne _02233BD6
+ bl MOD83_02233438
+ cmp r0, #0
+ beq _02233BB8
+ bl MOD83_022333D8
+ bl MOD83_022349EC
+ cmp r0, #0
+ beq _02233BB8
+ bl MOD83_0223466C
+ mov r1, #1
+ add r0, #0x60
+ strb r1, [r0]
+ mov r0, #3
+ bl MOD83_02234580
+ pop {r3, pc}
+_02233BB8:
+ bl MOD83_0223335C
+ pop {r3, pc}
+_02233BBE:
+ bl MOD83_02233490
+ bl MOD83_02234A70
+ cmp r0, #0
+ bne _02233BD0
+ bl MOD83_0223335C
+ pop {r3, pc}
+_02233BD0:
+ mov r0, #3
+ bl MOD83_02234580
+_02233BD6:
+ pop {r3, pc}
+ thumb_func_end MOD83_02233B84
+
+ thumb_func_start MOD83_02233BD8
+MOD83_02233BD8: ; 0x02233BD8
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #4]
+ bl MOD83_0223495C
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ bne _02233C12
+ ldrh r0, [r4]
+ cmp r0, #0xe
+ bne _02233BF6
+ bl MOD83_02233388
+ cmp r0, #0
+ bne _02233C22
+_02233BF6:
+ bl MOD83_022345A4
+ cmp r0, #1
+ beq _02233C0A
+ cmp r0, #2
+ bne _02233C22
+ mov r0, #0xa
+ bl MOD83_02234580
+ pop {r4, pc}
+_02233C0A:
+ mov r0, #0xb
+ bl MOD83_02234580
+ pop {r4, pc}
+_02233C12:
+ cmp r0, #9
+ beq _02233C22
+ cmp r0, #0xd
+ beq _02233C22
+ cmp r0, #0xf
+ beq _02233C22
+ bl MOD83_0223335C
+_02233C22:
+ pop {r4, pc}
+ thumb_func_end MOD83_02233BD8
+
+ thumb_func_start MOD83_02233C24
+MOD83_02233C24: ; 0x02233C24
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl MOD83_02234694
+ add r4, r0, #0
+ ldrb r0, [r4, #0x19]
+ cmp r0, #1
+ bne _02233C9A
+ ldrh r1, [r6, #0x10]
+ ldr r0, [r6, #0xc]
+ ldr r5, [r4, #0xc]
+ bl DC_FlushRange
+ ldrh r2, [r6, #0x10]
+ ldr r0, [r6, #0xc]
+ ldr r1, [r4, #0xc]
+ bl MI_CpuCopy8
+ bl MOD83_022346BC
+ ldr r1, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, r0
+ bne _02233C9A
+ bl MOD83_022346CC
+ ldr r1, [r5]
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x1c
+ cmp r1, r0
+ bhi _02233C9A
+ ldr r0, [r4, #0xc]
+ bl MOD83_02234900
+ ldr r0, [r5, #8]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldrb r0, [r4, #0x1c]
+ cmp r1, r0
+ bne _02233C9A
+ ldr r0, [r4, #0xc]
+ bl MOD83_0223496C
+ ldr r0, [r4, #0xc]
+ bl MOD83_02234934
+ cmp r0, #0
+ beq _02233C96
+ ldr r0, [r5, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x18
+ cmp r0, #1
+ beq _02233C96
+ mov r0, #2
+ strb r0, [r4, #0x19]
+ pop {r4, r5, r6, pc}
+_02233C96:
+ mov r0, #0
+ strb r0, [r4, #0x19]
+_02233C9A:
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD83_02233C24
+
+ thumb_func_start MOD83_02233C9C
+MOD83_02233C9C: ; 0x02233C9C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl MOD83_02234694
+ add r4, r0, #0
+ bl MOD83_022345A4
+ cmp r0, #2
+ bne _02233D24
+ ldrb r0, [r4, #0x19]
+ cmp r0, #2
+ beq _02233D24
+ ldrh r1, [r6, #0x10]
+ ldr r0, [r6, #0xc]
+ ldr r5, [r4, #0xc]
+ bl DC_FlushRange
+ ldrh r2, [r6, #0x10]
+ ldr r0, [r6, #0xc]
+ ldr r1, [r4, #0xc]
+ bl MI_CpuCopy8
+ bl MOD83_022346BC
+ ldr r1, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, r0
+ bne _02233D24
+ bl MOD83_022346CC
+ ldr r1, [r5]
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x1c
+ cmp r1, r0
+ bhi _02233D24
+ ldr r0, [r4, #0xc]
+ bl MOD83_02234900
+ ldr r0, [r5, #8]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0xfd
+ bne _02233D24
+ bl MOD83_0223466C
+ ldrh r5, [r6, #0x12]
+ mov r2, #0
+ add r3, r0, #0
+_02233CFE:
+ ldrh r1, [r3, #6]
+ cmp r5, r1
+ bne _02233D1C
+ mov r1, #0xc
+ mul r1, r2
+ add r1, r0, r1
+ mov r2, #1
+ strb r2, [r1, #8]
+ mov r0, #3
+ strb r0, [r1, #9]
+ mov r0, #0xb4
+ strb r0, [r4, #0x1a]
+ mov r0, #0
+ strb r0, [r4, #0x19]
+ pop {r4, r5, r6, pc}
+_02233D1C:
+ add r2, r2, #1
+ add r3, #0xc
+ cmp r2, #8
+ blt _02233CFE
+_02233D24:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233C9C
+
+ thumb_func_start MOD83_02233D28
+MOD83_02233D28: ; 0x02233D28
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl MOD83_02234694
+ add r4, r0, #0
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #0xfd
+ bne _02233D40
+ add r0, r6, #0
+ bl MOD83_02233C9C
+ pop {r4, r5, r6, pc}
+_02233D40:
+ ldrb r0, [r4, #0x19]
+ cmp r0, #1
+ beq _02233D4C
+ ldrb r0, [r4, #0x19]
+ cmp r0, #3
+ bne _02233DE8
+_02233D4C:
+ ldrb r0, [r4, #0x1b]
+ cmp r0, #0
+ bne _02233DE8
+ ldrh r1, [r6, #0x10]
+ ldr r0, [r6, #0xc]
+ ldr r5, [r4, #0xc]
+ bl DC_FlushRange
+ ldrh r2, [r6, #0x10]
+ ldr r0, [r6, #0xc]
+ ldr r1, [r4, #0xc]
+ bl MI_CpuCopy8
+ bl MOD83_022346BC
+ ldr r1, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, r0
+ bne _02233DE8
+ bl MOD83_022346CC
+ ldr r1, [r5]
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x1c
+ cmp r1, r0
+ bhi _02233DE8
+ ldr r0, [r4, #0xc]
+ bl MOD83_02234900
+ ldr r0, [r5, #8]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldrb r0, [r4, #0x1c]
+ cmp r1, r0
+ bne _02233DE8
+ ldr r0, [r4, #0xc]
+ bl MOD83_0223496C
+ mov r0, #0
+ strb r0, [r4, #0x19]
+ ldr r0, [r4, #0xc]
+ bl MOD83_02234934
+ cmp r0, #0
+ beq _02233DDA
+ ldr r0, [r5, #8]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0xfd
+ bne _02233DBA
+ add r0, r6, #0
+ bl MOD83_02233C9C
+ b _02233DCC
+_02233DBA:
+ ldr r2, [r5, #0xc]
+ ldr r1, [r4, #0xc]
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ add r0, r1, r0
+ ldr r1, [r4, #4]
+ lsr r2, r2, #8
+ bl MI_CpuCopy8
+_02233DCC:
+ ldr r1, [r5, #8]
+ ldr r0, _02233DEC ; =0xFFFF00FF
+ and r0, r1
+ str r0, [r5, #8]
+ mov r0, #4
+ strb r0, [r4, #0x1b]
+ pop {r4, r5, r6, pc}
+_02233DDA:
+ ldr r1, [r5, #8]
+ ldr r0, _02233DEC ; =0xFFFF00FF
+ and r1, r0
+ mov r0, #1
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r5, #8]
+_02233DE8:
+ pop {r4, r5, r6, pc}
+ nop
+_02233DEC: .word 0xFFFF00FF
+ thumb_func_end MOD83_02233D28
+
+ thumb_func_start MOD83_02233DF0
+MOD83_02233DF0: ; 0x02233DF0
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #4]
+ bl MOD83_0223495C
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ bne _02233E72
+ ldrh r0, [r4, #4]
+ cmp r0, #7
+ beq _02233E3A
+ cmp r0, #9
+ beq _02233E48
+ cmp r0, #0x15
+ bne _02233E72
+ bl MOD83_02234574
+ cmp r0, #0xa
+ beq _02233E1A
+ cmp r0, #0xb
+ bne _02233E72
+_02233E1A:
+ bl MOD83_02234694
+ ldrb r0, [r0, #0x18]
+ cmp r0, #1
+ beq _02233E2A
+ cmp r0, #2
+ beq _02233E32
+ pop {r4, pc}
+_02233E2A:
+ add r0, r4, #0
+ bl MOD83_02233C24
+ pop {r4, pc}
+_02233E32:
+ add r0, r4, #0
+ bl MOD83_02233D28
+ pop {r4, pc}
+_02233E3A:
+ mov r0, #1
+ bl MOD83_02234634
+ mov r0, #0
+ bl MOD83_02234640
+ pop {r4, pc}
+_02233E48:
+ bl MOD83_02234628
+ cmp r0, #0
+ beq _02233E56
+ mov r0, #1
+ bl MOD83_02234640
+_02233E56:
+ bl MOD83_02234574
+ cmp r0, #0xa
+ beq _02233E64
+ cmp r0, #0xb
+ beq _02233E6C
+ pop {r4, pc}
+_02233E64:
+ ldrh r0, [r4, #0x12]
+ bl MOD83_022333B0
+ pop {r4, pc}
+_02233E6C:
+ mov r0, #0
+ bl MOD83_02234634
+_02233E72:
+ pop {r4, pc}
+ thumb_func_end MOD83_02233DF0
+
+ thumb_func_start MOD83_02233E74
+MOD83_02233E74: ; 0x02233E74
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ bne _02233E8A
+ bl MOD83_02233388
+ cmp r0, #0
+ bne _02233E94
+ bl MOD83_02233B84
+ pop {r3, pc}
+_02233E8A:
+ bl MOD83_02234958
+ mov r0, #4
+ bl MOD83_02234580
+_02233E94:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233E74
+
+ thumb_func_start MOD83_02233E98
+MOD83_02233E98: ; 0x02233E98
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ bne _02233EB0
+ bl MOD83_022349CC
+ cmp r0, #0
+ beq _02233EB8
+ mov r0, #2
+ bl MOD83_02234580
+ pop {r3, pc}
+_02233EB0:
+ bl MOD83_02234958
+ bl MOD83_0223335C
+_02233EB8:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233E98
+
+ thumb_func_start MOD83_02233EBC
+MOD83_02233EBC: ; 0x02233EBC
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ bne _02233EF2
+ mov r0, #0
+ bl MOD83_0223461C
+ bl MOD83_0223458C
+ cmp r0, #0xc
+ bne _02233EE2
+ bl MOD83_02234C54
+ cmp r0, #0
+ beq _02233EFC
+ mov r0, #3
+ bl MOD83_02234580
+ pop {r3, pc}
+_02233EE2:
+ bl MOD83_02234C14
+ cmp r0, #0
+ beq _02233EFC
+ mov r0, #3
+ bl MOD83_02234580
+ pop {r3, pc}
+_02233EF2:
+ bl MOD83_02234958
+ mov r0, #4
+ bl MOD83_02234580
+_02233EFC:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233EBC
+
+ thumb_func_start MOD83_02233F00
+MOD83_02233F00: ; 0x02233F00
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ bne _02233F16
+ mov r0, #0xc
+ bl MOD83_02234580
+ mov r0, #1
+ bl MOD83_0223464C
+ pop {r3, pc}
+_02233F16:
+ bl MOD83_02234958
+ mov r0, #4
+ bl MOD83_02234580
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233F00
+
+ thumb_func_start MOD83_02233F24
+MOD83_02233F24: ; 0x02233F24
+ push {r3, lr}
+ ldr r0, _02233F40 ; =MOD83_0223350C
+ bl WM_SetIndCallback
+ cmp r0, #0
+ beq _02233F3A
+ mov r0, #4
+ bl MOD83_02234580
+ mov r0, #0
+ pop {r3, pc}
+_02233F3A:
+ mov r0, #1
+ pop {r3, pc}
+ nop
+_02233F40: .word MOD83_0223350C
+ thumb_func_end MOD83_02233F24
+
+ thumb_func_start MOD83_02233F44
+MOD83_02233F44: ; 0x02233F44
+ push {r3, lr}
+ bl MOD83_02234574
+ cmp r0, #0
+ beq _02233F56
+ cmp r0, #1
+ beq _02233F56
+ cmp r0, #2
+ bne _02233F5A
+_02233F56:
+ bl MOD83_022349B0
+_02233F5A:
+ pop {r3, pc}
+ thumb_func_end MOD83_02233F44
+
+ thumb_func_start MOD83_02233F5C
+MOD83_02233F5C: ; 0x02233F5C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ bl MOD83_02234564
+ ldrh r0, [r0, #0x34]
+ cmp r4, r0
+ bhi _02233F80
+ add r0, r5, #0
+ add r1, r4, #0
+ bl DC_FlushRange
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD83_02234970
+_02233F80:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233F5C
+
+ thumb_func_start MOD83_02233F84
+MOD83_02233F84: ; 0x02233F84
+ mov r0, #0x17
+ lsl r0, r0, #6
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_02233F84
+
+ thumb_func_start MOD83_02233F8C
+MOD83_02233F8C: ; 0x02233F8C
+ mov r0, #0x17
+ lsl r0, r0, #6
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_02233F8C
+
+ thumb_func_start MOD83_02233F94
+MOD83_02233F94: ; 0x02233F94
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r5, r0, #0
+ bl MOD83_02234564
+ bl MOD83_0223456C
+ add r4, r0, #0
+ mov r0, #0x1f
+ add r1, r7, #0
+ and r1, r0
+ beq _02233FB2
+ mov r0, #0x20
+ sub r0, r0, r1
+ add r7, r7, r0
+_02233FB2:
+ mov r1, #0
+ strb r1, [r4]
+ strb r1, [r4, #1]
+ strb r1, [r4, #2]
+ mov r0, #4
+ strb r0, [r4, #3]
+ ldr r0, _022340B8 ; =0x00400131
+ str r0, [r4, #4]
+ mov r0, #0xf
+ strh r1, [r4, #0xc]
+ lsl r0, r0, #8
+ str r7, [r4, #0x34]
+ add r7, r7, r0
+ str r7, [r4, #0x38]
+ bl MOD83_02233F84
+ str r0, [r4, #0x2c]
+ add r7, r7, r0
+ str r7, [r4, #0x3c]
+ bl MOD83_02233F8C
+ add r7, r7, r0
+ str r0, [r4, #0x30]
+ add r0, r7, #0
+ str r7, [r4, #0x28]
+ add r0, #0xc0
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x34]
+ mov r1, #2
+ add r7, #0xe0
+ bl WM_Init
+ bl MOD83_02233F24
+ str r0, [r4, #0x10]
+ mov r2, #0
+ str r2, [r4, #0x14]
+ str r2, [r4, #0x18]
+ str r2, [r4, #0x1c]
+ str r2, [r4, #0x20]
+ ldr r0, [r4, #0x40]
+ mov r6, #0xff
+ bic r0, r6
+ add r3, r0, #0
+ mov r1, #0xf
+ orr r3, r1
+ ldr r0, _022340BC ; =0xFFFFF0FF
+ add r1, #0xf1
+ and r0, r3
+ orr r1, r0
+ ldr r0, _022340C0 ; =0xFFFF0FFF
+ and r1, r0
+ mov r0, #1
+ lsl r0, r0, #0xc
+ orr r0, r1
+ str r0, [r4, #0x40]
+ ldr r3, [r5]
+ ldr r1, [r4, #0x44]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ lsl r3, r3, #0x18
+ add r0, r4, #0
+ bic r1, r6
+ lsr r3, r3, #0x18
+ orr r3, r1
+ ldr r1, _022340BC ; =0xFFFFF0FF
+ str r3, [r4, #0x44]
+ and r1, r3
+ ldr r3, [r5]
+ add r0, #0x44
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x1c
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x14
+ orr r3, r1
+ ldr r1, _022340C0 ; =0xFFFF0FFF
+ str r3, [r4, #0x44]
+ and r1, r3
+ ldr r3, [r5]
+ lsl r3, r3, #0x10
+ lsr r3, r3, #0x1c
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x10
+ orr r1, r3
+ str r1, [r4, #0x44]
+ ldr r1, [r0]
+ ldr r3, [r5]
+ lsl r1, r1, #0x10
+ lsr r3, r3, #0x10
+ lsr r1, r1, #0x10
+ lsl r3, r3, #0x10
+ orr r1, r3
+ str r1, [r0]
+ ldr r0, [r5, #8]
+ ldr r1, [r5, #4]
+ add r3, r4, #0
+ b _0223408C
+_02234074:
+ ldrh r6, [r0]
+ add r5, r3, #0
+ add r5, #0x48
+ strh r6, [r5]
+ add r5, r3, #0
+ ldrh r6, [r1]
+ add r5, #0x60
+ add r3, r3, #2
+ strh r6, [r5]
+ add r2, r2, #1
+ add r0, r0, #2
+ add r1, r1, #2
+_0223408C:
+ cmp r0, #0
+ beq _02234094
+ cmp r2, #0xc
+ blo _02234074
+_02234094:
+ ldr r1, [r4, #0x40]
+ ldr r0, [r4, #0x44]
+ str r1, [r4, #0x78]
+ str r0, [r4, #0x7c]
+ bl MOD83_022346A4
+ bl MOD83_02234694
+ str r7, [r0, #8]
+ ldr r0, [r4, #0x2c]
+ add r7, r7, r0
+ bl MOD83_02234694
+ str r7, [r0, #0xc]
+ bl WM_GetNextTgid
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022340B8: .word 0x00400131
+_022340BC: .word 0xFFFFF0FF
+_022340C0: .word 0xFFFF0FFF
+ thumb_func_end MOD83_02233F94
+
+ thumb_func_start MOD83_022340C4
+MOD83_022340C4: ; 0x022340C4
+ push {r3, r4, r5, lr}
+ bl MOD83_02234694
+ add r4, r0, #0
+ ldrb r0, [r4, #0x19]
+ cmp r0, #1
+ bne _022340E2
+ ldrb r0, [r4, #0x1a]
+ sub r0, r0, #1
+ strb r0, [r4, #0x1a]
+ ldrb r0, [r4, #0x1a]
+ cmp r0, #0
+ bne _02234118
+ mov r0, #0
+ strb r0, [r4, #0x19]
+_022340E2:
+ ldrb r0, [r4, #0x19]
+ cmp r0, #0
+ bne _02234118
+ bl MOD83_02234770
+ mov r1, #0x40
+ sub r5, r1, r0
+ ldrb r0, [r4, #0x1c]
+ add r2, r5, #0
+ mov r3, #3
+ str r0, [sp]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #4]
+ bl MOD83_022347D0
+ bl MOD83_02234770
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ ldr r2, _0223411C ; =0x0000FFFF
+ add r1, r5, r1
+ bl MOD83_02233F5C
+ mov r0, #1
+ strb r0, [r4, #0x19]
+ mov r0, #0x3c
+ strb r0, [r4, #0x1a]
+_02234118:
+ pop {r3, r4, r5, pc}
+ nop
+_0223411C: .word 0x0000FFFF
+ thumb_func_end MOD83_022340C4
+
+ thumb_func_start MOD83_02234120
+MOD83_02234120: ; 0x02234120
+ push {r3, r4, r5, r6, r7, lr}
+ bl MOD83_02234694
+ add r4, r0, #0
+ ldrb r0, [r4, #0x19]
+ cmp r0, #0
+ bne _022341D6
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #0xfd
+ bne _02234198
+ bl MOD83_0223466C
+ add r5, r0, #0
+ mov r1, #0
+ add r2, r5, #0
+_0223413E:
+ ldrb r0, [r2, #9]
+ cmp r0, #0
+ beq _0223417E
+ add r6, r1, #0
+ mov r0, #0xc
+ mul r6, r0
+ add r0, r5, r6
+ ldrh r0, [r0, #6]
+ mov r1, #1
+ mov r2, #0
+ lsl r1, r0
+ lsl r0, r1, #0x10
+ lsr r7, r0, #0x10
+ mov r0, #0xfd
+ str r0, [sp]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #4]
+ add r3, r2, #0
+ bl MOD83_022347D0
+ bl MOD83_02234770
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ add r2, r7, #0
+ bl MOD83_02233F5C
+ add r5, #9
+ ldrb r0, [r5, r6]
+ sub r0, r0, #1
+ strb r0, [r5, r6]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223417E:
+ add r1, r1, #1
+ add r2, #0xc
+ cmp r1, #8
+ blt _0223413E
+ ldrb r0, [r4, #0x1a]
+ sub r0, r0, #1
+ strb r0, [r4, #0x1a]
+ ldrb r0, [r4, #0x1a]
+ cmp r0, #0
+ bne _022341D6
+ mov r0, #2
+ strb r0, [r4, #0x19]
+ pop {r3, r4, r5, r6, r7, pc}
+_02234198:
+ bl MOD83_02234770
+ bl MOD83_02233F84
+ ldr r0, [r4, #0xc]
+ ldr r0, [r0, #8]
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x18
+ bne _022341BA
+ ldrb r0, [r4, #0x1b]
+ cmp r0, #0
+ bne _022341B6
+ mov r0, #2
+ strb r0, [r4, #0x19]
+ pop {r3, r4, r5, r6, r7, pc}
+_022341B6:
+ sub r0, r0, #1
+ strb r0, [r4, #0x1b]
+_022341BA:
+ ldrb r0, [r4, #0x1c]
+ mov r2, #0
+ str r0, [sp]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #4]
+ bl MOD83_022347D0
+ bl MOD83_02234770
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ ldr r2, _022341D8 ; =0x0000FFFF
+ bl MOD83_02233F5C
+_022341D6:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022341D8: .word 0x0000FFFF
+ thumb_func_end MOD83_02234120
+
+ thumb_func_start MOD83_022341DC
+MOD83_022341DC: ; 0x022341DC
+ push {r3, lr}
+ bl MOD83_02234694
+ ldrb r0, [r0, #0x18]
+ cmp r0, #1
+ beq _022341EE
+ cmp r0, #2
+ beq _022341F4
+ pop {r3, pc}
+_022341EE:
+ bl MOD83_022340C4
+ pop {r3, pc}
+_022341F4:
+ bl MOD83_02234120
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022341DC
+
+ thumb_func_start MOD83_022341FC
+MOD83_022341FC: ; 0x022341FC
+ push {r4, lr}
+ bl MOD83_02234664
+ add r4, r0, #0
+ bl MOD83_02234574
+ cmp r0, #6
+ beq _02234212
+ cmp r0, #0xb
+ beq _02234222
+ pop {r4, pc}
+_02234212:
+ mov r0, #7
+ lsl r0, r0, #6
+ ldrh r1, [r4, r0]
+ cmp r1, #0
+ beq _02234226
+ sub r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r4, pc}
+_02234222:
+ bl MOD83_022341DC
+_02234226:
+ pop {r4, pc}
+ thumb_func_end MOD83_022341FC
+
+ thumb_func_start MOD83_02234228
+MOD83_02234228: ; 0x02234228
+ push {r3, lr}
+ bl MOD83_02234574
+ cmp r0, #0xa
+ bne _02234236
+ bl MOD83_022341DC
+_02234236:
+ pop {r3, pc}
+ thumb_func_end MOD83_02234228
+
+ thumb_func_start MOD83_02234238
+MOD83_02234238: ; 0x02234238
+ push {r3, lr}
+ bl MOD83_02234574
+ cmp r0, #0xc
+ beq _0223427A
+ bl MOD83_0223458C
+ cmp r0, #0xc
+ bne _02234258
+ bl MOD83_02234574
+ cmp r0, #7
+ bne _0223427A
+ bl MOD83_02234C34
+ pop {r3, pc}
+_02234258:
+ bl MOD83_022345A4
+ cmp r0, #1
+ beq _02234266
+ cmp r0, #2
+ beq _0223426C
+ b _02234272
+_02234266:
+ bl MOD83_022341FC
+ pop {r3, pc}
+_0223426C:
+ bl MOD83_02234228
+ pop {r3, pc}
+_02234272:
+ bl MOD83_0223456C
+ bl MOD83_02234574
+_0223427A:
+ pop {r3, pc}
+ thumb_func_end MOD83_02234238
+
+ thumb_func_start MOD83_0223427C
+MOD83_0223427C: ; 0x0223427C
+ push {r3, lr}
+ bl MOD83_02234674
+ mov r0, #1
+ bl MOD83_022345B0
+ bl MOD83_02233F44
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0223427C
+
+ thumb_func_start MOD83_02234290
+MOD83_02234290: ; 0x02234290
+ push {r4, lr}
+ bl MOD83_022345A4
+ mov r4, #0
+ cmp r0, #1
+ bne _022342BE
+ bl MOD83_02234664
+ ldr r1, _022342C4 ; =0x000001C3
+ ldrb r1, [r0, r1]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1c
+ cmp r1, #1
+ bne _022342BE
+ add r2, r4, #0
+_022342AE:
+ ldr r1, [r0]
+ cmp r1, #0
+ beq _022342B6
+ add r4, r4, #1
+_022342B6:
+ add r2, r2, #1
+ add r0, #0x38
+ cmp r2, #8
+ blo _022342AE
+_022342BE:
+ add r0, r4, #0
+ pop {r4, pc}
+ nop
+_022342C4: .word 0x000001C3
+ thumb_func_end MOD83_02234290
+
+ thumb_func_start MOD83_022342C8
+MOD83_022342C8: ; 0x022342C8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_022345A4
+ cmp r0, #1
+ bne _022342FA
+ bl MOD83_02234574
+ cmp r0, #7
+ bne _022342FA
+ bl MOD83_02234664
+ ldr r1, _02234300 ; =0x000001C3
+ ldrb r1, [r0, r1]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1c
+ cmp r1, #1
+ bne _022342FA
+ mov r1, #0x38
+ mul r1, r4
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _022342FA
+ mov r0, #1
+ pop {r4, pc}
+_022342FA:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02234300: .word 0x000001C3
+ thumb_func_end MOD83_022342C8
+
+ thumb_func_start MOD83_02234304
+MOD83_02234304: ; 0x02234304
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ bl MOD83_022345A4
+ cmp r0, #1
+ bne _0223434E
+ bl MOD83_02234574
+ cmp r0, #7
+ bne _0223434E
+ bl MOD83_02234664
+ ldr r2, _02234350 ; =0x000001C3
+ ldrb r3, [r0, r2]
+ lsl r1, r3, #0x18
+ lsr r1, r1, #0x1c
+ cmp r1, #1
+ bne _0223434E
+ mov r1, #0x38
+ add r5, r4, #0
+ mul r5, r1
+ ldr r5, [r0, r5]
+ cmp r5, #0
+ beq _0223434E
+ mov r5, #0xf
+ lsl r4, r4, #0x18
+ bic r3, r5
+ lsr r5, r4, #0x18
+ mov r4, #0xf
+ and r4, r5
+ orr r3, r4
+ strb r3, [r0, r2]
+ mov r2, #0x78
+ lsl r1, r1, #3
+ strh r2, [r0, r1]
+ bl MOD83_02234A94
+_0223434E:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02234350: .word 0x000001C3
+ thumb_func_end MOD83_02234304
+
+ thumb_func_start MOD83_02234354
+MOD83_02234354: ; 0x02234354
+ push {r4, lr}
+ bl MOD83_022345A4
+ mov r4, #0
+ cmp r0, #2
+ bne _02234386
+ bl MOD83_0223466C
+ add r1, r0, #0
+ add r1, #0x60
+ ldrb r1, [r1]
+ cmp r1, #2
+ bne _02234386
+ add r2, r4, #0
+_02234370:
+ ldr r1, [r0]
+ cmp r1, #0
+ beq _0223437E
+ ldrb r1, [r0, #0xa]
+ cmp r1, #0
+ beq _0223437E
+ add r4, r4, #1
+_0223437E:
+ add r2, r2, #1
+ add r0, #0xc
+ cmp r2, #8
+ blo _02234370
+_02234386:
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234354
+
+ thumb_func_start MOD83_0223438C
+MOD83_0223438C: ; 0x0223438C
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x20]
+ cmp r0, #0
+ beq _0223439C
+ mov r0, #0
+ pop {r3, pc}
+_0223439C:
+ bl WM_GetLinkLevel
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0223438C
+
+ thumb_func_start MOD83_022343A4
+MOD83_022343A4: ; 0x022343A4
+ push {r3, lr}
+ bl MOD83_022345A4
+ cmp r0, #1
+ beq _022343B4
+ cmp r0, #2
+ beq _022343BA
+ b _022343C0
+_022343B4:
+ bl MOD83_02234290
+ pop {r3, pc}
+_022343BA:
+ bl MOD83_02234354
+ pop {r3, pc}
+_022343C0:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD83_022343A4
+
+ thumb_func_start MOD83_022343C4
+MOD83_022343C4: ; 0x022343C4
+ push {r3, r4, r5, lr}
+ bl MOD83_02234694
+ add r5, r0, #0
+ bl MOD83_022346EC
+ add r4, r0, #0
+ bl MOD83_022345A4
+ cmp r0, #1
+ bne _022343F6
+ mov r0, #1
+ strb r0, [r5, #0x18]
+ mov r1, #0
+ strb r1, [r5, #0x19]
+ add r4, #8
+ str r4, [r5]
+ str r4, [r5, #4]
+ str r1, [r5, #0x10]
+ str r1, [r5, #0x14]
+ mov r0, #0x78
+ strb r0, [r5, #0x1a]
+ strb r1, [r5, #0x1b]
+ mov r0, #0xfd
+ strb r0, [r5, #0x1c]
+_022343F6:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD83_022343C4
+
+ thumb_func_start MOD83_022343F8
+MOD83_022343F8: ; 0x022343F8
+ push {r4, lr}
+ bl MOD83_02234694
+ add r4, r0, #0
+ bl MOD83_022346EC
+ mov r1, #1
+ strb r1, [r4, #0x18]
+ mov r1, #0
+ strb r1, [r4, #0x19]
+ add r0, #8
+ str r0, [r4]
+ str r0, [r4, #4]
+ mov r0, #0x30
+ str r0, [r4, #0x10]
+ str r0, [r4, #0x14]
+ mov r0, #0x78
+ strb r0, [r4, #0x1a]
+ strb r1, [r4, #0x1b]
+ mov r0, #0xfe
+ strb r0, [r4, #0x1c]
+ pop {r4, pc}
+ thumb_func_end MOD83_022343F8
+
+ thumb_func_start MOD83_02234424
+MOD83_02234424: ; 0x02234424
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ bl MOD83_02234694
+ cmp r4, #0xf0
+ bgt _0223444E
+ mov r1, #2
+ strb r1, [r0, #0x18]
+ mov r1, #3
+ strb r1, [r0, #0x19]
+ str r5, [r0]
+ str r5, [r0, #4]
+ str r6, [r0, #0x10]
+ mov r2, #0
+ str r2, [r0, #0x14]
+ mov r1, #0x78
+ strb r1, [r0, #0x1a]
+ strb r2, [r0, #0x1b]
+ strb r4, [r0, #0x1c]
+_0223444E:
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD83_02234424
+
+ thumb_func_start MOD83_02234450
+MOD83_02234450: ; 0x02234450
+ push {r3, lr}
+ bl MOD83_022345A4
+ cmp r0, #1
+ beq _0223445E
+ cmp r0, #2
+ bne _02234478
+_0223445E:
+ bl MOD83_02234574
+ cmp r0, #0xa
+ beq _0223446A
+ cmp r0, #0xb
+ bne _02234478
+_0223446A:
+ bl MOD83_02234694
+ ldrb r0, [r0, #0x19]
+ cmp r0, #2
+ bne _02234478
+ mov r0, #1
+ pop {r3, pc}
+_02234478:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD83_02234450
+
+ thumb_func_start MOD83_0223447C
+MOD83_0223447C: ; 0x0223447C
+ push {r3, lr}
+ bl MOD83_022345A4
+ cmp r0, #1
+ beq _0223448A
+ cmp r0, #2
+ bne _022344A4
+_0223448A:
+ bl MOD83_02234574
+ cmp r0, #0xa
+ beq _02234496
+ cmp r0, #0xb
+ bne _022344A4
+_02234496:
+ bl MOD83_02234694
+ ldrb r0, [r0, #0x19]
+ cmp r0, #2
+ bne _022344A4
+ mov r0, #1
+ pop {r3, pc}
+_022344A4:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD83_0223447C
+
+ thumb_func_start MOD83_022344A8
+MOD83_022344A8: ; 0x022344A8
+ push {r3, lr}
+ bl MOD83_022345A4
+ cmp r0, #1
+ beq _022344B6
+ cmp r0, #2
+ bne _022344E0
+_022344B6:
+ bl MOD83_02234574
+ cmp r0, #0xa
+ beq _022344C2
+ cmp r0, #0xb
+ bne _022344E0
+_022344C2:
+ bl MOD83_02234694
+ ldrb r1, [r0, #0x19]
+ cmp r1, #0
+ bne _022344E0
+ ldr r1, [r0, #0xc]
+ ldr r1, [r1, #8]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x18
+ bne _022344E0
+ ldrb r0, [r0, #0x1b]
+ cmp r0, #4
+ bhs _022344E0
+ mov r0, #1
+ pop {r3, pc}
+_022344E0:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD83_022344A8
+
+ thumb_func_start MOD83_022344E4
+MOD83_022344E4: ; 0x022344E4
+ push {r3, lr}
+ bl MOD83_022345A4
+ cmp r0, #2
+ bne _02234510
+ bl MOD83_0223466C
+ mov r2, #0
+_022344F4:
+ ldr r1, [r0]
+ cmp r1, #0
+ beq _02234504
+ ldrb r1, [r0, #0xa]
+ cmp r1, #0
+ beq _02234504
+ mov r0, #1
+ pop {r3, pc}
+_02234504:
+ add r2, r2, #1
+ add r0, #0xc
+ cmp r2, #8
+ blt _022344F4
+ mov r0, #0
+ pop {r3, pc}
+_02234510:
+ bl MOD83_02234628
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022344E4
+
+ thumb_func_start MOD83_02234518
+MOD83_02234518: ; 0x02234518
+ push {r4, lr}
+ mov r0, #0xc
+ bl MOD83_02234598
+ bl MOD83_02234574
+ cmp r0, #0
+ beq _02234532
+ cmp r0, #1
+ beq _02234532
+ cmp r0, #9
+ beq _0223453E
+ pop {r4, pc}
+_02234532:
+ bl WM_Finish
+ mov r0, #1
+ bl MOD83_0223464C
+ pop {r4, pc}
+_0223453E:
+ bl MOD83_02234628
+ cmp r0, #0
+ bne _02234554
+ bl MOD83_0223456C
+ add r4, r0, #0
+ bl MOD83_02234C34
+ mov r0, #1
+ str r0, [r4, #0x1c]
+_02234554:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234518
+
+ thumb_func_start MOD83_02234558
+MOD83_02234558: ; 0x02234558
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x20]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234558
+
+ thumb_func_start MOD83_02234564
+MOD83_02234564: ; 0x02234564
+ ldr r0, _02234568 ; =0x0223B240
+ bx lr
+ .align 2, 0
+_02234568: .word 0x0223B240
+ thumb_func_end MOD83_02234564
+
+ thumb_func_start MOD83_0223456C
+MOD83_0223456C: ; 0x0223456C
+ ldr r0, _02234570 ; =0x0223B8A0
+ bx lr
+ .align 2, 0
+_02234570: .word 0x0223B8A0
+ thumb_func_end MOD83_0223456C
+
+ thumb_func_start MOD83_02234574
+MOD83_02234574: ; 0x02234574
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldrb r0, [r0]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234574
+
+ thumb_func_start MOD83_02234580
+MOD83_02234580: ; 0x02234580
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_0223456C
+ strb r4, [r0]
+ pop {r4, pc}
+ thumb_func_end MOD83_02234580
+
+ thumb_func_start MOD83_0223458C
+MOD83_0223458C: ; 0x0223458C
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldrb r0, [r0, #1]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0223458C
+
+ thumb_func_start MOD83_02234598
+MOD83_02234598: ; 0x02234598
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_0223456C
+ strb r4, [r0, #1]
+ pop {r4, pc}
+ thumb_func_end MOD83_02234598
+
+ thumb_func_start MOD83_022345A4
+MOD83_022345A4: ; 0x022345A4
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldrb r0, [r0, #2]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022345A4
+
+ thumb_func_start MOD83_022345B0
+MOD83_022345B0: ; 0x022345B0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_0223456C
+ strb r4, [r0, #2]
+ pop {r4, pc}
+ thumb_func_end MOD83_022345B0
+
+ thumb_func_start MOD83_022345BC
+MOD83_022345BC: ; 0x022345BC
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldrb r0, [r0, #3]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022345BC
+
+ thumb_func_start MOD83_022345C8
+MOD83_022345C8: ; 0x022345C8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_02234564
+ strh r4, [r0, #0x32]
+ pop {r4, pc}
+ thumb_func_end MOD83_022345C8
+
+ thumb_func_start MOD83_022345D4
+MOD83_022345D4: ; 0x022345D4
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x24]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022345D4
+
+ thumb_func_start MOD83_022345E0
+MOD83_022345E0: ; 0x022345E0
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x2c]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022345E0
+
+ thumb_func_start MOD83_022345EC
+MOD83_022345EC: ; 0x022345EC
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x30]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022345EC
+
+ thumb_func_start MOD83_022345F8
+MOD83_022345F8: ; 0x022345F8
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x38]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022345F8
+
+ thumb_func_start MOD83_02234604
+MOD83_02234604: ; 0x02234604
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x3c]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234604
+
+ thumb_func_start MOD83_02234610
+MOD83_02234610: ; 0x02234610
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x28]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234610
+
+ thumb_func_start MOD83_0223461C
+MOD83_0223461C: ; 0x0223461C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_0223456C
+ strh r4, [r0, #0xc]
+ pop {r4, pc}
+ thumb_func_end MOD83_0223461C
+
+ thumb_func_start MOD83_02234628
+MOD83_02234628: ; 0x02234628
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x14]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234628
+
+ thumb_func_start MOD83_02234634
+MOD83_02234634: ; 0x02234634
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_0223456C
+ str r4, [r0, #0x14]
+ pop {r4, pc}
+ thumb_func_end MOD83_02234634
+
+ thumb_func_start MOD83_02234640
+MOD83_02234640: ; 0x02234640
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_0223456C
+ str r4, [r0, #0x18]
+ pop {r4, pc}
+ thumb_func_end MOD83_02234640
+
+ thumb_func_start MOD83_0223464C
+MOD83_0223464C: ; 0x0223464C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_0223456C
+ str r4, [r0, #0x20]
+ pop {r4, pc}
+ thumb_func_end MOD83_0223464C
+
+ thumb_func_start MOD83_02234658
+MOD83_02234658: ; 0x02234658
+ push {r3, lr}
+ bl MOD83_0223456C
+ add r0, #0x90
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234658
+
+ thumb_func_start MOD83_02234664
+MOD83_02234664: ; 0x02234664
+ ldr r3, _02234668 ; =MOD83_02234658
+ bx r3
+ .align 2, 0
+_02234668: .word MOD83_02234658
+ thumb_func_end MOD83_02234664
+
+ thumb_func_start MOD83_0223466C
+MOD83_0223466C: ; 0x0223466C
+ ldr r3, _02234670 ; =MOD83_02234658
+ bx r3
+ .align 2, 0
+_02234670: .word MOD83_02234658
+ thumb_func_end MOD83_0223466C
+
+ thumb_func_start MOD83_02234674
+MOD83_02234674: ; 0x02234674
+ push {r4, lr}
+ bl MOD83_02234664
+ mov r2, #0x71
+ mov r1, #0
+ lsl r2, r2, #2
+ add r4, r0, #0
+ bl MI_CpuFill8
+ mov r1, #0x46
+ lsl r1, r1, #2
+ add r0, r1, #0
+ add r0, #0xa8
+ strh r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234674
+
+ thumb_func_start MOD83_02234694
+MOD83_02234694: ; 0x02234694
+ push {r3, lr}
+ bl MOD83_0223456C
+ mov r1, #0x95
+ lsl r1, r1, #2
+ add r0, r0, r1
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234694
+
+ thumb_func_start MOD83_022346A4
+MOD83_022346A4: ; 0x022346A4
+ push {r3, lr}
+ bl MOD83_02234694
+ mov r1, #0
+ strb r1, [r0, #0x18]
+ pop {r3, pc}
+ thumb_func_end MOD83_022346A4
+
+ thumb_func_start MOD83_022346B0
+MOD83_022346B0: ; 0x022346B0
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #4]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022346B0
+
+ thumb_func_start MOD83_022346BC
+MOD83_022346BC: ; 0x022346BC
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x40]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022346BC
+
+ thumb_func_start MOD83_022346CC
+MOD83_022346CC: ; 0x022346CC
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x40]
+ lsl r0, r0, #0x14
+ lsr r0, r0, #0x1c
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022346CC
+
+ thumb_func_start MOD83_022346DC
+MOD83_022346DC: ; 0x022346DC
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x44]
+ lsr r0, r0, #0x10
+ pop {r3, pc}
+ thumb_func_end MOD83_022346DC
+
+ thumb_func_start MOD83_022346E8
+MOD83_022346E8: ; 0x022346E8
+ mov r0, #0x38
+ bx lr
+ thumb_func_end MOD83_022346E8
+
+ thumb_func_start MOD83_022346EC
+MOD83_022346EC: ; 0x022346EC
+ push {r3, lr}
+ bl MOD83_0223456C
+ add r0, #0x40
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022346EC
+
+ thumb_func_start MOD83_022346F8
+MOD83_022346F8: ; 0x022346F8
+ push {r3, lr}
+ bl MOD83_0223456C
+ add r0, #0x78
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022346F8
+
+ thumb_func_start MOD83_02234704
+MOD83_02234704: ; 0x02234704
+ push {r3}
+ sub sp, #4
+ mov r2, #0
+ str r2, [sp]
+ add r3, sp, #0
+_0223470E:
+ add r1, r0, r2
+ ldrb r1, [r1, #2]
+ add r2, r2, #1
+ strb r1, [r3]
+ add r3, r3, #1
+ cmp r2, #4
+ blo _0223470E
+ ldr r0, [sp]
+ add sp, #4
+ pop {r3}
+ bx lr
+ thumb_func_end MOD83_02234704
+
+ thumb_func_start MOD83_02234724
+MOD83_02234724: ; 0x02234724
+ push {r3}
+ sub sp, #4
+ mov r2, #0
+ add r1, sp, #0
+ strh r2, [r1]
+ add r3, sp, #0
+_02234730:
+ ldrb r1, [r0, r2]
+ add r2, r2, #1
+ strb r1, [r3]
+ add r3, r3, #1
+ cmp r2, #2
+ blo _02234730
+ add r1, sp, #0
+ mov r0, #0
+ ldrsh r0, [r1, r0]
+ add sp, #4
+ pop {r3}
+ bx lr
+ thumb_func_end MOD83_02234724
+
+ thumb_func_start MOD83_02234748
+MOD83_02234748: ; 0x02234748
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldr r1, _0223476C ; =0x00002710
+ add r6, r0, #0
+ add r4, r2, #0
+ bl _u32_div_f
+ str r1, [r5]
+ ldr r1, _0223476C ; =0x00002710
+ add r0, r6, #0
+ bl _u32_div_f
+ ldr r1, _0223476C ; =0x00002710
+ bl _u32_div_f
+ str r1, [r4]
+ pop {r4, r5, r6, pc}
+ nop
+_0223476C: .word 0x00002710
+ thumb_func_end MOD83_02234748
+
+ thumb_func_start MOD83_02234770
+MOD83_02234770: ; 0x02234770
+ mov r0, #0x10
+ bx lr
+ thumb_func_end MOD83_02234770
+
+ thumb_func_start MOD83_02234774
+MOD83_02234774: ; 0x02234774
+ push {r4, lr}
+ ldr r0, _02234788 ; =0x04000006
+ ldrh r4, [r0]
+ bl OS_GetTick
+ add r1, r0, r4
+ mov r0, #1
+ bic r1, r0
+ add r0, r1, #1
+ pop {r4, pc}
+ .align 2, 0
+_02234788: .word 0x04000006
+ thumb_func_end MOD83_02234774
+
+ thumb_func_start MOD83_0223478C
+MOD83_0223478C: ; 0x0223478C
+ push {r4, r5, r6, r7}
+ add r3, r0, #0
+ mov r0, #0
+ lsr r1, r1, #2
+ beq _022347C2
+ ldr r4, _022347C8 ; =0x00269EC3
+_02234798:
+ ldr r5, _022347CC ; =0x5D588B65
+ ldr r6, _022347CC ; =0x5D588B65
+ mul r5, r3
+ ldr r3, _022347C8 ; =0x00269EC3
+ add r0, r0, #1
+ add r3, r5, r3
+ lsr r5, r3, #0x10
+ mul r6, r3
+ add r3, r6, r4
+ lsl r5, r5, #0x10
+ lsr r7, r3, #0x10
+ lsr r5, r5, #0x10
+ lsl r7, r7, #0x10
+ ldr r6, [r2]
+ lsl r5, r5, #0x10
+ lsr r7, r7, #0x10
+ orr r5, r7
+ eor r5, r6
+ stmia r2!, {r5}
+ cmp r0, r1
+ blo _02234798
+_022347C2:
+ add r0, r3, #0
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+_022347C8: .word 0x00269EC3
+_022347CC: .word 0x5D588B65
+ thumb_func_end MOD83_0223478C
+
+ thumb_func_start MOD83_022347D0
+MOD83_022347D0: ; 0x022347D0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r1, #0
+ add r6, r2, #0
+ str r3, [sp]
+ bl MOD83_022346EC
+ add r4, r0, #0
+ ldr r0, [r5]
+ mov r1, #0xff
+ bic r0, r1
+ ldr r1, [r4]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ orr r1, r0
+ ldr r0, _022348F4 ; =0xFFFFF0FF
+ str r1, [r5]
+ and r0, r1
+ ldr r1, [r4]
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x1c
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x14
+ orr r1, r0
+ ldr r0, _022348F8 ; =0xFFFF0FFF
+ str r1, [r5]
+ and r0, r1
+ ldr r1, [r4]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x1c
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x10
+ orr r0, r1
+ str r0, [r5]
+ bl MOD83_02234774
+ ldr r1, [r5]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ lsl r0, r0, #0x10
+ orr r0, r1
+ str r0, [r5]
+ ldr r2, [r4, #4]
+ ldr r1, [r5, #4]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ mov r0, #0xff
+ lsl r2, r2, #0x18
+ bic r1, r0
+ lsr r2, r2, #0x18
+ orr r2, r1
+ ldr r1, _022348F4 ; =0xFFFFF0FF
+ str r2, [r5, #4]
+ and r1, r2
+ ldr r2, [r4, #4]
+ lsl r2, r2, #0x14
+ lsr r2, r2, #0x1c
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x14
+ orr r2, r1
+ ldr r1, _022348F8 ; =0xFFFF0FFF
+ str r2, [r5, #4]
+ and r1, r2
+ ldr r2, [r4, #4]
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x1c
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x10
+ orr r1, r2
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ str r1, [r5, #4]
+ ldr r1, [r5, #8]
+ bic r1, r0
+ ldr r0, [sp, #0x18]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ orr r1, r0
+ ldr r0, _022348FC ; =0xFFFF00FF
+ and r0, r1
+ ldr r1, [sp]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x10
+ orr r0, r1
+ str r0, [r5, #8]
+ mov r0, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ bl SVC_GetCRC16
+ ldr r1, [r5, #8]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ orr r0, r1
+ str r0, [r5, #8]
+ bl MOD83_02234770
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x18
+ ldr r1, [r5, #0xc]
+ mov r2, #0xff
+ bic r1, r2
+ lsr r0, r0, #0x18
+ orr r0, r1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ lsl r0, r6, #8
+ orr r0, r1
+ str r0, [r5, #0xc]
+ cmp r6, #0
+ beq _022348CE
+ ldr r1, [r5, #0xc]
+ add r0, r7, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r1, r5, r1
+ add r2, r6, #0
+ bl MI_CpuCopy8
+_022348CE:
+ add r0, r5, #0
+ bl MOD83_0223496C
+ ldr r0, [r4]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1c
+ cmp r0, #1
+ bne _022348F2
+ ldr r1, [r5, #0xc]
+ ldr r0, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r1, r6, r1
+ lsr r0, r0, #0x10
+ sub r1, r1, #4
+ add r2, r5, #4
+ bl MOD83_0223478C
+_022348F2:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022348F4: .word 0xFFFFF0FF
+_022348F8: .word 0xFFFF0FFF
+_022348FC: .word 0xFFFF00FF
+ thumb_func_end MOD83_022347D0
+
+ thumb_func_start MOD83_02234900
+MOD83_02234900: ; 0x02234900
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_022346EC
+ ldr r0, [r4]
+ lsl r1, r0, #0x10
+ lsr r1, r1, #0x1c
+ cmp r1, #1
+ bne _02234930
+ lsr r0, r0, #0x10
+ mov r1, #0xc
+ add r2, r4, #4
+ bl MOD83_0223478C
+ ldr r1, [r4, #0xc]
+ add r4, #0x10
+ lsl r2, r1, #0x18
+ lsr r2, r2, #0x18
+ lsr r1, r1, #8
+ add r1, r2, r1
+ sub r1, #0x10
+ add r2, r4, #0
+ bl MOD83_0223478C
+_02234930:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234900
+
+ thumb_func_start MOD83_02234934
+MOD83_02234934: ; 0x02234934
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r2, [r4, #0xc]
+ mov r0, #0
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ add r1, r4, r1
+ lsr r2, r2, #8
+ bl SVC_GetCRC16
+ ldr r1, [r4, #8]
+ lsr r1, r1, #0x10
+ cmp r1, r0
+ bne _02234954
+ mov r0, #1
+ pop {r4, pc}
+_02234954:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD83_02234934
+
+ thumb_func_start MOD83_02234958
+MOD83_02234958: ; 0x02234958
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_02234958
+
+ thumb_func_start MOD83_0223495C
+MOD83_0223495C: ; 0x0223495C
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_0223495C
+
+ thumb_func_start MOD83_02234960
+MOD83_02234960: ; 0x02234960
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_02234960
+
+ thumb_func_start MOD83_02234964
+MOD83_02234964: ; 0x02234964
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_02234964
+
+ thumb_func_start MOD83_02234968
+MOD83_02234968: ; 0x02234968
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_02234968
+
+ thumb_func_start MOD83_0223496C
+MOD83_0223496C: ; 0x0223496C
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_0223496C
+
+ thumb_func_start MOD83_02234970
+MOD83_02234970: ; 0x02234970
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r6, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ bl MOD83_022345BC
+ lsl r0, r0, #0x10
+ lsl r3, r5, #0x10
+ lsr r0, r0, #0x10
+ str r4, [sp]
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ ldr r0, _022349AC ; =MOD83_02233528
+ mov r1, #0
+ add r2, r6, #0
+ lsr r3, r3, #0x10
+ bl WM_SetMPDataToPortEx
+ cmp r0, #2
+ beq _022349A6
+ bl MOD83_02234958
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_022349A6:
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_022349AC: .word MOD83_02233528
+ thumb_func_end MOD83_02234970
+
+ thumb_func_start MOD83_022349B0
+MOD83_022349B0: ; 0x022349B0
+ push {r3, lr}
+ ldr r0, _022349C8 ; =MOD83_02233540
+ bl WM_Enable
+ cmp r0, #2
+ beq _022349C4
+ bl MOD83_02234958
+ mov r0, #0
+ pop {r3, pc}
+_022349C4:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_022349C8: .word MOD83_02233540
+ thumb_func_end MOD83_022349B0
+
+ thumb_func_start MOD83_022349CC
+MOD83_022349CC: ; 0x022349CC
+ push {r3, lr}
+ ldr r0, _022349E8 ; =MOD83_02233580
+ bl WM_Disable
+ cmp r0, #2
+ beq _022349E4
+ bl MOD83_02234958
+ bl OS_Terminate
+ mov r0, #0
+ pop {r3, pc}
+_022349E4:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_022349E8: .word MOD83_02233580
+ thumb_func_end MOD83_022349CC
+
+ thumb_func_start MOD83_022349EC
+MOD83_022349EC: ; 0x022349EC
+ push {r3, lr}
+ add r3, r0, #0
+ mov r0, #0x1e
+ str r0, [sp]
+ lsl r3, r3, #0x10
+ ldr r0, _02234A14 ; =MOD83_022335B8
+ mov r1, #3
+ mov r2, #0x11
+ lsr r3, r3, #0x10
+ bl WM_MeasureChannel
+ cmp r0, #2
+ beq _02234A0E
+ bl MOD83_02234958
+ mov r0, #0
+ pop {r3, pc}
+_02234A0E:
+ mov r0, #1
+ pop {r3, pc}
+ nop
+_02234A14: .word MOD83_022335B8
+ thumb_func_end MOD83_022349EC
+
+ thumb_func_start MOD83_02234A18
+MOD83_02234A18: ; 0x02234A18
+ push {r3, r4, r5, lr}
+ bl MOD83_02234564
+ add r5, r0, #0
+ bl MOD83_022346EC
+ add r4, r0, #0
+ bl MOD83_0223466C
+ add r0, #0x64
+ ldrb r0, [r0]
+ strh r0, [r5, #0x32]
+ str r4, [r5]
+ bl MOD83_022346E8
+ strh r0, [r5, #4]
+ ldr r0, _02234A50 ; =MOD83_02233620
+ add r1, r5, #0
+ bl WM_SetParentParameter
+ cmp r0, #2
+ beq _02234A4C
+ bl MOD83_02234958
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02234A4C:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02234A50: .word MOD83_02233620
+ thumb_func_end MOD83_02234A18
+
+ thumb_func_start MOD83_02234A54
+MOD83_02234A54: ; 0x02234A54
+ push {r3, lr}
+ ldr r0, _02234A6C ; =MOD83_02233648
+ bl WM_StartParent
+ cmp r0, #2
+ beq _02234A68
+ bl MOD83_02234958
+ mov r0, #0
+ pop {r3, pc}
+_02234A68:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_02234A6C: .word MOD83_02233648
+ thumb_func_end MOD83_02234A54
+
+ thumb_func_start MOD83_02234A70
+MOD83_02234A70: ; 0x02234A70
+ push {r3, lr}
+ bl MOD83_022345D4
+ add r1, r0, #0
+ ldr r0, _02234A90 ; =MOD83_02233914
+ bl WM_StartScan
+ cmp r0, #2
+ beq _02234A8A
+ bl MOD83_02234958
+ mov r0, #0
+ pop {r3, pc}
+_02234A8A:
+ mov r0, #1
+ pop {r3, pc}
+ nop
+_02234A90: .word MOD83_02233914
+ thumb_func_end MOD83_02234A70
+
+ thumb_func_start MOD83_02234A94
+MOD83_02234A94: ; 0x02234A94
+ push {r3, r4, r5, lr}
+ bl MOD83_022345D4
+ add r4, r0, #0
+ bl MOD83_02234664
+ ldr r2, _02234B24 ; =0x000001C3
+ mov r3, #0x38
+ ldrb r1, [r0, r2]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ add r5, r1, #0
+ mul r5, r3
+ add r1, r0, r5
+ add r1, #0x34
+ ldrb r1, [r1]
+ strb r1, [r4, #8]
+ ldrb r1, [r0, r2]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ add r5, r1, #0
+ mul r5, r3
+ add r1, r0, r5
+ add r1, #0x35
+ ldrb r1, [r1]
+ strb r1, [r4, #9]
+ ldrb r1, [r0, r2]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ add r5, r1, #0
+ mul r5, r3
+ ldrb r1, [r0, r5]
+ strb r1, [r4, #0xa]
+ ldrb r1, [r0, r2]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ add r5, r1, #0
+ mul r5, r3
+ add r1, r0, r5
+ ldrb r1, [r1, #1]
+ strb r1, [r4, #0xb]
+ ldrb r1, [r0, r2]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ add r5, r1, #0
+ mul r5, r3
+ add r1, r0, r5
+ ldrb r1, [r1, #2]
+ strb r1, [r4, #0xc]
+ ldrb r1, [r0, r2]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ add r2, r1, #0
+ mul r2, r3
+ add r0, r0, r2
+ ldrb r0, [r0, #3]
+ strb r0, [r4, #0xd]
+ bl MOD83_022345D4
+ add r1, r0, #0
+ ldr r0, _02234B28 ; =MOD83_02233A30
+ bl WM_StartScan
+ cmp r0, #2
+ beq _02234B1E
+ bl MOD83_02234958
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02234B1E:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_02234B24: .word 0x000001C3
+_02234B28: .word MOD83_02233A30
+ thumb_func_end MOD83_02234A94
+
+ thumb_func_start MOD83_02234B2C
+MOD83_02234B2C: ; 0x02234B2C
+ push {r3, lr}
+ ldr r0, _02234B44 ; =MOD83_02233AA0
+ bl WM_EndScan
+ cmp r0, #2
+ beq _02234B40
+ bl MOD83_02234958
+ mov r0, #0
+ pop {r3, pc}
+_02234B40:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_02234B44: .word MOD83_02233AA0
+ thumb_func_end MOD83_02234B2C
+
+ thumb_func_start MOD83_02234B48
+MOD83_02234B48: ; 0x02234B48
+ push {r3, r4, lr}
+ sub sp, #4
+ bl MOD83_022346F8
+ add r4, r0, #0
+ bl MOD83_02234610
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02234B7C ; =MOD83_02233AF4
+ add r2, r4, #0
+ mov r3, #1
+ bl WM_StartConnectEx
+ cmp r0, #2
+ beq _02234B74
+ bl MOD83_02234958
+ add sp, #4
+ mov r0, #0
+ pop {r3, r4, pc}
+_02234B74:
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_02234B7C: .word MOD83_02233AF4
+ thumb_func_end MOD83_02234B48
+
+ thumb_func_start MOD83_02234B80
+MOD83_02234B80: ; 0x02234B80
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ ldr r1, _02234BF0 ; =MOD83_02233DF0
+ mov r0, #4
+ mov r2, #0
+ bl WM_SetPortCallback
+ cmp r0, #0
+ beq _02234B9C
+ bl MOD83_02234958
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02234B9C:
+ bl MOD83_02234564
+ ldrh r0, [r0, #0x16]
+ cmp r0, #0
+ bne _02234BAA
+ mov r5, #1
+ b _02234BAC
+_02234BAA:
+ mov r5, #0
+_02234BAC:
+ bl MOD83_02234604
+ add r6, r0, #0
+ bl MOD83_022345EC
+ add r4, r0, #0
+ bl MOD83_022345F8
+ add r7, r0, #0
+ bl MOD83_022345E0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ lsl r2, r4, #0x10
+ ldr r0, _02234BF4 ; =MOD83_02233BD8
+ add r1, r6, #0
+ lsr r2, r2, #0x10
+ add r3, r7, #0
+ bl WM_StartMP
+ cmp r0, #2
+ beq _02234BEA
+ bl MOD83_02234958
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02234BEA:
+ mov r0, #1
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02234BF0: .word MOD83_02233DF0
+_02234BF4: .word MOD83_02233BD8
+ thumb_func_end MOD83_02234B80
+
+ thumb_func_start MOD83_02234BF8
+MOD83_02234BF8: ; 0x02234BF8
+ push {r3, lr}
+ ldr r0, _02234C10 ; =MOD83_02233E74
+ bl WM_PowerOn
+ cmp r0, #2
+ beq _02234C0C
+ bl MOD83_02234958
+ mov r0, #0
+ pop {r3, pc}
+_02234C0C:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_02234C10: .word MOD83_02233E74
+ thumb_func_end MOD83_02234BF8
+
+ thumb_func_start MOD83_02234C14
+MOD83_02234C14: ; 0x02234C14
+ push {r3, lr}
+ ldr r0, _02234C30 ; =MOD83_02233E98
+ bl WM_PowerOff
+ cmp r0, #2
+ beq _02234C2C
+ bl MOD83_02234958
+ bl OS_Terminate
+ mov r0, #0
+ pop {r3, pc}
+_02234C2C:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_02234C30: .word MOD83_02233E98
+ thumb_func_end MOD83_02234C14
+
+ thumb_func_start MOD83_02234C34
+MOD83_02234C34: ; 0x02234C34
+ push {r3, lr}
+ ldr r0, _02234C50 ; =MOD83_02233EBC
+ bl WM_Reset
+ cmp r0, #2
+ beq _02234C4C
+ bl MOD83_02234958
+ bl OS_Terminate
+ mov r0, #0
+ pop {r3, pc}
+_02234C4C:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_02234C50: .word MOD83_02233EBC
+ thumb_func_end MOD83_02234C34
+
+ thumb_func_start MOD83_02234C54
+MOD83_02234C54: ; 0x02234C54
+ push {r3, lr}
+ ldr r0, _02234C70 ; =MOD83_02233F00
+ bl WM_End
+ cmp r0, #2
+ beq _02234C6C
+ bl MOD83_02234958
+ bl OS_Terminate
+ mov r0, #0
+ pop {r3, pc}
+_02234C6C:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_02234C70: .word MOD83_02233F00
+ thumb_func_end MOD83_02234C54
+
+ thumb_func_start MOD83_02234C74
+MOD83_02234C74: ; 0x02234C74
+ cmp r0, #0
+ bgt _02234C7C
+ mov r0, #1
+ bx lr
+_02234C7C:
+ cmp r0, #0xfb
+ bgt _02234C84
+ mov r0, #0
+ bx lr
+_02234C84:
+ ldr r1, _02234C9C ; =0x00000115
+ cmp r0, r1
+ bge _02234C8E
+ mov r0, #1
+ bx lr
+_02234C8E:
+ add r1, #0x86
+ cmp r0, r1
+ ble _02234C98
+ mov r0, #1
+ bx lr
+_02234C98:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_02234C9C: .word 0x00000115
+ thumb_func_end MOD83_02234C74
+
+ thumb_func_start MOD83_02234CA0
+MOD83_02234CA0: ; 0x02234CA0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_02236E9C
+ cmp r0, #4
+ bhi _02234CE0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02234CB8: ; jump table
+ .short _02234CC2 - _02234CB8 - 2 ; case 0
+ .short _02234CC8 - _02234CB8 - 2 ; case 1
+ .short _02234CCE - _02234CB8 - 2 ; case 2
+ .short _02234CD4 - _02234CB8 - 2 ; case 3
+ .short _02234CDA - _02234CB8 - 2 ; case 4
+_02234CC2:
+ mov r0, #2
+ str r0, [r4]
+ pop {r4, pc}
+_02234CC8:
+ mov r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_02234CCE:
+ mov r0, #5
+ str r0, [r4]
+ pop {r4, pc}
+_02234CD4:
+ mov r0, #4
+ str r0, [r4]
+ pop {r4, pc}
+_02234CDA:
+ mov r0, #3
+ str r0, [r4]
+ pop {r4, pc}
+_02234CE0:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [r4]
+ pop {r4, pc}
+ thumb_func_end MOD83_02234CA0
+
+ thumb_func_start MOD83_02234CE8
+MOD83_02234CE8: ; 0x02234CE8
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ ldr r1, _02234E3C ; =0x0000E890
+ add r5, r0, #0
+ add r4, r5, r1
+ ldr r1, [r4]
+ cmp r1, #9
+ bls _02234CFA
+ b _02234E34
+_02234CFA:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02234D06: ; jump table
+ .short _02234D1A - _02234D06 - 2 ; case 0
+ .short _02234D3A - _02234D06 - 2 ; case 1
+ .short _02234D52 - _02234D06 - 2 ; case 2
+ .short _02234D62 - _02234D06 - 2 ; case 3
+ .short _02234D72 - _02234D06 - 2 ; case 4
+ .short _02234D8E - _02234D06 - 2 ; case 5
+ .short _02234DA2 - _02234D06 - 2 ; case 6
+ .short _02234DBE - _02234D06 - 2 ; case 7
+ .short _02234DEA - _02234D06 - 2 ; case 8
+ .short _02234E10 - _02234D06 - 2 ; case 9
+_02234D1A:
+ bl MOD83_02234E6C
+ ldr r0, [r5, #0x10]
+ bl FUN_02022528
+ add r5, r0, #0
+ bl MOD83_02237448
+ add r1, r0, #0
+ add r0, r5, #0
+ bl FUN_0202BF90
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02234E34
+_02234D3A:
+ bl OS_GetTick
+ mov r2, #0x78
+ mov r3, #0
+ bl _ull_mod
+ add r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02234E34
+_02234D52:
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ bne _02234E34
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02234E34
+_02234D62:
+ ldr r0, [r5, #0x10]
+ mov r1, #2
+ bl FUN_02022840
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02234E34
+_02234D72:
+ ldr r0, [r5, #0x10]
+ bl FUN_02022854
+ cmp r0, #3
+ bne _02234D82
+ add sp, #0x10
+ mov r0, #0xc
+ pop {r3, r4, r5, pc}
+_02234D82:
+ cmp r0, #1
+ bne _02234E34
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02234E34
+_02234D8E:
+ mov r0, #0
+ add r1, r0, #0
+ add r2, sp, #0
+ mov r3, #0x10
+ bl CTRDG_ReadAgbFlash
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02234E34
+_02234DA2:
+ bl MOD83_0223736C
+ cmp r0, #0
+ bne _02234DB6
+ mov r0, #1
+ bl FUN_02016454
+ add sp, #0x10
+ mov r0, #0xc
+ pop {r3, r4, r5, pc}
+_02234DB6:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02234E34
+_02234DBE:
+ bl MOD83_022373F4
+ cmp r0, #9
+ beq _02234E34
+ bl MOD83_022373F4
+ cmp r0, #0xb
+ bne _02234DD6
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02234E34
+_02234DD6:
+ bl MOD83_022373B4
+ cmp r0, #8
+ bne _02234E34
+ mov r0, #1
+ bl FUN_02016454
+ add sp, #0x10
+ mov r0, #0xc
+ pop {r3, r4, r5, pc}
+_02234DEA:
+ ldr r0, [r5, #0x10]
+ bl FUN_02022854
+ cmp r0, #3
+ bne _02234DFA
+ add sp, #0x10
+ mov r0, #0xc
+ pop {r3, r4, r5, pc}
+_02234DFA:
+ cmp r0, #2
+ bne _02234DEA
+ bl MOD83_022373B4
+ mov r0, #1
+ bl FUN_02016444
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02234E34
+_02234E10:
+ bl MOD83_022373B4
+ cmp r0, #8
+ bne _02234E24
+ mov r0, #1
+ bl FUN_02016454
+ add sp, #0x10
+ mov r0, #0xc
+ pop {r3, r4, r5, pc}
+_02234E24:
+ cmp r0, #0
+ bne _02234E34
+ mov r0, #1
+ bl FUN_02016454
+ add sp, #0x10
+ mov r0, #0xb
+ pop {r3, r4, r5, pc}
+_02234E34:
+ mov r0, #0xa
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_02234E3C: .word 0x0000E890
+ thumb_func_end MOD83_02234CE8
+
+ thumb_func_start MOD83_02234E40
+MOD83_02234E40: ; 0x02234E40
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x10]
+ bl FUN_02022528
+ add r4, r0, #0
+ bl MOD83_02237448
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_0202BF90
+ mov r0, #4
+ bl FUN_020166A8
+ ldr r0, [r5, #0x10]
+ bl FUN_02022720
+ mov r0, #4
+ bl FUN_020166B8
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD83_02234E40
+
+ thumb_func_start MOD83_02234E6C
+MOD83_02234E6C: ; 0x02234E6C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xf4
+ add r7, r0, #0
+ ldr r0, [r7, #0x10]
+ bl FUN_02022528
+ str r0, [sp]
+ add r0, sp, #8
+ bl FUN_020690E4
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r7, #0
+_02234E86:
+ ldr r0, _02234F04 ; =0x0000E880
+ mov r1, #0x3d
+ lsl r1, r1, #4
+ ldr r0, [r7, r0]
+ ldr r2, [r5, r1]
+ mov r1, #0x96
+ lsl r1, r1, #4
+ add r0, r0, #4
+ mul r1, r2
+ add r0, r0, r1
+ mov r1, #0xf3
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ mov r1, #0x50
+ mul r1, r2
+ add r0, r0, r1
+ add r1, r6, #0
+ bl MOD83_02237F6C
+ ldr r0, [sp]
+ add r1, r6, #0
+ add r2, r4, #0
+ bl FUN_0202BF7C
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, #6
+ blt _02234E86
+ mov r5, #0
+ add r0, sp, #4
+ strh r5, [r0]
+ add r4, r7, #0
+ sub r6, r5, #1
+_02234EC8:
+ mov r0, #0xf3
+ lsl r0, r0, #2
+ ldr r2, [r4, r0]
+ add r0, r0, #4
+ ldr r1, [r4, r0]
+ cmp r2, r6
+ beq _02234EF6
+ cmp r1, #0xe
+ beq _02234EF6
+ ldr r0, _02234F04 ; =0x0000E880
+ mov r3, #0x96
+ ldr r0, [r7, r0]
+ lsl r3, r3, #4
+ mul r3, r1
+ add r0, r0, #4
+ mov r1, #0x50
+ mul r1, r2
+ add r0, r0, r3
+ add r0, r0, r1
+ mov r1, #0xb
+ add r2, sp, #4
+ bl MOD83_02237D90
+_02234EF6:
+ add r5, r5, #1
+ add r4, #0xc
+ cmp r5, #6
+ blt _02234EC8
+ add sp, #0xf4
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02234F04: .word 0x0000E880
+ thumb_func_end MOD83_02234E6C
+
+ thumb_func_start MOD83_02234F08
+MOD83_02234F08: ; 0x02234F08
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #1
+ tst r2, r0
+ beq _02234F26
+ mov r2, #0
+ bl FUN_02002E14
+ ldr r1, [r4, #0x10]
+ lsl r1, r1, #3
+ sub r1, r1, r0
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ pop {r4, pc}
+_02234F26:
+ ldr r0, [r4, #0x18]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234F08
+
+ thumb_func_start MOD83_02234F2C
+MOD83_02234F2C: ; 0x02234F2C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r1, #0
+ ldr r6, [r5, #0x44]
+ add r4, r2, #0
+ cmp r6, #0
+ bne _02234F3C
+ mov r6, #0xff
+_02234F3C:
+ ldr r1, [r5]
+ ldr r2, [r1]
+ cmp r2, #0
+ bne _02234F7A
+ ldr r2, [r5, #0xc]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp]
+ ldr r2, [r5, #0x10]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp, #4]
+ ldr r2, [r5, #0x14]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp, #8]
+ mov r2, #0xf
+ str r2, [sp, #0xc]
+ ldr r2, [r5, #0x20]
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ str r2, [sp, #0x10]
+ ldr r2, [r5, #0x24]
+ ldr r3, [r5, #8]
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ ldr r0, [r0, #0x20]
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+_02234F7A:
+ mov r0, #2
+ tst r0, r4
+ bne _02234F8C
+ ldr r1, [r5, #0x30]
+ ldr r0, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02019620
+_02234F8C:
+ mov r0, #0
+ ldr r1, [r5, #0x34]
+ mvn r0, r0
+ cmp r1, r0
+ beq _02235004
+ ldr r2, _022350B4 ; =0x00000193
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #0x4e
+ bl FUN_0200A86C
+ ldr r7, [r5, #0x40]
+ str r0, [sp, #0x14]
+ cmp r7, #0
+ bne _02234FB2
+ mov r0, #0x4e
+ bl FUN_0200AA80
+ add r7, r0, #0
+_02234FB2:
+ ldr r1, [sp, #0x14]
+ ldr r2, [r5, #0x34]
+ add r0, r7, #0
+ mov r3, #0x4e
+ bl FUN_0200A9C4
+ str r0, [sp, #0x18]
+ ldr r1, [sp, #0x18]
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD83_02234F08
+ add r3, r0, #0
+ ldr r0, [r5, #0x1c]
+ ldr r2, [sp, #0x18]
+ str r0, [sp]
+ str r6, [sp, #4]
+ ldr r0, [r5, #0x2c]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [r5]
+ ldr r1, [r5, #0x28]
+ bl FUN_0201BDE0
+ str r0, [r5, #0x48]
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ ldr r0, [r5, #0x40]
+ cmp r0, #0
+ bne _02234FF8
+ add r0, r7, #0
+ bl FUN_0200AB18
+_02234FF8:
+ ldr r0, [sp, #0x14]
+ bl FUN_0200A8B8
+ mov r0, #0
+ mvn r0, r0
+ str r0, [r5, #0x34]
+_02235004:
+ ldr r0, [r5, #0x38]
+ cmp r0, #0
+ beq _0223504C
+ mov r0, #0x40
+ mov r1, #0x4e
+ bl FUN_020219F4
+ ldr r1, [r5, #0x38]
+ add r7, r0, #0
+ mov r2, #0x40
+ bl FUN_02021E8C
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ bl MOD83_02234F08
+ add r3, r0, #0
+ ldr r0, [r5, #0x1c]
+ add r2, r7, #0
+ str r0, [sp]
+ str r6, [sp, #4]
+ ldr r0, [r5, #0x2c]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [r5]
+ ldr r1, [r5, #0x28]
+ bl FUN_0201BDE0
+ str r0, [r5, #0x48]
+ add r0, r7, #0
+ bl FUN_02021A20
+ mov r0, #0
+ str r0, [r5, #0x38]
+_0223504C:
+ ldr r1, [r5, #0x3c]
+ cmp r1, #0
+ beq _0223507A
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD83_02234F08
+ add r3, r0, #0
+ ldr r0, [r5, #0x1c]
+ str r0, [sp]
+ str r6, [sp, #4]
+ ldr r0, [r5, #0x2c]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [r5]
+ ldr r1, [r5, #0x28]
+ ldr r2, [r5, #0x3c]
+ bl FUN_0201BDE0
+ str r0, [r5, #0x48]
+ mov r0, #0
+ str r0, [r5, #0x3c]
+_0223507A:
+ mov r0, #4
+ tst r0, r4
+ bne _02235086
+ ldr r0, [r5]
+ bl FUN_020191D0
+_02235086:
+ mov r0, #8
+ tst r0, r4
+ beq _022350AE
+ mov r0, #0x10
+ tst r0, r4
+ ldr r0, [r5]
+ beq _022350A2
+ ldr r2, _022350B8 ; =0x000003D2
+ mov r1, #0
+ mov r3, #0xd
+ bl FUN_0200D0BC
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+_022350A2:
+ mov r2, #0x3f
+ mov r1, #0
+ lsl r2, r2, #4
+ mov r3, #0xe
+ bl FUN_0200CCA4
+_022350AE:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022350B4: .word 0x00000193
+_022350B8: .word 0x000003D2
+ thumb_func_end MOD83_02234F2C
+
+ thumb_func_start MOD83_022350BC
+MOD83_022350BC: ; 0x022350BC
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _022350E8 ; =0x0223A50C
+ 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, #0x4e
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_022350E8: .word 0x0223A50C
+ thumb_func_end MOD83_022350BC
+
+ thumb_func_start MOD83_022350EC
+MOD83_022350EC: ; 0x022350EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x7e
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ mov r2, #0x4e
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ add r1, r6, #0
+ mov r0, #0x50
+ add r1, #0x2c
+ mov r2, #0x4e
+ bl FUN_02008C9C
+ str r0, [r6, #0x28]
+ add r0, r6, #0
+ mov r2, #1
+ add r0, #0x2c
+ mov r1, #0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ mov r7, #0x55
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_02235132:
+ mov r0, #3
+ add r1, r4, #0
+ mov r2, #0x4e
+ bl FUN_02008DEC
+ str r0, [r5, r7]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02235132
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ mov r0, #0x4e
+ str r0, [sp, #8]
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ mov r1, #0x74
+ mov r2, #0x1a
+ bl FUN_02008F34
+ mov r1, #0x5b
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0x4e
+ sub r1, #0x14
+ str r0, [sp, #0xc]
+ ldr r0, [r6, r1]
+ mov r1, #0x74
+ mov r2, #0x17
+ bl FUN_02008FEC
+ mov r1, #0x17
+ lsl r1, r1, #4
+ str r0, [r6, r1]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x4e
+ sub r1, #0x14
+ str r0, [sp, #8]
+ ldr r0, [r6, r1]
+ mov r1, #0x74
+ mov r2, #0x19
+ mov r3, #1
+ bl FUN_020090AC
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x4e
+ sub r1, #0x14
+ str r0, [sp, #8]
+ ldr r0, [r6, r1]
+ mov r1, #0x74
+ mov r2, #0x18
+ mov r3, #1
+ bl FUN_020090AC
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ sub r1, #0xc
+ ldr r0, [r6, r1]
+ bl FUN_02009A50
+ mov r0, #0x17
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ bl FUN_02009CF0
+ bl FUN_0206B888
+ add r1, r0, #0
+ mov r0, #0
+ mov r2, #1
+ str r0, [sp]
+ mov r0, #0x4e
+ add r3, r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x13
+ add r3, #0xff
+ bl FUN_02006930
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_022350EC
+
+ thumb_func_start MOD83_022351F8
+MOD83_022351F8: ; 0x022351F8
+ push {lr}
+ sub sp, #0x2c
+ mov r1, #0
+ str r1, [sp]
+ sub r2, r1, #1
+ str r2, [sp, #4]
+ str r2, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r3, #0x55
+ str r1, [sp, #0x10]
+ lsl r3, r3, #2
+ ldr r2, [r0, r3]
+ str r2, [sp, #0x14]
+ add r2, r3, #4
+ ldr r2, [r0, r2]
+ str r2, [sp, #0x18]
+ add r2, r3, #0
+ add r2, #8
+ ldr r2, [r0, r2]
+ str r2, [sp, #0x1c]
+ add r2, r3, #0
+ add r2, #0xc
+ ldr r2, [r0, r2]
+ add r3, #0x30
+ str r2, [sp, #0x20]
+ str r1, [sp, #0x24]
+ add r0, r0, r3
+ add r2, r1, #0
+ add r3, r1, #0
+ str r1, [sp, #0x28]
+ bl FUN_02008AA4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x2c
+ pop {pc}
+ thumb_func_end MOD83_022351F8
+
+ thumb_func_start MOD83_02235244
+MOD83_02235244: ; 0x02235244
+ ldr r2, [r1, #0x28]
+ str r2, [r0]
+ mov r2, #0x61
+ lsl r2, r2, #2
+ add r1, r1, r2
+ str r1, [r0, #4]
+ mov r2, #0
+ mov r1, #1
+ str r2, [r0, #0x10]
+ lsl r1, r1, #0xc
+ str r1, [r0, #0x14]
+ str r1, [r0, #0x18]
+ str r1, [r0, #0x1c]
+ strh r2, [r0, #0x20]
+ mov r1, #0x14
+ str r1, [r0, #0x24]
+ str r3, [r0, #0x28]
+ mov r1, #0x4e
+ str r1, [r0, #0x2c]
+ bx lr
+ thumb_func_end MOD83_02235244
+
+ thumb_func_start MOD83_0223526C
+MOD83_0223526C: ; 0x0223526C
+ ldr r3, _02235288 ; =0x0000E880
+ ldr r0, [r0, r3]
+ add r3, r0, #4
+ mov r0, #0x96
+ lsl r0, r0, #4
+ mul r0, r1
+ add r1, r3, r0
+ mov r0, #0x50
+ mul r0, r2
+ add r0, r1, r0
+ ldr r3, _0223528C ; =MOD83_02237A10
+ mov r1, #0xb
+ mov r2, #0
+ bx r3
+ .align 2, 0
+_02235288: .word 0x0000E880
+_0223528C: .word MOD83_02237A10
+ thumb_func_end MOD83_0223526C
+
+ thumb_func_start MOD83_02235290
+MOD83_02235290: ; 0x02235290
+ ldr r3, _022352AC ; =0x0000E880
+ ldr r0, [r0, r3]
+ add r3, r0, #4
+ mov r0, #0x96
+ lsl r0, r0, #4
+ mul r0, r1
+ add r1, r3, r0
+ mov r0, #0x50
+ mul r0, r2
+ add r0, r1, r0
+ ldr r3, _022352B0 ; =MOD83_02237A10
+ mov r1, #0x2d
+ mov r2, #0
+ bx r3
+ .align 2, 0
+_022352AC: .word 0x0000E880
+_022352B0: .word MOD83_02237A10
+ thumb_func_end MOD83_02235290
+
+ thumb_func_start MOD83_022352B4
+MOD83_022352B4: ; 0x022352B4
+ ldr r3, _022352D0 ; =0x0000E880
+ ldr r0, [r0, r3]
+ add r3, r0, #4
+ mov r0, #0x96
+ lsl r0, r0, #4
+ mul r0, r1
+ add r1, r3, r0
+ mov r0, #0x50
+ mul r0, r2
+ add r0, r1, r0
+ mov r1, #0
+ ldr r3, _022352D4 ; =MOD83_02237A10
+ add r2, r1, #0
+ bx r3
+ .align 2, 0
+_022352D0: .word 0x0000E880
+_022352D4: .word MOD83_02237A10
+ thumb_func_end MOD83_022352B4
+
+ thumb_func_start MOD83_022352D8
+MOD83_022352D8: ; 0x022352D8
+ push {r4, r5}
+ ldr r5, [sp, #8]
+ lsr r4, r5, #0x1f
+ add r4, r5, r4
+ asr r4, r4, #1
+ sub r5, r2, r4
+ strb r5, [r0]
+ lsr r5, r3, #0x1f
+ add r5, r3, r5
+ asr r5, r5, #1
+ sub r3, r1, r5
+ strb r3, [r0, #2]
+ add r2, r2, r4
+ strb r2, [r0, #1]
+ add r1, r1, r5
+ strb r1, [r0, #3]
+ pop {r4, r5}
+ bx lr
+ thumb_func_end MOD83_022352D8
+
+ thumb_func_start MOD83_022352FC
+MOD83_022352FC: ; 0x022352FC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ mov r1, #1
+ add r5, r0, #0
+ add r0, r3, #0
+ lsl r1, r1, #0xc
+ add r7, r2, #0
+ bl FUN_020169D8
+ add r4, r0, #0
+ beq _02235330
+ add r1, r5, #0
+ add r2, r6, #0
+ bl LoadFromNARC
+ add r0, r4, #0
+ add r1, r7, #0
+ bl FUN_020B0030
+ cmp r0, #0
+ bne _02235330
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02235330:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_022352FC
+
+ thumb_func_start MOD83_02235334
+MOD83_02235334: ; 0x02235334
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ add r0, r3, #0
+ add r1, r6, #0
+ bl FUN_02006774
+ add r0, r4, #0
+ add r1, r5, #0
+ bl FUN_020B0030
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02235334
+
+ thumb_func_start MOD83_02235350
+MOD83_02235350: ; 0x02235350
+ push {r4, lr}
+ add r3, r1, #0
+ mov r4, #0
+ cmp r0, #0xc9
+ beq _02235362
+ ldr r1, _022353BC ; =0x00000182
+ cmp r0, r1
+ beq _0223538C
+ b _022353B6
+_02235362:
+ mov r4, #3
+ lsl r0, r4, #8
+ add r2, r3, #0
+ and r0, r3
+ lsr r1, r0, #6
+ lsl r0, r4, #0x18
+ and r2, r4
+ and r0, r3
+ lsl r4, r4, #0x10
+ and r3, r4
+ lsr r0, r0, #0x12
+ lsr r3, r3, #0xc
+ orr r0, r3
+ orr r0, r1
+ orr r0, r2
+ mov r1, #0x1c
+ bl _u32_div_f
+ lsl r0, r1, #0x18
+ lsr r4, r0, #0x18
+ b _022353B6
+_0223538C:
+ cmp r2, #5
+ bhi _022353A8
+ add r0, r2, r2
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223539C: ; jump table
+ .short _022353A8 - _0223539C - 2 ; case 0
+ .short _022353A8 - _0223539C - 2 ; case 1
+ .short _022353A8 - _0223539C - 2 ; case 2
+ .short _022353B4 - _0223539C - 2 ; case 3
+ .short _022353AC - _0223539C - 2 ; case 4
+ .short _022353B0 - _0223539C - 2 ; case 5
+_022353A8:
+ mov r4, #0
+ b _022353B6
+_022353AC:
+ mov r4, #1
+ b _022353B6
+_022353B0:
+ mov r4, #2
+ b _022353B6
+_022353B4:
+ mov r4, #3
+_022353B6:
+ add r0, r4, #0
+ pop {r4, pc}
+ nop
+_022353BC: .word 0x00000182
+ thumb_func_end MOD83_02235350
+
+ thumb_func_start MOD83_022353C0
+MOD83_022353C0: ; 0x022353C0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r2, #0
+ add r7, r3, #0
+ add r5, r1, #0
+ bl MOD83_02237EBC
+ add r1, r6, #0
+ add r2, r7, #0
+ add r4, r0, #0
+ bl MOD83_02235350
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl FUN_0206B6D4
+ add r1, r0, #0
+ mov r0, #0x13
+ add r2, sp, #0
+ mov r3, #0x4e
+ bl MOD83_022352FC
+ add r6, r0, #0
+ ldr r0, [sp]
+ mov r1, #2
+ ldr r0, [r0, #0x14]
+ lsl r1, r1, #8
+ bl DC_FlushRange
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp]
+ lsl r1, r1, #4
+ add r1, #0x64
+ mov r2, #2
+ ldr r0, [r0, #0x14]
+ lsl r1, r1, #5
+ lsl r2, r2, #8
+ bl GX_LoadOBJ
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl FUN_0206B7BC
+ add r1, r0, #0
+ ldr r0, [sp, #0x1c]
+ add r1, #8
+ bl FUN_02020248
+ add r0, r6, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_022353C0
+
+ thumb_func_start MOD83_0223542C
+MOD83_0223542C: ; 0x0223542C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r1, #0
+ ldr r1, _022354A8 ; =0x0223BB14
+ str r2, [sp]
+ ldr r2, [r1]
+ mov r1, #0x83
+ add r5, r3, #0
+ lsl r1, r1, #2
+ mul r1, r5
+ add r4, r2, r1
+ ldr r1, [sp, #0x20]
+ add r6, r0, #0
+ cmp r1, #0
+ beq _022354A0
+ bl MOD83_02234C74
+ cmp r0, #0
+ bne _0223545C
+ add r0, r6, #0
+ bl MOD83_02237EBC
+ add r6, r0, #0
+ b _0223545E
+_0223545C:
+ mov r6, #0
+_0223545E:
+ ldr r2, [sp]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl FUN_0206B6D4
+ ldr r2, [sp, #0x24]
+ ldr r3, [sp, #0x28]
+ add r1, sp, #4
+ bl MOD83_02235334
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ mov r2, #2
+ ldr r0, [r0, #0x14]
+ add r1, #0xc
+ lsl r2, r2, #8
+ bl MIi_CpuCopyFast
+ lsl r0, r5, #4
+ add r0, #0x64
+ lsl r0, r0, #5
+ str r0, [r4]
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp]
+ str r0, [r4, #8]
+ add r0, r6, #0
+ add r2, r7, #0
+ bl FUN_0206B7BC
+ add r0, #8
+ add sp, #8
+ str r0, [r4, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_022354A0:
+ mov r0, #0
+ str r0, [r4, #8]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022354A8: .word 0x0223BB14
+ thumb_func_end MOD83_0223542C
+
+ thumb_func_start MOD83_022354AC
+MOD83_022354AC: ; 0x022354AC
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r0, _022354EC ; =0x0223BB14
+ mov r6, #2
+ lsl r6, r6, #8
+ add r7, r6, #0
+ ldr r5, [r0]
+ mov r4, #0
+ add r7, #0xc
+_022354BC:
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _022354E0
+ add r0, r5, #0
+ add r0, #0xc
+ add r1, r6, #0
+ bl DC_FlushRange
+ add r0, r5, #0
+ ldr r1, [r5]
+ add r0, #0xc
+ add r2, r6, #0
+ bl GX_LoadOBJ
+ ldr r0, [r5, #8]
+ ldr r1, [r5, #4]
+ bl FUN_02020248
+_022354E0:
+ add r4, r4, #1
+ add r5, r5, r7
+ cmp r4, #0x1e
+ blt _022354BC
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022354EC: .word 0x0223BB14
+ thumb_func_end MOD83_022354AC
+
+ thumb_func_start MOD83_022354F0
+MOD83_022354F0: ; 0x022354F0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ mov r0, #0x13
+ mov r1, #0x4e
+ bl FUN_02006670
+ mov r1, #1
+ str r0, [sp, #0xc]
+ mov r0, #0x4e
+ lsl r1, r1, #0xc
+ bl FUN_020169D8
+ mov r6, #0
+ str r0, [sp, #0x10]
+ add r7, r6, #0
+ add r4, r5, #0
+_02235512:
+ ldr r0, _02235634 ; =0x0000E880
+ ldr r1, _02235638 ; =0x0000E884
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r1]
+ mov r1, #0x96
+ lsl r1, r1, #4
+ mul r1, r2
+ add r0, r0, #4
+ add r0, r0, r1
+ add r0, r0, r7
+ mov r1, #5
+ mov r2, #0
+ bl MOD83_02237A10
+ cmp r0, #0
+ beq _022355D2
+ ldr r1, _02235638 ; =0x0000E884
+ add r0, r5, #0
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl MOD83_0223526C
+ ldr r1, _02235638 ; =0x0000E884
+ str r0, [sp, #0x1c]
+ ldr r1, [r5, r1]
+ add r0, r5, #0
+ add r2, r6, #0
+ bl MOD83_02235290
+ ldr r1, _02235638 ; =0x0000E884
+ str r0, [sp, #0x18]
+ ldr r1, [r5, r1]
+ add r0, r5, #0
+ add r2, r6, #0
+ bl MOD83_022352B4
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ bl MOD83_02237EBC
+ ldr r2, _0223563C ; =0x021C4918
+ ldr r1, [sp, #0x20]
+ ldrb r2, [r2, #6]
+ bl MOD83_02235350
+ str r0, [sp, #0x14]
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r1, [sp, #0x18]
+ str r0, [sp]
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x14]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xc]
+ add r3, r6, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x1c]
+ bl MOD83_0223542C
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, _02235634 ; =0x0000E880
+ ldr r1, _02235638 ; =0x0000E884
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r1]
+ mov r1, #0x96
+ lsl r1, r1, #4
+ mul r1, r2
+ add r0, r0, #4
+ add r0, r0, r1
+ add r0, r0, r7
+ mov r1, #0xc
+ mov r2, #0
+ bl MOD83_02237A10
+ cmp r0, #0
+ beq _022355C4
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ b _02235602
+_022355C4:
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _02235602
+_022355D2:
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x18]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xc]
+ ldr r2, [sp, #0x14]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x1c]
+ add r3, r6, #0
+ bl MOD83_0223542C
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_02235602:
+ add r6, r6, #1
+ add r7, #0x50
+ add r4, #0xc
+ cmp r6, #0x1e
+ blt _02235512
+ ldr r0, [sp, #0x10]
+ bl FUN_02016A18
+ ldr r0, [sp, #0xc]
+ bl FUN_020066F4
+ ldr r1, _02235640 ; =MOD83_022354AC
+ ldr r0, _02235644 ; =0x00012604
+ str r1, [r5, r0]
+ ldr r1, _02235638 ; =0x0000E884
+ add r0, r5, #0
+ ldr r1, [r5, r1]
+ bl MOD83_02235B6C
+ add r0, r5, #0
+ bl MOD83_02235B20
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02235634: .word 0x0000E880
+_02235638: .word 0x0000E884
+_0223563C: .word 0x021C4918
+_02235640: .word MOD83_022354AC
+_02235644: .word 0x00012604
+ thumb_func_end MOD83_022354F0
+
+ thumb_func_start MOD83_02235648
+MOD83_02235648: ; 0x02235648
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ mov r2, #0x61
+ add r5, r0, #0
+ lsl r2, r2, #2
+ add r0, sp, #0x14
+ add r1, r5, #0
+ add r2, r5, r2
+ mov r3, #1
+ bl MOD83_02235244
+ mov r0, #0x28
+ str r0, [sp, #8]
+ mov r0, #0x31
+ mov r4, #0
+ lsl r0, r0, #4
+ str r4, [sp, #0xc]
+ add r7, r5, r0
+_0223566C:
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #8]
+ mov r6, #0x1c
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+_02235678:
+ mov r0, #0x1c
+ str r0, [sp]
+ ldr r2, [sp, #8]
+ add r0, r7, #0
+ add r1, r6, #0
+ mov r3, #0x1c
+ bl MOD83_022352D8
+ lsl r0, r6, #0xc
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #4]
+ str r0, [sp, #0x20]
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _022356A6
+ add r0, sp, #0x14
+ bl FUN_0201FE94
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+_022356A6:
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ add r1, #0xa
+ bl FUN_02020130
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_02020238
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ add r1, #0x64
+ bl FUN_02020310
+ mov r0, #6
+ ldr r1, [sp, #0x1c]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #0x1c]
+ mov r0, #3
+ ldr r1, [sp, #0x20]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x20]
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _02235710
+ add r0, sp, #0x14
+ bl FUN_0201FE94
+ mov r1, #0x6b
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+_02235710:
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x28
+ bl FUN_02020130
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_02020238
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_02020310
+ add r4, r4, #1
+ add r7, r7, #4
+ add r5, #0xc
+ cmp r4, #0x1e
+ beq _02235774
+ ldr r0, [sp, #0x10]
+ add r6, #0x28
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, #6
+ blt _02235678
+ ldr r0, [sp, #8]
+ add r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ cmp r0, #5
+ bge _02235774
+ b _0223566C
+_02235774:
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_02235648
+
+ thumb_func_start MOD83_02235778
+MOD83_02235778: ; 0x02235778
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r4, r2, #0
+ mov r2, #0x61
+ add r6, r0, #0
+ lsl r2, r2, #2
+ add r5, r1, #0
+ add r7, r3, #0
+ add r0, sp, #0
+ add r1, r6, #0
+ add r2, r6, r2
+ mov r3, #1
+ bl MOD83_02235244
+ lsl r0, r5, #0xc
+ str r0, [sp, #8]
+ lsl r0, r4, #0xc
+ str r0, [sp, #0xc]
+ mov r0, #0xa
+ str r0, [sp, #0x24]
+ add r0, sp, #0
+ bl FUN_0201FE94
+ add r4, r0, #0
+ mov r1, #1
+ bl FUN_020200BC
+ add r0, r4, #0
+ add r1, r7, #0
+ bl FUN_02020130
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02020238
+ ldr r1, [sp, #0x48]
+ add r0, r4, #0
+ bl FUN_020200A0
+ add r0, r4, #0
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_02235778
+
+ thumb_func_start MOD83_022357CC
+MOD83_022357CC: ; 0x022357CC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r6, r0
+ mov r1, #0xe4
+ mov r2, #0xb0
+ mov r3, #0x32
+ bl MOD83_022352D8
+ mov r0, #1
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #0xe4
+ mov r2, #0xb0
+ mov r3, #6
+ bl MOD83_02235778
+ mov r1, #0xe6
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ sub r1, #8
+ add r0, r6, r1
+ mov r1, #0xb0
+ mov r3, #0x20
+ add r2, r1, #0
+ str r3, [sp]
+ bl MOD83_022352D8
+ mov r0, #1
+ mov r1, #0xb0
+ str r0, [sp]
+ add r0, r6, #0
+ add r2, r1, #0
+ mov r3, #3
+ bl MOD83_02235778
+ mov r1, #0xea
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ sub r1, #0x1c
+ mov r3, #0x20
+ add r0, r6, r1
+ mov r1, #0x18
+ mov r2, #0xb0
+ str r3, [sp]
+ bl MOD83_022352D8
+ mov r0, #1
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #0x18
+ mov r2, #0xb0
+ mov r3, #0
+ bl MOD83_02235778
+ mov r1, #0xee
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ mov r7, #0
+ mov r0, #0xff
+ sub r1, #0x24
+ strb r0, [r6, r1]
+ add r4, r7, #0
+ add r5, r6, #0
+_02235852:
+ mov r0, #0
+ str r0, [sp]
+ add r0, r6, #0
+ add r1, r4, #0
+ mov r2, #0x40
+ mov r3, #9
+ bl MOD83_02235778
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r1, #0
+ mov r0, #0xf3
+ mvn r1, r1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0xe
+ add r0, r0, #4
+ str r1, [r5, r0]
+ add r7, r7, #1
+ add r4, #0x24
+ add r5, #0xc
+ cmp r7, #6
+ blt _02235852
+ mov r0, #0x41
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_022357CC
+
+ thumb_func_start MOD83_0223588C
+MOD83_0223588C: ; 0x0223588C
+ push {r3, lr}
+ ldr r3, _022358C0 ; =0x0000E880
+ ldr r2, [r0, r3]
+ add r3, r3, #4
+ ldr r3, [r0, r3]
+ mov r0, #0x96
+ lsl r0, r0, #4
+ add r2, r2, #4
+ mul r0, r3
+ add r2, r2, r0
+ mov r0, #0x50
+ mul r0, r1
+ add r0, r2, r0
+ mov r1, #0x41
+ mov r2, #0
+ bl MOD83_02237A10
+ mov r1, #0x67
+ lsl r1, r1, #2
+ cmp r0, r1
+ bne _022358BA
+ mov r0, #1
+ pop {r3, pc}
+_022358BA:
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_022358C0: .word 0x0000E880
+ thumb_func_end MOD83_0223588C
+
+ thumb_func_start MOD83_022358C4
+MOD83_022358C4: ; 0x022358C4
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r3, _02235910 ; =0x0000E880
+ mov r5, #0
+ ldr r2, [r0, r3]
+ add r3, r3, #4
+ ldr r3, [r0, r3]
+ mov r0, #0x96
+ lsl r0, r0, #4
+ add r2, r2, #4
+ mul r0, r3
+ add r4, r2, r0
+ mov r0, #0x50
+ add r6, r1, #0
+ mul r6, r0
+ add r7, r5, #0
+_022358E2:
+ add r1, r5, #0
+ add r0, r4, r6
+ add r1, #0xd
+ add r2, r7, #0
+ bl MOD83_02237A10
+ ldr r3, _02235914 ; =0x0223B2B8
+ add r2, r0, #0
+ mov r1, #0
+_022358F4:
+ ldr r0, [r3]
+ cmp r2, r0
+ bne _022358FE
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022358FE:
+ add r1, r1, #1
+ add r3, r3, #4
+ cmp r1, #8
+ blo _022358F4
+ add r5, r5, #1
+ cmp r5, #4
+ blt _022358E2
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235910: .word 0x0000E880
+_02235914: .word 0x0223B2B8
+ thumb_func_end MOD83_022358C4
+
+ thumb_func_start MOD83_02235918
+MOD83_02235918: ; 0x02235918
+ push {r3, lr}
+ ldr r3, _0223595C ; =0x0000E880
+ ldr r2, [r0, r3]
+ add r3, r3, #4
+ ldr r3, [r0, r3]
+ mov r0, #0x96
+ lsl r0, r0, #4
+ add r2, r2, #4
+ mul r0, r3
+ add r2, r2, r0
+ mov r0, #0x50
+ mul r0, r1
+ add r0, r2, r0
+ mov r1, #0xc
+ mov r2, #0
+ bl MOD83_02237A10
+ ldr r1, _02235960 ; =0x0223B2C8
+ ldrh r1, [r1, #0x30]
+ cmp r1, #0
+ beq _02235956
+ ldr r2, _02235964 ; =0x0223B2F8
+_02235944:
+ ldrh r1, [r2]
+ cmp r0, r1
+ bne _0223594E
+ mov r0, #1
+ pop {r3, pc}
+_0223594E:
+ add r2, r2, #2
+ ldrh r1, [r2]
+ cmp r1, #0
+ bne _02235944
+_02235956:
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_0223595C: .word 0x0000E880
+_02235960: .word 0x0223B2C8
+_02235964: .word 0x0223B2F8
+ thumb_func_end MOD83_02235918
+
+ thumb_func_start MOD83_02235968
+MOD83_02235968: ; 0x02235968
+ push {r3, lr}
+ ldr r3, _02235990 ; =0x0000E880
+ ldr r2, [r0, r3]
+ add r3, r3, #4
+ ldr r3, [r0, r3]
+ mov r0, #0x96
+ lsl r0, r0, #4
+ add r2, r2, #4
+ mul r0, r3
+ add r2, r2, r0
+ mov r0, #0x50
+ mul r0, r1
+ add r0, r2, r0
+ mov r1, #0xb
+ mov r2, #0
+ bl MOD83_02237A10
+ bl MOD83_02234C74
+ pop {r3, pc}
+ .align 2, 0
+_02235990: .word 0x0000E880
+ thumb_func_end MOD83_02235968
+
+ thumb_func_start MOD83_02235994
+MOD83_02235994: ; 0x02235994
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r0, [sp]
+ add r6, r1, #0
+ mov r0, #0xc
+ mul r0, r6
+ ldr r1, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022359C0
+ bl FUN_02020128
+ cmp r0, #0
+ bne _022359C0
+ add sp, #0x14
+ mov r0, #3
+ pop {r4, r5, r6, r7, pc}
+_022359C0:
+ mov r5, #0
+ mov r7, #0x3d
+ mvn r5, r5
+ mov r2, #0
+ add r3, r4, #0
+ lsl r7, r7, #4
+ b _022359E8
+_022359CE:
+ ldr r0, _02235B1C ; =0x0000E884
+ ldr r1, [r4, r0]
+ ldr r0, [r3, r7]
+ cmp r1, r0
+ bne _022359E4
+ mov r0, #0xf3
+ lsl r0, r0, #2
+ ldr r0, [r3, r0]
+ cmp r6, r0
+ bne _022359E4
+ add r5, r2, #0
+_022359E4:
+ add r3, #0xc
+ add r2, r2, #1
+_022359E8:
+ mov r0, #0
+ mvn r0, r0
+ cmp r5, r0
+ bne _022359F4
+ cmp r2, #6
+ blt _022359CE
+_022359F4:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD83_0223588C
+ cmp r0, #1
+ bne _02235A06
+ add sp, #0x14
+ mov r0, #4
+ pop {r4, r5, r6, r7, pc}
+_02235A06:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD83_022358C4
+ cmp r0, #1
+ bne _02235A18
+ add sp, #0x14
+ mov r0, #5
+ pop {r4, r5, r6, r7, pc}
+_02235A18:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD83_02235918
+ cmp r0, #1
+ bne _02235A2A
+ add sp, #0x14
+ mov r0, #6
+ pop {r4, r5, r6, r7, pc}
+_02235A2A:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD83_02235968
+ cmp r0, #1
+ bne _02235A3C
+ add sp, #0x14
+ mov r0, #7
+ pop {r4, r5, r6, r7, pc}
+_02235A3C:
+ mov r0, #0
+ mvn r0, r0
+ cmp r5, r0
+ bne _02235AE4
+ mov r0, #0x41
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #6
+ bne _02235A54
+ add sp, #0x14
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_02235A54:
+ mov r5, #0
+ mov r0, #0xf3
+ add r3, r4, #0
+ lsl r0, r0, #2
+ sub r1, r5, #1
+_02235A5E:
+ ldr r2, [r3, r0]
+ cmp r2, r1
+ bne _02235ADA
+ ldr r1, [sp]
+ ldr r0, [sp, #4]
+ ldr r0, [r1, r0]
+ bl FUN_0202011C
+ add r1, r0, #0
+ mov r0, #0xc
+ add r7, r5, #0
+ mul r7, r0
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ add r5, r4, r0
+ ldr r0, [r5, r7]
+ bl FUN_02020044
+ ldr r0, [r5, r7]
+ bl FUN_0202011C
+ add r3, r0, #0
+ add r2, sp, #8
+ ldmia r3!, {r0, r1}
+ mov ip, r2
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r1, #2
+ str r0, [r2]
+ ldr r0, [sp, #8]
+ lsl r1, r1, #0xe
+ sub r0, r0, r1
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ lsr r1, r1, #1
+ sub r0, r0, r1
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r7]
+ mov r1, ip
+ bl FUN_02020044
+ ldr r0, [r5, r7]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r1, #0xf3
+ add r3, r4, r7
+ lsl r1, r1, #2
+ ldr r0, _02235B1C ; =0x0000E884
+ str r6, [r3, r1]
+ ldr r2, [r4, r0]
+ add r0, r1, #4
+ str r2, [r3, r0]
+ add r0, r1, #0
+ add r0, #0x44
+ ldr r0, [r4, r0]
+ add r1, #0x44
+ add r0, r0, #1
+ str r0, [r4, r1]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02235ADA:
+ add r5, r5, #1
+ add r3, #0xc
+ cmp r5, #6
+ blt _02235A5E
+ b _02235B16
+_02235AE4:
+ mov r0, #0xc
+ add r6, r5, #0
+ mul r6, r0
+ mov r0, #0xf2
+ add r1, r4, r6
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r2, #0
+ mov r1, #0xf3
+ mvn r2, r2
+ add r0, r4, r6
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ add r0, r1, #0
+ add r0, #0x44
+ ldr r0, [r4, r0]
+ add r1, #0x44
+ sub r0, r0, #1
+ str r0, [r4, r1]
+ add sp, #0x14
+ mov r0, #2
+ pop {r4, r5, r6, r7, pc}
+_02235B16:
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235B1C: .word 0x0000E884
+ thumb_func_end MOD83_02235994
+
+ thumb_func_start MOD83_02235B20
+MOD83_02235B20: ; 0x02235B20
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+ sub r7, r4, #1
+_02235B2A:
+ mov r0, #0xf3
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, r7
+ beq _02235B50
+ ldr r0, _02235B68 ; =0x0000E884
+ ldr r1, [r6, r0]
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r1, r0
+ bne _02235B50
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ b _02235B5C
+_02235B50:
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_02235B5C:
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, #6
+ blt _02235B2A
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02235B68: .word 0x0000E884
+ thumb_func_end MOD83_02235B20
+
+ thumb_func_start MOD83_02235B6C
+MOD83_02235B6C: ; 0x02235B6C
+ push {r3, r4, r5, lr}
+ sub sp, #0x60
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r1, #0
+ add r3, sp, #0x14
+ add r1, r0, #0
+ mov r2, #4
+_02235B7C:
+ stmia r3!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02235B7C
+ stmia r3!, {r0, r1}
+ str r0, [r3]
+ ldr r0, _02235BE4 ; =0x00000478
+ add r0, r5, r0
+ str r0, [sp, #0x14]
+ mov r0, #6
+ str r0, [sp, #0x1c]
+ mov r0, #0x15
+ str r0, [sp, #0x20]
+ mov r0, #0xd
+ str r0, [sp, #0x24]
+ mov r0, #2
+ str r0, [sp, #0x28]
+ sub r0, r0, #3
+ str r0, [sp, #0x48]
+ mov r0, #0
+ str r0, [sp, #0x2c]
+ str r0, [sp, #0x30]
+ mov r0, #1
+ str r0, [sp, #0x38]
+ str r0, [sp, #0x3c]
+ ldr r0, _02235BE8 ; =0x00010200
+ str r0, [sp, #0x40]
+ mov r0, #0xa0
+ str r0, [sp, #0x34]
+ bl MOD83_02236EA8
+ add r3, r0, #0
+ ldr r0, _02235BEC ; =0x0000E880
+ mov r2, #9
+ ldr r1, [r5, r0]
+ ldr r0, _02235BF0 ; =0x00008344
+ add r1, r1, r0
+ lsl r0, r4, #3
+ add r0, r4, r0
+ add r0, r1, r0
+ add r1, sp, #0
+ bl FUN_02015D88
+ add r0, sp, #0
+ str r0, [sp, #0x4c]
+ add r0, r5, #0
+ add r1, sp, #0x14
+ mov r2, #1
+ bl MOD83_02234F2C
+ add sp, #0x60
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02235BE4: .word 0x00000478
+_02235BE8: .word 0x00010200
+_02235BEC: .word 0x0000E880
+_02235BF0: .word 0x00008344
+ thumb_func_end MOD83_02235B6C
+
+ thumb_func_start MOD83_02235BF4
+MOD83_02235BF4: ; 0x02235BF4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x20]
+ add r6, r1, #0
+ mov r1, #2
+ bl FUN_0201886C
+ add r4, r0, #0
+ cmp r6, #0
+ beq _02235C18
+ add r0, r6, #0
+ mov r1, #8
+ mov r2, #0
+ bl MOD83_02237A10
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ b _02235C1A
+_02235C18:
+ mov r1, #0
+_02235C1A:
+ mov r2, #0
+ mov r0, #1
+_02235C1E:
+ add r3, r1, #0
+ tst r3, r0
+ beq _02235C2A
+ add r6, r2, #0
+ add r6, #0x80
+ b _02235C2E
+_02235C2A:
+ add r6, r2, #0
+ add r6, #0x60
+_02235C2E:
+ add r3, r4, #0
+ add r3, #0xd6
+ lsl r1, r1, #0x17
+ add r2, r2, #1
+ strh r6, [r3]
+ lsr r1, r1, #0x18
+ add r4, r4, #2
+ cmp r2, #4
+ blt _02235C1E
+ ldr r0, [r5, #0x20]
+ mov r1, #2
+ bl FUN_02017CD0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02235BF4
+
+ thumb_func_start MOD83_02235C4C
+MOD83_02235C4C: ; 0x02235C4C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x78
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r1, #0
+ add r3, sp, #0x2c
+ add r1, r0, #0
+ mov r2, #4
+_02235C5C:
+ stmia r3!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02235C5C
+ stmia r3!, {r0, r1}
+ str r0, [r3]
+ mov r1, #0x20
+ str r1, [sp, #0x3c]
+ mov r1, #1
+ ldr r0, _02235DF8 ; =0x00000488
+ str r1, [sp, #0x50]
+ str r1, [sp, #0x54]
+ mov r1, #0xbc
+ str r1, [sp, #0x4c]
+ ldr r1, _02235DFC ; =0x000F0200
+ add r0, r5, r0
+ str r1, [sp, #0x58]
+ mov r1, #0x2c
+ str r0, [sp, #0x2c]
+ mov r0, #0
+ str r1, [sp, #0x60]
+ mov r1, #0x90
+ mov r2, #4
+ str r1, [sp, #0x44]
+ str r0, [sp, #0x34]
+ str r0, [sp, #0x38]
+ str r0, [sp, #0x64]
+ str r0, [sp, #0x48]
+ add r0, r5, #0
+ add r1, sp, #0x2c
+ str r2, [sp, #0x40]
+ bl MOD83_02234F2C
+ mov r0, #0x2b
+ str r0, [sp, #0x60]
+ mov r0, #0x50
+ str r0, [sp, #0x44]
+ mov r0, #8
+ str r0, [sp, #0x48]
+ add r0, r5, #0
+ add r1, sp, #0x2c
+ mov r2, #6
+ bl MOD83_02234F2C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD83_02235BF4
+ cmp r4, #0
+ bne _02235CCA
+ ldr r0, [sp, #0x2c]
+ bl FUN_020191D0
+ add sp, #0x78
+ pop {r3, r4, r5, r6, r7, pc}
+_02235CCA:
+ add r2, sp, #0x1c
+ add r0, r4, #0
+ mov r1, #2
+ add r2, #2
+ bl MOD83_02237A10
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #0
+ bl MOD83_02237A10
+ add r3, r0, #0
+ add r0, sp, #0x1c
+ add r0, #2
+ add r1, sp, #8
+ mov r2, #0xb
+ bl FUN_02015D88
+ add r0, sp, #8
+ str r0, [sp, #0x64]
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x60]
+ mov r0, #8
+ str r0, [sp, #0x44]
+ mov r0, #0
+ str r0, [sp, #0x48]
+ add r0, r5, #0
+ add r1, sp, #0x2c
+ mov r2, #6
+ bl MOD83_02234F2C
+ mov r0, #0x40
+ mov r1, #0x4e
+ bl FUN_020219F4
+ add r6, r0, #0
+ ldr r2, _02235E00 ; =0x0000016A
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #0x4e
+ bl FUN_0200A86C
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #0xb
+ mov r2, #0
+ bl MOD83_02237A10
+ bl MOD83_02237EBC
+ str r0, [sp, #4]
+ ldr r1, [sp, #4]
+ add r0, r7, #0
+ add r2, r6, #0
+ bl FUN_0200A8E0
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x60]
+ mov r0, #0x10
+ str r0, [sp, #0x44]
+ str r0, [sp, #0x48]
+ add r0, r5, #0
+ add r1, sp, #0x2c
+ mov r2, #6
+ str r6, [sp, #0x68]
+ bl MOD83_02234F2C
+ add r0, r7, #0
+ bl FUN_0200A8B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ mov r1, #0xc
+ mov r2, #0
+ bl MOD83_02237A10
+ cmp r0, #0
+ beq _02235DAC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206E6D8
+ add r7, r0, #0
+ mov r0, #0x40
+ mov r1, #0x4e
+ bl FUN_020219F4
+ lsl r1, r7, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0x4e
+ add r6, r0, #0
+ bl FUN_0206E768
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x60]
+ mov r0, #0x98
+ str r0, [sp, #0x44]
+ mov r0, #0x10
+ str r0, [sp, #0x48]
+ add r0, r5, #0
+ add r1, sp, #0x2c
+ mov r2, #6
+ str r6, [sp, #0x68]
+ bl MOD83_02234F2C
+ add r0, r6, #0
+ bl FUN_02021A20
+_02235DAC:
+ add r0, r4, #0
+ bl MOD83_02237EDC
+ add r6, r0, #0
+ mov r0, #0xa
+ mov r1, #0x4e
+ bl FUN_020219F4
+ mov r3, #1
+ add r1, r6, #0
+ mov r2, #3
+ add r4, r0, #0
+ str r3, [sp]
+ bl FUN_02021B04
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x60]
+ mov r0, #0x64
+ str r0, [sp, #0x44]
+ mov r0, #8
+ str r0, [sp, #0x48]
+ add r0, r5, #0
+ add r1, sp, #0x2c
+ mov r2, #2
+ str r4, [sp, #0x68]
+ bl MOD83_02234F2C
+ add r0, r4, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #4]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02005578
+ add sp, #0x78
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235DF8: .word 0x00000488
+_02235DFC: .word 0x000F0200
+_02235E00: .word 0x0000016A
+ thumb_func_end MOD83_02235C4C
+
+ thumb_func_start MOD83_02235E04
+MOD83_02235E04: ; 0x02235E04
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4e
+ str r0, [sp, #8]
+ add r6, r2, #0
+ mov r0, #0
+ add r4, r3, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ cmp r4, #0
+ beq _02235E2C
+ mov r0, #0x17
+ str r0, [r4]
+_02235E2C:
+ str r6, [r5, #0x24]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02235E04
+
+ thumb_func_start MOD83_02235E34
+MOD83_02235E34: ; 0x02235E34
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ add r4, r3, #0
+ str r0, [sp, #4]
+ mov r0, #0x4e
+ add r6, r2, #0
+ str r0, [sp, #8]
+ ldr r3, _02235E64 ; =0x00007FFF
+ mov r0, #0
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ cmp r4, #0
+ beq _02235E5C
+ mov r0, #0x17
+ str r0, [r4]
+_02235E5C:
+ str r6, [r5, #0x24]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02235E64: .word 0x00007FFF
+ thumb_func_end MOD83_02235E34
+
+ thumb_func_start MOD83_02235E68
+MOD83_02235E68: ; 0x02235E68
+ push {r3, r4, r5, lr}
+ sub sp, #0x80
+ ldr r5, _02235F28 ; =0x0223A51C
+ add r3, sp, #0x70
+ 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, _02235F2C ; =0x0223A52C
+ 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, #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, _02235F30 ; =0x0223A548
+ 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]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r5, _02235F34 ; =0x0223A564
+ 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, #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, _02235F38 ; =0x0223A580
+ 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, #3
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ add sp, #0x80
+ pop {r3, r4, r5, pc}
+ nop
+_02235F28: .word 0x0223A51C
+_02235F2C: .word 0x0223A52C
+_02235F30: .word 0x0223A548
+_02235F34: .word 0x0223A564
+_02235F38: .word 0x0223A580
+ thumb_func_end MOD83_02235E68
+
+ thumb_func_start MOD83_02235F3C
+MOD83_02235F3C: ; 0x02235F3C
+ push {r3, r4, r5, lr}
+ sub sp, #0x38
+ ldr r5, _02235FB4 ; =0x0223A59C
+ add r4, r0, #0
+ add r3, sp, #0x10
+ mov r2, #5
+_02235F48:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02235F48
+ add r0, sp, #0x10
+ bl FUN_0201E66C
+ ldr r0, [r4, #0x20]
+ bl MOD83_02235E68
+ ldr r0, _02235FB8 ; =0x021C4918
+ mov r1, #1
+ strb r1, [r0, #5]
+ bl FUN_0201E7A0
+ bl FUN_0201BD5C
+ mov r1, #0x1e
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x4e
+ bl FUN_02002ED0
+ mov r0, #0xc0
+ str r0, [sp]
+ mov r0, #0x4e
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0x13
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #5
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x4e
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x20]
+ mov r0, #0x74
+ mov r1, #0x16
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #2
+ mov r1, #0x4e
+ bl FUN_02002C50
+ add sp, #0x38
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02235FB4: .word 0x0223A59C
+_02235FB8: .word 0x021C4918
+ thumb_func_end MOD83_02235F3C
+
+ thumb_func_start MOD83_02235FBC
+MOD83_02235FBC: ; 0x02235FBC
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ 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, #0x4e
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x20]
+ mov r0, #0x74
+ mov r1, #0x14
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r2, #0
+ ldr r1, [r4]
+ ldr r0, _02236008 ; =0x0223B280
+ add r3, r2, #0
+ ldrb r0, [r0, r1]
+ mov r1, #2
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x20]
+ bl FUN_020186B4
+ ldr r0, [r4, #0x20]
+ mov r1, #2
+ bl FUN_02017CD0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02236008: .word 0x0223B280
+ thumb_func_end MOD83_02235FBC
+
+ thumb_func_start MOD83_0223600C
+MOD83_0223600C: ; 0x0223600C
+ push {r4, lr}
+ sub sp, #8
+ mov r1, #7
+ add r4, r0, #0
+ mov r0, #0
+ lsl r1, r1, #6
+ mov r2, #0x4e
+ bl FUN_02002ED0
+ mov r1, #0
+ mov r2, #0x3f
+ str r1, [sp]
+ mov r0, #0x4e
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x20]
+ lsl r2, r2, #4
+ mov r3, #0xe
+ bl FUN_0200CB00
+ ldr r0, [r4, #0x1c]
+ ldr r2, _022360B4 ; =0x000003D2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x4e
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x20]
+ mov r1, #0
+ mov r3, #0xd
+ bl FUN_0200CD68
+ ldr r0, _022360B8 ; =0x0000042C
+ mov r1, #0
+ add r0, r4, r0
+ mov r2, #0x4c
+ bl Call_FillMemWithValue
+ ldr r0, _022360BC ; =0x00000498
+ mov r3, #0x1b
+ add r1, r0, #0
+ add r2, r4, r0
+ sub r1, #0x6c
+ str r2, [r4, r1]
+ add r1, r0, #0
+ mov r2, #2
+ sub r1, #0x64
+ str r2, [r4, r1]
+ add r1, r0, #0
+ mov r2, #1
+ sub r1, #0x60
+ str r2, [r4, r1]
+ add r1, r0, #0
+ sub r1, #0x5c
+ str r3, [r4, r1]
+ add r1, r0, #0
+ mov r3, #4
+ sub r1, #0x58
+ str r3, [r4, r1]
+ add r3, r0, #0
+ mov r1, #0
+ sub r3, #0x48
+ str r1, [r4, r3]
+ add r3, r0, #0
+ sub r3, #0x44
+ str r2, [r4, r3]
+ add r3, r0, #0
+ sub r3, #0x4c
+ str r2, [r4, r3]
+ add r2, r0, #0
+ ldr r3, _022360C0 ; =0x0001020F
+ sub r2, #0x40
+ str r3, [r4, r2]
+ add r2, r0, #0
+ ldr r3, _022360C4 ; =0x000F020F
+ sub r2, #0x3c
+ str r3, [r4, r2]
+ add r2, r0, #0
+ sub r2, #0x34
+ str r1, [r4, r2]
+ sub r0, #0x30
+ str r1, [r4, r0]
+ add sp, #8
+ pop {r4, pc}
+ nop
+_022360B4: .word 0x000003D2
+_022360B8: .word 0x0000042C
+_022360BC: .word 0x00000498
+_022360C0: .word 0x0001020F
+_022360C4: .word 0x000F020F
+ thumb_func_end MOD83_0223600C
+
+ thumb_func_start MOD83_022360C8
+MOD83_022360C8: ; 0x022360C8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ add r6, r0, #0
+ mov r7, #0x6b
+ mov r5, #0
+ add r4, r6, #0
+ lsl r7, r7, #2
+_022360D6:
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r4, r7]
+ mov r1, #0
+ bl FUN_020200A0
+ add r5, r5, #1
+ add r4, #0xc
+ cmp r5, #0x1e
+ blt _022360D6
+ mov r7, #0xf2
+ mov r5, #0
+ add r4, r6, #0
+ lsl r7, r7, #2
+_022360FA:
+ ldr r0, [r4, r7]
+ mov r1, #0
+ bl FUN_020200A0
+ add r5, r5, #1
+ add r4, #0xc
+ cmp r5, #6
+ blt _022360FA
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0xee
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0xea
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r2, #0x61
+ lsl r2, r2, #2
+ add r0, sp, #0x1c
+ add r1, r6, #0
+ add r2, r6, r2
+ mov r3, #1
+ bl MOD83_02235244
+ mov r0, #0x1c
+ mov r7, #0
+ str r0, [sp, #0x10]
+ add r4, r6, #0
+ add r5, r6, #0
+_02236148:
+ ldr r0, [sp, #0x10]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x24]
+ mov r0, #0x8e
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x28]
+ add r0, sp, #0x1c
+ bl FUN_0201FE94
+ ldr r1, _02236288 ; =0x00000414
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, _02236288 ; =0x00000414
+ add r1, r7, #0
+ ldr r0, [r4, r0]
+ add r1, #0xa
+ bl FUN_02020130
+ ldr r0, _02236288 ; =0x00000414
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_02020238
+ ldr r0, _02236288 ; =0x00000414
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ mov r1, #0x3d
+ mov r2, #0xf3
+ lsl r1, r1, #4
+ lsl r2, r2, #2
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ add r0, r6, #0
+ bl MOD83_0223526C
+ mov r1, #0x3d
+ mov r2, #0xf3
+ lsl r1, r1, #4
+ lsl r2, r2, #2
+ str r0, [sp, #0x14]
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ add r0, r6, #0
+ bl MOD83_02235290
+ mov r1, #0x3d
+ mov r2, #0xf3
+ lsl r1, r1, #4
+ lsl r2, r2, #2
+ str r0, [sp, #0x18]
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ add r0, r6, #0
+ bl MOD83_022352B4
+ add r2, r0, #0
+ ldr r0, _02236288 ; =0x00000414
+ str r7, [sp]
+ ldr r0, [r4, r0]
+ ldr r3, _0223628C ; =0x021C4918
+ str r0, [sp, #4]
+ ldrb r3, [r3, #6]
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ bl MOD83_022353C0
+ ldr r0, [sp, #0x10]
+ add r7, r7, #1
+ add r0, #0x28
+ str r0, [sp, #0x10]
+ add r4, r4, #4
+ add r5, #0xc
+ cmp r7, #6
+ blt _02236148
+ 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, #0x4e
+ str r0, [sp, #0xc]
+ ldr r2, [r6, #0x20]
+ mov r0, #0x74
+ mov r1, #0x15
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r2, #0
+ ldr r1, [r6]
+ ldr r0, _02236290 ; =0x0223B280
+ add r3, r2, #0
+ ldrb r0, [r0, r1]
+ mov r1, #2
+ str r0, [sp, #8]
+ ldr r0, [r6, #0x20]
+ bl FUN_020186B4
+ ldr r0, [r6, #0x20]
+ mov r1, #2
+ bl FUN_02017CD0
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r1, #7
+ mov r0, #0
+ lsl r1, r1, #6
+ mov r2, #0x4e
+ bl FUN_02002ED0
+ mov r1, #0
+ mov r2, #0x3f
+ str r1, [sp]
+ mov r0, #0x4e
+ str r0, [sp, #4]
+ ldr r0, [r6, #0x20]
+ lsl r2, r2, #4
+ mov r3, #0xe
+ bl FUN_0200CB00
+ ldr r0, [r6, #0x1c]
+ ldr r2, _02236294 ; =0x000003D2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x4e
+ str r0, [sp, #4]
+ ldr r0, [r6, #0x20]
+ mov r1, #0
+ mov r3, #0xd
+ bl FUN_0200CD68
+ add r0, r6, #0
+ bl MOD83_0223600C
+ mov r1, #0x46
+ mov r0, #0xa
+ lsl r1, r1, #4
+ str r0, [r6, r1]
+ sub r1, #0x34
+ add r0, r6, #0
+ add r1, r6, r1
+ mov r2, #0x18
+ bl MOD83_02234F2C
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02236288: .word 0x00000414
+_0223628C: .word 0x021C4918
+_02236290: .word 0x0223B280
+_02236294: .word 0x000003D2
+ thumb_func_end MOD83_022360C8
+
+ thumb_func_start MOD83_02236298
+MOD83_02236298: ; 0x02236298
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4]
+ cmp r1, #0
+ beq _022362B4
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r4, #0
+ bl FUN_02019570
+ add r0, r4, #0
+ bl FUN_02019178
+_022362B4:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02236298
+
+ thumb_func_start MOD83_022362B8
+MOD83_022362B8: ; 0x022362B8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r7, _02236328 ; =0x00000414
+ mov r4, #0
+ add r5, r6, #0
+_022362C2:
+ ldr r0, [r5, r7]
+ bl FUN_0201FFC8
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _022362C2
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E6E4
+ ldr r0, _0223632C ; =0x00000498
+ add r0, r6, r0
+ bl MOD83_02236298
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xee
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xea
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xf3
+ mov r5, #0
+ lsl r0, r0, #2
+ add r4, r6, #0
+ sub r3, r5, #1
+ mov r2, #0xe
+ add r1, r0, #4
+_02236312:
+ str r3, [r4, r0]
+ str r2, [r4, r1]
+ add r5, r5, #1
+ add r4, #0xc
+ cmp r5, #6
+ blt _02236312
+ mov r0, #0x41
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02236328: .word 0x00000414
+_0223632C: .word 0x00000498
+ thumb_func_end MOD83_022362B8
+
+ thumb_func_start MOD83_02236330
+MOD83_02236330: ; 0x02236330
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r7, #0x6a
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_02236344:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _0223634E
+ bl FUN_0201FFC8
+_0223634E:
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0223635C
+ bl FUN_0201FFC8
+_0223635C:
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, #0x1e
+ blt _02236344
+ mov r7, #0xf2
+ mov r5, #0
+ add r4, r6, #0
+ lsl r7, r7, #2
+_0223636C:
+ ldr r0, [r4, r7]
+ cmp r0, #0
+ beq _02236376
+ bl FUN_0201FFC8
+_02236376:
+ add r5, r5, #1
+ add r4, #0xc
+ cmp r5, #6
+ blt _0223636C
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _0223638C
+ bl FUN_0201FFC8
+_0223638C:
+ mov r0, #0xee
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _0223639A
+ bl FUN_0201FFC8
+_0223639A:
+ mov r0, #0xea
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _022363A8
+ bl FUN_0201FFC8
+_022363A8:
+ ldr r0, _0223643C ; =0x00000478
+ add r0, r6, r0
+ bl MOD83_02236298
+ ldr r0, _02236440 ; =0x00000488
+ add r0, r6, r0
+ bl MOD83_02236298
+ ldr r0, _02236444 ; =0x00000498
+ add r0, r6, r0
+ bl MOD83_02236298
+ mov r0, #2
+ bl FUN_02002CF8
+ mov r0, #0x5b
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0x17
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r7, #0x55
+ mov r5, #0
+ add r4, r6, #0
+ lsl r7, r7, #2
+_022363E2:
+ ldr r0, [r4, r7]
+ bl FUN_02008E2C
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #6
+ blt _022363E2
+ ldr r0, [r6, #0x28]
+ bl FUN_0201FD58
+ mov r0, #0
+ str r0, [r6, #0x28]
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ ldr r0, _02236448 ; =0x0000E88C
+ ldr r0, [r6, r0]
+ bl FUN_020145A8
+ ldr r0, _0223644C ; =0x021C4918
+ mov r1, #0
+ strb r1, [r0, #5]
+ bl FUN_0201E7A0
+ ldr r0, [r6, #0x20]
+ mov r1, #0
+ bl FUN_020178A0
+ ldr r0, [r6, #0x20]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r6, #0x20]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r6, #0x20]
+ mov r1, #3
+ bl FUN_020178A0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223643C: .word 0x00000478
+_02236440: .word 0x00000488
+_02236444: .word 0x00000498
+_02236448: .word 0x0000E88C
+_0223644C: .word 0x021C4918
+ thumb_func_end MOD83_02236330
+
+ thumb_func_start MOD83_02236450
+MOD83_02236450: ; 0x02236450
+ push {lr}
+ sub sp, #0x14
+ ldr r1, [r0, #0x20]
+ mov r2, #0x19
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r1, #2
+ lsl r1, r1, #8
+ str r1, [sp, #8]
+ mov r1, #8
+ str r1, [sp, #0xc]
+ add r1, sp, #0
+ strb r2, [r1, #0x10]
+ mov r2, #7
+ strb r2, [r1, #0x11]
+ ldr r1, _02236480 ; =0x0000E88C
+ ldr r0, [r0, r1]
+ add r1, sp, #0
+ bl FUN_020145C8
+ add sp, #0x14
+ pop {pc}
+ nop
+_02236480: .word 0x0000E88C
+ thumb_func_end MOD83_02236450
+
+ thumb_func_start MOD83_02236484
+MOD83_02236484: ; 0x02236484
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ bl MOD83_02237464
+ add r4, r0, #0
+ bl MOD83_02236EA8
+ add r3, r0, #0
+ add r0, r4, #0
+ add r1, sp, #8
+ mov r2, #8
+ bl FUN_02015D88
+ mov r0, #0x4e
+ bl FUN_0200AA80
+ add r4, r0, #0
+ mov r0, #8
+ mov r1, #0x4e
+ bl FUN_020219F4
+ add r1, sp, #8
+ add r6, r0, #0
+ bl FUN_02021E28
+ mov r1, #1
+ str r1, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl FUN_0200ABB4
+ add r0, r5, #0
+ bl MOD83_0223600C
+ ldr r0, [r5]
+ mov r2, #0x18
+ lsl r1, r0, #2
+ ldr r0, _02236508 ; =0x0223B2A0
+ ldr r0, [r0, r1]
+ mov r1, #0x46
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r1, #0
+ add r0, #0xc
+ sub r1, #0x34
+ str r4, [r5, r0]
+ add r0, r5, #0
+ add r1, r5, r1
+ bl MOD83_02234F2C
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_0200AB18
+ add r0, r5, #0
+ bl MOD83_02236450
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+ nop
+_02236508: .word 0x0223B2A0
+ thumb_func_end MOD83_02236484
+
+ thumb_func_start MOD83_0223650C
+MOD83_0223650C: ; 0x0223650C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0223653C ; =0x00012604
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02236520
+ blx r0
+ ldr r0, _0223653C ; =0x00012604
+ mov r1, #0
+ str r1, [r4, r0]
+_02236520:
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ ldr r0, [r4, #0x20]
+ bl FUN_0201AB60
+ ldr r3, _02236540 ; =0x027E0000
+ ldr r1, _02236544 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ .align 2, 0
+_0223653C: .word 0x00012604
+_02236540: .word 0x027E0000
+_02236544: .word 0x00003FF8
+ thumb_func_end MOD83_0223650C
+
+ thumb_func_start MOD83_02236548
+MOD83_02236548: ; 0x02236548
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ ldr r0, [r0, #0x10]
+ bl FUN_02022528
+ str r0, [sp, #8]
+ bl FUN_0202C0B8
+ cmp r0, #0
+ bne _0223659C
+ ldr r0, [sp, #8]
+ bl FUN_0202C060
+ cmp r0, #0
+ bne _0223656E
+ add sp, #0xc
+ mov r0, #3
+ pop {r4, r5, r6, r7, pc}
+_0223656E:
+ ldr r0, [sp, #8]
+ bl FUN_0202C094
+ cmp r0, #0
+ bne _0223657E
+ add sp, #0xc
+ mov r0, #4
+ pop {r4, r5, r6, r7, pc}
+_0223657E:
+ bl MOD83_02237448
+ add r1, r0, #0
+ ldr r0, [sp, #8]
+ bl FUN_0202C028
+ cmp r0, #0
+ bne _02236590
+ ldr r0, _022365F8 ; =0x0002A300
+_02236590:
+ ldr r1, _022365FC ; =0x00015180
+ cmp r0, r1
+ bge _0223659C
+ add sp, #0xc
+ mov r0, #2
+ pop {r4, r5, r6, r7, pc}
+_0223659C:
+ mov r6, #0
+ str r6, [sp, #4]
+ add r7, r6, #0
+_022365A2:
+ mov r4, #0
+ add r5, r4, #0
+_022365A6:
+ ldr r1, [sp]
+ ldr r0, _02236600 ; =0x0000E880
+ mov r2, #0
+ ldr r0, [r1, r0]
+ mov r1, #5
+ add r0, r0, #4
+ add r0, r0, r7
+ add r0, r0, r5
+ bl MOD83_02237A10
+ cmp r0, #0
+ beq _022365C0
+ add r6, r6, #1
+_022365C0:
+ add r4, r4, #1
+ add r5, #0x50
+ cmp r4, #0x1e
+ blt _022365A6
+ mov r0, #0x96
+ lsl r0, r0, #4
+ add r7, r7, r0
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #0xe
+ blt _022365A2
+ cmp r6, #6
+ bge _022365E2
+ add sp, #0xc
+ mov r0, #5
+ pop {r4, r5, r6, r7, pc}
+_022365E2:
+ ldr r0, [sp, #8]
+ bl FUN_0202C000
+ cmp r0, #0
+ beq _022365F2
+ add sp, #0xc
+ mov r0, #6
+ pop {r4, r5, r6, r7, pc}
+_022365F2:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022365F8: .word 0x0002A300
+_022365FC: .word 0x00015180
+_02236600: .word 0x0000E880
+ thumb_func_end MOD83_02236548
+
+ thumb_func_start MOD83_02236604
+MOD83_02236604: ; 0x02236604
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r1, [r5, #4]
+ cmp r1, #0
+ beq _02236640
+ bl MOD83_0223600C
+ mov r0, #1
+ bl FUN_02002BB8
+ ldr r0, _02236660 ; =0x0223B2D8
+ lsl r1, r4, #2
+ ldr r0, [r0, r1]
+ mov r1, #0x46
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r1, #0
+ sub r1, #0x34
+ mov r2, #1
+ add r0, #0x10
+ str r2, [r5, r0]
+ add r0, r5, #0
+ add r1, r5, r1
+ mov r2, #0x18
+ bl MOD83_02234F2C
+ mov r0, #0
+ str r0, [r5, #4]
+ b _0223665A
+_02236640:
+ ldr r0, _02236664 ; =0x00000474
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223665A
+ mov r0, #0
+ bl FUN_02002BB8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0223665A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02236660: .word 0x0223B2D8
+_02236664: .word 0x00000474
+ thumb_func_end MOD83_02236604
+
+ thumb_func_start MOD83_02236668
+MOD83_02236668: ; 0x02236668
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r1, [r5, #4]
+ cmp r1, #0
+ beq _022366A4
+ bl MOD83_0223600C
+ mov r0, #1
+ bl FUN_02002BB8
+ ldr r0, _022366C8 ; =0x0223B2D8
+ lsl r1, r4, #2
+ ldr r0, [r0, r1]
+ mov r1, #0x46
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r1, #0
+ sub r1, #0x34
+ mov r2, #1
+ add r0, #0x10
+ str r2, [r5, r0]
+ add r0, r5, #0
+ add r1, r5, r1
+ mov r2, #0x18
+ bl MOD83_02234F2C
+ mov r0, #0
+ str r0, [r5, #4]
+ b _022366C4
+_022366A4:
+ ldr r0, _022366CC ; =0x00000474
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _022366C4
+ add r0, r5, #0
+ bl MOD83_02236450
+ mov r0, #0
+ bl FUN_02002BB8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022366C4:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022366C8: .word 0x0223B2D8
+_022366CC: .word 0x00000474
+ thumb_func_end MOD83_02236668
+
+ thumb_func_start MOD83_022366D0
+MOD83_022366D0: ; 0x022366D0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r1, #0
+ ldr r2, [r5, #8]
+ mvn r1, r1
+ cmp r2, r1
+ beq _02236712
+ bl MOD83_0223600C
+ mov r0, #1
+ bl FUN_02002BB8
+ mov r1, #0x46
+ ldr r0, [r5, #8]
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r1, #0
+ add r0, #0x10
+ sub r1, #0x34
+ str r4, [r5, r0]
+ add r0, r5, #0
+ add r1, r5, r1
+ mov r2, #0x18
+ bl MOD83_02234F2C
+ mov r0, #0
+ mvn r0, r0
+ str r0, [r5, #8]
+ ldr r0, _02236754 ; =0x000005DC
+ bl FUN_020054C8
+ b _02236750
+_02236712:
+ cmp r4, #0
+ beq _02236730
+ ldr r0, _02236758 ; =0x00000474
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02236750
+ mov r0, #0
+ bl FUN_02002BB8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02236730:
+ ldr r0, _0223675C ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ bne _02236740
+ ldr r0, _02236760 ; =0x021C48B8
+ ldr r0, [r0, #0x48]
+ cmp r0, #0
+ beq _02236750
+_02236740:
+ mov r0, #0
+ bl FUN_02002BB8
+ ldr r0, _02236754 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02236750:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02236754: .word 0x000005DC
+_02236758: .word 0x00000474
+_0223675C: .word 0x021C48F8
+_02236760: .word 0x021C48B8
+ thumb_func_end MOD83_022366D0
+
+ thumb_func_start MOD83_02236764
+MOD83_02236764: ; 0x02236764
+ push {r3, r4, r5, lr}
+ mov r2, #0xa
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #0x4e
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ ldr r1, _022367F0 ; =0x00012608
+ add r0, r5, #0
+ mov r2, #0x4e
+ bl FUN_02006268
+ ldr r2, _022367F0 ; =0x00012608
+ mov r1, #0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x4e
+ bl FUN_02016B94
+ str r0, [r4, #0x20]
+ mov r0, #0x4e
+ bl FUN_02014590
+ ldr r1, _022367F4 ; =0x0000E88C
+ str r0, [r4, r1]
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ add r0, r5, #0
+ bl FUN_0200628C
+ ldr r0, [r0, #8]
+ str r0, [r4, #0x10]
+ bl FUN_020238F4
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x18]
+ bl FUN_02025084
+ str r0, [r4, #0x1c]
+ ldr r1, _022367F8 ; =0x00000496
+ mov r0, #9
+ mov r2, #1
+ bl FUN_0200433C
+ bl OS_IsTickAvailable
+ cmp r0, #0
+ bne _022367DE
+ bl OS_InitTick
+_022367DE:
+ bl MOD83_02239490
+ ldr r0, _022367FC ; =0x0000E89C
+ add r1, r4, r0
+ ldr r0, _02236800 ; =0x0223BB14
+ str r1, [r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_022367F0: .word 0x00012608
+_022367F4: .word 0x0000E88C
+_022367F8: .word 0x00000496
+_022367FC: .word 0x0000E89C
+_02236800: .word 0x0223BB14
+ thumb_func_end MOD83_02236764
+
+ thumb_func_start MOD83_02236804
+MOD83_02236804: ; 0x02236804
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ bl CTRDG_IsExisting
+ bl CTRDG_IsPulledOut
+ cmp r0, #1
+ beq _02236822
+ ldr r0, _02236B3C ; =0x02106FA4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02236828
+_02236822:
+ mov r0, #0x4e
+ bl FUN_02089F24
+_02236828:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r5]
+ cmp r0, #0x18
+ bhi _02236924
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02236840: ; jump table
+ .short _02236872 - _02236840 - 2 ; case 0
+ .short _022368BA - _02236840 - 2 ; case 1
+ .short _02236900 - _02236840 - 2 ; case 2
+ .short _02236914 - _02236840 - 2 ; case 3
+ .short _0223694E - _02236840 - 2 ; case 4
+ .short _02236966 - _02236840 - 2 ; case 5
+ .short _022369BC - _02236840 - 2 ; case 6
+ .short _022369CE - _02236840 - 2 ; case 7
+ .short _022369EC - _02236840 - 2 ; case 8
+ .short _022369FE - _02236840 - 2 ; case 9
+ .short _02236A5C - _02236840 - 2 ; case 10
+ .short _02236A74 - _02236840 - 2 ; case 11
+ .short _02236A88 - _02236840 - 2 ; case 12
+ .short _02236AC8 - _02236840 - 2 ; case 13
+ .short _02236BF0 - _02236840 - 2 ; case 14
+ .short _02236C0A - _02236840 - 2 ; case 15
+ .short _02236C26 - _02236840 - 2 ; case 16
+ .short _02236C40 - _02236840 - 2 ; case 17
+ .short _02236C76 - _02236840 - 2 ; case 18
+ .short _02236C9C - _02236840 - 2 ; case 19
+ .short _02236D06 - _02236840 - 2 ; case 20
+ .short _02236D12 - _02236840 - 2 ; case 21
+ .short _02236D54 - _02236840 - 2 ; case 22
+ .short _02236D78 - _02236840 - 2 ; case 23
+ .short _02236D86 - _02236840 - 2 ; case 24
+_02236872:
+ bl MOD83_02236E90
+ mov r0, #0x4b
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD83_02236E18
+ ldr r1, _02236B40 ; =0x000004A8
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _022368AE
+ bl MOD83_022371C4
+ ldr r1, _02236B44 ; =0x000004AC
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _022368AA
+ bl MOD83_0223742C
+ ldr r1, _02236B48 ; =0x0000E880
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ ldrb r2, [r0]
+ add r0, r1, #4
+ str r2, [r4, r0]
+ b _022368AE
+_022368AA:
+ mov r0, #1
+ str r0, [r4, #4]
+_022368AE:
+ add r0, r4, #0
+ bl MOD83_02234CA0
+ mov r0, #1
+ str r0, [r5]
+ b _02236D90
+_022368BA:
+ add r0, r4, #0
+ bl MOD83_02235F3C
+ bl MOD83_022350BC
+ add r0, r4, #0
+ bl MOD83_022350EC
+ add r0, r4, #0
+ bl MOD83_022351F8
+ add r0, r4, #0
+ bl MOD83_022357CC
+ ldr r0, _02236B4C ; =MOD83_0223650C
+ add r1, r4, #0
+ bl FUN_02015F10
+ mov r0, #0x10
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, [r4, #4]
+ cmp r0, #1
+ bne _022368FA
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xb
+ add r3, r5, #0
+ bl MOD83_02235E04
+ b _02236D90
+_022368FA:
+ mov r0, #2
+ str r0, [r5]
+ b _02236D90
+_02236900:
+ add r0, r4, #0
+ bl MOD83_02236484
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #3
+ add r3, r5, #0
+ bl MOD83_02235E04
+ b _02236D90
+_02236914:
+ ldr r0, _02236B50 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_0201466C
+ cmp r0, #1
+ beq _02236926
+ cmp r0, #2
+ beq _02236938
+_02236924:
+ b _02236D90
+_02236926:
+ ldr r0, _02236B50 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ mov r0, #0x22
+ str r0, [r4, #8]
+ mov r0, #4
+ str r0, [r5]
+ b _02236D90
+_02236938:
+ ldr r0, _02236B50 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x18
+ add r3, r5, #0
+ bl MOD83_02235E34
+ b _02236D90
+_0223694E:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_022366D0
+ cmp r0, #0
+ beq _02236976
+ add r0, r4, #0
+ bl MOD83_02236450
+ mov r0, #5
+ str r0, [r5]
+ b _02236D90
+_02236966:
+ ldr r0, _02236B50 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_0201466C
+ cmp r0, #1
+ beq _02236978
+ cmp r0, #2
+ beq _022369A6
+_02236976:
+ b _02236D90
+_02236978:
+ ldr r0, _02236B50 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ add r0, r4, #0
+ bl MOD83_02236548
+ str r0, [r4, #4]
+ cmp r0, #0
+ beq _0223699E
+ sub r0, r0, #3
+ cmp r0, #1
+ bhi _02236998
+ mov r0, #8
+ str r0, [r5]
+ b _02236D90
+_02236998:
+ mov r0, #0xb
+ str r0, [r5]
+ b _02236D90
+_0223699E:
+ mov r0, #6
+ str r0, [r4, #8]
+ str r0, [r5]
+ b _02236D90
+_022369A6:
+ ldr r0, _02236B50 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x18
+ add r3, r5, #0
+ bl MOD83_02235E34
+ b _02236D90
+_022369BC:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_022366D0
+ cmp r0, #0
+ beq _02236A0E
+ mov r0, #7
+ str r0, [r5]
+ b _02236D90
+_022369CE:
+ ldr r0, _02236B54 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ bne _022369DE
+ ldr r0, _02236B58 ; =0x021C48B8
+ ldr r0, [r0, #0x48]
+ cmp r0, #0
+ beq _02236A0E
+_022369DE:
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0xc
+ add r3, r5, #0
+ bl MOD83_02235E04
+ b _02236D90
+_022369EC:
+ ldr r1, [r4, #4]
+ add r0, r4, #0
+ bl MOD83_02236668
+ cmp r0, #0
+ beq _02236A0E
+ mov r0, #9
+ str r0, [r5]
+ b _02236D90
+_022369FE:
+ ldr r0, _02236B50 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_0201466C
+ cmp r0, #1
+ beq _02236A10
+ cmp r0, #2
+ beq _02236A46
+_02236A0E:
+ b _02236D90
+_02236A10:
+ ldr r0, _02236B50 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ mov r1, #0x47
+ lsl r1, r1, #4
+ mov r2, #0
+ add r0, r1, #0
+ str r2, [r4, r1]
+ sub r1, #0x44
+ mov r3, #0x28
+ sub r0, #0x10
+ str r3, [r4, r0]
+ add r0, r4, #0
+ add r1, r4, r1
+ bl MOD83_02234F2C
+ ldr r1, _02236B5C ; =0x00000498
+ add r0, r4, r1
+ sub r1, #0xc6
+ bl FUN_0200D858
+ ldr r1, _02236B60 ; =0x0000E898
+ str r0, [r4, r1]
+ mov r0, #0xa
+ str r0, [r5]
+ b _02236D90
+_02236A46:
+ ldr r0, _02236B50 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x18
+ add r3, r5, #0
+ bl MOD83_02235E34
+ b _02236D90
+_02236A5C:
+ add r0, r4, #0
+ bl MOD83_02234E40
+ ldr r0, _02236B60 ; =0x0000E898
+ ldr r0, [r4, r0]
+ bl FUN_0200DBFC
+ mov r0, #7
+ str r0, [r4, #4]
+ mov r0, #0xb
+ str r0, [r5]
+ b _02236D90
+_02236A74:
+ ldr r1, [r4, #4]
+ add r0, r4, #0
+ bl MOD83_02236604
+ cmp r0, #0
+ bne _02236A82
+ b _02236D90
+_02236A82:
+ mov r0, #0x16
+ str r0, [r5]
+ b _02236D90
+_02236A88:
+ ldr r0, _02236B5C ; =0x00000498
+ add r0, r4, r0
+ bl MOD83_02236298
+ add r0, r4, #0
+ bl MOD83_02235FBC
+ add r0, r4, #0
+ bl MOD83_02235648
+ add r0, r4, #0
+ bl MOD83_022354F0
+ ldr r0, _02236B4C ; =MOD83_0223650C
+ add r1, r4, #0
+ bl FUN_02015F10
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_02235C4C
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xd
+ add r3, r5, #0
+ bl MOD83_02235E04
+ b _02236D90
+_02236AC8:
+ mov r0, #0x31
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02020988
+ add r6, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ beq _02236B9C
+ cmp r6, #0x1e
+ bge _02236B92
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD83_02235994
+ cmp r0, #1
+ bne _02236B20
+ ldr r2, _02236B48 ; =0x0000E880
+ add r0, r4, #0
+ ldr r1, [r4, r2]
+ add r2, r2, #4
+ ldr r3, [r4, r2]
+ mov r2, #0x96
+ lsl r2, r2, #4
+ add r1, r1, #4
+ mul r2, r3
+ add r2, r1, r2
+ mov r1, #0x50
+ mul r1, r6
+ add r1, r2, r1
+ bl MOD83_02235C4C
+ mov r0, #0x41
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #6
+ bne _02236B9C
+ ldr r0, _02236B64 ; =0x0000E888
+ mov r1, #0x2d
+ str r1, [r4, r0]
+ mov r0, #0xf
+ str r0, [r5]
+ b _02236D90
+_02236B20:
+ cmp r0, #2
+ bne _02236B2E
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_02235C4C
+ b _02236D90
+_02236B2E:
+ cmp r0, #4
+ bne _02236B68
+ mov r0, #8
+ str r0, [r4, #8]
+ mov r0, #0xe
+ str r0, [r5]
+ b _02236D90
+ .align 2, 0
+_02236B3C: .word 0x02106FA4
+_02236B40: .word 0x000004A8
+_02236B44: .word 0x000004AC
+_02236B48: .word 0x0000E880
+_02236B4C: .word MOD83_0223650C
+_02236B50: .word 0x0000E88C
+_02236B54: .word 0x021C48F8
+_02236B58: .word 0x021C48B8
+_02236B5C: .word 0x00000498
+_02236B60: .word 0x0000E898
+_02236B64: .word 0x0000E888
+_02236B68:
+ cmp r0, #5
+ bne _02236B76
+ mov r0, #9
+ str r0, [r4, #8]
+ mov r0, #0xe
+ str r0, [r5]
+ b _02236D90
+_02236B76:
+ cmp r0, #6
+ bne _02236B84
+ mov r0, #0x26
+ str r0, [r4, #8]
+ mov r0, #0xe
+ str r0, [r5]
+ b _02236D90
+_02236B84:
+ cmp r0, #7
+ bne _02236B9C
+ mov r0, #0x26
+ str r0, [r4, #8]
+ mov r0, #0xe
+ str r0, [r5]
+ b _02236D90
+_02236B92:
+ beq _02236BDC
+ cmp r6, #0x1f
+ beq _02236B9E
+ cmp r6, #0x20
+ beq _02236BBC
+_02236B9C:
+ b _02236D90
+_02236B9E:
+ ldr r0, _02236DA0 ; =0x0000E884
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ bne _02236BAA
+ mov r1, #0xd
+ b _02236BAC
+_02236BAA:
+ sub r1, r1, #1
+_02236BAC:
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD83_022354F0
+ ldr r0, _02236DA4 ; =0x000005DC
+ bl FUN_020054C8
+ b _02236D90
+_02236BBC:
+ ldr r0, _02236DA0 ; =0x0000E884
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ ldr r1, [r4, r0]
+ cmp r1, #0xe
+ bne _02236BCE
+ mov r1, #0
+ str r1, [r4, r0]
+_02236BCE:
+ add r0, r4, #0
+ bl MOD83_022354F0
+ ldr r0, _02236DA4 ; =0x000005DC
+ bl FUN_020054C8
+ b _02236D90
+_02236BDC:
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x18
+ add r3, r5, #0
+ bl MOD83_02235E34
+ ldr r0, _02236DA4 ; =0x000005DC
+ bl FUN_020054C8
+ b _02236D90
+_02236BF0:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_022366D0
+ cmp r0, #0
+ beq _02236C50
+ ldr r0, _02236DA8 ; =0x00000498
+ add r0, r4, r0
+ bl MOD83_02236298
+ mov r0, #0xd
+ str r0, [r5]
+ b _02236D90
+_02236C0A:
+ ldr r0, _02236DAC ; =0x0000E888
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02236C50
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x10
+ add r3, r5, #0
+ bl MOD83_02235E04
+ b _02236D90
+_02236C26:
+ add r0, r4, #0
+ bl MOD83_022360C8
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x11
+ add r3, r5, #0
+ bl MOD83_02235E04
+ add r0, r4, #0
+ bl MOD83_02236450
+ b _02236D90
+_02236C40:
+ ldr r0, _02236DB0 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_0201466C
+ cmp r0, #1
+ beq _02236C52
+ cmp r0, #2
+ beq _02236C60
+_02236C50:
+ b _02236D90
+_02236C52:
+ ldr r0, _02236DB0 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ mov r0, #0x12
+ str r0, [r5]
+ b _02236D90
+_02236C60:
+ ldr r0, _02236DB0 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x14
+ add r3, r5, #0
+ bl MOD83_02235E04
+ b _02236D90
+_02236C76:
+ mov r1, #0x46
+ mov r0, #0xb
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ sub r1, #0x34
+ add r0, r4, #0
+ add r1, r4, r1
+ mov r2, #0
+ bl MOD83_02234F2C
+ add r0, r4, #0
+ bl MOD83_02236450
+ ldr r0, _02236DA4 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x13
+ str r0, [r5]
+ b _02236D90
+_02236C9C:
+ ldr r0, _02236DB0 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_0201466C
+ cmp r0, #1
+ beq _02236CAE
+ cmp r0, #2
+ beq _02236CF0
+ b _02236D90
+_02236CAE:
+ ldr r0, [r4]
+ mov r2, #0
+ lsl r1, r0, #2
+ ldr r0, _02236DB4 ; =0x0223B288
+ ldr r0, [r0, r1]
+ mov r1, #0x46
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ sub r1, #0x34
+ add r0, r4, #0
+ add r1, r4, r1
+ bl MOD83_02234F2C
+ ldr r0, _02236DB0 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ ldr r0, _02236DB8 ; =0x0000E890
+ mov r1, #0
+ str r1, [r4, r0]
+ ldr r1, _02236DA8 ; =0x00000498
+ add r0, r4, r1
+ sub r1, #0xc6
+ bl FUN_0200D858
+ ldr r1, _02236DBC ; =0x0000E898
+ str r0, [r4, r1]
+ mov r0, #0x15
+ str r0, [r5]
+ mov r0, #4
+ bl FUN_020166A8
+ b _02236D90
+_02236CF0:
+ ldr r0, _02236DB0 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x14
+ add r3, r5, #0
+ bl MOD83_02235E04
+ b _02236D90
+_02236D06:
+ add r0, r4, #0
+ bl MOD83_022362B8
+ mov r0, #0xc
+ str r0, [r5]
+ b _02236D90
+_02236D12:
+ add r0, r4, #0
+ bl MOD83_02234CE8
+ add r6, r0, #0
+ cmp r6, #0xa
+ beq _02236D90
+ ldr r0, _02236DBC ; =0x0000E898
+ ldr r0, [r4, r0]
+ bl FUN_0200DBFC
+ ldr r0, _02236DC0 ; =0x0000061B
+ bl FUN_020054C8
+ cmp r6, #0xb
+ bne _02236D34
+ mov r1, #0x1d
+ b _02236D36
+_02236D34:
+ mov r1, #0x24
+_02236D36:
+ mov r0, #0x46
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r1, _02236DC4 ; =0x0000042C
+ add r0, r4, #0
+ add r1, r4, r1
+ mov r2, #0
+ bl MOD83_02234F2C
+ mov r0, #0x16
+ str r0, [r5]
+ mov r0, #4
+ bl FUN_020166B8
+ b _02236D90
+_02236D54:
+ ldr r0, _02236DC8 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ bne _02236D64
+ ldr r0, _02236DCC ; =0x021C48B8
+ ldr r0, [r0, #0x48]
+ cmp r0, #0
+ beq _02236D90
+_02236D64:
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x18
+ add r3, r5, #0
+ bl MOD83_02235E34
+ ldr r0, _02236DA4 ; =0x000005DC
+ bl FUN_020054C8
+ b _02236D90
+_02236D78:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _02236D90
+ ldr r0, [r4, #0x24]
+ str r0, [r5]
+ b _02236D90
+_02236D86:
+ add r0, r4, #0
+ bl MOD83_02236330
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02236D90:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _02236D9A
+ bl FUN_0201FDEC
+_02236D9A:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02236DA0: .word 0x0000E884
+_02236DA4: .word 0x000005DC
+_02236DA8: .word 0x00000498
+_02236DAC: .word 0x0000E888
+_02236DB0: .word 0x0000E88C
+_02236DB4: .word 0x0223B288
+_02236DB8: .word 0x0000E890
+_02236DBC: .word 0x0000E898
+_02236DC0: .word 0x0000061B
+_02236DC4: .word 0x0000042C
+_02236DC8: .word 0x021C48F8
+_02236DCC: .word 0x021C48B8
+ thumb_func_end MOD83_02236804
+
+ thumb_func_start MOD83_02236DD0
+MOD83_02236DD0: ; 0x02236DD0
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02006278
+ ldr r0, [r0, #0x20]
+ bl FUN_02016A18
+ ldr r0, _02236DFC ; =0x0000003F
+ ldr r1, _02236E00 ; =0x021DBAB8
+ bl FUN_02000E7C
+ add r0, r4, #0
+ bl FUN_0200627C
+ mov r0, #0x4e
+ bl FUN_020168D0
+ mov r0, #0
+ bl MOD83_02239450
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_02236DFC: .word 0x0000003F
+_02236E00: .word 0x021DBAB8
+ thumb_func_end MOD83_02236DD0
+
+ thumb_func_start MOD83_02236E04
+MOD83_02236E04: ; 0x02236E04
+ push {r3, lr}
+ mov r0, #1
+ bl CTRDG_IdentifyAgbBackup
+ cmp r0, #0
+ bne _02236E14
+ mov r0, #1
+ pop {r3, pc}
+_02236E14:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD83_02236E04
+
+ thumb_func_start MOD83_02236E18
+MOD83_02236E18: ; 0x02236E18
+ push {r3, lr}
+ ldr r1, _02236E74 ; =0x0223BB18
+ str r0, [r1, #8]
+ ldr r0, _02236E78 ; =0x0223B41C
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02236E2A
+ mov r0, #0xc
+ pop {r3, pc}
+_02236E2A:
+ ldr r0, _02236E7C ; =0x0223A5C4
+ mov r1, #0x1e
+ bl MOD83_02236EB4
+ cmp r0, #0
+ bne _02236E72
+ ldr r0, _02236E78 ; =0x0223B41C
+ ldr r0, [r0]
+ ldrb r0, [r0, #4]
+ cmp r0, #0
+ bne _02236E5A
+ mov r0, #0x89
+ ldr r1, _02236E80 ; =0x0223BB98
+ lsl r0, r0, #4
+ str r0, [r1, #0x20]
+ mov r0, #0xeb
+ lsl r0, r0, #6
+ str r0, [r1, #0x24]
+ ldr r2, _02236E84 ; =0x00001220
+ ldr r0, _02236E74 ; =0x0223BB18
+ str r2, [r0, #0x68]
+ mov r0, #9
+ str r0, [r1, #0x30]
+ b _02236E64
+_02236E5A:
+ ldr r0, _02236E88 ; =0x08000100
+ ldr r1, _02236E8C ; =0x0223BB30
+ mov r2, #0xfc
+ bl CTRDG_CpuCopy32
+_02236E64:
+ bl MOD83_02236E04
+ cmp r0, #0
+ bne _02236E70
+ mov r0, #3
+ pop {r3, pc}
+_02236E70:
+ mov r0, #0
+_02236E72:
+ pop {r3, pc}
+ .align 2, 0
+_02236E74: .word 0x0223BB18
+_02236E78: .word 0x0223B41C
+_02236E7C: .word 0x0223A5C4
+_02236E80: .word 0x0223BB98
+_02236E84: .word 0x00001220
+_02236E88: .word 0x08000100
+_02236E8C: .word 0x0223BB30
+ thumb_func_end MOD83_02236E18
+
+ thumb_func_start MOD83_02236E90
+MOD83_02236E90: ; 0x02236E90
+ ldr r0, _02236E98 ; =0x0223B41C
+ mov r1, #0
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_02236E98: .word 0x0223B41C
+ thumb_func_end MOD83_02236E90
+
+ thumb_func_start MOD83_02236E9C
+MOD83_02236E9C: ; 0x02236E9C
+ ldr r0, _02236EA4 ; =0x0223B41C
+ ldr r0, [r0]
+ ldrb r0, [r0, #5]
+ bx lr
+ .align 2, 0
+_02236EA4: .word 0x0223B41C
+ thumb_func_end MOD83_02236E9C
+
+ thumb_func_start MOD83_02236EA8
+MOD83_02236EA8: ; 0x02236EA8
+ ldr r0, _02236EB0 ; =0x0223B41C
+ ldr r0, [r0]
+ ldrh r0, [r0, #6]
+ bx lr
+ .align 2, 0
+_02236EB0: .word 0x0223B41C
+ thumb_func_end MOD83_02236EA8
+
+ thumb_func_start MOD83_02236EB4
+MOD83_02236EB4: ; 0x02236EB4
+ push {r3, r4, r5, lr}
+ sub sp, #0xc0
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r0, _02236F60 ; =0x0223B41C
+ mov r1, #0
+ str r1, [r0]
+ bl CTRDG_IsAgbCartridge
+ cmp r0, #0
+ bne _02236ED0
+ add sp, #0xc0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02236ED0:
+ bl CTRDG_GetAgbGameCode
+ mov r2, #0
+ cmp r4, #0
+ ble _02236EF4
+ add r3, r5, #0
+_02236EDC:
+ ldr r1, [r3]
+ cmp r0, r1
+ bne _02236EEC
+ lsl r0, r2, #3
+ add r1, r5, r0
+ ldr r0, _02236F60 ; =0x0223B41C
+ str r1, [r0]
+ b _02236EF4
+_02236EEC:
+ add r2, r2, #1
+ add r3, #8
+ cmp r2, r4
+ blt _02236EDC
+_02236EF4:
+ ldr r0, _02236F60 ; =0x0223B41C
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02236F02
+ add sp, #0xc0
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+_02236F02:
+ mov r0, #1
+ bl CTRDG_Enable
+ add r4, sp, #0
+ mov r0, #2
+ lsl r0, r0, #0x1a
+ add r1, r4, #0
+ mov r2, #0xc0
+ bl CTRDG_CpuCopy32
+ ldr r3, _02236F64 ; =0x0223B424
+ mov r2, #0
+_02236F1A:
+ add r0, r4, r2
+ ldrb r1, [r3]
+ ldrb r0, [r0, #4]
+ cmp r1, r0
+ beq _02236F2A
+ add sp, #0xc0
+ mov r0, #4
+ pop {r3, r4, r5, pc}
+_02236F2A:
+ add r2, r2, #1
+ add r3, r3, #1
+ cmp r2, #0x9c
+ blo _02236F1A
+ mov r2, #0
+ mov r1, #0xa0
+_02236F36:
+ ldrb r0, [r4, r1]
+ add r1, r1, #1
+ add r0, r2, r0
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r1, #0xbc
+ ble _02236F36
+ add r2, #0x19
+ neg r0, r2
+ lsl r0, r0, #0x18
+ add r4, #0xbd
+ lsr r1, r0, #0x18
+ ldrb r0, [r4]
+ cmp r0, r1
+ beq _02236F5A
+ add sp, #0xc0
+ mov r0, #4
+ pop {r3, r4, r5, pc}
+_02236F5A:
+ mov r0, #0
+ add sp, #0xc0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02236F60: .word 0x0223B41C
+_02236F64: .word 0x0223B424
+ thumb_func_end MOD83_02236EB4
+
+ thumb_func_start MOD83_02236F68
+MOD83_02236F68: ; 0x02236F68
+ push {r3, r4}
+ mov r2, #0
+ lsr r4, r1, #2
+ add r3, r2, #0
+ cmp r4, #0
+ ble _02236F84
+_02236F74:
+ ldr r1, [r0]
+ add r0, r0, #4
+ add r2, r2, r1
+ add r1, r3, #1
+ lsl r1, r1, #0x10
+ lsr r3, r1, #0x10
+ cmp r3, r4
+ blt _02236F74
+_02236F84:
+ lsr r0, r2, #0x10
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r3, r4}
+ bx lr
+ thumb_func_end MOD83_02236F68
+
+ thumb_func_start MOD83_02236F98
+MOD83_02236F98: ; 0x02236F98
+ push {r3, lr}
+ lsl r0, r0, #0x10
+ mov r3, #1
+ add r2, r1, #0
+ lsr r0, r0, #0x10
+ mov r1, #0
+ lsl r3, r3, #0xc
+ bl CTRDG_ReadAgbFlash
+ pop {r3, pc}
+ thumb_func_end MOD83_02236F98
+
+ thumb_func_start MOD83_02236FAC
+MOD83_02236FAC: ; 0x02236FAC
+ cmp r0, #0
+ bne _02236FBA
+ ldr r0, _02236FE0 ; =0x0223BB98
+ ldr r0, [r0, #0x20]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+_02236FBA:
+ cmp r0, #4
+ bne _02236FCE
+ ldr r0, _02236FE0 ; =0x0223BB98
+ ldr r1, [r0, #0x24]
+ mov r0, #0xba
+ lsl r0, r0, #6
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+_02236FCE:
+ cmp r0, #0xd
+ bne _02236FD8
+ mov r0, #0x7d
+ lsl r0, r0, #4
+ bx lr
+_02236FD8:
+ mov r0, #0x3e
+ lsl r0, r0, #6
+ bx lr
+ nop
+_02236FE0: .word 0x0223BB98
+ thumb_func_end MOD83_02236FAC
+
+ thumb_func_start MOD83_02236FE4
+MOD83_02236FE4: ; 0x02236FE4
+ cmp r0, #0
+ bne _02236FF4
+ ldr r0, _02237034 ; =0x0223BB18
+ ldr r1, [r0, #8]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ bx lr
+_02236FF4:
+ cmp r0, #1
+ blt _02237012
+ cmp r0, #4
+ bgt _02237012
+ ldr r1, _02237034 ; =0x0223BB18
+ ldr r2, [r1, #8]
+ mov r1, #2
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ sub r1, r0, #1
+ mov r0, #0x3e
+ lsl r0, r0, #6
+ mul r0, r1
+ add r0, r2, r0
+ bx lr
+_02237012:
+ cmp r0, #5
+ blt _02237030
+ cmp r0, #0xe
+ bge _02237030
+ ldr r1, _02237034 ; =0x0223BB18
+ ldr r2, [r1, #8]
+ mov r1, #6
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ sub r1, r0, #5
+ mov r0, #0x3e
+ lsl r0, r0, #6
+ mul r0, r1
+ add r0, r2, r0
+ bx lr
+_02237030:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_02237034: .word 0x0223BB18
+ thumb_func_end MOD83_02236FE4
+
+ thumb_func_start MOD83_02237038
+MOD83_02237038: ; 0x02237038
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r6, #0
+ add r5, r1, #0
+ str r6, [sp, #4]
+ add r1, r2, #0
+ str r6, [r1]
+ ldr r1, _022370CC ; =0x0223BB18
+ add r7, r0, #0
+ str r6, [r1, #4]
+ mov r1, #0xe
+ str r2, [sp]
+ add r4, r6, #0
+ mul r7, r1
+_02237054:
+ add r0, r4, #0
+ mov r1, #0xe
+ bl _s32_div_f
+ add r0, r1, r7
+ add r1, r5, #0
+ bl MOD83_02236F98
+ mov r1, #1
+ add r0, r5, #0
+ lsl r1, r1, #0xc
+ bl DC_FlushRange
+ ldr r0, _022370D0 ; =0x00000FF8
+ ldr r1, [r5, r0]
+ ldr r0, _022370D4 ; =0x08012025
+ cmp r1, r0
+ bne _022370A6
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _022370D8 ; =0x00000FF4
+ ldrh r0, [r5, r0]
+ bl MOD83_02236FAC
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD83_02236F68
+ ldr r1, _022370DC ; =0x00000FF6
+ ldrh r1, [r5, r1]
+ cmp r1, r0
+ bne _022370A6
+ ldr r0, _022370E0 ; =0x00000FFC
+ ldr r1, [r5, r0]
+ ldr r0, [sp]
+ str r1, [r0]
+ ldr r0, _022370D8 ; =0x00000FF4
+ ldrh r1, [r5, r0]
+ mov r0, #1
+ lsl r0, r1
+ orr r6, r0
+_022370A6:
+ add r4, r4, #1
+ cmp r4, #0xe
+ blt _02237054
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ beq _022370C4
+ ldr r0, _022370E4 ; =0x00003FFF
+ cmp r6, r0
+ bne _022370BE
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022370BE:
+ add sp, #8
+ mov r0, #0xff
+ pop {r3, r4, r5, r6, r7, pc}
+_022370C4:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022370CC: .word 0x0223BB18
+_022370D0: .word 0x00000FF8
+_022370D4: .word 0x08012025
+_022370D8: .word 0x00000FF4
+_022370DC: .word 0x00000FF6
+_022370E0: .word 0x00000FFC
+_022370E4: .word 0x00003FFF
+ thumb_func_end MOD83_02237038
+
+ thumb_func_start MOD83_022370E8
+MOD83_022370E8: ; 0x022370E8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ mov r0, #0
+ add r1, r7, #0
+ add r2, sp, #4
+ bl MOD83_02237038
+ add r6, r0, #0
+ mov r0, #1
+ add r1, r7, #0
+ add r2, sp, #0
+ bl MOD83_02237038
+ cmp r6, #1
+ bne _02237160
+ cmp r0, #1
+ bne _02237160
+ mov r1, #0
+ ldr r0, [sp, #4]
+ mvn r1, r1
+ cmp r0, r1
+ bne _02237120
+ ldr r3, [sp]
+ cmp r3, #0
+ beq _0223712E
+_02237120:
+ cmp r0, #0
+ bne _02237146
+ mov r1, #0
+ ldr r3, [sp]
+ mvn r1, r1
+ cmp r3, r1
+ bne _02237146
+_0223712E:
+ add r2, r0, #1
+ add r1, r3, #1
+ cmp r2, r1
+ bhs _0223713E
+ str r3, [r4]
+ mov r0, #1
+ str r0, [r5]
+ b _0223715A
+_0223713E:
+ str r0, [r4]
+ mov r0, #0
+ str r0, [r5]
+ b _0223715A
+_02237146:
+ ldr r1, [sp]
+ cmp r0, r1
+ bhs _02237154
+ str r1, [r4]
+ mov r0, #1
+ str r0, [r5]
+ b _0223715A
+_02237154:
+ str r0, [r4]
+ mov r0, #0
+ str r0, [r5]
+_0223715A:
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02237160:
+ cmp r6, #1
+ bne _02237184
+ cmp r0, #1
+ beq _02237184
+ ldr r1, [sp, #4]
+ cmp r0, #0xff
+ str r1, [r4]
+ bne _0223717A
+ mov r0, #0
+ str r0, [r5]
+ add sp, #8
+ mov r0, #0xff
+ pop {r3, r4, r5, r6, r7, pc}
+_0223717A:
+ mov r0, #0
+ str r0, [r5]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02237184:
+ cmp r0, #1
+ bne _022371A6
+ cmp r6, #1
+ beq _022371A6
+ ldr r0, [sp]
+ cmp r6, #0xff
+ str r0, [r4]
+ bne _0223719E
+ mov r0, #1
+ str r0, [r5]
+ add sp, #8
+ mov r0, #0xff
+ pop {r3, r4, r5, r6, r7, pc}
+_0223719E:
+ mov r0, #1
+ add sp, #8
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_022371A6:
+ cmp r6, #0
+ bne _022371B8
+ cmp r0, #0
+ bne _022371B8
+ mov r0, #0
+ str r0, [r4]
+ add sp, #8
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_022371B8:
+ mov r0, #0
+ str r0, [r4]
+ str r0, [r5]
+ mov r0, #2
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_022370E8
+
+ thumb_func_start MOD83_022371C4
+MOD83_022371C4: ; 0x022371C4
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r0, _02237278 ; =0x0223BB18
+ ldr r1, _0223727C ; =0x0223BB18
+ ldr r0, [r0, #8]
+ ldr r2, _02237280 ; =0x0223BB28
+ bl MOD83_022370E8
+ cmp r0, #1
+ beq _022371EE
+ cmp r0, #0
+ beq _022371E6
+ cmp r0, #2
+ beq _022371EA
+ cmp r0, #0xff
+ bne _022371EE
+ mov r0, #5
+ pop {r3, r4, r5, r6, r7, pc}
+_022371E6:
+ mov r0, #7
+ pop {r3, r4, r5, r6, r7, pc}
+_022371EA:
+ mov r0, #6
+ pop {r3, r4, r5, r6, r7, pc}
+_022371EE:
+ ldr r7, _02237278 ; =0x0223BB18
+ ldr r0, [r7]
+ cmp r0, #1
+ bhi _02237272
+ mov r6, #0
+ ldr r5, [r7, #8]
+ add r4, r6, #0
+_022371FC:
+ ldr r1, [r7]
+ mov r0, #0xe
+ mul r0, r1
+ add r0, r4, r0
+ add r1, r5, #0
+ bl MOD83_02236F98
+ ldr r0, _02237284 ; =0x00000FF8
+ ldr r1, [r5, r0]
+ ldr r0, _02237288 ; =0x08012025
+ cmp r1, r0
+ bne _0223725E
+ ldr r0, _0223728C ; =0x00000FF4
+ ldrh r0, [r5, r0]
+ bl MOD83_02236FAC
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD83_02236F68
+ ldr r1, _02237290 ; =0x00000FF6
+ ldrh r1, [r5, r1]
+ cmp r1, r0
+ bne _0223725E
+ ldr r0, _02237294 ; =0x00000FFC
+ mov r1, #1
+ ldr r0, [r5, r0]
+ str r0, [r7, #0x10]
+ ldr r0, _0223728C ; =0x00000FF4
+ ldrh r0, [r5, r0]
+ lsl r1, r0
+ orr r6, r1
+ bl MOD83_02236FAC
+ str r0, [sp]
+ ldr r0, _0223728C ; =0x00000FF4
+ ldrh r0, [r5, r0]
+ bl MOD83_02236FE4
+ add r1, r0, #0
+ ldr r2, [sp]
+ add r0, r5, #0
+ bl MIi_CpuCopy32
+ ldr r0, _0223728C ; =0x00000FF4
+ ldrh r0, [r5, r0]
+ cmp r0, #0
+ bne _0223725E
+ str r4, [r7, #0xc]
+_0223725E:
+ add r4, r4, #1
+ cmp r4, #0xe
+ blt _022371FC
+ ldr r0, _02237298 ; =0x00003FFF
+ cmp r6, r0
+ bne _0223726E
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223726E:
+ mov r0, #4
+ pop {r3, r4, r5, r6, r7, pc}
+_02237272:
+ mov r0, #6
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02237278: .word 0x0223BB18
+_0223727C: .word 0x0223BB18
+_02237280: .word 0x0223BB28
+_02237284: .word 0x00000FF8
+_02237288: .word 0x08012025
+_0223728C: .word 0x00000FF4
+_02237290: .word 0x00000FF6
+_02237294: .word 0x00000FFC
+_02237298: .word 0x00003FFF
+ thumb_func_end MOD83_022371C4
+
+ thumb_func_start MOD83_0223729C
+MOD83_0223729C: ; 0x0223729C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _02237318 ; =0x0223BB18
+ mov r2, #1
+ ldr r4, [r0, #8]
+ str r2, [r0, #0x14]
+ mov r0, #0
+ add r1, r4, #0
+ lsl r2, r2, #0xc
+ bl MIi_CpuClear32
+ add r0, r5, #0
+ bl MOD83_02236FAC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD83_02236FE4
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MIi_CpuCopy32
+ ldr r0, _02237318 ; =0x0223BB18
+ ldr r1, [r0, #0x10]
+ ldr r0, _0223731C ; =0x00000FFC
+ str r1, [r4, r0]
+ add r1, r0, #0
+ sub r1, #8
+ strh r5, [r4, r1]
+ ldr r1, _02237320 ; =0x08012025
+ sub r0, r0, #4
+ str r1, [r4, r0]
+ add r0, r5, #0
+ bl MOD83_02236FAC
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD83_02236F68
+ ldr r1, _02237324 ; =0x00000FF6
+ strh r0, [r4, r1]
+ ldr r0, _02237318 ; =0x0223BB18
+ mov r1, #0xe
+ ldr r0, [r0, #0xc]
+ add r0, r5, r0
+ add r0, r0, #1
+ bl _s32_div_f
+ ldr r0, _02237328 ; =0x0223B41C
+ ldr r3, _0223732C ; =MOD83_02237330
+ ldr r2, [r0, #4]
+ mov r0, #0xe
+ mul r0, r2
+ add r0, r1, r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r4, #0
+ mov r2, #4
+ bl CTRDG_WriteAndVerifyAgbFlashAsync
+ pop {r4, r5, r6, pc}
+ nop
+_02237318: .word 0x0223BB18
+_0223731C: .word 0x00000FFC
+_02237320: .word 0x08012025
+_02237324: .word 0x00000FF6
+_02237328: .word 0x0223B41C
+_0223732C: .word MOD83_02237330
+ thumb_func_end MOD83_0223729C
+
+ thumb_func_start MOD83_02237330
+MOD83_02237330: ; 0x02237330
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ bne _0223735C
+ ldr r1, _02237368 ; =0x0223BB18
+ ldr r0, [r1, #4]
+ add r0, r0, #1
+ str r0, [r1, #4]
+ cmp r0, #0xe
+ blt _0223734A
+ mov r0, #0
+ str r0, [r1, #4]
+ str r0, [r1, #0x14]
+ bx lr
+_0223734A:
+ cmp r0, #0xd
+ bne _02237356
+ mov r0, #2
+ str r0, [r1, #0x14]
+ mov r0, #0
+ bx lr
+_02237356:
+ mov r0, #3
+ str r0, [r1, #0x14]
+ b _02237362
+_0223735C:
+ ldr r0, _02237368 ; =0x0223BB18
+ mov r1, #4
+ str r1, [r0, #0x14]
+_02237362:
+ mov r0, #0
+ bx lr
+ nop
+_02237368: .word 0x0223BB18
+ thumb_func_end MOD83_02237330
+
+ thumb_func_start MOD83_0223736C
+MOD83_0223736C: ; 0x0223736C
+ push {r3, lr}
+ ldr r1, _022373AC ; =0x0223BB18
+ ldr r0, [r1, #4]
+ cmp r0, #0
+ bne _02237392
+ ldr r1, [r1]
+ cmp r1, #1
+ bne _02237382
+ mov r2, #0
+ ldr r1, _022373B0 ; =0x0223B41C
+ b _02237386
+_02237382:
+ ldr r1, _022373B0 ; =0x0223B41C
+ mov r2, #1
+_02237386:
+ str r2, [r1, #4]
+ ldr r1, _022373AC ; =0x0223BB18
+ ldr r2, [r1, #0x10]
+ add r2, r2, #1
+ str r2, [r1, #0x10]
+ b _02237396
+_02237392:
+ mov r0, #0
+ pop {r3, pc}
+_02237396:
+ ldr r1, _022373B0 ; =0x0223B41C
+ ldr r1, [r1, #4]
+ cmp r1, #0
+ bge _022373A2
+ mov r0, #0
+ pop {r3, pc}
+_022373A2:
+ bl MOD83_0223729C
+ mov r0, #1
+ pop {r3, pc}
+ nop
+_022373AC: .word 0x0223BB18
+_022373B0: .word 0x0223B41C
+ thumb_func_end MOD83_0223736C
+
+ thumb_func_start MOD83_022373B4
+MOD83_022373B4: ; 0x022373B4
+ push {r3, lr}
+ ldr r1, _022373F0 ; =0x0223BB18
+ ldr r0, [r1, #0x14]
+ cmp r0, #4
+ bhi _022373EC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022373CA: ; jump table
+ .short _022373EC - _022373CA - 2 ; case 0
+ .short _022373E4 - _022373CA - 2 ; case 1
+ .short _022373D4 - _022373CA - 2 ; case 2
+ .short _022373DE - _022373CA - 2 ; case 3
+ .short _022373E8 - _022373CA - 2 ; case 4
+_022373D4:
+ ldr r0, [r1, #4]
+ bl MOD83_0223729C
+ mov r0, #0
+ pop {r3, pc}
+_022373DE:
+ ldr r0, [r1, #4]
+ bl MOD83_0223729C
+_022373E4:
+ mov r0, #0xa
+ pop {r3, pc}
+_022373E8:
+ mov r0, #8
+ pop {r3, pc}
+_022373EC:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_022373F0: .word 0x0223BB18
+ thumb_func_end MOD83_022373B4
+
+ thumb_func_start MOD83_022373F4
+MOD83_022373F4: ; 0x022373F4
+ ldr r0, _02237428 ; =0x0223BB18
+ ldr r0, [r0, #0x14]
+ cmp r0, #4
+ bhi _02237422
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237408: ; jump table
+ .short _02237422 - _02237408 - 2 ; case 0
+ .short _0223741A - _02237408 - 2 ; case 1
+ .short _02237412 - _02237408 - 2 ; case 2
+ .short _02237416 - _02237408 - 2 ; case 3
+ .short _0223741E - _02237408 - 2 ; case 4
+_02237412:
+ mov r0, #0xb
+ bx lr
+_02237416:
+ mov r0, #0xa
+ bx lr
+_0223741A:
+ mov r0, #9
+ bx lr
+_0223741E:
+ mov r0, #8
+ bx lr
+_02237422:
+ mov r0, #0
+ bx lr
+ nop
+_02237428: .word 0x0223BB18
+ thumb_func_end MOD83_022373F4
+
+ thumb_func_start MOD83_0223742C
+MOD83_0223742C: ; 0x0223742C
+ ldr r0, _02237438 ; =0x0223BB18
+ ldr r1, [r0, #8]
+ mov r0, #6
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ bx lr
+ .align 2, 0
+_02237438: .word 0x0223BB18
+ thumb_func_end MOD83_0223742C
+
+ thumb_func_start MOD83_0223743C
+MOD83_0223743C: ; 0x0223743C
+ ldr r3, _02237444 ; =MOD83_02236FE4
+ mov r0, #0
+ bx r3
+ nop
+_02237444: .word MOD83_02236FE4
+ thumb_func_end MOD83_0223743C
+
+ thumb_func_start MOD83_02237448
+MOD83_02237448: ; 0x02237448
+ push {r3, lr}
+ bl MOD83_0223743C
+ ldrb r2, [r0, #0xb]
+ ldrb r1, [r0, #0xa]
+ lsl r3, r2, #8
+ ldrb r2, [r0, #0xd]
+ ldrb r0, [r0, #0xc]
+ lsl r2, r2, #0x18
+ lsl r0, r0, #0x10
+ orr r0, r2
+ orr r0, r3
+ orr r0, r1
+ pop {r3, pc}
+ thumb_func_end MOD83_02237448
+
+ thumb_func_start MOD83_02237464
+MOD83_02237464: ; 0x02237464
+ ldr r3, _02237468 ; =MOD83_0223743C
+ bx r3
+ .align 2, 0
+_02237468: .word MOD83_0223743C
+ thumb_func_end MOD83_02237464
+
+ thumb_func_start MOD83_0223746C
+MOD83_0223746C: ; 0x0223746C
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #0x18
+ add r5, r2, #0
+ mov r6, #0
+ bl _u32_div_f
+ cmp r1, #0x17
+ bhi _022374C2
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223748C: ; jump table
+ .short _022374BC - _0223748C - 2 ; case 0
+ .short _022374EE - _0223748C - 2 ; case 1
+ .short _0223751E - _0223748C - 2 ; case 2
+ .short _0223754E - _0223748C - 2 ; case 3
+ .short _0223757E - _0223748C - 2 ; case 4
+ .short _022375AE - _0223748C - 2 ; case 5
+ .short _022375DE - _0223748C - 2 ; case 6
+ .short _02237610 - _0223748C - 2 ; case 7
+ .short _02237640 - _0223748C - 2 ; case 8
+ .short _02237670 - _0223748C - 2 ; case 9
+ .short _022376A0 - _0223748C - 2 ; case 10
+ .short _022376D0 - _0223748C - 2 ; case 11
+ .short _02237700 - _0223748C - 2 ; case 12
+ .short _02237732 - _0223748C - 2 ; case 13
+ .short _02237762 - _0223748C - 2 ; case 14
+ .short _02237792 - _0223748C - 2 ; case 15
+ .short _022377C2 - _0223748C - 2 ; case 16
+ .short _022377F2 - _0223748C - 2 ; case 17
+ .short _02237822 - _0223748C - 2 ; case 18
+ .short _02237854 - _0223748C - 2 ; case 19
+ .short _02237884 - _0223748C - 2 ; case 20
+ .short _022378B4 - _0223748C - 2 ; case 21
+ .short _022378E4 - _0223748C - 2 ; case 22
+ .short _02237914 - _0223748C - 2 ; case 23
+_022374BC:
+ add r4, #0x20
+ cmp r5, #3
+ bls _022374C4
+_022374C2:
+ b _02237942
+_022374C4:
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022374D0: ; jump table
+ .short _022374D8 - _022374D0 - 2 ; case 0
+ .short _022374DC - _022374D0 - 2 ; case 1
+ .short _022374E2 - _022374D0 - 2 ; case 2
+ .short _022374E8 - _022374D0 - 2 ; case 3
+_022374D8:
+ add r6, r4, #0
+ b _02237942
+_022374DC:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_022374E2:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_022374E8:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_022374EE:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _022375E4
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237500: ; jump table
+ .short _02237508 - _02237500 - 2 ; case 0
+ .short _0223750C - _02237500 - 2 ; case 1
+ .short _02237512 - _02237500 - 2 ; case 2
+ .short _02237518 - _02237500 - 2 ; case 3
+_02237508:
+ add r6, r4, #0
+ b _02237942
+_0223750C:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237512:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237518:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_0223751E:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _022375E4
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237530: ; jump table
+ .short _02237538 - _02237530 - 2 ; case 0
+ .short _0223753C - _02237530 - 2 ; case 1
+ .short _02237542 - _02237530 - 2 ; case 2
+ .short _02237548 - _02237530 - 2 ; case 3
+_02237538:
+ add r6, r4, #0
+ b _02237942
+_0223753C:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_02237542:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237548:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_0223754E:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _022375E4
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237560: ; jump table
+ .short _02237568 - _02237560 - 2 ; case 0
+ .short _0223756C - _02237560 - 2 ; case 1
+ .short _02237572 - _02237560 - 2 ; case 2
+ .short _02237578 - _02237560 - 2 ; case 3
+_02237568:
+ add r6, r4, #0
+ b _02237942
+_0223756C:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237572:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237578:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_0223757E:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _022375E4
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237590: ; jump table
+ .short _02237598 - _02237590 - 2 ; case 0
+ .short _0223759C - _02237590 - 2 ; case 1
+ .short _022375A2 - _02237590 - 2 ; case 2
+ .short _022375A8 - _02237590 - 2 ; case 3
+_02237598:
+ add r6, r4, #0
+ b _02237942
+_0223759C:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_022375A2:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_022375A8:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_022375AE:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _022375E4
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022375C0: ; jump table
+ .short _022375C8 - _022375C0 - 2 ; case 0
+ .short _022375CC - _022375C0 - 2 ; case 1
+ .short _022375D2 - _022375C0 - 2 ; case 2
+ .short _022375D8 - _022375C0 - 2 ; case 3
+_022375C8:
+ add r6, r4, #0
+ b _02237942
+_022375CC:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_022375D2:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_022375D8:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_022375DE:
+ add r4, #0x20
+ cmp r5, #3
+ bls _022375E6
+_022375E4:
+ b _02237942
+_022375E6:
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022375F2: ; jump table
+ .short _022375FA - _022375F2 - 2 ; case 0
+ .short _02237600 - _022375F2 - 2 ; case 1
+ .short _02237604 - _022375F2 - 2 ; case 2
+ .short _0223760A - _022375F2 - 2 ; case 3
+_022375FA:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237600:
+ add r6, r4, #0
+ b _02237942
+_02237604:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_0223760A:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237610:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237706
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237622: ; jump table
+ .short _0223762A - _02237622 - 2 ; case 0
+ .short _02237630 - _02237622 - 2 ; case 1
+ .short _02237634 - _02237622 - 2 ; case 2
+ .short _0223763A - _02237622 - 2 ; case 3
+_0223762A:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237630:
+ add r6, r4, #0
+ b _02237942
+_02237634:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_0223763A:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_02237640:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237706
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237652: ; jump table
+ .short _0223765A - _02237652 - 2 ; case 0
+ .short _02237660 - _02237652 - 2 ; case 1
+ .short _02237664 - _02237652 - 2 ; case 2
+ .short _0223766A - _02237652 - 2 ; case 3
+_0223765A:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_02237660:
+ add r6, r4, #0
+ b _02237942
+_02237664:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_0223766A:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237670:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237706
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237682: ; jump table
+ .short _0223768A - _02237682 - 2 ; case 0
+ .short _02237690 - _02237682 - 2 ; case 1
+ .short _02237694 - _02237682 - 2 ; case 2
+ .short _0223769A - _02237682 - 2 ; case 3
+_0223768A:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237690:
+ add r6, r4, #0
+ b _02237942
+_02237694:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_0223769A:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_022376A0:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237706
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022376B2: ; jump table
+ .short _022376BA - _022376B2 - 2 ; case 0
+ .short _022376C0 - _022376B2 - 2 ; case 1
+ .short _022376C4 - _022376B2 - 2 ; case 2
+ .short _022376CA - _022376B2 - 2 ; case 3
+_022376BA:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_022376C0:
+ add r6, r4, #0
+ b _02237942
+_022376C4:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_022376CA:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_022376D0:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237706
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022376E2: ; jump table
+ .short _022376EA - _022376E2 - 2 ; case 0
+ .short _022376F0 - _022376E2 - 2 ; case 1
+ .short _022376F4 - _022376E2 - 2 ; case 2
+ .short _022376FA - _022376E2 - 2 ; case 3
+_022376EA:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_022376F0:
+ add r6, r4, #0
+ b _02237942
+_022376F4:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_022376FA:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237700:
+ add r4, #0x20
+ cmp r5, #3
+ bls _02237708
+_02237706:
+ b _02237942
+_02237708:
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237714: ; jump table
+ .short _0223771C - _02237714 - 2 ; case 0
+ .short _02237722 - _02237714 - 2 ; case 1
+ .short _02237728 - _02237714 - 2 ; case 2
+ .short _0223772C - _02237714 - 2 ; case 3
+_0223771C:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237722:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_02237728:
+ add r6, r4, #0
+ b _02237942
+_0223772C:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237732:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237828
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237744: ; jump table
+ .short _0223774C - _02237744 - 2 ; case 0
+ .short _02237752 - _02237744 - 2 ; case 1
+ .short _02237758 - _02237744 - 2 ; case 2
+ .short _0223775C - _02237744 - 2 ; case 3
+_0223774C:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237752:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237758:
+ add r6, r4, #0
+ b _02237942
+_0223775C:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_02237762:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237828
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237774: ; jump table
+ .short _0223777C - _02237774 - 2 ; case 0
+ .short _02237782 - _02237774 - 2 ; case 1
+ .short _02237788 - _02237774 - 2 ; case 2
+ .short _0223778C - _02237774 - 2 ; case 3
+_0223777C:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_02237782:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237788:
+ add r6, r4, #0
+ b _02237942
+_0223778C:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237792:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237828
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022377A4: ; jump table
+ .short _022377AC - _022377A4 - 2 ; case 0
+ .short _022377B2 - _022377A4 - 2 ; case 1
+ .short _022377B8 - _022377A4 - 2 ; case 2
+ .short _022377BC - _022377A4 - 2 ; case 3
+_022377AC:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_022377B2:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_022377B8:
+ add r6, r4, #0
+ b _02237942
+_022377BC:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_022377C2:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237828
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022377D4: ; jump table
+ .short _022377DC - _022377D4 - 2 ; case 0
+ .short _022377E2 - _022377D4 - 2 ; case 1
+ .short _022377E8 - _022377D4 - 2 ; case 2
+ .short _022377EC - _022377D4 - 2 ; case 3
+_022377DC:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_022377E2:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_022377E8:
+ add r6, r4, #0
+ b _02237942
+_022377EC:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_022377F2:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237828
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237804: ; jump table
+ .short _0223780C - _02237804 - 2 ; case 0
+ .short _02237812 - _02237804 - 2 ; case 1
+ .short _02237818 - _02237804 - 2 ; case 2
+ .short _0223781C - _02237804 - 2 ; case 3
+_0223780C:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237812:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_02237818:
+ add r6, r4, #0
+ b _02237942
+_0223781C:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237822:
+ add r4, #0x20
+ cmp r5, #3
+ bls _0223782A
+_02237828:
+ b _02237942
+_0223782A:
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237836: ; jump table
+ .short _0223783E - _02237836 - 2 ; case 0
+ .short _02237844 - _02237836 - 2 ; case 1
+ .short _0223784A - _02237836 - 2 ; case 2
+ .short _02237850 - _02237836 - 2 ; case 3
+_0223783E:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237844:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_0223784A:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237850:
+ add r6, r4, #0
+ b _02237942
+_02237854:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237942
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237866: ; jump table
+ .short _0223786E - _02237866 - 2 ; case 0
+ .short _02237874 - _02237866 - 2 ; case 1
+ .short _0223787A - _02237866 - 2 ; case 2
+ .short _02237880 - _02237866 - 2 ; case 3
+_0223786E:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237874:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_0223787A:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_02237880:
+ add r6, r4, #0
+ b _02237942
+_02237884:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237942
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237896: ; jump table
+ .short _0223789E - _02237896 - 2 ; case 0
+ .short _022378A4 - _02237896 - 2 ; case 1
+ .short _022378AA - _02237896 - 2 ; case 2
+ .short _022378B0 - _02237896 - 2 ; case 3
+_0223789E:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_022378A4:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_022378AA:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_022378B0:
+ add r6, r4, #0
+ b _02237942
+_022378B4:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237942
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022378C6: ; jump table
+ .short _022378CE - _022378C6 - 2 ; case 0
+ .short _022378D4 - _022378C6 - 2 ; case 1
+ .short _022378DA - _022378C6 - 2 ; case 2
+ .short _022378E0 - _022378C6 - 2 ; case 3
+_022378CE:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_022378D4:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_022378DA:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_022378E0:
+ add r6, r4, #0
+ b _02237942
+_022378E4:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237942
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022378F6: ; jump table
+ .short _022378FE - _022378F6 - 2 ; case 0
+ .short _02237904 - _022378F6 - 2 ; case 1
+ .short _0223790A - _022378F6 - 2 ; case 2
+ .short _02237910 - _022378F6 - 2 ; case 3
+_022378FE:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_02237904:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_0223790A:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237910:
+ add r6, r4, #0
+ b _02237942
+_02237914:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237942
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237926: ; jump table
+ .short _0223792E - _02237926 - 2 ; case 0
+ .short _02237934 - _02237926 - 2 ; case 1
+ .short _0223793A - _02237926 - 2 ; case 2
+ .short _02237940 - _02237926 - 2 ; case 3
+_0223792E:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237934:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_0223793A:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237940:
+ add r6, r4, #0
+_02237942:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0223746C
+
+ thumb_func_start MOD83_02237948
+MOD83_02237948: ; 0x02237948
+ push {r3, r4}
+ add r4, r0, #0
+ mov r3, #0
+ add r4, #0x20
+_02237950:
+ ldr r2, [r4]
+ ldr r1, [r0, #4]
+ add r3, r3, #1
+ eor r2, r1
+ str r2, [r4]
+ ldr r1, [r0]
+ eor r1, r2
+ stmia r4!, {r1}
+ cmp r3, #0xc
+ blo _02237950
+ pop {r3, r4}
+ bx lr
+ thumb_func_end MOD83_02237948
+
+ thumb_func_start MOD83_02237968
+MOD83_02237968: ; 0x02237968
+ push {r3, r4}
+ add r4, r0, #0
+ mov r3, #0
+ add r4, #0x20
+_02237970:
+ ldr r2, [r4]
+ ldr r1, [r0]
+ add r3, r3, #1
+ eor r2, r1
+ str r2, [r4]
+ ldr r1, [r0, #4]
+ eor r1, r2
+ stmia r4!, {r1}
+ cmp r3, #0xc
+ blo _02237970
+ pop {r3, r4}
+ bx lr
+ thumb_func_end MOD83_02237968
+
+ thumb_func_start MOD83_02237988
+MOD83_02237988: ; 0x02237988
+ push {r3, r4, r5, r6, r7, lr}
+ add r1, r0, #0
+ mov r4, #0
+ ldr r1, [r1]
+ str r0, [sp]
+ add r2, r4, #0
+ bl MOD83_0223746C
+ add r5, r0, #0
+ ldr r0, [sp]
+ mov r2, #1
+ add r1, r0, #0
+ ldr r1, [r1]
+ bl MOD83_0223746C
+ add r6, r0, #0
+ ldr r0, [sp]
+ mov r2, #2
+ add r1, r0, #0
+ ldr r1, [r1]
+ bl MOD83_0223746C
+ add r7, r0, #0
+ ldr r0, [sp]
+ mov r2, #3
+ add r1, r0, #0
+ ldr r1, [r1]
+ bl MOD83_0223746C
+ add r1, r4, #0
+_022379C4:
+ ldrh r2, [r5]
+ add r1, r1, #1
+ add r5, r5, #2
+ add r2, r4, r2
+ lsl r2, r2, #0x10
+ lsr r4, r2, #0x10
+ cmp r1, #6
+ blt _022379C4
+ mov r2, #0
+_022379D6:
+ ldrh r1, [r6]
+ add r2, r2, #1
+ add r6, r6, #2
+ add r1, r4, r1
+ lsl r1, r1, #0x10
+ lsr r4, r1, #0x10
+ cmp r2, #6
+ blt _022379D6
+ mov r2, #0
+_022379E8:
+ ldrh r1, [r7]
+ add r2, r2, #1
+ add r7, r7, #2
+ add r1, r4, r1
+ lsl r1, r1, #0x10
+ lsr r4, r1, #0x10
+ cmp r2, #6
+ blt _022379E8
+ mov r2, #0
+_022379FA:
+ ldrh r1, [r0]
+ add r2, r2, #1
+ add r0, r0, #2
+ add r1, r4, r1
+ lsl r1, r1, #0x10
+ lsr r4, r1, #0x10
+ cmp r2, #6
+ blt _022379FA
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02237988
+
+ thumb_func_start MOD83_02237A10
+MOD83_02237A10: ; 0x02237A10
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r4, #0
+ add r5, r0, #0
+ str r1, [sp]
+ add r7, r2, #0
+ add r6, r4, #0
+ str r4, [sp, #0xc]
+ str r4, [sp, #8]
+ str r4, [sp, #4]
+ cmp r1, #0xa
+ ble _02237A86
+ ldr r1, [r5]
+ add r2, r4, #0
+ bl MOD83_0223746C
+ str r0, [sp, #0xc]
+ ldr r1, [r5]
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD83_0223746C
+ str r0, [sp, #8]
+ ldr r1, [r5]
+ add r0, r5, #0
+ mov r2, #2
+ bl MOD83_0223746C
+ str r0, [sp, #4]
+ ldr r1, [r5]
+ add r0, r5, #0
+ mov r2, #3
+ bl MOD83_0223746C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD83_02237948
+ add r0, r5, #0
+ bl MOD83_02237988
+ ldrh r1, [r5, #0x1c]
+ cmp r0, r1
+ beq _02237A86
+ ldrb r0, [r5, #0x13]
+ mov r1, #1
+ bic r0, r1
+ mov r1, #1
+ orr r0, r1
+ strb r0, [r5, #0x13]
+ ldrb r1, [r5, #0x13]
+ mov r0, #4
+ orr r0, r1
+ strb r0, [r5, #0x13]
+ mov r0, #1
+ ldr r1, [r6, #4]
+ lsl r0, r0, #0x1e
+ orr r0, r1
+ str r0, [r6, #4]
+_02237A86:
+ ldr r0, [sp]
+ cmp r0, #0x50
+ bls _02237A8E
+ b _02237D7C
+_02237A8E:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237A9A: ; jump table
+ .short _02237B3C - _02237A9A - 2 ; case 0
+ .short _02237B40 - _02237A9A - 2 ; case 1
+ .short _02237B44 - _02237A9A - 2 ; case 2
+ .short _02237B64 - _02237A9A - 2 ; case 3
+ .short _02237B68 - _02237A9A - 2 ; case 4
+ .short _02237B70 - _02237A9A - 2 ; case 5
+ .short _02237B78 - _02237A9A - 2 ; case 6
+ .short _02237B80 - _02237A9A - 2 ; case 7
+ .short _02237B94 - _02237A9A - 2 ; case 8
+ .short _02237B98 - _02237A9A - 2 ; case 9
+ .short _02237B9C - _02237A9A - 2 ; case 10
+ .short _02237BA0 - _02237A9A - 2 ; case 11
+ .short _02237BB4 - _02237A9A - 2 ; case 12
+ .short _02237BCC - _02237A9A - 2 ; case 13
+ .short _02237BCC - _02237A9A - 2 ; case 14
+ .short _02237BCC - _02237A9A - 2 ; case 15
+ .short _02237BCC - _02237A9A - 2 ; case 16
+ .short _02237BD8 - _02237A9A - 2 ; case 17
+ .short _02237BD8 - _02237A9A - 2 ; case 18
+ .short _02237BD8 - _02237A9A - 2 ; case 19
+ .short _02237BD8 - _02237A9A - 2 ; case 20
+ .short _02237BC0 - _02237A9A - 2 ; case 21
+ .short _02237C08 - _02237A9A - 2 ; case 22
+ .short _02237C0E - _02237A9A - 2 ; case 23
+ .short _02237C14 - _02237A9A - 2 ; case 24
+ .short _02237BBA - _02237A9A - 2 ; case 25
+ .short _02237BE4 - _02237A9A - 2 ; case 26
+ .short _02237BEA - _02237A9A - 2 ; case 27
+ .short _02237BF0 - _02237A9A - 2 ; case 28
+ .short _02237BF6 - _02237A9A - 2 ; case 29
+ .short _02237BFC - _02237A9A - 2 ; case 30
+ .short _02237C02 - _02237A9A - 2 ; case 31
+ .short _02237BC6 - _02237A9A - 2 ; case 32
+ .short _02237C1A - _02237A9A - 2 ; case 33
+ .short _02237C2C - _02237A9A - 2 ; case 34
+ .short _02237C34 - _02237A9A - 2 ; case 35
+ .short _02237C3C - _02237A9A - 2 ; case 36
+ .short _02237C44 - _02237A9A - 2 ; case 37
+ .short _02237C4C - _02237A9A - 2 ; case 38
+ .short _02237C5A - _02237A9A - 2 ; case 39
+ .short _02237C62 - _02237A9A - 2 ; case 40
+ .short _02237C6A - _02237A9A - 2 ; case 41
+ .short _02237C72 - _02237A9A - 2 ; case 42
+ .short _02237C7A - _02237A9A - 2 ; case 43
+ .short _02237C82 - _02237A9A - 2 ; case 44
+ .short _02237C8A - _02237A9A - 2 ; case 45
+ .short _02237C92 - _02237A9A - 2 ; case 46
+ .short _02237C20 - _02237A9A - 2 ; case 47
+ .short _02237C26 - _02237A9A - 2 ; case 48
+ .short _02237C54 - _02237A9A - 2 ; case 49
+ .short _02237C98 - _02237A9A - 2 ; case 50
+ .short _02237CA0 - _02237A9A - 2 ; case 51
+ .short _02237CA8 - _02237A9A - 2 ; case 52
+ .short _02237CB0 - _02237A9A - 2 ; case 53
+ .short _02237CB8 - _02237A9A - 2 ; case 54
+ .short _02237D7C - _02237A9A - 2 ; case 55
+ .short _02237D7C - _02237A9A - 2 ; case 56
+ .short _02237D7C - _02237A9A - 2 ; case 57
+ .short _02237D7C - _02237A9A - 2 ; case 58
+ .short _02237D7C - _02237A9A - 2 ; case 59
+ .short _02237D7C - _02237A9A - 2 ; case 60
+ .short _02237D7C - _02237A9A - 2 ; case 61
+ .short _02237D7C - _02237A9A - 2 ; case 62
+ .short _02237D7C - _02237A9A - 2 ; case 63
+ .short _02237D7C - _02237A9A - 2 ; case 64
+ .short _02237D2E - _02237A9A - 2 ; case 65
+ .short _02237D4C - _02237A9A - 2 ; case 66
+ .short _02237CC0 - _02237A9A - 2 ; case 67
+ .short _02237CC8 - _02237A9A - 2 ; case 68
+ .short _02237CD0 - _02237A9A - 2 ; case 69
+ .short _02237CD8 - _02237A9A - 2 ; case 70
+ .short _02237CE0 - _02237A9A - 2 ; case 71
+ .short _02237CE8 - _02237A9A - 2 ; case 72
+ .short _02237CF0 - _02237A9A - 2 ; case 73
+ .short _02237CF8 - _02237A9A - 2 ; case 74
+ .short _02237D00 - _02237A9A - 2 ; case 75
+ .short _02237D08 - _02237A9A - 2 ; case 76
+ .short _02237D10 - _02237A9A - 2 ; case 77
+ .short _02237D18 - _02237A9A - 2 ; case 78
+ .short _02237D20 - _02237A9A - 2 ; case 79
+ .short _02237D28 - _02237A9A - 2 ; case 80
+_02237B3C:
+ ldr r4, [r5]
+ b _02237D7C
+_02237B40:
+ ldr r4, [r5, #4]
+ b _02237D7C
+_02237B44:
+ ldrb r0, [r5, #0x13]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _02237B50
+ mov r4, #0
+ b _02237B5E
+_02237B50:
+ mov r4, #0
+_02237B52:
+ add r0, r5, r4
+ ldrb r0, [r0, #8]
+ strb r0, [r7, r4]
+ add r4, r4, #1
+ cmp r4, #0xa
+ blo _02237B52
+_02237B5E:
+ mov r0, #0xff
+ strb r0, [r7, r4]
+ b _02237D7C
+_02237B64:
+ ldrb r4, [r5, #0x12]
+ b _02237D7C
+_02237B68:
+ ldrb r0, [r5, #0x13]
+ lsl r0, r0, #0x1f
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237B70:
+ ldrb r0, [r5, #0x13]
+ lsl r0, r0, #0x1e
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237B78:
+ ldrb r0, [r5, #0x13]
+ lsl r0, r0, #0x1d
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237B80:
+ mov r4, #0
+_02237B82:
+ add r0, r5, r4
+ ldrb r0, [r0, #0x14]
+ strb r0, [r7, r4]
+ add r4, r4, #1
+ cmp r4, #7
+ blo _02237B82
+ mov r0, #0xff
+ strb r0, [r7, r4]
+ b _02237D7C
+_02237B94:
+ ldrb r4, [r5, #0x1b]
+ b _02237D7C
+_02237B98:
+ ldrh r4, [r5, #0x1c]
+ b _02237D7C
+_02237B9C:
+ ldrh r4, [r5, #0x1e]
+ b _02237D7C
+_02237BA0:
+ ldrb r0, [r5, #0x13]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _02237BAE
+ mov r4, #0x67
+ lsl r4, r4, #2
+ b _02237D7C
+_02237BAE:
+ ldr r0, [sp, #0xc]
+ ldrh r4, [r0]
+ b _02237D7C
+_02237BB4:
+ ldr r0, [sp, #0xc]
+ ldrh r4, [r0, #2]
+ b _02237D7C
+_02237BBA:
+ ldr r0, [sp, #0xc]
+ ldr r4, [r0, #4]
+ b _02237D7C
+_02237BC0:
+ ldr r0, [sp, #0xc]
+ ldrb r4, [r0, #8]
+ b _02237D7C
+_02237BC6:
+ ldr r0, [sp, #0xc]
+ ldrb r4, [r0, #9]
+ b _02237D7C
+_02237BCC:
+ ldr r0, [sp]
+ sub r0, #0xd
+ lsl r1, r0, #1
+ ldr r0, [sp, #8]
+ ldrh r4, [r0, r1]
+ b _02237D7C
+_02237BD8:
+ ldr r1, [sp]
+ ldr r0, [sp, #8]
+ sub r1, #0x11
+ add r0, r0, r1
+ ldrb r4, [r0, #8]
+ b _02237D7C
+_02237BE4:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0]
+ b _02237D7C
+_02237BEA:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #1]
+ b _02237D7C
+_02237BF0:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #2]
+ b _02237D7C
+_02237BF6:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #3]
+ b _02237D7C
+_02237BFC:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #4]
+ b _02237D7C
+_02237C02:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #5]
+ b _02237D7C
+_02237C08:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #6]
+ b _02237D7C
+_02237C0E:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #7]
+ b _02237D7C
+_02237C14:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #8]
+ b _02237D7C
+_02237C1A:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #9]
+ b _02237D7C
+_02237C20:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #0xa]
+ b _02237D7C
+_02237C26:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #0xb]
+ b _02237D7C
+_02237C2C:
+ ldr r0, [r6]
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ b _02237D7C
+_02237C34:
+ ldr r0, [r6]
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x18
+ b _02237D7C
+_02237C3C:
+ ldr r0, [r6]
+ lsl r0, r0, #9
+ lsr r4, r0, #0x19
+ b _02237D7C
+_02237C44:
+ ldr r0, [r6]
+ lsl r0, r0, #5
+ lsr r4, r0, #0x1c
+ b _02237D7C
+_02237C4C:
+ ldr r0, [r6]
+ lsl r0, r0, #1
+ lsr r4, r0, #0x1c
+ b _02237D7C
+_02237C54:
+ ldr r0, [r6]
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237C5A:
+ ldr r0, [r6, #4]
+ lsl r0, r0, #0x1b
+ lsr r4, r0, #0x1b
+ b _02237D7C
+_02237C62:
+ ldr r0, [r6, #4]
+ lsl r0, r0, #0x16
+ lsr r4, r0, #0x1b
+ b _02237D7C
+_02237C6A:
+ ldr r0, [r6, #4]
+ lsl r0, r0, #0x11
+ lsr r4, r0, #0x1b
+ b _02237D7C
+_02237C72:
+ ldr r0, [r6, #4]
+ lsl r0, r0, #0xc
+ lsr r4, r0, #0x1b
+ b _02237D7C
+_02237C7A:
+ ldr r0, [r6, #4]
+ lsl r0, r0, #7
+ lsr r4, r0, #0x1b
+ b _02237D7C
+_02237C82:
+ ldr r0, [r6, #4]
+ lsl r0, r0, #2
+ lsr r4, r0, #0x1b
+ b _02237D7C
+_02237C8A:
+ ldr r0, [r6, #4]
+ lsl r0, r0, #1
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237C92:
+ ldr r0, [r6, #4]
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237C98:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0x1d
+ lsr r4, r0, #0x1d
+ b _02237D7C
+_02237CA0:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0x1a
+ lsr r4, r0, #0x1d
+ b _02237D7C
+_02237CA8:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0x17
+ lsr r4, r0, #0x1d
+ b _02237D7C
+_02237CB0:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0x14
+ lsr r4, r0, #0x1d
+ b _02237D7C
+_02237CB8:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0x11
+ lsr r4, r0, #0x1d
+ b _02237D7C
+_02237CC0:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237CC8:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0xf
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237CD0:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0xe
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237CD8:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0xd
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237CE0:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0xc
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237CE8:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0xb
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237CF0:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0xa
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237CF8:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #9
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237D00:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #8
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237D08:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #7
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237D10:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #6
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237D18:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #5
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237D20:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #1
+ lsr r4, r0, #0x1c
+ b _02237D7C
+_02237D28:
+ ldr r0, [r6, #8]
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237D2E:
+ ldr r0, [sp, #0xc]
+ ldrh r4, [r0]
+ cmp r4, #0
+ beq _02237D7C
+ ldr r0, [r6, #4]
+ lsl r0, r0, #1
+ lsr r0, r0, #0x1f
+ bne _02237D46
+ ldrb r0, [r5, #0x13]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _02237D7C
+_02237D46:
+ mov r4, #0x67
+ lsl r4, r4, #2
+ b _02237D7C
+_02237D4C:
+ ldr r4, [r6, #4]
+ lsl r0, r4, #2
+ lsr r0, r0, #0x1b
+ lsl r6, r0, #0x19
+ lsl r0, r4, #7
+ lsr r0, r0, #0x1b
+ lsl r3, r0, #0x14
+ lsl r0, r4, #0xc
+ lsr r0, r0, #0x1b
+ lsl r2, r0, #0xf
+ lsl r0, r4, #0x11
+ lsr r0, r0, #0x1b
+ lsl r1, r0, #0xa
+ lsl r0, r4, #0x1b
+ lsl r4, r4, #0x16
+ lsr r4, r4, #0x1b
+ lsr r0, r0, #0x1b
+ lsl r4, r4, #5
+ orr r0, r4
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ add r4, r6, #0
+ orr r4, r0
+_02237D7C:
+ ldr r0, [sp]
+ cmp r0, #0xa
+ ble _02237D88
+ add r0, r5, #0
+ bl MOD83_02237968
+_02237D88:
+ add r0, r4, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02237A10
+
+ thumb_func_start MOD83_02237D90
+MOD83_02237D90: ; 0x02237D90
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r0, #0
+ add r5, r2, #0
+ mov r7, #0
+ cmp r6, #0xa
+ ble _02237E04
+ ldr r1, [r4]
+ add r2, r7, #0
+ bl MOD83_0223746C
+ add r7, r0, #0
+ ldr r1, [r4]
+ add r0, r4, #0
+ mov r2, #1
+ bl MOD83_0223746C
+ ldr r1, [r4]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD83_0223746C
+ ldr r1, [r4]
+ add r0, r4, #0
+ mov r2, #3
+ bl MOD83_0223746C
+ str r0, [sp]
+ add r0, r4, #0
+ bl MOD83_02237948
+ add r0, r4, #0
+ bl MOD83_02237988
+ ldrh r1, [r4, #0x1c]
+ cmp r0, r1
+ beq _02237E04
+ ldrb r1, [r4, #0x13]
+ mov r0, #1
+ bic r1, r0
+ mov r0, #1
+ orr r0, r1
+ strb r0, [r4, #0x13]
+ ldrb r1, [r4, #0x13]
+ mov r0, #4
+ orr r0, r1
+ strb r0, [r4, #0x13]
+ ldr r0, [sp]
+ ldr r1, [r0, #4]
+ mov r0, #1
+ lsl r0, r0, #0x1e
+ orr r1, r0
+ ldr r0, [sp]
+ str r1, [r0, #4]
+ add r0, r4, #0
+ bl MOD83_02237968
+ pop {r3, r4, r5, r6, r7, pc}
+_02237E04:
+ cmp r6, #0xb
+ bhi _02237EA8
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237E14: ; jump table
+ .short _02237EA8 - _02237E14 - 2 ; case 0
+ .short _02237EA8 - _02237E14 - 2 ; case 1
+ .short _02237E2C - _02237E14 - 2 ; case 2
+ .short _02237E3C - _02237E14 - 2 ; case 3
+ .short _02237E42 - _02237E14 - 2 ; case 4
+ .short _02237E54 - _02237E14 - 2 ; case 5
+ .short _02237E66 - _02237E14 - 2 ; case 6
+ .short _02237E78 - _02237E14 - 2 ; case 7
+ .short _02237EA8 - _02237E14 - 2 ; case 8
+ .short _02237EA8 - _02237E14 - 2 ; case 9
+ .short _02237EA8 - _02237E14 - 2 ; case 10
+ .short _02237E88 - _02237E14 - 2 ; case 11
+_02237E2C:
+ mov r2, #0
+_02237E2E:
+ ldrb r1, [r5, r2]
+ add r0, r4, r2
+ add r2, r2, #1
+ strb r1, [r0, #8]
+ cmp r2, #0xa
+ blt _02237E2E
+ b _02237EA8
+_02237E3C:
+ ldrb r0, [r5]
+ strb r0, [r4, #0x12]
+ b _02237EA8
+_02237E42:
+ ldrb r0, [r4, #0x13]
+ ldrb r2, [r5]
+ mov r1, #1
+ bic r0, r1
+ mov r1, #1
+ and r1, r2
+ orr r0, r1
+ strb r0, [r4, #0x13]
+ b _02237EA8
+_02237E54:
+ ldrb r0, [r4, #0x13]
+ mov r1, #2
+ bic r0, r1
+ ldrb r1, [r5]
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1e
+ orr r0, r1
+ strb r0, [r4, #0x13]
+ b _02237EA8
+_02237E66:
+ ldrb r0, [r4, #0x13]
+ mov r1, #4
+ bic r0, r1
+ ldrb r1, [r5]
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1d
+ orr r0, r1
+ strb r0, [r4, #0x13]
+ b _02237EA8
+_02237E78:
+ mov r2, #0
+_02237E7A:
+ ldrb r1, [r5, r2]
+ add r0, r4, r2
+ add r2, r2, #1
+ strb r1, [r0, #0x14]
+ cmp r2, #7
+ blt _02237E7A
+ b _02237EA8
+_02237E88:
+ ldrb r0, [r5, #1]
+ ldrb r1, [r5]
+ lsl r0, r0, #8
+ add r0, r1, r0
+ strh r0, [r7]
+ ldrh r0, [r7]
+ ldrb r1, [r4, #0x13]
+ cmp r0, #0
+ beq _02237EA2
+ mov r0, #2
+ orr r0, r1
+ strb r0, [r4, #0x13]
+ b _02237EA8
+_02237EA2:
+ mov r0, #2
+ bic r1, r0
+ strb r1, [r4, #0x13]
+_02237EA8:
+ cmp r6, #0xa
+ ble _02237EBA
+ add r0, r4, #0
+ bl MOD83_02237988
+ strh r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD83_02237968
+_02237EBA:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_02237D90
+
+ thumb_func_start MOD83_02237EBC
+MOD83_02237EBC: ; 0x02237EBC
+ ldr r2, _02237ED4 ; =0x00000115
+ cmp r0, r2
+ blt _02237ED2
+ add r1, r2, #0
+ add r1, #0x86
+ cmp r0, r1
+ bgt _02237ED2
+ sub r0, r0, r2
+ lsl r1, r0, #1
+ ldr r0, _02237ED8 ; =0x0223B57C
+ ldrh r0, [r0, r1]
+_02237ED2:
+ bx lr
+ .align 2, 0
+_02237ED4: .word 0x00000115
+_02237ED8: .word 0x0223B57C
+ thumb_func_end MOD83_02237EBC
+
+ thumb_func_start MOD83_02237EDC
+MOD83_02237EDC: ; 0x02237EDC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r1, #0xb
+ mov r2, #0
+ bl MOD83_02237A10
+ bl MOD83_02237EBC
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0x19
+ mov r2, #0
+ bl MOD83_02237A10
+ add r1, r0, #0
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02068800
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD83_02237EDC
+
+ thumb_func_start MOD83_02237F04
+MOD83_02237F04: ; 0x02237F04
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020672BC
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ add r0, r4, #0
+ mov r1, #0x2e
+ mov r2, #0
+ bl MOD83_02237A10
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #0x19
+ bl FUN_02068678
+ cmp r0, #0
+ beq _02237F5E
+ ldr r2, _02237F68 ; =0x0223B4C0
+ mov r4, #0
+_02237F32:
+ ldrh r1, [r2]
+ cmp r5, r1
+ bne _02237F42
+ add r0, r5, #0
+ mov r1, #0x18
+ bl FUN_02068678
+ b _02237F4A
+_02237F42:
+ add r4, r4, #1
+ add r2, r2, #2
+ cmp r4, #0x5e
+ blo _02237F32
+_02237F4A:
+ cmp r4, #0x5e
+ bne _02237F66
+ mov r1, #1
+ tst r1, r6
+ bne _02237F66
+ add r0, r5, #0
+ mov r1, #0x18
+ bl FUN_02068678
+ pop {r4, r5, r6, pc}
+_02237F5E:
+ add r0, r5, #0
+ mov r1, #0x18
+ bl FUN_02068678
+_02237F66:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02237F68: .word 0x0223B4C0
+ thumb_func_end MOD83_02237F04
+
+ thumb_func_start MOD83_02237F6C
+MOD83_02237F6C: ; 0x02237F6C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r4, r1, #0
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_020669A0
+ add r0, r4, #0
+ bl FUN_02066A6C
+ mov r1, #0
+ str r0, [sp]
+ add r0, r6, #0
+ add r2, r1, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0xb
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ bl MOD83_02237EBC
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #5
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0xc
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ cmp r0, #0
+ beq _02237FCE
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206E6D8
+ str r0, [sp, #8]
+_02237FCE:
+ add r0, r4, #0
+ mov r1, #6
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #7
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x19
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #8
+ add r2, sp, #8
+ bl FUN_02067960
+ mov r0, #0x46
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #9
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD83_02237F04
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #8
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xb
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #3
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0xc
+ add r2, sp, #4
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x1a
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xd
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x1b
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xe
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x1c
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xf
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x1d
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x10
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x1e
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x11
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x1f
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x12
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x16
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x13
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x17
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x14
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x18
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x15
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x21
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x16
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x2f
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x17
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x30
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x18
+ add r2, sp, #8
+ bl FUN_02067960
+ mov r5, #0
+ add r7, r5, #0
+_0223815E:
+ add r1, r5, #0
+ add r0, r6, #0
+ add r1, #0xd
+ mov r2, #0
+ bl MOD83_02237A10
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, #0x36
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x15
+ mov r2, #0
+ bl MOD83_02237A10
+ mov r1, #3
+ lsl r1, r7
+ str r0, [sp, #8]
+ and r0, r1
+ lsr r0, r7
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, #0x3e
+ add r2, sp, #8
+ bl FUN_02067960
+ add r1, r5, #0
+ add r0, r4, #0
+ add r1, #0x42
+ mov r2, #0
+ bl FUN_020672BC
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, #0x3a
+ add r2, sp, #8
+ bl FUN_02067960
+ add r5, r5, #1
+ add r7, r7, #2
+ cmp r5, #4
+ blt _0223815E
+ add r0, r6, #0
+ mov r1, #0x27
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x46
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x28
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x47
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x29
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x48
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x2a
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x49
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x2b
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x4a
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x2c
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x4b
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x2d
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x4c
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x32
+ mov r2, #0
+ bl MOD83_02237A10
+ add r7, r0, #0
+ cmp r7, #4
+ bgt _02238282
+ mov r5, #0
+ cmp r7, #0
+ ble _02238282
+_0223826C:
+ mov r0, #1
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, #0x4e
+ add r2, sp, #8
+ bl FUN_02067960
+ add r5, r5, #1
+ cmp r5, r7
+ blt _0223826C
+_02238282:
+ add r0, r6, #0
+ mov r1, #0x33
+ mov r2, #0
+ bl MOD83_02237A10
+ add r7, r0, #0
+ cmp r7, #4
+ bgt _022382AE
+ mov r5, #0
+ cmp r7, #0
+ ble _022382AE
+_02238298:
+ mov r0, #1
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, #0x52
+ add r2, sp, #8
+ bl FUN_02067960
+ add r5, r5, #1
+ cmp r5, r7
+ blt _02238298
+_022382AE:
+ add r0, r6, #0
+ mov r1, #0x34
+ mov r2, #0
+ bl MOD83_02237A10
+ add r7, r0, #0
+ cmp r7, #4
+ bgt _022382DA
+ mov r5, #0
+ cmp r7, #0
+ ble _022382DA
+_022382C4:
+ mov r0, #1
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, #0x56
+ add r2, sp, #8
+ bl FUN_02067960
+ add r5, r5, #1
+ cmp r5, r7
+ blt _022382C4
+_022382DA:
+ add r0, r6, #0
+ mov r1, #0x35
+ mov r2, #0
+ bl MOD83_02237A10
+ add r7, r0, #0
+ cmp r7, #4
+ bgt _02238306
+ mov r5, #0
+ cmp r7, #0
+ ble _02238306
+_022382F0:
+ mov r0, #1
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, #0x5a
+ add r2, sp, #8
+ bl FUN_02067960
+ add r5, r5, #1
+ cmp r5, r7
+ blt _022382F0
+_02238306:
+ add r0, r6, #0
+ mov r1, #0x36
+ mov r2, #0
+ bl MOD83_02237A10
+ add r7, r0, #0
+ cmp r7, #4
+ bgt _02238332
+ mov r5, #0
+ cmp r7, #0
+ ble _02238332
+_0223831C:
+ mov r0, #1
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, #0x5e
+ add r2, sp, #8
+ bl FUN_02067960
+ add r5, r5, #1
+ cmp r5, r7
+ blt _0223831C
+_02238332:
+ add r0, r6, #0
+ mov r1, #0x43
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x62
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x44
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x63
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x45
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x64
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x46
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x65
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x47
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x66
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x48
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x67
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x49
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x68
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x4a
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x69
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x4b
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x6a
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x6b
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x4d
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x6c
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x4e
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x6d
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x50
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x6e
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r4, #0
+ bl FUN_020689E8
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x6f
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r4, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020672BC
+ cmp r0, #0xc9
+ bne _022384AE
+ mov r1, #0
+ add r0, r6, #0
+ add r2, r1, #0
+ bl MOD83_02237A10
+ add r3, r0, #0
+ mov r7, #3
+ lsl r0, r7, #8
+ and r0, r3
+ lsr r1, r0, #6
+ lsl r0, r7, #0x18
+ and r0, r3
+ lsr r5, r0, #0x12
+ lsl r0, r7, #0x10
+ and r0, r3
+ lsr r0, r0, #0xc
+ add r2, r3, #0
+ orr r0, r5
+ orr r0, r1
+ and r2, r7
+ str r3, [sp, #8]
+ orr r0, r2
+ mov r1, #0x1c
+ bl _u32_div_f
+ str r1, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x70
+ add r2, sp, #8
+ bl FUN_02067960
+_022384AE:
+ add r0, r4, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020672BC
+ ldr r1, _022385F0 ; =0x00000182
+ cmp r0, r1
+ bne _022384FE
+ ldr r0, _022385F4 ; =0x021C4918
+ ldrb r0, [r0, #6]
+ cmp r0, #5
+ bhi _022384DE
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022384D2: ; jump table
+ .short _022384DE - _022384D2 - 2 ; case 0
+ .short _022384DE - _022384D2 - 2 ; case 1
+ .short _022384DE - _022384D2 - 2 ; case 2
+ .short _022384F0 - _022384D2 - 2 ; case 3
+ .short _022384E4 - _022384D2 - 2 ; case 4
+ .short _022384EA - _022384D2 - 2 ; case 5
+_022384DE:
+ mov r0, #0
+ str r0, [sp, #8]
+ b _022384F4
+_022384E4:
+ mov r0, #1
+ str r0, [sp, #8]
+ b _022384F4
+_022384EA:
+ mov r0, #2
+ str r0, [sp, #8]
+ b _022384F4
+_022384F0:
+ mov r0, #3
+ str r0, [sp, #8]
+_022384F4:
+ add r0, r4, #0
+ mov r1, #0x70
+ add r2, sp, #8
+ bl FUN_02067960
+_022384FE:
+ add r0, r6, #0
+ mov r1, #2
+ add r2, sp, #0x24
+ bl MOD83_02237A10
+ ldr r3, [sp, #4]
+ add r0, sp, #0x24
+ add r1, sp, #0xc
+ mov r2, #0xc
+ bl FUN_02015D88
+ add r0, r4, #0
+ mov r1, #0x75
+ add r2, sp, #0xc
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #3
+ mov r2, #0
+ bl MOD83_02237A10
+ ldr r1, _022385F8 ; =0x020ECAC4
+ ldrb r1, [r1]
+ cmp r1, r0
+ beq _0223853E
+ mov r0, #1
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x4d
+ add r2, sp, #8
+ bl FUN_02067960
+_0223853E:
+ add r0, r6, #0
+ mov r1, #0x25
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x79
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #7
+ add r2, sp, #0x24
+ bl MOD83_02237A10
+ ldr r3, [sp, #4]
+ add r0, sp, #0x24
+ add r1, sp, #0xc
+ mov r2, #8
+ bl FUN_02015D88
+ add r0, r4, #0
+ mov r1, #0x8f
+ add r2, sp, #0xc
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x23
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x98
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x22
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x99
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x26
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x9a
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x24
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x9b
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x31
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x9c
+ add r2, sp, #8
+ bl FUN_02067960
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl FUN_02066A94
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022385F0: .word 0x00000182
+_022385F4: .word 0x021C4918
+_022385F8: .word 0x020ECAC4
+ thumb_func_end MOD83_02237F6C
+
+ thumb_func_start MOD83_022385FC
+MOD83_022385FC: ; 0x022385FC
+ ldr r1, _02238604 ; =0x0223BC2C
+ str r0, [r1]
+ bx lr
+ nop
+_02238604: .word 0x0223BC2C
+ thumb_func_end MOD83_022385FC
+
+ thumb_func_start MOD83_02238608
+MOD83_02238608: ; 0x02238608
+ add r1, r0, #0
+ ldr r0, _02238614 ; =0x0223BC2C
+ ldr r3, _02238618 ; =FUN_02016998
+ ldr r0, [r0]
+ bx r3
+ nop
+_02238614: .word 0x0223BC2C
+_02238618: .word FUN_02016998
+ thumb_func_end MOD83_02238608
+
+ thumb_func_start MOD83_0223861C
+MOD83_0223861C: ; 0x0223861C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x130
+ bl CTRDG_GetAgbGameCode
+ lsr r1, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r2, r1, #0x18
+ lsr r1, r0, #0x10
+ lsl r3, r0, #0x18
+ lsr r0, r0, #8
+ lsl r0, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #8
+ lsr r1, r1, #0x10
+ orr r0, r3
+ orr r0, r1
+ add r6, r2, #0
+ orr r6, r0
+ ldr r0, _022386B0 ; =0x0223B69C
+ mov r4, #0
+ ldr r0, [r0]
+ cmp r0, #0
+ bls _022386A6
+ ldr r5, _022386B4 ; =0x0223B69C
+ add r7, sp, #0x80
+_02238652:
+ ldr r0, [r5]
+ cmp r6, r0
+ bne _0223869C
+ mov r0, #1
+ bl CTRDG_Enable
+ mov r0, #0x81
+ ldr r2, _022386B8 ; =0x000004A8
+ lsl r0, r0, #0x14
+ add r1, r7, #0
+ bl CTRDG_CpuCopy8
+ ldr r0, _022386BC ; =0x08020000
+ add r1, sp, #0
+ mov r2, #0x80
+ bl CTRDG_CpuCopy8
+ mov r0, #0
+ bl CTRDG_Enable
+ ldr r0, _022386C0 ; =MOD83_02238608
+ ldr r1, _022386C4 ; =FUN_02016A18
+ bl SetCustomAllocator
+ ldr r1, _022386B8 ; =0x000004A8
+ ldr r3, _022386C8 ; =0x0223A6B4
+ add r0, r7, #0
+ add r2, sp, #0
+ bl FUN_020910EC
+ cmp r0, #0
+ beq _0223869C
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x130
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0223869C:
+ add r5, r5, #4
+ ldr r0, [r5]
+ add r4, r4, #1
+ cmp r4, r0
+ blo _02238652
+_022386A6:
+ mov r0, #0
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x130
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022386B0: .word 0x0223B69C
+_022386B4: .word 0x0223B69C
+_022386B8: .word 0x000004A8
+_022386BC: .word 0x08020000
+_022386C0: .word MOD83_02238608
+_022386C4: .word FUN_02016A18
+_022386C8: .word 0x0223A6B4
+ thumb_func_end MOD83_0223861C
+
+ thumb_func_start MOD83_022386CC
+MOD83_022386CC: ; 0x022386CC
+ push {r3, lr}
+ bl CTRDG_Init
+ bl CTRDG_IsAgbCartridge
+ cmp r0, #0
+ bne _022386DE
+ mov r0, #0
+ pop {r3, pc}
+_022386DE:
+ bl CTRDG_GetAgbMakerCode
+ ldr r1, _022386FC ; =0x00003130
+ cmp r0, r1
+ beq _022386EC
+ mov r0, #0
+ pop {r3, pc}
+_022386EC:
+ bl MOD83_0223861C
+ cmp r0, #0
+ beq _022386F8
+ mov r0, #1
+ pop {r3, pc}
+_022386F8:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_022386FC: .word 0x00003130
+ thumb_func_end MOD83_022386CC
+
+ thumb_func_start MOD83_02238700
+MOD83_02238700: ; 0x02238700
+ push {r3, lr}
+ bl MOD83_022386CC
+ cmp r0, #0
+ bne _0223870E
+ mov r0, #0
+ pop {r3, pc}
+_0223870E:
+ mov r0, #1
+ bl CTRDG_Enable
+ mov r0, #0x81
+ lsl r0, r0, #0x14
+ add r1, sp, #0
+ bl CTRDG_Read32
+ mov r0, #0
+ bl CTRDG_Enable
+ ldr r0, [sp]
+ pop {r3, pc}
+ thumb_func_end MOD83_02238700
+
+ thumb_func_start MOD83_02238728
+MOD83_02238728: ; 0x02238728
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD83_022386CC
+ cmp r0, #0
+ bne _0223873A
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0223873A:
+ cmp r4, #0
+ bne _02238744
+ bl MOD83_02238700
+ add r4, r0, #0
+_02238744:
+ mov r0, #1
+ bl CTRDG_Enable
+ ldr r0, _0223876C ; =0x08100100
+ add r1, r5, #0
+ add r2, r4, #0
+ bl CTRDG_CpuCopy16
+ add r4, r0, #0
+ mov r0, #0
+ bl CTRDG_Enable
+ bl CTRDG_IsExisting
+ cmp r0, #0
+ bne _02238768
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02238768:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223876C: .word 0x08100100
+ thumb_func_end MOD83_02238728
+
+ thumb_func_start MOD83_02238770
+MOD83_02238770: ; 0x02238770
+ push {r3, r4, r5, r6}
+ add r4, r0, #0
+ mov r0, #0
+ ldr r6, _02238798 ; =0x0223BC30
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ mov r5, #0x75
+_02238780:
+ stmia r6!, {r0, r1, r2, r3}
+ stmia r6!, {r0, r1, r2, r3}
+ sub r5, r5, #1
+ bne _02238780
+ str r0, [r6]
+ ldr r0, _0223879C ; =0x0223BC30
+ mov r1, #1
+ str r1, [r0]
+ str r4, [r0, #4]
+ pop {r3, r4, r5, r6}
+ bx lr
+ nop
+_02238798: .word 0x0223BC30
+_0223879C: .word 0x0223BC30
+ thumb_func_end MOD83_02238770
+
+ thumb_func_start MOD83_022387A0
+MOD83_022387A0: ; 0x022387A0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ add r6, r1, #0
+ mov r0, #3
+ add r2, r3, #0
+ bl FUN_0201681C
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_02006268
+ mov r1, #0
+ add r2, r4, #0
+ add r5, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ add r0, r5, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD83_022387A0
+
+ thumb_func_start MOD83_022387D8
+MOD83_022387D8: ; 0x022387D8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ ldr r5, _0223885C ; =0x0223A760
+ add r6, r3, #0
+ add r7, r0, #0
+ add r4, r1, #0
+ ldmia r5!, {r0, r1}
+ add r3, sp, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ cmp r2, #4
+ str r0, [r3]
+ add r0, sp, #0
+ strb r2, [r0, #0x10]
+ bhi _02238832
+ add r0, r2, r2
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223880A: ; jump table
+ .short _02238832 - _0223880A - 2 ; case 0
+ .short _02238814 - _0223880A - 2 ; case 1
+ .short _0223881C - _0223880A - 2 ; case 2
+ .short _02238824 - _0223880A - 2 ; case 3
+ .short _0223882C - _0223880A - 2 ; case 4
+_02238814:
+ mov r0, #2
+ lsl r0, r0, #0xa
+ str r0, [sp, #8]
+ b _02238832
+_0223881C:
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ b _02238832
+_02238824:
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ b _02238832
+_0223882C:
+ mov r0, #2
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+_02238832:
+ lsr r1, r6, #0xb
+ add r0, sp, #0
+ strb r1, [r0, #0x12]
+ ldr r1, [sp, #0x30]
+ add r2, sp, #0
+ lsr r1, r1, #0xe
+ strb r1, [r0, #0x13]
+ lsl r1, r4, #0x18
+ add r0, r7, #0
+ lsr r1, r1, #0x18
+ mov r3, #0
+ bl FUN_02016C18
+ lsl r1, r4, #0x18
+ add r0, r7, #0
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223885C: .word 0x0223A760
+ thumb_func_end MOD83_022387D8
+
+ thumb_func_start MOD83_02238860
+MOD83_02238860: ; 0x02238860
+ ldr r1, _02238868 ; =0x0223BC30
+ str r0, [r1, #0xc]
+ bx lr
+ nop
+_02238868: .word 0x0223BC30
+ thumb_func_end MOD83_02238860
+
+ thumb_func_start MOD83_0223886C
+MOD83_0223886C: ; 0x0223886C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp, #0xc]
+ ldr r0, _022388C0 ; =0x0223BC30
+ add r5, r1, #0
+ ldr r0, [r0, #0xc]
+ add r4, r2, #0
+ add r6, r3, #0
+ ldr r7, _022388C4 ; =0x0223BC30
+ cmp r0, #0
+ bne _0223889C
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r7, #4]
+ ldr r1, [sp, #0xc]
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ b _022388B4
+_0223889C:
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r7, #4]
+ ldr r1, [sp, #0xc]
+ str r0, [sp, #8]
+ ldr r3, _022388C8 ; =0x00007FFF
+ mov r0, #0
+ add r2, r1, #0
+ bl FUN_0200E1D0
+_022388B4:
+ cmp r4, #0
+ beq _022388BA
+ str r6, [r4]
+_022388BA:
+ str r5, [r7, #8]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022388C0: .word 0x0223BC30
+_022388C4: .word 0x0223BC30
+_022388C8: .word 0x00007FFF
+ thumb_func_end MOD83_0223886C
+
+ thumb_func_start MOD83_022388CC
+MOD83_022388CC: ; 0x022388CC
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r5, _022388E0 ; =0x0223BC30
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _022388DE
+ ldr r0, [r5, #8]
+ str r0, [r4]
+_022388DE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022388E0: .word 0x0223BC30
+ thumb_func_end MOD83_022388CC
+
+ thumb_func_start MOD83_022388E4
+MOD83_022388E4: ; 0x022388E4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r6, r2, #0
+ mov r1, #0
+ mov r2, #0x54
+ add r5, r0, #0
+ add r7, r3, #0
+ bl Call_FillMemWithValue
+ mov r0, #1
+ str r0, [r5, #4]
+ str r0, [r5, #8]
+ sub r0, r0, #2
+ str r0, [r5, #0x4c]
+ str r4, [r5, #0x10]
+ str r6, [r5, #0x30]
+ ldr r0, [sp, #0x18]
+ str r7, [r5, #0x34]
+ str r0, [r5, #0x38]
+ ldr r0, [sp, #0x1c]
+ mov r2, #0
+ str r0, [r5, #0x3c]
+ str r2, [r5, #0x2c]
+ ldr r0, _02238930 ; =0x0001020F
+ str r2, [r5, #0x40]
+ str r0, [r5, #0x44]
+ add r0, r5, #0
+ mov r1, #0xf
+ add r0, #0x48
+ strb r1, [r0]
+ str r2, [r5]
+ str r2, [r5, #0x24]
+ str r2, [r5, #0x20]
+ str r2, [r5, #0x14]
+ mov r0, #0xff
+ str r0, [r5, #0x50]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02238930: .word 0x0001020F
+ thumb_func_end MOD83_022388E4
+
+ thumb_func_start MOD83_02238934
+MOD83_02238934: ; 0x02238934
+ str r1, [r0, #0x18]
+ str r2, [r0, #0x1c]
+ str r3, [r0, #0x28]
+ bx lr
+ thumb_func_end MOD83_02238934
+
+ thumb_func_start MOD83_0223893C
+MOD83_0223893C: ; 0x0223893C
+ str r1, [r0]
+ str r2, [r0, #0x40]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_0223893C
+
+ thumb_func_start MOD83_02238944
+MOD83_02238944: ; 0x02238944
+ str r1, [r0, #0x20]
+ str r2, [r0, #0x24]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_02238944
+
+ thumb_func_start MOD83_0223894C
+MOD83_0223894C: ; 0x0223894C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ ldr r4, _02238A34 ; =0x0223BC30
+ cmp r1, r0
+ beq _02238A2A
+ ldr r0, [r5, #0x4c]
+ cmp r0, r1
+ beq _02238A2A
+ str r1, [r5, #0x4c]
+ ldr r0, [r5, #8]
+ cmp r0, #1
+ bne _02238976
+ add r1, r5, #0
+ add r1, #0x48
+ ldrb r1, [r1]
+ ldr r0, [r5, #0x10]
+ bl FUN_02019620
+_02238976:
+ mov r0, #0
+ ldr r1, [r5, #0x4c]
+ mvn r0, r0
+ cmp r1, r0
+ beq _02238A2A
+ ldr r2, [r5, #0x34]
+ ldr r3, [r4, #4]
+ mov r0, #1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ ldr r6, [r5, #0x14]
+ str r0, [sp, #0x10]
+ cmp r6, #0
+ bne _0223899C
+ ldr r0, [r4, #4]
+ bl FUN_0200AA80
+ add r6, r0, #0
+_0223899C:
+ ldr r1, [sp, #0x10]
+ ldr r2, [r5, #0x4c]
+ ldr r3, [r4, #4]
+ add r0, r6, #0
+ bl FUN_0200A9C4
+ add r4, r0, #0
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ bne _022389D0
+ ldr r0, [r5, #0x24]
+ add r2, r4, #0
+ str r0, [sp]
+ ldr r0, [r5, #0x50]
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x44]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5, #0x40]
+ ldr r3, [r5, #0x20]
+ bl FUN_0201BDE0
+ add r7, r0, #0
+ b _02238A12
+_022389D0:
+ ldr r0, [r5, #0x40]
+ mov r1, #2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02002E4C
+ add r2, r0, #0
+ ldr r0, [r5, #0x40]
+ add r1, r4, #0
+ bl FUN_02002E14
+ add r7, r0, #0
+ ldr r0, [r5, #0x10]
+ bl FUN_0201AB0C
+ lsl r0, r0, #3
+ sub r3, r0, r7
+ ldr r0, [r5, #0x24]
+ add r2, r4, #0
+ str r0, [sp]
+ ldr r0, [r5, #0x50]
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x44]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5, #0x40]
+ bl FUN_0201BDE0
+ add r7, r0, #0
+ mov r0, #0
+ str r0, [r5, #0xc]
+_02238A12:
+ add r0, r4, #0
+ bl FUN_02021A20
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ bne _02238A24
+ add r0, r6, #0
+ bl FUN_0200AB18
+_02238A24:
+ ldr r0, [sp, #0x10]
+ bl FUN_0200A8B8
+_02238A2A:
+ mov r0, #0xff
+ str r0, [r5, #0x50]
+ add r0, r7, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238A34: .word 0x0223BC30
+ thumb_func_end MOD83_0223894C
+
+ thumb_func_start MOD83_02238A38
+MOD83_02238A38: ; 0x02238A38
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ ldr r1, [r4, #0x10]
+ add r6, r2, #0
+ ldr r2, [r1]
+ add r5, r3, #0
+ cmp r2, #0
+ bne _02238A8A
+ lsl r2, r5, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp]
+ ldr r2, [r4, #0x18]
+ lsl r3, r6, #0x18
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp, #4]
+ ldr r2, [r4, #0x1c]
+ lsr r3, r3, #0x18
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp, #8]
+ ldr r2, [r4, #0x30]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp, #0xc]
+ ldr r2, [r4, #0x28]
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ str r2, [sp, #0x10]
+ ldr r2, [r4, #0x2c]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_02019064
+ ldr r1, [sp, #0x28]
+ add r0, r4, #0
+ bl MOD83_0223894C
+ add r5, r0, #0
+ b _02238AB8
+_02238A8A:
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ beq _02238A9C
+ add r0, r1, #0
+ lsl r1, r6, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_0201AB1C
+_02238A9C:
+ mov r0, #0
+ mvn r0, r0
+ cmp r5, r0
+ beq _02238AAE
+ lsl r1, r5, #0x18
+ ldr r0, [r4, #0x10]
+ lsr r1, r1, #0x18
+ bl FUN_0201AB20
+_02238AAE:
+ ldr r1, [sp, #0x28]
+ add r0, r4, #0
+ bl MOD83_0223894C
+ add r5, r0, #0
+_02238AB8:
+ ldr r0, [r4, #4]
+ cmp r0, #1
+ bne _02238AEC
+ ldr r0, [r4]
+ cmp r0, #0
+ ldr r0, [r4, #0x10]
+ bne _02238ADA
+ ldr r2, [r4, #0x38]
+ ldr r3, [r4, #0x3c]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ mov r1, #0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_0200CCA4
+ b _02238AEC
+_02238ADA:
+ ldr r2, [r4, #0x38]
+ ldr r3, [r4, #0x3c]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ mov r1, #0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_0200D0BC
+_02238AEC:
+ add r0, r5, #0
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02238A38
+
+ thumb_func_start MOD83_02238AF4
+MOD83_02238AF4: ; 0x02238AF4
+ ldr r1, [r0, #0x18]
+ ldr r0, [r0, #0x1c]
+ mul r0, r1
+ bx lr
+ thumb_func_end MOD83_02238AF4
+
+ thumb_func_start MOD83_02238AFC
+MOD83_02238AFC: ; 0x02238AFC
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _02238B30 ; =0x0223A734
+ add r3, sp, #0
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, _02238B34 ; =0x0223BC30
+ ldr r0, [r0, #4]
+ str r0, [sp, #0xc]
+ add r0, r2, #0
+ bl FUN_0201D040
+ ldr r1, _02238B34 ; =0x0223BC30
+ mov r0, #0x14
+ ldr r1, [r1, #4]
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02238B30: .word 0x0223A734
+_02238B34: .word 0x0223BC30
+ thumb_func_end MOD83_02238AFC
+
+ thumb_func_start MOD83_02238B38
+MOD83_02238B38: ; 0x02238B38
+ ldr r0, _02238B48 ; =0x0223BC30
+ ldr r0, [r0, #0x30]
+ cmp r0, #0
+ beq _02238B44
+ mov r0, #1
+ bx lr
+_02238B44:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_02238B48: .word 0x0223BC30
+ thumb_func_end MOD83_02238B38
+
+ thumb_func_start MOD83_02238B4C
+MOD83_02238B4C: ; 0x02238B4C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ ldr r6, _02238BB4 ; =0x0223BC30
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x7e
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ ldr r2, _02238BB8 ; =0x0223BC30
+ str r3, [sp, #0xc]
+ ldr r2, [r2, #4]
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ ldr r2, _02238BB8 ; =0x0223BC30
+ ldr r1, _02238BBC ; =0x0223BC64
+ ldr r2, [r2, #4]
+ mov r0, #0x46
+ bl FUN_02008C9C
+ ldr r1, _02238BB8 ; =0x0223BC30
+ mov r2, #1
+ str r0, [r1, #0x30]
+ ldr r0, _02238BBC ; =0x0223BC64
+ mov r1, #0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ mov r1, #3
+ mov r7, #0x57
+ ldr r0, _02238BC0 ; =0x0223BE30
+ lsl r1, r1, #0x12
+ str r1, [r0, #0xc]
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_02238B9C:
+ ldr r2, [r6, #4]
+ mov r0, #3
+ add r1, r4, #0
+ bl FUN_02008DEC
+ str r0, [r5, r7]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02238B9C
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238BB4: .word 0x0223BC30
+_02238BB8: .word 0x0223BC30
+_02238BBC: .word 0x0223BC64
+_02238BC0: .word 0x0223BE30
+ thumb_func_end MOD83_02238B4C
+
+ thumb_func_start MOD83_02238BC4
+MOD83_02238BC4: ; 0x02238BC4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ ldr r4, [sp, #0x54]
+ add r6, r0, #0
+ mov ip, r1
+ str r2, [sp, #0x2c]
+ str r3, [sp, #0x30]
+ ldr r5, _02238D30 ; =0x0223BC30
+ cmp r4, #0
+ bne _02238BDC
+ mov r7, #1
+ b _02238BDE
+_02238BDC:
+ mov r7, #2
+_02238BDE:
+ mov r0, #1
+ str r0, [sp, #0x34]
+ cmp r6, #0x10
+ bne _02238BEA
+ mov r0, #0
+ str r0, [sp, #0x34]
+_02238BEA:
+ mov r1, #0
+ mvn r1, r1
+ mov r0, ip
+ cmp r0, r1
+ beq _02238C18
+ str r4, [sp]
+ str r7, [sp, #4]
+ ldr r0, [r5, #4]
+ ldr r3, [sp, #0x34]
+ str r0, [sp, #8]
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ mov r2, ip
+ bl FUN_02008F34
+ mov r1, #0x18
+ mul r1, r4
+ add r2, r5, r1
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+_02238C18:
+ mov r1, #0
+ ldr r0, [sp, #0x2c]
+ mvn r1, r1
+ cmp r0, r1
+ beq _02238C4A
+ str r4, [sp]
+ str r7, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ ldr r0, [r5, #4]
+ ldr r2, [sp, #0x2c]
+ str r0, [sp, #0xc]
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ mov r3, #0
+ bl FUN_02008FEC
+ mov r1, #0x18
+ mul r1, r4
+ add r2, r5, r1
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+_02238C4A:
+ mov r1, #0
+ ldr r0, [sp, #0x30]
+ mvn r1, r1
+ cmp r0, r1
+ beq _02238C7A
+ str r4, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, [r5, #4]
+ ldr r2, [sp, #0x30]
+ str r0, [sp, #8]
+ mov r0, #0x59
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r3, [sp, #0x34]
+ add r1, r6, #0
+ bl FUN_020090AC
+ mov r1, #0x18
+ mul r1, r4
+ add r2, r5, r1
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+_02238C7A:
+ mov r0, #0
+ ldr r2, [sp, #0x50]
+ mvn r0, r0
+ cmp r2, r0
+ beq _02238CA8
+ str r4, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r0, [r5, #4]
+ ldr r3, [sp, #0x34]
+ str r0, [sp, #8]
+ mov r0, #0x5a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ bl FUN_020090AC
+ mov r1, #0x18
+ add r2, r4, #0
+ mul r2, r1
+ add r2, r5, r2
+ lsl r1, r1, #4
+ str r0, [r2, r1]
+_02238CA8:
+ mov r0, #0x18
+ add r6, r4, #0
+ mul r6, r0
+ mov r0, #0x5d
+ add r1, r5, r6
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_02009A50
+ mov r0, #0x5e
+ add r1, r5, r6
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_02009CF0
+ mov r0, #0
+ mov r2, #0x57
+ str r4, [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 r3, r4, #0
+ str r1, [sp, #0x14]
+ add r1, r2, #4
+ ldr r1, [r5, r1]
+ str r1, [sp, #0x18]
+ add r1, r2, #0
+ add r1, #8
+ ldr r1, [r5, r1]
+ str r1, [sp, #0x1c]
+ add r1, r2, #0
+ add r1, #0xc
+ ldr r1, [r5, r1]
+ add r2, #0x48
+ str r1, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ mov r0, #0x24
+ add r1, r5, r2
+ mul r0, r4
+ add r0, r1, r0
+ add r1, r4, #0
+ add r2, r4, #0
+ bl FUN_02008AA4
+ cmp r4, #0
+ bne _02238D1A
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ b _02238D22
+_02238D1A:
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+_02238D22:
+ ldr r0, _02238D34 ; =MOD83_02238F00
+ mov r1, #0
+ bl FUN_02015F10
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02238D30: .word 0x0223BC30
+_02238D34: .word MOD83_02238F00
+ thumb_func_end MOD83_02238BC4
+
+ thumb_func_start MOD83_02238D38
+MOD83_02238D38: ; 0x02238D38
+ push {r4, lr}
+ add r2, r0, #0
+ add r4, r1, #0
+ add r1, r2, #0
+ ldr r0, _02238D50 ; =0x0223BC64
+ add r2, r4, #0
+ bl FUN_02008D24
+ ldr r0, _02238D54 ; =0x0223BE30
+ str r4, [r0, #0xc]
+ pop {r4, pc}
+ nop
+_02238D50: .word 0x0223BC64
+_02238D54: .word 0x0223BE30
+ thumb_func_end MOD83_02238D38
+
+ thumb_func_start MOD83_02238D58
+MOD83_02238D58: ; 0x02238D58
+ push {r4, lr}
+ ldr r0, _02238DB4 ; =0x0223BE30
+ ldr r4, _02238DB8 ; =0x0223BC30
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ beq _02238DA6
+ mov r0, #0x82
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ bne _02238DA2
+ sub r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02020128
+ cmp r0, #0
+ bne _02238D86
+ mov r0, #0x81
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_02238D86:
+ mov r0, #0x81
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0202011C
+ mov r1, #6
+ ldr r2, [r0, #4]
+ lsl r1, r1, #0x12
+ cmp r2, r1
+ bge _02238DA6
+ lsr r1, r1, #7
+ add r1, r2, r1
+ str r1, [r0, #4]
+ b _02238DA6
+_02238DA2:
+ sub r1, r1, #1
+ str r1, [r4, r0]
+_02238DA6:
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ beq _02238DB0
+ bl FUN_0201FDEC
+_02238DB0:
+ pop {r4, pc}
+ nop
+_02238DB4: .word 0x0223BE30
+_02238DB8: .word 0x0223BC30
+ thumb_func_end MOD83_02238D58
+
+ thumb_func_start MOD83_02238DBC
+MOD83_02238DBC: ; 0x02238DBC
+ push {r3, r4, r5, lr}
+ sub sp, #0x30
+ add r4, r1, #0
+ ldr r1, _02238E44 ; =0x0223BC30
+ bne _02238E1E
+ ldr r4, [r1, #0x30]
+ lsl r2, r2, #0xc
+ str r4, [sp]
+ mov r4, #0x69
+ lsl r4, r4, #2
+ add r5, r1, r4
+ mov r4, #0x24
+ mul r4, r0
+ add r4, r5, r4
+ str r4, [sp, #4]
+ mov r4, #1
+ lsl r4, r4, #0xc
+ mov r5, #0
+ str r5, [sp, #0x10]
+ str r4, [sp, #0x14]
+ str r4, [sp, #0x18]
+ str r4, [sp, #0x1c]
+ add r4, sp, #0
+ strh r5, [r4, #0x20]
+ str r2, [sp, #8]
+ lsl r2, r3, #0xc
+ str r2, [sp, #0xc]
+ mov r2, #0xa
+ str r2, [sp, #0x24]
+ cmp r0, #0
+ bne _02238DFE
+ mov r2, #1
+ b _02238E00
+_02238DFE:
+ mov r2, #2
+_02238E00:
+ ldr r0, [r1, #4]
+ str r2, [sp, #0x28]
+ str r0, [sp, #0x2c]
+ cmp r2, #2
+ bne _02238E16
+ mov r0, #0x83
+ lsl r0, r0, #2
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1, r0]
+ add r0, r2, r0
+ str r0, [sp, #0xc]
+_02238E16:
+ add r0, sp, #0
+ bl FUN_0201FE94
+ add r4, r0, #0
+_02238E1E:
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020200BC
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02020238
+ ldr r1, [sp, #0x40]
+ add r0, r4, #0
+ bl FUN_02020130
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020200A0
+ add r0, r4, #0
+ add sp, #0x30
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02238E44: .word 0x0223BC30
+ thumb_func_end MOD83_02238DBC
+
+ thumb_func_start MOD83_02238E48
+MOD83_02238E48: ; 0x02238E48
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r0, _02238EE8 ; =0x0223BE30
+ ldr r4, _02238EEC ; =0x0223BC30
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ beq _02238E66
+ mov r0, #0x81
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0201FFC8
+ mov r0, #0x81
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_02238E66:
+ mov r1, #0x51
+ ldr r0, _02238EF0 ; =0x0223BC60
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _02238E76
+ bl FUN_02009C0C
+_02238E76:
+ mov r1, #0x57
+ ldr r0, _02238EF0 ; =0x0223BC60
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _02238E86
+ bl FUN_02009C0C
+_02238E86:
+ mov r1, #0x52
+ ldr r0, _02238EF0 ; =0x0223BC60
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _02238E96
+ bl FUN_02009E04
+_02238E96:
+ mov r1, #0x16
+ ldr r0, _02238EF0 ; =0x0223BC60
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _02238EA6
+ bl FUN_02009E04
+_02238EA6:
+ mov r4, #0
+ mov r7, #0x4b
+ ldr r5, _02238EF0 ; =0x0223BC60
+ add r6, r4, #0
+ lsl r7, r7, #2
+_02238EB0:
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02008E2C
+ str r6, [r5, r7]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02238EB0
+ ldr r0, _02238EF0 ; =0x0223BC60
+ ldr r0, [r0]
+ bl FUN_0201FD58
+ ldr r0, _02238EF0 ; =0x0223BC60
+ mov r1, #0
+ str r1, [r0]
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238EE8: .word 0x0223BE30
+_02238EEC: .word 0x0223BC30
+_02238EF0: .word 0x0223BC60
+ thumb_func_end MOD83_02238E48
+
+ thumb_func_start MOD83_02238EF4
+MOD83_02238EF4: ; 0x02238EF4
+ mov r1, #1
+ sub r0, #0xa
+ lsl r1, r0
+ add r0, r1, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_02238EF4
+
+ thumb_func_start MOD83_02238F00
+MOD83_02238F00: ; 0x02238F00
+ push {r4, lr}
+ ldr r0, _02238F34 ; =0x0223CAB0
+ ldr r4, _02238F38 ; =0x0223BC30
+ ldr r0, [r0, #0x20]
+ cmp r0, #0
+ beq _02238F1E
+ mov r1, #0xea
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ blx r1
+ mov r0, #0xea
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+_02238F1E:
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ ldr r3, _02238F3C ; =0x027E0000
+ ldr r1, _02238F40 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ .align 2, 0
+_02238F34: .word 0x0223CAB0
+_02238F38: .word 0x0223BC30
+_02238F3C: .word 0x027E0000
+_02238F40: .word 0x00003FF8
+ thumb_func_end MOD83_02238F00
+
+ thumb_func_start MOD83_02238F44
+MOD83_02238F44: ; 0x02238F44
+ push {r4}
+ sub sp, #0x1c
+ ldr r4, _02238F90 ; =0x0223A744
+ add r3, sp, #0
+ mov r2, #0x1a
+_02238F4E:
+ ldrb r1, [r4]
+ add r4, r4, #1
+ strb r1, [r3]
+ add r3, r3, #1
+ sub r2, r2, #1
+ bne _02238F4E
+ add r1, sp, #0
+ ldrb r2, [r1]
+ mov r3, #0
+ sub r1, r3, #1
+ cmp r2, r1
+ beq _02238F88
+ add r4, sp, #0
+ sub r1, r3, #1
+_02238F6A:
+ ldrb r2, [r4]
+ cmp r0, r2
+ bne _02238F7E
+ add r0, sp, #0
+ lsl r1, r3, #1
+ add r0, #1
+ add sp, #0x1c
+ ldrb r0, [r0, r1]
+ pop {r4}
+ bx lr
+_02238F7E:
+ add r4, r4, #2
+ ldrb r2, [r4]
+ add r3, r3, #1
+ cmp r2, r1
+ bne _02238F6A
+_02238F88:
+ mov r0, #0
+ add sp, #0x1c
+ pop {r4}
+ bx lr
+ .align 2, 0
+_02238F90: .word 0x0223A744
+ thumb_func_end MOD83_02238F44
+
+ thumb_func_start MOD83_02238F94
+MOD83_02238F94: ; 0x02238F94
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r0, [sp, #0x20]
+ add r5, r1, #0
+ add r7, r2, #0
+ add r6, r3, #0
+ ldr r4, [sp, #0x40]
+ bl FUN_020689E0
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x20]
+ bl FUN_02068A80
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ lsl r0, r7, #0x18
+ ldr r2, [sp, #0x24]
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #0
+ lsl r1, r5, #0x10
+ lsl r2, r2, #0x18
+ str r0, [sp, #8]
+ add r0, r4, #0
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x18
+ mov r3, #2
+ bl FUN_02068C00
+ mov r1, #0
+ ldr r0, [sp, #0x20]
+ add r2, r1, #0
+ bl FUN_020671BC
+ mov r3, #0
+ str r3, [sp]
+ mov r1, #0xa
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ str r6, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r3, [sp, #0x14]
+ mov r0, #2
+ str r0, [sp, #0x18]
+ str r5, [sp, #0x1c]
+ ldr r2, _0223902C ; =0x0223BC30
+ ldrh r0, [r4]
+ ldrh r1, [r4, #2]
+ ldr r2, [r2, #4]
+ bl FUN_020124B4
+ mov r1, #0x32
+ add r0, r6, #0
+ lsl r1, r1, #6
+ bl DC_FlushRange
+ mov r1, #0x32
+ lsl r1, r1, #6
+ add r0, r6, #0
+ add r2, r1, #0
+ bl GXS_LoadOBJ
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, _0223902C ; =0x0223BC30
+ mov r2, #5
+ ldr r0, [r0, #4]
+ mov r3, #0x60
+ str r0, [sp, #4]
+ ldrh r0, [r4]
+ ldrh r1, [r4, #4]
+ bl FUN_02006930
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223902C: .word 0x0223BC30
+ thumb_func_end MOD83_02238F94
+
+ thumb_func_start MOD83_02239030
+MOD83_02239030: ; 0x02239030
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r0, #0x21
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0x23
+ mov r2, #0x20
+ mov r3, #0x22
+ bl MOD83_02238BC4
+ mov r1, #1
+ mov r0, #0
+ lsl r1, r1, #0x14
+ bl MOD83_02238D38
+ mov r3, #0
+ mov r1, #0x81
+ str r3, [sp]
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ mov r0, #1
+ mov r2, #0x80
+ bl MOD83_02238DBC
+ mov r1, #0x81
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add sp, #8
+ pop {r4, pc}
+ thumb_func_end MOD83_02239030
+
+ thumb_func_start MOD83_02239070
+MOD83_02239070: ; 0x02239070
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0xc
+ str r0, [sp]
+ mov r0, #1
+ add r6, r1, #0
+ add r4, r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x36
+ mov r1, #0xa
+ mov r2, #0
+ mov r3, #0xb
+ bl MOD83_02238BC4
+ mov r1, #1
+ mov r0, #0
+ lsl r1, r1, #0x14
+ bl MOD83_02238D38
+ mov r0, #1
+ mov r1, #0x81
+ str r0, [sp]
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ mov r2, #0x80
+ mov r3, #0
+ bl MOD83_02238DBC
+ mov r3, #0x81
+ lsl r3, r3, #2
+ add r4, #8
+ str r0, [r5, r3]
+ cmp r6, #1
+ beq _022390C2
+ cmp r6, #2
+ beq _022390F4
+ cmp r6, #7
+ beq _02239110
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_022390C2:
+ add r0, r4, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020671BC
+ add r2, r0, #0
+ mov r0, #0xe9
+ lsl r0, r0, #4
+ mov r3, #0x21
+ add r0, r5, r0
+ lsl r3, r3, #4
+ str r0, [sp]
+ add r0, r4, #0
+ add r1, r6, #0
+ add r3, r5, r3
+ bl MOD83_02238F94
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_022390F4:
+ mov r0, #0xe9
+ lsl r0, r0, #4
+ add r1, r3, #0
+ add r0, r5, r0
+ add r3, #0xc
+ str r0, [sp]
+ add r0, r4, #0
+ sub r1, #0x16
+ mov r2, #0
+ add r3, r5, r3
+ bl MOD83_02238F94
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_02239110:
+ mov r0, #0xe9
+ lsl r0, r0, #4
+ add r1, r3, #0
+ add r0, r5, r0
+ add r3, #0xc
+ str r0, [sp]
+ add r0, r4, #0
+ sub r1, #0x16
+ mov r2, #1
+ add r3, r5, r3
+ bl MOD83_02238F94
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD83_02239070
+
+ thumb_func_start MOD83_0223912C
+MOD83_0223912C: ; 0x0223912C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ cmp r1, #0xa
+ bhi _02239168
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02239142: ; jump table
+ .short _02239168 - _02239142 - 2 ; case 0
+ .short _02239168 - _02239142 - 2 ; case 1
+ .short _02239168 - _02239142 - 2 ; case 2
+ .short _02239158 - _02239142 - 2 ; case 3
+ .short _02239168 - _02239142 - 2 ; case 4
+ .short _02239168 - _02239142 - 2 ; case 5
+ .short _02239168 - _02239142 - 2 ; case 6
+ .short _02239168 - _02239142 - 2 ; case 7
+ .short _0223915C - _02239142 - 2 ; case 8
+ .short _02239160 - _02239142 - 2 ; case 9
+ .short _02239166 - _02239142 - 2 ; case 10
+_02239158:
+ ldr r4, [r2, #4]
+ b _02239168
+_0223915C:
+ ldr r4, _022391C4 ; =0x000001C6
+ b _02239168
+_02239160:
+ mov r4, #0x71
+ lsl r4, r4, #2
+ b _02239168
+_02239166:
+ ldr r4, _022391C8 ; =0x000001C7
+_02239168:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #1
+ bl FUN_0206E640
+ add r7, r0, #0
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #2
+ bl FUN_0206E640
+ add r4, r0, #0
+ bl FUN_0206E708
+ add r6, r0, #0
+ bl FUN_0206E70C
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x10
+ add r1, r7, #0
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD83_02238BC4
+ mov r1, #1
+ mov r0, #0
+ lsl r1, r1, #0x14
+ bl MOD83_02238D38
+ mov r3, #0
+ mov r1, #0x81
+ str r3, [sp]
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ mov r0, #1
+ mov r2, #0x80
+ bl MOD83_02238DBC
+ mov r1, #0x81
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022391C4: .word 0x000001C6
+_022391C8: .word 0x000001C7
+ thumb_func_end MOD83_0223912C
+
+ thumb_func_start MOD83_022391CC
+MOD83_022391CC: ; 0x022391CC
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0xc0
+ str r1, [sp]
+ ldr r0, [r0, #4]
+ mov r2, #4
+ add r3, r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0x1d
+ add r3, #0xfc
+ bl FUN_02006930
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022391CC
+
+ thumb_func_start MOD83_022391EC
+MOD83_022391EC: ; 0x022391EC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r6, r1, #0
+ ldrh r4, [r6]
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD83_02238F44
+ add r7, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #5
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, _022392DC ; =0x0223BC30
+ mov r1, #0x1e
+ ldr r0, [r0, #4]
+ add r2, r5, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x74
+ mov r3, #5
+ bl FUN_0200687C
+ mov r2, #1
+ ldr r3, _022392DC ; =0x0223BC30
+ str r2, [sp]
+ ldr r3, [r3, #4]
+ mov r0, #0x74
+ mov r1, #0x1f
+ bl FUN_02006C98
+ add r1, sp, #0x14
+ str r0, [sp, #0x10]
+ bl FUN_020B0180
+ ldr r2, [sp, #0x14]
+ mov r3, #6
+ add r0, r5, #0
+ mov r1, #5
+ add r2, #0xc
+ lsl r3, r3, #8
+ bl FUN_02017DFC
+ ldr r0, [sp, #0x10]
+ bl FUN_02016A18
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ mov r2, #0
+ add r7, #8
+ str r0, [sp, #4]
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r1, #5
+ add r3, r2, #0
+ bl FUN_020186B4
+ add r0, r5, #0
+ mov r1, #5
+ bl FUN_02017CD0
+ ldr r1, _022392E0 ; =MOD83_022391CC
+ ldr r0, _022392E4 ; =0x0223CAB0
+ cmp r4, #0xb
+ str r1, [r0, #0x20]
+ bhi _022392CA
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02239286: ; jump table
+ .short _022392CA - _02239286 - 2 ; case 0
+ .short _022392B4 - _02239286 - 2 ; case 1
+ .short _022392B4 - _02239286 - 2 ; case 2
+ .short _022392C0 - _02239286 - 2 ; case 3
+ .short _0223929E - _02239286 - 2 ; case 4
+ .short _0223929E - _02239286 - 2 ; case 5
+ .short _0223929E - _02239286 - 2 ; case 6
+ .short _022392AA - _02239286 - 2 ; case 7
+ .short _022392C0 - _02239286 - 2 ; case 8
+ .short _022392C0 - _02239286 - 2 ; case 9
+ .short _022392C0 - _02239286 - 2 ; case 10
+ .short _0223929E - _02239286 - 2 ; case 11
+_0223929E:
+ ldr r0, _022392E8 ; =0x0223BC30
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD83_02239030
+ b _022392CA
+_022392AA:
+ mov r1, #0x82
+ ldr r0, _022392E8 ; =0x0223BC30
+ mov r2, #0x78
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+_022392B4:
+ ldr r0, _022392E8 ; =0x0223BC30
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD83_02239070
+ b _022392CA
+_022392C0:
+ ldr r0, _022392E8 ; =0x0223BC30
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD83_0223912C
+_022392CA:
+ mov r1, #0x81
+ ldr r0, _022392E8 ; =0x0223BC30
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022392DC: .word 0x0223BC30
+_022392E0: .word MOD83_022391CC
+_022392E4: .word 0x0223CAB0
+_022392E8: .word 0x0223BC30
+ thumb_func_end MOD83_022391EC
+
+ thumb_func_start MOD83_022392EC
+MOD83_022392EC: ; 0x022392EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r1, #0
+ mov r1, #2
+ add r5, r0, #0
+ add r0, r2, #0
+ lsl r1, r1, #8
+ str r2, [sp]
+ bl FUN_02016998
+ ldr r1, _0223936C ; =0x0000A001
+ add r4, r0, #0
+ bl MATHi_CRC16InitTableRev
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #0x50
+ bl MATH_CalcCRC16
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, sp, #4
+ bl OS_GetMacAddress
+ add r0, sp, #4
+ ldrh r1, [r0, #2]
+ mov r2, #0
+ add r3, sp, #4
+ strh r1, [r0, #6]
+ ldr r1, _02239370 ; =0x0000D679
+ strh r6, [r0, #2]
+_0223932E:
+ ldrh r0, [r3]
+ add r2, r2, #1
+ eor r0, r1
+ strh r0, [r3]
+ ldrh r1, [r3]
+ add r3, r3, #2
+ cmp r2, #4
+ blt _0223932E
+ mov r1, #0x41
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ bl FUN_02016998
+ add r1, sp, #4
+ mov r2, #8
+ add r4, r0, #0
+ bl FUN_0209521C
+ add r5, #0x50
+ mov r2, #0xd6
+ add r0, r4, #0
+ add r1, r5, #0
+ lsl r2, r2, #2
+ add r3, r7, #0
+ bl FUN_020952AC
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223936C: .word 0x0000A001
+_02239370: .word 0x0000D679
+ thumb_func_end MOD83_022392EC
+
+ thumb_func_start MOD83_02239374
+MOD83_02239374: ; 0x02239374
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r1, #0
+ mov r1, #2
+ add r5, r0, #0
+ add r0, r2, #0
+ lsl r1, r1, #8
+ str r2, [sp]
+ bl FUN_02016998
+ ldr r1, _0223940C ; =0x0000A001
+ add r4, r0, #0
+ bl MATHi_CRC16InitTableRev
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #0x50
+ bl MATH_CalcCRC16
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #0
+ bl FUN_0202EF18
+ ldrb r2, [r0, #4]
+ add r1, sp, #4
+ mov r3, #0
+ strb r2, [r1]
+ ldrb r2, [r0, #5]
+ strb r2, [r1, #1]
+ ldrb r2, [r0, #6]
+ strb r2, [r1, #2]
+ ldrb r2, [r0, #7]
+ strb r2, [r1, #3]
+ ldrb r2, [r0, #8]
+ strb r2, [r1, #4]
+ ldrb r0, [r0, #9]
+ strb r0, [r1, #5]
+ add r0, sp, #4
+ ldrh r2, [r0, #2]
+ strh r2, [r0, #6]
+ ldr r2, _02239410 ; =0x0000D679
+ strh r6, [r0, #2]
+_022393CE:
+ ldrh r0, [r1]
+ add r3, r3, #1
+ eor r0, r2
+ strh r0, [r1]
+ ldrh r2, [r1]
+ add r1, r1, #2
+ cmp r3, #4
+ blt _022393CE
+ mov r1, #0x41
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ bl FUN_02016998
+ add r1, sp, #4
+ mov r2, #8
+ add r4, r0, #0
+ bl FUN_0209521C
+ add r5, #0x50
+ mov r2, #0xd6
+ add r0, r4, #0
+ add r1, r5, #0
+ lsl r2, r2, #2
+ add r3, r7, #0
+ bl FUN_020952AC
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223940C: .word 0x0000A001
+_02239410: .word 0x0000D679
+ thumb_func_end MOD83_02239374
+
+ thumb_func_start MOD83_02239414
+MOD83_02239414: ; 0x02239414
+ push {r3, lr}
+ cmp r2, #0
+ beq _0223941E
+ cmp r2, #1
+ pop {r3, pc}
+_0223941E:
+ ldr r0, _02239428 ; =0x000005DC
+ bl FUN_020054C8
+ pop {r3, pc}
+ nop
+_02239428: .word 0x000005DC
+ thumb_func_end MOD83_02239414
+
+ thumb_func_start MOD83_0223942C
+MOD83_0223942C: ; 0x0223942C
+ push {r3, lr}
+ ldr r0, _0223944C ; =0x027FFFA8
+ ldrh r1, [r0]
+ mov r0, #2
+ lsl r0, r0, #0xe
+ and r0, r1
+ asr r0, r0, #0xf
+ bne _02239448
+ bl CTRDG_IsAgbCartridge
+ cmp r0, #0
+ bne _02239448
+ bl CTRDG_TerminateForPulledOut
+_02239448:
+ pop {r3, pc}
+ nop
+_0223944C: .word 0x027FFFA8
+ thumb_func_end MOD83_0223942C
+
+ thumb_func_start MOD83_02239450
+MOD83_02239450: ; 0x02239450
+ push {r3, lr}
+ cmp r0, #1
+ bne _02239478
+ ldr r1, _02239484 ; =0x04000208
+ ldrh r0, [r1]
+ mov r0, #0
+ strh r0, [r1]
+ lsr r0, r1, #0xd
+ ldr r1, _02239488 ; =MOD83_0223942C
+ bl OS_SetIrqFunction
+ mov r0, #2
+ lsl r0, r0, #0xc
+ bl OS_EnableIrqMask
+ ldr r1, _02239484 ; =0x04000208
+ ldrh r0, [r1]
+ mov r0, #1
+ strh r0, [r1]
+ pop {r3, pc}
+_02239478:
+ mov r0, #2
+ lsl r0, r0, #0xc
+ bl OS_DisableIrqMask
+ pop {r3, pc}
+ nop
+_02239484: .word 0x04000208
+_02239488: .word MOD83_0223942C
+ thumb_func_end MOD83_02239450
+
+ thumb_func_start MOD83_0223948C
+MOD83_0223948C: ; 0x0223948C
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_0223948C
+
+ thumb_func_start MOD83_02239490
+MOD83_02239490: ; 0x02239490
+ push {r3, lr}
+ ldr r1, _022394B4 ; =0x04000208
+ ldrh r0, [r1]
+ mov r0, #0
+ strh r0, [r1]
+ lsr r0, r1, #0xd
+ ldr r1, _022394B8 ; =MOD83_0223948C
+ bl OS_SetIrqFunction
+ mov r0, #2
+ lsl r0, r0, #0xc
+ bl OS_EnableIrqMask
+ ldr r1, _022394B4 ; =0x04000208
+ ldrh r0, [r1]
+ mov r0, #1
+ strh r0, [r1]
+ pop {r3, pc}
+ .align 2, 0
+_022394B4: .word 0x04000208
+_022394B8: .word MOD83_0223948C
+ thumb_func_end MOD83_02239490
+
+ thumb_func_start MOD83_022394BC
+MOD83_022394BC: ; 0x022394BC
+ ldr r1, _022394C8 ; =0x0223BC30
+ str r0, [r1, #0x14]
+ mov r0, #0
+ str r0, [r1, #0x10]
+ bx lr
+ nop
+_022394C8: .word 0x0223BC30
+ thumb_func_end MOD83_022394BC
+
+ thumb_func_start MOD83_022394CC
+MOD83_022394CC: ; 0x022394CC
+ push {r3, r4, r5, lr}
+ ldr r0, _0223953C ; =0x0223BC30
+ ldr r4, _02239540 ; =0x0223BC30
+ ldr r0, [r0, #0x10]
+ cmp r0, #4
+ bhi _02239538
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022394E4: ; jump table
+ .short _022394EE - _022394E4 - 2 ; case 0
+ .short _02239504 - _022394E4 - 2 ; case 1
+ .short _02239538 - _022394E4 - 2 ; case 2
+ .short _02239538 - _022394E4 - 2 ; case 3
+ .short _02239538 - _022394E4 - 2 ; case 4
+_022394EE:
+ mov r0, #4
+ bl FUN_020166A8
+ ldr r0, [r4, #0x14]
+ mov r1, #2
+ bl FUN_02022840
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _02239538
+_02239504:
+ ldr r0, [r4, #0x14]
+ bl FUN_02022854
+ add r5, r0, #0
+ cmp r5, #3
+ bne _02239516
+ mov r0, #3
+ str r0, [r4, #0x10]
+ b _02239528
+_02239516:
+ cmp r5, #2
+ bne _02239520
+ mov r0, #2
+ str r0, [r4, #0x10]
+ b _02239528
+_02239520:
+ cmp r5, #1
+ bne _02239528
+ mov r0, #4
+ str r0, [r4, #0x10]
+_02239528:
+ sub r0, r5, #2
+ cmp r0, #1
+ bhi _02239534
+ mov r0, #4
+ bl FUN_020166B8
+_02239534:
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+_02239538:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223953C: .word 0x0223BC30
+_02239540: .word 0x0223BC30
+ thumb_func_end MOD83_022394CC
+
+ thumb_func_start MOD83_02239544
+MOD83_02239544: ; 0x02239544
+ ldr r0, _02239554 ; =0x0223BC30
+ ldr r1, _02239558 ; =0x0223BC30
+ ldr r0, [r0, #0x10]
+ cmp r0, #4
+ bne _02239552
+ mov r0, #1
+ str r0, [r1, #0x10]
+_02239552:
+ bx lr
+ .align 2, 0
+_02239554: .word 0x0223BC30
+_02239558: .word 0x0223BC30
+ thumb_func_end MOD83_02239544
+
+ thumb_func_start MOD83_0223955C
+MOD83_0223955C: ; 0x0223955C
+ push {r3, lr}
+ ldr r0, _02239570 ; =0x0223BC30
+ ldr r0, [r0, #0x14]
+ bl FUN_0202287C
+ mov r0, #4
+ bl FUN_020166B8
+ pop {r3, pc}
+ nop
+_02239570: .word 0x0223BC30
+ thumb_func_end MOD83_0223955C
+
+ thumb_func_start MOD83_02239574
+MOD83_02239574: ; 0x02239574
+ ldr r0, _0223957C ; =0x0223BC30
+ ldr r0, [r0, #0x10]
+ bx lr
+ nop
+_0223957C: .word 0x0223BC30
+ thumb_func_end MOD83_02239574
+
+ thumb_func_start MOD83_02239580
+MOD83_02239580: ; 0x02239580
+ push {r4, lr}
+ ldr r1, _022395BC ; =0x0223CAD4
+ add r4, r0, #0
+ ldr r2, [r1, #4]
+ cmp r2, #0
+ beq _0223959C
+ ldr r3, [r1]
+ ldr r1, _022395C0 ; =0x00001150
+ ldr r0, _022395C4 ; =0x0223B80C
+ ldr r1, [r3, r1]
+ lsl r3, r1, #2
+ ldr r1, _022395C8 ; =0x0223B7E4
+ ldr r1, [r1, r3]
+ blx r2
+_0223959C:
+ ldr r3, _022395BC ; =0x0223CAD4
+ ldr r1, _022395C0 ; =0x00001150
+ ldr r0, [r3]
+ str r4, [r0, r1]
+ ldr r2, [r3, #4]
+ cmp r2, #0
+ beq _022395B8
+ ldr r3, [r3]
+ ldr r0, _022395CC ; =0x0223B814
+ ldr r1, [r3, r1]
+ lsl r3, r1, #2
+ ldr r1, _022395C8 ; =0x0223B7E4
+ ldr r1, [r1, r3]
+ blx r2
+_022395B8:
+ pop {r4, pc}
+ nop
+_022395BC: .word 0x0223CAD4
+_022395C0: .word 0x00001150
+_022395C4: .word 0x0223B80C
+_022395C8: .word 0x0223B7E4
+_022395CC: .word 0x0223B814
+ thumb_func_end MOD83_02239580
+
+ thumb_func_start MOD83_022395D0
+MOD83_022395D0: ; 0x022395D0
+ ldr r1, _022395E4 ; =0x0223CAD4
+ ldr r3, [r1]
+ ldr r1, _022395E8 ; =0x00001150
+ ldr r2, [r3, r1]
+ sub r2, #9
+ cmp r2, #1
+ bls _022395E2
+ add r1, r1, #4
+ str r0, [r3, r1]
+_022395E2:
+ bx lr
+ .align 2, 0
+_022395E4: .word 0x0223CAD4
+_022395E8: .word 0x00001150
+ thumb_func_end MOD83_022395D0
+
+ thumb_func_start MOD83_022395EC
+MOD83_022395EC: ; 0x022395EC
+ push {r4, lr}
+ ldr r0, _02239658 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _0223965C ; =0x00001150
+ ldr r0, [r1, r0]
+ cmp r0, #4
+ bne _022395FE
+ bl OS_Terminate
+_022395FE:
+ mov r0, #2
+ bl MOD83_02239580
+ ldr r3, _02239658 ; =0x0223CAD4
+ ldr r0, _02239660 ; =0x0000FFFF
+ ldr r2, [r3]
+ ldr r1, _02239664 ; =0x00000FCC
+ strh r0, [r2, r1]
+ sub r2, r1, #2
+ ldr r4, [r3]
+ sub r1, r1, #4
+ strh r0, [r4, r2]
+ ldr r2, [r3]
+ strh r0, [r2, r1]
+ bl MOD83_02239670
+ cmp r0, #0
+ bne _0223963C
+ mov r0, #9
+ bl MOD83_02239580
+ ldr r0, _02239658 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239668 ; =0x0000117C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _02239638
+ mov r0, #4
+ blx r1
+_02239638:
+ mov r0, #0
+ pop {r4, pc}
+_0223963C:
+ ldr r1, _02239658 ; =0x0223CAD4
+ ldr r0, _0223966C ; =0x00001158
+ ldr r2, [r1]
+ mov r3, #2
+ strh r3, [r2, r0]
+ ldr r1, [r1]
+ add r0, #0x24
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _02239654
+ mov r0, #0
+ blx r1
+_02239654:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_02239658: .word 0x0223CAD4
+_0223965C: .word 0x00001150
+_02239660: .word 0x0000FFFF
+_02239664: .word 0x00000FCC
+_02239668: .word 0x0000117C
+_0223966C: .word 0x00001158
+ thumb_func_end MOD83_022395EC
+
+ thumb_func_start MOD83_02239670
+MOD83_02239670: ; 0x02239670
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r0, _02239748 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _0223974C ; =0x00001150
+ ldr r0, [r1, r0]
+ cmp r0, #2
+ beq _02239684
+ bl OS_Terminate
+ mov r0, #0
+_02239684:
+ bl WM_GetAllowedChannel
+ add r4, r0, #0
+ mov r0, #2
+ lsl r0, r0, #0xe
+ cmp r4, r0
+ bne _0223969C
+ mov r0, #3
+ bl MOD83_022395D0
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223969C:
+ cmp r4, #0
+ bne _022396AA
+ mov r0, #0x16
+ bl MOD83_022395D0
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022396AA:
+ ldr r0, _02239748 ; =0x0223CAD4
+ ldr r2, [r0]
+ ldr r0, _02239750 ; =0x00001176
+ ldrh r1, [r2, r0]
+ cmp r1, #0x10
+ blo _022396EC
+ sub r1, #0x10
+ mov r5, #0
+ mov r7, #0xd
+ mov r6, #1
+ b _022396D2
+_022396C0:
+ add r0, r1, #1
+ add r1, r7, #0
+ bl _s32_div_f
+ add r0, r6, #0
+ lsl r0, r1
+ tst r0, r4
+ bne _022396D6
+ add r5, r5, #1
+_022396D2:
+ cmp r5, #0xd
+ blt _022396C0
+_022396D6:
+ ldr r2, _02239748 ; =0x0223CAD4
+ add r4, r1, #0
+ ldr r3, [r2]
+ ldr r0, _02239750 ; =0x00001176
+ add r4, #0x10
+ strh r4, [r3, r0]
+ add r3, r1, #1
+ ldr r1, [r2]
+ ldr r0, _02239754 ; =0x00000FC4
+ strh r3, [r1, r0]
+ b _022396F0
+_022396EC:
+ ldr r0, _02239754 ; =0x00000FC4
+ strh r1, [r2, r0]
+_022396F0:
+ ldr r2, _02239748 ; =0x0223CAD4
+ ldr r0, _02239758 ; =0x00000FC6
+ ldr r1, [r2]
+ mov r3, #0xdc
+ strh r3, [r1, r0]
+ add r1, r0, #0
+ ldr r3, [r2]
+ sub r1, #0xc6
+ add r1, r3, r1
+ sub r0, r0, #6
+ str r1, [r3, r0]
+ ldr r1, [r2]
+ ldr r0, _0223975C ; =0x00001158
+ ldrh r0, [r1, r0]
+ cmp r0, #3
+ bne _02239726
+ mov r5, #0
+ ldr r0, _02239760 ; =0x00001170
+ ldr r1, _02239764 ; =0x00000FC8
+ b _02239722
+_02239718:
+ ldr r3, [r2]
+ add r4, r3, r5
+ ldrb r3, [r4, r0]
+ add r5, r5, #1
+ strb r3, [r4, r1]
+_02239722:
+ cmp r5, #6
+ blt _02239718
+_02239726:
+ ldr r1, _02239748 ; =0x0223CAD4
+ ldr r0, _02239768 ; =MOD83_0223976C
+ ldr r2, [r1]
+ mov r1, #0x3f
+ lsl r1, r1, #6
+ add r1, r2, r1
+ bl WM_StartScan
+ cmp r0, #2
+ beq _02239742
+ bl MOD83_022395D0
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02239742:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02239748: .word 0x0223CAD4
+_0223974C: .word 0x00001150
+_02239750: .word 0x00001176
+_02239754: .word 0x00000FC4
+_02239758: .word 0x00000FC6
+_0223975C: .word 0x00001158
+_02239760: .word 0x00001170
+_02239764: .word 0x00000FC8
+_02239768: .word MOD83_0223976C
+ thumb_func_end MOD83_02239670
+
+ thumb_func_start MOD83_0223976C
+MOD83_0223976C: ; 0x0223976C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ beq _02239792
+ bl MOD83_022395D0
+ mov r0, #9
+ bl MOD83_02239580
+ ldr r0, _02239880 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239884 ; =0x0000117C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _0223987E
+ mov r0, #4
+ blx r1
+ pop {r3, r4, r5, pc}
+_02239792:
+ ldr r0, _02239880 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239888 ; =0x00001150
+ ldr r0, [r1, r0]
+ cmp r0, #2
+ beq _022397BE
+ bl MOD83_022398A4
+ cmp r0, #0
+ bne _0223987E
+ mov r0, #9
+ bl MOD83_02239580
+ ldr r0, _02239880 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239884 ; =0x0000117C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _0223987E
+ mov r0, #4
+ blx r1
+ pop {r3, r4, r5, pc}
+_022397BE:
+ ldrh r0, [r4, #8]
+ cmp r0, #3
+ beq _0223987E
+ cmp r0, #4
+ beq _02239860
+ cmp r0, #5
+ bne _02239860
+ mov r0, #0xf
+ lsl r0, r0, #8
+ add r0, r1, r0
+ mov r1, #0xc0
+ bl DC_InvalidateRange
+ ldrh r0, [r4, #0x36]
+ cmp r0, #8
+ blo _022397E6
+ ldr r1, [r4, #0x3c]
+ ldr r0, _0223988C ; =0x00400318
+ cmp r1, r0
+ beq _022397F8
+_022397E6:
+ ldr r0, _02239880 ; =0x0223CAD4
+ ldr r3, [r0, #4]
+ cmp r3, #0
+ beq _02239860
+ ldr r0, _02239890 ; =0x0223B818
+ ldr r1, [r4, #0x3c]
+ ldr r2, _0223988C ; =0x00400318
+ blx r3
+ b _02239860
+_022397F8:
+ ldr r1, _02239880 ; =0x0223CAD4
+ ldrh r3, [r4, #0x12]
+ ldr r2, [r1]
+ ldr r0, _02239894 ; =0x0000116C
+ str r3, [r2, r0]
+ ldr r1, [r1]
+ sub r0, #0x14
+ ldrh r0, [r1, r0]
+ cmp r0, #2
+ bne _02239844
+ add r0, r4, #0
+ add r0, #0x48
+ bl MOD83_02239B00
+ ldr r2, _02239880 ; =0x0223CAD4
+ ldr r1, _02239898 ; =0x00001170
+ mov r0, #0
+_0223981A:
+ add r3, r4, r0
+ ldrb r5, [r3, #0xa]
+ ldr r3, [r2]
+ add r3, r3, r0
+ add r0, r0, #1
+ strb r5, [r3, r1]
+ cmp r0, #6
+ blt _0223981A
+ ldr r1, _02239880 ; =0x0223CAD4
+ ldr r0, _0223989C ; =0x00001176
+ ldr r3, [r1]
+ ldrh r2, [r3, r0]
+ sub r2, #0xf
+ strh r2, [r3, r0]
+ ldr r1, [r1]
+ add r0, r0, #6
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _02239844
+ mov r0, #1
+ blx r1
+_02239844:
+ add r4, #0x48
+ add r0, r4, #0
+ bl MOD83_02239B80
+ cmp r0, #0
+ beq _02239860
+ ldr r0, _02239880 ; =0x0223CAD4
+ mov r2, #4
+ ldr r1, [r0]
+ ldr r0, _022398A0 ; =0x00001158
+ strh r2, [r1, r0]
+ bl MOD83_02239A14
+ pop {r3, r4, r5, pc}
+_02239860:
+ bl MOD83_02239670
+ cmp r0, #0
+ bne _0223987E
+ mov r0, #9
+ bl MOD83_02239580
+ ldr r0, _02239880 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239884 ; =0x0000117C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _0223987E
+ mov r0, #4
+ blx r1
+_0223987E:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02239880: .word 0x0223CAD4
+_02239884: .word 0x0000117C
+_02239888: .word 0x00001150
+_0223988C: .word 0x00400318
+_02239890: .word 0x0223B818
+_02239894: .word 0x0000116C
+_02239898: .word 0x00001170
+_0223989C: .word 0x00001176
+_022398A0: .word 0x00001158
+ thumb_func_end MOD83_0223976C
+
+ thumb_func_start MOD83_022398A4
+MOD83_022398A4: ; 0x022398A4
+ push {r3, lr}
+ ldr r0, _022398BC ; =MOD83_022398C0
+ bl WM_EndScan
+ cmp r0, #2
+ beq _022398B8
+ bl MOD83_022395D0
+ mov r0, #0
+ pop {r3, pc}
+_022398B8:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_022398BC: .word MOD83_022398C0
+ thumb_func_end MOD83_022398A4
+
+ thumb_func_start MOD83_022398C0
+MOD83_022398C0: ; 0x022398C0
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _022398CE
+ bl MOD83_022395D0
+ pop {r3, pc}
+_022398CE:
+ mov r0, #1
+ bl MOD83_02239580
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022398C0
+
+ thumb_func_start MOD83_022398D8
+MOD83_022398D8: ; 0x022398D8
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _022398E8
+ mov r0, #0xa
+ bl MOD83_02239580
+ pop {r3, pc}
+_022398E8:
+ mov r0, #0
+ bl MOD83_02239580
+ ldr r0, _02239900 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239904 ; =0x0000117C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _022398FE
+ mov r0, #3
+ blx r1
+_022398FE:
+ pop {r3, pc}
+ .align 2, 0
+_02239900: .word 0x0223CAD4
+_02239904: .word 0x0000117C
+ thumb_func_end MOD83_022398D8
+
+ thumb_func_start MOD83_02239908
+MOD83_02239908: ; 0x02239908
+ push {r3, lr}
+ ldr r0, _02239924 ; =0x0223CAD4
+ mov r2, #0
+ ldr r1, [r0]
+ ldr r0, _02239928 ; =0x00001154
+ str r2, [r1, r0]
+ bl MOD83_02239954
+ cmp r0, #0
+ beq _02239920
+ mov r0, #1
+ pop {r3, pc}
+_02239920:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_02239924: .word 0x0223CAD4
+_02239928: .word 0x00001154
+ thumb_func_end MOD83_02239908
+
+ thumb_func_start MOD83_0223992C
+MOD83_0223992C: ; 0x0223992C
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #8
+ bne _0223994A
+ mov r0, #9
+ bl MOD83_02239580
+ ldr r0, _0223994C ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239950 ; =0x0000117C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _0223994A
+ mov r0, #4
+ blx r1
+_0223994A:
+ pop {r3, pc}
+ .align 2, 0
+_0223994C: .word 0x0223CAD4
+_02239950: .word 0x0000117C
+ thumb_func_end MOD83_0223992C
+
+ thumb_func_start MOD83_02239954
+MOD83_02239954: ; 0x02239954
+ push {r3, lr}
+ mov r0, #3
+ bl MOD83_02239580
+ ldr r0, _02239980 ; =0x0223CAD4
+ ldr r1, _02239984 ; =MOD83_02239988
+ ldr r0, [r0]
+ mov r2, #2
+ bl WM_Initialize
+ cmp r0, #2
+ beq _0223997A
+ bl MOD83_022395D0
+ mov r0, #0xa
+ bl MOD83_02239580
+ mov r0, #0
+ pop {r3, pc}
+_0223997A:
+ mov r0, #1
+ pop {r3, pc}
+ nop
+_02239980: .word 0x0223CAD4
+_02239984: .word MOD83_02239988
+ thumb_func_end MOD83_02239954
+
+ thumb_func_start MOD83_02239988
+MOD83_02239988: ; 0x02239988
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _0223999C
+ bl MOD83_022395D0
+ mov r0, #0xa
+ bl MOD83_02239580
+ pop {r3, pc}
+_0223999C:
+ ldr r0, _022399C0 ; =MOD83_0223992C
+ bl WM_SetIndCallback
+ cmp r0, #0
+ beq _022399B2
+ bl MOD83_022395D0
+ mov r0, #0xa
+ bl MOD83_02239580
+ pop {r3, pc}
+_022399B2:
+ mov r0, #1
+ bl MOD83_02239580
+ bl MOD83_022395EC
+ pop {r3, pc}
+ nop
+_022399C0: .word MOD83_0223992C
+ thumb_func_end MOD83_02239988
+
+ thumb_func_start MOD83_022399C4
+MOD83_022399C4: ; 0x022399C4
+ push {r3, lr}
+ ldr r0, _02239A04 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239A08 ; =0x00001150
+ ldr r0, [r1, r0]
+ cmp r0, #1
+ beq _022399D6
+ bl OS_Terminate
+_022399D6:
+ mov r0, #3
+ bl MOD83_02239580
+ ldr r0, _02239A0C ; =MOD83_022398D8
+ bl WM_End
+ cmp r0, #2
+ beq _02239A00
+ mov r0, #9
+ bl MOD83_02239580
+ ldr r0, _02239A04 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239A10 ; =0x0000117C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _022399FC
+ mov r0, #4
+ blx r1
+_022399FC:
+ mov r0, #0
+ pop {r3, pc}
+_02239A00:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_02239A04: .word 0x0223CAD4
+_02239A08: .word 0x00001150
+_02239A0C: .word MOD83_022398D8
+_02239A10: .word 0x0000117C
+ thumb_func_end MOD83_022399C4
+
+ thumb_func_start MOD83_02239A14
+MOD83_02239A14: ; 0x02239A14
+ push {r3, lr}
+ ldr r0, _02239A30 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239A34 ; =0x00001150
+ ldr r0, [r1, r0]
+ cmp r0, #1
+ bne _02239A28
+ bl MOD83_022399C4
+ pop {r3, pc}
+_02239A28:
+ bl MOD83_02239A38
+ pop {r3, pc}
+ nop
+_02239A30: .word 0x0223CAD4
+_02239A34: .word 0x00001150
+ thumb_func_end MOD83_02239A14
+
+ thumb_func_start MOD83_02239A38
+MOD83_02239A38: ; 0x02239A38
+ push {r3, lr}
+ mov r0, #3
+ bl MOD83_02239580
+ ldr r0, _02239A58 ; =MOD83_02239A5C
+ bl WM_Reset
+ cmp r0, #2
+ beq _02239A52
+ bl MOD83_022395D0
+ mov r0, #0
+ pop {r3, pc}
+_02239A52:
+ mov r0, #1
+ pop {r3, pc}
+ nop
+_02239A58: .word MOD83_02239A5C
+ thumb_func_end MOD83_02239A38
+
+ thumb_func_start MOD83_02239A5C
+MOD83_02239A5C: ; 0x02239A5C
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ beq _02239A84
+ mov r0, #9
+ bl MOD83_02239580
+ ldrh r0, [r4, #2]
+ bl MOD83_022395D0
+ ldr r0, _02239A90 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239A94 ; =0x0000117C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _02239A8E
+ mov r0, #4
+ blx r1
+ pop {r4, pc}
+_02239A84:
+ mov r0, #1
+ bl MOD83_02239580
+ bl MOD83_022399C4
+_02239A8E:
+ pop {r4, pc}
+ .align 2, 0
+_02239A90: .word 0x0223CAD4
+_02239A94: .word 0x0000117C
+ thumb_func_end MOD83_02239A5C
+
+ thumb_func_start MOD83_02239A98
+MOD83_02239A98: ; 0x02239A98
+ push {r3, r4, r5, r6, r7, lr}
+ add r3, r0, #0
+ add r2, #0x1f
+ mov r0, #0x1f
+ bic r2, r0
+ ldr r5, _02239AF4 ; =0x0223CAD4
+ ldr r4, _02239AF8 ; =0x00001150
+ str r2, [r5]
+ mov r0, #0
+ str r0, [r2, r4]
+ add r2, r4, #0
+ ldr r6, [r5]
+ mov r7, #1
+ add r2, #8
+ strh r7, [r6, r2]
+ add r2, r4, #0
+ ldr r6, [r5]
+ add r2, #0x28
+ str r3, [r6, r2]
+ add r2, r4, #0
+ ldr r3, [r5]
+ add r2, #0xc
+ strh r0, [r3, r2]
+ add r2, r4, #0
+ ldr r3, [r5]
+ add r2, #0xe
+ strh r0, [r3, r2]
+ add r2, r4, #0
+ ldr r3, [r5]
+ add r2, #0x2c
+ str r1, [r3, r2]
+ add r2, r4, #0
+ ldr r3, [r5]
+ mov r1, #0x10
+ add r2, #0x26
+ strh r1, [r3, r2]
+ ldr r3, [r5]
+ ldr r2, _02239AFC ; =0x00001048
+ sub r1, #0x11
+ str r0, [r3, r2]
+ ldr r0, [r5]
+ add r4, #0x1c
+ str r1, [r0, r4]
+ bl MOD83_02239908
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02239AF4: .word 0x0223CAD4
+_02239AF8: .word 0x00001150
+_02239AFC: .word 0x00001048
+ thumb_func_end MOD83_02239A98
+
+ thumb_func_start MOD83_02239B00
+MOD83_02239B00: ; 0x02239B00
+ push {r4, r5, r6, lr}
+ ldr r3, _02239B70 ; =0x0223CAD4
+ ldr r1, _02239B74 ; =0x00001048
+ ldr r2, [r3]
+ mov r4, #0
+ str r4, [r2, r1]
+ ldr r1, [r3]
+ ldr r2, _02239B78 ; =0x00001158
+ mov r4, #3
+ strh r4, [r1, r2]
+ ldrh r5, [r0]
+ ldr r4, [r3]
+ add r1, r2, #2
+ strh r5, [r4, r1]
+ ldr r4, [r0, #4]
+ add r0, r2, #0
+ ldr r1, [r3]
+ add r0, #8
+ str r4, [r1, r0]
+ ldr r4, [r3]
+ add r2, #8
+ ldr r0, [r4, r2]
+ mov r1, #0x68
+ sub r0, r0, #1
+ bl _u32_div_f
+ ldr r2, _02239B7C ; =0x0000115C
+ add r0, r0, #1
+ strh r0, [r4, r2]
+ ldr r4, _02239B70 ; =0x0223CAD4
+ mov r0, #0
+ ldr r3, [r4]
+ add r1, r2, #2
+ strh r0, [r3, r1]
+ add r1, r2, #0
+ ldr r3, [r4]
+ add r1, #8
+ str r0, [r3, r1]
+ ldr r1, [r4]
+ ldrh r2, [r1, r2]
+ cmp r2, #0
+ ble _02239B6C
+ mov r2, #0x46
+ lsl r2, r2, #6
+ add r3, r2, #0
+ add r6, r0, #0
+ sub r3, #0x24
+_02239B5E:
+ add r1, r1, r0
+ strb r6, [r1, r2]
+ ldr r1, [r4]
+ add r0, r0, #1
+ ldrh r5, [r1, r3]
+ cmp r0, r5
+ blt _02239B5E
+_02239B6C:
+ pop {r4, r5, r6, pc}
+ nop
+_02239B70: .word 0x0223CAD4
+_02239B74: .word 0x00001048
+_02239B78: .word 0x00001158
+_02239B7C: .word 0x0000115C
+ thumb_func_end MOD83_02239B00
+
+ thumb_func_start MOD83_02239B80
+MOD83_02239B80: ; 0x02239B80
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, _02239C9C ; =0x0223CAD4
+ ldrh r1, [r4]
+ ldr r3, [r0]
+ ldr r0, _02239CA0 ; =0x0000115A
+ ldrh r2, [r3, r0]
+ cmp r2, r1
+ bne _02239B9C
+ add r0, r0, #6
+ ldr r1, [r3, r0]
+ ldr r0, [r4, #4]
+ cmp r1, r0
+ beq _02239BC8
+_02239B9C:
+ ldr r0, _02239C9C ; =0x0223CAD4
+ ldr r3, [r0]
+ ldr r0, _02239CA4 ; =0x00001164
+ ldr r2, [r3, r0]
+ add r1, r2, #1
+ str r1, [r3, r0]
+ cmp r2, #0x10
+ blo _02239BC4
+ add r0, r4, #0
+ bl MOD83_02239B00
+ ldr r0, _02239C9C ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239CA8 ; =0x0000117C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _02239BC8
+ mov r0, #5
+ blx r1
+ b _02239BC8
+_02239BC4:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02239BC8:
+ ldrh r3, [r4, #2]
+ ldr r0, _02239CAC ; =0x0000FFFF
+ cmp r3, r0
+ bne _02239BF0
+ ldr r1, _02239C9C ; =0x0223CAD4
+ add r4, #8
+ ldr r2, [r1]
+ mov r1, #0xfe
+ lsl r1, r1, #4
+ add r1, r2, r1
+ add r0, r4, #0
+ mov r2, #0x68
+ bl MIi_CpuCopy32
+ ldr r0, _02239C9C ; =0x0223CAD4
+ mov r2, #1
+ ldr r1, [r0]
+ ldr r0, _02239CB0 ; =0x00001048
+ str r2, [r1, r0]
+ b _02239C98
+_02239BF0:
+ ldr r1, _02239C9C ; =0x0223CAD4
+ ldr r0, _02239CB4 ; =0x00001168
+ ldr r2, [r1]
+ str r3, [r2, r0]
+ ldr r3, [r1]
+ add r1, r0, #0
+ sub r1, #0xc
+ ldrh r2, [r4, #2]
+ ldrh r1, [r3, r1]
+ cmp r2, r1
+ blo _02239C18
+ add r0, #0x14
+ ldr r1, [r3, r0]
+ cmp r1, #0
+ beq _02239C12
+ mov r0, #4
+ blx r1
+_02239C12:
+ mov r0, #9
+ bl MOD83_02239580
+_02239C18:
+ ldr r0, _02239C9C ; =0x0223CAD4
+ mov r2, #0x46
+ ldr r1, [r0]
+ lsl r2, r2, #6
+ ldrh r3, [r4, #2]
+ add r5, r1, r2
+ ldrb r1, [r5, r3]
+ cmp r1, #0
+ bne _02239C98
+ mov r1, #1
+ strb r1, [r5, r3]
+ ldr r5, [r0]
+ add r0, r2, #0
+ sub r0, #0x24
+ ldrh r0, [r5, r0]
+ ldrh r1, [r4, #2]
+ sub r0, r0, #1
+ cmp r1, r0
+ bne _02239C5C
+ add r3, r1, #0
+ add r1, r2, #0
+ sub r1, #8
+ sub r2, #0x20
+ mov r0, #0x68
+ ldr r1, [r5, r1]
+ mul r3, r0
+ ldr r2, [r5, r2]
+ add r4, #8
+ add r0, r4, #0
+ add r1, r1, r3
+ sub r2, r2, r3
+ bl MIi_CpuCopy32
+ b _02239C70
+_02239C5C:
+ add r4, #8
+ sub r2, #8
+ add r0, r4, #0
+ ldr r4, [r5, r2]
+ mov r2, #0x68
+ add r3, r1, #0
+ mul r3, r2
+ add r1, r4, r3
+ bl MIi_CpuCopy32
+_02239C70:
+ ldr r1, _02239C9C ; =0x0223CAD4
+ ldr r0, _02239CB8 ; =0x0000115E
+ ldr r3, [r1]
+ ldrh r2, [r3, r0]
+ add r2, r2, #1
+ strh r2, [r3, r0]
+ ldr r3, [r1]
+ sub r1, r0, #2
+ ldrh r2, [r3, r0]
+ ldrh r1, [r3, r1]
+ cmp r2, r1
+ bne _02239C98
+ add r0, #0x1e
+ ldr r1, [r3, r0]
+ cmp r1, #0
+ beq _02239C94
+ mov r0, #2
+ blx r1
+_02239C94:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02239C98:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02239C9C: .word 0x0223CAD4
+_02239CA0: .word 0x0000115A
+_02239CA4: .word 0x00001164
+_02239CA8: .word 0x0000117C
+_02239CAC: .word 0x0000FFFF
+_02239CB0: .word 0x00001048
+_02239CB4: .word 0x00001168
+_02239CB8: .word 0x0000115E
+ thumb_func_end MOD83_02239B80
+
+ thumb_func_start MOD83_02239CBC
+MOD83_02239CBC: ; 0x02239CBC
+ push {r3, r4}
+ mov r2, #0
+ add r3, r2, #0
+ lsr r1, r1, #1
+ beq _02239CE4
+_02239CC6:
+ lsl r4, r3, #1
+ ldrh r4, [r0, r4]
+ add r3, r3, #1
+ lsl r3, r3, #0x10
+ add r2, r2, r4
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ lsl r4, r2, #1
+ asr r2, r2, #0xf
+ orr r2, r4
+ lsl r2, r2, #0x10
+ lsr r3, r3, #0x10
+ lsr r2, r2, #0x10
+ cmp r3, r1
+ blo _02239CC6
+_02239CE4:
+ add r0, r2, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_02239CBC
+
+ thumb_func_start MOD83_02239CEC
+MOD83_02239CEC: ; 0x02239CEC
+ push {r4, lr}
+ sub sp, #8
+ ldr r0, _02239D80 ; =0x0223CAD4
+ add r1, sp, #0
+ ldr r4, [r0]
+ ldr r0, _02239D84 ; =0x00001170
+ add r3, r4, r0
+ ldrh r2, [r3]
+ sub r0, #0x16
+ strh r2, [r1]
+ ldrh r2, [r3, #2]
+ strh r2, [r1, #6]
+ ldrh r2, [r3, #4]
+ add r3, sp, #0
+ strh r2, [r1, #4]
+ ldrh r0, [r4, r0]
+ ldr r2, _02239D88 ; =0x00003FA2
+ strh r0, [r1, #2]
+ mov r1, #0
+_02239D12:
+ ldrh r0, [r3]
+ add r1, r1, #1
+ eor r0, r2
+ strh r0, [r3]
+ ldrh r2, [r3]
+ add r3, r3, #2
+ cmp r1, #4
+ blt _02239D12
+ ldr r0, _02239D80 ; =0x0223CAD4
+ mov r2, #8
+ ldr r1, [r0]
+ ldr r0, _02239D8C ; =0x0000104C
+ add r0, r1, r0
+ add r1, sp, #0
+ bl FUN_0209521C
+ ldr r0, _02239D80 ; =0x0223CAD4
+ ldr r2, _02239D90 ; =0x00001178
+ ldr r3, [r0]
+ ldr r0, _02239D8C ; =0x0000104C
+ ldr r1, [r3, r2]
+ sub r2, #0x18
+ ldr r2, [r3, r2]
+ add r0, r3, r0
+ add r3, r1, #0
+ bl FUN_020952AC
+ ldr r1, _02239D80 ; =0x0223CAD4
+ ldr r2, _02239D8C ; =0x0000104C
+ ldr r1, [r1]
+ mov r0, #0
+ add r1, r1, r2
+ lsr r2, r2, #4
+ bl MIi_CpuClear32
+ ldr r0, _02239D80 ; =0x0223CAD4
+ ldr r1, _02239D90 ; =0x00001178
+ ldr r2, [r0]
+ ldr r0, [r2, r1]
+ sub r1, #0x18
+ ldr r1, [r2, r1]
+ bl MOD83_02239CBC
+ ldr r1, _02239D80 ; =0x0223CAD4
+ ldr r2, [r1]
+ ldr r1, _02239D94 ; =0x0000115A
+ ldrh r1, [r2, r1]
+ cmp r1, r0
+ bne _02239D7A
+ add sp, #8
+ mov r0, #1
+ pop {r4, pc}
+_02239D7A:
+ mov r0, #0
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_02239D80: .word 0x0223CAD4
+_02239D84: .word 0x00001170
+_02239D88: .word 0x00003FA2
+_02239D8C: .word 0x0000104C
+_02239D90: .word 0x00001178
+_02239D94: .word 0x0000115A
+ thumb_func_end MOD83_02239CEC
+
+ thumb_func_start MOD83_02239D98
+MOD83_02239D98: ; 0x02239D98
+ ldr r0, _02239D9C ; =0x000016A0
+ bx lr
+ .align 2, 0
+_02239D9C: .word 0x000016A0
+ thumb_func_end MOD83_02239D98
+
+ thumb_func_start MOD83_02239DA0
+MOD83_02239DA0: ; 0x02239DA0
+ ldr r0, _02239DB8 ; =0x0223CAD4
+ ldr r2, [r0]
+ ldr r0, _02239DBC ; =0x00001048
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ beq _02239DB2
+ sub r0, #0x68
+ add r0, r2, r0
+ bx lr
+_02239DB2:
+ mov r0, #0
+ bx lr
+ nop
+_02239DB8: .word 0x0223CAD4
+_02239DBC: .word 0x00001048
+ thumb_func_end MOD83_02239DA0
+
+ thumb_func_start MOD83_02239DC0
+MOD83_02239DC0: ; 0x02239DC0
+ push {r3, lr}
+ add r1, #0x24
+ mov r0, #0x1f
+ bic r1, r0
+ add r1, #0x20
+ mov r0, #0x56
+ bl FUN_02016998
+ add r2, r0, #0
+ add r2, #0x20
+ mov r1, #0x1f
+ bic r2, r1
+ sub r1, r2, #4
+ str r0, [r1]
+ add r0, r2, #0
+ pop {r3, pc}
+ thumb_func_end MOD83_02239DC0
+
+ thumb_func_start MOD83_02239DE0
+MOD83_02239DE0: ; 0x02239DE0
+ push {r3, lr}
+ cmp r1, #0
+ beq _02239DEE
+ sub r0, r1, #4
+ ldr r0, [r0]
+ bl FUN_02016A18
+_02239DEE:
+ pop {r3, pc}
+ thumb_func_end MOD83_02239DE0
+
+ thumb_func_start MOD83_02239DF0
+MOD83_02239DF0: ; 0x02239DF0
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ add r0, sp, #0
+ add r1, sp, #4
+ bl MOD04_021DD718
+ ldr r0, [sp]
+ neg r0, r0
+ bl MOD04_021D80E0
+ ldr r1, _02239E34 ; =0x00002610
+ str r0, [r4, r1]
+ ldr r0, [sp]
+ neg r2, r0
+ add r0, r1, #4
+ str r2, [r4, r0]
+ add r0, r1, #0
+ ldr r2, [sp, #4]
+ add r0, #8
+ str r2, [r4, r0]
+ sub r0, r1, #4
+ mov r2, #1
+ str r2, [r4, r0]
+ ldr r0, _02239E38 ; =0x0223CADC
+ mov r1, #0
+ str r1, [r0, #0xc]
+ add r0, r4, #0
+ bl MOD83_0222FA44
+ ldr r0, _02239E3C ; =0x0000100E
+ add sp, #8
+ pop {r4, pc}
+ nop
+_02239E34: .word 0x00002610
+_02239E38: .word 0x0223CADC
+_02239E3C: .word 0x0000100E
+ thumb_func_end MOD83_02239DF0
+
+ thumb_func_start MOD83_02239E40
+MOD83_02239E40: ; 0x02239E40
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02239E70 ; =0x00002618
+ ldr r0, [r4, r0]
+ cmp r0, #5
+ beq _02239E50
+ cmp r0, #6
+ bne _02239E5C
+_02239E50:
+ bl MOD04_021DDC1C
+ ldr r0, _02239E74 ; =0x0223CADC
+ mov r1, #1
+ str r1, [r0, #0xc]
+ b _02239E62
+_02239E5C:
+ ldr r0, _02239E74 ; =0x0223CADC
+ mov r1, #1
+ str r1, [r0, #0xc]
+_02239E62:
+ bl FUN_02033ED0
+ ldr r0, _02239E78 ; =0x0000260C
+ mov r1, #0
+ str r1, [r4, r0]
+ ldr r0, _02239E7C ; =0x0000100F
+ pop {r4, pc}
+ .align 2, 0
+_02239E70: .word 0x00002618
+_02239E74: .word 0x0223CADC
+_02239E78: .word 0x0000260C
+_02239E7C: .word 0x0000100F
+ thumb_func_end MOD83_02239E40
+
+ thumb_func_start MOD83_02239E80
+MOD83_02239E80: ; 0x02239E80
+ push {lr}
+ sub sp, #0x3c
+ bl MOD04_021DDC1C
+ cmp r0, #4
+ beq _02239E94
+ cmp r0, #7
+ beq _02239EA0
+ cmp r0, #8
+ b _02239EA0
+_02239E94:
+ add r0, sp, #0
+ bl MOD04_021DD9DC
+ add sp, #0x3c
+ mov r0, #1
+ pop {pc}
+_02239EA0:
+ mov r0, #0
+ add sp, #0x3c
+ pop {pc}
+ .align 2, 0
+ thumb_func_end MOD83_02239E80
+
+ thumb_func_start MOD83_02239EA8
+MOD83_02239EA8: ; 0x02239EA8
+ push {r3, r4}
+ ldr r3, _02239EBC ; =0x0223CADC
+ mov r4, #0
+ str r4, [r3]
+ ldr r3, _02239EC0 ; =0x000015F4
+ str r2, [r0, r3]
+ ldr r0, _02239EC4 ; =0x00001011
+ str r0, [r1]
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_02239EBC: .word 0x0223CADC
+_02239EC0: .word 0x000015F4
+_02239EC4: .word 0x00001011
+ thumb_func_end MOD83_02239EA8
+
+ thumb_func_start MOD83_02239EC8
+MOD83_02239EC8: ; 0x02239EC8
+ push {r3, r4, r5, lr}
+ ldr r4, _02239EE4 ; =0x0223CADC
+ mov r5, #0
+ str r5, [r4, #8]
+ str r1, [r4, #4]
+ ldr r1, _02239EE8 ; =0x000015F4
+ str r3, [r0, r1]
+ ldr r0, _02239EEC ; =0x00001012
+ str r0, [r2]
+ ldr r0, _02239EF0 ; =MOD83_02239F28
+ bl MOD04_021DE404
+ pop {r3, r4, r5, pc}
+ nop
+_02239EE4: .word 0x0223CADC
+_02239EE8: .word 0x000015F4
+_02239EEC: .word 0x00001012
+_02239EF0: .word MOD83_02239F28
+ thumb_func_end MOD83_02239EC8
+
+ thumb_func_start MOD83_02239EF4
+MOD83_02239EF4: ; 0x02239EF4
+ push {r3, lr}
+ cmp r1, #6
+ bhi _02239F1C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02239F06: ; jump table
+ .short _02239F1C - _02239F06 - 2 ; case 0
+ .short _02239F1C - _02239F06 - 2 ; case 1
+ .short _02239F1C - _02239F06 - 2 ; case 2
+ .short _02239F14 - _02239F06 - 2 ; case 3
+ .short _02239F1C - _02239F06 - 2 ; case 4
+ .short _02239F1C - _02239F06 - 2 ; case 5
+ .short _02239F1C - _02239F06 - 2 ; case 6
+_02239F14:
+ cmp r0, #1
+ bne _02239F1C
+ bl OS_Terminate
+_02239F1C:
+ ldr r0, _02239F24 ; =0x0223CADC
+ mov r1, #1
+ str r1, [r0]
+ pop {r3, pc}
+ .align 2, 0
+_02239F24: .word 0x0223CADC
+ thumb_func_end MOD83_02239EF4
+
+ thumb_func_start MOD83_02239F28
+MOD83_02239F28: ; 0x02239F28
+ ldr r0, _02239F30 ; =0x0223CADC
+ mov r1, #1
+ str r1, [r0, #8]
+ bx lr
+ .align 2, 0
+_02239F30: .word 0x0223CADC
+ thumb_func_end MOD83_02239F28
+
+ thumb_func_start MOD83_02239F34
+MOD83_02239F34: ; 0x02239F34
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl FUN_02006278
+ ldr r1, _0223A24C ; =0x0000260C
+ add r4, r0, #0
+ ldr r1, [r4, r1]
+ cmp r1, #1
+ bne _02239F4C
+ bl MOD83_02239E40
+ str r0, [r5]
+_02239F4C:
+ ldr r0, _0223A250 ; =0x00002620
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02239F62
+ blx r0
+ cmp r0, #1
+ bne _02239F62
+ add r0, r4, #0
+ bl MOD83_02239DF0
+ str r0, [r5]
+_02239F62:
+ mov r3, #1
+ ldr r0, [r5]
+ lsl r3, r3, #0xc
+ sub r0, r0, r3
+ cmp r0, #0x12
+ bls _02239F70
+ b _0223A342
+_02239F70:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02239F7C: ; jump table
+ .short _02239FA2 - _02239F7C - 2 ; case 0
+ .short _02239FB0 - _02239F7C - 2 ; case 1
+ .short _02239FCC - _02239F7C - 2 ; case 2
+ .short _02239FF4 - _02239F7C - 2 ; case 3
+ .short _0223A046 - _02239F7C - 2 ; case 4
+ .short _0223A05E - _02239F7C - 2 ; case 5
+ .short _0223A09A - _02239F7C - 2 ; case 6
+ .short _0223A0BE - _02239F7C - 2 ; case 7
+ .short _0223A0F2 - _02239F7C - 2 ; case 8
+ .short _0223A114 - _02239F7C - 2 ; case 9
+ .short _0223A14E - _02239F7C - 2 ; case 10
+ .short _0223A174 - _02239F7C - 2 ; case 11
+ .short _0223A1E8 - _02239F7C - 2 ; case 12
+ .short _0223A212 - _02239F7C - 2 ; case 13
+ .short _0223A342 - _02239F7C - 2 ; case 14
+ .short _0223A238 - _02239F7C - 2 ; case 15
+ .short _0223A2D4 - _02239F7C - 2 ; case 16
+ .short _0223A2F8 - _02239F7C - 2 ; case 17
+ .short _0223A31E - _02239F7C - 2 ; case 18
+_02239FA2:
+ bl FUN_0202E49C
+ bl FUN_02088858
+ ldr r0, _0223A254 ; =0x00001001
+ str r0, [r5]
+ b _0223A342
+_02239FB0:
+ bl FUN_0202E4C8
+ cmp r0, #0
+ beq _0223A092
+ ldr r0, _0223A258 ; =MOD83_02239DC0
+ ldr r1, _0223A25C ; =MOD83_02239DE0
+ bl MOD04_021DD968
+ ldr r0, [r4, #4]
+ bl FUN_02033310
+ ldr r0, _0223A260 ; =0x00001002
+ str r0, [r5]
+ b _0223A342
+_02239FCC:
+ ldr r0, _0223A264 ; =0x000015E4
+ mov r1, #2
+ add r0, r4, r0
+ mov r2, #1
+ mov r3, #0x14
+ bl MOD04_021DDEE0
+ mov r0, #2
+ bl MOD04_021DDE7C
+ bl MOD04_021DDDCC
+ bl FUN_02033E74
+ ldr r0, _0223A268 ; =0x00001003
+ mov r1, #0
+ str r0, [r5]
+ ldr r0, _0223A26C ; =0x0000261C
+ str r1, [r4, r0]
+ b _0223A342
+_02239FF4:
+ bl MOD04_021DDD7C
+ cmp r0, #0
+ bne _0223A002
+ bl MOD04_021DDCE8
+ b _0223A034
+_0223A002:
+ add r0, r4, #0
+ bl MOD83_02239E80
+ cmp r0, #1
+ bne _0223A02C
+ ldr r0, _0223A26C ; =0x0000261C
+ ldr r1, [r4, r0]
+ cmp r1, #1
+ bne _0223A020
+ ldr r0, _0223A270 ; =0x0223CADC
+ mov r1, #3
+ str r1, [r0, #4]
+ ldr r0, _0223A274 ; =0x0000100D
+ str r0, [r5]
+ b _0223A034
+_0223A020:
+ ldr r1, _0223A278 ; =0x021DD984
+ add r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _0223A27C ; =0x00001004
+ str r0, [r5]
+ b _0223A034
+_0223A02C:
+ add r0, r4, #0
+ bl MOD83_02239DF0
+ str r0, [r5]
+_0223A034:
+ ldr r0, _0223A280 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ beq _0223A092
+ ldr r0, _0223A26C ; =0x0000261C
+ mov r1, #1
+ str r1, [r4, r0]
+ b _0223A342
+_0223A046:
+ bl MOD04_021DE05C
+ cmp r0, #0
+ bne _0223A058
+ add r0, r4, #0
+ bl MOD83_02239DF0
+ str r0, [r5]
+ b _0223A342
+_0223A058:
+ ldr r0, _0223A284 ; =0x00001005
+ str r0, [r5]
+ b _0223A342
+_0223A05E:
+ bl MOD04_021DDF4C
+ cmp r0, #3
+ bne _0223A06C
+ ldr r0, _0223A288 ; =0x00001006
+ str r0, [r5]
+ b _0223A088
+_0223A06C:
+ cmp r0, #4
+ bne _0223A07A
+ add r0, r4, #0
+ bl MOD83_02239DF0
+ str r0, [r5]
+ b _0223A088
+_0223A07A:
+ cmp r0, #5
+ bne _0223A088
+ ldr r0, _0223A270 ; =0x0223CADC
+ mov r1, #3
+ str r1, [r0, #4]
+ ldr r0, _0223A274 ; =0x0000100D
+ str r0, [r5]
+_0223A088:
+ ldr r0, _0223A280 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ bne _0223A094
+_0223A092:
+ b _0223A342
+_0223A094:
+ bl MOD04_021DDF40
+ b _0223A342
+_0223A09A:
+ ldr r0, _0223A28C ; =MOD83_02239EF4
+ ldr r1, _0223A290 ; =0x0223B838
+ ldr r2, _0223A294 ; =0x0223B840
+ bl MOD04_021DE45C
+ cmp r0, #0
+ bne _0223A0B2
+ add r0, r4, #0
+ bl MOD83_02239DF0
+ str r0, [r5]
+ b _0223A342
+_0223A0B2:
+ ldr r2, _0223A298 ; =0x00001007
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD83_02239EA8
+ b _0223A342
+_0223A0BE:
+ ldr r0, _0223A26C ; =0x0000261C
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0223A0D4
+ add r0, r4, #0
+ mov r1, #3
+ add r2, r5, #0
+ add r3, #0xc
+ bl MOD83_02239EC8
+ b _0223A342
+_0223A0D4:
+ ldr r0, _0223A29C ; =0x0223B854
+ add r1, r0, #0
+ add r2, r0, #0
+ bl MOD04_021DE3D0
+ cmp r0, #0
+ bne _0223A0EC
+ add r0, r4, #0
+ bl MOD83_02239DF0
+ str r0, [r5]
+ b _0223A342
+_0223A0EC:
+ ldr r0, _0223A2A0 ; =0x00001008
+ str r0, [r5]
+ b _0223A342
+_0223A0F2:
+ ldr r0, _0223A2A4 ; =0x000015F8
+ add r0, r4, r0
+ bl MOD04_021DE3AC
+ cmp r0, #0
+ bne _0223A108
+ add r0, r4, #0
+ bl MOD83_02239DF0
+ str r0, [r5]
+ b _0223A342
+_0223A108:
+ ldr r2, _0223A2A8 ; =0x00001009
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD83_02239EA8
+ b _0223A342
+_0223A114:
+ ldr r0, _0223A2A4 ; =0x000015F8
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ beq _0223A12A
+ add r0, r4, #0
+ mov r1, #2
+ add r2, r5, #0
+ add r3, #0xd
+ bl MOD83_02239EC8
+ b _0223A342
+_0223A12A:
+ ldr r0, _0223A2AC ; =0x0223CAEC
+ mov r1, #0
+ mov r2, #0xa
+ bl MOD04_021DE364
+ cmp r0, #0
+ bne _0223A142
+ add r0, r4, #0
+ bl MOD83_02239DF0
+ str r0, [r5]
+ b _0223A342
+_0223A142:
+ ldr r2, _0223A2B0 ; =0x0000100A
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD83_02239EA8
+ b _0223A342
+_0223A14E:
+ ldr r1, _0223A2B4 ; =0x000015FC
+ ldr r0, _0223A2AC ; =0x0223CAEC
+ add r1, r4, r1
+ add r2, r3, #0
+ blx FUN_021DE330
+ cmp r0, #0
+ bne _0223A168
+ add r0, r4, #0
+ bl MOD83_02239DF0
+ str r0, [r5]
+ b _0223A342
+_0223A168:
+ ldr r0, _0223A2B8 ; =0x0000100B
+ mov r1, #0
+ str r0, [r5]
+ ldr r0, _0223A2BC ; =0x00002608
+ str r1, [r4, r0]
+ b _0223A342
+_0223A174:
+ ldr r0, _0223A270 ; =0x0223CADC
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0223A1C4
+ ldr r0, _0223A280 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ beq _0223A194
+ add r0, r4, #0
+ mov r1, #3
+ add r2, r5, #0
+ add r3, #0xc
+ bl MOD83_02239EC8
+ b _0223A342
+_0223A194:
+ mov r1, #0x26
+ lsl r1, r1, #8
+ add r0, r4, r1
+ add r1, r1, #4
+ add r1, r4, r1
+ bl MOD04_021DE2D0
+ cmp r0, #1
+ bne _0223A21A
+ mov r1, #0x26
+ lsl r1, r1, #8
+ ldr r2, [r4, r1]
+ add r1, r1, #4
+ mov r0, #0x64
+ ldr r1, [r4, r1]
+ mul r0, r2
+ bl _u32_div_f
+ ldr r1, _0223A2BC ; =0x00002608
+ ldr r2, [r4, r1]
+ cmp r2, r0
+ beq _0223A21A
+ str r0, [r4, r1]
+ b _0223A342
+_0223A1C4:
+ ldr r0, _0223A26C ; =0x0000261C
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0223A1DA
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r5, #0
+ add r3, #0xd
+ bl MOD83_02239EC8
+ b _0223A342
+_0223A1DA:
+ add r0, r4, #0
+ mov r1, #3
+ add r2, r5, #0
+ add r3, #0xd
+ bl MOD83_02239EC8
+ b _0223A342
+_0223A1E8:
+ bl MOD04_021DE308
+ cmp r0, #0
+ bne _0223A1F6
+ ldr r0, _0223A274 ; =0x0000100D
+ str r0, [r5]
+ b _0223A342
+_0223A1F6:
+ ldr r0, _0223A250 ; =0x00002620
+ mov r1, #0
+ str r1, [r4, r0]
+ bl FUN_02033ED0
+ bl FUN_02033364
+ bl FUN_02088868
+ bl FUN_0202E4F0
+ ldr r0, _0223A270 ; =0x0223CADC
+ ldr r0, [r0, #4]
+ pop {r3, r4, r5, pc}
+_0223A212:
+ bl MOD04_021DDB40
+ cmp r0, #1
+ beq _0223A21C
+_0223A21A:
+ b _0223A342
+_0223A21C:
+ ldr r0, _0223A250 ; =0x00002620
+ mov r1, #0
+ str r1, [r4, r0]
+ bl FUN_02033ED0
+ bl FUN_020332DC
+ bl FUN_02088868
+ bl FUN_0202E4F0
+ ldr r0, _0223A270 ; =0x0223CADC
+ ldr r0, [r0, #4]
+ pop {r3, r4, r5, pc}
+_0223A238:
+ ldr r0, _0223A270 ; =0x0223CADC
+ ldr r0, [r0, #0xc]
+ cmp r0, #1
+ beq _0223A242
+ b _0223A342
+_0223A242:
+ add r0, r4, #0
+ bl MOD83_022307B4
+ ldr r0, _0223A2C0 ; =0x00002618
+ b _0223A2C4
+ .align 2, 0
+_0223A24C: .word 0x0000260C
+_0223A250: .word 0x00002620
+_0223A254: .word 0x00001001
+_0223A258: .word MOD83_02239DC0
+_0223A25C: .word MOD83_02239DE0
+_0223A260: .word 0x00001002
+_0223A264: .word 0x000015E4
+_0223A268: .word 0x00001003
+_0223A26C: .word 0x0000261C
+_0223A270: .word 0x0223CADC
+_0223A274: .word 0x0000100D
+_0223A278: .word 0x021DD984
+_0223A27C: .word 0x00001004
+_0223A280: .word 0x021C48B8
+_0223A284: .word 0x00001005
+_0223A288: .word 0x00001006
+_0223A28C: .word MOD83_02239EF4
+_0223A290: .word 0x0223B838
+_0223A294: .word 0x0223B840
+_0223A298: .word 0x00001007
+_0223A29C: .word 0x0223B854
+_0223A2A0: .word 0x00001008
+_0223A2A4: .word 0x000015F8
+_0223A2A8: .word 0x00001009
+_0223A2AC: .word 0x0223CAEC
+_0223A2B0: .word 0x0000100A
+_0223A2B4: .word 0x000015FC
+_0223A2B8: .word 0x0000100B
+_0223A2BC: .word 0x00002608
+_0223A2C0: .word 0x00002618
+_0223A2C4:
+ ldr r0, [r4, r0]
+ cmp r0, #6
+ bne _0223A2CE
+ bl MOD04_021DDBBC
+_0223A2CE:
+ ldr r0, _0223A348 ; =0x00001010
+ str r0, [r5]
+ b _0223A342
+_0223A2D4:
+ ldr r0, _0223A34C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _0223A342
+ ldr r0, _0223A350 ; =0x00002620
+ mov r1, #0
+ str r1, [r4, r0]
+ bl MOD04_021DD6F0
+ bl FUN_020332DC
+ bl FUN_02088868
+ bl FUN_0202E4F0
+ mov r0, #4
+ pop {r3, r4, r5, pc}
+_0223A2F8:
+ ldr r0, _0223A354 ; =0x0223CADC
+ ldr r1, [r0]
+ cmp r1, #1
+ bne _0223A30C
+ mov r1, #0
+ str r1, [r0]
+ ldr r0, _0223A358 ; =0x000015F4
+ ldr r0, [r4, r0]
+ str r0, [r5]
+ b _0223A342
+_0223A30C:
+ ldr r0, _0223A34C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ beq _0223A342
+ ldr r0, _0223A35C ; =0x0000261C
+ mov r1, #1
+ str r1, [r4, r0]
+ b _0223A342
+_0223A31E:
+ ldr r0, _0223A354 ; =0x0223CADC
+ ldr r1, [r0, #8]
+ cmp r1, #1
+ bne _0223A332
+ mov r1, #0
+ str r1, [r0, #8]
+ ldr r0, _0223A358 ; =0x000015F4
+ ldr r0, [r4, r0]
+ str r0, [r5]
+ b _0223A342
+_0223A332:
+ ldr r0, _0223A34C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ beq _0223A342
+ ldr r0, _0223A35C ; =0x0000261C
+ mov r1, #1
+ str r1, [r4, r0]
+_0223A342:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0223A348: .word 0x00001010
+_0223A34C: .word 0x021C48B8
+_0223A350: .word 0x00002620
+_0223A354: .word 0x0223CADC
+_0223A358: .word 0x000015F4
+_0223A35C: .word 0x0000261C
+ thumb_func_end MOD83_02239F34
+
+ .section .rodata
+ ; 0x0223A360
+ .incbin "baserom.nds", 0x2FE3A0, 0x41C
+
+ .section .data
+ ; 0x0223A780
+ .incbin "baserom.nds", 0x2FE7C0, 0x10E0
+
+ .section .bss
+ ; 0x0223B860
+ .space 0x1980
diff --git a/arm9/undefined_syms.txt b/arm9/undefined_syms.txt
index bed39ecb..ab2eb871 100644
--- a/arm9/undefined_syms.txt
+++ b/arm9/undefined_syms.txt
@@ -1,33 +1,7 @@
// Overlay
+FUN_021DE330 = 0x021DE330;
FUN_021EB550 = 0x021EB550;
-FUN_0222DAEC = 0x0222DAEC;
-FUN_0222DD1C = 0x0222DD1C;
-FUN_0222DD38 = 0x0222DD38;
-FUN_0222E2BC = 0x0222E2BC;
-FUN_0222E360 = 0x0222E360;
-FUN_0222E3A0 = 0x0222E3A0;
-FUN_0222E7E8 = 0x0222E7E8;
-FUN_0222E874 = 0x0222E874;
-FUN_0222EC60 = 0x0222EC60;
-FUN_0222ED34 = 0x0222ED34;
-FUN_0222EDBC = 0x0222EDBC;
-FUN_0222F440 = 0x0222F440;
-FUN_0222F480 = 0x0222F480;
-FUN_0222F7E0 = 0x0222F7E0;
-FUN_022300E4 = 0x022300E4;
-FUN_02230F3C = 0x02230F3C;
-FUN_02230F70 = 0x02230F70;
-FUN_02230F80 = 0x02230F80;
-FUN_02213B08 = 0x02213B08;
-FUN_02213D80 = 0x02213D80;
-FUN_02213DBC = 0x02213DBC;
-FUN_02213E24 = 0x02213E24;
-FUN_022122E4 = 0x022122E4;
-FUN_02212308 = 0x02212308;
-FUN_022123A8 = 0x022123A8;
-FUN_02212474 = 0x02212474;
-FUN_02212480 = 0x02212480;
// Overlay