diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-05-12 16:28:23 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-05-12 16:28:23 -0400 |
commit | 6934e6086bc4c0ab5fcb9e1c278f72e7891db59f (patch) | |
tree | e88e52af1aeb5724b1f5ab8a158304187efba406 | |
parent | 4eca32d1306bfe48303309eb7a87484fc24c152b (diff) |
Disassemble module 62
-rw-r--r-- | arm9/arm9.lcf | 28 | ||||
-rw-r--r-- | arm9/global.inc | 12 | ||||
-rw-r--r-- | arm9/modules/62/asm/module_62.s | 7543 |
3 files changed, 7579 insertions, 4 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf index 42ea31f6..18126223 100644 --- a/arm9/arm9.lcf +++ b/arm9/arm9.lcf @@ -2479,12 +2479,23 @@ SECTIONS { SDK_OVERLAY.MODULE_61.BSS_SIZE = SDK_OVERLAY.MODULE_61.BSS_END - SDK_OVERLAY.MODULE_61.BSS_START; } >> MODULE_61 - .MODULE_62: { + .MODULE_62 : + { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY_MODULE_62_ID = 62; SDK_OVERLAY.MODULE_62.ID = 62; SDK_OVERLAY.MODULE_62.START = .; - FILE_2AEC00.o (.text) /* 0x2AAC00 */ + module_62.o (.text) + module_62.o (.rodata) + module_62.o (.init) + SDK_OVERLAY.MODULE_62.SINIT_START = .; + module_62.o (.ctor) + module_62.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_62.SINIT_END = .; + . = ALIGN(32); + module_62.o (.sdata) + module_62.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_62.END = .; SDK_OVERLAY.MODULE_62.SIZE = SDK_OVERLAY.MODULE_62.END - SDK_OVERLAY.MODULE_62.START; @@ -2494,7 +2505,8 @@ SECTIONS { { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_62.BSS_START = .; - FILE_2AEC00.o (.bss) + module_62.o (.bss) + module_62.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_62.BSS_END = .; SDK_OVERLAY.MODULE_62.BSS_SIZE = SDK_OVERLAY.MODULE_62.BSS_END - SDK_OVERLAY.MODULE_62.BSS_START; @@ -3687,7 +3699,15 @@ SECTIONS { WRITEW 61; WRITEW 0; - OVERLAY_TABLE(MODULE_62, 62) + WRITEW 62; + WRITEW ADDR(.MODULE_62); + WRITEW SDK_OVERLAY.MODULE_62.SIZE; + WRITEW SDK_OVERLAY.MODULE_62.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_62.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_62.SINIT_END; + WRITEW 62; + WRITEW 0; + OVERLAY_TABLE(MODULE_63, 63) OVERLAY_TABLE(MODULE_64, 64) OVERLAY_TABLE(MODULE_65, 65) diff --git a/arm9/global.inc b/arm9/global.inc index e874771d..c4fda40d 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -5588,6 +5588,18 @@ .extern FUN_0201CD38
.extern FUN_020294A8
.extern FUN_0202EEB0
+.extern MOD08_02217E80
+.extern MOD08_02217ECC
+.extern MOD08_02217F08
+.extern MOD08_0222A02C
+.extern FUN_0200C6D8
+.extern FUN_02029CA4
+.extern FUN_02029CF4
+.extern FUN_02029CF8
+.extern FUN_02029D40
+.extern FUN_02029D84
+.extern FUN_02085D9C
+.extern FUN_02085FAC
.extern FUN_02031370
.extern FUN_0200A064
.extern FUN_0200C918
diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s new file mode 100644 index 00000000..4623b0ae --- /dev/null +++ b/arm9/modules/62/asm/module_62.s @@ -0,0 +1,7543 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD62_0222D5C0 +MOD62_0222D5C0: ; 0x0222D5C0 + ldr r3, _0222D5C8 ; =HandleLoadOverlay + ldr r0, _0222D5CC ; =SDK_OVERLAY_MODULE_08_ID + mov r1, #2 + bx r3 + .align 2, 0 +_0222D5C8: .word HandleLoadOverlay +_0222D5CC: .word SDK_OVERLAY_MODULE_08_ID + thumb_func_end MOD62_0222D5C0 + + thumb_func_start MOD62_0222D5D0 +MOD62_0222D5D0: ; 0x0222D5D0 + add r3, r2, #0 + sub r3, #0xa + strb r3, [r0] + add r3, r1, #0 + sub r3, #0xa + strb r3, [r0, #2] + add r2, #0xa + strb r2, [r0, #1] + add r1, #0xa + strb r1, [r0, #3] + bx lr + .align 2, 0 + thumb_func_end MOD62_0222D5D0 + + thumb_func_start MOD62_0222D5E8 +MOD62_0222D5E8: ; 0x0222D5E8 + mov r1, #0 + strb r1, [r0] + strb r1, [r0, #2] + mov r1, #0xc0 + strb r1, [r0, #1] + mov r1, #0xff + strb r1, [r0, #3] + bx lr + thumb_func_end MOD62_0222D5E8 + + thumb_func_start MOD62_0222D5F8 +MOD62_0222D5F8: ; 0x0222D5F8 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + beq _0222D64C + cmp r2, #1 + bne _0222D628 + ldr r3, _0222D650 ; =0x021C48F8 + mov r1, #0x1c + mov r2, #0x1e + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, r4, #0 + bl FUN_0200C714 + add r1, sp, #0 + add r0, r4, #0 + add r1, #2 + add r2, sp, #0 + bl FUN_0200C7A0 + add r0, r5, #0 + bl MOD62_0222D5E8 + pop {r3, r4, r5, pc} +_0222D628: + add r1, sp, #0 + add r0, r4, #0 + add r1, #2 + add r2, sp, #0 + bl FUN_0200C7A0 + add r3, sp, #0 + mov r1, #2 + mov r2, #0 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, r5, #0 + lsl r1, r1, #0x18 + lsl r2, r2, #0x18 + lsr r1, r1, #0x18 + lsr r2, r2, #0x18 + bl MOD62_0222D5D0 +_0222D64C: + pop {r3, r4, r5, pc} + nop +_0222D650: .word 0x021C48F8 + thumb_func_end MOD62_0222D5F8 + + thumb_func_start MOD62_0222D654 +MOD62_0222D654: ; 0x0222D654 + push {r3, r4, r5, r6, r7, lr} + mov r4, #0 + add r7, r4, #0 + mov r6, #0xcb + add r5, r0, #0 + sub r7, #0x38 + lsl r6, r6, #2 +_0222D662: + ldr r0, [r5, r6] + cmp r0, #0 + beq _0222D670 + add r1, r7, #0 + mov r2, #0x10 + bl FUN_0200C82C +_0222D670: + add r4, r4, #1 + add r5, #0x10 + cmp r4, #8 + blt _0222D662 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD62_0222D654 + + thumb_func_start MOD62_0222D67C +MOD62_0222D67C: ; 0x0222D67C + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r0, #0xf1 + lsl r0, r0, #2 + ldr r0, [r7, r0] + mov r6, #0 + lsl r0, r0, #3 + add r0, r7, r0 + ldr r4, [r0, #8] + add r5, r7, #0 +_0222D690: + ldrb r1, [r4] + cmp r1, #0 + beq _0222D6CE + mov r0, #0xca + lsl r0, r0, #2 + strb r1, [r5, r0] + ldrb r1, [r4, #1] + add r0, r0, #1 + strb r1, [r5, r0] + ldrb r1, [r4, #2] + ldr r0, _0222D6E8 ; =0x0000032A + strb r1, [r5, r0] + lsl r1, r6, #0x18 + add r0, r7, #0 + lsr r1, r1, #0x18 + bl MOD62_0222D9A0 + mov r0, #0x33 + mov r1, #0xcb + lsl r0, r0, #4 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + mov r2, #0 + bl MOD62_0222D5F8 + mov r0, #0xc9 + mov r1, #1 + lsl r0, r0, #2 + str r1, [r5, r0] + b _0222D6DA +_0222D6CE: + mov r0, #0xc9 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] + add r0, r0, #4 + strb r1, [r5, r0] +_0222D6DA: + add r6, r6, #1 + add r4, r4, #3 + add r5, #0x10 + cmp r6, #8 + blt _0222D690 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222D6E8: .word 0x0000032A + thumb_func_end MOD62_0222D67C + + thumb_func_start MOD62_0222D6EC +MOD62_0222D6EC: ; 0x0222D6EC + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r6, r0, #0 + mov r0, #0xc9 + mov r4, #0 + add r3, r6, #0 + lsl r0, r0, #2 +_0222D6FA: + ldr r2, [r3, r0] + cmp r2, #1 + beq _0222D75C + add r0, r6, r1 + mov r1, #0x42 + lsl r1, r1, #4 + ldrb r3, [r0, r1] + lsl r5, r4, #4 + add r0, r1, #0 + add r2, r6, r5 + sub r0, #0xf8 + strb r3, [r2, r0] + add r0, r1, #0 + sub r0, #0xf7 + add r7, r6, r0 + mov r0, #0xbe + sub r1, #0xf6 + strb r0, [r7, r5] + add r0, r6, r1 + mov r1, #0x46 + strb r1, [r0, r5] + str r0, [sp] + add r0, sp, #8 + add r1, sp, #4 + bl FUN_02020AB0 + ldr r0, [sp, #8] + strb r0, [r7, r5] + ldr r1, [sp, #4] + ldr r0, [sp] + strb r1, [r0, r5] + lsl r1, r4, #0x18 + add r0, r6, #0 + lsr r1, r1, #0x18 + bl MOD62_0222D9A0 + lsl r1, r4, #0x18 + add r0, r6, #0 + lsr r1, r1, #0x18 + bl MOD62_0222D788 + mov r0, #0xc9 + mov r2, #1 + add r1, r6, r5 + lsl r0, r0, #2 + str r2, [r1, r0] + add sp, #0xc + add r0, r4, #0 + pop {r4, r5, r6, r7, pc} +_0222D75C: + add r4, r4, #1 + add r3, #0x10 + cmp r4, #8 + blt _0222D6FA + mov r0, #0xff + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD62_0222D6EC + + thumb_func_start MOD62_0222D76C +MOD62_0222D76C: ; 0x0222D76C + mov r1, #0xc9 + mov r3, #0 + lsl r1, r1, #2 +_0222D772: + ldr r2, [r0, r1] + cmp r2, #1 + beq _0222D77C + mov r0, #1 + bx lr +_0222D77C: + add r3, r3, #1 + add r0, #0x10 + cmp r3, #8 + blt _0222D772 + mov r0, #0 + bx lr + thumb_func_end MOD62_0222D76C + + thumb_func_start MOD62_0222D788 +MOD62_0222D788: ; 0x0222D788 + push {r3, r4, r5, r6, r7, lr} + mov r7, #0xc9 + add r5, r0, #0 + add r6, r1, #0 + mov r4, #0 + lsl r7, r7, #2 +_0222D794: + ldr r0, [r5, r7] + cmp r0, #1 + bne _0222D7D4 + cmp r4, r6 + bne _0222D7AC + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200C6C4 + b _0222D7D4 +_0222D7AC: + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_0200C6D8 + add r1, r0, #0 + bne _0222D7C8 + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r1, #1 + bl FUN_0200C6C4 + b _0222D7D4 +_0222D7C8: + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r1, #2 + bl FUN_0200C6C4 +_0222D7D4: + add r4, r4, #1 + add r5, #0x10 + cmp r4, #8 + blt _0222D794 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD62_0222D788 + + thumb_func_start MOD62_0222D7E0 +MOD62_0222D7E0: ; 0x0222D7E0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r7, r1, #0 + add r1, r0, #0 + add r1, #0xdc + ldr r4, [r1] + add r1, r0, #0 + add r1, #0xe0 + ldr r5, [r1] + mov r1, #0x5b + str r1, [sp] + add r1, #0xca + str r1, [sp, #4] + mov r1, #0 + str r1, [sp, #8] + mov r1, #1 + str r1, [sp, #0xc] + mov r1, #2 + str r1, [sp, #0x10] + ldr r1, _0222D864 ; =0x0000532D + add r6, r2, #0 + str r1, [sp, #0x14] + add r0, #0xe8 + ldr r0, [r0] + mov r1, #3 + add r2, r4, #0 + add r3, r5, #0 + bl FUN_0200C0DC + add r0, r7, #0 + bl FUN_02085FAC + add r3, r0, #0 + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _0222D868 ; =0x00004E20 + add r1, r5, #0 + add r0, r6, r0 + str r0, [sp, #8] + add r0, r4, #0 + mov r2, #0x5b + bl FUN_0200C00C + mov r0, #1 + str r0, [sp] + ldr r0, _0222D86C ; =0x0000564D + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x5b + mov r3, #0x5d + bl FUN_0200C124 + mov r3, #1 + ldr r0, _0222D870 ; =0x000059D9 + str r3, [sp] + str r0, [sp, #4] + add r0, r4, #0 + add r1, r5, #0 + mov r2, #0x5b + bl FUN_0200C13C + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222D864: .word 0x0000532D +_0222D868: .word 0x00004E20 +_0222D86C: .word 0x0000564D +_0222D870: .word 0x000059D9 + thumb_func_end MOD62_0222D7E0 + + thumb_func_start MOD62_0222D874 +MOD62_0222D874: ; 0x0222D874 + push {r4, r5, r6, r7, lr} + sub sp, #0x74 + mov r1, #0x26 + lsl r1, r1, #4 + str r0, [sp] + ldr r0, [r0, r1] + cmp r0, #0 + bne _0222D886 + b _0222D994 +_0222D886: + ldr r0, [sp] + mov r7, #0 + str r7, [r0, r1] + add r4, sp, #0x54 + add r5, sp, #0x34 + add r6, r0, #0 +_0222D892: + mov r0, #0xff + str r0, [r4] + str r0, [r5] + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r6, r0] + cmp r0, #0 + beq _0222D8AA + bl FUN_0200C6D8 + str r0, [r4] + str r7, [r5] +_0222D8AA: + add r7, r7, #1 + add r4, r4, #4 + add r5, r5, #4 + add r6, #0x10 + cmp r7, #8 + blt _0222D892 + mov r0, #0 + mov ip, r0 +_0222D8BA: + mov r0, ip + mov r3, #7 + cmp r0, #7 + bge _0222D8EA + add r4, sp, #0x70 + add r5, sp, #0x50 +_0222D8C6: + sub r7, r4, #4 + ldr r2, [r4] + ldr r0, [r7] + cmp r0, r2 + blt _0222D8DE + ldr r1, [r5] + sub r6, r5, #4 + str r0, [r4] + ldr r0, [r6] + str r0, [r5] + str r2, [r7] + str r1, [r6] +_0222D8DE: + sub r3, r3, #1 + mov r0, ip + sub r4, r4, #4 + sub r5, r5, #4 + cmp r3, r0 + bgt _0222D8C6 +_0222D8EA: + mov r0, ip + add r0, r0, #1 + mov ip, r0 + cmp r0, #7 + blt _0222D8BA + mov r3, #0xca + lsl r3, r3, #2 + ldr r0, [sp] + mov r2, #0 + add r1, sp, #0x1c + add r4, r3, #1 + add r5, r3, #2 +_0222D902: + ldrb r6, [r0, r3] + add r2, r2, #1 + strb r6, [r1] + ldrb r6, [r0, r4] + strb r6, [r1, #1] + ldrb r6, [r0, r5] + add r0, #0x10 + strb r6, [r1, #2] + add r1, r1, #3 + cmp r2, #8 + blt _0222D902 + add r3, sp, #0x1c + add r2, sp, #4 + mov r1, #0x18 +_0222D91E: + ldrb r0, [r3] + add r3, r3, #1 + strb r0, [r2] + add r2, r2, #1 + sub r1, r1, #1 + bne _0222D91E + ldr r5, [sp] + mov r6, #0 + add r4, sp, #0x34 + add r7, sp, #4 +_0222D932: + ldr r1, [r4] + cmp r1, #0xff + bne _0222D94A + mov r0, #0xca + mov r1, #0 + lsl r0, r0, #2 + strb r1, [r5, r0] + add r0, r0, #1 + strb r1, [r5, r0] + ldr r0, _0222D998 ; =0x0000032A + strb r1, [r5, r0] + b _0222D98A +_0222D94A: + lsl r0, r1, #1 + add r0, r1, r0 + ldrb r1, [r7, r0] + mov r0, #0xca + lsl r0, r0, #2 + strb r1, [r5, r0] + ldr r1, [r4] + lsl r0, r1, #1 + add r0, r1, r0 + add r0, r7, r0 + ldrb r1, [r0, #1] + ldr r0, _0222D99C ; =0x00000329 + strb r1, [r5, r0] + ldr r1, [r4] + lsl r0, r1, #1 + add r0, r1, r0 + add r0, r7, r0 + ldrb r1, [r0, #2] + ldr r0, _0222D998 ; =0x0000032A + strb r1, [r5, r0] + ldr r0, [r4] + lsl r1, r0, #4 + ldr r0, [sp] + add r1, r0, r1 + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r1, r0] + cmp r0, #0 + beq _0222D98A + add r1, r6, #0 + bl FUN_0200C6C4 +_0222D98A: + add r6, r6, #1 + add r4, r4, #4 + add r5, #0x10 + cmp r6, #8 + blt _0222D932 +_0222D994: + add sp, #0x74 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222D998: .word 0x0000032A +_0222D99C: .word 0x00000329 + thumb_func_end MOD62_0222D874 + + thumb_func_start MOD62_0222D9A0 +MOD62_0222D9A0: ; 0x0222D9A0 + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + add r5, r1, #0 + add r1, r0, #0 + add r1, #0xdc + ldr r7, [r1] + add r1, r0, #0 + add r1, #0xe0 + ldr r6, [r1] + mov r1, #0xc9 + lsl r1, r1, #2 + add r2, r0, r1 + lsl r1, r5, #4 + add r4, r2, r1 + ldr r1, [r2, r1] + cmp r1, #1 + bne _0222D9CC + bl ErrorHandling + add sp, #0x34 + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_0222D9CC: + ldrb r1, [r4, #4] + add r2, r5, #0 + bl MOD62_0222D7E0 + ldrb r1, [r4, #5] + add r0, sp, #0 + strh r1, [r0] + ldrb r1, [r4, #6] + strh r1, [r0, #2] + mov r1, #0 + strh r1, [r0, #4] + strh r1, [r0, #6] + mov r0, #2 + str r0, [sp, #0x10] + mov r0, #1 + str r0, [sp, #0x2c] + sub r0, r0, #2 + str r1, [sp, #0xc] + str r1, [sp, #0x30] + str r1, [sp, #8] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + ldrb r0, [r4, #4] + bl FUN_02085FAC + ldr r0, _0222DA28 ; =0x00004E20 + add r1, r6, #0 + add r0, r5, r0 + str r0, [sp, #0x14] + ldr r0, _0222DA2C ; =0x0000532D + add r2, sp, #0 + str r0, [sp, #0x18] + ldr r0, _0222DA30 ; =0x0000564D + str r0, [sp, #0x1c] + ldr r0, _0222DA34 ; =0x000059D9 + str r0, [sp, #0x20] + add r0, r7, #0 + bl FUN_0200C154 + str r0, [r4, #8] + bl FUN_0200C5A8 + mov r0, #1 + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + nop +_0222DA28: .word 0x00004E20 +_0222DA2C: .word 0x0000532D +_0222DA30: .word 0x0000564D +_0222DA34: .word 0x000059D9 + thumb_func_end MOD62_0222D9A0 + + thumb_func_start MOD62_0222DA38 +MOD62_0222DA38: ; 0x0222DA38 + push {r3, r4, r5, r6, r7, lr} + add r5, r2, #0 + add r6, r1, #0 + mov r1, #0xc9 + add r4, r0, #0 + lsl r7, r5, #4 + add r3, r4, r7 + lsl r1, r1, #2 + ldr r2, [r3, r1] + cmp r2, #0 + bne _0222DA52 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0222DA52: + cmp r6, #3 + bhi _0222DAE2 + add r2, r6, r6 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_0222DA62: ; jump table + .short _0222DA6A - _0222DA62 - 2 ; case 0 + .short _0222DAAA - _0222DA62 - 2 ; case 1 + .short _0222DA80 - _0222DA62 - 2 ; case 2 + .short _0222DAAA - _0222DA62 - 2 ; case 3 +_0222DA6A: + add r1, r4, #0 + add r1, #0xd4 + ldr r1, [r1] + cmp r1, #0xff + bne _0222DAE6 + add r4, #0xd4 + add r1, r5, #0 + str r5, [r4] + bl MOD62_0222D788 + b _0222DAE6 +_0222DA80: + add r0, #0xd4 + ldr r0, [r0] + cmp r0, r5 + bne _0222DAE6 + add r0, r1, #0 + add r0, #0xc + add r1, #8 + ldr r0, [r3, r0] + ldr r1, [r3, r1] + mov r2, #1 + bl MOD62_0222D5F8 + add r0, r4, #0 + add r1, r5, #0 + bl MOD62_0222DBCC + add r0, r4, #0 + add r1, r5, #0 + bl MOD62_0222DC48 + b _0222DAE6 +_0222DAAA: + add r1, r4, #0 + add r1, #0xd4 + ldr r1, [r1] + cmp r1, #0xff + bne _0222DAE6 + add r1, r5, #0 + bl MOD62_0222DB38 + mov r1, #0x33 + add r2, r4, r7 + lsl r1, r1, #4 + add r6, r0, #0 + ldr r0, [r2, r1] + sub r1, r1, #4 + ldr r1, [r2, r1] + mov r2, #0 + bl MOD62_0222D5F8 + cmp r6, #0 + bne _0222DADA + add r0, r4, #0 + add r1, r5, #0 + bl MOD62_0222DB78 +_0222DADA: + mov r0, #0xff + add r4, #0xd4 + str r0, [r4] + b _0222DAE6 +_0222DAE2: + bl ErrorHandling +_0222DAE6: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD62_0222DA38 + + thumb_func_start MOD62_0222DAEC +MOD62_0222DAEC: ; 0x0222DAEC + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r7, #0xc9 + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #2 +_0222DAF8: + ldr r0, [r5, r7] + cmp r0, #1 + bne _0222DB06 + add r0, r6, #0 + add r1, r4, #0 + bl MOD62_0222DB78 +_0222DB06: + add r4, r4, #1 + add r5, #0x10 + cmp r4, #8 + blt _0222DAF8 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222DAEC + + thumb_func_start MOD62_0222DB10 +MOD62_0222DB10: ; 0x0222DB10 + push {r3, r4, r5, r6, r7, lr} + mov r7, #0xc9 + add r5, r0, #0 + add r6, r1, #0 + mov r4, #0 + lsl r7, r7, #2 +_0222DB1C: + ldr r0, [r5, r7] + cmp r0, #1 + bne _0222DB2E + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r6, #0 + bl FUN_0200C644 +_0222DB2E: + add r4, r4, #1 + add r5, #0x10 + cmp r4, #8 + blt _0222DB1C + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222DB10 + + thumb_func_start MOD62_0222DB38 +MOD62_0222DB38: ; 0x0222DB38 + push {r3, lr} + lsl r1, r1, #4 + add r2, r0, r1 + mov r0, #0xc9 + lsl r0, r0, #2 + ldr r1, [r2, r0] + cmp r1, #0 + bne _0222DB4C + mov r0, #1 + pop {r3, pc} +_0222DB4C: + add r0, #8 + ldr r0, [r2, r0] + add r1, sp, #0 + add r1, #2 + add r2, sp, #0 + bl FUN_0200C7A0 + add r2, sp, #0 + mov r0, #2 + mov r1, #0 + ldrsh r0, [r2, r0] + ldrsh r1, [r2, r1] + mov r2, #0xbe + mov r3, #0x46 + bl MOD08_0222A02C + cmp r0, #0x3c + bgt _0222DB74 + mov r0, #1 + pop {r3, pc} +_0222DB74: + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD62_0222DB38 + + thumb_func_start MOD62_0222DB78 +MOD62_0222DB78: ; 0x0222DB78 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + mov r0, #0xca + add r7, r1, #0 + lsl r0, r0, #2 + lsl r4, r7, #4 + add r6, r5, r0 + ldrb r0, [r6, r4] + bl FUN_02085FAC + add r0, r5, #0 + add r0, #0xe0 + ldr r1, _0222DBC8 ; =0x00004E20 + ldr r0, [r0] + add r1, r7, r1 + bl FUN_0200C358 + mov r0, #0xcb + lsl r0, r0, #2 + add r7, r5, r0 + ldr r0, [r7, r4] + bl FUN_0200C3DC + mov r1, #0 + mov r2, #0xc9 + lsl r2, r2, #2 + str r1, [r7, r4] + add r3, r5, r4 + str r1, [r3, r2] + strb r1, [r6, r4] + add r0, r2, #5 + strb r1, [r3, r0] + add r0, r2, #6 + add r2, #0xc + strb r1, [r3, r0] + ldr r0, [r3, r2] + add r2, r1, #0 + bl MOD62_0222D5D0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222DBC8: .word 0x00004E20 + thumb_func_end MOD62_0222DB78 + + thumb_func_start MOD62_0222DBCC +MOD62_0222DBCC: ; 0x0222DBCC + push {r3, r4, r5, lr} + add r4, r0, #0 + add r5, r1, #0 + bl MOD62_0222DB38 + cmp r0, #0 + bne _0222DBEC + lsl r0, r5, #4 + add r1, r4, r0 + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r1, r0] + mov r1, #1 + bl FUN_0200C90C + pop {r3, r4, r5, pc} +_0222DBEC: + lsl r0, r5, #4 + add r1, r4, r0 + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r1, r0] + mov r1, #0 + bl FUN_0200C90C + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD62_0222DBCC + + thumb_func_start MOD62_0222DC00 +MOD62_0222DC00: ; 0x0222DC00 + push {r4, r5, r6, r7} + mov r2, #0xf1 + lsl r2, r2, #2 + ldr r2, [r0, r2] + ldr r4, _0222DC44 ; =0x00000329 + lsl r2, r2, #3 + add r2, r0, r2 + ldr r2, [r2, #8] + mov r1, #0 + add r3, r4, #1 + sub r5, r4, #1 +_0222DC16: + ldrb r7, [r0, r5] + ldrb r6, [r2] + cmp r7, r6 + bne _0222DC2E + ldrb r7, [r0, r4] + ldrb r6, [r2, #1] + cmp r7, r6 + bne _0222DC2E + ldrb r7, [r0, r3] + ldrb r6, [r2, #2] + cmp r7, r6 + beq _0222DC34 +_0222DC2E: + mov r0, #1 + pop {r4, r5, r6, r7} + bx lr +_0222DC34: + add r1, r1, #1 + add r2, r2, #3 + add r0, #0x10 + cmp r1, #8 + blt _0222DC16 + mov r0, #0 + pop {r4, r5, r6, r7} + bx lr + .align 2, 0 +_0222DC44: .word 0x00000329 + thumb_func_end MOD62_0222DC00 + + thumb_func_start MOD62_0222DC48 +MOD62_0222DC48: ; 0x0222DC48 + push {r3, r4, r5, lr} + add r5, r0, #0 + lsl r4, r1, #4 + mov r0, #0xcb + add r1, r5, r4 + lsl r0, r0, #2 + ldr r0, [r1, r0] + add r1, sp, #0 + add r1, #2 + add r2, sp, #0 + bl FUN_0200C7A0 + add r2, sp, #0 + mov r0, #2 + ldrsh r1, [r2, r0] + ldr r0, _0222DC78 ; =0x00000329 + add r3, r5, r4 + strb r1, [r3, r0] + mov r1, #0 + ldrsh r1, [r2, r1] + add r0, r0, #1 + strb r1, [r3, r0] + pop {r3, r4, r5, pc} + nop +_0222DC78: .word 0x00000329 + thumb_func_end MOD62_0222DC48 + + thumb_func_start MOD62_0222DC7C +MOD62_0222DC7C: ; 0x0222DC7C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + mov r3, #0xca + add r7, r0, #0 + lsl r3, r3, #2 + mov r0, #0 + add r1, r7, #0 + add r2, sp, #0 + add r4, r3, #1 + add r5, r3, #2 +_0222DC90: + ldrb r6, [r1, r3] + add r0, r0, #1 + strb r6, [r2] + ldrb r6, [r1, r4] + strb r6, [r2, #1] + ldrb r6, [r1, r5] + add r1, #0x10 + strb r6, [r2, #2] + add r2, r2, #3 + cmp r0, #8 + blt _0222DC90 + ldr r0, [r7] + mov r2, #0xf1 + lsl r2, r2, #2 + ldr r0, [r0, #0x20] + ldr r2, [r7, r2] + add r1, sp, #0 + bl FUN_02029CA4 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD62_0222DC7C + + thumb_func_start MOD62_0222DCBC +MOD62_0222DCBC: ; 0x0222DCBC + push {r3, r4, r5, r6} + mov r3, #0xca + lsl r3, r3, #2 + mov r2, #0 + add r4, r3, #1 + add r5, r3, #2 +_0222DCC8: + ldrb r6, [r1, r3] + add r2, r2, #1 + strb r6, [r0] + ldrb r6, [r1, r4] + strb r6, [r0, #1] + ldrb r6, [r1, r5] + add r1, #0x10 + strb r6, [r0, #2] + add r0, r0, #3 + cmp r2, #8 + blt _0222DCC8 + pop {r3, r4, r5, r6} + bx lr + .align 2, 0 + thumb_func_end MOD62_0222DCBC + + thumb_func_start MOD62_0222DCE4 +MOD62_0222DCE4: ; 0x0222DCE4 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + add r0, r1, #0 + add r1, sp, #0 + add r4, r2, #0 + add r1, #2 + add r2, sp, #0 + add r6, r3, #0 + bl FUN_0200C7A0 + add r1, sp, #0 + mov r0, #0 + ldrsh r2, [r1, r0] + sub r2, r2, r6 + strb r2, [r5] + ldrsh r0, [r1, r0] + add r0, r0, r6 + strb r0, [r5, #1] + mov r0, #2 + ldrsh r2, [r1, r0] + sub r2, r2, r4 + strb r2, [r5, #2] + ldrsh r0, [r1, r0] + add r0, r0, r4 + strb r0, [r5, #3] + add sp, #4 + pop {r3, r4, r5, r6, pc} + thumb_func_end MOD62_0222DCE4 + + thumb_func_start MOD62_0222DD1C +MOD62_0222DD1C: ; 0x0222DD1C + push {r4, lr} + add r4, r0, #0 + mov r0, #2 + mov r1, #0x35 + bl FUN_02011744 + mov r1, #0x8d + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #2 + mov r1, #0x35 + bl FUN_02002C50 + pop {r4, pc} + thumb_func_end MOD62_0222DD1C + + thumb_func_start MOD62_0222DD38 +MOD62_0222DD38: ; 0x0222DD38 + push {r4, lr} + add r4, r0, #0 + mov r0, #2 + bl FUN_02002CF8 + mov r0, #0x8e + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02011870 + mov r0, #9 + lsl r0, r0, #6 + add r0, r4, r0 + bl FUN_0201D5E8 + mov r0, #0x8f + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02011870 + mov r0, #0x93 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_0201D5E8 + mov r0, #0x8d + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_020117BC + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD62_0222DD38 + + thumb_func_start MOD62_0222DD78 +MOD62_0222DD78: ; 0x0222DD78 + push {r3, lr} + sub sp, #0x18 + add r3, r0, #0 + mov r0, #0xe + str r0, [sp] + mov r0, #7 + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + mov r0, #1 + str r0, [sp, #0xc] + mov r0, #2 + str r0, [sp, #0x10] + ldr r0, _0222DDB0 ; =0x00007530 + add r2, r3, #0 + str r0, [sp, #0x14] + add r0, r3, #0 + add r0, #0xe8 + add r2, #0xdc + add r3, #0xe0 + ldr r0, [r0] + ldr r2, [r2] + ldr r3, [r3] + mov r1, #3 + bl FUN_0200C0DC + add sp, #0x18 + pop {r3, pc} + .align 2, 0 +_0222DDB0: .word 0x00007530 + thumb_func_end MOD62_0222DD78 + + thumb_func_start MOD62_0222DDB4 +MOD62_0222DDB4: ; 0x0222DDB4 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + bl MOD62_0222DD78 + mov r1, #0 + add r0, r4, #0 + mov r2, #0x4e + mov r3, #0xa5 + str r1, [sp] + bl MOD62_0222DE00 + mov r0, #0 + str r0, [sp] + add r0, r4, #0 + mov r1, #1 + mov r2, #0xac + mov r3, #0xa5 + bl MOD62_0222DE00 + add sp, #4 + pop {r3, r4, pc} + thumb_func_end MOD62_0222DDB4 + + thumb_func_start MOD62_0222DDE0 +MOD62_0222DDE0: ; 0x0222DDE0 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x8e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + bl FUN_020119D0 + mov r0, #0x8f + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_020119D0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD62_0222DDE0 + + thumb_func_start MOD62_0222DE00 +MOD62_0222DE00: ; 0x0222DE00 + push {r4, r5, r6, r7, lr} + sub sp, #0x5c + add r5, r0, #0 + add r4, r1, #0 + str r2, [sp, #0x10] + add r7, r3, #0 + mov r0, #0 + mov r1, #0x1a + mov r2, #8 + mov r3, #0x35 + bl FUN_0200A86C + add r1, r4, #5 + str r0, [sp, #0x14] + bl FUN_0200A914 + str r0, [sp, #0x18] + add r0, sp, #0x1c + bl FUN_0201901C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xe4 + ldr r0, [r0] + add r1, sp, #0x1c + mov r2, #0xa + mov r3, #2 + bl FUN_020190EC + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _0222DEF0 ; =0x000F0D02 + ldr r2, [sp, #0x18] + str r0, [sp, #8] + add r0, sp, #0x1c + mov r1, #2 + str r3, [sp, #0xc] + bl FUN_0201BDE0 + add r0, sp, #0x1c + mov r1, #2 + mov r2, #0x35 + bl FUN_02011898 + mov r3, #9 + lsl r3, r3, #6 + mov r1, #0xc + add r6, r4, #0 + mul r6, r1 + add r3, r5, r3 + mov r1, #1 + mov r2, #2 + add r3, r3, r6 + bl FUN_0201D568 + mov r0, #0x8d + lsl r0, r0, #2 + ldr r0, [r5, r0] + str r0, [sp, #0x2c] + add r0, sp, #0x1c + str r0, [sp, #0x30] + add r0, r5, #0 + add r0, #0xe0 + ldr r0, [r0] + bl FUN_0200CA40 + str r0, [sp, #0x34] + add r0, r5, #0 + add r0, #0xe0 + ldr r0, [r0] + ldr r1, _0222DEF4 ; =0x00007530 + bl FUN_0200C334 + str r0, [sp, #0x38] + mov r0, #0 + mov r1, #0x91 + str r0, [sp, #0x3c] + add r0, r5, r6 + lsl r1, r1, #2 + ldr r0, [r0, r1] + str r0, [sp, #0x40] + ldr r0, [sp, #0x10] + add r7, #0xc0 + str r0, [sp, #0x44] + mov r0, #1 + str r0, [sp, #0x4c] + mov r0, #0x28 + str r0, [sp, #0x50] + mov r0, #2 + str r0, [sp, #0x54] + mov r0, #0x35 + sub r1, #0xc + str r0, [sp, #0x58] + str r7, [sp, #0x48] + add r5, r5, r1 + lsl r4, r4, #2 + add r0, sp, #0x2c + bl FUN_020117E8 + str r0, [r5, r4] + ldr r0, [r5, r4] + ldr r1, [sp, #0x70] + bl FUN_02011AC0 + ldr r0, [sp, #0x18] + bl FUN_02021A20 + ldr r0, [sp, #0x14] + bl FUN_0200A8B8 + add r0, sp, #0x1c + bl FUN_02019178 + add sp, #0x5c + pop {r4, r5, r6, r7, pc} + nop +_0222DEF0: .word 0x000F0D02 +_0222DEF4: .word 0x00007530 + thumb_func_end MOD62_0222DE00 + + thumb_func_start MOD62_0222DEF8 +MOD62_0222DEF8: ; 0x0222DEF8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + mov r6, #0 + add r5, r0, #0 + mov r0, #0x42 + add r3, r1, #0 + add r7, r6, #0 + add r2, r6, #0 + add r4, r6, #0 + lsl r0, r0, #4 +_0222DF0C: + add r1, r5, r2 + add r2, r2, #1 + strb r4, [r1, r0] + cmp r2, #8 + blt _0222DF0C + lsl r0, r3, #3 + str r0, [sp, #4] + add r0, r5, #0 + str r0, [sp] + add r0, #0x68 + str r0, [sp] +_0222DF22: + ldr r0, [sp] + add r1, r4, #0 + bl FUN_02029CF8 + add r1, r5, r4 + add r1, #0x80 + ldrb r1, [r1] + cmp r1, #0 + bne _0222DF38 + cmp r0, #1 + bne _0222DF50 +_0222DF38: + ldr r0, [sp, #4] + add r7, r7, #1 + cmp r7, r0 + ble _0222DF50 + mov r0, #0x42 + add r1, r5, r6 + add r2, r4, #1 + lsl r0, r0, #4 + add r6, r6, #1 + strb r2, [r1, r0] + cmp r6, #8 + bge _0222DF56 +_0222DF50: + add r4, r4, #1 + cmp r4, #0x51 + blt _0222DF22 +_0222DF56: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD62_0222DEF8 + + thumb_func_start MOD62_0222DF5C +MOD62_0222DF5C: ; 0x0222DF5C + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r7, r0, #0 + add r0, #0xdc + ldr r6, [r0] + add r0, r7, #0 + add r0, #0xe0 + ldr r5, [r0] + add r0, r7, #0 + add r0, #0xe8 + ldr r0, [r0] + mov r4, #0 + str r0, [sp, #0x18] +_0222DF76: + mov r0, #0x42 + add r1, r7, r4 + lsl r0, r0, #4 + ldrb r0, [r1, r0] + bl FUN_02085FAC + add r3, r0, #0 + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _0222DFF4 ; =0x000061A8 + add r1, r5, #0 + add r0, r4, r0 + str r0, [sp, #8] + add r0, r6, #0 + mov r2, #0x5b + bl FUN_0200C00C + add r4, r4, #1 + cmp r4, #8 + blt _0222DF76 + mov r0, #0x5b + str r0, [sp] + add r0, #0xca + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + mov r0, #1 + str r0, [sp, #0xc] + mov r0, #2 + str r0, [sp, #0x10] + ldr r0, _0222DFF8 ; =0x000066B4 + mov r1, #3 + str r0, [sp, #0x14] + ldr r0, [sp, #0x18] + add r2, r6, #0 + add r3, r5, #0 + bl FUN_0200C0DC + mov r0, #1 + str r0, [sp] + ldr r0, _0222DFFC ; =0x00006A2C + add r1, r5, #0 + str r0, [sp, #4] + add r0, r6, #0 + mov r2, #0x5b + mov r3, #0xb4 + bl FUN_0200C124 + mov r0, #1 + str r0, [sp] + ldr r0, _0222E000 ; =0x00006DB8 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r6, #0 + mov r2, #0x5b + mov r3, #0x58 + bl FUN_0200C13C + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_0222DFF4: .word 0x000061A8 +_0222DFF8: .word 0x000066B4 +_0222DFFC: .word 0x00006A2C +_0222E000: .word 0x00006DB8 + thumb_func_end MOD62_0222DF5C + + thumb_func_start MOD62_0222E004 +MOD62_0222E004: ; 0x0222E004 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x58 + add r5, r0, #0 + add r0, #0xdc + ldr r0, [r0] + mov r4, #0 + str r0, [sp] + add r0, r5, #0 + add r0, #0xe0 + ldr r7, [r0] + add r0, sp, #4 + strh r4, [r0, #0x20] + strh r4, [r0, #0x22] + strh r4, [r0, #0x24] + strh r4, [r0, #0x26] + mov r0, #0x3c + str r0, [sp, #0x2c] + mov r0, #2 + str r0, [sp, #0x34] + mov r0, #1 + str r0, [sp, #0x50] + sub r0, r0, #2 + str r0, [sp, #0x48] + str r0, [sp, #0x4c] + ldr r0, _0222E0B4 ; =0x000066B4 + str r4, [sp, #0x54] + str r0, [sp, #0x3c] + ldr r0, _0222E0B8 ; =0x00006A2C + str r4, [sp, #0x30] + str r0, [sp, #0x40] + ldr r0, _0222E0BC ; =0x00006DB8 + str r0, [sp, #0x44] + mov r0, #0xf9 + lsl r0, r0, #2 + add r6, r5, r0 +_0222E04A: + ldr r0, _0222E0C0 ; =0x000061A8 + add r1, r7, #0 + add r0, r4, r0 + str r0, [sp, #0x38] + ldr r0, [sp] + add r2, sp, #0x24 + bl FUN_0200C154 + add r4, r4, #1 + stmia r6!, {r0} + cmp r4, #8 + blt _0222E04A + ldr r3, _0222E0C4 ; =0x02231158 + add r2, sp, #4 + mov r1, #0x10 +_0222E068: + ldrh r0, [r3] + add r3, r3, #2 + strh r0, [r2] + add r2, r2, #2 + sub r1, r1, #1 + bne _0222E068 + mov r7, #0xf9 + mov r6, #0 + add r4, sp, #4 + lsl r7, r7, #2 +_0222E07C: + mov r2, #2 + ldrsh r2, [r4, r2] + mov r0, #0xf9 + mov r1, #0 + lsl r0, r0, #2 + sub r2, r2, #1 + lsl r2, r2, #0x10 + ldrsh r1, [r4, r1] + ldr r0, [r5, r0] + asr r2, r2, #0x10 + bl FUN_0200C714 + mov r0, #0xf9 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_0200C5A8 + ldr r0, [r5, r7] + mov r1, #0 + bl FUN_0200C61C + add r6, r6, #1 + add r4, r4, #4 + add r5, r5, #4 + cmp r6, #8 + blt _0222E07C + add sp, #0x58 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222E0B4: .word 0x000066B4 +_0222E0B8: .word 0x00006A2C +_0222E0BC: .word 0x00006DB8 +_0222E0C0: .word 0x000061A8 +_0222E0C4: .word 0x02231158 + thumb_func_end MOD62_0222E004 + + thumb_func_start MOD62_0222E0C8 +MOD62_0222E0C8: ; 0x0222E0C8 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r7, #0xf9 + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #2 +_0222E0D4: + add r0, r6, #0 + add r0, #0xe0 + ldr r1, _0222E0F4 ; =0x000061A8 + ldr r0, [r0] + add r1, r4, r1 + bl FUN_0200C358 + ldr r0, [r5, r7] + bl FUN_0200C3DC + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #8 + blt _0222E0D4 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222E0F4: .word 0x000061A8 + thumb_func_end MOD62_0222E0C8 + + thumb_func_start MOD62_0222E0F8 +MOD62_0222E0F8: ; 0x0222E0F8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r7, r1, #0 + mov r4, #0 + str r0, [sp] + str r4, [sp, #4] + add r5, r7, #0 + add r6, r7, #0 +_0222E108: + mov r0, #0x51 + lsl r0, r0, #2 + ldr r1, [r5, r0] + cmp r1, #0 + beq _0222E120 + add r0, r6, #0 + bl MOD08_02217F08 + cmp r0, #1 + bne _0222E120 + mov r0, #1 + str r0, [sp, #4] +_0222E120: + add r4, r4, #1 + add r5, r5, #4 + add r6, #0x24 + cmp r4, #8 + blt _0222E108 + mov r0, #0x12 + lsl r0, r0, #4 + add r0, r7, r0 + bl MOD08_02217ECC + cmp r0, #1 + bne _0222E160 + mov r3, #0x59 + mov r0, #1 + lsl r3, r3, #2 + str r0, [sp, #4] + ldr r0, [r7, r3] + sub r3, #0x44 + ldrsh r3, [r7, r3] + mov r1, #5 + mov r2, #0 + bl FUN_020179E0 + mov r3, #0x59 + lsl r3, r3, #2 + ldr r0, [r7, r3] + sub r3, #0x42 + ldrsh r3, [r7, r3] + mov r1, #5 + mov r2, #3 + bl FUN_020179E0 +_0222E160: + ldr r0, [sp, #4] + cmp r0, #0 + bne _0222E17C + mov r0, #0x5b + lsl r0, r0, #2 + ldr r0, [r7, r0] + mov r1, #0 + str r1, [r0] + add r0, r7, #0 + bl FUN_02016A18 + ldr r0, [sp] + bl FUN_0200CAB4 +_0222E17C: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222E0F8 + + thumb_func_start MOD62_0222E180 +MOD62_0222E180: ; 0x0222E180 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x28 + str r1, [sp, #0xc] + mov r1, #0x17 + str r0, [sp, #8] + mov r0, #0x35 + lsl r1, r1, #4 + str r2, [sp, #0x10] + bl FUN_02016998 + str r0, [sp, #0x1c] + ldr r0, [sp, #8] + mov r1, #0x59 + add r0, #0xe4 + ldr r2, [r0] + ldr r0, [sp, #0x1c] + lsl r1, r1, #2 + str r2, [r0, r1] + add r4, r0, #0 + add r5, r0, #0 + ldr r0, [sp, #0xc] + mov r1, #0x38 + lsl r0, r0, #4 + neg r0, r0 + str r0, [sp, #0x18] + ldr r0, [sp, #0xc] + ldr r6, [sp, #8] + mul r1, r0 + ldr r0, [sp, #0x10] + mov r7, #0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r1, [sp, #0x14] + str r0, [sp, #0x20] +_0222E1C4: + mov r0, #0xc9 + lsl r0, r0, #2 + ldr r0, [r6, r0] + cmp r0, #0 + bne _0222E1D8 + mov r0, #0x51 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + b _0222E22E +_0222E1D8: + mov r0, #0xcb + lsl r0, r0, #2 + ldr r1, [r6, r0] + mov r0, #0x51 + lsl r0, r0, #2 + str r1, [r4, r0] + add r1, sp, #0x24 + ldr r0, [r4, r0] + add r1, #2 + add r2, sp, #0x24 + bl FUN_0200C7A0 + add r1, sp, #0x24 + mov r0, #0 + ldrsh r3, [r1, r0] + mov r0, #2 + ldrsh r1, [r1, r0] + ldr r0, [sp, #0x18] + ldr r2, [sp, #0x14] + add r0, r3, r0 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + str r0, [sp] + ldr r0, [sp, #0x20] + add r2, r1, r2 + lsl r2, r2, #0x10 + str r0, [sp, #4] + add r0, r5, #0 + asr r2, r2, #0x10 + bl MOD08_02217E80 + mov r1, #0x51 + lsl r1, r1, #2 + ldr r1, [r4, r1] + add r0, r5, #0 + bl MOD08_02217F08 + mov r1, #0x51 + lsl r1, r1, #2 + ldr r1, [r4, r1] + add r0, r5, #0 + bl MOD08_02217F08 +_0222E22E: + add r7, r7, #1 + add r6, #0x10 + add r4, r4, #4 + add r5, #0x24 + cmp r7, #8 + blt _0222E1C4 + mov r1, #0x59 + ldr r0, [sp, #0x1c] + lsl r1, r1, #2 + ldr r0, [r0, r1] + mov r1, #5 + bl FUN_02017B48 + add r4, r0, #0 + mov r1, #0x59 + ldr r0, [sp, #0x1c] + lsl r1, r1, #2 + ldr r0, [r0, r1] + mov r1, #5 + bl FUN_02017B54 + add r3, r0, #0 + ldr r0, [sp, #0xc] + mov r5, #0x37 + lsl r0, r0, #4 + add r0, r3, r0 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + str r0, [sp] + ldr r0, [sp, #0x10] + mov r1, #0x12 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #4] + lsl r3, r3, #0x10 + ldr r2, [sp, #0xc] + mvn r5, r5 + mul r5, r2 + add r2, r4, r5 + lsl r2, r2, #0x10 + ldr r0, [sp, #0x1c] + lsl r1, r1, #4 + add r0, r0, r1 + lsl r1, r4, #0x10 + asr r1, r1, #0x10 + asr r2, r2, #0x10 + asr r3, r3, #0x10 + bl MOD08_02217E80 + mov r2, #0x96 + lsl r2, r2, #2 + ldr r0, [sp, #8] + add r1, r2, #0 + add r3, r0, r2 + ldr r0, [sp, #0x1c] + sub r1, #0xec + str r3, [r0, r1] + sub r2, #0xec + ldr r0, [r0, r2] + mov r3, #1 + str r3, [r0] + ldr r0, _0222E2B8 ; =MOD62_0222E0F8 + ldr r1, [sp, #0x1c] + lsl r2, r3, #0xc + bl FUN_0200CA44 + add sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222E2B8: .word MOD62_0222E0F8 + thumb_func_end MOD62_0222E180 + + thumb_func_start MOD62_0222E2BC +MOD62_0222E2BC: ; 0x0222E2BC + push {r3, lr} + sub sp, #8 + mov r2, #2 + mov r1, #0 + ldr r0, _0222E2D8 ; =MOD62_0222E2DC + str r2, [sp] + str r0, [sp, #4] + mov r0, #0x35 + add r3, r1, #0 + bl FUN_02022318 + add sp, #8 + pop {r3, pc} + nop +_0222E2D8: .word MOD62_0222E2DC + thumb_func_end MOD62_0222E2BC + + thumb_func_start MOD62_0222E2DC +MOD62_0222E2DC: ; 0x0222E2DC + push {r3, lr} + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + ldr r0, _0222E348 ; =0x04000008 + mov r1, #3 + ldrh r2, [r0] + bic r2, r1 + mov r1, #1 + orr r1, r2 + strh r1, [r0] + add r0, #0x58 + ldrh r2, [r0] + ldr r1, _0222E34C ; =0xFFFFCFFD + and r2, r1 + strh r2, [r0] + add r2, r1, #2 + ldrh r3, [r0] + add r1, r1, #2 + and r3, r2 + mov r2, #0x10 + orr r2, r3 + strh r2, [r0] + ldrh r3, [r0] + ldr r2, _0222E350 ; =0x0000CFFB + and r3, r2 + strh r3, [r0] + ldrh r3, [r0] + sub r2, #0x1c + and r3, r1 + mov r1, #8 + orr r1, r3 + strh r1, [r0] + ldrh r1, [r0] + and r1, r2 + strh r1, [r0] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl G3X_SetFog + mov r0, #0 + ldr r2, _0222E354 ; =0x00007FFF + add r1, r0, #0 + mov r3, #0x3f + str r0, [sp] + bl G3X_SetClearColor + ldr r1, _0222E358 ; =0xBFFF0000 + ldr r0, _0222E35C ; =0x04000580 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0222E348: .word 0x04000008 +_0222E34C: .word 0xFFFFCFFD +_0222E350: .word 0x0000CFFB +_0222E354: .word 0x00007FFF +_0222E358: .word 0xBFFF0000 +_0222E35C: .word 0x04000580 + thumb_func_end MOD62_0222E2DC + + thumb_func_start MOD62_0222E360 +MOD62_0222E360: ; 0x0222E360 + push {r3, r4, r5, lr} + ldr r3, _0222E398 ; =0x021064B8 + mov r0, #2 + mov r1, #0 + ldr r3, [r3] + lsl r0, r0, #0xe + add r2, r1, #0 + blx r3 + ldr r3, _0222E39C ; =0x021064C0 + mov r1, #0 + add r4, r0, #0 + ldr r3, [r3] + mov r0, #0x80 + add r2, r1, #0 + blx r3 + add r5, r0, #0 + cmp r4, #0 + bne _0222E388 + bl ErrorHandling +_0222E388: + cmp r5, #0 + bne _0222E390 + bl ErrorHandling +_0222E390: + bl FUN_02012CC8 + pop {r3, r4, r5, pc} + nop +_0222E398: .word 0x021064B8 +_0222E39C: .word 0x021064C0 + thumb_func_end MOD62_0222E360 + + thumb_func_start MOD62_0222E3A0 +MOD62_0222E3A0: ; 0x0222E3A0 + push {r3, lr} + bl FUN_020222AC + bl FUN_02013364 + cmp r0, #0 + ble _0222E3B6 + bl FUN_020222AC + bl FUN_020B02C8 +_0222E3B6: + bl FUN_02013388 + mov r0, #1 + mov r1, #0 + bl FUN_020222B4 + pop {r3, pc} + thumb_func_end MOD62_0222E3A0 + + thumb_func_start MOD62_0222E3C4 +MOD62_0222E3C4: ; 0x0222E3C4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x40 + str r1, [sp, #0x18] + str r0, [sp, #0x14] + ldr r1, [sp, #0x58] + add r0, r3, #0 + add r6, r2, #0 + str r3, [sp, #0x1c] + bl MOD62_0222F89C + cmp r0, #3 + bhi _0222E442 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222E3E8: ; jump table + .short _0222E3F0 - _0222E3E8 - 2 ; case 0 + .short _0222E402 - _0222E3E8 - 2 ; case 1 + .short _0222E418 - _0222E3E8 - 2 ; case 2 + .short _0222E42E - _0222E3E8 - 2 ; case 3 +_0222E3F0: + mov r0, #0 + str r0, [sp, #0x24] + mov r0, #4 + str r0, [sp, #0x28] + mov r0, #1 + mov r5, #0xd + mov r4, #6 + str r0, [sp, #0x2c] + b _0222E442 +_0222E402: + mov r0, #2 + str r0, [sp, #0x24] + mov r0, #0 + str r0, [sp, #0x28] + mov r0, #4 + str r0, [sp, #0x2c] + mov r0, #1 + mov r5, #0xb + mov r4, #8 + str r0, [sp, #0x30] + b _0222E442 +_0222E418: + mov r0, #3 + str r0, [sp, #0x24] + mov r0, #0 + str r0, [sp, #0x28] + mov r0, #4 + str r0, [sp, #0x2c] + mov r0, #1 + mov r5, #0xb + mov r4, #8 + str r0, [sp, #0x30] + b _0222E442 +_0222E42E: + mov r0, #2 + str r0, [sp, #0x24] + mov r0, #0 + str r0, [sp, #0x28] + mov r0, #4 + str r0, [sp, #0x2c] + mov r0, #1 + mov r5, #0xb + mov r4, #8 + str r0, [sp, #0x30] +_0222E442: + lsr r0, r4, #0x1f + add r0, r4, r0 + asr r7, r0, #1 + ldr r0, [sp, #0x18] + bl FUN_0201901C + lsl r0, r5, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #9 + str r0, [sp, #4] + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #8] + mov r0, #0xe + str r0, [sp, #0xc] + mov r0, #0xa6 + str r0, [sp, #0x10] + lsl r2, r6, #0x18 + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x18] + lsr r2, r2, #0x18 + mov r3, #0x15 + bl FUN_02019064 + add r0, r7, #0 + mov r1, #0x35 + bl FUN_02012838 + mov r2, #0x67 + ldr r1, [sp, #0x1c] + lsl r2, r2, #2 + str r0, [r1, r2] + mov r0, #0 + mov r1, #0x1a + mov r2, #8 + mov r3, #0x35 + bl FUN_0200A86C + mov r6, #0 + str r0, [sp, #0x20] + cmp r7, #0 + ble _0222E4D0 + add r5, sp, #0x24 +_0222E49A: + ldr r1, [r5] + ldr r0, [sp, #0x20] + lsl r2, r1, #3 + ldr r1, _0222E538 ; =0x02231358 + ldr r1, [r1, r2] + bl FUN_0200A914 + ldr r2, [r5] + add r4, r0, #0 + lsl r3, r2, #3 + ldr r2, _0222E538 ; =0x02231358 + mov r0, #0x67 + add r2, r2, r3 + ldr r1, [sp, #0x1c] + lsl r0, r0, #2 + ldr r0, [r1, r0] + ldr r2, [r2, #4] + add r1, r4, #0 + bl FUN_020128A0 + add r0, r4, #0 + bl FUN_02021A20 + add r6, r6, #1 + add r5, r5, #4 + cmp r6, r7 + blt _0222E49A +_0222E4D0: + ldr r0, [sp, #0x20] + bl FUN_0200A8B8 + mov r1, #0x67 + ldr r0, [sp, #0x1c] + lsl r1, r1, #2 + ldr r0, [r0, r1] + mov r1, #0 + str r0, [sp, #0x34] + add r0, sp, #0x24 + strb r1, [r0, #0x18] + ldr r1, [sp, #0x18] + mov r2, #0xf + str r1, [sp, #0x38] + mov r1, #1 + strb r1, [r0, #0x19] + strb r7, [r0, #0x1a] + ldrb r3, [r0, #0x1b] + bic r3, r2 + strb r3, [r0, #0x1b] + ldrb r3, [r0, #0x1b] + mov r2, #0x30 + bic r3, r2 + strb r3, [r0, #0x1b] + ldrb r3, [r0, #0x1b] + mov r2, #0xc0 + bic r3, r2 + mov r2, #0x40 + orr r2, r3 + strb r2, [r0, #0x1b] + ldr r0, [sp, #0x18] + mov r2, #0x1f + mov r3, #0xd + bl FUN_0200CCA4 + mov r0, #0x35 + str r0, [sp] + mov r0, #2 + mov r2, #0 + str r0, [sp, #4] + add r0, sp, #0x34 + mov r1, #8 + add r3, r2, #0 + bl FUN_02001C14 + mov r2, #0x1a + ldr r1, [sp, #0x1c] + lsl r2, r2, #4 + str r0, [r1, r2] + add sp, #0x40 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222E538: .word 0x02231358 + thumb_func_end MOD62_0222E3C4 + + thumb_func_start MOD62_0222E53C +MOD62_0222E53C: ; 0x0222E53C + push {r4, r5} + lsr r5, r0, #0x1f + lsl r4, r0, #0x1e + sub r4, r4, r5 + mov r3, #0x1e + ror r4, r3 + add r4, r5, r4 + mov r3, #0x38 + mul r3, r4 + add r3, #0x28 + strh r3, [r1] + asr r1, r0, #2 + mov r0, #0x35 + mul r0, r1 + add r0, #0x1b + strh r0, [r2] + pop {r4, r5} + bx lr + thumb_func_end MOD62_0222E53C + + thumb_func_start MOD62_0222E560 +MOD62_0222E560: ; 0x0222E560 + push {r4, r5, r6, lr} + sub sp, #0x18 + add r1, r0, #0 + add r1, #0xdc + ldr r4, [r1] + add r1, r0, #0 + add r1, #0xe0 + add r0, #0xe8 + ldr r5, [r1] + ldr r6, [r0] + bl FUN_0206B888 + mov r1, #0x13 + str r1, [sp] + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + mov r0, #1 + str r0, [sp, #0x10] + mov r0, #0xfa + lsl r0, r0, #6 + str r0, [sp, #0x14] + add r0, r6, #0 + mov r1, #2 + add r2, r4, #0 + add r3, r5, #0 + bl FUN_0200C0DC + bl FUN_0206B894 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, _0222E5D0 ; =0x00004268 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x13 + bl FUN_0200C124 + bl FUN_0206B8A0 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, _0222E5D4 ; =0x00004650 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x13 + bl FUN_0200C13C + add sp, #0x18 + pop {r4, r5, r6, pc} + .align 2, 0 +_0222E5D0: .word 0x00004268 +_0222E5D4: .word 0x00004650 + thumb_func_end MOD62_0222E560 + + thumb_func_start MOD62_0222E5D8 +MOD62_0222E5D8: ; 0x0222E5D8 + push {r4, r5, r6, r7, lr} + sub sp, #0x4c + add r5, r0, #0 + ldr r1, [r5] + mov r6, #0 + ldr r0, [r1] + cmp r0, #0 + ble _0222E6C6 + str r6, [sp, #0xc] + add r4, r5, #0 +_0222E5EC: + ldr r0, [sp, #0xc] + add r0, r1, r0 + ldr r7, [r0, #4] + add r0, r7, #0 + bl FUN_0206B6C8 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _0222E6CC ; =0x00003A98 + add r1, r5, #0 + add r0, r6, r0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xdc + add r1, #0xe0 + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x13 + bl FUN_0200C978 + mov r1, #0 + add r0, sp, #0x18 + strh r1, [r0] + strh r1, [r0, #2] + strh r1, [r0, #4] + strh r1, [r0, #6] + mov r0, #0xa + str r0, [sp, #0x20] + add r0, r1, #0 + str r0, [sp, #0x24] + mov r0, #1 + str r0, [sp, #0x28] + mov r0, #2 + str r0, [sp, #0x44] + add r0, r1, #0 + str r0, [sp, #0x48] + ldr r0, _0222E6CC ; =0x00003A98 + add r2, sp, #0x18 + add r0, r6, r0 + str r0, [sp, #0x2c] + mov r0, #0xfa + lsl r0, r0, #6 + str r0, [sp, #0x30] + ldr r0, _0222E6D0 ; =0x00004268 + str r0, [sp, #0x34] + ldr r0, _0222E6D4 ; =0x00004650 + str r0, [sp, #0x38] + sub r0, r1, #1 + str r0, [sp, #0x3c] + sub r0, r1, #1 + str r0, [sp, #0x40] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xdc + add r1, #0xe0 + ldr r0, [r0] + ldr r1, [r1] + bl FUN_0200C154 + mov r1, #0xbf + lsl r1, r1, #2 + str r0, [r4, r1] + add r0, r7, #0 + mov r1, #5 + mov r2, #0 + bl FUN_020671BC + str r0, [sp, #0x10] + add r0, r7, #0 + mov r1, #0x4c + mov r2, #0 + bl FUN_020671BC + str r0, [sp, #0x14] + add r0, r7, #0 + mov r1, #0x70 + mov r2, #0 + bl FUN_020671BC + add r1, r0, #0 + ldr r0, [sp, #0x10] + ldr r2, [sp, #0x14] + bl FUN_0206B7BC + add r1, r0, #0 + mov r0, #0xbf + lsl r0, r0, #2 + ldr r0, [r4, r0] + ldr r0, [r0] + bl FUN_020202DC + mov r0, #0xbf + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_0200C5C0 + ldr r0, [sp, #0xc] + ldr r1, [r5] + add r0, r0, #4 + str r0, [sp, #0xc] + ldr r0, [r1] + add r6, r6, #1 + add r4, r4, #4 + cmp r6, r0 + blt _0222E5EC +_0222E6C6: + add sp, #0x4c + pop {r4, r5, r6, r7, pc} + nop +_0222E6CC: .word 0x00003A98 +_0222E6D0: .word 0x00004268 +_0222E6D4: .word 0x00004650 + thumb_func_end MOD62_0222E5D8 + + thumb_func_start MOD62_0222E6D8 +MOD62_0222E6D8: ; 0x0222E6D8 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + ldr r0, [r6] + mov r4, #0 + ldr r0, [r0] + cmp r0, #0 + ble _0222E700 + mov r7, #0xbf + add r5, r6, #0 + lsl r7, r7, #2 +_0222E6EC: + ldr r0, [r5, r7] + mov r1, #0 + bl FUN_0200C644 + ldr r0, [r6] + add r4, r4, #1 + ldr r0, [r0] + add r5, r5, #4 + cmp r4, r0 + blt _0222E6EC +_0222E700: + mov r5, #0 + add r4, r6, #0 +_0222E704: + ldr r7, [r4, #4] + cmp r7, #0xff + beq _0222E748 + add r1, sp, #0 + add r0, r5, #0 + add r1, #2 + add r2, sp, #0 + bl MOD62_0222E53C + add r2, sp, #0 + mov r1, #2 + ldrsh r1, [r2, r1] + add r3, r2, #0 + mov r2, #0 + ldrsh r2, [r3, r2] + lsl r0, r7, #2 + add r7, r6, r0 + mov r0, #0xbf + lsl r0, r0, #2 + sub r1, #0x10 + add r2, #0xc + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r7, r0] + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl FUN_0200C714 + mov r0, #0xbf + lsl r0, r0, #2 + ldr r0, [r7, r0] + mov r1, #1 + bl FUN_0200C644 +_0222E748: + add r5, r5, #1 + add r4, #8 + cmp r5, #0xc + blt _0222E704 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD62_0222E6D8 + + thumb_func_start MOD62_0222E754 +MOD62_0222E754: ; 0x0222E754 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + ldr r0, [r6] + mov r4, #0 + ldr r0, [r0] + cmp r0, #0 + ble _0222E77A + mov r7, #0xbf + add r5, r6, #0 + lsl r7, r7, #2 +_0222E768: + ldr r0, [r5, r7] + bl FUN_0200C5A8 + ldr r0, [r6] + add r4, r4, #1 + ldr r0, [r0] + add r5, r5, #4 + cmp r4, r0 + blt _0222E768 +_0222E77A: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222E754 + + thumb_func_start MOD62_0222E77C +MOD62_0222E77C: ; 0x0222E77C + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + ldr r0, [r6] + mov r4, #0 + ldr r0, [r0] + cmp r0, #0 + ble _0222E7A2 + mov r7, #0xbf + add r5, r6, #0 + lsl r7, r7, #2 +_0222E790: + ldr r0, [r5, r7] + bl FUN_0200C3DC + ldr r0, [r6] + add r4, r4, #1 + ldr r0, [r0] + add r5, r5, #4 + cmp r4, r0 + blt _0222E790 +_0222E7A2: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222E77C + + thumb_func_start MOD62_0222E7A4 +MOD62_0222E7A4: ; 0x0222E7A4 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r6, #0 + add r4, r7, #0 + add r5, r7, #0 +_0222E7AE: + ldr r0, [r4, #8] + bl MOD62_0222F870 + mov r1, #0x9a + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0x99 + ldr r1, [r4, #4] + lsl r0, r0, #2 + str r1, [r5, r0] + add r0, r0, #4 + ldr r0, [r5, r0] + cmp r0, #0 + bne _0222E7DC + mov r0, #0x99 + lsl r0, r0, #2 + ldr r0, [r5, r0] + cmp r0, #0xff + beq _0222E7DC + add r0, r7, #0 + add r1, r6, #0 + bl MOD62_02230D38 +_0222E7DC: + add r6, r6, #1 + add r4, #8 + add r5, #0xc + cmp r6, #0xc + blt _0222E7AE + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222E7A4 + + thumb_func_start MOD62_0222E7E8 +MOD62_0222E7E8: ; 0x0222E7E8 + push {r3, r4, r5, r6, lr} + sub sp, #0x4c + add r4, r0, #0 + mov r0, #0x35 + bl FUN_0200BB14 + add r2, sp, #0x2c + ldr r5, _0222E868 ; =0x02231138 + str r0, [r4, #8] + ldmia r5!, {r0, r1} + add r3, r2, #0 + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + ldr r6, _0222E86C ; =0x0223110C + stmia r2!, {r0, r1} + add r5, sp, #0x18 + ldmia r6!, {r0, r1} + add r2, r5, #0 + stmia r5!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + ldr r0, [r6] + add r1, r3, #0 + str r0, [r5] + ldr r0, [r4, #8] + mov r3, #0x20 + bl FUN_0200BB6C + ldr r3, _0222E870 ; =0x02231120 + add r2, sp, #0 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r4, #8] + bl FUN_0200BB34 + str r0, [r4, #0xc] + ldr r0, [r4, #8] + ldr r1, [r4, #0xc] + mov r2, #0x80 + bl FUN_0200BBF0 + cmp r0, #0 + bne _0222E852 + bl ErrorHandling +_0222E852: + ldr r0, [r4, #8] + ldr r1, [r4, #0xc] + add r2, sp, #0 + bl FUN_0200BF60 + cmp r0, #0 + bne _0222E864 + bl ErrorHandling +_0222E864: + add sp, #0x4c + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0222E868: .word 0x02231138 +_0222E86C: .word 0x0223110C +_0222E870: .word 0x02231120 + thumb_func_end MOD62_0222E7E8 + + thumb_func_start MOD62_0222E874 +MOD62_0222E874: ; 0x0222E874 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + ldr r1, [r4, #0xc] + bl FUN_0200C398 + ldr r0, [r4, #8] + bl FUN_0200BD04 + pop {r4, pc} + thumb_func_end MOD62_0222E874 + + thumb_func_start MOD62_0222E888 +MOD62_0222E888: ; 0x0222E888 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _0222E8EC ; =0x0000AFC8 + add r1, r4, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r0, #0xdc + add r1, #0xe0 + mov r2, #0x5b + add r3, r2, #0 + ldr r0, [r0] + ldr r1, [r1] + add r3, #0xae + bl FUN_0200C00C + mov r0, #1 + str r0, [sp] + ldr r0, _0222E8F0 ; =0x0000B798 + add r1, r4, #0 + str r0, [sp, #4] + add r0, r4, #0 + add r0, #0xdc + add r1, #0xe0 + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x5b + mov r3, #0xad + bl FUN_0200C124 + mov r0, #1 + str r0, [sp] + ldr r0, _0222E8F4 ; =0x0000BB80 + mov r2, #0x5b + str r0, [sp, #4] + add r0, r4, #0 + add r0, #0xdc + add r4, #0xe0 + ldr r0, [r0] + ldr r1, [r4] + mov r3, #0x51 + bl FUN_0200C13C + add sp, #0xc + pop {r3, r4, pc} + nop +_0222E8EC: .word 0x0000AFC8 +_0222E8F0: .word 0x0000B798 +_0222E8F4: .word 0x0000BB80 + thumb_func_end MOD62_0222E888 + + thumb_func_start MOD62_0222E8F8 +MOD62_0222E8F8: ; 0x0222E8F8 + push {r4, r5, r6, r7, lr} + sub sp, #0x64 + ldr r4, _0222E97C ; =0x02231178 + add r6, r0, #0 + add r3, sp, #0 + mov r2, #6 +_0222E904: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _0222E904 + mov r7, #0 + add r4, sp, #0 + add r5, r6, #0 +_0222E912: + ldr r1, [r4] + add r0, sp, #0 + strh r1, [r0, #0x30] + ldr r1, [r4, #4] + add r2, sp, #0x30 + strh r1, [r0, #0x32] + mov r1, #0 + strh r1, [r0, #0x34] + strh r1, [r0, #0x36] + mov r0, #0x28 + str r0, [sp, #0x38] + mov r0, #2 + str r0, [sp, #0x3c] + str r0, [sp, #0x40] + mov r0, #1 + str r0, [sp, #0x5c] + add r0, r1, #0 + str r0, [sp, #0x60] + ldr r0, _0222E980 ; =0x0000AFC8 + str r0, [sp, #0x44] + ldr r0, _0222E984 ; =0x000066B2 + str r0, [sp, #0x48] + ldr r0, _0222E988 ; =0x0000B798 + str r0, [sp, #0x4c] + ldr r0, _0222E98C ; =0x0000BB80 + str r0, [sp, #0x50] + sub r0, r1, #1 + str r0, [sp, #0x54] + sub r0, r1, #1 + str r0, [sp, #0x58] + add r0, r6, #0 + add r1, r6, #0 + add r0, #0xdc + add r1, #0xe0 + ldr r0, [r0] + ldr r1, [r1] + bl FUN_0200C154 + mov r1, #0xc5 + lsl r1, r1, #2 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + ldr r1, [r4, #8] + bl FUN_0200C8D0 + add r7, r7, #1 + add r4, #0xc + add r5, r5, #4 + cmp r7, #4 + blt _0222E912 + add sp, #0x64 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222E97C: .word 0x02231178 +_0222E980: .word 0x0000AFC8 +_0222E984: .word 0x000066B2 +_0222E988: .word 0x0000B798 +_0222E98C: .word 0x0000BB80 + thumb_func_end MOD62_0222E8F8 + + thumb_func_start MOD62_0222E990 +MOD62_0222E990: ; 0x0222E990 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r0, #0xd8 + ldr r0, [r0] + cmp r0, #0 + beq _0222E9B0 + mov r6, #0xc5 + mov r4, #0 + lsl r6, r6, #2 +_0222E9A2: + ldr r0, [r5, r6] + bl FUN_0200C5A8 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _0222E9A2 +_0222E9B0: + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD62_0222E990 + + thumb_func_start MOD62_0222E9B4 +MOD62_0222E9B4: ; 0x0222E9B4 + push {r3, r4, r5, r6, r7, lr} + mov r7, #0xc5 + add r5, r0, #0 + add r6, r1, #0 + mov r4, #0 + lsl r7, r7, #2 +_0222E9C0: + ldr r0, [r5, r7] + add r1, r6, #0 + bl FUN_0200C644 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _0222E9C0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD62_0222E9B4 + + thumb_func_start MOD62_0222E9D4 +MOD62_0222E9D4: ; 0x0222E9D4 + push {r4, r5, r6, lr} + mov r6, #0xc5 + add r5, r0, #0 + mov r4, #0 + lsl r6, r6, #2 +_0222E9DE: + ldr r0, [r5, r6] + bl FUN_0200C3DC + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _0222E9DE + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD62_0222E9D4 + + thumb_func_start MOD62_0222E9F0 +MOD62_0222E9F0: ; 0x0222E9F0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + mov r6, #1 + str r6, [sp] + ldr r6, [sp, #0x3c] + add r7, r2, #0 + str r6, [sp, #4] + ldr r6, _0222EA68 ; =0x00002AF8 + add r2, r3, #0 + add r2, r2, r6 + str r2, [sp, #8] + mov r2, #0x5b + add r5, r0, #0 + add r4, r1, #0 + bl FUN_0200C00C + mov r0, #0x5b + str r0, [sp] + ldr r0, [sp, #0x30] + mov r1, #0 + str r0, [sp, #4] + str r1, [sp, #8] + ldr r1, [sp, #0x44] + add r2, r5, #0 + str r1, [sp, #0xc] + ldr r1, [sp, #0x3c] + add r3, r4, #0 + str r1, [sp, #0x10] + add r1, r6, #0 + add r0, r0, r1 + str r0, [sp, #0x14] + ldr r1, [sp, #0x40] + add r0, r7, #0 + bl FUN_0200C0DC + mov r0, #1 + str r0, [sp] + ldr r3, [sp, #0x34] + add r0, r6, #0 + add r0, r3, r0 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r4, #0 + mov r2, #0x5b + bl FUN_0200C124 + mov r0, #1 + str r0, [sp] + ldr r3, [sp, #0x38] + add r0, r6, #0 + add r0, r3, r0 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r4, #0 + mov r2, #0x5b + bl FUN_0200C13C + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222EA68: .word 0x00002AF8 + thumb_func_end MOD62_0222E9F0 + + thumb_func_start MOD62_0222EA6C +MOD62_0222EA6C: ; 0x0222EA6C + push {r4, r5, r6, r7, lr} + sub sp, #0x54 + add r5, r0, #0 + ldr r0, _0222EC14 ; =0x0000011E + add r2, r5, #0 + str r0, [sp] + mov r0, #0xae + str r0, [sp, #4] + mov r3, #0x52 + str r3, [sp, #8] + mov r1, #1 + str r1, [sp, #0xc] + mov r0, #2 + str r0, [sp, #0x10] + str r1, [sp, #0x14] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xdc + add r1, #0xe0 + add r2, #0xe8 + ldr r0, [r0] + ldr r1, [r1] + ldr r2, [r2] + add r3, #0xb8 + bl MOD62_0222E9F0 + ldr r0, _0222EC18 ; =0x00000123 + add r2, r5, #0 + str r0, [sp] + mov r0, #0xb3 + str r0, [sp, #4] + mov r3, #0x57 + str r3, [sp, #8] + mov r1, #1 + str r1, [sp, #0xc] + mov r0, #2 + str r0, [sp, #0x10] + str r1, [sp, #0x14] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xdc + add r1, #0xe0 + add r2, #0xe8 + ldr r0, [r0] + ldr r1, [r1] + ldr r2, [r2] + add r3, #0xbc + bl MOD62_0222E9F0 + mov r6, #0 + add r4, r5, #0 + add r7, sp, #0x18 +_0222EAD4: + mov r0, #0 + strh r0, [r7, #8] + strh r0, [r7, #0xa] + strh r0, [r7, #0xc] + mov r0, #0x9a + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, r5, #0 + strh r0, [r7, #0xe] + mov r0, #0x28 + sub r0, r0, r6 + str r0, [sp, #0x28] + mov r0, #0 + str r0, [sp, #0x2c] + mov r0, #1 + str r0, [sp, #0x30] + mov r0, #2 + str r0, [sp, #0x4c] + mov r0, #0 + str r0, [sp, #0x50] + ldr r0, _0222EC1C ; =0x00002C02 + add r1, #0xe0 + str r0, [sp, #0x34] + add r0, #0x14 + str r0, [sp, #0x38] + ldr r0, _0222EC20 ; =0x00002BA6 + add r2, sp, #0x20 + str r0, [sp, #0x3c] + sub r0, #0x5c + str r0, [sp, #0x40] + mov r0, #0 + mvn r0, r0 + str r0, [sp, #0x44] + str r0, [sp, #0x48] + add r0, r5, #0 + add r0, #0xdc + ldr r0, [r0] + ldr r1, [r1] + bl FUN_0200C154 + mov r1, #0x9b + lsl r1, r1, #2 + str r0, [r4, r1] + add r1, sp, #0x1c + add r0, r6, #0 + add r1, #2 + add r2, sp, #0x1c + bl MOD62_0222E53C + mov r0, #0x9b + mov r1, #6 + mov r2, #4 + lsl r0, r0, #2 + ldrsh r1, [r7, r1] + ldrsh r2, [r7, r2] + ldr r0, [r4, r0] + bl FUN_0200C714 + add r6, r6, #1 + add r4, #0xc + cmp r6, #0xc + blt _0222EAD4 + mov r1, #0 + add r0, sp, #0x18 + strh r1, [r0, #8] + strh r1, [r0, #0xa] + strh r1, [r0, #0xc] + strh r1, [r0, #0xe] + mov r0, #0x14 + str r0, [sp, #0x28] + mov r0, #1 + str r1, [sp, #0x2c] + str r1, [sp, #0x50] + ldr r1, _0222EC24 ; =0x00002C0B + str r0, [sp, #0x30] + add r0, r1, #0 + add r0, #0x10 + str r0, [sp, #0x38] + add r0, r1, #0 + mov r2, #2 + sub r0, #0x60 + str r1, [sp, #0x34] + str r0, [sp, #0x3c] + sub r0, r2, #3 + sub r1, #0xbc + str r1, [sp, #0x40] + add r1, r5, #0 + str r2, [sp, #0x4c] + str r0, [sp, #0x44] + str r0, [sp, #0x48] + add r0, r5, #0 + add r0, #0xdc + add r1, #0xe0 + ldr r0, [r0] + ldr r1, [r1] + add r2, sp, #0x20 + bl FUN_0200C154 + mov r1, #0xbd + lsl r1, r1, #2 + str r0, [r5, r1] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xdc + add r1, #0xe0 + ldr r0, [r0] + ldr r1, [r1] + add r2, sp, #0x20 + bl FUN_0200C154 + mov r1, #0xbe + lsl r1, r1, #2 + str r0, [r5, r1] + add r1, #0xcc + ldr r0, [r5, r1] + add r1, sp, #0x18 + add r1, #2 + add r2, sp, #0x18 + bl MOD62_0222E53C + mov r0, #0xbd + lsl r0, r0, #2 + add r3, sp, #0x18 + mov r1, #2 + mov r2, #0 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldr r0, [r5, r0] + bl FUN_0200C714 + mov r0, #0xbe + lsl r0, r0, #2 + add r3, sp, #0x18 + mov r1, #2 + mov r2, #0 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldr r0, [r5, r0] + bl FUN_0200C714 + mov r0, #0xbe + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x19 + bl FUN_0200C6C4 + mov r0, #0xbd + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200C5C0 + mov r0, #0xbe + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200C5C0 + add sp, #0x54 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222EC14: .word 0x0000011E +_0222EC18: .word 0x00000123 +_0222EC1C: .word 0x00002C02 +_0222EC20: .word 0x00002BA6 +_0222EC24: .word 0x00002C0B + thumb_func_end MOD62_0222EA6C + + thumb_func_start MOD62_0222EC28 +MOD62_0222EC28: ; 0x0222EC28 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + bl MOD62_0222E7A4 + add r0, r5, #0 + bl MOD62_0222E6D8 + mov r7, #0x9a + lsl r7, r7, #2 + mov r4, #0 + add r6, r7, #4 +_0222EC3E: + ldr r0, [r5, r6] + cmp r0, #0 + beq _0222EC4A + ldr r1, [r5, r7] + bl FUN_0200C5C0 +_0222EC4A: + add r4, r4, #1 + add r5, #0xc + cmp r4, #0xc + blt _0222EC3E + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222EC28 + + thumb_func_start MOD62_0222EC54 +MOD62_0222EC54: ; 0x0222EC54 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x28 + add r5, r0, #0 + lsl r6, r1, #3 + add r0, r5, r6 + ldr r0, [r0, #4] + lsl r4, r2, #3 + str r1, [sp] + add r1, r5, r4 + ldr r7, [r1, #4] + cmp r0, #0xff + beq _0222EC80 + add r1, r2, #1 + str r1, [sp, #0xc] + ldr r1, [r5] + lsl r0, r0, #2 + add r0, r1, r0 + ldr r0, [r0, #4] + mov r1, #0xa1 + add r2, sp, #0xc + bl FUN_02067830 +_0222EC80: + cmp r7, #0xff + beq _0222EC9A + ldr r0, [sp] + add r2, sp, #8 + add r0, r0, #1 + str r0, [sp, #8] + ldr r1, [r5] + lsl r0, r7, #2 + add r0, r1, r0 + ldr r0, [r0, #4] + mov r1, #0xa1 + bl FUN_02067830 +_0222EC9A: + add r2, r5, #4 + ldr r1, [r2, r6] + ldr r0, [r2, r4] + add r7, r5, #0 + str r0, [r2, r6] + str r1, [r2, r4] + add r7, #8 + ldr r0, [r7, r6] + add r1, sp, #0x10 + bl FUN_02029C74 + add r0, r5, #0 + str r0, [sp, #4] + add r0, #8 + str r0, [sp, #4] + ldr r0, [r0, r4] + ldr r1, [r7, r6] + bl FUN_02029C74 + ldr r1, [sp, #4] + add r0, sp, #0x10 + ldr r1, [r1, r4] + bl FUN_02029C74 + add r0, r5, #0 + bl MOD62_0222EC28 + add sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222EC54 + + thumb_func_start MOD62_0222ECD4 +MOD62_0222ECD4: ; 0x0222ECD4 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r6, #0x9b + mov r4, #0 + add r5, r7, #0 + lsl r6, r6, #2 +_0222ECE0: + ldr r0, [r5, r6] + bl FUN_0200C5A8 + add r4, r4, #1 + add r5, #0xc + cmp r4, #0xc + blt _0222ECE0 + mov r0, #0xbd + lsl r0, r0, #2 + ldr r0, [r7, r0] + bl FUN_0200C5A8 + mov r0, #0xbe + lsl r0, r0, #2 + ldr r0, [r7, r0] + bl FUN_0200C5A8 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222ECD4 + + thumb_func_start MOD62_0222ED04 +MOD62_0222ED04: ; 0x0222ED04 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r6, #0x9b + mov r4, #0 + add r5, r7, #0 + lsl r6, r6, #2 +_0222ED10: + ldr r0, [r5, r6] + bl FUN_0200C3DC + add r4, r4, #1 + add r5, #0xc + cmp r4, #0xc + blt _0222ED10 + mov r0, #0xbd + lsl r0, r0, #2 + ldr r0, [r7, r0] + bl FUN_0200C3DC + mov r0, #0xbe + lsl r0, r0, #2 + ldr r0, [r7, r0] + bl FUN_0200C3DC + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222ED04 + + thumb_func_start MOD62_0222ED34 +MOD62_0222ED34: ; 0x0222ED34 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r6, r2, #0 + add r4, r1, #0 + lsl r1, r6, #0x18 + lsr r1, r1, #0x18 + str r1, [sp] + mov r1, #0x35 + str r1, [sp, #4] + mov r1, #1 + add r2, r1, #0 + mov r3, #0xf + add r5, r0, #0 + bl FUN_0200CD68 + add r0, r6, #0 + bl FUN_0200CD64 + add r2, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0xc0 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x26 + mov r3, #0x35 + bl FUN_020030E8 + mov r0, #0 + str r0, [sp] + mov r0, #0x35 + str r0, [sp, #4] + add r0, r5, #0 + mov r1, #1 + mov r2, #0x1f + mov r3, #0xd + bl FUN_0200CB00 + bl FUN_0200CAFC + add r2, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0xd0 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x26 + mov r3, #0x35 + bl FUN_020030E8 + mov r0, #0 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0xe0 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0xe + mov r2, #7 + mov r3, #0x35 + bl FUN_020030E8 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + thumb_func_end MOD62_0222ED34 + + thumb_func_start MOD62_0222EDBC +MOD62_0222EDBC: ; 0x0222EDBC + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r6, r2, #0 + add r4, r1, #0 + lsl r1, r6, #0x18 + lsr r1, r1, #0x18 + str r1, [sp] + mov r1, #0x35 + str r1, [sp, #4] + mov r1, #4 + mov r2, #1 + mov r3, #0xf + add r5, r0, #0 + bl FUN_0200CD68 + add r0, r6, #0 + bl FUN_0200CD64 + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0xc0 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x26 + mov r3, #0x35 + bl FUN_020030E8 + mov r0, #0 + str r0, [sp] + mov r0, #0x35 + str r0, [sp, #4] + add r0, r5, #0 + mov r1, #4 + mov r2, #0x1f + mov r3, #0xd + bl FUN_0200CB00 + bl FUN_0200CAFC + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0xd0 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x26 + mov r3, #0x35 + bl FUN_020030E8 + mov r0, #1 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0xe0 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0xe + mov r2, #7 + mov r3, #0x35 + bl FUN_020030E8 + mov r0, #1 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x30 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0xe + mov r2, #7 + mov r3, #0x35 + bl FUN_020030E8 + mov r0, #1 + str r0, [sp] + mov r0, #0x20 + mov r1, #0x5b + str r0, [sp, #4] + mov r0, #0xb0 + add r2, r1, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r2, #0xcb + mov r3, #0x35 + bl FUN_020030E8 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD62_0222EDBC + + thumb_func_start MOD62_0222EE78 +MOD62_0222EE78: ; 0x0222EE78 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + ldr r1, _0222EEDC ; =0x0000FFFF + add r4, r0, #0 + cmp r5, r1 + bne _0222EE96 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + bl FUN_020191D0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} +_0222EE96: + mov r0, #0 + mov r1, #0x1a + mov r2, #8 + mov r3, #0x35 + bl FUN_0200A86C + add r1, r5, #0 + add r6, r0, #0 + bl FUN_0200A914 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #0xf + bl FUN_02019620 + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + add r0, r4, #0 + add r2, r5, #0 + add r3, r1, #0 + str r1, [sp, #8] + bl FUN_0201BD84 + add r0, r4, #0 + bl FUN_020191D0 + add r0, r5, #0 + bl FUN_02021A20 + add r0, r6, #0 + bl FUN_0200A8B8 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0222EEDC: .word 0x0000FFFF + thumb_func_end MOD62_0222EE78 + + thumb_func_start MOD62_0222EEE0 +MOD62_0222EEE0: ; 0x0222EEE0 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r1, #0 + add r7, r0, #0 + add r0, r5, #0 + add r4, r2, #0 + add r6, r3, #0 + bl FUN_0201901C + ldr r0, [sp, #0x28] + lsl r2, r4, #0x18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldr r0, [sp, #0x2c] + lsl r3, r6, #0x18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #4] + ldr r0, [sp, #0x30] + add r1, r5, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #8] + mov r0, #0xe + str r0, [sp, #0xc] + ldr r0, [sp, #0x34] + lsr r2, r2, #0x18 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + add r0, r7, #0 + lsr r3, r3, #0x18 + bl FUN_02019064 + mov r1, #1 + add r0, r5, #0 + add r2, r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r5, #0 + mov r1, #0xf + bl FUN_02019620 + add r0, r5, #0 + bl FUN_020191D0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222EEE0 + + thumb_func_start MOD62_0222EF44 +MOD62_0222EF44: ; 0x0222EF44 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r1, #0 + add r7, r0, #0 + add r0, r5, #0 + add r4, r2, #0 + add r6, r3, #0 + bl FUN_0201901C + ldr r0, [sp, #0x28] + lsl r2, r4, #0x18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldr r0, [sp, #0x2c] + lsl r3, r6, #0x18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #4] + ldr r0, [sp, #0x30] + add r1, r5, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #8] + ldr r0, [sp, #0x38] + lsr r2, r2, #0x18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xc] + ldr r0, [sp, #0x34] + lsr r3, r3, #0x18 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + add r0, r7, #0 + bl FUN_02019064 + add r0, r5, #0 + mov r1, #0xf + bl FUN_02019620 + add r0, r5, #0 + bl FUN_020191D0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222EF44 + + thumb_func_start MOD62_0222EFA0 +MOD62_0222EFA0: ; 0x0222EFA0 + push {r3, r4, lr} + sub sp, #0x14 + mov r1, #2 + add r4, r0, #0 + str r1, [sp] + mov r0, #4 + str r0, [sp, #4] + str r1, [sp, #8] + mov r1, #0x94 + str r1, [sp, #0xc] + mov r0, #0xb + str r0, [sp, #0x10] + add r0, r4, #0 + add r0, #0xe4 + add r1, #0x88 + ldr r0, [r0] + add r1, r4, r1 + mov r2, #6 + mov r3, #3 + bl MOD62_0222EF44 + mov r1, #2 + str r1, [sp] + mov r0, #4 + str r0, [sp, #4] + str r1, [sp, #8] + mov r1, #0x9c + str r1, [sp, #0xc] + mov r0, #0xb + str r0, [sp, #0x10] + add r0, r4, #0 + add r0, #0xe4 + add r1, #0x90 + ldr r0, [r0] + add r1, r4, r1 + mov r2, #6 + mov r3, #0xa + bl MOD62_0222EF44 + mov r0, #5 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r1, #0xa4 + str r1, [sp, #0xc] + mov r0, #0xb + str r0, [sp, #0x10] + add r0, r4, #0 + add r0, #0xe4 + add r1, #0x98 + ldr r0, [r0] + add r1, r4, r1 + mov r2, #6 + mov r3, #3 + bl MOD62_0222EF44 + mov r0, #5 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r1, #0xac + str r1, [sp, #0xc] + mov r0, #0xb + str r0, [sp, #0x10] + add r0, r4, #0 + add r0, #0xe4 + add r1, #0xa0 + ldr r0, [r0] + add r1, r4, r1 + mov r2, #6 + mov r3, #0xa + bl MOD62_0222EF44 + mov r0, #8 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r1, #0xb4 + str r1, [sp, #0xc] + mov r0, #0xb + str r0, [sp, #0x10] + add r0, r4, #0 + add r0, #0xe4 + add r1, #0xa8 + ldr r0, [r0] + add r1, r4, r1 + mov r2, #6 + mov r3, #3 + bl MOD62_0222EF44 + mov r0, #8 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r1, #0xbc + str r1, [sp, #0xc] + mov r0, #0xb + str r0, [sp, #0x10] + add r0, r4, #0 + add r0, #0xe4 + add r1, #0xb0 + ldr r0, [r0] + add r1, r4, r1 + mov r2, #6 + mov r3, #0xa + bl MOD62_0222EF44 + mov r2, #0xb + str r2, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r1, #0xc4 + str r1, [sp, #0xc] + add r0, r4, #0 + str r2, [sp, #0x10] + add r0, #0xe4 + add r1, #0xb8 + ldr r0, [r0] + add r1, r4, r1 + mov r2, #6 + mov r3, #3 + bl MOD62_0222EF44 + mov r2, #0xb + str r2, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r1, #0xcc + str r1, [sp, #0xc] + add r0, r4, #0 + str r2, [sp, #0x10] + add r0, #0xe4 + add r1, #0xc0 + ldr r0, [r0] + add r1, r4, r1 + mov r2, #6 + mov r3, #0xa + bl MOD62_0222EF44 + add sp, #0x14 + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD62_0222EFA0 + + thumb_func_start MOD62_0222F0D4 +MOD62_0222F0D4: ; 0x0222F0D4 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r7, r0, #0 + add r5, r7, #0 + add r5, #0xec + mov r6, #3 + add r5, #0x30 +_0222F0E2: + ldr r0, _0222F160 ; =0x0000041D + add r1, r7, r6 + ldrb r0, [r1, r0] + str r0, [sp, #0x10] + cmp r0, #0 + bne _0222F0FE + add r0, r5, #0 + mov r1, #0xee + bl FUN_02019620 + add r0, r5, #0 + bl FUN_020191D0 + b _0222F152 +_0222F0FE: + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x64 + mov r1, #0x35 + bl FUN_020219F4 + ldr r1, [sp, #0x10] + add r4, r0, #0 + ldr r0, [r7, #0x64] + sub r1, r1, #1 + bl FUN_02029CF4 + add r1, r0, #0 + mov r0, #1 + str r0, [sp] + add r0, r4, #0 + mov r2, #3 + mov r3, #1 + bl FUN_02021B04 + mov r0, #0 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _0222F164 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + add r0, r5, #0 + add r2, r4, #0 + mov r3, #7 + bl FUN_0201BDE0 + add r0, r5, #0 + bl FUN_020191D0 + add r0, r4, #0 + bl FUN_02021A20 +_0222F152: + add r6, r6, #1 + add r5, #0x10 + cmp r6, #0xb + blt _0222F0E2 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_0222F160: .word 0x0000041D +_0222F164: .word 0x00010200 + thumb_func_end MOD62_0222F0D4 + + thumb_func_start MOD62_0222F168 +MOD62_0222F168: ; 0x0222F168 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r6, r0, #0 + add r0, r1, #3 + lsl r4, r0, #4 + mov r0, #0x42 + add r1, r6, r1 + lsl r0, r0, #4 + add r5, r6, #0 + ldrb r7, [r1, r0] + add r5, #0xec + cmp r7, #0 + bne _0222F194 + add r0, r5, r4 + mov r1, #0xee + bl FUN_02019620 + add r0, r5, r4 + bl FUN_020191D0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} +_0222F194: + add r0, r5, r4 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x64 + mov r1, #0x35 + bl FUN_020219F4 + str r0, [sp, #0x10] + ldr r0, [r6, #0x64] + sub r1, r7, #1 + bl FUN_02029CF4 + add r1, r0, #0 + mov r3, #1 + ldr r0, [sp, #0x10] + mov r2, #3 + str r3, [sp] + bl FUN_02021B04 + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _0222F1E4 ; =0x00010200 + ldr r2, [sp, #0x10] + str r0, [sp, #8] + add r0, r5, r4 + mov r3, #7 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r5, r4 + bl FUN_020191D0 + ldr r0, [sp, #0x10] + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222F1E4: .word 0x00010200 + thumb_func_end MOD62_0222F168 + + thumb_func_start MOD62_0222F1E8 +MOD62_0222F1E8: ; 0x0222F1E8 + push {r3, r4, r5, lr} + add r0, #0xec + add r5, r0, #0 + mov r4, #3 + add r5, #0x30 +_0222F1F2: + add r0, r5, #0 + bl FUN_02019570 + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #0xb + blt _0222F1F2 + pop {r3, r4, r5, pc} + thumb_func_end MOD62_0222F1E8 + + thumb_func_start MOD62_0222F208 +MOD62_0222F208: ; 0x0222F208 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + ldr r1, _0222F26C ; =0x0000FFFF + add r4, r0, #0 + cmp r5, r1 + bne _0222F226 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + bl FUN_020191D0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} +_0222F226: + mov r0, #0 + mov r1, #0x1a + mov r2, #0xa + mov r3, #0x35 + bl FUN_0200A86C + add r1, r5, #0 + add r6, r0, #0 + bl FUN_0200A914 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #0xf + bl FUN_02019620 + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + add r0, r4, #0 + add r2, r5, #0 + add r3, r1, #0 + str r1, [sp, #8] + bl FUN_0201BD84 + add r0, r4, #0 + bl FUN_020191D0 + add r0, r5, #0 + bl FUN_02021A20 + add r0, r6, #0 + bl FUN_0200A8B8 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0222F26C: .word 0x0000FFFF + thumb_func_end MOD62_0222F208 + + thumb_func_start MOD62_0222F270 +MOD62_0222F270: ; 0x0222F270 + push {r3, lr} + bl FUN_0201E788 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + pop {r3, pc} + thumb_func_end MOD62_0222F270 + + thumb_func_start MOD62_0222F288 +MOD62_0222F288: ; 0x0222F288 + push {lr} + sub sp, #0xc + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x35 + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + add sp, #0xc + pop {pc} + .align 2, 0 + thumb_func_end MOD62_0222F288 + + thumb_func_start MOD62_0222F2A8 +MOD62_0222F2A8: ; 0x0222F2A8 + push {lr} + sub sp, #0xc + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x35 + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + add sp, #0xc + pop {pc} + thumb_func_end MOD62_0222F2A8 + + thumb_func_start MOD62_0222F2C8 +MOD62_0222F2C8: ; 0x0222F2C8 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x35 + add r2, r4, #0 + str r0, [sp, #0xc] + mov r0, #0x5b + add r2, #0xe4 + add r1, r0, #0 + ldr r2, [r2] + add r1, #0xb1 + mov r3, #2 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x35 + add r2, r4, #0 + str r0, [sp, #0xc] + mov r0, #0x5b + add r2, #0xe4 + add r1, r0, #0 + ldr r2, [r2] + add r1, #0xc1 + mov r3, #2 + bl FUN_020068C8 + mov r1, #0 + str r1, [sp] + mov r0, #0x40 + str r0, [sp, #4] + add r0, r4, #0 + str r1, [sp, #8] + add r0, #0xe8 + mov r1, #0x5b + add r2, r1, #0 + ldr r0, [r0] + add r2, #0xc5 + mov r3, #0x35 + bl FUN_020030E8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x35 + add r2, r4, #0 + str r0, [sp, #0xc] + mov r0, #0x5b + add r2, #0xe4 + add r1, r0, #0 + ldr r2, [r2] + add r1, #0xb2 + mov r3, #3 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x35 + str r0, [sp, #0xc] + mov r0, #0x5b + add r4, #0xe4 + add r1, r0, #0 + ldr r2, [r4] + add r1, #0xc2 + mov r3, #3 + bl FUN_020068C8 + add sp, #0x10 + pop {r4, pc} + thumb_func_end MOD62_0222F2C8 + + thumb_func_start MOD62_0222F36C +MOD62_0222F36C: ; 0x0222F36C + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x35 + add r2, r4, #0 + str r0, [sp, #0xc] + mov r0, #0x5b + add r2, #0xe4 + add r1, r0, #0 + ldr r2, [r2] + add r1, #0xb0 + mov r3, #5 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x35 + add r2, r4, #0 + str r0, [sp, #0xc] + mov r0, #0x5b + add r2, #0xe4 + add r1, r0, #0 + ldr r2, [r2] + add r1, #0xc0 + mov r3, #5 + bl FUN_020068C8 + mov r0, #1 + str r0, [sp] + mov r0, #0x40 + str r0, [sp, #4] + mov r0, #0 + mov r1, #0x5b + add r2, r1, #0 + add r4, #0xe8 + str r0, [sp, #8] + ldr r0, [r4] + add r2, #0xc4 + mov r3, #0x35 + bl FUN_020030E8 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD62_0222F36C + + thumb_func_start MOD62_0222F3D4 +MOD62_0222F3D4: ; 0x0222F3D4 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x35 + add r2, r4, #0 + str r0, [sp, #0xc] + mov r0, #0x5b + add r2, #0xe4 + add r1, r0, #0 + ldr r2, [r2] + add r1, #0xb0 + mov r3, #7 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x35 + add r2, r4, #0 + str r0, [sp, #0xc] + mov r0, #0x5b + add r2, #0xe4 + add r1, r0, #0 + ldr r2, [r2] + add r1, #0xbf + mov r3, #7 + bl FUN_020068C8 + mov r0, #1 + str r0, [sp] + mov r0, #0x40 + str r0, [sp, #4] + mov r0, #0 + mov r1, #0x5b + add r2, r1, #0 + add r4, #0xe8 + str r0, [sp, #8] + ldr r0, [r4] + add r2, #0xc4 + mov r3, #0x35 + bl FUN_020030E8 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD62_0222F3D4 + + thumb_func_start MOD62_0222F43C +MOD62_0222F43C: ; 0x0222F43C + push {r3, r4, r5, lr} + sub sp, #0x18 + add r1, r0, #0 + add r1, #0xdc + ldr r4, [r1] + add r1, r0, #0 + add r1, #0xe0 + ldr r5, [r1] + mov r1, #0x5b + str r1, [sp] + add r1, #0xc7 + str r1, [sp, #4] + mov r1, #0 + str r1, [sp, #8] + mov r1, #3 + str r1, [sp, #0xc] + mov r2, #2 + str r2, [sp, #0x10] + ldr r2, _0222F57C ; =0x000066B2 + add r0, #0xe8 + str r2, [sp, #0x14] + ldr r0, [r0] + add r2, r4, #0 + add r3, r5, #0 + bl FUN_0200C0DC + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _0222F580 ; =0x000062B9 + mov r2, #0x5b + add r3, r2, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, r5, #0 + add r3, #0xb6 + bl FUN_0200C00C + mov r0, #1 + str r0, [sp] + ldr r0, _0222F584 ; =0x00006A29 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x5b + mov r3, #0xb1 + bl FUN_0200C124 + mov r0, #1 + str r0, [sp] + ldr r0, _0222F588 ; =0x00006DB5 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x5b + mov r3, #0x55 + bl FUN_0200C13C + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _0222F58C ; =0x000062BA + mov r2, #0x5b + add r3, r2, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, r5, #0 + add r3, #0xb7 + bl FUN_0200C00C + mov r0, #1 + str r0, [sp] + ldr r0, _0222F590 ; =0x00006A2A + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x5b + mov r3, #0xb2 + bl FUN_0200C124 + mov r0, #1 + str r0, [sp] + ldr r0, _0222F594 ; =0x00006DB6 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x5b + mov r3, #0x56 + bl FUN_0200C13C + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _0222F598 ; =0x000062B6 + mov r2, #0x5b + add r3, r2, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, r5, #0 + add r3, #0xb3 + bl FUN_0200C00C + mov r0, #1 + str r0, [sp] + ldr r0, _0222F59C ; =0x00006A27 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x5b + mov r3, #0xaf + bl FUN_0200C124 + mov r0, #1 + str r0, [sp] + ldr r0, _0222F5A0 ; =0x00006DB3 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x5b + mov r3, #0x53 + bl FUN_0200C13C + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _0222F5A4 ; =0x000089C8 + mov r2, #0x5b + add r3, r2, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, r5, #0 + add r3, #0xb5 + bl FUN_0200C00C + mov r0, #1 + str r0, [sp] + ldr r0, _0222F5A8 ; =0x00006A28 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x5b + mov r3, #0xb0 + bl FUN_0200C124 + mov r0, #1 + str r0, [sp] + ldr r0, _0222F5AC ; =0x00006DB4 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x5b + mov r3, #0x54 + bl FUN_0200C13C + add sp, #0x18 + pop {r3, r4, r5, pc} + .align 2, 0 +_0222F57C: .word 0x000066B2 +_0222F580: .word 0x000062B9 +_0222F584: .word 0x00006A29 +_0222F588: .word 0x00006DB5 +_0222F58C: .word 0x000062BA +_0222F590: .word 0x00006A2A +_0222F594: .word 0x00006DB6 +_0222F598: .word 0x000062B6 +_0222F59C: .word 0x00006A27 +_0222F5A0: .word 0x00006DB3 +_0222F5A4: .word 0x000089C8 +_0222F5A8: .word 0x00006A28 +_0222F5AC: .word 0x00006DB4 + thumb_func_end MOD62_0222F43C + + thumb_func_start MOD62_0222F5B0 +MOD62_0222F5B0: ; 0x0222F5B0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0xa0 + add r7, r0, #0 + add r0, #0xdc + ldr r6, [r0] + add r0, r7, #0 + add r0, #0xe0 + ldr r5, [r0] + mov r0, #0xf9 + lsl r0, r0, #2 + add r4, r7, r0 + mov r1, #0 + add r2, sp, #0x6c + strh r1, [r2] + strh r1, [r2, #2] + strh r1, [r2, #4] + strh r1, [r2, #6] + mov r0, #0x3c + str r0, [sp, #0x74] + mov r0, #2 + str r0, [sp, #0x7c] + mov r0, #1 + str r1, [sp, #0x9c] + sub r1, r0, #2 + str r0, [sp, #0x98] + str r0, [sp, #0x78] + ldr r0, _0222F6FC ; =0x000062B9 + str r1, [sp, #0x90] + str r0, [sp, #0x80] + ldr r0, _0222F700 ; =0x000066B2 + str r1, [sp, #0x94] + str r0, [sp, #0x84] + ldr r0, _0222F704 ; =0x00006A29 + add r1, r5, #0 + str r0, [sp, #0x88] + ldr r0, _0222F708 ; =0x00006DB5 + str r0, [sp, #0x8c] + add r0, r6, #0 + bl FUN_0200C154 + str r0, [r4, #0x20] + ldr r0, _0222F70C ; =0x000062BA + add r1, r5, #0 + str r0, [sp, #0x80] + ldr r0, _0222F700 ; =0x000066B2 + add r2, sp, #0x6c + str r0, [sp, #0x84] + ldr r0, _0222F710 ; =0x00006A2A + str r0, [sp, #0x88] + ldr r0, _0222F714 ; =0x00006DB6 + str r0, [sp, #0x8c] + add r0, r6, #0 + bl FUN_0200C154 + str r0, [r4, #0x24] + mov r0, #1 + str r0, [sp, #0x98] + str r0, [sp, #0x78] + ldr r0, _0222F718 ; =0x000089C8 + add r1, r5, #0 + str r0, [sp, #0x80] + ldr r0, _0222F700 ; =0x000066B2 + add r2, sp, #0x6c + str r0, [sp, #0x84] + ldr r0, _0222F71C ; =0x00006A28 + str r0, [sp, #0x88] + ldr r0, _0222F720 ; =0x00006DB4 + str r0, [sp, #0x8c] + add r0, r6, #0 + bl FUN_0200C154 + str r0, [r4, #0x28] + mov r0, #1 + str r0, [sp, #0x98] + mov r0, #0 + str r0, [sp, #0x78] + ldr r0, _0222F724 ; =0x000062B6 + add r1, r5, #0 + str r0, [sp, #0x80] + ldr r0, _0222F700 ; =0x000066B2 + add r2, sp, #0x6c + str r0, [sp, #0x84] + ldr r0, _0222F728 ; =0x00006A27 + str r0, [sp, #0x88] + ldr r0, _0222F72C ; =0x00006DB3 + str r0, [sp, #0x8c] + add r0, r6, #0 + bl FUN_0200C154 + str r0, [r4, #0x2c] + add r0, r6, #0 + add r1, r5, #0 + add r2, sp, #0x6c + bl FUN_0200C154 + ldr r3, _0222F730 ; =0x022311A8 + str r0, [r4, #0x30] + add r2, sp, #0x38 + mov r1, #0x1a +_0222F676: + ldrh r0, [r3] + add r3, r3, #2 + strh r0, [r2] + add r2, r2, #2 + sub r1, r1, #1 + bne _0222F676 + ldr r3, _0222F734 ; =0x022311DC + add r2, sp, #4 + mov r1, #0x1a +_0222F688: + ldrh r0, [r3] + add r3, r3, #2 + strh r0, [r2] + add r2, r2, #2 + sub r1, r1, #1 + bne _0222F688 + mov r0, #8 + str r0, [sp] + mov r0, #0x1d + add r4, r7, #0 + lsl r0, r0, #4 + add r7, r7, r0 + add r6, sp, #0x58 + add r4, #0x20 + add r5, sp, #0x24 + add r7, #0x20 +_0222F6A8: + mov r0, #0xf9 + mov r1, #0 + mov r2, #2 + lsl r0, r0, #2 + ldrsh r1, [r6, r1] + ldrsh r2, [r6, r2] + ldr r0, [r4, r0] + bl FUN_0200C714 + mov r0, #0xf9 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200C5A8 + mov r0, #0xf9 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200C61C + mov r1, #0xf9 + mov r2, #0 + mov r3, #2 + lsl r1, r1, #2 + ldrsh r2, [r5, r2] + ldrsh r3, [r5, r3] + ldr r1, [r4, r1] + add r0, r7, #0 + bl MOD62_0222DCE4 + ldr r0, [sp] + add r6, r6, #4 + add r0, r0, #1 + add r4, r4, #4 + add r5, r5, #4 + add r7, r7, #4 + str r0, [sp] + cmp r0, #0xd + blt _0222F6A8 + add sp, #0xa0 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222F6FC: .word 0x000062B9 +_0222F700: .word 0x000066B2 +_0222F704: .word 0x00006A29 +_0222F708: .word 0x00006DB5 +_0222F70C: .word 0x000062BA +_0222F710: .word 0x00006A2A +_0222F714: .word 0x00006DB6 +_0222F718: .word 0x000089C8 +_0222F71C: .word 0x00006A28 +_0222F720: .word 0x00006DB4 +_0222F724: .word 0x000062B6 +_0222F728: .word 0x00006A27 +_0222F72C: .word 0x00006DB3 +_0222F730: .word 0x022311A8 +_0222F734: .word 0x022311DC + thumb_func_end MOD62_0222F5B0 + + thumb_func_start MOD62_0222F738 +MOD62_0222F738: ; 0x0222F738 + push {r3, r4, r5, r6, r7, lr} + mov r7, #0xf9 + add r5, r0, #0 + add r6, r1, #0 + mov r4, #0 + lsl r7, r7, #2 +_0222F744: + ldr r0, [r5, r7] + add r1, r6, #0 + bl FUN_0200C644 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xd + blt _0222F744 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD62_0222F738 + + thumb_func_start MOD62_0222F758 +MOD62_0222F758: ; 0x0222F758 + bx lr + .align 2, 0 + thumb_func_end MOD62_0222F758 + + thumb_func_start MOD62_0222F75C +MOD62_0222F75C: ; 0x0222F75C + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r6, #0xf9 + mov r4, #8 + add r5, #0x20 + lsl r6, r6, #2 +_0222F768: + ldr r0, [r5, r6] + bl FUN_0200C3DC + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xd + blt _0222F768 + pop {r4, r5, r6, pc} + thumb_func_end MOD62_0222F75C + + thumb_func_start MOD62_0222F778 +MOD62_0222F778: ; 0x0222F778 + add r1, r0, #0 + mov r0, #0xf1 + lsl r0, r0, #2 + ldr r0, [r1, r0] + ldr r3, _0222F78C ; =0x02029C75 + lsl r0, r0, #3 + add r0, r1, r0 + ldr r0, [r0, #8] + add r1, #0x68 + bx r3 + .align 2, 0 +_0222F78C: .word 0x02029C75 + thumb_func_end MOD62_0222F778 + + thumb_func_start MOD62_0222F790 +MOD62_0222F790: ; 0x0222F790 + mov r1, #0xf1 + add r2, r0, #0 + lsl r1, r1, #2 + ldr r1, [r2, r1] + ldr r3, _0222F7A4 ; =0x02029C75 + lsl r1, r1, #3 + add r1, r2, r1 + add r0, #0x68 + ldr r1, [r1, #8] + bx r3 + .align 2, 0 +_0222F7A4: .word 0x02029C75 + thumb_func_end MOD62_0222F790 + + thumb_func_start MOD62_0222F7A8 +MOD62_0222F7A8: ; 0x0222F7A8 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_0222F7AE: + ldr r0, [r5, #0x64] + add r1, r4, #0 + bl FUN_02029CF4 + add r1, r5, r4 + add r1, #0x80 + add r4, r4, #1 + strb r0, [r1] + cmp r4, #0x51 + blt _0222F7AE + pop {r3, r4, r5, pc} + thumb_func_end MOD62_0222F7A8 + + thumb_func_start MOD62_0222F7C4 +MOD62_0222F7C4: ; 0x0222F7C4 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_0222F7CA: + add r2, r5, r4 + add r2, #0x80 + ldrb r2, [r2] + ldr r0, [r5, #0x64] + add r1, r4, #0 + bl FUN_02029D40 + add r4, r4, #1 + cmp r4, #0x51 + blt _0222F7CA + pop {r3, r4, r5, pc} + thumb_func_end MOD62_0222F7C4 + + thumb_func_start MOD62_0222F7E0 +MOD62_0222F7E0: ; 0x0222F7E0 + push {r3, lr} + mov r0, #7 + str r0, [sp] + ldr r0, _0222F804 ; =0x04000050 + mov r1, #0 + mov r2, #6 + mov r3, #0xb + bl G2x_SetBlendAlpha_ + mov r0, #8 + str r0, [sp] + ldr r0, _0222F808 ; =0x04001050 + mov r1, #0 + mov r2, #0xe + mov r3, #7 + bl G2x_SetBlendAlpha_ + pop {r3, pc} + .align 2, 0 +_0222F804: .word 0x04000050 +_0222F808: .word 0x04001050 + thumb_func_end MOD62_0222F7E0 + + thumb_func_start MOD62_0222F80C +MOD62_0222F80C: ; 0x0222F80C + push {r3, r4, r5, r6, r7, lr} + mov r1, #0xf1 + add r5, r0, #0 + lsl r1, r1, #2 + ldr r0, [r5, r1] + lsl r0, r0, #3 + add r0, r5, r0 + ldr r0, [r0, #4] + cmp r0, #0xff + beq _0222F832 + ldr r2, [r5] + lsl r0, r0, #2 + add r0, r2, r0 + add r1, #0x64 + ldr r0, [r0, #4] + ldr r1, [r5, r1] + bl FUN_02069B88 + pop {r3, r4, r5, r6, r7, pc} +_0222F832: + ldr r1, [r5] + mov r6, #0 + ldr r0, [r1] + cmp r0, #0 + ble _0222F868 + add r4, r6, #0 +_0222F83E: + add r0, r1, r4 + ldr r7, [r0, #4] + mov r1, #0x4c + add r0, r7, #0 + mov r2, #0 + bl FUN_020671BC + cmp r0, #0 + bne _0222F85C + ldr r1, _0222F86C ; =0x00000428 + add r0, r7, #0 + ldr r1, [r5, r1] + bl FUN_02069B88 + pop {r3, r4, r5, r6, r7, pc} +_0222F85C: + ldr r1, [r5] + add r6, r6, #1 + ldr r0, [r1] + add r4, r4, #4 + cmp r6, r0 + blt _0222F83E +_0222F868: + pop {r3, r4, r5, r6, r7, pc} + nop +_0222F86C: .word 0x00000428 + thumb_func_end MOD62_0222F80C + + thumb_func_start MOD62_0222F870 +MOD62_0222F870: ; 0x0222F870 + push {r3, r4, r5, r6, r7, lr} + mov r7, #0 + add r6, r0, #0 + add r5, r7, #0 + add r4, r7, #0 +_0222F87A: + add r0, r6, #0 + add r1, r4, #0 + bl FUN_02029CC8 + bl FUN_02029CE0 + cmp r0, #0 + beq _0222F88C + add r5, r5, #1 +_0222F88C: + add r4, r4, #1 + cmp r4, #8 + blt _0222F87A + cmp r5, #0 + beq _0222F898 + mov r7, #1 +_0222F898: + add r0, r7, #0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222F870 + + thumb_func_start MOD62_0222F89C +MOD62_0222F89C: ; 0x0222F89C + mov r2, #0xc + mul r2, r1 + add r1, r0, r2 + mov r0, #0x99 + lsl r0, r0, #2 + ldr r2, [r1, r0] + add r0, r0, #4 + ldr r0, [r1, r0] + cmp r2, #0xff + bne _0222F8B8 + cmp r0, #0 + bne _0222F8B8 + mov r0, #0 + bx lr +_0222F8B8: + cmp r2, #0xff + bne _0222F8C4 + cmp r0, #1 + bne _0222F8C4 + mov r0, #1 + bx lr +_0222F8C4: + cmp r2, #0xff + beq _0222F8D0 + cmp r0, #1 + bne _0222F8D0 + mov r0, #2 + bx lr +_0222F8D0: + mov r0, #3 + bx lr + thumb_func_end MOD62_0222F89C + + thumb_func_start MOD62_0222F8D4 +MOD62_0222F8D4: ; 0x0222F8D4 + push {r3, r4} + cmp r2, #0xff + bne _0222F8E6 + mov r2, #0xf6 + lsl r2, r2, #2 + ldr r4, [r0, r2] + sub r2, r2, #4 + str r4, [r0, r2] + b _0222F8EC +_0222F8E6: + mov r4, #0xf5 + lsl r4, r4, #2 + str r2, [r0, r4] +_0222F8EC: + mov r2, #0xf3 + lsl r2, r2, #2 + str r1, [r0, r2] + add r1, r2, #0 + add r1, #0xc + str r3, [r0, r1] + mov r1, #0 + add r2, #0x10 + str r1, [r0, r2] + pop {r3, r4} + bx lr + .align 2, 0 + thumb_func_end MOD62_0222F8D4 + + thumb_func_start MOD62_0222F904 +MOD62_0222F904: ; 0x0222F904 + push {r4, lr} + add r4, r0, #0 + add r0, #0xfc + mov r1, #1 + bl FUN_0200CCF8 + add r0, r4, #0 + add r0, #0xfc + bl FUN_02019570 + mov r0, #0x1a + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02001C5C + mov r0, #0x67 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02012870 + add r4, #0xfc + add r0, r4, #0 + bl FUN_02019178 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD62_0222F904 + + thumb_func_start MOD62_0222F93C +MOD62_0222F93C: ; 0x0222F93C + push {r3, lr} + mov r1, #1 + mov r2, #0 + mov r3, #3 + bl MOD62_0222F8D4 + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD62_0222F93C + + thumb_func_start MOD62_0222F94C +MOD62_0222F94C: ; 0x0222F94C + push {r4, lr} + add r4, r0, #0 + bl MOD62_0222D874 + add r0, r4, #0 + bl MOD62_0222DC7C + add r0, r4, #0 + bl MOD62_0222EC28 + mov r2, #0 + add r0, r4, #0 + mov r1, #2 + add r3, r2, #0 + bl MOD62_0222F8D4 + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD62_0222F94C + + thumb_func_start MOD62_0222F970 +MOD62_0222F970: ; 0x0222F970 + push {r3, lr} + mov r1, #3 + mov r2, #0 + add r3, r1, #0 + bl MOD62_0222F8D4 + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD62_0222F970 + + thumb_func_start MOD62_0222F980 +MOD62_0222F980: ; 0x0222F980 + push {r3, lr} + mov r1, #4 + mov r2, #0 + mov r3, #3 + bl MOD62_0222F8D4 + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD62_0222F980 + + thumb_func_start MOD62_0222F990 +MOD62_0222F990: ; 0x0222F990 + push {r3, r4, r5, lr} + mov r1, #0xf3 + add r4, r0, #0 + lsl r1, r1, #2 + ldr r1, [r4, r1] + lsl r2, r1, #2 + ldr r1, _0222F9B0 ; =0x02231220 + ldr r1, [r1, r2] + blx r1 + add r4, #0xe0 + add r5, r0, #0 + ldr r0, [r4] + bl FUN_0200BC1C + add r0, r5, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_0222F9B0: .word 0x02231220 + thumb_func_end MOD62_0222F990 + + thumb_func_start MOD62_0222F9B4 +MOD62_0222F9B4: ; 0x0222F9B4 + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222FA3C ; =0x021C48B8 + mov r1, #0x10 + ldr r0, [r0, #0x4c] + tst r1, r0 + beq _0222F9D2 + ldr r0, [r4] + mov r1, #0xc + add r0, r0, #1 + str r0, [r4] + bl _s32_div_f + str r1, [r4] + b _0222FA38 +_0222F9D2: + mov r1, #0x20 + tst r1, r0 + beq _0222F9EA + ldr r0, [r4] + cmp r0, #0 + ble _0222F9E4 + sub r0, r0, #1 + str r0, [r4] + b _0222FA38 +_0222F9E4: + mov r0, #0xb + str r0, [r4] + b _0222FA38 +_0222F9EA: + mov r1, #0x40 + tst r1, r0 + beq _0222FA0E + ldr r1, [r4] + asr r0, r1, #1 + lsr r0, r0, #0x1e + add r0, r1, r0 + asr r0, r0, #2 + beq _0222FA0A + sub r0, r1, #4 + mov r1, #0xc + str r0, [r4] + bl _s32_div_f + str r1, [r4] + b _0222FA38 +_0222FA0A: + mov r0, #0 + pop {r4, pc} +_0222FA0E: + mov r1, #0x80 + tst r0, r1 + beq _0222FA34 + ldr r1, [r4] + asr r0, r1, #1 + lsr r0, r0, #0x1e + add r0, r1, r0 + asr r0, r0, #2 + cmp r0, #2 + beq _0222FA30 + add r0, r1, #4 + mov r1, #0xc + str r0, [r4] + bl _s32_div_f + str r1, [r4] + b _0222FA38 +_0222FA30: + mov r0, #0 + pop {r4, pc} +_0222FA34: + mov r0, #0 + pop {r4, pc} +_0222FA38: + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_0222FA3C: .word 0x021C48B8 + thumb_func_end MOD62_0222F9B4 + + thumb_func_start MOD62_0222FA40 +MOD62_0222FA40: ; 0x0222FA40 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + mov r4, #0 + str r2, [sp] + cmp r1, #0 + bne _0222FA50 + mov r4, #1 +_0222FA50: + mov r0, #0xf1 + lsl r0, r0, #2 + lsl r6, r1, #2 + add r7, r5, r0 + add r1, sp, #4 + ldr r0, [r7, r6] + add r1, #2 + add r2, sp, #4 + bl MOD62_0222E53C + mov r0, #0xbd + add r1, r5, r6 + lsl r0, r0, #2 + ldr r0, [r1, r0] + add r3, sp, #4 + mov r1, #2 + mov r2, #0 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + bl FUN_0200C714 + ldr r0, [sp] + cmp r0, #1 + bne _0222FAAE + mov r0, #0xf1 + lsl r0, r0, #2 + add r1, r5, r0 + ldr r0, [r7, r6] + lsl r4, r4, #2 + str r0, [r1, r4] + ldr r0, [r1, r4] + add r1, sp, #4 + add r1, #2 + add r2, sp, #4 + bl MOD62_0222E53C + mov r0, #0xbd + add r1, r5, r4 + lsl r0, r0, #2 + ldr r0, [r1, r0] + add r3, sp, #4 + mov r1, #2 + mov r2, #0 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + bl FUN_0200C714 +_0222FAAE: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD62_0222FA40 + + thumb_func_start MOD62_0222FAB4 +MOD62_0222FAB4: ; 0x0222FAB4 + push {r4, r5, r6, lr} + sub sp, #0x10 + mov r1, #0xf5 + add r4, r0, #0 + lsl r1, r1, #2 + ldr r1, [r4, r1] + cmp r1, #6 + bls _0222FAC6 + b _0222FD4C +_0222FAC6: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0222FAD2: ; jump table + .short _0222FAE0 - _0222FAD2 - 2 ; case 0 + .short _0222FBBC - _0222FAD2 - 2 ; case 1 + .short _0222FBCC - _0222FAD2 - 2 ; case 2 + .short _0222FBE0 - _0222FAD2 - 2 ; case 3 + .short _0222FCA2 - _0222FAD2 - 2 ; case 4 + .short _0222FD00 - _0222FAD2 - 2 ; case 5 + .short _0222FD10 - _0222FAD2 - 2 ; case 6 +_0222FAE0: + bl MOD62_0222E560 + add r0, r4, #0 + bl MOD62_0222E5D8 + add r0, r4, #0 + bl MOD62_0222E6D8 + add r0, r4, #0 + bl MOD62_0222F2C8 + add r0, r4, #0 + bl MOD62_0222F36C + add r0, r4, #0 + bl MOD62_0222F3D4 + add r0, r4, #0 + bl MOD62_0222E7A4 + add r0, r4, #0 + bl MOD62_0222EA6C + mov r0, #0x15 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r3, #2 + add r1, r4, #0 + str r3, [sp, #8] + mov r0, #0x28 + str r0, [sp, #0xc] + add r0, r4, #0 + add r0, #0xe4 + ldr r0, [r0] + add r1, #0xec + mov r2, #1 + bl MOD62_0222EEE0 + add r0, r4, #0 + bl MOD62_0222D67C + add r0, r4, #0 + mov r1, #1 + bl MOD62_0222DB10 + add r0, r4, #0 + bl MOD62_0222D654 + add r0, r4, #0 + bl MOD62_0222F43C + add r0, r4, #0 + bl MOD62_0222F5B0 + add r0, r4, #0 + bl MOD62_0222E888 + add r0, r4, #0 + bl MOD62_0222E8F8 + add r0, r4, #0 + bl MOD62_0222F778 + add r0, r4, #0 + bl MOD62_0222F7A8 + ldr r1, _0222FD60 ; =0x00000418 + add r0, r4, #0 + ldr r1, [r4, r1] + bl MOD62_0222DEF8 + add r0, r4, #0 + bl MOD62_0222DF5C + add r0, r4, #0 + bl MOD62_0222E004 + add r0, r4, #0 + mov r1, #0 + bl MOD62_0222F738 + add r0, r4, #0 + mov r1, #0 + bl MOD62_0222E9B4 + add r0, r4, #0 + bl MOD62_0222DDB4 + add r0, r4, #0 + mov r1, #0 + bl MOD62_0222DDE0 + add r0, r4, #0 + add r0, #0xec + mov r1, #7 + bl MOD62_0222EE78 + bl MOD62_0222F270 + add r0, r4, #0 + mov r1, #0 + bl MOD62_022300DC + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _0222FD4C +_0222FBBC: + bl MOD62_0222F288 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _0222FD4C +_0222FBCC: + bl FUN_0200E308 + cmp r0, #1 + beq _0222FBD6 + b _0222FD4C +_0222FBD6: + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] +_0222FBE0: + bl FUN_02020AA4 + cmp r0, #1 + bne _0222FBF0 + add r0, r4, #0 + bl MOD62_0222F93C + b _0222FD4C +_0222FBF0: + mov r0, #0xf1 + lsl r0, r0, #2 + ldr r6, [r4, r0] + add r0, r4, r0 + bl MOD62_0222F9B4 + mov r1, #0xf1 + lsl r1, r1, #2 + ldr r5, [r4, r1] + cmp r0, #1 + str r6, [r4, r1] + bne _0222FC4C + add r0, r4, #0 + bl MOD62_0222D874 + add r0, r4, #0 + bl MOD62_0222DC7C + add r0, r4, #0 + bl MOD62_0222EC28 + mov r0, #0xf1 + lsl r0, r0, #2 + str r5, [r4, r0] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + bl MOD62_0222FA40 + add r0, r4, #0 + bl MOD62_0222DAEC + add r0, r4, #0 + bl MOD62_0222D67C + add r0, r4, #0 + mov r1, #1 + bl MOD62_0222DB10 + add r0, r4, #0 + bl MOD62_0222D654 + ldr r0, _0222FD64 ; =0x000005DC + bl FUN_020054C8 + b _0222FD4C +_0222FC4C: + ldr r0, _0222FD68 ; =0x021C48B8 + ldr r2, [r0, #0x48] + mov r0, #1 + tst r0, r2 + beq _0222FC8E + add r0, r1, #0 + add r0, #0x10 + ldr r0, [r4, r0] + add r1, #0x10 + add r0, r0, #1 + str r0, [r4, r1] + add r0, r4, #0 + add r0, #0xec + mov r1, #8 + bl MOD62_0222EE78 + mov r0, #0xf1 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, r4, #0 + str r0, [sp] + add r0, r4, #0 + add r0, #0xe4 + ldr r0, [r0] + add r1, #0xfc + mov r2, #1 + add r3, r4, #0 + bl MOD62_0222E3C4 + ldr r0, _0222FD64 ; =0x000005DC + bl FUN_020054C8 + b _0222FD4C +_0222FC8E: + mov r0, #2 + tst r0, r2 + beq _0222FD4C + mov r0, #5 + add r1, #0x10 + str r0, [r4, r1] + ldr r0, _0222FD6C ; =0x000005DD + bl FUN_020054C8 + b _0222FD4C +_0222FCA2: + mov r0, #0x1a + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02001C78 + add r1, r0, #0 + mov r0, #1 + mvn r0, r0 + cmp r1, r0 + beq _0222FCBE + add r0, r0, #1 + cmp r1, r0 + beq _0222FD4C + b _0222FCD8 +_0222FCBE: + add r0, r4, #0 + bl MOD62_0222F904 + add r0, r4, #0 + add r0, #0xec + mov r1, #7 + bl MOD62_0222EE78 + mov r0, #0xf5 + mov r1, #3 + lsl r0, r0, #2 + str r1, [r4, r0] + b _0222FD4C +_0222FCD8: + cmp r1, #0 + beq _0222FD4C + add r0, r4, #0 + blx r1 + cmp r0, #1 + beq _0222FCEC + add r0, r4, #0 + bl MOD62_0222F904 + b _0222FD4C +_0222FCEC: + add r0, r4, #0 + add r0, #0xec + mov r1, #7 + bl MOD62_0222EE78 + mov r0, #0xf5 + mov r1, #3 + lsl r0, r0, #2 + str r1, [r4, r0] + b _0222FD4C +_0222FD00: + bl MOD62_0222F2A8 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _0222FD4C +_0222FD10: + bl FUN_0200E308 + cmp r0, #1 + bne _0222FD4C + add r0, r4, #0 + add r0, #0xec + bl FUN_02019178 + add r0, r4, #0 + bl MOD62_0222ED04 + add r0, r4, #0 + bl MOD62_0222E77C + add r0, r4, #0 + bl MOD62_0222F75C + add r0, r4, #0 + bl MOD62_0222E9D4 + add r0, r4, #0 + bl MOD62_0222E0C8 + ldr r0, [r4] + mov r1, #0 + bl FUN_02085D9C + add sp, #0x10 + mov r0, #0 + pop {r4, r5, r6, pc} +_0222FD4C: + add r0, r4, #0 + bl MOD62_0222E754 + add r0, r4, #0 + bl MOD62_0222ECD4 + mov r0, #1 + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_0222FD60: .word 0x00000418 +_0222FD64: .word 0x000005DC +_0222FD68: .word 0x021C48B8 +_0222FD6C: .word 0x000005DD + thumb_func_end MOD62_0222FAB4 + + thumb_func_start MOD62_0222FD70 +MOD62_0222FD70: ; 0x0222FD70 + push {r3, lr} + cmp r1, #3 + bhi _0222FDA2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0222FD82: ; jump table + .short _0222FD8A - _0222FD82 - 2 ; case 0 + .short _0222FD9A - _0222FD82 - 2 ; case 1 + .short _0222FD92 - _0222FD82 - 2 ; case 2 + .short _0222FD9A - _0222FD82 - 2 ; case 3 +_0222FD8A: + mov r1, #1 + bl FUN_0200C61C + pop {r3, pc} +_0222FD92: + mov r1, #2 + bl FUN_0200C61C + pop {r3, pc} +_0222FD9A: + mov r1, #0 + bl FUN_0200C61C + pop {r3, pc} +_0222FDA2: + bl ErrorHandling + pop {r3, pc} + thumb_func_end MOD62_0222FD70 + + thumb_func_start MOD62_0222FDA8 +MOD62_0222FDA8: ; 0x0222FDA8 + push {r4, r5, r6, lr} + sub sp, #8 + add r5, r0, #0 + add r4, r1, #0 + add r6, r2, #0 + cmp r5, #0 + beq _0222FDCC + add r1, sp, #4 + add r2, sp, #0 + bl FUN_020119A4 + ldr r1, [sp, #4] + ldr r2, [sp] + add r0, r5, #0 + add r1, r1, r4 + add r2, r2, r6 + bl FUN_020118C4 +_0222FDCC: + add sp, #8 + pop {r4, r5, r6, pc} + thumb_func_end MOD62_0222FDA8 + + thumb_func_start MOD62_0222FDD0 +MOD62_0222FDD0: ; 0x0222FDD0 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4] + cmp r0, #3 + beq _0222FDE2 + cmp r0, #6 + beq _0222FDFC + b _0222FE1C +_0222FDE2: + mov r1, #0 + ldr r0, [r4, #8] + sub r2, r1, #1 + bl MOD62_0222FDA8 + ldr r0, [r4, #4] + mov r1, #2 + bl FUN_0200C61C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, pc} +_0222FDFC: + ldr r0, [r4, #8] + mov r1, #0 + mov r2, #2 + bl MOD62_0222FDA8 + ldr r0, [r4, #4] + mov r1, #0 + bl FUN_0200C61C + add r0, r5, #0 + bl FUN_0200CAB4 + add r0, r4, #0 + bl FUN_02016A18 + pop {r3, r4, r5, pc} +_0222FE1C: + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD62_0222FDD0 + + thumb_func_start MOD62_0222FE24 +MOD62_0222FE24: ; 0x0222FE24 + push {r4, r5, r6, lr} + add r6, r0, #0 + add r5, r1, #0 + mov r0, #0x35 + mov r1, #0xc + bl FUN_02016998 + add r4, r0, #0 + mov r0, #1 + str r0, [r4] + mov r1, #0 + str r6, [r4, #4] + add r0, r5, #0 + sub r2, r1, #1 + str r5, [r4, #8] + bl MOD62_0222FDA8 + mov r2, #0xfa + ldr r0, _0222FE54 ; =MOD62_0222FDD0 + add r1, r4, #0 + lsl r2, r2, #2 + bl FUN_0200CA44 + pop {r4, r5, r6, pc} + .align 2, 0 +_0222FE54: .word MOD62_0222FDD0 + thumb_func_end MOD62_0222FE24 + + thumb_func_start MOD62_0222FE58 +MOD62_0222FE58: ; 0x0222FE58 + push {r4, r5, r6, lr} + add r4, r2, #0 + add r5, r0, #0 + add r0, r4, #0 + add r0, #0xd8 + ldr r0, [r0] + add r6, r1, #0 + cmp r0, #0 + bne _0222FE6C + b _022300A8 +_0222FE6C: + cmp r5, #0x14 + bls _0222FE72 + b _022300A4 +_0222FE72: + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222FE7E: ; jump table + .short _0222FFE6 - _0222FE7E - 2 ; case 0 + .short _0222FFE6 - _0222FE7E - 2 ; case 1 + .short _0222FFE6 - _0222FE7E - 2 ; case 2 + .short _0222FFE6 - _0222FE7E - 2 ; case 3 + .short _0222FFE6 - _0222FE7E - 2 ; case 4 + .short _0222FFE6 - _0222FE7E - 2 ; case 5 + .short _0222FFE6 - _0222FE7E - 2 ; case 6 + .short _0222FFE6 - _0222FE7E - 2 ; case 7 + .short _0222FEA8 - _0222FE7E - 2 ; case 8 + .short _0222FEF2 - _0222FE7E - 2 ; case 9 + .short _0222FF40 - _0222FE7E - 2 ; case 10 + .short _0222FF6E - _0222FE7E - 2 ; case 11 + .short _0222FFAC - _0222FE7E - 2 ; case 12 + .short _02230074 - _0222FE7E - 2 ; case 13 + .short _02230074 - _0222FE7E - 2 ; case 14 + .short _02230074 - _0222FE7E - 2 ; case 15 + .short _02230074 - _0222FE7E - 2 ; case 16 + .short _02230074 - _0222FE7E - 2 ; case 17 + .short _02230074 - _0222FE7E - 2 ; case 18 + .short _02230074 - _0222FE7E - 2 ; case 19 + .short _02230074 - _0222FE7E - 2 ; case 20 +_0222FEA8: + cmp r6, #0 + bne _0222FEE6 + ldr r1, _022300AC ; =0x00000418 + ldr r0, [r4, r1] + cmp r0, #0 + ble _0222FEB6 + b _0222FEBA +_0222FEB6: + add r0, r1, #4 + ldr r0, [r4, r0] +_0222FEBA: + sub r0, r0, #1 + str r0, [r4, r1] + add r0, r4, #0 + bl MOD62_0222E0C8 + ldr r1, _022300AC ; =0x00000418 + add r0, r4, #0 + ldr r1, [r4, r1] + bl MOD62_0222DEF8 + add r0, r4, #0 + bl MOD62_0222DF5C + add r0, r4, #0 + bl MOD62_0222E004 + add r0, r4, #0 + bl MOD62_0222F0D4 + ldr r0, _022300B0 ; =0x000006C5 + bl FUN_020054C8 +_0222FEE6: + ldr r0, _022300B4 ; =0x00000404 + add r1, r6, #0 + ldr r0, [r4, r0] + bl MOD62_0222FD70 + pop {r4, r5, r6, pc} +_0222FEF2: + cmp r6, #0 + bne _0222FF34 + ldr r1, _022300AC ; =0x00000418 + ldr r0, [r4, r1] + add r0, r0, #1 + str r0, [r4, r1] + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + bl _s32_div_f + ldr r0, _022300AC ; =0x00000418 + str r1, [r4, r0] + add r0, r4, #0 + bl MOD62_0222E0C8 + ldr r1, _022300AC ; =0x00000418 + add r0, r4, #0 + ldr r1, [r4, r1] + bl MOD62_0222DEF8 + add r0, r4, #0 + bl MOD62_0222DF5C + add r0, r4, #0 + bl MOD62_0222E004 + add r0, r4, #0 + bl MOD62_0222F0D4 + ldr r0, _022300B0 ; =0x000006C5 + bl FUN_020054C8 +_0222FF34: + ldr r0, _022300B8 ; =0x00000408 + add r1, r6, #0 + ldr r0, [r4, r0] + bl MOD62_0222FD70 + pop {r4, r5, r6, pc} +_0222FF40: + cmp r6, #0 + bne _0222FF62 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + cmp r1, #5 + beq _0222FF58 + mov r1, #5 + str r1, [r4, r0] + ldr r0, _022300BC ; =0x000005DD + bl FUN_020054C8 +_0222FF58: + ldr r0, _022300C0 ; =0x0000040C + mov r1, #0 + ldr r0, [r4, r0] + bl MOD62_0222FE24 +_0222FF62: + ldr r0, _022300C0 ; =0x0000040C + add r1, r6, #0 + ldr r0, [r4, r0] + bl MOD62_0222FD70 + pop {r4, r5, r6, pc} +_0222FF6E: + cmp r6, #0 + bne _0222FF9E + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + cmp r1, #6 + beq _0222FF8E + mov r1, #6 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #0 + bl MOD62_022300DC + ldr r0, _022300C4 ; =0x000005E2 + bl FUN_020054C8 +_0222FF8E: + mov r0, #0x41 + mov r1, #0x8e + lsl r0, r0, #4 + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + bl MOD62_0222FE24 +_0222FF9E: + mov r0, #0x41 + lsl r0, r0, #4 + ldr r0, [r4, r0] + add r1, r6, #0 + bl MOD62_0222FD70 + pop {r4, r5, r6, pc} +_0222FFAC: + cmp r6, #0 + bne _0222FFDA + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + cmp r1, #7 + beq _0222FFCC + mov r1, #7 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #0 + bl MOD62_022300DC + ldr r0, _022300BC ; =0x000005DD + bl FUN_020054C8 +_0222FFCC: + ldr r0, _022300C8 ; =0x00000414 + mov r1, #0x8f + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + bl MOD62_0222FE24 +_0222FFDA: + ldr r0, _022300C8 ; =0x00000414 + add r1, r6, #0 + ldr r0, [r4, r0] + bl MOD62_0222FD70 + pop {r4, r5, r6, pc} +_0222FFE6: + cmp r6, #0 + bne _022300A8 + add r0, r4, #0 + bl MOD62_0222D76C + cmp r0, #0 + bne _02230006 + ldr r0, _022300CC ; =0x000005F2 + bl FUN_020054C8 + add r4, #0xec + add r0, r4, #0 + mov r1, #0xf + bl MOD62_0222EE78 + pop {r4, r5, r6, pc} +_02230006: + mov r0, #0x42 + lsl r0, r0, #4 + add r6, r4, r0 + ldrb r1, [r6, r5] + cmp r1, #0 + beq _0223005C + ldr r0, [r4, #0x64] + sub r1, r1, #1 + bl FUN_02029CF4 + cmp r0, #0 + beq _0223005C + lsl r1, r5, #0x18 + add r0, r4, #0 + lsr r1, r1, #0x18 + bl MOD62_0222D6EC + add r1, r4, #0 + add r1, #0xd4 + str r0, [r1] + ldrb r0, [r6, r5] + bl FUN_02085FD0 + add r1, r0, #0 + add r0, r4, #0 + add r0, #0xec + bl MOD62_0222F208 + ldr r0, [r4] + mov r2, #0 + ldrb r1, [r6, r5] + ldr r0, [r0, #0x20] + mvn r2, r2 + bl FUN_02029D44 + add r0, r4, #0 + add r1, r5, #0 + bl MOD62_0222F168 + ldr r0, _022300D0 ; =0x000005EB + bl FUN_020054C8 + pop {r4, r5, r6, pc} +_0223005C: + ldrb r0, [r6, r5] + cmp r0, #0 + beq _022300A8 + ldr r0, _022300CC ; =0x000005F2 + bl FUN_020054C8 + add r4, #0xec + add r0, r4, #0 + mov r1, #0x10 + bl MOD62_0222EE78 + pop {r4, r5, r6, pc} +_02230074: + cmp r6, #0 + bne _022300A8 + sub r5, #0xd + lsl r2, r5, #0x18 + add r0, r4, #0 + lsr r2, r2, #0x18 + bl MOD62_0222DA38 + lsl r0, r5, #4 + add r1, r4, r0 + mov r0, #0xca + lsl r0, r0, #2 + ldrb r0, [r1, r0] + bl FUN_02085FD0 + add r4, #0xec + add r1, r0, #0 + add r0, r4, #0 + bl MOD62_0222F208 + ldr r0, _022300D0 ; =0x000005EB + bl FUN_020054C8 + pop {r4, r5, r6, pc} +_022300A4: + bl ErrorHandling +_022300A8: + pop {r4, r5, r6, pc} + nop +_022300AC: .word 0x00000418 +_022300B0: .word 0x000006C5 +_022300B4: .word 0x00000404 +_022300B8: .word 0x00000408 +_022300BC: .word 0x000005DD +_022300C0: .word 0x0000040C +_022300C4: .word 0x000005E2 +_022300C8: .word 0x00000414 +_022300CC: .word 0x000005F2 +_022300D0: .word 0x000005EB + thumb_func_end MOD62_0222FE58 + + thumb_func_start MOD62_022300D4 +MOD62_022300D4: ; 0x022300D4 + mov r1, #0x96 + lsl r1, r1, #2 + ldr r0, [r0, r1] + bx lr + thumb_func_end MOD62_022300D4 + + thumb_func_start MOD62_022300DC +MOD62_022300DC: ; 0x022300DC + add r0, #0xd8 + str r1, [r0] + bx lr + .align 2, 0 + thumb_func_end MOD62_022300DC + + thumb_func_start MOD62_022300E4 +MOD62_022300E4: ; 0x022300E4 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + str r0, [sp, #4] + add r1, sp, #0x10 + mov r0, #0 + strb r0, [r1] + strb r0, [r1, #1] + strb r0, [r1, #2] + mov r7, #0x1d + lsl r7, r7, #4 + strb r0, [r1, #3] + ldr r1, _022301A0 ; =0x02231260 + ldr r2, [sp, #4] + add r3, r7, #1 + add r4, r7, #2 + add r5, r7, #3 +_02230104: + ldrb r6, [r1] + add r0, r0, #1 + strb r6, [r2, r7] + ldrb r6, [r1, #1] + strb r6, [r2, r3] + ldrb r6, [r1, #2] + strb r6, [r2, r4] + ldrb r6, [r1, #3] + add r1, r1, #4 + strb r6, [r2, r5] + add r2, r2, #4 + cmp r0, #0xd + blt _02230104 + cmp r0, #0x15 + bge _0223017E + mov r3, #0x1d + ldr r2, [sp, #4] + lsl r3, r3, #4 + add r2, r2, r3 + lsl r4, r0, #2 + ldr r1, [sp, #4] + ldr r3, [sp, #4] + add r1, r1, r4 + add r2, r2, r4 + lsl r4, r0, #4 + add r5, sp, #0xc + add r3, r3, r4 + ldrb r4, [r5, #4] + strb r4, [r5] + ldrb r4, [r5, #5] + strb r4, [r5, #1] + ldrb r4, [r5, #6] + strb r4, [r5, #2] + ldrb r4, [r5, #7] + strb r4, [r5, #3] + ldrb r4, [r5, #2] + ldrb r6, [r5] + ldrb r7, [r5, #1] + str r4, [sp, #8] + ldrb r4, [r5, #3] + mov ip, r4 +_02230156: + mov r4, #0x1d + lsl r4, r4, #4 + strb r6, [r1, r4] + add r4, r4, #1 + strb r7, [r1, r4] + ldr r5, _022301A4 ; =0x000001D2 + ldr r4, [sp, #8] + add r0, r0, #1 + strb r4, [r1, r5] + add r5, r5, #1 + mov r4, ip + strb r4, [r1, r5] + mov r4, #0x26 + lsl r4, r4, #4 + str r2, [r3, r4] + add r1, r1, #4 + add r2, r2, #4 + add r3, #0x10 + cmp r0, #0x15 + blt _02230156 +_0223017E: + mov r0, #0x35 + str r0, [sp] + mov r1, #0x1d + ldr r0, [sp, #4] + lsl r1, r1, #4 + add r0, r0, r1 + ldr r2, _022301A8 ; =MOD62_0222FE58 + ldr r3, [sp, #4] + mov r1, #0x15 + bl FUN_020220C4 + mov r2, #0x73 + ldr r1, [sp, #4] + lsl r2, r2, #2 + str r0, [r1, r2] + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_022301A0: .word 0x02231260 +_022301A4: .word 0x000001D2 +_022301A8: .word MOD62_0222FE58 + thumb_func_end MOD62_022300E4 + + thumb_func_start MOD62_022301AC +MOD62_022301AC: ; 0x022301AC + push {r3, r4, r5, r6, lr} + sub sp, #0x34 + ldr r1, _02230214 ; =0x00000428 + add r5, r0, #0 + ldr r1, [r5, r1] + add r0, sp, #0x24 + mov r2, #2 + bl FUN_02068B68 + ldr r0, _02230214 ; =0x00000428 + mov r1, #5 + ldr r0, [r5, r0] + mov r2, #0 + bl FUN_020671BC + add r4, r0, #0 + ldr r0, _02230214 ; =0x00000428 + mov r1, #2 + ldr r0, [r5, r0] + bl FUN_02068E14 + add r6, r0, #0 + mov r0, #0x6b + lsl r0, r0, #2 + lsl r1, r4, #0x10 + str r6, [r5, r0] + add r0, sp, #0x10 + lsr r1, r1, #0x10 + bl FUN_02069010 + ldr r0, _02230218 ; =0xFFFFFD80 + add r6, #0x30 + str r0, [sp] + mov r1, #0 + str r1, [sp, #4] + add r0, sp, #0x10 + str r0, [sp, #8] + mov r0, #0x69 + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, sp, #0x24 + mov r2, #0xc0 + add r3, r6, #0 + bl FUN_020073A0 + mov r1, #0x6a + lsl r1, r1, #2 + str r0, [r5, r1] + add sp, #0x34 + pop {r3, r4, r5, r6, pc} + nop +_02230214: .word 0x00000428 +_02230218: .word 0xFFFFFD80 + thumb_func_end MOD62_022301AC + + thumb_func_start MOD62_0223021C +MOD62_0223021C: ; 0x0223021C + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, _02230268 ; =0x00000428 + mov r1, #5 + ldr r0, [r5, r0] + mov r2, #0 + bl FUN_020671BC + add r4, r0, #0 + ldr r0, _02230268 ; =0x00000428 + ldr r0, [r5, r0] + bl FUN_02068854 + add r6, r0, #0 + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_02007314 + mov r1, #0x97 + lsl r2, r4, #0x10 + str r6, [sp] + mov r0, #0 + str r0, [sp, #4] + lsl r1, r1, #2 + str r0, [sp, #8] + ldr r0, [r5, r1] + sub r1, #0xb4 + ldr r1, [r5, r1] + lsr r2, r2, #0x10 + mov r3, #2 + bl FUN_02069038 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_02230268: .word 0x00000428 + thumb_func_end MOD62_0223021C + + thumb_func_start MOD62_0223026C +MOD62_0223026C: ; 0x0223026C + push {r4, lr} + add r4, r0, #0 + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xc + mov r2, #0 + bl FUN_02007558 + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xd + mov r2, #0 + bl FUN_02007558 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD62_0223026C + + thumb_func_start MOD62_02230290 +MOD62_02230290: ; 0x02230290 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xc + bl FUN_0200782C + mov r1, #1 + lsl r1, r1, #8 + cmp r0, r1 + bne _022302AC + mov r0, #0 + pop {r4, pc} +_022302AC: + add r1, #0xa8 + ldr r0, [r4, r1] + mov r1, #0xc + bl FUN_0200782C + mov r2, #1 + lsl r2, r2, #8 + cmp r0, r2 + blt _022302DE + add r0, r2, #0 + add r0, #0xa8 + ldr r0, [r4, r0] + mov r1, #0xc + bl FUN_02007558 + mov r0, #0x6a + lsl r0, r0, #2 + mov r1, #0xd + add r2, r1, #0 + ldr r0, [r4, r0] + add r2, #0xf3 + bl FUN_02007558 + mov r0, #0 + pop {r4, pc} +_022302DE: + add r2, #0xa8 + ldr r0, [r4, r2] + mov r1, #0xc + mov r2, #0x20 + bl FUN_020079E0 + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xd + mov r2, #0x20 + bl FUN_020079E0 + mov r1, #0x6a + lsl r1, r1, #2 + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + bl FUN_02007F34 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD62_02230290 + + thumb_func_start MOD62_0223030C +MOD62_0223030C: ; 0x0223030C + push {r4, lr} + add r4, r0, #0 + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xc + bl FUN_0200782C + cmp r0, #0 + bne _02230324 + mov r0, #0 + pop {r4, pc} +_02230324: + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xc + bl FUN_0200782C + cmp r0, #0 + bgt _02230354 + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xc + mov r2, #0 + bl FUN_02007558 + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xd + mov r2, #0 + bl FUN_02007558 + mov r0, #0 + pop {r4, pc} +_02230354: + mov r0, #0x6a + lsl r0, r0, #2 + mov r1, #0xc + add r2, r1, #0 + ldr r0, [r4, r0] + sub r2, #0x2c + bl FUN_020079E0 + mov r0, #0x6a + lsl r0, r0, #2 + mov r1, #0xd + add r2, r1, #0 + ldr r0, [r4, r0] + sub r2, #0x2d + bl FUN_020079E0 + mov r1, #0x6a + lsl r1, r1, #2 + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + bl FUN_02007F34 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD62_0223030C + + thumb_func_start MOD62_02230388 +MOD62_02230388: ; 0x02230388 + add r2, r1, #0 + mov r1, #0x6a + lsl r1, r1, #2 + ldr r0, [r0, r1] + ldr r3, _02230398 ; =0x02007559 + mov r1, #6 + bx r3 + nop +_02230398: .word 0x02007559 + thumb_func_end MOD62_02230388 + + thumb_func_start MOD62_0223039C +MOD62_0223039C: ; 0x0223039C + mov r1, #0x6a + lsl r1, r1, #2 + ldr r3, _022303A8 ; =0x02007535 + ldr r0, [r0, r1] + bx r3 + nop +_022303A8: .word 0x02007535 + thumb_func_end MOD62_0223039C + + thumb_func_start MOD62_022303AC +MOD62_022303AC: ; 0x022303AC + push {r4, r5, r6, r7, lr} + sub sp, #0xa4 + mov r1, #0xf5 + add r4, r0, #0 + lsl r1, r1, #2 + ldr r2, [r4, r1] + cmp r2, #0xa + bhi _0223042C + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_022303C8: ; jump table + .short _022303DE - _022303C8 - 2 ; case 0 + .short _02230424 - _022303C8 - 2 ; case 1 + .short _0223049A - _022303C8 - 2 ; case 2 + .short _022304D2 - _022303C8 - 2 ; case 3 + .short _02230BDA - _022303C8 - 2 ; case 4 + .short _022304F2 - _022303C8 - 2 ; case 5 + .short _02230846 - _022303C8 - 2 ; case 6 + .short _022308B2 - _022303C8 - 2 ; case 7 + .short _02230AD4 - _022303C8 - 2 ; case 8 + .short _02230B00 - _022303C8 - 2 ; case 9 + .short _02230B96 - _022303C8 - 2 ; case 10 +_022303DE: + mov r1, #0 + bl MOD62_022300DC + add r0, r4, #0 + ldr r1, _0223071C ; =0x0000FFFF + add r0, #0xec + bl MOD62_0222EE78 + add r0, r4, #0 + bl MOD62_0222EFA0 + add r0, r4, #0 + bl MOD62_0222F0D4 + add r0, r4, #0 + mov r1, #1 + mov r2, #4 + bl MOD62_0222E180 + add r0, r4, #0 + bl MOD62_0222F778 + add r0, r4, #0 + bl MOD62_0222F7A8 + mov r0, #0x26 + mov r1, #0 + lsl r0, r0, #4 + str r1, [r4, r0] + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_02230424: + bl MOD62_022300D4 + cmp r0, #1 + bne _0223042E +_0223042C: + b _02230BDA +_0223042E: + mov r3, #0 + str r3, [sp] + mov r0, #0x10 + str r0, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + mov r1, #1 + mov r2, #3 + bl FUN_02003210 + mov r3, #0 + str r3, [sp] + mov r0, #0x10 + str r0, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + ldr r2, _0223071C ; =0x0000FFFF + mov r1, #4 + bl FUN_02003210 + mov r0, #0x10 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #1 + bl FUN_0201E74C + mov r0, #7 + mov r1, #1 + bl FUN_020178BC + add r0, r4, #0 + mov r1, #1 + bl MOD62_0222F738 + add r0, r4, #0 + mov r1, #1 + bl MOD62_0222E9B4 + add r0, r4, #0 + mov r1, #1 + bl MOD62_0222DDE0 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_0223049A: + add r0, #0xe8 + ldr r0, [r0] + bl FUN_020038E4 + cmp r0, #0 + bne _02230598 + mov r0, #3 + mov r1, #1 + bl FUN_020178BC + mov r0, #0x10 + str r0, [sp] + mov r3, #0 + str r3, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + mov r1, #1 + mov r2, #2 + bl FUN_02003210 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_022304D2: + add r0, #0xe8 + ldr r0, [r0] + bl FUN_020038E4 + cmp r0, #0 + bne _02230598 + add r0, r4, #0 + mov r1, #1 + bl MOD62_022300DC + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_022304F2: + add r2, r1, #0 + add r2, #8 + ldr r2, [r4, r2] + cmp r2, #7 + bls _022304FE + b _0223080C +_022304FE: + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_0223050A: ; jump table + .short _0223051A - _0223050A - 2 ; case 0 + .short _0223058C - _0223050A - 2 ; case 1 + .short _022305E2 - _0223050A - 2 ; case 2 + .short _02230646 - _0223050A - 2 ; case 3 + .short _02230692 - _0223050A - 2 ; case 4 + .short _022306D6 - _0223050A - 2 ; case 5 + .short _0223072C - _0223050A - 2 ; case 6 + .short _022307A0 - _0223050A - 2 ; case 7 +_0223051A: + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r3, #0 + str r3, [sp] + mov r0, #0xa + str r0, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + ldr r2, _02230720 ; =0x0000080B + mov r1, #2 + bl FUN_02003210 + mov r3, #0 + str r3, [sp] + mov r0, #0xa + str r0, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + ldr r2, _0223071C ; =0x0000FFFF + mov r1, #8 + bl FUN_02003210 + add r0, r4, #0 + mov r1, #0 + bl MOD62_022300DC + mov r0, #0x3e + mov r1, #0 + lsl r0, r0, #4 + str r1, [r4, r0] + add r0, r4, #0 + bl MOD62_0222F80C + add r0, r4, #0 + bl MOD62_022301AC + add r0, r4, #0 + mov r1, #1 + bl MOD62_02230388 + add r0, r4, #0 + add r0, #0xec + mov r1, #0xd + bl MOD62_0222EE78 + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_0223058C: + add r0, #0xe8 + ldr r0, [r0] + bl FUN_020038E4 + cmp r0, #0 + beq _0223059A +_02230598: + b _02230BDA +_0223059A: + mov r0, #0x35 + str r0, [sp, #0x80] + mov r1, #1 + mov r2, #0 + mov r0, #0xff + str r0, [sp, #0x88] + add r0, r4, #0 + str r1, [sp, #0x7c] + str r1, [sp, #0x94] + str r2, [sp, #0x84] + str r2, [sp, #0x90] + add r0, #0xdc + ldr r0, [r0] + mov r1, #0x9a + str r0, [sp, #0x98] + add r0, r4, #0 + add r0, #0xe8 + ldr r0, [r0] + str r0, [sp, #0x9c] + ldr r0, _02230724 ; =0x00000428 + ldr r0, [r4, r0] + bl FUN_020671BC + str r0, [sp, #0x8c] + add r0, sp, #0x7c + bl MOD08_02229918 + mov r1, #0x8b + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_022305E2: + add r2, sp, #0x58 + mov r0, #0 + str r0, [r2] + str r0, [r2, #4] + str r0, [r2, #8] + mov r0, #1 + str r0, [sp, #0x58] + add r0, r1, #0 + add r0, #0x54 + ldr r0, [r4, r0] + sub r1, #0x10 + str r0, [sp, #0x60] + ldr r0, [r4, r1] + add r1, r4, #0 + add r0, r0, #1 + str r0, [sp, #0x18] + add r0, sp, #0x64 + bl MOD62_0222DCBC + ldr r0, _02230724 ; =0x00000428 + mov r1, #0xa1 + ldr r0, [r4, r0] + add r2, sp, #0x18 + bl FUN_02067830 + ldr r0, _02230724 ; =0x00000428 + mov r1, #0xaa + ldr r0, [r4, r0] + add r2, sp, #0x64 + bl FUN_02067830 + mov r0, #0x35 + add r1, sp, #0x58 + bl MOD08_02228218 + mov r1, #0x8a + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [r4, r1] + bl MOD08_02228524 + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + mov r1, #0 + add r0, r0, #4 + str r1, [r4, r0] + b _02230BDA +_02230646: + mov r0, #0x8a + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD08_02228570 + cmp r0, #1 + bne _02230702 + mov r0, #0x8b + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD08_02229A00 + cmp r0, #1 + bne _02230702 + add r0, r4, #0 + bl MOD62_02230290 + mov r0, #0x8a + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD08_022285A4 + add r0, r4, #0 + mov r1, #0 + bl MOD62_02230388 + add r0, r4, #0 + bl MOD62_0223026C + ldr r0, _02230728 ; =0x000006C6 + bl FUN_020054C8 + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_02230692: + bl MOD62_02230290 + add r5, r0, #0 + mov r0, #0x8b + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD08_022299E8 + cmp r0, #0 + bne _02230702 + cmp r5, #0 + bne _02230702 + mov r0, #0x8b + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD08_02229A2C + mov r0, #0x10 + mov r1, #0 + bl FUN_0201E6E4 + add r0, r4, #0 + bl MOD62_0223021C + mov r0, #0x3e + mov r1, #0 + lsl r0, r0, #4 + str r1, [r4, r0] + sub r1, r0, #4 + ldr r1, [r4, r1] + sub r0, r0, #4 + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_022306D6: + mov r0, #0x8a + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD08_022285B4 + cmp r0, #0 + bne _02230702 + mov r0, #0x97 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02014D7C + cmp r0, #1 + bne _02230702 + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02007390 + cmp r0, #0 + beq _02230704 +_02230702: + b _02230BDA +_02230704: + mov r0, #0x8a + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD08_02228618 + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA + nop +_0223071C: .word 0x0000FFFF +_02230720: .word 0x0000080B +_02230724: .word 0x00000428 +_02230728: .word 0x000006C6 +_0223072C: + add r0, r1, #0 + add r0, #0xc + ldr r0, [r4, r0] + add r2, r0, #1 + add r0, r1, #0 + add r0, #0xc + str r2, [r4, r0] + add r0, r1, #0 + add r0, #0xc + ldr r0, [r4, r0] + cmp r0, #0x1e + blt _0223081A + add r0, r1, #0 + mov r2, #0 + add r0, #0xc + str r2, [r4, r0] + mov r0, #0x35 + mov r3, #1 + str r0, [sp, #0x34] + mov r0, #5 + str r0, [sp, #0x38] + mov r0, #0xff + str r0, [sp, #0x3c] + add r0, r4, #0 + str r3, [sp, #0x30] + str r2, [sp, #0x44] + str r3, [sp, #0x48] + add r0, #0xdc + ldr r0, [r0] + add r1, #0x54 + str r0, [sp, #0x4c] + add r0, r4, #0 + add r0, #0xe8 + ldr r0, [r0] + str r0, [sp, #0x50] + ldr r0, [r4, r1] + mov r1, #0x9a + bl FUN_020671BC + str r0, [sp, #0x40] + add r0, sp, #0x30 + bl MOD08_02229918 + mov r1, #0x8b + lsl r1, r1, #2 + str r0, [r4, r1] + bl MOD62_0222F7E0 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_022307A0: + bl MOD62_0223030C + add r5, r0, #0 + mov r0, #0x8b + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD08_022299E8 + cmp r0, #0 + bne _0223081A + cmp r5, #0 + bne _0223081A + mov r0, #0xa + str r0, [sp] + mov r3, #0 + str r3, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + ldr r2, _02230B38 ; =0x0000080B + mov r1, #2 + bl FUN_02003210 + mov r0, #0xa + str r0, [sp] + mov r3, #0 + str r3, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + ldr r2, _02230B3C ; =0x0000FFFF + mov r1, #8 + bl FUN_02003210 + add r0, r4, #0 + mov r1, #1 + bl MOD62_02230388 + add r0, r4, #0 + bl MOD62_0223039C + mov r0, #0x8b + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD08_02229A2C + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_0223080C: + add r0, r4, #0 + add r0, #0xe8 + ldr r0, [r0] + bl FUN_020038E4 + cmp r0, #0 + beq _0223081C +_0223081A: + b _02230BDA +_0223081C: + mov r0, #0x10 + mov r1, #0 + bl FUN_0201E6E4 + add r0, r4, #0 + mov r1, #1 + bl MOD62_022300DC + mov r0, #0xf7 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + mov r1, #4 + sub r0, #8 + str r1, [r4, r0] + add r0, r4, #0 + ldr r1, _02230B3C ; =0x0000FFFF + add r0, #0xec + bl MOD62_0222EE78 + b _02230BDA +_02230846: + add r0, #0xec + mov r1, #0xc + bl MOD62_0222EE78 + add r0, r4, #0 + bl MOD62_0222DC00 + cmp r0, #1 + bne _02230860 + mov r0, #0x26 + mov r1, #1 + lsl r0, r0, #4 + str r1, [r4, r0] +_02230860: + add r0, r4, #0 + bl MOD62_0222DC7C + add r0, r4, #0 + bl MOD62_0222EC28 + ldr r0, [r4] + ldr r0, [r0, #0x28] + bl FUN_02029FC8 + mov r1, #6 + bl FUN_0202A170 + mov r0, #0xf1 + lsl r0, r0, #2 + ldr r1, [r4, r0] + mov r0, #0xc + mul r0, r1 + add r2, r4, r0 + mov r0, #0x99 + lsl r0, r0, #2 + ldr r0, [r2, r0] + cmp r0, #0xff + beq _022308A8 + ldr r2, [r4] + lsl r0, r0, #2 + add r0, r2, r0 + ldr r5, [r0, #4] + ldr r0, [r2, #0x20] + bl FUN_02029C8C + add r2, r0, #0 + add r0, r5, #0 + mov r1, #0xaa + bl FUN_02067830 +_022308A8: + mov r0, #0xf5 + mov r1, #8 + lsl r0, r0, #2 + str r1, [r4, r0] + b _02230BDA +_022308B2: + add r1, #8 + ldr r1, [r4, r1] + cmp r1, #5 + bhi _0223093C + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_022308C6: ; jump table + .short _022308D2 - _022308C6 - 2 ; case 0 + .short _02230930 - _022308C6 - 2 ; case 1 + .short _022309B4 - _022308C6 - 2 ; case 2 + .short _022309C6 - _022308C6 - 2 ; case 3 + .short _02230A2E - _022308C6 - 2 ; case 4 + .short _02230A6A - _022308C6 - 2 ; case 5 +_022308D2: + bl MOD62_0222DC00 + cmp r0, #0 + bne _022308E4 + mov r0, #0xf5 + mov r1, #8 + lsl r0, r0, #2 + str r1, [r4, r0] + b _02230BDA +_022308E4: + mov r3, #0 + str r3, [sp] + mov r0, #0xa + str r0, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + ldr r2, _02230B38 ; =0x0000080B + mov r1, #2 + bl FUN_02003210 + mov r3, #0 + str r3, [sp] + mov r0, #0xa + str r0, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + ldr r2, _02230B3C ; =0x0000FFFF + mov r1, #8 + bl FUN_02003210 + add r0, r4, #0 + mov r1, #0 + bl MOD62_022300DC + mov r0, #1 + mov r1, #0 + bl FUN_0201E74C + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_02230930: + add r0, #0xe8 + ldr r0, [r0] + bl FUN_020038E4 + cmp r0, #0 + beq _0223093E +_0223093C: + b _02230BDA +_0223093E: + add r0, r4, #0 + add r0, #0xe8 + ldr r0, [r0] + mov r1, #0 + bl FUN_020038F0 + mov r0, #1 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r2, #4 + add r0, r4, #0 + str r2, [sp, #8] + mov r1, #0x28 + str r1, [sp, #0xc] + add r0, #0xe4 + add r1, #0xe4 + ldr r0, [r0] + add r1, r4, r1 + mov r3, #2 + bl MOD62_0222EEE0 + add r0, r4, #0 + add r0, #0xe4 + ldr r0, [r0] + mov r1, #0x19 + str r0, [sp, #0x1c] + mov r0, #4 + str r0, [sp, #0x20] + mov r0, #0xd4 + str r0, [sp, #0x24] + mov r0, #5 + str r0, [sp, #0x28] + add r0, sp, #0x10 + strb r1, [r0, #0x1c] + mov r1, #6 + strb r1, [r0, #0x1d] + mov r0, #0x35 + bl FUN_02014590 + mov r1, #0x89 + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [r4, r1] + add r1, sp, #0x1c + bl FUN_020145C8 + mov r0, #0x43 + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #0xe + bl MOD62_0222EE78 + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_022309B4: + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E74C + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] +_022309C6: + mov r0, #0x89 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0201466C + cmp r0, #0 + beq _02230A76 + cmp r0, #1 + beq _022309DC + cmp r0, #2 + bne _02230A76 +_022309DC: + mov r1, #0x3e + lsl r1, r1, #4 + str r0, [r4, r1] + add r0, r4, #0 + add r0, #0xe8 + ldr r0, [r0] + mov r1, #1 + bl FUN_020038F0 + mov r0, #0x89 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_020146C4 + mov r0, #0x89 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_020145A8 + mov r0, #0x43 + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #1 + bl FUN_0200D0E0 + mov r0, #0x43 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019570 + mov r0, #0x43 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019178 + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_02230A2E: + mov r0, #0xa + str r0, [sp] + mov r3, #0 + str r3, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + ldr r2, _02230B38 ; =0x0000080B + mov r1, #2 + bl FUN_02003210 + mov r0, #0xa + str r0, [sp] + mov r3, #0 + str r3, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + ldr r2, _02230B3C ; =0x0000FFFF + mov r1, #8 + bl FUN_02003210 + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_02230A6A: + add r0, #0xe8 + ldr r0, [r0] + bl FUN_020038E4 + cmp r0, #0 + beq _02230A78 +_02230A76: + b _02230BDA +_02230A78: + mov r0, #0x3e + lsl r0, r0, #4 + ldr r1, [r4, r0] + cmp r1, #0 + beq _02230AC2 + cmp r1, #1 + beq _02230A8C + cmp r1, #2 + beq _02230ABC + b _02230AC2 +_02230A8C: + add r0, r4, #0 + bl MOD62_0222F790 + add r0, r4, #0 + bl MOD62_0222F7C4 + add r0, r4, #0 + bl MOD62_0222F0D4 + add r0, r4, #0 + bl MOD62_0222DAEC + add r0, r4, #0 + bl MOD62_0222D67C + add r0, r4, #0 + mov r1, #1 + bl MOD62_0222DB10 + mov r0, #0xf5 + mov r1, #6 + lsl r0, r0, #2 + str r1, [r4, r0] + b _02230AC2 +_02230ABC: + mov r1, #4 + sub r0, #0xc + str r1, [r4, r0] +_02230AC2: + add r0, r4, #0 + mov r1, #1 + bl MOD62_022300DC + mov r0, #0xf7 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + b _02230BDA +_02230AD4: + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r3, #0 + str r3, [sp] + mov r0, #0x10 + str r0, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + mov r1, #1 + mov r2, #2 + bl FUN_02003210 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_02230B00: + add r0, #0xe8 + ldr r0, [r0] + bl FUN_020038E4 + cmp r0, #0 + bne _02230BDA + mov r0, #0x10 + str r0, [sp] + mov r3, #0 + str r3, [sp, #4] + add r0, r4, #0 + mov r1, #1 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + add r2, r1, #0 + bl FUN_02003210 + mov r0, #0x10 + str r0, [sp] + mov r3, #0 + str r3, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + ldr r2, _02230B3C ; =0x0000FFFF + b _02230B40 + .align 2, 0 +_02230B38: .word 0x0000080B +_02230B3C: .word 0x0000FFFF +_02230B40: + mov r1, #4 + bl FUN_02003210 + mov r0, #3 + add r1, r0, #0 + bl FUN_020178BC + mov r0, #7 + mov r1, #3 + bl FUN_020178BC + mov r0, #4 + mov r1, #0 + bl FUN_0201E74C + add r0, r4, #0 + mov r1, #0 + bl MOD62_0222F738 + add r0, r4, #0 + mov r1, #0 + bl MOD62_0222E9B4 + add r0, r4, #0 + mov r1, #0 + bl MOD62_0222DDE0 + mov r1, #0 + add r0, r4, #0 + mvn r1, r1 + mov r2, #4 + bl MOD62_0222E180 + add r0, r4, #0 + mov r1, #0 + bl MOD62_022300DC + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_02230B96: + add r0, #0xe8 + ldr r0, [r0] + bl FUN_020038E4 + cmp r0, #0 + bne _02230BDA + add r0, r4, #0 + bl MOD62_022300D4 + cmp r0, #1 + beq _02230BDA + mov r0, #0xbe + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200C644 + mov r1, #0 + add r0, r4, #0 + mov r2, #0xff + add r3, r1, #0 + bl MOD62_0222F8D4 + add r0, r4, #0 + add r0, #0xec + mov r1, #7 + bl MOD62_0222EE78 + add r0, r4, #0 + bl MOD62_0222F1E8 + add sp, #0xa4 + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_02230BDA: + add r0, r4, #0 + add r0, #0xd4 + ldr r5, [r0] + cmp r5, #0xff + bne _02230BF0 + mov r0, #0x73 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02022144 + b _02230C98 +_02230BF0: + add r0, sp, #0x14 + add r1, sp, #0x10 + bl FUN_02020AB0 + cmp r0, #0 + beq _02230C3E + lsl r6, r5, #4 + mov r0, #0xca + add r1, r4, r6 + lsl r0, r0, #2 + ldrb r0, [r1, r0] + bl FUN_02085FD0 + add r1, r0, #0 + add r0, r4, #0 + add r0, #0xec + bl MOD62_0222F208 + mov r0, #0xcb + ldr r2, [sp, #0x10] + add r1, r4, r6 + lsl r0, r0, #2 + ldr r0, [r1, r0] + ldr r1, [sp, #0x14] + lsl r2, r2, #0x10 + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl FUN_0200C714 + add r0, r4, #0 + add r1, r5, #0 + bl MOD62_0222DBCC + add r0, r4, #0 + add r1, r5, #0 + bl MOD62_0222DC48 + b _02230C98 +_02230C3E: + add r0, r4, #0 + add r1, r5, #0 + bl MOD62_0222DB38 + lsl r6, r5, #4 + mov r2, #0x33 + add r1, r4, r6 + lsl r2, r2, #4 + add r7, r0, #0 + ldr r0, [r1, r2] + sub r2, r2, #4 + ldr r1, [r1, r2] + mov r2, #0 + bl MOD62_0222D5F8 + cmp r7, #0 + bne _02230C80 + mov r1, #0xca + ldr r0, [r4] + add r2, r4, r6 + lsl r1, r1, #2 + ldrb r1, [r2, r1] + ldr r0, [r0, #0x20] + mov r2, #1 + bl FUN_02029D84 + add r0, r4, #0 + bl MOD62_0222F0D4 + add r0, r4, #0 + add r1, r5, #0 + bl MOD62_0222DB78 +_02230C80: + ldr r0, _02230CB8 ; =0x000005EA + bl FUN_020054C8 + add r0, r4, #0 + mov r1, #0xff + add r0, #0xd4 + str r1, [r0] + add r0, r4, #0 + ldr r1, _02230CBC ; =0x0000FFFF + add r0, #0xec + bl MOD62_0222F208 +_02230C98: + add r0, r4, #0 + bl MOD62_0222F758 + add r0, r4, #0 + bl MOD62_0222E990 + add r0, r4, #0 + bl MOD62_0222E754 + add r0, r4, #0 + bl MOD62_0222ECD4 + mov r0, #1 + add sp, #0xa4 + pop {r4, r5, r6, r7, pc} + nop +_02230CB8: .word 0x000005EA +_02230CBC: .word 0x0000FFFF + thumb_func_end MOD62_022303AC + + thumb_func_start MOD62_02230CC0 +MOD62_02230CC0: ; 0x02230CC0 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + cmp r1, #0 + beq _02230CD8 + cmp r1, #1 + beq _02230CDC + cmp r1, #2 + beq _02230CEC + b _02230D26 +_02230CD8: + add r1, r1, #1 + str r1, [r4, r0] +_02230CDC: + bl MOD62_0222F2A8 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230D26 +_02230CEC: + bl FUN_0200E308 + cmp r0, #1 + bne _02230D26 + add r0, r4, #0 + add r0, #0xec + bl FUN_02019178 + add r0, r4, #0 + bl MOD62_0222ED04 + add r0, r4, #0 + bl MOD62_0222E77C + add r0, r4, #0 + bl MOD62_0222F75C + add r0, r4, #0 + bl MOD62_0222E9D4 + add r0, r4, #0 + bl MOD62_0222E0C8 + ldr r0, [r4] + mov r1, #1 + bl FUN_02085D9C + mov r0, #0 + pop {r4, pc} +_02230D26: + add r0, r4, #0 + bl MOD62_0222E754 + add r0, r4, #0 + bl MOD62_0222ECD4 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD62_02230CC0 + + thumb_func_start MOD62_02230D38 +MOD62_02230D38: ; 0x02230D38 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + mov r0, #0 + add r4, r5, #4 + lsl r6, r1, #3 + str r0, [sp] + ldr r0, [r4, r6] + cmp r0, #0xff + beq _02230D5C + ldr r1, [r5] + lsl r0, r0, #2 + add r0, r1, r0 + ldr r0, [r0, #4] + mov r1, #0xa1 + add r2, sp, #0 + bl FUN_02067830 +_02230D5C: + mov r0, #0xff + str r0, [r4, r6] + add r0, r5, #0 + bl MOD62_0222EC28 + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD62_02230D38 + + thumb_func_start MOD62_02230D6C +MOD62_02230D6C: ; 0x02230D6C + push {r4, lr} + mov r2, #0xf5 + add r4, r0, #0 + lsl r2, r2, #2 + ldr r1, [r4, r2] + cmp r1, #0 + beq _02230D84 + cmp r1, #1 + beq _02230DA2 + cmp r1, #2 + beq _02230DB2 + b _02230DC6 +_02230D84: + sub r2, #0x10 + ldr r1, [r4, r2] + bl MOD62_02230D38 + add r0, r4, #0 + add r0, #0xec + mov r1, #9 + bl MOD62_0222EE78 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230DC6 +_02230DA2: + ldr r0, _02230DD8 ; =0x021C48B8 + ldr r3, [r0, #0x48] + ldr r0, _02230DDC ; =0x00000CF3 + tst r0, r3 + beq _02230DC6 + add r0, r1, #1 + str r0, [r4, r2] + b _02230DC6 +_02230DB2: + mov r1, #0 + mov r2, #0xff + add r3, r1, #0 + bl MOD62_0222F8D4 + add r0, r4, #0 + add r0, #0xec + mov r1, #7 + bl MOD62_0222EE78 +_02230DC6: + add r0, r4, #0 + bl MOD62_0222E754 + add r0, r4, #0 + bl MOD62_0222ECD4 + mov r0, #1 + pop {r4, pc} + nop +_02230DD8: .word 0x021C48B8 +_02230DDC: .word 0x00000CF3 + thumb_func_end MOD62_02230D6C + + thumb_func_start MOD62_02230DE0 +MOD62_02230DE0: ; 0x02230DE0 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + cmp r1, #3 + bls _02230DF0 + b _02230F18 +_02230DF0: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02230DFC: ; jump table + .short _02230E04 - _02230DFC - 2 ; case 0 + .short _02230E46 - _02230DFC - 2 ; case 1 + .short _02230ED0 - _02230DFC - 2 ; case 2 + .short _02230EE0 - _02230DFC - 2 ; case 3 +_02230E04: + sub r0, #0xe0 + ldr r0, [r4, r0] + mov r1, #0x19 + bl FUN_0200C6C4 + mov r0, #0xbe + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x14 + bl FUN_0200C6C4 + mov r0, #0xbd + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_0200C5C0 + add r0, r4, #0 + add r0, #0xec + mov r1, #0xa + bl MOD62_0222EE78 + mov r0, #0xbe + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_0200C644 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] +_02230E46: + mov r0, #0xf2 + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD62_0222F9B4 + cmp r0, #1 + bne _02230E66 + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD62_0222FA40 + ldr r0, _02230F28 ; =0x000005DC + bl FUN_020054C8 + b _02230F18 +_02230E66: + ldr r0, _02230F2C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _02230EA4 + mov r2, #0xf1 + lsl r2, r2, #2 + ldr r1, [r4, r2] + add r2, r2, #4 + ldr r2, [r4, r2] + add r0, r4, #0 + bl MOD62_0222EC54 + mov r1, #1 + add r0, r4, #0 + add r2, r1, #0 + bl MOD62_0222FA40 + add r0, r4, #0 + add r0, #0xec + mov r1, #0xb + bl MOD62_0222EE78 + mov r0, #0xf5 + mov r1, #2 + lsl r0, r0, #2 + str r1, [r4, r0] + ldr r0, _02230F28 ; =0x000005DC + bl FUN_020054C8 + b _02230F18 +_02230EA4: + mov r0, #2 + tst r0, r1 + beq _02230F18 + mov r0, #0xbe + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200C644 + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + bl MOD62_0222FA40 + mov r0, #0xf5 + mov r1, #3 + lsl r0, r0, #2 + str r1, [r4, r0] + ldr r0, _02230F30 ; =0x000005DD + bl FUN_020054C8 + b _02230F18 +_02230ED0: + ldr r1, _02230F2C ; =0x021C48B8 + ldr r2, [r1, #0x48] + ldr r1, _02230F34 ; =0x00000CF3 + tst r1, r2 + beq _02230F18 + mov r1, #3 + str r1, [r4, r0] + b _02230F18 +_02230EE0: + sub r0, #0xe0 + ldr r0, [r4, r0] + mov r1, #0x14 + bl FUN_0200C6C4 + mov r0, #0xbe + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x19 + bl FUN_0200C6C4 + mov r1, #0 + add r0, r4, #0 + mov r2, #0xff + add r3, r1, #0 + bl MOD62_0222F8D4 + mov r0, #0xbd + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200C5C0 + add r0, r4, #0 + add r0, #0xec + mov r1, #7 + bl MOD62_0222EE78 +_02230F18: + add r0, r4, #0 + bl MOD62_0222E754 + add r0, r4, #0 + bl MOD62_0222ECD4 + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_02230F28: .word 0x000005DC +_02230F2C: .word 0x021C48B8 +_02230F30: .word 0x000005DD +_02230F34: .word 0x00000CF3 + thumb_func_end MOD62_02230DE0 + + thumb_func_start MOD62_02230F38 +MOD62_02230F38: ; 0x02230F38 + mov r0, #0 + bx lr + thumb_func_end MOD62_02230F38 + + thumb_func_start MOD62_02230F3C +MOD62_02230F3C: ; 0x02230F3C + push {r3, lr} + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _02230F68 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _02230F6C ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + pop {r3, pc} + .align 2, 0 +_02230F68: .word 0xFFFFE0FF +_02230F6C: .word 0x04001000 + thumb_func_end MOD62_02230F3C + + thumb_func_start MOD62_02230F70 +MOD62_02230F70: ; 0x02230F70 + push {r3, lr} + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + pop {r3, pc} + thumb_func_end MOD62_02230F70 + + thumb_func_start MOD62_02230F80 +MOD62_02230F80: ; 0x02230F80 + push {r4, r5, lr} + sub sp, #0xfc + add r4, r0, #0 + bl FUN_0201E6D8 + ldr r5, _022310B8 ; =0x02231238 + add r3, sp, #0x10 + mov r2, #5 +_02230F90: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _02230F90 + add r0, sp, #0x10 + bl FUN_0201E66C + mov r1, #6 + mov r2, #2 + mov r0, #0 + lsl r1, r1, #0x18 + lsl r2, r2, #0x12 + bl MIi_CpuClear32 + mov r1, #0x62 + mov r2, #2 + mov r0, #0 + lsl r1, r1, #0x14 + lsl r2, r2, #0x10 + bl MIi_CpuClear32 + mov r1, #0x19 + mov r2, #1 + mov r0, #0 + lsl r1, r1, #0x16 + lsl r2, r2, #0x12 + bl MIi_CpuClear32 + mov r1, #0x66 + mov r2, #2 + mov r0, #0 + lsl r1, r1, #0x14 + lsl r2, r2, #0x10 + bl MIi_CpuClear32 + ldr r5, _022310BC ; =0x02231210 + add r3, sp, #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, _022310C0 ; =0x02231294 + add r3, sp, #0xa8 + mov r2, #0xa +_02230FF0: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _02230FF0 + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + add r2, sp, #0xa8 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #2 + add r2, sp, #0xc4 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #3 + add r2, sp, #0xe0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018744 + add r0, r4, #0 + mov r1, #2 + bl FUN_02018744 + add r0, r4, #0 + mov r1, #3 + bl FUN_02018744 + ldr r1, _022310C4 ; =0x04000008 + mov r0, #3 + ldrh r2, [r1] + bic r2, r0 + mov r0, #1 + orr r2, r0 + strh r2, [r1] + add r1, r0, #0 + bl FUN_0201E6E4 + ldr r5, _022310C8 ; =0x022312E8 + add r3, sp, #0x38 + mov r2, #0xe +_02231052: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _02231052 + add r0, r4, #0 + mov r1, #4 + add r2, sp, #0x38 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #5 + add r2, sp, #0x54 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #6 + add r2, sp, #0x70 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #7 + add r2, sp, #0x8c + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + add r0, r4, #0 + mov r1, #5 + bl FUN_02018744 + add r0, r4, #0 + mov r1, #6 + bl FUN_02018744 + add r0, r4, #0 + mov r1, #7 + bl FUN_02018744 + mov r0, #4 + mov r1, #0 + bl FUN_0201E74C + add sp, #0xfc + pop {r4, r5, pc} + nop +_022310B8: .word 0x02231238 +_022310BC: .word 0x02231210 +_022310C0: .word 0x02231294 +_022310C4: .word 0x04000008 +_022310C8: .word 0x022312E8 + thumb_func_end MOD62_02230F80 + + thumb_func_start MOD62_022310CC +MOD62_022310CC: ; 0x022310CC + push {r4, lr} + add r4, r0, #0 + mov r0, #0x69 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_020081C4 + bl FUN_0201C30C + bl FUN_0200BC30 + add r0, r4, #0 + add r0, #0xe8 + ldr r0, [r0] + bl FUN_0200372C + add r4, #0xe4 + ldr r0, [r4] + bl FUN_0201AB60 + ldr r3, _02231104 ; =0x027E0000 + ldr r1, _02231108 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r4, pc} + nop +_02231104: .word 0x027E0000 +_02231108: .word 0x00003FF8 + thumb_func_end MOD62_022310CC + + .section .rodata + ; 0x0223110C + .incbin "baserom.nds", 0x2B274C, 0x274 + + .section .sinit + .word MOD62_0222D5C0 |