summaryrefslogtreecommitdiff
path: root/arm9/asm/libVCT.s
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-05-25 10:39:22 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-05-25 10:39:22 -0400
commitfff66e78f0acbdd2a9611440f1d09b27ad5220bf (patch)
tree31842cd437ef6db4cf3bc3625532299c9f91d9a9 /arm9/asm/libVCT.s
parent6c7951bbc627dbffe4a5fda1861ae158b812999c (diff)
Split UBIQUITOUS:SSL
Diffstat (limited to 'arm9/asm/libVCT.s')
-rw-r--r--arm9/asm/libVCT.s11558
1 files changed, 11558 insertions, 0 deletions
diff --git a/arm9/asm/libVCT.s b/arm9/asm/libVCT.s
new file mode 100644
index 00000000..7345545f
--- /dev/null
+++ b/arm9/asm/libVCT.s
@@ -0,0 +1,11558 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .section .rodata
+
+ .global UNK_020FF590
+UNK_020FF590: ; 0x020FF590
+ .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00
+
+ .global UNK_020FF598
+UNK_020FF598: ; 0x020FF598
+ .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+ .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+
+ .global UNK_020FF5B8
+UNK_020FF5B8: ; 0x020FF5B8
+ .byte 0xFF, 0x01, 0xFF, 0x01
+
+ .global UNK_020FF5BC
+UNK_020FF5BC: ; 0x020FF5BC
+ .byte 0xFF, 0xFF, 0x01, 0x02, 0xFF, 0xFF, 0x01, 0x02
+
+ .global UNK_020FF5C4
+UNK_020FF5C4: ; 0x020FF5C4
+ .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x04, 0x06, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x04, 0x06, 0x08
+
+ .global UNK_020FF5D4
+UNK_020FF5D4: ; 0x020FF5D4
+ .byte 0x07, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x0C, 0x00, 0x0D, 0x00, 0x0E, 0x00
+ .byte 0x10, 0x00, 0x11, 0x00, 0x13, 0x00, 0x15, 0x00, 0x17, 0x00, 0x19, 0x00, 0x1C, 0x00, 0x1F, 0x00
+ .byte 0x22, 0x00, 0x25, 0x00, 0x29, 0x00, 0x2D, 0x00, 0x32, 0x00, 0x37, 0x00, 0x3C, 0x00, 0x42, 0x00
+ .byte 0x49, 0x00, 0x50, 0x00, 0x58, 0x00, 0x61, 0x00, 0x6B, 0x00, 0x76, 0x00, 0x82, 0x00, 0x8F, 0x00
+ .byte 0x9D, 0x00, 0xAD, 0x00, 0xBE, 0x00, 0xD1, 0x00, 0xE6, 0x00, 0xFD, 0x00, 0x17, 0x01, 0x33, 0x01
+ .byte 0x51, 0x01, 0x73, 0x01, 0x98, 0x01, 0xC1, 0x01, 0xEE, 0x01, 0x20, 0x02, 0x56, 0x02, 0x92, 0x02
+ .byte 0xD4, 0x02, 0x1C, 0x03, 0x6C, 0x03, 0xC3, 0x03, 0x24, 0x04, 0x8E, 0x04, 0x02, 0x05, 0x83, 0x05
+ .byte 0x10, 0x06, 0xAB, 0x06, 0x56, 0x07, 0x12, 0x08, 0xE0, 0x08, 0xC3, 0x09, 0xBD, 0x0A, 0xD0, 0x0B
+ .byte 0xFF, 0x0C, 0x4C, 0x0E, 0xBA, 0x0F, 0x4C, 0x11, 0x07, 0x13, 0xEE, 0x14, 0x06, 0x17, 0x54, 0x19
+ .byte 0xDC, 0x1B, 0xA5, 0x1E, 0xB6, 0x21, 0x15, 0x25, 0xCA, 0x28, 0xDF, 0x2C, 0x5B, 0x31, 0x4B, 0x36
+ .byte 0xB9, 0x3B, 0xB2, 0x41, 0x44, 0x48, 0x7E, 0x4F, 0x71, 0x57, 0x2F, 0x60, 0xCE, 0x69, 0x62, 0x74
+ .byte 0xFF, 0x7F, 0x00, 0x00
+
+ .global UNK_020FF688
+UNK_020FF688: ; 0x020FF688
+ .byte 0x08
+
+ .global UNK_020FF689
+UNK_020FF689: ; 0x020FF689
+ .byte 0x00, 0x08, 0x00, 0x02, 0x04, 0x03, 0x04, 0x04, 0x04, 0x00, 0x00
+
+ .global UNK_020FF694
+UNK_020FF694: ; 0x020FF694
+ .byte 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x01, 0x02, 0x02, 0x02
+ .byte 0x02, 0x02, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00
+
+ .global UNK_020FF6AC
+UNK_020FF6AC: ; 0x020FF6AC
+ .byte 0x01, 0x08, 0x04, 0x0A, 0x00, 0x00, 0x00, 0x00
+
+ .global UNK_020FF6B4
+UNK_020FF6B4: ; 0x020FF6B4
+ .byte 0x07, 0x0C, 0x02, 0x03, 0x09, 0x02, 0x00, 0x00
+
+ .global UNK_020FF6BC
+UNK_020FF6BC: ; 0x020FF6BC
+ .byte 0x04, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF
+ .byte 0x02, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFE, 0x05, 0x05, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+ .byte 0xFF, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0x05, 0xFE
+ .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF, 0x00, 0x00, 0xFF, 0xFF
+ .byte 0x00, 0xFF, 0x00, 0x00
+
+ .global UNK_020FF700
+UNK_020FF700: ; 0x020FF700
+ .byte 0xFE, 0xFE, 0xFE, 0x03, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFD, 0xFF
+ .byte 0x02, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFE, 0xFE, 0xFE, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+ .byte 0xFF, 0xFE, 0x00, 0xFE, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFD
+ .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFD, 0xFF, 0x00, 0x00, 0xFF, 0xFF
+ .byte 0x00, 0xFF, 0x00, 0x00
+
+ .global UNK_020FF744
+UNK_020FF744: ; 0x020FF744
+ .byte 0x01, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0xFE, 0x05, 0xFE, 0xFE
+ .byte 0xFE, 0x00, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x05, 0xFE, 0xFE, 0xFE, 0xFE, 0x00, 0xFE, 0xFE, 0xFE
+ .byte 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE
+ .byte 0xFE, 0x02, 0x00, 0x00, 0x00, 0xFE, 0x00, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0xFE, 0xFE
+ .byte 0x00, 0xFE, 0x00, 0x00
+
+ .global UNK_020FF788
+UNK_020FF788: ; 0x020FF788
+ .byte 0xFE, 0xFE, 0xFE, 0x01, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0x05, 0x05, 0xFE, 0xFF
+ .byte 0xFE, 0x00, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x05, 0xFE, 0xFE, 0xFF, 0xFE, 0x00, 0xFE, 0xFE, 0xFE
+ .byte 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF, 0xFE, 0x00, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE
+ .byte 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFE, 0x00, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF, 0x00, 0x00, 0xFE, 0xFE
+ .byte 0x00, 0xFE, 0x00, 0x00
+
+ .global UNK_020FF7CC
+UNK_020FF7CC: ; 0x020FF7CC
+ .byte 0x94, 0xE8, 0x0A, 0x02, 0x84, 0xE8, 0x0A, 0x02
+
+ .global UNK_020FF7D4
+UNK_020FF7D4: ; 0x020FF7D4
+ .byte 0xB4, 0xF2, 0x0A, 0x02, 0x88, 0xF2, 0x0A, 0x02, 0x5C, 0xF2, 0x0A, 0x02, 0x30, 0xF2, 0x0A, 0x02
+ .byte 0x24, 0xF2, 0x0A, 0x02, 0x18, 0xF2, 0x0A, 0x02, 0x0C, 0xF2, 0x0A, 0x02, 0x00, 0xF2, 0x0A, 0x02
+ .byte 0xF4, 0xF1, 0x0A, 0x02, 0xE8, 0xF1, 0x0A, 0x02, 0xDC, 0xF1, 0x0A, 0x02, 0xD0, 0xF1, 0x0A, 0x02
+ .byte 0xC4, 0xF1, 0x0A, 0x02, 0xB8, 0xF1, 0x0A, 0x02, 0xAC, 0xF1, 0x0A, 0x02, 0xA0, 0xF1, 0x0A, 0x02
+ .byte 0x74, 0xF1, 0x0A, 0x02, 0x48, 0xF1, 0x0A, 0x02, 0x3C, 0xF1, 0x0A, 0x02, 0x30, 0xF1, 0x0A, 0x02
+ .byte 0x24, 0xF1, 0x0A, 0x02, 0x18, 0xF1, 0x0A, 0x02, 0x0C, 0xF1, 0x0A, 0x02, 0x00, 0xF1, 0x0A, 0x02
+ .byte 0xF4, 0xF0, 0x0A, 0x02, 0xE8, 0xF0, 0x0A, 0x02, 0xDC, 0xF0, 0x0A, 0x02, 0xD0, 0xF0, 0x0A, 0x02
+ .byte 0xC4, 0xF0, 0x0A, 0x02, 0xB8, 0xF0, 0x0A, 0x02, 0xAC, 0xF0, 0x0A, 0x02, 0xA0, 0xF0, 0x0A, 0x02
+ .byte 0x74, 0xF0, 0x0A, 0x02, 0x48, 0xF0, 0x0A, 0x02, 0x3C, 0xF0, 0x0A, 0x02, 0x30, 0xF0, 0x0A, 0x02
+
+ .section .data
+
+ .global UNK_0210646C
+UNK_0210646C: ; 0x0210646C
+ .byte 0x01, 0x00, 0x00, 0x00
+
+ .global UNK_02106470
+UNK_02106470: ; 0x02106470
+ .byte 0x3F, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x00
+ .byte 0xFF, 0x03, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x1F, 0x00, 0x00
+
+ .global UNK_02106490
+UNK_02106490: ; 0x02106490
+ .byte 0xF7, 0xB5, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global UNK_02106498
+UNK_02106498: ; 0x02106498
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x00
+
+ .global UNK_021064A8
+UNK_021064A8: ; 0x021064A8
+ .byte 0xFB, 0xE9, 0x3D, 0x40, 0xBC, 0xC7, 0xD1, 0x2C, 0x2A, 0xD0, 0x7C, 0x03, 0xF0, 0x08, 0x93, 0xF5
+
+ .global UNK_021064B8
+UNK_021064B8: ; 0x021064B8
+ .word FUN_020AE8B4
+
+ .global UNK_021064BC
+UNK_021064BC: ; 0x021064BC
+ .word FUN_020AE8AC
+
+ .global UNK_021064C0
+UNK_021064C0: ; 0x021064C0
+ .word FUN_020AE8C4
+
+ .global UNK_021064C4
+UNK_021064C4: ; 0x021064C4
+ .word FUN_020AE8BC
+
+ .global UNK_021064C8
+UNK_021064C8: ; 0x021064C8
+ .word UNK_021064E4
+ .word UNK_0210652C
+
+ .global UNK_021064D0
+UNK_021064D0: ; 0x021064D0
+ .word UNK_02106544
+ .word UNK_0210652C
+ .word UNK_021064E4
+ .word UNK_02106514
+ .word UNK_021064FC
+
+ .global UNK_021064E4
+UNK_021064E4: ; 0x021064E4
+ .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00
+
+ .global UNK_021064FC
+UNK_021064FC: ; 0x021064FC
+ .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
+ .byte 0x01, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x02, 0x00
+
+ .global UNK_02106514
+UNK_02106514: ; 0x02106514
+ .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
+ .byte 0x02, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x03, 0x00
+
+ .global UNK_0210652C
+UNK_0210652C: ; 0x0210652C
+ .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x04, 0x00
+
+ .global UNK_02106544
+UNK_02106544: ; 0x02106544
+ .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x04, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x06, 0x00
+
+ .bss
+
+ .global UNK_021CA86C
+UNK_021CA86C: ; 0x021CA86C
+ .space 0x4
+
+ .global UNK_021CA870
+UNK_021CA870: ; 0x021CA870
+ .space 0x4
+
+ .global UNK_021CA874
+UNK_021CA874: ; 0x021CA874
+ .space 0x8
+
+ .global UNK_021CA87C
+UNK_021CA87C: ; 0x021CA87C
+ .space 0x20
+
+ .global UNK_021CA89C
+UNK_021CA89C: ; 0x021CA89C
+ .space 0x4
+
+ .global UNK_021CA8A0
+UNK_021CA8A0: ; 0x021CA8A0
+ .space 0x10
+
+ .global UNK_021CA8B0
+UNK_021CA8B0: ; 0x021CA8B0
+ .space 0x4
+
+ .global UNK_021CA8B4
+UNK_021CA8B4: ; 0x021CA8B4
+ .space 0x4
+
+ .global UNK_021CA8B8
+UNK_021CA8B8: ; 0x021CA8B8
+ .space 0x4
+
+ .global UNK_021CA8BC
+UNK_021CA8BC: ; 0x021CA8BC
+ .space 0x4
+
+ .global UNK_021CA8C0
+UNK_021CA8C0: ; 0x021CA8C0
+ .space 0x4
+
+ .global UNK_021CA8C4
+UNK_021CA8C4: ; 0x021CA8C4
+ .space 0x4
+
+ .global UNK_021CA8C8
+UNK_021CA8C8: ; 0x021CA8C8
+ .space 0x4
+
+ .global UNK_021CA8CC
+UNK_021CA8CC: ; 0x021CA8CC
+ .space 0x4
+
+ .global UNK_021CA8D0
+UNK_021CA8D0: ; 0x021CA8D0
+ .space 0x4
+
+ .global UNK_021CA8D4
+UNK_021CA8D4: ; 0x021CA8D4
+ .space 0x4
+
+ .global UNK_021CA8D8
+UNK_021CA8D8: ; 0x021CA8D8
+ .space 0x4
+
+ .global UNK_021CA8DC
+UNK_021CA8DC: ; 0x021CA8DC
+ .space 0xc
+
+ .global UNK_021CA8E8
+UNK_021CA8E8: ; 0x021CA8E8
+ .space 0x1bc
+
+ .global UNK_021CAAA4
+UNK_021CAAA4: ; 0x021CAAA4
+ .space 0x45c
+
+ .global UNK_021CAF00
+UNK_021CAF00: ; 0x021CAF00
+ .space 0x8d8
+
+ .global UNK_021CB7D8
+UNK_021CB7D8: ; 0x021CB7D8
+ .space 0x4
+
+ .global UNK_021CB7DC
+UNK_021CB7DC: ; 0x021CB7DC
+ .space 0x4
+
+ .global UNK_021CB7E0
+UNK_021CB7E0: ; 0x021CB7E0
+ .space 0xc
+
+ .global UNK_021CB7EC
+UNK_021CB7EC: ; 0x021CB7EC
+ .space 0x4
+
+ .global UNK_021CB7F0
+UNK_021CB7F0: ; 0x021CB7F0
+ .space 0xc
+
+ .global UNK_021CB7FC
+UNK_021CB7FC: ; 0x021CB7FC
+ .space 0xc
+
+ .global UNK_021CB808
+UNK_021CB808: ; 0x021CB808
+ .space 0xc
+
+ .global UNK_021CB814
+UNK_021CB814: ; 0x021CB814
+ .space 0x4
+
+ .global UNK_021CB818
+UNK_021CB818: ; 0x021CB818
+ .space 0x4
+
+ .global UNK_021CB81C
+UNK_021CB81C: ; 0x021CB81C
+ .space 0x8
+
+ .global UNK_021CB824
+UNK_021CB824: ; 0x021CB824
+ .space 0x14
+
+ .global UNK_021CB838
+UNK_021CB838: ; 0x021CB838
+ .space 0x18
+
+ .global UNK_021CB850
+UNK_021CB850: ; 0x021CB850
+ .space 0x18
+
+ .global UNK_021CB868
+UNK_021CB868: ; 0x021CB868
+ .space 0x4
+
+ .global UNK_021CB86C
+UNK_021CB86C: ; 0x021CB86C
+ .space 0x4
+
+ .global UNK_021CB870
+UNK_021CB870: ; 0x021CB870
+ .space 0x4
+
+ .global UNK_021CB874
+UNK_021CB874: ; 0x021CB874
+ .space 0x4
+
+ .global UNK_021CB878
+UNK_021CB878: ; 0x021CB878
+ .space 0x4
+
+ .global UNK_021CB87C
+UNK_021CB87C: ; 0x021CB87C
+ .space 0x4
+
+ .global UNK_021CB880
+UNK_021CB880: ; 0x021CB880
+ .space 0x10
+
+ .global UNK_021CB890
+UNK_021CB890: ; 0x021CB890
+ .space 0x4
+
+ .global UNK_021CB894
+UNK_021CB894: ; 0x021CB894
+ .space 0x4
+
+ .global UNK_021CB898
+UNK_021CB898: ; 0x021CB898
+ .space 0x4
+
+ .global UNK_021CB89C
+UNK_021CB89C: ; 0x021CB89C
+ .space 0x4
+
+ .global UNK_021CB8A0
+UNK_021CB8A0: ; 0x021CB8A0
+ .space 0x4
+
+ .global UNK_021CB8A4
+UNK_021CB8A4: ; 0x021CB8A4
+ .space 0x18
+
+ .global UNK_021CB8BC
+UNK_021CB8BC: ; 0x021CB8BC
+ .space 0x18
+
+ .global UNK_021CB8D4
+UNK_021CB8D4: ; 0x021CB8D4
+ .space 0x440
+
+ .global UNK_021CBD14
+UNK_021CBD14: ; 0x021CBD14
+ .space 0x1000
+
+ .global UNK_021CCD14
+UNK_021CCD14: ; 0x021CCD14
+ .space 0x4
+
+ .global UNK_021CCD18
+UNK_021CCD18: ; 0x021CCD18
+ .space 0x4
+
+ .global UNK_021CCD1C
+UNK_021CCD1C: ; 0x021CCD1C
+ .space 0x4
+
+ .global UNK_021CCD20
+UNK_021CCD20: ; 0x021CCD20
+ .space 0x18
+
+ .global UNK_021CCD38
+UNK_021CCD38: ; 0x021CCD38
+ .space 0x4
+
+ .global UNK_021CCD3C
+UNK_021CCD3C: ; 0x021CCD3C
+ .space 0xc
+
+ .global UNK_021CCD48
+UNK_021CCD48: ; 0x021CCD48
+ .space 0x4
+
+ .global UNK_021CCD4C
+UNK_021CCD4C: ; 0x021CCD4C
+ .space 0xc
+
+ .global UNK_021CCD58
+UNK_021CCD58: ; 0x021CCD58
+ .space 0x14
+
+ .text
+
+ arm_func_start FUN_020A5A4C
+FUN_020A5A4C: ; 0x020A5A4C
+ mov r1, r0
+ mov r0, #0x0
+ mov r3, #0x1
+_020A5A58:
+ clz r2, r1
+ rsbs r2, r2, #0x1f
+ bxcc lr
+ bic r1, r1, r3, lsl r2
+ add r0, r0, #0x1
+ b _020A5A58
+
+ arm_func_start FUN_020A5A70
+FUN_020A5A70: ; 0x020A5A70
+ clz r0, r0
+ bx lr
+
+ arm_func_start FUN_020A5A78
+FUN_020A5A78: ; 0x020A5A78
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ bne _020A5D80
+ ldr r2, _020A5DA8 ; =UNK_021CA86C
+ mov r0, #0x0
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x2000
+ strb r0, [r1, #0x26b]
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x2200
+ strh r0, [r1, #0x82]
+ ldr r3, [r2, #0x0]
+ add r1, r3, #0x2000
+ ldr r1, [r1, #0x260]
+ cmp r1, #0xd
+ addls pc, pc, r1, lsl #0x2
+ b _020A5D4C
+_020A5AC4:
+ b _020A5D4C
+_020A5AC8:
+ b _020A5D4C
+_020A5ACC:
+ b _020A5D4C
+_020A5AD0:
+ b _020A5D4C
+_020A5AD4:
+ b _020A5D4C
+_020A5AD8:
+ b _020A5AFC
+_020A5ADC:
+ b _020A5AFC
+_020A5AE0:
+ b _020A5B24
+_020A5AE4:
+ b _020A5B4C
+_020A5AE8:
+ b _020A5C74
+_020A5AEC:
+ b _020A5CA4
+_020A5AF0:
+ b _020A5D4C
+_020A5AF4:
+ b _020A5C74
+_020A5AF8:
+ b _020A5CD4
+_020A5AFC:
+ mov r0, #0x3
+ bl FUN_020A6C38
+ mov r1, #0x0
+ ldr r3, _020A5DAC ; =0x000008F5
+ mov r2, r1
+ mov r0, #0x1
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5B24:
+ mov r0, #0x3
+ bl FUN_020A6C38
+ mov r0, #0x0
+ ldr r3, _020A5DB0 ; =0x000008FB
+ mov r1, r0
+ mov r2, r0
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5B4C:
+ add r1, r3, #0x2200
+ ldrh r4, [r1, #0xf8]
+ strh r0, [r1, #0xf8]
+ cmp r4, #0x12
+ bne _020A5C44
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x2100
+ ldrh r3, [r1, #0x70]
+ and r12, r3, #0x24
+ cmp r12, #0x24
+ beq _020A5C44
+ orr r3, r3, #0x24
+ strh r3, [r1, #0x70]
+ ldr r2, [r2, #0x0]
+ add r1, r2, #0x2000
+ ldr r3, [r1, #0x264]
+ and r1, r3, #0xc0000
+ cmp r1, #0xc0000
+ moveq r0, #0x1
+ mov r0, r0, lsl #0x10
+ mov r12, r0, lsr #0x10
+ and r1, r3, #0x30000
+ cmp r1, #0x30000
+ movne r3, #0x1
+ add r1, r2, #0x2140
+ ldr r0, _020A5DB4 ; =FUN_020A6144
+ moveq r3, #0x0
+ mov r2, #0x0
+ str r12, [sp, #0x0]
+ bl WM_StartConnectEx
+ cmp r0, #0x2
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ cmp r0, #0x3
+ beq _020A5C14
+ cmp r0, #0x8
+ bne _020A5C14
+ mov r0, #0xc
+ bl FUN_020A6C38
+ ldr r0, _020A5DA8 ; =UNK_021CA86C
+ ldr r3, _020A5DB8 ; =0x0000091C
+ ldr r0, [r0, #0x0]
+ mov r2, r4
+ add r1, r0, #0x2140
+ mov r0, #0x1
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5C14:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A5DA8 ; =UNK_021CA86C
+ ldr r3, _020A5DBC ; =0x00000925
+ ldr r0, [r0, #0x0]
+ mov r2, r4
+ add r1, r0, #0x2140
+ mov r0, #0x7
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5C44:
+ mov r0, #0x3
+ bl FUN_020A6C38
+ ldr r0, _020A5DA8 ; =UNK_021CA86C
+ ldr r3, _020A5DC0 ; =0x0000092D
+ ldr r0, [r0, #0x0]
+ mov r2, r4
+ add r1, r0, #0x2140
+ mov r0, #0x1
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5C74:
+ mov r0, #0x3
+ bl FUN_020A6C38
+ ldr r0, _020A5DA8 ; =UNK_021CA86C
+ ldr r3, _020A5DC4 ; =0x00000935
+ ldr r1, [r0, #0x0]
+ mov r0, #0x0
+ add r1, r1, #0x2140
+ mov r2, #0x1
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5CA4:
+ mov r0, #0x3
+ bl FUN_020A6C38
+ ldr r1, _020A5DA8 ; =UNK_021CA86C
+ mov r0, #0x0
+ ldr r1, [r1, #0x0]
+ ldr r3, _020A5DC8 ; =0x0000093C
+ mov r2, r0
+ add r1, r1, #0x2140
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5CD4:
+ ldr r0, _020A5DCC ; =FUN_020A6768
+ bl WM_PowerOff
+ cmp r0, #0x2
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ cmp r0, #0x3
+ beq _020A5D24
+ cmp r0, #0x8
+ bne _020A5D24
+ mov r0, #0xc
+ bl FUN_020A6C38
+ mov r1, #0x0
+ ldr r3, _020A5DD0 ; =0x0000094A
+ mov r2, r1
+ mov r0, #0x1
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5D24:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r1, #0x0
+ ldr r3, _020A5DD4 ; =0x00000953
+ mov r2, r1
+ mov r0, #0x7
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5D4C:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A5DA8 ; =UNK_021CA86C
+ ldr r3, _020A5DD8 ; =0x00000959
+ ldr r1, [r0, #0x0]
+ mov r0, #0x7
+ add r1, r1, #0x2000
+ ldr r2, [r1, #0x260]
+ mov r1, #0x0
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5D80:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r1, #0x0
+ mov r2, r1
+ mov r0, #0x7
+ mov r3, #0x960
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A5DA8: .word UNK_021CA86C
+_020A5DAC: .word 0x000008F5
+_020A5DB0: .word 0x000008FB
+_020A5DB4: .word FUN_020A6144
+_020A5DB8: .word 0x0000091C
+_020A5DBC: .word 0x00000925
+_020A5DC0: .word 0x0000092D
+_020A5DC4: .word 0x00000935
+_020A5DC8: .word 0x0000093C
+_020A5DCC: .word FUN_020A6768
+_020A5DD0: .word 0x0000094A
+_020A5DD4: .word 0x00000953
+_020A5DD8: .word 0x00000959
+
+ arm_func_start FUN_020A5DDC
+FUN_020A5DDC: ; 0x020A5DDC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x4
+ addls pc, pc, r0, lsl #0x2
+ b _020A5EF4
+_020A5DF4:
+ b _020A5E08
+_020A5DF8:
+ b _020A5EDC
+_020A5DFC:
+ b _020A5EF4
+_020A5E00:
+ b _020A5EDC
+_020A5E04:
+ b _020A5EF4
+_020A5E08:
+ ldr r0, _020A5F24 ; =UNK_021CA86C
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ ldr r0, [r0, #0x260]
+ cmp r0, #0xc
+ bne _020A5E38
+ mov r0, #0xa
+ bl FUN_020A6C38
+ bl FUN_020A6B28
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A5E38:
+ ldr r0, _020A5F28 ; =FUN_020A6058
+ mov r1, #0x0
+ bl WM_Disconnect
+ cmp r0, #0x2
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ cmp r0, #0x3
+ beq _020A5E94
+ cmp r0, #0x8
+ bne _020A5EAC
+ mov r0, #0xc
+ bl FUN_020A6C38
+ ldr r0, _020A5F24 ; =UNK_021CA86C
+ ldr r3, _020A5F2C ; =0x000008B4
+ ldr r1, [r0, #0x0]
+ mov r0, #0x1
+ add r1, r1, #0x2140
+ mov r2, #0x0
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A5E94:
+ mov r0, #0xa
+ bl FUN_020A6C38
+ bl FUN_020A6B28
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A5EAC:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r1, _020A5F24 ; =UNK_021CA86C
+ mov r0, #0x7
+ ldr r1, [r1, #0x0]
+ mov r2, #0x0
+ add r1, r1, #0x2140
+ mov r3, #0x8c0
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A5EDC:
+ mov r0, #0xa
+ bl FUN_020A6C38
+ bl FUN_020A6B28
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A5EF4:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A5F24 ; =UNK_021CA86C
+ ldr r3, _020A5F30 ; =0x000008D3
+ ldr r1, [r0, #0x0]
+ mov r0, #0x7
+ add r1, r1, #0x2140
+ mov r2, #0x0
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A5F24: .word UNK_021CA86C
+_020A5F28: .word FUN_020A6058
+_020A5F2C: .word 0x000008B4
+_020A5F30: .word 0x000008D3
+
+ arm_func_start FUN_020A5F34
+FUN_020A5F34: ; 0x020A5F34
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0x0
+ beq _020A5F50
+ cmp r0, #0x4
+ b _020A601C
+_020A5F50:
+ ldrh r0, [r4, #0x4]
+ cmp r0, #0xe
+ beq _020A5F68
+ cmp r0, #0xf
+ beq _020A5FC0
+ b _020A5FF0
+_020A5F68:
+ ldr r0, _020A6048 ; =UNK_021CA86C
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ ldr r0, [r0, #0x260]
+ cmp r0, #0xc
+ bne _020A5F94
+ mov r0, #0x8
+ bl FUN_020A6C38
+ bl FUN_020A6B28
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5F94:
+ mov r0, #0x9
+ bl FUN_020A6C38
+ ldr r1, _020A6048 ; =UNK_021CA86C
+ mov r0, #0x0
+ ldr r1, [r1, #0x0]
+ ldr r3, _020A604C ; =0x00000872
+ mov r2, r0
+ add r1, r1, #0x2140
+ bl FUN_020A6D3C
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5FC0:
+ ldr r0, [r4, #0x8]
+ ldrh r0, [r0, #0xe]
+ mov r0, r0, asr #0x8
+ and r0, r0, #0xff
+ bl FUN_020A89D0
+ ldr r0, [r4, #0x8]
+ mov r1, #0x620
+ bl DC_InvalidateRange
+ ldr r0, [r4, #0x8]
+ bl FUN_020A8934
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A5FF0:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A6048 ; =UNK_021CA86C
+ ldrh r2, [r4, #0x4]
+ ldr r0, [r0, #0x0]
+ ldr r3, _020A6050 ; =0x00000881
+ add r1, r0, #0x2140
+ mov r0, #0x7
+ bl FUN_020A6D3C
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A601C:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A6048 ; =UNK_021CA86C
+ ldr r3, _020A6054 ; =0x0000088C
+ ldr r1, [r0, #0x0]
+ mov r0, #0x7
+ add r1, r1, #0x2140
+ mov r2, #0x0
+ bl FUN_020A6D3C
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A6048: .word UNK_021CA86C
+_020A604C: .word 0x00000872
+_020A6050: .word 0x00000881
+_020A6054: .word 0x0000088C
+
+ arm_func_start FUN_020A6058
+FUN_020A6058: ; 0x020A6058
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x4
+ addls pc, pc, r0, lsl #0x2
+ b _020A6108
+_020A6070:
+ b _020A6084
+_020A6074:
+ b _020A60F0
+_020A6078:
+ b _020A6108
+_020A607C:
+ b _020A60F0
+_020A6080:
+ b _020A6108
+_020A6084:
+ ldr r0, _020A6138 ; =UNK_021CA86C
+ ldr r1, [r0, #0x0]
+ add r0, r1, #0x2000
+ ldr r0, [r0, #0x260]
+ cmp r0, #0xc
+ bne _020A60B4
+ mov r0, #0xa
+ bl FUN_020A6C38
+ bl FUN_020A6B28
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A60B4:
+ add r1, r1, #0x2200
+ mov r2, #0x0
+ mov r0, #0x3
+ strh r2, [r1, #0x82]
+ bl FUN_020A6C38
+ ldr r1, _020A6138 ; =UNK_021CA86C
+ mov r0, #0x0
+ ldr r1, [r1, #0x0]
+ ldr r3, _020A613C ; =0x0000083D
+ mov r2, r0
+ add r1, r1, #0x2140
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A60F0:
+ mov r0, #0xa
+ bl FUN_020A6C38
+ bl FUN_020A6B28
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A6108:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A6138 ; =UNK_021CA86C
+ ldr r3, _020A6140 ; =0x0000084F
+ ldr r1, [r0, #0x0]
+ mov r0, #0x7
+ add r1, r1, #0x2140
+ mov r2, #0x0
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A6138: .word UNK_021CA86C
+_020A613C: .word 0x0000083D
+_020A6140: .word 0x0000084F
+
+ arm_func_start FUN_020A6144
+FUN_020A6144: ; 0x020A6144
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldrh r0, [r4, #0x2]
+ cmp r0, #0xc
+ addls pc, pc, r0, lsl #0x2
+ b _020A638C
+_020A615C:
+ b _020A6190
+_020A6160:
+ b _020A6364
+_020A6164:
+ b _020A638C
+_020A6168:
+ b _020A638C
+_020A616C:
+ b _020A638C
+_020A6170:
+ b _020A638C
+_020A6174:
+ b _020A6378
+_020A6178:
+ b _020A638C
+_020A617C:
+ b _020A638C
+_020A6180:
+ b _020A638C
+_020A6184:
+ b _020A638C
+_020A6188:
+ b _020A6378
+_020A618C:
+ b _020A6378
+_020A6190:
+ ldrh r0, [r4, #0x8]
+ cmp r0, #0x9
+ bgt _020A61D0
+ cmp r0, #0x0
+ addge pc, pc, r0, lsl #0x2
+ b _020A6338
+ b _020A6338
+ b _020A6338
+ b _020A6338
+ b _020A6338
+ b _020A6338
+ b _020A6338
+ b _020A63B0
+ b _020A6258
+ b _020A61E0
+ b _020A61E0
+_020A61D0:
+ cmp r0, #0x1a
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ b _020A6338
+_020A61E0:
+ ldr r1, _020A63B8 ; =UNK_021CA86C
+ ldr r2, [r1, #0x0]
+ add r0, r2, #0x2000
+ ldr r0, [r0, #0x260]
+ sub r0, r0, #0x8
+ cmp r0, #0x4
+ addls pc, pc, r0, lsl #0x2
+ b _020A63B0
+_020A6200:
+ b _020A6220
+_020A6204:
+ b _020A6230
+_020A6208:
+ b _020A6214
+_020A620C:
+ b _020A63B0
+_020A6210:
+ b _020A624C
+_020A6214:
+ add r0, r2, #0x2200
+ mov r1, #0x0
+ strh r1, [r0, #0x82]
+_020A6220:
+ mov r0, #0xc
+ bl FUN_020A6C38
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A6230:
+ add r0, r2, #0x2200
+ mov r2, #0x0
+ strh r2, [r0, #0x82]
+ ldr r0, [r1, #0x0]
+ mov r1, #0x6
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x80]
+_020A624C:
+ bl FUN_020A6B28
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A6258:
+ ldr r1, _020A63B8 ; =UNK_021CA86C
+ ldr r3, [r1, #0x0]
+ add r0, r3, #0x2000
+ ldr r0, [r0, #0x260]
+ cmp r0, #0xc
+ bne _020A6284
+ mov r0, #0x8
+ bl FUN_020A6C38
+ bl FUN_020A6B28
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A6284:
+ ldrh r2, [r4, #0xa]
+ cmp r2, #0x1
+ blo _020A632C
+ ldr r0, _020A63BC ; =0x000007D7
+ cmp r2, r0
+ bhi _020A632C
+ add r0, r3, #0x2200
+ strh r2, [r0, #0x82]
+ ldr r1, [r1, #0x0]
+ ldr r0, _020A63C0 ; =FUN_020A5F34
+ add r1, r1, #0x1500
+ mov r2, #0x620
+ bl WM_StartDCF
+ cmp r0, #0x2
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ cmp r0, #0x3
+ beq _020A6300
+ cmp r0, #0x8
+ bne _020A6300
+ mov r0, #0xc
+ bl FUN_020A6C38
+ ldr r0, _020A63B8 ; =UNK_021CA86C
+ ldr r3, _020A63C4 ; =0x000007ED
+ ldr r1, [r0, #0x0]
+ mov r0, #0x1
+ add r1, r1, #0x2140
+ mov r2, #0x0
+ bl FUN_020A6D3C
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A6300:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A63B8 ; =UNK_021CA86C
+ ldr r3, _020A63C8 ; =0x000007F6
+ ldr r1, [r0, #0x0]
+ mov r0, #0x7
+ add r1, r1, #0x2140
+ mov r2, #0x0
+ bl FUN_020A6D3C
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A632C:
+ bl FUN_020A6B28
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A6338:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A63B8 ; =UNK_021CA86C
+ ldrh r2, [r4, #0x8]
+ ldr r0, [r0, #0x0]
+ ldr r3, _020A63CC ; =0x00000804
+ add r1, r0, #0x2140
+ mov r0, #0x7
+ bl FUN_020A6D3C
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A6364:
+ ldr r0, _020A63B8 ; =UNK_021CA86C
+ ldrh r1, [r4, #0xe]
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0xf8]
+_020A6378:
+ mov r0, #0x8
+ bl FUN_020A6C38
+ bl FUN_020A6B28
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A638C:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A63B8 ; =UNK_021CA86C
+ ldr r3, _020A63D0 ; =0x0000081B
+ ldr r1, [r0, #0x0]
+ mov r0, #0x7
+ add r1, r1, #0x2140
+ mov r2, #0x0
+ bl FUN_020A6D3C
+_020A63B0:
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A63B8: .word UNK_021CA86C
+_020A63BC: .word 0x000007D7
+_020A63C0: .word FUN_020A5F34
+_020A63C4: .word 0x000007ED
+_020A63C8: .word 0x000007F6
+_020A63CC: .word 0x00000804
+_020A63D0: .word 0x0000081B
+
+ arm_func_start FUN_020A63D4
+FUN_020A63D4: ; 0x020A63D4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x4
+ addls pc, pc, r0, lsl #0x2
+ b _020A6438
+_020A63EC:
+ b _020A6400
+_020A63F0:
+ b _020A6428
+_020A63F4:
+ b _020A6438
+_020A63F8:
+ b _020A6438
+_020A63FC:
+ b _020A6438
+_020A6400:
+ mov r0, #0x3
+ bl FUN_020A6C38
+ mov r0, #0x0
+ ldr r3, _020A6460 ; =0x00000783
+ mov r1, r0
+ mov r2, r0
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A6428:
+ bl FUN_020A6B28
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A6438:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r1, #0x0
+ ldr r3, _020A6464 ; =0x00000793
+ mov r2, r1
+ mov r0, #0x7
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A6460: .word 0x00000783
+_020A6464: .word 0x00000793
+
+ arm_func_start FUN_020A6468
+FUN_020A6468: ; 0x020A6468
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x8
+ mov r5, r0
+ ldrh r0, [r5, #0x2]
+ mov r4, #0x14
+ cmp r0, #0x4
+ addls pc, pc, r0, lsl #0x2
+ b _020A6714
+_020A6488:
+ b _020A649C
+_020A648C:
+ b _020A6704
+_020A6490:
+ b _020A6714
+_020A6494:
+ b _020A6714
+_020A6498:
+ b _020A6714
+_020A649C:
+ ldr r0, _020A673C ; =UNK_021CA86C
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ ldr r0, [r0, #0x260]
+ cmp r0, #0x5
+ bne _020A64D0
+ mov r0, #0x6
+ bl FUN_020A6C38
+ mov r0, #0x0
+ ldr r3, _020A6740 ; =0x00000704
+ mov r1, r0
+ mov r2, r0
+ bl FUN_020A6D3C
+_020A64D0:
+ ldr r1, _020A673C ; =UNK_021CA86C
+ ldr r2, [r1, #0x0]
+ add r0, r2, #0x2000
+ ldr r0, [r0, #0x260]
+ cmp r0, #0x6
+ beq _020A64FC
+ cmp r0, #0x7
+ beq _020A6674
+ cmp r0, #0xd
+ beq _020A6684
+ b _020A6694
+_020A64FC:
+ add r0, r2, #0x2200
+ mov r2, #0x7
+ strh r2, [r0, #0x80]
+ ldrh r0, [r5, #0x8]
+ cmp r0, #0x5
+ bne _020A6588
+ ldr r0, [r1, #0x0]
+ add r1, r0, #0x2200
+ add r0, r0, #0x2000
+ ldrh r1, [r1, #0x8c]
+ ldr r0, [r0, #0x288]
+ bl DC_InvalidateRange
+ ldrh r0, [r5, #0xe]
+ mov r4, #0x0
+ cmp r0, #0x0
+ ble _020A6588
+ ldr r8, _020A6744 ; =0x0000071A
+ mov r6, r4
+ mov r7, #0x7
+_020A6548:
+ add r0, r5, r4, lsl #0x1
+ add r2, r5, r4, lsl #0x2
+ ldrh r1, [r0, #0x50]
+ ldr r0, [r2, #0x10]
+ bl FUN_020A8298
+ str r8, [sp, #0x0]
+ add r0, r5, r4, lsl #0x2
+ ldr r2, [r0, #0x10]
+ mov r0, r7
+ mov r1, r6
+ mov r3, r5
+ bl FUN_020A6CE0
+ ldrh r0, [r5, #0xe]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blt _020A6548
+_020A6588:
+ ldr r0, _020A673C ; =UNK_021CA86C
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ ldr r1, [r0, #0x264]
+ and r0, r1, #0xc00000
+ cmp r0, #0xc00000
+ bne _020A65F4
+ ldr r0, _020A6748 ; =0x00003FFE
+ and r0, r1, r0
+ bl FUN_020A5A4C
+ movs r1, r0
+ beq _020A65F4
+ ldr r0, _020A673C ; =UNK_021CA86C
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ ldr r6, [r0, #0x284]
+ mov r0, r6
+ bl _u32_div_f
+ cmp r1, #0x0
+ bne _020A65F4
+ ldr r4, _020A674C ; =0x00000728
+ mov r1, #0x0
+ mov r2, r6
+ mov r3, r1
+ mov r0, #0x8
+ str r4, [sp, #0x0]
+ bl FUN_020A6CE0
+_020A65F4:
+ ldrh r0, [r5, #0xa]
+ bl FUN_020A5A70
+ rsb r0, r0, #0x20
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ bl FUN_020A6D8C
+ ldr r1, _020A673C ; =UNK_021CA86C
+ mov r2, #0x1
+ mov r2, r2, lsl r0
+ ldr r0, [r1, #0x0]
+ mov r2, r2, asr #0x1
+ add r0, r0, #0x2200
+ strh r2, [r0, #0x8e]
+ ldr r0, [r1, #0x0]
+ add r1, r0, #0x2200
+ add r0, r0, #0x2000
+ ldrh r1, [r1, #0x8c]
+ ldr r0, [r0, #0x288]
+ bl DC_InvalidateRange
+ ldr r3, _020A673C ; =UNK_021CA86C
+ ldr r2, _020A6750 ; =0x00002288
+ ldr r1, [r3, #0x0]
+ ldr r0, _020A6754 ; =FUN_020A6468
+ add r1, r1, #0x2000
+ ldr r4, [r1, #0x284]
+ add r4, r4, #0x1
+ str r4, [r1, #0x284]
+ ldr r1, [r3, #0x0]
+ add r1, r1, r2
+ bl WM_StartScanEx
+ mov r4, r0
+ b _020A6694
+_020A6674:
+ ldr r0, _020A6758 ; =FUN_020A63D4
+ bl WM_EndScan
+ mov r4, r0
+ b _020A6694
+_020A6684:
+ bl FUN_020A6B28
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020A6694:
+ cmp r4, #0x2
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ cmp r4, #0x3
+ beq _020A66DC
+ cmp r4, #0x8
+ bne _020A66DC
+ mov r0, #0xc
+ bl FUN_020A6C38
+ mov r1, #0x0
+ ldr r3, _020A675C ; =0x00000753
+ mov r2, r1
+ mov r0, #0x1
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020A66DC:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r1, #0x0
+ ldr r3, _020A6760 ; =0x0000075C
+ mov r2, r1
+ mov r0, #0x7
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020A6704:
+ bl FUN_020A6B28
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020A6714:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r1, #0x0
+ ldr r3, _020A6764 ; =0x0000076D
+ mov r2, r1
+ mov r0, #0x7
+ bl FUN_020A6D3C
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020A673C: .word UNK_021CA86C
+_020A6740: .word 0x00000704
+_020A6744: .word 0x0000071A
+_020A6748: .word 0x00003FFE
+_020A674C: .word 0x00000728
+_020A6750: .word 0x00002288
+_020A6754: .word FUN_020A6468
+_020A6758: .word FUN_020A63D4
+_020A675C: .word 0x00000753
+_020A6760: .word 0x0000075C
+_020A6764: .word 0x0000076D
+
+ arm_func_start FUN_020A6768
+FUN_020A6768: ; 0x020A6768
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrh r1, [r0, #0x2]
+ mov r2, #0x14
+ cmp r1, #0x4
+ addls pc, pc, r1, lsl #0x2
+ b _020A6A0C
+_020A6784:
+ b _020A6798
+_020A6788:
+ b _020A69CC
+_020A678C:
+ b _020A6A0C
+_020A6790:
+ b _020A6A0C
+_020A6794:
+ b _020A6A0C
+_020A6798:
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x19
+ bgt _020A67D4
+ cmp r0, #0x19
+ bge _020A68B4
+ cmp r0, #0x6
+ addls pc, pc, r0, lsl #0x2
+ b _020A692C
+_020A67B8:
+ b _020A692C
+_020A67BC:
+ b _020A692C
+_020A67C0:
+ b _020A692C
+_020A67C4:
+ b _020A67F4
+_020A67C8:
+ b _020A6804
+_020A67CC:
+ b _020A6868
+_020A67D0:
+ b _020A6890
+_020A67D4:
+ cmp r0, #0x1d
+ bgt _020A67E8
+ cmp r0, #0x1d
+ beq _020A68A0
+ b _020A692C
+_020A67E8:
+ cmp r0, #0x27
+ beq _020A68DC
+ b _020A692C
+_020A67F4:
+ ldr r0, _020A6A4C ; =FUN_020A6768
+ bl WM_PowerOn
+ mov r2, r0
+ b _020A692C
+_020A6804:
+ bl WM_Finish
+ cmp r0, #0x0
+ beq _020A6818
+ cmp r0, #0x4
+ b _020A6840
+_020A6818:
+ mov r0, #0x1
+ bl FUN_020A6C38
+ mov r0, #0x0
+ ldr r3, _020A6A50 ; =0x00000663
+ mov r1, r0
+ mov r2, r0
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A6840:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r1, #0x0
+ ldr r3, _020A6A54 ; =0x0000066C
+ mov r2, r1
+ mov r0, #0x7
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A6868:
+ mov r0, #0x3
+ bl FUN_020A6C38
+ mov r0, #0x0
+ ldr r3, _020A6A58 ; =0x00000673
+ mov r1, r0
+ mov r2, r0
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A6890:
+ ldr r0, _020A6A4C ; =FUN_020A6768
+ bl WM_Disable
+ mov r2, r0
+ b _020A692C
+_020A68A0:
+ ldr r0, _020A6A4C ; =FUN_020A6768
+ mov r1, #0x0
+ bl WM_SetBeaconIndication
+ mov r2, r0
+ b _020A692C
+_020A68B4:
+ ldr r1, _020A6A5C ; =UNK_021CA86C
+ ldr r0, _020A6A4C ; =FUN_020A6768
+ ldr r3, [r1, #0x0]
+ add r2, r3, #0x2000
+ ldrb r1, [r2, #0x250]
+ ldrb r2, [r2, #0x251]
+ add r3, r3, #0x2200
+ bl WM_SetWEPKeyEx
+ mov r2, r0
+ b _020A692C
+_020A68DC:
+ ldr r0, _020A6A5C ; =UNK_021CA86C
+ ldr r2, [r0, #0x0]
+ add r0, r2, #0x2000
+ ldr r1, [r0, #0x264]
+ and r0, r1, #0xc0000
+ cmp r0, #0xc0000
+ moveq r0, #0x1
+ movne r0, #0x0
+ mov r0, r0, lsl #0x10
+ mov r12, r0, lsr #0x10
+ and r1, r1, #0x30000
+ cmp r1, #0x30000
+ movne r3, #0x1
+ add r1, r2, #0x2140
+ ldr r0, _020A6A60 ; =FUN_020A6144
+ moveq r3, #0x0
+ mov r2, #0x0
+ str r12, [sp, #0x0]
+ bl WM_StartConnectEx
+ mov r2, r0
+_020A692C:
+ cmp r2, #0x2
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ cmp r2, #0x3
+ beq _020A698C
+ cmp r2, #0x8
+ bne _020A698C
+ mov r0, #0xc
+ bl FUN_020A6C38
+ ldr r0, _020A6A5C ; =UNK_021CA86C
+ ldr r3, _020A6A64 ; =0x000006AF
+ ldr r1, [r0, #0x0]
+ mov r2, #0x0
+ add r0, r1, #0x2200
+ ldrsh r0, [r0, #0x80]
+ cmp r0, #0x5
+ addeq r1, r1, #0x2140
+ movne r1, #0x0
+ mov r0, #0x1
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A698C:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A6A5C ; =UNK_021CA86C
+ ldr r3, _020A6A68 ; =0x000006B8
+ ldr r1, [r0, #0x0]
+ mov r2, #0x0
+ add r0, r1, #0x2200
+ ldrsh r0, [r0, #0x80]
+ cmp r0, #0x5
+ addeq r1, r1, #0x2140
+ movne r1, #0x0
+ mov r0, #0x7
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A69CC:
+ mov r0, #0xc
+ bl FUN_020A6C38
+ ldr r0, _020A6A5C ; =UNK_021CA86C
+ ldr r3, _020A6A6C ; =0x000006DE
+ ldr r1, [r0, #0x0]
+ mov r2, #0x0
+ add r0, r1, #0x2200
+ ldrsh r0, [r0, #0x80]
+ cmp r0, #0x5
+ addeq r1, r1, #0x2140
+ movne r1, #0x0
+ mov r0, #0x1
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A6A0C:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ ldr r0, _020A6A5C ; =UNK_021CA86C
+ ldr r3, _020A6A70 ; =0x000006E8
+ ldr r1, [r0, #0x0]
+ mov r2, #0x0
+ add r0, r1, #0x2200
+ ldrsh r0, [r0, #0x80]
+ cmp r0, #0x5
+ addeq r1, r1, #0x2140
+ movne r1, #0x0
+ mov r0, #0x7
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A6A4C: .word FUN_020A6768
+_020A6A50: .word 0x00000663
+_020A6A54: .word 0x0000066C
+_020A6A58: .word 0x00000673
+_020A6A5C: .word UNK_021CA86C
+_020A6A60: .word FUN_020A6144
+_020A6A64: .word 0x000006AF
+_020A6A68: .word 0x000006B8
+_020A6A6C: .word 0x000006DE
+_020A6A70: .word 0x000006E8
+
+ arm_func_start FUN_020A6A74
+FUN_020A6A74: ; 0x020A6A74
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrh r1, [r0, #0x2]
+ cmp r1, #0x8
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldrh r1, [r0, #0x4]
+ cmp r1, #0x16
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldrh r0, [r0, #0x6]
+ cmp r0, #0x25
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldr r0, _020A6B24 ; =UNK_021CA86C
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ ldr r0, [r0, #0x260]
+ sub r0, r0, #0x8
+ cmp r0, #0x4
+ addls pc, pc, r0, lsl #0x2
+ b _020A6B18
+_020A6AD8:
+ b _020A6AEC
+_020A6ADC:
+ b _020A6B00
+_020A6AE0:
+ b _020A6B10
+_020A6AE4:
+ b _020A6B18
+_020A6AE8:
+ b _020A6B00
+_020A6AEC:
+ mov r0, #0xc
+ bl FUN_020A6C38
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A6B00:
+ bl FUN_020A6B28
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A6B10:
+ mov r0, #0xc
+ bl FUN_020A6C38
+_020A6B18:
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A6B24: .word UNK_021CA86C
+
+ arm_func_start FUN_020A6B28
+FUN_020A6B28: ; 0x020A6B28
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020A6B98 ; =UNK_021CA86C
+ ldr r0, [r0, #0x0]
+ add r1, r0, #0x2000
+ ldrb r0, [r1, #0x26b]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldr r0, _020A6B9C ; =FUN_020A5A78
+ mov r2, #0x1
+ strb r2, [r1, #0x26b]
+ bl WM_Reset
+ cmp r0, #0x2
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r1, #0x0
+ mov r2, r1
+ mov r0, #0x7
+ mov r3, #0x610
+ bl FUN_020A6D3C
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A6B98: .word UNK_021CA86C
+_020A6B9C: .word FUN_020A5A78
+
+ arm_func_start FUN_020A6BA0
+FUN_020A6BA0: ; 0x020A6BA0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FUN_020A88A8
+ bl FUN_020A6BBC
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_020A6BBC
+FUN_020A6BBC: ; 0x020A6BBC
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ bl OS_DisableInterrupts
+ ldr r2, _020A6C28 ; =UNK_021CA86C
+ ldr r1, _020A6C2C ; =0x000022CC
+ ldr r2, [r2, #0x0]
+ mov r4, r0
+ add r0, r2, r1
+ bl OS_CancelAlarm
+ ldr r0, _020A6C28 ; =UNK_021CA86C
+ ldr r12, [r0, #0x0]
+ add r0, r12, #0x2000
+ ldr r0, [r0, #0x260]
+ cmp r0, #0x9
+ bne _020A6C14
+ ldr r0, _020A6C2C ; =0x000022CC
+ ldr r1, _020A6C30 ; =0x022F5341
+ mov r2, #0x0
+ ldr r3, _020A6C34 ; =FUN_020A6BA0
+ add r0, r12, r0
+ str r2, [sp, #0x0]
+ bl OS_SetAlarm
+_020A6C14:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x8
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A6C28: .word UNK_021CA86C
+_020A6C2C: .word 0x000022CC
+_020A6C30: .word 0x022F5341
+_020A6C34: .word FUN_020A6BA0
+
+ arm_func_start FUN_020A6C38
+FUN_020A6C38:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl OS_DisableInterrupts
+ ldr r1, _020A6CD0 ; =UNK_021CA86C
+ mov r4, r0
+ ldr r1, [r1, #0x0]
+ add r0, r1, #0x2000
+ ldr r0, [r0, #0x260]
+ cmp r0, #0x9
+ bne _020A6C78
+ cmp r5, #0x9
+ beq _020A6C78
+ ldr r0, _020A6CD4 ; =0x000022CC
+ add r0, r1, r0
+ bl OS_CancelAlarm
+_020A6C78:
+ ldr r0, _020A6CD0 ; =UNK_021CA86C
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ ldr r1, [r0, #0x260]
+ cmp r1, #0xb
+ strne r5, [r0, #0x260]
+ cmp r5, #0x9
+ bne _020A6CBC
+ mov r2, #0x0
+ ldr r0, _020A6CD0 ; =UNK_021CA86C
+ str r2, [sp, #0x0]
+ ldr r5, [r0, #0x0]
+ ldr r0, _020A6CD4 ; =0x000022CC
+ ldr r1, _020A6CD8 ; =0x022F5341
+ ldr r3, _020A6CDC ; =FUN_020A6BA0
+ add r0, r5, r0
+ bl OS_SetAlarm
+_020A6CBC:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020A6CD0: .word UNK_021CA86C
+_020A6CD4: .word 0x000022CC
+_020A6CD8: .word 0x022F5341
+_020A6CDC: .word FUN_020A6BA0
+
+ arm_func_start FUN_020A6CE0
+FUN_020A6CE0: ; 0x020A6CE0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x14
+ ldr ip, _020A6D38 ; =UNK_021CA86C
+ ldr r12, [r12, #0x0]
+ add r12, r12, #0x2000
+ ldr lr, [r12, #0x27c]
+ cmp lr, #0x0
+ addeq sp, sp, #0x14
+ ldmeqia sp!, {lr}
+ bxeq lr
+ ldr lr, [sp, #0x18]
+ strh r0, [sp, #0x0]
+ str r2, [sp, #0x4]
+ str r3, [sp, #0x8]
+ str lr, [sp, #0xc]
+ strh r1, [sp, #0x2]
+ ldr r1, [r12, #0x27c]
+ add r0, sp, #0x0
+ blx r1
+ add sp, sp, #0x14
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A6D38: .word UNK_021CA86C
+
+ arm_func_start FUN_020A6D3C
+FUN_020A6D3C: ; 0x020A6D3C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr ip, _020A6D88 ; =UNK_021CA86C
+ mov r5, r0
+ ldr r0, [r12, #0x0]
+ mov r4, r1
+ add r1, r0, #0x2200
+ ldrsh r0, [r1, #0x80]
+ mov r12, #0x0
+ mov lr, r2
+ strh r12, [r1, #0x80]
+ str r3, [sp, #0x0]
+ mov r1, r5
+ mov r2, r4
+ mov r3, lr
+ bl FUN_020A6CE0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020A6D88: .word UNK_021CA86C
+
+ arm_func_start FUN_020A6D8C
+FUN_020A6D8C: ; 0x020A6D8C
+ stmdb sp!, {r4-r6,lr}
+ ldr r1, _020A6E24 ; =UNK_021CA86C
+ mov r2, r0
+ ldr r1, [r1, #0x0]
+ mov r3, #0x0
+ add r1, r1, #0x2000
+ ldr r1, [r1, #0x264]
+ mov r6, #0x1
+ ldr r5, _020A6E28 ; =0x4EC4EC4F
+ ldr r4, _020A6E2C ; =0x0000000D
+_020A6DB4:
+ smull r12, lr, r5, r2
+ mov lr, lr, asr #0x2
+ mov r12, r2, lsr #0x1f
+ add lr, r12, lr
+ smull r12, lr, r4, lr
+ sub lr, r2, r12
+ add r12, lr, #0x1
+ mov r12, r6, lsl r12
+ ands r12, r1, r12
+ bne _020A6DEC
+ add r3, r3, #0x1
+ cmp r3, #0xd
+ add r2, r2, #0x1
+ blt _020A6DB4
+_020A6DEC:
+ ldr r1, _020A6E28 ; =0x4EC4EC4F
+ add r3, r0, r3
+ smull r0, r4, r1, r3
+ mov r4, r4, asr #0x2
+ mov r0, r3, lsr #0x1f
+ ldr r2, _020A6E2C ; =0x0000000D
+ add r4, r0, r4
+ smull r0, r1, r2, r4
+ sub r4, r3, r0
+ add r0, r4, #0x1
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020A6E24: .word UNK_021CA86C
+_020A6E28: .word 0x4EC4EC4F
+_020A6E2C: .word 0x0000000D
+
+ arm_func_start FUN_020A6E30
+FUN_020A6E30: ; 0x020A6E30
+ ldr r0, _020A6E48 ; =UNK_021CA86C
+ ldr r1, _020A6E4C ; =0x00AAA082
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ str r1, [r0, #0x264]
+ bx lr
+ .balign 4
+_020A6E48: .word UNK_021CA86C
+_020A6E4C: .word 0x00AAA082
+
+ arm_func_start FUN_020A6E50
+FUN_020A6E50: ; 0x020A6E50
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r0, r2
+ mov r4, r1
+ bl FUN_020A7148
+ ldr r2, _020A6FF4 ; =UNK_021CA86C
+ mov r3, #0x400
+ ldr r1, [r2, #0x0]
+ mov r0, #0x0
+ add r12, r1, #0x1500
+ add r1, r1, #0x2000
+ str r12, [r1, #0x288]
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x2200
+ strh r3, [r1, #0x8c]
+ bl FUN_020A6D8C
+ ldr r1, _020A6FF4 ; =UNK_021CA86C
+ mov r2, #0x1
+ mov r2, r2, lsl r0
+ ldr r0, [r1, #0x0]
+ mov r2, r2, asr #0x1
+ add r0, r0, #0x2200
+ strh r2, [r0, #0x8e]
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x2200
+ ldrh r0, [r0, #0x68]
+ cmp r0, #0x0
+ bne _020A6EC8
+ bl WM_GetDispersionScanPeriod
+_020A6EC8:
+ ldr r2, _020A6FF4 ; =UNK_021CA86C
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x2200
+ strh r0, [r1, #0x90]
+ ldr r1, [r2, #0x0]
+ add r0, r1, #0x2000
+ ldr r0, [r0, #0x264]
+ and r0, r0, #0x300000
+ cmp r0, #0x300000
+ movne r2, #0x1
+ moveq r2, #0x0
+ add r0, r1, #0x2200
+ strh r2, [r0, #0x98]
+ cmp r5, #0x0
+ bne _020A6F24
+ ldr r0, _020A6FF4 ; =UNK_021CA86C
+ ldr r1, _020A6FF8 ; =0x00002292
+ ldr r2, [r0, #0x0]
+ ldr r0, _020A6FFC ; =UNK_020FF590
+ add r1, r2, r1
+ mov r2, #0x6
+ bl MI_CpuCopy8
+ b _020A6F40
+_020A6F24:
+ ldr r0, _020A6FF4 ; =UNK_021CA86C
+ ldr r1, _020A6FF8 ; =0x00002292
+ ldr r2, [r0, #0x0]
+ mov r0, r5
+ add r1, r2, r1
+ mov r2, #0x6
+ bl MI_CpuCopy8
+_020A6F40:
+ cmp r4, #0x0
+ beq _020A6F54
+ ldr r0, _020A7000 ; =UNK_020FF598
+ cmp r4, r0
+ bne _020A6F88
+_020A6F54:
+ ldr r0, _020A6FF4 ; =UNK_021CA86C
+ ldr r1, _020A7004 ; =0x0000229C
+ ldr r2, [r0, #0x0]
+ ldr r0, _020A7000 ; =UNK_020FF598
+ add r1, r2, r1
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ ldr r0, _020A6FF4 ; =UNK_021CA86C
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x9a]
+ b _020A6FD4
+_020A6F88:
+ ldr r0, _020A6FF4 ; =UNK_021CA86C
+ ldr r1, _020A7004 ; =0x0000229C
+ ldr r2, [r0, #0x0]
+ mov r0, r4
+ add r1, r2, r1
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ mov r1, #0x0
+_020A6FA8:
+ ldrb r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020A6FC4
+ add r1, r1, #0x1
+ cmp r1, #0x20
+ add r4, r4, #0x1
+ blt _020A6FA8
+_020A6FC4:
+ ldr r0, _020A6FF4 ; =UNK_021CA86C
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x9a]
+_020A6FD4:
+ ldr r0, _020A6FF4 ; =UNK_021CA86C
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ str r1, [r0, #0x284]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020A6FF4: .word UNK_021CA86C
+_020A6FF8: .word 0x00002292
+_020A6FFC: .word UNK_020FF590
+_020A7000: .word UNK_020FF598
+_020A7004: .word 0x0000229C
+
+ arm_func_start FUN_020A7008
+FUN_020A7008: ; 0x020A7008
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ movs r5, r0
+ mov r4, r1
+ bne _020A705C
+ ldr r1, _020A7134 ; =UNK_021CA86C
+ mov r3, #0x3
+ ldr r0, [r1, #0x0]
+ mov r2, #0x0
+ add r0, r0, #0x2000
+ str r3, [r0, #0x26c]
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x2000
+ str r2, [r0, #0x270]
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x2000
+ str r2, [r0, #0x274]
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x2000
+ str r2, [r0, #0x278]
+ b _020A7118
+_020A705C:
+ ldr r1, _020A7134 ; =UNK_021CA86C
+ ldr r2, [r5, #0x0]
+ ldr r0, [r1, #0x0]
+ and r2, r2, #0x3
+ add r0, r0, #0x2000
+ str r2, [r0, #0x26c]
+ ldr r3, [r5, #0x4]
+ ldr r0, [r5, #0x8]
+ and r2, r3, #0x3
+ rsb r2, r2, #0x4
+ and r2, r2, #0x3
+ add r2, r2, #0xc
+ cmp r2, r0
+ bls _020A70B4
+ ldr r0, [r1, #0x0]
+ mov r2, #0x0
+ add r0, r0, #0x2000
+ str r2, [r0, #0x270]
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x2000
+ str r2, [r0, #0x274]
+ b _020A7104
+_020A70B4:
+ ldr r0, [r1, #0x0]
+ add r2, r3, #0x3
+ bic r2, r2, #0x3
+ add r0, r0, #0x2000
+ str r2, [r0, #0x270]
+ ldr r2, [r5, #0x4]
+ ldr r0, [r1, #0x0]
+ and r2, r2, #0x3
+ rsb r2, r2, #0x4
+ ldr r3, [r5, #0x8]
+ and r2, r2, #0x3
+ sub r2, r3, r2
+ add r0, r0, #0x2000
+ str r2, [r0, #0x274]
+ ldr r0, [r1, #0x0]
+ mov r1, #0x0
+ add r2, r0, #0x2000
+ ldr r0, [r2, #0x270]
+ ldr r2, [r2, #0x274]
+ bl MI_CpuFill8
+_020A7104:
+ ldr r0, _020A7134 ; =UNK_021CA86C
+ ldr r1, [r5, #0xc]
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ str r1, [r0, #0x278]
+_020A7118:
+ ldr r0, _020A7134 ; =UNK_021CA86C
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2000
+ str r4, [r0, #0x27c]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020A7134: .word UNK_021CA86C
+
+ arm_func_start FUN_020A7138
+FUN_020A7138:
+ ldr r0, _020A7144 ; =UNK_021CA86C
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020A7144: .word UNK_021CA86C
+
+ arm_func_start FUN_020A7148
+FUN_020A7148: ; 0x020A7148
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl OS_DisableInterrupts
+ ldr r1, _020A71EC ; =UNK_021CA86C
+ mov r2, #0x0
+ ldr r1, [r1, #0x0]
+ add r3, r1, #0x2000
+ cmp r1, #0x0
+ ldr r4, [r3, #0x264]
+ bne _020A7188
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A7188:
+ ands r3, r5, #0x8000
+ beq _020A71A4
+ ldr r3, _020A71F0 ; =0x00003FFE
+ orr r2, r2, r3
+ ands r3, r5, r3
+ ldreq r3, _020A71F4 ; =0x0000A082
+ orreq r5, r5, r3
+_020A71A4:
+ ands r3, r5, #0x20000
+ orrne r2, r2, #0x10000
+ ands r3, r5, #0x80000
+ orrne r2, r2, #0x40000
+ ands r3, r5, #0x200000
+ orrne r2, r2, #0x100000
+ ands r3, r5, #0x800000
+ orrne r2, r2, #0x400000
+ mvn r2, r2
+ and r2, r4, r2
+ orr r2, r5, r2
+ add r1, r1, #0x2000
+ str r2, [r1, #0x264]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020A71EC: .word UNK_021CA86C
+_020A71F0: .word 0x00003FFE
+_020A71F4: .word 0x0000A082
+
+ arm_func_start FUN_020A71F8
+FUN_020A71F8: ; 0x020A71F8
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ ldr r1, _020A7228 ; =UNK_021CA86C
+ mov r4, #0x0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ addne r1, r1, #0x2000
+ ldrne r4, [r1, #0x260]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A7228: .word UNK_021CA86C
+
+ arm_func_start FUN_020A722C
+FUN_020A722C: ; 0x020A722C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ bl OS_DisableInterrupts
+ ldr r1, _020A747C ; =UNK_021CA86C
+ mov r4, r0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _020A7260
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A7260:
+ add r1, r1, #0x2000
+ ldr r2, [r1, #0x260]
+ cmp r2, #0xd
+ addls pc, pc, r2, lsl #0x2
+ b _020A7308
+_020A7274:
+ b _020A7308
+_020A7278:
+ b _020A72C0
+_020A727C:
+ b _020A7308
+_020A7280:
+ b _020A7320
+_020A7284:
+ b _020A7308
+_020A7288:
+ b _020A7308
+_020A728C:
+ b _020A72D4
+_020A7290:
+ b _020A7308
+_020A7294:
+ b _020A7308
+_020A7298:
+ b _020A7320
+_020A729C:
+ b _020A7308
+_020A72A0:
+ b _020A7308
+_020A72A4:
+ b _020A7320
+_020A72A8:
+ b _020A72AC
+_020A72AC:
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x2
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A72C0:
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A72D4:
+ mov r0, #0xd
+ bl FUN_020A6C38
+ ldr r1, _020A747C ; =UNK_021CA86C
+ mov r0, r4
+ ldr r1, [r1, #0x0]
+ mov r2, #0x9
+ add r1, r1, #0x2200
+ strh r2, [r1, #0x80]
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x3
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A7308:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A7320:
+ ldrb r0, [r1, #0x26b]
+ cmp r0, #0x1
+ bne _020A734C
+ mov r0, #0xd
+ bl FUN_020A6C38
+ ldr r0, _020A747C ; =UNK_021CA86C
+ mov r1, #0x9
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x80]
+ b _020A7464
+_020A734C:
+ bl WMi_GetStatusAddress
+ mov r5, r0
+ mov r1, #0x2
+ bl DC_InvalidateRange
+ ldrh r0, [r5, #0x0]
+ cmp r0, #0x0
+ beq _020A737C
+ cmp r0, #0x1
+ beq _020A73BC
+ cmp r0, #0x2
+ beq _020A73C8
+ b _020A73D4
+_020A737C:
+ bl WM_Finish
+ cmp r0, #0x0
+ bne _020A73F0
+ mov r0, #0x1
+ bl FUN_020A6C38
+ ldr r1, _020A747C ; =UNK_021CA86C
+ mov r0, r4
+ ldr r1, [r1, #0x0]
+ mov r2, #0x0
+ add r1, r1, #0x2200
+ strh r2, [r1, #0x80]
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A73BC:
+ ldr r0, _020A7480 ; =FUN_020A6768
+ bl WM_Disable
+ b _020A73F0
+_020A73C8:
+ ldr r0, _020A7480 ; =FUN_020A6768
+ bl WM_PowerOff
+ b _020A73F0
+_020A73D4:
+ ldr r1, _020A747C ; =UNK_021CA86C
+ ldr r0, _020A7484 ; =FUN_020A5A78
+ ldr r1, [r1, #0x0]
+ mov r2, #0x1
+ add r1, r1, #0x2000
+ strb r2, [r1, #0x26b]
+ bl WM_Reset
+_020A73F0:
+ cmp r0, #0x2
+ beq _020A740C
+ cmp r0, #0x3
+ beq _020A7444
+ cmp r0, #0x8
+ beq _020A742C
+ b _020A7444
+_020A740C:
+ mov r0, #0xd
+ bl FUN_020A6C38
+ ldr r0, _020A747C ; =UNK_021CA86C
+ mov r1, #0x9
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x80]
+ b _020A7464
+_020A742C:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A7444:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x7
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A7464:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x3
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020A747C: .word UNK_021CA86C
+_020A7480: .word FUN_020A6768
+_020A7484: .word FUN_020A5A78
+
+ arm_func_start FUN_020A7488
+FUN_020A7488: ; 0x020A7488
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ ldr r1, _020A75B8 ; =UNK_021CA86C
+ mov r4, r0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _020A74B4
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A74B4:
+ add r1, r1, #0x2000
+ ldr r2, [r1, #0x260]
+ cmp r2, #0x3
+ beq _020A74E4
+ cmp r2, #0x9
+ beq _020A7504
+ cmp r2, #0xa
+ bne _020A74F4
+ bl OS_RestoreInterrupts
+ mov r0, #0x2
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A74E4:
+ bl OS_RestoreInterrupts
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A74F4:
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A7504:
+ ldrb r0, [r1, #0x26b]
+ cmp r0, #0x1
+ bne _020A7530
+ mov r0, #0xa
+ bl FUN_020A6C38
+ ldr r0, _020A75B8 ; =UNK_021CA86C
+ mov r1, #0x6
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x80]
+ b _020A75A4
+_020A7530:
+ ldr r0, _020A75BC ; =FUN_020A5DDC
+ bl WM_EndDCF
+ cmp r0, #0x2
+ beq _020A7554
+ cmp r0, #0x3
+ beq _020A7588
+ cmp r0, #0x8
+ beq _020A7574
+ b _020A7588
+_020A7554:
+ mov r0, #0xa
+ bl FUN_020A6C38
+ ldr r0, _020A75B8 ; =UNK_021CA86C
+ mov r1, #0x6
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x80]
+ b _020A75A4
+_020A7574:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x4
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A7588:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x7
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A75A4:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x3
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A75B8: .word UNK_021CA86C
+_020A75BC: .word FUN_020A5DDC
+
+ arm_func_start FUN_020A75C0
+FUN_020A75C0: ; 0x020A75C0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ bl OS_DisableInterrupts
+ ldr r2, _020A7814 ; =UNK_021CA86C
+ mov r4, r0
+ ldr r12, [r2, #0x0]
+ cmp r12, #0x0
+ bne _020A7600
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A7600:
+ add r1, r12, #0x2000
+ ldr r3, [r1, #0x260]
+ cmp r3, #0x3
+ beq _020A7624
+ cmp r3, #0x8
+ beq _020A7734
+ cmp r3, #0x9
+ beq _020A7748
+ b _020A775C
+_020A7624:
+ cmp r7, #0x0
+ bne _020A7640
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A7640:
+ ldrh r3, [r7, #0x3c]
+ cmp r3, #0x0
+ beq _020A7660
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A7660:
+ cmp r6, #0x0
+ beq _020A76E8
+ ldrb r3, [r6, #0x0]
+ cmp r3, #0x4
+ bhs _020A7680
+ ldrb r0, [r6, #0x1]
+ cmp r0, #0x4
+ blo _020A7698
+_020A7680:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A7698:
+ strb r3, [r1, #0x250]
+ ldr r0, [r2, #0x0]
+ ldrb r1, [r6, #0x1]
+ add r0, r0, #0x2000
+ strb r1, [r0, #0x251]
+ ldr r1, [r2, #0x0]
+ add r0, r1, #0x2000
+ ldrb r0, [r0, #0x250]
+ cmp r0, #0x0
+ bne _020A76D4
+ add r0, r1, #0x2200
+ mov r1, #0x0
+ mov r2, #0x50
+ bl MI_CpuFill8
+ b _020A76F8
+_020A76D4:
+ add r0, r6, #0x2
+ add r1, r1, #0x2200
+ mov r2, #0x50
+ bl MI_CpuCopy8
+ b _020A76F8
+_020A76E8:
+ add r0, r12, #0x2200
+ mov r1, #0x0
+ mov r2, #0x52
+ bl MI_CpuFill8
+_020A76F8:
+ ldr r1, _020A7814 ; =UNK_021CA86C
+ mov r0, r7
+ ldr r1, [r1, #0x0]
+ mov r2, #0xc0
+ add r1, r1, #0x2140
+ bl MI_CpuCopy8
+ ldr r1, _020A7814 ; =UNK_021CA86C
+ mov r0, r5
+ ldr r1, [r1, #0x0]
+ add r1, r1, #0x2100
+ ldrh r2, [r1, #0x6e]
+ orr r2, r2, #0x3
+ strh r2, [r1, #0x70]
+ bl FUN_020A7148
+ b _020A7770
+_020A7734:
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x2
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A7748:
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A775C:
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A7770:
+ ldr r1, _020A7818 ; =0x0000FFFF
+ ldr r0, _020A781C ; =FUN_020A6768
+ mov r3, r1
+ mov r2, #0x50
+ str r1, [sp, #0x0]
+ bl WM_SetLifeTime
+ cmp r0, #0x2
+ beq _020A77A4
+ cmp r0, #0x3
+ beq _020A77DC
+ cmp r0, #0x8
+ beq _020A77C4
+ b _020A77DC
+_020A77A4:
+ mov r0, #0x8
+ bl FUN_020A6C38
+ ldr r0, _020A7814 ; =UNK_021CA86C
+ mov r1, #0x5
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x80]
+ b _020A77FC
+_020A77C4:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A77DC:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x7
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A77FC:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x3
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020A7814: .word UNK_021CA86C
+_020A7818: .word 0x0000FFFF
+_020A781C: .word FUN_020A6768
+
+ arm_func_start FUN_020A7820
+FUN_020A7820: ; 0x020A7820
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ ldr r1, _020A78D4 ; =UNK_021CA86C
+ mov r4, r0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _020A784C
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A784C:
+ add r1, r1, #0x2000
+ ldr r1, [r1, #0x260]
+ cmp r1, #0x3
+ beq _020A78A0
+ cmp r1, #0x6
+ beq _020A7870
+ cmp r1, #0x7
+ beq _020A7890
+ b _020A78B0
+_020A7870:
+ mov r0, #0x7
+ bl FUN_020A6C38
+ ldr r0, _020A78D4 ; =UNK_021CA86C
+ mov r1, #0x4
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x80]
+ b _020A78C0
+_020A7890:
+ bl OS_RestoreInterrupts
+ mov r0, #0x2
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A78A0:
+ bl OS_RestoreInterrupts
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A78B0:
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A78C0:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x3
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A78D4: .word UNK_021CA86C
+
+ arm_func_start FUN_020A78D8
+FUN_020A78D8: ; 0x020A78D8
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ bl OS_DisableInterrupts
+ ldr r1, _020A7A84 ; =UNK_021CA86C
+ mov r4, r0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _020A7918
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A7918:
+ add r1, r1, #0x2000
+ ldr r1, [r1, #0x260]
+ cmp r1, #0x3
+ beq _020A79A0
+ cmp r1, #0x5
+ beq _020A793C
+ cmp r1, #0x6
+ beq _020A7964
+ b _020A798C
+_020A793C:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl FUN_020A6E50
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x2
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A7964:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl FUN_020A6E50
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A798C:
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A79A0:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ bl FUN_020A6E50
+ ldr r0, _020A7A84 ; =UNK_021CA86C
+ ldr r0, [r0, #0x0]
+ add r1, r0, #0x2200
+ add r0, r0, #0x2000
+ ldrh r1, [r1, #0x8c]
+ ldr r0, [r0, #0x288]
+ bl DC_InvalidateRange
+ ldr r3, _020A7A84 ; =UNK_021CA86C
+ ldr r2, _020A7A88 ; =0x00002288
+ ldr r1, [r3, #0x0]
+ ldr r0, _020A7A8C ; =FUN_020A6468
+ add r1, r1, #0x2000
+ ldr r5, [r1, #0x284]
+ add r5, r5, #0x1
+ str r5, [r1, #0x284]
+ ldr r1, [r3, #0x0]
+ add r1, r1, r2
+ bl WM_StartScanEx
+ cmp r0, #0x2
+ beq _020A7A14
+ cmp r0, #0x3
+ beq _020A7A4C
+ cmp r0, #0x8
+ beq _020A7A34
+ b _020A7A4C
+_020A7A14:
+ mov r0, #0x5
+ bl FUN_020A6C38
+ ldr r0, _020A7A84 ; =UNK_021CA86C
+ mov r1, #0x3
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x80]
+ b _020A7A6C
+_020A7A34:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A7A4C:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x7
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+_020A7A6C:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x3
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020A7A84: .word UNK_021CA86C
+_020A7A88: .word 0x00002288
+_020A7A8C: .word FUN_020A6468
+
+ arm_func_start FUN_020A7A90
+FUN_020A7A90: ; 0x020A7A90
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r0, #0x0
+ beq _020A7AA8
+ cmp r1, #0x0
+ bne _020A7AB8
+_020A7AA8:
+ bl FUN_020A7820
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+_020A7AB8:
+ bl FUN_020A78D8
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_020A7AC8
+FUN_020A7AC8: ; 0x020A7AC8
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ ldr r1, _020A7BCC ; =UNK_021CA86C
+ mov r4, r0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _020A7AF4
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A7AF4:
+ add r1, r1, #0x2000
+ ldr r1, [r1, #0x260]
+ cmp r1, #0x1
+ beq _020A7B24
+ cmp r1, #0x3
+ beq _020A7B44
+ cmp r1, #0x4
+ bne _020A7B34
+ bl OS_RestoreInterrupts
+ mov r0, #0x2
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A7B24:
+ bl OS_RestoreInterrupts
+ mov r0, #0x0
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A7B34:
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A7B44:
+ ldr r0, _020A7BD0 ; =FUN_020A6768
+ bl WM_PowerOff
+ cmp r0, #0x2
+ beq _020A7B68
+ cmp r0, #0x3
+ beq _020A7B9C
+ cmp r0, #0x8
+ beq _020A7B88
+ b _020A7B9C
+_020A7B68:
+ mov r0, #0x4
+ bl FUN_020A6C38
+ ldr r0, _020A7BCC ; =UNK_021CA86C
+ mov r1, #0x2
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x80]
+ b _020A7BB8
+_020A7B88:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x4
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A7B9C:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x7
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A7BB8:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x3
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A7BCC: .word UNK_021CA86C
+_020A7BD0: .word FUN_020A6768
+
+ arm_func_start FUN_020A7BD4
+FUN_020A7BD4: ; 0x020A7BD4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ bl OS_DisableInterrupts
+ ldr r1, _020A7E00 ; =UNK_021CA86C
+ mov r4, r0
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x0
+ bne _020A7C08
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7C08:
+ add r1, r1, #0x2000
+ ldr r1, [r1, #0x260]
+ cmp r1, #0x1
+ beq _020A7C2C
+ cmp r1, #0x2
+ beq _020A7C3C
+ cmp r1, #0x3
+ beq _020A7C4C
+ b _020A7C5C
+_020A7C2C:
+ mov r0, r6
+ mov r1, r5
+ bl FUN_020A7008
+ b _020A7C6C
+_020A7C3C:
+ bl OS_RestoreInterrupts
+ mov r0, #0x2
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7C4C:
+ bl OS_RestoreInterrupts
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7C5C:
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7C6C:
+ ldr r0, _020A7E00 ; =UNK_021CA86C
+ ldr r0, [r0, #0x0]
+ add r1, r0, #0x2000
+ ldr r1, [r1, #0x26c]
+ mov r1, r1, lsl #0x10
+ mov r1, r1, lsr #0x10
+ bl WM_Init
+ cmp r0, #0x6
+ addls pc, pc, r0, lsl #0x2
+ b _020A7CE0
+_020A7C94:
+ b _020A7CFC
+_020A7C98:
+ b _020A7CE0
+_020A7C9C:
+ b _020A7CE0
+_020A7CA0:
+ b _020A7CB0
+_020A7CA4:
+ b _020A7CCC
+_020A7CA8:
+ b _020A7CE0
+_020A7CAC:
+ b _020A7CE0
+_020A7CB0:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x7
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7CCC:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x5
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7CE0:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x7
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7CFC:
+ bl WM_GetAllowedChannel
+ cmp r0, #0x0
+ bne _020A7D44
+ bl WM_Finish
+ cmp r0, #0x0
+ beq _020A7D30
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x7
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7D30:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x5
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7D44:
+ ldr r0, _020A7E04 ; =FUN_020A6A74
+ bl WM_SetIndCallback
+ cmp r0, #0x0
+ beq _020A7D70
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x7
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7D70:
+ ldr r0, _020A7E08 ; =FUN_020A6768
+ bl WM_Enable
+ cmp r0, #0x2
+ beq _020A7D94
+ cmp r0, #0x3
+ beq _020A7DD0
+ cmp r0, #0x8
+ beq _020A7DB4
+ b _020A7DD0
+_020A7D94:
+ mov r0, #0x2
+ bl FUN_020A6C38
+ ldr r0, _020A7E00 ; =UNK_021CA86C
+ mov r1, #0x1
+ ldr r0, [r0, #0x0]
+ add r0, r0, #0x2200
+ strh r1, [r0, #0x80]
+ b _020A7DEC
+_020A7DB4:
+ mov r0, #0xc
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7DD0:
+ mov r0, #0xb
+ bl FUN_020A6C38
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x7
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7DEC:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x3
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020A7E00: .word UNK_021CA86C
+_020A7E04: .word FUN_020A6A74
+_020A7E08: .word FUN_020A6768
+
+ arm_func_start FUN_020A7E0C
+FUN_020A7E0C: ; 0x020A7E0C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl OS_DisableInterrupts
+ ldr r2, _020A7E7C ; =UNK_021CA86C
+ ldr r1, [r2, #0x0]
+ cmp r1, #0x0
+ bne _020A7E3C
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {lr}
+ bx lr
+_020A7E3C:
+ add r1, r1, #0x2000
+ ldr r1, [r1, #0x260]
+ cmp r1, #0x1
+ beq _020A7E60
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {lr}
+ bx lr
+_020A7E60:
+ mov r1, #0x0
+ str r1, [r2, #0x0]
+ bl OS_RestoreInterrupts
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A7E7C: .word UNK_021CA86C
+
+ arm_func_start FUN_020A7E80
+FUN_020A7E80: ; 0x020A7E80
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ bl OS_DisableInterrupts
+ ldr r2, _020A7FA8 ; =UNK_021CA86C
+ mov r4, r0
+ ldr r1, [r2, #0x0]
+ cmp r1, #0x0
+ beq _020A7EB4
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7EB4:
+ cmp r6, #0x0
+ bne _020A7ECC
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7ECC:
+ ands r1, r6, #0x1f
+ beq _020A7EE4
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7EE4:
+ cmp r5, #0x2300
+ bhs _020A7EFC
+ bl OS_RestoreInterrupts
+ mov r0, #0x6
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+_020A7EFC:
+ str r6, [r2, #0x0]
+ add r0, r6, #0x2000
+ mov r1, #0x1
+ str r1, [r0, #0x260]
+ ldr r1, [r2, #0x0]
+ mov r0, #0x0
+ add r1, r1, #0x2200
+ strh r0, [r1, #0x80]
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x2200
+ strh r0, [r1, #0x68]
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x2000
+ strb r0, [r1, #0x26a]
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x2000
+ strb r0, [r1, #0x26b]
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x2200
+ strh r0, [r1, #0x82]
+ ldr r1, [r2, #0x0]
+ add r1, r1, #0x2200
+ strh r0, [r1, #0xf8]
+ bl FUN_020A6E30
+ bl FUN_020A897C
+ bl OS_IsTickAvailable
+ cmp r0, #0x0
+ bne _020A7F70
+ bl OS_InitTick
+_020A7F70:
+ bl OS_IsAlarmAvailable
+ cmp r0, #0x0
+ bne _020A7F80
+ bl OS_InitAlarm
+_020A7F80:
+ ldr r1, _020A7FA8 ; =UNK_021CA86C
+ ldr r0, _020A7FAC ; =0x000022CC
+ ldr r1, [r1, #0x0]
+ add r0, r1, r0
+ bl OS_CreateAlarm
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,lr}
+ bx lr
+ .balign 4
+_020A7FA8: .word UNK_021CA86C
+_020A7FAC: .word 0x000022CC
+
+ arm_func_start FUN_020A7FB0
+FUN_020A7FB0: ; 0x020A7FB0
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020A7138
+ add r1, r0, #0x2000
+ cmp r4, #0x0
+ ldr r0, [r1, #0x270]
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r1, [r1, #0x274]
+ cmp r1, #0xc
+ ldmlsia sp!, {r4,lr}
+ bxls lr
+ ldr r3, [r0, #0x4]
+ cmp r3, #0x0
+ beq _020A8040
+_020A7FF8:
+ cmp r3, r4
+ bne _020A8034
+ ldr r2, [r3, #0x8]
+ cmp r2, #0x0
+ ldrne r1, [r3, #0xc]
+ strne r1, [r2, #0xc]
+ ldreq r1, [r3, #0xc]
+ streq r1, [r0, #0x4]
+ ldr r2, [r3, #0xc]
+ cmp r2, #0x0
+ ldrne r1, [r3, #0x8]
+ strne r1, [r2, #0x8]
+ ldreq r1, [r3, #0x8]
+ streq r1, [r0, #0x8]
+ b _020A8040
+_020A8034:
+ ldr r3, [r3, #0xc]
+ cmp r3, #0x0
+ bne _020A7FF8
+_020A8040:
+ mov r1, #0x0
+ str r1, [r4, #0xc]
+ ldr r1, [r0, #0x8]
+ str r1, [r4, #0x8]
+ str r4, [r0, #0x8]
+ ldr r1, [r4, #0x8]
+ cmp r1, #0x0
+ strne r4, [r1, #0xc]
+ streq r4, [r0, #0x4]
+ cmp r3, #0x0
+ ldreq r1, [r0, #0x0]
+ streq r1, [r4, #0x4]
+ ldreq r1, [r0, #0x0]
+ addeq r1, r1, #0x1
+ streq r1, [r0, #0x0]
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_020A8084
+FUN_020A8084: ; 0x020A8084
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020A7138
+ add r1, r0, #0x2000
+ ldr r2, [r1, #0x270]
+ mov r0, #0x0
+ cmp r2, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r1, [r1, #0x274]
+ cmp r1, #0xc
+ ldmlsia sp!, {r4,lr}
+ bxls lr
+ ldr r0, [r2, #0x4]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+_020A80C8:
+ ldr r1, [r0, #0x4]
+ cmp r1, r4
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r0, [r0, #0xc]
+ cmp r0, #0x0
+ bne _020A80C8
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_020A80EC
+FUN_020A80EC: ; 0x020A80EC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl FUN_020A7138
+ add r0, r0, #0x2000
+ cmp r5, #0x0
+ mov r4, #0x0
+ ldr r1, [r0, #0x270]
+ addeq sp, sp, #0x4
+ moveq r0, r4
+ ldmeqia sp!, {r4-r5,lr}
+ bxeq lr
+ cmp r1, #0x0
+ beq _020A8160
+ ldr r0, [r0, #0x274]
+ cmp r0, #0xc
+ bls _020A8160
+ ldr r4, [r1, #0x4]
+ cmp r4, #0x0
+ beq _020A8160
+_020A813C:
+ add r0, r4, #0x10
+ mov r1, r5
+ add r0, r0, #0x4
+ bl FUN_020A8B78
+ cmp r0, #0x0
+ bne _020A8160
+ ldr r4, [r4, #0xc]
+ cmp r4, #0x0
+ bne _020A813C
+_020A8160:
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_020A8170
+FUN_020A8170: ; 0x020A8170
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FUN_020A7138
+ add r0, r0, #0x2000
+ ldr r1, [r0, #0x270]
+ cmp r1, #0x0
+ beq _020A81A4
+ ldr r0, [r0, #0x274]
+ cmp r0, #0xc
+ addhi sp, sp, #0x4
+ ldrhi r0, [r1, #0x4]
+ ldmhiia sp!, {lr}
+ bxhi lr
+_020A81A4:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_020A81B4
+FUN_020A81B4: ; 0x020A81B4
+ stmdb sp!, {r4,lr}
+ bl FUN_020A7138
+ add r2, r0, #0x2000
+ ldr r1, [r2, #0x270]
+ mov r0, #0x0
+ cmp r1, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r3, [r2, #0x274]
+ cmp r3, #0xc
+ ldmlsia sp!, {r4,lr}
+ bxls lr
+ ldr r2, _020A8294 ; =0x4EC4EC4F
+ sub r3, r3, #0xc
+ umull r2, r4, r3, r2
+ movs r4, r4, lsr #0x6
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r2, [r1, #0x0]
+ cmp r4, r2
+ ldmlsia sp!, {r4,lr}
+ bxls lr
+ mov lr, r0
+ cmp r4, #0x0
+ bls _020A8240
+ add r12, r1, #0xc
+ mov r2, #0xd0
+_020A8220:
+ mul r0, lr, r2
+ ldrb r3, [r12, r0]
+ add r0, r12, r0
+ cmp r3, #0x0
+ beq _020A8240
+ add lr, lr, #0x1
+ cmp lr, r4
+ blo _020A8220
+_020A8240:
+ cmp lr, r4
+ ldmcsia sp!, {r4,lr}
+ bxcs lr
+ mov r2, #0x1
+ strb r2, [r0, #0x0]
+ ldr r3, [r1, #0x0]
+ mov r2, #0x0
+ str r3, [r0, #0x4]
+ str r2, [r0, #0xc]
+ ldr r2, [r1, #0x8]
+ str r2, [r0, #0x8]
+ str r0, [r1, #0x8]
+ ldr r2, [r0, #0x8]
+ cmp r2, #0x0
+ strne r0, [r2, #0xc]
+ streq r0, [r1, #0x4]
+ ldr r2, [r1, #0x0]
+ add r2, r2, #0x1
+ str r2, [r1, #0x0]
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A8294: .word 0x4EC4EC4F
+
+ arm_func_start FUN_020A8298
+FUN_020A8298: ; 0x020A8298
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ bl FUN_020A7138
+ movs r7, r0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ add r0, r7, #0x2000
+ ldrb r0, [r0, #0x26a]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ ldrh r0, [r5, #0x3c]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,lr}
+ bxne lr
+ add r0, r5, #0x4
+ bl FUN_020A80EC
+ movs r6, r0
+ bne _020A8300
+ bl FUN_020A81B4
+ mov r6, r0
+_020A8300:
+ cmp r6, #0x0
+ bne _020A8320
+ add r0, r7, #0x2000
+ ldr r0, [r0, #0x278]
+ cmp r0, #0x1
+ bne _020A8320
+ bl FUN_020A8170
+ mov r6, r0
+_020A8320:
+ cmp r6, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,lr}
+ bxeq lr
+ mov r0, r5
+ add r1, r6, #0x10
+ mov r2, #0xc0
+ strh r4, [r6, #0x2]
+ bl MIi_CpuCopyFast
+ mov r0, r6
+ bl FUN_020A7FB0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+
+ arm_func_start FUN_020A8358
+FUN_020A8358: ; 0x020A8358
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ bl OS_DisableInterrupts
+ mov r5, r0
+ bl FUN_020A7138
+ cmp r0, #0x0
+ bne _020A8390
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A8390:
+ mov r0, r4
+ bl FUN_020A8084
+ movs r4, r0
+ bne _020A83B8
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A83B8:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ add r0, r4, #0x10
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_020A83D0
+FUN_020A83D0: ; 0x020A83D0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl OS_DisableInterrupts
+ mov r4, r0
+ bl FUN_020A7138
+ cmp r0, #0x0
+ bne _020A8408
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A8408:
+ cmp r5, #0x0
+ beq _020A8434
+ add r1, r0, #0x2000
+ ldrb r1, [r1, #0x26a]
+ add r0, r0, #0x2000
+ cmp r1, #0x0
+ movne r5, #0x1
+ mov r1, #0x1
+ moveq r5, #0x0
+ strb r1, [r0, #0x26a]
+ b _020A8454
+_020A8434:
+ add r1, r0, #0x2000
+ ldrb r1, [r1, #0x26a]
+ add r0, r0, #0x2000
+ cmp r1, #0x0
+ movne r5, #0x1
+ mov r1, #0x0
+ moveq r5, #0x0
+ strb r1, [r0, #0x26a]
+_020A8454:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ mov r0, r5
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_020A846C
+FUN_020A846C: ; 0x020A846C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ bl OS_DisableInterrupts
+ mov r5, r0
+ bl FUN_020A7138
+ cmp r0, #0x0
+ mov r4, #0x0
+ bne _020A84A4
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ mov r0, r4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+_020A84A4:
+ add r0, r0, #0x2000
+ ldr r1, [r0, #0x270]
+ cmp r1, #0x0
+ beq _020A84C0
+ ldr r0, [r0, #0x274]
+ cmp r0, #0xc
+ ldrhi r4, [r1, #0x0]
+_020A84C0:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_020A84D8
+FUN_020A84D8: ; 0x020A84D8
+ stmdb sp!, {r4,lr}
+ bl OS_DisableInterrupts
+ mov r4, r0
+ bl FUN_020A7138
+ cmp r0, #0x0
+ bne _020A8500
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4,lr}
+ bx lr
+_020A8500:
+ add r1, r0, #0x2000
+ ldr r0, [r1, #0x270]
+ cmp r0, #0x0
+ beq _020A8524
+ ldr r2, [r1, #0x274]
+ cmp r2, #0x0
+ ble _020A8524
+ mov r1, #0x0
+ bl MI_CpuFill8
+_020A8524:
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4,lr}
+ bx lr
+
+ arm_func_start FUN_020A8534
+FUN_020A8534: ; 0x020A8534
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, [r0, #0x8]
+ ldr r1, _020A858C ; =0x01FF8000
+ cmp r2, r1
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldr r1, [r0, #0xc]
+ sub r1, r1, #0x1
+ str r1, [r0, #0xc]
+ ldr r1, [r0, #0xc]
+ cmp r1, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ mov r1, #0x0
+ str r1, [r0, #0x8]
+ bl OS_WakeupThread
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A858C: .word 0x01FF8000
+
+ arm_func_start FUN_020A8590
+FUN_020A8590:
+ ldr r2, [r0, #0x8]
+ cmp r2, #0x0
+ bne _020A85B8
+ ldr r1, _020A85D8 ; =0x01FF8000
+ str r1, [r0, #0x8]
+ ldr r1, [r0, #0xc]
+ add r1, r1, #0x1
+ str r1, [r0, #0xc]
+ mov r0, #0x1
+ bx lr
+_020A85B8:
+ ldr r1, _020A85D8 ; =0x01FF8000
+ cmp r2, r1
+ ldreq r1, [r0, #0xc]
+ addeq r1, r1, #0x1
+ streq r1, [r0, #0xc]
+ moveq r0, #0x1
+ movne r0, #0x0
+ bx lr
+ .balign 4
+_020A85D8: .word 0x01FF8000
+
+ arm_func_start FUN_020A85DC
+FUN_020A85DC: ; 0x020A85DC
+ ldr ip, _020A85E8 ; =FUN_020A8534
+ ldr r0, _020A85EC ; =UNK_021CA87C
+ bx r12
+ .balign 4
+_020A85E8: .word FUN_020A8534
+_020A85EC: .word UNK_021CA87C
+
+ arm_func_start FUN_020A85F0
+FUN_020A85F0: ; 0x020A85F0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrh r1, [r0, #0x0]
+ cmp r1, #0x12
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldrh r2, [r0, #0x2]
+ ldr r1, _020A863C ; =UNK_021CA870
+ str r2, [r1, #0x24]
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ bne _020A8628
+ bl FUN_020A6BBC
+_020A8628:
+ ldr r0, _020A8640 ; =UNK_021CA874
+ bl OS_WakeupThread
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A863C: .word UNK_021CA870
+_020A8640: .word UNK_021CA874
+
+ arm_func_start FUN_020A8644
+FUN_020A8644:
+ stmdb sp!, {r4-r8,lr}
+ mov r8, r0
+ mov r7, r1
+ mov r6, r2
+ bl OS_DisableInterrupts
+ mov r5, r0
+ bl FUN_020A7138
+ cmp r0, #0x0
+ bne _020A867C
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mvn r0, #0x0
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020A867C:
+ ldr r0, _020A87AC ; =UNK_021CA87C
+ bl OS_LockMutex
+ bl FUN_020A7138
+ movs r4, r0
+ bne _020A86AC
+ ldr r0, _020A87AC ; =UNK_021CA87C
+ bl OS_UnlockMutex
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mvn r0, #0x0
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020A86AC:
+ add r0, r4, #0x2000
+ ldr r1, [r0, #0x260]
+ cmp r1, #0x9
+ bne _020A86C8
+ ldrb r0, [r0, #0x26b]
+ cmp r0, #0x1
+ bne _020A86E4
+_020A86C8:
+ ldr r0, _020A87AC ; =UNK_021CA87C
+ bl OS_UnlockMutex
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mvn r0, #0x3
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020A86E4:
+ mov r0, r7
+ mov r2, r6
+ add r1, r4, #0xf00
+ bl MI_CpuCopy8
+ mov r3, r6, lsl #0x10
+ ldr r0, _020A87B0 ; =FUN_020A85F0
+ mov r1, r8
+ add r2, r4, #0xf00
+ mov r3, r3, lsr #0x10
+ bl WM_SetDCFData
+ cmp r0, #0x8
+ addls pc, pc, r0, lsl #0x2
+ b _020A873C
+_020A8718:
+ b _020A873C
+_020A871C:
+ b _020A873C
+_020A8720:
+ b _020A8758
+_020A8724:
+ b _020A873C
+_020A8728:
+ b _020A873C
+_020A872C:
+ b _020A873C
+_020A8730:
+ b _020A873C
+_020A8734:
+ b _020A873C
+_020A8738:
+ b _020A873C
+_020A873C:
+ ldr r0, _020A87AC ; =UNK_021CA87C
+ bl OS_UnlockMutex
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mvn r0, #0x4
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020A8758:
+ ldr r0, _020A87B4 ; =UNK_021CA874
+ bl OS_SleepThread
+ ldr r0, _020A87B8 ; =UNK_021CA870
+ ldr r0, [r0, #0x24]
+ cmp r0, #0x0
+ beq _020A8790
+ cmp r0, #0x1
+ ldr r0, _020A87AC ; =UNK_021CA87C
+ bl OS_UnlockMutex
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mvn r0, #0x4
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020A8790:
+ ldr r0, _020A87AC ; =UNK_021CA87C
+ bl OS_UnlockMutex
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mov r0, r6
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020A87AC: .word UNK_021CA87C
+_020A87B0: .word FUN_020A85F0
+_020A87B4: .word UNK_021CA874
+_020A87B8: .word UNK_021CA870
+
+ arm_func_start FUN_020A87BC
+FUN_020A87BC: ; 0x020A87BC
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl OS_DisableInterrupts
+ ldr r1, _020A87DC ; =UNK_021CA870
+ str r4, [r1, #0x28]
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A87DC: .word UNK_021CA870
+
+ arm_func_start FUN_020A87E0
+FUN_020A87E0: ; 0x020A87E0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, #0x0
+ mov r4, r0
+ mov r6, r7
+ bl FUN_020A7138
+ mov r5, r0
+ bl OS_DisableInterrupts
+ cmp r5, #0x0
+ beq _020A8830
+ add r1, r5, #0x2000
+ ldr r2, [r1, #0x260]
+ cmp r2, #0x9
+ bne _020A8830
+ ldrb r1, [r1, #0x26b]
+ cmp r1, #0x0
+ addeq r2, r5, #0x2100
+ ldreq r1, _020A884C ; =0x0000214C
+ ldreqh r6, [r2, #0x4a]
+ addeq r7, r5, r1
+_020A8830:
+ bl OS_RestoreInterrupts
+ cmp r4, #0x0
+ strneh r6, [r4, #0x0]
+ mov r0, r7
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020A884C: .word 0x0000214C
+
+ arm_func_start FUN_020A8850
+FUN_020A8850:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, #0x0
+ bl FUN_020A7138
+ mov r4, r0
+ bl OS_DisableInterrupts
+ cmp r4, #0x0
+ beq _020A8890
+ add r1, r4, #0x2000
+ ldr r2, [r1, #0x260]
+ cmp r2, #0x9
+ bne _020A8890
+ ldrb r1, [r1, #0x26b]
+ cmp r1, #0x0
+ ldreq r1, _020A88A4 ; =0x00002144
+ addeq r5, r4, r1
+_020A8890:
+ bl OS_RestoreInterrupts
+ mov r0, r5
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+ .balign 4
+_020A88A4: .word 0x00002144
+
+ arm_func_start FUN_020A88A8
+FUN_020A88A8: ; 0x020A88A8
+ stmdb sp!, {r4,lr}
+ bl FUN_020A7138
+ movs r4, r0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ add r0, r4, #0x2000
+ ldr r1, [r0, #0x260]
+ cmp r1, #0x9
+ ldmneia sp!, {r4,lr}
+ bxne lr
+ ldrb r0, [r0, #0x26b]
+ cmp r0, #0x1
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r0, _020A8928 ; =UNK_021CA87C
+ bl FUN_020A8590
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r1, _020A892C ; =0x00002144
+ ldr r0, _020A8930 ; =FUN_020A85DC
+ add r1, r4, r1
+ add r2, r4, #0xf00
+ mov r3, #0x0
+ bl WM_SetDCFData
+ cmp r0, #0x2
+ ldmeqia sp!, {r4,lr}
+ bxeq lr
+ ldr r0, _020A8928 ; =UNK_021CA87C
+ bl FUN_020A8534
+ ldmia sp!, {r4,lr}
+ bx lr
+ .balign 4
+_020A8928: .word UNK_021CA87C
+_020A892C: .word 0x00002144
+_020A8930: .word FUN_020A85DC
+
+ arm_func_start FUN_020A8934
+FUN_020A8934: ; 0x020A8934
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020A8978 ; =UNK_021CA870
+ mov r2, r0
+ ldr r12, [r1, #0x28]
+ cmp r12, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {lr}
+ bxeq lr
+ ldrh r3, [r2, #0x6]
+ add r0, r2, #0x1e
+ add r1, r2, #0x18
+ add r2, r2, #0x2c
+ blx r12
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A8978: .word UNK_021CA870
+
+ arm_func_start FUN_020A897C
+FUN_020A897C: ; 0x020A897C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020A89C8 ; =UNK_021CA870
+ ldrb r0, [r1, #0x0]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {lr}
+ bxne lr
+ ldr r0, _020A89CC ; =UNK_021CA87C
+ mov r2, #0x0
+ mov r3, #0x1
+ strb r3, [r1, #0x0]
+ str r2, [r1, #0x24]
+ str r2, [r1, #0x8]
+ str r2, [r1, #0x4]
+ bl OS_InitMutex
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A89C8: .word UNK_021CA870
+_020A89CC: .word UNK_021CA87C
+
+ arm_func_start FUN_020A89D0
+FUN_020A89D0: ; 0x020A89D0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020A8A48 ; =UNK_021CA89C
+ ands r1, r0, #0x2
+ ldrb r12, [r2, #0x0]
+ movne r0, r0, asr #0x2
+ andne lr, r0, #0xff
+ moveq r0, r0, asr #0x2
+ addeq r0, r0, #0x19
+ andeq lr, r0, #0xff
+ mov r1, r12, lsr #0x1f
+ rsb r0, r1, r12, lsl #0x1c
+ cmp r12, #0x10
+ ldr r3, _020A8A4C ; =UNK_021CA8A0
+ add r0, r1, r0, ror #0x1c
+ strb lr, [r3, r0]
+ addcc r0, r12, #0x1
+ strccb r0, [r2, #0x0]
+ addcc sp, sp, #0x4
+ ldmccia sp!, {lr}
+ bxcc lr
+ add r0, r12, #0x1
+ mov r1, r0, lsr #0x1f
+ rsb r0, r1, r0, lsl #0x1c
+ add r0, r1, r0, ror #0x1c
+ add r0, r0, #0x10
+ strb r0, [r2, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A8A48: .word UNK_021CA89C
+_020A8A4C: .word UNK_021CA8A0
+
+ arm_func_start FUN_020A8A50
+FUN_020A8A50: ; 0x020A8A50
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FUN_020A8A90
+ mov r1, #0x0
+ cmp r0, #0x1c
+ movcs r1, #0x3
+ bhs _020A8A80
+ cmp r0, #0x16
+ movcs r1, #0x2
+ bhs _020A8A80
+ cmp r0, #0x10
+ movcs r1, #0x1
+_020A8A80:
+ mov r0, r1
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_020A8A90
+FUN_020A8A90: ; 0x020A8A90
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020A8B20 ; =UNK_021CA89C
+ mov r0, #0x0
+ ldrb r1, [r1, #0x0]
+ cmp r1, #0x10
+ bls _020A8ADC
+ ldr r2, _020A8B24 ; =UNK_021CA8A0
+ mov r3, r0
+_020A8AB4:
+ ldrb r1, [r2, #0x0]
+ add r3, r3, #0x1
+ cmp r3, #0x10
+ add r0, r0, r1
+ add r2, r2, #0x1
+ blt _020A8AB4
+ mov r1, r0, asr #0x3
+ add r0, r0, r1, lsr #0x1c
+ mov r0, r0, asr #0x4
+ b _020A8B10
+_020A8ADC:
+ cmp r1, #0x0
+ beq _020A8B10
+ mov r3, r0
+ cmp r1, #0x0
+ ble _020A8B0C
+ ldr ip, _020A8B24 ; =UNK_021CA8A0
+_020A8AF4:
+ ldrb r2, [r12, #0x0]
+ add r3, r3, #0x1
+ cmp r3, r1
+ add r0, r0, r2
+ add r12, r12, #0x1
+ blt _020A8AF4
+_020A8B0C:
+ bl _s32_div_f
+_020A8B10:
+ and r0, r0, #0xff
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+ .balign 4
+_020A8B20: .word UNK_021CA89C
+_020A8B24: .word UNK_021CA8A0
+
+ arm_func_start FUN_020A8B28
+FUN_020A8B28: ; 0x020A8B28
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ bl OS_DisableInterrupts
+ mov r5, r0
+ bl FUN_020A7138
+ cmp r0, #0x0
+ mov r4, #0x0
+ beq _020A8B60
+ add r0, r0, #0x2000
+ ldr r0, [r0, #0x260]
+ cmp r0, #0x9
+ bne _020A8B60
+ bl FUN_020A8A50
+ mov r4, r0
+_020A8B60:
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,lr}
+ bx lr
+
+ arm_func_start FUN_020A8B78
+FUN_020A8B78:
+ mov r12, #0x0
+_020A8B7C:
+ ldrb r3, [r0, r12]
+ ldrb r2, [r1, r12]
+ cmp r3, r2
+ movne r0, #0x0
+ bxne lr
+ add r12, r12, #0x1
+ cmp r12, #0x6
+ blt _020A8B7C
+ mov r0, #0x1
+ bx lr
+
+ arm_func_start FUN_020A8BA4
+FUN_020A8BA4: ; 0x020A8BA4
+ ldr ip, _020A8BAC ; =DGT_Hash1GetDigest_R
+ bx r12
+ .balign 4
+_020A8BAC: .word DGT_Hash1GetDigest_R
+
+ arm_func_start FUN_020A8BB0
+FUN_020A8BB0: ; 0x020A8BB0
+ ldr ip, _020A8BB8 ; =DGT_Hash1SetSource
+ bx r12
+ .balign 4
+_020A8BB8: .word DGT_Hash1SetSource
+
+ arm_func_start FUN_020A8BBC
+FUN_020A8BBC: ; 0x020A8BBC
+ ldr ip, _020A8BC4 ; =DGT_Hash1Reset
+ bx r12
+ .balign 4
+_020A8BC4: .word DGT_Hash1Reset
+
+ arm_func_start FUN_020A8BC8
+FUN_020A8BC8: ; 0x020A8BC8
+ stmdb sp!, {r4,lr}
+ ldrsh r4, [r3, #0x0]
+ ldr r12, [sp, #0x8]
+ mov lr, #0x0
+ strh r4, [r0, #0x0]
+ ldrb r4, [r3, #0x2]
+ cmp r12, #0x2
+ strb r4, [r0, #0x2]
+ strb lr, [r0, #0x3]
+ beq _020A8C04
+ cmp r12, #0x3
+ beq _020A8C10
+ cmp r12, #0x4
+ beq _020A8C1C
+ ldmia sp!, {r4,pc}
+_020A8C04:
+ add r0, r0, #0x4
+ bl FUN_020A8CA8
+ ldmia sp!, {r4,pc}
+_020A8C10:
+ add r0, r0, #0x4
+ bl FUN_020A91D8
+ ldmia sp!, {r4,pc}
+_020A8C1C:
+ add r0, r0, #0x4
+ bl FUN_020A9D18
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020A8C28
+FUN_020A8C28: ; 0x020A8C28
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrsh r12, [r0, #0x0]
+ cmp r3, #0x2
+ strh r12, [sp, #0x0]
+ ldrb r12, [r0, #0x2]
+ strb r12, [sp, #0x2]
+ beq _020A8C60
+ cmp r3, #0x3
+ beq _020A8C78
+ cmp r3, #0x4
+ beq _020A8C90
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020A8C60:
+ add r3, sp, #0x0
+ add r0, r0, #0x4
+ sub r2, r2, #0x4
+ bl FUN_020A8F58
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020A8C78:
+ add r3, sp, #0x0
+ add r0, r0, #0x4
+ sub r2, r2, #0x4
+ bl FUN_020A97DC
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020A8C90:
+ add r3, sp, #0x0
+ add r0, r0, #0x4
+ sub r2, r2, #0x4
+ bl FUN_020A9F10
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020A8CA8
+FUN_020A8CA8: ; 0x020A8CA8
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x3c
+ movs r2, r2, lsr #0x2
+ str r2, [sp, #0x4]
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ addeq sp, sp, #0x3c
+ ldmeqia sp!, {r4-r11,pc}
+ mov r5, #0x8000
+ ldr fp, _020A8F4C ; =UNK_020FF5D4
+ ldr r4, _020A8F50 ; =0x00007FFF
+ str r2, [sp, #0x8]
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ str r2, [sp, #0x14]
+ str r2, [sp, #0x18]
+ rsb r5, r5, #0x0
+ mov r6, #0x2
+ mov lr, #0x58
+ str r2, [sp, #0x1c]
+ str r2, [sp, #0x20]
+ str r2, [sp, #0x24]
+ str r2, [sp, #0x28]
+ str r2, [sp, #0x2c]
+ str r2, [sp, #0x30]
+ str r2, [sp, #0x34]
+_020A8D10:
+ ldrb r9, [r3, #0x2]
+ ldrsh r2, [r3, #0x0]
+ ldrsh r7, [r1, #0x0]
+ mov r10, r9, lsl #0x1
+ ldrsh r10, [r11, r10]
+ subs r8, r7, r2
+ movmi r7, r6
+ ldrpl r7, [sp, #0x8]
+ rsbmi r8, r8, #0x0
+ cmp r8, r10
+ orrge r7, r7, #0x1
+ ands r8, r7, #0x1
+ ldreq r10, [sp, #0xc]
+ ands r8, r7, #0x2
+ rsbne r10, r10, #0x0
+ mov r8, #0x8000
+ add r2, r2, r10
+ rsb r8, r8, #0x0
+ cmp r2, r8
+ ldr r8, _020A8F54 ; =UNK_020FF5B8
+ movlt r2, r5
+ cmp r2, r4
+ ldrsb r8, [r8, r7]
+ movgt r2, r4
+ adds r9, r9, r8
+ ldrmi r9, [sp, #0x10]
+ bmi _020A8D84
+ cmp r9, #0x58
+ movgt r9, lr
+_020A8D84:
+ strh r2, [r3, #0x0]
+ strb r9, [r3, #0x2]
+ ldrb r10, [r3, #0x2]
+ and r2, r7, #0xff
+ ldrsh r7, [r3, #0x0]
+ ldrsh r8, [r1, #0x2]
+ mov r12, r10, lsl #0x1
+ ldrsh r12, [r11, r12]
+ subs r9, r8, r7
+ movmi r8, r6
+ ldrpl r8, [sp, #0x14]
+ rsbmi r9, r9, #0x0
+ cmp r9, r12
+ orrge r8, r8, #0x1
+ ands r9, r8, #0x1
+ ldreq r12, [sp, #0x18]
+ ands r9, r8, #0x2
+ rsbne r12, r12, #0x0
+ mov r9, #0x8000
+ add r7, r7, r12
+ rsb r9, r9, #0x0
+ cmp r7, r9
+ ldr sb, _020A8F54 ; =UNK_020FF5B8
+ movlt r7, r5
+ cmp r7, r4
+ ldrsb r9, [r9, r8]
+ movgt r7, r4
+ adds r10, r10, r9
+ ldrmi r10, [sp, #0x1c]
+ bmi _020A8E04
+ cmp r10, #0x58
+ movgt r10, lr
+_020A8E04:
+ strh r7, [r3, #0x0]
+ strb r10, [r3, #0x2]
+ and r7, r8, #0xff
+ orr r2, r2, r7, lsl #0x2
+ ldrb r10, [r3, #0x2]
+ ldrsh r7, [r3, #0x0]
+ ldrsh r8, [r1, #0x4]
+ mov r12, r10, lsl #0x1
+ ldrsh r12, [r11, r12]
+ subs r9, r8, r7
+ movmi r8, r6
+ ldrpl r8, [sp, #0x20]
+ rsbmi r9, r9, #0x0
+ cmp r9, r12
+ orrge r8, r8, #0x1
+ ands r9, r8, #0x1
+ ldreq r12, [sp, #0x24]
+ ands r9, r8, #0x2
+ rsbne r12, r12, #0x0
+ mov r9, #0x8000
+ add r7, r7, r12
+ rsb r9, r9, #0x0
+ cmp r7, r9
+ ldr sb, _020A8F54 ; =UNK_020FF5B8
+ movlt r7, r5
+ cmp r7, r4
+ ldrsb r9, [r9, r8]
+ movgt r7, r4
+ and r2, r2, #0xff
+ adds r10, r10, r9
+ ldrmi r10, [sp, #0x28]
+ bmi _020A8E8C
+ cmp r10, #0x58
+ movgt r10, lr
+_020A8E8C:
+ strh r7, [r3, #0x0]
+ strb r10, [r3, #0x2]
+ and r7, r8, #0xff
+ orr r2, r2, r7, lsl #0x4
+ ldrb r10, [r3, #0x2]
+ ldrsh r8, [r1, #0x6]
+ ldrsh r7, [r3, #0x0]
+ mov r12, r10, lsl #0x1
+ ldrsh r12, [r11, r12]
+ subs r9, r8, r7
+ movmi r8, r6
+ ldrpl r8, [sp, #0x2c]
+ rsbmi r9, r9, #0x0
+ cmp r9, r12
+ orrge r8, r8, #0x1
+ ands r9, r8, #0x1
+ ldreq r12, [sp, #0x30]
+ ands r9, r8, #0x2
+ rsbne r12, r12, #0x0
+ mov r9, #0x8000
+ add r7, r7, r12
+ rsb r9, r9, #0x0
+ cmp r7, r9
+ ldr sb, _020A8F54 ; =UNK_020FF5B8
+ movlt r7, r5
+ cmp r7, r4
+ ldrsb r9, [r9, r8]
+ movgt r7, r4
+ and r2, r2, #0xff
+ adds r10, r10, r9
+ add r1, r1, #0x8
+ ldrmi r10, [sp, #0x34]
+ bmi _020A8F18
+ cmp r10, #0x58
+ movgt r10, lr
+_020A8F18:
+ strh r7, [r3, #0x0]
+ and r7, r8, #0xff
+ strb r10, [r3, #0x2]
+ orr r2, r2, r7, lsl #0x6
+ strb r2, [r0], #0x1
+ ldr r2, [sp, #0x0]
+ add r7, r2, #0x1
+ ldr r2, [sp, #0x4]
+ str r7, [sp, #0x0]
+ cmp r7, r2
+ blo _020A8D10
+ add sp, sp, #0x3c
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020A8F4C: .word UNK_020FF5D4
+_020A8F50: .word 0x00007FFF
+_020A8F54: .word UNK_020FF5B8
+
+ arm_func_start FUN_020A8F58
+FUN_020A8F58: ; 0x020A8F58
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x34
+ cmp r2, #0x0
+ addls sp, sp, #0x34
+ mov r12, #0x0
+ ldmlsia sp!, {r4-r11,pc}
+ mov r4, #0x8000
+ rsb r6, r4, #0x0
+ ldr r5, _020A91CC ; =0x00007FFF
+ ldr fp, _020A91D0 ; =UNK_020FF5D4
+ str r12, [sp, #0x0]
+ str r12, [sp, #0x8]
+ str r12, [sp, #0xc]
+ str r12, [sp, #0x14]
+ str r12, [sp, #0x18]
+ mov r4, #0x58
+ str r12, [sp, #0x20]
+ str r12, [sp, #0x24]
+ str r12, [sp, #0x2c]
+_020A8FA4:
+ ldrb r7, [r0, #0x0]
+ ldrb r8, [r3, #0x2]
+ ldrsh r9, [r3, #0x0]
+ and r10, r7, #0x3
+ ands r7, r10, #0x1
+ mov r7, r8, lsl #0x1
+ ldrsh r7, [r11, r7]
+ ldreq r7, [sp, #0x0]
+ ands lr, r10, #0x2
+ str lr, [sp, #0x4]
+ beq _020A8FE8
+ sub r9, r9, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r9, r7
+ movlt r9, r6
+ b _020A8FF4
+_020A8FE8:
+ add r9, r9, r7
+ cmp r9, r5
+ movgt r9, r5
+_020A8FF4:
+ ldr r7, _020A91D4 ; =UNK_020FF5B8
+ ldrsb r7, [r7, r10]
+ adds r8, r8, r7
+ ldrmi r8, [sp, #0x8]
+ bmi _020A9010
+ cmp r8, #0x58
+ movgt r8, r4
+_020A9010:
+ mov r7, r9, lsl #0x10
+ mov r7, r7, asr #0x10
+ strh r7, [r3, #0x0]
+ strb r8, [r3, #0x2]
+ strh r7, [r1, #0x0]
+ ldrb r7, [r0, #0x0]
+ ldrb r8, [r3, #0x2]
+ ldrsh r9, [r3, #0x0]
+ mov r7, r7, asr #0x2
+ and r10, r7, #0x3
+ ands r7, r10, #0x1
+ mov r7, r8, lsl #0x1
+ ldrsh r7, [r11, r7]
+ ldreq r7, [sp, #0xc]
+ ands lr, r10, #0x2
+ str lr, [sp, #0x10]
+ beq _020A906C
+ sub r9, r9, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r9, r7
+ movlt r9, r6
+ b _020A9078
+_020A906C:
+ add r9, r9, r7
+ cmp r9, r5
+ movgt r9, r5
+_020A9078:
+ ldr r7, _020A91D4 ; =UNK_020FF5B8
+ ldrsb r7, [r7, r10]
+ adds r8, r8, r7
+ ldrmi r8, [sp, #0x14]
+ bmi _020A9094
+ cmp r8, #0x58
+ movgt r8, r4
+_020A9094:
+ mov r7, r9, lsl #0x10
+ mov r7, r7, asr #0x10
+ strh r7, [r3, #0x0]
+ strb r8, [r3, #0x2]
+ strh r7, [r1, #0x2]
+ ldrb r7, [r0, #0x0]
+ ldrb r8, [r3, #0x2]
+ ldrsh r9, [r3, #0x0]
+ mov r7, r7, asr #0x4
+ and r10, r7, #0x3
+ ands r7, r10, #0x1
+ mov r7, r8, lsl #0x1
+ ldrsh r7, [r11, r7]
+ ldreq r7, [sp, #0x18]
+ ands lr, r10, #0x2
+ str lr, [sp, #0x1c]
+ beq _020A90F0
+ sub r9, r9, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r9, r7
+ movlt r9, r6
+ b _020A90FC
+_020A90F0:
+ add r9, r9, r7
+ cmp r9, r5
+ movgt r9, r5
+_020A90FC:
+ ldr r7, _020A91D4 ; =UNK_020FF5B8
+ ldrsb r7, [r7, r10]
+ adds r8, r8, r7
+ ldrmi r8, [sp, #0x20]
+ bmi _020A9118
+ cmp r8, #0x58
+ movgt r8, r4
+_020A9118:
+ mov r7, r9, lsl #0x10
+ mov r7, r7, asr #0x10
+ strh r7, [r3, #0x0]
+ strb r8, [r3, #0x2]
+ strh r7, [r1, #0x4]
+ ldrb r7, [r0, #0x0]
+ ldrb r8, [r3, #0x2]
+ ldrsh r9, [r3, #0x0]
+ mov r7, r7, asr #0x6
+ and r10, r7, #0x3
+ ands r7, r10, #0x1
+ mov r7, r8, lsl #0x1
+ ldrsh r7, [r11, r7]
+ ldreq r7, [sp, #0x24]
+ ands lr, r10, #0x2
+ str lr, [sp, #0x28]
+ beq _020A9174
+ sub r9, r9, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r9, r7
+ movlt r9, r6
+ b _020A9180
+_020A9174:
+ add r9, r9, r7
+ cmp r9, r5
+ movgt r9, r5
+_020A9180:
+ ldr r7, _020A91D4 ; =UNK_020FF5B8
+ ldrsb r7, [r7, r10]
+ adds r8, r8, r7
+ ldrmi r8, [sp, #0x2c]
+ bmi _020A919C
+ cmp r8, #0x58
+ movgt r8, r4
+_020A919C:
+ mov r7, r9, lsl #0x10
+ mov r9, r7, asr #0x10
+ strh r9, [r3, #0x0]
+ strb r8, [r3, #0x2]
+ add r12, r12, #0x1
+ strh r9, [r1, #0x6]
+ add r1, r1, #0x8
+ add r0, r0, #0x1
+ cmp r12, r2
+ blo _020A8FA4
+ add sp, sp, #0x34
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020A91CC: .word 0x00007FFF
+_020A91D0: .word UNK_020FF5D4
+_020A91D4: .word UNK_020FF5B8
+
+ arm_func_start FUN_020A91D8
+FUN_020A91D8: ; 0x020A91D8
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x54
+ movs r2, r2, lsr #0x3
+ str r2, [sp, #0x4]
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ addeq sp, sp, #0x54
+ ldmeqia sp!, {r4-r11,pc}
+ ldr r5, [sp, #0x0]
+ mov r4, #0x8000
+ rsb lr, r4, #0x0
+ ldr ip, _020A97D0 ; =0x00007FFF
+ str r2, [sp, #0x10]
+ str r2, [sp, #0x14]
+ str r2, [sp, #0x18]
+ str r2, [sp, #0x1c]
+ str r2, [sp, #0x20]
+ mov r4, #0x4
+ mov r2, #0x58
+ str r5, [sp, #0x24]
+ str r5, [sp, #0x28]
+ str r5, [sp, #0x2c]
+ str r5, [sp, #0x30]
+ str r5, [sp, #0x34]
+ str r5, [sp, #0x38]
+ str r5, [sp, #0x3c]
+ str r5, [sp, #0x40]
+ str r5, [sp, #0x44]
+ str r5, [sp, #0x48]
+ str r5, [sp, #0x4c]
+_020A9250:
+ ldrsh r8, [r3, #0x0]
+ ldrsh r6, [r1, #0x0]
+ ldrb r5, [r3, #0x2]
+ subs r7, r6, r8
+ movmi r10, r4
+ ldr r6, _020A97D4 ; =UNK_020FF5D4
+ mov r9, r5, lsl #0x1
+ ldrsh r6, [r6, r9]
+ ldrpl r10, [sp, #0x10]
+ rsbmi r7, r7, #0x0
+ cmp r7, r6
+ orrge r10, r10, #0x2
+ subge r7, r7, r6
+ mov r9, r6, asr #0x1
+ cmp r7, r9
+ orrge r10, r10, #0x1
+ ands r7, r10, #0x2
+ mov r7, r6, asr #0x2
+ addne r7, r7, r6
+ ands r6, r10, #0x1
+ addne r7, r7, r9
+ ands r6, r10, #0x4
+ rsbne r7, r7, #0x0
+ add r6, r8, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r6, r7
+ ldr r7, _020A97D8 ; =UNK_020FF5BC
+ movlt r6, lr
+ cmp r6, r12
+ ldrsb r7, [r7, r10]
+ movgt r6, r12
+ adds r5, r5, r7
+ ldrmi r5, [sp, #0x14]
+ bmi _020A92E4
+ cmp r5, #0x58
+ movgt r5, r2
+_020A92E4:
+ strh r6, [r3, #0x0]
+ strb r5, [r3, #0x2]
+ and r5, r10, #0xff
+ mov r5, r5, lsl #0x5
+ and r10, r5, #0xff
+ ldrb r8, [r3, #0x2]
+ ldrsh r11, [r3, #0x0]
+ ldrsh r5, [r1, #0x2]
+ mov r9, r8, lsl #0x1
+ subs r7, r5, r11
+ ldr r5, _020A97D4 ; =UNK_020FF5D4
+ movmi r6, r4
+ ldrsh r9, [r5, r9]
+ ldrpl r6, [sp, #0x18]
+ rsbmi r7, r7, #0x0
+ cmp r7, r9
+ orrge r6, r6, #0x2
+ subge r7, r7, r9
+ mov r5, r9, asr #0x1
+ cmp r7, r5
+ orrge r6, r6, #0x1
+ ands r7, r6, #0x2
+ mov r7, r9, asr #0x2
+ addne r7, r7, r9
+ ands r9, r6, #0x1
+ addne r7, r7, r5
+ ands r5, r6, #0x4
+ rsbne r7, r7, #0x0
+ add r5, r11, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r5, r7
+ ldr r7, _020A97D8 ; =UNK_020FF5BC
+ movlt r5, lr
+ cmp r5, r12
+ ldrsb r7, [r7, r6]
+ movgt r5, r12
+ adds r8, r8, r7
+ ldrmi r8, [sp, #0x1c]
+ bmi _020A938C
+ cmp r8, #0x58
+ movgt r8, r2
+_020A938C:
+ strh r5, [r3, #0x0]
+ strb r8, [r3, #0x2]
+ and r5, r6, #0xff
+ orr r5, r10, r5, lsl #0x2
+ and r10, r5, #0xff
+ ldrb r8, [r3, #0x2]
+ ldrsh r11, [r3, #0x0]
+ ldrsh r5, [r1, #0x4]
+ mov r9, r8, lsl #0x1
+ subs r7, r5, r11
+ ldr r5, _020A97D4 ; =UNK_020FF5D4
+ movmi r6, r4
+ ldrsh r9, [r5, r9]
+ ldrpl r6, [sp, #0x20]
+ rsbmi r7, r7, #0x0
+ cmp r7, r9
+ orrge r6, r6, #0x2
+ subge r7, r7, r9
+ mov r5, r9, asr #0x1
+ cmp r7, r5
+ orrge r6, r6, #0x1
+ ands r7, r6, #0x2
+ mov r7, r9, asr #0x2
+ addne r7, r7, r9
+ ands r9, r6, #0x1
+ addne r7, r7, r5
+ ands r5, r6, #0x4
+ rsbne r7, r7, #0x0
+ add r5, r11, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r5, r7
+ ldr r7, _020A97D8 ; =UNK_020FF5BC
+ movlt r5, lr
+ cmp r5, r12
+ ldrsb r7, [r7, r6]
+ movgt r5, r12
+ adds r8, r8, r7
+ ldrmi r8, [sp, #0x24]
+ bmi _020A9434
+ cmp r8, #0x58
+ movgt r8, r2
+_020A9434:
+ strh r5, [r3, #0x0]
+ and r5, r6, #0xff
+ str r5, [sp, #0x8]
+ strb r8, [r3, #0x2]
+ orr r5, r10, r5, asr #0x1
+ strb r5, [r0, #0x0]
+ ldrb r5, [r3, #0x2]
+ ldrsh r8, [r3, #0x0]
+ ldrsh r6, [r1, #0x6]
+ mov r9, r5, lsl #0x1
+ subs r7, r6, r8
+ ldr r6, _020A97D4 ; =UNK_020FF5D4
+ movmi r10, r4
+ ldrsh r6, [r6, r9]
+ ldrpl r10, [sp, #0x28]
+ rsbmi r7, r7, #0x0
+ cmp r7, r6
+ orrge r10, r10, #0x2
+ subge r7, r7, r6
+ mov r9, r6, asr #0x1
+ cmp r7, r9
+ orrge r10, r10, #0x1
+ ands r7, r10, #0x2
+ mov r7, r6, asr #0x2
+ addne r7, r7, r6
+ ands r6, r10, #0x1
+ addne r7, r7, r9
+ ands r6, r10, #0x4
+ rsbne r7, r7, #0x0
+ add r6, r8, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r6, r7
+ ldr r7, _020A97D8 ; =UNK_020FF5BC
+ movlt r6, lr
+ cmp r6, r12
+ ldrsb r7, [r7, r10]
+ movgt r6, r12
+ adds r5, r5, r7
+ ldrmi r5, [sp, #0x2c]
+ bmi _020A94E0
+ cmp r5, #0x58
+ movgt r5, r2
+_020A94E0:
+ strh r6, [r3, #0x0]
+ strb r5, [r3, #0x2]
+ ldrsh r11, [r3, #0x0]
+ ldrsh r6, [r1, #0x8]
+ ldrb r9, [r3, #0x2]
+ and r5, r10, #0xff
+ subs r8, r6, r11
+ movmi r7, r4
+ ldr r6, _020A97D4 ; =UNK_020FF5D4
+ mov r10, r9, lsl #0x1
+ ldrsh r10, [r6, r10]
+ ldrpl r7, [sp, #0x30]
+ rsbmi r8, r8, #0x0
+ cmp r8, r10
+ orrge r7, r7, #0x2
+ subge r8, r8, r10
+ mov r6, r10, asr #0x1
+ cmp r8, r6
+ orrge r7, r7, #0x1
+ ands r8, r7, #0x2
+ mov r8, r10, asr #0x2
+ addne r8, r8, r10
+ ands r10, r7, #0x1
+ addne r8, r8, r6
+ ands r6, r7, #0x4
+ rsbne r8, r8, #0x0
+ add r6, r11, r8
+ mov r8, #0x8000
+ rsb r8, r8, #0x0
+ cmp r6, r8
+ ldr r8, _020A97D8 ; =UNK_020FF5BC
+ movlt r6, lr
+ mov r5, r5, lsl #0x4
+ cmp r6, r12
+ ldrsb r8, [r8, r7]
+ movgt r6, r12
+ and r5, r5, #0xff
+ adds r9, r9, r8
+ ldrmi r9, [sp, #0x34]
+ bmi _020A9588
+ cmp r9, #0x58
+ movgt r9, r2
+_020A9588:
+ strh r6, [r3, #0x0]
+ strb r9, [r3, #0x2]
+ and r6, r7, #0xff
+ orr r5, r5, r6, lsl #0x1
+ ldrb r9, [r3, #0x2]
+ ldrsh r11, [r3, #0x0]
+ ldrsh r6, [r1, #0xa]
+ mov r10, r9, lsl #0x1
+ and r5, r5, #0xff
+ subs r8, r6, r11
+ ldr r6, _020A97D4 ; =UNK_020FF5D4
+ movmi r7, r4
+ ldrsh r10, [r6, r10]
+ ldrpl r7, [sp, #0x38]
+ rsbmi r8, r8, #0x0
+ cmp r8, r10
+ orrge r7, r7, #0x2
+ subge r8, r8, r10
+ mov r6, r10, asr #0x1
+ cmp r8, r6
+ orrge r7, r7, #0x1
+ ands r8, r7, #0x2
+ mov r8, r10, asr #0x2
+ addne r8, r8, r10
+ ands r10, r7, #0x1
+ addne r8, r8, r6
+ ands r6, r7, #0x4
+ rsbne r8, r8, #0x0
+ add r6, r11, r8
+ mov r8, #0x8000
+ rsb r8, r8, #0x0
+ cmp r6, r8
+ ldr r8, _020A97D8 ; =UNK_020FF5BC
+ movlt r6, lr
+ cmp r6, r12
+ ldrsb r8, [r8, r7]
+ movgt r6, r12
+ adds r9, r9, r8
+ ldrmi r9, [sp, #0x3c]
+ bmi _020A9630
+ cmp r9, #0x58
+ movgt r9, r2
+_020A9630:
+ ldr r8, [sp, #0x8]
+ strh r6, [r3, #0x0]
+ orr r8, r5, r8, lsl #0x7
+ and r5, r7, #0xff
+ str r5, [sp, #0xc]
+ strb r9, [r3, #0x2]
+ orr r5, r8, r5, asr #0x2
+ strb r5, [r0, #0x1]
+ ldrb r5, [r3, #0x2]
+ ldrsh r8, [r3, #0x0]
+ ldrsh r6, [r1, #0xc]
+ mov r9, r5, lsl #0x1
+ subs r7, r6, r8
+ ldr r6, _020A97D4 ; =UNK_020FF5D4
+ movmi r10, r4
+ ldrsh r6, [r6, r9]
+ ldrpl r10, [sp, #0x40]
+ rsbmi r7, r7, #0x0
+ cmp r7, r6
+ orrge r10, r10, #0x2
+ subge r7, r7, r6
+ mov r9, r6, asr #0x1
+ cmp r7, r9
+ orrge r10, r10, #0x1
+ ands r7, r10, #0x2
+ mov r7, r6, asr #0x2
+ addne r7, r7, r6
+ ands r6, r10, #0x1
+ addne r7, r7, r9
+ ands r6, r10, #0x4
+ rsbne r7, r7, #0x0
+ add r6, r8, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r6, r7
+ ldr r7, _020A97D8 ; =UNK_020FF5BC
+ movlt r6, lr
+ cmp r6, r12
+ ldrsb r7, [r7, r10]
+ movgt r6, r12
+ adds r5, r5, r7
+ ldrmi r5, [sp, #0x44]
+ bmi _020A96E4
+ cmp r5, #0x58
+ movgt r5, r2
+_020A96E4:
+ strh r6, [r3, #0x0]
+ strb r5, [r3, #0x2]
+ and r5, r10, #0xff
+ mov r5, r5, lsl #0x3
+ and r11, r5, #0xff
+ ldrsh r6, [r1, #0xe]
+ ldrsh r5, [r3, #0x0]
+ ldrb r9, [r3, #0x2]
+ add r1, r1, #0x10
+ subs r8, r6, r5
+ movmi r7, r4
+ ldr r6, _020A97D4 ; =UNK_020FF5D4
+ mov r10, r9, lsl #0x1
+ ldrsh r10, [r6, r10]
+ ldrpl r7, [sp, #0x48]
+ rsbmi r8, r8, #0x0
+ cmp r8, r10
+ orrge r7, r7, #0x2
+ subge r8, r8, r10
+ mov r6, r10, asr #0x1
+ cmp r8, r6
+ orrge r7, r7, #0x1
+ ands r8, r7, #0x2
+ mov r8, r10, asr #0x2
+ addne r8, r8, r10
+ ands r10, r7, #0x1
+ addne r8, r8, r6
+ ands r6, r7, #0x4
+ rsbne r8, r8, #0x0
+ mov r6, #0x8000
+ add r5, r5, r8
+ rsb r6, r6, #0x0
+ cmp r5, r6
+ ldr r6, _020A97D8 ; =UNK_020FF5BC
+ movlt r5, lr
+ cmp r5, r12
+ ldrsb r6, [r6, r7]
+ movgt r5, r12
+ adds r9, r9, r6
+ ldrmi r9, [sp, #0x4c]
+ bmi _020A9790
+ cmp r9, #0x58
+ movgt r9, r2
+_020A9790:
+ strh r5, [r3, #0x0]
+ and r5, r7, #0xff
+ orr r6, r11, r5
+ ldr r5, [sp, #0xc]
+ strb r9, [r3, #0x2]
+ orr r5, r6, r5, lsl #0x6
+ strb r5, [r0, #0x2]
+ ldr r5, [sp, #0x0]
+ add r0, r0, #0x3
+ add r6, r5, #0x1
+ ldr r5, [sp, #0x4]
+ str r6, [sp, #0x0]
+ cmp r6, r5
+ blo _020A9250
+ add sp, sp, #0x54
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020A97D0: .word 0x00007FFF
+_020A97D4: .word UNK_020FF5D4
+_020A97D8: .word UNK_020FF5BC
+
+ arm_func_start FUN_020A97DC
+FUN_020A97DC: ; 0x020A97DC
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4c
+ ldr r5, _020A9D08 ; =0xAAAAAAAB
+ mov r4, #0x0
+ str r4, [sp, #0x0]
+ umull r5, r4, r2, r5
+ str r4, [sp, #0xc]
+ movs r2, r4, lsr #0x1
+ str r2, [sp, #0xc]
+ addeq sp, sp, #0x4c
+ ldmeqia sp!, {r4-r11,pc}
+ ldr r2, [sp, #0x0]
+ mov r4, #0x8000
+ ldr lr, _020A9D0C ; =0x00007FFF
+ str r2, [sp, #0x18]
+ str r2, [sp, #0x24]
+ str r2, [sp, #0x2c]
+ str r2, [sp, #0x34]
+ str r2, [sp, #0x3c]
+ rsb r4, r4, #0x0
+ mov r12, #0x58
+ str r2, [sp, #0x40]
+ str r2, [sp, #0x44]
+ str r2, [sp, #0x48]
+_020A983C:
+ ldrb r8, [r3, #0x2]
+ ldr r5, _020A9D10 ; =UNK_020FF5D4
+ ldrb r6, [r0, #0x0]
+ mov r7, r8, lsl #0x1
+ ldrsh r5, [r5, r7]
+ ldrb r11, [r0, #0x1]
+ ldrb r2, [r0, #0x2]
+ str r5, [sp, #0x4]
+ mov r5, r6, asr #0x5
+ ands r7, r5, #0x2
+ ldr r7, [sp, #0x4]
+ ldrne r10, [sp, #0x4]
+ mov r7, r7, asr #0x2
+ addne r7, r7, r10
+ ands r10, r5, #0x1
+ str r10, [sp, #0x10]
+ ldrne r10, [sp, #0x4]
+ ldrsh r9, [r3, #0x0]
+ addne r7, r7, r10, asr #0x1
+ ands r10, r5, #0x4
+ str r10, [sp, #0x14]
+ beq _020A98AC
+ sub r9, r9, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r9, r7
+ movlt r9, r4
+ b _020A98B8
+_020A98AC:
+ add r9, r9, r7
+ cmp r9, lr
+ movgt r9, lr
+_020A98B8:
+ ldr r7, _020A9D14 ; =UNK_020FF5BC
+ ldrsb r5, [r7, r5]
+ adds r8, r8, r5
+ ldrmi r8, [sp, #0x18]
+ bmi _020A98D4
+ cmp r8, #0x58
+ movgt r8, r12
+_020A98D4:
+ mov r5, r9, lsl #0x10
+ mov r5, r5, asr #0x10
+ strh r5, [r3, #0x0]
+ strb r8, [r3, #0x2]
+ strh r5, [r1, #0x0]
+ ldrb r8, [r3, #0x2]
+ mov r5, r6, asr #0x2
+ ands r7, r5, #0x2
+ ldr r7, _020A9D10 ; =UNK_020FF5D4
+ mov r10, r8, lsl #0x1
+ ldrsh r7, [r7, r10]
+ ldrsh r9, [r3, #0x0]
+ str r7, [sp, #0x8]
+ ldrne r10, [sp, #0x8]
+ mov r7, r7, asr #0x2
+ addne r7, r7, r10
+ ands r10, r5, #0x1
+ str r10, [sp, #0x1c]
+ ldrne r10, [sp, #0x8]
+ addne r7, r7, r10, asr #0x1
+ ands r10, r5, #0x4
+ str r10, [sp, #0x20]
+ beq _020A9948
+ sub r9, r9, r7
+ mov r7, #0x8000
+ rsb r7, r7, #0x0
+ cmp r9, r7
+ movlt r9, r4
+ b _020A9954
+_020A9948:
+ add r9, r9, r7
+ cmp r9, lr
+ movgt r9, lr
+_020A9954:
+ and r7, r5, #0x7
+ ldr r5, _020A9D14 ; =UNK_020FF5BC
+ ldrsb r5, [r5, r7]
+ adds r8, r8, r5
+ ldrmi r8, [sp, #0x24]
+ bmi _020A9974
+ cmp r8, #0x58
+ movgt r8, r12
+_020A9974:
+ mov r5, r9, lsl #0x10
+ mov r5, r5, asr #0x10
+ strh r5, [r3, #0x0]
+ mov r6, r6, lsl #0x1
+ strb r8, [r3, #0x2]
+ strh r5, [r1, #0x2]
+ and r6, r6, #0x7
+ orr r6, r6, r11, asr #0x7
+ ldrb r8, [r3, #0x2]
+ ands r5, r6, #0x2
+ ldr r5, _020A9D10 ; =UNK_020FF5D4
+ mov r7, r8, lsl #0x1
+ ldrsh r10, [r5, r7]
+ ldrsh r9, [r3, #0x0]
+ mov r7, r10, asr #0x2
+ addne r7, r7, r10
+ ands r5, r6, #0x1
+ str r5, [sp, #0x28]
+ addne r7, r7, r10, asr #0x1
+ ands r5, r6, #0x4
+ beq _020A99E0
+ mov r5, #0x8000
+ sub r9, r9, r7
+ rsb r5, r5, #0x0
+ cmp r9, r5
+ movlt r9, r4
+ b _020A99EC
+_020A99E0:
+ add r9, r9, r7
+ cmp r9, lr
+ movgt r9, lr
+_020A99EC:
+ ldr r5, _020A9D14 ; =UNK_020FF5BC
+ ldrsb r5, [r5, r6]
+ adds r8, r8, r5
+ ldrmi r8, [sp, #0x2c]
+ bmi _020A9A08
+ cmp r8, #0x58
+ movgt r8, r12
+_020A9A08:
+ mov r5, r9, lsl #0x10
+ mov r5, r5, asr #0x10
+ strh r5, [r3, #0x0]
+ strb r8, [r3, #0x2]
+ strh r5, [r1, #0x4]
+ ldrb r8, [r3, #0x2]
+ mov r6, r11, asr #0x4
+ ands r5, r6, #0x2
+ ldr r5, _020A9D10 ; =UNK_020FF5D4
+ mov r7, r8, lsl #0x1
+ ldrsh r10, [r5, r7]
+ ldrsh r9, [r3, #0x0]
+ mov r7, r10, asr #0x2
+ addne r7, r7, r10
+ ands r5, r6, #0x1
+ str r5, [sp, #0x30]
+ addne r7, r7, r10, asr #0x1
+ ands r5, r6, #0x4
+ beq _020A9A6C
+ mov r5, #0x8000
+ sub r9, r9, r7
+ rsb r5, r5, #0x0
+ cmp r9, r5
+ movlt r9, r4
+ b _020A9A78
+_020A9A6C:
+ add r9, r9, r7
+ cmp r9, lr
+ movgt r9, lr
+_020A9A78:
+ ldr r5, _020A9D14 ; =UNK_020FF5BC
+ and r6, r6, #0x7
+ ldrsb r5, [r5, r6]
+ adds r8, r8, r5
+ ldrmi r8, [sp, #0x34]
+ bmi _020A9A98
+ cmp r8, #0x58
+ movgt r8, r12
+_020A9A98:
+ mov r5, r9, lsl #0x10
+ mov r5, r5, asr #0x10
+ strh r5, [r3, #0x0]
+ strb r8, [r3, #0x2]
+ strh r5, [r1, #0x6]
+ ldrb r8, [r3, #0x2]
+ mov r6, r11, asr #0x1
+ ands r5, r6, #0x2
+ ldr r5, _020A9D10 ; =UNK_020FF5D4
+ mov r7, r8, lsl #0x1
+ ldrsh r10, [r5, r7]
+ ldrsh r9, [r3, #0x0]
+ mov r7, r10, asr #0x2
+ addne r7, r7, r10
+ ands r5, r6, #0x1
+ str r5, [sp, #0x38]
+ addne r7, r7, r10, asr #0x1
+ ands r5, r6, #0x4
+ beq _020A9AFC
+ mov r5, #0x8000
+ sub r9, r9, r7
+ rsb r5, r5, #0x0
+ cmp r9, r5
+ movlt r9, r4
+ b _020A9B08
+_020A9AFC:
+ add r9, r9, r7
+ cmp r9, lr
+ movgt r9, lr
+_020A9B08:
+ ldr r5, _020A9D14 ; =UNK_020FF5BC
+ and r6, r6, #0x7
+ ldrsb r5, [r5, r6]
+ adds r8, r8, r5
+ ldrmi r8, [sp, #0x3c]
+ bmi _020A9B28
+ cmp r8, #0x58
+ movgt r8, r12
+_020A9B28:
+ mov r5, r9, lsl #0x10
+ mov r6, r5, asr #0x10
+ mov r5, r11, lsl #0x2
+ and r5, r5, #0x7
+ strh r6, [r3, #0x0]
+ strb r8, [r3, #0x2]
+ strh r6, [r1, #0x8]
+ orr r5, r5, r2, asr #0x6
+ ands r6, r5, #0x2
+ ldrb r6, [r3, #0x2]
+ ldr r8, _020A9D10 ; =UNK_020FF5D4
+ ldrsh r7, [r3, #0x0]
+ mov r9, r6, lsl #0x1
+ ldrsh r10, [r8, r9]
+ mov r9, r10, asr #0x2
+ addne r9, r9, r10
+ ands r8, r5, #0x1
+ addne r9, r9, r10, asr #0x1
+ ands r8, r5, #0x4
+ beq _020A9B90
+ mov r8, #0x8000
+ sub r7, r7, r9
+ rsb r8, r8, #0x0
+ cmp r7, r8
+ movlt r7, r4
+ b _020A9B9C
+_020A9B90:
+ add r7, r7, r9
+ cmp r7, lr
+ movgt r7, lr
+_020A9B9C:
+ ldr r8, _020A9D14 ; =UNK_020FF5BC
+ ldrsb r5, [r8, r5]
+ adds r6, r6, r5
+ ldrmi r6, [sp, #0x40]
+ bmi _020A9BB8
+ cmp r6, #0x58
+ movgt r6, r12
+_020A9BB8:
+ mov r5, r7, lsl #0x10
+ mov r5, r5, asr #0x10
+ strh r5, [r3, #0x0]
+ strb r6, [r3, #0x2]
+ strh r5, [r1, #0xa]
+ ldrb r6, [r3, #0x2]
+ mov r5, r2, asr #0x3
+ ands r8, r5, #0x2
+ ldr r8, _020A9D10 ; =UNK_020FF5D4
+ mov r9, r6, lsl #0x1
+ ldrsh r10, [r8, r9]
+ ldrsh r7, [r3, #0x0]
+ mov r9, r10, asr #0x2
+ addne r9, r9, r10
+ ands r8, r5, #0x1
+ addne r9, r9, r10, asr #0x1
+ ands r8, r5, #0x4
+ beq _020A9C18
+ mov r8, #0x8000
+ sub r7, r7, r9
+ rsb r8, r8, #0x0
+ cmp r7, r8
+ movlt r7, r4
+ b _020A9C24
+_020A9C18:
+ add r7, r7, r9
+ cmp r7, lr
+ movgt r7, lr
+_020A9C24:
+ and r8, r5, #0x7
+ ldr r5, _020A9D14 ; =UNK_020FF5BC
+ ldrsb r5, [r5, r8]
+ adds r6, r6, r5
+ ldrmi r6, [sp, #0x44]
+ bmi _020A9C44
+ cmp r6, #0x58
+ movgt r6, r12
+_020A9C44:
+ mov r5, r7, lsl #0x10
+ mov r5, r5, asr #0x10
+ strh r5, [r3, #0x0]
+ strb r6, [r3, #0x2]
+ strh r5, [r1, #0xc]
+ ands r5, r2, #0x2
+ ldrb r5, [r3, #0x2]
+ ldr r7, _020A9D10 ; =UNK_020FF5D4
+ ldrsh r6, [r3, #0x0]
+ mov r8, r5, lsl #0x1
+ ldrsh r9, [r7, r8]
+ mov r8, r9, asr #0x2
+ addne r8, r8, r9
+ ands r7, r2, #0x1
+ addne r8, r8, r9, asr #0x1
+ ands r7, r2, #0x4
+ beq _020A9CA0
+ mov r7, #0x8000
+ sub r6, r6, r8
+ rsb r7, r7, #0x0
+ cmp r6, r7
+ movlt r6, r4
+ b _020A9CAC
+_020A9CA0:
+ add r6, r6, r8
+ cmp r6, lr
+ movgt r6, lr
+_020A9CAC:
+ and r7, r2, #0x7
+ ldr r2, _020A9D14 ; =UNK_020FF5BC
+ ldrsb r2, [r2, r7]
+ adds r5, r5, r2
+ ldrmi r5, [sp, #0x48]
+ bmi _020A9CCC
+ cmp r5, #0x58
+ movgt r5, r12
+_020A9CCC:
+ mov r2, r6, lsl #0x10
+ mov r2, r2, asr #0x10
+ strh r2, [r3, #0x0]
+ strb r5, [r3, #0x2]
+ strh r2, [r1, #0xe]
+ ldr r2, [sp, #0x0]
+ add r0, r0, #0x3
+ add r5, r2, #0x1
+ ldr r2, [sp, #0xc]
+ add r1, r1, #0x10
+ str r5, [sp, #0x0]
+ cmp r5, r2
+ blo _020A983C
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020A9D08: .word 0xAAAAAAAB
+_020A9D0C: .word 0x00007FFF
+_020A9D10: .word UNK_020FF5D4
+_020A9D14: .word UNK_020FF5BC
+
+ arm_func_start FUN_020A9D18
+FUN_020A9D18: ; 0x020A9D18
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x1c
+ movs r2, r2, lsr #0x1
+ str r2, [sp, #0x4]
+ mov r2, #0x0
+ str r2, [sp, #0x0]
+ addeq sp, sp, #0x1c
+ ldmeqia sp!, {r4-r11,pc}
+ mov r4, #0x8000
+ rsb r5, r4, #0x0
+ ldr fp, _020A9F04 ; =0x00007FFF
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ str r2, [sp, #0x14]
+ str r2, [sp, #0x18]
+ mov r6, #0x8
+ mov r4, #0x58
+_020A9D5C:
+ ldrb r2, [r3, #0x2]
+ ldrsh r8, [r3, #0x0]
+ ldrsh r7, [r1, #0x0]
+ ldr sb, _020A9F08 ; =UNK_020FF5D4
+ mov r12, r2, lsl #0x1
+ subs r7, r7, r8
+ ldrsh r12, [r9, r12]
+ movmi r10, r6
+ ldrpl r10, [sp, #0xc]
+ rsbmi r7, r7, #0x0
+ cmp r7, r12
+ orrge r10, r10, #0x4
+ subge r7, r7, r12
+ mov lr, r12, asr #0x1
+ cmp r7, lr
+ orrge r10, r10, #0x2
+ subge r7, r7, lr
+ mov r9, r12, asr #0x2
+ cmp r7, r9
+ orrge r10, r10, #0x1
+ ands r7, r10, #0x4
+ mov r7, r12, asr #0x3
+ addne r7, r7, r12
+ ands r12, r10, #0x2
+ addne r7, r7, lr
+ ands r12, r10, #0x1
+ addne r7, r7, r9
+ ands r9, r10, #0x8
+ rsbne r7, r7, #0x0
+ add r7, r8, r7
+ mov r8, #0x8000
+ rsb r8, r8, #0x0
+ cmp r7, r8
+ ldr r8, _020A9F0C ; =UNK_020FF5C4
+ movlt r7, r5
+ cmp r7, r11
+ ldrsb r8, [r8, r10]
+ movgt r7, r11
+ adds r2, r2, r8
+ ldrmi r2, [sp, #0x10]
+ bmi _020A9E08
+ cmp r2, #0x58
+ movgt r2, r4
+_020A9E08:
+ strh r7, [r3, #0x0]
+ strb r2, [r3, #0x2]
+ ldrsh r2, [r3, #0x0]
+ ldrsh r8, [r1, #0x2]
+ and lr, r10, #0xff
+ str r2, [sp, #0x8]
+ ldrb r2, [r3, #0x2]
+ ldr r7, [sp, #0x8]
+ add r1, r1, #0x4
+ subs r7, r8, r7
+ movmi r10, r6
+ ldr r8, _020A9F08 ; =UNK_020FF5D4
+ mov r9, r2, lsl #0x1
+ ldrsh r12, [r8, r9]
+ ldrpl r10, [sp, #0x14]
+ rsbmi r7, r7, #0x0
+ cmp r7, r12
+ orrge r10, r10, #0x4
+ subge r7, r7, r12
+ mov r9, r12, asr #0x1
+ cmp r7, r9
+ orrge r10, r10, #0x2
+ subge r7, r7, r9
+ mov r8, r12, asr #0x2
+ cmp r7, r8
+ orrge r10, r10, #0x1
+ ands r7, r10, #0x4
+ mov r7, r12, asr #0x3
+ addne r7, r7, r12
+ ands r12, r10, #0x2
+ addne r7, r7, r9
+ ands r9, r10, #0x1
+ addne r7, r7, r8
+ ands r8, r10, #0x8
+ ldr r8, [sp, #0x8]
+ rsbne r7, r7, #0x0
+ add r7, r8, r7
+ mov r8, #0x8000
+ rsb r8, r8, #0x0
+ cmp r7, r8
+ ldr r8, _020A9F0C ; =UNK_020FF5C4
+ movlt r7, r5
+ cmp r7, r11
+ ldrsb r8, [r8, r10]
+ movgt r7, r11
+ adds r2, r2, r8
+ ldrmi r2, [sp, #0x18]
+ bmi _020A9ED0
+ cmp r2, #0x58
+ movgt r2, r4
+_020A9ED0:
+ strh r7, [r3, #0x0]
+ strb r2, [r3, #0x2]
+ and r2, r10, #0xff
+ orr r2, lr, r2, lsl #0x4
+ strb r2, [r0], #0x1
+ ldr r2, [sp, #0x0]
+ add r7, r2, #0x1
+ ldr r2, [sp, #0x4]
+ str r7, [sp, #0x0]
+ cmp r7, r2
+ blo _020A9D5C
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020A9F04: .word 0x00007FFF
+_020A9F08: .word UNK_020FF5D4
+_020A9F0C: .word UNK_020FF5C4
+
+ arm_func_start FUN_020A9F10
+FUN_020A9F10: ; 0x020A9F10
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x1c
+ cmp r2, #0x0
+ addls sp, sp, #0x1c
+ mov r12, #0x0
+ ldmlsia sp!, {r4-r11,pc}
+ mov r4, #0x8000
+ ldr fp, _020AA098 ; =0x00007FFF
+ str r12, [sp, #0x8]
+ str r12, [sp, #0x14]
+ rsb r4, r4, #0x0
+ mov lr, #0x58
+_020A9F40:
+ ldrb r5, [r0, #0x0]
+ ldrb r6, [r3, #0x2]
+ ldrsh r7, [r3, #0x0]
+ and r9, r5, #0xf
+ ldr r5, _020AA09C ; =UNK_020FF5D4
+ mov r8, r6, lsl #0x1
+ ldrsh r8, [r5, r8]
+ ands r5, r9, #0x4
+ mov r5, r8, asr #0x3
+ addne r5, r5, r8
+ ands r10, r9, #0x2
+ str r10, [sp, #0x0]
+ addne r5, r5, r8, asr #0x1
+ ands r10, r9, #0x1
+ addne r5, r5, r8, asr #0x2
+ str r10, [sp, #0x4]
+ ands r8, r9, #0x8
+ beq _020A9FA0
+ sub r7, r7, r5
+ mov r5, #0x8000
+ rsb r5, r5, #0x0
+ cmp r7, r5
+ movlt r7, r4
+ b _020A9FAC
+_020A9FA0:
+ add r7, r7, r5
+ cmp r7, r11
+ movgt r7, r11
+_020A9FAC:
+ ldr r5, _020AA0A0 ; =UNK_020FF5C4
+ ldrsb r5, [r5, r9]
+ adds r6, r6, r5
+ ldrmi r6, [sp, #0x8]
+ bmi _020A9FC8
+ cmp r6, #0x58
+ movgt r6, lr
+_020A9FC8:
+ mov r5, r7, lsl #0x10
+ mov r5, r5, asr #0x10
+ strh r5, [r3, #0x0]
+ strb r6, [r3, #0x2]
+ strh r5, [r1, #0x0]
+ ldrb r5, [r0, #0x0]
+ ldrb r6, [r3, #0x2]
+ ldrsh r7, [r3, #0x0]
+ mov r5, r5, asr #0x4
+ and r9, r5, #0xf
+ ldr r5, _020AA09C ; =UNK_020FF5D4
+ mov r8, r6, lsl #0x1
+ ldrsh r8, [r5, r8]
+ ands r5, r9, #0x4
+ mov r5, r8, asr #0x3
+ addne r5, r5, r8
+ ands r10, r9, #0x2
+ str r10, [sp, #0xc]
+ addne r5, r5, r8, asr #0x1
+ ands r10, r9, #0x1
+ addne r5, r5, r8, asr #0x2
+ str r10, [sp, #0x10]
+ ands r8, r9, #0x8
+ beq _020AA040
+ sub r7, r7, r5
+ mov r5, #0x8000
+ rsb r5, r5, #0x0
+ cmp r7, r5
+ movlt r7, r4
+ b _020AA04C
+_020AA040:
+ add r7, r7, r5
+ cmp r7, r11
+ movgt r7, r11
+_020AA04C:
+ ldr r5, _020AA0A0 ; =UNK_020FF5C4
+ ldrsb r5, [r5, r9]
+ adds r6, r6, r5
+ ldrmi r6, [sp, #0x14]
+ bmi _020AA068
+ cmp r6, #0x58
+ movgt r6, lr
+_020AA068:
+ mov r5, r7, lsl #0x10
+ mov r7, r5, asr #0x10
+ strh r7, [r3, #0x0]
+ strb r6, [r3, #0x2]
+ add r12, r12, #0x1
+ strh r7, [r1, #0x2]
+ cmp r12, r2
+ add r1, r1, #0x4
+ add r0, r0, #0x1
+ blo _020A9F40
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020AA098: .word 0x00007FFF
+_020AA09C: .word UNK_020FF5D4
+_020AA0A0: .word UNK_020FF5C4
+
+ arm_func_start FUN_020AA0A4
+FUN_020AA0A4:
+ stmdb sp!, {r4-r8,lr}
+ ldr r0, _020AA1B4 ; =UNK_021CA8D0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r8,pc}
+ ldr r1, _020AA1B8 ; =UNK_021CAF00
+ ldr r0, [r1, #0x8c8]
+ cmp r0, #0x0
+ bne _020AA0FC
+ bl FUN_020AA4C0
+ ldr r1, _020AA1B8 ; =UNK_021CAF00
+ cmp r0, #0x0
+ str r0, [r1, #0x8c8]
+ beq _020AA0F4
+ ldr r0, _020AA1BC ; =UNK_021CA8C8
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ movne r0, #0x0
+ ldmneia sp!, {r4-r8,pc}
+_020AA0F4:
+ mov r0, #0x1
+ ldmia sp!, {r4-r8,pc}
+_020AA0FC:
+ ldr r0, _020AA1C0 ; =UNK_021CCD20
+ mov r5, #0x1
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x2
+ bne _020AA130
+ ldr r3, [r1, #0x8d4]
+ ldr r2, _020AA1C4 ; =UNK_020FF694
+ mov r0, #0x3
+ mla r0, r3, r0, r2
+ ldr r3, [r1, #0x8d0]
+ add r2, r3, #0x1
+ ldrb r5, [r3, r0]
+ str r2, [r1, #0x8d0]
+_020AA130:
+ mov r4, #0x0
+ ldr r7, _020AA1B8 ; =UNK_021CAF00
+ mov r8, #0x80000000
+ ldr r6, _020AA1C8 ; =UNK_021CA8BC
+ b _020AA1A4
+_020AA144:
+ ldr r1, [r7, #0x8cc]
+ mov r2, r1
+ clz r2, r2
+ cmp r2, #0x20
+ beq _020AA1AC
+ mvn r0, r8, lsr r2
+ and r3, r1, r0
+ rsb r0, r2, #0x1f
+ ldr r1, [r7, #0x8c8]
+ ldr r2, [r6, #0x0]
+ str r3, [r7, #0x8cc]
+ and r0, r0, #0xff
+ bl MOD04_021EAE90
+ ldr r0, [r7, #0x8cc]
+ cmp r0, #0x0
+ bne _020AA1A0
+ ldr r1, [r7, #0x8c0]
+ mov r0, #0x0
+ add r1, r1, #0x1
+ str r1, [r7, #0x8c0]
+ str r0, [r7, #0x8c8]
+ str r0, [r7, #0x8cc]
+ b _020AA1AC
+_020AA1A0:
+ add r4, r4, #0x1
+_020AA1A4:
+ cmp r4, r5
+ blt _020AA144
+_020AA1AC:
+ mov r0, #0x1
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020AA1B4: .word UNK_021CA8D0
+_020AA1B8: .word UNK_021CAF00
+_020AA1BC: .word UNK_021CA8C8
+_020AA1C0: .word UNK_021CCD20
+_020AA1C4: .word UNK_020FF694
+_020AA1C8: .word UNK_021CA8BC
+
+ arm_func_start FUN_020AA1CC
+FUN_020AA1CC: ; 0x020AA1CC
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ bl FUN_020AB154
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,pc}
+ ldrb r5, [r0, #0x11]
+ mov r0, r5
+ bl FUN_020AB144
+ mov r6, r0
+ cmp r6, #0x0
+ mov r7, #0x0
+ ble _020AA294
+_020AA204:
+ mov r0, r5
+ bl FUN_020AB10C
+ mov r4, r0
+ ldr r3, [r4, #0xc]
+ cmp r3, #0x2
+ blt _020AA230
+ ldr r0, [r4, #0x474]
+ ldr r2, [r4, #0x14]
+ add r1, r4, #0x1c
+ bl FUN_020A8C28
+ b _020AA25C
+_020AA230:
+ cmp r3, #0x1
+ bne _020AA24C
+ ldr r0, [r4, #0x474]
+ ldr r2, [r4, #0x14]
+ add r1, r4, #0x1c
+ bl FUN_020AB328
+ b _020AA25C
+_020AA24C:
+ ldr r0, [r4, #0x474]
+ ldr r2, [r4, #0x14]
+ add r1, r4, #0x1c
+ bl FUN_020AB2C0
+_020AA25C:
+ add r1, r4, #0x1c
+ mov r0, r4
+ str r1, [r4, #0x474]
+ bl FUN_020AB088
+ ldrb r1, [r4, #0x11]
+ mov r0, r4
+ bl FUN_020AB500
+ cmp r0, #0x0
+ bge _020AA288
+ mov r0, r4
+ bl FUN_020ACD90
+_020AA288:
+ add r7, r7, #0x1
+ cmp r7, r6
+ blt _020AA204
+_020AA294:
+ mov r0, r6
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020AA2A0
+FUN_020AA2A0: ; 0x020AA2A0
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ ldr r4, _020AA4A8 ; =UNK_021CA8D0
+ mov r10, r0
+ ldr r0, [r4, #0x0]
+ ldr r7, [sp, #0x28]
+ cmp r0, #0x0
+ mov r5, #0x0
+ mov r9, r1
+ mov r8, r2
+ mov r11, r3
+ addeq sp, sp, #0x4
+ moveq r0, r5
+ ldmeqia sp!, {r4-r11,pc}
+ ldr r1, _020AA4AC ; =UNK_021CA8E8
+ mov r2, r5
+_020AA2E0:
+ ldr r0, [r1, #0x38]
+ cmp r10, r0
+ ldreq r1, _020AA4AC ; =UNK_021CA8E8
+ moveq r0, #0x94
+ mlaeq r5, r2, r0, r1
+ beq _020AA308
+ add r2, r2, #0x1
+ cmp r2, #0x3
+ add r1, r1, #0x94
+ blo _020AA2E0
+_020AA308:
+ cmp r5, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r11,pc}
+ ldrb r0, [r9, #0x4]
+ cmp r0, #0x41
+ bne _020AA344
+ ldrh r2, [r9, #0x6]
+ mov r0, #0x0
+ mov r1, #0x1
+ str r2, [r5, #0x30]
+ str r0, [r5, #0x4c]
+ add sp, sp, #0x4
+ str r1, [r5, #0x6c]
+ ldmia sp!, {r4-r11,pc}
+_020AA344:
+ cmp r0, #0x40
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {r4-r11,pc}
+ ldrb r0, [r9, #0x5]
+ and r4, r0, #0x7f
+ cmp r4, #0x5
+ addge sp, sp, #0x4
+ str r4, [r5, #0x24]
+ movge r0, #0x0
+ ldmgeia sp!, {r4-r11,pc}
+ ldr r1, _020AA4B0 ; =UNK_020FF689
+ ldr r0, _020AA4B4 ; =UNK_020FF688
+ ldrb r2, [r1, r4, lsl #0x1]
+ ldrb r1, [r0, r4, lsl #0x1]
+ mov r0, #0x44
+ mla r0, r1, r0, r2
+ add r0, r0, #0xc
+ cmp r8, r0
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {r4-r11,pc}
+ cmp r10, #0x0
+ movne r0, #0x1
+ movne r1, r0, lsl r10
+ ldr r0, _020AA4B8 ; =UNK_021CA8B4
+ moveq r1, #0x1
+ ldr r0, [r0, #0x0]
+ ands r0, r0, r1
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r11,pc}
+ bl FUN_020ACDC8
+ movs r6, r0
+ bne _020AA40C
+ ldr r0, [r5, #0x34]
+ bl FUN_020AB6C4
+ ldr r0, [r5, #0x34]
+ bl FUN_020AB234
+ bl FUN_020ACDC8
+ movs r6, r0
+ bne _020AA3FC
+ bl FUN_020AB630
+ bl FUN_020AB1E4
+ bl FUN_020ACDC8
+ mov r6, r0
+_020AA3FC:
+ cmp r6, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r11,pc}
+_020AA40C:
+ ldr r0, _020AA4BC ; =0x0000045C
+ sub r2, r8, #0xc
+ add r0, r6, r0
+ sub r1, r0, r2
+ add r0, r9, #0xc
+ str r1, [sp, #0x0]
+ bl MI_CpuCopy8
+ ldr r0, [r5, #0x34]
+ sub r1, r8, #0xc
+ strb r0, [r6, #0x11]
+ ldr r0, [sp, #0x0]
+ str r4, [r6, #0xc]
+ str r0, [r6, #0x474]
+ str r1, [r6, #0x14]
+ str r11, [r6, #0x464]
+ str r7, [r6, #0x468]
+ strb r10, [r6, #0x10]
+ ldrb r2, [r9, #0x5]
+ mov r0, r5
+ mov r1, r6
+ and r2, r2, #0x80
+ str r2, [r6, #0x45c]
+ ldr r2, [r9, #0x8]
+ str r2, [r6, #0x460]
+ ldrh r2, [r9, #0x6]
+ str r2, [r6, #0x18]
+ bl FUN_020AB760
+ cmp r0, #0x0
+ bne _020AA494
+ mov r0, r6
+ bl FUN_020ACD90
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r11,pc}
+_020AA494:
+ mov r0, r6
+ bl FUN_020AB164
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020AA4A8: .word UNK_021CA8D0
+_020AA4AC: .word UNK_021CA8E8
+_020AA4B0: .word UNK_020FF689
+_020AA4B4: .word UNK_020FF688
+_020AA4B8: .word UNK_021CA8B4
+_020AA4BC: .word 0x0000045C
+
+ arm_func_start FUN_020AA4C0
+FUN_020AA4C0: ; 0x020AA4C0
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x8
+ ldr r0, _020AA728 ; =UNK_021CAF00
+ ldr r1, _020AA72C ; =UNK_021CA8CC
+ ldr r3, [r0, #0x8c4]
+ ldr r2, [r0, #0x8c0]
+ ldr r5, [r1, #0x0]
+ sub r1, r3, r2
+ cmp r1, #0x1
+ subhi r1, r3, #0x1
+ strhi r1, [r0, #0x8c0]
+ movhi r1, #0x1
+ cmp r1, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r8,pc}
+ ldr r0, _020AA728 ; =UNK_021CAF00
+ ldr r0, [r0, #0x8c0]
+ ands r0, r0, #0x1
+ movne r1, #0x0
+ moveq r1, #0x460
+ ldr r0, _020AA728 ; =UNK_021CAF00
+ cmp r5, #0x2
+ add r8, r0, r1
+ ldr r1, _020AA730 ; =UNK_021CA8D4
+ add r7, r8, #0xc
+ addge r7, r7, #0x4
+ ldr r1, [r1, #0x0]
+ mov r0, r7
+ bl FUN_020AD500
+ ldr r2, _020AA734 ; =0x040002B0
+ mov r3, #0x0
+ ldr r1, _020AA738 ; =0x040002B8
+ mov r6, r0
+ strh r3, [r2, #0x0]
+ str r6, [r1, #0x0]
+_020AA550:
+ ldrh r0, [r2, #0x0]
+ ands r0, r0, #0x8000
+ bne _020AA550
+ ldr r0, _020AA73C ; =UNK_021CA8C8
+ ldr r1, _020AA740 ; =0x040002B4
+ ldr r0, [r0, #0x0]
+ ldr r4, [r1, #0x0]
+ cmp r0, #0x0
+ beq _020AA588
+ ldr r1, _020AA730 ; =UNK_021CA8D4
+ mov r0, r7
+ ldr r1, [r1, #0x0]
+ mov r2, r4
+ bl FUN_020AD1CC
+_020AA588:
+ ldr r0, _020AA744 ; =UNK_0210646C
+ strb r5, [r8, #0x5]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020AA5FC
+ mov r0, r6
+ mov r1, r4
+ mov r2, #0x0
+ bl FUN_020ACF38
+ ldr r1, _020AA748 ; =UNK_021CA8D8
+ cmp r0, #0x0
+ str r0, [r1, #0x0]
+ beq _020AA5D4
+ cmp r0, #0x1
+ beq _020AA5F0
+ cmp r0, #0x3
+ moveq r0, #0x41
+ streqb r0, [r8, #0x4]
+ b _020AA5FC
+_020AA5D4:
+ ldr r1, _020AA728 ; =UNK_021CAF00
+ add sp, sp, #0x8
+ ldr r2, [r1, #0x8c0]
+ mov r0, #0x0
+ add r2, r2, #0x1
+ str r2, [r1, #0x8c0]
+ ldmia sp!, {r4-r8,pc}
+_020AA5F0:
+ ldrb r0, [r8, #0x5]
+ orr r0, r0, #0x80
+ strb r0, [r8, #0x5]
+_020AA5FC:
+ ldr r0, _020AA744 ; =UNK_0210646C
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020AA62C
+ ldr r0, _020AA74C ; =UNK_021CA8B8
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ ldrneb r2, [r8, #0x5]
+ movne r1, #0x0
+ orrne r2, r2, #0x80
+ strneb r2, [r8, #0x5]
+ strne r1, [r0, #0x0]
+_020AA62C:
+ ldr r0, _020AA750 ; =UNK_021CA8C4
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ ldrneb r2, [r8, #0x5]
+ movne r1, #0x0
+ orrne r2, r2, #0x80
+ strneb r2, [r8, #0x5]
+ strne r1, [r0, #0x0]
+ cmp r5, #0x2
+ blt _020AA690
+ ldrb r0, [r8, #0x5]
+ ldr r3, _020AA754 ; =UNK_021CA8C0
+ ands r0, r0, #0x80
+ ldrne r0, _020AA754 ; =UNK_021CA8C0
+ movne r1, #0x0
+ strneh r1, [r0, #0x0]
+ strneb r1, [r0, #0x2]
+ ldr r0, _020AA730 ; =UNK_021CA8D4
+ str r5, [sp, #0x0]
+ ldr r2, [r0, #0x0]
+ mov r1, r7
+ sub r0, r7, #0x4
+ mov r2, r2, lsr #0x1
+ bl FUN_020A8BC8
+ b _020AA6D4
+_020AA690:
+ cmp r5, #0x1
+ bne _020AA6B4
+ ldr r1, _020AA730 ; =UNK_021CA8D4
+ mov r0, r7
+ ldr r2, [r1, #0x0]
+ mov r1, r7
+ mov r2, r2, lsr #0x1
+ bl FUN_020AB37C
+ b _020AA6D4
+_020AA6B4:
+ cmp r5, #0x0
+ bne _020AA6D4
+ ldr r1, _020AA730 ; =UNK_021CA8D4
+ mov r0, r7
+ ldr r2, [r1, #0x0]
+ mov r1, r7
+ mov r2, r2, lsr #0x1
+ bl FUN_020AB2FC
+_020AA6D4:
+ ldr r0, _020AA758 ; =UNK_021CCD20
+ ldr r1, _020AA75C ; =UNK_021CA8B4
+ ldrb r0, [r0, #0x0]
+ mov r2, #0x1
+ ldr r3, [r1, #0x0]
+ mvn r0, r2, lsl r0
+ ldr r1, _020AA728 ; =UNK_021CAF00
+ and r0, r3, r0
+ str r3, [r1, #0x8cc]
+ str r0, [r1, #0x8cc]
+ bl MATH_CountPopulation
+ sub r0, r0, #0x1
+ ldr r1, _020AA728 ; =UNK_021CAF00
+ cmp r0, #0x7
+ str r0, [r1, #0x8d4]
+ movgt r0, #0x0
+ movle r2, #0x0
+ movle r0, r8
+ strle r2, [r1, #0x8d0]
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020AA728: .word UNK_021CAF00
+_020AA72C: .word UNK_021CA8CC
+_020AA730: .word UNK_021CA8D4
+_020AA734: .word 0x040002B0
+_020AA738: .word 0x040002B8
+_020AA73C: .word UNK_021CA8C8
+_020AA740: .word 0x040002B4
+_020AA744: .word UNK_0210646C
+_020AA748: .word UNK_021CA8D8
+_020AA74C: .word UNK_021CA8B8
+_020AA750: .word UNK_021CA8C4
+_020AA754: .word UNK_021CA8C0
+_020AA758: .word UNK_021CCD20
+_020AA75C: .word UNK_021CA8B4
+
+ arm_func_start FUN_020AA760
+FUN_020AA760: ; 0x020AA760
+ ldr r1, _020AA76C ; =UNK_021CA8C8
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020AA76C: .word UNK_021CA8C8
+
+ arm_func_start FUN_020AA770
+FUN_020AA770: ; 0x020AA770
+ stmdb sp!, {r4,lr}
+ ldr r1, _020AA798 ; =UNK_0210646C
+ mov r4, r0
+ str r4, [r1, #0x0]
+ bl FUN_020AD170
+ cmp r4, #0x0
+ ldreq r0, _020AA79C ; =UNK_021CA8B8
+ moveq r1, #0x1
+ streq r1, [r0, #0x0]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AA798: .word UNK_0210646C
+_020AA79C: .word UNK_021CA8B8
+
+ arm_func_start FUN_020AA7A0
+FUN_020AA7A0: ; 0x020AA7A0
+ cmp r0, #0x5
+ movge r0, #0x0
+ bxge lr
+ ldr r1, _020AA80C ; =UNK_021CCD20
+ ldr r1, [r1, #0x10]
+ cmp r1, #0x1
+ beq _020AA7C8
+ cmp r0, #0x1
+ movls r0, #0x0
+ bxls lr
+_020AA7C8:
+ ldr r2, _020AA810 ; =UNK_020FF689
+ ldr r1, _020AA814 ; =UNK_020FF688
+ ldrb r12, [r2, r0, lsl #0x1]
+ ldrb r3, [r1, r0, lsl #0x1]
+ mov r1, #0x44
+ ldr r2, _020AA818 ; =UNK_021CA8CC
+ mla r12, r3, r1, r12
+ str r0, [r2, #0x0]
+ ldr r1, _020AA81C ; =UNK_021CA8BC
+ add r3, r12, #0xc
+ ldr r0, _020AA820 ; =UNK_021CA8C0
+ mov r2, #0x0
+ str r3, [r1, #0x0]
+ strh r2, [r0, #0x0]
+ strb r2, [r0, #0x2]
+ mov r0, #0x1
+ bx lr
+ .balign 4
+_020AA80C: .word UNK_021CCD20
+_020AA810: .word UNK_020FF689
+_020AA814: .word UNK_020FF688
+_020AA818: .word UNK_021CA8CC
+_020AA81C: .word UNK_021CA8BC
+_020AA820: .word UNK_021CA8C0
+
+ arm_func_start FUN_020AA824
+FUN_020AA824: ; 0x020AA824
+ stmdb sp!, {r4-r10,lr}
+ movs r5, r2
+ mov r7, r0
+ movne r0, #0x0
+ strne r0, [r5, #0x0]
+ ldr r0, _020AA958 ; =UNK_021CA8D4
+ mov r6, r1
+ ldr r0, [r0, #0x0]
+ mov r4, #0x0
+ cmp r6, r0
+ bne _020AA920
+ ldr r8, _020AA95C ; =UNK_021CA8D0
+ ldr r0, [r8, #0x0]
+ cmp r0, #0x0
+ beq _020AA920
+ mov r9, r4
+ cmp r0, #0x0
+ bls _020AA89C
+_020AA86C:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r9
+ mov r3, r5
+ bl FUN_020AA968
+ cmp r0, #0x1
+ moveq r4, #0x1
+ beq _020AA89C
+ ldr r0, [r8, #0x0]
+ add r9, r9, #0x1
+ cmp r9, r0
+ blo _020AA86C
+_020AA89C:
+ cmp r4, #0x0
+ beq _020AA90C
+ ldr r8, _020AA95C ; =UNK_021CA8D0
+ add r10, r9, #0x1
+ ldr r0, [r8, #0x0]
+ cmp r10, r0
+ moveq r4, #0x1
+ beq _020AA934
+ cmp r10, r0
+ bhs _020AA934
+ ldr sb, _020AA960 ; =UNK_021CAAA4
+_020AA8C8:
+ mov r0, r9
+ mov r1, r6
+ mov r2, r10
+ mov r3, r5
+ bl FUN_020AA968
+ cmp r0, #0x1
+ bne _020AA8F8
+ mov r0, r7
+ mov r1, r9
+ mov r2, r7
+ mov r3, r6
+ bl FUN_020AD61C
+_020AA8F8:
+ ldr r0, [r8, #0x0]
+ add r10, r10, #0x1
+ cmp r10, r0
+ blo _020AA8C8
+ b _020AA934
+_020AA90C:
+ mov r1, r7
+ mov r2, r6
+ mov r0, #0x0
+ bl MIi_CpuClearFast
+ b _020AA934
+_020AA920:
+ mov r1, r7
+ mov r2, r6
+ mov r0, #0x0
+ bl MIi_CpuClearFast
+ mov r4, #0x0
+_020AA934:
+ ldr r0, _020AA964 ; =UNK_021CA8C8
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020AA950
+ mov r0, r7
+ mov r1, r6
+ bl FUN_020AD45C
+_020AA950:
+ mov r0, r4
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020AA958: .word UNK_021CA8D4
+_020AA95C: .word UNK_021CA8D0
+_020AA960: .word UNK_021CAAA4
+_020AA964: .word UNK_021CA8C8
+
+ arm_func_start FUN_020AA968
+FUN_020AA968: ; 0x020AA968
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ ldr r4, _020AABD4 ; =UNK_021CA8E8
+ mov r10, r2
+ mov r2, #0x94
+ mla r6, r10, r2, r4
+ str r0, [sp, #0x0]
+ mov r0, r10
+ str r1, [sp, #0x4]
+ str r3, [sp, #0x8]
+ mov r5, #0x1
+ bl FUN_020AB434
+ movs r8, r0
+ beq _020AABB0
+ mov r11, #0x0
+_020AA9A4:
+ bl OS_GetTick
+ mov r4, r0
+ mov r0, r10
+ mov r9, r1
+ bl FUN_020AB4B8
+ movs r7, r0
+ beq _020AAB98
+ mov r0, #0x34
+ adds r2, r4, r0
+ ldr r8, [r7, #0x46c]
+ ldr r3, [r7, #0x470]
+ mov r1, #0x0
+ adc r0, r9, #0x0
+ cmp r3, r0
+ cmpeq r8, r2
+ bls _020AAA68
+ ldr r0, [r7, #0x45c]
+ cmp r0, #0x0
+ bne _020AAA5C
+ ldr r0, [r6, #0x3c]
+ cmp r0, #0x0
+ beq _020AAA5C
+ ldr r0, [r6, #0x20]
+ ldr r1, [sp, #0x0]
+ add r0, r0, #0x1
+ str r0, [r6, #0x20]
+ ldr r0, [r6, #0x3c]
+ ldr r2, [sp, #0x4]
+ ldr r0, [r0, #0x474]
+ bl MIi_CpuCopyFast
+ ldr r0, [r6, #0x3c]
+ bl FUN_020ACD90
+ mov r0, #0x0
+ str r0, [r6, #0x3c]
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ beq _020AAA50
+ ldrb r1, [r7, #0x10]
+ ldr r2, [r0, #0x0]
+ mov r0, #0x1
+ orr r1, r2, r0, lsl r1
+ ldr r0, [sp, #0x8]
+ str r1, [r0, #0x0]
+_020AAA50:
+ add sp, sp, #0xc
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,pc}
+_020AAA5C:
+ add sp, sp, #0xc
+ mov r0, #0x0
+ ldmia sp!, {r4-r11,pc}
+_020AAA68:
+ ldr r0, _020AABD8 ; =0x00008B4C
+ adds r2, r8, r0
+ adc r0, r3, r1
+ cmp r9, r0
+ cmpeq r4, r2
+ bls _020AAAA8
+ ldr r2, [r7, #0x18]
+ mov r0, r6
+ mov r1, r7
+ str r2, [r6, #0x58]
+ bl FUN_020ABC0C
+ mov r8, r0
+ mov r0, r10
+ bl FUN_020AB4B8
+ mov r5, r11
+ b _020AABA8
+_020AAAA8:
+ ldr r1, [r6, #0x58]
+ ldr r2, [r7, #0x18]
+ add r0, r1, #0x1
+ cmp r0, r2
+ beq _020AAAE0
+ cmp r1, #0x0
+ beq _020AAAE0
+ cmp r1, r2
+ bhi _020AAAE0
+ ldr r0, [r7, #0x45c]
+ cmp r0, #0x0
+ ldreq r0, [r6, #0x14]
+ addeq r0, r0, #0x1
+ streq r0, [r6, #0x14]
+_020AAAE0:
+ ldr r0, [r7, #0x18]
+ cmp r5, #0x0
+ str r0, [r6, #0x58]
+ beq _020AAB24
+ ldr r0, [r6, #0x70]
+ cmp r0, #0x0
+ beq _020AAB24
+ mov r0, r6
+ mov r1, r7
+ bl FUN_020ABC0C
+ mov r8, r0
+ mov r0, r10
+ bl FUN_020AB4B8
+ ldr r0, [r6, #0x70]
+ sub r0, r0, #0x1
+ str r0, [r6, #0x70]
+ b _020AABA8
+_020AAB24:
+ ldr r1, [r7, #0x464]
+ ldr r0, [r6, #0x28]
+ subs r2, r4, r1
+ str r2, [r6, #0x28]
+ ldr r1, [r6, #0x28]
+ sub r0, r2, r0
+ sub r0, r0, r1
+ add r0, r1, r0, lsr #0x4
+ str r0, [r6, #0x2c]
+ str r0, [r6, #0x0]
+ ldr r0, [r7, #0x474]
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ bl MIi_CpuCopyFast
+ mov r0, r6
+ mov r1, r7
+ bl FUN_020ABC0C
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ beq _020AAB8C
+ ldrb r1, [r7, #0x10]
+ ldr r2, [r0, #0x0]
+ mov r0, #0x1
+ orr r1, r2, r0, lsl r1
+ ldr r0, [sp, #0x8]
+ str r1, [r0, #0x0]
+_020AAB8C:
+ add sp, sp, #0xc
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,pc}
+_020AAB98:
+ add sp, sp, #0xc
+ str r8, [r6, #0x8]
+ mov r0, #0x0
+ ldmia sp!, {r4-r11,pc}
+_020AABA8:
+ cmp r8, #0x0
+ bne _020AA9A4
+_020AABB0:
+ ldr r0, [r6, #0x3c]
+ cmp r0, #0x0
+ beq _020AABC8
+ bl FUN_020ACD90
+ mov r0, #0x0
+ str r0, [r6, #0x3c]
+_020AABC8:
+ mov r0, #0x0
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020AABD4: .word UNK_021CA8E8
+_020AABD8: .word 0x00008B4C
+
+ arm_func_start FUN_020AABDC
+FUN_020AABDC: ; 0x020AABDC
+ stmdb sp!, {r4,lr}
+ ldr r3, _020AACE0 ; =UNK_021CA8D4
+ mov r2, r1
+ ldr r1, [r3, #0x0]
+ mov r12, #0x0
+ cmp r2, r1
+ movne r0, r12
+ ldmneia sp!, {r4,pc}
+ ldr r1, _020AACE4 ; =UNK_021CA8D0
+ ldr r4, [r1, #0x0]
+ cmp r4, #0x0
+ moveq r0, r12
+ ldmeqia sp!, {r4,pc}
+ mov lr, r12
+ cmp r4, #0x0
+ bls _020AAC48
+ ldr r3, _020AACE8 ; =UNK_021CA8DC
+_020AAC20:
+ ldr r1, [r3, lr, lsl #0x2]
+ cmp r1, #0x0
+ beq _020AAC3C
+ ldr r1, [r1, #0xc]
+ cmp r1, #0x2
+ moveq r12, #0x1
+ beq _020AAC48
+_020AAC3C:
+ add lr, lr, #0x1
+ cmp lr, r4
+ blo _020AAC20
+_020AAC48:
+ cmp r12, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+ ldr r1, _020AACEC ; =UNK_021CAF00
+ ldr r4, _020AACEC ; =UNK_021CAF00
+ ldr r1, [r1, #0x8c4]
+ ldr r3, _020AACF0 ; =0x5F564354
+ ands r1, r1, #0x1
+ movne r12, #0x0
+ moveq r12, #0x460
+ str r3, [r4, r12]
+ ldr r1, _020AACF4 ; =UNK_021CA8CC
+ add r4, r4, r12
+ ldr r1, [r1, #0x0]
+ cmp r1, #0x2
+ blt _020AAC94
+ add r1, r4, #0x10
+ bl MIi_CpuCopyFast
+ b _020AAC9C
+_020AAC94:
+ add r1, r4, #0xc
+ bl MIi_CpuCopyFast
+_020AAC9C:
+ mov r1, #0x40
+ ldr r0, _020AACF8 ; =UNK_021CA8B0
+ strb r1, [r4, #0x4]
+ ldrh r2, [r0, #0x0]
+ add r1, r2, #0x1
+ strh r1, [r0, #0x0]
+ strh r2, [r4, #0x6]
+ bl OS_GetTick
+ mov r0, r0, lsr #0x6
+ orr r0, r0, r1, lsl #0x1a
+ ldr r1, _020AACEC ; =UNK_021CAF00
+ str r0, [r4, #0x8]
+ ldr r2, [r1, #0x8c4]
+ mov r0, #0x1
+ add r2, r2, #0x1
+ str r2, [r1, #0x8c4]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AACE0: .word UNK_021CA8D4
+_020AACE4: .word UNK_021CA8D0
+_020AACE8: .word UNK_021CA8DC
+_020AACEC: .word UNK_021CAF00
+_020AACF0: .word 0x5F564354
+_020AACF4: .word UNK_021CA8CC
+_020AACF8: .word UNK_021CA8B0
+
+ arm_func_start FUN_020AACFC
+FUN_020AACFC: ; 0x020AACFC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, #0x0
+ ldr ip, _020AADB8 ; =UNK_021CA8DC
+_020AAD10:
+ ldr r0, [r12, r4, lsl #0x2]
+ mov lr, r4, lsl #0x2
+ cmp r0, r5
+ bne _020AAD74
+ ldr r1, _020AADBC ; =UNK_021CA8E8
+ mov r0, #0x94
+ mla r0, r4, r0, r1
+ ldr r1, _020AADC0 ; =UNK_021CA8D0
+ mov r3, #0x0
+ ldr r2, [r1, #0x0]
+ str r3, [r12, lr]
+ sub r2, r2, #0x1
+ str r2, [r1, #0x0]
+ bl FUN_020ABC40
+ mov r0, r4
+ bl FUN_020AB6C4
+ mov r0, r4
+ bl FUN_020AB234
+ ldr r0, _020AADC4 ; =UNK_021CA8B4
+ ldr r1, [r5, #0x8]
+ ldr r2, [r0, #0x0]
+ mvn r1, r1
+ and r1, r2, r1
+ str r1, [r0, #0x0]
+ b _020AAD80
+_020AAD74:
+ add r4, r4, #0x1
+ cmp r4, #0x3
+ blo _020AAD10
+_020AAD80:
+ ldr r0, _020AADC0 ; =UNK_021CA8D0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,pc}
+ ldr r0, _020AADC8 ; =UNK_021CA8C4
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ bl FUN_020AD170
+ ldr r0, _020AADC4 ; =UNK_021CA8B4
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AADB8: .word UNK_021CA8DC
+_020AADBC: .word UNK_021CA8E8
+_020AADC0: .word UNK_021CA8D0
+_020AADC4: .word UNK_021CA8B4
+_020AADC8: .word UNK_021CA8C4
+
+ arm_func_start FUN_020AADCC
+FUN_020AADCC: ; 0x020AADCC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ movs r5, r0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,pc}
+ ldr r0, _020AAF24 ; =UNK_021CA8D0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x3
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,pc}
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x2
+ beq _020AAE18
+ cmp r0, #0x3
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {r4-r5,pc}
+_020AAE18:
+ ldr r1, _020AAF28 ; =UNK_021CA8DC
+ mov r2, #0x0
+_020AAE20:
+ ldr r0, [r1, r2, lsl #0x2]
+ cmp r0, r5
+ addeq sp, sp, #0x4
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r5,pc}
+ add r2, r2, #0x1
+ cmp r2, #0x3
+ blo _020AAE20
+ ldr r1, _020AAF28 ; =UNK_021CA8DC
+ mov r4, #0x0
+_020AAE48:
+ ldr r0, [r1, r4, lsl #0x2]
+ mov r2, r4, lsl #0x2
+ cmp r0, #0x0
+ streq r5, [r1, r2]
+ beq _020AAE68
+ add r4, r4, #0x1
+ cmp r4, #0x3
+ blo _020AAE48
+_020AAE68:
+ ldr r0, _020AAF24 ; =UNK_021CA8D0
+ ldr r1, _020AAF2C ; =UNK_021CA8B4
+ ldr r3, [r0, #0x0]
+ ldr r2, _020AAF30 ; =UNK_021CA8E8
+ add r3, r3, #0x1
+ str r3, [r0, #0x0]
+ mov r0, #0x94
+ ldr r12, [r1, #0x0]
+ ldr r3, [r5, #0x8]
+ mla r0, r4, r0, r2
+ orr r2, r12, r3
+ str r2, [r1, #0x0]
+ ldrb r2, [r5, #0x5]
+ mov r1, r4
+ bl FUN_020ABC6C
+ mov r0, r4
+ bl FUN_020AB714
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x2
+ addne sp, sp, #0x4
+ movne r0, #0x1
+ ldmneia sp!, {r4-r5,pc}
+ ldr r0, _020AAF24 ; =UNK_021CA8D0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x1
+ bne _020AAF18
+ bl FUN_020AD170
+ bl OS_GetTickLo
+ ldr r4, _020AAF34 ; =UNK_021CA8B0
+ ldr r3, _020AAF38 ; =UNK_021CA8C0
+ mov r12, #0x0
+ ldr r1, _020AAF3C ; =UNK_021CAF00
+ ldr r2, _020AAF40 ; =UNK_021CA8C4
+ mov r5, #0x1
+ strh r0, [r4, #0x0]
+ strh r12, [r3, #0x0]
+ strb r12, [r3, #0x2]
+ str r5, [r2, #0x0]
+ str r12, [r1, #0x8c0]
+ str r12, [r1, #0x8c4]
+ str r12, [r1, #0x8cc]
+ str r12, [r1, #0x8c8]
+ str r12, [r1, #0x8d0]
+ str r12, [r1, #0x8d4]
+_020AAF18:
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AAF24: .word UNK_021CA8D0
+_020AAF28: .word UNK_021CA8DC
+_020AAF2C: .word UNK_021CA8B4
+_020AAF30: .word UNK_021CA8E8
+_020AAF34: .word UNK_021CA8B0
+_020AAF38: .word UNK_021CA8C0
+_020AAF3C: .word UNK_021CAF00
+_020AAF40: .word UNK_021CA8C4
+
+ arm_func_start FUN_020AAF44
+FUN_020AAF44: ; 0x020AAF44
+ ldr r0, _020AAF54 ; =UNK_021CA8D0
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020AAF54: .word UNK_021CA8D0
+
+ arm_func_start FUN_020AAF58
+FUN_020AAF58:
+ stmdb sp!, {r4-r8,lr}
+ bl OS_GetTickLo
+ ldr r1, _020AB054 ; =UNK_021CCD20
+ ldr ip, _020AB058 ; =UNK_021CA8B0
+ ldr r4, [r1, #0x10]
+ strh r0, [r12, #0x0]
+ cmp r4, #0x1
+ ldreq r0, _020AB05C ; =UNK_021CA8CC
+ mov r5, #0x0
+ ldr r1, _020AB060 ; =UNK_021CA8B4
+ streq r5, [r0, #0x0]
+ str r5, [r1, #0x0]
+ ldr r2, _020AB064 ; =UNK_021CA8D0
+ ldrne r0, _020AB05C ; =UNK_021CA8CC
+ movne r1, #0x4
+ strne r1, [r0, #0x0]
+ str r5, [r2, #0x0]
+ ldr r0, _020AB05C ; =UNK_021CA8CC
+ ldr r3, _020AB068 ; =UNK_0210646C
+ ldr r2, [r0, #0x0]
+ mov r6, #0x1
+ ldr r1, _020AB06C ; =UNK_020FF689
+ str r6, [r3, #0x0]
+ ldr r0, _020AB070 ; =UNK_020FF688
+ ldrb r3, [r1, r2, lsl #0x1]
+ ldrb r1, [r0, r2, lsl #0x1]
+ mov r0, #0x44
+ ldr r2, _020AB074 ; =UNK_021CA8D4
+ mla r0, r1, r0, r3
+ add r4, r0, #0xc
+ ldr r1, _020AB078 ; =UNK_021CA8BC
+ mov r5, #0x440
+ ldr r0, _020AB07C ; =UNK_021CAF00
+ mov r3, #0x0
+ str r5, [r2, #0x0]
+ str r4, [r1, #0x0]
+ str r3, [r0, #0x8c0]
+ str r3, [r0, #0x8c4]
+ str r3, [r0, #0x8cc]
+ str r3, [r0, #0x8c8]
+ str r3, [r0, #0x8d0]
+ str r3, [r0, #0x8d4]
+ bl FUN_020ACF10
+ mov r8, #0x0
+ ldr r7, _020AB080 ; =UNK_021CA8E8
+ ldr r5, _020AB084 ; =UNK_021CA8DC
+ mov r6, r8
+ mvn r4, #0x0
+_020AB018:
+ mov r0, r8
+ str r6, [r5, r8, lsl #0x2]
+ bl FUN_020AB714
+ mov r0, r7
+ mov r1, r8
+ mov r2, r4
+ bl FUN_020ABC6C
+ add r8, r8, #0x1
+ cmp r8, #0x3
+ add r7, r7, #0x94
+ blo _020AB018
+ bl FUN_020AB284
+ bl FUN_020AD474
+ mov r0, #0x1
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020AB054: .word UNK_021CCD20
+_020AB058: .word UNK_021CA8B0
+_020AB05C: .word UNK_021CA8CC
+_020AB060: .word UNK_021CA8B4
+_020AB064: .word UNK_021CA8D0
+_020AB068: .word UNK_0210646C
+_020AB06C: .word UNK_020FF689
+_020AB070: .word UNK_020FF688
+_020AB074: .word UNK_021CA8D4
+_020AB078: .word UNK_021CA8BC
+_020AB07C: .word UNK_021CAF00
+_020AB080: .word UNK_021CA8E8
+_020AB084: .word UNK_021CA8DC
+
+ arm_func_start FUN_020AB088
+FUN_020AB088: ; 0x020AB088
+ ldr r2, [r0, #0x4]
+ cmp r2, #0x0
+ ldrne r1, [r0, #0x8]
+ strne r1, [r2, #0x8]
+ bne _020AB0B4
+ ldr r2, [r0, #0x8]
+ ldr r1, _020AB100 ; =UNK_021CB7D8
+ cmp r2, #0x0
+ str r2, [r1, #0x0]
+ movne r1, #0x0
+ strne r1, [r2, #0x4]
+_020AB0B4:
+ ldr r2, [r0, #0x8]
+ cmp r2, #0x0
+ ldrne r1, [r0, #0x4]
+ strne r1, [r2, #0x4]
+ bne _020AB0E0
+ ldr r2, [r0, #0x4]
+ ldr r1, _020AB104 ; =UNK_021CB7DC
+ cmp r2, #0x0
+ str r2, [r1, #0x0]
+ movne r1, #0x0
+ strne r1, [r2, #0x8]
+_020AB0E0:
+ ldrb r2, [r0, #0x11]
+ ldr r3, _020AB108 ; =UNK_021CB7E0
+ ldr r1, [r3, r2, lsl #0x2]
+ sub r1, r1, #0x1
+ str r1, [r3, r2, lsl #0x2]
+ ldrb r0, [r0, #0x11]
+ ldr r0, [r3, r0, lsl #0x2]
+ bx lr
+ .balign 4
+_020AB100: .word UNK_021CB7D8
+_020AB104: .word UNK_021CB7DC
+_020AB108: .word UNK_021CB7E0
+
+ arm_func_start FUN_020AB10C
+FUN_020AB10C: ; 0x020AB10C
+ ldr r1, _020AB140 ; =UNK_021CB7D8
+ ldr r2, [r1, #0x0]
+ cmp r2, #0x0
+ beq _020AB138
+_020AB11C:
+ ldrb r1, [r2, #0x11]
+ cmp r1, r0
+ moveq r0, r2
+ bxeq lr
+ ldr r2, [r2, #0x8]
+ cmp r2, #0x0
+ bne _020AB11C
+_020AB138:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_020AB140: .word UNK_021CB7D8
+
+ arm_func_start FUN_020AB144
+FUN_020AB144: ; 0x020AB144
+ ldr r1, _020AB150 ; =UNK_021CB7E0
+ ldr r0, [r1, r0, lsl #0x2]
+ bx lr
+ .balign 4
+_020AB150: .word UNK_021CB7E0
+
+ arm_func_start FUN_020AB154
+FUN_020AB154:
+ ldr r0, _020AB160 ; =UNK_021CB7D8
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020AB160: .word UNK_021CB7D8
+
+ arm_func_start FUN_020AB164
+FUN_020AB164: ; 0x020AB164
+ ldr r2, _020AB1D8 ; =UNK_021CB7D8
+ ldr r1, [r2, #0x0]
+ cmp r1, #0x0
+ bne _020AB198
+ str r0, [r2, #0x0]
+ mov r12, #0x0
+ str r12, [r0, #0x4]
+ ldr r3, [r2, #0x0]
+ ldr r1, _020AB1DC ; =UNK_021CB7DC
+ str r12, [r3, #0x8]
+ ldr r2, [r2, #0x0]
+ str r2, [r1, #0x0]
+ b _020AB1B8
+_020AB198:
+ ldr r1, _020AB1DC ; =UNK_021CB7DC
+ mov r2, #0x0
+ ldr r3, [r1, #0x0]
+ str r3, [r0, #0x4]
+ str r2, [r0, #0x8]
+ ldr r2, [r1, #0x0]
+ str r0, [r2, #0x8]
+ str r0, [r1, #0x0]
+_020AB1B8:
+ ldrb r2, [r0, #0x11]
+ ldr r3, _020AB1E0 ; =UNK_021CB7E0
+ ldr r1, [r3, r2, lsl #0x2]
+ add r1, r1, #0x1
+ str r1, [r3, r2, lsl #0x2]
+ ldrb r0, [r0, #0x11]
+ ldr r0, [r3, r0, lsl #0x2]
+ bx lr
+ .balign 4
+_020AB1D8: .word UNK_021CB7D8
+_020AB1DC: .word UNK_021CB7DC
+_020AB1E0: .word UNK_021CB7E0
+
+ arm_func_start FUN_020AB1E4
+FUN_020AB1E4: ; 0x020AB1E4
+ stmdb sp!, {r4,lr}
+ ldr r0, _020AB22C ; =UNK_021CB7D8
+ ldr r4, [r0, #0x0]
+ cmp r4, #0x0
+ beq _020AB20C
+_020AB1F8:
+ mov r0, r4
+ ldr r4, [r4, #0x8]
+ bl FUN_020ACD90
+ cmp r4, #0x0
+ bne _020AB1F8
+_020AB20C:
+ mov r2, #0x0
+ ldr r0, _020AB230 ; =UNK_021CB7E0
+ mov r1, r2
+_020AB218:
+ str r1, [r0, r2, lsl #0x2]
+ add r2, r2, #0x1
+ cmp r2, #0x3
+ blt _020AB218
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AB22C: .word UNK_021CB7D8
+_020AB230: .word UNK_021CB7E0
+
+ arm_func_start FUN_020AB234
+FUN_020AB234: ; 0x020AB234
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl FUN_020AB10C
+ movs r4, r0
+ beq _020AB26C
+_020AB24C:
+ mov r0, r4
+ bl FUN_020AB088
+ mov r0, r4
+ bl FUN_020ACD90
+ mov r0, r5
+ bl FUN_020AB10C
+ movs r4, r0
+ bne _020AB24C
+_020AB26C:
+ ldr r0, _020AB280 ; =UNK_021CB7E0
+ mov r1, #0x0
+ str r1, [r0, r5, lsl #0x2]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AB280: .word UNK_021CB7E0
+
+ arm_func_start FUN_020AB284
+FUN_020AB284: ; 0x020AB284
+ ldr r1, _020AB2B4 ; =UNK_021CB7DC
+ mov r2, #0x0
+ ldr r0, _020AB2B8 ; =UNK_021CB7D8
+ str r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ ldr r0, _020AB2BC ; =UNK_021CB7E0
+ mov r1, r2
+_020AB2A0:
+ str r1, [r0, r2, lsl #0x2]
+ add r2, r2, #0x1
+ cmp r2, #0x3
+ blt _020AB2A0
+ bx lr
+ .balign 4
+_020AB2B4: .word UNK_021CB7DC
+_020AB2B8: .word UNK_021CB7D8
+_020AB2BC: .word UNK_021CB7E0
+
+ arm_func_start FUN_020AB2C0
+FUN_020AB2C0: ; 0x020AB2C0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r2, #0x0
+ addls sp, sp, #0x4
+ mov lr, #0x0
+ ldmlsia sp!, {pc}
+_020AB2D8:
+ ldrsb r12, [r0, lr]
+ mov r3, lr, lsl #0x1
+ add lr, lr, #0x1
+ mov r12, r12, lsl #0x8
+ strh r12, [r1, r3]
+ cmp lr, r2
+ blo _020AB2D8
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020AB2FC
+FUN_020AB2FC: ; 0x020AB2FC
+ cmp r2, #0x0
+ mov r12, #0x0
+ bxls lr
+_020AB308:
+ mov r3, r12, lsl #0x1
+ ldrsh r3, [r1, r3]
+ mov r3, r3, asr #0x8
+ strb r3, [r0, r12]
+ add r12, r12, #0x1
+ cmp r12, r2
+ blo _020AB308
+ bx lr
+
+ arm_func_start FUN_020AB328
+FUN_020AB328: ; 0x020AB328
+ stmdb sp!, {r4,lr}
+ mov r4, #0x0
+ cmp r2, #0x0
+ ldmlsia sp!, {r4,pc}
+_020AB338:
+ ldrb r3, [r0, r4]
+ mvn lr, r3
+ and r3, lr, #0xf
+ mov r12, r3, lsl #0x3
+ and r3, lr, #0x70
+ add r12, r12, #0x84
+ mov r3, r3, asr #0x4
+ mov r12, r12, lsl r3
+ ands r3, lr, #0x80
+ rsbne r12, r12, #0x84
+ mov r3, r4, lsl #0x1
+ subeq r12, r12, #0x84
+ add r4, r4, #0x1
+ strh r12, [r1, r3]
+ cmp r4, r2
+ blo _020AB338
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020AB37C
+FUN_020AB37C: ; 0x020AB37C
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ cmp r2, #0x0
+ mov r8, #0x0
+ addls sp, sp, #0x4
+ ldmlsia sp!, {r4-r11,pc}
+ mov r12, r8
+ mov lr, #0xff
+ mov r4, #0x7f
+ mov r3, #0x8
+_020AB3A4:
+ mov r5, r8, lsl #0x1
+ ldrsh r5, [r1, r5]
+ ldr fp, _020AB42C ; =UNK_02106470
+ movs r7, r5, asr #0x2
+ movmi r6, r4
+ ldr r5, _020AB430 ; =0x00001FDF
+ rsbmi r7, r7, #0x0
+ movpl r6, lr
+ cmp r7, r5
+ movgt r7, r5
+ mov r5, r12
+ add r10, r7, #0x21
+_020AB3D4:
+ ldr r9, [r11], #0x4
+ cmp r10, r9
+ ble _020AB3F0
+ add r5, r5, #0x1
+ cmp r5, #0x8
+ blt _020AB3D4
+ mov r5, r3
+_020AB3F0:
+ cmp r5, #0x8
+ eorge r5, r6, #0x7f
+ bge _020AB414
+ add r9, r7, #0x21
+ add r7, r5, #0x1
+ mov r7, r9, asr r7
+ and r7, r7, #0xf
+ orr r5, r7, r5, lsl #0x4
+ eor r5, r5, r6
+_020AB414:
+ strb r5, [r0, r8]
+ add r8, r8, #0x1
+ cmp r8, r2
+ blo _020AB3A4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020AB42C: .word UNK_02106470
+_020AB430: .word 0x00001FDF
+
+ arm_func_start FUN_020AB434
+FUN_020AB434: ; 0x020AB434
+ ldr r1, _020AB440 ; =UNK_021CB7FC
+ ldr r0, [r1, r0, lsl #0x2]
+ bx lr
+ .balign 4
+_020AB440: .word UNK_021CB7FC
+
+ arm_func_start FUN_020AB444
+FUN_020AB444: ; 0x020AB444
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl OS_DisableInterrupts
+ ldr r3, _020AB4AC ; =UNK_021CB7F0
+ ldr r1, _020AB4B0 ; =UNK_021CB7EC
+ ldr r2, [r3, r4, lsl #0x2]
+ str r0, [r1, #0x0]
+ cmp r2, #0x0
+ mov r12, r4, lsl #0x2
+ beq _020AB494
+ ldr r1, _020AB4B4 ; =UNK_021CB7FC
+ ldr r2, [r2, #0x8]
+ ldr r0, [r1, r12]
+ sub r0, r0, #0x1
+ str r0, [r1, r12]
+ str r2, [r3, r12]
+ ldr r1, [r3, r12]
+ cmp r1, #0x0
+ movne r0, #0x0
+ strne r0, [r1, #0x4]
+_020AB494:
+ ldr r0, _020AB4B0 ; =UNK_021CB7EC
+ ldr r0, [r0, #0x0]
+ bl OS_RestoreInterrupts
+ ldr r0, _020AB4B4 ; =UNK_021CB7FC
+ ldr r0, [r0, r4, lsl #0x2]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AB4AC: .word UNK_021CB7F0
+_020AB4B0: .word UNK_021CB7EC
+_020AB4B4: .word UNK_021CB7FC
+
+ arm_func_start FUN_020AB4B8
+FUN_020AB4B8: ; 0x020AB4B8
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl OS_DisableInterrupts
+ ldr r2, _020AB4F8 ; =UNK_021CB7F0
+ ldr r1, _020AB4FC ; =UNK_021CB7EC
+ ldr r2, [r2, r4, lsl #0x2]
+ str r0, [r1, #0x0]
+ cmp r2, #0x0
+ beq _020AB4EC
+ bl OS_RestoreInterrupts
+ ldr r0, _020AB4F8 ; =UNK_021CB7F0
+ ldr r0, [r0, r4, lsl #0x2]
+ ldmia sp!, {r4,pc}
+_020AB4EC:
+ bl OS_RestoreInterrupts
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AB4F8: .word UNK_021CB7F0
+_020AB4FC: .word UNK_021CB7EC
+
+ arm_func_start FUN_020AB500
+FUN_020AB500:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ movs r5, r0
+ mov r4, r1
+ addeq sp, sp, #0x4
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r5,pc}
+ cmp r4, #0x3
+ addcs sp, sp, #0x4
+ mvncs r0, #0x0
+ ldmcsia sp!, {r4-r5,pc}
+ bl OS_DisableInterrupts
+ ldr r3, _020AB620 ; =UNK_021CB7F0
+ ldr r1, _020AB624 ; =UNK_021CB7EC
+ ldr r2, [r3, r4, lsl #0x2]
+ str r0, [r1, #0x0]
+ cmp r2, #0x0
+ mov r12, r4, lsl #0x2
+ bne _020AB574
+ str r5, [r3, r12]
+ ldr r0, [r3, r12]
+ mov r2, #0x0
+ str r2, [r0, #0x4]
+ ldr r1, [r3, r12]
+ ldr r0, _020AB628 ; =UNK_021CB808
+ str r2, [r1, #0x8]
+ ldr r1, [r3, r12]
+ str r1, [r0, r12]
+ b _020AB5F4
+_020AB574:
+ ldr r0, _020AB628 ; =UNK_021CB808
+ ldr r3, [r0, r12]
+ cmp r3, #0x0
+ beq _020AB5D4
+ ldr r1, [r5, #0x18]
+_020AB588:
+ ldr r0, [r3, #0x18]
+ cmp r0, r1
+ bhs _020AB5C8
+ str r3, [r5, #0x4]
+ ldr r0, [r3, #0x8]
+ ldr r1, _020AB628 ; =UNK_021CB808
+ str r0, [r5, #0x8]
+ str r5, [r3, #0x8]
+ ldr r0, [r5, #0x8]
+ mov r2, r4, lsl #0x2
+ cmp r0, #0x0
+ strne r5, [r0, #0x4]
+ ldr r0, [r1, r4, lsl #0x2]
+ cmp r3, r0
+ streq r5, [r1, r2]
+ b _020AB5F4
+_020AB5C8:
+ ldr r3, [r3, #0x4]
+ cmp r3, #0x0
+ bne _020AB588
+_020AB5D4:
+ mov r0, #0x0
+ ldr r1, _020AB620 ; =UNK_021CB7F0
+ str r0, [r5, #0x4]
+ ldr r0, [r1, r4, lsl #0x2]
+ str r0, [r5, #0x8]
+ ldr r0, [r1, r4, lsl #0x2]
+ str r5, [r0, #0x4]
+ str r5, [r1, r4, lsl #0x2]
+_020AB5F4:
+ ldr r2, _020AB62C ; =UNK_021CB7FC
+ ldr r0, _020AB624 ; =UNK_021CB7EC
+ ldr r1, [r2, r4, lsl #0x2]
+ add r1, r1, #0x1
+ str r1, [r2, r4, lsl #0x2]
+ ldr r0, [r0, #0x0]
+ bl OS_RestoreInterrupts
+ ldr r0, _020AB62C ; =UNK_021CB7FC
+ ldr r0, [r0, r4, lsl #0x2]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AB620: .word UNK_021CB7F0
+_020AB624: .word UNK_021CB7EC
+_020AB628: .word UNK_021CB808
+_020AB62C: .word UNK_021CB7FC
+
+ arm_func_start FUN_020AB630
+FUN_020AB630: ; 0x020AB630
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ bl OS_DisableInterrupts
+ mov r7, #0x0
+ ldr r1, _020AB6B8 ; =UNK_021CB7EC
+ mov r4, r7
+ mov r9, r7
+ str r0, [r1, #0x0]
+ ldr r5, _020AB6BC ; =UNK_021CB7F0
+ ldr r8, _020AB6C0 ; =UNK_021CB7FC
+ b _020AB69C
+_020AB65C:
+ ldr r0, [r5, r7, lsl #0x2]
+ mov r6, r7, lsl #0x2
+ cmp r0, #0x0
+ beq _020AB694
+_020AB66C:
+ ldr r0, [r5, r6]
+ ldr r1, [r0, #0x8]
+ str r1, [r5, r6]
+ ldr r1, [r5, r6]
+ cmp r1, #0x0
+ strne r4, [r1, #0x4]
+ bl FUN_020ACD90
+ ldr r0, [r5, r6]
+ cmp r0, #0x0
+ bne _020AB66C
+_020AB694:
+ str r9, [r8, r7, lsl #0x2]
+ add r7, r7, #0x1
+_020AB69C:
+ cmp r7, #0x3
+ blt _020AB65C
+ ldr r0, _020AB6B8 ; =UNK_021CB7EC
+ ldr r0, [r0, #0x0]
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020AB6B8: .word UNK_021CB7EC
+_020AB6BC: .word UNK_021CB7F0
+_020AB6C0: .word UNK_021CB7FC
+
+ arm_func_start FUN_020AB6C4
+FUN_020AB6C4: ; 0x020AB6C4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl FUN_020AB4B8
+ movs r4, r0
+ beq _020AB6FC
+_020AB6DC:
+ mov r0, r5
+ bl FUN_020AB444
+ mov r0, r4
+ bl FUN_020ACD90
+ mov r0, r5
+ bl FUN_020AB4B8
+ movs r4, r0
+ bne _020AB6DC
+_020AB6FC:
+ ldr r0, _020AB710 ; =UNK_021CB7FC
+ mov r1, #0x0
+ str r1, [r0, r5, lsl #0x2]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AB710: .word UNK_021CB7FC
+
+ arm_func_start FUN_020AB714
+FUN_020AB714: ; 0x020AB714
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl OS_DisableInterrupts
+ ldr r1, _020AB750 ; =UNK_021CB7EC
+ ldr r3, _020AB754 ; =UNK_021CB808
+ mov lr, #0x0
+ str lr, [r3, r4, lsl #0x2]
+ ldr r2, _020AB758 ; =UNK_021CB7FC
+ ldr r12, [r3, r4, lsl #0x2]
+ ldr r3, _020AB75C ; =UNK_021CB7F0
+ str r0, [r1, #0x0]
+ str r12, [r3, r4, lsl #0x2]
+ str lr, [r2, r4, lsl #0x2]
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AB750: .word UNK_021CB7EC
+_020AB754: .word UNK_021CB808
+_020AB758: .word UNK_021CB7FC
+_020AB75C: .word UNK_021CB7F0
+
+ arm_func_start FUN_020AB760
+FUN_020AB760:
+ stmdb sp!, {r4-r8,lr}
+ mov r7, r0
+ ldr r2, [r7, #0x5c]
+ mov r6, r1
+ cmp r2, #0x0
+ mov r4, #0x0
+ beq _020AB790
+ ldr r1, [r6, #0x18]
+ mov r1, r1, lsl #0x10
+ mov r1, r1, lsr #0x10
+ bl FUN_020ABBEC
+ b _020AB820
+_020AB790:
+ ldr r2, [r6, #0x18]
+ mov r2, r2, lsl #0x10
+ mov r2, r2, lsr #0x10
+ bl FUN_020ABB1C
+ cmp r0, #0x0
+ ldreq r1, [r7, #0x14]
+ moveq r0, r4
+ addeq r1, r1, #0x1
+ streq r1, [r7, #0x14]
+ ldmeqia sp!, {r4-r8,pc}
+ ldr r0, [r6, #0x18]
+ str r0, [r7, #0x10]
+ ldr r2, [r6, #0x18]
+ ldr r1, [r7, #0x54]
+ cmp r1, r2
+ ldreq r1, [r7, #0x14]
+ moveq r0, r4
+ addeq r1, r1, #0x1
+ streq r1, [r7, #0x14]
+ ldmeqia sp!, {r4-r8,pc}
+ add r0, r1, #0x1
+ cmp r0, r2
+ beq _020AB820
+ ldr r0, [r6, #0x45c]
+ cmp r0, #0x0
+ bne _020AB820
+ subs r0, r2, r1
+ rsbmi r0, r0, #0x0
+ cmp r0, #0x64
+ strgt r2, [r7, #0x54]
+ movgt r0, #0x0
+ ldmgtia sp!, {r4-r8,pc}
+ cmp r1, r2
+ ldrhi r0, [r7, #0x1c]
+ addhi r0, r0, #0x1
+ strhi r0, [r7, #0x1c]
+_020AB820:
+ ldr r0, [r6, #0x18]
+ str r0, [r7, #0x54]
+ ldr r0, [r7, #0x4c]
+ cmp r0, #0x0
+ bne _020AB858
+ ldr r1, [r6, #0x460]
+ ldr r0, _020ABAF4 ; =0x00000464
+ str r1, [r7, #0x4c]
+ add r1, r6, r0
+ add r0, r7, #0x44
+ ldmia r1, {r2-r3}
+ stmia r0, {r2-r3}
+ mov r0, #0x0
+ str r0, [r7, #0x6c]
+_020AB858:
+ ldr r3, [r6, #0x460]
+ ldr r1, [r7, #0x4c]
+ ldr r2, [r6, #0x464]
+ ldr r0, [r7, #0x44]
+ sub r1, r3, r1
+ ldr r3, [r7, #0x80]
+ mov r1, r1, lsl #0x6
+ subs r0, r2, r0
+ subs r5, r1, r0
+ cmp r3, #0x0
+ mov r0, #0x0
+ beq _020AB894
+ ldr r2, [r6, #0x45c]
+ cmp r2, #0x0
+ beq _020AB89C
+_020AB894:
+ str r5, [r7, #0x80]
+ b _020AB918
+_020AB89C:
+ str r5, [r7, #0x80]
+ subs r2, r5, r3
+ ldr r8, [r7, #0x7c]
+ ldr r3, _020ABAF8 ; =0x00008B18
+ ldr ip, _020ABAFC ; =0x0000CC8D
+ add r3, r8, r3
+ mov r8, r3, lsl #0x1
+ rsbmi r2, r2, #0x0
+ mov r3, r8, asr #0x1f
+ adds r8, r8, r12
+ mov r12, r2, asr #0x1f
+ adc r3, r3, #0x0
+ cmp r12, r3
+ cmpeq r2, r8
+ bls _020AB8F4
+ ldr lr, _020ABB00 ; =0x75CA82CB
+ mov r3, r2, lsr #0x1f
+ smull r12, r8, lr, r2
+ mov r8, r8, asr #0xe
+ add r8, r3, r8
+ add r3, r8, #0x2
+ str r3, [r7, #0x84]
+_020AB8F4:
+ ldr r3, [r7, #0x84]
+ cmp r3, #0x0
+ bgt _020AB918
+ ldr r3, [r7, #0x7c]
+ sub r2, r2, r3
+ add r2, r3, r2, asr #0x4
+ str r2, [r7, #0x7c]
+ ldr r2, [r7, #0x7c]
+ str r2, [r7, #0x18]
+_020AB918:
+ ldr r3, [r7, #0x44]
+ ldr r12, [r7, #0x4]
+ ldr r2, [r7, #0x48]
+ adds r1, r1, r3
+ adc r0, r0, r2
+ adds r1, r12, r1
+ str r1, [r6, #0x46c]
+ adc r0, r0, #0x0
+ str r0, [r6, #0x470]
+ bl OS_GetTick
+ ldr r12, [r6, #0x46c]
+ ldr r2, _020ABAF8 ; =0x00008B18
+ ldr lr, [r6, #0x470]
+ adds r6, r12, r2
+ adc r3, lr, #0x0
+ cmp r3, r1
+ mov r3, #0x0
+ cmpeq r6, r0
+ movcc r0, r3
+ ldmccia sp!, {r4-r8,pc}
+ ldr r6, _020ABB04 ; =0x0007FD88
+ adds r6, r0, r6
+ adc r0, r1, r3
+ cmp lr, r0
+ cmpeq r12, r6
+ movhi r0, r3
+ ldmhiia sp!, {r4-r8,pc}
+ ldr r0, [r7, #0x84]
+ cmp r0, #0x0
+ bgt _020ABAE0
+ ldr r1, [r7, #0x7c]
+ mov r0, #0x3
+ mul lr, r1, r0
+ ldr r6, _020ABB00 ; =0x75CA82CB
+ ldr r12, [r7, #0x8c]
+ smull r1, r0, r6, lr
+ mov r0, r0, asr #0xe
+ mov r1, lr, lsr #0x1f
+ cmp lr, r12
+ add r0, r1, r0
+ bls _020AB9EC
+ ldr r1, _020ABB08 ; =0x000134DF
+ add r6, r0, #0x1
+ mla r12, r6, r2, r1
+ str r12, [r7, #0x8c]
+ mla r1, r0, r2, r1
+ ldr r2, [r7, #0x8c]
+ ldr r0, _020ABB0C ; =0xFFFF2F5C
+ add r0, r2, r0
+ str r0, [r7, #0x88]
+ str r1, [r7, #0x4]
+ str r3, [r7, #0x90]
+ b _020ABA50
+_020AB9EC:
+ ldr r1, [r7, #0x88]
+ cmp lr, r1
+ bge _020ABA50
+ ldr r1, [r7, #0x90]
+ add r1, r1, #0x1
+ str r1, [r7, #0x90]
+ ldr r1, [r7, #0x90]
+ cmp r1, #0x46
+ bls _020ABA50
+ ldr r1, _020ABB08 ; =0x000134DF
+ add r12, r0, #0x1
+ mla lr, r12, r2, r1
+ ldr r6, _020ABB10 ; =0xFFFFBA74
+ str lr, [r7, #0x8c]
+ mla r1, r0, r2, r6
+ str r1, [r7, #0x88]
+ ldr r1, [r7, #0x88]
+ ldr r2, _020ABB08 ; =0x000134DF
+ cmp r1, #0x0
+ ldr r1, _020ABAF8 ; =0x00008B18
+ strlt r3, [r7, #0x88]
+ mla r1, r0, r1, r2
+ mov r3, #0x0
+ str r1, [r7, #0x4]
+ str r3, [r7, #0x90]
+_020ABA50:
+ ldr r1, [r7, #0x4]
+ ldr r0, _020ABB14 ; =0x00068520
+ cmp r1, r0
+ strhi r0, [r7, #0x4]
+ ldr r0, [r7, #0x6c]
+ cmp r0, #0x10
+ addcc r0, r0, #0x1
+ strcc r0, [r7, #0x6c]
+ strcc r5, [r7, #0x74]
+ strcc r5, [r7, #0x78]
+ blo _020ABA98
+ ldr r1, [r7, #0x74]
+ mov r0, #0x1f
+ mla r2, r1, r0, r5
+ mov r0, r2, asr #0x4
+ add r0, r2, r0, lsr #0x1b
+ mov r0, r0, asr #0x5
+ str r0, [r7, #0x74]
+_020ABA98:
+ ldr r2, [r7, #0x78]
+ ldr r1, [r7, #0x74]
+ ldr r0, _020ABB18 ; =0x00008701
+ sub r1, r2, r1
+ str r1, [r7, #0xc]
+ ldr r1, [r7, #0xc]
+ cmp r1, r0
+ mvn r0, #0x8700
+ movgt r4, #0x1
+ cmp r1, r0
+ ldrlt r0, [r7, #0x70]
+ mvnlt r4, #0x0
+ addlt r0, r0, #0x1
+ strlt r0, [r7, #0x70]
+ cmp r4, #0x0
+ movne r0, #0x0
+ strne r0, [r7, #0x6c]
+ strne r0, [r7, #0x4c]
+_020ABAE0:
+ ldr r1, [r7, #0x84]
+ mov r0, #0x1
+ sub r1, r1, #0x1
+ str r1, [r7, #0x84]
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020ABAF4: .word 0x00000464
+_020ABAF8: .word 0x00008B18
+_020ABAFC: .word 0x0000CC8D
+_020ABB00: .word 0x75CA82CB
+_020ABB04: .word 0x0007FD88
+_020ABB08: .word 0x000134DF
+_020ABB0C: .word 0xFFFF2F5C
+_020ABB10: .word 0xFFFFBA74
+_020ABB14: .word 0x00068520
+_020ABB18: .word 0x00008701
+
+ arm_func_start FUN_020ABB1C
+FUN_020ABB1C:
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrh r12, [r6, #0x68]
+ mov r4, r2
+ ldr r3, _020ABBE4 ; =0x00000BB8
+ sub r2, r4, r12
+ mov r2, r2, lsl #0x10
+ mov r2, r2, lsr #0x10
+ mov r5, r1
+ cmp r2, r3
+ bhs _020ABB60
+ cmp r4, r12
+ ldrcc r0, [r6, #0x60]
+ addcc r0, r0, #0x10000
+ strcc r0, [r6, #0x60]
+ strh r4, [r6, #0x68]
+ b _020ABBD0
+_020ABB60:
+ ldr r1, _020ABBE8 ; =0x0000FF9C
+ cmp r2, r1
+ bhi _020ABBAC
+ ldr r1, [r6, #0x64]
+ cmp r4, r1
+ bne _020ABB94
+ mov r1, r4
+ bl FUN_020ABBEC
+ sub r0, r4, #0x1
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ str r0, [r6, #0x54]
+ b _020ABBD0
+_020ABB94:
+ add r0, r4, #0x1
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ str r0, [r6, #0x64]
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+_020ABBAC:
+ ldr r2, [r6, #0x60]
+ ldr r0, [r6, #0x54]
+ add r2, r4, r2
+ add r0, r0, r1
+ cmp r2, r0
+ subhi r0, r2, #0x10000
+ strhi r0, [r5, #0x18]
+ movhi r0, #0x1
+ ldmhiia sp!, {r4-r6,pc}
+_020ABBD0:
+ ldr r1, [r6, #0x60]
+ mov r0, #0x1
+ add r1, r4, r1
+ str r1, [r5, #0x18]
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020ABBE4: .word 0x00000BB8
+_020ABBE8: .word 0x0000FF9C
+
+ arm_func_start FUN_020ABBEC
+FUN_020ABBEC: ; 0x020ABBEC
+ ldr r2, _020ABC08 ; =0x00010001
+ strh r1, [r0, #0x68]
+ str r2, [r0, #0x64]
+ mov r1, #0x0
+ str r1, [r0, #0x60]
+ str r1, [r0, #0x5c]
+ bx lr
+ .balign 4
+_020ABC08: .word 0x00010001
+
+ arm_func_start FUN_020ABC0C
+FUN_020ABC0C: ; 0x020ABC0C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r0, [r5, #0x3c]
+ mov r4, r1
+ cmp r0, #0x0
+ beq _020ABC2C
+ bl FUN_020ACD90
+_020ABC2C:
+ str r4, [r5, #0x3c]
+ ldr r0, [r5, #0x34]
+ bl FUN_020AB444
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020ABC40
+FUN_020ABC40: ; 0x020ABC40
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x3c]
+ cmp r0, #0x0
+ beq _020ABC60
+ bl FUN_020ACD90
+ mov r0, #0x0
+ str r0, [r4, #0x3c]
+_020ABC60:
+ mvn r0, #0x0
+ str r0, [r4, #0x38]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020ABC6C
+FUN_020ABC6C: ; 0x020ABC6C
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r1
+ mov r4, r2
+ mov r1, #0x0
+ mov r2, #0x28
+ mov r6, r0
+ bl MI_CpuFill8
+ ldr r0, _020ABCF4 ; =0x000134DF
+ mov r1, #0x0
+ str r0, [r6, #0x4]
+ str r1, [r6, #0x28]
+ str r1, [r6, #0x2c]
+ str r5, [r6, #0x34]
+ str r4, [r6, #0x38]
+ str r1, [r6, #0x7c]
+ str r1, [r6, #0x80]
+ str r1, [r6, #0x84]
+ str r1, [r6, #0x88]
+ str r0, [r6, #0x8c]
+ str r1, [r6, #0x90]
+ str r1, [r6, #0x4c]
+ str r1, [r6, #0x44]
+ str r1, [r6, #0x48]
+ str r1, [r6, #0x6c]
+ str r1, [r6, #0x70]
+ str r1, [r6, #0x50]
+ str r1, [r6, #0x54]
+ str r1, [r6, #0x58]
+ mov r0, #0x1
+ str r0, [r6, #0x5c]
+ str r1, [r6, #0x3c]
+ str r1, [r6, #0x40]
+ str r1, [r6, #0x30]
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020ABCF4: .word 0x000134DF
+
+ arm_func_start FUN_020ABCF8
+FUN_020ABCF8: ; 0x020ABCF8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, _020ABE34 ; =UNK_021CCD20
+ ldr r2, [r3, #0x10]
+ cmp r2, #0x2
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {pc}
+ ldrb r12, [r3, #0x1]
+ ldrb r2, [r0, #0x8]
+ cmp r12, r2
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {pc}
+ ldrb r2, [r0, #0xa]
+ cmp r2, #0x0
+ beq _020ABD48
+ cmp r2, #0x1
+ beq _020ABDA4
+ b _020ABE1C
+_020ABD48:
+ ldr r0, _020ABE38 ; =UNK_021CB824
+ ldr r2, [r0, #0x2c]
+ cmp r2, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {pc}
+ ldr r0, [r0, #0x38]
+ cmp r0, #0x5
+ beq _020ABD74
+ cmp r0, #0x2
+ bne _020ABD80
+_020ABD74:
+ mov r0, #0x9
+ str r0, [r1, #0x0]
+ b _020ABD88
+_020ABD80:
+ mov r0, #0x5
+ str r0, [r1, #0x0]
+_020ABD88:
+ ldr r0, _020ABE38 ; =UNK_021CB824
+ mov r3, #0x0
+ ldr r2, _020ABE3C ; =UNK_021CB850
+ str r3, [r0, #0x2c]
+ str r3, [r0, #0x38]
+ str r2, [r1, #0x4]
+ b _020ABE28
+_020ABDA4:
+ ldr r2, _020ABE38 ; =UNK_021CB824
+ mov lr, #0x2
+ str lr, [r2, #0x2c]
+ ldrb r12, [r0, #0xb]
+ ldrb r3, [r3, #0x0]
+ cmp r12, r3
+ bne _020ABDD8
+ str lr, [r2, #0x38]
+ mov r3, #0x7
+ str r3, [r1, #0x0]
+ ldr r3, [r0, #0xc]
+ str r3, [r2, #0x34]
+ b _020ABE04
+_020ABDD8:
+ mov r3, #0x3
+ str r3, [r2, #0x38]
+ mov r2, #0x6
+ str r2, [r1, #0x0]
+ ldrb r3, [r0, #0xb]
+ cmp r3, #0x0
+ movne r2, #0x1
+ movne r3, r2, lsl r3
+ ldr r2, _020ABE38 ; =UNK_021CB824
+ moveq r3, #0x1
+ str r3, [r2, #0x34]
+_020ABE04:
+ ldrb r3, [r0, #0xb]
+ ldr r0, _020ABE38 ; =UNK_021CB824
+ ldr r2, _020ABE3C ; =UNK_021CB850
+ strb r3, [r0, #0x31]
+ str r2, [r1, #0x4]
+ b _020ABE28
+_020ABE1C:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {pc}
+_020ABE28:
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020ABE34: .word UNK_021CCD20
+_020ABE38: .word UNK_021CB824
+_020ABE3C: .word UNK_021CB850
+
+ arm_func_start FUN_020ABE40
+FUN_020ABE40: ; 0x020ABE40
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldrb r0, [r5, #0x4]
+ mov r4, r1
+ cmp r0, #0xff
+ bne _020ABE70
+ ldrb r0, [r5, #0x6]
+ cmp r0, #0x4
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,pc}
+_020ABE70:
+ ldrb r0, [r5, #0x8]
+ bl FUN_020AC1E8
+ cmp r0, #0x0
+ beq _020ABEA4
+ mov r1, #0x2
+ str r1, [r4, #0x0]
+ str r0, [r4, #0x4]
+ mov r2, #0x0
+ str r2, [r0, #0x0]
+ bl FUN_020AC708
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r5,pc}
+_020ABEA4:
+ ldrb r1, [r5, #0x8]
+ ldr r0, _020ABEC8 ; =UNK_021CB838
+ bl FUN_020AC5A4
+ ldr r0, _020ABEC8 ; =UNK_021CB838
+ mov r1, #0x2
+ bl FUN_020AC708
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020ABEC8: .word UNK_021CB838
+
+ arm_func_start FUN_020ABECC
+FUN_020ABECC: ; 0x020ABECC
+ stmdb sp!, {r4-r6,lr}
+ ldr r2, _020AC070 ; =UNK_021CB824
+ mov r6, r0
+ ldr r0, [r2, #0x2c]
+ mov r5, r1
+ cmp r0, #0x2
+ bne _020ABF84
+ ldrb r1, [r2, #0x30]
+ ldrb r0, [r6, #0x8]
+ cmp r1, r0
+ bne _020ABF74
+ ldr r0, _020AC074 ; =UNK_021CB850
+ mov r1, r6
+ bl FUN_020AC350
+ mov r4, r0
+ mvn r0, #0x2
+ cmp r4, r0
+ beq _020ABF48
+ mvn r0, #0x1
+ cmp r4, r0
+ beq _020ABF30
+ mvn r0, #0x0
+ cmp r4, r0
+ beq _020ABF48
+ b _020ABF50
+_020ABF30:
+ mov r0, #0xc
+ str r0, [r5, #0x0]
+ mov r0, #0x0
+ str r0, [r5, #0x4]
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,pc}
+_020ABF48:
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+_020ABF50:
+ ldr r1, _020AC074 ; =UNK_021CB850
+ mov r0, r6
+ bl FUN_020AC4A0
+ ldr r1, _020AC074 ; =UNK_021CB850
+ str r0, [r5, #0x0]
+ str r1, [r5, #0x4]
+ ldr r0, [r5, #0x4]
+ str r4, [r0, #0xc]
+ b _020AC028
+_020ABF74:
+ mov r0, #0x1
+ bl FUN_020AC5E8
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+_020ABF84:
+ ldrb r12, [r6, #0x8]
+ cmp r12, #0x0
+ movne r0, #0x1
+ movne r1, r0, lsl r12
+ ldr r0, _020AC078 ; =UNK_021CB818
+ moveq r1, #0x1
+ ldr r0, [r0, #0x0]
+ ands r0, r0, r1
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ ldr r2, _020AC070 ; =UNK_021CB824
+ mov r4, #0x2
+ mov r3, #0x0
+ ldr r0, _020AC074 ; =UNK_021CB850
+ mov r1, r6
+ strb r12, [r2, #0x30]
+ str r4, [r2, #0x2c]
+ str r3, [r2, #0x38]
+ bl FUN_020AC350
+ mov r4, r0
+ mvn r0, #0x2
+ cmp r4, r0
+ beq _020ABFF8
+ mvn r0, #0x1
+ cmp r4, r0
+ beq _020ABFF8
+ mvn r0, #0x0
+ cmp r4, r0
+ bne _020AC008
+_020ABFF8:
+ ldr r1, _020AC070 ; =UNK_021CB824
+ mov r0, #0x0
+ str r0, [r1, #0x2c]
+ ldmia sp!, {r4-r6,pc}
+_020AC008:
+ ldr r1, _020AC074 ; =UNK_021CB850
+ mov r0, r6
+ bl FUN_020AC4A0
+ ldr r1, _020AC074 ; =UNK_021CB850
+ str r0, [r5, #0x0]
+ str r1, [r5, #0x4]
+ ldr r0, [r5, #0x4]
+ str r4, [r0, #0xc]
+_020AC028:
+ ldr r0, [r5, #0x0]
+ cmp r0, #0xa
+ bne _020AC050
+ mov r0, #0x1
+ bl FUN_020AC5E8
+ bl OS_GetTick
+ ldr r2, _020AC07C ; =UNK_021CB81C
+ str r0, [r2, #0x0]
+ str r1, [r2, #0x4]
+ b _020AC068
+_020AC050:
+ mov r0, #0x0
+ bl FUN_020AC5E8
+ ldr r0, _020AC07C ; =UNK_021CB81C
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+_020AC068:
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020AC070: .word UNK_021CB824
+_020AC074: .word UNK_021CB850
+_020AC078: .word UNK_021CB818
+_020AC07C: .word UNK_021CB81C
+
+ arm_func_start FUN_020AC080
+FUN_020AC080: ; 0x020AC080
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r0
+ ldrb r2, [r6, #0x4]
+ mov r5, r1
+ cmp r2, #0xff
+ bne _020AC0C4
+ ldrb r2, [r6, #0x6]
+ cmp r2, #0x4
+ bne _020AC0B4
+ bl FUN_020ABCF8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+_020AC0B4:
+ cmp r2, #0x3
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,pc}
+_020AC0C4:
+ ldrb r0, [r6, #0x8]
+ bl FUN_020AC1E8
+ movs r4, r0
+ beq _020AC154
+ mov r1, r6
+ bl FUN_020AC350
+ mov r7, r0
+ mvn r0, #0x1
+ cmp r7, r0
+ beq _020AC104
+ mvn r0, #0x0
+ cmp r7, r0
+ bne _020AC124
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_020AC104:
+ mov r0, #0xc
+ str r0, [r5, #0x0]
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ add sp, sp, #0x4
+ str r4, [r5, #0x4]
+ mov r0, #0x1
+ ldmia sp!, {r4-r7,pc}
+_020AC124:
+ mov r0, r6
+ mov r1, r4
+ bl FUN_020AC4A0
+ str r0, [r5, #0x0]
+ str r4, [r5, #0x4]
+ str r7, [r4, #0xc]
+ ldr r0, [r5, #0x0]
+ add sp, sp, #0x4
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_020AC154:
+ ldrb r0, [r6, #0x8]
+ bl FUN_020AC790
+ movs r7, r0
+ bne _020AC188
+ ldrb r1, [r6, #0x8]
+ ldr r0, _020AC1E4 ; =UNK_021CB838
+ bl FUN_020AC5A4
+ ldr r0, _020AC1E4 ; =UNK_021CB838
+ mov r1, #0x3
+ bl FUN_020AC708
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_020AC188:
+ mov r1, r6
+ bl FUN_020AC350
+ mov r4, r0
+ add r0, r4, #0x2
+ cmp r0, #0x1
+ bhi _020AC1B4
+ mov r0, r7
+ bl FUN_020ACC84
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_020AC1B4:
+ mov r0, r6
+ mov r1, r7
+ bl FUN_020AC4A0
+ str r0, [r5, #0x0]
+ str r7, [r5, #0x4]
+ str r4, [r7, #0xc]
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020AC1E4: .word UNK_021CB838
+
+ arm_func_start FUN_020AC1E8
+FUN_020AC1E8:
+ ldr r1, _020AC25C ; =UNK_021CCD20
+ ldr r2, _020AC260 ; =UNK_021CB824
+ ldr r1, [r1, #0x10]
+ ldr r3, [r2, #0x4]
+ cmp r1, #0x2
+ bne _020AC224
+ ldr r1, [r2, #0x2c]
+ cmp r1, #0x0
+ beq _020AC21C
+ ldrb r1, [r2, #0x30]
+ cmp r1, r0
+ ldreq r0, _020AC264 ; =UNK_021CB850
+ bxeq lr
+_020AC21C:
+ mov r0, #0x0
+ bx lr
+_020AC224:
+ cmp r3, #0x0
+ beq _020AC254
+_020AC22C:
+ ldr r1, [r3, #0x0]
+ cmp r1, #0x0
+ beq _020AC248
+ ldrb r1, [r3, #0x4]
+ cmp r1, r0
+ moveq r0, r3
+ bxeq lr
+_020AC248:
+ ldr r3, [r3, #0x14]
+ cmp r3, #0x0
+ bne _020AC22C
+_020AC254:
+ mov r0, #0x0
+ bx lr
+ .balign 4
+_020AC25C: .word UNK_021CCD20
+_020AC260: .word UNK_021CB824
+_020AC264: .word UNK_021CB850
+
+ arm_func_start FUN_020AC268
+FUN_020AC268:
+ ldrb r2, [r1, #0x4]
+ ldrb r12, [r1, #0x6]
+ cmp r2, #0x0
+ addeq r12, r12, #0x5
+ cmp r12, #0x0
+ blt _020AC288
+ cmp r12, #0xb
+ blt _020AC28C
+_020AC288:
+ mvn r12, #0x0
+_020AC28C:
+ cmp r12, #0x0
+ mvnlt r0, #0x0
+ bxlt lr
+ ldr r1, _020AC2F8 ; =UNK_021CCD20
+ ldr r1, [r1, #0x10]
+ cmp r1, #0x1
+ ldrne r3, [r0, #0xc]
+ ldrne r2, _020AC2FC ; =UNK_020FF788
+ movne r1, #0xb
+ mlane r1, r3, r1, r2
+ ldrnesb r2, [r12, r1]
+ bne _020AC2D0
+ ldr r3, [r0, #0xc]
+ ldr r2, _020AC300 ; =UNK_020FF744
+ mov r1, #0xb
+ mla r1, r3, r1, r2
+ ldrsb r2, [r12, r1]
+_020AC2D0:
+ mvn r1, #0x0
+ cmp r2, r1
+ moveq r0, #0x1
+ bxeq lr
+ mvn r1, #0x1
+ cmp r2, r1
+ moveq r0, #0x0
+ strne r2, [r0, #0xc]
+ movne r0, #0x1
+ bx lr
+ .balign 4
+_020AC2F8: .word UNK_021CCD20
+_020AC2FC: .word UNK_020FF788
+_020AC300: .word UNK_020FF744
+
+ arm_func_start FUN_020AC304
+FUN_020AC304:
+ ldr r1, _020AC34C ; =UNK_021CB824
+ ldr r2, [r1, #0x4]
+ cmp r2, #0x0
+ beq _020AC344
+_020AC314:
+ ldr r1, [r2, #0x0]
+ cmp r1, #0x0
+ beq _020AC338
+ ldr r1, [r2, #0xc]
+ cmp r1, #0x2
+ bne _020AC338
+ cmp r0, r2
+ movne r0, #0x0
+ bxne lr
+_020AC338:
+ ldr r2, [r2, #0x14]
+ cmp r2, #0x0
+ bne _020AC314
+_020AC344:
+ mov r0, #0x1
+ bx lr
+ .balign 4
+_020AC34C: .word UNK_021CB824
+
+ arm_func_start FUN_020AC350
+FUN_020AC350: ; 0x020AC350
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldrb r2, [r1, #0x4]
+ ldrb r3, [r1, #0x6]
+ mov r4, r0
+ cmp r2, #0x0
+ addeq r3, r3, #0x5
+ cmp r3, #0x0
+ blt _020AC37C
+ cmp r3, #0xb
+ blt _020AC380
+_020AC37C:
+ mvn r3, #0x0
+_020AC380:
+ cmp r3, #0x0
+ addlt sp, sp, #0x4
+ mvnlt r0, #0x0
+ ldmltia sp!, {r4-r5,pc}
+ ldr r0, _020AC44C ; =UNK_021CCD20
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x1
+ ldrne r2, [r4, #0xc]
+ ldrne r1, _020AC450 ; =UNK_020FF700
+ movne r0, #0xb
+ mlane r0, r2, r0, r1
+ ldrnesb r5, [r3, r0]
+ bne _020AC3C8
+ ldr r2, [r4, #0xc]
+ ldr r1, _020AC454 ; =UNK_020FF6BC
+ mov r0, #0xb
+ mla r0, r2, r0, r1
+ ldrsb r5, [r3, r0]
+_020AC3C8:
+ mvn r0, #0x2
+ cmp r5, r0
+ beq _020AC41C
+ mvn r0, #0x1
+ cmp r5, r0
+ beq _020AC3F8
+ mvn r0, #0x0
+ cmp r5, r0
+ bne _020AC440
+ add sp, sp, #0x4
+ mov r0, r5
+ ldmia sp!, {r4-r5,pc}
+_020AC3F8:
+ mov r0, r4
+ mov r1, #0x1
+ bl FUN_020AC708
+ mov r1, #0x0
+ str r1, [r4, #0xc]
+ add sp, sp, #0x4
+ mov r0, r5
+ str r1, [r4, #0x0]
+ ldmia sp!, {r4-r5,pc}
+_020AC41C:
+ mov r0, r4
+ mov r1, #0x3
+ bl FUN_020AC708
+ mov r1, #0x0
+ str r1, [r4, #0xc]
+ add sp, sp, #0x4
+ mov r0, r5
+ str r1, [r4, #0x0]
+ ldmia sp!, {r4-r5,pc}
+_020AC440:
+ mov r0, r5
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AC44C: .word UNK_021CCD20
+_020AC450: .word UNK_020FF700
+_020AC454: .word UNK_020FF6BC
+
+ arm_func_start FUN_020AC458
+FUN_020AC458:
+ ldr ip, _020AC498 ; =0x5F564354
+ mov r3, #0x10
+ str r12, [r1, #0x0]
+ strb r3, [r1, #0x5]
+ ldr r3, _020AC49C ; =UNK_021CCD20
+ strb r2, [r1, #0x6]
+ ldrb r2, [r3, #0x0]
+ strb r2, [r1, #0x8]
+ ldrb r2, [r0, #0x4]
+ mov r0, #0x0
+ strb r2, [r1, #0x9]
+ strb r0, [r1, #0xa]
+ ldrb r2, [r3, #0x0]
+ strb r2, [r1, #0xb]
+ str r0, [r1, #0xc]
+ bx lr
+ .balign 4
+_020AC498: .word 0x5F564354
+_020AC49C: .word UNK_021CCD20
+
+ arm_func_start FUN_020AC4A0
+FUN_020AC4A0:
+ ldrb r2, [r0, #0xb]
+ strb r2, [r1, #0x5]
+ ldrb r2, [r0, #0x4]
+ cmp r2, #0xff
+ bne _020AC4E8
+ ldrb r2, [r0, #0x6]
+ cmp r2, #0x0
+ bne _020AC4D8
+ ldrb r3, [r1, #0x4]
+ cmp r3, #0x0
+ movne r2, #0x1
+ movne r2, r2, lsl r3
+ moveq r2, #0x1
+ str r2, [r1, #0x8]
+_020AC4D8:
+ ldrb r1, [r0, #0x6]
+ ldr r0, _020AC54C ; =UNK_020FF6AC
+ ldrb r0, [r0, r1]
+ bx lr
+_020AC4E8:
+ cmp r2, #0x0
+ bne _020AC544
+ ldrb r2, [r0, #0x6]
+ cmp r2, #0x0
+ bne _020AC538
+ ldr r0, [r1, #0xc]
+ cmp r0, #0x1
+ bne _020AC528
+ ldrb r2, [r1, #0x4]
+ cmp r2, #0x0
+ movne r0, #0x1
+ movne r0, r0, lsl r2
+ moveq r0, #0x1
+ str r0, [r1, #0x8]
+ mov r0, #0x7
+ bx lr
+_020AC528:
+ cmp r0, #0x5
+ moveq r0, #0x9
+ movne r0, #0xc
+ bx lr
+_020AC538:
+ ldr r0, _020AC550 ; =UNK_020FF6B4
+ ldrb r0, [r0, r2]
+ bx lr
+_020AC544:
+ mov r0, #0xc
+ bx lr
+ .balign 4
+_020AC54C: .word UNK_020FF6AC
+_020AC550: .word UNK_020FF6B4
+
+ arm_func_start FUN_020AC554
+FUN_020AC554:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrb r2, [r1, #0x4]
+ cmp r2, #0xff
+ bne _020AC57C
+ ldrb r2, [r1, #0x6]
+ cmp r2, #0x4
+ bne _020AC57C
+ bl FUN_020AC628
+ b _020AC598
+_020AC57C:
+ ldrb r0, [r0, #0x4]
+ mov r2, #0x10
+ bl MOD04_021EB044
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {pc}
+_020AC598:
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020AC5A4
+FUN_020AC5A4: ; 0x020AC5A4
+ mov r12, r0
+ mov r3, #0x6
+ mov r2, #0x0
+_020AC5B0:
+ strb r2, [r12], #0x1
+ strb r2, [r12], #0x1
+ strb r2, [r12], #0x1
+ strb r2, [r12], #0x1
+ subs r3, r3, #0x1
+ bne _020AC5B0
+ ldr r2, _020AC5E4 ; =UNK_021CCD20
+ mov r3, #0x0
+ ldr r2, [r2, #0x10]
+ str r2, [r0, #0x0]
+ str r3, [r0, #0xc]
+ strb r1, [r0, #0x4]
+ bx lr
+ .balign 4
+_020AC5E4: .word UNK_021CCD20
+
+ arm_func_start FUN_020AC5E8
+FUN_020AC5E8:
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x10
+ mov r4, r0
+ mov r3, #0xff
+ ldr r0, _020AC624 ; =UNK_021CB850
+ add r1, sp, #0x0
+ mov r2, #0x4
+ strb r3, [sp, #0x4]
+ bl FUN_020AC458
+ ldr r0, _020AC624 ; =UNK_021CB850
+ add r1, sp, #0x0
+ strb r4, [sp, #0xa]
+ bl FUN_020AC628
+ add sp, sp, #0x10
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AC624: .word UNK_021CB850
+
+ arm_func_start FUN_020AC628
+FUN_020AC628: ; 0x020AC628
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r11, r0
+ mov r10, r1
+ mov r9, #0x0
+ bl FUN_020AC6E4
+ ldr r4, _020AC6DC ; =UNK_021CCD20
+ ldr r5, _020AC6E0 ; =UNK_021CB818
+ mov r8, r9
+ mov r7, #0x1
+ mov r6, #0x10
+_020AC654:
+ cmp r8, #0x0
+ movne r1, r7, lsl r8
+ ldr r0, [r5, #0x0]
+ moveq r1, r7
+ ands r0, r0, r1
+ beq _020AC694
+ ldrb r0, [r4, #0x0]
+ cmp r8, r0
+ beq _020AC694
+ mov r0, r8
+ mov r1, r10
+ mov r2, r6
+ strb r8, [r10, #0x9]
+ bl MOD04_021EB044
+ cmp r0, #0x0
+ addne r9, r9, #0x1
+_020AC694:
+ add r0, r8, #0x1
+ and r8, r0, #0xff
+ cmp r8, #0x20
+ blo _020AC654
+ ldrb r0, [r10, #0xa]
+ cmp r0, #0x1
+ ldreq r0, _020AC6E0 ; =UNK_021CB818
+ ldreq r0, [r0, #0x0]
+ streq r0, [r11, #0x8]
+ beq _020AC6C8
+ cmp r0, #0x0
+ moveq r0, #0x0
+ streq r0, [r11, #0x8]
+_020AC6C8:
+ cmp r9, #0x0
+ mvneq r0, #0x3
+ movne r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020AC6DC: .word UNK_021CCD20
+_020AC6E0: .word UNK_021CB818
+
+ arm_func_start FUN_020AC6E4
+FUN_020AC6E4: ; 0x020AC6E4
+ ldrb r2, [r1, #0xa]
+ cmp r2, #0x1
+ ldreqb r2, [r0, #0x4]
+ ldreq r0, _020AC704 ; =UNK_021CB818
+ streqb r2, [r1, #0xb]
+ ldreq r0, [r0, #0x0]
+ streq r0, [r1, #0xc]
+ bx lr
+ .balign 4
+_020AC704: .word UNK_021CB818
+
+ arm_func_start FUN_020AC708
+FUN_020AC708:
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x10
+ add r2, sp, #0x0
+ mov r3, #0x10
+ mov r4, r0
+ bl FUN_020ACAE0
+ cmp r0, #0x0
+ addne sp, sp, #0x10
+ ldmneia sp!, {r4,pc}
+ add r1, sp, #0x0
+ mov r0, r4
+ bl FUN_020AC554
+ cmp r0, #0x0
+ movne r0, #0x0
+ mvneq r0, #0x3
+ add sp, sp, #0x10
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020AC74C
+FUN_020AC74C: ; 0x020AC74C
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x10
+ add r2, sp, #0x0
+ mov r3, #0x10
+ mov r4, r0
+ bl FUN_020ACBD0
+ cmp r0, #0x0
+ addne sp, sp, #0x10
+ ldmneia sp!, {r4,pc}
+ add r1, sp, #0x0
+ mov r0, r4
+ bl FUN_020AC554
+ cmp r0, #0x0
+ movne r0, #0x0
+ mvneq r0, #0x3
+ add sp, sp, #0x10
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020AC790
+FUN_020AC790: ; 0x020AC790
+ stmdb sp!, {r4,lr}
+ mov r1, r0
+ cmp r1, #0x20
+ movcs r0, #0x0
+ ldmcsia sp!, {r4,pc}
+ ldr r0, _020AC7F4 ; =UNK_021CCD20
+ ldrb r0, [r0, #0x0]
+ cmp r1, r0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+ ldr r2, _020AC7F8 ; =UNK_021CB824
+ ldr r4, [r2, #0x0]
+ cmp r4, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+ ldr r3, [r4, #0x14]
+ mov r0, r4
+ str r3, [r2, #0x0]
+ bl FUN_020AC5A4
+ ldr r1, _020AC7F8 ; =UNK_021CB824
+ mov r0, r4
+ ldr r2, [r1, #0x4]
+ str r2, [r4, #0x14]
+ str r4, [r1, #0x4]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AC7F4: .word UNK_021CCD20
+_020AC7F8: .word UNK_021CB824
+
+ arm_func_start FUN_020AC7FC
+FUN_020AC7FC:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r2, #0x10
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {pc}
+ ldrb r2, [r1, #0x8]
+ cmp r2, r0
+ bne _020AC834
+ ldr r0, _020AC894 ; =UNK_021CCD20
+ ldrb r12, [r1, #0x9]
+ ldrb r2, [r0, #0x0]
+ cmp r12, r2
+ beq _020AC840
+_020AC834:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {pc}
+_020AC840:
+ ldrb r2, [r1, #0x5]
+ cmp r2, #0x10
+ beq _020AC860
+ mov r0, r1
+ mov r1, r3
+ bl FUN_020ABE40
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020AC860:
+ ldr r0, [r0, #0xc]
+ cmp r0, #0x0
+ bne _020AC880
+ mov r0, r1
+ mov r1, r3
+ bl FUN_020AC080
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020AC880:
+ mov r0, r1
+ mov r1, r3
+ bl FUN_020ABECC
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AC894: .word UNK_021CCD20
+
+ arm_func_start FUN_020AC898
+FUN_020AC898: ; 0x020AC898
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ bl OS_GetTick
+ ldr r2, _020AC950 ; =UNK_021CCD20
+ ldr r3, [r2, #0x10]
+ cmp r3, #0x2
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,pc}
+ ldr r2, [r2, #0xc]
+ cmp r2, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+ ldr r3, _020AC954 ; =UNK_021CB81C
+ mov r12, #0x0
+ ldr r5, [r3, #0x4]
+ ldr r4, [r3, #0x0]
+ cmp r5, r12
+ cmpeq r4, r12
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+ ldr r2, _020AC958 ; =UNK_02106490
+ subs r4, r0, r4
+ ldr lr, [r2, #0x0]
+ ldr r0, [r2, #0x4]
+ sbc r1, r1, r5
+ cmp r1, r0
+ cmpeq r4, lr
+ addls sp, sp, #0x4
+ ldmlsia sp!, {r4-r5,pc}
+ ldr r1, _020AC95C ; =UNK_021CB824
+ mov r0, r12
+ str r12, [r3, #0x0]
+ str r12, [r3, #0x4]
+ str r12, [r1, #0x2c]
+ str r12, [r1, #0x38]
+ bl FUN_020AC5E8
+ ldr r1, _020AC950 ; =UNK_021CCD20
+ ldr r0, _020AC95C ; =UNK_021CB824
+ ldr r3, [r1, #0x8]
+ ldrb r0, [r0, #0x30]
+ ldr r12, [r1, #0x4]
+ ldr r2, _020AC960 ; =UNK_021CB850
+ mov r1, #0x9
+ blx r12
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AC950: .word UNK_021CCD20
+_020AC954: .word UNK_021CB81C
+_020AC958: .word UNK_02106490
+_020AC95C: .word UNK_021CB824
+_020AC960: .word UNK_021CB850
+
+ arm_func_start FUN_020AC964
+FUN_020AC964: ; 0x020AC964
+ ldr r0, _020AC978 ; =UNK_021CB824
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020AC978: .word UNK_021CB824
+
+ arm_func_start FUN_020AC97C
+FUN_020AC97C:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ beq _020AC9A8
+ ldr r1, [r4, #0x4]
+ cmp r1, #0x0
+ beq _020AC9A8
+ cmp r1, #0x8
+ bls _020AC9B4
+_020AC9A8:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r5,pc}
+_020AC9B4:
+ ldr r1, _020ACA8C ; =UNK_021CB824
+ mov r2, #0x18
+ str r0, [r1, #0x0]
+ ldr r3, [r4, #0x4]
+ mov r1, #0x0
+ mul r2, r3, r2
+ bl MI_CpuFill8
+ ldr r0, _020ACA90 ; =UNK_021CB850
+ mov r1, #0x0
+ mov r2, #0x18
+ bl MI_CpuFill8
+ ldr r0, _020ACA94 ; =UNK_021CB838
+ mov r1, #0x0
+ mov r2, #0x18
+ bl MI_CpuFill8
+ ldr r12, [r4, #0x4]
+ mov lr, #0x0
+ subs r0, r12, #0x1
+ beq _020ACA34
+ ldr r1, _020ACA8C ; =UNK_021CB824
+ mov r5, lr
+ mov r0, #0x18
+_020ACA0C:
+ ldr r2, [r1, #0x0]
+ add lr, lr, #0x1
+ mla r3, lr, r0, r2
+ add r2, r2, r5
+ str r3, [r2, #0x14]
+ ldr r12, [r4, #0x4]
+ add r5, r5, #0x18
+ sub r2, r12, #0x1
+ cmp lr, r2
+ blo _020ACA0C
+_020ACA34:
+ ldr r3, _020ACA8C ; =UNK_021CB824
+ mov r0, #0x18
+ ldr r1, [r3, #0x0]
+ mov r5, #0x0
+ mla r0, r12, r0, r1
+ str r5, [r0, #-0x4]
+ ldr r2, _020ACA98 ; =UNK_021CB818
+ ldr r1, _020ACA9C ; =UNK_021CB814
+ ldr r0, _020ACAA0 ; =UNK_021CCD20
+ ldr lr, _020ACAA4 ; =OS_GetTick
+ ldr ip, _020ACAA8 ; =0x5D588B65
+ ldr r4, _020ACAAC ; =0x00269EC3
+ str r5, [r3, #0x4]
+ str r5, [r2, #0x0]
+ str r5, [r1, #0x0]
+ str r5, [r0, #0x14]
+ str lr, [r3, #0x8]
+ str r12, [r3, #0xc]
+ str r4, [r3, #0x10]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020ACA8C: .word UNK_021CB824
+_020ACA90: .word UNK_021CB850
+_020ACA94: .word UNK_021CB838
+_020ACA98: .word UNK_021CB818
+_020ACA9C: .word UNK_021CB814
+_020ACAA0: .word UNK_021CCD20
+_020ACAA4: .word OS_GetTick
+_020ACAA8: .word 0x5D588B65
+_020ACAAC: .word 0x00269EC3
+
+ arm_func_start FUN_020ACAB0
+FUN_020ACAB0: ; 0x020ACAB0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020ACADC ; =UNK_021CCD20
+ ldr r2, [r2, #0x10]
+ cmp r2, #0x2
+ addeq sp, sp, #0x4
+ mvneq r0, #0x2
+ ldmeqia sp!, {pc}
+ bl FUN_020AC708
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020ACADC: .word UNK_021CCD20
+
+ arm_func_start FUN_020ACAE0
+FUN_020ACAE0:
+ stmdb sp!, {r4-r6,lr}
+ movs r5, r0
+ mov r6, r1
+ mov r4, r2
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ cmp r3, #0x10
+ mvncc r0, #0x0
+ ldmccia sp!, {r4-r6,pc}
+ cmp r6, #0x0
+ blt _020ACB14
+ cmp r6, #0x6
+ blt _020ACB1C
+_020ACB14:
+ mvn r0, #0x2
+ ldmia sp!, {r4-r6,pc}
+_020ACB1C:
+ mov r3, #0x0
+ mov r1, r4
+ and r2, r6, #0xff
+ strb r3, [r4, #0x4]
+ bl FUN_020AC458
+ cmp r6, #0x0
+ bne _020ACB80
+ ldr r0, _020ACB9C ; =UNK_021CCD20
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x1
+ bne _020ACB68
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x4
+ bne _020ACB68
+ mov r0, r5
+ bl FUN_020AC304
+ cmp r0, #0x0
+ mvneq r0, #0x2
+ ldmeqia sp!, {r4-r6,pc}
+_020ACB68:
+ ldrb r1, [r5, #0x4]
+ cmp r1, #0x0
+ movne r0, #0x1
+ movne r0, r0, lsl r1
+ moveq r0, #0x1
+ str r0, [r5, #0x8]
+_020ACB80:
+ mov r0, r5
+ mov r1, r4
+ bl FUN_020AC268
+ cmp r0, #0x0
+ mvneq r0, #0x2
+ movne r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020ACB9C: .word UNK_021CCD20
+
+ arm_func_start FUN_020ACBA0
+FUN_020ACBA0: ; 0x020ACBA0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020ACBCC ; =UNK_021CCD20
+ ldr r2, [r2, #0x10]
+ cmp r2, #0x2
+ addeq sp, sp, #0x4
+ mvneq r0, #0x2
+ ldmeqia sp!, {pc}
+ bl FUN_020AC74C
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020ACBCC: .word UNK_021CCD20
+
+ arm_func_start FUN_020ACBD0
+FUN_020ACBD0:
+ stmdb sp!, {r4-r6,lr}
+ movs r5, r0
+ mov r4, r1
+ mov r6, r2
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ cmp r3, #0x10
+ mvncc r0, #0x0
+ ldmccia sp!, {r4-r6,pc}
+ ldr r1, _020ACC80 ; =UNK_021CCD20
+ ldr r1, [r1, #0xc]
+ cmp r1, #0x1
+ mvneq r0, #0x2
+ ldmeqia sp!, {r4-r6,pc}
+ cmp r4, #0x0
+ blt _020ACC18
+ cmp r4, #0x5
+ blt _020ACC20
+_020ACC18:
+ mvn r0, #0x2
+ ldmia sp!, {r4-r6,pc}
+_020ACC20:
+ mov r3, #0xff
+ mov r1, r6
+ and r2, r4, #0xff
+ strb r3, [r6, #0x4]
+ bl FUN_020AC458
+ mov r0, r5
+ mov r1, r6
+ bl FUN_020AC268
+ cmp r0, #0x0
+ mvneq r0, #0x2
+ ldmeqia sp!, {r4-r6,pc}
+ ldr r0, _020ACC80 ; =UNK_021CCD20
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x1
+ bne _020ACC78
+ cmp r4, #0x0
+ bne _020ACC78
+ mov r0, r5
+ bl FUN_020AC304
+ cmp r0, #0x0
+ mvneq r0, #0x2
+ ldmeqia sp!, {r4-r6,pc}
+_020ACC78:
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020ACC80: .word UNK_021CCD20
+
+ arm_func_start FUN_020ACC84
+FUN_020ACC84: ; 0x020ACC84
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020ACD48 ; =UNK_021CB824
+ cmp r0, #0x0
+ mov lr, #0x0
+ addeq sp, sp, #0x4
+ ldr r12, [r2, #0x4]
+ moveq r0, lr
+ ldmeqia sp!, {pc}
+ ldr r1, _020ACD4C ; =UNK_021CCD20
+ ldr r1, [r1, #0x10]
+ cmp r1, #0x2
+ bne _020ACCD0
+ ldr r1, _020ACD50 ; =UNK_021CB850
+ add sp, sp, #0x4
+ cmp r0, r1
+ streq lr, [r2, #0x2c]
+ mov r0, #0x1
+ ldmia sp!, {pc}
+_020ACCD0:
+ cmp r12, #0x0
+ beq _020ACD3C
+_020ACCD8:
+ cmp r12, r0
+ bne _020ACD2C
+ mov r3, #0x0
+ str r3, [r0, #0x0]
+ cmp lr, #0x0
+ ldrne r1, [r0, #0x14]
+ strne r1, [lr, #0x14]
+ bne _020ACD10
+ ldr r2, [r12, #0x14]
+ cmp r2, #0x0
+ ldrne r1, _020ACD48 ; =UNK_021CB824
+ strne r2, [r1, #0x4]
+ ldreq r1, _020ACD48 ; =UNK_021CB824
+ streq r3, [r1, #0x4]
+_020ACD10:
+ ldr r1, _020ACD48 ; =UNK_021CB824
+ add sp, sp, #0x4
+ ldr r2, [r1, #0x0]
+ str r2, [r0, #0x14]
+ str r0, [r1, #0x0]
+ mov r0, #0x1
+ ldmia sp!, {pc}
+_020ACD2C:
+ mov lr, r12
+ ldr r12, [r12, #0x14]
+ cmp r12, #0x0
+ bne _020ACCD8
+_020ACD3C:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020ACD48: .word UNK_021CB824
+_020ACD4C: .word UNK_021CCD20
+_020ACD50: .word UNK_021CB850
+
+ arm_func_start FUN_020ACD54
+FUN_020ACD54: ; 0x020ACD54
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020ACD8C ; =UNK_021CCD20
+ ldr r1, [r1, #0x10]
+ cmp r1, #0x0
+ beq _020ACD74
+ cmp r1, #0x2
+ bne _020ACD80
+_020ACD74:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {pc}
+_020ACD80:
+ bl FUN_020AC790
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020ACD8C: .word UNK_021CCD20
+
+ arm_func_start FUN_020ACD90
+FUN_020ACD90:
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl OS_DisableInterrupts
+ ldr r1, _020ACDC0 ; =UNK_021CB86C
+ ldr r2, _020ACDC4 ; =UNK_021CB868
+ ldr r3, [r1, #0x0]
+ str r0, [r2, #0x0]
+ str r3, [r4, #0x0]
+ ldr r0, [r2, #0x0]
+ str r4, [r1, #0x0]
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020ACDC0: .word UNK_021CB86C
+_020ACDC4: .word UNK_021CB868
+
+ arm_func_start FUN_020ACDC8
+FUN_020ACDC8: ; 0x020ACDC8
+ stmdb sp!, {r4,lr}
+ mov r4, #0x0
+ bl OS_DisableInterrupts
+ ldr r1, _020ACE08 ; =UNK_021CB86C
+ ldr r2, _020ACE0C ; =UNK_021CB868
+ ldr r3, [r1, #0x0]
+ str r0, [r2, #0x0]
+ cmp r3, #0x0
+ ldrne r0, [r3, #0x0]
+ movne r4, r3
+ strne r0, [r1, #0x0]
+ ldr r0, _020ACE0C ; =UNK_021CB868
+ ldr r0, [r0, #0x0]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020ACE08: .word UNK_021CB86C
+_020ACE0C: .word UNK_021CB868
+
+ arm_func_start FUN_020ACE10
+FUN_020ACE10:
+ ldr r1, _020ACE28 ; =UNK_021CB86C
+ mov r2, #0x0
+ ldr r0, _020ACE2C ; =UNK_021CB870
+ str r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ bx lr
+ .balign 4
+_020ACE28: .word UNK_021CB86C
+_020ACE2C: .word UNK_021CB870
+
+ arm_func_start FUN_020ACE30
+FUN_020ACE30:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r3, _020ACF00 ; =0xE525982B
+ mov r2, r1
+ umull r1, r4, r2, r3
+ ldr r1, _020ACF04 ; =UNK_021CB870
+ mov r4, r4, lsr #0xa
+ str r0, [r1, #0x0]
+ cmp r4, #0x4
+ blo _020ACE60
+ cmp r4, #0x48
+ bls _020ACE6C
+_020ACE60:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r5,pc}
+_020ACE6C:
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,pc}
+ ands r3, r0, #0x1f
+ movne r0, #0x0
+ strne r0, [r1, #0x0]
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,pc}
+ mov r1, r0
+ mov r0, #0x0
+ bl MIi_CpuClearFast
+ subs r12, r4, #0x1
+ mov r5, #0x0
+ beq _020ACED0
+ ldr r1, _020ACF04 ; =UNK_021CB870
+ ldr r0, _020ACF08 ; =0x00000478
+ mov lr, r5
+_020ACEB4:
+ ldr r3, [r1, #0x0]
+ add r5, r5, #0x1
+ mla r2, r5, r0, r3
+ str r2, [r3, lr]
+ cmp r5, r12
+ add lr, lr, r0
+ blo _020ACEB4
+_020ACED0:
+ ldr r1, _020ACF04 ; =UNK_021CB870
+ ldr r0, _020ACF08 ; =0x00000478
+ ldr r2, [r1, #0x0]
+ mov r3, #0x0
+ mla r0, r4, r0, r2
+ str r3, [r0, #-0x478]
+ ldr r2, [r1, #0x0]
+ ldr r1, _020ACF0C ; =UNK_021CB86C
+ mov r0, #0x1
+ str r2, [r1, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020ACF00: .word 0xE525982B
+_020ACF04: .word UNK_021CB870
+_020ACF08: .word 0x00000478
+_020ACF0C: .word UNK_021CB86C
+
+ arm_func_start FUN_020ACF10
+FUN_020ACF10: ; 0x020ACF10
+ mov r2, #0xf
+ mov r0, #0x44
+ mul r1, r2, r0
+ ldr r0, _020ACF30 ; =UNK_02106498
+ ldr ip, _020ACF34 ; =FUN_020AD170
+ str r2, [r0, #0x8]
+ str r1, [r0, #0xc]
+ bx r12
+ .balign 4
+_020ACF30: .word UNK_02106498
+_020ACF34: .word FUN_020AD170
+
+ arm_func_start FUN_020ACF38
+FUN_020ACF38: ; 0x020ACF38
+ stmdb sp!, {r4,lr}
+ ldr r3, _020AD124 ; =UNK_02106498
+ mov r12, r1, lsr #0x8
+ str r12, [r3, #0x4]
+ cmp r2, #0x0
+ strneb r12, [r2, #0x0]
+ ldr r2, _020AD124 ; =UNK_02106498
+ ldr r2, [r2, #0x0]
+ cmp r2, #0x0
+ bne _020AD05C
+ mov r4, #0x0
+ mov r12, r4
+ ldr r3, _020AD128 ; =UNK_021CB880
+_020ACF6C:
+ ldr r2, [r3, r12, lsl #0x2]
+ add r12, r12, #0x1
+ cmp r12, #0x4
+ add r4, r4, r2
+ blt _020ACF6C
+ ldr ip, _020AD12C ; =0x040002B0
+ mov r3, #0x0
+ ldr r2, _020AD130 ; =0x040002B8
+ strh r3, [r12, #0x0]
+ mov r3, r4, lsr #0x2
+ str r3, [r2, #0x0]
+_020ACF98:
+ ldrh r2, [r12, #0x0]
+ ands r2, r2, #0x8000
+ bne _020ACF98
+ ldr r2, _020AD134 ; =0x040002B4
+ cmp r1, #0x0
+ ldr r2, [r2, #0x0]
+ beq _020AD038
+ cmp r1, r2, lsl #0x1
+ blo _020AD038
+ mov r4, #0x0
+ mov r3, r4
+ ldr r2, _020AD128 ; =UNK_021CB880
+_020ACFC8:
+ ldr r1, [r2, r3, lsl #0x2]
+ add r3, r3, #0x1
+ cmp r3, #0x4
+ add r4, r4, r1
+ blo _020ACFC8
+ ldr r3, _020AD12C ; =0x040002B0
+ mov r2, #0x0
+ ldr r1, _020AD130 ; =0x040002B8
+ strh r2, [r3, #0x0]
+ mov r2, r4, lsr #0x2
+ str r2, [r1, #0x0]
+_020ACFF4:
+ ldrh r1, [r3, #0x0]
+ ands r1, r1, #0x8000
+ bne _020ACFF4
+ ldr r2, _020AD134 ; =0x040002B4
+ mov r1, #0x3
+ ldr r2, [r2, #0x0]
+ ldr r3, _020AD138 ; =UNK_021CB874
+ mul r1, r2, r1
+ mov lr, r1, lsr #0x1
+ ldr r2, _020AD13C ; =UNK_021CB878
+ mov r12, #0x0
+ ldr r1, _020AD124 ; =UNK_02106498
+ mov r4, #0x1
+ str lr, [r3, #0x0]
+ str r12, [r2, #0x0]
+ str r4, [r1, #0x0]
+ b _020AD03C
+_020AD038:
+ mov r4, #0x0
+_020AD03C:
+ ldr r1, _020AD13C ; =UNK_021CB878
+ ldr r3, _020AD128 ; =UNK_021CB880
+ ldr r12, [r1, #0x0]
+ add r2, r12, #0x1
+ and r2, r2, #0x3
+ str r0, [r3, r12, lsl #0x2]
+ str r2, [r1, #0x0]
+ b _020AD11C
+_020AD05C:
+ ldr r1, _020AD13C ; =UNK_021CB878
+ mov lr, #0x0
+ ldr r12, [r1, #0x0]
+ ldr r3, _020AD128 ; =UNK_021CB880
+ add r2, r12, #0x1
+ and r2, r2, #0x3
+ mov r4, lr
+ str r0, [r3, r12, lsl #0x2]
+ str r2, [r1, #0x0]
+_020AD080:
+ ldr r0, [r3, r4, lsl #0x2]
+ add r4, r4, #0x1
+ cmp r4, #0x4
+ add lr, lr, r0
+ blt _020AD080
+ ldr r2, _020AD12C ; =0x040002B0
+ mov r1, #0x0
+ ldr r0, _020AD130 ; =0x040002B8
+ strh r1, [r2, #0x0]
+ mov r1, lr, lsr #0x2
+ str r1, [r0, #0x0]
+_020AD0AC:
+ ldrh r0, [r2, #0x0]
+ ands r0, r0, #0x8000
+ bne _020AD0AC
+ ldr r1, _020AD134 ; =0x040002B4
+ ldr r0, _020AD138 ; =UNK_021CB874
+ ldr r1, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r1, r0
+ bhi _020AD10C
+ ldr r2, _020AD140 ; =UNK_021CB87C
+ ldr r1, _020AD124 ; =UNK_02106498
+ ldr r3, [r2, #0x0]
+ ldr r0, [r1, #0x8]
+ add r3, r3, #0x1
+ str r3, [r2, #0x0]
+ cmp r3, r0
+ ble _020AD118
+ ldr r0, _020AD13C ; =UNK_021CB878
+ mov r3, #0x0
+ str r3, [r0, #0x0]
+ str r3, [r1, #0x0]
+ str r3, [r2, #0x0]
+ mov r0, #0x3
+ ldmia sp!, {r4,pc}
+_020AD10C:
+ ldr r0, _020AD140 ; =UNK_021CB87C
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+_020AD118:
+ mov r4, #0x2
+_020AD11C:
+ mov r0, r4
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AD124: .word UNK_02106498
+_020AD128: .word UNK_021CB880
+_020AD12C: .word 0x040002B0
+_020AD130: .word 0x040002B8
+_020AD134: .word 0x040002B4
+_020AD138: .word UNK_021CB874
+_020AD13C: .word UNK_021CB878
+_020AD140: .word UNK_021CB87C
+
+ arm_func_start FUN_020AD144
+FUN_020AD144: ; 0x020AD144
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ movs r1, r0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldr r0, _020AD16C ; =UNK_02106498
+ mov r2, #0x10
+ bl MI_CpuCopy8
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AD16C: .word UNK_02106498
+
+ arm_func_start FUN_020AD170
+FUN_020AD170:
+ ldr r0, _020AD1B8 ; =UNK_021CB880
+ mov r2, #0x0
+ mov r1, #0x1000000
+_020AD17C:
+ str r1, [r0, r2, lsl #0x2]
+ add r2, r2, #0x1
+ cmp r2, #0x4
+ blt _020AD17C
+ ldr r3, _020AD1BC ; =UNK_021CB878
+ mov r12, #0x0
+ ldr r1, _020AD1C0 ; =UNK_02106498
+ ldr r2, _020AD1C4 ; =UNK_021CB874
+ ldr r0, _020AD1C8 ; =UNK_021CB87C
+ str r12, [r3, #0x0]
+ str r12, [r2, #0x0]
+ str r12, [r1, #0x0]
+ str r12, [r1, #0x4]
+ str r12, [r0, #0x0]
+ bx lr
+ .balign 4
+_020AD1B8: .word UNK_021CB880
+_020AD1BC: .word UNK_021CB878
+_020AD1C0: .word UNK_02106498
+_020AD1C4: .word UNK_021CB874
+_020AD1C8: .word UNK_021CB87C
+
+ arm_func_start FUN_020AD1CC
+FUN_020AD1CC: ; 0x020AD1CC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r12, r1
+ mov r3, r2
+ ldr r1, _020AD1F0 ; =UNK_021CB8D4
+ mov r2, r12
+ bl FUN_020AD1F4
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AD1F0: .word UNK_021CB8D4
+
+ arm_func_start FUN_020AD1F4
+FUN_020AD1F4: ; 0x020AD1F4
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x14
+ mov r4, #0x0
+ str r4, [sp, #0x0]
+ str r4, [sp, #0x4]
+ mov r9, r4
+ movs r8, r2, lsr #0x1
+ beq _020AD330
+ mov r4, #0xc0000000
+ ldr ip, _020AD420 ; =UNK_021CB8BC
+ ldr r2, _020AD424 ; =UNK_021CB8A4
+ str r4, [sp, #0xc]
+_020AD224:
+ ldr r4, _020AD428 ; =UNK_021CB894
+ ldr lr, [r2, #0x10]
+ ldr r7, [r4, #0x0]
+ mov r4, r9, lsl #0x1
+ ldrsh r10, [r1, r4]
+ ldr r4, _020AD42C ; =UNK_021CB898
+ mov r5, r7, lsl #0x1
+ ldr r6, [r4, #0x0]
+ ldr r4, _020AD430 ; =UNK_021CBD14
+ ldr r11, [r2, #0x14]
+ strh r10, [r4, r5]
+ ldr r10, [r12, #0x10]
+ mov r5, r6, lsl #0x1
+ ldrsh r5, [r4, r5]
+ ldr r4, [r12, #0x14]
+ mul lr, r10, lr
+ str r10, [sp, #0x8]
+ str r10, [r12, #0x14]
+ mla r10, r4, r11, lr
+ ldr r4, [r12, #0xc]
+ ldr r11, [r2, #0xc]
+ str r4, [r12, #0x10]
+ mla r10, r4, r11, r10
+ ldr r4, [r12, #0x8]
+ ldr r11, [r2, #0x8]
+ str r4, [r12, #0xc]
+ mla r10, r4, r11, r10
+ ldr r4, [r12, #0x4]
+ ldr r11, [r2, #0x4]
+ str r4, [r12, #0x8]
+ mla r10, r4, r11, r10
+ ldr r4, [r2, #0x0]
+ str r5, [r12, #0x0]
+ mla r4, r5, r4, r10
+ str r5, [r12, #0x4]
+ ldr r5, _020AD434 ; =0x3FFF8000
+ cmp r4, r5
+ movgt r4, r5
+ bgt _020AD2C8
+ cmp r4, #0xc0000000
+ ldrlt r4, [sp, #0xc]
+_020AD2C8:
+ ldr r5, _020AD438 ; =0x000007FF
+ add r7, r7, #0x1
+ and r7, r7, r5
+ ldr r5, _020AD428 ; =UNK_021CB894
+ add r6, r6, #0x1
+ str r7, [r5, #0x0]
+ ldr r5, _020AD438 ; =0x000007FF
+ mov r7, r9, lsl #0x1
+ and r6, r6, r5
+ ldr r5, _020AD42C ; =UNK_021CB898
+ mov r4, r4, asr #0xf
+ str r6, [r5, #0x0]
+ strh r4, [r1, r7]
+ ldrsh r6, [r1, r7]
+ ldrsh r4, [r0, r7]
+ add r9, r9, #0x1
+ mul r5, r6, r6
+ strh r4, [r1, r7]
+ ldr r4, [sp, #0x0]
+ adds r4, r4, r5
+ str r4, [sp, #0x0]
+ ldr r4, [sp, #0x4]
+ adc r4, r4, r5, asr #0x1f
+ str r4, [sp, #0x4]
+ cmp r9, r8
+ blo _020AD224
+_020AD330:
+ ldr r5, _020AD43C ; =0x04000280
+ mov r1, #0x1
+ strh r1, [r5, #0x0]
+ ldr r4, _020AD440 ; =0x04000290
+ ldr r1, [sp, #0x0]
+ ldr r2, _020AD444 ; =0x04000298
+ str r1, [r4, #0x0]
+ ldr r1, [sp, #0x4]
+ str r1, [r4, #0x4]
+ str r8, [r2, #0x0]
+ mov r1, #0x0
+ str r1, [r2, #0x4]
+_020AD360:
+ ldrh r1, [r5, #0x0]
+ ands r1, r1, #0x8000
+ bne _020AD360
+ ldr r1, _020AD448 ; =0x040002A0
+ ldr r2, _020AD44C ; =0x040002B0
+ ldr r5, [r1, #0x0]
+ mov r4, #0x0
+ ldr r1, _020AD450 ; =0x040002B8
+ strh r4, [r2, #0x0]
+ str r5, [r1, #0x0]
+_020AD388:
+ ldrh r1, [r2, #0x0]
+ ands r1, r1, #0x8000
+ bne _020AD388
+ ldr r2, _020AD454 ; =0x040002B4
+ mov r1, #0x3
+ ldr r4, [r2, #0x0]
+ mov r2, r3, lsl #0x1
+ mul r1, r4, r1
+ cmp r2, r1
+ ldrhi r0, _020AD458 ; =UNK_021CB890
+ movhi r1, #0x0
+ strhih r1, [r0, #0x0]
+ addhi sp, sp, #0x14
+ ldmhiia sp!, {r4-r11,pc}
+ cmp r3, r4
+ ldrlo r1, _020AD458 ; =UNK_021CB890
+ movcc r2, #0x4
+ strcch r2, [r1, #0x0]
+ ldr r1, _020AD458 ; =UNK_021CB890
+ mov r3, #0x0
+ ldrsh r2, [r1, #0x0]
+ cmp r2, #0x4
+ addlt r2, r2, #0x1
+ strlth r2, [r1, #0x0]
+ cmp r8, #0x0
+ addls sp, sp, #0x14
+ ldmlsia sp!, {r4-r11,pc}
+ ldr r1, _020AD458 ; =UNK_021CB890
+ ldrsh r4, [r1, #0x0]
+_020AD3FC:
+ mov r2, r3, lsl #0x1
+ ldrsh r1, [r0, r2]
+ add r3, r3, #0x1
+ cmp r3, r8
+ mov r1, r1, asr r4
+ strh r1, [r0, r2]
+ blo _020AD3FC
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020AD420: .word UNK_021CB8BC
+_020AD424: .word UNK_021CB8A4
+_020AD428: .word UNK_021CB894
+_020AD42C: .word UNK_021CB898
+_020AD430: .word UNK_021CBD14
+_020AD434: .word 0x3FFF8000
+_020AD438: .word 0x000007FF
+_020AD43C: .word 0x04000280
+_020AD440: .word 0x04000290
+_020AD444: .word 0x04000298
+_020AD448: .word 0x040002A0
+_020AD44C: .word 0x040002B0
+_020AD450: .word 0x040002B8
+_020AD454: .word 0x040002B4
+_020AD458: .word UNK_021CB890
+
+ arm_func_start FUN_020AD45C
+FUN_020AD45C: ; 0x020AD45C
+ ldr ip, _020AD46C ; =MIi_CpuCopyFast
+ mov r2, r1
+ ldr r1, _020AD470 ; =UNK_021CB8D4
+ bx r12
+ .balign 4
+_020AD46C: .word MIi_CpuCopyFast
+_020AD470: .word UNK_021CB8D4
+
+ arm_func_start FUN_020AD474
+FUN_020AD474: ; 0x020AD474
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020AD4E4 ; =UNK_021CB894
+ mov r3, #0x0
+ ldr r2, _020AD4E8 ; =0x0000019D
+ ldr r0, _020AD4EC ; =UNK_021CB898
+ ldr lr, _020AD4F0 ; =UNK_021064A8
+ str r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ ldr r0, _020AD4F4 ; =UNK_021CBD14
+ mov r12, r3
+_020AD4A0:
+ mov r1, r3, lsl #0x1
+ add r3, r3, #0x1
+ strh r12, [r0, r1]
+ cmp r3, #0x800
+ blt _020AD4A0
+ ldr r2, _020AD4F8 ; =UNK_021CB8BC
+ ldr r0, _020AD4FC ; =UNK_021CB8A4
+ mov r3, #0x0
+_020AD4C0:
+ str r3, [r2, r12, lsl #0x2]
+ mov r1, r12, lsl #0x1
+ ldrsh r1, [lr, r1]
+ str r1, [r0, r12, lsl #0x2]
+ add r12, r12, #0x1
+ cmp r12, #0x6
+ blt _020AD4C0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AD4E4: .word UNK_021CB894
+_020AD4E8: .word 0x0000019D
+_020AD4EC: .word UNK_021CB898
+_020AD4F0: .word UNK_021064A8
+_020AD4F4: .word UNK_021CBD14
+_020AD4F8: .word UNK_021CB8BC
+_020AD4FC: .word UNK_021CB8A4
+
+ arm_func_start FUN_020AD500
+FUN_020AD500: ; 0x020AD500
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ ldrsh r2, [r0, #0x0]
+ ldr r6, _020AD5FC ; =0x00000E9F
+ ldr sb, _020AD600 ; =UNK_021CB89C
+ ldr r8, _020AD604 ; =UNK_021CB8A0
+ smulbb r10, r2, r6
+ ldr r3, [r9, #0x0]
+ ldr r2, [r8, #0x0]
+ ldr r7, _020AD608 ; =0x00000D3E
+ add r3, r10, r3
+ mla r5, r2, r7, r3
+ mov r3, r5, asr #0xc
+ mul r4, r3, r3
+ str r5, [r8, #0x0]
+ rsb r2, r10, #0x0
+ mov r12, r1, lsr #0x1
+ str r3, [r8, #0x0]
+ str r2, [r9, #0x0]
+ cmp r12, #0x1
+ mov lr, r4, asr #0x1f
+ mov r5, #0x1
+ bls _020AD5AC
+_020AD55C:
+ mov r2, r5, lsl #0x1
+ ldrsh r10, [r0, r2]
+ ldr r3, [r8, #0x0]
+ add r2, r0, r5, lsl #0x1
+ strh r3, [r2, #-0x2]
+ smulbb r11, r10, r6
+ ldr r2, [r9, #0x0]
+ rsb r10, r11, #0x0
+ add r2, r11, r2
+ mla r2, r3, r7, r2
+ mov r3, r2, asr #0xc
+ mul r11, r3, r3
+ str r2, [r8, #0x0]
+ adds r4, r4, r11
+ str r10, [r9, #0x0]
+ add r5, r5, #0x1
+ adc lr, lr, r11, asr #0x1f
+ str r3, [r8, #0x0]
+ cmp r5, r12
+ blo _020AD55C
+_020AD5AC:
+ bic r1, r1, #0x1
+ add r0, r0, r1
+ ldr r2, _020AD60C ; =0x04000280
+ strh r3, [r0, #-0x2]
+ mov r0, #0x1
+ ldr r1, _020AD610 ; =0x04000290
+ strh r0, [r2, #0x0]
+ str r4, [r1, #0x0]
+ ldr r0, _020AD614 ; =0x04000298
+ str lr, [r1, #0x4]
+ str r12, [r0, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+_020AD5E0:
+ ldrh r0, [r2, #0x0]
+ ands r0, r0, #0x8000
+ bne _020AD5E0
+ ldr r0, _020AD618 ; =0x040002A0
+ ldr r0, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020AD5FC: .word 0x00000E9F
+_020AD600: .word UNK_021CB89C
+_020AD604: .word UNK_021CB8A0
+_020AD608: .word 0x00000D3E
+_020AD60C: .word 0x04000280
+_020AD610: .word 0x04000290
+_020AD614: .word 0x04000298
+_020AD618: .word 0x040002A0
+
+ arm_func_start FUN_020AD61C
+FUN_020AD61C:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ movs lr, r3, lsr #0x1
+ mov r4, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,pc}
+ mov r3, #0x8000
+ ldr ip, _020AD720 ; =0x00007FFF
+ rsb r3, r3, #0x0
+_020AD640:
+ mov r5, r4, lsl #0x1
+ ldrsh r6, [r0, r5]
+ ldrsh r5, [r1, r5]
+ add r6, r6, r5
+ cmp r6, r12
+ movgt r6, r12
+ bgt _020AD664
+ cmp r6, r3
+ movlt r6, r3
+_020AD664:
+ mov r5, r4, lsl #0x1
+ add r7, r4, #0x1
+ strh r6, [r2, r5]
+ mov r5, r7, lsl #0x1
+ ldrsh r6, [r0, r5]
+ ldrsh r5, [r1, r5]
+ add r6, r6, r5
+ cmp r6, r12
+ movgt r6, r12
+ bgt _020AD694
+ cmp r6, r3
+ movlt r6, r3
+_020AD694:
+ mov r5, r7, lsl #0x1
+ add r7, r4, #0x2
+ strh r6, [r2, r5]
+ mov r5, r7, lsl #0x1
+ ldrsh r6, [r0, r5]
+ ldrsh r5, [r1, r5]
+ add r6, r6, r5
+ cmp r6, r12
+ movgt r6, r12
+ bgt _020AD6CC
+ mov r5, #0x8000
+ rsb r5, r5, #0x0
+ cmp r6, r5
+ movlt r6, r3
+_020AD6CC:
+ mov r5, r7, lsl #0x1
+ add r7, r4, #0x3
+ strh r6, [r2, r5]
+ mov r5, r7, lsl #0x1
+ ldrsh r6, [r0, r5]
+ ldrsh r5, [r1, r5]
+ add r6, r6, r5
+ cmp r6, r12
+ movgt r6, r12
+ bgt _020AD704
+ mov r5, #0x8000
+ rsb r5, r5, #0x0
+ cmp r6, r5
+ movlt r6, r3
+_020AD704:
+ mov r5, r7, lsl #0x1
+ add r4, r4, #0x4
+ strh r6, [r2, r5]
+ cmp r4, lr
+ blo _020AD640
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020AD720: .word 0x00007FFF
+
+ arm_func_start FUN_020AD724
+FUN_020AD724:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ movs r6, r1
+ mov r7, r0
+ mov r5, r2
+ mov r4, r3
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,pc}
+ ldr r1, [r6, #0x0]
+ ldr r0, _020AD824 ; =0x5F564354
+ cmp r1, r0
+ addne sp, sp, #0x4
+ movne r0, #0x2
+ ldmneia sp!, {r4-r7,pc}
+ ldr r0, _020AD828 ; =UNK_021CCD20
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x0
+ beq _020AD780
+ ldr r0, _020AD82C ; =UNK_021CCD1C
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020AD78C
+_020AD780:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_020AD78C:
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ str r0, [r4, #0x4]
+ bl OS_GetTick
+ ldrb r3, [r6, #0x4]
+ and r2, r3, #0xf0
+ cmp r2, #0x40
+ bne _020AD7E0
+ ldr r2, _020AD830 ; =UNK_021CCD18
+ mov r3, r0
+ ldr r4, [r2, #0x0]
+ mov r0, r7
+ add r4, r4, #0x1
+ str r4, [r2, #0x0]
+ str r1, [sp, #0x0]
+ mov r1, r6
+ mov r2, r5
+ bl FUN_020AA2A0
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_020AD7E0:
+ cmp r3, #0x0
+ beq _020AD7F0
+ cmp r3, #0xff
+ bne _020AD818
+_020AD7F0:
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ mov r3, r4
+ bl FUN_020AC7FC
+ cmp r0, #0x0
+ movne r0, #0x1
+ add sp, sp, #0x4
+ moveq r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_020AD818:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020AD824: .word 0x5F564354
+_020AD828: .word UNK_021CCD20
+_020AD82C: .word UNK_021CCD1C
+_020AD830: .word UNK_021CCD18
+
+ arm_func_start FUN_020AD834
+FUN_020AD834: ; 0x020AD834
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ add r3, sp, #0x0
+ mov r4, r0
+ bl FUN_020AD724
+ cmp r0, #0x0
+ beq _020AD898
+ cmp r0, #0x1
+ beq _020AD864
+ cmp r0, #0x2
+ beq _020AD88C
+ b _020AD898
+_020AD864:
+ ldr r0, _020AD8A4 ; =UNK_021CCD20
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0x4]
+ ldr r3, [r0, #0x8]
+ ldr r12, [r0, #0x4]
+ mov r0, r4
+ blx r12
+ add sp, sp, #0x8
+ mov r0, #0x1
+ ldmia sp!, {r4,pc}
+_020AD88C:
+ add sp, sp, #0x8
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+_020AD898:
+ mov r0, #0x1
+ add sp, sp, #0x8
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AD8A4: .word UNK_021CCD20
+
+ arm_func_start FUN_020AD8A8
+FUN_020AD8A8: ; 0x020AD8A8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020AD8FC ; =UNK_021CCD1C
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldr r0, _020AD900 ; =UNK_021CCD14
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x1
+ str r1, [r0, #0x0]
+ ands r0, r1, #0xf
+ bne _020AD8E0
+ bl FUN_020AC898
+_020AD8E0:
+ bl FUN_020AA0A4
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ bl FUN_020AA1CC
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AD8FC: .word UNK_021CCD1C
+_020AD900: .word UNK_021CCD14
+
+ arm_func_start FUN_020AD904
+FUN_020AD904: ; 0x020AD904
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FUN_020AAF44
+ bl FUN_020AC964
+ bl FUN_020ACE10
+ ldr r1, _020AD934 ; =UNK_021CCD20
+ mov r2, #0x0
+ ldr r0, _020AD938 ; =UNK_021CCD1C
+ str r2, [r1, #0x10]
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AD934: .word UNK_021CCD20
+_020AD938: .word UNK_021CCD1C
+
+ .extern _SDK_AbiossolibVCT
+
+ arm_func_start FUN_020AD93C
+FUN_020AD93C: ; 0x020AD93C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, _020ADA78 ; =_SDK_AbiossolibVCT
+ bl OSi_ReferSymbol
+ cmp r4, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+ ldr r0, _020ADA7C ; =UNK_021CCD1C
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ movne r0, #0x1
+ ldmneia sp!, {r4,pc}
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x1
+ beq _020AD98C
+ cmp r0, #0x2
+ beq _020AD98C
+ cmp r0, #0x3
+ movne r0, #0x0
+ ldmneia sp!, {r4,pc}
+_020AD98C:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+ ldr r2, [r4, #0x10]
+ cmp r2, #0x0
+ beq _020AD9B4
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ bne _020AD9BC
+_020AD9B4:
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+_020AD9BC:
+ mov r1, r2, lsr #0x1f
+ rsb r0, r1, r2, lsl #0x1b
+ adds r0, r1, r0, ror #0x1b
+ movne r0, #0x0
+ ldmneia sp!, {r4,pc}
+ ldr r0, _020ADA80 ; =UNK_021CCD20
+ mov r1, #0x0
+ mov r2, #0x18
+ bl MI_CpuFill8
+ ldr r2, [r4, #0x18]
+ ldr r1, _020ADA80 ; =UNK_021CCD20
+ mov r0, #0x0
+ str r2, [r1, #0x4]
+ ldr r2, [r4, #0x1c]
+ str r2, [r1, #0x8]
+ ldr r2, [r4, #0x8]
+ str r0, [r1, #0xc]
+ str r2, [r1, #0x10]
+ ldrb r2, [r4, #0xc]
+ cmp r2, #0x20
+ ldmcsia sp!, {r4,pc}
+ strb r2, [r1, #0x0]
+ ldr r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ bl FUN_020ACE30
+ cmp r0, #0x0
+ bne _020ADA34
+ bl FUN_020ACE10
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+_020ADA34:
+ mov r0, r4
+ bl FUN_020AC97C
+ cmp r0, #0x0
+ bne _020ADA50
+ bl FUN_020ACE10
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+_020ADA50:
+ bl FUN_020AAF58
+ cmp r0, #0x0
+ ldrne r1, _020ADA7C ; =UNK_021CCD1C
+ movne r0, #0x1
+ strne r0, [r1, #0x0]
+ ldmneia sp!, {r4,pc}
+ bl FUN_020AC964
+ bl FUN_020ACE10
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020ADA78: .word _SDK_AbiossolibVCT
+_020ADA7C: .word UNK_021CCD1C
+_020ADA80: .word UNK_021CCD20
+
+ ; unknown
+
+ arm_func_start FUN_020ADA84
+FUN_020ADA84: ; 0x020ADA84
+ cmp r1, #0x0
+ ldreq r0, [r0, #0x4]
+ ldrneh r0, [r0, #0xa]
+ ldrne r0, [r1, r0]
+ bx lr
+
+ arm_func_start FUN_020ADA98
+FUN_020ADA98: ; 0x020ADA98
+ cmp r1, #0x0
+ ldreq r0, [r0, #0x0]
+ ldrneh r0, [r0, #0xa]
+ addne r0, r1, r0
+ ldrne r0, [r0, #0x4]
+ bx lr
+
+ arm_func_start FUN_020ADAB0
+FUN_020ADAB0: ; 0x020ADAB0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrh r12, [r0, #0xa]
+ ldr r3, [r1, r12]
+ add lr, r1, r12
+ cmp r3, #0x0
+ ldreq r1, [lr, #0x4]
+ streq r1, [r0, #0x0]
+ ldrne r2, [lr, #0x4]
+ addne r1, r3, r12
+ strne r2, [r1, #0x4]
+ ldr r3, [lr, #0x4]
+ cmp r3, #0x0
+ ldreq r1, [lr, #0x0]
+ streq r1, [r0, #0x4]
+ ldrneh r1, [r0, #0xa]
+ ldrne r2, [lr, #0x0]
+ strne r2, [r3, r1]
+ mov r1, #0x0
+ str r1, [lr, #0x0]
+ str r1, [lr, #0x4]
+ ldrh r1, [r0, #0x8]
+ sub r1, r1, #0x1
+ strh r1, [r0, #0x8]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020ADB18
+FUN_020ADB18: ; 0x020ADB18
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r1, #0x0
+ bne _020ADB38
+ mov r1, r2
+ bl FUN_020ADBE8
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020ADB38:
+ ldr r3, [r0, #0x0]
+ cmp r1, r3
+ bne _020ADB54
+ mov r1, r2
+ bl FUN_020ADB8C
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020ADB54:
+ ldrh lr, [r0, #0xa]
+ ldr r3, [r1, lr]
+ add r12, r2, lr
+ str r3, [r2, lr]
+ str r1, [r12, #0x4]
+ add r3, r3, lr
+ str r2, [r3, #0x4]
+ ldrh r3, [r0, #0xa]
+ str r2, [r1, r3]
+ ldrh r1, [r0, #0x8]
+ add r1, r1, #0x1
+ strh r1, [r0, #0x8]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020ADB8C
+FUN_020ADB8C: ; 0x020ADB8C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ bne _020ADBAC
+ bl FUN_020ADC48
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020ADBAC:
+ ldrh r3, [r0, #0xa]
+ mov r2, #0x0
+ str r2, [r1, r3]
+ ldr r2, [r0, #0x0]
+ add r3, r1, r3
+ str r2, [r3, #0x4]
+ ldrh r2, [r0, #0xa]
+ ldr r3, [r0, #0x0]
+ str r1, [r3, r2]
+ str r1, [r0, #0x0]
+ ldrh r1, [r0, #0x8]
+ add r1, r1, #0x1
+ strh r1, [r0, #0x8]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020ADBE8
+FUN_020ADBE8: ; 0x020ADBE8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ bne _020ADC08
+ bl FUN_020ADC48
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020ADC08:
+ ldrh r12, [r0, #0xa]
+ ldr r3, [r0, #0x4]
+ mov r2, #0x0
+ str r3, [r1, r12]
+ add r3, r1, r12
+ str r2, [r3, #0x4]
+ ldrh r2, [r0, #0xa]
+ ldr r3, [r0, #0x4]
+ add r2, r3, r2
+ str r1, [r2, #0x4]
+ str r1, [r0, #0x4]
+ ldrh r1, [r0, #0x8]
+ add r1, r1, #0x1
+ strh r1, [r0, #0x8]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020ADC48
+FUN_020ADC48: ; 0x020ADC48
+ ldrh r3, [r0, #0xa]
+ mov r2, #0x0
+ add r12, r1, r3
+ str r2, [r12, #0x4]
+ str r2, [r1, r3]
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ ldrh r1, [r0, #0x8]
+ add r1, r1, #0x1
+ strh r1, [r0, #0x8]
+ bx lr
+
+ arm_func_start FUN_020ADC74
+FUN_020ADC74: ; 0x020ADC74
+ mov r2, #0x0
+ str r2, [r0, #0x0]
+ str r2, [r0, #0x4]
+ strh r2, [r0, #0x8]
+ strh r1, [r0, #0xa]
+ bx lr
+
+ arm_func_start FUN_020ADC8C
+FUN_020ADC8C: ; 0x020ADC8C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020ADD30
+ mov r1, r4
+ bl FUN_020ADAB0
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020ADCA4
+FUN_020ADCA4:
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ str r1, [r4, #0x0]
+ str r2, [r4, #0x18]
+ str r3, [r4, #0x1c]
+ mov r0, #0x0
+ str r0, [r4, #0x20]
+ ldr r1, [r4, #0x20]
+ ldrh r0, [sp, #0x8]
+ bic r1, r1, #0xff
+ str r1, [r4, #0x20]
+ ldr r1, [r4, #0x20]
+ and r0, r0, #0xff
+ orr r2, r1, r0
+ add r0, r4, #0xc
+ mov r1, #0x4
+ str r2, [r4, #0x20]
+ bl FUN_020ADC74
+ ldr r0, _020ADD28 ; =UNK_021CCD38
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020ADD14
+ ldr r0, _020ADD2C ; =UNK_021CCD3C
+ mov r1, #0x4
+ bl FUN_020ADC74
+ ldr r0, _020ADD28 ; =UNK_021CCD38
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+_020ADD14:
+ mov r0, r4
+ bl FUN_020ADD30
+ mov r1, r4
+ bl FUN_020ADBE8
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020ADD28: .word UNK_021CCD38
+_020ADD2C: .word UNK_021CCD3C
+
+ arm_func_start FUN_020ADD30
+FUN_020ADD30: ; 0x020ADD30
+ stmdb sp!, {r4,lr}
+ ldr r4, _020ADD54 ; =UNK_021CCD3C
+ mov r1, r0
+ mov r0, r4
+ bl FUN_020ADD58
+ cmp r0, #0x0
+ addne r4, r0, #0xc
+ mov r0, r4
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020ADD54: .word UNK_021CCD3C
+
+ arm_func_start FUN_020ADD58
+FUN_020ADD58:
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r1
+ mov r1, #0x0
+ mov r6, r0
+ bl FUN_020ADA98
+ movs r4, r0
+ beq _020ADDB8
+_020ADD74:
+ ldr r0, [r4, #0x18]
+ cmp r0, r5
+ bhi _020ADDA4
+ ldr r0, [r4, #0x1c]
+ cmp r5, r0
+ bhs _020ADDA4
+ mov r1, r5
+ add r0, r4, #0xc
+ bl FUN_020ADD58
+ cmp r0, #0x0
+ moveq r0, r4
+ ldmia sp!, {r4-r6,pc}
+_020ADDA4:
+ mov r0, r6
+ mov r1, r4
+ bl FUN_020ADA98
+ movs r4, r0
+ bne _020ADD74
+_020ADDB8:
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020ADDC0
+FUN_020ADDC0: ; 0x020ADDC0
+ ldr r0, [r0, #-0xc]
+ bx lr
+
+ arm_func_start FUN_020ADDC8
+FUN_020ADDC8: ; 0x020ADDC8
+ ldr r2, [r0, #0x24]
+ mov r0, #0x0
+ cmp r2, #0x0
+ bxeq lr
+_020ADDD8:
+ ldr r1, [r2, #0x4]
+ ldr r2, [r2, #0xc]
+ add r0, r0, r1
+ cmp r2, #0x0
+ bne _020ADDD8
+ bx lr
+
+ arm_func_start FUN_020ADDF0
+FUN_020ADDF0: ; 0x020ADDF0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0xc
+ sub r4, r1, #0x10
+ add r5, r0, #0x24
+ add r0, sp, #0x0
+ mov r1, r4
+ bl FUN_020AE528
+ mov r1, r4
+ add r0, r5, #0x8
+ bl FUN_020AE500
+ add r1, sp, #0x0
+ mov r0, r5
+ bl FUN_020AE02C
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020ADE2C
+FUN_020ADE2C: ; 0x020ADE2C
+ stmdb sp!, {r4-r10,lr}
+ sub sp, sp, #0x10
+ mov r4, r1
+ mov r10, r2
+ sub r6, r4, #0x10
+ add r1, r10, #0x3
+ mov r5, r0
+ ldr r8, [r6, #0x4]
+ bic r10, r1, #0x3
+ cmp r10, r8
+ add r7, r5, #0x24
+ addeq sp, sp, #0x10
+ moveq r0, r10
+ ldmeqia sp!, {r4-r10,pc}
+ cmp r10, r8
+ bls _020ADF60
+ ldr r9, [r7, #0x0]
+ add r0, r6, #0x10
+ cmp r9, #0x0
+ add r0, r8, r0
+ beq _020ADE94
+_020ADE80:
+ cmp r9, r0
+ beq _020ADE94
+ ldr r9, [r9, #0xc]
+ cmp r9, #0x0
+ bne _020ADE80
+_020ADE94:
+ cmp r9, #0x0
+ beq _020ADEB0
+ ldr r0, [r9, #0x4]
+ add r1, r8, #0x10
+ add r0, r1, r0
+ cmp r10, r0
+ bls _020ADEBC
+_020ADEB0:
+ add sp, sp, #0x10
+ mov r0, #0x0
+ ldmia sp!, {r4-r10,pc}
+_020ADEBC:
+ add r0, sp, #0x0
+ mov r1, r9
+ bl FUN_020AE528
+ mov r0, r7
+ mov r1, r9
+ bl FUN_020AE500
+ ldr r2, [sp, #0x4]
+ add r3, r10, r4
+ ldr r9, [sp, #0x0]
+ sub r1, r2, r3
+ str r3, [sp, #0x0]
+ cmp r1, #0x10
+ strcc r2, [sp, #0x0]
+ mov r8, r0
+ ldr r0, [sp, #0x0]
+ sub r0, r0, r4
+ str r0, [r6, #0x4]
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ sub r0, r1, r0
+ cmp r0, #0x10
+ blo _020ADF30
+ ldr r1, _020ADF9C ; =0x00004652
+ add r0, sp, #0x0
+ bl FUN_020AE4A0
+ mov r1, r0
+ mov r0, r7
+ mov r2, r8
+ bl FUN_020AE4D0
+_020ADF30:
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0x0]
+ and r0, r0, #0xff
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ sub r2, r1, r9
+ ands r0, r0, #0x1
+ beq _020ADF90
+ mov r1, r9
+ mov r0, #0x0
+ bl MIi_CpuClear32
+ b _020ADF90
+_020ADF60:
+ add r0, r10, r4
+ str r0, [sp, #0x8]
+ ldr r1, [r6, #0x4]
+ add r0, r6, #0x10
+ add r0, r1, r0
+ str r0, [sp, #0xc]
+ add r1, sp, #0x8
+ mov r0, r7
+ str r10, [r6, #0x4]
+ bl FUN_020AE02C
+ cmp r0, #0x0
+ streq r8, [r6, #0x4]
+_020ADF90:
+ ldr r0, [r6, #0x4]
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020ADF9C: .word 0x00004652
+
+ arm_func_start tempName_NNS_FndAllocFromExpHeapEx
+tempName_NNS_FndAllocFromExpHeapEx: ; 0x020ADFA0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r1, #0x0
+ moveq r1, #0x1
+ add r1, r1, #0x3
+ cmp r2, #0x0
+ bic r1, r1, #0x3
+ blt _020ADFCC
+ bl FUN_020AE1D8
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020ADFCC:
+ rsb r2, r2, #0x0
+ bl FUN_020AE11C
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start thunk_FUN_020adc8c
+thunk_FUN_020adc8c: ; 0x020ADFDC
+ ldr ip, _020ADFE4 ; =FUN_020ADC8C
+ bx r12
+ .balign 4
+_020ADFE4: .word FUN_020ADC8C
+
+ arm_func_start tempName_NNS_FndCreateExpHeapEx
+tempName_NNS_FndCreateExpHeapEx: ; 0x020ADFE8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ add r1, r1, r0
+ add r0, r0, #0x3
+ bic r1, r1, #0x3
+ bic r0, r0, #0x3
+ cmp r0, r1
+ bhi _020AE014
+ sub r3, r1, r0
+ cmp r3, #0x4c
+ bhs _020AE020
+_020AE014:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {pc}
+_020AE020:
+ bl FUN_020AE420
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020AE02C
+FUN_020AE02C:
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ mov r5, r1
+ ldr r2, [r5, #0x0]
+ ldr r1, [r5, #0x4]
+ mov r6, r0
+ str r2, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldr r1, [r6, #0x0]
+ mov r4, #0x0
+ cmp r1, #0x0
+ beq _020AE0A0
+ ldr r0, [r5, #0x0]
+_020AE060:
+ cmp r1, r0
+ movcc r4, r1
+ blo _020AE094
+ ldr r0, [r5, #0x4]
+ cmp r1, r0
+ bne _020AE0A0
+ ldr r2, [r1, #0x4]
+ add r0, r1, #0x10
+ add r2, r2, r0
+ mov r0, r6
+ str r2, [sp, #0x4]
+ bl FUN_020AE500
+ b _020AE0A0
+_020AE094:
+ ldr r1, [r1, #0xc]
+ cmp r1, #0x0
+ bne _020AE060
+_020AE0A0:
+ cmp r4, #0x0
+ beq _020AE0D4
+ ldr r2, [r4, #0x4]
+ add r1, r4, #0x10
+ ldr r0, [r5, #0x0]
+ add r1, r2, r1
+ cmp r1, r0
+ bne _020AE0D4
+ mov r0, r6
+ mov r1, r4
+ str r4, [sp, #0x0]
+ bl FUN_020AE500
+ mov r4, r0
+_020AE0D4:
+ ldr r1, [sp, #0x4]
+ ldr r0, [sp, #0x0]
+ sub r0, r1, r0
+ cmp r0, #0x10
+ addcc sp, sp, #0x8
+ movcc r0, #0x0
+ ldmccia sp!, {r4-r6,pc}
+ ldr r1, _020AE118 ; =0x00004652
+ add r0, sp, #0x0
+ bl FUN_020AE4A0
+ mov r1, r0
+ mov r0, r6
+ mov r2, r4
+ bl FUN_020AE4D0
+ mov r0, #0x1
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020AE118: .word 0x00004652
+
+ arm_func_start FUN_020AE11C
+FUN_020AE11C: ; 0x020AE11C
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ add r0, r0, #0x24
+ ldrh r4, [r0, #0x12]
+ mov r3, r1
+ mvn lr, #0x0
+ and r1, r4, #0x1
+ mov r1, r1, lsl #0x10
+ movs r1, r1, lsr #0x10
+ moveq r5, #0x1
+ mov r1, #0x0
+ ldr r4, [r0, #0x4]
+ movne r5, #0x0
+ mov r12, r1
+ cmp r4, #0x0
+ beq _020AE1B0
+ sub r2, r2, #0x1
+ mvn r2, r2
+_020AE164:
+ ldr r8, [r4, #0x4]
+ add r9, r4, #0x10
+ add r6, r8, r9
+ sub r6, r6, r3
+ and r7, r2, r6
+ subs r6, r7, r9
+ bmi _020AE1A4
+ cmp lr, r8
+ bls _020AE1A4
+ mov r1, r4
+ mov lr, r8
+ mov r12, r7
+ cmp r5, #0x0
+ bne _020AE1B0
+ cmp r8, r3
+ beq _020AE1B0
+_020AE1A4:
+ ldr r4, [r4, #0x8]
+ cmp r4, #0x0
+ bne _020AE164
+_020AE1B0:
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r9,pc}
+ mov r4, #0x1
+ mov r2, r12
+ str r4, [sp, #0x0]
+ bl FUN_020AE298
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+
+ arm_func_start FUN_020AE1D8
+FUN_020AE1D8: ; 0x020AE1D8
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ add r0, r0, #0x24
+ ldrh r4, [r0, #0x12]
+ mov r3, r1
+ ldr r5, [r0, #0x0]
+ and r1, r4, #0x1
+ mov r1, r1, lsl #0x10
+ movs r1, r1, lsr #0x10
+ moveq r6, #0x1
+ mov r1, #0x0
+ movne r6, #0x0
+ mov lr, r1
+ cmp r5, #0x0
+ mvn r4, #0x0
+ beq _020AE270
+ sub r12, r2, #0x1
+ mvn r2, r12
+_020AE220:
+ add r8, r5, #0x10
+ add r7, r12, r8
+ and r9, r2, r7
+ sub r7, r9, r8
+ ldr r8, [r5, #0x4]
+ add r7, r3, r7
+ cmp r8, r7
+ blo _020AE264
+ cmp r4, r8
+ bls _020AE264
+ mov r1, r5
+ mov r4, r8
+ mov lr, r9
+ cmp r6, #0x0
+ bne _020AE270
+ cmp r8, r3
+ beq _020AE270
+_020AE264:
+ ldr r5, [r5, #0xc]
+ cmp r5, #0x0
+ bne _020AE220
+_020AE270:
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r9,pc}
+ mov r4, #0x0
+ mov r2, lr
+ str r4, [sp, #0x0]
+ bl FUN_020AE298
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+
+ arm_func_start FUN_020AE298
+FUN_020AE298: ; 0x020AE298
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x18
+ mov r7, r0
+ add r0, sp, #0x0
+ mov r8, r1
+ mov r6, r2
+ mov r5, r3
+ bl FUN_020AE528
+ ldr r3, [sp, #0x4]
+ sub r4, r6, #0x10
+ add r2, r5, r6
+ mov r0, r7
+ mov r1, r8
+ str r4, [sp, #0x4]
+ str r3, [sp, #0xc]
+ str r2, [sp, #0x8]
+ bl FUN_020AE500
+ ldr r2, [sp, #0x0]
+ ldr r1, [sp, #0x4]
+ mov r5, r0
+ sub r0, r1, r2
+ cmp r0, #0x10
+ strcc r2, [sp, #0x4]
+ blo _020AE318
+ ldr r1, _020AE418 ; =0x00004652
+ add r0, sp, #0x0
+ bl FUN_020AE4A0
+ mov r1, r0
+ mov r0, r7
+ mov r2, r5
+ bl FUN_020AE4D0
+ mov r5, r0
+_020AE318:
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #0x8]
+ sub r0, r1, r0
+ cmp r0, #0x10
+ strcc r1, [sp, #0x8]
+ blo _020AE34C
+ ldr r1, _020AE418 ; =0x00004652
+ add r0, sp, #0x8
+ bl FUN_020AE4A0
+ mov r1, r0
+ mov r0, r7
+ mov r2, r5
+ bl FUN_020AE4D0
+_020AE34C:
+ ldr r0, [r7, #-0x4]
+ ldr r1, [sp, #0x4]
+ and r0, r0, #0xff
+ mov r0, r0, lsl #0x10
+ ldr r2, [sp, #0x8]
+ mov r0, r0, lsr #0x10
+ sub r2, r2, r1
+ ands r0, r0, #0x1
+ beq _020AE378
+ mov r0, #0x0
+ bl MIi_CpuClear32
+_020AE378:
+ ldr r2, [sp, #0x8]
+ ldr r1, _020AE41C ; =0x00005544
+ add r0, sp, #0x10
+ str r4, [sp, #0x10]
+ str r2, [sp, #0x14]
+ bl FUN_020AE4A0
+ mov r1, r0
+ ldrh r3, [r1, #0x2]
+ ldrh r2, [sp, #0x30]
+ add r0, r7, #0x8
+ bic r3, r3, #0x8000
+ strh r3, [r1, #0x2]
+ ldrh r3, [r1, #0x2]
+ and r2, r2, #0x1
+ orr r2, r3, r2, lsl #0xf
+ strh r2, [r1, #0x2]
+ ldrh r2, [r1, #0x2]
+ ldr r3, [sp, #0x4]
+ bic r2, r2, #0x7f00
+ strh r2, [r1, #0x2]
+ sub r2, r1, r3
+ mov r2, r2, lsl #0x10
+ mov r2, r2, lsr #0x10
+ ldrh r3, [r1, #0x2]
+ and r2, r2, #0x7f
+ orr r2, r3, r2, lsl #0x8
+ strh r2, [r1, #0x2]
+ ldrh r2, [r1, #0x2]
+ ldrh r3, [r7, #0x10]
+ bic r2, r2, #0xff
+ strh r2, [r1, #0x2]
+ ldrh r2, [r1, #0x2]
+ and r3, r3, #0xff
+ orr r2, r2, r3
+ strh r2, [r1, #0x2]
+ ldr r2, [r7, #0xc]
+ bl FUN_020AE4D0
+ mov r0, r6
+ add sp, sp, #0x18
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020AE418: .word 0x00004652
+_020AE41C: .word 0x00005544
+
+ arm_func_start FUN_020AE420
+FUN_020AE420: ; 0x020AE420
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0xc
+ mov r5, r0
+ mov r3, r1
+ add r4, r5, #0x24
+ str r2, [sp, #0x0]
+ ldr r1, _020AE498 ; =0x45585048
+ add r2, r4, #0x14
+ bl FUN_020ADCA4
+ mov r0, #0x0
+ strh r0, [r4, #0x10]
+ strh r0, [r4, #0x12]
+ ldrh r2, [r4, #0x12]
+ ldr r1, _020AE49C ; =0x00004652
+ add r0, sp, #0x4
+ bic r2, r2, #0x1
+ strh r2, [r4, #0x12]
+ ldr r2, [r5, #0x18]
+ str r2, [sp, #0x4]
+ ldr r2, [r5, #0x1c]
+ str r2, [sp, #0x8]
+ bl FUN_020AE4A0
+ str r0, [r5, #0x24]
+ str r0, [r4, #0x4]
+ mov r1, #0x0
+ str r1, [r4, #0x8]
+ mov r0, r5
+ str r1, [r4, #0xc]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AE498: .word 0x45585048
+_020AE49C: .word 0x00004652
+
+ arm_func_start FUN_020AE4A0
+FUN_020AE4A0: ; 0x020AE4A0
+ ldr r3, [r0, #0x0]
+ mov r2, #0x0
+ strh r1, [r3, #0x0]
+ strh r2, [r3, #0x2]
+ ldr r1, [r0, #0x4]
+ add r0, r3, #0x10
+ sub r0, r1, r0
+ str r0, [r3, #0x4]
+ str r2, [r3, #0x8]
+ mov r0, r3
+ str r2, [r3, #0xc]
+ bx lr
+
+ arm_func_start FUN_020AE4D0
+FUN_020AE4D0: ; 0x020AE4D0
+ str r2, [r1, #0x8]
+ cmp r2, #0x0
+ ldrne r3, [r2, #0xc]
+ strne r1, [r2, #0xc]
+ ldreq r3, [r0, #0x0]
+ streq r1, [r0, #0x0]
+ str r3, [r1, #0xc]
+ cmp r3, #0x0
+ strne r1, [r3, #0x8]
+ streq r1, [r0, #0x4]
+ mov r0, r1
+ bx lr
+
+ arm_func_start FUN_020AE500
+FUN_020AE500: ; 0x020AE500
+ ldr r2, [r1, #0x8]
+ ldr r1, [r1, #0xc]
+ cmp r2, #0x0
+ strne r1, [r2, #0xc]
+ streq r1, [r0, #0x0]
+ cmp r1, #0x0
+ strne r2, [r1, #0x8]
+ streq r2, [r0, #0x4]
+ mov r0, r2
+ bx lr
+
+ arm_func_start FUN_020AE528
+FUN_020AE528: ; 0x020AE528
+ ldrh r2, [r1, #0x2]
+ add r3, r1, #0x10
+ mov r2, r2, asr #0x8
+ and r2, r2, #0x7f
+ mov r2, r2, lsl #0x10
+ sub r2, r1, r2, lsr #0x10
+ str r2, [r0, #0x0]
+ ldr r1, [r1, #0x4]
+ add r1, r1, r3
+ str r1, [r0, #0x4]
+ bx lr
+
+ arm_func_start FUN_020AE554
+FUN_020AE554: ; 0x020AE554
+ add r2, r0, #0x24
+ cmp r1, #0x0
+ ldr r3, [r2, #0x8]
+ beq _020AE584
+ cmp r3, #0x0
+ beq _020AE584
+_020AE56C:
+ ldr r0, [r3, #0x0]
+ cmp r0, r1
+ beq _020AE584
+ ldr r3, [r3, #0xc]
+ cmp r3, #0x0
+ bne _020AE56C
+_020AE584:
+ cmp r3, #0x0
+ moveq r0, #0x0
+ bxeq lr
+ ldr r1, [r3, #0x4]
+ mov r0, #0x1
+ str r1, [r2, #0x0]
+ ldr r1, [r3, #0x8]
+ str r1, [r2, #0x4]
+ ldr r1, [r3, #0xc]
+ str r1, [r2, #0x8]
+ bx lr
+
+ arm_func_start FUN_020AE5B0
+FUN_020AE5B0: ; 0x020AE5B0
+ stmdb sp!, {r4-r6,lr}
+ add r4, r0, #0x24
+ ldr r5, [r0, #0x24]
+ mov r6, r1
+ mov r0, r4
+ mov r1, #0x10
+ mov r2, #0x4
+ bl FUN_020AE77C
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ str r6, [r0, #0x0]
+ str r5, [r0, #0x4]
+ ldr r1, [r4, #0x4]
+ str r1, [r0, #0x8]
+ ldr r1, [r4, #0x8]
+ str r1, [r0, #0xc]
+ str r0, [r4, #0x8]
+ mov r0, #0x1
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020AE600
+FUN_020AE600: ; 0x020AE600
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ mov r5, r0
+ ands r1, r4, #0x1
+ beq _020AE61C
+ bl FUN_020AE6F8
+_020AE61C:
+ ands r0, r4, #0x2
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+ mov r0, r5
+ bl FUN_020AE6C8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020AE638
+FUN_020AE638: ; 0x020AE638
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r1, #0x0
+ moveq r1, #0x1
+ add r1, r1, #0x3
+ add r0, r0, #0x24
+ cmp r2, #0x0
+ bic r1, r1, #0x3
+ blt _020AE668
+ bl FUN_020AE77C
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020AE668:
+ rsb r2, r2, #0x0
+ bl FUN_020AE710
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start thunk_FUN_020adc8c_2
+thunk_FUN_020adc8c_2: ; 0x020AE678
+ ldr ip, _020AE680 ; =FUN_020ADC8C
+ bx r12
+ .balign 4
+_020AE680: .word FUN_020ADC8C
+
+ arm_func_start FUN_020AE684
+FUN_020AE684: ; 0x020AE684
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ add r1, r1, r0
+ add r0, r0, #0x3
+ bic r1, r1, #0x3
+ bic r0, r0, #0x3
+ cmp r0, r1
+ bhi _020AE6B0
+ sub r3, r1, r0
+ cmp r3, #0x30
+ bhs _020AE6BC
+_020AE6B0:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {pc}
+_020AE6BC:
+ bl FUN_020AE7E0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020AE6C8
+FUN_020AE6C8: ; 0x020AE6C8
+ add r2, r0, #0x24
+ ldr r3, [r2, #0x8]
+ cmp r3, #0x0
+ beq _020AE6EC
+_020AE6D8:
+ ldr r1, [r0, #0x1c]
+ str r1, [r3, #0x8]
+ ldr r3, [r3, #0xc]
+ cmp r3, #0x0
+ bne _020AE6D8
+_020AE6EC:
+ ldr r0, [r0, #0x1c]
+ str r0, [r2, #0x4]
+ bx lr
+
+ arm_func_start FUN_020AE6F8
+FUN_020AE6F8: ; 0x020AE6F8
+ ldr r1, [r0, #0x18]
+ add r2, r0, #0x24
+ str r1, [r0, #0x24]
+ mov r0, #0x0
+ str r0, [r2, #0x8]
+ bx lr
+
+ arm_func_start FUN_020AE710
+FUN_020AE710: ; 0x020AE710
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r3, [r5, #0x4]
+ sub r0, r2, #0x1
+ mvn r2, r0
+ sub r1, r3, r1
+ ldr r0, [r5, #0x0]
+ and r4, r2, r1
+ cmp r4, r0
+ addcc sp, sp, #0x4
+ movcc r0, #0x0
+ ldmccia sp!, {r4-r5,pc}
+ ldr r0, [r5, #-0x4]
+ sub r2, r3, r4
+ and r0, r0, #0xff
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ ands r0, r0, #0x1
+ beq _020AE76C
+ mov r1, r4
+ mov r0, #0x0
+ bl MIi_CpuClear32
+_020AE76C:
+ mov r0, r4
+ str r4, [r5, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020AE77C
+FUN_020AE77C:
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldr r0, [r6, #0x0]
+ sub r2, r2, #0x1
+ mvn r3, r2
+ add r2, r2, r0
+ and r5, r3, r2
+ ldr r2, [r6, #0x4]
+ add r4, r1, r5
+ cmp r4, r2
+ movhi r0, #0x0
+ ldmhiia sp!, {r4-r6,pc}
+ ldr r1, [r6, #-0x4]
+ sub r2, r4, r0
+ and r1, r1, #0xff
+ mov r1, r1, lsl #0x10
+ mov r1, r1, lsr #0x10
+ ands r1, r1, #0x1
+ beq _020AE7D4
+ mov r1, r0
+ mov r0, #0x0
+ bl MIi_CpuClear32
+_020AE7D4:
+ mov r0, r5
+ str r4, [r6, #0x0]
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020AE7E0
+FUN_020AE7E0: ; 0x020AE7E0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r3, r1
+ add r4, r5, #0x24
+ str r2, [sp, #0x0]
+ ldr r1, _020AE828 ; =0x46524D48
+ add r2, r4, #0xc
+ bl FUN_020ADCA4
+ ldr r0, [r5, #0x18]
+ mov r1, #0x0
+ str r0, [r5, #0x24]
+ ldr r2, [r5, #0x1c]
+ mov r0, r5
+ str r2, [r4, #0x4]
+ str r1, [r4, #0x8]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AE828: .word 0x46524D48
+
+ arm_func_start FUN_020AE82C
+FUN_020AE82C: ; 0x020AE82C
+ ldr ip, _020AE848 ; =UNK_020FF7CC
+ mov r3, #0x0
+ str r12, [r0, #0x0]
+ str r1, [r0, #0x4]
+ str r2, [r0, #0x8]
+ str r3, [r0, #0xc]
+ bx lr
+ .balign 4
+_020AE848: .word UNK_020FF7CC
+
+ arm_func_start FUN_020AE84C
+FUN_020AE84C: ; 0x020AE84C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, [r0, #0x0]
+ ldr r2, [r2, #0x4]
+ blx r2
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020AE868
+FUN_020AE868: ; 0x020AE868
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, [r0, #0x0]
+ ldr r2, [r2, #0x0]
+ blx r2
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020AE884
+FUN_020AE884: ; 0x020AE884
+ ldr ip, _020AE890 ; =FUN_020ADDF0
+ ldr r0, [r0, #0x4]
+ bx r12
+ .balign 4
+_020AE890: .word FUN_020ADDF0
+
+ arm_func_start FUN_020AE894
+FUN_020AE894: ; 0x020AE894
+ ldr ip, _020AE8A8 ; =tempName_NNS_FndAllocFromExpHeapEx
+ mov r2, r0
+ ldr r0, [r2, #0x4]
+ ldr r2, [r2, #0x8]
+ bx r12
+ .balign 4
+_020AE8A8: .word tempName_NNS_FndAllocFromExpHeapEx
+
+ arm_func_start FUN_020AE8AC
+FUN_020AE8AC: ; 0x020AE8AC
+ mvn r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020AE8B4
+FUN_020AE8B4: ; 0x020AE8B4
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020AE8BC
+FUN_020AE8BC: ; 0x020AE8BC
+ mvn r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020AE8C4
+FUN_020AE8C4: ; 0x020AE8C4
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020AE8CC
+FUN_020AE8CC: ; 0x020AE8CC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov lr, #0x0
+ ldr r3, _020AE914 ; =UNK_021064E4
+ mov r12, lr
+ mov r2, #0x1
+_020AE8E4:
+ ldr r1, [r0, r12, lsl #0x2]
+ add lr, lr, #0x1
+ str r1, [r3, #0x0]
+ ldr r1, [r0, r2, lsl #0x2]
+ cmp lr, #0x5
+ str r1, [r3, #0x4]
+ add r12, r12, #0x2
+ add r3, r3, #0x18
+ add r2, r2, #0x2
+ blt _020AE8E4
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AE914: .word UNK_021064E4
+
+ arm_func_start FUN_020AE918
+FUN_020AE918: ; 0x020AE918
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov lr, #0x0
+ ldr ip, _020AE960 ; =UNK_021064E4
+ mov r3, lr
+ mov r2, #0x1
+_020AE930:
+ ldr r1, [r12, #0x0]
+ add lr, lr, #0x1
+ str r1, [r0, r3, lsl #0x2]
+ ldr r1, [r12, #0x4]
+ cmp lr, #0x5
+ str r1, [r0, r2, lsl #0x2]
+ add r12, r12, #0x18
+ add r3, r3, #0x2
+ add r2, r2, #0x2
+ blt _020AE930
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AE960: .word UNK_021064E4
+
+ arm_func_start FUN_020AE964
+FUN_020AE964: ; 0x020AE964
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020AE96C
+FUN_020AE96C: ; 0x020AE96C
+ stmdb sp!, {r4-r10,lr}
+ cmp r0, #0x0
+ moveq r7, #0x10
+ addne r0, r0, #0xf
+ bicne r7, r0, #0xf
+ ldr r0, _020AEADC ; =0x0007FFF0
+ cmp r7, r0
+ movcs r0, #0x0
+ ldmcsia sp!, {r4-r10,pc}
+ cmp r1, #0x0
+ beq _020AEA5C
+ mov lr, r7, lsr #0x1
+ mov r6, #0x0
+ ldr r2, _020AEAE0 ; =UNK_02106514
+ ldr r3, _020AEAE4 ; =UNK_021064FC
+ ldr ip, _020AEAE8 ; =UNK_021064C8
+ mov r0, r6
+_020AE9B0:
+ ldr r5, [r12, r6, lsl #0x2]
+ ldr r4, [r5, #0x8]
+ cmp r4, #0x0
+ beq _020AEA48
+ ldr r9, [r5, #0x4]
+ ldr r4, [r5, #0x0]
+ sub r4, r9, r4
+ cmp r4, r7
+ blo _020AEA48
+ ldrh r4, [r5, #0x10]
+ cmp r4, #0x0
+ beq _020AE9EC
+ cmp r4, #0x3
+ beq _020AE9F4
+ b _020AE9FC
+_020AE9EC:
+ mov r4, r3
+ b _020AEA00
+_020AE9F4:
+ mov r4, r2
+ b _020AEA00
+_020AE9FC:
+ mov r4, r0
+_020AEA00:
+ ldr r9, [r4, #0x8]
+ cmp r9, #0x0
+ beq _020AEA48
+ ldr r10, [r4, #0x4]
+ ldr r9, [r4, #0x0]
+ sub r9, r10, r9
+ cmp r9, lr
+ blo _020AEA48
+ ldr r3, [r5, #0x0]
+ mov r0, #0x1
+ add r2, r3, r7
+ str r2, [r5, #0x0]
+ ldr r2, [r4, #0x0]
+ add r2, r2, lr
+ str r2, [r4, #0x0]
+ ldr r2, [r5, #0x14]
+ add r8, r3, r2
+ b _020AEAB8
+_020AEA48:
+ add r6, r6, #0x1
+ cmp r6, #0x2
+ blt _020AE9B0
+ mov r0, #0x0
+ b _020AEAB8
+_020AEA5C:
+ ldr r3, _020AEAEC ; =UNK_021064D0
+ mov r5, #0x0
+_020AEA64:
+ ldr r4, [r3, r5, lsl #0x2]
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ beq _020AEAA8
+ ldr r2, [r4, #0x4]
+ ldr r0, [r4, #0x0]
+ sub r0, r2, r0
+ cmp r0, r7
+ blo _020AEAA8
+ ldr r2, [r4, #0x4]
+ mov r0, #0x1
+ sub r2, r2, r7
+ str r2, [r4, #0x4]
+ ldr r3, [r4, #0x4]
+ ldr r2, [r4, #0x14]
+ add r8, r3, r2
+ b _020AEAB8
+_020AEAA8:
+ add r5, r5, #0x1
+ cmp r5, #0x5
+ blt _020AEA64
+ mov r0, #0x0
+_020AEAB8:
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r10,pc}
+ ldr r0, _020AEAF0 ; =0x0000FFFF
+ mov r2, r7, lsr #0x4
+ and r0, r0, r8, lsr #0x3
+ orr r0, r0, r2, lsl #0x10
+ orr r0, r0, r1, lsl #0x1f
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020AEADC: .word 0x0007FFF0
+_020AEAE0: .word UNK_02106514
+_020AEAE4: .word UNK_021064FC
+_020AEAE8: .word UNK_021064C8
+_020AEAEC: .word UNK_021064D0
+_020AEAF0: .word 0x0000FFFF
+
+ arm_func_start FUN_020AEAF4
+FUN_020AEAF4:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r0, _020AEB68 ; =UNK_021CCD48
+ mov r6, #0x0
+ ldrh r7, [r0, #0x0]
+ ldr r5, _020AEB6C ; =UNK_021064E4
+ mov lr, r6
+ cmp r7, #0x1
+ addhi r7, r7, #0x1
+ mov r1, r6
+ mov r3, r6
+ mov r4, #0x1
+ mov r0, #0x20000
+ mov r2, #0x10000
+_020AEB2C:
+ cmp r6, r7
+ strlt r4, [r5, #0x8]
+ strge lr, [r5, #0x8]
+ ldr r12, [r5, #0xc]
+ add r6, r6, #0x1
+ cmp r12, #0x0
+ strne r3, [r5, #0x0]
+ strne r2, [r5, #0x4]
+ streq r1, [r5, #0x0]
+ streq r0, [r5, #0x4]
+ cmp r6, #0x5
+ add r5, r5, #0x18
+ blt _020AEB2C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020AEB68: .word UNK_021CCD48
+_020AEB6C: .word UNK_021064E4
+
+ arm_func_start FUN_020AEB70
+FUN_020AEB70: ; 0x020AEB70
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ cmp r5, #0x2
+ bhi _020AEBA8
+ mov r12, #0x1
+ mov r0, #0x4
+ mov r1, #0x3
+ mov r2, #0x2
+ mov r3, #0x0
+ str r12, [sp, #0x0]
+ bl FUN_020AEC10
+ b _020AEBC4
+_020AEBA8:
+ mov r12, #0x1
+ mov r0, #0x4
+ mov r1, #0x3
+ mov r2, #0x0
+ mov r3, #0x2
+ str r12, [sp, #0x0]
+ bl FUN_020AEC10
+_020AEBC4:
+ ldr r0, _020AEBFC ; =UNK_021CCD48
+ strh r5, [r0, #0x0]
+ bl FUN_020AEAF4
+ cmp r4, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+ ldr r3, _020AEC00 ; =FUN_020AE96C
+ ldr r1, _020AEC04 ; =UNK_021064B8
+ ldr r2, _020AEC08 ; =FUN_020AE964
+ ldr r0, _020AEC0C ; =UNK_021064BC
+ str r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AEBFC: .word UNK_021CCD48
+_020AEC00: .word FUN_020AE96C
+_020AEC04: .word UNK_021064B8
+_020AEC08: .word FUN_020AE964
+_020AEC0C: .word UNK_021064BC
+
+ arm_func_start FUN_020AEC10
+FUN_020AEC10: ; 0x020AEC10
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr lr, [sp, #0x18]
+ ldr r6, _020AEC58 ; =UNK_021064E4
+ mov r12, #0x18
+ mla r7, r0, r12, r6
+ ldr r0, _020AEC5C ; =UNK_021064D0
+ mla r5, r1, r12, r6
+ mla r4, r2, r12, r6
+ mla r2, r3, r12, r6
+ mla r1, lr, r12, r6
+ str r7, [r0, #0x0]
+ str r5, [r0, #0x4]
+ str r4, [r0, #0x8]
+ str r2, [r0, #0xc]
+ str r1, [r0, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020AEC58: .word UNK_021064E4
+_020AEC5C: .word UNK_021064D0
+
+ arm_func_start FUN_020AEC60
+FUN_020AEC60:
+ ldr r0, _020AEC78 ; =UNK_021CCD4C
+ mov r2, #0x0
+ ldr r1, [r0, #0x8]
+ str r2, [r0, #0x0]
+ str r1, [r0, #0x4]
+ bx lr
+ .balign 4
+_020AEC78: .word UNK_021CCD4C
+
+ arm_func_start FUN_020AEC7C
+FUN_020AEC7C: ; 0x020AEC7C
+ ldr r2, [r0, #0x0]
+ ldr r1, _020AEC94 ; =UNK_021CCD4C
+ str r2, [r1, #0x0]
+ ldr r0, [r0, #0x4]
+ str r0, [r1, #0x4]
+ bx lr
+ .balign 4
+_020AEC94: .word UNK_021CCD4C
+
+ arm_func_start FUN_020AEC98
+FUN_020AEC98: ; 0x020AEC98
+ ldr r1, _020AECB0 ; =UNK_021CCD4C
+ ldr r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ ldr r1, [r1, #0x4]
+ str r1, [r0, #0x4]
+ bx lr
+ .balign 4
+_020AECB0: .word UNK_021CCD4C
+
+ arm_func_start FUN_020AECB4
+FUN_020AECB4: ; 0x020AECB4
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020AECBC
+FUN_020AECBC: ; 0x020AECBC
+ stmdb sp!, {r4,lr}
+ cmp r0, #0x0
+ moveq r0, #0x8
+ addne r0, r0, #0x7
+ ldr ip, _020AEDE8 ; =0x0007FFF8
+ bicne r0, r0, #0x7
+ cmp r0, r12
+ mov r3, #0x0
+ movcs r0, #0x0
+ ldmcsia sp!, {r4,pc}
+ cmp r2, #0x1
+ bne _020AED64
+ ldr r2, _020AEDEC ; =UNK_021CCD4C
+ cmp r1, #0x0
+ ldr r12, [r2, #0x0]
+ andne r2, r12, #0x7
+ rsbne r2, r2, #0x8
+ andne r4, r2, #0x7
+ andeq r2, r12, #0xf
+ rsbeq r2, r2, #0x10
+ andeq r4, r2, #0xf
+ ldr r2, _020AEDEC ; =UNK_021CCD4C
+ add lr, r0, r4
+ ldr r2, [r2, #0x4]
+ sub r2, r2, r12
+ cmp r2, lr
+ blo _020AED5C
+ cmp r1, #0x0
+ add r1, r12, lr
+ beq _020AED40
+ cmp r1, #0x10000
+ movhi r12, #0x0
+ bhi _020AEDCC
+_020AED40:
+ ldr r1, _020AEDEC ; =UNK_021CCD4C
+ add r3, r12, r4
+ ldr r2, [r1, #0x0]
+ mov r12, #0x1
+ add r2, r2, lr
+ str r2, [r1, #0x0]
+ b _020AEDCC
+_020AED5C:
+ mov r12, #0x0
+ b _020AEDCC
+_020AED64:
+ ldr r2, _020AEDEC ; =UNK_021CCD4C
+ ldr r12, [r2, #0x4]
+ cmp r12, r0
+ blo _020AEDC8
+ sub r2, r12, r0
+ cmp r1, #0x0
+ andne r4, r2, #0x7
+ andeq r4, r2, #0xf
+ ldr r2, _020AEDEC ; =UNK_021CCD4C
+ add lr, r0, r4
+ ldr r2, [r2, #0x0]
+ sub r2, r12, r2
+ cmp r2, lr
+ blo _020AEDC8
+ cmp r1, #0x0
+ beq _020AEDB0
+ cmp r12, #0x10000
+ movhi r12, #0x0
+ bhi _020AEDCC
+_020AEDB0:
+ ldr r1, _020AEDEC ; =UNK_021CCD4C
+ mov r12, #0x1
+ ldr r2, [r1, #0x4]
+ sub r3, r2, lr
+ str r3, [r1, #0x4]
+ b _020AEDCC
+_020AEDC8:
+ mov r12, #0x0
+_020AEDCC:
+ cmp r12, #0x0
+ ldrne r1, _020AEDF0 ; =0x0000FFFF
+ movne r2, r0, lsr #0x3
+ andne r0, r1, r3, lsr #0x3
+ orrne r0, r0, r2, lsl #0x10
+ moveq r0, #0x0
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AEDE8: .word 0x0007FFF8
+_020AEDEC: .word UNK_021CCD4C
+_020AEDF0: .word 0x0000FFFF
+
+ arm_func_start FUN_020AEDF4
+FUN_020AEDF4: ; 0x020AEDF4
+ stmdb sp!, {r4,lr}
+ ldr r2, _020AEE2C ; =UNK_021CCD4C
+ mov r4, r1
+ str r0, [r2, #0x8]
+ bl FUN_020AEC60
+ cmp r4, #0x0
+ ldmeqia sp!, {r4,pc}
+ ldr r3, _020AEE30 ; =FUN_020AECBC
+ ldr r1, _020AEE34 ; =UNK_021064C0
+ ldr r2, _020AEE38 ; =FUN_020AECB4
+ ldr r0, _020AEE3C ; =UNK_021064C4
+ str r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AEE2C: .word UNK_021CCD4C
+_020AEE30: .word FUN_020AECBC
+_020AEE34: .word UNK_021064C0
+_020AEE38: .word FUN_020AECB4
+_020AEE3C: .word UNK_021064C4
+
+ arm_func_start FUN_020AEE40
+FUN_020AEE40: ; 0x020AEE40
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ ldr r5, _020AEEB4 ; =UNK_021CCD58
+ mov r9, r0
+ mov r0, r5
+ mov r8, r1
+ mov r7, r2
+ mov r6, r3
+ bl FUN_020AF2F4
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {r4-r9,pc}
+ mov r0, r5
+ bl FUN_020AEF78
+ mov r4, r0
+ str r9, [r4, #0x0]
+ str r7, [r4, #0x4]
+ str r8, [r4, #0x8]
+ mov r0, r5
+ str r6, [r4, #0xc]
+ bl FUN_020AEF98
+ ldr r2, [r5, #0x10]
+ ldr r1, [r4, #0xc]
+ mov r0, #0x1
+ add r1, r2, r1
+ str r1, [r5, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020AEEB4: .word UNK_021CCD58
+
+ arm_func_start FUN_020AEEB8
+FUN_020AEEB8: ; 0x020AEEB8
+ stmdb sp!, {r4-r6,lr}
+ ldr r6, _020AEF18 ; =UNK_021CCD58
+ mov r0, r6
+ bl FUN_020AEF88
+ mov r5, r0
+ mov r0, r6
+ bl FUN_020AEF3C
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ add r4, r6, #0x10
+_020AEEE0:
+ mov r0, r5
+ bl FUN_020AEFF0
+ ldr r2, [r4, #0x0]
+ ldr r1, [r5, #0xc]
+ mov r0, r6
+ sub r1, r2, r1
+ str r1, [r4, #0x0]
+ bl FUN_020AEF88
+ mov r5, r0
+ mov r0, r6
+ bl FUN_020AEF3C
+ cmp r0, #0x0
+ bne _020AEEE0
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020AEF18: .word UNK_021CCD58
+
+ arm_func_start FUN_020AEF1C
+FUN_020AEF1C: ; 0x020AEF1C
+ ldr r2, _020AEF34 ; =UNK_021CCD58
+ ldr ip, _020AEF38 ; =FUN_020AEFD4
+ str r0, [r2, #0x0]
+ mov r0, r2
+ str r1, [r2, #0x4]
+ bx r12
+ .balign 4
+_020AEF34: .word UNK_021CCD58
+_020AEF38: .word FUN_020AEFD4
+
+ arm_func_start FUN_020AEF3C
+FUN_020AEF3C:
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020AF2E0
+ cmp r0, #0x0
+ movne r0, #0x0
+ ldmneia sp!, {r4,pc}
+ ldrh r1, [r4, #0x8]
+ mov r0, r4
+ bl FUN_020AF30C
+ strh r0, [r4, #0x8]
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x1
+ sub r1, r1, #0x1
+ strh r1, [r4, #0xc]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020AEF78
+FUN_020AEF78: ; 0x020AEF78
+ ldrh r1, [r0, #0xa]
+ ldr r0, [r0, #0x0]
+ add r0, r0, r1, lsl #0x4
+ bx lr
+
+ arm_func_start FUN_020AEF88
+FUN_020AEF88: ; 0x020AEF88
+ ldrh r1, [r0, #0x8]
+ ldr r0, [r0, #0x0]
+ add r0, r0, r1, lsl #0x4
+ bx lr
+
+ arm_func_start FUN_020AEF98
+FUN_020AEF98: ; 0x020AEF98
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020AF2F4
+ cmp r0, #0x0
+ movne r0, #0x0
+ ldmneia sp!, {r4,pc}
+ ldrh r1, [r4, #0xa]
+ mov r0, r4
+ bl FUN_020AF30C
+ strh r0, [r4, #0xa]
+ ldrh r1, [r4, #0xc]
+ mov r0, #0x1
+ add r1, r1, #0x1
+ strh r1, [r4, #0xc]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020AEFD4
+FUN_020AEFD4: ; 0x020AEFD4
+ mov r2, #0x0
+ strh r2, [r0, #0xa]
+ ldrh r1, [r0, #0xa]
+ strh r1, [r0, #0x8]
+ strh r2, [r0, #0xc]
+ str r2, [r0, #0x10]
+ bx lr
+
+ arm_func_start FUN_020AEFF0
+FUN_020AEFF0: ; 0x020AEFF0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r3, [r5, #0x0]
+ ldr r2, _020AF02C ; =UNK_020FF7D4
+ ldr r0, [r5, #0x4]
+ ldr r1, [r5, #0xc]
+ ldr r4, [r2, r3, lsl #0x2]
+ bl DC_FlushRange
+ ldr r0, [r5, #0x4]
+ ldr r1, [r5, #0x8]
+ ldr r2, [r5, #0xc]
+ blx r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AF02C: .word UNK_020FF7D4