diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-05-13 14:41:14 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-05-13 14:41:14 -0400 |
commit | 404029d1602281ce381fdd88fb6fa08b9e64f402 (patch) | |
tree | beafb24ec0c7a1769dc763fe00700cafb5c84766 | |
parent | 771b385f8520284d575ce8452fc253c2b3c3340b (diff) |
Disassemble module 80
-rw-r--r-- | arm9/arm9.lcf | 25 | ||||
-rw-r--r-- | arm9/global.inc | 36 | ||||
-rw-r--r-- | arm9/modules/80/asm/module_80.s | 19283 |
3 files changed, 19341 insertions, 3 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf index 610a68c2..22167bf8 100644 --- a/arm9/arm9.lcf +++ b/arm9/arm9.lcf @@ -3077,7 +3077,17 @@ SECTIONS { SDK_OVERLAY_MODULE_80_ID = 80; SDK_OVERLAY.MODULE_80.ID = 80; SDK_OVERLAY.MODULE_80.START = .; - FILE_2DF200.o (.text) /* 0x2DB200 */ + module_80.o (.text) + module_80.o (.rodata) + module_80.o (.init) + SDK_OVERLAY.MODULE_80.SINIT_START = .; + module_80.o (.ctor) + module_80.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_80.SINIT_END = .; + . = ALIGN(32); + module_80.o (.sdata) + module_80.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_80.END = .; SDK_OVERLAY.MODULE_80.SIZE = SDK_OVERLAY.MODULE_80.END - SDK_OVERLAY.MODULE_80.START; @@ -3087,7 +3097,8 @@ SECTIONS { { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_80.BSS_START = .; - FILE_2DF200.o (.bss) + module_80.o (.bss) + module_80.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_80.BSS_END = .; SDK_OVERLAY.MODULE_80.BSS_SIZE = SDK_OVERLAY.MODULE_80.BSS_END - SDK_OVERLAY.MODULE_80.BSS_START; @@ -4064,7 +4075,15 @@ SECTIONS { WRITEW 79; WRITEW 0; - OVERLAY_TABLE(MODULE_80, 80) + WRITEW 80; + WRITEW ADDR(.MODULE_80); + WRITEW SDK_OVERLAY.MODULE_80.SIZE; + WRITEW SDK_OVERLAY.MODULE_80.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_80.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_80.SINIT_END; + WRITEW 80; + WRITEW 0; + OVERLAY_TABLE(MODULE_81, 81) OVERLAY_TABLE(MODULE_82, 82) OVERLAY_TABLE(MODULE_83, 83) diff --git a/arm9/global.inc b/arm9/global.inc index abbdb3ea..22ff41b5 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -5839,6 +5839,42 @@ .extern MOD04_021F025C
.extern rewind
.extern strspn
+.extern FUN_0200B84C
+.extern FUN_02022840
+.extern FUN_02022854
+.extern FUN_02023830
+.extern FUN_02023834
+.extern FUN_02023A6C
+.extern FUN_02023A74
+.extern FUN_0202952C
+.extern FUN_0202ABDC
+.extern FUN_0202ABE4
+.extern FUN_0202ABEC
+.extern FUN_0202ABF8
+.extern FUN_0202AC08
+.extern FUN_0202AC10
+.extern FUN_0202AC18
+.extern FUN_0202E4F0
+.extern FUN_02033288
+.extern FUN_020332DC
+.extern FUN_020335E0
+.extern FUN_020337C8
+.extern FUN_02033EEC
+.extern FUN_0206B384
+.extern FUN_020888BC
+.extern FUN_020888CC
+.extern MOD04_021DD808
+.extern MOD04_021DD984
+.extern MOD04_021DD9DC
+.extern MOD04_021DDF4C
+.extern MOD04_021DE05C
+.extern MOD04_021DE1F8
+.extern MOD56_0221244C
+.extern MOD79_022122E4
+.extern MOD79_02212308
+.extern MOD79_022123A8
+.extern MOD79_02212474
+.extern MOD79_02212480
.extern FUN_02029B40
.extern FUN_02029C00
.extern FUN_02088D1C
diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s new file mode 100644 index 00000000..555f3678 --- /dev/null +++ b/arm9/modules/80/asm/module_80.s @@ -0,0 +1,19283 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD80_0222D5C0 +MOD80_0222D5C0: ; 0x0222D5C0 + push {r3, r4} + ldr r3, _0222D5D8 ; =0x02237CE0 + mov r4, #1 + str r4, [r3] + mov r4, #0 + str r4, [r3, #4] + str r0, [r3, #8] + str r1, [r3, #0xc] + str r2, [r3, #0x10] + pop {r3, r4} + bx lr + nop +_0222D5D8: .word 0x02237CE0 + thumb_func_end MOD80_0222D5C0 + + thumb_func_start MOD80_0222D5DC +MOD80_0222D5DC: ; 0x0222D5DC + push {r3, lr} + ldr r1, _0222D8D4 ; =0x02237CE0 + ldr r0, [r1] + cmp r0, #0x16 + bls _0222D5E8 + b _0222DB8A +_0222D5E8: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222D5F4: ; jump table + .short _0222DB8A - _0222D5F4 - 2 ; case 0 + .short _0222DB8A - _0222D5F4 - 2 ; case 1 + .short _0222D622 - _0222D5F4 - 2 ; case 2 + .short _0222DB7E - _0222D5F4 - 2 ; case 3 + .short _0222D6D0 - _0222D5F4 - 2 ; case 4 + .short _0222DB7E - _0222D5F4 - 2 ; case 5 + .short _0222D756 - _0222D5F4 - 2 ; case 6 + .short _0222DB7E - _0222D5F4 - 2 ; case 7 + .short _0222D7D6 - _0222D5F4 - 2 ; case 8 + .short _0222DB7E - _0222D5F4 - 2 ; case 9 + .short _0222D86A - _0222D5F4 - 2 ; case 10 + .short _0222DB7E - _0222D5F4 - 2 ; case 11 + .short _0222D8EA - _0222D5F4 - 2 ; case 12 + .short _0222DB7E - _0222D5F4 - 2 ; case 13 + .short _0222D970 - _0222D5F4 - 2 ; case 14 + .short _0222DB7E - _0222D5F4 - 2 ; case 15 + .short _0222D9E8 - _0222D5F4 - 2 ; case 16 + .short _0222DB7E - _0222D5F4 - 2 ; case 17 + .short _0222DABA - _0222D5F4 - 2 ; case 18 + .short _0222DB7E - _0222D5F4 - 2 ; case 19 + .short _0222DB0E - _0222D5F4 - 2 ; case 20 + .short _0222DB7E - _0222D5F4 - 2 ; case 21 + .short _0222DB8A - _0222D5F4 - 2 ; case 22 +_0222D622: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222D630 + cmp r0, #7 + beq _0222D648 + pop {r3, pc} +_0222D630: + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212474 + bl MOD80_0222DF38 + ldr r1, _0222D8D4 ; =0x02237CE0 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222D648: + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #0x16 + ldr r2, _0222D8D8 ; =0x02237E00 + str r1, [r0] + ldrb r2, [r2, #0x1c] + cmp r2, #0xe + bhi _0222D6C2 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_0222D662: ; jump table + .short _0222D6C2 - _0222D662 - 2 ; case 0 + .short _0222D680 - _0222D662 - 2 ; case 1 + .short _0222D686 - _0222D662 - 2 ; case 2 + .short _0222D68C - _0222D662 - 2 ; case 3 + .short _0222D6C2 - _0222D662 - 2 ; case 4 + .short _0222D6C2 - _0222D662 - 2 ; case 5 + .short _0222D6C2 - _0222D662 - 2 ; case 6 + .short _0222D692 - _0222D662 - 2 ; case 7 + .short _0222D6A4 - _0222D662 - 2 ; case 8 + .short _0222D6AA - _0222D662 - 2 ; case 9 + .short _0222D6B0 - _0222D662 - 2 ; case 10 + .short _0222D6B6 - _0222D662 - 2 ; case 11 + .short _0222D698 - _0222D662 - 2 ; case 12 + .short _0222D69E - _0222D662 - 2 ; case 13 + .short _0222D6BC - _0222D662 - 2 ; case 14 +_0222D680: + mov r1, #0 + str r1, [r0, #4] + b _0222D6CA +_0222D686: + sub r1, #0x1b + str r1, [r0, #4] + b _0222D6CA +_0222D68C: + sub r1, #0x1a + str r1, [r0, #4] + b _0222D6CA +_0222D692: + sub r1, #0x17 + str r1, [r0, #4] + b _0222D6CA +_0222D698: + sub r1, #0x1c + str r1, [r0, #4] + b _0222D6CA +_0222D69E: + sub r1, #0x1d + str r1, [r0, #4] + b _0222D6CA +_0222D6A4: + sub r1, #0x1e + str r1, [r0, #4] + b _0222D6CA +_0222D6AA: + sub r1, #0x1f + str r1, [r0, #4] + b _0222D6CA +_0222D6B0: + sub r1, #0x20 + str r1, [r0, #4] + b _0222D6CA +_0222D6B6: + sub r1, #0x21 + str r1, [r0, #4] + b _0222D6CA +_0222D6BC: + sub r1, #0x18 + str r1, [r0, #4] + b _0222D6CA +_0222D6C2: + mov r1, #0xc + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] +_0222D6CA: + bl MOD56_0221244C + pop {r3, pc} +_0222D6D0: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222D6DE + cmp r0, #7 + beq _0222D6F6 + pop {r3, pc} +_0222D6DE: + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212474 + bl MOD80_0222DF38 + ldr r1, _0222D8D4 ; =0x02237CE0 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222D6F6: + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r2, #0x16 + ldr r1, _0222D8D8 ; =0x02237E00 + str r2, [r0] + ldrb r1, [r1, #0x1c] + cmp r1, #5 + bgt _0222D720 + cmp r1, #0 + blt _0222D748 + add r3, r1, r1 + add r3, pc + ldrh r3, [r3, #6] + lsl r3, r3, #0x10 + asr r3, r3, #0x10 + add pc, r3 +_0222D714: ; jump table + .short _0222D748 - _0222D714 - 2 ; case 0 + .short _0222D726 - _0222D714 - 2 ; case 1 + .short _0222D72C - _0222D714 - 2 ; case 2 + .short _0222D732 - _0222D714 - 2 ; case 3 + .short _0222D748 - _0222D714 - 2 ; case 4 + .short _0222D738 - _0222D714 - 2 ; case 5 +_0222D720: + cmp r1, #0xe + beq _0222D73E + b _0222D748 +_0222D726: + mov r1, #0 + str r1, [r0, #4] + b _0222D750 +_0222D72C: + sub r2, #0x1b + str r2, [r0, #4] + b _0222D750 +_0222D732: + sub r2, #0x1a + str r2, [r0, #4] + b _0222D750 +_0222D738: + sub r2, #0x19 + str r2, [r0, #4] + b _0222D750 +_0222D73E: + mov r1, #1 + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222D750 +_0222D748: + mov r1, #0xc + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] +_0222D750: + bl MOD56_0221244C + pop {r3, pc} +_0222D756: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222D764 + cmp r0, #7 + beq _0222D77C + pop {r3, pc} +_0222D764: + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212474 + bl MOD80_0222DF38 + ldr r1, _0222D8D4 ; =0x02237CE0 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222D77C: + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212480 + mov r1, #0x49 + lsl r1, r1, #2 + cmp r0, r1 + bne _0222D796 + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #0 + str r1, [r0, #4] + b _0222D7D0 +_0222D796: + ldr r0, _0222D8DC ; =0x02237DE0 + ldr r0, [r0, #0x40] + ldrb r0, [r0] + cmp r0, #3 + beq _0222D7B4 + cmp r0, #5 + beq _0222D7AA + cmp r0, #0xe + beq _0222D7BE + b _0222D7C8 +_0222D7AA: + mov r1, #2 + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222D7D0 +_0222D7B4: + mov r1, #3 + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222D7D0 +_0222D7BE: + mov r1, #1 + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222D7D0 +_0222D7C8: + mov r1, #0xc + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] +_0222D7D0: + bl MOD56_0221244C + pop {r3, pc} +_0222D7D6: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222D7E4 + cmp r0, #7 + beq _0222D7FC + pop {r3, pc} +_0222D7E4: + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212474 + bl MOD80_0222DF38 + ldr r1, _0222D8D4 ; =0x02237CE0 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222D7FC: + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212480 + mov r1, #0x49 + lsl r1, r1, #2 + cmp r0, r1 + bne _0222D816 + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #1 + str r1, [r0, #4] + b _0222D864 +_0222D816: + ldr r0, _0222D8DC ; =0x02237DE0 + ldr r0, [r0, #0x40] + ldrb r0, [r0] + cmp r0, #5 + bgt _0222D830 + cmp r0, #3 + blt _0222D85C + beq _0222D840 + cmp r0, #4 + beq _0222D84A + cmp r0, #5 + beq _0222D836 + b _0222D85C +_0222D830: + cmp r0, #0xe + beq _0222D852 + b _0222D85C +_0222D836: + mov r1, #2 + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222D864 +_0222D840: + mov r1, #3 + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222D864 +_0222D84A: + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #0 + str r1, [r0, #4] + b _0222D864 +_0222D852: + mov r1, #1 + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222D864 +_0222D85C: + mov r1, #0xc + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] +_0222D864: + bl MOD56_0221244C + pop {r3, pc} +_0222D86A: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222D878 + cmp r0, #7 + beq _0222D890 + pop {r3, pc} +_0222D878: + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212474 + bl MOD80_0222DF38 + ldr r1, _0222D8D4 ; =0x02237CE0 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222D890: + ldr r1, _0222D8D4 ; =0x02237CE0 + mov r2, #0x16 + ldr r0, _0222D8D8 ; =0x02237E00 + str r2, [r1] + ldrb r0, [r0, #0x1c] + cmp r0, #5 + bgt _0222D8AE + cmp r0, #1 + blt _0222D8CC + beq _0222D8B4 + cmp r0, #3 + beq _0222D8C0 + cmp r0, #5 + beq _0222D8BA + b _0222D8CC +_0222D8AE: + cmp r0, #0xe + beq _0222D8C6 + b _0222D8CC +_0222D8B4: + mov r0, #0 + str r0, [r1, #4] + b _0222D8E4 +_0222D8BA: + sub r2, #0x19 + str r2, [r1, #4] + b _0222D8E4 +_0222D8C0: + sub r2, #0x1a + str r2, [r1, #4] + b _0222D8E4 +_0222D8C6: + sub r2, #0x18 + str r2, [r1, #4] + b _0222D8E4 +_0222D8CC: + mov r1, #0xc + ldr r0, _0222D8D4 ; =0x02237CE0 + b _0222D8E0 + nop +_0222D8D4: .word 0x02237CE0 +_0222D8D8: .word 0x02237E00 +_0222D8DC: .word 0x02237DE0 +_0222D8E0: + mvn r1, r1 + str r1, [r0, #4] +_0222D8E4: + bl MOD56_0221244C + pop {r3, pc} +_0222D8EA: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222D8F8 + cmp r0, #7 + beq _0222D910 + pop {r3, pc} +_0222D8F8: + ldr r0, _0222DB8C ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212474 + bl MOD80_0222DF38 + ldr r1, _0222DB8C ; =0x02237CE0 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222D910: + ldr r0, _0222DB8C ; =0x02237CE0 + mov r2, #0x16 + ldr r1, _0222DB90 ; =0x02237E00 + str r2, [r0] + ldrb r1, [r1, #0x1c] + cmp r1, #5 + bgt _0222D93A + cmp r1, #0 + blt _0222D962 + add r3, r1, r1 + add r3, pc + ldrh r3, [r3, #6] + lsl r3, r3, #0x10 + asr r3, r3, #0x10 + add pc, r3 +_0222D92E: ; jump table + .short _0222D962 - _0222D92E - 2 ; case 0 + .short _0222D940 - _0222D92E - 2 ; case 1 + .short _0222D94C - _0222D92E - 2 ; case 2 + .short _0222D952 - _0222D92E - 2 ; case 3 + .short _0222D962 - _0222D92E - 2 ; case 4 + .short _0222D946 - _0222D92E - 2 ; case 5 +_0222D93A: + cmp r1, #0xe + beq _0222D958 + b _0222D962 +_0222D940: + mov r1, #0 + str r1, [r0, #4] + b _0222D96A +_0222D946: + sub r2, #0x19 + str r2, [r0, #4] + b _0222D96A +_0222D94C: + sub r2, #0x1b + str r2, [r0, #4] + b _0222D96A +_0222D952: + sub r2, #0x1a + str r2, [r0, #4] + b _0222D96A +_0222D958: + mov r1, #1 + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222D96A +_0222D962: + mov r1, #0xc + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] +_0222D96A: + bl MOD56_0221244C + pop {r3, pc} +_0222D970: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222D97E + cmp r0, #7 + beq _0222D996 + pop {r3, pc} +_0222D97E: + ldr r0, _0222DB8C ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212474 + bl MOD80_0222DF38 + ldr r1, _0222DB8C ; =0x02237CE0 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222D996: + ldr r0, _0222DB8C ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212480 + mov r1, #0x49 + lsl r1, r1, #2 + cmp r0, r1 + blo _0222D9BA + bl MOD79_02212480 + mov r1, #0x49 + lsl r1, r1, #2 + bl _u32_div_f + ldr r1, _0222DB8C ; =0x02237CE0 + str r0, [r1, #4] + b _0222D9E2 +_0222D9BA: + cmp r0, #0 + bne _0222D9C6 + ldr r0, _0222DB8C ; =0x02237CE0 + mov r1, #0 + str r1, [r0, #4] + b _0222D9E2 +_0222D9C6: + ldr r0, _0222DB94 ; =0x02237DE0 + ldr r0, [r0, #0x40] + ldrb r0, [r0] + cmp r0, #0xe + bne _0222D9DA + mov r1, #1 + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222D9E2 +_0222D9DA: + mov r1, #0xc + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] +_0222D9E2: + bl MOD56_0221244C + pop {r3, pc} +_0222D9E8: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222D9F6 + cmp r0, #7 + beq _0222DA0E + pop {r3, pc} +_0222D9F6: + ldr r0, _0222DB8C ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212474 + bl MOD80_0222DF38 + ldr r1, _0222DB8C ; =0x02237CE0 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222DA0E: + ldr r0, _0222DB8C ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212480 + mov r1, #0x49 + lsl r1, r1, #2 + cmp r0, r1 + bne _0222DA28 + ldr r0, _0222DB8C ; =0x02237CE0 + mov r1, #0 + str r1, [r0, #4] + b _0222DAB4 +_0222DA28: + ldr r0, _0222DB94 ; =0x02237DE0 + ldr r0, [r0, #0x40] + ldrb r0, [r0] + cmp r0, #0xe + bhi _0222DAAC + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222DA3E: ; jump table + .short _0222DAAC - _0222DA3E - 2 ; case 0 + .short _0222DAAC - _0222DA3E - 2 ; case 1 + .short _0222DA5C - _0222DA3E - 2 ; case 2 + .short _0222DAAC - _0222DA3E - 2 ; case 3 + .short _0222DAAC - _0222DA3E - 2 ; case 4 + .short _0222DAAC - _0222DA3E - 2 ; case 5 + .short _0222DAAC - _0222DA3E - 2 ; case 6 + .short _0222DAAC - _0222DA3E - 2 ; case 7 + .short _0222DA7A - _0222DA3E - 2 ; case 8 + .short _0222DA84 - _0222DA3E - 2 ; case 9 + .short _0222DA8E - _0222DA3E - 2 ; case 10 + .short _0222DA98 - _0222DA3E - 2 ; case 11 + .short _0222DA66 - _0222DA3E - 2 ; case 12 + .short _0222DA70 - _0222DA3E - 2 ; case 13 + .short _0222DAA2 - _0222DA3E - 2 ; case 14 +_0222DA5C: + mov r1, #4 + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222DAB4 +_0222DA66: + mov r1, #5 + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222DAB4 +_0222DA70: + mov r1, #6 + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222DAB4 +_0222DA7A: + mov r1, #7 + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222DAB4 +_0222DA84: + mov r1, #8 + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222DAB4 +_0222DA8E: + mov r1, #9 + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222DAB4 +_0222DA98: + mov r1, #0xa + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222DAB4 +_0222DAA2: + mov r1, #1 + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222DAB4 +_0222DAAC: + mov r1, #0xc + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] +_0222DAB4: + bl MOD56_0221244C + pop {r3, pc} +_0222DABA: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222DAC8 + cmp r0, #7 + beq _0222DAE0 + pop {r3, pc} +_0222DAC8: + ldr r0, _0222DB8C ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212474 + bl MOD80_0222DF38 + ldr r1, _0222DB8C ; =0x02237CE0 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222DAE0: + ldr r1, _0222DB8C ; =0x02237CE0 + mov r2, #0x16 + ldr r0, _0222DB90 ; =0x02237E00 + str r2, [r1] + ldrb r0, [r0, #0x1c] + cmp r0, #1 + beq _0222DAF8 + cmp r0, #2 + beq _0222DB04 + cmp r0, #0xe + beq _0222DAFE + b _0222DB08 +_0222DAF8: + mov r0, #0 + str r0, [r1, #4] + b _0222DB08 +_0222DAFE: + sub r2, #0x18 + str r2, [r1, #4] + b _0222DB08 +_0222DB04: + sub r2, #0x1b + str r2, [r1, #4] +_0222DB08: + bl MOD56_0221244C + pop {r3, pc} +_0222DB0E: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222DB1C + cmp r0, #7 + beq _0222DB34 + pop {r3, pc} +_0222DB1C: + ldr r0, _0222DB8C ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212474 + bl MOD80_0222DF38 + ldr r1, _0222DB8C ; =0x02237CE0 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222DB34: + ldr r1, _0222DB8C ; =0x02237CE0 + mov r2, #0x16 + ldr r0, _0222DB90 ; =0x02237E00 + str r2, [r1] + ldrb r0, [r0, #0x1c] + cmp r0, #7 + bgt _0222DB52 + cmp r0, #1 + blt _0222DB70 + beq _0222DB58 + cmp r0, #6 + beq _0222DB5E + cmp r0, #7 + beq _0222DB64 + b _0222DB70 +_0222DB52: + cmp r0, #0xe + beq _0222DB6A + b _0222DB70 +_0222DB58: + mov r0, #0 + str r0, [r1, #4] + b _0222DB78 +_0222DB5E: + mov r0, #1 + str r0, [r1, #4] + b _0222DB78 +_0222DB64: + mov r0, #2 + str r0, [r1, #4] + b _0222DB78 +_0222DB6A: + sub r2, #0x18 + str r2, [r1, #4] + b _0222DB78 +_0222DB70: + mov r1, #0xc + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] +_0222DB78: + bl MOD56_0221244C + pop {r3, pc} +_0222DB7E: + mov r0, #0x16 + str r0, [r1] + sub r0, #0x22 + str r0, [r1, #4] + bl MOD56_0221244C +_0222DB8A: + pop {r3, pc} + .align 2, 0 +_0222DB8C: .word 0x02237CE0 +_0222DB90: .word 0x02237E00 +_0222DB94: .word 0x02237DE0 + thumb_func_end MOD80_0222D5DC + + thumb_func_start MOD80_0222DB98 +MOD80_0222DB98: ; 0x0222DB98 + ldr r1, _0222DBB4 ; =0x02237CE0 + ldr r0, [r1] + cmp r0, #1 + beq _0222DBA6 + cmp r0, #0x16 + beq _0222DBAA + b _0222DBB0 +_0222DBA6: + mov r0, #1 + bx lr +_0222DBAA: + mov r0, #1 + str r0, [r1] + bx lr +_0222DBB0: + mov r0, #0 + bx lr + .align 2, 0 +_0222DBB4: .word 0x02237CE0 + thumb_func_end MOD80_0222DB98 + + thumb_func_start MOD80_0222DBB8 +MOD80_0222DBB8: ; 0x0222DBB8 + ldr r0, _0222DBC0 ; =0x02237CE0 + ldr r0, [r0, #4] + bx lr + nop +_0222DBC0: .word 0x02237CE0 + thumb_func_end MOD80_0222DBB8 + + thumb_func_start MOD80_0222DBC4 +MOD80_0222DBC4: ; 0x0222DBC4 + push {r3, lr} + add r1, r0, #0 + mov r2, #0x49 + ldr r0, _0222DC04 ; =0x02237CF4 + lsl r2, r2, #2 + bl memcpy + bl MOD79_022122E4 + mov r0, #2 + str r0, [sp] + mov r2, #0x49 + ldr r0, _0222DC08 ; =0x02237680 + ldr r1, _0222DC04 ; =0x02237CF4 + ldr r3, _0222DC0C ; =0x02237E1C + lsl r2, r2, #2 + bl MOD80_0222DF00 + cmp r0, #0 + beq _0222DBF4 + ldr r0, _0222DC10 ; =0x02237CE0 + mov r1, #2 + str r1, [r0] + pop {r3, pc} +_0222DBF4: + ldr r0, _0222DC10 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + sub r1, #0x23 + str r1, [r0, #4] + bl MOD56_0221244C + pop {r3, pc} + .align 2, 0 +_0222DC04: .word 0x02237CF4 +_0222DC08: .word 0x02237680 +_0222DC0C: .word 0x02237E1C +_0222DC10: .word 0x02237CE0 + thumb_func_end MOD80_0222DBC4 + + thumb_func_start MOD80_0222DC14 +MOD80_0222DC14: ; 0x0222DC14 + push {r3, lr} + ldr r0, _0222DC54 ; =0x02237CEC + ldr r2, _0222DC58 ; =0x02237CF4 + ldr r1, [r0] + ldr r0, [r0, #4] + str r1, [r2] + str r0, [r2, #4] + bl MOD79_022122E4 + mov r0, #2 + str r0, [sp] + ldr r0, _0222DC5C ; =0x022376CC + ldr r1, _0222DC58 ; =0x02237CF4 + ldr r3, _0222DC60 ; =0x02237E1C + mov r2, #8 + bl MOD80_0222DF00 + cmp r0, #0 + beq _0222DC42 + ldr r0, _0222DC64 ; =0x02237CE0 + mov r1, #4 + str r1, [r0] + pop {r3, pc} +_0222DC42: + ldr r0, _0222DC64 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + sub r1, #0x23 + str r1, [r0, #4] + bl MOD56_0221244C + pop {r3, pc} + nop +_0222DC54: .word 0x02237CEC +_0222DC58: .word 0x02237CF4 +_0222DC5C: .word 0x022376CC +_0222DC60: .word 0x02237E1C +_0222DC64: .word 0x02237CE0 + thumb_func_end MOD80_0222DC14 + + thumb_func_start MOD80_0222DC68 +MOD80_0222DC68: ; 0x0222DC68 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, _0222DCA8 ; =0x02237DE0 + str r4, [r0, #0x40] + bl MOD79_022122E4 + mov r0, #0x49 + lsl r0, r0, #2 + str r0, [sp] + ldr r0, _0222DCAC ; =0x0223771C + ldr r1, _0222DCB0 ; =0x02237CF4 + mov r2, #0 + add r3, r4, #0 + bl MOD80_0222DF00 + cmp r0, #0 + beq _0222DC96 + ldr r0, _0222DCB4 ; =0x02237CE0 + mov r1, #6 + str r1, [r0] + add sp, #4 + pop {r3, r4, pc} +_0222DC96: + ldr r0, _0222DCB4 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + sub r1, #0x23 + str r1, [r0, #4] + bl MOD56_0221244C + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0222DCA8: .word 0x02237DE0 +_0222DCAC: .word 0x0223771C +_0222DCB0: .word 0x02237CF4 +_0222DCB4: .word 0x02237CE0 + thumb_func_end MOD80_0222DC68 + + thumb_func_start MOD80_0222DCB8 +MOD80_0222DCB8: ; 0x0222DCB8 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, _0222DCF8 ; =0x02237DE0 + str r4, [r0, #0x40] + bl MOD79_022122E4 + mov r0, #0x49 + lsl r0, r0, #2 + str r0, [sp] + ldr r0, _0222DCFC ; =0x02237764 + ldr r1, _0222DD00 ; =0x02237CF4 + mov r2, #0 + add r3, r4, #0 + bl MOD80_0222DF00 + cmp r0, #0 + beq _0222DCE6 + ldr r0, _0222DD04 ; =0x02237CE0 + mov r1, #8 + str r1, [r0] + add sp, #4 + pop {r3, r4, pc} +_0222DCE6: + ldr r0, _0222DD04 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + sub r1, #0x23 + str r1, [r0, #4] + bl MOD56_0221244C + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0222DCF8: .word 0x02237DE0 +_0222DCFC: .word 0x02237764 +_0222DD00: .word 0x02237CF4 +_0222DD04: .word 0x02237CE0 + thumb_func_end MOD80_0222DCB8 + + thumb_func_start MOD80_0222DD08 +MOD80_0222DD08: ; 0x0222DD08 + push {r3, lr} + bl MOD79_022122E4 + mov r0, #2 + str r0, [sp] + ldr r0, _0222DD3C ; =0x022377B0 + ldr r1, _0222DD40 ; =0x02237CF4 + ldr r3, _0222DD44 ; =0x02237E1C + mov r2, #0 + bl MOD80_0222DF00 + cmp r0, #0 + beq _0222DD2A + ldr r0, _0222DD48 ; =0x02237CE0 + mov r1, #0xa + str r1, [r0] + pop {r3, pc} +_0222DD2A: + ldr r0, _0222DD48 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + sub r1, #0x23 + str r1, [r0, #4] + bl MOD56_0221244C + pop {r3, pc} + nop +_0222DD3C: .word 0x022377B0 +_0222DD40: .word 0x02237CF4 +_0222DD44: .word 0x02237E1C +_0222DD48: .word 0x02237CE0 + thumb_func_end MOD80_0222DD08 + + thumb_func_start MOD80_0222DD4C +MOD80_0222DD4C: ; 0x0222DD4C + push {r3, lr} + bl MOD79_022122E4 + mov r0, #2 + str r0, [sp] + ldr r0, _0222DD80 ; =0x022377FC + ldr r1, _0222DD84 ; =0x02237CF4 + ldr r3, _0222DD88 ; =0x02237E1C + mov r2, #0 + bl MOD80_0222DF00 + cmp r0, #0 + beq _0222DD6E + ldr r0, _0222DD8C ; =0x02237CE0 + mov r1, #0xc + str r1, [r0] + pop {r3, pc} +_0222DD6E: + ldr r0, _0222DD8C ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + sub r1, #0x23 + str r1, [r0, #4] + bl MOD56_0221244C + pop {r3, pc} + nop +_0222DD80: .word 0x022377FC +_0222DD84: .word 0x02237CF4 +_0222DD88: .word 0x02237E1C +_0222DD8C: .word 0x02237CE0 + thumb_func_end MOD80_0222DD4C + + thumb_func_start MOD80_0222DD90 +MOD80_0222DD90: ; 0x0222DD90 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + ldr r0, _0222DDF4 ; =0x02237DE0 + add r6, r2, #0 + str r6, [r0, #0x40] + add r4, r1, #0 + bl MOD79_022122E4 + ldrb r0, [r5] + ldr r1, _0222DDF8 ; =0x02237CF4 + mov r2, #7 + strb r0, [r1] + ldrb r0, [r5, #1] + add r3, r6, #0 + strb r0, [r1, #1] + ldrb r0, [r5, #2] + strb r0, [r1, #2] + ldrb r0, [r5, #3] + strb r0, [r1, #3] + ldrb r0, [r5, #4] + strb r0, [r1, #4] + ldrb r0, [r5, #5] + strb r0, [r1, #5] + ldr r0, _0222DDFC ; =0x02237CE0 + strb r4, [r0, #0x1a] + mov r0, #0x49 + lsl r0, r0, #2 + mul r0, r4 + str r0, [sp] + ldr r0, _0222DE00 ; =0x02237848 + bl MOD80_0222DF00 + cmp r0, #0 + beq _0222DDE0 + ldr r0, _0222DDFC ; =0x02237CE0 + mov r1, #0xe + str r1, [r0] + add sp, #4 + pop {r3, r4, r5, r6, pc} +_0222DDE0: + ldr r0, _0222DDFC ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + sub r1, #0x23 + str r1, [r0, #4] + bl MOD56_0221244C + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_0222DDF4: .word 0x02237DE0 +_0222DDF8: .word 0x02237CF4 +_0222DDFC: .word 0x02237CE0 +_0222DE00: .word 0x02237848 + thumb_func_end MOD80_0222DD90 + + thumb_func_start MOD80_0222DE04 +MOD80_0222DE04: ; 0x0222DE04 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + ldr r0, _0222DE58 ; =0x02237DE0 + add r6, r2, #0 + add r4, r1, #0 + str r6, [r0, #0x40] + bl MOD79_022122E4 + mov r2, #0x49 + ldr r0, _0222DE5C ; =0x02237CF4 + add r1, r4, #0 + lsl r2, r2, #2 + bl memcpy + ldr r0, _0222DE58 ; =0x02237DE0 + mov r2, #0x49 + str r5, [r0, #0x38] + lsl r2, r2, #2 + str r2, [sp] + ldr r0, _0222DE60 ; =0x02237894 + ldr r1, _0222DE5C ; =0x02237CF4 + add r2, r2, #4 + add r3, r6, #0 + bl MOD80_0222DF00 + cmp r0, #0 + beq _0222DE46 + ldr r0, _0222DE64 ; =0x02237CE0 + mov r1, #0x10 + str r1, [r0] + add sp, #4 + pop {r3, r4, r5, r6, pc} +_0222DE46: + ldr r0, _0222DE64 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + sub r1, #0x23 + str r1, [r0, #4] + bl MOD56_0221244C + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0222DE58: .word 0x02237DE0 +_0222DE5C: .word 0x02237CF4 +_0222DE60: .word 0x02237894 +_0222DE64: .word 0x02237CE0 + thumb_func_end MOD80_0222DE04 + + thumb_func_start MOD80_0222DE68 +MOD80_0222DE68: ; 0x0222DE68 + push {r3, lr} + ldr r0, _0222DEA8 ; =0x02237CEC + ldr r2, _0222DEAC ; =0x02237CF4 + ldr r1, [r0] + ldr r0, [r0, #4] + str r1, [r2] + str r0, [r2, #4] + bl MOD79_022122E4 + mov r0, #2 + str r0, [sp] + ldr r0, _0222DEB0 ; =0x022378E4 + ldr r1, _0222DEAC ; =0x02237CF4 + ldr r3, _0222DEB4 ; =0x02237E1C + mov r2, #8 + bl MOD80_0222DF00 + cmp r0, #0 + beq _0222DE96 + ldr r0, _0222DEB8 ; =0x02237CE0 + mov r1, #0x12 + str r1, [r0] + pop {r3, pc} +_0222DE96: + ldr r0, _0222DEB8 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + sub r1, #0x23 + str r1, [r0, #4] + bl MOD56_0221244C + pop {r3, pc} + nop +_0222DEA8: .word 0x02237CEC +_0222DEAC: .word 0x02237CF4 +_0222DEB0: .word 0x022378E4 +_0222DEB4: .word 0x02237E1C +_0222DEB8: .word 0x02237CE0 + thumb_func_end MOD80_0222DE68 + + thumb_func_start MOD80_0222DEBC +MOD80_0222DEBC: ; 0x0222DEBC + push {r3, lr} + bl MOD79_022122E4 + mov r0, #2 + str r0, [sp] + ldr r0, _0222DEF0 ; =0x02237938 + ldr r1, _0222DEF4 ; =0x02237CF4 + ldr r3, _0222DEF8 ; =0x02237E1C + mov r2, #0 + bl MOD80_0222DF00 + cmp r0, #0 + beq _0222DEDE + ldr r0, _0222DEFC ; =0x02237CE0 + mov r1, #0x14 + str r1, [r0] + pop {r3, pc} +_0222DEDE: + ldr r0, _0222DEFC ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + sub r1, #0x23 + str r1, [r0, #4] + bl MOD56_0221244C + pop {r3, pc} + nop +_0222DEF0: .word 0x02237938 +_0222DEF4: .word 0x02237CF4 +_0222DEF8: .word 0x02237E1C +_0222DEFC: .word 0x02237CE0 + thumb_func_end MOD80_0222DEBC + + thumb_func_start MOD80_0222DF00 +MOD80_0222DF00: ; 0x0222DF00 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r1, #0 + ldr r1, [sp, #0x18] + str r3, [sp] + str r1, [sp, #4] + add r4, r2, #0 + ldr r1, _0222DF34 ; =0x02237CE0 + add r2, r5, #0 + ldr r1, [r1, #8] + add r3, r4, #0 + bl MOD79_02212308 + cmp r0, #0 + beq _0222DF26 + cmp r0, #1 + beq _0222DF2C + cmp r0, #2 + b _0222DF2C +_0222DF26: + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, pc} +_0222DF2C: + mov r0, #0 + add sp, #8 + pop {r3, r4, r5, pc} + nop +_0222DF34: .word 0x02237CE0 + thumb_func_end MOD80_0222DF00 + + thumb_func_start MOD80_0222DF38 +MOD80_0222DF38: ; 0x0222DF38 + push {r4, lr} + cmp r0, #0x20 + bhi _0222DFB0 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222DF4A: ; jump table + .short _0222DF8C - _0222DF4A - 2 ; case 0 + .short _0222DF8C - _0222DF4A - 2 ; case 1 + .short _0222DF92 - _0222DF4A - 2 ; case 2 + .short _0222DF8C - _0222DF4A - 2 ; case 3 + .short _0222DF8C - _0222DF4A - 2 ; case 4 + .short _0222DF8C - _0222DF4A - 2 ; case 5 + .short _0222DF8C - _0222DF4A - 2 ; case 6 + .short _0222DFB0 - _0222DF4A - 2 ; case 7 + .short _0222DF92 - _0222DF4A - 2 ; case 8 + .short _0222DF8C - _0222DF4A - 2 ; case 9 + .short _0222DF8C - _0222DF4A - 2 ; case 10 + .short _0222DF98 - _0222DF4A - 2 ; case 11 + .short _0222DF9E - _0222DF4A - 2 ; case 12 + .short _0222DF9E - _0222DF4A - 2 ; case 13 + .short _0222DF8C - _0222DF4A - 2 ; case 14 + .short _0222DFAA - _0222DF4A - 2 ; case 15 + .short _0222DFA4 - _0222DF4A - 2 ; case 16 + .short _0222DFA4 - _0222DF4A - 2 ; case 17 + .short _0222DFA4 - _0222DF4A - 2 ; case 18 + .short _0222DFA4 - _0222DF4A - 2 ; case 19 + .short _0222DF8C - _0222DF4A - 2 ; case 20 + .short _0222DF8C - _0222DF4A - 2 ; case 21 + .short _0222DF8C - _0222DF4A - 2 ; case 22 + .short _0222DF8C - _0222DF4A - 2 ; case 23 + .short _0222DFB0 - _0222DF4A - 2 ; case 24 + .short _0222DF92 - _0222DF4A - 2 ; case 25 + .short _0222DFA4 - _0222DF4A - 2 ; case 26 + .short _0222DFA4 - _0222DF4A - 2 ; case 27 + .short _0222DFA4 - _0222DF4A - 2 ; case 28 + .short _0222DFA4 - _0222DF4A - 2 ; case 29 + .short _0222DFAA - _0222DF4A - 2 ; case 30 + .short _0222DFA4 - _0222DF4A - 2 ; case 31 + .short _0222DF8C - _0222DF4A - 2 ; case 32 +_0222DF8C: + mov r4, #0xc + mvn r4, r4 + b _0222DFB4 +_0222DF92: + mov r4, #0xc + mvn r4, r4 + b _0222DFB4 +_0222DF98: + mov r4, #0xe + mvn r4, r4 + b _0222DFB4 +_0222DF9E: + mov r4, #0xe + mvn r4, r4 + b _0222DFB4 +_0222DFA4: + mov r4, #1 + mvn r4, r4 + b _0222DFB4 +_0222DFAA: + mov r4, #1 + mvn r4, r4 + b _0222DFB4 +_0222DFB0: + mov r4, #0xc + mvn r4, r4 +_0222DFB4: + mov r0, #0xc + mvn r0, r0 + cmp r4, r0 + beq _0222DFCC + bl FUN_020A71F8 + cmp r0, #9 + beq _0222DFC8 + mov r4, #0xd + mvn r4, r4 +_0222DFC8: + bl MOD04_021DD6F0 +_0222DFCC: + add r0, r4, #0 + pop {r4, pc} + thumb_func_end MOD80_0222DF38 + + thumb_func_start MOD80_0222DFD0 +MOD80_0222DFD0: ; 0x0222DFD0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r1, #0 + add r6, r0, #0 + ldr r0, [r5] + cmp r0, #0 + beq _0222DFE4 + cmp r0, #1 + beq _0222E0E2 + b _0222E0F8 +_0222DFE4: + 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, _0222E100 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _0222E104 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r2, #7 + mov r0, #3 + mov r1, #0x3e + lsl r2, r2, #0x10 + bl FUN_0201681C + ldr r1, _0222E108 ; =0x00001044 + add r0, r6, #0 + mov r2, #0x3e + bl FUN_02006268 + ldr r2, _0222E108 ; =0x00001044 + mov r1, #0 + add r4, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x3e + bl FUN_02016B94 + str r0, [r4, #4] + ldr r0, _0222E10C ; =0x02237E24 + add r2, sp, #0 + ldr r3, _0222E110 ; =0x02236E50 + str r4, [r0, #4] + add r7, r2, #0 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + add r0, r7, #0 + bl FUN_02016BBC + mov r0, #0xb + mov r1, #0x40 + mov r2, #0x3e + bl FUN_0200AA90 + mov r1, #0xb3 + lsl r1, r1, #4 + str r0, [r4, r1] + ldr r2, _0222E114 ; =0x0000024F + mov r0, #0 + mov r1, #0x1a + mov r3, #0x3e + bl FUN_0200A86C + ldr r1, _0222E118 ; =0x00000B34 + mov r2, #0x25 + str r0, [r4, r1] + mov r0, #0 + mov r1, #0x1a + lsl r2, r2, #4 + mov r3, #0x3e + bl FUN_0200A86C + ldr r1, _0222E11C ; =0x00000B3C + ldr r2, _0222E120 ; =0x00000265 + str r0, [r4, r1] + mov r0, #0 + mov r1, #0x1a + mov r3, #0x3e + bl FUN_0200A86C + mov r1, #0x2d + lsl r1, r1, #6 + str r0, [r4, r1] + ldr r2, _0222E124 ; =0x0000016A + mov r0, #0 + mov r1, #0x1a + mov r3, #0x3e + bl FUN_0200A86C + ldr r1, _0222E128 ; =0x00000B38 + str r0, [r4, r1] + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + add r0, r4, #0 + add r1, r6, #0 + bl MOD80_0222E338 + add r0, r4, #0 + bl MOD80_0222E7C8 + ldr r1, _0222E12C ; =0x00000449 + mov r0, #4 + mov r2, #1 + bl FUN_0200433C + ldr r1, _0222E130 ; =0x00020020 + mov r0, #0x3e + bl FUN_02016998 + str r0, [r4, #0x48] + add r0, #0x1f + mov r1, #0x1f + bic r0, r1 + mov r1, #2 + lsl r1, r1, #0x10 + mov r2, #0 + bl tempName_NNS_FndCreateExpHeapEx + str r0, [r4, #0x4c] + mov r0, #1 + str r0, [r5] + b _0222E0F8 +_0222E0E2: + bl FUN_02088858 + bl FUN_020888BC + bl FUN_0202E49C + mov r0, #0 + str r0, [r5] + add sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0222E0F8: + mov r0, #0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222E100: .word 0xFFFFE0FF +_0222E104: .word 0x04001000 +_0222E108: .word 0x00001044 +_0222E10C: .word 0x02237E24 +_0222E110: .word 0x02236E50 +_0222E114: .word 0x0000024F +_0222E118: .word 0x00000B34 +_0222E11C: .word 0x00000B3C +_0222E120: .word 0x00000265 +_0222E124: .word 0x0000016A +_0222E128: .word 0x00000B38 +_0222E12C: .word 0x00000449 +_0222E130: .word 0x00020020 + thumb_func_end MOD80_0222DFD0 + + thumb_func_start MOD80_0222E134 +MOD80_0222E134: ; 0x0222E134 + push {r4, r5, r6, lr} + add r5, r1, #0 + bl FUN_02006278 + add r4, r0, #0 + bl MOD04_021DD984 + bl MOD80_0222D5DC + ldr r1, [r5] + cmp r1, #5 + bhi _0222E224 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222E158: ; jump table + .short _0222E164 - _0222E158 - 2 ; case 0 + .short _0222E180 - _0222E158 - 2 ; case 1 + .short _0222E1A4 - _0222E158 - 2 ; case 2 + .short _0222E1B2 - _0222E158 - 2 ; case 3 + .short _0222E1C6 - _0222E158 - 2 ; case 4 + .short _0222E220 - _0222E158 - 2 ; case 5 +_0222E164: + bl FUN_0202E4C8 + cmp r0, #0 + beq _0222E224 + ldr r1, [r4, #0x4c] + ldr r0, _0222E240 ; =0x02237E24 + str r1, [r0] + ldr r0, _0222E244 ; =MOD80_0222E750 + ldr r1, _0222E248 ; =MOD80_0222E778 + bl MOD04_021DD968 + mov r0, #1 + str r0, [r5] + b _0222E224 +_0222E180: + ldr r3, [r4, #0x14] + mov r2, #0xc + add r6, r3, #0 + mul r6, r2 + ldr r2, _0222E24C ; =0x02237984 + add r0, r4, #0 + ldr r2, [r2, r6] + blx r2 + str r0, [r5] + add r0, r4, #0 + add r0, #0xac + ldr r0, [r0] + cmp r0, #0 + beq _0222E224 + add r0, r4, #0 + bl MOD80_0222E7F0 + b _0222E224 +_0222E1A4: + bl FUN_0200E308 + cmp r0, #0 + beq _0222E224 + mov r0, #3 + str r0, [r5] + b _0222E224 +_0222E1B2: + ldr r3, [r4, #0x14] + mov r2, #0xc + add r6, r3, #0 + mul r6, r2 + ldr r2, _0222E250 ; =0x02237988 + add r0, r4, #0 + ldr r2, [r2, r6] + blx r2 + str r0, [r5] + b _0222E224 +_0222E1C6: + bl FUN_0200E308 + cmp r0, #0 + beq _0222E224 + add r0, r4, #0 + add r0, #0xac + ldr r0, [r0] + cmp r0, #0 + beq _0222E20A + add r0, r4, #0 + bl MOD80_0222E7C8 + ldr r0, [r4] + ldr r0, [r0, #0x1c] + bl FUN_020239CC + add r1, r0, #0 + add r0, r4, #0 + bl MOD80_02235850 + add r1, r4, #0 + add r1, #0xc0 + ldr r1, [r1] + add r0, r4, #0 + mov r2, #0 + bl MOD80_02235B90 + add r0, r4, #0 + bl MOD80_0222F338 + add r0, r4, #0 + mov r1, #0 + add r0, #0xac + str r1, [r0] +_0222E20A: + ldr r3, [r4, #0x14] + mov r2, #0xc + add r6, r3, #0 + mul r6, r2 + ldr r2, _0222E254 ; =0x0223798C + ldr r1, [r5] + ldr r2, [r2, r6] + add r0, r4, #0 + blx r2 + str r0, [r5] + b _0222E224 +_0222E220: + mov r0, #1 + pop {r4, r5, r6, pc} +_0222E224: + add r0, r4, #0 + bl MOD80_0222E85C + add r0, r4, #0 + bl MOD80_0222E87C + ldr r0, _0222E258 ; =0x00000B84 + ldr r0, [r4, r0] + cmp r0, #0 + beq _0222E23C + bl FUN_0201FDEC +_0222E23C: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_0222E240: .word 0x02237E24 +_0222E244: .word MOD80_0222E750 +_0222E248: .word MOD80_0222E778 +_0222E24C: .word 0x02237984 +_0222E250: .word 0x02237988 +_0222E254: .word 0x0223798C +_0222E258: .word 0x00000B84 + thumb_func_end MOD80_0222E134 + + thumb_func_start MOD80_0222E25C +MOD80_0222E25C: ; 0x0222E25C + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + ldr r0, [r4, #0x48] + bl FUN_02016A18 + bl FUN_020888CC + bl FUN_02088868 + add r0, r4, #0 + bl MOD80_0222E7F0 + ldr r0, _0222E2D4 ; =0x00000B38 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + mov r0, #0x2d + lsl r0, r0, #6 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + ldr r0, _0222E2D8 ; =0x00000B3C + ldr r0, [r4, r0] + bl FUN_0200A8B8 + ldr r0, _0222E2DC ; =0x00000B34 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + mov r0, #0xb3 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_0200AB18 + add r0, r4, #0 + bl MOD80_0222E398 + bl FUN_0202E4F0 + ldr r0, [r4, #4] + bl FUN_02016A18 + ldr r0, [r4] + bl FUN_02016A18 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0x3e + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_0222E2D4: .word 0x00000B38 +_0222E2D8: .word 0x00000B3C +_0222E2DC: .word 0x00000B34 + thumb_func_end MOD80_0222E25C + + thumb_func_start MOD80_0222E2E0 +MOD80_0222E2E0: ; 0x0222E2E0 + push {r4, lr} + ldr r1, _0222E30C ; =0x00001014 + add r4, r0, #0 + ldr r1, [r4, r1] + cmp r1, #0 + beq _0222E2F4 + blx r1 + ldr r0, _0222E30C ; =0x00001014 + mov r1, #0 + str r1, [r4, r0] +_0222E2F4: + bl FUN_0201C30C + bl FUN_02009F80 + ldr r3, _0222E310 ; =0x027E0000 + ldr r1, _0222E314 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r4, pc} + nop +_0222E30C: .word 0x00001014 +_0222E310: .word 0x027E0000 +_0222E314: .word 0x00003FF8 + thumb_func_end MOD80_0222E2E0 + + thumb_func_start MOD80_0222E318 +MOD80_0222E318: ; 0x0222E318 + push {r4, lr} + sub sp, #0x28 + ldr r4, _0222E334 ; =0x02236E70 + add r3, sp, #0 + mov r2, #5 +_0222E322: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _0222E322 + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_0222E334: .word 0x02236E70 + thumb_func_end MOD80_0222E318 + + thumb_func_start MOD80_0222E338 +MOD80_0222E338: ; 0x0222E338 + push {r4, lr} + add r4, r0, #0 + add r0, r1, #0 + bl FUN_0200628C + mov r1, #0 + str r0, [r4] + add r0, r4, #0 + add r2, r1, #0 + str r1, [r4, #0x14] + bl MOD80_0222E7A8 + add r1, r4, #0 + mov r0, #0 + add r1, #0xb4 + strh r0, [r1] + ldr r1, _0222E390 ; =0x00000B22 + mov r3, #3 + strh r0, [r4, r1] + add r2, r1, #2 + strb r3, [r4, r2] + add r2, r1, #3 + strb r0, [r4, r2] + add r2, r1, #4 + strb r0, [r4, r2] + add r1, r1, #6 + strh r0, [r4, r1] + ldr r2, _0222E394 ; =0x00000FEC + add r1, r4, #0 + strh r0, [r4, r2] + mov r3, #0x12 + add r1, #0xb8 + strh r3, [r1] + add r1, r2, #0 + add r1, #0x1c + strh r0, [r4, r1] + add r1, r2, #0 + add r1, #0x1e + strh r0, [r4, r1] + add r1, r2, #2 + strh r0, [r4, r1] + sub r2, #0x14 + str r0, [r4, r2] + pop {r4, pc} + .align 2, 0 +_0222E390: .word 0x00000B22 +_0222E394: .word 0x00000FEC + thumb_func_end MOD80_0222E338 + + thumb_func_start MOD80_0222E398 +MOD80_0222E398: ; 0x0222E398 + bx lr + .align 2, 0 + thumb_func_end MOD80_0222E398 + + thumb_func_start MOD80_0222E39C +MOD80_0222E39C: ; 0x0222E39C + push {r4, lr} + sub sp, #0x10 + ldr r4, _0222E3C8 ; =0x02236E60 + add r3, sp, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_0201D040 + mov r0, #0x14 + mov r1, #0x3e + bl FUN_0201E00C + bl FUN_0201D168 + bl FUN_0201E0BC + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_0222E3C8: .word 0x02236E60 + thumb_func_end MOD80_0222E39C + + thumb_func_start MOD80_0222E3CC +MOD80_0222E3CC: ; 0x0222E3CC + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r5, r0, #0 + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x7e + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r2, #0x3e + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + ldr r1, _0222E5C8 ; =0x00000B88 + mov r0, #0x4e + add r1, r5, r1 + mov r2, #0x3e + bl FUN_02008C9C + ldr r1, _0222E5CC ; =0x00000B84 + mov r2, #1 + str r0, [r5, r1] + add r0, r1, #4 + add r0, r5, r0 + mov r1, #0 + lsl r2, r2, #0x14 + bl FUN_02008D24 + mov r7, #0xcb + mov r6, #0 + add r4, r5, #0 + lsl r7, r7, #4 +_0222E414: + mov r0, #3 + add r1, r6, #0 + mov r2, #0x3e + bl FUN_02008DEC + str r0, [r4, r7] + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #4 + blt _0222E414 + mov r0, #0 + str r0, [sp] + mov r3, #1 + str r3, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #0xcb + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0x68 + mov r2, #0x12 + bl FUN_02008F34 + mov r1, #0x33 + lsl r1, r1, #6 + str r0, [r5, r1] + mov r3, #0 + str r3, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #3 + str r0, [sp, #8] + mov r0, #0x3e + sub r1, #0xc + str r0, [sp, #0xc] + ldr r0, [r5, r1] + mov r1, #0x68 + mov r2, #9 + bl FUN_02008FEC + ldr r1, _0222E5D0 ; =0x00000CC4 + mov r2, #0x13 + str r0, [r5, r1] + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x3e + sub r1, #0xc + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x68 + mov r3, #1 + bl FUN_020090AC + ldr r1, _0222E5D4 ; =0x00000CC8 + mov r2, #0x14 + str r0, [r5, r1] + mov r0, #0 + str r0, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x3e + sub r1, #0xc + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x68 + mov r3, #1 + bl FUN_020090AC + ldr r1, _0222E5D8 ; =0x00000CCC + mov r3, #1 + str r0, [r5, r1] + str r3, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x3e + sub r1, #0x1c + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x68 + mov r2, #0x20 + bl FUN_02008F34 + mov r1, #0xcd + lsl r1, r1, #4 + str r0, [r5, r1] + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #9 + str r0, [sp, #8] + mov r0, #0x3e + sub r1, #0x1c + str r0, [sp, #0xc] + ldr r0, [r5, r1] + mov r1, #0x68 + mov r2, #8 + mov r3, #0 + bl FUN_02008FEC + ldr r1, _0222E5DC ; =0x00000CD4 + mov r3, #1 + str r0, [r5, r1] + str r3, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x3e + sub r1, #0x1c + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x68 + mov r2, #0x21 + bl FUN_020090AC + ldr r1, _0222E5E0 ; =0x00000CD8 + mov r3, #1 + str r0, [r5, r1] + str r3, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x3e + sub r1, #0x1c + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x68 + mov r2, #0x22 + bl FUN_020090AC + ldr r1, _0222E5E4 ; =0x00000CDC + str r0, [r5, r1] + sub r1, #0x1c + ldr r0, [r5, r1] + bl FUN_02009A50 + mov r0, #0xcd + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02009A50 + ldr r0, _0222E5D0 ; =0x00000CC4 + ldr r0, [r5, r0] + bl FUN_02009CF0 + ldr r0, _0222E5DC ; =0x00000CD4 + ldr r0, [r5, r0] + bl FUN_02009CF0 + bl FUN_0206B888 + add r1, r0, #0 + mov r0, #0x13 + add r2, sp, #0x18 + mov r3, #0x3e + bl FUN_02006C08 + str r0, [sp, #0x14] + ldr r0, [sp, #0x18] + mov r1, #0x60 + ldr r0, [r0, #0xc] + bl DC_FlushRange + ldr r0, [sp, #0x18] + mov r1, #0x60 + ldr r0, [r0, #0xc] + add r2, r1, #0 + bl GX_LoadOBJPltt + ldr r0, [sp, #0x18] + mov r7, #0x1f + ldr r4, [r0, #0xc] + mov r3, #0 + add r5, r7, #0 +_0222E570: + ldrh r2, [r4] + mov r0, #0x1f + add r3, r3, #1 + add r1, r2, #0 + and r1, r0 + lsr r0, r1, #0x1f + add r0, r1, r0 + asr r1, r0, #1 + asr r0, r2, #0xa + add r6, r0, #0 + and r6, r7 + lsr r0, r6, #0x1f + add r0, r6, r0 + asr r2, r2, #5 + add r6, r2, #0 + and r6, r5 + lsr r2, r6, #0x1f + add r2, r6, r2 + asr r0, r0, #1 + asr r2, r2, #1 + lsl r0, r0, #0xa + lsl r2, r2, #5 + orr r0, r2 + orr r0, r1 + strh r0, [r4] + add r4, r4, #2 + cmp r3, #0x30 + blt _0222E570 + ldr r0, [sp, #0x18] + mov r1, #0x60 + ldr r0, [r0, #0xc] + bl DC_FlushRange + ldr r0, [sp, #0x18] + mov r1, #0xc0 + ldr r0, [r0, #0xc] + mov r2, #0x60 + bl GX_LoadOBJPltt + ldr r0, [sp, #0x14] + bl FUN_02016A18 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222E5C8: .word 0x00000B88 +_0222E5CC: .word 0x00000B84 +_0222E5D0: .word 0x00000CC4 +_0222E5D4: .word 0x00000CC8 +_0222E5D8: .word 0x00000CCC +_0222E5DC: .word 0x00000CD4 +_0222E5E0: .word 0x00000CD8 +_0222E5E4: .word 0x00000CDC + thumb_func_end MOD80_0222E3CC + + thumb_func_start MOD80_0222E5E8 +MOD80_0222E5E8: ; 0x0222E5E8 + push {r3, r4} + ldr r4, _0222E610 ; =0x00000B84 + ldr r1, [r1, r4] + str r1, [r0] + str r2, [r0, #4] + mov r2, #0 + mov r1, #1 + str r2, [r0, #0x10] + lsl r1, r1, #0xc + str r1, [r0, #0x14] + str r1, [r0, #0x18] + str r1, [r0, #0x1c] + strh r2, [r0, #0x20] + mov r1, #1 + str r1, [r0, #0x24] + str r3, [r0, #0x28] + mov r1, #0x3e + str r1, [r0, #0x2c] + pop {r3, r4} + bx lr + .align 2, 0 +_0222E610: .word 0x00000B84 + thumb_func_end MOD80_0222E5E8 + + thumb_func_start MOD80_0222E614 +MOD80_0222E614: ; 0x0222E614 + push {r3, r4, lr} + sub sp, #0x2c + mov r1, #0 + add r4, r0, #0 + str r1, [sp] + sub r0, r1, #1 + str r0, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + mov r2, #0xcb + str r1, [sp, #0x10] + lsl r2, r2, #4 + ldr r0, [r4, r2] + add r3, r1, #0 + str r0, [sp, #0x14] + add r0, r2, #4 + ldr r0, [r4, r0] + str r0, [sp, #0x18] + add r0, r2, #0 + add r0, #8 + ldr r0, [r4, r0] + str r0, [sp, #0x1c] + add r0, r2, #0 + add r0, #0xc + ldr r0, [r4, r0] + add r2, #0x40 + str r0, [sp, #0x20] + str r1, [sp, #0x24] + add r0, r4, r2 + add r2, r1, #0 + str r1, [sp, #0x28] + bl FUN_02008AA4 + mov r1, #1 + mov r3, #0xcb + str r1, [sp] + sub r0, r1, #2 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + lsl r3, r3, #4 + ldr r2, [r4, r3] + str r2, [sp, #0x14] + add r2, r3, #4 + ldr r2, [r4, r2] + str r2, [sp, #0x18] + add r2, r3, #0 + add r2, #8 + ldr r2, [r4, r2] + str r2, [sp, #0x1c] + add r2, r3, #0 + add r2, #0xc + ldr r2, [r4, r2] + add r3, #0x64 + str r2, [sp, #0x20] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + add r0, r4, r3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02008AA4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + add sp, #0x2c + pop {r3, r4, pc} + thumb_func_end MOD80_0222E614 + + thumb_func_start MOD80_0222E6A8 +MOD80_0222E6A8: ; 0x0222E6A8 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + ldr r5, _0222E6D8 ; =0x02236E48 + add r4, sp, #4 + ldrh r6, [r5] + add r3, sp, #4 + strh r6, [r4] + ldrh r6, [r5, #2] + strh r6, [r4, #2] + ldrh r6, [r5, #4] + ldrh r5, [r5, #6] + strh r6, [r4, #4] + strh r5, [r4, #6] + strb r1, [r4, #2] + strh r2, [r4, #6] + mov r1, #0x3e + str r1, [sp] + add r1, r3, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_02002198 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0222E6D8: .word 0x02236E48 + thumb_func_end MOD80_0222E6A8 + + thumb_func_start MOD80_0222E6DC +MOD80_0222E6DC: ; 0x0222E6DC + str r1, [r0, #0x2c] + str r2, [r0, #0x30] + bx lr + .align 2, 0 + thumb_func_end MOD80_0222E6DC + + thumb_func_start MOD80_0222E6E4 +MOD80_0222E6E4: ; 0x0222E6E4 + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + add r5, r2, #0 + cmp r1, #0 + ble _0222E702 + lsl r0, r1, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _0222E710 +_0222E702: + lsl r0, r1, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_0222E710: + bl _ffix + str r0, [sp] + cmp r5, #0 + ble _0222E72C + lsl r0, r5, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _0222E73A +_0222E72C: + lsl r0, r5, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_0222E73A: + bl _ffix + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, sp, #0 + bl FUN_02020044 + add sp, #0xc + pop {r4, r5, pc} + thumb_func_end MOD80_0222E6E4 + + thumb_func_start MOD80_0222E750 +MOD80_0222E750: ; 0x0222E750 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r4, r2, #0 + bl OS_DisableInterrupts + add r6, r0, #0 + ldr r0, _0222E774 ; =0x02237E24 + add r1, r5, #0 + ldr r0, [r0] + add r2, r4, #0 + bl tempName_NNS_FndAllocFromExpHeapEx + add r4, r0, #0 + add r0, r6, #0 + bl OS_RestoreInterrupts + add r0, r4, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_0222E774: .word 0x02237E24 + thumb_func_end MOD80_0222E750 + + thumb_func_start MOD80_0222E778 +MOD80_0222E778: ; 0x0222E778 + push {r3, r4, r5, lr} + add r5, r1, #0 + beq _0222E794 + bl OS_DisableInterrupts + add r4, r0, #0 + ldr r0, _0222E798 ; =0x02237E24 + add r1, r5, #0 + ldr r0, [r0] + bl FUN_020ADDF0 + add r0, r4, #0 + bl OS_RestoreInterrupts +_0222E794: + pop {r3, r4, r5, pc} + nop +_0222E798: .word 0x02237E24 + thumb_func_end MOD80_0222E778 + + thumb_func_start MOD80_0222E79C +MOD80_0222E79C: ; 0x0222E79C + push {r3, lr} + bl MOD04_021DDB08 + mov r1, #3 + sub r0, r1, r0 + pop {r3, pc} + thumb_func_end MOD80_0222E79C + + thumb_func_start MOD80_0222E7A8 +MOD80_0222E7A8: ; 0x0222E7A8 + str r1, [r0, #0x18] + str r2, [r0, #0x24] + bx lr + .align 2, 0 + thumb_func_end MOD80_0222E7A8 + + thumb_func_start MOD80_0222E7B0 +MOD80_0222E7B0: ; 0x0222E7B0 + ldr r1, [r0, #0x14] + str r1, [r0, #0x20] + ldr r1, [r0, #0x18] + str r1, [r0, #0x14] + bx lr + .align 2, 0 + thumb_func_end MOD80_0222E7B0 + + thumb_func_start MOD80_0222E7BC +MOD80_0222E7BC: ; 0x0222E7BC + ldr r0, [r0] + ldr r3, _0222E7C4 ; =FUN_02024FF4 + ldr r0, [r0, #0x24] + bx r3 + .align 2, 0 +_0222E7C4: .word FUN_02024FF4 + thumb_func_end MOD80_0222E7BC + + thumb_func_start MOD80_0222E7C8 +MOD80_0222E7C8: ; 0x0222E7C8 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222E318 + bl MOD80_0222E39C + add r0, r4, #0 + bl MOD80_0222E3CC + add r0, r4, #0 + bl MOD80_0222E614 + ldr r0, _0222E7EC ; =MOD80_0222E2E0 + add r1, r4, #0 + bl FUN_02015F10 + pop {r4, pc} + nop +_0222E7EC: .word MOD80_0222E2E0 + thumb_func_end MOD80_0222E7C8 + + thumb_func_start MOD80_0222E7F0 +MOD80_0222E7F0: ; 0x0222E7F0 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + bl MOD80_02235D10 + mov r0, #0x33 + lsl r0, r0, #6 + ldr r0, [r6, r0] + bl FUN_02009C0C + mov r0, #0xcd + lsl r0, r0, #4 + ldr r0, [r6, r0] + bl FUN_02009C0C + ldr r0, _0222E850 ; =0x00000CC4 + ldr r0, [r6, r0] + bl FUN_02009E04 + ldr r0, _0222E854 ; =0x00000CD4 + ldr r0, [r6, r0] + bl FUN_02009E04 + mov r7, #0xcb + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #4 +_0222E824: + ldr r0, [r5, r7] + bl FUN_02008E2C + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _0222E824 + ldr r0, _0222E858 ; =0x00000B84 + ldr r0, [r6, r0] + bl FUN_0201FD58 + ldr r0, _0222E858 ; =0x00000B84 + mov r1, #0 + str r1, [r6, r0] + bl FUN_02009FA0 + bl FUN_0201D12C + bl FUN_0201E08C + pop {r3, r4, r5, r6, r7, pc} + nop +_0222E850: .word 0x00000CC4 +_0222E854: .word 0x00000CD4 +_0222E858: .word 0x00000B84 + thumb_func_end MOD80_0222E7F0 + + thumb_func_start MOD80_0222E85C +MOD80_0222E85C: ; 0x0222E85C + ldrh r1, [r0, #0x3a] + cmp r1, #0 + beq _0222E866 + sub r1, r1, #1 + strh r1, [r0, #0x3a] +_0222E866: + bx lr + thumb_func_end MOD80_0222E85C + + thumb_func_start MOD80_0222E868 +MOD80_0222E868: ; 0x0222E868 + ldr r1, _0222E878 ; =0x0000100A + mov r2, #1 + strh r2, [r0, r1] + mov r2, #0 + sub r1, r1, #2 + strh r2, [r0, r1] + bx lr + nop +_0222E878: .word 0x0000100A + thumb_func_end MOD80_0222E868 + + thumb_func_start MOD80_0222E87C +MOD80_0222E87C: ; 0x0222E87C + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222E8B4 ; =0x0000100A + ldrh r1, [r4, r0] + cmp r1, #0 + beq _0222E8B0 + ldr r0, [r4] + sub r1, r1, #1 + ldr r0, [r0, #0xc] + bl FUN_0206B4E4 + ldr r1, _0222E8B8 ; =0x00001008 + ldrh r2, [r4, r1] + add r0, r2, r0 + strh r0, [r4, r1] + add r0, r1, #2 + ldrh r0, [r4, r0] + add r2, r0, #1 + add r0, r1, #2 + strh r2, [r4, r0] + ldrh r0, [r4, r0] + cmp r0, #0x13 + bne _0222E8B0 + mov r2, #0 + add r0, r1, #2 + strh r2, [r4, r0] +_0222E8B0: + pop {r4, pc} + nop +_0222E8B4: .word 0x0000100A +_0222E8B8: .word 0x00001008 + thumb_func_end MOD80_0222E87C + + thumb_func_start MOD80_0222E8BC +MOD80_0222E8BC: ; 0x0222E8BC + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222E8D0 ; =0x00000E98 + mov r1, #1 + add r0, r4, r0 + bl FUN_0200D858 + ldr r1, _0222E8D4 ; =0x00000FD8 + str r0, [r4, r1] + pop {r4, pc} + .align 2, 0 +_0222E8D0: .word 0x00000E98 +_0222E8D4: .word 0x00000FD8 + thumb_func_end MOD80_0222E8BC + + thumb_func_start MOD80_0222E8D8 +MOD80_0222E8D8: ; 0x0222E8D8 + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222E8F0 ; =0x00000FD8 + ldr r0, [r4, r0] + cmp r0, #0 + beq _0222E8EE + bl FUN_0200DBFC + ldr r0, _0222E8F0 ; =0x00000FD8 + mov r1, #0 + str r1, [r4, r0] +_0222E8EE: + pop {r4, pc} + .align 2, 0 +_0222E8F0: .word 0x00000FD8 + thumb_func_end MOD80_0222E8D8 + + thumb_func_start MOD80_0222E8F4 +MOD80_0222E8F4: ; 0x0222E8F4 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD80_0222EDE0 + ldr r0, [r4, #4] + bl MOD80_0222EA04 + add r0, r4, #0 + bl MOD80_0222EB6C + add r0, r4, #0 + bl MOD80_0222EC98 + add r0, r4, #0 + bl MOD80_0222EC24 + add r0, r4, #0 + bl MOD80_02236D84 + add r0, r4, #0 + bl MOD80_0222F20C + ldr r1, _0222E9B0 ; =0x00000449 + mov r0, #4 + mov r2, #1 + bl FUN_0200433C + ldrh r0, [r4, #0x34] + cmp r0, #0 + bne _0222E968 + add r0, r4, #0 + bl MOD80_0222EB40 + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #1 + strh r0, [r4, #0x34] + ldr r0, [r4] + ldr r0, [r0, #0x1c] + bl FUN_020239CC + add r1, r0, #0 + add r0, r4, #0 + bl MOD80_02235900 + b _0222E9A2 +_0222E968: + ldr r0, _0222E9B4 ; =0x0000100C + ldr r0, [r4, r0] + cmp r0, #1 + bne _0222E988 + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + b _0222E99E +_0222E988: + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 +_0222E99E: + mov r0, #5 + str r0, [r4, #0x2c] +_0222E9A2: + ldr r0, _0222E9B4 ; =0x0000100C + mov r1, #0 + str r1, [r4, r0] + mov r0, #2 + add sp, #0xc + pop {r3, r4, pc} + nop +_0222E9B0: .word 0x00000449 +_0222E9B4: .word 0x0000100C + thumb_func_end MOD80_0222E8F4 + + thumb_func_start MOD80_0222E9B8 +MOD80_0222E9B8: ; 0x0222E9B8 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222E79C + bl FUN_02033EEC + ldr r1, [r4, #0x2c] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _0222E9D4 ; =0x022379FC + ldr r1, [r1, r2] + blx r1 + pop {r4, pc} + nop +_0222E9D4: .word 0x022379FC + thumb_func_end MOD80_0222E9B8 + + thumb_func_start MOD80_0222E9D8 +MOD80_0222E9D8: ; 0x0222E9D8 + push {r4, lr} + add r4, r0, #0 + bl FUN_02033ED0 + add r0, r4, #0 + bl MOD80_0222EC88 + add r0, r4, #0 + bl MOD80_0222EE08 + add r0, r4, #0 + bl MOD80_0222ED9C + ldr r0, [r4, #4] + bl MOD80_0222EB14 + add r0, r4, #0 + bl MOD80_0222E7B0 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_0222E9D8 + + thumb_func_start MOD80_0222EA04 +MOD80_0222EA04: ; 0x0222EA04 + push {r4, r5, lr} + sub sp, #0x9c + ldr r5, _0222EAFC ; =0x02236EA4 + add r3, sp, #0x8c + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _0222EB00 ; =0x02236F04 + add r3, sp, #0x70 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _0222EB04 ; =0x02236EE8 + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _0222EB08 ; =0x02236F20 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _0222EB0C ; =0x02236F3C + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _0222EB10 ; =0x02236ECC + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + str r0, [r3] + add r0, r4, #0 + mov r1, #5 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + add sp, #0x9c + pop {r4, r5, pc} + nop +_0222EAFC: .word 0x02236EA4 +_0222EB00: .word 0x02236F04 +_0222EB04: .word 0x02236EE8 +_0222EB08: .word 0x02236F20 +_0222EB0C: .word 0x02236F3C +_0222EB10: .word 0x02236ECC + thumb_func_end MOD80_0222EA04 + + thumb_func_start MOD80_0222EB14 +MOD80_0222EB14: ; 0x0222EB14 + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD80_0222EB14 + + thumb_func_start MOD80_0222EB40 +MOD80_0222EB40: ; 0x0222EB40 + push {r4, lr} + add r4, r0, #0 + mov r0, #1 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #0 + bl FUN_0201E6E4 + ldr r0, _0222EB68 ; =0x00000D5C + mov r1, #0 + ldr r0, [r4, r0] + bl FUN_020200A0 + pop {r4, pc} + .align 2, 0 +_0222EB68: .word 0x00000D5C + thumb_func_end MOD80_0222EB40 + + thumb_func_start MOD80_0222EB6C +MOD80_0222EB6C: ; 0x0222EB6C + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r4, [r5, #4] + mov r0, #0x60 + str r0, [sp] + mov r0, #0x3e + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x68 + mov r1, #4 + add r3, r2, #0 + bl FUN_02006930 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x3e + bl FUN_02002EEC + ldr r0, [r5] + ldr r0, [r0, #0x24] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CB00 + mov r0, #0 + str r0, [sp] + mov r0, #3 + lsl r0, r0, #0xa + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0xe + add r2, r4, #0 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x1e + add r2, r4, #0 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x1d + add r2, r4, #0 + mov r3, #2 + bl FUN_020068C8 + add r0, r5, #0 + bl MOD80_0222F338 + add sp, #0x10 + pop {r3, r4, r5, pc} + thumb_func_end MOD80_0222EB6C + + thumb_func_start MOD80_0222EC24 +MOD80_0222EC24: ; 0x0222EC24 + push {r4, lr} + sub sp, #0x30 + mov r2, #0xcf + add r4, r0, #0 + lsl r2, r2, #4 + add r0, sp, #0 + add r1, r4, #0 + add r2, r4, r2 + mov r3, #1 + bl MOD80_0222E5E8 + add r0, r4, #0 + add r0, #0xb4 + ldrh r0, [r0] + lsl r1, r0, #2 + ldr r0, _0222EC7C ; =0x02236E98 + ldrh r0, [r0, r1] + lsl r0, r0, #0xc + str r0, [sp, #8] + add r0, r4, #0 + add r0, #0xb4 + ldrh r0, [r0] + lsl r1, r0, #2 + ldr r0, _0222EC80 ; =0x02236E9A + ldrh r0, [r0, r1] + lsl r0, r0, #0xc + str r0, [sp, #0xc] + add r0, sp, #0 + bl FUN_0201FE94 + ldr r1, _0222EC84 ; =0x00000D5C + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #1 + bl FUN_020200BC + ldr r0, _0222EC84 ; =0x00000D5C + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_02020130 + add sp, #0x30 + pop {r4, pc} + nop +_0222EC7C: .word 0x02236E98 +_0222EC80: .word 0x02236E9A +_0222EC84: .word 0x00000D5C + thumb_func_end MOD80_0222EC24 + + thumb_func_start MOD80_0222EC88 +MOD80_0222EC88: ; 0x0222EC88 + ldr r1, _0222EC90 ; =0x00000D5C + ldr r3, _0222EC94 ; =FUN_0201FFC8 + ldr r0, [r0, r1] + bx r3 + .align 2, 0 +_0222EC90: .word 0x00000D5C +_0222EC94: .word FUN_0201FFC8 + thumb_func_end MOD80_0222EC88 + + thumb_func_start MOD80_0222EC98 +MOD80_0222EC98: ; 0x0222EC98 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + mov r3, #1 + add r7, r0, #0 + str r3, [sp] + mov r0, #0x1c + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + ldr r1, _0222ED88 ; =0x00000EB8 + str r0, [sp, #0x10] + ldr r0, [r7, #4] + add r1, r7, r1 + mov r2, #0 + bl FUN_02019064 + ldr r0, _0222ED88 ; =0x00000EB8 + mov r1, #0 + add r0, r7, r0 + bl FUN_02019620 + mov r0, #2 + str r0, [sp] + mov r3, #0 + mov r2, #0xb5 + ldr r0, _0222ED8C ; =0x000F0400 + str r3, [sp, #4] + str r0, [sp, #8] + ldr r0, _0222ED88 ; =0x00000EB8 + str r3, [sp, #0xc] + lsl r2, r2, #4 + ldr r2, [r7, r2] + add r0, r7, r0 + mov r1, #1 + bl FUN_0201BDE0 + mov r0, #0 + str r0, [sp, #0x14] + ldr r0, _0222ED90 ; =0x00000ED8 + mov r6, #0x61 + mov r4, #6 + add r5, r7, r0 +_0222ECF2: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0xf + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, [r7, #4] + add r1, r5, #0 + mov r2, #1 + mov r3, #9 + bl FUN_02019064 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + ldr r0, [sp, #0x14] + add r6, #0x1e + add r0, r0, #1 + add r4, r4, #5 + add r5, #0x10 + str r0, [sp, #0x14] + cmp r0, #3 + blt _0222ECF2 + mov r0, #0x15 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r3, #2 + ldr r1, _0222ED94 ; =0x00000E98 + str r3, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x60 + str r0, [sp, #0x10] + ldr r0, [r7, #4] + add r1, r7, r1 + mov r2, #0 + bl FUN_02019064 + ldr r0, _0222ED94 ; =0x00000E98 + mov r1, #0xf + add r0, r7, r0 + bl FUN_02019620 + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x96 + ldr r1, _0222ED98 ; =0x00000FB8 + str r0, [sp, #0x10] + ldr r0, [r7, #4] + add r1, r7, r1 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + ldr r0, _0222ED98 ; =0x00000FB8 + mov r1, #0xf + add r0, r7, r0 + bl FUN_02019620 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222ED88: .word 0x00000EB8 +_0222ED8C: .word 0x000F0400 +_0222ED90: .word 0x00000ED8 +_0222ED94: .word 0x00000E98 +_0222ED98: .word 0x00000FB8 + thumb_func_end MOD80_0222EC98 + + thumb_func_start MOD80_0222ED9C +MOD80_0222ED9C: ; 0x0222ED9C + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r0, _0222EDD0 ; =0x00000FB8 + add r0, r6, r0 + bl FUN_02019178 + ldr r0, _0222EDD4 ; =0x00000E98 + add r0, r6, r0 + bl FUN_02019178 + ldr r0, _0222EDD8 ; =0x00000ED8 + mov r4, #0 + add r5, r6, r0 +_0222EDB6: + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #3 + blt _0222EDB6 + ldr r0, _0222EDDC ; =0x00000EB8 + add r0, r6, r0 + bl FUN_02019178 + pop {r4, r5, r6, pc} + nop +_0222EDD0: .word 0x00000FB8 +_0222EDD4: .word 0x00000E98 +_0222EDD8: .word 0x00000ED8 +_0222EDDC: .word 0x00000EB8 + thumb_func_end MOD80_0222ED9C + + thumb_func_start MOD80_0222EDE0 +MOD80_0222EDE0: ; 0x0222EDE0 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xb4 + mov r1, #0x3e + bl FUN_020219F4 + ldr r1, _0222EE04 ; =0x00000B4C + str r0, [r4, r1] + sub r1, #0x18 + ldr r0, [r4, r1] + mov r1, #0x27 + bl FUN_0200A914 + mov r1, #0xb5 + lsl r1, r1, #4 + str r0, [r4, r1] + pop {r4, pc} + nop +_0222EE04: .word 0x00000B4C + thumb_func_end MOD80_0222EDE0 + + thumb_func_start MOD80_0222EE08 +MOD80_0222EE08: ; 0x0222EE08 + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222EE20 ; =0x00000B4C + ldr r0, [r4, r0] + bl FUN_02021A20 + mov r0, #0xb5 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02021A20 + pop {r4, pc} + .align 2, 0 +_0222EE20: .word 0x00000B4C + thumb_func_end MOD80_0222EE08 + + thumb_func_start MOD80_0222EE24 +MOD80_0222EE24: ; 0x0222EE24 + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222EE60 ; =0x00000FEC + ldrh r0, [r4, r0] + cmp r0, #0 + beq _0222EE5A + mov r0, #1 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #0 + bl FUN_0201E6E4 + add r0, r4, #0 + mov r1, #7 + mov r2, #0xb + bl MOD80_0222E7A8 + mov r0, #1 + str r0, [r4, #0x1c] + mov r0, #9 + str r0, [r4, #0x2c] +_0222EE5A: + mov r0, #3 + pop {r4, pc} + nop +_0222EE60: .word 0x00000FEC + thumb_func_end MOD80_0222EE24 + + thumb_func_start MOD80_0222EE64 +MOD80_0222EE64: ; 0x0222EE64 + push {r3, lr} + mov r1, #0xa + mov r2, #2 + bl MOD80_0222E6DC + mov r0, #3 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD80_0222EE64 + + thumb_func_start MOD80_0222EE74 +MOD80_0222EE74: ; 0x0222EE74 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + mov r0, #3 + str r0, [r4, #0x2c] + add sp, #0xc + pop {r3, r4, pc} + thumb_func_end MOD80_0222EE74 + + thumb_func_start MOD80_0222EE98 +MOD80_0222EE98: ; 0x0222EE98 + push {r4, lr} + add r4, r0, #0 + bl FUN_0200E308 + cmp r0, #0 + beq _0222EEA8 + mov r0, #5 + str r0, [r4, #0x2c] +_0222EEA8: + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_0222EE98 + + thumb_func_start MOD80_0222EEAC +MOD80_0222EEAC: ; 0x0222EEAC + push {r4, lr} + add r4, r0, #0 + bl FUN_0200E308 + cmp r0, #0 + beq _0222EEBC + mov r0, #5 + str r0, [r4, #0x2c] +_0222EEBC: + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_0222EEAC + + thumb_func_start MOD80_0222EEC0 +MOD80_0222EEC0: ; 0x0222EEC0 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0222EEF4 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #4 + mov r2, #1 + mov r3, #0 + bl MOD80_0222F250 + add r0, r4, #0 + mov r1, #0xa + mov r2, #6 + bl MOD80_0222E6DC + ldr r0, _0222EEF8 ; =0x00000D5C + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_020200BC + add r0, r4, #0 + bl MOD80_0222E868 + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0222EEF4: .word 0x00000F0F +_0222EEF8: .word 0x00000D5C + thumb_func_end MOD80_0222EEC0 + + thumb_func_start MOD80_0222EEFC +MOD80_0222EEFC: ; 0x0222EEFC + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0222F084 ; =0x021C48B8 + mov r2, #2 + ldr r1, [r1, #0x48] + add r4, r0, #0 + tst r2, r1 + beq _0222EF36 + bl MOD80_0222E7BC + add r2, r0, #0 + ldr r0, _0222F088 ; =0x00000F0F + mov r1, #7 + str r0, [sp] + add r0, r4, #0 + mov r3, #0 + bl MOD80_0222F2A8 + add r0, r4, #0 + mov r1, #0xa + mov r2, #0xc + bl MOD80_0222E6DC + ldr r0, _0222F08C ; =0x00000D5C + mov r1, #0 + ldr r0, [r4, r0] + bl FUN_020200BC + b _0222F07C +_0222EF36: + mov r2, #1 + tst r2, r1 + beq _0222F002 + add r1, r4, #0 + add r1, #0xb4 + ldrh r1, [r1] + cmp r1, #0 + beq _0222EF50 + cmp r1, #1 + beq _0222EFBE + cmp r1, #2 + beq _0222EFD2 + b _0222F07C +_0222EF50: + ldrh r1, [r4, #0x36] + cmp r1, #0 + bne _0222EF6A + mov r1, #5 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #9 + str r0, [r4, #0x2c] + ldr r0, _0222F090 ; =0x000005DC + bl FUN_020054C8 + b _0222F07C +_0222EF6A: + ldrh r1, [r4, #0x3a] + cmp r1, #0 + bne _0222EF8C + mov r1, #7 + mov r2, #0xb + bl MOD80_0222E7A8 + mov r0, #2 + str r0, [r4, #0x1c] + mov r0, #9 + str r0, [r4, #0x2c] + ldr r0, _0222F094 ; =0x00000708 + strh r0, [r4, #0x3a] + ldr r0, _0222F090 ; =0x000005DC + bl FUN_020054C8 + b _0222F07C +_0222EF8C: + ldr r0, _0222F08C ; =0x00000D5C + mov r1, #0 + ldr r0, [r4, r0] + bl FUN_020200BC + ldr r0, _0222F088 ; =0x00000F0F + mov r1, #0x22 + str r0, [sp] + add r0, r4, #0 + mov r2, #1 + mov r3, #0 + bl MOD80_0222F250 + add r0, r4, #0 + mov r1, #0xb + mov r2, #5 + bl MOD80_0222E6DC + ldr r0, _0222F098 ; =0x000005F3 + bl FUN_020054C8 + ldr r0, _0222F09C ; =0x00000FDC + mov r1, #0 + str r1, [r4, r0] + b _0222F07C +_0222EFBE: + mov r1, #4 + mov r2, #0 + bl MOD80_0222E7A8 + mov r0, #9 + str r0, [r4, #0x2c] + ldr r0, _0222F090 ; =0x000005DC + bl FUN_020054C8 + b _0222F07C +_0222EFD2: + bl MOD80_0222E7BC + add r2, r0, #0 + ldr r0, _0222F088 ; =0x00000F0F + mov r1, #7 + str r0, [sp] + add r0, r4, #0 + mov r3, #0 + bl MOD80_0222F2A8 + add r0, r4, #0 + mov r1, #0xa + mov r2, #0xc + bl MOD80_0222E6DC + ldr r0, _0222F08C ; =0x00000D5C + mov r1, #0 + ldr r0, [r4, r0] + bl FUN_020200BC + ldr r0, _0222F090 ; =0x000005DC + bl FUN_020054C8 + b _0222F07C +_0222F002: + mov r0, #0x40 + tst r0, r1 + beq _0222F040 + add r0, r4, #0 + add r0, #0xb4 + ldrh r0, [r0] + cmp r0, #0 + beq _0222F07C + add r0, r4, #0 + add r0, #0xb4 + ldrh r0, [r0] + sub r1, r0, #1 + add r0, r4, #0 + add r0, #0xb4 + strh r1, [r0] + ldr r0, _0222F090 ; =0x000005DC + bl FUN_020054C8 + add r0, r4, #0 + add r0, #0xb4 + ldrh r0, [r0] + ldr r1, _0222F0A0 ; =0x02236E98 + ldr r2, _0222F0A4 ; =0x02236E9A + lsl r3, r0, #2 + ldr r0, _0222F08C ; =0x00000D5C + ldrh r1, [r1, r3] + ldrh r2, [r2, r3] + ldr r0, [r4, r0] + bl MOD80_0222E6E4 + b _0222F07C +_0222F040: + mov r0, #0x80 + tst r0, r1 + beq _0222F07C + add r0, r4, #0 + add r0, #0xb4 + ldrh r0, [r0] + cmp r0, #2 + bhs _0222F07C + add r0, r4, #0 + add r0, #0xb4 + ldrh r0, [r0] + add r1, r0, #1 + add r0, r4, #0 + add r0, #0xb4 + strh r1, [r0] + ldr r0, _0222F090 ; =0x000005DC + bl FUN_020054C8 + add r0, r4, #0 + add r0, #0xb4 + ldrh r0, [r0] + ldr r1, _0222F0A0 ; =0x02236E98 + ldr r2, _0222F0A4 ; =0x02236E9A + lsl r3, r0, #2 + ldr r0, _0222F08C ; =0x00000D5C + ldrh r1, [r1, r3] + ldrh r2, [r2, r3] + ldr r0, [r4, r0] + bl MOD80_0222E6E4 +_0222F07C: + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_0222F084: .word 0x021C48B8 +_0222F088: .word 0x00000F0F +_0222F08C: .word 0x00000D5C +_0222F090: .word 0x000005DC +_0222F094: .word 0x00000708 +_0222F098: .word 0x000005F3 +_0222F09C: .word 0x00000FDC +_0222F0A0: .word 0x02236E98 +_0222F0A4: .word 0x02236E9A + thumb_func_end MOD80_0222EEFC + + thumb_func_start MOD80_0222F0A8 +MOD80_0222F0A8: ; 0x0222F0A8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + ldr r0, [r0, #0x1c] + bl FUN_020239CC + add r1, r0, #0 + add r0, r4, #0 + bl MOD80_02235A10 + mov r0, #8 + str r0, [r4, #0x2c] + ldr r0, _0222F0CC ; =0x00000FEC + mov r1, #0 + strh r1, [r4, r0] + mov r0, #3 + pop {r4, pc} + nop +_0222F0CC: .word 0x00000FEC + thumb_func_end MOD80_0222F0A8 + + thumb_func_start MOD80_0222F0D0 +MOD80_0222F0D0: ; 0x0222F0D0 + ldr r1, _0222F0E0 ; =0x00000FEC + ldrh r1, [r0, r1] + cmp r1, #0 + beq _0222F0DC + mov r1, #9 + str r1, [r0, #0x2c] +_0222F0DC: + mov r0, #3 + bx lr + .align 2, 0 +_0222F0E0: .word 0x00000FEC + thumb_func_end MOD80_0222F0D0 + + thumb_func_start MOD80_0222F0E4 +MOD80_0222F0E4: ; 0x0222F0E4 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, [r4, #0x18] + cmp r0, #0 + bne _0222F10A + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + b _0222F122 +_0222F10A: + mov r0, #6 + str r0, [sp] + mov r1, #0 + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 +_0222F122: + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #4 + add sp, #0xc + pop {r3, r4, pc} + thumb_func_end MOD80_0222F0E4 + + thumb_func_start MOD80_0222F12C +MOD80_0222F12C: ; 0x0222F12C + push {r4, lr} + add r4, r0, #0 + mov r1, #0xd + add r2, r1, #0 + ldr r0, [r4, #4] + add r2, #0xf5 + bl MOD80_0222E6A8 + ldr r1, _0222F148 ; =0x00000FCC + str r0, [r4, r1] + mov r0, #0xd + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_0222F148: .word 0x00000FCC + thumb_func_end MOD80_0222F12C + + thumb_func_start MOD80_0222F14C +MOD80_0222F14C: ; 0x0222F14C + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222F1AC ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _0222F1A8 + sub r1, r1, #1 + cmp r0, r1 + ldr r0, _0222F1B0 ; =0x00000FB8 + bne _0222F18A + add r0, r4, r0 + mov r1, #1 + bl FUN_0200D0E0 + ldr r0, _0222F1B0 ; =0x00000FB8 + add r0, r4, r0 + bl FUN_02019570 + ldr r0, _0222F1B4 ; =0x00000D5C + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_020200BC + mov r0, #5 + str r0, [r4, #0x2c] + b _0222F1A8 +_0222F18A: + add r0, r4, r0 + mov r1, #1 + bl FUN_0200D0E0 + ldr r0, _0222F1B0 ; =0x00000FB8 + add r0, r4, r0 + bl FUN_02019570 + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #7 + str r0, [r4, #0x2c] +_0222F1A8: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_0222F1AC: .word 0x00000FCC +_0222F1B0: .word 0x00000FB8 +_0222F1B4: .word 0x00000D5C + thumb_func_end MOD80_0222F14C + + thumb_func_start MOD80_0222F1B8 +MOD80_0222F1B8: ; 0x0222F1B8 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _0222F1D2 + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_0222F1D2: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_0222F1B8 + + thumb_func_start MOD80_0222F1D8 +MOD80_0222F1D8: ; 0x0222F1D8 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _0222F204 + ldr r0, _0222F208 ; =0x00000FDC + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + ldr r1, [r4, r0] + cmp r1, #0x2d + ble _0222F204 + mov r1, #0 + str r1, [r4, r0] + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_0222F204: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_0222F208: .word 0x00000FDC + thumb_func_end MOD80_0222F1D8 + + thumb_func_start MOD80_0222F20C +MOD80_0222F20C: ; 0x0222F20C + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + ldrh r1, [r7, #0x36] + mov r0, #0xc + ldr r2, _0222F240 ; =0x02236EB4 + mul r0, r1 + add r4, r2, r0 + ldr r0, _0222F244 ; =0x00000ED8 + mov r6, #0 + add r5, r7, r0 +_0222F220: + ldr r1, _0222F248 ; =0x00000B34 + ldr r2, [r4] + ldr r1, [r7, r1] + ldr r3, _0222F24C ; =0x00000F0F + add r0, r5, #0 + bl MOD80_0222F300 + add r0, r5, #0 + bl FUN_020191D0 + add r6, r6, #1 + add r4, r4, #4 + add r5, #0x10 + cmp r6, #3 + blt _0222F220 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222F240: .word 0x02236EB4 +_0222F244: .word 0x00000ED8 +_0222F248: .word 0x00000B34 +_0222F24C: .word 0x00000F0F + thumb_func_end MOD80_0222F20C + + thumb_func_start MOD80_0222F250 +MOD80_0222F250: ; 0x0222F250 + push {r4, r5, lr} + sub sp, #0xc + add r4, r2, #0 + ldr r2, _0222F29C ; =0x00000B34 + add r5, r0, #0 + ldr r0, [r5, r2] + add r2, #0x18 + ldr r2, [r5, r2] + bl FUN_0200A8E0 + ldr r0, _0222F2A0 ; =0x00000E98 + mov r1, #0xf + add r0, r5, r0 + bl FUN_02019620 + ldr r0, _0222F2A0 ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r3, #0 + str r3, [sp] + str r4, [sp, #4] + ldr r0, _0222F2A0 ; =0x00000E98 + ldr r2, _0222F2A4 ; =0x00000B4C + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + mov r1, #0x2e + lsl r1, r1, #6 + str r0, [r5, r1] + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_0222F29C: .word 0x00000B34 +_0222F2A0: .word 0x00000E98 +_0222F2A4: .word 0x00000B4C + thumb_func_end MOD80_0222F250 + + thumb_func_start MOD80_0222F2A8 +MOD80_0222F2A8: ; 0x0222F2A8 + push {r4, r5, lr} + sub sp, #0xc + add r4, r2, #0 + ldr r2, _0222F2F4 ; =0x00000B34 + add r5, r0, #0 + ldr r0, [r5, r2] + add r2, #0x18 + ldr r2, [r5, r2] + bl FUN_0200A8E0 + ldr r0, _0222F2F8 ; =0x00000FB8 + mov r1, #0xf + add r0, r5, r0 + bl FUN_02019620 + ldr r0, _0222F2F8 ; =0x00000FB8 + mov r1, #0 + add r0, r5, r0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r3, #0 + str r3, [sp] + str r4, [sp, #4] + ldr r0, _0222F2F8 ; =0x00000FB8 + ldr r2, _0222F2FC ; =0x00000B4C + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + mov r1, #0x2e + lsl r1, r1, #6 + str r0, [r5, r1] + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_0222F2F4: .word 0x00000B34 +_0222F2F8: .word 0x00000FB8 +_0222F2FC: .word 0x00000B4C + thumb_func_end MOD80_0222F2A8 + + thumb_func_start MOD80_0222F300 +MOD80_0222F300: ; 0x0222F300 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r0, r1, #0 + add r4, r3, #0 + add r1, r2, #0 + bl FUN_0200A914 + lsl r1, r4, #0x18 + add r6, r0, #0 + add r0, r5, #0 + lsr r1, r1, #0x18 + bl FUN_02019620 + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + add r0, r5, #0 + mov r1, #1 + add r2, r6, #0 + str r3, [sp, #8] + bl FUN_0201BD84 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + thumb_func_end MOD80_0222F300 + + thumb_func_start MOD80_0222F338 +MOD80_0222F338: ; 0x0222F338 + push {r4, lr} + sub sp, #0x10 + ldr r4, [r0, #4] + mov r0, #2 + lsl r0, r0, #8 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + mov r0, #0x68 + mov r1, #5 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + mov r0, #0x2a + lsl r0, r0, #0xa + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0xf + add r2, r4, #0 + mov r3, #5 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x1f + add r2, r4, #0 + mov r3, #5 + bl FUN_020068C8 + add sp, #0x10 + pop {r4, pc} + thumb_func_end MOD80_0222F338 + + thumb_func_start MOD80_0222F394 +MOD80_0222F394: ; 0x0222F394 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD80_0222F7F0 + ldr r0, [r4, #4] + bl MOD80_0222F494 + add r0, r4, #0 + bl MOD80_0222F5A8 + add r0, r4, #0 + bl MOD80_0222F6EC + add r0, r4, #0 + bl MOD80_0222F690 + add r0, r4, #0 + add r0, #0xd4 + bl FUN_020690E4 + str r0, [sp] + mov r0, #7 + lsl r0, r0, #6 + ldr r2, _0222F448 ; =0x00000B34 + add r0, r4, r0 + str r0, [sp, #4] + add r1, r2, #4 + ldr r0, [r4, r2] + sub r2, r2, #4 + ldr r3, _0222F44C ; =0x00000F08 + ldr r1, [r4, r1] + ldr r2, [r4, r2] + add r3, r4, r3 + bl MOD80_0222FBC0 + ldr r0, _0222F448 ; =0x00000B34 + ldr r1, _0222F450 ; =0x00000F58 + mov r2, #0x1e + lsl r2, r2, #4 + ldr r0, [r4, r0] + add r1, r4, r1 + add r2, r4, r2 + bl MOD80_0222FD28 + ldr r1, _0222F454 ; =0x000001C7 + ldrsb r0, [r4, r1] + add r1, r1, #1 + ldrsb r1, [r4, r1] + bl MOD80_02234668 + mov r1, #0x71 + lsl r1, r1, #2 + ldrsh r2, [r4, r1] + ldr r3, _0222F458 ; =0x00000F78 + add r1, r1, #2 + str r2, [sp] + ldrsb r1, [r4, r1] + ldr r2, _0222F448 ; =0x00000B34 + add r3, r4, r3 + str r1, [sp, #4] + str r0, [sp, #8] + add r1, r2, #4 + ldr r0, [r4, r2] + sub r2, r2, #4 + ldr r1, [r4, r1] + ldr r2, [r4, r2] + bl MOD80_02234048 + add r0, r4, #0 + add r0, #0xd4 + bl MOD80_0222FD88 + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #2 + add sp, #0xc + pop {r3, r4, pc} + nop +_0222F448: .word 0x00000B34 +_0222F44C: .word 0x00000F08 +_0222F450: .word 0x00000F58 +_0222F454: .word 0x000001C7 +_0222F458: .word 0x00000F78 + thumb_func_end MOD80_0222F394 + + thumb_func_start MOD80_0222F45C +MOD80_0222F45C: ; 0x0222F45C + push {r3, lr} + ldr r1, [r0, #0x2c] + lsl r2, r1, #2 + ldr r1, _0222F46C ; =0x02237A40 + ldr r1, [r1, r2] + blx r1 + pop {r3, pc} + nop +_0222F46C: .word 0x02237A40 + thumb_func_end MOD80_0222F45C + + thumb_func_start MOD80_0222F470 +MOD80_0222F470: ; 0x0222F470 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222F6DC + add r0, r4, #0 + bl MOD80_0222F830 + add r0, r4, #0 + bl MOD80_0222F7B8 + ldr r0, [r4, #4] + bl MOD80_0222F57C + add r0, r4, #0 + bl MOD80_0222E7B0 + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD80_0222F470 + + thumb_func_start MOD80_0222F494 +MOD80_0222F494: ; 0x0222F494 + push {r4, r5, lr} + sub sp, #0x8c + ldr r5, _0222F568 ; =0x02236FC8 + add r4, r0, #0 + ldmia r5!, {r0, r1} + add r3, sp, #0x70 + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _0222F56C ; =0x02236FAC + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _0222F570 ; =0x02236F90 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _0222F574 ; =0x02236F74 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _0222F578 ; =0x02236F58 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #5 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x3e + bl FUN_02017F18 + add sp, #0x8c + pop {r4, r5, pc} + nop +_0222F568: .word 0x02236FC8 +_0222F56C: .word 0x02236FAC +_0222F570: .word 0x02236F90 +_0222F574: .word 0x02236F74 +_0222F578: .word 0x02236F58 + thumb_func_end MOD80_0222F494 + + thumb_func_start MOD80_0222F57C +MOD80_0222F57C: ; 0x0222F57C + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD80_0222F57C + + thumb_func_start MOD80_0222F5A8 +MOD80_0222F5A8: ; 0x0222F5A8 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r4, [r5, #4] + mov r0, #0x60 + str r0, [sp] + mov r0, #0x3e + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x68 + mov r1, #7 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #1 + lsl r0, r0, #8 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + mov r0, #0x68 + mov r1, #5 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x3e + bl FUN_02002EEC + ldr r0, [r5] + ldr r0, [r0, #0x24] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CB00 + mov r0, #0 + str r0, [sp] + mov r0, #0xa + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x11 + add r2, r4, #0 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x19 + add r2, r4, #0 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + mov r0, #0x2a + lsl r0, r0, #0xa + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0xf + add r2, r4, #0 + mov r3, #5 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x1f + add r2, r4, #0 + mov r3, #5 + bl FUN_020068C8 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD80_0222F5A8 + + thumb_func_start MOD80_0222F690 +MOD80_0222F690: ; 0x0222F690 + push {r4, lr} + sub sp, #0x30 + mov r2, #0xcf + add r4, r0, #0 + lsl r2, r2, #4 + add r0, sp, #0 + add r1, r4, #0 + add r2, r4, r2 + mov r3, #1 + bl MOD80_0222E5E8 + mov r0, #0x32 + lsl r0, r0, #0xe + str r0, [sp, #8] + mov r0, #0x3a + lsl r0, r0, #0xc + str r0, [sp, #0xc] + add r0, sp, #0 + bl FUN_0201FE94 + ldr r1, _0222F6D8 ; =0x00000E6C + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #1 + bl FUN_020200BC + ldr r0, _0222F6D8 ; =0x00000E6C + mov r1, #0x25 + ldr r0, [r4, r0] + bl FUN_02020130 + bl FUN_02033E74 + add sp, #0x30 + pop {r4, pc} + nop +_0222F6D8: .word 0x00000E6C + thumb_func_end MOD80_0222F690 + + thumb_func_start MOD80_0222F6DC +MOD80_0222F6DC: ; 0x0222F6DC + ldr r1, _0222F6E4 ; =0x00000E6C + ldr r3, _0222F6E8 ; =FUN_0201FFC8 + ldr r0, [r0, r1] + bx r3 + .align 2, 0 +_0222F6E4: .word 0x00000E6C +_0222F6E8: .word FUN_0201FFC8 + thumb_func_end MOD80_0222F6DC + + thumb_func_start MOD80_0222F6EC +MOD80_0222F6EC: ; 0x0222F6EC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + str r0, [sp, #0x14] + mov r0, #0x15 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r3, #2 + str r3, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + ldr r2, _0222F7A8 ; =0x00000E98 + ldr r1, [sp, #0x14] + ldr r0, [r0, #4] + add r1, r1, r2 + mov r2, #0 + bl FUN_02019064 + ldr r1, _0222F7A8 ; =0x00000E98 + ldr r0, [sp, #0x14] + add r0, r0, r1 + mov r1, #0 + bl FUN_02019620 + mov r0, #0xf + str r0, [sp] + mov r0, #0xa + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x5e + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + ldr r2, _0222F7AC ; =0x00000ED8 + ldr r1, [sp, #0x14] + ldr r0, [r0, #4] + add r1, r1, r2 + mov r2, #0 + mov r3, #0x15 + bl FUN_02019064 + ldr r1, _0222F7B0 ; =0x00000F08 + ldr r0, [sp, #0x14] + ldr r4, _0222F7B4 ; =0x02236FE4 + mov r6, #0x86 + mov r7, #0 + add r5, r0, r1 +_0222F754: + ldr r0, [r4, #4] + add r1, r5, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldr r0, [r4, #8] + mov r2, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #4] + ldr r0, [r4, #0xc] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + ldr r3, [r4] + ldr r0, [r0, #4] + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + bl FUN_02019064 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + ldr r1, [r4, #8] + ldr r0, [r4, #0xc] + add r7, r7, #1 + mul r0, r1 + add r6, r6, r0 + add r4, #0x10 + add r5, #0x10 + cmp r7, #0xa + blt _0222F754 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222F7A8: .word 0x00000E98 +_0222F7AC: .word 0x00000ED8 +_0222F7B0: .word 0x00000F08 +_0222F7B4: .word 0x02236FE4 + thumb_func_end MOD80_0222F6EC + + thumb_func_start MOD80_0222F7B8 +MOD80_0222F7B8: ; 0x0222F7B8 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _0222F7E4 ; =0x00000E98 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _0222F7E8 ; =0x00000ED8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _0222F7EC ; =0x00000F08 + mov r4, #0 + add r5, r5, r0 +_0222F7D2: + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #0xa + blt _0222F7D2 + pop {r3, r4, r5, pc} + nop +_0222F7E4: .word 0x00000E98 +_0222F7E8: .word 0x00000ED8 +_0222F7EC: .word 0x00000F08 + thumb_func_end MOD80_0222F7B8 + + thumb_func_start MOD80_0222F7F0 +MOD80_0222F7F0: ; 0x0222F7F0 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + mov r0, #0xb4 + mov r1, #0x3e + bl FUN_020219F4 + ldr r1, _0222F82C ; =0x00000B4C + str r0, [r5, r1] + sub r1, #0x18 + ldr r0, [r5, r1] + mov r1, #0x27 + bl FUN_0200A914 + mov r1, #0xb5 + lsl r1, r1, #4 + str r0, [r5, r1] + mov r4, #0 + mov r7, #0x14 + add r6, r1, #4 +_0222F816: + add r0, r7, #0 + mov r1, #0x3e + bl FUN_020219F4 + str r0, [r5, r6] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xa + blt _0222F816 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222F82C: .word 0x00000B4C + thumb_func_end MOD80_0222F7F0 + + thumb_func_start MOD80_0222F830 +MOD80_0222F830: ; 0x0222F830 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + ldr r6, _0222F85C ; =0x00000B54 + mov r4, #0 + add r5, r7, #0 +_0222F83A: + ldr r0, [r5, r6] + bl FUN_02021A20 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xa + blt _0222F83A + ldr r0, _0222F860 ; =0x00000B4C + ldr r0, [r7, r0] + bl FUN_02021A20 + mov r0, #0xb5 + lsl r0, r0, #4 + ldr r0, [r7, r0] + bl FUN_02021A20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222F85C: .word 0x00000B54 +_0222F860: .word 0x00000B4C + thumb_func_end MOD80_0222F830 + + thumb_func_start MOD80_0222F864 +MOD80_0222F864: ; 0x0222F864 + mov r1, #1 + str r1, [r0, #0x2c] + mov r0, #3 + bx lr + thumb_func_end MOD80_0222F864 + + thumb_func_start MOD80_0222F86C +MOD80_0222F86C: ; 0x0222F86C + push {r4, lr} + sub sp, #8 + ldr r1, _0222F8C0 ; =0x021C48B8 + mov r2, #1 + ldr r3, [r1, #0x48] + add r4, r0, #0 + add r1, r3, #0 + tst r1, r2 + beq _0222F8A2 + ldr r1, _0222F8C4 ; =0x00000F0F + mov r3, #0 + str r1, [sp] + add r1, r4, #0 + add r1, #0xd4 + str r1, [sp, #4] + mov r1, #5 + bl MOD80_0222FB3C + add r0, r4, #0 + mov r1, #3 + mov r2, #7 + bl MOD80_0222E6DC + ldr r0, _0222F8C8 ; =0x000005DC + bl FUN_020054C8 + b _0222F8B8 +_0222F8A2: + mov r1, #2 + tst r3, r1 + beq _0222F8B8 + str r1, [r4, #0x2c] + add r1, r2, #0 + mov r2, #0 + bl MOD80_0222E7A8 + ldr r0, _0222F8C8 ; =0x000005DC + bl FUN_020054C8 +_0222F8B8: + mov r0, #3 + add sp, #8 + pop {r4, pc} + nop +_0222F8C0: .word 0x021C48B8 +_0222F8C4: .word 0x00000F0F +_0222F8C8: .word 0x000005DC + thumb_func_end MOD80_0222F86C + + thumb_func_start MOD80_0222F8CC +MOD80_0222F8CC: ; 0x0222F8CC + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #6 + mov r1, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #4 + add sp, #0xc + pop {r3, r4, pc} + thumb_func_end MOD80_0222F8CC + + thumb_func_start MOD80_0222F8F4 +MOD80_0222F8F4: ; 0x0222F8F4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + ldr r2, _0222F910 ; =0x0000014E + mov r1, #0xf + bl MOD80_0222E6A8 + ldr r1, _0222F914 ; =0x00000FCC + str r0, [r4, r1] + mov r0, #6 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + nop +_0222F910: .word 0x0000014E +_0222F914: .word 0x00000FCC + thumb_func_end MOD80_0222F8F4 + + thumb_func_start MOD80_0222F918 +MOD80_0222F918: ; 0x0222F918 + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222F960 ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _0222F95C + sub r1, r1, #1 + cmp r0, r1 + bne _0222F942 + ldr r0, _0222F964 ; =0x00000E98 + mov r1, #0 + add r0, r4, r0 + str r1, [r4, #0x2c] + bl FUN_0200D0E0 + b _0222F956 +_0222F942: + mov r0, #2 + str r0, [r4, #0x2c] + ldr r0, _0222F968 ; =0x0000100C + mov r1, #1 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #7 + mov r2, #8 + bl MOD80_0222E7A8 +_0222F956: + add r0, r4, #0 + bl MOD80_0222FE18 +_0222F95C: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_0222F960: .word 0x00000FCC +_0222F964: .word 0x00000E98 +_0222F968: .word 0x0000100C + thumb_func_end MOD80_0222F918 + + thumb_func_start MOD80_0222F96C +MOD80_0222F96C: ; 0x0222F96C + push {r3, r4, lr} + sub sp, #0x14 + add r4, r0, #0 + mov r0, #0 + add r2, sp, #8 + strb r0, [r2, #8] + mov r0, #1 + strb r0, [r2, #9] + mov r0, #2 + strb r0, [r2, #0xa] + ldrb r3, [r2, #0xb] + mov r1, #0xf + bic r3, r1 + strb r3, [r2, #0xb] + ldrb r3, [r2, #0xb] + mov r1, #0x30 + bic r3, r1 + strb r3, [r2, #0xb] + ldrb r3, [r2, #0xb] + mov r1, #0xc0 + bic r3, r1 + mov r1, #0x3e + strb r3, [r2, #0xb] + bl FUN_02012838 + ldr r1, _0222F9FC ; =0x00000FC8 + mov r2, #0x36 + str r0, [r4, r1] + ldr r0, [r4, r1] + ldr r1, _0222FA00 ; =0x00000B34 + mov r3, #1 + ldr r1, [r4, r1] + bl FUN_02012880 + ldr r0, _0222F9FC ; =0x00000FC8 + ldr r1, _0222FA00 ; =0x00000B34 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + mov r2, #0x37 + mov r3, #2 + bl FUN_02012880 + ldr r0, _0222F9FC ; =0x00000FC8 + mov r2, #0x1f + ldr r1, [r4, r0] + sub r0, #0xf0 + str r1, [sp, #8] + add r0, r4, r0 + mov r1, #0 + mov r3, #0xb + str r0, [sp, #0xc] + bl FUN_0200CCA4 + mov r0, #0x3e + str r0, [sp] + mov r0, #2 + mov r2, #0 + str r0, [sp, #4] + add r0, sp, #8 + mov r1, #9 + add r3, r2, #0 + bl FUN_02001C14 + mov r1, #0xfd + lsl r1, r1, #4 + str r0, [r4, r1] + mov r0, #8 + str r0, [r4, #0x2c] + mov r0, #3 + add sp, #0x14 + pop {r3, r4, pc} + nop +_0222F9FC: .word 0x00000FC8 +_0222FA00: .word 0x00000B34 + thumb_func_end MOD80_0222F96C + + thumb_func_start MOD80_0222FA04 +MOD80_0222FA04: ; 0x0222FA04 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02001C78 + cmp r0, #1 + beq _0222FA26 + cmp r0, #2 + beq _0222FAA4 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _0222FAA4 + b _0222FAD6 +_0222FA26: + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _0222FADC ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _0222FAE0 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + add r4, r5, #0 + add r4, #0xd4 + add r0, r4, #0 + bl MOD80_022331F8 + cmp r0, #0 + beq _0222FA80 + ldr r0, [r5] + ldr r0, [r0, #8] + bl FUN_0206B9AC + cmp r0, #6 + bne _0222FA80 + ldr r0, _0222FAE4 ; =0x00000F0F + mov r1, #0x24 + str r0, [sp] + add r0, r5, #0 + mov r2, #1 + mov r3, #0 + str r4, [sp, #4] + bl MOD80_0222FB3C + add r0, r5, #0 + mov r1, #3 + mov r2, #1 + bl MOD80_0222E6DC + add sp, #8 + mov r0, #3 + pop {r3, r4, r5, pc} +_0222FA80: + ldr r0, _0222FAE4 ; =0x00000F0F + mov r1, #6 + str r0, [sp] + add r0, r5, #0 + mov r2, #1 + mov r3, #0 + str r4, [sp, #4] + bl MOD80_0222FB3C + add r0, r5, #0 + mov r1, #3 + mov r2, #5 + bl MOD80_0222E6DC + add r0, r5, #0 + bl MOD80_0222FE18 + b _0222FAD6 +_0222FAA4: + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _0222FADC ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _0222FAE0 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + mov r0, #2 + str r0, [r5, #0x2c] + add r0, r5, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + add r0, r5, #0 + bl MOD80_0222FE18 +_0222FAD6: + mov r0, #3 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0222FADC: .word 0x00000FC8 +_0222FAE0: .word 0x00000ED8 +_0222FAE4: .word 0x00000F0F + thumb_func_end MOD80_0222FA04 + + thumb_func_start MOD80_0222FAE8 +MOD80_0222FAE8: ; 0x0222FAE8 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _0222FB02 + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_0222FB02: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_0222FAE8 + + thumb_func_start MOD80_0222FB08 +MOD80_0222FB08: ; 0x0222FB08 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _0222FB34 + ldr r0, _0222FB38 ; =0x00000FDC + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + ldr r1, [r4, r0] + cmp r1, #0x2d + ble _0222FB34 + mov r1, #0 + str r1, [r4, r0] + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_0222FB34: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_0222FB38: .word 0x00000FDC + thumb_func_end MOD80_0222FB08 + + thumb_func_start MOD80_0222FB3C +MOD80_0222FB3C: ; 0x0222FB3C + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, [sp, #0x24] + add r6, r1, #0 + add r4, r2, #0 + bl FUN_020690E4 + add r2, r0, #0 + mov r0, #0xb3 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AC60 + ldr r0, _0222FBB4 ; =0x00000B34 + add r1, r6, #0 + ldr r0, [r5, r0] + bl FUN_0200A914 + mov r1, #0xb3 + add r6, r0, #0 + lsl r1, r1, #4 + ldr r0, [r5, r1] + add r1, #0x1c + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + ldr r0, _0222FBB8 ; =0x00000E98 + mov r1, #0xf + add r0, r5, r0 + bl FUN_02019620 + ldr r0, _0222FBB8 ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r3, #0 + str r3, [sp] + str r4, [sp, #4] + ldr r0, _0222FBB8 ; =0x00000E98 + ldr r2, _0222FBBC ; =0x00000B4C + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + mov r1, #0x2e + lsl r1, r1, #6 + str r0, [r5, r1] + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0222FBB4: .word 0x00000B34 +_0222FBB8: .word 0x00000E98 +_0222FBBC: .word 0x00000B4C + thumb_func_end MOD80_0222FB3C + + thumb_func_start MOD80_0222FBC0 +MOD80_0222FBC0: ; 0x0222FBC0 + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + add r5, r0, #0 + str r1, [sp, #8] + mov r0, #0x16 + mov r1, #0x3e + add r7, r2, #0 + add r6, r3, #0 + ldr r4, [sp, #0x4c] + bl FUN_020219F4 + str r0, [sp, #0x1c] + mov r0, #0x12 + mov r1, #0x3e + bl FUN_020219F4 + str r0, [sp, #0x18] + ldr r0, [sp, #0x48] + ldr r2, [sp, #0x1c] + mov r1, #0x76 + bl FUN_020672BC + mov r2, #0 + ldrsh r0, [r4, r2] + mov r1, #6 + str r0, [sp, #0x10] + mov r0, #2 + ldrsb r0, [r4, r0] + str r0, [sp, #0x14] + mov r0, #3 + ldrsb r4, [r4, r0] + ldr r0, [sp, #0x48] + bl FUN_020672BC + str r0, [sp, #0x30] + add r0, r5, #0 + mov r1, #0x46 + bl FUN_0200A914 + str r0, [sp, #0x20] + ldr r0, [sp, #0x14] + ldr r2, _0222FD1C ; =0x022373C0 + lsl r0, r0, #2 + str r0, [sp, #0xc] + ldr r1, [sp, #0xc] + add r0, r5, #0 + ldr r1, [r2, r1] + bl FUN_0200A914 + str r0, [sp, #0x28] + mov r0, #0 + str r0, [sp] + mov r0, #1 + mov r1, #3 + str r0, [sp, #4] + add r0, r7, #0 + add r2, r4, #0 + add r3, r1, #0 + bl FUN_0200AD38 + add r0, r7, #0 + add r1, r5, #0 + mov r2, #0x66 + mov r3, #0x3e + bl FUN_0200A9C4 + str r0, [sp, #0x24] + ldr r0, [sp, #8] + ldr r1, [sp, #0x10] + bl FUN_0200A914 + ldr r1, [sp, #0x30] + str r0, [sp, #0x2c] + lsl r1, r1, #0x10 + ldr r0, [sp, #0x18] + lsr r1, r1, #0x10 + mov r2, #0x3e + bl FUN_0206E768 + mov r4, #0 + add r5, r6, #0 + add r7, r4, #0 +_0222FC64: + add r0, r5, #0 + add r1, r7, #0 + bl FUN_02019620 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #5 + blt _0222FC64 + mov r2, #0 + ldr r0, _0222FD20 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + ldr r1, [sp, #0x1c] + add r0, r6, #0 + add r3, r2, #0 + bl MOD80_02236D50 + ldr r0, [sp, #0x14] + cmp r0, #3 + beq _0222FCA2 + mov r3, #0 + ldr r1, _0222FD24 ; =0x02237A34 + ldr r0, [sp, #0xc] + str r3, [sp] + ldr r0, [r1, r0] + ldr r1, [sp, #0x28] + str r0, [sp, #4] + add r0, r6, #0 + mov r2, #0x46 + bl MOD80_02236D50 +_0222FCA2: + mov r2, #0 + ldr r0, _0222FD20 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + add r0, r6, #0 + ldr r1, [sp, #0x2c] + add r0, #0x10 + add r3, r2, #0 + bl MOD80_02236D50 + mov r0, #2 + str r0, [sp] + ldr r0, _0222FD20 ; =0x000F0200 + mov r2, #0 + str r0, [sp, #4] + add r0, r6, #0 + ldr r1, [sp, #0x24] + add r0, #0x20 + add r3, r2, #0 + bl MOD80_02236D50 + mov r2, #0 + ldr r0, _0222FD20 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + add r0, r6, #0 + ldr r1, [sp, #0x20] + add r0, #0x30 + add r3, r2, #0 + bl MOD80_02236D50 + mov r2, #0 + ldr r0, _0222FD20 ; =0x000F0200 + str r2, [sp] + add r6, #0x40 + str r0, [sp, #4] + ldr r1, [sp, #0x18] + add r0, r6, #0 + add r3, r2, #0 + bl MOD80_02236D50 + ldr r0, [sp, #0x20] + bl FUN_02021A20 + ldr r0, [sp, #0x18] + bl FUN_02021A20 + ldr r0, [sp, #0x24] + bl FUN_02021A20 + ldr r0, [sp, #0x28] + bl FUN_02021A20 + ldr r0, [sp, #0x1c] + bl FUN_02021A20 + ldr r0, [sp, #0x2c] + bl FUN_02021A20 + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222FD1C: .word 0x022373C0 +_0222FD20: .word 0x000F0200 +_0222FD24: .word 0x02237A34 + thumb_func_end MOD80_0222FBC0 + + thumb_func_start MOD80_0222FD28 +MOD80_0222FD28: ; 0x0222FD28 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r6, r0, #0 + add r5, r1, #0 + mov r0, #0x10 + mov r1, #0x3e + add r7, r2, #0 + bl FUN_020219F4 + add r4, r0, #0 + add r0, r6, #0 + mov r1, #0x30 + bl FUN_0200A914 + add r6, r0, #0 + add r0, r4, #0 + add r1, r7, #0 + bl FUN_02021E28 + mov r2, #0 + ldr r0, _0222FD84 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r1, r6, #0 + add r3, r2, #0 + bl MOD80_02236D50 + mov r2, #0 + ldr r0, _0222FD84 ; =0x000F0200 + str r2, [sp] + add r5, #0x10 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r4, #0 + add r3, r2, #0 + bl MOD80_02236D50 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222FD84: .word 0x000F0200 + thumb_func_end MOD80_0222FD28 + + thumb_func_start MOD80_0222FD88 +MOD80_0222FD88: ; 0x0222FD88 + push {r4, r5, r6, lr} + sub sp, #0x30 + mov r1, #0x32 + add r5, r0, #0 + mov r0, #0x3e + lsl r1, r1, #6 + bl FUN_02016998 + add r4, r0, #0 + add r0, sp, #0x20 + add r1, r5, #0 + mov r2, #2 + bl FUN_02068B68 + mov r1, #0 + add r0, r5, #0 + add r2, r1, #0 + bl FUN_020671BC + add r6, r0, #0 + add r0, r5, #0 + mov r1, #5 + mov r2, #0 + bl FUN_020671BC + mov r3, #0 + str r3, [sp] + mov r1, #0xa + str r1, [sp, #4] + str r1, [sp, #8] + str r4, [sp, #0xc] + str r6, [sp, #0x10] + str r3, [sp, #0x14] + mov r1, #2 + str r1, [sp, #0x18] + str r0, [sp, #0x1c] + add r1, sp, #0x20 + ldrh r0, [r1] + ldrh r1, [r1, #2] + mov r2, #0x3e + bl FUN_020124B4 + mov r1, #0x32 + add r0, r4, #0 + lsl r1, r1, #6 + bl DC_FlushRange + mov r1, #0x4a + mov r2, #0x32 + add r0, r4, #0 + lsl r1, r1, #8 + lsl r2, r2, #6 + bl GX_LoadOBJ + mov r0, #0x20 + str r0, [sp] + mov r0, #0x3e + mov r3, #0x1a + str r0, [sp, #4] + add r1, sp, #0x20 + ldrh r0, [r1] + ldrh r1, [r1, #4] + mov r2, #1 + lsl r3, r3, #4 + bl FUN_02006930 + add r0, r4, #0 + bl FUN_02016A18 + add sp, #0x30 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD80_0222FD88 + + thumb_func_start MOD80_0222FE18 +MOD80_0222FE18: ; 0x0222FE18 + push {r3, r4, lr} + sub sp, #0xc + ldr r1, _0222FE54 ; =0x000001C7 + add r4, r0, #0 + ldrsb r0, [r4, r1] + add r1, r1, #1 + ldrsb r1, [r4, r1] + bl MOD80_02234668 + mov r1, #0x71 + lsl r1, r1, #2 + ldrsh r2, [r4, r1] + add r1, r1, #2 + ldr r3, _0222FE58 ; =0x00000F78 + str r2, [sp] + ldrsb r1, [r4, r1] + ldr r2, _0222FE5C ; =0x00000B34 + add r3, r4, r3 + str r1, [sp, #4] + str r0, [sp, #8] + add r1, r2, #4 + ldr r0, [r4, r2] + sub r2, r2, #4 + ldr r1, [r4, r1] + ldr r2, [r4, r2] + bl MOD80_02234048 + add sp, #0xc + pop {r3, r4, pc} + nop +_0222FE54: .word 0x000001C7 +_0222FE58: .word 0x00000F78 +_0222FE5C: .word 0x00000B34 + thumb_func_end MOD80_0222FE18 + + thumb_func_start MOD80_0222FE60 +MOD80_0222FE60: ; 0x0222FE60 + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD80_0223022C + ldr r0, [r4, #4] + bl MOD80_0222FF6C + add r0, r4, #0 + bl MOD80_02230054 + add r0, r4, #0 + bl MOD80_02230128 + add r0, r4, #0 + bl MOD80_022300CC + add r0, r4, #0 + add r0, #0xc4 + ldr r1, [r0] + mov r0, #0x49 + lsl r0, r0, #2 + add r5, r1, #0 + mul r5, r0 + add r0, #0xd4 + add r0, r4, r0 + add r0, r0, r5 + bl FUN_020690E4 + str r0, [sp] + mov r0, #0xb9 + lsl r0, r0, #2 + add r0, r4, r0 + ldr r2, _0222FF24 ; =0x00000B34 + add r0, r0, r5 + str r0, [sp, #4] + add r1, r2, #4 + ldr r0, [r4, r2] + sub r2, r2, #4 + ldr r3, _0222FF28 ; =0x00000F08 + ldr r1, [r4, r1] + ldr r2, [r4, r2] + add r3, r4, r3 + bl MOD80_0222FBC0 + add r3, r4, #0 + add r3, #0xc4 + ldr r0, _0222FF24 ; =0x00000B34 + mov r2, #0xc1 + ldr r5, [r3] + mov r3, #0x49 + ldr r1, _0222FF2C ; =0x00000F58 + lsl r2, r2, #2 + lsl r3, r3, #2 + ldr r0, [r4, r0] + add r2, r4, r2 + mul r3, r5 + add r1, r4, r1 + add r2, r2, r3 + bl MOD80_0222FD28 + add r0, r4, #0 + mov r1, #0x7e + add r0, #0xc4 + lsl r1, r1, #2 + add r2, r4, r1 + ldr r0, [r0] + sub r1, #0xd4 + mul r1, r0 + add r0, r2, r1 + bl MOD80_0222FD88 + ldr r0, _0222FF24 ; =0x00000B34 + ldr r1, _0222FF30 ; =0x00000F78 + ldr r0, [r4, r0] + add r1, r4, r1 + bl MOD80_02230550 + add r0, r4, #0 + bl MOD80_0223043C + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #2 + add sp, #0xc + pop {r4, r5, pc} + nop +_0222FF24: .word 0x00000B34 +_0222FF28: .word 0x00000F08 +_0222FF2C: .word 0x00000F58 +_0222FF30: .word 0x00000F78 + thumb_func_end MOD80_0222FE60 + + thumb_func_start MOD80_0222FF34 +MOD80_0222FF34: ; 0x0222FF34 + push {r3, lr} + ldr r1, [r0, #0x2c] + lsl r2, r1, #2 + ldr r1, _0222FF44 ; =0x02237A64 + ldr r1, [r1, r2] + blx r1 + pop {r3, pc} + nop +_0222FF44: .word 0x02237A64 + thumb_func_end MOD80_0222FF34 + + thumb_func_start MOD80_0222FF48 +MOD80_0222FF48: ; 0x0222FF48 + push {r4, lr} + add r4, r0, #0 + bl MOD80_02230118 + add r0, r4, #0 + bl MOD80_022302C4 + add r0, r4, #0 + bl MOD80_022301F4 + ldr r0, [r4, #4] + bl MOD80_02230030 + add r0, r4, #0 + bl MOD80_0222E7B0 + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD80_0222FF48 + + thumb_func_start MOD80_0222FF6C +MOD80_0222FF6C: ; 0x0222FF6C + push {r3, r4, r5, lr} + sub sp, #0x70 + ldr r5, _02230020 ; =0x022370D8 + add r4, r0, #0 + ldmia r5!, {r0, r1} + add r3, sp, #0x54 + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _02230024 ; =0x022370BC + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _02230028 ; =0x022370A0 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _0223002C ; =0x02237084 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #5 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x3e + bl FUN_02017F18 + add sp, #0x70 + pop {r3, r4, r5, pc} + nop +_02230020: .word 0x022370D8 +_02230024: .word 0x022370BC +_02230028: .word 0x022370A0 +_0223002C: .word 0x02237084 + thumb_func_end MOD80_0222FF6C + + thumb_func_start MOD80_02230030 +MOD80_02230030: ; 0x02230030 + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD80_02230030 + + thumb_func_start MOD80_02230054 +MOD80_02230054: ; 0x02230054 + push {r3, r4, r5, lr} + sub sp, #0x10 + mov r1, #0x1a + add r5, r0, #0 + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x3e + ldr r4, [r5, #4] + bl FUN_02002EEC + ldr r0, [r5] + ldr r0, [r0, #0x24] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CB00 + mov r0, #0 + str r0, [sp] + mov r0, #0xa + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x11 + add r2, r4, #0 + bl FUN_0200687C + mov r0, #0x60 + str r0, [sp] + mov r0, #0x3e + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x68 + mov r1, #7 + add r3, r2, #0 + bl FUN_02006930 + add sp, #0x10 + pop {r3, r4, r5, pc} + thumb_func_end MOD80_02230054 + + thumb_func_start MOD80_022300CC +MOD80_022300CC: ; 0x022300CC + push {r4, lr} + sub sp, #0x30 + mov r2, #0xcf + add r4, r0, #0 + lsl r2, r2, #4 + add r0, sp, #0 + add r1, r4, #0 + add r2, r4, r2 + mov r3, #1 + bl MOD80_0222E5E8 + mov r0, #0x32 + lsl r0, r0, #0xe + str r0, [sp, #8] + mov r0, #0x3a + lsl r0, r0, #0xc + str r0, [sp, #0xc] + add r0, sp, #0 + bl FUN_0201FE94 + ldr r1, _02230114 ; =0x00000E6C + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #1 + bl FUN_020200BC + ldr r0, _02230114 ; =0x00000E6C + mov r1, #0x25 + ldr r0, [r4, r0] + bl FUN_02020130 + bl FUN_02033E74 + add sp, #0x30 + pop {r4, pc} + nop +_02230114: .word 0x00000E6C + thumb_func_end MOD80_022300CC + + thumb_func_start MOD80_02230118 +MOD80_02230118: ; 0x02230118 + ldr r1, _02230120 ; =0x00000E6C + ldr r3, _02230124 ; =FUN_0201FFC8 + ldr r0, [r0, r1] + bx r3 + .align 2, 0 +_02230120: .word 0x00000E6C +_02230124: .word FUN_0201FFC8 + thumb_func_end MOD80_02230118 + + thumb_func_start MOD80_02230128 +MOD80_02230128: ; 0x02230128 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + str r0, [sp, #0x14] + mov r0, #0x15 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r3, #2 + str r3, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + ldr r2, _022301E4 ; =0x00000E98 + ldr r1, [sp, #0x14] + ldr r0, [r0, #4] + add r1, r1, r2 + mov r2, #0 + bl FUN_02019064 + ldr r1, _022301E4 ; =0x00000E98 + ldr r0, [sp, #0x14] + add r0, r0, r1 + mov r1, #0 + bl FUN_02019620 + mov r0, #0xf + str r0, [sp] + mov r0, #0xa + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x5e + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + ldr r2, _022301E8 ; =0x00000ED8 + ldr r1, [sp, #0x14] + ldr r0, [r0, #4] + add r1, r1, r2 + mov r2, #0 + mov r3, #0x15 + bl FUN_02019064 + ldr r1, _022301EC ; =0x00000F08 + ldr r0, [sp, #0x14] + ldr r4, _022301F0 ; =0x022370F4 + mov r6, #0x86 + mov r7, #0 + add r5, r0, r1 +_02230190: + ldr r0, [r4, #4] + add r1, r5, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldr r0, [r4, #8] + mov r2, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #4] + ldr r0, [r4, #0xc] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + ldr r3, [r4] + ldr r0, [r0, #4] + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + bl FUN_02019064 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + ldr r1, [r4, #8] + ldr r0, [r4, #0xc] + add r7, r7, #1 + mul r0, r1 + add r6, r6, r0 + add r4, #0x10 + add r5, #0x10 + cmp r7, #0xa + blo _02230190 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_022301E4: .word 0x00000E98 +_022301E8: .word 0x00000ED8 +_022301EC: .word 0x00000F08 +_022301F0: .word 0x022370F4 + thumb_func_end MOD80_02230128 + + thumb_func_start MOD80_022301F4 +MOD80_022301F4: ; 0x022301F4 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _02230220 ; =0x00000E98 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _02230224 ; =0x00000ED8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _02230228 ; =0x00000F08 + mov r4, #0 + add r5, r5, r0 +_0223020E: + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #0xa + blo _0223020E + pop {r3, r4, r5, pc} + nop +_02230220: .word 0x00000E98 +_02230224: .word 0x00000ED8 +_02230228: .word 0x00000F08 + thumb_func_end MOD80_022301F4 + + thumb_func_start MOD80_0223022C +MOD80_0223022C: ; 0x0223022C + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r1, #0x7e + add r0, #0xc4 + lsl r1, r1, #2 + add r2, r5, r1 + ldr r0, [r0] + sub r1, #0xd4 + mul r1, r0 + add r4, r2, r1 + mov r0, #0xb4 + mov r1, #0x3e + bl FUN_020219F4 + ldr r1, _022302B0 ; =0x00000B4C + str r0, [r5, r1] + sub r1, #0x1c + ldr r0, [r5, r1] + bl FUN_0200B84C + ldr r0, _022302B4 ; =0x0000011E + ldrb r2, [r4, r0] + cmp r2, #0 + beq _02230268 + mov r0, #0xb3 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #8 + bl FUN_0200B4A0 +_02230268: + ldr r2, _022302B8 ; =0x0000011F + ldrb r3, [r4, r2] + cmp r3, #0 + beq _02230280 + mov r0, #0xb3 + sub r2, r2, #1 + lsl r0, r0, #4 + ldrb r2, [r4, r2] + ldr r0, [r5, r0] + mov r1, #9 + bl FUN_0200B4D8 +_02230280: + mov r1, #0xb3 + lsl r1, r1, #4 + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r1, [r5, r1] + mov r2, #0x4f + mov r3, #0x3e + bl FUN_0200A9C4 + ldr r1, _022302BC ; =0x00000B54 + mov r2, #0x50 + str r0, [r5, r1] + add r0, r1, #0 + sub r0, #0x24 + sub r1, #0x20 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + mov r3, #0x3e + bl FUN_0200A9C4 + ldr r1, _022302C0 ; =0x00000B58 + str r0, [r5, r1] + pop {r3, r4, r5, pc} + nop +_022302B0: .word 0x00000B4C +_022302B4: .word 0x0000011E +_022302B8: .word 0x0000011F +_022302BC: .word 0x00000B54 +_022302C0: .word 0x00000B58 + thumb_func_end MOD80_0223022C + + thumb_func_start MOD80_022302C4 +MOD80_022302C4: ; 0x022302C4 + push {r4, lr} + add r4, r0, #0 + ldr r0, _022302E4 ; =0x00000B54 + ldr r0, [r4, r0] + bl FUN_02021A20 + ldr r0, _022302E8 ; =0x00000B58 + ldr r0, [r4, r0] + bl FUN_02021A20 + ldr r0, _022302EC ; =0x00000B4C + ldr r0, [r4, r0] + bl FUN_02021A20 + pop {r4, pc} + nop +_022302E4: .word 0x00000B54 +_022302E8: .word 0x00000B58 +_022302EC: .word 0x00000B4C + thumb_func_end MOD80_022302C4 + + thumb_func_start MOD80_022302F0 +MOD80_022302F0: ; 0x022302F0 + mov r1, #1 + str r1, [r0, #0x2c] + mov r0, #3 + bx lr + thumb_func_end MOD80_022302F0 + + thumb_func_start MOD80_022302F8 +MOD80_022302F8: ; 0x022302F8 + push {r3, r4, r5, lr} + ldr r1, _02230388 ; =0x021C48B8 + mov r2, #1 + ldr r1, [r1, #0x48] + add r4, r0, #0 + add r3, r1, #0 + tst r3, r2 + beq _02230326 + ldr r1, _0223038C ; =0x00000F0F + mov r3, #0 + str r1, [sp] + mov r1, #0x10 + bl MOD80_022304F8 + add r0, r4, #0 + mov r1, #3 + mov r2, #4 + bl MOD80_0222E6DC + ldr r0, _02230390 ; =0x000005DC + bl FUN_020054C8 + b _02230384 +_02230326: + mov r3, #2 + add r5, r1, #0 + tst r5, r3 + beq _02230340 + mov r1, #4 + mov r2, #0 + str r3, [r4, #0x2c] + bl MOD80_0222E7A8 + ldr r0, _02230390 ; =0x000005DC + bl FUN_020054C8 + b _02230384 +_02230340: + mov r0, #0x10 + tst r0, r1 + beq _02230362 + add r0, r4, #0 + add r0, #0xb6 + ldrh r0, [r0] + cmp r0, #0 + bne _02230384 + add r0, r4, #0 + add r0, #0xb6 + strh r2, [r0] + mov r0, #6 + str r0, [r4, #0x2c] + ldr r0, _02230390 ; =0x000005DC + bl FUN_020054C8 + b _02230384 +_02230362: + mov r0, #0x20 + tst r0, r1 + beq _02230384 + add r0, r4, #0 + add r0, #0xb6 + ldrh r0, [r0] + cmp r0, #0 + beq _02230384 + add r0, r4, #0 + mov r1, #0 + add r0, #0xb6 + strh r1, [r0] + mov r0, #6 + str r0, [r4, #0x2c] + ldr r0, _02230390 ; =0x000005DC + bl FUN_020054C8 +_02230384: + mov r0, #3 + pop {r3, r4, r5, pc} + .align 2, 0 +_02230388: .word 0x021C48B8 +_0223038C: .word 0x00000F0F +_02230390: .word 0x000005DC + thumb_func_end MOD80_022302F8 + + thumb_func_start MOD80_02230394 +MOD80_02230394: ; 0x02230394 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, _022303D0 ; =0x00000B34 + ldr r1, _022303D4 ; =0x00000F78 + ldr r0, [r4, r0] + add r1, r4, r1 + bl MOD80_02230550 + add r0, r4, #0 + bl MOD80_0223043C + mov r1, #0 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #4 + add sp, #0xc + pop {r3, r4, pc} + nop +_022303D0: .word 0x00000B34 +_022303D4: .word 0x00000F78 + thumb_func_end MOD80_02230394 + + thumb_func_start MOD80_022303D8 +MOD80_022303D8: ; 0x022303D8 + push {r4, lr} + add r4, r0, #0 + mov r2, #0x73 + ldr r0, [r4, #4] + mov r1, #0xf + lsl r2, r2, #2 + bl MOD80_0222E6A8 + ldr r1, _022303F4 ; =0x00000FCC + str r0, [r4, r1] + mov r0, #5 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_022303F4: .word 0x00000FCC + thumb_func_end MOD80_022303D8 + + thumb_func_start MOD80_022303F8 +MOD80_022303F8: ; 0x022303F8 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02230438 ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _02230432 + sub r1, r1, #1 + cmp r0, r1 + bne _02230424 + mov r0, #2 + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r1, #4 + mov r2, #0 + bl MOD80_0222E7A8 + b _02230432 +_02230424: + mov r0, #2 + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r1, #5 + mov r2, #6 + bl MOD80_0222E7A8 +_02230432: + mov r0, #3 + pop {r4, pc} + nop +_02230438: .word 0x00000FCC + thumb_func_end MOD80_022303F8 + + thumb_func_start MOD80_0223043C +MOD80_0223043C: ; 0x0223043C + push {r3, r4, r5, lr} + sub sp, #0x10 + add r4, r0, #0 + add r0, #0xb6 + ldrh r0, [r0] + cmp r0, #0 + bne _0223048C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x68 + mov r1, #0x1b + bl FUN_020068C8 + ldr r2, _022304BC ; =0x00000B34 + ldr r0, _022304C0 ; =0x00000F98 + mov r3, #0xba + ldr r1, [r4, r2] + add r2, r2, #4 + lsl r3, r3, #2 + add r0, r4, r0 + ldr r2, [r4, r2] + add r3, r4, r3 + add r4, #0xc4 + ldr r5, [r4] + mov r4, #0x49 + lsl r4, r4, #2 + mul r4, r5 + add r3, r3, r4 + bl MOD80_022305A8 + add sp, #0x10 + pop {r3, r4, r5, pc} +_0223048C: + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x68 + mov r1, #0x1c + bl FUN_020068C8 + ldr r2, _022304C4 ; =0x00000B54 + ldr r0, _022304C0 ; =0x00000F98 + ldr r1, [r4, r2] + add r2, r2, #4 + ldr r2, [r4, r2] + add r0, r4, r0 + bl MOD80_02230614 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_022304BC: .word 0x00000B34 +_022304C0: .word 0x00000F98 +_022304C4: .word 0x00000B54 + thumb_func_end MOD80_0223043C + + thumb_func_start MOD80_022304C8 +MOD80_022304C8: ; 0x022304C8 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0223043C + mov r0, #1 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_022304C8 + + thumb_func_start MOD80_022304D8 +MOD80_022304D8: ; 0x022304D8 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _022304F2 + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_022304F2: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_022304D8 + + thumb_func_start MOD80_022304F8 +MOD80_022304F8: ; 0x022304F8 + push {r4, r5, lr} + sub sp, #0xc + add r4, r2, #0 + ldr r2, _02230544 ; =0x00000B34 + add r5, r0, #0 + ldr r0, [r5, r2] + add r2, #0x18 + ldr r2, [r5, r2] + bl FUN_0200A8E0 + ldr r0, _02230548 ; =0x00000E98 + mov r1, #0xf + add r0, r5, r0 + bl FUN_02019620 + ldr r0, _02230548 ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r3, #0 + str r3, [sp] + str r4, [sp, #4] + ldr r0, _02230548 ; =0x00000E98 + ldr r2, _0223054C ; =0x00000B4C + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + mov r1, #0x2e + lsl r1, r1, #6 + str r0, [r5, r1] + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_02230544: .word 0x00000B34 +_02230548: .word 0x00000E98 +_0223054C: .word 0x00000B4C + thumb_func_end MOD80_022304F8 + + thumb_func_start MOD80_02230550 +MOD80_02230550: ; 0x02230550 + push {r4, r5, r6, lr} + sub sp, #8 + add r5, r1, #0 + add r6, r0, #0 + mov r1, #0x4a + bl FUN_0200A914 + add r4, r0, #0 + add r0, r6, #0 + mov r1, #0x4e + bl FUN_0200A914 + add r6, r0, #0 + mov r2, #0 + ldr r0, _022305A4 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r1, r4, #0 + mov r3, #2 + bl MOD80_02236D50 + mov r0, #1 + str r0, [sp] + ldr r0, _022305A4 ; =0x000F0200 + add r5, #0x10 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r6, #0 + mov r2, #0 + mov r3, #2 + bl MOD80_02236D50 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #8 + pop {r4, r5, r6, pc} + nop +_022305A4: .word 0x000F0200 + thumb_func_end MOD80_02230550 + + thumb_func_start MOD80_022305A8 +MOD80_022305A8: ; 0x022305A8 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r6, r1, #0 + mov r1, #0 + add r5, r0, #0 + add r7, r2, #0 + add r4, r3, #0 + bl FUN_02019620 + mov r0, #3 + str r0, [sp] + ldr r0, _02230610 ; =0x000F0200 + mov r3, #0 + str r0, [sp, #4] + ldrsh r2, [r4, r3] + add r0, r5, #0 + add r1, r7, #0 + bl MOD80_02233EA4 + mov r0, #3 + str r0, [sp] + mov r0, #0x46 + str r0, [sp, #4] + ldr r0, _02230610 ; =0x000F0200 + mov r2, #2 + str r0, [sp, #8] + ldrsb r2, [r4, r2] + add r0, r5, #0 + add r1, r6, #0 + mov r3, #0 + bl MOD80_02233EF4 + mov r0, #3 + mov r1, #4 + ldrsb r0, [r4, r0] + ldrsb r1, [r4, r1] + bl MOD80_02234668 + add r2, r0, #0 + mov r0, #0x13 + str r0, [sp] + ldr r0, _02230610 ; =0x000F0200 + add r1, r6, #0 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + add r0, r5, #0 + mov r3, #0 + bl MOD80_02233F5C + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02230610: .word 0x000F0200 + thumb_func_end MOD80_022305A8 + + thumb_func_start MOD80_02230614 +MOD80_02230614: ; 0x02230614 + push {r4, r5, r6, lr} + sub sp, #8 + add r5, r1, #0 + mov r1, #0 + add r6, r0, #0 + add r4, r2, #0 + bl FUN_02019620 + cmp r5, #0 + beq _0223063A + mov r2, #0 + ldr r0, _02230658 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + add r0, r6, #0 + add r1, r5, #0 + mov r3, #3 + bl MOD80_02236D50 +_0223063A: + cmp r4, #0 + beq _02230652 + mov r0, #0 + str r0, [sp] + ldr r0, _02230658 ; =0x000F0200 + add r1, r4, #0 + str r0, [sp, #4] + add r0, r6, #0 + mov r2, #8 + mov r3, #0x13 + bl MOD80_02236D50 +_02230652: + add sp, #8 + pop {r4, r5, r6, pc} + nop +_02230658: .word 0x000F0200 + thumb_func_end MOD80_02230614 + + thumb_func_start MOD80_0223065C +MOD80_0223065C: ; 0x0223065C + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD80_02230AC0 + ldr r0, [r4, #4] + bl MOD80_02230760 + add r0, r4, #0 + bl MOD80_02230840 + add r0, r4, #0 + bl MOD80_02230944 + add r0, r4, #0 + bl MOD80_022308EC + ldr r1, _02230708 ; =0x00000B34 + ldr r0, _0223070C ; =0x00000F08 + ldr r1, [r4, r1] + add r0, r4, r0 + bl MOD80_022318D4 + mov r0, #0 + str r0, [sp] + ldr r0, _02230710 ; =0x00010200 + ldr r2, _02230714 ; =0x00000B38 + str r0, [sp, #4] + ldr r1, [r4, r2] + sub r2, #0x16 + ldr r0, _02230718 ; =0x00000F18 + ldrsh r2, [r4, r2] + add r0, r4, r0 + mov r3, #2 + bl MOD80_02233EA4 + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _02230710 ; =0x00010200 + ldr r2, _02230708 ; =0x00000B34 + str r0, [sp, #8] + ldr r1, [r4, r2] + sub r2, #0x10 + ldr r0, _0223071C ; =0x00000F38 + ldrsb r2, [r4, r2] + add r0, r4, r0 + mov r3, #1 + bl MOD80_02233EF4 + ldr r1, _02230720 ; =0x00000B25 + ldrsb r0, [r4, r1] + add r1, r1, #1 + ldrsb r1, [r4, r1] + bl MOD80_02234668 + add r2, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, _02230710 ; =0x00010200 + ldr r1, _02230708 ; =0x00000B34 + str r0, [sp, #4] + ldr r0, _02230724 ; =0x00000F58 + ldr r1, [r4, r1] + add r0, r4, r0 + mov r3, #2 + bl MOD80_02233F9C + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #2 + add sp, #0xc + pop {r3, r4, pc} + nop +_02230708: .word 0x00000B34 +_0223070C: .word 0x00000F08 +_02230710: .word 0x00010200 +_02230714: .word 0x00000B38 +_02230718: .word 0x00000F18 +_0223071C: .word 0x00000F38 +_02230720: .word 0x00000B25 +_02230724: .word 0x00000F58 + thumb_func_end MOD80_0223065C + + thumb_func_start MOD80_02230728 +MOD80_02230728: ; 0x02230728 + push {r3, lr} + ldr r1, [r0, #0x2c] + lsl r2, r1, #2 + ldr r1, _02230738 ; =0x02237A94 + ldr r1, [r1, r2] + blx r1 + pop {r3, pc} + nop +_02230738: .word 0x02237A94 + thumb_func_end MOD80_02230728 + + thumb_func_start MOD80_0223073C +MOD80_0223073C: ; 0x0223073C + push {r4, lr} + add r4, r0, #0 + bl MOD80_02230934 + add r0, r4, #0 + bl MOD80_02230B2C + add r0, r4, #0 + bl MOD80_02230A88 + ldr r0, [r4, #4] + bl MOD80_02230814 + add r0, r4, #0 + bl MOD80_0222E7B0 + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD80_0223073C + + thumb_func_start MOD80_02230760 +MOD80_02230760: ; 0x02230760 + push {r4, r5, lr} + sub sp, #0x54 + ldr r5, _02230808 ; =0x022371D0 + add r4, r0, #0 + ldmia r5!, {r0, r1} + add r3, sp, #0x38 + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _0223080C ; =0x022371EC + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018744 + ldr r5, _02230810 ; =0x022371B4 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #2 + bl FUN_02018744 + mov r0, #2 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x3e + bl FUN_02017F18 + add sp, #0x54 + pop {r4, r5, pc} + nop +_02230808: .word 0x022371D0 +_0223080C: .word 0x022371EC +_02230810: .word 0x022371B4 + thumb_func_end MOD80_02230760 + + thumb_func_start MOD80_02230814 +MOD80_02230814: ; 0x02230814 + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD80_02230814 + + thumb_func_start MOD80_02230840 +MOD80_02230840: ; 0x02230840 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r4, [r5, #4] + mov r0, #0x60 + str r0, [sp] + mov r0, #0x3e + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x68 + mov r1, #3 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #1 + lsl r0, r0, #8 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + mov r0, #0x68 + mov r1, #5 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x3e + bl FUN_02002EEC + ldr r0, [r5] + ldr r0, [r0, #0x24] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CB00 + mov r0, #0 + str r0, [sp] + mov r0, #0xa + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0xd + add r2, r4, #0 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x1a + add r2, r4, #0 + bl FUN_020068C8 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD80_02230840 + + thumb_func_start MOD80_022308EC +MOD80_022308EC: ; 0x022308EC + push {r4, lr} + sub sp, #0x30 + mov r2, #0xcf + add r4, r0, #0 + lsl r2, r2, #4 + add r0, sp, #0 + add r1, r4, #0 + add r2, r4, r2 + mov r3, #1 + bl MOD80_0222E5E8 + mov r0, #1 + lsl r0, r0, #0xc + str r0, [sp, #8] + str r0, [sp, #0xc] + add r0, sp, #0 + bl FUN_0201FE94 + ldr r1, _02230930 ; =0x00000D5C + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #1 + bl FUN_020200BC + ldr r0, _02230930 ; =0x00000D5C + mov r1, #0 + ldr r0, [r4, r0] + bl FUN_02020130 + bl FUN_02033E74 + add sp, #0x30 + pop {r4, pc} + nop +_02230930: .word 0x00000D5C + thumb_func_end MOD80_022308EC + + thumb_func_start MOD80_02230934 +MOD80_02230934: ; 0x02230934 + ldr r1, _0223093C ; =0x00000D5C + ldr r3, _02230940 ; =FUN_0201FFC8 + ldr r0, [r0, r1] + bx r3 + .align 2, 0 +_0223093C: .word 0x00000D5C +_02230940: .word FUN_0201FFC8 + thumb_func_end MOD80_02230934 + + thumb_func_start MOD80_02230944 +MOD80_02230944: ; 0x02230944 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + mov r3, #1 + str r0, [sp, #0x14] + str r3, [sp] + mov r0, #0x1c + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + ldr r2, _02230A6C ; =0x00000EB8 + ldr r1, [sp, #0x14] + ldr r0, [r0, #4] + add r1, r1, r2 + mov r2, #0 + bl FUN_02019064 + ldr r1, _02230A6C ; =0x00000EB8 + ldr r0, [sp, #0x14] + add r0, r0, r1 + mov r1, #0 + bl FUN_02019620 + mov r2, #0 + mov r3, #0xb5 + ldr r0, _02230A70 ; =0x000F0D00 + str r2, [sp] + str r0, [sp, #4] + ldr r1, _02230A6C ; =0x00000EB8 + ldr r0, [sp, #0x14] + lsl r3, r3, #4 + add r0, r0, r1 + ldr r1, [sp, #0x14] + ldr r1, [r1, r3] + mov r3, #1 + bl MOD80_02236D1C + mov r0, #0x15 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r3, #2 + str r3, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x60 + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + ldr r2, _02230A74 ; =0x00000E98 + ldr r1, [sp, #0x14] + ldr r0, [r0, #4] + add r1, r1, r2 + mov r2, #0 + bl FUN_02019064 + ldr r1, _02230A74 ; =0x00000E98 + ldr r0, [sp, #0x14] + add r0, r0, r1 + mov r1, #0 + bl FUN_02019620 + ldr r1, _02230A78 ; =0x00000F08 + ldr r0, [sp, #0x14] + ldr r4, _02230A7C ; =0x0223719C + mov r7, #0 + mov r6, #0x96 + add r5, r0, r1 +_022309D2: + ldrh r0, [r4, #2] + add r1, r5, #0 + mov r2, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0xb + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldrh r3, [r4] + ldr r0, [sp, #0x14] + lsl r3, r3, #0x18 + ldr r0, [r0, #4] + lsr r3, r3, #0x18 + bl FUN_02019064 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + add r7, r7, #1 + add r6, #0x16 + add r4, r4, #4 + add r5, #0x10 + cmp r7, #6 + blt _022309D2 + ldr r1, _02230A78 ; =0x00000F08 + ldr r0, [sp, #0x14] + ldr r6, _02230A80 ; =0x0000011A + add r0, r0, r1 + ldr r4, _02230A84 ; =0x02237194 + mov r5, #0 + str r0, [sp, #0x18] +_02230A20: + add r0, r5, #6 + lsl r7, r0, #4 + ldrh r0, [r4, #2] + ldr r1, [sp, #0x18] + mov r2, #2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldrh r3, [r4] + ldr r0, [sp, #0x14] + add r1, r1, r7 + lsl r3, r3, #0x18 + ldr r0, [r0, #4] + lsr r3, r3, #0x18 + bl FUN_02019064 + ldr r0, [sp, #0x18] + mov r1, #0 + add r0, r0, r7 + bl FUN_02019620 + add r5, r5, #1 + add r6, #0x10 + add r4, r4, #4 + cmp r5, #2 + blt _02230A20 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_02230A6C: .word 0x00000EB8 +_02230A70: .word 0x000F0D00 +_02230A74: .word 0x00000E98 +_02230A78: .word 0x00000F08 +_02230A7C: .word 0x0223719C +_02230A80: .word 0x0000011A +_02230A84: .word 0x02237194 + thumb_func_end MOD80_02230944 + + thumb_func_start MOD80_02230A88 +MOD80_02230A88: ; 0x02230A88 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _02230AB4 ; =0x00000E98 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _02230AB8 ; =0x00000EB8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _02230ABC ; =0x00000F08 + mov r4, #0 + add r5, r5, r0 +_02230AA2: + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #8 + blt _02230AA2 + pop {r3, r4, r5, pc} + nop +_02230AB4: .word 0x00000E98 +_02230AB8: .word 0x00000EB8 +_02230ABC: .word 0x00000F08 + thumb_func_end MOD80_02230A88 + + thumb_func_start MOD80_02230AC0 +MOD80_02230AC0: ; 0x02230AC0 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xb4 + mov r1, #0x3e + bl FUN_020219F4 + ldr r1, _02230B28 ; =0x00000B4C + str r0, [r4, r1] + sub r1, #0x18 + ldr r0, [r4, r1] + mov r1, #0x29 + bl FUN_0200A914 + mov r1, #0xb5 + lsl r1, r1, #4 + str r0, [r4, r1] + mov r0, #0x3e + mov r1, #0x30 + bl FUN_02016998 + mov r1, #0xfe + lsl r1, r1, #4 + str r0, [r4, r1] + ldr r1, [r4, r1] + mov r0, #0 + mov r2, #0x30 + bl MIi_CpuClearFast + mov r2, #0xfe + lsl r2, r2, #4 + ldr r2, [r4, r2] + mov r0, #0x3e + mov r1, #0 + add r2, #0x1c + bl MOD80_02234204 + mov r1, #0xfe + lsl r1, r1, #4 + ldr r1, [r4, r1] + str r0, [r1, #0x18] + mov r0, #0x3e + bl MOD80_02234228 + mov r1, #0xfe + lsl r1, r1, #4 + ldr r2, [r4, r1] + add r1, #0x38 + str r0, [r2, #0x14] + add r0, r4, r1 + bl MOD80_022346D8 + pop {r4, pc} + .align 2, 0 +_02230B28: .word 0x00000B4C + thumb_func_end MOD80_02230AC0 + + thumb_func_start MOD80_02230B2C +MOD80_02230B2C: ; 0x02230B2C + push {r4, lr} + add r4, r0, #0 + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + ldr r0, [r0, #0x14] + bl FUN_02016A18 + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + ldr r0, [r0, #0x18] + bl FUN_02016A18 + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, _02230B68 ; =0x00000B4C + ldr r0, [r4, r0] + bl FUN_02021A20 + mov r0, #0xb5 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02021A20 + pop {r4, pc} + nop +_02230B68: .word 0x00000B4C + thumb_func_end MOD80_02230B2C + + thumb_func_start MOD80_02230B6C +MOD80_02230B6C: ; 0x02230B6C + push {r3, r4, lr} + sub sp, #4 + ldr r1, _02230B90 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #8 + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #1 + bl MOD80_0222E6DC + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02230B90: .word 0x00000F0F + thumb_func_end MOD80_02230B6C + + thumb_func_start MOD80_02230B94 +MOD80_02230B94: ; 0x02230B94 + push {r3, r4, r5, lr} + add r4, r0, #0 + bl MOD80_02231008 + ldr r0, _02230CB4 ; =0x021C48B8 + mov r2, #1 + ldr r1, [r0, #0x48] + add r0, r1, #0 + tst r0, r2 + beq _02230C44 + add r0, r4, #0 + bl MOD80_02230FF0 + cmp r0, #4 + bhi _02230CAE + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02230BBE: ; jump table + .short _02230BC8 - _02230BBE - 2 ; case 0 + .short _02230BD4 - _02230BBE - 2 ; case 1 + .short _02230C10 - _02230BBE - 2 ; case 2 + .short _02230C1C - _02230BBE - 2 ; case 3 + .short _02230C22 - _02230BBE - 2 ; case 4 +_02230BC8: + mov r0, #3 + str r0, [r4, #0x2c] + ldr r0, _02230CB8 ; =0x000005DC + bl FUN_020054C8 + b _02230CAE +_02230BD4: + ldr r0, _02230CBC ; =0x00000B22 + ldrsh r0, [r4, r0] + cmp r0, #0 + beq _02230C04 + mov r1, #0x12 + bl FUN_02068678 + mov r1, #0xfe + lsl r1, r1, #4 + ldr r2, [r4, r1] + str r0, [r2, #0x20] + ldr r1, [r4, r1] + ldr r0, _02230CBC ; =0x00000B22 + ldr r1, [r1, #0x20] + add r0, r4, r0 + bl MOD80_022338E0 + cmp r0, #0 + beq _02230C04 + ldr r0, _02230CB8 ; =0x000005DC + bl FUN_020054C8 + mov r0, #3 + pop {r3, r4, r5, pc} +_02230C04: + mov r0, #8 + str r0, [r4, #0x2c] + ldr r0, _02230CB8 ; =0x000005DC + bl FUN_020054C8 + b _02230CAE +_02230C10: + mov r0, #0xb + str r0, [r4, #0x2c] + ldr r0, _02230CB8 ; =0x000005DC + bl FUN_020054C8 + b _02230CAE +_02230C1C: + mov r0, #0xe + str r0, [r4, #0x2c] + b _02230CAE +_02230C22: + ldr r0, _02230CC0 ; =0x00000F0F + mov r1, #0xf + str r0, [sp] + add r0, r4, #0 + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #0x16 + bl MOD80_0222E6DC + ldr r0, _02230CB8 ; =0x000005DC + bl FUN_020054C8 + b _02230CAE +_02230C44: + mov r0, #2 + tst r0, r1 + beq _02230C6A + ldr r0, _02230CC0 ; =0x00000F0F + mov r1, #0xf + str r0, [sp] + add r0, r4, #0 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #0x16 + bl MOD80_0222E6DC + ldr r0, _02230CB8 ; =0x000005DC + bl FUN_020054C8 + b _02230CAE +_02230C6A: + add r0, r4, #0 + add r0, #0xc0 + ldr r0, [r0] + bl MOD80_02235B70 + add r5, r0, #0 + ldr r0, _02230CC4 ; =0x00000FEE + ldrh r0, [r4, r0] + cmp r0, #0 + beq _02230CAE + cmp r5, #0 + blt _02230CAE + add r0, r5, #1 + lsl r0, r0, #2 + add r1, r4, r0 + mov r0, #0xe7 + lsl r0, r0, #4 + ldr r0, [r1, r0] + lsl r1, r5, #2 + add r1, #0x10 + bl FUN_02020130 + mov r0, #2 + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r1, #3 + mov r2, #0 + bl MOD80_0222E7A8 + add r4, #0xc4 + ldr r0, _02230CB8 ; =0x000005DC + str r5, [r4] + bl FUN_020054C8 +_02230CAE: + mov r0, #3 + pop {r3, r4, r5, pc} + nop +_02230CB4: .word 0x021C48B8 +_02230CB8: .word 0x000005DC +_02230CBC: .word 0x00000B22 +_02230CC0: .word 0x00000F0F +_02230CC4: .word 0x00000FEE + thumb_func_end MOD80_02230B94 + + thumb_func_start MOD80_02230CC8 +MOD80_02230CC8: ; 0x02230CC8 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _02230D54 ; =0x00000B22 + add r4, r0, #0 + ldrsh r2, [r4, r1] + cmp r2, #0 + bne _02230CF6 + ldr r1, _02230D58 ; =0x00000F0F + mov r2, #1 + str r1, [sp] + mov r1, #0xc + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #1 + bl MOD80_0222E6DC + ldr r0, _02230D5C ; =0x000005F3 + bl FUN_020054C8 + b _02230D4C +_02230CF6: + add r0, r4, r1 + add r1, r1, #6 + add r1, r4, r1 + bl MOD80_022319C0 + cmp r0, #0 + beq _02230D26 + ldr r0, _02230D58 ; =0x00000F0F + mov r1, #0x21 + str r0, [sp] + add r0, r4, #0 + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #1 + bl MOD80_0222E6DC + ldr r0, _02230D5C ; =0x000005F3 + bl FUN_020054C8 + b _02230D4C +_02230D26: + ldr r0, _02230D60 ; =0x000005FF + bl FUN_020054C8 + ldr r0, _02230D58 ; =0x00000F0F + mov r1, #0xd + str r0, [sp] + add r0, r4, #0 + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #0xf + bl MOD80_0222E6DC + add r0, r4, #0 + bl MOD80_02235C40 +_02230D4C: + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_02230D54: .word 0x00000B22 +_02230D58: .word 0x00000F0F +_02230D5C: .word 0x000005F3 +_02230D60: .word 0x000005FF + thumb_func_end MOD80_02230CC8 + + thumb_func_start MOD80_02230D64 +MOD80_02230D64: ; 0x02230D64 + push {r3, r4, lr} + sub sp, #0x2c + ldr r0, [r0] + ldr r0, [r0] + bl FUN_0202AC08 + lsr r1, r0, #0x18 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0x1c] + lsr r1, r0, #0x10 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0x20] + lsr r1, r0, #8 + lsl r1, r1, #0x18 + lsl r0, r0, #0x18 + lsr r1, r1, #0x18 + lsr r0, r0, #0x18 + str r1, [sp, #0x24] + str r0, [sp, #0x28] + add r0, sp, #0xc + add r1, sp, #0 + bl MOD04_021DE1F8 + add r0, sp, #0xc + bl RTC_ConvertDateToDay + add r4, r0, #0 + add r0, sp, #0x1c + bl RTC_ConvertDateToDay + sub r0, r4, r0 + bmi _02230DB2 + cmp r0, #3 + bge _02230DB2 + add sp, #0x2c + mov r0, #1 + pop {r3, r4, pc} +_02230DB2: + mov r0, #0 + add sp, #0x2c + pop {r3, r4, pc} + thumb_func_end MOD80_02230D64 + + thumb_func_start MOD80_02230DB8 +MOD80_02230DB8: ; 0x02230DB8 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldrh r0, [r5, #0x36] + mov r4, #3 + cmp r0, #0 + beq _02230DC6 + add r4, r4, #2 +_02230DC6: + add r0, r5, #0 + bl MOD80_02230D64 + cmp r0, #0 + beq _02230DD2 + add r4, r4, #2 +_02230DD2: + ldr r0, _02230E0C ; =0x00000B22 + mov r2, #0x7e + lsl r2, r2, #2 + add r0, r5, r0 + add r1, r4, #0 + add r2, r5, r2 + bl MOD80_0222DD90 + ldr r1, _02230E0C ; =0x00000B22 + ldrh r2, [r5, r1] + add r0, r1, #6 + strh r2, [r5, r0] + add r0, r1, #2 + ldrh r2, [r5, r0] + add r0, r1, #0 + add r0, #8 + strh r2, [r5, r0] + add r0, r1, #4 + ldrh r0, [r5, r0] + add r1, #0xa + strh r0, [r5, r1] + mov r0, #0x10 + str r0, [r5, #0x2c] + ldr r0, _02230E10 ; =0x00000FEE + mov r1, #0 + strh r1, [r5, r0] + mov r0, #3 + pop {r3, r4, r5, pc} + nop +_02230E0C: .word 0x00000B22 +_02230E10: .word 0x00000FEE + thumb_func_end MOD80_02230DB8 + + thumb_func_start MOD80_02230E14 +MOD80_02230E14: ; 0x02230E14 + push {r3, r4, r5, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _02230E94 + bl MOD80_0222DBB8 + add r5, r0, #0 + add r0, #0xf + cmp r0, #0x16 + bhi _02230E94 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02230E38: ; jump table + .short _02230E90 - _02230E38 - 2 ; case 0 + .short _02230E84 - _02230E38 - 2 ; case 1 + .short _02230E8A - _02230E38 - 2 ; case 2 + .short _02230E90 - _02230E38 - 2 ; case 3 + .short _02230E94 - _02230E38 - 2 ; case 4 + .short _02230E94 - _02230E38 - 2 ; case 5 + .short _02230E94 - _02230E38 - 2 ; case 6 + .short _02230E94 - _02230E38 - 2 ; case 7 + .short _02230E94 - _02230E38 - 2 ; case 8 + .short _02230E94 - _02230E38 - 2 ; case 9 + .short _02230E94 - _02230E38 - 2 ; case 10 + .short _02230E94 - _02230E38 - 2 ; case 11 + .short _02230E94 - _02230E38 - 2 ; case 12 + .short _02230E84 - _02230E38 - 2 ; case 13 + .short _02230E94 - _02230E38 - 2 ; case 14 + .short _02230E66 - _02230E38 - 2 ; case 15 + .short _02230E66 - _02230E38 - 2 ; case 16 + .short _02230E66 - _02230E38 - 2 ; case 17 + .short _02230E66 - _02230E38 - 2 ; case 18 + .short _02230E66 - _02230E38 - 2 ; case 19 + .short _02230E66 - _02230E38 - 2 ; case 20 + .short _02230E66 - _02230E38 - 2 ; case 21 + .short _02230E66 - _02230E38 - 2 ; case 22 +_02230E66: + add r0, r4, #0 + add r0, #0xc0 + str r5, [r0] + ldr r0, _02230E98 ; =0x000005FF + mov r1, #0 + bl FUN_020054F0 + add r0, r4, #0 + add r1, r5, #0 + mov r2, #1 + bl MOD80_02235B90 + mov r0, #0x11 + str r0, [r4, #0x2c] + b _02230E94 +_02230E84: + mov r0, #0x1a + str r0, [r4, #0x2c] + b _02230E94 +_02230E8A: + bl FUN_020335E0 + b _02230E94 +_02230E90: + mov r0, #0x13 + str r0, [r4, #0x2c] +_02230E94: + mov r0, #3 + pop {r3, r4, r5, pc} + .align 2, 0 +_02230E98: .word 0x000005FF + thumb_func_end MOD80_02230E14 + + thumb_func_start MOD80_02230E9C +MOD80_02230E9C: ; 0x02230E9C + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + add r1, r4, #0 + add r1, #0xc0 + ldr r1, [r1] + cmp r1, #0 + ldr r1, _02230EF0 ; =0x00000F0F + bne _02230ECC + str r1, [sp] + mov r1, #0xe + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #1 + bl MOD80_0222E6DC + ldr r0, _02230EF4 ; =0x000005F3 + bl FUN_020054C8 + b _02230EE8 +_02230ECC: + str r1, [sp] + mov r1, #0x1e + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #0x12 + bl MOD80_0222E6DC + ldr r0, _02230EF8 ; =0x00000FDC + mov r1, #0 + str r1, [r4, r0] +_02230EE8: + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_02230EF0: .word 0x00000F0F +_02230EF4: .word 0x000005F3 +_02230EF8: .word 0x00000FDC + thumb_func_end MOD80_02230E9C + + thumb_func_start MOD80_02230EFC +MOD80_02230EFC: ; 0x02230EFC + push {r3, r4, lr} + sub sp, #4 + ldr r1, _02230F34 ; =0x00000FDC + add r4, r0, #0 + ldr r2, [r4, r1] + add r2, r2, #1 + str r2, [r4, r1] + ldr r2, [r4, r1] + cmp r2, #0x2d + ble _02230F2E + sub r1, #0xcd + str r1, [sp] + mov r1, #0x20 + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #1 + bl MOD80_0222E6DC + ldr r0, _02230F38 ; =0x00000FEE + mov r1, #1 + strh r1, [r4, r0] +_02230F2E: + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02230F34: .word 0x00000FDC +_02230F38: .word 0x00000FEE + thumb_func_end MOD80_02230EFC + + thumb_func_start MOD80_02230F3C +MOD80_02230F3C: ; 0x02230F3C + push {r3, r4, lr} + sub sp, #4 + ldr r1, _02230F6C ; =0x00000B28 + add r4, r0, #0 + mov r3, #0 + strh r3, [r4, r1] + ldr r1, _02230F70 ; =0x00000F0F + mov r2, #1 + str r1, [sp] + mov r1, #0x26 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #1 + bl MOD80_0222E6DC + ldr r0, _02230F74 ; =0x000005F3 + bl FUN_020054C8 + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_02230F6C: .word 0x00000B28 +_02230F70: .word 0x00000F0F +_02230F74: .word 0x000005F3 + thumb_func_end MOD80_02230F3C + + thumb_func_start MOD80_02230F78 +MOD80_02230F78: ; 0x02230F78 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _02230FA8 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0x8f + mov r2, #4 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x15 + mov r2, #0x1b + bl MOD80_0222E6DC + ldr r0, _02230FAC ; =0x00000FDC + mov r1, #0 + str r1, [r4, r0] + ldr r0, _02230FB0 ; =0x000005F3 + bl FUN_020054C8 + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02230FA8: .word 0x00000F0F +_02230FAC: .word 0x00000FDC +_02230FB0: .word 0x000005F3 + thumb_func_end MOD80_02230F78 + + thumb_func_start MOD80_02230FB4 +MOD80_02230FB4: ; 0x02230FB4 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _02230FE8 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0x94 + mov r2, #4 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x15 + mov r2, #2 + bl MOD80_0222E6DC + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + ldr r0, _02230FEC ; =0x000005F3 + bl FUN_020054C8 + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02230FE8: .word 0x00000F0F +_02230FEC: .word 0x000005F3 + thumb_func_end MOD80_02230FB4 + + thumb_func_start MOD80_02230FF0 +MOD80_02230FF0: ; 0x02230FF0 + mov r1, #0xfe + lsl r1, r1, #4 + ldr r1, [r0, r1] + ldr r0, [r1, #0x24] + cmp r0, #0 + bne _02231000 + ldr r0, [r1, #0x28] + bx lr +_02231000: + ldr r0, [r1, #0x2c] + add r0, r0, #3 + bx lr + .align 2, 0 + thumb_func_end MOD80_02230FF0 + + thumb_func_start MOD80_02231008 +MOD80_02231008: ; 0x02231008 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, _02231100 ; =0x021C48B8 + mov r1, #0x40 + ldr r0, [r0, #0x48] + tst r1, r0 + beq _0223104E + mov r0, #0xfe + lsl r0, r0, #4 + ldr r1, [r4, r0] + ldr r0, [r1, #0x24] + cmp r0, #0 + bne _02231036 + ldr r0, [r1, #0x28] + cmp r0, #0 + ble _022310D0 + sub r0, r0, #1 + str r0, [r1, #0x28] + ldr r0, _02231104 ; =0x000005DC + bl FUN_020054C8 + b _022310D0 +_02231036: + ldr r0, [r1, #0x2c] + cmp r0, #0 + beq _02231042 + ldr r0, _02231104 ; =0x000005DC + bl FUN_020054C8 +_02231042: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + str r1, [r0, #0x2c] + b _022310D0 +_0223104E: + mov r1, #0x80 + tst r1, r0 + beq _0223108A + mov r0, #0xfe + lsl r0, r0, #4 + ldr r1, [r4, r0] + ldr r0, [r1, #0x24] + cmp r0, #0 + bne _02231072 + ldr r0, [r1, #0x28] + cmp r0, #2 + bge _022310D0 + add r0, r0, #1 + str r0, [r1, #0x28] + ldr r0, _02231104 ; =0x000005DC + bl FUN_020054C8 + b _022310D0 +_02231072: + ldr r0, [r1, #0x2c] + cmp r0, #1 + beq _0223107E + ldr r0, _02231104 ; =0x000005DC + bl FUN_020054C8 +_0223107E: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #1 + str r1, [r0, #0x2c] + b _022310D0 +_0223108A: + mov r1, #0x10 + tst r1, r0 + beq _022310AE + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + ldr r0, [r0, #0x24] + cmp r0, #1 + beq _022310A2 + ldr r0, _02231104 ; =0x000005DC + bl FUN_020054C8 +_022310A2: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #1 + str r1, [r0, #0x24] + b _022310D0 +_022310AE: + mov r1, #0x20 + tst r0, r1 + beq _022310D0 + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + ldr r0, [r0, #0x24] + cmp r0, #0 + beq _022310C6 + ldr r0, _02231104 ; =0x000005DC + bl FUN_020054C8 +_022310C6: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + str r1, [r0, #0x24] +_022310D0: + add r0, r4, #0 + bl MOD80_02230FF0 + lsl r1, r0, #2 + ldr r0, _02231108 ; =0x02237A80 + ldrh r0, [r0, r1] + lsl r0, r0, #0xc + str r0, [sp] + add r0, r4, #0 + bl MOD80_02230FF0 + lsl r1, r0, #2 + ldr r0, _0223110C ; =0x02237A82 + ldrh r0, [r0, r1] + add r1, sp, #0 + lsl r0, r0, #0xc + str r0, [sp, #4] + ldr r0, _02231110 ; =0x00000D5C + ldr r0, [r4, r0] + bl FUN_02020044 + add sp, #0xc + pop {r3, r4, pc} + nop +_02231100: .word 0x021C48B8 +_02231104: .word 0x000005DC +_02231108: .word 0x02237A80 +_0223110C: .word 0x02237A82 +_02231110: .word 0x00000D5C + thumb_func_end MOD80_02231008 + + thumb_func_start MOD80_02231114 +MOD80_02231114: ; 0x02231114 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #6 + mov r1, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #4 + add sp, #0xc + pop {r3, r4, pc} + thumb_func_end MOD80_02231114 + + thumb_func_start MOD80_0223113C +MOD80_0223113C: ; 0x0223113C + push {r3, r4, lr} + sub sp, #0x14 + ldr r1, _022311B4 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #9 + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #4 + bl MOD80_0222E6DC + mov r0, #5 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #0xd + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _022311B8 ; =0x0000013A + ldr r1, _022311BC ; =0x00000ED8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #0xf + bl FUN_02019064 + ldr r0, _022311BC ; =0x00000ED8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #5 + str r0, [sp] + mov r0, #0xa + str r0, [sp, #4] + mov r0, #0xd + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _022311C0 ; =0x0000016E + ldr r1, _022311C4 ; =0x00000EE8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #0x15 + bl FUN_02019064 + ldr r0, _022311C4 ; =0x00000EE8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #3 + add sp, #0x14 + pop {r3, r4, pc} + .align 2, 0 +_022311B4: .word 0x00000F0F +_022311B8: .word 0x0000013A +_022311BC: .word 0x00000ED8 +_022311C0: .word 0x0000016E +_022311C4: .word 0x00000EE8 + thumb_func_end MOD80_0223113C + + thumb_func_start MOD80_022311C8 +MOD80_022311C8: ; 0x022311C8 + push {r4, lr} + ldr r2, _022311F0 ; =0x00000FC8 + add r4, r0, #0 + ldr r3, _022311F4 ; =0x00000B34 + add r1, r4, r2 + sub r2, #0xf0 + ldr r3, [r4, r3] + add r2, r4, r2 + bl MOD80_02234370 + ldr r1, _022311F8 ; =0x00000FD4 + str r0, [r4, r1] + add r0, r4, #0 + ldr r1, _022311FC ; =0x0000FFFF + add r0, #0xb0 + strh r1, [r0] + mov r0, #5 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_022311F0: .word 0x00000FC8 +_022311F4: .word 0x00000B34 +_022311F8: .word 0x00000FD4 +_022311FC: .word 0x0000FFFF + thumb_func_end MOD80_022311C8 + + thumb_func_start MOD80_02231200 +MOD80_02231200: ; 0x02231200 + push {r4, lr} + add r4, r0, #0 + ldr r0, _022312B4 ; =0x00000FD4 + add r1, r4, #0 + ldr r0, [r4, r0] + add r1, #0xb0 + bl MOD80_02234698 + cmp r0, #0xa + bhi _02231236 + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02231220: ; jump table + .short _022312AE - _02231220 - 2 ; case 0 + .short _02231240 - _02231220 - 2 ; case 1 + .short _02231240 - _02231220 - 2 ; case 2 + .short _02231240 - _02231220 - 2 ; case 3 + .short _02231240 - _02231220 - 2 ; case 4 + .short _02231240 - _02231220 - 2 ; case 5 + .short _02231240 - _02231220 - 2 ; case 6 + .short _02231240 - _02231220 - 2 ; case 7 + .short _02231240 - _02231220 - 2 ; case 8 + .short _02231240 - _02231220 - 2 ; case 9 + .short _02231240 - _02231220 - 2 ; case 10 +_02231236: + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _02231266 + b _022312AE +_02231240: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r2, [r4, r0] + sub r0, #0xc + add r1, r2, #6 + ldr r0, [r4, r0] + add r2, r2, #4 + bl FUN_02001300 + ldr r0, _022312B8 ; =0x00000FC8 + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r0, _022312BC ; =0x000005DC + bl FUN_020054C8 + mov r0, #6 + str r0, [r4, #0x2c] + b _022312AE +_02231266: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r2, [r4, r0] + sub r0, #0xc + add r1, r2, #6 + ldr r0, [r4, r0] + add r2, r2, #4 + bl FUN_02001300 + ldr r0, _022312B8 ; =0x00000FC8 + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r0, _022312C0 ; =0x00000ED8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _022312C4 ; =0x00000E98 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200D0E0 + ldr r0, _022312C0 ; =0x00000ED8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _022312C8 ; =0x00000EE8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _022312BC ; =0x000005DC + bl FUN_020054C8 + mov r0, #0 + str r0, [r4, #0x2c] +_022312AE: + mov r0, #3 + pop {r4, pc} + nop +_022312B4: .word 0x00000FD4 +_022312B8: .word 0x00000FC8 +_022312BC: .word 0x000005DC +_022312C0: .word 0x00000ED8 +_022312C4: .word 0x00000E98 +_022312C8: .word 0x00000EE8 + thumb_func_end MOD80_02231200 + + thumb_func_start MOD80_022312CC +MOD80_022312CC: ; 0x022312CC + push {r3, r4, lr} + sub sp, #0xc + ldr r3, _02231310 ; =0x00000B38 + add r4, r0, #0 + ldr r1, [r4, r3] + mov r2, #0xfe + lsl r2, r2, #4 + str r1, [sp] + ldr r1, [r4, r2] + sub r3, r3, #4 + str r1, [sp, #4] + ldr r1, [r4] + ldr r1, [r1, #0x10] + str r1, [sp, #8] + add r1, r2, #0 + sub r1, #0x18 + sub r2, #0xf8 + ldr r3, [r4, r3] + add r1, r4, r1 + add r2, r4, r2 + bl MOD80_022344DC + ldr r1, _02231314 ; =0x00000FD4 + str r0, [r4, r1] + add r0, r4, #0 + ldr r1, _02231318 ; =0x0000FFFF + add r0, #0xb0 + strh r1, [r0] + mov r0, #7 + str r0, [r4, #0x2c] + mov r0, #3 + add sp, #0xc + pop {r3, r4, pc} + nop +_02231310: .word 0x00000B38 +_02231314: .word 0x00000FD4 +_02231318: .word 0x0000FFFF + thumb_func_end MOD80_022312CC + + thumb_func_start MOD80_0223131C +MOD80_0223131C: ; 0x0223131C + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, _02231464 ; =0x00000FD4 + add r1, r4, #0 + ldr r0, [r4, r0] + add r1, #0xb0 + bl MOD80_02234698 + add r5, r0, #0 + mov r0, #1 + mvn r0, r0 + cmp r5, r0 + beq _02231342 + add r0, r0, #1 + cmp r5, r0 + bne _02231340 + b _0223145C +_02231340: + b _0223138C +_02231342: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r2, [r4, r0] + sub r0, #0xc + add r1, r2, #0 + ldr r0, [r4, r0] + add r1, #0xa + add r2, #8 + bl FUN_02001300 + ldr r0, _02231468 ; =0x00000FC8 + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r0, _0223146C ; =0x00000EE8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _02231470 ; =0x000005DC + bl FUN_020054C8 + mov r0, #4 + str r0, [r4, #0x2c] + mov r0, #0xfe + lsl r0, r0, #4 + ldr r3, [r4, r0] + add r0, #0x38 + ldrh r2, [r3, #6] + ldrh r1, [r3, #4] + add r0, r4, r0 + add r1, r2, r1 + ldrh r2, [r3, #0xa] + ldrh r3, [r3, #8] + bl MOD80_022346F0 + b _0223145C +_0223138C: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r2, [r4, r0] + sub r0, #0xc + add r1, r2, #0 + ldr r0, [r4, r0] + add r1, #0xa + add r2, #8 + bl FUN_02001300 + ldr r0, _02231468 ; =0x00000FC8 + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r0, _02231474 ; =0x00000ED8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _0223146C ; =0x00000EE8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _02231474 ; =0x00000ED8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _0223146C ; =0x00000EE8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _02231478 ; =0x00000B22 + strh r5, [r4, r0] + mov r0, #0 + str r0, [r4, #0x2c] + ldr r0, _02231470 ; =0x000005DC + bl FUN_020054C8 + ldr r0, _0223147C ; =0x00000F18 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #0 + str r0, [sp] + ldr r0, _02231480 ; =0x00010200 + ldr r1, _02231484 ; =0x00000B38 + str r0, [sp, #4] + ldr r0, _0223147C ; =0x00000F18 + ldr r1, [r4, r1] + add r0, r4, r0 + add r2, r5, #0 + mov r3, #2 + bl MOD80_02233EA4 + add r0, r5, #0 + mov r1, #0x12 + bl FUN_02068678 + mov r1, #0xfe + lsl r1, r1, #4 + ldr r2, [r4, r1] + str r0, [r2, #0x20] + ldr r3, [r4, r1] + add r1, #0x38 + add r0, r4, r1 + ldrh r2, [r3, #6] + ldrh r1, [r3, #4] + add r1, r2, r1 + ldrh r2, [r3, #0xa] + ldrh r3, [r3, #8] + bl MOD80_022346F0 + mov r1, #0xfe + lsl r1, r1, #4 + ldr r1, [r4, r1] + ldr r0, _02231478 ; =0x00000B22 + ldr r1, [r1, #0x20] + add r0, r4, r0 + bl MOD80_022338E0 + cmp r0, #0 + beq _0223145C + ldr r0, _02231488 ; =0x00000F38 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _02231480 ; =0x00010200 + ldr r2, _0223148C ; =0x00000B34 + str r0, [sp, #8] + ldr r1, [r4, r2] + sub r2, #0x10 + ldr r0, _02231488 ; =0x00000F38 + ldrsb r2, [r4, r2] + add r0, r4, r0 + mov r3, #1 + bl MOD80_02233EF4 +_0223145C: + mov r0, #3 + add sp, #0xc + pop {r4, r5, pc} + nop +_02231464: .word 0x00000FD4 +_02231468: .word 0x00000FC8 +_0223146C: .word 0x00000EE8 +_02231470: .word 0x000005DC +_02231474: .word 0x00000ED8 +_02231478: .word 0x00000B22 +_0223147C: .word 0x00000F18 +_02231480: .word 0x00010200 +_02231484: .word 0x00000B38 +_02231488: .word 0x00000F38 +_0223148C: .word 0x00000B34 + thumb_func_end MOD80_0223131C + + thumb_func_start MOD80_02231490 +MOD80_02231490: ; 0x02231490 + push {r3, r4, lr} + sub sp, #0x14 + ldr r1, _022314E0 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0xa + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #9 + bl MOD80_0222E6DC + mov r0, #0xa + str r0, [sp] + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _022314E4 ; =0x0000013A + ldr r1, _022314E8 ; =0x00000ED8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #0x15 + bl FUN_02019064 + ldr r0, _022314E8 ; =0x00000ED8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #3 + add sp, #0x14 + pop {r3, r4, pc} + nop +_022314E0: .word 0x00000F0F +_022314E4: .word 0x0000013A +_022314E8: .word 0x00000ED8 + thumb_func_end MOD80_02231490 + + thumb_func_start MOD80_022314EC +MOD80_022314EC: ; 0x022314EC + push {r4, lr} + ldr r1, _02231514 ; =0x00000FC8 + add r4, r0, #0 + ldr r2, _02231518 ; =0x00000B34 + add r0, r4, r1 + sub r1, #0xf0 + ldr r2, [r4, r2] + add r1, r4, r1 + bl MOD80_02234560 + ldr r1, _0223151C ; =0x00000FD4 + str r0, [r4, r1] + add r0, r4, #0 + ldr r1, _02231520 ; =0x0000FFFF + add r0, #0xb0 + strh r1, [r0] + mov r0, #0xa + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_02231514: .word 0x00000FC8 +_02231518: .word 0x00000B34 +_0223151C: .word 0x00000FD4 +_02231520: .word 0x0000FFFF + thumb_func_end MOD80_022314EC + + thumb_func_start MOD80_02231524 +MOD80_02231524: ; 0x02231524 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, _022315F0 ; =0x00000FD4 + add r1, r5, #0 + ldr r0, [r5, r0] + add r1, #0xb0 + bl MOD80_02234698 + add r4, r0, #0 + cmp r4, #2 + bhi _0223154A + cmp r4, #0 + beq _0223158E + cmp r4, #1 + beq _0223158E + cmp r4, #2 + beq _0223158E + b _022315EA +_0223154A: + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + bne _022315EA + ldr r0, _022315F0 ; =0x00000FD4 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, _022315F4 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _022315F8 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _022315FC ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200D0E0 + ldr r0, _022315F8 ; =0x00000ED8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _02231600 ; =0x000005DC + bl FUN_020054C8 + mov r0, #0 + str r0, [r5, #0x2c] + b _022315EA +_0223158E: + ldr r0, _022315F0 ; =0x00000FD4 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, _022315F4 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _022315F8 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _022315F8 ; =0x00000ED8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _02231600 ; =0x000005DC + bl FUN_020054C8 + ldr r0, _02231604 ; =0x00000B24 + add r1, r4, #1 + strb r1, [r5, r0] + ldr r0, _02231608 ; =0x00000F38 + mov r1, #0 + add r0, r5, r0 + str r1, [r5, #0x2c] + bl FUN_02019620 + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _0223160C ; =0x00010200 + ldr r2, _02231610 ; =0x00000B34 + str r0, [sp, #8] + ldr r1, [r5, r2] + sub r2, #0x10 + ldr r0, _02231608 ; =0x00000F38 + ldrsb r2, [r5, r2] + add r0, r5, r0 + mov r3, #1 + bl MOD80_02233EF4 +_022315EA: + mov r0, #3 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_022315F0: .word 0x00000FD4 +_022315F4: .word 0x00000FC8 +_022315F8: .word 0x00000ED8 +_022315FC: .word 0x00000E98 +_02231600: .word 0x000005DC +_02231604: .word 0x00000B24 +_02231608: .word 0x00000F38 +_0223160C: .word 0x00010200 +_02231610: .word 0x00000B34 + thumb_func_end MOD80_02231524 + + thumb_func_start MOD80_02231614 +MOD80_02231614: ; 0x02231614 + push {r3, r4, lr} + sub sp, #0x14 + ldr r1, _02231664 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0xb + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #0xc + bl MOD80_0222E6DC + mov r0, #5 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + mov r0, #0xd + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _02231668 ; =0x0000013A + ldr r1, _0223166C ; =0x00000ED8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #0xf + bl FUN_02019064 + ldr r0, _0223166C ; =0x00000ED8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #3 + add sp, #0x14 + pop {r3, r4, pc} + nop +_02231664: .word 0x00000F0F +_02231668: .word 0x0000013A +_0223166C: .word 0x00000ED8 + thumb_func_end MOD80_02231614 + + thumb_func_start MOD80_02231670 +MOD80_02231670: ; 0x02231670 + push {r4, lr} + ldr r1, _02231698 ; =0x00000FC8 + add r4, r0, #0 + ldr r2, _0223169C ; =0x00000B34 + add r0, r4, r1 + sub r1, #0xf0 + ldr r2, [r4, r2] + add r1, r4, r1 + bl MOD80_022345D0 + ldr r1, _022316A0 ; =0x00000FD4 + str r0, [r4, r1] + add r0, r4, #0 + ldr r1, _022316A4 ; =0x0000FFFF + add r0, #0xb0 + strh r1, [r0] + mov r0, #0xd + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_02231698: .word 0x00000FC8 +_0223169C: .word 0x00000B34 +_022316A0: .word 0x00000FD4 +_022316A4: .word 0x0000FFFF + thumb_func_end MOD80_02231670 + + thumb_func_start MOD80_022316A8 +MOD80_022316A8: ; 0x022316A8 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + ldr r0, _0223176C ; =0x00000FD4 + add r1, r5, #0 + ldr r0, [r5, r0] + add r1, #0xb0 + bl MOD80_02234698 + add r4, r0, #0 + cmp r4, #0xc + beq _022316D0 + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + beq _022316D0 + add r0, r0, #1 + cmp r4, r0 + beq _02231766 + b _0223170C +_022316D0: + ldr r0, _0223176C ; =0x00000FD4 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, _02231770 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02231774 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _02231778 ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200D0E0 + ldr r0, _02231774 ; =0x00000ED8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _0223177C ; =0x000005DC + bl FUN_020054C8 + mov r0, #0 + str r0, [r5, #0x2c] + b _02231766 +_0223170C: + ldr r0, _0223176C ; =0x00000FD4 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, _02231770 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02231774 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _02231774 ; =0x00000ED8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _0223177C ; =0x000005DC + bl FUN_020054C8 + ldr r0, _02231780 ; =0x00000B22 + add r1, r4, #0 + add r0, r5, r0 + bl MOD80_02234640 + ldr r0, _02231784 ; =0x00000F58 + mov r1, #0 + add r0, r5, r0 + str r1, [r5, #0x2c] + bl FUN_02019620 + mov r0, #0 + str r0, [sp] + ldr r0, _02231788 ; =0x00010200 + ldr r1, _0223178C ; =0x00000B34 + str r0, [sp, #4] + ldr r0, _02231784 ; =0x00000F58 + ldr r1, [r5, r1] + add r0, r5, r0 + add r2, r4, #0 + mov r3, #2 + bl MOD80_02233F9C +_02231766: + mov r0, #3 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0223176C: .word 0x00000FD4 +_02231770: .word 0x00000FC8 +_02231774: .word 0x00000ED8 +_02231778: .word 0x00000E98 +_0223177C: .word 0x000005DC +_02231780: .word 0x00000B22 +_02231784: .word 0x00000F58 +_02231788: .word 0x00010200 +_0223178C: .word 0x00000B34 + thumb_func_end MOD80_022316A8 + + thumb_func_start MOD80_02231790 +MOD80_02231790: ; 0x02231790 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + ldr r2, _022317AC ; =0x0000020A + mov r1, #0xf + bl MOD80_0222E6A8 + ldr r1, _022317B0 ; =0x00000FCC + str r0, [r4, r1] + mov r0, #0x17 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + nop +_022317AC: .word 0x0000020A +_022317B0: .word 0x00000FCC + thumb_func_end MOD80_02231790 + + thumb_func_start MOD80_022317B4 +MOD80_022317B4: ; 0x022317B4 + push {r4, lr} + add r4, r0, #0 + ldr r0, _022317F4 ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _022317F0 + sub r1, r1, #1 + cmp r0, r1 + bne _022317D6 + mov r0, #0 + str r0, [r4, #0x2c] + b _022317F0 +_022317D6: + mov r0, #2 + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + add r0, r4, #0 + bl MOD80_02235C40 + mov r0, #0 + add r4, #0xc0 + str r0, [r4] +_022317F0: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_022317F4: .word 0x00000FCC + thumb_func_end MOD80_022317B4 + + thumb_func_start MOD80_022317F8 +MOD80_022317F8: ; 0x022317F8 + mov r1, #1 + str r1, [r0, #0x2c] + mov r0, #3 + bx lr + thumb_func_end MOD80_022317F8 + + thumb_func_start MOD80_02231800 +MOD80_02231800: ; 0x02231800 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _02231824 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0x8e + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #1 + bl MOD80_0222E6DC + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02231824: .word 0x00000F0F + thumb_func_end MOD80_02231800 + + thumb_func_start MOD80_02231828 +MOD80_02231828: ; 0x02231828 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02231842 + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_02231842: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02231828 + + thumb_func_start MOD80_02231848 +MOD80_02231848: ; 0x02231848 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02231874 + ldr r0, _02231878 ; =0x00000FDC + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + ldr r1, [r4, r0] + cmp r1, #0x2d + ble _02231874 + mov r1, #0 + str r1, [r4, r0] + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_02231874: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_02231878: .word 0x00000FDC + thumb_func_end MOD80_02231848 + + thumb_func_start MOD80_0223187C +MOD80_0223187C: ; 0x0223187C + push {r4, r5, lr} + sub sp, #0xc + add r4, r2, #0 + ldr r2, _022318C8 ; =0x00000B34 + add r5, r0, #0 + ldr r0, [r5, r2] + add r2, #0x18 + ldr r2, [r5, r2] + bl FUN_0200A8E0 + ldr r0, _022318CC ; =0x00000E98 + mov r1, #0xf + add r0, r5, r0 + bl FUN_02019620 + ldr r0, _022318CC ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r3, #0 + str r3, [sp] + str r4, [sp, #4] + ldr r0, _022318CC ; =0x00000E98 + ldr r2, _022318D0 ; =0x00000B4C + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + mov r1, #0x2e + lsl r1, r1, #6 + str r0, [r5, r1] + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_022318C8: .word 0x00000B34 +_022318CC: .word 0x00000E98 +_022318D0: .word 0x00000B4C + thumb_func_end MOD80_0223187C + + thumb_func_start MOD80_022318D4 +MOD80_022318D4: ; 0x022318D4 + push {r4, r5, r6, lr} + sub sp, #8 + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #0x3b + bl FUN_0200A914 + add r6, r0, #0 + mov r2, #0 + ldr r0, _022319B8 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r1, r6, #0 + add r3, r2, #0 + bl MOD80_02236D50 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + mov r1, #0x3d + bl FUN_0200A914 + add r6, r0, #0 + mov r2, #0 + ldr r0, _022319B8 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0x20 + add r1, r6, #0 + add r3, r2, #0 + bl MOD80_02236D50 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + mov r1, #0x3f + bl FUN_0200A914 + add r6, r0, #0 + mov r2, #0 + ldr r0, _022319B8 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0x40 + add r1, r6, #0 + add r3, r2, #0 + bl MOD80_02236D50 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + mov r1, #0x41 + bl FUN_0200A914 + add r6, r0, #0 + add r3, r5, #0 + add r3, #0x67 + ldrb r3, [r3] + mov r0, #0 + add r1, r6, #0 + add r2, r0, #0 + lsl r3, r3, #3 + bl FUN_02002F40 + add r2, r0, #0 + mov r3, #0 + ldr r0, _022319BC ; =0x00010200 + str r3, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0x60 + add r1, r6, #0 + bl MOD80_02236D50 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + mov r1, #0x42 + bl FUN_0200A914 + add r4, r0, #0 + add r3, r5, #0 + add r3, #0x77 + ldrb r3, [r3] + mov r0, #0 + add r1, r4, #0 + add r2, r0, #0 + lsl r3, r3, #3 + bl FUN_02002F40 + add r2, r0, #0 + mov r3, #0 + ldr r0, _022319BC ; =0x00010200 + str r3, [sp] + add r5, #0x70 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r4, #0 + bl MOD80_02236D50 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #8 + pop {r4, r5, r6, pc} + nop +_022319B8: .word 0x000F0200 +_022319BC: .word 0x00010200 + thumb_func_end MOD80_022318D4 + + thumb_func_start MOD80_022319C0 +MOD80_022319C0: ; 0x022319C0 + mov r2, #0 + ldrsh r3, [r0, r2] + ldrsh r2, [r1, r2] + cmp r3, r2 + bne _022319EC + mov r2, #2 + ldrsb r3, [r0, r2] + ldrsb r2, [r1, r2] + cmp r3, r2 + bne _022319EC + mov r2, #3 + ldrsb r3, [r0, r2] + ldrsb r2, [r1, r2] + cmp r3, r2 + bne _022319EC + mov r2, #4 + ldrsb r3, [r0, r2] + ldrsb r0, [r1, r2] + cmp r3, r0 + bne _022319EC + mov r0, #1 + bx lr +_022319EC: + mov r0, #0 + bx lr + thumb_func_end MOD80_022319C0 + + thumb_func_start MOD80_022319F0 +MOD80_022319F0: ; 0x022319F0 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD80_0223205C + ldr r0, [r4, #4] + bl MOD80_02231AB0 + add r0, r4, #0 + bl MOD80_02231BF4 + add r0, r4, #0 + bl MOD80_02231EA8 + add r0, r4, #0 + bl MOD80_02231CBC + ldr r0, [r4, #0x20] + cmp r0, #8 + bne _02231A30 + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + b _02231A46 +_02231A30: + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 +_02231A46: + add r1, r4, #0 + add r1, #0xb8 + ldrh r1, [r1] + add r0, r4, #0 + bl MOD80_02232D7C + add r0, r4, #0 + bl MOD80_02236D84 + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #2 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD80_022319F0 + + thumb_func_start MOD80_02231A64 +MOD80_02231A64: ; 0x02231A64 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222E79C + bl FUN_02033EEC + ldr r1, [r4, #0x2c] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _02231A80 ; =0x02237B04 + ldr r1, [r1, r2] + blx r1 + pop {r4, pc} + nop +_02231A80: .word 0x02237B04 + thumb_func_end MOD80_02231A64 + + thumb_func_start MOD80_02231A84 +MOD80_02231A84: ; 0x02231A84 + push {r4, lr} + add r4, r0, #0 + bl FUN_02033ED0 + add r0, r4, #0 + bl MOD80_02231E44 + add r0, r4, #0 + bl MOD80_022320E8 + add r0, r4, #0 + bl MOD80_0223200C + ldr r0, [r4, #4] + bl MOD80_02231BC8 + add r0, r4, #0 + bl MOD80_0222E7B0 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02231A84 + + thumb_func_start MOD80_02231AB0 +MOD80_02231AB0: ; 0x02231AB0 + push {r4, r5, lr} + sub sp, #0x9c + ldr r5, _02231BB0 ; =0x02237210 + add r3, sp, #0x8c + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _02231BB4 ; =0x02237288 + add r3, sp, #0x70 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _02231BB8 ; =0x022372A4 + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _02231BBC ; =0x0223726C + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #2 + bl FUN_02018744 + ldr r5, _02231BC0 ; =0x02237234 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _02231BC4 ; =0x02237250 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + str r0, [r3] + add r0, r4, #0 + mov r1, #5 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + add sp, #0x9c + pop {r4, r5, pc} + nop +_02231BB0: .word 0x02237210 +_02231BB4: .word 0x02237288 +_02231BB8: .word 0x022372A4 +_02231BBC: .word 0x0223726C +_02231BC0: .word 0x02237234 +_02231BC4: .word 0x02237250 + thumb_func_end MOD80_02231AB0 + + thumb_func_start MOD80_02231BC8 +MOD80_02231BC8: ; 0x02231BC8 + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD80_02231BC8 + + thumb_func_start MOD80_02231BF4 +MOD80_02231BF4: ; 0x02231BF4 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r4, [r5, #4] + mov r0, #0x60 + str r0, [sp] + mov r0, #0x3e + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x68 + mov r1, #2 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #1 + lsl r0, r0, #8 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + mov r0, #0x68 + mov r1, #5 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x3e + bl FUN_02002EEC + ldr r0, [r5] + ldr r0, [r0, #0x24] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CB00 + mov r0, #0 + str r0, [sp] + mov r0, #0xa + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0xc + add r2, r4, #0 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x18 + add r2, r4, #0 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x1d + add r2, r4, #0 + mov r3, #2 + bl FUN_020068C8 + add sp, #0x10 + pop {r3, r4, r5, pc} + thumb_func_end MOD80_02231BF4 + + thumb_func_start MOD80_02231CBC +MOD80_02231CBC: ; 0x02231CBC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x30 + mov r2, #0xcf + add r5, r0, #0 + lsl r2, r2, #4 + add r0, sp, #0 + add r1, r5, #0 + add r2, r5, r2 + mov r3, #1 + bl MOD80_0222E5E8 + add r0, r5, #0 + add r0, #0xba + ldrh r0, [r0] + lsl r1, r0, #2 + ldr r0, _02231E28 ; =0x022372C0 + ldrh r0, [r0, r1] + lsl r0, r0, #0xc + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xba + ldrh r0, [r0] + lsl r1, r0, #2 + ldr r0, _02231E2C ; =0x022372C2 + ldrh r0, [r0, r1] + lsl r0, r0, #0xc + str r0, [sp, #0xc] + add r0, sp, #0 + bl FUN_0201FE94 + ldr r1, _02231E30 ; =0x00000D5C + str r0, [r5, r1] + ldr r0, [r5, r1] + mov r1, #1 + bl FUN_020200BC + ldr r0, _02231E30 ; =0x00000D5C + mov r1, #4 + ldr r0, [r5, r0] + bl FUN_02020130 + ldr r0, _02231E30 ; =0x00000D5C + mov r1, #1 + ldr r0, [r5, r0] + bl FUN_02020238 + ldr r6, _02231E28 ; =0x022372C0 + mov r7, #0 + add r4, r5, #0 +_02231D1E: + ldrh r0, [r6] + lsl r0, r0, #0xc + str r0, [sp, #8] + ldrh r0, [r6, #2] + lsl r0, r0, #0xc + str r0, [sp, #0xc] + mov r0, #0x14 + str r0, [sp, #0x24] + add r0, sp, #0 + bl FUN_0201FE94 + ldr r1, _02231E34 ; =0x00000D64 + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + add r1, r7, #6 + bl FUN_02020130 + ldr r0, _02231E34 ; =0x00000D64 + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_02020238 + add r7, r7, #1 + add r6, r6, #4 + add r4, r4, #4 + cmp r7, #0x1e + blt _02231D1E + ldr r6, _02231E28 ; =0x022372C0 + mov r7, #0 + add r4, r5, #0 +_02231D5C: + ldrh r0, [r6] + add r0, r0, #4 + lsl r0, r0, #0xc + str r0, [sp, #8] + ldrh r0, [r6, #2] + add r0, r0, #6 + lsl r0, r0, #0xc + str r0, [sp, #0xc] + mov r0, #0xa + str r0, [sp, #0x24] + add r0, sp, #0 + bl FUN_0201FE94 + ldr r1, _02231E38 ; =0x00000DDC + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + mov r1, #0x28 + bl FUN_02020130 + ldr r0, _02231E38 ; =0x00000DDC + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_02020238 + add r7, r7, #1 + add r6, r6, #4 + add r4, r4, #4 + cmp r7, #0x1e + blt _02231D5C + ldr r6, _02231E28 ; =0x022372C0 + mov r7, #0 + add r4, r5, #0 +_02231D9E: + ldrh r0, [r6] + add r0, #0xc + lsl r0, r0, #0xc + str r0, [sp, #8] + ldrh r0, [r6, #2] + add r0, r0, #6 + lsl r0, r0, #0xc + str r0, [sp, #0xc] + mov r0, #0xa + str r0, [sp, #0x24] + add r0, sp, #0 + bl FUN_0201FE94 + ldr r1, _02231E3C ; =0x00000E54 + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + mov r1, #0x2a + bl FUN_02020130 + ldr r0, _02231E3C ; =0x00000E54 + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_02020238 + add r7, r7, #1 + add r6, r6, #4 + add r4, r4, #4 + cmp r7, #6 + blt _02231D9E + mov r7, #0xe9 + ldr r4, _02231E40 ; =0x02237208 + mov r6, #0 + lsl r7, r7, #4 +_02231DE2: + ldrh r0, [r4] + lsl r0, r0, #0xc + str r0, [sp, #8] + ldrh r0, [r4, #2] + lsl r0, r0, #0xc + str r0, [sp, #0xc] + add r0, sp, #0 + bl FUN_0201FE94 + mov r1, #0xe9 + lsl r1, r1, #4 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0xe9 + lsl r0, r0, #4 + add r1, r6, #0 + ldr r0, [r5, r0] + add r1, #0x26 + bl FUN_02020130 + ldr r0, [r5, r7] + mov r1, #1 + bl FUN_02020238 + add r6, r6, #1 + add r4, r4, #4 + add r5, r5, #4 + cmp r6, #2 + blt _02231DE2 + add sp, #0x30 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02231E28: .word 0x022372C0 +_02231E2C: .word 0x022372C2 +_02231E30: .word 0x00000D5C +_02231E34: .word 0x00000D64 +_02231E38: .word 0x00000DDC +_02231E3C: .word 0x00000E54 +_02231E40: .word 0x02237208 + thumb_func_end MOD80_02231CBC + + thumb_func_start MOD80_02231E44 +MOD80_02231E44: ; 0x02231E44 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + mov r7, #0xe9 + mov r6, #0 + add r4, r5, #0 + lsl r7, r7, #4 +_02231E50: + ldr r0, [r4, r7] + bl FUN_0201FFC8 + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #2 + blt _02231E50 + ldr r0, _02231E98 ; =0x00000D5C + ldr r0, [r5, r0] + bl FUN_0201FFC8 + ldr r7, _02231E9C ; =0x00000DDC + mov r6, #0 + add r4, r5, #0 +_02231E6C: + ldr r0, _02231EA0 ; =0x00000D64 + ldr r0, [r4, r0] + bl FUN_0201FFC8 + ldr r0, [r4, r7] + bl FUN_0201FFC8 + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #0x1e + blt _02231E6C + ldr r6, _02231EA4 ; =0x00000E54 + mov r4, #0 +_02231E86: + ldr r0, [r5, r6] + bl FUN_0201FFC8 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _02231E86 + pop {r3, r4, r5, r6, r7, pc} + nop +_02231E98: .word 0x00000D5C +_02231E9C: .word 0x00000DDC +_02231EA0: .word 0x00000D64 +_02231EA4: .word 0x00000E54 + thumb_func_end MOD80_02231E44 + + thumb_func_start MOD80_02231EA8 +MOD80_02231EA8: ; 0x02231EA8 + push {r3, r4, lr} + sub sp, #0x14 + mov r3, #1 + add r4, r0, #0 + str r3, [sp] + mov r0, #0x1c + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + ldr r1, _02231FDC ; =0x00000EB8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + bl FUN_02019064 + ldr r0, _02231FDC ; =0x00000EB8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r2, #0 + mov r1, #0xb5 + ldr r0, _02231FE0 ; =0x000F0E00 + str r2, [sp] + str r0, [sp, #4] + ldr r0, _02231FDC ; =0x00000EB8 + lsl r1, r1, #4 + ldr r1, [r4, r1] + add r0, r4, r0 + mov r3, #1 + bl MOD80_02236D50 + mov r1, #3 + str r1, [sp] + mov r0, #0xd + str r0, [sp, #4] + str r1, [sp, #8] + str r0, [sp, #0xc] + mov r0, #0x60 + ldr r1, _02231FE4 ; =0x00000EC8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #5 + bl FUN_02019064 + ldr r0, _02231FE4 ; =0x00000EC8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + ldr r0, _02231FE4 ; =0x00000EC8 + add r0, r4, r0 + bl FUN_020191D0 + mov r0, #0x15 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r3, #2 + ldr r1, _02231FE8 ; =0x00000E98 + str r3, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + add r0, #0xfc + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + bl FUN_02019064 + ldr r0, _02231FE8 ; =0x00000E98 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _02231FEC ; =0x0000013F + ldr r1, _02231FF0 ; =0x00000FB8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + ldr r0, _02231FF0 ; =0x00000FB8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #0x15 + str r0, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r0, _02231FF4 ; =0x00000165 + ldr r1, _02231FF8 ; =0x00000EE8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #1 + mov r3, #0x19 + bl FUN_02019064 + ldr r0, _02231FF8 ; =0x00000EE8 + mov r1, #6 + add r0, r4, r0 + bl FUN_02019620 + mov r3, #1 + ldr r0, _02231FFC ; =0x00010306 + str r3, [sp] + str r0, [sp, #4] + ldr r1, _02232000 ; =0x00000B48 + ldr r0, _02231FF8 ; =0x00000EE8 + ldr r1, [r4, r1] + add r0, r4, r0 + mov r2, #0 + bl MOD80_02236D50 + mov r1, #0xd + str r1, [sp] + mov r0, #0xa + str r0, [sp, #4] + mov r0, #6 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, _02232004 ; =0x00000171 + ldr r1, _02232008 ; =0x00000ED8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #0x15 + bl FUN_02019064 + add sp, #0x14 + pop {r3, r4, pc} + .align 2, 0 +_02231FDC: .word 0x00000EB8 +_02231FE0: .word 0x000F0E00 +_02231FE4: .word 0x00000EC8 +_02231FE8: .word 0x00000E98 +_02231FEC: .word 0x0000013F +_02231FF0: .word 0x00000FB8 +_02231FF4: .word 0x00000165 +_02231FF8: .word 0x00000EE8 +_02231FFC: .word 0x00010306 +_02232000: .word 0x00000B48 +_02232004: .word 0x00000171 +_02232008: .word 0x00000ED8 + thumb_func_end MOD80_02231EA8 + + thumb_func_start MOD80_0223200C +MOD80_0223200C: ; 0x0223200C + push {r4, lr} + add r4, r0, #0 + ldr r0, _02232044 ; =0x00000FB8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _02232048 ; =0x00000EE8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _0223204C ; =0x00000ED8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _02232050 ; =0x00000E98 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _02232054 ; =0x00000EC8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _02232058 ; =0x00000EB8 + add r0, r4, r0 + bl FUN_02019178 + pop {r4, pc} + nop +_02232044: .word 0x00000FB8 +_02232048: .word 0x00000EE8 +_0223204C: .word 0x00000ED8 +_02232050: .word 0x00000E98 +_02232054: .word 0x00000EC8 +_02232058: .word 0x00000EB8 + thumb_func_end MOD80_0223200C + + thumb_func_start MOD80_0223205C +MOD80_0223205C: ; 0x0223205C + push {r4, lr} + add r4, r0, #0 + mov r0, #0x12 + mov r1, #0x3e + bl FUN_020219F4 + ldr r1, _022320D4 ; =0x00000B44 + str r0, [r4, r1] + mov r0, #0xb4 + mov r1, #0x3e + bl FUN_020219F4 + ldr r1, _022320D8 ; =0x00000B4C + str r0, [r4, r1] + ldr r0, [r4, #0x24] + cmp r0, #5 + bne _02232090 + sub r1, #0x18 + ldr r0, [r4, r1] + mov r1, #0x15 + bl FUN_0200A914 + mov r1, #0xb5 + lsl r1, r1, #4 + str r0, [r4, r1] + b _022320A4 +_02232090: + cmp r0, #6 + bne _022320A4 + sub r1, #0x18 + ldr r0, [r4, r1] + mov r1, #0x11 + bl FUN_0200A914 + mov r1, #0xb5 + lsl r1, r1, #4 + str r0, [r4, r1] +_022320A4: + ldr r0, _022320DC ; =0x00000B34 + mov r1, #0x67 + ldr r0, [r4, r0] + bl FUN_0200A914 + ldr r1, _022320E0 ; =0x00000B48 + str r0, [r4, r1] + add r0, r4, #0 + add r0, #0xba + ldrh r0, [r0] + cmp r0, #0x1e + bne _022320C4 + add r0, r4, #0 + mov r1, #0 + add r0, #0xba + strh r1, [r0] +_022320C4: + mov r0, #0x3e + mov r1, #0x78 + bl FUN_02016998 + ldr r1, _022320E4 ; =0x00001004 + str r0, [r4, r1] + pop {r4, pc} + nop +_022320D4: .word 0x00000B44 +_022320D8: .word 0x00000B4C +_022320DC: .word 0x00000B34 +_022320E0: .word 0x00000B48 +_022320E4: .word 0x00001004 + thumb_func_end MOD80_0223205C + + thumb_func_start MOD80_022320E8 +MOD80_022320E8: ; 0x022320E8 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02232118 ; =0x00001004 + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, _0223211C ; =0x00000B44 + ldr r0, [r4, r0] + bl FUN_02021A20 + ldr r0, _02232120 ; =0x00000B4C + ldr r0, [r4, r0] + bl FUN_02021A20 + ldr r0, _02232124 ; =0x00000B48 + ldr r0, [r4, r0] + bl FUN_02021A20 + mov r0, #0xb5 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02021A20 + pop {r4, pc} + .align 2, 0 +_02232118: .word 0x00001004 +_0223211C: .word 0x00000B44 +_02232120: .word 0x00000B4C +_02232124: .word 0x00000B48 + thumb_func_end MOD80_022320E8 + + thumb_func_start MOD80_02232128 +MOD80_02232128: ; 0x02232128 + push {r4, lr} + add r4, r0, #0 + bl FUN_0200E308 + cmp r0, #0 + beq _02232138 + mov r0, #1 + str r0, [r4, #0x2c] +_02232138: + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02232128 + + thumb_func_start MOD80_0223213C +MOD80_0223213C: ; 0x0223213C + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + bl MOD80_0223237C + ldr r0, [r5, #0x24] + cmp r0, #5 + beq _0223214E + b _02232250 +_0223214E: + ldr r0, _02232370 ; =0x021C48B8 + ldr r2, [r0, #0x48] + mov r0, #2 + tst r0, r2 + beq _02232168 + add r0, r5, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + mov r0, #2 + str r0, [r5, #0x2c] + b _02232368 +_02232168: + mov r1, #1 + add r0, r2, #0 + tst r0, r1 + beq _022321B6 + add r0, r5, #0 + add r0, #0xba + ldrh r0, [r0] + cmp r0, #0x1e + bne _0223218E + add r0, r5, #0 + mov r2, #0 + bl MOD80_0222E7A8 + mov r0, #2 + str r0, [r5, #0x2c] + ldr r0, _02232374 ; =0x000005DC + bl FUN_020054C8 + b _02232368 +_0223218E: + cmp r0, #0x1f + beq _022321B6 + ldr r0, _02232374 ; =0x000005DC + bl FUN_020054C8 + add r2, r5, #0 + add r3, r5, #0 + ldr r1, [r5] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02233054 + cmp r0, #1 + beq _022321B8 + cmp r0, #2 + beq _02232232 +_022321B6: + b _02232368 +_022321B8: + add r2, r5, #0 + add r3, r5, #0 + ldr r1, [r5] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02232FF8 + cmp r0, #0 + beq _02232214 + add r2, r5, #0 + add r3, r5, #0 + ldr r1, [r5] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02232FB8 + add r2, r0, #0 + mov r0, #0xb3 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200ACF8 + ldr r0, _02232378 ; =0x00000F0F + mov r3, #0 + str r0, [sp] + add r0, r5, #0 + mov r1, #0x16 + mov r2, #1 + str r3, [sp, #4] + bl MOD80_02232B34 + add r0, r5, #0 + mov r1, #3 + mov r2, #7 + bl MOD80_0222E6DC + b _02232368 +_02232214: + ldr r0, _02232378 ; =0x00000F0F + mov r2, #1 + str r0, [sp] + add r0, r5, #0 + mov r1, #0x1a + mov r3, #0 + str r2, [sp, #4] + bl MOD80_02232B34 + add r0, r5, #0 + mov r1, #4 + mov r2, #1 + bl MOD80_0222E6DC + b _02232368 +_02232232: + ldr r0, _02232378 ; =0x00000F0F + mov r2, #1 + str r0, [sp] + add r0, r5, #0 + mov r1, #0x1b + mov r3, #0 + str r2, [sp, #4] + bl MOD80_02232B34 + add r0, r5, #0 + mov r1, #4 + mov r2, #1 + bl MOD80_0222E6DC + b _02232368 +_02232250: + cmp r0, #6 + bne _022322BA + ldr r0, _02232370 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #2 + tst r0, r1 + beq _02232274 + add r0, r5, #0 + mov r1, #3 + mov r2, #0 + bl MOD80_0222E7A8 + mov r0, #2 + str r0, [r5, #0x2c] + ldr r0, _02232374 ; =0x000005DC + bl FUN_020054C8 + b _02232368 +_02232274: + mov r0, #1 + tst r0, r1 + beq _02232368 + add r0, r5, #0 + add r0, #0xba + ldrh r3, [r0] + cmp r3, #0x1e + bne _0223229A + add r0, r5, #0 + mov r1, #3 + mov r2, #0 + bl MOD80_0222E7A8 + mov r0, #2 + str r0, [r5, #0x2c] + ldr r0, _02232374 ; =0x000005DC + bl FUN_020054C8 + b _02232368 +_0223229A: + cmp r3, #0x1f + beq _02232368 + add r2, r5, #0 + ldr r1, [r5] + add r2, #0xb8 + ldr r0, [r1, #8] + ldrh r2, [r2] + ldr r1, [r1, #0xc] + bl MOD80_02233054 + cmp r0, #0 + beq _02232362 + cmp r0, #1 + beq _022322BC + cmp r0, #2 + beq _02232362 +_022322BA: + b _02232368 +_022322BC: + add r2, r5, #0 + add r3, r5, #0 + ldr r1, [r5] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02232FB8 + add r2, r5, #0 + add r2, #0xc4 + mov r1, #0xba + ldr r3, [r2] + mov r2, #0x49 + lsl r1, r1, #2 + lsl r2, r2, #2 + add r1, r5, r1 + mul r2, r3 + add r1, r1, r2 + add r4, r0, #0 + bl MOD80_022330E4 + cmp r0, #0 + beq _0223235A + add r2, r5, #0 + add r3, r5, #0 + ldr r1, [r5] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02232FF8 + cmp r0, #0 + beq _0223233C + mov r0, #0xb3 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + add r2, r4, #0 + bl FUN_0200ACF8 + ldr r0, _02232378 ; =0x00000F0F + mov r3, #0 + str r0, [sp] + add r0, r5, #0 + mov r1, #0x12 + mov r2, #1 + str r3, [sp, #4] + bl MOD80_02232B34 + add r0, r5, #0 + mov r1, #3 + mov r2, #9 + bl MOD80_0222E6DC + ldr r0, _02232374 ; =0x000005DC + bl FUN_020054C8 + b _02232368 +_0223233C: + ldr r0, _02232378 ; =0x00000F0F + mov r2, #1 + str r0, [sp] + add r0, r5, #0 + mov r1, #0x1a + mov r3, #0 + str r2, [sp, #4] + bl MOD80_02232B34 + add r0, r5, #0 + mov r1, #4 + mov r2, #1 + bl MOD80_0222E6DC + b _02232368 +_0223235A: + ldr r0, _02232374 ; =0x000005DC + bl FUN_020054C8 + b _02232368 +_02232362: + ldr r0, _02232374 ; =0x000005DC + bl FUN_020054C8 +_02232368: + mov r0, #3 + add sp, #8 + pop {r3, r4, r5, pc} + nop +_02232370: .word 0x021C48B8 +_02232374: .word 0x000005DC +_02232378: .word 0x00000F0F + thumb_func_end MOD80_0223213C + + thumb_func_start MOD80_0223237C +MOD80_0223237C: ; 0x0223237C + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, _02232448 ; =0x021C48B8 + mov r4, #0 + ldr r0, [r0, #0x48] + mov r2, #0x40 + add r1, r4, #0 + tst r2, r0 + beq _02232392 + mov r1, #1 + b _022323AE +_02232392: + mov r2, #0x80 + tst r2, r0 + beq _0223239C + mov r1, #2 + b _022323AE +_0223239C: + mov r2, #0x20 + tst r2, r0 + beq _022323A6 + mov r1, #3 + b _022323AE +_022323A6: + mov r2, #0x10 + tst r0, r2 + beq _022323AE + mov r1, #4 +_022323AE: + cmp r1, #0 + beq _022323FE + add r0, r5, #0 + add r0, #0xba + ldrh r0, [r0] + ldr r3, _0223244C ; =0x02237340 + sub r2, r1, #1 + lsl r6, r0, #2 + add r1, r3, r6 + ldrb r2, [r2, r1] + cmp r2, r0 + beq _022323FE + cmp r2, #0x63 + beq _022323CE + cmp r2, #0x65 + bne _022323F6 +_022323CE: + add r0, r5, #0 + add r0, #0xb8 + ldrh r0, [r0] + mov r1, #0x13 + sub r2, #0x64 + bl MOD80_02232460 + add r1, r5, #0 + add r1, #0xb8 + strh r0, [r1] + add r1, r5, #0 + add r1, #0xb8 + ldrh r1, [r1] + add r0, r5, #0 + bl MOD80_02232D7C + ldr r0, _02232450 ; =0x000005DC + bl FUN_020054C8 + b _022323FE +_022323F6: + add r0, r5, #0 + add r0, #0xba + mov r4, #1 + strh r2, [r0] +_022323FE: + cmp r4, #0 + beq _02232420 + ldr r0, _02232450 ; =0x000005DC + bl FUN_020054C8 + add r0, r5, #0 + add r0, #0xba + ldrh r0, [r0] + ldr r1, _02232454 ; =0x022372C0 + ldr r2, _02232458 ; =0x022372C2 + lsl r3, r0, #2 + ldr r0, _0223245C ; =0x00000D5C + ldrh r1, [r1, r3] + ldrh r2, [r2, r3] + ldr r0, [r5, r0] + bl MOD80_0222E6E4 +_02232420: + add r0, r5, #0 + add r0, #0xba + ldrh r0, [r0] + cmp r0, #0x1f + beq _0223242E + cmp r0, #5 + bhi _0223243A +_0223242E: + ldr r0, _0223245C ; =0x00000D5C + mov r1, #0 + ldr r0, [r5, r0] + bl FUN_02020238 + pop {r4, r5, r6, pc} +_0223243A: + ldr r0, _0223245C ; =0x00000D5C + mov r1, #1 + ldr r0, [r5, r0] + bl FUN_02020238 + pop {r4, r5, r6, pc} + nop +_02232448: .word 0x021C48B8 +_0223244C: .word 0x02237340 +_02232450: .word 0x000005DC +_02232454: .word 0x022372C0 +_02232458: .word 0x022372C2 +_0223245C: .word 0x00000D5C + thumb_func_end MOD80_0223237C + + thumb_func_start MOD80_02232460 +MOD80_02232460: ; 0x02232460 + add r0, r0, r2 + bpl _02232468 + sub r0, r1, #1 + bx lr +_02232468: + cmp r0, r1 + bne _0223246E + mov r0, #0 +_0223246E: + bx lr + thumb_func_end MOD80_02232460 + + thumb_func_start MOD80_02232470 +MOD80_02232470: ; 0x02232470 + push {r3, r4, lr} + sub sp, #0x14 + add r4, r0, #0 + mov r0, #0 + add r2, sp, #8 + strb r0, [r2, #8] + mov r0, #1 + strb r0, [r2, #9] + mov r0, #3 + strb r0, [r2, #0xa] + ldrb r3, [r2, #0xb] + mov r1, #0xf + bic r3, r1 + strb r3, [r2, #0xb] + ldrb r3, [r2, #0xb] + mov r1, #0x30 + bic r3, r1 + strb r3, [r2, #0xb] + ldrb r3, [r2, #0xb] + mov r1, #0xc0 + bic r3, r1 + mov r1, #0x3e + strb r3, [r2, #0xb] + bl FUN_02012838 + ldr r1, _02232510 ; =0x00000FC8 + mov r2, #0x5e + str r0, [r4, r1] + ldr r0, [r4, r1] + ldr r1, _02232514 ; =0x00000B34 + mov r3, #1 + ldr r1, [r4, r1] + bl FUN_02012880 + ldr r0, _02232510 ; =0x00000FC8 + ldr r1, _02232514 ; =0x00000B34 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + mov r2, #0x5f + mov r3, #2 + bl FUN_02012880 + ldr r0, _02232510 ; =0x00000FC8 + ldr r1, _02232514 ; =0x00000B34 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + mov r2, #0x60 + mov r3, #3 + bl FUN_02012880 + ldr r0, _02232510 ; =0x00000FC8 + mov r2, #0x1f + ldr r1, [r4, r0] + sub r0, #0xf0 + str r1, [sp, #8] + add r0, r4, r0 + mov r1, #1 + mov r3, #0xb + str r0, [sp, #0xc] + bl FUN_0200CCA4 + mov r0, #0x3e + str r0, [sp] + mov r0, #2 + mov r2, #0 + str r0, [sp, #4] + add r0, sp, #8 + mov r1, #9 + add r3, r2, #0 + bl FUN_02001C14 + mov r1, #0xfd + lsl r1, r1, #4 + str r0, [r4, r1] + mov r0, #8 + str r0, [r4, #0x2c] + mov r0, #3 + add sp, #0x14 + pop {r3, r4, pc} + nop +_02232510: .word 0x00000FC8 +_02232514: .word 0x00000B34 + thumb_func_end MOD80_02232470 + + thumb_func_start MOD80_02232518 +MOD80_02232518: ; 0x02232518 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02001C78 + cmp r0, #3 + bhi _0223253C + cmp r0, #1 + blo _0223253A + beq _02232546 + cmp r0, #2 + beq _02232574 + cmp r0, #3 + beq _0223262E +_0223253A: + b _0223265A +_0223253C: + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _0223262E + b _0223265A +_02232546: + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _02232660 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02232664 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + mov r0, #2 + str r0, [r5, #0x2c] + add r0, r5, #0 + mov r1, #8 + mov r2, #5 + bl MOD80_0222E7A8 + b _0223265A +_02232574: + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _02232660 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02232664 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + add r2, r5, #0 + add r3, r5, #0 + ldr r1, [r5] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02232FB8 + bl MOD80_02233018 + cmp r0, #0 + beq _022325CE + ldr r0, _02232668 ; =0x00000F0F + mov r2, #1 + str r0, [sp] + add r0, r5, #0 + mov r1, #0x25 + mov r3, #0 + str r2, [sp, #4] + bl MOD80_02232B34 + add r0, r5, #0 + mov r1, #4 + mov r2, #1 + bl MOD80_0222E6DC + b _0223265A +_022325CE: + add r0, r5, #0 + add r0, #0xb8 + ldrh r0, [r0] + mov r4, #0 + bl MOD80_02232FAC + cmp r0, #0 + beq _022325FE + add r1, r5, #0 + ldr r0, [r5] + add r1, #0xba + ldrh r1, [r1] + ldr r0, [r0, #8] + bl FUN_0206B9B0 + mov r1, #0xa1 + add r2, r4, #0 + bl FUN_020671BC + cmp r0, #0 + beq _022325FE + mov r0, #0xe + mov r4, #1 + str r0, [r5, #0x2c] +_022325FE: + cmp r4, #0 + bne _0223265A + add r2, r5, #0 + add r3, r5, #0 + ldr r1, [r5] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02232FB8 + add r1, r5, #0 + add r1, #0xbc + str r0, [r1] + mov r0, #2 + str r0, [r5, #0x2c] + add r0, r5, #0 + mov r1, #6 + mov r2, #0 + bl MOD80_0222E7A8 + b _0223265A +_0223262E: + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _02232660 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02232664 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _0223266C ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200D0E0 + mov r0, #1 + str r0, [r5, #0x2c] +_0223265A: + mov r0, #3 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_02232660: .word 0x00000FC8 +_02232664: .word 0x00000ED8 +_02232668: .word 0x00000F0F +_0223266C: .word 0x00000E98 + thumb_func_end MOD80_02232518 + + thumb_func_start MOD80_02232670 +MOD80_02232670: ; 0x02232670 + push {r3, r4, lr} + sub sp, #0x14 + add r4, r0, #0 + mov r0, #0 + add r2, sp, #8 + strb r0, [r2, #8] + mov r0, #1 + strb r0, [r2, #9] + mov r0, #3 + strb r0, [r2, #0xa] + ldrb r3, [r2, #0xb] + mov r1, #0xf + bic r3, r1 + strb r3, [r2, #0xb] + ldrb r3, [r2, #0xb] + mov r1, #0x30 + bic r3, r1 + strb r3, [r2, #0xb] + ldrb r3, [r2, #0xb] + mov r1, #0xc0 + bic r3, r1 + mov r1, #0x3e + strb r3, [r2, #0xb] + bl FUN_02012838 + ldr r1, _02232710 ; =0x00000FC8 + mov r2, #0x54 + str r0, [r4, r1] + ldr r0, [r4, r1] + ldr r1, _02232714 ; =0x00000B34 + mov r3, #1 + ldr r1, [r4, r1] + bl FUN_02012880 + ldr r0, _02232710 ; =0x00000FC8 + ldr r1, _02232714 ; =0x00000B34 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + mov r2, #0x55 + mov r3, #2 + bl FUN_02012880 + ldr r0, _02232710 ; =0x00000FC8 + ldr r1, _02232714 ; =0x00000B34 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + mov r2, #0x56 + mov r3, #3 + bl FUN_02012880 + ldr r0, _02232710 ; =0x00000FC8 + mov r2, #0x1f + ldr r1, [r4, r0] + sub r0, #0xf0 + str r1, [sp, #8] + add r0, r4, r0 + mov r1, #0 + mov r3, #0xb + str r0, [sp, #0xc] + bl FUN_0200CCA4 + mov r0, #0x3e + str r0, [sp] + mov r0, #2 + mov r2, #0 + str r0, [sp, #4] + add r0, sp, #8 + mov r1, #9 + add r3, r2, #0 + bl FUN_02001C14 + mov r1, #0xfd + lsl r1, r1, #4 + str r0, [r4, r1] + mov r0, #0xa + str r0, [r4, #0x2c] + mov r0, #3 + add sp, #0x14 + pop {r3, r4, pc} + nop +_02232710: .word 0x00000FC8 +_02232714: .word 0x00000B34 + thumb_func_end MOD80_02232670 + + thumb_func_start MOD80_02232718 +MOD80_02232718: ; 0x02232718 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02001C78 + cmp r0, #3 + bhi _0223273C + cmp r0, #1 + blo _0223273A + beq _02232746 + cmp r0, #2 + beq _02232774 + cmp r0, #3 + beq _0223280A +_0223273A: + b _02232836 +_0223273C: + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _0223280A + b _02232836 +_02232746: + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _0223283C ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02232840 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + mov r0, #2 + str r0, [r5, #0x2c] + add r0, r5, #0 + mov r1, #8 + mov r2, #6 + bl MOD80_0222E7A8 + b _02232836 +_02232774: + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _0223283C ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02232840 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + add r2, r5, #0 + add r3, r5, #0 + ldr r1, [r5] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02232FB8 + bl MOD80_02233018 + cmp r0, #0 + beq _022327CE + ldr r0, _02232844 ; =0x00000F0F + mov r2, #1 + str r0, [sp] + add r0, r5, #0 + mov r1, #0x25 + mov r3, #0 + str r2, [sp, #4] + bl MOD80_02232B34 + add r0, r5, #0 + mov r1, #4 + mov r2, #1 + bl MOD80_0222E6DC + b _02232836 +_022327CE: + add r0, r5, #0 + add r0, #0xb8 + ldrh r0, [r0] + mov r4, #0 + bl MOD80_02232FAC + cmp r0, #0 + beq _022327FE + add r1, r5, #0 + ldr r0, [r5] + add r1, #0xba + ldrh r1, [r1] + ldr r0, [r0, #8] + bl FUN_0206B9B0 + mov r1, #0xa1 + add r2, r4, #0 + bl FUN_020671BC + cmp r0, #0 + beq _022327FE + mov r0, #0xb + mov r4, #1 + str r0, [r5, #0x2c] +_022327FE: + cmp r4, #0 + bne _02232836 + add r0, r5, #0 + bl MOD80_02232990 + b _02232836 +_0223280A: + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _0223283C ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02232840 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _02232848 ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200D0E0 + mov r0, #1 + str r0, [r5, #0x2c] +_02232836: + mov r0, #3 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0223283C: .word 0x00000FC8 +_02232840: .word 0x00000ED8 +_02232844: .word 0x00000F0F +_02232848: .word 0x00000E98 + thumb_func_end MOD80_02232718 + + thumb_func_start MOD80_0223284C +MOD80_0223284C: ; 0x0223284C + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, [r4, #0x18] + cmp r0, #0 + beq _0223285C + cmp r0, #8 + bne _0223287C +_0223285C: + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + ldr r0, _022328A0 ; =0x0000100C + mov r1, #1 + str r1, [r4, r0] + b _02232894 +_0223287C: + mov r0, #6 + str r0, [sp] + mov r1, #0 + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 +_02232894: + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #4 + add sp, #0xc + pop {r3, r4, pc} + nop +_022328A0: .word 0x0000100C + thumb_func_end MOD80_0223284C + + thumb_func_start MOD80_022328A4 +MOD80_022328A4: ; 0x022328A4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + ldr r2, _022328C0 ; =0x000001AD + mov r1, #0xf + bl MOD80_0222E6A8 + ldr r1, _022328C4 ; =0x00000FCC + str r0, [r4, r1] + mov r0, #6 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + nop +_022328C0: .word 0x000001AD +_022328C4: .word 0x00000FCC + thumb_func_end MOD80_022328A4 + + thumb_func_start MOD80_022328C8 +MOD80_022328C8: ; 0x022328C8 + push {r4, lr} + add r4, r0, #0 + ldr r0, _022328FC ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _022328F8 + sub r1, r1, #1 + cmp r0, r1 + bne _022328EA + mov r0, #0 + str r0, [r4, #0x2c] + b _022328F8 +_022328EA: + mov r0, #2 + mov r1, #0 + str r0, [r4, #0x2c] + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 +_022328F8: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_022328FC: .word 0x00000FCC + thumb_func_end MOD80_022328C8 + + thumb_func_start MOD80_02232900 +MOD80_02232900: ; 0x02232900 + push {r4, lr} + sub sp, #8 + ldr r1, _02232928 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r2, #1 + mov r1, #0x19 + mov r3, #0 + str r2, [sp, #4] + bl MOD80_02232B34 + add r0, r4, #0 + mov r1, #3 + mov r2, #0xc + bl MOD80_0222E6DC + mov r0, #3 + add sp, #8 + pop {r4, pc} + nop +_02232928: .word 0x00000F0F + thumb_func_end MOD80_02232900 + + thumb_func_start MOD80_0223292C +MOD80_0223292C: ; 0x0223292C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + ldr r2, _02232948 ; =0x000001AD + mov r1, #0xd + bl MOD80_0222E6A8 + ldr r1, _0223294C ; =0x00000FCC + str r0, [r4, r1] + mov r0, #0xd + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + nop +_02232948: .word 0x000001AD +_0223294C: .word 0x00000FCC + thumb_func_end MOD80_0223292C + + thumb_func_start MOD80_02232950 +MOD80_02232950: ; 0x02232950 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02232988 ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _02232982 + sub r1, r1, #1 + cmp r0, r1 + bne _0223297C + ldr r0, _0223298C ; =0x00000FB8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200D0E0 + mov r0, #1 + str r0, [r4, #0x2c] + b _02232982 +_0223297C: + add r0, r4, #0 + bl MOD80_02232990 +_02232982: + mov r0, #3 + pop {r4, pc} + nop +_02232988: .word 0x00000FCC +_0223298C: .word 0x00000FB8 + thumb_func_end MOD80_02232950 + + thumb_func_start MOD80_02232990 +MOD80_02232990: ; 0x02232990 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + mov r1, #0x7e + add r0, #0xc4 + lsl r1, r1, #2 + add r2, r4, r1 + ldr r0, [r0] + sub r1, #0xd4 + mul r1, r0 + add r0, r2, r1 + bl MOD80_022331F8 + cmp r0, #0 + beq _022329E6 + add r0, r4, #0 + add r0, #0xb8 + ldrh r0, [r0] + cmp r0, #0x12 + beq _022329E6 + ldr r0, [r4] + ldr r0, [r0, #8] + bl FUN_0206B9AC + cmp r0, #6 + bne _022329E6 + ldr r0, _02232A2C ; =0x00000F0F + mov r2, #1 + str r0, [sp] + add r0, r4, #0 + mov r1, #0x1c + mov r3, #0 + str r2, [sp, #4] + bl MOD80_02232B34 + add r0, r4, #0 + mov r1, #4 + mov r2, #1 + bl MOD80_0222E6DC + add sp, #8 + mov r0, #0 + pop {r4, pc} +_022329E6: + add r2, r4, #0 + add r3, r4, #0 + ldr r1, [r4] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02232FB8 + add r1, r4, #0 + add r1, #0xbc + str r0, [r1] + mov r0, #2 + str r0, [r4, #0x2c] + ldr r0, _02232A30 ; =0x0000100C + mov r1, #1 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #7 + mov r2, #9 + bl MOD80_0222E7A8 + add r0, r4, #0 + add r0, #0xd4 + add r1, r4, #0 + bl MOD80_0223311C + mov r0, #0 + add r4, #0xc0 + str r0, [r4] + mov r0, #1 + add sp, #8 + pop {r4, pc} + .align 2, 0 +_02232A2C: .word 0x00000F0F +_02232A30: .word 0x0000100C + thumb_func_end MOD80_02232990 + + thumb_func_start MOD80_02232A34 +MOD80_02232A34: ; 0x02232A34 + push {r4, lr} + sub sp, #8 + ldr r1, _02232A5C ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r2, #1 + mov r1, #0x19 + mov r3, #0 + str r2, [sp, #4] + bl MOD80_02232B34 + add r0, r4, #0 + mov r1, #3 + mov r2, #0xf + bl MOD80_0222E6DC + mov r0, #3 + add sp, #8 + pop {r4, pc} + nop +_02232A5C: .word 0x00000F0F + thumb_func_end MOD80_02232A34 + + thumb_func_start MOD80_02232A60 +MOD80_02232A60: ; 0x02232A60 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + ldr r2, _02232A7C ; =0x000001AD + mov r1, #0xd + bl MOD80_0222E6A8 + ldr r1, _02232A80 ; =0x00000FCC + str r0, [r4, r1] + mov r0, #0x10 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + nop +_02232A7C: .word 0x000001AD +_02232A80: .word 0x00000FCC + thumb_func_end MOD80_02232A60 + + thumb_func_start MOD80_02232A84 +MOD80_02232A84: ; 0x02232A84 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02232AE0 ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _02232ADA + sub r1, r1, #1 + cmp r0, r1 + bne _02232AB0 + ldr r0, _02232AE4 ; =0x00000FB8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200D0E0 + mov r0, #1 + str r0, [r4, #0x2c] + b _02232ADA +_02232AB0: + add r2, r4, #0 + add r3, r4, #0 + ldr r1, [r4] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02232FB8 + add r1, r4, #0 + add r1, #0xbc + str r0, [r1] + mov r0, #2 + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r1, #6 + mov r2, #0 + bl MOD80_0222E7A8 +_02232ADA: + mov r0, #3 + pop {r4, pc} + nop +_02232AE0: .word 0x00000FCC +_02232AE4: .word 0x00000FB8 + thumb_func_end MOD80_02232A84 + + thumb_func_start MOD80_02232AE8 +MOD80_02232AE8: ; 0x02232AE8 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02232B02 + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_02232B02: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02232AE8 + + thumb_func_start MOD80_02232B08 +MOD80_02232B08: ; 0x02232B08 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02232B2C + ldr r0, _02232B30 ; =0x00000FB8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200D0E0 + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_02232B2C: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_02232B30: .word 0x00000FB8 + thumb_func_end MOD80_02232B08 + + thumb_func_start MOD80_02232B34 +MOD80_02232B34: ; 0x02232B34 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, _02232B9C ; =0x00000B34 + add r6, r2, #0 + ldr r0, [r5, r0] + bl FUN_0200A914 + mov r1, #0xb3 + add r7, r0, #0 + lsl r1, r1, #4 + ldr r0, [r5, r1] + add r1, #0x1c + ldr r1, [r5, r1] + add r2, r7, #0 + bl FUN_0200B7B8 + ldr r0, [sp, #0x24] + cmp r0, #0 + bne _02232B60 + ldr r0, _02232BA0 ; =0x00000E98 + b _02232B62 +_02232B60: + ldr r0, _02232BA4 ; =0x00000FB8 +_02232B62: + add r4, r5, r0 + add r0, r4, #0 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r3, #0 + str r3, [sp] + str r6, [sp, #4] + ldr r2, _02232BA8 ; =0x00000B4C + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r4, #0 + mov r1, #1 + bl FUN_0201BD84 + mov r1, #0x2e + lsl r1, r1, #6 + str r0, [r5, r1] + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02232B9C: .word 0x00000B34 +_02232BA0: .word 0x00000E98 +_02232BA4: .word 0x00000FB8 +_02232BA8: .word 0x00000B4C + thumb_func_end MOD80_02232B34 + + thumb_func_start MOD80_02232BAC +MOD80_02232BAC: ; 0x02232BAC + push {r3, r4, r5, lr} + add r5, r2, #0 + add r2, r3, #0 + bl FUN_02006704 + add r4, r0, #0 + beq _02232BCE + add r1, r5, #0 + bl FUN_020B0030 + cmp r0, #0 + bne _02232BCE + add r0, r4, #0 + bl FUN_02016A18 + mov r0, #0 + pop {r3, r4, r5, pc} +_02232BCE: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD80_02232BAC + + thumb_func_start MOD80_02232BD4 +MOD80_02232BD4: ; 0x02232BD4 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r1, #0 + add r6, r2, #0 + add r1, r6, #0 + add r2, r5, #0 + str r0, [sp] + add r7, r3, #0 + ldr r4, [sp, #0x28] + bl FUN_0206B6D4 + add r1, r0, #0 + ldr r0, [sp, #0x24] + add r2, sp, #8 + mov r3, #0x3e + bl MOD80_02232BAC + str r0, [sp, #4] + ldr r0, [sp, #8] + add r1, r4, #0 + mov r2, #2 + ldr r0, [r0, #0x14] + add r1, #0xc + lsl r2, r2, #8 + bl MIi_CpuCopyFast + lsl r0, r7, #4 + add r0, #0xc + lsl r0, r0, #5 + str r0, [r4] + ldr r0, [sp, #0x20] + add r1, r5, #0 + str r0, [r4, #8] + ldr r0, [sp] + add r2, r6, #0 + bl FUN_0206B7BC + add r0, r0, #3 + str r0, [r4, #4] + ldr r0, [sp, #4] + bl FUN_02016A18 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD80_02232BD4 + + thumb_func_start MOD80_02232C2C +MOD80_02232C2C: ; 0x02232C2C + push {r4, lr} + add r4, r1, #0 + bl FUN_020687C8 + strb r0, [r4, #3] + pop {r4, pc} + thumb_func_end MOD80_02232C2C + + thumb_func_start MOD80_02232C38 +MOD80_02232C38: ; 0x02232C38 + push {r3, r4, r5, r6, r7, lr} + ldr r1, _02232C84 ; =0x00001010 + mov r6, #2 + lsl r6, r6, #8 + add r7, r6, #0 + ldr r5, [r0, r1] + str r0, [sp] + mov r4, #0 + add r7, #0xc +_02232C4A: + ldr r0, [r5, #8] + cmp r0, #0 + beq _02232C6E + add r0, r5, #0 + add r0, #0xc + add r1, r6, #0 + bl DC_FlushRange + add r0, r5, #0 + ldr r1, [r5] + add r0, #0xc + add r2, r6, #0 + bl GX_LoadOBJ + ldr r0, [r5, #8] + ldr r1, [r5, #4] + bl FUN_02020248 +_02232C6E: + add r4, r4, #1 + add r5, r5, r7 + cmp r4, #0x1e + blt _02232C4A + ldr r1, _02232C84 ; =0x00001010 + ldr r0, [sp] + ldr r0, [r0, r1] + bl FUN_02016A18 + pop {r3, r4, r5, r6, r7, pc} + nop +_02232C84: .word 0x00001010 + thumb_func_end MOD80_02232C38 + + thumb_func_start MOD80_02232C88 +MOD80_02232C88: ; 0x02232C88 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r5, r0, #0 + str r1, [sp, #0xc] + add r7, r2, #0 + add r6, r3, #0 + ldr r4, [sp, #0x40] + bl FUN_02066A6C + add r0, r5, #0 + mov r1, #0xab + mov r2, #0 + bl FUN_020672BC + str r0, [sp, #0x1c] + add r0, r5, #0 + mov r1, #5 + mov r2, #0 + bl FUN_020672BC + strh r0, [r6] + add r0, r5, #0 + mov r1, #0x70 + mov r2, #0 + bl FUN_020672BC + str r0, [sp, #0x10] + add r0, r5, #0 + mov r1, #0x4c + mov r2, #0 + bl FUN_020672BC + str r0, [sp, #0x14] + add r0, r5, #0 + mov r1, #6 + mov r2, #0 + bl FUN_020672BC + str r0, [sp, #0x18] + ldrh r0, [r6] + mov r1, #0x6f + mov r2, #0 + strh r0, [r4] + add r0, r5, #0 + bl FUN_020672BC + add r0, r0, #1 + strb r0, [r4, #2] + ldr r0, [sp, #0x14] + cmp r0, #0 + beq _02232CF2 + mov r0, #0 + strb r0, [r4, #3] +_02232CF2: + add r0, r5, #0 + mov r1, #1 + bl FUN_02066A94 + ldr r0, [sp, #0x1c] + cmp r0, #0 + beq _02232D60 + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x10] + str r0, [sp] + ldr r0, [sp, #0x3c] + ldr r2, [sp, #0x14] + str r0, [sp, #4] + ldr r0, [sp, #0x44] + ldr r3, [sp, #0x38] + str r0, [sp, #8] + ldrh r0, [r6] + bl MOD80_02232BD4 + ldr r0, [sp, #0xc] + mov r1, #1 + bl FUN_020200A0 + ldr r0, [sp, #0x18] + cmp r0, #0 + beq _02232D54 + add r0, r7, #0 + mov r1, #1 + bl FUN_020200A0 + ldr r0, [sp, #0x18] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0206EA98 + cmp r0, #0 + beq _02232D48 + add r0, r7, #0 + mov r1, #0x29 + bl FUN_02020130 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} +_02232D48: + add r0, r7, #0 + mov r1, #0x28 + bl FUN_02020130 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} +_02232D54: + add r0, r7, #0 + mov r1, #0 + bl FUN_020200A0 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} +_02232D60: + ldr r0, [sp, #0xc] + mov r1, #0 + bl FUN_020200A0 + add r0, r7, #0 + mov r1, #0 + bl FUN_020200A0 + ldr r0, [sp, #0x44] + mov r1, #0 + str r1, [r0, #8] + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD80_02232C88 + + thumb_func_start MOD80_02232D7C +MOD80_02232D7C: ; 0x02232D7C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x68 + add r5, r0, #0 + ldr r0, [r5] + str r1, [sp, #0x10] + ldr r0, [r0, #0xc] + ldr r1, _02232F7C ; =0x00003D68 + str r0, [sp, #0x20] + mov r0, #3 + bl FUN_020169D8 + ldr r1, _02232F80 ; =0x00001010 + str r0, [sp, #0x18] + str r0, [r5, r1] + mov r0, #0x13 + mov r1, #0x3e + bl FUN_02006670 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x10] + cmp r0, #0 + blt _02232E3A + cmp r0, #0x12 + bge _02232E3A + ldr r6, _02232F84 ; =0x00001004 + mov r4, #0 +_02232DB0: + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x10] + add r2, r4, #0 + bl FUN_0206B5E4 + ldr r2, [r5, r6] + lsl r1, r4, #2 + add r1, r2, r1 + bl MOD80_02232C2C + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x1e + blo _02232DB0 + mov r4, #0 +_02232DD0: + ldr r0, _02232F84 ; =0x00001004 + lsl r6, r4, #2 + ldr r1, [r5, r0] + mov r0, #0 + strh r0, [r1, r6] + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x10] + add r2, r4, #0 + add r7, r5, r6 + bl FUN_0206B5E4 + ldr r1, [sp, #0x1c] + str r4, [sp] + str r1, [sp, #4] + ldr r1, _02232F84 ; =0x00001004 + add r2, r4, #0 + ldr r1, [r5, r1] + add r3, sp, #0x2c + add r1, r1, r6 + str r1, [sp, #8] + mov r1, #0x83 + lsl r1, r1, #2 + mul r2, r1 + ldr r1, [sp, #0x18] + lsl r6, r4, #1 + add r1, r1, r2 + str r1, [sp, #0xc] + ldr r1, _02232F88 ; =0x00000D64 + ldr r2, _02232F8C ; =0x00000DDC + ldr r1, [r7, r1] + ldr r2, [r7, r2] + add r3, r3, r6 + bl MOD80_02232C88 + cmp r4, #6 + bhs _02232E22 + ldr r0, _02232F90 ; =0x00000E54 + mov r1, #0 + ldr r0, [r7, r0] + bl FUN_020200A0 +_02232E22: + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x1e + blo _02232DD0 + ldr r2, _02232F94 ; =0x00000B44 + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x10] + ldr r2, [r5, r2] + bl FUN_0206B484 + b _02232F22 +_02232E3A: + ldr r0, [r5] + ldr r0, [r0, #8] + bl FUN_0206B9AC + mov r4, #0 + str r0, [sp, #0x14] + cmp r0, #0 + ble _02232EC8 +_02232E4A: + ldr r0, [r5] + add r1, r4, #0 + ldr r0, [r0, #8] + bl FUN_0206B9B0 + str r0, [sp, #0x24] + bl FUN_020690E4 + ldr r1, _02232F84 ; =0x00001004 + lsl r6, r4, #2 + ldr r1, [r5, r1] + str r0, [sp, #0x28] + add r1, r1, r6 + bl MOD80_02232C2C + ldr r0, [sp, #0x1c] + str r4, [sp] + str r0, [sp, #4] + ldr r0, _02232F84 ; =0x00001004 + add r1, r4, #0 + ldr r0, [r5, r0] + ldr r2, _02232F8C ; =0x00000DDC + add r0, r0, r6 + str r0, [sp, #8] + mov r0, #0x83 + lsl r0, r0, #2 + mul r1, r0 + ldr r0, [sp, #0x18] + add r7, r5, r6 + add r0, r0, r1 + str r0, [sp, #0xc] + ldr r1, _02232F88 ; =0x00000D64 + ldr r0, [sp, #0x28] + ldr r1, [r7, r1] + ldr r2, [r7, r2] + lsl r6, r4, #1 + add r3, sp, #0x2c + add r3, r3, r6 + bl MOD80_02232C88 + ldr r0, [sp, #0x24] + mov r1, #0xa1 + mov r2, #0 + bl FUN_020671BC + cmp r0, #0 + ldr r0, _02232F90 ; =0x00000E54 + beq _02232EB4 + ldr r0, [r7, r0] + mov r1, #1 + bl FUN_020200A0 + b _02232EBC +_02232EB4: + ldr r0, [r7, r0] + mov r1, #0 + bl FUN_020200A0 +_02232EBC: + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + ldr r0, [sp, #0x14] + cmp r4, r0 + blt _02232E4A +_02232EC8: + cmp r4, #0x1e + bhs _02232F14 + mov r7, #0 +_02232ECE: + ldr r0, _02232F84 ; =0x00001004 + lsl r1, r4, #2 + ldr r0, [r5, r0] + add r6, r5, r1 + strh r7, [r0, r1] + ldr r0, _02232F88 ; =0x00000D64 + add r1, r7, #0 + ldr r0, [r6, r0] + bl FUN_020200A0 + ldr r0, _02232F8C ; =0x00000DDC + mov r1, #0 + ldr r0, [r6, r0] + bl FUN_020200A0 + mov r0, #0x83 + lsl r0, r0, #2 + add r1, r4, #0 + mul r1, r0 + ldr r0, [sp, #0x18] + add r1, r0, r1 + mov r0, #0 + str r0, [r1, #8] + cmp r4, #6 + bhs _02232F0A + ldr r0, _02232F90 ; =0x00000E54 + mov r1, #0 + ldr r0, [r6, r0] + bl FUN_020200A0 +_02232F0A: + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x1e + blo _02232ECE +_02232F14: + ldr r2, _02232F98 ; =0x00000B34 + mov r1, #0x59 + ldr r0, [r5, r2] + add r2, #0x10 + ldr r2, [r5, r2] + bl FUN_0200A8E0 +_02232F22: + ldr r0, [sp, #0x1c] + bl FUN_020066F4 + ldr r0, _02232F9C ; =0x00000EC8 + mov r1, #0 + add r0, r5, r0 + bl FUN_02019620 + mov r0, #1 + str r0, [sp] + ldr r0, _02232FA0 ; =0x00010200 + ldr r1, _02232F94 ; =0x00000B44 + str r0, [sp, #4] + ldr r0, _02232F9C ; =0x00000EC8 + ldr r1, [r5, r1] + add r0, r5, r0 + mov r2, #0 + mov r3, #5 + bl MOD80_02236D50 + ldr r0, [r5, #0x24] + cmp r0, #6 + bne _02232F72 + add r3, r5, #0 + add r3, #0xc4 + mov r2, #0xba + ldr r4, [r3] + mov r3, #0x49 + ldr r0, _02232F84 ; =0x00001004 + lsl r2, r2, #2 + lsl r3, r3, #2 + ldr r1, _02232F88 ; =0x00000D64 + add r2, r5, r2 + mul r3, r4 + add r2, r2, r3 + ldr r0, [r5, r0] + ldr r3, [sp, #0x18] + add r1, r5, r1 + bl MOD80_022331C4 +_02232F72: + ldr r1, _02232FA4 ; =MOD80_02232C38 + ldr r0, _02232FA8 ; =0x00001014 + str r1, [r5, r0] + add sp, #0x68 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02232F7C: .word 0x00003D68 +_02232F80: .word 0x00001010 +_02232F84: .word 0x00001004 +_02232F88: .word 0x00000D64 +_02232F8C: .word 0x00000DDC +_02232F90: .word 0x00000E54 +_02232F94: .word 0x00000B44 +_02232F98: .word 0x00000B34 +_02232F9C: .word 0x00000EC8 +_02232FA0: .word 0x00010200 +_02232FA4: .word MOD80_02232C38 +_02232FA8: .word 0x00001014 + thumb_func_end MOD80_02232D7C + + thumb_func_start MOD80_02232FAC +MOD80_02232FAC: ; 0x02232FAC + cmp r0, #0x12 + bne _02232FB4 + mov r0, #1 + bx lr +_02232FB4: + mov r0, #0 + bx lr + thumb_func_end MOD80_02232FAC + + thumb_func_start MOD80_02232FB8 +MOD80_02232FB8: ; 0x02232FB8 + push {r3, r4, r5, r6, r7, lr} + add r6, r2, #0 + add r5, r0, #0 + add r0, r6, #0 + add r7, r1, #0 + add r4, r3, #0 + bl MOD80_02232FAC + cmp r0, #0 + beq _02232FEA + add r0, r5, #0 + bl FUN_0206B9AC + sub r0, r0, #1 + cmp r4, r0 + ble _02232FDC + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_02232FDC: + add r0, r5, #0 + add r1, r4, #0 + bl FUN_0206B9B0 + bl FUN_020690E4 + pop {r3, r4, r5, r6, r7, pc} +_02232FEA: + add r0, r7, #0 + add r1, r6, #0 + add r2, r4, #0 + bl FUN_0206B5E4 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD80_02232FB8 + + thumb_func_start MOD80_02232FF8 +MOD80_02232FF8: ; 0x02232FF8 + push {r4, lr} + add r4, r0, #0 + add r0, r2, #0 + bl MOD80_02232FAC + cmp r0, #0 + beq _02233014 + add r0, r4, #0 + bl FUN_0206B9AC + cmp r0, #2 + bge _02233014 + mov r0, #0 + pop {r4, pc} +_02233014: + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD80_02232FF8 + + thumb_func_start MOD80_02233018 +MOD80_02233018: ; 0x02233018 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r4, #0 + bl FUN_02066A6C + ldr r5, _02233050 ; =0x02237220 + str r0, [sp] + add r6, r4, #0 +_02233028: + ldrh r1, [r5] + add r0, r7, #0 + mov r2, #0 + bl FUN_020672BC + add r6, r6, #1 + add r4, r4, r0 + add r5, r5, #2 + cmp r6, #0xa + blt _02233028 + ldr r1, [sp] + add r0, r7, #0 + bl FUN_02066A94 + cmp r4, #0 + beq _0223304C + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0223304C: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02233050: .word 0x02237220 + thumb_func_end MOD80_02233018 + + thumb_func_start MOD80_02233054 +MOD80_02233054: ; 0x02233054 + push {r4, lr} + bl MOD80_02232FB8 + add r4, r0, #0 + bne _02233062 + mov r0, #0 + pop {r4, pc} +_02233062: + mov r1, #0xab + mov r2, #0 + bl FUN_020672BC + cmp r0, #0 + bne _02233072 + mov r0, #0 + pop {r4, pc} +_02233072: + add r0, r4, #0 + mov r1, #0xac + mov r2, #0 + bl FUN_020672BC + cmp r0, #0 + beq _02233084 + mov r0, #2 + pop {r4, pc} +_02233084: + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD80_02233054 + + thumb_func_start MOD80_02233088 +MOD80_02233088: ; 0x02233088 + push {r3, r4} + mov r4, #0 + ldrsh r3, [r0, r4] + ldrsh r2, [r1, r4] + cmp r3, r2 + beq _0223309A + add r0, r4, #0 + pop {r3, r4} + bx lr +_0223309A: + mov r2, #2 + ldrsb r3, [r1, r2] + cmp r3, #3 + beq _022330AE + ldrsb r2, [r0, r2] + cmp r3, r2 + beq _022330AE + add r0, r4, #0 + pop {r3, r4} + bx lr +_022330AE: + mov r2, #3 + ldrsb r3, [r0, r2] + cmp r3, #0 + bne _022330BC + mov r0, #0 + pop {r3, r4} + bx lr +_022330BC: + ldrsb r0, [r1, r2] + cmp r0, #0 + beq _022330CC + cmp r0, r3 + ble _022330CC + mov r0, #0 + pop {r3, r4} + bx lr +_022330CC: + mov r0, #4 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _022330DE + cmp r0, r3 + bge _022330DE + mov r0, #0 + pop {r3, r4} + bx lr +_022330DE: + mov r0, #1 + pop {r3, r4} + bx lr + thumb_func_end MOD80_02233088 + + thumb_func_start MOD80_022330E4 +MOD80_022330E4: ; 0x022330E4 + push {r3, r4, r5, lr} + add r4, r1, #0 + mov r1, #5 + mov r2, #0 + add r5, r0, #0 + bl FUN_020672BC + add r1, sp, #0 + strh r0, [r1] + add r0, r5, #0 + mov r1, #0x6f + mov r2, #0 + bl FUN_020672BC + add r1, r0, #1 + add r0, sp, #0 + strb r1, [r0, #2] + add r0, r5, #0 + bl FUN_020687C8 + add r1, sp, #0 + strb r0, [r1, #3] + add r0, sp, #0 + add r1, r4, #0 + bl MOD80_02233088 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD80_022330E4 + + thumb_func_start MOD80_0223311C +MOD80_0223311C: ; 0x0223311C + push {r4, r5, lr} + sub sp, #0xc + add r5, r1, #0 + add r4, r0, #0 + add r0, r5, #0 + add r0, #0xbc + ldr r0, [r0] + mov r1, #5 + mov r2, #0 + bl FUN_020672BC + add r1, sp, #0 + strh r0, [r1, #6] + add r0, r5, #0 + add r0, #0xbc + ldr r0, [r0] + mov r1, #0x6f + mov r2, #0 + bl FUN_020672BC + add r1, r0, #1 + add r0, sp, #0 + strb r1, [r0, #8] + add r0, r5, #0 + add r0, #0xbc + ldr r0, [r0] + bl FUN_020687C8 + add r1, sp, #0 + strb r0, [r1, #9] + add r0, r4, #0 + ldrh r2, [r1, #6] + add r0, #0xec + strh r2, [r0] + add r0, r4, #0 + ldrh r1, [r1, #8] + add r0, #0xee + strh r1, [r0] + add r0, r4, #0 + add r1, r5, #0 + bl MOD80_02234288 + mov r0, #0x7e + lsl r0, r0, #2 + add r2, r5, r0 + add r5, #0xc4 + ldr r1, [r5] + sub r0, #0xd4 + mul r0, r1 + add r0, r2, r0 + bl FUN_020690E4 + mov r1, #5 + mov r2, #0 + add r5, r0, #0 + bl FUN_020672BC + add r1, sp, #0 + strh r0, [r1] + add r0, r5, #0 + mov r1, #0x6f + mov r2, #0 + bl FUN_020672BC + add r0, r0, #1 + add r1, sp, #0 + strb r0, [r1, #2] + mov r0, #0 + strb r0, [r1, #3] + strb r0, [r1, #4] + add r0, r4, #0 + ldrh r2, [r1] + add r0, #0xf0 + strh r2, [r0] + add r0, r4, #0 + ldrh r2, [r1, #2] + add r0, #0xf2 + add r4, #0xf4 + strh r2, [r0] + ldrh r0, [r1, #4] + strh r0, [r4] + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD80_0223311C + + thumb_func_start MOD80_022331C4 +MOD80_022331C4: ; 0x022331C4 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r7, r2, #0 + add r4, r3, #0 + mov r6, #0 +_022331CE: + mov r0, #0 + ldrsh r0, [r5, r0] + cmp r0, #0 + beq _022331E8 + add r0, r5, #0 + add r1, r7, #0 + bl MOD80_02233088 + cmp r0, #0 + bne _022331E8 + ldr r0, [r4, #4] + add r0, r0, #3 + str r0, [r4, #4] +_022331E8: + mov r0, #0x83 + lsl r0, r0, #2 + add r6, r6, #1 + add r5, r5, #4 + add r4, r4, r0 + cmp r6, #0x1e + blt _022331CE + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD80_022331C4 + + thumb_func_start MOD80_022331F8 +MOD80_022331F8: ; 0x022331F8 + push {r3, lr} + mov r1, #6 + mov r2, #0 + bl FUN_020671BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0206EA98 + cmp r0, #0 + beq _02233212 + mov r0, #1 + pop {r3, pc} +_02233212: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD80_022331F8 + + thumb_func_start MOD80_02233218 +MOD80_02233218: ; 0x02233218 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD80_02233618 + ldr r0, [r4, #4] + bl MOD80_02233358 + add r0, r4, #0 + bl MOD80_0223346C + add r0, r4, #0 + bl MOD80_02233500 + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + add r0, r4, #0 + bl MOD80_02236D84 + mov r0, #0 + str r0, [sp] + mov r0, #3 + ldr r2, _02233298 ; =0x00000B34 + str r0, [sp, #4] + sub r0, r0, #4 + str r0, [sp, #8] + add r1, r2, #4 + ldr r0, [r4, r2] + sub r2, r2, #4 + ldr r3, _0223329C ; =0x00000F08 + ldr r1, [r4, r1] + ldr r2, [r4, r2] + add r3, r4, r3 + bl MOD80_02233FB4 + ldr r1, _022332A0 ; =0x00000B18 + add r3, r4, #0 + add r0, r4, r1 + str r0, [sp] + add r0, r1, #0 + add r0, #0x1c + add r1, #0x18 + ldr r2, _022332A4 ; =0x00000F38 + add r3, #0xbc + ldr r0, [r4, r0] + ldr r1, [r4, r1] + ldr r3, [r3] + add r2, r4, r2 + bl MOD80_022340DC + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #2 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 +_02233298: .word 0x00000B34 +_0223329C: .word 0x00000F08 +_022332A0: .word 0x00000B18 +_022332A4: .word 0x00000F38 + thumb_func_end MOD80_02233218 + + thumb_func_start MOD80_022332A8 +MOD80_022332A8: ; 0x022332A8 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222E79C + bl FUN_02033EEC + ldr r1, [r4, #0x2c] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _022332C4 ; =0x02237B84 + ldr r1, [r1, r2] + blx r1 + pop {r4, pc} + nop +_022332C4: .word 0x02237B84 + thumb_func_end MOD80_022332A8 + + thumb_func_start MOD80_022332C8 +MOD80_022332C8: ; 0x022332C8 + push {r4, lr} + add r4, r0, #0 + bl FUN_02033ED0 + add r0, r4, #0 + bl MOD80_02233684 + add r0, r4, #0 + bl MOD80_022335E0 + ldr r0, [r4, #4] + bl MOD80_02233440 + add r0, r4, #0 + bl MOD80_0222E7B0 + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD80_022332C8 + + thumb_func_start MOD80_022332EC +MOD80_022332EC: ; 0x022332EC + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, _0223334C ; =0x00000B34 + add r4, r2, #0 + ldr r0, [r5, r0] + bl FUN_0200A914 + mov r1, #0xb3 + add r6, r0, #0 + lsl r1, r1, #4 + ldr r0, [r5, r1] + add r1, #0x1c + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + ldr r0, _02233350 ; =0x00000E98 + mov r1, #0xf + add r0, r5, r0 + bl FUN_02019620 + ldr r0, _02233350 ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r3, #0 + str r3, [sp] + str r4, [sp, #4] + ldr r0, _02233350 ; =0x00000E98 + ldr r2, _02233354 ; =0x00000B4C + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + mov r1, #0x2e + lsl r1, r1, #6 + str r0, [r5, r1] + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0223334C: .word 0x00000B34 +_02233350: .word 0x00000E98 +_02233354: .word 0x00000B4C + thumb_func_end MOD80_022332EC + + thumb_func_start MOD80_02233358 +MOD80_02233358: ; 0x02233358 + push {r4, r5, lr} + sub sp, #0x8c + ldr r5, _0223342C ; =0x02237420 + add r4, r0, #0 + ldmia r5!, {r0, r1} + add r3, sp, #0x70 + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _02233430 ; =0x0223743C + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _02233434 ; =0x02237458 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _02233438 ; =0x02237404 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _0223343C ; =0x022373E8 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #5 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x3e + bl FUN_02017F18 + add sp, #0x8c + pop {r4, r5, pc} + nop +_0223342C: .word 0x02237420 +_02233430: .word 0x0223743C +_02233434: .word 0x02237458 +_02233438: .word 0x02237404 +_0223343C: .word 0x022373E8 + thumb_func_end MOD80_02233358 + + thumb_func_start MOD80_02233440 +MOD80_02233440: ; 0x02233440 + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD80_02233440 + + thumb_func_start MOD80_0223346C +MOD80_0223346C: ; 0x0223346C + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r4, [r5, #4] + mov r0, #0x60 + str r0, [sp] + mov r0, #0x3e + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x68 + mov r1, #1 + add r3, r2, #0 + bl FUN_02006930 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x3e + bl FUN_02002EEC + ldr r0, [r5] + ldr r0, [r0, #0x24] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CB00 + mov r0, #0 + str r0, [sp] + mov r0, #0xa + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0xb + add r2, r4, #0 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x17 + add r2, r4, #0 + bl FUN_020068C8 + add sp, #0x10 + pop {r3, r4, r5, pc} + thumb_func_end MOD80_0223346C + + thumb_func_start MOD80_02233500 +MOD80_02233500: ; 0x02233500 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + mov r3, #1 + add r7, r0, #0 + str r3, [sp] + mov r0, #0x1c + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + ldr r1, _022335CC ; =0x00000EB8 + str r0, [sp, #0x10] + ldr r0, [r7, #4] + add r1, r7, r1 + mov r2, #0 + bl FUN_02019064 + ldr r0, _022335CC ; =0x00000EB8 + mov r1, #0 + add r0, r7, r0 + bl FUN_02019620 + mov r2, #0 + mov r1, #0xb5 + ldr r0, _022335D0 ; =0x000F0E00 + str r2, [sp] + str r0, [sp, #4] + ldr r0, _022335CC ; =0x00000EB8 + lsl r1, r1, #4 + ldr r1, [r7, r1] + add r0, r7, r0 + mov r3, #1 + bl MOD80_02236D1C + mov r0, #0x15 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r3, #2 + ldr r1, _022335D4 ; =0x00000E98 + str r3, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x60 + str r0, [sp, #0x10] + ldr r0, [r7, #4] + add r1, r7, r1 + mov r2, #0 + bl FUN_02019064 + ldr r0, _022335D4 ; =0x00000E98 + mov r1, #0 + add r0, r7, r0 + bl FUN_02019620 + mov r0, #0 + str r0, [sp, #0x14] + ldr r0, _022335D8 ; =0x00000F08 + ldr r4, _022335DC ; =0x022373D0 + mov r6, #0x96 + add r5, r7, r0 +_0223357E: + ldrh r0, [r4, #2] + add r1, r5, #0 + mov r2, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0xb + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldrh r3, [r4] + ldr r0, [r7, #4] + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + bl FUN_02019064 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + add r0, r5, #0 + bl FUN_020191D0 + ldr r0, [sp, #0x14] + add r6, #0x16 + add r0, r0, #1 + add r4, r4, #4 + add r5, #0x10 + str r0, [sp, #0x14] + cmp r0, #6 + blt _0223357E + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_022335CC: .word 0x00000EB8 +_022335D0: .word 0x000F0E00 +_022335D4: .word 0x00000E98 +_022335D8: .word 0x00000F08 +_022335DC: .word 0x022373D0 + thumb_func_end MOD80_02233500 + + thumb_func_start MOD80_022335E0 +MOD80_022335E0: ; 0x022335E0 + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r0, _0223360C ; =0x00000F08 + mov r4, #0 + add r5, r6, r0 +_022335EA: + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #6 + blt _022335EA + ldr r0, _02233610 ; =0x00000E98 + add r0, r6, r0 + bl FUN_02019178 + ldr r0, _02233614 ; =0x00000EB8 + add r0, r6, r0 + bl FUN_02019178 + pop {r4, r5, r6, pc} + nop +_0223360C: .word 0x00000F08 +_02233610: .word 0x00000E98 +_02233614: .word 0x00000EB8 + thumb_func_end MOD80_022335E0 + + thumb_func_start MOD80_02233618 +MOD80_02233618: ; 0x02233618 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xb4 + mov r1, #0x3e + bl FUN_020219F4 + ldr r1, _02233680 ; =0x00000B4C + str r0, [r4, r1] + sub r1, #0x18 + ldr r0, [r4, r1] + mov r1, #0x5a + bl FUN_0200A914 + mov r1, #0xb5 + lsl r1, r1, #4 + str r0, [r4, r1] + mov r0, #0x3e + mov r1, #0x30 + bl FUN_02016998 + mov r1, #0xfe + lsl r1, r1, #4 + str r0, [r4, r1] + ldr r1, [r4, r1] + mov r0, #0 + mov r2, #0x30 + bl MIi_CpuClearFast + mov r2, #0xfe + lsl r2, r2, #4 + ldr r2, [r4, r2] + mov r0, #0x3e + mov r1, #0 + add r2, #0x1c + bl MOD80_02234204 + mov r1, #0xfe + lsl r1, r1, #4 + ldr r1, [r4, r1] + str r0, [r1, #0x18] + mov r0, #0x3e + bl MOD80_02234228 + mov r1, #0xfe + lsl r1, r1, #4 + ldr r2, [r4, r1] + add r1, #0x38 + str r0, [r2, #0x14] + add r0, r4, r1 + bl MOD80_022346D8 + pop {r4, pc} + .align 2, 0 +_02233680: .word 0x00000B4C + thumb_func_end MOD80_02233618 + + thumb_func_start MOD80_02233684 +MOD80_02233684: ; 0x02233684 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + ldr r0, [r0, #0x14] + bl FUN_02016A18 + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + ldr r0, [r0, #0x18] + bl FUN_02016A18 + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, _022336C0 ; =0x00000B4C + ldr r0, [r4, r0] + bl FUN_02021A20 + mov r0, #0xb5 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02021A20 + pop {r4, pc} + nop +_022336C0: .word 0x00000B4C + thumb_func_end MOD80_02233684 + + thumb_func_start MOD80_022336C4 +MOD80_022336C4: ; 0x022336C4 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + bl FUN_0200E308 + cmp r0, #0 + beq _022336EC + ldr r0, _022336F4 ; =0x00000F0F + mov r1, #9 + str r0, [sp] + add r0, r4, #0 + mov r2, #1 + mov r3, #0 + bl MOD80_022332EC + add r0, r4, #0 + mov r1, #0x10 + mov r2, #1 + bl MOD80_0222E6DC +_022336EC: + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_022336F4: .word 0x00000F0F + thumb_func_end MOD80_022336C4 + + thumb_func_start MOD80_022336F8 +MOD80_022336F8: ; 0x022336F8 + push {r3, r4, lr} + sub sp, #0x14 + ldr r1, _02233770 ; =0x021C48B8 + add r4, r0, #0 + ldr r2, [r1, #0x48] + mov r1, #2 + tst r1, r2 + beq _02233714 + mov r1, #5 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #2 + str r0, [r4, #0x2c] +_02233714: + mov r0, #5 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #0xd + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _02233774 ; =0x0000011A + ldr r1, _02233778 ; =0x00000ED8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #0xf + bl FUN_02019064 + ldr r0, _02233778 ; =0x00000ED8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #5 + str r0, [sp] + mov r0, #0xa + str r0, [sp, #4] + mov r0, #0xd + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _0223377C ; =0x0000014E + ldr r1, _02233780 ; =0x00000EE8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #0x15 + bl FUN_02019064 + ldr r0, _02233780 ; =0x00000EE8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #3 + str r0, [r4, #0x2c] + add sp, #0x14 + pop {r3, r4, pc} + .align 2, 0 +_02233770: .word 0x021C48B8 +_02233774: .word 0x0000011A +_02233778: .word 0x00000ED8 +_0223377C: .word 0x0000014E +_02233780: .word 0x00000EE8 + thumb_func_end MOD80_022336F8 + + thumb_func_start MOD80_02233784 +MOD80_02233784: ; 0x02233784 + push {r4, lr} + ldr r2, _022337AC ; =0x00000FC8 + add r4, r0, #0 + ldr r3, _022337B0 ; =0x00000B34 + add r1, r4, r2 + sub r2, #0xf0 + ldr r3, [r4, r3] + add r2, r4, r2 + bl MOD80_02234370 + ldr r1, _022337B4 ; =0x00000FD4 + str r0, [r4, r1] + add r0, r4, #0 + ldr r1, _022337B8 ; =0x0000FFFF + add r0, #0xb0 + strh r1, [r0] + mov r0, #4 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_022337AC: .word 0x00000FC8 +_022337B0: .word 0x00000B34 +_022337B4: .word 0x00000FD4 +_022337B8: .word 0x0000FFFF + thumb_func_end MOD80_02233784 + + thumb_func_start MOD80_022337BC +MOD80_022337BC: ; 0x022337BC + push {r4, lr} + add r4, r0, #0 + ldr r0, _02233878 ; =0x00000FD4 + add r1, r4, #0 + ldr r0, [r4, r0] + add r1, #0xb0 + bl MOD80_02234698 + cmp r0, #9 + bhi _022337F0 + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_022337DC: ; jump table + .short _02233872 - _022337DC - 2 ; case 0 + .short _022337FA - _022337DC - 2 ; case 1 + .short _022337FA - _022337DC - 2 ; case 2 + .short _022337FA - _022337DC - 2 ; case 3 + .short _022337FA - _022337DC - 2 ; case 4 + .short _022337FA - _022337DC - 2 ; case 5 + .short _022337FA - _022337DC - 2 ; case 6 + .short _022337FA - _022337DC - 2 ; case 7 + .short _022337FA - _022337DC - 2 ; case 8 + .short _022337FA - _022337DC - 2 ; case 9 +_022337F0: + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _02233820 + b _02233872 +_022337FA: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r2, [r4, r0] + sub r0, #0xc + add r1, r2, #6 + ldr r0, [r4, r0] + add r2, r2, #4 + bl FUN_02001300 + ldr r0, _0223387C ; =0x00000FC8 + ldr r0, [r4, r0] + bl FUN_02012870 + mov r0, #5 + str r0, [r4, #0x2c] + ldr r0, _02233880 ; =0x000005DC + bl FUN_020054C8 + b _02233872 +_02233820: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r2, [r4, r0] + sub r0, #0xc + add r1, r2, #6 + ldr r0, [r4, r0] + add r2, r2, #4 + bl FUN_02001300 + ldr r0, _0223387C ; =0x00000FC8 + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r0, _02233884 ; =0x00000ED8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _02233888 ; =0x00000E98 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200D0E0 + ldr r0, _02233884 ; =0x00000ED8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _0223388C ; =0x00000EE8 + add r0, r4, r0 + bl FUN_02019178 + mov r1, #5 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #2 + str r0, [r4, #0x2c] + ldr r0, _02233880 ; =0x000005DC + bl FUN_020054C8 +_02233872: + mov r0, #3 + pop {r4, pc} + nop +_02233878: .word 0x00000FD4 +_0223387C: .word 0x00000FC8 +_02233880: .word 0x000005DC +_02233884: .word 0x00000ED8 +_02233888: .word 0x00000E98 +_0223388C: .word 0x00000EE8 + thumb_func_end MOD80_022337BC + + thumb_func_start MOD80_02233890 +MOD80_02233890: ; 0x02233890 + push {r3, r4, lr} + sub sp, #0xc + ldr r3, _022338D4 ; =0x00000B38 + add r4, r0, #0 + ldr r1, [r4, r3] + mov r2, #0xfe + lsl r2, r2, #4 + str r1, [sp] + ldr r1, [r4, r2] + sub r3, r3, #4 + str r1, [sp, #4] + ldr r1, [r4] + ldr r1, [r1, #0x10] + str r1, [sp, #8] + add r1, r2, #0 + sub r1, #0x18 + sub r2, #0xf8 + ldr r3, [r4, r3] + add r1, r4, r1 + add r2, r4, r2 + bl MOD80_022344DC + ldr r1, _022338D8 ; =0x00000FD4 + str r0, [r4, r1] + add r0, r4, #0 + ldr r1, _022338DC ; =0x0000FFFF + add r0, #0xb0 + strh r1, [r0] + mov r0, #6 + str r0, [r4, #0x2c] + mov r0, #3 + add sp, #0xc + pop {r3, r4, pc} + nop +_022338D4: .word 0x00000B38 +_022338D8: .word 0x00000FD4 +_022338DC: .word 0x0000FFFF + thumb_func_end MOD80_02233890 + + thumb_func_start MOD80_022338E0 +MOD80_022338E0: ; 0x022338E0 + cmp r1, #0 + beq _022338EE + cmp r1, #0xfe + beq _022338F6 + cmp r1, #0xff + beq _022338FE + b _02233906 +_022338EE: + mov r1, #1 + strb r1, [r0, #2] + add r0, r1, #0 + bx lr +_022338F6: + mov r1, #2 + strb r1, [r0, #2] + mov r0, #1 + bx lr +_022338FE: + mov r1, #3 + strb r1, [r0, #2] + mov r0, #1 + bx lr +_02233906: + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD80_022338E0 + + thumb_func_start MOD80_0223390C +MOD80_0223390C: ; 0x0223390C + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, _02233A4C ; =0x00000FD4 + add r1, r4, #0 + ldr r0, [r4, r0] + add r1, #0xb0 + bl MOD80_02234698 + add r5, r0, #0 + mov r0, #1 + mvn r0, r0 + cmp r5, r0 + beq _02233932 + add r0, r0, #1 + cmp r5, r0 + bne _02233930 + b _02233A44 +_02233930: + b _0223398C +_02233932: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r2, [r4, r0] + sub r0, #0xc + add r1, r2, #0 + ldr r0, [r4, r0] + add r1, #0xa + add r2, #8 + bl FUN_02001300 + ldr r0, _02233A50 ; =0x00000FC8 + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r0, _02233A54 ; =0x00000EE8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _02233A58 ; =0x00000ED8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _02233A54 ; =0x00000EE8 + add r0, r4, r0 + bl FUN_02019178 + mov r0, #0 + str r0, [r4, #0x2c] + ldr r0, _02233A5C ; =0x000005DC + bl FUN_020054C8 + mov r0, #0xfe + lsl r0, r0, #4 + ldr r3, [r4, r0] + add r0, #0x38 + ldrh r2, [r3, #6] + ldrh r1, [r3, #4] + add r0, r4, r0 + add r1, r2, r1 + ldrh r2, [r3, #0xa] + ldrh r3, [r3, #8] + bl MOD80_022346F0 + b _02233A44 +_0223398C: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r2, [r4, r0] + sub r0, #0xc + add r1, r2, #0 + ldr r0, [r4, r0] + add r1, #0xa + add r2, #8 + bl FUN_02001300 + ldr r0, _02233A50 ; =0x00000FC8 + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r0, _02233A58 ; =0x00000ED8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _02233A54 ; =0x00000EE8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _02233A58 ; =0x00000ED8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _02233A54 ; =0x00000EE8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _02233A60 ; =0x00000B1C + strh r5, [r4, r0] + ldr r0, _02233A5C ; =0x000005DC + bl FUN_020054C8 + add r0, r5, #0 + mov r1, #0x12 + bl FUN_02068678 + mov r1, #0xfe + lsl r1, r1, #4 + ldr r2, [r4, r1] + str r0, [r2, #0x20] + ldr r1, [r4, r1] + ldr r0, _02233A60 ; =0x00000B1C + ldr r1, [r1, #0x20] + add r0, r4, r0 + bl MOD80_022338E0 + cmp r0, #0 + beq _02233A00 + mov r0, #0xa + str r0, [r4, #0x2c] + ldr r0, _02233A64 ; =0x00000B1E + ldrsb r1, [r4, r0] + b _02233A06 +_02233A00: + mov r0, #7 + str r0, [r4, #0x2c] + mov r1, #3 +_02233A06: + ldr r2, _02233A60 ; =0x00000B1C + ldr r3, _02233A68 ; =0x00000F08 + ldrsh r0, [r4, r2] + add r3, r4, r3 + str r0, [sp] + mov r0, #0 + str r1, [sp, #4] + mvn r0, r0 + str r0, [sp, #8] + add r0, r2, #0 + add r1, r2, #0 + add r0, #0x18 + add r1, #0x1c + add r2, #0x14 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + ldr r2, [r4, r2] + bl MOD80_02233FB4 + mov r0, #0xfe + lsl r0, r0, #4 + ldr r3, [r4, r0] + add r0, #0x38 + ldrh r2, [r3, #6] + ldrh r1, [r3, #4] + add r0, r4, r0 + add r1, r2, r1 + ldrh r2, [r3, #0xa] + ldrh r3, [r3, #8] + bl MOD80_022346F0 +_02233A44: + mov r0, #3 + add sp, #0xc + pop {r4, r5, pc} + nop +_02233A4C: .word 0x00000FD4 +_02233A50: .word 0x00000FC8 +_02233A54: .word 0x00000EE8 +_02233A58: .word 0x00000ED8 +_02233A5C: .word 0x000005DC +_02233A60: .word 0x00000B1C +_02233A64: .word 0x00000B1E +_02233A68: .word 0x00000F08 + thumb_func_end MOD80_0223390C + + thumb_func_start MOD80_02233A6C +MOD80_02233A6C: ; 0x02233A6C + push {r3, r4, lr} + sub sp, #0x14 + ldr r1, _02233ABC ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0xa + mov r2, #1 + mov r3, #0 + bl MOD80_022332EC + add r0, r4, #0 + mov r1, #0x10 + mov r2, #8 + bl MOD80_0222E6DC + mov r0, #0xa + str r0, [sp] + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _02233AC0 ; =0x0000011A + ldr r1, _02233AC4 ; =0x00000ED8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #0x15 + bl FUN_02019064 + ldr r0, _02233AC4 ; =0x00000ED8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #3 + add sp, #0x14 + pop {r3, r4, pc} + nop +_02233ABC: .word 0x00000F0F +_02233AC0: .word 0x0000011A +_02233AC4: .word 0x00000ED8 + thumb_func_end MOD80_02233A6C + + thumb_func_start MOD80_02233AC8 +MOD80_02233AC8: ; 0x02233AC8 + push {r4, lr} + ldr r1, _02233AF0 ; =0x00000FC8 + add r4, r0, #0 + ldr r2, _02233AF4 ; =0x00000B34 + add r0, r4, r1 + sub r1, #0xf0 + ldr r2, [r4, r2] + add r1, r4, r1 + bl MOD80_02234560 + ldr r1, _02233AF8 ; =0x00000FD4 + str r0, [r4, r1] + add r0, r4, #0 + ldr r1, _02233AFC ; =0x0000FFFF + add r0, #0xb0 + strh r1, [r0] + mov r0, #9 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_02233AF0: .word 0x00000FC8 +_02233AF4: .word 0x00000B34 +_02233AF8: .word 0x00000FD4 +_02233AFC: .word 0x0000FFFF + thumb_func_end MOD80_02233AC8 + + thumb_func_start MOD80_02233B00 +MOD80_02233B00: ; 0x02233B00 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, _02233BCC ; =0x00000FD4 + add r1, r5, #0 + ldr r0, [r5, r0] + add r1, #0xb0 + bl MOD80_02234698 + add r4, r0, #0 + cmp r4, #2 + bhi _02233B26 + cmp r4, #0 + beq _02233B6A + cmp r4, #1 + beq _02233B6A + cmp r4, #2 + beq _02233B6A + b _02233BC6 +_02233B26: + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + bne _02233BC6 + ldr r0, _02233BCC ; =0x00000FD4 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, _02233BD0 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02233BD4 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _02233BD8 ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200D0E0 + ldr r0, _02233BD4 ; =0x00000ED8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _02233BDC ; =0x000005DC + bl FUN_020054C8 + mov r0, #0 + str r0, [r5, #0x2c] + b _02233BC6 +_02233B6A: + ldr r0, _02233BCC ; =0x00000FD4 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, _02233BD0 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02233BD4 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _02233BD4 ; =0x00000ED8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _02233BDC ; =0x000005DC + bl FUN_020054C8 + ldr r3, _02233BE0 ; =0x00000F08 + ldr r2, _02233BE4 ; =0x00000B1E + add r0, r4, #1 + strb r0, [r5, r2] + mov r1, #0xa + str r1, [r5, #0x2c] + sub r0, r2, #2 + ldrsh r0, [r5, r0] + sub r1, #0xb + add r3, r5, r3 + str r0, [sp] + ldrsb r0, [r5, r2] + str r0, [sp, #4] + str r1, [sp, #8] + add r0, r2, #0 + add r1, r2, #0 + add r0, #0x16 + add r1, #0x1a + add r2, #0x12 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + ldr r2, [r5, r2] + bl MOD80_02233FB4 +_02233BC6: + mov r0, #3 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_02233BCC: .word 0x00000FD4 +_02233BD0: .word 0x00000FC8 +_02233BD4: .word 0x00000ED8 +_02233BD8: .word 0x00000E98 +_02233BDC: .word 0x000005DC +_02233BE0: .word 0x00000F08 +_02233BE4: .word 0x00000B1E + thumb_func_end MOD80_02233B00 + + thumb_func_start MOD80_02233BE8 +MOD80_02233BE8: ; 0x02233BE8 + push {r3, r4, lr} + sub sp, #0x14 + ldr r1, _02233C38 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0xb + mov r2, #1 + mov r3, #0 + bl MOD80_022332EC + add r0, r4, #0 + mov r1, #0x10 + mov r2, #0xb + bl MOD80_0222E6DC + mov r0, #5 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + mov r0, #0xd + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _02233C3C ; =0x0000011A + ldr r1, _02233C40 ; =0x00000ED8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #0xf + bl FUN_02019064 + ldr r0, _02233C40 ; =0x00000ED8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #3 + add sp, #0x14 + pop {r3, r4, pc} + nop +_02233C38: .word 0x00000F0F +_02233C3C: .word 0x0000011A +_02233C40: .word 0x00000ED8 + thumb_func_end MOD80_02233BE8 + + thumb_func_start MOD80_02233C44 +MOD80_02233C44: ; 0x02233C44 + push {r4, lr} + ldr r1, _02233C6C ; =0x00000FC8 + add r4, r0, #0 + ldr r2, _02233C70 ; =0x00000B34 + add r0, r4, r1 + sub r1, #0xf0 + ldr r2, [r4, r2] + add r1, r4, r1 + bl MOD80_022345D0 + ldr r1, _02233C74 ; =0x00000FD4 + str r0, [r4, r1] + add r0, r4, #0 + ldr r1, _02233C78 ; =0x0000FFFF + add r0, #0xb0 + strh r1, [r0] + mov r0, #0xc + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_02233C6C: .word 0x00000FC8 +_02233C70: .word 0x00000B34 +_02233C74: .word 0x00000FD4 +_02233C78: .word 0x0000FFFF + thumb_func_end MOD80_02233C44 + + thumb_func_start MOD80_02233C7C +MOD80_02233C7C: ; 0x02233C7C + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, _02233D6C ; =0x00000FD4 + add r1, r5, #0 + ldr r0, [r5, r0] + add r1, #0xb0 + bl MOD80_02234698 + add r4, r0, #0 + cmp r4, #0xc + beq _02233CA4 + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + beq _02233CA4 + add r0, r0, #1 + cmp r4, r0 + beq _02233D66 + b _02233CFA +_02233CA4: + ldr r0, _02233D6C ; =0x00000FD4 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, _02233D70 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02233D74 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _02233D78 ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200D0E0 + ldr r0, _02233D74 ; =0x00000ED8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _02233D7C ; =0x000005DC + bl FUN_020054C8 + mov r1, #0xfe + lsl r1, r1, #4 + ldr r1, [r5, r1] + ldr r0, _02233D80 ; =0x00000B1C + ldr r1, [r1, #0x20] + add r0, r5, r0 + bl MOD80_022338E0 + cmp r0, #0 + beq _02233CF4 + mov r0, #0 + str r0, [r5, #0x2c] + b _02233D66 +_02233CF4: + mov r0, #7 + str r0, [r5, #0x2c] + b _02233D66 +_02233CFA: + ldr r0, _02233D7C ; =0x000005DC + bl FUN_020054C8 + ldr r0, _02233D6C ; =0x00000FD4 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, _02233D70 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02233D74 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _02233D74 ; =0x00000ED8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _02233D80 ; =0x00000B1C + add r1, r4, #0 + add r0, r5, r0 + bl MOD80_02234640 + mov r0, #0xd + ldr r1, _02233D84 ; =0x00000B1F + str r0, [r5, #0x2c] + ldrsb r0, [r5, r1] + add r1, r1, #1 + ldrsb r1, [r5, r1] + bl MOD80_02234668 + ldr r2, _02233D80 ; =0x00000B1C + ldr r3, _02233D88 ; =0x00000F08 + ldrsh r1, [r5, r2] + add r3, r5, r3 + str r1, [sp] + add r1, r2, #2 + ldrsb r1, [r5, r1] + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r2, #0 + add r1, r2, #0 + add r0, #0x18 + add r1, #0x1c + add r2, #0x14 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + ldr r2, [r5, r2] + bl MOD80_02233FB4 +_02233D66: + mov r0, #3 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_02233D6C: .word 0x00000FD4 +_02233D70: .word 0x00000FC8 +_02233D74: .word 0x00000ED8 +_02233D78: .word 0x00000E98 +_02233D7C: .word 0x000005DC +_02233D80: .word 0x00000B1C +_02233D84: .word 0x00000B1F +_02233D88: .word 0x00000F08 + thumb_func_end MOD80_02233C7C + + thumb_func_start MOD80_02233D8C +MOD80_02233D8C: ; 0x02233D8C + push {r3, r4, lr} + sub sp, #4 + ldr r1, _02233DB0 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0x17 + mov r2, #1 + mov r3, #0 + bl MOD80_022332EC + add r0, r4, #0 + mov r1, #0x10 + mov r2, #0xe + bl MOD80_0222E6DC + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02233DB0: .word 0x00000F0F + thumb_func_end MOD80_02233D8C + + thumb_func_start MOD80_02233DB4 +MOD80_02233DB4: ; 0x02233DB4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + ldr r2, _02233DD0 ; =0x000001EA + mov r1, #0xf + bl MOD80_0222E6A8 + ldr r1, _02233DD4 ; =0x00000FCC + str r0, [r4, r1] + mov r0, #0xf + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + nop +_02233DD0: .word 0x000001EA +_02233DD4: .word 0x00000FCC + thumb_func_end MOD80_02233DB4 + + thumb_func_start MOD80_02233DD8 +MOD80_02233DD8: ; 0x02233DD8 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02233E28 ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _02233E22 + sub r1, r1, #1 + cmp r0, r1 + bne _02233E04 + mov r1, #5 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #2 + str r0, [r4, #0x2c] + b _02233E22 +_02233E04: + mov r1, #7 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #2 + str r0, [r4, #0x2c] + ldr r0, _02233E2C ; =0x0000100C + mov r1, #1 + str r1, [r4, r0] + add r0, r4, #0 + add r0, #0xd4 + add r1, r4, #0 + bl MOD80_02234330 +_02233E22: + mov r0, #3 + pop {r4, pc} + nop +_02233E28: .word 0x00000FCC +_02233E2C: .word 0x0000100C + thumb_func_end MOD80_02233DD8 + + thumb_func_start MOD80_02233E30 +MOD80_02233E30: ; 0x02233E30 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, [r4, #0x18] + cmp r0, #0 + bne _02233E5C + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + ldr r0, _02233E80 ; =0x0000100C + mov r1, #1 + str r1, [r4, r0] + b _02233E74 +_02233E5C: + mov r0, #6 + str r0, [sp] + mov r1, #0 + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 +_02233E74: + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #4 + add sp, #0xc + pop {r3, r4, pc} + nop +_02233E80: .word 0x0000100C + thumb_func_end MOD80_02233E30 + + thumb_func_start MOD80_02233E84 +MOD80_02233E84: ; 0x02233E84 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02233E9E + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_02233E9E: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02233E84 + + thumb_func_start MOD80_02233EA4 +MOD80_02233EA4: ; 0x02233EA4 + push {r4, r5, r6, lr} + sub sp, #8 + add r6, r0, #0 + add r5, r3, #0 + cmp r2, #0 + beq _02233ED2 + add r0, r1, #0 + add r1, r2, #0 + bl FUN_0200A914 + add r4, r0, #0 + ldr r0, [sp, #0x1c] + str r5, [sp] + str r0, [sp, #4] + ldr r3, [sp, #0x18] + add r0, r6, #0 + add r1, r4, #0 + mov r2, #0 + bl MOD80_02236D50 + add r0, r4, #0 + bl FUN_02021A20 +_02233ED2: + add sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD80_02233EA4 + + thumb_func_start MOD80_02233ED8 +MOD80_02233ED8: ; 0x02233ED8 + cmp r0, #1 + bne _02233EE2 + ldr r0, _02233EF0 ; =0x02237B48 + ldr r0, [r0] + bx lr +_02233EE2: + cmp r0, #2 + bne _02233EEA + ldr r0, _02233EF0 ; =0x02237B48 + ldr r1, [r0, #4] +_02233EEA: + add r0, r1, #0 + bx lr + nop +_02233EF0: .word 0x02237B48 + thumb_func_end MOD80_02233ED8 + + thumb_func_start MOD80_02233EF4 +MOD80_02233EF4: ; 0x02233EF4 + push {r4, r5, r6, lr} + sub sp, #8 + add r6, r0, #0 + add r5, r2, #0 + cmp r3, #0 + bne _02233F04 + cmp r5, #3 + beq _02233F54 +_02233F04: + add r0, r1, #0 + ldr r1, _02233F58 ; =0x022373C0 + lsl r2, r5, #2 + ldr r1, [r1, r2] + bl FUN_0200A914 + add r4, r0, #0 + ldr r0, [sp, #0x1c] + cmp r0, #3 + ble _02233F34 + ldr r1, [sp, #0x20] + add r0, r5, #0 + bl MOD80_02233ED8 + mov r1, #0 + str r1, [sp] + str r0, [sp, #4] + ldr r2, [sp, #0x1c] + ldr r3, [sp, #0x18] + add r0, r6, #0 + add r1, r4, #0 + bl MOD80_02236D50 + b _02233F4E +_02233F34: + ldr r1, [sp, #0x20] + add r0, r5, #0 + bl MOD80_02233ED8 + ldr r1, [sp, #0x1c] + ldr r3, [sp, #0x18] + str r1, [sp] + str r0, [sp, #4] + add r0, r6, #0 + add r1, r4, #0 + mov r2, #0 + bl MOD80_02236D50 +_02233F4E: + add r0, r4, #0 + bl FUN_02021A20 +_02233F54: + add sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 +_02233F58: .word 0x022373C0 + thumb_func_end MOD80_02233EF4 + + thumb_func_start MOD80_02233F5C +MOD80_02233F5C: ; 0x02233F5C + push {r4, r5, r6, lr} + sub sp, #8 + add r6, r0, #0 + mov r0, #0 + mvn r0, r0 + add r5, r3, #0 + cmp r2, r0 + beq _02233F92 + add r0, r1, #0 + ldr r1, _02233F98 ; =0x02237494 + lsl r2, r2, #3 + ldr r1, [r1, r2] + bl FUN_0200A914 + add r4, r0, #0 + ldr r0, [sp, #0x1c] + str r5, [sp] + str r0, [sp, #4] + ldr r2, [sp, #0x20] + ldr r3, [sp, #0x18] + add r0, r6, #0 + add r1, r4, #0 + bl MOD80_02236D50 + add r0, r4, #0 + bl FUN_02021A20 +_02233F92: + add sp, #8 + pop {r4, r5, r6, pc} + nop +_02233F98: .word 0x02237494 + thumb_func_end MOD80_02233F5C + + thumb_func_start MOD80_02233F9C +MOD80_02233F9C: ; 0x02233F9C + push {r3, r4, lr} + sub sp, #0xc + ldr r4, [sp, #0x18] + str r4, [sp] + ldr r4, [sp, #0x1c] + str r4, [sp, #4] + mov r4, #0 + str r4, [sp, #8] + bl MOD80_02233F5C + add sp, #0xc + pop {r3, r4, pc} + thumb_func_end MOD80_02233F9C + + thumb_func_start MOD80_02233FB4 +MOD80_02233FB4: ; 0x02233FB4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + str r1, [sp, #0x10] + mov r1, #0x61 + str r0, [sp, #0xc] + add r6, r3, #0 + bl FUN_0200A914 + str r0, [sp, #0x14] + mov r2, #0 + ldr r0, _02234044 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + ldr r1, [sp, #0x14] + add r0, r6, #0 + add r3, r2, #0 + bl MOD80_02236D50 + add r5, r6, #0 + mov r4, #1 + add r5, #0x10 + mov r7, #0 +_02233FE0: + add r0, r5, #0 + add r1, r7, #0 + bl FUN_02019620 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #3 + blt _02233FE0 + mov r3, #0 + ldr r0, _02234044 ; =0x000F0200 + str r3, [sp] + str r0, [sp, #4] + add r0, r6, #0 + ldr r1, [sp, #0x10] + ldr r2, [sp, #0x30] + add r0, #0x10 + bl MOD80_02233EA4 + ldr r2, [sp, #0x34] + sub r0, r2, #1 + cmp r0, #1 + bhi _02234022 + mov r3, #0 + str r3, [sp] + mov r0, #0x46 + str r0, [sp, #4] + ldr r0, _02234044 ; =0x000F0200 + ldr r1, [sp, #0xc] + str r0, [sp, #8] + add r0, r6, #0 + add r0, #0x10 + bl MOD80_02233EF4 +_02234022: + mov r0, #0 + str r0, [sp] + ldr r0, _02234044 ; =0x000F0200 + add r6, #0x20 + str r0, [sp, #4] + ldr r1, [sp, #0xc] + ldr r2, [sp, #0x38] + add r0, r6, #0 + mov r3, #2 + bl MOD80_02233F9C + ldr r0, [sp, #0x14] + bl FUN_02021A20 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_02234044: .word 0x000F0200 + thumb_func_end MOD80_02233FB4 + + thumb_func_start MOD80_02234048 +MOD80_02234048: ; 0x02234048 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + str r1, [sp, #0x10] + mov r1, #0x61 + str r0, [sp, #0xc] + add r6, r3, #0 + bl FUN_0200A914 + str r0, [sp, #0x14] + mov r2, #0 + ldr r0, _022340D8 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + ldr r1, [sp, #0x14] + add r0, r6, #0 + add r3, r2, #0 + bl MOD80_02236D50 + add r5, r6, #0 + mov r4, #1 + add r5, #0x10 + mov r7, #0 +_02234074: + add r0, r5, #0 + add r1, r7, #0 + bl FUN_02019620 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #3 + blt _02234074 + mov r3, #0 + ldr r0, _022340D8 ; =0x000F0200 + str r3, [sp] + str r0, [sp, #4] + add r0, r6, #0 + ldr r1, [sp, #0x10] + ldr r2, [sp, #0x30] + add r0, #0x10 + bl MOD80_02233EA4 + ldr r2, [sp, #0x34] + sub r0, r2, #1 + cmp r0, #1 + bhi _022340B6 + mov r3, #0 + str r3, [sp] + mov r0, #0x46 + str r0, [sp, #4] + ldr r0, _022340D8 ; =0x000F0200 + ldr r1, [sp, #0xc] + str r0, [sp, #8] + add r0, r6, #0 + add r0, #0x10 + bl MOD80_02233EF4 +_022340B6: + mov r0, #0 + str r0, [sp] + ldr r0, _022340D8 ; =0x000F0200 + add r6, #0x20 + str r0, [sp, #4] + ldr r1, [sp, #0xc] + ldr r2, [sp, #0x38] + add r0, r6, #0 + mov r3, #2 + bl MOD80_02233F9C + ldr r0, [sp, #0x14] + bl FUN_02021A20 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_022340D8: .word 0x000F0200 + thumb_func_end MOD80_02234048 + + thumb_func_start MOD80_022340DC +MOD80_022340DC: ; 0x022340DC + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r4, r0, #0 + add r5, r1, #0 + mov r0, #0xb + mov r1, #0x3e + str r2, [sp, #8] + str r3, [sp, #0xc] + ldr r7, [sp, #0x38] + bl FUN_020219F4 + str r0, [sp, #0x18] + mov r0, #0xb + mov r1, #0x3e + bl FUN_020219F4 + str r0, [sp, #0x14] + ldr r0, [sp, #0xc] + ldr r2, [sp, #0x18] + mov r1, #0x76 + bl FUN_020672BC + ldr r0, [sp, #0xc] + mov r1, #0x6f + mov r2, #0 + bl FUN_020672BC + add r6, r0, #1 + ldr r0, [sp, #0xc] + bl FUN_020687C8 + str r0, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x64 + bl FUN_0200A914 + str r0, [sp, #0x20] + mov r0, #0 + str r0, [sp] + mov r0, #1 + mov r1, #3 + str r0, [sp, #4] + ldr r2, [sp, #0x10] + add r0, r5, #0 + add r3, r1, #0 + bl FUN_0200AD38 + add r0, r5, #0 + add r1, r4, #0 + mov r2, #0x66 + mov r3, #0x3e + bl FUN_0200A9C4 + str r0, [sp, #0x1c] + cmp r6, #3 + beq _0223415A + ldr r1, _022341F8 ; =0x022373C0 + lsl r2, r6, #2 + ldr r1, [r1, r2] + ldr r2, [sp, #0x14] + add r0, r4, #0 + bl FUN_0200A8E0 +_0223415A: + ldr r5, [sp, #8] + mov r4, #0 +_0223415E: + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #3 + blt _0223415E + mov r2, #0 + ldr r0, _022341FC ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + ldr r0, [sp, #8] + ldr r1, [sp, #0x20] + add r3, r2, #0 + bl MOD80_02236D50 + mov r2, #0 + ldr r0, _022341FC ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + ldr r0, [sp, #8] + ldr r1, [sp, #0x18] + add r0, #0x10 + add r3, r2, #0 + bl MOD80_02236D50 + mov r0, #2 + str r0, [sp] + ldr r0, _022341FC ; =0x000F0200 + mov r2, #0 + str r0, [sp, #4] + ldr r0, [sp, #8] + ldr r1, [sp, #0x1c] + add r0, #0x20 + add r3, r2, #0 + bl MOD80_02236D50 + cmp r6, #3 + beq _022341CA + sub r0, r6, #1 + mov r3, #0 + lsl r1, r0, #2 + ldr r0, _02234200 ; =0x02237B48 + str r3, [sp] + ldr r0, [r0, r1] + ldr r1, [sp, #0x14] + str r0, [sp, #4] + ldr r0, [sp, #8] + mov r2, #0x46 + add r0, #0x10 + str r0, [sp, #8] + bl MOD80_02236D50 +_022341CA: + ldr r0, [sp, #0xc] + mov r1, #5 + mov r2, #0 + bl FUN_020672BC + strh r0, [r7] + ldr r0, [sp, #0x10] + strb r6, [r7, #2] + strb r0, [r7, #3] + ldr r0, [sp, #0x1c] + bl FUN_02021A20 + ldr r0, [sp, #0x14] + bl FUN_02021A20 + ldr r0, [sp, #0x18] + bl FUN_02021A20 + ldr r0, [sp, #0x20] + bl FUN_02021A20 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_022341F8: .word 0x022373C0 +_022341FC: .word 0x000F0200 +_02234200: .word 0x02237B48 + thumb_func_end MOD80_022340DC + + thumb_func_start MOD80_02234204 +MOD80_02234204: ; 0x02234204 + push {r3, r4, lr} + sub sp, #0xc + add r4, r2, #0 + mov r2, #0 + add r3, r0, #0 + str r2, [sp] + add r0, sp, #8 + str r0, [sp, #4] + mov r0, #0x4b + mov r1, #0xd + bl FUN_02006D18 + ldr r1, [sp, #8] + lsr r1, r1, #1 + str r1, [r4] + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD80_02234204 + + thumb_func_start MOD80_02234228 +MOD80_02234228: ; 0x02234228 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + ldr r1, _02234280 ; =0x000001EE + add r5, r0, #0 + mov r0, #0x3e + bl FUN_02016998 + add r4, r0, #0 + ldr r2, _02234280 ; =0x000001EE + mov r0, #0 + add r1, r4, #0 + bl MIi_CpuClearFast + mov r2, #0 + str r2, [sp] + add r0, sp, #8 + str r0, [sp, #4] + mov r0, #0x4b + mov r1, #0xc + add r3, r5, #0 + bl FUN_02006D18 + add r7, r0, #0 + ldr r0, [sp, #8] + ldr r5, _02234284 ; =0x00000000 + lsr r3, r0, #1 + beq _02234274 + ldr r0, _02234280 ; =0x000001EE + add r6, r7, #0 + mov r1, #1 +_02234264: + ldrh r2, [r6] + cmp r2, r0 + bhs _0223426C + strb r1, [r4, r2] +_0223426C: + add r5, r5, #1 + add r6, r6, #2 + cmp r5, r3 + blo _02234264 +_02234274: + add r0, r7, #0 + bl FUN_02016A18 + add r0, r4, #0 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02234280: .word 0x000001EE +_02234284: .word 0x00000000 + thumb_func_end MOD80_02234228 + + thumb_func_start MOD80_02234288 +MOD80_02234288: ; 0x02234288 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + add r0, #0xb8 + ldrh r0, [r0] + bl MOD80_02232FAC + cmp r0, #0 + beq _022342B0 + bl FUN_020669BC + add r2, r0, #0 + add r0, r4, #0 + add r0, #0xbc + ldr r0, [r0] + add r1, r5, #0 + bl MIi_CpuCopyFast + b _022342BC +_022342B0: + add r0, r4, #0 + add r0, #0xbc + ldr r0, [r0] + add r1, r5, #0 + bl FUN_02069A64 +_022342BC: + ldr r0, [r4] + ldr r0, [r0, #0x1c] + bl FUN_0202398C + add r1, r0, #0 + mov r0, #0x43 + lsl r0, r0, #2 + add r0, r5, r0 + mov r2, #8 + bl StringCopyN + ldr r0, [r4] + ldr r0, [r0, #0x1c] + bl FUN_020239C0 + mov r1, #0x47 + lsl r1, r1, #2 + strh r0, [r5, r1] + ldr r0, [r4] + ldr r0, [r0, #0x18] + bl FUN_02029B38 + ldr r1, _02234324 ; =0x0000011E + strb r0, [r5, r1] + ldr r0, [r4] + ldr r0, [r0, #0x18] + bl FUN_02029B3C + ldr r1, _02234328 ; =0x0000011F + strb r0, [r5, r1] + ldr r0, [r4] + ldr r0, [r0, #0x1c] + bl FUN_02023A28 + mov r1, #0x12 + lsl r1, r1, #4 + strb r0, [r5, r1] + ldr r0, [r4] + ldr r0, [r0, #0x1c] + bl FUN_020239CC + add r1, r5, #0 + add r1, #0xf6 + strb r0, [r1] + ldr r0, _0223432C ; =0x00000122 + mov r1, #0xa + strb r1, [r5, r0] + mov r1, #2 + add r0, r0, #1 + strb r1, [r5, r0] + pop {r3, r4, r5, pc} + nop +_02234324: .word 0x0000011E +_02234328: .word 0x0000011F +_0223432C: .word 0x00000122 + thumb_func_end MOD80_02234288 + + thumb_func_start MOD80_02234330 +MOD80_02234330: ; 0x02234330 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD80_02234288 + ldr r0, _0223436C ; =0x00000B18 + add r1, r5, #0 + ldrh r2, [r4, r0] + add r1, #0xec + strh r2, [r1] + add r1, r0, #2 + ldrh r2, [r4, r1] + add r1, r5, #0 + add r1, #0xee + strh r2, [r1] + add r1, r0, #4 + ldrh r2, [r4, r1] + add r1, r5, #0 + add r1, #0xf0 + strh r2, [r1] + add r1, r0, #6 + ldrh r2, [r4, r1] + add r1, r5, #0 + add r1, #0xf2 + strh r2, [r1] + add r0, #8 + ldrh r0, [r4, r0] + add r5, #0xf4 + strh r0, [r5] + pop {r3, r4, r5, pc} + .align 2, 0 +_0223436C: .word 0x00000B18 + thumb_func_end MOD80_02234330 + + thumb_func_start MOD80_02234370 +MOD80_02234370: ; 0x02234370 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r7, r0, #0 + add r5, r1, #0 + mov r0, #9 + mov r1, #0x3e + str r2, [sp] + add r6, r3, #0 + bl FUN_02012838 + str r0, [r5] + mov r4, #0 +_02234388: + add r2, r4, #0 + ldr r0, [r5] + add r1, r6, #0 + add r2, #0x68 + add r3, r4, #1 + bl FUN_02012880 + add r4, r4, #1 + cmp r4, #9 + blt _02234388 + ldr r3, _022343D8 ; =0x02237474 + add r2, sp, #4 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [sp, #4] + ldr r0, [sp] + mov r2, #0x1f + mov r3, #0xb + str r0, [sp, #0x10] + bl FUN_0200CCA4 + mov r0, #0xfe + lsl r0, r0, #4 + ldr r2, [r7, r0] + add r0, sp, #4 + ldrh r1, [r2, #6] + ldrh r2, [r2, #4] + mov r3, #0x3e + bl FUN_020010A8 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_022343D8: .word 0x02237474 + thumb_func_end MOD80_02234370 + + thumb_func_start MOD80_022343DC +MOD80_022343DC: ; 0x022343DC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + str r0, [sp] + ldr r0, [sp, #0x38] + str r1, [sp, #4] + str r0, [sp, #0x38] + ldr r0, [sp, #0x40] + ldr r4, [sp, #0x44] + lsl r5, r0, #1 + add r0, r0, #1 + lsl r1, r0, #1 + ldr r0, _022344D8 ; =0x02237B50 + str r2, [sp, #8] + ldrh r1, [r0, r1] + ldrh r0, [r0, r5] + str r3, [sp, #0xc] + mov r6, #0 + sub r7, r1, r0 + add r0, r4, #0 + bl FUN_02024CA4 + str r0, [sp, #0x14] + ldr r0, _022344D8 ; =0x02237B50 + ldrh r0, [r0, r5] + str r0, [sp, #0x18] + add r0, r6, #0 + str r0, [sp, #0x1c] + cmp r7, #0 + ble _02234456 + ldr r0, [sp, #0x18] + lsl r1, r0, #1 + ldr r0, [sp, #0xc] + add r5, r0, r1 +_0223441E: + ldr r0, [sp, #0x14] + cmp r0, #0 + beq _02234434 + ldrh r1, [r5] + add r0, r4, #0 + bl FUN_020245F0 + cmp r0, #0 + beq _0223444A + add r6, r6, #1 + b _0223444A +_02234434: + ldrh r1, [r5] + ldr r0, [sp, #0x38] + ldrb r0, [r0, r1] + cmp r0, #0 + beq _0223444A + add r0, r4, #0 + bl FUN_020245F0 + cmp r0, #0 + beq _0223444A + add r6, r6, #1 +_0223444A: + ldr r0, [sp, #0x1c] + add r5, r5, #2 + add r0, r0, #1 + str r0, [sp, #0x1c] + cmp r0, r7 + blt _0223441E +_02234456: + add r0, r6, #1 + mov r1, #0x3e + bl FUN_02012838 + ldr r1, [sp] + str r0, [r1] + mov r0, #0 + str r0, [sp, #0x10] + cmp r7, #0 + ble _022344C2 + ldr r0, [sp, #0x18] + lsl r1, r0, #1 + ldr r0, [sp, #0xc] + add r5, r0, r1 +_02234472: + ldr r0, [sp, #0x14] + cmp r0, #0 + beq _02234494 + ldrh r1, [r5] + add r0, r4, #0 + bl FUN_020245F0 + cmp r0, #0 + beq _022344B6 + ldrh r2, [r5] + ldr r0, [sp] + ldr r1, [sp, #4] + ldr r0, [r0] + add r3, r2, #0 + bl FUN_02012880 + b _022344B6 +_02234494: + ldrh r1, [r5] + ldr r0, [sp, #0x38] + ldrb r0, [r0, r1] + cmp r0, #0 + beq _022344B6 + add r0, r4, #0 + bl FUN_020245F0 + cmp r0, #0 + beq _022344B6 + ldrh r2, [r5] + ldr r0, [sp] + ldr r1, [sp, #4] + ldr r0, [r0] + add r3, r2, #0 + bl FUN_02012880 +_022344B6: + ldr r0, [sp, #0x10] + add r5, r5, #2 + add r0, r0, #1 + str r0, [sp, #0x10] + cmp r0, r7 + blt _02234472 +_022344C2: + ldr r0, [sp] + mov r2, #0x75 + add r3, r2, #0 + ldr r0, [r0] + ldr r1, [sp, #8] + sub r3, #0x77 + bl FUN_02012880 + add r0, r6, #1 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022344D8: .word 0x02237B50 + thumb_func_end MOD80_022343DC + + thumb_func_start MOD80_022344DC +MOD80_022344DC: ; 0x022344DC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x38 + ldr r5, [sp, #0x54] + add r7, r0, #0 + add r6, r1, #0 + add r0, r2, #0 + mov r1, #0xf + str r2, [sp, #0x10] + str r3, [sp, #0x14] + bl FUN_02019620 + ldrh r1, [r5, #6] + ldrh r0, [r5, #4] + ldr r2, [sp, #0x14] + add r4, r1, r0 + ldr r0, [r5, #0x14] + ldr r1, [sp, #0x50] + str r0, [sp] + ldr r0, [r5, #0x1c] + str r0, [sp, #4] + ldr r0, [sp, #0x58] + str r4, [sp, #8] + str r0, [sp, #0xc] + ldr r3, [r5, #0x18] + add r0, r6, #0 + bl MOD80_022343DC + ldr r3, _02234558 ; =0x02237474 + add r5, r0, #0 + add r2, sp, #0x18 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + add r0, sp, #0x18 + strh r5, [r0, #0x10] + ldr r0, [r6] + mov r1, #0 + str r0, [sp, #0x18] + ldr r0, [sp, #0x10] + mov r2, #0x1f + mov r3, #0xb + str r0, [sp, #0x24] + bl FUN_0200CCA4 + lsl r1, r4, #1 + ldr r2, _0223455C ; =0x0000101C + add r3, r7, r1 + ldrh r1, [r3, r2] + add r2, #0x14 + ldrh r2, [r3, r2] + add r0, sp, #0x18 + mov r3, #0x3e + bl FUN_020010A8 + add sp, #0x38 + pop {r3, r4, r5, r6, r7, pc} + nop +_02234558: .word 0x02237474 +_0223455C: .word 0x0000101C + thumb_func_end MOD80_022344DC + + thumb_func_start MOD80_02234560 +MOD80_02234560: ; 0x02234560 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r6, r0, #0 + str r1, [sp] + mov r0, #4 + mov r1, #0x3e + add r7, r2, #0 + bl FUN_02012838 + ldr r5, _022345C8 ; =0x02237B64 + str r0, [r6] + mov r4, #0 +_02234578: + ldr r0, [r6] + ldr r2, [r5] + ldr r3, [r5, #4] + add r1, r7, #0 + bl FUN_02012880 + add r4, r4, #1 + add r5, #8 + cmp r4, #4 + blt _02234578 + ldr r3, _022345CC ; =0x02237474 + add r2, sp, #4 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + mov r1, #4 + add r0, sp, #4 + strh r1, [r0, #0x10] + ldr r0, [r6] + mov r1, #0 + str r0, [sp, #4] + ldr r0, [sp] + mov r2, #0x1f + mov r3, #0xb + str r0, [sp, #0x10] + bl FUN_0200CCA4 + mov r1, #0 + add r0, sp, #4 + add r2, r1, #0 + mov r3, #0x3e + bl FUN_020010A8 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_022345C8: .word 0x02237B64 +_022345CC: .word 0x02237474 + thumb_func_end MOD80_02234560 + + thumb_func_start MOD80_022345D0 +MOD80_022345D0: ; 0x022345D0 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r6, r0, #0 + str r1, [sp] + mov r0, #0xd + mov r1, #0x3e + add r7, r2, #0 + bl FUN_02012838 + ldr r5, _02234638 ; =0x02237494 + str r0, [r6] + mov r4, #0 +_022345E8: + ldr r0, [r6] + ldr r2, [r5] + add r1, r7, #0 + add r3, r4, #0 + bl FUN_02012880 + add r4, r4, #1 + add r5, #8 + cmp r4, #0xd + blt _022345E8 + ldr r3, _0223463C ; =0x02237474 + add r2, sp, #4 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + mov r1, #0xd + add r0, sp, #4 + strh r1, [r0, #0x10] + ldr r0, [r6] + mov r1, #0 + str r0, [sp, #4] + ldr r0, [sp] + mov r2, #0x1f + mov r3, #0xb + str r0, [sp, #0x10] + bl FUN_0200CCA4 + mov r1, #0 + add r0, sp, #4 + add r2, r1, #0 + mov r3, #0x3e + bl FUN_020010A8 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02234638: .word 0x02237494 +_0223463C: .word 0x02237474 + thumb_func_end MOD80_022345D0 + + thumb_func_start MOD80_02234640 +MOD80_02234640: ; 0x02234640 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r4, r0, #0 + cmp r5, #0xc + blt _0223464E + bl ErrorHandling +_0223464E: + ldr r0, _02234660 ; =0x02237498 + lsl r1, r5, #3 + ldrsh r0, [r0, r1] + strb r0, [r4, #3] + ldr r0, _02234664 ; =0x0223749A + ldrsh r0, [r0, r1] + strb r0, [r4, #4] + pop {r3, r4, r5, pc} + nop +_02234660: .word 0x02237498 +_02234664: .word 0x0223749A + thumb_func_end MOD80_02234640 + + thumb_func_start MOD80_02234668 +MOD80_02234668: ; 0x02234668 + push {r3, r4, r5, r6} + ldr r6, _02234694 ; =0x02237494 + mov r5, #0 + mov r2, #6 + mov r3, #4 +_02234672: + ldrsh r4, [r6, r3] + cmp r0, r4 + bne _02234684 + ldrsh r4, [r6, r2] + cmp r1, r4 + bne _02234684 + add r0, r5, #0 + pop {r3, r4, r5, r6} + bx lr +_02234684: + add r5, r5, #1 + add r6, #8 + cmp r5, #0xd + blt _02234672 + mov r0, #0 + pop {r3, r4, r5, r6} + bx lr + nop +_02234694: .word 0x02237494 + thumb_func_end MOD80_02234668 + + thumb_func_start MOD80_02234698 +MOD80_02234698: ; 0x02234698 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + add r4, r1, #0 + bl FUN_02001204 + add r6, r0, #0 + add r0, r5, #0 + add r1, sp, #0 + bl FUN_0200143C + add r0, sp, #0 + ldrh r1, [r4] + ldrh r0, [r0] + cmp r1, r0 + beq _022346CA + ldr r0, _022346D0 ; =0x0000FFFF + cmp r1, r0 + beq _022346C4 + ldr r0, _022346D4 ; =0x000005DC + bl FUN_020054C8 +_022346C4: + add r0, sp, #0 + ldrh r0, [r0] + strh r0, [r4] +_022346CA: + add r0, r6, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_022346D0: .word 0x0000FFFF +_022346D4: .word 0x000005DC + thumb_func_end MOD80_02234698 + + thumb_func_start MOD80_022346D8 +MOD80_022346D8: ; 0x022346D8 + mov r2, #0 + add r3, r0, #0 + add r1, r2, #0 +_022346DE: + strh r1, [r3, #4] + strh r1, [r3, #0x18] + add r2, r2, #1 + add r3, r3, #2 + cmp r2, #0xa + blt _022346DE + strh r1, [r0] + strh r1, [r0, #2] + bx lr + thumb_func_end MOD80_022346D8 + + thumb_func_start MOD80_022346F0 +MOD80_022346F0: ; 0x022346F0 + lsl r1, r1, #1 + add r0, r0, r1 + strh r2, [r0, #4] + strh r3, [r0, #0x18] + bx lr + .align 2, 0 + thumb_func_end MOD80_022346F0 + + thumb_func_start MOD80_022346FC +MOD80_022346FC: ; 0x022346FC + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD80_022349A4 + ldr r0, [r4, #4] + bl MOD80_02234780 + add r0, r4, #0 + bl MOD80_022348CC + add r0, r4, #0 + bl MOD80_02234958 + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + add r0, r4, #0 + bl MOD80_02236D84 + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #2 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD80_022346FC + + thumb_func_start MOD80_02234740 +MOD80_02234740: ; 0x02234740 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222E79C + bl FUN_02033EEC + ldr r1, [r4, #0x2c] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _0223475C ; =0x02237BC8 + ldr r1, [r1, r2] + blx r1 + pop {r4, pc} + nop +_0223475C: .word 0x02237BC8 + thumb_func_end MOD80_02234740 + + thumb_func_start MOD80_02234760 +MOD80_02234760: ; 0x02234760 + push {r4, lr} + add r4, r0, #0 + bl MOD80_022349BC + add r0, r4, #0 + bl MOD80_02234994 + ldr r0, [r4, #4] + bl MOD80_022348A0 + add r0, r4, #0 + bl MOD80_0222E7B0 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02234760 + + thumb_func_start MOD80_02234780 +MOD80_02234780: ; 0x02234780 + push {r4, r5, lr} + sub sp, #0x9c + ldr r5, _02234888 ; =0x022374FC + add r3, sp, #0x8c + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _0223488C ; =0x02237544 + add r3, sp, #0x70 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _02234890 ; =0x02237528 + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018744 + ldr r5, _02234894 ; =0x0223757C + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #2 + bl FUN_02018744 + ldr r5, _02234898 ; =0x02237560 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _0223489C ; =0x0223750C + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #5 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + add sp, #0x9c + pop {r4, r5, pc} + nop +_02234888: .word 0x022374FC +_0223488C: .word 0x02237544 +_02234890: .word 0x02237528 +_02234894: .word 0x0223757C +_02234898: .word 0x02237560 +_0223489C: .word 0x0223750C + thumb_func_end MOD80_02234780 + + thumb_func_start MOD80_022348A0 +MOD80_022348A0: ; 0x022348A0 + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD80_022348A0 + + thumb_func_start MOD80_022348CC +MOD80_022348CC: ; 0x022348CC + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + ldr r4, [r5, #4] + mov r0, #0x60 + mov r1, #0 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + mov r0, #0x68 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02006930 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x3e + bl FUN_02002EEC + ldr r0, [r5] + ldr r0, [r0, #0x24] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CB00 + ldr r0, _02234954 ; =0x00000FEC + ldrh r0, [r5, r0] + cmp r0, #0 + bne _02234944 + mov r0, #4 + mov r1, #0 + bl FUN_0201797C + mov r0, #5 + mov r1, #0 + bl FUN_0201797C + mov r0, #0x10 + mov r1, #0 + bl FUN_0201E74C +_02234944: + ldr r0, [r5, #0x20] + cmp r0, #9 + bne _02234950 + add r0, r5, #0 + bl MOD80_0222F338 +_02234950: + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_02234954: .word 0x00000FEC + thumb_func_end MOD80_022348CC + + thumb_func_start MOD80_02234958 +MOD80_02234958: ; 0x02234958 + push {r3, r4, lr} + sub sp, #0x14 + add r4, r0, #0 + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + ldr r1, _02234990 ; =0x00000E98 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + ldr r0, _02234990 ; =0x00000E98 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + add sp, #0x14 + pop {r3, r4, pc} + nop +_02234990: .word 0x00000E98 + thumb_func_end MOD80_02234958 + + thumb_func_start MOD80_02234994 +MOD80_02234994: ; 0x02234994 + ldr r1, _0223499C ; =0x00000E98 + ldr r3, _022349A0 ; =FUN_02019178 + add r0, r0, r1 + bx r3 + .align 2, 0 +_0223499C: .word 0x00000E98 +_022349A0: .word FUN_02019178 + thumb_func_end MOD80_02234994 + + thumb_func_start MOD80_022349A4 +MOD80_022349A4: ; 0x022349A4 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xb4 + mov r1, #0x3e + bl FUN_020219F4 + ldr r1, _022349B8 ; =0x00000B4C + str r0, [r4, r1] + pop {r4, pc} + nop +_022349B8: .word 0x00000B4C + thumb_func_end MOD80_022349A4 + + thumb_func_start MOD80_022349BC +MOD80_022349BC: ; 0x022349BC + ldr r1, _022349C4 ; =0x00000B4C + ldr r3, _022349C8 ; =FUN_02021A20 + ldr r0, [r0, r1] + bx r3 + .align 2, 0 +_022349C4: .word 0x00000B4C +_022349C8: .word FUN_02021A20 + thumb_func_end MOD80_022349BC + + thumb_func_start MOD80_022349CC +MOD80_022349CC: ; 0x022349CC + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r1, [r4, #0x24] + cmp r1, #0xc + bhi _02234AA4 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_022349E4: ; jump table + .short _02234AA4 - _022349E4 - 2 ; case 0 + .short _02234AA4 - _022349E4 - 2 ; case 1 + .short _02234AA4 - _022349E4 - 2 ; case 2 + .short _02234AA4 - _022349E4 - 2 ; case 3 + .short _02234AA4 - _022349E4 - 2 ; case 4 + .short _02234AA4 - _022349E4 - 2 ; case 5 + .short _02234AA4 - _022349E4 - 2 ; case 6 + .short _022349FE - _022349E4 - 2 ; case 7 + .short _02234A1A - _022349E4 - 2 ; case 8 + .short _02234A36 - _022349E4 - 2 ; case 9 + .short _02234A52 - _022349E4 - 2 ; case 10 + .short _02234A74 - _022349E4 - 2 ; case 11 + .short _02234A8A - _022349E4 - 2 ; case 12 +_022349FE: + ldr r1, _02234AB4 ; =0x00000F0F + mov r2, #0x18 + str r1, [sp] + ldr r1, _02234AB8 ; =0x00000B34 + mov r3, #1 + ldr r1, [r4, r1] + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #2 + bl MOD80_0222E6DC + b _02234AA8 +_02234A1A: + ldr r1, _02234AB4 ; =0x00000F0F + mov r2, #0x18 + str r1, [sp] + ldr r1, _02234AB8 ; =0x00000B34 + mov r3, #1 + ldr r1, [r4, r1] + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #7 + bl MOD80_0222E6DC + b _02234AA8 +_02234A36: + ldr r1, _02234AB4 ; =0x00000F0F + mov r2, #0x18 + str r1, [sp] + ldr r1, _02234AB8 ; =0x00000B34 + mov r3, #1 + ldr r1, [r4, r1] + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #0xc + bl MOD80_0222E6DC + b _02234AA8 +_02234A52: + ldr r1, _02234AB4 ; =0x00000F0F + mov r2, #0x18 + str r1, [sp] + ldr r1, _02234AB8 ; =0x00000B34 + mov r3, #1 + ldr r1, [r4, r1] + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #0x12 + bl MOD80_0222E6DC + ldr r0, _02234ABC ; =0x0000100C + mov r1, #1 + str r1, [r4, r0] + b _02234AA8 +_02234A74: + ldr r1, _02234AB4 ; =0x00000F0F + mov r2, #0x18 + str r1, [sp] + ldr r1, _02234AB8 ; =0x00000B34 + mov r3, #0 + ldr r1, [r4, r1] + bl MOD80_02236C70 + mov r0, #0x18 + str r0, [r4, #0x2c] + b _02234AA8 +_02234A8A: + ldr r1, _02234AB4 ; =0x00000F0F + mov r2, #0x8a + str r1, [sp] + ldr r1, _02234AB8 ; =0x00000B34 + mov r3, #1 + ldr r1, [r4, r1] + bl MOD80_02236C70 + mov r0, #1 + str r0, [r4, #0x18] + mov r0, #0x1d + str r0, [r4, #0x2c] + b _02234AA8 +_02234AA4: + bl ErrorHandling +_02234AA8: + add r0, r4, #0 + bl MOD80_0222E8BC + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02234AB4: .word 0x00000F0F +_02234AB8: .word 0x00000B34 +_02234ABC: .word 0x0000100C + thumb_func_end MOD80_022349CC + + thumb_func_start MOD80_02234AC0 +MOD80_02234AC0: ; 0x02234AC0 + push {r4, lr} + add r4, r0, #0 + add r0, #0xd4 + bl FUN_0206AA84 + add r0, r4, #0 + add r0, #0xd4 + bl MOD80_0222DBC4 + mov r0, #3 + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r1, #4 + mov r2, #6 + bl MOD80_02235820 + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02234AC0 + + thumb_func_start MOD80_02234AE4 +MOD80_02234AE4: ; 0x02234AE4 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _02234B5A + bl MOD80_0222DBB8 + add r1, r0, #0 + add r1, #0xf + cmp r1, #0xf + bhi _02234B5A + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02234B08: ; jump table + .short _02234B4E - _02234B08 - 2 ; case 0 + .short _02234B4E - _02234B08 - 2 ; case 1 + .short _02234B56 - _02234B08 - 2 ; case 2 + .short _02234B46 - _02234B08 - 2 ; case 3 + .short _02234B3E - _02234B08 - 2 ; case 4 + .short _02234B3E - _02234B08 - 2 ; case 5 + .short _02234B3E - _02234B08 - 2 ; case 6 + .short _02234B3E - _02234B08 - 2 ; case 7 + .short _02234B3E - _02234B08 - 2 ; case 8 + .short _02234B3E - _02234B08 - 2 ; case 9 + .short _02234B3E - _02234B08 - 2 ; case 10 + .short _02234B46 - _02234B08 - 2 ; case 11 + .short _02234B5A - _02234B08 - 2 ; case 12 + .short _02234B4E - _02234B08 - 2 ; case 13 + .short _02234B36 - _02234B08 - 2 ; case 14 + .short _02234B28 - _02234B08 - 2 ; case 15 +_02234B28: + add r0, r4, #0 + mov r1, #1 + bl MOD80_02235534 + mov r0, #0x1e + str r0, [r4, #0x2c] + b _02234B5A +_02234B36: + str r0, [r4, #0x3c] + mov r0, #0x26 + str r0, [r4, #0x2c] + b _02234B5A +_02234B3E: + str r0, [r4, #0x3c] + mov r0, #0x27 + str r0, [r4, #0x2c] + b _02234B5A +_02234B46: + str r0, [r4, #0x3c] + mov r0, #0x27 + str r0, [r4, #0x2c] + b _02234B5A +_02234B4E: + str r0, [r4, #0x3c] + mov r0, #0x26 + str r0, [r4, #0x2c] + b _02234B5A +_02234B56: + bl FUN_020335E0 +_02234B5A: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02234AE4 + + thumb_func_start MOD80_02234B60 +MOD80_02234B60: ; 0x02234B60 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DC14 + mov r0, #5 + str r0, [r4, #0x2c] + mov r0, #1 + strh r0, [r4, #0x36] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02234B60 + + thumb_func_start MOD80_02234B74 +MOD80_02234B74: ; 0x02234B74 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _02234BD2 + bl MOD80_0222DBB8 + add r1, r0, #0 + add r1, #0xf + cmp r1, #0xf + bhi _02234BD2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02234B98: ; jump table + .short _02234BC6 - _02234B98 - 2 ; case 0 + .short _02234BC6 - _02234B98 - 2 ; case 1 + .short _02234BCE - _02234B98 - 2 ; case 2 + .short _02234BBE - _02234B98 - 2 ; case 3 + .short _02234BD2 - _02234B98 - 2 ; case 4 + .short _02234BD2 - _02234B98 - 2 ; case 5 + .short _02234BD2 - _02234B98 - 2 ; case 6 + .short _02234BD2 - _02234B98 - 2 ; case 7 + .short _02234BD2 - _02234B98 - 2 ; case 8 + .short _02234BD2 - _02234B98 - 2 ; case 9 + .short _02234BC6 - _02234B98 - 2 ; case 10 + .short _02234BBE - _02234B98 - 2 ; case 11 + .short _02234BC6 - _02234B98 - 2 ; case 12 + .short _02234BC6 - _02234B98 - 2 ; case 13 + .short _02234BC6 - _02234B98 - 2 ; case 14 + .short _02234BB8 - _02234B98 - 2 ; case 15 +_02234BB8: + mov r0, #0x21 + str r0, [r4, #0x2c] + b _02234BD2 +_02234BBE: + str r0, [r4, #0x3c] + mov r0, #0x27 + str r0, [r4, #0x2c] + b _02234BD2 +_02234BC6: + mov r0, #4 + bl FUN_020336A0 + b _02234BD2 +_02234BCE: + bl FUN_020335E0 +_02234BD2: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02234B74 + + thumb_func_start MOD80_02234BD8 +MOD80_02234BD8: ; 0x02234BD8 + push {r4, lr} + add r4, r0, #0 + add r0, #0xd4 + bl MOD80_0222DC68 + mov r0, #8 + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r1, #9 + mov r2, #0xb + bl MOD80_02235820 + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02234BD8 + + thumb_func_start MOD80_02234BF4 +MOD80_02234BF4: ; 0x02234BF4 + push {r3, r4, r5, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _02234C82 + bl MOD80_0222DBB8 + add r1, r0, #0 + add r1, #0xf + cmp r1, #0xf + bhi _02234C82 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02234C18: ; jump table + .short _02234C76 - _02234C18 - 2 ; case 0 + .short _02234C76 - _02234C18 - 2 ; case 1 + .short _02234C7E - _02234C18 - 2 ; case 2 + .short _02234C6E - _02234C18 - 2 ; case 3 + .short _02234C82 - _02234C18 - 2 ; case 4 + .short _02234C82 - _02234C18 - 2 ; case 5 + .short _02234C82 - _02234C18 - 2 ; case 6 + .short _02234C82 - _02234C18 - 2 ; case 7 + .short _02234C82 - _02234C18 - 2 ; case 8 + .short _02234C82 - _02234C18 - 2 ; case 9 + .short _02234C82 - _02234C18 - 2 ; case 10 + .short _02234C68 - _02234C18 - 2 ; case 11 + .short _02234C62 - _02234C18 - 2 ; case 12 + .short _02234C76 - _02234C18 - 2 ; case 13 + .short _02234C82 - _02234C18 - 2 ; case 14 + .short _02234C38 - _02234C18 - 2 ; case 15 +_02234C38: + ldr r0, _02234C88 ; =0x000001F5 + ldrsb r5, [r4, r0] + cmp r5, #0 + beq _02234C46 + mov r0, #0x18 + str r0, [r4, #0x2c] + b _02234C82 +_02234C46: + ldr r0, [r4] + ldr r0, [r0] + bl FUN_0202AC18 + add r1, r4, #0 + add r2, r0, #0 + add r0, r4, #0 + add r1, #0xd4 + add r3, r5, #0 + bl MOD80_022355F0 + mov r0, #0x1e + str r0, [r4, #0x2c] + b _02234C82 +_02234C62: + mov r0, #0x26 + str r0, [r4, #0x2c] + b _02234C82 +_02234C68: + mov r0, #0x26 + str r0, [r4, #0x2c] + b _02234C82 +_02234C6E: + str r0, [r4, #0x3c] + mov r0, #0x27 + str r0, [r4, #0x2c] + b _02234C82 +_02234C76: + str r0, [r4, #0x3c] + mov r0, #0x26 + str r0, [r4, #0x2c] + b _02234C82 +_02234C7E: + bl FUN_020335E0 +_02234C82: + mov r0, #3 + pop {r3, r4, r5, pc} + nop +_02234C88: .word 0x000001F5 + thumb_func_end MOD80_02234BF4 + + thumb_func_start MOD80_02234C8C +MOD80_02234C8C: ; 0x02234C8C + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DD4C + mov r0, #0xa + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02234C8C + + thumb_func_start MOD80_02234C9C +MOD80_02234C9C: ; 0x02234C9C + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _02234CF8 + bl MOD80_0222DBB8 + add r0, #0xf + cmp r0, #0xf + bhi _02234CF8 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02234CBE: ; jump table + .short _02234CEC - _02234CBE - 2 ; case 0 + .short _02234CEC - _02234CBE - 2 ; case 1 + .short _02234CF4 - _02234CBE - 2 ; case 2 + .short _02234CEC - _02234CBE - 2 ; case 3 + .short _02234CF8 - _02234CBE - 2 ; case 4 + .short _02234CF8 - _02234CBE - 2 ; case 5 + .short _02234CF8 - _02234CBE - 2 ; case 6 + .short _02234CF8 - _02234CBE - 2 ; case 7 + .short _02234CF8 - _02234CBE - 2 ; case 8 + .short _02234CF8 - _02234CBE - 2 ; case 9 + .short _02234CE4 - _02234CBE - 2 ; case 10 + .short _02234CE4 - _02234CBE - 2 ; case 11 + .short _02234CE4 - _02234CBE - 2 ; case 12 + .short _02234CEC - _02234CBE - 2 ; case 13 + .short _02234CF8 - _02234CBE - 2 ; case 14 + .short _02234CDE - _02234CBE - 2 ; case 15 +_02234CDE: + mov r0, #0x21 + str r0, [r4, #0x2c] + b _02234CF8 +_02234CE4: + mov r0, #3 + bl FUN_020336A0 + b _02234CF8 +_02234CEC: + mov r0, #4 + bl FUN_020336A0 + b _02234CF8 +_02234CF4: + bl FUN_020335E0 +_02234CF8: + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02234C9C + + thumb_func_start MOD80_02234CFC +MOD80_02234CFC: ; 0x02234CFC + push {r4, lr} + add r4, r0, #0 + add r0, #0xd4 + bl FUN_0206AA84 + add r0, r4, #0 + add r0, #0xc4 + ldr r1, [r0] + mov r0, #0x49 + lsl r0, r0, #2 + mul r0, r1 + add r1, r4, r0 + mov r0, #3 + lsl r0, r0, #8 + ldr r2, _02234D38 ; =0x000009F4 + ldr r0, [r1, r0] + add r1, r4, #0 + add r1, #0xd4 + add r2, r4, r2 + bl MOD80_0222DE04 + add r0, r4, #0 + mov r1, #0xe + mov r2, #0x10 + bl MOD80_02235820 + mov r0, #0xd + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_02234D38: .word 0x000009F4 + thumb_func_end MOD80_02234CFC + + thumb_func_start MOD80_02234D3C +MOD80_02234D3C: ; 0x02234D3C + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _02234DEE + bl MOD80_0222DBB8 + add r1, r0, #0 + add r1, #0xf + cmp r1, #0xf + bhi _02234DEE + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02234D60: ; jump table + .short _02234DE2 - _02234D60 - 2 ; case 0 + .short _02234DE2 - _02234D60 - 2 ; case 1 + .short _02234DEA - _02234D60 - 2 ; case 2 + .short _02234DDA - _02234D60 - 2 ; case 3 + .short _02234DD2 - _02234D60 - 2 ; case 4 + .short _02234DD2 - _02234D60 - 2 ; case 5 + .short _02234DD2 - _02234D60 - 2 ; case 6 + .short _02234DD2 - _02234D60 - 2 ; case 7 + .short _02234DD2 - _02234D60 - 2 ; case 8 + .short _02234DD2 - _02234D60 - 2 ; case 9 + .short _02234DCA - _02234D60 - 2 ; case 10 + .short _02234DEE - _02234D60 - 2 ; case 11 + .short _02234DEE - _02234D60 - 2 ; case 12 + .short _02234DE2 - _02234D60 - 2 ; case 13 + .short _02234DEE - _02234D60 - 2 ; case 14 + .short _02234D80 - _02234D60 - 2 ; case 15 +_02234D80: + mov r0, #0x1e + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r1, #0 + bl MOD80_02235534 + add r2, r4, #0 + add r2, #0xb8 + ldr r1, _02234DF4 ; =0x000009F4 + ldrh r2, [r2] + add r0, r4, #0 + add r1, r4, r1 + bl MOD80_022356AC + ldr r0, [r4] + ldr r1, _02234DF4 ; =0x000009F4 + ldr r0, [r0, #0x18] + add r1, r4, r1 + bl MOD80_02235784 + ldr r0, [r4] + mov r1, #0x19 + ldr r0, [r0, #0x28] + bl FUN_0202A170 + ldr r0, [r4] + ldr r1, _02234DF4 ; =0x000009F4 + ldr r0, [r0, #0x2c] + add r1, r4, r1 + bl MOD80_022357A0 + ldr r0, [r4] + mov r1, #0x18 + ldr r0, [r0, #0x28] + bl FUN_0202A0E8 + b _02234DEE +_02234DCA: + str r0, [r4, #0x3c] + mov r0, #0x11 + str r0, [r4, #0x2c] + b _02234DEE +_02234DD2: + str r0, [r4, #0x3c] + mov r0, #0x27 + str r0, [r4, #0x2c] + b _02234DEE +_02234DDA: + str r0, [r4, #0x3c] + mov r0, #0x27 + str r0, [r4, #0x2c] + b _02234DEE +_02234DE2: + str r0, [r4, #0x3c] + mov r0, #0x26 + str r0, [r4, #0x2c] + b _02234DEE +_02234DEA: + bl FUN_020335E0 +_02234DEE: + mov r0, #3 + pop {r4, pc} + nop +_02234DF4: .word 0x000009F4 + thumb_func_end MOD80_02234D3C + + thumb_func_start MOD80_02234DF8 +MOD80_02234DF8: ; 0x02234DF8 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DE68 + mov r0, #0xf + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02234DF8 + + thumb_func_start MOD80_02234E08 +MOD80_02234E08: ; 0x02234E08 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _02234E64 + bl MOD80_0222DBB8 + add r0, #0xf + cmp r0, #0xf + bhi _02234E64 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02234E2A: ; jump table + .short _02234E58 - _02234E2A - 2 ; case 0 + .short _02234E58 - _02234E2A - 2 ; case 1 + .short _02234E60 - _02234E2A - 2 ; case 2 + .short _02234E58 - _02234E2A - 2 ; case 3 + .short _02234E64 - _02234E2A - 2 ; case 4 + .short _02234E64 - _02234E2A - 2 ; case 5 + .short _02234E64 - _02234E2A - 2 ; case 6 + .short _02234E64 - _02234E2A - 2 ; case 7 + .short _02234E64 - _02234E2A - 2 ; case 8 + .short _02234E64 - _02234E2A - 2 ; case 9 + .short _02234E50 - _02234E2A - 2 ; case 10 + .short _02234E64 - _02234E2A - 2 ; case 11 + .short _02234E64 - _02234E2A - 2 ; case 12 + .short _02234E58 - _02234E2A - 2 ; case 13 + .short _02234E64 - _02234E2A - 2 ; case 14 + .short _02234E4A - _02234E2A - 2 ; case 15 +_02234E4A: + mov r0, #0x21 + str r0, [r4, #0x2c] + b _02234E64 +_02234E50: + mov r0, #3 + bl FUN_020336A0 + b _02234E64 +_02234E58: + mov r0, #4 + bl FUN_020336A0 + b _02234E64 +_02234E60: + bl FUN_020335E0 +_02234E64: + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02234E08 + + thumb_func_start MOD80_02234E68 +MOD80_02234E68: ; 0x02234E68 + push {r4, lr} + add r4, r0, #0 + add r0, #0xd4 + bl MOD80_0222DCB8 + mov r0, #0x19 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02234E68 + + thumb_func_start MOD80_02234E7C +MOD80_02234E7C: ; 0x02234E7C + push {r3, r4, r5, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _02234EE2 + bl MOD80_0222DBB8 + add r1, r0, #0 + add r1, #0xf + cmp r1, #0x10 + bhi _02234EE2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02234EA0: ; jump table + .short _02234FF4 - _02234EA0 - 2 ; case 0 + .short _02234FF4 - _02234EA0 - 2 ; case 1 + .short _02234FFC - _02234EA0 - 2 ; case 2 + .short _02234FF4 - _02234EA0 - 2 ; case 3 + .short _02235006 - _02234EA0 - 2 ; case 4 + .short _02235006 - _02234EA0 - 2 ; case 5 + .short _02235006 - _02234EA0 - 2 ; case 6 + .short _02235006 - _02234EA0 - 2 ; case 7 + .short _02235006 - _02234EA0 - 2 ; case 8 + .short _02235006 - _02234EA0 - 2 ; case 9 + .short _02235006 - _02234EA0 - 2 ; case 10 + .short _02234FA4 - _02234EA0 - 2 ; case 11 + .short _02234F38 - _02234EA0 - 2 ; case 12 + .short _02234FF4 - _02234EA0 - 2 ; case 13 + .short _02235006 - _02234EA0 - 2 ; case 14 + .short _02234EC2 - _02234EA0 - 2 ; case 15 + .short _02234EC8 - _02234EA0 - 2 ; case 16 +_02234EC2: + mov r0, #0x1a + str r0, [r4, #0x2c] + b _02235006 +_02234EC8: + mov r0, #1 + add r1, r4, #0 + strh r0, [r4, #0x36] + add r0, r4, #0 + add r1, #0xd4 + bl MOD80_022357DC + cmp r0, #0 + beq _02234F2C + cmp r0, #1 + beq _02234EE4 + cmp r0, #2 + beq _02234F08 +_02234EE2: + b _02235006 +_02234EE4: + add r0, r4, #0 + bl MOD80_0222E8D8 + ldr r0, _0223500C ; =0x00000F0F + ldr r1, _02235010 ; =0x00000B34 + str r0, [sp] + ldr r1, [r4, r1] + add r0, r4, #0 + mov r2, #0x1d + mov r3, #1 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #0x1c + bl MOD80_0222E6DC + b _02235006 +_02234F08: + add r0, r4, #0 + bl MOD80_0222E8D8 + ldr r0, _0223500C ; =0x00000F0F + ldr r1, _02235010 ; =0x00000B34 + str r0, [sp] + ldr r1, [r4, r1] + add r0, r4, #0 + mov r2, #0x23 + mov r3, #1 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #0x1c + bl MOD80_0222E6DC + b _02235006 +_02234F2C: + mov r0, #0x12 + str r0, [r4, #0x2c] + ldr r0, _02235014 ; =0x0000100C + mov r1, #1 + str r1, [r4, r0] + b _02235006 +_02234F38: + mov r0, #0 + strh r0, [r4, #0x36] + ldr r0, [r4] + ldr r0, [r0] + bl FUN_0202ABDC + cmp r0, #0 + beq _02234F9C + mov r0, #0x3e + bl FUN_020669C0 + add r5, r0, #0 + ldr r0, [r4] + add r1, r5, #0 + ldr r0, [r0] + bl FUN_0202ABEC + add r0, r5, #0 + bl FUN_020690E4 + add r2, r0, #0 + mov r0, #0xb3 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200ACF8 + mov r0, #2 + str r0, [r4, #0x28] + mov r0, #0x22 + str r0, [r4, #0x2c] + ldr r0, [r4] + ldr r0, [r0] + bl FUN_0202AC18 + add r2, r0, #0 + add r0, r4, #0 + add r1, r5, #0 + mov r3, #0 + bl MOD80_022355F0 + ldr r0, [r4] + mov r1, #0 + ldr r0, [r0] + bl FUN_0202ABE4 + add r0, r5, #0 + bl FUN_02016A18 + b _02235006 +_02234F9C: + add r0, r4, #0 + bl MOD80_022350C4 + b _02235006 +_02234FA4: + mov r0, #0 + strh r0, [r4, #0x36] + ldr r0, [r4] + ldr r0, [r0] + bl FUN_0202ABDC + cmp r0, #0 + beq _02235006 + mov r0, #0x3e + bl FUN_020669C0 + add r5, r0, #0 + ldr r0, [r4] + add r1, r5, #0 + ldr r0, [r0] + bl FUN_0202ABEC + add r0, r5, #0 + bl FUN_020690E4 + add r2, r0, #0 + mov r0, #0xb3 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200ACF8 + mov r0, #3 + str r0, [r4, #0x28] + mov r0, #0x22 + str r0, [r4, #0x2c] + ldr r0, [r4] + mov r1, #0 + ldr r0, [r0] + bl FUN_0202ABE4 + add r0, r5, #0 + bl FUN_02016A18 + b _02235006 +_02234FF4: + str r0, [r4, #0x3c] + mov r0, #0x26 + str r0, [r4, #0x2c] + b _02235006 +_02234FFC: + mov r0, #3 + mov r1, #1 + mov r2, #0 + bl FUN_02033F70 +_02235006: + mov r0, #3 + pop {r3, r4, r5, pc} + nop +_0223500C: .word 0x00000F0F +_02235010: .word 0x00000B34 +_02235014: .word 0x0000100C + thumb_func_end MOD80_02234E7C + + thumb_func_start MOD80_02235018 +MOD80_02235018: ; 0x02235018 + push {r4, lr} + mov r1, #1 + mov r2, #0 + add r4, r0, #0 + bl MOD80_0222E7A8 + mov r0, #0x24 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02235018 + + thumb_func_start MOD80_0223502C +MOD80_0223502C: ; 0x0223502C + push {r4, lr} + add r4, r0, #0 + add r0, #0xd4 + bl MOD80_0222DC68 + mov r0, #0x1b + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_0223502C + + thumb_func_start MOD80_02235040 +MOD80_02235040: ; 0x02235040 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _022350BE + bl MOD80_0222DBB8 + add r1, r0, #0 + add r1, #0xf + cmp r1, #0xf + bhi _022350B8 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02235064: ; jump table + .short _022350AC - _02235064 - 2 ; case 0 + .short _022350AC - _02235064 - 2 ; case 1 + .short _022350B4 - _02235064 - 2 ; case 2 + .short _022350A4 - _02235064 - 2 ; case 3 + .short _022350B8 - _02235064 - 2 ; case 4 + .short _022350B8 - _02235064 - 2 ; case 5 + .short _022350B8 - _02235064 - 2 ; case 6 + .short _022350B8 - _02235064 - 2 ; case 7 + .short _022350B8 - _02235064 - 2 ; case 8 + .short _022350B8 - _02235064 - 2 ; case 9 + .short _022350B8 - _02235064 - 2 ; case 10 + .short _022350B8 - _02235064 - 2 ; case 11 + .short _0223509E - _02235064 - 2 ; case 12 + .short _022350AC - _02235064 - 2 ; case 13 + .short _022350B8 - _02235064 - 2 ; case 14 + .short _02235084 - _02235064 - 2 ; case 15 +_02235084: + add r0, r4, #0 + bl MOD80_02235830 + cmp r0, #0 + beq _02235098 + mov r0, #0x16 + str r0, [r4, #0x2c] + mov r0, #0 + strh r0, [r4, #0x36] + b _022350B8 +_02235098: + mov r0, #1 + strh r0, [r4, #0x36] + b _022350B8 +_0223509E: + mov r0, #0 + strh r0, [r4, #0x36] + b _022350B8 +_022350A4: + str r0, [r4, #0x3c] + mov r0, #0x27 + str r0, [r4, #0x2c] + b _022350B8 +_022350AC: + str r0, [r4, #0x3c] + mov r0, #0x26 + str r0, [r4, #0x2c] + b _022350B8 +_022350B4: + bl FUN_020335E0 +_022350B8: + add r0, r4, #0 + bl MOD80_022350C4 +_022350BE: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02235040 + + thumb_func_start MOD80_022350C4 +MOD80_022350C4: ; 0x022350C4 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #0x1c] + cmp r1, #1 + beq _022350D4 + cmp r1, #2 + beq _022350E2 + pop {r4, pc} +_022350D4: + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + mov r0, #0x24 + str r0, [r4, #0x2c] + pop {r4, pc} +_022350E2: + mov r1, #2 + mov r2, #3 + bl MOD80_0222E7A8 + mov r0, #0x24 + str r0, [r4, #0x2c] + pop {r4, pc} + thumb_func_end MOD80_022350C4 + + thumb_func_start MOD80_022350F0 +MOD80_022350F0: ; 0x022350F0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + ldr r0, [r0] + bl FUN_0202AC18 + ldr r3, _02235154 ; =0x000001F5 + add r1, r4, #0 + add r2, r0, #0 + ldrsb r3, [r4, r3] + add r0, r4, #0 + add r1, #0xd4 + bl MOD80_022355F0 + ldr r0, [r4] + add r1, r4, #0 + ldr r0, [r0, #0x18] + add r1, #0xd4 + bl MOD80_02235784 + ldr r0, [r4] + mov r1, #0x19 + ldr r0, [r0, #0x28] + bl FUN_0202A170 + ldr r0, [r4] + add r1, r4, #0 + ldr r0, [r0, #0x2c] + add r1, #0xd4 + bl MOD80_022357A0 + ldr r0, [r4] + mov r1, #0x18 + ldr r0, [r0, #0x28] + bl FUN_0202A0E8 + ldr r0, [r4] + mov r1, #0 + ldr r0, [r0] + bl FUN_0202ABE4 + mov r0, #0x1e + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r1, #0x13 + mov r2, #0xb + bl MOD80_02235820 + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_02235154: .word 0x000001F5 + thumb_func_end MOD80_022350F0 + + thumb_func_start MOD80_02235158 +MOD80_02235158: ; 0x02235158 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DD08 + mov r0, #0x14 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02235158 + + thumb_func_start MOD80_02235168 +MOD80_02235168: ; 0x02235168 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _022351C8 + bl MOD80_0222DBB8 + add r1, r0, #0 + add r1, #0xf + cmp r1, #0xf + bhi _022351C8 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0223518C: ; jump table + .short _022351BC - _0223518C - 2 ; case 0 + .short _022351BC - _0223518C - 2 ; case 1 + .short _022351C4 - _0223518C - 2 ; case 2 + .short _022351BA - _0223518C - 2 ; case 3 + .short _022351C8 - _0223518C - 2 ; case 4 + .short _022351C8 - _0223518C - 2 ; case 5 + .short _022351C8 - _0223518C - 2 ; case 6 + .short _022351C8 - _0223518C - 2 ; case 7 + .short _022351C8 - _0223518C - 2 ; case 8 + .short _022351C8 - _0223518C - 2 ; case 9 + .short _022351C8 - _0223518C - 2 ; case 10 + .short _022351BA - _0223518C - 2 ; case 11 + .short _022351B2 - _0223518C - 2 ; case 12 + .short _022351BC - _0223518C - 2 ; case 13 + .short _022351C8 - _0223518C - 2 ; case 14 + .short _022351AC - _0223518C - 2 ; case 15 +_022351AC: + mov r0, #0x21 + str r0, [r4, #0x2c] + b _022351C8 +_022351B2: + mov r0, #3 + bl FUN_020336A0 + b _022351C8 +_022351BA: + str r0, [r4, #0x3c] +_022351BC: + mov r0, #4 + bl FUN_020336A0 + b _022351C8 +_022351C4: + bl FUN_020335E0 +_022351C8: + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02235168 + + thumb_func_start MOD80_022351CC +MOD80_022351CC: ; 0x022351CC + mov r0, #3 + bx lr + thumb_func_end MOD80_022351CC + + thumb_func_start MOD80_022351D0 +MOD80_022351D0: ; 0x022351D0 + push {r4, lr} + add r4, r0, #0 + mov r1, #1 + strh r1, [r4, #0x36] + mov r1, #9 + mov r2, #7 + bl MOD80_0222E7A8 + mov r0, #0x24 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_022351D0 + + thumb_func_start MOD80_022351E8 +MOD80_022351E8: ; 0x022351E8 + push {r4, lr} + add r4, r0, #0 + mov r1, #0 + strh r1, [r4, #0x36] + mov r1, #9 + mov r2, #8 + bl MOD80_0222E7A8 + mov r0, #0x24 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_022351E8 + + thumb_func_start MOD80_02235200 +MOD80_02235200: ; 0x02235200 + push {r4, lr} + mov r1, #9 + add r2, r1, #0 + add r4, r0, #0 + bl MOD80_0222E7A8 + mov r0, #0x24 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02235200 + + thumb_func_start MOD80_02235214 +MOD80_02235214: ; 0x02235214 + push {r4, lr} + add r4, r0, #0 + mov r1, #0 + strh r1, [r4, #0x36] + mov r1, #9 + mov r2, #0xa + bl MOD80_0222E7A8 + mov r0, #0x1e + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02235214 + + thumb_func_start MOD80_0223522C +MOD80_0223522C: ; 0x0223522C + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DD4C + mov r0, #0x17 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_0223522C + + thumb_func_start MOD80_0223523C +MOD80_0223523C: ; 0x0223523C + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _022352A6 + bl MOD80_0222DBB8 + add r0, #0xf + cmp r0, #0xf + bhi _022352A6 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0223525E: ; jump table + .short _0223529A - _0223525E - 2 ; case 0 + .short _0223529A - _0223525E - 2 ; case 1 + .short _022352A2 - _0223525E - 2 ; case 2 + .short _0223529A - _0223525E - 2 ; case 3 + .short _022352A6 - _0223525E - 2 ; case 4 + .short _022352A6 - _0223525E - 2 ; case 5 + .short _022352A6 - _0223525E - 2 ; case 6 + .short _022352A6 - _0223525E - 2 ; case 7 + .short _022352A6 - _0223525E - 2 ; case 8 + .short _022352A6 - _0223525E - 2 ; case 9 + .short _02235292 - _0223525E - 2 ; case 10 + .short _0223528C - _0223525E - 2 ; case 11 + .short _02235286 - _0223525E - 2 ; case 12 + .short _0223529A - _0223525E - 2 ; case 13 + .short _022352A6 - _0223525E - 2 ; case 14 + .short _0223527E - _0223525E - 2 ; case 15 +_0223527E: + add r0, r4, #0 + bl MOD80_022350C4 + b _022352A6 +_02235286: + add r0, r4, #0 + bl MOD80_022350C4 +_0223528C: + add r0, r4, #0 + bl MOD80_022350C4 +_02235292: + mov r0, #3 + bl FUN_020336A0 + b _022352A6 +_0223529A: + mov r0, #4 + bl FUN_020336A0 + b _022352A6 +_022352A2: + bl FUN_020335E0 +_022352A6: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_0223523C + + thumb_func_start MOD80_022352AC +MOD80_022352AC: ; 0x022352AC + push {r3, r4, lr} + sub sp, #4 + ldr r1, _022352E8 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + ldr r1, _022352EC ; =0x00000B34 + mov r2, #0x89 + ldr r1, [r4, r1] + mov r3, #1 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #0x24 + bl MOD80_0222E6DC + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + add r0, r4, #0 + bl MOD80_0222E8D8 + add r0, r4, #0 + bl MOD80_02235C40 + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_022352E8: .word 0x00000F0F +_022352EC: .word 0x00000B34 + thumb_func_end MOD80_022352AC + + thumb_func_start MOD80_022352F0 +MOD80_022352F0: ; 0x022352F0 + push {r3, lr} + ldr r1, [r0, #0x3c] + mov r2, #0x90 + add r1, #0xf + cmp r1, #0xe + bhi _02235330 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02235308: ; jump table + .short _02235330 - _02235308 - 2 ; case 0 + .short _0223532E - _02235308 - 2 ; case 1 + .short _02235330 - _02235308 - 2 ; case 2 + .short _02235330 - _02235308 - 2 ; case 3 + .short _02235326 - _02235308 - 2 ; case 4 + .short _02235326 - _02235308 - 2 ; case 5 + .short _02235326 - _02235308 - 2 ; case 6 + .short _02235326 - _02235308 - 2 ; case 7 + .short _02235326 - _02235308 - 2 ; case 8 + .short _02235326 - _02235308 - 2 ; case 9 + .short _02235330 - _02235308 - 2 ; case 10 + .short _02235330 - _02235308 - 2 ; case 11 + .short _02235330 - _02235308 - 2 ; case 12 + .short _0223532E - _02235308 - 2 ; case 13 + .short _0223532A - _02235308 - 2 ; case 14 +_02235326: + mov r2, #0x1a + b _02235330 +_0223532A: + mov r2, #0x8d + b _02235330 +_0223532E: + mov r2, #0x92 +_02235330: + ldr r1, _02235340 ; =0x00000F0F + mov r3, #1 + str r1, [sp] + ldr r1, _02235344 ; =0x00000B34 + ldr r1, [r0, r1] + bl MOD80_02236C70 + pop {r3, pc} + .align 2, 0 +_02235340: .word 0x00000F0F +_02235344: .word 0x00000B34 + thumb_func_end MOD80_022352F0 + + thumb_func_start MOD80_02235348 +MOD80_02235348: ; 0x02235348 + push {r4, lr} + add r4, r0, #0 + bl MOD80_022352F0 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #0x24 + bl MOD80_0222E6DC + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + add r0, r4, #0 + bl MOD80_0222E8D8 + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02235348 + + thumb_func_start MOD80_02235370 +MOD80_02235370: ; 0x02235370 + push {r4, lr} + add r4, r0, #0 + bl MOD80_022352F0 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #0x24 + bl MOD80_0222E6DC + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + add r0, r4, #0 + bl MOD80_0222E8D8 + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02235370 + + thumb_func_start MOD80_02235398 +MOD80_02235398: ; 0x02235398 + push {r4, lr} + add r4, r0, #0 + mov r1, #0x25 + mov r2, #0x1e + bl MOD80_0222E6DC + add r0, r4, #0 + mov r1, #0x21 + mov r2, #0x24 + bl MOD80_02235820 + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02235398 + + thumb_func_start MOD80_022353B4 +MOD80_022353B4: ; 0x022353B4 + push {r3, r4, r5, lr} + add r4, r0, #0 + bl FUN_02022830 + ldr r0, [r4] + mov r1, #2 + ldr r0, [r0, #0x20] + bl FUN_02022840 + mov r0, #0x1f + str r0, [r4, #0x2c] + bl FUN_0201B9EC + ldr r1, _022353EC ; =0x00000445 + bl _s32_div_f + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #0x3c + blo _022353E0 + bl ErrorHandling +_022353E0: + ldr r0, _022353F0 ; =0x00000FDC + add r1, r5, #2 + str r1, [r4, r0] + mov r0, #3 + pop {r3, r4, r5, pc} + nop +_022353EC: .word 0x00000445 +_022353F0: .word 0x00000FDC + thumb_func_end MOD80_022353B4 + + thumb_func_start MOD80_022353F4 +MOD80_022353F4: ; 0x022353F4 + ldr r1, _0223540C ; =0x00000FDC + ldr r2, [r0, r1] + sub r2, r2, #1 + str r2, [r0, r1] + ldr r1, [r0, r1] + cmp r1, #0 + bne _02235406 + mov r1, #0x20 + str r1, [r0, #0x2c] +_02235406: + mov r0, #3 + bx lr + nop +_0223540C: .word 0x00000FDC + thumb_func_end MOD80_022353F4 + + thumb_func_start MOD80_02235410 +MOD80_02235410: ; 0x02235410 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + ldr r0, [r0, #0x20] + bl FUN_02022854 + cmp r0, #1 + bne _02235426 + ldr r0, _0223542C ; =0x00000FE4 + ldrh r0, [r4, r0] + str r0, [r4, #0x2c] +_02235426: + mov r0, #3 + pop {r4, pc} + nop +_0223542C: .word 0x00000FE4 + thumb_func_end MOD80_02235410 + + thumb_func_start MOD80_02235430 +MOD80_02235430: ; 0x02235430 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + ldr r0, [r0, #0x20] + bl FUN_02022854 + cmp r0, #2 + bne _0223544C + ldr r0, _02235450 ; =0x00000FE6 + ldrh r0, [r4, r0] + str r0, [r4, #0x2c] + add r0, r4, #0 + bl MOD80_0222E8D8 +_0223544C: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_02235450: .word 0x00000FE6 + thumb_func_end MOD80_02235430 + + thumb_func_start MOD80_02235454 +MOD80_02235454: ; 0x02235454 + push {r4, lr} + add r4, r0, #0 + bl FUN_02022830 + ldr r0, [r4] + mov r1, #2 + ldr r0, [r0, #0x20] + bl FUN_02022840 + mov r0, #0x23 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02235454 + + thumb_func_start MOD80_02235470 +MOD80_02235470: ; 0x02235470 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, [r4] + ldr r0, [r0, #0x20] + bl FUN_02022854 + cmp r0, #2 + bne _022354AE + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + add r0, r4, #0 + bl MOD80_0222E8D8 + ldr r0, _022354B4 ; =0x00000F0F + ldr r1, _022354B8 ; =0x00000B34 + str r0, [sp] + ldr r1, [r4, r1] + ldr r2, [r4, #0x28] + add r0, r4, #0 + mov r3, #1 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #0x1c + bl MOD80_0222E6DC +_022354AE: + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_022354B4: .word 0x00000F0F +_022354B8: .word 0x00000B34 + thumb_func_end MOD80_02235470 + + thumb_func_start MOD80_022354BC +MOD80_022354BC: ; 0x022354BC + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD80_0222E8D8 + bl FUN_02033ED0 + ldr r0, _02235510 ; =0x0000100C + ldr r0, [r4, r0] + cmp r0, #1 + bne _022354EC + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + b _02235504 +_022354EC: + mov r0, #6 + str r0, [sp] + mov r1, #0 + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 +_02235504: + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #4 + add sp, #0xc + pop {r3, r4, pc} + nop +_02235510: .word 0x0000100C + thumb_func_end MOD80_022354BC + + thumb_func_start MOD80_02235514 +MOD80_02235514: ; 0x02235514 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _0223552E + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_0223552E: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02235514 + + thumb_func_start MOD80_02235534 +MOD80_02235534: ; 0x02235534 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r0, #0xb8 + ldrh r0, [r0] + add r6, r1, #0 + cmp r0, #0x12 + beq _02235590 + mov r0, #0x3e + bl FUN_020669C0 + add r1, r5, #0 + add r2, r5, #0 + add r4, r0, #0 + ldr r0, [r5] + add r1, #0xb8 + add r2, #0xba + ldrh r1, [r1] + ldrh r2, [r2] + ldr r0, [r0, #0xc] + bl FUN_0206B5E4 + add r1, r4, #0 + bl FUN_02069A64 + add r2, r5, #0 + ldr r0, [r5] + add r2, #0xb8 + ldrh r2, [r2] + ldr r0, [r0] + add r1, r4, #0 + bl FUN_0202ABF8 + add r1, r5, #0 + add r2, r5, #0 + ldr r0, [r5] + add r1, #0xb8 + add r2, #0xba + ldrh r1, [r1] + ldrh r2, [r2] + ldr r0, [r0, #0xc] + bl FUN_0206B2FC + add r0, r4, #0 + bl FUN_02016A18 + b _022355DC +_02235590: + add r1, r5, #0 + ldr r0, [r5] + add r1, #0xba + ldrh r1, [r1] + ldr r0, [r0, #8] + bl FUN_0206B9B0 + add r4, r0, #0 + bl FUN_0206AA84 + add r2, r5, #0 + ldr r0, [r5] + add r2, #0xb8 + ldrh r2, [r2] + ldr r0, [r0] + add r1, r4, #0 + bl FUN_0202ABF8 + add r1, r5, #0 + ldr r0, [r5] + add r1, #0xba + ldrh r1, [r1] + ldr r0, [r0, #8] + bl FUN_0206B938 + ldr r0, [r5] + ldr r1, _022355EC ; =0x000001B9 + ldr r0, [r0, #8] + bl FUN_0206BAE4 + cmp r0, #0 + bne _022355DC + ldr r0, [r5] + ldr r0, [r0, #0x20] + bl FUN_02029EF8 + bl FUN_02029F08 +_022355DC: + cmp r6, #0 + beq _022355EA + ldr r0, [r5] + mov r1, #1 + ldr r0, [r0] + bl FUN_0202ABE4 +_022355EA: + pop {r4, r5, r6, pc} + .align 2, 0 +_022355EC: .word 0x000001B9 + thumb_func_end MOD80_02235534 + + thumb_func_start MOD80_022355F0 +MOD80_022355F0: ; 0x022355F0 + push {r0, r1, r2, r3} + push {r4, r5, r6, lr} + sub sp, #8 + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #6 + mov r2, #0 + add r6, r3, #0 + bl FUN_020671BC + ldr r0, [r5] + add r1, r4, #0 + ldr r0, [r0, #0x20] + bl FUN_0202C144 + mov r0, #0x12 + str r0, [sp, #0x20] + ldr r0, [r5] + ldr r0, [r0, #8] + bl FUN_0206B9AC + cmp r0, #6 + bne _02235624 + mov r0, #0 + str r0, [sp, #0x20] +_02235624: + cmp r6, #0 + beq _02235640 + mov r1, #0x46 + add r0, sp, #0 + strb r1, [r0] + add r0, r4, #0 + mov r1, #9 + add r2, sp, #0 + bl FUN_02067830 + ldr r0, [r5] + ldr r0, [r0] + bl MOD80_02235754 +_02235640: + ldr r0, [sp, #0x20] + cmp r0, #0x12 + bne _02235664 + ldr r0, [r5] + add r1, r4, #0 + ldr r0, [r0, #8] + bl FUN_0206B900 + ldr r0, [r5] + ldr r0, [r0, #8] + bl FUN_0206B9AC + add r1, r5, #0 + mov r2, #0x12 + add r1, #0xcc + str r2, [r1] + sub r1, r0, #1 + b _02235690 +_02235664: + mov r0, #0 + str r0, [sp, #4] + ldr r0, [r5] + add r1, sp, #0x20 + ldr r0, [r0, #0xc] + add r2, sp, #4 + bl FUN_0206B384 + add r0, r4, #0 + bl FUN_020690E4 + add r2, r0, #0 + ldr r0, [r5] + ldr r1, [sp, #0x20] + ldr r0, [r0, #0xc] + bl FUN_0206B244 + add r0, r5, #0 + ldr r1, [sp, #0x20] + add r0, #0xcc + str r1, [r0] + ldr r1, [sp, #4] +_02235690: + add r0, r5, #0 + add r0, #0xd0 + str r1, [r0] + ldr r0, [r5] + mov r1, #0 + ldr r0, [r0] + bl FUN_0202ABE4 + add sp, #8 + pop {r4, r5, r6} + pop {r3} + add sp, #0x10 + bx r3 + .align 2, 0 + thumb_func_end MOD80_022355F0 + + thumb_func_start MOD80_022356AC +MOD80_022356AC: ; 0x022356AC + push {r0, r1, r2, r3} + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + ldr r0, [r5] + add r4, r1, #0 + ldr r0, [r0, #0x20] + bl FUN_0202C144 + mov r0, #0x12 + str r0, [sp, #0x20] + ldr r0, [r5] + ldr r0, [r0, #8] + bl FUN_0206B9AC + cmp r0, #6 + bne _022356D2 + mov r0, #0 + str r0, [sp, #0x20] +_022356D2: + mov r1, #0x46 + add r0, sp, #0 + strb r1, [r0] + add r0, r4, #0 + mov r1, #9 + add r2, sp, #0 + bl FUN_02067830 + ldr r0, [sp, #0x20] + cmp r0, #0x12 + bne _02235706 + ldr r0, [r5] + add r1, r4, #0 + ldr r0, [r0, #8] + bl FUN_0206B900 + ldr r0, [r5] + ldr r0, [r0, #8] + bl FUN_0206B9AC + add r1, r5, #0 + mov r2, #0x12 + add r1, #0xcc + str r2, [r1] + sub r1, r0, #1 + b _02235732 +_02235706: + mov r0, #0 + str r0, [sp, #4] + ldr r0, [r5] + add r1, sp, #0x20 + ldr r0, [r0, #0xc] + add r2, sp, #4 + bl FUN_0206B384 + add r0, r4, #0 + bl FUN_020690E4 + add r2, r0, #0 + ldr r0, [r5] + ldr r1, [sp, #0x20] + ldr r0, [r0, #0xc] + bl FUN_0206B244 + add r0, r5, #0 + ldr r1, [sp, #0x20] + add r0, #0xcc + str r1, [r0] + ldr r1, [sp, #4] +_02235732: + add r0, r5, #0 + add r0, #0xd0 + str r1, [r0] + ldr r0, [r5] + mov r1, #0 + ldr r0, [r0] + bl FUN_0202ABE4 + ldr r0, [r5] + ldr r0, [r0] + bl MOD80_02235754 + add sp, #8 + pop {r3, r4, r5} + pop {r3} + add sp, #0x10 + bx r3 + thumb_func_end MOD80_022356AC + + thumb_func_start MOD80_02235754 +MOD80_02235754: ; 0x02235754 + push {r3, r4, lr} + sub sp, #0x1c + add r4, r0, #0 + add r0, sp, #0xc + add r1, sp, #0 + bl MOD04_021DE1F8 + ldr r1, [sp, #0x14] + ldr r3, [sp, #0xc] + add r0, r4, #0 + lsl r4, r3, #0x18 + ldr r3, [sp, #0x10] + lsl r1, r1, #0x18 + lsl r3, r3, #0x18 + lsr r3, r3, #8 + ldr r2, [sp, #0x18] + lsr r1, r1, #0x10 + orr r3, r4 + orr r1, r3 + orr r1, r2 + bl FUN_0202AC10 + add sp, #0x1c + pop {r3, r4, pc} + thumb_func_end MOD80_02235754 + + thumb_func_start MOD80_02235784 +MOD80_02235784: ; 0x02235784 + push {r4, lr} + ldr r3, _0223579C ; =0x0000011E + add r4, r1, #0 + add r2, r3, #1 + ldrb r1, [r4, r3] + add r3, r3, #5 + ldrb r2, [r4, r2] + ldrb r3, [r4, r3] + bl FUN_020337C8 + pop {r4, pc} + nop +_0223579C: .word 0x0000011E + thumb_func_end MOD80_02235784 + + thumb_func_start MOD80_022357A0 +MOD80_022357A0: ; 0x022357A0 + push {r4, r5, lr} + sub sp, #0x1c + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #0x74 + add r2, sp, #4 + bl FUN_020671BC + add r0, r4, #0 + bl FUN_020689E0 + add r3, r0, #0 + mov r0, #0x3e + str r0, [sp] + add r0, #0xce + add r0, r4, r0 + add r4, #0xf6 + ldrb r1, [r4] + add r2, sp, #4 + bl FUN_0202952C + add r1, r0, #0 + add r0, r5, #0 + mov r2, #4 + bl FUN_02028AD4 + add sp, #0x1c + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD80_022357A0 + + thumb_func_start MOD80_022357DC +MOD80_022357DC: ; 0x022357DC + push {r4, lr} + add r4, r0, #0 + add r0, r1, #0 + bl MOD80_022331F8 + cmp r0, #0 + beq _022357FA + ldr r0, [r4] + ldr r0, [r0, #8] + bl FUN_0206B9AC + cmp r0, #6 + bne _022357FA + mov r0, #2 + pop {r4, pc} +_022357FA: + ldr r0, _0223581C ; =0x00001008 + ldrh r1, [r4, r0] + mov r0, #0x87 + lsl r0, r0, #2 + cmp r1, r0 + bne _02235816 + ldr r0, [r4] + ldr r0, [r0, #8] + bl FUN_0206B9AC + cmp r0, #6 + bne _02235816 + mov r0, #1 + pop {r4, pc} +_02235816: + mov r0, #0 + pop {r4, pc} + nop +_0223581C: .word 0x00001008 + thumb_func_end MOD80_022357DC + + thumb_func_start MOD80_02235820 +MOD80_02235820: ; 0x02235820 + ldr r3, _0223582C ; =0x00000FE4 + strh r1, [r0, r3] + add r1, r3, #2 + strh r2, [r0, r1] + bx lr + nop +_0223582C: .word 0x00000FE4 + thumb_func_end MOD80_02235820 + + thumb_func_start MOD80_02235830 +MOD80_02235830: ; 0x02235830 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + ldr r0, [r0] + bl FUN_0202ABDC + cmp r0, #0 + bne _0223584A + ldrh r0, [r4, #0x36] + cmp r0, #0 + beq _0223584A + mov r0, #1 + pop {r4, pc} +_0223584A: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02235830 + + thumb_func_start MOD80_02235850 +MOD80_02235850: ; 0x02235850 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x30 + add r5, r0, #0 + add r4, r1, #0 + bl MOD80_02235C88 + ldr r2, _022358F0 ; =0x00000D14 + add r0, sp, #0 + add r1, r5, #0 + add r2, r5, r2 + mov r3, #2 + bl MOD80_0222E5E8 + mov r0, #2 + str r0, [sp, #0x28] + lsl r0, r0, #0x12 + str r0, [sp, #8] + ldr r0, _022358F4 ; =0x00182000 + str r0, [sp, #0xc] + add r0, sp, #0 + bl FUN_0201FE94 + mov r1, #0xe7 + lsl r1, r1, #4 + str r0, [r5, r1] + ldr r0, [r5, r1] + mov r1, #1 + bl FUN_020200BC + mov r0, #0xe7 + lsl r0, r0, #4 + mov r1, #7 + mul r1, r4 + ldr r0, [r5, r0] + add r1, r1, #3 + bl FUN_02020130 + mov r0, #0xe7 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + ldr r4, _022358F8 ; =0x022375A6 + mov r7, #0 + mov r6, #0xe +_022358AC: + add r0, sp, #0 + bl FUN_0201FE94 + ldr r1, _022358FC ; =0x00000E74 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + ldr r0, _022358FC ; =0x00000E74 + add r1, r6, #0 + ldr r0, [r5, r0] + bl FUN_02020130 + ldr r0, _022358FC ; =0x00000E74 + mov r1, #0 + ldr r0, [r5, r0] + bl FUN_020200A0 + ldr r0, _022358FC ; =0x00000E74 + ldrh r1, [r4] + ldrh r2, [r4, #2] + ldr r0, [r5, r0] + bl MOD80_02235AFC + add r7, r7, #1 + add r5, r5, #4 + add r6, r6, #4 + add r4, r4, #4 + cmp r7, #7 + blt _022358AC + add sp, #0x30 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022358F0: .word 0x00000D14 +_022358F4: .word 0x00182000 +_022358F8: .word 0x022375A6 +_022358FC: .word 0x00000E74 + thumb_func_end MOD80_02235850 + + thumb_func_start MOD80_02235900 +MOD80_02235900: ; 0x02235900 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD80_02235850 + ldr r0, _0223593C ; =MOD80_02235964 + mov r1, #0x10 + mov r2, #5 + mov r3, #0x3e + bl FUN_020061E8 + ldr r1, _02235940 ; =0x00000FE8 + str r0, [r5, r1] + ldr r0, [r5, r1] + bl FUN_0201B6C8 + mov r1, #0 + add r2, r1, #0 + str r1, [r0] + sub r2, #0x28 + str r2, [r0, #4] + str r4, [r0, #8] + str r5, [r0, #0xc] + bl MOD80_02235948 + ldr r0, _02235944 ; =0x0000062F + bl FUN_020054C8 + pop {r3, r4, r5, pc} + nop +_0223593C: .word MOD80_02235964 +_02235940: .word 0x00000FE8 +_02235944: .word 0x0000062F + thumb_func_end MOD80_02235900 + + thumb_func_start MOD80_02235948 +MOD80_02235948: ; 0x02235948 + add r3, r0, #0 + ldr r2, [r3, #0xc] + mov r0, #0xe7 + lsl r0, r0, #4 + ldr r0, [r2, r0] + ldr r3, [r3, #8] + mov r2, #7 + mul r2, r3 + ldr r3, _02235960 ; =FUN_02020130 + add r1, r1, r2 + bx r3 + nop +_02235960: .word FUN_02020130 + thumb_func_end MOD80_02235948 + + thumb_func_start MOD80_02235964 +MOD80_02235964: ; 0x02235964 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r6, r0, #0 + ldr r0, [r4] + ldr r5, [r4, #0xc] + cmp r0, #3 + bhi _02235A06 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0223597E: ; jump table + .short _02235986 - _0223597E - 2 ; case 0 + .short _022359AE - _0223597E - 2 ; case 1 + .short _022359CA - _0223597E - 2 ; case 2 + .short _022359F2 - _0223597E - 2 ; case 3 +_02235986: + ldr r0, [r4, #4] + cmp r0, #0xa0 + ble _0223599A + mov r0, #0xa0 + str r0, [r4, #4] + mov r1, #1 + add r0, r4, #0 + str r1, [r4] + bl MOD80_02235948 +_0223599A: + ldr r0, [r4, #4] + mov r1, #0x80 + add r2, r0, #5 + mov r0, #0xe7 + str r2, [r4, #4] + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl MOD80_02235AFC + pop {r4, r5, r6, pc} +_022359AE: + mov r0, #0xe7 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02020388 + cmp r0, #0 + bne _02235A06 + add r0, r4, #0 + mov r1, #2 + bl MOD80_02235948 + mov r0, #2 + str r0, [r4] + pop {r4, r5, r6, pc} +_022359CA: + ldr r0, [r4, #4] + cmp r0, #0x82 + bge _022359DE + mov r0, #0x82 + str r0, [r4, #4] + mov r1, #3 + add r0, r4, #0 + str r1, [r4] + bl MOD80_02235948 +_022359DE: + ldr r0, [r4, #4] + mov r1, #0x80 + sub r2, r0, #2 + mov r0, #0xe7 + str r2, [r4, #4] + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl MOD80_02235AFC + pop {r4, r5, r6, pc} +_022359F2: + ldr r0, _02235A08 ; =0x0000060D + bl FUN_020054C8 + ldr r1, [r4, #0xc] + ldr r0, _02235A0C ; =0x00000FEC + mov r2, #1 + strh r2, [r1, r0] + add r0, r6, #0 + bl FUN_0200621C +_02235A06: + pop {r4, r5, r6, pc} + .align 2, 0 +_02235A08: .word 0x0000060D +_02235A0C: .word 0x00000FEC + thumb_func_end MOD80_02235964 + + thumb_func_start MOD80_02235A10 +MOD80_02235A10: ; 0x02235A10 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + ldr r0, _02235A48 ; =MOD80_02235A54 + mov r1, #0x10 + mov r2, #5 + mov r3, #0x3e + bl FUN_020061E8 + ldr r1, _02235A4C ; =0x00000FE8 + str r0, [r5, r1] + ldr r0, [r5, r1] + bl FUN_0201B6C8 + mov r1, #0 + str r1, [r0] + mov r1, #0x82 + str r1, [r0, #4] + str r4, [r0, #8] + mov r1, #5 + str r5, [r0, #0xc] + bl MOD80_02235948 + ldr r0, _02235A50 ; =0x0000060E + bl FUN_020054C8 + pop {r3, r4, r5, pc} + nop +_02235A48: .word MOD80_02235A54 +_02235A4C: .word 0x00000FE8 +_02235A50: .word 0x0000060E + thumb_func_end MOD80_02235A10 + + thumb_func_start MOD80_02235A54 +MOD80_02235A54: ; 0x02235A54 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldr r1, [r4] + ldr r5, [r4, #0xc] + cmp r1, #3 + bhi _02235AF4 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02235A6C: ; jump table + .short _02235A74 - _02235A6C - 2 ; case 0 + .short _02235A9E - _02235A6C - 2 ; case 1 + .short _02235AC2 - _02235A6C - 2 ; case 2 + .short _02235AEA - _02235A6C - 2 ; case 3 +_02235A74: + ldr r0, [r4, #4] + cmp r0, #0xa0 + ble _02235A8A + mov r0, #0xa0 + str r0, [r4, #4] + mov r0, #1 + str r0, [r4] + add r0, r4, #0 + mov r1, #6 + bl MOD80_02235948 +_02235A8A: + ldr r0, [r4, #4] + mov r1, #0x80 + add r2, r0, #2 + mov r0, #0xe7 + str r2, [r4, #4] + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl MOD80_02235AFC + pop {r3, r4, r5, pc} +_02235A9E: + mov r0, #0xe7 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02020388 + cmp r0, #0 + bne _02235AF4 + add r0, r4, #0 + mov r1, #0 + bl MOD80_02235948 + mov r0, #2 + str r0, [r4] + mov r0, #0x63 + lsl r0, r0, #4 + bl FUN_020054C8 + pop {r3, r4, r5, pc} +_02235AC2: + mov r0, #0x13 + ldr r1, [r4, #4] + mvn r0, r0 + cmp r1, r0 + bge _02235AD6 + mov r1, #3 + add r0, r4, #0 + str r1, [r4] + bl MOD80_02235948 +_02235AD6: + ldr r0, [r4, #4] + mov r1, #0x80 + sub r2, r0, #5 + mov r0, #0xe7 + str r2, [r4, #4] + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl MOD80_02235AFC + pop {r3, r4, r5, pc} +_02235AEA: + ldr r1, _02235AF8 ; =0x00000FEC + mov r2, #1 + strh r2, [r5, r1] + bl FUN_0200621C +_02235AF4: + pop {r3, r4, r5, pc} + nop +_02235AF8: .word 0x00000FEC + thumb_func_end MOD80_02235A54 + + thumb_func_start MOD80_02235AFC +MOD80_02235AFC: ; 0x02235AFC + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + add r5, r2, #0 + cmp r1, #0 + ble _02235B1A + lsl r0, r1, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _02235B28 +_02235B1A: + lsl r0, r1, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_02235B28: + bl _ffix + sub r5, #8 + str r0, [sp] + cmp r5, #0 + ble _02235B46 + lsl r0, r5, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _02235B54 +_02235B46: + lsl r0, r5, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_02235B54: + bl _ffix + mov r1, #1 + lsl r1, r1, #0x14 + add r0, r0, r1 + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, sp, #0 + bl FUN_02020044 + add sp, #0xc + pop {r4, r5, pc} + thumb_func_end MOD80_02235AFC + + thumb_func_start MOD80_02235B70 +MOD80_02235B70: ; 0x02235B70 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02235B8C ; =0x022375C2 + bl FUN_02020988 + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _02235B86 + cmp r0, r4 + blt _02235B8A +_02235B86: + mov r0, #0 + mvn r0, r0 +_02235B8A: + pop {r4, pc} + .align 2, 0 +_02235B8C: .word 0x022375C2 + thumb_func_end MOD80_02235B70 + + thumb_func_start MOD80_02235B90 +MOD80_02235B90: ; 0x02235B90 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + str r0, [sp, #4] + str r1, [sp, #8] + str r2, [sp, #0xc] + add r0, r1, #0 + beq _02235BAA + add r0, r2, #0 + cmp r0, #1 + bne _02235BAA + ldr r0, _02235C24 ; =0x0000064F + bl FUN_020054C8 +_02235BAA: + ldr r4, [sp, #4] + mov r0, #0xe + mov r6, #0 + str r0, [sp, #0x10] + add r5, r4, #0 + mov r7, #0x11 +_02235BB6: + ldr r0, [sp, #8] + cmp r6, r0 + bge _02235C00 + ldr r0, _02235C28 ; =0x000002EE + ldr r1, [sp, #4] + ldrb r0, [r4, r0] + mov r3, #0xc6 + add r2, r1, #0 + str r0, [sp] + ldr r0, _02235C2C ; =0x00000FF4 + lsl r3, r3, #2 + ldr r0, [r1, r0] + ldr r1, _02235C30 ; =0x00000FFC + ldrb r3, [r4, r3] + ldr r1, [r2, r1] + add r2, r6, #0 + bl MOD80_02235CD0 + ldr r0, [sp, #0xc] + cmp r0, #0 + ldr r0, _02235C34 ; =0x00000E74 + beq _02235BEC + ldr r0, [r5, r0] + ldr r1, [sp, #0x10] + bl FUN_02020130 + b _02235BF4 +_02235BEC: + ldr r0, [r5, r0] + add r1, r7, #0 + bl FUN_02020130 +_02235BF4: + ldr r0, _02235C34 ; =0x00000E74 + mov r1, #1 + ldr r0, [r5, r0] + bl FUN_020200A0 + b _02235C0A +_02235C00: + ldr r0, _02235C34 ; =0x00000E74 + mov r1, #0 + ldr r0, [r5, r0] + bl FUN_020200A0 +_02235C0A: + mov r0, #0x49 + lsl r0, r0, #2 + add r4, r4, r0 + ldr r0, [sp, #0x10] + add r6, r6, #1 + add r0, r0, #4 + str r0, [sp, #0x10] + add r5, r5, #4 + add r7, r7, #4 + cmp r6, #7 + blt _02235BB6 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02235C24: .word 0x0000064F +_02235C28: .word 0x000002EE +_02235C2C: .word 0x00000FF4 +_02235C30: .word 0x00000FFC +_02235C34: .word 0x00000E74 + thumb_func_end MOD80_02235B90 + + thumb_func_start MOD80_02235C38 +MOD80_02235C38: ; 0x02235C38 + lsl r0, r0, #2 + add r0, #0xe + bx lr + .align 2, 0 + thumb_func_end MOD80_02235C38 + + thumb_func_start MOD80_02235C40 +MOD80_02235C40: ; 0x02235C40 + push {r3, r4, r5, r6, r7, lr} + ldr r7, _02235C84 ; =0x00000E74 + add r5, r0, #0 + mov r4, #0 +_02235C48: + ldr r0, [r5, r7] + bl FUN_02020128 + cmp r0, #0 + beq _02235C7A + ldr r0, _02235C84 ; =0x00000E74 + ldr r0, [r5, r0] + bl FUN_020201DC + add r6, r0, #0 + add r0, r4, #0 + bl MOD80_02235C38 + add r0, r0, #1 + cmp r6, r0 + beq _02235C7A + add r0, r4, #0 + bl MOD80_02235C38 + add r1, r0, #0 + ldr r0, _02235C84 ; =0x00000E74 + add r1, r1, #1 + ldr r0, [r5, r0] + bl FUN_02020130 +_02235C7A: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #7 + blt _02235C48 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02235C84: .word 0x00000E74 + thumb_func_end MOD80_02235C40 + + thumb_func_start MOD80_02235C88 +MOD80_02235C88: ; 0x02235C88 + push {r3, r4, lr} + sub sp, #4 + ldr r2, _02235CC8 ; =0x00000FFC + add r4, r0, #0 + mov r0, #0x56 + mov r1, #7 + add r2, r4, r2 + mov r3, #0x3e + bl FUN_02006C08 + ldr r3, _02235CCC ; =0x00000FF8 + mov r1, #9 + str r0, [r4, r3] + mov r0, #0x3e + sub r3, r3, #4 + str r0, [sp] + mov r0, #0x56 + mov r2, #1 + add r3, r4, r3 + bl FUN_02006BB0 + mov r1, #0xff + lsl r1, r1, #4 + str r0, [r4, r1] + add r0, r1, #4 + mov r1, #2 + ldr r0, [r4, r0] + lsl r1, r1, #0xe + bl DC_FlushRange + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02235CC8: .word 0x00000FFC +_02235CCC: .word 0x00000FF8 + thumb_func_end MOD80_02235C88 + + thumb_func_start MOD80_02235CD0 +MOD80_02235CD0: ; 0x02235CD0 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r6, r1, #0 + ldr r0, [sp, #0x18] + add r1, r3, #0 + add r5, r2, #0 + bl FUN_020536C8 + add r4, r0, #0 + mov r0, #6 + lsl r0, r0, #8 + ldr r1, [r7, #0x14] + mul r0, r4 + add r0, r1, r0 + ldr r1, _02235D0C ; =0x02237598 + lsl r2, r5, #1 + ldrh r1, [r1, r2] + mov r2, #2 + ldr r6, [r6, #0xc] + lsl r2, r2, #8 + bl GXS_LoadOBJ + lsl r0, r4, #5 + add r1, r5, #2 + add r0, r6, r0 + lsl r1, r1, #5 + mov r2, #0x20 + bl GXS_LoadOBJPltt + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02235D0C: .word 0x02237598 + thumb_func_end MOD80_02235CD0 + + thumb_func_start MOD80_02235D10 +MOD80_02235D10: ; 0x02235D10 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02235D30 ; =0x00000FEC + ldrh r1, [r4, r0] + cmp r1, #0 + beq _02235D2E + add r0, #0xc + ldr r0, [r4, r0] + bl FUN_02016A18 + mov r0, #0xff + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02016A18 +_02235D2E: + pop {r4, pc} + .align 2, 0 +_02235D30: .word 0x00000FEC + thumb_func_end MOD80_02235D10 + + thumb_func_start MOD80_02235D34 +MOD80_02235D34: ; 0x02235D34 + push {r4, lr} + add r4, r0, #0 + add r2, r4, #0 + add r3, r4, #0 + ldr r1, [r4] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02232FB8 + str r0, [r4, #0x60] + add r0, r4, #0 + mov r1, #2 + add r0, #0x71 + strb r1, [r0] + add r0, r4, #0 + mov r2, #1 + add r0, #0x73 + strb r2, [r0] + add r0, r4, #0 + mov r1, #0 + add r0, #0x74 + strb r1, [r0] + add r0, r4, #0 + add r0, #0x72 + strb r2, [r0] + add r0, r4, #0 + add r0, #0x78 + strh r1, [r0] + ldr r0, [r4] + ldr r0, [r0, #0x20] + bl FUN_02079C70 + add r1, r4, #0 + add r1, #0x8c + str r0, [r1] + ldr r0, [r4] + ldr r0, [r0, #0x34] + str r0, [r4, #0x7c] + ldr r0, [r4] + ldr r0, [r0, #0x24] + str r0, [r4, #0x64] + ldr r0, [r4] + ldr r0, [r0, #0x20] + bl FUN_0202A918 + add r1, r4, #0 + add r1, #0x80 + str r0, [r1] + add r0, r4, #0 + ldr r1, _02235DCC ; =0x022375E4 + add r0, #0x60 + bl FUN_0207B000 + ldr r1, [r4] + add r0, r4, #0 + ldr r1, [r1, #0x1c] + add r0, #0x60 + bl FUN_0207C2A4 + add r1, r4, #0 + ldr r0, _02235DD0 ; =0x020FA6E8 + add r1, #0x60 + mov r2, #0x3e + bl FUN_02006234 + str r0, [r4, #0x5c] + mov r0, #1 + add r4, #0xac + str r0, [r4] + mov r0, #2 + pop {r4, pc} + nop +_02235DCC: .word 0x022375E4 +_02235DD0: .word 0x020FA6E8 + thumb_func_end MOD80_02235D34 + + thumb_func_start MOD80_02235DD4 +MOD80_02235DD4: ; 0x02235DD4 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x5c] + mov r4, #3 + bl FUN_02006290 + cmp r0, #0 + beq _02235DF6 + ldr r0, [r5, #0x5c] + bl FUN_02006260 + ldr r2, [r5, #0x24] + add r0, r5, #0 + mov r1, #5 + bl MOD80_0222E7A8 + mov r4, #4 +_02235DF6: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD80_02235DD4 + + thumb_func_start MOD80_02235DFC +MOD80_02235DFC: ; 0x02235DFC + push {r3, lr} + bl MOD80_0222E7B0 + mov r0, #1 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD80_02235DFC + + thumb_func_start MOD80_02235E08 +MOD80_02235E08: ; 0x02235E08 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x3e + bl FUN_020669C0 + mov r1, #1 + lsl r1, r1, #0xc + str r0, [r4, r1] + ldr r0, [r4, #0x24] + cmp r0, #0xa + bls _02235E20 + b _02235F94 +_02235E20: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02235E2C: ; jump table + .short _02235F94 - _02235E2C - 2 ; case 0 + .short _02235F94 - _02235E2C - 2 ; case 1 + .short _02235F94 - _02235E2C - 2 ; case 2 + .short _02235F94 - _02235E2C - 2 ; case 3 + .short _02235F94 - _02235E2C - 2 ; case 4 + .short _02235F94 - _02235E2C - 2 ; case 5 + .short _02235F94 - _02235E2C - 2 ; case 6 + .short _02235E42 - _02235E2C - 2 ; case 7 + .short _02235E88 - _02235E2C - 2 ; case 8 + .short _02235F26 - _02235E2C - 2 ; case 9 + .short _02235ECE - _02235E2C - 2 ; case 10 +_02235E42: + add r0, r4, #0 + add r0, #0xd4 + bl FUN_020690E4 + add r1, r4, #0 + add r1, #0x90 + str r0, [r1] + add r0, r4, #0 + add r0, #0x90 + ldr r1, [r0] + add r0, r4, #0 + add r0, #0x94 + str r1, [r0] + add r0, r4, #0 + add r0, #0xd4 + bl MOD80_022361AC + add r1, r4, #0 + add r1, #0xc8 + str r0, [r1] + add r0, r4, #0 + add r0, #0xc8 + ldr r1, [r0] + add r0, r4, #0 + add r0, #0x98 + str r1, [r0] + add r0, r4, #0 + mov r1, #3 + add r0, #0x9c + str r1, [r0] + add r0, r4, #0 + mov r1, #2 + add r0, #0xa0 + str r1, [r0] + b _02235F94 +_02235E88: + add r0, r4, #0 + add r0, #0xd4 + bl FUN_020690E4 + add r1, r4, #0 + add r1, #0x94 + str r0, [r1] + add r0, r4, #0 + add r0, #0x94 + ldr r1, [r0] + add r0, r4, #0 + add r0, #0x90 + str r1, [r0] + add r0, r4, #0 + add r0, #0xd4 + bl MOD80_022361AC + add r1, r4, #0 + add r1, #0xc8 + str r0, [r1] + add r0, r4, #0 + add r0, #0xc8 + ldr r1, [r0] + add r0, r4, #0 + add r0, #0x98 + str r1, [r0] + add r0, r4, #0 + mov r1, #3 + add r0, #0x9c + str r1, [r0] + add r0, r4, #0 + mov r1, #4 + add r0, #0xa0 + str r1, [r0] + b _02235F94 +_02235ECE: + add r0, r4, #0 + add r0, #0xd4 + bl FUN_020690E4 + add r1, r4, #0 + add r1, #0x94 + str r0, [r1] + ldr r0, [r4] + mov r1, #1 + lsl r1, r1, #0xc + ldr r0, [r0] + ldr r1, [r4, r1] + bl FUN_0202ABEC + mov r0, #1 + lsl r0, r0, #0xc + ldr r0, [r4, r0] + bl FUN_020690E4 + add r1, r4, #0 + add r1, #0x90 + str r0, [r1] + add r0, r4, #0 + add r0, #0xd4 + bl MOD80_022361AC + add r1, r4, #0 + add r1, #0xc8 + str r0, [r1] + add r0, r4, #0 + add r0, #0xc8 + ldr r1, [r0] + add r0, r4, #0 + add r0, #0x98 + str r1, [r0] + add r0, r4, #0 + mov r1, #3 + add r0, #0x9c + str r1, [r0] + add r0, r4, #0 + mov r1, #1 + add r0, #0xa0 + str r1, [r0] + b _02235F94 +_02235F26: + ldr r0, [r4] + ldr r1, [r4, r1] + ldr r0, [r0] + bl FUN_0202ABEC + mov r0, #1 + lsl r0, r0, #0xc + ldr r0, [r4, r0] + bl FUN_020690E4 + add r1, r4, #0 + add r1, #0x90 + str r0, [r1] + add r0, r4, #0 + mov r1, #0x7e + add r0, #0xc4 + lsl r1, r1, #2 + add r2, r4, r1 + ldr r0, [r0] + sub r1, #0xd4 + mul r1, r0 + add r0, r2, r1 + bl FUN_020690E4 + add r1, r4, #0 + add r1, #0x94 + str r0, [r1] + add r0, r4, #0 + mov r1, #0x7e + add r0, #0xc4 + lsl r1, r1, #2 + add r2, r4, r1 + ldr r0, [r0] + sub r1, #0xd4 + mul r1, r0 + add r0, r2, r1 + bl MOD80_022361AC + add r1, r4, #0 + add r1, #0xc8 + str r0, [r1] + add r0, r4, #0 + add r0, #0xc8 + ldr r1, [r0] + add r0, r4, #0 + add r0, #0x98 + str r1, [r0] + add r0, r4, #0 + mov r1, #3 + add r0, #0x9c + str r1, [r0] + add r0, r4, #0 + mov r1, #1 + add r0, #0xa0 + str r1, [r0] +_02235F94: + ldr r0, [r4] + mov r2, #0x3e + ldr r1, [r0, #0x24] + add r0, r4, #0 + add r0, #0xa4 + str r1, [r0] + add r1, r4, #0 + ldr r0, _02235FB8 ; =0x022375F0 + add r1, #0x90 + bl FUN_02006234 + str r0, [r4, #0x5c] + mov r0, #1 + add r4, #0xac + str r0, [r4] + mov r0, #2 + pop {r4, pc} + nop +_02235FB8: .word 0x022375F0 + thumb_func_end MOD80_02235E08 + + thumb_func_start MOD80_02235FBC +MOD80_02235FBC: ; 0x02235FBC + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + add r4, r0, #0 + ldr r0, [r4, #0x2c] + mov r6, #3 + cmp r0, #0 + beq _02235FD2 + cmp r0, #1 + bne _02235FD0 + b _02236148 +_02235FD0: + b _0223617E +_02235FD2: + ldr r0, [r4, #0x5c] + bl FUN_02006290 + cmp r0, #0 + bne _02235FDE + b _0223617E +_02235FDE: + ldr r0, [r4, #0x5c] + bl FUN_02006260 + ldr r1, [r4, #0x24] + cmp r1, #9 + bne _02236060 + add r0, r4, #0 + bl MOD80_022361E8 + mov r1, #6 + mov r2, #0 + add r7, r0, #0 + bl FUN_020671BC + add r3, r0, #0 + add r0, sp, #0x30 + lsl r3, r3, #0x10 + str r0, [sp] + mov r0, #0 + add r1, r7, #0 + mov r2, #1 + lsr r3, r3, #0x10 + bl FUN_02069168 + str r0, [sp, #0x24] + cmp r0, #0 + beq _02236052 + ldr r5, [r4] + ldr r0, [r5, #0x20] + bl FUN_0204C1A8 + ldr r1, [r5, #0x3c] + ldr r2, [sp, #0x24] + str r1, [sp] + ldr r1, [r5, #0x10] + str r1, [sp, #4] + ldr r1, [r5, #0x30] + str r1, [sp, #8] + ldr r1, [r5, #0x28] + str r1, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [sp, #0x30] + add r1, r7, #0 + str r0, [sp, #0x14] + mov r0, #4 + str r0, [sp, #0x18] + mov r0, #0x3e + str r0, [sp, #0x1c] + ldr r3, [r5, #0x24] + mov r0, #0 + bl FUN_0206C700 + add r1, r4, #0 + add r1, #0xa8 + str r0, [r1] + mov r0, #1 + str r0, [r4, #0x2c] + b _0223617E +_02236052: + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + mov r6, #4 + b _0223617E +_02236060: + cmp r1, #8 + beq _02236068 + cmp r1, #0xa + bne _0223613A +_02236068: + add r0, r4, #0 + bl MOD80_022361E8 + add r7, r0, #0 + mov r0, #0x3e + bl FUN_020669C0 + str r0, [sp, #0x20] + ldr r0, [r4] + ldr r1, [sp, #0x20] + ldr r0, [r0] + bl FUN_0202ABEC + add r0, r7, #0 + mov r1, #5 + mov r2, #0 + bl FUN_020671BC + add r5, r0, #0 + ldr r0, [sp, #0x20] + mov r1, #5 + mov r2, #0 + bl FUN_020671BC + cmp r5, r0 + bne _022360B6 + mov r1, #0 + add r0, r7, #0 + add r2, r1, #0 + bl FUN_020671BC + add r5, r0, #0 + mov r1, #0 + ldr r0, [sp, #0x20] + add r2, r1, #0 + bl FUN_020671BC + cmp r5, r0 + beq _02236126 +_022360B6: + add r0, r7, #0 + mov r1, #6 + mov r2, #0 + bl FUN_020671BC + add r3, r0, #0 + add r0, sp, #0x2c + lsl r3, r3, #0x10 + str r0, [sp] + mov r0, #0 + add r1, r7, #0 + mov r2, #1 + lsr r3, r3, #0x10 + bl FUN_02069168 + str r0, [sp, #0x28] + cmp r0, #0 + beq _02236118 + ldr r5, [r4] + ldr r0, [r5, #0x20] + bl FUN_0204C1A8 + ldr r1, [r5, #0x3c] + ldr r2, [sp, #0x28] + str r1, [sp] + ldr r1, [r5, #0x10] + str r1, [sp, #4] + ldr r1, [r5, #0x30] + str r1, [sp, #8] + ldr r1, [r5, #0x28] + str r1, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [sp, #0x2c] + add r1, r7, #0 + str r0, [sp, #0x14] + mov r0, #4 + str r0, [sp, #0x18] + mov r0, #0x3e + str r0, [sp, #0x1c] + ldr r3, [r5, #0x24] + mov r0, #0 + bl FUN_0206C700 + add r1, r4, #0 + add r1, #0xa8 + str r0, [r1] + mov r0, #1 + str r0, [r4, #0x2c] + b _02236132 +_02236118: + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + mov r6, #4 + b _02236132 +_02236126: + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + mov r6, #4 +_02236132: + ldr r0, [sp, #0x20] + bl FUN_02016A18 + b _0223617E +_0223613A: + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + mov r6, #4 + b _0223617E +_02236148: + add r0, r4, #0 + add r0, #0xa8 + ldr r0, [r0] + bl FUN_0206C91C + cmp r0, #0 + beq _0223617E + add r0, r4, #0 + add r0, #0xa8 + ldr r0, [r0] + bl FUN_0206C92C + add r0, r4, #0 + bl MOD80_02236218 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _02236184 ; =0xFFFF1FFF + and r0, r1 + str r0, [r2] + add r0, r4, #0 + mov r1, #7 + mov r2, #0xc + bl MOD80_0222E7A8 + mov r6, #4 +_0223617E: + add r0, r6, #0 + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02236184: .word 0xFFFF1FFF + thumb_func_end MOD80_02235FBC + + thumb_func_start MOD80_02236188 +MOD80_02236188: ; 0x02236188 + push {r4, lr} + add r4, r0, #0 + mov r0, #1 + lsl r0, r0, #0xc + ldr r0, [r4, r0] + bl FUN_02016A18 + add r0, r4, #0 + add r0, #0xc8 + ldr r0, [r0] + bl FUN_02016A18 + add r0, r4, #0 + bl MOD80_0222E7B0 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02236188 + + thumb_func_start MOD80_022361AC +MOD80_022361AC: ; 0x022361AC + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x3e + bl FUN_02023928 + add r4, r0, #0 + bl FUN_02023948 + mov r1, #0x43 + lsl r1, r1, #2 + add r0, r4, #0 + add r1, r5, r1 + bl FUN_0202395C + ldr r1, _022361E0 ; =0x00000122 + add r0, r4, #0 + ldrb r1, [r5, r1] + bl FUN_02023A6C + ldr r1, _022361E4 ; =0x00000123 + add r0, r4, #0 + ldrb r1, [r5, r1] + bl FUN_02023A74 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022361E0: .word 0x00000122 +_022361E4: .word 0x00000123 + thumb_func_end MOD80_022361AC + + thumb_func_start MOD80_022361E8 +MOD80_022361E8: ; 0x022361E8 + push {r3, lr} + cmp r1, #9 + bne _02236200 + mov r1, #0x7e + lsl r1, r1, #2 + add r2, r0, r1 + add r0, #0xc4 + ldr r0, [r0] + sub r1, #0xd4 + mul r1, r0 + add r0, r2, r1 + pop {r3, pc} +_02236200: + cmp r1, #0xa + bne _02236208 + add r0, #0xd4 + pop {r3, pc} +_02236208: + cmp r1, #8 + bne _02236210 + add r0, #0xd4 + pop {r3, pc} +_02236210: + bl ErrorHandling + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD80_022361E8 + + thumb_func_start MOD80_02236218 +MOD80_02236218: ; 0x02236218 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + ldr r1, [r5, #0x24] + bl MOD80_022361E8 + add r4, r0, #0 + add r0, r5, #0 + add r0, #0xcc + ldr r0, [r0] + cmp r0, #0x12 + bne _02236248 + ldr r0, [r5] + add r5, #0xd0 + ldr r0, [r0, #8] + ldr r1, [r5] + bl FUN_0206B9B0 + add r1, r0, #0 + add r0, r4, #0 + bl FUN_02069B88 + add sp, #8 + pop {r3, r4, r5, pc} +_02236248: + mov r0, #0 + add r1, r5, #0 + add r2, r5, #0 + str r0, [sp, #4] + str r0, [sp] + ldr r0, [r5] + add r1, #0xcc + add r2, #0xd0 + ldr r0, [r0, #0xc] + ldr r1, [r1] + ldr r2, [r2] + bl FUN_0206B2FC + ldr r0, [r5] + add r1, sp, #4 + ldr r0, [r0, #0xc] + add r2, sp, #0 + bl FUN_0206B384 + add r0, r4, #0 + bl FUN_020690E4 + add r2, r0, #0 + ldr r0, [r5] + ldr r1, [sp, #4] + ldr r0, [r0, #0xc] + bl FUN_0206B244 + add sp, #8 + pop {r3, r4, r5, pc} + thumb_func_end MOD80_02236218 + + thumb_func_start MOD80_02236284 +MOD80_02236284: ; 0x02236284 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD80_02236664 + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + ldr r0, [r4, #4] + bl MOD80_02236378 + add r0, r4, #0 + bl MOD80_02236488 + add r0, r4, #0 + bl MOD80_02236580 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + mov r0, #2 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E74C + mov r0, #2 + mov r1, #1 + bl FUN_0201E74C + ldr r0, [r4] + ldr r0, [r0, #0x20] + bl FUN_02033288 + add r0, r4, #0 + bl MOD80_02236D84 + bl MOD04_021DDD7C + cmp r0, #0 + bne _0223631E + ldr r0, [r4] + ldr r0, [r0, #0x40] + cmp r0, #0 + beq _02236318 + ldr r0, _02236328 ; =0x00000F0F + ldr r1, _0223632C ; =0x00000B3C + str r0, [sp] + mov r2, #1 + ldr r1, [r4, r1] + add r0, r4, #0 + add r3, r2, #0 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0xa + mov r2, #2 + bl MOD80_0222E6DC + add r0, r4, #0 + bl MOD80_0222E8BC + b _02236322 +_02236318: + mov r0, #0 + str r0, [r4, #0x2c] + b _02236322 +_0223631E: + mov r0, #0xf + str r0, [r4, #0x2c] +_02236322: + mov r0, #2 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 +_02236328: .word 0x00000F0F +_0223632C: .word 0x00000B3C + thumb_func_end MOD80_02236284 + + thumb_func_start MOD80_02236330 +MOD80_02236330: ; 0x02236330 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222E79C + bl FUN_02033EEC + ldr r1, [r4, #0x2c] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _0223634C ; =0x02237C68 + ldr r1, [r1, r2] + blx r1 + pop {r4, pc} + nop +_0223634C: .word 0x02237C68 + thumb_func_end MOD80_02236330 + + thumb_func_start MOD80_02236350 +MOD80_02236350: ; 0x02236350 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0223669C + add r0, r4, #0 + bl MOD80_02236638 + ldr r0, [r4, #4] + bl MOD80_02236464 + add r0, r4, #0 + bl MOD80_0222E7B0 + ldr r0, [r4, #0x14] + cmp r0, #0 + bne _02236374 + mov r0, #5 + pop {r4, pc} +_02236374: + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD80_02236350 + + thumb_func_start MOD80_02236378 +MOD80_02236378: ; 0x02236378 + push {r3, r4, r5, lr} + sub sp, #0x70 + ldr r5, _02236454 ; =0x02237638 + add r4, r0, #0 + ldmia r5!, {r0, r1} + add r3, sp, #0x54 + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + mov r0, #1 + mov r1, #0 + bl FUN_0201E6E4 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _02236458 ; =0x0223761C + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + ldr r5, _0223645C ; =0x02237654 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #1 + mov r1, #0 + bl FUN_0201E74C + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _02236460 ; =0x02237600 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #5 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #2 + mov r1, #0 + bl FUN_0201E74C + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #0x10 + mov r1, #0 + bl FUN_0201E74C + add sp, #0x70 + pop {r3, r4, r5, pc} + nop +_02236454: .word 0x02237638 +_02236458: .word 0x0223761C +_0223645C: .word 0x02237654 +_02236460: .word 0x02237600 + thumb_func_end MOD80_02236378 + + thumb_func_start MOD80_02236464 +MOD80_02236464: ; 0x02236464 + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD80_02236464 + + thumb_func_start MOD80_02236488 +MOD80_02236488: ; 0x02236488 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r4, [r5, #4] + mov r2, #0 + str r2, [sp] + mov r0, #0x3e + str r0, [sp, #4] + mov r0, #0x5c + mov r1, #3 + add r3, r2, #0 + bl FUN_02006930 + mov r3, #0 + str r3, [sp] + mov r0, #0x3e + str r0, [sp, #4] + mov r0, #0x5c + mov r1, #3 + mov r2, #4 + bl FUN_02006930 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x3e + bl FUN_02002EEC + mov r1, #0x1a + mov r0, #4 + lsl r1, r1, #4 + mov r2, #0x3e + bl FUN_02002EEC + ldr r0, [r5] + ldr r0, [r0, #0x24] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CB00 + mov r1, #0 + mov r0, #0x36 + str r1, [sp] + lsl r0, r0, #6 + str r0, [sp, #4] + str r1, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x5c + mov r1, #2 + add r2, r4, #0 + mov r3, #1 + bl FUN_0200687C + mov r1, #0 + mov r0, #6 + str r1, [sp] + lsl r0, r0, #8 + str r0, [sp, #4] + str r1, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x5c + mov r1, #4 + add r2, r4, #0 + mov r3, #1 + bl FUN_020068C8 + mov r1, #0 + mov r0, #0x36 + str r1, [sp] + lsl r0, r0, #6 + str r0, [sp, #4] + str r1, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x5c + mov r1, #9 + add r2, r4, #0 + mov r3, #5 + bl FUN_0200687C + mov r1, #0 + mov r0, #6 + str r1, [sp] + lsl r0, r0, #8 + str r0, [sp, #4] + str r1, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x5c + mov r1, #0xa + add r2, r4, #0 + mov r3, #5 + bl FUN_020068C8 + mov r0, #0 + add r1, r0, #0 + bl FUN_02017FE4 + mov r0, #4 + mov r1, #0 + bl FUN_02017FE4 + add sp, #0x10 + pop {r3, r4, r5, pc} + thumb_func_end MOD80_02236488 + + thumb_func_start MOD80_02236580 +MOD80_02236580: ; 0x02236580 + push {r3, r4, lr} + sub sp, #0x14 + mov r3, #4 + add r4, r0, #0 + str r3, [sp] + mov r0, #0x17 + str r0, [sp, #4] + mov r0, #0x10 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x94 + ldr r1, _02236628 ; =0x00000EC8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + bl FUN_02019064 + ldr r0, _02236628 ; =0x00000EC8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #1 + str r0, [sp] + mov r0, #0x18 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x81 + lsl r0, r0, #2 + ldr r1, _0223662C ; =0x00000EB8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #4 + bl FUN_02019064 + ldr r0, _0223662C ; =0x00000EB8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r3, #1 + mov r1, #0xb5 + ldr r0, _02236630 ; =0x000F0E00 + str r3, [sp] + str r0, [sp, #4] + ldr r0, _0223662C ; =0x00000EB8 + lsl r1, r1, #4 + ldr r1, [r4, r1] + add r0, r4, r0 + mov r2, #0 + bl MOD80_02236D1C + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + ldr r1, _02236634 ; =0x00000E98 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + ldr r0, _02236634 ; =0x00000E98 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + add sp, #0x14 + pop {r3, r4, pc} + nop +_02236628: .word 0x00000EC8 +_0223662C: .word 0x00000EB8 +_02236630: .word 0x000F0E00 +_02236634: .word 0x00000E98 + thumb_func_end MOD80_02236580 + + thumb_func_start MOD80_02236638 +MOD80_02236638: ; 0x02236638 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02236658 ; =0x00000E98 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _0223665C ; =0x00000EB8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _02236660 ; =0x00000EC8 + add r0, r4, r0 + bl FUN_02019178 + pop {r4, pc} + nop +_02236658: .word 0x00000E98 +_0223665C: .word 0x00000EB8 +_02236660: .word 0x00000EC8 + thumb_func_end MOD80_02236638 + + thumb_func_start MOD80_02236664 +MOD80_02236664: ; 0x02236664 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xb4 + mov r1, #0x3e + bl FUN_020219F4 + ldr r1, _02236694 ; =0x00000B4C + str r0, [r4, r1] + mov r0, #1 + lsl r0, r0, #8 + mov r1, #0x3e + bl FUN_020219F4 + ldr r1, _02236698 ; =0x00000B7C + str r0, [r4, r1] + sub r1, #0x48 + ldr r0, [r4, r1] + mov r1, #0x1f + bl FUN_0200A914 + mov r1, #0xb5 + lsl r1, r1, #4 + str r0, [r4, r1] + pop {r4, pc} + .align 2, 0 +_02236694: .word 0x00000B4C +_02236698: .word 0x00000B7C + thumb_func_end MOD80_02236664 + + thumb_func_start MOD80_0223669C +MOD80_0223669C: ; 0x0223669C + push {r4, lr} + add r4, r0, #0 + mov r0, #0xb5 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02021A20 + ldr r0, _022366BC ; =0x00000B7C + ldr r0, [r4, r0] + bl FUN_02021A20 + ldr r0, _022366C0 ; =0x00000B4C + ldr r0, [r4, r0] + bl FUN_02021A20 + pop {r4, pc} + .align 2, 0 +_022366BC: .word 0x00000B7C +_022366C0: .word 0x00000B4C + thumb_func_end MOD80_0223669C + + thumb_func_start MOD80_022366C4 +MOD80_022366C4: ; 0x022366C4 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _022366F4 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0x2d + lsl r1, r1, #6 + ldr r1, [r4, r1] + mov r2, #0x10 + mov r3, #1 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0xb + mov r2, #1 + bl MOD80_0222E6DC + ldr r0, _022366F8 ; =0x0000100A + mov r1, #1 + strh r1, [r4, r0] + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_022366F4: .word 0x00000F0F +_022366F8: .word 0x0000100A + thumb_func_end MOD80_022366C4 + + thumb_func_start MOD80_022366FC +MOD80_022366FC: ; 0x022366FC + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, _02236758 ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _02236750 + sub r1, r1, #1 + cmp r0, r1 + bne _0223672E + bl FUN_020332DC + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #9 + str r0, [r4, #0x2c] + b _02236750 +_0223672E: + ldr r0, _0223675C ; =0x00000F0F + ldr r1, _02236760 ; =0x00000B3C + str r0, [sp] + mov r2, #1 + ldr r1, [r4, r1] + add r0, r4, #0 + add r3, r2, #0 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0xa + mov r2, #2 + bl MOD80_0222E6DC + add r0, r4, #0 + bl MOD80_0222E8BC +_02236750: + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_02236758: .word 0x00000FCC +_0223675C: .word 0x00000F0F +_02236760: .word 0x00000B3C + thumb_func_end MOD80_022366FC + + thumb_func_start MOD80_02236764 +MOD80_02236764: ; 0x02236764 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0223678C ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + ldr r1, _02236790 ; =0x00000B34 + mov r2, #7 + ldr r1, [r4, r1] + mov r3, #1 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0xb + mov r2, #0xe + bl MOD80_0222E6DC + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_0223678C: .word 0x00000F0F +_02236790: .word 0x00000B34 + thumb_func_end MOD80_02236764 + + thumb_func_start MOD80_02236794 +MOD80_02236794: ; 0x02236794 + push {r4, lr} + add r4, r0, #0 + ldr r0, _022367F4 ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _022367F0 + sub r1, r1, #1 + cmp r0, r1 + bne _022367D2 + bl MOD04_021DDD7C + cmp r0, #0 + bne _022367BE + mov r0, #0 + str r0, [r4, #0x2c] + b _022367F0 +_022367BE: + add r0, r4, #0 + mov r1, #7 + mov r2, #0xb + bl MOD80_0222E7A8 + mov r0, #1 + str r0, [r4, #0x1c] + mov r0, #9 + str r0, [r4, #0x2c] + b _022367F0 +_022367D2: + bl MOD04_021DDD7C + cmp r0, #0 + beq _022367DE + bl MOD04_021DDBBC +_022367DE: + bl FUN_020332DC + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #9 + str r0, [r4, #0x2c] +_022367F0: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_022367F4: .word 0x00000FCC + thumb_func_end MOD80_02236794 + + thumb_func_start MOD80_022367F8 +MOD80_022367F8: ; 0x022367F8 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _02236820 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0x2d + lsl r1, r1, #6 + ldr r1, [r4, r1] + mov r2, #0x19 + mov r3, #1 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0xa + mov r2, #0x10 + bl MOD80_0222E6DC + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02236820: .word 0x00000F0F + thumb_func_end MOD80_022367F8 + + thumb_func_start MOD80_02236824 +MOD80_02236824: ; 0x02236824 + push {r4, lr} + add r4, r0, #0 + bl FUN_020332DC + bl MOD04_021DDBBC + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #0x11 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02236824 + + thumb_func_start MOD80_02236844 +MOD80_02236844: ; 0x02236844 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0223686C ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0x2d + lsl r1, r1, #6 + ldr r1, [r4, r1] + mov r2, #0x1a + mov r3, #1 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0x12 + mov r2, #9 + bl MOD80_0222E6DC + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0223686C: .word 0x00000F0F + thumb_func_end MOD80_02236844 + + thumb_func_start MOD80_02236870 +MOD80_02236870: ; 0x02236870 + push {r4, lr} + add r4, r0, #0 + add r0, #0x50 + mov r1, #2 + mov r2, #1 + mov r3, #0x14 + bl MOD04_021DDEE0 + mov r0, #2 + bl MOD04_021DDE7C + bl MOD04_021DDDCC + mov r0, #3 + str r0, [r4, #0x2c] + pop {r4, pc} + thumb_func_end MOD80_02236870 + + thumb_func_start MOD80_02236890 +MOD80_02236890: ; 0x02236890 + push {r3, r4, lr} + sub sp, #0x44 + add r4, r0, #0 + bl MOD04_021DDCE8 + bl MOD04_021DDD7C + cmp r0, #0 + beq _022368F4 + bl MOD04_021DDC1C + cmp r0, #4 + beq _022368EA + cmp r0, #7 + beq _022368B4 + cmp r0, #8 + beq _022368D4 + b _022368F4 +_022368B4: + add r0, sp, #4 + bl MOD04_021DD808 + str r0, [r4, #0x40] + ldr r0, [sp, #4] + str r0, [r4, #0x44] + bl MOD04_021DD6F0 + bl MOD04_021DDBBC + add r0, r4, #0 + bl MOD80_0222E8D8 + mov r0, #0x15 + str r0, [r4, #0x2c] + b _022368F4 +_022368D4: + add r0, sp, #0 + bl MOD04_021DD808 + add r0, r4, #0 + bl MOD80_0222E8D8 + mov r0, #0x13 + str r0, [r4, #0x2c] + sub r0, #0x15 + str r0, [r4, #0x3c] + b _022368F4 +_022368EA: + add r0, sp, #8 + bl MOD04_021DD9DC + mov r0, #4 + str r0, [r4, #0x2c] +_022368F4: + mov r0, #3 + add sp, #0x44 + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD80_02236890 + + thumb_func_start MOD80_022368FC +MOD80_022368FC: ; 0x022368FC + push {r4, lr} + add r4, r0, #0 + bl MOD04_021DE05C + cmp r0, #0 + beq _0223690C + mov r0, #5 + str r0, [r4, #0x2c] +_0223690C: + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_022368FC + + thumb_func_start MOD80_02236910 +MOD80_02236910: ; 0x02236910 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + bl MOD04_021DDF4C + cmp r0, #3 + beq _02236928 + cmp r0, #4 + beq _0223692E + cmp r0, #5 + beq _0223692E + b _02236998 +_02236928: + mov r0, #6 + str r0, [r4, #0x2c] + b _02236998 +_0223692E: + add r0, r4, #0 + bl MOD80_0222E8D8 + add r0, sp, #4 + add r1, sp, #0 + bl MOD04_021DD718 + str r0, [r4, #0x40] + ldr r0, [sp, #4] + str r0, [r4, #0x44] + bl MOD04_021DD6F0 + bl MOD04_021DDBBC + ldr r0, [sp] + cmp r0, #7 + bhi _02236986 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0223695C: ; jump table + .short _02236986 - _0223695C - 2 ; case 0 + .short _0223696C - _0223695C - 2 ; case 1 + .short _0223696C - _0223695C - 2 ; case 2 + .short _02236986 - _0223695C - 2 ; case 3 + .short _02236972 - _0223695C - 2 ; case 4 + .short _02236986 - _0223695C - 2 ; case 5 + .short _0223697C - _0223695C - 2 ; case 6 + .short _02236982 - _0223695C - 2 ; case 7 +_0223696C: + mov r0, #0x15 + str r0, [r4, #0x2c] + b _02236986 +_02236972: + blx FUN_021EB550 + mov r0, #0x15 + str r0, [r4, #0x2c] + b _02236986 +_0223697C: + mov r0, #0x15 + str r0, [r4, #0x2c] + b _02236986 +_02236982: + bl FUN_020335E0 +_02236986: + ldr r1, [sp, #4] + ldr r0, _022369A0 ; =0xFFFFB1E0 + cmp r1, r0 + bge _02236998 + ldr r0, _022369A4 ; =0xFFFF8AD1 + cmp r1, r0 + blt _02236998 + mov r0, #0x15 + str r0, [r4, #0x2c] +_02236998: + mov r0, #3 + add sp, #8 + pop {r4, pc} + nop +_022369A0: .word 0xFFFFB1E0 +_022369A4: .word 0xFFFF8AD1 + thumb_func_end MOD80_02236910 + + thumb_func_start MOD80_022369A8 +MOD80_022369A8: ; 0x022369A8 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, [r5] + ldr r0, [r0, #0x14] + bl FUN_02028228 + add r4, r0, #0 + ldr r0, [r5] + ldr r0, [r0, #4] + bl FUN_02023830 + cmp r0, #0 + bne _022369CC + ldr r1, [r5] + ldr r0, [r1, #4] + ldr r1, [r1, #0x38] + bl FUN_02023834 +_022369CC: + ldr r0, [r5] + ldr r0, [r0, #4] + bl FUN_02023830 + add r6, r0, #0 + add r0, r4, #0 + bl FUN_02096D68 + add r3, r0, #0 + add r2, r1, #0 + add r0, r6, #0 + add r1, r3, #0 + bl MOD80_0222D5C0 + mov r0, #7 + str r0, [r5, #0x2c] + mov r0, #3 + pop {r4, r5, r6, pc} + thumb_func_end MOD80_022369A8 + + thumb_func_start MOD80_022369F0 +MOD80_022369F0: ; 0x022369F0 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DEBC + mov r0, #8 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_022369F0 + + thumb_func_start MOD80_02236A00 +MOD80_02236A00: ; 0x02236A00 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _02236A82 + bl MOD80_0222DBB8 + add r1, r0, #0 + add r1, #0xf + cmp r1, #0x11 + bhi _02236A82 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02236A24: ; jump table + .short _02236A68 - _02236A24 - 2 ; case 0 + .short _02236A70 - _02236A24 - 2 ; case 1 + .short _02236A78 - _02236A24 - 2 ; case 2 + .short _02236A68 - _02236A24 - 2 ; case 3 + .short _02236A82 - _02236A24 - 2 ; case 4 + .short _02236A82 - _02236A24 - 2 ; case 5 + .short _02236A82 - _02236A24 - 2 ; case 6 + .short _02236A82 - _02236A24 - 2 ; case 7 + .short _02236A82 - _02236A24 - 2 ; case 8 + .short _02236A82 - _02236A24 - 2 ; case 9 + .short _02236A82 - _02236A24 - 2 ; case 10 + .short _02236A82 - _02236A24 - 2 ; case 11 + .short _02236A82 - _02236A24 - 2 ; case 12 + .short _02236A70 - _02236A24 - 2 ; case 13 + .short _02236A60 - _02236A24 - 2 ; case 14 + .short _02236A48 - _02236A24 - 2 ; case 15 + .short _02236A58 - _02236A24 - 2 ; case 16 + .short _02236A60 - _02236A24 - 2 ; case 17 +_02236A48: + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + mov r0, #9 + str r0, [r4, #0x2c] + b _02236A82 +_02236A58: + str r0, [r4, #0x3c] + mov r0, #0x13 + str r0, [r4, #0x2c] + b _02236A82 +_02236A60: + str r0, [r4, #0x3c] + mov r0, #0x13 + str r0, [r4, #0x2c] + b _02236A82 +_02236A68: + str r0, [r4, #0x3c] + mov r0, #0x13 + str r0, [r4, #0x2c] + b _02236A82 +_02236A70: + str r0, [r4, #0x3c] + mov r0, #0x13 + str r0, [r4, #0x2c] + b _02236A82 +_02236A78: + add r0, r4, #0 + bl MOD80_0222E8D8 + bl FUN_020335E0 +_02236A82: + add r0, r4, #0 + bl MOD80_0222E8D8 + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02236A00 + + thumb_func_start MOD80_02236A8C +MOD80_02236A8C: ; 0x02236A8C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x44] + neg r0, r0 + bl MOD04_021D80E0 + ldr r2, [r4, #0x44] + add r1, r0, #0 + add r0, r4, #0 + neg r2, r2 + bl MOD80_02236E04 + mov r0, #0x16 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02236A8C + + thumb_func_start MOD80_02236AAC +MOD80_02236AAC: ; 0x02236AAC + push {r4, lr} + add r4, r0, #0 + ldr r0, _02236AD4 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + bne _02236AC0 + mov r0, #2 + tst r0, r1 + beq _02236ACE +_02236AC0: + ldr r0, _02236AD8 ; =0x00000EC8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + mov r0, #0 + str r0, [r4, #0x2c] +_02236ACE: + mov r0, #3 + pop {r4, pc} + nop +_02236AD4: .word 0x021C48B8 +_02236AD8: .word 0x00000EC8 + thumb_func_end MOD80_02236AAC + + thumb_func_start MOD80_02236ADC +MOD80_02236ADC: ; 0x02236ADC + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl FUN_02033ED0 + add r0, r4, #0 + bl MOD80_0222E8D8 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #0 + str r0, [r4, #0x2c] + ldr r0, _02236B14 ; =0x0000100C + mov r1, #1 + str r1, [r4, r0] + mov r0, #4 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 +_02236B14: .word 0x0000100C + thumb_func_end MOD80_02236ADC + + thumb_func_start MOD80_02236B18 +MOD80_02236B18: ; 0x02236B18 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02236B4C ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _02236B48 + sub r1, r1, #1 + cmp r0, r1 + bne _02236B3A + mov r0, #0 + str r0, [r4, #0x2c] + b _02236B48 +_02236B3A: + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #9 + str r0, [r4, #0x2c] +_02236B48: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_02236B4C: .word 0x00000FCC + thumb_func_end MOD80_02236B18 + + thumb_func_start MOD80_02236B50 +MOD80_02236B50: ; 0x02236B50 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, [r4, #0x3c] + mov r2, #0 + add r0, #0xf + cmp r0, #0x11 + bhi _02236B9E + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02236B6C: ; jump table + .short _02236B9C - _02236B6C - 2 ; case 0 + .short _02236B98 - _02236B6C - 2 ; case 1 + .short _02236B9E - _02236B6C - 2 ; case 2 + .short _02236B9C - _02236B6C - 2 ; case 3 + .short _02236B9E - _02236B6C - 2 ; case 4 + .short _02236B9E - _02236B6C - 2 ; case 5 + .short _02236B9E - _02236B6C - 2 ; case 6 + .short _02236B9E - _02236B6C - 2 ; case 7 + .short _02236B9E - _02236B6C - 2 ; case 8 + .short _02236B9E - _02236B6C - 2 ; case 9 + .short _02236B9C - _02236B6C - 2 ; case 10 + .short _02236B9E - _02236B6C - 2 ; case 11 + .short _02236B9C - _02236B6C - 2 ; case 12 + .short _02236B98 - _02236B6C - 2 ; case 13 + .short _02236B94 - _02236B6C - 2 ; case 14 + .short _02236B9E - _02236B6C - 2 ; case 15 + .short _02236B90 - _02236B6C - 2 ; case 16 + .short _02236B94 - _02236B6C - 2 ; case 17 +_02236B90: + mov r2, #0x8c + b _02236B9E +_02236B94: + mov r2, #0x8d + b _02236B9E +_02236B98: + mov r2, #0x92 + b _02236B9E +_02236B9C: + mov r2, #0x91 +_02236B9E: + ldr r0, _02236BC0 ; =0x00000F0F + ldr r1, _02236BC4 ; =0x00000B34 + str r0, [sp] + ldr r1, [r4, r1] + add r0, r4, #0 + mov r3, #1 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0xa + mov r2, #0x14 + bl MOD80_0222E6DC + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_02236BC0: .word 0x00000F0F +_02236BC4: .word 0x00000B34 + thumb_func_end MOD80_02236B50 + + thumb_func_start MOD80_02236BC8 +MOD80_02236BC8: ; 0x02236BC8 + push {r4, lr} + add r4, r0, #0 + bl FUN_020332DC + bl MOD04_021DDBBC + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #9 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02236BC8 + + thumb_func_start MOD80_02236BE8 +MOD80_02236BE8: ; 0x02236BE8 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02236C02 + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_02236C02: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02236BE8 + + thumb_func_start MOD80_02236C08 +MOD80_02236C08: ; 0x02236C08 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02236C32 + ldr r0, _02236C38 ; =0x00000FDC + ldr r0, [r4, r0] + cmp r0, #0x1e + ble _02236C2A + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_02236C2A: + ldr r0, _02236C38 ; =0x00000FDC + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] +_02236C32: + mov r0, #3 + pop {r4, pc} + nop +_02236C38: .word 0x00000FDC + thumb_func_end MOD80_02236C08 + + thumb_func_start MOD80_02236C3C +MOD80_02236C3C: ; 0x02236C3C + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02236C66 + mov r2, #0x8d + ldr r0, [r4, #4] + mov r1, #0xd + lsl r2, r2, #2 + bl MOD80_0222E6A8 + ldr r1, _02236C6C ; =0x00000FCC + str r0, [r4, r1] + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_02236C66: + mov r0, #3 + pop {r4, pc} + nop +_02236C6C: .word 0x00000FCC + thumb_func_end MOD80_02236C3C + + thumb_func_start MOD80_02236C70 +MOD80_02236C70: ; 0x02236C70 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r0, r1, #0 + add r1, r2, #0 + add r4, r3, #0 + bl FUN_0200A914 + mov r1, #0xb3 + add r6, r0, #0 + lsl r1, r1, #4 + ldr r0, [r5, r1] + add r1, #0x1c + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + add r0, r6, #0 + bl FUN_02021A20 + ldr r0, _02236CD8 ; =0x00000E98 + mov r1, #0xf + add r0, r5, r0 + bl FUN_02019620 + ldr r0, _02236CD8 ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r3, #0 + str r3, [sp] + str r4, [sp, #4] + ldr r0, _02236CD8 ; =0x00000E98 + ldr r2, _02236CDC ; =0x00000B4C + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + mov r1, #0x2e + lsl r1, r1, #6 + str r0, [r5, r1] + ldr r0, _02236CE0 ; =0x00000FDC + mov r1, #0 + str r1, [r5, r0] + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_02236CD8: .word 0x00000E98 +_02236CDC: .word 0x00000B4C +_02236CE0: .word 0x00000FDC + thumb_func_end MOD80_02236C70 + + thumb_func_start MOD80_02236CE4 +MOD80_02236CE4: ; 0x02236CE4 + push {r4, lr} + add r4, r0, #0 + cmp r3, #1 + beq _02236CF2 + cmp r3, #2 + beq _02236D08 + b _02236D16 +_02236CF2: + ldr r0, [sp, #0xc] + mov r2, #0 + bl FUN_02002E14 + ldrb r1, [r4, #7] + lsl r1, r1, #3 + sub r1, r1, r0 + lsr r0, r1, #0x1f + add r0, r1, r0 + asr r2, r0, #1 + b _02236D16 +_02236D08: + ldr r0, [sp, #0xc] + mov r2, #0 + bl FUN_02002E14 + ldrb r1, [r4, #7] + lsl r1, r1, #3 + sub r2, r1, r0 +_02236D16: + add r0, r2, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02236CE4 + + thumb_func_start MOD80_02236D1C +MOD80_02236D1C: ; 0x02236D1C + push {r4, r5, r6, lr} + sub sp, #0x10 + add r4, r3, #0 + ldr r3, [sp, #0x24] + add r5, r0, #0 + str r3, [sp] + mov r3, #1 + str r3, [sp, #4] + ldr r3, [sp, #0x20] + add r6, r1, #0 + bl MOD80_02236CE4 + add r3, r0, #0 + str r4, [sp] + mov r1, #0 + ldr r0, [sp, #0x24] + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r5, #0 + mov r1, #1 + add r2, r6, #0 + bl FUN_0201BDE0 + add sp, #0x10 + pop {r4, r5, r6, pc} + thumb_func_end MOD80_02236D1C + + thumb_func_start MOD80_02236D50 +MOD80_02236D50: ; 0x02236D50 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r4, r3, #0 + ldr r3, [sp, #0x24] + add r5, r0, #0 + str r3, [sp] + mov r3, #0 + str r3, [sp, #4] + ldr r3, [sp, #0x20] + add r6, r1, #0 + bl MOD80_02236CE4 + add r3, r0, #0 + str r4, [sp] + mov r1, #0 + ldr r0, [sp, #0x24] + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r2, r6, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD80_02236D50 + + thumb_func_start MOD80_02236D84 +MOD80_02236D84: ; 0x02236D84 + ldr r3, _02236D88 ; =FUN_02033E74 + bx r3 + .align 2, 0 +_02236D88: .word FUN_02033E74 + thumb_func_end MOD80_02236D84 + + thumb_func_start MOD80_02236D8C +MOD80_02236D8C: ; 0x02236D8C + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #1 + add r6, r1, #0 + lsl r0, r0, #8 + mov r1, #0x3e + bl FUN_020219F4 + add r4, r0, #0 + mov r0, #0x2d + lsl r0, r0, #6 + ldr r0, [r5, r0] + add r1, r6, #0 + add r2, r4, #0 + bl FUN_0200A8E0 + mov r1, #0xb3 + lsl r1, r1, #4 + ldr r0, [r5, r1] + add r1, #0x4c + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + ldr r0, _02236DFC ; =0x00000EC8 + mov r1, #0xf + add r0, r5, r0 + bl FUN_02019620 + ldr r0, _02236DFC ; =0x00000EC8 + mov r1, #1 + add r0, r5, r0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CCA4 + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + ldr r0, _02236DFC ; =0x00000EC8 + ldr r2, _02236E00 ; =0x00000B7C + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + mov r1, #0x2e + lsl r1, r1, #6 + str r0, [r5, r1] + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_02236DFC: .word 0x00000EC8 +_02236E00: .word 0x00000B7C + thumb_func_end MOD80_02236D8C + + thumb_func_start MOD80_02236E04 +MOD80_02236E04: ; 0x02236E04 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #0 + add r4, r1, #0 + mvn r0, r0 + cmp r4, r0 + bne _02236E16 + mov r4, #0xb +_02236E16: + mov r0, #2 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0xb3 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + mov r3, #5 + bl FUN_0200AD38 + ldr r0, _02236E44 ; =0x00000E98 + mov r1, #1 + add r0, r5, r0 + bl FUN_0200D0E0 + add r0, r5, #0 + add r1, r4, #0 + bl MOD80_02236D8C + add sp, #8 + pop {r3, r4, r5, pc} + nop +_02236E44: .word 0x00000E98 + thumb_func_end MOD80_02236E04 + + .section .rodata + ; 0x02236E48 + .incbin "baserom.nds", 0x2E8A88, 0x828 + + .section .data + ; 0x02237680 + .incbin "baserom.nds", 0x2E92C0, 0x660 + + .section .bss + ; 0x02237CE0 + .space 0x160 |