diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-05-13 15:41:48 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-05-13 15:41:48 -0400 |
commit | ae0127ffd1304e6ab91d74071e96fcb6b20d4e67 (patch) | |
tree | 3f2890a0debc784591b0693f8f76f063d577aa13 | |
parent | 15656cc5427b31e9304143dee74d32f8e7dcf100 (diff) |
Disassemble module 83
-rw-r--r-- | arm9/arm9.lcf | 25 | ||||
-rw-r--r-- | arm9/asm/secure.s | 9 | ||||
-rw-r--r-- | arm9/asm/unk_02046030.s | 36 | ||||
-rw-r--r-- | arm9/global.inc | 122 | ||||
-rw-r--r-- | arm9/modules/04/asm/arm_04.s | 8 | ||||
-rw-r--r-- | arm9/modules/69/asm/module_69.s | 2 | ||||
-rw-r--r-- | arm9/modules/82/asm/module_82.s | 30 | ||||
-rw-r--r-- | arm9/modules/83/asm/module_83.s | 26448 | ||||
-rw-r--r-- | arm9/undefined_syms.txt | 28 |
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 |