summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-05-25 10:47:50 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-05-25 10:58:32 -0400
commit6cc58b6c92491ce2396d86437b240c2f399620d2 (patch)
treefb4e40d4bdc861051dbe51d8e1ea8d54184a22ee
parentfff66e78f0acbdd2a9611440f1d09b27ad5220bf (diff)
Fix libVCT split
-rw-r--r--arm9/arm9.lcf4
-rw-r--r--arm9/asm/libVCT.s26303
-rw-r--r--arm9/asm/unk_020AF030.s26267
3 files changed, 26291 insertions, 26283 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index 643ddb9f..d01beea9 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -437,7 +437,6 @@ SECTIONS {
SSL_rca4.o (.text)
SSL_biginteger.o (.text)
libVCT.o (.text)
- unk_020AF030.o (.text)
/* Nitro SDK */
FX_mtx22.o (.text)
FX_mtx33.o (.text)
@@ -718,7 +717,6 @@ SECTIONS {
SSL_rca4.o (.rodata)
SSL_biginteger.o (.rodata)
libVCT.o (.rodata)
- unk_020AF030.o (.rodata)
FX_atan.o (.rodata)
GX_load3d.o (.rodata)
SND_util.o (.rodata)
@@ -778,7 +776,6 @@ SECTIONS {
SSL_rca4.o (.data)
SSL_biginteger.o (.data)
libVCT.o (.data)
- unk_020AF030.o (.data)
GX.o (.data)
OS_irqHandler.o (.data)
OS_emulator.o (.data)
@@ -864,7 +861,6 @@ SECTIONS {
SSL_rca4.o (.bss)
SSL_biginteger.o (.bss)
libVCT.o (.bss)
- unk_020AF030.o (.bss)
GX.o (.bss)
GX_state.o (.bss)
GX_load2d.o (.bss)
diff --git a/arm9/asm/libVCT.s b/arm9/asm/libVCT.s
index 7345545f..58e54290 100644
--- a/arm9/asm/libVCT.s
+++ b/arm9/asm/libVCT.s
@@ -1,6 +1,9 @@
.include "asm/macros.inc"
.include "global.inc"
+ .extern UNK_02103BAC
+ .extern GXi_DmaId
+
.section .rodata
.global UNK_020FF590
@@ -94,19 +97,1173 @@ UNK_020FF788: ; 0x020FF788
.global UNK_020FF7CC
UNK_020FF7CC: ; 0x020FF7CC
- .byte 0x94, 0xE8, 0x0A, 0x02, 0x84, 0xE8, 0x0A, 0x02
+ .word FUN_020AE894
+ .word FUN_020AE884
.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
+ .word FUN_020AF2B4
+ .word FUN_020AF288
+ .word FUN_020AF25C
+ .word FUN_020AF230
+ .word GX_LoadBG0Char_2
+ .word GX_LoadBG1Char_2
+ .word GX_LoadBG2Char_2
+ .word GX_LoadBG3Char_2
+ .word GX_LoadBG0Scr_2
+ .word GX_LoadBG1Scr_2
+ .word GX_LoadBG2Scr_2
+ .word GX_LoadBG3Scr_2
+ .word GX_LoadBG2Scr_3
+ .word GX_LoadBG3Scr_3
+ .word GX_LoadOBJPltt_2
+ .word GX_LoadBGPltt_2
+ .word FUN_020AF174
+ .word FUN_020AF148
+ .word GX_LoadOAM_2
+ .word GX_LoadOBJ_2
+ .word GXS_LoadBG0Char_2
+ .word GXS_LoadBG1Char_2
+ .word GXS_LoadBG2Char_2
+ .word GXS_LoadBG3Char_2
+ .word GXS_LoadBG0Scr_2
+ .word GXS_LoadBG1Scr_2
+ .word GXS_LoadBG2Scr_2
+ .word GXS_LoadBG3Scr_2
+ .word GXS_LoadBG2Scr_3
+ .word GXS_LoadBG3Scr_3
+ .word GXS_LoadOBJPltt_2
+ .word GXS_LoadBGPltt_2
+ .word FUN_020AF074
+ .word FUN_020AF048
+ .word GXS_LoadOAM_2
+ .word GXS_LoadOBJ_2
+
+ .global UNK_020FF864
+UNK_020FF864: ; 0x020FF864
+ .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global UNK_020FF894
+UNK_020FF894: ; 0x020FF894
+ .byte 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00
+ .byte 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00
+
+ .global UNK_020FF8AC
+UNK_020FF8AC: ; 0x020FF8AC
+ .byte 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00
+ .byte 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00
+
+ .global UNK_020FF8C4
+UNK_020FF8C4: ; 0x020FF8C4
+ .byte 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00
+
+ .global UNK_020FF8D0
+UNK_020FF8D0: ; 0x020FF8D0
+ .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
+
+ .global UNK_020FF8D8
+UNK_020FF8D8: ; 0x020FF8D8
+ .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
+ .byte 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
+
+ .global UNK_020FF8F8
+UNK_020FF8F8: ; 0x020FF8F8
+ .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
+ .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
+
+ .global UNK_020FF928
+UNK_020FF928: ; 0x020FF928
+ .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
+ .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
+
+ .global UNK_020FF958
+UNK_020FF958: ; 0x020FF958
+ .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global UNK_020FF970
+UNK_020FF970: ; 0x020FF970
+ .byte 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x01, 0x02, 0x01
+ .byte 0x00, 0x02, 0x01, 0x02, 0x02, 0x02, 0x03, 0x02, 0x00, 0x02, 0x01, 0x02, 0x02, 0x03, 0x03, 0x03
+
+ .global UNK_020FF990
+UNK_020FF990: ; 0x020FF990
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x80, 0x00, 0x40, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0xC0
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0
+
+ .global UNK_020FF9D0
+UNK_020FF9D0: ; 0x020FF9D0
+ .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F
+ .byte 0x00, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F
+
+ .global UNK_020FF9F0
+UNK_020FF9F0: ; 0x020FF9F0
+ .byte 0x04
+
+ .global UNK_020FF9F1
+UNK_020FF9F1: ; 0x020FF9F1
+ .byte 0x05
+
+ .global UNK_020FF9F2
+UNK_020FF9F2: ; 0x020FF9F2
+ .byte 0x07
+
+ .global UNK_020FF9F3
+UNK_020FF9F3: ; 0x020FF9F3
+ .byte 0x08, 0x03, 0x05, 0x06, 0x08, 0x03, 0x04, 0x06, 0x07, 0x01, 0x02, 0x07, 0x08, 0x00, 0x02, 0x06
+ .byte 0x08, 0x00, 0x01, 0x06, 0x07, 0x01, 0x02, 0x04, 0x05, 0x00, 0x02, 0x03, 0x05, 0x00, 0x01, 0x03
+ .byte 0x04
+
+ .global UNK_020FFA14
+UNK_020FFA14: ; 0x020FFA14
+ .byte 0x04
+
+ .global UNK_020FFA15
+UNK_020FFA15: ; 0x020FFA15
+ .byte 0x05
+
+ .global UNK_020FFA16
+UNK_020FFA16: ; 0x020FFA16
+ .byte 0x07
+
+ .global UNK_020FFA17
+UNK_020FFA17: ; 0x020FFA17
+ .byte 0x08, 0x03, 0x05, 0x06, 0x08, 0x03, 0x04, 0x06, 0x07, 0x01, 0x02, 0x07, 0x08, 0x00, 0x02, 0x06
+ .byte 0x08, 0x00, 0x01, 0x06, 0x07, 0x01, 0x02, 0x04, 0x05, 0x00, 0x02, 0x03, 0x05, 0x00, 0x01, 0x03
+ .byte 0x04
+
+ .global UNK_020FFA38
+UNK_020FFA38: ; 0x020FFA38
+ .byte 0x00, 0x00, 0x00, 0x10, 0x06, 0x00, 0x00, 0x10, 0x0D, 0x00, 0x00, 0x10, 0x13, 0x00, 0x00, 0x10,
+ .byte 0x19, 0x00, 0x00, 0x10, 0x1F, 0x00, 0x00, 0x10, 0x26, 0x00, 0x00, 0x10, 0x2C, 0x00, 0x00, 0x10,
+ .byte 0x32, 0x00, 0x00, 0x10, 0x39, 0x00, 0x00, 0x10, 0x3F, 0x00, 0x00, 0x10, 0x45, 0x00, 0xFF, 0x0F,
+ .byte 0x4B, 0x00, 0xFF, 0x0F, 0x52, 0x00, 0xFF, 0x0F, 0x58, 0x00, 0xFF, 0x0F, 0x5E, 0x00, 0xFF, 0x0F,
+ .byte 0x65, 0x00, 0xFF, 0x0F, 0x6B, 0x00, 0xFF, 0x0F, 0x71, 0x00, 0xFE, 0x0F, 0x77, 0x00, 0xFE, 0x0F,
+ .byte 0x7E, 0x00, 0xFE, 0x0F, 0x84, 0x00, 0xFE, 0x0F, 0x8A, 0x00, 0xFE, 0x0F, 0x90, 0x00, 0xFD, 0x0F,
+ .byte 0x97, 0x00, 0xFD, 0x0F, 0x9D, 0x00, 0xFD, 0x0F, 0xA3, 0x00, 0xFD, 0x0F, 0xAA, 0x00, 0xFC, 0x0F,
+ .byte 0xB0, 0x00, 0xFC, 0x0F, 0xB6, 0x00, 0xFC, 0x0F, 0xBC, 0x00, 0xFC, 0x0F, 0xC3, 0x00, 0xFB, 0x0F,
+ .byte 0xC9, 0x00, 0xFB, 0x0F, 0xCF, 0x00, 0xFB, 0x0F, 0xD6, 0x00, 0xFA, 0x0F, 0xDC, 0x00, 0xFA, 0x0F,
+ .byte 0xE2, 0x00, 0xFA, 0x0F, 0xE8, 0x00, 0xF9, 0x0F, 0xEF, 0x00, 0xF9, 0x0F, 0xF5, 0x00, 0xF9, 0x0F,
+ .byte 0xFB, 0x00, 0xF8, 0x0F, 0x01, 0x01, 0xF8, 0x0F, 0x08, 0x01, 0xF8, 0x0F, 0x0E, 0x01, 0xF7, 0x0F,
+ .byte 0x14, 0x01, 0xF7, 0x0F, 0x1B, 0x01, 0xF6, 0x0F, 0x21, 0x01, 0xF6, 0x0F, 0x27, 0x01, 0xF5, 0x0F,
+ .byte 0x2D, 0x01, 0xF5, 0x0F, 0x34, 0x01, 0xF4, 0x0F, 0x3A, 0x01, 0xF4, 0x0F, 0x40, 0x01, 0xF3, 0x0F,
+ .byte 0x46, 0x01, 0xF3, 0x0F, 0x4D, 0x01, 0xF2, 0x0F, 0x53, 0x01, 0xF2, 0x0F, 0x59, 0x01, 0xF1, 0x0F,
+ .byte 0x5F, 0x01, 0xF1, 0x0F, 0x66, 0x01, 0xF0, 0x0F, 0x6C, 0x01, 0xF0, 0x0F, 0x72, 0x01, 0xEF, 0x0F,
+ .byte 0x78, 0x01, 0xEF, 0x0F, 0x7F, 0x01, 0xEE, 0x0F, 0x85, 0x01, 0xED, 0x0F, 0x8B, 0x01, 0xED, 0x0F,
+ .byte 0x91, 0x01, 0xEC, 0x0F, 0x98, 0x01, 0xEC, 0x0F, 0x9E, 0x01, 0xEB, 0x0F, 0xA4, 0x01, 0xEA, 0x0F,
+ .byte 0xAA, 0x01, 0xEA, 0x0F, 0xB1, 0x01, 0xE9, 0x0F, 0xB7, 0x01, 0xE8, 0x0F, 0xBD, 0x01, 0xE8, 0x0F,
+ .byte 0xC3, 0x01, 0xE7, 0x0F, 0xCA, 0x01, 0xE6, 0x0F, 0xD0, 0x01, 0xE6, 0x0F, 0xD6, 0x01, 0xE5, 0x0F,
+ .byte 0xDC, 0x01, 0xE4, 0x0F, 0xE3, 0x01, 0xE3, 0x0F, 0xE9, 0x01, 0xE3, 0x0F, 0xEF, 0x01, 0xE2, 0x0F,
+ .byte 0xF5, 0x01, 0xE1, 0x0F, 0xFC, 0x01, 0xE0, 0x0F, 0x02, 0x02, 0xE0, 0x0F, 0x08, 0x02, 0xDF, 0x0F,
+ .byte 0x0E, 0x02, 0xDE, 0x0F, 0x15, 0x02, 0xDD, 0x0F, 0x1B, 0x02, 0xDC, 0x0F, 0x21, 0x02, 0xDC, 0x0F,
+ .byte 0x27, 0x02, 0xDB, 0x0F, 0x2D, 0x02, 0xDA, 0x0F, 0x34, 0x02, 0xD9, 0x0F, 0x3A, 0x02, 0xD8, 0x0F,
+ .byte 0x40, 0x02, 0xD7, 0x0F, 0x46, 0x02, 0xD6, 0x0F, 0x4D, 0x02, 0xD5, 0x0F, 0x53, 0x02, 0xD5, 0x0F,
+ .byte 0x59, 0x02, 0xD4, 0x0F, 0x5F, 0x02, 0xD3, 0x0F, 0x65, 0x02, 0xD2, 0x0F, 0x6C, 0x02, 0xD1, 0x0F,
+ .byte 0x72, 0x02, 0xD0, 0x0F, 0x78, 0x02, 0xCF, 0x0F, 0x7E, 0x02, 0xCE, 0x0F, 0x84, 0x02, 0xCD, 0x0F,
+ .byte 0x8B, 0x02, 0xCC, 0x0F, 0x91, 0x02, 0xCB, 0x0F, 0x97, 0x02, 0xCA, 0x0F, 0x9D, 0x02, 0xC9, 0x0F,
+ .byte 0xA3, 0x02, 0xC8, 0x0F, 0xAA, 0x02, 0xC7, 0x0F, 0xB0, 0x02, 0xC6, 0x0F, 0xB6, 0x02, 0xC5, 0x0F,
+ .byte 0xBC, 0x02, 0xC4, 0x0F, 0xC2, 0x02, 0xC3, 0x0F, 0xC9, 0x02, 0xC2, 0x0F, 0xCF, 0x02, 0xC0, 0x0F,
+ .byte 0xD5, 0x02, 0xBF, 0x0F, 0xDB, 0x02, 0xBE, 0x0F, 0xE1, 0x02, 0xBD, 0x0F, 0xE8, 0x02, 0xBC, 0x0F,
+ .byte 0xEE, 0x02, 0xBB, 0x0F, 0xF4, 0x02, 0xBA, 0x0F, 0xFA, 0x02, 0xB8, 0x0F, 0x00, 0x03, 0xB7, 0x0F,
+ .byte 0x06, 0x03, 0xB6, 0x0F, 0x0D, 0x03, 0xB5, 0x0F, 0x13, 0x03, 0xB4, 0x0F, 0x19, 0x03, 0xB3, 0x0F,
+ .byte 0x1F, 0x03, 0xB1, 0x0F, 0x25, 0x03, 0xB0, 0x0F, 0x2B, 0x03, 0xAF, 0x0F, 0x32, 0x03, 0xAE, 0x0F,
+ .byte 0x38, 0x03, 0xAC, 0x0F, 0x3E, 0x03, 0xAB, 0x0F, 0x44, 0x03, 0xAA, 0x0F, 0x4A, 0x03, 0xA8, 0x0F,
+ .byte 0x50, 0x03, 0xA7, 0x0F, 0x56, 0x03, 0xA6, 0x0F, 0x5D, 0x03, 0xA5, 0x0F, 0x63, 0x03, 0xA3, 0x0F,
+ .byte 0x69, 0x03, 0xA2, 0x0F, 0x6F, 0x03, 0xA1, 0x0F, 0x75, 0x03, 0x9F, 0x0F, 0x7B, 0x03, 0x9E, 0x0F,
+ .byte 0x81, 0x03, 0x9C, 0x0F, 0x88, 0x03, 0x9B, 0x0F, 0x8E, 0x03, 0x9A, 0x0F, 0x94, 0x03, 0x98, 0x0F,
+ .byte 0x9A, 0x03, 0x97, 0x0F, 0xA0, 0x03, 0x95, 0x0F, 0xA6, 0x03, 0x94, 0x0F, 0xAC, 0x03, 0x93, 0x0F,
+ .byte 0xB2, 0x03, 0x91, 0x0F, 0xB9, 0x03, 0x90, 0x0F, 0xBF, 0x03, 0x8E, 0x0F, 0xC5, 0x03, 0x8D, 0x0F,
+ .byte 0xCB, 0x03, 0x8B, 0x0F, 0xD1, 0x03, 0x8A, 0x0F, 0xD7, 0x03, 0x88, 0x0F, 0xDD, 0x03, 0x87, 0x0F,
+ .byte 0xE3, 0x03, 0x85, 0x0F, 0xE9, 0x03, 0x84, 0x0F, 0xEF, 0x03, 0x82, 0x0F, 0xF6, 0x03, 0x81, 0x0F,
+ .byte 0xFC, 0x03, 0x7F, 0x0F, 0x02, 0x04, 0x7D, 0x0F, 0x08, 0x04, 0x7C, 0x0F, 0x0E, 0x04, 0x7A, 0x0F,
+ .byte 0x14, 0x04, 0x79, 0x0F, 0x1A, 0x04, 0x77, 0x0F, 0x20, 0x04, 0x76, 0x0F, 0x26, 0x04, 0x74, 0x0F,
+ .byte 0x2C, 0x04, 0x72, 0x0F, 0x32, 0x04, 0x71, 0x0F, 0x38, 0x04, 0x6F, 0x0F, 0x3E, 0x04, 0x6D, 0x0F,
+ .byte 0x44, 0x04, 0x6C, 0x0F, 0x4B, 0x04, 0x6A, 0x0F, 0x51, 0x04, 0x68, 0x0F, 0x57, 0x04, 0x67, 0x0F,
+ .byte 0x5D, 0x04, 0x65, 0x0F, 0x63, 0x04, 0x63, 0x0F, 0x69, 0x04, 0x61, 0x0F, 0x6F, 0x04, 0x60, 0x0F,
+ .byte 0x75, 0x04, 0x5E, 0x0F, 0x7B, 0x04, 0x5C, 0x0F, 0x81, 0x04, 0x5A, 0x0F, 0x87, 0x04, 0x59, 0x0F,
+ .byte 0x8D, 0x04, 0x57, 0x0F, 0x93, 0x04, 0x55, 0x0F, 0x99, 0x04, 0x53, 0x0F, 0x9F, 0x04, 0x51, 0x0F,
+ .byte 0xA5, 0x04, 0x50, 0x0F, 0xAB, 0x04, 0x4E, 0x0F, 0xB1, 0x04, 0x4C, 0x0F, 0xB7, 0x04, 0x4A, 0x0F,
+ .byte 0xBD, 0x04, 0x48, 0x0F, 0xC3, 0x04, 0x46, 0x0F, 0xC9, 0x04, 0x45, 0x0F, 0xCF, 0x04, 0x43, 0x0F,
+ .byte 0xD5, 0x04, 0x41, 0x0F, 0xDB, 0x04, 0x3F, 0x0F, 0xE1, 0x04, 0x3D, 0x0F, 0xE7, 0x04, 0x3B, 0x0F,
+ .byte 0xED, 0x04, 0x39, 0x0F, 0xF3, 0x04, 0x37, 0x0F, 0xF9, 0x04, 0x35, 0x0F, 0xFF, 0x04, 0x33, 0x0F,
+ .byte 0x05, 0x05, 0x31, 0x0F, 0x0B, 0x05, 0x2F, 0x0F, 0x11, 0x05, 0x2D, 0x0F, 0x17, 0x05, 0x2B, 0x0F,
+ .byte 0x1D, 0x05, 0x29, 0x0F, 0x23, 0x05, 0x27, 0x0F, 0x29, 0x05, 0x25, 0x0F, 0x2F, 0x05, 0x23, 0x0F,
+ .byte 0x34, 0x05, 0x21, 0x0F, 0x3A, 0x05, 0x1F, 0x0F, 0x40, 0x05, 0x1D, 0x0F, 0x46, 0x05, 0x1B, 0x0F,
+ .byte 0x4C, 0x05, 0x19, 0x0F, 0x52, 0x05, 0x17, 0x0F, 0x58, 0x05, 0x15, 0x0F, 0x5E, 0x05, 0x13, 0x0F,
+ .byte 0x64, 0x05, 0x11, 0x0F, 0x6A, 0x05, 0x0E, 0x0F, 0x70, 0x05, 0x0C, 0x0F, 0x76, 0x05, 0x0A, 0x0F,
+ .byte 0x7C, 0x05, 0x08, 0x0F, 0x81, 0x05, 0x06, 0x0F, 0x87, 0x05, 0x04, 0x0F, 0x8D, 0x05, 0x02, 0x0F,
+ .byte 0x93, 0x05, 0xFF, 0x0E, 0x99, 0x05, 0xFD, 0x0E, 0x9F, 0x05, 0xFB, 0x0E, 0xA5, 0x05, 0xF9, 0x0E,
+ .byte 0xAB, 0x05, 0xF7, 0x0E, 0xB1, 0x05, 0xF4, 0x0E, 0xB6, 0x05, 0xF2, 0x0E, 0xBC, 0x05, 0xF0, 0x0E,
+ .byte 0xC2, 0x05, 0xEE, 0x0E, 0xC8, 0x05, 0xEB, 0x0E, 0xCE, 0x05, 0xE9, 0x0E, 0xD4, 0x05, 0xE7, 0x0E,
+ .byte 0xDA, 0x05, 0xE4, 0x0E, 0xDF, 0x05, 0xE2, 0x0E, 0xE5, 0x05, 0xE0, 0x0E, 0xEB, 0x05, 0xDD, 0x0E,
+ .byte 0xF1, 0x05, 0xDB, 0x0E, 0xF7, 0x05, 0xD9, 0x0E, 0xFD, 0x05, 0xD6, 0x0E, 0x02, 0x06, 0xD4, 0x0E,
+ .byte 0x08, 0x06, 0xD2, 0x0E, 0x0E, 0x06, 0xCF, 0x0E, 0x14, 0x06, 0xCD, 0x0E, 0x1A, 0x06, 0xCB, 0x0E,
+ .byte 0x1F, 0x06, 0xC8, 0x0E, 0x25, 0x06, 0xC6, 0x0E, 0x2B, 0x06, 0xC3, 0x0E, 0x31, 0x06, 0xC1, 0x0E,
+ .byte 0x37, 0x06, 0xBF, 0x0E, 0x3C, 0x06, 0xBC, 0x0E, 0x42, 0x06, 0xBA, 0x0E, 0x48, 0x06, 0xB7, 0x0E,
+ .byte 0x4E, 0x06, 0xB5, 0x0E, 0x54, 0x06, 0xB2, 0x0E, 0x59, 0x06, 0xB0, 0x0E, 0x5F, 0x06, 0xAD, 0x0E,
+ .byte 0x65, 0x06, 0xAB, 0x0E, 0x6B, 0x06, 0xA8, 0x0E, 0x70, 0x06, 0xA6, 0x0E, 0x76, 0x06, 0xA3, 0x0E,
+ .byte 0x7C, 0x06, 0xA1, 0x0E, 0x82, 0x06, 0x9E, 0x0E, 0x87, 0x06, 0x9B, 0x0E, 0x8D, 0x06, 0x99, 0x0E,
+ .byte 0x93, 0x06, 0x96, 0x0E, 0x99, 0x06, 0x94, 0x0E, 0x9E, 0x06, 0x91, 0x0E, 0xA4, 0x06, 0x8F, 0x0E,
+ .byte 0xAA, 0x06, 0x8C, 0x0E, 0xAF, 0x06, 0x89, 0x0E, 0xB5, 0x06, 0x87, 0x0E, 0xBB, 0x06, 0x84, 0x0E,
+ .byte 0xC1, 0x06, 0x81, 0x0E, 0xC6, 0x06, 0x7F, 0x0E, 0xCC, 0x06, 0x7C, 0x0E, 0xD2, 0x06, 0x79, 0x0E,
+ .byte 0xD7, 0x06, 0x77, 0x0E, 0xDD, 0x06, 0x74, 0x0E, 0xE3, 0x06, 0x71, 0x0E, 0xE8, 0x06, 0x6F, 0x0E,
+ .byte 0xEE, 0x06, 0x6C, 0x0E, 0xF4, 0x06, 0x69, 0x0E, 0xF9, 0x06, 0x66, 0x0E, 0xFF, 0x06, 0x64, 0x0E,
+ .byte 0x05, 0x07, 0x61, 0x0E, 0x0A, 0x07, 0x5E, 0x0E, 0x10, 0x07, 0x5B, 0x0E, 0x15, 0x07, 0x59, 0x0E,
+ .byte 0x1B, 0x07, 0x56, 0x0E, 0x21, 0x07, 0x53, 0x0E, 0x26, 0x07, 0x50, 0x0E, 0x2C, 0x07, 0x4D, 0x0E,
+ .byte 0x32, 0x07, 0x4B, 0x0E, 0x37, 0x07, 0x48, 0x0E, 0x3D, 0x07, 0x45, 0x0E, 0x42, 0x07, 0x42, 0x0E,
+ .byte 0x48, 0x07, 0x3F, 0x0E, 0x4E, 0x07, 0x3C, 0x0E, 0x53, 0x07, 0x3A, 0x0E, 0x59, 0x07, 0x37, 0x0E,
+ .byte 0x5E, 0x07, 0x34, 0x0E, 0x64, 0x07, 0x31, 0x0E, 0x6A, 0x07, 0x2E, 0x0E, 0x6F, 0x07, 0x2B, 0x0E,
+ .byte 0x75, 0x07, 0x28, 0x0E, 0x7A, 0x07, 0x25, 0x0E, 0x80, 0x07, 0x22, 0x0E, 0x85, 0x07, 0x1F, 0x0E,
+ .byte 0x8B, 0x07, 0x1C, 0x0E, 0x90, 0x07, 0x19, 0x0E, 0x96, 0x07, 0x16, 0x0E, 0x9B, 0x07, 0x13, 0x0E,
+ .byte 0xA1, 0x07, 0x10, 0x0E, 0xA6, 0x07, 0x0D, 0x0E, 0xAC, 0x07, 0x0A, 0x0E, 0xB2, 0x07, 0x07, 0x0E,
+ .byte 0xB7, 0x07, 0x04, 0x0E, 0xBD, 0x07, 0x01, 0x0E, 0xC2, 0x07, 0xFE, 0x0D, 0xC8, 0x07, 0xFB, 0x0D,
+ .byte 0xCD, 0x07, 0xF8, 0x0D, 0xD2, 0x07, 0xF5, 0x0D, 0xD8, 0x07, 0xF2, 0x0D, 0xDD, 0x07, 0xEF, 0x0D,
+ .byte 0xE3, 0x07, 0xEC, 0x0D, 0xE8, 0x07, 0xE9, 0x0D, 0xEE, 0x07, 0xE6, 0x0D, 0xF3, 0x07, 0xE3, 0x0D,
+ .byte 0xF9, 0x07, 0xDF, 0x0D, 0xFE, 0x07, 0xDC, 0x0D, 0x04, 0x08, 0xD9, 0x0D, 0x09, 0x08, 0xD6, 0x0D,
+ .byte 0x0E, 0x08, 0xD3, 0x0D, 0x14, 0x08, 0xD0, 0x0D, 0x19, 0x08, 0xCC, 0x0D, 0x1F, 0x08, 0xC9, 0x0D,
+ .byte 0x24, 0x08, 0xC6, 0x0D, 0x2A, 0x08, 0xC3, 0x0D, 0x2F, 0x08, 0xC0, 0x0D, 0x34, 0x08, 0xBC, 0x0D,
+ .byte 0x3A, 0x08, 0xB9, 0x0D, 0x3F, 0x08, 0xB6, 0x0D, 0x45, 0x08, 0xB3, 0x0D, 0x4A, 0x08, 0xB0, 0x0D,
+ .byte 0x4F, 0x08, 0xAC, 0x0D, 0x55, 0x08, 0xA9, 0x0D, 0x5A, 0x08, 0xA6, 0x0D, 0x5F, 0x08, 0xA2, 0x0D,
+ .byte 0x65, 0x08, 0x9F, 0x0D, 0x6A, 0x08, 0x9C, 0x0D, 0x6F, 0x08, 0x99, 0x0D, 0x75, 0x08, 0x95, 0x0D,
+ .byte 0x7A, 0x08, 0x92, 0x0D, 0x7F, 0x08, 0x8F, 0x0D, 0x85, 0x08, 0x8B, 0x0D, 0x8A, 0x08, 0x88, 0x0D,
+ .byte 0x8F, 0x08, 0x85, 0x0D, 0x95, 0x08, 0x81, 0x0D, 0x9A, 0x08, 0x7E, 0x0D, 0x9F, 0x08, 0x7A, 0x0D,
+ .byte 0xA5, 0x08, 0x77, 0x0D, 0xAA, 0x08, 0x74, 0x0D, 0xAF, 0x08, 0x70, 0x0D, 0xB4, 0x08, 0x6D, 0x0D,
+ .byte 0xBA, 0x08, 0x69, 0x0D, 0xBF, 0x08, 0x66, 0x0D, 0xC4, 0x08, 0x62, 0x0D, 0xC9, 0x08, 0x5F, 0x0D,
+ .byte 0xCF, 0x08, 0x5C, 0x0D, 0xD4, 0x08, 0x58, 0x0D, 0xD9, 0x08, 0x55, 0x0D, 0xDE, 0x08, 0x51, 0x0D,
+ .byte 0xE4, 0x08, 0x4E, 0x0D, 0xE9, 0x08, 0x4A, 0x0D, 0xEE, 0x08, 0x47, 0x0D, 0xF3, 0x08, 0x43, 0x0D,
+ .byte 0xF8, 0x08, 0x40, 0x0D, 0xFE, 0x08, 0x3C, 0x0D, 0x03, 0x09, 0x39, 0x0D, 0x08, 0x09, 0x35, 0x0D,
+ .byte 0x0D, 0x09, 0x32, 0x0D, 0x12, 0x09, 0x2E, 0x0D, 0x18, 0x09, 0x2A, 0x0D, 0x1D, 0x09, 0x27, 0x0D,
+ .byte 0x22, 0x09, 0x23, 0x0D, 0x27, 0x09, 0x20, 0x0D, 0x2C, 0x09, 0x1C, 0x0D, 0x31, 0x09, 0x18, 0x0D,
+ .byte 0x37, 0x09, 0x15, 0x0D, 0x3C, 0x09, 0x11, 0x0D, 0x41, 0x09, 0x0E, 0x0D, 0x46, 0x09, 0x0A, 0x0D,
+ .byte 0x4B, 0x09, 0x06, 0x0D, 0x50, 0x09, 0x03, 0x0D, 0x55, 0x09, 0xFF, 0x0C, 0x5A, 0x09, 0xFB, 0x0C,
+ .byte 0x5F, 0x09, 0xF8, 0x0C, 0x65, 0x09, 0xF4, 0x0C, 0x6A, 0x09, 0xF0, 0x0C, 0x6F, 0x09, 0xED, 0x0C,
+ .byte 0x74, 0x09, 0xE9, 0x0C, 0x79, 0x09, 0xE5, 0x0C, 0x7E, 0x09, 0xE1, 0x0C, 0x83, 0x09, 0xDE, 0x0C,
+ .byte 0x88, 0x09, 0xDA, 0x0C, 0x8D, 0x09, 0xD6, 0x0C, 0x92, 0x09, 0xD2, 0x0C, 0x97, 0x09, 0xCF, 0x0C,
+ .byte 0x9C, 0x09, 0xCB, 0x0C, 0xA1, 0x09, 0xC7, 0x0C, 0xA6, 0x09, 0xC3, 0x0C, 0xAB, 0x09, 0xC0, 0x0C,
+ .byte 0xB0, 0x09, 0xBC, 0x0C, 0xB5, 0x09, 0xB8, 0x0C, 0xBA, 0x09, 0xB4, 0x0C, 0xBF, 0x09, 0xB0, 0x0C,
+ .byte 0xC4, 0x09, 0xAC, 0x0C, 0xC9, 0x09, 0xA9, 0x0C, 0xCE, 0x09, 0xA5, 0x0C, 0xD3, 0x09, 0xA1, 0x0C,
+ .byte 0xD8, 0x09, 0x9D, 0x0C, 0xDD, 0x09, 0x99, 0x0C, 0xE2, 0x09, 0x95, 0x0C, 0xE7, 0x09, 0x91, 0x0C,
+ .byte 0xEC, 0x09, 0x8E, 0x0C, 0xF1, 0x09, 0x8A, 0x0C, 0xF6, 0x09, 0x86, 0x0C, 0xFB, 0x09, 0x82, 0x0C,
+ .byte 0xFF, 0x09, 0x7E, 0x0C, 0x04, 0x0A, 0x7A, 0x0C, 0x09, 0x0A, 0x76, 0x0C, 0x0E, 0x0A, 0x72, 0x0C,
+ .byte 0x13, 0x0A, 0x6E, 0x0C, 0x18, 0x0A, 0x6A, 0x0C, 0x1D, 0x0A, 0x66, 0x0C, 0x22, 0x0A, 0x62, 0x0C,
+ .byte 0x26, 0x0A, 0x5E, 0x0C, 0x2B, 0x0A, 0x5A, 0x0C, 0x30, 0x0A, 0x56, 0x0C, 0x35, 0x0A, 0x52, 0x0C,
+ .byte 0x3A, 0x0A, 0x4E, 0x0C, 0x3F, 0x0A, 0x4A, 0x0C, 0x44, 0x0A, 0x46, 0x0C, 0x48, 0x0A, 0x42, 0x0C,
+ .byte 0x4D, 0x0A, 0x3E, 0x0C, 0x52, 0x0A, 0x3A, 0x0C, 0x57, 0x0A, 0x36, 0x0C, 0x5C, 0x0A, 0x32, 0x0C,
+ .byte 0x60, 0x0A, 0x2E, 0x0C, 0x65, 0x0A, 0x2A, 0x0C, 0x6A, 0x0A, 0x26, 0x0C, 0x6F, 0x0A, 0x22, 0x0C,
+ .byte 0x73, 0x0A, 0x1E, 0x0C, 0x78, 0x0A, 0x19, 0x0C, 0x7D, 0x0A, 0x15, 0x0C, 0x82, 0x0A, 0x11, 0x0C,
+ .byte 0x86, 0x0A, 0x0D, 0x0C, 0x8B, 0x0A, 0x09, 0x0C, 0x90, 0x0A, 0x05, 0x0C, 0x95, 0x0A, 0x01, 0x0C,
+ .byte 0x99, 0x0A, 0xFC, 0x0B, 0x9E, 0x0A, 0xF8, 0x0B, 0xA3, 0x0A, 0xF4, 0x0B, 0xA7, 0x0A, 0xF0, 0x0B,
+ .byte 0xAC, 0x0A, 0xEC, 0x0B, 0xB1, 0x0A, 0xE8, 0x0B, 0xB5, 0x0A, 0xE3, 0x0B, 0xBA, 0x0A, 0xDF, 0x0B,
+ .byte 0xBF, 0x0A, 0xDB, 0x0B, 0xC3, 0x0A, 0xD7, 0x0B, 0xC8, 0x0A, 0xD2, 0x0B, 0xCD, 0x0A, 0xCE, 0x0B,
+ .byte 0xD1, 0x0A, 0xCA, 0x0B, 0xD6, 0x0A, 0xC6, 0x0B, 0xDB, 0x0A, 0xC1, 0x0B, 0xDF, 0x0A, 0xBD, 0x0B,
+ .byte 0xE4, 0x0A, 0xB9, 0x0B, 0xE8, 0x0A, 0xB5, 0x0B, 0xED, 0x0A, 0xB0, 0x0B, 0xF2, 0x0A, 0xAC, 0x0B,
+ .byte 0xF6, 0x0A, 0xA8, 0x0B, 0xFB, 0x0A, 0xA3, 0x0B, 0xFF, 0x0A, 0x9F, 0x0B, 0x04, 0x0B, 0x9B, 0x0B,
+ .byte 0x08, 0x0B, 0x97, 0x0B, 0x0D, 0x0B, 0x92, 0x0B, 0x11, 0x0B, 0x8E, 0x0B, 0x16, 0x0B, 0x89, 0x0B,
+ .byte 0x1B, 0x0B, 0x85, 0x0B, 0x1F, 0x0B, 0x81, 0x0B, 0x24, 0x0B, 0x7C, 0x0B, 0x28, 0x0B, 0x78, 0x0B,
+ .byte 0x2D, 0x0B, 0x74, 0x0B, 0x31, 0x0B, 0x6F, 0x0B, 0x36, 0x0B, 0x6B, 0x0B, 0x3A, 0x0B, 0x66, 0x0B,
+ .byte 0x3E, 0x0B, 0x62, 0x0B, 0x43, 0x0B, 0x5E, 0x0B, 0x47, 0x0B, 0x59, 0x0B, 0x4C, 0x0B, 0x55, 0x0B,
+ .byte 0x50, 0x0B, 0x50, 0x0B, 0x55, 0x0B, 0x4C, 0x0B, 0x59, 0x0B, 0x47, 0x0B, 0x5E, 0x0B, 0x43, 0x0B,
+ .byte 0x62, 0x0B, 0x3E, 0x0B, 0x66, 0x0B, 0x3A, 0x0B, 0x6B, 0x0B, 0x36, 0x0B, 0x6F, 0x0B, 0x31, 0x0B,
+ .byte 0x74, 0x0B, 0x2D, 0x0B, 0x78, 0x0B, 0x28, 0x0B, 0x7C, 0x0B, 0x24, 0x0B, 0x81, 0x0B, 0x1F, 0x0B,
+ .byte 0x85, 0x0B, 0x1B, 0x0B, 0x89, 0x0B, 0x16, 0x0B, 0x8E, 0x0B, 0x11, 0x0B, 0x92, 0x0B, 0x0D, 0x0B,
+ .byte 0x97, 0x0B, 0x08, 0x0B, 0x9B, 0x0B, 0x04, 0x0B, 0x9F, 0x0B, 0xFF, 0x0A, 0xA3, 0x0B, 0xFB, 0x0A,
+ .byte 0xA8, 0x0B, 0xF6, 0x0A, 0xAC, 0x0B, 0xF2, 0x0A, 0xB0, 0x0B, 0xED, 0x0A, 0xB5, 0x0B, 0xE8, 0x0A,
+ .byte 0xB9, 0x0B, 0xE4, 0x0A, 0xBD, 0x0B, 0xDF, 0x0A, 0xC1, 0x0B, 0xDB, 0x0A, 0xC6, 0x0B, 0xD6, 0x0A,
+ .byte 0xCA, 0x0B, 0xD1, 0x0A, 0xCE, 0x0B, 0xCD, 0x0A, 0xD2, 0x0B, 0xC8, 0x0A, 0xD7, 0x0B, 0xC3, 0x0A,
+ .byte 0xDB, 0x0B, 0xBF, 0x0A, 0xDF, 0x0B, 0xBA, 0x0A, 0xE3, 0x0B, 0xB5, 0x0A, 0xE8, 0x0B, 0xB1, 0x0A,
+ .byte 0xEC, 0x0B, 0xAC, 0x0A, 0xF0, 0x0B, 0xA7, 0x0A, 0xF4, 0x0B, 0xA3, 0x0A, 0xF8, 0x0B, 0x9E, 0x0A,
+ .byte 0xFC, 0x0B, 0x99, 0x0A, 0x01, 0x0C, 0x95, 0x0A, 0x05, 0x0C, 0x90, 0x0A, 0x09, 0x0C, 0x8B, 0x0A,
+ .byte 0x0D, 0x0C, 0x86, 0x0A, 0x11, 0x0C, 0x82, 0x0A, 0x15, 0x0C, 0x7D, 0x0A, 0x19, 0x0C, 0x78, 0x0A,
+ .byte 0x1E, 0x0C, 0x73, 0x0A, 0x22, 0x0C, 0x6F, 0x0A, 0x26, 0x0C, 0x6A, 0x0A, 0x2A, 0x0C, 0x65, 0x0A,
+ .byte 0x2E, 0x0C, 0x60, 0x0A, 0x32, 0x0C, 0x5C, 0x0A, 0x36, 0x0C, 0x57, 0x0A, 0x3A, 0x0C, 0x52, 0x0A,
+ .byte 0x3E, 0x0C, 0x4D, 0x0A, 0x42, 0x0C, 0x48, 0x0A, 0x46, 0x0C, 0x44, 0x0A, 0x4A, 0x0C, 0x3F, 0x0A,
+ .byte 0x4E, 0x0C, 0x3A, 0x0A, 0x52, 0x0C, 0x35, 0x0A, 0x56, 0x0C, 0x30, 0x0A, 0x5A, 0x0C, 0x2B, 0x0A,
+ .byte 0x5E, 0x0C, 0x26, 0x0A, 0x62, 0x0C, 0x22, 0x0A, 0x66, 0x0C, 0x1D, 0x0A, 0x6A, 0x0C, 0x18, 0x0A,
+ .byte 0x6E, 0x0C, 0x13, 0x0A, 0x72, 0x0C, 0x0E, 0x0A, 0x76, 0x0C, 0x09, 0x0A, 0x7A, 0x0C, 0x04, 0x0A,
+ .byte 0x7E, 0x0C, 0xFF, 0x09, 0x82, 0x0C, 0xFB, 0x09, 0x86, 0x0C, 0xF6, 0x09, 0x8A, 0x0C, 0xF1, 0x09,
+ .byte 0x8E, 0x0C, 0xEC, 0x09, 0x91, 0x0C, 0xE7, 0x09, 0x95, 0x0C, 0xE2, 0x09, 0x99, 0x0C, 0xDD, 0x09,
+ .byte 0x9D, 0x0C, 0xD8, 0x09, 0xA1, 0x0C, 0xD3, 0x09, 0xA5, 0x0C, 0xCE, 0x09, 0xA9, 0x0C, 0xC9, 0x09,
+ .byte 0xAC, 0x0C, 0xC4, 0x09, 0xB0, 0x0C, 0xBF, 0x09, 0xB4, 0x0C, 0xBA, 0x09, 0xB8, 0x0C, 0xB5, 0x09,
+ .byte 0xBC, 0x0C, 0xB0, 0x09, 0xC0, 0x0C, 0xAB, 0x09, 0xC3, 0x0C, 0xA6, 0x09, 0xC7, 0x0C, 0xA1, 0x09,
+ .byte 0xCB, 0x0C, 0x9C, 0x09, 0xCF, 0x0C, 0x97, 0x09, 0xD2, 0x0C, 0x92, 0x09, 0xD6, 0x0C, 0x8D, 0x09,
+ .byte 0xDA, 0x0C, 0x88, 0x09, 0xDE, 0x0C, 0x83, 0x09, 0xE1, 0x0C, 0x7E, 0x09, 0xE5, 0x0C, 0x79, 0x09,
+ .byte 0xE9, 0x0C, 0x74, 0x09, 0xED, 0x0C, 0x6F, 0x09, 0xF0, 0x0C, 0x6A, 0x09, 0xF4, 0x0C, 0x65, 0x09,
+ .byte 0xF8, 0x0C, 0x5F, 0x09, 0xFB, 0x0C, 0x5A, 0x09, 0xFF, 0x0C, 0x55, 0x09, 0x03, 0x0D, 0x50, 0x09,
+ .byte 0x06, 0x0D, 0x4B, 0x09, 0x0A, 0x0D, 0x46, 0x09, 0x0E, 0x0D, 0x41, 0x09, 0x11, 0x0D, 0x3C, 0x09,
+ .byte 0x15, 0x0D, 0x37, 0x09, 0x18, 0x0D, 0x31, 0x09, 0x1C, 0x0D, 0x2C, 0x09, 0x20, 0x0D, 0x27, 0x09,
+ .byte 0x23, 0x0D, 0x22, 0x09, 0x27, 0x0D, 0x1D, 0x09, 0x2A, 0x0D, 0x18, 0x09, 0x2E, 0x0D, 0x12, 0x09,
+ .byte 0x32, 0x0D, 0x0D, 0x09, 0x35, 0x0D, 0x08, 0x09, 0x39, 0x0D, 0x03, 0x09, 0x3C, 0x0D, 0xFE, 0x08,
+ .byte 0x40, 0x0D, 0xF8, 0x08, 0x43, 0x0D, 0xF3, 0x08, 0x47, 0x0D, 0xEE, 0x08, 0x4A, 0x0D, 0xE9, 0x08,
+ .byte 0x4E, 0x0D, 0xE4, 0x08, 0x51, 0x0D, 0xDE, 0x08, 0x55, 0x0D, 0xD9, 0x08, 0x58, 0x0D, 0xD4, 0x08,
+ .byte 0x5C, 0x0D, 0xCF, 0x08, 0x5F, 0x0D, 0xC9, 0x08, 0x62, 0x0D, 0xC4, 0x08, 0x66, 0x0D, 0xBF, 0x08,
+ .byte 0x69, 0x0D, 0xBA, 0x08, 0x6D, 0x0D, 0xB4, 0x08, 0x70, 0x0D, 0xAF, 0x08, 0x74, 0x0D, 0xAA, 0x08,
+ .byte 0x77, 0x0D, 0xA5, 0x08, 0x7A, 0x0D, 0x9F, 0x08, 0x7E, 0x0D, 0x9A, 0x08, 0x81, 0x0D, 0x95, 0x08,
+ .byte 0x85, 0x0D, 0x8F, 0x08, 0x88, 0x0D, 0x8A, 0x08, 0x8B, 0x0D, 0x85, 0x08, 0x8F, 0x0D, 0x7F, 0x08,
+ .byte 0x92, 0x0D, 0x7A, 0x08, 0x95, 0x0D, 0x75, 0x08, 0x99, 0x0D, 0x6F, 0x08, 0x9C, 0x0D, 0x6A, 0x08,
+ .byte 0x9F, 0x0D, 0x65, 0x08, 0xA2, 0x0D, 0x5F, 0x08, 0xA6, 0x0D, 0x5A, 0x08, 0xA9, 0x0D, 0x55, 0x08,
+ .byte 0xAC, 0x0D, 0x4F, 0x08, 0xB0, 0x0D, 0x4A, 0x08, 0xB3, 0x0D, 0x45, 0x08, 0xB6, 0x0D, 0x3F, 0x08,
+ .byte 0xB9, 0x0D, 0x3A, 0x08, 0xBC, 0x0D, 0x34, 0x08, 0xC0, 0x0D, 0x2F, 0x08, 0xC3, 0x0D, 0x2A, 0x08,
+ .byte 0xC6, 0x0D, 0x24, 0x08, 0xC9, 0x0D, 0x1F, 0x08, 0xCC, 0x0D, 0x19, 0x08, 0xD0, 0x0D, 0x14, 0x08,
+ .byte 0xD3, 0x0D, 0x0E, 0x08, 0xD6, 0x0D, 0x09, 0x08, 0xD9, 0x0D, 0x04, 0x08, 0xDC, 0x0D, 0xFE, 0x07,
+ .byte 0xDF, 0x0D, 0xF9, 0x07, 0xE3, 0x0D, 0xF3, 0x07, 0xE6, 0x0D, 0xEE, 0x07, 0xE9, 0x0D, 0xE8, 0x07,
+ .byte 0xEC, 0x0D, 0xE3, 0x07, 0xEF, 0x0D, 0xDD, 0x07, 0xF2, 0x0D, 0xD8, 0x07, 0xF5, 0x0D, 0xD2, 0x07,
+ .byte 0xF8, 0x0D, 0xCD, 0x07, 0xFB, 0x0D, 0xC8, 0x07, 0xFE, 0x0D, 0xC2, 0x07, 0x01, 0x0E, 0xBD, 0x07,
+ .byte 0x04, 0x0E, 0xB7, 0x07, 0x07, 0x0E, 0xB2, 0x07, 0x0A, 0x0E, 0xAC, 0x07, 0x0D, 0x0E, 0xA6, 0x07,
+ .byte 0x10, 0x0E, 0xA1, 0x07, 0x13, 0x0E, 0x9B, 0x07, 0x16, 0x0E, 0x96, 0x07, 0x19, 0x0E, 0x90, 0x07,
+ .byte 0x1C, 0x0E, 0x8B, 0x07, 0x1F, 0x0E, 0x85, 0x07, 0x22, 0x0E, 0x80, 0x07, 0x25, 0x0E, 0x7A, 0x07,
+ .byte 0x28, 0x0E, 0x75, 0x07, 0x2B, 0x0E, 0x6F, 0x07, 0x2E, 0x0E, 0x6A, 0x07, 0x31, 0x0E, 0x64, 0x07,
+ .byte 0x34, 0x0E, 0x5E, 0x07, 0x37, 0x0E, 0x59, 0x07, 0x3A, 0x0E, 0x53, 0x07, 0x3C, 0x0E, 0x4E, 0x07,
+ .byte 0x3F, 0x0E, 0x48, 0x07, 0x42, 0x0E, 0x42, 0x07, 0x45, 0x0E, 0x3D, 0x07, 0x48, 0x0E, 0x37, 0x07,
+ .byte 0x4B, 0x0E, 0x32, 0x07, 0x4D, 0x0E, 0x2C, 0x07, 0x50, 0x0E, 0x26, 0x07, 0x53, 0x0E, 0x21, 0x07,
+ .byte 0x56, 0x0E, 0x1B, 0x07, 0x59, 0x0E, 0x15, 0x07, 0x5B, 0x0E, 0x10, 0x07, 0x5E, 0x0E, 0x0A, 0x07,
+ .byte 0x61, 0x0E, 0x05, 0x07, 0x64, 0x0E, 0xFF, 0x06, 0x66, 0x0E, 0xF9, 0x06, 0x69, 0x0E, 0xF4, 0x06,
+ .byte 0x6C, 0x0E, 0xEE, 0x06, 0x6F, 0x0E, 0xE8, 0x06, 0x71, 0x0E, 0xE3, 0x06, 0x74, 0x0E, 0xDD, 0x06,
+ .byte 0x77, 0x0E, 0xD7, 0x06, 0x79, 0x0E, 0xD2, 0x06, 0x7C, 0x0E, 0xCC, 0x06, 0x7F, 0x0E, 0xC6, 0x06,
+ .byte 0x81, 0x0E, 0xC1, 0x06, 0x84, 0x0E, 0xBB, 0x06, 0x87, 0x0E, 0xB5, 0x06, 0x89, 0x0E, 0xAF, 0x06,
+ .byte 0x8C, 0x0E, 0xAA, 0x06, 0x8F, 0x0E, 0xA4, 0x06, 0x91, 0x0E, 0x9E, 0x06, 0x94, 0x0E, 0x99, 0x06,
+ .byte 0x96, 0x0E, 0x93, 0x06, 0x99, 0x0E, 0x8D, 0x06, 0x9B, 0x0E, 0x87, 0x06, 0x9E, 0x0E, 0x82, 0x06,
+ .byte 0xA1, 0x0E, 0x7C, 0x06, 0xA3, 0x0E, 0x76, 0x06, 0xA6, 0x0E, 0x70, 0x06, 0xA8, 0x0E, 0x6B, 0x06,
+ .byte 0xAB, 0x0E, 0x65, 0x06, 0xAD, 0x0E, 0x5F, 0x06, 0xB0, 0x0E, 0x59, 0x06, 0xB2, 0x0E, 0x54, 0x06,
+ .byte 0xB5, 0x0E, 0x4E, 0x06, 0xB7, 0x0E, 0x48, 0x06, 0xBA, 0x0E, 0x42, 0x06, 0xBC, 0x0E, 0x3C, 0x06,
+ .byte 0xBF, 0x0E, 0x37, 0x06, 0xC1, 0x0E, 0x31, 0x06, 0xC3, 0x0E, 0x2B, 0x06, 0xC6, 0x0E, 0x25, 0x06,
+ .byte 0xC8, 0x0E, 0x1F, 0x06, 0xCB, 0x0E, 0x1A, 0x06, 0xCD, 0x0E, 0x14, 0x06, 0xCF, 0x0E, 0x0E, 0x06,
+ .byte 0xD2, 0x0E, 0x08, 0x06, 0xD4, 0x0E, 0x02, 0x06, 0xD6, 0x0E, 0xFD, 0x05, 0xD9, 0x0E, 0xF7, 0x05,
+ .byte 0xDB, 0x0E, 0xF1, 0x05, 0xDD, 0x0E, 0xEB, 0x05, 0xE0, 0x0E, 0xE5, 0x05, 0xE2, 0x0E, 0xDF, 0x05,
+ .byte 0xE4, 0x0E, 0xDA, 0x05, 0xE7, 0x0E, 0xD4, 0x05, 0xE9, 0x0E, 0xCE, 0x05, 0xEB, 0x0E, 0xC8, 0x05,
+ .byte 0xEE, 0x0E, 0xC2, 0x05, 0xF0, 0x0E, 0xBC, 0x05, 0xF2, 0x0E, 0xB6, 0x05, 0xF4, 0x0E, 0xB1, 0x05,
+ .byte 0xF7, 0x0E, 0xAB, 0x05, 0xF9, 0x0E, 0xA5, 0x05, 0xFB, 0x0E, 0x9F, 0x05, 0xFD, 0x0E, 0x99, 0x05,
+ .byte 0xFF, 0x0E, 0x93, 0x05, 0x02, 0x0F, 0x8D, 0x05, 0x04, 0x0F, 0x87, 0x05, 0x06, 0x0F, 0x81, 0x05,
+ .byte 0x08, 0x0F, 0x7C, 0x05, 0x0A, 0x0F, 0x76, 0x05, 0x0C, 0x0F, 0x70, 0x05, 0x0E, 0x0F, 0x6A, 0x05,
+ .byte 0x11, 0x0F, 0x64, 0x05, 0x13, 0x0F, 0x5E, 0x05, 0x15, 0x0F, 0x58, 0x05, 0x17, 0x0F, 0x52, 0x05,
+ .byte 0x19, 0x0F, 0x4C, 0x05, 0x1B, 0x0F, 0x46, 0x05, 0x1D, 0x0F, 0x40, 0x05, 0x1F, 0x0F, 0x3A, 0x05,
+ .byte 0x21, 0x0F, 0x34, 0x05, 0x23, 0x0F, 0x2F, 0x05, 0x25, 0x0F, 0x29, 0x05, 0x27, 0x0F, 0x23, 0x05,
+ .byte 0x29, 0x0F, 0x1D, 0x05, 0x2B, 0x0F, 0x17, 0x05, 0x2D, 0x0F, 0x11, 0x05, 0x2F, 0x0F, 0x0B, 0x05,
+ .byte 0x31, 0x0F, 0x05, 0x05, 0x33, 0x0F, 0xFF, 0x04, 0x35, 0x0F, 0xF9, 0x04, 0x37, 0x0F, 0xF3, 0x04,
+ .byte 0x39, 0x0F, 0xED, 0x04, 0x3B, 0x0F, 0xE7, 0x04, 0x3D, 0x0F, 0xE1, 0x04, 0x3F, 0x0F, 0xDB, 0x04,
+ .byte 0x41, 0x0F, 0xD5, 0x04, 0x43, 0x0F, 0xCF, 0x04, 0x45, 0x0F, 0xC9, 0x04, 0x46, 0x0F, 0xC3, 0x04,
+ .byte 0x48, 0x0F, 0xBD, 0x04, 0x4A, 0x0F, 0xB7, 0x04, 0x4C, 0x0F, 0xB1, 0x04, 0x4E, 0x0F, 0xAB, 0x04,
+ .byte 0x50, 0x0F, 0xA5, 0x04, 0x51, 0x0F, 0x9F, 0x04, 0x53, 0x0F, 0x99, 0x04, 0x55, 0x0F, 0x93, 0x04,
+ .byte 0x57, 0x0F, 0x8D, 0x04, 0x59, 0x0F, 0x87, 0x04, 0x5A, 0x0F, 0x81, 0x04, 0x5C, 0x0F, 0x7B, 0x04,
+ .byte 0x5E, 0x0F, 0x75, 0x04, 0x60, 0x0F, 0x6F, 0x04, 0x61, 0x0F, 0x69, 0x04, 0x63, 0x0F, 0x63, 0x04,
+ .byte 0x65, 0x0F, 0x5D, 0x04, 0x67, 0x0F, 0x57, 0x04, 0x68, 0x0F, 0x51, 0x04, 0x6A, 0x0F, 0x4B, 0x04,
+ .byte 0x6C, 0x0F, 0x44, 0x04, 0x6D, 0x0F, 0x3E, 0x04, 0x6F, 0x0F, 0x38, 0x04, 0x71, 0x0F, 0x32, 0x04,
+ .byte 0x72, 0x0F, 0x2C, 0x04, 0x74, 0x0F, 0x26, 0x04, 0x76, 0x0F, 0x20, 0x04, 0x77, 0x0F, 0x1A, 0x04,
+ .byte 0x79, 0x0F, 0x14, 0x04, 0x7A, 0x0F, 0x0E, 0x04, 0x7C, 0x0F, 0x08, 0x04, 0x7D, 0x0F, 0x02, 0x04,
+ .byte 0x7F, 0x0F, 0xFC, 0x03, 0x81, 0x0F, 0xF6, 0x03, 0x82, 0x0F, 0xEF, 0x03, 0x84, 0x0F, 0xE9, 0x03,
+ .byte 0x85, 0x0F, 0xE3, 0x03, 0x87, 0x0F, 0xDD, 0x03, 0x88, 0x0F, 0xD7, 0x03, 0x8A, 0x0F, 0xD1, 0x03,
+ .byte 0x8B, 0x0F, 0xCB, 0x03, 0x8D, 0x0F, 0xC5, 0x03, 0x8E, 0x0F, 0xBF, 0x03, 0x90, 0x0F, 0xB9, 0x03,
+ .byte 0x91, 0x0F, 0xB2, 0x03, 0x93, 0x0F, 0xAC, 0x03, 0x94, 0x0F, 0xA6, 0x03, 0x95, 0x0F, 0xA0, 0x03,
+ .byte 0x97, 0x0F, 0x9A, 0x03, 0x98, 0x0F, 0x94, 0x03, 0x9A, 0x0F, 0x8E, 0x03, 0x9B, 0x0F, 0x88, 0x03,
+ .byte 0x9C, 0x0F, 0x81, 0x03, 0x9E, 0x0F, 0x7B, 0x03, 0x9F, 0x0F, 0x75, 0x03, 0xA1, 0x0F, 0x6F, 0x03,
+ .byte 0xA2, 0x0F, 0x69, 0x03, 0xA3, 0x0F, 0x63, 0x03, 0xA5, 0x0F, 0x5D, 0x03, 0xA6, 0x0F, 0x56, 0x03,
+ .byte 0xA7, 0x0F, 0x50, 0x03, 0xA8, 0x0F, 0x4A, 0x03, 0xAA, 0x0F, 0x44, 0x03, 0xAB, 0x0F, 0x3E, 0x03,
+ .byte 0xAC, 0x0F, 0x38, 0x03, 0xAE, 0x0F, 0x32, 0x03, 0xAF, 0x0F, 0x2B, 0x03, 0xB0, 0x0F, 0x25, 0x03,
+ .byte 0xB1, 0x0F, 0x1F, 0x03, 0xB3, 0x0F, 0x19, 0x03, 0xB4, 0x0F, 0x13, 0x03, 0xB5, 0x0F, 0x0D, 0x03,
+ .byte 0xB6, 0x0F, 0x06, 0x03, 0xB7, 0x0F, 0x00, 0x03, 0xB8, 0x0F, 0xFA, 0x02, 0xBA, 0x0F, 0xF4, 0x02,
+ .byte 0xBB, 0x0F, 0xEE, 0x02, 0xBC, 0x0F, 0xE8, 0x02, 0xBD, 0x0F, 0xE1, 0x02, 0xBE, 0x0F, 0xDB, 0x02,
+ .byte 0xBF, 0x0F, 0xD5, 0x02, 0xC0, 0x0F, 0xCF, 0x02, 0xC2, 0x0F, 0xC9, 0x02, 0xC3, 0x0F, 0xC2, 0x02,
+ .byte 0xC4, 0x0F, 0xBC, 0x02, 0xC5, 0x0F, 0xB6, 0x02, 0xC6, 0x0F, 0xB0, 0x02, 0xC7, 0x0F, 0xAA, 0x02,
+ .byte 0xC8, 0x0F, 0xA3, 0x02, 0xC9, 0x0F, 0x9D, 0x02, 0xCA, 0x0F, 0x97, 0x02, 0xCB, 0x0F, 0x91, 0x02,
+ .byte 0xCC, 0x0F, 0x8B, 0x02, 0xCD, 0x0F, 0x84, 0x02, 0xCE, 0x0F, 0x7E, 0x02, 0xCF, 0x0F, 0x78, 0x02,
+ .byte 0xD0, 0x0F, 0x72, 0x02, 0xD1, 0x0F, 0x6C, 0x02, 0xD2, 0x0F, 0x65, 0x02, 0xD3, 0x0F, 0x5F, 0x02,
+ .byte 0xD4, 0x0F, 0x59, 0x02, 0xD5, 0x0F, 0x53, 0x02, 0xD5, 0x0F, 0x4D, 0x02, 0xD6, 0x0F, 0x46, 0x02,
+ .byte 0xD7, 0x0F, 0x40, 0x02, 0xD8, 0x0F, 0x3A, 0x02, 0xD9, 0x0F, 0x34, 0x02, 0xDA, 0x0F, 0x2D, 0x02,
+ .byte 0xDB, 0x0F, 0x27, 0x02, 0xDC, 0x0F, 0x21, 0x02, 0xDC, 0x0F, 0x1B, 0x02, 0xDD, 0x0F, 0x15, 0x02,
+ .byte 0xDE, 0x0F, 0x0E, 0x02, 0xDF, 0x0F, 0x08, 0x02, 0xE0, 0x0F, 0x02, 0x02, 0xE0, 0x0F, 0xFC, 0x01,
+ .byte 0xE1, 0x0F, 0xF5, 0x01, 0xE2, 0x0F, 0xEF, 0x01, 0xE3, 0x0F, 0xE9, 0x01, 0xE3, 0x0F, 0xE3, 0x01,
+ .byte 0xE4, 0x0F, 0xDC, 0x01, 0xE5, 0x0F, 0xD6, 0x01, 0xE6, 0x0F, 0xD0, 0x01, 0xE6, 0x0F, 0xCA, 0x01,
+ .byte 0xE7, 0x0F, 0xC3, 0x01, 0xE8, 0x0F, 0xBD, 0x01, 0xE8, 0x0F, 0xB7, 0x01, 0xE9, 0x0F, 0xB1, 0x01,
+ .byte 0xEA, 0x0F, 0xAA, 0x01, 0xEA, 0x0F, 0xA4, 0x01, 0xEB, 0x0F, 0x9E, 0x01, 0xEC, 0x0F, 0x98, 0x01,
+ .byte 0xEC, 0x0F, 0x91, 0x01, 0xED, 0x0F, 0x8B, 0x01, 0xED, 0x0F, 0x85, 0x01, 0xEE, 0x0F, 0x7F, 0x01,
+ .byte 0xEF, 0x0F, 0x78, 0x01, 0xEF, 0x0F, 0x72, 0x01, 0xF0, 0x0F, 0x6C, 0x01, 0xF0, 0x0F, 0x66, 0x01,
+ .byte 0xF1, 0x0F, 0x5F, 0x01, 0xF1, 0x0F, 0x59, 0x01, 0xF2, 0x0F, 0x53, 0x01, 0xF2, 0x0F, 0x4D, 0x01,
+ .byte 0xF3, 0x0F, 0x46, 0x01, 0xF3, 0x0F, 0x40, 0x01, 0xF4, 0x0F, 0x3A, 0x01, 0xF4, 0x0F, 0x34, 0x01,
+ .byte 0xF5, 0x0F, 0x2D, 0x01, 0xF5, 0x0F, 0x27, 0x01, 0xF6, 0x0F, 0x21, 0x01, 0xF6, 0x0F, 0x1B, 0x01,
+ .byte 0xF7, 0x0F, 0x14, 0x01, 0xF7, 0x0F, 0x0E, 0x01, 0xF8, 0x0F, 0x08, 0x01, 0xF8, 0x0F, 0x01, 0x01,
+ .byte 0xF8, 0x0F, 0xFB, 0x00, 0xF9, 0x0F, 0xF5, 0x00, 0xF9, 0x0F, 0xEF, 0x00, 0xF9, 0x0F, 0xE8, 0x00,
+ .byte 0xFA, 0x0F, 0xE2, 0x00, 0xFA, 0x0F, 0xDC, 0x00, 0xFA, 0x0F, 0xD6, 0x00, 0xFB, 0x0F, 0xCF, 0x00,
+ .byte 0xFB, 0x0F, 0xC9, 0x00, 0xFB, 0x0F, 0xC3, 0x00, 0xFC, 0x0F, 0xBC, 0x00, 0xFC, 0x0F, 0xB6, 0x00,
+ .byte 0xFC, 0x0F, 0xB0, 0x00, 0xFC, 0x0F, 0xAA, 0x00, 0xFD, 0x0F, 0xA3, 0x00, 0xFD, 0x0F, 0x9D, 0x00,
+ .byte 0xFD, 0x0F, 0x97, 0x00, 0xFD, 0x0F, 0x90, 0x00, 0xFE, 0x0F, 0x8A, 0x00, 0xFE, 0x0F, 0x84, 0x00,
+ .byte 0xFE, 0x0F, 0x7E, 0x00, 0xFE, 0x0F, 0x77, 0x00, 0xFE, 0x0F, 0x71, 0x00, 0xFF, 0x0F, 0x6B, 0x00,
+ .byte 0xFF, 0x0F, 0x65, 0x00, 0xFF, 0x0F, 0x5E, 0x00, 0xFF, 0x0F, 0x58, 0x00, 0xFF, 0x0F, 0x52, 0x00,
+ .byte 0xFF, 0x0F, 0x4B, 0x00, 0xFF, 0x0F, 0x45, 0x00, 0x00, 0x10, 0x3F, 0x00, 0x00, 0x10, 0x39, 0x00,
+ .byte 0x00, 0x10, 0x32, 0x00, 0x00, 0x10, 0x2C, 0x00, 0x00, 0x10, 0x26, 0x00, 0x00, 0x10, 0x1F, 0x00,
+ .byte 0x00, 0x10, 0x19, 0x00, 0x00, 0x10, 0x13, 0x00, 0x00, 0x10, 0x0D, 0x00, 0x00, 0x10, 0x06, 0x00,
+ .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0xFA, 0xFF, 0x00, 0x10, 0xF3, 0xFF, 0x00, 0x10, 0xED, 0xFF,
+ .byte 0x00, 0x10, 0xE7, 0xFF, 0x00, 0x10, 0xE1, 0xFF, 0x00, 0x10, 0xDA, 0xFF, 0x00, 0x10, 0xD4, 0xFF,
+ .byte 0x00, 0x10, 0xCE, 0xFF, 0x00, 0x10, 0xC7, 0xFF, 0x00, 0x10, 0xC1, 0xFF, 0xFF, 0x0F, 0xBB, 0xFF,
+ .byte 0xFF, 0x0F, 0xB5, 0xFF, 0xFF, 0x0F, 0xAE, 0xFF, 0xFF, 0x0F, 0xA8, 0xFF, 0xFF, 0x0F, 0xA2, 0xFF,
+ .byte 0xFF, 0x0F, 0x9B, 0xFF, 0xFF, 0x0F, 0x95, 0xFF, 0xFE, 0x0F, 0x8F, 0xFF, 0xFE, 0x0F, 0x89, 0xFF,
+ .byte 0xFE, 0x0F, 0x82, 0xFF, 0xFE, 0x0F, 0x7C, 0xFF, 0xFE, 0x0F, 0x76, 0xFF, 0xFD, 0x0F, 0x70, 0xFF,
+ .byte 0xFD, 0x0F, 0x69, 0xFF, 0xFD, 0x0F, 0x63, 0xFF, 0xFD, 0x0F, 0x5D, 0xFF, 0xFC, 0x0F, 0x56, 0xFF,
+ .byte 0xFC, 0x0F, 0x50, 0xFF, 0xFC, 0x0F, 0x4A, 0xFF, 0xFC, 0x0F, 0x44, 0xFF, 0xFB, 0x0F, 0x3D, 0xFF,
+ .byte 0xFB, 0x0F, 0x37, 0xFF, 0xFB, 0x0F, 0x31, 0xFF, 0xFA, 0x0F, 0x2A, 0xFF, 0xFA, 0x0F, 0x24, 0xFF,
+ .byte 0xFA, 0x0F, 0x1E, 0xFF, 0xF9, 0x0F, 0x18, 0xFF, 0xF9, 0x0F, 0x11, 0xFF, 0xF9, 0x0F, 0x0B, 0xFF,
+ .byte 0xF8, 0x0F, 0x05, 0xFF, 0xF8, 0x0F, 0xFF, 0xFE, 0xF8, 0x0F, 0xF8, 0xFE, 0xF7, 0x0F, 0xF2, 0xFE,
+ .byte 0xF7, 0x0F, 0xEC, 0xFE, 0xF6, 0x0F, 0xE5, 0xFE, 0xF6, 0x0F, 0xDF, 0xFE, 0xF5, 0x0F, 0xD9, 0xFE,
+ .byte 0xF5, 0x0F, 0xD3, 0xFE, 0xF4, 0x0F, 0xCC, 0xFE, 0xF4, 0x0F, 0xC6, 0xFE, 0xF3, 0x0F, 0xC0, 0xFE,
+ .byte 0xF3, 0x0F, 0xBA, 0xFE, 0xF2, 0x0F, 0xB3, 0xFE, 0xF2, 0x0F, 0xAD, 0xFE, 0xF1, 0x0F, 0xA7, 0xFE,
+ .byte 0xF1, 0x0F, 0xA1, 0xFE, 0xF0, 0x0F, 0x9A, 0xFE, 0xF0, 0x0F, 0x94, 0xFE, 0xEF, 0x0F, 0x8E, 0xFE,
+ .byte 0xEF, 0x0F, 0x88, 0xFE, 0xEE, 0x0F, 0x81, 0xFE, 0xED, 0x0F, 0x7B, 0xFE, 0xED, 0x0F, 0x75, 0xFE,
+ .byte 0xEC, 0x0F, 0x6F, 0xFE, 0xEC, 0x0F, 0x68, 0xFE, 0xEB, 0x0F, 0x62, 0xFE, 0xEA, 0x0F, 0x5C, 0xFE,
+ .byte 0xEA, 0x0F, 0x56, 0xFE, 0xE9, 0x0F, 0x4F, 0xFE, 0xE8, 0x0F, 0x49, 0xFE, 0xE8, 0x0F, 0x43, 0xFE,
+ .byte 0xE7, 0x0F, 0x3D, 0xFE, 0xE6, 0x0F, 0x36, 0xFE, 0xE6, 0x0F, 0x30, 0xFE, 0xE5, 0x0F, 0x2A, 0xFE,
+ .byte 0xE4, 0x0F, 0x24, 0xFE, 0xE3, 0x0F, 0x1D, 0xFE, 0xE3, 0x0F, 0x17, 0xFE, 0xE2, 0x0F, 0x11, 0xFE,
+ .byte 0xE1, 0x0F, 0x0B, 0xFE, 0xE0, 0x0F, 0x04, 0xFE, 0xE0, 0x0F, 0xFE, 0xFD, 0xDF, 0x0F, 0xF8, 0xFD,
+ .byte 0xDE, 0x0F, 0xF2, 0xFD, 0xDD, 0x0F, 0xEB, 0xFD, 0xDC, 0x0F, 0xE5, 0xFD, 0xDC, 0x0F, 0xDF, 0xFD,
+ .byte 0xDB, 0x0F, 0xD9, 0xFD, 0xDA, 0x0F, 0xD3, 0xFD, 0xD9, 0x0F, 0xCC, 0xFD, 0xD8, 0x0F, 0xC6, 0xFD,
+ .byte 0xD7, 0x0F, 0xC0, 0xFD, 0xD6, 0x0F, 0xBA, 0xFD, 0xD5, 0x0F, 0xB3, 0xFD, 0xD5, 0x0F, 0xAD, 0xFD,
+ .byte 0xD4, 0x0F, 0xA7, 0xFD, 0xD3, 0x0F, 0xA1, 0xFD, 0xD2, 0x0F, 0x9B, 0xFD, 0xD1, 0x0F, 0x94, 0xFD,
+ .byte 0xD0, 0x0F, 0x8E, 0xFD, 0xCF, 0x0F, 0x88, 0xFD, 0xCE, 0x0F, 0x82, 0xFD, 0xCD, 0x0F, 0x7C, 0xFD,
+ .byte 0xCC, 0x0F, 0x75, 0xFD, 0xCB, 0x0F, 0x6F, 0xFD, 0xCA, 0x0F, 0x69, 0xFD, 0xC9, 0x0F, 0x63, 0xFD,
+ .byte 0xC8, 0x0F, 0x5D, 0xFD, 0xC7, 0x0F, 0x56, 0xFD, 0xC6, 0x0F, 0x50, 0xFD, 0xC5, 0x0F, 0x4A, 0xFD,
+ .byte 0xC4, 0x0F, 0x44, 0xFD, 0xC3, 0x0F, 0x3E, 0xFD, 0xC2, 0x0F, 0x37, 0xFD, 0xC0, 0x0F, 0x31, 0xFD,
+ .byte 0xBF, 0x0F, 0x2B, 0xFD, 0xBE, 0x0F, 0x25, 0xFD, 0xBD, 0x0F, 0x1F, 0xFD, 0xBC, 0x0F, 0x18, 0xFD,
+ .byte 0xBB, 0x0F, 0x12, 0xFD, 0xBA, 0x0F, 0x0C, 0xFD, 0xB8, 0x0F, 0x06, 0xFD, 0xB7, 0x0F, 0x00, 0xFD,
+ .byte 0xB6, 0x0F, 0xFA, 0xFC, 0xB5, 0x0F, 0xF3, 0xFC, 0xB4, 0x0F, 0xED, 0xFC, 0xB3, 0x0F, 0xE7, 0xFC,
+ .byte 0xB1, 0x0F, 0xE1, 0xFC, 0xB0, 0x0F, 0xDB, 0xFC, 0xAF, 0x0F, 0xD5, 0xFC, 0xAE, 0x0F, 0xCE, 0xFC,
+ .byte 0xAC, 0x0F, 0xC8, 0xFC, 0xAB, 0x0F, 0xC2, 0xFC, 0xAA, 0x0F, 0xBC, 0xFC, 0xA8, 0x0F, 0xB6, 0xFC,
+ .byte 0xA7, 0x0F, 0xB0, 0xFC, 0xA6, 0x0F, 0xAA, 0xFC, 0xA5, 0x0F, 0xA3, 0xFC, 0xA3, 0x0F, 0x9D, 0xFC,
+ .byte 0xA2, 0x0F, 0x97, 0xFC, 0xA1, 0x0F, 0x91, 0xFC, 0x9F, 0x0F, 0x8B, 0xFC, 0x9E, 0x0F, 0x85, 0xFC,
+ .byte 0x9C, 0x0F, 0x7F, 0xFC, 0x9B, 0x0F, 0x78, 0xFC, 0x9A, 0x0F, 0x72, 0xFC, 0x98, 0x0F, 0x6C, 0xFC,
+ .byte 0x97, 0x0F, 0x66, 0xFC, 0x95, 0x0F, 0x60, 0xFC, 0x94, 0x0F, 0x5A, 0xFC, 0x93, 0x0F, 0x54, 0xFC,
+ .byte 0x91, 0x0F, 0x4E, 0xFC, 0x90, 0x0F, 0x47, 0xFC, 0x8E, 0x0F, 0x41, 0xFC, 0x8D, 0x0F, 0x3B, 0xFC,
+ .byte 0x8B, 0x0F, 0x35, 0xFC, 0x8A, 0x0F, 0x2F, 0xFC, 0x88, 0x0F, 0x29, 0xFC, 0x87, 0x0F, 0x23, 0xFC,
+ .byte 0x85, 0x0F, 0x1D, 0xFC, 0x84, 0x0F, 0x17, 0xFC, 0x82, 0x0F, 0x11, 0xFC, 0x81, 0x0F, 0x0A, 0xFC,
+ .byte 0x7F, 0x0F, 0x04, 0xFC, 0x7D, 0x0F, 0xFE, 0xFB, 0x7C, 0x0F, 0xF8, 0xFB, 0x7A, 0x0F, 0xF2, 0xFB,
+ .byte 0x79, 0x0F, 0xEC, 0xFB, 0x77, 0x0F, 0xE6, 0xFB, 0x76, 0x0F, 0xE0, 0xFB, 0x74, 0x0F, 0xDA, 0xFB,
+ .byte 0x72, 0x0F, 0xD4, 0xFB, 0x71, 0x0F, 0xCE, 0xFB, 0x6F, 0x0F, 0xC8, 0xFB, 0x6D, 0x0F, 0xC2, 0xFB,
+ .byte 0x6C, 0x0F, 0xBC, 0xFB, 0x6A, 0x0F, 0xB5, 0xFB, 0x68, 0x0F, 0xAF, 0xFB, 0x67, 0x0F, 0xA9, 0xFB,
+ .byte 0x65, 0x0F, 0xA3, 0xFB, 0x63, 0x0F, 0x9D, 0xFB, 0x61, 0x0F, 0x97, 0xFB, 0x60, 0x0F, 0x91, 0xFB,
+ .byte 0x5E, 0x0F, 0x8B, 0xFB, 0x5C, 0x0F, 0x85, 0xFB, 0x5A, 0x0F, 0x7F, 0xFB, 0x59, 0x0F, 0x79, 0xFB,
+ .byte 0x57, 0x0F, 0x73, 0xFB, 0x55, 0x0F, 0x6D, 0xFB, 0x53, 0x0F, 0x67, 0xFB, 0x51, 0x0F, 0x61, 0xFB,
+ .byte 0x50, 0x0F, 0x5B, 0xFB, 0x4E, 0x0F, 0x55, 0xFB, 0x4C, 0x0F, 0x4F, 0xFB, 0x4A, 0x0F, 0x49, 0xFB,
+ .byte 0x48, 0x0F, 0x43, 0xFB, 0x46, 0x0F, 0x3D, 0xFB, 0x45, 0x0F, 0x37, 0xFB, 0x43, 0x0F, 0x31, 0xFB,
+ .byte 0x41, 0x0F, 0x2B, 0xFB, 0x3F, 0x0F, 0x25, 0xFB, 0x3D, 0x0F, 0x1F, 0xFB, 0x3B, 0x0F, 0x19, 0xFB,
+ .byte 0x39, 0x0F, 0x13, 0xFB, 0x37, 0x0F, 0x0D, 0xFB, 0x35, 0x0F, 0x07, 0xFB, 0x33, 0x0F, 0x01, 0xFB,
+ .byte 0x31, 0x0F, 0xFB, 0xFA, 0x2F, 0x0F, 0xF5, 0xFA, 0x2D, 0x0F, 0xEF, 0xFA, 0x2B, 0x0F, 0xE9, 0xFA,
+ .byte 0x29, 0x0F, 0xE3, 0xFA, 0x27, 0x0F, 0xDD, 0xFA, 0x25, 0x0F, 0xD7, 0xFA, 0x23, 0x0F, 0xD1, 0xFA,
+ .byte 0x21, 0x0F, 0xCC, 0xFA, 0x1F, 0x0F, 0xC6, 0xFA, 0x1D, 0x0F, 0xC0, 0xFA, 0x1B, 0x0F, 0xBA, 0xFA,
+ .byte 0x19, 0x0F, 0xB4, 0xFA, 0x17, 0x0F, 0xAE, 0xFA, 0x15, 0x0F, 0xA8, 0xFA, 0x13, 0x0F, 0xA2, 0xFA,
+ .byte 0x11, 0x0F, 0x9C, 0xFA, 0x0E, 0x0F, 0x96, 0xFA, 0x0C, 0x0F, 0x90, 0xFA, 0x0A, 0x0F, 0x8A, 0xFA,
+ .byte 0x08, 0x0F, 0x84, 0xFA, 0x06, 0x0F, 0x7F, 0xFA, 0x04, 0x0F, 0x79, 0xFA, 0x02, 0x0F, 0x73, 0xFA,
+ .byte 0xFF, 0x0E, 0x6D, 0xFA, 0xFD, 0x0E, 0x67, 0xFA, 0xFB, 0x0E, 0x61, 0xFA, 0xF9, 0x0E, 0x5B, 0xFA,
+ .byte 0xF7, 0x0E, 0x55, 0xFA, 0xF4, 0x0E, 0x4F, 0xFA, 0xF2, 0x0E, 0x4A, 0xFA, 0xF0, 0x0E, 0x44, 0xFA,
+ .byte 0xEE, 0x0E, 0x3E, 0xFA, 0xEB, 0x0E, 0x38, 0xFA, 0xE9, 0x0E, 0x32, 0xFA, 0xE7, 0x0E, 0x2C, 0xFA,
+ .byte 0xE4, 0x0E, 0x26, 0xFA, 0xE2, 0x0E, 0x21, 0xFA, 0xE0, 0x0E, 0x1B, 0xFA, 0xDD, 0x0E, 0x15, 0xFA,
+ .byte 0xDB, 0x0E, 0x0F, 0xFA, 0xD9, 0x0E, 0x09, 0xFA, 0xD6, 0x0E, 0x03, 0xFA, 0xD4, 0x0E, 0xFE, 0xF9,
+ .byte 0xD2, 0x0E, 0xF8, 0xF9, 0xCF, 0x0E, 0xF2, 0xF9, 0xCD, 0x0E, 0xEC, 0xF9, 0xCB, 0x0E, 0xE6, 0xF9,
+ .byte 0xC8, 0x0E, 0xE1, 0xF9, 0xC6, 0x0E, 0xDB, 0xF9, 0xC3, 0x0E, 0xD5, 0xF9, 0xC1, 0x0E, 0xCF, 0xF9,
+ .byte 0xBF, 0x0E, 0xC9, 0xF9, 0xBC, 0x0E, 0xC4, 0xF9, 0xBA, 0x0E, 0xBE, 0xF9, 0xB7, 0x0E, 0xB8, 0xF9,
+ .byte 0xB5, 0x0E, 0xB2, 0xF9, 0xB2, 0x0E, 0xAC, 0xF9, 0xB0, 0x0E, 0xA7, 0xF9, 0xAD, 0x0E, 0xA1, 0xF9,
+ .byte 0xAB, 0x0E, 0x9B, 0xF9, 0xA8, 0x0E, 0x95, 0xF9, 0xA6, 0x0E, 0x90, 0xF9, 0xA3, 0x0E, 0x8A, 0xF9,
+ .byte 0xA1, 0x0E, 0x84, 0xF9, 0x9E, 0x0E, 0x7E, 0xF9, 0x9B, 0x0E, 0x79, 0xF9, 0x99, 0x0E, 0x73, 0xF9,
+ .byte 0x96, 0x0E, 0x6D, 0xF9, 0x94, 0x0E, 0x67, 0xF9, 0x91, 0x0E, 0x62, 0xF9, 0x8F, 0x0E, 0x5C, 0xF9,
+ .byte 0x8C, 0x0E, 0x56, 0xF9, 0x89, 0x0E, 0x51, 0xF9, 0x87, 0x0E, 0x4B, 0xF9, 0x84, 0x0E, 0x45, 0xF9,
+ .byte 0x81, 0x0E, 0x3F, 0xF9, 0x7F, 0x0E, 0x3A, 0xF9, 0x7C, 0x0E, 0x34, 0xF9, 0x79, 0x0E, 0x2E, 0xF9,
+ .byte 0x77, 0x0E, 0x29, 0xF9, 0x74, 0x0E, 0x23, 0xF9, 0x71, 0x0E, 0x1D, 0xF9, 0x6F, 0x0E, 0x18, 0xF9,
+ .byte 0x6C, 0x0E, 0x12, 0xF9, 0x69, 0x0E, 0x0C, 0xF9, 0x66, 0x0E, 0x07, 0xF9, 0x64, 0x0E, 0x01, 0xF9,
+ .byte 0x61, 0x0E, 0xFB, 0xF8, 0x5E, 0x0E, 0xF6, 0xF8, 0x5B, 0x0E, 0xF0, 0xF8, 0x59, 0x0E, 0xEB, 0xF8,
+ .byte 0x56, 0x0E, 0xE5, 0xF8, 0x53, 0x0E, 0xDF, 0xF8, 0x50, 0x0E, 0xDA, 0xF8, 0x4D, 0x0E, 0xD4, 0xF8,
+ .byte 0x4B, 0x0E, 0xCE, 0xF8, 0x48, 0x0E, 0xC9, 0xF8, 0x45, 0x0E, 0xC3, 0xF8, 0x42, 0x0E, 0xBE, 0xF8,
+ .byte 0x3F, 0x0E, 0xB8, 0xF8, 0x3C, 0x0E, 0xB2, 0xF8, 0x3A, 0x0E, 0xAD, 0xF8, 0x37, 0x0E, 0xA7, 0xF8,
+ .byte 0x34, 0x0E, 0xA2, 0xF8, 0x31, 0x0E, 0x9C, 0xF8, 0x2E, 0x0E, 0x96, 0xF8, 0x2B, 0x0E, 0x91, 0xF8,
+ .byte 0x28, 0x0E, 0x8B, 0xF8, 0x25, 0x0E, 0x86, 0xF8, 0x22, 0x0E, 0x80, 0xF8, 0x1F, 0x0E, 0x7B, 0xF8,
+ .byte 0x1C, 0x0E, 0x75, 0xF8, 0x19, 0x0E, 0x70, 0xF8, 0x16, 0x0E, 0x6A, 0xF8, 0x13, 0x0E, 0x65, 0xF8,
+ .byte 0x10, 0x0E, 0x5F, 0xF8, 0x0D, 0x0E, 0x5A, 0xF8, 0x0A, 0x0E, 0x54, 0xF8, 0x07, 0x0E, 0x4E, 0xF8,
+ .byte 0x04, 0x0E, 0x49, 0xF8, 0x01, 0x0E, 0x43, 0xF8, 0xFE, 0x0D, 0x3E, 0xF8, 0xFB, 0x0D, 0x38, 0xF8,
+ .byte 0xF8, 0x0D, 0x33, 0xF8, 0xF5, 0x0D, 0x2E, 0xF8, 0xF2, 0x0D, 0x28, 0xF8, 0xEF, 0x0D, 0x23, 0xF8,
+ .byte 0xEC, 0x0D, 0x1D, 0xF8, 0xE9, 0x0D, 0x18, 0xF8, 0xE6, 0x0D, 0x12, 0xF8, 0xE3, 0x0D, 0x0D, 0xF8,
+ .byte 0xDF, 0x0D, 0x07, 0xF8, 0xDC, 0x0D, 0x02, 0xF8, 0xD9, 0x0D, 0xFC, 0xF7, 0xD6, 0x0D, 0xF7, 0xF7,
+ .byte 0xD3, 0x0D, 0xF2, 0xF7, 0xD0, 0x0D, 0xEC, 0xF7, 0xCC, 0x0D, 0xE7, 0xF7, 0xC9, 0x0D, 0xE1, 0xF7,
+ .byte 0xC6, 0x0D, 0xDC, 0xF7, 0xC3, 0x0D, 0xD6, 0xF7, 0xC0, 0x0D, 0xD1, 0xF7, 0xBC, 0x0D, 0xCC, 0xF7,
+ .byte 0xB9, 0x0D, 0xC6, 0xF7, 0xB6, 0x0D, 0xC1, 0xF7, 0xB3, 0x0D, 0xBB, 0xF7, 0xB0, 0x0D, 0xB6, 0xF7,
+ .byte 0xAC, 0x0D, 0xB1, 0xF7, 0xA9, 0x0D, 0xAB, 0xF7, 0xA6, 0x0D, 0xA6, 0xF7, 0xA2, 0x0D, 0xA1, 0xF7,
+ .byte 0x9F, 0x0D, 0x9B, 0xF7, 0x9C, 0x0D, 0x96, 0xF7, 0x99, 0x0D, 0x91, 0xF7, 0x95, 0x0D, 0x8B, 0xF7,
+ .byte 0x92, 0x0D, 0x86, 0xF7, 0x8F, 0x0D, 0x81, 0xF7, 0x8B, 0x0D, 0x7B, 0xF7, 0x88, 0x0D, 0x76, 0xF7,
+ .byte 0x85, 0x0D, 0x71, 0xF7, 0x81, 0x0D, 0x6B, 0xF7, 0x7E, 0x0D, 0x66, 0xF7, 0x7A, 0x0D, 0x61, 0xF7,
+ .byte 0x77, 0x0D, 0x5B, 0xF7, 0x74, 0x0D, 0x56, 0xF7, 0x70, 0x0D, 0x51, 0xF7, 0x6D, 0x0D, 0x4C, 0xF7,
+ .byte 0x69, 0x0D, 0x46, 0xF7, 0x66, 0x0D, 0x41, 0xF7, 0x62, 0x0D, 0x3C, 0xF7, 0x5F, 0x0D, 0x37, 0xF7,
+ .byte 0x5C, 0x0D, 0x31, 0xF7, 0x58, 0x0D, 0x2C, 0xF7, 0x55, 0x0D, 0x27, 0xF7, 0x51, 0x0D, 0x22, 0xF7,
+ .byte 0x4E, 0x0D, 0x1C, 0xF7, 0x4A, 0x0D, 0x17, 0xF7, 0x47, 0x0D, 0x12, 0xF7, 0x43, 0x0D, 0x0D, 0xF7,
+ .byte 0x40, 0x0D, 0x08, 0xF7, 0x3C, 0x0D, 0x02, 0xF7, 0x39, 0x0D, 0xFD, 0xF6, 0x35, 0x0D, 0xF8, 0xF6,
+ .byte 0x32, 0x0D, 0xF3, 0xF6, 0x2E, 0x0D, 0xEE, 0xF6, 0x2A, 0x0D, 0xE8, 0xF6, 0x27, 0x0D, 0xE3, 0xF6,
+ .byte 0x23, 0x0D, 0xDE, 0xF6, 0x20, 0x0D, 0xD9, 0xF6, 0x1C, 0x0D, 0xD4, 0xF6, 0x18, 0x0D, 0xCF, 0xF6,
+ .byte 0x15, 0x0D, 0xC9, 0xF6, 0x11, 0x0D, 0xC4, 0xF6, 0x0E, 0x0D, 0xBF, 0xF6, 0x0A, 0x0D, 0xBA, 0xF6,
+ .byte 0x06, 0x0D, 0xB5, 0xF6, 0x03, 0x0D, 0xB0, 0xF6, 0xFF, 0x0C, 0xAB, 0xF6, 0xFB, 0x0C, 0xA6, 0xF6,
+ .byte 0xF8, 0x0C, 0xA1, 0xF6, 0xF4, 0x0C, 0x9B, 0xF6, 0xF0, 0x0C, 0x96, 0xF6, 0xED, 0x0C, 0x91, 0xF6,
+ .byte 0xE9, 0x0C, 0x8C, 0xF6, 0xE5, 0x0C, 0x87, 0xF6, 0xE1, 0x0C, 0x82, 0xF6, 0xDE, 0x0C, 0x7D, 0xF6,
+ .byte 0xDA, 0x0C, 0x78, 0xF6, 0xD6, 0x0C, 0x73, 0xF6, 0xD2, 0x0C, 0x6E, 0xF6, 0xCF, 0x0C, 0x69, 0xF6,
+ .byte 0xCB, 0x0C, 0x64, 0xF6, 0xC7, 0x0C, 0x5F, 0xF6, 0xC3, 0x0C, 0x5A, 0xF6, 0xC0, 0x0C, 0x55, 0xF6,
+ .byte 0xBC, 0x0C, 0x50, 0xF6, 0xB8, 0x0C, 0x4B, 0xF6, 0xB4, 0x0C, 0x46, 0xF6, 0xB0, 0x0C, 0x41, 0xF6,
+ .byte 0xAC, 0x0C, 0x3C, 0xF6, 0xA9, 0x0C, 0x37, 0xF6, 0xA5, 0x0C, 0x32, 0xF6, 0xA1, 0x0C, 0x2D, 0xF6,
+ .byte 0x9D, 0x0C, 0x28, 0xF6, 0x99, 0x0C, 0x23, 0xF6, 0x95, 0x0C, 0x1E, 0xF6, 0x91, 0x0C, 0x19, 0xF6,
+ .byte 0x8E, 0x0C, 0x14, 0xF6, 0x8A, 0x0C, 0x0F, 0xF6, 0x86, 0x0C, 0x0A, 0xF6, 0x82, 0x0C, 0x05, 0xF6,
+ .byte 0x7E, 0x0C, 0x01, 0xF6, 0x7A, 0x0C, 0xFC, 0xF5, 0x76, 0x0C, 0xF7, 0xF5, 0x72, 0x0C, 0xF2, 0xF5,
+ .byte 0x6E, 0x0C, 0xED, 0xF5, 0x6A, 0x0C, 0xE8, 0xF5, 0x66, 0x0C, 0xE3, 0xF5, 0x62, 0x0C, 0xDE, 0xF5,
+ .byte 0x5E, 0x0C, 0xDA, 0xF5, 0x5A, 0x0C, 0xD5, 0xF5, 0x56, 0x0C, 0xD0, 0xF5, 0x52, 0x0C, 0xCB, 0xF5,
+ .byte 0x4E, 0x0C, 0xC6, 0xF5, 0x4A, 0x0C, 0xC1, 0xF5, 0x46, 0x0C, 0xBC, 0xF5, 0x42, 0x0C, 0xB8, 0xF5,
+ .byte 0x3E, 0x0C, 0xB3, 0xF5, 0x3A, 0x0C, 0xAE, 0xF5, 0x36, 0x0C, 0xA9, 0xF5, 0x32, 0x0C, 0xA4, 0xF5,
+ .byte 0x2E, 0x0C, 0xA0, 0xF5, 0x2A, 0x0C, 0x9B, 0xF5, 0x26, 0x0C, 0x96, 0xF5, 0x22, 0x0C, 0x91, 0xF5,
+ .byte 0x1E, 0x0C, 0x8D, 0xF5, 0x19, 0x0C, 0x88, 0xF5, 0x15, 0x0C, 0x83, 0xF5, 0x11, 0x0C, 0x7E, 0xF5,
+ .byte 0x0D, 0x0C, 0x7A, 0xF5, 0x09, 0x0C, 0x75, 0xF5, 0x05, 0x0C, 0x70, 0xF5, 0x01, 0x0C, 0x6B, 0xF5,
+ .byte 0xFC, 0x0B, 0x67, 0xF5, 0xF8, 0x0B, 0x62, 0xF5, 0xF4, 0x0B, 0x5D, 0xF5, 0xF0, 0x0B, 0x59, 0xF5,
+ .byte 0xEC, 0x0B, 0x54, 0xF5, 0xE8, 0x0B, 0x4F, 0xF5, 0xE3, 0x0B, 0x4B, 0xF5, 0xDF, 0x0B, 0x46, 0xF5,
+ .byte 0xDB, 0x0B, 0x41, 0xF5, 0xD7, 0x0B, 0x3D, 0xF5, 0xD2, 0x0B, 0x38, 0xF5, 0xCE, 0x0B, 0x33, 0xF5,
+ .byte 0xCA, 0x0B, 0x2F, 0xF5, 0xC6, 0x0B, 0x2A, 0xF5, 0xC1, 0x0B, 0x25, 0xF5, 0xBD, 0x0B, 0x21, 0xF5,
+ .byte 0xB9, 0x0B, 0x1C, 0xF5, 0xB5, 0x0B, 0x18, 0xF5, 0xB0, 0x0B, 0x13, 0xF5, 0xAC, 0x0B, 0x0E, 0xF5,
+ .byte 0xA8, 0x0B, 0x0A, 0xF5, 0xA3, 0x0B, 0x05, 0xF5, 0x9F, 0x0B, 0x01, 0xF5, 0x9B, 0x0B, 0xFC, 0xF4,
+ .byte 0x97, 0x0B, 0xF8, 0xF4, 0x92, 0x0B, 0xF3, 0xF4, 0x8E, 0x0B, 0xEF, 0xF4, 0x89, 0x0B, 0xEA, 0xF4,
+ .byte 0x85, 0x0B, 0xE5, 0xF4, 0x81, 0x0B, 0xE1, 0xF4, 0x7C, 0x0B, 0xDC, 0xF4, 0x78, 0x0B, 0xD8, 0xF4,
+ .byte 0x74, 0x0B, 0xD3, 0xF4, 0x6F, 0x0B, 0xCF, 0xF4, 0x6B, 0x0B, 0xCA, 0xF4, 0x66, 0x0B, 0xC6, 0xF4,
+ .byte 0x62, 0x0B, 0xC2, 0xF4, 0x5E, 0x0B, 0xBD, 0xF4, 0x59, 0x0B, 0xB9, 0xF4, 0x55, 0x0B, 0xB4, 0xF4,
+ .byte 0x50, 0x0B, 0xB0, 0xF4, 0x4C, 0x0B, 0xAB, 0xF4, 0x47, 0x0B, 0xA7, 0xF4, 0x43, 0x0B, 0xA2, 0xF4,
+ .byte 0x3E, 0x0B, 0x9E, 0xF4, 0x3A, 0x0B, 0x9A, 0xF4, 0x36, 0x0B, 0x95, 0xF4, 0x31, 0x0B, 0x91, 0xF4,
+ .byte 0x2D, 0x0B, 0x8C, 0xF4, 0x28, 0x0B, 0x88, 0xF4, 0x24, 0x0B, 0x84, 0xF4, 0x1F, 0x0B, 0x7F, 0xF4,
+ .byte 0x1B, 0x0B, 0x7B, 0xF4, 0x16, 0x0B, 0x77, 0xF4, 0x11, 0x0B, 0x72, 0xF4, 0x0D, 0x0B, 0x6E, 0xF4,
+ .byte 0x08, 0x0B, 0x69, 0xF4, 0x04, 0x0B, 0x65, 0xF4, 0xFF, 0x0A, 0x61, 0xF4, 0xFB, 0x0A, 0x5D, 0xF4,
+ .byte 0xF6, 0x0A, 0x58, 0xF4, 0xF2, 0x0A, 0x54, 0xF4, 0xED, 0x0A, 0x50, 0xF4, 0xE8, 0x0A, 0x4B, 0xF4,
+ .byte 0xE4, 0x0A, 0x47, 0xF4, 0xDF, 0x0A, 0x43, 0xF4, 0xDB, 0x0A, 0x3F, 0xF4, 0xD6, 0x0A, 0x3A, 0xF4,
+ .byte 0xD1, 0x0A, 0x36, 0xF4, 0xCD, 0x0A, 0x32, 0xF4, 0xC8, 0x0A, 0x2E, 0xF4, 0xC3, 0x0A, 0x29, 0xF4,
+ .byte 0xBF, 0x0A, 0x25, 0xF4, 0xBA, 0x0A, 0x21, 0xF4, 0xB5, 0x0A, 0x1D, 0xF4, 0xB1, 0x0A, 0x18, 0xF4,
+ .byte 0xAC, 0x0A, 0x14, 0xF4, 0xA7, 0x0A, 0x10, 0xF4, 0xA3, 0x0A, 0x0C, 0xF4, 0x9E, 0x0A, 0x08, 0xF4,
+ .byte 0x99, 0x0A, 0x04, 0xF4, 0x95, 0x0A, 0xFF, 0xF3, 0x90, 0x0A, 0xFB, 0xF3, 0x8B, 0x0A, 0xF7, 0xF3,
+ .byte 0x86, 0x0A, 0xF3, 0xF3, 0x82, 0x0A, 0xEF, 0xF3, 0x7D, 0x0A, 0xEB, 0xF3, 0x78, 0x0A, 0xE7, 0xF3,
+ .byte 0x73, 0x0A, 0xE2, 0xF3, 0x6F, 0x0A, 0xDE, 0xF3, 0x6A, 0x0A, 0xDA, 0xF3, 0x65, 0x0A, 0xD6, 0xF3,
+ .byte 0x60, 0x0A, 0xD2, 0xF3, 0x5C, 0x0A, 0xCE, 0xF3, 0x57, 0x0A, 0xCA, 0xF3, 0x52, 0x0A, 0xC6, 0xF3,
+ .byte 0x4D, 0x0A, 0xC2, 0xF3, 0x48, 0x0A, 0xBE, 0xF3, 0x44, 0x0A, 0xBA, 0xF3, 0x3F, 0x0A, 0xB6, 0xF3,
+ .byte 0x3A, 0x0A, 0xB2, 0xF3, 0x35, 0x0A, 0xAE, 0xF3, 0x30, 0x0A, 0xAA, 0xF3, 0x2B, 0x0A, 0xA6, 0xF3,
+ .byte 0x26, 0x0A, 0xA2, 0xF3, 0x22, 0x0A, 0x9E, 0xF3, 0x1D, 0x0A, 0x9A, 0xF3, 0x18, 0x0A, 0x96, 0xF3,
+ .byte 0x13, 0x0A, 0x92, 0xF3, 0x0E, 0x0A, 0x8E, 0xF3, 0x09, 0x0A, 0x8A, 0xF3, 0x04, 0x0A, 0x86, 0xF3,
+ .byte 0xFF, 0x09, 0x82, 0xF3, 0xFB, 0x09, 0x7E, 0xF3, 0xF6, 0x09, 0x7A, 0xF3, 0xF1, 0x09, 0x76, 0xF3,
+ .byte 0xEC, 0x09, 0x72, 0xF3, 0xE7, 0x09, 0x6F, 0xF3, 0xE2, 0x09, 0x6B, 0xF3, 0xDD, 0x09, 0x67, 0xF3,
+ .byte 0xD8, 0x09, 0x63, 0xF3, 0xD3, 0x09, 0x5F, 0xF3, 0xCE, 0x09, 0x5B, 0xF3, 0xC9, 0x09, 0x57, 0xF3,
+ .byte 0xC4, 0x09, 0x54, 0xF3, 0xBF, 0x09, 0x50, 0xF3, 0xBA, 0x09, 0x4C, 0xF3, 0xB5, 0x09, 0x48, 0xF3,
+ .byte 0xB0, 0x09, 0x44, 0xF3, 0xAB, 0x09, 0x40, 0xF3, 0xA6, 0x09, 0x3D, 0xF3, 0xA1, 0x09, 0x39, 0xF3,
+ .byte 0x9C, 0x09, 0x35, 0xF3, 0x97, 0x09, 0x31, 0xF3, 0x92, 0x09, 0x2E, 0xF3, 0x8D, 0x09, 0x2A, 0xF3,
+ .byte 0x88, 0x09, 0x26, 0xF3, 0x83, 0x09, 0x22, 0xF3, 0x7E, 0x09, 0x1F, 0xF3, 0x79, 0x09, 0x1B, 0xF3,
+ .byte 0x74, 0x09, 0x17, 0xF3, 0x6F, 0x09, 0x13, 0xF3, 0x6A, 0x09, 0x10, 0xF3, 0x65, 0x09, 0x0C, 0xF3,
+ .byte 0x5F, 0x09, 0x08, 0xF3, 0x5A, 0x09, 0x05, 0xF3, 0x55, 0x09, 0x01, 0xF3, 0x50, 0x09, 0xFD, 0xF2,
+ .byte 0x4B, 0x09, 0xFA, 0xF2, 0x46, 0x09, 0xF6, 0xF2, 0x41, 0x09, 0xF2, 0xF2, 0x3C, 0x09, 0xEF, 0xF2,
+ .byte 0x37, 0x09, 0xEB, 0xF2, 0x31, 0x09, 0xE8, 0xF2, 0x2C, 0x09, 0xE4, 0xF2, 0x27, 0x09, 0xE0, 0xF2,
+ .byte 0x22, 0x09, 0xDD, 0xF2, 0x1D, 0x09, 0xD9, 0xF2, 0x18, 0x09, 0xD6, 0xF2, 0x12, 0x09, 0xD2, 0xF2,
+ .byte 0x0D, 0x09, 0xCE, 0xF2, 0x08, 0x09, 0xCB, 0xF2, 0x03, 0x09, 0xC7, 0xF2, 0xFE, 0x08, 0xC4, 0xF2,
+ .byte 0xF8, 0x08, 0xC0, 0xF2, 0xF3, 0x08, 0xBD, 0xF2, 0xEE, 0x08, 0xB9, 0xF2, 0xE9, 0x08, 0xB6, 0xF2,
+ .byte 0xE4, 0x08, 0xB2, 0xF2, 0xDE, 0x08, 0xAF, 0xF2, 0xD9, 0x08, 0xAB, 0xF2, 0xD4, 0x08, 0xA8, 0xF2,
+ .byte 0xCF, 0x08, 0xA4, 0xF2, 0xC9, 0x08, 0xA1, 0xF2, 0xC4, 0x08, 0x9E, 0xF2, 0xBF, 0x08, 0x9A, 0xF2,
+ .byte 0xBA, 0x08, 0x97, 0xF2, 0xB4, 0x08, 0x93, 0xF2, 0xAF, 0x08, 0x90, 0xF2, 0xAA, 0x08, 0x8C, 0xF2,
+ .byte 0xA5, 0x08, 0x89, 0xF2, 0x9F, 0x08, 0x86, 0xF2, 0x9A, 0x08, 0x82, 0xF2, 0x95, 0x08, 0x7F, 0xF2,
+ .byte 0x8F, 0x08, 0x7B, 0xF2, 0x8A, 0x08, 0x78, 0xF2, 0x85, 0x08, 0x75, 0xF2, 0x7F, 0x08, 0x71, 0xF2,
+ .byte 0x7A, 0x08, 0x6E, 0xF2, 0x75, 0x08, 0x6B, 0xF2, 0x6F, 0x08, 0x67, 0xF2, 0x6A, 0x08, 0x64, 0xF2,
+ .byte 0x65, 0x08, 0x61, 0xF2, 0x5F, 0x08, 0x5E, 0xF2, 0x5A, 0x08, 0x5A, 0xF2, 0x55, 0x08, 0x57, 0xF2,
+ .byte 0x4F, 0x08, 0x54, 0xF2, 0x4A, 0x08, 0x50, 0xF2, 0x45, 0x08, 0x4D, 0xF2, 0x3F, 0x08, 0x4A, 0xF2,
+ .byte 0x3A, 0x08, 0x47, 0xF2, 0x34, 0x08, 0x44, 0xF2, 0x2F, 0x08, 0x40, 0xF2, 0x2A, 0x08, 0x3D, 0xF2,
+ .byte 0x24, 0x08, 0x3A, 0xF2, 0x1F, 0x08, 0x37, 0xF2, 0x19, 0x08, 0x34, 0xF2, 0x14, 0x08, 0x30, 0xF2,
+ .byte 0x0E, 0x08, 0x2D, 0xF2, 0x09, 0x08, 0x2A, 0xF2, 0x04, 0x08, 0x27, 0xF2, 0xFE, 0x07, 0x24, 0xF2,
+ .byte 0xF9, 0x07, 0x21, 0xF2, 0xF3, 0x07, 0x1D, 0xF2, 0xEE, 0x07, 0x1A, 0xF2, 0xE8, 0x07, 0x17, 0xF2,
+ .byte 0xE3, 0x07, 0x14, 0xF2, 0xDD, 0x07, 0x11, 0xF2, 0xD8, 0x07, 0x0E, 0xF2, 0xD2, 0x07, 0x0B, 0xF2,
+ .byte 0xCD, 0x07, 0x08, 0xF2, 0xC8, 0x07, 0x05, 0xF2, 0xC2, 0x07, 0x02, 0xF2, 0xBD, 0x07, 0xFF, 0xF1,
+ .byte 0xB7, 0x07, 0xFC, 0xF1, 0xB2, 0x07, 0xF9, 0xF1, 0xAC, 0x07, 0xF6, 0xF1, 0xA6, 0x07, 0xF3, 0xF1,
+ .byte 0xA1, 0x07, 0xF0, 0xF1, 0x9B, 0x07, 0xED, 0xF1, 0x96, 0x07, 0xEA, 0xF1, 0x90, 0x07, 0xE7, 0xF1,
+ .byte 0x8B, 0x07, 0xE4, 0xF1, 0x85, 0x07, 0xE1, 0xF1, 0x80, 0x07, 0xDE, 0xF1, 0x7A, 0x07, 0xDB, 0xF1,
+ .byte 0x75, 0x07, 0xD8, 0xF1, 0x6F, 0x07, 0xD5, 0xF1, 0x6A, 0x07, 0xD2, 0xF1, 0x64, 0x07, 0xCF, 0xF1,
+ .byte 0x5E, 0x07, 0xCC, 0xF1, 0x59, 0x07, 0xC9, 0xF1, 0x53, 0x07, 0xC6, 0xF1, 0x4E, 0x07, 0xC4, 0xF1,
+ .byte 0x48, 0x07, 0xC1, 0xF1, 0x42, 0x07, 0xBE, 0xF1, 0x3D, 0x07, 0xBB, 0xF1, 0x37, 0x07, 0xB8, 0xF1,
+ .byte 0x32, 0x07, 0xB5, 0xF1, 0x2C, 0x07, 0xB3, 0xF1, 0x26, 0x07, 0xB0, 0xF1, 0x21, 0x07, 0xAD, 0xF1,
+ .byte 0x1B, 0x07, 0xAA, 0xF1, 0x15, 0x07, 0xA7, 0xF1, 0x10, 0x07, 0xA5, 0xF1, 0x0A, 0x07, 0xA2, 0xF1,
+ .byte 0x05, 0x07, 0x9F, 0xF1, 0xFF, 0x06, 0x9C, 0xF1, 0xF9, 0x06, 0x9A, 0xF1, 0xF4, 0x06, 0x97, 0xF1,
+ .byte 0xEE, 0x06, 0x94, 0xF1, 0xE8, 0x06, 0x91, 0xF1, 0xE3, 0x06, 0x8F, 0xF1, 0xDD, 0x06, 0x8C, 0xF1,
+ .byte 0xD7, 0x06, 0x89, 0xF1, 0xD2, 0x06, 0x87, 0xF1, 0xCC, 0x06, 0x84, 0xF1, 0xC6, 0x06, 0x81, 0xF1,
+ .byte 0xC1, 0x06, 0x7F, 0xF1, 0xBB, 0x06, 0x7C, 0xF1, 0xB5, 0x06, 0x79, 0xF1, 0xAF, 0x06, 0x77, 0xF1,
+ .byte 0xAA, 0x06, 0x74, 0xF1, 0xA4, 0x06, 0x71, 0xF1, 0x9E, 0x06, 0x6F, 0xF1, 0x99, 0x06, 0x6C, 0xF1,
+ .byte 0x93, 0x06, 0x6A, 0xF1, 0x8D, 0x06, 0x67, 0xF1, 0x87, 0x06, 0x65, 0xF1, 0x82, 0x06, 0x62, 0xF1,
+ .byte 0x7C, 0x06, 0x5F, 0xF1, 0x76, 0x06, 0x5D, 0xF1, 0x70, 0x06, 0x5A, 0xF1, 0x6B, 0x06, 0x58, 0xF1,
+ .byte 0x65, 0x06, 0x55, 0xF1, 0x5F, 0x06, 0x53, 0xF1, 0x59, 0x06, 0x50, 0xF1, 0x54, 0x06, 0x4E, 0xF1,
+ .byte 0x4E, 0x06, 0x4B, 0xF1, 0x48, 0x06, 0x49, 0xF1, 0x42, 0x06, 0x46, 0xF1, 0x3C, 0x06, 0x44, 0xF1,
+ .byte 0x37, 0x06, 0x41, 0xF1, 0x31, 0x06, 0x3F, 0xF1, 0x2B, 0x06, 0x3D, 0xF1, 0x25, 0x06, 0x3A, 0xF1,
+ .byte 0x1F, 0x06, 0x38, 0xF1, 0x1A, 0x06, 0x35, 0xF1, 0x14, 0x06, 0x33, 0xF1, 0x0E, 0x06, 0x31, 0xF1,
+ .byte 0x08, 0x06, 0x2E, 0xF1, 0x02, 0x06, 0x2C, 0xF1, 0xFD, 0x05, 0x2A, 0xF1, 0xF7, 0x05, 0x27, 0xF1,
+ .byte 0xF1, 0x05, 0x25, 0xF1, 0xEB, 0x05, 0x23, 0xF1, 0xE5, 0x05, 0x20, 0xF1, 0xDF, 0x05, 0x1E, 0xF1,
+ .byte 0xDA, 0x05, 0x1C, 0xF1, 0xD4, 0x05, 0x19, 0xF1, 0xCE, 0x05, 0x17, 0xF1, 0xC8, 0x05, 0x15, 0xF1,
+ .byte 0xC2, 0x05, 0x12, 0xF1, 0xBC, 0x05, 0x10, 0xF1, 0xB6, 0x05, 0x0E, 0xF1, 0xB1, 0x05, 0x0C, 0xF1,
+ .byte 0xAB, 0x05, 0x09, 0xF1, 0xA5, 0x05, 0x07, 0xF1, 0x9F, 0x05, 0x05, 0xF1, 0x99, 0x05, 0x03, 0xF1,
+ .byte 0x93, 0x05, 0x01, 0xF1, 0x8D, 0x05, 0xFE, 0xF0, 0x87, 0x05, 0xFC, 0xF0, 0x81, 0x05, 0xFA, 0xF0,
+ .byte 0x7C, 0x05, 0xF8, 0xF0, 0x76, 0x05, 0xF6, 0xF0, 0x70, 0x05, 0xF4, 0xF0, 0x6A, 0x05, 0xF2, 0xF0,
+ .byte 0x64, 0x05, 0xEF, 0xF0, 0x5E, 0x05, 0xED, 0xF0, 0x58, 0x05, 0xEB, 0xF0, 0x52, 0x05, 0xE9, 0xF0,
+ .byte 0x4C, 0x05, 0xE7, 0xF0, 0x46, 0x05, 0xE5, 0xF0, 0x40, 0x05, 0xE3, 0xF0, 0x3A, 0x05, 0xE1, 0xF0,
+ .byte 0x34, 0x05, 0xDF, 0xF0, 0x2F, 0x05, 0xDD, 0xF0, 0x29, 0x05, 0xDB, 0xF0, 0x23, 0x05, 0xD9, 0xF0,
+ .byte 0x1D, 0x05, 0xD7, 0xF0, 0x17, 0x05, 0xD5, 0xF0, 0x11, 0x05, 0xD3, 0xF0, 0x0B, 0x05, 0xD1, 0xF0,
+ .byte 0x05, 0x05, 0xCF, 0xF0, 0xFF, 0x04, 0xCD, 0xF0, 0xF9, 0x04, 0xCB, 0xF0, 0xF3, 0x04, 0xC9, 0xF0,
+ .byte 0xED, 0x04, 0xC7, 0xF0, 0xE7, 0x04, 0xC5, 0xF0, 0xE1, 0x04, 0xC3, 0xF0, 0xDB, 0x04, 0xC1, 0xF0,
+ .byte 0xD5, 0x04, 0xBF, 0xF0, 0xCF, 0x04, 0xBD, 0xF0, 0xC9, 0x04, 0xBB, 0xF0, 0xC3, 0x04, 0xBA, 0xF0,
+ .byte 0xBD, 0x04, 0xB8, 0xF0, 0xB7, 0x04, 0xB6, 0xF0, 0xB1, 0x04, 0xB4, 0xF0, 0xAB, 0x04, 0xB2, 0xF0,
+ .byte 0xA5, 0x04, 0xB0, 0xF0, 0x9F, 0x04, 0xAF, 0xF0, 0x99, 0x04, 0xAD, 0xF0, 0x93, 0x04, 0xAB, 0xF0,
+ .byte 0x8D, 0x04, 0xA9, 0xF0, 0x87, 0x04, 0xA7, 0xF0, 0x81, 0x04, 0xA6, 0xF0, 0x7B, 0x04, 0xA4, 0xF0,
+ .byte 0x75, 0x04, 0xA2, 0xF0, 0x6F, 0x04, 0xA0, 0xF0, 0x69, 0x04, 0x9F, 0xF0, 0x63, 0x04, 0x9D, 0xF0,
+ .byte 0x5D, 0x04, 0x9B, 0xF0, 0x57, 0x04, 0x99, 0xF0, 0x51, 0x04, 0x98, 0xF0, 0x4B, 0x04, 0x96, 0xF0,
+ .byte 0x44, 0x04, 0x94, 0xF0, 0x3E, 0x04, 0x93, 0xF0, 0x38, 0x04, 0x91, 0xF0, 0x32, 0x04, 0x8F, 0xF0,
+ .byte 0x2C, 0x04, 0x8E, 0xF0, 0x26, 0x04, 0x8C, 0xF0, 0x20, 0x04, 0x8A, 0xF0, 0x1A, 0x04, 0x89, 0xF0,
+ .byte 0x14, 0x04, 0x87, 0xF0, 0x0E, 0x04, 0x86, 0xF0, 0x08, 0x04, 0x84, 0xF0, 0x02, 0x04, 0x83, 0xF0,
+ .byte 0xFC, 0x03, 0x81, 0xF0, 0xF6, 0x03, 0x7F, 0xF0, 0xEF, 0x03, 0x7E, 0xF0, 0xE9, 0x03, 0x7C, 0xF0,
+ .byte 0xE3, 0x03, 0x7B, 0xF0, 0xDD, 0x03, 0x79, 0xF0, 0xD7, 0x03, 0x78, 0xF0, 0xD1, 0x03, 0x76, 0xF0,
+ .byte 0xCB, 0x03, 0x75, 0xF0, 0xC5, 0x03, 0x73, 0xF0, 0xBF, 0x03, 0x72, 0xF0, 0xB9, 0x03, 0x70, 0xF0,
+ .byte 0xB2, 0x03, 0x6F, 0xF0, 0xAC, 0x03, 0x6D, 0xF0, 0xA6, 0x03, 0x6C, 0xF0, 0xA0, 0x03, 0x6B, 0xF0,
+ .byte 0x9A, 0x03, 0x69, 0xF0, 0x94, 0x03, 0x68, 0xF0, 0x8E, 0x03, 0x66, 0xF0, 0x88, 0x03, 0x65, 0xF0,
+ .byte 0x81, 0x03, 0x64, 0xF0, 0x7B, 0x03, 0x62, 0xF0, 0x75, 0x03, 0x61, 0xF0, 0x6F, 0x03, 0x5F, 0xF0,
+ .byte 0x69, 0x03, 0x5E, 0xF0, 0x63, 0x03, 0x5D, 0xF0, 0x5D, 0x03, 0x5B, 0xF0, 0x56, 0x03, 0x5A, 0xF0,
+ .byte 0x50, 0x03, 0x59, 0xF0, 0x4A, 0x03, 0x58, 0xF0, 0x44, 0x03, 0x56, 0xF0, 0x3E, 0x03, 0x55, 0xF0,
+ .byte 0x38, 0x03, 0x54, 0xF0, 0x32, 0x03, 0x52, 0xF0, 0x2B, 0x03, 0x51, 0xF0, 0x25, 0x03, 0x50, 0xF0,
+ .byte 0x1F, 0x03, 0x4F, 0xF0, 0x19, 0x03, 0x4D, 0xF0, 0x13, 0x03, 0x4C, 0xF0, 0x0D, 0x03, 0x4B, 0xF0,
+ .byte 0x06, 0x03, 0x4A, 0xF0, 0x00, 0x03, 0x49, 0xF0, 0xFA, 0x02, 0x48, 0xF0, 0xF4, 0x02, 0x46, 0xF0,
+ .byte 0xEE, 0x02, 0x45, 0xF0, 0xE8, 0x02, 0x44, 0xF0, 0xE1, 0x02, 0x43, 0xF0, 0xDB, 0x02, 0x42, 0xF0,
+ .byte 0xD5, 0x02, 0x41, 0xF0, 0xCF, 0x02, 0x40, 0xF0, 0xC9, 0x02, 0x3E, 0xF0, 0xC2, 0x02, 0x3D, 0xF0,
+ .byte 0xBC, 0x02, 0x3C, 0xF0, 0xB6, 0x02, 0x3B, 0xF0, 0xB0, 0x02, 0x3A, 0xF0, 0xAA, 0x02, 0x39, 0xF0,
+ .byte 0xA3, 0x02, 0x38, 0xF0, 0x9D, 0x02, 0x37, 0xF0, 0x97, 0x02, 0x36, 0xF0, 0x91, 0x02, 0x35, 0xF0,
+ .byte 0x8B, 0x02, 0x34, 0xF0, 0x84, 0x02, 0x33, 0xF0, 0x7E, 0x02, 0x32, 0xF0, 0x78, 0x02, 0x31, 0xF0,
+ .byte 0x72, 0x02, 0x30, 0xF0, 0x6C, 0x02, 0x2F, 0xF0, 0x65, 0x02, 0x2E, 0xF0, 0x5F, 0x02, 0x2D, 0xF0,
+ .byte 0x59, 0x02, 0x2C, 0xF0, 0x53, 0x02, 0x2B, 0xF0, 0x4D, 0x02, 0x2B, 0xF0, 0x46, 0x02, 0x2A, 0xF0,
+ .byte 0x40, 0x02, 0x29, 0xF0, 0x3A, 0x02, 0x28, 0xF0, 0x34, 0x02, 0x27, 0xF0, 0x2D, 0x02, 0x26, 0xF0,
+ .byte 0x27, 0x02, 0x25, 0xF0, 0x21, 0x02, 0x24, 0xF0, 0x1B, 0x02, 0x24, 0xF0, 0x15, 0x02, 0x23, 0xF0,
+ .byte 0x0E, 0x02, 0x22, 0xF0, 0x08, 0x02, 0x21, 0xF0, 0x02, 0x02, 0x20, 0xF0, 0xFC, 0x01, 0x20, 0xF0,
+ .byte 0xF5, 0x01, 0x1F, 0xF0, 0xEF, 0x01, 0x1E, 0xF0, 0xE9, 0x01, 0x1D, 0xF0, 0xE3, 0x01, 0x1D, 0xF0,
+ .byte 0xDC, 0x01, 0x1C, 0xF0, 0xD6, 0x01, 0x1B, 0xF0, 0xD0, 0x01, 0x1A, 0xF0, 0xCA, 0x01, 0x1A, 0xF0,
+ .byte 0xC3, 0x01, 0x19, 0xF0, 0xBD, 0x01, 0x18, 0xF0, 0xB7, 0x01, 0x18, 0xF0, 0xB1, 0x01, 0x17, 0xF0,
+ .byte 0xAA, 0x01, 0x16, 0xF0, 0xA4, 0x01, 0x16, 0xF0, 0x9E, 0x01, 0x15, 0xF0, 0x98, 0x01, 0x14, 0xF0,
+ .byte 0x91, 0x01, 0x14, 0xF0, 0x8B, 0x01, 0x13, 0xF0, 0x85, 0x01, 0x13, 0xF0, 0x7F, 0x01, 0x12, 0xF0,
+ .byte 0x78, 0x01, 0x11, 0xF0, 0x72, 0x01, 0x11, 0xF0, 0x6C, 0x01, 0x10, 0xF0, 0x66, 0x01, 0x10, 0xF0,
+ .byte 0x5F, 0x01, 0x0F, 0xF0, 0x59, 0x01, 0x0F, 0xF0, 0x53, 0x01, 0x0E, 0xF0, 0x4D, 0x01, 0x0E, 0xF0,
+ .byte 0x46, 0x01, 0x0D, 0xF0, 0x40, 0x01, 0x0D, 0xF0, 0x3A, 0x01, 0x0C, 0xF0, 0x34, 0x01, 0x0C, 0xF0,
+ .byte 0x2D, 0x01, 0x0B, 0xF0, 0x27, 0x01, 0x0B, 0xF0, 0x21, 0x01, 0x0A, 0xF0, 0x1B, 0x01, 0x0A, 0xF0,
+ .byte 0x14, 0x01, 0x09, 0xF0, 0x0E, 0x01, 0x09, 0xF0, 0x08, 0x01, 0x08, 0xF0, 0x01, 0x01, 0x08, 0xF0,
+ .byte 0xFB, 0x00, 0x08, 0xF0, 0xF5, 0x00, 0x07, 0xF0, 0xEF, 0x00, 0x07, 0xF0, 0xE8, 0x00, 0x07, 0xF0,
+ .byte 0xE2, 0x00, 0x06, 0xF0, 0xDC, 0x00, 0x06, 0xF0, 0xD6, 0x00, 0x06, 0xF0, 0xCF, 0x00, 0x05, 0xF0,
+ .byte 0xC9, 0x00, 0x05, 0xF0, 0xC3, 0x00, 0x05, 0xF0, 0xBC, 0x00, 0x04, 0xF0, 0xB6, 0x00, 0x04, 0xF0,
+ .byte 0xB0, 0x00, 0x04, 0xF0, 0xAA, 0x00, 0x04, 0xF0, 0xA3, 0x00, 0x03, 0xF0, 0x9D, 0x00, 0x03, 0xF0,
+ .byte 0x97, 0x00, 0x03, 0xF0, 0x90, 0x00, 0x03, 0xF0, 0x8A, 0x00, 0x02, 0xF0, 0x84, 0x00, 0x02, 0xF0,
+ .byte 0x7E, 0x00, 0x02, 0xF0, 0x77, 0x00, 0x02, 0xF0, 0x71, 0x00, 0x02, 0xF0, 0x6B, 0x00, 0x01, 0xF0,
+ .byte 0x65, 0x00, 0x01, 0xF0, 0x5E, 0x00, 0x01, 0xF0, 0x58, 0x00, 0x01, 0xF0, 0x52, 0x00, 0x01, 0xF0,
+ .byte 0x4B, 0x00, 0x01, 0xF0, 0x45, 0x00, 0x01, 0xF0, 0x3F, 0x00, 0x00, 0xF0, 0x39, 0x00, 0x00, 0xF0,
+ .byte 0x32, 0x00, 0x00, 0xF0, 0x2C, 0x00, 0x00, 0xF0, 0x26, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0xF0,
+ .byte 0x19, 0x00, 0x00, 0xF0, 0x13, 0x00, 0x00, 0xF0, 0x0D, 0x00, 0x00, 0xF0, 0x06, 0x00, 0x00, 0xF0,
+ .byte 0x00, 0x00, 0x00, 0xF0, 0xFA, 0xFF, 0x00, 0xF0, 0xF3, 0xFF, 0x00, 0xF0, 0xED, 0xFF, 0x00, 0xF0,
+ .byte 0xE7, 0xFF, 0x00, 0xF0, 0xE1, 0xFF, 0x00, 0xF0, 0xDA, 0xFF, 0x00, 0xF0, 0xD4, 0xFF, 0x00, 0xF0,
+ .byte 0xCE, 0xFF, 0x00, 0xF0, 0xC7, 0xFF, 0x00, 0xF0, 0xC1, 0xFF, 0x00, 0xF0, 0xBB, 0xFF, 0x01, 0xF0,
+ .byte 0xB5, 0xFF, 0x01, 0xF0, 0xAE, 0xFF, 0x01, 0xF0, 0xA8, 0xFF, 0x01, 0xF0, 0xA2, 0xFF, 0x01, 0xF0,
+ .byte 0x9B, 0xFF, 0x01, 0xF0, 0x95, 0xFF, 0x01, 0xF0, 0x8F, 0xFF, 0x02, 0xF0, 0x89, 0xFF, 0x02, 0xF0,
+ .byte 0x82, 0xFF, 0x02, 0xF0, 0x7C, 0xFF, 0x02, 0xF0, 0x76, 0xFF, 0x02, 0xF0, 0x70, 0xFF, 0x03, 0xF0,
+ .byte 0x69, 0xFF, 0x03, 0xF0, 0x63, 0xFF, 0x03, 0xF0, 0x5D, 0xFF, 0x03, 0xF0, 0x56, 0xFF, 0x04, 0xF0,
+ .byte 0x50, 0xFF, 0x04, 0xF0, 0x4A, 0xFF, 0x04, 0xF0, 0x44, 0xFF, 0x04, 0xF0, 0x3D, 0xFF, 0x05, 0xF0,
+ .byte 0x37, 0xFF, 0x05, 0xF0, 0x31, 0xFF, 0x05, 0xF0, 0x2A, 0xFF, 0x06, 0xF0, 0x24, 0xFF, 0x06, 0xF0,
+ .byte 0x1E, 0xFF, 0x06, 0xF0, 0x18, 0xFF, 0x07, 0xF0, 0x11, 0xFF, 0x07, 0xF0, 0x0B, 0xFF, 0x07, 0xF0,
+ .byte 0x05, 0xFF, 0x08, 0xF0, 0xFF, 0xFE, 0x08, 0xF0, 0xF8, 0xFE, 0x08, 0xF0, 0xF2, 0xFE, 0x09, 0xF0,
+ .byte 0xEC, 0xFE, 0x09, 0xF0, 0xE5, 0xFE, 0x0A, 0xF0, 0xDF, 0xFE, 0x0A, 0xF0, 0xD9, 0xFE, 0x0B, 0xF0,
+ .byte 0xD3, 0xFE, 0x0B, 0xF0, 0xCC, 0xFE, 0x0C, 0xF0, 0xC6, 0xFE, 0x0C, 0xF0, 0xC0, 0xFE, 0x0D, 0xF0,
+ .byte 0xBA, 0xFE, 0x0D, 0xF0, 0xB3, 0xFE, 0x0E, 0xF0, 0xAD, 0xFE, 0x0E, 0xF0, 0xA7, 0xFE, 0x0F, 0xF0,
+ .byte 0xA1, 0xFE, 0x0F, 0xF0, 0x9A, 0xFE, 0x10, 0xF0, 0x94, 0xFE, 0x10, 0xF0, 0x8E, 0xFE, 0x11, 0xF0,
+ .byte 0x88, 0xFE, 0x11, 0xF0, 0x81, 0xFE, 0x12, 0xF0, 0x7B, 0xFE, 0x13, 0xF0, 0x75, 0xFE, 0x13, 0xF0,
+ .byte 0x6F, 0xFE, 0x14, 0xF0, 0x68, 0xFE, 0x14, 0xF0, 0x62, 0xFE, 0x15, 0xF0, 0x5C, 0xFE, 0x16, 0xF0,
+ .byte 0x56, 0xFE, 0x16, 0xF0, 0x4F, 0xFE, 0x17, 0xF0, 0x49, 0xFE, 0x18, 0xF0, 0x43, 0xFE, 0x18, 0xF0,
+ .byte 0x3D, 0xFE, 0x19, 0xF0, 0x36, 0xFE, 0x1A, 0xF0, 0x30, 0xFE, 0x1A, 0xF0, 0x2A, 0xFE, 0x1B, 0xF0,
+ .byte 0x24, 0xFE, 0x1C, 0xF0, 0x1D, 0xFE, 0x1D, 0xF0, 0x17, 0xFE, 0x1D, 0xF0, 0x11, 0xFE, 0x1E, 0xF0,
+ .byte 0x0B, 0xFE, 0x1F, 0xF0, 0x04, 0xFE, 0x20, 0xF0, 0xFE, 0xFD, 0x20, 0xF0, 0xF8, 0xFD, 0x21, 0xF0,
+ .byte 0xF2, 0xFD, 0x22, 0xF0, 0xEB, 0xFD, 0x23, 0xF0, 0xE5, 0xFD, 0x24, 0xF0, 0xDF, 0xFD, 0x24, 0xF0,
+ .byte 0xD9, 0xFD, 0x25, 0xF0, 0xD3, 0xFD, 0x26, 0xF0, 0xCC, 0xFD, 0x27, 0xF0, 0xC6, 0xFD, 0x28, 0xF0,
+ .byte 0xC0, 0xFD, 0x29, 0xF0, 0xBA, 0xFD, 0x2A, 0xF0, 0xB3, 0xFD, 0x2B, 0xF0, 0xAD, 0xFD, 0x2B, 0xF0,
+ .byte 0xA7, 0xFD, 0x2C, 0xF0, 0xA1, 0xFD, 0x2D, 0xF0, 0x9B, 0xFD, 0x2E, 0xF0, 0x94, 0xFD, 0x2F, 0xF0,
+ .byte 0x8E, 0xFD, 0x30, 0xF0, 0x88, 0xFD, 0x31, 0xF0, 0x82, 0xFD, 0x32, 0xF0, 0x7C, 0xFD, 0x33, 0xF0,
+ .byte 0x75, 0xFD, 0x34, 0xF0, 0x6F, 0xFD, 0x35, 0xF0, 0x69, 0xFD, 0x36, 0xF0, 0x63, 0xFD, 0x37, 0xF0,
+ .byte 0x5D, 0xFD, 0x38, 0xF0, 0x56, 0xFD, 0x39, 0xF0, 0x50, 0xFD, 0x3A, 0xF0, 0x4A, 0xFD, 0x3B, 0xF0,
+ .byte 0x44, 0xFD, 0x3C, 0xF0, 0x3E, 0xFD, 0x3D, 0xF0, 0x37, 0xFD, 0x3E, 0xF0, 0x31, 0xFD, 0x40, 0xF0,
+ .byte 0x2B, 0xFD, 0x41, 0xF0, 0x25, 0xFD, 0x42, 0xF0, 0x1F, 0xFD, 0x43, 0xF0, 0x18, 0xFD, 0x44, 0xF0,
+ .byte 0x12, 0xFD, 0x45, 0xF0, 0x0C, 0xFD, 0x46, 0xF0, 0x06, 0xFD, 0x48, 0xF0, 0x00, 0xFD, 0x49, 0xF0,
+ .byte 0xFA, 0xFC, 0x4A, 0xF0, 0xF3, 0xFC, 0x4B, 0xF0, 0xED, 0xFC, 0x4C, 0xF0, 0xE7, 0xFC, 0x4D, 0xF0,
+ .byte 0xE1, 0xFC, 0x4F, 0xF0, 0xDB, 0xFC, 0x50, 0xF0, 0xD5, 0xFC, 0x51, 0xF0, 0xCE, 0xFC, 0x52, 0xF0,
+ .byte 0xC8, 0xFC, 0x54, 0xF0, 0xC2, 0xFC, 0x55, 0xF0, 0xBC, 0xFC, 0x56, 0xF0, 0xB6, 0xFC, 0x58, 0xF0,
+ .byte 0xB0, 0xFC, 0x59, 0xF0, 0xAA, 0xFC, 0x5A, 0xF0, 0xA3, 0xFC, 0x5B, 0xF0, 0x9D, 0xFC, 0x5D, 0xF0,
+ .byte 0x97, 0xFC, 0x5E, 0xF0, 0x91, 0xFC, 0x5F, 0xF0, 0x8B, 0xFC, 0x61, 0xF0, 0x85, 0xFC, 0x62, 0xF0,
+ .byte 0x7F, 0xFC, 0x64, 0xF0, 0x78, 0xFC, 0x65, 0xF0, 0x72, 0xFC, 0x66, 0xF0, 0x6C, 0xFC, 0x68, 0xF0,
+ .byte 0x66, 0xFC, 0x69, 0xF0, 0x60, 0xFC, 0x6B, 0xF0, 0x5A, 0xFC, 0x6C, 0xF0, 0x54, 0xFC, 0x6D, 0xF0,
+ .byte 0x4E, 0xFC, 0x6F, 0xF0, 0x47, 0xFC, 0x70, 0xF0, 0x41, 0xFC, 0x72, 0xF0, 0x3B, 0xFC, 0x73, 0xF0,
+ .byte 0x35, 0xFC, 0x75, 0xF0, 0x2F, 0xFC, 0x76, 0xF0, 0x29, 0xFC, 0x78, 0xF0, 0x23, 0xFC, 0x79, 0xF0,
+ .byte 0x1D, 0xFC, 0x7B, 0xF0, 0x17, 0xFC, 0x7C, 0xF0, 0x11, 0xFC, 0x7E, 0xF0, 0x0A, 0xFC, 0x7F, 0xF0,
+ .byte 0x04, 0xFC, 0x81, 0xF0, 0xFE, 0xFB, 0x83, 0xF0, 0xF8, 0xFB, 0x84, 0xF0, 0xF2, 0xFB, 0x86, 0xF0,
+ .byte 0xEC, 0xFB, 0x87, 0xF0, 0xE6, 0xFB, 0x89, 0xF0, 0xE0, 0xFB, 0x8A, 0xF0, 0xDA, 0xFB, 0x8C, 0xF0,
+ .byte 0xD4, 0xFB, 0x8E, 0xF0, 0xCE, 0xFB, 0x8F, 0xF0, 0xC8, 0xFB, 0x91, 0xF0, 0xC2, 0xFB, 0x93, 0xF0,
+ .byte 0xBC, 0xFB, 0x94, 0xF0, 0xB5, 0xFB, 0x96, 0xF0, 0xAF, 0xFB, 0x98, 0xF0, 0xA9, 0xFB, 0x99, 0xF0,
+ .byte 0xA3, 0xFB, 0x9B, 0xF0, 0x9D, 0xFB, 0x9D, 0xF0, 0x97, 0xFB, 0x9F, 0xF0, 0x91, 0xFB, 0xA0, 0xF0,
+ .byte 0x8B, 0xFB, 0xA2, 0xF0, 0x85, 0xFB, 0xA4, 0xF0, 0x7F, 0xFB, 0xA6, 0xF0, 0x79, 0xFB, 0xA7, 0xF0,
+ .byte 0x73, 0xFB, 0xA9, 0xF0, 0x6D, 0xFB, 0xAB, 0xF0, 0x67, 0xFB, 0xAD, 0xF0, 0x61, 0xFB, 0xAF, 0xF0,
+ .byte 0x5B, 0xFB, 0xB0, 0xF0, 0x55, 0xFB, 0xB2, 0xF0, 0x4F, 0xFB, 0xB4, 0xF0, 0x49, 0xFB, 0xB6, 0xF0,
+ .byte 0x43, 0xFB, 0xB8, 0xF0, 0x3D, 0xFB, 0xBA, 0xF0, 0x37, 0xFB, 0xBB, 0xF0, 0x31, 0xFB, 0xBD, 0xF0,
+ .byte 0x2B, 0xFB, 0xBF, 0xF0, 0x25, 0xFB, 0xC1, 0xF0, 0x1F, 0xFB, 0xC3, 0xF0, 0x19, 0xFB, 0xC5, 0xF0,
+ .byte 0x13, 0xFB, 0xC7, 0xF0, 0x0D, 0xFB, 0xC9, 0xF0, 0x07, 0xFB, 0xCB, 0xF0, 0x01, 0xFB, 0xCD, 0xF0,
+ .byte 0xFB, 0xFA, 0xCF, 0xF0, 0xF5, 0xFA, 0xD1, 0xF0, 0xEF, 0xFA, 0xD3, 0xF0, 0xE9, 0xFA, 0xD5, 0xF0,
+ .byte 0xE3, 0xFA, 0xD7, 0xF0, 0xDD, 0xFA, 0xD9, 0xF0, 0xD7, 0xFA, 0xDB, 0xF0, 0xD1, 0xFA, 0xDD, 0xF0,
+ .byte 0xCC, 0xFA, 0xDF, 0xF0, 0xC6, 0xFA, 0xE1, 0xF0, 0xC0, 0xFA, 0xE3, 0xF0, 0xBA, 0xFA, 0xE5, 0xF0,
+ .byte 0xB4, 0xFA, 0xE7, 0xF0, 0xAE, 0xFA, 0xE9, 0xF0, 0xA8, 0xFA, 0xEB, 0xF0, 0xA2, 0xFA, 0xED, 0xF0,
+ .byte 0x9C, 0xFA, 0xEF, 0xF0, 0x96, 0xFA, 0xF2, 0xF0, 0x90, 0xFA, 0xF4, 0xF0, 0x8A, 0xFA, 0xF6, 0xF0,
+ .byte 0x84, 0xFA, 0xF8, 0xF0, 0x7F, 0xFA, 0xFA, 0xF0, 0x79, 0xFA, 0xFC, 0xF0, 0x73, 0xFA, 0xFE, 0xF0,
+ .byte 0x6D, 0xFA, 0x01, 0xF1, 0x67, 0xFA, 0x03, 0xF1, 0x61, 0xFA, 0x05, 0xF1, 0x5B, 0xFA, 0x07, 0xF1,
+ .byte 0x55, 0xFA, 0x09, 0xF1, 0x4F, 0xFA, 0x0C, 0xF1, 0x4A, 0xFA, 0x0E, 0xF1, 0x44, 0xFA, 0x10, 0xF1,
+ .byte 0x3E, 0xFA, 0x12, 0xF1, 0x38, 0xFA, 0x15, 0xF1, 0x32, 0xFA, 0x17, 0xF1, 0x2C, 0xFA, 0x19, 0xF1,
+ .byte 0x26, 0xFA, 0x1C, 0xF1, 0x21, 0xFA, 0x1E, 0xF1, 0x1B, 0xFA, 0x20, 0xF1, 0x15, 0xFA, 0x23, 0xF1,
+ .byte 0x0F, 0xFA, 0x25, 0xF1, 0x09, 0xFA, 0x27, 0xF1, 0x03, 0xFA, 0x2A, 0xF1, 0xFE, 0xF9, 0x2C, 0xF1,
+ .byte 0xF8, 0xF9, 0x2E, 0xF1, 0xF2, 0xF9, 0x31, 0xF1, 0xEC, 0xF9, 0x33, 0xF1, 0xE6, 0xF9, 0x35, 0xF1,
+ .byte 0xE1, 0xF9, 0x38, 0xF1, 0xDB, 0xF9, 0x3A, 0xF1, 0xD5, 0xF9, 0x3D, 0xF1, 0xCF, 0xF9, 0x3F, 0xF1,
+ .byte 0xC9, 0xF9, 0x41, 0xF1, 0xC4, 0xF9, 0x44, 0xF1, 0xBE, 0xF9, 0x46, 0xF1, 0xB8, 0xF9, 0x49, 0xF1,
+ .byte 0xB2, 0xF9, 0x4B, 0xF1, 0xAC, 0xF9, 0x4E, 0xF1, 0xA7, 0xF9, 0x50, 0xF1, 0xA1, 0xF9, 0x53, 0xF1,
+ .byte 0x9B, 0xF9, 0x55, 0xF1, 0x95, 0xF9, 0x58, 0xF1, 0x90, 0xF9, 0x5A, 0xF1, 0x8A, 0xF9, 0x5D, 0xF1,
+ .byte 0x84, 0xF9, 0x5F, 0xF1, 0x7E, 0xF9, 0x62, 0xF1, 0x79, 0xF9, 0x65, 0xF1, 0x73, 0xF9, 0x67, 0xF1,
+ .byte 0x6D, 0xF9, 0x6A, 0xF1, 0x67, 0xF9, 0x6C, 0xF1, 0x62, 0xF9, 0x6F, 0xF1, 0x5C, 0xF9, 0x71, 0xF1,
+ .byte 0x56, 0xF9, 0x74, 0xF1, 0x51, 0xF9, 0x77, 0xF1, 0x4B, 0xF9, 0x79, 0xF1, 0x45, 0xF9, 0x7C, 0xF1,
+ .byte 0x3F, 0xF9, 0x7F, 0xF1, 0x3A, 0xF9, 0x81, 0xF1, 0x34, 0xF9, 0x84, 0xF1, 0x2E, 0xF9, 0x87, 0xF1,
+ .byte 0x29, 0xF9, 0x89, 0xF1, 0x23, 0xF9, 0x8C, 0xF1, 0x1D, 0xF9, 0x8F, 0xF1, 0x18, 0xF9, 0x91, 0xF1,
+ .byte 0x12, 0xF9, 0x94, 0xF1, 0x0C, 0xF9, 0x97, 0xF1, 0x07, 0xF9, 0x9A, 0xF1, 0x01, 0xF9, 0x9C, 0xF1,
+ .byte 0xFB, 0xF8, 0x9F, 0xF1, 0xF6, 0xF8, 0xA2, 0xF1, 0xF0, 0xF8, 0xA5, 0xF1, 0xEB, 0xF8, 0xA7, 0xF1,
+ .byte 0xE5, 0xF8, 0xAA, 0xF1, 0xDF, 0xF8, 0xAD, 0xF1, 0xDA, 0xF8, 0xB0, 0xF1, 0xD4, 0xF8, 0xB3, 0xF1,
+ .byte 0xCE, 0xF8, 0xB5, 0xF1, 0xC9, 0xF8, 0xB8, 0xF1, 0xC3, 0xF8, 0xBB, 0xF1, 0xBE, 0xF8, 0xBE, 0xF1,
+ .byte 0xB8, 0xF8, 0xC1, 0xF1, 0xB2, 0xF8, 0xC4, 0xF1, 0xAD, 0xF8, 0xC6, 0xF1, 0xA7, 0xF8, 0xC9, 0xF1,
+ .byte 0xA2, 0xF8, 0xCC, 0xF1, 0x9C, 0xF8, 0xCF, 0xF1, 0x96, 0xF8, 0xD2, 0xF1, 0x91, 0xF8, 0xD5, 0xF1,
+ .byte 0x8B, 0xF8, 0xD8, 0xF1, 0x86, 0xF8, 0xDB, 0xF1, 0x80, 0xF8, 0xDE, 0xF1, 0x7B, 0xF8, 0xE1, 0xF1,
+ .byte 0x75, 0xF8, 0xE4, 0xF1, 0x70, 0xF8, 0xE7, 0xF1, 0x6A, 0xF8, 0xEA, 0xF1, 0x65, 0xF8, 0xED, 0xF1,
+ .byte 0x5F, 0xF8, 0xF0, 0xF1, 0x5A, 0xF8, 0xF3, 0xF1, 0x54, 0xF8, 0xF6, 0xF1, 0x4E, 0xF8, 0xF9, 0xF1,
+ .byte 0x49, 0xF8, 0xFC, 0xF1, 0x43, 0xF8, 0xFF, 0xF1, 0x3E, 0xF8, 0x02, 0xF2, 0x38, 0xF8, 0x05, 0xF2,
+ .byte 0x33, 0xF8, 0x08, 0xF2, 0x2E, 0xF8, 0x0B, 0xF2, 0x28, 0xF8, 0x0E, 0xF2, 0x23, 0xF8, 0x11, 0xF2,
+ .byte 0x1D, 0xF8, 0x14, 0xF2, 0x18, 0xF8, 0x17, 0xF2, 0x12, 0xF8, 0x1A, 0xF2, 0x0D, 0xF8, 0x1D, 0xF2,
+ .byte 0x07, 0xF8, 0x21, 0xF2, 0x02, 0xF8, 0x24, 0xF2, 0xFC, 0xF7, 0x27, 0xF2, 0xF7, 0xF7, 0x2A, 0xF2,
+ .byte 0xF2, 0xF7, 0x2D, 0xF2, 0xEC, 0xF7, 0x30, 0xF2, 0xE7, 0xF7, 0x34, 0xF2, 0xE1, 0xF7, 0x37, 0xF2,
+ .byte 0xDC, 0xF7, 0x3A, 0xF2, 0xD6, 0xF7, 0x3D, 0xF2, 0xD1, 0xF7, 0x40, 0xF2, 0xCC, 0xF7, 0x44, 0xF2,
+ .byte 0xC6, 0xF7, 0x47, 0xF2, 0xC1, 0xF7, 0x4A, 0xF2, 0xBB, 0xF7, 0x4D, 0xF2, 0xB6, 0xF7, 0x50, 0xF2,
+ .byte 0xB1, 0xF7, 0x54, 0xF2, 0xAB, 0xF7, 0x57, 0xF2, 0xA6, 0xF7, 0x5A, 0xF2, 0xA1, 0xF7, 0x5E, 0xF2,
+ .byte 0x9B, 0xF7, 0x61, 0xF2, 0x96, 0xF7, 0x64, 0xF2, 0x91, 0xF7, 0x67, 0xF2, 0x8B, 0xF7, 0x6B, 0xF2,
+ .byte 0x86, 0xF7, 0x6E, 0xF2, 0x81, 0xF7, 0x71, 0xF2, 0x7B, 0xF7, 0x75, 0xF2, 0x76, 0xF7, 0x78, 0xF2,
+ .byte 0x71, 0xF7, 0x7B, 0xF2, 0x6B, 0xF7, 0x7F, 0xF2, 0x66, 0xF7, 0x82, 0xF2, 0x61, 0xF7, 0x86, 0xF2,
+ .byte 0x5B, 0xF7, 0x89, 0xF2, 0x56, 0xF7, 0x8C, 0xF2, 0x51, 0xF7, 0x90, 0xF2, 0x4C, 0xF7, 0x93, 0xF2,
+ .byte 0x46, 0xF7, 0x97, 0xF2, 0x41, 0xF7, 0x9A, 0xF2, 0x3C, 0xF7, 0x9E, 0xF2, 0x37, 0xF7, 0xA1, 0xF2,
+ .byte 0x31, 0xF7, 0xA4, 0xF2, 0x2C, 0xF7, 0xA8, 0xF2, 0x27, 0xF7, 0xAB, 0xF2, 0x22, 0xF7, 0xAF, 0xF2,
+ .byte 0x1C, 0xF7, 0xB2, 0xF2, 0x17, 0xF7, 0xB6, 0xF2, 0x12, 0xF7, 0xB9, 0xF2, 0x0D, 0xF7, 0xBD, 0xF2,
+ .byte 0x08, 0xF7, 0xC0, 0xF2, 0x02, 0xF7, 0xC4, 0xF2, 0xFD, 0xF6, 0xC7, 0xF2, 0xF8, 0xF6, 0xCB, 0xF2,
+ .byte 0xF3, 0xF6, 0xCE, 0xF2, 0xEE, 0xF6, 0xD2, 0xF2, 0xE8, 0xF6, 0xD6, 0xF2, 0xE3, 0xF6, 0xD9, 0xF2,
+ .byte 0xDE, 0xF6, 0xDD, 0xF2, 0xD9, 0xF6, 0xE0, 0xF2, 0xD4, 0xF6, 0xE4, 0xF2, 0xCF, 0xF6, 0xE8, 0xF2,
+ .byte 0xC9, 0xF6, 0xEB, 0xF2, 0xC4, 0xF6, 0xEF, 0xF2, 0xBF, 0xF6, 0xF2, 0xF2, 0xBA, 0xF6, 0xF6, 0xF2,
+ .byte 0xB5, 0xF6, 0xFA, 0xF2, 0xB0, 0xF6, 0xFD, 0xF2, 0xAB, 0xF6, 0x01, 0xF3, 0xA6, 0xF6, 0x05, 0xF3,
+ .byte 0xA1, 0xF6, 0x08, 0xF3, 0x9B, 0xF6, 0x0C, 0xF3, 0x96, 0xF6, 0x10, 0xF3, 0x91, 0xF6, 0x13, 0xF3,
+ .byte 0x8C, 0xF6, 0x17, 0xF3, 0x87, 0xF6, 0x1B, 0xF3, 0x82, 0xF6, 0x1F, 0xF3, 0x7D, 0xF6, 0x22, 0xF3,
+ .byte 0x78, 0xF6, 0x26, 0xF3, 0x73, 0xF6, 0x2A, 0xF3, 0x6E, 0xF6, 0x2E, 0xF3, 0x69, 0xF6, 0x31, 0xF3,
+ .byte 0x64, 0xF6, 0x35, 0xF3, 0x5F, 0xF6, 0x39, 0xF3, 0x5A, 0xF6, 0x3D, 0xF3, 0x55, 0xF6, 0x40, 0xF3,
+ .byte 0x50, 0xF6, 0x44, 0xF3, 0x4B, 0xF6, 0x48, 0xF3, 0x46, 0xF6, 0x4C, 0xF3, 0x41, 0xF6, 0x50, 0xF3,
+ .byte 0x3C, 0xF6, 0x54, 0xF3, 0x37, 0xF6, 0x57, 0xF3, 0x32, 0xF6, 0x5B, 0xF3, 0x2D, 0xF6, 0x5F, 0xF3,
+ .byte 0x28, 0xF6, 0x63, 0xF3, 0x23, 0xF6, 0x67, 0xF3, 0x1E, 0xF6, 0x6B, 0xF3, 0x19, 0xF6, 0x6F, 0xF3,
+ .byte 0x14, 0xF6, 0x72, 0xF3, 0x0F, 0xF6, 0x76, 0xF3, 0x0A, 0xF6, 0x7A, 0xF3, 0x05, 0xF6, 0x7E, 0xF3,
+ .byte 0x01, 0xF6, 0x82, 0xF3, 0xFC, 0xF5, 0x86, 0xF3, 0xF7, 0xF5, 0x8A, 0xF3, 0xF2, 0xF5, 0x8E, 0xF3,
+ .byte 0xED, 0xF5, 0x92, 0xF3, 0xE8, 0xF5, 0x96, 0xF3, 0xE3, 0xF5, 0x9A, 0xF3, 0xDE, 0xF5, 0x9E, 0xF3,
+ .byte 0xDA, 0xF5, 0xA2, 0xF3, 0xD5, 0xF5, 0xA6, 0xF3, 0xD0, 0xF5, 0xAA, 0xF3, 0xCB, 0xF5, 0xAE, 0xF3,
+ .byte 0xC6, 0xF5, 0xB2, 0xF3, 0xC1, 0xF5, 0xB6, 0xF3, 0xBC, 0xF5, 0xBA, 0xF3, 0xB8, 0xF5, 0xBE, 0xF3,
+ .byte 0xB3, 0xF5, 0xC2, 0xF3, 0xAE, 0xF5, 0xC6, 0xF3, 0xA9, 0xF5, 0xCA, 0xF3, 0xA4, 0xF5, 0xCE, 0xF3,
+ .byte 0xA0, 0xF5, 0xD2, 0xF3, 0x9B, 0xF5, 0xD6, 0xF3, 0x96, 0xF5, 0xDA, 0xF3, 0x91, 0xF5, 0xDE, 0xF3,
+ .byte 0x8D, 0xF5, 0xE2, 0xF3, 0x88, 0xF5, 0xE7, 0xF3, 0x83, 0xF5, 0xEB, 0xF3, 0x7E, 0xF5, 0xEF, 0xF3,
+ .byte 0x7A, 0xF5, 0xF3, 0xF3, 0x75, 0xF5, 0xF7, 0xF3, 0x70, 0xF5, 0xFB, 0xF3, 0x6B, 0xF5, 0xFF, 0xF3,
+ .byte 0x67, 0xF5, 0x04, 0xF4, 0x62, 0xF5, 0x08, 0xF4, 0x5D, 0xF5, 0x0C, 0xF4, 0x59, 0xF5, 0x10, 0xF4,
+ .byte 0x54, 0xF5, 0x14, 0xF4, 0x4F, 0xF5, 0x18, 0xF4, 0x4B, 0xF5, 0x1D, 0xF4, 0x46, 0xF5, 0x21, 0xF4,
+ .byte 0x41, 0xF5, 0x25, 0xF4, 0x3D, 0xF5, 0x29, 0xF4, 0x38, 0xF5, 0x2E, 0xF4, 0x33, 0xF5, 0x32, 0xF4,
+ .byte 0x2F, 0xF5, 0x36, 0xF4, 0x2A, 0xF5, 0x3A, 0xF4, 0x25, 0xF5, 0x3F, 0xF4, 0x21, 0xF5, 0x43, 0xF4,
+ .byte 0x1C, 0xF5, 0x47, 0xF4, 0x18, 0xF5, 0x4B, 0xF4, 0x13, 0xF5, 0x50, 0xF4, 0x0E, 0xF5, 0x54, 0xF4,
+ .byte 0x0A, 0xF5, 0x58, 0xF4, 0x05, 0xF5, 0x5D, 0xF4, 0x01, 0xF5, 0x61, 0xF4, 0xFC, 0xF4, 0x65, 0xF4,
+ .byte 0xF8, 0xF4, 0x69, 0xF4, 0xF3, 0xF4, 0x6E, 0xF4, 0xEF, 0xF4, 0x72, 0xF4, 0xEA, 0xF4, 0x77, 0xF4,
+ .byte 0xE5, 0xF4, 0x7B, 0xF4, 0xE1, 0xF4, 0x7F, 0xF4, 0xDC, 0xF4, 0x84, 0xF4, 0xD8, 0xF4, 0x88, 0xF4,
+ .byte 0xD3, 0xF4, 0x8C, 0xF4, 0xCF, 0xF4, 0x91, 0xF4, 0xCA, 0xF4, 0x95, 0xF4, 0xC6, 0xF4, 0x9A, 0xF4,
+ .byte 0xC2, 0xF4, 0x9E, 0xF4, 0xBD, 0xF4, 0xA2, 0xF4, 0xB9, 0xF4, 0xA7, 0xF4, 0xB4, 0xF4, 0xAB, 0xF4,
+ .byte 0xB0, 0xF4, 0xB0, 0xF4, 0xAB, 0xF4, 0xB4, 0xF4, 0xA7, 0xF4, 0xB9, 0xF4, 0xA2, 0xF4, 0xBD, 0xF4,
+ .byte 0x9E, 0xF4, 0xC2, 0xF4, 0x9A, 0xF4, 0xC6, 0xF4, 0x95, 0xF4, 0xCA, 0xF4, 0x91, 0xF4, 0xCF, 0xF4,
+ .byte 0x8C, 0xF4, 0xD3, 0xF4, 0x88, 0xF4, 0xD8, 0xF4, 0x84, 0xF4, 0xDC, 0xF4, 0x7F, 0xF4, 0xE1, 0xF4,
+ .byte 0x7B, 0xF4, 0xE5, 0xF4, 0x77, 0xF4, 0xEA, 0xF4, 0x72, 0xF4, 0xEF, 0xF4, 0x6E, 0xF4, 0xF3, 0xF4,
+ .byte 0x69, 0xF4, 0xF8, 0xF4, 0x65, 0xF4, 0xFC, 0xF4, 0x61, 0xF4, 0x01, 0xF5, 0x5D, 0xF4, 0x05, 0xF5,
+ .byte 0x58, 0xF4, 0x0A, 0xF5, 0x54, 0xF4, 0x0E, 0xF5, 0x50, 0xF4, 0x13, 0xF5, 0x4B, 0xF4, 0x18, 0xF5,
+ .byte 0x47, 0xF4, 0x1C, 0xF5, 0x43, 0xF4, 0x21, 0xF5, 0x3F, 0xF4, 0x25, 0xF5, 0x3A, 0xF4, 0x2A, 0xF5,
+ .byte 0x36, 0xF4, 0x2F, 0xF5, 0x32, 0xF4, 0x33, 0xF5, 0x2E, 0xF4, 0x38, 0xF5, 0x29, 0xF4, 0x3D, 0xF5,
+ .byte 0x25, 0xF4, 0x41, 0xF5, 0x21, 0xF4, 0x46, 0xF5, 0x1D, 0xF4, 0x4B, 0xF5, 0x18, 0xF4, 0x4F, 0xF5,
+ .byte 0x14, 0xF4, 0x54, 0xF5, 0x10, 0xF4, 0x59, 0xF5, 0x0C, 0xF4, 0x5D, 0xF5, 0x08, 0xF4, 0x62, 0xF5,
+ .byte 0x04, 0xF4, 0x67, 0xF5, 0xFF, 0xF3, 0x6B, 0xF5, 0xFB, 0xF3, 0x70, 0xF5, 0xF7, 0xF3, 0x75, 0xF5,
+ .byte 0xF3, 0xF3, 0x7A, 0xF5, 0xEF, 0xF3, 0x7E, 0xF5, 0xEB, 0xF3, 0x83, 0xF5, 0xE7, 0xF3, 0x88, 0xF5,
+ .byte 0xE2, 0xF3, 0x8D, 0xF5, 0xDE, 0xF3, 0x91, 0xF5, 0xDA, 0xF3, 0x96, 0xF5, 0xD6, 0xF3, 0x9B, 0xF5,
+ .byte 0xD2, 0xF3, 0xA0, 0xF5, 0xCE, 0xF3, 0xA4, 0xF5, 0xCA, 0xF3, 0xA9, 0xF5, 0xC6, 0xF3, 0xAE, 0xF5,
+ .byte 0xC2, 0xF3, 0xB3, 0xF5, 0xBE, 0xF3, 0xB8, 0xF5, 0xBA, 0xF3, 0xBC, 0xF5, 0xB6, 0xF3, 0xC1, 0xF5,
+ .byte 0xB2, 0xF3, 0xC6, 0xF5, 0xAE, 0xF3, 0xCB, 0xF5, 0xAA, 0xF3, 0xD0, 0xF5, 0xA6, 0xF3, 0xD5, 0xF5,
+ .byte 0xA2, 0xF3, 0xDA, 0xF5, 0x9E, 0xF3, 0xDE, 0xF5, 0x9A, 0xF3, 0xE3, 0xF5, 0x96, 0xF3, 0xE8, 0xF5,
+ .byte 0x92, 0xF3, 0xED, 0xF5, 0x8E, 0xF3, 0xF2, 0xF5, 0x8A, 0xF3, 0xF7, 0xF5, 0x86, 0xF3, 0xFC, 0xF5,
+ .byte 0x82, 0xF3, 0x01, 0xF6, 0x7E, 0xF3, 0x05, 0xF6, 0x7A, 0xF3, 0x0A, 0xF6, 0x76, 0xF3, 0x0F, 0xF6,
+ .byte 0x72, 0xF3, 0x14, 0xF6, 0x6F, 0xF3, 0x19, 0xF6, 0x6B, 0xF3, 0x1E, 0xF6, 0x67, 0xF3, 0x23, 0xF6,
+ .byte 0x63, 0xF3, 0x28, 0xF6, 0x5F, 0xF3, 0x2D, 0xF6, 0x5B, 0xF3, 0x32, 0xF6, 0x57, 0xF3, 0x37, 0xF6,
+ .byte 0x54, 0xF3, 0x3C, 0xF6, 0x50, 0xF3, 0x41, 0xF6, 0x4C, 0xF3, 0x46, 0xF6, 0x48, 0xF3, 0x4B, 0xF6,
+ .byte 0x44, 0xF3, 0x50, 0xF6, 0x40, 0xF3, 0x55, 0xF6, 0x3D, 0xF3, 0x5A, 0xF6, 0x39, 0xF3, 0x5F, 0xF6,
+ .byte 0x35, 0xF3, 0x64, 0xF6, 0x31, 0xF3, 0x69, 0xF6, 0x2E, 0xF3, 0x6E, 0xF6, 0x2A, 0xF3, 0x73, 0xF6,
+ .byte 0x26, 0xF3, 0x78, 0xF6, 0x22, 0xF3, 0x7D, 0xF6, 0x1F, 0xF3, 0x82, 0xF6, 0x1B, 0xF3, 0x87, 0xF6,
+ .byte 0x17, 0xF3, 0x8C, 0xF6, 0x13, 0xF3, 0x91, 0xF6, 0x10, 0xF3, 0x96, 0xF6, 0x0C, 0xF3, 0x9B, 0xF6,
+ .byte 0x08, 0xF3, 0xA1, 0xF6, 0x05, 0xF3, 0xA6, 0xF6, 0x01, 0xF3, 0xAB, 0xF6, 0xFD, 0xF2, 0xB0, 0xF6,
+ .byte 0xFA, 0xF2, 0xB5, 0xF6, 0xF6, 0xF2, 0xBA, 0xF6, 0xF2, 0xF2, 0xBF, 0xF6, 0xEF, 0xF2, 0xC4, 0xF6,
+ .byte 0xEB, 0xF2, 0xC9, 0xF6, 0xE8, 0xF2, 0xCF, 0xF6, 0xE4, 0xF2, 0xD4, 0xF6, 0xE0, 0xF2, 0xD9, 0xF6,
+ .byte 0xDD, 0xF2, 0xDE, 0xF6, 0xD9, 0xF2, 0xE3, 0xF6, 0xD6, 0xF2, 0xE8, 0xF6, 0xD2, 0xF2, 0xEE, 0xF6,
+ .byte 0xCE, 0xF2, 0xF3, 0xF6, 0xCB, 0xF2, 0xF8, 0xF6, 0xC7, 0xF2, 0xFD, 0xF6, 0xC4, 0xF2, 0x02, 0xF7,
+ .byte 0xC0, 0xF2, 0x08, 0xF7, 0xBD, 0xF2, 0x0D, 0xF7, 0xB9, 0xF2, 0x12, 0xF7, 0xB6, 0xF2, 0x17, 0xF7,
+ .byte 0xB2, 0xF2, 0x1C, 0xF7, 0xAF, 0xF2, 0x22, 0xF7, 0xAB, 0xF2, 0x27, 0xF7, 0xA8, 0xF2, 0x2C, 0xF7,
+ .byte 0xA4, 0xF2, 0x31, 0xF7, 0xA1, 0xF2, 0x37, 0xF7, 0x9E, 0xF2, 0x3C, 0xF7, 0x9A, 0xF2, 0x41, 0xF7,
+ .byte 0x97, 0xF2, 0x46, 0xF7, 0x93, 0xF2, 0x4C, 0xF7, 0x90, 0xF2, 0x51, 0xF7, 0x8C, 0xF2, 0x56, 0xF7,
+ .byte 0x89, 0xF2, 0x5B, 0xF7, 0x86, 0xF2, 0x61, 0xF7, 0x82, 0xF2, 0x66, 0xF7, 0x7F, 0xF2, 0x6B, 0xF7,
+ .byte 0x7B, 0xF2, 0x71, 0xF7, 0x78, 0xF2, 0x76, 0xF7, 0x75, 0xF2, 0x7B, 0xF7, 0x71, 0xF2, 0x81, 0xF7,
+ .byte 0x6E, 0xF2, 0x86, 0xF7, 0x6B, 0xF2, 0x8B, 0xF7, 0x67, 0xF2, 0x91, 0xF7, 0x64, 0xF2, 0x96, 0xF7,
+ .byte 0x61, 0xF2, 0x9B, 0xF7, 0x5E, 0xF2, 0xA1, 0xF7, 0x5A, 0xF2, 0xA6, 0xF7, 0x57, 0xF2, 0xAB, 0xF7,
+ .byte 0x54, 0xF2, 0xB1, 0xF7, 0x50, 0xF2, 0xB6, 0xF7, 0x4D, 0xF2, 0xBB, 0xF7, 0x4A, 0xF2, 0xC1, 0xF7,
+ .byte 0x47, 0xF2, 0xC6, 0xF7, 0x44, 0xF2, 0xCC, 0xF7, 0x40, 0xF2, 0xD1, 0xF7, 0x3D, 0xF2, 0xD6, 0xF7,
+ .byte 0x3A, 0xF2, 0xDC, 0xF7, 0x37, 0xF2, 0xE1, 0xF7, 0x34, 0xF2, 0xE7, 0xF7, 0x30, 0xF2, 0xEC, 0xF7,
+ .byte 0x2D, 0xF2, 0xF2, 0xF7, 0x2A, 0xF2, 0xF7, 0xF7, 0x27, 0xF2, 0xFC, 0xF7, 0x24, 0xF2, 0x02, 0xF8,
+ .byte 0x21, 0xF2, 0x07, 0xF8, 0x1D, 0xF2, 0x0D, 0xF8, 0x1A, 0xF2, 0x12, 0xF8, 0x17, 0xF2, 0x18, 0xF8,
+ .byte 0x14, 0xF2, 0x1D, 0xF8, 0x11, 0xF2, 0x23, 0xF8, 0x0E, 0xF2, 0x28, 0xF8, 0x0B, 0xF2, 0x2E, 0xF8,
+ .byte 0x08, 0xF2, 0x33, 0xF8, 0x05, 0xF2, 0x38, 0xF8, 0x02, 0xF2, 0x3E, 0xF8, 0xFF, 0xF1, 0x43, 0xF8,
+ .byte 0xFC, 0xF1, 0x49, 0xF8, 0xF9, 0xF1, 0x4E, 0xF8, 0xF6, 0xF1, 0x54, 0xF8, 0xF3, 0xF1, 0x5A, 0xF8,
+ .byte 0xF0, 0xF1, 0x5F, 0xF8, 0xED, 0xF1, 0x65, 0xF8, 0xEA, 0xF1, 0x6A, 0xF8, 0xE7, 0xF1, 0x70, 0xF8,
+ .byte 0xE4, 0xF1, 0x75, 0xF8, 0xE1, 0xF1, 0x7B, 0xF8, 0xDE, 0xF1, 0x80, 0xF8, 0xDB, 0xF1, 0x86, 0xF8,
+ .byte 0xD8, 0xF1, 0x8B, 0xF8, 0xD5, 0xF1, 0x91, 0xF8, 0xD2, 0xF1, 0x96, 0xF8, 0xCF, 0xF1, 0x9C, 0xF8,
+ .byte 0xCC, 0xF1, 0xA2, 0xF8, 0xC9, 0xF1, 0xA7, 0xF8, 0xC6, 0xF1, 0xAD, 0xF8, 0xC4, 0xF1, 0xB2, 0xF8,
+ .byte 0xC1, 0xF1, 0xB8, 0xF8, 0xBE, 0xF1, 0xBE, 0xF8, 0xBB, 0xF1, 0xC3, 0xF8, 0xB8, 0xF1, 0xC9, 0xF8,
+ .byte 0xB5, 0xF1, 0xCE, 0xF8, 0xB3, 0xF1, 0xD4, 0xF8, 0xB0, 0xF1, 0xDA, 0xF8, 0xAD, 0xF1, 0xDF, 0xF8,
+ .byte 0xAA, 0xF1, 0xE5, 0xF8, 0xA7, 0xF1, 0xEB, 0xF8, 0xA5, 0xF1, 0xF0, 0xF8, 0xA2, 0xF1, 0xF6, 0xF8,
+ .byte 0x9F, 0xF1, 0xFB, 0xF8, 0x9C, 0xF1, 0x01, 0xF9, 0x9A, 0xF1, 0x07, 0xF9, 0x97, 0xF1, 0x0C, 0xF9,
+ .byte 0x94, 0xF1, 0x12, 0xF9, 0x91, 0xF1, 0x18, 0xF9, 0x8F, 0xF1, 0x1D, 0xF9, 0x8C, 0xF1, 0x23, 0xF9,
+ .byte 0x89, 0xF1, 0x29, 0xF9, 0x87, 0xF1, 0x2E, 0xF9, 0x84, 0xF1, 0x34, 0xF9, 0x81, 0xF1, 0x3A, 0xF9,
+ .byte 0x7F, 0xF1, 0x3F, 0xF9, 0x7C, 0xF1, 0x45, 0xF9, 0x79, 0xF1, 0x4B, 0xF9, 0x77, 0xF1, 0x51, 0xF9,
+ .byte 0x74, 0xF1, 0x56, 0xF9, 0x71, 0xF1, 0x5C, 0xF9, 0x6F, 0xF1, 0x62, 0xF9, 0x6C, 0xF1, 0x67, 0xF9,
+ .byte 0x6A, 0xF1, 0x6D, 0xF9, 0x67, 0xF1, 0x73, 0xF9, 0x65, 0xF1, 0x79, 0xF9, 0x62, 0xF1, 0x7E, 0xF9,
+ .byte 0x5F, 0xF1, 0x84, 0xF9, 0x5D, 0xF1, 0x8A, 0xF9, 0x5A, 0xF1, 0x90, 0xF9, 0x58, 0xF1, 0x95, 0xF9,
+ .byte 0x55, 0xF1, 0x9B, 0xF9, 0x53, 0xF1, 0xA1, 0xF9, 0x50, 0xF1, 0xA7, 0xF9, 0x4E, 0xF1, 0xAC, 0xF9,
+ .byte 0x4B, 0xF1, 0xB2, 0xF9, 0x49, 0xF1, 0xB8, 0xF9, 0x46, 0xF1, 0xBE, 0xF9, 0x44, 0xF1, 0xC4, 0xF9,
+ .byte 0x41, 0xF1, 0xC9, 0xF9, 0x3F, 0xF1, 0xCF, 0xF9, 0x3D, 0xF1, 0xD5, 0xF9, 0x3A, 0xF1, 0xDB, 0xF9,
+ .byte 0x38, 0xF1, 0xE1, 0xF9, 0x35, 0xF1, 0xE6, 0xF9, 0x33, 0xF1, 0xEC, 0xF9, 0x31, 0xF1, 0xF2, 0xF9,
+ .byte 0x2E, 0xF1, 0xF8, 0xF9, 0x2C, 0xF1, 0xFE, 0xF9, 0x2A, 0xF1, 0x03, 0xFA, 0x27, 0xF1, 0x09, 0xFA,
+ .byte 0x25, 0xF1, 0x0F, 0xFA, 0x23, 0xF1, 0x15, 0xFA, 0x20, 0xF1, 0x1B, 0xFA, 0x1E, 0xF1, 0x21, 0xFA,
+ .byte 0x1C, 0xF1, 0x26, 0xFA, 0x19, 0xF1, 0x2C, 0xFA, 0x17, 0xF1, 0x32, 0xFA, 0x15, 0xF1, 0x38, 0xFA,
+ .byte 0x12, 0xF1, 0x3E, 0xFA, 0x10, 0xF1, 0x44, 0xFA, 0x0E, 0xF1, 0x4A, 0xFA, 0x0C, 0xF1, 0x4F, 0xFA,
+ .byte 0x09, 0xF1, 0x55, 0xFA, 0x07, 0xF1, 0x5B, 0xFA, 0x05, 0xF1, 0x61, 0xFA, 0x03, 0xF1, 0x67, 0xFA,
+ .byte 0x01, 0xF1, 0x6D, 0xFA, 0xFE, 0xF0, 0x73, 0xFA, 0xFC, 0xF0, 0x79, 0xFA, 0xFA, 0xF0, 0x7F, 0xFA,
+ .byte 0xF8, 0xF0, 0x84, 0xFA, 0xF6, 0xF0, 0x8A, 0xFA, 0xF4, 0xF0, 0x90, 0xFA, 0xF2, 0xF0, 0x96, 0xFA,
+ .byte 0xEF, 0xF0, 0x9C, 0xFA, 0xED, 0xF0, 0xA2, 0xFA, 0xEB, 0xF0, 0xA8, 0xFA, 0xE9, 0xF0, 0xAE, 0xFA,
+ .byte 0xE7, 0xF0, 0xB4, 0xFA, 0xE5, 0xF0, 0xBA, 0xFA, 0xE3, 0xF0, 0xC0, 0xFA, 0xE1, 0xF0, 0xC6, 0xFA,
+ .byte 0xDF, 0xF0, 0xCC, 0xFA, 0xDD, 0xF0, 0xD1, 0xFA, 0xDB, 0xF0, 0xD7, 0xFA, 0xD9, 0xF0, 0xDD, 0xFA,
+ .byte 0xD7, 0xF0, 0xE3, 0xFA, 0xD5, 0xF0, 0xE9, 0xFA, 0xD3, 0xF0, 0xEF, 0xFA, 0xD1, 0xF0, 0xF5, 0xFA,
+ .byte 0xCF, 0xF0, 0xFB, 0xFA, 0xCD, 0xF0, 0x01, 0xFB, 0xCB, 0xF0, 0x07, 0xFB, 0xC9, 0xF0, 0x0D, 0xFB,
+ .byte 0xC7, 0xF0, 0x13, 0xFB, 0xC5, 0xF0, 0x19, 0xFB, 0xC3, 0xF0, 0x1F, 0xFB, 0xC1, 0xF0, 0x25, 0xFB,
+ .byte 0xBF, 0xF0, 0x2B, 0xFB, 0xBD, 0xF0, 0x31, 0xFB, 0xBB, 0xF0, 0x37, 0xFB, 0xBA, 0xF0, 0x3D, 0xFB,
+ .byte 0xB8, 0xF0, 0x43, 0xFB, 0xB6, 0xF0, 0x49, 0xFB, 0xB4, 0xF0, 0x4F, 0xFB, 0xB2, 0xF0, 0x55, 0xFB,
+ .byte 0xB0, 0xF0, 0x5B, 0xFB, 0xAF, 0xF0, 0x61, 0xFB, 0xAD, 0xF0, 0x67, 0xFB, 0xAB, 0xF0, 0x6D, 0xFB,
+ .byte 0xA9, 0xF0, 0x73, 0xFB, 0xA7, 0xF0, 0x79, 0xFB, 0xA6, 0xF0, 0x7F, 0xFB, 0xA4, 0xF0, 0x85, 0xFB,
+ .byte 0xA2, 0xF0, 0x8B, 0xFB, 0xA0, 0xF0, 0x91, 0xFB, 0x9F, 0xF0, 0x97, 0xFB, 0x9D, 0xF0, 0x9D, 0xFB,
+ .byte 0x9B, 0xF0, 0xA3, 0xFB, 0x99, 0xF0, 0xA9, 0xFB, 0x98, 0xF0, 0xAF, 0xFB, 0x96, 0xF0, 0xB5, 0xFB,
+ .byte 0x94, 0xF0, 0xBC, 0xFB, 0x93, 0xF0, 0xC2, 0xFB, 0x91, 0xF0, 0xC8, 0xFB, 0x8F, 0xF0, 0xCE, 0xFB,
+ .byte 0x8E, 0xF0, 0xD4, 0xFB, 0x8C, 0xF0, 0xDA, 0xFB, 0x8A, 0xF0, 0xE0, 0xFB, 0x89, 0xF0, 0xE6, 0xFB,
+ .byte 0x87, 0xF0, 0xEC, 0xFB, 0x86, 0xF0, 0xF2, 0xFB, 0x84, 0xF0, 0xF8, 0xFB, 0x83, 0xF0, 0xFE, 0xFB,
+ .byte 0x81, 0xF0, 0x04, 0xFC, 0x7F, 0xF0, 0x0A, 0xFC, 0x7E, 0xF0, 0x11, 0xFC, 0x7C, 0xF0, 0x17, 0xFC,
+ .byte 0x7B, 0xF0, 0x1D, 0xFC, 0x79, 0xF0, 0x23, 0xFC, 0x78, 0xF0, 0x29, 0xFC, 0x76, 0xF0, 0x2F, 0xFC,
+ .byte 0x75, 0xF0, 0x35, 0xFC, 0x73, 0xF0, 0x3B, 0xFC, 0x72, 0xF0, 0x41, 0xFC, 0x70, 0xF0, 0x47, 0xFC,
+ .byte 0x6F, 0xF0, 0x4E, 0xFC, 0x6D, 0xF0, 0x54, 0xFC, 0x6C, 0xF0, 0x5A, 0xFC, 0x6B, 0xF0, 0x60, 0xFC,
+ .byte 0x69, 0xF0, 0x66, 0xFC, 0x68, 0xF0, 0x6C, 0xFC, 0x66, 0xF0, 0x72, 0xFC, 0x65, 0xF0, 0x78, 0xFC,
+ .byte 0x64, 0xF0, 0x7F, 0xFC, 0x62, 0xF0, 0x85, 0xFC, 0x61, 0xF0, 0x8B, 0xFC, 0x5F, 0xF0, 0x91, 0xFC,
+ .byte 0x5E, 0xF0, 0x97, 0xFC, 0x5D, 0xF0, 0x9D, 0xFC, 0x5B, 0xF0, 0xA3, 0xFC, 0x5A, 0xF0, 0xAA, 0xFC,
+ .byte 0x59, 0xF0, 0xB0, 0xFC, 0x58, 0xF0, 0xB6, 0xFC, 0x56, 0xF0, 0xBC, 0xFC, 0x55, 0xF0, 0xC2, 0xFC,
+ .byte 0x54, 0xF0, 0xC8, 0xFC, 0x52, 0xF0, 0xCE, 0xFC, 0x51, 0xF0, 0xD5, 0xFC, 0x50, 0xF0, 0xDB, 0xFC,
+ .byte 0x4F, 0xF0, 0xE1, 0xFC, 0x4D, 0xF0, 0xE7, 0xFC, 0x4C, 0xF0, 0xED, 0xFC, 0x4B, 0xF0, 0xF3, 0xFC,
+ .byte 0x4A, 0xF0, 0xFA, 0xFC, 0x49, 0xF0, 0x00, 0xFD, 0x48, 0xF0, 0x06, 0xFD, 0x46, 0xF0, 0x0C, 0xFD,
+ .byte 0x45, 0xF0, 0x12, 0xFD, 0x44, 0xF0, 0x18, 0xFD, 0x43, 0xF0, 0x1F, 0xFD, 0x42, 0xF0, 0x25, 0xFD,
+ .byte 0x41, 0xF0, 0x2B, 0xFD, 0x40, 0xF0, 0x31, 0xFD, 0x3E, 0xF0, 0x37, 0xFD, 0x3D, 0xF0, 0x3E, 0xFD,
+ .byte 0x3C, 0xF0, 0x44, 0xFD, 0x3B, 0xF0, 0x4A, 0xFD, 0x3A, 0xF0, 0x50, 0xFD, 0x39, 0xF0, 0x56, 0xFD,
+ .byte 0x38, 0xF0, 0x5D, 0xFD, 0x37, 0xF0, 0x63, 0xFD, 0x36, 0xF0, 0x69, 0xFD, 0x35, 0xF0, 0x6F, 0xFD,
+ .byte 0x34, 0xF0, 0x75, 0xFD, 0x33, 0xF0, 0x7C, 0xFD, 0x32, 0xF0, 0x82, 0xFD, 0x31, 0xF0, 0x88, 0xFD,
+ .byte 0x30, 0xF0, 0x8E, 0xFD, 0x2F, 0xF0, 0x94, 0xFD, 0x2E, 0xF0, 0x9B, 0xFD, 0x2D, 0xF0, 0xA1, 0xFD,
+ .byte 0x2C, 0xF0, 0xA7, 0xFD, 0x2B, 0xF0, 0xAD, 0xFD, 0x2B, 0xF0, 0xB3, 0xFD, 0x2A, 0xF0, 0xBA, 0xFD,
+ .byte 0x29, 0xF0, 0xC0, 0xFD, 0x28, 0xF0, 0xC6, 0xFD, 0x27, 0xF0, 0xCC, 0xFD, 0x26, 0xF0, 0xD3, 0xFD,
+ .byte 0x25, 0xF0, 0xD9, 0xFD, 0x24, 0xF0, 0xDF, 0xFD, 0x24, 0xF0, 0xE5, 0xFD, 0x23, 0xF0, 0xEB, 0xFD,
+ .byte 0x22, 0xF0, 0xF2, 0xFD, 0x21, 0xF0, 0xF8, 0xFD, 0x20, 0xF0, 0xFE, 0xFD, 0x20, 0xF0, 0x04, 0xFE,
+ .byte 0x1F, 0xF0, 0x0B, 0xFE, 0x1E, 0xF0, 0x11, 0xFE, 0x1D, 0xF0, 0x17, 0xFE, 0x1D, 0xF0, 0x1D, 0xFE,
+ .byte 0x1C, 0xF0, 0x24, 0xFE, 0x1B, 0xF0, 0x2A, 0xFE, 0x1A, 0xF0, 0x30, 0xFE, 0x1A, 0xF0, 0x36, 0xFE,
+ .byte 0x19, 0xF0, 0x3D, 0xFE, 0x18, 0xF0, 0x43, 0xFE, 0x18, 0xF0, 0x49, 0xFE, 0x17, 0xF0, 0x4F, 0xFE,
+ .byte 0x16, 0xF0, 0x56, 0xFE, 0x16, 0xF0, 0x5C, 0xFE, 0x15, 0xF0, 0x62, 0xFE, 0x14, 0xF0, 0x68, 0xFE,
+ .byte 0x14, 0xF0, 0x6F, 0xFE, 0x13, 0xF0, 0x75, 0xFE, 0x13, 0xF0, 0x7B, 0xFE, 0x12, 0xF0, 0x81, 0xFE,
+ .byte 0x11, 0xF0, 0x88, 0xFE, 0x11, 0xF0, 0x8E, 0xFE, 0x10, 0xF0, 0x94, 0xFE, 0x10, 0xF0, 0x9A, 0xFE,
+ .byte 0x0F, 0xF0, 0xA1, 0xFE, 0x0F, 0xF0, 0xA7, 0xFE, 0x0E, 0xF0, 0xAD, 0xFE, 0x0E, 0xF0, 0xB3, 0xFE,
+ .byte 0x0D, 0xF0, 0xBA, 0xFE, 0x0D, 0xF0, 0xC0, 0xFE, 0x0C, 0xF0, 0xC6, 0xFE, 0x0C, 0xF0, 0xCC, 0xFE,
+ .byte 0x0B, 0xF0, 0xD3, 0xFE, 0x0B, 0xF0, 0xD9, 0xFE, 0x0A, 0xF0, 0xDF, 0xFE, 0x0A, 0xF0, 0xE5, 0xFE,
+ .byte 0x09, 0xF0, 0xEC, 0xFE, 0x09, 0xF0, 0xF2, 0xFE, 0x08, 0xF0, 0xF8, 0xFE, 0x08, 0xF0, 0xFF, 0xFE,
+ .byte 0x08, 0xF0, 0x05, 0xFF, 0x07, 0xF0, 0x0B, 0xFF, 0x07, 0xF0, 0x11, 0xFF, 0x07, 0xF0, 0x18, 0xFF,
+ .byte 0x06, 0xF0, 0x1E, 0xFF, 0x06, 0xF0, 0x24, 0xFF, 0x06, 0xF0, 0x2A, 0xFF, 0x05, 0xF0, 0x31, 0xFF,
+ .byte 0x05, 0xF0, 0x37, 0xFF, 0x05, 0xF0, 0x3D, 0xFF, 0x04, 0xF0, 0x44, 0xFF, 0x04, 0xF0, 0x4A, 0xFF,
+ .byte 0x04, 0xF0, 0x50, 0xFF, 0x04, 0xF0, 0x56, 0xFF, 0x03, 0xF0, 0x5D, 0xFF, 0x03, 0xF0, 0x63, 0xFF,
+ .byte 0x03, 0xF0, 0x69, 0xFF, 0x03, 0xF0, 0x70, 0xFF, 0x02, 0xF0, 0x76, 0xFF, 0x02, 0xF0, 0x7C, 0xFF,
+ .byte 0x02, 0xF0, 0x82, 0xFF, 0x02, 0xF0, 0x89, 0xFF, 0x02, 0xF0, 0x8F, 0xFF, 0x01, 0xF0, 0x95, 0xFF,
+ .byte 0x01, 0xF0, 0x9B, 0xFF, 0x01, 0xF0, 0xA2, 0xFF, 0x01, 0xF0, 0xA8, 0xFF, 0x01, 0xF0, 0xAE, 0xFF,
+ .byte 0x01, 0xF0, 0xB5, 0xFF, 0x01, 0xF0, 0xBB, 0xFF, 0x00, 0xF0, 0xC1, 0xFF, 0x00, 0xF0, 0xC7, 0xFF,
+ .byte 0x00, 0xF0, 0xCE, 0xFF, 0x00, 0xF0, 0xD4, 0xFF, 0x00, 0xF0, 0xDA, 0xFF, 0x00, 0xF0, 0xE1, 0xFF,
+ .byte 0x00, 0xF0, 0xE7, 0xFF, 0x00, 0xF0, 0xED, 0xFF, 0x00, 0xF0, 0xF3, 0xFF, 0x00, 0xF0, 0xFA, 0xFF,
+ .byte 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x06, 0x00, 0x00, 0xF0, 0x0D, 0x00, 0x00, 0xF0, 0x13, 0x00,
+ .byte 0x00, 0xF0, 0x19, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0xF0, 0x26, 0x00, 0x00, 0xF0, 0x2C, 0x00,
+ .byte 0x00, 0xF0, 0x32, 0x00, 0x00, 0xF0, 0x39, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x01, 0xF0, 0x45, 0x00,
+ .byte 0x01, 0xF0, 0x4B, 0x00, 0x01, 0xF0, 0x52, 0x00, 0x01, 0xF0, 0x58, 0x00, 0x01, 0xF0, 0x5E, 0x00,
+ .byte 0x01, 0xF0, 0x65, 0x00, 0x01, 0xF0, 0x6B, 0x00, 0x02, 0xF0, 0x71, 0x00, 0x02, 0xF0, 0x77, 0x00,
+ .byte 0x02, 0xF0, 0x7E, 0x00, 0x02, 0xF0, 0x84, 0x00, 0x02, 0xF0, 0x8A, 0x00, 0x03, 0xF0, 0x90, 0x00,
+ .byte 0x03, 0xF0, 0x97, 0x00, 0x03, 0xF0, 0x9D, 0x00, 0x03, 0xF0, 0xA3, 0x00, 0x04, 0xF0, 0xAA, 0x00,
+ .byte 0x04, 0xF0, 0xB0, 0x00, 0x04, 0xF0, 0xB6, 0x00, 0x04, 0xF0, 0xBC, 0x00, 0x05, 0xF0, 0xC3, 0x00,
+ .byte 0x05, 0xF0, 0xC9, 0x00, 0x05, 0xF0, 0xCF, 0x00, 0x06, 0xF0, 0xD6, 0x00, 0x06, 0xF0, 0xDC, 0x00,
+ .byte 0x06, 0xF0, 0xE2, 0x00, 0x07, 0xF0, 0xE8, 0x00, 0x07, 0xF0, 0xEF, 0x00, 0x07, 0xF0, 0xF5, 0x00,
+ .byte 0x08, 0xF0, 0xFB, 0x00, 0x08, 0xF0, 0x01, 0x01, 0x08, 0xF0, 0x08, 0x01, 0x09, 0xF0, 0x0E, 0x01,
+ .byte 0x09, 0xF0, 0x14, 0x01, 0x0A, 0xF0, 0x1B, 0x01, 0x0A, 0xF0, 0x21, 0x01, 0x0B, 0xF0, 0x27, 0x01,
+ .byte 0x0B, 0xF0, 0x2D, 0x01, 0x0C, 0xF0, 0x34, 0x01, 0x0C, 0xF0, 0x3A, 0x01, 0x0D, 0xF0, 0x40, 0x01,
+ .byte 0x0D, 0xF0, 0x46, 0x01, 0x0E, 0xF0, 0x4D, 0x01, 0x0E, 0xF0, 0x53, 0x01, 0x0F, 0xF0, 0x59, 0x01,
+ .byte 0x0F, 0xF0, 0x5F, 0x01, 0x10, 0xF0, 0x66, 0x01, 0x10, 0xF0, 0x6C, 0x01, 0x11, 0xF0, 0x72, 0x01,
+ .byte 0x11, 0xF0, 0x78, 0x01, 0x12, 0xF0, 0x7F, 0x01, 0x13, 0xF0, 0x85, 0x01, 0x13, 0xF0, 0x8B, 0x01,
+ .byte 0x14, 0xF0, 0x91, 0x01, 0x14, 0xF0, 0x98, 0x01, 0x15, 0xF0, 0x9E, 0x01, 0x16, 0xF0, 0xA4, 0x01,
+ .byte 0x16, 0xF0, 0xAA, 0x01, 0x17, 0xF0, 0xB1, 0x01, 0x18, 0xF0, 0xB7, 0x01, 0x18, 0xF0, 0xBD, 0x01,
+ .byte 0x19, 0xF0, 0xC3, 0x01, 0x1A, 0xF0, 0xCA, 0x01, 0x1A, 0xF0, 0xD0, 0x01, 0x1B, 0xF0, 0xD6, 0x01,
+ .byte 0x1C, 0xF0, 0xDC, 0x01, 0x1D, 0xF0, 0xE3, 0x01, 0x1D, 0xF0, 0xE9, 0x01, 0x1E, 0xF0, 0xEF, 0x01,
+ .byte 0x1F, 0xF0, 0xF5, 0x01, 0x20, 0xF0, 0xFC, 0x01, 0x20, 0xF0, 0x02, 0x02, 0x21, 0xF0, 0x08, 0x02,
+ .byte 0x22, 0xF0, 0x0E, 0x02, 0x23, 0xF0, 0x15, 0x02, 0x24, 0xF0, 0x1B, 0x02, 0x24, 0xF0, 0x21, 0x02,
+ .byte 0x25, 0xF0, 0x27, 0x02, 0x26, 0xF0, 0x2D, 0x02, 0x27, 0xF0, 0x34, 0x02, 0x28, 0xF0, 0x3A, 0x02,
+ .byte 0x29, 0xF0, 0x40, 0x02, 0x2A, 0xF0, 0x46, 0x02, 0x2B, 0xF0, 0x4D, 0x02, 0x2B, 0xF0, 0x53, 0x02,
+ .byte 0x2C, 0xF0, 0x59, 0x02, 0x2D, 0xF0, 0x5F, 0x02, 0x2E, 0xF0, 0x65, 0x02, 0x2F, 0xF0, 0x6C, 0x02,
+ .byte 0x30, 0xF0, 0x72, 0x02, 0x31, 0xF0, 0x78, 0x02, 0x32, 0xF0, 0x7E, 0x02, 0x33, 0xF0, 0x84, 0x02,
+ .byte 0x34, 0xF0, 0x8B, 0x02, 0x35, 0xF0, 0x91, 0x02, 0x36, 0xF0, 0x97, 0x02, 0x37, 0xF0, 0x9D, 0x02,
+ .byte 0x38, 0xF0, 0xA3, 0x02, 0x39, 0xF0, 0xAA, 0x02, 0x3A, 0xF0, 0xB0, 0x02, 0x3B, 0xF0, 0xB6, 0x02,
+ .byte 0x3C, 0xF0, 0xBC, 0x02, 0x3D, 0xF0, 0xC2, 0x02, 0x3E, 0xF0, 0xC9, 0x02, 0x40, 0xF0, 0xCF, 0x02,
+ .byte 0x41, 0xF0, 0xD5, 0x02, 0x42, 0xF0, 0xDB, 0x02, 0x43, 0xF0, 0xE1, 0x02, 0x44, 0xF0, 0xE8, 0x02,
+ .byte 0x45, 0xF0, 0xEE, 0x02, 0x46, 0xF0, 0xF4, 0x02, 0x48, 0xF0, 0xFA, 0x02, 0x49, 0xF0, 0x00, 0x03,
+ .byte 0x4A, 0xF0, 0x06, 0x03, 0x4B, 0xF0, 0x0D, 0x03, 0x4C, 0xF0, 0x13, 0x03, 0x4D, 0xF0, 0x19, 0x03,
+ .byte 0x4F, 0xF0, 0x1F, 0x03, 0x50, 0xF0, 0x25, 0x03, 0x51, 0xF0, 0x2B, 0x03, 0x52, 0xF0, 0x32, 0x03,
+ .byte 0x54, 0xF0, 0x38, 0x03, 0x55, 0xF0, 0x3E, 0x03, 0x56, 0xF0, 0x44, 0x03, 0x58, 0xF0, 0x4A, 0x03,
+ .byte 0x59, 0xF0, 0x50, 0x03, 0x5A, 0xF0, 0x56, 0x03, 0x5B, 0xF0, 0x5D, 0x03, 0x5D, 0xF0, 0x63, 0x03,
+ .byte 0x5E, 0xF0, 0x69, 0x03, 0x5F, 0xF0, 0x6F, 0x03, 0x61, 0xF0, 0x75, 0x03, 0x62, 0xF0, 0x7B, 0x03,
+ .byte 0x64, 0xF0, 0x81, 0x03, 0x65, 0xF0, 0x88, 0x03, 0x66, 0xF0, 0x8E, 0x03, 0x68, 0xF0, 0x94, 0x03,
+ .byte 0x69, 0xF0, 0x9A, 0x03, 0x6B, 0xF0, 0xA0, 0x03, 0x6C, 0xF0, 0xA6, 0x03, 0x6D, 0xF0, 0xAC, 0x03,
+ .byte 0x6F, 0xF0, 0xB2, 0x03, 0x70, 0xF0, 0xB9, 0x03, 0x72, 0xF0, 0xBF, 0x03, 0x73, 0xF0, 0xC5, 0x03,
+ .byte 0x75, 0xF0, 0xCB, 0x03, 0x76, 0xF0, 0xD1, 0x03, 0x78, 0xF0, 0xD7, 0x03, 0x79, 0xF0, 0xDD, 0x03,
+ .byte 0x7B, 0xF0, 0xE3, 0x03, 0x7C, 0xF0, 0xE9, 0x03, 0x7E, 0xF0, 0xEF, 0x03, 0x7F, 0xF0, 0xF6, 0x03,
+ .byte 0x81, 0xF0, 0xFC, 0x03, 0x83, 0xF0, 0x02, 0x04, 0x84, 0xF0, 0x08, 0x04, 0x86, 0xF0, 0x0E, 0x04,
+ .byte 0x87, 0xF0, 0x14, 0x04, 0x89, 0xF0, 0x1A, 0x04, 0x8A, 0xF0, 0x20, 0x04, 0x8C, 0xF0, 0x26, 0x04,
+ .byte 0x8E, 0xF0, 0x2C, 0x04, 0x8F, 0xF0, 0x32, 0x04, 0x91, 0xF0, 0x38, 0x04, 0x93, 0xF0, 0x3E, 0x04,
+ .byte 0x94, 0xF0, 0x44, 0x04, 0x96, 0xF0, 0x4B, 0x04, 0x98, 0xF0, 0x51, 0x04, 0x99, 0xF0, 0x57, 0x04,
+ .byte 0x9B, 0xF0, 0x5D, 0x04, 0x9D, 0xF0, 0x63, 0x04, 0x9F, 0xF0, 0x69, 0x04, 0xA0, 0xF0, 0x6F, 0x04,
+ .byte 0xA2, 0xF0, 0x75, 0x04, 0xA4, 0xF0, 0x7B, 0x04, 0xA6, 0xF0, 0x81, 0x04, 0xA7, 0xF0, 0x87, 0x04,
+ .byte 0xA9, 0xF0, 0x8D, 0x04, 0xAB, 0xF0, 0x93, 0x04, 0xAD, 0xF0, 0x99, 0x04, 0xAF, 0xF0, 0x9F, 0x04,
+ .byte 0xB0, 0xF0, 0xA5, 0x04, 0xB2, 0xF0, 0xAB, 0x04, 0xB4, 0xF0, 0xB1, 0x04, 0xB6, 0xF0, 0xB7, 0x04,
+ .byte 0xB8, 0xF0, 0xBD, 0x04, 0xBA, 0xF0, 0xC3, 0x04, 0xBB, 0xF0, 0xC9, 0x04, 0xBD, 0xF0, 0xCF, 0x04,
+ .byte 0xBF, 0xF0, 0xD5, 0x04, 0xC1, 0xF0, 0xDB, 0x04, 0xC3, 0xF0, 0xE1, 0x04, 0xC5, 0xF0, 0xE7, 0x04,
+ .byte 0xC7, 0xF0, 0xED, 0x04, 0xC9, 0xF0, 0xF3, 0x04, 0xCB, 0xF0, 0xF9, 0x04, 0xCD, 0xF0, 0xFF, 0x04,
+ .byte 0xCF, 0xF0, 0x05, 0x05, 0xD1, 0xF0, 0x0B, 0x05, 0xD3, 0xF0, 0x11, 0x05, 0xD5, 0xF0, 0x17, 0x05,
+ .byte 0xD7, 0xF0, 0x1D, 0x05, 0xD9, 0xF0, 0x23, 0x05, 0xDB, 0xF0, 0x29, 0x05, 0xDD, 0xF0, 0x2F, 0x05,
+ .byte 0xDF, 0xF0, 0x34, 0x05, 0xE1, 0xF0, 0x3A, 0x05, 0xE3, 0xF0, 0x40, 0x05, 0xE5, 0xF0, 0x46, 0x05,
+ .byte 0xE7, 0xF0, 0x4C, 0x05, 0xE9, 0xF0, 0x52, 0x05, 0xEB, 0xF0, 0x58, 0x05, 0xED, 0xF0, 0x5E, 0x05,
+ .byte 0xEF, 0xF0, 0x64, 0x05, 0xF2, 0xF0, 0x6A, 0x05, 0xF4, 0xF0, 0x70, 0x05, 0xF6, 0xF0, 0x76, 0x05,
+ .byte 0xF8, 0xF0, 0x7C, 0x05, 0xFA, 0xF0, 0x81, 0x05, 0xFC, 0xF0, 0x87, 0x05, 0xFE, 0xF0, 0x8D, 0x05,
+ .byte 0x01, 0xF1, 0x93, 0x05, 0x03, 0xF1, 0x99, 0x05, 0x05, 0xF1, 0x9F, 0x05, 0x07, 0xF1, 0xA5, 0x05,
+ .byte 0x09, 0xF1, 0xAB, 0x05, 0x0C, 0xF1, 0xB1, 0x05, 0x0E, 0xF1, 0xB6, 0x05, 0x10, 0xF1, 0xBC, 0x05,
+ .byte 0x12, 0xF1, 0xC2, 0x05, 0x15, 0xF1, 0xC8, 0x05, 0x17, 0xF1, 0xCE, 0x05, 0x19, 0xF1, 0xD4, 0x05,
+ .byte 0x1C, 0xF1, 0xDA, 0x05, 0x1E, 0xF1, 0xDF, 0x05, 0x20, 0xF1, 0xE5, 0x05, 0x23, 0xF1, 0xEB, 0x05,
+ .byte 0x25, 0xF1, 0xF1, 0x05, 0x27, 0xF1, 0xF7, 0x05, 0x2A, 0xF1, 0xFD, 0x05, 0x2C, 0xF1, 0x02, 0x06,
+ .byte 0x2E, 0xF1, 0x08, 0x06, 0x31, 0xF1, 0x0E, 0x06, 0x33, 0xF1, 0x14, 0x06, 0x35, 0xF1, 0x1A, 0x06,
+ .byte 0x38, 0xF1, 0x1F, 0x06, 0x3A, 0xF1, 0x25, 0x06, 0x3D, 0xF1, 0x2B, 0x06, 0x3F, 0xF1, 0x31, 0x06,
+ .byte 0x41, 0xF1, 0x37, 0x06, 0x44, 0xF1, 0x3C, 0x06, 0x46, 0xF1, 0x42, 0x06, 0x49, 0xF1, 0x48, 0x06,
+ .byte 0x4B, 0xF1, 0x4E, 0x06, 0x4E, 0xF1, 0x54, 0x06, 0x50, 0xF1, 0x59, 0x06, 0x53, 0xF1, 0x5F, 0x06,
+ .byte 0x55, 0xF1, 0x65, 0x06, 0x58, 0xF1, 0x6B, 0x06, 0x5A, 0xF1, 0x70, 0x06, 0x5D, 0xF1, 0x76, 0x06,
+ .byte 0x5F, 0xF1, 0x7C, 0x06, 0x62, 0xF1, 0x82, 0x06, 0x65, 0xF1, 0x87, 0x06, 0x67, 0xF1, 0x8D, 0x06,
+ .byte 0x6A, 0xF1, 0x93, 0x06, 0x6C, 0xF1, 0x99, 0x06, 0x6F, 0xF1, 0x9E, 0x06, 0x71, 0xF1, 0xA4, 0x06,
+ .byte 0x74, 0xF1, 0xAA, 0x06, 0x77, 0xF1, 0xAF, 0x06, 0x79, 0xF1, 0xB5, 0x06, 0x7C, 0xF1, 0xBB, 0x06,
+ .byte 0x7F, 0xF1, 0xC1, 0x06, 0x81, 0xF1, 0xC6, 0x06, 0x84, 0xF1, 0xCC, 0x06, 0x87, 0xF1, 0xD2, 0x06,
+ .byte 0x89, 0xF1, 0xD7, 0x06, 0x8C, 0xF1, 0xDD, 0x06, 0x8F, 0xF1, 0xE3, 0x06, 0x91, 0xF1, 0xE8, 0x06,
+ .byte 0x94, 0xF1, 0xEE, 0x06, 0x97, 0xF1, 0xF4, 0x06, 0x9A, 0xF1, 0xF9, 0x06, 0x9C, 0xF1, 0xFF, 0x06,
+ .byte 0x9F, 0xF1, 0x05, 0x07, 0xA2, 0xF1, 0x0A, 0x07, 0xA5, 0xF1, 0x10, 0x07, 0xA7, 0xF1, 0x15, 0x07,
+ .byte 0xAA, 0xF1, 0x1B, 0x07, 0xAD, 0xF1, 0x21, 0x07, 0xB0, 0xF1, 0x26, 0x07, 0xB3, 0xF1, 0x2C, 0x07,
+ .byte 0xB5, 0xF1, 0x32, 0x07, 0xB8, 0xF1, 0x37, 0x07, 0xBB, 0xF1, 0x3D, 0x07, 0xBE, 0xF1, 0x42, 0x07,
+ .byte 0xC1, 0xF1, 0x48, 0x07, 0xC4, 0xF1, 0x4E, 0x07, 0xC6, 0xF1, 0x53, 0x07, 0xC9, 0xF1, 0x59, 0x07,
+ .byte 0xCC, 0xF1, 0x5E, 0x07, 0xCF, 0xF1, 0x64, 0x07, 0xD2, 0xF1, 0x6A, 0x07, 0xD5, 0xF1, 0x6F, 0x07,
+ .byte 0xD8, 0xF1, 0x75, 0x07, 0xDB, 0xF1, 0x7A, 0x07, 0xDE, 0xF1, 0x80, 0x07, 0xE1, 0xF1, 0x85, 0x07,
+ .byte 0xE4, 0xF1, 0x8B, 0x07, 0xE7, 0xF1, 0x90, 0x07, 0xEA, 0xF1, 0x96, 0x07, 0xED, 0xF1, 0x9B, 0x07,
+ .byte 0xF0, 0xF1, 0xA1, 0x07, 0xF3, 0xF1, 0xA6, 0x07, 0xF6, 0xF1, 0xAC, 0x07, 0xF9, 0xF1, 0xB2, 0x07,
+ .byte 0xFC, 0xF1, 0xB7, 0x07, 0xFF, 0xF1, 0xBD, 0x07, 0x02, 0xF2, 0xC2, 0x07, 0x05, 0xF2, 0xC8, 0x07,
+ .byte 0x08, 0xF2, 0xCD, 0x07, 0x0B, 0xF2, 0xD2, 0x07, 0x0E, 0xF2, 0xD8, 0x07, 0x11, 0xF2, 0xDD, 0x07,
+ .byte 0x14, 0xF2, 0xE3, 0x07, 0x17, 0xF2, 0xE8, 0x07, 0x1A, 0xF2, 0xEE, 0x07, 0x1D, 0xF2, 0xF3, 0x07,
+ .byte 0x21, 0xF2, 0xF9, 0x07, 0x24, 0xF2, 0xFE, 0x07, 0x27, 0xF2, 0x04, 0x08, 0x2A, 0xF2, 0x09, 0x08,
+ .byte 0x2D, 0xF2, 0x0E, 0x08, 0x30, 0xF2, 0x14, 0x08, 0x34, 0xF2, 0x19, 0x08, 0x37, 0xF2, 0x1F, 0x08,
+ .byte 0x3A, 0xF2, 0x24, 0x08, 0x3D, 0xF2, 0x2A, 0x08, 0x40, 0xF2, 0x2F, 0x08, 0x44, 0xF2, 0x34, 0x08,
+ .byte 0x47, 0xF2, 0x3A, 0x08, 0x4A, 0xF2, 0x3F, 0x08, 0x4D, 0xF2, 0x45, 0x08, 0x50, 0xF2, 0x4A, 0x08,
+ .byte 0x54, 0xF2, 0x4F, 0x08, 0x57, 0xF2, 0x55, 0x08, 0x5A, 0xF2, 0x5A, 0x08, 0x5E, 0xF2, 0x5F, 0x08,
+ .byte 0x61, 0xF2, 0x65, 0x08, 0x64, 0xF2, 0x6A, 0x08, 0x67, 0xF2, 0x6F, 0x08, 0x6B, 0xF2, 0x75, 0x08,
+ .byte 0x6E, 0xF2, 0x7A, 0x08, 0x71, 0xF2, 0x7F, 0x08, 0x75, 0xF2, 0x85, 0x08, 0x78, 0xF2, 0x8A, 0x08,
+ .byte 0x7B, 0xF2, 0x8F, 0x08, 0x7F, 0xF2, 0x95, 0x08, 0x82, 0xF2, 0x9A, 0x08, 0x86, 0xF2, 0x9F, 0x08,
+ .byte 0x89, 0xF2, 0xA5, 0x08, 0x8C, 0xF2, 0xAA, 0x08, 0x90, 0xF2, 0xAF, 0x08, 0x93, 0xF2, 0xB4, 0x08,
+ .byte 0x97, 0xF2, 0xBA, 0x08, 0x9A, 0xF2, 0xBF, 0x08, 0x9E, 0xF2, 0xC4, 0x08, 0xA1, 0xF2, 0xC9, 0x08,
+ .byte 0xA4, 0xF2, 0xCF, 0x08, 0xA8, 0xF2, 0xD4, 0x08, 0xAB, 0xF2, 0xD9, 0x08, 0xAF, 0xF2, 0xDE, 0x08,
+ .byte 0xB2, 0xF2, 0xE4, 0x08, 0xB6, 0xF2, 0xE9, 0x08, 0xB9, 0xF2, 0xEE, 0x08, 0xBD, 0xF2, 0xF3, 0x08,
+ .byte 0xC0, 0xF2, 0xF8, 0x08, 0xC4, 0xF2, 0xFE, 0x08, 0xC7, 0xF2, 0x03, 0x09, 0xCB, 0xF2, 0x08, 0x09,
+ .byte 0xCE, 0xF2, 0x0D, 0x09, 0xD2, 0xF2, 0x12, 0x09, 0xD6, 0xF2, 0x18, 0x09, 0xD9, 0xF2, 0x1D, 0x09,
+ .byte 0xDD, 0xF2, 0x22, 0x09, 0xE0, 0xF2, 0x27, 0x09, 0xE4, 0xF2, 0x2C, 0x09, 0xE8, 0xF2, 0x31, 0x09,
+ .byte 0xEB, 0xF2, 0x37, 0x09, 0xEF, 0xF2, 0x3C, 0x09, 0xF2, 0xF2, 0x41, 0x09, 0xF6, 0xF2, 0x46, 0x09,
+ .byte 0xFA, 0xF2, 0x4B, 0x09, 0xFD, 0xF2, 0x50, 0x09, 0x01, 0xF3, 0x55, 0x09, 0x05, 0xF3, 0x5A, 0x09,
+ .byte 0x08, 0xF3, 0x5F, 0x09, 0x0C, 0xF3, 0x65, 0x09, 0x10, 0xF3, 0x6A, 0x09, 0x13, 0xF3, 0x6F, 0x09,
+ .byte 0x17, 0xF3, 0x74, 0x09, 0x1B, 0xF3, 0x79, 0x09, 0x1F, 0xF3, 0x7E, 0x09, 0x22, 0xF3, 0x83, 0x09,
+ .byte 0x26, 0xF3, 0x88, 0x09, 0x2A, 0xF3, 0x8D, 0x09, 0x2E, 0xF3, 0x92, 0x09, 0x31, 0xF3, 0x97, 0x09,
+ .byte 0x35, 0xF3, 0x9C, 0x09, 0x39, 0xF3, 0xA1, 0x09, 0x3D, 0xF3, 0xA6, 0x09, 0x40, 0xF3, 0xAB, 0x09,
+ .byte 0x44, 0xF3, 0xB0, 0x09, 0x48, 0xF3, 0xB5, 0x09, 0x4C, 0xF3, 0xBA, 0x09, 0x50, 0xF3, 0xBF, 0x09,
+ .byte 0x54, 0xF3, 0xC4, 0x09, 0x57, 0xF3, 0xC9, 0x09, 0x5B, 0xF3, 0xCE, 0x09, 0x5F, 0xF3, 0xD3, 0x09,
+ .byte 0x63, 0xF3, 0xD8, 0x09, 0x67, 0xF3, 0xDD, 0x09, 0x6B, 0xF3, 0xE2, 0x09, 0x6F, 0xF3, 0xE7, 0x09,
+ .byte 0x72, 0xF3, 0xEC, 0x09, 0x76, 0xF3, 0xF1, 0x09, 0x7A, 0xF3, 0xF6, 0x09, 0x7E, 0xF3, 0xFB, 0x09,
+ .byte 0x82, 0xF3, 0xFF, 0x09, 0x86, 0xF3, 0x04, 0x0A, 0x8A, 0xF3, 0x09, 0x0A, 0x8E, 0xF3, 0x0E, 0x0A,
+ .byte 0x92, 0xF3, 0x13, 0x0A, 0x96, 0xF3, 0x18, 0x0A, 0x9A, 0xF3, 0x1D, 0x0A, 0x9E, 0xF3, 0x22, 0x0A,
+ .byte 0xA2, 0xF3, 0x26, 0x0A, 0xA6, 0xF3, 0x2B, 0x0A, 0xAA, 0xF3, 0x30, 0x0A, 0xAE, 0xF3, 0x35, 0x0A,
+ .byte 0xB2, 0xF3, 0x3A, 0x0A, 0xB6, 0xF3, 0x3F, 0x0A, 0xBA, 0xF3, 0x44, 0x0A, 0xBE, 0xF3, 0x48, 0x0A,
+ .byte 0xC2, 0xF3, 0x4D, 0x0A, 0xC6, 0xF3, 0x52, 0x0A, 0xCA, 0xF3, 0x57, 0x0A, 0xCE, 0xF3, 0x5C, 0x0A,
+ .byte 0xD2, 0xF3, 0x60, 0x0A, 0xD6, 0xF3, 0x65, 0x0A, 0xDA, 0xF3, 0x6A, 0x0A, 0xDE, 0xF3, 0x6F, 0x0A,
+ .byte 0xE2, 0xF3, 0x73, 0x0A, 0xE7, 0xF3, 0x78, 0x0A, 0xEB, 0xF3, 0x7D, 0x0A, 0xEF, 0xF3, 0x82, 0x0A,
+ .byte 0xF3, 0xF3, 0x86, 0x0A, 0xF7, 0xF3, 0x8B, 0x0A, 0xFB, 0xF3, 0x90, 0x0A, 0xFF, 0xF3, 0x95, 0x0A,
+ .byte 0x04, 0xF4, 0x99, 0x0A, 0x08, 0xF4, 0x9E, 0x0A, 0x0C, 0xF4, 0xA3, 0x0A, 0x10, 0xF4, 0xA7, 0x0A,
+ .byte 0x14, 0xF4, 0xAC, 0x0A, 0x18, 0xF4, 0xB1, 0x0A, 0x1D, 0xF4, 0xB5, 0x0A, 0x21, 0xF4, 0xBA, 0x0A,
+ .byte 0x25, 0xF4, 0xBF, 0x0A, 0x29, 0xF4, 0xC3, 0x0A, 0x2E, 0xF4, 0xC8, 0x0A, 0x32, 0xF4, 0xCD, 0x0A,
+ .byte 0x36, 0xF4, 0xD1, 0x0A, 0x3A, 0xF4, 0xD6, 0x0A, 0x3F, 0xF4, 0xDB, 0x0A, 0x43, 0xF4, 0xDF, 0x0A,
+ .byte 0x47, 0xF4, 0xE4, 0x0A, 0x4B, 0xF4, 0xE8, 0x0A, 0x50, 0xF4, 0xED, 0x0A, 0x54, 0xF4, 0xF2, 0x0A,
+ .byte 0x58, 0xF4, 0xF6, 0x0A, 0x5D, 0xF4, 0xFB, 0x0A, 0x61, 0xF4, 0xFF, 0x0A, 0x65, 0xF4, 0x04, 0x0B,
+ .byte 0x69, 0xF4, 0x08, 0x0B, 0x6E, 0xF4, 0x0D, 0x0B, 0x72, 0xF4, 0x11, 0x0B, 0x77, 0xF4, 0x16, 0x0B,
+ .byte 0x7B, 0xF4, 0x1B, 0x0B, 0x7F, 0xF4, 0x1F, 0x0B, 0x84, 0xF4, 0x24, 0x0B, 0x88, 0xF4, 0x28, 0x0B,
+ .byte 0x8C, 0xF4, 0x2D, 0x0B, 0x91, 0xF4, 0x31, 0x0B, 0x95, 0xF4, 0x36, 0x0B, 0x9A, 0xF4, 0x3A, 0x0B,
+ .byte 0x9E, 0xF4, 0x3E, 0x0B, 0xA2, 0xF4, 0x43, 0x0B, 0xA7, 0xF4, 0x47, 0x0B, 0xAB, 0xF4, 0x4C, 0x0B,
+ .byte 0xB0, 0xF4, 0x50, 0x0B, 0xB4, 0xF4, 0x55, 0x0B, 0xB9, 0xF4, 0x59, 0x0B, 0xBD, 0xF4, 0x5E, 0x0B,
+ .byte 0xC2, 0xF4, 0x62, 0x0B, 0xC6, 0xF4, 0x66, 0x0B, 0xCA, 0xF4, 0x6B, 0x0B, 0xCF, 0xF4, 0x6F, 0x0B,
+ .byte 0xD3, 0xF4, 0x74, 0x0B, 0xD8, 0xF4, 0x78, 0x0B, 0xDC, 0xF4, 0x7C, 0x0B, 0xE1, 0xF4, 0x81, 0x0B,
+ .byte 0xE5, 0xF4, 0x85, 0x0B, 0xEA, 0xF4, 0x89, 0x0B, 0xEF, 0xF4, 0x8E, 0x0B, 0xF3, 0xF4, 0x92, 0x0B,
+ .byte 0xF8, 0xF4, 0x97, 0x0B, 0xFC, 0xF4, 0x9B, 0x0B, 0x01, 0xF5, 0x9F, 0x0B, 0x05, 0xF5, 0xA3, 0x0B,
+ .byte 0x0A, 0xF5, 0xA8, 0x0B, 0x0E, 0xF5, 0xAC, 0x0B, 0x13, 0xF5, 0xB0, 0x0B, 0x18, 0xF5, 0xB5, 0x0B,
+ .byte 0x1C, 0xF5, 0xB9, 0x0B, 0x21, 0xF5, 0xBD, 0x0B, 0x25, 0xF5, 0xC1, 0x0B, 0x2A, 0xF5, 0xC6, 0x0B,
+ .byte 0x2F, 0xF5, 0xCA, 0x0B, 0x33, 0xF5, 0xCE, 0x0B, 0x38, 0xF5, 0xD2, 0x0B, 0x3D, 0xF5, 0xD7, 0x0B,
+ .byte 0x41, 0xF5, 0xDB, 0x0B, 0x46, 0xF5, 0xDF, 0x0B, 0x4B, 0xF5, 0xE3, 0x0B, 0x4F, 0xF5, 0xE8, 0x0B,
+ .byte 0x54, 0xF5, 0xEC, 0x0B, 0x59, 0xF5, 0xF0, 0x0B, 0x5D, 0xF5, 0xF4, 0x0B, 0x62, 0xF5, 0xF8, 0x0B,
+ .byte 0x67, 0xF5, 0xFC, 0x0B, 0x6B, 0xF5, 0x01, 0x0C, 0x70, 0xF5, 0x05, 0x0C, 0x75, 0xF5, 0x09, 0x0C,
+ .byte 0x7A, 0xF5, 0x0D, 0x0C, 0x7E, 0xF5, 0x11, 0x0C, 0x83, 0xF5, 0x15, 0x0C, 0x88, 0xF5, 0x19, 0x0C,
+ .byte 0x8D, 0xF5, 0x1E, 0x0C, 0x91, 0xF5, 0x22, 0x0C, 0x96, 0xF5, 0x26, 0x0C, 0x9B, 0xF5, 0x2A, 0x0C,
+ .byte 0xA0, 0xF5, 0x2E, 0x0C, 0xA4, 0xF5, 0x32, 0x0C, 0xA9, 0xF5, 0x36, 0x0C, 0xAE, 0xF5, 0x3A, 0x0C,
+ .byte 0xB3, 0xF5, 0x3E, 0x0C, 0xB8, 0xF5, 0x42, 0x0C, 0xBC, 0xF5, 0x46, 0x0C, 0xC1, 0xF5, 0x4A, 0x0C,
+ .byte 0xC6, 0xF5, 0x4E, 0x0C, 0xCB, 0xF5, 0x52, 0x0C, 0xD0, 0xF5, 0x56, 0x0C, 0xD5, 0xF5, 0x5A, 0x0C,
+ .byte 0xDA, 0xF5, 0x5E, 0x0C, 0xDE, 0xF5, 0x62, 0x0C, 0xE3, 0xF5, 0x66, 0x0C, 0xE8, 0xF5, 0x6A, 0x0C,
+ .byte 0xED, 0xF5, 0x6E, 0x0C, 0xF2, 0xF5, 0x72, 0x0C, 0xF7, 0xF5, 0x76, 0x0C, 0xFC, 0xF5, 0x7A, 0x0C,
+ .byte 0x01, 0xF6, 0x7E, 0x0C, 0x05, 0xF6, 0x82, 0x0C, 0x0A, 0xF6, 0x86, 0x0C, 0x0F, 0xF6, 0x8A, 0x0C,
+ .byte 0x14, 0xF6, 0x8E, 0x0C, 0x19, 0xF6, 0x91, 0x0C, 0x1E, 0xF6, 0x95, 0x0C, 0x23, 0xF6, 0x99, 0x0C,
+ .byte 0x28, 0xF6, 0x9D, 0x0C, 0x2D, 0xF6, 0xA1, 0x0C, 0x32, 0xF6, 0xA5, 0x0C, 0x37, 0xF6, 0xA9, 0x0C,
+ .byte 0x3C, 0xF6, 0xAC, 0x0C, 0x41, 0xF6, 0xB0, 0x0C, 0x46, 0xF6, 0xB4, 0x0C, 0x4B, 0xF6, 0xB8, 0x0C,
+ .byte 0x50, 0xF6, 0xBC, 0x0C, 0x55, 0xF6, 0xC0, 0x0C, 0x5A, 0xF6, 0xC3, 0x0C, 0x5F, 0xF6, 0xC7, 0x0C,
+ .byte 0x64, 0xF6, 0xCB, 0x0C, 0x69, 0xF6, 0xCF, 0x0C, 0x6E, 0xF6, 0xD2, 0x0C, 0x73, 0xF6, 0xD6, 0x0C,
+ .byte 0x78, 0xF6, 0xDA, 0x0C, 0x7D, 0xF6, 0xDE, 0x0C, 0x82, 0xF6, 0xE1, 0x0C, 0x87, 0xF6, 0xE5, 0x0C,
+ .byte 0x8C, 0xF6, 0xE9, 0x0C, 0x91, 0xF6, 0xED, 0x0C, 0x96, 0xF6, 0xF0, 0x0C, 0x9B, 0xF6, 0xF4, 0x0C,
+ .byte 0xA1, 0xF6, 0xF8, 0x0C, 0xA6, 0xF6, 0xFB, 0x0C, 0xAB, 0xF6, 0xFF, 0x0C, 0xB0, 0xF6, 0x03, 0x0D,
+ .byte 0xB5, 0xF6, 0x06, 0x0D, 0xBA, 0xF6, 0x0A, 0x0D, 0xBF, 0xF6, 0x0E, 0x0D, 0xC4, 0xF6, 0x11, 0x0D,
+ .byte 0xC9, 0xF6, 0x15, 0x0D, 0xCF, 0xF6, 0x18, 0x0D, 0xD4, 0xF6, 0x1C, 0x0D, 0xD9, 0xF6, 0x20, 0x0D,
+ .byte 0xDE, 0xF6, 0x23, 0x0D, 0xE3, 0xF6, 0x27, 0x0D, 0xE8, 0xF6, 0x2A, 0x0D, 0xEE, 0xF6, 0x2E, 0x0D,
+ .byte 0xF3, 0xF6, 0x32, 0x0D, 0xF8, 0xF6, 0x35, 0x0D, 0xFD, 0xF6, 0x39, 0x0D, 0x02, 0xF7, 0x3C, 0x0D,
+ .byte 0x08, 0xF7, 0x40, 0x0D, 0x0D, 0xF7, 0x43, 0x0D, 0x12, 0xF7, 0x47, 0x0D, 0x17, 0xF7, 0x4A, 0x0D,
+ .byte 0x1C, 0xF7, 0x4E, 0x0D, 0x22, 0xF7, 0x51, 0x0D, 0x27, 0xF7, 0x55, 0x0D, 0x2C, 0xF7, 0x58, 0x0D,
+ .byte 0x31, 0xF7, 0x5C, 0x0D, 0x37, 0xF7, 0x5F, 0x0D, 0x3C, 0xF7, 0x62, 0x0D, 0x41, 0xF7, 0x66, 0x0D,
+ .byte 0x46, 0xF7, 0x69, 0x0D, 0x4C, 0xF7, 0x6D, 0x0D, 0x51, 0xF7, 0x70, 0x0D, 0x56, 0xF7, 0x74, 0x0D,
+ .byte 0x5B, 0xF7, 0x77, 0x0D, 0x61, 0xF7, 0x7A, 0x0D, 0x66, 0xF7, 0x7E, 0x0D, 0x6B, 0xF7, 0x81, 0x0D,
+ .byte 0x71, 0xF7, 0x85, 0x0D, 0x76, 0xF7, 0x88, 0x0D, 0x7B, 0xF7, 0x8B, 0x0D, 0x81, 0xF7, 0x8F, 0x0D,
+ .byte 0x86, 0xF7, 0x92, 0x0D, 0x8B, 0xF7, 0x95, 0x0D, 0x91, 0xF7, 0x99, 0x0D, 0x96, 0xF7, 0x9C, 0x0D,
+ .byte 0x9B, 0xF7, 0x9F, 0x0D, 0xA1, 0xF7, 0xA2, 0x0D, 0xA6, 0xF7, 0xA6, 0x0D, 0xAB, 0xF7, 0xA9, 0x0D,
+ .byte 0xB1, 0xF7, 0xAC, 0x0D, 0xB6, 0xF7, 0xB0, 0x0D, 0xBB, 0xF7, 0xB3, 0x0D, 0xC1, 0xF7, 0xB6, 0x0D,
+ .byte 0xC6, 0xF7, 0xB9, 0x0D, 0xCC, 0xF7, 0xBC, 0x0D, 0xD1, 0xF7, 0xC0, 0x0D, 0xD6, 0xF7, 0xC3, 0x0D,
+ .byte 0xDC, 0xF7, 0xC6, 0x0D, 0xE1, 0xF7, 0xC9, 0x0D, 0xE7, 0xF7, 0xCC, 0x0D, 0xEC, 0xF7, 0xD0, 0x0D,
+ .byte 0xF2, 0xF7, 0xD3, 0x0D, 0xF7, 0xF7, 0xD6, 0x0D, 0xFC, 0xF7, 0xD9, 0x0D, 0x02, 0xF8, 0xDC, 0x0D,
+ .byte 0x07, 0xF8, 0xDF, 0x0D, 0x0D, 0xF8, 0xE3, 0x0D, 0x12, 0xF8, 0xE6, 0x0D, 0x18, 0xF8, 0xE9, 0x0D,
+ .byte 0x1D, 0xF8, 0xEC, 0x0D, 0x23, 0xF8, 0xEF, 0x0D, 0x28, 0xF8, 0xF2, 0x0D, 0x2E, 0xF8, 0xF5, 0x0D,
+ .byte 0x33, 0xF8, 0xF8, 0x0D, 0x38, 0xF8, 0xFB, 0x0D, 0x3E, 0xF8, 0xFE, 0x0D, 0x43, 0xF8, 0x01, 0x0E,
+ .byte 0x49, 0xF8, 0x04, 0x0E, 0x4E, 0xF8, 0x07, 0x0E, 0x54, 0xF8, 0x0A, 0x0E, 0x5A, 0xF8, 0x0D, 0x0E,
+ .byte 0x5F, 0xF8, 0x10, 0x0E, 0x65, 0xF8, 0x13, 0x0E, 0x6A, 0xF8, 0x16, 0x0E, 0x70, 0xF8, 0x19, 0x0E,
+ .byte 0x75, 0xF8, 0x1C, 0x0E, 0x7B, 0xF8, 0x1F, 0x0E, 0x80, 0xF8, 0x22, 0x0E, 0x86, 0xF8, 0x25, 0x0E,
+ .byte 0x8B, 0xF8, 0x28, 0x0E, 0x91, 0xF8, 0x2B, 0x0E, 0x96, 0xF8, 0x2E, 0x0E, 0x9C, 0xF8, 0x31, 0x0E,
+ .byte 0xA2, 0xF8, 0x34, 0x0E, 0xA7, 0xF8, 0x37, 0x0E, 0xAD, 0xF8, 0x3A, 0x0E, 0xB2, 0xF8, 0x3C, 0x0E,
+ .byte 0xB8, 0xF8, 0x3F, 0x0E, 0xBE, 0xF8, 0x42, 0x0E, 0xC3, 0xF8, 0x45, 0x0E, 0xC9, 0xF8, 0x48, 0x0E,
+ .byte 0xCE, 0xF8, 0x4B, 0x0E, 0xD4, 0xF8, 0x4D, 0x0E, 0xDA, 0xF8, 0x50, 0x0E, 0xDF, 0xF8, 0x53, 0x0E,
+ .byte 0xE5, 0xF8, 0x56, 0x0E, 0xEB, 0xF8, 0x59, 0x0E, 0xF0, 0xF8, 0x5B, 0x0E, 0xF6, 0xF8, 0x5E, 0x0E,
+ .byte 0xFB, 0xF8, 0x61, 0x0E, 0x01, 0xF9, 0x64, 0x0E, 0x07, 0xF9, 0x66, 0x0E, 0x0C, 0xF9, 0x69, 0x0E,
+ .byte 0x12, 0xF9, 0x6C, 0x0E, 0x18, 0xF9, 0x6F, 0x0E, 0x1D, 0xF9, 0x71, 0x0E, 0x23, 0xF9, 0x74, 0x0E,
+ .byte 0x29, 0xF9, 0x77, 0x0E, 0x2E, 0xF9, 0x79, 0x0E, 0x34, 0xF9, 0x7C, 0x0E, 0x3A, 0xF9, 0x7F, 0x0E,
+ .byte 0x3F, 0xF9, 0x81, 0x0E, 0x45, 0xF9, 0x84, 0x0E, 0x4B, 0xF9, 0x87, 0x0E, 0x51, 0xF9, 0x89, 0x0E,
+ .byte 0x56, 0xF9, 0x8C, 0x0E, 0x5C, 0xF9, 0x8F, 0x0E, 0x62, 0xF9, 0x91, 0x0E, 0x67, 0xF9, 0x94, 0x0E,
+ .byte 0x6D, 0xF9, 0x96, 0x0E, 0x73, 0xF9, 0x99, 0x0E, 0x79, 0xF9, 0x9B, 0x0E, 0x7E, 0xF9, 0x9E, 0x0E,
+ .byte 0x84, 0xF9, 0xA1, 0x0E, 0x8A, 0xF9, 0xA3, 0x0E, 0x90, 0xF9, 0xA6, 0x0E, 0x95, 0xF9, 0xA8, 0x0E,
+ .byte 0x9B, 0xF9, 0xAB, 0x0E, 0xA1, 0xF9, 0xAD, 0x0E, 0xA7, 0xF9, 0xB0, 0x0E, 0xAC, 0xF9, 0xB2, 0x0E,
+ .byte 0xB2, 0xF9, 0xB5, 0x0E, 0xB8, 0xF9, 0xB7, 0x0E, 0xBE, 0xF9, 0xBA, 0x0E, 0xC4, 0xF9, 0xBC, 0x0E,
+ .byte 0xC9, 0xF9, 0xBF, 0x0E, 0xCF, 0xF9, 0xC1, 0x0E, 0xD5, 0xF9, 0xC3, 0x0E, 0xDB, 0xF9, 0xC6, 0x0E,
+ .byte 0xE1, 0xF9, 0xC8, 0x0E, 0xE6, 0xF9, 0xCB, 0x0E, 0xEC, 0xF9, 0xCD, 0x0E, 0xF2, 0xF9, 0xCF, 0x0E,
+ .byte 0xF8, 0xF9, 0xD2, 0x0E, 0xFE, 0xF9, 0xD4, 0x0E, 0x03, 0xFA, 0xD6, 0x0E, 0x09, 0xFA, 0xD9, 0x0E,
+ .byte 0x0F, 0xFA, 0xDB, 0x0E, 0x15, 0xFA, 0xDD, 0x0E, 0x1B, 0xFA, 0xE0, 0x0E, 0x21, 0xFA, 0xE2, 0x0E,
+ .byte 0x26, 0xFA, 0xE4, 0x0E, 0x2C, 0xFA, 0xE7, 0x0E, 0x32, 0xFA, 0xE9, 0x0E, 0x38, 0xFA, 0xEB, 0x0E,
+ .byte 0x3E, 0xFA, 0xEE, 0x0E, 0x44, 0xFA, 0xF0, 0x0E, 0x4A, 0xFA, 0xF2, 0x0E, 0x4F, 0xFA, 0xF4, 0x0E,
+ .byte 0x55, 0xFA, 0xF7, 0x0E, 0x5B, 0xFA, 0xF9, 0x0E, 0x61, 0xFA, 0xFB, 0x0E, 0x67, 0xFA, 0xFD, 0x0E,
+ .byte 0x6D, 0xFA, 0xFF, 0x0E, 0x73, 0xFA, 0x02, 0x0F, 0x79, 0xFA, 0x04, 0x0F, 0x7F, 0xFA, 0x06, 0x0F,
+ .byte 0x84, 0xFA, 0x08, 0x0F, 0x8A, 0xFA, 0x0A, 0x0F, 0x90, 0xFA, 0x0C, 0x0F, 0x96, 0xFA, 0x0E, 0x0F,
+ .byte 0x9C, 0xFA, 0x11, 0x0F, 0xA2, 0xFA, 0x13, 0x0F, 0xA8, 0xFA, 0x15, 0x0F, 0xAE, 0xFA, 0x17, 0x0F,
+ .byte 0xB4, 0xFA, 0x19, 0x0F, 0xBA, 0xFA, 0x1B, 0x0F, 0xC0, 0xFA, 0x1D, 0x0F, 0xC6, 0xFA, 0x1F, 0x0F,
+ .byte 0xCC, 0xFA, 0x21, 0x0F, 0xD1, 0xFA, 0x23, 0x0F, 0xD7, 0xFA, 0x25, 0x0F, 0xDD, 0xFA, 0x27, 0x0F,
+ .byte 0xE3, 0xFA, 0x29, 0x0F, 0xE9, 0xFA, 0x2B, 0x0F, 0xEF, 0xFA, 0x2D, 0x0F, 0xF5, 0xFA, 0x2F, 0x0F,
+ .byte 0xFB, 0xFA, 0x31, 0x0F, 0x01, 0xFB, 0x33, 0x0F, 0x07, 0xFB, 0x35, 0x0F, 0x0D, 0xFB, 0x37, 0x0F,
+ .byte 0x13, 0xFB, 0x39, 0x0F, 0x19, 0xFB, 0x3B, 0x0F, 0x1F, 0xFB, 0x3D, 0x0F, 0x25, 0xFB, 0x3F, 0x0F,
+ .byte 0x2B, 0xFB, 0x41, 0x0F, 0x31, 0xFB, 0x43, 0x0F, 0x37, 0xFB, 0x45, 0x0F, 0x3D, 0xFB, 0x46, 0x0F,
+ .byte 0x43, 0xFB, 0x48, 0x0F, 0x49, 0xFB, 0x4A, 0x0F, 0x4F, 0xFB, 0x4C, 0x0F, 0x55, 0xFB, 0x4E, 0x0F,
+ .byte 0x5B, 0xFB, 0x50, 0x0F, 0x61, 0xFB, 0x51, 0x0F, 0x67, 0xFB, 0x53, 0x0F, 0x6D, 0xFB, 0x55, 0x0F,
+ .byte 0x73, 0xFB, 0x57, 0x0F, 0x79, 0xFB, 0x59, 0x0F, 0x7F, 0xFB, 0x5A, 0x0F, 0x85, 0xFB, 0x5C, 0x0F,
+ .byte 0x8B, 0xFB, 0x5E, 0x0F, 0x91, 0xFB, 0x60, 0x0F, 0x97, 0xFB, 0x61, 0x0F, 0x9D, 0xFB, 0x63, 0x0F,
+ .byte 0xA3, 0xFB, 0x65, 0x0F, 0xA9, 0xFB, 0x67, 0x0F, 0xAF, 0xFB, 0x68, 0x0F, 0xB5, 0xFB, 0x6A, 0x0F,
+ .byte 0xBC, 0xFB, 0x6C, 0x0F, 0xC2, 0xFB, 0x6D, 0x0F, 0xC8, 0xFB, 0x6F, 0x0F, 0xCE, 0xFB, 0x71, 0x0F,
+ .byte 0xD4, 0xFB, 0x72, 0x0F, 0xDA, 0xFB, 0x74, 0x0F, 0xE0, 0xFB, 0x76, 0x0F, 0xE6, 0xFB, 0x77, 0x0F,
+ .byte 0xEC, 0xFB, 0x79, 0x0F, 0xF2, 0xFB, 0x7A, 0x0F, 0xF8, 0xFB, 0x7C, 0x0F, 0xFE, 0xFB, 0x7D, 0x0F,
+ .byte 0x04, 0xFC, 0x7F, 0x0F, 0x0A, 0xFC, 0x81, 0x0F, 0x11, 0xFC, 0x82, 0x0F, 0x17, 0xFC, 0x84, 0x0F,
+ .byte 0x1D, 0xFC, 0x85, 0x0F, 0x23, 0xFC, 0x87, 0x0F, 0x29, 0xFC, 0x88, 0x0F, 0x2F, 0xFC, 0x8A, 0x0F,
+ .byte 0x35, 0xFC, 0x8B, 0x0F, 0x3B, 0xFC, 0x8D, 0x0F, 0x41, 0xFC, 0x8E, 0x0F, 0x47, 0xFC, 0x90, 0x0F,
+ .byte 0x4E, 0xFC, 0x91, 0x0F, 0x54, 0xFC, 0x93, 0x0F, 0x5A, 0xFC, 0x94, 0x0F, 0x60, 0xFC, 0x95, 0x0F,
+ .byte 0x66, 0xFC, 0x97, 0x0F, 0x6C, 0xFC, 0x98, 0x0F, 0x72, 0xFC, 0x9A, 0x0F, 0x78, 0xFC, 0x9B, 0x0F,
+ .byte 0x7F, 0xFC, 0x9C, 0x0F, 0x85, 0xFC, 0x9E, 0x0F, 0x8B, 0xFC, 0x9F, 0x0F, 0x91, 0xFC, 0xA1, 0x0F,
+ .byte 0x97, 0xFC, 0xA2, 0x0F, 0x9D, 0xFC, 0xA3, 0x0F, 0xA3, 0xFC, 0xA5, 0x0F, 0xAA, 0xFC, 0xA6, 0x0F,
+ .byte 0xB0, 0xFC, 0xA7, 0x0F, 0xB6, 0xFC, 0xA8, 0x0F, 0xBC, 0xFC, 0xAA, 0x0F, 0xC2, 0xFC, 0xAB, 0x0F,
+ .byte 0xC8, 0xFC, 0xAC, 0x0F, 0xCE, 0xFC, 0xAE, 0x0F, 0xD5, 0xFC, 0xAF, 0x0F, 0xDB, 0xFC, 0xB0, 0x0F,
+ .byte 0xE1, 0xFC, 0xB1, 0x0F, 0xE7, 0xFC, 0xB3, 0x0F, 0xED, 0xFC, 0xB4, 0x0F, 0xF3, 0xFC, 0xB5, 0x0F,
+ .byte 0xFA, 0xFC, 0xB6, 0x0F, 0x00, 0xFD, 0xB7, 0x0F, 0x06, 0xFD, 0xB8, 0x0F, 0x0C, 0xFD, 0xBA, 0x0F,
+ .byte 0x12, 0xFD, 0xBB, 0x0F, 0x18, 0xFD, 0xBC, 0x0F, 0x1F, 0xFD, 0xBD, 0x0F, 0x25, 0xFD, 0xBE, 0x0F,
+ .byte 0x2B, 0xFD, 0xBF, 0x0F, 0x31, 0xFD, 0xC0, 0x0F, 0x37, 0xFD, 0xC2, 0x0F, 0x3E, 0xFD, 0xC3, 0x0F,
+ .byte 0x44, 0xFD, 0xC4, 0x0F, 0x4A, 0xFD, 0xC5, 0x0F, 0x50, 0xFD, 0xC6, 0x0F, 0x56, 0xFD, 0xC7, 0x0F,
+ .byte 0x5D, 0xFD, 0xC8, 0x0F, 0x63, 0xFD, 0xC9, 0x0F, 0x69, 0xFD, 0xCA, 0x0F, 0x6F, 0xFD, 0xCB, 0x0F,
+ .byte 0x75, 0xFD, 0xCC, 0x0F, 0x7C, 0xFD, 0xCD, 0x0F, 0x82, 0xFD, 0xCE, 0x0F, 0x88, 0xFD, 0xCF, 0x0F,
+ .byte 0x8E, 0xFD, 0xD0, 0x0F, 0x94, 0xFD, 0xD1, 0x0F, 0x9B, 0xFD, 0xD2, 0x0F, 0xA1, 0xFD, 0xD3, 0x0F,
+ .byte 0xA7, 0xFD, 0xD4, 0x0F, 0xAD, 0xFD, 0xD5, 0x0F, 0xB3, 0xFD, 0xD5, 0x0F, 0xBA, 0xFD, 0xD6, 0x0F,
+ .byte 0xC0, 0xFD, 0xD7, 0x0F, 0xC6, 0xFD, 0xD8, 0x0F, 0xCC, 0xFD, 0xD9, 0x0F, 0xD3, 0xFD, 0xDA, 0x0F,
+ .byte 0xD9, 0xFD, 0xDB, 0x0F, 0xDF, 0xFD, 0xDC, 0x0F, 0xE5, 0xFD, 0xDC, 0x0F, 0xEB, 0xFD, 0xDD, 0x0F,
+ .byte 0xF2, 0xFD, 0xDE, 0x0F, 0xF8, 0xFD, 0xDF, 0x0F, 0xFE, 0xFD, 0xE0, 0x0F, 0x04, 0xFE, 0xE0, 0x0F,
+ .byte 0x0B, 0xFE, 0xE1, 0x0F, 0x11, 0xFE, 0xE2, 0x0F, 0x17, 0xFE, 0xE3, 0x0F, 0x1D, 0xFE, 0xE3, 0x0F,
+ .byte 0x24, 0xFE, 0xE4, 0x0F, 0x2A, 0xFE, 0xE5, 0x0F, 0x30, 0xFE, 0xE6, 0x0F, 0x36, 0xFE, 0xE6, 0x0F,
+ .byte 0x3D, 0xFE, 0xE7, 0x0F, 0x43, 0xFE, 0xE8, 0x0F, 0x49, 0xFE, 0xE8, 0x0F, 0x4F, 0xFE, 0xE9, 0x0F,
+ .byte 0x56, 0xFE, 0xEA, 0x0F, 0x5C, 0xFE, 0xEA, 0x0F, 0x62, 0xFE, 0xEB, 0x0F, 0x68, 0xFE, 0xEC, 0x0F,
+ .byte 0x6F, 0xFE, 0xEC, 0x0F, 0x75, 0xFE, 0xED, 0x0F, 0x7B, 0xFE, 0xED, 0x0F, 0x81, 0xFE, 0xEE, 0x0F,
+ .byte 0x88, 0xFE, 0xEF, 0x0F, 0x8E, 0xFE, 0xEF, 0x0F, 0x94, 0xFE, 0xF0, 0x0F, 0x9A, 0xFE, 0xF0, 0x0F,
+ .byte 0xA1, 0xFE, 0xF1, 0x0F, 0xA7, 0xFE, 0xF1, 0x0F, 0xAD, 0xFE, 0xF2, 0x0F, 0xB3, 0xFE, 0xF2, 0x0F,
+ .byte 0xBA, 0xFE, 0xF3, 0x0F, 0xC0, 0xFE, 0xF3, 0x0F, 0xC6, 0xFE, 0xF4, 0x0F, 0xCC, 0xFE, 0xF4, 0x0F,
+ .byte 0xD3, 0xFE, 0xF5, 0x0F, 0xD9, 0xFE, 0xF5, 0x0F, 0xDF, 0xFE, 0xF6, 0x0F, 0xE5, 0xFE, 0xF6, 0x0F,
+ .byte 0xEC, 0xFE, 0xF7, 0x0F, 0xF2, 0xFE, 0xF7, 0x0F, 0xF8, 0xFE, 0xF8, 0x0F, 0xFF, 0xFE, 0xF8, 0x0F,
+ .byte 0x05, 0xFF, 0xF8, 0x0F, 0x0B, 0xFF, 0xF9, 0x0F, 0x11, 0xFF, 0xF9, 0x0F, 0x18, 0xFF, 0xF9, 0x0F,
+ .byte 0x1E, 0xFF, 0xFA, 0x0F, 0x24, 0xFF, 0xFA, 0x0F, 0x2A, 0xFF, 0xFA, 0x0F, 0x31, 0xFF, 0xFB, 0x0F,
+ .byte 0x37, 0xFF, 0xFB, 0x0F, 0x3D, 0xFF, 0xFB, 0x0F, 0x44, 0xFF, 0xFC, 0x0F, 0x4A, 0xFF, 0xFC, 0x0F,
+ .byte 0x50, 0xFF, 0xFC, 0x0F, 0x56, 0xFF, 0xFC, 0x0F, 0x5D, 0xFF, 0xFD, 0x0F, 0x63, 0xFF, 0xFD, 0x0F,
+ .byte 0x69, 0xFF, 0xFD, 0x0F, 0x70, 0xFF, 0xFD, 0x0F, 0x76, 0xFF, 0xFE, 0x0F, 0x7C, 0xFF, 0xFE, 0x0F,
+ .byte 0x82, 0xFF, 0xFE, 0x0F, 0x89, 0xFF, 0xFE, 0x0F, 0x8F, 0xFF, 0xFE, 0x0F, 0x95, 0xFF, 0xFF, 0x0F,
+ .byte 0x9B, 0xFF, 0xFF, 0x0F, 0xA2, 0xFF, 0xFF, 0x0F, 0xA8, 0xFF, 0xFF, 0x0F, 0xAE, 0xFF, 0xFF, 0x0F,
+ .byte 0xB5, 0xFF, 0xFF, 0x0F, 0xBB, 0xFF, 0xFF, 0x0F, 0xC1, 0xFF, 0x00, 0x10, 0xC7, 0xFF, 0x00, 0x10,
+ .byte 0xCE, 0xFF, 0x00, 0x10, 0xD4, 0xFF, 0x00, 0x10, 0xDA, 0xFF, 0x00, 0x10, 0xE1, 0xFF, 0x00, 0x10,
+ .byte 0xE7, 0xFF, 0x00, 0x10, 0xED, 0xFF, 0x00, 0x10, 0xF3, 0xFF, 0x00, 0x10, 0xFA, 0xFF, 0x00, 0x10
.section .data
@@ -185,6 +1342,238 @@ 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
+ .global UNK_0210655C
+UNK_0210655C: ; 0x0210655C
+ .word FUN_020B1088
+ .word FUN_020B1098
+ .word 0
+ .word 0
+ .word 0
+
+ .global UNK_02106570
+UNK_02106570: ; 0x02106570
+ .short -2
+
+ .balign 4, 0
+ .global UNK_02106574
+UNK_02106574: ; 0x02106574
+ .word -1
+
+ .global UNK_02106578
+UNK_02106578: ; 0x02106578
+ .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global UNK_02106590
+UNK_02106590: ; 0x02106590
+ .byte 0x00, 0xF0, 0xFF, 0xFF
+
+ .global UNK_02106594
+UNK_02106594: ; 0x02106594
+ .byte 0x05, 0x00, 0x00, 0x00
+
+ .global UNK_02106598
+UNK_02106598: ; 0x02106598
+ .word FUN_020BE5A0
+
+ .global UNK_0210659C
+UNK_0210659C: ; 0x0210659C
+ .word FUN_020BDA70
+
+ .global UNK_021065A0
+UNK_021065A0: ; 0x021065A0
+ .word FUN_020BDF38
+
+ .global UNK_021065A4
+UNK_021065A4: ; 0x021065A4
+ .word FUN_020BE334
+
+ .global UNK_021065A8
+UNK_021065A8: ; 0x021065A8
+ .word FUN_020BDB40
+
+ .global UNK_021065AC
+UNK_021065AC: ; 0x021065AC
+ .word FUN_020B8640
+
+ .global UNK_021065B0
+UNK_021065B0: ; 0x021065B0
+ .word FUN_020B86B0
+
+ .global UNK_021065B4
+UNK_021065B4: ; 0x021065B4
+ .word FUN_020B8A08
+
+ .global UNK_021065B8
+UNK_021065B8: ; 0x021065B8
+ .byte 0x4D, 0x00, 0x41, 0x4D
+
+ .global UNK_021065BC
+UNK_021065BC: ; 0x021065BC
+ .word FUN_020BDC0C
+ .byte 0x4D, 0x00, 0x50, 0x54
+ .word FUN_020BE4F0
+ .byte 0x4D, 0x00, 0x41, 0x54
+ .word FUN_020BDF84
+ .byte 0x56, 0x00, 0x41, 0x56
+ .word FUN_020BE5E0
+ .byte 0x4A, 0x00, 0x41, 0x43
+ .word FUN_020BDAB4
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global UNK_02106608
+UNK_02106608: ; 0x02106608
+ .word FUN_020BE668
+ .word FUN_020BEE3C
+ .word FUN_020BF2FC
+
+ .global UNK_02106614
+UNK_02106614: ; 0x02106614
+ .word FUN_020BE62C
+ .word FUN_020BECEC
+ .word FUN_020BF0D4
+
+ .global UNK_02106620
+UNK_02106620: ; 0x02106620
+ .word FUN_020BE6E4
+ .word FUN_020BEF10
+ .word FUN_020BF42C
+ .word FUN_020BFA9C
+
+ .global UNK_02106630
+UNK_02106630: ; 0x02106630
+ .byte 0x2A, 0x00, 0x00, 0x00
+
+ .global UNK_02106634
+UNK_02106634: ; 0x02106634
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global UNK_02106638
+UNK_02106638: ; 0x02106638
+ .byte 0x2A, 0x00, 0x00, 0x00
+
+ .global UNK_0210663C
+UNK_0210663C: ; 0x0210663C
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global UNK_02106640
+UNK_02106640: ; 0x02106640
+ .word FUN_020BA58C
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global UNK_02106650
+UNK_02106650: ; 0x02106650
+ .word FUN_020BA438
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global UNK_02106660
+UNK_02106660: ; 0x02106660
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
+
+ .global UNK_021066A0
+UNK_021066A0: ; 0x021066A0
+ .byte 0x12, 0x10, 0x17, 0x1B
+
+ .global UNK_021066A4
+UNK_021066A4: ; 0x021066A4
+ .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
+
+ .global UNK_021066AC
+UNK_021066AC: ; 0x021066AC
+ .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x10, 0x00, 0x00
+
+ .global UNK_021066D0
+UNK_021066D0: ; 0x021066D0
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global UNK_021066DC
+UNK_021066DC: ; 0x021066DC
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global UNK_021066E8
+UNK_021066E8: ; 0x021066E8
+ .byte 0x12, 0x10, 0x17, 0x1B
+
+ .global UNK_021066EC
+UNK_021066EC: ; 0x021066EC
+ .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
+
+ .global UNK_021066F4
+UNK_021066F4: ; 0x021066F4
+ .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x10, 0x00, 0x00
+
+ .global UNK_02106718
+UNK_02106718: ; 0x02106718
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global UNK_02106724
+UNK_02106724: ; 0x02106724
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global UNK_02106730
+UNK_02106730: ; 0x02106730
+ .word FUN_020BAC70
+ .word FUN_020BAC48
+ .word FUN_020BAAC0
+ .word FUN_020BA9EC
+ .word FUN_020BA50C
+ .word FUN_020BA3C4
+ .word FUN_020B9F84
+ .word FUN_020B9C54
+ .word FUN_020B98C4
+ .word FUN_020B9258
+ .word FUN_020B9178
+ .word FUN_020B9110
+ .word FUN_020B8DF0
+ .word FUN_020B8A60
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+ .global UNK_021067B0
+UNK_021067B0: ; 0x021067B0
+ .word FUN_020BEBD8
+ .word FUN_020BEB00
+ .word FUN_020BEA84
+ .word FUN_020BEA3C
+ .word FUN_020BE954
+ .word FUN_020BE894
+ .word FUN_020BE850
+ .word FUN_020BE82C
+
+ .global UNK_021067D0
+UNK_021067D0: ; 0x021067D0
+ .word FUN_020BF988
+ .word FUN_020BF894
+ .word FUN_020BF810
+ .word FUN_020BF7C8
+ .word FUN_020BF6C8
+ .word FUN_020BF5E8
+ .word FUN_020BF598
+ .word FUN_020BF574
+
+ .global UNK_021067F0
+UNK_021067F0: ; 0x021067F0
+ .word FUN_020BFFD4
+ .word FUN_020BFEEC
+ .word FUN_020BFE68
+ .word FUN_020BFE0C
+ .word FUN_020BFD38
+ .word FUN_020BFC8C
+ .word FUN_020BFC4C
+ .word FUN_020BFC28
+
.bss
.global UNK_021CA86C
@@ -423,6 +1812,402 @@ UNK_021CCD4C: ; 0x021CCD4C
UNK_021CCD58: ; 0x021CCD58
.space 0x14
+ .global UNK_021CCD6C
+UNK_021CCD6C: ; 0x021CCD6C
+ .space 0x4
+
+ .global UNK_021CCD70
+UNK_021CCD70: ; 0x021CCD70
+ .space 0x4
+
+ .global UNK_021CCD74
+UNK_021CCD74: ; 0x021CCD74
+ .space 0x14
+
+ .global UNK_021CCD88
+UNK_021CCD88: ; 0x021CCD88
+ .space 0x4
+
+ .global UNK_021CCD8C
+UNK_021CCD8C: ; 0x021CCD8C
+ .space 0x10
+
+ .global UNK_021CCD9C
+UNK_021CCD9C: ; 0x021CCD9C
+ .space 0x4
+
+ .global UNK_021CCDA0
+UNK_021CCDA0: ; 0x021CCDA0
+ .space 0x100
+
+ .global UNK_021CCEA0
+UNK_021CCEA0: ; 0x021CCEA0
+ .space 0x400
+
+ .global UNK_021CD2A0
+UNK_021CD2A0: ; 0x021CD2A0
+ .space 0x40
+
+ .global UNK_021CD2E0
+UNK_021CD2E0: ; 0x021CD2E0
+ .space 0x100
+
+ .global UNK_021CD3E0
+UNK_021CD3E0: ; 0x021CD3E0
+ .space 0x400
+
+ .global UNK_021CD7E0
+UNK_021CD7E0: ; 0x021CD7E0
+ .space 0x40
+
+ .global UNK_021CD820
+UNK_021CD820: ; 0x021CD820
+ .space 0x100
+
+ .global UNK_021CD920
+UNK_021CD920: ; 0x021CD920
+ .space 0x400
+
+ .global UNK_021CDD20
+UNK_021CDD20: ; 0x021CDD20
+ .space 0x40
+
+ .global UNK_021CDD60
+UNK_021CDD60: ; 0x021CDD60
+ .space 0x4
+
+ .global UNK_021CDD64
+UNK_021CDD64: ; 0x021CDD64
+ .space 0x4
+
+ .global UNK_021CDD68
+UNK_021CDD68: ; 0x021CDD68
+ .space 0x4
+
+ .global UNK_021CDD6C
+UNK_021CDD6C: ; 0x021CDD6C
+ .space 0x4
+
+ .global UNK_021CDD70
+UNK_021CDD70: ; 0x021CDD70
+ .space 0x4
+
+ .global UNK_021CDD74
+UNK_021CDD74: ; 0x021CDD74
+ .space 0x80
+
+ .global UNK_021CDDF4
+UNK_021CDDF4: ; 0x021CDDF4
+ .space 0x4
+
+ .global UNK_021CDDF8
+UNK_021CDDF8: ; 0x021CDDF8
+ .space 0xfc
+
+ .global UNK_021CDEF4
+UNK_021CDEF4: ; 0x021CDEF4
+ .space 0x10
+
+ .global UNK_021CDF04
+UNK_021CDF04: ; 0x021CDF04
+ .space 0x4
+
+ .global UNK_021CDF08
+UNK_021CDF08: ; 0x021CDF08
+ .space 0x2ec
+
+ .global UNK_021CE1F4
+UNK_021CE1F4: ; 0x021CE1F4
+ .space 0x300
+
+ .global UNK_021CE4F4
+UNK_021CE4F4: ; 0x021CE4F4
+ .space 0x400
+
+ .global UNK_021CE8F4
+UNK_021CE8F4: ; 0x021CE8F4
+ .space 0x4
+
+ .global UNK_021CE8F8
+UNK_021CE8F8: ; 0x021CE8F8
+ .space 0x404
+
+ .global UNK_021CECFC
+UNK_021CECFC: ; 0x021CECFC
+ .space 0x4
+
+ .global UNK_021CED00
+UNK_021CED00: ; 0x021CED00
+ .space 0x4
+
+ .global UNK_021CED04
+UNK_021CED04: ; 0x021CED04
+ .space 0x4
+
+ .global UNK_021CED08
+UNK_021CED08: ; 0x021CED08
+ .space 0x4
+
+ .global UNK_021CED0C
+UNK_021CED0C: ; 0x021CED0C
+ .space 0x4
+
+ .global UNK_021CED10
+UNK_021CED10: ; 0x021CED10
+ .space 0x4
+
+ .global UNK_021CED14
+UNK_021CED14: ; 0x021CED14
+ .space 0x4
+
+ .global UNK_021CED18
+UNK_021CED18: ; 0x021CED18
+ .space 0x8
+
+ .global UNK_021CED20
+UNK_021CED20: ; 0x021CED20
+ .space 0x44
+
+ .global UNK_021CED64
+UNK_021CED64: ; 0x021CED64
+ .space 0x34
+
+ .global UNK_021CED98
+UNK_021CED98: ; 0x021CED98
+ .space 0x28
+
+ .global UNK_021CEDC0
+UNK_021CEDC0: ; 0x021CEDC0
+ .space 0x14
+
+ .global UNK_021CEDD4
+UNK_021CEDD4: ; 0x021CEDD4
+ .space 0x24
+
+ .global UNK_021CEDF8
+UNK_021CEDF8: ; 0x021CEDF8
+ .space 0xc
+
+ .global UNK_021CEE04
+UNK_021CEE04: ; 0x021CEE04
+ .space 0x14
+
+ .global UNK_021CEE18
+UNK_021CEE18: ; 0x021CEE18
+ .space 0x30
+
+ .global UNK_021CEE48
+UNK_021CEE48: ; 0x021CEE48
+ .space 0x30
+
+ .global UNK_021CEE78
+UNK_021CEE78: ; 0x021CEE78
+ .space 0xe0
+
+ .global UNK_021CEF58
+UNK_021CEF58: ; 0x021CEF58
+ .space 0xc
+
+ .global UNK_021CEF64
+UNK_021CEF64: ; 0x021CEF64
+ .space 0xc
+
+ .global UNK_021CEF70
+UNK_021CEF70: ; 0x021CEF70
+ .space 0xc
+
+ .global UNK_021CEF7C
+UNK_021CEF7C: ; 0x021CEF7C
+ .space 0x4
+
+ .global UNK_021CEF80
+UNK_021CEF80: ; 0x021CEF80
+ .space 0xe00
+
+ .global UNK_021CFD80
+UNK_021CFD80: ; 0x021CFD80
+ .space 0x4
+
+ .global UNK_021CFD84
+UNK_021CFD84: ; 0x021CFD84
+ .space 0x4
+
+ .global UNK_021CFD88
+UNK_021CFD88: ; 0x021CFD88
+ .space 0x4
+
+ .global UNK_021CFD8C
+UNK_021CFD8C: ; 0x021CFD8C
+ .space 0x4
+
+ .global UNK_021CFD90
+UNK_021CFD90: ; 0x021CFD90
+ .space 0x4
+
+ .global UNK_021CFD94
+UNK_021CFD94: ; 0x021CFD94
+ .space 0x2ba
+
+ .global UNK_021D004E
+UNK_021D004E: ; 0x021D004E
+ .space 0x332
+
+ .global UNK_021D0380
+UNK_021D0380: ; 0x021D0380
+ .space 0x40
+
+ .global UNK_021D03C0
+UNK_021D03C0: ; 0x021D03C0
+ .space 0xb42
+
+ .global UNK_021D0F02
+UNK_021D0F02: ; 0x021D0F02
+ .space 0xd7e
+
+ .global UNK_021D1C80
+UNK_021D1C80: ; 0x021D1C80
+ .space 0x4
+
+ .global UNK_021D1C84
+UNK_021D1C84: ; 0x021D1C84
+ .space 0x4
+
+ .global UNK_021D1C88
+UNK_021D1C88: ; 0x021D1C88
+ .space 0x4
+
+ .global UNK_021D1C8C
+UNK_021D1C8C: ; 0x021D1C8C
+ .space 0x4
+
+ .global UNK_021D1C90
+UNK_021D1C90: ; 0x021D1C90
+ .space 0x4
+
+ .global UNK_021D1C94
+UNK_021D1C94: ; 0x021D1C94
+ .space 0x4
+
+ .global UNK_021D1C98
+UNK_021D1C98: ; 0x021D1C98
+ .space 0xc
+
+ .global UNK_021D1CA4
+UNK_021D1CA4: ; 0x021D1CA4
+ .space 0xc
+
+ .global UNK_021D1CB0
+UNK_021D1CB0: ; 0x021D1CB0
+ .space 0x4
+
+ .global UNK_021D1CB4
+UNK_021D1CB4: ; 0x021D1CB4
+ .space 0x4
+
+ .global UNK_021D1CB8
+UNK_021D1CB8: ; 0x021D1CB8
+ .space 0x4
+
+ .global UNK_021D1CBC
+UNK_021D1CBC: ; 0x021D1CBC
+ .space 0x140
+
+ .global UNK_021D1DFC
+UNK_021D1DFC: ; 0x021D1DFC
+ .space 0xc
+
+ .global UNK_021D1E08
+UNK_021D1E08: ; 0x021D1E08
+ .space 0xc
+
+ .global UNK_021D1E14
+UNK_021D1E14: ; 0x021D1E14
+ .space 0x440
+
+ .global UNK_021D2254
+UNK_021D2254: ; 0x021D2254
+ .space 0x8
+
+ .global UNK_021D225C
+UNK_021D225C: ; 0x021D225C
+ .space 0x10
+
+ .global UNK_021D226C
+UNK_021D226C: ; 0x021D226C
+ .space 0x4
+
+ .global UNK_021D2270
+UNK_021D2270: ; 0x021D2270
+ .space 0x4
+
+ .global UNK_021D2274
+UNK_021D2274: ; 0x021D2274
+ .space 0x460
+
+ .global UNK_021D26D4
+UNK_021D26D4: ; 0x021D26D4
+ .space 0x4
+
+ .global UNK_021D26D8
+UNK_021D26D8: ; 0x021D26D8
+ .space 0xc
+
+ .global UNK_021D26E4
+UNK_021D26E4: ; 0x021D26E4
+ .space 0x40
+
+ .global UNK_021D2724
+UNK_021D2724: ; 0x021D2724
+ .space 0x80
+
+ .global UNK_021D27A4
+UNK_021D27A4: ; 0x021D27A4
+ .space 0x4
+
+ .global UNK_021D27A8
+UNK_021D27A8: ; 0x021D27A8
+ .space 0x4
+
+ .global UNK_021D27AC
+UNK_021D27AC: ; 0x021D27AC
+ .space 0x20
+
+ .global UNK_021D27CC
+UNK_021D27CC: ; 0x021D27CC
+ .space 0x54
+
+ .global UNK_021D2820
+UNK_021D2820: ; 0x021D2820
+ .space 0xa0
+
+ .global UNK_021D28C0
+UNK_021D28C0: ; 0x021D28C0
+ .space 0x4
+
+ .global UNK_021D28C4
+UNK_021D28C4: ; 0x021D28C4
+ .space 0x3c
+
+ .global UNK_021D2900
+UNK_021D2900: ; 0x021D2900
+ .space 0x4
+
+ .global UNK_021D2904
+UNK_021D2904: ; 0x021D2904
+ .space 0x4d4
+
+ .global UNK_021D2DD8
+UNK_021D2DD8: ; 0x021D2DD8
+ .space 0x18
+
+ .global UNK_021D2DF0
+UNK_021D2DF0: ; 0x021D2DF0
+ .space 0xc
+
+ .global UNK_021D2DFC
+UNK_021D2DFC: ; 0x021D2DFC
+ .space 0x5c0
+
.text
arm_func_start FUN_020A5A4C
@@ -9867,8 +11652,6 @@ _020ADA78: .word _SDK_AbiossolibVCT
_020ADA7C: .word UNK_021CCD1C
_020ADA80: .word UNK_021CCD20
- ; unknown
-
arm_func_start FUN_020ADA84
FUN_020ADA84: ; 0x020ADA84
cmp r1, #0x0
@@ -11556,3 +13339,24499 @@ FUN_020AEFF0: ; 0x020AEFF0
ldmia sp!, {r4-r5,pc}
.balign 4
_020AF02C: .word UNK_020FF7D4
+
+ arm_func_start GXS_LoadOBJ_2
+GXS_LoadOBJ_2:
+ ldr ip, _020AF038 ; =GXS_LoadOBJ
+ bx r12
+ .balign 4
+_020AF038: .word GXS_LoadOBJ
+
+ arm_func_start GXS_LoadOAM_2
+GXS_LoadOAM_2: ; 0x020AF03C
+ ldr ip, _020AF044 ; =GXS_LoadOAM
+ bx r12
+ .balign 4
+_020AF044: .word GXS_LoadOAM
+
+ arm_func_start FUN_020AF048
+FUN_020AF048: ; 0x020AF048
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl GXS_BeginLoadBGExtPltt
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl GXS_LoadBGExtPltt
+ bl GXS_EndLoadBGExtPltt
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020AF074
+FUN_020AF074: ; 0x020AF074
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl GXS_BeginLoadOBJExtPltt
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl GXS_LoadOBJExtPltt
+ bl GXS_EndLoadOBJExtPltt
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start GXS_LoadBGPltt_2
+GXS_LoadBGPltt_2: ; 0x020AF0A0
+ ldr ip, _020AF0A8 ; =GXS_LoadBGPltt
+ bx r12
+ .balign 4
+_020AF0A8: .word GXS_LoadBGPltt
+
+ arm_func_start GXS_LoadOBJPltt_2
+GXS_LoadOBJPltt_2: ; 0x020AF0AC
+ ldr ip, _020AF0B4 ; =GXS_LoadOBJPltt
+ bx r12
+ .balign 4
+_020AF0B4: .word GXS_LoadOBJPltt
+
+ arm_func_start GXS_LoadBG3Scr_3
+GXS_LoadBG3Scr_3: ; 0x020AF0B8
+ ldr ip, _020AF0C0 ; =GXS_LoadBG3Scr
+ bx r12
+ .balign 4
+_020AF0C0: .word GXS_LoadBG3Scr
+
+ arm_func_start GXS_LoadBG2Scr_3
+GXS_LoadBG2Scr_3: ; 0x020AF0C4
+ ldr ip, _020AF0CC ; =GXS_LoadBG2Scr
+ bx r12
+ .balign 4
+_020AF0CC: .word GXS_LoadBG2Scr
+
+ arm_func_start GXS_LoadBG3Scr_2
+GXS_LoadBG3Scr_2: ; 0x020AF0D0
+ ldr ip, _020AF0D8 ; =GXS_LoadBG3Scr
+ bx r12
+ .balign 4
+_020AF0D8: .word GXS_LoadBG3Scr
+
+ arm_func_start GXS_LoadBG2Scr_2
+GXS_LoadBG2Scr_2: ; 0x020AF0DC
+ ldr ip, _020AF0E4 ; =GXS_LoadBG2Scr
+ bx r12
+ .balign 4
+_020AF0E4: .word GXS_LoadBG2Scr
+
+ arm_func_start GXS_LoadBG1Scr_2
+GXS_LoadBG1Scr_2: ; 0x020AF0E8
+ ldr ip, _020AF0F0 ; =GXS_LoadBG1Scr
+ bx r12
+ .balign 4
+_020AF0F0: .word GXS_LoadBG1Scr
+
+ arm_func_start GXS_LoadBG0Scr_2
+GXS_LoadBG0Scr_2: ; 0x020AF0F4
+ ldr ip, _020AF0FC ; =GXS_LoadBG0Scr
+ bx r12
+ .balign 4
+_020AF0FC: .word GXS_LoadBG0Scr
+
+ arm_func_start GXS_LoadBG3Char_2
+GXS_LoadBG3Char_2: ; 0x020AF100
+ ldr ip, _020AF108 ; =GXS_LoadBG3Char
+ bx r12
+ .balign 4
+_020AF108: .word GXS_LoadBG3Char
+
+ arm_func_start GXS_LoadBG2Char_2
+GXS_LoadBG2Char_2: ; 0x020AF10C
+ ldr ip, _020AF114 ; =GXS_LoadBG2Char
+ bx r12
+ .balign 4
+_020AF114: .word GXS_LoadBG2Char
+
+ arm_func_start GXS_LoadBG1Char_2
+GXS_LoadBG1Char_2: ; 0x020AF118
+ ldr ip, _020AF120 ; =GXS_LoadBG1Char
+ bx r12
+ .balign 4
+_020AF120: .word GXS_LoadBG1Char
+
+ arm_func_start GXS_LoadBG0Char_2
+GXS_LoadBG0Char_2: ; 0x020AF124
+ ldr ip, _020AF12C ; =GXS_LoadBG0Char
+ bx r12
+ .balign 4
+_020AF12C: .word GXS_LoadBG0Char
+
+ arm_func_start GX_LoadOBJ_2
+GX_LoadOBJ_2: ; 0x020AF130
+ ldr ip, _020AF138 ; =GX_LoadOBJ
+ bx r12
+ .balign 4
+_020AF138: .word GX_LoadOBJ
+
+ arm_func_start GX_LoadOAM_2
+GX_LoadOAM_2: ; 0x020AF13C
+ ldr ip, _020AF144 ; =GX_LoadOAM
+ bx r12
+ .balign 4
+_020AF144: .word GX_LoadOAM
+
+ arm_func_start FUN_020AF148
+FUN_020AF148: ; 0x020AF148
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl GX_BeginLoadBGExtPltt
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl GX_LoadBGExtPltt
+ bl GX_EndLoadBGExtPltt
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020AF174
+FUN_020AF174: ; 0x020AF174
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl GX_BeginLoadOBJExtPltt
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl GX_LoadOBJExtPltt
+ bl GX_EndLoadOBJExtPltt
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start GX_LoadBGPltt_2
+GX_LoadBGPltt_2: ; 0x020AF1A0
+ ldr ip, _020AF1A8 ; =GX_LoadBGPltt
+ bx r12
+ .balign 4
+_020AF1A8: .word GX_LoadBGPltt
+
+ arm_func_start GX_LoadOBJPltt_2
+GX_LoadOBJPltt_2: ; 0x020AF1AC
+ ldr ip, _020AF1B4 ; =GX_LoadOBJPltt
+ bx r12
+ .balign 4
+_020AF1B4: .word GX_LoadOBJPltt
+
+ arm_func_start GX_LoadBG3Scr_3
+GX_LoadBG3Scr_3: ; 0x020AF1B8
+ ldr ip, _020AF1C0 ; =GX_LoadBG3Scr
+ bx r12
+ .balign 4
+_020AF1C0: .word GX_LoadBG3Scr
+
+ arm_func_start GX_LoadBG2Scr_3
+GX_LoadBG2Scr_3: ; 0x020AF1C4
+ ldr ip, _020AF1CC ; =GX_LoadBG2Scr
+ bx r12
+ .balign 4
+_020AF1CC: .word GX_LoadBG2Scr
+
+ arm_func_start GX_LoadBG3Scr_2
+GX_LoadBG3Scr_2: ; 0x020AF1D0
+ ldr ip, _020AF1D8 ; =GX_LoadBG3Scr
+ bx r12
+ .balign 4
+_020AF1D8: .word GX_LoadBG3Scr
+
+ arm_func_start GX_LoadBG2Scr_2
+GX_LoadBG2Scr_2: ; 0x020AF1DC
+ ldr ip, _020AF1E4 ; =GX_LoadBG2Scr
+ bx r12
+ .balign 4
+_020AF1E4: .word GX_LoadBG2Scr
+
+ arm_func_start GX_LoadBG1Scr_2
+GX_LoadBG1Scr_2: ; 0x020AF1E8
+ ldr ip, _020AF1F0 ; =GX_LoadBG1Scr
+ bx r12
+ .balign 4
+_020AF1F0: .word GX_LoadBG1Scr
+
+ arm_func_start GX_LoadBG0Scr_2
+GX_LoadBG0Scr_2: ; 0x020AF1F4
+ ldr ip, _020AF1FC ; =GX_LoadBG0Scr
+ bx r12
+ .balign 4
+_020AF1FC: .word GX_LoadBG0Scr
+
+ arm_func_start GX_LoadBG3Char_2
+GX_LoadBG3Char_2: ; 0x020AF200
+ ldr ip, _020AF208 ; =GX_LoadBG3Char
+ bx r12
+ .balign 4
+_020AF208: .word GX_LoadBG3Char
+
+ arm_func_start GX_LoadBG2Char_2
+GX_LoadBG2Char_2: ; 0x020AF20C
+ ldr ip, _020AF214 ; =GX_LoadBG2Char
+ bx r12
+ .balign 4
+_020AF214: .word GX_LoadBG2Char
+
+ arm_func_start GX_LoadBG1Char_2
+GX_LoadBG1Char_2: ; 0x020AF218
+ ldr ip, _020AF220 ; =GX_LoadBG1Char
+ bx r12
+ .balign 4
+_020AF220: .word GX_LoadBG1Char
+
+ arm_func_start GX_LoadBG0Char_2
+GX_LoadBG0Char_2: ; 0x020AF224
+ ldr ip, _020AF22C ; =GX_LoadBG0Char
+ bx r12
+ .balign 4
+_020AF22C: .word GX_LoadBG0Char
+
+ arm_func_start FUN_020AF230
+FUN_020AF230: ; 0x020AF230
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r2
+ bl GX_BeginLoadClearImage
+ mov r0, r5
+ mov r1, r4
+ bl GX_LoadClearImageDepth
+ bl GX_EndLoadClearImage
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020AF25C
+FUN_020AF25C: ; 0x020AF25C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r2
+ bl GX_BeginLoadClearImage
+ mov r0, r5
+ mov r1, r4
+ bl GX_LoadClearImageColor
+ bl GX_EndLoadClearImage
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020AF288
+FUN_020AF288: ; 0x020AF288
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl GX_BeginLoadTexPltt
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl GX_LoadTexPltt
+ bl GX_EndLoadTexPltt
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020AF2B4
+FUN_020AF2B4: ; 0x020AF2B4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl GX_BeginLoadTex
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl GX_LoadTex
+ bl GX_EndLoadTex
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020AF2E0
+FUN_020AF2E0: ; 0x020AF2E0
+ ldrh r0, [r0, #0xc]
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020AF2F4
+FUN_020AF2F4: ; 0x020AF2F4
+ ldrh r1, [r0, #0xc]
+ ldr r0, [r0, #0x4]
+ cmp r1, r0
+ moveq r0, #0x1
+ movne r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020AF30C
+FUN_020AF30C: ; 0x020AF30C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, r0
+ add r0, r1, #0x1
+ ldr r1, [r2, #0x4]
+ bl _u32_div_f
+ mov r0, r1, lsl #0x10
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020AF334
+FUN_020AF334:
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x10
+ add r3, r2, r3
+ str r2, [sp, #0x0]
+ str r2, [sp, #0x8]
+ str r3, [sp, #0x4]
+ str r3, [sp, #0xc]
+ ldr r3, [r0, #0x0]
+ add r12, sp, #0x0
+ cmp r3, #0x0
+ beq _020AF418
+ mov r6, #0x0
+_020AF364:
+ ldr r5, [r3, #0x0]
+ ldr r4, [r12, #0x4]
+ ldr r2, [r3, #0xc]
+ cmp r5, r4
+ bne _020AF3B8
+ ldr r4, [r3, #0x4]
+ add r4, r5, r4
+ str r4, [sp, #0xc]
+ ldr r4, [r3, #0x8]
+ cmp r4, #0x0
+ strne r2, [r4, #0xc]
+ streq r2, [r0, #0x0]
+ cmp r2, #0x0
+ strne r4, [r2, #0x8]
+ ldr r4, [r1, #0x0]
+ cmp r4, #0x0
+ strne r3, [r4, #0x8]
+ ldr r4, [r1, #0x0]
+ str r4, [r3, #0xc]
+ str r6, [r3, #0x8]
+ str r3, [r1, #0x0]
+_020AF3B8:
+ ldr r5, [r3, #0x0]
+ ldr lr, [r3, #0x4]
+ ldr r4, [r12, #0x0]
+ add lr, r5, lr
+ cmp r4, lr
+ bne _020AF40C
+ str r5, [sp, #0x8]
+ ldr r5, [r3, #0x8]
+ ldr r4, [r3, #0xc]
+ cmp r5, #0x0
+ strne r4, [r5, #0xc]
+ streq r4, [r0, #0x0]
+ cmp r4, #0x0
+ strne r5, [r4, #0x8]
+ ldr lr, [r1, #0x0]
+ cmp lr, #0x0
+ strne r3, [lr, #0x8]
+ ldr lr, [r1, #0x0]
+ str lr, [r3, #0xc]
+ str r6, [r3, #0x8]
+ str r3, [r1, #0x0]
+_020AF40C:
+ mov r3, r2
+ cmp r2, #0x0
+ bne _020AF364
+_020AF418:
+ ldr r4, [r1, #0x0]
+ cmp r4, #0x0
+ ldrne r2, [r4, #0xc]
+ strne r2, [r1, #0x0]
+ cmp r4, #0x0
+ addeq sp, sp, #0x10
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ ldr r2, [sp, #0x8]
+ mov r1, #0x0
+ str r2, [r4, #0x0]
+ ldr r3, [sp, #0xc]
+ ldr r2, [sp, #0x8]
+ sub r2, r3, r2
+ str r2, [r4, #0x4]
+ str r1, [r4, #0x8]
+ str r1, [r4, #0xc]
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ strne r4, [r1, #0x8]
+ ldr r2, [r0, #0x0]
+ mov r1, #0x0
+ str r2, [r4, #0xc]
+ str r1, [r4, #0x8]
+ str r4, [r0, #0x0]
+ mov r0, #0x1
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020AF488
+FUN_020AF488:
+ stmdb sp!, {r4-r10,lr}
+ ldr r4, [r0, #0x0]
+ ldr r9, [sp, #0x20]
+ cmp r4, #0x0
+ mov r5, #0x0
+ beq _020AF4EC
+ sub r12, r9, #0x1
+ mvn lr, r12
+_020AF4A8:
+ cmp r9, #0x1
+ ldrls r8, [r4, #0x0]
+ movls r6, r5
+ movls r7, r3
+ bls _020AF4D0
+ ldr r7, [r4, #0x0]
+ add r6, r7, r12
+ and r8, lr, r6
+ sub r6, r8, r7
+ add r7, r3, r6
+_020AF4D0:
+ ldr r10, [r4, #0x4]
+ cmp r10, r7
+ movcs r5, r4
+ bhs _020AF4EC
+ ldr r4, [r4, #0xc]
+ cmp r4, #0x0
+ bne _020AF4A8
+_020AF4EC:
+ cmp r5, #0x0
+ beq _020AF5B8
+ cmp r6, #0x0
+ beq _020AF54C
+ ldr r9, [r1, #0x0]
+ cmp r9, #0x0
+ ldrne r3, [r9, #0xc]
+ strne r3, [r1, #0x0]
+ cmp r9, #0x0
+ beq _020AF5B8
+ ldr r4, [r5, #0x0]
+ mov r3, #0x0
+ str r4, [r9, #0x0]
+ str r6, [r9, #0x4]
+ str r3, [r9, #0x8]
+ str r3, [r9, #0xc]
+ ldr r3, [r0, #0x0]
+ cmp r3, #0x0
+ strne r9, [r3, #0x8]
+ ldr r4, [r0, #0x0]
+ mov r3, #0x0
+ str r4, [r9, #0xc]
+ str r3, [r9, #0x8]
+ str r9, [r0, #0x0]
+_020AF54C:
+ ldr r3, [r5, #0x4]
+ sub r3, r3, r7
+ str r3, [r5, #0x4]
+ ldr r3, [r5, #0x0]
+ add r3, r3, r7
+ str r3, [r5, #0x0]
+ ldr r3, [r5, #0x4]
+ cmp r3, #0x0
+ bne _020AF5AC
+ ldr r4, [r5, #0x8]
+ ldr r3, [r5, #0xc]
+ cmp r4, #0x0
+ strne r3, [r4, #0xc]
+ streq r3, [r0, #0x0]
+ cmp r3, #0x0
+ strne r4, [r3, #0x8]
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ strne r5, [r0, #0x8]
+ ldr r3, [r1, #0x0]
+ mov r0, #0x0
+ str r3, [r5, #0xc]
+ str r0, [r5, #0x8]
+ str r5, [r1, #0x0]
+_020AF5AC:
+ str r8, [r2, #0x0]
+ mov r0, #0x1
+ ldmia sp!, {r4-r10,pc}
+_020AF5B8:
+ mov r0, #0x0
+ str r0, [r2, #0x0]
+ ldmia sp!, {r4-r10,pc}
+
+ arm_func_start FUN_020AF5C4
+FUN_020AF5C4:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r12, #0x0
+ str r12, [sp, #0x0]
+ bl FUN_020AF488
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020AF5E0
+FUN_020AF5E0: ; 0x020AF5E0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr lr, [r1, #0x0]
+ cmp lr, #0x0
+ ldrne r12, [lr, #0xc]
+ strne r12, [r1, #0x0]
+ cmp lr, #0x0
+ beq _020AF640
+ str r2, [lr, #0x0]
+ str r3, [lr, #0x4]
+ mov r1, #0x0
+ str r1, [lr, #0x8]
+ str r1, [lr, #0xc]
+ ldr r1, [r0, #0x0]
+ add sp, sp, #0x4
+ cmp r1, #0x0
+ strne lr, [r1, #0x8]
+ ldr r2, [r0, #0x0]
+ mov r1, #0x0
+ str r2, [lr, #0xc]
+ str r1, [lr, #0x8]
+ str lr, [r0, #0x0]
+ mov r0, #0x1
+ ldmia sp!, {pc}
+_020AF640:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020AF64C
+FUN_020AF64C: ; 0x020AF64C
+ stmdb sp!, {r4,lr}
+ subs lr, r1, #0x1
+ mov r2, #0x0
+ beq _020AF684
+ mov r4, r0
+_020AF660:
+ add r12, r2, #0x1
+ add r2, r0, r2, lsl #0x4
+ add r3, r0, r12, lsl #0x4
+ str r3, [r2, #0xc]
+ str r4, [r3, #0x8]
+ mov r2, r12
+ cmp r12, lr
+ add r4, r4, #0x10
+ blo _020AF660
+_020AF684:
+ mov r2, #0x0
+ str r2, [r0, #0x8]
+ add r1, r0, r1, lsl #0x4
+ str r2, [r1, #-0x4]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020AF698
+FUN_020AF698: ; 0x020AF698
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+
+ arm_func_start FUN_020AF6A4
+FUN_020AF6A4: ; 0x020AF6A4
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x30
+ ldr r6, _020AF884 ; =UNK_020FF864
+ add r5, sp, #0x0
+ ldmia r6!, {r0-r3}
+ mov r12, r5
+ stmia r5!, {r0-r3}
+ ldmia r6!, {r0-r3}
+ stmia r5!, {r0-r3}
+ ldr r4, _020AF888 ; =UNK_021CCD6C
+ ldmia r6, {r0-r3}
+ stmia r5, {r0-r3}
+ ldr lr, [r4, #0x10]
+ ldr r1, [r4, #0xc]
+ add r0, lr, lr, lsr #0x1
+ mov r4, lr, lsr #0x1
+ sub r0, r1, r0
+ mov r3, #0x0
+_020AF6EC:
+ cmp r3, #0x0
+ beq _020AF6FC
+ cmp r3, #0x2
+ bne _020AF734
+_020AF6FC:
+ ldr r2, [r12, #0x0]
+ cmp r2, #0x0
+ beq _020AF734
+ cmp lr, #0x0
+ beq _020AF734
+ ldr r1, [r12, #0x8]
+ cmp r2, lr
+ movhi r2, lr
+ add r1, r1, r2
+ str r1, [r12, #0x8]
+ ldr r1, [r12, #0x0]
+ sub lr, lr, r2
+ sub r1, r1, r2
+ str r1, [r12, #0x0]
+_020AF734:
+ add r3, r3, #0x1
+ cmp r3, #0x4
+ add r12, r12, #0xc
+ blo _020AF6EC
+ ldr r1, [sp, #0xc]
+ add r5, sp, #0x0
+ sub r1, r1, r4
+ str r1, [sp, #0xc]
+ mov r3, #0x0
+_020AF758:
+ ldr r2, [r5, #0x0]
+ cmp r2, #0x0
+ beq _020AF790
+ cmp r0, #0x0
+ beq _020AF790
+ ldr r1, [r5, #0x4]
+ cmp r2, r0
+ movhi r2, r0
+ add r1, r1, r2
+ str r1, [r5, #0x4]
+ ldr r1, [r5, #0x0]
+ sub r0, r0, r2
+ sub r1, r1, r2
+ str r1, [r5, #0x0]
+_020AF790:
+ add r3, r3, #0x1
+ cmp r3, #0x4
+ add r5, r5, #0xc
+ blo _020AF758
+ ldr r0, _020AF888 ; =UNK_021CCD6C
+ bl FUN_020AF698
+ ldr r0, _020AF88C ; =UNK_021CCD70
+ bl FUN_020AF698
+ ldr r0, _020AF888 ; =UNK_021CCD6C
+ ldr r1, [r0, #0x18]
+ ldr r0, [r0, #0x14]
+ mov r1, r1, lsr #0x4
+ bl FUN_020AF64C
+ ldr r3, [sp, #0x8]
+ ldr r1, _020AF888 ; =UNK_021CCD6C
+ cmp r3, #0x0
+ str r0, [r1, #0x8]
+ beq _020AF7E8
+ ldr r0, _020AF88C ; =UNK_021CCD70
+ ldr r1, _020AF890 ; =UNK_021CCD74
+ mov r2, #0x0
+ bl FUN_020AF5E0
+_020AF7E8:
+ ldr r3, [sp, #0x4]
+ ldr r2, [sp, #0x8]
+ cmp r3, #0x0
+ beq _020AF804
+ ldr r0, _020AF888 ; =UNK_021CCD6C
+ ldr r1, _020AF890 ; =UNK_021CCD74
+ bl FUN_020AF5E0
+_020AF804:
+ ldr r3, [sp, #0x20]
+ cmp r3, #0x0
+ beq _020AF820
+ ldr r0, _020AF88C ; =UNK_021CCD70
+ ldr r1, _020AF890 ; =UNK_021CCD74
+ mov r2, #0x40000
+ bl FUN_020AF5E0
+_020AF820:
+ ldr r3, [sp, #0x1c]
+ ldr r0, [sp, #0x20]
+ cmp r3, #0x0
+ add r2, r0, #0x40000
+ beq _020AF840
+ ldr r0, _020AF888 ; =UNK_021CCD6C
+ ldr r1, _020AF890 ; =UNK_021CCD74
+ bl FUN_020AF5E0
+_020AF840:
+ ldr r3, [sp, #0x28]
+ cmp r3, #0x0
+ beq _020AF85C
+ ldr r0, _020AF888 ; =UNK_021CCD6C
+ ldr r1, _020AF890 ; =UNK_021CCD74
+ mov r2, #0x60000
+ bl FUN_020AF5E0
+_020AF85C:
+ ldr r3, [sp, #0x10]
+ cmp r3, #0x0
+ addeq sp, sp, #0x30
+ ldmeqia sp!, {r4-r6,pc}
+ ldr r0, _020AF888 ; =UNK_021CCD6C
+ ldr r1, _020AF890 ; =UNK_021CCD74
+ add r2, r4, #0x20000
+ bl FUN_020AF5E0
+ add sp, sp, #0x30
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020AF884: .word UNK_020FF864
+_020AF888: .word UNK_021CCD6C
+_020AF88C: .word UNK_021CCD70
+_020AF890: .word UNK_021CCD74
+
+ arm_func_start FUN_020AF894
+FUN_020AF894: ; 0x020AF894
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, _020AF908 ; =0x7FFF0000
+ ldr r1, _020AF90C ; =0x0000FFFF
+ and r2, r0, r2
+ and r3, r0, r1
+ mov r1, r2, lsr #0x10
+ and r0, r0, #0x80000000
+ mov r2, r3, lsl #0x3
+ movs r3, r1, lsl #0x4
+ mov r0, r0, lsr #0x1f
+ beq _020AF8FC
+ cmp r0, #0x0
+ beq _020AF8DC
+ ldr r0, _020AF910 ; =UNK_021CCD70
+ ldr r1, _020AF914 ; =UNK_021CCD74
+ bl FUN_020AF334
+ b _020AF8E8
+_020AF8DC:
+ ldr r0, _020AF918 ; =UNK_021CCD6C
+ ldr r1, _020AF914 ; =UNK_021CCD74
+ bl FUN_020AF334
+_020AF8E8:
+ cmp r0, #0x0
+ movne r0, #0x0
+ add sp, sp, #0x4
+ moveq r0, #0x1
+ ldmia sp!, {pc}
+_020AF8FC:
+ mov r0, #0x2
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AF908: .word 0x7FFF0000
+_020AF90C: .word 0x0000FFFF
+_020AF910: .word UNK_021CCD70
+_020AF914: .word UNK_021CCD74
+_020AF918: .word UNK_021CCD6C
+
+ arm_func_start FUN_020AF91C
+FUN_020AF91C: ; 0x020AF91C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ cmp r0, #0x0
+ moveq r5, #0x10
+ addne r0, r0, #0xf
+ bicne r5, r0, #0xf
+ ldr r0, _020AF9B0 ; =0x0007FFF0
+ mov r4, r1
+ cmp r5, r0
+ addcs sp, sp, #0x4
+ movcs r0, #0x0
+ ldmcsia sp!, {r4-r5,pc}
+ cmp r4, #0x0
+ beq _020AF96C
+ ldr r0, _020AF9B4 ; =UNK_021CCD70
+ ldr r1, _020AF9B8 ; =UNK_021CCD74
+ add r2, sp, #0x0
+ mov r3, r5
+ bl FUN_020AF5C4
+ b _020AF980
+_020AF96C:
+ ldr r0, _020AF9BC ; =UNK_021CCD6C
+ ldr r1, _020AF9B8 ; =UNK_021CCD74
+ add r2, sp, #0x0
+ mov r3, r5
+ bl FUN_020AF5C4
+_020AF980:
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,pc}
+ ldr r1, [sp, #0x0]
+ ldr r0, _020AF9C0 ; =0x0000FFFF
+ mov r2, r5, lsr #0x4
+ and r0, r0, r1, lsr #0x3
+ orr r0, r0, r2, lsl #0x10
+ orr r0, r0, r4, lsl #0x1f
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AF9B0: .word 0x0007FFF0
+_020AF9B4: .word UNK_021CCD70
+_020AF9B8: .word UNK_021CCD74
+_020AF9BC: .word UNK_021CCD6C
+_020AF9C0: .word 0x0000FFFF
+
+ arm_func_start FUN_020AF9C4
+FUN_020AF9C4: ; 0x020AF9C4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr ip, _020AFA14 ; =UNK_021CCD6C
+ str r0, [r12, #0xc]
+ str r1, [r12, #0x10]
+ str r2, [r12, #0x14]
+ str r3, [r12, #0x18]
+ bl FUN_020AF6A4
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldr r3, _020AFA18 ; =FUN_020AF91C
+ ldr r1, _020AFA1C ; =UNK_021064B8
+ ldr r2, _020AFA20 ; =FUN_020AF894
+ ldr r0, _020AFA24 ; =UNK_021064BC
+ str r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AFA14: .word UNK_021CCD6C
+_020AFA18: .word FUN_020AF91C
+_020AFA1C: .word UNK_021064B8
+_020AFA20: .word FUN_020AF894
+_020AFA24: .word UNK_021064BC
+
+ arm_func_start FUN_020AFA28
+FUN_020AFA28: ; 0x020AFA28
+ mov r0, r0, lsl #0x4
+ bx lr
+
+ arm_func_start FUN_020AFA30
+FUN_020AFA30:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020AFA78 ; =UNK_021CCD88
+ ldr r1, [r0, #0x10]
+ ldr r0, [r0, #0xc]
+ mov r1, r1, lsr #0x4
+ bl FUN_020AF64C
+ ldr r1, _020AFA78 ; =UNK_021CCD88
+ str r0, [r1, #0x4]
+ mov r0, r1
+ bl FUN_020AF698
+ ldr r0, _020AFA78 ; =UNK_021CCD88
+ ldr r1, _020AFA7C ; =UNK_021CCD8C
+ ldr r3, [r0, #0x8]
+ mov r2, #0x0
+ bl FUN_020AF5E0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AFA78: .word UNK_021CCD88
+_020AFA7C: .word UNK_021CCD8C
+
+ arm_func_start FUN_020AFA80
+FUN_020AFA80: ; 0x020AFA80
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r1, #0x10000
+ rsb r2, r1, #0x0
+ ldr r1, _020AFAC8 ; =0x0000FFFF
+ and r2, r0, r2
+ and r12, r0, r1
+ mov r3, r2, lsr #0x10
+ ldr r0, _020AFACC ; =UNK_021CCD88
+ ldr r1, _020AFAD0 ; =UNK_021CCD8C
+ mov r2, r12, lsl #0x3
+ mov r3, r3, lsl #0x3
+ bl FUN_020AF334
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020AFAC8: .word 0x0000FFFF
+_020AFACC: .word UNK_021CCD88
+_020AFAD0: .word UNK_021CCD8C
+
+ arm_func_start FUN_020AFAD4
+FUN_020AFAD4: ; 0x020AFAD4
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x8
+ cmp r0, #0x0
+ moveq r4, #0x8
+ addne r0, r0, #0x7
+ bicne r4, r0, #0x7
+ ldr r0, _020AFB98 ; =0x0007FFF8
+ cmp r4, r0
+ addcs sp, sp, #0x8
+ movcs r0, #0x0
+ ldmcsia sp!, {r4,pc}
+ cmp r1, #0x0
+ beq _020AFB50
+ mov r12, #0x8
+ ldr r0, _020AFB9C ; =UNK_021CCD88
+ ldr r1, _020AFBA0 ; =UNK_021CCD8C
+ add r2, sp, #0x4
+ mov r3, r4
+ str r12, [sp, #0x0]
+ bl FUN_020AF488
+ ldr r2, [sp, #0x4]
+ add r1, r2, r4
+ cmp r1, #0x10000
+ bls _020AFB6C
+ ldr r0, _020AFB9C ; =UNK_021CCD88
+ ldr r1, _020AFBA0 ; =UNK_021CCD8C
+ mov r3, r4
+ bl FUN_020AF334
+ add sp, sp, #0x8
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+_020AFB50:
+ ldr r0, _020AFB9C ; =UNK_021CCD88
+ mov r12, #0x10
+ ldr r1, _020AFBA0 ; =UNK_021CCD8C
+ add r2, sp, #0x4
+ mov r3, r4
+ str r12, [sp, #0x0]
+ bl FUN_020AF488
+_020AFB6C:
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+ ldr r1, [sp, #0x4]
+ ldr r0, _020AFBA4 ; =0x0000FFFF
+ mov r2, r4, lsr #0x3
+ and r0, r0, r1, lsr #0x3
+ orr r0, r0, r2, lsl #0x10
+ add sp, sp, #0x8
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AFB98: .word 0x0007FFF8
+_020AFB9C: .word UNK_021CCD88
+_020AFBA0: .word UNK_021CCD8C
+_020AFBA4: .word 0x0000FFFF
+
+ arm_func_start FUN_020AFBA8
+FUN_020AFBA8: ; 0x020AFBA8
+ stmdb sp!, {r4,lr}
+ ldr ip, _020AFBE8 ; =UNK_021CCD88
+ mov r4, r3
+ str r0, [r12, #0x8]
+ str r1, [r12, #0xc]
+ str r2, [r12, #0x10]
+ bl FUN_020AFA30
+ cmp r4, #0x0
+ ldmeqia sp!, {r4,pc}
+ ldr r3, _020AFBEC ; =FUN_020AFAD4
+ ldr r1, _020AFBF0 ; =UNK_021064C0
+ ldr r2, _020AFBF4 ; =FUN_020AFA80
+ ldr r0, _020AFBF8 ; =UNK_021064C4
+ str r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020AFBE8: .word UNK_021CCD88
+_020AFBEC: .word FUN_020AFAD4
+_020AFBF0: .word UNK_021064C0
+_020AFBF4: .word FUN_020AFA80
+_020AFBF8: .word UNK_021064C4
+
+ arm_func_start FUN_020AFBFC
+FUN_020AFBFC: ; 0x020AFBFC
+ mov r0, r0, lsl #0x4
+ bx lr
+
+ arm_func_start FUN_020AFC04
+FUN_020AFC04: ; 0x020AFC04
+ ldrh r2, [r0, #0x0]
+ cmp r2, r1
+ ldrhi r0, [r0, #0x4]
+ addhi r0, r0, r1, lsl #0x4
+ movls r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020AFC1C
+FUN_020AFC1C: ; 0x020AFC1C
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ ldr r1, [r0, #0x4]
+ mov r6, #0x0
+ add r1, r1, r0
+ str r1, [r0, #0x4]
+ ldr r1, [r0, #0x8]
+ add r1, r1, r0
+ str r1, [r0, #0x8]
+ ldr r1, [r0, #0xc]
+ add r1, r1, r0
+ str r1, [r0, #0xc]
+ ldrh r1, [r0, #0x0]
+ ldr r4, [r0, #0x4]
+ ldr lr, [r0, #0x8]
+ cmp r1, #0x0
+ ldr r12, [r0, #0xc]
+ bls _020AFCCC
+ mov r1, r6
+_020AFC68:
+ add r2, r4, r6, lsl #0x4
+ ldr r5, [r2, #0xc]
+ mov r3, r6, lsl #0x4
+ add r5, lr, r5
+ str r5, [r2, #0xc]
+ ldrh r7, [r4, r3]
+ mov r5, r1
+ cmp r7, #0x0
+ bls _020AFCB4
+_020AFC8C:
+ ldr r9, [r2, #0xc]
+ add r7, r5, #0x1
+ ldr r8, [r9, r5, lsl #0x3]
+ mov r7, r7, lsl #0x10
+ add r8, r12, r8
+ str r8, [r9, r5, lsl #0x3]
+ ldrh r8, [r4, r3]
+ mov r5, r7, lsr #0x10
+ cmp r5, r8
+ blo _020AFC8C
+_020AFCB4:
+ add r2, r6, #0x1
+ mov r2, r2, lsl #0x10
+ ldrh r3, [r0, #0x0]
+ mov r6, r2, lsr #0x10
+ cmp r6, r3
+ blo _020AFC68
+_020AFCCC:
+ ldr r1, [r0, #0x14]
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r9,pc}
+ add r1, r1, r0
+ str r1, [r0, #0x14]
+ ldr r1, [r0, #0x14]
+ mov r12, #0x0
+ add r2, r1, #0x8
+ ldr r0, [r2, #0x4]
+ add r0, r0, r2
+ str r0, [r2, #0x4]
+ ldrh r0, [r1, #0x8]
+ cmp r0, #0x0
+ addls sp, sp, #0x4
+ ldmlsia sp!, {r4-r9,pc}
+ mov r0, r12
+ mov r6, r12
+_020AFD14:
+ ldr r5, [r2, #0x4]
+ mov r3, r6
+ add r1, r5, r0
+ ldr r4, [r1, #0x4]
+ add r4, r4, r2
+ str r4, [r1, #0x4]
+ ldr r4, [r1, #0x8]
+ add r4, r4, r2
+ str r4, [r1, #0x8]
+ ldrh r4, [r5, r0]
+ cmp r4, #0x0
+ bls _020AFD6C
+ mov r7, r6
+_020AFD48:
+ ldr r5, [r1, #0x8]
+ add r3, r3, #0x1
+ ldr r4, [r5, r7]
+ add r4, r4, r2
+ str r4, [r5, r7]
+ ldrh r4, [r1, #0x0]
+ add r7, r7, #0x4
+ cmp r3, r4
+ blo _020AFD48
+_020AFD6C:
+ ldrh r1, [r2, #0x0]
+ add r12, r12, #0x1
+ add r0, r0, #0xc
+ cmp r12, r1
+ blo _020AFD14
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+
+ arm_func_start thunk_FUN_020afda0
+thunk_FUN_020afda0: ; 0x020AFD88
+ ldr ip, _020AFD90 ; =FUN_020AFDA0
+ bx r12
+ .balign 4
+_020AFD90: .word FUN_020AFDA0
+
+ arm_func_start thunk_FUN_020afda0_2
+thunk_FUN_020afda0_2: ; 0x020AFD94
+ ldr ip, _020AFD9C ; =FUN_020AFDA0
+ bx r12
+ .balign 4
+_020AFD9C: .word FUN_020AFDA0
+
+ arm_func_start FUN_020AFDA0
+FUN_020AFDA0: ; 0x020AFDA0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldr r1, _020AFDE4 ; =0x41424E4B
+ bl FUN_020B01F8
+ movs r4, r0
+ moveq r0, #0x0
+ addeq sp, sp, #0x4
+ streq r0, [r5, #0x0]
+ ldmeqia sp!, {r4-r5,pc}
+ add r0, r4, #0x8
+ bl FUN_020AFC1C
+ add r0, r4, #0x8
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AFDE4: .word 0x41424E4B
+
+ arm_func_start FUN_020AFDE8
+FUN_020AFDE8: ; 0x020AFDE8
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r0
+ ldr r1, [r5, #0x4]
+ add r1, r1, r5
+ str r1, [r5, #0x4]
+ bl FUN_020AFF10
+ ldrh r1, [r5, #0x0]
+ mov r4, r0
+ mov r6, #0x0
+ cmp r1, #0x0
+ bls _020AFE44
+_020AFE14:
+ mov r0, r5
+ mov r1, r6
+ bl FUN_020AFE8C
+ ldr r2, [r0, #0x4]
+ add r1, r6, #0x1
+ add r2, r2, r4
+ str r2, [r0, #0x4]
+ mov r0, r1, lsl #0x10
+ ldrh r1, [r5, #0x0]
+ mov r6, r0, lsr #0x10
+ cmp r6, r1
+ blo _020AFE14
+_020AFE44:
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x0
+ beq _020AFE6C
+ add r0, r0, r5
+ str r0, [r5, #0xc]
+ ldr r1, [r5, #0xc]
+ ldr r0, [r1, #0x4]
+ add r0, r0, r1
+ str r0, [r1, #0x4]
+ str r1, [r5, #0xc]
+_020AFE6C:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ add r0, r0, r5
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0x14]
+ bl FUN_020AFF00
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020AFE8C
+FUN_020AFE8C: ; 0x020AFE8C
+ ldrh r2, [r0, #0x0]
+ cmp r1, r2
+ movcs r0, #0x0
+ bxcs lr
+ ldrh r2, [r0, #0x2]
+ ands r2, r2, #0x1
+ ldrne r0, [r0, #0x4]
+ addne r0, r0, r1, lsl #0x4
+ ldreq r0, [r0, #0x4]
+ addeq r0, r0, r1, lsl #0x3
+ bx lr
+
+ arm_func_start FUN_020AFEB8
+FUN_020AFEB8: ; 0x020AFEB8
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldr r1, _020AFEFC ; =0x4345424B
+ bl FUN_020B01F8
+ movs r4, r0
+ moveq r0, #0x0
+ addeq sp, sp, #0x4
+ streq r0, [r5, #0x0]
+ ldmeqia sp!, {r4-r5,pc}
+ add r0, r4, #0x8
+ bl FUN_020AFDE8
+ add r0, r4, #0x8
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020AFEFC: .word 0x4345424B
+
+ arm_func_start FUN_020AFF00
+FUN_020AFF00: ; 0x020AFF00
+ ldr ip, _020AFF0C ; =FUN_020B01B0
+ add r0, r0, #0x8
+ bx r12
+ .balign 4
+_020AFF0C: .word FUN_020B01B0
+
+ arm_func_start FUN_020AFF10
+FUN_020AFF10: ; 0x020AFF10
+ ldrh r1, [r0, #0x2]
+ ands r1, r1, #0x1
+ ldrneh r1, [r0, #0x0]
+ ldrne r0, [r0, #0x4]
+ addne r0, r0, r1, lsl #0x4
+ ldreqh r1, [r0, #0x0]
+ ldreq r0, [r0, #0x4]
+ addeq r0, r0, r1, lsl #0x3
+ bx lr
+
+ arm_func_start FUN_020AFF34
+FUN_020AFF34: ; 0x020AFF34
+ ldrh r2, [r0, #0x0]
+ cmp r1, r2
+ ldrcc r0, [r0, #0x4]
+ addcc r0, r0, r1, lsl #0x3
+ movcs r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020AFF4C
+FUN_020AFF4C: ; 0x020AFF4C
+ stmdb sp!, {r4,lr}
+ ldr r1, [r0, #0x4]
+ mov r4, #0x0
+ add r1, r1, r0
+ str r1, [r0, #0x4]
+ ldr r1, [r0, #0x8]
+ add r1, r1, r0
+ str r1, [r0, #0x8]
+ ldrh r1, [r0, #0x0]
+ ldr lr, [r0, #0x4]
+ cmp r1, #0x0
+ bls _020AFFA8
+_020AFF7C:
+ add r3, lr, r4, lsl #0x3
+ ldr r12, [r0, #0x8]
+ ldr r2, [r3, #0x4]
+ add r1, r4, #0x1
+ add r2, r12, r2
+ str r2, [r3, #0x4]
+ mov r1, r1, lsl #0x10
+ ldrh r2, [r0, #0x0]
+ mov r4, r1, lsr #0x10
+ cmp r4, r2
+ blo _020AFF7C
+_020AFFA8:
+ ldr r1, [r0, #0x10]
+ cmp r1, #0x0
+ ldmeqia sp!, {r4,pc}
+ add r1, r1, r0
+ str r1, [r0, #0x10]
+ ldr r0, [r0, #0x10]
+ bl FUN_020AFFC8
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020AFFC8
+FUN_020AFFC8: ; 0x020AFFC8
+ ldr ip, _020AFFD4 ; =FUN_020B01B0
+ add r0, r0, #0x8
+ bx r12
+ .balign 4
+_020AFFD4: .word FUN_020B01B0
+
+ arm_func_start FUN_020AFFD8
+FUN_020AFFD8: ; 0x020AFFD8
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldr r1, _020B001C ; =0x4D43424B
+ bl FUN_020B01F8
+ movs r4, r0
+ moveq r0, #0x0
+ addeq sp, sp, #0x4
+ streq r0, [r5, #0x0]
+ ldmeqia sp!, {r4-r5,pc}
+ add r0, r4, #0x8
+ bl FUN_020AFF4C
+ add r0, r4, #0x8
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B001C: .word 0x4D43424B
+
+ arm_func_start FUN_020B0020
+FUN_020B0020: ; 0x020B0020
+ ldr r1, [r0, #0x14]
+ add r1, r1, r0
+ str r1, [r0, #0x14]
+ bx lr
+
+ arm_func_start FUN_020B0030
+FUN_020B0030: ; 0x020B0030
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldr r1, _020B0074 ; =0x43484152
+ bl FUN_020B01F8
+ movs r4, r0
+ moveq r0, #0x0
+ addeq sp, sp, #0x4
+ streq r0, [r5, #0x0]
+ ldmeqia sp!, {r4-r5,pc}
+ add r0, r4, #0x8
+ bl FUN_020B0020
+ add r0, r4, #0x8
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B0074: .word 0x43484152
+
+ arm_func_start FUN_020B0078
+FUN_020B0078: ; 0x020B0078
+ ldr r1, [r0, #0x14]
+ add r1, r1, r0
+ str r1, [r0, #0x14]
+ bx lr
+
+ arm_func_start FUN_020B0088
+FUN_020B0088: ; 0x020B0088
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldr r1, _020B00CC ; =0x43484152
+ bl FUN_020B01F8
+ movs r4, r0
+ moveq r0, #0x0
+ addeq sp, sp, #0x4
+ streq r0, [r5, #0x0]
+ ldmeqia sp!, {r4-r5,pc}
+ add r0, r4, #0x8
+ bl FUN_020B0078
+ add r0, r4, #0x8
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B00CC: .word 0x43484152
+
+ arm_func_start FUN_020B00D0
+FUN_020B00D0: ; 0x020B00D0
+ ldr r1, [r0, #0xc]
+ add r1, r1, r0
+ str r1, [r0, #0xc]
+ bx lr
+
+ arm_func_start FUN_020B00E0
+FUN_020B00E0: ; 0x020B00E0
+ ldr r1, [r0, #0x4]
+ add r1, r1, r0
+ str r1, [r0, #0x4]
+ bx lr
+
+ arm_func_start FUN_020B00F0
+FUN_020B00F0: ; 0x020B00F0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldr r1, _020B0134 ; =0x50434D50
+ bl FUN_020B01F8
+ movs r4, r0
+ moveq r0, #0x0
+ addeq sp, sp, #0x4
+ streq r0, [r5, #0x0]
+ ldmeqia sp!, {r4-r5,pc}
+ add r0, r4, #0x8
+ bl FUN_020B00E0
+ add r0, r4, #0x8
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B0134: .word 0x50434D50
+
+ arm_func_start FUN_020B0138
+FUN_020B0138: ; 0x020B0138
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldr r1, _020B017C ; =0x504C5454
+ bl FUN_020B01F8
+ movs r4, r0
+ moveq r0, #0x0
+ addeq sp, sp, #0x4
+ streq r0, [r5, #0x0]
+ ldmeqia sp!, {r4-r5,pc}
+ add r0, r4, #0x8
+ bl FUN_020B00D0
+ add r0, r4, #0x8
+ str r0, [r5, #0x0]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B017C: .word 0x504C5454
+
+ arm_func_start FUN_020B0180
+FUN_020B0180: ; 0x020B0180
+ stmdb sp!, {r4,lr}
+ mov r4, r1
+ ldr r1, _020B01AC ; =0x5343524E
+ bl FUN_020B01F8
+ cmp r0, #0x0
+ addne r0, r0, #0x8
+ strne r0, [r4, #0x0]
+ movne r0, #0x1
+ moveq r0, #0x0
+ streq r0, [r4, #0x0]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020B01AC: .word 0x5343524E
+
+ arm_func_start FUN_020B01B0
+FUN_020B01B0: ; 0x020B01B0
+ ldr r1, [r0, #0x4]
+ mov r12, #0x0
+ add r1, r1, r0
+ str r1, [r0, #0x4]
+ ldrh r1, [r0, #0x0]
+ cmp r1, #0x0
+ bxls lr
+_020B01CC:
+ ldr r3, [r0, #0x4]
+ add r1, r12, #0x1
+ ldr r2, [r3, r12, lsl #0x2]
+ mov r1, r1, lsl #0x10
+ add r2, r0, r2
+ str r2, [r3, r12, lsl #0x2]
+ ldrh r2, [r0, #0x0]
+ mov r12, r1, lsr #0x10
+ cmp r12, r2
+ blo _020B01CC
+ bx lr
+
+ arm_func_start FUN_020B01F8
+FUN_020B01F8:
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrh r2, [r0, #0xc]
+ ldrh r12, [r0, #0xe]
+ mov lr, #0x0
+ add r0, r0, r2
+ cmp r12, #0x0
+ bls _020B0244
+_020B0218:
+ ldr r2, [r0, #0x0]
+ cmp r2, r1
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ add r2, lr, #0x1
+ mov r2, r2, lsl #0x10
+ ldr r3, [r0, #0x4]
+ mov lr, r2, lsr #0x10
+ cmp lr, r12
+ add r0, r0, r3
+ blo _020B0218
+_020B0244:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020B0250
+FUN_020B0250: ; 0x020B0250
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r5, _020B02C0 ; =0x04000470
+ mov r0, r0, lsl #0xc
+ str r0, [r5, #0x0]
+ mov r4, r1, lsl #0xc
+ ldr r12, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ str r4, [r5, #0x0]
+ mov r4, r2, lsl #0xc
+ ldr r2, [sp, #0x18]
+ ldr lr, _020B02C4 ; =0x0400046C
+ str r4, [r5, #0x0]
+ mov r4, r3, lsl #0xc
+ ldr r3, [sp, #0x20]
+ str r4, [lr, #0x0]
+ mov r12, r12, lsl #0xc
+ str r12, [lr, #0x0]
+ mov r12, #0x1000
+ mov r0, r0, lsl #0xc
+ mov r1, r1, lsl #0xc
+ mov r2, r2, lsl #0xc
+ mov r3, r3, lsl #0xc
+ str r12, [lr, #0x0]
+ bl FUN_020B0340
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B02C0: .word 0x04000470
+_020B02C4: .word 0x0400046C
+
+ arm_func_start FUN_020B02C8
+FUN_020B02C8: ; 0x020B02C8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x14
+ ldr r2, _020B0330 ; =0xBFFF0000
+ ldr r0, _020B0334 ; =0x04000580
+ mov r1, #0x400000
+ str r2, [r0, #0x0]
+ rsb r0, r1, #0x0
+ str r0, [sp, #0x0]
+ str r1, [sp, #0x4]
+ mov r0, #0x0
+ str r1, [sp, #0x8]
+ mov r1, #0x1
+ str r1, [sp, #0xc]
+ mov r2, r0
+ mov r1, #0xc0000
+ mov r3, #0x100000
+ str r0, [sp, #0x10]
+ bl G3i_OrthoW_
+ ldr r1, _020B0338 ; =0x0400044C
+ mov r2, #0x0
+ ldr r0, _020B033C ; =0x04000440
+ str r2, [r1, #0x0]
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+ .balign 4
+_020B0330: .word 0xBFFF0000
+_020B0334: .word 0x04000580
+_020B0338: .word 0x0400044C
+_020B033C: .word 0x04000440
+
+ arm_func_start FUN_020B0340
+FUN_020B0340: ; 0x020B0340
+ stmdb sp!, {r4-r6,lr}
+ mov r3, r3, lsl #0x8
+ mov r0, r0, lsl #0x8
+ mov r4, r3, asr #0x10
+ mov r3, r0, asr #0x10
+ mov r0, r4, lsl #0x10
+ mov r3, r3, lsl #0x10
+ mov r1, r1, lsl #0x8
+ mov r1, r1, asr #0x10
+ mov r1, r1, lsl #0x10
+ mov r2, r2, lsl #0x8
+ mov r2, r2, asr #0x10
+ mov r2, r2, lsl #0x10
+ ldr ip, _020B03F4 ; =0x04000500
+ mov lr, #0x1
+ mov r6, r0, lsr #0x10
+ mov r5, r3, lsr #0x10
+ mov r3, r1, lsr #0x10
+ mov r1, r2, lsr #0x10
+ ldr r4, _020B03F8 ; =0x04000488
+ str lr, [r12, #0x0]
+ orr r0, r5, r6, lsl #0x10
+ ldr lr, _020B03FC ; =0x0400048C
+ str r0, [r4, #0x0]
+ mov r0, #0x10000000
+ str r0, [lr, #0x0]
+ mov r12, #0x0
+ str r12, [lr, #0x0]
+ orr r2, r3, r6, lsl #0x10
+ ldr r0, _020B0400 ; =0x10001000
+ str r2, [r4, #0x0]
+ str r0, [lr, #0x0]
+ str r12, [lr, #0x0]
+ orr r0, r3, r1, lsl #0x10
+ str r0, [r4, #0x0]
+ mov r0, #0x1000
+ str r0, [lr, #0x0]
+ str r12, [lr, #0x0]
+ orr r0, r5, r1, lsl #0x10
+ str r0, [r4, #0x0]
+ str r12, [lr, #0x0]
+ ldr r0, _020B0404 ; =0x04000504
+ str r12, [lr, #0x0]
+ str r12, [r0, #0x0]
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B03F4: .word 0x04000500
+_020B03F8: .word 0x04000488
+_020B03FC: .word 0x0400048C
+_020B0400: .word 0x10001000
+_020B0404: .word 0x04000504
+
+ arm_func_start FUN_020B0408
+FUN_020B0408:
+ ldr r1, [r0, #0x14]
+ cmp r1, #0x0
+ ldreq r0, [r0, #0x18]
+ ldreq r1, [r0, #0x8]
+ cmp r1, #0x2
+ beq _020B0428
+ cmp r1, #0x4
+ bne _020B0430
+_020B0428:
+ mov r0, #0x1
+ bx lr
+_020B0430:
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020B0438
+FUN_020B0438: ; 0x020B0438
+ ldr ip, _020B0444 ; =FUN_020B0448
+ str r1, [r0, #0x18]
+ bx r12
+ .balign 4
+_020B0444: .word FUN_020B0448
+
+ arm_func_start FUN_020B0448
+FUN_020B0448: ; 0x020B0448
+ ldr r1, [r0, #0x10]
+ cmp r1, #0x0
+ movgt r2, #0x1
+ ldr r1, [r0, #0x4]
+ movle r2, #0x0
+ eors r1, r2, r1
+ beq _020B047C
+ ldr r2, [r0, #0x18]
+ ldrh r1, [r2, #0x2]
+ ldr r2, [r2, #0xc]
+ add r1, r2, r1, lsl #0x3
+ str r1, [r0, #0x0]
+ b _020B0494
+_020B047C:
+ ldr r2, [r0, #0x18]
+ ldrh r1, [r2, #0x0]
+ ldr r2, [r2, #0xc]
+ add r1, r2, r1, lsl #0x3
+ sub r1, r1, #0x8
+ str r1, [r0, #0x0]
+_020B0494:
+ ldr ip, _020B04A4 ; =FUN_020B0534
+ mov r1, #0x0
+ str r1, [r0, #0xc]
+ bx r12
+ .balign 4
+_020B04A4: .word FUN_020B0534
+
+ arm_func_start FUN_020B04A8
+FUN_020B04A8: ; 0x020B04A8
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+ str r1, [r0, #0x8]
+ strh r1, [r0, #0xc]
+ bx lr
+
+ arm_func_start FUN_020B04C0
+FUN_020B04C0: ; 0x020B04C0
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ add r0, r4, #0x1c
+ bl FUN_020B04A8
+ mov r1, #0x0
+ str r1, [r4, #0x0]
+ str r1, [r4, #0x4]
+ mov r0, #0x1
+ str r0, [r4, #0x8]
+ str r1, [r4, #0xc]
+ mov r0, #0x1000
+ str r0, [r4, #0x10]
+ str r1, [r4, #0x14]
+ str r1, [r4, #0x18]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020B04FC
+FUN_020B04FC: ; 0x020B04FC
+ ldr r1, [r0, #0x18]
+ ldr r2, [r0, #0x0]
+ ldr r0, [r1, #0xc]
+ sub r0, r2, r0
+ mov r0, r0, lsl #0xd
+ mov r0, r0, lsr #0x10
+ bx lr
+
+ arm_func_start FUN_020B0518
+FUN_020B0518:
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020B06EC
+ cmp r0, #0x0
+ movne r1, #0x0
+ strne r1, [r4, #0xc]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020B0534
+FUN_020B0534:
+ stmdb sp!, {r4-r8,lr}
+ mov r8, r0
+ ldr r0, [r8, #0x8]
+ mov r7, #0x0
+ cmp r0, #0x1
+ movne r0, r7
+ ldmneia sp!, {r4-r8,pc}
+ ldr r2, [r8, #0x10]
+ mov r0, #0x800
+ smull r3, r1, r2, r1
+ adds r0, r3, r0
+ adc r1, r1, r7
+ mov r0, r0, lsr #0xc
+ orr r0, r0, r1, lsl #0x14
+ bl abs
+ ldr r1, [r8, #0xc]
+ add r6, r8, #0xc
+ add r0, r1, r0
+ str r0, [r8, #0xc]
+ mov r4, r7
+ mov r5, #0x1
+ b _020B06A8
+_020B058C:
+ ldr r0, [r8, #0x0]
+ ldr r1, [r6, #0x0]
+ ldrh r0, [r0, #0x4]
+ mov r7, r5
+ sub r0, r1, r0, lsl #0xc
+ str r0, [r6, #0x0]
+ ldr r0, [r8, #0x10]
+ cmp r0, #0x0
+ movgt r1, r5
+ ldr r0, [r8, #0x4]
+ movle r1, r4
+ eors r0, r1, r0
+ ldrne r0, [r8, #0x0]
+ addne r0, r0, #0x8
+ strne r0, [r8, #0x0]
+ ldreq r0, [r8, #0x0]
+ subeq r0, r0, #0x8
+ streq r0, [r8, #0x0]
+ ldr r1, [r8, #0x10]
+ ldr r0, [r8, #0x0]
+ cmp r1, #0x0
+ movgt r2, r5
+ ldr r1, [r8, #0x4]
+ movle r2, r4
+ eors r1, r2, r1
+ beq _020B0614
+ ldr r2, [r8, #0x18]
+ ldrh r1, [r2, #0x0]
+ ldr r2, [r2, #0xc]
+ add r1, r2, r1, lsl #0x3
+ cmp r0, r1
+ movcs r0, r5
+ movcc r0, r4
+ b _020B0634
+_020B0614:
+ ldr r2, [r8, #0x18]
+ ldrh r1, [r2, #0x2]
+ ldr r2, [r2, #0xc]
+ add r1, r2, r1, lsl #0x3
+ sub r1, r1, #0x8
+ cmp r0, r1
+ movls r0, r5
+ movhi r0, r4
+_020B0634:
+ cmp r0, #0x0
+ beq _020B0644
+ mov r0, r8
+ bl FUN_020B0710
+_020B0644:
+ ldr r0, [r8, #0x1c]
+ cmp r0, #0x0
+ beq _020B06A8
+ ldr r0, [r8, #0x18]
+ ldr r2, [r8, #0x1c]
+ ldr r1, [r8, #0x0]
+ ldr r0, [r0, #0xc]
+ cmp r2, #0x2
+ sub r0, r1, r0
+ mov r0, r0, lsl #0xd
+ mov r1, r0, lsr #0x10
+ beq _020B0680
+ cmp r2, #0x3
+ beq _020B069C
+ b _020B06A8
+_020B0680:
+ ldrh r0, [r8, #0x28]
+ cmp r1, r0
+ bne _020B06A8
+ ldr r0, [r8, #0x20]
+ ldr r2, [r8, #0x24]
+ blx r2
+ b _020B06A8
+_020B069C:
+ ldr r0, [r8, #0x20]
+ ldr r2, [r8, #0x24]
+ blx r2
+_020B06A8:
+ ldr r0, [r8, #0x8]
+ cmp r0, #0x0
+ beq _020B06CC
+ ldr r0, [r8, #0x0]
+ ldr r1, [r8, #0xc]
+ ldrh r0, [r0, #0x4]
+ cmp r1, r0, lsl #0xc
+ movge r0, r5
+ bge _020B06D0
+_020B06CC:
+ mov r0, r4
+_020B06D0:
+ cmp r0, #0x0
+ bne _020B058C
+ mov r0, r7
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020B06E0
+FUN_020B06E0: ; 0x020B06E0
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x0]
+ bx lr
+
+ arm_func_start FUN_020B06EC
+FUN_020B06EC:
+ ldr r3, [r0, #0x18]
+ ldrh r2, [r3, #0x0]
+ cmp r1, r2
+ ldrcc r2, [r3, #0xc]
+ addcc r1, r2, r1, lsl #0x3
+ strcc r1, [r0, #0x0]
+ movcc r0, #0x1
+ movcs r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020B0710
+FUN_020B0710: ; 0x020B0710
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ ldreq r0, [r4, #0x18]
+ ldreq r0, [r0, #0x8]
+ cmp r0, #0x3
+ beq _020B0738
+ cmp r0, #0x4
+ bne _020B07B4
+_020B0738:
+ ldr r0, [r4, #0x4]
+ eor r0, r0, #0x1
+ str r0, [r4, #0x4]
+ ldr r1, [r4, #0x18]
+ ldr r2, [r4, #0x0]
+ ldrh r0, [r1, #0x2]
+ ldr r1, [r1, #0xc]
+ add r0, r1, r0, lsl #0x3
+ sub r0, r0, #0x8
+ cmp r2, r0
+ bhi _020B0800
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0x1
+ bne _020B0780
+ ldr r0, [r4, #0x20]
+ ldr r1, [r4, #0xc]
+ ldr r2, [r4, #0x24]
+ blx r2
+_020B0780:
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ ldreq r0, [r4, #0x18]
+ ldreq r0, [r0, #0x8]
+ cmp r0, #0x2
+ beq _020B07A8
+ cmp r0, #0x4
+ movne r0, #0x0
+ strne r0, [r4, #0x8]
+ bne _020B0800
+_020B07A8:
+ mov r0, r4
+ bl FUN_020B0448
+ b _020B0800
+_020B07B4:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0x1
+ bne _020B07D0
+ ldr r0, [r4, #0x20]
+ ldr r1, [r4, #0xc]
+ ldr r2, [r4, #0x24]
+ blx r2
+_020B07D0:
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x0
+ ldreq r0, [r4, #0x18]
+ ldreq r0, [r0, #0x8]
+ cmp r0, #0x2
+ beq _020B07F8
+ cmp r0, #0x4
+ movne r0, #0x0
+ strne r0, [r4, #0x8]
+ bne _020B0800
+_020B07F8:
+ mov r0, r4
+ bl FUN_020B0448
+_020B0800:
+ ldr r1, [r4, #0x18]
+ ldr r2, [r4, #0x0]
+ ldrh r0, [r1, #0x0]
+ ldr r1, [r1, #0xc]
+ add r0, r1, r0, lsl #0x3
+ sub r0, r0, #0x8
+ cmp r2, r0
+ strhi r0, [r4, #0x0]
+ ldmhiia sp!, {r4,pc}
+ cmp r2, r1
+ strcc r1, [r4, #0x0]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020B0830
+FUN_020B0830: ; 0x020B0830
+ ldrh r3, [r0, #0x6]
+ ldrh r2, [r0, #0x8]
+ mov r12, #0x0
+ add r1, r3, #0x1
+ cmp r2, r1
+ bgt _020B0854
+ ldrh r0, [r0, #0x4]
+ cmp r0, r3
+ movls r12, #0x1
+_020B0854:
+ cmp r12, #0x0
+ subne r0, r3, r2
+ addne r0, r0, #0x1
+ movne r0, r0, lsl #0x10
+ movne r0, r0, lsr #0x10
+ moveq r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020B0870
+FUN_020B0870: ; 0x020B0870
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020B09B4
+ mov r0, r4
+ bl FUN_020B0888
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020B0888
+FUN_020B0888: ; 0x020B0888
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r0
+ ldr r0, [r5, #0x14]
+ cmp r0, #0x0
+ beq _020B0944
+ ldrh r2, [r5, #0x6]
+ ldrh r1, [r5, #0x8]
+ mov r3, #0x0
+ add r0, r2, #0x1
+ cmp r1, r0
+ bgt _020B08C0
+ ldrh r0, [r5, #0x4]
+ cmp r0, r2
+ movls r3, #0x1
+_020B08C0:
+ cmp r3, #0x0
+ moveq r4, #0x0
+ beq _020B08E0
+ ldrh r0, [r5, #0x4]
+ sub r0, r2, r0
+ add r0, r0, #0x1
+ mov r0, r0, lsl #0x10
+ mov r4, r0, lsr #0xd
+_020B08E0:
+ ldr r2, [r5, #0x0]
+ ldr r1, _020B09AC ; =UNK_021CCDA0
+ mov r0, #0x540
+ mla r1, r2, r0, r1
+ ldrh r0, [r5, #0x4]
+ add r2, r1, #0x100
+ mov r1, r4
+ add r6, r2, r0, lsl #0x3
+ mov r0, r6
+ bl DC_InvalidateRange
+ ldr r0, _020B09B0 ; =GXi_DmaId
+ mvn r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, r1
+ beq _020B0930
+ mov r1, r6
+ mov r3, r4
+ mov r2, #0xc0
+ bl MI_DmaFill32
+ b _020B0998
+_020B0930:
+ mov r1, r6
+ mov r2, r4
+ mov r0, #0xc0
+ bl MIi_CpuClear32
+ b _020B0998
+_020B0944:
+ ldr r2, [r5, #0x0]
+ ldr r1, _020B09AC ; =UNK_021CCDA0
+ mov r0, #0x540
+ mla r1, r2, r0, r1
+ ldrh r2, [r5, #0x4]
+ ldrh r0, [r5, #0x6]
+ add r1, r1, #0x100
+ add r3, r1, r2, lsl #0x3
+ sub r0, r0, r2
+ add r0, r0, #0x1
+ mov r0, r0, lsl #0x10
+ movs r2, r0, lsr #0x10
+ mov r0, #0x0
+ beq _020B0998
+ mov r1, #0xc0
+_020B0980:
+ add r0, r0, #0x1
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ cmp r0, r2
+ strh r1, [r3], #0x8
+ blo _020B0980
+_020B0998:
+ ldrh r0, [r5, #0x4]
+ strh r0, [r5, #0x8]
+ ldrh r0, [r5, #0xa]
+ strh r0, [r5, #0xe]
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B09AC: .word UNK_021CCDA0
+_020B09B0: .word GXi_DmaId
+
+ arm_func_start FUN_020B09B4
+FUN_020B09B4: ; 0x020B09B4
+ stmdb sp!, {r4-r10,lr}
+ mov r7, r0
+ ldr r0, [r7, #0x14]
+ cmp r0, #0x0
+ beq _020B0A48
+ ldr r5, [r7, #0x0]
+ ldr r1, _020B0BA8 ; =UNK_021CCDA0
+ mov r0, #0x540
+ mla r1, r5, r0, r1
+ ldrh r2, [r7, #0x4]
+ ldrh r0, [r7, #0x6]
+ add r1, r1, #0x100
+ add r4, r1, r2, lsl #0x3
+ sub r0, r0, r2
+ add r0, r0, #0x1
+ mov r0, r0, lsl #0x13
+ mov r6, r0, lsr #0x10
+ mov r2, r2, lsl #0x13
+ mov r0, r4
+ mov r1, r6
+ mov r7, r2, lsr #0x10
+ bl DC_FlushRange
+ cmp r5, #0x0
+ beq _020B0A20
+ cmp r5, #0x1
+ beq _020B0A34
+ ldmia sp!, {r4-r10,pc}
+_020B0A20:
+ mov r0, r4
+ mov r1, r7
+ mov r2, r6
+ bl GX_LoadOAM
+ ldmia sp!, {r4-r10,pc}
+_020B0A34:
+ mov r0, r4
+ mov r1, r7
+ mov r2, r6
+ bl GXS_LoadOAM
+ ldmia sp!, {r4-r10,pc}
+_020B0A48:
+ ldr r0, [r7, #0x0]
+ ldr r2, _020B0BA8 ; =UNK_021CCDA0
+ mov r1, #0x540
+ mla r2, r0, r1, r2
+ ldrh r5, [r7, #0x4]
+ ldrh r1, [r7, #0x6]
+ ldr r3, _020B0BAC ; =UNK_0210655C
+ add r4, r2, #0x100
+ sub r1, r1, r5
+ add r1, r1, #0x1
+ mov r1, r1, lsl #0x10
+ mov r2, r5, lsl #0x13
+ add r6, r4, r5, lsl #0x3
+ movs r5, r1, lsr #0x10
+ mov r4, r2, lsr #0x10
+ ldr r9, [r3, r0, lsl #0x2]
+ mov r10, #0x0
+ beq _020B0AC8
+ mov r8, #0x6
+_020B0A94:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r8
+ blx r9
+ add r0, r10, #0x1
+ add r2, r4, #0x8
+ mov r1, r0, lsl #0x10
+ mov r0, r2, lsl #0x10
+ mov r10, r1, lsr #0x10
+ cmp r10, r5
+ mov r4, r0, lsr #0x10
+ add r6, r6, #0x8
+ blo _020B0A94
+_020B0AC8:
+ ldrh r2, [r7, #0xc]
+ ldrh r1, [r7, #0xe]
+ mov r3, #0x0
+ add r0, r2, #0x1
+ cmp r1, r0
+ bgt _020B0AEC
+ ldrh r0, [r7, #0xa]
+ cmp r0, r2
+ movls r3, #0x1
+_020B0AEC:
+ cmp r3, #0x0
+ ldmeqia sp!, {r4-r10,pc}
+ ldr r0, [r7, #0x0]
+ ldr r2, _020B0BA8 ; =UNK_021CCDA0
+ mov r1, #0x540
+ mla r2, r0, r1, r2
+ ldrh r5, [r7, #0xa]
+ add r4, r2, #0x100
+ ldrh r1, [r7, #0xc]
+ mov r2, r5, lsl #0x15
+ ldr r3, _020B0BAC ; =UNK_0210655C
+ sub r1, r1, r5
+ add r1, r1, #0x1
+ mov r1, r1, lsl #0x10
+ add r9, r4, r5, lsl #0x5
+ ldr r5, [r3, r0, lsl #0x2]
+ movs r8, r1, lsr #0x10
+ mov r7, r2, lsr #0x10
+ mov r6, #0x0
+ ldmeqia sp!, {r4-r10,pc}
+ mov r4, #0x2
+_020B0B40:
+ mov r2, r4
+ add r0, r9, #0x6
+ add r1, r7, #0x6
+ blx r5
+ mov r2, r4
+ add r0, r9, #0xe
+ add r1, r7, #0xe
+ blx r5
+ mov r2, r4
+ add r0, r9, #0x16
+ add r1, r7, #0x16
+ blx r5
+ add r0, r9, #0x1e
+ add r1, r7, #0x1e
+ mov r2, r4
+ blx r5
+ add r0, r7, #0x20
+ mov r0, r0, lsl #0x10
+ mov r7, r0, lsr #0x10
+ add r9, r9, #0x20
+ add r0, r6, #0x1
+ mov r0, r0, lsl #0x10
+ mov r6, r0, lsr #0x10
+ cmp r6, r8
+ blo _020B0B40
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020B0BA8: .word UNK_021CCDA0
+_020B0BAC: .word UNK_0210655C
+
+ arm_func_start FUN_020B0BB0
+FUN_020B0BB0: ; 0x020B0BB0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrh r12, [r0, #0xc]
+ ldrh r3, [r0, #0xe]
+ mov lr, #0x0
+ add r2, r12, #0x1
+ cmp r3, r2
+ bgt _020B0BDC
+ ldrh r2, [r0, #0xa]
+ cmp r2, r12
+ movls lr, #0x1
+_020B0BDC:
+ cmp lr, #0x0
+ subne r2, r12, r3
+ addne r2, r2, #0x1
+ movne r2, r2, lsl #0x10
+ movne r2, r2, lsr #0x10
+ moveq r2, #0x0
+ cmp r2, #0x1
+ movcs r2, #0x1
+ movcc r2, #0x0
+ cmp r2, #0x0
+ addeq sp, sp, #0x4
+ ldreq r0, _020B0C74 ; =0x0000FFFE
+ ldmeqia sp!, {pc}
+ ldr lr, [r0, #0x0]
+ ldr r3, _020B0C78 ; =UNK_021CCDA0
+ mov r2, #0x540
+ mla r12, lr, r2, r3
+ ldr r3, [r1, #0x0]
+ ldrh r2, [r0, #0xe]
+ add r12, r12, #0x100
+ mov r3, r3, asr #0x4
+ add r12, r12, r2, lsl #0x5
+ strh r3, [r12, #0x6]
+ ldr r3, [r1, #0x4]
+ mov r3, r3, asr #0x4
+ strh r3, [r12, #0xe]
+ ldr r3, [r1, #0x8]
+ mov r3, r3, asr #0x4
+ strh r3, [r12, #0x16]
+ ldr r1, [r1, #0xc]
+ mov r1, r1, asr #0x4
+ strh r1, [r12, #0x1e]
+ ldrh r1, [r0, #0xe]
+ add r1, r1, #0x1
+ strh r1, [r0, #0xe]
+ mov r0, r2
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020B0C74: .word 0x0000FFFE
+_020B0C78: .word UNK_021CCDA0
+
+ arm_func_start FUN_020B0C7C
+FUN_020B0C7C: ; 0x020B0C7C
+ stmdb sp!, {r4,lr}
+ ldrh r12, [r0, #0x6]
+ ldrh r4, [r0, #0x8]
+ mov lr, #0x0
+ add r3, r12, #0x1
+ cmp r4, r3
+ bgt _020B0CA4
+ ldrh r3, [r0, #0x4]
+ cmp r3, r12
+ movls lr, #0x1
+_020B0CA4:
+ cmp lr, #0x0
+ subne r3, r12, r4
+ addne r3, r3, #0x1
+ movne r3, r3, lsl #0x10
+ movne r3, r3, lsr #0x10
+ moveq r3, #0x0
+ cmp r3, #0x1
+ movcs r3, #0x1
+ movcc r3, #0x0
+ cmp r3, #0x0
+ beq _020B0D48
+ ldr r4, [r0, #0x0]
+ ldr ip, _020B0D50 ; =UNK_021CCDA0
+ mov r3, #0x540
+ mla r12, r4, r3, r12
+ ldrh r3, [r0, #0x8]
+ add r4, r12, #0x100
+ ldrh r12, [r1, #0x0]
+ mov lr, r3, lsl #0x3
+ add r3, r4, r3, lsl #0x3
+ strh r12, [r4, lr]
+ ldrh lr, [r1, #0x2]
+ ldr ip, _020B0D54 ; =0x0000FFFE
+ strh lr, [r3, #0x2]
+ ldrh r1, [r1, #0x4]
+ cmp r2, r12
+ strh r1, [r3, #0x4]
+ beq _020B0D34
+ ldr r1, [r3, #0x0]
+ mov r12, r1, lsl #0x16
+ mov r12, r12, lsr #0x1e
+ ands r12, r12, #0x1
+ bicne r12, r1, #0x3e000000
+ andne r1, r2, #0x1f
+ orrne r1, r12, r1, lsl #0x19
+ strne r1, [r3, #0x0]
+_020B0D34:
+ ldrh r1, [r0, #0x8]
+ add r1, r1, #0x1
+ strh r1, [r0, #0x8]
+ mov r0, #0x1
+ ldmia sp!, {r4,pc}
+_020B0D48:
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020B0D50: .word UNK_021CCDA0
+_020B0D54: .word 0x0000FFFE
+
+ arm_func_start FUN_020B0D58
+FUN_020B0D58: ; 0x020B0D58
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldrh lr, [r0, #0x6]
+ ldrh r12, [r0, #0x8]
+ mov r4, #0x0
+ add r3, lr, #0x1
+ cmp r12, r3
+ bgt _020B0D84
+ ldrh r3, [r0, #0x4]
+ cmp r3, lr
+ movls r4, #0x1
+_020B0D84:
+ cmp r4, #0x0
+ subne r3, lr, r12
+ addne r3, r3, #0x1
+ movne r3, r3, lsl #0x10
+ movne r3, r3, lsr #0x10
+ moveq r3, #0x0
+ cmp r3, r2
+ movcs r3, #0x1
+ movcc r3, #0x0
+ cmp r3, #0x0
+ beq _020B0E24
+ ldr lr, [r0, #0x0]
+ ldr ip, _020B0E30 ; =UNK_021CCDA0
+ mov r3, #0x540
+ mla r12, lr, r3, r12
+ ldrh r3, [r0, #0x8]
+ add r12, r12, #0x100
+ cmp r2, #0x0
+ add r4, r12, r3, lsl #0x3
+ mov r5, #0x0
+ ble _020B0E18
+ add r3, r0, #0x8
+_020B0DDC:
+ ldrh lr, [r1, #0x0]
+ mov r0, r5, lsl #0x3
+ add r12, r4, r5, lsl #0x3
+ strh lr, [r4, r0]
+ ldrh r0, [r1, #0x2]
+ add r5, r5, #0x1
+ cmp r5, r2
+ strh r0, [r12, #0x2]
+ ldrh r0, [r1, #0x4]
+ add r1, r1, #0x8
+ strh r0, [r12, #0x4]
+ ldrh r0, [r3, #0x0]
+ add r0, r0, #0x1
+ strh r0, [r3, #0x0]
+ blt _020B0DDC
+_020B0E18:
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r5,pc}
+_020B0E24:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B0E30: .word UNK_021CCDA0
+
+ arm_func_start FUN_020B0E34
+FUN_020B0E34: ; 0x020B0E34
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r5, [sp, #0x1c]
+ ldr r6, _020B0FB4 ; =UNK_021CCDA0
+ mov r4, #0x540
+ mla r4, r5, r4, r6
+ mov lr, r1
+ sub r1, r2, #0x1
+ add r1, lr, r1
+ mov r1, r1, lsl #0x10
+ mov r12, r1, lsr #0x10
+ add r7, r4, lr, lsl #0x1
+ add r2, r4, r12, lsl #0x1
+ mov r6, r0
+ mov r5, r3
+ cmp r7, r2
+ mov r3, lr, lsl #0x1
+ bhi _020B0E9C
+ ldr r0, _020B0FB8 ; =0x0000FFFF
+_020B0E80:
+ ldrh r1, [r7, #0x0]
+ cmp r1, r0
+ movne r0, #0x0
+ bne _020B0EA0
+ add r7, r7, #0x2
+ cmp r7, r2
+ bls _020B0E80
+_020B0E9C:
+ mov r0, #0x1
+_020B0EA0:
+ cmp r0, #0x0
+ beq _020B0EE0
+ ldr r0, _020B0FBC ; =UNK_021CCD9C
+ sub r2, r12, lr
+ ldrh r7, [r0, #0x0]
+ add r1, r4, r3
+ mov r2, r2, lsl #0x1
+ add r3, r7, #0x1
+ strh r3, [r0, #0x0]
+ strh r7, [r6, #0x10]
+ strh lr, [r6, #0x4]
+ strh r12, [r6, #0x6]
+ strh lr, [r6, #0x8]
+ ldrh r0, [r6, #0x10]
+ bl MIi_CpuClear16
+ b _020B0EEC
+_020B0EE0:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_020B0EEC:
+ ldrh r0, [sp, #0x18]
+ add r4, r4, #0x500
+ cmp r0, #0x0
+ bne _020B0F18
+ mov r0, #0x20
+ strh r0, [r6, #0xa]
+ mov r0, #0x0
+ strh r0, [r6, #0xc]
+ ldrh r0, [r6, #0xa]
+ strh r0, [r6, #0xe]
+ b _020B0F98
+_020B0F18:
+ sub r0, r0, #0x1
+ add r0, r5, r0
+ mov r0, r0, lsl #0x10
+ mov r12, r0, lsr #0x10
+ add r7, r4, r5, lsl #0x1
+ add r2, r4, r12, lsl #0x1
+ cmp r7, r2
+ mov r3, r5, lsl #0x1
+ bhi _020B0F5C
+ ldr r0, _020B0FB8 ; =0x0000FFFF
+_020B0F40:
+ ldrh r1, [r7, #0x0]
+ cmp r1, r0
+ movne r0, #0x0
+ bne _020B0F60
+ add r7, r7, #0x2
+ cmp r7, r2
+ bls _020B0F40
+_020B0F5C:
+ mov r0, #0x1
+_020B0F60:
+ cmp r0, #0x0
+ beq _020B0F8C
+ strh r5, [r6, #0xa]
+ strh r12, [r6, #0xc]
+ strh r5, [r6, #0xe]
+ ldrh r0, [r6, #0x10]
+ sub r2, r12, r5
+ add r1, r4, r3
+ mov r2, r2, lsl #0x1
+ bl MIi_CpuClear16
+ b _020B0F98
+_020B0F8C:
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r7,pc}
+_020B0F98:
+ mov r1, #0x0
+ ldr r0, [sp, #0x1c]
+ str r1, [r6, #0x14]
+ str r0, [r6, #0x0]
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B0FB4: .word UNK_021CCDA0
+_020B0FB8: .word 0x0000FFFF
+_020B0FBC: .word UNK_021CCD9C
+
+ arm_func_start FUN_020B0FC0
+FUN_020B0FC0: ; 0x020B0FC0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020B1060 ; =UNK_021CCEA0
+ mov r0, #0xc0
+ mov r2, #0x400
+ bl MIi_CpuClear16
+ ldr r1, _020B1064 ; =UNK_021CD3E0
+ mov r0, #0xc0
+ mov r2, #0x400
+ bl MIi_CpuClear16
+ ldr r1, _020B1068 ; =UNK_021CD920
+ mov r0, #0xc0
+ mov r2, #0x400
+ bl MIi_CpuClear16
+ ldr r0, _020B106C ; =0x0000FFFF
+ ldr r1, _020B1070 ; =UNK_021CCDA0
+ mov r2, #0x100
+ bl MIi_CpuClear16
+ ldr r0, _020B106C ; =0x0000FFFF
+ ldr r1, _020B1074 ; =UNK_021CD2E0
+ mov r2, #0x100
+ bl MIi_CpuClear16
+ ldr r0, _020B106C ; =0x0000FFFF
+ ldr r1, _020B1078 ; =UNK_021CD820
+ mov r2, #0x100
+ bl MIi_CpuClear16
+ ldr r0, _020B106C ; =0x0000FFFF
+ ldr r1, _020B107C ; =UNK_021CD2A0
+ mov r2, #0x40
+ bl MIi_CpuClear16
+ ldr r0, _020B106C ; =0x0000FFFF
+ ldr r1, _020B1080 ; =UNK_021CD7E0
+ mov r2, #0x40
+ bl MIi_CpuClear16
+ ldr r0, _020B106C ; =0x0000FFFF
+ ldr r1, _020B1084 ; =UNK_021CDD20
+ mov r2, #0x40
+ bl MIi_CpuClear16
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020B1060: .word UNK_021CCEA0
+_020B1064: .word UNK_021CD3E0
+_020B1068: .word UNK_021CD920
+_020B106C: .word 0x0000FFFF
+_020B1070: .word UNK_021CCDA0
+_020B1074: .word UNK_021CD2E0
+_020B1078: .word UNK_021CD820
+_020B107C: .word UNK_021CD2A0
+_020B1080: .word UNK_021CD7E0
+_020B1084: .word UNK_021CDD20
+
+ arm_func_start FUN_020B1088
+FUN_020B1088: ; 0x020B1088
+ ldr ip, _020B1094 ; =MIi_CpuCopy16
+ add r1, r1, #0x7000000
+ bx r12
+ .balign 4
+_020B1094: .word MIi_CpuCopy16
+
+ arm_func_start FUN_020B1098
+FUN_020B1098: ; 0x020B1098
+ ldr r3, _020B10A8 ; =0x07000400
+ ldr ip, _020B10AC ; =MIi_CpuCopy16
+ add r1, r1, r3
+ bx r12
+ .balign 4
+_020B10A8: .word 0x07000400
+_020B10AC: .word MIi_CpuCopy16
+
+ arm_func_start FUN_020B10B0
+FUN_020B10B0: ; 0x020B10B0
+ mov r1, r1, lsl #0x1
+ ldrh r0, [r0, r1]
+ bx lr
+
+ arm_func_start FUN_020B10BC
+FUN_020B10BC: ; 0x020B10BC
+ ldr r0, [r0, r1, lsl #0x2]
+ bx lr
+
+ arm_func_start FUN_020B10C4
+FUN_020B10C4:
+ str r2, [r0, r1, lsl #0x2]
+ bx lr
+
+ arm_func_start FUN_020B10CC
+FUN_020B10CC:
+ mov r2, #0x0
+ mvn r1, #0x0
+_020B10D4:
+ str r1, [r0, r2, lsl #0x2]
+ add r2, r2, #0x1
+ cmp r2, #0x3
+ blt _020B10D4
+ bx lr
+
+ arm_func_start FUN_020B10E8
+FUN_020B10E8: ; 0x020B10E8
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r10, r0
+ ldr r0, [r10, #0x0]
+ mov r9, r1
+ cmp r0, #0x3
+ ldr r0, [sp, #0x28]
+ moveq r7, #0x20
+ str r0, [sp, #0x28]
+ ldrh r0, [r9, #0x0]
+ movne r7, #0x200
+ mov r11, r2
+ mov r8, r3
+ str r0, [sp, #0x0]
+ mov r6, #0x0
+ cmp r0, #0x0
+ bls _020B1210
+_020B112C:
+ ldr r1, [r9, #0x4]
+ mov r0, r6, lsl #0x1
+ ldrh r2, [r1, r0]
+ ldr r0, [r10, #0xc]
+ ldr r1, [r10, #0x8]
+ mla r5, r7, r2, r11
+ mla r4, r7, r6, r0
+ bl DC_FlushRange
+ cmp r8, #0x0
+ beq _020B11E0
+ cmp r8, #0x1
+ beq _020B1168
+ cmp r8, #0x2
+ beq _020B11A4
+ b _020B11F8
+_020B1168:
+ ldr r0, [r10, #0x4]
+ cmp r0, #0x0
+ beq _020B1190
+ bl GX_BeginLoadOBJExtPltt
+ mov r0, r4
+ mov r1, r5
+ mov r2, r7
+ bl GX_LoadOBJExtPltt
+ bl GX_EndLoadOBJExtPltt
+ b _020B11F8
+_020B1190:
+ mov r0, r4
+ mov r1, r5
+ mov r2, r7
+ bl GX_LoadOBJPltt
+ b _020B11F8
+_020B11A4:
+ ldr r0, [r10, #0x4]
+ cmp r0, #0x0
+ beq _020B11CC
+ bl GXS_BeginLoadOBJExtPltt
+ mov r0, r4
+ mov r1, r5
+ mov r2, r7
+ bl GXS_LoadOBJExtPltt
+ bl GXS_EndLoadOBJExtPltt
+ b _020B11F8
+_020B11CC:
+ mov r0, r4
+ mov r1, r5
+ mov r2, r7
+ bl GXS_LoadOBJPltt
+ b _020B11F8
+_020B11E0:
+ bl GX_BeginLoadTexPltt
+ mov r0, r4
+ mov r1, r5
+ mov r2, r7
+ bl GX_LoadTexPltt
+ bl GX_EndLoadTexPltt
+_020B11F8:
+ add r0, r6, #0x1
+ mov r0, r0, lsl #0x10
+ mov r6, r0, lsr #0x10
+ ldr r0, [sp, #0x0]
+ cmp r6, r0
+ blo _020B112C
+_020B1210:
+ ldr r0, [sp, #0x28]
+ ldr r2, [r10, #0x0]
+ mov r1, r0
+ str r2, [r1, #0x0]
+ ldr r4, [r10, #0x4]
+ mov r3, r0
+ mov r1, r8
+ mov r2, r11
+ str r4, [r3, #0x4]
+ bl FUN_020B19D0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B1240
+FUN_020B1240: ; 0x020B1240
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r9, r0
+ ldr r5, [r9, #0xc]
+ ldr r4, [r9, #0x8]
+ mov r8, r1
+ mov r7, r2
+ mov r0, r5
+ mov r1, r4
+ mov r6, r3
+ bl DC_FlushRange
+ cmp r7, #0x0
+ beq _020B1300
+ cmp r7, #0x1
+ beq _020B1288
+ cmp r7, #0x2
+ beq _020B12C4
+ b _020B1318
+_020B1288:
+ ldr r0, [r9, #0x4]
+ cmp r0, #0x0
+ beq _020B12B0
+ bl GX_BeginLoadOBJExtPltt
+ mov r0, r5
+ mov r1, r8
+ mov r2, r4
+ bl GX_LoadOBJExtPltt
+ bl GX_EndLoadOBJExtPltt
+ b _020B1318
+_020B12B0:
+ mov r0, r5
+ mov r1, r8
+ mov r2, r4
+ bl GX_LoadOBJPltt
+ b _020B1318
+_020B12C4:
+ ldr r0, [r9, #0x4]
+ cmp r0, #0x0
+ beq _020B12EC
+ bl GXS_BeginLoadOBJExtPltt
+ mov r0, r5
+ mov r1, r8
+ mov r2, r4
+ bl GXS_LoadOBJExtPltt
+ bl GXS_EndLoadOBJExtPltt
+ b _020B1318
+_020B12EC:
+ mov r0, r5
+ mov r1, r8
+ mov r2, r4
+ bl GXS_LoadOBJPltt
+ b _020B1318
+_020B1300:
+ bl GX_BeginLoadTexPltt
+ mov r0, r5
+ mov r1, r8
+ mov r2, r4
+ bl GX_LoadTexPltt
+ bl GX_EndLoadTexPltt
+_020B1318:
+ ldr r1, [r9, #0x0]
+ mov r0, r6
+ str r1, [r6, #0x0]
+ ldr r3, [r9, #0x4]
+ mov r1, r7
+ mov r2, r8
+ str r3, [r6, #0x4]
+ bl FUN_020B19D0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+
+ arm_func_start FUN_020B1340
+FUN_020B1340: ; 0x020B1340
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ ldr r0, [r7, #0x14]
+ ldr r1, [r7, #0x10]
+ mov r5, r2
+ mov r4, r3
+ bl DC_FlushRange
+ cmp r5, #0x0
+ ldr r0, [r7, #0x8]
+ beq _020B13B8
+ cmp r5, #0x1
+ beq _020B1384
+ cmp r5, #0x2
+ beq _020B13A0
+ b _020B13B8
+_020B1384:
+ mov r3, #0x4000000
+ ldr r2, [r3, #0x0]
+ ldr r1, _020B1520 ; =0xFFCFFFEF
+ and r1, r2, r1
+ orr r0, r1, r0
+ str r0, [r3, #0x0]
+ b _020B13B8
+_020B13A0:
+ ldr r3, _020B1524 ; =0x04001000
+ ldr r1, _020B1520 ; =0xFFCFFFEF
+ ldr r2, [r3, #0x0]
+ and r1, r2, r1
+ orr r0, r1, r0
+ str r0, [r3, #0x0]
+_020B13B8:
+ ldr r0, [r7, #0x8]
+ cmp r0, #0x0
+ bne _020B14D8
+ ldrh r0, [r7, #0x2]
+ cmp r0, #0x10
+ bgt _020B1408
+ cmp r0, #0x10
+ bge _020B1434
+ cmp r0, #0x8
+ addls pc, pc, r0, lsl #0x2
+ b _020B1444
+_020B13E4:
+ b _020B1444
+_020B13E8:
+ b _020B1414
+_020B13EC:
+ b _020B141C
+_020B13F0:
+ b _020B1444
+_020B13F4:
+ b _020B1424
+_020B13F8:
+ b _020B1444
+_020B13FC:
+ b _020B1444
+_020B1400:
+ b _020B1444
+_020B1404:
+ b _020B142C
+_020B1408:
+ cmp r0, #0x20
+ beq _020B143C
+ b _020B1444
+_020B1414:
+ mov r0, #0x0
+ b _020B1448
+_020B141C:
+ mov r0, #0x1
+ b _020B1448
+_020B1424:
+ mov r0, #0x2
+ b _020B1448
+_020B142C:
+ mov r0, #0x3
+ b _020B1448
+_020B1434:
+ mov r0, #0x4
+ b _020B1448
+_020B143C:
+ mov r0, #0x5
+ b _020B1448
+_020B1444:
+ mov r0, #0x0
+_020B1448:
+ str r0, [r4, #0xc]
+ ldrh r0, [r7, #0x0]
+ cmp r0, #0x10
+ bgt _020B1490
+ cmp r0, #0x10
+ bge _020B14BC
+ cmp r0, #0x8
+ addls pc, pc, r0, lsl #0x2
+ b _020B14CC
+_020B146C:
+ b _020B14CC
+_020B1470:
+ b _020B149C
+_020B1474:
+ b _020B14A4
+_020B1478:
+ b _020B14CC
+_020B147C:
+ b _020B14AC
+_020B1480:
+ b _020B14CC
+_020B1484:
+ b _020B14CC
+_020B1488:
+ b _020B14CC
+_020B148C:
+ b _020B14B4
+_020B1490:
+ cmp r0, #0x20
+ beq _020B14C4
+ b _020B14CC
+_020B149C:
+ mov r0, #0x0
+ b _020B14D0
+_020B14A4:
+ mov r0, #0x1
+ b _020B14D0
+_020B14AC:
+ mov r0, #0x2
+ b _020B14D0
+_020B14B4:
+ mov r0, #0x3
+ b _020B14D0
+_020B14BC:
+ mov r0, #0x4
+ b _020B14D0
+_020B14C4:
+ mov r0, #0x5
+ b _020B14D0
+_020B14CC:
+ mov r0, #0x0
+_020B14D0:
+ str r0, [r4, #0x10]
+ b _020B14E8
+_020B14D8:
+ ldrh r0, [r7, #0x2]
+ str r0, [r4, #0xc]
+ ldrh r0, [r7, #0x0]
+ str r0, [r4, #0x10]
+_020B14E8:
+ ldr r1, [r7, #0x4]
+ mov r0, #0x0
+ str r1, [r4, #0x14]
+ str r0, [r4, #0x18]
+ mov r0, #0x1
+ str r0, [r4, #0x1c]
+ ldr r3, [r7, #0x8]
+ mov r0, r4
+ mov r1, r5
+ mov r2, r6
+ str r3, [r4, #0x20]
+ bl FUN_020B1A1C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B1520: .word 0xFFCFFFEF
+_020B1524: .word 0x04001000
+
+ arm_func_start FUN_020B1528
+FUN_020B1528: ; 0x020B1528
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ movs r5, r2
+ mov r6, r1
+ mov r4, r3
+ ldr r0, [r7, #0x8]
+ beq _020B1590
+ cmp r5, #0x1
+ beq _020B155C
+ cmp r5, #0x2
+ beq _020B1578
+ b _020B1590
+_020B155C:
+ mov r3, #0x4000000
+ ldr r2, [r3, #0x0]
+ ldr r1, _020B1760 ; =0xFFCFFFEF
+ and r1, r2, r1
+ orr r0, r1, r0
+ str r0, [r3, #0x0]
+ b _020B1590
+_020B1578:
+ ldr r3, _020B1764 ; =0x04001000
+ ldr r1, _020B1760 ; =0xFFCFFFEF
+ ldr r2, [r3, #0x0]
+ and r1, r2, r1
+ orr r0, r1, r0
+ str r0, [r3, #0x0]
+_020B1590:
+ ldr r0, [r7, #0x14]
+ ldr r1, [r7, #0x10]
+ bl DC_FlushRange
+ cmp r5, #0x0
+ beq _020B15B8
+ cmp r5, #0x1
+ beq _020B15D4
+ cmp r5, #0x2
+ beq _020B15E8
+ b _020B15F8
+_020B15B8:
+ bl GX_BeginLoadTex
+ ldr r0, [r7, #0x14]
+ ldr r2, [r7, #0x10]
+ mov r1, r6
+ bl GX_LoadTex
+ bl GX_EndLoadTex
+ b _020B15F8
+_020B15D4:
+ ldr r0, [r7, #0x14]
+ ldr r2, [r7, #0x10]
+ mov r1, r6
+ bl GX_LoadOBJ
+ b _020B15F8
+_020B15E8:
+ ldr r0, [r7, #0x14]
+ ldr r2, [r7, #0x10]
+ mov r1, r6
+ bl GXS_LoadOBJ
+_020B15F8:
+ ldr r0, [r7, #0x8]
+ cmp r0, #0x0
+ bne _020B1718
+ ldrh r0, [r7, #0x2]
+ cmp r0, #0x10
+ bgt _020B1648
+ cmp r0, #0x10
+ bge _020B1674
+ cmp r0, #0x8
+ addls pc, pc, r0, lsl #0x2
+ b _020B1684
+_020B1624:
+ b _020B1684
+_020B1628:
+ b _020B1654
+_020B162C:
+ b _020B165C
+_020B1630:
+ b _020B1684
+_020B1634:
+ b _020B1664
+_020B1638:
+ b _020B1684
+_020B163C:
+ b _020B1684
+_020B1640:
+ b _020B1684
+_020B1644:
+ b _020B166C
+_020B1648:
+ cmp r0, #0x20
+ beq _020B167C
+ b _020B1684
+_020B1654:
+ mov r0, #0x0
+ b _020B1688
+_020B165C:
+ mov r0, #0x1
+ b _020B1688
+_020B1664:
+ mov r0, #0x2
+ b _020B1688
+_020B166C:
+ mov r0, #0x3
+ b _020B1688
+_020B1674:
+ mov r0, #0x4
+ b _020B1688
+_020B167C:
+ mov r0, #0x5
+ b _020B1688
+_020B1684:
+ mov r0, #0x0
+_020B1688:
+ str r0, [r4, #0xc]
+ ldrh r0, [r7, #0x0]
+ cmp r0, #0x10
+ bgt _020B16D0
+ cmp r0, #0x10
+ bge _020B16FC
+ cmp r0, #0x8
+ addls pc, pc, r0, lsl #0x2
+ b _020B170C
+_020B16AC:
+ b _020B170C
+_020B16B0:
+ b _020B16DC
+_020B16B4:
+ b _020B16E4
+_020B16B8:
+ b _020B170C
+_020B16BC:
+ b _020B16EC
+_020B16C0:
+ b _020B170C
+_020B16C4:
+ b _020B170C
+_020B16C8:
+ b _020B170C
+_020B16CC:
+ b _020B16F4
+_020B16D0:
+ cmp r0, #0x20
+ beq _020B1704
+ b _020B170C
+_020B16DC:
+ mov r0, #0x0
+ b _020B1710
+_020B16E4:
+ mov r0, #0x1
+ b _020B1710
+_020B16EC:
+ mov r0, #0x2
+ b _020B1710
+_020B16F4:
+ mov r0, #0x3
+ b _020B1710
+_020B16FC:
+ mov r0, #0x4
+ b _020B1710
+_020B1704:
+ mov r0, #0x5
+ b _020B1710
+_020B170C:
+ mov r0, #0x0
+_020B1710:
+ str r0, [r4, #0x10]
+ b _020B1728
+_020B1718:
+ ldrh r0, [r7, #0x2]
+ str r0, [r4, #0xc]
+ ldrh r0, [r7, #0x0]
+ str r0, [r4, #0x10]
+_020B1728:
+ ldr r1, [r7, #0x4]
+ mov r0, #0x0
+ str r1, [r4, #0x14]
+ str r0, [r4, #0x18]
+ mov r0, #0x1
+ str r0, [r4, #0x1c]
+ ldr r3, [r7, #0x8]
+ mov r0, r4
+ mov r1, r5
+ mov r2, r6
+ str r3, [r4, #0x20]
+ bl FUN_020B1A1C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B1760: .word 0xFFCFFFEF
+_020B1764: .word 0x04001000
+
+ arm_func_start FUN_020B1768
+FUN_020B1768: ; 0x020B1768
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ movs r5, r2
+ mov r6, r1
+ mov r4, r3
+ ldr r0, [r7, #0x8]
+ beq _020B17D0
+ cmp r5, #0x1
+ beq _020B179C
+ cmp r5, #0x2
+ beq _020B17B8
+ b _020B17D0
+_020B179C:
+ mov r3, #0x4000000
+ ldr r2, [r3, #0x0]
+ ldr r1, _020B19A0 ; =0xFFCFFFEF
+ and r1, r2, r1
+ orr r0, r1, r0
+ str r0, [r3, #0x0]
+ b _020B17D0
+_020B17B8:
+ ldr r3, _020B19A4 ; =0x04001000
+ ldr r1, _020B19A0 ; =0xFFCFFFEF
+ ldr r2, [r3, #0x0]
+ and r1, r2, r1
+ orr r0, r1, r0
+ str r0, [r3, #0x0]
+_020B17D0:
+ ldr r0, [r7, #0x14]
+ ldr r1, [r7, #0x10]
+ bl DC_FlushRange
+ cmp r5, #0x0
+ beq _020B17F8
+ cmp r5, #0x1
+ beq _020B1814
+ cmp r5, #0x2
+ beq _020B1828
+ b _020B1838
+_020B17F8:
+ bl GX_BeginLoadTex
+ ldr r0, [r7, #0x14]
+ ldr r2, [r7, #0x10]
+ mov r1, r6
+ bl GX_LoadTex
+ bl GX_EndLoadTex
+ b _020B1838
+_020B1814:
+ ldr r0, [r7, #0x14]
+ ldr r2, [r7, #0x10]
+ mov r1, r6
+ bl GX_LoadOBJ
+ b _020B1838
+_020B1828:
+ ldr r0, [r7, #0x14]
+ ldr r2, [r7, #0x10]
+ mov r1, r6
+ bl GXS_LoadOBJ
+_020B1838:
+ ldr r0, [r7, #0x8]
+ cmp r0, #0x0
+ bne _020B1958
+ ldrh r0, [r7, #0x2]
+ cmp r0, #0x10
+ bgt _020B1888
+ cmp r0, #0x10
+ bge _020B18B4
+ cmp r0, #0x8
+ addls pc, pc, r0, lsl #0x2
+ b _020B18C4
+_020B1864:
+ b _020B18C4
+_020B1868:
+ b _020B1894
+_020B186C:
+ b _020B189C
+_020B1870:
+ b _020B18C4
+_020B1874:
+ b _020B18A4
+_020B1878:
+ b _020B18C4
+_020B187C:
+ b _020B18C4
+_020B1880:
+ b _020B18C4
+_020B1884:
+ b _020B18AC
+_020B1888:
+ cmp r0, #0x20
+ beq _020B18BC
+ b _020B18C4
+_020B1894:
+ mov r0, #0x0
+ b _020B18C8
+_020B189C:
+ mov r0, #0x1
+ b _020B18C8
+_020B18A4:
+ mov r0, #0x2
+ b _020B18C8
+_020B18AC:
+ mov r0, #0x3
+ b _020B18C8
+_020B18B4:
+ mov r0, #0x4
+ b _020B18C8
+_020B18BC:
+ mov r0, #0x5
+ b _020B18C8
+_020B18C4:
+ mov r0, #0x0
+_020B18C8:
+ str r0, [r4, #0xc]
+ ldrh r0, [r7, #0x0]
+ cmp r0, #0x10
+ bgt _020B1910
+ cmp r0, #0x10
+ bge _020B193C
+ cmp r0, #0x8
+ addls pc, pc, r0, lsl #0x2
+ b _020B194C
+_020B18EC:
+ b _020B194C
+_020B18F0:
+ b _020B191C
+_020B18F4:
+ b _020B1924
+_020B18F8:
+ b _020B194C
+_020B18FC:
+ b _020B192C
+_020B1900:
+ b _020B194C
+_020B1904:
+ b _020B194C
+_020B1908:
+ b _020B194C
+_020B190C:
+ b _020B1934
+_020B1910:
+ cmp r0, #0x20
+ beq _020B1944
+ b _020B194C
+_020B191C:
+ mov r0, #0x0
+ b _020B1950
+_020B1924:
+ mov r0, #0x1
+ b _020B1950
+_020B192C:
+ mov r0, #0x2
+ b _020B1950
+_020B1934:
+ mov r0, #0x3
+ b _020B1950
+_020B193C:
+ mov r0, #0x4
+ b _020B1950
+_020B1944:
+ mov r0, #0x5
+ b _020B1950
+_020B194C:
+ mov r0, #0x0
+_020B1950:
+ str r0, [r4, #0x10]
+ b _020B1968
+_020B1958:
+ ldrh r0, [r7, #0x2]
+ str r0, [r4, #0xc]
+ ldrh r0, [r7, #0x0]
+ str r0, [r4, #0x10]
+_020B1968:
+ ldr r1, [r7, #0x4]
+ mov r0, #0x0
+ str r1, [r4, #0x14]
+ str r0, [r4, #0x18]
+ mov r0, #0x1
+ str r0, [r4, #0x1c]
+ ldr r3, [r7, #0x8]
+ mov r0, r4
+ mov r1, r5
+ mov r2, r6
+ str r3, [r4, #0x20]
+ bl FUN_020B1A1C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B19A0: .word 0xFFCFFFEF
+_020B19A4: .word 0x04001000
+
+ arm_func_start FUN_020B19A8
+FUN_020B19A8:
+ add r0, r0, r1, lsl #0x2
+ ldr r1, [r0, #0x8]
+ mvn r0, #0x0
+ cmp r1, r0
+ movne r0, #0x1
+ moveq r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020B19C4
+FUN_020B19C4: ; 0x020B19C4
+ add r0, r0, r1, lsl #0x2
+ ldr r0, [r0, #0x8]
+ bx lr
+
+ arm_func_start FUN_020B19D0
+FUN_020B19D0: ; 0x020B19D0
+ add r0, r0, r1, lsl #0x2
+ str r2, [r0, #0x8]
+ bx lr
+
+ arm_func_start FUN_020B19DC
+FUN_020B19DC: ; 0x020B19DC
+ mov r3, #0x0
+ mvn r2, #0x0
+_020B19E4:
+ add r1, r0, r3, lsl #0x2
+ add r3, r3, #0x1
+ str r2, [r1, #0x8]
+ cmp r3, #0x3
+ blt _020B19E4
+ bx lr
+
+ arm_func_start FUN_020B19FC
+FUN_020B19FC:
+ ldr r1, [r0, r1, lsl #0x2]
+ mvn r0, #0x0
+ cmp r1, r0
+ movne r0, #0x1
+ moveq r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020B1A14
+FUN_020B1A14: ; 0x020B1A14
+ ldr r0, [r0, r1, lsl #0x2]
+ bx lr
+
+ arm_func_start FUN_020B1A1C
+FUN_020B1A1C: ; 0x020B1A1C
+ str r2, [r0, r1, lsl #0x2]
+ bx lr
+
+ arm_func_start FUN_020B1A24
+FUN_020B1A24: ; 0x020B1A24
+ mov r2, #0x0
+ mvn r1, #0x0
+_020B1A2C:
+ str r1, [r0, r2, lsl #0x2]
+ add r2, r2, #0x1
+ cmp r2, #0x3
+ blt _020B1A2C
+ bx lr
+
+ arm_func_start FUN_020B1A40
+FUN_020B1A40: ; 0x020B1A40
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ add r1, r4, #0x4
+ mov r0, #0x0
+ mov r2, #0x18
+ bl MIi_CpuClear16
+ mov r0, #0x1000
+ str r0, [r4, #0x4]
+ str r0, [r4, #0x8]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020B1A68
+FUN_020B1A68:
+ ldr ip, _020B1A74 ; =FUN_020B1A40
+ str r1, [r0, #0x0]
+ bx r12
+ .balign 4
+_020B1A74: .word FUN_020B1A40
+
+ arm_func_start FUN_020B1A78
+FUN_020B1A78: ; 0x020B1A78
+ ldr r3, [r0, #0x0]
+ cmp r3, #0x1
+ ldreqh r3, [r0, #0x12]
+ orreq r3, r3, #0x2
+ streqh r3, [r0, #0x12]
+ streq r1, [r0, #0x4]
+ streq r2, [r0, #0x8]
+ bx lr
+
+ arm_func_start FUN_020B1A98
+FUN_020B1A98: ; 0x020B1A98
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x1
+ ldreqh r2, [r0, #0x12]
+ orreq r2, r2, #0x4
+ streqh r2, [r0, #0x12]
+ streqh r1, [r0, #0x10]
+ bx lr
+
+ arm_func_start FUN_020B1AB4
+FUN_020B1AB4: ; 0x020B1AB4
+ ldr r3, [r0, #0x0]
+ cmp r3, #0x1
+ ldreqh r3, [r0, #0x12]
+ orreq r3, r3, #0x8
+ streqh r3, [r0, #0x12]
+ streqh r1, [r0, #0xc]
+ streqh r2, [r0, #0xe]
+ bx lr
+
+ arm_func_start FUN_020B1AD4
+FUN_020B1AD4: ; 0x020B1AD4
+ mov r2, #0x0
+ str r2, [r0, #0x0]
+ str r1, [r0, #0x4]
+ mov r1, #0x1
+ str r1, [r0, #0x8]
+ ldr ip, _020B1AF4 ; =FUN_020B1A68
+ add r0, r0, #0xc
+ bx r12
+ .balign 4
+_020B1AF4: .word FUN_020B1A68
+
+ arm_func_start FUN_020B1AF8
+FUN_020B1AF8: ; 0x020B1AF8
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x34
+ ldrh r5, [r2, #0x0]
+ ldr r4, [sp, #0x60]
+ ldr r10, [sp, #0x58]
+ str r4, [sp, #0x60]
+ cmp r1, r5
+ movcs r1, r5
+ mov r4, #0x0
+ cmp r1, #0x0
+ str r4, [sp, #0x0]
+ bls _020B1E7C
+ ldrh r4, [sp, #0x5c]
+ mov r4, r4, lsl #0x19
+ str r4, [sp, #0x4]
+ ldr r4, [sp, #0x0]
+ str r4, [sp, #0x14]
+ mov r4, #0x100
+ str r4, [sp, #0xc]
+ mov r4, #0x300
+ str r4, [sp, #0x8]
+ mov r4, #0x1
+ str r4, [sp, #0x10]
+_020B1B54:
+ ldr r5, [sp, #0x0]
+ mov r6, #0x6
+ mul r6, r5, r6
+ ldr r8, [r2, #0x4]
+ ldr r4, [sp, #0x0]
+ add r7, r0, r5, lsl #0x3
+ ldrh r5, [r8, r6]
+ mov r4, r4, lsl #0x3
+ add r9, r8, r6
+ strh r5, [r0, r4]
+ ldrh r4, [r9, #0x2]
+ cmp r3, #0x0
+ strh r4, [r7, #0x2]
+ ldrh r4, [r9, #0x4]
+ strh r4, [r7, #0x4]
+ bne _020B1B9C
+ cmp r10, #0x0
+ beq _020B1E60
+_020B1B9C:
+ ldr r5, [r7, #0x0]
+ ldr r4, _020B1E88 ; =0x01FF0000
+ and r4, r5, r4
+ mov r4, r4, lsr #0x10
+ mov r4, r4, lsl #0x10
+ mov r4, r4, asr #0x10
+ cmp r4, #0xff
+ orrgt r4, r4, #0xff00
+ movgt r4, r4, lsl #0x10
+ movgt r4, r4, asr #0x10
+ mov r4, r4, lsl #0xc
+ str r4, [sp, #0x20]
+ ldr r4, [r7, #0x0]
+ and r4, r4, #0xff
+ mov r4, r4, lsl #0x10
+ mov r4, r4, asr #0x10
+ cmp r4, #0x7f
+ orrgt r4, r4, #0xff00
+ movgt r4, r4, lsl #0x10
+ movgt r4, r4, asr #0x10
+ mov r4, r4, lsl #0xc
+ str r4, [sp, #0x24]
+ cmp r3, #0x0
+ beq _020B1E00
+ ldr r5, [r7, #0x0]
+ and r6, r5, #0x300
+ cmp r6, #0x100
+ beq _020B1C1C
+ cmp r6, #0x300
+ beq _020B1C1C
+ and r4, r5, #0x30000000
+ orr r6, r6, r4
+_020B1C1C:
+ cmp r6, #0x300
+ bne _020B1C70
+ ldr r4, _020B1E8C ; =0xC000C000
+ ldr r8, _020B1E90 ; =UNK_020FF8AC
+ and r5, r5, r4
+ and r4, r5, #0xc000
+ mov r6, r4, asr #0xe
+ and r4, r5, #0xc0000000
+ mov r4, r4, lsr #0x1e
+ mov r4, r4, lsl #0x1
+ add r8, r8, r6, lsl #0x3
+ ldrh r9, [r4, r8]
+ ldr r8, _020B1E94 ; =UNK_020FF894
+ ldr r5, [sp, #0x20]
+ add r6, r8, r6, lsl #0x3
+ add r5, r5, r9, lsl #0xb
+ str r5, [sp, #0x20]
+ ldrh r4, [r4, r6]
+ ldr r5, [sp, #0x24]
+ add r4, r5, r4, lsl #0xb
+ str r4, [sp, #0x24]
+_020B1C70:
+ ldr r4, [sp, #0x60]
+ ldr r5, [r3, #0x8]
+ cmp r4, #0x0
+ ldrne r8, [sp, #0x8]
+ add r4, sp, #0x20
+ ldreq r8, [sp, #0xc]
+ mov r6, r4
+ cmp r8, #0x300
+ ldreq r9, [sp, #0x10]
+ mov r12, #0x1000
+ ldrne r9, [sp, #0x14]
+ cmp r4, r4
+ ldr r4, [sp, #0x24]
+ addeq r6, sp, #0x28
+ smull r11, r4, r5, r4
+ adds r5, r11, r12
+ adc r11, r4, #0x0
+ ldr r4, [r3, #0x0]
+ ldr lr, [sp, #0x20]
+ smlal r5, r11, r4, lr
+ mov r4, r5, lsr #0xc
+ orr r4, r4, r11, lsl #0x14
+ str r4, [r6, #0x0]
+ ldr r4, [r3, #0xc]
+ ldr r5, [sp, #0x24]
+ ldr lr, [r3, #0x4]
+ smull r11, r5, r4, r5
+ adds r11, r11, r12
+ adc r4, r5, #0x0
+ add r5, sp, #0x28
+ cmp r6, r5
+ ldr r5, [sp, #0x20]
+ smlal r11, r4, lr, r5
+ mov r5, r11, lsr #0xc
+ orr r5, r5, r4, lsl #0x14
+ str r5, [r6, #0x4]
+ ldreq r5, [sp, #0x28]
+ ldreq r4, [sp, #0x2c]
+ streq r5, [sp, #0x20]
+ streq r4, [sp, #0x24]
+ cmp r8, #0x100
+ beq _020B1D38
+ cmp r8, #0x300
+ beq _020B1D38
+ ldr r5, [r7, #0x0]
+ ldr r4, _020B1E98 ; =0xC1FFFCFF
+ and r4, r5, r4
+ orr r4, r4, r8
+ str r4, [r7, #0x0]
+ b _020B1D54
+_020B1D38:
+ ldr r5, [r7, #0x0]
+ ldr r4, _020B1E98 ; =0xC1FFFCFF
+ and r4, r5, r4
+ orr r5, r4, r8
+ ldr r4, [sp, #0x4]
+ orr r4, r4, r5
+ str r4, [r7, #0x0]
+_020B1D54:
+ ldr r6, [r7, #0x0]
+ ldr r5, _020B1E8C ; =0xC000C000
+ cmp r9, #0x0
+ and r8, r6, r5
+ and r5, r8, #0xc000
+ mov r6, r5, asr #0xe
+ and r5, r8, #0xc0000000
+ ldr r8, _020B1E90 ; =UNK_020FF8AC
+ mov r5, r5, lsr #0x1e
+ mov r5, r5, lsl #0x1
+ add r8, r8, r6, lsl #0x3
+ ldrh r9, [r5, r8]
+ ldr r8, _020B1E94 ; =UNK_020FF894
+ ldr r4, [sp, #0x20]
+ add r6, r8, r6, lsl #0x3
+ mov r11, r9, asr #0x1
+ ldrh r5, [r5, r6]
+ mov r8, r11, lsl #0xc
+ ldr r6, [r3, #0x0]
+ rsb r12, r8, #0x0
+ mov r9, r5, asr #0x1
+ mla r12, r6, r11, r12
+ ldr r5, [r3, #0x8]
+ mla r6, r5, r9, r12
+ add r6, r4, r6
+ str r6, [sp, #0x20]
+ ldr r12, [r3, #0x4]
+ mov r5, r9, lsl #0xc
+ str r12, [sp, #0x1c]
+ ldr r12, [r3, #0xc]
+ rsb lr, r5, #0x0
+ str r12, [sp, #0x18]
+ ldr r12, [sp, #0x1c]
+ ldr r4, [sp, #0x24]
+ mla r11, r12, r11, lr
+ ldr r12, [sp, #0x18]
+ subne r6, r6, r8
+ mla r9, r12, r9, r11
+ add r4, r4, r9
+ str r4, [sp, #0x24]
+ subne r4, r4, r5
+ strne r6, [sp, #0x20]
+ strne r4, [sp, #0x24]
+_020B1E00:
+ cmp r10, #0x0
+ beq _020B1E28
+ ldr r6, [sp, #0x20]
+ ldr r4, [r10, #0x0]
+ ldr r5, [sp, #0x24]
+ add r4, r6, r4
+ str r4, [sp, #0x20]
+ ldr r4, [r10, #0x4]
+ add r4, r5, r4
+ str r4, [sp, #0x24]
+_020B1E28:
+ ldr r4, [sp, #0x20]
+ ldr r6, [r7, #0x0]
+ add r5, r4, #0x800
+ ldr r4, _020B1E9C ; =0x000001FF
+ and r4, r4, r5, asr #0xc
+ ldr r5, _020B1EA0 ; =0xFE00FF00
+ and r6, r6, r5
+ ldr r5, [sp, #0x24]
+ add r5, r5, #0x800
+ mov r5, r5, asr #0xc
+ and r5, r5, #0xff
+ orr r5, r6, r5
+ orr r4, r5, r4, lsl #0x10
+ str r4, [r7, #0x0]
+_020B1E60:
+ ldr r4, [sp, #0x0]
+ add r4, r4, #0x1
+ mov r4, r4, lsl #0x10
+ mov r4, r4, lsr #0x10
+ str r4, [sp, #0x0]
+ cmp r4, r1
+ blo _020B1B54
+_020B1E7C:
+ mov r0, r1
+ add sp, sp, #0x34
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020B1E88: .word 0x01FF0000
+_020B1E8C: .word 0xC000C000
+_020B1E90: .word UNK_020FF8AC
+_020B1E94: .word UNK_020FF894
+_020B1E98: .word 0xC1FFFCFF
+_020B1E9C: .word 0x000001FF
+_020B1EA0: .word 0xFE00FF00
+
+ arm_func_start FUN_020B1EA4
+FUN_020B1EA4: ; 0x020B1EA4
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020B0518
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,pc}
+ mov r0, r4
+ bl FUN_020B1FC4
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020B1EC4
+FUN_020B1EC4: ; 0x020B1EC4
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020B0534
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,pc}
+ mov r0, r4
+ bl FUN_020B1FC4
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020B1EE4
+FUN_020B1EE4: ; 0x020B1EE4
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020B0438
+ mov r0, r4
+ bl FUN_020B1FC4
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020B1EFC
+FUN_020B1EFC: ; 0x020B1EFC
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x14
+ mov r4, r2
+ ldr r2, [r4, #0xc]
+ mov r5, r1
+ ldr r1, [r2, #0x0]
+ ldr r2, [sp, #0x34]
+ str r1, [sp, #0x0]
+ ldr r1, [sp, #0x38]
+ str r2, [sp, #0x4]
+ mov r6, r3
+ mov r7, r0
+ ldr r12, [sp, #0x3c]
+ str r1, [sp, #0x8]
+ ldr r1, [sp, #0x28]
+ ldr r2, [sp, #0x2c]
+ ldr r3, [sp, #0x30]
+ mov r0, r6
+ str r12, [sp, #0xc]
+ bl FUN_020B45F0
+ str r6, [r7, #0x34]
+ str r4, [r7, #0x30]
+ add r0, r7, #0x38
+ mov r1, #0x1
+ str r6, [r7, #0x34]
+ bl FUN_020B1A68
+ mov r0, r7
+ bl FUN_020B04C0
+ mov r0, r7
+ mov r1, r5
+ bl FUN_020B1EE4
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020B1F80
+FUN_020B1F80: ; 0x020B1F80
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ str r2, [r5, #0x30]
+ mvn r2, #0x0
+ add r0, r5, #0x38
+ mov r1, #0x1
+ str r2, [r5, #0x34]
+ bl FUN_020B1A68
+ mov r0, r5
+ bl FUN_020B04C0
+ mov r0, r5
+ mov r1, r4
+ bl FUN_020B1EE4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020B1FC4
+FUN_020B1FC4: ; 0x020B1FC4
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r1, [r5, #0x0]
+ ldrh r1, [r1, #0x4]
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,pc}
+ bl FUN_020B06E0
+ mov r4, r0
+ ldr r7, [r5, #0x30]
+ ldrh r1, [r4, #0x0]
+ mov r0, r7
+ bl FUN_020AFE8C
+ str r0, [r5, #0x2c]
+ ldr r1, [r5, #0x18]
+ add r0, r5, #0x38
+ ldr r2, [r1, #0x4]
+ mov r1, #0x1
+ and r6, r2, #0xff
+ bl FUN_020B1A68
+ cmp r6, #0x0
+ beq _020B2068
+ cmp r6, #0x2
+ bne _020B203C
+ ldrsh r1, [r4, #0x4]
+ ldrsh r2, [r4, #0x6]
+ add r0, r5, #0x38
+ bl FUN_020B1AB4
+ b _020B2068
+_020B203C:
+ ldr r1, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ add r0, r5, #0x38
+ bl FUN_020B1A78
+ ldrh r1, [r4, #0x2]
+ add r0, r5, #0x38
+ bl FUN_020B1A98
+ ldrsh r1, [r4, #0xc]
+ ldrsh r2, [r4, #0xe]
+ add r0, r5, #0x38
+ bl FUN_020B1AB4
+_020B2068:
+ ldr r2, [r7, #0xc]
+ cmp r2, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,pc}
+ ldr r1, [r5, #0x34]
+ mvn r0, #0x0
+ cmp r1, r0
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,pc}
+ ldrh r1, [r4, #0x0]
+ ldr r2, [r2, #0x4]
+ ldr r0, [r5, #0x34]
+ add r3, r2, r1, lsl #0x3
+ ldr r1, [r2, r1, lsl #0x3]
+ ldr r2, [r3, #0x4]
+ bl FUN_020B4400
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020B20C8
+FUN_020B20C8: ; 0x020B20C8
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r6, #0x0
+ str r6, [r0, #0x38]
+ ldr r7, [sp, #0x30]
+ str r6, [r0, #0x30]
+ mov r10, r1
+ str r7, [r0, #0x34]
+ str r0, [sp, #0x0]
+ movs r8, r3
+ mov r9, r2
+ str r10, [r0, #0x3c]
+ ldr r11, [sp, #0x34]
+ beq _020B215C
+ mov r0, #0x1
+ str r6, [sp, #0x8]
+ str r0, [sp, #0x4]
+_020B210C:
+ mov r0, #0x28
+ mul r4, r6, r0
+ ldr r1, [sp, #0x4]
+ add r0, r10, r4
+ bl FUN_020B1AD4
+ mov r0, #0x54
+ mla r5, r6, r0, r9
+ ldr r1, [sp, #0x8]
+ mov r0, r7
+ str r5, [r10, r4]
+ bl FUN_020AFC04
+ mov r1, r0
+ mov r0, r5
+ mov r2, r11
+ bl FUN_020B1F80
+ add r0, r6, #0x1
+ mov r0, r0, lsl #0x10
+ mov r6, r0, lsr #0x10
+ cmp r6, r8
+ blo _020B210C
+_020B215C:
+ ldr r0, [sp, #0x0]
+ bl FUN_020B04C0
+ ldr r0, [sp, #0x0]
+ ldr r3, [sp, #0x38]
+ ldr r2, [sp, #0x0]
+ add r0, r0, #0x44
+ mov r1, #0x1
+ str r3, [r2, #0x40]
+ bl FUN_020B1A68
+ ldr r0, [sp, #0x0]
+ mov r1, #0x0
+ strh r1, [r0, #0x2c]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B2194
+FUN_020B2194: ; 0x020B2194
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ bl FUN_020B0518
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,pc}
+ mov r0, r7
+ bl FUN_020B06E0
+ mov r4, r0
+ ldrh r1, [r4, #0x0]
+ ldr r0, [r7, #0x40]
+ bl FUN_020AFF34
+ ldr r1, [r7, #0x18]
+ mov r6, r0
+ ldr r1, [r1, #0x4]
+ add r0, r7, #0x44
+ and r5, r1, #0xff
+ mov r1, #0x1
+ bl FUN_020B1A68
+ cmp r5, #0x0
+ beq _020B2234
+ cmp r5, #0x2
+ bne _020B2208
+ ldrsh r1, [r4, #0x4]
+ ldrsh r2, [r4, #0x6]
+ add r0, r7, #0x44
+ bl FUN_020B1AB4
+ b _020B2234
+_020B2208:
+ ldr r1, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ add r0, r7, #0x44
+ bl FUN_020B1A78
+ ldrh r1, [r4, #0x2]
+ add r0, r7, #0x44
+ bl FUN_020B1A98
+ ldrsh r1, [r4, #0xc]
+ ldrsh r2, [r4, #0xe]
+ add r0, r7, #0x44
+ bl FUN_020B1AB4
+_020B2234:
+ ldrh r2, [r7, #0x2c]
+ mov r1, r6
+ add r0, r7, #0x30
+ bl FUN_020B24E0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020B224C
+FUN_020B224C: ; 0x020B224C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ ldr r2, [r4, #0x0]
+ mov r6, r1
+ ldrh r5, [r2, #0x4]
+ bl FUN_020B0534
+ cmp r0, #0x0
+ beq _020B2318
+ ldrh r1, [r4, #0x2c]
+ mov r0, r4
+ add r1, r1, r5
+ strh r1, [r4, #0x2c]
+ bl FUN_020B06E0
+ mov r5, r0
+ ldrh r1, [r5, #0x0]
+ ldr r0, [r4, #0x40]
+ bl FUN_020AFF34
+ ldr r1, [r4, #0x18]
+ mov r7, r0
+ ldr r1, [r1, #0x4]
+ add r0, r4, #0x44
+ and r6, r1, #0xff
+ mov r1, #0x1
+ bl FUN_020B1A68
+ cmp r6, #0x0
+ beq _020B2300
+ cmp r6, #0x2
+ bne _020B22D4
+ ldrsh r1, [r5, #0x4]
+ ldrsh r2, [r5, #0x6]
+ add r0, r4, #0x44
+ bl FUN_020B1AB4
+ b _020B2300
+_020B22D4:
+ ldr r1, [r5, #0x4]
+ ldr r2, [r5, #0x8]
+ add r0, r4, #0x44
+ bl FUN_020B1A78
+ ldrh r1, [r5, #0x2]
+ add r0, r4, #0x44
+ bl FUN_020B1A98
+ ldrsh r1, [r5, #0xc]
+ ldrsh r2, [r5, #0xe]
+ add r0, r4, #0x44
+ bl FUN_020B1AB4
+_020B2300:
+ ldrh r2, [r4, #0x2c]
+ mov r1, r7
+ add r0, r4, #0x30
+ bl FUN_020B24E0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+_020B2318:
+ mov r1, r6
+ add r0, r4, #0x30
+ bl FUN_020B232C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020B232C
+FUN_020B232C: ; 0x020B232C
+ stmdb sp!, {r4-r8,lr}
+ mov r7, r0
+ ldr r0, [r7, #0x8]
+ mov r6, r1
+ cmp r0, #0x1
+ bne _020B238C
+ ldr r0, [r7, #0x0]
+ ldr r4, [r7, #0xc]
+ ldrh r0, [r0, #0x2]
+ mov r5, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r8,pc}
+ mov r8, #0x58
+_020B2360:
+ mla r0, r5, r8, r4
+ mov r1, r6
+ bl FUN_020B1EC4
+ ldr r1, [r7, #0x0]
+ add r0, r5, #0x1
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r1, #0x2]
+ mov r5, r0, lsr #0x10
+ cmp r5, r1
+ blo _020B2360
+ ldmia sp!, {r4-r8,pc}
+_020B238C:
+ ldr r0, [r7, #0x0]
+ ldr r4, [r7, #0xc]
+ ldrh r0, [r0, #0x0]
+ mov r5, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r8,pc}
+ mov r8, #0x28
+_020B23A8:
+ mul r0, r5, r8
+ ldr r0, [r4, r0]
+ mov r1, r6
+ bl FUN_020B1EC4
+ ldr r1, [r7, #0x0]
+ add r0, r5, #0x1
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r1, #0x0]
+ mov r5, r0, lsr #0x10
+ cmp r5, r1
+ blo _020B23A8
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020B23D8
+FUN_020B23D8: ; 0x020B23D8
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r0
+ ldrh r0, [r5, #0x0]
+ mov r4, #0x0
+ mov r6, r4
+ cmp r0, #0x0
+ bls _020B2424
+_020B23F4:
+ mov r0, r5
+ mov r1, r6
+ bl FUN_020AFF34
+ ldrh r0, [r0, #0x0]
+ ldrh r1, [r5, #0x0]
+ cmp r0, r4
+ movhi r4, r0
+ add r0, r6, #0x1
+ mov r0, r0, lsl #0x10
+ mov r6, r0, lsr #0x10
+ cmp r6, r1
+ blo _020B23F4
+_020B2424:
+ mov r0, r4
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020B242C
+FUN_020B242C: ; 0x020B242C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ bl FUN_020B0438
+ mov r1, #0x0
+ mov r0, r7
+ strh r1, [r7, #0x2c]
+ bl FUN_020B06E0
+ mov r4, r0
+ ldrh r1, [r4, #0x0]
+ ldr r0, [r7, #0x40]
+ bl FUN_020AFF34
+ ldr r1, [r7, #0x18]
+ mov r6, r0
+ ldr r1, [r1, #0x4]
+ add r0, r7, #0x44
+ and r5, r1, #0xff
+ mov r1, #0x1
+ bl FUN_020B1A68
+ cmp r5, #0x0
+ beq _020B24C8
+ cmp r5, #0x2
+ bne _020B249C
+ ldrsh r1, [r4, #0x4]
+ ldrsh r2, [r4, #0x6]
+ add r0, r7, #0x44
+ bl FUN_020B1AB4
+ b _020B24C8
+_020B249C:
+ ldr r1, [r4, #0x4]
+ ldr r2, [r4, #0x8]
+ add r0, r7, #0x44
+ bl FUN_020B1A78
+ ldrh r1, [r4, #0x2]
+ add r0, r7, #0x44
+ bl FUN_020B1A98
+ ldrsh r1, [r4, #0xc]
+ ldrsh r2, [r4, #0xe]
+ add r0, r7, #0x44
+ bl FUN_020B1AB4
+_020B24C8:
+ ldrh r2, [r7, #0x2c]
+ mov r1, r6
+ add r0, r7, #0x30
+ bl FUN_020B24E0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020B24E0
+FUN_020B24E0: ; 0x020B24E0
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x14
+ mov r10, r1
+ str r0, [sp, #0x0]
+ str r10, [r0, #0x0]
+ ldr r0, [r0, #0x8]
+ mov r9, r2
+ cmp r0, #0x1
+ bne _020B2654
+ ldrh r1, [r10, #0x2]
+ ldr r0, [sp, #0x0]
+ mov r4, #0x0
+ ldr r8, [r0, #0xc]
+ cmp r1, #0x0
+ bls _020B2544
+ mov r3, r4
+ mov r0, #0x58
+_020B2524:
+ mla r1, r4, r0, r8
+ str r3, [r1, #0x54]
+ add r1, r4, #0x1
+ mov r1, r1, lsl #0x10
+ ldrh r2, [r10, #0x2]
+ mov r4, r1, lsr #0x10
+ cmp r4, r2
+ blo _020B2524
+_020B2544:
+ ldrh r0, [r10, #0x0]
+ mov r5, #0x0
+ cmp r0, #0x0
+ addls sp, sp, #0x14
+ ldmlsia sp!, {r4-r11,pc}
+ str r5, [sp, #0x4]
+ mov r11, #0x1
+_020B2560:
+ ldr r0, [r10, #0x4]
+ mov r1, #0x58
+ add r7, r0, r5, lsl #0x3
+ ldrh r0, [r7, #0x6]
+ and r0, r0, #0xff00
+ mov r0, r0, lsl #0x8
+ mov r0, r0, lsr #0x10
+ mla r6, r0, r1, r8
+ ldr r0, [r6, #0x54]
+ cmp r0, #0x0
+ bne _020B2634
+ ldr r0, [sp, #0x0]
+ ldrh r1, [r7, #0x0]
+ ldr r0, [r0, #0x4]
+ bl FUN_020AFC04
+ mov r4, r0
+ mov r0, r6
+ mov r1, r4
+ bl FUN_020B1EE4
+ str r11, [r6, #0x8]
+ ldrh r0, [r7, #0x6]
+ and r0, r0, #0xf
+ cmp r0, #0x1
+ bne _020B2630
+ ldrh r1, [r4, #0x0]
+ ldr r7, [sp, #0x4]
+ mov r3, r7
+ cmp r1, #0x0
+ bls _020B25F0
+ ldr r2, [r4, #0xc]
+_020B25D8:
+ add r0, r2, r3, lsl #0x3
+ ldrh r0, [r0, #0x4]
+ add r3, r3, #0x1
+ cmp r3, r1
+ add r7, r7, r0
+ blo _020B25D8
+_020B25F0:
+ mov r0, r6
+ bl FUN_020B0408
+ cmp r0, #0x0
+ beq _020B261C
+ mov r0, r9
+ mov r1, r7
+ bl _u32_div_f
+ mov r0, r6
+ mov r1, r1, lsl #0xc
+ bl FUN_020B1EC4
+ b _020B2630
+_020B261C:
+ cmp r9, r7
+ movcc r7, r9
+ mov r0, r6
+ mov r1, r7, lsl #0xc
+ bl FUN_020B1EC4
+_020B2630:
+ str r11, [r6, #0x54]
+_020B2634:
+ add r0, r5, #0x1
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r10, #0x0]
+ mov r5, r0, lsr #0x10
+ cmp r5, r1
+ blo _020B2560
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r11,pc}
+_020B2654:
+ ldrh r1, [r10, #0x0]
+ ldr r0, [sp, #0x0]
+ mov r4, #0x0
+ cmp r1, #0x0
+ ldr r11, [r0, #0xc]
+ addls sp, sp, #0x14
+ ldmlsia sp!, {r4-r11,pc}
+ mov r0, #0x1
+ str r4, [sp, #0xc]
+ str r0, [sp, #0x8]
+_020B267C:
+ mov r0, #0x28
+ mul r2, r4, r0
+ ldr r3, [r10, #0x4]
+ mov r0, r4, lsl #0x3
+ ldrh r1, [r3, r0]
+ ldr r0, [sp, #0x0]
+ ldr r6, [r11, r2]
+ ldr r0, [r0, #0x4]
+ add r7, r3, r4, lsl #0x3
+ bl FUN_020AFC04
+ mov r5, r0
+ mov r0, r6
+ mov r1, r5
+ bl FUN_020B1EE4
+ ldr r0, [sp, #0x8]
+ str r0, [r6, #0x8]
+ ldrh r0, [r7, #0x6]
+ and r0, r0, #0xf
+ cmp r0, #0x1
+ bne _020B2740
+ ldrh r1, [r5, #0x0]
+ ldr r8, [sp, #0xc]
+ mov r0, r8
+ cmp r1, #0x0
+ bls _020B2700
+ ldr r3, [r5, #0xc]
+_020B26E4:
+ add r1, r3, r0, lsl #0x3
+ ldrh r2, [r1, #0x4]
+ add r0, r0, #0x1
+ ldrh r1, [r5, #0x0]
+ add r8, r8, r2
+ cmp r0, r1
+ blo _020B26E4
+_020B2700:
+ mov r0, r6
+ bl FUN_020B0408
+ cmp r0, #0x0
+ beq _020B272C
+ mov r0, r9
+ mov r1, r8
+ bl _u32_div_f
+ mov r0, r6
+ mov r1, r1, lsl #0xc
+ bl FUN_020B1EC4
+ b _020B2740
+_020B272C:
+ cmp r9, r8
+ movcc r8, r9
+ mov r0, r6
+ mov r1, r8, lsl #0xc
+ bl FUN_020B1EC4
+_020B2740:
+ mov r0, #0x28
+ mla r3, r4, r0, r11
+ ldr r0, [sp, #0x8]
+ str r0, [r3, #0x8]
+ ldrsh r1, [r7, #0x2]
+ ldrsh r2, [r7, #0x4]
+ add r0, r3, #0xc
+ bl FUN_020B1AB4
+ add r0, r4, #0x1
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r10, #0x0]
+ mov r4, r0, lsr #0x10
+ cmp r4, r1
+ blo _020B267C
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start thunk_FUN_020b5040
+thunk_FUN_020b5040: ; 0x020B2780
+ ldr ip, _020B2788 ; =FUN_020B5040
+ bx r12
+ .balign 4
+_020B2788: .word FUN_020B5040
+
+ arm_func_start FUN_020B278C
+FUN_020B278C:
+ ldr r0, [r0, #0x78]
+ bx lr
+
+ arm_func_start FUN_020B2794
+FUN_020B2794: ; 0x020B2794
+ stmdb sp!, {lr}
+ sub sp, sp, #0x1c
+ ldr r2, _020B2894 ; =UNK_021CDD70
+ mov lr, #0x0
+ ldr r12, [r2, #0x0]
+ ldr r3, _020B2898 ; =UNK_021CDEF4
+ mov r2, #0x18
+ str r1, [sp, #0x0]
+ str r1, [sp, #0xc]
+ mla r1, r12, r2, r3
+ rsb r3, r0, #0x0
+ str r0, [sp, #0x4]
+ add r0, sp, #0x0
+ mov r2, r1
+ str r3, [sp, #0x8]
+ str lr, [sp, #0x10]
+ str lr, [sp, #0x14]
+ bl FUN_020B423C
+ ldr r0, _020B2894 ; =UNK_021CDD70
+ ldr r1, _020B289C ; =UNK_021CE1F4
+ ldr r2, [r0, #0x0]
+ mov r0, #0x18
+ mla r1, r2, r0, r1
+ add r0, sp, #0x0
+ mov r2, r1
+ bl FUN_020B423C
+ ldr r0, _020B28A0 ; =UNK_021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020B2824
+ ldr r1, _020B28A4 ; =UNK_02106570
+ ldr r0, _020B28A8 ; =0x0000FFFE
+ ldrh r1, [r1, #0x0]
+ cmp r1, r0
+ movne r0, #0x1
+ bne _020B2828
+_020B2824:
+ mov r0, #0x0
+_020B2828:
+ cmp r0, #0x0
+ ldreq r1, _020B2894 ; =UNK_021CDD70
+ ldreq r0, _020B28A4 ; =UNK_02106570
+ ldreq r1, [r1, #0x0]
+ streqh r1, [r0, #0x0]
+ ldr r0, _020B2894 ; =UNK_021CDD70
+ ldr r1, _020B28AC ; =UNK_021CDDF4
+ ldr r0, [r0, #0x0]
+ mov r0, r0, lsl #0x10
+ add r12, r1, r0, lsr #0xd
+ ldrh r0, [r12, #0x4]
+ cmp r0, #0x3
+ addls pc, pc, r0, lsl #0x2
+ b _020B288C
+_020B2860:
+ b _020B2870
+_020B2864:
+ b _020B288C
+_020B2868:
+ b _020B2870
+_020B286C:
+ b _020B2870
+_020B2870:
+ ldr r0, _020B28B0 ; =UNK_021CDD64
+ mov r1, #0x1
+ ldrh r3, [r0, #0x0]
+ add r2, r3, #0x1
+ strh r2, [r0, #0x0]
+ strh r3, [r12, #0x2]
+ strh r1, [r12, #0x4]
+_020B288C:
+ add sp, sp, #0x1c
+ ldmia sp!, {pc}
+ .balign 4
+_020B2894: .word UNK_021CDD70
+_020B2898: .word UNK_021CDEF4
+_020B289C: .word UNK_021CE1F4
+_020B28A0: .word UNK_021CDD68
+_020B28A4: .word UNK_02106570
+_020B28A8: .word 0x0000FFFE
+_020B28AC: .word UNK_021CDDF4
+_020B28B0: .word UNK_021CDD64
+
+ arm_func_start FUN_020B28B4
+FUN_020B28B4: ; 0x020B28B4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x1c
+ ldr r2, _020B29E8 ; =UNK_021CDD70
+ mov r12, #0x0
+ ldr r3, [r2, #0x0]
+ mov r4, r1
+ ldr r2, _020B29EC ; =UNK_021CDEF4
+ mov r1, #0x18
+ mla r1, r3, r1, r2
+ mov r5, r0
+ add r0, sp, #0x0
+ mov r2, r1
+ str r5, [sp, #0x0]
+ str r12, [sp, #0x4]
+ str r12, [sp, #0x8]
+ str r4, [sp, #0xc]
+ str r12, [sp, #0x10]
+ str r12, [sp, #0x14]
+ bl FUN_020B423C
+ mov r0, r5
+ bl FX_Inv
+ mov r1, #0x0
+ str r0, [sp, #0x0]
+ mov r0, r4
+ str r1, [sp, #0x4]
+ str r1, [sp, #0x8]
+ bl FX_Inv
+ mov r3, #0x0
+ ldr r1, _020B29E8 ; =UNK_021CDD70
+ str r0, [sp, #0xc]
+ ldr r2, [r1, #0x0]
+ ldr r1, _020B29F0 ; =UNK_021CE1F4
+ mov r0, #0x18
+ mla r1, r2, r0, r1
+ add r0, sp, #0x0
+ mov r2, r1
+ str r3, [sp, #0x10]
+ str r3, [sp, #0x14]
+ bl FUN_020B423C
+ ldr r0, _020B29F4 ; =UNK_021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020B2978
+ ldr r1, _020B29F8 ; =UNK_02106570
+ ldr r0, _020B29FC ; =0x0000FFFE
+ ldrh r1, [r1, #0x0]
+ cmp r1, r0
+ movne r0, #0x1
+ bne _020B297C
+_020B2978:
+ mov r0, #0x0
+_020B297C:
+ cmp r0, #0x0
+ ldreq r1, _020B29E8 ; =UNK_021CDD70
+ ldreq r0, _020B29F8 ; =UNK_02106570
+ ldreq r1, [r1, #0x0]
+ streqh r1, [r0, #0x0]
+ ldr r0, _020B29E8 ; =UNK_021CDD70
+ ldr r1, _020B2A00 ; =UNK_021CDDF4
+ ldr r0, [r0, #0x0]
+ mov r0, r0, lsl #0x10
+ add r12, r1, r0, lsr #0xd
+ ldrh r0, [r12, #0x4]
+ cmp r0, #0x3
+ addls pc, pc, r0, lsl #0x2
+ b _020B29E0
+_020B29B4:
+ b _020B29C4
+_020B29B8:
+ b _020B29E0
+_020B29BC:
+ b _020B29C4
+_020B29C0:
+ b _020B29C4
+_020B29C4:
+ ldr r0, _020B2A04 ; =UNK_021CDD64
+ mov r1, #0x1
+ ldrh r3, [r0, #0x0]
+ add r2, r3, #0x1
+ strh r2, [r0, #0x0]
+ strh r3, [r12, #0x2]
+ strh r1, [r12, #0x4]
+_020B29E0:
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B29E8: .word UNK_021CDD70
+_020B29EC: .word UNK_021CDEF4
+_020B29F0: .word UNK_021CE1F4
+_020B29F4: .word UNK_021CDD68
+_020B29F8: .word UNK_02106570
+_020B29FC: .word 0x0000FFFE
+_020B2A00: .word UNK_021CDDF4
+_020B2A04: .word UNK_021CDD64
+
+ arm_func_start FUN_020B2A08
+FUN_020B2A08: ; 0x020B2A08
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x1c
+ ldr r3, _020B2AEC ; =UNK_021CDD68
+ mov r4, r2
+ ldr r2, [r3, #0x0]
+ cmp r2, #0x0
+ beq _020B2A6C
+ ldr r2, _020B2AF0 ; =UNK_021CDD70
+ mov r3, #0x18
+ ldr r2, [r2, #0x0]
+ ldr lr, _020B2AF4 ; =UNK_021CDF04
+ mul r5, r2, r3
+ ldr r3, [lr, r5]
+ ldr ip, _020B2AF8 ; =UNK_021CDF08
+ add r0, r3, r0
+ str r0, [lr, r5]
+ ldr r0, [r12, r5]
+ ldr r3, _020B2AFC ; =UNK_021CDD74
+ add r0, r0, r1
+ str r0, [r12, r5]
+ ldr r0, [r3, r2, lsl #0x2]
+ add sp, sp, #0x1c
+ add r0, r0, r4
+ str r0, [r3, r2, lsl #0x2]
+ ldmia sp!, {r4-r5,pc}
+_020B2A6C:
+ ldr r2, _020B2AF0 ; =UNK_021CDD70
+ mov lr, #0x1000
+ ldr r12, [r2, #0x0]
+ ldr r3, _020B2B00 ; =UNK_021CDEF4
+ mov r2, #0x18
+ str r1, [sp, #0x14]
+ mla r1, r12, r2, r3
+ mov r3, #0x0
+ str r0, [sp, #0x10]
+ add r0, sp, #0x0
+ mov r2, r1
+ str lr, [sp, #0x0]
+ str r3, [sp, #0x4]
+ str r3, [sp, #0x8]
+ str lr, [sp, #0xc]
+ bl FUN_020B423C
+ ldr r0, _020B2AF0 ; =UNK_021CDD70
+ ldr r1, _020B2B04 ; =UNK_021CE1F4
+ ldr r2, [r0, #0x0]
+ mov r0, #0x18
+ mla r1, r2, r0, r1
+ add r0, sp, #0x0
+ mov r2, r1
+ bl FUN_020B423C
+ ldr r0, _020B2AF0 ; =UNK_021CDD70
+ ldr r2, _020B2AFC ; =UNK_021CDD74
+ ldr r1, [r0, #0x0]
+ ldr r0, [r2, r1, lsl #0x2]
+ add r0, r0, r4
+ str r0, [r2, r1, lsl #0x2]
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B2AEC: .word UNK_021CDD68
+_020B2AF0: .word UNK_021CDD70
+_020B2AF4: .word UNK_021CDF04
+_020B2AF8: .word UNK_021CDF08
+_020B2AFC: .word UNK_021CDD74
+_020B2B00: .word UNK_021CDEF4
+_020B2B04: .word UNK_021CE1F4
+
+ arm_func_start FUN_020B2B08
+FUN_020B2B08: ; 0x020B2B08
+ ldr r0, _020B2B4C ; =UNK_021CDD70
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ movle r0, #0x1
+ movgt r0, #0x0
+ cmp r0, #0x0
+ bxne lr
+ ldr r1, _020B2B4C ; =UNK_021CDD70
+ ldr r0, _020B2B50 ; =UNK_02106570
+ ldr r3, [r1, #0x0]
+ ldrh r2, [r0, #0x0]
+ sub r3, r3, #0x1
+ str r3, [r1, #0x0]
+ cmp r2, r3
+ ldrgt r1, _020B2B54 ; =0x0000FFFE
+ strgth r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020B2B4C: .word UNK_021CDD70
+_020B2B50: .word UNK_02106570
+_020B2B54: .word 0x0000FFFE
+
+ arm_func_start FUN_020B2B58
+FUN_020B2B58: ; 0x020B2B58
+ stmdb sp!, {r4-r10,lr}
+ ldr r0, _020B2D74 ; =UNK_021CDD6C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x7c]
+ ands r0, r0, #0x1
+ bne _020B2CA4
+ ldr r0, _020B2D78 ; =UNK_021CDD70
+ ldr r1, [r0, #0x0]
+ mov r0, r1, lsl #0x10
+ add r5, r1, #0x1
+ cmp r5, #0x20
+ mov r4, r0, lsr #0x10
+ movlt r0, #0x1
+ movge r0, #0x0
+ cmp r0, #0x0
+ beq _020B2C44
+ ldr r0, _020B2D7C ; =UNK_021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020B2BE4
+ ldr r1, _020B2D78 ; =UNK_021CDD70
+ mov r0, #0x18
+ ldr r3, [r1, #0x0]
+ ldr r1, _020B2D80 ; =UNK_021CDD74
+ mul r8, r3, r0
+ ldr r6, _020B2D84 ; =UNK_021CDF04
+ mul r7, r5, r0
+ ldr r2, [r6, r8]
+ ldr r0, [r1, r3, lsl #0x2]
+ ldr r3, _020B2D88 ; =UNK_021CDF08
+ str r2, [r6, r7]
+ ldr r2, [r3, r8]
+ str r0, [r1, r5, lsl #0x2]
+ str r2, [r3, r7]
+ b _020B2C3C
+_020B2BE4:
+ ldr r1, _020B2D78 ; =UNK_021CDD70
+ mov r0, #0x18
+ ldr r2, [r1, #0x0]
+ ldr r7, _020B2D80 ; =UNK_021CDD74
+ mul lr, r2, r0
+ ldr r1, _020B2D8C ; =UNK_021CDEF4
+ mul r12, r5, r0
+ ldr r8, _020B2D90 ; =UNK_021CE1F4
+ add r10, r1, lr
+ ldr r6, [r7, r2, lsl #0x2]
+ add r9, r1, r12
+ ldmia r10!, {r0-r3}
+ stmia r9!, {r0-r3}
+ ldmia r10, {r0-r1}
+ str r6, [r7, r5, lsl #0x2]
+ add r7, r8, lr
+ stmia r9, {r0-r1}
+ add r6, r8, r12
+ ldmia r7!, {r0-r3}
+ stmia r6!, {r0-r3}
+ ldmia r7, {r0-r1}
+ stmia r6, {r0-r1}
+_020B2C3C:
+ ldr r0, _020B2D78 ; =UNK_021CDD70
+ str r5, [r0, #0x0]
+_020B2C44:
+ ldr r0, _020B2D78 ; =UNK_021CDD70
+ ldr r2, _020B2D94 ; =UNK_021CDDF4
+ ldr r0, [r0, #0x0]
+ mov r5, r4, lsl #0x3
+ mov r0, r0, lsl #0x10
+ mov r3, r0, lsr #0x10
+ add r4, r2, r4, lsl #0x3
+ mov r6, r3, lsl #0x3
+ ldrh r1, [r2, r5]
+ ldrh r0, [r4, #0x2]
+ add r3, r2, r3, lsl #0x3
+ strh r1, [r2, r6]
+ strh r0, [r3, #0x2]
+ ldrh r2, [r4, #0x4]
+ ldrh r0, [r4, #0x6]
+ ldr r1, _020B2D98 ; =UNK_021CDDF8
+ strh r2, [r3, #0x4]
+ strh r0, [r3, #0x6]
+ ldrh r0, [r1, r5]
+ cmp r0, #0x1
+ moveq r0, #0x2
+ streqh r0, [r1, r6]
+ strneh r0, [r1, r6]
+ ldmia sp!, {r4-r10,pc}
+_020B2CA4:
+ ldr r0, _020B2D78 ; =UNK_021CDD70
+ ldr r0, [r0, #0x0]
+ add r4, r0, #0x1
+ cmp r4, #0x20
+ movlt r0, #0x1
+ movge r0, #0x0
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r10,pc}
+ ldr r0, _020B2D7C ; =UNK_021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020B2D10
+ ldr r1, _020B2D78 ; =UNK_021CDD70
+ mov r0, #0x18
+ ldr r3, [r1, #0x0]
+ ldr r1, _020B2D80 ; =UNK_021CDD74
+ mul r7, r3, r0
+ ldr r5, _020B2D84 ; =UNK_021CDF04
+ mul r6, r4, r0
+ ldr r2, [r5, r7]
+ ldr r0, [r1, r3, lsl #0x2]
+ ldr r3, _020B2D88 ; =UNK_021CDF08
+ str r2, [r5, r6]
+ ldr r2, [r3, r7]
+ str r0, [r1, r4, lsl #0x2]
+ str r2, [r3, r6]
+ b _020B2D68
+_020B2D10:
+ ldr r1, _020B2D78 ; =UNK_021CDD70
+ mov r0, #0x18
+ ldr r2, [r1, #0x0]
+ ldr ip, _020B2D80 ; =UNK_021CDD74
+ mul r9, r2, r0
+ ldr r1, _020B2D8C ; =UNK_021CDEF4
+ mul r8, r4, r0
+ ldr lr, _020B2D90 ; =UNK_021CE1F4
+ add r6, r1, r9
+ ldr r5, [r12, r2, lsl #0x2]
+ add r7, r1, r8
+ ldmia r6!, {r0-r3}
+ stmia r7!, {r0-r3}
+ ldmia r6, {r0-r1}
+ add r6, lr, r9
+ stmia r7, {r0-r1}
+ add lr, lr, r8
+ ldmia r6!, {r0-r3}
+ stmia lr!, {r0-r3}
+ ldmia r6, {r0-r1}
+ stmia lr, {r0-r1}
+ str r5, [r12, r4, lsl #0x2]
+_020B2D68:
+ ldr r0, _020B2D78 ; =UNK_021CDD70
+ str r4, [r0, #0x0]
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020B2D74: .word UNK_021CDD6C
+_020B2D78: .word UNK_021CDD70
+_020B2D7C: .word UNK_021CDD68
+_020B2D80: .word UNK_021CDD74
+_020B2D84: .word UNK_021CDF04
+_020B2D88: .word UNK_021CDF08
+_020B2D8C: .word UNK_021CDEF4
+_020B2D90: .word UNK_021CE1F4
+_020B2D94: .word UNK_021CDDF4
+_020B2D98: .word UNK_021CDDF8
+
+ arm_func_start FUN_020B2D9C
+FUN_020B2D9C: ; 0x020B2D9C
+ stmdb sp!, {r4-r6,lr}
+ mov r4, r0
+ ldrh r0, [r4, #0x56]
+ cmp r0, #0x0
+ bne _020B2DBC
+ add r0, r4, #0x30
+ bl FUN_020B2E78
+ ldmia sp!, {r4-r6,pc}
+_020B2DBC:
+ bl FUN_020B2B58
+ ldrh r0, [r4, #0x56]
+ ands r0, r0, #0x8
+ beq _020B2E0C
+ ldr r0, _020B2E70 ; =UNK_021CDD6C
+ ldrsh r6, [r4, #0x52]
+ ldr r0, [r0, #0x0]
+ ldrsh r5, [r4, #0x50]
+ bl FUN_020B4F88
+ cmp r0, #0x0
+ ldr r0, _020B2E70 ; =UNK_021CDD6C
+ rsbne r5, r5, #0x0
+ ldr r0, [r0, #0x0]
+ bl FUN_020B4F74
+ cmp r0, #0x0
+ rsbne r6, r6, #0x0
+ mov r0, r5, lsl #0xc
+ mov r1, r6, lsl #0xc
+ mov r2, #0x0
+ bl FUN_020B2A08
+_020B2E0C:
+ ldrh r0, [r4, #0x56]
+ ands r0, r0, #0x4
+ beq _020B2E40
+ ldrh r0, [r4, #0x54]
+ ldr r2, _020B2E74 ; =UNK_020FFA38
+ mov r0, r0, asr #0x4
+ mov r1, r0, lsl #0x1
+ add r0, r1, #0x1
+ mov r3, r1, lsl #0x1
+ mov r1, r0, lsl #0x1
+ ldrsh r0, [r2, r3]
+ ldrsh r1, [r2, r1]
+ bl FUN_020B2794
+_020B2E40:
+ ldrh r0, [r4, #0x56]
+ ands r0, r0, #0x2
+ beq _020B2E5C
+ ldr r0, [r4, #0x48]
+ ldr r1, [r4, #0x4c]
+ mov r2, #0x1000
+ bl FUN_020B28B4
+_020B2E5C:
+ add r0, r4, #0x30
+ bl FUN_020B2E78
+ mov r0, #0x1
+ bl FUN_020B2B08
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B2E70: .word UNK_021CDD6C
+_020B2E74: .word UNK_020FFA38
+
+ arm_func_start FUN_020B2E78
+FUN_020B2E78: ; 0x020B2E78
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r5, r0
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x1
+ bne _020B309C
+ ldr r0, [r5, #0x0]
+ mov r2, #0x0
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0x0
+ bls _020B2ED0
+ ldr r3, _020B3174 ; =UNK_021CE8F4
+ mov r4, r2
+_020B2EAC:
+ add r0, r3, r2, lsl #0x2
+ str r4, [r0, #0x4]
+ ldr r0, [r5, #0x0]
+ add r2, r2, #0x1
+ ldrh r1, [r0, #0x2]
+ mov r0, r2, lsl #0x10
+ mov r2, r0, lsr #0x10
+ cmp r2, r1
+ blo _020B2EAC
+_020B2ED0:
+ ldr r0, _020B3178 ; =UNK_021CDD6C
+ mov r6, #0x1
+ ldr r1, [r0, #0x0]
+ ldr r0, _020B3174 ; =UNK_021CE8F4
+ str r6, [r0, #0x404]
+ ldr r0, [r1, #0x80]
+ cmp r0, #0x0
+ beq _020B2FD8
+ bl FUN_020B4948
+ str r0, [sp, #0x0]
+ mov r0, r6
+ bl FUN_020B497C
+ ldr r0, _020B3178 ; =UNK_021CDD6C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x80]
+ bl FUN_020B4958
+ ldr r2, [r5, #0x0]
+ mov r7, #0x0
+ ldrh r0, [r2, #0x0]
+ cmp r0, #0x0
+ bls _020B2FC0
+ mov r11, r7
+_020B2F28:
+ ldr r0, [r2, #0x4]
+ ldr r9, [r5, #0xc]
+ add r10, r0, r7, lsl #0x3
+ ldrh r0, [r10, #0x6]
+ and r0, r0, #0xff00
+ mov r0, r0, lsl #0x8
+ mov r8, r0, lsr #0x10
+ ldr r0, _020B3174 ; =UNK_021CE8F4
+ strh r8, [r0, #0x0]
+ bl FUN_020B2B58
+ ldr r0, _020B3178 ; =UNK_021CDD6C
+ ldrsh r4, [r10, #0x4]
+ ldr r0, [r0, #0x0]
+ ldrsh r10, [r10, #0x2]
+ bl FUN_020B4F88
+ cmp r0, #0x0
+ ldr r0, _020B3178 ; =UNK_021CDD6C
+ rsbne r10, r10, #0x0
+ ldr r0, [r0, #0x0]
+ bl FUN_020B4F74
+ cmp r0, #0x0
+ rsbne r4, r4, #0x0
+ mov r2, r11
+ mov r0, r10, lsl #0xc
+ mov r1, r4, lsl #0xc
+ bl FUN_020B2A08
+ mov r0, #0x58
+ mla r0, r8, r0, r9
+ bl FUN_020B3554
+ mov r0, r6
+ bl FUN_020B2B08
+ ldr r2, [r5, #0x0]
+ add r0, r7, #0x1
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r2, #0x0]
+ mov r7, r0, lsr #0x10
+ cmp r7, r1
+ blo _020B2F28
+_020B2FC0:
+ mov r0, #0x0
+ bl FUN_020B497C
+ ldr r0, [sp, #0x0]
+ bl FUN_020B4958
+ bl FUN_020B4968
+ b _020B3088
+_020B2FD8:
+ ldr r2, [r5, #0x0]
+ mov r7, #0x0
+ ldrh r0, [r2, #0x0]
+ cmp r0, #0x0
+ bls _020B3088
+ str r7, [sp, #0x4]
+ mov r11, #0x58
+_020B2FF4:
+ ldr r0, [r2, #0x4]
+ ldr r9, [r5, #0xc]
+ add r10, r0, r7, lsl #0x3
+ ldrh r0, [r10, #0x6]
+ and r0, r0, #0xff00
+ mov r0, r0, lsl #0x8
+ mov r8, r0, lsr #0x10
+ ldr r0, _020B3174 ; =UNK_021CE8F4
+ strh r8, [r0, #0x0]
+ bl FUN_020B2B58
+ ldr r0, _020B3178 ; =UNK_021CDD6C
+ ldrsh r4, [r10, #0x4]
+ ldr r0, [r0, #0x0]
+ ldrsh r10, [r10, #0x2]
+ bl FUN_020B4F88
+ cmp r0, #0x0
+ ldr r0, _020B3178 ; =UNK_021CDD6C
+ rsbne r10, r10, #0x0
+ ldr r0, [r0, #0x0]
+ bl FUN_020B4F74
+ cmp r0, #0x0
+ rsbne r4, r4, #0x0
+ ldr r2, [sp, #0x4]
+ mov r0, r10, lsl #0xc
+ mov r1, r4, lsl #0xc
+ bl FUN_020B2A08
+ mla r0, r8, r11, r9
+ bl FUN_020B3554
+ mov r0, r6
+ bl FUN_020B2B08
+ ldr r2, [r5, #0x0]
+ add r0, r7, #0x1
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r2, #0x0]
+ mov r7, r0, lsr #0x10
+ cmp r7, r1
+ blo _020B2FF4
+_020B3088:
+ ldr r0, _020B3174 ; =UNK_021CE8F4
+ mov r1, #0x0
+ str r1, [r0, #0x404]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+_020B309C:
+ ldr r0, _020B3178 ; =UNK_021CDD6C
+ ldr r7, [r5, #0xc]
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x80]
+ cmp r0, #0x0
+ beq _020B312C
+ bl FUN_020B4948
+ mov r6, r0
+ mov r0, #0x1
+ bl FUN_020B497C
+ ldr r0, _020B3178 ; =UNK_021CDD6C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x80]
+ bl FUN_020B4958
+ ldr r0, [r5, #0x0]
+ mov r4, #0x0
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x0
+ bls _020B3110
+ mov r8, #0x28
+_020B30EC:
+ mla r0, r4, r8, r7
+ bl FUN_020B3474
+ ldr r1, [r5, #0x0]
+ add r0, r4, #0x1
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r1, #0x0]
+ mov r4, r0, lsr #0x10
+ cmp r4, r1
+ blo _020B30EC
+_020B3110:
+ mov r0, #0x0
+ bl FUN_020B497C
+ mov r0, r6
+ bl FUN_020B4958
+ bl FUN_020B4968
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+_020B312C:
+ ldr r0, [r5, #0x0]
+ mov r4, #0x0
+ ldrh r0, [r0, #0x0]
+ cmp r0, #0x0
+ addls sp, sp, #0xc
+ ldmlsia sp!, {r4-r11,pc}
+ mov r6, #0x28
+_020B3148:
+ mla r0, r4, r6, r7
+ bl FUN_020B3474
+ ldr r1, [r5, #0x0]
+ add r0, r4, #0x1
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r1, #0x0]
+ mov r4, r0, lsr #0x10
+ cmp r4, r1
+ blo _020B3148
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020B3174: .word UNK_021CE8F4
+_020B3178: .word UNK_021CDD6C
+
+ arm_func_start FUN_020B317C
+FUN_020B317C: ; 0x020B317C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r1, _020B31EC ; =UNK_021CDD6C
+ mov r5, r0
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x80]
+ cmp r1, #0x0
+ beq _020B31E0
+ bl FUN_020B4948
+ mov r4, r0
+ mov r0, #0x1
+ bl FUN_020B497C
+ ldr r0, _020B31EC ; =UNK_021CDD6C
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x80]
+ bl FUN_020B4958
+ mov r0, r5
+ bl FUN_020B3554
+ mov r0, #0x0
+ bl FUN_020B497C
+ mov r0, r4
+ bl FUN_020B4958
+ bl FUN_020B4968
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+_020B31E0:
+ bl FUN_020B3554
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B31EC: .word UNK_021CDD6C
+
+ arm_func_start FUN_020B31F0
+FUN_020B31F0: ; 0x020B31F0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020B3260 ; =0x04000448
+ mov r2, #0x1
+ ldr r0, _020B3264 ; =UNK_021CDD6C
+ str r2, [r1, #0x0]
+ ldr r2, [r0, #0x0]
+ ldr r3, [r2, #0x7c]
+ cmp r3, #0x0
+ beq _020B324C
+ ands r0, r3, #0x1
+ ldrne r0, _020B3268 ; =UNK_021CDD68
+ movne r1, #0x0
+ strne r1, [r0, #0x0]
+ ands r0, r3, #0x2
+ beq _020B323C
+ mov r0, #0x0
+ str r0, [r2, #0x74]
+ bl FUN_020B4DA0
+_020B323C:
+ ldr r0, _020B3264 ; =UNK_021CDD6C
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x7c]
+_020B324C:
+ ldr r0, _020B3264 ; =UNK_021CDD6C
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020B3260: .word 0x04000448
+_020B3264: .word UNK_021CDD6C
+_020B3268: .word UNK_021CDD68
+
+ arm_func_start FUN_020B326C
+FUN_020B326C: ; 0x020B326C
+ stmdb sp!, {r4-r8,lr}
+ ldr r5, _020B330C ; =UNK_021CDD60
+ ldr r3, _020B3310 ; =UNK_021CDD6C
+ ldrh r6, [r5, #0x0]
+ ldr r2, _020B3314 ; =UNK_021CDD70
+ mov r4, #0x0
+ ldr r7, _020B3318 ; =0x0000FFFE
+ ldr r1, _020B331C ; =UNK_02106570
+ str r0, [r3, #0x0]
+ str r4, [r2, #0x0]
+ strh r7, [r1, #0x0]
+ cmp r6, #0x0
+ ble _020B32D0
+ ldr r8, _020B3320 ; =UNK_021CE4F4
+ mvn r7, #0x0
+ mov r6, #0x10
+_020B32AC:
+ mov r0, r7
+ mov r2, r6
+ add r1, r8, #0x10
+ bl MIi_CpuClearFast
+ ldrh r0, [r5, #0x0]
+ add r4, r4, #0x1
+ add r8, r8, #0x20
+ cmp r4, r0
+ blt _020B32AC
+_020B32D0:
+ ldr r4, _020B330C ; =UNK_021CDD60
+ mov r0, #0x0
+ ldr r3, _020B3324 ; =UNK_021CDD64
+ ldr r1, _020B3328 ; =UNK_021CDDF4
+ mov r2, #0x100
+ strh r0, [r4, #0x0]
+ strh r0, [r3, #0x0]
+ bl MIi_CpuClearFast
+ ldr r1, _020B332C ; =0x04000444
+ mov r2, #0x0
+ ldr r0, _020B3330 ; =0x04000454
+ str r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ bl FUN_020B4178
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020B330C: .word UNK_021CDD60
+_020B3310: .word UNK_021CDD6C
+_020B3314: .word UNK_021CDD70
+_020B3318: .word 0x0000FFFE
+_020B331C: .word UNK_02106570
+_020B3320: .word UNK_021CE4F4
+_020B3324: .word UNK_021CDD64
+_020B3328: .word UNK_021CDDF4
+_020B332C: .word 0x04000444
+_020B3330: .word 0x04000454
+
+ arm_func_start FUN_020B3334
+FUN_020B3334: ; 0x020B3334
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r1, r4
+ mov r0, #0x0
+ mov r2, #0x48
+ bl MIi_CpuClear16
+ mov r0, #0x1
+ str r0, [r4, #0x10]
+ mov r0, #0x3
+ ldr r1, _020B3380 ; =FUN_020B3EE0
+ str r0, [r4, #0x14]
+ ldr r0, _020B3384 ; =FUN_020B3E48
+ str r1, [r4, #0x18]
+ ldr r1, _020B3388 ; =FUN_020B3C40
+ str r0, [r4, #0x1c]
+ ldr r0, _020B338C ; =FUN_020B3B90
+ str r1, [r4, #0x20]
+ str r0, [r4, #0x24]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020B3380: .word FUN_020B3EE0
+_020B3384: .word FUN_020B3E48
+_020B3388: .word FUN_020B3C40
+_020B338C: .word FUN_020B3B90
+
+ arm_func_start FUN_020B3390
+FUN_020B3390: ; 0x020B3390
+ ldr r2, [r0, #0x70]
+ str r2, [r1, #0x30]
+ str r1, [r0, #0x70]
+ bx lr
+
+ arm_func_start FUN_020B33A0
+FUN_020B33A0: ; 0x020B33A0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ bl FUN_020B504C
+ mov r7, #0x0
+ str r7, [r4, #0x70]
+ str r7, [r4, #0x74]
+ str r7, [r4, #0x78]
+ str r7, [r4, #0x7c]
+ str r7, [r4, #0x80]
+ str r7, [r4, #0x84]
+ strh r7, [r4, #0x88]
+ strh r7, [r4, #0x8a]
+ str r7, [r4, #0x8c]
+ str r7, [r4, #0x90]
+ ldr r1, _020B3454 ; =UNK_021CDD70
+ strh r7, [r4, #0x94]
+ ldr r2, _020B3458 ; =0x0000FFFE
+ ldr r0, _020B345C ; =UNK_02106570
+ ldr r6, _020B3460 ; =UNK_021CE4F4
+ str r7, [r1, #0x0]
+ strh r2, [r0, #0x0]
+ mvn r5, #0x0
+ mov r4, #0x10
+_020B3400:
+ mov r0, r5
+ mov r2, r4
+ add r1, r6, #0x10
+ bl MIi_CpuClearFast
+ add r7, r7, #0x1
+ cmp r7, #0x20
+ add r6, r6, #0x20
+ blt _020B3400
+ ldr ip, _020B3464 ; =UNK_021CDD60
+ mov r0, #0x0
+ ldr r3, _020B3468 ; =UNK_021CDD64
+ ldr r1, _020B346C ; =UNK_021CDDF4
+ mov r2, #0x100
+ strh r0, [r12, #0x0]
+ strh r0, [r3, #0x0]
+ bl MIi_CpuClearFast
+ ldr r0, _020B3470 ; =UNK_021CDD68
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B3454: .word UNK_021CDD70
+_020B3458: .word 0x0000FFFE
+_020B345C: .word UNK_02106570
+_020B3460: .word UNK_021CE4F4
+_020B3464: .word UNK_021CDD60
+_020B3468: .word UNK_021CDD64
+_020B346C: .word UNK_021CDDF4
+_020B3470: .word UNK_021CDD68
+
+ arm_func_start FUN_020B3474
+FUN_020B3474: ; 0x020B3474
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r0, [r5, #0x8]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,pc}
+ ldr r4, [r5, #0x0]
+ bl FUN_020B2B58
+ ldrh r0, [r5, #0x1e]
+ ands r0, r0, #0x8
+ beq _020B34E4
+ ldr r0, _020B354C ; =UNK_021CDD6C
+ ldrsh r7, [r5, #0x1a]
+ ldr r0, [r0, #0x0]
+ ldrsh r6, [r5, #0x18]
+ bl FUN_020B4F88
+ cmp r0, #0x0
+ ldr r0, _020B354C ; =UNK_021CDD6C
+ rsbne r6, r6, #0x0
+ ldr r0, [r0, #0x0]
+ bl FUN_020B4F74
+ cmp r0, #0x0
+ rsbne r7, r7, #0x0
+ mov r0, r6, lsl #0xc
+ mov r1, r7, lsl #0xc
+ mov r2, #0x0
+ bl FUN_020B2A08
+_020B34E4:
+ ldrh r0, [r5, #0x1e]
+ ands r0, r0, #0x4
+ beq _020B3518
+ ldrh r0, [r5, #0x1c]
+ ldr r2, _020B3550 ; =UNK_020FFA38
+ mov r0, r0, asr #0x4
+ mov r1, r0, lsl #0x1
+ add r0, r1, #0x1
+ mov r3, r1, lsl #0x1
+ mov r1, r0, lsl #0x1
+ ldrsh r0, [r2, r3]
+ ldrsh r1, [r2, r1]
+ bl FUN_020B2794
+_020B3518:
+ ldrh r0, [r5, #0x1e]
+ ands r0, r0, #0x2
+ beq _020B3534
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5, #0x14]
+ mov r2, #0x1000
+ bl FUN_020B28B4
+_020B3534:
+ mov r0, r4
+ bl FUN_020B3554
+ mov r0, #0x1
+ bl FUN_020B2B08
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B354C: .word UNK_021CDD6C
+_020B3550: .word UNK_020FFA38
+
+ arm_func_start FUN_020B3554
+FUN_020B3554:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldrh r0, [r5, #0x4a]
+ ldr r4, [r5, #0x2c]
+ cmp r0, #0x0
+ bne _020B35C0
+ ldr r2, [r5, #0x34]
+ mvn r0, #0x0
+ cmp r2, r0
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ beq _020B35B0
+ ldr r1, _020B36B4 ; =UNK_02106574
+ mov r0, r4
+ str r2, [r1, #0x0]
+ bl FUN_020B36C0
+ ldr r0, _020B36B4 ; =UNK_02106574
+ mvn r1, #0x0
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+_020B35B0:
+ mov r0, r4
+ bl FUN_020B36C0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+_020B35C0:
+ bl FUN_020B2B58
+ ldrh r0, [r5, #0x4a]
+ ands r0, r0, #0x8
+ beq _020B3610
+ ldr r0, _020B36B8 ; =UNK_021CDD6C
+ ldrsh r7, [r5, #0x46]
+ ldr r0, [r0, #0x0]
+ ldrsh r6, [r5, #0x44]
+ bl FUN_020B4F88
+ cmp r0, #0x0
+ ldr r0, _020B36B8 ; =UNK_021CDD6C
+ rsbne r6, r6, #0x0
+ ldr r0, [r0, #0x0]
+ bl FUN_020B4F74
+ cmp r0, #0x0
+ rsbne r7, r7, #0x0
+ mov r0, r6, lsl #0xc
+ mov r1, r7, lsl #0xc
+ mov r2, #0x0
+ bl FUN_020B2A08
+_020B3610:
+ ldrh r0, [r5, #0x4a]
+ ands r0, r0, #0x4
+ beq _020B3644
+ ldrh r0, [r5, #0x48]
+ ldr r2, _020B36BC ; =UNK_020FFA38
+ mov r0, r0, asr #0x4
+ mov r1, r0, lsl #0x1
+ add r0, r1, #0x1
+ mov r3, r1, lsl #0x1
+ mov r1, r0, lsl #0x1
+ ldrsh r0, [r2, r3]
+ ldrsh r1, [r2, r1]
+ bl FUN_020B2794
+_020B3644:
+ ldrh r0, [r5, #0x4a]
+ ands r0, r0, #0x2
+ beq _020B3660
+ ldr r0, [r5, #0x3c]
+ ldr r1, [r5, #0x40]
+ mov r2, #0x1000
+ bl FUN_020B28B4
+_020B3660:
+ ldr r2, [r5, #0x34]
+ mvn r0, #0x0
+ cmp r2, r0
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ beq _020B369C
+ ldr r1, _020B36B4 ; =UNK_02106574
+ mov r0, r4
+ str r2, [r1, #0x0]
+ bl FUN_020B36C0
+ ldr r0, _020B36B4 ; =UNK_02106574
+ mvn r1, #0x0
+ str r1, [r0, #0x0]
+ b _020B36A4
+_020B369C:
+ mov r0, r4
+ bl FUN_020B36C0
+_020B36A4:
+ mov r0, #0x1
+ bl FUN_020B2B08
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B36B4: .word UNK_02106574
+_020B36B8: .word UNK_021CDD6C
+_020B36BC: .word UNK_020FFA38
+
+ arm_func_start FUN_020B36C0
+FUN_020B36C0: ; 0x020B36C0
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ ldr r5, _020B3B54 ; =UNK_021CDD6C
+ mov r10, r0
+ ldr r0, [r5, #0x0]
+ ldr r1, [r0, #0x7c]
+ str r0, [sp, #0x0]
+ ldr r9, [r0, #0x70]
+ ands r0, r1, #0x2
+ beq _020B38EC
+ ldr r0, [r9, #0x14]
+ cmp r0, #0x0
+ beq _020B3840
+ ldr r0, _020B3B58 ; =UNK_021CDD68
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020B3720
+ ldr r2, _020B3B5C ; =UNK_02106570
+ ldr r0, _020B3B60 ; =0x0000FFFE
+ ldrh r2, [r2, #0x0]
+ cmp r2, r0
+ movne r0, #0x1
+ bne _020B3724
+_020B3720:
+ mov r0, #0x0
+_020B3724:
+ cmp r0, #0x0
+ beq _020B37AC
+ ldr r0, _020B3B64 ; =UNK_021CE8F4
+ ldr r1, [r0, #0x404]
+ cmp r1, #0x0
+ beq _020B3788
+ ldrh r1, [r0, #0x0]
+ ldr r0, _020B3B68 ; =UNK_021CE8F8
+ ldr r1, [r0, r1, lsl #0x2]
+ cmp r1, #0x0
+ bne _020B37AC
+ bl FUN_020B4010
+ ldr r0, _020B3B6C ; =UNK_021CDD70
+ ldr r2, _020B3B70 ; =UNK_021CDDF4
+ ldr r0, [r0, #0x0]
+ ldr r1, _020B3B64 ; =UNK_021CE8F4
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0xd
+ ldrh r3, [r2, r0]
+ ldr r4, _020B3B74 ; =UNK_021CE4F4
+ ldrh r2, [r1, #0x0]
+ ldr r0, _020B3B68 ; =UNK_021CE8F8
+ add r1, r4, r3, lsl #0x5
+ str r1, [r0, r2, lsl #0x2]
+ b _020B37AC
+_020B3788:
+ bl FUN_020B4010
+ ldr r0, _020B3B6C ; =UNK_021CDD70
+ ldr r1, _020B3B70 ; =UNK_021CDDF4
+ ldr r0, [r0, #0x0]
+ ldr r2, _020B3B74 ; =UNK_021CE4F4
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0xd
+ ldrh r0, [r1, r0]
+ add r1, r2, r0, lsl #0x5
+_020B37AC:
+ ldr r0, _020B3B58 ; =UNK_021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldreq r0, _020B3B6C ; =UNK_021CDD70
+ ldreq r3, _020B3B78 ; =UNK_021CDEF4
+ ldreq r2, [r0, #0x0]
+ moveq r0, #0x18
+ mlaeq r0, r2, r0, r3
+ beq _020B37FC
+ ldr r2, _020B3B6C ; =UNK_021CDD70
+ mov r0, #0x18
+ ldr r2, [r2, #0x0]
+ ldr r3, _020B3B7C ; =UNK_021CDF04
+ mul r4, r2, r0
+ ldr r2, _020B3B80 ; =UNK_021CDF08
+ ldr r3, [r3, r4]
+ ldr r0, _020B3B84 ; =UNK_02106578
+ ldr r2, [r2, r4]
+ str r3, [r0, #0x10]
+ str r2, [r0, #0x14]
+_020B37FC:
+ bl FUN_020B4FAC
+ ldr r1, _020B3B88 ; =UNK_02106574
+ mvn r0, #0x0
+ ldr r1, [r1, #0x0]
+ cmp r1, r0
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ beq _020B3830
+ mov r0, r10
+ bl FUN_020B4BF4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+_020B3830:
+ mov r0, r10
+ bl FUN_020B4CDC
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+_020B3840:
+ ldr r0, _020B3B6C ; =UNK_021CDD70
+ ldr r1, _020B3B8C ; =UNK_021CDD74
+ ldr r2, [r0, #0x0]
+ ldr r0, [sp, #0x0]
+ ldr r1, [r1, r2, lsl #0x2]
+ bl FUN_020B4FA4
+ ldr r0, _020B3B58 ; =UNK_021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldreq r0, _020B3B6C ; =UNK_021CDD70
+ ldreq r2, _020B3B78 ; =UNK_021CDEF4
+ ldreq r1, [r0, #0x0]
+ moveq r0, #0x18
+ mlaeq r0, r1, r0, r2
+ beq _020B38A8
+ ldr r1, _020B3B6C ; =UNK_021CDD70
+ mov r0, #0x18
+ ldr r1, [r1, #0x0]
+ ldr r2, _020B3B7C ; =UNK_021CDF04
+ mul r3, r1, r0
+ ldr r1, _020B3B80 ; =UNK_021CDF08
+ ldr r2, [r2, r3]
+ ldr r0, _020B3B84 ; =UNK_02106578
+ ldr r1, [r1, r3]
+ str r2, [r0, #0x10]
+ str r1, [r0, #0x14]
+_020B38A8:
+ bl FUN_020B4FC4
+ ldr r1, _020B3B88 ; =UNK_02106574
+ mvn r0, #0x0
+ ldr r1, [r1, #0x0]
+ cmp r1, r0
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ beq _020B38DC
+ mov r0, r10
+ bl FUN_020B4BF4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+_020B38DC:
+ mov r0, r10
+ bl FUN_020B4CDC
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+_020B38EC:
+ cmp r9, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r11,pc}
+ ldr r4, _020B3B6C ; =UNK_021CDD70
+ ldr fp, _020B3B78 ; =UNK_021CDEF4
+ mov r7, #0x0
+ mov r6, #0x1
+_020B3908:
+ ldr r0, [r9, #0x10]
+ cmp r0, #0x0
+ beq _020B3B40
+ ldr r0, [r9, #0x14]
+ cmp r0, #0x0
+ beq _020B3A8C
+ ldr r8, [r5, #0x0]
+ mov r1, r9
+ str r9, [r8, #0x74]
+ mov r0, r8
+ bl FUN_020B4F9C
+ ldr r1, [r9, #0x28]
+ ldr r2, [r9, #0x2c]
+ mov r0, r8
+ bl FUN_020B5034
+ mov r0, r8
+ bl FUN_020B4E0C
+ ldr r0, _020B3B58 ; =UNK_021CDD68
+ mov r1, r7
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ bne _020B3978
+ ldr r0, _020B3B5C ; =UNK_02106570
+ ldrh r2, [r0, #0x0]
+ ldr r0, _020B3B60 ; =0x0000FFFE
+ cmp r2, r0
+ movne r0, r6
+ bne _020B397C
+_020B3978:
+ mov r0, r7
+_020B397C:
+ cmp r0, #0x0
+ beq _020B3A04
+ ldr r0, _020B3B64 ; =UNK_021CE8F4
+ ldr r0, [r0, #0x404]
+ cmp r0, #0x0
+ beq _020B39E4
+ ldr r0, _020B3B64 ; =UNK_021CE8F4
+ ldrh r1, [r0, #0x0]
+ add r0, r0, r1, lsl #0x2
+ ldr r1, [r0, #0x4]
+ cmp r1, #0x0
+ bne _020B3A04
+ bl FUN_020B4010
+ ldr r0, _020B3B64 ; =UNK_021CE8F4
+ ldr r2, [r4, #0x0]
+ ldrh r1, [r0, #0x0]
+ mov r0, r2, lsl #0x10
+ mov r2, r0, lsr #0xd
+ ldr r0, _020B3B70 ; =UNK_021CDDF4
+ ldrh r3, [r0, r2]
+ ldr r0, _020B3B64 ; =UNK_021CE8F4
+ add r2, r0, r1, lsl #0x2
+ ldr r0, _020B3B74 ; =UNK_021CE4F4
+ add r1, r0, r3, lsl #0x5
+ str r1, [r2, #0x4]
+ b _020B3A04
+_020B39E4:
+ bl FUN_020B4010
+ ldr r0, [r4, #0x0]
+ mov r0, r0, lsl #0x10
+ mov r1, r0, lsr #0xd
+ ldr r0, _020B3B70 ; =UNK_021CDDF4
+ ldrh r1, [r0, r1]
+ ldr r0, _020B3B74 ; =UNK_021CE4F4
+ add r1, r0, r1, lsl #0x5
+_020B3A04:
+ ldr r0, _020B3B58 ; =UNK_021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldreq r2, [r4, #0x0]
+ moveq r0, #0x18
+ mlaeq r0, r2, r0, r11
+ beq _020B3A44
+ ldr r2, [r4, #0x0]
+ mov r0, #0x18
+ mla r8, r2, r0, r11
+ ldr r0, _020B3B84 ; =UNK_02106578
+ ldr r3, [r8, #0x10]
+ mov r2, r0
+ str r3, [r2, #0x10]
+ ldr r3, [r8, #0x14]
+ str r3, [r2, #0x14]
+_020B3A44:
+ bl FUN_020B4FAC
+ ldr r0, _020B3B88 ; =UNK_02106574
+ ldr r1, [r0, #0x0]
+ mvn r0, #0x0
+ cmp r1, r0
+ movne r0, r6
+ moveq r0, r7
+ cmp r0, #0x0
+ beq _020B3A74
+ mov r0, r10
+ bl FUN_020B4BF4
+ b _020B3A7C
+_020B3A74:
+ mov r0, r10
+ bl FUN_020B4CDC
+_020B3A7C:
+ ldr r0, [r5, #0x0]
+ str r7, [r0, #0x74]
+ bl FUN_020B4DA0
+ b _020B3B40
+_020B3A8C:
+ ldr r8, [r5, #0x0]
+ mov r1, r9
+ mov r0, r8
+ str r9, [r8, #0x74]
+ bl FUN_020B4F9C
+ mov r0, r8
+ bl FUN_020B4E0C
+ ldr r2, [r4, #0x0]
+ ldr r1, _020B3B8C ; =UNK_021CDD74
+ ldr r0, [sp, #0x0]
+ ldr r1, [r1, r2, lsl #0x2]
+ bl FUN_020B4FA4
+ ldr r0, _020B3B58 ; =UNK_021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldreq r1, [r4, #0x0]
+ moveq r0, #0x18
+ mlaeq r0, r1, r0, r11
+ beq _020B3AFC
+ ldr r1, [r4, #0x0]
+ mov r0, #0x18
+ mla r3, r1, r0, r11
+ ldr r0, _020B3B84 ; =UNK_02106578
+ ldr r2, [r3, #0x10]
+ mov r1, r0
+ str r2, [r1, #0x10]
+ ldr r2, [r3, #0x14]
+ str r2, [r1, #0x14]
+_020B3AFC:
+ bl FUN_020B4FC4
+ ldr r0, _020B3B88 ; =UNK_02106574
+ ldr r1, [r0, #0x0]
+ mvn r0, #0x0
+ cmp r1, r0
+ movne r0, r6
+ moveq r0, r7
+ cmp r0, #0x0
+ beq _020B3B2C
+ mov r0, r10
+ bl FUN_020B4BF4
+ b _020B3B34
+_020B3B2C:
+ mov r0, r10
+ bl FUN_020B4CDC
+_020B3B34:
+ ldr r0, [r5, #0x0]
+ str r7, [r0, #0x74]
+ bl FUN_020B4DA0
+_020B3B40:
+ ldr r9, [r9, #0x30]
+ cmp r9, #0x0
+ bne _020B3908
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020B3B54: .word UNK_021CDD6C
+_020B3B58: .word UNK_021CDD68
+_020B3B5C: .word UNK_02106570
+_020B3B60: .word 0x0000FFFE
+_020B3B64: .word UNK_021CE8F4
+_020B3B68: .word UNK_021CE8F8
+_020B3B6C: .word UNK_021CDD70
+_020B3B70: .word UNK_021CDDF4
+_020B3B74: .word UNK_021CE4F4
+_020B3B78: .word UNK_021CDEF4
+_020B3B7C: .word UNK_021CDF04
+_020B3B80: .word UNK_021CDF08
+_020B3B84: .word UNK_02106578
+_020B3B88: .word UNK_02106574
+_020B3B8C: .word UNK_021CDD74
+
+ arm_func_start FUN_020B3B90
+FUN_020B3B90: ; 0x020B3B90
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ ldr r0, _020B3C24 ; =UNK_021CDD6C
+ mov r12, r1
+ ldr r0, [r0, #0x0]
+ mov r3, r2
+ ldr r1, [r0, #0x74]
+ ldr r2, [r1, #0x44]
+ cmp r2, #0x0
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4-r6,pc}
+ ldr r2, _020B3C28 ; =UNK_021CDD68
+ ldr r2, [r2, #0x0]
+ cmp r2, #0x0
+ ldreq r2, _020B3C2C ; =UNK_021CDD70
+ ldreq r4, _020B3C30 ; =UNK_021CDEF4
+ ldreq lr, [r2, #0x0]
+ moveq r2, #0x18
+ mlaeq r6, lr, r2, r4
+ beq _020B3C0C
+ ldr lr, _020B3C2C ; =UNK_021CDD70
+ mov r2, #0x18
+ ldr lr, [lr, #0x0]
+ ldr r4, _020B3C34 ; =UNK_021CDF04
+ mul r5, lr, r2
+ ldr r2, _020B3C38 ; =UNK_021CDF08
+ ldr r4, [r4, r5]
+ ldr r6, _020B3C3C ; =UNK_02106578
+ ldr r2, [r2, r5]
+ str r4, [r6, #0x10]
+ str r2, [r6, #0x14]
+_020B3C0C:
+ str r6, [sp, #0x0]
+ ldr lr, [r1, #0x44]
+ mov r2, r12
+ blx lr
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B3C24: .word UNK_021CDD6C
+_020B3C28: .word UNK_021CDD68
+_020B3C2C: .word UNK_021CDD70
+_020B3C30: .word UNK_021CDEF4
+_020B3C34: .word UNK_021CDF04
+_020B3C38: .word UNK_021CDF08
+_020B3C3C: .word UNK_02106578
+
+ arm_func_start FUN_020B3C40
+FUN_020B3C40: ; 0x020B3C40
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ ldr r3, _020B3E2C ; =UNK_021CDD6C
+ add r4, r0, #0x38
+ ldr r0, [r3, #0x0]
+ mov r6, r1
+ mov r5, r2
+ bl FUN_020B278C
+ cmp r0, #0x0
+ beq _020B3C90
+ ldrh r1, [r4, #0x4]
+ and r1, r1, #0xf000
+ mov r1, r1, lsl #0x4
+ mov r1, r1, lsr #0x10
+ bl FUN_020B10B0
+ ldr r1, [r4, #0x4]
+ and r0, r0, #0xf
+ bic r1, r1, #0xf000
+ orr r0, r1, r0, lsl #0xc
+ str r0, [r4, #0x4]
+_020B3C90:
+ ldr r0, _020B3E2C ; =UNK_021CDD6C
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x84]
+ cmp r0, #0x0
+ beq _020B3DA4
+ ldr r0, [r1, #0x84]
+ ands r0, r0, #0x1
+ beq _020B3CC8
+ ldrh r0, [r1, #0x88]
+ ldr r1, [r4, #0x4]
+ bic r1, r1, #0xc00
+ and r0, r0, #0x3
+ orr r0, r1, r0, lsl #0xa
+ str r0, [r4, #0x4]
+_020B3CC8:
+ ldr r0, _020B3E2C ; =UNK_021CDD6C
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x84]
+ ands r0, r0, #0x2
+ beq _020B3CF4
+ ldrh r0, [r1, #0x8a]
+ ldr r1, [r4, #0x4]
+ bic r1, r1, #0xf000
+ and r0, r0, #0xf
+ orr r0, r1, r0, lsl #0xc
+ str r0, [r4, #0x4]
+_020B3CF4:
+ ldr r0, _020B3E2C ; =UNK_021CDD6C
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x84]
+ ands r0, r0, #0x10
+ beq _020B3D2C
+ ldr r2, [r4, #0x4]
+ ldrh r0, [r1, #0x94]
+ mov r1, r2, lsl #0x10
+ bic r2, r2, #0xf000
+ add r0, r0, r1, lsr #0x1c
+ and r0, r0, #0xf
+ and r0, r0, #0xf
+ orr r0, r2, r0, lsl #0xc
+ str r0, [r4, #0x4]
+_020B3D2C:
+ ldr r0, _020B3E2C ; =UNK_021CDD6C
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x84]
+ ands r0, r0, #0x4
+ beq _020B3D60
+ ldr r0, [r1, #0x90]
+ cmp r0, #0x0
+ ldrne r0, [r4, #0x0]
+ orrne r0, r0, #0x1000
+ strne r0, [r4, #0x0]
+ ldreq r0, [r4, #0x0]
+ biceq r0, r0, #0x1000
+ streq r0, [r4, #0x0]
+_020B3D60:
+ ldr r0, _020B3E2C ; =UNK_021CDD6C
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x84]
+ ands r0, r0, #0x8
+ beq _020B3DA4
+ ldr r0, [r4, #0x0]
+ ldrh r2, [r4, #0x4]
+ ldr r1, [r1, #0x8c]
+ bic r0, r0, #0xc00
+ orr r0, r0, r1, lsl #0xa
+ str r0, [r4, #0x0]
+ ldrh r0, [r4, #0x4]
+ and r1, r2, #0xf000
+ mov r1, r1, asr #0xc
+ bic r0, r0, #0xf000
+ orr r0, r0, r1, lsl #0xc
+ strh r0, [r4, #0x4]
+_020B3DA4:
+ ldr r0, _020B3E2C ; =UNK_021CDD6C
+ ldr r0, [r0, #0x0]
+ ldr r1, [r0, #0x74]
+ ldr r2, [r1, #0x40]
+ cmp r2, #0x0
+ addeq sp, sp, #0x8
+ ldmeqia sp!, {r4-r6,pc}
+ ldr r2, _020B3E30 ; =UNK_021CDD68
+ ldr r2, [r2, #0x0]
+ cmp r2, #0x0
+ ldreq r2, _020B3E34 ; =UNK_021CDD70
+ ldreq r4, _020B3E38 ; =UNK_021CDEF4
+ ldreq r3, [r2, #0x0]
+ moveq r2, #0x18
+ mlaeq r4, r3, r2, r4
+ beq _020B3E10
+ ldr r3, _020B3E34 ; =UNK_021CDD70
+ mov r2, #0x18
+ ldr r4, [r3, #0x0]
+ ldr r3, _020B3E3C ; =UNK_021CDF04
+ mul r12, r4, r2
+ ldr r2, _020B3E40 ; =UNK_021CDF08
+ ldr r3, [r3, r12]
+ ldr r4, _020B3E44 ; =UNK_02106578
+ ldr r2, [r2, r12]
+ str r3, [r4, #0x10]
+ str r2, [r4, #0x14]
+_020B3E10:
+ str r4, [sp, #0x0]
+ ldr r4, [r1, #0x40]
+ mov r2, r6
+ mov r3, r5
+ blx r4
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B3E2C: .word UNK_021CDD6C
+_020B3E30: .word UNK_021CDD68
+_020B3E34: .word UNK_021CDD70
+_020B3E38: .word UNK_021CDEF4
+_020B3E3C: .word UNK_021CDF04
+_020B3E40: .word UNK_021CDF08
+_020B3E44: .word UNK_02106578
+
+ arm_func_start FUN_020B3E48
+FUN_020B3E48: ; 0x020B3E48
+ stmdb sp!, {r4,lr}
+ ldr r0, _020B3EC4 ; =UNK_021CDD6C
+ mov r2, r1
+ ldr r0, [r0, #0x0]
+ ldr r1, [r0, #0x74]
+ ldr r3, [r1, #0x3c]
+ cmp r3, #0x0
+ ldmeqia sp!, {r4,pc}
+ ldr r3, _020B3EC8 ; =UNK_021CDD68
+ ldr r3, [r3, #0x0]
+ cmp r3, #0x0
+ ldreq r3, _020B3ECC ; =UNK_021CDD70
+ ldreq lr, _020B3ED0 ; =UNK_021CDEF4
+ ldreq r12, [r3, #0x0]
+ moveq r3, #0x18
+ mlaeq r3, r12, r3, lr
+ beq _020B3EB8
+ ldr ip, _020B3ECC ; =UNK_021CDD70
+ mov r3, #0x18
+ ldr r12, [r12, #0x0]
+ ldr lr, _020B3ED4 ; =UNK_021CDF04
+ mul r4, r12, r3
+ ldr ip, _020B3ED8 ; =UNK_021CDF08
+ ldr lr, [lr, r4]
+ ldr r3, _020B3EDC ; =UNK_02106578
+ ldr r12, [r12, r4]
+ str lr, [r3, #0x10]
+ str r12, [r3, #0x14]
+_020B3EB8:
+ ldr r12, [r1, #0x3c]
+ blx r12
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020B3EC4: .word UNK_021CDD6C
+_020B3EC8: .word UNK_021CDD68
+_020B3ECC: .word UNK_021CDD70
+_020B3ED0: .word UNK_021CDEF4
+_020B3ED4: .word UNK_021CDF04
+_020B3ED8: .word UNK_021CDF08
+_020B3EDC: .word UNK_02106578
+
+ arm_func_start FUN_020B3EE0
+FUN_020B3EE0: ; 0x020B3EE0
+ stmdb sp!, {r4-r6,lr}
+ ldr r2, _020B3FF4 ; =UNK_021CDD6C
+ mov r6, r0
+ ldr r0, [r2, #0x0]
+ mov r5, r1
+ ldr r4, [r0, #0x74]
+ ldr r0, [r4, #0x34]
+ cmp r0, #0x0
+ beq _020B3F7C
+ ldr r0, _020B3FF8 ; =UNK_021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldreq r0, _020B3FFC ; =UNK_021CDD70
+ ldreq r1, _020B4000 ; =UNK_021CDEF4
+ ldreq r2, [r0, #0x0]
+ moveq r0, #0x18
+ mlaeq r1, r2, r0, r1
+ beq _020B3F54
+ ldr r1, _020B3FFC ; =UNK_021CDD70
+ mov r0, #0x18
+ ldr r2, [r1, #0x0]
+ ldr r1, _020B4004 ; =UNK_021CDF04
+ mul r3, r2, r0
+ ldr r0, _020B4008 ; =UNK_021CDF08
+ ldr r2, [r1, r3]
+ ldr r1, _020B400C ; =UNK_02106578
+ ldr r0, [r0, r3]
+ str r2, [r1, #0x10]
+ str r0, [r1, #0x14]
+_020B3F54:
+ ldr r3, [r4, #0x34]
+ mov r0, r5
+ mov r2, r4
+ blx r3
+ cmp r0, #0x0
+ moveq r0, #0x0
+ streq r0, [r6, #0x30]
+ ldmeqia sp!, {r4-r6,pc}
+ mov r0, #0x1
+ str r0, [r6, #0x30]
+_020B3F7C:
+ ldr r0, [r4, #0x38]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ ldr r0, _020B3FF8 ; =UNK_021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldreq r0, _020B3FFC ; =UNK_021CDD70
+ ldreq r2, _020B4000 ; =UNK_021CDEF4
+ ldreq r1, [r0, #0x0]
+ moveq r0, #0x18
+ mlaeq r3, r1, r0, r2
+ beq _020B3FD8
+ ldr r1, _020B3FFC ; =UNK_021CDD70
+ mov r0, #0x18
+ ldr r2, [r1, #0x0]
+ ldr r1, _020B4004 ; =UNK_021CDF04
+ mul r6, r2, r0
+ ldr r0, _020B4008 ; =UNK_021CDF08
+ ldr r1, [r1, r6]
+ ldr r3, _020B400C ; =UNK_02106578
+ ldr r0, [r0, r6]
+ str r1, [r3, #0x10]
+ str r0, [r3, #0x14]
+_020B3FD8:
+ ldr r0, _020B3FF4 ; =UNK_021CDD6C
+ ldr r6, [r4, #0x38]
+ ldr r0, [r0, #0x0]
+ mov r1, r4
+ mov r2, r5
+ blx r6
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B3FF4: .word UNK_021CDD6C
+_020B3FF8: .word UNK_021CDD68
+_020B3FFC: .word UNK_021CDD70
+_020B4000: .word UNK_021CDEF4
+_020B4004: .word UNK_021CDF04
+_020B4008: .word UNK_021CDF08
+_020B400C: .word UNK_02106578
+
+ arm_func_start FUN_020B4010
+FUN_020B4010:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r0, _020B4154 ; =UNK_021CDD70
+ ldr r1, _020B4158 ; =UNK_021CDDF4
+ ldr r0, [r0, #0x0]
+ mov r2, #0x1
+ mov r0, r0, lsl #0x10
+ add r3, r1, r0, lsr #0xd
+ ldrh r0, [r3, #0x4]
+ cmp r0, #0x1
+ beq _020B4044
+ cmp r0, #0x2
+ movne r2, #0x0
+_020B4044:
+ cmp r2, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+ ldr r0, _020B415C ; =UNK_021CDD60
+ mov r2, #0x10
+ ldrh r4, [r0, #0x0]
+ cmp r4, #0x1f
+ addcc r1, r4, #0x1
+ strcch r1, [r0, #0x0]
+ ldr r0, _020B4160 ; =UNK_021CE4F4
+ ldrh r5, [r3, #0x2]
+ add r0, r0, r4, lsl #0x5
+ add r1, r0, #0x10
+ mvn r0, #0x0
+ strh r4, [r3, #0x0]
+ bl MIi_CpuClearFast
+ ldr r0, _020B4154 ; =UNK_021CDD70
+ ldr r1, _020B4164 ; =UNK_021CDD68
+ ldr r0, [r0, #0x0]
+ ldr r2, [r1, #0x0]
+ mov r1, r0, lsl #0x10
+ cmp r2, #0x0
+ ldr r3, _020B4158 ; =UNK_021CDDF4
+ mov r1, r1, lsr #0xd
+ ldrh r1, [r3, r1]
+ ldr r3, _020B4160 ; =UNK_021CE4F4
+ moveq r2, #0x18
+ add r1, r3, r1, lsl #0x5
+ ldreq r3, _020B4168 ; =UNK_021CE1F4
+ mlaeq r12, r0, r2, r3
+ beq _020B40E4
+ mov r2, #0x18
+ mul r3, r0, r2
+ ldr r2, _020B416C ; =UNK_021CDF04
+ ldr r0, _020B4170 ; =UNK_021CDF08
+ ldr r2, [r2, r3]
+ ldr ip, _020B4174 ; =UNK_02106578
+ ldr r0, [r0, r3]
+ str r2, [r12, #0x10]
+ str r0, [r12, #0x14]
+_020B40E4:
+ ldr r2, [r12, #0x0]
+ ldr r0, _020B4154 ; =UNK_021CDD70
+ str r2, [r1, #0x0]
+ ldr r2, [r12, #0x4]
+ str r2, [r1, #0x4]
+ ldr r2, [r12, #0x8]
+ str r2, [r1, #0x8]
+ ldr r2, [r12, #0xc]
+ str r2, [r1, #0xc]
+ ldr r0, [r0, #0x0]
+ mov r0, r0, lsl #0x10
+ movs lr, r0, lsr #0x10
+ addmi sp, sp, #0x4
+ ldmmiia sp!, {r4-r5,pc}
+ ldr r3, _020B4158 ; =UNK_021CDDF4
+ mov r0, #0x3
+_020B4124:
+ add r2, r3, lr, lsl #0x3
+ ldrh r1, [r2, #0x2]
+ mov r12, lr, lsl #0x3
+ cmp r5, r1
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,pc}
+ strh r0, [r2, #0x4]
+ strh r4, [r3, r12]
+ subs lr, lr, #0x1
+ bpl _020B4124
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B4154: .word UNK_021CDD70
+_020B4158: .word UNK_021CDDF4
+_020B415C: .word UNK_021CDD60
+_020B4160: .word UNK_021CE4F4
+_020B4164: .word UNK_021CDD68
+_020B4168: .word UNK_021CE1F4
+_020B416C: .word UNK_021CDF04
+_020B4170: .word UNK_021CDF08
+_020B4174: .word UNK_02106578
+
+ arm_func_start FUN_020B4178
+FUN_020B4178: ; 0x020B4178
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r0, _020B4220 ; =UNK_021CDD68
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020B41B8
+ ldr r1, _020B4224 ; =UNK_021CDD70
+ mov r0, #0x18
+ ldr r12, [r1, #0x0]
+ ldr r1, _020B4228 ; =UNK_021CDF04
+ mul r3, r12, r0
+ mov r2, #0x0
+ ldr r0, _020B422C ; =UNK_021CDF08
+ str r2, [r1, r3]
+ str r2, [r0, r3]
+ b _020B420C
+_020B41B8:
+ ldr r0, _020B4224 ; =UNK_021CDD70
+ mov lr, #0x18
+ ldr r1, [r0, #0x0]
+ ldr r4, _020B4230 ; =UNK_021CDEF4
+ mul r3, r1, lr
+ mov r2, #0x1000
+ str r2, [r4, r3]
+ add r5, r4, r3
+ mov r1, #0x0
+ str r1, [r5, #0x4]
+ str r1, [r5, #0x8]
+ str r2, [r5, #0xc]
+ str r1, [r5, #0x10]
+ str r1, [r5, #0x14]
+ ldr r12, [r0, #0x0]
+ ldr r4, _020B4234 ; =UNK_021CE1F4
+ ldmia r5!, {r0-r3}
+ mla lr, r12, lr, r4
+ stmia lr!, {r0-r3}
+ ldmia r5, {r0-r1}
+ stmia lr, {r0-r1}
+_020B420C:
+ ldr r0, _020B4238 ; =UNK_021CDD74
+ mov r1, #0x0
+ str r1, [r0, r12, lsl #0x2]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B4220: .word UNK_021CDD68
+_020B4224: .word UNK_021CDD70
+_020B4228: .word UNK_021CDF04
+_020B422C: .word UNK_021CDF08
+_020B4230: .word UNK_021CDEF4
+_020B4234: .word UNK_021CE1F4
+_020B4238: .word UNK_021CDD74
+
+ arm_func_start FUN_020B423C
+FUN_020B423C: ; 0x020B423C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x1c
+ ldr r4, [r0, #0x4]
+ ldr r3, [r1, #0x8]
+ mov r12, r2
+ smull r6, r5, r4, r3
+ ldr r4, [r0, #0x0]
+ ldr r3, [r1, #0x0]
+ cmp r12, r1
+ smlal r6, r5, r4, r3
+ mov r3, r6, lsr #0xc
+ addeq r2, sp, #0x0
+ orr r3, r3, r5, lsl #0x14
+ str r3, [r2, #0x0]
+ ldr r4, [r0, #0x4]
+ ldr r3, [r1, #0xc]
+ ldr r5, [r0, #0x0]
+ smull r7, r6, r4, r3
+ ldr r3, [r1, #0x4]
+ add lr, sp, #0x0
+ smlal r7, r6, r5, r3
+ mov r3, r7, lsr #0xc
+ orr r3, r3, r6, lsl #0x14
+ str r3, [r2, #0x4]
+ ldr r4, [r0, #0xc]
+ ldr r3, [r1, #0x8]
+ ldr r5, [r0, #0x8]
+ smull r7, r6, r4, r3
+ ldr r3, [r1, #0x0]
+ cmp r2, lr
+ smlal r7, r6, r5, r3
+ mov r3, r7, lsr #0xc
+ orr r3, r3, r6, lsl #0x14
+ str r3, [r2, #0x8]
+ ldr r4, [r0, #0xc]
+ ldr r3, [r1, #0xc]
+ ldr r5, [r0, #0x8]
+ smull r7, r6, r4, r3
+ ldr r3, [r1, #0x4]
+ smlal r7, r6, r5, r3
+ mov r3, r7, lsr #0xc
+ orr r3, r3, r6, lsl #0x14
+ str r3, [r2, #0xc]
+ ldr r4, [r0, #0x14]
+ ldr r3, [r1, #0x8]
+ ldr r5, [r0, #0x10]
+ smull r7, r6, r4, r3
+ ldr r3, [r1, #0x0]
+ ldr r4, [r1, #0x10]
+ smlal r7, r6, r5, r3
+ mov r3, r7, lsr #0xc
+ orr r3, r3, r6, lsl #0x14
+ add r3, r4, r3
+ str r3, [r2, #0x10]
+ ldr r4, [r0, #0x14]
+ ldr r3, [r1, #0xc]
+ ldr r5, [r0, #0x10]
+ ldr r0, [r1, #0x4]
+ smull r6, r3, r4, r3
+ smlal r6, r3, r5, r0
+ mov r0, r6, lsr #0xc
+ ldr r1, [r1, #0x14]
+ orr r0, r0, r3, lsl #0x14
+ add r0, r1, r0
+ str r0, [r2, #0x14]
+ ldmeqia lr!, {r0-r3}
+ stmeqia r12!, {r0-r3}
+ ldmeqia lr, {r0-r1}
+ stmeqia r12, {r0-r1}
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020B4358
+FUN_020B4358: ; 0x020B4358
+ stmdb sp!, {r4,lr}
+ ldr r2, _020B43A0 ; =UNK_021CED04
+ mov r1, #0x30
+ ldr r2, [r2, #0x0]
+ mla r4, r0, r1, r2
+ mov r0, r4
+ bl FUN_020B10CC
+ mov r0, #0x0
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x10]
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x1c]
+ str r0, [r4, #0x20]
+ str r0, [r4, #0x24]
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020B43A0: .word UNK_021CED04
+
+ arm_func_start FUN_020B43A4
+FUN_020B43A4: ; 0x020B43A4
+ ldr r1, _020B43F8 ; =UNK_021CED00
+ mov r0, #0x0
+ ldr r3, [r1, #0x0]
+ cmp r3, #0x0
+ bls _020B43F0
+ ldr r1, _020B43FC ; =UNK_021CED04
+ ldr r2, [r1, #0x0]
+ mov r12, r2
+_020B43C4:
+ ldr r1, [r12, #0x1c]
+ cmp r1, #0x1
+ movne r1, #0x30
+ mlane r1, r0, r1, r2
+ movne r2, #0x1
+ strne r2, [r1, #0x1c]
+ bxne lr
+ add r0, r0, #0x1
+ cmp r0, r3
+ add r12, r12, #0x30
+ blo _020B43C4
+_020B43F0:
+ mvn r0, #0x0
+ bx lr
+ .balign 4
+_020B43F8: .word UNK_021CED00
+_020B43FC: .word UNK_021CED04
+
+ arm_func_start FUN_020B4400
+FUN_020B4400: ; 0x020B4400
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ mov r4, r2
+ bl FUN_020B469C
+ mvn r1, #0x0
+ str r1, [r0, #0x24]
+ str r5, [r0, #0x28]
+ str r4, [r0, #0x2c]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020B442C
+FUN_020B442C: ; 0x020B442C
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x14
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r0, _020B4558 ; =UNK_021CED00
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addls sp, sp, #0x14
+ ldmlsia sp!, {r4-r11,pc}
+ ldr r0, [sp, #0x0]
+ mov r5, #0x1
+ str r0, [sp, #0x4]
+ mov r11, r0
+ str r0, [sp, #0x8]
+ str r0, [sp, #0xc]
+_020B4468:
+ ldr r0, _020B455C ; =UNK_021CED04
+ ldr r1, [r0, #0x0]
+ ldr r0, [sp, #0x4]
+ add r8, r1, r0
+ ldr r0, [r8, #0x1c]
+ cmp r0, #0x0
+ beq _020B4528
+ ldr r9, [sp, #0x8]
+ mov r0, r9
+ cmp r0, #0x3
+ bge _020B4520
+ add r4, r8, #0x24
+_020B4498:
+ mov r6, r5, lsl r9
+ mov r1, r11
+ ldr r0, [r8, #0x24]
+ ands r0, r0, r6
+ beq _020B44B8
+ ldr r0, [r8, #0x20]
+ ands r0, r0, r6
+ movne r1, r5
+_020B44B8:
+ cmp r1, #0x0
+ beq _020B4514
+ ldr r0, _020B4560 ; =UNK_020FF8C4
+ cmp r9, #0x0
+ ldr r7, [r0, r9, lsl #0x2]
+ ldreq r10, [r8, #0x14]
+ mov r0, r8
+ mov r1, r9
+ ldrne r10, [r8, #0x10]
+ bl FUN_020B10BC
+ mov r1, r0
+ mov r0, r7
+ ldr r7, _020B4564 ; =UNK_021CECFC
+ ldr r2, [r8, #0x28]
+ ldr r3, [r8, #0x2c]
+ ldr r7, [r7, #0x0]
+ add r2, r10, r2
+ blx r7
+ cmp r0, #0x0
+ ldrne r1, [r4, #0x0]
+ mvnne r0, r6
+ andne r0, r1, r0
+ strne r0, [r4, #0x0]
+_020B4514:
+ add r9, r9, #0x1
+ cmp r9, #0x3
+ blt _020B4498
+_020B4520:
+ ldr r0, [sp, #0xc]
+ str r0, [r8, #0x20]
+_020B4528:
+ ldr r0, _020B4558 ; =UNK_021CED00
+ ldr r1, [r0, #0x0]
+ ldr r0, [sp, #0x0]
+ add r0, r0, #0x1
+ str r0, [sp, #0x0]
+ cmp r0, r1
+ ldr r0, [sp, #0x4]
+ add r0, r0, #0x30
+ str r0, [sp, #0x4]
+ blo _020B4468
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020B4558: .word UNK_021CED00
+_020B455C: .word UNK_021CED04
+_020B4560: .word UNK_020FF8C4
+_020B4564: .word UNK_021CECFC
+
+ arm_func_start FUN_020B4568
+FUN_020B4568: ; 0x020B4568
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr ip, _020B45E4 ; =UNK_021CECFC
+ movs r6, r1
+ ldr r1, _020B45E8 ; =UNK_021CED00
+ ldr r3, _020B45EC ; =UNK_021CED04
+ mov r7, r0
+ str r2, [r12, #0x0]
+ mov r5, #0x0
+ addeq sp, sp, #0x4
+ str r7, [r3, #0x0]
+ str r6, [r1, #0x0]
+ ldmeqia sp!, {r4-r7,pc}
+ mov r4, r5
+_020B45A0:
+ mov r0, r7
+ bl FUN_020B10CC
+ str r4, [r7, #0xc]
+ str r4, [r7, #0x10]
+ str r4, [r7, #0x14]
+ str r4, [r7, #0x18]
+ str r4, [r7, #0x1c]
+ str r4, [r7, #0x20]
+ str r4, [r7, #0x24]
+ str r4, [r7, #0x28]
+ add r5, r5, #0x1
+ str r4, [r7, #0x2c]
+ cmp r5, r6
+ add r7, r7, #0x30
+ blo _020B45A0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B45E4: .word UNK_021CECFC
+_020B45E8: .word UNK_021CED00
+_020B45EC: .word UNK_021CED04
+
+ arm_func_start FUN_020B45F0
+FUN_020B45F0: ; 0x020B45F0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr ip, _020B4698 ; =UNK_021CED04
+ mov r4, #0x30
+ ldr r12, [r12, #0x0]
+ mov r7, r1
+ mla r4, r0, r4, r12
+ mov r0, r4
+ mov r6, r2
+ mov r5, r3
+ bl FUN_020B10CC
+ mvn r0, #0x0
+ cmp r7, r0
+ beq _020B4638
+ mov r0, r4
+ mov r2, r7
+ mov r1, #0x0
+ bl FUN_020B10C4
+_020B4638:
+ mvn r0, #0x0
+ cmp r6, r0
+ beq _020B4654
+ mov r0, r4
+ mov r2, r6
+ mov r1, #0x1
+ bl FUN_020B10C4
+_020B4654:
+ mvn r0, #0x0
+ cmp r5, r0
+ beq _020B4670
+ mov r0, r4
+ mov r2, r5
+ mov r1, #0x2
+ bl FUN_020B10C4
+_020B4670:
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ str r1, [r4, #0xc]
+ ldr r1, [sp, #0x20]
+ str r0, [r4, #0x10]
+ ldr r0, [sp, #0x24]
+ str r1, [r4, #0x14]
+ str r0, [r4, #0x18]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B4698: .word UNK_021CED04
+
+ arm_func_start FUN_020B469C
+FUN_020B469C: ; 0x020B469C
+ ldr r2, _020B46B0 ; =UNK_021CED04
+ mov r1, #0x30
+ ldr r2, [r2, #0x0]
+ mla r0, r1, r0, r2
+ bx lr
+ .balign 4
+_020B46B0: .word UNK_021CED04
+
+ arm_func_start FUN_020B46B4
+FUN_020B46B4: ; 0x020B46B4
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x1c
+ add r12, sp, #0x4
+ mov r5, r1
+ mov r4, r2
+ mov r7, r3
+ mov r6, r0
+ ldr r1, [sp, #0x30]
+ ldr r2, [sp, #0x34]
+ ldr r3, [sp, #0x38]
+ mov r0, r7
+ str r12, [sp, #0x0]
+ bl FUN_020B498C
+ ldr r2, [r7, #0x0]
+ and r1, r2, #0x300
+ cmp r1, #0x100
+ beq _020B4708
+ cmp r1, #0x300
+ beq _020B4708
+ and r0, r2, #0x30000000
+ orr r1, r1, r0
+_020B4708:
+ cmp r1, #0x300
+ bne _020B478C
+ ldr r0, _020B4914 ; =0xC000C000
+ ldr r1, _020B4918 ; =UNK_021CED08
+ and r0, r2, r0
+ and r2, r0, #0xc0000000
+ mov r12, r2, lsr #0x1e
+ and r0, r0, #0xc000
+ mov lr, r0, asr #0xe
+ ldr r3, _020B491C ; =UNK_020FF8AC
+ ldr r0, [r1, #0x0]
+ ldr r2, _020B4920 ; =UNK_020FF894
+ cmp r0, #0x0
+ ldrne r0, _020B4924 ; =UNK_021CED10
+ mov r12, r12, lsl #0x1
+ add r1, r2, lr, lsl #0x3
+ add r3, r3, lr, lsl #0x3
+ ldrh r2, [r12, r3]
+ ldrh r1, [r12, r1]
+ ldrne r0, [r0, #0x0]
+ mov r2, r2, asr #0x1
+ addne r3, r0, r4, lsl #0xc
+ mov r1, r1, asr #0x1
+ add r0, r5, r1
+ add r2, r6, r2
+ ldr r1, _020B4928 ; =0x04000470
+ mov r2, r2, lsl #0xc
+ str r2, [r1, #0x0]
+ mov r0, r0, lsl #0xc
+ moveq r3, r4, lsl #0xc
+ str r0, [r1, #0x0]
+ str r3, [r1, #0x0]
+ b _020B47C0
+_020B478C:
+ ldr r0, _020B4918 ; =UNK_021CED08
+ ldr r1, _020B4928 ; =0x04000470
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldrne r0, _020B4924 ; =UNK_021CED10
+ ldrne r0, [r0, #0x0]
+ addne r2, r0, r4, lsl #0xc
+ mov r0, r6, lsl #0xc
+ str r0, [r1, #0x0]
+ mov r0, r5, lsl #0xc
+ moveq r2, r4, lsl #0xc
+ str r0, [r1, #0x0]
+ str r2, [r1, #0x0]
+_020B47C0:
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ ldr r2, _020B492C ; =0x0400046C
+ mov r0, r0, lsl #0xc
+ str r0, [r2, #0x0]
+ mov r0, r1, lsl #0xc
+ str r0, [r2, #0x0]
+ mov r1, #0x1000
+ str r1, [r2, #0x0]
+ ldr r0, _020B4930 ; =0x04000500
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0x4]
+ ldr r1, [sp, #0x10]
+ mov r0, r0, lsl #0x8
+ mov r1, r1, lsl #0x8
+ mov r0, r0, asr #0x10
+ mov r1, r1, asr #0x10
+ mov r0, r0, lsl #0x10
+ mov r1, r1, lsl #0x10
+ mov r2, r0, lsr #0x10
+ mov r0, r1, lsr #0x10
+ orr r2, r2, r0, lsl #0x10
+ ldr r1, _020B4934 ; =0x04000488
+ ldr r0, _020B4938 ; =0x04000490
+ str r2, [r1, #0x0]
+ mov r2, #0x10000
+ str r2, [r0, #0x0]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x10]
+ mov r2, r2, lsl #0x8
+ mov r3, r3, lsl #0x8
+ mov r2, r2, asr #0x10
+ mov r3, r3, asr #0x10
+ mov r2, r2, lsl #0x10
+ mov r3, r3, lsl #0x10
+ mov r4, r2, lsr #0x10
+ mov r2, r3, lsr #0x10
+ orr r3, r4, r2, lsl #0x10
+ ldr r2, _020B493C ; =0x00010040
+ str r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x8]
+ mov r2, r2, lsl #0x8
+ mov r3, r3, lsl #0x8
+ mov r2, r2, asr #0x10
+ mov r3, r3, asr #0x10
+ mov r2, r2, lsl #0x10
+ mov r3, r3, lsl #0x10
+ mov r4, r2, lsr #0x10
+ mov r2, r3, lsr #0x10
+ orr r2, r4, r2, lsl #0x10
+ str r2, [r1, #0x0]
+ mov r2, #0x40
+ str r2, [r0, #0x0]
+ ldr r2, [sp, #0x4]
+ ldr r3, [sp, #0x8]
+ mov r2, r2, lsl #0x8
+ mov r3, r3, lsl #0x8
+ mov r2, r2, asr #0x10
+ mov r3, r3, asr #0x10
+ mov r2, r2, lsl #0x10
+ mov r3, r3, lsl #0x10
+ mov r4, r2, lsr #0x10
+ mov r2, r3, lsr #0x10
+ orr r2, r4, r2, lsl #0x10
+ str r2, [r1, #0x0]
+ mov r2, #0x0
+ str r2, [r0, #0x0]
+ ldr r1, _020B4940 ; =0x04000504
+ ldr r0, _020B4918 ; =UNK_021CED08
+ str r2, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x1c
+ ldmeqia sp!, {r4-r7,pc}
+ ldr r1, _020B4924 ; =UNK_021CED10
+ ldr r0, _020B4944 ; =UNK_02106590
+ ldr r2, [r1, #0x0]
+ ldr r0, [r0, #0x0]
+ add r0, r2, r0
+ str r0, [r1, #0x0]
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B4914: .word 0xC000C000
+_020B4918: .word UNK_021CED08
+_020B491C: .word UNK_020FF8AC
+_020B4920: .word UNK_020FF894
+_020B4924: .word UNK_021CED10
+_020B4928: .word 0x04000470
+_020B492C: .word 0x0400046C
+_020B4930: .word 0x04000500
+_020B4934: .word 0x04000488
+_020B4938: .word 0x04000490
+_020B493C: .word 0x00010040
+_020B4940: .word 0x04000504
+_020B4944: .word UNK_02106590
+
+ arm_func_start FUN_020B4948
+FUN_020B4948:
+ ldr r0, _020B4954 ; =UNK_02106590
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020B4954: .word UNK_02106590
+
+ arm_func_start FUN_020B4958
+FUN_020B4958:
+ ldr r1, _020B4964 ; =UNK_02106590
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020B4964: .word UNK_02106590
+
+ arm_func_start FUN_020B4968
+FUN_020B4968: ; 0x020B4968
+ ldr r0, _020B4978 ; =UNK_021CED10
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020B4978: .word UNK_021CED10
+
+ arm_func_start FUN_020B497C
+FUN_020B497C:
+ ldr r1, _020B4988 ; =UNK_021CED08
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020B4988: .word UNK_021CED08
+
+ arm_func_start FUN_020B498C
+FUN_020B498C: ; 0x020B498C
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0xc
+ mov r6, r0
+ ldr r4, [r6, #0x0]
+ ldr r0, _020B4BCC ; =0xC000C000
+ ldr r5, [r6, #0x4]
+ and r4, r4, r0
+ and r0, r4, #0xc0000000
+ and r4, r4, #0xc000
+ mov lr, r0, lsr #0x1e
+ ldr r0, _020B4BD0 ; =UNK_020FF8AC
+ mov r12, r4, asr #0xe
+ ldr r8, _020B4BD4 ; =UNK_020FF894
+ mov r4, lr, lsl #0x1
+ add r0, r0, r12, lsl #0x3
+ ldrh r9, [r4, r0]
+ ldr r0, [sp, #0x28]
+ mov r5, r5, lsl #0x16
+ mov r5, r5, lsr #0x16
+ mov r7, r5, lsl #0x10
+ str r9, [r0, #0x10]
+ add r5, r8, r12, lsl #0x3
+ ldrh r8, [r4, r5]
+ mov r5, r1
+ mov r4, r3
+ str r8, [r0, #0x14]
+ ldr r1, [r5, #0x14]
+ mov r7, r7, lsr #0x10
+ cmp r1, #0x0
+ bne _020B4A74
+ ldr r1, [r5, #0x8]
+ mov r2, r2, lsr #0x3
+ orr r1, r2, r1, lsl #0x1a
+ ldr r2, [r5, #0x0]
+ orr r1, r1, #0x40000000
+ ldr r3, [r5, #0x4]
+ orr r1, r1, r2, lsl #0x14
+ orr r2, r1, r3, lsl #0x17
+ ldr r8, [r5, #0x10]
+ ldr r1, _020B4BD8 ; =0x040004A8
+ orr r2, r2, r8, lsl #0x1d
+ str r2, [r1, #0x0]
+ ldr r1, [r5, #0x8]
+ ldr r2, [r5, #0x0]
+ cmp r1, #0x4
+ moveq r1, r7, lsl #0xf
+ moveq r7, r1, lsr #0x10
+ ldr r1, _020B4BDC ; =UNK_020FF8D8
+ ldr r1, [r1, r2, lsl #0x2]
+ sub r1, r1, #0x1
+ and r1, r7, r1
+ mov r1, r1, lsl #0xf
+ str r1, [r0, #0x0]
+ ldr r1, [r5, #0x0]
+ mov r1, r7, asr r1
+ mov r1, r1, lsl #0xf
+ str r1, [r0, #0x4]
+ b _020B4AE0
+_020B4A74:
+ and r1, r1, #0x700000
+ mov r1, r1, asr #0x14
+ mov r12, r12, lsl #0x10
+ add r1, r1, #0x5
+ ldr r3, [r5, #0x8]
+ mov lr, lr, lsl #0x10
+ ldr sb, _020B4BE0 ; =UNK_020FF8F8
+ mov r12, r12, lsr #0x10
+ ldr r8, _020B4BE4 ; =UNK_020FF928
+ add r1, r2, r7, lsl r1
+ mov r2, r3, lsl #0x1a
+ orr r3, r2, r1, lsr #0x3
+ mov r7, lr, lsr #0x10
+ add r2, r9, r12, lsl #0x4
+ add r1, r8, r12, lsl #0x4
+ ldr r2, [r2, r7, lsl #0x2]
+ orr r3, r3, #0x40000000
+ ldr r1, [r1, r7, lsl #0x2]
+ orr r2, r3, r2, lsl #0x14
+ ldr r3, [r5, #0x10]
+ orr r2, r2, r1, lsl #0x17
+ ldr r1, _020B4BD8 ; =0x040004A8
+ orr r2, r2, r3, lsl #0x1d
+ str r2, [r1, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ str r1, [r0, #0x4]
+_020B4AE0:
+ ldr r2, [r0, #0x0]
+ ldr r1, [r0, #0x10]
+ add r1, r2, r1, lsl #0xc
+ str r1, [r0, #0x8]
+ ldr r2, [r0, #0x4]
+ ldr r1, [r0, #0x14]
+ add r1, r2, r1, lsl #0xc
+ str r1, [r0, #0xc]
+ ldr r1, [r6, #0x0]
+ mov r2, r1, lsl #0x2
+ mov r1, r1, lsl #0x3
+ movs r3, r1, lsr #0x1f
+ mov r12, r2, lsr #0x1f
+ ldrne r2, [r0, #0x0]
+ ldrne r1, [r0, #0x8]
+ strne r1, [r0, #0x0]
+ strne r2, [r0, #0x8]
+ cmp r12, #0x0
+ ldrne r2, [r0, #0x4]
+ ldrne r1, [r0, #0xc]
+ strne r1, [r0, #0x4]
+ ldr r1, _020B4BE8 ; =UNK_021CED0C
+ strne r2, [r0, #0xc]
+ ldr r7, [r1, #0x0]
+ cmp r7, #0x0
+ beq _020B4B60
+ str r3, [sp, #0x0]
+ add r1, r0, #0x4
+ add r2, r0, #0x8
+ add r3, r0, #0xc
+ str r12, [sp, #0x4]
+ blx r7
+_020B4B60:
+ ldr r0, [r6, #0x4]
+ ldr r1, [r6, #0x0]
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x1c
+ mov r3, r1, lsl #0x12
+ ldr r1, [r5, #0xc]
+ mov r0, r0, lsl #0x10
+ ldr r2, _020B4BEC ; =UNK_020FF8D0
+ mov r3, r3, lsr #0x1f
+ cmp r1, #0x0
+ mov r0, r0, lsr #0x10
+ ldr r1, [r2, r3, lsl #0x2]
+ movne r0, r0, lsl #0x9
+ bne _020B4BA4
+ cmp r1, #0x4
+ moveq r0, #0x0
+ movne r0, r0, lsl #0x5
+_020B4BA4:
+ cmp r1, #0x2
+ moveq r2, #0x1
+ movne r2, #0x0
+ add r1, r4, r0
+ rsb r0, r2, #0x4
+ mov r1, r1, lsr r0
+ ldr r0, _020B4BF0 ; =0x040004AC
+ str r1, [r0, #0x0]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020B4BCC: .word 0xC000C000
+_020B4BD0: .word UNK_020FF8AC
+_020B4BD4: .word UNK_020FF894
+_020B4BD8: .word 0x040004A8
+_020B4BDC: .word UNK_020FF8D8
+_020B4BE0: .word UNK_020FF8F8
+_020B4BE4: .word UNK_020FF928
+_020B4BE8: .word UNK_021CED0C
+_020B4BEC: .word UNK_020FF8D0
+_020B4BF0: .word 0x040004AC
+
+ arm_func_start FUN_020B4BF4
+FUN_020B4BF4: ; 0x020B4BF4
+ stmdb sp!, {r4-r6,lr}
+ ldr r2, _020B4CD8 ; =UNK_021CED14
+ mov r6, r0
+ ldr r3, [r2, #0x0]
+ mov r4, r1
+ ldr r5, [r3, #0x0]
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ mov r0, #0x1
+ str r0, [r3, #0x30]
+ ldr r3, [r5, #0x18]
+ cmp r3, #0x0
+ beq _020B4C38
+ ldr r0, [r2, #0x0]
+ mov r1, r6
+ blx r3
+_020B4C38:
+ ldr r0, _020B4CD8 ; =UNK_021CED14
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x30]
+ cmp r0, #0x0
+ beq _020B4CB8
+ mvn r0, #0x0
+ cmp r4, r0
+ beq _020B4C7C
+ mov r0, r4
+ ldr r4, [r5, #0x14]
+ bl FUN_020B469C
+ mov r3, #0x1
+ mvn r1, r3, lsl r4
+ ldr r2, [r0, #0x20]
+ and r1, r2, r1
+ orr r1, r1, r3, lsl r4
+ str r1, [r0, #0x20]
+_020B4C7C:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0x3
+ addls pc, pc, r0, lsl #0x2
+ b _020B4CB8
+_020B4C8C:
+ b _020B4C9C
+_020B4C90:
+ b _020B4CAC
+_020B4C94:
+ b _020B4CAC
+_020B4C98:
+ b _020B4CB8
+_020B4C9C:
+ mov r0, r5
+ mov r1, r6
+ bl FUN_020B5090
+ b _020B4CB8
+_020B4CAC:
+ mov r0, r5
+ mov r1, r6
+ bl FUN_020B53B4
+_020B4CB8:
+ ldr r2, [r5, #0x1c]
+ cmp r2, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ ldr r0, _020B4CD8 ; =UNK_021CED14
+ mov r1, r6
+ ldr r0, [r0, #0x0]
+ blx r2
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B4CD8: .word UNK_021CED14
+
+ arm_func_start FUN_020B4CDC
+FUN_020B4CDC:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r1, _020B4D9C ; =UNK_021CED14
+ mov r5, r0
+ ldr r2, [r1, #0x0]
+ ldr r4, [r2, #0x0]
+ ldr r0, [r4, #0x10]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+ mov r0, #0x1
+ str r0, [r2, #0x30]
+ ldr r2, [r4, #0x18]
+ cmp r2, #0x0
+ beq _020B4D24
+ ldr r0, [r1, #0x0]
+ mov r1, r5
+ blx r2
+_020B4D24:
+ ldr r0, _020B4D9C ; =UNK_021CED14
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x30]
+ cmp r0, #0x0
+ beq _020B4D74
+ ldr r0, [r4, #0x14]
+ cmp r0, #0x3
+ addls pc, pc, r0, lsl #0x2
+ b _020B4D74
+_020B4D48:
+ b _020B4D58
+_020B4D4C:
+ b _020B4D68
+_020B4D50:
+ b _020B4D68
+_020B4D54:
+ b _020B4D74
+_020B4D58:
+ mov r0, r4
+ mov r1, r5
+ bl FUN_020B5090
+ b _020B4D74
+_020B4D68:
+ mov r0, r4
+ mov r1, r5
+ bl FUN_020B53B4
+_020B4D74:
+ ldr r2, [r4, #0x1c]
+ cmp r2, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+ ldr r0, _020B4D9C ; =UNK_021CED14
+ mov r1, r5
+ ldr r0, [r0, #0x0]
+ blx r2
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B4D9C: .word UNK_021CED14
+
+ arm_func_start FUN_020B4DA0
+FUN_020B4DA0: ; 0x020B4DA0
+ ldr r0, _020B4E00 ; =UNK_021CED14
+ ldr r3, [r0, #0x0]
+ ldr r1, [r3, #0x0]
+ ldr r1, [r1, #0x14]
+ cmp r1, #0x0
+ bne _020B4DD8
+ ldr r2, _020B4E04 ; =0x04000440
+ mov r1, #0x0
+ ldr r0, _020B4E08 ; =0x04000448
+ str r1, [r2, #0x0]
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ str r1, [r2, #0x0]
+ b _020B4DF0
+_020B4DD8:
+ mov r2, #0x0
+ str r2, [r3, #0x10]
+ ldr r1, [r0, #0x0]
+ str r2, [r1, #0x2c]
+ ldr r0, [r0, #0x0]
+ str r2, [r0, #0x28]
+_020B4DF0:
+ ldr r0, _020B4E00 ; =UNK_021CED14
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+ .balign 4
+_020B4E00: .word UNK_021CED14
+_020B4E04: .word 0x04000440
+_020B4E08: .word 0x04000448
+
+ arm_func_start FUN_020B4E0C
+FUN_020B4E0C: ; 0x020B4E0C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r2, _020B4F28 ; =UNK_021CED14
+ mov r4, r0
+ str r4, [r2, #0x0]
+ ldr r0, [r4, #0x0]
+ ldr r5, [r0, #0x14]
+ cmp r5, #0x0
+ bne _020B4ED8
+ ldr lr, _020B4F2C ; =0x04000440
+ mov r1, #0x0
+ ldr r0, _020B4F30 ; =0x04000444
+ str r1, [lr, #0x0]
+ str r1, [r0, #0x0]
+ ldr r12, [r4, #0x0]
+ ldr r0, _020B4F34 ; =0x04000470
+ ldr r3, [r12, #0x0]
+ ldr r12, [r12, #0x4]
+ rsb r3, r3, #0x0
+ str r3, [r0, #0x0]
+ rsb r3, r12, #0x0
+ str r3, [r0, #0x0]
+ str r1, [r0, #0x0]
+ mov r0, #0x1
+ str r0, [lr, #0x0]
+ ldr r0, [r2, #0x0]
+ ldr r5, [r0, #0x8]
+ mov r0, r5
+ bl FUN_020B19FC
+ cmp r0, #0x0
+ moveq r0, #0x0
+ beq _020B4E98
+ mov r0, r5
+ mov r1, #0x0
+ bl FUN_020B1A14
+_020B4E98:
+ ldr r1, _020B4F28 ; =UNK_021CED14
+ str r0, [r4, #0x14]
+ ldr r0, [r1, #0x0]
+ mov r1, #0x0
+ ldr r5, [r0, #0xc]
+ mov r0, r5
+ bl FUN_020B19A8
+ cmp r0, #0x0
+ moveq r0, #0x0
+ beq _020B4ECC
+ mov r0, r5
+ mov r1, #0x0
+ bl FUN_020B19C4
+_020B4ECC:
+ add sp, sp, #0x4
+ str r0, [r4, #0x18]
+ ldmia sp!, {r4-r5,pc}
+_020B4ED8:
+ ldr r4, [r4, #0x8]
+ mov r1, r5
+ mov r0, r4
+ bl FUN_020B19FC
+ cmp r0, #0x0
+ moveq r1, #0x0
+ beq _020B4F14
+ mov r0, r4
+ mov r1, r5
+ bl FUN_020B1A14
+ ldr r1, [r4, #0x20]
+ and r1, r1, #0x700000
+ mov r1, r1, asr #0x14
+ add r1, r1, #0x5
+ mov r1, r0, lsr r1
+_020B4F14:
+ ldr r0, _020B4F28 ; =UNK_021CED14
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B4F28: .word UNK_021CED14
+_020B4F2C: .word 0x04000440
+_020B4F30: .word 0x04000444
+_020B4F34: .word 0x04000470
+
+ arm_func_start FUN_020B4F38
+FUN_020B4F38: ; 0x020B4F38
+ cmp r1, #0x0
+ ldrne r1, [r0, #0x24]
+ orrne r1, r1, #0x1
+ strne r1, [r0, #0x24]
+ ldreq r1, [r0, #0x24]
+ biceq r1, r1, #0x1
+ streq r1, [r0, #0x24]
+ cmp r2, #0x0
+ ldrne r1, [r0, #0x24]
+ orrne r1, r1, #0x2
+ strne r1, [r0, #0x24]
+ ldreq r1, [r0, #0x24]
+ biceq r1, r1, #0x2
+ streq r1, [r0, #0x24]
+ bx lr
+
+ arm_func_start FUN_020B4F74
+FUN_020B4F74:
+ ldr r0, [r0, #0x24]
+ ands r0, r0, #0x2
+ movne r0, #0x1
+ moveq r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020B4F88
+FUN_020B4F88:
+ ldr r0, [r0, #0x24]
+ ands r0, r0, #0x1
+ movne r0, #0x1
+ moveq r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020B4F9C
+FUN_020B4F9C: ; 0x020B4F9C
+ str r1, [r0, #0x0]
+ bx lr
+
+ arm_func_start FUN_020B4FA4
+FUN_020B4FA4: ; 0x020B4FA4
+ str r1, [r0, #0x34]
+ bx lr
+
+ arm_func_start FUN_020B4FAC
+FUN_020B4FAC: ; 0x020B4FAC
+ ldr r2, _020B4FC0 ; =UNK_021CED14
+ ldr r2, [r2, #0x0]
+ str r0, [r2, #0x2c]
+ str r1, [r2, #0x28]
+ bx lr
+ .balign 4
+_020B4FC0: .word UNK_021CED14
+
+ arm_func_start FUN_020B4FC4
+FUN_020B4FC4: ; 0x020B4FC4
+ ldr r1, _020B5028 ; =UNK_021CED14
+ mov r3, #0x0
+ ldr r12, [r1, #0x0]
+ mov r1, #0x1000
+ str r0, [r12, #0x2c]
+ ldr r2, [r0, #0x0]
+ str r2, [r12, #0x40]
+ ldr r2, [r0, #0x4]
+ str r2, [r12, #0x44]
+ str r3, [r12, #0x48]
+ ldr r2, [r0, #0x8]
+ str r2, [r12, #0x4c]
+ ldr r2, [r0, #0xc]
+ str r2, [r12, #0x50]
+ str r3, [r12, #0x54]
+ str r3, [r12, #0x58]
+ str r3, [r12, #0x5c]
+ str r1, [r12, #0x60]
+ ldr r1, [r0, #0x10]
+ str r1, [r12, #0x64]
+ ldr r0, [r0, #0x14]
+ str r0, [r12, #0x68]
+ ldr r0, [r12, #0x34]
+ str r0, [r12, #0x6c]
+ bx lr
+ .balign 4
+_020B5028: .word UNK_021CED14
+
+ arm_func_start FUN_020B502C
+FUN_020B502C: ; 0x020B502C
+ str r1, [r0, #0x4]
+ bx lr
+
+ arm_func_start FUN_020B5034
+FUN_020B5034: ; 0x020B5034
+ str r1, [r0, #0x1c]
+ str r2, [r0, #0x20]
+ bx lr
+
+ arm_func_start FUN_020B5040
+FUN_020B5040: ; 0x020B5040
+ str r1, [r0, #0x8]
+ str r2, [r0, #0xc]
+ bx lr
+
+ arm_func_start FUN_020B504C
+FUN_020B504C: ; 0x020B504C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r1, r4
+ mov r0, #0x0
+ mov r2, #0x70
+ bl MIi_CpuClear16
+ mov r1, #0x0
+ str r1, [r4, #0x0]
+ mov r0, #0x2
+ str r0, [r4, #0x4]
+ str r1, [r4, #0x8]
+ str r1, [r4, #0xc]
+ str r1, [r4, #0x24]
+ mov r0, #0x1
+ str r0, [r4, #0x30]
+ str r1, [r4, #0x28]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020B5090
+FUN_020B5090: ; 0x020B5090
+ stmdb sp!, {r4-r10,lr}
+ ldr r5, _020B5158 ; =UNK_021CED14
+ mov r9, r1
+ ldrh r1, [r9, #0x0]
+ ldr r2, [r5, #0x0]
+ mov r10, r0
+ add r7, r2, #0x38
+ mov r8, #0x0
+ cmp r1, #0x0
+ ldmlsia sp!, {r4-r10,pc}
+ mov r6, #0x1
+ mov r4, #0x6
+_020B50C0:
+ mul r1, r8, r4
+ ldr r0, [r5, #0x0]
+ str r6, [r0, #0x30]
+ ldr r2, [r9, #0x4]
+ ldrh r0, [r2, r1]
+ add r1, r2, r1
+ strh r0, [r7, #0x0]
+ ldrh r0, [r1, #0x2]
+ strh r0, [r7, #0x2]
+ ldrh r0, [r1, #0x4]
+ strh r0, [r7, #0x4]
+ ldr r3, [r10, #0x20]
+ cmp r3, #0x0
+ beq _020B5108
+ ldr r0, [r5, #0x0]
+ mov r1, r9
+ mov r2, r8
+ blx r3
+_020B5108:
+ ldr r0, [r5, #0x0]
+ ldr r0, [r0, #0x30]
+ cmp r0, #0x0
+ beq _020B5120
+ mov r0, r7
+ bl FUN_020B515C
+_020B5120:
+ ldr r3, [r10, #0x24]
+ cmp r3, #0x0
+ beq _020B513C
+ ldr r0, [r5, #0x0]
+ mov r1, r9
+ mov r2, r8
+ blx r3
+_020B513C:
+ add r0, r8, #0x1
+ mov r0, r0, lsl #0x10
+ ldrh r1, [r9, #0x0]
+ mov r8, r0, lsr #0x10
+ cmp r8, r1
+ blo _020B50C0
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020B5158: .word UNK_021CED14
+
+ arm_func_start FUN_020B515C
+FUN_020B515C: ; 0x020B515C
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x10
+ ldr r1, _020B53A4 ; =UNK_021CED14
+ mov r7, r0
+ ldr r0, [r1, #0x0]
+ add r0, r0, #0x40
+ bl G3_LoadMtx43
+ ldr r0, _020B53A4 ; =UNK_021CED14
+ ldr r0, [r0, #0x0]
+ ldr r1, [r0, #0x24]
+ cmp r1, #0x0
+ beq _020B533C
+ ldr r2, [r7, #0x0]
+ ldr r1, _020B53A8 ; =0xC000C000
+ and r4, r2, r1
+ bl FUN_020B4F88
+ cmp r0, #0x0
+ beq _020B51F4
+ ldr r0, [r7, #0x0]
+ and r2, r4, #0xc000
+ mov r0, r0, lsl #0x7
+ mov r3, r0, lsr #0x17
+ and r1, r4, #0xc0000000
+ mov r1, r1, lsr #0x1e
+ ldr r0, _020B53AC ; =UNK_020FF8AC
+ mov r2, r2, asr #0xe
+ mov r1, r1, lsl #0x1
+ add r0, r0, r2, lsl #0x3
+ cmp r3, #0xff
+ ldrh r1, [r1, r0]
+ orrgt r0, r3, #0xff00
+ movgt r0, r0, lsl #0x10
+ movgt r3, r0, asr #0x10
+ add r0, r3, r1
+ rsb r0, r0, #0x0
+ mov r0, r0, lsl #0x10
+ mov r1, r0, lsr #0x10
+ b _020B5218
+_020B51F4:
+ ldr r0, [r7, #0x0]
+ mov r0, r0, lsl #0x7
+ mov r0, r0, lsr #0x17
+ cmp r0, #0xff
+ orrgt r0, r0, #0xff00
+ movgt r0, r0, lsl #0x10
+ movgt r0, r0, asr #0x10
+ mov r0, r0, lsl #0x10
+ mov r1, r0, lsr #0x10
+_020B5218:
+ ldr r0, _020B53A4 ; =UNK_021CED14
+ mov r1, r1, lsl #0x10
+ ldr r0, [r0, #0x0]
+ mov r6, r1, asr #0x10
+ bl FUN_020B4F74
+ cmp r0, #0x0
+ beq _020B527C
+ and r1, r4, #0xc000
+ and r0, r4, #0xc0000000
+ ldrb r4, [r7, #0x0]
+ ldr r2, _020B53B0 ; =UNK_020FF894
+ mov r0, r0, lsr #0x1e
+ mov r3, r1, asr #0xe
+ mov r1, r0, lsl #0x1
+ add r0, r2, r3, lsl #0x3
+ cmp r4, #0x7f
+ ldrh r1, [r1, r0]
+ orrgt r0, r4, #0xff00
+ movgt r0, r0, lsl #0x10
+ movgt r4, r0, asr #0x10
+ add r0, r4, r1
+ rsb r0, r0, #0x0
+ mov r0, r0, lsl #0x10
+ mov r4, r0, lsr #0x10
+ b _020B5298
+_020B527C:
+ ldrb r0, [r7, #0x0]
+ cmp r0, #0x7f
+ orrgt r0, r0, #0xff00
+ movgt r0, r0, lsl #0x10
+ movgt r0, r0, asr #0x10
+ mov r0, r0, lsl #0x10
+ mov r4, r0, lsr #0x10
+_020B5298:
+ ldr r0, _020B53A4 ; =UNK_021CED14
+ ldr r1, [r7, #0x0]
+ ldr r0, [r0, #0x0]
+ mov r5, r1, lsl #0x3
+ bl FUN_020B4F88
+ ldr r2, [r7, #0x0]
+ ldr r1, _020B53A4 ; =UNK_021CED14
+ eor r5, r0, r5, lsr #0x1f
+ ldr r0, [r1, #0x0]
+ mov r8, r2, lsl #0x2
+ bl FUN_020B4F74
+ ldr r2, [r7, #0x0]
+ eor r1, r0, r8, lsr #0x1f
+ bic r0, r2, #0x10000000
+ str r0, [r7, #0x0]
+ ldr r2, [r7, #0x0]
+ ldr r3, _020B53A4 ; =UNK_021CED14
+ orr r2, r2, r5, lsl #0x1c
+ str r2, [r7, #0x0]
+ ldr r2, [r7, #0x0]
+ mov r0, r6
+ bic r2, r2, #0x20000000
+ str r2, [r7, #0x0]
+ ldr r5, [r7, #0x0]
+ mov r2, r4, lsl #0x10
+ orr r1, r5, r1, lsl #0x1d
+ str r1, [r7, #0x0]
+ ldr r5, [r3, #0x0]
+ mov r1, r2, asr #0x10
+ ldr r4, [r5, #0x8]
+ mov r3, r7
+ add r2, r4, #0xc
+ str r2, [sp, #0x0]
+ ldr r4, [r5, #0x14]
+ mvn r2, #0x0
+ str r4, [sp, #0x4]
+ ldr r4, [r5, #0x18]
+ str r4, [sp, #0x8]
+ bl FUN_020B46B4
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r8,pc}
+_020B533C:
+ ldr r2, _020B53A4 ; =UNK_021CED14
+ ldr r0, [r7, #0x0]
+ ldr r5, [r2, #0x0]
+ mov r0, r0, lsl #0x7
+ ldr r4, [r5, #0x8]
+ mov r0, r0, lsr #0x17
+ cmp r0, #0xff
+ orrgt r0, r0, #0xff00
+ movgt r0, r0, lsl #0x10
+ ldrb r1, [r7, #0x0]
+ add r4, r4, #0xc
+ movgt r0, r0, asr #0x10
+ str r4, [sp, #0x0]
+ ldr r4, [r5, #0x14]
+ cmp r1, #0x7f
+ orrgt r1, r1, #0xff00
+ movgt r1, r1, lsl #0x10
+ str r4, [sp, #0x4]
+ ldr r4, [r5, #0x18]
+ movgt r1, r1, asr #0x10
+ mov r3, r7
+ mvn r2, #0x0
+ str r4, [sp, #0x8]
+ bl FUN_020B46B4
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020B53A4: .word UNK_021CED14
+_020B53A8: .word 0xC000C000
+_020B53AC: .word UNK_020FF8AC
+_020B53B0: .word UNK_020FF894
+
+ arm_func_start FUN_020B53B4
+FUN_020B53B4: ; 0x020B53B4
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x44
+ ldr r2, _020B57B0 ; =UNK_021CED14
+ mov r10, r0
+ ldr r0, [r2, #0x0]
+ mov r11, r1
+ ldr r9, [r0, #0x2c]
+ ldr r1, _020B57B0 ; =UNK_021CED14
+ cmp r9, #0x0
+ ldreq sb, _020B57B4 ; =UNK_020FF958
+ ldr r3, [r1, #0x0]
+ ldr r4, [r9, #0x10]
+ str r4, [sp, #0x18]
+ ldr r2, [r9, #0x14]
+ str r2, [sp, #0x1c]
+ ldr r1, [r10, #0x0]
+ sub r1, r4, r1
+ str r1, [sp, #0x18]
+ ldr r1, [r10, #0x4]
+ sub r1, r2, r1
+ str r1, [sp, #0x1c]
+ ldr r2, [r3, #0x24]
+ ldr r1, [r3, #0x10]
+ cmp r2, #0x0
+ str r1, [sp, #0x4]
+ bne _020B5430
+ ldr r1, [r3, #0x28]
+ cmp r1, #0x0
+ movne r1, #0x1
+ strne r1, [sp, #0x0]
+ bne _020B5438
+_020B5430:
+ mov r1, #0x0
+ str r1, [sp, #0x0]
+_020B5438:
+ ldrh r1, [r11, #0x0]
+ add r7, r0, #0x38
+ mov r8, #0x0
+ cmp r1, #0x0
+ addls sp, sp, #0x44
+ ldmlsia sp!, {r4-r11,pc}
+ mov r0, #0x1
+ ldr r4, _020B57B0 ; =UNK_021CED14
+ str r8, [sp, #0x14]
+ str r0, [sp, #0xc]
+_020B5460:
+ ldr r2, [r4, #0x0]
+ ldr r0, [sp, #0xc]
+ mov r1, #0x6
+ str r0, [r2, #0x30]
+ mul r0, r8, r1
+ ldr r1, [r11, #0x4]
+ add r2, r1, r0
+ ldrh r0, [r1, r0]
+ strh r0, [r7, #0x0]
+ ldrh r0, [r2, #0x2]
+ strh r0, [r7, #0x2]
+ ldrh r0, [r2, #0x4]
+ strh r0, [r7, #0x4]
+ ldr r3, [r10, #0x20]
+ cmp r3, #0x0
+ beq _020B54B0
+ ldr r0, [r4, #0x0]
+ mov r1, r11
+ mov r2, r8
+ blx r3
+_020B54B0:
+ ldr r0, [r4, #0x0]
+ ldr r0, [r0, #0x30]
+ cmp r0, #0x0
+ beq _020B5790
+ ldr r0, [sp, #0x0]
+ ldr r1, [r7, #0x4]
+ cmp r0, #0x0
+ mov r0, #0x400
+ rsb r0, r0, #0x0
+ and r2, r1, r0
+ ldr r0, [sp, #0x4]
+ mov r1, r1, lsl #0x16
+ add r1, r0, r1, lsr #0x16
+ ldr r0, _020B57B8 ; =0x000003FF
+ and r0, r1, r0
+ orr r0, r2, r0
+ str r0, [r7, #0x4]
+ beq _020B5600
+ ldr r0, [r10, #0x14]
+ ldr lr, [r4, #0x0]
+ sub r1, r0, #0x1
+ ldr r0, [r7, #0x0]
+ ldr r6, [lr, #0x28]
+ mov r2, r0, lsl #0x2
+ mov r2, r2, lsr #0x1f
+ mov r2, r2, lsl #0x1
+ mov r0, r0, lsl #0x3
+ orr r5, r2, r0, lsr #0x1f
+ add r0, r6, r5, lsl #0x2
+ add r0, r0, r1, lsl #0x1
+ ldrh r1, [r0, #0x10]
+ ldr r0, _020B57BC ; =0x0000FFFF
+ str r1, [sp, #0x8]
+ cmp r1, r0
+ bne _020B55CC
+ cmp r5, #0x0
+ bne _020B5558
+ ldr r1, [lr, #0x20]
+ mov r0, r6
+ blx r1
+ str r0, [sp, #0x8]
+ b _020B55B4
+_020B5558:
+ ands r0, r5, #0x1
+ add r12, sp, #0x30
+ ldmia r6, {r0-r3}
+ stmia r12, {r0-r3}
+ beq _020B5584
+ ldr r1, [sp, #0x30]
+ ldr r0, [sp, #0x34]
+ rsb r1, r1, #0x0
+ str r1, [sp, #0x30]
+ rsb r0, r0, #0x0
+ str r0, [sp, #0x34]
+_020B5584:
+ ands r0, r5, #0x2
+ beq _020B55A4
+ ldr r1, [sp, #0x38]
+ ldr r0, [sp, #0x3c]
+ rsb r1, r1, #0x0
+ str r1, [sp, #0x38]
+ rsb r0, r0, #0x0
+ str r0, [sp, #0x3c]
+_020B55A4:
+ ldr r1, [lr, #0x20]
+ add r0, sp, #0x30
+ blx r1
+ str r0, [sp, #0x8]
+_020B55B4:
+ ldr r1, [r10, #0x14]
+ add r0, r6, r5, lsl #0x2
+ sub r1, r1, #0x1
+ add r1, r0, r1, lsl #0x1
+ ldr r0, [sp, #0x8]
+ strh r0, [r1, #0x10]
+_020B55CC:
+ ldr r1, [r9, #0x0]
+ add r0, sp, #0x20
+ str r1, [sp, #0x20]
+ ldr r2, [r9, #0x4]
+ mov r1, r7
+ str r2, [sp, #0x24]
+ ldr r3, [r9, #0x8]
+ add r2, sp, #0x18
+ str r3, [sp, #0x28]
+ ldr r3, [r9, #0xc]
+ str r3, [sp, #0x2c]
+ bl FUN_020B57D8
+ b _020B5750
+_020B5600:
+ ldr r0, _020B57C0 ; =0x0000FFFE
+ str r0, [sp, #0x8]
+ ldr r0, [r4, #0x0]
+ ldr r1, [r0, #0x24]
+ cmp r1, #0x0
+ beq _020B5714
+ ldr r2, [r7, #0x0]
+ ldr r1, _020B57C4 ; =0xC000C000
+ mov r6, r2, lsl #0x3
+ and r5, r2, r1
+ bl FUN_020B4F88
+ ldr r1, [r7, #0x0]
+ eor r6, r0, r6, lsr #0x1f
+ mov r1, r1, lsl #0x2
+ ldr r0, [r4, #0x0]
+ str r1, [sp, #0x10]
+ bl FUN_020B4F74
+ ldr r1, [sp, #0x10]
+ eor r0, r0, r1, lsr #0x1f
+ ldr r1, [r7, #0x0]
+ bic r1, r1, #0x10000000
+ str r1, [r7, #0x0]
+ ldr r1, [r7, #0x0]
+ orr r1, r1, r6, lsl #0x1c
+ str r1, [r7, #0x0]
+ ldr r1, [r7, #0x0]
+ bic r1, r1, #0x20000000
+ str r1, [r7, #0x0]
+ ldr r1, [r7, #0x0]
+ orr r0, r1, r0, lsl #0x1d
+ str r0, [r7, #0x0]
+ ldr r0, [r4, #0x0]
+ bl FUN_020B4F88
+ cmp r0, #0x0
+ beq _020B56D4
+ and r1, r5, #0xc000
+ mov r2, r1, asr #0xe
+ ldr r1, _020B57C8 ; =UNK_020FF8AC
+ and r3, r5, #0xc0000000
+ mov r3, r3, lsr #0x1e
+ add r2, r1, r2, lsl #0x3
+ mov r3, r3, lsl #0x1
+ ldr r0, [r7, #0x0]
+ ldr r1, _020B57CC ; =0xFE00FFFF
+ ldrh r2, [r3, r2]
+ and r1, r0, r1
+ mov r0, r0, lsl #0x7
+ add r0, r2, r0, lsr #0x17
+ rsb r2, r0, #0x0
+ ldr r0, _020B57D0 ; =0x000001FF
+ and r0, r2, r0
+ orr r0, r1, r0, lsl #0x10
+ str r0, [r7, #0x0]
+_020B56D4:
+ ldr r0, [r4, #0x0]
+ bl FUN_020B4F74
+ cmp r0, #0x0
+ beq _020B5714
+ and r1, r5, #0xc000
+ mov r3, r1, asr #0xe
+ and r1, r5, #0xc0000000
+ mov r1, r1, lsr #0x1e
+ mov r2, r1, lsl #0x1
+ ldr r1, _020B57D4 ; =UNK_020FF894
+ ldrb r0, [r7, #0x0]
+ add r1, r1, r3, lsl #0x3
+ ldrh r1, [r2, r1]
+ add r0, r0, r1
+ rsb r0, r0, #0x0
+ strb r0, [r7, #0x0]
+_020B5714:
+ ldr r2, [r7, #0x0]
+ ldr r0, _020B57CC ; =0xFE00FFFF
+ ldr r1, [sp, #0x18]
+ and r0, r2, r0
+ mov r2, r2, lsl #0x7
+ mov r2, r2, lsr #0x17
+ add r2, r2, r1, asr #0xc
+ ldr r1, _020B57D0 ; =0x000001FF
+ and r1, r2, r1
+ orr r0, r0, r1, lsl #0x10
+ str r0, [r7, #0x0]
+ ldrb r1, [r7, #0x0]
+ ldr r0, [sp, #0x1c]
+ add r0, r1, r0, asr #0xc
+ strb r0, [r7, #0x0]
+_020B5750:
+ ldr r3, [r4, #0x0]
+ ldr r1, [sp, #0x8]
+ ldr r2, [sp, #0x14]
+ ldr r3, [r3, #0x1c]
+ mov r0, r7
+ blx r3
+ cmp r0, #0x1
+ addne sp, sp, #0x44
+ ldmneia sp!, {r4-r11,pc}
+ ldr r3, [r10, #0x24]
+ cmp r3, #0x0
+ beq _020B5790
+ ldr r0, [r4, #0x0]
+ mov r1, r11
+ mov r2, r8
+ blx r3
+_020B5790:
+ add r0, r8, #0x1
+ mov r0, r0, lsl #0x10
+ mov r8, r0, lsr #0x10
+ ldrh r0, [r11, #0x0]
+ cmp r8, r0
+ blo _020B5460
+ add sp, sp, #0x44
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020B57B0: .word UNK_021CED14
+_020B57B4: .word UNK_020FF958
+_020B57B8: .word 0x000003FF
+_020B57BC: .word 0x0000FFFF
+_020B57C0: .word 0x0000FFFE
+_020B57C4: .word 0xC000C000
+_020B57C8: .word UNK_020FF8AC
+_020B57CC: .word 0xFE00FFFF
+_020B57D0: .word 0x000001FF
+_020B57D4: .word UNK_020FF894
+
+ arm_func_start FUN_020B57D8
+FUN_020B57D8: ; 0x020B57D8
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x10
+ ldr r4, [r1, #0x0]
+ ldr r3, _020B5A9C ; =0x01FF0000
+ and r3, r4, r3
+ mov r3, r3, lsr #0x10
+ mov r3, r3, lsl #0x10
+ mov r3, r3, asr #0x10
+ cmp r3, #0xff
+ orrgt r3, r3, #0xff00
+ movgt r3, r3, lsl #0x10
+ movgt r3, r3, asr #0x10
+ mov r3, r3, lsl #0xc
+ str r3, [sp, #0x0]
+ ldr r3, [r1, #0x0]
+ and r3, r3, #0xff
+ mov r3, r3, lsl #0x10
+ mov r3, r3, asr #0x10
+ cmp r3, #0x7f
+ orrgt r3, r3, #0xff00
+ movgt r3, r3, lsl #0x10
+ movgt r3, r3, asr #0x10
+ mov r3, r3, lsl #0xc
+ str r3, [sp, #0x4]
+ ldr r5, [r1, #0x0]
+ and r4, r5, #0x300
+ cmp r4, #0x100
+ beq _020B5858
+ cmp r4, #0x300
+ beq _020B5858
+ and r3, r5, #0x30000000
+ orr r4, r4, r3
+_020B5858:
+ cmp r4, #0x300
+ bne _020B58AC
+ ldr r3, _020B5AA0 ; =0xC000C000
+ ldr r4, _020B5AA4 ; =UNK_020FF8AC
+ and r3, r5, r3
+ and r5, r3, #0xc0000000
+ and r3, r3, #0xc000
+ mov r6, r5, lsr #0x1e
+ mov r5, r3, asr #0xe
+ ldr r3, _020B5AA8 ; =UNK_020FF894
+ mov r6, r6, lsl #0x1
+ add r4, r4, r5, lsl #0x3
+ add r3, r3, r5, lsl #0x3
+ ldrh r5, [r6, r4]
+ ldr r7, [sp, #0x0]
+ ldrh r3, [r6, r3]
+ ldr r4, [sp, #0x4]
+ add r5, r7, r5, lsl #0xb
+ add r3, r4, r3, lsl #0xb
+ str r5, [sp, #0x0]
+ str r3, [sp, #0x4]
+_020B58AC:
+ ldr r5, [r0, #0x8]
+ ldr r4, [sp, #0x4]
+ add r3, sp, #0x0
+ smull r8, r7, r5, r4
+ cmp r3, r3
+ ldr r6, [r0, #0x0]
+ mov r4, #0x1000
+ addeq r3, sp, #0x8
+ adds r8, r8, r4
+ ldr r5, [sp, #0x0]
+ adc r7, r7, #0x0
+ smlal r8, r7, r6, r5
+ mov r5, r8, lsr #0xc
+ orr r5, r5, r7, lsl #0x14
+ str r5, [r3, #0x0]
+ ldr r7, [r0, #0xc]
+ ldr r6, [sp, #0x4]
+ ldr r5, [r0, #0x4]
+ smull r8, r6, r7, r6
+ adds r7, r8, r4
+ ldr r4, [sp, #0x0]
+ adc r6, r6, #0x0
+ smlal r7, r6, r5, r4
+ mov r5, r7, lsr #0xc
+ add r4, sp, #0x8
+ orr r5, r5, r6, lsl #0x14
+ str r5, [r3, #0x4]
+ cmp r3, r4
+ ldreq r3, [sp, #0xc]
+ ldreq r4, [sp, #0x8]
+ streq r3, [sp, #0x4]
+ ldr r3, _020B5AAC ; =UNK_021CED14
+ streq r4, [sp, #0x0]
+ ldr r3, [r3, #0x0]
+ ldr r3, [r3, #0x4]
+ cmp r3, #0x0
+ beq _020B597C
+ cmp r3, #0x2
+ moveq r5, #0x300
+ movne r5, #0x100
+ cmp r5, #0x100
+ ldreq r4, [r1, #0x0]
+ ldreq r3, _020B5AB0 ; =0xC1FFFCFF
+ andeq r3, r4, r3
+ orreq r3, r3, r5
+ streq r3, [r1, #0x0]
+ beq _020B597C
+ ldr r4, [r1, #0x0]
+ ldr r3, _020B5AB0 ; =0xC1FFFCFF
+ and r3, r4, r3
+ orr r3, r3, r5
+ str r3, [r1, #0x0]
+_020B597C:
+ ldr r6, [r1, #0x0]
+ and r5, r6, #0x300
+ cmp r5, #0x100
+ beq _020B599C
+ cmp r5, #0x300
+ beq _020B599C
+ and r3, r6, #0x30000000
+ orr r5, r5, r3
+_020B599C:
+ ldr r3, _020B5AA0 ; =0xC000C000
+ ldr r4, _020B5AA4 ; =UNK_020FF8AC
+ and r3, r6, r3
+ and r6, r3, #0xc0000000
+ and r3, r3, #0xc000
+ mov lr, r3, asr #0xe
+ mov r6, r6, lsr #0x1e
+ mov r3, r6, lsl #0x1
+ add r4, r4, lr, lsl #0x3
+ ldrh r4, [r3, r4]
+ ldr r6, [r0, #0x0]
+ ldr r8, _020B5AA8 ; =UNK_020FF894
+ mov r12, r4, asr #0x1
+ mov r4, r12, lsl #0xc
+ rsb r7, r4, #0x0
+ mla r7, r6, r12, r7
+ add lr, r8, lr, lsl #0x3
+ ldrh r3, [r3, lr]
+ ldr r6, [r0, #0x8]
+ ldr lr, [sp, #0x0]
+ mov r3, r3, asr #0x1
+ mla r7, r6, r3, r7
+ add r6, lr, r7
+ str r6, [sp, #0x0]
+ mov lr, r3, lsl #0xc
+ ldr r6, [r0, #0x4]
+ rsb r7, lr, #0x0
+ mla r7, r6, r12, r7
+ ldr r0, [r0, #0xc]
+ ldr r6, [sp, #0x4]
+ mla r3, r0, r3, r7
+ add r0, r6, r3
+ str r0, [sp, #0x4]
+ cmp r5, #0x300
+ moveq r0, #0x1
+ movne r0, #0x0
+ cmp r0, #0x0
+ beq _020B5A4C
+ ldr r3, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ sub r3, r3, r4
+ sub r0, r0, lr
+ str r3, [sp, #0x0]
+ str r0, [sp, #0x4]
+_020B5A4C:
+ ldr r4, [sp, #0x0]
+ ldr r0, [r2, #0x0]
+ ldr r3, [sp, #0x4]
+ add r5, r4, r0
+ str r5, [sp, #0x0]
+ ldr r2, [r2, #0x4]
+ ldr r0, _020B5AB4 ; =0x000001FF
+ add r2, r3, r2
+ str r2, [sp, #0x4]
+ mov r3, r2, asr #0xc
+ ldr r4, [r1, #0x0]
+ ldr r2, _020B5AB8 ; =0xFE00FF00
+ and r3, r3, #0xff
+ and r2, r4, r2
+ and r4, r0, r5, asr #0xc
+ orr r0, r2, r3
+ orr r0, r0, r4, lsl #0x10
+ str r0, [r1, #0x0]
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020B5A9C: .word 0x01FF0000
+_020B5AA0: .word 0xC000C000
+_020B5AA4: .word UNK_020FF8AC
+_020B5AA8: .word UNK_020FF894
+_020B5AAC: .word UNK_021CED14
+_020B5AB0: .word 0xC1FFFCFF
+_020B5AB4: .word 0x000001FF
+_020B5AB8: .word 0xFE00FF00
+
+ arm_func_start FUN_020B5ABC
+FUN_020B5ABC: ; 0x020B5ABC
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0xc
+ add r5, sp, #0x0
+ mov r4, #0x0
+ str r4, [r5, #0x0]
+ str r4, [r5, #0x4]
+ mov r8, r2
+ ldr r2, [sp, #0x28]
+ mov r5, r0
+ mov r9, r1
+ mov r4, r3
+ cmp r2, #0x0
+ mov r7, #0x1
+ beq _020B5B24
+ add r6, sp, #0x28
+_020B5AF8:
+ mov r0, r9
+ mov r1, r8
+ mov r3, r6
+ bl FUN_020B5BC8
+ ldr r1, [sp, #0x0]
+ ldr r2, [sp, #0x28]
+ cmp r0, r1
+ strgt r0, [sp, #0x0]
+ add r7, r7, #0x1
+ cmp r2, #0x0
+ bne _020B5AF8
+_020B5B24:
+ ldr r0, [r9, #0x0]
+ sub r2, r7, #0x1
+ ldrsb r1, [r0, #0x1]
+ ldr r0, [sp, #0x0]
+ add r1, r4, r1
+ mul r1, r2, r1
+ sub r1, r1, r4
+ str r1, [sp, #0x4]
+ str r0, [r5, #0x0]
+ str r1, [r5, #0x4]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r9,pc}
+
+ arm_func_start FUN_020B5B54
+FUN_020B5B54: ; 0x020B5B54
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x10
+ str r2, [sp, #0x0]
+ add r3, sp, #0x4
+ mov r2, #0x0
+ str r2, [r3, #0x0]
+ mov r8, r0
+ str r2, [r3, #0x4]
+ ldr r7, [r8, #0x4]
+ add r0, sp, #0x0
+ mov r5, r1
+ mov r4, #0x1
+ blx r7
+ cmp r0, #0x0
+ beq _020B5BAC
+ add r6, sp, #0x0
+_020B5B94:
+ cmp r0, #0xa
+ mov r0, r6
+ addeq r4, r4, #0x1
+ blx r7
+ cmp r0, #0x0
+ bne _020B5B94
+_020B5BAC:
+ ldr r0, [r8, #0x0]
+ ldrsb r0, [r0, #0x1]
+ add r0, r5, r0
+ mul r0, r4, r0
+ sub r0, r0, r5
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020B5BC8
+FUN_020B5BC8:
+ stmdb sp!, {r4-r10,lr}
+ sub sp, sp, #0x8
+ mov r8, r0
+ str r2, [sp, #0x0]
+ ldr r4, [r8, #0x4]
+ add r0, sp, #0x0
+ mov r7, r1
+ mov r6, r3
+ mov r5, #0x0
+ blx r4
+ movs r1, r0
+ beq _020B5C58
+ ldr sb, _020B5C84 ; =0x0000FFFF
+ add r10, sp, #0x0
+_020B5C00:
+ cmp r1, #0xa
+ beq _020B5C58
+ mov r0, r8
+ bl FUN_020B5CE4
+ mov r1, r0
+ cmp r1, r9
+ ldreq r0, [r8, #0x0]
+ ldreqh r1, [r0, #0x2]
+ mov r0, r8
+ bl FUN_020B5C88
+ ldrh r1, [r8, #0x8]
+ cmp r1, #0x0
+ ldrnesb r1, [r0, #0x0]
+ ldrneb r0, [r0, #0x1]
+ addne r0, r1, r0
+ ldreqsb r0, [r0, #0x2]
+ add r1, r7, r0
+ mov r0, r10
+ add r5, r5, r1
+ blx r4
+ movs r1, r0
+ bne _020B5C00
+_020B5C58:
+ cmp r6, #0x0
+ beq _020B5C70
+ cmp r1, #0xa
+ ldreq r0, [sp, #0x0]
+ movne r0, #0x0
+ str r0, [r6, #0x0]
+_020B5C70:
+ cmp r5, #0x0
+ subgt r5, r5, r7
+ mov r0, r5
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020B5C84: .word 0x0000FFFF
+
+ arm_func_start FUN_020B5C88
+FUN_020B5C88: ; 0x020B5C88
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, [r0, #0x0]
+ ldr lr, [r3, #0xc]
+ cmp lr, #0x0
+ beq _020B5CD8
+_020B5CA0:
+ ldrh r12, [lr, #0x0]
+ cmp r12, r1
+ bhi _020B5CCC
+ ldrh r2, [lr, #0x2]
+ cmp r1, r2
+ ldrlsh r2, [r0, #0xa]
+ addls r3, lr, #0x8
+ subls r0, r1, r12
+ mlals r0, r2, r0, r3
+ addls sp, sp, #0x4
+ ldmlsia sp!, {pc}
+_020B5CCC:
+ ldr lr, [lr, #0x4]
+ cmp lr, #0x0
+ bne _020B5CA0
+_020B5CD8:
+ add r0, r3, #0x4
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020B5CE4
+FUN_020B5CE4: ; 0x020B5CE4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, [r0, #0x0]
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x0
+ beq _020B5D2C
+_020B5CFC:
+ ldrh r2, [r0, #0x0]
+ cmp r2, r1
+ bhi _020B5D20
+ ldrh r2, [r0, #0x2]
+ cmp r1, r2
+ bhi _020B5D20
+ bl FUN_020B5D7C
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020B5D20:
+ ldr r0, [r0, #0x8]
+ cmp r0, #0x0
+ bne _020B5CFC
+_020B5D2C:
+ ldr r0, _020B5D38 ; =0x0000FFFF
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020B5D38: .word 0x0000FFFF
+
+ arm_func_start FUN_020B5D3C
+FUN_020B5D3C: ; 0x020B5D3C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r0, r1
+ mov r1, r4
+ bl FUN_020B7558
+ sub r0, r0, #0x1
+ strh r0, [r4, #0x8]
+ ldrh r0, [r4, #0x8]
+ cmp r0, #0x0
+ movne r1, #0x2
+ moveq r1, #0x3
+ ldr r0, _020B5D78 ; =FUN_020B7718
+ strh r1, [r4, #0xa]
+ str r0, [r4, #0x4]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020B5D78: .word FUN_020B7718
+
+ arm_func_start FUN_020B5D7C
+FUN_020B5D7C: ; 0x020B5D7C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldrh r3, [r0, #0x4]
+ ldr r2, _020B5E4C ; =0x0000FFFF
+ cmp r3, #0x0
+ beq _020B5DA8
+ cmp r3, #0x1
+ beq _020B5DC4
+ cmp r3, #0x2
+ beq _020B5DD8
+ b _020B5E40
+_020B5DA8:
+ ldrh r2, [r0, #0x0]
+ ldrh r3, [r0, #0xc]
+ sub r0, r1, r2
+ add r0, r3, r0
+ mov r0, r0, lsl #0x10
+ mov r2, r0, lsr #0x10
+ b _020B5E40
+_020B5DC4:
+ ldrh r2, [r0, #0x0]
+ sub r1, r1, r2
+ add r0, r0, r1, lsl #0x1
+ ldrh r2, [r0, #0xc]
+ b _020B5E40
+_020B5DD8:
+ ldrh r3, [r0, #0xc]
+ add r0, r0, #0xc
+ add r0, r0, #0x2
+ sub r3, r3, #0x1
+ add lr, r0, r3, lsl #0x2
+ cmp r0, lr
+ bhi _020B5E40
+_020B5DF4:
+ sub r12, lr, r0
+ mov r3, r12, asr #0x1
+ add r3, r12, r3, lsr #0x1e
+ mov r3, r3, asr #0x2
+ add r3, r3, r3, lsr #0x1f
+ mov r12, r3, asr #0x1
+ mov r3, r12, lsl #0x2
+ ldrh r3, [r0, r3]
+ add r12, r0, r12, lsl #0x2
+ cmp r3, r1
+ addcc r0, r12, #0x4
+ blo _020B5E38
+ cmp r1, r3
+ subcc lr, r12, #0x4
+ blo _020B5E38
+ ldrh r2, [r12, #0x2]
+ b _020B5E40
+_020B5E38:
+ cmp r0, lr
+ bls _020B5DF4
+_020B5E40:
+ mov r0, r2
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020B5E4C: .word 0x0000FFFF
+
+ arm_func_start FUN_020B5E50
+FUN_020B5E50: ; 0x020B5E50
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x3c
+ mov r7, r0
+ mov r0, r1
+ cmp r0, #0x8
+ ldr r0, [sp, #0x60]
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x60]
+ ldr r0, [sp, #0x6c]
+ str r2, [sp, #0x14]
+ str r0, [sp, #0x6c]
+ ldrlt r0, [sp, #0x10]
+ mov r11, r3
+ ldr r6, [sp, #0x64]
+ ldr r5, [sp, #0x68]
+ movge r2, #0x3
+ clzlt r0, r0
+ rsblt r2, r0, #0x1f
+ ldr r0, [sp, #0x14]
+ cmp r0, #0x8
+ ldrlt r0, [sp, #0x14]
+ movge r1, #0x3
+ clzlt r0, r0
+ rsblt r1, r0, #0x1f
+ ldr r0, _020B6170 ; =UNK_020FF970
+ mvn r3, #0x0
+ add r1, r0, r1, lsl #0x3
+ add r0, r1, r2, lsl #0x1
+ ldrb r4, [r1, r2, lsl #0x1]
+ ldrb r1, [r0, #0x1]
+ ldr r2, [sp, #0x14]
+ cmp r6, #0x0
+ str r1, [sp, #0x18]
+ ldr r1, [sp, #0x10]
+ and r1, r1, r3, lsl r4
+ str r1, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ and r1, r2, r3, lsl r1
+ str r1, [sp, #0x20]
+ moveq r1, #0x1
+ streq r1, [sp, #0x24]
+ movne r1, #0x2
+ strne r1, [sp, #0x24]
+ mov r1, #0x0
+ str r1, [sp, #0x28]
+ bl FUN_020B704C
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0x14]
+ mov r10, r1, asr r4
+ ldr r1, [sp, #0x18]
+ mov r1, r2, asr r1
+ str r1, [sp, #0x2c]
+ ldr r1, [sp, #0x24]
+ mov r2, r1, lsl r4
+ ldr r1, [sp, #0x18]
+ mov r2, r2, lsl r1
+ ldr r1, [sp, #0x6c]
+ mov r9, r2, asr r1
+ mov r1, #0x0
+ str r1, [sp, #0x30]
+ str r1, [sp, #0x34]
+ b _020B5FE8
+_020B5F48:
+ ldr r2, [sp, #0x30]
+ ldr r1, [sp, #0x18]
+ ldr r8, [sp, #0x34]
+ mov r2, r2, lsl r1
+ ldr r1, [sp, #0x60]
+ add lr, r1, r2, lsl #0x3
+ b _020B5FD4
+_020B5F64:
+ mov r1, r8, lsl r4
+ add r2, r11, r1, lsl #0x3
+ ldr r1, _020B6174 ; =0x000001FF
+ ldr r3, [r7, #0x0]
+ and r12, r2, r1
+ ldr r1, _020B6178 ; =0xFE00FF00
+ and r2, lr, #0xff
+ and r1, r3, r1
+ orr r1, r1, r2
+ orr r1, r1, r12, lsl #0x10
+ str r1, [r7, #0x0]
+ ldr r3, [r7, #0x0]
+ ldr r1, _020B617C ; =0x3FFF3FFF
+ mov r2, #0x400
+ and r1, r3, r1
+ orr r1, r1, r0
+ str r1, [r7, #0x0]
+ rsb r1, r2, #0x0
+ ldrh r2, [r7, #0x4]
+ add r8, r8, #0x1
+ and r1, r2, r1
+ orr r1, r1, r5
+ strh r1, [r7, #0x4]
+ ldr r1, [r7, #0x0]
+ add r5, r5, r9
+ bic r1, r1, #0x2000
+ orr r1, r1, r6, lsl #0xd
+ str r1, [r7], #0x8
+_020B5FD4:
+ cmp r8, r10
+ blt _020B5F64
+ ldr r1, [sp, #0x30]
+ add r1, r1, #0x1
+ str r1, [sp, #0x30]
+_020B5FE8:
+ ldr r2, [sp, #0x30]
+ ldr r1, [sp, #0x2c]
+ cmp r2, r1
+ blt _020B5F48
+ ldr r0, [sp, #0x28]
+ mla r0, r10, r1, r0
+ str r0, [sp, #0x28]
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x10]
+ cmp r1, r0
+ bhs _020B6078
+ ldr r0, [sp, #0x60]
+ ldr r1, [sp, #0x10]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x1c]
+ str r6, [sp, #0x4]
+ sub r4, r1, r0
+ ldr r1, [sp, #0x6c]
+ str r5, [sp, #0x8]
+ str r1, [sp, #0xc]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ add r3, r11, r1, lsl #0x3
+ mov r0, r7
+ mov r1, r4
+ bl FUN_020B5E50
+ ldr r1, [sp, #0x24]
+ add r7, r7, r0, lsl #0x3
+ mul r2, r1, r4
+ ldr r1, [sp, #0x20]
+ mul r2, r1, r2
+ ldr r1, [sp, #0x6c]
+ add r5, r5, r2, lsr r1
+ ldr r1, [sp, #0x28]
+ add r0, r1, r0
+ str r0, [sp, #0x28]
+_020B6078:
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #0x14]
+ cmp r1, r0
+ bhs _020B60F0
+ ldr r1, [sp, #0x60]
+ ldr r0, [sp, #0x20]
+ mov r3, r11
+ add r0, r1, r0, lsl #0x3
+ str r0, [sp, #0x0]
+ str r6, [sp, #0x4]
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ str r5, [sp, #0x8]
+ sub r4, r1, r0
+ ldr r1, [sp, #0x6c]
+ mov r0, r7
+ str r1, [sp, #0xc]
+ ldr r1, [sp, #0x1c]
+ mov r2, r4
+ bl FUN_020B5E50
+ ldr r2, [sp, #0x24]
+ ldr r1, [sp, #0x1c]
+ add r7, r7, r0, lsl #0x3
+ mul r1, r2, r1
+ mul r2, r4, r1
+ ldr r1, [sp, #0x6c]
+ add r5, r5, r2, lsr r1
+ ldr r1, [sp, #0x28]
+ add r0, r1, r0
+ str r0, [sp, #0x28]
+_020B60F0:
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x10]
+ cmp r1, r0
+ bhs _020B6164
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #0x14]
+ cmp r1, r0
+ bhs _020B6164
+ ldr r1, [sp, #0x60]
+ ldr r0, [sp, #0x20]
+ ldr r2, [sp, #0x10]
+ add r0, r1, r0, lsl #0x3
+ ldr r1, [sp, #0x1c]
+ ldr r3, [sp, #0x14]
+ str r0, [sp, #0x0]
+ sub r1, r2, r1
+ ldr r2, [sp, #0x20]
+ str r6, [sp, #0x4]
+ sub r2, r3, r2
+ ldr r3, [sp, #0x1c]
+ ldr r4, [sp, #0x6c]
+ str r5, [sp, #0x8]
+ mov r0, r7
+ add r3, r11, r3, lsl #0x3
+ str r4, [sp, #0xc]
+ bl FUN_020B5E50
+ ldr r1, [sp, #0x28]
+ add r0, r1, r0
+ str r0, [sp, #0x28]
+_020B6164:
+ ldr r0, [sp, #0x28]
+ add sp, sp, #0x3c
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020B6170: .word UNK_020FF970
+_020B6174: .word 0x000001FF
+_020B6178: .word 0xFE00FF00
+_020B617C: .word 0x3FFF3FFF
+
+ arm_func_start FUN_020B6180
+FUN_020B6180: ; 0x020B6180
+ stmdb sp!, {r4-r6,lr}
+ mov r3, r0, lsr #0x3
+ mov r6, r1, lsr #0x3
+ mul r12, r3, r6
+ and r2, r0, #0x4
+ and lr, r0, #0x2
+ and r0, r0, #0x1
+ add r4, r0, lr, lsr #0x1
+ mov r5, r2, lsr #0x2
+ and r0, r1, #0x4
+ add lr, r12, #0x0
+ add r12, r5, r4, lsl #0x1
+ mla r12, r6, r12, lr
+ and lr, r1, #0x2
+ and r1, r1, #0x1
+ add lr, r1, lr, lsr #0x1
+ mov r1, r0, lsr #0x2
+ add r1, r1, lr, lsl #0x1
+ mla r12, r3, r1, r12
+ add r1, r4, r2, lsr #0x2
+ add r0, lr, r0, lsr #0x2
+ mla r0, r1, r0, r12
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020B61DC
+FUN_020B61DC: ; 0x020B61DC
+ stmdb sp!, {r4-r8,lr}
+ ldr r12, [sp, #0x1c]
+ ldr r8, [sp, #0x18]
+ mov r12, r12, lsl #0x1c
+ mov r4, r12, lsr #0x10
+ mov r6, #0x0
+ cmp r2, #0x0
+ ldmleia sp!, {r4-r8,pc}
+ mov lr, r3, lsl #0x1
+ mov r12, r6
+_020B6204:
+ mov r5, r0
+ mov r7, r12
+ cmp r1, #0x0
+ ble _020B622C
+_020B6214:
+ orr r3, r4, r8
+ add r7, r7, #0x1
+ cmp r7, r1
+ add r8, r8, #0x1
+ strh r3, [r5], #0x2
+ blt _020B6214
+_020B622C:
+ add r6, r6, #0x1
+ cmp r6, r2
+ add r0, r0, lr
+ blt _020B6204
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020B6240
+FUN_020B6240: ; 0x020B6240
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x8
+ ldr r5, [sp, #0x24]
+ ldr lr, [sp, #0x20]
+ cmp r5, #0x20
+ ldr r12, [sp, #0x28]
+ bgt _020B6280
+ mla r4, r5, lr, r3
+ ldr lr, [sp, #0x2c]
+ str r12, [sp, #0x0]
+ mov r3, r5
+ add r0, r0, r4, lsl #0x1
+ str lr, [sp, #0x4]
+ bl FUN_020B61DC
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,pc}
+_020B6280:
+ ldr r4, [sp, #0x2c]
+ add r7, lr, r2
+ mov r2, r4, lsl #0x1c
+ cmp lr, r7
+ add r8, r3, r1
+ mov r4, r2, lsr #0x10
+ addge sp, sp, #0x8
+ ldmgeia sp!, {r4-r8,pc}
+_020B62A0:
+ cmp lr, #0x20
+ movlt r1, lr
+ addge r1, lr, #0x20
+ mov r6, r3
+ cmp r3, r8
+ add r5, r0, r1, lsl #0x6
+ bge _020B62E4
+_020B62BC:
+ cmp r6, #0x20
+ movlt r1, r6
+ addge r1, r6, #0x3e0
+ orr r2, r4, r12
+ mov r1, r1, lsl #0x1
+ add r6, r6, #0x1
+ strh r2, [r5, r1]
+ cmp r6, r8
+ add r12, r12, #0x1
+ blt _020B62BC
+_020B62E4:
+ add lr, lr, #0x1
+ cmp lr, r7
+ blt _020B62A0
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020B62F8
+FUN_020B62F8: ; 0x020B62F8
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x18
+ cmp r2, #0x8
+ movlt r4, r2
+ movge r12, #0x3
+ clzlt r4, r4
+ rsblt r12, r4, #0x1f
+ cmp r3, #0x8
+ movlt r4, r3
+ movge r6, #0x3
+ clzlt r4, r4
+ rsblt r6, r4, #0x1f
+ ldr r4, _020B6378 ; =UNK_020FF970
+ ldr r5, [sp, #0x28]
+ add r4, r4, r6, lsl #0x3
+ ldrb r6, [r4, r12, lsl #0x1]
+ add r12, r4, r12, lsl #0x1
+ ldr r4, _020B637C ; =FUN_020B6908
+ strb r6, [sp, #0x14]
+ ldrb r6, [r12, #0x1]
+ ldr lr, _020B6380 ; =FUN_020B68AC
+ ldr ip, _020B6384 ; =FUN_020B64C0
+ strb r6, [sp, #0x15]
+ str r5, [sp, #0x0]
+ str r4, [sp, #0x4]
+ str lr, [sp, #0x8]
+ str r12, [sp, #0xc]
+ ldr r12, [sp, #0x14]
+ str r12, [sp, #0x10]
+ bl FUN_020B6488
+ add sp, sp, #0x18
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B6378: .word UNK_020FF970
+_020B637C: .word FUN_020B6908
+_020B6380: .word FUN_020B68AC
+_020B6384: .word FUN_020B64C0
+
+ arm_func_start FUN_020B6388
+FUN_020B6388: ; 0x020B6388
+ stmdb sp!, {lr}
+ sub sp, sp, #0x14
+ ldr lr, [sp, #0x18]
+ ldr ip, _020B63C0 ; =FUN_020B6B10
+ str lr, [sp, #0x0]
+ ldr lr, _020B63C4 ; =FUN_020B68AC
+ str r12, [sp, #0x4]
+ ldr ip, _020B63C8 ; =FUN_020B66D4
+ str lr, [sp, #0x8]
+ str r12, [sp, #0xc]
+ str r2, [sp, #0x10]
+ bl FUN_020B6488
+ add sp, sp, #0x14
+ ldmia sp!, {pc}
+ .balign 4
+_020B63C0: .word FUN_020B6B10
+_020B63C4: .word FUN_020B68AC
+_020B63C8: .word FUN_020B66D4
+
+ arm_func_start FUN_020B63CC
+FUN_020B63CC: ; 0x020B63CC
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x10
+ mov r7, r1
+ ldrh r1, [sp, #0x2c]
+ mov r8, r0
+ mov r0, r7
+ mov r6, r2
+ mov r5, r3
+ bl FUN_020B5CE4
+ ldr r1, _020B6484 ; =0x0000FFFF
+ mov r4, r0
+ cmp r4, r1
+ ldreq r0, [r7, #0x0]
+ ldreqh r4, [r0, #0x2]
+ mov r0, r7
+ mov r1, r4
+ bl FUN_020B5C88
+ str r0, [sp, #0x8]
+ ldr r0, [r7, #0x0]
+ ldr r2, [sp, #0x28]
+ ldr r0, [r0, #0x8]
+ add r1, sp, #0x8
+ ldrh r3, [r0, #0x2]
+ add r12, r0, #0x8
+ mov r0, r8
+ mla r3, r4, r3, r12
+ str r3, [sp, #0xc]
+ str r2, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldr r1, [sp, #0x8]
+ ldr r4, [r8, #0x14]
+ ldrsb r2, [r1, #0x0]
+ mov r1, r7
+ mov r3, r5
+ add r2, r6, r2
+ blx r4
+ ldrh r0, [r7, #0x8]
+ cmp r0, #0x0
+ ldrne r0, [sp, #0x8]
+ ldrnesb r1, [r0, #0x0]
+ ldrneb r0, [r0, #0x1]
+ addne r0, r1, r0
+ ldreq r0, [sp, #0x8]
+ ldreqsb r0, [r0, #0x2]
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020B6484: .word 0x0000FFFF
+
+ arm_func_start FUN_020B6488
+FUN_020B6488: ; 0x020B6488
+ str r2, [r0, #0x4]
+ ldr r2, [sp, #0x0]
+ str r3, [r0, #0x8]
+ strb r2, [r0, #0xc]
+ ldr r2, [sp, #0x4]
+ str r1, [r0, #0x0]
+ ldr r1, [sp, #0x8]
+ str r2, [r0, #0x14]
+ ldr r2, [sp, #0xc]
+ str r1, [r0, #0x18]
+ ldr r1, [sp, #0x10]
+ str r2, [r0, #0x1c]
+ str r1, [r0, #0x10]
+ bx lr
+
+ arm_func_start FUN_020B64C0
+FUN_020B64C0: ; 0x020B64C0
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x54
+ ldrb r4, [r0, #0xc]
+ mov r10, r2
+ str r1, [sp, #0xc]
+ str r4, [sp, #0x44]
+ ldr r1, [sp, #0x44]
+ ldr r4, [sp, #0x78]
+ cmp r1, #0x4
+ add r1, r10, r4
+ str r1, [sp, #0x1c]
+ ldr r2, [sp, #0x7c]
+ mov r1, r3
+ add r1, r1, r2
+ str r1, [sp, #0x20]
+ ldrne r1, [sp, #0xc]
+ str r3, [sp, #0x10]
+ orrne r1, r1, r1, lsl #0x8
+ orrne r1, r1, r1, lsl #0x10
+ strne r1, [sp, #0xc]
+ bne _020B6528
+ ldr r1, [sp, #0xc]
+ orr r1, r1, r1, lsl #0x4
+ orr r1, r1, r1, lsl #0x8
+ orr r1, r1, r1, lsl #0x10
+ str r1, [sp, #0xc]
+_020B6528:
+ bic r1, r10, #0x7
+ str r1, [sp, #0x30]
+ ldr r1, [sp, #0x10]
+ ldr r2, [r0, #0x10]
+ bic r1, r1, #0x7
+ str r1, [sp, #0x14]
+ ldr r1, [sp, #0x44]
+ str r2, [sp, #0x4c]
+ mov r3, r1, lsl #0x6
+ mov r2, r3, asr #0x2
+ ldr r1, [sp, #0x20]
+ add r3, r3, r2, lsr #0x1d
+ ldr r2, [sp, #0x1c]
+ add r6, r1, #0x7
+ add r2, r2, #0x7
+ bic r5, r2, #0x7
+ bic r2, r6, #0x7
+ ldr r1, [sp, #0x30]
+ str r2, [sp, #0x24]
+ mov r2, r3, asr #0x3
+ str r2, [sp, #0x48]
+ mov r4, r1, asr #0x2
+ ldr r2, [sp, #0x30]
+ ldr r1, [sp, #0x14]
+ add r2, r2, r4, lsr #0x1d
+ mov r2, r2, asr #0x3
+ str r2, [sp, #0x2c]
+ ldr r2, [sp, #0x14]
+ mov r1, r1, asr #0x2
+ add r1, r2, r1, lsr #0x1d
+ mov r6, r1, asr #0x3
+ ldr r1, [sp, #0x24]
+ cmp r2, r1
+ ldr r1, [r0, #0x4]
+ str r1, [sp, #0x40]
+ ldr r1, [r0, #0x8]
+ ldr r0, [r0, #0x0]
+ str r1, [sp, #0x3c]
+ str r0, [sp, #0x28]
+ ldrb r0, [sp, #0x4c]
+ str r0, [sp, #0x38]
+ ldrb r0, [sp, #0x4d]
+ str r0, [sp, #0x34]
+ addge sp, sp, #0x54
+ ldmgeia sp!, {r4-r11,pc}
+ mov r4, #0x0
+ mov r11, #0x8
+_020B65E4:
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ ldr r7, [sp, #0x2c]
+ cmp r1, r0
+ movlt r1, r0
+ ldrlt r0, [sp, #0x14]
+ sublt r9, r1, r0
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #0x14]
+ movge r9, r4
+ sub r0, r1, r0
+ cmp r0, #0x8
+ movgt r0, r11
+ sub r0, r0, r9
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x30]
+ cmp r0, r5
+ mov r8, r0
+ bge _020B66B0
+_020B6630:
+ ldr r0, [sp, #0x38]
+ ldr r2, [sp, #0x40]
+ str r0, [sp, #0x0]
+ ldr r0, [sp, #0x34]
+ ldr r3, [sp, #0x3c]
+ str r0, [sp, #0x4]
+ mov r0, r7
+ mov r1, r6
+ bl FUN_020B7068
+ ldr r2, [sp, #0x1c]
+ cmp r8, r10
+ sublt r1, r10, r8
+ sub r2, r2, r8
+ movge r1, r4
+ cmp r2, #0x8
+ movgt r2, r11
+ sub r3, r2, r1
+ ldr r2, [sp, #0x18]
+ ldr r12, [sp, #0x48]
+ str r2, [sp, #0x0]
+ ldr r2, [sp, #0xc]
+ str r2, [sp, #0x4]
+ ldr r2, [sp, #0x44]
+ str r2, [sp, #0x8]
+ ldr r2, [sp, #0x28]
+ mla r0, r12, r0, r2
+ mov r2, r9
+ bl FUN_020B6F18
+ add r8, r8, #0x8
+ add r7, r7, #0x1
+ cmp r8, r5
+ blt _020B6630
+_020B66B0:
+ ldr r0, [sp, #0x14]
+ add r6, r6, #0x1
+ add r1, r0, #0x8
+ ldr r0, [sp, #0x24]
+ str r1, [sp, #0x14]
+ cmp r1, r0
+ blt _020B65E4
+ add sp, sp, #0x54
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B66D4
+FUN_020B66D4: ; 0x020B66D4
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x3c
+ ldrb r4, [r0, #0xc]
+ mov r10, r2
+ str r1, [sp, #0xc]
+ str r4, [sp, #0x2c]
+ ldr r1, [sp, #0x2c]
+ ldr r4, [sp, #0x60]
+ cmp r1, #0x4
+ add r1, r10, r4
+ str r1, [sp, #0x18]
+ ldr r2, [sp, #0x64]
+ mov r1, r3
+ add r1, r1, r2
+ str r1, [sp, #0x1c]
+ ldrne r1, [sp, #0xc]
+ str r3, [sp, #0x10]
+ orrne r1, r1, r1, lsl #0x8
+ orrne r1, r1, r1, lsl #0x10
+ strne r1, [sp, #0xc]
+ bne _020B673C
+ ldr r1, [sp, #0xc]
+ orr r1, r1, r1, lsl #0x4
+ orr r1, r1, r1, lsl #0x8
+ orr r1, r1, r1, lsl #0x10
+ str r1, [sp, #0xc]
+_020B673C:
+ ldr r1, [sp, #0x10]
+ bic r1, r1, #0x7
+ mov r2, r1, asr #0x2
+ str r1, [sp, #0x14]
+ add r1, r1, r2, lsr #0x1d
+ ldr r2, [r0, #0x10]
+ mov r3, r1, asr #0x3
+ mul r1, r3, r2
+ bic r3, r10, #0x7
+ str r3, [sp, #0x28]
+ ldr r3, [sp, #0x2c]
+ mov r6, r3, lsl #0x6
+ ldr r3, [sp, #0x28]
+ mov r4, r6, asr #0x2
+ mov r5, r3, asr #0x2
+ add r5, r3, r5, lsr #0x1d
+ add r4, r6, r4, lsr #0x1d
+ mov r3, r4, asr #0x3
+ str r3, [sp, #0x30]
+ ldr r3, [sp, #0x1c]
+ add r1, r1, r5, asr #0x3
+ add r4, r3, #0x7
+ ldr r3, [r0, #0x0]
+ ldr r0, [sp, #0x18]
+ add r5, r0, #0x7
+ ldr r0, [sp, #0x30]
+ bic r7, r5, #0x7
+ mla r1, r0, r1, r3
+ bic r0, r4, #0x7
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x30]
+ str r1, [sp, #0x24]
+ mul r0, r2, r0
+ str r0, [sp, #0x34]
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ cmp r1, r0
+ addge sp, sp, #0x3c
+ ldmgeia sp!, {r4-r11,pc}
+ mov r5, #0x0
+ mov r4, #0x8
+_020B67E0:
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ ldr r6, [sp, #0x24]
+ cmp r1, r0
+ movlt r1, r0
+ ldrlt r0, [sp, #0x14]
+ sublt r9, r1, r0
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x14]
+ movge r9, r5
+ sub r0, r1, r0
+ cmp r0, #0x8
+ movgt r0, r4
+ sub r11, r0, r9
+ ldr r0, [sp, #0x28]
+ cmp r0, r7
+ mov r8, r0
+ bge _020B687C
+_020B6828:
+ ldr r0, [sp, #0x18]
+ cmp r8, r10
+ sublt r1, r10, r8
+ sub r0, r0, r8
+ movge r1, r5
+ cmp r0, #0x8
+ movgt r0, r4
+ sub r3, r0, r1
+ ldr r0, [sp, #0xc]
+ str r11, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [sp, #0x2c]
+ mov r2, r9
+ str r0, [sp, #0x8]
+ mov r0, r6
+ bl FUN_020B6F18
+ ldr r0, [sp, #0x30]
+ add r8, r8, #0x8
+ add r6, r6, r0
+ cmp r8, r7
+ blt _020B6828
+_020B687C:
+ ldr r1, [sp, #0x24]
+ ldr r0, [sp, #0x34]
+ add r0, r1, r0
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x14]
+ add r1, r0, #0x8
+ ldr r0, [sp, #0x20]
+ str r1, [sp, #0x14]
+ cmp r1, r0
+ blt _020B67E0
+ add sp, sp, #0x3c
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B68AC
+FUN_020B68AC: ; 0x020B68AC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r3, r0
+ ldrb r2, [r3, #0xc]
+ ldr r12, [r3, #0x4]
+ cmp r2, #0x4
+ orreq r0, r1, r1, lsl #0x4
+ orreq r0, r0, r0, lsl #0x8
+ orreq r1, r0, r0, lsl #0x10
+ orrne r0, r1, r1, lsl #0x8
+ orrne r1, r0, r0, lsl #0x10
+ ldr r0, [r3, #0x8]
+ mov r2, r2, lsl #0x6
+ mul lr, r12, r0
+ mov r0, r2, asr #0x2
+ add r0, r2, r0, lsr #0x1d
+ mov r2, r0, asr #0x3
+ mov r0, r1
+ mul r2, lr, r2
+ ldr r1, [r3, #0x0]
+ bl MIi_CpuClearFast
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020B6908
+FUN_020B6908: ; 0x020B6908
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4c
+ ldr r7, [sp, #0x74]
+ ldrb r5, [r0, #0xc]
+ ldr r6, [r1, #0x0]
+ ldr r4, [r7, #0x0]
+ ldr r9, [r6, #0x8]
+ mov r8, r5, lsl #0x6
+ ldrb r4, [r4, #0x1]
+ mov r5, r8, asr #0x2
+ add r5, r8, r5, lsr #0x1d
+ ldrb r9, [r9, #0x1]
+ ldr r8, [r0, #0x4]
+ ldr r6, [r0, #0x8]
+ str r2, [sp, #0x8]
+ str r3, [sp, #0xc]
+ cmp r4, #0x0
+ mov r5, r5, asr #0x3
+ addeq sp, sp, #0x4c
+ ldmeqia sp!, {r4-r11,pc}
+ adds r3, r2, r4
+ addmi sp, sp, #0x4c
+ ldmmiia sp!, {r4-r11,pc}
+ ldr r2, [sp, #0xc]
+ adds r2, r2, r9
+ addmi sp, sp, #0x4c
+ ldmmiia sp!, {r4-r11,pc}
+ ldr r10, [sp, #0x8]
+ add r3, r3, #0x7
+ cmp r10, #0x0
+ movle r10, #0x0
+ strle r10, [sp, #0x10]
+ movgt r10, r10, lsr #0x3
+ strgt r10, [sp, #0x10]
+ ldr r10, [sp, #0xc]
+ add r2, r2, #0x7
+ cmp r10, #0x0
+ movle r10, #0x0
+ mov r11, r2, lsr #0x3
+ mov r3, r3, lsr #0x3
+ movgt r10, r10, lsr #0x3
+ cmp r3, r8
+ movcs r3, r8
+ cmp r11, r6
+ ldr r2, [sp, #0x10]
+ movcs r11, r6
+ subs r8, r3, r2
+ addmi sp, sp, #0x4c
+ sub r3, r11, r10
+ ldmmiia sp!, {r4-r11,pc}
+ cmp r3, #0x0
+ addlt sp, sp, #0x4c
+ ldmltia sp!, {r4-r11,pc}
+ ldr r2, [sp, #0x8]
+ ldr r6, [r0, #0x0]
+ cmp r2, #0x0
+ andge r2, r2, #0x7
+ strge r2, [sp, #0x8]
+ ldr r2, [sp, #0xc]
+ ldr r11, [sp, #0x8]
+ cmp r2, #0x0
+ andge r2, r2, #0x7
+ strge r2, [sp, #0xc]
+ sub r8, r11, r8, lsl #0x3
+ ldr r11, [sp, #0xc]
+ ldr r2, [sp, #0x70]
+ sub r3, r11, r3, lsl #0x3
+ str r3, [sp, #0x14]
+ ldr r3, [r7, #0x4]
+ sub r2, r2, #0x1
+ str r3, [sp, #0x28]
+ str r2, [sp, #0x48]
+ str r9, [sp, #0x38]
+ str r4, [sp, #0x34]
+ ldr r4, [r1, #0x0]
+ ldr r2, [sp, #0x14]
+ mov r3, r11
+ cmp r3, r2
+ ldr r2, [r4, #0x8]
+ ldrb r3, [r2, #0x6]
+ str r3, [sp, #0x40]
+ ldrb r2, [r0, #0xc]
+ str r2, [sp, #0x44]
+ ldr r1, [r1, #0x0]
+ ldr r1, [r1, #0x8]
+ ldrb r1, [r1, #0x0]
+ mul r1, r3, r1
+ str r1, [sp, #0x3c]
+ ldr r1, [r0, #0x10]
+ str r1, [sp, #0x20]
+ ldr r1, [r0, #0x4]
+ ldr r0, [r0, #0x8]
+ ldrb r11, [sp, #0x20]
+ ldrb r4, [sp, #0x21]
+ str r1, [sp, #0x1c]
+ str r0, [sp, #0x18]
+ addle sp, sp, #0x4c
+ ldmleia sp!, {r4-r11,pc}
+_020B6A90:
+ ldr r0, [sp, #0xc]
+ ldr r7, [sp, #0x10]
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x8]
+ cmp r0, r8
+ mov r9, r0
+ ble _020B6AEC
+_020B6AAC:
+ ldr r2, [sp, #0x1c]
+ str r11, [sp, #0x0]
+ ldr r3, [sp, #0x18]
+ mov r0, r7
+ mov r1, r10
+ str r4, [sp, #0x4]
+ bl FUN_020B7068
+ mla r1, r0, r5, r6
+ add r0, sp, #0x24
+ str r9, [sp, #0x2c]
+ str r1, [sp, #0x24]
+ bl FUN_020B6CAC
+ sub r9, r9, #0x8
+ add r7, r7, #0x1
+ cmp r9, r8
+ bgt _020B6AAC
+_020B6AEC:
+ ldr r0, [sp, #0xc]
+ add r10, r10, #0x1
+ sub r1, r0, #0x8
+ ldr r0, [sp, #0x14]
+ str r1, [sp, #0xc]
+ cmp r1, r0
+ bgt _020B6A90
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B6B10
+FUN_020B6B10: ; 0x020B6B10
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x2c
+ ldr r4, [sp, #0x54]
+ ldrb r5, [r0, #0xc]
+ str r4, [sp, #0x54]
+ ldr r4, [r4, #0x0]
+ ldr r6, [r1, #0x0]
+ mov r7, r5, lsl #0x6
+ ldrb r4, [r4, #0x1]
+ mov r5, r7, asr #0x2
+ add r5, r7, r5, lsr #0x1d
+ cmp r4, #0x0
+ ldr r6, [r6, #0x8]
+ mov r9, r3
+ ldr r8, [r0, #0x4]
+ ldr r7, [r0, #0x8]
+ mov r10, r2
+ mov r5, r5, asr #0x3
+ addeq sp, sp, #0x2c
+ ldr lr, [r0, #0x0]
+ ldrb r3, [r6, #0x1]
+ ldmeqia sp!, {r4-r11,pc}
+ adds r6, r10, r4
+ addmi sp, sp, #0x2c
+ ldmmiia sp!, {r4-r11,pc}
+ adds r2, r9, r3
+ addmi sp, sp, #0x2c
+ ldmmiia sp!, {r4-r11,pc}
+ cmp r10, #0x0
+ movle r11, #0x0
+ add r6, r6, #0x7
+ movgt r11, r10, lsr #0x3
+ cmp r9, #0x0
+ movle r12, #0x0
+ add r2, r2, #0x7
+ mov r6, r6, lsr #0x3
+ movgt r12, r9, lsr #0x3
+ cmp r6, r8
+ movcs r6, r8
+ mov r2, r2, lsr #0x3
+ cmp r2, r7
+ movcs r2, r7
+ subs r7, r6, r11
+ addmi sp, sp, #0x2c
+ sub r2, r2, r12
+ ldmmiia sp!, {r4-r11,pc}
+ cmp r2, #0x0
+ addlt sp, sp, #0x2c
+ ldmltia sp!, {r4-r11,pc}
+ ldr r6, [r0, #0x10]
+ cmp r10, #0x0
+ sub r8, r6, r7
+ mul r8, r5, r8
+ mla r11, r6, r12, r11
+ andge r10, r10, #0x7
+ str r8, [sp, #0x0]
+ ldr r8, [sp, #0x54]
+ mla r6, r5, r11, lr
+ ldr r12, [r8, #0x4]
+ ldr r11, [sp, #0x50]
+ cmp r9, #0x0
+ sub r8, r11, #0x1
+ andge r9, r9, #0x7
+ sub r11, r9, r2, lsl #0x3
+ str r12, [sp, #0x8]
+ str r4, [sp, #0x14]
+ str r8, [sp, #0x28]
+ str r3, [sp, #0x18]
+ ldr r3, [r1, #0x0]
+ cmp r9, r11
+ ldr r2, [r3, #0x8]
+ sub r7, r10, r7, lsl #0x3
+ ldrb r2, [r2, #0x6]
+ str r2, [sp, #0x20]
+ ldrb r0, [r0, #0xc]
+ str r0, [sp, #0x24]
+ ldr r0, [r1, #0x0]
+ ldr r0, [r0, #0x8]
+ ldrb r0, [r0, #0x0]
+ mul r0, r2, r0
+ str r0, [sp, #0x1c]
+ addle sp, sp, #0x2c
+ ldmleia sp!, {r4-r11,pc}
+ add r4, sp, #0x4
+_020B6C60:
+ mov r8, r10
+ str r9, [sp, #0x10]
+ cmp r10, r7
+ ble _020B6C90
+_020B6C70:
+ mov r0, r4
+ str r6, [sp, #0x4]
+ str r8, [sp, #0xc]
+ bl FUN_020B6CAC
+ sub r8, r8, #0x8
+ cmp r8, r7
+ add r6, r6, r5
+ bgt _020B6C70
+_020B6C90:
+ ldr r0, [sp, #0x0]
+ sub r9, r9, #0x8
+ cmp r9, r11
+ add r6, r6, r0
+ bgt _020B6C60
+ add sp, sp, #0x2c
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B6CAC
+FUN_020B6CAC: ; 0x020B6CAC
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x34
+ ldr r5, [r0, #0x8]
+ ldr r4, [r0, #0xc]
+ cmp r5, #0x0
+ strge r5, [sp, #0x0]
+ movlt r1, #0x0
+ strlt r1, [sp, #0x0]
+ ldr r1, [r0, #0x10]
+ cmp r4, #0x0
+ add r10, r5, r1
+ ldr r1, [r0, #0x14]
+ movge r2, r4
+ movlt r2, #0x0
+ cmp r10, #0x8
+ add r3, r4, r1
+ movge r10, #0x8
+ cmp r3, #0x8
+ movge r3, #0x8
+ cmp r4, #0x0
+ movgt r4, #0x0
+ cmp r5, #0x0
+ ldr r8, [r0, #0x20]
+ movgt r5, #0x0
+ rsb r1, r4, #0x0
+ mul r7, r10, r8
+ ldr r6, [r0, #0x1c]
+ rsb r4, r5, #0x0
+ mul r9, r6, r4
+ ldr r4, [r0, #0x18]
+ mov r10, r7
+ str r4, [sp, #0x8]
+ ldr r4, [sp, #0x0]
+ cmp r8, #0x4
+ mul r5, r4, r8
+ ldr r4, [sp, #0x8]
+ str r5, [sp, #0x0]
+ mla r11, r1, r4, r9
+ ldr r1, [r0, #0x4]
+ str r1, [sp, #0x4]
+ bne _020B6E24
+ ldr r1, [r0, #0x0]
+ ldr r7, [r0, #0x24]
+ add r0, r1, r2, lsl #0x2
+ str r0, [sp, #0xc]
+ add r0, r1, r3, lsl #0x2
+ ldr r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ cmp r1, r0
+ addcs sp, sp, #0x34
+ ldmcsia sp!, {r4-r11,pc}
+ mov r0, #0x0
+ add r9, sp, #0x24
+ mov r4, #0xf
+ str r0, [sp, #0x1c]
+_020B6D88:
+ ldr r0, [sp, #0xc]
+ mov r1, r11, lsr #0x1f
+ ldr r5, [r0, #0x0]
+ ldr r0, [sp, #0x4]
+ rsb r2, r1, r11, lsl #0x1d
+ add r0, r0, r11, lsr #0x3
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x1c]
+ add r1, r1, r2, ror #0x1d
+ strb r0, [sp, #0x28]
+ strb r0, [sp, #0x29]
+ mov r0, r9
+ bl FUN_020B76B0
+ ldr r8, [sp, #0x0]
+ mov r0, r8
+ cmp r0, r10
+ bhs _020B6DF8
+_020B6DCC:
+ mov r0, r9
+ mov r1, r6
+ bl FUN_020B76B0
+ cmp r0, #0x0
+ mvnne r1, r4, lsl r8
+ addne r0, r7, r0
+ andne r1, r5, r1
+ orrne r5, r1, r0, lsl r8
+ add r8, r8, #0x4
+ cmp r8, r10
+ blo _020B6DCC
+_020B6DF8:
+ ldr r0, [sp, #0xc]
+ add r1, r0, #0x4
+ str r5, [r0, #0x0]
+ ldr r0, [sp, #0x10]
+ str r1, [sp, #0xc]
+ cmp r1, r0
+ ldr r0, [sp, #0x8]
+ add r11, r11, r0
+ blo _020B6D88
+ add sp, sp, #0x34
+ ldmia sp!, {r4-r11,pc}
+_020B6E24:
+ ldr r1, [r0, #0x0]
+ ldr r9, [r0, #0x24]
+ add r0, r1, r2, lsl #0x3
+ str r0, [sp, #0x14]
+ add r0, r1, r3, lsl #0x3
+ ldr r1, [sp, #0x14]
+ str r0, [sp, #0x18]
+ cmp r1, r0
+ addcs sp, sp, #0x34
+ ldmcsia sp!, {r4-r11,pc}
+ mov r0, #0x0
+ mov r4, #0xff
+ str r0, [sp, #0x20]
+_020B6E58:
+ mov r1, r11, lsr #0x1f
+ rsb r0, r1, r11, lsl #0x1d
+ add r1, r1, r0, ror #0x1d
+ ldr r0, [sp, #0x14]
+ ldr r8, [r0, #0x0]
+ ldr r7, [r0, #0x4]
+ ldr r0, [sp, #0x4]
+ add r0, r0, r11, lsr #0x3
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x20]
+ strb r0, [sp, #0x30]
+ strb r0, [sp, #0x31]
+ add r0, sp, #0x2c
+ bl FUN_020B76B0
+ ldr r0, [sp, #0x0]
+ cmp r0, r10
+ mov r5, r0
+ bhs _020B6EE8
+_020B6EA0:
+ add r0, sp, #0x2c
+ mov r1, r6
+ bl FUN_020B76B0
+ cmp r0, #0x0
+ beq _020B6EDC
+ cmp r5, #0x20
+ mvncc r1, r4, lsl r5
+ addcc r0, r9, r0
+ andcc r1, r8, r1
+ orrcc r8, r1, r0, lsl r5
+ subcs r2, r5, #0x20
+ mvncs r1, r4, lsl r2
+ addcs r0, r9, r0
+ andcs r1, r7, r1
+ orrcs r7, r1, r0, lsl r2
+_020B6EDC:
+ add r5, r5, #0x8
+ cmp r5, r10
+ blo _020B6EA0
+_020B6EE8:
+ ldr r0, [sp, #0x14]
+ str r8, [r0, #0x0]
+ add r1, r0, #0x8
+ str r7, [r0, #0x4]
+ ldr r0, [sp, #0x18]
+ str r1, [sp, #0x14]
+ cmp r1, r0
+ ldr r0, [sp, #0x8]
+ add r11, r11, r0
+ blo _020B6E58
+ add sp, sp, #0x34
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B6F18
+FUN_020B6F18: ; 0x020B6F18
+ stmdb sp!, {r4-r6,lr}
+ mov lr, r0
+ cmp r3, #0x8
+ ldr r0, [sp, #0x14]
+ bne _020B6F4C
+ ldr r4, [sp, #0x10]
+ cmp r4, #0x8
+ bne _020B6F4C
+ ldr r2, [sp, #0x18]
+ mov r1, lr
+ mov r2, r2, lsl #0x3
+ bl MIi_CpuClearFast
+ ldmia sp!, {r4-r6,pc}
+_020B6F4C:
+ ldr r4, [sp, #0x18]
+ cmp r4, #0x4
+ bne _020B6FAC
+ mov r5, r1, lsl #0x2
+ add r4, r5, r3, lsl #0x2
+ mvn r3, #0x0
+ rsb r4, r4, #0x20
+ mov r3, r3, lsr r5
+ add r1, r4, r1, lsl #0x2
+ mov r3, r3, lsl r1
+ ldr r1, [sp, #0x10]
+ add r5, lr, r2, lsl #0x2
+ add r2, r5, r1, lsl #0x2
+ and r6, r0, r3, lsr r4
+ cmp r5, r2
+ mvn r1, r3, lsr r4
+ ldmcsia sp!, {r4-r6,pc}
+_020B6F90:
+ ldr r0, [r5, #0x0]
+ and r0, r0, r1
+ orr r0, r6, r0
+ str r0, [r5], #0x4
+ cmp r5, r2
+ blo _020B6F90
+ ldmia sp!, {r4-r6,pc}
+_020B6FAC:
+ mov r12, r1, lsl #0x3
+ add r1, r12, r3, lsl #0x3
+ rsb r1, r1, #0x40
+ mvn r3, #0x0
+ cmp r1, #0x20
+ mov r5, r3, lsr r12
+ subcs r4, r1, #0x20
+ addcs r3, r12, r4
+ movcs r3, r5, lsl r3
+ movcs r3, r3, lsr r4
+ movcc r3, r5, lsl r12
+ mvn r4, #0x0
+ add r5, lr, r2, lsl #0x3
+ cmp r12, #0x20
+ mov r4, r4, lsl r1
+ subcs r12, r12, #0x20
+ addcs r1, r12, r1
+ movcs r1, r4, lsr r1
+ movcs r6, r1, lsl r12
+ movcc r6, r4, lsr r1
+ ldr r1, [sp, #0x10]
+ and lr, r0, r3
+ add r4, r5, r1, lsl #0x3
+ cmp r5, r4
+ and r12, r0, r6
+ mvn r2, r3
+ mvn r1, r6
+ ldmcsia sp!, {r4-r6,pc}
+_020B701C:
+ ldr r0, [r5, #0x0]
+ and r0, r0, r2
+ orr r0, lr, r0
+ str r0, [r5, #0x0]
+ ldr r0, [r5, #0x4]
+ and r0, r0, r1
+ orr r0, r12, r0
+ str r0, [r5, #0x4]
+ add r5, r5, #0x8
+ cmp r5, r4
+ blo _020B701C
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020B704C
+FUN_020B704C: ; 0x020B704C
+ ldrb r3, [r0, #0x1]
+ ldr r2, _020B7064 ; =UNK_020FF990
+ ldrb r1, [r0, #0x0]
+ add r0, r2, r3, lsl #0x4
+ ldr r0, [r0, r1, lsl #0x2]
+ bx lr
+ .balign 4
+_020B7064: .word UNK_020FF990
+
+ arm_func_start FUN_020B7068
+FUN_020B7068: ; 0x020B7068
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ ldr fp, _020B7164 ; =UNK_020FF970
+ mov r9, #0x0
+ mov r10, #0x3
+ mvn r7, #0x0
+_020B7080:
+ ldr r4, [sp, #0x2c]
+ ldr r6, [sp, #0x28]
+ and r12, r3, r7, lsl r4
+ cmp r12, r1
+ mov r8, r7, lsl r6
+ mov r5, r7, lsl r4
+ and lr, r2, r7, lsl r6
+ bhi _020B70D0
+ mla r9, r2, r12, r9
+ cmp lr, r0
+ movhi r2, lr
+ subhi r1, r1, r12
+ subhi r3, r3, r12
+ bhi _020B7118
+ sub r3, r3, r12
+ mla r9, lr, r3, r9
+ sub r0, r0, lr
+ sub r1, r1, r12
+ sub r2, r2, lr
+ b _020B7118
+_020B70D0:
+ cmp lr, r0
+ mlals r9, lr, r12, r9
+ mvn r3, r5
+ movls r3, r12
+ subls r0, r0, lr
+ subls r2, r2, lr
+ bls _020B7118
+ and r2, r1, r5
+ mla r5, lr, r2, r9
+ and r2, r0, r8
+ and r1, r1, r3
+ add r2, r5, r2, lsl r4
+ mvn r3, r8
+ add r1, r2, r1, lsl r6
+ and r0, r0, r3
+ add sp, sp, #0x4
+ add r0, r1, r0
+ ldmia sp!, {r4-r11,pc}
+_020B7118:
+ cmp r2, #0x8
+ movlt r4, r2
+ movge r5, r10
+ clzlt r4, r4
+ rsblt r5, r4, #0x1f
+ cmp r3, #0x8
+ movge r4, r10
+ movlt r4, r3
+ clzlt r4, r4
+ rsblt r4, r4, #0x1f
+ add r4, r11, r4, lsl #0x3
+ add r6, r4, r5, lsl #0x1
+ ldrb r5, [r4, r5, lsl #0x1]
+ ldrb r4, [r6, #0x1]
+ str r5, [sp, #0x28]
+ str r4, [sp, #0x2c]
+ b _020B7080
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020B7164: .word UNK_020FF970
+
+ arm_func_start FUN_020B7168
+FUN_020B7168: ; 0x020B7168
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0xc
+ ldr r12, [sp, #0x28]
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ ands r0, r12, #0x100
+ beq _020B71AC
+ ldr r0, [r7, #0x4]
+ ldr r1, [r7, #0xc]
+ ldr r2, [sp, #0x2c]
+ bl FUN_020B5B54
+ ldr r1, [sp, #0x20]
+ sub r0, r1, r0
+ add r5, r5, r0
+ b _020B71E4
+_020B71AC:
+ ands r0, r12, #0x80
+ beq _020B71E4
+ ldr r0, [r7, #0x4]
+ ldr r1, [r7, #0xc]
+ ldr r2, [sp, #0x2c]
+ bl FUN_020B5B54
+ ldr r2, [sp, #0x20]
+ add r1, r0, #0x1
+ add r0, r2, #0x1
+ add r0, r0, r0, lsr #0x1f
+ mov r2, r0, asr #0x1
+ add r0, r1, r1, lsr #0x1f
+ sub r0, r2, r0, asr #0x1
+ add r5, r5, r0
+_020B71E4:
+ ldr r1, [sp, #0x24]
+ ldr r0, [sp, #0x28]
+ str r1, [sp, #0x0]
+ ldr r12, [sp, #0x2c]
+ str r0, [sp, #0x4]
+ mov r0, r7
+ mov r1, r6
+ mov r2, r5
+ mov r3, r4
+ str r12, [sp, #0x8]
+ bl FUN_020B72C4
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020B7218
+FUN_020B7218: ; 0x020B7218
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x18
+ ldr r4, [sp, #0x34]
+ mov r8, r0
+ str r4, [sp, #0x0]
+ mov r7, r1
+ mov r6, r2
+ mov r5, r3
+ ldr r4, [sp, #0x30]
+ ldr r1, [r8, #0x4]
+ ldr r2, [r8, #0x8]
+ ldr r3, [r8, #0xc]
+ add r0, sp, #0xc
+ bl FUN_020B5ABC
+ ands r0, r4, #0x10
+ ldrne r0, [sp, #0xc]
+ addne r0, r0, #0x1
+ addne r0, r0, r0, lsr #0x1f
+ subne r7, r7, r0, asr #0x1
+ bne _020B7274
+ ands r0, r4, #0x20
+ ldrne r0, [sp, #0xc]
+ subne r7, r7, r0
+_020B7274:
+ ands r0, r4, #0x2
+ ldrne r0, [sp, #0x10]
+ addne r0, r0, #0x1
+ addne r0, r0, r0, lsr #0x1f
+ subne r6, r6, r0, asr #0x1
+ bne _020B7298
+ ands r0, r4, #0x4
+ ldrne r0, [sp, #0x10]
+ subne r6, r6, r0
+_020B7298:
+ str r5, [sp, #0x0]
+ ldr r0, [sp, #0x34]
+ str r4, [sp, #0x4]
+ str r0, [sp, #0x8]
+ ldr r3, [sp, #0xc]
+ mov r0, r8
+ mov r1, r7
+ mov r2, r6
+ bl FUN_020B72C4
+ add sp, sp, #0x18
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020B72C4
+FUN_020B72C4: ; 0x020B72C4
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x14
+ mov r10, r0
+ ldr r4, [r10, #0x4]
+ ldr r0, [sp, #0x40]
+ ldr r4, [r4, #0x0]
+ ldr r5, [r10, #0xc]
+ ldrsb r4, [r4, #0x1]
+ cmp r0, #0x0
+ mov r9, r1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x38]
+ mov r8, r2
+ str r0, [sp, #0x38]
+ mov r7, r3
+ add r6, r5, r4
+ addeq sp, sp, #0x14
+ ldmeqia sp!, {r4-r11,pc}
+ add r0, r7, #0x1
+ ldr r1, [sp, #0x3c]
+ add r0, r0, r0, lsr #0x1f
+ mov r0, r0, asr #0x1
+ and r5, r1, #0x800
+ and r11, r1, #0x400
+ str r0, [sp, #0x8]
+ mov r4, #0x0
+_020B732C:
+ mov r1, r9
+ cmp r5, #0x0
+ beq _020B7358
+ ldr r0, [r10, #0x4]
+ ldr r1, [r10, #0x8]
+ ldr r2, [sp, #0xc]
+ mov r3, r4
+ bl FUN_020B5BC8
+ sub r0, r7, r0
+ add r1, r9, r0
+ b _020B7388
+_020B7358:
+ cmp r11, #0x0
+ beq _020B7388
+ ldr r0, [r10, #0x4]
+ ldr r1, [r10, #0x8]
+ ldr r2, [sp, #0xc]
+ mov r3, r4
+ bl FUN_020B5BC8
+ add r0, r0, #0x1
+ add r1, r0, r0, lsr #0x1f
+ ldr r0, [sp, #0x8]
+ sub r0, r0, r1, asr #0x1
+ add r1, r9, r0
+_020B7388:
+ ldr r2, [sp, #0xc]
+ add r3, sp, #0xc
+ str r2, [sp, #0x0]
+ str r3, [sp, #0x4]
+ ldr r3, [sp, #0x38]
+ mov r0, r10
+ mov r2, r8
+ bl FUN_020B73C0
+ ldr r0, [sp, #0xc]
+ add r8, r8, r6
+ cmp r0, #0x0
+ bne _020B732C
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B73C0
+FUN_020B73C0: ; 0x020B73C0
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r10, r0
+ ldr r6, [r10, #0x8]
+ ldr r5, [r10, #0x4]
+ ldr r4, [sp, #0x30]
+ add r0, sp, #0x8
+ str r4, [sp, #0x8]
+ ldr r4, [r5, #0x4]
+ mov r9, r1
+ mov r8, r2
+ mov r7, r3
+ blx r4
+ cmp r0, #0x0
+ beq _020B743C
+ add r11, sp, #0x8
+_020B7400:
+ cmp r0, #0xa
+ beq _020B743C
+ str r7, [sp, #0x0]
+ str r0, [sp, #0x4]
+ ldr r0, [r10, #0x0]
+ mov r1, r5
+ mov r2, r9
+ mov r3, r8
+ bl FUN_020B63CC
+ add r1, r9, r0
+ mov r0, r11
+ add r9, r1, r6
+ blx r4
+ cmp r0, #0x0
+ bne _020B7400
+_020B743C:
+ ldr r1, [sp, #0x34]
+ cmp r1, #0x0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4-r11,pc}
+ cmp r0, #0xa
+ ldreq r1, [sp, #0x8]
+ ldr r0, [sp, #0x34]
+ movne r1, #0x0
+ str r1, [r0, #0x0]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B7468
+FUN_020B7468: ; 0x020B7468
+ stmdb sp!, {r4-r6,lr}
+ ldrh r2, [r0, #0xc]
+ ldrh r3, [r0, #0xe]
+ mov r1, #0x0
+ add r2, r0, r2
+ cmp r3, #0x0
+ ldmleia sp!, {r4-r6,pc}
+ ldr r3, _020B7548 ; =0x46494E46
+ ldr ip, _020B754C ; =0x43574448
+ ldr r4, _020B7550 ; =0x434D4150
+ ldr lr, _020B7554 ; =0x43474C50
+_020B7494:
+ ldr r5, [r2, #0x0]
+ cmp r5, r4
+ bhi _020B74B0
+ cmp r5, r4
+ bhs _020B7518
+ cmp r5, lr
+ b _020B752C
+_020B74B0:
+ cmp r5, r12
+ bhi _020B74C4
+ cmp r5, r12
+ beq _020B7500
+ b _020B752C
+_020B74C4:
+ cmp r5, r3
+ bne _020B752C
+ add r6, r2, #0x8
+ ldr r5, [r6, #0x8]
+ add r5, r5, r0
+ str r5, [r6, #0x8]
+ ldr r5, [r6, #0xc]
+ cmp r5, #0x0
+ addne r5, r5, r0
+ strne r5, [r6, #0xc]
+ ldr r5, [r6, #0x10]
+ cmp r5, #0x0
+ addne r5, r5, r0
+ strne r5, [r6, #0x10]
+ b _020B752C
+_020B7500:
+ add r6, r2, #0x8
+ ldr r5, [r6, #0x4]
+ cmp r5, #0x0
+ addne r5, r5, r0
+ strne r5, [r6, #0x4]
+ b _020B752C
+_020B7518:
+ add r6, r2, #0x8
+ ldr r5, [r6, #0x8]
+ cmp r5, #0x0
+ addne r5, r5, r0
+ strne r5, [r6, #0x8]
+_020B752C:
+ ldrh r5, [r0, #0xe]
+ ldr r6, [r2, #0x4]
+ add r1, r1, #0x1
+ cmp r1, r5
+ add r2, r2, r6
+ blt _020B7494
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B7548: .word 0x46494E46
+_020B754C: .word 0x43574448
+_020B7550: .word 0x434D4150
+_020B7554: .word 0x43474C50
+
+ arm_func_start FUN_020B7558
+FUN_020B7558: ; 0x020B7558
+ stmdb sp!, {r4-r6,lr}
+ movs r6, r0
+ mov r5, r1
+ beq _020B75C8
+ cmp r6, #0x0
+ beq _020B7584
+ ldr r1, [r6, #0x0]
+ ldr r0, _020B76A8 ; =0x4E465452
+ cmp r1, r0
+ moveq r0, #0x1
+ beq _020B7588
+_020B7584:
+ mov r0, #0x0
+_020B7588:
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ beq _020B75CC
+ cmp r6, #0x0
+ beq _020B75B4
+ ldrh r0, [r6, #0x6]
+ cmp r0, #0x100
+ movcs r0, #0x1
+ bhs _020B75B8
+_020B75B4:
+ mov r0, #0x0
+_020B75B8:
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ b _020B75CC
+_020B75C8:
+ mov r0, #0x0
+_020B75CC:
+ cmp r0, #0x0
+ movne r4, #0x0
+ bne _020B7654
+ cmp r6, #0x0
+ beq _020B7640
+ cmp r6, #0x0
+ beq _020B75FC
+ ldr r1, [r6, #0x0]
+ ldr r0, _020B76A8 ; =0x4E465452
+ cmp r1, r0
+ moveq r0, #0x1
+ beq _020B7600
+_020B75FC:
+ mov r0, #0x0
+_020B7600:
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ cmp r0, #0x0
+ beq _020B7644
+ cmp r6, #0x0
+ beq _020B762C
+ ldrh r0, [r6, #0x6]
+ cmp r0, #0x1
+ movcs r0, #0x1
+ bhs _020B7630
+_020B762C:
+ mov r0, #0x0
+_020B7630:
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ b _020B7644
+_020B7640:
+ mov r0, #0x0
+_020B7644:
+ cmp r0, #0x0
+ movne r4, #0x1
+ bne _020B7654
+ bl OS_Terminate
+_020B7654:
+ mov r0, r6
+ bl FUN_020B7468
+ ldr r1, _020B76AC ; =0x46494E46
+ mov r0, r6
+ bl FUN_020B01F8
+ cmp r0, #0x0
+ moveq r0, #0x0
+ streq r0, [r5, #0x0]
+ ldmeqia sp!, {r4-r6,pc}
+ add r0, r0, #0x8
+ str r0, [r5, #0x0]
+ cmp r4, #0x0
+ beq _020B76A0
+ ldr r2, [r5, #0x0]
+ mov r1, #0x0
+ ldrsb r0, [r2, #0x6]
+ strb r0, [r2, #0x7]
+ ldr r0, [r5, #0x0]
+ strb r1, [r0, #0x6]
+_020B76A0:
+ add r0, r4, #0x1
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B76A8: .word 0x4E465452
+_020B76AC: .word 0x46494E46
+
+ arm_func_start FUN_020B76B0
+FUN_020B76B0:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldrsb r2, [r0, #0x4]
+ ldrb r12, [r0, #0x5]
+ mov r4, r1
+ cmp r2, r4
+ subge r1, r2, r4
+ movge r5, r12, lsr r1
+ strgeb r1, [r0, #0x4]
+ bge _020B7704
+ ldr r3, [r0, #0x0]
+ sub r1, r4, r2
+ add r2, r3, #0x1
+ str r2, [r0, #0x0]
+ ldrb r2, [r3, #0x0]
+ mov r5, r12, lsl r1
+ strb r2, [r0, #0x5]
+ mov r2, #0x8
+ strb r2, [r0, #0x4]
+ bl FUN_020B76B0
+ orr r5, r0, r5
+_020B7704:
+ rsb r0, r4, #0x8
+ mov r1, #0xff
+ and r0, r5, r1, asr r0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020B7718
+FUN_020B7718: ; 0x020B7718
+ ldr r1, [r0, #0x0]
+ ldrh r2, [r1], #0x2
+ str r1, [r0, #0x0]
+ mov r0, r2
+ bx lr
+
+ arm_func_start FUN_020B772C
+FUN_020B772C: ; 0x020B772C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r0
+ ldrb r0, [r6, #0x9]
+ mov r5, #0x0
+ cmp r0, #0x0
+ addls sp, sp, #0x4
+ ldmlsia sp!, {r4-r7,pc}
+ add r4, r6, #0x8
+_020B7750:
+ ldrh r0, [r6, #0xe]
+ ldrh r1, [r4, r0]
+ add r0, r4, r0
+ mla r0, r1, r5, r0
+ ldr r0, [r0, #0x4]
+ add r7, r6, r0
+ mov r0, r7
+ bl FUN_020B79A4
+ mov r0, r7
+ bl FUN_020B780C
+ ldrb r0, [r6, #0x9]
+ add r5, r5, #0x1
+ cmp r5, r0
+ blo _020B7750
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020B7790
+FUN_020B7790: ; 0x020B7790
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r8, r0
+ ldrb r0, [r8, #0x9]
+ mov r7, r1
+ mov r5, #0x1
+ cmp r0, #0x0
+ mov r6, #0x0
+ bls _020B7800
+ add r4, r8, #0x8
+_020B77B8:
+ ldrh r0, [r8, #0xe]
+ mov r1, r7
+ ldrh r2, [r4, r0]
+ add r0, r4, r0
+ mla r0, r2, r6, r0
+ ldr r0, [r0, #0x4]
+ add r9, r8, r0
+ mov r0, r9
+ bl FUN_020B7A04
+ and r5, r5, r0
+ mov r0, r9
+ mov r1, r7
+ bl FUN_020B7864
+ ldrb r1, [r8, #0x9]
+ add r6, r6, #0x1
+ and r5, r5, r0
+ cmp r6, r1
+ blo _020B77B8
+_020B7800:
+ mov r0, r5
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+
+ arm_func_start FUN_020B780C
+FUN_020B780C: ; 0x020B780C
+ ldr r2, [r0, #0x8]
+ mov r1, #0x0
+ add r2, r0, r2
+ ldrh r0, [r2, #0x2]
+ add r12, r2, r0
+ ldrb r0, [r12, #0x1]
+ cmp r0, #0x0
+ bxls lr
+_020B782C:
+ ldrh r2, [r12, #0x6]
+ ldrh r0, [r12, r2]
+ add r2, r12, r2
+ add r2, r2, #0x4
+ mla r3, r0, r1, r2
+ ldrb r0, [r3, #0x3]
+ add r1, r1, #0x1
+ ands r2, r0, #0x1
+ bicne r0, r0, #0x1
+ strneb r0, [r3, #0x3]
+ ldrb r0, [r12, #0x1]
+ cmp r1, r0
+ blo _020B782C
+ bx lr
+
+ arm_func_start FUN_020B7864
+FUN_020B7864: ; 0x020B7864
+ stmdb sp!, {r4-r10,lr}
+ ldr r2, [r0, #0x8]
+ mov r10, r1
+ add r9, r0, r2
+ ldrh r0, [r9, #0x2]
+ mov r6, #0x1
+ mov r7, #0x0
+ add r8, r9, r0
+ ldrb r0, [r8, #0x1]
+ cmp r0, #0x0
+ bls _020B7908
+ mov r5, r7
+ mov r4, r7
+_020B7898:
+ ldrh r1, [r8, #0x6]
+ ldrh r0, [r10, #0x34]
+ add r2, r8, r1
+ ldrh r1, [r2, #0x2]
+ add r0, r10, r0
+ add r1, r2, r1
+ add r1, r1, r5
+ bl FUN_020BC2A0
+ movs r3, r0
+ beq _020B78F0
+ ldrh r1, [r8, #0x6]
+ ldrh r0, [r8, r1]
+ add r1, r8, r1
+ add r1, r1, #0x4
+ mla r1, r0, r7, r1
+ ldrb r0, [r1, #0x3]
+ ands r0, r0, #0x1
+ bne _020B78F4
+ mov r0, r9
+ mov r2, r10
+ bl FUN_020B7910
+ b _020B78F4
+_020B78F0:
+ mov r6, r4
+_020B78F4:
+ ldrb r0, [r8, #0x1]
+ add r7, r7, #0x1
+ add r5, r5, #0x10
+ cmp r7, r0
+ blo _020B7898
+_020B7908:
+ mov r0, r6
+ ldmia sp!, {r4-r10,pc}
+
+ arm_func_start FUN_020B7910
+FUN_020B7910:
+ stmdb sp!, {r4-r6,lr}
+ ldrh r5, [r1, #0x0]
+ ldr r2, [r2, #0x2c]
+ ldrh r4, [r3, #0x2]
+ mov r2, r2, lsl #0x10
+ add r12, r0, r5
+ mov r5, r2, lsr #0x10
+ ands r2, r4, #0x1
+ ldrh r4, [r3, #0x0]
+ moveq r3, r5, lsl #0xf
+ moveq r5, r3, lsr #0x10
+ moveq r2, r4, lsl #0xf
+ moveq r4, r2, lsr #0x10
+ ldrb r3, [r1, #0x2]
+ mov r2, #0x0
+ cmp r3, #0x0
+ bls _020B7994
+ add r3, r4, r5
+ mov r3, r3, lsl #0x10
+ add r6, r0, #0x4
+ mov r4, r3, lsr #0x10
+_020B7964:
+ ldrh r5, [r0, #0xa]
+ ldrb r3, [r12, r2]
+ add r2, r2, #0x1
+ ldrh lr, [r6, r5]
+ add r5, r6, r5
+ mla r3, lr, r3, r5
+ ldr r3, [r3, #0x4]
+ add r3, r0, r3
+ strh r4, [r3, #0x1c]
+ ldrb r3, [r1, #0x2]
+ cmp r2, r3
+ blo _020B7964
+_020B7994:
+ ldrb r0, [r1, #0x3]
+ orr r0, r0, #0x1
+ strb r0, [r1, #0x3]
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020B79A4
+FUN_020B79A4: ; 0x020B79A4
+ stmdb sp!, {r4-r6,lr}
+ ldr r2, [r0, #0x8]
+ mov r4, #0x0
+ ldrh r1, [r0, r2]
+ add r6, r0, r2
+ add r5, r6, r1
+ ldrb r0, [r5, #0x1]
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020B79C8:
+ ldrh r1, [r5, #0x6]
+ ldrh r0, [r5, r1]
+ add r1, r5, r1
+ add r1, r1, #0x4
+ mla r1, r0, r4, r1
+ ldrb r0, [r1, #0x3]
+ ands r0, r0, #0x1
+ beq _020B79F0
+ mov r0, r6
+ bl FUN_020B7AB8
+_020B79F0:
+ ldrb r0, [r5, #0x1]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020B79C8
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020B7A04
+FUN_020B7A04: ; 0x020B7A04
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ ldr r2, [r0, #0x8]
+ mov r10, r1
+ ldrh r1, [r0, r2]
+ add r9, r0, r2
+ mov r11, #0x1
+ add r8, r9, r1
+ ldrb r0, [r8, #0x1]
+ mov r7, #0x0
+ cmp r0, #0x0
+ bls _020B7AAC
+ mov r6, r7
+ mov r4, r7
+ add r5, r10, #0x3c
+_020B7A40:
+ ldrh r1, [r8, #0x6]
+ mov r0, r5
+ add r2, r8, r1
+ ldrh r1, [r2, #0x2]
+ add r1, r2, r1
+ add r1, r1, r6
+ bl FUN_020BC2A0
+ movs r3, r0
+ beq _020B7A94
+ ldrh r1, [r8, #0x6]
+ ldrh r0, [r8, r1]
+ add r1, r8, r1
+ add r1, r1, #0x4
+ mla r1, r0, r7, r1
+ ldrb r0, [r1, #0x3]
+ ands r0, r0, #0x1
+ bne _020B7A98
+ mov r0, r9
+ mov r2, r10
+ bl FUN_020B7B40
+ b _020B7A98
+_020B7A94:
+ mov r11, r4
+_020B7A98:
+ ldrb r0, [r8, #0x1]
+ add r7, r7, #0x1
+ add r6, r6, #0x10
+ cmp r7, r0
+ blo _020B7A40
+_020B7AAC:
+ mov r0, r11
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B7AB8
+FUN_020B7AB8: ; 0x020B7AB8
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldrh r4, [r1, #0x0]
+ ldrb r2, [r1, #0x2]
+ mov r3, #0x0
+ add r12, r0, r4
+ cmp r2, #0x0
+ bls _020B7B28
+ add r2, r0, #0x4
+ mov r5, #0x1000
+ ldr lr, _020B7B3C ; =0xC00F0000
+_020B7AE4:
+ ldrh r7, [r0, #0xa]
+ ldrb r4, [r12, r3]
+ add r3, r3, #0x1
+ ldrh r6, [r2, r7]
+ add r7, r2, r7
+ mla r4, r6, r4, r7
+ ldr r4, [r4, #0x4]
+ add r6, r0, r4
+ ldr r4, [r6, #0x14]
+ and r4, r4, lr
+ str r4, [r6, #0x14]
+ str r5, [r6, #0x24]
+ ldr r4, [r6, #0x24]
+ str r4, [r6, #0x28]
+ ldrb r4, [r1, #0x2]
+ cmp r3, r4
+ blo _020B7AE4
+_020B7B28:
+ ldrb r0, [r1, #0x3]
+ bic r0, r0, #0x1
+ strb r0, [r1, #0x3]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B7B3C: .word 0xC00F0000
+
+ arm_func_start FUN_020B7B40
+FUN_020B7B40:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r11, r1
+ mov r9, r3
+ ldr r1, [r9, #0x0]
+ mov r10, r0
+ and r0, r1, #0x1c000000
+ cmp r0, #0x14000000
+ ldrh r3, [r11, #0x0]
+ ldrne r1, [r2, #0x8]
+ mov r8, #0x0
+ add r0, r10, r3
+ str r0, [sp, #0x4]
+ ldrne r0, _020B7C50 ; =0x0000FFFF
+ andne r0, r1, r0
+ strne r0, [sp, #0x0]
+ ldreq r1, [r2, #0x18]
+ ldreq r0, _020B7C50 ; =0x0000FFFF
+ andeq r0, r1, r0
+ streq r0, [sp, #0x0]
+ ldrb r0, [r11, #0x2]
+ cmp r0, #0x0
+ bls _020B7C3C
+ mov r4, #0x1000
+ add r5, r10, #0x4
+_020B7BA4:
+ ldrh r6, [r10, #0xa]
+ ldr r0, [sp, #0x4]
+ ldr r1, [r9, #0x0]
+ ldrb r2, [r0, r8]
+ ldrh r3, [r5, r6]
+ ldr r0, [sp, #0x0]
+ add r6, r5, r6
+ add r0, r1, r0
+ mla r1, r3, r2, r6
+ ldr r1, [r1, #0x4]
+ add r6, r10, r1
+ ldr r1, [r6, #0x14]
+ orr r0, r1, r0
+ str r0, [r6, #0x14]
+ ldr r3, [r9, #0x4]
+ ldr r0, _020B7C54 ; =0x000007FF
+ ldrh r1, [r6, #0x20]
+ and r2, r3, r0
+ and r7, r0, r3, lsr #0xb
+ cmp r2, r1
+ moveq r0, r4
+ beq _020B7C08
+ mov r0, r2, lsl #0xc
+ mov r1, r1, lsl #0xc
+ bl FX_Div
+_020B7C08:
+ str r0, [r6, #0x24]
+ ldrh r1, [r6, #0x22]
+ cmp r7, r1
+ moveq r0, r4
+ beq _020B7C28
+ mov r0, r7, lsl #0xc
+ mov r1, r1, lsl #0xc
+ bl FX_Div
+_020B7C28:
+ str r0, [r6, #0x28]
+ ldrb r0, [r11, #0x2]
+ add r8, r8, #0x1
+ cmp r8, r0
+ blo _020B7BA4
+_020B7C3C:
+ ldrb r0, [r11, #0x3]
+ orr r0, r0, #0x1
+ strb r0, [r11, #0x3]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020B7C50: .word 0x0000FFFF
+_020B7C54: .word 0x000007FF
+
+ arm_func_start FUN_020B7C58
+FUN_020B7C58: ; 0x020B7C58
+ ldrh r2, [r0, #0x32]
+ mov r1, #0x0
+ bic r2, r2, #0x1
+ strh r2, [r0, #0x32]
+ ldr r2, [r0, #0x2c]
+ str r1, [r0, #0x2c]
+ mov r0, r2
+ bx lr
+
+ arm_func_start FUN_020B7C78
+FUN_020B7C78: ; 0x020B7C78
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ movs r4, r1
+ mov r5, r0
+ beq _020B7C90
+ bl GX_BeginLoadTexPltt
+_020B7C90:
+ ldrh r2, [r5, #0x30]
+ ldr r0, [r5, #0x38]
+ ldr r3, [r5, #0x2c]
+ ldr r1, _020B7CD8 ; =0x0000FFFF
+ add r0, r5, r0
+ and r1, r3, r1
+ mov r1, r1, lsl #0x3
+ mov r2, r2, lsl #0x3
+ bl GX_LoadTexPltt
+ ldrh r0, [r5, #0x32]
+ cmp r4, #0x0
+ addeq sp, sp, #0x4
+ orr r0, r0, #0x1
+ strh r0, [r5, #0x32]
+ ldmeqia sp!, {r4-r5,pc}
+ bl GX_EndLoadTexPltt
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B7CD8: .word 0x0000FFFF
+
+ arm_func_start FUN_020B7CDC
+FUN_020B7CDC: ; 0x020B7CDC
+ str r1, [r0, #0x2c]
+ bx lr
+
+ arm_func_start FUN_020B7CE4
+FUN_020B7CE4: ; 0x020B7CE4
+ ldrh r0, [r0, #0x30]
+ mov r0, r0, lsl #0x3
+ bx lr
+
+ arm_func_start FUN_020B7CF0
+FUN_020B7CF0: ; 0x020B7CF0
+ ldrh r12, [r0, #0x10]
+ mov r3, #0x0
+ bic r12, r12, #0x1
+ strh r12, [r0, #0x10]
+ ldrh r12, [r0, #0x20]
+ bic r12, r12, #0x1
+ strh r12, [r0, #0x20]
+ ldr r12, [r0, #0x8]
+ str r12, [r1, #0x0]
+ str r3, [r0, #0x8]
+ ldr r1, [r0, #0x18]
+ str r1, [r2, #0x0]
+ str r3, [r0, #0x18]
+ bx lr
+
+ arm_func_start FUN_020B7D28
+FUN_020B7D28: ; 0x020B7D28
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ movs r8, r1
+ mov r9, r0
+ beq _020B7D40
+ bl GX_BeginLoadTex
+_020B7D40:
+ ldrh r0, [r9, #0xc]
+ movs r2, r0, lsl #0x3
+ beq _020B7D74
+ ldr r1, [r9, #0x8]
+ ldr r0, _020B7DF4 ; =0x0000FFFF
+ ldr r3, [r9, #0x14]
+ and r1, r1, r0
+ add r0, r9, r3
+ mov r1, r1, lsl #0x3
+ bl GX_LoadTex
+ ldrh r0, [r9, #0x10]
+ orr r0, r0, #0x1
+ strh r0, [r9, #0x10]
+_020B7D74:
+ ldrh r0, [r9, #0x1c]
+ movs r7, r0, lsl #0x3
+ beq _020B7DDC
+ ldr r1, [r9, #0x18]
+ ldr r0, _020B7DF4 ; =0x0000FFFF
+ ldr r3, [r9, #0x24]
+ and r4, r1, r0
+ mov r5, r4, lsl #0x3
+ ldr r6, [r9, #0x28]
+ mov r1, r5
+ mov r2, r7
+ add r0, r9, r3
+ add r6, r9, r6
+ bl GX_LoadTex
+ ldr r0, _020B7DF8 ; =0x0001FFFF
+ and r1, r5, #0x40000
+ and r0, r0, r4, lsl #0x3
+ mov r0, r0, lsr #0x1
+ add r2, r0, #0x20000
+ mov r0, r6
+ add r1, r2, r1, lsr #0x2
+ mov r2, r7, lsr #0x1
+ bl GX_LoadTex
+ ldrh r0, [r9, #0x20]
+ orr r0, r0, #0x1
+ strh r0, [r9, #0x20]
+_020B7DDC:
+ cmp r8, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r9,pc}
+ bl GX_EndLoadTex
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020B7DF4: .word 0x0000FFFF
+_020B7DF8: .word 0x0001FFFF
+
+ arm_func_start FUN_020B7DFC
+FUN_020B7DFC: ; 0x020B7DFC
+ cmp r1, #0x0
+ strne r1, [r0, #0x8]
+ cmp r2, #0x0
+ strne r2, [r0, #0x18]
+ bx lr
+
+ arm_func_start FUN_020B7E10
+FUN_020B7E10: ; 0x020B7E10
+ ldrh r0, [r0, #0x1c]
+ mov r0, r0, lsl #0x3
+ bx lr
+
+ arm_func_start FUN_020B7E1C
+FUN_020B7E1C: ; 0x020B7E1C
+ ldrh r0, [r0, #0xc]
+ mov r0, r0, lsl #0x3
+ bx lr
+
+ arm_func_start FUN_020B7E28
+FUN_020B7E28: ; 0x020B7E28
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ add r0, r5, #0x8
+ mov r4, r1
+ bl FUN_020B7E88
+ cmp r0, #0x0
+ bne _020B7E74
+ mov r1, r4
+ add r0, r5, #0x10
+ bl FUN_020B7E88
+ cmp r0, #0x0
+ bne _020B7E74
+ mov r1, r4
+ add r0, r5, #0x18
+ bl FUN_020B7E88
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+_020B7E74:
+ ldr r0, [r5, #0x0]
+ orr r0, r0, #0x10
+ str r0, [r5, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020B7E88
+FUN_020B7E88:
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ moveq r0, #0x0
+ bxeq lr
+ cmp r2, r1
+ bne _020B7EB8
+ ldr r3, [r2, #0x10]
+ mov r2, #0x0
+ str r3, [r0, #0x0]
+ str r2, [r1, #0x10]
+ mov r0, #0x1
+ bx lr
+_020B7EB8:
+ ldr r3, [r2, #0x10]
+ cmp r3, #0x0
+ beq _020B7EF4
+_020B7EC4:
+ cmp r3, r1
+ bne _020B7EE4
+ ldr r1, [r3, #0x10]
+ mov r0, #0x0
+ str r1, [r2, #0x10]
+ str r0, [r3, #0x10]
+ mov r0, #0x1
+ bx lr
+_020B7EE4:
+ mov r2, r3
+ ldr r3, [r3, #0x10]
+ cmp r3, #0x0
+ bne _020B7EC4
+_020B7EF4:
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020B7EFC
+FUN_020B7EFC: ; 0x020B7EFC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ ldr r2, [r4, #0x8]
+ mov r5, r0
+ ldrb r0, [r2, #0x0]
+ cmp r0, #0x4a
+ beq _020B7F50
+ cmp r0, #0x4d
+ beq _020B7F34
+ cmp r0, #0x56
+ beq _020B7F6C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+_020B7F34:
+ add r0, r5, #0x3c
+ bl FUN_020B7F88
+ mov r1, r4
+ add r0, r5, #0x8
+ bl FUN_020B7FF8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+_020B7F50:
+ add r0, r5, #0x44
+ bl FUN_020B7F88
+ mov r1, r4
+ add r0, r5, #0x10
+ bl FUN_020B7FF8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+_020B7F6C:
+ add r0, r5, #0x4c
+ bl FUN_020B7F88
+ mov r1, r4
+ add r0, r5, #0x18
+ bl FUN_020B7FF8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020B7F88
+FUN_020B7F88: ; 0x020B7F88
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+ mov r3, #0x1
+ mov r4, #0x0
+_020B7FA4:
+ ldrb r2, [r1, #0x19]
+ mov r5, r4
+ cmp r2, #0x0
+ ble _020B7FE4
+_020B7FB4:
+ add r2, r1, r5, lsl #0x1
+ ldrh r2, [r2, #0x1a]
+ ands r2, r2, #0x100
+ movne lr, r5, asr #0x5
+ andne r2, r5, #0x1f
+ ldrne r12, [r0, lr, lsl #0x2]
+ add r5, r5, #0x1
+ orrne r2, r12, r3, lsl r2
+ strne r2, [r0, lr, lsl #0x2]
+ ldrb r2, [r1, #0x19]
+ cmp r5, r2
+ blt _020B7FB4
+_020B7FE4:
+ ldr r1, [r1, #0x10]
+ cmp r1, #0x0
+ bne _020B7FA4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020B7FF8
+FUN_020B7FF8: ; 0x020B7FF8
+ ldr r12, [r0, #0x0]
+ cmp r12, #0x0
+ streq r1, [r0, #0x0]
+ bxeq lr
+ ldr r3, [r12, #0x10]
+ cmp r3, #0x0
+ bne _020B8058
+ ldrb r3, [r12, #0x18]
+ ldrb r2, [r1, #0x18]
+ cmp r3, r2
+ bls _020B8050
+ ldr r2, [r1, #0x10]
+ mov r3, r1
+ cmp r2, #0x0
+ beq _020B8044
+_020B8034:
+ ldr r3, [r3, #0x10]
+ ldr r2, [r3, #0x10]
+ cmp r2, #0x0
+ bne _020B8034
+_020B8044:
+ str r12, [r3, #0x10]
+ str r1, [r0, #0x0]
+ bx lr
+_020B8050:
+ str r1, [r12, #0x10]
+ bx lr
+_020B8058:
+ cmp r3, #0x0
+ beq _020B80AC
+ ldrb r2, [r1, #0x18]
+_020B8064:
+ ldrb r0, [r3, #0x18]
+ cmp r0, r2
+ blo _020B809C
+ ldr r0, [r1, #0x10]
+ mov r2, r1
+ cmp r0, #0x0
+ beq _020B8090
+_020B8080:
+ ldr r2, [r2, #0x10]
+ ldr r0, [r2, #0x10]
+ cmp r0, #0x0
+ bne _020B8080
+_020B8090:
+ str r1, [r12, #0x10]
+ str r3, [r2, #0x10]
+ bx lr
+_020B809C:
+ mov r12, r3
+ ldr r3, [r3, #0x10]
+ cmp r3, #0x0
+ bne _020B8064
+_020B80AC:
+ str r1, [r12, #0x10]
+ bx lr
+
+ arm_func_start FUN_020B80B4
+FUN_020B80B4: ; 0x020B80B4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ mov r1, r5
+ mov r0, #0x0
+ mov r2, #0x54
+ bl MIi_CpuClear32
+ ldr r0, _020B8104 ; =UNK_021065B4
+ ldr r1, _020B8108 ; =UNK_021065B0
+ ldr r2, [r0, #0x0]
+ ldr r0, _020B810C ; =UNK_021065AC
+ str r2, [r5, #0xc]
+ ldr r1, [r1, #0x0]
+ str r1, [r5, #0x14]
+ ldr r0, [r0, #0x0]
+ str r0, [r5, #0x1c]
+ str r4, [r5, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020B8104: .word UNK_021065B4
+_020B8108: .word UNK_021065B0
+_020B810C: .word UNK_021065AC
+
+ arm_func_start FUN_020B8110
+FUN_020B8110: ; 0x020B8110
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r12, #0x0
+ str r12, [r0, #0x0]
+ str r1, [r0, #0x8]
+ str r12, [r0, #0x10]
+ mov r4, #0x7f
+ strb r4, [r0, #0x18]
+ mov r4, #0x1000
+ str r4, [r0, #0x4]
+ ldr lr, _020B81A4 ; =UNK_02106594
+ str r3, [r0, #0x14]
+ ldr r6, [lr, #0x0]
+ cmp r6, #0x0
+ addls sp, sp, #0x4
+ ldmlsia sp!, {r4-r7,pc}
+ ldrb r7, [r1, #0x0]
+ ldr r4, _020B81A8 ; =UNK_021065B8
+_020B8158:
+ ldrb r3, [r4, r12, lsl #0x3]
+ mov r5, r12, lsl #0x3
+ cmp r7, r3
+ bne _020B8190
+ add r3, r4, r5
+ ldrh lr, [r1, #0x2]
+ ldrh r3, [r3, #0x2]
+ cmp lr, r3
+ bne _020B8190
+ ldr r3, _020B81AC ; =UNK_021065BC
+ ldr r3, [r3, r5]
+ blx r3
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+_020B8190:
+ add r12, r12, #0x1
+ cmp r12, r6
+ blo _020B8158
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B81A4: .word UNK_02106594
+_020B81A8: .word UNK_021065B8
+_020B81AC: .word UNK_021065BC
+
+ arm_func_start FUN_020B81B0
+FUN_020B81B0: ; 0x020B81B0
+ ldrb r0, [r0, #0x0]
+ cmp r0, #0x4a
+ beq _020B81E4
+ cmp r0, #0x4d
+ beq _020B81D0
+ cmp r0, #0x56
+ beq _020B81E4
+ b _020B81F8
+_020B81D0:
+ ldrb r0, [r1, #0x18]
+ mov r0, r0, lsl #0x1
+ add r0, r0, #0x1c
+ bic r0, r0, #0x3
+ bx lr
+_020B81E4:
+ ldrb r0, [r1, #0x17]
+ mov r0, r0, lsl #0x1
+ add r0, r0, #0x1c
+ bic r0, r0, #0x3
+ bx lr
+_020B81F8:
+ mov r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020B8200
+FUN_020B8200: ; 0x020B8200
+ cmp r0, #0x0
+ ldrne ip, _020B8260 ; =UNK_021CED18
+ ldrne r12, [r12, #0xa0]
+ andne r12, r12, #0xff
+ strne r12, [r0, #0x0]
+ cmp r1, #0x0
+ ldrne r0, _020B8260 ; =UNK_021CED18
+ ldrne r0, [r0, #0xa0]
+ movne r0, r0, lsr #0x8
+ andne r0, r0, #0xff
+ strne r0, [r1, #0x0]
+ cmp r2, #0x0
+ ldrne r0, _020B8260 ; =UNK_021CED18
+ ldrne r0, [r0, #0xa0]
+ movne r0, r0, lsr #0x10
+ andne r0, r0, #0xff
+ strne r0, [r2, #0x0]
+ cmp r3, #0x0
+ ldrne r0, _020B8260 ; =UNK_021CED18
+ ldrne r0, [r0, #0xa0]
+ movne r0, r0, lsr #0x18
+ andne r0, r0, #0xff
+ strne r0, [r3, #0x0]
+ bx lr
+ .balign 4
+_020B8260: .word UNK_021CED18
+
+ arm_func_start FUN_020B8264
+FUN_020B8264: ; 0x020B8264
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020B829C ; =UNK_021CED18
+ ldr r0, [r0, #0xfc]
+ ands r0, r0, #0x80
+ bne _020B8290
+ bl FUN_020B82E4
+ ldr r0, _020B829C ; =UNK_021CED18
+ ldr r1, [r0, #0xfc]
+ orr r1, r1, #0x80
+ str r1, [r0, #0xfc]
+_020B8290:
+ ldr r0, _020B82A0 ; =UNK_021CEE78
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020B829C: .word UNK_021CED18
+_020B82A0: .word UNK_021CEE78
+
+ arm_func_start FUN_020B82A4
+FUN_020B82A4: ; 0x020B82A4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020B82DC ; =UNK_021CED18
+ ldr r0, [r0, #0xfc]
+ ands r0, r0, #0x80
+ bne _020B82D0
+ bl FUN_020B82E4
+ ldr r0, _020B82DC ; =UNK_021CED18
+ ldr r1, [r0, #0xfc]
+ orr r1, r1, #0x80
+ str r1, [r0, #0xfc]
+_020B82D0:
+ ldr r0, _020B82E0 ; =UNK_021CEE48
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020B82DC: .word UNK_021CED18
+_020B82E0: .word UNK_021CEE48
+
+ arm_func_start FUN_020B82E4
+FUN_020B82E4: ; 0x020B82E4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020B8330 ; =UNK_021CEDD4
+ ldr r1, _020B8334 ; =UNK_021CED64
+ ldr r2, _020B8338 ; =UNK_021CEE48
+ bl MTX_Concat43
+ ldr r3, _020B833C ; =UNK_021CED18
+ ldr r0, _020B8338 ; =UNK_021CEE48
+ ldr r2, [r3, #0xf4]
+ mov r1, r0
+ str r2, [sp, #0x0]
+ ldr r2, [r3, #0xec]
+ ldr r3, [r3, #0xf0]
+ bl MTX_ScaleApply43
+ ldr r0, _020B8338 ; =UNK_021CEE48
+ ldr r1, _020B8340 ; =UNK_021CEE78
+ bl MTX_Inverse43
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020B8330: .word UNK_021CEDD4
+_020B8334: .word UNK_021CED64
+_020B8338: .word UNK_021CEE48
+_020B833C: .word UNK_021CED18
+_020B8340: .word UNK_021CEE78
+
+ arm_func_start FUN_020B8344
+FUN_020B8344: ; 0x020B8344
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020B8384 ; =UNK_021CED18
+ ldr r0, [r0, #0xfc]
+ ands r0, r0, #0x8
+ bne _020B8378
+ ldr r0, _020B8388 ; =UNK_021CED64
+ ldr r1, _020B838C ; =UNK_021CEE18
+ bl MTX_Inverse43
+ ldr r0, _020B8384 ; =UNK_021CED18
+ ldr r1, [r0, #0xfc]
+ orr r1, r1, #0x8
+ str r1, [r0, #0xfc]
+_020B8378:
+ ldr r0, _020B838C ; =UNK_021CEE18
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020B8384: .word UNK_021CED18
+_020B8388: .word UNK_021CED64
+_020B838C: .word UNK_021CEE18
+
+ arm_func_start FUN_020B8390
+FUN_020B8390: ; 0x020B8390
+ orr r0, r0, r1, lsl #0x4
+
+ arm_func_start FUN_020B8394
+FUN_020B8394: ; 0x020B8394
+ ldr r1, [sp, #0x4]
+ orr r0, r0, r2, lsl #0x6
+ orr r0, r1, r0
+ ldr r2, [sp, #0x0]
+ orr r1, r0, r3, lsl #0x18
+ ldr r0, _020B83B8 ; =UNK_021CED18
+ orr r1, r1, r2, lsl #0x10
+ str r1, [r0, #0x9c]
+ bx lr
+ .balign 4
+_020B83B8: .word UNK_021CED18
+
+ arm_func_start FUN_020B83BC
+FUN_020B83BC: ; 0x020B83BC
+ cmp r2, #0x0
+ movne r2, #0x1
+ orr r1, r0, r1, lsl #0x10
+ moveq r2, #0x0
+ ldr r0, _020B83DC ; =UNK_021CED18
+ orr r1, r1, r2, lsl #0xf
+ str r1, [r0, #0x98]
+ bx lr
+ .balign 4
+_020B83DC: .word UNK_021CED18
+
+ arm_func_start FUN_020B83E0
+FUN_020B83E0: ; 0x020B83E0
+ cmp r2, #0x0
+ movne r2, #0x1
+ orr r1, r0, r1, lsl #0x10
+ moveq r2, #0x0
+ ldr r0, _020B8400 ; =UNK_021CED18
+ orr r1, r1, r2, lsl #0xf
+ str r1, [r0, #0x94]
+ bx lr
+ .balign 4
+_020B8400: .word UNK_021CED18
+
+ arm_func_start FUN_020B8404
+FUN_020B8404: ; 0x020B8404
+ ldr r2, _020B8414 ; =UNK_021CEDC0
+ orr r1, r1, r0, lsl #0x1e
+ str r1, [r2, r0, lsl #0x2]
+ bx lr
+ .balign 4
+_020B8414: .word UNK_021CEDC0
+
+ arm_func_start FUN_020B8418
+FUN_020B8418: ; 0x020B8418
+ stmdb sp!, {r4,lr}
+ ldr ip, _020B8444 ; =0x000003FF
+ ldr lr, _020B8448 ; =UNK_021CED98
+ and r4, r12, r1, asr #0x3
+ and r1, r12, r2, asr #0x3
+ and r2, r12, r3, asr #0x3
+ orr r1, r4, r1, lsl #0xa
+ orr r1, r1, r2, lsl #0x14
+ orr r1, r1, r0, lsl #0x1e
+ str r1, [lr, r0, lsl #0x2]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020B8444: .word 0x000003FF
+_020B8448: .word UNK_021CED98
+
+ arm_func_start FUN_020B844C
+FUN_020B844C: ; 0x020B844C
+ ldr r3, _020B846C ; =UNK_021CEE04
+ ldmia r0, {r0-r2}
+ stmia r3, {r0-r2}
+ ldr r0, _020B8470 ; =UNK_021CED18
+ ldr r1, [r0, #0xfc]
+ bic r1, r1, #0xa4
+ str r1, [r0, #0xfc]
+ bx lr
+ .balign 4
+_020B846C: .word UNK_021CEE04
+_020B8470: .word UNK_021CED18
+
+ arm_func_start FUN_020B8474
+FUN_020B8474: ; 0x020B8474
+ ldr r3, _020B8494 ; =UNK_021CEDF8
+ ldmia r0, {r0-r2}
+ stmia r3, {r0-r2}
+ ldr r0, _020B8498 ; =UNK_021CED18
+ ldr r1, [r0, #0xfc]
+ bic r1, r1, #0xa4
+ str r1, [r0, #0xfc]
+ bx lr
+ .balign 4
+_020B8494: .word UNK_021CEDF8
+_020B8498: .word UNK_021CED18
+
+ arm_func_start FUN_020B849C
+FUN_020B849C: ; 0x020B849C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, _020B84D4 ; =UNK_021CED18
+ mov r2, #0x3e
+ ldr r0, [r1], #0x4
+ bl FUN_020BB1C0
+ ldr r0, _020B84D4 ; =UNK_021CED18
+ ldr r1, [r0, #0xfc]
+ bic r1, r1, #0x1
+ str r1, [r0, #0xfc]
+ bic r1, r1, #0x2
+ str r1, [r0, #0xfc]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020B84D4: .word UNK_021CED18
+
+ arm_func_start FUN_020B84D8
+FUN_020B84D8: ; 0x020B84D8
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ ldr r8, _020B85F4 ; =0x17101610
+ ldr r1, _020B85F8 ; =UNK_021CED18
+ ldr r5, _020B85FC ; =0x32323232
+ ldr r4, _020B8600 ; =0x60293130
+ ldr r3, _020B8604 ; =0x33333333
+ ldr r2, _020B8608 ; =0x002A1B19
+ mov r7, #0x0
+ mov r6, #0x2
+ ldr r0, _020B860C ; =UNK_021CED64
+ str r8, [r1, #0x0]
+ str r7, [r1, #0x4]
+ str r6, [r1, #0x48]
+ str r5, [r1, #0x7c]
+ str r4, [r1, #0x90]
+ str r3, [r1, #0xa4]
+ str r2, [r1, #0xb8]
+ bl MTX_Identity43_
+ ldr r0, _020B8610 ; =UNK_021CED20
+ bl MTX_Identity44_
+ mov r2, r7
+ ldr r1, _020B85F8 ; =UNK_021CED18
+ ldr r7, _020B8614 ; =0x4210C210
+ ldr r0, _020B8618 ; =0x40000200
+ ldr lr, _020B861C ; =0x2D8B62D8
+ ldr sb, _020B8620 ; =0x800001FF
+ ldr r8, _020B8624 ; =0xC0080000
+ ldr r6, _020B8628 ; =0x001F008F
+ ldr r5, _020B862C ; =0xBFFF0000
+ ldr r4, _020B8630 ; =0x00007FFF
+ ldr ip, _020B8634 ; =0x800003E0
+ ldr r3, _020B8638 ; =0xC0007C00
+ str r0, [r1, #0x84]
+ str lr, [r1, #0x80]
+ mov lr, #0x4000001f
+ ldr r0, _020B863C ; =UNK_021CEDD4
+ str r9, [r1, #0x88]
+ str r8, [r1, #0x8c]
+ str r7, [r1, #0x94]
+ str r7, [r1, #0x98]
+ str r6, [r1, #0x9c]
+ str r5, [r1, #0xa0]
+ str r4, [r1, #0xa8]
+ str lr, [r1, #0xac]
+ str r12, [r1, #0xb0]
+ str r3, [r1, #0xb4]
+ str r2, [r1, #0xe0]
+ str r2, [r1, #0xe4]
+ str r2, [r1, #0xe8]
+ bl MTX_Identity33_
+ mov r3, #0x1000
+ ldr r0, _020B85F8 ; =UNK_021CED18
+ mov r2, #0x0
+ rsb r1, r3, #0x0
+ str r3, [r0, #0xec]
+ str r3, [r0, #0xf0]
+ str r3, [r0, #0xf4]
+ str r2, [r0, #0xf8]
+ str r2, [r0, #0xfc]
+ str r2, [r0, #0x248]
+ str r2, [r0, #0x244]
+ str r2, [r0, #0x240]
+ str r2, [r0, #0x254]
+ str r2, [r0, #0x24c]
+ str r3, [r0, #0x250]
+ str r2, [r0, #0x25c]
+ str r2, [r0, #0x258]
+ str r1, [r0, #0x260]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020B85F4: .word 0x17101610
+_020B85F8: .word UNK_021CED18
+_020B85FC: .word 0x32323232
+_020B8600: .word 0x60293130
+_020B8604: .word 0x33333333
+_020B8608: .word 0x002A1B19
+_020B860C: .word UNK_021CED64
+_020B8610: .word UNK_021CED20
+_020B8614: .word 0x4210C210
+_020B8618: .word 0x40000200
+_020B861C: .word 0x2D8B62D8
+_020B8620: .word 0x800001FF
+_020B8624: .word 0xC0080000
+_020B8628: .word 0x001F008F
+_020B862C: .word 0xBFFF0000
+_020B8630: .word 0x00007FFF
+_020B8634: .word 0x800003E0
+_020B8638: .word 0xC0007C00
+_020B863C: .word UNK_021CEDD4
+
+ arm_func_start FUN_020B8640
+FUN_020B8640: ; 0x020B8640
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x8
+ mov r7, r0
+ mov r0, #0x0
+ mov r6, r1
+ str r0, [r7, #0x0]
+ add r4, sp, #0x0
+ mov r5, r2, lsl #0x1
+ mov r8, #0x1
+_020B8664:
+ add r1, r5, r6
+ ldrh r2, [r1, #0x1a]
+ ands r1, r2, #0x100
+ beq _020B869C
+ ldr r3, [r6, #0xc]
+ mov r0, r4
+ mov r1, r6
+ and r2, r2, #0xff
+ blx r3
+ ldr r2, [r7, #0x0]
+ ldr r1, [sp, #0x0]
+ mov r0, r8
+ orr r1, r2, r1
+ str r1, [r7, #0x0]
+_020B869C:
+ ldr r6, [r6, #0x10]
+ cmp r6, #0x0
+ bne _020B8664
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020B86B0
+FUN_020B86B0: ; 0x020B86B0
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x5c
+ mov r9, r1
+ ldr r3, [r9, #0x10]
+ mov r10, r0
+ mov r8, r2
+ cmp r3, #0x0
+ bne _020B8704
+ add r2, r9, r8, lsl #0x1
+ ldrh r4, [r2, #0x1a]
+ and r2, r4, #0x300
+ cmp r2, #0x100
+ addne sp, sp, #0x5c
+ movne r0, #0x0
+ ldmneia sp!, {r4-r11,pc}
+ ldr r3, [r9, #0xc]
+ and r2, r4, #0xff
+ blx r3
+ add sp, sp, #0x5c
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,pc}
+_020B8704:
+ mov r7, #0x0
+ mov r3, r7
+ mov r4, r9
+ mov r2, r8, lsl #0x1
+_020B8714:
+ add r0, r2, r4
+ ldrh r0, [r0, #0x1a]
+ and r0, r0, #0x300
+ cmp r0, #0x100
+ ldreq r0, [r4, #0x4]
+ moveq r1, r4
+ ldr r4, [r4, #0x10]
+ addeq r7, r7, r0
+ addeq r3, r3, #0x1
+ cmp r4, #0x0
+ bne _020B8714
+ cmp r7, #0x0
+ addeq sp, sp, #0x5c
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r11,pc}
+ cmp r3, #0x1
+ bne _020B877C
+ add r0, r1, r8, lsl #0x1
+ ldrh r2, [r0, #0x1a]
+ ldr r3, [r1, #0xc]
+ mov r0, r10
+ and r2, r2, #0xff
+ blx r3
+ add sp, sp, #0x5c
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,pc}
+_020B877C:
+ mov r1, r10
+ mov r0, #0x0
+ mov r2, #0x58
+ bl MIi_CpuClearFast
+ mvn r0, #0x0
+ str r0, [r10, #0x0]
+ add r5, sp, #0x0
+ add r4, sp, #0x4
+ add r11, sp, #0x10
+_020B87A0:
+ add r0, r9, r8, lsl #0x1
+ ldrh r2, [r0, #0x1a]
+ and r0, r2, #0x300
+ cmp r0, #0x100
+ bne _020B8948
+ ldr r0, [r9, #0x4]
+ cmp r0, #0x0
+ ble _020B8948
+ ldr r3, [r9, #0xc]
+ mov r0, r5
+ mov r1, r9
+ and r2, r2, #0xff
+ blx r3
+ cmp r7, #0x1000
+ ldreq r6, [r9, #0x4]
+ beq _020B87F0
+ ldr r0, [r9, #0x4]
+ mov r1, r7
+ bl FX_Div
+ mov r6, r0
+_020B87F0:
+ ldr r3, [sp, #0x0]
+ mov r1, r4
+ mov r2, r6
+ add r0, r10, #0x4
+ and r3, r3, #0x1
+ bl FUN_020B8998
+ ldr r1, [sp, #0x0]
+ add r0, r10, #0x10
+ and r3, r1, #0x8
+ mov r1, r11
+ mov r2, r6
+ bl FUN_020B8998
+ ldr r3, [sp, #0x0]
+ add r0, r10, #0x1c
+ add r1, sp, #0x1c
+ mov r2, r6
+ and r3, r3, #0x10
+ bl FUN_020B8998
+ ldr r0, [sp, #0x0]
+ ands r0, r0, #0x4
+ bne _020B8898
+ ldr r0, [sp, #0x4c]
+ ldr r2, [r10, #0x4c]
+ smull r1, r0, r6, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ add r0, r2, r1
+ str r0, [r10, #0x4c]
+ ldr r0, [sp, #0x50]
+ ldr r2, [r10, #0x50]
+ smull r1, r0, r6, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ add r0, r2, r1
+ str r0, [r10, #0x50]
+ ldr r0, [sp, #0x54]
+ ldr r2, [r10, #0x54]
+ smull r1, r0, r6, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ add r0, r2, r1
+ str r0, [r10, #0x54]
+_020B8898:
+ ldr r0, [sp, #0x0]
+ ands r0, r0, #0x2
+ bne _020B8920
+ ldr r0, [sp, #0x28]
+ ldr r1, [r10, #0x28]
+ mul r0, r6, r0
+ add r0, r1, r0, asr #0xc
+ str r0, [r10, #0x28]
+ ldr r0, [sp, #0x2c]
+ ldr r1, [r10, #0x2c]
+ mul r0, r6, r0
+ add r0, r1, r0, asr #0xc
+ str r0, [r10, #0x2c]
+ ldr r0, [sp, #0x30]
+ ldr r1, [r10, #0x30]
+ mul r0, r6, r0
+ add r0, r1, r0, asr #0xc
+ str r0, [r10, #0x30]
+ ldr r0, [sp, #0x34]
+ ldr r1, [r10, #0x34]
+ mul r0, r6, r0
+ add r0, r1, r0, asr #0xc
+ str r0, [r10, #0x34]
+ ldr r0, [sp, #0x38]
+ ldr r1, [r10, #0x38]
+ mul r0, r6, r0
+ add r0, r1, r0, asr #0xc
+ str r0, [r10, #0x38]
+ ldr r0, [sp, #0x3c]
+ ldr r1, [r10, #0x3c]
+ mul r0, r6, r0
+ add r0, r1, r0, asr #0xc
+ str r0, [r10, #0x3c]
+ b _020B8938
+_020B8920:
+ ldr r0, [r10, #0x28]
+ add r0, r0, r6
+ str r0, [r10, #0x28]
+ ldr r0, [r10, #0x38]
+ add r0, r0, r6
+ str r0, [r10, #0x38]
+_020B8938:
+ ldr r1, [r10, #0x0]
+ ldr r0, [sp, #0x0]
+ and r0, r1, r0
+ str r0, [r10, #0x0]
+_020B8948:
+ ldr r9, [r9, #0x10]
+ cmp r9, #0x0
+ bne _020B87A0
+ add r0, r10, #0x28
+ add r1, r10, #0x34
+ add r2, r10, #0x40
+ bl VEC_CrossProduct
+ add r0, r10, #0x28
+ mov r1, r0
+ bl VEC_Normalize
+ add r0, r10, #0x40
+ mov r1, r0
+ bl VEC_Normalize
+ add r0, r10, #0x40
+ add r1, r10, #0x28
+ add r2, r10, #0x34
+ bl VEC_CrossProduct
+ mov r0, #0x1
+ add sp, sp, #0x5c
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020B8998
+FUN_020B8998:
+ cmp r3, #0x0
+ beq _020B89C8
+ ldr r1, [r0, #0x0]
+ add r1, r1, r2
+ str r1, [r0, #0x0]
+ ldr r1, [r0, #0x4]
+ add r1, r1, r2
+ str r1, [r0, #0x4]
+ ldr r1, [r0, #0x8]
+ add r1, r1, r2
+ str r1, [r0, #0x8]
+ bx lr
+_020B89C8:
+ ldr r3, [r1, #0x0]
+ ldr r12, [r0, #0x0]
+ mul r3, r2, r3
+ add r3, r12, r3, asr #0xc
+ str r3, [r0, #0x0]
+ ldr r3, [r1, #0x4]
+ ldr r12, [r0, #0x4]
+ mul r3, r2, r3
+ add r3, r12, r3, asr #0xc
+ str r3, [r0, #0x4]
+ ldr r1, [r1, #0x8]
+ ldr r3, [r0, #0x8]
+ mul r1, r2, r1
+ add r1, r3, r1, asr #0xc
+ str r1, [r0, #0x8]
+ bx lr
+
+ arm_func_start FUN_020B8A08
+FUN_020B8A08: ; 0x020B8A08
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r0
+ mov r5, r1
+ mov r0, #0x0
+ mov r4, r2, lsl #0x1
+ mov r7, #0x1
+_020B8A24:
+ add r1, r4, r5
+ ldrh r2, [r1, #0x1a]
+ ands r1, r2, #0x100
+ beq _020B8A4C
+ ldr r3, [r5, #0xc]
+ mov r0, r6
+ mov r1, r5
+ and r2, r2, #0xff
+ blx r3
+ mov r0, r7
+_020B8A4C:
+ ldr r5, [r5, #0x10]
+ cmp r5, #0x0
+ bne _020B8A24
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020B8A60
+FUN_020B8A60: ; 0x020B8A60
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x80
+ mov r5, r0
+ ldr r1, [r5, #0x8]
+ ands r0, r1, #0x200
+ bne _020B8DB4
+ ands r0, r1, #0x1
+ beq _020B8DB4
+ add r0, sp, #0x10
+ mov r1, #0x0
+ bl FUN_020BB824
+ mov r0, #0x1e
+ str r0, [sp, #0x0]
+ add r1, sp, #0x0
+ mov r0, #0x13
+ mov r2, #0x1
+ bl FUN_020BB1C0
+ ldr r2, [r5, #0xb0]
+ ldr r0, [r2, #0x10]
+ and r1, r0, #0xc0000000
+ cmp r1, #0xc0000000
+ beq _020B8AF0
+ bic r0, r0, #0xc0000000
+ str r0, [r2, #0x10]
+ ldr r2, [r5, #0xb0]
+ ldr r3, _020B8DC8 ; =UNK_02106630
+ ldr r0, [r2, #0x10]
+ ldr r1, _020B8DCC ; =UNK_02106634
+ orr r0, r0, #0xc0000000
+ str r0, [r2, #0x10]
+ ldr r2, [r5, #0xb0]
+ ldr r0, [r3, #0x0]
+ ldr r4, [r2, #0x10]
+ mov r2, #0x1
+ str r4, [r3, #0x4]
+ bl FUN_020BB1C0
+_020B8AF0:
+ ldr r0, [r5, #0x40]
+ cmp r0, #0x0
+ ldrneb r4, [r5, #0x99]
+ moveq r4, #0x0
+ cmp r4, #0x1
+ bne _020B8B3C
+ ldr r1, [r5, #0x8]
+ mov r0, r5
+ bic r1, r1, #0x40
+ str r1, [r5, #0x8]
+ ldr r1, [r5, #0x40]
+ blx r1
+ ldr r0, [r5, #0x40]
+ cmp r0, #0x0
+ ldrneb r4, [r5, #0x99]
+ ldr r0, [r5, #0x8]
+ moveq r4, #0x0
+ and r0, r0, #0x40
+ b _020B8B40
+_020B8B3C:
+ mov r0, #0x0
+_020B8B40:
+ cmp r0, #0x0
+ bne _020B8B84
+ ldr r0, [r5, #0xb0]
+ ldr r1, _020B8DD0 ; =UNK_02106660
+ ldrh r6, [r0, #0x2e]
+ ldrh r3, [r0, #0x2c]
+ mov r0, #0x16
+ rsb r2, r6, #0x0
+ mov lr, r3, lsl #0xf
+ mov r12, r2, lsl #0xf
+ mov r3, r6, lsl #0xf
+ mov r2, #0x10
+ str lr, [r1, #0x0]
+ str r12, [r1, #0x14]
+ str lr, [r1, #0x30]
+ str r3, [r1, #0x34]
+ bl FUN_020BB1C0
+_020B8B84:
+ cmp r4, #0x2
+ bne _020B8BC0
+ ldr r1, [r5, #0x8]
+ mov r0, r5
+ bic r1, r1, #0x40
+ str r1, [r5, #0x8]
+ ldr r1, [r5, #0x40]
+ blx r1
+ ldr r0, [r5, #0x40]
+ cmp r0, #0x0
+ ldrneb r4, [r5, #0x99]
+ ldr r0, [r5, #0x8]
+ moveq r4, #0x0
+ and r0, r0, #0x40
+ b _020B8BC4
+_020B8BC0:
+ mov r0, #0x0
+_020B8BC4:
+ cmp r0, #0x0
+ bne _020B8C28
+ ldr r12, [r5, #0xd8]
+ ldr r0, [r5, #0x0]
+ ldrh r2, [r12, #0xa]
+ add r3, r12, #0x4
+ ldrb r0, [r0, #0x1]
+ ldrh r1, [r3, r2]
+ add r2, r3, r2
+ mla r0, r1, r0, r2
+ ldr r0, [r0, #0x4]
+ add r1, r12, r0
+ ldrh r2, [r1, #0x1e]
+ ands r0, r2, #0x2000
+ beq _020B8C28
+ add r1, r1, #0x2c
+ ands r0, r2, #0x2
+ addeq r1, r1, #0x8
+ ands r0, r2, #0x4
+ addeq r1, r1, #0x4
+ ands r0, r2, #0x8
+ addeq r1, r1, #0x8
+ mov r0, #0x18
+ mov r2, #0x10
+ bl FUN_020BB1C0
+_020B8C28:
+ cmp r4, #0x3
+ movne r0, #0x0
+ bne _020B8C54
+ ldr r1, [r5, #0x8]
+ mov r0, r5
+ bic r1, r1, #0x40
+ str r1, [r5, #0x8]
+ ldr r1, [r5, #0x40]
+ blx r1
+ ldr r0, [r5, #0x8]
+ and r0, r0, #0x40
+_020B8C54:
+ cmp r0, #0x0
+ bne _020B8D84
+ ldr r0, _020B8DD4 ; =UNK_021CED18
+ ldr r1, [r0, #0xfc]
+ ands r0, r1, #0x1
+ beq _020B8CA0
+ ldr r1, _020B8DD8 ; =UNK_021CEDF8
+ mov r0, #0x1c
+ mov r2, #0x3
+ bl FUN_020BB1C0
+ ldr r1, _020B8DDC ; =UNK_021CEDD4
+ mov r0, #0x1a
+ mov r2, #0x9
+ bl FUN_020BB1C0
+ add r1, sp, #0x10
+ mov r0, #0x19
+ mov r2, #0xc
+ bl FUN_020BB1C0
+ b _020B8CE0
+_020B8CA0:
+ ands r0, r1, #0x2
+ beq _020B8CBC
+ add r1, sp, #0x10
+ mov r0, #0x19
+ mov r2, #0xc
+ bl FUN_020BB1C0
+ b _020B8CE0
+_020B8CBC:
+ bl FUN_020B8344
+ mov r1, r0
+ mov r0, #0x19
+ mov r2, #0xc
+ bl FUN_020BB1C0
+ add r1, sp, #0x10
+ mov r0, #0x19
+ mov r2, #0xc
+ bl FUN_020BB1C0
+_020B8CE0:
+ bl FUN_020BB394
+ ldr r0, _020B8DE0 ; =0x04000440
+ mov r2, #0x0
+ ldr r1, _020B8DE4 ; =0x04000444
+ str r2, [r0, #0x0]
+ ldr r0, _020B8DE8 ; =0x04000454
+ str r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ add r4, sp, #0x40
+_020B8D04:
+ mov r0, r4
+ bl G3X_GetClipMtx
+ cmp r0, #0x0
+ bne _020B8D04
+ ldr r1, _020B8DEC ; =0x04000448
+ mov r2, #0x1
+ str r2, [r1, #0x0]
+ ldr r0, _020B8DE0 ; =0x04000440
+ mov r2, #0x3
+ str r2, [r0, #0x0]
+ add r1, sp, #0x40
+ mov r0, #0x16
+ mov r2, #0x10
+ bl FUN_020BB1C0
+ ldr r1, [sp, #0x70]
+ ldr r0, [sp, #0x74]
+ mov r2, r1, asr #0x4
+ mov r1, r0, asr #0x4
+ mov r0, r2, lsl #0x8
+ mov r1, r1, lsl #0x8
+ mov r0, r0, asr #0x10
+ mov r1, r1, asr #0x10
+ mov r0, r0, lsl #0x10
+ mov r1, r1, lsl #0x10
+ mov r2, r0, lsr #0x10
+ mov r0, r1, lsr #0x10
+ orr r3, r2, r0, lsl #0x10
+ add r1, sp, #0x4
+ mov r0, #0x22
+ mov r2, #0x1
+ str r3, [sp, #0x4]
+ bl FUN_020BB1C0
+_020B8D84:
+ mov r3, #0x2
+ add r1, sp, #0x8
+ mov r0, #0x10
+ mov r2, #0x1
+ str r3, [sp, #0x8]
+ bl FUN_020BB1C0
+ mov r3, #0x1e
+ add r1, sp, #0xc
+ mov r0, #0x14
+ mov r2, #0x1
+ str r3, [sp, #0xc]
+ bl FUN_020BB1C0
+_020B8DB4:
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x3
+ str r0, [r5, #0x0]
+ add sp, sp, #0x80
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020B8DC8: .word UNK_02106630
+_020B8DCC: .word UNK_02106634
+_020B8DD0: .word UNK_02106660
+_020B8DD4: .word UNK_021CED18
+_020B8DD8: .word UNK_021CEDF8
+_020B8DDC: .word UNK_021CEDD4
+_020B8DE0: .word 0x04000440
+_020B8DE4: .word 0x04000444
+_020B8DE8: .word 0x04000454
+_020B8DEC: .word 0x04000448
+
+ arm_func_start FUN_020B8DF0
+FUN_020B8DF0: ; 0x020B8DF0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x44
+ mov r7, r0
+ ldr r1, [r7, #0x8]
+ ands r0, r1, #0x200
+ bne _020B90E8
+ ands r0, r1, #0x1
+ beq _020B90E8
+ ldr r2, [r7, #0xb0]
+ ldr r0, [r2, #0x10]
+ and r1, r0, #0xc0000000
+ cmp r1, #0x80000000
+ beq _020B8E5C
+ bic r0, r0, #0xc0000000
+ str r0, [r2, #0x10]
+ ldr r2, [r7, #0xb0]
+ ldr r3, _020B90FC ; =UNK_02106638
+ ldr r0, [r2, #0x10]
+ ldr r1, _020B9100 ; =UNK_0210663C
+ orr r0, r0, #0x80000000
+ str r0, [r2, #0x10]
+ ldr r2, [r7, #0xb0]
+ ldr r0, [r3, #0x0]
+ ldr r4, [r2, #0x10]
+ mov r2, #0x1
+ str r4, [r3, #0x4]
+ bl FUN_020BB1C0
+_020B8E5C:
+ mov r0, #0x3
+ str r0, [sp, #0x0]
+ add r1, sp, #0x0
+ mov r0, #0x10
+ mov r2, #0x1
+ bl FUN_020BB1C0
+ ldr r0, [r7, #0x3c]
+ cmp r0, #0x0
+ ldrneb r6, [r7, #0x98]
+ moveq r6, #0x0
+ cmp r6, #0x1
+ bne _020B8EC0
+ ldr r1, [r7, #0x8]
+ mov r0, r7
+ bic r1, r1, #0x40
+ str r1, [r7, #0x8]
+ ldr r1, [r7, #0x3c]
+ blx r1
+ ldr r0, [r7, #0x3c]
+ cmp r0, #0x0
+ ldrneb r6, [r7, #0x98]
+ ldr r0, [r7, #0x8]
+ moveq r6, #0x0
+ and r0, r0, #0x40
+ b _020B8EC4
+_020B8EC0:
+ mov r0, #0x0
+_020B8EC4:
+ cmp r0, #0x0
+ bne _020B8F3C
+ ldr r0, [r7, #0xb0]
+ add r1, sp, #0x38
+ ldrh r4, [r0, #0x2e]
+ ldrh r5, [r0, #0x2c]
+ mov r3, #0x10000
+ rsb r0, r4, #0x0
+ mov r12, r0, lsl #0xf
+ mov lr, r5, lsl #0xf
+ mov r0, #0x1b
+ mov r2, #0x3
+ str lr, [sp, #0x38]
+ str r12, [sp, #0x3c]
+ str r3, [sp, #0x40]
+ bl FUN_020BB1C0
+ mov r0, r5, lsl #0x13
+ mov r1, r4, lsl #0x13
+ mov r0, r0, asr #0x10
+ mov r1, r1, asr #0x10
+ mov r0, r0, lsl #0x10
+ mov r1, r1, lsl #0x10
+ mov r2, r0, lsr #0x10
+ mov r0, r1, lsr #0x10
+ orr r3, r2, r0, lsl #0x10
+ add r1, sp, #0x4
+ mov r0, #0x22
+ mov r2, #0x1
+ str r3, [sp, #0x4]
+ bl FUN_020BB1C0
+_020B8F3C:
+ cmp r6, #0x2
+ bne _020B8F78
+ ldr r1, [r7, #0x8]
+ mov r0, r7
+ bic r1, r1, #0x40
+ str r1, [r7, #0x8]
+ ldr r1, [r7, #0x3c]
+ blx r1
+ ldr r0, [r7, #0x3c]
+ cmp r0, #0x0
+ ldrneb r6, [r7, #0x98]
+ ldr r0, [r7, #0x8]
+ moveq r6, #0x0
+ and r0, r0, #0x40
+ b _020B8F7C
+_020B8F78:
+ mov r0, #0x0
+_020B8F7C:
+ cmp r0, #0x0
+ bne _020B8FE0
+ ldr r4, [r7, #0xd8]
+ ldr r0, [r7, #0x0]
+ ldrh r2, [r4, #0xa]
+ add r3, r4, #0x4
+ ldrb r0, [r0, #0x1]
+ ldrh r1, [r3, r2]
+ add r2, r3, r2
+ mla r0, r1, r0, r2
+ ldr r0, [r0, #0x4]
+ add r1, r4, r0
+ ldrh r2, [r1, #0x1e]
+ ands r0, r2, #0x2000
+ beq _020B8FE0
+ add r1, r1, #0x2c
+ ands r0, r2, #0x2
+ addeq r1, r1, #0x8
+ ands r0, r2, #0x4
+ addeq r1, r1, #0x4
+ ands r0, r2, #0x8
+ addeq r1, r1, #0x8
+ mov r0, #0x18
+ mov r2, #0x10
+ bl FUN_020BB1C0
+_020B8FE0:
+ cmp r6, #0x3
+ movne r0, #0x0
+ bne _020B900C
+ ldr r1, [r7, #0x8]
+ mov r0, r7
+ bic r1, r1, #0x40
+ str r1, [r7, #0x8]
+ ldr r1, [r7, #0x3c]
+ blx r1
+ ldr r0, [r7, #0x8]
+ and r0, r0, #0x40
+_020B900C:
+ cmp r0, #0x0
+ bne _020B90D0
+ mov r3, #0x2
+ add r1, sp, #0x8
+ mov r0, #0x10
+ mov r2, #0x1
+ str r3, [sp, #0x8]
+ bl FUN_020BB1C0
+ add r1, sp, #0x14
+ mov r0, #0x0
+ bl FUN_020BB824
+ mov r3, #0x3
+ add r1, sp, #0xc
+ mov r0, #0x10
+ mov r2, #0x1
+ str r3, [sp, #0xc]
+ bl FUN_020BB1C0
+ ldr r0, _020B9104 ; =UNK_021CED18
+ ldr r1, [r0, #0xfc]
+ ands r0, r1, #0x1
+ beq _020B9094
+ ldr r1, _020B9108 ; =UNK_021CED64
+ mov r0, #0x1a
+ mov r2, #0x9
+ bl FUN_020BB1C0
+ ldr r1, _020B910C ; =UNK_021CEDD4
+ mov r0, #0x1a
+ mov r2, #0x9
+ bl FUN_020BB1C0
+ add r1, sp, #0x14
+ mov r0, #0x1a
+ mov r2, #0x9
+ bl FUN_020BB1C0
+ b _020B90D0
+_020B9094:
+ ands r0, r1, #0x2
+ beq _020B90C0
+ ldr r1, _020B9108 ; =UNK_021CED64
+ mov r0, #0x1a
+ mov r2, #0x9
+ bl FUN_020BB1C0
+ add r1, sp, #0x14
+ mov r0, #0x1a
+ mov r2, #0x9
+ bl FUN_020BB1C0
+ b _020B90D0
+_020B90C0:
+ add r1, sp, #0x14
+ mov r0, #0x1a
+ mov r2, #0x9
+ bl FUN_020BB1C0
+_020B90D0:
+ mov r3, #0x2
+ add r1, sp, #0x10
+ mov r0, #0x10
+ mov r2, #0x1
+ str r3, [sp, #0x10]
+ bl FUN_020BB1C0
+_020B90E8:
+ ldr r0, [r7, #0x0]
+ add r0, r0, #0x3
+ str r0, [r7, #0x0]
+ add sp, sp, #0x44
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020B90FC: .word UNK_02106638
+_020B9100: .word UNK_0210663C
+_020B9104: .word UNK_021CED18
+_020B9108: .word UNK_021CED64
+_020B910C: .word UNK_021CEDD4
+
+ arm_func_start FUN_020B9110
+FUN_020B9110: ; 0x020B9110
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x10
+ mov r4, r0
+ ldr r2, [r4, #0x8]
+ ands r0, r2, #0x100
+ bne _020B9164
+ ands r0, r2, #0x200
+ bne _020B9164
+ cmp r1, #0x0
+ ldreq r0, [r4, #0xe0]
+ add r1, sp, #0x0
+ streq r0, [sp, #0x8]
+ streq r0, [sp, #0x4]
+ streq r0, [sp, #0x0]
+ ldrne r0, [r4, #0xe4]
+ mov r2, #0x3
+ strne r0, [sp, #0x8]
+ strne r0, [sp, #0x4]
+ strne r0, [sp, #0x0]
+ mov r0, #0x1b
+ bl FUN_020BB1C0
+_020B9164:
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ add sp, sp, #0x10
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020B9178
+FUN_020B9178: ; 0x020B9178
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r0
+ ldr r0, [r5, #0x34]
+ cmp r0, #0x0
+ ldrneb r4, [r5, #0x96]
+ moveq r4, #0x0
+ cmp r4, #0x1
+ bne _020B91CC
+ ldr r1, [r5, #0x8]
+ mov r0, r5
+ bic r1, r1, #0x40
+ str r1, [r5, #0x8]
+ ldr r1, [r5, #0x34]
+ blx r1
+ ldr r0, [r5, #0x34]
+ cmp r0, #0x0
+ ldrneb r4, [r5, #0x96]
+ ldr r0, [r5, #0x8]
+ moveq r4, #0x0
+ and r1, r0, #0x40
+ b _020B91D0
+_020B91CC:
+ mov r1, #0x0
+_020B91D0:
+ ldr r0, [r5, #0x8]
+ ands r0, r0, #0x100
+ bne _020B9228
+ cmp r1, #0x0
+ bne _020B9228
+ ldr r0, [r5, #0x0]
+ ldrb r12, [r0, #0x1]
+ ldrb r3, [r0, #0x2]
+ ldrb lr, [r0, #0x3]
+ ldrb r2, [r0, #0x5]
+ ldrb r1, [r0, #0x6]
+ orr r3, r12, r3, lsl #0x8
+ ldrb r6, [r0, #0x4]
+ orr r12, r3, lr, lsl #0x10
+ ldrb r3, [r0, #0x7]
+ orr r1, r2, r1, lsl #0x8
+ orr r6, r12, r6, lsl #0x18
+ ldrb r2, [r0, #0x8]
+ orr r1, r1, r3, lsl #0x10
+ add r0, r0, r6
+ orr r1, r1, r2, lsl #0x18
+ bl FUN_020BB2B0
+_020B9228:
+ cmp r4, #0x3
+ bne _020B9248
+ ldr r1, [r5, #0x8]
+ mov r0, r5
+ bic r1, r1, #0x40
+ str r1, [r5, #0x8]
+ ldr r1, [r5, #0x34]
+ blx r1
+_020B9248:
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x9
+ str r0, [r5, #0x0]
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020B9258
+FUN_020B9258: ; 0x020B9258
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x8c
+ ldr r1, [r0, #0x4]
+ ldr r4, [r0, #0x0]
+ ldr r6, [r1, #0x4]
+ ldrb r2, [r4, #0x2]
+ ldr r3, [r6, #0x10]
+ mov r10, #0x0
+ str r0, [sp, #0x0]
+ str r2, [sp, #0x8]
+ add r3, r6, r3
+ add r1, sp, #0x34
+ mov r0, r10
+ mov r2, #0x54
+ mov r9, r10
+ str r3, [sp, #0x4]
+ add r8, r4, #0x3
+ bl MIi_CpuClearFast
+ bl FUN_020BB394
+ ldr r0, _020B98AC ; =0x04000440
+ mov r7, r10
+ str r7, [r0, #0x0]
+ mov r0, #0x1
+ ldr r2, _020B98B0 ; =0x0400044C
+ ldr r1, _020B98B4 ; =0x04000454
+ str r0, [r2, #0x0]
+ str r0, [sp, #0x10]
+ str r7, [r1, #0x0]
+ mov r1, #0x2
+ ldr r0, _020B98AC ; =0x04000440
+ str r1, [sp, #0x14]
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0x8]
+ cmp r0, #0x0
+ bls _020B96CC
+_020B92E4:
+ ldrb r4, [r8, #0x1]
+ mov r0, #0x64
+ ldr r3, _020B98B8 ; =UNK_021D0380
+ mul r0, r4, r0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x0]
+ mov r1, r4, lsr #0x5
+ add r0, r0, r1, lsl #0x2
+ ldr r1, [sp, #0x10]
+ and r2, r4, #0x1f
+ mov r1, r1, lsl r2
+ ldr r11, [r0, #0xcc]
+ ldr r2, [sp, #0xc]
+ ands r11, r1, r11
+ add r6, r3, r2
+ bne _020B9358
+ ldr r3, [r0, #0xcc]
+ mov r2, #0x54
+ orr r1, r3, r1
+ str r1, [r0, #0xcc]
+ ldr r0, [sp, #0x4]
+ ldr r1, _020B98BC ; =0x04000450
+ mla r0, r4, r2, r0
+ ldrb r2, [r8, #0x0]
+ str r2, [r1, #0x0]
+ ldr r2, [sp, #0x10]
+ ldr r1, _020B98AC ; =0x04000440
+ str r2, [r1, #0x0]
+ bl G3_MultMtx43
+_020B9358:
+ cmp r7, #0x0
+ beq _020B9500
+ ldr r2, [sp, #0x6c]
+ ldr r1, [r5, #0x0]
+ str r2, [sp, #0x18]
+ ldr r2, [sp, #0x70]
+ mov r0, r1, asr #0x1f
+ str r2, [sp, #0x1c]
+ ldr r2, [sp, #0x74]
+ ldr r12, [sp, #0x64]
+ str r2, [sp, #0x20]
+ ldr r2, [sp, #0x78]
+ ldr lr, [sp, #0x68]
+ str r2, [sp, #0x24]
+ ldr r2, [sp, #0x7c]
+ str r2, [sp, #0x28]
+ ldr r2, [sp, #0x80]
+ str r2, [sp, #0x2c]
+ ldr r2, [sp, #0x84]
+ str r2, [sp, #0x30]
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r0, r3, lsr #0xc
+ orr r0, r0, r2, lsl #0x14
+ adds r0, r12, r0
+ str r0, [sp, #0x64]
+ ldr r1, [r5, #0x4]
+ mov r0, r1, asr #0x1f
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r0, r3, lsr #0xc
+ orr r0, r0, r2, lsl #0x14
+ adds r0, lr, r0
+ str r0, [sp, #0x68]
+ ldr r1, [r5, #0x8]
+ mov r0, r1, asr #0x1f
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r1, r3, lsr #0xc
+ ldr r0, [sp, #0x18]
+ orr r1, r1, r2, lsl #0x14
+ adds r0, r0, r1
+ str r0, [sp, #0x6c]
+ ldr r1, [r5, #0xc]
+ mov r0, r1, asr #0x1f
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r1, r3, lsr #0xc
+ ldr r0, [sp, #0x1c]
+ orr r1, r1, r2, lsl #0x14
+ adds r0, r0, r1
+ str r0, [sp, #0x70]
+ ldr r1, [r5, #0x10]
+ mov r0, r1, asr #0x1f
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r1, r3, lsr #0xc
+ ldr r0, [sp, #0x20]
+ orr r1, r1, r2, lsl #0x14
+ adds r0, r0, r1
+ str r0, [sp, #0x74]
+ ldr r1, [r5, #0x14]
+ mov r0, r1, asr #0x1f
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r1, r3, lsr #0xc
+ ldr r0, [sp, #0x24]
+ orr r1, r1, r2, lsl #0x14
+ adds r0, r0, r1
+ str r0, [sp, #0x78]
+ ldr r1, [r5, #0x18]
+ mov r0, r1, asr #0x1f
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r1, r3, lsr #0xc
+ ldr r0, [sp, #0x28]
+ orr r1, r1, r2, lsl #0x14
+ adds r0, r0, r1
+ str r0, [sp, #0x7c]
+ ldr r1, [r5, #0x1c]
+ mov r0, r1, asr #0x1f
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r1, r3, lsr #0xc
+ ldr r0, [sp, #0x2c]
+ orr r1, r1, r2, lsl #0x14
+ adds r0, r0, r1
+ str r0, [sp, #0x80]
+ ldr r1, [r5, #0x20]
+ mov r0, r1, asr #0x1f
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r1, r3, lsr #0xc
+ ldr r0, [sp, #0x30]
+ orr r1, r1, r2, lsl #0x14
+ adds r0, r0, r1
+ str r0, [sp, #0x84]
+_020B9500:
+ cmp r11, #0x0
+ bne _020B9538
+_020B9508:
+ mov r0, r6
+ bl G3X_GetClipMtx
+ cmp r0, #0x0
+ bne _020B9508
+ ldr r1, [sp, #0x14]
+ ldr r0, _020B98AC ; =0x04000440
+ str r1, [r0, #0x0]
+ ldr r0, [sp, #0x4]
+ mov r1, #0x54
+ mla r0, r4, r1, r0
+ add r0, r0, #0x30
+ bl G3_MultMtx33
+_020B9538:
+ ldrb r1, [r8, #0x2]
+ ldr r2, [sp, #0x34]
+ ldr r0, [r6, #0x0]
+ mov r10, r1, lsl #0x4
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r2, r1
+ str r0, [sp, #0x34]
+ mov r9, r10, asr #0x1f
+ ldr r2, [sp, #0x38]
+ ldr r0, [r6, #0x4]
+ ldr r3, [sp, #0x3c]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r2, r1
+ str r0, [sp, #0x38]
+ ldr r0, [r6, #0x8]
+ ldr r2, [sp, #0x40]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r3, r1
+ str r0, [sp, #0x3c]
+ ldr r0, [r6, #0x10]
+ ldr r3, [sp, #0x44]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r2, r1
+ str r0, [sp, #0x40]
+ ldr r0, [r6, #0x14]
+ ldr r2, [sp, #0x48]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r3, r1
+ str r0, [sp, #0x44]
+ ldr r0, [r6, #0x18]
+ ldr r3, [sp, #0x4c]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r2, r1
+ str r0, [sp, #0x48]
+ ldr r0, [r6, #0x20]
+ ldr r2, [sp, #0x50]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r3, r1
+ str r0, [sp, #0x4c]
+ ldr r0, [r6, #0x24]
+ ldr r3, [sp, #0x54]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r2, r1
+ str r0, [sp, #0x50]
+ ldr r0, [r6, #0x28]
+ ldr r2, [sp, #0x58]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r3, r1
+ str r0, [sp, #0x54]
+ ldr r0, [r6, #0x30]
+ ldr r3, [sp, #0x5c]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r2, r1
+ str r0, [sp, #0x58]
+ ldr r0, [r6, #0x34]
+ ldr r2, [sp, #0x60]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r3, r1
+ str r0, [sp, #0x5c]
+ ldr r0, [r6, #0x38]
+ smull r1, r0, r10, r0
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ adds r0, r2, r1
+ str r0, [sp, #0x60]
+ cmp r11, #0x0
+ ldr r1, _020B98C0 ; =UNK_021D03C0
+ ldr r0, [sp, #0xc]
+ add r5, r1, r0
+ add r8, r8, #0x3
+ bne _020B96BC
+_020B96AC:
+ mov r0, r5
+ bl G3X_GetVectorMtx
+ cmp r0, #0x0
+ bne _020B96AC
+_020B96BC:
+ ldr r0, [sp, #0x8]
+ add r7, r7, #0x1
+ cmp r7, r0
+ blo _020B92E4
+_020B96CC:
+ ldr r1, [r5, #0x0]
+ ldr r4, [sp, #0x64]
+ mov r0, r1, asr #0x1f
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r0, r3, lsr #0xc
+ orr r0, r0, r2, lsl #0x14
+ adds r0, r4, r0
+ str r0, [sp, #0x64]
+ ldr r1, [r5, #0x4]
+ ldr r4, [sp, #0x68]
+ mov r0, r1, asr #0x1f
+ umull r3, r2, r10, r1
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ mov r0, r3, lsr #0xc
+ orr r0, r0, r2, lsl #0x14
+ adds r0, r4, r0
+ str r0, [sp, #0x68]
+ ldr r1, [r5, #0x8]
+ ldr r4, [sp, #0x6c]
+ umull r0, r2, r10, r1
+ mov r3, r0, lsr #0xc
+ mov r0, r1, asr #0x1f
+ mla r2, r10, r0, r2
+ mla r2, r9, r1, r2
+ orr r3, r3, r2, lsl #0x14
+ adds r0, r4, r3
+ str r0, [sp, #0x6c]
+ ldr r7, [r5, #0xc]
+ ldr r12, [sp, #0x70]
+ mov r6, r7, asr #0x1f
+ umull r11, r8, r10, r7
+ mla r8, r10, r6, r8
+ mla r8, r9, r7, r8
+ mov r6, r11, lsr #0xc
+ orr r6, r6, r8, lsl #0x14
+ adds r6, r12, r6
+ str r6, [sp, #0x70]
+ ldr r7, [r5, #0x10]
+ ldr r4, [sp, #0x74]
+ mov r6, r7, asr #0x1f
+ umull r11, r8, r10, r7
+ mla r8, r10, r6, r8
+ mla r8, r9, r7, r8
+ mov r6, r11, lsr #0xc
+ orr r6, r6, r8, lsl #0x14
+ adds r4, r4, r6
+ str r4, [sp, #0x74]
+ ldr r6, [r5, #0x14]
+ ldr r3, [sp, #0x78]
+ mov r4, r6, asr #0x1f
+ umull r8, r7, r10, r6
+ mla r7, r10, r4, r7
+ mla r7, r9, r6, r7
+ mov r4, r8, lsr #0xc
+ orr r4, r4, r7, lsl #0x14
+ adds r3, r3, r4
+ str r3, [sp, #0x78]
+ ldr r4, [r5, #0x18]
+ ldr r2, [sp, #0x7c]
+ mov r3, r4, asr #0x1f
+ umull r7, r6, r10, r4
+ mla r6, r10, r3, r6
+ mla r6, r9, r4, r6
+ mov r3, r7, lsr #0xc
+ orr r3, r3, r6, lsl #0x14
+ adds r2, r2, r3
+ str r2, [sp, #0x7c]
+ ldr r3, [r5, #0x1c]
+ ldr r1, [sp, #0x80]
+ mov r2, r3, asr #0x1f
+ umull r6, r4, r10, r3
+ mla r4, r10, r2, r4
+ mla r4, r9, r3, r4
+ mov r2, r6, lsr #0xc
+ orr r2, r2, r4, lsl #0x14
+ adds r1, r1, r2
+ str r1, [sp, #0x80]
+ ldr r2, [r5, #0x20]
+ ldr lr, [sp, #0x84]
+ mov r1, r2, asr #0x1f
+ umull r4, r3, r10, r2
+ mla r3, r10, r1, r3
+ mla r3, r9, r2, r3
+ mov r1, r4, lsr #0xc
+ orr r1, r1, r3, lsl #0x14
+ adds r1, lr, r1
+ add r0, sp, #0x64
+ str r1, [sp, #0x84]
+ bl G3_LoadMtx43
+ ldr r1, _020B98AC ; =0x04000440
+ mov r2, #0x1
+ add r0, sp, #0x34
+ str r2, [r1, #0x0]
+ bl G3_LoadMtx43
+ ldr r3, _020B98AC ; =0x04000440
+ mov r0, #0x0
+ str r0, [r3, #0x0]
+ ldr r1, _020B98BC ; =0x04000450
+ mov r2, #0x1
+ mov r0, #0x2
+ str r2, [r1, #0x0]
+ str r0, [r3, #0x0]
+ ldr r0, [sp, #0x0]
+ ldr r1, [r0, #0x0]
+ ldr r0, _020B98B0 ; =0x0400044C
+ ldrb r2, [r1, #0x1]
+ mov r1, #0x3
+ str r2, [r0, #0x0]
+ ldr r0, [sp, #0x0]
+ ldr r2, [r0, #0x0]
+ ldrb r0, [r2, #0x2]
+ add r0, r0, #0x1
+ mla r1, r0, r1, r2
+ ldr r0, [sp, #0x0]
+ str r1, [r0, #0x0]
+ add sp, sp, #0x8c
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020B98AC: .word 0x04000440
+_020B98B0: .word 0x0400044C
+_020B98B4: .word 0x04000454
+_020B98B8: .word UNK_021D0380
+_020B98BC: .word 0x04000450
+_020B98C0: .word UNK_021D03C0
+
+ arm_func_start FUN_020B98C4
+FUN_020B98C4: ; 0x020B98C4
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xcc
+ mov r10, r0
+ ldr r2, [r10, #0x8]
+ mov r9, r1
+ ands r0, r2, #0x200
+ mov r7, #0x2
+ ldr r6, _020B9C28 ; =UNK_02106718
+ ldr fp, _020B9C2C ; =UNK_02106724
+ ldr r5, _020B9C30 ; =UNK_021066F4
+ beq _020B992C
+ cmp r9, #0x40
+ beq _020B9900
+ cmp r9, #0x60
+ bne _020B9904
+_020B9900:
+ add r7, r7, #0x1
+_020B9904:
+ cmp r9, #0x20
+ beq _020B9914
+ cmp r9, #0x60
+ bne _020B9918
+_020B9914:
+ add r7, r7, #0x1
+_020B9918:
+ ldr r0, [r10, #0x0]
+ add sp, sp, #0xcc
+ add r0, r0, r7
+ str r0, [r10, #0x0]
+ ldmia sp!, {r4-r11,pc}
+_020B992C:
+ cmp r9, #0x40
+ beq _020B993C
+ cmp r9, #0x60
+ bne _020B9974
+_020B993C:
+ add r7, r7, #0x1
+ ands r0, r2, #0x100
+ bne _020B9974
+ cmp r9, #0x40
+ ldreq r0, [r10, #0x0]
+ add r1, sp, #0x0
+ ldreqb r0, [r0, #0x2]
+ mov r2, #0x1
+ streq r0, [sp, #0x0]
+ ldrne r0, [r10, #0x0]
+ ldrneb r0, [r0, #0x3]
+ strne r0, [sp, #0x0]
+ mov r0, #0x14
+ bl FUN_020BB1C0
+_020B9974:
+ ldr r0, [r10, #0x2c]
+ cmp r0, #0x0
+ ldrneb r8, [r10, #0x94]
+ moveq r8, #0x0
+ cmp r8, #0x1
+ bne _020B99C0
+ ldr r1, [r10, #0x8]
+ mov r0, r10
+ bic r1, r1, #0x40
+ str r1, [r10, #0x8]
+ ldr r1, [r10, #0x2c]
+ blx r1
+ ldr r0, [r10, #0x2c]
+ cmp r0, #0x0
+ ldrneb r8, [r10, #0x94]
+ ldr r0, [r10, #0x8]
+ moveq r8, #0x0
+ and r1, r0, #0x40
+ b _020B99C4
+_020B99C0:
+ mov r1, #0x0
+_020B99C4:
+ ldr r0, [r10, #0x8]
+ ands r0, r0, #0x100
+ bne _020B9BA4
+ cmp r1, #0x0
+ bne _020B9BA4
+ bl FUN_020BB394
+ ldr r2, _020B9C34 ; =0x00151110
+ ldr r1, _020B9C38 ; =0x04000400
+ mov r0, #0x0
+ str r2, [r1, #0x0]
+ str r0, [r1, #0x0]
+ str r0, [r1, #0x0]
+ add r4, sp, #0x8
+_020B99F8:
+ mov r0, r4
+ bl G3X_GetClipMtx
+ cmp r0, #0x0
+ bne _020B99F8
+ ldr r0, _020B9C3C ; =UNK_021CED18
+ ldr r1, [r0, #0xfc]
+ ands r0, r1, #0x1
+ beq _020B9A38
+ bl FUN_020B82A4
+ add r1, sp, #0x48
+ bl MTX_Copy43To44_
+ add r0, sp, #0x8
+ add r1, sp, #0x48
+ mov r2, r0
+ bl MTX_Concat44
+ b _020B9A5C
+_020B9A38:
+ ands r0, r1, #0x2
+ beq _020B9A5C
+ ldr r0, _020B9C40 ; =UNK_021CED64
+ add r1, sp, #0x88
+ bl MTX_Copy43To44_
+ add r0, sp, #0x8
+ add r1, sp, #0x88
+ mov r2, r0
+ bl MTX_Concat44
+_020B9A5C:
+ ldr r1, [sp, #0x38]
+ add r0, sp, #0x8
+ str r1, [r6, #0x0]
+ ldr r1, [sp, #0x3c]
+ str r1, [r6, #0x4]
+ ldr r1, [sp, #0x40]
+ str r1, [r6, #0x8]
+ bl VEC_Mag
+ str r0, [r11, #0x0]
+ add r0, sp, #0x18
+ bl VEC_Mag
+ str r0, [r11, #0x4]
+ add r0, sp, #0x28
+ bl VEC_Mag
+ str r0, [r11, #0x8]
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x0
+ bne _020B9AB0
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x0
+ beq _020B9AD4
+_020B9AB0:
+ add r0, sp, #0x18
+ add r1, r5, #0xc
+ bl VEC_Normalize
+ ldr r0, [r5, #0x14]
+ rsb r0, r0, #0x0
+ str r0, [r5, #0x1c]
+ ldr r0, [r5, #0x10]
+ str r0, [r5, #0x20]
+ b _020B9AF4
+_020B9AD4:
+ add r0, sp, #0x28
+ add r1, r5, #0x18
+ bl VEC_Normalize
+ ldr r0, [r5, #0x1c]
+ rsb r0, r0, #0x0
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #0x20]
+ str r0, [r5, #0x10]
+_020B9AF4:
+ ldr r0, _020B9C3C ; =UNK_021CED18
+ ldr r1, [r0, #0xfc]
+ ands r0, r1, #0x1
+ beq _020B9B48
+ ldr r3, _020B9C44 ; =0x00171012
+ ldr r1, _020B9C38 ; =0x04000400
+ ldr r0, _020B9C48 ; =UNK_021066EC
+ mov r2, #0x8
+ str r3, [r1, #0x0]
+ bl MIi_CpuSend32
+ bl FUN_020B8264
+ ldr r1, _020B9C38 ; =0x04000400
+ mov r2, #0x30
+ bl MIi_CpuSend32
+ ldr r2, _020B9C4C ; =0x00001B19
+ ldr r1, _020B9C38 ; =0x04000400
+ ldr r0, _020B9C30 ; =UNK_021066F4
+ str r2, [r1, #0x0]
+ mov r2, #0x3c
+ bl MIi_CpuSend32
+ b _020B9BA4
+_020B9B48:
+ ands r0, r1, #0x2
+ beq _020B9B94
+ ldr r3, _020B9C44 ; =0x00171012
+ ldr r1, _020B9C38 ; =0x04000400
+ ldr r0, _020B9C48 ; =UNK_021066EC
+ mov r2, #0x8
+ str r3, [r1, #0x0]
+ bl MIi_CpuSend32
+ bl FUN_020B8344
+ ldr r1, _020B9C38 ; =0x04000400
+ mov r2, #0x30
+ bl MIi_CpuSend32
+ ldr r2, _020B9C4C ; =0x00001B19
+ ldr r1, _020B9C38 ; =0x04000400
+ ldr r0, _020B9C30 ; =UNK_021066F4
+ str r2, [r1, #0x0]
+ mov r2, #0x3c
+ bl MIi_CpuSend32
+ b _020B9BA4
+_020B9B94:
+ ldr r0, _020B9C50 ; =UNK_021066E8
+ ldr r1, _020B9C38 ; =0x04000400
+ mov r2, #0x48
+ bl MIi_CpuSend32
+_020B9BA4:
+ cmp r8, #0x3
+ movne r0, #0x0
+ bne _020B9BD0
+ ldr r1, [r10, #0x8]
+ mov r0, r10
+ bic r1, r1, #0x40
+ str r1, [r10, #0x8]
+ ldr r1, [r10, #0x2c]
+ blx r1
+ ldr r0, [r10, #0x8]
+ and r0, r0, #0x40
+_020B9BD0:
+ cmp r9, #0x20
+ beq _020B9BE0
+ cmp r9, #0x60
+ bne _020B9C14
+_020B9BE0:
+ cmp r0, #0x0
+ add r7, r7, #0x1
+ bne _020B9C14
+ ldr r0, [r10, #0x8]
+ ands r0, r0, #0x100
+ bne _020B9C14
+ ldr r0, [r10, #0x0]
+ add r1, sp, #0x4
+ ldrb r3, [r0, #0x2]
+ mov r0, #0x13
+ mov r2, #0x1
+ str r3, [sp, #0x4]
+ bl FUN_020BB1C0
+_020B9C14:
+ ldr r0, [r10, #0x0]
+ add r0, r0, r7
+ str r0, [r10, #0x0]
+ add sp, sp, #0xcc
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020B9C28: .word UNK_02106718
+_020B9C2C: .word UNK_02106724
+_020B9C30: .word UNK_021066F4
+_020B9C34: .word 0x00151110
+_020B9C38: .word 0x04000400
+_020B9C3C: .word UNK_021CED18
+_020B9C40: .word UNK_021CED64
+_020B9C44: .word 0x00171012
+_020B9C48: .word UNK_021066EC
+_020B9C4C: .word 0x00001B19
+_020B9C50: .word UNK_021066E8
+
+ arm_func_start FUN_020B9C54
+FUN_020B9C54: ; 0x020B9C54
+ stmdb sp!, {r4-r10,lr}
+ sub sp, sp, #0xc8
+ mov r9, r0
+ ldr r2, [r9, #0x8]
+ mov r8, r1
+ ands r0, r2, #0x200
+ mov r6, #0x2
+ ldr r5, _020B9F58 ; =UNK_021066D0
+ ldr r4, _020B9F5C ; =UNK_021066DC
+ beq _020B9CB8
+ cmp r8, #0x40
+ beq _020B9C8C
+ cmp r8, #0x60
+ bne _020B9C90
+_020B9C8C:
+ add r6, r6, #0x1
+_020B9C90:
+ cmp r8, #0x20
+ beq _020B9CA0
+ cmp r8, #0x60
+ bne _020B9CA4
+_020B9CA0:
+ add r6, r6, #0x1
+_020B9CA4:
+ ldr r0, [r9, #0x0]
+ add sp, sp, #0xc8
+ add r0, r0, r6
+ str r0, [r9, #0x0]
+ ldmia sp!, {r4-r10,pc}
+_020B9CB8:
+ cmp r8, #0x40
+ beq _020B9CC8
+ cmp r8, #0x60
+ bne _020B9D00
+_020B9CC8:
+ add r6, r6, #0x1
+ ands r0, r2, #0x100
+ bne _020B9D00
+ cmp r8, #0x40
+ ldreq r0, [r9, #0x0]
+ add r1, sp, #0x0
+ ldreqb r0, [r0, #0x2]
+ mov r2, #0x1
+ streq r0, [sp, #0x0]
+ ldrne r0, [r9, #0x0]
+ ldrneb r0, [r0, #0x3]
+ strne r0, [sp, #0x0]
+ mov r0, #0x14
+ bl FUN_020BB1C0
+_020B9D00:
+ ldr r0, [r9, #0x28]
+ cmp r0, #0x0
+ ldrneb r7, [r9, #0x93]
+ moveq r7, #0x0
+ cmp r7, #0x1
+ bne _020B9D4C
+ ldr r1, [r9, #0x8]
+ mov r0, r9
+ bic r1, r1, #0x40
+ str r1, [r9, #0x8]
+ ldr r1, [r9, #0x28]
+ blx r1
+ ldr r0, [r9, #0x28]
+ cmp r0, #0x0
+ ldrneb r7, [r9, #0x93]
+ ldr r0, [r9, #0x8]
+ moveq r7, #0x0
+ and r1, r0, #0x40
+ b _020B9D50
+_020B9D4C:
+ mov r1, #0x0
+_020B9D50:
+ ldr r0, [r9, #0x8]
+ ands r0, r0, #0x100
+ bne _020B9ED4
+ cmp r1, #0x0
+ bne _020B9ED4
+ bl FUN_020BB394
+ ldr r2, _020B9F60 ; =0x00151110
+ ldr r1, _020B9F64 ; =0x04000400
+ mov r0, #0x0
+ str r2, [r1, #0x0]
+ str r0, [r1, #0x0]
+ str r0, [r1, #0x0]
+ add r10, sp, #0x8
+_020B9D84:
+ mov r0, r10
+ bl G3X_GetClipMtx
+ cmp r0, #0x0
+ bne _020B9D84
+ ldr r0, _020B9F68 ; =UNK_021CED18
+ ldr r1, [r0, #0xfc]
+ ands r0, r1, #0x1
+ beq _020B9DC4
+ bl FUN_020B82A4
+ add r1, sp, #0x48
+ bl MTX_Copy43To44_
+ add r0, sp, #0x8
+ add r1, sp, #0x48
+ mov r2, r0
+ bl MTX_Concat44
+ b _020B9DE8
+_020B9DC4:
+ ands r0, r1, #0x2
+ beq _020B9DE8
+ ldr r0, _020B9F6C ; =UNK_021CED64
+ add r1, sp, #0x88
+ bl MTX_Copy43To44_
+ add r0, sp, #0x8
+ add r1, sp, #0x88
+ mov r2, r0
+ bl MTX_Concat44
+_020B9DE8:
+ ldr r1, [sp, #0x38]
+ add r0, sp, #0x8
+ str r1, [r5, #0x0]
+ ldr r1, [sp, #0x3c]
+ str r1, [r5, #0x4]
+ ldr r1, [sp, #0x40]
+ str r1, [r5, #0x8]
+ bl VEC_Mag
+ str r0, [r4, #0x0]
+ add r0, sp, #0x18
+ bl VEC_Mag
+ str r0, [r4, #0x4]
+ add r0, sp, #0x28
+ bl VEC_Mag
+ ldr r1, _020B9F68 ; =UNK_021CED18
+ str r0, [r4, #0x8]
+ ldr r1, [r1, #0xfc]
+ ands r0, r1, #0x1
+ beq _020B9E78
+ ldr r3, _020B9F70 ; =0x00171012
+ ldr r1, _020B9F64 ; =0x04000400
+ ldr r0, _020B9F74 ; =UNK_021066A4
+ mov r2, #0x8
+ str r3, [r1, #0x0]
+ bl MIi_CpuSend32
+ bl FUN_020B8264
+ ldr r1, _020B9F64 ; =0x04000400
+ mov r2, #0x30
+ bl MIi_CpuSend32
+ ldr r2, _020B9F78 ; =0x00001B19
+ ldr r1, _020B9F64 ; =0x04000400
+ ldr r0, _020B9F7C ; =UNK_021066AC
+ str r2, [r1, #0x0]
+ mov r2, #0x3c
+ bl MIi_CpuSend32
+ b _020B9ED4
+_020B9E78:
+ ands r0, r1, #0x2
+ beq _020B9EC4
+ ldr r3, _020B9F70 ; =0x00171012
+ ldr r1, _020B9F64 ; =0x04000400
+ ldr r0, _020B9F74 ; =UNK_021066A4
+ mov r2, #0x8
+ str r3, [r1, #0x0]
+ bl MIi_CpuSend32
+ bl FUN_020B8344
+ ldr r1, _020B9F64 ; =0x04000400
+ mov r2, #0x30
+ bl MIi_CpuSend32
+ ldr r2, _020B9F78 ; =0x00001B19
+ ldr r1, _020B9F64 ; =0x04000400
+ ldr r0, _020B9F7C ; =UNK_021066AC
+ str r2, [r1, #0x0]
+ mov r2, #0x3c
+ bl MIi_CpuSend32
+ b _020B9ED4
+_020B9EC4:
+ ldr r0, _020B9F80 ; =UNK_021066A0
+ ldr r1, _020B9F64 ; =0x04000400
+ mov r2, #0x48
+ bl MIi_CpuSend32
+_020B9ED4:
+ cmp r7, #0x3
+ movne r0, #0x0
+ bne _020B9F00
+ ldr r1, [r9, #0x8]
+ mov r0, r9
+ bic r1, r1, #0x40
+ str r1, [r9, #0x8]
+ ldr r1, [r9, #0x28]
+ blx r1
+ ldr r0, [r9, #0x8]
+ and r0, r0, #0x40
+_020B9F00:
+ cmp r8, #0x20
+ beq _020B9F10
+ cmp r8, #0x60
+ bne _020B9F44
+_020B9F10:
+ cmp r0, #0x0
+ add r6, r6, #0x1
+ bne _020B9F44
+ ldr r0, [r9, #0x8]
+ ands r0, r0, #0x100
+ bne _020B9F44
+ ldr r0, [r9, #0x0]
+ add r1, sp, #0x4
+ ldrb r3, [r0, #0x2]
+ mov r0, #0x13
+ mov r2, #0x1
+ str r3, [sp, #0x4]
+ bl FUN_020BB1C0
+_020B9F44:
+ ldr r0, [r9, #0x0]
+ add r0, r0, r6
+ str r0, [r9, #0x0]
+ add sp, sp, #0xc8
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020B9F58: .word UNK_021066D0
+_020B9F5C: .word UNK_021066DC
+_020B9F60: .word 0x00151110
+_020B9F64: .word 0x04000400
+_020B9F68: .word UNK_021CED18
+_020B9F6C: .word UNK_021CED64
+_020B9F70: .word 0x00171012
+_020B9F74: .word UNK_021066A4
+_020B9F78: .word 0x00001B19
+_020B9F7C: .word UNK_021066AC
+_020B9F80: .word UNK_021066A0
+
+ arm_func_start FUN_020B9F84
+FUN_020B9F84: ; 0x020B9F84
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x14
+ mov r10, r0
+ ldr r0, [r10, #0x0]
+ mov r9, r1
+ ldrb r4, [r0, #0x1]
+ mov r7, #0x4
+ strb r4, [r10, #0xae]
+ ldr r0, [r10, #0x8]
+ orr r0, r0, #0x10
+ str r0, [r10, #0x8]
+ ldr r1, [r10, #0x8]
+ ands r0, r1, #0x400
+ beq _020BA01C
+ cmp r9, #0x40
+ beq _020B9FCC
+ cmp r9, #0x60
+ bne _020B9FD0
+_020B9FCC:
+ add r7, r7, #0x1
+_020B9FD0:
+ cmp r9, #0x20
+ beq _020B9FE0
+ cmp r9, #0x60
+ bne _020BA008
+_020B9FE0:
+ add r7, r7, #0x1
+ ands r0, r1, #0x100
+ bne _020BA008
+ ldr r0, [r10, #0x0]
+ add r1, sp, #0x8
+ ldrb r3, [r0, #0x4]
+ mov r0, #0x14
+ mov r2, #0x1
+ str r3, [sp, #0x8]
+ bl FUN_020BB1C0
+_020BA008:
+ ldr r0, [r10, #0x0]
+ add sp, sp, #0x14
+ add r0, r0, r7
+ str r0, [r10, #0x0]
+ ldmia sp!, {r4-r11,pc}
+_020BA01C:
+ cmp r9, #0x40
+ beq _020BA02C
+ cmp r9, #0x60
+ bne _020BA068
+_020BA02C:
+ cmp r9, #0x40
+ ldreq r0, [r10, #0x0]
+ add r7, r7, #0x1
+ ldreqb r0, [r0, #0x4]
+ streq r0, [sp, #0xc]
+ ldrne r0, [r10, #0x0]
+ ldrneb r0, [r0, #0x5]
+ strne r0, [sp, #0xc]
+ ldr r0, [r10, #0x8]
+ ands r0, r0, #0x100
+ bne _020BA068
+ add r1, sp, #0xc
+ mov r0, #0x14
+ mov r2, #0x1
+ bl FUN_020BB1C0
+_020BA068:
+ add r0, r10, #0x12c
+ str r0, [r10, #0xb4]
+ ldr r0, [r10, #0x24]
+ cmp r0, #0x0
+ ldrneb r8, [r10, #0x92]
+ moveq r8, #0x0
+ cmp r8, #0x1
+ bne _020BA0BC
+ ldr r1, [r10, #0x8]
+ mov r0, r10
+ bic r1, r1, #0x40
+ str r1, [r10, #0x8]
+ ldr r1, [r10, #0x24]
+ blx r1
+ ldr r0, [r10, #0x24]
+ cmp r0, #0x0
+ ldrneb r8, [r10, #0x92]
+ ldr r0, [r10, #0x8]
+ moveq r8, #0x0
+ and r0, r0, #0x40
+ b _020BA0C0
+_020BA0BC:
+ mov r0, #0x0
+_020BA0C0:
+ cmp r0, #0x0
+ bne _020BA2CC
+ ldr r0, [r10, #0x4]
+ ldr r1, [r0, #0x34]
+ cmp r1, #0x0
+ beq _020BA0F4
+ mov r0, #0x58
+ mla r6, r4, r0, r1
+ ldr r0, [r10, #0x8]
+ ands r0, r0, #0x80
+ moveq r0, #0x1
+ movne r0, #0x0
+ b _020BA0FC
+_020BA0F4:
+ add r6, r10, #0x12c
+ mov r0, #0x0
+_020BA0FC:
+ cmp r0, #0x0
+ bne _020BA2C8
+ mov r0, #0x0
+ str r0, [r6, #0x0]
+ ldr r0, [r10, #0x4]
+ ldr r1, [r0, #0x10]
+ cmp r1, #0x0
+ beq _020BA134
+ ldr r3, [r0, #0x14]
+ mov r0, r6
+ mov r2, r4
+ blx r3
+ cmp r0, #0x0
+ bne _020BA2C8
+_020BA134:
+ ldr r2, [r10, #0xd4]
+ ldrh r0, [r2, #0x6]
+ ldrh r1, [r2, r0]
+ add r0, r2, r0
+ mla r0, r1, r4, r0
+ ldr r1, [r0, #0x4]
+ ldrh r0, [r2, r1]
+ add r4, r2, r1
+ add r5, r4, #0x4
+ ands r0, r0, #0x1
+ ldrne r0, [r6, #0x0]
+ orrne r0, r0, #0x4
+ strne r0, [r6, #0x0]
+ bne _020BA188
+ ldr r0, [r5, #0x0]
+ str r0, [r6, #0x4c]
+ ldr r0, [r5, #0x4]
+ str r0, [r6, #0x50]
+ ldr r0, [r5, #0x8]
+ add r5, r5, #0xc
+ str r0, [r6, #0x54]
+_020BA188:
+ ldrh r1, [r4, #0x0]
+ ands r0, r1, #0x2
+ ldrne r0, [r6, #0x0]
+ orrne r0, r0, #0x2
+ strne r0, [r6, #0x0]
+ bne _020BA2B0
+ ands r0, r1, #0x8
+ beq _020BA264
+ and r1, r1, #0xf0
+ mov r11, r1, asr #0x4
+ ldrsh r1, [r5, #0x0]
+ add r0, r6, #0x28
+ str r1, [sp, #0x0]
+ ldrsh r1, [r5, #0x2]
+ str r1, [sp, #0x4]
+ bl MI_Zero36B
+ ldrh r0, [r4, #0x0]
+ add r1, r6, r11, lsl #0x2
+ add r5, r5, #0x4
+ ands r0, r0, #0x100
+ movne r0, #0x1000
+ rsbne r2, r0, #0x0
+ moveq r2, #0x1000
+ str r2, [r1, #0x28]
+ ldr r0, _020BA3B4 ; =UNK_020FF9F0
+ ldr r1, _020BA3B8 ; =UNK_020FF9F1
+ ldrb r0, [r0, r11, lsl #0x2]
+ add r2, r6, r0, lsl #0x2
+ ldr r0, [sp, #0x0]
+ str r0, [r2, #0x28]
+ ldrb r0, [r1, r11, lsl #0x2]
+ add r1, r6, r0, lsl #0x2
+ ldr r0, [sp, #0x4]
+ str r0, [r1, #0x28]
+ ldrh r0, [r4, #0x0]
+ ands r0, r0, #0x200
+ ldrne r0, [sp, #0x4]
+ rsbne r0, r0, #0x0
+ strne r0, [sp, #0x4]
+ ldr r0, _020BA3BC ; =UNK_020FF9F2
+ ldrb r0, [r0, r11, lsl #0x2]
+ add r1, r6, r0, lsl #0x2
+ ldr r0, [sp, #0x4]
+ str r0, [r1, #0x28]
+ ldrh r0, [r4, #0x0]
+ ands r0, r0, #0x400
+ ldrne r0, [sp, #0x0]
+ rsbne r0, r0, #0x0
+ strne r0, [sp, #0x0]
+ ldr r0, _020BA3C0 ; =UNK_020FF9F3
+ ldrb r0, [r0, r11, lsl #0x2]
+ add r1, r6, r0, lsl #0x2
+ ldr r0, [sp, #0x0]
+ str r0, [r1, #0x28]
+ b _020BA2B0
+_020BA264:
+ ldrsh r0, [r4, #0x2]
+ str r0, [r6, #0x28]
+ ldrsh r0, [r5, #0x0]
+ str r0, [r6, #0x2c]
+ ldrsh r0, [r5, #0x2]
+ str r0, [r6, #0x30]
+ ldrsh r0, [r5, #0x4]
+ str r0, [r6, #0x34]
+ ldrsh r0, [r5, #0x6]
+ str r0, [r6, #0x38]
+ ldrsh r0, [r5, #0x8]
+ str r0, [r6, #0x3c]
+ ldrsh r0, [r5, #0xa]
+ str r0, [r6, #0x40]
+ ldrsh r0, [r5, #0xc]
+ str r0, [r6, #0x44]
+ ldrsh r0, [r5, #0xe]
+ add r5, r5, #0x10
+ str r0, [r6, #0x48]
+_020BA2B0:
+ ldrh r3, [r4, #0x0]
+ ldr r2, [r10, #0x0]
+ ldr r4, [r10, #0xe8]
+ mov r0, r6
+ mov r1, r5
+ blx r4
+_020BA2C8:
+ str r6, [r10, #0xb4]
+_020BA2CC:
+ cmp r8, #0x2
+ bne _020BA308
+ ldr r1, [r10, #0x8]
+ mov r0, r10
+ bic r1, r1, #0x40
+ str r1, [r10, #0x8]
+ ldr r1, [r10, #0x24]
+ blx r1
+ ldr r0, [r10, #0x24]
+ cmp r0, #0x0
+ ldrneb r8, [r10, #0x92]
+ ldr r0, [r10, #0x8]
+ moveq r8, #0x0
+ and r0, r0, #0x40
+ b _020BA30C
+_020BA308:
+ mov r0, #0x0
+_020BA30C:
+ cmp r0, #0x0
+ bne _020BA32C
+ ldr r0, [r10, #0x8]
+ ands r0, r0, #0x100
+ bne _020BA32C
+ ldr r0, [r10, #0xb4]
+ ldr r1, [r10, #0xec]
+ blx r1
+_020BA32C:
+ mov r0, #0x0
+ str r0, [r10, #0xb4]
+ cmp r8, #0x3
+ bne _020BA35C
+ ldr r1, [r10, #0x8]
+ mov r0, r10
+ bic r1, r1, #0x40
+ str r1, [r10, #0x8]
+ ldr r1, [r10, #0x24]
+ blx r1
+ ldr r0, [r10, #0x8]
+ and r0, r0, #0x40
+_020BA35C:
+ cmp r9, #0x20
+ beq _020BA36C
+ cmp r9, #0x60
+ bne _020BA3A0
+_020BA36C:
+ cmp r0, #0x0
+ add r7, r7, #0x1
+ bne _020BA3A0
+ ldr r0, [r10, #0x8]
+ ands r0, r0, #0x100
+ bne _020BA3A0
+ ldr r0, [r10, #0x0]
+ add r1, sp, #0x10
+ ldrb r3, [r0, #0x4]
+ mov r0, #0x13
+ mov r2, #0x1
+ str r3, [sp, #0x10]
+ bl FUN_020BB1C0
+_020BA3A0:
+ ldr r0, [r10, #0x0]
+ add r0, r0, r7
+ str r0, [r10, #0x0]
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020BA3B4: .word UNK_020FF9F0
+_020BA3B8: .word UNK_020FF9F1
+_020BA3BC: .word UNK_020FF9F2
+_020BA3C0: .word UNK_020FF9F3
+
+ arm_func_start FUN_020BA3C4
+FUN_020BA3C4: ; 0x020BA3C4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ ldr r3, [r4, #0x8]
+ ands r2, r3, #0x200
+ bne _020BA420
+ ands r2, r3, #0x1
+ beq _020BA420
+ ands r2, r3, #0x2
+ bne _020BA420
+ ldr r5, [r4, #0xdc]
+ ldr r3, [r4, #0x0]
+ ldrh r2, [r5, #0x6]
+ ldrb r3, [r3, #0x1]
+ ldr ip, _020BA434 ; =UNK_02106650
+ ldrh lr, [r5, r2]
+ add r2, r5, r2
+ mla r2, lr, r3, r2
+ ldr r2, [r2, #0x4]
+ ldrh lr, [r5, r2]
+ add r2, r5, r2
+ ldr r12, [r12, lr, lsl #0x2]
+ blx r12
+_020BA420:
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x2
+ str r0, [r4, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020BA434: .word UNK_02106650
+
+ arm_func_start FUN_020BA438
+FUN_020BA438: ; 0x020BA438
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldr r0, [r6, #0x20]
+ mov r5, r2
+ cmp r0, #0x0
+ ldrneb r4, [r6, #0x91]
+ moveq r4, #0x0
+ cmp r4, #0x1
+ bne _020BA490
+ ldr r1, [r6, #0x8]
+ mov r0, r6
+ bic r1, r1, #0x40
+ str r1, [r6, #0x8]
+ ldr r1, [r6, #0x20]
+ blx r1
+ ldr r0, [r6, #0x20]
+ cmp r0, #0x0
+ ldrneb r4, [r6, #0x91]
+ ldr r0, [r6, #0x8]
+ moveq r4, #0x0
+ and r0, r0, #0x40
+ b _020BA494
+_020BA490:
+ mov r0, #0x0
+_020BA494:
+ cmp r0, #0x0
+ bne _020BA4B8
+ ldr r0, [r6, #0x8]
+ ands r0, r0, #0x100
+ bne _020BA4B8
+ ldr r0, [r5, #0x8]
+ ldr r1, [r5, #0xc]
+ add r0, r5, r0
+ bl FUN_020BB2B0
+_020BA4B8:
+ cmp r4, #0x2
+ bne _020BA4E8
+ ldr r1, [r6, #0x8]
+ mov r0, r6
+ bic r1, r1, #0x40
+ str r1, [r6, #0x8]
+ ldr r1, [r6, #0x20]
+ blx r1
+ ldr r0, [r6, #0x20]
+ cmp r0, #0x0
+ ldrneb r4, [r6, #0x91]
+ moveq r4, #0x0
+_020BA4E8:
+ cmp r4, #0x3
+ ldmneia sp!, {r4-r6,pc}
+ ldr r1, [r6, #0x8]
+ mov r0, r6
+ bic r1, r1, #0x40
+ str r1, [r6, #0x8]
+ ldr r1, [r6, #0x20]
+ blx r1
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BA50C
+FUN_020BA50C: ; 0x020BA50C
+ stmdb sp!, {r4-r6,lr}
+ mov r4, r0
+ ldr r5, [r4, #0x8]
+ ands r0, r5, #0x200
+ bne _020BA578
+ ldr r2, [r4, #0x0]
+ ands r0, r5, #0x1
+ ldrb r3, [r2, #0x1]
+ bne _020BA544
+ ands r0, r5, #0x8
+ beq _020BA544
+ ldrb r0, [r4, #0xad]
+ cmp r3, r0
+ beq _020BA578
+_020BA544:
+ ldr r6, [r4, #0xd8]
+ ldr ip, _020BA588 ; =UNK_02106640
+ ldrh r2, [r6, #0xa]
+ add r5, r6, #0x4
+ mov r0, r4
+ ldrh lr, [r5, r2]
+ add r2, r5, r2
+ mla r2, lr, r3, r2
+ ldr r2, [r2, #0x4]
+ ldrh lr, [r6, r2]
+ add r2, r6, r2
+ ldr r12, [r12, lr, lsl #0x2]
+ blx r12
+_020BA578:
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x2
+ str r0, [r4, #0x0]
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020BA588: .word UNK_02106640
+
+ arm_func_start FUN_020BA58C
+FUN_020BA58C: ; 0x020BA58C
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x20
+ mov r8, r0
+ mov r6, r3
+ strb r6, [r8, #0xad]
+ ldr r3, [r8, #0x8]
+ add r0, r8, #0xf4
+ orr r3, r3, #0x8
+ str r3, [r8, #0x8]
+ str r0, [r8, #0xb0]
+ ldr r0, [r8, #0x1c]
+ mov r4, r1
+ cmp r0, #0x0
+ ldrneb r5, [r8, #0x90]
+ mov r7, r2
+ moveq r5, #0x0
+ cmp r5, #0x1
+ bne _020BA608
+ ldr r1, [r8, #0x8]
+ mov r0, r8
+ bic r1, r1, #0x40
+ str r1, [r8, #0x8]
+ ldr r1, [r8, #0x1c]
+ blx r1
+ ldr r0, [r8, #0x1c]
+ cmp r0, #0x0
+ ldrneb r5, [r8, #0x90]
+ ldr r0, [r8, #0x8]
+ moveq r5, #0x0
+ and r0, r0, #0x40
+ b _020BA60C
+_020BA608:
+ mov r0, #0x0
+_020BA60C:
+ cmp r0, #0x0
+ bne _020BA8C0
+ ldr r0, [r8, #0x4]
+ ldr r0, [r0, #0x38]
+ cmp r0, #0x0
+ beq _020BA638
+ ldr r1, [r8, #0x8]
+ ands r1, r1, #0x80
+ moveq r1, #0x38
+ mlaeq r4, r6, r1, r0
+ beq _020BA8BC
+_020BA638:
+ cmp r4, #0x20
+ beq _020BA648
+ cmp r4, #0x40
+ bne _020BA684
+_020BA648:
+ mov r1, r6, lsr #0x5
+ add r1, r8, r1, lsl #0x2
+ and r2, r6, #0x1f
+ mov r3, #0x1
+ mov r2, r3, lsl r2
+ ldr r1, [r1, #0xbc]
+ ands r1, r2, r1
+ beq _020BA684
+ cmp r0, #0x0
+ movne r1, #0x38
+ mlane r4, r6, r1, r0
+ ldreq r1, _020BA9D8 ; =UNK_021CEF80
+ moveq r0, #0x38
+ mlaeq r4, r6, r0, r1
+ b _020BA8BC
+_020BA684:
+ cmp r0, #0x0
+ beq _020BA6BC
+ add r4, r8, #0xbc
+ mov r3, r6, lsr #0x5
+ ldr r2, [r4, r3, lsl #0x2]
+ and r0, r6, #0x1f
+ mov r1, #0x1
+ orr r0, r2, r1, lsl r0
+ str r0, [r4, r3, lsl #0x2]
+ ldr r1, [r8, #0x4]
+ mov r0, #0x38
+ ldr r1, [r1, #0x38]
+ mla r4, r6, r0, r1
+ b _020BA6F0
+_020BA6BC:
+ cmp r4, #0x40
+ addne r4, r8, #0xf4
+ bne _020BA6F0
+ add lr, r8, #0xbc
+ mov r12, r6, lsr #0x5
+ ldr r1, _020BA9D8 ; =UNK_021CEF80
+ ldr r4, [lr, r12, lsl #0x2]
+ mov r0, #0x38
+ and r2, r6, #0x1f
+ mov r3, #0x1
+ orr r2, r4, r3, lsl r2
+ mla r4, r6, r0, r1
+ str r2, [lr, r12, lsl #0x2]
+_020BA6F0:
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ ldr r3, [r8, #0xd8]
+ ldrh r0, [r3, #0xa]
+ add r2, r3, #0x4
+ ldrh r1, [r2, r0]
+ add r0, r2, r0
+ mla r0, r1, r6, r0
+ ldr r0, [r0, #0x4]
+ ldr r1, _020BA9DC ; =UNK_021CED18
+ add r0, r3, r0
+ ldrh r0, [r0, #0x1e]
+ ands r0, r0, #0x20
+ ldrne r0, [r4, #0x0]
+ orrne r0, r0, #0x20
+ strne r0, [r4, #0x0]
+ ldrh r2, [r7, #0x1e]
+ ldr r0, _020BA9E0 ; =UNK_020FF9D0
+ ldr r12, [r1, #0x94]
+ mov r2, r2, asr #0x6
+ and r2, r2, #0x7
+ ldr lr, [r0, r2, lsl #0x2]
+ ldr r2, [r7, #0x4]
+ mvn r3, lr
+ and r3, r12, r3
+ and r2, r2, lr
+ orr r2, r3, r2
+ str r2, [r4, #0x4]
+ ldrh r12, [r7, #0x1e]
+ ldr r3, [r1, #0x98]
+ ldr r2, [r7, #0x8]
+ mov r12, r12, asr #0x9
+ and r12, r12, #0x7
+ ldr r12, [r0, r12, lsl #0x2]
+ mvn r0, r12
+ and r3, r3, r0
+ and r0, r2, r12
+ orr r0, r3, r0
+ str r0, [r4, #0x8]
+ ldr r3, [r7, #0x10]
+ ldr r0, [r7, #0xc]
+ ldr r2, [r1, #0x9c]
+ mvn r1, r3
+ and r1, r2, r1
+ and r0, r0, r3
+ orr r0, r1, r0
+ str r0, [r4, #0xc]
+ ldr r0, [r7, #0x14]
+ str r0, [r4, #0x10]
+ ldrh r0, [r7, #0x1c]
+ str r0, [r4, #0x14]
+ ldrh r1, [r7, #0x1e]
+ ands r0, r1, #0x1
+ beq _020BA850
+ ands r1, r1, #0x2
+ ldrne r1, [r4, #0x0]
+ add r0, r7, #0x2c
+ orrne r1, r1, #0x1
+ strne r1, [r4, #0x0]
+ bne _020BA7F4
+ ldr r1, [r0, #0x0]
+ str r1, [r4, #0x18]
+ ldr r1, [r0, #0x4]
+ add r0, r0, #0x8
+ str r1, [r4, #0x1c]
+_020BA7F4:
+ ldrh r1, [r7, #0x1e]
+ ands r1, r1, #0x4
+ ldrne r1, [r4, #0x0]
+ orrne r1, r1, #0x2
+ strne r1, [r4, #0x0]
+ bne _020BA820
+ ldrsh r1, [r0, #0x0]
+ strh r1, [r4, #0x20]
+ ldrsh r1, [r0, #0x2]
+ add r0, r0, #0x4
+ strh r1, [r4, #0x22]
+_020BA820:
+ ldrh r1, [r7, #0x1e]
+ ands r1, r1, #0x8
+ ldreq r1, [r0, #0x0]
+ streq r1, [r4, #0x24]
+ ldreq r0, [r0, #0x4]
+ streq r0, [r4, #0x28]
+ ldrne r0, [r4, #0x0]
+ orrne r0, r0, #0x4
+ strne r0, [r4, #0x0]
+ ldr r0, [r4, #0x0]
+ orr r0, r0, #0x8
+ str r0, [r4, #0x0]
+_020BA850:
+ ldr r0, [r8, #0x4]
+ ldr r1, [r0, #0x8]
+ cmp r1, #0x0
+ beq _020BA890
+ mov r2, r6, lsr #0x5
+ add r2, r0, r2, lsl #0x2
+ and r3, r6, #0x1f
+ mov r12, #0x1
+ mov r3, r12, lsl r3
+ ldr r2, [r2, #0x3c]
+ ands r2, r3, r2
+ beq _020BA890
+ ldr r3, [r0, #0xc]
+ mov r0, r4
+ mov r2, r6
+ blx r3
+_020BA890:
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x18
+ beq _020BA8BC
+ ldrh r0, [r7, #0x20]
+ strh r0, [r4, #0x2c]
+ ldrh r0, [r7, #0x22]
+ strh r0, [r4, #0x2e]
+ ldr r0, [r7, #0x24]
+ str r0, [r4, #0x30]
+ ldr r0, [r7, #0x28]
+ str r0, [r4, #0x34]
+_020BA8BC:
+ str r4, [r8, #0xb0]
+_020BA8C0:
+ cmp r5, #0x2
+ bne _020BA8FC
+ ldr r1, [r8, #0x8]
+ mov r0, r8
+ bic r1, r1, #0x40
+ str r1, [r8, #0x8]
+ ldr r1, [r8, #0x1c]
+ blx r1
+ ldr r0, [r8, #0x1c]
+ cmp r0, #0x0
+ ldrneb r5, [r8, #0x90]
+ ldr r0, [r8, #0x8]
+ moveq r5, #0x0
+ and r0, r0, #0x40
+ b _020BA900
+_020BA8FC:
+ mov r0, #0x0
+_020BA900:
+ cmp r0, #0x0
+ bne _020BA9AC
+ ldr r4, [r8, #0xb0]
+ ldr r1, [r4, #0xc]
+ ands r0, r1, #0x1f0000
+ beq _020BA9A0
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x20
+ bicne r0, r1, #0x1f0000
+ strne r0, [r4, #0xc]
+ ldr r0, [r8, #0x8]
+ bic r0, r0, #0x2
+ str r0, [r8, #0x8]
+ ldr r0, [r8, #0x8]
+ ands r0, r0, #0x100
+ bne _020BA9AC
+ ldr r0, _020BA9E4 ; =0x00293130
+ ldr r3, _020BA9E8 ; =0x00002B2A
+ str r0, [sp, #0x0]
+ ldr r2, [r4, #0x4]
+ add r1, sp, #0x4
+ str r2, [sp, #0x4]
+ ldr r6, [r4, #0x8]
+ mov r2, #0x6
+ str r6, [sp, #0x8]
+ ldr r6, [r4, #0xc]
+ str r6, [sp, #0xc]
+ str r3, [sp, #0x10]
+ ldr r3, [r4, #0x10]
+ str r3, [sp, #0x14]
+ ldr r3, [r4, #0x14]
+ str r3, [sp, #0x18]
+ bl FUN_020BB1C0
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x18
+ beq _020BA9AC
+ ldr r1, [r8, #0xf0]
+ mov r0, r4
+ blx r1
+ b _020BA9AC
+_020BA9A0:
+ ldr r0, [r8, #0x8]
+ orr r0, r0, #0x2
+ str r0, [r8, #0x8]
+_020BA9AC:
+ cmp r5, #0x3
+ addne sp, sp, #0x20
+ ldmneia sp!, {r4-r8,pc}
+ ldr r1, [r8, #0x8]
+ mov r0, r8
+ bic r1, r1, #0x40
+ str r1, [r8, #0x8]
+ ldr r1, [r8, #0x1c]
+ blx r1
+ add sp, sp, #0x20
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020BA9D8: .word UNK_021CEF80
+_020BA9DC: .word UNK_021CED18
+_020BA9E0: .word UNK_020FF9D0
+_020BA9E4: .word 0x00293130
+_020BA9E8: .word 0x00002B2A
+
+ arm_func_start FUN_020BA9EC
+FUN_020BA9EC: ; 0x020BA9EC
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r1, [r5, #0x8]
+ ands r0, r1, #0x200
+ bne _020BAAAC
+ ands r0, r1, #0x1
+ beq _020BAAAC
+ ldr r0, [r5, #0x18]
+ cmp r0, #0x0
+ ldrneb r4, [r5, #0x8f]
+ moveq r4, #0x0
+ cmp r4, #0x1
+ bne _020BAA58
+ ldr r1, [r5, #0x8]
+ mov r0, r5
+ bic r1, r1, #0x40
+ str r1, [r5, #0x8]
+ ldr r1, [r5, #0x18]
+ blx r1
+ ldr r0, [r5, #0x18]
+ cmp r0, #0x0
+ ldrneb r4, [r5, #0x8f]
+ ldr r0, [r5, #0x8]
+ moveq r4, #0x0
+ and r0, r0, #0x40
+ b _020BAA5C
+_020BAA58:
+ mov r0, #0x0
+_020BAA5C:
+ cmp r0, #0x0
+ bne _020BAA8C
+ ldr r0, [r5, #0x0]
+ ldrb r0, [r0, #0x1]
+ str r0, [sp, #0x0]
+ ldr r0, [r5, #0x8]
+ ands r0, r0, #0x100
+ bne _020BAA8C
+ add r1, sp, #0x0
+ mov r0, #0x14
+ mov r2, #0x1
+ bl FUN_020BB1C0
+_020BAA8C:
+ cmp r4, #0x3
+ bne _020BAAAC
+ ldr r1, [r5, #0x8]
+ mov r0, r5
+ bic r1, r1, #0x40
+ str r1, [r5, #0x8]
+ ldr r1, [r5, #0x18]
+ blx r1
+_020BAAAC:
+ ldr r0, [r5, #0x0]
+ add r0, r0, #0x2
+ str r0, [r5, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020BAAC0
+FUN_020BAAC0: ; 0x020BAAC0
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldr r0, [r6, #0x8]
+ ands r0, r0, #0x200
+ bne _020BAC38
+ ldr r1, [r6, #0x0]
+ add r0, r6, #0x184
+ ldrb r1, [r1, #0x1]
+ strb r1, [r6, #0xac]
+ ldr r1, [r6, #0x8]
+ ldrb r4, [r6, #0xac]
+ orr r1, r1, #0x4
+ str r1, [r6, #0x8]
+ str r0, [r6, #0xb8]
+ ldr r0, [r6, #0x14]
+ cmp r0, #0x0
+ ldrneb r5, [r6, #0x8e]
+ moveq r5, #0x0
+ cmp r5, #0x1
+ bne _020BAB44
+ ldr r1, [r6, #0x8]
+ mov r0, r6
+ bic r1, r1, #0x40
+ str r1, [r6, #0x8]
+ ldr r1, [r6, #0x14]
+ blx r1
+ ldr r0, [r6, #0x14]
+ cmp r0, #0x0
+ ldrneb r5, [r6, #0x8e]
+ ldr r0, [r6, #0x8]
+ moveq r5, #0x0
+ and r0, r0, #0x40
+ b _020BAB48
+_020BAB44:
+ mov r0, #0x0
+_020BAB48:
+ cmp r0, #0x0
+ bne _020BABAC
+ ldr r12, [r6, #0x4]
+ ldr r1, [r12, #0x18]
+ cmp r1, #0x0
+ beq _020BAB98
+ mov r0, r4, lsr #0x5
+ add r0, r12, r0, lsl #0x2
+ and r2, r4, #0x1f
+ mov r3, #0x1
+ mov r2, r3, lsl r2
+ ldr r0, [r0, #0x4c]
+ ands r0, r2, r0
+ beq _020BAB98
+ ldr r0, [r6, #0xb8]
+ ldr r3, [r12, #0x1c]
+ mov r2, r4
+ blx r3
+ cmp r0, #0x0
+ bne _020BABAC
+_020BAB98:
+ ldr r1, [r6, #0x0]
+ ldr r0, [r6, #0xb8]
+ ldrb r1, [r1, #0x2]
+ and r1, r1, #0x1
+ str r1, [r0, #0x0]
+_020BABAC:
+ cmp r5, #0x2
+ bne _020BABE8
+ ldr r1, [r6, #0x8]
+ mov r0, r6
+ bic r1, r1, #0x40
+ str r1, [r6, #0x8]
+ ldr r1, [r6, #0x14]
+ blx r1
+ ldr r0, [r6, #0x14]
+ cmp r0, #0x0
+ ldrneb r5, [r6, #0x8e]
+ ldr r0, [r6, #0x8]
+ moveq r5, #0x0
+ and r0, r0, #0x40
+ b _020BABEC
+_020BABE8:
+ mov r0, #0x0
+_020BABEC:
+ cmp r0, #0x0
+ bne _020BAC18
+ ldr r0, [r6, #0xb8]
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ ldrne r0, [r6, #0x8]
+ orrne r0, r0, #0x1
+ strne r0, [r6, #0x8]
+ ldreq r0, [r6, #0x8]
+ biceq r0, r0, #0x1
+ streq r0, [r6, #0x8]
+_020BAC18:
+ cmp r5, #0x3
+ bne _020BAC38
+ ldr r1, [r6, #0x8]
+ mov r0, r6
+ bic r1, r1, #0x40
+ str r1, [r6, #0x8]
+ ldr r1, [r6, #0x14]
+ blx r1
+_020BAC38:
+ ldr r0, [r6, #0x0]
+ add r0, r0, #0x3
+ str r0, [r6, #0x0]
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BAC48
+FUN_020BAC48: ; 0x020BAC48
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r1, [r4, #0x10]
+ cmp r1, #0x0
+ beq _020BAC60
+ blx r1
+_020BAC60:
+ ldr r0, [r4, #0x8]
+ orr r0, r0, #0x20
+ str r0, [r4, #0x8]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020BAC70
+FUN_020BAC70: ; 0x020BAC70
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ beq _020BAC88
+ blx r1
+_020BAC88:
+ ldr r0, [r4, #0x0]
+ add r0, r0, #0x1
+ str r0, [r4, #0x0]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020BAC98
+FUN_020BAC98: ; 0x020BAC98
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x188
+ mov r4, r0
+ ldr r0, [r4, #0x0]
+ and r0, r0, #0x10
+ cmp r0, #0x10
+ bne _020BAD2C
+ add r1, r4, #0x3c
+ mov r0, #0x0
+ mov r2, #0x8
+ bl MIi_CpuClear32
+ add r1, r4, #0x44
+ mov r0, #0x0
+ mov r2, #0x8
+ bl MIi_CpuClear32
+ add r1, r4, #0x4c
+ mov r0, #0x0
+ mov r2, #0x8
+ bl MIi_CpuClear32
+ ldr r1, [r4, #0x8]
+ cmp r1, #0x0
+ beq _020BACF8
+ add r0, r4, #0x3c
+ bl FUN_020BAD74
+_020BACF8:
+ ldr r1, [r4, #0x10]
+ cmp r1, #0x0
+ beq _020BAD0C
+ add r0, r4, #0x44
+ bl FUN_020BAD74
+_020BAD0C:
+ ldr r1, [r4, #0x18]
+ cmp r1, #0x0
+ beq _020BAD20
+ add r0, r4, #0x4c
+ bl FUN_020BAD74
+_020BAD20:
+ ldr r0, [r4, #0x0]
+ bic r0, r0, #0x10
+ str r0, [r4, #0x0]
+_020BAD2C:
+ ldr r2, _020BAD70 ; =UNK_021CEF7C
+ ldr r0, [r2, #0x0]
+ cmp r0, #0x0
+ beq _020BAD4C
+ mov r1, r4
+ bl FUN_020BADE4
+ add sp, sp, #0x188
+ ldmia sp!, {r4,pc}
+_020BAD4C:
+ add r0, sp, #0x0
+ mov r1, r4
+ str r0, [r2, #0x0]
+ bl FUN_020BADE4
+ ldr r0, _020BAD70 ; =UNK_021CEF7C
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ add sp, sp, #0x188
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020BAD70: .word UNK_021CEF7C
+
+ arm_func_start FUN_020BAD74
+FUN_020BAD74:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+ mov r3, #0x1
+ mov r4, #0x0
+_020BAD90:
+ ldrb r2, [r1, #0x19]
+ mov r5, r4
+ cmp r2, #0x0
+ ble _020BADD0
+_020BADA0:
+ add r2, r1, r5, lsl #0x1
+ ldrh r2, [r2, #0x1a]
+ ands r2, r2, #0x100
+ movne lr, r5, asr #0x5
+ andne r2, r5, #0x1f
+ ldrne r12, [r0, lr, lsl #0x2]
+ add r5, r5, #0x1
+ orrne r2, r12, r3, lsl r2
+ strne r2, [r0, lr, lsl #0x2]
+ ldrb r2, [r1, #0x19]
+ cmp r5, r2
+ blt _020BADA0
+_020BADD0:
+ ldr r1, [r1, #0x10]
+ cmp r1, #0x0
+ bne _020BAD90
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020BADE4
+FUN_020BADE4: ; 0x020BADE4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ mov r1, r5
+ mov r0, #0x0
+ mov r2, #0x188
+ bl MIi_CpuClearFast
+ mov r0, #0x1
+ str r0, [r5, #0xc4]
+ str r0, [r5, #0x8]
+ ldr r0, [r4, #0x30]
+ ldr r2, _020BAF60 ; =UNK_02106614
+ cmp r0, #0x0
+ strne r0, [r5, #0x0]
+ ldreq r1, [r4, #0x4]
+ ldreq r0, [r1, #0x4]
+ addeq r0, r1, r0
+ streq r0, [r5, #0x0]
+ str r4, [r5, #0x4]
+ ldr r0, [r4, #0x4]
+ ldr r1, _020BAF64 ; =UNK_02106608
+ add r0, r0, #0x40
+ str r0, [r5, #0xd4]
+ ldr r12, [r4, #0x4]
+ ldr r0, _020BAF68 ; =UNK_02106620
+ ldr r3, [r12, #0x8]
+ add r3, r12, r3
+ str r3, [r5, #0xd8]
+ ldr r12, [r4, #0x4]
+ ldr r3, [r12, #0xc]
+ add r3, r12, r3
+ str r3, [r5, #0xdc]
+ ldr r3, [r4, #0x4]
+ ldrb r3, [r3, #0x15]
+ ldr r2, [r2, r3, lsl #0x2]
+ str r2, [r5, #0xe8]
+ ldr r2, [r4, #0x4]
+ ldrb r2, [r2, #0x15]
+ ldr r1, [r1, r2, lsl #0x2]
+ str r1, [r5, #0xec]
+ ldr r1, [r4, #0x4]
+ ldrb r1, [r1, #0x16]
+ ldr r0, [r0, r1, lsl #0x2]
+ str r0, [r5, #0xf0]
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0x1c]
+ str r0, [r5, #0xe0]
+ ldr r0, [r4, #0x4]
+ ldr r0, [r0, #0x20]
+ str r0, [r5, #0xe4]
+ ldr r1, [r4, #0x20]
+ cmp r1, #0x0
+ beq _020BAEE0
+ ldrb r0, [r4, #0x24]
+ cmp r0, #0x20
+ bhs _020BAEE0
+ add r0, r5, r0, lsl #0x2
+ str r1, [r0, #0xc]
+ ldrb r0, [r4, #0x24]
+ ldrb r1, [r4, #0x25]
+ add r0, r5, r0
+ strb r1, [r0, #0x8c]
+_020BAEE0:
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x1
+ ldrne r0, [r5, #0x8]
+ orrne r0, r0, #0x80
+ strne r0, [r5, #0x8]
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x2
+ ldrne r0, [r5, #0x8]
+ orrne r0, r0, #0x100
+ strne r0, [r5, #0x8]
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x4
+ ldrne r0, [r5, #0x8]
+ orrne r0, r0, #0x200
+ strne r0, [r5, #0x8]
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x8
+ ldrne r0, [r5, #0x8]
+ orrne r0, r0, #0x400
+ strne r0, [r5, #0x8]
+ ldr r1, [r4, #0x28]
+ cmp r1, #0x0
+ beq _020BAF44
+ mov r0, r5
+ blx r1
+_020BAF44:
+ mov r0, r5
+ bl FUN_020BAF6C
+ ldr r0, [r4, #0x0]
+ bic r0, r0, #0x1
+ str r0, [r4, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020BAF60: .word UNK_02106614
+_020BAF64: .word UNK_02106608
+_020BAF68: .word UNK_02106620
+
+ arm_func_start FUN_020BAF6C
+FUN_020BAF6C:
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r0
+ ldr r6, _020BAFB4 ; =UNK_02106730
+ add r4, r5, #0x8
+_020BAF7C:
+ ldr r1, [r4, #0x0]
+ mov r0, r5
+ bic r1, r1, #0x40
+ str r1, [r4, #0x0]
+ ldr r1, [r5, #0x0]
+ ldrb r3, [r1, #0x0]
+ and r1, r3, #0x1f
+ ldr r2, [r6, r1, lsl #0x2]
+ and r1, r3, #0xe0
+ blx r2
+ ldr r0, [r5, #0x8]
+ ands r0, r0, #0x20
+ beq _020BAF7C
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020BAFB4: .word UNK_02106730
+
+ arm_func_start FUN_020BAFB8
+FUN_020BAFB8: ; 0x020BAFB8
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x6c
+ mov r6, r0
+ ldr r12, [r6, #0x1c]
+ mov r4, r1
+ mov r5, r2
+ mov r7, r3
+ cmp r12, #0x1000
+ beq _020BAFF8
+ add r1, sp, #0x54
+ mov r0, #0x1b
+ mov r2, #0x3
+ str r12, [sp, #0x54]
+ str r12, [sp, #0x58]
+ str r12, [sp, #0x5c]
+ bl FUN_020BB1C0
+_020BAFF8:
+ cmp r7, #0x0
+ beq _020BB150
+ ldr r0, [r6, #0x8]
+ add r3, r6, r0
+ ldrh r0, [r3, #0xa]
+ add r2, r3, #0x4
+ ldrh r1, [r2, r0]
+ add r0, r2, r0
+ mla r0, r1, r4, r0
+ ldr r0, [r0, #0x4]
+ add r4, r3, r0
+ ldr r0, [r4, #0xc]
+ ands r0, r0, #0x1f0000
+ addeq sp, sp, #0x6c
+ ldmeqia sp!, {r4-r7,pc}
+ ldr r0, _020BB1B4 ; =0x00293130
+ str r0, [sp, #0x0]
+ ldr r0, [r4, #0x4]
+ str r0, [sp, #0x4]
+ ldr r0, [r4, #0x8]
+ str r0, [sp, #0x8]
+ ldr r1, [r4, #0xc]
+ str r1, [sp, #0xc]
+ ldrh r0, [r4, #0x1e]
+ ands r0, r0, #0x20
+ bicne r0, r1, #0x1f0000
+ ldr r1, _020BB1B8 ; =0x00002B2A
+ strne r0, [sp, #0xc]
+ str r1, [sp, #0x10]
+ ldr r2, [r4, #0x14]
+ ldr r0, [sp, #0x0]
+ str r2, [sp, #0x14]
+ ldrh r3, [r4, #0x1c]
+ add r1, sp, #0x4
+ mov r2, #0x6
+ str r3, [sp, #0x18]
+ bl FUN_020BB1C0
+ ldrh r0, [r4, #0x1e]
+ ands r0, r0, #0x1
+ beq _020BB150
+ ldrb r12, [r6, #0x16]
+ mov r3, #0x8
+ ldr r1, _020BB1BC ; =UNK_02106620
+ str r3, [sp, #0x1c]
+ ldrh r2, [r4, #0x20]
+ add r0, r4, #0x2c
+ ldr r1, [r1, r12, lsl #0x2]
+ strh r2, [sp, #0x48]
+ ldrh r2, [r4, #0x22]
+ strh r2, [sp, #0x4a]
+ ldr r2, [r4, #0x24]
+ str r2, [sp, #0x4c]
+ ldr r2, [r4, #0x28]
+ str r2, [sp, #0x50]
+ ldrh r2, [r4, #0x1e]
+ ands r2, r2, #0x2
+ orrne r2, r3, #0x1
+ strne r2, [sp, #0x1c]
+ bne _020BB0F8
+ ldr r2, [r0, #0x0]
+ str r2, [sp, #0x34]
+ ldr r2, [r0, #0x4]
+ add r0, r0, #0x8
+ str r2, [sp, #0x38]
+_020BB0F8:
+ ldrh r2, [r4, #0x1e]
+ ands r2, r2, #0x4
+ ldrne r2, [sp, #0x1c]
+ orrne r2, r2, #0x2
+ strne r2, [sp, #0x1c]
+ bne _020BB124
+ ldrsh r2, [r0, #0x0]
+ strh r2, [sp, #0x3c]
+ ldrsh r2, [r0, #0x2]
+ add r0, r0, #0x4
+ strh r2, [sp, #0x3e]
+_020BB124:
+ ldrh r2, [r4, #0x1e]
+ ands r2, r2, #0x8
+ ldreq r2, [r0, #0x0]
+ streq r2, [sp, #0x40]
+ ldreq r0, [r0, #0x4]
+ streq r0, [sp, #0x44]
+ ldrne r0, [sp, #0x1c]
+ orrne r0, r0, #0x4
+ strne r0, [sp, #0x1c]
+ add r0, sp, #0x1c
+ blx r1
+_020BB150:
+ ldr r0, [r6, #0xc]
+ add r2, r6, r0
+ ldrh r0, [r2, #0x6]
+ ldrh r1, [r2, r0]
+ add r0, r2, r0
+ mla r0, r1, r5, r0
+ ldr r0, [r0, #0x4]
+ add r2, r2, r0
+ ldr r0, [r2, #0x8]
+ ldr r1, [r2, #0xc]
+ add r0, r2, r0
+ bl FUN_020BB2B0
+ ldr r3, [r6, #0x20]
+ cmp r3, #0x1000
+ addeq sp, sp, #0x6c
+ ldmeqia sp!, {r4-r7,pc}
+ add r1, sp, #0x60
+ mov r0, #0x1b
+ mov r2, #0x3
+ str r3, [sp, #0x60]
+ str r3, [sp, #0x64]
+ str r3, [sp, #0x68]
+ bl FUN_020BB1C0
+ add sp, sp, #0x6c
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020BB1B4: .word 0x00293130
+_020BB1B8: .word 0x00002B2A
+_020BB1BC: .word UNK_02106620
+
+ arm_func_start FUN_020BB1C0
+FUN_020BB1C0:
+ stmdb sp!, {r4-r6,lr}
+ ldr r3, _020BB2A4 ; =UNK_021D1C80
+ mov r6, r0
+ ldr r12, [r3, #0x0]
+ mov r5, r1
+ mov r4, r2
+ cmp r12, #0x0
+ beq _020BB278
+ ldr r0, _020BB2A8 ; =UNK_021D1C84
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020BB24C
+ ldr r2, [r12, #0x0]
+ add r0, r2, #0x1
+ add r1, r0, r4
+ cmp r1, #0xc0
+ bhi _020BB24C
+ str r0, [r12, #0x0]
+ ldr r0, [r3, #0x0]
+ cmp r4, #0x0
+ add r0, r0, r2, lsl #0x2
+ str r6, [r0, #0x4]
+ ldmeqia sp!, {r4-r6,pc}
+ ldr r2, [r3, #0x0]
+ mov r0, r5
+ ldr r1, [r2], #0x4
+ add r1, r2, r1, lsl #0x2
+ mov r2, r4, lsl #0x2
+ bl MIi_CpuCopyFast
+ ldr r0, _020BB2A4 ; =UNK_021D1C80
+ ldr r1, [r0, #0x0]
+ ldr r0, [r1, #0x0]
+ add r0, r0, r4
+ str r0, [r1, #0x0]
+ ldmia sp!, {r4-r6,pc}
+_020BB24C:
+ ldr r0, [r12, #0x0]
+ cmp r0, #0x0
+ beq _020BB260
+ bl FUN_020BB394
+ b _020BB28C
+_020BB260:
+ ldr r0, _020BB2A8 ; =UNK_021D1C84
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020BB28C
+ bl FUN_020BB37C
+ b _020BB28C
+_020BB278:
+ ldr r0, _020BB2A8 ; =UNK_021D1C84
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020BB28C
+ bl FUN_020BB37C
+_020BB28C:
+ ldr r1, _020BB2AC ; =0x04000400
+ mov r0, r5
+ mov r2, r4, lsl #0x2
+ str r6, [r1, #0x0]
+ bl MIi_CpuSend32
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020BB2A4: .word UNK_021D1C80
+_020BB2A8: .word UNK_021D1C84
+_020BB2AC: .word 0x04000400
+
+ arm_func_start FUN_020BB2B0
+FUN_020BB2B0: ; 0x020BB2B0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ mov r5, r0
+ cmp r4, #0x100
+ blo _020BB2DC
+ ldr r1, _020BB360 ; =GXi_DmaId
+ mvn r0, #0x0
+ ldr r1, [r1, #0x0]
+ cmp r1, r0
+ bne _020BB2F8
+_020BB2DC:
+ mov r2, r4, lsr #0x2
+ ldr r0, [r5, #0x0]
+ add r1, r5, #0x4
+ sub r2, r2, #0x1
+ bl FUN_020BB1C0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+_020BB2F8:
+ bl FUN_020BB394
+ ldr r0, _020BB364 ; =UNK_021D1C88
+ ldr r1, _020BB368 ; =UNK_021D1C84
+ ldr r0, [r0, #0x0]
+ mov r2, #0x1
+ str r2, [r1, #0x0]
+ cmp r0, #0x0
+ beq _020BB33C
+ ldr r0, _020BB360 ; =GXi_DmaId
+ str r1, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ ldr r3, _020BB36C ; =FUN_020BB370
+ mov r1, r5
+ mov r2, r4
+ bl MI_SendGXCommandAsyncFast
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+_020BB33C:
+ ldr r0, _020BB360 ; =GXi_DmaId
+ str r1, [sp, #0x0]
+ ldr r0, [r0, #0x0]
+ ldr r3, _020BB36C ; =FUN_020BB370
+ mov r1, r5
+ mov r2, r4
+ bl MI_SendGXCommandAsync
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020BB360: .word GXi_DmaId
+_020BB364: .word UNK_021D1C88
+_020BB368: .word UNK_021D1C84
+_020BB36C: .word FUN_020BB370
+
+ arm_func_start FUN_020BB370
+FUN_020BB370: ; 0x020BB370
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+
+ arm_func_start FUN_020BB37C
+FUN_020BB37C: ; 0x020BB37C
+ ldr r0, _020BB390 ; =UNK_021D1C84
+_020BB380:
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ bne _020BB380
+ bx lr
+ .balign 4
+_020BB390: .word UNK_021D1C84
+
+ arm_func_start FUN_020BB394
+FUN_020BB394: ; 0x020BB394
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020BB3FC ; =UNK_021D1C84
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020BB3B0
+ bl FUN_020BB37C
+_020BB3B0:
+ ldr r0, _020BB400 ; =UNK_021D1C80
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldr r1, _020BB404 ; =0x04000400
+ add r0, r0, #0x4
+ mov r2, r2, lsl #0x2
+ bl MIi_CpuSend32
+ ldr r0, _020BB400 ; =UNK_021D1C80
+ mov r1, #0x0
+ ldr r0, [r0, #0x0]
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020BB3FC: .word UNK_021D1C84
+_020BB400: .word UNK_021D1C80
+_020BB404: .word 0x04000400
+
+ arm_func_start FUN_020BB408
+FUN_020BB408: ; 0x020BB408
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x1c
+ mov r5, r1
+ mov r4, r2
+ ldr r6, _020BB594 ; =UNK_021CED20
+ ldr r1, _020BB598 ; =UNK_021CED64
+ add r2, sp, #0x10
+ bl MTX_MultVec43
+ ldr r1, [sp, #0x14]
+ ldr r0, [r6, #0x1c]
+ ldr r2, [sp, #0x10]
+ smull r8, r7, r1, r0
+ ldr r0, [r6, #0xc]
+ ldr r3, [sp, #0x18]
+ smlal r8, r7, r2, r0
+ ldr r1, [r6, #0x2c]
+ ldr r0, [r6, #0x3c]
+ smlal r8, r7, r3, r1
+ mov r1, r8, lsr #0xc
+ orr r1, r1, r7, lsl #0x14
+ add r0, r1, r0
+ bl FX_InvAsync
+ ldr r2, [sp, #0x14]
+ ldr r1, [r6, #0x10]
+ ldr r0, [r6, #0x14]
+ smull lr, r8, r2, r1
+ smull r12, r9, r2, r0
+ ldr r1, [sp, #0x10]
+ ldr r3, [r6, #0x0]
+ ldr r0, [sp, #0x18]
+ smlal lr, r8, r1, r3
+ ldr r7, [r6, #0x20]
+ ldr r2, [r6, #0x30]
+ smlal lr, r8, r0, r7
+ mov r3, lr, lsr #0xc
+ orr r3, r3, r8, lsl #0x14
+ add r7, r3, r2
+ ldr r3, [r6, #0x4]
+ ldr r8, [r6, #0x24]
+ smlal r12, r9, r1, r3
+ smlal r12, r9, r0, r8
+ mov r0, r12, lsr #0xc
+ ldr r2, [r6, #0x34]
+ orr r0, r0, r9, lsl #0x14
+ add r6, r0, r2
+ bl FX_GetDivResultFx64c
+ mov r2, r7, asr #0x1f
+ umull r9, lr, r0, r7
+ mla lr, r0, r2, lr
+ mov r3, #0x80000000
+ mla lr, r1, r7, lr
+ adds r9, r9, r3
+ adc r2, lr, #0x0
+ add r2, r2, #0x1000
+ add r2, r2, r2, lsr #0x1f
+ mov r7, r2, asr #0x1
+ umull lr, r2, r0, r6
+ mov r12, r6, asr #0x1f
+ mla r2, r0, r12, r2
+ mla r2, r1, r6, r2
+ adds r3, lr, r3
+ adc r0, r2, #0x0
+ add r0, r0, #0x1000
+ add r0, r0, r0, lsr #0x1f
+ mov r8, #0x0
+ mov r6, r0, asr #0x1
+ cmp r7, #0x0
+ blt _020BB530
+ cmp r6, #0x0
+ blt _020BB530
+ cmp r7, #0x1000
+ bgt _020BB530
+ cmp r6, #0x1000
+ ble _020BB534
+_020BB530:
+ mvn r8, #0x0
+_020BB534:
+ add r0, sp, #0x0
+ add r1, sp, #0x4
+ add r2, sp, #0x8
+ add r3, sp, #0xc
+ bl FUN_020B8200
+ ldr r2, [sp, #0x0]
+ ldr r0, [sp, #0x8]
+ ldr r12, [sp, #0xc]
+ sub r0, r0, r2
+ mul r0, r7, r0
+ add r1, r0, #0x800
+ ldr r3, [sp, #0x4]
+ add r1, r2, r1, asr #0xc
+ sub r0, r12, r3
+ mul r0, r6, r0
+ str r1, [r5, #0x0]
+ ldr r1, [sp, #0x4]
+ add r0, r0, #0x800
+ rsb r1, r1, #0xbf
+ sub r1, r1, r0, asr #0xc
+ mov r0, r8
+ str r1, [r4, #0x0]
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020BB594: .word UNK_021CED20
+_020BB598: .word UNK_021CED64
+
+ arm_func_start FUN_020BB59C
+FUN_020BB59C: ; 0x020BB59C
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r1, [r5, #0x0]
+ ldr r0, _020BB7C8 ; =0x30415642
+ cmp r1, r0
+ bhi _020BB5F4
+ cmp r1, r0
+ bhs _020BB7B0
+ ldr r0, _020BB7CC ; =0x30414D42
+ cmp r1, r0
+ bhi _020BB5E4
+ cmp r1, r0
+ bhs _020BB7B0
+ ldr r0, _020BB7D0 ; =0x30414342
+ cmp r1, r0
+ beq _020BB7B0
+ b _020BB7BC
+_020BB5E4:
+ ldr r0, _020BB7D4 ; =0x30415442
+ cmp r1, r0
+ beq _020BB7B0
+ b _020BB7BC
+_020BB5F4:
+ ldr r0, _020BB7D8 ; =0x30505442
+ cmp r1, r0
+ bhi _020BB618
+ cmp r1, r0
+ bhs _020BB7B0
+ ldr r0, _020BB7DC ; =0x30444D42
+ cmp r1, r0
+ beq _020BB624
+ b _020BB7BC
+_020BB618:
+ ldr r0, _020BB7E0 ; =0x30585442
+ cmp r1, r0
+ bne _020BB7BC
+_020BB624:
+ mov r11, #0x1
+ mov r0, r5
+ mov r9, r11
+ mov r8, r11
+ bl FUN_020BC0FC
+ movs r4, r0
+ beq _020BB77C
+ bl FUN_020B7E1C
+ mov r7, r0
+ mov r0, r4
+ bl FUN_020B7E10
+ mov r6, r0
+ mov r0, r4
+ bl FUN_020B7CE4
+ mov r10, r0
+ cmp r7, #0x0
+ beq _020BB68C
+ ldr r0, _020BB7E4 ; =UNK_021064B8
+ mov r1, #0x0
+ ldr r3, [r0, #0x0]
+ mov r0, r7
+ mov r2, r1
+ blx r3
+ movs r7, r0
+ moveq r11, #0x0
+ b _020BB690
+_020BB68C:
+ mov r7, #0x0
+_020BB690:
+ cmp r6, #0x0
+ beq _020BB6BC
+ ldr r1, _020BB7E4 ; =UNK_021064B8
+ mov r0, r6
+ ldr r3, [r1, #0x0]
+ mov r1, #0x1
+ mov r2, #0x0
+ blx r3
+ movs r6, r0
+ moveq r9, #0x0
+ b _020BB6C0
+_020BB6BC:
+ mov r6, #0x0
+_020BB6C0:
+ cmp r10, #0x0
+ beq _020BB6F0
+ ldr r1, _020BB7E8 ; =UNK_021064C0
+ ldrh r2, [r4, #0x20]
+ ldr r3, [r1, #0x0]
+ mov r0, r10
+ and r1, r2, #0x8000
+ mov r2, #0x0
+ blx r3
+ movs r10, r0
+ moveq r8, #0x0
+ b _020BB6F4
+_020BB6F0:
+ mov r10, #0x0
+_020BB6F4:
+ cmp r11, #0x0
+ beq _020BB70C
+ cmp r9, #0x0
+ beq _020BB70C
+ cmp r8, #0x0
+ bne _020BB748
+_020BB70C:
+ ldr r1, _020BB7EC ; =UNK_021064C4
+ mov r0, r10
+ ldr r1, [r1, #0x0]
+ blx r1
+ ldr r1, _020BB7F0 ; =UNK_021064BC
+ mov r0, r6
+ ldr r1, [r1, #0x0]
+ blx r1
+ ldr r1, _020BB7F0 ; =UNK_021064BC
+ mov r0, r7
+ ldr r1, [r1, #0x0]
+ blx r1
+ add sp, sp, #0x4
+ mov r0, #0x0
+ ldmia sp!, {r4-r11,pc}
+_020BB748:
+ mov r0, r4
+ mov r1, r7
+ mov r2, r6
+ bl FUN_020B7DFC
+ mov r0, r4
+ mov r1, r10
+ bl FUN_020B7CDC
+ mov r0, r4
+ mov r1, #0x1
+ bl FUN_020B7D28
+ mov r0, r4
+ mov r1, #0x1
+ bl FUN_020B7C78
+_020BB77C:
+ ldr r1, [r5, #0x0]
+ ldr r0, _020BB7DC ; =0x30444D42
+ cmp r1, r0
+ bne _020BB7A4
+ mov r0, r5
+ bl FUN_020BC13C
+ cmp r4, #0x0
+ beq _020BB7A4
+ mov r1, r4
+ bl FUN_020B7790
+_020BB7A4:
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,pc}
+_020BB7B0:
+ add sp, sp, #0x4
+ mov r0, #0x1
+ ldmia sp!, {r4-r11,pc}
+_020BB7BC:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020BB7C8: .word 0x30415642
+_020BB7CC: .word 0x30414D42
+_020BB7D0: .word 0x30414342
+_020BB7D4: .word 0x30415442
+_020BB7D8: .word 0x30505442
+_020BB7DC: .word 0x30444D42
+_020BB7E0: .word 0x30585442
+_020BB7E4: .word UNK_021064B8
+_020BB7E8: .word UNK_021064C0
+_020BB7EC: .word UNK_021064C4
+_020BB7F0: .word UNK_021064BC
+
+ arm_func_start FUN_020BB7F4
+FUN_020BB7F4: ; 0x020BB7F4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl G3X_Init
+ bl FUN_020B84D8
+ ldr r1, _020BB820 ; =0x04000600
+ ldr r0, [r1, #0x0]
+ bic r0, r0, #0xc0000000
+ orr r0, r0, #0x80000000
+ str r0, [r1, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020BB820: .word 0x04000600
+
+ arm_func_start FUN_020BB824
+FUN_020BB824: ; 0x020BB824
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x40
+ mov r6, r0
+ mov r5, r1
+ bl FUN_020BB394
+ ldr r0, _020BB8B4 ; =0x04000440
+ mov r2, #0x0
+ ldr r1, _020BB8B8 ; =0x04000444
+ str r2, [r0, #0x0]
+ ldr r0, _020BB8BC ; =0x04000454
+ str r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ cmp r6, #0x0
+ beq _020BB87C
+ add r4, sp, #0x0
+_020BB860:
+ mov r0, r4
+ bl G3X_GetClipMtx
+ cmp r0, #0x0
+ bne _020BB860
+ add r0, sp, #0x0
+ mov r1, r6
+ bl MTX_Copy44To43_
+_020BB87C:
+ cmp r5, #0x0
+ beq _020BB894
+_020BB884:
+ mov r0, r5
+ bl G3X_GetVectorMtx
+ cmp r0, #0x0
+ bne _020BB884
+_020BB894:
+ ldr r1, _020BB8C0 ; =0x04000448
+ mov r2, #0x1
+ ldr r0, _020BB8B4 ; =0x04000440
+ str r2, [r1, #0x0]
+ mov r1, #0x2
+ str r1, [r0, #0x0]
+ add sp, sp, #0x40
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020BB8B4: .word 0x04000440
+_020BB8B8: .word 0x04000444
+_020BB8BC: .word 0x04000454
+_020BB8C0: .word 0x04000448
+
+ arm_func_start thunk_FUN_020ae84c
+thunk_FUN_020ae84c: ; 0x020BB8C4
+ ldr ip, _020BB8CC ; =FUN_020AE84C
+ bx r12
+ .balign 4
+_020BB8CC: .word FUN_020AE84C
+
+ arm_func_start FUN_020BB8D0
+FUN_020BB8D0: ; 0x020BB8D0
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r0, r1
+ mov r1, r2
+ bl FUN_020B81B0
+ mov r1, r0
+ mov r0, r4
+ bl FUN_020AE868
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020BB8F4
+FUN_020BB8F4: ; 0x020BB8F4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BB910:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBC74
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BB910
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BB934
+FUN_020BB934: ; 0x020BB934
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BB950:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBCB8
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BB950
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BB974
+FUN_020BB974: ; 0x020BB974
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BB990:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBCFC
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BB990
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BB9B4
+FUN_020BB9B4: ; 0x020BB9B4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BB9D0:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBD40
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BB9D0
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BB9F4
+FUN_020BB9F4: ; 0x020BB9F4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BBA10:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBD84
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BBA10
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BBA34
+FUN_020BBA34: ; 0x020BBA34
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BBA50:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBDC8
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BBA50
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BBA74
+FUN_020BBA74: ; 0x020BBA74
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BBA90:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBE0C
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BBA90
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BBAB4
+FUN_020BBAB4: ; 0x020BBAB4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BBAD0:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBE50
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BBAD0
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BBAF4
+FUN_020BBAF4: ; 0x020BBAF4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BBB10:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBE94
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BBB10
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BBB34
+FUN_020BBB34: ; 0x020BBB34
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BBB50:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBED8
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BBB50
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BBB74
+FUN_020BBB74: ; 0x020BBB74
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BBB90:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBF1C
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BBB90
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BBBB4
+FUN_020BBBB4: ; 0x020BBBB4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BBBD0:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBF60
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BBBD0
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BBBF4
+FUN_020BBBF4: ; 0x020BBBF4
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BBC10:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBFA4
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BBC10
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BBC34
+FUN_020BBC34: ; 0x020BBC34
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldrb r0, [r6, #0x18]
+ mov r5, r1
+ mov r4, #0x0
+ cmp r0, #0x0
+ ldmlsia sp!, {r4-r6,pc}
+_020BBC50:
+ mov r0, r6
+ mov r1, r4
+ mov r2, r5
+ bl FUN_020BBFE8
+ ldrb r0, [r6, #0x18]
+ add r4, r4, #0x1
+ cmp r4, r0
+ blo _020BBC50
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BBC74
+FUN_020BBC74: ; 0x020BBC74
+ ldr r3, [r0, #0x8]
+ cmp r2, #0x0
+ add r12, r0, r3
+ ldrh r0, [r12, #0xa]
+ add r3, r12, #0x4
+ ldrh r2, [r3, r0]
+ add r0, r3, r0
+ mla r0, r2, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, r12, r0
+ ldrne r0, [r1, #0xc]
+ orrne r0, r0, #0x800
+ strne r0, [r1, #0xc]
+ ldreq r0, [r1, #0xc]
+ biceq r0, r0, #0x800
+ streq r0, [r1, #0xc]
+ bx lr
+
+ arm_func_start FUN_020BBCB8
+FUN_020BBCB8: ; 0x020BBCB8
+ ldr r3, [r0, #0x8]
+ cmp r2, #0x0
+ add r12, r0, r3
+ ldrh r0, [r12, #0xa]
+ add r3, r12, #0x4
+ ldrh r2, [r3, r0]
+ add r0, r3, r0
+ mla r0, r2, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, r12, r0
+ ldrne r0, [r1, #0xc]
+ orrne r0, r0, #0x1000
+ strne r0, [r1, #0xc]
+ ldreq r0, [r1, #0xc]
+ biceq r0, r0, #0x1000
+ streq r0, [r1, #0xc]
+ bx lr
+
+ arm_func_start FUN_020BBCFC
+FUN_020BBCFC: ; 0x020BBCFC
+ ldr r3, [r0, #0x8]
+ cmp r2, #0x0
+ add r12, r0, r3
+ ldrh r0, [r12, #0xa]
+ add r3, r12, #0x4
+ ldrh r2, [r3, r0]
+ add r0, r3, r0
+ mla r0, r2, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, r12, r0
+ ldrne r0, [r1, #0xc]
+ orrne r0, r0, #0x2000
+ strne r0, [r1, #0xc]
+ ldreq r0, [r1, #0xc]
+ biceq r0, r0, #0x2000
+ streq r0, [r1, #0xc]
+ bx lr
+
+ arm_func_start FUN_020BBD40
+FUN_020BBD40: ; 0x020BBD40
+ ldr r3, [r0, #0x8]
+ cmp r2, #0x0
+ add r12, r0, r3
+ ldrh r0, [r12, #0xa]
+ add r3, r12, #0x4
+ ldrh r2, [r3, r0]
+ add r0, r3, r0
+ mla r0, r2, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, r12, r0
+ ldrne r0, [r1, #0xc]
+ orrne r0, r0, #0x4000
+ strne r0, [r1, #0xc]
+ ldreq r0, [r1, #0xc]
+ biceq r0, r0, #0x4000
+ streq r0, [r1, #0xc]
+ bx lr
+
+ arm_func_start FUN_020BBD84
+FUN_020BBD84: ; 0x020BBD84
+ ldr r3, [r0, #0x8]
+ cmp r2, #0x0
+ add r12, r0, r3
+ ldrh r0, [r12, #0xa]
+ add r3, r12, #0x4
+ ldrh r2, [r3, r0]
+ add r0, r3, r0
+ mla r0, r2, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, r12, r0
+ ldrne r0, [r1, #0xc]
+ orrne r0, r0, #0x8000
+ strne r0, [r1, #0xc]
+ ldreq r0, [r1, #0xc]
+ biceq r0, r0, #0x8000
+ streq r0, [r1, #0xc]
+ bx lr
+
+ arm_func_start FUN_020BBDC8
+FUN_020BBDC8: ; 0x020BBDC8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, [r0, #0x8]
+ add lr, r0, r3
+ ldrh r0, [lr, #0xa]
+ add r12, lr, #0x4
+ ldrh r3, [r12, r0]
+ add r0, r12, r0
+ mla r0, r3, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, lr, r0
+ ldr r0, [r1, #0xc]
+ bic r0, r0, #0x1f0000
+ orr r0, r0, r2, lsl #0x10
+ str r0, [r1, #0xc]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020BBE0C
+FUN_020BBE0C: ; 0x020BBE0C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, [r0, #0x8]
+ add lr, r0, r3
+ ldrh r0, [lr, #0xa]
+ add r12, lr, #0x4
+ ldrh r3, [r12, r0]
+ add r0, r12, r0
+ mla r0, r3, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, lr, r0
+ ldr r0, [r1, #0xc]
+ bic r0, r0, #0x3f000000
+ orr r0, r0, r2, lsl #0x18
+ str r0, [r1, #0xc]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020BBE50
+FUN_020BBE50: ; 0x020BBE50
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, [r0, #0x8]
+ add lr, r0, r3
+ ldrh r0, [lr, #0xa]
+ add r12, lr, #0x4
+ ldrh r3, [r12, r0]
+ add r0, r12, r0
+ mla r0, r3, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, lr, r0
+ ldr r0, [r1, #0xc]
+ bic r0, r0, #0xc0
+ orr r0, r0, r2, lsl #0x6
+ str r0, [r1, #0xc]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020BBE94
+FUN_020BBE94: ; 0x020BBE94
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, [r0, #0x8]
+ add lr, r0, r3
+ ldrh r0, [lr, #0xa]
+ add r12, lr, #0x4
+ ldrh r3, [r12, r0]
+ add r0, r12, r0
+ mla r0, r3, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, lr, r0
+ ldr r0, [r1, #0xc]
+ bic r0, r0, #0x30
+ orr r0, r0, r2, lsl #0x4
+ str r0, [r1, #0xc]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020BBED8
+FUN_020BBED8: ; 0x020BBED8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, [r0, #0x8]
+ add lr, r0, r3
+ ldrh r0, [lr, #0xa]
+ add r12, lr, #0x4
+ ldrh r3, [r12, r0]
+ add r0, r12, r0
+ mla r0, r3, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, lr, r0
+ ldr r0, [r1, #0xc]
+ bic r0, r0, #0xf
+ orr r0, r0, r2
+ str r0, [r1, #0xc]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020BBF1C
+FUN_020BBF1C: ; 0x020BBF1C
+ stmdb sp!, {r4,lr}
+ ldr r12, [r0, #0x8]
+ ldr r3, _020BBF5C ; =0x8000FFFF
+ add r4, r0, r12
+ ldrh r0, [r4, #0xa]
+ add lr, r4, #0x4
+ ldrh r12, [lr, r0]
+ add r0, lr, r0
+ mla r0, r12, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, r4, r0
+ ldr r0, [r1, #0x8]
+ and r0, r0, r3
+ orr r0, r0, r2, lsl #0x10
+ str r0, [r1, #0x8]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020BBF5C: .word 0x8000FFFF
+
+ arm_func_start FUN_020BBF60
+FUN_020BBF60: ; 0x020BBF60
+ stmdb sp!, {r4,lr}
+ ldr r12, [r0, #0x8]
+ mov r3, #0x8000
+ add r4, r0, r12
+ ldrh r12, [r4, #0xa]
+ add lr, r4, #0x4
+ rsb r0, r3, #0x0
+ ldrh r3, [lr, r12]
+ add r12, lr, r12
+ mla r1, r3, r1, r12
+ ldr r1, [r1, #0x4]
+ add r3, r4, r1
+ ldr r1, [r3, #0x8]
+ and r0, r1, r0
+ orr r0, r0, r2
+ str r0, [r3, #0x8]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020BBFA4
+FUN_020BBFA4: ; 0x020BBFA4
+ stmdb sp!, {r4,lr}
+ ldr r12, [r0, #0x8]
+ ldr r3, _020BBFE4 ; =0x8000FFFF
+ add r4, r0, r12
+ ldrh r0, [r4, #0xa]
+ add lr, r4, #0x4
+ ldrh r12, [lr, r0]
+ add r0, lr, r0
+ mla r0, r12, r1, r0
+ ldr r0, [r0, #0x4]
+ add r1, r4, r0
+ ldr r0, [r1, #0x4]
+ and r0, r0, r3
+ orr r0, r0, r2, lsl #0x10
+ str r0, [r1, #0x4]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020BBFE4: .word 0x8000FFFF
+
+ arm_func_start FUN_020BBFE8
+FUN_020BBFE8: ; 0x020BBFE8
+ stmdb sp!, {r4,lr}
+ ldr r12, [r0, #0x8]
+ mov r3, #0x8000
+ add r4, r0, r12
+ ldrh r12, [r4, #0xa]
+ add lr, r4, #0x4
+ rsb r0, r3, #0x0
+ ldrh r3, [lr, r12]
+ add r12, lr, r12
+ mla r1, r3, r1, r12
+ ldr r1, [r1, #0x4]
+ add r3, r4, r1
+ ldr r1, [r3, #0x4]
+ and r0, r1, r0
+ orr r0, r0, r2
+ str r0, [r3, #0x4]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020BC02C
+FUN_020BC02C: ; 0x020BC02C
+ stmdb sp!, {r4-r6,lr}
+ ldrb r4, [r0, #0x18]
+ ldr r3, [r0, #0x8]
+ mov lr, #0x0
+ cmp r4, #0x0
+ add r12, r0, r3
+ ldmlsia sp!, {r4-r6,pc}
+ mvn r3, r2
+ add r0, r12, #0x4
+_020BC050:
+ ldrh r5, [r12, #0xa]
+ cmp r1, #0x0
+ ldrh r6, [r0, r5]
+ add r5, r0, r5
+ mla r5, r6, lr, r5
+ ldr r5, [r5, #0x4]
+ add lr, lr, #0x1
+ add r6, r12, r5
+ ldrne r5, [r6, #0x10]
+ orrne r5, r5, r2
+ strne r5, [r6, #0x10]
+ ldreq r5, [r6, #0x10]
+ andeq r5, r5, r3
+ streq r5, [r6, #0x10]
+ cmp lr, r4
+ blo _020BC050
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BC094
+FUN_020BC094: ; 0x020BC094
+ stmdb sp!, {r4-r6,lr}
+ ldrb r4, [r0, #0x18]
+ ldr r3, [r0, #0x8]
+ mov lr, #0x0
+ cmp r4, #0x0
+ add r12, r0, r3
+ ldmlsia sp!, {r4-r6,pc}
+ mvn r3, r2
+ add r0, r12, #0x4
+_020BC0B8:
+ ldrh r5, [r12, #0xa]
+ cmp r1, #0x0
+ ldrh r6, [r0, r5]
+ add r5, r0, r5
+ mla r5, r6, lr, r5
+ ldr r5, [r5, #0x4]
+ add lr, lr, #0x1
+ add r6, r12, r5
+ ldrneh r5, [r6, #0x1e]
+ orrne r5, r5, r2
+ strneh r5, [r6, #0x1e]
+ ldreqh r5, [r6, #0x1e]
+ andeq r5, r5, r3
+ streqh r5, [r6, #0x1e]
+ cmp lr, r4
+ blo _020BC0B8
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BC0FC
+FUN_020BC0FC: ; 0x020BC0FC
+ ldrh r2, [r0, #0xc]
+ ldrh r1, [r0, #0xe]
+ add r3, r0, r2
+ cmp r1, #0x1
+ bne _020BC12C
+ ldr r2, [r0, #0x0]
+ ldr r1, _020BC138 ; =0x30585442
+ cmp r2, r1
+ ldreq r1, [r3, #0x0]
+ addeq r0, r0, r1
+ movne r0, #0x0
+ bx lr
+_020BC12C:
+ ldr r1, [r3, #0x4]
+ add r0, r0, r1
+ bx lr
+ .balign 4
+_020BC138: .word 0x30585442
+
+ arm_func_start FUN_020BC13C
+FUN_020BC13C:
+ ldrh r1, [r0, #0xc]
+ ldr r1, [r0, r1]
+ add r0, r0, r1
+ bx lr
+
+ arm_func_start FUN_020BC14C
+FUN_020BC14C:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldrb r2, [r0, #0x1]
+ cmp r2, #0x10
+ bhs _020BC1E4
+ cmp r2, #0x0
+ ldr lr, [r1, #0x0]
+ ldr r12, [r1, #0x4]
+ ldr r3, [r1, #0x8]
+ ldr r2, [r1, #0xc]
+ mov r4, #0x0
+ bls _020BC294
+ ldrh r5, [r0, #0x6]
+ mov r1, r4
+ add r6, r0, r5
+ ldrh r5, [r6, #0x2]
+ add r6, r6, r5
+_020BC190:
+ ldr r5, [r6, r1]
+ add r7, r6, r1
+ cmp r5, lr
+ bne _020BC1CC
+ ldr r5, [r7, #0x4]
+ cmp r5, r12
+ bne _020BC1CC
+ ldr r5, [r7, #0x8]
+ cmp r5, r3
+ bne _020BC1CC
+ ldr r5, [r7, #0xc]
+ cmp r5, r2
+ addeq sp, sp, #0x4
+ moveq r0, r4
+ ldmeqia sp!, {r4-r7,pc}
+_020BC1CC:
+ ldrb r5, [r0, #0x1]
+ add r4, r4, #0x1
+ add r1, r1, #0x10
+ cmp r4, r5
+ blo _020BC190
+ b _020BC294
+_020BC1E4:
+ add r3, r0, #0x8
+ ldrb r2, [r3, #0x1]
+ cmp r2, #0x0
+ beq _020BC294
+ ldrb r5, [r3, r2, lsl #0x2]
+ ldrb r4, [r3, #0x0]
+ add r2, r3, r2, lsl #0x2
+ cmp r4, r5
+ bls _020BC238
+_020BC208:
+ mov r4, r5, asr #0x5
+ ldr r12, [r1, r4, lsl #0x2]
+ and r4, r5, #0x1f
+ mov r4, r12, lsr r4
+ and r4, r4, #0x1
+ add r4, r2, r4
+ ldrb r12, [r4, #0x1]
+ ldrb r4, [r2, #0x0]
+ ldrb r5, [r3, r12, lsl #0x2]
+ add r2, r3, r12, lsl #0x2
+ cmp r4, r5
+ bhi _020BC208
+_020BC238:
+ ldrh r4, [r0, #0x6]
+ ldr r3, [r1, #0x0]
+ add r12, r0, r4
+ ldrh r4, [r12, #0x2]
+ ldrb r0, [r2, #0x3]
+ add r4, r12, r4
+ ldr r2, [r4, r0, lsl #0x4]
+ add r4, r4, r0, lsl #0x4
+ cmp r2, r3
+ bne _020BC294
+ ldr r3, [r4, #0x4]
+ ldr r2, [r1, #0x4]
+ cmp r3, r2
+ bne _020BC294
+ ldr r3, [r4, #0x8]
+ ldr r2, [r1, #0x8]
+ cmp r3, r2
+ bne _020BC294
+ ldr r2, [r4, #0xc]
+ ldr r1, [r1, #0xc]
+ cmp r2, r1
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,pc}
+_020BC294:
+ mvn r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020BC2A0
+FUN_020BC2A0: ; 0x020BC2A0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldrb r2, [r0, #0x1]
+ cmp r2, #0x10
+ bhs _020BC34C
+ cmp r2, #0x0
+ ldr lr, [r1, #0x0]
+ ldr r12, [r1, #0x4]
+ ldr r3, [r1, #0x8]
+ ldr r2, [r1, #0xc]
+ mov r4, #0x0
+ bls _020BC404
+ ldrh r5, [r0, #0x6]
+ mov r1, r4
+ add r6, r0, r5
+ ldrh r5, [r6, #0x2]
+ add r6, r6, r5
+_020BC2E4:
+ ldr r5, [r6, r1]
+ add r7, r6, r1
+ cmp r5, lr
+ bne _020BC334
+ ldr r5, [r7, #0x4]
+ cmp r5, r12
+ bne _020BC334
+ ldr r5, [r7, #0x8]
+ cmp r5, r3
+ bne _020BC334
+ ldr r5, [r7, #0xc]
+ cmp r5, r2
+ bne _020BC334
+ ldrh r2, [r0, #0x6]
+ add sp, sp, #0x4
+ ldrh r1, [r0, r2]
+ add r0, r0, r2
+ add r0, r0, #0x4
+ mla r0, r1, r4, r0
+ ldmia sp!, {r4-r7,pc}
+_020BC334:
+ ldrb r5, [r0, #0x1]
+ add r4, r4, #0x1
+ add r1, r1, #0x10
+ cmp r4, r5
+ blo _020BC2E4
+ b _020BC404
+_020BC34C:
+ add r3, r0, #0x8
+ ldrb r2, [r3, #0x1]
+ cmp r2, #0x0
+ beq _020BC404
+ ldrb r5, [r3, r2, lsl #0x2]
+ ldrb r4, [r3, #0x0]
+ add r2, r3, r2, lsl #0x2
+ cmp r4, r5
+ bls _020BC3A0
+_020BC370:
+ mov r4, r5, asr #0x5
+ ldr r12, [r1, r4, lsl #0x2]
+ and r4, r5, #0x1f
+ mov r4, r12, lsr r4
+ and r4, r4, #0x1
+ add r4, r2, r4
+ ldrb r12, [r4, #0x1]
+ ldrb r4, [r2, #0x0]
+ ldrb r5, [r3, r12, lsl #0x2]
+ add r2, r3, r12, lsl #0x2
+ cmp r4, r5
+ bhi _020BC370
+_020BC3A0:
+ ldrh r4, [r0, #0x6]
+ ldrb r2, [r2, #0x3]
+ ldr r3, [r1, #0x0]
+ add r0, r0, r4
+ ldrh r4, [r0, #0x2]
+ add r12, r0, r4
+ ldr r4, [r12, r2, lsl #0x4]
+ add r12, r12, r2, lsl #0x4
+ cmp r4, r3
+ bne _020BC404
+ ldr r4, [r12, #0x4]
+ ldr r3, [r1, #0x4]
+ cmp r4, r3
+ bne _020BC404
+ ldr r4, [r12, #0x8]
+ ldr r3, [r1, #0x8]
+ cmp r4, r3
+ bne _020BC404
+ ldr r3, [r12, #0xc]
+ ldr r1, [r1, #0xc]
+ cmp r3, r1
+ ldreqh r1, [r0], #0x4
+ addeq sp, sp, #0x4
+ mlaeq r0, r1, r2, r0
+ ldmeqia sp!, {r4-r7,pc}
+_020BC404:
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020BC410
+FUN_020BC410: ; 0x020BC410
+ ldrh r3, [r0, #0x12]
+ add r0, r0, #0xc
+ ldrh r2, [r0, r3]
+ add r0, r0, r3
+ add r0, r0, #0x4
+ mla r0, r2, r1, r0
+ bx lr
+
+ arm_func_start FUN_020BC42C
+FUN_020BC42C: ; 0x020BC42C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r2
+ bl FUN_020BC410
+ ldrsh r1, [r0, #0x4]
+ ldrh r3, [r0, #0x6]
+ mul r2, r1, r4
+ add r3, r5, r3
+ mov r2, r2, lsr #0xc
+ b _020BC45C
+_020BC458:
+ sub r2, r2, #0x1
+_020BC45C:
+ cmp r2, #0x0
+ beq _020BC474
+ mov r1, r2, lsl #0x2
+ ldrh r1, [r3, r1]
+ cmp r1, r4
+ bhs _020BC458
+_020BC474:
+ ldrh r1, [r0, #0x0]
+ b _020BC480
+_020BC47C:
+ add r2, r2, #0x1
+_020BC480:
+ add r0, r2, #0x1
+ cmp r0, r1
+ bhs _020BC49C
+ add r0, r3, r2, lsl #0x2
+ ldrh r0, [r0, #0x4]
+ cmp r0, r4
+ bls _020BC47C
+_020BC49C:
+ add r0, r3, r2, lsl #0x2
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020BC4A8
+FUN_020BC4A8: ; 0x020BC4A8
+ ldrh r2, [r0, #0xa]
+ add r0, r0, r2
+ add r0, r0, r1, lsl #0x4
+ bx lr
+
+ arm_func_start FUN_020BC4B8
+FUN_020BC4B8: ; 0x020BC4B8
+ ldrh r2, [r0, #0x8]
+ add r0, r0, r2
+ add r0, r0, r1, lsl #0x4
+ bx lr
+
+ arm_func_start FUN_020BC4C8
+FUN_020BC4C8: ; 0x020BC4C8
+ ldrh r2, [r0, #0xc]
+ ldr r2, [r0, r2]
+ add r12, r0, r2
+ ldrh r2, [r12, #0xe]
+ add r3, r12, #0x8
+ ldrh r0, [r3, r2]
+ add r2, r3, r2
+ add r2, r2, #0x4
+ mul r1, r0, r1
+ adds r0, r2, r1
+ ldrne r0, [r0, #0x0]
+ addne r0, r12, r0
+ moveq r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020BC500
+FUN_020BC500:
+ stmdb sp!, {r4,lr}
+ ands r4, r3, #0x8000
+ beq _020BC5E0
+ mov r2, #0x0
+ str r2, [r0, #0x20]
+ ldr r4, [r0, #0x20]
+ ldr r2, _020BC684 ; =0x00007FFF
+ str r4, [r0, #0x1c]
+ ldr r4, [r0, #0x1c]
+ and r3, r3, r2
+ str r4, [r0, #0x18]
+ ldr r4, [r0, #0x18]
+ mov r2, #0x3
+ str r4, [r0, #0x14]
+ ldr r4, [r0, #0x14]
+ mul r2, r3, r2
+ str r4, [r0, #0x10]
+ ldr r4, [r0, #0x10]
+ mov r3, r2, lsl #0x1
+ str r4, [r0, #0xc]
+ ldr r4, [r0, #0xc]
+ add r2, r1, r2, lsl #0x1
+ str r4, [r0, #0x8]
+ ldr r4, [r0, #0x8]
+ str r4, [r0, #0x4]
+ ldr r4, [r0, #0x4]
+ str r4, [r0, #0x0]
+ ldrsh r4, [r1, r3]
+ ldrsh r12, [r2, #0x2]
+ ldrsh r3, [r2, #0x4]
+ and r1, r4, #0xf
+ ands r4, r4, #0x10
+ movne lr, #0x1000
+ rsbne lr, lr, #0x0
+ moveq lr, #0x1000
+ str lr, [r0, r1, lsl #0x2]
+ ldr r4, _020BC688 ; =UNK_020FFA14
+ ldr lr, _020BC68C ; =UNK_020FFA15
+ ldrb r4, [r4, r1, lsl #0x2]
+ str r12, [r0, r4, lsl #0x2]
+ ldrb lr, [lr, r1, lsl #0x2]
+ str r3, [r0, lr, lsl #0x2]
+ ldrsh lr, [r2, #0x0]
+ ands lr, lr, #0x20
+ ldr lr, _020BC690 ; =UNK_020FFA16
+ rsbne r3, r3, #0x0
+ ldrb lr, [lr, r1, lsl #0x2]
+ str r3, [r0, lr, lsl #0x2]
+ ldrsh r2, [r2, #0x0]
+ ands r2, r2, #0x40
+ ldr r2, _020BC694 ; =UNK_020FFA17
+ rsbne r12, r12, #0x0
+ ldrb r1, [r2, r1, lsl #0x2]
+ str r12, [r0, r1, lsl #0x2]
+ mov r0, #0x0
+ ldmia sp!, {r4,pc}
+_020BC5E0:
+ ldr r1, _020BC684 ; =0x00007FFF
+ mov r12, #0x5
+ and r1, r3, r1
+ mul r3, r1, r12
+ add r1, r2, r3, lsl #0x1
+ ldrsh lr, [r1, #0x8]
+ mov r12, r3, lsl #0x1
+ mov r3, lr, asr #0x3
+ str r3, [r0, #0x10]
+ ldrsh r12, [r2, r12]
+ and r2, lr, #0x7
+ mov r2, r2, lsl #0x10
+ mov r3, r12, asr #0x3
+ str r3, [r0, #0x0]
+ ldrsh r3, [r1, #0x2]
+ and r12, r12, #0x7
+ orr lr, r12, r2, asr #0xd
+ mov r2, r3, asr #0x3
+ str r2, [r0, #0x4]
+ ldrsh r12, [r1, #0x4]
+ mov r2, lr, lsl #0x10
+ and lr, r3, #0x7
+ mov r3, r12, asr #0x3
+ str r3, [r0, #0x8]
+ ldrsh r3, [r1, #0x6]
+ orr r1, lr, r2, asr #0xd
+ mov r1, r1, lsl #0x10
+ and r2, r12, #0x7
+ orr r1, r2, r1, asr #0xd
+ mov r1, r1, lsl #0x10
+ and r2, r3, #0x7
+ orr r1, r2, r1, asr #0xd
+ mov r1, r1, lsl #0x10
+ mov r1, r1, asr #0x10
+ mov r2, r3, asr #0x3
+ mov r1, r1, lsl #0x13
+ str r2, [r0, #0xc]
+ mov r1, r1, asr #0x13
+ str r1, [r0, #0x14]
+ mov r0, #0x1
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020BC684: .word 0x00007FFF
+_020BC688: .word UNK_020FFA14
+_020BC68C: .word UNK_020FFA15
+_020BC690: .word UNK_020FFA16
+_020BC694: .word UNK_020FFA17
+
+ arm_func_start FUN_020BC698
+FUN_020BC698: ; 0x020BC698
+ stmdb sp!, {r4-r10,lr}
+ sub sp, sp, #0x48
+ ldrh r4, [r3, #0x4]
+ ldr r5, [r3, #0xc]
+ ldr r8, [r3, #0x10]
+ ldr r7, [r2, #0x4]
+ mov r12, r1, asr #0xc
+ sub r4, r4, #0x1
+ mov r6, r0
+ cmp r12, r4
+ add r5, r3, r5
+ add r4, r3, r8
+ add r8, r3, r7
+ ldr r7, [r2, #0x0]
+ bne _020BC780
+ ands r0, r7, #0xc0000000
+ beq _020BC6F0
+ ands r0, r7, #0x40000000
+ andne r0, r12, #0x1
+ addne r12, r0, r12, lsr #0x1
+ andeq r0, r12, #0x3
+ addeq r12, r0, r12, lsr #0x2
+_020BC6F0:
+ ldr r0, [r3, #0x8]
+ ands r0, r0, #0x2
+ movne r7, #0x0
+ bne _020BC7F4
+ mov r0, r12, lsl #0x1
+ ldrh r3, [r8, r0]
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl FUN_020BC500
+ cmp r0, #0x0
+ addeq sp, sp, #0x48
+ ldmeqia sp!, {r4-r10,pc}
+ ldr r9, [r6, #0x14]
+ ldr r5, [r6, #0x4]
+ ldr r4, [r6, #0x10]
+ ldr r2, [r6, #0x8]
+ mul r1, r5, r9
+ mul r0, r2, r4
+ sub r0, r1, r0
+ ldr r7, [r6, #0xc]
+ ldr r8, [r6, #0x0]
+ mov r3, r0, asr #0xc
+ mul r1, r2, r7
+ mul r0, r8, r9
+ sub r2, r1, r0
+ mul r1, r8, r4
+ mul r0, r5, r7
+ sub r0, r1, r0
+ str r3, [r6, #0x18]
+ mov r1, r2, asr #0xc
+ str r1, [r6, #0x1c]
+ mov r0, r0, asr #0xc
+ add sp, sp, #0x48
+ str r0, [r6, #0x20]
+ ldmia sp!, {r4-r10,pc}
+_020BC780:
+ ands r0, r7, #0xc0000000
+ beq _020BC7F0
+ ldr r0, _020BC9C4 ; =0x1FFF0000
+ ands r2, r7, #0x40000000
+ and r0, r7, r0
+ mov r0, r0, lsr #0x10
+ beq _020BC7C4
+ cmp r12, r0
+ movcs r12, r0, lsr #0x1
+ addcs r7, r12, #0x1
+ bhs _020BC7F4
+ ldr r0, _020BC9C8 ; =0x00001FFF
+ mov r12, r12, lsr #0x1
+ add r7, r12, #0x1
+ and r10, r1, r0
+ mov r9, #0x2
+ b _020BC800
+_020BC7C4:
+ cmp r12, r0
+ andcs r0, r12, #0x3
+ addcs r12, r0, r12, lsr #0x2
+ addcs r7, r12, #0x1
+ bhs _020BC7F4
+ ldr r0, _020BC9CC ; =0x00003FFF
+ mov r12, r12, lsr #0x2
+ add r7, r12, #0x1
+ and r10, r1, r0
+ mov r9, #0x4
+ b _020BC800
+_020BC7F0:
+ add r7, r12, #0x1
+_020BC7F4:
+ ldr r0, _020BC9D0 ; =0x00000FFF
+ mov r9, #0x1
+ and r10, r1, r0
+_020BC800:
+ mov r0, r12, lsl #0x1
+ ldrh r3, [r8, r0]
+ add r0, sp, #0x0
+ mov r1, r5
+ mov r2, r4
+ bl FUN_020BC500
+ mov r1, r7, lsl #0x1
+ ldrh r3, [r8, r1]
+ orr r7, r0, #0x0
+ add r0, sp, #0x24
+ mov r1, r5
+ mov r2, r4
+ bl FUN_020BC500
+ ldr r3, [sp, #0x0]
+ ldr r1, [sp, #0x24]
+ mul r2, r3, r9
+ sub r1, r1, r3
+ mul r1, r10, r1
+ add r1, r2, r1, asr #0xc
+ str r1, [r6, #0x0]
+ ldr r3, [sp, #0x4]
+ ldr r1, [sp, #0x28]
+ mul r2, r3, r9
+ sub r1, r1, r3
+ mul r1, r10, r1
+ add r1, r2, r1, asr #0xc
+ str r1, [r6, #0x4]
+ ldr r3, [sp, #0x8]
+ ldr r1, [sp, #0x2c]
+ mul r2, r3, r9
+ sub r1, r1, r3
+ mul r1, r10, r1
+ add r1, r2, r1, asr #0xc
+ str r1, [r6, #0x8]
+ ldr r3, [sp, #0xc]
+ ldr r1, [sp, #0x30]
+ mul r2, r3, r9
+ sub r1, r1, r3
+ mul r1, r10, r1
+ add r1, r2, r1, asr #0xc
+ str r1, [r6, #0xc]
+ ldr r2, [sp, #0x10]
+ ldr r1, [sp, #0x34]
+ orr r7, r7, r0
+ sub r0, r1, r2
+ mul r1, r2, r9
+ mul r0, r10, r0
+ add r0, r1, r0, asr #0xc
+ str r0, [r6, #0x10]
+ ldr r2, [sp, #0x14]
+ ldr r0, [sp, #0x38]
+ mul r1, r2, r9
+ sub r0, r0, r2
+ mul r0, r10, r0
+ add r2, r1, r0, asr #0xc
+ mov r0, r6
+ mov r1, r6
+ str r2, [r6, #0x14]
+ bl VEC_Normalize
+ add r0, r6, #0xc
+ mov r1, r0
+ bl VEC_Normalize
+ cmp r7, #0x0
+ bne _020BC968
+ ldr r3, [sp, #0x18]
+ ldr r1, [sp, #0x3c]
+ mul r2, r3, r9
+ sub r1, r1, r3
+ mul r1, r10, r1
+ add r1, r2, r1, asr #0xc
+ str r1, [r6, #0x18]
+ ldr r3, [sp, #0x1c]
+ ldr r1, [sp, #0x40]
+ mul r2, r3, r9
+ sub r1, r1, r3
+ mul r1, r10, r1
+ add r1, r2, r1, asr #0xc
+ str r1, [r6, #0x1c]
+ ldr r3, [sp, #0x20]
+ ldr r1, [sp, #0x44]
+ mul r2, r3, r9
+ sub r1, r1, r3
+ mul r1, r10, r1
+ add r2, r2, r1, asr #0xc
+ add r0, r6, #0x18
+ mov r1, r0
+ str r2, [r6, #0x20]
+ bl VEC_Normalize
+ add sp, sp, #0x48
+ ldmia sp!, {r4-r10,pc}
+_020BC968:
+ ldr r9, [r6, #0x14]
+ ldr r5, [r6, #0x4]
+ ldr r8, [r6, #0x0]
+ ldr r4, [r6, #0x10]
+ ldr r2, [r6, #0x8]
+ ldr r7, [r6, #0xc]
+ mul r1, r5, r9
+ mul r0, r2, r4
+ sub r0, r1, r0
+ mov r3, r0, asr #0xc
+ mul r1, r2, r7
+ mul r0, r8, r9
+ sub r2, r1, r0
+ mul r1, r8, r4
+ mul r0, r5, r7
+ sub r0, r1, r0
+ str r3, [r6, #0x18]
+ mov r1, r2, asr #0xc
+ str r1, [r6, #0x1c]
+ mov r0, r0, asr #0xc
+ str r0, [r6, #0x20]
+ add sp, sp, #0x48
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020BC9C4: .word 0x1FFF0000
+_020BC9C8: .word 0x00001FFF
+_020BC9CC: .word 0x00003FFF
+_020BC9D0: .word 0x00000FFF
+
+ arm_func_start FUN_020BC9D4
+FUN_020BC9D4: ; 0x020BC9D4
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4c
+ ldr r5, [r3, #0xc]
+ ldr r4, [r3, #0x10]
+ ldr r12, [r2, #0x0]
+ ldr r2, [r2, #0x4]
+ mov r6, r0
+ mov r0, r1, asr #0xc
+ add r5, r3, r5
+ add r4, r3, r4
+ add r8, r3, r2
+ ands r1, r12, #0xc0000000
+ beq _020BCD40
+ ldr r1, _020BCDC0 ; =0x1FFF0000
+ ands r2, r12, #0x40000000
+ and r1, r12, r1
+ mov r2, r1, lsr #0x10
+ beq _020BCA44
+ ands r1, r0, #0x1
+ beq _020BCA3C
+ cmp r0, r2
+ movhi r0, r2, lsr #0x1
+ addhi r0, r0, #0x1
+ bhi _020BCD40
+ mov r7, r0, lsr #0x1
+ b _020BCBE8
+_020BCA3C:
+ mov r0, r0, lsr #0x1
+ b _020BCD40
+_020BCA44:
+ ands r1, r0, #0x3
+ beq _020BCBE0
+ cmp r0, r2
+ addhi r0, r1, r2, lsr #0x2
+ bhi _020BCD40
+ ands r1, r0, #0x1
+ beq _020BCBD8
+ ands r1, r0, #0x2
+ movne r9, r0, lsr #0x2
+ addne r0, r9, #0x1
+ moveq r0, r0, lsr #0x2
+ addeq r9, r0, #0x1
+ mov r0, r0, lsl #0x1
+ ldrh r3, [r8, r0]
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ mov r7, #0x0
+ bl FUN_020BC500
+ mov r1, r9, lsl #0x1
+ ldrh r3, [r8, r1]
+ orr r7, r7, r0
+ add r0, sp, #0x0
+ mov r1, r5
+ mov r2, r4
+ bl FUN_020BC500
+ ldr r3, [sp, #0x0]
+ ldr r1, [r6, #0x0]
+ mov r2, #0x3
+ mla r3, r1, r2, r3
+ str r3, [r6, #0x0]
+ ldr r3, [sp, #0x4]
+ ldr r1, [r6, #0x4]
+ orr r7, r7, r0
+ mla r0, r1, r2, r3
+ str r0, [r6, #0x4]
+ ldr r3, [sp, #0x8]
+ ldr r1, [r6, #0x8]
+ mov r0, r6
+ mla r3, r1, r2, r3
+ str r3, [r6, #0x8]
+ ldr r4, [sp, #0xc]
+ ldr r3, [r6, #0xc]
+ mov r1, r6
+ mla r4, r3, r2, r4
+ str r4, [r6, #0xc]
+ ldr r4, [sp, #0x10]
+ ldr r3, [r6, #0x10]
+ mla r4, r3, r2, r4
+ str r4, [r6, #0x10]
+ ldr r4, [sp, #0x14]
+ ldr r3, [r6, #0x14]
+ mla r2, r3, r2, r4
+ str r2, [r6, #0x14]
+ bl VEC_Normalize
+ add r0, r6, #0xc
+ mov r1, r0
+ bl VEC_Normalize
+ cmp r7, #0x0
+ bne _020BCB7C
+ ldr r1, [sp, #0x18]
+ ldr r0, [r6, #0x18]
+ mov r2, #0x3
+ mla r1, r0, r2, r1
+ str r1, [r6, #0x18]
+ ldr r3, [sp, #0x1c]
+ ldr r1, [r6, #0x1c]
+ add r0, r6, #0x18
+ mla r3, r1, r2, r3
+ str r3, [r6, #0x1c]
+ ldr r4, [sp, #0x20]
+ ldr r3, [r6, #0x20]
+ mov r1, r0
+ mla r2, r3, r2, r4
+ str r2, [r6, #0x20]
+ bl VEC_Normalize
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r9,pc}
+_020BCB7C:
+ ldr r12, [r6, #0x14]
+ ldr r5, [r6, #0x4]
+ ldr r4, [r6, #0x10]
+ ldr r2, [r6, #0x8]
+ mul r1, r5, r12
+ mul r0, r2, r4
+ sub r0, r1, r0
+ ldr r7, [r6, #0xc]
+ ldr r8, [r6, #0x0]
+ mov r3, r0, asr #0xc
+ mul r1, r2, r7
+ mul r0, r8, r12
+ sub r2, r1, r0
+ mul r1, r8, r4
+ mul r0, r5, r7
+ sub r0, r1, r0
+ str r3, [r6, #0x18]
+ mov r1, r2, asr #0xc
+ str r1, [r6, #0x1c]
+ mov r0, r0, asr #0xc
+ add sp, sp, #0x4c
+ str r0, [r6, #0x20]
+ ldmia sp!, {r4-r9,pc}
+_020BCBD8:
+ mov r7, r0, lsr #0x2
+ b _020BCBE8
+_020BCBE0:
+ mov r0, r0, lsr #0x2
+ b _020BCD40
+_020BCBE8:
+ mov r0, r7, lsl #0x1
+ ldrh r3, [r8, r0]
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl FUN_020BC500
+ add r1, r8, r7, lsl #0x1
+ ldrh r3, [r1, #0x2]
+ orr r7, r0, #0x0
+ add r0, sp, #0x24
+ mov r1, r5
+ mov r2, r4
+ bl FUN_020BC500
+ ldr r2, [r6, #0x0]
+ ldr r1, [sp, #0x24]
+ orr r7, r7, r0
+ add r0, r2, r1
+ str r0, [r6, #0x0]
+ ldr r2, [r6, #0x4]
+ ldr r1, [sp, #0x28]
+ mov r0, r6
+ add r1, r2, r1
+ str r1, [r6, #0x4]
+ ldr r3, [r6, #0x8]
+ ldr r2, [sp, #0x2c]
+ mov r1, r6
+ add r2, r3, r2
+ str r2, [r6, #0x8]
+ ldr r3, [r6, #0xc]
+ ldr r2, [sp, #0x30]
+ add r2, r3, r2
+ str r2, [r6, #0xc]
+ ldr r3, [r6, #0x10]
+ ldr r2, [sp, #0x34]
+ add r2, r3, r2
+ str r2, [r6, #0x10]
+ ldr r3, [r6, #0x14]
+ ldr r2, [sp, #0x38]
+ add r2, r3, r2
+ str r2, [r6, #0x14]
+ bl VEC_Normalize
+ add r0, r6, #0xc
+ mov r1, r0
+ bl VEC_Normalize
+ cmp r7, #0x0
+ bne _020BCCE4
+ ldr r2, [r6, #0x18]
+ ldr r1, [sp, #0x3c]
+ add r0, r6, #0x18
+ add r1, r2, r1
+ str r1, [r6, #0x18]
+ ldr r3, [r6, #0x1c]
+ ldr r2, [sp, #0x40]
+ mov r1, r0
+ add r2, r3, r2
+ str r2, [r6, #0x1c]
+ ldr r3, [r6, #0x20]
+ ldr r2, [sp, #0x44]
+ add r2, r3, r2
+ str r2, [r6, #0x20]
+ bl VEC_Normalize
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r9,pc}
+_020BCCE4:
+ ldr r12, [r6, #0x14]
+ ldr r5, [r6, #0x4]
+ ldr r4, [r6, #0x10]
+ ldr r2, [r6, #0x8]
+ mul r1, r5, r12
+ mul r0, r2, r4
+ sub r0, r1, r0
+ ldr r7, [r6, #0xc]
+ ldr r8, [r6, #0x0]
+ mov r3, r0, asr #0xc
+ mul r1, r2, r7
+ mul r0, r8, r12
+ sub r2, r1, r0
+ mul r1, r8, r4
+ mul r0, r5, r7
+ sub r0, r1, r0
+ str r3, [r6, #0x18]
+ mov r1, r2, asr #0xc
+ str r1, [r6, #0x1c]
+ mov r0, r0, asr #0xc
+ add sp, sp, #0x4c
+ str r0, [r6, #0x20]
+ ldmia sp!, {r4-r9,pc}
+_020BCD40:
+ mov r0, r0, lsl #0x1
+ ldrh r3, [r8, r0]
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl FUN_020BC500
+ cmp r0, #0x0
+ addeq sp, sp, #0x4c
+ ldmeqia sp!, {r4-r9,pc}
+ ldr r12, [r6, #0x14]
+ ldr r5, [r6, #0x4]
+ ldr r8, [r6, #0x0]
+ ldr r4, [r6, #0x10]
+ ldr r2, [r6, #0x8]
+ ldr r7, [r6, #0xc]
+ mul r1, r5, r12
+ mul r0, r2, r4
+ sub r0, r1, r0
+ mov r3, r0, asr #0xc
+ mul r1, r2, r7
+ mul r0, r8, r12
+ sub r2, r1, r0
+ mul r1, r8, r4
+ mul r0, r5, r7
+ sub r0, r1, r0
+ str r3, [r6, #0x18]
+ mov r1, r2, asr #0xc
+ str r1, [r6, #0x1c]
+ mov r0, r0, asr #0xc
+ str r0, [r6, #0x20]
+ add sp, sp, #0x4c
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020BCDC0: .word 0x1FFF0000
+
+ arm_func_start FUN_020BCDC4
+FUN_020BCDC4: ; 0x020BCDC4
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldrh r4, [r3, #0x4]
+ ldr r6, [r2, #0x4]
+ mov r5, r1, asr #0xc
+ sub r4, r4, #0x1
+ cmp r5, r4
+ add r6, r3, r6
+ ldr r2, [r2, #0x0]
+ bne _020BCE58
+ ands r4, r2, #0xc0000000
+ beq _020BCE08
+ ands r4, r2, #0x40000000
+ andne r4, r5, #0x1
+ addne r5, r4, r5, lsr #0x1
+ andeq r4, r5, #0x3
+ addeq r5, r4, r5, lsr #0x2
+_020BCE08:
+ ldr r3, [r3, #0x8]
+ ands r3, r3, #0x2
+ movne r4, #0x0
+ bne _020BCED4
+ ands r1, r2, #0x20000000
+ ldreq r2, [r6, r5, lsl #0x3]
+ addeq r1, r6, r5, lsl #0x3
+ streq r2, [r0, #0x0]
+ ldreq r1, [r1, #0x4]
+ addeq sp, sp, #0x4
+ streq r1, [r0, #0x4]
+ ldmeqia sp!, {r4-r7,pc}
+ mov r1, r5, lsl #0x2
+ ldrsh r2, [r6, r1]
+ add r1, r6, r5, lsl #0x2
+ add sp, sp, #0x4
+ str r2, [r0, #0x0]
+ ldrsh r1, [r1, #0x2]
+ str r1, [r0, #0x4]
+ ldmia sp!, {r4-r7,pc}
+_020BCE58:
+ ands r3, r2, #0xc0000000
+ beq _020BCED0
+ ldr r3, _020BCF60 ; =0x1FFF0000
+ ands r4, r2, #0x40000000
+ and r3, r2, r3
+ mov r3, r3, lsr #0x10
+ beq _020BCEA0
+ cmp r5, r3
+ movcs r5, r3, lsr #0x1
+ addcs r4, r5, #0x1
+ bhs _020BCED4
+ ldr r3, _020BCF64 ; =0x00001FFF
+ mov r5, r5, lsr #0x1
+ add r4, r5, #0x1
+ and lr, r1, r3
+ mov r12, #0x2
+ mov r3, #0x1
+ b _020BCEE4
+_020BCEA0:
+ cmp r5, r3
+ andcs r3, r5, #0x3
+ addcs r5, r3, r5, lsr #0x2
+ addcs r4, r5, #0x1
+ bhs _020BCED4
+ ldr r3, _020BCF68 ; =0x00003FFF
+ mov r5, r5, lsr #0x2
+ add r4, r5, #0x1
+ and lr, r1, r3
+ mov r12, #0x4
+ mov r3, #0x2
+ b _020BCEE4
+_020BCED0:
+ add r4, r5, #0x1
+_020BCED4:
+ ldr r3, _020BCF6C ; =0x00000FFF
+ mov r12, #0x1
+ and lr, r1, r3
+ mov r3, #0x0
+_020BCEE4:
+ ands r1, r2, #0x20000000
+ beq _020BCF10
+ mov r2, r5, lsl #0x2
+ add r1, r6, r5, lsl #0x2
+ mov r5, r4, lsl #0x2
+ add r4, r6, r4, lsl #0x2
+ ldrsh r2, [r6, r2]
+ ldrsh r1, [r1, #0x2]
+ ldrsh r5, [r6, r5]
+ ldrsh r4, [r4, #0x2]
+ b _020BCF28
+_020BCF10:
+ add r1, r6, r5, lsl #0x3
+ add r7, r6, r4, lsl #0x3
+ ldr r2, [r6, r5, lsl #0x3]
+ ldr r1, [r1, #0x4]
+ ldr r5, [r6, r4, lsl #0x3]
+ ldr r4, [r7, #0x4]
+_020BCF28:
+ sub r5, r5, r2
+ sub r4, r4, r1
+ mul r6, r2, r12
+ mul r2, lr, r5
+ add r2, r6, r2, asr #0xc
+ mov r5, r2, asr r3
+ mul r2, r1, r12
+ mul r1, lr, r4
+ add r1, r2, r1, asr #0xc
+ mov r1, r1, asr r3
+ str r5, [r0, #0x0]
+ str r1, [r0, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020BCF60: .word 0x1FFF0000
+_020BCF64: .word 0x00001FFF
+_020BCF68: .word 0x00003FFF
+_020BCF6C: .word 0x00000FFF
+
+ arm_func_start FUN_020BCF70
+FUN_020BCF70: ; 0x020BCF70
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r4, [r2, #0x4]
+ ldr r12, [r2, #0x0]
+ mov r1, r1, asr #0xc
+ add r3, r3, r4
+ ands r2, r12, #0xc0000000
+ beq _020BD0D0
+ ldr r2, _020BD184 ; =0x1FFF0000
+ ands r4, r12, #0x40000000
+ and r2, r12, r2
+ mov r4, r2, lsr #0x10
+ beq _020BCFCC
+ ands r2, r1, #0x1
+ beq _020BCFC4
+ cmp r1, r4
+ movhi r1, r4, lsr #0x1
+ addhi r1, r1, #0x1
+ bhi _020BD0D0
+ mov r2, r1, lsr #0x1
+ b _020BD110
+_020BCFC4:
+ mov r1, r1, lsr #0x1
+ b _020BD0D0
+_020BCFCC:
+ ands r2, r1, #0x3
+ beq _020BD0CC
+ cmp r1, r4
+ addhi r1, r2, r4, lsr #0x2
+ bhi _020BD0D0
+ ands r2, r1, #0x1
+ beq _020BD0C4
+ ands r2, r1, #0x2
+ movne r1, r1, lsr #0x2
+ addne r2, r1, #0x1
+ moveq r2, r1, lsr #0x2
+ addeq r1, r2, #0x1
+ ands r4, r12, #0x20000000
+ beq _020BD04C
+ mov r5, r2, lsl #0x2
+ mov r4, r1, lsl #0x2
+ ldrsh r12, [r3, r5]
+ ldrsh r5, [r3, r4]
+ add r2, r3, r2, lsl #0x2
+ add r4, r12, r12, lsl #0x1
+ add r4, r5, r4
+ mov r4, r4, asr #0x2
+ str r4, [r0, #0x0]
+ add r1, r3, r1, lsl #0x2
+ ldrsh r3, [r2, #0x2]
+ ldrsh r2, [r1, #0x2]
+ add sp, sp, #0x4
+ add r1, r3, r3, lsl #0x1
+ add r1, r2, r1
+ mov r1, r1, asr #0x2
+ str r1, [r0, #0x4]
+ ldmia sp!, {r4-r5,pc}
+_020BD04C:
+ ldr r5, [r3, r2, lsl #0x3]
+ ldr r4, [r3, r1, lsl #0x3]
+ mov r12, r5, asr #0x1f
+ mov r12, r12, lsl #0x1
+ mov lr, r5, lsl #0x1
+ orr r12, r12, r5, lsr #0x1f
+ adds lr, lr, r5
+ adc r12, r12, r5, asr #0x1f
+ adds lr, lr, r4
+ adc r12, r12, r4, asr #0x1f
+ mov lr, lr, lsr #0x2
+ orr lr, lr, r12, lsl #0x1e
+ str lr, [r0, #0x0]
+ add r2, r3, r2, lsl #0x3
+ ldr r12, [r2, #0x4]
+ add r1, r3, r1, lsl #0x3
+ mov r2, r12, asr #0x1f
+ mov r2, r2, lsl #0x1
+ mov r3, r12, lsl #0x1
+ ldr r1, [r1, #0x4]
+ orr r2, r2, r12, lsr #0x1f
+ adds r3, r3, r12
+ adc r2, r2, r12, asr #0x1f
+ adds r3, r3, r1
+ adc r1, r2, r1, asr #0x1f
+ mov r2, r3, lsr #0x2
+ orr r2, r2, r1, lsl #0x1e
+ str r2, [r0, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+_020BD0C4:
+ mov r2, r1, lsr #0x2
+ b _020BD110
+_020BD0CC:
+ mov r1, r1, lsr #0x2
+_020BD0D0:
+ ands r2, r12, #0x20000000
+ ldreq r2, [r3, r1, lsl #0x3]
+ addeq r1, r3, r1, lsl #0x3
+ streq r2, [r0, #0x0]
+ ldreq r1, [r1, #0x4]
+ addeq sp, sp, #0x4
+ streq r1, [r0, #0x4]
+ ldmeqia sp!, {r4-r5,pc}
+ mov r2, r1, lsl #0x2
+ ldrsh r2, [r3, r2]
+ add r1, r3, r1, lsl #0x2
+ add sp, sp, #0x4
+ str r2, [r0, #0x0]
+ ldrsh r1, [r1, #0x2]
+ str r1, [r0, #0x4]
+ ldmia sp!, {r4-r5,pc}
+_020BD110:
+ ands r1, r12, #0x20000000
+ beq _020BD150
+ mov r1, r2, lsl #0x2
+ add r12, r3, r2, lsl #0x2
+ ldrsh r2, [r3, r1]
+ ldrsh r1, [r12, #0x4]
+ add sp, sp, #0x4
+ add r1, r2, r1
+ mov r1, r1, asr #0x1
+ str r1, [r0, #0x0]
+ ldrsh r2, [r12, #0x2]
+ ldrsh r1, [r12, #0x6]
+ add r1, r2, r1
+ mov r1, r1, asr #0x1
+ str r1, [r0, #0x4]
+ ldmia sp!, {r4-r5,pc}
+_020BD150:
+ add r12, r3, r2, lsl #0x3
+ ldr r2, [r3, r2, lsl #0x3]
+ ldr r1, [r12, #0x8]
+ add r1, r2, r1
+ mov r1, r1, asr #0x1
+ str r1, [r0, #0x0]
+ ldr r2, [r12, #0x4]
+ ldr r1, [r12, #0xc]
+ add r1, r2, r1
+ mov r1, r1, asr #0x1
+ str r1, [r0, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020BD184: .word 0x1FFF0000
+
+ arm_func_start FUN_020BD188
+FUN_020BD188: ; 0x020BD188
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldrh r4, [r3, #0x4]
+ ldr lr, [r2, #0x4]
+ mov r12, r1, asr #0xc
+ sub r4, r4, #0x1
+ cmp r12, r4
+ add r4, r3, lr
+ ldr lr, [r2, #0x0]
+ bne _020BD230
+ ands r2, lr, #0xc0000000
+ beq _020BD1CC
+ ands r2, lr, #0x40000000
+ andne r2, r12, #0x1
+ addne r12, r2, r12, lsr #0x1
+ andeq r2, r12, #0x3
+ addeq r12, r2, r12, lsr #0x2
+_020BD1CC:
+ ldr r2, [r3, #0x8]
+ ands r2, r2, #0x2
+ beq _020BD210
+ ldr r2, _020BD2E8 ; =0x00000FFF
+ ands r3, lr, #0x20000000
+ and r3, r1, r2
+ movne r1, r12, lsl #0x1
+ ldrnesh r2, [r4, r1]
+ ldrnesh r1, [r4, #0x0]
+ add sp, sp, #0x4
+ ldreq r2, [r4, r12, lsl #0x2]
+ ldreq r1, [r4, #0x0]
+ sub r1, r1, r2
+ mul r1, r3, r1
+ add r1, r2, r1, asr #0xc
+ str r1, [r0, #0x0]
+ ldmia sp!, {r4-r5,pc}
+_020BD210:
+ ands r1, lr, #0x20000000
+ movne r1, r12, lsl #0x1
+ ldrnesh r1, [r4, r1]
+ add sp, sp, #0x4
+ strne r1, [r0, #0x0]
+ ldreq r1, [r4, r12, lsl #0x2]
+ streq r1, [r0, #0x0]
+ ldmia sp!, {r4-r5,pc}
+_020BD230:
+ ands r2, lr, #0xc0000000
+ beq _020BD298
+ ldr r2, _020BD2EC ; =0x1FFF0000
+ ands r3, lr, #0x40000000
+ and r2, lr, r2
+ mov r2, r2, lsr #0x10
+ beq _020BD270
+ cmp r12, r2
+ movcs r12, r2, lsr #0x1
+ bhs _020BD298
+ ldr r2, _020BD2F0 ; =0x00001FFF
+ mov r12, r12, lsr #0x1
+ and r5, r1, r2
+ mov r2, #0x2
+ mov r1, #0x1
+ b _020BD2A8
+_020BD270:
+ cmp r12, r2
+ andcs r2, r12, #0x3
+ addcs r12, r2, r12, lsr #0x2
+ bhs _020BD298
+ ldr r2, _020BD2F4 ; =0x00003FFF
+ mov r12, r12, lsr #0x2
+ and r5, r1, r2
+ mov r2, #0x4
+ mov r1, #0x2
+ b _020BD2A8
+_020BD298:
+ ldr r3, _020BD2E8 ; =0x00000FFF
+ mov r2, #0x1
+ and r5, r1, r3
+ mov r1, #0x0
+_020BD2A8:
+ ands r3, lr, #0x20000000
+ addne r3, r4, r12, lsl #0x1
+ movne lr, r12, lsl #0x1
+ ldrnesh r12, [r4, lr]
+ ldrnesh r3, [r3, #0x2]
+ addeq r3, r4, r12, lsl #0x2
+ ldreq r12, [r4, r12, lsl #0x2]
+ ldreq r3, [r3, #0x4]
+ mul r4, r12, r2
+ sub r3, r3, r12
+ mul r2, r5, r3
+ add r2, r4, r2, asr #0xc
+ mov r1, r2, asr r1
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020BD2E8: .word 0x00000FFF
+_020BD2EC: .word 0x1FFF0000
+_020BD2F0: .word 0x00001FFF
+_020BD2F4: .word 0x00003FFF
+
+ arm_func_start FUN_020BD2F8
+FUN_020BD2F8: ; 0x020BD2F8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r12, [r2, #0x4]
+ ldr r2, [r2, #0x0]
+ mov r1, r1, asr #0xc
+ add r3, r3, r12
+ ands r12, r2, #0xc0000000
+ beq _020BD44C
+ ldr ip, _020BD46C ; =0x1FFF0000
+ ands lr, r2, #0x40000000
+ and r12, r2, r12
+ mov lr, r12, lsr #0x10
+ beq _020BD354
+ ands r12, r1, #0x1
+ beq _020BD34C
+ cmp r1, lr
+ movhi r1, lr, lsr #0x1
+ addhi r1, r1, #0x1
+ bhi _020BD44C
+ mov r12, r1, lsr #0x1
+ b _020BD400
+_020BD34C:
+ mov r1, r1, lsr #0x1
+ b _020BD44C
+_020BD354:
+ ands r12, r1, #0x3
+ beq _020BD3F8
+ cmp r1, lr
+ addhi r1, r12, lr, lsr #0x2
+ bhi _020BD44C
+ ands r12, r1, #0x1
+ beq _020BD3F0
+ ands r12, r1, #0x2
+ movne lr, r1, lsr #0x2
+ addne r12, lr, #0x1
+ moveq r12, r1, lsr #0x2
+ addeq lr, r12, #0x1
+ ands r1, r2, #0x20000000
+ beq _020BD3B4
+ mov r2, r12, lsl #0x1
+ mov r1, lr, lsl #0x1
+ ldrsh r12, [r3, r2]
+ ldrsh r2, [r3, r1]
+ mov r1, #0x3
+ add sp, sp, #0x4
+ smlabb r1, r12, r1, r2
+ mov r1, r1, asr #0x2
+ str r1, [r0, #0x0]
+ ldmia sp!, {pc}
+_020BD3B4:
+ ldr r12, [r3, r12, lsl #0x2]
+ ldr r1, [r3, lr, lsl #0x2]
+ mov r2, r12, asr #0x1f
+ mov r2, r2, lsl #0x1
+ mov r3, r12, lsl #0x1
+ orr r2, r2, r12, lsr #0x1f
+ adds r3, r3, r12
+ adc r2, r2, r12, asr #0x1f
+ adds r3, r3, r1
+ adc r1, r2, r1, asr #0x1f
+ mov r2, r3, lsr #0x2
+ orr r2, r2, r1, lsl #0x1e
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020BD3F0:
+ mov r12, r1, lsr #0x2
+ b _020BD400
+_020BD3F8:
+ mov r1, r1, lsr #0x2
+ b _020BD44C
+_020BD400:
+ ands r1, r2, #0x20000000
+ beq _020BD42C
+ mov r2, r12, lsl #0x1
+ add r1, r3, r12, lsl #0x1
+ ldrsh r2, [r3, r2]
+ ldrsh r1, [r1, #0x2]
+ add sp, sp, #0x4
+ add r1, r2, r1
+ mov r1, r1, asr #0x1
+ str r1, [r0, #0x0]
+ ldmia sp!, {pc}
+_020BD42C:
+ add r1, r3, r12, lsl #0x2
+ ldr r2, [r3, r12, lsl #0x2]
+ ldr r1, [r1, #0x4]
+ mov r2, r2, asr #0x1
+ add r1, r2, r1, asr #0x1
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020BD44C:
+ ands r2, r2, #0x20000000
+ movne r1, r1, lsl #0x1
+ ldrnesh r1, [r3, r1]
+ strne r1, [r0, #0x0]
+ ldreq r1, [r3, r1, lsl #0x2]
+ streq r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020BD46C: .word 0x1FFF0000
+
+ arm_func_start FUN_020BD470
+FUN_020BD470: ; 0x020BD470
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x34
+ mov r9, r0
+ add r0, r9, r1, lsl #0x1
+ ldrh r0, [r0, #0x14]
+ mov r7, r3
+ mov r8, r2
+ ldr r5, [r9, r0]
+ add r1, r9, r0
+ ands r0, r5, #0x1
+ movne r0, #0x7
+ strne r0, [r7, #0x0]
+ bne _020BD814
+ ldr r0, _020BD848 ; =0x00000FFF
+ add r4, r1, #0x4
+ ands r0, r8, r0
+ beq _020BD4C4
+ ldr r0, [r9, #0x8]
+ ands r0, r0, #0x1
+ movne r6, #0x1
+ bne _020BD4C8
+_020BD4C4:
+ mov r6, #0x0
+_020BD4C8:
+ mov r0, #0x0
+ str r0, [r7, #0x0]
+ ands r0, r5, #0x6
+ bne _020BD5C0
+ ands r0, r5, #0x8
+ bne _020BD51C
+ cmp r6, #0x0
+ beq _020BD500
+ mov r1, r8
+ mov r2, r4
+ mov r3, r9
+ add r0, r7, #0x4c
+ bl FUN_020BD188
+ b _020BD514
+_020BD500:
+ mov r1, r8
+ mov r2, r4
+ mov r3, r9
+ add r0, r7, #0x4c
+ bl FUN_020BD2F8
+_020BD514:
+ add r4, r4, #0x8
+ b _020BD524
+_020BD51C:
+ ldr r0, [r4], #0x4
+ str r0, [r7, #0x4c]
+_020BD524:
+ ands r0, r5, #0x10
+ bne _020BD568
+ cmp r6, #0x0
+ beq _020BD54C
+ mov r1, r8
+ mov r2, r4
+ mov r3, r9
+ add r0, r7, #0x50
+ bl FUN_020BD188
+ b _020BD560
+_020BD54C:
+ mov r1, r8
+ mov r2, r4
+ mov r3, r9
+ add r0, r7, #0x50
+ bl FUN_020BD2F8
+_020BD560:
+ add r4, r4, #0x8
+ b _020BD570
+_020BD568:
+ ldr r0, [r4], #0x4
+ str r0, [r7, #0x50]
+_020BD570:
+ ands r0, r5, #0x20
+ bne _020BD5B4
+ cmp r6, #0x0
+ beq _020BD598
+ mov r1, r8
+ mov r2, r4
+ mov r3, r9
+ add r0, r7, #0x54
+ bl FUN_020BD188
+ b _020BD5AC
+_020BD598:
+ mov r1, r8
+ mov r2, r4
+ mov r3, r9
+ add r0, r7, #0x54
+ bl FUN_020BD2F8
+_020BD5AC:
+ add r4, r4, #0x8
+ b _020BD5DC
+_020BD5B4:
+ ldr r0, [r4], #0x4
+ str r0, [r7, #0x54]
+ b _020BD5DC
+_020BD5C0:
+ ands r0, r5, #0x2
+ ldrne r0, [r7, #0x0]
+ orrne r0, r0, #0x4
+ strne r0, [r7, #0x0]
+ bne _020BD5DC
+ mov r0, r7
+ bl FUN_020BDA08
+_020BD5DC:
+ ands r0, r5, #0xc0
+ bne _020BD6A8
+ ands r0, r5, #0x100
+ bne _020BD628
+ cmp r6, #0x0
+ beq _020BD60C
+ mov r1, r8
+ mov r2, r4
+ mov r3, r9
+ add r0, r7, #0x28
+ bl FUN_020BC698
+ b _020BD620
+_020BD60C:
+ mov r1, r8
+ mov r2, r4
+ mov r3, r9
+ add r0, r7, #0x28
+ bl FUN_020BC9D4
+_020BD620:
+ add r4, r4, #0x8
+ b _020BD6C4
+_020BD628:
+ ldr r1, [r9, #0xc]
+ ldr r2, [r9, #0x10]
+ ldr r3, [r4, #0x0]
+ add r0, r7, #0x28
+ add r1, r9, r1
+ add r2, r9, r2
+ bl FUN_020BC500
+ cmp r0, #0x0
+ beq _020BD6A0
+ ldr r12, [r7, #0x3c]
+ ldr r0, [r7, #0x2c]
+ ldr r3, [r7, #0x28]
+ ldr r11, [r7, #0x38]
+ ldr r1, [r7, #0x30]
+ ldr r2, [r7, #0x34]
+ mul r10, r0, r12
+ mul lr, r1, r11
+ sub r10, r10, lr
+ mov r10, r10, asr #0xc
+ mul lr, r1, r2
+ mul r1, r3, r12
+ sub r1, lr, r1
+ mul r11, r3, r11
+ mul r2, r0, r2
+ sub r0, r11, r2
+ str r10, [r7, #0x40]
+ mov r1, r1, asr #0xc
+ str r1, [r7, #0x44]
+ mov r0, r0, asr #0xc
+ str r0, [r7, #0x48]
+_020BD6A0:
+ add r4, r4, #0x4
+ b _020BD6C4
+_020BD6A8:
+ ands r0, r5, #0x40
+ ldrne r0, [r7, #0x0]
+ orrne r0, r0, #0x2
+ strne r0, [r7, #0x0]
+ bne _020BD6C4
+ mov r0, r7
+ bl FUN_020BD850
+_020BD6C4:
+ ands r0, r5, #0x600
+ bne _020BD7F0
+ ands r0, r5, #0x800
+ bne _020BD71C
+ cmp r6, #0x0
+ beq _020BD6F4
+ add r0, sp, #0x0
+ mov r1, r8
+ mov r2, r4
+ mov r3, r9
+ bl FUN_020BCDC4
+ b _020BD708
+_020BD6F4:
+ add r0, sp, #0x0
+ mov r1, r8
+ mov r2, r4
+ mov r3, r9
+ bl FUN_020BCF70
+_020BD708:
+ ldr r1, [sp, #0x0]
+ ldr r0, [sp, #0x4]
+ str r1, [sp, #0x18]
+ str r0, [sp, #0x24]
+ b _020BD72C
+_020BD71C:
+ ldr r0, [r4, #0x0]
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x4]
+ str r0, [sp, #0x24]
+_020BD72C:
+ ands r0, r5, #0x1000
+ bne _020BD77C
+ cmp r6, #0x0
+ beq _020BD754
+ add r0, sp, #0x8
+ mov r1, r8
+ mov r3, r9
+ add r2, r4, #0x8
+ bl FUN_020BCDC4
+ b _020BD768
+_020BD754:
+ add r0, sp, #0x8
+ mov r1, r8
+ mov r3, r9
+ add r2, r4, #0x8
+ bl FUN_020BCF70
+_020BD768:
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0xc]
+ str r1, [sp, #0x1c]
+ str r0, [sp, #0x28]
+ b _020BD78C
+_020BD77C:
+ ldr r0, [r4, #0x8]
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #0xc]
+ str r0, [sp, #0x28]
+_020BD78C:
+ ands r0, r5, #0x2000
+ bne _020BD7DC
+ cmp r6, #0x0
+ beq _020BD7B4
+ add r0, sp, #0x10
+ mov r1, r8
+ mov r3, r9
+ add r2, r4, #0x10
+ bl FUN_020BCDC4
+ b _020BD7C8
+_020BD7B4:
+ add r0, sp, #0x10
+ mov r1, r8
+ mov r3, r9
+ add r2, r4, #0x10
+ bl FUN_020BCF70
+_020BD7C8:
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ str r1, [sp, #0x20]
+ str r0, [sp, #0x2c]
+ b _020BD814
+_020BD7DC:
+ ldr r0, [r4, #0x10]
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #0x14]
+ str r0, [sp, #0x2c]
+ b _020BD814
+_020BD7F0:
+ ands r0, r5, #0x200
+ ldrne r0, [r7, #0x0]
+ orrne r0, r0, #0x1
+ strne r0, [r7, #0x0]
+ bne _020BD814
+ mov r0, r7
+ bl FUN_020BD9A4
+ add sp, sp, #0x34
+ ldmia sp!, {r4-r11,pc}
+_020BD814:
+ ldr r0, [r7, #0x0]
+ add r1, sp, #0x18
+ ands r0, r0, #0x1
+ ldr r0, _020BD84C ; =UNK_021CEF7C
+ movne r3, #0x4
+ ldr r4, [r0, #0x0]
+ moveq r3, #0x0
+ ldr r2, [r4, #0x0]
+ ldr r4, [r4, #0xe8]
+ mov r0, r7
+ blx r4
+ add sp, sp, #0x34
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020BD848: .word 0x00000FFF
+_020BD84C: .word UNK_021CEF7C
+
+ arm_func_start FUN_020BD850
+FUN_020BD850: ; 0x020BD850
+ stmdb sp!, {r4-r8,lr}
+ ldr r1, _020BD990 ; =UNK_021CEF7C
+ mov r8, r0
+ ldr r0, [r1, #0x0]
+ ldr r3, [r0, #0xd4]
+ ldr r0, [r0, #0x0]
+ ldrh r2, [r3, #0x6]
+ ldrb r0, [r0, #0x1]
+ ldrh r1, [r3, r2]
+ add r2, r3, r2
+ mla r0, r1, r0, r2
+ ldr r0, [r0, #0x4]
+ ldrh r2, [r3, r0]
+ add r4, r3, r0
+ add r1, r4, #0x4
+ ands r0, r2, #0x1
+ addeq r1, r1, #0xc
+ ands r0, r2, #0x2
+ bne _020BD980
+ ands r0, r2, #0x8
+ beq _020BD934
+ and r2, r2, #0xf0
+ add r0, r8, #0x28
+ mov r5, r2, asr #0x4
+ ldrsh r7, [r1, #0x0]
+ ldrsh r6, [r1, #0x2]
+ bl MI_Zero36B
+ ldrh r0, [r4, #0x0]
+ add r1, r8, r5, lsl #0x2
+ ands r0, r0, #0x100
+ movne r0, #0x1000
+ rsbne r2, r0, #0x0
+ moveq r2, #0x1000
+ ldr r0, _020BD994 ; =UNK_020FFA14
+ str r2, [r1, #0x28]
+ ldrb r1, [r0, r5, lsl #0x2]
+ ldr r0, _020BD998 ; =UNK_020FFA15
+ add r1, r8, r1, lsl #0x2
+ str r7, [r1, #0x28]
+ ldrb r0, [r0, r5, lsl #0x2]
+ add r0, r8, r0, lsl #0x2
+ str r6, [r0, #0x28]
+ ldrh r0, [r4, #0x0]
+ ands r0, r0, #0x200
+ ldr r0, _020BD99C ; =UNK_020FFA16
+ rsbne r6, r6, #0x0
+ ldrb r0, [r0, r5, lsl #0x2]
+ add r0, r8, r0, lsl #0x2
+ str r6, [r0, #0x28]
+ ldrh r0, [r4, #0x0]
+ ands r0, r0, #0x400
+ ldr r0, _020BD9A0 ; =UNK_020FFA17
+ rsbne r7, r7, #0x0
+ ldrb r0, [r0, r5, lsl #0x2]
+ add r0, r8, r0, lsl #0x2
+ str r7, [r0, #0x28]
+ ldmia sp!, {r4-r8,pc}
+_020BD934:
+ ldrsh r0, [r4, #0x2]
+ str r0, [r8, #0x28]
+ ldrsh r0, [r1, #0x0]
+ str r0, [r8, #0x2c]
+ ldrsh r0, [r1, #0x2]
+ str r0, [r8, #0x30]
+ ldrsh r0, [r1, #0x4]
+ str r0, [r8, #0x34]
+ ldrsh r0, [r1, #0x6]
+ str r0, [r8, #0x38]
+ ldrsh r0, [r1, #0x8]
+ str r0, [r8, #0x3c]
+ ldrsh r0, [r1, #0xa]
+ str r0, [r8, #0x40]
+ ldrsh r0, [r1, #0xc]
+ str r0, [r8, #0x44]
+ ldrsh r0, [r1, #0xe]
+ str r0, [r8, #0x48]
+ ldmia sp!, {r4-r8,pc}
+_020BD980:
+ ldr r0, [r8, #0x0]
+ orr r0, r0, #0x2
+ str r0, [r8, #0x0]
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020BD990: .word UNK_021CEF7C
+_020BD994: .word UNK_020FFA14
+_020BD998: .word UNK_020FFA15
+_020BD99C: .word UNK_020FFA16
+_020BD9A0: .word UNK_020FFA17
+
+ arm_func_start FUN_020BD9A4
+FUN_020BD9A4: ; 0x020BD9A4
+ stmdb sp!, {r4,lr}
+ ldr r1, _020BDA04 ; =UNK_021CEF7C
+ ldr r12, [r1, #0x0]
+ ldr r4, [r12, #0xd4]
+ ldr r2, [r12, #0x0]
+ ldrh lr, [r4, #0x6]
+ ldrb r1, [r2, #0x1]
+ ldrh r3, [r4, lr]
+ add lr, r4, lr
+ mla r1, r3, r1, lr
+ ldr r1, [r1, #0x4]
+ ldrh r3, [r4, r1]
+ add r1, r4, r1
+ add r1, r1, #0x4
+ ands lr, r3, #0x1
+ addeq r1, r1, #0xc
+ ands lr, r3, #0x2
+ bne _020BD9F8
+ ands lr, r3, #0x8
+ addne r1, r1, #0x4
+ addeq r1, r1, #0x10
+_020BD9F8:
+ ldr r12, [r12, #0xe8]
+ blx r12
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020BDA04: .word UNK_021CEF7C
+
+ arm_func_start FUN_020BDA08
+FUN_020BDA08: ; 0x020BDA08
+ ldr r1, _020BDA6C ; =UNK_021CEF7C
+ ldr r1, [r1, #0x0]
+ ldr r12, [r1, #0xd4]
+ ldr r1, [r1, #0x0]
+ ldrh r3, [r12, #0x6]
+ ldrb r1, [r1, #0x1]
+ ldrh r2, [r12, r3]
+ add r3, r12, r3
+ mla r1, r2, r1, r3
+ ldr r2, [r1, #0x4]
+ ldrh r1, [r12, r2]
+ add r2, r12, r2
+ ands r1, r1, #0x1
+ ldrne r1, [r0, #0x0]
+ orrne r1, r1, #0x4
+ strne r1, [r0, #0x0]
+ bxne lr
+ ldr r1, [r2, #0x4]
+ add r2, r2, #0x4
+ str r1, [r0, #0x4c]
+ ldr r1, [r2, #0x4]
+ str r1, [r0, #0x50]
+ ldr r1, [r2, #0x8]
+ str r1, [r0, #0x54]
+ bx lr
+ .balign 4
+_020BDA6C: .word UNK_021CEF7C
+
+ arm_func_start FUN_020BDA70
+FUN_020BDA70: ; 0x020BDA70
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r3, r0
+ ldr r0, [r1, #0x8]
+ ldr r12, [r1, #0x0]
+ ldrh r1, [r0, #0x4]
+ mov r1, r1, lsl #0xc
+ cmp r12, r1
+ subge r12, r1, #0x1
+ bge _020BDAA0
+ cmp r12, #0x0
+ movlt r12, #0x0
+_020BDAA0:
+ mov r1, r2
+ mov r2, r12
+ bl FUN_020BD470
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020BDAB4
+FUN_020BDAB4: ; 0x020BDAB4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ ldr r0, _020BDB3C ; =UNK_0210659C
+ str r4, [r5, #0x8]
+ ldr r0, [r0, #0x0]
+ add r1, r5, #0x1a
+ str r0, [r5, #0xc]
+ ldrb r2, [r2, #0x17]
+ mov r0, #0x0
+ strb r2, [r5, #0x19]
+ ldrb r2, [r5, #0x19]
+ mov r2, r2, lsl #0x1
+ bl MIi_CpuClear16
+ ldrh r0, [r4, #0x6]
+ add r2, r4, #0x14
+ mov r3, #0x0
+ cmp r0, #0x0
+ addls sp, sp, #0x4
+ ldmlsia sp!, {r4-r5,pc}
+_020BDB08:
+ mov r0, r3, lsl #0x1
+ ldrh r1, [r2, r0]
+ add r0, r5, r3, lsl #0x1
+ add r3, r3, #0x1
+ ldr r1, [r4, r1]
+ mov r1, r1, lsr #0x18
+ orr r1, r1, #0x100
+ strh r1, [r0, #0x1a]
+ ldrh r0, [r4, #0x6]
+ cmp r3, r0
+ blo _020BDB08
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020BDB3C: .word UNK_0210659C
+
+ arm_func_start FUN_020BDB40
+FUN_020BDB40: ; 0x020BDB40
+ stmdb sp!, {r4-r8,lr}
+ ldr r7, [r1, #0x8]
+ mov r2, r2, lsl #0x10
+ ldrh r4, [r7, #0xe]
+ add r5, r7, #0x8
+ ldr r6, [r1, #0x0]
+ ldrh r3, [r5, r4]
+ mov r1, r2, lsr #0x10
+ add r2, r5, r4
+ mul r4, r3, r1
+ add r3, r2, #0x4
+ mov r6, r6, asr #0xc
+ mov r8, r0
+ ldr r1, [r3, r4]
+ mov r0, r7
+ mov r2, r6
+ add r5, r3, r4
+ bl FUN_020BDDAC
+ mov r4, r0
+ ldr r1, [r5, #0x4]
+ mov r0, r7
+ mov r2, r6
+ bl FUN_020BDDAC
+ ldr r1, [r8, #0x4]
+ mov r2, r6
+ and r1, r1, #0x8000
+ orr r1, r1, r4
+ orr r0, r1, r0, lsl #0x10
+ str r0, [r8, #0x4]
+ mov r0, r7
+ ldr r1, [r5, #0xc]
+ bl FUN_020BDDAC
+ mov r4, r0
+ mov r0, r7
+ ldr r1, [r5, #0x8]
+ mov r2, r6
+ bl FUN_020BDDAC
+ mov r2, r6
+ ldr r1, [r8, #0x8]
+ and r1, r1, #0x8000
+ orr r0, r1, r0
+ orr r0, r0, r4, lsl #0x10
+ str r0, [r8, #0x8]
+ mov r0, r7
+ ldr r1, [r5, #0x10]
+ bl FUN_020BDCB8
+ ldr r1, [r8, #0xc]
+ bic r1, r1, #0x1f0000
+ orr r0, r1, r0, lsl #0x10
+ str r0, [r8, #0xc]
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020BDC0C
+FUN_020BDC0C: ; 0x020BDC0C
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ ldr r3, _020BDCB4 ; =UNK_021065A8
+ ldr r4, [r2, #0x8]
+ ldr r3, [r3, #0x0]
+ mov r9, r0
+ str r3, [r9, #0xc]
+ ldrb r0, [r2, #0x18]
+ mov r8, r1
+ add r4, r2, r4
+ strb r0, [r9, #0x19]
+ ldrb r2, [r9, #0x19]
+ add r1, r9, #0x1a
+ mov r0, #0x0
+ mov r2, r2, lsl #0x1
+ bl MIi_CpuClear16
+ ldrb r0, [r8, #0x9]
+ mov r7, #0x0
+ cmp r0, #0x0
+ addls sp, sp, #0x4
+ ldmlsia sp!, {r4-r9,pc}
+ mov r6, r7
+ add r5, r8, #0x8
+ add r4, r4, #0x4
+_020BDC6C:
+ ldrh r1, [r8, #0xe]
+ mov r0, r4
+ add r2, r5, r1
+ ldrh r1, [r2, #0x2]
+ add r1, r2, r1
+ add r1, r1, r6
+ bl FUN_020BC14C
+ cmp r0, #0x0
+ orrge r1, r7, #0x100
+ addge r0, r9, r0, lsl #0x1
+ strgeh r1, [r0, #0x1a]
+ ldrb r0, [r8, #0x9]
+ add r7, r7, #0x1
+ add r6, r6, #0x10
+ cmp r7, r0
+ blo _020BDC6C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020BDCB4: .word UNK_021065A8
+
+ arm_func_start FUN_020BDCB8
+FUN_020BDCB8: ; 0x020BDCB8
+ ands r3, r1, #0x20000000
+ movne r0, r1, lsl #0x10
+ movne r0, r0, lsr #0x10
+ bxne lr
+ ldr r3, _020BDDA4 ; =0x0000FFFF
+ ands r12, r1, #0xc0000000
+ and r3, r1, r3
+ add r0, r0, r3
+ ldreqb r0, [r0, r2]
+ bxeq lr
+ ldr r3, _020BDDA8 ; =0x1FFF0000
+ ands r12, r1, #0x40000000
+ and r1, r1, r3
+ mov r3, r1, lsr #0x10
+ beq _020BDD30
+ ands r1, r2, #0x1
+ beq _020BDD28
+ cmp r2, r3
+ addhi r0, r0, r3, lsr #0x1
+ ldrhib r0, [r0, #0x1]
+ bxhi lr
+ add r1, r0, r2, lsr #0x1
+ ldrb r2, [r0, r2, lsr #0x1]
+ ldrb r0, [r1, #0x1]
+ add r0, r2, r0
+ mov r0, r0, lsl #0xf
+ mov r0, r0, lsr #0x10
+ bx lr
+_020BDD28:
+ ldrb r0, [r0, r2, lsr #0x1]
+ bx lr
+_020BDD30:
+ ands r1, r2, #0x3
+ beq _020BDD9C
+ cmp r2, r3
+ addhi r0, r0, r3, lsr #0x2
+ ldrhib r0, [r1, r0]
+ bxhi lr
+ ands r1, r2, #0x1
+ beq _020BDD80
+ ands r1, r2, #0x2
+ movne r1, r2, lsr #0x2
+ addne r2, r1, #0x1
+ moveq r2, r2, lsr #0x2
+ addeq r1, r2, #0x1
+ ldrb r2, [r0, r2]
+ ldrb r1, [r0, r1]
+ mov r0, #0x3
+ mla r0, r2, r0, r1
+ mov r0, r0, lsl #0xe
+ mov r0, r0, lsr #0x10
+ bx lr
+_020BDD80:
+ add r1, r0, r2, lsr #0x2
+ ldrb r2, [r0, r2, lsr #0x2]
+ ldrb r0, [r1, #0x1]
+ add r0, r2, r0
+ mov r0, r0, lsl #0xf
+ mov r0, r0, lsr #0x10
+ bx lr
+_020BDD9C:
+ ldrb r0, [r0, r2, lsr #0x2]
+ bx lr
+ .balign 4
+_020BDDA4: .word 0x0000FFFF
+_020BDDA8: .word 0x1FFF0000
+
+ arm_func_start FUN_020BDDAC
+FUN_020BDDAC: ; 0x020BDDAC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ands r3, r1, #0x20000000
+ movne r0, r1, lsl #0x10
+ addne sp, sp, #0x4
+ movne r0, r0, lsr #0x10
+ ldmneia sp!, {pc}
+ ldr r3, _020BDF2C ; =0x0000FFFF
+ ands r12, r1, #0xc0000000
+ and r3, r1, r3
+ add r0, r0, r3
+ moveq r1, r2, lsl #0x1
+ addeq sp, sp, #0x4
+ ldreqh r0, [r0, r1]
+ ldmeqia sp!, {pc}
+ ldr r3, _020BDF30 ; =0x1FFF0000
+ ands r12, r1, #0x40000000
+ and r1, r1, r3
+ mov r3, r1, lsr #0x10
+ beq _020BDE34
+ ands r1, r2, #0x1
+ beq _020BDE24
+ cmp r2, r3
+ bichi r1, r3, #0x1
+ addhi r0, r0, r1
+ addhi sp, sp, #0x4
+ ldrhih r0, [r0, #0x2]
+ ldmhiia sp!, {pc}
+ mov r1, r2, lsr #0x1
+ b _020BDEE0
+_020BDE24:
+ bic r1, r2, #0x1
+ add sp, sp, #0x4
+ ldrh r0, [r0, r1]
+ ldmia sp!, {pc}
+_020BDE34:
+ ands r1, r2, #0x3
+ beq _020BDECC
+ cmp r2, r3
+ movhi r2, r3, lsr #0x2
+ movhi r1, r1, lsl #0x1
+ addhi r0, r0, r2, lsl #0x1
+ addhi sp, sp, #0x4
+ ldrhih r0, [r1, r0]
+ ldmhiia sp!, {pc}
+ ands r1, r2, #0x1
+ beq _020BDEC4
+ ands r1, r2, #0x2
+ movne r1, r2, lsr #0x2
+ addne r2, r1, #0x1
+ moveq r2, r2, lsr #0x2
+ addeq r1, r2, #0x1
+ mov r2, r2, lsl #0x1
+ mov r1, r1, lsl #0x1
+ ldrh r12, [r0, r2]
+ ldrh lr, [r0, r1]
+ ldr r0, _020BDF34 ; =0x00007C1F
+ and r3, r12, #0x3e0
+ and r2, lr, #0x3e0
+ mov r1, #0x3
+ mla r2, r3, r1, r2
+ and r12, r12, r0
+ and r3, lr, r0
+ mla r1, r12, r1, r3
+ mov r2, r2, lsr #0x2
+ and r1, r0, r1, lsr #0x2
+ and r0, r2, #0x3e0
+ orr r0, r1, r0
+ mov r0, r0, lsl #0x10
+ add sp, sp, #0x4
+ mov r0, r0, lsr #0x10
+ ldmia sp!, {pc}
+_020BDEC4:
+ mov r1, r2, lsr #0x2
+ b _020BDEE0
+_020BDECC:
+ mov r1, r2, lsr #0x2
+ mov r1, r1, lsl #0x1
+ add sp, sp, #0x4
+ ldrh r0, [r0, r1]
+ ldmia sp!, {pc}
+_020BDEE0:
+ mov r2, r1, lsl #0x1
+ add r1, r0, r1, lsl #0x1
+ ldrh r3, [r0, r2]
+ ldrh r12, [r1, #0x2]
+ ldr r0, _020BDF34 ; =0x00007C1F
+ and r2, r3, #0x3e0
+ and r1, r12, #0x3e0
+ add r1, r2, r1
+ mov r1, r1, lsr #0x1
+ and r3, r3, r0
+ and r2, r12, r0
+ add r2, r3, r2
+ and r2, r0, r2, lsr #0x1
+ and r0, r1, #0x3e0
+ orr r0, r2, r0
+ mov r0, r0, lsl #0x10
+ mov r0, r0, lsr #0x10
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020BDF2C: .word 0x0000FFFF
+_020BDF30: .word 0x1FFF0000
+_020BDF34: .word 0x00007C1F
+
+ arm_func_start FUN_020BDF38
+FUN_020BDF38: ; 0x020BDF38
+ stmdb sp!, {r4,lr}
+ ldr r12, [r1, #0x0]
+ mov r4, r0
+ mov r2, r2, lsl #0x10
+ ldr r0, [r1, #0x8]
+ mov r1, r2, lsr #0x10
+ mov r3, r4
+ mov r2, r12, asr #0xc
+ bl FUN_020BE030
+ ldr r0, [r4, #0x10]
+ bic r0, r0, #0xc0000000
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x10]
+ orr r0, r0, #0x40000000
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x0]
+ orr r0, r0, #0x8
+ str r0, [r4, #0x0]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020BDF84
+FUN_020BDF84: ; 0x020BDF84
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ ldr r3, _020BE02C ; =UNK_021065A0
+ ldr r4, [r2, #0x8]
+ ldr r3, [r3, #0x0]
+ mov r9, r0
+ str r3, [r9, #0xc]
+ ldrb r0, [r2, #0x18]
+ mov r8, r1
+ add r4, r2, r4
+ strb r0, [r9, #0x19]
+ ldrb r2, [r9, #0x19]
+ add r1, r9, #0x1a
+ mov r0, #0x0
+ mov r2, r2, lsl #0x1
+ bl MIi_CpuClear16
+ ldrb r0, [r8, #0x9]
+ mov r7, #0x0
+ cmp r0, #0x0
+ addls sp, sp, #0x4
+ ldmlsia sp!, {r4-r9,pc}
+ mov r6, r7
+ add r5, r8, #0x8
+ add r4, r4, #0x4
+_020BDFE4:
+ ldrh r1, [r8, #0xe]
+ mov r0, r4
+ add r2, r5, r1
+ ldrh r1, [r2, #0x2]
+ add r1, r2, r1
+ add r1, r1, r6
+ bl FUN_020BC14C
+ cmp r0, #0x0
+ orrge r1, r7, #0x100
+ addge r0, r9, r0, lsl #0x1
+ strgeh r1, [r0, #0x1a]
+ ldrb r0, [r8, #0x9]
+ add r7, r7, #0x1
+ add r6, r6, #0x10
+ cmp r7, r0
+ blo _020BDFE4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020BE02C: .word UNK_021065A0
+
+ arm_func_start FUN_020BE030
+FUN_020BE030: ; 0x020BE030
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r8, r0
+ ldrh r4, [r8, #0xe]
+ add r5, r8, #0x8
+ mov r6, r3
+ ldrh r3, [r5, r4]
+ add r4, r5, r4
+ add r4, r4, #0x4
+ mla r5, r3, r1, r4
+ mov r7, r2
+ ldr r1, [r5, #0x18]
+ ldr r2, [r5, #0x1c]
+ mov r3, r7
+ ldr r4, [r6, #0x0]
+ bl FUN_020BE238
+ mov r9, r0
+ ldr r1, [r5, #0x20]
+ mov r0, r8
+ ldr r2, [r5, #0x24]
+ mov r3, r7
+ bl FUN_020BE238
+ cmp r9, #0x0
+ bne _020BE09C
+ cmp r0, #0x0
+ orreq r4, r4, #0x4
+ beq _020BE0A8
+_020BE09C:
+ str r9, [r6, #0x24]
+ str r0, [r6, #0x28]
+ bic r4, r4, #0x4
+_020BE0A8:
+ ldr r1, [r5, #0x10]
+ ldr r2, [r5, #0x14]
+ mov r0, r8
+ mov r3, r7
+ bl FUN_020BE12C
+ cmp r0, #0x10000000
+ strneh r0, [r6, #0x20]
+ movne r0, r0, lsr #0x10
+ strneh r0, [r6, #0x22]
+ orreq r4, r4, #0x2
+ ldr r1, [r5, #0x0]
+ ldr r2, [r5, #0x4]
+ mov r0, r8
+ mov r3, r7
+ bicne r4, r4, #0x2
+ bl FUN_020BE238
+ mov r9, r0
+ ldr r1, [r5, #0x8]
+ ldr r2, [r5, #0xc]
+ mov r0, r8
+ mov r3, r7
+ bl FUN_020BE238
+ cmp r9, #0x1000
+ bne _020BE114
+ cmp r0, #0x1000
+ orreq r4, r4, #0x1
+ beq _020BE120
+_020BE114:
+ str r9, [r6, #0x18]
+ str r0, [r6, #0x1c]
+ bic r4, r4, #0x1
+_020BE120:
+ str r4, [r6, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+
+ arm_func_start FUN_020BE12C
+FUN_020BE12C: ; 0x020BE12C
+ ands r12, r1, #0x20000000
+ movne r0, r2
+ bxne lr
+ add r0, r0, r2
+ ands r2, r1, #0xc0000000
+ beq _020BE1F8
+ ldr r2, _020BE234 ; =0x0000FFFF
+ ands r12, r1, #0x40000000
+ and r2, r1, r2
+ beq _020BE17C
+ ands r1, r3, #0x1
+ beq _020BE174
+ cmp r3, r2
+ movhi r1, r2, lsr #0x1
+ addhi r3, r1, #0x1
+ bhi _020BE1F8
+ mov r2, r3, lsr #0x1
+ b _020BE200
+_020BE174:
+ mov r3, r3, lsr #0x1
+ b _020BE1F8
+_020BE17C:
+ ands r1, r3, #0x3
+ beq _020BE1F4
+ cmp r3, r2
+ addhi r3, r1, r2, lsr #0x2
+ bhi _020BE1F8
+ ands r1, r3, #0x1
+ beq _020BE1EC
+ ands r1, r3, #0x2
+ movne r1, r3, lsr #0x2
+ addne r2, r1, #0x1
+ moveq r2, r3, lsr #0x2
+ addeq r1, r2, #0x1
+ mov r12, r2, lsl #0x2
+ add r3, r0, r2, lsl #0x2
+ mov r2, r1, lsl #0x2
+ add r1, r0, r1, lsl #0x2
+ ldrsh r12, [r0, r12]
+ ldrsh r2, [r0, r2]
+ mov r0, #0x3
+ ldrsh r3, [r3, #0x2]
+ ldrsh r1, [r1, #0x2]
+ mla r2, r12, r0, r2
+ mla r1, r3, r0, r1
+ ldr r0, _020BE234 ; =0x0000FFFF
+ mov r1, r1, asr #0x2
+ and r0, r0, r2, asr #0x2
+ orr r0, r0, r1, lsl #0x10
+ bx lr
+_020BE1EC:
+ mov r2, r3, lsr #0x2
+ b _020BE200
+_020BE1F4:
+ mov r3, r3, lsr #0x2
+_020BE1F8:
+ ldr r0, [r0, r3, lsl #0x2]
+ bx lr
+_020BE200:
+ add r1, r0, r2, lsl #0x2
+ mov r2, r2, lsl #0x2
+ ldrsh r12, [r0, r2]
+ ldrsh r3, [r1, #0x4]
+ ldrsh r2, [r1, #0x2]
+ ldrsh r1, [r1, #0x6]
+ ldr r0, _020BE234 ; =0x0000FFFF
+ add r3, r12, r3
+ add r1, r2, r1
+ and r2, r0, r3, asr #0x1
+ mov r0, r1, asr #0x1
+ orr r0, r2, r0, lsl #0x10
+ bx lr
+ .balign 4
+_020BE234: .word 0x0000FFFF
+
+ arm_func_start FUN_020BE238
+FUN_020BE238:
+ ands r12, r1, #0x20000000
+ movne r0, r2
+ bxne lr
+ add r0, r0, r2
+ ands r2, r1, #0xc0000000
+ beq _020BE2F0
+ ldr r2, _020BE330 ; =0x0000FFFF
+ ands r12, r1, #0x40000000
+ and r12, r1, r2
+ beq _020BE288
+ ands r2, r3, #0x1
+ beq _020BE280
+ cmp r3, r12
+ movhi r2, r12, lsr #0x1
+ addhi r3, r2, #0x1
+ bhi _020BE2F0
+ mov r3, r3, lsr #0x1
+ b _020BE304
+_020BE280:
+ mov r3, r3, lsr #0x1
+ b _020BE2F0
+_020BE288:
+ ands r2, r3, #0x3
+ beq _020BE2EC
+ cmp r3, r12
+ addhi r3, r2, r12, lsr #0x2
+ bhi _020BE2F0
+ ands r2, r3, #0x1
+ beq _020BE2E4
+ ands r2, r3, #0x2
+ movne r3, r3, lsr #0x2
+ addne r2, r3, #0x1
+ moveq r2, r3, lsr #0x2
+ addeq r3, r2, #0x1
+ ands r1, r1, #0x10000000
+ movne r2, r2, lsl #0x1
+ movne r1, r3, lsl #0x1
+ ldrnesh r2, [r0, r2]
+ ldrnesh r1, [r0, r1]
+ ldreq r2, [r0, r2, lsl #0x2]
+ ldreq r1, [r0, r3, lsl #0x2]
+ mov r0, #0x3
+ mla r0, r2, r0, r1
+ mov r0, r0, asr #0x2
+ bx lr
+_020BE2E4:
+ mov r3, r3, lsr #0x2
+ b _020BE304
+_020BE2EC:
+ mov r3, r3, lsr #0x2
+_020BE2F0:
+ ands r1, r1, #0x10000000
+ movne r1, r3, lsl #0x1
+ ldrnesh r0, [r0, r1]
+ ldreq r0, [r0, r3, lsl #0x2]
+ bx lr
+_020BE304:
+ ands r1, r1, #0x10000000
+ movne r2, r3, lsl #0x1
+ addne r1, r0, r3, lsl #0x1
+ ldrnesh r2, [r0, r2]
+ ldrnesh r0, [r1, #0x2]
+ addeq r1, r0, r3, lsl #0x2
+ ldreq r2, [r0, r3, lsl #0x2]
+ ldreq r0, [r1, #0x4]
+ add r0, r2, r0
+ mov r0, r0, asr #0x1
+ bx lr
+ .balign 4
+_020BE330: .word 0x0000FFFF
+
+ arm_func_start FUN_020BE334
+FUN_020BE334: ; 0x020BE334
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r1
+ ldr r3, [r6, #0x0]
+ ldr r5, [r6, #0x8]
+ mov r1, r2, lsl #0x10
+ mov r2, r3, lsl #0x4
+ mov r7, r0
+ mov r0, r5
+ mov r1, r1, lsr #0x10
+ mov r2, r2, lsr #0x10
+ bl FUN_020BC42C
+ mov r4, r0
+ ldrb r1, [r4, #0x2]
+ mov r0, r5
+ bl FUN_020BC4B8
+ mov r1, r0
+ ldr r0, [r6, #0x14]
+ mov r2, r7
+ bl FUN_020BE408
+ ldrb r1, [r4, #0x3]
+ cmp r1, #0xff
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,pc}
+ mov r0, r5
+ bl FUN_020BC4A8
+ mov r1, r0
+ ldr r0, [r6, #0x14]
+ mov r2, r7
+ bl FUN_020BE3B4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020BE3B4
+FUN_020BE3B4: ; 0x020BE3B4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldrh r0, [r5, #0x34]
+ mov r4, r2
+ add r0, r5, r0
+ bl FUN_020BC2A0
+ ldr r1, [r5, #0x2c]
+ ldrh r2, [r0, #0x2]
+ mov r1, r1, lsl #0x10
+ mov r3, r1, lsr #0x10
+ ands r1, r2, #0x1
+ ldrh r0, [r0, #0x0]
+ moveq r1, r3, lsl #0xf
+ moveq r3, r1, lsr #0x10
+ moveq r0, r0, lsl #0xf
+ moveq r0, r0, lsr #0x10
+ add r0, r0, r3
+ str r0, [r4, #0x14]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020BE408
+FUN_020BE408: ; 0x020BE408
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ add r0, r5, #0x3c
+ mov r4, r2
+ bl FUN_020BC2A0
+ ldr r1, [r0, #0x0]
+ ldr r3, [r4, #0x10]
+ and r1, r1, #0x1c000000
+ cmp r1, #0x14000000
+ ldrne r2, [r5, #0x8]
+ ldrne r1, _020BE4E0 ; =0x0000FFFF
+ andne r5, r2, r1
+ ldreq r2, [r5, #0x18]
+ ldreq r1, _020BE4E0 ; =0x0000FFFF
+ andeq r5, r2, r1
+ ldr r1, _020BE4E4 ; =0xC00F0000
+ ldr r2, _020BE4E8 ; =0x000007FF
+ and r1, r3, r1
+ str r1, [r4, #0x10]
+ ldr r1, [r0, #0x0]
+ ldr r3, [r4, #0x10]
+ add r1, r1, r5
+ orr r1, r3, r1
+ str r1, [r4, #0x10]
+ ldr r3, [r0, #0x4]
+ ldr r1, _020BE4EC ; =0x003FF800
+ and r3, r3, r2
+ strh r3, [r4, #0x2c]
+ ldr r3, [r0, #0x4]
+ and r1, r3, r1
+ mov r1, r1, lsr #0xb
+ strh r1, [r4, #0x2e]
+ ldr r3, [r0, #0x4]
+ ldrh r1, [r4, #0x2c]
+ and r0, r3, r2
+ and r5, r2, r3, lsr #0xb
+ cmp r0, r1
+ moveq r0, #0x1000
+ beq _020BE4B4
+ mov r0, r0, lsl #0xc
+ mov r1, r1, lsl #0xc
+ bl FX_Div
+_020BE4B4:
+ str r0, [r4, #0x30]
+ ldrh r1, [r4, #0x2e]
+ cmp r5, r1
+ moveq r0, #0x1000
+ beq _020BE4D4
+ mov r0, r5, lsl #0xc
+ mov r1, r1, lsl #0xc
+ bl FX_Div
+_020BE4D4:
+ str r0, [r4, #0x34]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020BE4E0: .word 0x0000FFFF
+_020BE4E4: .word 0xC00F0000
+_020BE4E8: .word 0x000007FF
+_020BE4EC: .word 0x003FF800
+
+ arm_func_start FUN_020BE4F0
+FUN_020BE4F0: ; 0x020BE4F0
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ ldr r3, _020BE59C ; =UNK_021065A4
+ ldr r4, [r2, #0x8]
+ ldr r3, [r3, #0x0]
+ mov r9, r0
+ str r3, [r9, #0xc]
+ ldrb r0, [r2, #0x18]
+ mov r8, r1
+ add r4, r2, r4
+ strb r0, [r9, #0x19]
+ str r8, [r9, #0x8]
+ ldrb r2, [r9, #0x19]
+ add r1, r9, #0x1a
+ mov r0, #0x0
+ mov r2, r2, lsl #0x1
+ bl MIi_CpuClear16
+ ldrb r0, [r8, #0xd]
+ mov r7, #0x0
+ cmp r0, #0x0
+ addls sp, sp, #0x4
+ ldmlsia sp!, {r4-r9,pc}
+ mov r6, r7
+ add r5, r8, #0xc
+ add r4, r4, #0x4
+_020BE554:
+ ldrh r1, [r8, #0x12]
+ mov r0, r4
+ add r2, r5, r1
+ ldrh r1, [r2, #0x2]
+ add r1, r2, r1
+ add r1, r1, r6
+ bl FUN_020BC14C
+ cmp r0, #0x0
+ orrge r1, r7, #0x100
+ addge r0, r9, r0, lsl #0x1
+ strgeh r1, [r0, #0x1a]
+ ldrb r0, [r8, #0xd]
+ add r7, r7, #0x1
+ add r6, r6, #0x10
+ cmp r7, r0
+ blo _020BE554
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020BE59C: .word UNK_021065A4
+
+ arm_func_start FUN_020BE5A0
+FUN_020BE5A0: ; 0x020BE5A0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr lr, [r1, #0x8]
+ ldr r3, [r1, #0x0]
+ ldrh r1, [lr, #0x6]
+ mov r12, r3, asr #0xc
+ mov r3, #0x1
+ mla r2, r12, r1, r2
+ mov r1, r2, lsr #0x5
+ add r1, lr, r1, lsl #0x2
+ ldr r1, [r1, #0xc]
+ and r2, r2, #0x1f
+ and r1, r1, r3, lsl r2
+ str r1, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020BE5E0
+FUN_020BE5E0: ; 0x020BE5E0
+ ldr r3, _020BE628 ; =UNK_02106598
+ mov r12, #0x0
+ ldr r3, [r3, #0x0]
+ str r3, [r0, #0xc]
+ ldrb r2, [r2, #0x17]
+ strb r2, [r0, #0x19]
+ str r1, [r0, #0x8]
+ ldrb r1, [r0, #0x19]
+ cmp r1, #0x0
+ bxls lr
+_020BE608:
+ orr r2, r12, #0x100
+ add r1, r0, r12, lsl #0x1
+ strh r2, [r1, #0x1a]
+ ldrb r1, [r0, #0x19]
+ add r12, r12, #0x1
+ cmp r12, r1
+ blo _020BE608
+ bx lr
+ .balign 4
+_020BE628: .word UNK_02106598
+
+ arm_func_start FUN_020BE62C
+FUN_020BE62C: ; 0x020BE62C
+ ands r2, r3, #0x4
+ ldrne r1, [r0, #0x0]
+ orrne r1, r1, #0x1
+ strne r1, [r0, #0x0]
+ bne _020BE658
+
+ arm_func_start FUN_020BE640
+FUN_020BE640: ; 0x020BE640
+ ldr r2, [r1, #0x0]
+ str r2, [r0, #0x4]
+ ldr r2, [r1, #0x4]
+ str r2, [r0, #0x8]
+ ldr r1, [r1, #0x8]
+ str r1, [r0, #0xc]
+_020BE658:
+ ldr r1, [r0, #0x0]
+ orr r1, r1, #0x18
+ str r1, [r0, #0x0]
+ bx lr
+
+ arm_func_start FUN_020BE668
+FUN_020BE668: ; 0x020BE668
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r1, [r4, #0x0]
+ ands r0, r1, #0x4
+ bne _020BE6AC
+ ands r0, r1, #0x2
+ bne _020BE698
+ add r1, r4, #0x28
+ mov r0, #0x19
+ mov r2, #0xc
+ bl FUN_020BB1C0
+ b _020BE6C4
+_020BE698:
+ add r1, r4, #0x4c
+ mov r0, #0x1c
+ mov r2, #0x3
+ bl FUN_020BB1C0
+ b _020BE6C4
+_020BE6AC:
+ ands r0, r1, #0x2
+ bne _020BE6C4
+ add r1, r4, #0x28
+ mov r0, #0x1a
+ mov r2, #0x9
+ bl FUN_020BB1C0
+_020BE6C4:
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x1
+ ldmneia sp!, {r4,pc}
+ add r1, r4, #0x4
+ mov r0, #0x1b
+ mov r2, #0x3
+ bl FUN_020BB1C0
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020BE6E4
+FUN_020BE6E4: ; 0x020BE6E4
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x50
+ mov r4, r0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ ands r0, r0, #0x8
+ ldrne r0, _020BE820 ; =0x00101610
+ mov r3, #0x3
+ strne r0, [sp, #0x0]
+ ldreq r0, _020BE824 ; =0x00101810
+ mov r2, #0x2
+ streq r0, [sp, #0x0]
+ mov r0, #0x1000
+ str r0, [sp, #0x44]
+ str r3, [sp, #0x4]
+ str r2, [sp, #0x48]
+ str r1, [sp, #0x40]
+ str r1, [sp, #0x34]
+ str r1, [sp, #0x30]
+ str r1, [sp, #0x2c]
+ str r1, [sp, #0x28]
+ str r1, [sp, #0x24]
+ str r1, [sp, #0x20]
+ str r1, [sp, #0x14]
+ str r1, [sp, #0x10]
+ ldr r1, [r4, #0x0]
+ ldr r0, _020BE828 ; =UNK_021067B0
+ and r1, r1, #0x7
+ ldr r2, [r0, r1, lsl #0x2]
+ add r0, sp, #0x8
+ mov r1, r4
+ blx r2
+ ldr r3, [r4, #0x30]
+ cmp r3, #0x1000
+ beq _020BE7B4
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ smull r2, r0, r3, r0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ str r2, [sp, #0x8]
+ ldr r2, [r4, #0x30]
+ ldr r0, [sp, #0x38]
+ smull r3, r1, r2, r1
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [sp, #0xc]
+ ldr r1, [r4, #0x30]
+ smull r2, r0, r1, r0
+ mov r1, r2, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ str r1, [sp, #0x38]
+_020BE7B4:
+ ldr r3, [r4, #0x34]
+ cmp r3, #0x1000
+ beq _020BE804
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ smull r2, r0, r3, r0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ str r2, [sp, #0x18]
+ ldr r2, [r4, #0x34]
+ ldr r0, [sp, #0x3c]
+ smull r3, r1, r2, r1
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [sp, #0x1c]
+ ldr r1, [r4, #0x34]
+ smull r2, r0, r1, r0
+ mov r1, r2, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ str r1, [sp, #0x3c]
+_020BE804:
+ add r1, sp, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, r1, #0x4
+ mov r2, #0x12
+ bl FUN_020BB1C0
+ add sp, sp, #0x50
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020BE820: .word 0x00101610
+_020BE824: .word 0x00101810
+_020BE828: .word UNK_021067B0
+
+ arm_func_start FUN_020BE82C
+FUN_020BE82C: ; 0x020BE82C
+ mov r2, #0x1000
+ str r2, [r0, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ str r1, [r0, #0x10]
+ str r2, [r0, #0x14]
+ str r1, [r0, #0x30]
+ str r1, [r0, #0x34]
+ bx lr
+
+ arm_func_start FUN_020BE850
+FUN_020BE850: ; 0x020BE850
+ ldr r2, [r1, #0x18]
+ mov r12, #0x0
+ str r2, [r0, #0x0]
+ ldr r2, [r1, #0x1c]
+ str r2, [r0, #0x14]
+ str r12, [r0, #0x4]
+ str r12, [r0, #0x30]
+ ldr r2, [r1, #0x1c]
+ ldrh r3, [r1, #0x2e]
+ mov r1, r2, lsl #0x1
+ rsb r1, r1, #0x0
+ add r1, r1, #0x2000
+ mul r1, r3, r1
+ mov r1, r1, lsl #0x3
+ str r1, [r0, #0x34]
+ str r12, [r0, #0x10]
+ bx lr
+
+ arm_func_start FUN_020BE894
+FUN_020BE894: ; 0x020BE894
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldrh r2, [r5, #0x2c]
+ ldrh r1, [r5, #0x2e]
+ mov r6, r0
+ mov r4, r2, lsl #0xc
+ mov r7, r1, lsl #0xc
+ mov r0, r7
+ mov r1, r4
+ bl FX_DivAsync
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x0]
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x14]
+ bl FX_GetDivResult
+ ldrsh r2, [r5, #0x20]
+ mov r1, r7
+ rsb r2, r2, #0x0
+ mul r0, r2, r0
+ mov r2, r0, asr #0xc
+ mov r0, r4
+ str r2, [r6, #0x4]
+ bl FX_DivAsync
+ ldrsh r1, [r5, #0x20]
+ ldrsh r0, [r5, #0x22]
+ ldrh r2, [r5, #0x2c]
+ add r0, r1, r0
+ rsb r0, r0, #0x0
+ add r0, r0, #0x1000
+ mul r0, r2, r0
+ mov r0, r0, lsl #0x3
+ str r0, [r6, #0x30]
+ ldrsh r1, [r5, #0x20]
+ ldrsh r0, [r5, #0x22]
+ ldrh r2, [r5, #0x2e]
+ sub r0, r1, r0
+ add r0, r0, #0x1000
+ mul r0, r2, r0
+ mov r0, r0, lsl #0x3
+ str r0, [r6, #0x34]
+ bl FX_GetDivResult
+ ldrsh r1, [r5, #0x20]
+ mul r0, r1, r0
+ mov r0, r0, asr #0xc
+ str r0, [r6, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020BE954
+FUN_020BE954: ; 0x020BE954
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r9, r1
+ ldrh r2, [r9, #0x2c]
+ ldrh r1, [r9, #0x2e]
+ mov r10, r0
+ mov r8, r2, lsl #0xc
+ mov r11, r1, lsl #0xc
+ mov r0, r11
+ mov r1, r8
+ bl FX_DivAsync
+ ldrsh r5, [r9, #0x22]
+ ldr r3, [r9, #0x18]
+ ldrsh r0, [r9, #0x20]
+ ldr r4, [r9, #0x1c]
+ smull r2, r1, r3, r5
+ mov r6, r2, lsr #0xc
+ orr r6, r6, r1, lsl #0x14
+ smull r2, r1, r3, r0
+ mov r7, r2, lsr #0xc
+ orr r7, r7, r1, lsl #0x14
+ smull r3, r2, r4, r0
+ smull r1, r0, r4, r5
+ mov r5, r3, lsr #0xc
+ orr r5, r5, r2, lsl #0x14
+ mov r4, r1, lsr #0xc
+ orr r4, r4, r0, lsl #0x14
+ str r6, [r10, #0x0]
+ str r4, [r10, #0x14]
+ bl FX_GetDivResult
+ mov r1, r11
+ rsb r2, r5, #0x0
+ mul r0, r2, r0
+ mov r0, r0, asr #0xc
+ str r0, [r10, #0x4]
+ mov r0, r8
+ bl FX_DivAsync
+ sub r1, r5, r4
+ add r0, r7, r6
+ ldrh r3, [r9, #0x2c]
+ ldr r2, [r9, #0x18]
+ sub r0, r2, r0
+ mul r0, r3, r0
+ mov r0, r0, lsl #0x3
+ str r0, [r10, #0x30]
+ ldrh r2, [r9, #0x2e]
+ ldr r0, [r9, #0x1c]
+ sub r0, r1, r0
+ add r0, r0, #0x2000
+ mul r0, r2, r0
+ mov r0, r0, lsl #0x3
+ str r0, [r10, #0x34]
+ bl FX_GetDivResult
+ mul r0, r7, r0
+ mov r0, r0, asr #0xc
+ str r0, [r10, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020BEA3C
+FUN_020BEA3C: ; 0x020BEA3C
+ mov r2, #0x1000
+ str r2, [r0, #0x0]
+ str r2, [r0, #0x14]
+ mov r12, #0x0
+ str r12, [r0, #0x4]
+ ldrh r2, [r1, #0x2c]
+ ldr r3, [r1, #0x24]
+ mul r2, r3, r2
+ rsb r2, r2, #0x0
+ mov r2, r2, lsl #0x4
+ str r2, [r0, #0x30]
+ ldrh r2, [r1, #0x2e]
+ ldr r1, [r1, #0x28]
+ mul r2, r1, r2
+ mov r1, r2, lsl #0x4
+ str r1, [r0, #0x34]
+ str r12, [r0, #0x10]
+ bx lr
+
+ arm_func_start FUN_020BEA84
+FUN_020BEA84: ; 0x020BEA84
+ stmdb sp!, {r4,lr}
+ ldr r3, [r1, #0x18]
+ mov r2, #0x0
+ str r3, [r0, #0x0]
+ ldr r3, [r1, #0x1c]
+ str r3, [r0, #0x14]
+ str r2, [r0, #0x4]
+ ldr r4, [r1, #0x18]
+ ldr r3, [r1, #0x24]
+ ldrh lr, [r1, #0x2c]
+ smull r12, r3, r4, r3
+ mov r4, r12, lsr #0x8
+ orr r4, r4, r3, lsl #0x18
+ rsb r3, r4, #0x0
+ mul r3, lr, r3
+ str r3, [r0, #0x30]
+ ldr r4, [r1, #0x1c]
+ ldr r12, [r1, #0x28]
+ mov r3, r4, lsl #0x1
+ smull lr, r12, r4, r12
+ rsb r4, r3, #0x0
+ mov r3, lr, lsr #0x8
+ ldrh lr, [r1, #0x2e]
+ add r1, r4, #0x2000
+ orr r3, r3, r12, lsl #0x18
+ mul r4, lr, r1
+ mul r1, lr, r3
+ add r1, r1, r4, lsl #0x3
+ str r1, [r0, #0x34]
+ str r2, [r0, #0x10]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020BEB00
+FUN_020BEB00: ; 0x020BEB00
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldrh r2, [r5, #0x2c]
+ ldrh r1, [r5, #0x2e]
+ mov r6, r0
+ mov r4, r2, lsl #0xc
+ mov r7, r1, lsl #0xc
+ mov r0, r7
+ mov r1, r4
+ bl FX_DivAsync
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x0]
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x14]
+ bl FX_GetDivResult
+ ldrsh r2, [r5, #0x20]
+ mov r1, r7
+ rsb r2, r2, #0x0
+ mul r0, r2, r0
+ mov r2, r0, asr #0xc
+ mov r0, r4
+ str r2, [r6, #0x4]
+ bl FX_DivAsync
+ ldrsh r2, [r5, #0x20]
+ ldrsh r1, [r5, #0x22]
+ ldrh r3, [r5, #0x2c]
+ ldr r0, [r5, #0x24]
+ add r1, r2, r1
+ rsb r1, r1, #0x0
+ add r1, r1, #0x1000
+ mul r2, r3, r1
+ mul r1, r0, r3
+ mov r0, r2, lsl #0x3
+ sub r0, r0, r1, lsl #0x4
+ str r0, [r6, #0x30]
+ ldrsh r2, [r5, #0x20]
+ ldrsh r1, [r5, #0x22]
+ ldrh r3, [r5, #0x2e]
+ ldr r0, [r5, #0x28]
+ sub r1, r2, r1
+ add r1, r1, #0x1000
+ mul r2, r3, r1
+ mul r1, r0, r3
+ mov r0, r2, lsl #0x3
+ add r0, r0, r1, lsl #0x4
+ str r0, [r6, #0x34]
+ bl FX_GetDivResult
+ ldrsh r1, [r5, #0x20]
+ mul r0, r1, r0
+ mov r0, r0, asr #0xc
+ str r0, [r6, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020BEBD8
+FUN_020BEBD8: ; 0x020BEBD8
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r9, r1
+ ldrh r2, [r9, #0x2c]
+ ldrh r1, [r9, #0x2e]
+ mov r10, r0
+ mov r8, r2, lsl #0xc
+ mov r11, r1, lsl #0xc
+ mov r0, r11
+ mov r1, r8
+ bl FX_DivAsync
+ ldrsh r5, [r9, #0x22]
+ ldr r3, [r9, #0x18]
+ ldrsh r0, [r9, #0x20]
+ ldr r4, [r9, #0x1c]
+ smull r2, r1, r3, r5
+ mov r6, r2, lsr #0xc
+ orr r6, r6, r1, lsl #0x14
+ smull r2, r1, r3, r0
+ mov r7, r2, lsr #0xc
+ orr r7, r7, r1, lsl #0x14
+ smull r3, r2, r4, r0
+ smull r1, r0, r4, r5
+ mov r5, r3, lsr #0xc
+ orr r5, r5, r2, lsl #0x14
+ mov r4, r1, lsr #0xc
+ orr r4, r4, r0, lsl #0x14
+ str r6, [r10, #0x0]
+ str r4, [r10, #0x14]
+ bl FX_GetDivResult
+ mov r1, r11
+ rsb r2, r5, #0x0
+ mul r0, r2, r0
+ mov r0, r0, asr #0xc
+ str r0, [r10, #0x4]
+ mov r0, r8
+ bl FX_DivAsync
+ sub r1, r5, r4
+ add r2, r7, r6
+ ldr r5, [r9, #0x18]
+ ldrh r0, [r9, #0x2c]
+ sub r3, r5, r2
+ ldr r2, [r9, #0x24]
+ mul r4, r0, r3
+ smull r3, r2, r5, r2
+ mov r4, r4, lsl #0x3
+ mov r3, r3, lsr #0x8
+ orr r3, r3, r2, lsl #0x18
+ mul r2, r0, r3
+ sub r0, r4, r2
+ str r0, [r10, #0x30]
+ ldr r4, [r9, #0x1c]
+ ldrh r3, [r9, #0x2e]
+ sub r0, r1, r4
+ add r0, r0, #0x2000
+ mul r2, r3, r0
+ ldr r0, [r9, #0x28]
+ smull r1, r0, r4, r0
+ mov r1, r1, lsr #0x8
+ orr r1, r1, r0, lsl #0x18
+ mul r0, r3, r1
+ add r0, r0, r2, lsl #0x3
+ str r0, [r10, #0x34]
+ bl FX_GetDivResult
+ mul r0, r7, r0
+ mov r0, r0, asr #0xc
+ str r0, [r10, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020BECEC
+FUN_020BECEC: ; 0x020BECEC
+ stmdb sp!, {r4-r8,lr}
+ mov r12, r0
+ ands r0, r3, #0x4
+ ldrb r3, [r2, #0x3]
+ beq _020BED40
+ ldr r1, [r12, #0x0]
+ ands r0, r3, #0x2
+ orr r0, r1, #0x1
+ str r0, [r12, #0x0]
+ beq _020BEDB8
+ ldr r0, _020BEE2C ; =UNK_021CEF7C
+ ldrb r7, [r2, #0x1]
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ add r6, r0, #0xc4
+ mov r5, r7, lsr #0x5
+ ldr r4, [r6, r5, lsl #0x2]
+ and r0, r7, #0x1f
+ orr r0, r4, r1, lsl r0
+ str r0, [r6, r5, lsl #0x2]
+ b _020BEDB8
+_020BED40:
+ ldr r4, [r1, #0x0]
+ ands r0, r3, #0x2
+ str r4, [r12, #0x4]
+ ldr r0, [r1, #0x4]
+ str r0, [r12, #0x8]
+ ldr r0, [r1, #0x8]
+ str r0, [r12, #0xc]
+ beq _020BEDB8
+ ldr lr, _020BEE2C ; =UNK_021CEF7C
+ ldrb r0, [r2, #0x1]
+ ldr r4, [lr, #0x0]
+ mov lr, #0x18
+ add r8, r4, #0xc4
+ mov r7, r0, lsr #0x5
+ and r4, r0, #0x1f
+ mov r5, #0x1
+ mvn r4, r5, lsl r4
+ ldr r6, [r8, r7, lsl #0x2]
+ mul r5, r0, lr
+ and r0, r6, r4
+ str r0, [r8, r7, lsl #0x2]
+ ldr r4, [r1, #0xc]
+ ldr r0, _020BEE30 ; =UNK_021CFD8C
+ ldr lr, _020BEE34 ; =UNK_021CFD90
+ str r4, [r0, r5]
+ ldr r4, [r1, #0x10]
+ ldr r0, _020BEE38 ; =UNK_021CFD94
+ str r4, [lr, r5]
+ ldr r1, [r1, #0x14]
+ str r1, [r0, r5]
+_020BEDB8:
+ ands r0, r3, #0x1
+ beq _020BEE1C
+ ldrb r0, [r2, #0x2]
+ ldr r2, [r12, #0x0]
+ ldr r1, _020BEE2C ; =UNK_021CEF7C
+ orr r2, r2, #0x20
+ str r2, [r12, #0x0]
+ ldr r2, [r1, #0x0]
+ mov r1, r0, lsr #0x5
+ add r1, r2, r1, lsl #0x2
+ and r2, r0, #0x1f
+ mov r3, #0x1
+ mov r2, r3, lsl r2
+ ldr r1, [r1, #0xc4]
+ ands r1, r2, r1
+ ldrne r0, [r12, #0x0]
+ orrne r0, r0, #0x8
+ strne r0, [r12, #0x0]
+ bne _020BEE1C
+ ldr r2, _020BEE30 ; =UNK_021CFD8C
+ mov r1, #0x18
+ mla r1, r0, r1, r2
+ add r3, r12, #0x10
+ ldmia r1, {r0-r2}
+ stmia r3, {r0-r2}
+_020BEE1C:
+ ldr r0, [r12, #0x0]
+ orr r0, r0, #0x10
+ str r0, [r12, #0x0]
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020BEE2C: .word UNK_021CEF7C
+_020BEE30: .word UNK_021CFD8C
+_020BEE34: .word UNK_021CFD90
+_020BEE38: .word UNK_021CFD94
+
+ arm_func_start FUN_020BEE3C
+FUN_020BEE3C: ; 0x020BEE3C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r1, [r5, #0x0]
+ mov r4, #0x0
+ ands r0, r1, #0x4
+ moveq r4, #0x1
+ ands r0, r1, #0x20
+ beq _020BEE94
+ ands r0, r1, #0x8
+ bne _020BEE94
+ cmp r4, #0x0
+ beq _020BEE84
+ add r1, r5, #0x4c
+ mov r0, #0x1c
+ mov r2, #0x3
+ bl FUN_020BB1C0
+ mov r4, #0x0
+_020BEE84:
+ add r1, r5, #0x10
+ mov r0, #0x1b
+ mov r2, #0x3
+ bl FUN_020BB1C0
+_020BEE94:
+ ldr r0, [r5, #0x0]
+ ands r0, r0, #0x2
+ bne _020BEED0
+ cmp r4, #0x0
+ beq _020BEEBC
+ add r1, r5, #0x28
+ mov r0, #0x19
+ mov r2, #0xc
+ bl FUN_020BB1C0
+ b _020BEEE8
+_020BEEBC:
+ add r1, r5, #0x28
+ mov r0, #0x1a
+ mov r2, #0x9
+ bl FUN_020BB1C0
+ b _020BEEE8
+_020BEED0:
+ cmp r4, #0x0
+ beq _020BEEE8
+ add r1, r5, #0x4c
+ mov r0, #0x1c
+ mov r2, #0x3
+ bl FUN_020BB1C0
+_020BEEE8:
+ ldr r0, [r5, #0x0]
+ ands r0, r0, #0x1
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,pc}
+ add r1, r5, #0x4
+ mov r0, #0x1b
+ mov r2, #0x3
+ bl FUN_020BB1C0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020BEF10
+FUN_020BEF10: ; 0x020BEF10
+ stmdb sp!, {lr}
+ sub sp, sp, #0x3c
+ ldr r1, [r0, #0x0]
+ mov r3, #0x0
+ ands r1, r1, #0x8
+ ldrne r1, _020BF0CC ; =0x00101710
+ mov r2, #0x3
+ strne r1, [sp, #0x0]
+ ldreq r1, _020BF0D0 ; =0x00101910
+ str r3, [sp, #0x34]
+ streq r1, [sp, #0x0]
+ mov r1, #0x2
+ str r1, [sp, #0x38]
+ str r3, [sp, #0x28]
+ str r3, [sp, #0x24]
+ str r3, [sp, #0x20]
+ str r3, [sp, #0x1c]
+ str r3, [sp, #0x14]
+ str r3, [sp, #0x10]
+ str r3, [sp, #0xc]
+ str r2, [sp, #0x4]
+ ldr r2, [r0, #0x0]
+ ands r1, r2, #0x4
+ beq _020BEFA0
+ str r3, [sp, #0x2c]
+ str r3, [sp, #0x30]
+ ldr r1, [r0, #0x0]
+ ands r1, r1, #0x1
+ movne r1, #0x1000
+ strne r1, [sp, #0x8]
+ strne r1, [sp, #0x18]
+ ldreq r1, [r0, #0x18]
+ streq r1, [sp, #0x8]
+ ldreq r1, [r0, #0x1c]
+ streq r1, [sp, #0x18]
+ b _020BF040
+_020BEFA0:
+ ands r1, r2, #0x1
+ beq _020BEFE8
+ ldr r2, [r0, #0x24]
+ ldrh r1, [r0, #0x2c]
+ mov r2, r2, lsl #0x4
+ rsb r2, r2, #0x0
+ mul r1, r2, r1
+ str r1, [sp, #0x2c]
+ ldr r2, [r0, #0x28]
+ ldrh r1, [r0, #0x2e]
+ mov r2, r2, lsl #0x4
+ rsb r2, r2, #0x0
+ mul r3, r2, r1
+ mov r1, #0x1000
+ str r3, [sp, #0x30]
+ str r1, [sp, #0x8]
+ str r1, [sp, #0x18]
+ b _020BF040
+_020BEFE8:
+ ldr r2, [r0, #0x18]
+ ldr r1, [r0, #0x24]
+ ldrh r12, [r0, #0x2c]
+ smull r3, r1, r2, r1
+ mov r2, r3, lsr #0x8
+ orr r2, r2, r1, lsl #0x18
+ rsb r1, r2, #0x0
+ mul r1, r12, r1
+ str r1, [sp, #0x2c]
+ ldr r2, [r0, #0x1c]
+ ldr r1, [r0, #0x28]
+ ldrh r12, [r0, #0x2e]
+ smull r3, r1, r2, r1
+ mov r2, r3, lsr #0x8
+ orr r2, r2, r1, lsl #0x18
+ rsb r1, r2, #0x0
+ mul r1, r12, r1
+ str r1, [sp, #0x30]
+ ldr r1, [r0, #0x18]
+ str r1, [sp, #0x8]
+ ldr r1, [r0, #0x1c]
+ str r1, [sp, #0x18]
+_020BF040:
+ ldr r12, [r0, #0x30]
+ cmp r12, #0x1000
+ beq _020BF078
+ ldr r2, [sp, #0x8]
+ ldr r1, [sp, #0x2c]
+ smull r3, r2, r12, r2
+ mov r3, r3, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ str r3, [sp, #0x8]
+ ldr r2, [r0, #0x30]
+ smull r3, r1, r2, r1
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [sp, #0x2c]
+_020BF078:
+ ldr r12, [r0, #0x34]
+ cmp r12, #0x1000
+ beq _020BF0B0
+ ldr r2, [sp, #0x18]
+ ldr r1, [sp, #0x30]
+ smull r3, r2, r12, r2
+ mov r3, r3, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ str r3, [sp, #0x18]
+ ldr r0, [r0, #0x34]
+ smull r2, r1, r0, r1
+ mov r0, r2, lsr #0xc
+ orr r0, r0, r1, lsl #0x14
+ str r0, [sp, #0x30]
+_020BF0B0:
+ add r1, sp, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, r1, #0x4
+ mov r2, #0xe
+ bl FUN_020BB1C0
+ add sp, sp, #0x3c
+ ldmia sp!, {pc}
+ .balign 4
+_020BF0CC: .word 0x00101710
+_020BF0D0: .word 0x00101910
+
+ arm_func_start FUN_020BF0D4
+FUN_020BF0D4: ; 0x020BF0D4
+ stmdb sp!, {r4-r8,lr}
+ mov r5, r0
+ ands r0, r3, #0x4
+ ldrb r4, [r2, #0x1]
+ ldrb r0, [r2, #0x2]
+ beq _020BF174
+ ldr r2, [r5, #0x0]
+ ldr r1, _020BF2E0 ; =UNK_021CEF7C
+ orr r2, r2, #0x1
+ str r2, [r5, #0x0]
+ ldr r3, [r1, #0x0]
+ mov r1, r0, lsr #0x5
+ add r1, r3, r1, lsl #0x2
+ and r2, r0, #0x1f
+ mov r6, #0x1
+ mov r2, r6, lsl r2
+ ldr r1, [r1, #0xc4]
+ ands r1, r2, r1
+ beq _020BF148
+ add r3, r3, #0xc4
+ mov r2, r4, lsr #0x5
+ ldr r1, [r3, r2, lsl #0x2]
+ and r0, r4, #0x1f
+ orr r0, r1, r6, lsl r0
+ str r0, [r3, r2, lsl #0x2]
+ ldr r0, [r5, #0x0]
+ orr r0, r0, #0x18
+ str r0, [r5, #0x0]
+ ldmia sp!, {r4-r8,pc}
+_020BF148:
+ ldr r1, _020BF2E4 ; =UNK_021CFD80
+ mov r2, #0x18
+ mla r6, r0, r2, r1
+ mla r1, r4, r2, r1
+ mov r0, r6
+ bl MIi_CpuCopy32
+ mov r0, r6
+ add r1, r5, #0x10
+ mov r2, #0x18
+ bl MIi_CpuCopy32
+ ldmia sp!, {r4-r8,pc}
+_020BF174:
+ ldr r3, [r1, #0x0]
+ ldr r2, _020BF2E0 ; =UNK_021CEF7C
+ str r3, [r5, #0x4]
+ ldr r3, [r1, #0x4]
+ mov r7, r0, lsr #0x5
+ str r3, [r5, #0x8]
+ ldr r3, [r1, #0x8]
+ and r8, r0, #0x1f
+ str r3, [r5, #0xc]
+ ldr r6, [r2, #0x0]
+ mov r3, #0x1
+ add r2, r6, r7, lsl #0x2
+ mov r7, r3, lsl r8
+ ldr r2, [r2, #0xc4]
+ ands r2, r7, r2
+ beq _020BF200
+ ldr r3, _020BF2E4 ; =UNK_021CFD80
+ mov r2, #0x18
+ mov r0, r1
+ mla r1, r4, r2, r3
+ bl MIi_CpuCopy32
+ ldr r0, _020BF2E0 ; =UNK_021CEF7C
+ mov r2, r4, lsr #0x5
+ ldr r1, [r0, #0x0]
+ and r0, r4, #0x1f
+ add r3, r1, #0xc4
+ mov r1, #0x1
+ mvn r0, r1, lsl r0
+ ldr r1, [r3, r2, lsl #0x2]
+ and r0, r1, r0
+ str r0, [r3, r2, lsl #0x2]
+ ldr r0, [r5, #0x0]
+ orr r0, r0, #0x18
+ str r0, [r5, #0x0]
+ ldmia sp!, {r4-r8,pc}
+_020BF200:
+ mov r2, #0x18
+ mul r12, r0, r2
+ and r7, r4, #0x1f
+ ldr r0, _020BF2E4 ; =UNK_021CFD80
+ add r6, r6, #0xc4
+ mov lr, r4, lsr #0x5
+ mvn r7, r3, lsl r7
+ ldr r8, [r6, lr, lsl #0x2]
+ mul r3, r4, r2
+ and r4, r8, r7
+ str r4, [r6, lr, lsl #0x2]
+ ldr r7, [r1, #0x0]
+ ldr r4, [r0, r12]
+ ldr r6, _020BF2E8 ; =UNK_021CFD84
+ smull r8, r4, r7, r4
+ mov r7, r8, lsr #0xc
+ orr r7, r7, r4, lsl #0x14
+ str r7, [r0, r3]
+ ldr r8, [r1, #0x4]
+ ldr r4, [r6, r12]
+ ldr r7, _020BF2EC ; =UNK_021CFD88
+ smull lr, r4, r8, r4
+ mov r8, lr, lsr #0xc
+ orr r8, r8, r4, lsl #0x14
+ str r8, [r6, r3]
+ ldr r8, [r1, #0x8]
+ ldr r4, [r7, r12]
+ ldr r6, _020BF2F0 ; =UNK_021CFD8C
+ smull lr, r4, r8, r4
+ mov r8, lr, lsr #0xc
+ orr r8, r8, r4, lsl #0x14
+ str r8, [r7, r3]
+ ldr r7, [r1, #0xc]
+ ldr r4, [r6, r12]
+ ldr lr, _020BF2F4 ; =UNK_021CFD90
+ smull r8, r4, r7, r4
+ mov r7, r8, lsr #0xc
+ orr r7, r7, r4, lsl #0x14
+ str r7, [r6, r3]
+ ldr r7, [r1, #0x10]
+ ldr r4, [lr, r12]
+ ldr r6, _020BF2F8 ; =UNK_021CFD94
+ smull r8, r4, r7, r4
+ add r0, r0, r12
+ mov r7, r8, lsr #0xc
+ orr r7, r7, r4, lsl #0x14
+ str r7, [lr, r3]
+ ldr lr, [r1, #0x14]
+ ldr r4, [r6, r12]
+ add r1, r5, #0x10
+ smull r5, r4, lr, r4
+ mov r5, r5, lsr #0xc
+ orr r5, r5, r4, lsl #0x14
+ str r5, [r6, r3]
+ bl MIi_CpuCopy32
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020BF2E0: .word UNK_021CEF7C
+_020BF2E4: .word UNK_021CFD80
+_020BF2E8: .word UNK_021CFD84
+_020BF2EC: .word UNK_021CFD88
+_020BF2F0: .word UNK_021CFD8C
+_020BF2F4: .word UNK_021CFD90
+_020BF2F8: .word UNK_021CFD94
+
+ arm_func_start FUN_020BF2FC
+FUN_020BF2FC: ; 0x020BF2FC
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x10
+ mov r6, r0
+ ldr r0, [r6, #0x0]
+ mov r5, #0x0
+ ands r4, r0, #0x18
+ bne _020BF328
+ add r1, r6, #0x1c
+ mov r0, #0x1b
+ mov r2, #0x3
+ bl FUN_020BB1C0
+_020BF328:
+ ldr r0, [r6, #0x0]
+ ands r0, r0, #0x4
+ bne _020BF398
+ cmp r4, #0x0
+ movne r5, #0x1
+ bne _020BF398
+ ldr r2, [r6, #0x4c]
+ ldr r0, [r6, #0x10]
+ add r1, sp, #0x0
+ smull r3, r0, r2, r0
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ str r2, [sp, #0x0]
+ ldr r3, [r6, #0x50]
+ ldr r2, [r6, #0x14]
+ mov r0, #0x1c
+ smull r12, r2, r3, r2
+ mov r3, r12, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ str r3, [sp, #0x4]
+ ldr r12, [r6, #0x54]
+ ldr r3, [r6, #0x18]
+ mov r2, #0x3
+ smull lr, r3, r12, r3
+ mov r12, lr, lsr #0xc
+ orr r12, r12, r3, lsl #0x14
+ str r12, [sp, #0x8]
+ bl FUN_020BB1C0
+_020BF398:
+ ldr r0, [r6, #0x0]
+ ands r0, r0, #0x2
+ bne _020BF3D4
+ cmp r5, #0x0
+ beq _020BF3C0
+ add r1, r6, #0x28
+ mov r0, #0x19
+ mov r2, #0xc
+ bl FUN_020BB1C0
+ b _020BF3EC
+_020BF3C0:
+ add r1, r6, #0x28
+ mov r0, #0x1a
+ mov r2, #0x9
+ bl FUN_020BB1C0
+ b _020BF3EC
+_020BF3D4:
+ cmp r5, #0x0
+ beq _020BF3EC
+ add r1, r6, #0x4c
+ mov r0, #0x1c
+ mov r2, #0x3
+ bl FUN_020BB1C0
+_020BF3EC:
+ cmp r4, #0x0
+ bne _020BF404
+ add r1, r6, #0x10
+ mov r0, #0x1b
+ mov r2, #0x3
+ bl FUN_020BB1C0
+_020BF404:
+ ldr r0, [r6, #0x0]
+ ands r0, r0, #0x1
+ addne sp, sp, #0x10
+ ldmneia sp!, {r4-r6,pc}
+ add r1, r6, #0x4
+ mov r0, #0x1b
+ mov r2, #0x3
+ bl FUN_020BB1C0
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BF42C
+FUN_020BF42C: ; 0x020BF42C
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x50
+ mov r4, r0
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ ands r0, r0, #0x8
+ ldrne r0, _020BF568 ; =0x00101610
+ mov r3, #0x3
+ strne r0, [sp, #0x0]
+ ldreq r0, _020BF56C ; =0x00101810
+ mov r2, #0x2
+ streq r0, [sp, #0x0]
+ mov r0, #0x1000
+ str r0, [sp, #0x44]
+ str r3, [sp, #0x4]
+ str r2, [sp, #0x48]
+ str r1, [sp, #0x40]
+ str r1, [sp, #0x34]
+ str r1, [sp, #0x30]
+ str r1, [sp, #0x2c]
+ str r1, [sp, #0x28]
+ str r1, [sp, #0x24]
+ str r1, [sp, #0x20]
+ str r1, [sp, #0x14]
+ str r1, [sp, #0x10]
+ ldr r1, [r4, #0x0]
+ ldr r0, _020BF570 ; =UNK_021067D0
+ and r1, r1, #0x7
+ ldr r2, [r0, r1, lsl #0x2]
+ add r0, sp, #0x8
+ mov r1, r4
+ blx r2
+ ldr r3, [r4, #0x30]
+ cmp r3, #0x1000
+ beq _020BF4FC
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ smull r2, r0, r3, r0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ str r2, [sp, #0x8]
+ ldr r2, [r4, #0x30]
+ ldr r0, [sp, #0x38]
+ smull r3, r1, r2, r1
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [sp, #0xc]
+ ldr r1, [r4, #0x30]
+ smull r2, r0, r1, r0
+ mov r1, r2, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ str r1, [sp, #0x38]
+_020BF4FC:
+ ldr r3, [r4, #0x34]
+ cmp r3, #0x1000
+ beq _020BF54C
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ smull r2, r0, r3, r0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ str r2, [sp, #0x18]
+ ldr r2, [r4, #0x34]
+ ldr r0, [sp, #0x3c]
+ smull r3, r1, r2, r1
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [sp, #0x1c]
+ ldr r1, [r4, #0x34]
+ smull r2, r0, r1, r0
+ mov r1, r2, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ str r1, [sp, #0x3c]
+_020BF54C:
+ add r1, sp, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, r1, #0x4
+ mov r2, #0x12
+ bl FUN_020BB1C0
+ add sp, sp, #0x50
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020BF568: .word 0x00101610
+_020BF56C: .word 0x00101810
+_020BF570: .word UNK_021067D0
+
+ arm_func_start FUN_020BF574
+FUN_020BF574: ; 0x020BF574
+ mov r2, #0x1000
+ str r2, [r0, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ str r1, [r0, #0x10]
+ str r2, [r0, #0x14]
+ str r1, [r0, #0x30]
+ str r1, [r0, #0x34]
+ bx lr
+
+ arm_func_start FUN_020BF598
+FUN_020BF598: ; 0x020BF598
+ ldr r2, [r1, #0x18]
+ mov r12, #0x0
+ str r2, [r0, #0x0]
+ ldr r2, [r1, #0x1c]
+ str r2, [r0, #0x14]
+ str r12, [r0, #0x4]
+ ldr r3, [r1, #0x18]
+ ldrh r2, [r1, #0x2c]
+ rsb r3, r3, #0x1000
+ mul r2, r3, r2
+ mov r2, r2, lsl #0x3
+ str r2, [r0, #0x30]
+ ldr r2, [r1, #0x1c]
+ ldrh r1, [r1, #0x2e]
+ rsb r2, r2, #0x1000
+ mul r1, r2, r1
+ mov r1, r1, lsl #0x3
+ str r1, [r0, #0x34]
+ str r12, [r0, #0x10]
+ bx lr
+
+ arm_func_start FUN_020BF5E8
+FUN_020BF5E8: ; 0x020BF5E8
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldrh r2, [r5, #0x2c]
+ ldrh r1, [r5, #0x2e]
+ mov r6, r0
+ mov r4, r2, lsl #0xc
+ mov r7, r1, lsl #0xc
+ mov r0, r7
+ mov r1, r4
+ bl FX_DivAsync
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x0]
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x14]
+ bl FX_GetDivResult
+ ldrsh r2, [r5, #0x20]
+ mov r1, r7
+ mul r0, r2, r0
+ mov r2, r0, asr #0xc
+ mov r0, r4
+ str r2, [r6, #0x4]
+ bl FX_DivAsync
+ ldrh r2, [r5, #0x2c]
+ ldrh r1, [r5, #0x2e]
+ ldrsh r4, [r5, #0x22]
+ rsb r0, r2, #0x0
+ rsb r1, r1, #0x0
+ mov r0, r0, lsl #0xb
+ ldrsh r3, [r5, #0x20]
+ mov r1, r1, lsl #0xb
+ smull r7, lr, r4, r0
+ smull r12, r4, r3, r1
+ subs r7, r7, r12
+ sbc r3, lr, r4
+ mov r4, r7, lsr #0x8
+ orr r4, r4, r3, lsl #0x18
+ add r2, r4, r2, lsl #0xf
+ str r2, [r6, #0x30]
+ ldrsh r2, [r5, #0x22]
+ ldrsh r3, [r5, #0x20]
+ ldrh r12, [r5, #0x2e]
+ smull r4, r1, r2, r1
+ smlal r4, r1, r3, r0
+ mov r0, r4, lsr #0x8
+ orr r0, r0, r1, lsl #0x18
+ add r0, r0, r12, lsl #0xf
+ str r0, [r6, #0x34]
+ bl FX_GetDivResult
+ ldrsh r1, [r5, #0x20]
+ rsb r1, r1, #0x0
+ mul r0, r1, r0
+ mov r0, r0, asr #0xc
+ str r0, [r6, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020BF6C8
+FUN_020BF6C8: ; 0x020BF6C8
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r9, r1
+ ldrh r2, [r9, #0x2c]
+ ldrh r1, [r9, #0x2e]
+ mov r10, r0
+ mov r8, r2, lsl #0xc
+ mov r11, r1, lsl #0xc
+ mov r0, r11
+ mov r1, r8
+ bl FX_DivAsync
+ ldrsh r0, [r9, #0x22]
+ ldr r3, [r9, #0x18]
+ ldrsh r5, [r9, #0x20]
+ ldr r4, [r9, #0x1c]
+ smull r2, r1, r3, r0
+ mov r7, r2, lsr #0xc
+ orr r7, r7, r1, lsl #0x14
+ smull r2, r1, r3, r5
+ mov r6, r2, lsr #0xc
+ orr r6, r6, r1, lsl #0x14
+ smull r3, r2, r4, r0
+ smull r1, r0, r4, r5
+ mov r5, r3, lsr #0xc
+ orr r5, r5, r2, lsl #0x14
+ mov r4, r1, lsr #0xc
+ orr r4, r4, r0, lsl #0x14
+ str r7, [r10, #0x0]
+ str r5, [r10, #0x14]
+ bl FX_GetDivResult
+ mov r1, r11
+ mul r0, r4, r0
+ mov r0, r0, asr #0xc
+ str r0, [r10, #0x4]
+ mov r0, r8
+ bl FX_DivAsync
+ ldrh r3, [r9, #0x2c]
+ ldrh r1, [r9, #0x2e]
+ rsb r0, r3, #0x0
+ rsb r1, r1, #0x0
+ mov r2, r1, lsl #0xb
+ mov r11, r0, lsl #0xb
+ smull r1, r0, r7, r11
+ smull r8, r7, r5, r2
+ smlal r8, r7, r4, r11
+ mov r4, r8, lsr #0x8
+ orr r4, r4, r7, lsl #0x18
+ smull r5, r2, r6, r2
+ subs r1, r1, r5
+ sbc r0, r0, r2
+ mov r1, r1, lsr #0x8
+ orr r1, r1, r0, lsl #0x18
+ add r0, r1, r3, lsl #0xf
+ str r0, [r10, #0x30]
+ ldrh r0, [r9, #0x2e]
+ add r0, r4, r0, lsl #0xf
+ str r0, [r10, #0x34]
+ bl FX_GetDivResult
+ rsb r1, r6, #0x0
+ mul r0, r1, r0
+ mov r0, r0, asr #0xc
+ str r0, [r10, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020BF7C8
+FUN_020BF7C8: ; 0x020BF7C8
+ mov r2, #0x1000
+ str r2, [r0, #0x0]
+ str r2, [r0, #0x14]
+ mov r12, #0x0
+ str r12, [r0, #0x4]
+ ldr r3, [r1, #0x24]
+ ldrh r2, [r1, #0x2c]
+ rsb r3, r3, #0x0
+ mul r2, r3, r2
+ mov r2, r2, lsl #0x4
+ str r2, [r0, #0x30]
+ ldrh r2, [r1, #0x2e]
+ ldr r1, [r1, #0x28]
+ mul r2, r1, r2
+ mov r1, r2, lsl #0x4
+ str r1, [r0, #0x34]
+ str r12, [r0, #0x10]
+ bx lr
+
+ arm_func_start FUN_020BF810
+FUN_020BF810: ; 0x020BF810
+ stmdb sp!, {r4-r6,lr}
+ ldr r2, [r1, #0x18]
+ mov r3, #0x0
+ str r2, [r0, #0x0]
+ ldr r2, [r1, #0x1c]
+ str r2, [r0, #0x14]
+ str r3, [r0, #0x4]
+ ldrh r5, [r1, #0x2c]
+ ldr r12, [r1, #0x24]
+ ldrh r2, [r1, #0x2e]
+ mul lr, r12, r5
+ rsb r12, r5, #0x0
+ mov r12, r12, lsl #0xb
+ ldr r4, [r1, #0x18]
+ sub r12, r12, lr
+ smull lr, r12, r4, r12
+ ldr r6, [r1, #0x28]
+ mov r4, lr, lsr #0x8
+ orr r4, r4, r12, lsl #0x18
+ add r4, r4, r5, lsl #0xf
+ str r4, [r0, #0x30]
+ mul r4, r6, r2
+ rsb r5, r2, #0x0
+ ldr r2, [r1, #0x1c]
+ add r4, r4, r5, lsl #0xb
+ smull lr, r12, r2, r4
+ mov r2, lr, lsr #0x8
+ ldrh r1, [r1, #0x2e]
+ orr r2, r2, r12, lsl #0x18
+ add r1, r2, r1, lsl #0xf
+ str r1, [r0, #0x34]
+ str r3, [r0, #0x10]
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020BF894
+FUN_020BF894: ; 0x020BF894
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldrh r2, [r5, #0x2c]
+ ldrh r1, [r5, #0x2e]
+ mov r6, r0
+ mov r4, r2, lsl #0xc
+ mov r7, r1, lsl #0xc
+ mov r0, r7
+ mov r1, r4
+ bl FX_DivAsync
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x0]
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x14]
+ bl FX_GetDivResult
+ ldrsh r2, [r5, #0x20]
+ mov r1, r7
+ mul r0, r2, r0
+ mov r2, r0, asr #0xc
+ mov r0, r4
+ str r2, [r6, #0x4]
+ bl FX_DivAsync
+ ldrh r2, [r5, #0x2c]
+ ldrh r7, [r5, #0x2e]
+ ldr r1, [r5, #0x28]
+ ldr r0, [r5, #0x24]
+ rsb r4, r2, #0x0
+ mul r3, r1, r7
+ rsb r1, r7, #0x0
+ add r1, r3, r1, lsl #0xb
+ ldrsh r3, [r5, #0x20]
+ mov r7, r4, lsl #0xb
+ mul r4, r0, r2
+ sub r0, r7, r4
+ ldrsh lr, [r5, #0x22]
+ smull r12, r4, r3, r1
+ smull r7, r3, lr, r0
+ subs r7, r7, r12
+ sbc r3, r3, r4
+ mov r4, r7, lsr #0x8
+ orr r4, r4, r3, lsl #0x18
+ add r2, r4, r2, lsl #0xf
+ str r2, [r6, #0x30]
+ ldrsh r2, [r5, #0x22]
+ ldrsh r3, [r5, #0x20]
+ ldrh r12, [r5, #0x2e]
+ smull r4, r1, r2, r1
+ smlal r4, r1, r3, r0
+ mov r0, r4, lsr #0x8
+ orr r0, r0, r1, lsl #0x18
+ add r0, r0, r12, lsl #0xf
+ str r0, [r6, #0x34]
+ bl FX_GetDivResult
+ ldrsh r1, [r5, #0x20]
+ rsb r1, r1, #0x0
+ mul r0, r1, r0
+ mov r0, r0, asr #0xc
+ str r0, [r6, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020BF988
+FUN_020BF988: ; 0x020BF988
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r9, r1
+ ldrh r2, [r9, #0x2c]
+ ldrh r1, [r9, #0x2e]
+ mov r10, r0
+ mov r8, r2, lsl #0xc
+ mov r11, r1, lsl #0xc
+ mov r0, r11
+ mov r1, r8
+ bl FX_DivAsync
+ ldrsh r0, [r9, #0x22]
+ ldr r3, [r9, #0x18]
+ ldrsh r5, [r9, #0x20]
+ ldr r4, [r9, #0x1c]
+ smull r2, r1, r3, r0
+ mov r7, r2, lsr #0xc
+ orr r7, r7, r1, lsl #0x14
+ smull r2, r1, r3, r5
+ mov r6, r2, lsr #0xc
+ orr r6, r6, r1, lsl #0x14
+ smull r3, r2, r4, r0
+ smull r1, r0, r4, r5
+ mov r5, r3, lsr #0xc
+ orr r5, r5, r2, lsl #0x14
+ mov r4, r1, lsr #0xc
+ orr r4, r4, r0, lsl #0x14
+ str r7, [r10, #0x0]
+ str r5, [r10, #0x14]
+ bl FX_GetDivResult
+ mov r1, r11
+ mul r0, r4, r0
+ mov r0, r0, asr #0xc
+ str r0, [r10, #0x4]
+ mov r0, r8
+ bl FX_DivAsync
+ ldrh r1, [r9, #0x2c]
+ ldrh r8, [r9, #0x2e]
+ ldr r2, [r9, #0x28]
+ rsb r0, r1, #0x0
+ mul r3, r2, r8
+ rsb r2, r8, #0x0
+ add r8, r3, r2, lsl #0xb
+ mov r0, r0, lsl #0xb
+ smull r3, r2, r5, r8
+ smull r8, r5, r6, r8
+ ldr r11, [r9, #0x24]
+ mul r12, r11, r1
+ sub r0, r0, r12
+ smlal r3, r2, r4, r0
+ smull r4, r0, r7, r0
+ subs r4, r4, r8
+ sbc r0, r0, r5
+ mov r4, r4, lsr #0x8
+ orr r4, r4, r0, lsl #0x18
+ add r0, r4, r1, lsl #0xf
+ str r0, [r10, #0x30]
+ ldrh r1, [r9, #0x2e]
+ mov r0, r3, lsr #0x8
+ orr r0, r0, r2, lsl #0x18
+ add r0, r0, r1, lsl #0xf
+ str r0, [r10, #0x34]
+ bl FX_GetDivResult
+ rsb r1, r6, #0x0
+ mul r0, r1, r0
+ mov r0, r0, asr #0xc
+ str r0, [r10, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020BFA9C
+FUN_020BFA9C: ; 0x020BFA9C
+ stmdb sp!, {r4,lr}
+ sub sp, sp, #0x50
+ mov r4, r0
+ ldr r0, [r4, #0x0]
+ mov r3, #0x3
+ ands r0, r0, #0x8
+ ldrne r0, _020BFC1C ; =0x00101610
+ mov r2, #0x2
+ strne r0, [sp, #0x0]
+ ldreq r0, _020BFC20 ; =0x00101810
+ mov r1, #0x1000
+ streq r0, [sp, #0x0]
+ mov r0, #0x0
+ str r3, [sp, #0x4]
+ str r2, [sp, #0x48]
+ str r1, [sp, #0x44]
+ str r0, [sp, #0x40]
+ str r0, [sp, #0x34]
+ str r0, [sp, #0x30]
+ str r0, [sp, #0x2c]
+ str r0, [sp, #0x28]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x20]
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x1
+ strne r1, [r4, #0x1c]
+ ldrne r0, [r4, #0x1c]
+ strne r0, [r4, #0x18]
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x2
+ movne r0, #0x1000
+ strneh r0, [r4, #0x22]
+ movne r0, #0x0
+ strneh r0, [r4, #0x20]
+ ldr r0, [r4, #0x0]
+ ands r0, r0, #0x4
+ movne r0, #0x0
+ strne r0, [r4, #0x28]
+ ldrne r0, [r4, #0x28]
+ strne r0, [r4, #0x24]
+ ldr r1, [r4, #0x0]
+ ldr r0, _020BFC24 ; =UNK_021067F0
+ and r1, r1, #0x7
+ ldr r2, [r0, r1, lsl #0x2]
+ add r0, sp, #0x8
+ mov r1, r4
+ blx r2
+ ldr r3, [r4, #0x30]
+ cmp r3, #0x1000
+ beq _020BFBB0
+ ldr r0, [sp, #0x8]
+ ldr r1, [sp, #0xc]
+ smull r2, r0, r3, r0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ str r2, [sp, #0x8]
+ ldr r2, [r4, #0x30]
+ ldr r0, [sp, #0x38]
+ smull r3, r1, r2, r1
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [sp, #0xc]
+ ldr r1, [r4, #0x30]
+ smull r2, r0, r1, r0
+ mov r1, r2, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ str r1, [sp, #0x38]
+_020BFBB0:
+ ldr r3, [r4, #0x34]
+ cmp r3, #0x1000
+ beq _020BFC00
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ smull r2, r0, r3, r0
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r0, lsl #0x14
+ str r2, [sp, #0x18]
+ ldr r2, [r4, #0x34]
+ ldr r0, [sp, #0x3c]
+ smull r3, r1, r2, r1
+ mov r2, r3, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [sp, #0x1c]
+ ldr r1, [r4, #0x34]
+ smull r2, r0, r1, r0
+ mov r1, r2, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ str r1, [sp, #0x3c]
+_020BFC00:
+ add r1, sp, #0x0
+ ldr r0, [sp, #0x0]
+ add r1, r1, #0x4
+ mov r2, #0x12
+ bl FUN_020BB1C0
+ add sp, sp, #0x50
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020BFC1C: .word 0x00101610
+_020BFC20: .word 0x00101810
+_020BFC24: .word UNK_021067F0
+
+ arm_func_start FUN_020BFC28
+FUN_020BFC28: ; 0x020BFC28
+ mov r2, #0x1000
+ str r2, [r0, #0x0]
+ mov r1, #0x0
+ str r1, [r0, #0x4]
+ str r1, [r0, #0x10]
+ str r2, [r0, #0x14]
+ str r1, [r0, #0x30]
+ str r1, [r0, #0x34]
+ bx lr
+
+ arm_func_start FUN_020BFC4C
+FUN_020BFC4C: ; 0x020BFC4C
+ ldr r2, [r1, #0x18]
+ mov r3, #0x0
+ str r2, [r0, #0x0]
+ ldr r2, [r1, #0x1c]
+ str r2, [r0, #0x14]
+ str r3, [r0, #0x4]
+ str r3, [r0, #0x30]
+ ldrh r2, [r1, #0x2e]
+ ldr r1, [r1, #0x1c]
+ rsb r2, r2, #0x0
+ sub r1, r1, #0x1000
+ mul r1, r2, r1
+ mov r1, r1, lsl #0x4
+ str r1, [r0, #0x34]
+ str r3, [r0, #0x10]
+ bx lr
+
+ arm_func_start FUN_020BFC8C
+FUN_020BFC8C: ; 0x020BFC8C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldrh r2, [r5, #0x2c]
+ ldrh r1, [r5, #0x2e]
+ mov r6, r0
+ mov r4, r2, lsl #0xc
+ mov r7, r1, lsl #0xc
+ mov r0, r7
+ mov r1, r4
+ bl FX_DivAsync
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x0]
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x14]
+ bl FX_GetDivResult
+ ldrsh r2, [r5, #0x20]
+ mov r1, r7
+ mul r0, r2, r0
+ mov r2, r0, asr #0xc
+ mov r0, r4
+ str r2, [r6, #0x4]
+ bl FX_DivAsync
+ ldrh r1, [r5, #0x2c]
+ ldrsh r0, [r5, #0x20]
+ mul r0, r1, r0
+ mov r0, r0, lsl #0x4
+ str r0, [r6, #0x30]
+ ldrh r1, [r5, #0x2e]
+ ldrsh r0, [r5, #0x22]
+ rsb r1, r1, #0x0
+ sub r0, r0, #0x1000
+ mul r0, r1, r0
+ mov r0, r0, lsl #0x4
+ str r0, [r6, #0x34]
+ bl FX_GetDivResult
+ ldrsh r1, [r5, #0x20]
+ rsb r1, r1, #0x0
+ mul r0, r1, r0
+ mov r0, r0, asr #0xc
+ str r0, [r6, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020BFD38
+FUN_020BFD38: ; 0x020BFD38
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r9, r1
+ ldrh r2, [r9, #0x2c]
+ ldrh r1, [r9, #0x2e]
+ mov r10, r0
+ mov r8, r2, lsl #0xc
+ mov r11, r1, lsl #0xc
+ mov r0, r11
+ mov r1, r8
+ bl FX_DivAsync
+ ldrsh r3, [r9, #0x22]
+ ldr r0, [r9, #0x18]
+ ldrsh r7, [r9, #0x20]
+ ldr r5, [r9, #0x1c]
+ smull r2, r1, r0, r3
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ str r2, [r10, #0x0]
+ smull r2, r1, r5, r3
+ mov r4, r2, lsr #0xc
+ orr r4, r4, r1, lsl #0x14
+ smull r2, r1, r0, r7
+ mov r6, r2, lsr #0xc
+ orr r6, r6, r1, lsl #0x14
+ str r4, [r10, #0x14]
+ bl FX_GetDivResult
+ smull r2, r1, r5, r7
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ mul r0, r2, r0
+ mov r0, r0, asr #0xc
+ str r0, [r10, #0x4]
+ mov r0, r8
+ mov r1, r11
+ bl FX_DivAsync
+ sub r0, r4, #0x1000
+ ldrh r1, [r9, #0x2c]
+ mul r2, r1, r6
+ mov r1, r2, lsl #0x4
+ str r1, [r10, #0x30]
+ ldrh r1, [r9, #0x2e]
+ rsb r1, r1, #0x0
+ mul r0, r1, r0
+ mov r0, r0, lsl #0x4
+ str r0, [r10, #0x34]
+ bl FX_GetDivResult
+ rsb r1, r6, #0x0
+ mul r0, r1, r0
+ mov r0, r0, asr #0xc
+ str r0, [r10, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020BFE0C
+FUN_020BFE0C: ; 0x020BFE0C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, #0x1000
+ str r2, [r0, #0x0]
+ str r2, [r0, #0x14]
+ mov lr, #0x0
+ str lr, [r0, #0x4]
+ ldr r2, [r1, #0x24]
+ ldrh r3, [r1, #0x2c]
+ rsb r2, r2, #0x0
+ ldr r12, [r1, #0x28]
+ mul r2, r3, r2
+ mov r2, r2, lsl #0x4
+ str r2, [r0, #0x30]
+ ldrh r1, [r1, #0x2e]
+ rsb r2, r12, #0x0
+ rsb r1, r1, #0x0
+ mul r2, r1, r2
+ mov r1, r2, lsl #0x4
+ str r1, [r0, #0x34]
+ str lr, [r0, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020BFE68
+FUN_020BFE68: ; 0x020BFE68
+ stmdb sp!, {r4,lr}
+ ldr r3, [r1, #0x18]
+ mov r2, #0x0
+ str r3, [r0, #0x0]
+ ldr r3, [r1, #0x1c]
+ str r3, [r0, #0x14]
+ str r2, [r0, #0x4]
+ ldr r12, [r1, #0x24]
+ ldr r3, [r1, #0x18]
+ ldr r4, [r1, #0x28]
+ smull lr, r3, r12, r3
+ mov r12, lr, lsr #0xc
+ orr r12, r12, r3, lsl #0x14
+ ldrh lr, [r1, #0x2c]
+ rsb r3, r12, #0x0
+ ldr r12, [r1, #0x1c]
+ rsb r4, r4, #0x0
+ mul r3, lr, r3
+ smull lr, r12, r4, r12
+ mov r3, r3, lsl #0x4
+ str r3, [r0, #0x30]
+ mov r4, lr, lsr #0xc
+ ldrh r3, [r1, #0x2e]
+ ldr r1, [r1, #0x1c]
+ orr r4, r4, r12, lsl #0x14
+ add r1, r1, r4
+ rsb r3, r3, #0x0
+ sub r1, r1, #0x1000
+ mul r1, r3, r1
+ mov r1, r1, lsl #0x4
+ str r1, [r0, #0x34]
+ str r2, [r0, #0x10]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020BFEEC
+FUN_020BFEEC: ; 0x020BFEEC
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r1
+ ldrh r2, [r5, #0x2c]
+ ldrh r1, [r5, #0x2e]
+ mov r6, r0
+ mov r4, r2, lsl #0xc
+ mov r7, r1, lsl #0xc
+ mov r0, r7
+ mov r1, r4
+ bl FX_DivAsync
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x0]
+ ldrsh r0, [r5, #0x22]
+ str r0, [r6, #0x14]
+ bl FX_GetDivResult
+ ldrsh r2, [r5, #0x20]
+ mov r1, r7
+ mul r0, r2, r0
+ mov r2, r0, asr #0xc
+ mov r0, r4
+ str r2, [r6, #0x4]
+ bl FX_DivAsync
+ ldrsh lr, [r5, #0x20]
+ ldr r4, [r5, #0x28]
+ ldrsh r0, [r5, #0x22]
+ ldr r12, [r5, #0x24]
+ smull r3, r2, r4, lr
+ smlal r3, r2, r12, r0
+ smull r1, r0, r4, r0
+ mov r3, r3, lsr #0xc
+ orr r3, r3, r2, lsl #0x14
+ sub r4, lr, r3
+ smull r3, r2, r12, lr
+ subs r1, r3, r1
+ sbc r0, r2, r0
+ ldrh r2, [r5, #0x2c]
+ mov r1, r1, lsr #0xc
+ orr r1, r1, r0, lsl #0x14
+ mul r0, r2, r4
+ mov r0, r0, lsl #0x4
+ str r0, [r6, #0x30]
+ ldrsh r0, [r5, #0x22]
+ ldrh r2, [r5, #0x2e]
+ add r0, r0, r1
+ rsb r1, r2, #0x0
+ sub r0, r0, #0x1000
+ mul r0, r1, r0
+ mov r0, r0, lsl #0x4
+ str r0, [r6, #0x34]
+ bl FX_GetDivResult
+ ldrsh r1, [r5, #0x20]
+ rsb r1, r1, #0x0
+ mul r0, r1, r0
+ mov r0, r0, asr #0xc
+ str r0, [r6, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020BFFD4
+FUN_020BFFD4: ; 0x020BFFD4
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r6, r1
+ ldrh r2, [r6, #0x2c]
+ ldrh r1, [r6, #0x2e]
+ mov r7, r0
+ mov r10, r2, lsl #0xc
+ mov r11, r1, lsl #0xc
+ mov r0, r11
+ mov r1, r10
+ bl FX_DivAsync
+ ldrsh r3, [r6, #0x22]
+ ldr r0, [r6, #0x18]
+ ldrsh r9, [r6, #0x20]
+ smull r2, r1, r0, r3
+ mov r2, r2, lsr #0xc
+ ldr r8, [r6, #0x1c]
+ orr r2, r2, r1, lsl #0x14
+ str r2, [r7, #0x0]
+ smull r2, r1, r8, r3
+ mov r4, r2, lsr #0xc
+ orr r4, r4, r1, lsl #0x14
+ smull r2, r1, r0, r9
+ mov r5, r2, lsr #0xc
+ orr r5, r5, r1, lsl #0x14
+ str r4, [r7, #0x14]
+ bl FX_GetDivResult
+ smull r2, r1, r8, r9
+ mov r2, r2, lsr #0xc
+ orr r2, r2, r1, lsl #0x14
+ mul r0, r2, r0
+ mov r0, r0, asr #0xc
+ str r0, [r7, #0x4]
+ mov r0, r10
+ mov r1, r11
+ bl FX_DivAsync
+ ldr lr, [r6, #0x1c]
+ ldrsh r2, [r6, #0x20]
+ ldr r8, [r6, #0x24]
+ ldr r0, [r6, #0x28]
+ smull r10, r9, r8, r2
+ ldrh r1, [r6, #0x2c]
+ smull r3, r2, r0, r2
+ ldrsh r12, [r6, #0x22]
+ str r1, [sp, #0x0]
+ mov r11, lr, asr #0x1f
+ smlal r3, r2, r8, r12
+ smull r8, r12, r0, r12
+ subs r8, r10, r8
+ sbc r0, r9, r12
+ mov r9, r8, lsr #0xc
+ mov r12, r3, lsr #0xc
+ orr r9, r9, r0, lsl #0x14
+ mov r3, r2, asr #0xc
+ orr r12, r12, r2, lsl #0x14
+ umull r10, r2, r9, lr
+ mla r2, r9, r11, r2
+ mov r8, r0, asr #0xc
+ mla r2, r8, lr, r2
+ ldr r1, [r6, #0x18]
+ mov r8, r10, lsr #0xc
+ orr r8, r8, r2, lsl #0x14
+ add r2, r4, r8
+ mov r0, r1, asr #0x1f
+ umull r8, r4, r12, r1
+ mla r4, r12, r0, r4
+ mla r4, r3, r1, r4
+ mov r0, r8, lsr #0xc
+ orr r0, r0, r4, lsl #0x14
+ sub r1, r5, r0
+ ldr r0, [sp, #0x0]
+ sub r2, r2, #0x1000
+ mul r1, r0, r1
+ mov r0, r1, lsl #0x4
+ str r0, [r7, #0x30]
+ ldrh r0, [r6, #0x2e]
+ rsb r0, r0, #0x0
+ mul r1, r0, r2
+ mov r0, r1, lsl #0x4
+ str r0, [r7, #0x34]
+ bl FX_GetDivResult
+ rsb r1, r5, #0x0
+ mul r0, r1, r0
+ mov r0, r0, asr #0xc
+ str r0, [r7, #0x10]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020C0130
+FUN_020C0130: ; 0x020C0130
+ ldr ip, _020C0138 ; =FUN_020C187C
+ bx r12
+ .balign 4
+_020C0138: .word FUN_020C187C
+
+ arm_func_start FUN_020C013C
+FUN_020C013C: ; 0x020C013C
+ stmdb sp!, {r4,lr}
+ bl FUN_020C18F8
+ mov r0, #0x0
+ mov r1, r0
+ mov r2, r0
+ mov r3, r0
+ bl SND_StopTimer
+ bl SND_GetCurrentCommandTag
+ mov r4, r0
+ mov r0, #0x1
+ bl SND_FlushCommand
+ mov r0, r4
+ bl SND_WaitForCommandProc
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C0174
+FUN_020C0174: ; 0x020C0174
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ cmp r0, #0x0
+ beq _020C0194
+ mov r0, #0x40
+ bl SND_SetMasterPan
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+_020C0194:
+ bl SND_ResetMasterPan
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C01A0
+FUN_020C01A0: ; 0x020C01A0
+ stmdb sp!, {r4,lr}
+ mov r4, #0x0
+_020C01A8:
+ mov r0, r4
+ bl SND_RecvCommandReply
+ cmp r0, #0x0
+ bne _020C01A8
+ bl FUN_020C0BA0
+ bl FUN_020C1D9C
+ bl FUN_020C3C88
+ mov r0, #0x0
+ bl SND_FlushCommand
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C01D0
+FUN_020C01D0: ; 0x020C01D0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020C0254 ; =UNK_021D1C94
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {pc}
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+ bl SND_Init
+ ldr ip, _020C0258 ; =FUN_020C013C
+ ldr r0, _020C025C ; =UNK_021D1C98
+ mov r3, #0x0
+ ldr r1, _020C0260 ; =UNK_021D1CA4
+ ldr r2, _020C0264 ; =FUN_020C0130
+ str r12, [r0, #0x0]
+ str r3, [r0, #0x4]
+ str r2, [r1, #0x0]
+ str r3, [r1, #0x4]
+ bl PM_PrependPreSleepCallback
+ ldr r0, _020C0260 ; =UNK_021D1CA4
+ bl PM_AppendPostSleepCallback
+ bl FUN_020C0270
+ bl FUN_020C1E38
+ bl FUN_020C0D20
+ ldr r1, _020C0268 ; =UNK_021D1C8C
+ mvn r3, #0x0
+ ldr r0, _020C026C ; =UNK_021D1C90
+ mov r2, #0x1
+ strb r3, [r1, #0x0]
+ str r2, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020C0254: .word UNK_021D1C94
+_020C0258: .word FUN_020C013C
+_020C025C: .word UNK_021D1C98
+_020C0260: .word UNK_021D1CA4
+_020C0264: .word FUN_020C0130
+_020C0268: .word UNK_021D1C8C
+_020C026C: .word UNK_021D1C90
+
+ arm_func_start FUN_020C0270
+FUN_020C0270: ; 0x020C0270
+ ldr r2, _020C0290 ; =UNK_021D1CB8
+ mov r3, #0x0
+ ldr r1, _020C0294 ; =UNK_021D1CB0
+ ldr r0, _020C0298 ; =UNK_021D1CB4
+ str r3, [r2, #0x0]
+ str r3, [r1, #0x0]
+ str r3, [r0, #0x0]
+ bx lr
+ .balign 4
+_020C0290: .word UNK_021D1CB8
+_020C0294: .word UNK_021D1CB0
+_020C0298: .word UNK_021D1CB4
+
+ arm_func_start FUN_020C029C
+FUN_020C029C: ; 0x020C029C
+ ldr r1, _020C02B8 ; =UNK_021D1CB4
+ mov r2, #0x1
+ mvn r0, r2, lsl r0
+ ldr r2, [r1, #0x0]
+ and r0, r2, r0
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020C02B8: .word UNK_021D1CB4
+
+ arm_func_start FUN_020C02BC
+FUN_020C02BC: ; 0x020C02BC
+ ldr r0, _020C02FC ; =UNK_021D1CB4
+ mov r3, #0x1
+ ldr r2, [r0, #0x0]
+ mov r0, #0x0
+_020C02CC:
+ ands r1, r2, r3
+ ldreq r1, _020C02FC ; =UNK_021D1CB4
+ ldreq r2, [r1, #0x0]
+ orreq r2, r2, r3
+ streq r2, [r1, #0x0]
+ bxeq lr
+ add r0, r0, #0x1
+ cmp r0, #0x8
+ mov r3, r3, lsl #0x1
+ blt _020C02CC
+ mvn r0, #0x0
+ bx lr
+ .balign 4
+_020C02FC: .word UNK_021D1CB4
+
+ arm_func_start FUN_020C0300
+FUN_020C0300: ; 0x020C0300
+ ldr r1, _020C0318 ; =UNK_021D1CB0
+ mvn r0, r0
+ ldr r2, [r1, #0x0]
+ and r0, r2, r0
+ str r0, [r1, #0x0]
+ bx lr
+ .balign 4
+_020C0318: .word UNK_021D1CB0
+
+ arm_func_start FUN_020C031C
+FUN_020C031C:
+ ldr r1, _020C033C ; =UNK_021D1CB0
+ ldr r2, [r1, #0x0]
+ ands r3, r0, r2
+ movne r0, #0x0
+ orreq r0, r2, r0
+ streq r0, [r1, #0x0]
+ moveq r0, #0x1
+ bx lr
+ .balign 4
+_020C033C: .word UNK_021D1CB0
+
+ arm_func_start FUN_020C0340
+FUN_020C0340:
+ stmdb sp!, {r4,lr}
+ movs r4, r0
+ ldmeqia sp!, {r4,pc}
+ mov r1, #0x0
+ bl SND_UnlockChannel
+ ldr r0, _020C036C ; =UNK_021D1CB8
+ mvn r1, r4
+ ldr r2, [r0, #0x0]
+ and r1, r2, r1
+ str r1, [r0, #0x0]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C036C: .word UNK_021D1CB8
+
+ arm_func_start FUN_020C0370
+FUN_020C0370:
+ stmdb sp!, {r4,lr}
+ movs r4, r0
+ moveq r0, #0x1
+ ldmeqia sp!, {r4,pc}
+ ldr r1, _020C03B4 ; =UNK_021D1CB8
+ ldr r1, [r1, #0x0]
+ ands r1, r4, r1
+ movne r0, #0x0
+ ldmneia sp!, {r4,pc}
+ mov r1, #0x0
+ bl SND_LockChannel
+ ldr r1, _020C03B4 ; =UNK_021D1CB8
+ mov r0, #0x1
+ ldr r2, [r1, #0x0]
+ orr r2, r2, r4
+ str r2, [r1, #0x0]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C03B4: .word UNK_021D1CB8
+
+ arm_func_start FUN_020C03B8
+FUN_020C03B8: ; 0x020C03B8
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+ ldr r0, [r4, #0xc]
+ cmp r0, #0x0
+ bne _020C03F8
+ ldr r0, [r4, #0x10]
+ bl SND_IsFinishedCommandTag
+ cmp r0, #0x0
+ moveq r0, #0x1
+ ldmeqia sp!, {r4,pc}
+ mov r0, #0x1
+ str r0, [r4, #0xc]
+_020C03F8:
+ bl SND_GetChannelStatus
+ ldr r1, [r4, #0x0]
+ mov r2, #0x1
+ mov r1, r2, lsl r1
+ ands r0, r1, r0
+ movne r0, r2
+ moveq r0, #0x0
+ streq r0, [r4, #0x8]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C041C
+FUN_020C041C: ; 0x020C041C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, [r0, #0x8]
+ cmp r2, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldr r0, [r0, #0x0]
+ mov r2, #0x1
+ mov r0, r2, lsl r0
+ bl SND_SetChannelPan
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C044C
+FUN_020C044C: ; 0x020C044C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r0, [r5, #0x8]
+ mov r4, r1
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+ ldr r2, [r5, #0x4]
+ ldr r0, _020C04D4 ; =0xD87F8000
+ mov r3, r2, asr #0x1f
+ mov r1, #0x7f
+ bl _ll_udiv
+ mov r2, r4
+ mov r3, r4, asr #0x1f
+ bl _ll_udiv
+ mov r2, #0x0
+ mov r3, r0
+ mov r0, #0x10
+ cmp r1, r2
+ cmpeq r3, r0
+ movcc r3, r0
+ blo _020C04B8
+ ldr r0, _020C04D8 ; =0x0000FFFF
+ cmp r1, r2
+ cmpeq r3, r0
+ movhi r3, r0
+_020C04B8:
+ ldr r0, [r5, #0x0]
+ mov r1, #0x1
+ mov r0, r1, lsl r0
+ mov r1, r3
+ bl SND_SetChannelTimer
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020C04D4: .word 0xD87F8000
+_020C04D8: .word 0x0000FFFF
+
+ arm_func_start FUN_020C04DC
+FUN_020C04DC: ; 0x020C04DC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r2, [r0, #0x8]
+ cmp r2, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldr r0, [r0, #0x0]
+ mov r2, #0x1
+ mov r0, r2, lsl r0
+ mov r2, #0x0
+ bl SND_SetChannelVolume
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C0510
+FUN_020C0510: ; 0x020C0510
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,pc}
+ ldr r0, [r4, #0x0]
+ mov r2, #0x1
+ mov r1, #0x0
+ mov r0, r2, lsl r0
+ mov r2, r1
+ mov r3, r1
+ bl SND_StopTimer
+ mov r0, #0x0
+ str r0, [r4, #0x8]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C054C
+FUN_020C054C: ; 0x020C054C
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x1c
+ movs r8, r1
+ mov r9, r0
+ mov r7, r2
+ mov r6, r3
+ beq _020C0584
+ cmp r8, #0x1
+ ldreq r0, [sp, #0x3c]
+ ldreq r1, [sp, #0x38]
+ moveq r0, r0, asr #0x1
+ moveq r5, r1, asr #0x1
+ subeq r4, r0, r1, asr #0x1
+ b _020C0598
+_020C0584:
+ ldr r0, [sp, #0x3c]
+ ldr r1, [sp, #0x38]
+ mov r0, r0, asr #0x2
+ mov r5, r1, asr #0x2
+ sub r4, r0, r1, asr #0x2
+_020C0598:
+ ldr r2, [sp, #0x40]
+ ldr r0, _020C0668 ; =0xD87F8000
+ mov r3, r2, asr #0x1f
+ mov r1, #0x7f
+ bl _ll_udiv
+ ldr r2, [sp, #0x48]
+ mov r3, r2, asr #0x1f
+ bl _ll_udiv
+ mov r3, #0x0
+ mov r2, #0x10
+ cmp r1, r3
+ cmpeq r0, r2
+ movcc r0, r2
+ blo _020C05E0
+ ldr r2, _020C066C ; =0x0000FFFF
+ cmp r1, r3
+ cmpeq r0, r2
+ movhi r0, r2
+_020C05E0:
+ str r5, [sp, #0x0]
+ ldr r1, [sp, #0x44]
+ str r4, [sp, #0x4]
+ str r1, [sp, #0x8]
+ mov r1, #0x0
+ str r1, [sp, #0xc]
+ cmp r6, #0x0
+ movne r3, #0x1
+ ldr r1, [sp, #0x4c]
+ str r0, [sp, #0x10]
+ str r1, [sp, #0x14]
+ ldr r0, [r9, #0x0]
+ moveq r3, #0x2
+ mov r1, r8
+ mov r2, r7
+ bl SND_SetupChannelPcm
+ mov r1, #0x0
+ ldr r0, [r9, #0x0]
+ mov r2, #0x1
+ mov r0, r2, lsl r0
+ mov r2, r1
+ mov r3, r1
+ bl SND_StartTimer
+ mov r0, #0x1
+ str r0, [r9, #0x8]
+ mov r0, #0x0
+ str r0, [r9, #0xc]
+ bl SND_GetCurrentCommandTag
+ str r0, [r9, #0x10]
+ ldr r1, [sp, #0x40]
+ mov r0, #0x1
+ str r1, [r9, #0x4]
+ add sp, sp, #0x1c
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020C0668: .word 0xD87F8000
+_020C066C: .word 0x0000FFFF
+
+ arm_func_start FUN_020C0670
+FUN_020C0670: ; 0x020C0670
+ ldr r0, [r0, #0x0]
+ mov r1, #0x1
+ ldr ip, _020C0684 ; =FUN_020C0340
+ mov r0, r1, lsl r0
+ bx r12
+ .balign 4
+_020C0684: .word FUN_020C0340
+
+ arm_func_start FUN_020C0688
+FUN_020C0688: ; 0x020C0688
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r0, #0x1
+ mov r0, r0, lsl r4
+ bl FUN_020C0370
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+ mov r0, #0x14
+ mul r0, r4, r0
+ ldr r2, _020C06C8 ; =UNK_021D1CBC
+ mov r1, #0x0
+ str r4, [r2, r0]
+ add r0, r2, r0
+ str r1, [r0, #0x8]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C06C8: .word UNK_021D1CBC
+
+ arm_func_start FUN_020C06CC
+FUN_020C06CC: ; 0x020C06CC
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ ldr r4, [r6, #0x4]
+ mov r5, r1
+ cmp r4, #0x0
+ beq _020C06F8
+ mov r0, r4
+ mov r1, r6
+ bl FUN_020ADAB0
+ mov r0, #0x0
+ str r0, [r6, #0x4]
+_020C06F8:
+ ldr r0, _020C0728 ; =UNK_021D1E08
+ mov r1, r6
+ bl FUN_020ADAB0
+ strb r5, [r6, #0x3d]
+ cmp r4, #0x0
+ beq _020C071C
+ mov r0, r4
+ mov r1, r6
+ bl FUN_020C0910
+_020C071C:
+ mov r0, r6
+ bl FUN_020C08B4
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020C0728: .word UNK_021D1E08
+
+ arm_func_start FUN_020C072C
+FUN_020C072C: ; 0x020C072C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x8]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,pc}
+ bl FUN_020C2A7C
+ ldr r1, [r4, #0xc]
+ cmp r1, #0x0
+ movne r0, #0x0
+ strne r0, [r1, #0x8]
+ ldmneia sp!, {r4,pc}
+ ldr r1, [r4, #0x10]
+ ldr r2, _020C0778 ; =UNK_021D2254
+ mov r0, #0x24
+ mla r0, r1, r0, r2
+ mov r1, r4
+ add r0, r0, #0xc
+ bl FUN_020ADAB0
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C0778: .word UNK_021D2254
+
+ arm_func_start FUN_020C077C
+FUN_020C077C: ; 0x020C077C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ ldr r1, [r4, #0x0]
+ cmp r1, #0x0
+ movne r0, #0x0
+ strne r0, [r1, #0x0]
+ strne r0, [r4, #0x0]
+ ldr r5, [r4, #0x4]
+ mov r1, r4
+ mov r0, r5
+ bl FUN_020ADAB0
+ mov r0, #0x0
+ str r0, [r4, #0x4]
+ ldr r1, [r4, #0x8]
+ cmp r1, #0x0
+ beq _020C07D8
+ add r0, r5, #0xc
+ bl FUN_020ADBE8
+ ldr r0, [r4, #0x8]
+ mov r1, #0x0
+ str r1, [r0, #0xc]
+ str r1, [r4, #0x8]
+_020C07D8:
+ ldr r0, _020C0800 ; =UNK_021D1E08
+ mov r1, r4
+ bl FUN_020ADAB0
+ ldr r0, _020C0804 ; =UNK_021D1DFC
+ mov r1, r4
+ bl FUN_020ADBE8
+ mov r0, #0x0
+ strb r0, [r4, #0x2c]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020C0800: .word UNK_021D1E08
+_020C0804: .word UNK_021D1DFC
+
+ arm_func_start FUN_020C0808
+FUN_020C0808: ; 0x020C0808
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r0, _020C0874 ; =UNK_021D1DFC
+ mov r1, #0x0
+ bl FUN_020ADA98
+ movs r4, r0
+ bne _020C0850
+ ldr r0, _020C0878 ; =UNK_021D1E08
+ mov r1, #0x0
+ bl FUN_020ADA98
+ mov r4, r0
+ ldrb r1, [r4, #0x3d]
+ cmp r5, r1
+ addlt sp, sp, #0x4
+ movlt r0, #0x0
+ ldmltia sp!, {r4-r5,pc}
+ bl FUN_020C087C
+_020C0850:
+ ldr r0, _020C0874 ; =UNK_021D1DFC
+ mov r1, r4
+ bl FUN_020ADAB0
+ mov r0, r4
+ strb r5, [r4, #0x3d]
+ bl FUN_020C08B4
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020C0874: .word UNK_021D1DFC
+_020C0878: .word UNK_021D1E08
+
+ arm_func_start FUN_020C087C
+FUN_020C087C: ; 0x020C087C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldrb r0, [r4, #0x2c]
+ cmp r0, #0x2
+ bne _020C089C
+ ldrb r0, [r4, #0x3c]
+ ldr r1, _020C08B0 ; =0xFFFFFD2D
+ bl SND_SetPlayerVolume
+_020C089C:
+ ldrb r0, [r4, #0x3c]
+ bl SND_StopSeq
+ mov r0, r4
+ bl FUN_020C077C
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C08B0: .word 0xFFFFFD2D
+
+ arm_func_start FUN_020C08B4
+FUN_020C08B4: ; 0x020C08B4
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r0, _020C090C ; =UNK_021D1E08
+ mov r1, #0x0
+ bl FUN_020ADA98
+ movs r1, r0
+ beq _020C08F8
+ ldr r4, _020C090C ; =UNK_021D1E08
+_020C08D8:
+ ldrb r2, [r5, #0x3d]
+ ldrb r0, [r1, #0x3d]
+ cmp r2, r0
+ blo _020C08F8
+ mov r0, r4
+ bl FUN_020ADA98
+ movs r1, r0
+ bne _020C08D8
+_020C08F8:
+ ldr r0, _020C090C ; =UNK_021D1E08
+ mov r2, r5
+ bl FUN_020ADB18
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020C090C: .word UNK_021D1E08
+
+ arm_func_start FUN_020C0910
+FUN_020C0910: ; 0x020C0910
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ mov r1, #0x0
+ mov r5, r0
+ bl FUN_020ADA98
+ movs r1, r0
+ beq _020C0950
+_020C0930:
+ ldrb r2, [r4, #0x3d]
+ ldrb r0, [r1, #0x3d]
+ cmp r2, r0
+ blo _020C0950
+ mov r0, r5
+ bl FUN_020ADA98
+ movs r1, r0
+ bne _020C0930
+_020C0950:
+ mov r0, r5
+ mov r2, r4
+ bl FUN_020ADB18
+ str r5, [r4, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020C0968
+FUN_020C0968: ; 0x020C0968
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ mov r0, #0x0
+ strb r0, [r4, #0x2e]
+ strb r0, [r4, #0x2d]
+ strb r0, [r4, #0x2f]
+ strh r0, [r4, #0x34]
+ strh r0, [r4, #0x3e]
+ mov r1, #0x7f
+ strb r1, [r4, #0x40]
+ add r0, r4, #0x1c
+ strb r1, [r4, #0x41]
+ bl FUN_020C3E6C
+ add r0, r4, #0x1c
+ mov r1, #0x7f00
+ mov r2, #0x1
+ bl FUN_020C3E40
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C09B0
+FUN_020C09B0: ; 0x020C09B0
+ stmdb sp!, {r4-r6,lr}
+ ldr r3, _020C0A00 ; =UNK_021D2254
+ mov r2, #0x24
+ mla r5, r0, r2, r3
+ mov r6, r1
+ add r0, r5, #0xc
+ mov r1, #0x0
+ bl FUN_020ADA98
+ movs r4, r0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ mov r1, r4
+ add r0, r5, #0xc
+ bl FUN_020ADAB0
+ str r6, [r4, #0xc]
+ str r4, [r6, #0x8]
+ ldr r0, [r4, #0x8]
+ bl FUN_020C29C0
+ ldr r0, [r4, #0x8]
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020C0A00: .word UNK_021D2254
+
+ arm_func_start FUN_020C0A04
+FUN_020C0A04: ; 0x020C0A04
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ movs r5, r0
+ mov r4, r1
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+ ldrb r0, [r5, #0x2e]
+ cmp r4, r0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+ ldrb r0, [r5, #0x3c]
+ bl SND_PauseSeq
+ strb r4, [r5, #0x2e]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020C0A40
+FUN_020C0A40: ; 0x020C0A40
+ stmdb sp!, {r4,lr}
+ movs r4, r0
+ mov r2, r1
+ ldmeqia sp!, {r4,pc}
+ ldrb r1, [r4, #0x2c]
+ cmp r1, #0x0
+ ldmeqia sp!, {r4,pc}
+ cmp r2, #0x0
+ bne _020C0A6C
+ bl FUN_020C087C
+ ldmia sp!, {r4,pc}
+_020C0A6C:
+ add r0, r4, #0x1c
+ mov r1, #0x0
+ bl FUN_020C3E40
+ mov r0, r4
+ mov r1, #0x0
+ bl FUN_020C06CC
+ mov r0, #0x2
+ strb r0, [r4, #0x2c]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C0A90
+FUN_020C0A90: ; 0x020C0A90
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldrb r0, [r5, #0x3c]
+ ldr r4, [r5, #0x4]
+ bl SND_PrepareSeq
+ ldr r2, [r4, #0x1c]
+ cmp r2, #0x0
+ beq _020C0AC0
+ ldrb r0, [r5, #0x3c]
+ ldr r1, _020C0AE4 ; =0x0000FFFF
+ bl SND_SetTrackAllocatableChannel
+_020C0AC0:
+ mov r0, r5
+ bl FUN_020C0968
+ bl SND_GetCurrentCommandTag
+ str r0, [r5, #0x30]
+ mov r0, #0x1
+ strb r0, [r5, #0x2f]
+ strb r0, [r5, #0x2c]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020C0AE4: .word 0x0000FFFF
+
+ arm_func_start thunk_FUN_020c077c
+thunk_FUN_020c077c: ; 0x020C0AE8
+ ldr ip, _020C0AF0 ; =FUN_020C077C
+ bx r12
+ .balign 4
+_020C0AF0: .word FUN_020C077C
+
+ arm_func_start FUN_020C0AF4
+FUN_020C0AF4: ; 0x020C0AF4
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr ip, _020C0B9C ; =UNK_021D2254
+ mov r3, #0x24
+ mov r4, r0
+ ldr r5, [r4, #0x0]
+ mla r6, r1, r3, r12
+ mov r7, r2
+ cmp r5, #0x0
+ beq _020C0B20
+ bl FUN_020C0F68
+_020C0B20:
+ ldrh r1, [r6, #0x8]
+ ldr r0, [r6, #0x18]
+ cmp r1, r0
+ blo _020C0B64
+ mov r0, r6
+ mov r1, #0x0
+ bl FUN_020ADA98
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,pc}
+ ldrb r1, [r0, #0x3d]
+ cmp r7, r1
+ addlt sp, sp, #0x4
+ movlt r0, #0x0
+ ldmltia sp!, {r4-r7,pc}
+ bl FUN_020C087C
+_020C0B64:
+ mov r0, r7
+ bl FUN_020C0808
+ movs r5, r0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,pc}
+ mov r0, r6
+ mov r1, r5
+ bl FUN_020C0910
+ str r4, [r5, #0x0]
+ mov r0, r5
+ str r5, [r4, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C0B9C: .word UNK_021D2254
+
+ arm_func_start FUN_020C0BA0
+FUN_020C0BA0: ; 0x020C0BA0
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ bl SND_GetPlayerStatus
+ str r0, [sp, #0x0]
+ ldr r0, _020C0D14 ; =UNK_021D1E08
+ mov r1, #0x0
+ bl FUN_020ADA98
+ movs r10, r0
+ addeq sp, sp, #0xc
+ ldmeqia sp!, {r4-r11,pc}
+ mov r0, #0x8000
+ rsb r0, r0, #0x0
+ ldr r4, _020C0D18 ; =UNK_02103BAC
+ str r0, [sp, #0x4]
+ mov r5, #0x1
+ mov r11, #0x0
+_020C0BE0:
+ ldr r0, _020C0D14 ; =UNK_021D1E08
+ mov r1, r10
+ bl FUN_020ADA98
+ ldrb r1, [r10, #0x2d]
+ mov r9, r0
+ cmp r1, #0x0
+ bne _020C0C0C
+ ldr r0, [r10, #0x30]
+ bl SND_IsFinishedCommandTag
+ cmp r0, #0x0
+ strneb r5, [r10, #0x2d]
+_020C0C0C:
+ ldrb r0, [r10, #0x2d]
+ cmp r0, #0x0
+ beq _020C0C38
+ ldrb r0, [r10, #0x3c]
+ mov r1, r5, lsl r0
+ ldr r0, [sp, #0x0]
+ ands r0, r0, r1
+ bne _020C0C38
+ mov r0, r10
+ bl FUN_020C077C
+ b _020C0D00
+_020C0C38:
+ add r0, r10, #0x1c
+ bl FUN_020C3DF4
+ ldr r0, [r10, #0x4]
+ ldrb r2, [r10, #0x41]
+ ldrb r1, [r10, #0x40]
+ ldrb r0, [r0, #0x20]
+ mov r3, r2, lsl #0x1
+ mov r2, r1, lsl #0x1
+ mov r1, r0, lsl #0x1
+ add r0, r10, #0x1c
+ ldrsh r8, [r4, r3]
+ ldrsh r7, [r4, r2]
+ ldrsh r6, [r4, r1]
+ bl FUN_020C3E0C
+ mov r0, r0, asr #0x8
+ mov r2, r0, lsl #0x1
+ add r1, r7, r8
+ mov r0, #0x8000
+ ldrsh r2, [r4, r2]
+ add r1, r6, r1
+ rsb r0, r0, #0x0
+ add r6, r2, r1
+ cmp r6, r0
+ ldrlt r6, [sp, #0x4]
+ blt _020C0CA8
+ ldr r0, _020C0D1C ; =0x00007FFF
+ cmp r6, r0
+ movgt r6, r0
+_020C0CA8:
+ ldrsh r0, [r10, #0x3e]
+ cmp r6, r0
+ beq _020C0CC4
+ ldrb r0, [r10, #0x3c]
+ mov r1, r6
+ bl SND_SetPlayerVolume
+ strh r6, [r10, #0x3e]
+_020C0CC4:
+ ldrb r0, [r10, #0x2c]
+ cmp r0, #0x2
+ bne _020C0CE8
+ add r0, r10, #0x1c
+ bl FUN_020C3DDC
+ cmp r0, #0x0
+ beq _020C0CE8
+ mov r0, r10
+ bl FUN_020C087C
+_020C0CE8:
+ ldrb r0, [r10, #0x2f]
+ cmp r0, #0x0
+ beq _020C0D00
+ ldrb r0, [r10, #0x3c]
+ bl SND_StartPreparedSeq
+ strb r11, [r10, #0x2f]
+_020C0D00:
+ mov r10, r9
+ cmp r9, #0x0
+ bne _020C0BE0
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020C0D14: .word UNK_021D1E08
+_020C0D18: .word UNK_02103BAC
+_020C0D1C: .word 0x00007FFF
+
+ arm_func_start FUN_020C0D20
+FUN_020C0D20: ; 0x020C0D20
+ stmdb sp!, {r4-r10,lr}
+ ldr r0, _020C0DC4 ; =UNK_021D1E08
+ mov r1, #0x14
+ bl FUN_020ADC74
+ ldr r0, _020C0DC8 ; =UNK_021D1DFC
+ mov r1, #0x14
+ bl FUN_020ADC74
+ ldr r6, _020C0DCC ; =UNK_021D1E14
+ mov r7, #0x0
+ ldr r4, _020C0DC8 ; =UNK_021D1DFC
+ mov r5, r7
+_020C0D4C:
+ strb r5, [r6, #0x2c]
+ mov r0, r4
+ mov r1, r6
+ strb r7, [r6, #0x3c]
+ bl FUN_020ADBE8
+ add r7, r7, #0x1
+ cmp r7, #0x10
+ add r6, r6, #0x44
+ blt _020C0D4C
+ ldr sl, _020C0DD0 ; =UNK_021D2254
+ mov r9, #0x0
+ mov r7, r9
+ mov r4, r9
+ mov r8, #0xc
+ mov r6, #0x7f
+ mov r5, #0x1
+_020C0D8C:
+ mov r0, r10
+ mov r1, r8
+ bl FUN_020ADC74
+ mov r1, r7
+ add r0, r10, #0xc
+ bl FUN_020ADC74
+ strb r6, [r10, #0x20]
+ str r5, [r10, #0x18]
+ add r9, r9, #0x1
+ str r4, [r10, #0x1c]
+ cmp r9, #0x20
+ add r10, r10, #0x24
+ blt _020C0D8C
+ ldmia sp!, {r4-r10,pc}
+ .balign 4
+_020C0DC4: .word UNK_021D1E08
+_020C0DC8: .word UNK_021D1DFC
+_020C0DCC: .word UNK_021D1E14
+_020C0DD0: .word UNK_021D2254
+
+ arm_func_start FUN_020C0DD4
+FUN_020C0DD4: ; 0x020C0DD4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {pc}
+ ldrb r0, [r1, #0x2d]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {pc}
+ ldrb r0, [r1, #0x3c]
+ bl SND_GetPlayerTickCounter
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C0E14
+FUN_020C0E14: ; 0x020C0E14
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ mvneq r0, #0x0
+ bxeq lr
+ ldrh r0, [r1, #0x34]
+ cmp r0, #0x1
+ mvnne r0, #0x0
+ ldreqh r0, [r1, #0x38]
+ bx lr
+
+ arm_func_start FUN_020C0E38
+FUN_020C0E38: ; 0x020C0E38
+ ldr r12, [r0, #0x0]
+ cmp r12, #0x0
+ bxeq lr
+ mov r3, #0x2
+ strh r3, [r12, #0x34]
+ ldr r3, [r0, #0x0]
+ strh r1, [r3, #0x38]
+ ldr r0, [r0, #0x0]
+ strh r2, [r0, #0x3a]
+ bx lr
+
+ arm_func_start FUN_020C0E60
+FUN_020C0E60: ; 0x020C0E60
+ ldr r3, [r0, #0x0]
+ cmp r3, #0x0
+ movne r2, #0x1
+ strneh r2, [r3, #0x34]
+ ldrne r0, [r0, #0x0]
+ strneh r1, [r0, #0x38]
+ bx lr
+
+ arm_func_start FUN_020C0E7C
+FUN_020C0E7C: ; 0x020C0E7C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldrb r0, [r0, #0x3c]
+ bl SND_SetTrackPan
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C0EA4
+FUN_020C0EA4: ; 0x020C0EA4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldrb r0, [r0, #0x3c]
+ bl SND_SetTrackPitch
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C0ECC
+FUN_020C0ECC: ; 0x020C0ECC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldrb r0, [r0, #0x3c]
+ bl SND_SetPlayerChannelPriority
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C0EF4
+FUN_020C0EF4: ; 0x020C0EF4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, [r0, #0x0]
+ cmp r3, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldrb r0, [r3, #0x2c]
+ cmp r0, #0x2
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ add r0, r3, #0x1c
+ mov r1, r1, lsl #0x8
+ bl FUN_020C3E40
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C0F30
+FUN_020C0F30: ; 0x020C0F30
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ strneb r1, [r0, #0x40]
+ bx lr
+
+ arm_func_start FUN_020C0F40
+FUN_020C0F40: ; 0x020C0F40
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ strneb r1, [r0, #0x41]
+ bx lr
+
+ arm_func_start FUN_020C0F50
+FUN_020C0F50: ; 0x020C0F50
+ mov r1, #0x24
+ mul r1, r0, r1
+ ldr r0, _020C0F64 ; =UNK_021D225C
+ ldrh r0, [r0, r1]
+ bx lr
+ .balign 4
+_020C0F64: .word UNK_021D225C
+
+ arm_func_start FUN_020C0F68
+FUN_020C0F68: ; 0x020C0F68
+ ldr r2, [r0, #0x0]
+ cmp r2, #0x0
+ movne r1, #0x0
+ strne r1, [r2, #0x0]
+ strne r1, [r0, #0x0]
+ bx lr
+
+ arm_func_start FUN_020C0F80
+FUN_020C0F80: ; 0x020C0F80
+ mov r1, #0x0
+ str r1, [r0, #0x0]
+ bx lr
+
+ arm_func_start FUN_020C0F8C
+FUN_020C0F8C: ; 0x020C0F8C
+ ldr ip, _020C0F98 ; =FUN_020C0A04
+ ldr r0, [r0, #0x0]
+ bx r12
+ .balign 4
+_020C0F98: .word FUN_020C0A04
+
+ arm_func_start FUN_020C0F9C
+FUN_020C0F9C: ; 0x020C0F9C
+ stmdb sp!, {r4-r6,lr}
+ ldr r4, _020C0FD8 ; =UNK_021D1E14
+ mov r6, r0
+ mov r5, #0x0
+_020C0FAC:
+ ldrb r0, [r4, #0x2c]
+ cmp r0, #0x0
+ beq _020C0FC4
+ mov r0, r4
+ mov r1, r6
+ bl FUN_020C0A40
+_020C0FC4:
+ add r5, r5, #0x1
+ cmp r5, #0x10
+ add r4, r4, #0x44
+ blt _020C0FAC
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020C0FD8: .word UNK_021D1E14
+
+ arm_func_start FUN_020C0FDC
+FUN_020C0FDC: ; 0x020C0FDC
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r4, _020C103C ; =UNK_021D1E14
+ mov r7, r0
+ mov r6, r1
+ mov r5, #0x0
+_020C0FF4:
+ ldrb r0, [r4, #0x2c]
+ cmp r0, #0x0
+ beq _020C1024
+ ldrh r0, [r4, #0x34]
+ cmp r0, #0x1
+ bne _020C1024
+ ldrh r0, [r4, #0x38]
+ cmp r0, r7
+ bne _020C1024
+ mov r0, r4
+ mov r1, r6
+ bl FUN_020C0A40
+_020C1024:
+ add r5, r5, #0x1
+ cmp r5, #0x10
+ add r4, r4, #0x44
+ blt _020C0FF4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C103C: .word UNK_021D1E14
+
+ arm_func_start FUN_020C1040
+FUN_020C1040: ; 0x020C1040
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r3, _020C109C ; =UNK_021D2254
+ mov r2, #0x24
+ mla r4, r0, r2, r3
+ ldr r5, _020C10A0 ; =UNK_021D1E14
+ mov r7, r1
+ mov r6, #0x0
+_020C1060:
+ ldrb r0, [r5, #0x2c]
+ cmp r0, #0x0
+ beq _020C1084
+ ldr r0, [r5, #0x4]
+ cmp r0, r4
+ bne _020C1084
+ mov r0, r5
+ mov r1, r7
+ bl FUN_020C0A40
+_020C1084:
+ add r6, r6, #0x1
+ cmp r6, #0x10
+ add r5, r5, #0x44
+ blt _020C1060
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C109C: .word UNK_021D2254
+_020C10A0: .word UNK_021D1E14
+
+ arm_func_start FUN_020C10A4
+FUN_020C10A4: ; 0x020C10A4
+ ldr ip, _020C10B0 ; =FUN_020C0A40
+ ldr r0, [r0, #0x0]
+ bx r12
+ .balign 4
+_020C10B0: .word FUN_020C0A40
+
+ arm_func_start FUN_020C10B4
+FUN_020C10B4:
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ mov r5, r2
+ mov r6, r0
+ mov r0, r1
+ mov r3, #0x0
+ ldr r2, _020C1140 ; =FUN_020C072C
+ add r1, r5, #0x14
+ str r3, [sp, #0x0]
+ bl FUN_020C2958
+ movs r4, r0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ mov r2, #0x0
+ str r2, [r4, #0xc]
+ str r6, [r4, #0x10]
+ mov r1, r5
+ add r0, r4, #0x14
+ str r2, [r4, #0x8]
+ bl FUN_020C2A94
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ ldr r2, _020C1144 ; =UNK_021D2254
+ mov r1, #0x24
+ mla r2, r6, r1, r2
+ str r0, [r4, #0x8]
+ mov r1, r4
+ add r0, r2, #0xc
+ bl FUN_020ADBE8
+ mov r0, #0x1
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020C1140: .word FUN_020C072C
+_020C1144: .word UNK_021D2254
+
+ arm_func_start FUN_020C1148
+FUN_020C1148: ; 0x020C1148
+ mov r2, #0x24
+ mul r2, r0, r2
+ ldr r0, _020C115C ; =UNK_021D2270
+ str r1, [r0, r2]
+ bx lr
+ .balign 4
+_020C115C: .word UNK_021D2270
+
+ arm_func_start FUN_020C1160
+FUN_020C1160: ; 0x020C1160
+ mov r2, #0x24
+ mul r2, r0, r2
+ mov r0, r1, lsl #0x10
+ ldr r1, _020C117C ; =UNK_021D226C
+ mov r0, r0, lsr #0x10
+ str r0, [r1, r2]
+ bx lr
+ .balign 4
+_020C117C: .word UNK_021D226C
+
+ arm_func_start FUN_020C1180
+FUN_020C1180: ; 0x020C1180
+ mov r2, #0x24
+ mul r2, r0, r2
+ ldr r0, _020C1194 ; =UNK_021D2274
+ strb r1, [r0, r2]
+ bx lr
+ .balign 4
+_020C1194: .word UNK_021D2274
+
+ arm_func_start FUN_020C1198
+FUN_020C1198: ; 0x020C1198
+ stmdb sp!, {r4-r6,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x24]
+ mov r0, r0, lsl #0x1e
+ movs r0, r0, asr #0x1f
+ ldmeqia sp!, {r4-r6,pc}
+ ldr r0, [r4, #0x38]
+ cmp r0, #0x0
+ beq _020C11E8
+ mov r5, #0x1
+_020C11C0:
+ bl OS_DisableInterrupts
+ mov r6, r0
+ mov r0, r4
+ mov r1, r5
+ bl FUN_020C1254
+ mov r0, r6
+ bl OS_RestoreInterrupts
+ ldr r0, [r4, #0x38]
+ cmp r0, #0x0
+ bne _020C11C0
+_020C11E8:
+ ldr r0, [r4, #0x40]
+ mov r2, #0x1
+ mov r1, #0x0
+ mov r2, r2, lsl r0
+ ldr r0, [r4, #0x44]
+ mov r3, r1
+ bl SND_StartTimer
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020C1208
+FUN_020C1208: ; 0x020C1208
+ stmdb sp!, {r4,lr}
+ ldr r1, [r0, #0x24]
+ mov r1, r1, lsl #0x1e
+ movs r1, r1, asr #0x1f
+ ldmeqia sp!, {r4,pc}
+ ldr r2, [r0, #0x40]
+ mov r3, #0x1
+ mov r1, #0x0
+ mov r2, r3, lsl r2
+ ldr r0, [r0, #0x44]
+ mov r3, r1
+ bl SND_StopTimer
+ bl SND_GetCurrentCommandTag
+ mov r4, r0
+ mov r0, #0x1
+ bl SND_FlushCommand
+ mov r0, r4
+ bl SND_WaitForCommandProc
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C1254
+FUN_020C1254: ; 0x020C1254
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0xc
+ mov r5, r0
+ mov r4, r1
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #0x2c]
+ bl _u32_div_f
+ ldr r1, [r5, #0x48]
+ ldr r2, [r5, #0x38]
+ mov r3, r0
+ mul lr, r3, r2
+ cmp r1, #0x0
+ mov r12, #0x0
+ ble _020C12B8
+ ldr r2, _020C1300 ; =UNK_021D2724
+ ldr r0, _020C1304 ; =UNK_021D26E4
+_020C1294:
+ add r1, r5, r12
+ ldrb r1, [r1, #0x4c]
+ ldr r1, [r2, r1, lsl #0x3]
+ add r1, r1, lr
+ str r1, [r0, r12, lsl #0x2]
+ ldr r1, [r5, #0x48]
+ add r12, r12, #0x1
+ cmp r12, r1
+ blt _020C1294
+_020C12B8:
+ ldr r0, [r5, #0x20]
+ ldr r2, _020C1304 ; =UNK_021D26E4
+ str r0, [sp, #0x0]
+ ldr r12, [r5, #0x34]
+ mov r0, r4
+ str r12, [sp, #0x4]
+ ldr r4, [r5, #0x30]
+ blx r4
+ ldr r0, [r5, #0x38]
+ add r0, r0, #0x1
+ str r0, [r5, #0x38]
+ ldr r1, [r5, #0x38]
+ ldr r0, [r5, #0x2c]
+ cmp r1, r0
+ movge r0, #0x0
+ strge r0, [r5, #0x38]
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020C1300: .word UNK_021D2724
+_020C1304: .word UNK_021D26E4
+
+ arm_func_start FUN_020C1308
+FUN_020C1308: ; 0x020C1308
+ ldr ip, _020C1314 ; =FUN_020C1254
+ mov r1, #0x1
+ bx r12
+ .balign 4
+_020C1314: .word FUN_020C1254
+
+ arm_func_start FUN_020C1318
+FUN_020C1318: ; 0x020C1318
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x40]
+ bl FUN_020C029C
+ ldr r0, _020C1344 ; =UNK_021D26D8
+ mov r1, r4
+ bl FUN_020ADAB0
+ ldr r0, [r4, #0x24]
+ bic r0, r0, #0x1
+ str r0, [r4, #0x24]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C1344: .word UNK_021D26D8
+
+ arm_func_start FUN_020C1348
+FUN_020C1348: ; 0x020C1348
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r0
+ ldr r0, [r4, #0x24]
+ mov r0, r0, lsl #0x1e
+ movs r0, r0, asr #0x1f
+ beq _020C13B4
+ ldr r0, [r4, #0x40]
+ mov r2, #0x1
+ mov r1, #0x0
+ mov r2, r2, lsl r0
+ ldr r0, [r4, #0x44]
+ mov r3, r1
+ bl SND_StopTimer
+ add r0, r4, #0x8
+ bl PM_DeletePreSleepCallback
+ add r0, r4, #0x14
+ bl PM_DeletePostSleepCallback
+ ldr r0, [r4, #0x24]
+ bic r0, r0, #0x2
+ str r0, [r4, #0x24]
+ bl SND_GetCurrentCommandTag
+ mov r5, r0
+ mov r0, #0x1
+ bl SND_FlushCommand
+ mov r0, r5
+ bl SND_WaitForCommandProc
+_020C13B4:
+ mov r0, r4
+ bl FUN_020C1318
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020C13C4
+FUN_020C13C4: ; 0x020C13C4
+ stmdb sp!, {r4-r8,lr}
+ mov r7, r0
+ str r1, [r7, #0x3c]
+ ldr r0, [r7, #0x48]
+ mov r5, #0x0
+ cmp r0, #0x0
+ ldmleia sp!, {r4-r8,pc}
+ ldr r4, _020C142C ; =UNK_021D2724
+ mov r8, #0x1
+_020C13E8:
+ add r0, r7, r5
+ ldrb r6, [r0, #0x4c]
+ ldr r1, [r7, #0x3c]
+ add r0, r4, r6, lsl #0x3
+ ldr r0, [r0, #0x4]
+ add r0, r1, r0
+ bl SND_CalcChannelVolume
+ mov r2, r0
+ mov r0, r8, lsl r6
+ and r1, r2, #0xff
+ mov r2, r2, asr #0x8
+ bl SND_SetChannelVolume
+ ldr r0, [r7, #0x48]
+ add r5, r5, #0x1
+ cmp r5, r0
+ blt _020C13E8
+ ldmia sp!, {r4-r8,pc}
+ .balign 4
+_020C142C: .word UNK_021D2724
+
+ arm_func_start FUN_020C1430
+FUN_020C1430: ; 0x020C1430
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, [r0, #0x24]
+ mov r1, r1, lsl #0x1f
+ movs r1, r1, asr #0x1f
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ bl FUN_020C1348
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C1458
+FUN_020C1458: ; 0x020C1458
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x40]
+ mov r2, #0x1
+ mov r1, #0x0
+ mov r2, r2, lsl r0
+ ldr r0, [r4, #0x44]
+ mov r3, r1
+ bl SND_StartTimer
+ ldr r0, [r4, #0x24]
+ mov r0, r0, lsl #0x1e
+ movs r0, r0, asr #0x1f
+ ldmneia sp!, {r4,pc}
+ add r0, r4, #0x8
+ bl PM_PrependPreSleepCallback
+ add r0, r4, #0x14
+ bl PM_AppendPostSleepCallback
+ ldr r0, [r4, #0x24]
+ orr r0, r0, #0x2
+ str r0, [r4, #0x24]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C14AC
+FUN_020C14AC: ; 0x020C14AC
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x24
+ mov r10, r0
+ ldr r4, [r10, #0x24]
+ mov r9, r1
+ mov r1, r4, lsl #0x1f
+ movs r1, r1, asr #0x1f
+ ldr r1, [sp, #0x4c]
+ str r2, [sp, #0x18]
+ mov r4, r3
+ str r1, [sp, #0x4c]
+ beq _020C14E0
+ bl FUN_020C1430
+_020C14E0:
+ ldr r0, [sp, #0x4c]
+ ldr r2, [r10, #0x48]
+ mov r0, r0, lsl #0x5
+ mul r1, r2, r0
+ mov r0, r4
+ bl _u32_div_f
+ ldr r1, [sp, #0x4c]
+ ldr r2, [sp, #0x48]
+ mul r1, r0, r1
+ mov r0, r1, lsl #0x5
+ str r0, [r10, #0x28]
+ ldr r0, [r10, #0x28]
+ cmp r9, #0x1
+ moveq r0, r0, lsr #0x1
+ mul r0, r2, r0
+ ldr r1, [sp, #0x4c]
+ bl _u32_div_f
+ str r0, [sp, #0x1c]
+ bl FUN_020C02BC
+ str r0, [r10, #0x40]
+ ldr r0, [r10, #0x40]
+ cmp r0, #0x0
+ addlt sp, sp, #0x24
+ movlt r0, #0x0
+ ldmltia sp!, {r4-r11,pc}
+ ldr r0, [r10, #0x48]
+ mov r8, #0x0
+ cmp r0, #0x0
+ ble _020C15D4
+ ldr r0, [sp, #0x48]
+ mov r7, r0, lsl #0x5
+ ldr r6, _020C1668 ; =UNK_021D2724
+ mov r5, r8
+ mov r4, #0x7f
+ mov r11, #0x40
+ mov r0, #0x1
+ str r0, [sp, #0x20]
+_020C1574:
+ ldr r2, [r10, #0x28]
+ ldr r1, [sp, #0x18]
+ add r0, r10, r8
+ mla r1, r2, r8, r1
+ ldrb r0, [r0, #0x4c]
+ ldr r3, [sp, #0x20]
+ str r1, [r6, r0, lsl #0x3]
+ add r1, r6, r0, lsl #0x3
+ str r5, [r1, #0x4]
+ str r5, [sp, #0x0]
+ ldr r2, [r10, #0x28]
+ mov r1, r9
+ mov r2, r2, lsr #0x2
+ str r2, [sp, #0x4]
+ str r4, [sp, #0x8]
+ str r5, [sp, #0xc]
+ str r7, [sp, #0x10]
+ str r11, [sp, #0x14]
+ ldr r2, [r6, r0, lsl #0x3]
+ bl SND_SetupChannelPcm
+ ldr r0, [r10, #0x48]
+ add r8, r8, #0x1
+ cmp r8, r0
+ blt _020C1574
+_020C15D4:
+ str r10, [sp, #0x0]
+ ldr r1, [sp, #0x1c]
+ ldr r0, [r10, #0x40]
+ ldr r3, _020C166C ; =FUN_020C1308
+ mov r2, r1
+ bl SND_SetupAlarm
+ ldr r0, _020C1670 ; =UNK_021D26D8
+ mov r1, r10
+ bl FUN_020ADBE8
+ ldr r0, [sp, #0x4c]
+ str r9, [r10, #0x20]
+ str r0, [r10, #0x2c]
+ ldr r1, [sp, #0x50]
+ ldr r0, [sp, #0x54]
+ str r1, [r10, #0x30]
+ str r0, [r10, #0x34]
+ mov r0, #0x0
+ str r0, [r10, #0x38]
+ str r0, [r10, #0x3c]
+ ldr r0, [r10, #0x24]
+ bic r0, r0, #0x1
+ orr r0, r0, #0x1
+ str r0, [r10, #0x24]
+ bl OS_DisableInterrupts
+ mov r4, r0
+ mov r2, #0x1
+ mov r0, r10
+ mov r1, #0x0
+ str r2, [r10, #0x2c]
+ bl FUN_020C1254
+ ldr r1, [sp, #0x4c]
+ mov r0, r4
+ str r1, [r10, #0x2c]
+ bl OS_RestoreInterrupts
+ mov r0, #0x1
+ add sp, sp, #0x24
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020C1668: .word UNK_021D2724
+_020C166C: .word FUN_020C1308
+_020C1670: .word UNK_021D26D8
+
+ arm_func_start FUN_020C1674
+FUN_020C1674: ; 0x020C1674
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, [r4, #0x44]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,pc}
+ bl FUN_020C0340
+ mov r0, #0x0
+ str r0, [r4, #0x44]
+ str r0, [r4, #0x48]
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C169C
+FUN_020C169C: ; 0x020C169C
+ stmdb sp!, {r4-r6,lr}
+ mov r5, r1
+ mov r4, #0x0
+ mov r6, r0
+ mov r12, r4
+ cmp r5, #0x0
+ ble _020C16DC
+ mov r1, #0x1
+_020C16BC:
+ ldrb r3, [r2, r12]
+ add r0, r6, r12
+ strb r3, [r0, #0x4c]
+ ldrb r0, [r2, r12]
+ add r12, r12, #0x1
+ cmp r12, r5
+ orr r4, r4, r1, lsl r0
+ blt _020C16BC
+_020C16DC:
+ mov r0, r4
+ bl FUN_020C0370
+ cmp r0, #0x0
+ moveq r0, #0x0
+ strne r5, [r6, #0x48]
+ strne r4, [r6, #0x44]
+ movne r0, #0x1
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020C16FC
+FUN_020C16FC: ; 0x020C16FC
+ stmdb sp!, {r4,lr}
+ ldr r1, _020C176C ; =UNK_021D26D4
+ mov r4, r0
+ ldr r0, [r1, #0x0]
+ cmp r0, #0x0
+ bne _020C172C
+ ldr r0, _020C1770 ; =UNK_021D26D8
+ mov r1, #0x0
+ bl FUN_020ADC74
+ ldr r0, _020C176C ; =UNK_021D26D4
+ mov r1, #0x1
+ str r1, [r0, #0x0]
+_020C172C:
+ ldr r1, _020C1774 ; =FUN_020C1208
+ ldr r0, _020C1778 ; =FUN_020C1198
+ str r1, [r4, #0x8]
+ str r4, [r4, #0xc]
+ str r0, [r4, #0x14]
+ str r4, [r4, #0x18]
+ mov r0, #0x0
+ str r0, [r4, #0x44]
+ str r0, [r4, #0x48]
+ ldr r0, [r4, #0x24]
+ bic r0, r0, #0x1
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x24]
+ bic r0, r0, #0x2
+ str r0, [r4, #0x24]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C176C: .word UNK_021D26D4
+_020C1770: .word UNK_021D26D8
+_020C1774: .word FUN_020C1208
+_020C1778: .word FUN_020C1198
+
+ arm_func_start FUN_020C177C
+FUN_020C177C: ; 0x020C177C
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ ldr r4, [r7, #0x18]
+ ldr r0, [r7, #0x1c]
+ ldr r1, _020C186C ; =UNK_021D27A4
+ mul r0, r4, r0
+ ldr r3, [r7, #0xc]
+ ldr r2, [r7, #0x10]
+ ldr r1, [r1, #0x0]
+ add r6, r3, r0
+ cmp r1, #0x0
+ add r5, r2, r0
+ beq _020C180C
+ ldr r2, _020C1870 ; =UNK_021D27A8
+ mov r1, #0x14
+ ldr r2, [r2, #0x0]
+ ldr r3, _020C1874 ; =UNK_021D2820
+ mul r1, r2, r1
+ str r7, [r3, r1]
+ add r1, r3, r1
+ str r4, [r1, #0x4]
+ str r0, [r1, #0x8]
+ str r6, [r1, #0xc]
+ ldr r0, _020C1878 ; =UNK_021D27AC
+ mov r2, #0x0
+ str r5, [r1, #0x10]
+ bl OS_SendMessage
+ ldr r0, _020C1870 ; =UNK_021D27A8
+ ldr r1, [r0, #0x0]
+ add r1, r1, #0x1
+ str r1, [r0, #0x0]
+ cmp r1, #0x8
+ movge r1, #0x0
+ strge r1, [r0, #0x0]
+ b _020C1844
+_020C180C:
+ mov r0, r6
+ mov r1, r4
+ bl DC_InvalidateRange
+ mov r0, r5
+ mov r1, r4
+ bl DC_InvalidateRange
+ ldr r1, [r7, #0x38]
+ mov r0, r6
+ str r1, [sp, #0x0]
+ ldr r3, [r7, #0x8]
+ ldr r6, [r7, #0x34]
+ mov r1, r5
+ mov r2, r4
+ blx r6
+_020C1844:
+ ldr r0, [r7, #0x1c]
+ add r0, r0, #0x1
+ str r0, [r7, #0x1c]
+ ldr r1, [r7, #0x1c]
+ ldr r0, [r7, #0x30]
+ cmp r1, r0
+ movge r0, #0x0
+ strge r0, [r7, #0x1c]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C186C: .word UNK_021D27A4
+_020C1870: .word UNK_021D27A8
+_020C1874: .word UNK_021D2820
+_020C1878: .word UNK_021D27AC
+
+ arm_func_start FUN_020C187C
+FUN_020C187C: ; 0x020C187C
+ stmdb sp!, {r4,lr}
+ ldr r4, _020C18F4 ; =UNK_021D27CC
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,pc}
+ mov r0, #0x0
+ str r0, [r4, #0x1c]
+ ldr r1, [r4, #0xc]
+ ldr r2, [r4, #0x14]
+ bl MIi_CpuClear32
+ ldr r1, [r4, #0x10]
+ ldr r2, [r4, #0x14]
+ mov r0, #0x0
+ bl MIi_CpuClear32
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x14]
+ bl DC_FlushRange
+ ldr r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ bl DC_FlushRange
+ ldr r1, [r4, #0x2c]
+ mov r3, #0x0
+ cmp r1, #0x0
+ movge r0, #0x1
+ movge r2, r0, lsl r1
+ ldr r0, [r4, #0x24]
+ ldr r1, [r4, #0x28]
+ movlt r2, #0x0
+ bl SND_StartTimer
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C18F4: .word UNK_021D27CC
+
+ arm_func_start FUN_020C18F8
+FUN_020C18F8:
+ stmdb sp!, {r4,lr}
+ ldr r3, _020C194C ; =UNK_021D27CC
+ ldr r0, [r3, #0x0]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,pc}
+ ldr r1, [r3, #0x2c]
+ cmp r1, #0x0
+ movge r0, #0x1
+ movge r2, r0, lsl r1
+ ldr r0, [r3, #0x24]
+ ldr r1, [r3, #0x28]
+ movlt r2, #0x0
+ mov r3, #0x0
+ bl SND_StopTimer
+ bl SND_GetCurrentCommandTag
+ mov r4, r0
+ mov r0, #0x1
+ bl SND_FlushCommand
+ mov r0, r4
+ bl SND_WaitForCommandProc
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C194C: .word UNK_021D27CC
+
+ arm_func_start FUN_020C1950
+FUN_020C1950: ; 0x020C1950
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r4, _020C1A3C ; =UNK_021D27CC
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,pc}
+ ldr r1, [r4, #0x2c]
+ mov r3, #0x0
+ cmp r1, #0x0
+ movge r7, #0x1
+ movlt r7, #0x0
+ cmp r7, #0x0
+ movne r0, #0x1
+ movne r2, r0, lsl r1
+ ldr r0, [r4, #0x24]
+ ldr r1, [r4, #0x28]
+ moveq r2, #0x0
+ bl SND_StopTimer
+ cmp r7, #0x0
+ beq _020C19DC
+ bl SND_GetCurrentCommandTag
+ mov r5, r0
+ mov r0, #0x1
+ bl SND_FlushCommand
+ mov r0, r5
+ bl SND_WaitForCommandProc
+ ldr r6, _020C1A40 ; =UNK_021D27AC
+ mov r5, #0x0
+_020C19C4:
+ mov r0, r6
+ mov r1, r5
+ mov r2, r5
+ bl OS_ReceiveMessage
+ cmp r0, #0x0
+ bne _020C19C4
+_020C19DC:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0x0
+ beq _020C19EC
+ bl FUN_020C0300
+_020C19EC:
+ ldr r0, [r4, #0x20]
+ cmp r0, #0x0
+ beq _020C19FC
+ bl FUN_020C0340
+_020C19FC:
+ cmp r7, #0x0
+ beq _020C1A0C
+ ldr r0, [r4, #0x2c]
+ bl FUN_020C029C
+_020C1A0C:
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x1
+ bne _020C1A2C
+ mov r0, #0x0
+ mov r1, r0
+ mov r2, r0
+ mov r3, r0
+ bl SND_SetOutputSelector
+_020C1A2C:
+ mov r0, #0x0
+ str r0, [r4, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C1A3C: .word UNK_021D27CC
+_020C1A40: .word UNK_021D27AC
+
+ arm_func_start FUN_020C1A44
+FUN_020C1A44: ; 0x020C1A44
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x3c
+ mov r10, r3
+ str r0, [sp, #0x18]
+ str r2, [sp, #0x20]
+ mov r2, #0x0
+ str r1, [sp, #0x1c]
+ mov r0, r1
+ mov r1, r10
+ ldr r9, [sp, #0x6c]
+ ldr r8, [sp, #0x74]
+ str r2, [sp, #0x2c]
+ mvn r6, #0x0
+ ldr r4, _020C1D90 ; =UNK_021D27CC
+ bl DC_FlushRange
+ ldr r0, [sp, #0x20]
+ mov r1, r10
+ bl DC_FlushRange
+ ldr r0, [sp, #0x60]
+ ldr r1, [sp, #0x70]
+ cmp r0, #0x1
+ moveq r7, #0x1
+ ldr r0, _020C1D94 ; =0x00FFB0FF
+ movne r7, #0x0
+ bl _s32_div_f
+ ldr r1, [sp, #0x84]
+ mov r11, r0
+ cmp r1, #0x0
+ beq _020C1B00
+ add r1, r11, #0x10
+ bic r11, r1, #0x1f
+ mov r2, r11, asr #0x5
+ mov r0, r10
+ cmp r7, #0x0
+ ldr r1, [sp, #0x80]
+ moveq r0, r10, lsr #0x1
+ str r2, [sp, #0x34]
+ bl _u32_div_f
+ ldr r1, [sp, #0x34]
+ mov r5, #0x20
+ mul r0, r1, r0
+ str r0, [sp, #0x30]
+ cmp r7, #0x0
+ ldr r0, [sp, #0x34]
+ moveq r5, r5, lsr #0x1
+ mul r0, r5, r0
+ mov r5, r0
+_020C1B00:
+ cmp r7, #0x0
+ movne r0, #0x0
+ strne r0, [sp, #0x28]
+ moveq r0, #0x1
+ streq r0, [sp, #0x28]
+ cmp r7, #0x0
+ movne r0, #0x1
+ strne r0, [sp, #0x24]
+ moveq r0, #0x0
+ streq r0, [sp, #0x24]
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x2
+ movne r0, #0xa
+ strne r0, [sp, #0x2c]
+ ldr r0, [sp, #0x84]
+ cmp r0, #0x0
+ beq _020C1B58
+ bl FUN_020C02BC
+ movs r6, r0
+ addmi sp, sp, #0x3c
+ movmi r0, #0x0
+ ldmmiia sp!, {r4-r11,pc}
+_020C1B58:
+ mov r0, #0x3
+ bl FUN_020C031C
+ cmp r0, #0x0
+ bne _020C1B84
+ cmp r6, #0x0
+ blt _020C1B78
+ mov r0, r6
+ bl FUN_020C029C
+_020C1B78:
+ add sp, sp, #0x3c
+ mov r0, #0x0
+ ldmia sp!, {r4-r11,pc}
+_020C1B84:
+ mov r0, #0xa
+ bl FUN_020C0370
+ cmp r0, #0x0
+ bne _020C1BB8
+ cmp r6, #0x0
+ blt _020C1BA4
+ mov r0, r6
+ bl FUN_020C029C
+_020C1BA4:
+ mov r0, #0x3
+ bl FUN_020C0300
+ add sp, sp, #0x3c
+ mov r0, #0x0
+ ldmia sp!, {r4-r11,pc}
+_020C1BB8:
+ mov r0, #0x0
+ mov r7, r10, lsr #0x2
+ str r0, [sp, #0x0]
+ str r7, [sp, #0x4]
+ str r8, [sp, #0x8]
+ str r0, [sp, #0xc]
+ cmp r9, #0x0
+ movne r3, #0x1
+ ldr r1, [sp, #0x78]
+ str r11, [sp, #0x10]
+ str r1, [sp, #0x14]
+ ldr r1, [sp, #0x28]
+ ldr r2, [sp, #0x1c]
+ moveq r3, #0x2
+ mov r0, #0x1
+ bl SND_SetupChannelPcm
+ ldr r1, [sp, #0x64]
+ str r9, [sp, #0x0]
+ str r1, [sp, #0x4]
+ ldr r0, [sp, #0x68]
+ ldr r1, [sp, #0x24]
+ str r0, [sp, #0x8]
+ ldr r2, [sp, #0x1c]
+ mov r0, #0x0
+ mov r3, r7
+ bl SND_SetupCapture
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ str r7, [sp, #0x4]
+ str r8, [sp, #0x8]
+ str r0, [sp, #0xc]
+ cmp r9, #0x0
+ movne r3, #0x1
+ ldr r2, [sp, #0x7c]
+ str r11, [sp, #0x10]
+ str r2, [sp, #0x14]
+ ldr r1, [sp, #0x28]
+ ldr r2, [sp, #0x20]
+ moveq r3, #0x2
+ mov r0, #0x3
+ bl SND_SetupChannelPcm
+ ldr r2, [sp, #0x64]
+ str r9, [sp, #0x0]
+ str r2, [sp, #0x4]
+ ldr r0, [sp, #0x68]
+ ldr r1, [sp, #0x24]
+ str r0, [sp, #0x8]
+ ldr r2, [sp, #0x20]
+ mov r3, r7
+ mov r0, #0x1
+ bl SND_SetupCapture
+ cmp r6, #0x0
+ blt _020C1CA8
+ ldr r2, [sp, #0x30]
+ ldr r3, _020C1D98 ; =FUN_020C177C
+ mov r1, r2
+ mov r0, r6
+ add r1, r1, r5
+ str r4, [sp, #0x0]
+ bl SND_SetupAlarm
+_020C1CA8:
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x1
+ bne _020C1CC8
+ mov r0, #0x1
+ mov r2, r0
+ mov r3, r0
+ mov r1, #0x2
+ bl SND_SetOutputSelector
+_020C1CC8:
+ cmp r6, #0x0
+ movge r0, #0x1
+ movge r2, r0, lsl r6
+ ldr r0, [sp, #0x2c]
+ movlt r2, #0x0
+ mov r1, #0x3
+ mov r3, #0x0
+ bl SND_StartTimer
+ mov r0, #0x1
+ str r0, [r4, #0x0]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x80]
+ str r0, [r4, #0x4]
+ mov r0, #0xa
+ str r0, [r4, #0x20]
+ ldr r0, [sp, #0x2c]
+ str r0, [r4, #0x24]
+ mov r0, #0x3
+ str r0, [r4, #0x28]
+ ldr r0, [sp, #0x60]
+ str r6, [r4, #0x2c]
+ str r0, [r4, #0x8]
+ ldr r0, [sp, #0x1c]
+ str r0, [r4, #0xc]
+ ldr r0, [sp, #0x20]
+ str r0, [r4, #0x10]
+ mov r0, r10
+ str r10, [r4, #0x14]
+ bl _u32_div_f
+ str r0, [r4, #0x18]
+ mov r1, #0x0
+ str r1, [r4, #0x1c]
+ ldr r0, [sp, #0x80]
+ ldr r1, [sp, #0x84]
+ str r0, [r4, #0x30]
+ ldr r0, [sp, #0x88]
+ str r1, [r4, #0x34]
+ str r0, [r4, #0x38]
+ add r0, r4, #0x3c
+ str r8, [r4, #0x50]
+ bl FUN_020C3E6C
+ add r0, r4, #0x3c
+ mov r1, r8, lsl #0x8
+ mov r2, #0x1
+ bl FUN_020C3E40
+ mov r0, #0x0
+ str r0, [r4, #0x4c]
+ mov r0, #0x1
+ add sp, sp, #0x3c
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020C1D90: .word UNK_021D27CC
+_020C1D94: .word 0x00FFB0FF
+_020C1D98: .word FUN_020C177C
+
+ arm_func_start FUN_020C1D9C
+FUN_020C1D9C: ; 0x020C1D9C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ ldr r5, _020C1E34 ; =UNK_021D27CC
+ ldr r0, [r5, #0x0]
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+ ldr r0, [r5, #0x4]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r5,pc}
+ add r4, r5, #0x3c
+ mov r0, r4
+ bl FUN_020C3DF4
+ ldr r0, [r5, #0x4c]
+ cmp r0, #0x0
+ beq _020C1DFC
+ mov r0, r4
+ bl FUN_020C3DDC
+ cmp r0, #0x0
+ beq _020C1DFC
+ bl FUN_020C1950
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+_020C1DFC:
+ mov r0, r4
+ bl FUN_020C3E0C
+ ldr r1, [r5, #0x50]
+ mov r4, r0, asr #0x8
+ cmp r4, r1
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r5,pc}
+ ldr r0, [r5, #0x24]
+ mov r1, r4
+ mov r2, #0x0
+ bl SND_SetChannelVolume
+ str r4, [r5, #0x50]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020C1E34: .word UNK_021D27CC
+
+ arm_func_start FUN_020C1E38
+FUN_020C1E38: ; 0x020C1E38
+ ldr r1, _020C1E50 ; =UNK_021D27A4
+ mov r2, #0x0
+ ldr r0, _020C1E54 ; =UNK_021D27CC
+ str r2, [r1, #0x0]
+ str r2, [r0, #0x0]
+ bx lr
+ .balign 4
+_020C1E50: .word UNK_021D27A4
+_020C1E54: .word UNK_021D27CC
+
+ arm_func_start FUN_020C1E58
+FUN_020C1E58: ; 0x020C1E58
+ ldr r0, _020C1E64 ; =UNK_021D27CC
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020C1E64: .word UNK_021D27CC
+
+ arm_func_start FUN_020C1E68
+FUN_020C1E68: ; 0x020C1E68
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r0, _020C1EA0 ; =UNK_021D27CC
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldr r0, [r0, #0x4]
+ cmp r0, #0x1
+ addne sp, sp, #0x4
+ ldmneia sp!, {pc}
+ bl FUN_020C1950
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020C1EA0: .word UNK_021D27CC
+
+ arm_func_start FUN_020C1EA4
+FUN_020C1EA4: ; 0x020C1EA4
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x2c
+ mov r5, r0
+ mov r4, r1
+ mov r7, r2
+ mov r6, r3
+ bl FUN_020C1E68
+ ldr r0, _020C1F50 ; =UNK_021D27CC
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addne sp, sp, #0x2c
+ movne r0, #0x0
+ ldmneia sp!, {r4-r7,pc}
+ mov r1, r5
+ mov r2, r4
+ mov r0, #0x0
+ bl MIi_CpuClear32
+ mov r0, r5
+ mov r1, r4
+ bl DC_FlushRange
+ str r7, [sp, #0x0]
+ mov r2, #0x0
+ str r2, [sp, #0x4]
+ str r2, [sp, #0x8]
+ mov r0, #0x1
+ str r0, [sp, #0xc]
+ str r6, [sp, #0x10]
+ mov r1, #0x7f
+ str r1, [sp, #0x14]
+ str r2, [sp, #0x18]
+ ldr r2, [sp, #0x40]
+ str r1, [sp, #0x1c]
+ ldr r1, [sp, #0x44]
+ str r2, [sp, #0x20]
+ ldr r12, [sp, #0x48]
+ str r1, [sp, #0x24]
+ mov r1, r5
+ mov r3, r4, lsr #0x1
+ add r2, r5, r4, lsr #0x1
+ str r12, [sp, #0x28]
+ bl FUN_020C1A44
+ add sp, sp, #0x2c
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C1F50: .word UNK_021D27CC
+
+ arm_func_start FUN_020C1F54
+FUN_020C1F54: ; 0x020C1F54
+ stmdb sp!, {r4,lr}
+ ldr r4, _020C1FA0 ; =UNK_021D27CC
+ mov r2, r0
+ ldr r0, [r4, #0x0]
+ cmp r0, #0x0
+ ldmeqia sp!, {r4,pc}
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ ldmneia sp!, {r4,pc}
+ cmp r2, #0x0
+ bne _020C1F88
+ bl FUN_020C1950
+ ldmia sp!, {r4,pc}
+_020C1F88:
+ add r0, r4, #0x3c
+ mov r1, #0x0
+ bl FUN_020C3E40
+ mov r0, #0x1
+ str r0, [r4, #0x4c]
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C1FA0: .word UNK_021D27CC
+
+ arm_func_start FUN_020C1FA4
+FUN_020C1FA4: ; 0x020C1FA4
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r3, _020C1FEC ; =UNK_021D27CC
+ mov r12, r0
+ ldr r0, [r3, #0x0]
+ mov r2, r1
+ cmp r0, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ ldr r0, [r3, #0x4]
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {pc}
+ add r0, r3, #0x3c
+ mov r1, r12, lsl #0x8
+ bl FUN_020C3E40
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+ .balign 4
+_020C1FEC: .word UNK_021D27CC
+
+ arm_func_start FUN_020C1FF0
+FUN_020C1FF0: ; 0x020C1FF0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x2c
+ mov r5, r0
+ mov r0, #0x0
+ mov r4, r1
+ mov r7, r2
+ mov r6, r3
+ bl FUN_020C1F54
+ ldr r0, _020C2098 ; =UNK_021D27CC
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ addne sp, sp, #0x2c
+ movne r0, #0x0
+ ldmneia sp!, {r4-r7,pc}
+ mov r1, r5
+ mov r2, r4
+ mov r0, #0x0
+ bl MIi_CpuClear32
+ mov r0, r5
+ mov r1, r4
+ bl DC_FlushRange
+ str r7, [sp, #0x0]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ str r0, [sp, #0x8]
+ mov r1, #0x1
+ str r1, [sp, #0xc]
+ ldr r1, [sp, #0x40]
+ str r6, [sp, #0x10]
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x18]
+ mov r1, #0x7f
+ str r1, [sp, #0x1c]
+ str r0, [sp, #0x20]
+ str r0, [sp, #0x24]
+ mov r1, r5
+ mov r3, r4, lsr #0x1
+ add r2, r5, r4, lsr #0x1
+ str r0, [sp, #0x28]
+ bl FUN_020C1A44
+ add sp, sp, #0x2c
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C2098: .word UNK_021D27CC
+
+ arm_func_start FUN_020C209C
+FUN_020C209C: ; 0x020C209C
+ mov r0, #0x0
+ str r0, [r2, #0x88]
+ bx lr
+
+ arm_func_start FUN_020C20A8
+FUN_020C20A8: ; 0x020C20A8
+ mov r0, #0x0
+ str r0, [r2, #0x84]
+ bx lr
+
+ arm_func_start FUN_020C20B4
+FUN_020C20B4: ; 0x020C20B4
+ mov r0, #0x0
+ str r0, [r2, #0x8c]
+ bx lr
+
+ arm_func_start FUN_020C20C0
+FUN_020C20C0: ; 0x020C20C0
+ ldr r2, _020C20D8 ; =UNK_021D28C0
+ ldr r2, [r2, #0x0]
+ ldr r2, [r2, #0x84]
+ add r0, r2, r0, lsl #0x4
+ str r1, [r0, #0x14]
+ bx lr
+ .balign 4
+_020C20D8: .word UNK_021D28C0
+
+ arm_func_start FUN_020C20DC
+FUN_020C20DC:
+ ldr r1, _020C2100 ; =UNK_021D28C0
+ ldr r1, [r1, #0x0]
+ ldr r2, [r1, #0x84]
+ ldr r1, [r2, #0x8]
+ cmp r0, r1
+ movcs r0, #0x0
+ addcc r0, r2, r0, lsl #0x4
+ ldrcc r0, [r0, #0x14]
+ bx lr
+ .balign 4
+_020C2100: .word UNK_021D28C0
+
+ arm_func_start FUN_020C2104
+FUN_020C2104:
+ stmdb sp!, {r4-r6,lr}
+ ldr r4, _020C2178 ; =UNK_021D28C0
+ mov r5, r2
+ ldr r4, [r4, #0x0]
+ mov r6, r1
+ ldr r2, [r4, #0x84]
+ ldr r1, [r2, #0x8]
+ cmp r0, r1
+ mvncs r0, #0x0
+ ldmcsia sp!, {r4-r6,pc}
+ add r1, r2, #0xc
+ add r1, r1, r0, lsl #0x4
+ ldr r0, [r1, #0x4]
+ ldr r1, [r1, #0x0]
+ sub r0, r0, r3
+ cmp r5, r0
+ movhi r5, r0
+ add r0, r4, #0x34
+ add r1, r1, r3
+ mov r2, #0x0
+ bl FS_SeekFile
+ cmp r0, #0x0
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ mov r1, r6
+ mov r2, r5
+ add r0, r4, #0x34
+ bl FS_ReadFile
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020C2178: .word UNK_021D28C0
+
+ arm_func_start FUN_020C217C
+FUN_020C217C: ; 0x020C217C
+ ldr r1, _020C21A0 ; =UNK_021D28C0
+ ldr r1, [r1, #0x0]
+ ldr r2, [r1, #0x84]
+ ldr r1, [r2, #0x8]
+ cmp r0, r1
+ movcs r0, #0x0
+ addcc r0, r2, r0, lsl #0x4
+ ldrcc r0, [r0, #0x10]
+ bx lr
+ .balign 4
+_020C21A0: .word UNK_021D28C0
+
+ arm_func_start FUN_020C21A4
+FUN_020C21A4: ; 0x020C21A4
+ ldr r1, _020C2204 ; =UNK_021D28C0
+ ldr r3, [r1, #0x0]
+ ldr r2, [r3, #0x8c]
+ ldr r1, [r2, #0x1c]
+ cmp r1, #0x0
+ moveq r2, #0x0
+ addne r2, r2, r1
+ cmp r2, #0x0
+ moveq r0, #0x0
+ bxeq lr
+ cmp r0, #0x0
+ movlt r0, #0x0
+ bxlt lr
+ ldr r1, [r2, #0x0]
+ cmp r0, r1
+ movcs r0, #0x0
+ bxcs lr
+ add r0, r2, r0, lsl #0x2
+ ldr r1, [r0, #0x4]
+ ldr r0, [r3, #0x8c]
+ cmp r1, #0x0
+ moveq r0, #0x0
+ addne r0, r0, r1
+ bx lr
+ .balign 4
+_020C2204: .word UNK_021D28C0
+
+ arm_func_start FUN_020C2208
+FUN_020C2208: ; 0x020C2208
+ ldr r1, _020C2268 ; =UNK_021D28C0
+ ldr r3, [r1, #0x0]
+ ldr r2, [r3, #0x8c]
+ ldr r1, [r2, #0x18]
+ cmp r1, #0x0
+ moveq r2, #0x0
+ addne r2, r2, r1
+ cmp r2, #0x0
+ moveq r0, #0x0
+ bxeq lr
+ cmp r0, #0x0
+ movlt r0, #0x0
+ bxlt lr
+ ldr r1, [r2, #0x0]
+ cmp r0, r1
+ movcs r0, #0x0
+ bxcs lr
+ add r0, r2, r0, lsl #0x2
+ ldr r1, [r0, #0x4]
+ ldr r0, [r3, #0x8c]
+ cmp r1, #0x0
+ moveq r0, #0x0
+ addne r0, r0, r1
+ bx lr
+ .balign 4
+_020C2268: .word UNK_021D28C0
+
+ arm_func_start FUN_020C226C
+FUN_020C226C:
+ ldr r1, _020C22CC ; =UNK_021D28C0
+ ldr r3, [r1, #0x0]
+ ldr r2, [r3, #0x8c]
+ ldr r1, [r2, #0x14]
+ cmp r1, #0x0
+ moveq r2, #0x0
+ addne r2, r2, r1
+ cmp r2, #0x0
+ moveq r0, #0x0
+ bxeq lr
+ cmp r0, #0x0
+ movlt r0, #0x0
+ bxlt lr
+ ldr r1, [r2, #0x0]
+ cmp r0, r1
+ movcs r0, #0x0
+ bxcs lr
+ add r0, r2, r0, lsl #0x2
+ ldr r1, [r0, #0x4]
+ ldr r0, [r3, #0x8c]
+ cmp r1, #0x0
+ moveq r0, #0x0
+ addne r0, r0, r1
+ bx lr
+ .balign 4
+_020C22CC: .word UNK_021D28C0
+
+ arm_func_start FUN_020C22D0
+FUN_020C22D0: ; 0x020C22D0
+ ldr r1, _020C2330 ; =UNK_021D28C0
+ ldr r3, [r1, #0x0]
+ ldr r2, [r3, #0x8c]
+ ldr r1, [r2, #0x10]
+ cmp r1, #0x0
+ moveq r2, #0x0
+ addne r2, r2, r1
+ cmp r2, #0x0
+ moveq r0, #0x0
+ bxeq lr
+ cmp r0, #0x0
+ movlt r0, #0x0
+ bxlt lr
+ ldr r1, [r2, #0x0]
+ cmp r0, r1
+ movcs r0, #0x0
+ bxcs lr
+ add r0, r2, r0, lsl #0x2
+ ldr r1, [r0, #0x4]
+ ldr r0, [r3, #0x8c]
+ cmp r1, #0x0
+ moveq r0, #0x0
+ addne r0, r0, r1
+ bx lr
+ .balign 4
+_020C2330: .word UNK_021D28C0
+
+ arm_func_start FUN_020C2334
+FUN_020C2334:
+ ldr r1, _020C2394 ; =UNK_021D28C0
+ ldr r3, [r1, #0x0]
+ ldr r2, [r3, #0x8c]
+ ldr r1, [r2, #0xc]
+ cmp r1, #0x0
+ moveq r2, #0x0
+ addne r2, r2, r1
+ cmp r2, #0x0
+ moveq r0, #0x0
+ bxeq lr
+ cmp r0, #0x0
+ movlt r0, #0x0
+ bxlt lr
+ ldr r1, [r2, #0x0]
+ cmp r0, r1
+ movcs r0, #0x0
+ bxcs lr
+ add r0, r2, r0, lsl #0x2
+ ldr r1, [r0, #0x4]
+ ldr r0, [r3, #0x8c]
+ cmp r1, #0x0
+ moveq r0, #0x0
+ addne r0, r0, r1
+ bx lr
+ .balign 4
+_020C2394: .word UNK_021D28C0
+
+ arm_func_start FUN_020C2398
+FUN_020C2398:
+ ldr r1, _020C23F8 ; =UNK_021D28C0
+ ldr r3, [r1, #0x0]
+ ldr r2, [r3, #0x8c]
+ ldr r1, [r2, #0x8]
+ cmp r1, #0x0
+ moveq r2, #0x0
+ addne r2, r2, r1
+ cmp r2, #0x0
+ moveq r0, #0x0
+ bxeq lr
+ cmp r0, #0x0
+ movlt r0, #0x0
+ bxlt lr
+ ldr r1, [r2, #0x0]
+ cmp r0, r1
+ movcs r0, #0x0
+ bxcs lr
+ add r0, r2, r0, lsl #0x2
+ ldr r1, [r0, #0x4]
+ ldr r0, [r3, #0x8c]
+ cmp r1, #0x0
+ moveq r0, #0x0
+ addne r0, r0, r1
+ bx lr
+ .balign 4
+_020C23F8: .word UNK_021D28C0
+
+ arm_func_start FUN_020C23FC
+FUN_020C23FC: ; 0x020C23FC
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FUN_020C2398
+ cmp r0, #0x0
+ moveq r0, #0x0
+ addne r0, r0, #0x4
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C241C
+FUN_020C241C: ; 0x020C241C
+ ldr r0, _020C2428 ; =UNK_021D28C0
+ ldr r0, [r0, #0x0]
+ bx lr
+ .balign 4
+_020C2428: .word UNK_021D28C0
+
+ arm_func_start FUN_020C242C
+FUN_020C242C: ; 0x020C242C
+ ldr r1, _020C2440 ; =UNK_021D28C0
+ ldr r2, [r1, #0x0]
+ str r0, [r1, #0x0]
+ mov r0, r2
+ bx lr
+ .balign 4
+_020C2440: .word UNK_021D28C0
+
+ arm_func_start FUN_020C2444
+FUN_020C2444: ; 0x020C2444
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ mov r0, r4
+ mov r1, r5
+ mov r2, #0x30
+ bl MIi_CpuCopy32
+ ldr r0, [r5, #0x18]
+ mov r12, #0x0
+ cmp r0, #0x0
+ moveq r0, #0x0
+ addne r0, r4, r0
+ str r0, [r5, #0x8c]
+ ldr r0, [r5, #0x20]
+ cmp r0, #0x0
+ moveq r0, #0x0
+ addne r0, r4, r0
+ str r0, [r5, #0x84]
+ ldr r0, [r5, #0x10]
+ cmp r0, #0x0
+ moveq r0, #0x0
+ addne r0, r4, r0
+ str r0, [r5, #0x88]
+ ldr r2, [r5, #0x84]
+ ldr r0, [r2, #0x8]
+ cmp r0, #0x0
+ bls _020C24F0
+ mov r3, r12
+ mov r1, r12
+_020C24BC:
+ add r2, r2, #0xc
+ ldr r0, [r2, r3]
+ add r2, r2, r3
+ cmp r0, #0x0
+ moveq r0, r1
+ addne r0, r4, r0
+ str r0, [r2, #0x8]
+ ldr r2, [r5, #0x84]
+ add r12, r12, #0x1
+ ldr r0, [r2, #0x8]
+ add r3, r3, #0x10
+ cmp r12, r0
+ blo _020C24BC
+_020C24F0:
+ mov r1, #0x0
+ ldr r0, _020C2508 ; =UNK_021D28C0
+ str r1, [r5, #0x30]
+ str r5, [r0, #0x0]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020C2508: .word UNK_021D28C0
+
+ arm_func_start FUN_020C250C
+FUN_020C250C:
+ stmdb sp!, {r4-r6,lr}
+ sub sp, sp, #0x8
+ mov r6, r0
+ mov r5, r1
+ mov r1, #0x0
+ mov r4, r2
+ mov r2, r1
+ add r0, r6, #0x34
+ bl FS_SeekFile
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ mov r1, r6
+ add r0, r6, #0x34
+ mov r2, #0x30
+ bl FS_ReadFile
+ cmp r0, #0x30
+ addne sp, sp, #0x8
+ movne r0, #0x0
+ ldmneia sp!, {r4-r6,pc}
+ cmp r5, #0x0
+ beq _020C26E0
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r1, [r6, #0x1c]
+ ldr r2, _020C26EC ; =FUN_020C20B4
+ mov r0, r5
+ mov r3, r6
+ bl FUN_020C2958
+ str r0, [r6, #0x8c]
+ ldr r0, [r6, #0x8c]
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ ldr r1, [r6, #0x18]
+ add r0, r6, #0x34
+ mov r2, #0x0
+ bl FS_SeekFile
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ ldr r1, [r6, #0x8c]
+ ldr r2, [r6, #0x1c]
+ add r0, r6, #0x34
+ bl FS_ReadFile
+ ldr r1, [r6, #0x1c]
+ cmp r0, r1
+ addne sp, sp, #0x8
+ movne r0, #0x0
+ ldmneia sp!, {r4-r6,pc}
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldr r1, [r6, #0x24]
+ ldr r2, _020C26F0 ; =FUN_020C20A8
+ mov r0, r5
+ mov r3, r6
+ bl FUN_020C2958
+ str r0, [r6, #0x84]
+ ldr r0, [r6, #0x84]
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ ldr r1, [r6, #0x20]
+ add r0, r6, #0x34
+ mov r2, #0x0
+ bl FS_SeekFile
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ ldr r1, [r6, #0x84]
+ ldr r2, [r6, #0x24]
+ add r0, r6, #0x34
+ bl FS_ReadFile
+ ldr r1, [r6, #0x24]
+ cmp r0, r1
+ addne sp, sp, #0x8
+ movne r0, #0x0
+ ldmneia sp!, {r4-r6,pc}
+ cmp r4, #0x0
+ beq _020C26E0
+ ldr r1, [r6, #0x14]
+ cmp r1, #0x0
+ beq _020C26E0
+ mov r4, #0x0
+ ldr r2, _020C26F4 ; =FUN_020C209C
+ mov r0, r5
+ mov r3, r6
+ str r4, [sp, #0x0]
+ bl FUN_020C2958
+ str r0, [r6, #0x88]
+ ldr r0, [r6, #0x88]
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, r4
+ ldmeqia sp!, {r4-r6,pc}
+ ldr r1, [r6, #0x10]
+ add r0, r6, #0x34
+ mov r2, r4
+ bl FS_SeekFile
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, r4
+ ldmeqia sp!, {r4-r6,pc}
+ ldr r1, [r6, #0x88]
+ ldr r2, [r6, #0x14]
+ add r0, r6, #0x34
+ bl FS_ReadFile
+ ldr r1, [r6, #0x14]
+ cmp r0, r1
+ addne sp, sp, #0x8
+ movne r0, r4
+ ldmneia sp!, {r4-r6,pc}
+_020C26E0:
+ mov r0, #0x1
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020C26EC: .word FUN_020C20B4
+_020C26F0: .word FUN_020C20A8
+_020C26F4: .word FUN_020C209C
+
+ arm_func_start FUN_020C26F8
+FUN_020C26F8: ; 0x020C26F8
+ ; r0: &sSoundDataBuffer
+ ; r1: char* filename
+ ; r2: (&sSoundDataBuffer)->unk_0090
+ ; r3: 0
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r12, #0x0
+ str r12, [r6, #0x8c]
+ str r12, [r6, #0x84]
+ add r0, r6, #0x7c
+ mov r5, r2
+ mov r4, r3
+ str r12, [r6, #0x88]
+ bl FS_ConvertPathToFileID
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ add r0, r6, #0x34
+ bl FS_InitFile
+ add r1, r6, #0x7c
+ add r0, r6, #0x34
+ ldmia r1, {r1-r2}
+ bl FS_OpenFileFast
+ cmp r0, #0x0
+ ldmeqia sp!, {r4-r6,pc}
+ mov r3, #0x1
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ str r3, [r6, #0x30]
+ bl FUN_020C250C
+ cmp r0, #0x0
+ ldrne r0, _020C2770 ; =UNK_021D28C0
+ strne r6, [r0, #0x0]
+ ldmia sp!, {r4-r6,pc}
+ .balign 4
+_020C2770: .word UNK_021D28C0
+
+ arm_func_start FUN_020C2774
+FUN_020C2774: ; 0x020C2774
+ stmdb sp!, {r4,lr}
+ bl SND_GetCurrentCommandTag
+ mov r4, r0
+ mov r0, #0x1
+ bl SND_FlushCommand
+ mov r0, r4
+ bl SND_WaitForCommandProc
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C2794
+FUN_020C2794:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ ldr r0, [r5, #0x0]
+ mov r1, #0x14
+ mov r2, #0x4
+ bl FUN_020AE638
+ movs r4, r0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,pc}
+ bl FUN_020C2818
+ mov r1, r4
+ add r0, r5, #0x4
+ bl FUN_020ADBE8
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020C27DC
+FUN_020C27DC:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ mov r4, r1
+ add r0, r5, #0x4
+ mov r1, #0xc
+ bl FUN_020ADC74
+ mov r0, r5
+ str r4, [r5, #0x0]
+ bl FUN_020C2794
+ cmp r0, #0x0
+ movne r0, #0x1
+ moveq r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020C2818
+FUN_020C2818: ; 0x020C2818
+ ldr ip, _020C2824 ; =FUN_020ADC74
+ mov r1, #0x0
+ bx r12
+ .balign 4
+_020C2824: .word FUN_020ADC74
+
+ arm_func_start FUN_020C2828
+FUN_020C2828: ; 0x020C2828
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ mov r7, #0x0
+ movs r9, r1
+ mov r10, r0
+ mov r6, r7
+ bne _020C2850
+ bl FUN_020C29C0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+_020C2850:
+ ldrh r0, [r10, #0xc]
+ cmp r9, r0
+ bge _020C28D8
+ mov r11, r7
+ add r5, r10, #0x4
+ mov r4, #0x1
+_020C2868:
+ mov r0, r5
+ mov r1, r11
+ bl FUN_020ADA84
+ mov r1, r7
+ mov r8, r0
+ bl FUN_020ADA84
+ movs r7, r0
+ beq _020C28C0
+_020C2888:
+ ldr r12, [r7, #0xc]
+ cmp r12, #0x0
+ beq _020C28AC
+ ldr r1, [r7, #0x8]
+ ldr r2, [r7, #0x10]
+ ldr r3, [r7, #0x14]
+ add r0, r7, #0x20
+ blx r12
+ mov r6, r4
+_020C28AC:
+ mov r0, r8
+ mov r1, r7
+ bl FUN_020ADA84
+ movs r7, r0
+ bne _020C2888
+_020C28C0:
+ mov r0, r5
+ mov r1, r8
+ bl FUN_020ADAB0
+ ldrh r0, [r10, #0xc]
+ cmp r9, r0
+ blt _020C2868
+_020C28D8:
+ ldr r0, [r10, #0x0]
+ mov r1, r9
+ bl FUN_020AE554
+ cmp r6, #0x0
+ beq _020C28F0
+ bl FUN_020C2774
+_020C28F0:
+ ldrh r1, [r10, #0xc]
+ ldr r0, [r10, #0x0]
+ bl FUN_020AE5B0
+ mov r0, r10
+ bl FUN_020C2794
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020C290C
+FUN_020C290C: ; 0x020C290C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldrh r1, [r4, #0xc]
+ ldr r0, [r4, #0x0]
+ bl FUN_020AE5B0
+ cmp r0, #0x0
+ mvneq r0, #0x0
+ ldmeqia sp!, {r4,pc}
+ mov r0, r4
+ bl FUN_020C2794
+ cmp r0, #0x0
+ ldrneh r0, [r4, #0xc]
+ subne r0, r0, #0x1
+ ldmneia sp!, {r4,pc}
+ ldr r0, [r4, #0x0]
+ mov r1, #0x0
+ bl FUN_020AE554
+ mvn r0, #0x0
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C2958
+FUN_020C2958: ; 0x020C2958
+ stmdb sp!, {r4-r8,lr}
+ mov r7, r1
+ mov r8, r0
+ add r0, r7, #0x1f
+ bic r1, r0, #0x1f
+ mov r6, r2
+ ldr r0, [r8, #0x0]
+ add r1, r1, #0x20
+ mov r2, #0x20
+ mov r5, r3
+ bl FUN_020AE638
+ movs r4, r0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r8,pc}
+ add r0, r8, #0x4
+ mov r1, #0x0
+ bl FUN_020ADA84
+ str r7, [r4, #0x8]
+ str r6, [r4, #0xc]
+ ldr r2, [sp, #0x18]
+ str r5, [r4, #0x10]
+ mov r1, r4
+ str r2, [r4, #0x14]
+ bl FUN_020ADBE8
+ add r0, r4, #0x20
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020C29C0
+FUN_020C29C0:
+ stmdb sp!, {r4-r10,lr}
+ mov r8, r0
+ mov r5, #0x0
+ mov r1, r5
+ add r0, r8, #0x4
+ bl FUN_020ADA84
+ movs r7, r0
+ beq _020C2A58
+ add r9, r8, #0x4
+ mov r10, #0x1
+ mov r4, r5
+_020C29EC:
+ mov r0, r7
+ mov r1, r4
+ bl FUN_020ADA84
+ movs r6, r0
+ beq _020C2A38
+_020C2A00:
+ ldr r12, [r6, #0xc]
+ cmp r12, #0x0
+ beq _020C2A24
+ ldr r1, [r6, #0x8]
+ ldr r2, [r6, #0x10]
+ ldr r3, [r6, #0x14]
+ add r0, r6, #0x20
+ blx r12
+ mov r5, r10
+_020C2A24:
+ mov r0, r7
+ mov r1, r6
+ bl FUN_020ADA84
+ movs r6, r0
+ bne _020C2A00
+_020C2A38:
+ mov r0, r9
+ mov r1, r7
+ bl FUN_020ADAB0
+ mov r0, r9
+ mov r1, r4
+ bl FUN_020ADA84
+ movs r7, r0
+ bne _020C29EC
+_020C2A58:
+ ldr r0, [r8, #0x0]
+ mov r1, #0x3
+ bl FUN_020AE600
+ cmp r5, #0x0
+ beq _020C2A70
+ bl FUN_020C2774
+_020C2A70:
+ mov r0, r8
+ bl FUN_020C2794
+ ldmia sp!, {r4-r10,pc}
+
+ arm_func_start FUN_020C2A7C
+FUN_020C2A7C: ; 0x020C2A7C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ bl FUN_020C29C0
+ ldr r0, [r4, #0x0]
+ bl thunk_FUN_020adc8c_2
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C2A94
+FUN_020C2A94:
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ add r2, r0, #0x3
+ add r0, r0, r1
+ bic r5, r2, #0x3
+ cmp r5, r0
+ addhi sp, sp, #0x4
+ movhi r0, #0x0
+ ldmhiia sp!, {r4-r5,pc}
+ sub r1, r0, r5
+ cmp r1, #0x10
+ addcc sp, sp, #0x4
+ movcc r0, #0x0
+ ldmccia sp!, {r4-r5,pc}
+ add r0, r5, #0x10
+ sub r1, r1, #0x10
+ mov r2, #0x0
+ bl FUN_020AE684
+ movs r4, r0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,pc}
+ mov r0, r5
+ mov r1, r4
+ bl FUN_020C27DC
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ movne r0, r5
+ ldmneia sp!, {r4-r5,pc}
+ mov r0, r4
+ bl thunk_FUN_020adc8c_2
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020C2B1C
+FUN_020C2B1C:
+ stmdb sp!, {r4-r10,lr}
+ sub sp, sp, #0x20
+ mov r8, r0
+ add r0, sp, #0x8
+ mov r7, r1
+ mov r6, r2
+ mov r5, r3
+ ldr r4, [sp, #0x40]
+ bl SND_GetFirstInstDataPos
+ ldr r1, [sp, #0x8]
+ ldr r0, [sp, #0xc]
+ str r1, [sp, #0x0]
+ str r0, [sp, #0x4]
+ cmp r7, #0x0
+ add r2, sp, #0x0
+ addeq sp, sp, #0x20
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r10,pc}
+ add r1, sp, #0x10
+ mov r0, r7
+ bl SND_GetNextInstData
+ cmp r0, #0x0
+ beq _020C2BD4
+ add r10, sp, #0x10
+ add r9, sp, #0x0
+_020C2B80:
+ ldrb r0, [sp, #0x10]
+ cmp r0, #0x1
+ bne _020C2BBC
+ ldrh r0, [sp, #0x14]
+ cmp r6, r0
+ bne _020C2BBC
+ ldrh r1, [sp, #0x12]
+ mov r0, r8
+ mov r2, r5
+ mov r3, r4
+ bl FUN_020C2BE0
+ cmp r0, #0x0
+ addeq sp, sp, #0x20
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r10,pc}
+_020C2BBC:
+ mov r0, r7
+ mov r1, r10
+ mov r2, r9
+ bl SND_GetNextInstData
+ cmp r0, #0x0
+ bne _020C2B80
+_020C2BD4:
+ mov r0, #0x1
+ add sp, sp, #0x20
+ ldmia sp!, {r4-r10,pc}
+
+ arm_func_start FUN_020C2BE0
+FUN_020C2BE0:
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bl SND_GetWaveDataAddress
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ movne r0, #0x1
+ ldmneia sp!, {r4-r9,pc}
+ mov r0, r7
+ bl SND_GetWaveDataCount
+ ldr r1, [r7, #0x38]
+ sub r0, r0, #0x1
+ add r1, r1, r6
+ add r1, r7, r1, lsl #0x2
+ cmp r6, r0
+ ldrcc r0, [r1, #0x40]
+ ldr r8, [r1, #0x3c]
+ ldrcs r0, [r7, #0x8]
+ cmp r4, #0x0
+ sub r9, r0, r8
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r9,pc}
+ ldr r2, _020C2CBC ; =FUN_020C2CC0
+ mov r0, r4
+ mov r3, r7
+ add r1, r9, #0x20
+ str r6, [sp, #0x0]
+ bl FUN_020C2958
+ movs r4, r0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r9,pc}
+ mov r0, r5
+ mov r1, r4
+ mov r2, r9
+ mov r3, r8
+ bl FUN_020C2104
+ cmp r9, r0
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {r4-r9,pc}
+ mov r0, r4
+ mov r1, r9
+ bl DC_StoreRange
+ mov r0, r7
+ mov r1, r6
+ mov r2, r4
+ bl SND_SetWaveDataAddress
+ mov r0, #0x1
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020C2CBC: .word FUN_020C2CC0
+
+ arm_func_start FUN_020C2CC0
+FUN_020C2CC0: ; 0x020C2CC0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r5, r2
+ mov r7, r0
+ mov r4, r3
+ mov r6, r1
+ mov r0, r5
+ mov r1, r4
+ bl SND_GetWaveDataAddress
+ cmp r7, r0
+ bne _020C2CFC
+ mov r0, r5
+ mov r1, r4
+ mov r2, #0x0
+ bl SND_SetWaveDataAddress
+_020C2CFC:
+ mov r0, r7
+ add r1, r7, r6
+ bl SND_InvalidateWaveData
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020C2D10
+FUN_020C2D10: ; 0x020C2D10
+ stmdb sp!, {r4,lr}
+ mov r1, r2
+ mov r4, r0
+ mov r2, r3
+ bl FUN_020C2DD0
+ mov r0, r4
+ bl SND_DestroyWaveArc
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C2D30
+FUN_020C2D30: ; 0x020C2D30
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ mov r1, r2
+ mov r5, r0
+ mov r2, r3
+ bl FUN_020C2DD0
+ mov r0, r5
+ add r1, r5, r4
+ bl SND_InvalidateWaveData
+ mov r0, r5
+ bl SND_DestroyWaveArc
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020C2D68
+FUN_020C2D68: ; 0x020C2D68
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ mov r1, r2
+ mov r5, r0
+ mov r2, r3
+ bl FUN_020C2DD0
+ mov r0, r5
+ add r1, r5, r4
+ bl SND_InvalidateBankData
+ mov r0, r5
+ bl SND_DestroyBank
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020C2DA0
+FUN_020C2DA0: ; 0x020C2DA0
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r4, r1
+ mov r1, r2
+ mov r5, r0
+ mov r2, r3
+ bl FUN_020C2DD0
+ mov r0, r5
+ add r1, r5, r4
+ bl SND_InvalidateSeqData
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020C2DD0
+FUN_020C2DD0: ; 0x020C2DD0
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ movs r5, r1
+ mov r7, r0
+ mov r6, r2
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r7,pc}
+ bl OS_DisableInterrupts
+ mov r4, r0
+ mov r0, r5
+ bl FUN_020C242C
+ mov r5, r0
+ mov r0, r6
+ bl FUN_020C20DC
+ cmp r7, r0
+ bne _020C2E1C
+ mov r0, r6
+ mov r1, #0x0
+ bl FUN_020C20C0
+_020C2E1C:
+ mov r0, r5
+ bl FUN_020C242C
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020C2E34
+FUN_020C2E34: ; 0x020C2E34
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r9, r0
+ mov r8, r1
+ mov r7, r2
+ bl FUN_020C20DC
+ movs r6, r0
+ bne _020C2F40
+ ldr r1, _020C2F4C ; =UNK_021D28C4
+ mov r0, r9
+ mov r2, #0x3c
+ mov r3, #0x0
+ bl FUN_020C2104
+ cmp r0, #0x3c
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {r4-r9,pc}
+ ldr r0, _020C2F4C ; =UNK_021D28C4
+ cmp r8, #0x0
+ ldr r0, [r0, #0x38]
+ addeq sp, sp, #0x4
+ mov r4, r0, lsl #0x2
+ mov r0, r4, lsl #0x1
+ add r5, r0, #0x3c
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r9,pc}
+ cmp r7, #0x0
+ moveq r3, #0x0
+ beq _020C2EB0
+ bl FUN_020C241C
+ mov r3, r0
+_020C2EB0:
+ ldr r2, _020C2F50 ; =FUN_020C2D10
+ mov r0, r8
+ add r1, r5, #0x20
+ str r9, [sp, #0x0]
+ bl FUN_020C2958
+ movs r6, r0
+ addeq sp, sp, #0x4
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r9,pc}
+ mov r0, r9
+ mov r1, r6
+ add r2, r4, #0x3c
+ mov r3, #0x0
+ bl FUN_020C2104
+ add r1, r4, #0x3c
+ cmp r0, r1
+ addne sp, sp, #0x4
+ movne r0, #0x0
+ ldmneia sp!, {r4-r9,pc}
+ ldr r1, [r6, #0x38]
+ add r0, r6, #0x3c
+ mov r2, r4
+ add r1, r0, r1, lsl #0x2
+ bl MI_CpuCopy8
+ mov r2, r4
+ add r0, r6, #0x3c
+ mov r1, #0x0
+ bl MI_CpuFill8
+ mov r0, r6
+ mov r1, r5
+ bl DC_StoreRange
+ cmp r7, #0x0
+ beq _020C2F40
+ mov r0, r9
+ mov r1, r6
+ bl FUN_020C20C0
+_020C2F40:
+ mov r0, r6
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,pc}
+ .balign 4
+_020C2F4C: .word UNK_021D28C4
+_020C2F50: .word FUN_020C2D10
+
+ arm_func_start FUN_020C2F54
+FUN_020C2F54:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ bl FUN_020C20DC
+ movs r4, r0
+ bne _020C2FBC
+ cmp r5, #0x0
+ moveq r2, #0x0
+ beq _020C2F88
+ bl FUN_020C241C
+ mov r2, r0
+_020C2F88:
+ ldr r1, _020C2FC8 ; =FUN_020C2D30
+ mov r0, r7
+ mov r3, r7
+ str r6, [sp, #0x0]
+ bl FUN_020C3134
+ mov r4, r0
+ cmp r5, #0x0
+ beq _020C2FBC
+ cmp r4, #0x0
+ beq _020C2FBC
+ mov r0, r7
+ mov r1, r4
+ bl FUN_020C20C0
+_020C2FBC:
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C2FC8: .word FUN_020C2D30
+
+ arm_func_start FUN_020C2FCC
+FUN_020C2FCC: ; 0x020C2FCC
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ bl FUN_020C20DC
+ movs r4, r0
+ bne _020C3034
+ cmp r5, #0x0
+ moveq r2, #0x0
+ beq _020C3000
+ bl FUN_020C241C
+ mov r2, r0
+_020C3000:
+ ldr r1, _020C3040 ; =FUN_020C2D68
+ mov r0, r7
+ mov r3, r7
+ str r6, [sp, #0x0]
+ bl FUN_020C3134
+ mov r4, r0
+ cmp r5, #0x0
+ beq _020C3034
+ cmp r4, #0x0
+ beq _020C3034
+ mov r0, r7
+ mov r1, r4
+ bl FUN_020C20C0
+_020C3034:
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C3040: .word FUN_020C2D68
+
+ arm_func_start FUN_020C3044
+FUN_020C3044:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ bl FUN_020C20DC
+ movs r4, r0
+ bne _020C30AC
+ cmp r5, #0x0
+ moveq r2, #0x0
+ beq _020C3078
+ bl FUN_020C241C
+ mov r2, r0
+_020C3078:
+ ldr r1, _020C30B8 ; =FUN_020C2DA0
+ mov r0, r7
+ mov r3, r7
+ str r6, [sp, #0x0]
+ bl FUN_020C3134
+ mov r4, r0
+ cmp r5, #0x0
+ beq _020C30AC
+ cmp r4, #0x0
+ beq _020C30AC
+ mov r0, r7
+ mov r1, r4
+ bl FUN_020C20C0
+_020C30AC:
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C30B8: .word FUN_020C2DA0
+
+ arm_func_start FUN_020C30BC
+FUN_020C30BC:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r0
+ mov r6, r1
+ mov r5, r2
+ bl FUN_020C20DC
+ movs r4, r0
+ bne _020C3124
+ cmp r5, #0x0
+ moveq r2, #0x0
+ beq _020C30F0
+ bl FUN_020C241C
+ mov r2, r0
+_020C30F0:
+ ldr r1, _020C3130 ; =FUN_020C2DA0
+ mov r0, r7
+ mov r3, r7
+ str r6, [sp, #0x0]
+ bl FUN_020C3134
+ mov r4, r0
+ cmp r5, #0x0
+ beq _020C3124
+ cmp r4, #0x0
+ beq _020C3124
+ mov r0, r7
+ mov r1, r4
+ bl FUN_020C20C0
+_020C3124:
+ mov r0, r4
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C3130: .word FUN_020C2DA0
+
+ arm_func_start FUN_020C3134
+FUN_020C3134: ; 0x020C3134
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x8
+ mov r8, r0
+ mov r7, r1
+ mov r6, r2
+ mov r4, r3
+ bl FUN_020C217C
+ movs r5, r0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r8,pc}
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r8,pc}
+ mov r2, r7
+ mov r3, r6
+ add r1, r5, #0x20
+ str r4, [sp, #0x0]
+ bl FUN_020C2958
+ movs r4, r0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r8,pc}
+ mov r0, r8
+ mov r1, r4
+ mov r2, r5
+ mov r3, #0x0
+ bl FUN_020C2104
+ cmp r5, r0
+ addne sp, sp, #0x8
+ movne r0, #0x0
+ ldmneia sp!, {r4-r8,pc}
+ mov r0, r4
+ mov r1, r5
+ bl DC_StoreRange
+ mov r0, r4
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020C31D4
+FUN_020C31D4:
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bl FUN_020C226C
+ cmp r0, #0x0
+ moveq r0, #0x5
+ ldmeqia sp!, {r4-r6,pc}
+ ands r1, r6, #0x4
+ beq _020C324C
+ ldrb r1, [r0, #0x3]
+ ands r1, r1, #0x1
+ beq _020C3224
+ ldr r0, [r0, #0x0]
+ mov r1, r5
+ mov r0, r0, lsl #0x8
+ mov r2, r4
+ mov r0, r0, lsr #0x8
+ bl FUN_020C2E34
+ b _020C323C
+_020C3224:
+ ldr r0, [r0, #0x0]
+ mov r1, r5
+ mov r0, r0, lsl #0x8
+ mov r2, r4
+ mov r0, r0, lsr #0x8
+ bl FUN_020C2F54
+_020C323C:
+ cmp r0, #0x0
+ bne _020C325C
+ mov r0, #0x9
+ ldmia sp!, {r4-r6,pc}
+_020C324C:
+ ldr r0, [r0, #0x0]
+ mov r0, r0, lsl #0x8
+ mov r0, r0, lsr #0x8
+ bl FUN_020C20DC
+_020C325C:
+ ldr r1, [sp, #0x10]
+ cmp r1, #0x0
+ strne r0, [r1, #0x0]
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020C3270
+FUN_020C3270:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r10, r1
+ mov r9, r2
+ mov r11, r3
+ bl FUN_020C22D0
+ movs r8, r0
+ addeq sp, sp, #0xc
+ moveq r0, #0x4
+ ldmeqia sp!, {r4-r11,pc}
+ ands r0, r10, #0x2
+ beq _020C32C4
+ ldr r0, [r8, #0x0]
+ mov r1, r9
+ mov r2, r11
+ bl FUN_020C2FCC
+ movs r7, r0
+ bne _020C32D0
+ add sp, sp, #0xc
+ mov r0, #0x8
+ ldmia sp!, {r4-r11,pc}
+_020C32C4:
+ ldr r0, [r8, #0x0]
+ bl FUN_020C20DC
+ mov r7, r0
+_020C32D0:
+ and r5, r10, #0x4
+ mov r6, #0x0
+_020C32D8:
+ add r0, r8, r6, lsl #0x1
+ ldrh r0, [r0, #0x4]
+ ldr r1, _020C33B4 ; =0x0000FFFF
+ cmp r0, r1
+ beq _020C3390
+ bl FUN_020C226C
+ movs r4, r0
+ addeq sp, sp, #0xc
+ moveq r0, #0x5
+ ldmeqia sp!, {r4-r11,pc}
+ add r0, sp, #0x4
+ str r0, [sp, #0x0]
+ add r0, r8, r6, lsl #0x1
+ ldrh r0, [r0, #0x4]
+ mov r1, r10
+ mov r2, r9
+ mov r3, r11
+ bl FUN_020C31D4
+ cmp r0, #0x0
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4-r11,pc}
+ ldrb r0, [r4, #0x3]
+ ands r0, r0, #0x1
+ beq _020C3370
+ cmp r5, #0x0
+ beq _020C3370
+ str r9, [sp, #0x0]
+ ldr r1, [r4, #0x0]
+ ldr r0, [sp, #0x4]
+ mov r3, r1, lsl #0x8
+ mov r1, r7
+ mov r2, r6
+ mov r3, r3, lsr #0x8
+ bl FUN_020C2B1C
+ cmp r0, #0x0
+ addeq sp, sp, #0xc
+ moveq r0, #0x9
+ ldmeqia sp!, {r4-r11,pc}
+_020C3370:
+ cmp r7, #0x0
+ beq _020C3390
+ ldr r2, [sp, #0x4]
+ cmp r2, #0x0
+ beq _020C3390
+ mov r0, r7
+ mov r1, r6
+ bl SND_AssignWaveArc
+_020C3390:
+ add r6, r6, #0x1
+ cmp r6, #0x4
+ blt _020C32D8
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x0
+ strne r7, [r0, #0x0]
+ mov r0, #0x0
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+ .balign 4
+_020C33B4: .word 0x0000FFFF
+
+ arm_func_start FUN_020C33B8
+FUN_020C33B8:
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bl FUN_020C2334
+ cmp r0, #0x0
+ moveq r0, #0x3
+ ldmeqia sp!, {r4-r6,pc}
+ ands r1, r6, #0x8
+ beq _020C3400
+ ldr r0, [r0, #0x0]
+ mov r1, r5
+ mov r2, r4
+ bl FUN_020C3044
+ cmp r0, #0x0
+ bne _020C3408
+ mov r0, #0x7
+ ldmia sp!, {r4-r6,pc}
+_020C3400:
+ ldr r0, [r0, #0x0]
+ bl FUN_020C20DC
+_020C3408:
+ ldr r1, [sp, #0x10]
+ cmp r1, #0x0
+ strne r0, [r1, #0x0]
+ mov r0, #0x0
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020C341C
+FUN_020C341C:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r7, r1
+ mov r6, r2
+ mov r5, r3
+ bl FUN_020C2398
+ movs r4, r0
+ addeq sp, sp, #0x4
+ moveq r0, #0x2
+ ldmeqia sp!, {r4-r7,pc}
+ mov r0, #0x0
+ str r0, [sp, #0x0]
+ ldrh r0, [r4, #0x4]
+ mov r1, r7
+ mov r2, r6
+ mov r3, r5
+ bl FUN_020C3270
+ cmp r0, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {r4-r7,pc}
+ ands r0, r7, #0x1
+ beq _020C3498
+ ldr r0, [r4, #0x0]
+ mov r1, r6
+ mov r2, r5
+ bl FUN_020C30BC
+ cmp r0, #0x0
+ bne _020C34A0
+ add sp, sp, #0x4
+ mov r0, #0x6
+ ldmia sp!, {r4-r7,pc}
+_020C3498:
+ ldr r0, [r4, #0x0]
+ bl FUN_020C20DC
+_020C34A0:
+ ldr r1, [sp, #0x18]
+ cmp r1, #0x0
+ strne r0, [r1, #0x0]
+ mov r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020C34B8
+FUN_020C34B8:
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0xc
+ mov r9, r1
+ bl FUN_020C21A4
+ movs r8, r0
+ addeq sp, sp, #0xc
+ moveq r0, #0x1
+ ldmeqia sp!, {r4-r11,pc}
+ ldr r0, [r8, #0x0]
+ mov r7, #0x0
+ cmp r0, #0x0
+ bls _020C35D4
+ add r6, r8, #0x4
+ str r7, [sp, #0x4]
+ mov r11, r7
+ mov r10, r7
+ mov r5, r7
+ mov r4, #0x1
+_020C3500:
+ ldrb r0, [r6, #0x0]
+ cmp r0, #0x3
+ addls pc, pc, r0, lsl #0x2
+ b _020C35C0
+_020C3510:
+ b _020C3520
+_020C3514:
+ b _020C3570
+_020C3518:
+ b _020C3598
+_020C351C:
+ b _020C3548
+_020C3520:
+ str r5, [sp, #0x0]
+ ldrb r1, [r6, #0x1]
+ ldr r0, [r6, #0x4]
+ mov r2, r9
+ mov r3, r4
+ bl FUN_020C341C
+ cmp r0, #0x0
+ beq _020C35C0
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+_020C3548:
+ str r10, [sp, #0x0]
+ ldrb r1, [r6, #0x1]
+ ldr r0, [r6, #0x4]
+ mov r2, r9
+ mov r3, r4
+ bl FUN_020C33B8
+ cmp r0, #0x0
+ beq _020C35C0
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+_020C3570:
+ str r11, [sp, #0x0]
+ ldrb r1, [r6, #0x1]
+ ldr r0, [r6, #0x4]
+ mov r2, r9
+ mov r3, r4
+ bl FUN_020C3270
+ cmp r0, #0x0
+ beq _020C35C0
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+_020C3598:
+ ldr r0, [sp, #0x4]
+ mov r2, r9
+ str r0, [sp, #0x0]
+ ldrb r1, [r6, #0x1]
+ ldr r0, [r6, #0x4]
+ mov r3, r4
+ bl FUN_020C31D4
+ cmp r0, #0x0
+ addne sp, sp, #0xc
+ ldmneia sp!, {r4-r11,pc}
+_020C35C0:
+ ldr r0, [r8, #0x0]
+ add r7, r7, #0x1
+ cmp r7, r0
+ add r6, r6, #0x8
+ blo _020C3500
+_020C35D4:
+ mov r0, #0x0
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r11,pc}
+
+ arm_func_start FUN_020C35E0
+FUN_020C35E0: ; 0x020C35E0
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r12, #0x0
+ mov r3, #0x1
+ str r12, [sp, #0x0]
+ bl FUN_020C341C
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C360C
+FUN_020C360C: ; 0x020C360C
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, r1
+ mov r12, #0x0
+ mov r1, #0xff
+ mov r3, #0x1
+ str r12, [sp, #0x0]
+ bl FUN_020C31D4
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C3640
+FUN_020C3640: ; 0x020C3640
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, r1
+ mov r12, #0x0
+ mov r1, #0xff
+ mov r3, #0x1
+ str r12, [sp, #0x0]
+ bl FUN_020C3270
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C3674
+FUN_020C3674: ; 0x020C3674
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ mov r2, r1
+ mov r12, #0x0
+ mov r1, #0xff
+ mov r3, #0x1
+ str r12, [sp, #0x0]
+ bl FUN_020C341C
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C36A8
+FUN_020C36A8: ; 0x020C36A8
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ bl FUN_020C34B8
+ cmp r0, #0x0
+ moveq r0, #0x1
+ movne r0, #0x0
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C36C8
+FUN_020C36C8: ; 0x020C36C8
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x8
+ mov r7, r2
+ mov r2, r3
+ ldr r6, [sp, #0x20]
+ mov r4, r0
+ mov r8, r1
+ bl FUN_020C0AF4
+ movs r5, r0
+ addeq sp, sp, #0x8
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r8,pc}
+ mov r0, r8
+ mov r1, r5
+ bl FUN_020C09B0
+ add r12, sp, #0x4
+ mov r2, r0
+ mov r0, r7
+ mov r1, #0x6
+ mov r3, #0x0
+ str r12, [sp, #0x0]
+ bl FUN_020C3270
+ cmp r0, #0x0
+ beq _020C373C
+ mov r0, r5
+ bl thunk_FUN_020c077c
+ add sp, sp, #0x8
+ mov r0, #0x0
+ ldmia sp!, {r4-r8,pc}
+_020C373C:
+ ldr r12, [sp, #0x24]
+ ldr r2, [r6, #0x0]
+ ldr r1, [r12, #0x18]
+ ldr r3, [sp, #0x4]
+ mov r0, r5
+ add r1, r12, r1
+ bl FUN_020C0A90
+ ldrb r1, [r6, #0x6]
+ mov r0, r4
+ bl FUN_020C0F30
+ ldrb r1, [r6, #0x7]
+ mov r0, r4
+ bl FUN_020C0ECC
+ ldr r1, [sp, #0x28]
+ ldr r2, [sp, #0x2c]
+ mov r0, r4
+ bl FUN_020C0E38
+ mov r0, #0x1
+ add sp, sp, #0x8
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020C378C
+FUN_020C378C: ; 0x020C378C
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0x10
+ mov r8, r2
+ mov r2, r3
+ ldr r5, [sp, #0x28]
+ mov r6, r0
+ mov r7, r1
+ bl FUN_020C0AF4
+ movs r4, r0
+ addeq sp, sp, #0x10
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r8,pc}
+ mov r0, r7
+ mov r1, r4
+ bl FUN_020C09B0
+ mov r7, r0
+ add r12, sp, #0x8
+ mov r0, r8
+ mov r2, r7
+ mov r1, #0x6
+ mov r3, #0x0
+ str r12, [sp, #0x0]
+ bl FUN_020C3270
+ cmp r0, #0x0
+ beq _020C3804
+ mov r0, r4
+ bl thunk_FUN_020c077c
+ add sp, sp, #0x10
+ mov r0, #0x0
+ ldmia sp!, {r4-r8,pc}
+_020C3804:
+ ldr r0, [sp, #0x2c]
+ add r12, sp, #0x4
+ mov r2, r7
+ mov r1, #0x1
+ mov r3, #0x0
+ str r12, [sp, #0x0]
+ bl FUN_020C341C
+ cmp r0, #0x0
+ beq _020C383C
+ mov r0, r4
+ bl thunk_FUN_020c077c
+ add sp, sp, #0x10
+ mov r0, #0x0
+ ldmia sp!, {r4-r8,pc}
+_020C383C:
+ ldr r2, [sp, #0x4]
+ ldr r3, [sp, #0x8]
+ ldr r1, [r2, #0x18]
+ mov r0, r4
+ add r1, r2, r1
+ mov r2, #0x0
+ bl FUN_020C0A90
+ ldrb r1, [r5, #0x6]
+ mov r0, r6
+ bl FUN_020C0F30
+ ldrb r1, [r5, #0x7]
+ mov r0, r6
+ bl FUN_020C0ECC
+ ldr r1, [sp, #0x2c]
+ mov r0, r6
+ bl FUN_020C0E60
+ mov r0, #0x1
+ add sp, sp, #0x10
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020C3888
+FUN_020C3888: ; 0x020C3888
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x14
+ mov r6, r1
+ mov r7, r0
+ mov r0, r6
+ mov r5, r2
+ bl FUN_020C2334
+ cmp r0, #0x0
+ addeq sp, sp, #0x14
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,pc}
+ ldr r0, [r0, #0x0]
+ bl FUN_020C20DC
+ movs r4, r0
+ addeq sp, sp, #0x14
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,pc}
+ mov r1, r5
+ bl FUN_020C3D9C
+ cmp r0, #0x0
+ addeq sp, sp, #0x14
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,pc}
+ str r0, [sp, #0x0]
+ str r4, [sp, #0x4]
+ str r6, [sp, #0x8]
+ str r5, [sp, #0xc]
+ ldrb r1, [r0, #0x9]
+ ldrh r2, [r0, #0x4]
+ ldrb r3, [r0, #0x8]
+ mov r0, r7
+ bl FUN_020C36C8
+ add sp, sp, #0x14
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020C3910
+FUN_020C3910: ; 0x020C3910
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0xc
+ mov r7, r0
+ ldr r0, [sp, #0x20]
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bl FUN_020C2398
+ cmp r0, #0x0
+ addeq sp, sp, #0xc
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r7,pc}
+ cmp r4, #0x0
+ ldrltb r4, [r0, #0x8]
+ cmp r5, #0x0
+ ldrlth r5, [r0, #0x4]
+ cmp r6, #0x0
+ ldrltb r6, [r0, #0x9]
+ ldr r12, [sp, #0x20]
+ mov r2, r5
+ str r0, [sp, #0x0]
+ mov r0, r7
+ mov r1, r6
+ mov r3, r4
+ str r12, [sp, #0x4]
+ bl FUN_020C378C
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r7,pc}
+
+ arm_func_start FUN_020C3980
+FUN_020C3980: ; 0x020C3980
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0xc
+ mov r4, r1
+ mov r5, r0
+ mov r0, r4
+ bl FUN_020C2398
+ cmp r0, #0x0
+ addeq sp, sp, #0xc
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r5,pc}
+ str r0, [sp, #0x0]
+ str r4, [sp, #0x4]
+ ldrb r1, [r0, #0x9]
+ ldrh r2, [r0, #0x4]
+ ldrb r3, [r0, #0x8]
+ mov r0, r5
+ bl FUN_020C378C
+ add sp, sp, #0xc
+ ldmia sp!, {r4-r5,pc}
+
+ arm_func_start FUN_020C39CC
+FUN_020C39CC: ; 0x020C39CC
+ stmdb sp!, {r4-r8,lr}
+ mov r6, r0
+ bl FUN_020C241C
+ mov r5, #0x0
+ mov r7, r5
+_020C39E0:
+ mov r0, r5
+ bl FUN_020C2208
+ movs r4, r0
+ beq _020C3A58
+ ldrb r1, [r4, #0x0]
+ mov r0, r5
+ bl FUN_020C1160
+ ldrh r1, [r4, #0x2]
+ mov r0, r5
+ bl FUN_020C1148
+ ldr r0, [r4, #0x4]
+ cmp r0, #0x0
+ beq _020C3A58
+ cmp r6, #0x0
+ beq _020C3A58
+ ldrb r0, [r4, #0x0]
+ mov r8, r7
+ cmp r0, #0x0
+ ble _020C3A58
+_020C3A2C:
+ ldr r2, [r4, #0x4]
+ mov r0, r5
+ mov r1, r6
+ bl FUN_020C10B4
+ cmp r0, #0x0
+ moveq r0, #0x0
+ ldmeqia sp!, {r4-r8,pc}
+ ldrb r0, [r4, #0x0]
+ add r8, r8, #0x1
+ cmp r8, r0
+ blt _020C3A2C
+_020C3A58:
+ add r5, r5, #0x1
+ cmp r5, #0x20
+ blt _020C39E0
+ mov r0, #0x1
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020C3A6C
+FUN_020C3A6C: ; 0x020C3A6C
+ stmdb sp!, {r4-r5,lr}
+ sub sp, sp, #0x4
+ mov r5, r0
+ bl OS_DisableInterrupts
+ mov r4, r0
+ ldr r0, _020C3A9C ; =UNK_021D2904
+ mov r1, r5
+ bl FUN_020ADBE8
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r5,pc}
+ .balign 4
+_020C3A9C: .word UNK_021D2904
+
+ arm_func_start FUN_020C3AA0
+FUN_020C3AA0: ; 0x020C3AA0
+ stmdb sp!, {r4-r8,lr}
+ mov r8, r0
+ mov r7, r1
+ bl OS_DisableInterrupts
+ mov r6, r0
+ mov r0, r8
+ mov r1, #0x0
+ bl FUN_020ADA98
+ movs r5, r0
+ beq _020C3B04
+_020C3AC8:
+ mov r0, r8
+ mov r1, r5
+ bl FUN_020ADA98
+ ldr r1, [r5, #0x8]
+ mov r4, r0
+ cmp r1, r7
+ bne _020C3AF8
+ mov r0, r8
+ mov r1, r5
+ bl FUN_020ADAB0
+ mov r0, r5
+ bl FUN_020C3A6C
+_020C3AF8:
+ mov r5, r4
+ cmp r4, #0x0
+ bne _020C3AC8
+_020C3B04:
+ mov r0, r6
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4-r8,pc}
+
+ arm_func_start FUN_020C3B10
+FUN_020C3B10: ; 0x020C3B10
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr r1, [r0, #0x120]
+ cmp r1, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {pc}
+ sub r1, r1, #0x1
+ str r1, [r0, #0x120]
+ ldr r1, [r0, #0x120]
+ cmp r1, #0x0
+ addne sp, sp, #0x4
+ ldmneia sp!, {pc}
+ bl FUN_020C1674
+ add sp, sp, #0x4
+ ldmia sp!, {pc}
+
+ arm_func_start FUN_020C3B4C
+FUN_020C3B4C: ; 0x020C3B4C
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r1, [r4, #0x110]
+ mov r1, r1, lsl #0x1f
+ movs r1, r1, asr #0x1f
+ ldmeqia sp!, {r4,pc}
+ bl FUN_020C3B10
+ ldr r1, [r4, #0x164]
+ mov r0, r4
+ blx r1
+ ldr r0, _020C3BA8 ; =UNK_021D2DF0
+ mov r1, r4
+ bl FUN_020C3AA0
+ ldr r0, _020C3BAC ; =UNK_021D2900
+ ldr r0, [r0, #0x0]
+ cmp r0, #0x0
+ beq _020C3B9C
+ mov r1, r4
+ add r0, r0, #0x4e0
+ bl FUN_020C3AA0
+_020C3B9C:
+ mov r0, r4
+ bl FUN_020C3C4C
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C3BA8: .word UNK_021D2DF0
+_020C3BAC: .word UNK_021D2900
+
+ arm_func_start FUN_020C3BB0
+FUN_020C3BB0: ; 0x020C3BB0
+ stmdb sp!, {r4,lr}
+ mov r4, r0
+ ldr r0, _020C3C40 ; =UNK_021D2DD8
+ bl OS_LockMutex
+ ldr r0, _020C3C44 ; =UNK_021D2900
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ beq _020C3BDC
+ ldr r0, _020C3C48 ; =0x000004C8
+ add r0, r1, r0
+ bl OS_LockMutex
+_020C3BDC:
+ ldr r0, [r4, #0x110]
+ mov r0, r0, lsl #0x1e
+ movs r0, r0, asr #0x1f
+ beq _020C3BF4
+ mov r0, r4
+ bl FUN_020C1430
+_020C3BF4:
+ ldr r0, [r4, #0x110]
+ mov r0, r0, lsl #0x1f
+ movs r0, r0, asr #0x1f
+ beq _020C3C10
+ ldr r1, [r4, #0x16c]
+ mov r0, r4
+ blx r1
+_020C3C10:
+ mov r0, r4
+ bl FUN_020C3B4C
+ ldr r0, _020C3C40 ; =UNK_021D2DD8
+ bl OS_UnlockMutex
+ ldr r0, _020C3C44 ; =UNK_021D2900
+ ldr r1, [r0, #0x0]
+ cmp r1, #0x0
+ ldmeqia sp!, {r4,pc}
+ ldr r0, _020C3C48 ; =0x000004C8
+ add r0, r1, r0
+ bl OS_UnlockMutex
+ ldmia sp!, {r4,pc}
+ .balign 4
+_020C3C40: .word UNK_021D2DD8
+_020C3C44: .word UNK_021D2900
+_020C3C48: .word 0x000004C8
+
+ arm_func_start FUN_020C3C4C
+FUN_020C3C4C: ; 0x020C3C4C
+ ldr r2, [r0, #0x14c]
+ cmp r2, #0x0
+ movne r1, #0x0
+ strne r1, [r2, #0x0]
+ strne r1, [r0, #0x14c]
+ ldr r1, [r0, #0x110]
+ bic r1, r1, #0x1
+ str r1, [r0, #0x110]
+ ldr r1, [r0, #0x110]
+ bic r1, r1, #0x4
+ str r1, [r0, #0x110]
+ ldr r1, [r0, #0x110]
+ bic r1, r1, #0x2
+ str r1, [r0, #0x110]
+ bx lr
+
+ arm_func_start FUN_020C3C88
+FUN_020C3C88:
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ ldr r5, _020C3D94 ; =UNK_021D2DFC
+ mov r7, #0x0
+ ldr r4, _020C3D98 ; =UNK_02103BAC
+_020C3C9C:
+ ldr r1, [r5, #0x110]
+ mov r0, r1, lsl #0x1f
+ movs r0, r0, asr #0x1f
+ beq _020C3D7C
+ ldr r0, [r5, #0x114]
+ cmp r0, #0x0
+ bne _020C3CC4
+ mov r0, r5
+ bl FUN_020C3BB0
+ b _020C3D7C
+_020C3CC4:
+ mov r0, r1, lsl #0x1d
+ movs r0, r0, asr #0x1f
+ beq _020C3CFC
+ ldr r0, [r5, #0x118]
+ cmp r0, #0x0
+ beq _020C3CFC
+ mov r0, r5
+ bl FUN_020C1458
+ ldr r0, [r5, #0x110]
+ orr r0, r0, #0x2
+ str r0, [r5, #0x110]
+ ldr r0, [r5, #0x110]
+ bic r0, r0, #0x4
+ str r0, [r5, #0x110]
+_020C3CFC:
+ ldr r0, [r5, #0x110]
+ mov r0, r0, lsl #0x1e
+ movs r0, r0, asr #0x1f
+ beq _020C3D7C
+ add r0, r5, #0xe8
+ bl FUN_020C3DF4
+ ldr r1, [r5, #0x154]
+ add r0, r5, #0xe8
+ mov r1, r1, lsl #0x1
+ ldrsh r6, [r4, r1]
+ bl FUN_020C3E0C
+ mov r0, r0, asr #0x8
+ mov r0, r0, lsl #0x1
+ ldrsh r1, [r4, r0]
+ ldr r0, [r5, #0x158]
+ add r6, r1, r6
+ cmp r6, r0
+ beq _020C3D54
+ mov r0, r5
+ mov r1, r6
+ bl FUN_020C13C4
+ str r6, [r5, #0x158]
+_020C3D54:
+ ldr r0, [r5, #0x110]
+ mov r0, r0, lsl #0x1c
+ movs r0, r0, asr #0x1f
+ beq _020C3D7C
+ add r0, r5, #0xe8
+ bl FUN_020C3DDC
+ cmp r0, #0x0
+ beq _020C3D7C
+ mov r0, r5
+ bl FUN_020C3BB0
+_020C3D7C:
+ add r7, r7, #0x1
+ cmp r7, #0x4
+ add r5, r5, #0x170
+ blt _020C3C9C
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,pc}
+ .balign 4
+_020C3D94: .word UNK_021D2DFC
+_020C3D98: .word UNK_02103BAC
+
+ arm_func_start FUN_020C3D9C
+FUN_020C3D9C:
+ cmp r1, #0x0
+ movlt r0, #0x0
+ bxlt lr
+ ldr r2, [r0, #0x1c]
+ cmp r1, r2
+ movcs r0, #0x0
+ bxcs lr
+ mov r2, #0xc
+ mul r2, r1, r2
+ add r3, r0, #0x20
+ ldr r1, [r3, r2]
+ mvn r0, #0x0
+ cmp r1, r0
+ add r0, r3, r2
+ moveq r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020C3DDC
+FUN_020C3DDC:
+ ldr r1, [r0, #0x8]
+ ldr r0, [r0, #0xc]
+ cmp r1, r0
+ movge r0, #0x1
+ movlt r0, #0x0
+ bx lr
+
+ arm_func_start FUN_020C3DF4
+FUN_020C3DF4: ; 0x020C3DF4
+ ldr r2, [r0, #0x8]
+ ldr r1, [r0, #0xc]
+ cmp r2, r1
+ addlt r1, r2, #0x1
+ strlt r1, [r0, #0x8]
+ bx lr
+
+ arm_func_start FUN_020C3E0C
+FUN_020C3E0C:
+ stmdb sp!, {r4,lr}
+ ldr r1, [r0, #0xc]
+ ldr r2, [r0, #0x8]
+ cmp r2, r1
+ ldrge r0, [r0, #0x4]
+ ldmgeia sp!, {r4,pc}
+ ldr r4, [r0, #0x0]
+ ldr r0, [r0, #0x4]
+ sub r0, r0, r4
+ mul r0, r2, r0
+ bl _s32_div_f
+ add r0, r4, r0
+ ldmia sp!, {r4,pc}
+
+ arm_func_start FUN_020C3E40
+FUN_020C3E40:
+ stmdb sp!, {r4-r6,lr}
+ mov r6, r0
+ mov r5, r1
+ mov r4, r2
+ bl FUN_020C3E0C
+ str r0, [r6, #0x0]
+ str r5, [r6, #0x4]
+ str r4, [r6, #0xc]
+ mov r0, #0x0
+ str r0, [r6, #0x8]
+ ldmia sp!, {r4-r6,pc}
+
+ arm_func_start FUN_020C3E6C
+FUN_020C3E6C: ; 0x020C3E6C
+ mov r2, #0x0
+ str r2, [r0, #0x4]
+ ldr r1, [r0, #0x4]
+ str r1, [r0, #0x0]
+ str r2, [r0, #0xc]
+ ldr r1, [r0, #0xc]
+ str r1, [r0, #0x8]
+ bx lr
diff --git a/arm9/asm/unk_020AF030.s b/arm9/asm/unk_020AF030.s
deleted file mode 100644
index ffbbdd7c..00000000
--- a/arm9/asm/unk_020AF030.s
+++ /dev/null
@@ -1,26267 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .extern GXi_DmaId
- .extern UNK_02103BAC
- .extern UNK_021064B8
- .extern UNK_021064BC
- .extern UNK_021064C0
- .extern UNK_021064C4
-
- .section .rodata
-
- .global UNK_020FF864
-UNK_020FF864: ; 0x020FF864
- .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_020FF894
-UNK_020FF894: ; 0x020FF894
- .byte 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00
- .byte 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00
-
- .global UNK_020FF8AC
-UNK_020FF8AC: ; 0x020FF8AC
- .byte 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00
- .byte 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00
-
- .global UNK_020FF8C4
-UNK_020FF8C4: ; 0x020FF8C4
- .byte 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00
-
- .global UNK_020FF8D0
-UNK_020FF8D0: ; 0x020FF8D0
- .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
-
- .global UNK_020FF8D8
-UNK_020FF8D8: ; 0x020FF8D8
- .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
- .byte 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00
-
- .global UNK_020FF8F8
-UNK_020FF8F8: ; 0x020FF8F8
- .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
-
- .global UNK_020FF928
-UNK_020FF928: ; 0x020FF928
- .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
-
- .global UNK_020FF958
-UNK_020FF958: ; 0x020FF958
- .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_020FF970
-UNK_020FF970: ; 0x020FF970
- .byte 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x01, 0x02, 0x01
- .byte 0x00, 0x02, 0x01, 0x02, 0x02, 0x02, 0x03, 0x02, 0x00, 0x02, 0x01, 0x02, 0x02, 0x03, 0x03, 0x03
-
- .global UNK_020FF990
-UNK_020FF990: ; 0x020FF990
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x80, 0x00, 0x40, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0xC0
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0
-
- .global UNK_020FF9D0
-UNK_020FF9D0: ; 0x020FF9D0
- .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F
- .byte 0x00, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F
-
- .global UNK_020FF9F0
-UNK_020FF9F0: ; 0x020FF9F0
- .byte 0x04
-
- .global UNK_020FF9F1
-UNK_020FF9F1: ; 0x020FF9F1
- .byte 0x05
-
- .global UNK_020FF9F2
-UNK_020FF9F2: ; 0x020FF9F2
- .byte 0x07
-
- .global UNK_020FF9F3
-UNK_020FF9F3: ; 0x020FF9F3
- .byte 0x08, 0x03, 0x05, 0x06, 0x08, 0x03, 0x04, 0x06, 0x07, 0x01, 0x02, 0x07, 0x08, 0x00, 0x02, 0x06
- .byte 0x08, 0x00, 0x01, 0x06, 0x07, 0x01, 0x02, 0x04, 0x05, 0x00, 0x02, 0x03, 0x05, 0x00, 0x01, 0x03
- .byte 0x04
-
- .global UNK_020FFA14
-UNK_020FFA14: ; 0x020FFA14
- .byte 0x04
-
- .global UNK_020FFA15
-UNK_020FFA15: ; 0x020FFA15
- .byte 0x05
-
- .global UNK_020FFA16
-UNK_020FFA16: ; 0x020FFA16
- .byte 0x07
-
- .global UNK_020FFA17
-UNK_020FFA17: ; 0x020FFA17
- .byte 0x08, 0x03, 0x05, 0x06, 0x08, 0x03, 0x04, 0x06, 0x07, 0x01, 0x02, 0x07, 0x08, 0x00, 0x02, 0x06
- .byte 0x08, 0x00, 0x01, 0x06, 0x07, 0x01, 0x02, 0x04, 0x05, 0x00, 0x02, 0x03, 0x05, 0x00, 0x01, 0x03
- .byte 0x04
-
- .global UNK_020FFA38
-UNK_020FFA38: ; 0x020FFA38
- .byte 0x00, 0x00, 0x00, 0x10, 0x06, 0x00, 0x00, 0x10, 0x0D, 0x00, 0x00, 0x10, 0x13, 0x00, 0x00, 0x10,
- .byte 0x19, 0x00, 0x00, 0x10, 0x1F, 0x00, 0x00, 0x10, 0x26, 0x00, 0x00, 0x10, 0x2C, 0x00, 0x00, 0x10,
- .byte 0x32, 0x00, 0x00, 0x10, 0x39, 0x00, 0x00, 0x10, 0x3F, 0x00, 0x00, 0x10, 0x45, 0x00, 0xFF, 0x0F,
- .byte 0x4B, 0x00, 0xFF, 0x0F, 0x52, 0x00, 0xFF, 0x0F, 0x58, 0x00, 0xFF, 0x0F, 0x5E, 0x00, 0xFF, 0x0F,
- .byte 0x65, 0x00, 0xFF, 0x0F, 0x6B, 0x00, 0xFF, 0x0F, 0x71, 0x00, 0xFE, 0x0F, 0x77, 0x00, 0xFE, 0x0F,
- .byte 0x7E, 0x00, 0xFE, 0x0F, 0x84, 0x00, 0xFE, 0x0F, 0x8A, 0x00, 0xFE, 0x0F, 0x90, 0x00, 0xFD, 0x0F,
- .byte 0x97, 0x00, 0xFD, 0x0F, 0x9D, 0x00, 0xFD, 0x0F, 0xA3, 0x00, 0xFD, 0x0F, 0xAA, 0x00, 0xFC, 0x0F,
- .byte 0xB0, 0x00, 0xFC, 0x0F, 0xB6, 0x00, 0xFC, 0x0F, 0xBC, 0x00, 0xFC, 0x0F, 0xC3, 0x00, 0xFB, 0x0F,
- .byte 0xC9, 0x00, 0xFB, 0x0F, 0xCF, 0x00, 0xFB, 0x0F, 0xD6, 0x00, 0xFA, 0x0F, 0xDC, 0x00, 0xFA, 0x0F,
- .byte 0xE2, 0x00, 0xFA, 0x0F, 0xE8, 0x00, 0xF9, 0x0F, 0xEF, 0x00, 0xF9, 0x0F, 0xF5, 0x00, 0xF9, 0x0F,
- .byte 0xFB, 0x00, 0xF8, 0x0F, 0x01, 0x01, 0xF8, 0x0F, 0x08, 0x01, 0xF8, 0x0F, 0x0E, 0x01, 0xF7, 0x0F,
- .byte 0x14, 0x01, 0xF7, 0x0F, 0x1B, 0x01, 0xF6, 0x0F, 0x21, 0x01, 0xF6, 0x0F, 0x27, 0x01, 0xF5, 0x0F,
- .byte 0x2D, 0x01, 0xF5, 0x0F, 0x34, 0x01, 0xF4, 0x0F, 0x3A, 0x01, 0xF4, 0x0F, 0x40, 0x01, 0xF3, 0x0F,
- .byte 0x46, 0x01, 0xF3, 0x0F, 0x4D, 0x01, 0xF2, 0x0F, 0x53, 0x01, 0xF2, 0x0F, 0x59, 0x01, 0xF1, 0x0F,
- .byte 0x5F, 0x01, 0xF1, 0x0F, 0x66, 0x01, 0xF0, 0x0F, 0x6C, 0x01, 0xF0, 0x0F, 0x72, 0x01, 0xEF, 0x0F,
- .byte 0x78, 0x01, 0xEF, 0x0F, 0x7F, 0x01, 0xEE, 0x0F, 0x85, 0x01, 0xED, 0x0F, 0x8B, 0x01, 0xED, 0x0F,
- .byte 0x91, 0x01, 0xEC, 0x0F, 0x98, 0x01, 0xEC, 0x0F, 0x9E, 0x01, 0xEB, 0x0F, 0xA4, 0x01, 0xEA, 0x0F,
- .byte 0xAA, 0x01, 0xEA, 0x0F, 0xB1, 0x01, 0xE9, 0x0F, 0xB7, 0x01, 0xE8, 0x0F, 0xBD, 0x01, 0xE8, 0x0F,
- .byte 0xC3, 0x01, 0xE7, 0x0F, 0xCA, 0x01, 0xE6, 0x0F, 0xD0, 0x01, 0xE6, 0x0F, 0xD6, 0x01, 0xE5, 0x0F,
- .byte 0xDC, 0x01, 0xE4, 0x0F, 0xE3, 0x01, 0xE3, 0x0F, 0xE9, 0x01, 0xE3, 0x0F, 0xEF, 0x01, 0xE2, 0x0F,
- .byte 0xF5, 0x01, 0xE1, 0x0F, 0xFC, 0x01, 0xE0, 0x0F, 0x02, 0x02, 0xE0, 0x0F, 0x08, 0x02, 0xDF, 0x0F,
- .byte 0x0E, 0x02, 0xDE, 0x0F, 0x15, 0x02, 0xDD, 0x0F, 0x1B, 0x02, 0xDC, 0x0F, 0x21, 0x02, 0xDC, 0x0F,
- .byte 0x27, 0x02, 0xDB, 0x0F, 0x2D, 0x02, 0xDA, 0x0F, 0x34, 0x02, 0xD9, 0x0F, 0x3A, 0x02, 0xD8, 0x0F,
- .byte 0x40, 0x02, 0xD7, 0x0F, 0x46, 0x02, 0xD6, 0x0F, 0x4D, 0x02, 0xD5, 0x0F, 0x53, 0x02, 0xD5, 0x0F,
- .byte 0x59, 0x02, 0xD4, 0x0F, 0x5F, 0x02, 0xD3, 0x0F, 0x65, 0x02, 0xD2, 0x0F, 0x6C, 0x02, 0xD1, 0x0F,
- .byte 0x72, 0x02, 0xD0, 0x0F, 0x78, 0x02, 0xCF, 0x0F, 0x7E, 0x02, 0xCE, 0x0F, 0x84, 0x02, 0xCD, 0x0F,
- .byte 0x8B, 0x02, 0xCC, 0x0F, 0x91, 0x02, 0xCB, 0x0F, 0x97, 0x02, 0xCA, 0x0F, 0x9D, 0x02, 0xC9, 0x0F,
- .byte 0xA3, 0x02, 0xC8, 0x0F, 0xAA, 0x02, 0xC7, 0x0F, 0xB0, 0x02, 0xC6, 0x0F, 0xB6, 0x02, 0xC5, 0x0F,
- .byte 0xBC, 0x02, 0xC4, 0x0F, 0xC2, 0x02, 0xC3, 0x0F, 0xC9, 0x02, 0xC2, 0x0F, 0xCF, 0x02, 0xC0, 0x0F,
- .byte 0xD5, 0x02, 0xBF, 0x0F, 0xDB, 0x02, 0xBE, 0x0F, 0xE1, 0x02, 0xBD, 0x0F, 0xE8, 0x02, 0xBC, 0x0F,
- .byte 0xEE, 0x02, 0xBB, 0x0F, 0xF4, 0x02, 0xBA, 0x0F, 0xFA, 0x02, 0xB8, 0x0F, 0x00, 0x03, 0xB7, 0x0F,
- .byte 0x06, 0x03, 0xB6, 0x0F, 0x0D, 0x03, 0xB5, 0x0F, 0x13, 0x03, 0xB4, 0x0F, 0x19, 0x03, 0xB3, 0x0F,
- .byte 0x1F, 0x03, 0xB1, 0x0F, 0x25, 0x03, 0xB0, 0x0F, 0x2B, 0x03, 0xAF, 0x0F, 0x32, 0x03, 0xAE, 0x0F,
- .byte 0x38, 0x03, 0xAC, 0x0F, 0x3E, 0x03, 0xAB, 0x0F, 0x44, 0x03, 0xAA, 0x0F, 0x4A, 0x03, 0xA8, 0x0F,
- .byte 0x50, 0x03, 0xA7, 0x0F, 0x56, 0x03, 0xA6, 0x0F, 0x5D, 0x03, 0xA5, 0x0F, 0x63, 0x03, 0xA3, 0x0F,
- .byte 0x69, 0x03, 0xA2, 0x0F, 0x6F, 0x03, 0xA1, 0x0F, 0x75, 0x03, 0x9F, 0x0F, 0x7B, 0x03, 0x9E, 0x0F,
- .byte 0x81, 0x03, 0x9C, 0x0F, 0x88, 0x03, 0x9B, 0x0F, 0x8E, 0x03, 0x9A, 0x0F, 0x94, 0x03, 0x98, 0x0F,
- .byte 0x9A, 0x03, 0x97, 0x0F, 0xA0, 0x03, 0x95, 0x0F, 0xA6, 0x03, 0x94, 0x0F, 0xAC, 0x03, 0x93, 0x0F,
- .byte 0xB2, 0x03, 0x91, 0x0F, 0xB9, 0x03, 0x90, 0x0F, 0xBF, 0x03, 0x8E, 0x0F, 0xC5, 0x03, 0x8D, 0x0F,
- .byte 0xCB, 0x03, 0x8B, 0x0F, 0xD1, 0x03, 0x8A, 0x0F, 0xD7, 0x03, 0x88, 0x0F, 0xDD, 0x03, 0x87, 0x0F,
- .byte 0xE3, 0x03, 0x85, 0x0F, 0xE9, 0x03, 0x84, 0x0F, 0xEF, 0x03, 0x82, 0x0F, 0xF6, 0x03, 0x81, 0x0F,
- .byte 0xFC, 0x03, 0x7F, 0x0F, 0x02, 0x04, 0x7D, 0x0F, 0x08, 0x04, 0x7C, 0x0F, 0x0E, 0x04, 0x7A, 0x0F,
- .byte 0x14, 0x04, 0x79, 0x0F, 0x1A, 0x04, 0x77, 0x0F, 0x20, 0x04, 0x76, 0x0F, 0x26, 0x04, 0x74, 0x0F,
- .byte 0x2C, 0x04, 0x72, 0x0F, 0x32, 0x04, 0x71, 0x0F, 0x38, 0x04, 0x6F, 0x0F, 0x3E, 0x04, 0x6D, 0x0F,
- .byte 0x44, 0x04, 0x6C, 0x0F, 0x4B, 0x04, 0x6A, 0x0F, 0x51, 0x04, 0x68, 0x0F, 0x57, 0x04, 0x67, 0x0F,
- .byte 0x5D, 0x04, 0x65, 0x0F, 0x63, 0x04, 0x63, 0x0F, 0x69, 0x04, 0x61, 0x0F, 0x6F, 0x04, 0x60, 0x0F,
- .byte 0x75, 0x04, 0x5E, 0x0F, 0x7B, 0x04, 0x5C, 0x0F, 0x81, 0x04, 0x5A, 0x0F, 0x87, 0x04, 0x59, 0x0F,
- .byte 0x8D, 0x04, 0x57, 0x0F, 0x93, 0x04, 0x55, 0x0F, 0x99, 0x04, 0x53, 0x0F, 0x9F, 0x04, 0x51, 0x0F,
- .byte 0xA5, 0x04, 0x50, 0x0F, 0xAB, 0x04, 0x4E, 0x0F, 0xB1, 0x04, 0x4C, 0x0F, 0xB7, 0x04, 0x4A, 0x0F,
- .byte 0xBD, 0x04, 0x48, 0x0F, 0xC3, 0x04, 0x46, 0x0F, 0xC9, 0x04, 0x45, 0x0F, 0xCF, 0x04, 0x43, 0x0F,
- .byte 0xD5, 0x04, 0x41, 0x0F, 0xDB, 0x04, 0x3F, 0x0F, 0xE1, 0x04, 0x3D, 0x0F, 0xE7, 0x04, 0x3B, 0x0F,
- .byte 0xED, 0x04, 0x39, 0x0F, 0xF3, 0x04, 0x37, 0x0F, 0xF9, 0x04, 0x35, 0x0F, 0xFF, 0x04, 0x33, 0x0F,
- .byte 0x05, 0x05, 0x31, 0x0F, 0x0B, 0x05, 0x2F, 0x0F, 0x11, 0x05, 0x2D, 0x0F, 0x17, 0x05, 0x2B, 0x0F,
- .byte 0x1D, 0x05, 0x29, 0x0F, 0x23, 0x05, 0x27, 0x0F, 0x29, 0x05, 0x25, 0x0F, 0x2F, 0x05, 0x23, 0x0F,
- .byte 0x34, 0x05, 0x21, 0x0F, 0x3A, 0x05, 0x1F, 0x0F, 0x40, 0x05, 0x1D, 0x0F, 0x46, 0x05, 0x1B, 0x0F,
- .byte 0x4C, 0x05, 0x19, 0x0F, 0x52, 0x05, 0x17, 0x0F, 0x58, 0x05, 0x15, 0x0F, 0x5E, 0x05, 0x13, 0x0F,
- .byte 0x64, 0x05, 0x11, 0x0F, 0x6A, 0x05, 0x0E, 0x0F, 0x70, 0x05, 0x0C, 0x0F, 0x76, 0x05, 0x0A, 0x0F,
- .byte 0x7C, 0x05, 0x08, 0x0F, 0x81, 0x05, 0x06, 0x0F, 0x87, 0x05, 0x04, 0x0F, 0x8D, 0x05, 0x02, 0x0F,
- .byte 0x93, 0x05, 0xFF, 0x0E, 0x99, 0x05, 0xFD, 0x0E, 0x9F, 0x05, 0xFB, 0x0E, 0xA5, 0x05, 0xF9, 0x0E,
- .byte 0xAB, 0x05, 0xF7, 0x0E, 0xB1, 0x05, 0xF4, 0x0E, 0xB6, 0x05, 0xF2, 0x0E, 0xBC, 0x05, 0xF0, 0x0E,
- .byte 0xC2, 0x05, 0xEE, 0x0E, 0xC8, 0x05, 0xEB, 0x0E, 0xCE, 0x05, 0xE9, 0x0E, 0xD4, 0x05, 0xE7, 0x0E,
- .byte 0xDA, 0x05, 0xE4, 0x0E, 0xDF, 0x05, 0xE2, 0x0E, 0xE5, 0x05, 0xE0, 0x0E, 0xEB, 0x05, 0xDD, 0x0E,
- .byte 0xF1, 0x05, 0xDB, 0x0E, 0xF7, 0x05, 0xD9, 0x0E, 0xFD, 0x05, 0xD6, 0x0E, 0x02, 0x06, 0xD4, 0x0E,
- .byte 0x08, 0x06, 0xD2, 0x0E, 0x0E, 0x06, 0xCF, 0x0E, 0x14, 0x06, 0xCD, 0x0E, 0x1A, 0x06, 0xCB, 0x0E,
- .byte 0x1F, 0x06, 0xC8, 0x0E, 0x25, 0x06, 0xC6, 0x0E, 0x2B, 0x06, 0xC3, 0x0E, 0x31, 0x06, 0xC1, 0x0E,
- .byte 0x37, 0x06, 0xBF, 0x0E, 0x3C, 0x06, 0xBC, 0x0E, 0x42, 0x06, 0xBA, 0x0E, 0x48, 0x06, 0xB7, 0x0E,
- .byte 0x4E, 0x06, 0xB5, 0x0E, 0x54, 0x06, 0xB2, 0x0E, 0x59, 0x06, 0xB0, 0x0E, 0x5F, 0x06, 0xAD, 0x0E,
- .byte 0x65, 0x06, 0xAB, 0x0E, 0x6B, 0x06, 0xA8, 0x0E, 0x70, 0x06, 0xA6, 0x0E, 0x76, 0x06, 0xA3, 0x0E,
- .byte 0x7C, 0x06, 0xA1, 0x0E, 0x82, 0x06, 0x9E, 0x0E, 0x87, 0x06, 0x9B, 0x0E, 0x8D, 0x06, 0x99, 0x0E,
- .byte 0x93, 0x06, 0x96, 0x0E, 0x99, 0x06, 0x94, 0x0E, 0x9E, 0x06, 0x91, 0x0E, 0xA4, 0x06, 0x8F, 0x0E,
- .byte 0xAA, 0x06, 0x8C, 0x0E, 0xAF, 0x06, 0x89, 0x0E, 0xB5, 0x06, 0x87, 0x0E, 0xBB, 0x06, 0x84, 0x0E,
- .byte 0xC1, 0x06, 0x81, 0x0E, 0xC6, 0x06, 0x7F, 0x0E, 0xCC, 0x06, 0x7C, 0x0E, 0xD2, 0x06, 0x79, 0x0E,
- .byte 0xD7, 0x06, 0x77, 0x0E, 0xDD, 0x06, 0x74, 0x0E, 0xE3, 0x06, 0x71, 0x0E, 0xE8, 0x06, 0x6F, 0x0E,
- .byte 0xEE, 0x06, 0x6C, 0x0E, 0xF4, 0x06, 0x69, 0x0E, 0xF9, 0x06, 0x66, 0x0E, 0xFF, 0x06, 0x64, 0x0E,
- .byte 0x05, 0x07, 0x61, 0x0E, 0x0A, 0x07, 0x5E, 0x0E, 0x10, 0x07, 0x5B, 0x0E, 0x15, 0x07, 0x59, 0x0E,
- .byte 0x1B, 0x07, 0x56, 0x0E, 0x21, 0x07, 0x53, 0x0E, 0x26, 0x07, 0x50, 0x0E, 0x2C, 0x07, 0x4D, 0x0E,
- .byte 0x32, 0x07, 0x4B, 0x0E, 0x37, 0x07, 0x48, 0x0E, 0x3D, 0x07, 0x45, 0x0E, 0x42, 0x07, 0x42, 0x0E,
- .byte 0x48, 0x07, 0x3F, 0x0E, 0x4E, 0x07, 0x3C, 0x0E, 0x53, 0x07, 0x3A, 0x0E, 0x59, 0x07, 0x37, 0x0E,
- .byte 0x5E, 0x07, 0x34, 0x0E, 0x64, 0x07, 0x31, 0x0E, 0x6A, 0x07, 0x2E, 0x0E, 0x6F, 0x07, 0x2B, 0x0E,
- .byte 0x75, 0x07, 0x28, 0x0E, 0x7A, 0x07, 0x25, 0x0E, 0x80, 0x07, 0x22, 0x0E, 0x85, 0x07, 0x1F, 0x0E,
- .byte 0x8B, 0x07, 0x1C, 0x0E, 0x90, 0x07, 0x19, 0x0E, 0x96, 0x07, 0x16, 0x0E, 0x9B, 0x07, 0x13, 0x0E,
- .byte 0xA1, 0x07, 0x10, 0x0E, 0xA6, 0x07, 0x0D, 0x0E, 0xAC, 0x07, 0x0A, 0x0E, 0xB2, 0x07, 0x07, 0x0E,
- .byte 0xB7, 0x07, 0x04, 0x0E, 0xBD, 0x07, 0x01, 0x0E, 0xC2, 0x07, 0xFE, 0x0D, 0xC8, 0x07, 0xFB, 0x0D,
- .byte 0xCD, 0x07, 0xF8, 0x0D, 0xD2, 0x07, 0xF5, 0x0D, 0xD8, 0x07, 0xF2, 0x0D, 0xDD, 0x07, 0xEF, 0x0D,
- .byte 0xE3, 0x07, 0xEC, 0x0D, 0xE8, 0x07, 0xE9, 0x0D, 0xEE, 0x07, 0xE6, 0x0D, 0xF3, 0x07, 0xE3, 0x0D,
- .byte 0xF9, 0x07, 0xDF, 0x0D, 0xFE, 0x07, 0xDC, 0x0D, 0x04, 0x08, 0xD9, 0x0D, 0x09, 0x08, 0xD6, 0x0D,
- .byte 0x0E, 0x08, 0xD3, 0x0D, 0x14, 0x08, 0xD0, 0x0D, 0x19, 0x08, 0xCC, 0x0D, 0x1F, 0x08, 0xC9, 0x0D,
- .byte 0x24, 0x08, 0xC6, 0x0D, 0x2A, 0x08, 0xC3, 0x0D, 0x2F, 0x08, 0xC0, 0x0D, 0x34, 0x08, 0xBC, 0x0D,
- .byte 0x3A, 0x08, 0xB9, 0x0D, 0x3F, 0x08, 0xB6, 0x0D, 0x45, 0x08, 0xB3, 0x0D, 0x4A, 0x08, 0xB0, 0x0D,
- .byte 0x4F, 0x08, 0xAC, 0x0D, 0x55, 0x08, 0xA9, 0x0D, 0x5A, 0x08, 0xA6, 0x0D, 0x5F, 0x08, 0xA2, 0x0D,
- .byte 0x65, 0x08, 0x9F, 0x0D, 0x6A, 0x08, 0x9C, 0x0D, 0x6F, 0x08, 0x99, 0x0D, 0x75, 0x08, 0x95, 0x0D,
- .byte 0x7A, 0x08, 0x92, 0x0D, 0x7F, 0x08, 0x8F, 0x0D, 0x85, 0x08, 0x8B, 0x0D, 0x8A, 0x08, 0x88, 0x0D,
- .byte 0x8F, 0x08, 0x85, 0x0D, 0x95, 0x08, 0x81, 0x0D, 0x9A, 0x08, 0x7E, 0x0D, 0x9F, 0x08, 0x7A, 0x0D,
- .byte 0xA5, 0x08, 0x77, 0x0D, 0xAA, 0x08, 0x74, 0x0D, 0xAF, 0x08, 0x70, 0x0D, 0xB4, 0x08, 0x6D, 0x0D,
- .byte 0xBA, 0x08, 0x69, 0x0D, 0xBF, 0x08, 0x66, 0x0D, 0xC4, 0x08, 0x62, 0x0D, 0xC9, 0x08, 0x5F, 0x0D,
- .byte 0xCF, 0x08, 0x5C, 0x0D, 0xD4, 0x08, 0x58, 0x0D, 0xD9, 0x08, 0x55, 0x0D, 0xDE, 0x08, 0x51, 0x0D,
- .byte 0xE4, 0x08, 0x4E, 0x0D, 0xE9, 0x08, 0x4A, 0x0D, 0xEE, 0x08, 0x47, 0x0D, 0xF3, 0x08, 0x43, 0x0D,
- .byte 0xF8, 0x08, 0x40, 0x0D, 0xFE, 0x08, 0x3C, 0x0D, 0x03, 0x09, 0x39, 0x0D, 0x08, 0x09, 0x35, 0x0D,
- .byte 0x0D, 0x09, 0x32, 0x0D, 0x12, 0x09, 0x2E, 0x0D, 0x18, 0x09, 0x2A, 0x0D, 0x1D, 0x09, 0x27, 0x0D,
- .byte 0x22, 0x09, 0x23, 0x0D, 0x27, 0x09, 0x20, 0x0D, 0x2C, 0x09, 0x1C, 0x0D, 0x31, 0x09, 0x18, 0x0D,
- .byte 0x37, 0x09, 0x15, 0x0D, 0x3C, 0x09, 0x11, 0x0D, 0x41, 0x09, 0x0E, 0x0D, 0x46, 0x09, 0x0A, 0x0D,
- .byte 0x4B, 0x09, 0x06, 0x0D, 0x50, 0x09, 0x03, 0x0D, 0x55, 0x09, 0xFF, 0x0C, 0x5A, 0x09, 0xFB, 0x0C,
- .byte 0x5F, 0x09, 0xF8, 0x0C, 0x65, 0x09, 0xF4, 0x0C, 0x6A, 0x09, 0xF0, 0x0C, 0x6F, 0x09, 0xED, 0x0C,
- .byte 0x74, 0x09, 0xE9, 0x0C, 0x79, 0x09, 0xE5, 0x0C, 0x7E, 0x09, 0xE1, 0x0C, 0x83, 0x09, 0xDE, 0x0C,
- .byte 0x88, 0x09, 0xDA, 0x0C, 0x8D, 0x09, 0xD6, 0x0C, 0x92, 0x09, 0xD2, 0x0C, 0x97, 0x09, 0xCF, 0x0C,
- .byte 0x9C, 0x09, 0xCB, 0x0C, 0xA1, 0x09, 0xC7, 0x0C, 0xA6, 0x09, 0xC3, 0x0C, 0xAB, 0x09, 0xC0, 0x0C,
- .byte 0xB0, 0x09, 0xBC, 0x0C, 0xB5, 0x09, 0xB8, 0x0C, 0xBA, 0x09, 0xB4, 0x0C, 0xBF, 0x09, 0xB0, 0x0C,
- .byte 0xC4, 0x09, 0xAC, 0x0C, 0xC9, 0x09, 0xA9, 0x0C, 0xCE, 0x09, 0xA5, 0x0C, 0xD3, 0x09, 0xA1, 0x0C,
- .byte 0xD8, 0x09, 0x9D, 0x0C, 0xDD, 0x09, 0x99, 0x0C, 0xE2, 0x09, 0x95, 0x0C, 0xE7, 0x09, 0x91, 0x0C,
- .byte 0xEC, 0x09, 0x8E, 0x0C, 0xF1, 0x09, 0x8A, 0x0C, 0xF6, 0x09, 0x86, 0x0C, 0xFB, 0x09, 0x82, 0x0C,
- .byte 0xFF, 0x09, 0x7E, 0x0C, 0x04, 0x0A, 0x7A, 0x0C, 0x09, 0x0A, 0x76, 0x0C, 0x0E, 0x0A, 0x72, 0x0C,
- .byte 0x13, 0x0A, 0x6E, 0x0C, 0x18, 0x0A, 0x6A, 0x0C, 0x1D, 0x0A, 0x66, 0x0C, 0x22, 0x0A, 0x62, 0x0C,
- .byte 0x26, 0x0A, 0x5E, 0x0C, 0x2B, 0x0A, 0x5A, 0x0C, 0x30, 0x0A, 0x56, 0x0C, 0x35, 0x0A, 0x52, 0x0C,
- .byte 0x3A, 0x0A, 0x4E, 0x0C, 0x3F, 0x0A, 0x4A, 0x0C, 0x44, 0x0A, 0x46, 0x0C, 0x48, 0x0A, 0x42, 0x0C,
- .byte 0x4D, 0x0A, 0x3E, 0x0C, 0x52, 0x0A, 0x3A, 0x0C, 0x57, 0x0A, 0x36, 0x0C, 0x5C, 0x0A, 0x32, 0x0C,
- .byte 0x60, 0x0A, 0x2E, 0x0C, 0x65, 0x0A, 0x2A, 0x0C, 0x6A, 0x0A, 0x26, 0x0C, 0x6F, 0x0A, 0x22, 0x0C,
- .byte 0x73, 0x0A, 0x1E, 0x0C, 0x78, 0x0A, 0x19, 0x0C, 0x7D, 0x0A, 0x15, 0x0C, 0x82, 0x0A, 0x11, 0x0C,
- .byte 0x86, 0x0A, 0x0D, 0x0C, 0x8B, 0x0A, 0x09, 0x0C, 0x90, 0x0A, 0x05, 0x0C, 0x95, 0x0A, 0x01, 0x0C,
- .byte 0x99, 0x0A, 0xFC, 0x0B, 0x9E, 0x0A, 0xF8, 0x0B, 0xA3, 0x0A, 0xF4, 0x0B, 0xA7, 0x0A, 0xF0, 0x0B,
- .byte 0xAC, 0x0A, 0xEC, 0x0B, 0xB1, 0x0A, 0xE8, 0x0B, 0xB5, 0x0A, 0xE3, 0x0B, 0xBA, 0x0A, 0xDF, 0x0B,
- .byte 0xBF, 0x0A, 0xDB, 0x0B, 0xC3, 0x0A, 0xD7, 0x0B, 0xC8, 0x0A, 0xD2, 0x0B, 0xCD, 0x0A, 0xCE, 0x0B,
- .byte 0xD1, 0x0A, 0xCA, 0x0B, 0xD6, 0x0A, 0xC6, 0x0B, 0xDB, 0x0A, 0xC1, 0x0B, 0xDF, 0x0A, 0xBD, 0x0B,
- .byte 0xE4, 0x0A, 0xB9, 0x0B, 0xE8, 0x0A, 0xB5, 0x0B, 0xED, 0x0A, 0xB0, 0x0B, 0xF2, 0x0A, 0xAC, 0x0B,
- .byte 0xF6, 0x0A, 0xA8, 0x0B, 0xFB, 0x0A, 0xA3, 0x0B, 0xFF, 0x0A, 0x9F, 0x0B, 0x04, 0x0B, 0x9B, 0x0B,
- .byte 0x08, 0x0B, 0x97, 0x0B, 0x0D, 0x0B, 0x92, 0x0B, 0x11, 0x0B, 0x8E, 0x0B, 0x16, 0x0B, 0x89, 0x0B,
- .byte 0x1B, 0x0B, 0x85, 0x0B, 0x1F, 0x0B, 0x81, 0x0B, 0x24, 0x0B, 0x7C, 0x0B, 0x28, 0x0B, 0x78, 0x0B,
- .byte 0x2D, 0x0B, 0x74, 0x0B, 0x31, 0x0B, 0x6F, 0x0B, 0x36, 0x0B, 0x6B, 0x0B, 0x3A, 0x0B, 0x66, 0x0B,
- .byte 0x3E, 0x0B, 0x62, 0x0B, 0x43, 0x0B, 0x5E, 0x0B, 0x47, 0x0B, 0x59, 0x0B, 0x4C, 0x0B, 0x55, 0x0B,
- .byte 0x50, 0x0B, 0x50, 0x0B, 0x55, 0x0B, 0x4C, 0x0B, 0x59, 0x0B, 0x47, 0x0B, 0x5E, 0x0B, 0x43, 0x0B,
- .byte 0x62, 0x0B, 0x3E, 0x0B, 0x66, 0x0B, 0x3A, 0x0B, 0x6B, 0x0B, 0x36, 0x0B, 0x6F, 0x0B, 0x31, 0x0B,
- .byte 0x74, 0x0B, 0x2D, 0x0B, 0x78, 0x0B, 0x28, 0x0B, 0x7C, 0x0B, 0x24, 0x0B, 0x81, 0x0B, 0x1F, 0x0B,
- .byte 0x85, 0x0B, 0x1B, 0x0B, 0x89, 0x0B, 0x16, 0x0B, 0x8E, 0x0B, 0x11, 0x0B, 0x92, 0x0B, 0x0D, 0x0B,
- .byte 0x97, 0x0B, 0x08, 0x0B, 0x9B, 0x0B, 0x04, 0x0B, 0x9F, 0x0B, 0xFF, 0x0A, 0xA3, 0x0B, 0xFB, 0x0A,
- .byte 0xA8, 0x0B, 0xF6, 0x0A, 0xAC, 0x0B, 0xF2, 0x0A, 0xB0, 0x0B, 0xED, 0x0A, 0xB5, 0x0B, 0xE8, 0x0A,
- .byte 0xB9, 0x0B, 0xE4, 0x0A, 0xBD, 0x0B, 0xDF, 0x0A, 0xC1, 0x0B, 0xDB, 0x0A, 0xC6, 0x0B, 0xD6, 0x0A,
- .byte 0xCA, 0x0B, 0xD1, 0x0A, 0xCE, 0x0B, 0xCD, 0x0A, 0xD2, 0x0B, 0xC8, 0x0A, 0xD7, 0x0B, 0xC3, 0x0A,
- .byte 0xDB, 0x0B, 0xBF, 0x0A, 0xDF, 0x0B, 0xBA, 0x0A, 0xE3, 0x0B, 0xB5, 0x0A, 0xE8, 0x0B, 0xB1, 0x0A,
- .byte 0xEC, 0x0B, 0xAC, 0x0A, 0xF0, 0x0B, 0xA7, 0x0A, 0xF4, 0x0B, 0xA3, 0x0A, 0xF8, 0x0B, 0x9E, 0x0A,
- .byte 0xFC, 0x0B, 0x99, 0x0A, 0x01, 0x0C, 0x95, 0x0A, 0x05, 0x0C, 0x90, 0x0A, 0x09, 0x0C, 0x8B, 0x0A,
- .byte 0x0D, 0x0C, 0x86, 0x0A, 0x11, 0x0C, 0x82, 0x0A, 0x15, 0x0C, 0x7D, 0x0A, 0x19, 0x0C, 0x78, 0x0A,
- .byte 0x1E, 0x0C, 0x73, 0x0A, 0x22, 0x0C, 0x6F, 0x0A, 0x26, 0x0C, 0x6A, 0x0A, 0x2A, 0x0C, 0x65, 0x0A,
- .byte 0x2E, 0x0C, 0x60, 0x0A, 0x32, 0x0C, 0x5C, 0x0A, 0x36, 0x0C, 0x57, 0x0A, 0x3A, 0x0C, 0x52, 0x0A,
- .byte 0x3E, 0x0C, 0x4D, 0x0A, 0x42, 0x0C, 0x48, 0x0A, 0x46, 0x0C, 0x44, 0x0A, 0x4A, 0x0C, 0x3F, 0x0A,
- .byte 0x4E, 0x0C, 0x3A, 0x0A, 0x52, 0x0C, 0x35, 0x0A, 0x56, 0x0C, 0x30, 0x0A, 0x5A, 0x0C, 0x2B, 0x0A,
- .byte 0x5E, 0x0C, 0x26, 0x0A, 0x62, 0x0C, 0x22, 0x0A, 0x66, 0x0C, 0x1D, 0x0A, 0x6A, 0x0C, 0x18, 0x0A,
- .byte 0x6E, 0x0C, 0x13, 0x0A, 0x72, 0x0C, 0x0E, 0x0A, 0x76, 0x0C, 0x09, 0x0A, 0x7A, 0x0C, 0x04, 0x0A,
- .byte 0x7E, 0x0C, 0xFF, 0x09, 0x82, 0x0C, 0xFB, 0x09, 0x86, 0x0C, 0xF6, 0x09, 0x8A, 0x0C, 0xF1, 0x09,
- .byte 0x8E, 0x0C, 0xEC, 0x09, 0x91, 0x0C, 0xE7, 0x09, 0x95, 0x0C, 0xE2, 0x09, 0x99, 0x0C, 0xDD, 0x09,
- .byte 0x9D, 0x0C, 0xD8, 0x09, 0xA1, 0x0C, 0xD3, 0x09, 0xA5, 0x0C, 0xCE, 0x09, 0xA9, 0x0C, 0xC9, 0x09,
- .byte 0xAC, 0x0C, 0xC4, 0x09, 0xB0, 0x0C, 0xBF, 0x09, 0xB4, 0x0C, 0xBA, 0x09, 0xB8, 0x0C, 0xB5, 0x09,
- .byte 0xBC, 0x0C, 0xB0, 0x09, 0xC0, 0x0C, 0xAB, 0x09, 0xC3, 0x0C, 0xA6, 0x09, 0xC7, 0x0C, 0xA1, 0x09,
- .byte 0xCB, 0x0C, 0x9C, 0x09, 0xCF, 0x0C, 0x97, 0x09, 0xD2, 0x0C, 0x92, 0x09, 0xD6, 0x0C, 0x8D, 0x09,
- .byte 0xDA, 0x0C, 0x88, 0x09, 0xDE, 0x0C, 0x83, 0x09, 0xE1, 0x0C, 0x7E, 0x09, 0xE5, 0x0C, 0x79, 0x09,
- .byte 0xE9, 0x0C, 0x74, 0x09, 0xED, 0x0C, 0x6F, 0x09, 0xF0, 0x0C, 0x6A, 0x09, 0xF4, 0x0C, 0x65, 0x09,
- .byte 0xF8, 0x0C, 0x5F, 0x09, 0xFB, 0x0C, 0x5A, 0x09, 0xFF, 0x0C, 0x55, 0x09, 0x03, 0x0D, 0x50, 0x09,
- .byte 0x06, 0x0D, 0x4B, 0x09, 0x0A, 0x0D, 0x46, 0x09, 0x0E, 0x0D, 0x41, 0x09, 0x11, 0x0D, 0x3C, 0x09,
- .byte 0x15, 0x0D, 0x37, 0x09, 0x18, 0x0D, 0x31, 0x09, 0x1C, 0x0D, 0x2C, 0x09, 0x20, 0x0D, 0x27, 0x09,
- .byte 0x23, 0x0D, 0x22, 0x09, 0x27, 0x0D, 0x1D, 0x09, 0x2A, 0x0D, 0x18, 0x09, 0x2E, 0x0D, 0x12, 0x09,
- .byte 0x32, 0x0D, 0x0D, 0x09, 0x35, 0x0D, 0x08, 0x09, 0x39, 0x0D, 0x03, 0x09, 0x3C, 0x0D, 0xFE, 0x08,
- .byte 0x40, 0x0D, 0xF8, 0x08, 0x43, 0x0D, 0xF3, 0x08, 0x47, 0x0D, 0xEE, 0x08, 0x4A, 0x0D, 0xE9, 0x08,
- .byte 0x4E, 0x0D, 0xE4, 0x08, 0x51, 0x0D, 0xDE, 0x08, 0x55, 0x0D, 0xD9, 0x08, 0x58, 0x0D, 0xD4, 0x08,
- .byte 0x5C, 0x0D, 0xCF, 0x08, 0x5F, 0x0D, 0xC9, 0x08, 0x62, 0x0D, 0xC4, 0x08, 0x66, 0x0D, 0xBF, 0x08,
- .byte 0x69, 0x0D, 0xBA, 0x08, 0x6D, 0x0D, 0xB4, 0x08, 0x70, 0x0D, 0xAF, 0x08, 0x74, 0x0D, 0xAA, 0x08,
- .byte 0x77, 0x0D, 0xA5, 0x08, 0x7A, 0x0D, 0x9F, 0x08, 0x7E, 0x0D, 0x9A, 0x08, 0x81, 0x0D, 0x95, 0x08,
- .byte 0x85, 0x0D, 0x8F, 0x08, 0x88, 0x0D, 0x8A, 0x08, 0x8B, 0x0D, 0x85, 0x08, 0x8F, 0x0D, 0x7F, 0x08,
- .byte 0x92, 0x0D, 0x7A, 0x08, 0x95, 0x0D, 0x75, 0x08, 0x99, 0x0D, 0x6F, 0x08, 0x9C, 0x0D, 0x6A, 0x08,
- .byte 0x9F, 0x0D, 0x65, 0x08, 0xA2, 0x0D, 0x5F, 0x08, 0xA6, 0x0D, 0x5A, 0x08, 0xA9, 0x0D, 0x55, 0x08,
- .byte 0xAC, 0x0D, 0x4F, 0x08, 0xB0, 0x0D, 0x4A, 0x08, 0xB3, 0x0D, 0x45, 0x08, 0xB6, 0x0D, 0x3F, 0x08,
- .byte 0xB9, 0x0D, 0x3A, 0x08, 0xBC, 0x0D, 0x34, 0x08, 0xC0, 0x0D, 0x2F, 0x08, 0xC3, 0x0D, 0x2A, 0x08,
- .byte 0xC6, 0x0D, 0x24, 0x08, 0xC9, 0x0D, 0x1F, 0x08, 0xCC, 0x0D, 0x19, 0x08, 0xD0, 0x0D, 0x14, 0x08,
- .byte 0xD3, 0x0D, 0x0E, 0x08, 0xD6, 0x0D, 0x09, 0x08, 0xD9, 0x0D, 0x04, 0x08, 0xDC, 0x0D, 0xFE, 0x07,
- .byte 0xDF, 0x0D, 0xF9, 0x07, 0xE3, 0x0D, 0xF3, 0x07, 0xE6, 0x0D, 0xEE, 0x07, 0xE9, 0x0D, 0xE8, 0x07,
- .byte 0xEC, 0x0D, 0xE3, 0x07, 0xEF, 0x0D, 0xDD, 0x07, 0xF2, 0x0D, 0xD8, 0x07, 0xF5, 0x0D, 0xD2, 0x07,
- .byte 0xF8, 0x0D, 0xCD, 0x07, 0xFB, 0x0D, 0xC8, 0x07, 0xFE, 0x0D, 0xC2, 0x07, 0x01, 0x0E, 0xBD, 0x07,
- .byte 0x04, 0x0E, 0xB7, 0x07, 0x07, 0x0E, 0xB2, 0x07, 0x0A, 0x0E, 0xAC, 0x07, 0x0D, 0x0E, 0xA6, 0x07,
- .byte 0x10, 0x0E, 0xA1, 0x07, 0x13, 0x0E, 0x9B, 0x07, 0x16, 0x0E, 0x96, 0x07, 0x19, 0x0E, 0x90, 0x07,
- .byte 0x1C, 0x0E, 0x8B, 0x07, 0x1F, 0x0E, 0x85, 0x07, 0x22, 0x0E, 0x80, 0x07, 0x25, 0x0E, 0x7A, 0x07,
- .byte 0x28, 0x0E, 0x75, 0x07, 0x2B, 0x0E, 0x6F, 0x07, 0x2E, 0x0E, 0x6A, 0x07, 0x31, 0x0E, 0x64, 0x07,
- .byte 0x34, 0x0E, 0x5E, 0x07, 0x37, 0x0E, 0x59, 0x07, 0x3A, 0x0E, 0x53, 0x07, 0x3C, 0x0E, 0x4E, 0x07,
- .byte 0x3F, 0x0E, 0x48, 0x07, 0x42, 0x0E, 0x42, 0x07, 0x45, 0x0E, 0x3D, 0x07, 0x48, 0x0E, 0x37, 0x07,
- .byte 0x4B, 0x0E, 0x32, 0x07, 0x4D, 0x0E, 0x2C, 0x07, 0x50, 0x0E, 0x26, 0x07, 0x53, 0x0E, 0x21, 0x07,
- .byte 0x56, 0x0E, 0x1B, 0x07, 0x59, 0x0E, 0x15, 0x07, 0x5B, 0x0E, 0x10, 0x07, 0x5E, 0x0E, 0x0A, 0x07,
- .byte 0x61, 0x0E, 0x05, 0x07, 0x64, 0x0E, 0xFF, 0x06, 0x66, 0x0E, 0xF9, 0x06, 0x69, 0x0E, 0xF4, 0x06,
- .byte 0x6C, 0x0E, 0xEE, 0x06, 0x6F, 0x0E, 0xE8, 0x06, 0x71, 0x0E, 0xE3, 0x06, 0x74, 0x0E, 0xDD, 0x06,
- .byte 0x77, 0x0E, 0xD7, 0x06, 0x79, 0x0E, 0xD2, 0x06, 0x7C, 0x0E, 0xCC, 0x06, 0x7F, 0x0E, 0xC6, 0x06,
- .byte 0x81, 0x0E, 0xC1, 0x06, 0x84, 0x0E, 0xBB, 0x06, 0x87, 0x0E, 0xB5, 0x06, 0x89, 0x0E, 0xAF, 0x06,
- .byte 0x8C, 0x0E, 0xAA, 0x06, 0x8F, 0x0E, 0xA4, 0x06, 0x91, 0x0E, 0x9E, 0x06, 0x94, 0x0E, 0x99, 0x06,
- .byte 0x96, 0x0E, 0x93, 0x06, 0x99, 0x0E, 0x8D, 0x06, 0x9B, 0x0E, 0x87, 0x06, 0x9E, 0x0E, 0x82, 0x06,
- .byte 0xA1, 0x0E, 0x7C, 0x06, 0xA3, 0x0E, 0x76, 0x06, 0xA6, 0x0E, 0x70, 0x06, 0xA8, 0x0E, 0x6B, 0x06,
- .byte 0xAB, 0x0E, 0x65, 0x06, 0xAD, 0x0E, 0x5F, 0x06, 0xB0, 0x0E, 0x59, 0x06, 0xB2, 0x0E, 0x54, 0x06,
- .byte 0xB5, 0x0E, 0x4E, 0x06, 0xB7, 0x0E, 0x48, 0x06, 0xBA, 0x0E, 0x42, 0x06, 0xBC, 0x0E, 0x3C, 0x06,
- .byte 0xBF, 0x0E, 0x37, 0x06, 0xC1, 0x0E, 0x31, 0x06, 0xC3, 0x0E, 0x2B, 0x06, 0xC6, 0x0E, 0x25, 0x06,
- .byte 0xC8, 0x0E, 0x1F, 0x06, 0xCB, 0x0E, 0x1A, 0x06, 0xCD, 0x0E, 0x14, 0x06, 0xCF, 0x0E, 0x0E, 0x06,
- .byte 0xD2, 0x0E, 0x08, 0x06, 0xD4, 0x0E, 0x02, 0x06, 0xD6, 0x0E, 0xFD, 0x05, 0xD9, 0x0E, 0xF7, 0x05,
- .byte 0xDB, 0x0E, 0xF1, 0x05, 0xDD, 0x0E, 0xEB, 0x05, 0xE0, 0x0E, 0xE5, 0x05, 0xE2, 0x0E, 0xDF, 0x05,
- .byte 0xE4, 0x0E, 0xDA, 0x05, 0xE7, 0x0E, 0xD4, 0x05, 0xE9, 0x0E, 0xCE, 0x05, 0xEB, 0x0E, 0xC8, 0x05,
- .byte 0xEE, 0x0E, 0xC2, 0x05, 0xF0, 0x0E, 0xBC, 0x05, 0xF2, 0x0E, 0xB6, 0x05, 0xF4, 0x0E, 0xB1, 0x05,
- .byte 0xF7, 0x0E, 0xAB, 0x05, 0xF9, 0x0E, 0xA5, 0x05, 0xFB, 0x0E, 0x9F, 0x05, 0xFD, 0x0E, 0x99, 0x05,
- .byte 0xFF, 0x0E, 0x93, 0x05, 0x02, 0x0F, 0x8D, 0x05, 0x04, 0x0F, 0x87, 0x05, 0x06, 0x0F, 0x81, 0x05,
- .byte 0x08, 0x0F, 0x7C, 0x05, 0x0A, 0x0F, 0x76, 0x05, 0x0C, 0x0F, 0x70, 0x05, 0x0E, 0x0F, 0x6A, 0x05,
- .byte 0x11, 0x0F, 0x64, 0x05, 0x13, 0x0F, 0x5E, 0x05, 0x15, 0x0F, 0x58, 0x05, 0x17, 0x0F, 0x52, 0x05,
- .byte 0x19, 0x0F, 0x4C, 0x05, 0x1B, 0x0F, 0x46, 0x05, 0x1D, 0x0F, 0x40, 0x05, 0x1F, 0x0F, 0x3A, 0x05,
- .byte 0x21, 0x0F, 0x34, 0x05, 0x23, 0x0F, 0x2F, 0x05, 0x25, 0x0F, 0x29, 0x05, 0x27, 0x0F, 0x23, 0x05,
- .byte 0x29, 0x0F, 0x1D, 0x05, 0x2B, 0x0F, 0x17, 0x05, 0x2D, 0x0F, 0x11, 0x05, 0x2F, 0x0F, 0x0B, 0x05,
- .byte 0x31, 0x0F, 0x05, 0x05, 0x33, 0x0F, 0xFF, 0x04, 0x35, 0x0F, 0xF9, 0x04, 0x37, 0x0F, 0xF3, 0x04,
- .byte 0x39, 0x0F, 0xED, 0x04, 0x3B, 0x0F, 0xE7, 0x04, 0x3D, 0x0F, 0xE1, 0x04, 0x3F, 0x0F, 0xDB, 0x04,
- .byte 0x41, 0x0F, 0xD5, 0x04, 0x43, 0x0F, 0xCF, 0x04, 0x45, 0x0F, 0xC9, 0x04, 0x46, 0x0F, 0xC3, 0x04,
- .byte 0x48, 0x0F, 0xBD, 0x04, 0x4A, 0x0F, 0xB7, 0x04, 0x4C, 0x0F, 0xB1, 0x04, 0x4E, 0x0F, 0xAB, 0x04,
- .byte 0x50, 0x0F, 0xA5, 0x04, 0x51, 0x0F, 0x9F, 0x04, 0x53, 0x0F, 0x99, 0x04, 0x55, 0x0F, 0x93, 0x04,
- .byte 0x57, 0x0F, 0x8D, 0x04, 0x59, 0x0F, 0x87, 0x04, 0x5A, 0x0F, 0x81, 0x04, 0x5C, 0x0F, 0x7B, 0x04,
- .byte 0x5E, 0x0F, 0x75, 0x04, 0x60, 0x0F, 0x6F, 0x04, 0x61, 0x0F, 0x69, 0x04, 0x63, 0x0F, 0x63, 0x04,
- .byte 0x65, 0x0F, 0x5D, 0x04, 0x67, 0x0F, 0x57, 0x04, 0x68, 0x0F, 0x51, 0x04, 0x6A, 0x0F, 0x4B, 0x04,
- .byte 0x6C, 0x0F, 0x44, 0x04, 0x6D, 0x0F, 0x3E, 0x04, 0x6F, 0x0F, 0x38, 0x04, 0x71, 0x0F, 0x32, 0x04,
- .byte 0x72, 0x0F, 0x2C, 0x04, 0x74, 0x0F, 0x26, 0x04, 0x76, 0x0F, 0x20, 0x04, 0x77, 0x0F, 0x1A, 0x04,
- .byte 0x79, 0x0F, 0x14, 0x04, 0x7A, 0x0F, 0x0E, 0x04, 0x7C, 0x0F, 0x08, 0x04, 0x7D, 0x0F, 0x02, 0x04,
- .byte 0x7F, 0x0F, 0xFC, 0x03, 0x81, 0x0F, 0xF6, 0x03, 0x82, 0x0F, 0xEF, 0x03, 0x84, 0x0F, 0xE9, 0x03,
- .byte 0x85, 0x0F, 0xE3, 0x03, 0x87, 0x0F, 0xDD, 0x03, 0x88, 0x0F, 0xD7, 0x03, 0x8A, 0x0F, 0xD1, 0x03,
- .byte 0x8B, 0x0F, 0xCB, 0x03, 0x8D, 0x0F, 0xC5, 0x03, 0x8E, 0x0F, 0xBF, 0x03, 0x90, 0x0F, 0xB9, 0x03,
- .byte 0x91, 0x0F, 0xB2, 0x03, 0x93, 0x0F, 0xAC, 0x03, 0x94, 0x0F, 0xA6, 0x03, 0x95, 0x0F, 0xA0, 0x03,
- .byte 0x97, 0x0F, 0x9A, 0x03, 0x98, 0x0F, 0x94, 0x03, 0x9A, 0x0F, 0x8E, 0x03, 0x9B, 0x0F, 0x88, 0x03,
- .byte 0x9C, 0x0F, 0x81, 0x03, 0x9E, 0x0F, 0x7B, 0x03, 0x9F, 0x0F, 0x75, 0x03, 0xA1, 0x0F, 0x6F, 0x03,
- .byte 0xA2, 0x0F, 0x69, 0x03, 0xA3, 0x0F, 0x63, 0x03, 0xA5, 0x0F, 0x5D, 0x03, 0xA6, 0x0F, 0x56, 0x03,
- .byte 0xA7, 0x0F, 0x50, 0x03, 0xA8, 0x0F, 0x4A, 0x03, 0xAA, 0x0F, 0x44, 0x03, 0xAB, 0x0F, 0x3E, 0x03,
- .byte 0xAC, 0x0F, 0x38, 0x03, 0xAE, 0x0F, 0x32, 0x03, 0xAF, 0x0F, 0x2B, 0x03, 0xB0, 0x0F, 0x25, 0x03,
- .byte 0xB1, 0x0F, 0x1F, 0x03, 0xB3, 0x0F, 0x19, 0x03, 0xB4, 0x0F, 0x13, 0x03, 0xB5, 0x0F, 0x0D, 0x03,
- .byte 0xB6, 0x0F, 0x06, 0x03, 0xB7, 0x0F, 0x00, 0x03, 0xB8, 0x0F, 0xFA, 0x02, 0xBA, 0x0F, 0xF4, 0x02,
- .byte 0xBB, 0x0F, 0xEE, 0x02, 0xBC, 0x0F, 0xE8, 0x02, 0xBD, 0x0F, 0xE1, 0x02, 0xBE, 0x0F, 0xDB, 0x02,
- .byte 0xBF, 0x0F, 0xD5, 0x02, 0xC0, 0x0F, 0xCF, 0x02, 0xC2, 0x0F, 0xC9, 0x02, 0xC3, 0x0F, 0xC2, 0x02,
- .byte 0xC4, 0x0F, 0xBC, 0x02, 0xC5, 0x0F, 0xB6, 0x02, 0xC6, 0x0F, 0xB0, 0x02, 0xC7, 0x0F, 0xAA, 0x02,
- .byte 0xC8, 0x0F, 0xA3, 0x02, 0xC9, 0x0F, 0x9D, 0x02, 0xCA, 0x0F, 0x97, 0x02, 0xCB, 0x0F, 0x91, 0x02,
- .byte 0xCC, 0x0F, 0x8B, 0x02, 0xCD, 0x0F, 0x84, 0x02, 0xCE, 0x0F, 0x7E, 0x02, 0xCF, 0x0F, 0x78, 0x02,
- .byte 0xD0, 0x0F, 0x72, 0x02, 0xD1, 0x0F, 0x6C, 0x02, 0xD2, 0x0F, 0x65, 0x02, 0xD3, 0x0F, 0x5F, 0x02,
- .byte 0xD4, 0x0F, 0x59, 0x02, 0xD5, 0x0F, 0x53, 0x02, 0xD5, 0x0F, 0x4D, 0x02, 0xD6, 0x0F, 0x46, 0x02,
- .byte 0xD7, 0x0F, 0x40, 0x02, 0xD8, 0x0F, 0x3A, 0x02, 0xD9, 0x0F, 0x34, 0x02, 0xDA, 0x0F, 0x2D, 0x02,
- .byte 0xDB, 0x0F, 0x27, 0x02, 0xDC, 0x0F, 0x21, 0x02, 0xDC, 0x0F, 0x1B, 0x02, 0xDD, 0x0F, 0x15, 0x02,
- .byte 0xDE, 0x0F, 0x0E, 0x02, 0xDF, 0x0F, 0x08, 0x02, 0xE0, 0x0F, 0x02, 0x02, 0xE0, 0x0F, 0xFC, 0x01,
- .byte 0xE1, 0x0F, 0xF5, 0x01, 0xE2, 0x0F, 0xEF, 0x01, 0xE3, 0x0F, 0xE9, 0x01, 0xE3, 0x0F, 0xE3, 0x01,
- .byte 0xE4, 0x0F, 0xDC, 0x01, 0xE5, 0x0F, 0xD6, 0x01, 0xE6, 0x0F, 0xD0, 0x01, 0xE6, 0x0F, 0xCA, 0x01,
- .byte 0xE7, 0x0F, 0xC3, 0x01, 0xE8, 0x0F, 0xBD, 0x01, 0xE8, 0x0F, 0xB7, 0x01, 0xE9, 0x0F, 0xB1, 0x01,
- .byte 0xEA, 0x0F, 0xAA, 0x01, 0xEA, 0x0F, 0xA4, 0x01, 0xEB, 0x0F, 0x9E, 0x01, 0xEC, 0x0F, 0x98, 0x01,
- .byte 0xEC, 0x0F, 0x91, 0x01, 0xED, 0x0F, 0x8B, 0x01, 0xED, 0x0F, 0x85, 0x01, 0xEE, 0x0F, 0x7F, 0x01,
- .byte 0xEF, 0x0F, 0x78, 0x01, 0xEF, 0x0F, 0x72, 0x01, 0xF0, 0x0F, 0x6C, 0x01, 0xF0, 0x0F, 0x66, 0x01,
- .byte 0xF1, 0x0F, 0x5F, 0x01, 0xF1, 0x0F, 0x59, 0x01, 0xF2, 0x0F, 0x53, 0x01, 0xF2, 0x0F, 0x4D, 0x01,
- .byte 0xF3, 0x0F, 0x46, 0x01, 0xF3, 0x0F, 0x40, 0x01, 0xF4, 0x0F, 0x3A, 0x01, 0xF4, 0x0F, 0x34, 0x01,
- .byte 0xF5, 0x0F, 0x2D, 0x01, 0xF5, 0x0F, 0x27, 0x01, 0xF6, 0x0F, 0x21, 0x01, 0xF6, 0x0F, 0x1B, 0x01,
- .byte 0xF7, 0x0F, 0x14, 0x01, 0xF7, 0x0F, 0x0E, 0x01, 0xF8, 0x0F, 0x08, 0x01, 0xF8, 0x0F, 0x01, 0x01,
- .byte 0xF8, 0x0F, 0xFB, 0x00, 0xF9, 0x0F, 0xF5, 0x00, 0xF9, 0x0F, 0xEF, 0x00, 0xF9, 0x0F, 0xE8, 0x00,
- .byte 0xFA, 0x0F, 0xE2, 0x00, 0xFA, 0x0F, 0xDC, 0x00, 0xFA, 0x0F, 0xD6, 0x00, 0xFB, 0x0F, 0xCF, 0x00,
- .byte 0xFB, 0x0F, 0xC9, 0x00, 0xFB, 0x0F, 0xC3, 0x00, 0xFC, 0x0F, 0xBC, 0x00, 0xFC, 0x0F, 0xB6, 0x00,
- .byte 0xFC, 0x0F, 0xB0, 0x00, 0xFC, 0x0F, 0xAA, 0x00, 0xFD, 0x0F, 0xA3, 0x00, 0xFD, 0x0F, 0x9D, 0x00,
- .byte 0xFD, 0x0F, 0x97, 0x00, 0xFD, 0x0F, 0x90, 0x00, 0xFE, 0x0F, 0x8A, 0x00, 0xFE, 0x0F, 0x84, 0x00,
- .byte 0xFE, 0x0F, 0x7E, 0x00, 0xFE, 0x0F, 0x77, 0x00, 0xFE, 0x0F, 0x71, 0x00, 0xFF, 0x0F, 0x6B, 0x00,
- .byte 0xFF, 0x0F, 0x65, 0x00, 0xFF, 0x0F, 0x5E, 0x00, 0xFF, 0x0F, 0x58, 0x00, 0xFF, 0x0F, 0x52, 0x00,
- .byte 0xFF, 0x0F, 0x4B, 0x00, 0xFF, 0x0F, 0x45, 0x00, 0x00, 0x10, 0x3F, 0x00, 0x00, 0x10, 0x39, 0x00,
- .byte 0x00, 0x10, 0x32, 0x00, 0x00, 0x10, 0x2C, 0x00, 0x00, 0x10, 0x26, 0x00, 0x00, 0x10, 0x1F, 0x00,
- .byte 0x00, 0x10, 0x19, 0x00, 0x00, 0x10, 0x13, 0x00, 0x00, 0x10, 0x0D, 0x00, 0x00, 0x10, 0x06, 0x00,
- .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0xFA, 0xFF, 0x00, 0x10, 0xF3, 0xFF, 0x00, 0x10, 0xED, 0xFF,
- .byte 0x00, 0x10, 0xE7, 0xFF, 0x00, 0x10, 0xE1, 0xFF, 0x00, 0x10, 0xDA, 0xFF, 0x00, 0x10, 0xD4, 0xFF,
- .byte 0x00, 0x10, 0xCE, 0xFF, 0x00, 0x10, 0xC7, 0xFF, 0x00, 0x10, 0xC1, 0xFF, 0xFF, 0x0F, 0xBB, 0xFF,
- .byte 0xFF, 0x0F, 0xB5, 0xFF, 0xFF, 0x0F, 0xAE, 0xFF, 0xFF, 0x0F, 0xA8, 0xFF, 0xFF, 0x0F, 0xA2, 0xFF,
- .byte 0xFF, 0x0F, 0x9B, 0xFF, 0xFF, 0x0F, 0x95, 0xFF, 0xFE, 0x0F, 0x8F, 0xFF, 0xFE, 0x0F, 0x89, 0xFF,
- .byte 0xFE, 0x0F, 0x82, 0xFF, 0xFE, 0x0F, 0x7C, 0xFF, 0xFE, 0x0F, 0x76, 0xFF, 0xFD, 0x0F, 0x70, 0xFF,
- .byte 0xFD, 0x0F, 0x69, 0xFF, 0xFD, 0x0F, 0x63, 0xFF, 0xFD, 0x0F, 0x5D, 0xFF, 0xFC, 0x0F, 0x56, 0xFF,
- .byte 0xFC, 0x0F, 0x50, 0xFF, 0xFC, 0x0F, 0x4A, 0xFF, 0xFC, 0x0F, 0x44, 0xFF, 0xFB, 0x0F, 0x3D, 0xFF,
- .byte 0xFB, 0x0F, 0x37, 0xFF, 0xFB, 0x0F, 0x31, 0xFF, 0xFA, 0x0F, 0x2A, 0xFF, 0xFA, 0x0F, 0x24, 0xFF,
- .byte 0xFA, 0x0F, 0x1E, 0xFF, 0xF9, 0x0F, 0x18, 0xFF, 0xF9, 0x0F, 0x11, 0xFF, 0xF9, 0x0F, 0x0B, 0xFF,
- .byte 0xF8, 0x0F, 0x05, 0xFF, 0xF8, 0x0F, 0xFF, 0xFE, 0xF8, 0x0F, 0xF8, 0xFE, 0xF7, 0x0F, 0xF2, 0xFE,
- .byte 0xF7, 0x0F, 0xEC, 0xFE, 0xF6, 0x0F, 0xE5, 0xFE, 0xF6, 0x0F, 0xDF, 0xFE, 0xF5, 0x0F, 0xD9, 0xFE,
- .byte 0xF5, 0x0F, 0xD3, 0xFE, 0xF4, 0x0F, 0xCC, 0xFE, 0xF4, 0x0F, 0xC6, 0xFE, 0xF3, 0x0F, 0xC0, 0xFE,
- .byte 0xF3, 0x0F, 0xBA, 0xFE, 0xF2, 0x0F, 0xB3, 0xFE, 0xF2, 0x0F, 0xAD, 0xFE, 0xF1, 0x0F, 0xA7, 0xFE,
- .byte 0xF1, 0x0F, 0xA1, 0xFE, 0xF0, 0x0F, 0x9A, 0xFE, 0xF0, 0x0F, 0x94, 0xFE, 0xEF, 0x0F, 0x8E, 0xFE,
- .byte 0xEF, 0x0F, 0x88, 0xFE, 0xEE, 0x0F, 0x81, 0xFE, 0xED, 0x0F, 0x7B, 0xFE, 0xED, 0x0F, 0x75, 0xFE,
- .byte 0xEC, 0x0F, 0x6F, 0xFE, 0xEC, 0x0F, 0x68, 0xFE, 0xEB, 0x0F, 0x62, 0xFE, 0xEA, 0x0F, 0x5C, 0xFE,
- .byte 0xEA, 0x0F, 0x56, 0xFE, 0xE9, 0x0F, 0x4F, 0xFE, 0xE8, 0x0F, 0x49, 0xFE, 0xE8, 0x0F, 0x43, 0xFE,
- .byte 0xE7, 0x0F, 0x3D, 0xFE, 0xE6, 0x0F, 0x36, 0xFE, 0xE6, 0x0F, 0x30, 0xFE, 0xE5, 0x0F, 0x2A, 0xFE,
- .byte 0xE4, 0x0F, 0x24, 0xFE, 0xE3, 0x0F, 0x1D, 0xFE, 0xE3, 0x0F, 0x17, 0xFE, 0xE2, 0x0F, 0x11, 0xFE,
- .byte 0xE1, 0x0F, 0x0B, 0xFE, 0xE0, 0x0F, 0x04, 0xFE, 0xE0, 0x0F, 0xFE, 0xFD, 0xDF, 0x0F, 0xF8, 0xFD,
- .byte 0xDE, 0x0F, 0xF2, 0xFD, 0xDD, 0x0F, 0xEB, 0xFD, 0xDC, 0x0F, 0xE5, 0xFD, 0xDC, 0x0F, 0xDF, 0xFD,
- .byte 0xDB, 0x0F, 0xD9, 0xFD, 0xDA, 0x0F, 0xD3, 0xFD, 0xD9, 0x0F, 0xCC, 0xFD, 0xD8, 0x0F, 0xC6, 0xFD,
- .byte 0xD7, 0x0F, 0xC0, 0xFD, 0xD6, 0x0F, 0xBA, 0xFD, 0xD5, 0x0F, 0xB3, 0xFD, 0xD5, 0x0F, 0xAD, 0xFD,
- .byte 0xD4, 0x0F, 0xA7, 0xFD, 0xD3, 0x0F, 0xA1, 0xFD, 0xD2, 0x0F, 0x9B, 0xFD, 0xD1, 0x0F, 0x94, 0xFD,
- .byte 0xD0, 0x0F, 0x8E, 0xFD, 0xCF, 0x0F, 0x88, 0xFD, 0xCE, 0x0F, 0x82, 0xFD, 0xCD, 0x0F, 0x7C, 0xFD,
- .byte 0xCC, 0x0F, 0x75, 0xFD, 0xCB, 0x0F, 0x6F, 0xFD, 0xCA, 0x0F, 0x69, 0xFD, 0xC9, 0x0F, 0x63, 0xFD,
- .byte 0xC8, 0x0F, 0x5D, 0xFD, 0xC7, 0x0F, 0x56, 0xFD, 0xC6, 0x0F, 0x50, 0xFD, 0xC5, 0x0F, 0x4A, 0xFD,
- .byte 0xC4, 0x0F, 0x44, 0xFD, 0xC3, 0x0F, 0x3E, 0xFD, 0xC2, 0x0F, 0x37, 0xFD, 0xC0, 0x0F, 0x31, 0xFD,
- .byte 0xBF, 0x0F, 0x2B, 0xFD, 0xBE, 0x0F, 0x25, 0xFD, 0xBD, 0x0F, 0x1F, 0xFD, 0xBC, 0x0F, 0x18, 0xFD,
- .byte 0xBB, 0x0F, 0x12, 0xFD, 0xBA, 0x0F, 0x0C, 0xFD, 0xB8, 0x0F, 0x06, 0xFD, 0xB7, 0x0F, 0x00, 0xFD,
- .byte 0xB6, 0x0F, 0xFA, 0xFC, 0xB5, 0x0F, 0xF3, 0xFC, 0xB4, 0x0F, 0xED, 0xFC, 0xB3, 0x0F, 0xE7, 0xFC,
- .byte 0xB1, 0x0F, 0xE1, 0xFC, 0xB0, 0x0F, 0xDB, 0xFC, 0xAF, 0x0F, 0xD5, 0xFC, 0xAE, 0x0F, 0xCE, 0xFC,
- .byte 0xAC, 0x0F, 0xC8, 0xFC, 0xAB, 0x0F, 0xC2, 0xFC, 0xAA, 0x0F, 0xBC, 0xFC, 0xA8, 0x0F, 0xB6, 0xFC,
- .byte 0xA7, 0x0F, 0xB0, 0xFC, 0xA6, 0x0F, 0xAA, 0xFC, 0xA5, 0x0F, 0xA3, 0xFC, 0xA3, 0x0F, 0x9D, 0xFC,
- .byte 0xA2, 0x0F, 0x97, 0xFC, 0xA1, 0x0F, 0x91, 0xFC, 0x9F, 0x0F, 0x8B, 0xFC, 0x9E, 0x0F, 0x85, 0xFC,
- .byte 0x9C, 0x0F, 0x7F, 0xFC, 0x9B, 0x0F, 0x78, 0xFC, 0x9A, 0x0F, 0x72, 0xFC, 0x98, 0x0F, 0x6C, 0xFC,
- .byte 0x97, 0x0F, 0x66, 0xFC, 0x95, 0x0F, 0x60, 0xFC, 0x94, 0x0F, 0x5A, 0xFC, 0x93, 0x0F, 0x54, 0xFC,
- .byte 0x91, 0x0F, 0x4E, 0xFC, 0x90, 0x0F, 0x47, 0xFC, 0x8E, 0x0F, 0x41, 0xFC, 0x8D, 0x0F, 0x3B, 0xFC,
- .byte 0x8B, 0x0F, 0x35, 0xFC, 0x8A, 0x0F, 0x2F, 0xFC, 0x88, 0x0F, 0x29, 0xFC, 0x87, 0x0F, 0x23, 0xFC,
- .byte 0x85, 0x0F, 0x1D, 0xFC, 0x84, 0x0F, 0x17, 0xFC, 0x82, 0x0F, 0x11, 0xFC, 0x81, 0x0F, 0x0A, 0xFC,
- .byte 0x7F, 0x0F, 0x04, 0xFC, 0x7D, 0x0F, 0xFE, 0xFB, 0x7C, 0x0F, 0xF8, 0xFB, 0x7A, 0x0F, 0xF2, 0xFB,
- .byte 0x79, 0x0F, 0xEC, 0xFB, 0x77, 0x0F, 0xE6, 0xFB, 0x76, 0x0F, 0xE0, 0xFB, 0x74, 0x0F, 0xDA, 0xFB,
- .byte 0x72, 0x0F, 0xD4, 0xFB, 0x71, 0x0F, 0xCE, 0xFB, 0x6F, 0x0F, 0xC8, 0xFB, 0x6D, 0x0F, 0xC2, 0xFB,
- .byte 0x6C, 0x0F, 0xBC, 0xFB, 0x6A, 0x0F, 0xB5, 0xFB, 0x68, 0x0F, 0xAF, 0xFB, 0x67, 0x0F, 0xA9, 0xFB,
- .byte 0x65, 0x0F, 0xA3, 0xFB, 0x63, 0x0F, 0x9D, 0xFB, 0x61, 0x0F, 0x97, 0xFB, 0x60, 0x0F, 0x91, 0xFB,
- .byte 0x5E, 0x0F, 0x8B, 0xFB, 0x5C, 0x0F, 0x85, 0xFB, 0x5A, 0x0F, 0x7F, 0xFB, 0x59, 0x0F, 0x79, 0xFB,
- .byte 0x57, 0x0F, 0x73, 0xFB, 0x55, 0x0F, 0x6D, 0xFB, 0x53, 0x0F, 0x67, 0xFB, 0x51, 0x0F, 0x61, 0xFB,
- .byte 0x50, 0x0F, 0x5B, 0xFB, 0x4E, 0x0F, 0x55, 0xFB, 0x4C, 0x0F, 0x4F, 0xFB, 0x4A, 0x0F, 0x49, 0xFB,
- .byte 0x48, 0x0F, 0x43, 0xFB, 0x46, 0x0F, 0x3D, 0xFB, 0x45, 0x0F, 0x37, 0xFB, 0x43, 0x0F, 0x31, 0xFB,
- .byte 0x41, 0x0F, 0x2B, 0xFB, 0x3F, 0x0F, 0x25, 0xFB, 0x3D, 0x0F, 0x1F, 0xFB, 0x3B, 0x0F, 0x19, 0xFB,
- .byte 0x39, 0x0F, 0x13, 0xFB, 0x37, 0x0F, 0x0D, 0xFB, 0x35, 0x0F, 0x07, 0xFB, 0x33, 0x0F, 0x01, 0xFB,
- .byte 0x31, 0x0F, 0xFB, 0xFA, 0x2F, 0x0F, 0xF5, 0xFA, 0x2D, 0x0F, 0xEF, 0xFA, 0x2B, 0x0F, 0xE9, 0xFA,
- .byte 0x29, 0x0F, 0xE3, 0xFA, 0x27, 0x0F, 0xDD, 0xFA, 0x25, 0x0F, 0xD7, 0xFA, 0x23, 0x0F, 0xD1, 0xFA,
- .byte 0x21, 0x0F, 0xCC, 0xFA, 0x1F, 0x0F, 0xC6, 0xFA, 0x1D, 0x0F, 0xC0, 0xFA, 0x1B, 0x0F, 0xBA, 0xFA,
- .byte 0x19, 0x0F, 0xB4, 0xFA, 0x17, 0x0F, 0xAE, 0xFA, 0x15, 0x0F, 0xA8, 0xFA, 0x13, 0x0F, 0xA2, 0xFA,
- .byte 0x11, 0x0F, 0x9C, 0xFA, 0x0E, 0x0F, 0x96, 0xFA, 0x0C, 0x0F, 0x90, 0xFA, 0x0A, 0x0F, 0x8A, 0xFA,
- .byte 0x08, 0x0F, 0x84, 0xFA, 0x06, 0x0F, 0x7F, 0xFA, 0x04, 0x0F, 0x79, 0xFA, 0x02, 0x0F, 0x73, 0xFA,
- .byte 0xFF, 0x0E, 0x6D, 0xFA, 0xFD, 0x0E, 0x67, 0xFA, 0xFB, 0x0E, 0x61, 0xFA, 0xF9, 0x0E, 0x5B, 0xFA,
- .byte 0xF7, 0x0E, 0x55, 0xFA, 0xF4, 0x0E, 0x4F, 0xFA, 0xF2, 0x0E, 0x4A, 0xFA, 0xF0, 0x0E, 0x44, 0xFA,
- .byte 0xEE, 0x0E, 0x3E, 0xFA, 0xEB, 0x0E, 0x38, 0xFA, 0xE9, 0x0E, 0x32, 0xFA, 0xE7, 0x0E, 0x2C, 0xFA,
- .byte 0xE4, 0x0E, 0x26, 0xFA, 0xE2, 0x0E, 0x21, 0xFA, 0xE0, 0x0E, 0x1B, 0xFA, 0xDD, 0x0E, 0x15, 0xFA,
- .byte 0xDB, 0x0E, 0x0F, 0xFA, 0xD9, 0x0E, 0x09, 0xFA, 0xD6, 0x0E, 0x03, 0xFA, 0xD4, 0x0E, 0xFE, 0xF9,
- .byte 0xD2, 0x0E, 0xF8, 0xF9, 0xCF, 0x0E, 0xF2, 0xF9, 0xCD, 0x0E, 0xEC, 0xF9, 0xCB, 0x0E, 0xE6, 0xF9,
- .byte 0xC8, 0x0E, 0xE1, 0xF9, 0xC6, 0x0E, 0xDB, 0xF9, 0xC3, 0x0E, 0xD5, 0xF9, 0xC1, 0x0E, 0xCF, 0xF9,
- .byte 0xBF, 0x0E, 0xC9, 0xF9, 0xBC, 0x0E, 0xC4, 0xF9, 0xBA, 0x0E, 0xBE, 0xF9, 0xB7, 0x0E, 0xB8, 0xF9,
- .byte 0xB5, 0x0E, 0xB2, 0xF9, 0xB2, 0x0E, 0xAC, 0xF9, 0xB0, 0x0E, 0xA7, 0xF9, 0xAD, 0x0E, 0xA1, 0xF9,
- .byte 0xAB, 0x0E, 0x9B, 0xF9, 0xA8, 0x0E, 0x95, 0xF9, 0xA6, 0x0E, 0x90, 0xF9, 0xA3, 0x0E, 0x8A, 0xF9,
- .byte 0xA1, 0x0E, 0x84, 0xF9, 0x9E, 0x0E, 0x7E, 0xF9, 0x9B, 0x0E, 0x79, 0xF9, 0x99, 0x0E, 0x73, 0xF9,
- .byte 0x96, 0x0E, 0x6D, 0xF9, 0x94, 0x0E, 0x67, 0xF9, 0x91, 0x0E, 0x62, 0xF9, 0x8F, 0x0E, 0x5C, 0xF9,
- .byte 0x8C, 0x0E, 0x56, 0xF9, 0x89, 0x0E, 0x51, 0xF9, 0x87, 0x0E, 0x4B, 0xF9, 0x84, 0x0E, 0x45, 0xF9,
- .byte 0x81, 0x0E, 0x3F, 0xF9, 0x7F, 0x0E, 0x3A, 0xF9, 0x7C, 0x0E, 0x34, 0xF9, 0x79, 0x0E, 0x2E, 0xF9,
- .byte 0x77, 0x0E, 0x29, 0xF9, 0x74, 0x0E, 0x23, 0xF9, 0x71, 0x0E, 0x1D, 0xF9, 0x6F, 0x0E, 0x18, 0xF9,
- .byte 0x6C, 0x0E, 0x12, 0xF9, 0x69, 0x0E, 0x0C, 0xF9, 0x66, 0x0E, 0x07, 0xF9, 0x64, 0x0E, 0x01, 0xF9,
- .byte 0x61, 0x0E, 0xFB, 0xF8, 0x5E, 0x0E, 0xF6, 0xF8, 0x5B, 0x0E, 0xF0, 0xF8, 0x59, 0x0E, 0xEB, 0xF8,
- .byte 0x56, 0x0E, 0xE5, 0xF8, 0x53, 0x0E, 0xDF, 0xF8, 0x50, 0x0E, 0xDA, 0xF8, 0x4D, 0x0E, 0xD4, 0xF8,
- .byte 0x4B, 0x0E, 0xCE, 0xF8, 0x48, 0x0E, 0xC9, 0xF8, 0x45, 0x0E, 0xC3, 0xF8, 0x42, 0x0E, 0xBE, 0xF8,
- .byte 0x3F, 0x0E, 0xB8, 0xF8, 0x3C, 0x0E, 0xB2, 0xF8, 0x3A, 0x0E, 0xAD, 0xF8, 0x37, 0x0E, 0xA7, 0xF8,
- .byte 0x34, 0x0E, 0xA2, 0xF8, 0x31, 0x0E, 0x9C, 0xF8, 0x2E, 0x0E, 0x96, 0xF8, 0x2B, 0x0E, 0x91, 0xF8,
- .byte 0x28, 0x0E, 0x8B, 0xF8, 0x25, 0x0E, 0x86, 0xF8, 0x22, 0x0E, 0x80, 0xF8, 0x1F, 0x0E, 0x7B, 0xF8,
- .byte 0x1C, 0x0E, 0x75, 0xF8, 0x19, 0x0E, 0x70, 0xF8, 0x16, 0x0E, 0x6A, 0xF8, 0x13, 0x0E, 0x65, 0xF8,
- .byte 0x10, 0x0E, 0x5F, 0xF8, 0x0D, 0x0E, 0x5A, 0xF8, 0x0A, 0x0E, 0x54, 0xF8, 0x07, 0x0E, 0x4E, 0xF8,
- .byte 0x04, 0x0E, 0x49, 0xF8, 0x01, 0x0E, 0x43, 0xF8, 0xFE, 0x0D, 0x3E, 0xF8, 0xFB, 0x0D, 0x38, 0xF8,
- .byte 0xF8, 0x0D, 0x33, 0xF8, 0xF5, 0x0D, 0x2E, 0xF8, 0xF2, 0x0D, 0x28, 0xF8, 0xEF, 0x0D, 0x23, 0xF8,
- .byte 0xEC, 0x0D, 0x1D, 0xF8, 0xE9, 0x0D, 0x18, 0xF8, 0xE6, 0x0D, 0x12, 0xF8, 0xE3, 0x0D, 0x0D, 0xF8,
- .byte 0xDF, 0x0D, 0x07, 0xF8, 0xDC, 0x0D, 0x02, 0xF8, 0xD9, 0x0D, 0xFC, 0xF7, 0xD6, 0x0D, 0xF7, 0xF7,
- .byte 0xD3, 0x0D, 0xF2, 0xF7, 0xD0, 0x0D, 0xEC, 0xF7, 0xCC, 0x0D, 0xE7, 0xF7, 0xC9, 0x0D, 0xE1, 0xF7,
- .byte 0xC6, 0x0D, 0xDC, 0xF7, 0xC3, 0x0D, 0xD6, 0xF7, 0xC0, 0x0D, 0xD1, 0xF7, 0xBC, 0x0D, 0xCC, 0xF7,
- .byte 0xB9, 0x0D, 0xC6, 0xF7, 0xB6, 0x0D, 0xC1, 0xF7, 0xB3, 0x0D, 0xBB, 0xF7, 0xB0, 0x0D, 0xB6, 0xF7,
- .byte 0xAC, 0x0D, 0xB1, 0xF7, 0xA9, 0x0D, 0xAB, 0xF7, 0xA6, 0x0D, 0xA6, 0xF7, 0xA2, 0x0D, 0xA1, 0xF7,
- .byte 0x9F, 0x0D, 0x9B, 0xF7, 0x9C, 0x0D, 0x96, 0xF7, 0x99, 0x0D, 0x91, 0xF7, 0x95, 0x0D, 0x8B, 0xF7,
- .byte 0x92, 0x0D, 0x86, 0xF7, 0x8F, 0x0D, 0x81, 0xF7, 0x8B, 0x0D, 0x7B, 0xF7, 0x88, 0x0D, 0x76, 0xF7,
- .byte 0x85, 0x0D, 0x71, 0xF7, 0x81, 0x0D, 0x6B, 0xF7, 0x7E, 0x0D, 0x66, 0xF7, 0x7A, 0x0D, 0x61, 0xF7,
- .byte 0x77, 0x0D, 0x5B, 0xF7, 0x74, 0x0D, 0x56, 0xF7, 0x70, 0x0D, 0x51, 0xF7, 0x6D, 0x0D, 0x4C, 0xF7,
- .byte 0x69, 0x0D, 0x46, 0xF7, 0x66, 0x0D, 0x41, 0xF7, 0x62, 0x0D, 0x3C, 0xF7, 0x5F, 0x0D, 0x37, 0xF7,
- .byte 0x5C, 0x0D, 0x31, 0xF7, 0x58, 0x0D, 0x2C, 0xF7, 0x55, 0x0D, 0x27, 0xF7, 0x51, 0x0D, 0x22, 0xF7,
- .byte 0x4E, 0x0D, 0x1C, 0xF7, 0x4A, 0x0D, 0x17, 0xF7, 0x47, 0x0D, 0x12, 0xF7, 0x43, 0x0D, 0x0D, 0xF7,
- .byte 0x40, 0x0D, 0x08, 0xF7, 0x3C, 0x0D, 0x02, 0xF7, 0x39, 0x0D, 0xFD, 0xF6, 0x35, 0x0D, 0xF8, 0xF6,
- .byte 0x32, 0x0D, 0xF3, 0xF6, 0x2E, 0x0D, 0xEE, 0xF6, 0x2A, 0x0D, 0xE8, 0xF6, 0x27, 0x0D, 0xE3, 0xF6,
- .byte 0x23, 0x0D, 0xDE, 0xF6, 0x20, 0x0D, 0xD9, 0xF6, 0x1C, 0x0D, 0xD4, 0xF6, 0x18, 0x0D, 0xCF, 0xF6,
- .byte 0x15, 0x0D, 0xC9, 0xF6, 0x11, 0x0D, 0xC4, 0xF6, 0x0E, 0x0D, 0xBF, 0xF6, 0x0A, 0x0D, 0xBA, 0xF6,
- .byte 0x06, 0x0D, 0xB5, 0xF6, 0x03, 0x0D, 0xB0, 0xF6, 0xFF, 0x0C, 0xAB, 0xF6, 0xFB, 0x0C, 0xA6, 0xF6,
- .byte 0xF8, 0x0C, 0xA1, 0xF6, 0xF4, 0x0C, 0x9B, 0xF6, 0xF0, 0x0C, 0x96, 0xF6, 0xED, 0x0C, 0x91, 0xF6,
- .byte 0xE9, 0x0C, 0x8C, 0xF6, 0xE5, 0x0C, 0x87, 0xF6, 0xE1, 0x0C, 0x82, 0xF6, 0xDE, 0x0C, 0x7D, 0xF6,
- .byte 0xDA, 0x0C, 0x78, 0xF6, 0xD6, 0x0C, 0x73, 0xF6, 0xD2, 0x0C, 0x6E, 0xF6, 0xCF, 0x0C, 0x69, 0xF6,
- .byte 0xCB, 0x0C, 0x64, 0xF6, 0xC7, 0x0C, 0x5F, 0xF6, 0xC3, 0x0C, 0x5A, 0xF6, 0xC0, 0x0C, 0x55, 0xF6,
- .byte 0xBC, 0x0C, 0x50, 0xF6, 0xB8, 0x0C, 0x4B, 0xF6, 0xB4, 0x0C, 0x46, 0xF6, 0xB0, 0x0C, 0x41, 0xF6,
- .byte 0xAC, 0x0C, 0x3C, 0xF6, 0xA9, 0x0C, 0x37, 0xF6, 0xA5, 0x0C, 0x32, 0xF6, 0xA1, 0x0C, 0x2D, 0xF6,
- .byte 0x9D, 0x0C, 0x28, 0xF6, 0x99, 0x0C, 0x23, 0xF6, 0x95, 0x0C, 0x1E, 0xF6, 0x91, 0x0C, 0x19, 0xF6,
- .byte 0x8E, 0x0C, 0x14, 0xF6, 0x8A, 0x0C, 0x0F, 0xF6, 0x86, 0x0C, 0x0A, 0xF6, 0x82, 0x0C, 0x05, 0xF6,
- .byte 0x7E, 0x0C, 0x01, 0xF6, 0x7A, 0x0C, 0xFC, 0xF5, 0x76, 0x0C, 0xF7, 0xF5, 0x72, 0x0C, 0xF2, 0xF5,
- .byte 0x6E, 0x0C, 0xED, 0xF5, 0x6A, 0x0C, 0xE8, 0xF5, 0x66, 0x0C, 0xE3, 0xF5, 0x62, 0x0C, 0xDE, 0xF5,
- .byte 0x5E, 0x0C, 0xDA, 0xF5, 0x5A, 0x0C, 0xD5, 0xF5, 0x56, 0x0C, 0xD0, 0xF5, 0x52, 0x0C, 0xCB, 0xF5,
- .byte 0x4E, 0x0C, 0xC6, 0xF5, 0x4A, 0x0C, 0xC1, 0xF5, 0x46, 0x0C, 0xBC, 0xF5, 0x42, 0x0C, 0xB8, 0xF5,
- .byte 0x3E, 0x0C, 0xB3, 0xF5, 0x3A, 0x0C, 0xAE, 0xF5, 0x36, 0x0C, 0xA9, 0xF5, 0x32, 0x0C, 0xA4, 0xF5,
- .byte 0x2E, 0x0C, 0xA0, 0xF5, 0x2A, 0x0C, 0x9B, 0xF5, 0x26, 0x0C, 0x96, 0xF5, 0x22, 0x0C, 0x91, 0xF5,
- .byte 0x1E, 0x0C, 0x8D, 0xF5, 0x19, 0x0C, 0x88, 0xF5, 0x15, 0x0C, 0x83, 0xF5, 0x11, 0x0C, 0x7E, 0xF5,
- .byte 0x0D, 0x0C, 0x7A, 0xF5, 0x09, 0x0C, 0x75, 0xF5, 0x05, 0x0C, 0x70, 0xF5, 0x01, 0x0C, 0x6B, 0xF5,
- .byte 0xFC, 0x0B, 0x67, 0xF5, 0xF8, 0x0B, 0x62, 0xF5, 0xF4, 0x0B, 0x5D, 0xF5, 0xF0, 0x0B, 0x59, 0xF5,
- .byte 0xEC, 0x0B, 0x54, 0xF5, 0xE8, 0x0B, 0x4F, 0xF5, 0xE3, 0x0B, 0x4B, 0xF5, 0xDF, 0x0B, 0x46, 0xF5,
- .byte 0xDB, 0x0B, 0x41, 0xF5, 0xD7, 0x0B, 0x3D, 0xF5, 0xD2, 0x0B, 0x38, 0xF5, 0xCE, 0x0B, 0x33, 0xF5,
- .byte 0xCA, 0x0B, 0x2F, 0xF5, 0xC6, 0x0B, 0x2A, 0xF5, 0xC1, 0x0B, 0x25, 0xF5, 0xBD, 0x0B, 0x21, 0xF5,
- .byte 0xB9, 0x0B, 0x1C, 0xF5, 0xB5, 0x0B, 0x18, 0xF5, 0xB0, 0x0B, 0x13, 0xF5, 0xAC, 0x0B, 0x0E, 0xF5,
- .byte 0xA8, 0x0B, 0x0A, 0xF5, 0xA3, 0x0B, 0x05, 0xF5, 0x9F, 0x0B, 0x01, 0xF5, 0x9B, 0x0B, 0xFC, 0xF4,
- .byte 0x97, 0x0B, 0xF8, 0xF4, 0x92, 0x0B, 0xF3, 0xF4, 0x8E, 0x0B, 0xEF, 0xF4, 0x89, 0x0B, 0xEA, 0xF4,
- .byte 0x85, 0x0B, 0xE5, 0xF4, 0x81, 0x0B, 0xE1, 0xF4, 0x7C, 0x0B, 0xDC, 0xF4, 0x78, 0x0B, 0xD8, 0xF4,
- .byte 0x74, 0x0B, 0xD3, 0xF4, 0x6F, 0x0B, 0xCF, 0xF4, 0x6B, 0x0B, 0xCA, 0xF4, 0x66, 0x0B, 0xC6, 0xF4,
- .byte 0x62, 0x0B, 0xC2, 0xF4, 0x5E, 0x0B, 0xBD, 0xF4, 0x59, 0x0B, 0xB9, 0xF4, 0x55, 0x0B, 0xB4, 0xF4,
- .byte 0x50, 0x0B, 0xB0, 0xF4, 0x4C, 0x0B, 0xAB, 0xF4, 0x47, 0x0B, 0xA7, 0xF4, 0x43, 0x0B, 0xA2, 0xF4,
- .byte 0x3E, 0x0B, 0x9E, 0xF4, 0x3A, 0x0B, 0x9A, 0xF4, 0x36, 0x0B, 0x95, 0xF4, 0x31, 0x0B, 0x91, 0xF4,
- .byte 0x2D, 0x0B, 0x8C, 0xF4, 0x28, 0x0B, 0x88, 0xF4, 0x24, 0x0B, 0x84, 0xF4, 0x1F, 0x0B, 0x7F, 0xF4,
- .byte 0x1B, 0x0B, 0x7B, 0xF4, 0x16, 0x0B, 0x77, 0xF4, 0x11, 0x0B, 0x72, 0xF4, 0x0D, 0x0B, 0x6E, 0xF4,
- .byte 0x08, 0x0B, 0x69, 0xF4, 0x04, 0x0B, 0x65, 0xF4, 0xFF, 0x0A, 0x61, 0xF4, 0xFB, 0x0A, 0x5D, 0xF4,
- .byte 0xF6, 0x0A, 0x58, 0xF4, 0xF2, 0x0A, 0x54, 0xF4, 0xED, 0x0A, 0x50, 0xF4, 0xE8, 0x0A, 0x4B, 0xF4,
- .byte 0xE4, 0x0A, 0x47, 0xF4, 0xDF, 0x0A, 0x43, 0xF4, 0xDB, 0x0A, 0x3F, 0xF4, 0xD6, 0x0A, 0x3A, 0xF4,
- .byte 0xD1, 0x0A, 0x36, 0xF4, 0xCD, 0x0A, 0x32, 0xF4, 0xC8, 0x0A, 0x2E, 0xF4, 0xC3, 0x0A, 0x29, 0xF4,
- .byte 0xBF, 0x0A, 0x25, 0xF4, 0xBA, 0x0A, 0x21, 0xF4, 0xB5, 0x0A, 0x1D, 0xF4, 0xB1, 0x0A, 0x18, 0xF4,
- .byte 0xAC, 0x0A, 0x14, 0xF4, 0xA7, 0x0A, 0x10, 0xF4, 0xA3, 0x0A, 0x0C, 0xF4, 0x9E, 0x0A, 0x08, 0xF4,
- .byte 0x99, 0x0A, 0x04, 0xF4, 0x95, 0x0A, 0xFF, 0xF3, 0x90, 0x0A, 0xFB, 0xF3, 0x8B, 0x0A, 0xF7, 0xF3,
- .byte 0x86, 0x0A, 0xF3, 0xF3, 0x82, 0x0A, 0xEF, 0xF3, 0x7D, 0x0A, 0xEB, 0xF3, 0x78, 0x0A, 0xE7, 0xF3,
- .byte 0x73, 0x0A, 0xE2, 0xF3, 0x6F, 0x0A, 0xDE, 0xF3, 0x6A, 0x0A, 0xDA, 0xF3, 0x65, 0x0A, 0xD6, 0xF3,
- .byte 0x60, 0x0A, 0xD2, 0xF3, 0x5C, 0x0A, 0xCE, 0xF3, 0x57, 0x0A, 0xCA, 0xF3, 0x52, 0x0A, 0xC6, 0xF3,
- .byte 0x4D, 0x0A, 0xC2, 0xF3, 0x48, 0x0A, 0xBE, 0xF3, 0x44, 0x0A, 0xBA, 0xF3, 0x3F, 0x0A, 0xB6, 0xF3,
- .byte 0x3A, 0x0A, 0xB2, 0xF3, 0x35, 0x0A, 0xAE, 0xF3, 0x30, 0x0A, 0xAA, 0xF3, 0x2B, 0x0A, 0xA6, 0xF3,
- .byte 0x26, 0x0A, 0xA2, 0xF3, 0x22, 0x0A, 0x9E, 0xF3, 0x1D, 0x0A, 0x9A, 0xF3, 0x18, 0x0A, 0x96, 0xF3,
- .byte 0x13, 0x0A, 0x92, 0xF3, 0x0E, 0x0A, 0x8E, 0xF3, 0x09, 0x0A, 0x8A, 0xF3, 0x04, 0x0A, 0x86, 0xF3,
- .byte 0xFF, 0x09, 0x82, 0xF3, 0xFB, 0x09, 0x7E, 0xF3, 0xF6, 0x09, 0x7A, 0xF3, 0xF1, 0x09, 0x76, 0xF3,
- .byte 0xEC, 0x09, 0x72, 0xF3, 0xE7, 0x09, 0x6F, 0xF3, 0xE2, 0x09, 0x6B, 0xF3, 0xDD, 0x09, 0x67, 0xF3,
- .byte 0xD8, 0x09, 0x63, 0xF3, 0xD3, 0x09, 0x5F, 0xF3, 0xCE, 0x09, 0x5B, 0xF3, 0xC9, 0x09, 0x57, 0xF3,
- .byte 0xC4, 0x09, 0x54, 0xF3, 0xBF, 0x09, 0x50, 0xF3, 0xBA, 0x09, 0x4C, 0xF3, 0xB5, 0x09, 0x48, 0xF3,
- .byte 0xB0, 0x09, 0x44, 0xF3, 0xAB, 0x09, 0x40, 0xF3, 0xA6, 0x09, 0x3D, 0xF3, 0xA1, 0x09, 0x39, 0xF3,
- .byte 0x9C, 0x09, 0x35, 0xF3, 0x97, 0x09, 0x31, 0xF3, 0x92, 0x09, 0x2E, 0xF3, 0x8D, 0x09, 0x2A, 0xF3,
- .byte 0x88, 0x09, 0x26, 0xF3, 0x83, 0x09, 0x22, 0xF3, 0x7E, 0x09, 0x1F, 0xF3, 0x79, 0x09, 0x1B, 0xF3,
- .byte 0x74, 0x09, 0x17, 0xF3, 0x6F, 0x09, 0x13, 0xF3, 0x6A, 0x09, 0x10, 0xF3, 0x65, 0x09, 0x0C, 0xF3,
- .byte 0x5F, 0x09, 0x08, 0xF3, 0x5A, 0x09, 0x05, 0xF3, 0x55, 0x09, 0x01, 0xF3, 0x50, 0x09, 0xFD, 0xF2,
- .byte 0x4B, 0x09, 0xFA, 0xF2, 0x46, 0x09, 0xF6, 0xF2, 0x41, 0x09, 0xF2, 0xF2, 0x3C, 0x09, 0xEF, 0xF2,
- .byte 0x37, 0x09, 0xEB, 0xF2, 0x31, 0x09, 0xE8, 0xF2, 0x2C, 0x09, 0xE4, 0xF2, 0x27, 0x09, 0xE0, 0xF2,
- .byte 0x22, 0x09, 0xDD, 0xF2, 0x1D, 0x09, 0xD9, 0xF2, 0x18, 0x09, 0xD6, 0xF2, 0x12, 0x09, 0xD2, 0xF2,
- .byte 0x0D, 0x09, 0xCE, 0xF2, 0x08, 0x09, 0xCB, 0xF2, 0x03, 0x09, 0xC7, 0xF2, 0xFE, 0x08, 0xC4, 0xF2,
- .byte 0xF8, 0x08, 0xC0, 0xF2, 0xF3, 0x08, 0xBD, 0xF2, 0xEE, 0x08, 0xB9, 0xF2, 0xE9, 0x08, 0xB6, 0xF2,
- .byte 0xE4, 0x08, 0xB2, 0xF2, 0xDE, 0x08, 0xAF, 0xF2, 0xD9, 0x08, 0xAB, 0xF2, 0xD4, 0x08, 0xA8, 0xF2,
- .byte 0xCF, 0x08, 0xA4, 0xF2, 0xC9, 0x08, 0xA1, 0xF2, 0xC4, 0x08, 0x9E, 0xF2, 0xBF, 0x08, 0x9A, 0xF2,
- .byte 0xBA, 0x08, 0x97, 0xF2, 0xB4, 0x08, 0x93, 0xF2, 0xAF, 0x08, 0x90, 0xF2, 0xAA, 0x08, 0x8C, 0xF2,
- .byte 0xA5, 0x08, 0x89, 0xF2, 0x9F, 0x08, 0x86, 0xF2, 0x9A, 0x08, 0x82, 0xF2, 0x95, 0x08, 0x7F, 0xF2,
- .byte 0x8F, 0x08, 0x7B, 0xF2, 0x8A, 0x08, 0x78, 0xF2, 0x85, 0x08, 0x75, 0xF2, 0x7F, 0x08, 0x71, 0xF2,
- .byte 0x7A, 0x08, 0x6E, 0xF2, 0x75, 0x08, 0x6B, 0xF2, 0x6F, 0x08, 0x67, 0xF2, 0x6A, 0x08, 0x64, 0xF2,
- .byte 0x65, 0x08, 0x61, 0xF2, 0x5F, 0x08, 0x5E, 0xF2, 0x5A, 0x08, 0x5A, 0xF2, 0x55, 0x08, 0x57, 0xF2,
- .byte 0x4F, 0x08, 0x54, 0xF2, 0x4A, 0x08, 0x50, 0xF2, 0x45, 0x08, 0x4D, 0xF2, 0x3F, 0x08, 0x4A, 0xF2,
- .byte 0x3A, 0x08, 0x47, 0xF2, 0x34, 0x08, 0x44, 0xF2, 0x2F, 0x08, 0x40, 0xF2, 0x2A, 0x08, 0x3D, 0xF2,
- .byte 0x24, 0x08, 0x3A, 0xF2, 0x1F, 0x08, 0x37, 0xF2, 0x19, 0x08, 0x34, 0xF2, 0x14, 0x08, 0x30, 0xF2,
- .byte 0x0E, 0x08, 0x2D, 0xF2, 0x09, 0x08, 0x2A, 0xF2, 0x04, 0x08, 0x27, 0xF2, 0xFE, 0x07, 0x24, 0xF2,
- .byte 0xF9, 0x07, 0x21, 0xF2, 0xF3, 0x07, 0x1D, 0xF2, 0xEE, 0x07, 0x1A, 0xF2, 0xE8, 0x07, 0x17, 0xF2,
- .byte 0xE3, 0x07, 0x14, 0xF2, 0xDD, 0x07, 0x11, 0xF2, 0xD8, 0x07, 0x0E, 0xF2, 0xD2, 0x07, 0x0B, 0xF2,
- .byte 0xCD, 0x07, 0x08, 0xF2, 0xC8, 0x07, 0x05, 0xF2, 0xC2, 0x07, 0x02, 0xF2, 0xBD, 0x07, 0xFF, 0xF1,
- .byte 0xB7, 0x07, 0xFC, 0xF1, 0xB2, 0x07, 0xF9, 0xF1, 0xAC, 0x07, 0xF6, 0xF1, 0xA6, 0x07, 0xF3, 0xF1,
- .byte 0xA1, 0x07, 0xF0, 0xF1, 0x9B, 0x07, 0xED, 0xF1, 0x96, 0x07, 0xEA, 0xF1, 0x90, 0x07, 0xE7, 0xF1,
- .byte 0x8B, 0x07, 0xE4, 0xF1, 0x85, 0x07, 0xE1, 0xF1, 0x80, 0x07, 0xDE, 0xF1, 0x7A, 0x07, 0xDB, 0xF1,
- .byte 0x75, 0x07, 0xD8, 0xF1, 0x6F, 0x07, 0xD5, 0xF1, 0x6A, 0x07, 0xD2, 0xF1, 0x64, 0x07, 0xCF, 0xF1,
- .byte 0x5E, 0x07, 0xCC, 0xF1, 0x59, 0x07, 0xC9, 0xF1, 0x53, 0x07, 0xC6, 0xF1, 0x4E, 0x07, 0xC4, 0xF1,
- .byte 0x48, 0x07, 0xC1, 0xF1, 0x42, 0x07, 0xBE, 0xF1, 0x3D, 0x07, 0xBB, 0xF1, 0x37, 0x07, 0xB8, 0xF1,
- .byte 0x32, 0x07, 0xB5, 0xF1, 0x2C, 0x07, 0xB3, 0xF1, 0x26, 0x07, 0xB0, 0xF1, 0x21, 0x07, 0xAD, 0xF1,
- .byte 0x1B, 0x07, 0xAA, 0xF1, 0x15, 0x07, 0xA7, 0xF1, 0x10, 0x07, 0xA5, 0xF1, 0x0A, 0x07, 0xA2, 0xF1,
- .byte 0x05, 0x07, 0x9F, 0xF1, 0xFF, 0x06, 0x9C, 0xF1, 0xF9, 0x06, 0x9A, 0xF1, 0xF4, 0x06, 0x97, 0xF1,
- .byte 0xEE, 0x06, 0x94, 0xF1, 0xE8, 0x06, 0x91, 0xF1, 0xE3, 0x06, 0x8F, 0xF1, 0xDD, 0x06, 0x8C, 0xF1,
- .byte 0xD7, 0x06, 0x89, 0xF1, 0xD2, 0x06, 0x87, 0xF1, 0xCC, 0x06, 0x84, 0xF1, 0xC6, 0x06, 0x81, 0xF1,
- .byte 0xC1, 0x06, 0x7F, 0xF1, 0xBB, 0x06, 0x7C, 0xF1, 0xB5, 0x06, 0x79, 0xF1, 0xAF, 0x06, 0x77, 0xF1,
- .byte 0xAA, 0x06, 0x74, 0xF1, 0xA4, 0x06, 0x71, 0xF1, 0x9E, 0x06, 0x6F, 0xF1, 0x99, 0x06, 0x6C, 0xF1,
- .byte 0x93, 0x06, 0x6A, 0xF1, 0x8D, 0x06, 0x67, 0xF1, 0x87, 0x06, 0x65, 0xF1, 0x82, 0x06, 0x62, 0xF1,
- .byte 0x7C, 0x06, 0x5F, 0xF1, 0x76, 0x06, 0x5D, 0xF1, 0x70, 0x06, 0x5A, 0xF1, 0x6B, 0x06, 0x58, 0xF1,
- .byte 0x65, 0x06, 0x55, 0xF1, 0x5F, 0x06, 0x53, 0xF1, 0x59, 0x06, 0x50, 0xF1, 0x54, 0x06, 0x4E, 0xF1,
- .byte 0x4E, 0x06, 0x4B, 0xF1, 0x48, 0x06, 0x49, 0xF1, 0x42, 0x06, 0x46, 0xF1, 0x3C, 0x06, 0x44, 0xF1,
- .byte 0x37, 0x06, 0x41, 0xF1, 0x31, 0x06, 0x3F, 0xF1, 0x2B, 0x06, 0x3D, 0xF1, 0x25, 0x06, 0x3A, 0xF1,
- .byte 0x1F, 0x06, 0x38, 0xF1, 0x1A, 0x06, 0x35, 0xF1, 0x14, 0x06, 0x33, 0xF1, 0x0E, 0x06, 0x31, 0xF1,
- .byte 0x08, 0x06, 0x2E, 0xF1, 0x02, 0x06, 0x2C, 0xF1, 0xFD, 0x05, 0x2A, 0xF1, 0xF7, 0x05, 0x27, 0xF1,
- .byte 0xF1, 0x05, 0x25, 0xF1, 0xEB, 0x05, 0x23, 0xF1, 0xE5, 0x05, 0x20, 0xF1, 0xDF, 0x05, 0x1E, 0xF1,
- .byte 0xDA, 0x05, 0x1C, 0xF1, 0xD4, 0x05, 0x19, 0xF1, 0xCE, 0x05, 0x17, 0xF1, 0xC8, 0x05, 0x15, 0xF1,
- .byte 0xC2, 0x05, 0x12, 0xF1, 0xBC, 0x05, 0x10, 0xF1, 0xB6, 0x05, 0x0E, 0xF1, 0xB1, 0x05, 0x0C, 0xF1,
- .byte 0xAB, 0x05, 0x09, 0xF1, 0xA5, 0x05, 0x07, 0xF1, 0x9F, 0x05, 0x05, 0xF1, 0x99, 0x05, 0x03, 0xF1,
- .byte 0x93, 0x05, 0x01, 0xF1, 0x8D, 0x05, 0xFE, 0xF0, 0x87, 0x05, 0xFC, 0xF0, 0x81, 0x05, 0xFA, 0xF0,
- .byte 0x7C, 0x05, 0xF8, 0xF0, 0x76, 0x05, 0xF6, 0xF0, 0x70, 0x05, 0xF4, 0xF0, 0x6A, 0x05, 0xF2, 0xF0,
- .byte 0x64, 0x05, 0xEF, 0xF0, 0x5E, 0x05, 0xED, 0xF0, 0x58, 0x05, 0xEB, 0xF0, 0x52, 0x05, 0xE9, 0xF0,
- .byte 0x4C, 0x05, 0xE7, 0xF0, 0x46, 0x05, 0xE5, 0xF0, 0x40, 0x05, 0xE3, 0xF0, 0x3A, 0x05, 0xE1, 0xF0,
- .byte 0x34, 0x05, 0xDF, 0xF0, 0x2F, 0x05, 0xDD, 0xF0, 0x29, 0x05, 0xDB, 0xF0, 0x23, 0x05, 0xD9, 0xF0,
- .byte 0x1D, 0x05, 0xD7, 0xF0, 0x17, 0x05, 0xD5, 0xF0, 0x11, 0x05, 0xD3, 0xF0, 0x0B, 0x05, 0xD1, 0xF0,
- .byte 0x05, 0x05, 0xCF, 0xF0, 0xFF, 0x04, 0xCD, 0xF0, 0xF9, 0x04, 0xCB, 0xF0, 0xF3, 0x04, 0xC9, 0xF0,
- .byte 0xED, 0x04, 0xC7, 0xF0, 0xE7, 0x04, 0xC5, 0xF0, 0xE1, 0x04, 0xC3, 0xF0, 0xDB, 0x04, 0xC1, 0xF0,
- .byte 0xD5, 0x04, 0xBF, 0xF0, 0xCF, 0x04, 0xBD, 0xF0, 0xC9, 0x04, 0xBB, 0xF0, 0xC3, 0x04, 0xBA, 0xF0,
- .byte 0xBD, 0x04, 0xB8, 0xF0, 0xB7, 0x04, 0xB6, 0xF0, 0xB1, 0x04, 0xB4, 0xF0, 0xAB, 0x04, 0xB2, 0xF0,
- .byte 0xA5, 0x04, 0xB0, 0xF0, 0x9F, 0x04, 0xAF, 0xF0, 0x99, 0x04, 0xAD, 0xF0, 0x93, 0x04, 0xAB, 0xF0,
- .byte 0x8D, 0x04, 0xA9, 0xF0, 0x87, 0x04, 0xA7, 0xF0, 0x81, 0x04, 0xA6, 0xF0, 0x7B, 0x04, 0xA4, 0xF0,
- .byte 0x75, 0x04, 0xA2, 0xF0, 0x6F, 0x04, 0xA0, 0xF0, 0x69, 0x04, 0x9F, 0xF0, 0x63, 0x04, 0x9D, 0xF0,
- .byte 0x5D, 0x04, 0x9B, 0xF0, 0x57, 0x04, 0x99, 0xF0, 0x51, 0x04, 0x98, 0xF0, 0x4B, 0x04, 0x96, 0xF0,
- .byte 0x44, 0x04, 0x94, 0xF0, 0x3E, 0x04, 0x93, 0xF0, 0x38, 0x04, 0x91, 0xF0, 0x32, 0x04, 0x8F, 0xF0,
- .byte 0x2C, 0x04, 0x8E, 0xF0, 0x26, 0x04, 0x8C, 0xF0, 0x20, 0x04, 0x8A, 0xF0, 0x1A, 0x04, 0x89, 0xF0,
- .byte 0x14, 0x04, 0x87, 0xF0, 0x0E, 0x04, 0x86, 0xF0, 0x08, 0x04, 0x84, 0xF0, 0x02, 0x04, 0x83, 0xF0,
- .byte 0xFC, 0x03, 0x81, 0xF0, 0xF6, 0x03, 0x7F, 0xF0, 0xEF, 0x03, 0x7E, 0xF0, 0xE9, 0x03, 0x7C, 0xF0,
- .byte 0xE3, 0x03, 0x7B, 0xF0, 0xDD, 0x03, 0x79, 0xF0, 0xD7, 0x03, 0x78, 0xF0, 0xD1, 0x03, 0x76, 0xF0,
- .byte 0xCB, 0x03, 0x75, 0xF0, 0xC5, 0x03, 0x73, 0xF0, 0xBF, 0x03, 0x72, 0xF0, 0xB9, 0x03, 0x70, 0xF0,
- .byte 0xB2, 0x03, 0x6F, 0xF0, 0xAC, 0x03, 0x6D, 0xF0, 0xA6, 0x03, 0x6C, 0xF0, 0xA0, 0x03, 0x6B, 0xF0,
- .byte 0x9A, 0x03, 0x69, 0xF0, 0x94, 0x03, 0x68, 0xF0, 0x8E, 0x03, 0x66, 0xF0, 0x88, 0x03, 0x65, 0xF0,
- .byte 0x81, 0x03, 0x64, 0xF0, 0x7B, 0x03, 0x62, 0xF0, 0x75, 0x03, 0x61, 0xF0, 0x6F, 0x03, 0x5F, 0xF0,
- .byte 0x69, 0x03, 0x5E, 0xF0, 0x63, 0x03, 0x5D, 0xF0, 0x5D, 0x03, 0x5B, 0xF0, 0x56, 0x03, 0x5A, 0xF0,
- .byte 0x50, 0x03, 0x59, 0xF0, 0x4A, 0x03, 0x58, 0xF0, 0x44, 0x03, 0x56, 0xF0, 0x3E, 0x03, 0x55, 0xF0,
- .byte 0x38, 0x03, 0x54, 0xF0, 0x32, 0x03, 0x52, 0xF0, 0x2B, 0x03, 0x51, 0xF0, 0x25, 0x03, 0x50, 0xF0,
- .byte 0x1F, 0x03, 0x4F, 0xF0, 0x19, 0x03, 0x4D, 0xF0, 0x13, 0x03, 0x4C, 0xF0, 0x0D, 0x03, 0x4B, 0xF0,
- .byte 0x06, 0x03, 0x4A, 0xF0, 0x00, 0x03, 0x49, 0xF0, 0xFA, 0x02, 0x48, 0xF0, 0xF4, 0x02, 0x46, 0xF0,
- .byte 0xEE, 0x02, 0x45, 0xF0, 0xE8, 0x02, 0x44, 0xF0, 0xE1, 0x02, 0x43, 0xF0, 0xDB, 0x02, 0x42, 0xF0,
- .byte 0xD5, 0x02, 0x41, 0xF0, 0xCF, 0x02, 0x40, 0xF0, 0xC9, 0x02, 0x3E, 0xF0, 0xC2, 0x02, 0x3D, 0xF0,
- .byte 0xBC, 0x02, 0x3C, 0xF0, 0xB6, 0x02, 0x3B, 0xF0, 0xB0, 0x02, 0x3A, 0xF0, 0xAA, 0x02, 0x39, 0xF0,
- .byte 0xA3, 0x02, 0x38, 0xF0, 0x9D, 0x02, 0x37, 0xF0, 0x97, 0x02, 0x36, 0xF0, 0x91, 0x02, 0x35, 0xF0,
- .byte 0x8B, 0x02, 0x34, 0xF0, 0x84, 0x02, 0x33, 0xF0, 0x7E, 0x02, 0x32, 0xF0, 0x78, 0x02, 0x31, 0xF0,
- .byte 0x72, 0x02, 0x30, 0xF0, 0x6C, 0x02, 0x2F, 0xF0, 0x65, 0x02, 0x2E, 0xF0, 0x5F, 0x02, 0x2D, 0xF0,
- .byte 0x59, 0x02, 0x2C, 0xF0, 0x53, 0x02, 0x2B, 0xF0, 0x4D, 0x02, 0x2B, 0xF0, 0x46, 0x02, 0x2A, 0xF0,
- .byte 0x40, 0x02, 0x29, 0xF0, 0x3A, 0x02, 0x28, 0xF0, 0x34, 0x02, 0x27, 0xF0, 0x2D, 0x02, 0x26, 0xF0,
- .byte 0x27, 0x02, 0x25, 0xF0, 0x21, 0x02, 0x24, 0xF0, 0x1B, 0x02, 0x24, 0xF0, 0x15, 0x02, 0x23, 0xF0,
- .byte 0x0E, 0x02, 0x22, 0xF0, 0x08, 0x02, 0x21, 0xF0, 0x02, 0x02, 0x20, 0xF0, 0xFC, 0x01, 0x20, 0xF0,
- .byte 0xF5, 0x01, 0x1F, 0xF0, 0xEF, 0x01, 0x1E, 0xF0, 0xE9, 0x01, 0x1D, 0xF0, 0xE3, 0x01, 0x1D, 0xF0,
- .byte 0xDC, 0x01, 0x1C, 0xF0, 0xD6, 0x01, 0x1B, 0xF0, 0xD0, 0x01, 0x1A, 0xF0, 0xCA, 0x01, 0x1A, 0xF0,
- .byte 0xC3, 0x01, 0x19, 0xF0, 0xBD, 0x01, 0x18, 0xF0, 0xB7, 0x01, 0x18, 0xF0, 0xB1, 0x01, 0x17, 0xF0,
- .byte 0xAA, 0x01, 0x16, 0xF0, 0xA4, 0x01, 0x16, 0xF0, 0x9E, 0x01, 0x15, 0xF0, 0x98, 0x01, 0x14, 0xF0,
- .byte 0x91, 0x01, 0x14, 0xF0, 0x8B, 0x01, 0x13, 0xF0, 0x85, 0x01, 0x13, 0xF0, 0x7F, 0x01, 0x12, 0xF0,
- .byte 0x78, 0x01, 0x11, 0xF0, 0x72, 0x01, 0x11, 0xF0, 0x6C, 0x01, 0x10, 0xF0, 0x66, 0x01, 0x10, 0xF0,
- .byte 0x5F, 0x01, 0x0F, 0xF0, 0x59, 0x01, 0x0F, 0xF0, 0x53, 0x01, 0x0E, 0xF0, 0x4D, 0x01, 0x0E, 0xF0,
- .byte 0x46, 0x01, 0x0D, 0xF0, 0x40, 0x01, 0x0D, 0xF0, 0x3A, 0x01, 0x0C, 0xF0, 0x34, 0x01, 0x0C, 0xF0,
- .byte 0x2D, 0x01, 0x0B, 0xF0, 0x27, 0x01, 0x0B, 0xF0, 0x21, 0x01, 0x0A, 0xF0, 0x1B, 0x01, 0x0A, 0xF0,
- .byte 0x14, 0x01, 0x09, 0xF0, 0x0E, 0x01, 0x09, 0xF0, 0x08, 0x01, 0x08, 0xF0, 0x01, 0x01, 0x08, 0xF0,
- .byte 0xFB, 0x00, 0x08, 0xF0, 0xF5, 0x00, 0x07, 0xF0, 0xEF, 0x00, 0x07, 0xF0, 0xE8, 0x00, 0x07, 0xF0,
- .byte 0xE2, 0x00, 0x06, 0xF0, 0xDC, 0x00, 0x06, 0xF0, 0xD6, 0x00, 0x06, 0xF0, 0xCF, 0x00, 0x05, 0xF0,
- .byte 0xC9, 0x00, 0x05, 0xF0, 0xC3, 0x00, 0x05, 0xF0, 0xBC, 0x00, 0x04, 0xF0, 0xB6, 0x00, 0x04, 0xF0,
- .byte 0xB0, 0x00, 0x04, 0xF0, 0xAA, 0x00, 0x04, 0xF0, 0xA3, 0x00, 0x03, 0xF0, 0x9D, 0x00, 0x03, 0xF0,
- .byte 0x97, 0x00, 0x03, 0xF0, 0x90, 0x00, 0x03, 0xF0, 0x8A, 0x00, 0x02, 0xF0, 0x84, 0x00, 0x02, 0xF0,
- .byte 0x7E, 0x00, 0x02, 0xF0, 0x77, 0x00, 0x02, 0xF0, 0x71, 0x00, 0x02, 0xF0, 0x6B, 0x00, 0x01, 0xF0,
- .byte 0x65, 0x00, 0x01, 0xF0, 0x5E, 0x00, 0x01, 0xF0, 0x58, 0x00, 0x01, 0xF0, 0x52, 0x00, 0x01, 0xF0,
- .byte 0x4B, 0x00, 0x01, 0xF0, 0x45, 0x00, 0x01, 0xF0, 0x3F, 0x00, 0x00, 0xF0, 0x39, 0x00, 0x00, 0xF0,
- .byte 0x32, 0x00, 0x00, 0xF0, 0x2C, 0x00, 0x00, 0xF0, 0x26, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0xF0,
- .byte 0x19, 0x00, 0x00, 0xF0, 0x13, 0x00, 0x00, 0xF0, 0x0D, 0x00, 0x00, 0xF0, 0x06, 0x00, 0x00, 0xF0,
- .byte 0x00, 0x00, 0x00, 0xF0, 0xFA, 0xFF, 0x00, 0xF0, 0xF3, 0xFF, 0x00, 0xF0, 0xED, 0xFF, 0x00, 0xF0,
- .byte 0xE7, 0xFF, 0x00, 0xF0, 0xE1, 0xFF, 0x00, 0xF0, 0xDA, 0xFF, 0x00, 0xF0, 0xD4, 0xFF, 0x00, 0xF0,
- .byte 0xCE, 0xFF, 0x00, 0xF0, 0xC7, 0xFF, 0x00, 0xF0, 0xC1, 0xFF, 0x00, 0xF0, 0xBB, 0xFF, 0x01, 0xF0,
- .byte 0xB5, 0xFF, 0x01, 0xF0, 0xAE, 0xFF, 0x01, 0xF0, 0xA8, 0xFF, 0x01, 0xF0, 0xA2, 0xFF, 0x01, 0xF0,
- .byte 0x9B, 0xFF, 0x01, 0xF0, 0x95, 0xFF, 0x01, 0xF0, 0x8F, 0xFF, 0x02, 0xF0, 0x89, 0xFF, 0x02, 0xF0,
- .byte 0x82, 0xFF, 0x02, 0xF0, 0x7C, 0xFF, 0x02, 0xF0, 0x76, 0xFF, 0x02, 0xF0, 0x70, 0xFF, 0x03, 0xF0,
- .byte 0x69, 0xFF, 0x03, 0xF0, 0x63, 0xFF, 0x03, 0xF0, 0x5D, 0xFF, 0x03, 0xF0, 0x56, 0xFF, 0x04, 0xF0,
- .byte 0x50, 0xFF, 0x04, 0xF0, 0x4A, 0xFF, 0x04, 0xF0, 0x44, 0xFF, 0x04, 0xF0, 0x3D, 0xFF, 0x05, 0xF0,
- .byte 0x37, 0xFF, 0x05, 0xF0, 0x31, 0xFF, 0x05, 0xF0, 0x2A, 0xFF, 0x06, 0xF0, 0x24, 0xFF, 0x06, 0xF0,
- .byte 0x1E, 0xFF, 0x06, 0xF0, 0x18, 0xFF, 0x07, 0xF0, 0x11, 0xFF, 0x07, 0xF0, 0x0B, 0xFF, 0x07, 0xF0,
- .byte 0x05, 0xFF, 0x08, 0xF0, 0xFF, 0xFE, 0x08, 0xF0, 0xF8, 0xFE, 0x08, 0xF0, 0xF2, 0xFE, 0x09, 0xF0,
- .byte 0xEC, 0xFE, 0x09, 0xF0, 0xE5, 0xFE, 0x0A, 0xF0, 0xDF, 0xFE, 0x0A, 0xF0, 0xD9, 0xFE, 0x0B, 0xF0,
- .byte 0xD3, 0xFE, 0x0B, 0xF0, 0xCC, 0xFE, 0x0C, 0xF0, 0xC6, 0xFE, 0x0C, 0xF0, 0xC0, 0xFE, 0x0D, 0xF0,
- .byte 0xBA, 0xFE, 0x0D, 0xF0, 0xB3, 0xFE, 0x0E, 0xF0, 0xAD, 0xFE, 0x0E, 0xF0, 0xA7, 0xFE, 0x0F, 0xF0,
- .byte 0xA1, 0xFE, 0x0F, 0xF0, 0x9A, 0xFE, 0x10, 0xF0, 0x94, 0xFE, 0x10, 0xF0, 0x8E, 0xFE, 0x11, 0xF0,
- .byte 0x88, 0xFE, 0x11, 0xF0, 0x81, 0xFE, 0x12, 0xF0, 0x7B, 0xFE, 0x13, 0xF0, 0x75, 0xFE, 0x13, 0xF0,
- .byte 0x6F, 0xFE, 0x14, 0xF0, 0x68, 0xFE, 0x14, 0xF0, 0x62, 0xFE, 0x15, 0xF0, 0x5C, 0xFE, 0x16, 0xF0,
- .byte 0x56, 0xFE, 0x16, 0xF0, 0x4F, 0xFE, 0x17, 0xF0, 0x49, 0xFE, 0x18, 0xF0, 0x43, 0xFE, 0x18, 0xF0,
- .byte 0x3D, 0xFE, 0x19, 0xF0, 0x36, 0xFE, 0x1A, 0xF0, 0x30, 0xFE, 0x1A, 0xF0, 0x2A, 0xFE, 0x1B, 0xF0,
- .byte 0x24, 0xFE, 0x1C, 0xF0, 0x1D, 0xFE, 0x1D, 0xF0, 0x17, 0xFE, 0x1D, 0xF0, 0x11, 0xFE, 0x1E, 0xF0,
- .byte 0x0B, 0xFE, 0x1F, 0xF0, 0x04, 0xFE, 0x20, 0xF0, 0xFE, 0xFD, 0x20, 0xF0, 0xF8, 0xFD, 0x21, 0xF0,
- .byte 0xF2, 0xFD, 0x22, 0xF0, 0xEB, 0xFD, 0x23, 0xF0, 0xE5, 0xFD, 0x24, 0xF0, 0xDF, 0xFD, 0x24, 0xF0,
- .byte 0xD9, 0xFD, 0x25, 0xF0, 0xD3, 0xFD, 0x26, 0xF0, 0xCC, 0xFD, 0x27, 0xF0, 0xC6, 0xFD, 0x28, 0xF0,
- .byte 0xC0, 0xFD, 0x29, 0xF0, 0xBA, 0xFD, 0x2A, 0xF0, 0xB3, 0xFD, 0x2B, 0xF0, 0xAD, 0xFD, 0x2B, 0xF0,
- .byte 0xA7, 0xFD, 0x2C, 0xF0, 0xA1, 0xFD, 0x2D, 0xF0, 0x9B, 0xFD, 0x2E, 0xF0, 0x94, 0xFD, 0x2F, 0xF0,
- .byte 0x8E, 0xFD, 0x30, 0xF0, 0x88, 0xFD, 0x31, 0xF0, 0x82, 0xFD, 0x32, 0xF0, 0x7C, 0xFD, 0x33, 0xF0,
- .byte 0x75, 0xFD, 0x34, 0xF0, 0x6F, 0xFD, 0x35, 0xF0, 0x69, 0xFD, 0x36, 0xF0, 0x63, 0xFD, 0x37, 0xF0,
- .byte 0x5D, 0xFD, 0x38, 0xF0, 0x56, 0xFD, 0x39, 0xF0, 0x50, 0xFD, 0x3A, 0xF0, 0x4A, 0xFD, 0x3B, 0xF0,
- .byte 0x44, 0xFD, 0x3C, 0xF0, 0x3E, 0xFD, 0x3D, 0xF0, 0x37, 0xFD, 0x3E, 0xF0, 0x31, 0xFD, 0x40, 0xF0,
- .byte 0x2B, 0xFD, 0x41, 0xF0, 0x25, 0xFD, 0x42, 0xF0, 0x1F, 0xFD, 0x43, 0xF0, 0x18, 0xFD, 0x44, 0xF0,
- .byte 0x12, 0xFD, 0x45, 0xF0, 0x0C, 0xFD, 0x46, 0xF0, 0x06, 0xFD, 0x48, 0xF0, 0x00, 0xFD, 0x49, 0xF0,
- .byte 0xFA, 0xFC, 0x4A, 0xF0, 0xF3, 0xFC, 0x4B, 0xF0, 0xED, 0xFC, 0x4C, 0xF0, 0xE7, 0xFC, 0x4D, 0xF0,
- .byte 0xE1, 0xFC, 0x4F, 0xF0, 0xDB, 0xFC, 0x50, 0xF0, 0xD5, 0xFC, 0x51, 0xF0, 0xCE, 0xFC, 0x52, 0xF0,
- .byte 0xC8, 0xFC, 0x54, 0xF0, 0xC2, 0xFC, 0x55, 0xF0, 0xBC, 0xFC, 0x56, 0xF0, 0xB6, 0xFC, 0x58, 0xF0,
- .byte 0xB0, 0xFC, 0x59, 0xF0, 0xAA, 0xFC, 0x5A, 0xF0, 0xA3, 0xFC, 0x5B, 0xF0, 0x9D, 0xFC, 0x5D, 0xF0,
- .byte 0x97, 0xFC, 0x5E, 0xF0, 0x91, 0xFC, 0x5F, 0xF0, 0x8B, 0xFC, 0x61, 0xF0, 0x85, 0xFC, 0x62, 0xF0,
- .byte 0x7F, 0xFC, 0x64, 0xF0, 0x78, 0xFC, 0x65, 0xF0, 0x72, 0xFC, 0x66, 0xF0, 0x6C, 0xFC, 0x68, 0xF0,
- .byte 0x66, 0xFC, 0x69, 0xF0, 0x60, 0xFC, 0x6B, 0xF0, 0x5A, 0xFC, 0x6C, 0xF0, 0x54, 0xFC, 0x6D, 0xF0,
- .byte 0x4E, 0xFC, 0x6F, 0xF0, 0x47, 0xFC, 0x70, 0xF0, 0x41, 0xFC, 0x72, 0xF0, 0x3B, 0xFC, 0x73, 0xF0,
- .byte 0x35, 0xFC, 0x75, 0xF0, 0x2F, 0xFC, 0x76, 0xF0, 0x29, 0xFC, 0x78, 0xF0, 0x23, 0xFC, 0x79, 0xF0,
- .byte 0x1D, 0xFC, 0x7B, 0xF0, 0x17, 0xFC, 0x7C, 0xF0, 0x11, 0xFC, 0x7E, 0xF0, 0x0A, 0xFC, 0x7F, 0xF0,
- .byte 0x04, 0xFC, 0x81, 0xF0, 0xFE, 0xFB, 0x83, 0xF0, 0xF8, 0xFB, 0x84, 0xF0, 0xF2, 0xFB, 0x86, 0xF0,
- .byte 0xEC, 0xFB, 0x87, 0xF0, 0xE6, 0xFB, 0x89, 0xF0, 0xE0, 0xFB, 0x8A, 0xF0, 0xDA, 0xFB, 0x8C, 0xF0,
- .byte 0xD4, 0xFB, 0x8E, 0xF0, 0xCE, 0xFB, 0x8F, 0xF0, 0xC8, 0xFB, 0x91, 0xF0, 0xC2, 0xFB, 0x93, 0xF0,
- .byte 0xBC, 0xFB, 0x94, 0xF0, 0xB5, 0xFB, 0x96, 0xF0, 0xAF, 0xFB, 0x98, 0xF0, 0xA9, 0xFB, 0x99, 0xF0,
- .byte 0xA3, 0xFB, 0x9B, 0xF0, 0x9D, 0xFB, 0x9D, 0xF0, 0x97, 0xFB, 0x9F, 0xF0, 0x91, 0xFB, 0xA0, 0xF0,
- .byte 0x8B, 0xFB, 0xA2, 0xF0, 0x85, 0xFB, 0xA4, 0xF0, 0x7F, 0xFB, 0xA6, 0xF0, 0x79, 0xFB, 0xA7, 0xF0,
- .byte 0x73, 0xFB, 0xA9, 0xF0, 0x6D, 0xFB, 0xAB, 0xF0, 0x67, 0xFB, 0xAD, 0xF0, 0x61, 0xFB, 0xAF, 0xF0,
- .byte 0x5B, 0xFB, 0xB0, 0xF0, 0x55, 0xFB, 0xB2, 0xF0, 0x4F, 0xFB, 0xB4, 0xF0, 0x49, 0xFB, 0xB6, 0xF0,
- .byte 0x43, 0xFB, 0xB8, 0xF0, 0x3D, 0xFB, 0xBA, 0xF0, 0x37, 0xFB, 0xBB, 0xF0, 0x31, 0xFB, 0xBD, 0xF0,
- .byte 0x2B, 0xFB, 0xBF, 0xF0, 0x25, 0xFB, 0xC1, 0xF0, 0x1F, 0xFB, 0xC3, 0xF0, 0x19, 0xFB, 0xC5, 0xF0,
- .byte 0x13, 0xFB, 0xC7, 0xF0, 0x0D, 0xFB, 0xC9, 0xF0, 0x07, 0xFB, 0xCB, 0xF0, 0x01, 0xFB, 0xCD, 0xF0,
- .byte 0xFB, 0xFA, 0xCF, 0xF0, 0xF5, 0xFA, 0xD1, 0xF0, 0xEF, 0xFA, 0xD3, 0xF0, 0xE9, 0xFA, 0xD5, 0xF0,
- .byte 0xE3, 0xFA, 0xD7, 0xF0, 0xDD, 0xFA, 0xD9, 0xF0, 0xD7, 0xFA, 0xDB, 0xF0, 0xD1, 0xFA, 0xDD, 0xF0,
- .byte 0xCC, 0xFA, 0xDF, 0xF0, 0xC6, 0xFA, 0xE1, 0xF0, 0xC0, 0xFA, 0xE3, 0xF0, 0xBA, 0xFA, 0xE5, 0xF0,
- .byte 0xB4, 0xFA, 0xE7, 0xF0, 0xAE, 0xFA, 0xE9, 0xF0, 0xA8, 0xFA, 0xEB, 0xF0, 0xA2, 0xFA, 0xED, 0xF0,
- .byte 0x9C, 0xFA, 0xEF, 0xF0, 0x96, 0xFA, 0xF2, 0xF0, 0x90, 0xFA, 0xF4, 0xF0, 0x8A, 0xFA, 0xF6, 0xF0,
- .byte 0x84, 0xFA, 0xF8, 0xF0, 0x7F, 0xFA, 0xFA, 0xF0, 0x79, 0xFA, 0xFC, 0xF0, 0x73, 0xFA, 0xFE, 0xF0,
- .byte 0x6D, 0xFA, 0x01, 0xF1, 0x67, 0xFA, 0x03, 0xF1, 0x61, 0xFA, 0x05, 0xF1, 0x5B, 0xFA, 0x07, 0xF1,
- .byte 0x55, 0xFA, 0x09, 0xF1, 0x4F, 0xFA, 0x0C, 0xF1, 0x4A, 0xFA, 0x0E, 0xF1, 0x44, 0xFA, 0x10, 0xF1,
- .byte 0x3E, 0xFA, 0x12, 0xF1, 0x38, 0xFA, 0x15, 0xF1, 0x32, 0xFA, 0x17, 0xF1, 0x2C, 0xFA, 0x19, 0xF1,
- .byte 0x26, 0xFA, 0x1C, 0xF1, 0x21, 0xFA, 0x1E, 0xF1, 0x1B, 0xFA, 0x20, 0xF1, 0x15, 0xFA, 0x23, 0xF1,
- .byte 0x0F, 0xFA, 0x25, 0xF1, 0x09, 0xFA, 0x27, 0xF1, 0x03, 0xFA, 0x2A, 0xF1, 0xFE, 0xF9, 0x2C, 0xF1,
- .byte 0xF8, 0xF9, 0x2E, 0xF1, 0xF2, 0xF9, 0x31, 0xF1, 0xEC, 0xF9, 0x33, 0xF1, 0xE6, 0xF9, 0x35, 0xF1,
- .byte 0xE1, 0xF9, 0x38, 0xF1, 0xDB, 0xF9, 0x3A, 0xF1, 0xD5, 0xF9, 0x3D, 0xF1, 0xCF, 0xF9, 0x3F, 0xF1,
- .byte 0xC9, 0xF9, 0x41, 0xF1, 0xC4, 0xF9, 0x44, 0xF1, 0xBE, 0xF9, 0x46, 0xF1, 0xB8, 0xF9, 0x49, 0xF1,
- .byte 0xB2, 0xF9, 0x4B, 0xF1, 0xAC, 0xF9, 0x4E, 0xF1, 0xA7, 0xF9, 0x50, 0xF1, 0xA1, 0xF9, 0x53, 0xF1,
- .byte 0x9B, 0xF9, 0x55, 0xF1, 0x95, 0xF9, 0x58, 0xF1, 0x90, 0xF9, 0x5A, 0xF1, 0x8A, 0xF9, 0x5D, 0xF1,
- .byte 0x84, 0xF9, 0x5F, 0xF1, 0x7E, 0xF9, 0x62, 0xF1, 0x79, 0xF9, 0x65, 0xF1, 0x73, 0xF9, 0x67, 0xF1,
- .byte 0x6D, 0xF9, 0x6A, 0xF1, 0x67, 0xF9, 0x6C, 0xF1, 0x62, 0xF9, 0x6F, 0xF1, 0x5C, 0xF9, 0x71, 0xF1,
- .byte 0x56, 0xF9, 0x74, 0xF1, 0x51, 0xF9, 0x77, 0xF1, 0x4B, 0xF9, 0x79, 0xF1, 0x45, 0xF9, 0x7C, 0xF1,
- .byte 0x3F, 0xF9, 0x7F, 0xF1, 0x3A, 0xF9, 0x81, 0xF1, 0x34, 0xF9, 0x84, 0xF1, 0x2E, 0xF9, 0x87, 0xF1,
- .byte 0x29, 0xF9, 0x89, 0xF1, 0x23, 0xF9, 0x8C, 0xF1, 0x1D, 0xF9, 0x8F, 0xF1, 0x18, 0xF9, 0x91, 0xF1,
- .byte 0x12, 0xF9, 0x94, 0xF1, 0x0C, 0xF9, 0x97, 0xF1, 0x07, 0xF9, 0x9A, 0xF1, 0x01, 0xF9, 0x9C, 0xF1,
- .byte 0xFB, 0xF8, 0x9F, 0xF1, 0xF6, 0xF8, 0xA2, 0xF1, 0xF0, 0xF8, 0xA5, 0xF1, 0xEB, 0xF8, 0xA7, 0xF1,
- .byte 0xE5, 0xF8, 0xAA, 0xF1, 0xDF, 0xF8, 0xAD, 0xF1, 0xDA, 0xF8, 0xB0, 0xF1, 0xD4, 0xF8, 0xB3, 0xF1,
- .byte 0xCE, 0xF8, 0xB5, 0xF1, 0xC9, 0xF8, 0xB8, 0xF1, 0xC3, 0xF8, 0xBB, 0xF1, 0xBE, 0xF8, 0xBE, 0xF1,
- .byte 0xB8, 0xF8, 0xC1, 0xF1, 0xB2, 0xF8, 0xC4, 0xF1, 0xAD, 0xF8, 0xC6, 0xF1, 0xA7, 0xF8, 0xC9, 0xF1,
- .byte 0xA2, 0xF8, 0xCC, 0xF1, 0x9C, 0xF8, 0xCF, 0xF1, 0x96, 0xF8, 0xD2, 0xF1, 0x91, 0xF8, 0xD5, 0xF1,
- .byte 0x8B, 0xF8, 0xD8, 0xF1, 0x86, 0xF8, 0xDB, 0xF1, 0x80, 0xF8, 0xDE, 0xF1, 0x7B, 0xF8, 0xE1, 0xF1,
- .byte 0x75, 0xF8, 0xE4, 0xF1, 0x70, 0xF8, 0xE7, 0xF1, 0x6A, 0xF8, 0xEA, 0xF1, 0x65, 0xF8, 0xED, 0xF1,
- .byte 0x5F, 0xF8, 0xF0, 0xF1, 0x5A, 0xF8, 0xF3, 0xF1, 0x54, 0xF8, 0xF6, 0xF1, 0x4E, 0xF8, 0xF9, 0xF1,
- .byte 0x49, 0xF8, 0xFC, 0xF1, 0x43, 0xF8, 0xFF, 0xF1, 0x3E, 0xF8, 0x02, 0xF2, 0x38, 0xF8, 0x05, 0xF2,
- .byte 0x33, 0xF8, 0x08, 0xF2, 0x2E, 0xF8, 0x0B, 0xF2, 0x28, 0xF8, 0x0E, 0xF2, 0x23, 0xF8, 0x11, 0xF2,
- .byte 0x1D, 0xF8, 0x14, 0xF2, 0x18, 0xF8, 0x17, 0xF2, 0x12, 0xF8, 0x1A, 0xF2, 0x0D, 0xF8, 0x1D, 0xF2,
- .byte 0x07, 0xF8, 0x21, 0xF2, 0x02, 0xF8, 0x24, 0xF2, 0xFC, 0xF7, 0x27, 0xF2, 0xF7, 0xF7, 0x2A, 0xF2,
- .byte 0xF2, 0xF7, 0x2D, 0xF2, 0xEC, 0xF7, 0x30, 0xF2, 0xE7, 0xF7, 0x34, 0xF2, 0xE1, 0xF7, 0x37, 0xF2,
- .byte 0xDC, 0xF7, 0x3A, 0xF2, 0xD6, 0xF7, 0x3D, 0xF2, 0xD1, 0xF7, 0x40, 0xF2, 0xCC, 0xF7, 0x44, 0xF2,
- .byte 0xC6, 0xF7, 0x47, 0xF2, 0xC1, 0xF7, 0x4A, 0xF2, 0xBB, 0xF7, 0x4D, 0xF2, 0xB6, 0xF7, 0x50, 0xF2,
- .byte 0xB1, 0xF7, 0x54, 0xF2, 0xAB, 0xF7, 0x57, 0xF2, 0xA6, 0xF7, 0x5A, 0xF2, 0xA1, 0xF7, 0x5E, 0xF2,
- .byte 0x9B, 0xF7, 0x61, 0xF2, 0x96, 0xF7, 0x64, 0xF2, 0x91, 0xF7, 0x67, 0xF2, 0x8B, 0xF7, 0x6B, 0xF2,
- .byte 0x86, 0xF7, 0x6E, 0xF2, 0x81, 0xF7, 0x71, 0xF2, 0x7B, 0xF7, 0x75, 0xF2, 0x76, 0xF7, 0x78, 0xF2,
- .byte 0x71, 0xF7, 0x7B, 0xF2, 0x6B, 0xF7, 0x7F, 0xF2, 0x66, 0xF7, 0x82, 0xF2, 0x61, 0xF7, 0x86, 0xF2,
- .byte 0x5B, 0xF7, 0x89, 0xF2, 0x56, 0xF7, 0x8C, 0xF2, 0x51, 0xF7, 0x90, 0xF2, 0x4C, 0xF7, 0x93, 0xF2,
- .byte 0x46, 0xF7, 0x97, 0xF2, 0x41, 0xF7, 0x9A, 0xF2, 0x3C, 0xF7, 0x9E, 0xF2, 0x37, 0xF7, 0xA1, 0xF2,
- .byte 0x31, 0xF7, 0xA4, 0xF2, 0x2C, 0xF7, 0xA8, 0xF2, 0x27, 0xF7, 0xAB, 0xF2, 0x22, 0xF7, 0xAF, 0xF2,
- .byte 0x1C, 0xF7, 0xB2, 0xF2, 0x17, 0xF7, 0xB6, 0xF2, 0x12, 0xF7, 0xB9, 0xF2, 0x0D, 0xF7, 0xBD, 0xF2,
- .byte 0x08, 0xF7, 0xC0, 0xF2, 0x02, 0xF7, 0xC4, 0xF2, 0xFD, 0xF6, 0xC7, 0xF2, 0xF8, 0xF6, 0xCB, 0xF2,
- .byte 0xF3, 0xF6, 0xCE, 0xF2, 0xEE, 0xF6, 0xD2, 0xF2, 0xE8, 0xF6, 0xD6, 0xF2, 0xE3, 0xF6, 0xD9, 0xF2,
- .byte 0xDE, 0xF6, 0xDD, 0xF2, 0xD9, 0xF6, 0xE0, 0xF2, 0xD4, 0xF6, 0xE4, 0xF2, 0xCF, 0xF6, 0xE8, 0xF2,
- .byte 0xC9, 0xF6, 0xEB, 0xF2, 0xC4, 0xF6, 0xEF, 0xF2, 0xBF, 0xF6, 0xF2, 0xF2, 0xBA, 0xF6, 0xF6, 0xF2,
- .byte 0xB5, 0xF6, 0xFA, 0xF2, 0xB0, 0xF6, 0xFD, 0xF2, 0xAB, 0xF6, 0x01, 0xF3, 0xA6, 0xF6, 0x05, 0xF3,
- .byte 0xA1, 0xF6, 0x08, 0xF3, 0x9B, 0xF6, 0x0C, 0xF3, 0x96, 0xF6, 0x10, 0xF3, 0x91, 0xF6, 0x13, 0xF3,
- .byte 0x8C, 0xF6, 0x17, 0xF3, 0x87, 0xF6, 0x1B, 0xF3, 0x82, 0xF6, 0x1F, 0xF3, 0x7D, 0xF6, 0x22, 0xF3,
- .byte 0x78, 0xF6, 0x26, 0xF3, 0x73, 0xF6, 0x2A, 0xF3, 0x6E, 0xF6, 0x2E, 0xF3, 0x69, 0xF6, 0x31, 0xF3,
- .byte 0x64, 0xF6, 0x35, 0xF3, 0x5F, 0xF6, 0x39, 0xF3, 0x5A, 0xF6, 0x3D, 0xF3, 0x55, 0xF6, 0x40, 0xF3,
- .byte 0x50, 0xF6, 0x44, 0xF3, 0x4B, 0xF6, 0x48, 0xF3, 0x46, 0xF6, 0x4C, 0xF3, 0x41, 0xF6, 0x50, 0xF3,
- .byte 0x3C, 0xF6, 0x54, 0xF3, 0x37, 0xF6, 0x57, 0xF3, 0x32, 0xF6, 0x5B, 0xF3, 0x2D, 0xF6, 0x5F, 0xF3,
- .byte 0x28, 0xF6, 0x63, 0xF3, 0x23, 0xF6, 0x67, 0xF3, 0x1E, 0xF6, 0x6B, 0xF3, 0x19, 0xF6, 0x6F, 0xF3,
- .byte 0x14, 0xF6, 0x72, 0xF3, 0x0F, 0xF6, 0x76, 0xF3, 0x0A, 0xF6, 0x7A, 0xF3, 0x05, 0xF6, 0x7E, 0xF3,
- .byte 0x01, 0xF6, 0x82, 0xF3, 0xFC, 0xF5, 0x86, 0xF3, 0xF7, 0xF5, 0x8A, 0xF3, 0xF2, 0xF5, 0x8E, 0xF3,
- .byte 0xED, 0xF5, 0x92, 0xF3, 0xE8, 0xF5, 0x96, 0xF3, 0xE3, 0xF5, 0x9A, 0xF3, 0xDE, 0xF5, 0x9E, 0xF3,
- .byte 0xDA, 0xF5, 0xA2, 0xF3, 0xD5, 0xF5, 0xA6, 0xF3, 0xD0, 0xF5, 0xAA, 0xF3, 0xCB, 0xF5, 0xAE, 0xF3,
- .byte 0xC6, 0xF5, 0xB2, 0xF3, 0xC1, 0xF5, 0xB6, 0xF3, 0xBC, 0xF5, 0xBA, 0xF3, 0xB8, 0xF5, 0xBE, 0xF3,
- .byte 0xB3, 0xF5, 0xC2, 0xF3, 0xAE, 0xF5, 0xC6, 0xF3, 0xA9, 0xF5, 0xCA, 0xF3, 0xA4, 0xF5, 0xCE, 0xF3,
- .byte 0xA0, 0xF5, 0xD2, 0xF3, 0x9B, 0xF5, 0xD6, 0xF3, 0x96, 0xF5, 0xDA, 0xF3, 0x91, 0xF5, 0xDE, 0xF3,
- .byte 0x8D, 0xF5, 0xE2, 0xF3, 0x88, 0xF5, 0xE7, 0xF3, 0x83, 0xF5, 0xEB, 0xF3, 0x7E, 0xF5, 0xEF, 0xF3,
- .byte 0x7A, 0xF5, 0xF3, 0xF3, 0x75, 0xF5, 0xF7, 0xF3, 0x70, 0xF5, 0xFB, 0xF3, 0x6B, 0xF5, 0xFF, 0xF3,
- .byte 0x67, 0xF5, 0x04, 0xF4, 0x62, 0xF5, 0x08, 0xF4, 0x5D, 0xF5, 0x0C, 0xF4, 0x59, 0xF5, 0x10, 0xF4,
- .byte 0x54, 0xF5, 0x14, 0xF4, 0x4F, 0xF5, 0x18, 0xF4, 0x4B, 0xF5, 0x1D, 0xF4, 0x46, 0xF5, 0x21, 0xF4,
- .byte 0x41, 0xF5, 0x25, 0xF4, 0x3D, 0xF5, 0x29, 0xF4, 0x38, 0xF5, 0x2E, 0xF4, 0x33, 0xF5, 0x32, 0xF4,
- .byte 0x2F, 0xF5, 0x36, 0xF4, 0x2A, 0xF5, 0x3A, 0xF4, 0x25, 0xF5, 0x3F, 0xF4, 0x21, 0xF5, 0x43, 0xF4,
- .byte 0x1C, 0xF5, 0x47, 0xF4, 0x18, 0xF5, 0x4B, 0xF4, 0x13, 0xF5, 0x50, 0xF4, 0x0E, 0xF5, 0x54, 0xF4,
- .byte 0x0A, 0xF5, 0x58, 0xF4, 0x05, 0xF5, 0x5D, 0xF4, 0x01, 0xF5, 0x61, 0xF4, 0xFC, 0xF4, 0x65, 0xF4,
- .byte 0xF8, 0xF4, 0x69, 0xF4, 0xF3, 0xF4, 0x6E, 0xF4, 0xEF, 0xF4, 0x72, 0xF4, 0xEA, 0xF4, 0x77, 0xF4,
- .byte 0xE5, 0xF4, 0x7B, 0xF4, 0xE1, 0xF4, 0x7F, 0xF4, 0xDC, 0xF4, 0x84, 0xF4, 0xD8, 0xF4, 0x88, 0xF4,
- .byte 0xD3, 0xF4, 0x8C, 0xF4, 0xCF, 0xF4, 0x91, 0xF4, 0xCA, 0xF4, 0x95, 0xF4, 0xC6, 0xF4, 0x9A, 0xF4,
- .byte 0xC2, 0xF4, 0x9E, 0xF4, 0xBD, 0xF4, 0xA2, 0xF4, 0xB9, 0xF4, 0xA7, 0xF4, 0xB4, 0xF4, 0xAB, 0xF4,
- .byte 0xB0, 0xF4, 0xB0, 0xF4, 0xAB, 0xF4, 0xB4, 0xF4, 0xA7, 0xF4, 0xB9, 0xF4, 0xA2, 0xF4, 0xBD, 0xF4,
- .byte 0x9E, 0xF4, 0xC2, 0xF4, 0x9A, 0xF4, 0xC6, 0xF4, 0x95, 0xF4, 0xCA, 0xF4, 0x91, 0xF4, 0xCF, 0xF4,
- .byte 0x8C, 0xF4, 0xD3, 0xF4, 0x88, 0xF4, 0xD8, 0xF4, 0x84, 0xF4, 0xDC, 0xF4, 0x7F, 0xF4, 0xE1, 0xF4,
- .byte 0x7B, 0xF4, 0xE5, 0xF4, 0x77, 0xF4, 0xEA, 0xF4, 0x72, 0xF4, 0xEF, 0xF4, 0x6E, 0xF4, 0xF3, 0xF4,
- .byte 0x69, 0xF4, 0xF8, 0xF4, 0x65, 0xF4, 0xFC, 0xF4, 0x61, 0xF4, 0x01, 0xF5, 0x5D, 0xF4, 0x05, 0xF5,
- .byte 0x58, 0xF4, 0x0A, 0xF5, 0x54, 0xF4, 0x0E, 0xF5, 0x50, 0xF4, 0x13, 0xF5, 0x4B, 0xF4, 0x18, 0xF5,
- .byte 0x47, 0xF4, 0x1C, 0xF5, 0x43, 0xF4, 0x21, 0xF5, 0x3F, 0xF4, 0x25, 0xF5, 0x3A, 0xF4, 0x2A, 0xF5,
- .byte 0x36, 0xF4, 0x2F, 0xF5, 0x32, 0xF4, 0x33, 0xF5, 0x2E, 0xF4, 0x38, 0xF5, 0x29, 0xF4, 0x3D, 0xF5,
- .byte 0x25, 0xF4, 0x41, 0xF5, 0x21, 0xF4, 0x46, 0xF5, 0x1D, 0xF4, 0x4B, 0xF5, 0x18, 0xF4, 0x4F, 0xF5,
- .byte 0x14, 0xF4, 0x54, 0xF5, 0x10, 0xF4, 0x59, 0xF5, 0x0C, 0xF4, 0x5D, 0xF5, 0x08, 0xF4, 0x62, 0xF5,
- .byte 0x04, 0xF4, 0x67, 0xF5, 0xFF, 0xF3, 0x6B, 0xF5, 0xFB, 0xF3, 0x70, 0xF5, 0xF7, 0xF3, 0x75, 0xF5,
- .byte 0xF3, 0xF3, 0x7A, 0xF5, 0xEF, 0xF3, 0x7E, 0xF5, 0xEB, 0xF3, 0x83, 0xF5, 0xE7, 0xF3, 0x88, 0xF5,
- .byte 0xE2, 0xF3, 0x8D, 0xF5, 0xDE, 0xF3, 0x91, 0xF5, 0xDA, 0xF3, 0x96, 0xF5, 0xD6, 0xF3, 0x9B, 0xF5,
- .byte 0xD2, 0xF3, 0xA0, 0xF5, 0xCE, 0xF3, 0xA4, 0xF5, 0xCA, 0xF3, 0xA9, 0xF5, 0xC6, 0xF3, 0xAE, 0xF5,
- .byte 0xC2, 0xF3, 0xB3, 0xF5, 0xBE, 0xF3, 0xB8, 0xF5, 0xBA, 0xF3, 0xBC, 0xF5, 0xB6, 0xF3, 0xC1, 0xF5,
- .byte 0xB2, 0xF3, 0xC6, 0xF5, 0xAE, 0xF3, 0xCB, 0xF5, 0xAA, 0xF3, 0xD0, 0xF5, 0xA6, 0xF3, 0xD5, 0xF5,
- .byte 0xA2, 0xF3, 0xDA, 0xF5, 0x9E, 0xF3, 0xDE, 0xF5, 0x9A, 0xF3, 0xE3, 0xF5, 0x96, 0xF3, 0xE8, 0xF5,
- .byte 0x92, 0xF3, 0xED, 0xF5, 0x8E, 0xF3, 0xF2, 0xF5, 0x8A, 0xF3, 0xF7, 0xF5, 0x86, 0xF3, 0xFC, 0xF5,
- .byte 0x82, 0xF3, 0x01, 0xF6, 0x7E, 0xF3, 0x05, 0xF6, 0x7A, 0xF3, 0x0A, 0xF6, 0x76, 0xF3, 0x0F, 0xF6,
- .byte 0x72, 0xF3, 0x14, 0xF6, 0x6F, 0xF3, 0x19, 0xF6, 0x6B, 0xF3, 0x1E, 0xF6, 0x67, 0xF3, 0x23, 0xF6,
- .byte 0x63, 0xF3, 0x28, 0xF6, 0x5F, 0xF3, 0x2D, 0xF6, 0x5B, 0xF3, 0x32, 0xF6, 0x57, 0xF3, 0x37, 0xF6,
- .byte 0x54, 0xF3, 0x3C, 0xF6, 0x50, 0xF3, 0x41, 0xF6, 0x4C, 0xF3, 0x46, 0xF6, 0x48, 0xF3, 0x4B, 0xF6,
- .byte 0x44, 0xF3, 0x50, 0xF6, 0x40, 0xF3, 0x55, 0xF6, 0x3D, 0xF3, 0x5A, 0xF6, 0x39, 0xF3, 0x5F, 0xF6,
- .byte 0x35, 0xF3, 0x64, 0xF6, 0x31, 0xF3, 0x69, 0xF6, 0x2E, 0xF3, 0x6E, 0xF6, 0x2A, 0xF3, 0x73, 0xF6,
- .byte 0x26, 0xF3, 0x78, 0xF6, 0x22, 0xF3, 0x7D, 0xF6, 0x1F, 0xF3, 0x82, 0xF6, 0x1B, 0xF3, 0x87, 0xF6,
- .byte 0x17, 0xF3, 0x8C, 0xF6, 0x13, 0xF3, 0x91, 0xF6, 0x10, 0xF3, 0x96, 0xF6, 0x0C, 0xF3, 0x9B, 0xF6,
- .byte 0x08, 0xF3, 0xA1, 0xF6, 0x05, 0xF3, 0xA6, 0xF6, 0x01, 0xF3, 0xAB, 0xF6, 0xFD, 0xF2, 0xB0, 0xF6,
- .byte 0xFA, 0xF2, 0xB5, 0xF6, 0xF6, 0xF2, 0xBA, 0xF6, 0xF2, 0xF2, 0xBF, 0xF6, 0xEF, 0xF2, 0xC4, 0xF6,
- .byte 0xEB, 0xF2, 0xC9, 0xF6, 0xE8, 0xF2, 0xCF, 0xF6, 0xE4, 0xF2, 0xD4, 0xF6, 0xE0, 0xF2, 0xD9, 0xF6,
- .byte 0xDD, 0xF2, 0xDE, 0xF6, 0xD9, 0xF2, 0xE3, 0xF6, 0xD6, 0xF2, 0xE8, 0xF6, 0xD2, 0xF2, 0xEE, 0xF6,
- .byte 0xCE, 0xF2, 0xF3, 0xF6, 0xCB, 0xF2, 0xF8, 0xF6, 0xC7, 0xF2, 0xFD, 0xF6, 0xC4, 0xF2, 0x02, 0xF7,
- .byte 0xC0, 0xF2, 0x08, 0xF7, 0xBD, 0xF2, 0x0D, 0xF7, 0xB9, 0xF2, 0x12, 0xF7, 0xB6, 0xF2, 0x17, 0xF7,
- .byte 0xB2, 0xF2, 0x1C, 0xF7, 0xAF, 0xF2, 0x22, 0xF7, 0xAB, 0xF2, 0x27, 0xF7, 0xA8, 0xF2, 0x2C, 0xF7,
- .byte 0xA4, 0xF2, 0x31, 0xF7, 0xA1, 0xF2, 0x37, 0xF7, 0x9E, 0xF2, 0x3C, 0xF7, 0x9A, 0xF2, 0x41, 0xF7,
- .byte 0x97, 0xF2, 0x46, 0xF7, 0x93, 0xF2, 0x4C, 0xF7, 0x90, 0xF2, 0x51, 0xF7, 0x8C, 0xF2, 0x56, 0xF7,
- .byte 0x89, 0xF2, 0x5B, 0xF7, 0x86, 0xF2, 0x61, 0xF7, 0x82, 0xF2, 0x66, 0xF7, 0x7F, 0xF2, 0x6B, 0xF7,
- .byte 0x7B, 0xF2, 0x71, 0xF7, 0x78, 0xF2, 0x76, 0xF7, 0x75, 0xF2, 0x7B, 0xF7, 0x71, 0xF2, 0x81, 0xF7,
- .byte 0x6E, 0xF2, 0x86, 0xF7, 0x6B, 0xF2, 0x8B, 0xF7, 0x67, 0xF2, 0x91, 0xF7, 0x64, 0xF2, 0x96, 0xF7,
- .byte 0x61, 0xF2, 0x9B, 0xF7, 0x5E, 0xF2, 0xA1, 0xF7, 0x5A, 0xF2, 0xA6, 0xF7, 0x57, 0xF2, 0xAB, 0xF7,
- .byte 0x54, 0xF2, 0xB1, 0xF7, 0x50, 0xF2, 0xB6, 0xF7, 0x4D, 0xF2, 0xBB, 0xF7, 0x4A, 0xF2, 0xC1, 0xF7,
- .byte 0x47, 0xF2, 0xC6, 0xF7, 0x44, 0xF2, 0xCC, 0xF7, 0x40, 0xF2, 0xD1, 0xF7, 0x3D, 0xF2, 0xD6, 0xF7,
- .byte 0x3A, 0xF2, 0xDC, 0xF7, 0x37, 0xF2, 0xE1, 0xF7, 0x34, 0xF2, 0xE7, 0xF7, 0x30, 0xF2, 0xEC, 0xF7,
- .byte 0x2D, 0xF2, 0xF2, 0xF7, 0x2A, 0xF2, 0xF7, 0xF7, 0x27, 0xF2, 0xFC, 0xF7, 0x24, 0xF2, 0x02, 0xF8,
- .byte 0x21, 0xF2, 0x07, 0xF8, 0x1D, 0xF2, 0x0D, 0xF8, 0x1A, 0xF2, 0x12, 0xF8, 0x17, 0xF2, 0x18, 0xF8,
- .byte 0x14, 0xF2, 0x1D, 0xF8, 0x11, 0xF2, 0x23, 0xF8, 0x0E, 0xF2, 0x28, 0xF8, 0x0B, 0xF2, 0x2E, 0xF8,
- .byte 0x08, 0xF2, 0x33, 0xF8, 0x05, 0xF2, 0x38, 0xF8, 0x02, 0xF2, 0x3E, 0xF8, 0xFF, 0xF1, 0x43, 0xF8,
- .byte 0xFC, 0xF1, 0x49, 0xF8, 0xF9, 0xF1, 0x4E, 0xF8, 0xF6, 0xF1, 0x54, 0xF8, 0xF3, 0xF1, 0x5A, 0xF8,
- .byte 0xF0, 0xF1, 0x5F, 0xF8, 0xED, 0xF1, 0x65, 0xF8, 0xEA, 0xF1, 0x6A, 0xF8, 0xE7, 0xF1, 0x70, 0xF8,
- .byte 0xE4, 0xF1, 0x75, 0xF8, 0xE1, 0xF1, 0x7B, 0xF8, 0xDE, 0xF1, 0x80, 0xF8, 0xDB, 0xF1, 0x86, 0xF8,
- .byte 0xD8, 0xF1, 0x8B, 0xF8, 0xD5, 0xF1, 0x91, 0xF8, 0xD2, 0xF1, 0x96, 0xF8, 0xCF, 0xF1, 0x9C, 0xF8,
- .byte 0xCC, 0xF1, 0xA2, 0xF8, 0xC9, 0xF1, 0xA7, 0xF8, 0xC6, 0xF1, 0xAD, 0xF8, 0xC4, 0xF1, 0xB2, 0xF8,
- .byte 0xC1, 0xF1, 0xB8, 0xF8, 0xBE, 0xF1, 0xBE, 0xF8, 0xBB, 0xF1, 0xC3, 0xF8, 0xB8, 0xF1, 0xC9, 0xF8,
- .byte 0xB5, 0xF1, 0xCE, 0xF8, 0xB3, 0xF1, 0xD4, 0xF8, 0xB0, 0xF1, 0xDA, 0xF8, 0xAD, 0xF1, 0xDF, 0xF8,
- .byte 0xAA, 0xF1, 0xE5, 0xF8, 0xA7, 0xF1, 0xEB, 0xF8, 0xA5, 0xF1, 0xF0, 0xF8, 0xA2, 0xF1, 0xF6, 0xF8,
- .byte 0x9F, 0xF1, 0xFB, 0xF8, 0x9C, 0xF1, 0x01, 0xF9, 0x9A, 0xF1, 0x07, 0xF9, 0x97, 0xF1, 0x0C, 0xF9,
- .byte 0x94, 0xF1, 0x12, 0xF9, 0x91, 0xF1, 0x18, 0xF9, 0x8F, 0xF1, 0x1D, 0xF9, 0x8C, 0xF1, 0x23, 0xF9,
- .byte 0x89, 0xF1, 0x29, 0xF9, 0x87, 0xF1, 0x2E, 0xF9, 0x84, 0xF1, 0x34, 0xF9, 0x81, 0xF1, 0x3A, 0xF9,
- .byte 0x7F, 0xF1, 0x3F, 0xF9, 0x7C, 0xF1, 0x45, 0xF9, 0x79, 0xF1, 0x4B, 0xF9, 0x77, 0xF1, 0x51, 0xF9,
- .byte 0x74, 0xF1, 0x56, 0xF9, 0x71, 0xF1, 0x5C, 0xF9, 0x6F, 0xF1, 0x62, 0xF9, 0x6C, 0xF1, 0x67, 0xF9,
- .byte 0x6A, 0xF1, 0x6D, 0xF9, 0x67, 0xF1, 0x73, 0xF9, 0x65, 0xF1, 0x79, 0xF9, 0x62, 0xF1, 0x7E, 0xF9,
- .byte 0x5F, 0xF1, 0x84, 0xF9, 0x5D, 0xF1, 0x8A, 0xF9, 0x5A, 0xF1, 0x90, 0xF9, 0x58, 0xF1, 0x95, 0xF9,
- .byte 0x55, 0xF1, 0x9B, 0xF9, 0x53, 0xF1, 0xA1, 0xF9, 0x50, 0xF1, 0xA7, 0xF9, 0x4E, 0xF1, 0xAC, 0xF9,
- .byte 0x4B, 0xF1, 0xB2, 0xF9, 0x49, 0xF1, 0xB8, 0xF9, 0x46, 0xF1, 0xBE, 0xF9, 0x44, 0xF1, 0xC4, 0xF9,
- .byte 0x41, 0xF1, 0xC9, 0xF9, 0x3F, 0xF1, 0xCF, 0xF9, 0x3D, 0xF1, 0xD5, 0xF9, 0x3A, 0xF1, 0xDB, 0xF9,
- .byte 0x38, 0xF1, 0xE1, 0xF9, 0x35, 0xF1, 0xE6, 0xF9, 0x33, 0xF1, 0xEC, 0xF9, 0x31, 0xF1, 0xF2, 0xF9,
- .byte 0x2E, 0xF1, 0xF8, 0xF9, 0x2C, 0xF1, 0xFE, 0xF9, 0x2A, 0xF1, 0x03, 0xFA, 0x27, 0xF1, 0x09, 0xFA,
- .byte 0x25, 0xF1, 0x0F, 0xFA, 0x23, 0xF1, 0x15, 0xFA, 0x20, 0xF1, 0x1B, 0xFA, 0x1E, 0xF1, 0x21, 0xFA,
- .byte 0x1C, 0xF1, 0x26, 0xFA, 0x19, 0xF1, 0x2C, 0xFA, 0x17, 0xF1, 0x32, 0xFA, 0x15, 0xF1, 0x38, 0xFA,
- .byte 0x12, 0xF1, 0x3E, 0xFA, 0x10, 0xF1, 0x44, 0xFA, 0x0E, 0xF1, 0x4A, 0xFA, 0x0C, 0xF1, 0x4F, 0xFA,
- .byte 0x09, 0xF1, 0x55, 0xFA, 0x07, 0xF1, 0x5B, 0xFA, 0x05, 0xF1, 0x61, 0xFA, 0x03, 0xF1, 0x67, 0xFA,
- .byte 0x01, 0xF1, 0x6D, 0xFA, 0xFE, 0xF0, 0x73, 0xFA, 0xFC, 0xF0, 0x79, 0xFA, 0xFA, 0xF0, 0x7F, 0xFA,
- .byte 0xF8, 0xF0, 0x84, 0xFA, 0xF6, 0xF0, 0x8A, 0xFA, 0xF4, 0xF0, 0x90, 0xFA, 0xF2, 0xF0, 0x96, 0xFA,
- .byte 0xEF, 0xF0, 0x9C, 0xFA, 0xED, 0xF0, 0xA2, 0xFA, 0xEB, 0xF0, 0xA8, 0xFA, 0xE9, 0xF0, 0xAE, 0xFA,
- .byte 0xE7, 0xF0, 0xB4, 0xFA, 0xE5, 0xF0, 0xBA, 0xFA, 0xE3, 0xF0, 0xC0, 0xFA, 0xE1, 0xF0, 0xC6, 0xFA,
- .byte 0xDF, 0xF0, 0xCC, 0xFA, 0xDD, 0xF0, 0xD1, 0xFA, 0xDB, 0xF0, 0xD7, 0xFA, 0xD9, 0xF0, 0xDD, 0xFA,
- .byte 0xD7, 0xF0, 0xE3, 0xFA, 0xD5, 0xF0, 0xE9, 0xFA, 0xD3, 0xF0, 0xEF, 0xFA, 0xD1, 0xF0, 0xF5, 0xFA,
- .byte 0xCF, 0xF0, 0xFB, 0xFA, 0xCD, 0xF0, 0x01, 0xFB, 0xCB, 0xF0, 0x07, 0xFB, 0xC9, 0xF0, 0x0D, 0xFB,
- .byte 0xC7, 0xF0, 0x13, 0xFB, 0xC5, 0xF0, 0x19, 0xFB, 0xC3, 0xF0, 0x1F, 0xFB, 0xC1, 0xF0, 0x25, 0xFB,
- .byte 0xBF, 0xF0, 0x2B, 0xFB, 0xBD, 0xF0, 0x31, 0xFB, 0xBB, 0xF0, 0x37, 0xFB, 0xBA, 0xF0, 0x3D, 0xFB,
- .byte 0xB8, 0xF0, 0x43, 0xFB, 0xB6, 0xF0, 0x49, 0xFB, 0xB4, 0xF0, 0x4F, 0xFB, 0xB2, 0xF0, 0x55, 0xFB,
- .byte 0xB0, 0xF0, 0x5B, 0xFB, 0xAF, 0xF0, 0x61, 0xFB, 0xAD, 0xF0, 0x67, 0xFB, 0xAB, 0xF0, 0x6D, 0xFB,
- .byte 0xA9, 0xF0, 0x73, 0xFB, 0xA7, 0xF0, 0x79, 0xFB, 0xA6, 0xF0, 0x7F, 0xFB, 0xA4, 0xF0, 0x85, 0xFB,
- .byte 0xA2, 0xF0, 0x8B, 0xFB, 0xA0, 0xF0, 0x91, 0xFB, 0x9F, 0xF0, 0x97, 0xFB, 0x9D, 0xF0, 0x9D, 0xFB,
- .byte 0x9B, 0xF0, 0xA3, 0xFB, 0x99, 0xF0, 0xA9, 0xFB, 0x98, 0xF0, 0xAF, 0xFB, 0x96, 0xF0, 0xB5, 0xFB,
- .byte 0x94, 0xF0, 0xBC, 0xFB, 0x93, 0xF0, 0xC2, 0xFB, 0x91, 0xF0, 0xC8, 0xFB, 0x8F, 0xF0, 0xCE, 0xFB,
- .byte 0x8E, 0xF0, 0xD4, 0xFB, 0x8C, 0xF0, 0xDA, 0xFB, 0x8A, 0xF0, 0xE0, 0xFB, 0x89, 0xF0, 0xE6, 0xFB,
- .byte 0x87, 0xF0, 0xEC, 0xFB, 0x86, 0xF0, 0xF2, 0xFB, 0x84, 0xF0, 0xF8, 0xFB, 0x83, 0xF0, 0xFE, 0xFB,
- .byte 0x81, 0xF0, 0x04, 0xFC, 0x7F, 0xF0, 0x0A, 0xFC, 0x7E, 0xF0, 0x11, 0xFC, 0x7C, 0xF0, 0x17, 0xFC,
- .byte 0x7B, 0xF0, 0x1D, 0xFC, 0x79, 0xF0, 0x23, 0xFC, 0x78, 0xF0, 0x29, 0xFC, 0x76, 0xF0, 0x2F, 0xFC,
- .byte 0x75, 0xF0, 0x35, 0xFC, 0x73, 0xF0, 0x3B, 0xFC, 0x72, 0xF0, 0x41, 0xFC, 0x70, 0xF0, 0x47, 0xFC,
- .byte 0x6F, 0xF0, 0x4E, 0xFC, 0x6D, 0xF0, 0x54, 0xFC, 0x6C, 0xF0, 0x5A, 0xFC, 0x6B, 0xF0, 0x60, 0xFC,
- .byte 0x69, 0xF0, 0x66, 0xFC, 0x68, 0xF0, 0x6C, 0xFC, 0x66, 0xF0, 0x72, 0xFC, 0x65, 0xF0, 0x78, 0xFC,
- .byte 0x64, 0xF0, 0x7F, 0xFC, 0x62, 0xF0, 0x85, 0xFC, 0x61, 0xF0, 0x8B, 0xFC, 0x5F, 0xF0, 0x91, 0xFC,
- .byte 0x5E, 0xF0, 0x97, 0xFC, 0x5D, 0xF0, 0x9D, 0xFC, 0x5B, 0xF0, 0xA3, 0xFC, 0x5A, 0xF0, 0xAA, 0xFC,
- .byte 0x59, 0xF0, 0xB0, 0xFC, 0x58, 0xF0, 0xB6, 0xFC, 0x56, 0xF0, 0xBC, 0xFC, 0x55, 0xF0, 0xC2, 0xFC,
- .byte 0x54, 0xF0, 0xC8, 0xFC, 0x52, 0xF0, 0xCE, 0xFC, 0x51, 0xF0, 0xD5, 0xFC, 0x50, 0xF0, 0xDB, 0xFC,
- .byte 0x4F, 0xF0, 0xE1, 0xFC, 0x4D, 0xF0, 0xE7, 0xFC, 0x4C, 0xF0, 0xED, 0xFC, 0x4B, 0xF0, 0xF3, 0xFC,
- .byte 0x4A, 0xF0, 0xFA, 0xFC, 0x49, 0xF0, 0x00, 0xFD, 0x48, 0xF0, 0x06, 0xFD, 0x46, 0xF0, 0x0C, 0xFD,
- .byte 0x45, 0xF0, 0x12, 0xFD, 0x44, 0xF0, 0x18, 0xFD, 0x43, 0xF0, 0x1F, 0xFD, 0x42, 0xF0, 0x25, 0xFD,
- .byte 0x41, 0xF0, 0x2B, 0xFD, 0x40, 0xF0, 0x31, 0xFD, 0x3E, 0xF0, 0x37, 0xFD, 0x3D, 0xF0, 0x3E, 0xFD,
- .byte 0x3C, 0xF0, 0x44, 0xFD, 0x3B, 0xF0, 0x4A, 0xFD, 0x3A, 0xF0, 0x50, 0xFD, 0x39, 0xF0, 0x56, 0xFD,
- .byte 0x38, 0xF0, 0x5D, 0xFD, 0x37, 0xF0, 0x63, 0xFD, 0x36, 0xF0, 0x69, 0xFD, 0x35, 0xF0, 0x6F, 0xFD,
- .byte 0x34, 0xF0, 0x75, 0xFD, 0x33, 0xF0, 0x7C, 0xFD, 0x32, 0xF0, 0x82, 0xFD, 0x31, 0xF0, 0x88, 0xFD,
- .byte 0x30, 0xF0, 0x8E, 0xFD, 0x2F, 0xF0, 0x94, 0xFD, 0x2E, 0xF0, 0x9B, 0xFD, 0x2D, 0xF0, 0xA1, 0xFD,
- .byte 0x2C, 0xF0, 0xA7, 0xFD, 0x2B, 0xF0, 0xAD, 0xFD, 0x2B, 0xF0, 0xB3, 0xFD, 0x2A, 0xF0, 0xBA, 0xFD,
- .byte 0x29, 0xF0, 0xC0, 0xFD, 0x28, 0xF0, 0xC6, 0xFD, 0x27, 0xF0, 0xCC, 0xFD, 0x26, 0xF0, 0xD3, 0xFD,
- .byte 0x25, 0xF0, 0xD9, 0xFD, 0x24, 0xF0, 0xDF, 0xFD, 0x24, 0xF0, 0xE5, 0xFD, 0x23, 0xF0, 0xEB, 0xFD,
- .byte 0x22, 0xF0, 0xF2, 0xFD, 0x21, 0xF0, 0xF8, 0xFD, 0x20, 0xF0, 0xFE, 0xFD, 0x20, 0xF0, 0x04, 0xFE,
- .byte 0x1F, 0xF0, 0x0B, 0xFE, 0x1E, 0xF0, 0x11, 0xFE, 0x1D, 0xF0, 0x17, 0xFE, 0x1D, 0xF0, 0x1D, 0xFE,
- .byte 0x1C, 0xF0, 0x24, 0xFE, 0x1B, 0xF0, 0x2A, 0xFE, 0x1A, 0xF0, 0x30, 0xFE, 0x1A, 0xF0, 0x36, 0xFE,
- .byte 0x19, 0xF0, 0x3D, 0xFE, 0x18, 0xF0, 0x43, 0xFE, 0x18, 0xF0, 0x49, 0xFE, 0x17, 0xF0, 0x4F, 0xFE,
- .byte 0x16, 0xF0, 0x56, 0xFE, 0x16, 0xF0, 0x5C, 0xFE, 0x15, 0xF0, 0x62, 0xFE, 0x14, 0xF0, 0x68, 0xFE,
- .byte 0x14, 0xF0, 0x6F, 0xFE, 0x13, 0xF0, 0x75, 0xFE, 0x13, 0xF0, 0x7B, 0xFE, 0x12, 0xF0, 0x81, 0xFE,
- .byte 0x11, 0xF0, 0x88, 0xFE, 0x11, 0xF0, 0x8E, 0xFE, 0x10, 0xF0, 0x94, 0xFE, 0x10, 0xF0, 0x9A, 0xFE,
- .byte 0x0F, 0xF0, 0xA1, 0xFE, 0x0F, 0xF0, 0xA7, 0xFE, 0x0E, 0xF0, 0xAD, 0xFE, 0x0E, 0xF0, 0xB3, 0xFE,
- .byte 0x0D, 0xF0, 0xBA, 0xFE, 0x0D, 0xF0, 0xC0, 0xFE, 0x0C, 0xF0, 0xC6, 0xFE, 0x0C, 0xF0, 0xCC, 0xFE,
- .byte 0x0B, 0xF0, 0xD3, 0xFE, 0x0B, 0xF0, 0xD9, 0xFE, 0x0A, 0xF0, 0xDF, 0xFE, 0x0A, 0xF0, 0xE5, 0xFE,
- .byte 0x09, 0xF0, 0xEC, 0xFE, 0x09, 0xF0, 0xF2, 0xFE, 0x08, 0xF0, 0xF8, 0xFE, 0x08, 0xF0, 0xFF, 0xFE,
- .byte 0x08, 0xF0, 0x05, 0xFF, 0x07, 0xF0, 0x0B, 0xFF, 0x07, 0xF0, 0x11, 0xFF, 0x07, 0xF0, 0x18, 0xFF,
- .byte 0x06, 0xF0, 0x1E, 0xFF, 0x06, 0xF0, 0x24, 0xFF, 0x06, 0xF0, 0x2A, 0xFF, 0x05, 0xF0, 0x31, 0xFF,
- .byte 0x05, 0xF0, 0x37, 0xFF, 0x05, 0xF0, 0x3D, 0xFF, 0x04, 0xF0, 0x44, 0xFF, 0x04, 0xF0, 0x4A, 0xFF,
- .byte 0x04, 0xF0, 0x50, 0xFF, 0x04, 0xF0, 0x56, 0xFF, 0x03, 0xF0, 0x5D, 0xFF, 0x03, 0xF0, 0x63, 0xFF,
- .byte 0x03, 0xF0, 0x69, 0xFF, 0x03, 0xF0, 0x70, 0xFF, 0x02, 0xF0, 0x76, 0xFF, 0x02, 0xF0, 0x7C, 0xFF,
- .byte 0x02, 0xF0, 0x82, 0xFF, 0x02, 0xF0, 0x89, 0xFF, 0x02, 0xF0, 0x8F, 0xFF, 0x01, 0xF0, 0x95, 0xFF,
- .byte 0x01, 0xF0, 0x9B, 0xFF, 0x01, 0xF0, 0xA2, 0xFF, 0x01, 0xF0, 0xA8, 0xFF, 0x01, 0xF0, 0xAE, 0xFF,
- .byte 0x01, 0xF0, 0xB5, 0xFF, 0x01, 0xF0, 0xBB, 0xFF, 0x00, 0xF0, 0xC1, 0xFF, 0x00, 0xF0, 0xC7, 0xFF,
- .byte 0x00, 0xF0, 0xCE, 0xFF, 0x00, 0xF0, 0xD4, 0xFF, 0x00, 0xF0, 0xDA, 0xFF, 0x00, 0xF0, 0xE1, 0xFF,
- .byte 0x00, 0xF0, 0xE7, 0xFF, 0x00, 0xF0, 0xED, 0xFF, 0x00, 0xF0, 0xF3, 0xFF, 0x00, 0xF0, 0xFA, 0xFF,
- .byte 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x06, 0x00, 0x00, 0xF0, 0x0D, 0x00, 0x00, 0xF0, 0x13, 0x00,
- .byte 0x00, 0xF0, 0x19, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0xF0, 0x26, 0x00, 0x00, 0xF0, 0x2C, 0x00,
- .byte 0x00, 0xF0, 0x32, 0x00, 0x00, 0xF0, 0x39, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x01, 0xF0, 0x45, 0x00,
- .byte 0x01, 0xF0, 0x4B, 0x00, 0x01, 0xF0, 0x52, 0x00, 0x01, 0xF0, 0x58, 0x00, 0x01, 0xF0, 0x5E, 0x00,
- .byte 0x01, 0xF0, 0x65, 0x00, 0x01, 0xF0, 0x6B, 0x00, 0x02, 0xF0, 0x71, 0x00, 0x02, 0xF0, 0x77, 0x00,
- .byte 0x02, 0xF0, 0x7E, 0x00, 0x02, 0xF0, 0x84, 0x00, 0x02, 0xF0, 0x8A, 0x00, 0x03, 0xF0, 0x90, 0x00,
- .byte 0x03, 0xF0, 0x97, 0x00, 0x03, 0xF0, 0x9D, 0x00, 0x03, 0xF0, 0xA3, 0x00, 0x04, 0xF0, 0xAA, 0x00,
- .byte 0x04, 0xF0, 0xB0, 0x00, 0x04, 0xF0, 0xB6, 0x00, 0x04, 0xF0, 0xBC, 0x00, 0x05, 0xF0, 0xC3, 0x00,
- .byte 0x05, 0xF0, 0xC9, 0x00, 0x05, 0xF0, 0xCF, 0x00, 0x06, 0xF0, 0xD6, 0x00, 0x06, 0xF0, 0xDC, 0x00,
- .byte 0x06, 0xF0, 0xE2, 0x00, 0x07, 0xF0, 0xE8, 0x00, 0x07, 0xF0, 0xEF, 0x00, 0x07, 0xF0, 0xF5, 0x00,
- .byte 0x08, 0xF0, 0xFB, 0x00, 0x08, 0xF0, 0x01, 0x01, 0x08, 0xF0, 0x08, 0x01, 0x09, 0xF0, 0x0E, 0x01,
- .byte 0x09, 0xF0, 0x14, 0x01, 0x0A, 0xF0, 0x1B, 0x01, 0x0A, 0xF0, 0x21, 0x01, 0x0B, 0xF0, 0x27, 0x01,
- .byte 0x0B, 0xF0, 0x2D, 0x01, 0x0C, 0xF0, 0x34, 0x01, 0x0C, 0xF0, 0x3A, 0x01, 0x0D, 0xF0, 0x40, 0x01,
- .byte 0x0D, 0xF0, 0x46, 0x01, 0x0E, 0xF0, 0x4D, 0x01, 0x0E, 0xF0, 0x53, 0x01, 0x0F, 0xF0, 0x59, 0x01,
- .byte 0x0F, 0xF0, 0x5F, 0x01, 0x10, 0xF0, 0x66, 0x01, 0x10, 0xF0, 0x6C, 0x01, 0x11, 0xF0, 0x72, 0x01,
- .byte 0x11, 0xF0, 0x78, 0x01, 0x12, 0xF0, 0x7F, 0x01, 0x13, 0xF0, 0x85, 0x01, 0x13, 0xF0, 0x8B, 0x01,
- .byte 0x14, 0xF0, 0x91, 0x01, 0x14, 0xF0, 0x98, 0x01, 0x15, 0xF0, 0x9E, 0x01, 0x16, 0xF0, 0xA4, 0x01,
- .byte 0x16, 0xF0, 0xAA, 0x01, 0x17, 0xF0, 0xB1, 0x01, 0x18, 0xF0, 0xB7, 0x01, 0x18, 0xF0, 0xBD, 0x01,
- .byte 0x19, 0xF0, 0xC3, 0x01, 0x1A, 0xF0, 0xCA, 0x01, 0x1A, 0xF0, 0xD0, 0x01, 0x1B, 0xF0, 0xD6, 0x01,
- .byte 0x1C, 0xF0, 0xDC, 0x01, 0x1D, 0xF0, 0xE3, 0x01, 0x1D, 0xF0, 0xE9, 0x01, 0x1E, 0xF0, 0xEF, 0x01,
- .byte 0x1F, 0xF0, 0xF5, 0x01, 0x20, 0xF0, 0xFC, 0x01, 0x20, 0xF0, 0x02, 0x02, 0x21, 0xF0, 0x08, 0x02,
- .byte 0x22, 0xF0, 0x0E, 0x02, 0x23, 0xF0, 0x15, 0x02, 0x24, 0xF0, 0x1B, 0x02, 0x24, 0xF0, 0x21, 0x02,
- .byte 0x25, 0xF0, 0x27, 0x02, 0x26, 0xF0, 0x2D, 0x02, 0x27, 0xF0, 0x34, 0x02, 0x28, 0xF0, 0x3A, 0x02,
- .byte 0x29, 0xF0, 0x40, 0x02, 0x2A, 0xF0, 0x46, 0x02, 0x2B, 0xF0, 0x4D, 0x02, 0x2B, 0xF0, 0x53, 0x02,
- .byte 0x2C, 0xF0, 0x59, 0x02, 0x2D, 0xF0, 0x5F, 0x02, 0x2E, 0xF0, 0x65, 0x02, 0x2F, 0xF0, 0x6C, 0x02,
- .byte 0x30, 0xF0, 0x72, 0x02, 0x31, 0xF0, 0x78, 0x02, 0x32, 0xF0, 0x7E, 0x02, 0x33, 0xF0, 0x84, 0x02,
- .byte 0x34, 0xF0, 0x8B, 0x02, 0x35, 0xF0, 0x91, 0x02, 0x36, 0xF0, 0x97, 0x02, 0x37, 0xF0, 0x9D, 0x02,
- .byte 0x38, 0xF0, 0xA3, 0x02, 0x39, 0xF0, 0xAA, 0x02, 0x3A, 0xF0, 0xB0, 0x02, 0x3B, 0xF0, 0xB6, 0x02,
- .byte 0x3C, 0xF0, 0xBC, 0x02, 0x3D, 0xF0, 0xC2, 0x02, 0x3E, 0xF0, 0xC9, 0x02, 0x40, 0xF0, 0xCF, 0x02,
- .byte 0x41, 0xF0, 0xD5, 0x02, 0x42, 0xF0, 0xDB, 0x02, 0x43, 0xF0, 0xE1, 0x02, 0x44, 0xF0, 0xE8, 0x02,
- .byte 0x45, 0xF0, 0xEE, 0x02, 0x46, 0xF0, 0xF4, 0x02, 0x48, 0xF0, 0xFA, 0x02, 0x49, 0xF0, 0x00, 0x03,
- .byte 0x4A, 0xF0, 0x06, 0x03, 0x4B, 0xF0, 0x0D, 0x03, 0x4C, 0xF0, 0x13, 0x03, 0x4D, 0xF0, 0x19, 0x03,
- .byte 0x4F, 0xF0, 0x1F, 0x03, 0x50, 0xF0, 0x25, 0x03, 0x51, 0xF0, 0x2B, 0x03, 0x52, 0xF0, 0x32, 0x03,
- .byte 0x54, 0xF0, 0x38, 0x03, 0x55, 0xF0, 0x3E, 0x03, 0x56, 0xF0, 0x44, 0x03, 0x58, 0xF0, 0x4A, 0x03,
- .byte 0x59, 0xF0, 0x50, 0x03, 0x5A, 0xF0, 0x56, 0x03, 0x5B, 0xF0, 0x5D, 0x03, 0x5D, 0xF0, 0x63, 0x03,
- .byte 0x5E, 0xF0, 0x69, 0x03, 0x5F, 0xF0, 0x6F, 0x03, 0x61, 0xF0, 0x75, 0x03, 0x62, 0xF0, 0x7B, 0x03,
- .byte 0x64, 0xF0, 0x81, 0x03, 0x65, 0xF0, 0x88, 0x03, 0x66, 0xF0, 0x8E, 0x03, 0x68, 0xF0, 0x94, 0x03,
- .byte 0x69, 0xF0, 0x9A, 0x03, 0x6B, 0xF0, 0xA0, 0x03, 0x6C, 0xF0, 0xA6, 0x03, 0x6D, 0xF0, 0xAC, 0x03,
- .byte 0x6F, 0xF0, 0xB2, 0x03, 0x70, 0xF0, 0xB9, 0x03, 0x72, 0xF0, 0xBF, 0x03, 0x73, 0xF0, 0xC5, 0x03,
- .byte 0x75, 0xF0, 0xCB, 0x03, 0x76, 0xF0, 0xD1, 0x03, 0x78, 0xF0, 0xD7, 0x03, 0x79, 0xF0, 0xDD, 0x03,
- .byte 0x7B, 0xF0, 0xE3, 0x03, 0x7C, 0xF0, 0xE9, 0x03, 0x7E, 0xF0, 0xEF, 0x03, 0x7F, 0xF0, 0xF6, 0x03,
- .byte 0x81, 0xF0, 0xFC, 0x03, 0x83, 0xF0, 0x02, 0x04, 0x84, 0xF0, 0x08, 0x04, 0x86, 0xF0, 0x0E, 0x04,
- .byte 0x87, 0xF0, 0x14, 0x04, 0x89, 0xF0, 0x1A, 0x04, 0x8A, 0xF0, 0x20, 0x04, 0x8C, 0xF0, 0x26, 0x04,
- .byte 0x8E, 0xF0, 0x2C, 0x04, 0x8F, 0xF0, 0x32, 0x04, 0x91, 0xF0, 0x38, 0x04, 0x93, 0xF0, 0x3E, 0x04,
- .byte 0x94, 0xF0, 0x44, 0x04, 0x96, 0xF0, 0x4B, 0x04, 0x98, 0xF0, 0x51, 0x04, 0x99, 0xF0, 0x57, 0x04,
- .byte 0x9B, 0xF0, 0x5D, 0x04, 0x9D, 0xF0, 0x63, 0x04, 0x9F, 0xF0, 0x69, 0x04, 0xA0, 0xF0, 0x6F, 0x04,
- .byte 0xA2, 0xF0, 0x75, 0x04, 0xA4, 0xF0, 0x7B, 0x04, 0xA6, 0xF0, 0x81, 0x04, 0xA7, 0xF0, 0x87, 0x04,
- .byte 0xA9, 0xF0, 0x8D, 0x04, 0xAB, 0xF0, 0x93, 0x04, 0xAD, 0xF0, 0x99, 0x04, 0xAF, 0xF0, 0x9F, 0x04,
- .byte 0xB0, 0xF0, 0xA5, 0x04, 0xB2, 0xF0, 0xAB, 0x04, 0xB4, 0xF0, 0xB1, 0x04, 0xB6, 0xF0, 0xB7, 0x04,
- .byte 0xB8, 0xF0, 0xBD, 0x04, 0xBA, 0xF0, 0xC3, 0x04, 0xBB, 0xF0, 0xC9, 0x04, 0xBD, 0xF0, 0xCF, 0x04,
- .byte 0xBF, 0xF0, 0xD5, 0x04, 0xC1, 0xF0, 0xDB, 0x04, 0xC3, 0xF0, 0xE1, 0x04, 0xC5, 0xF0, 0xE7, 0x04,
- .byte 0xC7, 0xF0, 0xED, 0x04, 0xC9, 0xF0, 0xF3, 0x04, 0xCB, 0xF0, 0xF9, 0x04, 0xCD, 0xF0, 0xFF, 0x04,
- .byte 0xCF, 0xF0, 0x05, 0x05, 0xD1, 0xF0, 0x0B, 0x05, 0xD3, 0xF0, 0x11, 0x05, 0xD5, 0xF0, 0x17, 0x05,
- .byte 0xD7, 0xF0, 0x1D, 0x05, 0xD9, 0xF0, 0x23, 0x05, 0xDB, 0xF0, 0x29, 0x05, 0xDD, 0xF0, 0x2F, 0x05,
- .byte 0xDF, 0xF0, 0x34, 0x05, 0xE1, 0xF0, 0x3A, 0x05, 0xE3, 0xF0, 0x40, 0x05, 0xE5, 0xF0, 0x46, 0x05,
- .byte 0xE7, 0xF0, 0x4C, 0x05, 0xE9, 0xF0, 0x52, 0x05, 0xEB, 0xF0, 0x58, 0x05, 0xED, 0xF0, 0x5E, 0x05,
- .byte 0xEF, 0xF0, 0x64, 0x05, 0xF2, 0xF0, 0x6A, 0x05, 0xF4, 0xF0, 0x70, 0x05, 0xF6, 0xF0, 0x76, 0x05,
- .byte 0xF8, 0xF0, 0x7C, 0x05, 0xFA, 0xF0, 0x81, 0x05, 0xFC, 0xF0, 0x87, 0x05, 0xFE, 0xF0, 0x8D, 0x05,
- .byte 0x01, 0xF1, 0x93, 0x05, 0x03, 0xF1, 0x99, 0x05, 0x05, 0xF1, 0x9F, 0x05, 0x07, 0xF1, 0xA5, 0x05,
- .byte 0x09, 0xF1, 0xAB, 0x05, 0x0C, 0xF1, 0xB1, 0x05, 0x0E, 0xF1, 0xB6, 0x05, 0x10, 0xF1, 0xBC, 0x05,
- .byte 0x12, 0xF1, 0xC2, 0x05, 0x15, 0xF1, 0xC8, 0x05, 0x17, 0xF1, 0xCE, 0x05, 0x19, 0xF1, 0xD4, 0x05,
- .byte 0x1C, 0xF1, 0xDA, 0x05, 0x1E, 0xF1, 0xDF, 0x05, 0x20, 0xF1, 0xE5, 0x05, 0x23, 0xF1, 0xEB, 0x05,
- .byte 0x25, 0xF1, 0xF1, 0x05, 0x27, 0xF1, 0xF7, 0x05, 0x2A, 0xF1, 0xFD, 0x05, 0x2C, 0xF1, 0x02, 0x06,
- .byte 0x2E, 0xF1, 0x08, 0x06, 0x31, 0xF1, 0x0E, 0x06, 0x33, 0xF1, 0x14, 0x06, 0x35, 0xF1, 0x1A, 0x06,
- .byte 0x38, 0xF1, 0x1F, 0x06, 0x3A, 0xF1, 0x25, 0x06, 0x3D, 0xF1, 0x2B, 0x06, 0x3F, 0xF1, 0x31, 0x06,
- .byte 0x41, 0xF1, 0x37, 0x06, 0x44, 0xF1, 0x3C, 0x06, 0x46, 0xF1, 0x42, 0x06, 0x49, 0xF1, 0x48, 0x06,
- .byte 0x4B, 0xF1, 0x4E, 0x06, 0x4E, 0xF1, 0x54, 0x06, 0x50, 0xF1, 0x59, 0x06, 0x53, 0xF1, 0x5F, 0x06,
- .byte 0x55, 0xF1, 0x65, 0x06, 0x58, 0xF1, 0x6B, 0x06, 0x5A, 0xF1, 0x70, 0x06, 0x5D, 0xF1, 0x76, 0x06,
- .byte 0x5F, 0xF1, 0x7C, 0x06, 0x62, 0xF1, 0x82, 0x06, 0x65, 0xF1, 0x87, 0x06, 0x67, 0xF1, 0x8D, 0x06,
- .byte 0x6A, 0xF1, 0x93, 0x06, 0x6C, 0xF1, 0x99, 0x06, 0x6F, 0xF1, 0x9E, 0x06, 0x71, 0xF1, 0xA4, 0x06,
- .byte 0x74, 0xF1, 0xAA, 0x06, 0x77, 0xF1, 0xAF, 0x06, 0x79, 0xF1, 0xB5, 0x06, 0x7C, 0xF1, 0xBB, 0x06,
- .byte 0x7F, 0xF1, 0xC1, 0x06, 0x81, 0xF1, 0xC6, 0x06, 0x84, 0xF1, 0xCC, 0x06, 0x87, 0xF1, 0xD2, 0x06,
- .byte 0x89, 0xF1, 0xD7, 0x06, 0x8C, 0xF1, 0xDD, 0x06, 0x8F, 0xF1, 0xE3, 0x06, 0x91, 0xF1, 0xE8, 0x06,
- .byte 0x94, 0xF1, 0xEE, 0x06, 0x97, 0xF1, 0xF4, 0x06, 0x9A, 0xF1, 0xF9, 0x06, 0x9C, 0xF1, 0xFF, 0x06,
- .byte 0x9F, 0xF1, 0x05, 0x07, 0xA2, 0xF1, 0x0A, 0x07, 0xA5, 0xF1, 0x10, 0x07, 0xA7, 0xF1, 0x15, 0x07,
- .byte 0xAA, 0xF1, 0x1B, 0x07, 0xAD, 0xF1, 0x21, 0x07, 0xB0, 0xF1, 0x26, 0x07, 0xB3, 0xF1, 0x2C, 0x07,
- .byte 0xB5, 0xF1, 0x32, 0x07, 0xB8, 0xF1, 0x37, 0x07, 0xBB, 0xF1, 0x3D, 0x07, 0xBE, 0xF1, 0x42, 0x07,
- .byte 0xC1, 0xF1, 0x48, 0x07, 0xC4, 0xF1, 0x4E, 0x07, 0xC6, 0xF1, 0x53, 0x07, 0xC9, 0xF1, 0x59, 0x07,
- .byte 0xCC, 0xF1, 0x5E, 0x07, 0xCF, 0xF1, 0x64, 0x07, 0xD2, 0xF1, 0x6A, 0x07, 0xD5, 0xF1, 0x6F, 0x07,
- .byte 0xD8, 0xF1, 0x75, 0x07, 0xDB, 0xF1, 0x7A, 0x07, 0xDE, 0xF1, 0x80, 0x07, 0xE1, 0xF1, 0x85, 0x07,
- .byte 0xE4, 0xF1, 0x8B, 0x07, 0xE7, 0xF1, 0x90, 0x07, 0xEA, 0xF1, 0x96, 0x07, 0xED, 0xF1, 0x9B, 0x07,
- .byte 0xF0, 0xF1, 0xA1, 0x07, 0xF3, 0xF1, 0xA6, 0x07, 0xF6, 0xF1, 0xAC, 0x07, 0xF9, 0xF1, 0xB2, 0x07,
- .byte 0xFC, 0xF1, 0xB7, 0x07, 0xFF, 0xF1, 0xBD, 0x07, 0x02, 0xF2, 0xC2, 0x07, 0x05, 0xF2, 0xC8, 0x07,
- .byte 0x08, 0xF2, 0xCD, 0x07, 0x0B, 0xF2, 0xD2, 0x07, 0x0E, 0xF2, 0xD8, 0x07, 0x11, 0xF2, 0xDD, 0x07,
- .byte 0x14, 0xF2, 0xE3, 0x07, 0x17, 0xF2, 0xE8, 0x07, 0x1A, 0xF2, 0xEE, 0x07, 0x1D, 0xF2, 0xF3, 0x07,
- .byte 0x21, 0xF2, 0xF9, 0x07, 0x24, 0xF2, 0xFE, 0x07, 0x27, 0xF2, 0x04, 0x08, 0x2A, 0xF2, 0x09, 0x08,
- .byte 0x2D, 0xF2, 0x0E, 0x08, 0x30, 0xF2, 0x14, 0x08, 0x34, 0xF2, 0x19, 0x08, 0x37, 0xF2, 0x1F, 0x08,
- .byte 0x3A, 0xF2, 0x24, 0x08, 0x3D, 0xF2, 0x2A, 0x08, 0x40, 0xF2, 0x2F, 0x08, 0x44, 0xF2, 0x34, 0x08,
- .byte 0x47, 0xF2, 0x3A, 0x08, 0x4A, 0xF2, 0x3F, 0x08, 0x4D, 0xF2, 0x45, 0x08, 0x50, 0xF2, 0x4A, 0x08,
- .byte 0x54, 0xF2, 0x4F, 0x08, 0x57, 0xF2, 0x55, 0x08, 0x5A, 0xF2, 0x5A, 0x08, 0x5E, 0xF2, 0x5F, 0x08,
- .byte 0x61, 0xF2, 0x65, 0x08, 0x64, 0xF2, 0x6A, 0x08, 0x67, 0xF2, 0x6F, 0x08, 0x6B, 0xF2, 0x75, 0x08,
- .byte 0x6E, 0xF2, 0x7A, 0x08, 0x71, 0xF2, 0x7F, 0x08, 0x75, 0xF2, 0x85, 0x08, 0x78, 0xF2, 0x8A, 0x08,
- .byte 0x7B, 0xF2, 0x8F, 0x08, 0x7F, 0xF2, 0x95, 0x08, 0x82, 0xF2, 0x9A, 0x08, 0x86, 0xF2, 0x9F, 0x08,
- .byte 0x89, 0xF2, 0xA5, 0x08, 0x8C, 0xF2, 0xAA, 0x08, 0x90, 0xF2, 0xAF, 0x08, 0x93, 0xF2, 0xB4, 0x08,
- .byte 0x97, 0xF2, 0xBA, 0x08, 0x9A, 0xF2, 0xBF, 0x08, 0x9E, 0xF2, 0xC4, 0x08, 0xA1, 0xF2, 0xC9, 0x08,
- .byte 0xA4, 0xF2, 0xCF, 0x08, 0xA8, 0xF2, 0xD4, 0x08, 0xAB, 0xF2, 0xD9, 0x08, 0xAF, 0xF2, 0xDE, 0x08,
- .byte 0xB2, 0xF2, 0xE4, 0x08, 0xB6, 0xF2, 0xE9, 0x08, 0xB9, 0xF2, 0xEE, 0x08, 0xBD, 0xF2, 0xF3, 0x08,
- .byte 0xC0, 0xF2, 0xF8, 0x08, 0xC4, 0xF2, 0xFE, 0x08, 0xC7, 0xF2, 0x03, 0x09, 0xCB, 0xF2, 0x08, 0x09,
- .byte 0xCE, 0xF2, 0x0D, 0x09, 0xD2, 0xF2, 0x12, 0x09, 0xD6, 0xF2, 0x18, 0x09, 0xD9, 0xF2, 0x1D, 0x09,
- .byte 0xDD, 0xF2, 0x22, 0x09, 0xE0, 0xF2, 0x27, 0x09, 0xE4, 0xF2, 0x2C, 0x09, 0xE8, 0xF2, 0x31, 0x09,
- .byte 0xEB, 0xF2, 0x37, 0x09, 0xEF, 0xF2, 0x3C, 0x09, 0xF2, 0xF2, 0x41, 0x09, 0xF6, 0xF2, 0x46, 0x09,
- .byte 0xFA, 0xF2, 0x4B, 0x09, 0xFD, 0xF2, 0x50, 0x09, 0x01, 0xF3, 0x55, 0x09, 0x05, 0xF3, 0x5A, 0x09,
- .byte 0x08, 0xF3, 0x5F, 0x09, 0x0C, 0xF3, 0x65, 0x09, 0x10, 0xF3, 0x6A, 0x09, 0x13, 0xF3, 0x6F, 0x09,
- .byte 0x17, 0xF3, 0x74, 0x09, 0x1B, 0xF3, 0x79, 0x09, 0x1F, 0xF3, 0x7E, 0x09, 0x22, 0xF3, 0x83, 0x09,
- .byte 0x26, 0xF3, 0x88, 0x09, 0x2A, 0xF3, 0x8D, 0x09, 0x2E, 0xF3, 0x92, 0x09, 0x31, 0xF3, 0x97, 0x09,
- .byte 0x35, 0xF3, 0x9C, 0x09, 0x39, 0xF3, 0xA1, 0x09, 0x3D, 0xF3, 0xA6, 0x09, 0x40, 0xF3, 0xAB, 0x09,
- .byte 0x44, 0xF3, 0xB0, 0x09, 0x48, 0xF3, 0xB5, 0x09, 0x4C, 0xF3, 0xBA, 0x09, 0x50, 0xF3, 0xBF, 0x09,
- .byte 0x54, 0xF3, 0xC4, 0x09, 0x57, 0xF3, 0xC9, 0x09, 0x5B, 0xF3, 0xCE, 0x09, 0x5F, 0xF3, 0xD3, 0x09,
- .byte 0x63, 0xF3, 0xD8, 0x09, 0x67, 0xF3, 0xDD, 0x09, 0x6B, 0xF3, 0xE2, 0x09, 0x6F, 0xF3, 0xE7, 0x09,
- .byte 0x72, 0xF3, 0xEC, 0x09, 0x76, 0xF3, 0xF1, 0x09, 0x7A, 0xF3, 0xF6, 0x09, 0x7E, 0xF3, 0xFB, 0x09,
- .byte 0x82, 0xF3, 0xFF, 0x09, 0x86, 0xF3, 0x04, 0x0A, 0x8A, 0xF3, 0x09, 0x0A, 0x8E, 0xF3, 0x0E, 0x0A,
- .byte 0x92, 0xF3, 0x13, 0x0A, 0x96, 0xF3, 0x18, 0x0A, 0x9A, 0xF3, 0x1D, 0x0A, 0x9E, 0xF3, 0x22, 0x0A,
- .byte 0xA2, 0xF3, 0x26, 0x0A, 0xA6, 0xF3, 0x2B, 0x0A, 0xAA, 0xF3, 0x30, 0x0A, 0xAE, 0xF3, 0x35, 0x0A,
- .byte 0xB2, 0xF3, 0x3A, 0x0A, 0xB6, 0xF3, 0x3F, 0x0A, 0xBA, 0xF3, 0x44, 0x0A, 0xBE, 0xF3, 0x48, 0x0A,
- .byte 0xC2, 0xF3, 0x4D, 0x0A, 0xC6, 0xF3, 0x52, 0x0A, 0xCA, 0xF3, 0x57, 0x0A, 0xCE, 0xF3, 0x5C, 0x0A,
- .byte 0xD2, 0xF3, 0x60, 0x0A, 0xD6, 0xF3, 0x65, 0x0A, 0xDA, 0xF3, 0x6A, 0x0A, 0xDE, 0xF3, 0x6F, 0x0A,
- .byte 0xE2, 0xF3, 0x73, 0x0A, 0xE7, 0xF3, 0x78, 0x0A, 0xEB, 0xF3, 0x7D, 0x0A, 0xEF, 0xF3, 0x82, 0x0A,
- .byte 0xF3, 0xF3, 0x86, 0x0A, 0xF7, 0xF3, 0x8B, 0x0A, 0xFB, 0xF3, 0x90, 0x0A, 0xFF, 0xF3, 0x95, 0x0A,
- .byte 0x04, 0xF4, 0x99, 0x0A, 0x08, 0xF4, 0x9E, 0x0A, 0x0C, 0xF4, 0xA3, 0x0A, 0x10, 0xF4, 0xA7, 0x0A,
- .byte 0x14, 0xF4, 0xAC, 0x0A, 0x18, 0xF4, 0xB1, 0x0A, 0x1D, 0xF4, 0xB5, 0x0A, 0x21, 0xF4, 0xBA, 0x0A,
- .byte 0x25, 0xF4, 0xBF, 0x0A, 0x29, 0xF4, 0xC3, 0x0A, 0x2E, 0xF4, 0xC8, 0x0A, 0x32, 0xF4, 0xCD, 0x0A,
- .byte 0x36, 0xF4, 0xD1, 0x0A, 0x3A, 0xF4, 0xD6, 0x0A, 0x3F, 0xF4, 0xDB, 0x0A, 0x43, 0xF4, 0xDF, 0x0A,
- .byte 0x47, 0xF4, 0xE4, 0x0A, 0x4B, 0xF4, 0xE8, 0x0A, 0x50, 0xF4, 0xED, 0x0A, 0x54, 0xF4, 0xF2, 0x0A,
- .byte 0x58, 0xF4, 0xF6, 0x0A, 0x5D, 0xF4, 0xFB, 0x0A, 0x61, 0xF4, 0xFF, 0x0A, 0x65, 0xF4, 0x04, 0x0B,
- .byte 0x69, 0xF4, 0x08, 0x0B, 0x6E, 0xF4, 0x0D, 0x0B, 0x72, 0xF4, 0x11, 0x0B, 0x77, 0xF4, 0x16, 0x0B,
- .byte 0x7B, 0xF4, 0x1B, 0x0B, 0x7F, 0xF4, 0x1F, 0x0B, 0x84, 0xF4, 0x24, 0x0B, 0x88, 0xF4, 0x28, 0x0B,
- .byte 0x8C, 0xF4, 0x2D, 0x0B, 0x91, 0xF4, 0x31, 0x0B, 0x95, 0xF4, 0x36, 0x0B, 0x9A, 0xF4, 0x3A, 0x0B,
- .byte 0x9E, 0xF4, 0x3E, 0x0B, 0xA2, 0xF4, 0x43, 0x0B, 0xA7, 0xF4, 0x47, 0x0B, 0xAB, 0xF4, 0x4C, 0x0B,
- .byte 0xB0, 0xF4, 0x50, 0x0B, 0xB4, 0xF4, 0x55, 0x0B, 0xB9, 0xF4, 0x59, 0x0B, 0xBD, 0xF4, 0x5E, 0x0B,
- .byte 0xC2, 0xF4, 0x62, 0x0B, 0xC6, 0xF4, 0x66, 0x0B, 0xCA, 0xF4, 0x6B, 0x0B, 0xCF, 0xF4, 0x6F, 0x0B,
- .byte 0xD3, 0xF4, 0x74, 0x0B, 0xD8, 0xF4, 0x78, 0x0B, 0xDC, 0xF4, 0x7C, 0x0B, 0xE1, 0xF4, 0x81, 0x0B,
- .byte 0xE5, 0xF4, 0x85, 0x0B, 0xEA, 0xF4, 0x89, 0x0B, 0xEF, 0xF4, 0x8E, 0x0B, 0xF3, 0xF4, 0x92, 0x0B,
- .byte 0xF8, 0xF4, 0x97, 0x0B, 0xFC, 0xF4, 0x9B, 0x0B, 0x01, 0xF5, 0x9F, 0x0B, 0x05, 0xF5, 0xA3, 0x0B,
- .byte 0x0A, 0xF5, 0xA8, 0x0B, 0x0E, 0xF5, 0xAC, 0x0B, 0x13, 0xF5, 0xB0, 0x0B, 0x18, 0xF5, 0xB5, 0x0B,
- .byte 0x1C, 0xF5, 0xB9, 0x0B, 0x21, 0xF5, 0xBD, 0x0B, 0x25, 0xF5, 0xC1, 0x0B, 0x2A, 0xF5, 0xC6, 0x0B,
- .byte 0x2F, 0xF5, 0xCA, 0x0B, 0x33, 0xF5, 0xCE, 0x0B, 0x38, 0xF5, 0xD2, 0x0B, 0x3D, 0xF5, 0xD7, 0x0B,
- .byte 0x41, 0xF5, 0xDB, 0x0B, 0x46, 0xF5, 0xDF, 0x0B, 0x4B, 0xF5, 0xE3, 0x0B, 0x4F, 0xF5, 0xE8, 0x0B,
- .byte 0x54, 0xF5, 0xEC, 0x0B, 0x59, 0xF5, 0xF0, 0x0B, 0x5D, 0xF5, 0xF4, 0x0B, 0x62, 0xF5, 0xF8, 0x0B,
- .byte 0x67, 0xF5, 0xFC, 0x0B, 0x6B, 0xF5, 0x01, 0x0C, 0x70, 0xF5, 0x05, 0x0C, 0x75, 0xF5, 0x09, 0x0C,
- .byte 0x7A, 0xF5, 0x0D, 0x0C, 0x7E, 0xF5, 0x11, 0x0C, 0x83, 0xF5, 0x15, 0x0C, 0x88, 0xF5, 0x19, 0x0C,
- .byte 0x8D, 0xF5, 0x1E, 0x0C, 0x91, 0xF5, 0x22, 0x0C, 0x96, 0xF5, 0x26, 0x0C, 0x9B, 0xF5, 0x2A, 0x0C,
- .byte 0xA0, 0xF5, 0x2E, 0x0C, 0xA4, 0xF5, 0x32, 0x0C, 0xA9, 0xF5, 0x36, 0x0C, 0xAE, 0xF5, 0x3A, 0x0C,
- .byte 0xB3, 0xF5, 0x3E, 0x0C, 0xB8, 0xF5, 0x42, 0x0C, 0xBC, 0xF5, 0x46, 0x0C, 0xC1, 0xF5, 0x4A, 0x0C,
- .byte 0xC6, 0xF5, 0x4E, 0x0C, 0xCB, 0xF5, 0x52, 0x0C, 0xD0, 0xF5, 0x56, 0x0C, 0xD5, 0xF5, 0x5A, 0x0C,
- .byte 0xDA, 0xF5, 0x5E, 0x0C, 0xDE, 0xF5, 0x62, 0x0C, 0xE3, 0xF5, 0x66, 0x0C, 0xE8, 0xF5, 0x6A, 0x0C,
- .byte 0xED, 0xF5, 0x6E, 0x0C, 0xF2, 0xF5, 0x72, 0x0C, 0xF7, 0xF5, 0x76, 0x0C, 0xFC, 0xF5, 0x7A, 0x0C,
- .byte 0x01, 0xF6, 0x7E, 0x0C, 0x05, 0xF6, 0x82, 0x0C, 0x0A, 0xF6, 0x86, 0x0C, 0x0F, 0xF6, 0x8A, 0x0C,
- .byte 0x14, 0xF6, 0x8E, 0x0C, 0x19, 0xF6, 0x91, 0x0C, 0x1E, 0xF6, 0x95, 0x0C, 0x23, 0xF6, 0x99, 0x0C,
- .byte 0x28, 0xF6, 0x9D, 0x0C, 0x2D, 0xF6, 0xA1, 0x0C, 0x32, 0xF6, 0xA5, 0x0C, 0x37, 0xF6, 0xA9, 0x0C,
- .byte 0x3C, 0xF6, 0xAC, 0x0C, 0x41, 0xF6, 0xB0, 0x0C, 0x46, 0xF6, 0xB4, 0x0C, 0x4B, 0xF6, 0xB8, 0x0C,
- .byte 0x50, 0xF6, 0xBC, 0x0C, 0x55, 0xF6, 0xC0, 0x0C, 0x5A, 0xF6, 0xC3, 0x0C, 0x5F, 0xF6, 0xC7, 0x0C,
- .byte 0x64, 0xF6, 0xCB, 0x0C, 0x69, 0xF6, 0xCF, 0x0C, 0x6E, 0xF6, 0xD2, 0x0C, 0x73, 0xF6, 0xD6, 0x0C,
- .byte 0x78, 0xF6, 0xDA, 0x0C, 0x7D, 0xF6, 0xDE, 0x0C, 0x82, 0xF6, 0xE1, 0x0C, 0x87, 0xF6, 0xE5, 0x0C,
- .byte 0x8C, 0xF6, 0xE9, 0x0C, 0x91, 0xF6, 0xED, 0x0C, 0x96, 0xF6, 0xF0, 0x0C, 0x9B, 0xF6, 0xF4, 0x0C,
- .byte 0xA1, 0xF6, 0xF8, 0x0C, 0xA6, 0xF6, 0xFB, 0x0C, 0xAB, 0xF6, 0xFF, 0x0C, 0xB0, 0xF6, 0x03, 0x0D,
- .byte 0xB5, 0xF6, 0x06, 0x0D, 0xBA, 0xF6, 0x0A, 0x0D, 0xBF, 0xF6, 0x0E, 0x0D, 0xC4, 0xF6, 0x11, 0x0D,
- .byte 0xC9, 0xF6, 0x15, 0x0D, 0xCF, 0xF6, 0x18, 0x0D, 0xD4, 0xF6, 0x1C, 0x0D, 0xD9, 0xF6, 0x20, 0x0D,
- .byte 0xDE, 0xF6, 0x23, 0x0D, 0xE3, 0xF6, 0x27, 0x0D, 0xE8, 0xF6, 0x2A, 0x0D, 0xEE, 0xF6, 0x2E, 0x0D,
- .byte 0xF3, 0xF6, 0x32, 0x0D, 0xF8, 0xF6, 0x35, 0x0D, 0xFD, 0xF6, 0x39, 0x0D, 0x02, 0xF7, 0x3C, 0x0D,
- .byte 0x08, 0xF7, 0x40, 0x0D, 0x0D, 0xF7, 0x43, 0x0D, 0x12, 0xF7, 0x47, 0x0D, 0x17, 0xF7, 0x4A, 0x0D,
- .byte 0x1C, 0xF7, 0x4E, 0x0D, 0x22, 0xF7, 0x51, 0x0D, 0x27, 0xF7, 0x55, 0x0D, 0x2C, 0xF7, 0x58, 0x0D,
- .byte 0x31, 0xF7, 0x5C, 0x0D, 0x37, 0xF7, 0x5F, 0x0D, 0x3C, 0xF7, 0x62, 0x0D, 0x41, 0xF7, 0x66, 0x0D,
- .byte 0x46, 0xF7, 0x69, 0x0D, 0x4C, 0xF7, 0x6D, 0x0D, 0x51, 0xF7, 0x70, 0x0D, 0x56, 0xF7, 0x74, 0x0D,
- .byte 0x5B, 0xF7, 0x77, 0x0D, 0x61, 0xF7, 0x7A, 0x0D, 0x66, 0xF7, 0x7E, 0x0D, 0x6B, 0xF7, 0x81, 0x0D,
- .byte 0x71, 0xF7, 0x85, 0x0D, 0x76, 0xF7, 0x88, 0x0D, 0x7B, 0xF7, 0x8B, 0x0D, 0x81, 0xF7, 0x8F, 0x0D,
- .byte 0x86, 0xF7, 0x92, 0x0D, 0x8B, 0xF7, 0x95, 0x0D, 0x91, 0xF7, 0x99, 0x0D, 0x96, 0xF7, 0x9C, 0x0D,
- .byte 0x9B, 0xF7, 0x9F, 0x0D, 0xA1, 0xF7, 0xA2, 0x0D, 0xA6, 0xF7, 0xA6, 0x0D, 0xAB, 0xF7, 0xA9, 0x0D,
- .byte 0xB1, 0xF7, 0xAC, 0x0D, 0xB6, 0xF7, 0xB0, 0x0D, 0xBB, 0xF7, 0xB3, 0x0D, 0xC1, 0xF7, 0xB6, 0x0D,
- .byte 0xC6, 0xF7, 0xB9, 0x0D, 0xCC, 0xF7, 0xBC, 0x0D, 0xD1, 0xF7, 0xC0, 0x0D, 0xD6, 0xF7, 0xC3, 0x0D,
- .byte 0xDC, 0xF7, 0xC6, 0x0D, 0xE1, 0xF7, 0xC9, 0x0D, 0xE7, 0xF7, 0xCC, 0x0D, 0xEC, 0xF7, 0xD0, 0x0D,
- .byte 0xF2, 0xF7, 0xD3, 0x0D, 0xF7, 0xF7, 0xD6, 0x0D, 0xFC, 0xF7, 0xD9, 0x0D, 0x02, 0xF8, 0xDC, 0x0D,
- .byte 0x07, 0xF8, 0xDF, 0x0D, 0x0D, 0xF8, 0xE3, 0x0D, 0x12, 0xF8, 0xE6, 0x0D, 0x18, 0xF8, 0xE9, 0x0D,
- .byte 0x1D, 0xF8, 0xEC, 0x0D, 0x23, 0xF8, 0xEF, 0x0D, 0x28, 0xF8, 0xF2, 0x0D, 0x2E, 0xF8, 0xF5, 0x0D,
- .byte 0x33, 0xF8, 0xF8, 0x0D, 0x38, 0xF8, 0xFB, 0x0D, 0x3E, 0xF8, 0xFE, 0x0D, 0x43, 0xF8, 0x01, 0x0E,
- .byte 0x49, 0xF8, 0x04, 0x0E, 0x4E, 0xF8, 0x07, 0x0E, 0x54, 0xF8, 0x0A, 0x0E, 0x5A, 0xF8, 0x0D, 0x0E,
- .byte 0x5F, 0xF8, 0x10, 0x0E, 0x65, 0xF8, 0x13, 0x0E, 0x6A, 0xF8, 0x16, 0x0E, 0x70, 0xF8, 0x19, 0x0E,
- .byte 0x75, 0xF8, 0x1C, 0x0E, 0x7B, 0xF8, 0x1F, 0x0E, 0x80, 0xF8, 0x22, 0x0E, 0x86, 0xF8, 0x25, 0x0E,
- .byte 0x8B, 0xF8, 0x28, 0x0E, 0x91, 0xF8, 0x2B, 0x0E, 0x96, 0xF8, 0x2E, 0x0E, 0x9C, 0xF8, 0x31, 0x0E,
- .byte 0xA2, 0xF8, 0x34, 0x0E, 0xA7, 0xF8, 0x37, 0x0E, 0xAD, 0xF8, 0x3A, 0x0E, 0xB2, 0xF8, 0x3C, 0x0E,
- .byte 0xB8, 0xF8, 0x3F, 0x0E, 0xBE, 0xF8, 0x42, 0x0E, 0xC3, 0xF8, 0x45, 0x0E, 0xC9, 0xF8, 0x48, 0x0E,
- .byte 0xCE, 0xF8, 0x4B, 0x0E, 0xD4, 0xF8, 0x4D, 0x0E, 0xDA, 0xF8, 0x50, 0x0E, 0xDF, 0xF8, 0x53, 0x0E,
- .byte 0xE5, 0xF8, 0x56, 0x0E, 0xEB, 0xF8, 0x59, 0x0E, 0xF0, 0xF8, 0x5B, 0x0E, 0xF6, 0xF8, 0x5E, 0x0E,
- .byte 0xFB, 0xF8, 0x61, 0x0E, 0x01, 0xF9, 0x64, 0x0E, 0x07, 0xF9, 0x66, 0x0E, 0x0C, 0xF9, 0x69, 0x0E,
- .byte 0x12, 0xF9, 0x6C, 0x0E, 0x18, 0xF9, 0x6F, 0x0E, 0x1D, 0xF9, 0x71, 0x0E, 0x23, 0xF9, 0x74, 0x0E,
- .byte 0x29, 0xF9, 0x77, 0x0E, 0x2E, 0xF9, 0x79, 0x0E, 0x34, 0xF9, 0x7C, 0x0E, 0x3A, 0xF9, 0x7F, 0x0E,
- .byte 0x3F, 0xF9, 0x81, 0x0E, 0x45, 0xF9, 0x84, 0x0E, 0x4B, 0xF9, 0x87, 0x0E, 0x51, 0xF9, 0x89, 0x0E,
- .byte 0x56, 0xF9, 0x8C, 0x0E, 0x5C, 0xF9, 0x8F, 0x0E, 0x62, 0xF9, 0x91, 0x0E, 0x67, 0xF9, 0x94, 0x0E,
- .byte 0x6D, 0xF9, 0x96, 0x0E, 0x73, 0xF9, 0x99, 0x0E, 0x79, 0xF9, 0x9B, 0x0E, 0x7E, 0xF9, 0x9E, 0x0E,
- .byte 0x84, 0xF9, 0xA1, 0x0E, 0x8A, 0xF9, 0xA3, 0x0E, 0x90, 0xF9, 0xA6, 0x0E, 0x95, 0xF9, 0xA8, 0x0E,
- .byte 0x9B, 0xF9, 0xAB, 0x0E, 0xA1, 0xF9, 0xAD, 0x0E, 0xA7, 0xF9, 0xB0, 0x0E, 0xAC, 0xF9, 0xB2, 0x0E,
- .byte 0xB2, 0xF9, 0xB5, 0x0E, 0xB8, 0xF9, 0xB7, 0x0E, 0xBE, 0xF9, 0xBA, 0x0E, 0xC4, 0xF9, 0xBC, 0x0E,
- .byte 0xC9, 0xF9, 0xBF, 0x0E, 0xCF, 0xF9, 0xC1, 0x0E, 0xD5, 0xF9, 0xC3, 0x0E, 0xDB, 0xF9, 0xC6, 0x0E,
- .byte 0xE1, 0xF9, 0xC8, 0x0E, 0xE6, 0xF9, 0xCB, 0x0E, 0xEC, 0xF9, 0xCD, 0x0E, 0xF2, 0xF9, 0xCF, 0x0E,
- .byte 0xF8, 0xF9, 0xD2, 0x0E, 0xFE, 0xF9, 0xD4, 0x0E, 0x03, 0xFA, 0xD6, 0x0E, 0x09, 0xFA, 0xD9, 0x0E,
- .byte 0x0F, 0xFA, 0xDB, 0x0E, 0x15, 0xFA, 0xDD, 0x0E, 0x1B, 0xFA, 0xE0, 0x0E, 0x21, 0xFA, 0xE2, 0x0E,
- .byte 0x26, 0xFA, 0xE4, 0x0E, 0x2C, 0xFA, 0xE7, 0x0E, 0x32, 0xFA, 0xE9, 0x0E, 0x38, 0xFA, 0xEB, 0x0E,
- .byte 0x3E, 0xFA, 0xEE, 0x0E, 0x44, 0xFA, 0xF0, 0x0E, 0x4A, 0xFA, 0xF2, 0x0E, 0x4F, 0xFA, 0xF4, 0x0E,
- .byte 0x55, 0xFA, 0xF7, 0x0E, 0x5B, 0xFA, 0xF9, 0x0E, 0x61, 0xFA, 0xFB, 0x0E, 0x67, 0xFA, 0xFD, 0x0E,
- .byte 0x6D, 0xFA, 0xFF, 0x0E, 0x73, 0xFA, 0x02, 0x0F, 0x79, 0xFA, 0x04, 0x0F, 0x7F, 0xFA, 0x06, 0x0F,
- .byte 0x84, 0xFA, 0x08, 0x0F, 0x8A, 0xFA, 0x0A, 0x0F, 0x90, 0xFA, 0x0C, 0x0F, 0x96, 0xFA, 0x0E, 0x0F,
- .byte 0x9C, 0xFA, 0x11, 0x0F, 0xA2, 0xFA, 0x13, 0x0F, 0xA8, 0xFA, 0x15, 0x0F, 0xAE, 0xFA, 0x17, 0x0F,
- .byte 0xB4, 0xFA, 0x19, 0x0F, 0xBA, 0xFA, 0x1B, 0x0F, 0xC0, 0xFA, 0x1D, 0x0F, 0xC6, 0xFA, 0x1F, 0x0F,
- .byte 0xCC, 0xFA, 0x21, 0x0F, 0xD1, 0xFA, 0x23, 0x0F, 0xD7, 0xFA, 0x25, 0x0F, 0xDD, 0xFA, 0x27, 0x0F,
- .byte 0xE3, 0xFA, 0x29, 0x0F, 0xE9, 0xFA, 0x2B, 0x0F, 0xEF, 0xFA, 0x2D, 0x0F, 0xF5, 0xFA, 0x2F, 0x0F,
- .byte 0xFB, 0xFA, 0x31, 0x0F, 0x01, 0xFB, 0x33, 0x0F, 0x07, 0xFB, 0x35, 0x0F, 0x0D, 0xFB, 0x37, 0x0F,
- .byte 0x13, 0xFB, 0x39, 0x0F, 0x19, 0xFB, 0x3B, 0x0F, 0x1F, 0xFB, 0x3D, 0x0F, 0x25, 0xFB, 0x3F, 0x0F,
- .byte 0x2B, 0xFB, 0x41, 0x0F, 0x31, 0xFB, 0x43, 0x0F, 0x37, 0xFB, 0x45, 0x0F, 0x3D, 0xFB, 0x46, 0x0F,
- .byte 0x43, 0xFB, 0x48, 0x0F, 0x49, 0xFB, 0x4A, 0x0F, 0x4F, 0xFB, 0x4C, 0x0F, 0x55, 0xFB, 0x4E, 0x0F,
- .byte 0x5B, 0xFB, 0x50, 0x0F, 0x61, 0xFB, 0x51, 0x0F, 0x67, 0xFB, 0x53, 0x0F, 0x6D, 0xFB, 0x55, 0x0F,
- .byte 0x73, 0xFB, 0x57, 0x0F, 0x79, 0xFB, 0x59, 0x0F, 0x7F, 0xFB, 0x5A, 0x0F, 0x85, 0xFB, 0x5C, 0x0F,
- .byte 0x8B, 0xFB, 0x5E, 0x0F, 0x91, 0xFB, 0x60, 0x0F, 0x97, 0xFB, 0x61, 0x0F, 0x9D, 0xFB, 0x63, 0x0F,
- .byte 0xA3, 0xFB, 0x65, 0x0F, 0xA9, 0xFB, 0x67, 0x0F, 0xAF, 0xFB, 0x68, 0x0F, 0xB5, 0xFB, 0x6A, 0x0F,
- .byte 0xBC, 0xFB, 0x6C, 0x0F, 0xC2, 0xFB, 0x6D, 0x0F, 0xC8, 0xFB, 0x6F, 0x0F, 0xCE, 0xFB, 0x71, 0x0F,
- .byte 0xD4, 0xFB, 0x72, 0x0F, 0xDA, 0xFB, 0x74, 0x0F, 0xE0, 0xFB, 0x76, 0x0F, 0xE6, 0xFB, 0x77, 0x0F,
- .byte 0xEC, 0xFB, 0x79, 0x0F, 0xF2, 0xFB, 0x7A, 0x0F, 0xF8, 0xFB, 0x7C, 0x0F, 0xFE, 0xFB, 0x7D, 0x0F,
- .byte 0x04, 0xFC, 0x7F, 0x0F, 0x0A, 0xFC, 0x81, 0x0F, 0x11, 0xFC, 0x82, 0x0F, 0x17, 0xFC, 0x84, 0x0F,
- .byte 0x1D, 0xFC, 0x85, 0x0F, 0x23, 0xFC, 0x87, 0x0F, 0x29, 0xFC, 0x88, 0x0F, 0x2F, 0xFC, 0x8A, 0x0F,
- .byte 0x35, 0xFC, 0x8B, 0x0F, 0x3B, 0xFC, 0x8D, 0x0F, 0x41, 0xFC, 0x8E, 0x0F, 0x47, 0xFC, 0x90, 0x0F,
- .byte 0x4E, 0xFC, 0x91, 0x0F, 0x54, 0xFC, 0x93, 0x0F, 0x5A, 0xFC, 0x94, 0x0F, 0x60, 0xFC, 0x95, 0x0F,
- .byte 0x66, 0xFC, 0x97, 0x0F, 0x6C, 0xFC, 0x98, 0x0F, 0x72, 0xFC, 0x9A, 0x0F, 0x78, 0xFC, 0x9B, 0x0F,
- .byte 0x7F, 0xFC, 0x9C, 0x0F, 0x85, 0xFC, 0x9E, 0x0F, 0x8B, 0xFC, 0x9F, 0x0F, 0x91, 0xFC, 0xA1, 0x0F,
- .byte 0x97, 0xFC, 0xA2, 0x0F, 0x9D, 0xFC, 0xA3, 0x0F, 0xA3, 0xFC, 0xA5, 0x0F, 0xAA, 0xFC, 0xA6, 0x0F,
- .byte 0xB0, 0xFC, 0xA7, 0x0F, 0xB6, 0xFC, 0xA8, 0x0F, 0xBC, 0xFC, 0xAA, 0x0F, 0xC2, 0xFC, 0xAB, 0x0F,
- .byte 0xC8, 0xFC, 0xAC, 0x0F, 0xCE, 0xFC, 0xAE, 0x0F, 0xD5, 0xFC, 0xAF, 0x0F, 0xDB, 0xFC, 0xB0, 0x0F,
- .byte 0xE1, 0xFC, 0xB1, 0x0F, 0xE7, 0xFC, 0xB3, 0x0F, 0xED, 0xFC, 0xB4, 0x0F, 0xF3, 0xFC, 0xB5, 0x0F,
- .byte 0xFA, 0xFC, 0xB6, 0x0F, 0x00, 0xFD, 0xB7, 0x0F, 0x06, 0xFD, 0xB8, 0x0F, 0x0C, 0xFD, 0xBA, 0x0F,
- .byte 0x12, 0xFD, 0xBB, 0x0F, 0x18, 0xFD, 0xBC, 0x0F, 0x1F, 0xFD, 0xBD, 0x0F, 0x25, 0xFD, 0xBE, 0x0F,
- .byte 0x2B, 0xFD, 0xBF, 0x0F, 0x31, 0xFD, 0xC0, 0x0F, 0x37, 0xFD, 0xC2, 0x0F, 0x3E, 0xFD, 0xC3, 0x0F,
- .byte 0x44, 0xFD, 0xC4, 0x0F, 0x4A, 0xFD, 0xC5, 0x0F, 0x50, 0xFD, 0xC6, 0x0F, 0x56, 0xFD, 0xC7, 0x0F,
- .byte 0x5D, 0xFD, 0xC8, 0x0F, 0x63, 0xFD, 0xC9, 0x0F, 0x69, 0xFD, 0xCA, 0x0F, 0x6F, 0xFD, 0xCB, 0x0F,
- .byte 0x75, 0xFD, 0xCC, 0x0F, 0x7C, 0xFD, 0xCD, 0x0F, 0x82, 0xFD, 0xCE, 0x0F, 0x88, 0xFD, 0xCF, 0x0F,
- .byte 0x8E, 0xFD, 0xD0, 0x0F, 0x94, 0xFD, 0xD1, 0x0F, 0x9B, 0xFD, 0xD2, 0x0F, 0xA1, 0xFD, 0xD3, 0x0F,
- .byte 0xA7, 0xFD, 0xD4, 0x0F, 0xAD, 0xFD, 0xD5, 0x0F, 0xB3, 0xFD, 0xD5, 0x0F, 0xBA, 0xFD, 0xD6, 0x0F,
- .byte 0xC0, 0xFD, 0xD7, 0x0F, 0xC6, 0xFD, 0xD8, 0x0F, 0xCC, 0xFD, 0xD9, 0x0F, 0xD3, 0xFD, 0xDA, 0x0F,
- .byte 0xD9, 0xFD, 0xDB, 0x0F, 0xDF, 0xFD, 0xDC, 0x0F, 0xE5, 0xFD, 0xDC, 0x0F, 0xEB, 0xFD, 0xDD, 0x0F,
- .byte 0xF2, 0xFD, 0xDE, 0x0F, 0xF8, 0xFD, 0xDF, 0x0F, 0xFE, 0xFD, 0xE0, 0x0F, 0x04, 0xFE, 0xE0, 0x0F,
- .byte 0x0B, 0xFE, 0xE1, 0x0F, 0x11, 0xFE, 0xE2, 0x0F, 0x17, 0xFE, 0xE3, 0x0F, 0x1D, 0xFE, 0xE3, 0x0F,
- .byte 0x24, 0xFE, 0xE4, 0x0F, 0x2A, 0xFE, 0xE5, 0x0F, 0x30, 0xFE, 0xE6, 0x0F, 0x36, 0xFE, 0xE6, 0x0F,
- .byte 0x3D, 0xFE, 0xE7, 0x0F, 0x43, 0xFE, 0xE8, 0x0F, 0x49, 0xFE, 0xE8, 0x0F, 0x4F, 0xFE, 0xE9, 0x0F,
- .byte 0x56, 0xFE, 0xEA, 0x0F, 0x5C, 0xFE, 0xEA, 0x0F, 0x62, 0xFE, 0xEB, 0x0F, 0x68, 0xFE, 0xEC, 0x0F,
- .byte 0x6F, 0xFE, 0xEC, 0x0F, 0x75, 0xFE, 0xED, 0x0F, 0x7B, 0xFE, 0xED, 0x0F, 0x81, 0xFE, 0xEE, 0x0F,
- .byte 0x88, 0xFE, 0xEF, 0x0F, 0x8E, 0xFE, 0xEF, 0x0F, 0x94, 0xFE, 0xF0, 0x0F, 0x9A, 0xFE, 0xF0, 0x0F,
- .byte 0xA1, 0xFE, 0xF1, 0x0F, 0xA7, 0xFE, 0xF1, 0x0F, 0xAD, 0xFE, 0xF2, 0x0F, 0xB3, 0xFE, 0xF2, 0x0F,
- .byte 0xBA, 0xFE, 0xF3, 0x0F, 0xC0, 0xFE, 0xF3, 0x0F, 0xC6, 0xFE, 0xF4, 0x0F, 0xCC, 0xFE, 0xF4, 0x0F,
- .byte 0xD3, 0xFE, 0xF5, 0x0F, 0xD9, 0xFE, 0xF5, 0x0F, 0xDF, 0xFE, 0xF6, 0x0F, 0xE5, 0xFE, 0xF6, 0x0F,
- .byte 0xEC, 0xFE, 0xF7, 0x0F, 0xF2, 0xFE, 0xF7, 0x0F, 0xF8, 0xFE, 0xF8, 0x0F, 0xFF, 0xFE, 0xF8, 0x0F,
- .byte 0x05, 0xFF, 0xF8, 0x0F, 0x0B, 0xFF, 0xF9, 0x0F, 0x11, 0xFF, 0xF9, 0x0F, 0x18, 0xFF, 0xF9, 0x0F,
- .byte 0x1E, 0xFF, 0xFA, 0x0F, 0x24, 0xFF, 0xFA, 0x0F, 0x2A, 0xFF, 0xFA, 0x0F, 0x31, 0xFF, 0xFB, 0x0F,
- .byte 0x37, 0xFF, 0xFB, 0x0F, 0x3D, 0xFF, 0xFB, 0x0F, 0x44, 0xFF, 0xFC, 0x0F, 0x4A, 0xFF, 0xFC, 0x0F,
- .byte 0x50, 0xFF, 0xFC, 0x0F, 0x56, 0xFF, 0xFC, 0x0F, 0x5D, 0xFF, 0xFD, 0x0F, 0x63, 0xFF, 0xFD, 0x0F,
- .byte 0x69, 0xFF, 0xFD, 0x0F, 0x70, 0xFF, 0xFD, 0x0F, 0x76, 0xFF, 0xFE, 0x0F, 0x7C, 0xFF, 0xFE, 0x0F,
- .byte 0x82, 0xFF, 0xFE, 0x0F, 0x89, 0xFF, 0xFE, 0x0F, 0x8F, 0xFF, 0xFE, 0x0F, 0x95, 0xFF, 0xFF, 0x0F,
- .byte 0x9B, 0xFF, 0xFF, 0x0F, 0xA2, 0xFF, 0xFF, 0x0F, 0xA8, 0xFF, 0xFF, 0x0F, 0xAE, 0xFF, 0xFF, 0x0F,
- .byte 0xB5, 0xFF, 0xFF, 0x0F, 0xBB, 0xFF, 0xFF, 0x0F, 0xC1, 0xFF, 0x00, 0x10, 0xC7, 0xFF, 0x00, 0x10,
- .byte 0xCE, 0xFF, 0x00, 0x10, 0xD4, 0xFF, 0x00, 0x10, 0xDA, 0xFF, 0x00, 0x10, 0xE1, 0xFF, 0x00, 0x10,
- .byte 0xE7, 0xFF, 0x00, 0x10, 0xED, 0xFF, 0x00, 0x10, 0xF3, 0xFF, 0x00, 0x10, 0xFA, 0xFF, 0x00, 0x10
-
- .section .data
-
- .global UNK_0210655C
-UNK_0210655C: ; 0x0210655C
- .word FUN_020B1088
- .word FUN_020B1098
- .word 0
- .word 0
- .word 0
-
- .global UNK_02106570
-UNK_02106570: ; 0x02106570
- .short -2
-
- .balign 4, 0
- .global UNK_02106574
-UNK_02106574: ; 0x02106574
- .word -1
-
- .global UNK_02106578
-UNK_02106578: ; 0x02106578
- .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_02106590
-UNK_02106590: ; 0x02106590
- .byte 0x00, 0xF0, 0xFF, 0xFF
-
- .global UNK_02106594
-UNK_02106594: ; 0x02106594
- .byte 0x05, 0x00, 0x00, 0x00
-
- .global UNK_02106598
-UNK_02106598: ; 0x02106598
- .word FUN_020BE5A0
-
- .global UNK_0210659C
-UNK_0210659C: ; 0x0210659C
- .word FUN_020BDA70
-
- .global UNK_021065A0
-UNK_021065A0: ; 0x021065A0
- .word FUN_020BDF38
-
- .global UNK_021065A4
-UNK_021065A4: ; 0x021065A4
- .word FUN_020BE334
-
- .global UNK_021065A8
-UNK_021065A8: ; 0x021065A8
- .word FUN_020BDB40
-
- .global UNK_021065AC
-UNK_021065AC: ; 0x021065AC
- .word FUN_020B8640
-
- .global UNK_021065B0
-UNK_021065B0: ; 0x021065B0
- .word FUN_020B86B0
-
- .global UNK_021065B4
-UNK_021065B4: ; 0x021065B4
- .word FUN_020B8A08
-
- .global UNK_021065B8
-UNK_021065B8: ; 0x021065B8
- .byte 0x4D, 0x00, 0x41, 0x4D
-
- .global UNK_021065BC
-UNK_021065BC: ; 0x021065BC
- .word FUN_020BDC0C
- .byte 0x4D, 0x00, 0x50, 0x54
- .word FUN_020BE4F0
- .byte 0x4D, 0x00, 0x41, 0x54
- .word FUN_020BDF84
- .byte 0x56, 0x00, 0x41, 0x56
- .word FUN_020BE5E0
- .byte 0x4A, 0x00, 0x41, 0x43
- .word FUN_020BDAB4
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_02106608
-UNK_02106608: ; 0x02106608
- .word FUN_020BE668
- .word FUN_020BEE3C
- .word FUN_020BF2FC
-
- .global UNK_02106614
-UNK_02106614: ; 0x02106614
- .word FUN_020BE62C
- .word FUN_020BECEC
- .word FUN_020BF0D4
-
- .global UNK_02106620
-UNK_02106620: ; 0x02106620
- .word FUN_020BE6E4
- .word FUN_020BEF10
- .word FUN_020BF42C
- .word FUN_020BFA9C
-
- .global UNK_02106630
-UNK_02106630: ; 0x02106630
- .byte 0x2A, 0x00, 0x00, 0x00
-
- .global UNK_02106634
-UNK_02106634: ; 0x02106634
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global UNK_02106638
-UNK_02106638: ; 0x02106638
- .byte 0x2A, 0x00, 0x00, 0x00
-
- .global UNK_0210663C
-UNK_0210663C: ; 0x0210663C
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global UNK_02106640
-UNK_02106640: ; 0x02106640
- .word FUN_020BA58C
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_02106650
-UNK_02106650: ; 0x02106650
- .word FUN_020BA438
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_02106660
-UNK_02106660: ; 0x02106660
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
-
- .global UNK_021066A0
-UNK_021066A0: ; 0x021066A0
- .byte 0x12, 0x10, 0x17, 0x1B
-
- .global UNK_021066A4
-UNK_021066A4: ; 0x021066A4
- .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
-
- .global UNK_021066AC
-UNK_021066AC: ; 0x021066AC
- .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x10, 0x00, 0x00
-
- .global UNK_021066D0
-UNK_021066D0: ; 0x021066D0
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_021066DC
-UNK_021066DC: ; 0x021066DC
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_021066E8
-UNK_021066E8: ; 0x021066E8
- .byte 0x12, 0x10, 0x17, 0x1B
-
- .global UNK_021066EC
-UNK_021066EC: ; 0x021066EC
- .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
-
- .global UNK_021066F4
-UNK_021066F4: ; 0x021066F4
- .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x10, 0x00, 0x00
-
- .global UNK_02106718
-UNK_02106718: ; 0x02106718
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_02106724
-UNK_02106724: ; 0x02106724
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_02106730
-UNK_02106730: ; 0x02106730
- .word FUN_020BAC70
- .word FUN_020BAC48
- .word FUN_020BAAC0
- .word FUN_020BA9EC
- .word FUN_020BA50C
- .word FUN_020BA3C4
- .word FUN_020B9F84
- .word FUN_020B9C54
- .word FUN_020B98C4
- .word FUN_020B9258
- .word FUN_020B9178
- .word FUN_020B9110
- .word FUN_020B8DF0
- .word FUN_020B8A60
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_021067B0
-UNK_021067B0: ; 0x021067B0
- .word FUN_020BEBD8
- .word FUN_020BEB00
- .word FUN_020BEA84
- .word FUN_020BEA3C
- .word FUN_020BE954
- .word FUN_020BE894
- .word FUN_020BE850
- .word FUN_020BE82C
-
- .global UNK_021067D0
-UNK_021067D0: ; 0x021067D0
- .word FUN_020BF988
- .word FUN_020BF894
- .word FUN_020BF810
- .word FUN_020BF7C8
- .word FUN_020BF6C8
- .word FUN_020BF5E8
- .word FUN_020BF598
- .word FUN_020BF574
-
- .global UNK_021067F0
-UNK_021067F0: ; 0x021067F0
- .word FUN_020BFFD4
- .word FUN_020BFEEC
- .word FUN_020BFE68
- .word FUN_020BFE0C
- .word FUN_020BFD38
- .word FUN_020BFC8C
- .word FUN_020BFC4C
- .word FUN_020BFC28
-
- .section .bss
-
- .global UNK_021CCD6C
-UNK_021CCD6C: ; 0x021CCD6C
- .space 0x4
-
- .global UNK_021CCD70
-UNK_021CCD70: ; 0x021CCD70
- .space 0x4
-
- .global UNK_021CCD74
-UNK_021CCD74: ; 0x021CCD74
- .space 0x14
-
- .global UNK_021CCD88
-UNK_021CCD88: ; 0x021CCD88
- .space 0x4
-
- .global UNK_021CCD8C
-UNK_021CCD8C: ; 0x021CCD8C
- .space 0x10
-
- .global UNK_021CCD9C
-UNK_021CCD9C: ; 0x021CCD9C
- .space 0x4
-
- .global UNK_021CCDA0
-UNK_021CCDA0: ; 0x021CCDA0
- .space 0x100
-
- .global UNK_021CCEA0
-UNK_021CCEA0: ; 0x021CCEA0
- .space 0x400
-
- .global UNK_021CD2A0
-UNK_021CD2A0: ; 0x021CD2A0
- .space 0x40
-
- .global UNK_021CD2E0
-UNK_021CD2E0: ; 0x021CD2E0
- .space 0x100
-
- .global UNK_021CD3E0
-UNK_021CD3E0: ; 0x021CD3E0
- .space 0x400
-
- .global UNK_021CD7E0
-UNK_021CD7E0: ; 0x021CD7E0
- .space 0x40
-
- .global UNK_021CD820
-UNK_021CD820: ; 0x021CD820
- .space 0x100
-
- .global UNK_021CD920
-UNK_021CD920: ; 0x021CD920
- .space 0x400
-
- .global UNK_021CDD20
-UNK_021CDD20: ; 0x021CDD20
- .space 0x40
-
- .global UNK_021CDD60
-UNK_021CDD60: ; 0x021CDD60
- .space 0x4
-
- .global UNK_021CDD64
-UNK_021CDD64: ; 0x021CDD64
- .space 0x4
-
- .global UNK_021CDD68
-UNK_021CDD68: ; 0x021CDD68
- .space 0x4
-
- .global UNK_021CDD6C
-UNK_021CDD6C: ; 0x021CDD6C
- .space 0x4
-
- .global UNK_021CDD70
-UNK_021CDD70: ; 0x021CDD70
- .space 0x4
-
- .global UNK_021CDD74
-UNK_021CDD74: ; 0x021CDD74
- .space 0x80
-
- .global UNK_021CDDF4
-UNK_021CDDF4: ; 0x021CDDF4
- .space 0x4
-
- .global UNK_021CDDF8
-UNK_021CDDF8: ; 0x021CDDF8
- .space 0xfc
-
- .global UNK_021CDEF4
-UNK_021CDEF4: ; 0x021CDEF4
- .space 0x10
-
- .global UNK_021CDF04
-UNK_021CDF04: ; 0x021CDF04
- .space 0x4
-
- .global UNK_021CDF08
-UNK_021CDF08: ; 0x021CDF08
- .space 0x2ec
-
- .global UNK_021CE1F4
-UNK_021CE1F4: ; 0x021CE1F4
- .space 0x300
-
- .global UNK_021CE4F4
-UNK_021CE4F4: ; 0x021CE4F4
- .space 0x400
-
- .global UNK_021CE8F4
-UNK_021CE8F4: ; 0x021CE8F4
- .space 0x4
-
- .global UNK_021CE8F8
-UNK_021CE8F8: ; 0x021CE8F8
- .space 0x404
-
- .global UNK_021CECFC
-UNK_021CECFC: ; 0x021CECFC
- .space 0x4
-
- .global UNK_021CED00
-UNK_021CED00: ; 0x021CED00
- .space 0x4
-
- .global UNK_021CED04
-UNK_021CED04: ; 0x021CED04
- .space 0x4
-
- .global UNK_021CED08
-UNK_021CED08: ; 0x021CED08
- .space 0x4
-
- .global UNK_021CED0C
-UNK_021CED0C: ; 0x021CED0C
- .space 0x4
-
- .global UNK_021CED10
-UNK_021CED10: ; 0x021CED10
- .space 0x4
-
- .global UNK_021CED14
-UNK_021CED14: ; 0x021CED14
- .space 0x4
-
- .global UNK_021CED18
-UNK_021CED18: ; 0x021CED18
- .space 0x8
-
- .global UNK_021CED20
-UNK_021CED20: ; 0x021CED20
- .space 0x44
-
- .global UNK_021CED64
-UNK_021CED64: ; 0x021CED64
- .space 0x34
-
- .global UNK_021CED98
-UNK_021CED98: ; 0x021CED98
- .space 0x28
-
- .global UNK_021CEDC0
-UNK_021CEDC0: ; 0x021CEDC0
- .space 0x14
-
- .global UNK_021CEDD4
-UNK_021CEDD4: ; 0x021CEDD4
- .space 0x24
-
- .global UNK_021CEDF8
-UNK_021CEDF8: ; 0x021CEDF8
- .space 0xc
-
- .global UNK_021CEE04
-UNK_021CEE04: ; 0x021CEE04
- .space 0x14
-
- .global UNK_021CEE18
-UNK_021CEE18: ; 0x021CEE18
- .space 0x30
-
- .global UNK_021CEE48
-UNK_021CEE48: ; 0x021CEE48
- .space 0x30
-
- .global UNK_021CEE78
-UNK_021CEE78: ; 0x021CEE78
- .space 0xe0
-
- .global UNK_021CEF58
-UNK_021CEF58: ; 0x021CEF58
- .space 0xc
-
- .global UNK_021CEF64
-UNK_021CEF64: ; 0x021CEF64
- .space 0xc
-
- .global UNK_021CEF70
-UNK_021CEF70: ; 0x021CEF70
- .space 0xc
-
- .global UNK_021CEF7C
-UNK_021CEF7C: ; 0x021CEF7C
- .space 0x4
-
- .global UNK_021CEF80
-UNK_021CEF80: ; 0x021CEF80
- .space 0xe00
-
- .global UNK_021CFD80
-UNK_021CFD80: ; 0x021CFD80
- .space 0x4
-
- .global UNK_021CFD84
-UNK_021CFD84: ; 0x021CFD84
- .space 0x4
-
- .global UNK_021CFD88
-UNK_021CFD88: ; 0x021CFD88
- .space 0x4
-
- .global UNK_021CFD8C
-UNK_021CFD8C: ; 0x021CFD8C
- .space 0x4
-
- .global UNK_021CFD90
-UNK_021CFD90: ; 0x021CFD90
- .space 0x4
-
- .global UNK_021CFD94
-UNK_021CFD94: ; 0x021CFD94
- .space 0x2ba
-
- .global UNK_021D004E
-UNK_021D004E: ; 0x021D004E
- .space 0x332
-
- .global UNK_021D0380
-UNK_021D0380: ; 0x021D0380
- .space 0x40
-
- .global UNK_021D03C0
-UNK_021D03C0: ; 0x021D03C0
- .space 0xb42
-
- .global UNK_021D0F02
-UNK_021D0F02: ; 0x021D0F02
- .space 0xd7e
-
- .global UNK_021D1C80
-UNK_021D1C80: ; 0x021D1C80
- .space 0x4
-
- .global UNK_021D1C84
-UNK_021D1C84: ; 0x021D1C84
- .space 0x4
-
- .global UNK_021D1C88
-UNK_021D1C88: ; 0x021D1C88
- .space 0x4
-
- .global UNK_021D1C8C
-UNK_021D1C8C: ; 0x021D1C8C
- .space 0x4
-
- .global UNK_021D1C90
-UNK_021D1C90: ; 0x021D1C90
- .space 0x4
-
- .global UNK_021D1C94
-UNK_021D1C94: ; 0x021D1C94
- .space 0x4
-
- .global UNK_021D1C98
-UNK_021D1C98: ; 0x021D1C98
- .space 0xc
-
- .global UNK_021D1CA4
-UNK_021D1CA4: ; 0x021D1CA4
- .space 0xc
-
- .global UNK_021D1CB0
-UNK_021D1CB0: ; 0x021D1CB0
- .space 0x4
-
- .global UNK_021D1CB4
-UNK_021D1CB4: ; 0x021D1CB4
- .space 0x4
-
- .global UNK_021D1CB8
-UNK_021D1CB8: ; 0x021D1CB8
- .space 0x4
-
- .global UNK_021D1CBC
-UNK_021D1CBC: ; 0x021D1CBC
- .space 0x140
-
- .global UNK_021D1DFC
-UNK_021D1DFC: ; 0x021D1DFC
- .space 0xc
-
- .global UNK_021D1E08
-UNK_021D1E08: ; 0x021D1E08
- .space 0xc
-
- .global UNK_021D1E14
-UNK_021D1E14: ; 0x021D1E14
- .space 0x440
-
- .global UNK_021D2254
-UNK_021D2254: ; 0x021D2254
- .space 0x8
-
- .global UNK_021D225C
-UNK_021D225C: ; 0x021D225C
- .space 0x10
-
- .global UNK_021D226C
-UNK_021D226C: ; 0x021D226C
- .space 0x4
-
- .global UNK_021D2270
-UNK_021D2270: ; 0x021D2270
- .space 0x4
-
- .global UNK_021D2274
-UNK_021D2274: ; 0x021D2274
- .space 0x460
-
- .global UNK_021D26D4
-UNK_021D26D4: ; 0x021D26D4
- .space 0x4
-
- .global UNK_021D26D8
-UNK_021D26D8: ; 0x021D26D8
- .space 0xc
-
- .global UNK_021D26E4
-UNK_021D26E4: ; 0x021D26E4
- .space 0x40
-
- .global UNK_021D2724
-UNK_021D2724: ; 0x021D2724
- .space 0x80
-
- .global UNK_021D27A4
-UNK_021D27A4: ; 0x021D27A4
- .space 0x4
-
- .global UNK_021D27A8
-UNK_021D27A8: ; 0x021D27A8
- .space 0x4
-
- .global UNK_021D27AC
-UNK_021D27AC: ; 0x021D27AC
- .space 0x20
-
- .global UNK_021D27CC
-UNK_021D27CC: ; 0x021D27CC
- .space 0x54
-
- .global UNK_021D2820
-UNK_021D2820: ; 0x021D2820
- .space 0xa0
-
- .global UNK_021D28C0
-UNK_021D28C0: ; 0x021D28C0
- .space 0x4
-
- .global UNK_021D28C4
-UNK_021D28C4: ; 0x021D28C4
- .space 0x3c
-
- .global UNK_021D2900
-UNK_021D2900: ; 0x021D2900
- .space 0x4
-
- .global UNK_021D2904
-UNK_021D2904: ; 0x021D2904
- .space 0x4d4
-
- .global UNK_021D2DD8
-UNK_021D2DD8: ; 0x021D2DD8
- .space 0x18
-
- .global UNK_021D2DF0
-UNK_021D2DF0: ; 0x021D2DF0
- .space 0xc
-
- .global UNK_021D2DFC
-UNK_021D2DFC: ; 0x021D2DFC
- .space 0x5c0
-
- .text
-
- arm_func_start GXS_LoadOBJ_2
-GXS_LoadOBJ_2:
- ldr ip, _020AF038 ; =GXS_LoadOBJ
- bx r12
- .balign 4
-_020AF038: .word GXS_LoadOBJ
-
- arm_func_start GXS_LoadOAM_2
-GXS_LoadOAM_2: ; 0x020AF03C
- ldr ip, _020AF044 ; =GXS_LoadOAM
- bx r12
- .balign 4
-_020AF044: .word GXS_LoadOAM
-
- arm_func_start FUN_020AF048
-FUN_020AF048: ; 0x020AF048
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- mov r5, r1
- mov r4, r2
- bl GXS_BeginLoadBGExtPltt
- mov r0, r6
- mov r1, r5
- mov r2, r4
- bl GXS_LoadBGExtPltt
- bl GXS_EndLoadBGExtPltt
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020AF074
-FUN_020AF074: ; 0x020AF074
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- mov r5, r1
- mov r4, r2
- bl GXS_BeginLoadOBJExtPltt
- mov r0, r6
- mov r1, r5
- mov r2, r4
- bl GXS_LoadOBJExtPltt
- bl GXS_EndLoadOBJExtPltt
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start GXS_LoadBGPltt_2
-GXS_LoadBGPltt_2: ; 0x020AF0A0
- ldr ip, _020AF0A8 ; =GXS_LoadBGPltt
- bx r12
- .balign 4
-_020AF0A8: .word GXS_LoadBGPltt
-
- arm_func_start GXS_LoadOBJPltt_2
-GXS_LoadOBJPltt_2: ; 0x020AF0AC
- ldr ip, _020AF0B4 ; =GXS_LoadOBJPltt
- bx r12
- .balign 4
-_020AF0B4: .word GXS_LoadOBJPltt
-
- arm_func_start GXS_LoadBG3Scr_3
-GXS_LoadBG3Scr_3: ; 0x020AF0B8
- ldr ip, _020AF0C0 ; =GXS_LoadBG3Scr
- bx r12
- .balign 4
-_020AF0C0: .word GXS_LoadBG3Scr
-
- arm_func_start GXS_LoadBG2Scr_3
-GXS_LoadBG2Scr_3: ; 0x020AF0C4
- ldr ip, _020AF0CC ; =GXS_LoadBG2Scr
- bx r12
- .balign 4
-_020AF0CC: .word GXS_LoadBG2Scr
-
- arm_func_start GXS_LoadBG3Scr_2
-GXS_LoadBG3Scr_2: ; 0x020AF0D0
- ldr ip, _020AF0D8 ; =GXS_LoadBG3Scr
- bx r12
- .balign 4
-_020AF0D8: .word GXS_LoadBG3Scr
-
- arm_func_start GXS_LoadBG2Scr_2
-GXS_LoadBG2Scr_2: ; 0x020AF0DC
- ldr ip, _020AF0E4 ; =GXS_LoadBG2Scr
- bx r12
- .balign 4
-_020AF0E4: .word GXS_LoadBG2Scr
-
- arm_func_start GXS_LoadBG1Scr_2
-GXS_LoadBG1Scr_2: ; 0x020AF0E8
- ldr ip, _020AF0F0 ; =GXS_LoadBG1Scr
- bx r12
- .balign 4
-_020AF0F0: .word GXS_LoadBG1Scr
-
- arm_func_start GXS_LoadBG0Scr_2
-GXS_LoadBG0Scr_2: ; 0x020AF0F4
- ldr ip, _020AF0FC ; =GXS_LoadBG0Scr
- bx r12
- .balign 4
-_020AF0FC: .word GXS_LoadBG0Scr
-
- arm_func_start GXS_LoadBG3Char_2
-GXS_LoadBG3Char_2: ; 0x020AF100
- ldr ip, _020AF108 ; =GXS_LoadBG3Char
- bx r12
- .balign 4
-_020AF108: .word GXS_LoadBG3Char
-
- arm_func_start GXS_LoadBG2Char_2
-GXS_LoadBG2Char_2: ; 0x020AF10C
- ldr ip, _020AF114 ; =GXS_LoadBG2Char
- bx r12
- .balign 4
-_020AF114: .word GXS_LoadBG2Char
-
- arm_func_start GXS_LoadBG1Char_2
-GXS_LoadBG1Char_2: ; 0x020AF118
- ldr ip, _020AF120 ; =GXS_LoadBG1Char
- bx r12
- .balign 4
-_020AF120: .word GXS_LoadBG1Char
-
- arm_func_start GXS_LoadBG0Char_2
-GXS_LoadBG0Char_2: ; 0x020AF124
- ldr ip, _020AF12C ; =GXS_LoadBG0Char
- bx r12
- .balign 4
-_020AF12C: .word GXS_LoadBG0Char
-
- arm_func_start GX_LoadOBJ_2
-GX_LoadOBJ_2: ; 0x020AF130
- ldr ip, _020AF138 ; =GX_LoadOBJ
- bx r12
- .balign 4
-_020AF138: .word GX_LoadOBJ
-
- arm_func_start GX_LoadOAM_2
-GX_LoadOAM_2: ; 0x020AF13C
- ldr ip, _020AF144 ; =GX_LoadOAM
- bx r12
- .balign 4
-_020AF144: .word GX_LoadOAM
-
- arm_func_start FUN_020AF148
-FUN_020AF148: ; 0x020AF148
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- mov r5, r1
- mov r4, r2
- bl GX_BeginLoadBGExtPltt
- mov r0, r6
- mov r1, r5
- mov r2, r4
- bl GX_LoadBGExtPltt
- bl GX_EndLoadBGExtPltt
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020AF174
-FUN_020AF174: ; 0x020AF174
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- mov r5, r1
- mov r4, r2
- bl GX_BeginLoadOBJExtPltt
- mov r0, r6
- mov r1, r5
- mov r2, r4
- bl GX_LoadOBJExtPltt
- bl GX_EndLoadOBJExtPltt
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start GX_LoadBGPltt_2
-GX_LoadBGPltt_2: ; 0x020AF1A0
- ldr ip, _020AF1A8 ; =GX_LoadBGPltt
- bx r12
- .balign 4
-_020AF1A8: .word GX_LoadBGPltt
-
- arm_func_start GX_LoadOBJPltt_2
-GX_LoadOBJPltt_2: ; 0x020AF1AC
- ldr ip, _020AF1B4 ; =GX_LoadOBJPltt
- bx r12
- .balign 4
-_020AF1B4: .word GX_LoadOBJPltt
-
- arm_func_start GX_LoadBG3Scr_3
-GX_LoadBG3Scr_3: ; 0x020AF1B8
- ldr ip, _020AF1C0 ; =GX_LoadBG3Scr
- bx r12
- .balign 4
-_020AF1C0: .word GX_LoadBG3Scr
-
- arm_func_start GX_LoadBG2Scr_3
-GX_LoadBG2Scr_3: ; 0x020AF1C4
- ldr ip, _020AF1CC ; =GX_LoadBG2Scr
- bx r12
- .balign 4
-_020AF1CC: .word GX_LoadBG2Scr
-
- arm_func_start GX_LoadBG3Scr_2
-GX_LoadBG3Scr_2: ; 0x020AF1D0
- ldr ip, _020AF1D8 ; =GX_LoadBG3Scr
- bx r12
- .balign 4
-_020AF1D8: .word GX_LoadBG3Scr
-
- arm_func_start GX_LoadBG2Scr_2
-GX_LoadBG2Scr_2: ; 0x020AF1DC
- ldr ip, _020AF1E4 ; =GX_LoadBG2Scr
- bx r12
- .balign 4
-_020AF1E4: .word GX_LoadBG2Scr
-
- arm_func_start GX_LoadBG1Scr_2
-GX_LoadBG1Scr_2: ; 0x020AF1E8
- ldr ip, _020AF1F0 ; =GX_LoadBG1Scr
- bx r12
- .balign 4
-_020AF1F0: .word GX_LoadBG1Scr
-
- arm_func_start GX_LoadBG0Scr_2
-GX_LoadBG0Scr_2: ; 0x020AF1F4
- ldr ip, _020AF1FC ; =GX_LoadBG0Scr
- bx r12
- .balign 4
-_020AF1FC: .word GX_LoadBG0Scr
-
- arm_func_start GX_LoadBG3Char_2
-GX_LoadBG3Char_2: ; 0x020AF200
- ldr ip, _020AF208 ; =GX_LoadBG3Char
- bx r12
- .balign 4
-_020AF208: .word GX_LoadBG3Char
-
- arm_func_start GX_LoadBG2Char_2
-GX_LoadBG2Char_2: ; 0x020AF20C
- ldr ip, _020AF214 ; =GX_LoadBG2Char
- bx r12
- .balign 4
-_020AF214: .word GX_LoadBG2Char
-
- arm_func_start GX_LoadBG1Char_2
-GX_LoadBG1Char_2: ; 0x020AF218
- ldr ip, _020AF220 ; =GX_LoadBG1Char
- bx r12
- .balign 4
-_020AF220: .word GX_LoadBG1Char
-
- arm_func_start GX_LoadBG0Char_2
-GX_LoadBG0Char_2: ; 0x020AF224
- ldr ip, _020AF22C ; =GX_LoadBG0Char
- bx r12
- .balign 4
-_020AF22C: .word GX_LoadBG0Char
-
- arm_func_start FUN_020AF230
-FUN_020AF230: ; 0x020AF230
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- mov r4, r2
- bl GX_BeginLoadClearImage
- mov r0, r5
- mov r1, r4
- bl GX_LoadClearImageDepth
- bl GX_EndLoadClearImage
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020AF25C
-FUN_020AF25C: ; 0x020AF25C
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- mov r4, r2
- bl GX_BeginLoadClearImage
- mov r0, r5
- mov r1, r4
- bl GX_LoadClearImageColor
- bl GX_EndLoadClearImage
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020AF288
-FUN_020AF288: ; 0x020AF288
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- mov r5, r1
- mov r4, r2
- bl GX_BeginLoadTexPltt
- mov r0, r6
- mov r1, r5
- mov r2, r4
- bl GX_LoadTexPltt
- bl GX_EndLoadTexPltt
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020AF2B4
-FUN_020AF2B4: ; 0x020AF2B4
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- mov r5, r1
- mov r4, r2
- bl GX_BeginLoadTex
- mov r0, r6
- mov r1, r5
- mov r2, r4
- bl GX_LoadTex
- bl GX_EndLoadTex
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020AF2E0
-FUN_020AF2E0: ; 0x020AF2E0
- ldrh r0, [r0, #0xc]
- cmp r0, #0x0
- moveq r0, #0x1
- movne r0, #0x0
- bx lr
-
- arm_func_start FUN_020AF2F4
-FUN_020AF2F4: ; 0x020AF2F4
- ldrh r1, [r0, #0xc]
- ldr r0, [r0, #0x4]
- cmp r1, r0
- moveq r0, #0x1
- movne r0, #0x0
- bx lr
-
- arm_func_start FUN_020AF30C
-FUN_020AF30C: ; 0x020AF30C
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r2, r0
- add r0, r1, #0x1
- ldr r1, [r2, #0x4]
- bl _u32_div_f
- mov r0, r1, lsl #0x10
- mov r0, r0, lsr #0x10
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020AF334
-FUN_020AF334:
- stmdb sp!, {r4-r6,lr}
- sub sp, sp, #0x10
- add r3, r2, r3
- str r2, [sp, #0x0]
- str r2, [sp, #0x8]
- str r3, [sp, #0x4]
- str r3, [sp, #0xc]
- ldr r3, [r0, #0x0]
- add r12, sp, #0x0
- cmp r3, #0x0
- beq _020AF418
- mov r6, #0x0
-_020AF364:
- ldr r5, [r3, #0x0]
- ldr r4, [r12, #0x4]
- ldr r2, [r3, #0xc]
- cmp r5, r4
- bne _020AF3B8
- ldr r4, [r3, #0x4]
- add r4, r5, r4
- str r4, [sp, #0xc]
- ldr r4, [r3, #0x8]
- cmp r4, #0x0
- strne r2, [r4, #0xc]
- streq r2, [r0, #0x0]
- cmp r2, #0x0
- strne r4, [r2, #0x8]
- ldr r4, [r1, #0x0]
- cmp r4, #0x0
- strne r3, [r4, #0x8]
- ldr r4, [r1, #0x0]
- str r4, [r3, #0xc]
- str r6, [r3, #0x8]
- str r3, [r1, #0x0]
-_020AF3B8:
- ldr r5, [r3, #0x0]
- ldr lr, [r3, #0x4]
- ldr r4, [r12, #0x0]
- add lr, r5, lr
- cmp r4, lr
- bne _020AF40C
- str r5, [sp, #0x8]
- ldr r5, [r3, #0x8]
- ldr r4, [r3, #0xc]
- cmp r5, #0x0
- strne r4, [r5, #0xc]
- streq r4, [r0, #0x0]
- cmp r4, #0x0
- strne r5, [r4, #0x8]
- ldr lr, [r1, #0x0]
- cmp lr, #0x0
- strne r3, [lr, #0x8]
- ldr lr, [r1, #0x0]
- str lr, [r3, #0xc]
- str r6, [r3, #0x8]
- str r3, [r1, #0x0]
-_020AF40C:
- mov r3, r2
- cmp r2, #0x0
- bne _020AF364
-_020AF418:
- ldr r4, [r1, #0x0]
- cmp r4, #0x0
- ldrne r2, [r4, #0xc]
- strne r2, [r1, #0x0]
- cmp r4, #0x0
- addeq sp, sp, #0x10
- moveq r0, #0x0
- ldmeqia sp!, {r4-r6,pc}
- ldr r2, [sp, #0x8]
- mov r1, #0x0
- str r2, [r4, #0x0]
- ldr r3, [sp, #0xc]
- ldr r2, [sp, #0x8]
- sub r2, r3, r2
- str r2, [r4, #0x4]
- str r1, [r4, #0x8]
- str r1, [r4, #0xc]
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- strne r4, [r1, #0x8]
- ldr r2, [r0, #0x0]
- mov r1, #0x0
- str r2, [r4, #0xc]
- str r1, [r4, #0x8]
- str r4, [r0, #0x0]
- mov r0, #0x1
- add sp, sp, #0x10
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020AF488
-FUN_020AF488:
- stmdb sp!, {r4-r10,lr}
- ldr r4, [r0, #0x0]
- ldr r9, [sp, #0x20]
- cmp r4, #0x0
- mov r5, #0x0
- beq _020AF4EC
- sub r12, r9, #0x1
- mvn lr, r12
-_020AF4A8:
- cmp r9, #0x1
- ldrls r8, [r4, #0x0]
- movls r6, r5
- movls r7, r3
- bls _020AF4D0
- ldr r7, [r4, #0x0]
- add r6, r7, r12
- and r8, lr, r6
- sub r6, r8, r7
- add r7, r3, r6
-_020AF4D0:
- ldr r10, [r4, #0x4]
- cmp r10, r7
- movcs r5, r4
- bhs _020AF4EC
- ldr r4, [r4, #0xc]
- cmp r4, #0x0
- bne _020AF4A8
-_020AF4EC:
- cmp r5, #0x0
- beq _020AF5B8
- cmp r6, #0x0
- beq _020AF54C
- ldr r9, [r1, #0x0]
- cmp r9, #0x0
- ldrne r3, [r9, #0xc]
- strne r3, [r1, #0x0]
- cmp r9, #0x0
- beq _020AF5B8
- ldr r4, [r5, #0x0]
- mov r3, #0x0
- str r4, [r9, #0x0]
- str r6, [r9, #0x4]
- str r3, [r9, #0x8]
- str r3, [r9, #0xc]
- ldr r3, [r0, #0x0]
- cmp r3, #0x0
- strne r9, [r3, #0x8]
- ldr r4, [r0, #0x0]
- mov r3, #0x0
- str r4, [r9, #0xc]
- str r3, [r9, #0x8]
- str r9, [r0, #0x0]
-_020AF54C:
- ldr r3, [r5, #0x4]
- sub r3, r3, r7
- str r3, [r5, #0x4]
- ldr r3, [r5, #0x0]
- add r3, r3, r7
- str r3, [r5, #0x0]
- ldr r3, [r5, #0x4]
- cmp r3, #0x0
- bne _020AF5AC
- ldr r4, [r5, #0x8]
- ldr r3, [r5, #0xc]
- cmp r4, #0x0
- strne r3, [r4, #0xc]
- streq r3, [r0, #0x0]
- cmp r3, #0x0
- strne r4, [r3, #0x8]
- ldr r0, [r1, #0x0]
- cmp r0, #0x0
- strne r5, [r0, #0x8]
- ldr r3, [r1, #0x0]
- mov r0, #0x0
- str r3, [r5, #0xc]
- str r0, [r5, #0x8]
- str r5, [r1, #0x0]
-_020AF5AC:
- str r8, [r2, #0x0]
- mov r0, #0x1
- ldmia sp!, {r4-r10,pc}
-_020AF5B8:
- mov r0, #0x0
- str r0, [r2, #0x0]
- ldmia sp!, {r4-r10,pc}
-
- arm_func_start FUN_020AF5C4
-FUN_020AF5C4:
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r12, #0x0
- str r12, [sp, #0x0]
- bl FUN_020AF488
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020AF5E0
-FUN_020AF5E0: ; 0x020AF5E0
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr lr, [r1, #0x0]
- cmp lr, #0x0
- ldrne r12, [lr, #0xc]
- strne r12, [r1, #0x0]
- cmp lr, #0x0
- beq _020AF640
- str r2, [lr, #0x0]
- str r3, [lr, #0x4]
- mov r1, #0x0
- str r1, [lr, #0x8]
- str r1, [lr, #0xc]
- ldr r1, [r0, #0x0]
- add sp, sp, #0x4
- cmp r1, #0x0
- strne lr, [r1, #0x8]
- ldr r2, [r0, #0x0]
- mov r1, #0x0
- str r2, [lr, #0xc]
- str r1, [lr, #0x8]
- str lr, [r0, #0x0]
- mov r0, #0x1
- ldmia sp!, {pc}
-_020AF640:
- mov r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020AF64C
-FUN_020AF64C: ; 0x020AF64C
- stmdb sp!, {r4,lr}
- subs lr, r1, #0x1
- mov r2, #0x0
- beq _020AF684
- mov r4, r0
-_020AF660:
- add r12, r2, #0x1
- add r2, r0, r2, lsl #0x4
- add r3, r0, r12, lsl #0x4
- str r3, [r2, #0xc]
- str r4, [r3, #0x8]
- mov r2, r12
- cmp r12, lr
- add r4, r4, #0x10
- blo _020AF660
-_020AF684:
- mov r2, #0x0
- str r2, [r0, #0x8]
- add r1, r0, r1, lsl #0x4
- str r2, [r1, #-0x4]
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020AF698
-FUN_020AF698: ; 0x020AF698
- mov r1, #0x0
- str r1, [r0, #0x0]
- bx lr
-
- arm_func_start FUN_020AF6A4
-FUN_020AF6A4: ; 0x020AF6A4
- stmdb sp!, {r4-r6,lr}
- sub sp, sp, #0x30
- ldr r6, _020AF884 ; =UNK_020FF864
- add r5, sp, #0x0
- ldmia r6!, {r0-r3}
- mov r12, r5
- stmia r5!, {r0-r3}
- ldmia r6!, {r0-r3}
- stmia r5!, {r0-r3}
- ldr r4, _020AF888 ; =UNK_021CCD6C
- ldmia r6, {r0-r3}
- stmia r5, {r0-r3}
- ldr lr, [r4, #0x10]
- ldr r1, [r4, #0xc]
- add r0, lr, lr, lsr #0x1
- mov r4, lr, lsr #0x1
- sub r0, r1, r0
- mov r3, #0x0
-_020AF6EC:
- cmp r3, #0x0
- beq _020AF6FC
- cmp r3, #0x2
- bne _020AF734
-_020AF6FC:
- ldr r2, [r12, #0x0]
- cmp r2, #0x0
- beq _020AF734
- cmp lr, #0x0
- beq _020AF734
- ldr r1, [r12, #0x8]
- cmp r2, lr
- movhi r2, lr
- add r1, r1, r2
- str r1, [r12, #0x8]
- ldr r1, [r12, #0x0]
- sub lr, lr, r2
- sub r1, r1, r2
- str r1, [r12, #0x0]
-_020AF734:
- add r3, r3, #0x1
- cmp r3, #0x4
- add r12, r12, #0xc
- blo _020AF6EC
- ldr r1, [sp, #0xc]
- add r5, sp, #0x0
- sub r1, r1, r4
- str r1, [sp, #0xc]
- mov r3, #0x0
-_020AF758:
- ldr r2, [r5, #0x0]
- cmp r2, #0x0
- beq _020AF790
- cmp r0, #0x0
- beq _020AF790
- ldr r1, [r5, #0x4]
- cmp r2, r0
- movhi r2, r0
- add r1, r1, r2
- str r1, [r5, #0x4]
- ldr r1, [r5, #0x0]
- sub r0, r0, r2
- sub r1, r1, r2
- str r1, [r5, #0x0]
-_020AF790:
- add r3, r3, #0x1
- cmp r3, #0x4
- add r5, r5, #0xc
- blo _020AF758
- ldr r0, _020AF888 ; =UNK_021CCD6C
- bl FUN_020AF698
- ldr r0, _020AF88C ; =UNK_021CCD70
- bl FUN_020AF698
- ldr r0, _020AF888 ; =UNK_021CCD6C
- ldr r1, [r0, #0x18]
- ldr r0, [r0, #0x14]
- mov r1, r1, lsr #0x4
- bl FUN_020AF64C
- ldr r3, [sp, #0x8]
- ldr r1, _020AF888 ; =UNK_021CCD6C
- cmp r3, #0x0
- str r0, [r1, #0x8]
- beq _020AF7E8
- ldr r0, _020AF88C ; =UNK_021CCD70
- ldr r1, _020AF890 ; =UNK_021CCD74
- mov r2, #0x0
- bl FUN_020AF5E0
-_020AF7E8:
- ldr r3, [sp, #0x4]
- ldr r2, [sp, #0x8]
- cmp r3, #0x0
- beq _020AF804
- ldr r0, _020AF888 ; =UNK_021CCD6C
- ldr r1, _020AF890 ; =UNK_021CCD74
- bl FUN_020AF5E0
-_020AF804:
- ldr r3, [sp, #0x20]
- cmp r3, #0x0
- beq _020AF820
- ldr r0, _020AF88C ; =UNK_021CCD70
- ldr r1, _020AF890 ; =UNK_021CCD74
- mov r2, #0x40000
- bl FUN_020AF5E0
-_020AF820:
- ldr r3, [sp, #0x1c]
- ldr r0, [sp, #0x20]
- cmp r3, #0x0
- add r2, r0, #0x40000
- beq _020AF840
- ldr r0, _020AF888 ; =UNK_021CCD6C
- ldr r1, _020AF890 ; =UNK_021CCD74
- bl FUN_020AF5E0
-_020AF840:
- ldr r3, [sp, #0x28]
- cmp r3, #0x0
- beq _020AF85C
- ldr r0, _020AF888 ; =UNK_021CCD6C
- ldr r1, _020AF890 ; =UNK_021CCD74
- mov r2, #0x60000
- bl FUN_020AF5E0
-_020AF85C:
- ldr r3, [sp, #0x10]
- cmp r3, #0x0
- addeq sp, sp, #0x30
- ldmeqia sp!, {r4-r6,pc}
- ldr r0, _020AF888 ; =UNK_021CCD6C
- ldr r1, _020AF890 ; =UNK_021CCD74
- add r2, r4, #0x20000
- bl FUN_020AF5E0
- add sp, sp, #0x30
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020AF884: .word UNK_020FF864
-_020AF888: .word UNK_021CCD6C
-_020AF88C: .word UNK_021CCD70
-_020AF890: .word UNK_021CCD74
-
- arm_func_start FUN_020AF894
-FUN_020AF894: ; 0x020AF894
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r2, _020AF908 ; =0x7FFF0000
- ldr r1, _020AF90C ; =0x0000FFFF
- and r2, r0, r2
- and r3, r0, r1
- mov r1, r2, lsr #0x10
- and r0, r0, #0x80000000
- mov r2, r3, lsl #0x3
- movs r3, r1, lsl #0x4
- mov r0, r0, lsr #0x1f
- beq _020AF8FC
- cmp r0, #0x0
- beq _020AF8DC
- ldr r0, _020AF910 ; =UNK_021CCD70
- ldr r1, _020AF914 ; =UNK_021CCD74
- bl FUN_020AF334
- b _020AF8E8
-_020AF8DC:
- ldr r0, _020AF918 ; =UNK_021CCD6C
- ldr r1, _020AF914 ; =UNK_021CCD74
- bl FUN_020AF334
-_020AF8E8:
- cmp r0, #0x0
- movne r0, #0x0
- add sp, sp, #0x4
- moveq r0, #0x1
- ldmia sp!, {pc}
-_020AF8FC:
- mov r0, #0x2
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020AF908: .word 0x7FFF0000
-_020AF90C: .word 0x0000FFFF
-_020AF910: .word UNK_021CCD70
-_020AF914: .word UNK_021CCD74
-_020AF918: .word UNK_021CCD6C
-
- arm_func_start FUN_020AF91C
-FUN_020AF91C: ; 0x020AF91C
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- cmp r0, #0x0
- moveq r5, #0x10
- addne r0, r0, #0xf
- bicne r5, r0, #0xf
- ldr r0, _020AF9B0 ; =0x0007FFF0
- mov r4, r1
- cmp r5, r0
- addcs sp, sp, #0x4
- movcs r0, #0x0
- ldmcsia sp!, {r4-r5,pc}
- cmp r4, #0x0
- beq _020AF96C
- ldr r0, _020AF9B4 ; =UNK_021CCD70
- ldr r1, _020AF9B8 ; =UNK_021CCD74
- add r2, sp, #0x0
- mov r3, r5
- bl FUN_020AF5C4
- b _020AF980
-_020AF96C:
- ldr r0, _020AF9BC ; =UNK_021CCD6C
- ldr r1, _020AF9B8 ; =UNK_021CCD74
- add r2, sp, #0x0
- mov r3, r5
- bl FUN_020AF5C4
-_020AF980:
- cmp r0, #0x0
- addeq sp, sp, #0x4
- moveq r0, #0x0
- ldmeqia sp!, {r4-r5,pc}
- ldr r1, [sp, #0x0]
- ldr r0, _020AF9C0 ; =0x0000FFFF
- mov r2, r5, lsr #0x4
- and r0, r0, r1, lsr #0x3
- orr r0, r0, r2, lsl #0x10
- orr r0, r0, r4, lsl #0x1f
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020AF9B0: .word 0x0007FFF0
-_020AF9B4: .word UNK_021CCD70
-_020AF9B8: .word UNK_021CCD74
-_020AF9BC: .word UNK_021CCD6C
-_020AF9C0: .word 0x0000FFFF
-
- arm_func_start FUN_020AF9C4
-FUN_020AF9C4: ; 0x020AF9C4
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr ip, _020AFA14 ; =UNK_021CCD6C
- str r0, [r12, #0xc]
- str r1, [r12, #0x10]
- str r2, [r12, #0x14]
- str r3, [r12, #0x18]
- bl FUN_020AF6A4
- ldr r0, [sp, #0x8]
- cmp r0, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {pc}
- ldr r3, _020AFA18 ; =FUN_020AF91C
- ldr r1, _020AFA1C ; =UNK_021064B8
- ldr r2, _020AFA20 ; =FUN_020AF894
- ldr r0, _020AFA24 ; =UNK_021064BC
- str r3, [r1, #0x0]
- str r2, [r0, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020AFA14: .word UNK_021CCD6C
-_020AFA18: .word FUN_020AF91C
-_020AFA1C: .word UNK_021064B8
-_020AFA20: .word FUN_020AF894
-_020AFA24: .word UNK_021064BC
-
- arm_func_start FUN_020AFA28
-FUN_020AFA28: ; 0x020AFA28
- mov r0, r0, lsl #0x4
- bx lr
-
- arm_func_start FUN_020AFA30
-FUN_020AFA30:
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r0, _020AFA78 ; =UNK_021CCD88
- ldr r1, [r0, #0x10]
- ldr r0, [r0, #0xc]
- mov r1, r1, lsr #0x4
- bl FUN_020AF64C
- ldr r1, _020AFA78 ; =UNK_021CCD88
- str r0, [r1, #0x4]
- mov r0, r1
- bl FUN_020AF698
- ldr r0, _020AFA78 ; =UNK_021CCD88
- ldr r1, _020AFA7C ; =UNK_021CCD8C
- ldr r3, [r0, #0x8]
- mov r2, #0x0
- bl FUN_020AF5E0
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020AFA78: .word UNK_021CCD88
-_020AFA7C: .word UNK_021CCD8C
-
- arm_func_start FUN_020AFA80
-FUN_020AFA80: ; 0x020AFA80
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r1, #0x10000
- rsb r2, r1, #0x0
- ldr r1, _020AFAC8 ; =0x0000FFFF
- and r2, r0, r2
- and r12, r0, r1
- mov r3, r2, lsr #0x10
- ldr r0, _020AFACC ; =UNK_021CCD88
- ldr r1, _020AFAD0 ; =UNK_021CCD8C
- mov r2, r12, lsl #0x3
- mov r3, r3, lsl #0x3
- bl FUN_020AF334
- cmp r0, #0x0
- moveq r0, #0x1
- movne r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020AFAC8: .word 0x0000FFFF
-_020AFACC: .word UNK_021CCD88
-_020AFAD0: .word UNK_021CCD8C
-
- arm_func_start FUN_020AFAD4
-FUN_020AFAD4: ; 0x020AFAD4
- stmdb sp!, {r4,lr}
- sub sp, sp, #0x8
- cmp r0, #0x0
- moveq r4, #0x8
- addne r0, r0, #0x7
- bicne r4, r0, #0x7
- ldr r0, _020AFB98 ; =0x0007FFF8
- cmp r4, r0
- addcs sp, sp, #0x8
- movcs r0, #0x0
- ldmcsia sp!, {r4,pc}
- cmp r1, #0x0
- beq _020AFB50
- mov r12, #0x8
- ldr r0, _020AFB9C ; =UNK_021CCD88
- ldr r1, _020AFBA0 ; =UNK_021CCD8C
- add r2, sp, #0x4
- mov r3, r4
- str r12, [sp, #0x0]
- bl FUN_020AF488
- ldr r2, [sp, #0x4]
- add r1, r2, r4
- cmp r1, #0x10000
- bls _020AFB6C
- ldr r0, _020AFB9C ; =UNK_021CCD88
- ldr r1, _020AFBA0 ; =UNK_021CCD8C
- mov r3, r4
- bl FUN_020AF334
- add sp, sp, #0x8
- mov r0, #0x0
- ldmia sp!, {r4,pc}
-_020AFB50:
- ldr r0, _020AFB9C ; =UNK_021CCD88
- mov r12, #0x10
- ldr r1, _020AFBA0 ; =UNK_021CCD8C
- add r2, sp, #0x4
- mov r3, r4
- str r12, [sp, #0x0]
- bl FUN_020AF488
-_020AFB6C:
- cmp r0, #0x0
- addeq sp, sp, #0x8
- moveq r0, #0x0
- ldmeqia sp!, {r4,pc}
- ldr r1, [sp, #0x4]
- ldr r0, _020AFBA4 ; =0x0000FFFF
- mov r2, r4, lsr #0x3
- and r0, r0, r1, lsr #0x3
- orr r0, r0, r2, lsl #0x10
- add sp, sp, #0x8
- ldmia sp!, {r4,pc}
- .balign 4
-_020AFB98: .word 0x0007FFF8
-_020AFB9C: .word UNK_021CCD88
-_020AFBA0: .word UNK_021CCD8C
-_020AFBA4: .word 0x0000FFFF
-
- arm_func_start FUN_020AFBA8
-FUN_020AFBA8: ; 0x020AFBA8
- stmdb sp!, {r4,lr}
- ldr ip, _020AFBE8 ; =UNK_021CCD88
- mov r4, r3
- str r0, [r12, #0x8]
- str r1, [r12, #0xc]
- str r2, [r12, #0x10]
- bl FUN_020AFA30
- cmp r4, #0x0
- ldmeqia sp!, {r4,pc}
- ldr r3, _020AFBEC ; =FUN_020AFAD4
- ldr r1, _020AFBF0 ; =UNK_021064C0
- ldr r2, _020AFBF4 ; =FUN_020AFA80
- ldr r0, _020AFBF8 ; =UNK_021064C4
- str r3, [r1, #0x0]
- str r2, [r0, #0x0]
- ldmia sp!, {r4,pc}
- .balign 4
-_020AFBE8: .word UNK_021CCD88
-_020AFBEC: .word FUN_020AFAD4
-_020AFBF0: .word UNK_021064C0
-_020AFBF4: .word FUN_020AFA80
-_020AFBF8: .word UNK_021064C4
-
- arm_func_start FUN_020AFBFC
-FUN_020AFBFC: ; 0x020AFBFC
- mov r0, r0, lsl #0x4
- bx lr
-
- arm_func_start FUN_020AFC04
-FUN_020AFC04: ; 0x020AFC04
- ldrh r2, [r0, #0x0]
- cmp r2, r1
- ldrhi r0, [r0, #0x4]
- addhi r0, r0, r1, lsl #0x4
- movls r0, #0x0
- bx lr
-
- arm_func_start FUN_020AFC1C
-FUN_020AFC1C: ; 0x020AFC1C
- stmdb sp!, {r4-r9,lr}
- sub sp, sp, #0x4
- ldr r1, [r0, #0x4]
- mov r6, #0x0
- add r1, r1, r0
- str r1, [r0, #0x4]
- ldr r1, [r0, #0x8]
- add r1, r1, r0
- str r1, [r0, #0x8]
- ldr r1, [r0, #0xc]
- add r1, r1, r0
- str r1, [r0, #0xc]
- ldrh r1, [r0, #0x0]
- ldr r4, [r0, #0x4]
- ldr lr, [r0, #0x8]
- cmp r1, #0x0
- ldr r12, [r0, #0xc]
- bls _020AFCCC
- mov r1, r6
-_020AFC68:
- add r2, r4, r6, lsl #0x4
- ldr r5, [r2, #0xc]
- mov r3, r6, lsl #0x4
- add r5, lr, r5
- str r5, [r2, #0xc]
- ldrh r7, [r4, r3]
- mov r5, r1
- cmp r7, #0x0
- bls _020AFCB4
-_020AFC8C:
- ldr r9, [r2, #0xc]
- add r7, r5, #0x1
- ldr r8, [r9, r5, lsl #0x3]
- mov r7, r7, lsl #0x10
- add r8, r12, r8
- str r8, [r9, r5, lsl #0x3]
- ldrh r8, [r4, r3]
- mov r5, r7, lsr #0x10
- cmp r5, r8
- blo _020AFC8C
-_020AFCB4:
- add r2, r6, #0x1
- mov r2, r2, lsl #0x10
- ldrh r3, [r0, #0x0]
- mov r6, r2, lsr #0x10
- cmp r6, r3
- blo _020AFC68
-_020AFCCC:
- ldr r1, [r0, #0x14]
- cmp r1, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r9,pc}
- add r1, r1, r0
- str r1, [r0, #0x14]
- ldr r1, [r0, #0x14]
- mov r12, #0x0
- add r2, r1, #0x8
- ldr r0, [r2, #0x4]
- add r0, r0, r2
- str r0, [r2, #0x4]
- ldrh r0, [r1, #0x8]
- cmp r0, #0x0
- addls sp, sp, #0x4
- ldmlsia sp!, {r4-r9,pc}
- mov r0, r12
- mov r6, r12
-_020AFD14:
- ldr r5, [r2, #0x4]
- mov r3, r6
- add r1, r5, r0
- ldr r4, [r1, #0x4]
- add r4, r4, r2
- str r4, [r1, #0x4]
- ldr r4, [r1, #0x8]
- add r4, r4, r2
- str r4, [r1, #0x8]
- ldrh r4, [r5, r0]
- cmp r4, #0x0
- bls _020AFD6C
- mov r7, r6
-_020AFD48:
- ldr r5, [r1, #0x8]
- add r3, r3, #0x1
- ldr r4, [r5, r7]
- add r4, r4, r2
- str r4, [r5, r7]
- ldrh r4, [r1, #0x0]
- add r7, r7, #0x4
- cmp r3, r4
- blo _020AFD48
-_020AFD6C:
- ldrh r1, [r2, #0x0]
- add r12, r12, #0x1
- add r0, r0, #0xc
- cmp r12, r1
- blo _020AFD14
- add sp, sp, #0x4
- ldmia sp!, {r4-r9,pc}
-
- arm_func_start thunk_FUN_020afda0
-thunk_FUN_020afda0: ; 0x020AFD88
- ldr ip, _020AFD90 ; =FUN_020AFDA0
- bx r12
- .balign 4
-_020AFD90: .word FUN_020AFDA0
-
- arm_func_start thunk_FUN_020afda0_2
-thunk_FUN_020afda0_2: ; 0x020AFD94
- ldr ip, _020AFD9C ; =FUN_020AFDA0
- bx r12
- .balign 4
-_020AFD9C: .word FUN_020AFDA0
-
- arm_func_start FUN_020AFDA0
-FUN_020AFDA0: ; 0x020AFDA0
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r1
- ldr r1, _020AFDE4 ; =0x41424E4B
- bl FUN_020B01F8
- movs r4, r0
- moveq r0, #0x0
- addeq sp, sp, #0x4
- streq r0, [r5, #0x0]
- ldmeqia sp!, {r4-r5,pc}
- add r0, r4, #0x8
- bl FUN_020AFC1C
- add r0, r4, #0x8
- str r0, [r5, #0x0]
- mov r0, #0x1
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020AFDE4: .word 0x41424E4B
-
- arm_func_start FUN_020AFDE8
-FUN_020AFDE8: ; 0x020AFDE8
- stmdb sp!, {r4-r6,lr}
- mov r5, r0
- ldr r1, [r5, #0x4]
- add r1, r1, r5
- str r1, [r5, #0x4]
- bl FUN_020AFF10
- ldrh r1, [r5, #0x0]
- mov r4, r0
- mov r6, #0x0
- cmp r1, #0x0
- bls _020AFE44
-_020AFE14:
- mov r0, r5
- mov r1, r6
- bl FUN_020AFE8C
- ldr r2, [r0, #0x4]
- add r1, r6, #0x1
- add r2, r2, r4
- str r2, [r0, #0x4]
- mov r0, r1, lsl #0x10
- ldrh r1, [r5, #0x0]
- mov r6, r0, lsr #0x10
- cmp r6, r1
- blo _020AFE14
-_020AFE44:
- ldr r0, [r5, #0xc]
- cmp r0, #0x0
- beq _020AFE6C
- add r0, r0, r5
- str r0, [r5, #0xc]
- ldr r1, [r5, #0xc]
- ldr r0, [r1, #0x4]
- add r0, r0, r1
- str r0, [r1, #0x4]
- str r1, [r5, #0xc]
-_020AFE6C:
- ldr r0, [r5, #0x14]
- cmp r0, #0x0
- ldmeqia sp!, {r4-r6,pc}
- add r0, r0, r5
- str r0, [r5, #0x14]
- ldr r0, [r5, #0x14]
- bl FUN_020AFF00
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020AFE8C
-FUN_020AFE8C: ; 0x020AFE8C
- ldrh r2, [r0, #0x0]
- cmp r1, r2
- movcs r0, #0x0
- bxcs lr
- ldrh r2, [r0, #0x2]
- ands r2, r2, #0x1
- ldrne r0, [r0, #0x4]
- addne r0, r0, r1, lsl #0x4
- ldreq r0, [r0, #0x4]
- addeq r0, r0, r1, lsl #0x3
- bx lr
-
- arm_func_start FUN_020AFEB8
-FUN_020AFEB8: ; 0x020AFEB8
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r1
- ldr r1, _020AFEFC ; =0x4345424B
- bl FUN_020B01F8
- movs r4, r0
- moveq r0, #0x0
- addeq sp, sp, #0x4
- streq r0, [r5, #0x0]
- ldmeqia sp!, {r4-r5,pc}
- add r0, r4, #0x8
- bl FUN_020AFDE8
- add r0, r4, #0x8
- str r0, [r5, #0x0]
- mov r0, #0x1
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020AFEFC: .word 0x4345424B
-
- arm_func_start FUN_020AFF00
-FUN_020AFF00: ; 0x020AFF00
- ldr ip, _020AFF0C ; =FUN_020B01B0
- add r0, r0, #0x8
- bx r12
- .balign 4
-_020AFF0C: .word FUN_020B01B0
-
- arm_func_start FUN_020AFF10
-FUN_020AFF10: ; 0x020AFF10
- ldrh r1, [r0, #0x2]
- ands r1, r1, #0x1
- ldrneh r1, [r0, #0x0]
- ldrne r0, [r0, #0x4]
- addne r0, r0, r1, lsl #0x4
- ldreqh r1, [r0, #0x0]
- ldreq r0, [r0, #0x4]
- addeq r0, r0, r1, lsl #0x3
- bx lr
-
- arm_func_start FUN_020AFF34
-FUN_020AFF34: ; 0x020AFF34
- ldrh r2, [r0, #0x0]
- cmp r1, r2
- ldrcc r0, [r0, #0x4]
- addcc r0, r0, r1, lsl #0x3
- movcs r0, #0x0
- bx lr
-
- arm_func_start FUN_020AFF4C
-FUN_020AFF4C: ; 0x020AFF4C
- stmdb sp!, {r4,lr}
- ldr r1, [r0, #0x4]
- mov r4, #0x0
- add r1, r1, r0
- str r1, [r0, #0x4]
- ldr r1, [r0, #0x8]
- add r1, r1, r0
- str r1, [r0, #0x8]
- ldrh r1, [r0, #0x0]
- ldr lr, [r0, #0x4]
- cmp r1, #0x0
- bls _020AFFA8
-_020AFF7C:
- add r3, lr, r4, lsl #0x3
- ldr r12, [r0, #0x8]
- ldr r2, [r3, #0x4]
- add r1, r4, #0x1
- add r2, r12, r2
- str r2, [r3, #0x4]
- mov r1, r1, lsl #0x10
- ldrh r2, [r0, #0x0]
- mov r4, r1, lsr #0x10
- cmp r4, r2
- blo _020AFF7C
-_020AFFA8:
- ldr r1, [r0, #0x10]
- cmp r1, #0x0
- ldmeqia sp!, {r4,pc}
- add r1, r1, r0
- str r1, [r0, #0x10]
- ldr r0, [r0, #0x10]
- bl FUN_020AFFC8
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020AFFC8
-FUN_020AFFC8: ; 0x020AFFC8
- ldr ip, _020AFFD4 ; =FUN_020B01B0
- add r0, r0, #0x8
- bx r12
- .balign 4
-_020AFFD4: .word FUN_020B01B0
-
- arm_func_start FUN_020AFFD8
-FUN_020AFFD8: ; 0x020AFFD8
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r1
- ldr r1, _020B001C ; =0x4D43424B
- bl FUN_020B01F8
- movs r4, r0
- moveq r0, #0x0
- addeq sp, sp, #0x4
- streq r0, [r5, #0x0]
- ldmeqia sp!, {r4-r5,pc}
- add r0, r4, #0x8
- bl FUN_020AFF4C
- add r0, r4, #0x8
- str r0, [r5, #0x0]
- mov r0, #0x1
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020B001C: .word 0x4D43424B
-
- arm_func_start FUN_020B0020
-FUN_020B0020: ; 0x020B0020
- ldr r1, [r0, #0x14]
- add r1, r1, r0
- str r1, [r0, #0x14]
- bx lr
-
- arm_func_start FUN_020B0030
-FUN_020B0030: ; 0x020B0030
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r1
- ldr r1, _020B0074 ; =0x43484152
- bl FUN_020B01F8
- movs r4, r0
- moveq r0, #0x0
- addeq sp, sp, #0x4
- streq r0, [r5, #0x0]
- ldmeqia sp!, {r4-r5,pc}
- add r0, r4, #0x8
- bl FUN_020B0020
- add r0, r4, #0x8
- str r0, [r5, #0x0]
- mov r0, #0x1
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020B0074: .word 0x43484152
-
- arm_func_start FUN_020B0078
-FUN_020B0078: ; 0x020B0078
- ldr r1, [r0, #0x14]
- add r1, r1, r0
- str r1, [r0, #0x14]
- bx lr
-
- arm_func_start FUN_020B0088
-FUN_020B0088: ; 0x020B0088
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r1
- ldr r1, _020B00CC ; =0x43484152
- bl FUN_020B01F8
- movs r4, r0
- moveq r0, #0x0
- addeq sp, sp, #0x4
- streq r0, [r5, #0x0]
- ldmeqia sp!, {r4-r5,pc}
- add r0, r4, #0x8
- bl FUN_020B0078
- add r0, r4, #0x8
- str r0, [r5, #0x0]
- mov r0, #0x1
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020B00CC: .word 0x43484152
-
- arm_func_start FUN_020B00D0
-FUN_020B00D0: ; 0x020B00D0
- ldr r1, [r0, #0xc]
- add r1, r1, r0
- str r1, [r0, #0xc]
- bx lr
-
- arm_func_start FUN_020B00E0
-FUN_020B00E0: ; 0x020B00E0
- ldr r1, [r0, #0x4]
- add r1, r1, r0
- str r1, [r0, #0x4]
- bx lr
-
- arm_func_start FUN_020B00F0
-FUN_020B00F0: ; 0x020B00F0
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r1
- ldr r1, _020B0134 ; =0x50434D50
- bl FUN_020B01F8
- movs r4, r0
- moveq r0, #0x0
- addeq sp, sp, #0x4
- streq r0, [r5, #0x0]
- ldmeqia sp!, {r4-r5,pc}
- add r0, r4, #0x8
- bl FUN_020B00E0
- add r0, r4, #0x8
- str r0, [r5, #0x0]
- mov r0, #0x1
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020B0134: .word 0x50434D50
-
- arm_func_start FUN_020B0138
-FUN_020B0138: ; 0x020B0138
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r1
- ldr r1, _020B017C ; =0x504C5454
- bl FUN_020B01F8
- movs r4, r0
- moveq r0, #0x0
- addeq sp, sp, #0x4
- streq r0, [r5, #0x0]
- ldmeqia sp!, {r4-r5,pc}
- add r0, r4, #0x8
- bl FUN_020B00D0
- add r0, r4, #0x8
- str r0, [r5, #0x0]
- mov r0, #0x1
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020B017C: .word 0x504C5454
-
- arm_func_start FUN_020B0180
-FUN_020B0180: ; 0x020B0180
- stmdb sp!, {r4,lr}
- mov r4, r1
- ldr r1, _020B01AC ; =0x5343524E
- bl FUN_020B01F8
- cmp r0, #0x0
- addne r0, r0, #0x8
- strne r0, [r4, #0x0]
- movne r0, #0x1
- moveq r0, #0x0
- streq r0, [r4, #0x0]
- ldmia sp!, {r4,pc}
- .balign 4
-_020B01AC: .word 0x5343524E
-
- arm_func_start FUN_020B01B0
-FUN_020B01B0: ; 0x020B01B0
- ldr r1, [r0, #0x4]
- mov r12, #0x0
- add r1, r1, r0
- str r1, [r0, #0x4]
- ldrh r1, [r0, #0x0]
- cmp r1, #0x0
- bxls lr
-_020B01CC:
- ldr r3, [r0, #0x4]
- add r1, r12, #0x1
- ldr r2, [r3, r12, lsl #0x2]
- mov r1, r1, lsl #0x10
- add r2, r0, r2
- str r2, [r3, r12, lsl #0x2]
- ldrh r2, [r0, #0x0]
- mov r12, r1, lsr #0x10
- cmp r12, r2
- blo _020B01CC
- bx lr
-
- arm_func_start FUN_020B01F8
-FUN_020B01F8:
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldrh r2, [r0, #0xc]
- ldrh r12, [r0, #0xe]
- mov lr, #0x0
- add r0, r0, r2
- cmp r12, #0x0
- bls _020B0244
-_020B0218:
- ldr r2, [r0, #0x0]
- cmp r2, r1
- addeq sp, sp, #0x4
- ldmeqia sp!, {pc}
- add r2, lr, #0x1
- mov r2, r2, lsl #0x10
- ldr r3, [r0, #0x4]
- mov lr, r2, lsr #0x10
- cmp lr, r12
- add r0, r0, r3
- blo _020B0218
-_020B0244:
- mov r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020B0250
-FUN_020B0250: ; 0x020B0250
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- ldr r5, _020B02C0 ; =0x04000470
- mov r0, r0, lsl #0xc
- str r0, [r5, #0x0]
- mov r4, r1, lsl #0xc
- ldr r12, [sp, #0x10]
- ldr r0, [sp, #0x14]
- ldr r1, [sp, #0x1c]
- str r4, [r5, #0x0]
- mov r4, r2, lsl #0xc
- ldr r2, [sp, #0x18]
- ldr lr, _020B02C4 ; =0x0400046C
- str r4, [r5, #0x0]
- mov r4, r3, lsl #0xc
- ldr r3, [sp, #0x20]
- str r4, [lr, #0x0]
- mov r12, r12, lsl #0xc
- str r12, [lr, #0x0]
- mov r12, #0x1000
- mov r0, r0, lsl #0xc
- mov r1, r1, lsl #0xc
- mov r2, r2, lsl #0xc
- mov r3, r3, lsl #0xc
- str r12, [lr, #0x0]
- bl FUN_020B0340
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020B02C0: .word 0x04000470
-_020B02C4: .word 0x0400046C
-
- arm_func_start FUN_020B02C8
-FUN_020B02C8: ; 0x020B02C8
- stmdb sp!, {lr}
- sub sp, sp, #0x14
- ldr r2, _020B0330 ; =0xBFFF0000
- ldr r0, _020B0334 ; =0x04000580
- mov r1, #0x400000
- str r2, [r0, #0x0]
- rsb r0, r1, #0x0
- str r0, [sp, #0x0]
- str r1, [sp, #0x4]
- mov r0, #0x0
- str r1, [sp, #0x8]
- mov r1, #0x1
- str r1, [sp, #0xc]
- mov r2, r0
- mov r1, #0xc0000
- mov r3, #0x100000
- str r0, [sp, #0x10]
- bl G3i_OrthoW_
- ldr r1, _020B0338 ; =0x0400044C
- mov r2, #0x0
- ldr r0, _020B033C ; =0x04000440
- str r2, [r1, #0x0]
- mov r1, #0x1
- str r1, [r0, #0x0]
- add sp, sp, #0x14
- ldmia sp!, {pc}
- .balign 4
-_020B0330: .word 0xBFFF0000
-_020B0334: .word 0x04000580
-_020B0338: .word 0x0400044C
-_020B033C: .word 0x04000440
-
- arm_func_start FUN_020B0340
-FUN_020B0340: ; 0x020B0340
- stmdb sp!, {r4-r6,lr}
- mov r3, r3, lsl #0x8
- mov r0, r0, lsl #0x8
- mov r4, r3, asr #0x10
- mov r3, r0, asr #0x10
- mov r0, r4, lsl #0x10
- mov r3, r3, lsl #0x10
- mov r1, r1, lsl #0x8
- mov r1, r1, asr #0x10
- mov r1, r1, lsl #0x10
- mov r2, r2, lsl #0x8
- mov r2, r2, asr #0x10
- mov r2, r2, lsl #0x10
- ldr ip, _020B03F4 ; =0x04000500
- mov lr, #0x1
- mov r6, r0, lsr #0x10
- mov r5, r3, lsr #0x10
- mov r3, r1, lsr #0x10
- mov r1, r2, lsr #0x10
- ldr r4, _020B03F8 ; =0x04000488
- str lr, [r12, #0x0]
- orr r0, r5, r6, lsl #0x10
- ldr lr, _020B03FC ; =0x0400048C
- str r0, [r4, #0x0]
- mov r0, #0x10000000
- str r0, [lr, #0x0]
- mov r12, #0x0
- str r12, [lr, #0x0]
- orr r2, r3, r6, lsl #0x10
- ldr r0, _020B0400 ; =0x10001000
- str r2, [r4, #0x0]
- str r0, [lr, #0x0]
- str r12, [lr, #0x0]
- orr r0, r3, r1, lsl #0x10
- str r0, [r4, #0x0]
- mov r0, #0x1000
- str r0, [lr, #0x0]
- str r12, [lr, #0x0]
- orr r0, r5, r1, lsl #0x10
- str r0, [r4, #0x0]
- str r12, [lr, #0x0]
- ldr r0, _020B0404 ; =0x04000504
- str r12, [lr, #0x0]
- str r12, [r0, #0x0]
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020B03F4: .word 0x04000500
-_020B03F8: .word 0x04000488
-_020B03FC: .word 0x0400048C
-_020B0400: .word 0x10001000
-_020B0404: .word 0x04000504
-
- arm_func_start FUN_020B0408
-FUN_020B0408:
- ldr r1, [r0, #0x14]
- cmp r1, #0x0
- ldreq r0, [r0, #0x18]
- ldreq r1, [r0, #0x8]
- cmp r1, #0x2
- beq _020B0428
- cmp r1, #0x4
- bne _020B0430
-_020B0428:
- mov r0, #0x1
- bx lr
-_020B0430:
- mov r0, #0x0
- bx lr
-
- arm_func_start FUN_020B0438
-FUN_020B0438: ; 0x020B0438
- ldr ip, _020B0444 ; =FUN_020B0448
- str r1, [r0, #0x18]
- bx r12
- .balign 4
-_020B0444: .word FUN_020B0448
-
- arm_func_start FUN_020B0448
-FUN_020B0448: ; 0x020B0448
- ldr r1, [r0, #0x10]
- cmp r1, #0x0
- movgt r2, #0x1
- ldr r1, [r0, #0x4]
- movle r2, #0x0
- eors r1, r2, r1
- beq _020B047C
- ldr r2, [r0, #0x18]
- ldrh r1, [r2, #0x2]
- ldr r2, [r2, #0xc]
- add r1, r2, r1, lsl #0x3
- str r1, [r0, #0x0]
- b _020B0494
-_020B047C:
- ldr r2, [r0, #0x18]
- ldrh r1, [r2, #0x0]
- ldr r2, [r2, #0xc]
- add r1, r2, r1, lsl #0x3
- sub r1, r1, #0x8
- str r1, [r0, #0x0]
-_020B0494:
- ldr ip, _020B04A4 ; =FUN_020B0534
- mov r1, #0x0
- str r1, [r0, #0xc]
- bx r12
- .balign 4
-_020B04A4: .word FUN_020B0534
-
- arm_func_start FUN_020B04A8
-FUN_020B04A8: ; 0x020B04A8
- mov r1, #0x0
- str r1, [r0, #0x0]
- str r1, [r0, #0x4]
- str r1, [r0, #0x8]
- strh r1, [r0, #0xc]
- bx lr
-
- arm_func_start FUN_020B04C0
-FUN_020B04C0: ; 0x020B04C0
- stmdb sp!, {r4,lr}
- mov r4, r0
- add r0, r4, #0x1c
- bl FUN_020B04A8
- mov r1, #0x0
- str r1, [r4, #0x0]
- str r1, [r4, #0x4]
- mov r0, #0x1
- str r0, [r4, #0x8]
- str r1, [r4, #0xc]
- mov r0, #0x1000
- str r0, [r4, #0x10]
- str r1, [r4, #0x14]
- str r1, [r4, #0x18]
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020B04FC
-FUN_020B04FC: ; 0x020B04FC
- ldr r1, [r0, #0x18]
- ldr r2, [r0, #0x0]
- ldr r0, [r1, #0xc]
- sub r0, r2, r0
- mov r0, r0, lsl #0xd
- mov r0, r0, lsr #0x10
- bx lr
-
- arm_func_start FUN_020B0518
-FUN_020B0518:
- stmdb sp!, {r4,lr}
- mov r4, r0
- bl FUN_020B06EC
- cmp r0, #0x0
- movne r1, #0x0
- strne r1, [r4, #0xc]
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020B0534
-FUN_020B0534:
- stmdb sp!, {r4-r8,lr}
- mov r8, r0
- ldr r0, [r8, #0x8]
- mov r7, #0x0
- cmp r0, #0x1
- movne r0, r7
- ldmneia sp!, {r4-r8,pc}
- ldr r2, [r8, #0x10]
- mov r0, #0x800
- smull r3, r1, r2, r1
- adds r0, r3, r0
- adc r1, r1, r7
- mov r0, r0, lsr #0xc
- orr r0, r0, r1, lsl #0x14
- bl abs
- ldr r1, [r8, #0xc]
- add r6, r8, #0xc
- add r0, r1, r0
- str r0, [r8, #0xc]
- mov r4, r7
- mov r5, #0x1
- b _020B06A8
-_020B058C:
- ldr r0, [r8, #0x0]
- ldr r1, [r6, #0x0]
- ldrh r0, [r0, #0x4]
- mov r7, r5
- sub r0, r1, r0, lsl #0xc
- str r0, [r6, #0x0]
- ldr r0, [r8, #0x10]
- cmp r0, #0x0
- movgt r1, r5
- ldr r0, [r8, #0x4]
- movle r1, r4
- eors r0, r1, r0
- ldrne r0, [r8, #0x0]
- addne r0, r0, #0x8
- strne r0, [r8, #0x0]
- ldreq r0, [r8, #0x0]
- subeq r0, r0, #0x8
- streq r0, [r8, #0x0]
- ldr r1, [r8, #0x10]
- ldr r0, [r8, #0x0]
- cmp r1, #0x0
- movgt r2, r5
- ldr r1, [r8, #0x4]
- movle r2, r4
- eors r1, r2, r1
- beq _020B0614
- ldr r2, [r8, #0x18]
- ldrh r1, [r2, #0x0]
- ldr r2, [r2, #0xc]
- add r1, r2, r1, lsl #0x3
- cmp r0, r1
- movcs r0, r5
- movcc r0, r4
- b _020B0634
-_020B0614:
- ldr r2, [r8, #0x18]
- ldrh r1, [r2, #0x2]
- ldr r2, [r2, #0xc]
- add r1, r2, r1, lsl #0x3
- sub r1, r1, #0x8
- cmp r0, r1
- movls r0, r5
- movhi r0, r4
-_020B0634:
- cmp r0, #0x0
- beq _020B0644
- mov r0, r8
- bl FUN_020B0710
-_020B0644:
- ldr r0, [r8, #0x1c]
- cmp r0, #0x0
- beq _020B06A8
- ldr r0, [r8, #0x18]
- ldr r2, [r8, #0x1c]
- ldr r1, [r8, #0x0]
- ldr r0, [r0, #0xc]
- cmp r2, #0x2
- sub r0, r1, r0
- mov r0, r0, lsl #0xd
- mov r1, r0, lsr #0x10
- beq _020B0680
- cmp r2, #0x3
- beq _020B069C
- b _020B06A8
-_020B0680:
- ldrh r0, [r8, #0x28]
- cmp r1, r0
- bne _020B06A8
- ldr r0, [r8, #0x20]
- ldr r2, [r8, #0x24]
- blx r2
- b _020B06A8
-_020B069C:
- ldr r0, [r8, #0x20]
- ldr r2, [r8, #0x24]
- blx r2
-_020B06A8:
- ldr r0, [r8, #0x8]
- cmp r0, #0x0
- beq _020B06CC
- ldr r0, [r8, #0x0]
- ldr r1, [r8, #0xc]
- ldrh r0, [r0, #0x4]
- cmp r1, r0, lsl #0xc
- movge r0, r5
- bge _020B06D0
-_020B06CC:
- mov r0, r4
-_020B06D0:
- cmp r0, #0x0
- bne _020B058C
- mov r0, r7
- ldmia sp!, {r4-r8,pc}
-
- arm_func_start FUN_020B06E0
-FUN_020B06E0: ; 0x020B06E0
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x0]
- bx lr
-
- arm_func_start FUN_020B06EC
-FUN_020B06EC:
- ldr r3, [r0, #0x18]
- ldrh r2, [r3, #0x0]
- cmp r1, r2
- ldrcc r2, [r3, #0xc]
- addcc r1, r2, r1, lsl #0x3
- strcc r1, [r0, #0x0]
- movcc r0, #0x1
- movcs r0, #0x0
- bx lr
-
- arm_func_start FUN_020B0710
-FUN_020B0710: ; 0x020B0710
- stmdb sp!, {r4,lr}
- mov r4, r0
- ldr r0, [r4, #0x14]
- cmp r0, #0x0
- ldreq r0, [r4, #0x18]
- ldreq r0, [r0, #0x8]
- cmp r0, #0x3
- beq _020B0738
- cmp r0, #0x4
- bne _020B07B4
-_020B0738:
- ldr r0, [r4, #0x4]
- eor r0, r0, #0x1
- str r0, [r4, #0x4]
- ldr r1, [r4, #0x18]
- ldr r2, [r4, #0x0]
- ldrh r0, [r1, #0x2]
- ldr r1, [r1, #0xc]
- add r0, r1, r0, lsl #0x3
- sub r0, r0, #0x8
- cmp r2, r0
- bhi _020B0800
- ldr r0, [r4, #0x1c]
- cmp r0, #0x1
- bne _020B0780
- ldr r0, [r4, #0x20]
- ldr r1, [r4, #0xc]
- ldr r2, [r4, #0x24]
- blx r2
-_020B0780:
- ldr r0, [r4, #0x14]
- cmp r0, #0x0
- ldreq r0, [r4, #0x18]
- ldreq r0, [r0, #0x8]
- cmp r0, #0x2
- beq _020B07A8
- cmp r0, #0x4
- movne r0, #0x0
- strne r0, [r4, #0x8]
- bne _020B0800
-_020B07A8:
- mov r0, r4
- bl FUN_020B0448
- b _020B0800
-_020B07B4:
- ldr r0, [r4, #0x1c]
- cmp r0, #0x1
- bne _020B07D0
- ldr r0, [r4, #0x20]
- ldr r1, [r4, #0xc]
- ldr r2, [r4, #0x24]
- blx r2
-_020B07D0:
- ldr r0, [r4, #0x14]
- cmp r0, #0x0
- ldreq r0, [r4, #0x18]
- ldreq r0, [r0, #0x8]
- cmp r0, #0x2
- beq _020B07F8
- cmp r0, #0x4
- movne r0, #0x0
- strne r0, [r4, #0x8]
- bne _020B0800
-_020B07F8:
- mov r0, r4
- bl FUN_020B0448
-_020B0800:
- ldr r1, [r4, #0x18]
- ldr r2, [r4, #0x0]
- ldrh r0, [r1, #0x0]
- ldr r1, [r1, #0xc]
- add r0, r1, r0, lsl #0x3
- sub r0, r0, #0x8
- cmp r2, r0
- strhi r0, [r4, #0x0]
- ldmhiia sp!, {r4,pc}
- cmp r2, r1
- strcc r1, [r4, #0x0]
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020B0830
-FUN_020B0830: ; 0x020B0830
- ldrh r3, [r0, #0x6]
- ldrh r2, [r0, #0x8]
- mov r12, #0x0
- add r1, r3, #0x1
- cmp r2, r1
- bgt _020B0854
- ldrh r0, [r0, #0x4]
- cmp r0, r3
- movls r12, #0x1
-_020B0854:
- cmp r12, #0x0
- subne r0, r3, r2
- addne r0, r0, #0x1
- movne r0, r0, lsl #0x10
- movne r0, r0, lsr #0x10
- moveq r0, #0x0
- bx lr
-
- arm_func_start FUN_020B0870
-FUN_020B0870: ; 0x020B0870
- stmdb sp!, {r4,lr}
- mov r4, r0
- bl FUN_020B09B4
- mov r0, r4
- bl FUN_020B0888
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020B0888
-FUN_020B0888: ; 0x020B0888
- stmdb sp!, {r4-r6,lr}
- mov r5, r0
- ldr r0, [r5, #0x14]
- cmp r0, #0x0
- beq _020B0944
- ldrh r2, [r5, #0x6]
- ldrh r1, [r5, #0x8]
- mov r3, #0x0
- add r0, r2, #0x1
- cmp r1, r0
- bgt _020B08C0
- ldrh r0, [r5, #0x4]
- cmp r0, r2
- movls r3, #0x1
-_020B08C0:
- cmp r3, #0x0
- moveq r4, #0x0
- beq _020B08E0
- ldrh r0, [r5, #0x4]
- sub r0, r2, r0
- add r0, r0, #0x1
- mov r0, r0, lsl #0x10
- mov r4, r0, lsr #0xd
-_020B08E0:
- ldr r2, [r5, #0x0]
- ldr r1, _020B09AC ; =UNK_021CCDA0
- mov r0, #0x540
- mla r1, r2, r0, r1
- ldrh r0, [r5, #0x4]
- add r2, r1, #0x100
- mov r1, r4
- add r6, r2, r0, lsl #0x3
- mov r0, r6
- bl DC_InvalidateRange
- ldr r0, _020B09B0 ; =GXi_DmaId
- mvn r1, #0x0
- ldr r0, [r0, #0x0]
- cmp r0, r1
- beq _020B0930
- mov r1, r6
- mov r3, r4
- mov r2, #0xc0
- bl MI_DmaFill32
- b _020B0998
-_020B0930:
- mov r1, r6
- mov r2, r4
- mov r0, #0xc0
- bl MIi_CpuClear32
- b _020B0998
-_020B0944:
- ldr r2, [r5, #0x0]
- ldr r1, _020B09AC ; =UNK_021CCDA0
- mov r0, #0x540
- mla r1, r2, r0, r1
- ldrh r2, [r5, #0x4]
- ldrh r0, [r5, #0x6]
- add r1, r1, #0x100
- add r3, r1, r2, lsl #0x3
- sub r0, r0, r2
- add r0, r0, #0x1
- mov r0, r0, lsl #0x10
- movs r2, r0, lsr #0x10
- mov r0, #0x0
- beq _020B0998
- mov r1, #0xc0
-_020B0980:
- add r0, r0, #0x1
- mov r0, r0, lsl #0x10
- mov r0, r0, lsr #0x10
- cmp r0, r2
- strh r1, [r3], #0x8
- blo _020B0980
-_020B0998:
- ldrh r0, [r5, #0x4]
- strh r0, [r5, #0x8]
- ldrh r0, [r5, #0xa]
- strh r0, [r5, #0xe]
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020B09AC: .word UNK_021CCDA0
-_020B09B0: .word GXi_DmaId
-
- arm_func_start FUN_020B09B4
-FUN_020B09B4: ; 0x020B09B4
- stmdb sp!, {r4-r10,lr}
- mov r7, r0
- ldr r0, [r7, #0x14]
- cmp r0, #0x0
- beq _020B0A48
- ldr r5, [r7, #0x0]
- ldr r1, _020B0BA8 ; =UNK_021CCDA0
- mov r0, #0x540
- mla r1, r5, r0, r1
- ldrh r2, [r7, #0x4]
- ldrh r0, [r7, #0x6]
- add r1, r1, #0x100
- add r4, r1, r2, lsl #0x3
- sub r0, r0, r2
- add r0, r0, #0x1
- mov r0, r0, lsl #0x13
- mov r6, r0, lsr #0x10
- mov r2, r2, lsl #0x13
- mov r0, r4
- mov r1, r6
- mov r7, r2, lsr #0x10
- bl DC_FlushRange
- cmp r5, #0x0
- beq _020B0A20
- cmp r5, #0x1
- beq _020B0A34
- ldmia sp!, {r4-r10,pc}
-_020B0A20:
- mov r0, r4
- mov r1, r7
- mov r2, r6
- bl GX_LoadOAM
- ldmia sp!, {r4-r10,pc}
-_020B0A34:
- mov r0, r4
- mov r1, r7
- mov r2, r6
- bl GXS_LoadOAM
- ldmia sp!, {r4-r10,pc}
-_020B0A48:
- ldr r0, [r7, #0x0]
- ldr r2, _020B0BA8 ; =UNK_021CCDA0
- mov r1, #0x540
- mla r2, r0, r1, r2
- ldrh r5, [r7, #0x4]
- ldrh r1, [r7, #0x6]
- ldr r3, _020B0BAC ; =UNK_0210655C
- add r4, r2, #0x100
- sub r1, r1, r5
- add r1, r1, #0x1
- mov r1, r1, lsl #0x10
- mov r2, r5, lsl #0x13
- add r6, r4, r5, lsl #0x3
- movs r5, r1, lsr #0x10
- mov r4, r2, lsr #0x10
- ldr r9, [r3, r0, lsl #0x2]
- mov r10, #0x0
- beq _020B0AC8
- mov r8, #0x6
-_020B0A94:
- mov r0, r6
- mov r1, r4
- mov r2, r8
- blx r9
- add r0, r10, #0x1
- add r2, r4, #0x8
- mov r1, r0, lsl #0x10
- mov r0, r2, lsl #0x10
- mov r10, r1, lsr #0x10
- cmp r10, r5
- mov r4, r0, lsr #0x10
- add r6, r6, #0x8
- blo _020B0A94
-_020B0AC8:
- ldrh r2, [r7, #0xc]
- ldrh r1, [r7, #0xe]
- mov r3, #0x0
- add r0, r2, #0x1
- cmp r1, r0
- bgt _020B0AEC
- ldrh r0, [r7, #0xa]
- cmp r0, r2
- movls r3, #0x1
-_020B0AEC:
- cmp r3, #0x0
- ldmeqia sp!, {r4-r10,pc}
- ldr r0, [r7, #0x0]
- ldr r2, _020B0BA8 ; =UNK_021CCDA0
- mov r1, #0x540
- mla r2, r0, r1, r2
- ldrh r5, [r7, #0xa]
- add r4, r2, #0x100
- ldrh r1, [r7, #0xc]
- mov r2, r5, lsl #0x15
- ldr r3, _020B0BAC ; =UNK_0210655C
- sub r1, r1, r5
- add r1, r1, #0x1
- mov r1, r1, lsl #0x10
- add r9, r4, r5, lsl #0x5
- ldr r5, [r3, r0, lsl #0x2]
- movs r8, r1, lsr #0x10
- mov r7, r2, lsr #0x10
- mov r6, #0x0
- ldmeqia sp!, {r4-r10,pc}
- mov r4, #0x2
-_020B0B40:
- mov r2, r4
- add r0, r9, #0x6
- add r1, r7, #0x6
- blx r5
- mov r2, r4
- add r0, r9, #0xe
- add r1, r7, #0xe
- blx r5
- mov r2, r4
- add r0, r9, #0x16
- add r1, r7, #0x16
- blx r5
- add r0, r9, #0x1e
- add r1, r7, #0x1e
- mov r2, r4
- blx r5
- add r0, r7, #0x20
- mov r0, r0, lsl #0x10
- mov r7, r0, lsr #0x10
- add r9, r9, #0x20
- add r0, r6, #0x1
- mov r0, r0, lsl #0x10
- mov r6, r0, lsr #0x10
- cmp r6, r8
- blo _020B0B40
- ldmia sp!, {r4-r10,pc}
- .balign 4
-_020B0BA8: .word UNK_021CCDA0
-_020B0BAC: .word UNK_0210655C
-
- arm_func_start FUN_020B0BB0
-FUN_020B0BB0: ; 0x020B0BB0
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldrh r12, [r0, #0xc]
- ldrh r3, [r0, #0xe]
- mov lr, #0x0
- add r2, r12, #0x1
- cmp r3, r2
- bgt _020B0BDC
- ldrh r2, [r0, #0xa]
- cmp r2, r12
- movls lr, #0x1
-_020B0BDC:
- cmp lr, #0x0
- subne r2, r12, r3
- addne r2, r2, #0x1
- movne r2, r2, lsl #0x10
- movne r2, r2, lsr #0x10
- moveq r2, #0x0
- cmp r2, #0x1
- movcs r2, #0x1
- movcc r2, #0x0
- cmp r2, #0x0
- addeq sp, sp, #0x4
- ldreq r0, _020B0C74 ; =0x0000FFFE
- ldmeqia sp!, {pc}
- ldr lr, [r0, #0x0]
- ldr r3, _020B0C78 ; =UNK_021CCDA0
- mov r2, #0x540
- mla r12, lr, r2, r3
- ldr r3, [r1, #0x0]
- ldrh r2, [r0, #0xe]
- add r12, r12, #0x100
- mov r3, r3, asr #0x4
- add r12, r12, r2, lsl #0x5
- strh r3, [r12, #0x6]
- ldr r3, [r1, #0x4]
- mov r3, r3, asr #0x4
- strh r3, [r12, #0xe]
- ldr r3, [r1, #0x8]
- mov r3, r3, asr #0x4
- strh r3, [r12, #0x16]
- ldr r1, [r1, #0xc]
- mov r1, r1, asr #0x4
- strh r1, [r12, #0x1e]
- ldrh r1, [r0, #0xe]
- add r1, r1, #0x1
- strh r1, [r0, #0xe]
- mov r0, r2
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020B0C74: .word 0x0000FFFE
-_020B0C78: .word UNK_021CCDA0
-
- arm_func_start FUN_020B0C7C
-FUN_020B0C7C: ; 0x020B0C7C
- stmdb sp!, {r4,lr}
- ldrh r12, [r0, #0x6]
- ldrh r4, [r0, #0x8]
- mov lr, #0x0
- add r3, r12, #0x1
- cmp r4, r3
- bgt _020B0CA4
- ldrh r3, [r0, #0x4]
- cmp r3, r12
- movls lr, #0x1
-_020B0CA4:
- cmp lr, #0x0
- subne r3, r12, r4
- addne r3, r3, #0x1
- movne r3, r3, lsl #0x10
- movne r3, r3, lsr #0x10
- moveq r3, #0x0
- cmp r3, #0x1
- movcs r3, #0x1
- movcc r3, #0x0
- cmp r3, #0x0
- beq _020B0D48
- ldr r4, [r0, #0x0]
- ldr ip, _020B0D50 ; =UNK_021CCDA0
- mov r3, #0x540
- mla r12, r4, r3, r12
- ldrh r3, [r0, #0x8]
- add r4, r12, #0x100
- ldrh r12, [r1, #0x0]
- mov lr, r3, lsl #0x3
- add r3, r4, r3, lsl #0x3
- strh r12, [r4, lr]
- ldrh lr, [r1, #0x2]
- ldr ip, _020B0D54 ; =0x0000FFFE
- strh lr, [r3, #0x2]
- ldrh r1, [r1, #0x4]
- cmp r2, r12
- strh r1, [r3, #0x4]
- beq _020B0D34
- ldr r1, [r3, #0x0]
- mov r12, r1, lsl #0x16
- mov r12, r12, lsr #0x1e
- ands r12, r12, #0x1
- bicne r12, r1, #0x3e000000
- andne r1, r2, #0x1f
- orrne r1, r12, r1, lsl #0x19
- strne r1, [r3, #0x0]
-_020B0D34:
- ldrh r1, [r0, #0x8]
- add r1, r1, #0x1
- strh r1, [r0, #0x8]
- mov r0, #0x1
- ldmia sp!, {r4,pc}
-_020B0D48:
- mov r0, #0x0
- ldmia sp!, {r4,pc}
- .balign 4
-_020B0D50: .word UNK_021CCDA0
-_020B0D54: .word 0x0000FFFE
-
- arm_func_start FUN_020B0D58
-FUN_020B0D58: ; 0x020B0D58
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- ldrh lr, [r0, #0x6]
- ldrh r12, [r0, #0x8]
- mov r4, #0x0
- add r3, lr, #0x1
- cmp r12, r3
- bgt _020B0D84
- ldrh r3, [r0, #0x4]
- cmp r3, lr
- movls r4, #0x1
-_020B0D84:
- cmp r4, #0x0
- subne r3, lr, r12
- addne r3, r3, #0x1
- movne r3, r3, lsl #0x10
- movne r3, r3, lsr #0x10
- moveq r3, #0x0
- cmp r3, r2
- movcs r3, #0x1
- movcc r3, #0x0
- cmp r3, #0x0
- beq _020B0E24
- ldr lr, [r0, #0x0]
- ldr ip, _020B0E30 ; =UNK_021CCDA0
- mov r3, #0x540
- mla r12, lr, r3, r12
- ldrh r3, [r0, #0x8]
- add r12, r12, #0x100
- cmp r2, #0x0
- add r4, r12, r3, lsl #0x3
- mov r5, #0x0
- ble _020B0E18
- add r3, r0, #0x8
-_020B0DDC:
- ldrh lr, [r1, #0x0]
- mov r0, r5, lsl #0x3
- add r12, r4, r5, lsl #0x3
- strh lr, [r4, r0]
- ldrh r0, [r1, #0x2]
- add r5, r5, #0x1
- cmp r5, r2
- strh r0, [r12, #0x2]
- ldrh r0, [r1, #0x4]
- add r1, r1, #0x8
- strh r0, [r12, #0x4]
- ldrh r0, [r3, #0x0]
- add r0, r0, #0x1
- strh r0, [r3, #0x0]
- blt _020B0DDC
-_020B0E18:
- add sp, sp, #0x4
- mov r0, #0x1
- ldmia sp!, {r4-r5,pc}
-_020B0E24:
- mov r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020B0E30: .word UNK_021CCDA0
-
- arm_func_start FUN_020B0E34
-FUN_020B0E34: ; 0x020B0E34
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- ldr r5, [sp, #0x1c]
- ldr r6, _020B0FB4 ; =UNK_021CCDA0
- mov r4, #0x540
- mla r4, r5, r4, r6
- mov lr, r1
- sub r1, r2, #0x1
- add r1, lr, r1
- mov r1, r1, lsl #0x10
- mov r12, r1, lsr #0x10
- add r7, r4, lr, lsl #0x1
- add r2, r4, r12, lsl #0x1
- mov r6, r0
- mov r5, r3
- cmp r7, r2
- mov r3, lr, lsl #0x1
- bhi _020B0E9C
- ldr r0, _020B0FB8 ; =0x0000FFFF
-_020B0E80:
- ldrh r1, [r7, #0x0]
- cmp r1, r0
- movne r0, #0x0
- bne _020B0EA0
- add r7, r7, #0x2
- cmp r7, r2
- bls _020B0E80
-_020B0E9C:
- mov r0, #0x1
-_020B0EA0:
- cmp r0, #0x0
- beq _020B0EE0
- ldr r0, _020B0FBC ; =UNK_021CCD9C
- sub r2, r12, lr
- ldrh r7, [r0, #0x0]
- add r1, r4, r3
- mov r2, r2, lsl #0x1
- add r3, r7, #0x1
- strh r3, [r0, #0x0]
- strh r7, [r6, #0x10]
- strh lr, [r6, #0x4]
- strh r12, [r6, #0x6]
- strh lr, [r6, #0x8]
- ldrh r0, [r6, #0x10]
- bl MIi_CpuClear16
- b _020B0EEC
-_020B0EE0:
- add sp, sp, #0x4
- mov r0, #0x0
- ldmia sp!, {r4-r7,pc}
-_020B0EEC:
- ldrh r0, [sp, #0x18]
- add r4, r4, #0x500
- cmp r0, #0x0
- bne _020B0F18
- mov r0, #0x20
- strh r0, [r6, #0xa]
- mov r0, #0x0
- strh r0, [r6, #0xc]
- ldrh r0, [r6, #0xa]
- strh r0, [r6, #0xe]
- b _020B0F98
-_020B0F18:
- sub r0, r0, #0x1
- add r0, r5, r0
- mov r0, r0, lsl #0x10
- mov r12, r0, lsr #0x10
- add r7, r4, r5, lsl #0x1
- add r2, r4, r12, lsl #0x1
- cmp r7, r2
- mov r3, r5, lsl #0x1
- bhi _020B0F5C
- ldr r0, _020B0FB8 ; =0x0000FFFF
-_020B0F40:
- ldrh r1, [r7, #0x0]
- cmp r1, r0
- movne r0, #0x0
- bne _020B0F60
- add r7, r7, #0x2
- cmp r7, r2
- bls _020B0F40
-_020B0F5C:
- mov r0, #0x1
-_020B0F60:
- cmp r0, #0x0
- beq _020B0F8C
- strh r5, [r6, #0xa]
- strh r12, [r6, #0xc]
- strh r5, [r6, #0xe]
- ldrh r0, [r6, #0x10]
- sub r2, r12, r5
- add r1, r4, r3
- mov r2, r2, lsl #0x1
- bl MIi_CpuClear16
- b _020B0F98
-_020B0F8C:
- add sp, sp, #0x4
- mov r0, #0x0
- ldmia sp!, {r4-r7,pc}
-_020B0F98:
- mov r1, #0x0
- ldr r0, [sp, #0x1c]
- str r1, [r6, #0x14]
- str r0, [r6, #0x0]
- mov r0, #0x1
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020B0FB4: .word UNK_021CCDA0
-_020B0FB8: .word 0x0000FFFF
-_020B0FBC: .word UNK_021CCD9C
-
- arm_func_start FUN_020B0FC0
-FUN_020B0FC0: ; 0x020B0FC0
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r1, _020B1060 ; =UNK_021CCEA0
- mov r0, #0xc0
- mov r2, #0x400
- bl MIi_CpuClear16
- ldr r1, _020B1064 ; =UNK_021CD3E0
- mov r0, #0xc0
- mov r2, #0x400
- bl MIi_CpuClear16
- ldr r1, _020B1068 ; =UNK_021CD920
- mov r0, #0xc0
- mov r2, #0x400
- bl MIi_CpuClear16
- ldr r0, _020B106C ; =0x0000FFFF
- ldr r1, _020B1070 ; =UNK_021CCDA0
- mov r2, #0x100
- bl MIi_CpuClear16
- ldr r0, _020B106C ; =0x0000FFFF
- ldr r1, _020B1074 ; =UNK_021CD2E0
- mov r2, #0x100
- bl MIi_CpuClear16
- ldr r0, _020B106C ; =0x0000FFFF
- ldr r1, _020B1078 ; =UNK_021CD820
- mov r2, #0x100
- bl MIi_CpuClear16
- ldr r0, _020B106C ; =0x0000FFFF
- ldr r1, _020B107C ; =UNK_021CD2A0
- mov r2, #0x40
- bl MIi_CpuClear16
- ldr r0, _020B106C ; =0x0000FFFF
- ldr r1, _020B1080 ; =UNK_021CD7E0
- mov r2, #0x40
- bl MIi_CpuClear16
- ldr r0, _020B106C ; =0x0000FFFF
- ldr r1, _020B1084 ; =UNK_021CDD20
- mov r2, #0x40
- bl MIi_CpuClear16
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020B1060: .word UNK_021CCEA0
-_020B1064: .word UNK_021CD3E0
-_020B1068: .word UNK_021CD920
-_020B106C: .word 0x0000FFFF
-_020B1070: .word UNK_021CCDA0
-_020B1074: .word UNK_021CD2E0
-_020B1078: .word UNK_021CD820
-_020B107C: .word UNK_021CD2A0
-_020B1080: .word UNK_021CD7E0
-_020B1084: .word UNK_021CDD20
-
- arm_func_start FUN_020B1088
-FUN_020B1088: ; 0x020B1088
- ldr ip, _020B1094 ; =MIi_CpuCopy16
- add r1, r1, #0x7000000
- bx r12
- .balign 4
-_020B1094: .word MIi_CpuCopy16
-
- arm_func_start FUN_020B1098
-FUN_020B1098: ; 0x020B1098
- ldr r3, _020B10A8 ; =0x07000400
- ldr ip, _020B10AC ; =MIi_CpuCopy16
- add r1, r1, r3
- bx r12
- .balign 4
-_020B10A8: .word 0x07000400
-_020B10AC: .word MIi_CpuCopy16
-
- arm_func_start FUN_020B10B0
-FUN_020B10B0: ; 0x020B10B0
- mov r1, r1, lsl #0x1
- ldrh r0, [r0, r1]
- bx lr
-
- arm_func_start FUN_020B10BC
-FUN_020B10BC: ; 0x020B10BC
- ldr r0, [r0, r1, lsl #0x2]
- bx lr
-
- arm_func_start FUN_020B10C4
-FUN_020B10C4:
- str r2, [r0, r1, lsl #0x2]
- bx lr
-
- arm_func_start FUN_020B10CC
-FUN_020B10CC:
- mov r2, #0x0
- mvn r1, #0x0
-_020B10D4:
- str r1, [r0, r2, lsl #0x2]
- add r2, r2, #0x1
- cmp r2, #0x3
- blt _020B10D4
- bx lr
-
- arm_func_start FUN_020B10E8
-FUN_020B10E8: ; 0x020B10E8
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x4
- mov r10, r0
- ldr r0, [r10, #0x0]
- mov r9, r1
- cmp r0, #0x3
- ldr r0, [sp, #0x28]
- moveq r7, #0x20
- str r0, [sp, #0x28]
- ldrh r0, [r9, #0x0]
- movne r7, #0x200
- mov r11, r2
- mov r8, r3
- str r0, [sp, #0x0]
- mov r6, #0x0
- cmp r0, #0x0
- bls _020B1210
-_020B112C:
- ldr r1, [r9, #0x4]
- mov r0, r6, lsl #0x1
- ldrh r2, [r1, r0]
- ldr r0, [r10, #0xc]
- ldr r1, [r10, #0x8]
- mla r5, r7, r2, r11
- mla r4, r7, r6, r0
- bl DC_FlushRange
- cmp r8, #0x0
- beq _020B11E0
- cmp r8, #0x1
- beq _020B1168
- cmp r8, #0x2
- beq _020B11A4
- b _020B11F8
-_020B1168:
- ldr r0, [r10, #0x4]
- cmp r0, #0x0
- beq _020B1190
- bl GX_BeginLoadOBJExtPltt
- mov r0, r4
- mov r1, r5
- mov r2, r7
- bl GX_LoadOBJExtPltt
- bl GX_EndLoadOBJExtPltt
- b _020B11F8
-_020B1190:
- mov r0, r4
- mov r1, r5
- mov r2, r7
- bl GX_LoadOBJPltt
- b _020B11F8
-_020B11A4:
- ldr r0, [r10, #0x4]
- cmp r0, #0x0
- beq _020B11CC
- bl GXS_BeginLoadOBJExtPltt
- mov r0, r4
- mov r1, r5
- mov r2, r7
- bl GXS_LoadOBJExtPltt
- bl GXS_EndLoadOBJExtPltt
- b _020B11F8
-_020B11CC:
- mov r0, r4
- mov r1, r5
- mov r2, r7
- bl GXS_LoadOBJPltt
- b _020B11F8
-_020B11E0:
- bl GX_BeginLoadTexPltt
- mov r0, r4
- mov r1, r5
- mov r2, r7
- bl GX_LoadTexPltt
- bl GX_EndLoadTexPltt
-_020B11F8:
- add r0, r6, #0x1
- mov r0, r0, lsl #0x10
- mov r6, r0, lsr #0x10
- ldr r0, [sp, #0x0]
- cmp r6, r0
- blo _020B112C
-_020B1210:
- ldr r0, [sp, #0x28]
- ldr r2, [r10, #0x0]
- mov r1, r0
- str r2, [r1, #0x0]
- ldr r4, [r10, #0x4]
- mov r3, r0
- mov r1, r8
- mov r2, r11
- str r4, [r3, #0x4]
- bl FUN_020B19D0
- add sp, sp, #0x4
- ldmia sp!, {r4-r11,pc}
-
- arm_func_start FUN_020B1240
-FUN_020B1240: ; 0x020B1240
- stmdb sp!, {r4-r9,lr}
- sub sp, sp, #0x4
- mov r9, r0
- ldr r5, [r9, #0xc]
- ldr r4, [r9, #0x8]
- mov r8, r1
- mov r7, r2
- mov r0, r5
- mov r1, r4
- mov r6, r3
- bl DC_FlushRange
- cmp r7, #0x0
- beq _020B1300
- cmp r7, #0x1
- beq _020B1288
- cmp r7, #0x2
- beq _020B12C4
- b _020B1318
-_020B1288:
- ldr r0, [r9, #0x4]
- cmp r0, #0x0
- beq _020B12B0
- bl GX_BeginLoadOBJExtPltt
- mov r0, r5
- mov r1, r8
- mov r2, r4
- bl GX_LoadOBJExtPltt
- bl GX_EndLoadOBJExtPltt
- b _020B1318
-_020B12B0:
- mov r0, r5
- mov r1, r8
- mov r2, r4
- bl GX_LoadOBJPltt
- b _020B1318
-_020B12C4:
- ldr r0, [r9, #0x4]
- cmp r0, #0x0
- beq _020B12EC
- bl GXS_BeginLoadOBJExtPltt
- mov r0, r5
- mov r1, r8
- mov r2, r4
- bl GXS_LoadOBJExtPltt
- bl GXS_EndLoadOBJExtPltt
- b _020B1318
-_020B12EC:
- mov r0, r5
- mov r1, r8
- mov r2, r4
- bl GXS_LoadOBJPltt
- b _020B1318
-_020B1300:
- bl GX_BeginLoadTexPltt
- mov r0, r5
- mov r1, r8
- mov r2, r4
- bl GX_LoadTexPltt
- bl GX_EndLoadTexPltt
-_020B1318:
- ldr r1, [r9, #0x0]
- mov r0, r6
- str r1, [r6, #0x0]
- ldr r3, [r9, #0x4]
- mov r1, r7
- mov r2, r8
- str r3, [r6, #0x4]
- bl FUN_020B19D0
- add sp, sp, #0x4
- ldmia sp!, {r4-r9,pc}
-
- arm_func_start FUN_020B1340
-FUN_020B1340: ; 0x020B1340
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r7, r0
- mov r6, r1
- ldr r0, [r7, #0x14]
- ldr r1, [r7, #0x10]
- mov r5, r2
- mov r4, r3
- bl DC_FlushRange
- cmp r5, #0x0
- ldr r0, [r7, #0x8]
- beq _020B13B8
- cmp r5, #0x1
- beq _020B1384
- cmp r5, #0x2
- beq _020B13A0
- b _020B13B8
-_020B1384:
- mov r3, #0x4000000
- ldr r2, [r3, #0x0]
- ldr r1, _020B1520 ; =0xFFCFFFEF
- and r1, r2, r1
- orr r0, r1, r0
- str r0, [r3, #0x0]
- b _020B13B8
-_020B13A0:
- ldr r3, _020B1524 ; =0x04001000
- ldr r1, _020B1520 ; =0xFFCFFFEF
- ldr r2, [r3, #0x0]
- and r1, r2, r1
- orr r0, r1, r0
- str r0, [r3, #0x0]
-_020B13B8:
- ldr r0, [r7, #0x8]
- cmp r0, #0x0
- bne _020B14D8
- ldrh r0, [r7, #0x2]
- cmp r0, #0x10
- bgt _020B1408
- cmp r0, #0x10
- bge _020B1434
- cmp r0, #0x8
- addls pc, pc, r0, lsl #0x2
- b _020B1444
-_020B13E4:
- b _020B1444
-_020B13E8:
- b _020B1414
-_020B13EC:
- b _020B141C
-_020B13F0:
- b _020B1444
-_020B13F4:
- b _020B1424
-_020B13F8:
- b _020B1444
-_020B13FC:
- b _020B1444
-_020B1400:
- b _020B1444
-_020B1404:
- b _020B142C
-_020B1408:
- cmp r0, #0x20
- beq _020B143C
- b _020B1444
-_020B1414:
- mov r0, #0x0
- b _020B1448
-_020B141C:
- mov r0, #0x1
- b _020B1448
-_020B1424:
- mov r0, #0x2
- b _020B1448
-_020B142C:
- mov r0, #0x3
- b _020B1448
-_020B1434:
- mov r0, #0x4
- b _020B1448
-_020B143C:
- mov r0, #0x5
- b _020B1448
-_020B1444:
- mov r0, #0x0
-_020B1448:
- str r0, [r4, #0xc]
- ldrh r0, [r7, #0x0]
- cmp r0, #0x10
- bgt _020B1490
- cmp r0, #0x10
- bge _020B14BC
- cmp r0, #0x8
- addls pc, pc, r0, lsl #0x2
- b _020B14CC
-_020B146C:
- b _020B14CC
-_020B1470:
- b _020B149C
-_020B1474:
- b _020B14A4
-_020B1478:
- b _020B14CC
-_020B147C:
- b _020B14AC
-_020B1480:
- b _020B14CC
-_020B1484:
- b _020B14CC
-_020B1488:
- b _020B14CC
-_020B148C:
- b _020B14B4
-_020B1490:
- cmp r0, #0x20
- beq _020B14C4
- b _020B14CC
-_020B149C:
- mov r0, #0x0
- b _020B14D0
-_020B14A4:
- mov r0, #0x1
- b _020B14D0
-_020B14AC:
- mov r0, #0x2
- b _020B14D0
-_020B14B4:
- mov r0, #0x3
- b _020B14D0
-_020B14BC:
- mov r0, #0x4
- b _020B14D0
-_020B14C4:
- mov r0, #0x5
- b _020B14D0
-_020B14CC:
- mov r0, #0x0
-_020B14D0:
- str r0, [r4, #0x10]
- b _020B14E8
-_020B14D8:
- ldrh r0, [r7, #0x2]
- str r0, [r4, #0xc]
- ldrh r0, [r7, #0x0]
- str r0, [r4, #0x10]
-_020B14E8:
- ldr r1, [r7, #0x4]
- mov r0, #0x0
- str r1, [r4, #0x14]
- str r0, [r4, #0x18]
- mov r0, #0x1
- str r0, [r4, #0x1c]
- ldr r3, [r7, #0x8]
- mov r0, r4
- mov r1, r5
- mov r2, r6
- str r3, [r4, #0x20]
- bl FUN_020B1A1C
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020B1520: .word 0xFFCFFFEF
-_020B1524: .word 0x04001000
-
- arm_func_start FUN_020B1528
-FUN_020B1528: ; 0x020B1528
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r7, r0
- movs r5, r2
- mov r6, r1
- mov r4, r3
- ldr r0, [r7, #0x8]
- beq _020B1590
- cmp r5, #0x1
- beq _020B155C
- cmp r5, #0x2
- beq _020B1578
- b _020B1590
-_020B155C:
- mov r3, #0x4000000
- ldr r2, [r3, #0x0]
- ldr r1, _020B1760 ; =0xFFCFFFEF
- and r1, r2, r1
- orr r0, r1, r0
- str r0, [r3, #0x0]
- b _020B1590
-_020B1578:
- ldr r3, _020B1764 ; =0x04001000
- ldr r1, _020B1760 ; =0xFFCFFFEF
- ldr r2, [r3, #0x0]
- and r1, r2, r1
- orr r0, r1, r0
- str r0, [r3, #0x0]
-_020B1590:
- ldr r0, [r7, #0x14]
- ldr r1, [r7, #0x10]
- bl DC_FlushRange
- cmp r5, #0x0
- beq _020B15B8
- cmp r5, #0x1
- beq _020B15D4
- cmp r5, #0x2
- beq _020B15E8
- b _020B15F8
-_020B15B8:
- bl GX_BeginLoadTex
- ldr r0, [r7, #0x14]
- ldr r2, [r7, #0x10]
- mov r1, r6
- bl GX_LoadTex
- bl GX_EndLoadTex
- b _020B15F8
-_020B15D4:
- ldr r0, [r7, #0x14]
- ldr r2, [r7, #0x10]
- mov r1, r6
- bl GX_LoadOBJ
- b _020B15F8
-_020B15E8:
- ldr r0, [r7, #0x14]
- ldr r2, [r7, #0x10]
- mov r1, r6
- bl GXS_LoadOBJ
-_020B15F8:
- ldr r0, [r7, #0x8]
- cmp r0, #0x0
- bne _020B1718
- ldrh r0, [r7, #0x2]
- cmp r0, #0x10
- bgt _020B1648
- cmp r0, #0x10
- bge _020B1674
- cmp r0, #0x8
- addls pc, pc, r0, lsl #0x2
- b _020B1684
-_020B1624:
- b _020B1684
-_020B1628:
- b _020B1654
-_020B162C:
- b _020B165C
-_020B1630:
- b _020B1684
-_020B1634:
- b _020B1664
-_020B1638:
- b _020B1684
-_020B163C:
- b _020B1684
-_020B1640:
- b _020B1684
-_020B1644:
- b _020B166C
-_020B1648:
- cmp r0, #0x20
- beq _020B167C
- b _020B1684
-_020B1654:
- mov r0, #0x0
- b _020B1688
-_020B165C:
- mov r0, #0x1
- b _020B1688
-_020B1664:
- mov r0, #0x2
- b _020B1688
-_020B166C:
- mov r0, #0x3
- b _020B1688
-_020B1674:
- mov r0, #0x4
- b _020B1688
-_020B167C:
- mov r0, #0x5
- b _020B1688
-_020B1684:
- mov r0, #0x0
-_020B1688:
- str r0, [r4, #0xc]
- ldrh r0, [r7, #0x0]
- cmp r0, #0x10
- bgt _020B16D0
- cmp r0, #0x10
- bge _020B16FC
- cmp r0, #0x8
- addls pc, pc, r0, lsl #0x2
- b _020B170C
-_020B16AC:
- b _020B170C
-_020B16B0:
- b _020B16DC
-_020B16B4:
- b _020B16E4
-_020B16B8:
- b _020B170C
-_020B16BC:
- b _020B16EC
-_020B16C0:
- b _020B170C
-_020B16C4:
- b _020B170C
-_020B16C8:
- b _020B170C
-_020B16CC:
- b _020B16F4
-_020B16D0:
- cmp r0, #0x20
- beq _020B1704
- b _020B170C
-_020B16DC:
- mov r0, #0x0
- b _020B1710
-_020B16E4:
- mov r0, #0x1
- b _020B1710
-_020B16EC:
- mov r0, #0x2
- b _020B1710
-_020B16F4:
- mov r0, #0x3
- b _020B1710
-_020B16FC:
- mov r0, #0x4
- b _020B1710
-_020B1704:
- mov r0, #0x5
- b _020B1710
-_020B170C:
- mov r0, #0x0
-_020B1710:
- str r0, [r4, #0x10]
- b _020B1728
-_020B1718:
- ldrh r0, [r7, #0x2]
- str r0, [r4, #0xc]
- ldrh r0, [r7, #0x0]
- str r0, [r4, #0x10]
-_020B1728:
- ldr r1, [r7, #0x4]
- mov r0, #0x0
- str r1, [r4, #0x14]
- str r0, [r4, #0x18]
- mov r0, #0x1
- str r0, [r4, #0x1c]
- ldr r3, [r7, #0x8]
- mov r0, r4
- mov r1, r5
- mov r2, r6
- str r3, [r4, #0x20]
- bl FUN_020B1A1C
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020B1760: .word 0xFFCFFFEF
-_020B1764: .word 0x04001000
-
- arm_func_start FUN_020B1768
-FUN_020B1768: ; 0x020B1768
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r7, r0
- movs r5, r2
- mov r6, r1
- mov r4, r3
- ldr r0, [r7, #0x8]
- beq _020B17D0
- cmp r5, #0x1
- beq _020B179C
- cmp r5, #0x2
- beq _020B17B8
- b _020B17D0
-_020B179C:
- mov r3, #0x4000000
- ldr r2, [r3, #0x0]
- ldr r1, _020B19A0 ; =0xFFCFFFEF
- and r1, r2, r1
- orr r0, r1, r0
- str r0, [r3, #0x0]
- b _020B17D0
-_020B17B8:
- ldr r3, _020B19A4 ; =0x04001000
- ldr r1, _020B19A0 ; =0xFFCFFFEF
- ldr r2, [r3, #0x0]
- and r1, r2, r1
- orr r0, r1, r0
- str r0, [r3, #0x0]
-_020B17D0:
- ldr r0, [r7, #0x14]
- ldr r1, [r7, #0x10]
- bl DC_FlushRange
- cmp r5, #0x0
- beq _020B17F8
- cmp r5, #0x1
- beq _020B1814
- cmp r5, #0x2
- beq _020B1828
- b _020B1838
-_020B17F8:
- bl GX_BeginLoadTex
- ldr r0, [r7, #0x14]
- ldr r2, [r7, #0x10]
- mov r1, r6
- bl GX_LoadTex
- bl GX_EndLoadTex
- b _020B1838
-_020B1814:
- ldr r0, [r7, #0x14]
- ldr r2, [r7, #0x10]
- mov r1, r6
- bl GX_LoadOBJ
- b _020B1838
-_020B1828:
- ldr r0, [r7, #0x14]
- ldr r2, [r7, #0x10]
- mov r1, r6
- bl GXS_LoadOBJ
-_020B1838:
- ldr r0, [r7, #0x8]
- cmp r0, #0x0
- bne _020B1958
- ldrh r0, [r7, #0x2]
- cmp r0, #0x10
- bgt _020B1888
- cmp r0, #0x10
- bge _020B18B4
- cmp r0, #0x8
- addls pc, pc, r0, lsl #0x2
- b _020B18C4
-_020B1864:
- b _020B18C4
-_020B1868:
- b _020B1894
-_020B186C:
- b _020B189C
-_020B1870:
- b _020B18C4
-_020B1874:
- b _020B18A4
-_020B1878:
- b _020B18C4
-_020B187C:
- b _020B18C4
-_020B1880:
- b _020B18C4
-_020B1884:
- b _020B18AC
-_020B1888:
- cmp r0, #0x20
- beq _020B18BC
- b _020B18C4
-_020B1894:
- mov r0, #0x0
- b _020B18C8
-_020B189C:
- mov r0, #0x1
- b _020B18C8
-_020B18A4:
- mov r0, #0x2
- b _020B18C8
-_020B18AC:
- mov r0, #0x3
- b _020B18C8
-_020B18B4:
- mov r0, #0x4
- b _020B18C8
-_020B18BC:
- mov r0, #0x5
- b _020B18C8
-_020B18C4:
- mov r0, #0x0
-_020B18C8:
- str r0, [r4, #0xc]
- ldrh r0, [r7, #0x0]
- cmp r0, #0x10
- bgt _020B1910
- cmp r0, #0x10
- bge _020B193C
- cmp r0, #0x8
- addls pc, pc, r0, lsl #0x2
- b _020B194C
-_020B18EC:
- b _020B194C
-_020B18F0:
- b _020B191C
-_020B18F4:
- b _020B1924
-_020B18F8:
- b _020B194C
-_020B18FC:
- b _020B192C
-_020B1900:
- b _020B194C
-_020B1904:
- b _020B194C
-_020B1908:
- b _020B194C
-_020B190C:
- b _020B1934
-_020B1910:
- cmp r0, #0x20
- beq _020B1944
- b _020B194C
-_020B191C:
- mov r0, #0x0
- b _020B1950
-_020B1924:
- mov r0, #0x1
- b _020B1950
-_020B192C:
- mov r0, #0x2
- b _020B1950
-_020B1934:
- mov r0, #0x3
- b _020B1950
-_020B193C:
- mov r0, #0x4
- b _020B1950
-_020B1944:
- mov r0, #0x5
- b _020B1950
-_020B194C:
- mov r0, #0x0
-_020B1950:
- str r0, [r4, #0x10]
- b _020B1968
-_020B1958:
- ldrh r0, [r7, #0x2]
- str r0, [r4, #0xc]
- ldrh r0, [r7, #0x0]
- str r0, [r4, #0x10]
-_020B1968:
- ldr r1, [r7, #0x4]
- mov r0, #0x0
- str r1, [r4, #0x14]
- str r0, [r4, #0x18]
- mov r0, #0x1
- str r0, [r4, #0x1c]
- ldr r3, [r7, #0x8]
- mov r0, r4
- mov r1, r5
- mov r2, r6
- str r3, [r4, #0x20]
- bl FUN_020B1A1C
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020B19A0: .word 0xFFCFFFEF
-_020B19A4: .word 0x04001000
-
- arm_func_start FUN_020B19A8
-FUN_020B19A8:
- add r0, r0, r1, lsl #0x2
- ldr r1, [r0, #0x8]
- mvn r0, #0x0
- cmp r1, r0
- movne r0, #0x1
- moveq r0, #0x0
- bx lr
-
- arm_func_start FUN_020B19C4
-FUN_020B19C4: ; 0x020B19C4
- add r0, r0, r1, lsl #0x2
- ldr r0, [r0, #0x8]
- bx lr
-
- arm_func_start FUN_020B19D0
-FUN_020B19D0: ; 0x020B19D0
- add r0, r0, r1, lsl #0x2
- str r2, [r0, #0x8]
- bx lr
-
- arm_func_start FUN_020B19DC
-FUN_020B19DC: ; 0x020B19DC
- mov r3, #0x0
- mvn r2, #0x0
-_020B19E4:
- add r1, r0, r3, lsl #0x2
- add r3, r3, #0x1
- str r2, [r1, #0x8]
- cmp r3, #0x3
- blt _020B19E4
- bx lr
-
- arm_func_start FUN_020B19FC
-FUN_020B19FC:
- ldr r1, [r0, r1, lsl #0x2]
- mvn r0, #0x0
- cmp r1, r0
- movne r0, #0x1
- moveq r0, #0x0
- bx lr
-
- arm_func_start FUN_020B1A14
-FUN_020B1A14: ; 0x020B1A14
- ldr r0, [r0, r1, lsl #0x2]
- bx lr
-
- arm_func_start FUN_020B1A1C
-FUN_020B1A1C: ; 0x020B1A1C
- str r2, [r0, r1, lsl #0x2]
- bx lr
-
- arm_func_start FUN_020B1A24
-FUN_020B1A24: ; 0x020B1A24
- mov r2, #0x0
- mvn r1, #0x0
-_020B1A2C:
- str r1, [r0, r2, lsl #0x2]
- add r2, r2, #0x1
- cmp r2, #0x3
- blt _020B1A2C
- bx lr
-
- arm_func_start FUN_020B1A40
-FUN_020B1A40: ; 0x020B1A40
- stmdb sp!, {r4,lr}
- mov r4, r0
- add r1, r4, #0x4
- mov r0, #0x0
- mov r2, #0x18
- bl MIi_CpuClear16
- mov r0, #0x1000
- str r0, [r4, #0x4]
- str r0, [r4, #0x8]
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020B1A68
-FUN_020B1A68:
- ldr ip, _020B1A74 ; =FUN_020B1A40
- str r1, [r0, #0x0]
- bx r12
- .balign 4
-_020B1A74: .word FUN_020B1A40
-
- arm_func_start FUN_020B1A78
-FUN_020B1A78: ; 0x020B1A78
- ldr r3, [r0, #0x0]
- cmp r3, #0x1
- ldreqh r3, [r0, #0x12]
- orreq r3, r3, #0x2
- streqh r3, [r0, #0x12]
- streq r1, [r0, #0x4]
- streq r2, [r0, #0x8]
- bx lr
-
- arm_func_start FUN_020B1A98
-FUN_020B1A98: ; 0x020B1A98
- ldr r2, [r0, #0x0]
- cmp r2, #0x1
- ldreqh r2, [r0, #0x12]
- orreq r2, r2, #0x4
- streqh r2, [r0, #0x12]
- streqh r1, [r0, #0x10]
- bx lr
-
- arm_func_start FUN_020B1AB4
-FUN_020B1AB4: ; 0x020B1AB4
- ldr r3, [r0, #0x0]
- cmp r3, #0x1
- ldreqh r3, [r0, #0x12]
- orreq r3, r3, #0x8
- streqh r3, [r0, #0x12]
- streqh r1, [r0, #0xc]
- streqh r2, [r0, #0xe]
- bx lr
-
- arm_func_start FUN_020B1AD4
-FUN_020B1AD4: ; 0x020B1AD4
- mov r2, #0x0
- str r2, [r0, #0x0]
- str r1, [r0, #0x4]
- mov r1, #0x1
- str r1, [r0, #0x8]
- ldr ip, _020B1AF4 ; =FUN_020B1A68
- add r0, r0, #0xc
- bx r12
- .balign 4
-_020B1AF4: .word FUN_020B1A68
-
- arm_func_start FUN_020B1AF8
-FUN_020B1AF8: ; 0x020B1AF8
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x34
- ldrh r5, [r2, #0x0]
- ldr r4, [sp, #0x60]
- ldr r10, [sp, #0x58]
- str r4, [sp, #0x60]
- cmp r1, r5
- movcs r1, r5
- mov r4, #0x0
- cmp r1, #0x0
- str r4, [sp, #0x0]
- bls _020B1E7C
- ldrh r4, [sp, #0x5c]
- mov r4, r4, lsl #0x19
- str r4, [sp, #0x4]
- ldr r4, [sp, #0x0]
- str r4, [sp, #0x14]
- mov r4, #0x100
- str r4, [sp, #0xc]
- mov r4, #0x300
- str r4, [sp, #0x8]
- mov r4, #0x1
- str r4, [sp, #0x10]
-_020B1B54:
- ldr r5, [sp, #0x0]
- mov r6, #0x6
- mul r6, r5, r6
- ldr r8, [r2, #0x4]
- ldr r4, [sp, #0x0]
- add r7, r0, r5, lsl #0x3
- ldrh r5, [r8, r6]
- mov r4, r4, lsl #0x3
- add r9, r8, r6
- strh r5, [r0, r4]
- ldrh r4, [r9, #0x2]
- cmp r3, #0x0
- strh r4, [r7, #0x2]
- ldrh r4, [r9, #0x4]
- strh r4, [r7, #0x4]
- bne _020B1B9C
- cmp r10, #0x0
- beq _020B1E60
-_020B1B9C:
- ldr r5, [r7, #0x0]
- ldr r4, _020B1E88 ; =0x01FF0000
- and r4, r5, r4
- mov r4, r4, lsr #0x10
- mov r4, r4, lsl #0x10
- mov r4, r4, asr #0x10
- cmp r4, #0xff
- orrgt r4, r4, #0xff00
- movgt r4, r4, lsl #0x10
- movgt r4, r4, asr #0x10
- mov r4, r4, lsl #0xc
- str r4, [sp, #0x20]
- ldr r4, [r7, #0x0]
- and r4, r4, #0xff
- mov r4, r4, lsl #0x10
- mov r4, r4, asr #0x10
- cmp r4, #0x7f
- orrgt r4, r4, #0xff00
- movgt r4, r4, lsl #0x10
- movgt r4, r4, asr #0x10
- mov r4, r4, lsl #0xc
- str r4, [sp, #0x24]
- cmp r3, #0x0
- beq _020B1E00
- ldr r5, [r7, #0x0]
- and r6, r5, #0x300
- cmp r6, #0x100
- beq _020B1C1C
- cmp r6, #0x300
- beq _020B1C1C
- and r4, r5, #0x30000000
- orr r6, r6, r4
-_020B1C1C:
- cmp r6, #0x300
- bne _020B1C70
- ldr r4, _020B1E8C ; =0xC000C000
- ldr r8, _020B1E90 ; =UNK_020FF8AC
- and r5, r5, r4
- and r4, r5, #0xc000
- mov r6, r4, asr #0xe
- and r4, r5, #0xc0000000
- mov r4, r4, lsr #0x1e
- mov r4, r4, lsl #0x1
- add r8, r8, r6, lsl #0x3
- ldrh r9, [r4, r8]
- ldr r8, _020B1E94 ; =UNK_020FF894
- ldr r5, [sp, #0x20]
- add r6, r8, r6, lsl #0x3
- add r5, r5, r9, lsl #0xb
- str r5, [sp, #0x20]
- ldrh r4, [r4, r6]
- ldr r5, [sp, #0x24]
- add r4, r5, r4, lsl #0xb
- str r4, [sp, #0x24]
-_020B1C70:
- ldr r4, [sp, #0x60]
- ldr r5, [r3, #0x8]
- cmp r4, #0x0
- ldrne r8, [sp, #0x8]
- add r4, sp, #0x20
- ldreq r8, [sp, #0xc]
- mov r6, r4
- cmp r8, #0x300
- ldreq r9, [sp, #0x10]
- mov r12, #0x1000
- ldrne r9, [sp, #0x14]
- cmp r4, r4
- ldr r4, [sp, #0x24]
- addeq r6, sp, #0x28
- smull r11, r4, r5, r4
- adds r5, r11, r12
- adc r11, r4, #0x0
- ldr r4, [r3, #0x0]
- ldr lr, [sp, #0x20]
- smlal r5, r11, r4, lr
- mov r4, r5, lsr #0xc
- orr r4, r4, r11, lsl #0x14
- str r4, [r6, #0x0]
- ldr r4, [r3, #0xc]
- ldr r5, [sp, #0x24]
- ldr lr, [r3, #0x4]
- smull r11, r5, r4, r5
- adds r11, r11, r12
- adc r4, r5, #0x0
- add r5, sp, #0x28
- cmp r6, r5
- ldr r5, [sp, #0x20]
- smlal r11, r4, lr, r5
- mov r5, r11, lsr #0xc
- orr r5, r5, r4, lsl #0x14
- str r5, [r6, #0x4]
- ldreq r5, [sp, #0x28]
- ldreq r4, [sp, #0x2c]
- streq r5, [sp, #0x20]
- streq r4, [sp, #0x24]
- cmp r8, #0x100
- beq _020B1D38
- cmp r8, #0x300
- beq _020B1D38
- ldr r5, [r7, #0x0]
- ldr r4, _020B1E98 ; =0xC1FFFCFF
- and r4, r5, r4
- orr r4, r4, r8
- str r4, [r7, #0x0]
- b _020B1D54
-_020B1D38:
- ldr r5, [r7, #0x0]
- ldr r4, _020B1E98 ; =0xC1FFFCFF
- and r4, r5, r4
- orr r5, r4, r8
- ldr r4, [sp, #0x4]
- orr r4, r4, r5
- str r4, [r7, #0x0]
-_020B1D54:
- ldr r6, [r7, #0x0]
- ldr r5, _020B1E8C ; =0xC000C000
- cmp r9, #0x0
- and r8, r6, r5
- and r5, r8, #0xc000
- mov r6, r5, asr #0xe
- and r5, r8, #0xc0000000
- ldr r8, _020B1E90 ; =UNK_020FF8AC
- mov r5, r5, lsr #0x1e
- mov r5, r5, lsl #0x1
- add r8, r8, r6, lsl #0x3
- ldrh r9, [r5, r8]
- ldr r8, _020B1E94 ; =UNK_020FF894
- ldr r4, [sp, #0x20]
- add r6, r8, r6, lsl #0x3
- mov r11, r9, asr #0x1
- ldrh r5, [r5, r6]
- mov r8, r11, lsl #0xc
- ldr r6, [r3, #0x0]
- rsb r12, r8, #0x0
- mov r9, r5, asr #0x1
- mla r12, r6, r11, r12
- ldr r5, [r3, #0x8]
- mla r6, r5, r9, r12
- add r6, r4, r6
- str r6, [sp, #0x20]
- ldr r12, [r3, #0x4]
- mov r5, r9, lsl #0xc
- str r12, [sp, #0x1c]
- ldr r12, [r3, #0xc]
- rsb lr, r5, #0x0
- str r12, [sp, #0x18]
- ldr r12, [sp, #0x1c]
- ldr r4, [sp, #0x24]
- mla r11, r12, r11, lr
- ldr r12, [sp, #0x18]
- subne r6, r6, r8
- mla r9, r12, r9, r11
- add r4, r4, r9
- str r4, [sp, #0x24]
- subne r4, r4, r5
- strne r6, [sp, #0x20]
- strne r4, [sp, #0x24]
-_020B1E00:
- cmp r10, #0x0
- beq _020B1E28
- ldr r6, [sp, #0x20]
- ldr r4, [r10, #0x0]
- ldr r5, [sp, #0x24]
- add r4, r6, r4
- str r4, [sp, #0x20]
- ldr r4, [r10, #0x4]
- add r4, r5, r4
- str r4, [sp, #0x24]
-_020B1E28:
- ldr r4, [sp, #0x20]
- ldr r6, [r7, #0x0]
- add r5, r4, #0x800
- ldr r4, _020B1E9C ; =0x000001FF
- and r4, r4, r5, asr #0xc
- ldr r5, _020B1EA0 ; =0xFE00FF00
- and r6, r6, r5
- ldr r5, [sp, #0x24]
- add r5, r5, #0x800
- mov r5, r5, asr #0xc
- and r5, r5, #0xff
- orr r5, r6, r5
- orr r4, r5, r4, lsl #0x10
- str r4, [r7, #0x0]
-_020B1E60:
- ldr r4, [sp, #0x0]
- add r4, r4, #0x1
- mov r4, r4, lsl #0x10
- mov r4, r4, lsr #0x10
- str r4, [sp, #0x0]
- cmp r4, r1
- blo _020B1B54
-_020B1E7C:
- mov r0, r1
- add sp, sp, #0x34
- ldmia sp!, {r4-r11,pc}
- .balign 4
-_020B1E88: .word 0x01FF0000
-_020B1E8C: .word 0xC000C000
-_020B1E90: .word UNK_020FF8AC
-_020B1E94: .word UNK_020FF894
-_020B1E98: .word 0xC1FFFCFF
-_020B1E9C: .word 0x000001FF
-_020B1EA0: .word 0xFE00FF00
-
- arm_func_start FUN_020B1EA4
-FUN_020B1EA4: ; 0x020B1EA4
- stmdb sp!, {r4,lr}
- mov r4, r0
- bl FUN_020B0518
- cmp r0, #0x0
- ldmeqia sp!, {r4,pc}
- mov r0, r4
- bl FUN_020B1FC4
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020B1EC4
-FUN_020B1EC4: ; 0x020B1EC4
- stmdb sp!, {r4,lr}
- mov r4, r0
- bl FUN_020B0534
- cmp r0, #0x0
- ldmeqia sp!, {r4,pc}
- mov r0, r4
- bl FUN_020B1FC4
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020B1EE4
-FUN_020B1EE4: ; 0x020B1EE4
- stmdb sp!, {r4,lr}
- mov r4, r0
- bl FUN_020B0438
- mov r0, r4
- bl FUN_020B1FC4
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020B1EFC
-FUN_020B1EFC: ; 0x020B1EFC
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x14
- mov r4, r2
- ldr r2, [r4, #0xc]
- mov r5, r1
- ldr r1, [r2, #0x0]
- ldr r2, [sp, #0x34]
- str r1, [sp, #0x0]
- ldr r1, [sp, #0x38]
- str r2, [sp, #0x4]
- mov r6, r3
- mov r7, r0
- ldr r12, [sp, #0x3c]
- str r1, [sp, #0x8]
- ldr r1, [sp, #0x28]
- ldr r2, [sp, #0x2c]
- ldr r3, [sp, #0x30]
- mov r0, r6
- str r12, [sp, #0xc]
- bl FUN_020B45F0
- str r6, [r7, #0x34]
- str r4, [r7, #0x30]
- add r0, r7, #0x38
- mov r1, #0x1
- str r6, [r7, #0x34]
- bl FUN_020B1A68
- mov r0, r7
- bl FUN_020B04C0
- mov r0, r7
- mov r1, r5
- bl FUN_020B1EE4
- add sp, sp, #0x14
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020B1F80
-FUN_020B1F80: ; 0x020B1F80
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- mov r4, r1
- str r2, [r5, #0x30]
- mvn r2, #0x0
- add r0, r5, #0x38
- mov r1, #0x1
- str r2, [r5, #0x34]
- bl FUN_020B1A68
- mov r0, r5
- bl FUN_020B04C0
- mov r0, r5
- mov r1, r4
- bl FUN_020B1EE4
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020B1FC4
-FUN_020B1FC4: ; 0x020B1FC4
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r5, r0
- ldr r1, [r5, #0x0]
- ldrh r1, [r1, #0x4]
- cmp r1, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r7,pc}
- bl FUN_020B06E0
- mov r4, r0
- ldr r7, [r5, #0x30]
- ldrh r1, [r4, #0x0]
- mov r0, r7
- bl FUN_020AFE8C
- str r0, [r5, #0x2c]
- ldr r1, [r5, #0x18]
- add r0, r5, #0x38
- ldr r2, [r1, #0x4]
- mov r1, #0x1
- and r6, r2, #0xff
- bl FUN_020B1A68
- cmp r6, #0x0
- beq _020B2068
- cmp r6, #0x2
- bne _020B203C
- ldrsh r1, [r4, #0x4]
- ldrsh r2, [r4, #0x6]
- add r0, r5, #0x38
- bl FUN_020B1AB4
- b _020B2068
-_020B203C:
- ldr r1, [r4, #0x4]
- ldr r2, [r4, #0x8]
- add r0, r5, #0x38
- bl FUN_020B1A78
- ldrh r1, [r4, #0x2]
- add r0, r5, #0x38
- bl FUN_020B1A98
- ldrsh r1, [r4, #0xc]
- ldrsh r2, [r4, #0xe]
- add r0, r5, #0x38
- bl FUN_020B1AB4
-_020B2068:
- ldr r2, [r7, #0xc]
- cmp r2, #0x0
- movne r0, #0x1
- moveq r0, #0x0
- cmp r0, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r7,pc}
- ldr r1, [r5, #0x34]
- mvn r0, #0x0
- cmp r1, r0
- movne r0, #0x1
- moveq r0, #0x0
- cmp r0, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r7,pc}
- ldrh r1, [r4, #0x0]
- ldr r2, [r2, #0x4]
- ldr r0, [r5, #0x34]
- add r3, r2, r1, lsl #0x3
- ldr r1, [r2, r1, lsl #0x3]
- ldr r2, [r3, #0x4]
- bl FUN_020B4400
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020B20C8
-FUN_020B20C8: ; 0x020B20C8
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0xc
- mov r6, #0x0
- str r6, [r0, #0x38]
- ldr r7, [sp, #0x30]
- str r6, [r0, #0x30]
- mov r10, r1
- str r7, [r0, #0x34]
- str r0, [sp, #0x0]
- movs r8, r3
- mov r9, r2
- str r10, [r0, #0x3c]
- ldr r11, [sp, #0x34]
- beq _020B215C
- mov r0, #0x1
- str r6, [sp, #0x8]
- str r0, [sp, #0x4]
-_020B210C:
- mov r0, #0x28
- mul r4, r6, r0
- ldr r1, [sp, #0x4]
- add r0, r10, r4
- bl FUN_020B1AD4
- mov r0, #0x54
- mla r5, r6, r0, r9
- ldr r1, [sp, #0x8]
- mov r0, r7
- str r5, [r10, r4]
- bl FUN_020AFC04
- mov r1, r0
- mov r0, r5
- mov r2, r11
- bl FUN_020B1F80
- add r0, r6, #0x1
- mov r0, r0, lsl #0x10
- mov r6, r0, lsr #0x10
- cmp r6, r8
- blo _020B210C
-_020B215C:
- ldr r0, [sp, #0x0]
- bl FUN_020B04C0
- ldr r0, [sp, #0x0]
- ldr r3, [sp, #0x38]
- ldr r2, [sp, #0x0]
- add r0, r0, #0x44
- mov r1, #0x1
- str r3, [r2, #0x40]
- bl FUN_020B1A68
- ldr r0, [sp, #0x0]
- mov r1, #0x0
- strh r1, [r0, #0x2c]
- add sp, sp, #0xc
- ldmia sp!, {r4-r11,pc}
-
- arm_func_start FUN_020B2194
-FUN_020B2194: ; 0x020B2194
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r7, r0
- bl FUN_020B0518
- cmp r0, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r7,pc}
- mov r0, r7
- bl FUN_020B06E0
- mov r4, r0
- ldrh r1, [r4, #0x0]
- ldr r0, [r7, #0x40]
- bl FUN_020AFF34
- ldr r1, [r7, #0x18]
- mov r6, r0
- ldr r1, [r1, #0x4]
- add r0, r7, #0x44
- and r5, r1, #0xff
- mov r1, #0x1
- bl FUN_020B1A68
- cmp r5, #0x0
- beq _020B2234
- cmp r5, #0x2
- bne _020B2208
- ldrsh r1, [r4, #0x4]
- ldrsh r2, [r4, #0x6]
- add r0, r7, #0x44
- bl FUN_020B1AB4
- b _020B2234
-_020B2208:
- ldr r1, [r4, #0x4]
- ldr r2, [r4, #0x8]
- add r0, r7, #0x44
- bl FUN_020B1A78
- ldrh r1, [r4, #0x2]
- add r0, r7, #0x44
- bl FUN_020B1A98
- ldrsh r1, [r4, #0xc]
- ldrsh r2, [r4, #0xe]
- add r0, r7, #0x44
- bl FUN_020B1AB4
-_020B2234:
- ldrh r2, [r7, #0x2c]
- mov r1, r6
- add r0, r7, #0x30
- bl FUN_020B24E0
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020B224C
-FUN_020B224C: ; 0x020B224C
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r4, r0
- ldr r2, [r4, #0x0]
- mov r6, r1
- ldrh r5, [r2, #0x4]
- bl FUN_020B0534
- cmp r0, #0x0
- beq _020B2318
- ldrh r1, [r4, #0x2c]
- mov r0, r4
- add r1, r1, r5
- strh r1, [r4, #0x2c]
- bl FUN_020B06E0
- mov r5, r0
- ldrh r1, [r5, #0x0]
- ldr r0, [r4, #0x40]
- bl FUN_020AFF34
- ldr r1, [r4, #0x18]
- mov r7, r0
- ldr r1, [r1, #0x4]
- add r0, r4, #0x44
- and r6, r1, #0xff
- mov r1, #0x1
- bl FUN_020B1A68
- cmp r6, #0x0
- beq _020B2300
- cmp r6, #0x2
- bne _020B22D4
- ldrsh r1, [r5, #0x4]
- ldrsh r2, [r5, #0x6]
- add r0, r4, #0x44
- bl FUN_020B1AB4
- b _020B2300
-_020B22D4:
- ldr r1, [r5, #0x4]
- ldr r2, [r5, #0x8]
- add r0, r4, #0x44
- bl FUN_020B1A78
- ldrh r1, [r5, #0x2]
- add r0, r4, #0x44
- bl FUN_020B1A98
- ldrsh r1, [r5, #0xc]
- ldrsh r2, [r5, #0xe]
- add r0, r4, #0x44
- bl FUN_020B1AB4
-_020B2300:
- ldrh r2, [r4, #0x2c]
- mov r1, r7
- add r0, r4, #0x30
- bl FUN_020B24E0
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-_020B2318:
- mov r1, r6
- add r0, r4, #0x30
- bl FUN_020B232C
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020B232C
-FUN_020B232C: ; 0x020B232C
- stmdb sp!, {r4-r8,lr}
- mov r7, r0
- ldr r0, [r7, #0x8]
- mov r6, r1
- cmp r0, #0x1
- bne _020B238C
- ldr r0, [r7, #0x0]
- ldr r4, [r7, #0xc]
- ldrh r0, [r0, #0x2]
- mov r5, #0x0
- cmp r0, #0x0
- ldmlsia sp!, {r4-r8,pc}
- mov r8, #0x58
-_020B2360:
- mla r0, r5, r8, r4
- mov r1, r6
- bl FUN_020B1EC4
- ldr r1, [r7, #0x0]
- add r0, r5, #0x1
- mov r0, r0, lsl #0x10
- ldrh r1, [r1, #0x2]
- mov r5, r0, lsr #0x10
- cmp r5, r1
- blo _020B2360
- ldmia sp!, {r4-r8,pc}
-_020B238C:
- ldr r0, [r7, #0x0]
- ldr r4, [r7, #0xc]
- ldrh r0, [r0, #0x0]
- mov r5, #0x0
- cmp r0, #0x0
- ldmlsia sp!, {r4-r8,pc}
- mov r8, #0x28
-_020B23A8:
- mul r0, r5, r8
- ldr r0, [r4, r0]
- mov r1, r6
- bl FUN_020B1EC4
- ldr r1, [r7, #0x0]
- add r0, r5, #0x1
- mov r0, r0, lsl #0x10
- ldrh r1, [r1, #0x0]
- mov r5, r0, lsr #0x10
- cmp r5, r1
- blo _020B23A8
- ldmia sp!, {r4-r8,pc}
-
- arm_func_start FUN_020B23D8
-FUN_020B23D8: ; 0x020B23D8
- stmdb sp!, {r4-r6,lr}
- mov r5, r0
- ldrh r0, [r5, #0x0]
- mov r4, #0x0
- mov r6, r4
- cmp r0, #0x0
- bls _020B2424
-_020B23F4:
- mov r0, r5
- mov r1, r6
- bl FUN_020AFF34
- ldrh r0, [r0, #0x0]
- ldrh r1, [r5, #0x0]
- cmp r0, r4
- movhi r4, r0
- add r0, r6, #0x1
- mov r0, r0, lsl #0x10
- mov r6, r0, lsr #0x10
- cmp r6, r1
- blo _020B23F4
-_020B2424:
- mov r0, r4
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020B242C
-FUN_020B242C: ; 0x020B242C
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r7, r0
- bl FUN_020B0438
- mov r1, #0x0
- mov r0, r7
- strh r1, [r7, #0x2c]
- bl FUN_020B06E0
- mov r4, r0
- ldrh r1, [r4, #0x0]
- ldr r0, [r7, #0x40]
- bl FUN_020AFF34
- ldr r1, [r7, #0x18]
- mov r6, r0
- ldr r1, [r1, #0x4]
- add r0, r7, #0x44
- and r5, r1, #0xff
- mov r1, #0x1
- bl FUN_020B1A68
- cmp r5, #0x0
- beq _020B24C8
- cmp r5, #0x2
- bne _020B249C
- ldrsh r1, [r4, #0x4]
- ldrsh r2, [r4, #0x6]
- add r0, r7, #0x44
- bl FUN_020B1AB4
- b _020B24C8
-_020B249C:
- ldr r1, [r4, #0x4]
- ldr r2, [r4, #0x8]
- add r0, r7, #0x44
- bl FUN_020B1A78
- ldrh r1, [r4, #0x2]
- add r0, r7, #0x44
- bl FUN_020B1A98
- ldrsh r1, [r4, #0xc]
- ldrsh r2, [r4, #0xe]
- add r0, r7, #0x44
- bl FUN_020B1AB4
-_020B24C8:
- ldrh r2, [r7, #0x2c]
- mov r1, r6
- add r0, r7, #0x30
- bl FUN_020B24E0
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020B24E0
-FUN_020B24E0: ; 0x020B24E0
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x14
- mov r10, r1
- str r0, [sp, #0x0]
- str r10, [r0, #0x0]
- ldr r0, [r0, #0x8]
- mov r9, r2
- cmp r0, #0x1
- bne _020B2654
- ldrh r1, [r10, #0x2]
- ldr r0, [sp, #0x0]
- mov r4, #0x0
- ldr r8, [r0, #0xc]
- cmp r1, #0x0
- bls _020B2544
- mov r3, r4
- mov r0, #0x58
-_020B2524:
- mla r1, r4, r0, r8
- str r3, [r1, #0x54]
- add r1, r4, #0x1
- mov r1, r1, lsl #0x10
- ldrh r2, [r10, #0x2]
- mov r4, r1, lsr #0x10
- cmp r4, r2
- blo _020B2524
-_020B2544:
- ldrh r0, [r10, #0x0]
- mov r5, #0x0
- cmp r0, #0x0
- addls sp, sp, #0x14
- ldmlsia sp!, {r4-r11,pc}
- str r5, [sp, #0x4]
- mov r11, #0x1
-_020B2560:
- ldr r0, [r10, #0x4]
- mov r1, #0x58
- add r7, r0, r5, lsl #0x3
- ldrh r0, [r7, #0x6]
- and r0, r0, #0xff00
- mov r0, r0, lsl #0x8
- mov r0, r0, lsr #0x10
- mla r6, r0, r1, r8
- ldr r0, [r6, #0x54]
- cmp r0, #0x0
- bne _020B2634
- ldr r0, [sp, #0x0]
- ldrh r1, [r7, #0x0]
- ldr r0, [r0, #0x4]
- bl FUN_020AFC04
- mov r4, r0
- mov r0, r6
- mov r1, r4
- bl FUN_020B1EE4
- str r11, [r6, #0x8]
- ldrh r0, [r7, #0x6]
- and r0, r0, #0xf
- cmp r0, #0x1
- bne _020B2630
- ldrh r1, [r4, #0x0]
- ldr r7, [sp, #0x4]
- mov r3, r7
- cmp r1, #0x0
- bls _020B25F0
- ldr r2, [r4, #0xc]
-_020B25D8:
- add r0, r2, r3, lsl #0x3
- ldrh r0, [r0, #0x4]
- add r3, r3, #0x1
- cmp r3, r1
- add r7, r7, r0
- blo _020B25D8
-_020B25F0:
- mov r0, r6
- bl FUN_020B0408
- cmp r0, #0x0
- beq _020B261C
- mov r0, r9
- mov r1, r7
- bl _u32_div_f
- mov r0, r6
- mov r1, r1, lsl #0xc
- bl FUN_020B1EC4
- b _020B2630
-_020B261C:
- cmp r9, r7
- movcc r7, r9
- mov r0, r6
- mov r1, r7, lsl #0xc
- bl FUN_020B1EC4
-_020B2630:
- str r11, [r6, #0x54]
-_020B2634:
- add r0, r5, #0x1
- mov r0, r0, lsl #0x10
- ldrh r1, [r10, #0x0]
- mov r5, r0, lsr #0x10
- cmp r5, r1
- blo _020B2560
- add sp, sp, #0x14
- ldmia sp!, {r4-r11,pc}
-_020B2654:
- ldrh r1, [r10, #0x0]
- ldr r0, [sp, #0x0]
- mov r4, #0x0
- cmp r1, #0x0
- ldr r11, [r0, #0xc]
- addls sp, sp, #0x14
- ldmlsia sp!, {r4-r11,pc}
- mov r0, #0x1
- str r4, [sp, #0xc]
- str r0, [sp, #0x8]
-_020B267C:
- mov r0, #0x28
- mul r2, r4, r0
- ldr r3, [r10, #0x4]
- mov r0, r4, lsl #0x3
- ldrh r1, [r3, r0]
- ldr r0, [sp, #0x0]
- ldr r6, [r11, r2]
- ldr r0, [r0, #0x4]
- add r7, r3, r4, lsl #0x3
- bl FUN_020AFC04
- mov r5, r0
- mov r0, r6
- mov r1, r5
- bl FUN_020B1EE4
- ldr r0, [sp, #0x8]
- str r0, [r6, #0x8]
- ldrh r0, [r7, #0x6]
- and r0, r0, #0xf
- cmp r0, #0x1
- bne _020B2740
- ldrh r1, [r5, #0x0]
- ldr r8, [sp, #0xc]
- mov r0, r8
- cmp r1, #0x0
- bls _020B2700
- ldr r3, [r5, #0xc]
-_020B26E4:
- add r1, r3, r0, lsl #0x3
- ldrh r2, [r1, #0x4]
- add r0, r0, #0x1
- ldrh r1, [r5, #0x0]
- add r8, r8, r2
- cmp r0, r1
- blo _020B26E4
-_020B2700:
- mov r0, r6
- bl FUN_020B0408
- cmp r0, #0x0
- beq _020B272C
- mov r0, r9
- mov r1, r8
- bl _u32_div_f
- mov r0, r6
- mov r1, r1, lsl #0xc
- bl FUN_020B1EC4
- b _020B2740
-_020B272C:
- cmp r9, r8
- movcc r8, r9
- mov r0, r6
- mov r1, r8, lsl #0xc
- bl FUN_020B1EC4
-_020B2740:
- mov r0, #0x28
- mla r3, r4, r0, r11
- ldr r0, [sp, #0x8]
- str r0, [r3, #0x8]
- ldrsh r1, [r7, #0x2]
- ldrsh r2, [r7, #0x4]
- add r0, r3, #0xc
- bl FUN_020B1AB4
- add r0, r4, #0x1
- mov r0, r0, lsl #0x10
- ldrh r1, [r10, #0x0]
- mov r4, r0, lsr #0x10
- cmp r4, r1
- blo _020B267C
- add sp, sp, #0x14
- ldmia sp!, {r4-r11,pc}
-
- arm_func_start thunk_FUN_020b5040
-thunk_FUN_020b5040: ; 0x020B2780
- ldr ip, _020B2788 ; =FUN_020B5040
- bx r12
- .balign 4
-_020B2788: .word FUN_020B5040
-
- arm_func_start FUN_020B278C
-FUN_020B278C:
- ldr r0, [r0, #0x78]
- bx lr
-
- arm_func_start FUN_020B2794
-FUN_020B2794: ; 0x020B2794
- stmdb sp!, {lr}
- sub sp, sp, #0x1c
- ldr r2, _020B2894 ; =UNK_021CDD70
- mov lr, #0x0
- ldr r12, [r2, #0x0]
- ldr r3, _020B2898 ; =UNK_021CDEF4
- mov r2, #0x18
- str r1, [sp, #0x0]
- str r1, [sp, #0xc]
- mla r1, r12, r2, r3
- rsb r3, r0, #0x0
- str r0, [sp, #0x4]
- add r0, sp, #0x0
- mov r2, r1
- str r3, [sp, #0x8]
- str lr, [sp, #0x10]
- str lr, [sp, #0x14]
- bl FUN_020B423C
- ldr r0, _020B2894 ; =UNK_021CDD70
- ldr r1, _020B289C ; =UNK_021CE1F4
- ldr r2, [r0, #0x0]
- mov r0, #0x18
- mla r1, r2, r0, r1
- add r0, sp, #0x0
- mov r2, r1
- bl FUN_020B423C
- ldr r0, _020B28A0 ; =UNK_021CDD68
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _020B2824
- ldr r1, _020B28A4 ; =UNK_02106570
- ldr r0, _020B28A8 ; =0x0000FFFE
- ldrh r1, [r1, #0x0]
- cmp r1, r0
- movne r0, #0x1
- bne _020B2828
-_020B2824:
- mov r0, #0x0
-_020B2828:
- cmp r0, #0x0
- ldreq r1, _020B2894 ; =UNK_021CDD70
- ldreq r0, _020B28A4 ; =UNK_02106570
- ldreq r1, [r1, #0x0]
- streqh r1, [r0, #0x0]
- ldr r0, _020B2894 ; =UNK_021CDD70
- ldr r1, _020B28AC ; =UNK_021CDDF4
- ldr r0, [r0, #0x0]
- mov r0, r0, lsl #0x10
- add r12, r1, r0, lsr #0xd
- ldrh r0, [r12, #0x4]
- cmp r0, #0x3
- addls pc, pc, r0, lsl #0x2
- b _020B288C
-_020B2860:
- b _020B2870
-_020B2864:
- b _020B288C
-_020B2868:
- b _020B2870
-_020B286C:
- b _020B2870
-_020B2870:
- ldr r0, _020B28B0 ; =UNK_021CDD64
- mov r1, #0x1
- ldrh r3, [r0, #0x0]
- add r2, r3, #0x1
- strh r2, [r0, #0x0]
- strh r3, [r12, #0x2]
- strh r1, [r12, #0x4]
-_020B288C:
- add sp, sp, #0x1c
- ldmia sp!, {pc}
- .balign 4
-_020B2894: .word UNK_021CDD70
-_020B2898: .word UNK_021CDEF4
-_020B289C: .word UNK_021CE1F4
-_020B28A0: .word UNK_021CDD68
-_020B28A4: .word UNK_02106570
-_020B28A8: .word 0x0000FFFE
-_020B28AC: .word UNK_021CDDF4
-_020B28B0: .word UNK_021CDD64
-
- arm_func_start FUN_020B28B4
-FUN_020B28B4: ; 0x020B28B4
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x1c
- ldr r2, _020B29E8 ; =UNK_021CDD70
- mov r12, #0x0
- ldr r3, [r2, #0x0]
- mov r4, r1
- ldr r2, _020B29EC ; =UNK_021CDEF4
- mov r1, #0x18
- mla r1, r3, r1, r2
- mov r5, r0
- add r0, sp, #0x0
- mov r2, r1
- str r5, [sp, #0x0]
- str r12, [sp, #0x4]
- str r12, [sp, #0x8]
- str r4, [sp, #0xc]
- str r12, [sp, #0x10]
- str r12, [sp, #0x14]
- bl FUN_020B423C
- mov r0, r5
- bl FX_Inv
- mov r1, #0x0
- str r0, [sp, #0x0]
- mov r0, r4
- str r1, [sp, #0x4]
- str r1, [sp, #0x8]
- bl FX_Inv
- mov r3, #0x0
- ldr r1, _020B29E8 ; =UNK_021CDD70
- str r0, [sp, #0xc]
- ldr r2, [r1, #0x0]
- ldr r1, _020B29F0 ; =UNK_021CE1F4
- mov r0, #0x18
- mla r1, r2, r0, r1
- add r0, sp, #0x0
- mov r2, r1
- str r3, [sp, #0x10]
- str r3, [sp, #0x14]
- bl FUN_020B423C
- ldr r0, _020B29F4 ; =UNK_021CDD68
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _020B2978
- ldr r1, _020B29F8 ; =UNK_02106570
- ldr r0, _020B29FC ; =0x0000FFFE
- ldrh r1, [r1, #0x0]
- cmp r1, r0
- movne r0, #0x1
- bne _020B297C
-_020B2978:
- mov r0, #0x0
-_020B297C:
- cmp r0, #0x0
- ldreq r1, _020B29E8 ; =UNK_021CDD70
- ldreq r0, _020B29F8 ; =UNK_02106570
- ldreq r1, [r1, #0x0]
- streqh r1, [r0, #0x0]
- ldr r0, _020B29E8 ; =UNK_021CDD70
- ldr r1, _020B2A00 ; =UNK_021CDDF4
- ldr r0, [r0, #0x0]
- mov r0, r0, lsl #0x10
- add r12, r1, r0, lsr #0xd
- ldrh r0, [r12, #0x4]
- cmp r0, #0x3
- addls pc, pc, r0, lsl #0x2
- b _020B29E0
-_020B29B4:
- b _020B29C4
-_020B29B8:
- b _020B29E0
-_020B29BC:
- b _020B29C4
-_020B29C0:
- b _020B29C4
-_020B29C4:
- ldr r0, _020B2A04 ; =UNK_021CDD64
- mov r1, #0x1
- ldrh r3, [r0, #0x0]
- add r2, r3, #0x1
- strh r2, [r0, #0x0]
- strh r3, [r12, #0x2]
- strh r1, [r12, #0x4]
-_020B29E0:
- add sp, sp, #0x1c
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020B29E8: .word UNK_021CDD70
-_020B29EC: .word UNK_021CDEF4
-_020B29F0: .word UNK_021CE1F4
-_020B29F4: .word UNK_021CDD68
-_020B29F8: .word UNK_02106570
-_020B29FC: .word 0x0000FFFE
-_020B2A00: .word UNK_021CDDF4
-_020B2A04: .word UNK_021CDD64
-
- arm_func_start FUN_020B2A08
-FUN_020B2A08: ; 0x020B2A08
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x1c
- ldr r3, _020B2AEC ; =UNK_021CDD68
- mov r4, r2
- ldr r2, [r3, #0x0]
- cmp r2, #0x0
- beq _020B2A6C
- ldr r2, _020B2AF0 ; =UNK_021CDD70
- mov r3, #0x18
- ldr r2, [r2, #0x0]
- ldr lr, _020B2AF4 ; =UNK_021CDF04
- mul r5, r2, r3
- ldr r3, [lr, r5]
- ldr ip, _020B2AF8 ; =UNK_021CDF08
- add r0, r3, r0
- str r0, [lr, r5]
- ldr r0, [r12, r5]
- ldr r3, _020B2AFC ; =UNK_021CDD74
- add r0, r0, r1
- str r0, [r12, r5]
- ldr r0, [r3, r2, lsl #0x2]
- add sp, sp, #0x1c
- add r0, r0, r4
- str r0, [r3, r2, lsl #0x2]
- ldmia sp!, {r4-r5,pc}
-_020B2A6C:
- ldr r2, _020B2AF0 ; =UNK_021CDD70
- mov lr, #0x1000
- ldr r12, [r2, #0x0]
- ldr r3, _020B2B00 ; =UNK_021CDEF4
- mov r2, #0x18
- str r1, [sp, #0x14]
- mla r1, r12, r2, r3
- mov r3, #0x0
- str r0, [sp, #0x10]
- add r0, sp, #0x0
- mov r2, r1
- str lr, [sp, #0x0]
- str r3, [sp, #0x4]
- str r3, [sp, #0x8]
- str lr, [sp, #0xc]
- bl FUN_020B423C
- ldr r0, _020B2AF0 ; =UNK_021CDD70
- ldr r1, _020B2B04 ; =UNK_021CE1F4
- ldr r2, [r0, #0x0]
- mov r0, #0x18
- mla r1, r2, r0, r1
- add r0, sp, #0x0
- mov r2, r1
- bl FUN_020B423C
- ldr r0, _020B2AF0 ; =UNK_021CDD70
- ldr r2, _020B2AFC ; =UNK_021CDD74
- ldr r1, [r0, #0x0]
- ldr r0, [r2, r1, lsl #0x2]
- add r0, r0, r4
- str r0, [r2, r1, lsl #0x2]
- add sp, sp, #0x1c
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020B2AEC: .word UNK_021CDD68
-_020B2AF0: .word UNK_021CDD70
-_020B2AF4: .word UNK_021CDF04
-_020B2AF8: .word UNK_021CDF08
-_020B2AFC: .word UNK_021CDD74
-_020B2B00: .word UNK_021CDEF4
-_020B2B04: .word UNK_021CE1F4
-
- arm_func_start FUN_020B2B08
-FUN_020B2B08: ; 0x020B2B08
- ldr r0, _020B2B4C ; =UNK_021CDD70
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- movle r0, #0x1
- movgt r0, #0x0
- cmp r0, #0x0
- bxne lr
- ldr r1, _020B2B4C ; =UNK_021CDD70
- ldr r0, _020B2B50 ; =UNK_02106570
- ldr r3, [r1, #0x0]
- ldrh r2, [r0, #0x0]
- sub r3, r3, #0x1
- str r3, [r1, #0x0]
- cmp r2, r3
- ldrgt r1, _020B2B54 ; =0x0000FFFE
- strgth r1, [r0, #0x0]
- bx lr
- .balign 4
-_020B2B4C: .word UNK_021CDD70
-_020B2B50: .word UNK_02106570
-_020B2B54: .word 0x0000FFFE
-
- arm_func_start FUN_020B2B58
-FUN_020B2B58: ; 0x020B2B58
- stmdb sp!, {r4-r10,lr}
- ldr r0, _020B2D74 ; =UNK_021CDD6C
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x7c]
- ands r0, r0, #0x1
- bne _020B2CA4
- ldr r0, _020B2D78 ; =UNK_021CDD70
- ldr r1, [r0, #0x0]
- mov r0, r1, lsl #0x10
- add r5, r1, #0x1
- cmp r5, #0x20
- mov r4, r0, lsr #0x10
- movlt r0, #0x1
- movge r0, #0x0
- cmp r0, #0x0
- beq _020B2C44
- ldr r0, _020B2D7C ; =UNK_021CDD68
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _020B2BE4
- ldr r1, _020B2D78 ; =UNK_021CDD70
- mov r0, #0x18
- ldr r3, [r1, #0x0]
- ldr r1, _020B2D80 ; =UNK_021CDD74
- mul r8, r3, r0
- ldr r6, _020B2D84 ; =UNK_021CDF04
- mul r7, r5, r0
- ldr r2, [r6, r8]
- ldr r0, [r1, r3, lsl #0x2]
- ldr r3, _020B2D88 ; =UNK_021CDF08
- str r2, [r6, r7]
- ldr r2, [r3, r8]
- str r0, [r1, r5, lsl #0x2]
- str r2, [r3, r7]
- b _020B2C3C
-_020B2BE4:
- ldr r1, _020B2D78 ; =UNK_021CDD70
- mov r0, #0x18
- ldr r2, [r1, #0x0]
- ldr r7, _020B2D80 ; =UNK_021CDD74
- mul lr, r2, r0
- ldr r1, _020B2D8C ; =UNK_021CDEF4
- mul r12, r5, r0
- ldr r8, _020B2D90 ; =UNK_021CE1F4
- add r10, r1, lr
- ldr r6, [r7, r2, lsl #0x2]
- add r9, r1, r12
- ldmia r10!, {r0-r3}
- stmia r9!, {r0-r3}
- ldmia r10, {r0-r1}
- str r6, [r7, r5, lsl #0x2]
- add r7, r8, lr
- stmia r9, {r0-r1}
- add r6, r8, r12
- ldmia r7!, {r0-r3}
- stmia r6!, {r0-r3}
- ldmia r7, {r0-r1}
- stmia r6, {r0-r1}
-_020B2C3C:
- ldr r0, _020B2D78 ; =UNK_021CDD70
- str r5, [r0, #0x0]
-_020B2C44:
- ldr r0, _020B2D78 ; =UNK_021CDD70
- ldr r2, _020B2D94 ; =UNK_021CDDF4
- ldr r0, [r0, #0x0]
- mov r5, r4, lsl #0x3
- mov r0, r0, lsl #0x10
- mov r3, r0, lsr #0x10
- add r4, r2, r4, lsl #0x3
- mov r6, r3, lsl #0x3
- ldrh r1, [r2, r5]
- ldrh r0, [r4, #0x2]
- add r3, r2, r3, lsl #0x3
- strh r1, [r2, r6]
- strh r0, [r3, #0x2]
- ldrh r2, [r4, #0x4]
- ldrh r0, [r4, #0x6]
- ldr r1, _020B2D98 ; =UNK_021CDDF8
- strh r2, [r3, #0x4]
- strh r0, [r3, #0x6]
- ldrh r0, [r1, r5]
- cmp r0, #0x1
- moveq r0, #0x2
- streqh r0, [r1, r6]
- strneh r0, [r1, r6]
- ldmia sp!, {r4-r10,pc}
-_020B2CA4:
- ldr r0, _020B2D78 ; =UNK_021CDD70
- ldr r0, [r0, #0x0]
- add r4, r0, #0x1
- cmp r4, #0x20
- movlt r0, #0x1
- movge r0, #0x0
- cmp r0, #0x0
- ldmeqia sp!, {r4-r10,pc}
- ldr r0, _020B2D7C ; =UNK_021CDD68
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _020B2D10
- ldr r1, _020B2D78 ; =UNK_021CDD70
- mov r0, #0x18
- ldr r3, [r1, #0x0]
- ldr r1, _020B2D80 ; =UNK_021CDD74
- mul r7, r3, r0
- ldr r5, _020B2D84 ; =UNK_021CDF04
- mul r6, r4, r0
- ldr r2, [r5, r7]
- ldr r0, [r1, r3, lsl #0x2]
- ldr r3, _020B2D88 ; =UNK_021CDF08
- str r2, [r5, r6]
- ldr r2, [r3, r7]
- str r0, [r1, r4, lsl #0x2]
- str r2, [r3, r6]
- b _020B2D68
-_020B2D10:
- ldr r1, _020B2D78 ; =UNK_021CDD70
- mov r0, #0x18
- ldr r2, [r1, #0x0]
- ldr ip, _020B2D80 ; =UNK_021CDD74
- mul r9, r2, r0
- ldr r1, _020B2D8C ; =UNK_021CDEF4
- mul r8, r4, r0
- ldr lr, _020B2D90 ; =UNK_021CE1F4
- add r6, r1, r9
- ldr r5, [r12, r2, lsl #0x2]
- add r7, r1, r8
- ldmia r6!, {r0-r3}
- stmia r7!, {r0-r3}
- ldmia r6, {r0-r1}
- add r6, lr, r9
- stmia r7, {r0-r1}
- add lr, lr, r8
- ldmia r6!, {r0-r3}
- stmia lr!, {r0-r3}
- ldmia r6, {r0-r1}
- stmia lr, {r0-r1}
- str r5, [r12, r4, lsl #0x2]
-_020B2D68:
- ldr r0, _020B2D78 ; =UNK_021CDD70
- str r4, [r0, #0x0]
- ldmia sp!, {r4-r10,pc}
- .balign 4
-_020B2D74: .word UNK_021CDD6C
-_020B2D78: .word UNK_021CDD70
-_020B2D7C: .word UNK_021CDD68
-_020B2D80: .word UNK_021CDD74
-_020B2D84: .word UNK_021CDF04
-_020B2D88: .word UNK_021CDF08
-_020B2D8C: .word UNK_021CDEF4
-_020B2D90: .word UNK_021CE1F4
-_020B2D94: .word UNK_021CDDF4
-_020B2D98: .word UNK_021CDDF8
-
- arm_func_start FUN_020B2D9C
-FUN_020B2D9C: ; 0x020B2D9C
- stmdb sp!, {r4-r6,lr}
- mov r4, r0
- ldrh r0, [r4, #0x56]
- cmp r0, #0x0
- bne _020B2DBC
- add r0, r4, #0x30
- bl FUN_020B2E78
- ldmia sp!, {r4-r6,pc}
-_020B2DBC:
- bl FUN_020B2B58
- ldrh r0, [r4, #0x56]
- ands r0, r0, #0x8
- beq _020B2E0C
- ldr r0, _020B2E70 ; =UNK_021CDD6C
- ldrsh r6, [r4, #0x52]
- ldr r0, [r0, #0x0]
- ldrsh r5, [r4, #0x50]
- bl FUN_020B4F88
- cmp r0, #0x0
- ldr r0, _020B2E70 ; =UNK_021CDD6C
- rsbne r5, r5, #0x0
- ldr r0, [r0, #0x0]
- bl FUN_020B4F74
- cmp r0, #0x0
- rsbne r6, r6, #0x0
- mov r0, r5, lsl #0xc
- mov r1, r6, lsl #0xc
- mov r2, #0x0
- bl FUN_020B2A08
-_020B2E0C:
- ldrh r0, [r4, #0x56]
- ands r0, r0, #0x4
- beq _020B2E40
- ldrh r0, [r4, #0x54]
- ldr r2, _020B2E74 ; =UNK_020FFA38
- mov r0, r0, asr #0x4
- mov r1, r0, lsl #0x1
- add r0, r1, #0x1
- mov r3, r1, lsl #0x1
- mov r1, r0, lsl #0x1
- ldrsh r0, [r2, r3]
- ldrsh r1, [r2, r1]
- bl FUN_020B2794
-_020B2E40:
- ldrh r0, [r4, #0x56]
- ands r0, r0, #0x2
- beq _020B2E5C
- ldr r0, [r4, #0x48]
- ldr r1, [r4, #0x4c]
- mov r2, #0x1000
- bl FUN_020B28B4
-_020B2E5C:
- add r0, r4, #0x30
- bl FUN_020B2E78
- mov r0, #0x1
- bl FUN_020B2B08
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020B2E70: .word UNK_021CDD6C
-_020B2E74: .word UNK_020FFA38
-
- arm_func_start FUN_020B2E78
-FUN_020B2E78: ; 0x020B2E78
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0xc
- mov r5, r0
- ldr r0, [r5, #0x8]
- cmp r0, #0x1
- bne _020B309C
- ldr r0, [r5, #0x0]
- mov r2, #0x0
- ldrh r0, [r0, #0x2]
- cmp r0, #0x0
- bls _020B2ED0
- ldr r3, _020B3174 ; =UNK_021CE8F4
- mov r4, r2
-_020B2EAC:
- add r0, r3, r2, lsl #0x2
- str r4, [r0, #0x4]
- ldr r0, [r5, #0x0]
- add r2, r2, #0x1
- ldrh r1, [r0, #0x2]
- mov r0, r2, lsl #0x10
- mov r2, r0, lsr #0x10
- cmp r2, r1
- blo _020B2EAC
-_020B2ED0:
- ldr r0, _020B3178 ; =UNK_021CDD6C
- mov r6, #0x1
- ldr r1, [r0, #0x0]
- ldr r0, _020B3174 ; =UNK_021CE8F4
- str r6, [r0, #0x404]
- ldr r0, [r1, #0x80]
- cmp r0, #0x0
- beq _020B2FD8
- bl FUN_020B4948
- str r0, [sp, #0x0]
- mov r0, r6
- bl FUN_020B497C
- ldr r0, _020B3178 ; =UNK_021CDD6C
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x80]
- bl FUN_020B4958
- ldr r2, [r5, #0x0]
- mov r7, #0x0
- ldrh r0, [r2, #0x0]
- cmp r0, #0x0
- bls _020B2FC0
- mov r11, r7
-_020B2F28:
- ldr r0, [r2, #0x4]
- ldr r9, [r5, #0xc]
- add r10, r0, r7, lsl #0x3
- ldrh r0, [r10, #0x6]
- and r0, r0, #0xff00
- mov r0, r0, lsl #0x8
- mov r8, r0, lsr #0x10
- ldr r0, _020B3174 ; =UNK_021CE8F4
- strh r8, [r0, #0x0]
- bl FUN_020B2B58
- ldr r0, _020B3178 ; =UNK_021CDD6C
- ldrsh r4, [r10, #0x4]
- ldr r0, [r0, #0x0]
- ldrsh r10, [r10, #0x2]
- bl FUN_020B4F88
- cmp r0, #0x0
- ldr r0, _020B3178 ; =UNK_021CDD6C
- rsbne r10, r10, #0x0
- ldr r0, [r0, #0x0]
- bl FUN_020B4F74
- cmp r0, #0x0
- rsbne r4, r4, #0x0
- mov r2, r11
- mov r0, r10, lsl #0xc
- mov r1, r4, lsl #0xc
- bl FUN_020B2A08
- mov r0, #0x58
- mla r0, r8, r0, r9
- bl FUN_020B3554
- mov r0, r6
- bl FUN_020B2B08
- ldr r2, [r5, #0x0]
- add r0, r7, #0x1
- mov r0, r0, lsl #0x10
- ldrh r1, [r2, #0x0]
- mov r7, r0, lsr #0x10
- cmp r7, r1
- blo _020B2F28
-_020B2FC0:
- mov r0, #0x0
- bl FUN_020B497C
- ldr r0, [sp, #0x0]
- bl FUN_020B4958
- bl FUN_020B4968
- b _020B3088
-_020B2FD8:
- ldr r2, [r5, #0x0]
- mov r7, #0x0
- ldrh r0, [r2, #0x0]
- cmp r0, #0x0
- bls _020B3088
- str r7, [sp, #0x4]
- mov r11, #0x58
-_020B2FF4:
- ldr r0, [r2, #0x4]
- ldr r9, [r5, #0xc]
- add r10, r0, r7, lsl #0x3
- ldrh r0, [r10, #0x6]
- and r0, r0, #0xff00
- mov r0, r0, lsl #0x8
- mov r8, r0, lsr #0x10
- ldr r0, _020B3174 ; =UNK_021CE8F4
- strh r8, [r0, #0x0]
- bl FUN_020B2B58
- ldr r0, _020B3178 ; =UNK_021CDD6C
- ldrsh r4, [r10, #0x4]
- ldr r0, [r0, #0x0]
- ldrsh r10, [r10, #0x2]
- bl FUN_020B4F88
- cmp r0, #0x0
- ldr r0, _020B3178 ; =UNK_021CDD6C
- rsbne r10, r10, #0x0
- ldr r0, [r0, #0x0]
- bl FUN_020B4F74
- cmp r0, #0x0
- rsbne r4, r4, #0x0
- ldr r2, [sp, #0x4]
- mov r0, r10, lsl #0xc
- mov r1, r4, lsl #0xc
- bl FUN_020B2A08
- mla r0, r8, r11, r9
- bl FUN_020B3554
- mov r0, r6
- bl FUN_020B2B08
- ldr r2, [r5, #0x0]
- add r0, r7, #0x1
- mov r0, r0, lsl #0x10
- ldrh r1, [r2, #0x0]
- mov r7, r0, lsr #0x10
- cmp r7, r1
- blo _020B2FF4
-_020B3088:
- ldr r0, _020B3174 ; =UNK_021CE8F4
- mov r1, #0x0
- str r1, [r0, #0x404]
- add sp, sp, #0xc
- ldmia sp!, {r4-r11,pc}
-_020B309C:
- ldr r0, _020B3178 ; =UNK_021CDD6C
- ldr r7, [r5, #0xc]
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x80]
- cmp r0, #0x0
- beq _020B312C
- bl FUN_020B4948
- mov r6, r0
- mov r0, #0x1
- bl FUN_020B497C
- ldr r0, _020B3178 ; =UNK_021CDD6C
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x80]
- bl FUN_020B4958
- ldr r0, [r5, #0x0]
- mov r4, #0x0
- ldrh r0, [r0, #0x0]
- cmp r0, #0x0
- bls _020B3110
- mov r8, #0x28
-_020B30EC:
- mla r0, r4, r8, r7
- bl FUN_020B3474
- ldr r1, [r5, #0x0]
- add r0, r4, #0x1
- mov r0, r0, lsl #0x10
- ldrh r1, [r1, #0x0]
- mov r4, r0, lsr #0x10
- cmp r4, r1
- blo _020B30EC
-_020B3110:
- mov r0, #0x0
- bl FUN_020B497C
- mov r0, r6
- bl FUN_020B4958
- bl FUN_020B4968
- add sp, sp, #0xc
- ldmia sp!, {r4-r11,pc}
-_020B312C:
- ldr r0, [r5, #0x0]
- mov r4, #0x0
- ldrh r0, [r0, #0x0]
- cmp r0, #0x0
- addls sp, sp, #0xc
- ldmlsia sp!, {r4-r11,pc}
- mov r6, #0x28
-_020B3148:
- mla r0, r4, r6, r7
- bl FUN_020B3474
- ldr r1, [r5, #0x0]
- add r0, r4, #0x1
- mov r0, r0, lsl #0x10
- ldrh r1, [r1, #0x0]
- mov r4, r0, lsr #0x10
- cmp r4, r1
- blo _020B3148
- add sp, sp, #0xc
- ldmia sp!, {r4-r11,pc}
- .balign 4
-_020B3174: .word UNK_021CE8F4
-_020B3178: .word UNK_021CDD6C
-
- arm_func_start FUN_020B317C
-FUN_020B317C: ; 0x020B317C
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- ldr r1, _020B31EC ; =UNK_021CDD6C
- mov r5, r0
- ldr r1, [r1, #0x0]
- ldr r1, [r1, #0x80]
- cmp r1, #0x0
- beq _020B31E0
- bl FUN_020B4948
- mov r4, r0
- mov r0, #0x1
- bl FUN_020B497C
- ldr r0, _020B31EC ; =UNK_021CDD6C
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x80]
- bl FUN_020B4958
- mov r0, r5
- bl FUN_020B3554
- mov r0, #0x0
- bl FUN_020B497C
- mov r0, r4
- bl FUN_020B4958
- bl FUN_020B4968
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-_020B31E0:
- bl FUN_020B3554
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020B31EC: .word UNK_021CDD6C
-
- arm_func_start FUN_020B31F0
-FUN_020B31F0: ; 0x020B31F0
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r1, _020B3260 ; =0x04000448
- mov r2, #0x1
- ldr r0, _020B3264 ; =UNK_021CDD6C
- str r2, [r1, #0x0]
- ldr r2, [r0, #0x0]
- ldr r3, [r2, #0x7c]
- cmp r3, #0x0
- beq _020B324C
- ands r0, r3, #0x1
- ldrne r0, _020B3268 ; =UNK_021CDD68
- movne r1, #0x0
- strne r1, [r0, #0x0]
- ands r0, r3, #0x2
- beq _020B323C
- mov r0, #0x0
- str r0, [r2, #0x74]
- bl FUN_020B4DA0
-_020B323C:
- ldr r0, _020B3264 ; =UNK_021CDD6C
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- str r1, [r0, #0x7c]
-_020B324C:
- ldr r0, _020B3264 ; =UNK_021CDD6C
- mov r1, #0x0
- str r1, [r0, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020B3260: .word 0x04000448
-_020B3264: .word UNK_021CDD6C
-_020B3268: .word UNK_021CDD68
-
- arm_func_start FUN_020B326C
-FUN_020B326C: ; 0x020B326C
- stmdb sp!, {r4-r8,lr}
- ldr r5, _020B330C ; =UNK_021CDD60
- ldr r3, _020B3310 ; =UNK_021CDD6C
- ldrh r6, [r5, #0x0]
- ldr r2, _020B3314 ; =UNK_021CDD70
- mov r4, #0x0
- ldr r7, _020B3318 ; =0x0000FFFE
- ldr r1, _020B331C ; =UNK_02106570
- str r0, [r3, #0x0]
- str r4, [r2, #0x0]
- strh r7, [r1, #0x0]
- cmp r6, #0x0
- ble _020B32D0
- ldr r8, _020B3320 ; =UNK_021CE4F4
- mvn r7, #0x0
- mov r6, #0x10
-_020B32AC:
- mov r0, r7
- mov r2, r6
- add r1, r8, #0x10
- bl MIi_CpuClearFast
- ldrh r0, [r5, #0x0]
- add r4, r4, #0x1
- add r8, r8, #0x20
- cmp r4, r0
- blt _020B32AC
-_020B32D0:
- ldr r4, _020B330C ; =UNK_021CDD60
- mov r0, #0x0
- ldr r3, _020B3324 ; =UNK_021CDD64
- ldr r1, _020B3328 ; =UNK_021CDDF4
- mov r2, #0x100
- strh r0, [r4, #0x0]
- strh r0, [r3, #0x0]
- bl MIi_CpuClearFast
- ldr r1, _020B332C ; =0x04000444
- mov r2, #0x0
- ldr r0, _020B3330 ; =0x04000454
- str r2, [r1, #0x0]
- str r2, [r0, #0x0]
- bl FUN_020B4178
- ldmia sp!, {r4-r8,pc}
- .balign 4
-_020B330C: .word UNK_021CDD60
-_020B3310: .word UNK_021CDD6C
-_020B3314: .word UNK_021CDD70
-_020B3318: .word 0x0000FFFE
-_020B331C: .word UNK_02106570
-_020B3320: .word UNK_021CE4F4
-_020B3324: .word UNK_021CDD64
-_020B3328: .word UNK_021CDDF4
-_020B332C: .word 0x04000444
-_020B3330: .word 0x04000454
-
- arm_func_start FUN_020B3334
-FUN_020B3334: ; 0x020B3334
- stmdb sp!, {r4,lr}
- mov r4, r0
- mov r1, r4
- mov r0, #0x0
- mov r2, #0x48
- bl MIi_CpuClear16
- mov r0, #0x1
- str r0, [r4, #0x10]
- mov r0, #0x3
- ldr r1, _020B3380 ; =FUN_020B3EE0
- str r0, [r4, #0x14]
- ldr r0, _020B3384 ; =FUN_020B3E48
- str r1, [r4, #0x18]
- ldr r1, _020B3388 ; =FUN_020B3C40
- str r0, [r4, #0x1c]
- ldr r0, _020B338C ; =FUN_020B3B90
- str r1, [r4, #0x20]
- str r0, [r4, #0x24]
- ldmia sp!, {r4,pc}
- .balign 4
-_020B3380: .word FUN_020B3EE0
-_020B3384: .word FUN_020B3E48
-_020B3388: .word FUN_020B3C40
-_020B338C: .word FUN_020B3B90
-
- arm_func_start FUN_020B3390
-FUN_020B3390: ; 0x020B3390
- ldr r2, [r0, #0x70]
- str r2, [r1, #0x30]
- str r1, [r0, #0x70]
- bx lr
-
- arm_func_start FUN_020B33A0
-FUN_020B33A0: ; 0x020B33A0
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r4, r0
- bl FUN_020B504C
- mov r7, #0x0
- str r7, [r4, #0x70]
- str r7, [r4, #0x74]
- str r7, [r4, #0x78]
- str r7, [r4, #0x7c]
- str r7, [r4, #0x80]
- str r7, [r4, #0x84]
- strh r7, [r4, #0x88]
- strh r7, [r4, #0x8a]
- str r7, [r4, #0x8c]
- str r7, [r4, #0x90]
- ldr r1, _020B3454 ; =UNK_021CDD70
- strh r7, [r4, #0x94]
- ldr r2, _020B3458 ; =0x0000FFFE
- ldr r0, _020B345C ; =UNK_02106570
- ldr r6, _020B3460 ; =UNK_021CE4F4
- str r7, [r1, #0x0]
- strh r2, [r0, #0x0]
- mvn r5, #0x0
- mov r4, #0x10
-_020B3400:
- mov r0, r5
- mov r2, r4
- add r1, r6, #0x10
- bl MIi_CpuClearFast
- add r7, r7, #0x1
- cmp r7, #0x20
- add r6, r6, #0x20
- blt _020B3400
- ldr ip, _020B3464 ; =UNK_021CDD60
- mov r0, #0x0
- ldr r3, _020B3468 ; =UNK_021CDD64
- ldr r1, _020B346C ; =UNK_021CDDF4
- mov r2, #0x100
- strh r0, [r12, #0x0]
- strh r0, [r3, #0x0]
- bl MIi_CpuClearFast
- ldr r0, _020B3470 ; =UNK_021CDD68
- mov r1, #0x0
- str r1, [r0, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020B3454: .word UNK_021CDD70
-_020B3458: .word 0x0000FFFE
-_020B345C: .word UNK_02106570
-_020B3460: .word UNK_021CE4F4
-_020B3464: .word UNK_021CDD60
-_020B3468: .word UNK_021CDD64
-_020B346C: .word UNK_021CDDF4
-_020B3470: .word UNK_021CDD68
-
- arm_func_start FUN_020B3474
-FUN_020B3474: ; 0x020B3474
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r5, r0
- ldr r0, [r5, #0x8]
- cmp r0, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r7,pc}
- ldr r4, [r5, #0x0]
- bl FUN_020B2B58
- ldrh r0, [r5, #0x1e]
- ands r0, r0, #0x8
- beq _020B34E4
- ldr r0, _020B354C ; =UNK_021CDD6C
- ldrsh r7, [r5, #0x1a]
- ldr r0, [r0, #0x0]
- ldrsh r6, [r5, #0x18]
- bl FUN_020B4F88
- cmp r0, #0x0
- ldr r0, _020B354C ; =UNK_021CDD6C
- rsbne r6, r6, #0x0
- ldr r0, [r0, #0x0]
- bl FUN_020B4F74
- cmp r0, #0x0
- rsbne r7, r7, #0x0
- mov r0, r6, lsl #0xc
- mov r1, r7, lsl #0xc
- mov r2, #0x0
- bl FUN_020B2A08
-_020B34E4:
- ldrh r0, [r5, #0x1e]
- ands r0, r0, #0x4
- beq _020B3518
- ldrh r0, [r5, #0x1c]
- ldr r2, _020B3550 ; =UNK_020FFA38
- mov r0, r0, asr #0x4
- mov r1, r0, lsl #0x1
- add r0, r1, #0x1
- mov r3, r1, lsl #0x1
- mov r1, r0, lsl #0x1
- ldrsh r0, [r2, r3]
- ldrsh r1, [r2, r1]
- bl FUN_020B2794
-_020B3518:
- ldrh r0, [r5, #0x1e]
- ands r0, r0, #0x2
- beq _020B3534
- ldr r0, [r5, #0x10]
- ldr r1, [r5, #0x14]
- mov r2, #0x1000
- bl FUN_020B28B4
-_020B3534:
- mov r0, r4
- bl FUN_020B3554
- mov r0, #0x1
- bl FUN_020B2B08
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020B354C: .word UNK_021CDD6C
-_020B3550: .word UNK_020FFA38
-
- arm_func_start FUN_020B3554
-FUN_020B3554:
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r5, r0
- ldrh r0, [r5, #0x4a]
- ldr r4, [r5, #0x2c]
- cmp r0, #0x0
- bne _020B35C0
- ldr r2, [r5, #0x34]
- mvn r0, #0x0
- cmp r2, r0
- movne r0, #0x1
- moveq r0, #0x0
- cmp r0, #0x0
- beq _020B35B0
- ldr r1, _020B36B4 ; =UNK_02106574
- mov r0, r4
- str r2, [r1, #0x0]
- bl FUN_020B36C0
- ldr r0, _020B36B4 ; =UNK_02106574
- mvn r1, #0x0
- str r1, [r0, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-_020B35B0:
- mov r0, r4
- bl FUN_020B36C0
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-_020B35C0:
- bl FUN_020B2B58
- ldrh r0, [r5, #0x4a]
- ands r0, r0, #0x8
- beq _020B3610
- ldr r0, _020B36B8 ; =UNK_021CDD6C
- ldrsh r7, [r5, #0x46]
- ldr r0, [r0, #0x0]
- ldrsh r6, [r5, #0x44]
- bl FUN_020B4F88
- cmp r0, #0x0
- ldr r0, _020B36B8 ; =UNK_021CDD6C
- rsbne r6, r6, #0x0
- ldr r0, [r0, #0x0]
- bl FUN_020B4F74
- cmp r0, #0x0
- rsbne r7, r7, #0x0
- mov r0, r6, lsl #0xc
- mov r1, r7, lsl #0xc
- mov r2, #0x0
- bl FUN_020B2A08
-_020B3610:
- ldrh r0, [r5, #0x4a]
- ands r0, r0, #0x4
- beq _020B3644
- ldrh r0, [r5, #0x48]
- ldr r2, _020B36BC ; =UNK_020FFA38
- mov r0, r0, asr #0x4
- mov r1, r0, lsl #0x1
- add r0, r1, #0x1
- mov r3, r1, lsl #0x1
- mov r1, r0, lsl #0x1
- ldrsh r0, [r2, r3]
- ldrsh r1, [r2, r1]
- bl FUN_020B2794
-_020B3644:
- ldrh r0, [r5, #0x4a]
- ands r0, r0, #0x2
- beq _020B3660
- ldr r0, [r5, #0x3c]
- ldr r1, [r5, #0x40]
- mov r2, #0x1000
- bl FUN_020B28B4
-_020B3660:
- ldr r2, [r5, #0x34]
- mvn r0, #0x0
- cmp r2, r0
- movne r0, #0x1
- moveq r0, #0x0
- cmp r0, #0x0
- beq _020B369C
- ldr r1, _020B36B4 ; =UNK_02106574
- mov r0, r4
- str r2, [r1, #0x0]
- bl FUN_020B36C0
- ldr r0, _020B36B4 ; =UNK_02106574
- mvn r1, #0x0
- str r1, [r0, #0x0]
- b _020B36A4
-_020B369C:
- mov r0, r4
- bl FUN_020B36C0
-_020B36A4:
- mov r0, #0x1
- bl FUN_020B2B08
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020B36B4: .word UNK_02106574
-_020B36B8: .word UNK_021CDD6C
-_020B36BC: .word UNK_020FFA38
-
- arm_func_start FUN_020B36C0
-FUN_020B36C0: ; 0x020B36C0
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x4
- ldr r5, _020B3B54 ; =UNK_021CDD6C
- mov r10, r0
- ldr r0, [r5, #0x0]
- ldr r1, [r0, #0x7c]
- str r0, [sp, #0x0]
- ldr r9, [r0, #0x70]
- ands r0, r1, #0x2
- beq _020B38EC
- ldr r0, [r9, #0x14]
- cmp r0, #0x0
- beq _020B3840
- ldr r0, _020B3B58 ; =UNK_021CDD68
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _020B3720
- ldr r2, _020B3B5C ; =UNK_02106570
- ldr r0, _020B3B60 ; =0x0000FFFE
- ldrh r2, [r2, #0x0]
- cmp r2, r0
- movne r0, #0x1
- bne _020B3724
-_020B3720:
- mov r0, #0x0
-_020B3724:
- cmp r0, #0x0
- beq _020B37AC
- ldr r0, _020B3B64 ; =UNK_021CE8F4
- ldr r1, [r0, #0x404]
- cmp r1, #0x0
- beq _020B3788
- ldrh r1, [r0, #0x0]
- ldr r0, _020B3B68 ; =UNK_021CE8F8
- ldr r1, [r0, r1, lsl #0x2]
- cmp r1, #0x0
- bne _020B37AC
- bl FUN_020B4010
- ldr r0, _020B3B6C ; =UNK_021CDD70
- ldr r2, _020B3B70 ; =UNK_021CDDF4
- ldr r0, [r0, #0x0]
- ldr r1, _020B3B64 ; =UNK_021CE8F4
- mov r0, r0, lsl #0x10
- mov r0, r0, lsr #0xd
- ldrh r3, [r2, r0]
- ldr r4, _020B3B74 ; =UNK_021CE4F4
- ldrh r2, [r1, #0x0]
- ldr r0, _020B3B68 ; =UNK_021CE8F8
- add r1, r4, r3, lsl #0x5
- str r1, [r0, r2, lsl #0x2]
- b _020B37AC
-_020B3788:
- bl FUN_020B4010
- ldr r0, _020B3B6C ; =UNK_021CDD70
- ldr r1, _020B3B70 ; =UNK_021CDDF4
- ldr r0, [r0, #0x0]
- ldr r2, _020B3B74 ; =UNK_021CE4F4
- mov r0, r0, lsl #0x10
- mov r0, r0, lsr #0xd
- ldrh r0, [r1, r0]
- add r1, r2, r0, lsl #0x5
-_020B37AC:
- ldr r0, _020B3B58 ; =UNK_021CDD68
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- ldreq r0, _020B3B6C ; =UNK_021CDD70
- ldreq r3, _020B3B78 ; =UNK_021CDEF4
- ldreq r2, [r0, #0x0]
- moveq r0, #0x18
- mlaeq r0, r2, r0, r3
- beq _020B37FC
- ldr r2, _020B3B6C ; =UNK_021CDD70
- mov r0, #0x18
- ldr r2, [r2, #0x0]
- ldr r3, _020B3B7C ; =UNK_021CDF04
- mul r4, r2, r0
- ldr r2, _020B3B80 ; =UNK_021CDF08
- ldr r3, [r3, r4]
- ldr r0, _020B3B84 ; =UNK_02106578
- ldr r2, [r2, r4]
- str r3, [r0, #0x10]
- str r2, [r0, #0x14]
-_020B37FC:
- bl FUN_020B4FAC
- ldr r1, _020B3B88 ; =UNK_02106574
- mvn r0, #0x0
- ldr r1, [r1, #0x0]
- cmp r1, r0
- movne r0, #0x1
- moveq r0, #0x0
- cmp r0, #0x0
- beq _020B3830
- mov r0, r10
- bl FUN_020B4BF4
- add sp, sp, #0x4
- ldmia sp!, {r4-r11,pc}
-_020B3830:
- mov r0, r10
- bl FUN_020B4CDC
- add sp, sp, #0x4
- ldmia sp!, {r4-r11,pc}
-_020B3840:
- ldr r0, _020B3B6C ; =UNK_021CDD70
- ldr r1, _020B3B8C ; =UNK_021CDD74
- ldr r2, [r0, #0x0]
- ldr r0, [sp, #0x0]
- ldr r1, [r1, r2, lsl #0x2]
- bl FUN_020B4FA4
- ldr r0, _020B3B58 ; =UNK_021CDD68
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- ldreq r0, _020B3B6C ; =UNK_021CDD70
- ldreq r2, _020B3B78 ; =UNK_021CDEF4
- ldreq r1, [r0, #0x0]
- moveq r0, #0x18
- mlaeq r0, r1, r0, r2
- beq _020B38A8
- ldr r1, _020B3B6C ; =UNK_021CDD70
- mov r0, #0x18
- ldr r1, [r1, #0x0]
- ldr r2, _020B3B7C ; =UNK_021CDF04
- mul r3, r1, r0
- ldr r1, _020B3B80 ; =UNK_021CDF08
- ldr r2, [r2, r3]
- ldr r0, _020B3B84 ; =UNK_02106578
- ldr r1, [r1, r3]
- str r2, [r0, #0x10]
- str r1, [r0, #0x14]
-_020B38A8:
- bl FUN_020B4FC4
- ldr r1, _020B3B88 ; =UNK_02106574
- mvn r0, #0x0
- ldr r1, [r1, #0x0]
- cmp r1, r0
- movne r0, #0x1
- moveq r0, #0x0
- cmp r0, #0x0
- beq _020B38DC
- mov r0, r10
- bl FUN_020B4BF4
- add sp, sp, #0x4
- ldmia sp!, {r4-r11,pc}
-_020B38DC:
- mov r0, r10
- bl FUN_020B4CDC
- add sp, sp, #0x4
- ldmia sp!, {r4-r11,pc}
-_020B38EC:
- cmp r9, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r11,pc}
- ldr r4, _020B3B6C ; =UNK_021CDD70
- ldr fp, _020B3B78 ; =UNK_021CDEF4
- mov r7, #0x0
- mov r6, #0x1
-_020B3908:
- ldr r0, [r9, #0x10]
- cmp r0, #0x0
- beq _020B3B40
- ldr r0, [r9, #0x14]
- cmp r0, #0x0
- beq _020B3A8C
- ldr r8, [r5, #0x0]
- mov r1, r9
- str r9, [r8, #0x74]
- mov r0, r8
- bl FUN_020B4F9C
- ldr r1, [r9, #0x28]
- ldr r2, [r9, #0x2c]
- mov r0, r8
- bl FUN_020B5034
- mov r0, r8
- bl FUN_020B4E0C
- ldr r0, _020B3B58 ; =UNK_021CDD68
- mov r1, r7
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- bne _020B3978
- ldr r0, _020B3B5C ; =UNK_02106570
- ldrh r2, [r0, #0x0]
- ldr r0, _020B3B60 ; =0x0000FFFE
- cmp r2, r0
- movne r0, r6
- bne _020B397C
-_020B3978:
- mov r0, r7
-_020B397C:
- cmp r0, #0x0
- beq _020B3A04
- ldr r0, _020B3B64 ; =UNK_021CE8F4
- ldr r0, [r0, #0x404]
- cmp r0, #0x0
- beq _020B39E4
- ldr r0, _020B3B64 ; =UNK_021CE8F4
- ldrh r1, [r0, #0x0]
- add r0, r0, r1, lsl #0x2
- ldr r1, [r0, #0x4]
- cmp r1, #0x0
- bne _020B3A04
- bl FUN_020B4010
- ldr r0, _020B3B64 ; =UNK_021CE8F4
- ldr r2, [r4, #0x0]
- ldrh r1, [r0, #0x0]
- mov r0, r2, lsl #0x10
- mov r2, r0, lsr #0xd
- ldr r0, _020B3B70 ; =UNK_021CDDF4
- ldrh r3, [r0, r2]
- ldr r0, _020B3B64 ; =UNK_021CE8F4
- add r2, r0, r1, lsl #0x2
- ldr r0, _020B3B74 ; =UNK_021CE4F4
- add r1, r0, r3, lsl #0x5
- str r1, [r2, #0x4]
- b _020B3A04
-_020B39E4:
- bl FUN_020B4010
- ldr r0, [r4, #0x0]
- mov r0, r0, lsl #0x10
- mov r1, r0, lsr #0xd
- ldr r0, _020B3B70 ; =UNK_021CDDF4
- ldrh r1, [r0, r1]
- ldr r0, _020B3B74 ; =UNK_021CE4F4
- add r1, r0, r1, lsl #0x5
-_020B3A04:
- ldr r0, _020B3B58 ; =UNK_021CDD68
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- ldreq r2, [r4, #0x0]
- moveq r0, #0x18
- mlaeq r0, r2, r0, r11
- beq _020B3A44
- ldr r2, [r4, #0x0]
- mov r0, #0x18
- mla r8, r2, r0, r11
- ldr r0, _020B3B84 ; =UNK_02106578
- ldr r3, [r8, #0x10]
- mov r2, r0
- str r3, [r2, #0x10]
- ldr r3, [r8, #0x14]
- str r3, [r2, #0x14]
-_020B3A44:
- bl FUN_020B4FAC
- ldr r0, _020B3B88 ; =UNK_02106574
- ldr r1, [r0, #0x0]
- mvn r0, #0x0
- cmp r1, r0
- movne r0, r6
- moveq r0, r7
- cmp r0, #0x0
- beq _020B3A74
- mov r0, r10
- bl FUN_020B4BF4
- b _020B3A7C
-_020B3A74:
- mov r0, r10
- bl FUN_020B4CDC
-_020B3A7C:
- ldr r0, [r5, #0x0]
- str r7, [r0, #0x74]
- bl FUN_020B4DA0
- b _020B3B40
-_020B3A8C:
- ldr r8, [r5, #0x0]
- mov r1, r9
- mov r0, r8
- str r9, [r8, #0x74]
- bl FUN_020B4F9C
- mov r0, r8
- bl FUN_020B4E0C
- ldr r2, [r4, #0x0]
- ldr r1, _020B3B8C ; =UNK_021CDD74
- ldr r0, [sp, #0x0]
- ldr r1, [r1, r2, lsl #0x2]
- bl FUN_020B4FA4
- ldr r0, _020B3B58 ; =UNK_021CDD68
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- ldreq r1, [r4, #0x0]
- moveq r0, #0x18
- mlaeq r0, r1, r0, r11
- beq _020B3AFC
- ldr r1, [r4, #0x0]
- mov r0, #0x18
- mla r3, r1, r0, r11
- ldr r0, _020B3B84 ; =UNK_02106578
- ldr r2, [r3, #0x10]
- mov r1, r0
- str r2, [r1, #0x10]
- ldr r2, [r3, #0x14]
- str r2, [r1, #0x14]
-_020B3AFC:
- bl FUN_020B4FC4
- ldr r0, _020B3B88 ; =UNK_02106574
- ldr r1, [r0, #0x0]
- mvn r0, #0x0
- cmp r1, r0
- movne r0, r6
- moveq r0, r7
- cmp r0, #0x0
- beq _020B3B2C
- mov r0, r10
- bl FUN_020B4BF4
- b _020B3B34
-_020B3B2C:
- mov r0, r10
- bl FUN_020B4CDC
-_020B3B34:
- ldr r0, [r5, #0x0]
- str r7, [r0, #0x74]
- bl FUN_020B4DA0
-_020B3B40:
- ldr r9, [r9, #0x30]
- cmp r9, #0x0
- bne _020B3908
- add sp, sp, #0x4
- ldmia sp!, {r4-r11,pc}
- .balign 4
-_020B3B54: .word UNK_021CDD6C
-_020B3B58: .word UNK_021CDD68
-_020B3B5C: .word UNK_02106570
-_020B3B60: .word 0x0000FFFE
-_020B3B64: .word UNK_021CE8F4
-_020B3B68: .word UNK_021CE8F8
-_020B3B6C: .word UNK_021CDD70
-_020B3B70: .word UNK_021CDDF4
-_020B3B74: .word UNK_021CE4F4
-_020B3B78: .word UNK_021CDEF4
-_020B3B7C: .word UNK_021CDF04
-_020B3B80: .word UNK_021CDF08
-_020B3B84: .word UNK_02106578
-_020B3B88: .word UNK_02106574
-_020B3B8C: .word UNK_021CDD74
-
- arm_func_start FUN_020B3B90
-FUN_020B3B90: ; 0x020B3B90
- stmdb sp!, {r4-r6,lr}
- sub sp, sp, #0x8
- ldr r0, _020B3C24 ; =UNK_021CDD6C
- mov r12, r1
- ldr r0, [r0, #0x0]
- mov r3, r2
- ldr r1, [r0, #0x74]
- ldr r2, [r1, #0x44]
- cmp r2, #0x0
- addeq sp, sp, #0x8
- ldmeqia sp!, {r4-r6,pc}
- ldr r2, _020B3C28 ; =UNK_021CDD68
- ldr r2, [r2, #0x0]
- cmp r2, #0x0
- ldreq r2, _020B3C2C ; =UNK_021CDD70
- ldreq r4, _020B3C30 ; =UNK_021CDEF4
- ldreq lr, [r2, #0x0]
- moveq r2, #0x18
- mlaeq r6, lr, r2, r4
- beq _020B3C0C
- ldr lr, _020B3C2C ; =UNK_021CDD70
- mov r2, #0x18
- ldr lr, [lr, #0x0]
- ldr r4, _020B3C34 ; =UNK_021CDF04
- mul r5, lr, r2
- ldr r2, _020B3C38 ; =UNK_021CDF08
- ldr r4, [r4, r5]
- ldr r6, _020B3C3C ; =UNK_02106578
- ldr r2, [r2, r5]
- str r4, [r6, #0x10]
- str r2, [r6, #0x14]
-_020B3C0C:
- str r6, [sp, #0x0]
- ldr lr, [r1, #0x44]
- mov r2, r12
- blx lr
- add sp, sp, #0x8
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020B3C24: .word UNK_021CDD6C
-_020B3C28: .word UNK_021CDD68
-_020B3C2C: .word UNK_021CDD70
-_020B3C30: .word UNK_021CDEF4
-_020B3C34: .word UNK_021CDF04
-_020B3C38: .word UNK_021CDF08
-_020B3C3C: .word UNK_02106578
-
- arm_func_start FUN_020B3C40
-FUN_020B3C40: ; 0x020B3C40
- stmdb sp!, {r4-r6,lr}
- sub sp, sp, #0x8
- ldr r3, _020B3E2C ; =UNK_021CDD6C
- add r4, r0, #0x38
- ldr r0, [r3, #0x0]
- mov r6, r1
- mov r5, r2
- bl FUN_020B278C
- cmp r0, #0x0
- beq _020B3C90
- ldrh r1, [r4, #0x4]
- and r1, r1, #0xf000
- mov r1, r1, lsl #0x4
- mov r1, r1, lsr #0x10
- bl FUN_020B10B0
- ldr r1, [r4, #0x4]
- and r0, r0, #0xf
- bic r1, r1, #0xf000
- orr r0, r1, r0, lsl #0xc
- str r0, [r4, #0x4]
-_020B3C90:
- ldr r0, _020B3E2C ; =UNK_021CDD6C
- ldr r1, [r0, #0x0]
- ldr r0, [r1, #0x84]
- cmp r0, #0x0
- beq _020B3DA4
- ldr r0, [r1, #0x84]
- ands r0, r0, #0x1
- beq _020B3CC8
- ldrh r0, [r1, #0x88]
- ldr r1, [r4, #0x4]
- bic r1, r1, #0xc00
- and r0, r0, #0x3
- orr r0, r1, r0, lsl #0xa
- str r0, [r4, #0x4]
-_020B3CC8:
- ldr r0, _020B3E2C ; =UNK_021CDD6C
- ldr r1, [r0, #0x0]
- ldr r0, [r1, #0x84]
- ands r0, r0, #0x2
- beq _020B3CF4
- ldrh r0, [r1, #0x8a]
- ldr r1, [r4, #0x4]
- bic r1, r1, #0xf000
- and r0, r0, #0xf
- orr r0, r1, r0, lsl #0xc
- str r0, [r4, #0x4]
-_020B3CF4:
- ldr r0, _020B3E2C ; =UNK_021CDD6C
- ldr r1, [r0, #0x0]
- ldr r0, [r1, #0x84]
- ands r0, r0, #0x10
- beq _020B3D2C
- ldr r2, [r4, #0x4]
- ldrh r0, [r1, #0x94]
- mov r1, r2, lsl #0x10
- bic r2, r2, #0xf000
- add r0, r0, r1, lsr #0x1c
- and r0, r0, #0xf
- and r0, r0, #0xf
- orr r0, r2, r0, lsl #0xc
- str r0, [r4, #0x4]
-_020B3D2C:
- ldr r0, _020B3E2C ; =UNK_021CDD6C
- ldr r1, [r0, #0x0]
- ldr r0, [r1, #0x84]
- ands r0, r0, #0x4
- beq _020B3D60
- ldr r0, [r1, #0x90]
- cmp r0, #0x0
- ldrne r0, [r4, #0x0]
- orrne r0, r0, #0x1000
- strne r0, [r4, #0x0]
- ldreq r0, [r4, #0x0]
- biceq r0, r0, #0x1000
- streq r0, [r4, #0x0]
-_020B3D60:
- ldr r0, _020B3E2C ; =UNK_021CDD6C
- ldr r1, [r0, #0x0]
- ldr r0, [r1, #0x84]
- ands r0, r0, #0x8
- beq _020B3DA4
- ldr r0, [r4, #0x0]
- ldrh r2, [r4, #0x4]
- ldr r1, [r1, #0x8c]
- bic r0, r0, #0xc00
- orr r0, r0, r1, lsl #0xa
- str r0, [r4, #0x0]
- ldrh r0, [r4, #0x4]
- and r1, r2, #0xf000
- mov r1, r1, asr #0xc
- bic r0, r0, #0xf000
- orr r0, r0, r1, lsl #0xc
- strh r0, [r4, #0x4]
-_020B3DA4:
- ldr r0, _020B3E2C ; =UNK_021CDD6C
- ldr r0, [r0, #0x0]
- ldr r1, [r0, #0x74]
- ldr r2, [r1, #0x40]
- cmp r2, #0x0
- addeq sp, sp, #0x8
- ldmeqia sp!, {r4-r6,pc}
- ldr r2, _020B3E30 ; =UNK_021CDD68
- ldr r2, [r2, #0x0]
- cmp r2, #0x0
- ldreq r2, _020B3E34 ; =UNK_021CDD70
- ldreq r4, _020B3E38 ; =UNK_021CDEF4
- ldreq r3, [r2, #0x0]
- moveq r2, #0x18
- mlaeq r4, r3, r2, r4
- beq _020B3E10
- ldr r3, _020B3E34 ; =UNK_021CDD70
- mov r2, #0x18
- ldr r4, [r3, #0x0]
- ldr r3, _020B3E3C ; =UNK_021CDF04
- mul r12, r4, r2
- ldr r2, _020B3E40 ; =UNK_021CDF08
- ldr r3, [r3, r12]
- ldr r4, _020B3E44 ; =UNK_02106578
- ldr r2, [r2, r12]
- str r3, [r4, #0x10]
- str r2, [r4, #0x14]
-_020B3E10:
- str r4, [sp, #0x0]
- ldr r4, [r1, #0x40]
- mov r2, r6
- mov r3, r5
- blx r4
- add sp, sp, #0x8
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020B3E2C: .word UNK_021CDD6C
-_020B3E30: .word UNK_021CDD68
-_020B3E34: .word UNK_021CDD70
-_020B3E38: .word UNK_021CDEF4
-_020B3E3C: .word UNK_021CDF04
-_020B3E40: .word UNK_021CDF08
-_020B3E44: .word UNK_02106578
-
- arm_func_start FUN_020B3E48
-FUN_020B3E48: ; 0x020B3E48
- stmdb sp!, {r4,lr}
- ldr r0, _020B3EC4 ; =UNK_021CDD6C
- mov r2, r1
- ldr r0, [r0, #0x0]
- ldr r1, [r0, #0x74]
- ldr r3, [r1, #0x3c]
- cmp r3, #0x0
- ldmeqia sp!, {r4,pc}
- ldr r3, _020B3EC8 ; =UNK_021CDD68
- ldr r3, [r3, #0x0]
- cmp r3, #0x0
- ldreq r3, _020B3ECC ; =UNK_021CDD70
- ldreq lr, _020B3ED0 ; =UNK_021CDEF4
- ldreq r12, [r3, #0x0]
- moveq r3, #0x18
- mlaeq r3, r12, r3, lr
- beq _020B3EB8
- ldr ip, _020B3ECC ; =UNK_021CDD70
- mov r3, #0x18
- ldr r12, [r12, #0x0]
- ldr lr, _020B3ED4 ; =UNK_021CDF04
- mul r4, r12, r3
- ldr ip, _020B3ED8 ; =UNK_021CDF08
- ldr lr, [lr, r4]
- ldr r3, _020B3EDC ; =UNK_02106578
- ldr r12, [r12, r4]
- str lr, [r3, #0x10]
- str r12, [r3, #0x14]
-_020B3EB8:
- ldr r12, [r1, #0x3c]
- blx r12
- ldmia sp!, {r4,pc}
- .balign 4
-_020B3EC4: .word UNK_021CDD6C
-_020B3EC8: .word UNK_021CDD68
-_020B3ECC: .word UNK_021CDD70
-_020B3ED0: .word UNK_021CDEF4
-_020B3ED4: .word UNK_021CDF04
-_020B3ED8: .word UNK_021CDF08
-_020B3EDC: .word UNK_02106578
-
- arm_func_start FUN_020B3EE0
-FUN_020B3EE0: ; 0x020B3EE0
- stmdb sp!, {r4-r6,lr}
- ldr r2, _020B3FF4 ; =UNK_021CDD6C
- mov r6, r0
- ldr r0, [r2, #0x0]
- mov r5, r1
- ldr r4, [r0, #0x74]
- ldr r0, [r4, #0x34]
- cmp r0, #0x0
- beq _020B3F7C
- ldr r0, _020B3FF8 ; =UNK_021CDD68
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- ldreq r0, _020B3FFC ; =UNK_021CDD70
- ldreq r1, _020B4000 ; =UNK_021CDEF4
- ldreq r2, [r0, #0x0]
- moveq r0, #0x18
- mlaeq r1, r2, r0, r1
- beq _020B3F54
- ldr r1, _020B3FFC ; =UNK_021CDD70
- mov r0, #0x18
- ldr r2, [r1, #0x0]
- ldr r1, _020B4004 ; =UNK_021CDF04
- mul r3, r2, r0
- ldr r0, _020B4008 ; =UNK_021CDF08
- ldr r2, [r1, r3]
- ldr r1, _020B400C ; =UNK_02106578
- ldr r0, [r0, r3]
- str r2, [r1, #0x10]
- str r0, [r1, #0x14]
-_020B3F54:
- ldr r3, [r4, #0x34]
- mov r0, r5
- mov r2, r4
- blx r3
- cmp r0, #0x0
- moveq r0, #0x0
- streq r0, [r6, #0x30]
- ldmeqia sp!, {r4-r6,pc}
- mov r0, #0x1
- str r0, [r6, #0x30]
-_020B3F7C:
- ldr r0, [r4, #0x38]
- cmp r0, #0x0
- ldmeqia sp!, {r4-r6,pc}
- ldr r0, _020B3FF8 ; =UNK_021CDD68
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- ldreq r0, _020B3FFC ; =UNK_021CDD70
- ldreq r2, _020B4000 ; =UNK_021CDEF4
- ldreq r1, [r0, #0x0]
- moveq r0, #0x18
- mlaeq r3, r1, r0, r2
- beq _020B3FD8
- ldr r1, _020B3FFC ; =UNK_021CDD70
- mov r0, #0x18
- ldr r2, [r1, #0x0]
- ldr r1, _020B4004 ; =UNK_021CDF04
- mul r6, r2, r0
- ldr r0, _020B4008 ; =UNK_021CDF08
- ldr r1, [r1, r6]
- ldr r3, _020B400C ; =UNK_02106578
- ldr r0, [r0, r6]
- str r1, [r3, #0x10]
- str r0, [r3, #0x14]
-_020B3FD8:
- ldr r0, _020B3FF4 ; =UNK_021CDD6C
- ldr r6, [r4, #0x38]
- ldr r0, [r0, #0x0]
- mov r1, r4
- mov r2, r5
- blx r6
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020B3FF4: .word UNK_021CDD6C
-_020B3FF8: .word UNK_021CDD68
-_020B3FFC: .word UNK_021CDD70
-_020B4000: .word UNK_021CDEF4
-_020B4004: .word UNK_021CDF04
-_020B4008: .word UNK_021CDF08
-_020B400C: .word UNK_02106578
-
- arm_func_start FUN_020B4010
-FUN_020B4010:
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- ldr r0, _020B4154 ; =UNK_021CDD70
- ldr r1, _020B4158 ; =UNK_021CDDF4
- ldr r0, [r0, #0x0]
- mov r2, #0x1
- mov r0, r0, lsl #0x10
- add r3, r1, r0, lsr #0xd
- ldrh r0, [r3, #0x4]
- cmp r0, #0x1
- beq _020B4044
- cmp r0, #0x2
- movne r2, #0x0
-_020B4044:
- cmp r2, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r5,pc}
- ldr r0, _020B415C ; =UNK_021CDD60
- mov r2, #0x10
- ldrh r4, [r0, #0x0]
- cmp r4, #0x1f
- addcc r1, r4, #0x1
- strcch r1, [r0, #0x0]
- ldr r0, _020B4160 ; =UNK_021CE4F4
- ldrh r5, [r3, #0x2]
- add r0, r0, r4, lsl #0x5
- add r1, r0, #0x10
- mvn r0, #0x0
- strh r4, [r3, #0x0]
- bl MIi_CpuClearFast
- ldr r0, _020B4154 ; =UNK_021CDD70
- ldr r1, _020B4164 ; =UNK_021CDD68
- ldr r0, [r0, #0x0]
- ldr r2, [r1, #0x0]
- mov r1, r0, lsl #0x10
- cmp r2, #0x0
- ldr r3, _020B4158 ; =UNK_021CDDF4
- mov r1, r1, lsr #0xd
- ldrh r1, [r3, r1]
- ldr r3, _020B4160 ; =UNK_021CE4F4
- moveq r2, #0x18
- add r1, r3, r1, lsl #0x5
- ldreq r3, _020B4168 ; =UNK_021CE1F4
- mlaeq r12, r0, r2, r3
- beq _020B40E4
- mov r2, #0x18
- mul r3, r0, r2
- ldr r2, _020B416C ; =UNK_021CDF04
- ldr r0, _020B4170 ; =UNK_021CDF08
- ldr r2, [r2, r3]
- ldr ip, _020B4174 ; =UNK_02106578
- ldr r0, [r0, r3]
- str r2, [r12, #0x10]
- str r0, [r12, #0x14]
-_020B40E4:
- ldr r2, [r12, #0x0]
- ldr r0, _020B4154 ; =UNK_021CDD70
- str r2, [r1, #0x0]
- ldr r2, [r12, #0x4]
- str r2, [r1, #0x4]
- ldr r2, [r12, #0x8]
- str r2, [r1, #0x8]
- ldr r2, [r12, #0xc]
- str r2, [r1, #0xc]
- ldr r0, [r0, #0x0]
- mov r0, r0, lsl #0x10
- movs lr, r0, lsr #0x10
- addmi sp, sp, #0x4
- ldmmiia sp!, {r4-r5,pc}
- ldr r3, _020B4158 ; =UNK_021CDDF4
- mov r0, #0x3
-_020B4124:
- add r2, r3, lr, lsl #0x3
- ldrh r1, [r2, #0x2]
- mov r12, lr, lsl #0x3
- cmp r5, r1
- addne sp, sp, #0x4
- ldmneia sp!, {r4-r5,pc}
- strh r0, [r2, #0x4]
- strh r4, [r3, r12]
- subs lr, lr, #0x1
- bpl _020B4124
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020B4154: .word UNK_021CDD70
-_020B4158: .word UNK_021CDDF4
-_020B415C: .word UNK_021CDD60
-_020B4160: .word UNK_021CE4F4
-_020B4164: .word UNK_021CDD68
-_020B4168: .word UNK_021CE1F4
-_020B416C: .word UNK_021CDF04
-_020B4170: .word UNK_021CDF08
-_020B4174: .word UNK_02106578
-
- arm_func_start FUN_020B4178
-FUN_020B4178: ; 0x020B4178
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- ldr r0, _020B4220 ; =UNK_021CDD68
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _020B41B8
- ldr r1, _020B4224 ; =UNK_021CDD70
- mov r0, #0x18
- ldr r12, [r1, #0x0]
- ldr r1, _020B4228 ; =UNK_021CDF04
- mul r3, r12, r0
- mov r2, #0x0
- ldr r0, _020B422C ; =UNK_021CDF08
- str r2, [r1, r3]
- str r2, [r0, r3]
- b _020B420C
-_020B41B8:
- ldr r0, _020B4224 ; =UNK_021CDD70
- mov lr, #0x18
- ldr r1, [r0, #0x0]
- ldr r4, _020B4230 ; =UNK_021CDEF4
- mul r3, r1, lr
- mov r2, #0x1000
- str r2, [r4, r3]
- add r5, r4, r3
- mov r1, #0x0
- str r1, [r5, #0x4]
- str r1, [r5, #0x8]
- str r2, [r5, #0xc]
- str r1, [r5, #0x10]
- str r1, [r5, #0x14]
- ldr r12, [r0, #0x0]
- ldr r4, _020B4234 ; =UNK_021CE1F4
- ldmia r5!, {r0-r3}
- mla lr, r12, lr, r4
- stmia lr!, {r0-r3}
- ldmia r5, {r0-r1}
- stmia lr, {r0-r1}
-_020B420C:
- ldr r0, _020B4238 ; =UNK_021CDD74
- mov r1, #0x0
- str r1, [r0, r12, lsl #0x2]
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020B4220: .word UNK_021CDD68
-_020B4224: .word UNK_021CDD70
-_020B4228: .word UNK_021CDF04
-_020B422C: .word UNK_021CDF08
-_020B4230: .word UNK_021CDEF4
-_020B4234: .word UNK_021CE1F4
-_020B4238: .word UNK_021CDD74
-
- arm_func_start FUN_020B423C
-FUN_020B423C: ; 0x020B423C
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x1c
- ldr r4, [r0, #0x4]
- ldr r3, [r1, #0x8]
- mov r12, r2
- smull r6, r5, r4, r3
- ldr r4, [r0, #0x0]
- ldr r3, [r1, #0x0]
- cmp r12, r1
- smlal r6, r5, r4, r3
- mov r3, r6, lsr #0xc
- addeq r2, sp, #0x0
- orr r3, r3, r5, lsl #0x14
- str r3, [r2, #0x0]
- ldr r4, [r0, #0x4]
- ldr r3, [r1, #0xc]
- ldr r5, [r0, #0x0]
- smull r7, r6, r4, r3
- ldr r3, [r1, #0x4]
- add lr, sp, #0x0
- smlal r7, r6, r5, r3
- mov r3, r7, lsr #0xc
- orr r3, r3, r6, lsl #0x14
- str r3, [r2, #0x4]
- ldr r4, [r0, #0xc]
- ldr r3, [r1, #0x8]
- ldr r5, [r0, #0x8]
- smull r7, r6, r4, r3
- ldr r3, [r1, #0x0]
- cmp r2, lr
- smlal r7, r6, r5, r3
- mov r3, r7, lsr #0xc
- orr r3, r3, r6, lsl #0x14
- str r3, [r2, #0x8]
- ldr r4, [r0, #0xc]
- ldr r3, [r1, #0xc]
- ldr r5, [r0, #0x8]
- smull r7, r6, r4, r3
- ldr r3, [r1, #0x4]
- smlal r7, r6, r5, r3
- mov r3, r7, lsr #0xc
- orr r3, r3, r6, lsl #0x14
- str r3, [r2, #0xc]
- ldr r4, [r0, #0x14]
- ldr r3, [r1, #0x8]
- ldr r5, [r0, #0x10]
- smull r7, r6, r4, r3
- ldr r3, [r1, #0x0]
- ldr r4, [r1, #0x10]
- smlal r7, r6, r5, r3
- mov r3, r7, lsr #0xc
- orr r3, r3, r6, lsl #0x14
- add r3, r4, r3
- str r3, [r2, #0x10]
- ldr r4, [r0, #0x14]
- ldr r3, [r1, #0xc]
- ldr r5, [r0, #0x10]
- ldr r0, [r1, #0x4]
- smull r6, r3, r4, r3
- smlal r6, r3, r5, r0
- mov r0, r6, lsr #0xc
- ldr r1, [r1, #0x14]
- orr r0, r0, r3, lsl #0x14
- add r0, r1, r0
- str r0, [r2, #0x14]
- ldmeqia lr!, {r0-r3}
- stmeqia r12!, {r0-r3}
- ldmeqia lr, {r0-r1}
- stmeqia r12, {r0-r1}
- add sp, sp, #0x1c
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020B4358
-FUN_020B4358: ; 0x020B4358
- stmdb sp!, {r4,lr}
- ldr r2, _020B43A0 ; =UNK_021CED04
- mov r1, #0x30
- ldr r2, [r2, #0x0]
- mla r4, r0, r1, r2
- mov r0, r4
- bl FUN_020B10CC
- mov r0, #0x0
- str r0, [r4, #0xc]
- str r0, [r4, #0x10]
- str r0, [r4, #0x14]
- str r0, [r4, #0x18]
- str r0, [r4, #0x1c]
- str r0, [r4, #0x20]
- str r0, [r4, #0x24]
- str r0, [r4, #0x28]
- str r0, [r4, #0x2c]
- ldmia sp!, {r4,pc}
- .balign 4
-_020B43A0: .word UNK_021CED04
-
- arm_func_start FUN_020B43A4
-FUN_020B43A4: ; 0x020B43A4
- ldr r1, _020B43F8 ; =UNK_021CED00
- mov r0, #0x0
- ldr r3, [r1, #0x0]
- cmp r3, #0x0
- bls _020B43F0
- ldr r1, _020B43FC ; =UNK_021CED04
- ldr r2, [r1, #0x0]
- mov r12, r2
-_020B43C4:
- ldr r1, [r12, #0x1c]
- cmp r1, #0x1
- movne r1, #0x30
- mlane r1, r0, r1, r2
- movne r2, #0x1
- strne r2, [r1, #0x1c]
- bxne lr
- add r0, r0, #0x1
- cmp r0, r3
- add r12, r12, #0x30
- blo _020B43C4
-_020B43F0:
- mvn r0, #0x0
- bx lr
- .balign 4
-_020B43F8: .word UNK_021CED00
-_020B43FC: .word UNK_021CED04
-
- arm_func_start FUN_020B4400
-FUN_020B4400: ; 0x020B4400
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r1
- mov r4, r2
- bl FUN_020B469C
- mvn r1, #0x0
- str r1, [r0, #0x24]
- str r5, [r0, #0x28]
- str r4, [r0, #0x2c]
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020B442C
-FUN_020B442C: ; 0x020B442C
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x14
- mov r0, #0x0
- str r0, [sp, #0x0]
- ldr r0, _020B4558 ; =UNK_021CED00
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- addls sp, sp, #0x14
- ldmlsia sp!, {r4-r11,pc}
- ldr r0, [sp, #0x0]
- mov r5, #0x1
- str r0, [sp, #0x4]
- mov r11, r0
- str r0, [sp, #0x8]
- str r0, [sp, #0xc]
-_020B4468:
- ldr r0, _020B455C ; =UNK_021CED04
- ldr r1, [r0, #0x0]
- ldr r0, [sp, #0x4]
- add r8, r1, r0
- ldr r0, [r8, #0x1c]
- cmp r0, #0x0
- beq _020B4528
- ldr r9, [sp, #0x8]
- mov r0, r9
- cmp r0, #0x3
- bge _020B4520
- add r4, r8, #0x24
-_020B4498:
- mov r6, r5, lsl r9
- mov r1, r11
- ldr r0, [r8, #0x24]
- ands r0, r0, r6
- beq _020B44B8
- ldr r0, [r8, #0x20]
- ands r0, r0, r6
- movne r1, r5
-_020B44B8:
- cmp r1, #0x0
- beq _020B4514
- ldr r0, _020B4560 ; =UNK_020FF8C4
- cmp r9, #0x0
- ldr r7, [r0, r9, lsl #0x2]
- ldreq r10, [r8, #0x14]
- mov r0, r8
- mov r1, r9
- ldrne r10, [r8, #0x10]
- bl FUN_020B10BC
- mov r1, r0
- mov r0, r7
- ldr r7, _020B4564 ; =UNK_021CECFC
- ldr r2, [r8, #0x28]
- ldr r3, [r8, #0x2c]
- ldr r7, [r7, #0x0]
- add r2, r10, r2
- blx r7
- cmp r0, #0x0
- ldrne r1, [r4, #0x0]
- mvnne r0, r6
- andne r0, r1, r0
- strne r0, [r4, #0x0]
-_020B4514:
- add r9, r9, #0x1
- cmp r9, #0x3
- blt _020B4498
-_020B4520:
- ldr r0, [sp, #0xc]
- str r0, [r8, #0x20]
-_020B4528:
- ldr r0, _020B4558 ; =UNK_021CED00
- ldr r1, [r0, #0x0]
- ldr r0, [sp, #0x0]
- add r0, r0, #0x1
- str r0, [sp, #0x0]
- cmp r0, r1
- ldr r0, [sp, #0x4]
- add r0, r0, #0x30
- str r0, [sp, #0x4]
- blo _020B4468
- add sp, sp, #0x14
- ldmia sp!, {r4-r11,pc}
- .balign 4
-_020B4558: .word UNK_021CED00
-_020B455C: .word UNK_021CED04
-_020B4560: .word UNK_020FF8C4
-_020B4564: .word UNK_021CECFC
-
- arm_func_start FUN_020B4568
-FUN_020B4568: ; 0x020B4568
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- ldr ip, _020B45E4 ; =UNK_021CECFC
- movs r6, r1
- ldr r1, _020B45E8 ; =UNK_021CED00
- ldr r3, _020B45EC ; =UNK_021CED04
- mov r7, r0
- str r2, [r12, #0x0]
- mov r5, #0x0
- addeq sp, sp, #0x4
- str r7, [r3, #0x0]
- str r6, [r1, #0x0]
- ldmeqia sp!, {r4-r7,pc}
- mov r4, r5
-_020B45A0:
- mov r0, r7
- bl FUN_020B10CC
- str r4, [r7, #0xc]
- str r4, [r7, #0x10]
- str r4, [r7, #0x14]
- str r4, [r7, #0x18]
- str r4, [r7, #0x1c]
- str r4, [r7, #0x20]
- str r4, [r7, #0x24]
- str r4, [r7, #0x28]
- add r5, r5, #0x1
- str r4, [r7, #0x2c]
- cmp r5, r6
- add r7, r7, #0x30
- blo _020B45A0
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020B45E4: .word UNK_021CECFC
-_020B45E8: .word UNK_021CED00
-_020B45EC: .word UNK_021CED04
-
- arm_func_start FUN_020B45F0
-FUN_020B45F0: ; 0x020B45F0
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- ldr ip, _020B4698 ; =UNK_021CED04
- mov r4, #0x30
- ldr r12, [r12, #0x0]
- mov r7, r1
- mla r4, r0, r4, r12
- mov r0, r4
- mov r6, r2
- mov r5, r3
- bl FUN_020B10CC
- mvn r0, #0x0
- cmp r7, r0
- beq _020B4638
- mov r0, r4
- mov r2, r7
- mov r1, #0x0
- bl FUN_020B10C4
-_020B4638:
- mvn r0, #0x0
- cmp r6, r0
- beq _020B4654
- mov r0, r4
- mov r2, r6
- mov r1, #0x1
- bl FUN_020B10C4
-_020B4654:
- mvn r0, #0x0
- cmp r5, r0
- beq _020B4670
- mov r0, r4
- mov r2, r5
- mov r1, #0x2
- bl FUN_020B10C4
-_020B4670:
- ldr r1, [sp, #0x18]
- ldr r0, [sp, #0x1c]
- str r1, [r4, #0xc]
- ldr r1, [sp, #0x20]
- str r0, [r4, #0x10]
- ldr r0, [sp, #0x24]
- str r1, [r4, #0x14]
- str r0, [r4, #0x18]
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020B4698: .word UNK_021CED04
-
- arm_func_start FUN_020B469C
-FUN_020B469C: ; 0x020B469C
- ldr r2, _020B46B0 ; =UNK_021CED04
- mov r1, #0x30
- ldr r2, [r2, #0x0]
- mla r0, r1, r0, r2
- bx lr
- .balign 4
-_020B46B0: .word UNK_021CED04
-
- arm_func_start FUN_020B46B4
-FUN_020B46B4: ; 0x020B46B4
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x1c
- add r12, sp, #0x4
- mov r5, r1
- mov r4, r2
- mov r7, r3
- mov r6, r0
- ldr r1, [sp, #0x30]
- ldr r2, [sp, #0x34]
- ldr r3, [sp, #0x38]
- mov r0, r7
- str r12, [sp, #0x0]
- bl FUN_020B498C
- ldr r2, [r7, #0x0]
- and r1, r2, #0x300
- cmp r1, #0x100
- beq _020B4708
- cmp r1, #0x300
- beq _020B4708
- and r0, r2, #0x30000000
- orr r1, r1, r0
-_020B4708:
- cmp r1, #0x300
- bne _020B478C
- ldr r0, _020B4914 ; =0xC000C000
- ldr r1, _020B4918 ; =UNK_021CED08
- and r0, r2, r0
- and r2, r0, #0xc0000000
- mov r12, r2, lsr #0x1e
- and r0, r0, #0xc000
- mov lr, r0, asr #0xe
- ldr r3, _020B491C ; =UNK_020FF8AC
- ldr r0, [r1, #0x0]
- ldr r2, _020B4920 ; =UNK_020FF894
- cmp r0, #0x0
- ldrne r0, _020B4924 ; =UNK_021CED10
- mov r12, r12, lsl #0x1
- add r1, r2, lr, lsl #0x3
- add r3, r3, lr, lsl #0x3
- ldrh r2, [r12, r3]
- ldrh r1, [r12, r1]
- ldrne r0, [r0, #0x0]
- mov r2, r2, asr #0x1
- addne r3, r0, r4, lsl #0xc
- mov r1, r1, asr #0x1
- add r0, r5, r1
- add r2, r6, r2
- ldr r1, _020B4928 ; =0x04000470
- mov r2, r2, lsl #0xc
- str r2, [r1, #0x0]
- mov r0, r0, lsl #0xc
- moveq r3, r4, lsl #0xc
- str r0, [r1, #0x0]
- str r3, [r1, #0x0]
- b _020B47C0
-_020B478C:
- ldr r0, _020B4918 ; =UNK_021CED08
- ldr r1, _020B4928 ; =0x04000470
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- ldrne r0, _020B4924 ; =UNK_021CED10
- ldrne r0, [r0, #0x0]
- addne r2, r0, r4, lsl #0xc
- mov r0, r6, lsl #0xc
- str r0, [r1, #0x0]
- mov r0, r5, lsl #0xc
- moveq r2, r4, lsl #0xc
- str r0, [r1, #0x0]
- str r2, [r1, #0x0]
-_020B47C0:
- ldr r0, [sp, #0x14]
- ldr r1, [sp, #0x18]
- ldr r2, _020B492C ; =0x0400046C
- mov r0, r0, lsl #0xc
- str r0, [r2, #0x0]
- mov r0, r1, lsl #0xc
- str r0, [r2, #0x0]
- mov r1, #0x1000
- str r1, [r2, #0x0]
- ldr r0, _020B4930 ; =0x04000500
- mov r1, #0x1
- str r1, [r0, #0x0]
- ldr r0, [sp, #0x4]
- ldr r1, [sp, #0x10]
- mov r0, r0, lsl #0x8
- mov r1, r1, lsl #0x8
- mov r0, r0, asr #0x10
- mov r1, r1, asr #0x10
- mov r0, r0, lsl #0x10
- mov r1, r1, lsl #0x10
- mov r2, r0, lsr #0x10
- mov r0, r1, lsr #0x10
- orr r2, r2, r0, lsl #0x10
- ldr r1, _020B4934 ; =0x04000488
- ldr r0, _020B4938 ; =0x04000490
- str r2, [r1, #0x0]
- mov r2, #0x10000
- str r2, [r0, #0x0]
- ldr r2, [sp, #0xc]
- ldr r3, [sp, #0x10]
- mov r2, r2, lsl #0x8
- mov r3, r3, lsl #0x8
- mov r2, r2, asr #0x10
- mov r3, r3, asr #0x10
- mov r2, r2, lsl #0x10
- mov r3, r3, lsl #0x10
- mov r4, r2, lsr #0x10
- mov r2, r3, lsr #0x10
- orr r3, r4, r2, lsl #0x10
- ldr r2, _020B493C ; =0x00010040
- str r3, [r1, #0x0]
- str r2, [r0, #0x0]
- ldr r2, [sp, #0xc]
- ldr r3, [sp, #0x8]
- mov r2, r2, lsl #0x8
- mov r3, r3, lsl #0x8
- mov r2, r2, asr #0x10
- mov r3, r3, asr #0x10
- mov r2, r2, lsl #0x10
- mov r3, r3, lsl #0x10
- mov r4, r2, lsr #0x10
- mov r2, r3, lsr #0x10
- orr r2, r4, r2, lsl #0x10
- str r2, [r1, #0x0]
- mov r2, #0x40
- str r2, [r0, #0x0]
- ldr r2, [sp, #0x4]
- ldr r3, [sp, #0x8]
- mov r2, r2, lsl #0x8
- mov r3, r3, lsl #0x8
- mov r2, r2, asr #0x10
- mov r3, r3, asr #0x10
- mov r2, r2, lsl #0x10
- mov r3, r3, lsl #0x10
- mov r4, r2, lsr #0x10
- mov r2, r3, lsr #0x10
- orr r2, r4, r2, lsl #0x10
- str r2, [r1, #0x0]
- mov r2, #0x0
- str r2, [r0, #0x0]
- ldr r1, _020B4940 ; =0x04000504
- ldr r0, _020B4918 ; =UNK_021CED08
- str r2, [r1, #0x0]
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- addeq sp, sp, #0x1c
- ldmeqia sp!, {r4-r7,pc}
- ldr r1, _020B4924 ; =UNK_021CED10
- ldr r0, _020B4944 ; =UNK_02106590
- ldr r2, [r1, #0x0]
- ldr r0, [r0, #0x0]
- add r0, r2, r0
- str r0, [r1, #0x0]
- add sp, sp, #0x1c
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020B4914: .word 0xC000C000
-_020B4918: .word UNK_021CED08
-_020B491C: .word UNK_020FF8AC
-_020B4920: .word UNK_020FF894
-_020B4924: .word UNK_021CED10
-_020B4928: .word 0x04000470
-_020B492C: .word 0x0400046C
-_020B4930: .word 0x04000500
-_020B4934: .word 0x04000488
-_020B4938: .word 0x04000490
-_020B493C: .word 0x00010040
-_020B4940: .word 0x04000504
-_020B4944: .word UNK_02106590
-
- arm_func_start FUN_020B4948
-FUN_020B4948:
- ldr r0, _020B4954 ; =UNK_02106590
- ldr r0, [r0, #0x0]
- bx lr
- .balign 4
-_020B4954: .word UNK_02106590
-
- arm_func_start FUN_020B4958
-FUN_020B4958:
- ldr r1, _020B4964 ; =UNK_02106590
- str r0, [r1, #0x0]
- bx lr
- .balign 4
-_020B4964: .word UNK_02106590
-
- arm_func_start FUN_020B4968
-FUN_020B4968: ; 0x020B4968
- ldr r0, _020B4978 ; =UNK_021CED10
- mov r1, #0x0
- str r1, [r0, #0x0]
- bx lr
- .balign 4
-_020B4978: .word UNK_021CED10
-
- arm_func_start FUN_020B497C
-FUN_020B497C:
- ldr r1, _020B4988 ; =UNK_021CED08
- str r0, [r1, #0x0]
- bx lr
- .balign 4
-_020B4988: .word UNK_021CED08
-
- arm_func_start FUN_020B498C
-FUN_020B498C: ; 0x020B498C
- stmdb sp!, {r4-r9,lr}
- sub sp, sp, #0xc
- mov r6, r0
- ldr r4, [r6, #0x0]
- ldr r0, _020B4BCC ; =0xC000C000
- ldr r5, [r6, #0x4]
- and r4, r4, r0
- and r0, r4, #0xc0000000
- and r4, r4, #0xc000
- mov lr, r0, lsr #0x1e
- ldr r0, _020B4BD0 ; =UNK_020FF8AC
- mov r12, r4, asr #0xe
- ldr r8, _020B4BD4 ; =UNK_020FF894
- mov r4, lr, lsl #0x1
- add r0, r0, r12, lsl #0x3
- ldrh r9, [r4, r0]
- ldr r0, [sp, #0x28]
- mov r5, r5, lsl #0x16
- mov r5, r5, lsr #0x16
- mov r7, r5, lsl #0x10
- str r9, [r0, #0x10]
- add r5, r8, r12, lsl #0x3
- ldrh r8, [r4, r5]
- mov r5, r1
- mov r4, r3
- str r8, [r0, #0x14]
- ldr r1, [r5, #0x14]
- mov r7, r7, lsr #0x10
- cmp r1, #0x0
- bne _020B4A74
- ldr r1, [r5, #0x8]
- mov r2, r2, lsr #0x3
- orr r1, r2, r1, lsl #0x1a
- ldr r2, [r5, #0x0]
- orr r1, r1, #0x40000000
- ldr r3, [r5, #0x4]
- orr r1, r1, r2, lsl #0x14
- orr r2, r1, r3, lsl #0x17
- ldr r8, [r5, #0x10]
- ldr r1, _020B4BD8 ; =0x040004A8
- orr r2, r2, r8, lsl #0x1d
- str r2, [r1, #0x0]
- ldr r1, [r5, #0x8]
- ldr r2, [r5, #0x0]
- cmp r1, #0x4
- moveq r1, r7, lsl #0xf
- moveq r7, r1, lsr #0x10
- ldr r1, _020B4BDC ; =UNK_020FF8D8
- ldr r1, [r1, r2, lsl #0x2]
- sub r1, r1, #0x1
- and r1, r7, r1
- mov r1, r1, lsl #0xf
- str r1, [r0, #0x0]
- ldr r1, [r5, #0x0]
- mov r1, r7, asr r1
- mov r1, r1, lsl #0xf
- str r1, [r0, #0x4]
- b _020B4AE0
-_020B4A74:
- and r1, r1, #0x700000
- mov r1, r1, asr #0x14
- mov r12, r12, lsl #0x10
- add r1, r1, #0x5
- ldr r3, [r5, #0x8]
- mov lr, lr, lsl #0x10
- ldr sb, _020B4BE0 ; =UNK_020FF8F8
- mov r12, r12, lsr #0x10
- ldr r8, _020B4BE4 ; =UNK_020FF928
- add r1, r2, r7, lsl r1
- mov r2, r3, lsl #0x1a
- orr r3, r2, r1, lsr #0x3
- mov r7, lr, lsr #0x10
- add r2, r9, r12, lsl #0x4
- add r1, r8, r12, lsl #0x4
- ldr r2, [r2, r7, lsl #0x2]
- orr r3, r3, #0x40000000
- ldr r1, [r1, r7, lsl #0x2]
- orr r2, r3, r2, lsl #0x14
- ldr r3, [r5, #0x10]
- orr r2, r2, r1, lsl #0x17
- ldr r1, _020B4BD8 ; =0x040004A8
- orr r2, r2, r3, lsl #0x1d
- str r2, [r1, #0x0]
- mov r1, #0x0
- str r1, [r0, #0x0]
- str r1, [r0, #0x4]
-_020B4AE0:
- ldr r2, [r0, #0x0]
- ldr r1, [r0, #0x10]
- add r1, r2, r1, lsl #0xc
- str r1, [r0, #0x8]
- ldr r2, [r0, #0x4]
- ldr r1, [r0, #0x14]
- add r1, r2, r1, lsl #0xc
- str r1, [r0, #0xc]
- ldr r1, [r6, #0x0]
- mov r2, r1, lsl #0x2
- mov r1, r1, lsl #0x3
- movs r3, r1, lsr #0x1f
- mov r12, r2, lsr #0x1f
- ldrne r2, [r0, #0x0]
- ldrne r1, [r0, #0x8]
- strne r1, [r0, #0x0]
- strne r2, [r0, #0x8]
- cmp r12, #0x0
- ldrne r2, [r0, #0x4]
- ldrne r1, [r0, #0xc]
- strne r1, [r0, #0x4]
- ldr r1, _020B4BE8 ; =UNK_021CED0C
- strne r2, [r0, #0xc]
- ldr r7, [r1, #0x0]
- cmp r7, #0x0
- beq _020B4B60
- str r3, [sp, #0x0]
- add r1, r0, #0x4
- add r2, r0, #0x8
- add r3, r0, #0xc
- str r12, [sp, #0x4]
- blx r7
-_020B4B60:
- ldr r0, [r6, #0x4]
- ldr r1, [r6, #0x0]
- mov r0, r0, lsl #0x10
- mov r0, r0, lsr #0x1c
- mov r3, r1, lsl #0x12
- ldr r1, [r5, #0xc]
- mov r0, r0, lsl #0x10
- ldr r2, _020B4BEC ; =UNK_020FF8D0
- mov r3, r3, lsr #0x1f
- cmp r1, #0x0
- mov r0, r0, lsr #0x10
- ldr r1, [r2, r3, lsl #0x2]
- movne r0, r0, lsl #0x9
- bne _020B4BA4
- cmp r1, #0x4
- moveq r0, #0x0
- movne r0, r0, lsl #0x5
-_020B4BA4:
- cmp r1, #0x2
- moveq r2, #0x1
- movne r2, #0x0
- add r1, r4, r0
- rsb r0, r2, #0x4
- mov r1, r1, lsr r0
- ldr r0, _020B4BF0 ; =0x040004AC
- str r1, [r0, #0x0]
- add sp, sp, #0xc
- ldmia sp!, {r4-r9,pc}
- .balign 4
-_020B4BCC: .word 0xC000C000
-_020B4BD0: .word UNK_020FF8AC
-_020B4BD4: .word UNK_020FF894
-_020B4BD8: .word 0x040004A8
-_020B4BDC: .word UNK_020FF8D8
-_020B4BE0: .word UNK_020FF8F8
-_020B4BE4: .word UNK_020FF928
-_020B4BE8: .word UNK_021CED0C
-_020B4BEC: .word UNK_020FF8D0
-_020B4BF0: .word 0x040004AC
-
- arm_func_start FUN_020B4BF4
-FUN_020B4BF4: ; 0x020B4BF4
- stmdb sp!, {r4-r6,lr}
- ldr r2, _020B4CD8 ; =UNK_021CED14
- mov r6, r0
- ldr r3, [r2, #0x0]
- mov r4, r1
- ldr r5, [r3, #0x0]
- ldr r0, [r5, #0x10]
- cmp r0, #0x0
- ldmeqia sp!, {r4-r6,pc}
- mov r0, #0x1
- str r0, [r3, #0x30]
- ldr r3, [r5, #0x18]
- cmp r3, #0x0
- beq _020B4C38
- ldr r0, [r2, #0x0]
- mov r1, r6
- blx r3
-_020B4C38:
- ldr r0, _020B4CD8 ; =UNK_021CED14
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x30]
- cmp r0, #0x0
- beq _020B4CB8
- mvn r0, #0x0
- cmp r4, r0
- beq _020B4C7C
- mov r0, r4
- ldr r4, [r5, #0x14]
- bl FUN_020B469C
- mov r3, #0x1
- mvn r1, r3, lsl r4
- ldr r2, [r0, #0x20]
- and r1, r2, r1
- orr r1, r1, r3, lsl r4
- str r1, [r0, #0x20]
-_020B4C7C:
- ldr r0, [r5, #0x14]
- cmp r0, #0x3
- addls pc, pc, r0, lsl #0x2
- b _020B4CB8
-_020B4C8C:
- b _020B4C9C
-_020B4C90:
- b _020B4CAC
-_020B4C94:
- b _020B4CAC
-_020B4C98:
- b _020B4CB8
-_020B4C9C:
- mov r0, r5
- mov r1, r6
- bl FUN_020B5090
- b _020B4CB8
-_020B4CAC:
- mov r0, r5
- mov r1, r6
- bl FUN_020B53B4
-_020B4CB8:
- ldr r2, [r5, #0x1c]
- cmp r2, #0x0
- ldmeqia sp!, {r4-r6,pc}
- ldr r0, _020B4CD8 ; =UNK_021CED14
- mov r1, r6
- ldr r0, [r0, #0x0]
- blx r2
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020B4CD8: .word UNK_021CED14
-
- arm_func_start FUN_020B4CDC
-FUN_020B4CDC:
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- ldr r1, _020B4D9C ; =UNK_021CED14
- mov r5, r0
- ldr r2, [r1, #0x0]
- ldr r4, [r2, #0x0]
- ldr r0, [r4, #0x10]
- cmp r0, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r5,pc}
- mov r0, #0x1
- str r0, [r2, #0x30]
- ldr r2, [r4, #0x18]
- cmp r2, #0x0
- beq _020B4D24
- ldr r0, [r1, #0x0]
- mov r1, r5
- blx r2
-_020B4D24:
- ldr r0, _020B4D9C ; =UNK_021CED14
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x30]
- cmp r0, #0x0
- beq _020B4D74
- ldr r0, [r4, #0x14]
- cmp r0, #0x3
- addls pc, pc, r0, lsl #0x2
- b _020B4D74
-_020B4D48:
- b _020B4D58
-_020B4D4C:
- b _020B4D68
-_020B4D50:
- b _020B4D68
-_020B4D54:
- b _020B4D74
-_020B4D58:
- mov r0, r4
- mov r1, r5
- bl FUN_020B5090
- b _020B4D74
-_020B4D68:
- mov r0, r4
- mov r1, r5
- bl FUN_020B53B4
-_020B4D74:
- ldr r2, [r4, #0x1c]
- cmp r2, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r5,pc}
- ldr r0, _020B4D9C ; =UNK_021CED14
- mov r1, r5
- ldr r0, [r0, #0x0]
- blx r2
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020B4D9C: .word UNK_021CED14
-
- arm_func_start FUN_020B4DA0
-FUN_020B4DA0: ; 0x020B4DA0
- ldr r0, _020B4E00 ; =UNK_021CED14
- ldr r3, [r0, #0x0]
- ldr r1, [r3, #0x0]
- ldr r1, [r1, #0x14]
- cmp r1, #0x0
- bne _020B4DD8
- ldr r2, _020B4E04 ; =0x04000440
- mov r1, #0x0
- ldr r0, _020B4E08 ; =0x04000448
- str r1, [r2, #0x0]
- mov r1, #0x1
- str r1, [r0, #0x0]
- str r1, [r2, #0x0]
- b _020B4DF0
-_020B4DD8:
- mov r2, #0x0
- str r2, [r3, #0x10]
- ldr r1, [r0, #0x0]
- str r2, [r1, #0x2c]
- ldr r0, [r0, #0x0]
- str r2, [r0, #0x28]
-_020B4DF0:
- ldr r0, _020B4E00 ; =UNK_021CED14
- mov r1, #0x0
- str r1, [r0, #0x0]
- bx lr
- .balign 4
-_020B4E00: .word UNK_021CED14
-_020B4E04: .word 0x04000440
-_020B4E08: .word 0x04000448
-
- arm_func_start FUN_020B4E0C
-FUN_020B4E0C: ; 0x020B4E0C
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- ldr r2, _020B4F28 ; =UNK_021CED14
- mov r4, r0
- str r4, [r2, #0x0]
- ldr r0, [r4, #0x0]
- ldr r5, [r0, #0x14]
- cmp r5, #0x0
- bne _020B4ED8
- ldr lr, _020B4F2C ; =0x04000440
- mov r1, #0x0
- ldr r0, _020B4F30 ; =0x04000444
- str r1, [lr, #0x0]
- str r1, [r0, #0x0]
- ldr r12, [r4, #0x0]
- ldr r0, _020B4F34 ; =0x04000470
- ldr r3, [r12, #0x0]
- ldr r12, [r12, #0x4]
- rsb r3, r3, #0x0
- str r3, [r0, #0x0]
- rsb r3, r12, #0x0
- str r3, [r0, #0x0]
- str r1, [r0, #0x0]
- mov r0, #0x1
- str r0, [lr, #0x0]
- ldr r0, [r2, #0x0]
- ldr r5, [r0, #0x8]
- mov r0, r5
- bl FUN_020B19FC
- cmp r0, #0x0
- moveq r0, #0x0
- beq _020B4E98
- mov r0, r5
- mov r1, #0x0
- bl FUN_020B1A14
-_020B4E98:
- ldr r1, _020B4F28 ; =UNK_021CED14
- str r0, [r4, #0x14]
- ldr r0, [r1, #0x0]
- mov r1, #0x0
- ldr r5, [r0, #0xc]
- mov r0, r5
- bl FUN_020B19A8
- cmp r0, #0x0
- moveq r0, #0x0
- beq _020B4ECC
- mov r0, r5
- mov r1, #0x0
- bl FUN_020B19C4
-_020B4ECC:
- add sp, sp, #0x4
- str r0, [r4, #0x18]
- ldmia sp!, {r4-r5,pc}
-_020B4ED8:
- ldr r4, [r4, #0x8]
- mov r1, r5
- mov r0, r4
- bl FUN_020B19FC
- cmp r0, #0x0
- moveq r1, #0x0
- beq _020B4F14
- mov r0, r4
- mov r1, r5
- bl FUN_020B1A14
- ldr r1, [r4, #0x20]
- and r1, r1, #0x700000
- mov r1, r1, asr #0x14
- add r1, r1, #0x5
- mov r1, r0, lsr r1
-_020B4F14:
- ldr r0, _020B4F28 ; =UNK_021CED14
- ldr r0, [r0, #0x0]
- str r1, [r0, #0x10]
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020B4F28: .word UNK_021CED14
-_020B4F2C: .word 0x04000440
-_020B4F30: .word 0x04000444
-_020B4F34: .word 0x04000470
-
- arm_func_start FUN_020B4F38
-FUN_020B4F38: ; 0x020B4F38
- cmp r1, #0x0
- ldrne r1, [r0, #0x24]
- orrne r1, r1, #0x1
- strne r1, [r0, #0x24]
- ldreq r1, [r0, #0x24]
- biceq r1, r1, #0x1
- streq r1, [r0, #0x24]
- cmp r2, #0x0
- ldrne r1, [r0, #0x24]
- orrne r1, r1, #0x2
- strne r1, [r0, #0x24]
- ldreq r1, [r0, #0x24]
- biceq r1, r1, #0x2
- streq r1, [r0, #0x24]
- bx lr
-
- arm_func_start FUN_020B4F74
-FUN_020B4F74:
- ldr r0, [r0, #0x24]
- ands r0, r0, #0x2
- movne r0, #0x1
- moveq r0, #0x0
- bx lr
-
- arm_func_start FUN_020B4F88
-FUN_020B4F88:
- ldr r0, [r0, #0x24]
- ands r0, r0, #0x1
- movne r0, #0x1
- moveq r0, #0x0
- bx lr
-
- arm_func_start FUN_020B4F9C
-FUN_020B4F9C: ; 0x020B4F9C
- str r1, [r0, #0x0]
- bx lr
-
- arm_func_start FUN_020B4FA4
-FUN_020B4FA4: ; 0x020B4FA4
- str r1, [r0, #0x34]
- bx lr
-
- arm_func_start FUN_020B4FAC
-FUN_020B4FAC: ; 0x020B4FAC
- ldr r2, _020B4FC0 ; =UNK_021CED14
- ldr r2, [r2, #0x0]
- str r0, [r2, #0x2c]
- str r1, [r2, #0x28]
- bx lr
- .balign 4
-_020B4FC0: .word UNK_021CED14
-
- arm_func_start FUN_020B4FC4
-FUN_020B4FC4: ; 0x020B4FC4
- ldr r1, _020B5028 ; =UNK_021CED14
- mov r3, #0x0
- ldr r12, [r1, #0x0]
- mov r1, #0x1000
- str r0, [r12, #0x2c]
- ldr r2, [r0, #0x0]
- str r2, [r12, #0x40]
- ldr r2, [r0, #0x4]
- str r2, [r12, #0x44]
- str r3, [r12, #0x48]
- ldr r2, [r0, #0x8]
- str r2, [r12, #0x4c]
- ldr r2, [r0, #0xc]
- str r2, [r12, #0x50]
- str r3, [r12, #0x54]
- str r3, [r12, #0x58]
- str r3, [r12, #0x5c]
- str r1, [r12, #0x60]
- ldr r1, [r0, #0x10]
- str r1, [r12, #0x64]
- ldr r0, [r0, #0x14]
- str r0, [r12, #0x68]
- ldr r0, [r12, #0x34]
- str r0, [r12, #0x6c]
- bx lr
- .balign 4
-_020B5028: .word UNK_021CED14
-
- arm_func_start FUN_020B502C
-FUN_020B502C: ; 0x020B502C
- str r1, [r0, #0x4]
- bx lr
-
- arm_func_start FUN_020B5034
-FUN_020B5034: ; 0x020B5034
- str r1, [r0, #0x1c]
- str r2, [r0, #0x20]
- bx lr
-
- arm_func_start FUN_020B5040
-FUN_020B5040: ; 0x020B5040
- str r1, [r0, #0x8]
- str r2, [r0, #0xc]
- bx lr
-
- arm_func_start FUN_020B504C
-FUN_020B504C: ; 0x020B504C
- stmdb sp!, {r4,lr}
- mov r4, r0
- mov r1, r4
- mov r0, #0x0
- mov r2, #0x70
- bl MIi_CpuClear16
- mov r1, #0x0
- str r1, [r4, #0x0]
- mov r0, #0x2
- str r0, [r4, #0x4]
- str r1, [r4, #0x8]
- str r1, [r4, #0xc]
- str r1, [r4, #0x24]
- mov r0, #0x1
- str r0, [r4, #0x30]
- str r1, [r4, #0x28]
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020B5090
-FUN_020B5090: ; 0x020B5090
- stmdb sp!, {r4-r10,lr}
- ldr r5, _020B5158 ; =UNK_021CED14
- mov r9, r1
- ldrh r1, [r9, #0x0]
- ldr r2, [r5, #0x0]
- mov r10, r0
- add r7, r2, #0x38
- mov r8, #0x0
- cmp r1, #0x0
- ldmlsia sp!, {r4-r10,pc}
- mov r6, #0x1
- mov r4, #0x6
-_020B50C0:
- mul r1, r8, r4
- ldr r0, [r5, #0x0]
- str r6, [r0, #0x30]
- ldr r2, [r9, #0x4]
- ldrh r0, [r2, r1]
- add r1, r2, r1
- strh r0, [r7, #0x0]
- ldrh r0, [r1, #0x2]
- strh r0, [r7, #0x2]
- ldrh r0, [r1, #0x4]
- strh r0, [r7, #0x4]
- ldr r3, [r10, #0x20]
- cmp r3, #0x0
- beq _020B5108
- ldr r0, [r5, #0x0]
- mov r1, r9
- mov r2, r8
- blx r3
-_020B5108:
- ldr r0, [r5, #0x0]
- ldr r0, [r0, #0x30]
- cmp r0, #0x0
- beq _020B5120
- mov r0, r7
- bl FUN_020B515C
-_020B5120:
- ldr r3, [r10, #0x24]
- cmp r3, #0x0
- beq _020B513C
- ldr r0, [r5, #0x0]
- mov r1, r9
- mov r2, r8
- blx r3
-_020B513C:
- add r0, r8, #0x1
- mov r0, r0, lsl #0x10
- ldrh r1, [r9, #0x0]
- mov r8, r0, lsr #0x10
- cmp r8, r1
- blo _020B50C0
- ldmia sp!, {r4-r10,pc}
- .balign 4
-_020B5158: .word UNK_021CED14
-
- arm_func_start FUN_020B515C
-FUN_020B515C: ; 0x020B515C
- stmdb sp!, {r4-r8,lr}
- sub sp, sp, #0x10
- ldr r1, _020B53A4 ; =UNK_021CED14
- mov r7, r0
- ldr r0, [r1, #0x0]
- add r0, r0, #0x40
- bl G3_LoadMtx43
- ldr r0, _020B53A4 ; =UNK_021CED14
- ldr r0, [r0, #0x0]
- ldr r1, [r0, #0x24]
- cmp r1, #0x0
- beq _020B533C
- ldr r2, [r7, #0x0]
- ldr r1, _020B53A8 ; =0xC000C000
- and r4, r2, r1
- bl FUN_020B4F88
- cmp r0, #0x0
- beq _020B51F4
- ldr r0, [r7, #0x0]
- and r2, r4, #0xc000
- mov r0, r0, lsl #0x7
- mov r3, r0, lsr #0x17
- and r1, r4, #0xc0000000
- mov r1, r1, lsr #0x1e
- ldr r0, _020B53AC ; =UNK_020FF8AC
- mov r2, r2, asr #0xe
- mov r1, r1, lsl #0x1
- add r0, r0, r2, lsl #0x3
- cmp r3, #0xff
- ldrh r1, [r1, r0]
- orrgt r0, r3, #0xff00
- movgt r0, r0, lsl #0x10
- movgt r3, r0, asr #0x10
- add r0, r3, r1
- rsb r0, r0, #0x0
- mov r0, r0, lsl #0x10
- mov r1, r0, lsr #0x10
- b _020B5218
-_020B51F4:
- ldr r0, [r7, #0x0]
- mov r0, r0, lsl #0x7
- mov r0, r0, lsr #0x17
- cmp r0, #0xff
- orrgt r0, r0, #0xff00
- movgt r0, r0, lsl #0x10
- movgt r0, r0, asr #0x10
- mov r0, r0, lsl #0x10
- mov r1, r0, lsr #0x10
-_020B5218:
- ldr r0, _020B53A4 ; =UNK_021CED14
- mov r1, r1, lsl #0x10
- ldr r0, [r0, #0x0]
- mov r6, r1, asr #0x10
- bl FUN_020B4F74
- cmp r0, #0x0
- beq _020B527C
- and r1, r4, #0xc000
- and r0, r4, #0xc0000000
- ldrb r4, [r7, #0x0]
- ldr r2, _020B53B0 ; =UNK_020FF894
- mov r0, r0, lsr #0x1e
- mov r3, r1, asr #0xe
- mov r1, r0, lsl #0x1
- add r0, r2, r3, lsl #0x3
- cmp r4, #0x7f
- ldrh r1, [r1, r0]
- orrgt r0, r4, #0xff00
- movgt r0, r0, lsl #0x10
- movgt r4, r0, asr #0x10
- add r0, r4, r1
- rsb r0, r0, #0x0
- mov r0, r0, lsl #0x10
- mov r4, r0, lsr #0x10
- b _020B5298
-_020B527C:
- ldrb r0, [r7, #0x0]
- cmp r0, #0x7f
- orrgt r0, r0, #0xff00
- movgt r0, r0, lsl #0x10
- movgt r0, r0, asr #0x10
- mov r0, r0, lsl #0x10
- mov r4, r0, lsr #0x10
-_020B5298:
- ldr r0, _020B53A4 ; =UNK_021CED14
- ldr r1, [r7, #0x0]
- ldr r0, [r0, #0x0]
- mov r5, r1, lsl #0x3
- bl FUN_020B4F88
- ldr r2, [r7, #0x0]
- ldr r1, _020B53A4 ; =UNK_021CED14
- eor r5, r0, r5, lsr #0x1f
- ldr r0, [r1, #0x0]
- mov r8, r2, lsl #0x2
- bl FUN_020B4F74
- ldr r2, [r7, #0x0]
- eor r1, r0, r8, lsr #0x1f
- bic r0, r2, #0x10000000
- str r0, [r7, #0x0]
- ldr r2, [r7, #0x0]
- ldr r3, _020B53A4 ; =UNK_021CED14
- orr r2, r2, r5, lsl #0x1c
- str r2, [r7, #0x0]
- ldr r2, [r7, #0x0]
- mov r0, r6
- bic r2, r2, #0x20000000
- str r2, [r7, #0x0]
- ldr r5, [r7, #0x0]
- mov r2, r4, lsl #0x10
- orr r1, r5, r1, lsl #0x1d
- str r1, [r7, #0x0]
- ldr r5, [r3, #0x0]
- mov r1, r2, asr #0x10
- ldr r4, [r5, #0x8]
- mov r3, r7
- add r2, r4, #0xc
- str r2, [sp, #0x0]
- ldr r4, [r5, #0x14]
- mvn r2, #0x0
- str r4, [sp, #0x4]
- ldr r4, [r5, #0x18]
- str r4, [sp, #0x8]
- bl FUN_020B46B4
- add sp, sp, #0x10
- ldmia sp!, {r4-r8,pc}
-_020B533C:
- ldr r2, _020B53A4 ; =UNK_021CED14
- ldr r0, [r7, #0x0]
- ldr r5, [r2, #0x0]
- mov r0, r0, lsl #0x7
- ldr r4, [r5, #0x8]
- mov r0, r0, lsr #0x17
- cmp r0, #0xff
- orrgt r0, r0, #0xff00
- movgt r0, r0, lsl #0x10
- ldrb r1, [r7, #0x0]
- add r4, r4, #0xc
- movgt r0, r0, asr #0x10
- str r4, [sp, #0x0]
- ldr r4, [r5, #0x14]
- cmp r1, #0x7f
- orrgt r1, r1, #0xff00
- movgt r1, r1, lsl #0x10
- str r4, [sp, #0x4]
- ldr r4, [r5, #0x18]
- movgt r1, r1, asr #0x10
- mov r3, r7
- mvn r2, #0x0
- str r4, [sp, #0x8]
- bl FUN_020B46B4
- add sp, sp, #0x10
- ldmia sp!, {r4-r8,pc}
- .balign 4
-_020B53A4: .word UNK_021CED14
-_020B53A8: .word 0xC000C000
-_020B53AC: .word UNK_020FF8AC
-_020B53B0: .word UNK_020FF894
-
- arm_func_start FUN_020B53B4
-FUN_020B53B4: ; 0x020B53B4
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x44
- ldr r2, _020B57B0 ; =UNK_021CED14
- mov r10, r0
- ldr r0, [r2, #0x0]
- mov r11, r1
- ldr r9, [r0, #0x2c]
- ldr r1, _020B57B0 ; =UNK_021CED14
- cmp r9, #0x0
- ldreq sb, _020B57B4 ; =UNK_020FF958
- ldr r3, [r1, #0x0]
- ldr r4, [r9, #0x10]
- str r4, [sp, #0x18]
- ldr r2, [r9, #0x14]
- str r2, [sp, #0x1c]
- ldr r1, [r10, #0x0]
- sub r1, r4, r1
- str r1, [sp, #0x18]
- ldr r1, [r10, #0x4]
- sub r1, r2, r1
- str r1, [sp, #0x1c]
- ldr r2, [r3, #0x24]
- ldr r1, [r3, #0x10]
- cmp r2, #0x0
- str r1, [sp, #0x4]
- bne _020B5430
- ldr r1, [r3, #0x28]
- cmp r1, #0x0
- movne r1, #0x1
- strne r1, [sp, #0x0]
- bne _020B5438
-_020B5430:
- mov r1, #0x0
- str r1, [sp, #0x0]
-_020B5438:
- ldrh r1, [r11, #0x0]
- add r7, r0, #0x38
- mov r8, #0x0
- cmp r1, #0x0
- addls sp, sp, #0x44
- ldmlsia sp!, {r4-r11,pc}
- mov r0, #0x1
- ldr r4, _020B57B0 ; =UNK_021CED14
- str r8, [sp, #0x14]
- str r0, [sp, #0xc]
-_020B5460:
- ldr r2, [r4, #0x0]
- ldr r0, [sp, #0xc]
- mov r1, #0x6
- str r0, [r2, #0x30]
- mul r0, r8, r1
- ldr r1, [r11, #0x4]
- add r2, r1, r0
- ldrh r0, [r1, r0]
- strh r0, [r7, #0x0]
- ldrh r0, [r2, #0x2]
- strh r0, [r7, #0x2]
- ldrh r0, [r2, #0x4]
- strh r0, [r7, #0x4]
- ldr r3, [r10, #0x20]
- cmp r3, #0x0
- beq _020B54B0
- ldr r0, [r4, #0x0]
- mov r1, r11
- mov r2, r8
- blx r3
-_020B54B0:
- ldr r0, [r4, #0x0]
- ldr r0, [r0, #0x30]
- cmp r0, #0x0
- beq _020B5790
- ldr r0, [sp, #0x0]
- ldr r1, [r7, #0x4]
- cmp r0, #0x0
- mov r0, #0x400
- rsb r0, r0, #0x0
- and r2, r1, r0
- ldr r0, [sp, #0x4]
- mov r1, r1, lsl #0x16
- add r1, r0, r1, lsr #0x16
- ldr r0, _020B57B8 ; =0x000003FF
- and r0, r1, r0
- orr r0, r2, r0
- str r0, [r7, #0x4]
- beq _020B5600
- ldr r0, [r10, #0x14]
- ldr lr, [r4, #0x0]
- sub r1, r0, #0x1
- ldr r0, [r7, #0x0]
- ldr r6, [lr, #0x28]
- mov r2, r0, lsl #0x2
- mov r2, r2, lsr #0x1f
- mov r2, r2, lsl #0x1
- mov r0, r0, lsl #0x3
- orr r5, r2, r0, lsr #0x1f
- add r0, r6, r5, lsl #0x2
- add r0, r0, r1, lsl #0x1
- ldrh r1, [r0, #0x10]
- ldr r0, _020B57BC ; =0x0000FFFF
- str r1, [sp, #0x8]
- cmp r1, r0
- bne _020B55CC
- cmp r5, #0x0
- bne _020B5558
- ldr r1, [lr, #0x20]
- mov r0, r6
- blx r1
- str r0, [sp, #0x8]
- b _020B55B4
-_020B5558:
- ands r0, r5, #0x1
- add r12, sp, #0x30
- ldmia r6, {r0-r3}
- stmia r12, {r0-r3}
- beq _020B5584
- ldr r1, [sp, #0x30]
- ldr r0, [sp, #0x34]
- rsb r1, r1, #0x0
- str r1, [sp, #0x30]
- rsb r0, r0, #0x0
- str r0, [sp, #0x34]
-_020B5584:
- ands r0, r5, #0x2
- beq _020B55A4
- ldr r1, [sp, #0x38]
- ldr r0, [sp, #0x3c]
- rsb r1, r1, #0x0
- str r1, [sp, #0x38]
- rsb r0, r0, #0x0
- str r0, [sp, #0x3c]
-_020B55A4:
- ldr r1, [lr, #0x20]
- add r0, sp, #0x30
- blx r1
- str r0, [sp, #0x8]
-_020B55B4:
- ldr r1, [r10, #0x14]
- add r0, r6, r5, lsl #0x2
- sub r1, r1, #0x1
- add r1, r0, r1, lsl #0x1
- ldr r0, [sp, #0x8]
- strh r0, [r1, #0x10]
-_020B55CC:
- ldr r1, [r9, #0x0]
- add r0, sp, #0x20
- str r1, [sp, #0x20]
- ldr r2, [r9, #0x4]
- mov r1, r7
- str r2, [sp, #0x24]
- ldr r3, [r9, #0x8]
- add r2, sp, #0x18
- str r3, [sp, #0x28]
- ldr r3, [r9, #0xc]
- str r3, [sp, #0x2c]
- bl FUN_020B57D8
- b _020B5750
-_020B5600:
- ldr r0, _020B57C0 ; =0x0000FFFE
- str r0, [sp, #0x8]
- ldr r0, [r4, #0x0]
- ldr r1, [r0, #0x24]
- cmp r1, #0x0
- beq _020B5714
- ldr r2, [r7, #0x0]
- ldr r1, _020B57C4 ; =0xC000C000
- mov r6, r2, lsl #0x3
- and r5, r2, r1
- bl FUN_020B4F88
- ldr r1, [r7, #0x0]
- eor r6, r0, r6, lsr #0x1f
- mov r1, r1, lsl #0x2
- ldr r0, [r4, #0x0]
- str r1, [sp, #0x10]
- bl FUN_020B4F74
- ldr r1, [sp, #0x10]
- eor r0, r0, r1, lsr #0x1f
- ldr r1, [r7, #0x0]
- bic r1, r1, #0x10000000
- str r1, [r7, #0x0]
- ldr r1, [r7, #0x0]
- orr r1, r1, r6, lsl #0x1c
- str r1, [r7, #0x0]
- ldr r1, [r7, #0x0]
- bic r1, r1, #0x20000000
- str r1, [r7, #0x0]
- ldr r1, [r7, #0x0]
- orr r0, r1, r0, lsl #0x1d
- str r0, [r7, #0x0]
- ldr r0, [r4, #0x0]
- bl FUN_020B4F88
- cmp r0, #0x0
- beq _020B56D4
- and r1, r5, #0xc000
- mov r2, r1, asr #0xe
- ldr r1, _020B57C8 ; =UNK_020FF8AC
- and r3, r5, #0xc0000000
- mov r3, r3, lsr #0x1e
- add r2, r1, r2, lsl #0x3
- mov r3, r3, lsl #0x1
- ldr r0, [r7, #0x0]
- ldr r1, _020B57CC ; =0xFE00FFFF
- ldrh r2, [r3, r2]
- and r1, r0, r1
- mov r0, r0, lsl #0x7
- add r0, r2, r0, lsr #0x17
- rsb r2, r0, #0x0
- ldr r0, _020B57D0 ; =0x000001FF
- and r0, r2, r0
- orr r0, r1, r0, lsl #0x10
- str r0, [r7, #0x0]
-_020B56D4:
- ldr r0, [r4, #0x0]
- bl FUN_020B4F74
- cmp r0, #0x0
- beq _020B5714
- and r1, r5, #0xc000
- mov r3, r1, asr #0xe
- and r1, r5, #0xc0000000
- mov r1, r1, lsr #0x1e
- mov r2, r1, lsl #0x1
- ldr r1, _020B57D4 ; =UNK_020FF894
- ldrb r0, [r7, #0x0]
- add r1, r1, r3, lsl #0x3
- ldrh r1, [r2, r1]
- add r0, r0, r1
- rsb r0, r0, #0x0
- strb r0, [r7, #0x0]
-_020B5714:
- ldr r2, [r7, #0x0]
- ldr r0, _020B57CC ; =0xFE00FFFF
- ldr r1, [sp, #0x18]
- and r0, r2, r0
- mov r2, r2, lsl #0x7
- mov r2, r2, lsr #0x17
- add r2, r2, r1, asr #0xc
- ldr r1, _020B57D0 ; =0x000001FF
- and r1, r2, r1
- orr r0, r0, r1, lsl #0x10
- str r0, [r7, #0x0]
- ldrb r1, [r7, #0x0]
- ldr r0, [sp, #0x1c]
- add r0, r1, r0, asr #0xc
- strb r0, [r7, #0x0]
-_020B5750:
- ldr r3, [r4, #0x0]
- ldr r1, [sp, #0x8]
- ldr r2, [sp, #0x14]
- ldr r3, [r3, #0x1c]
- mov r0, r7
- blx r3
- cmp r0, #0x1
- addne sp, sp, #0x44
- ldmneia sp!, {r4-r11,pc}
- ldr r3, [r10, #0x24]
- cmp r3, #0x0
- beq _020B5790
- ldr r0, [r4, #0x0]
- mov r1, r11
- mov r2, r8
- blx r3
-_020B5790:
- add r0, r8, #0x1
- mov r0, r0, lsl #0x10
- mov r8, r0, lsr #0x10
- ldrh r0, [r11, #0x0]
- cmp r8, r0
- blo _020B5460
- add sp, sp, #0x44
- ldmia sp!, {r4-r11,pc}
- .balign 4
-_020B57B0: .word UNK_021CED14
-_020B57B4: .word UNK_020FF958
-_020B57B8: .word 0x000003FF
-_020B57BC: .word 0x0000FFFF
-_020B57C0: .word 0x0000FFFE
-_020B57C4: .word 0xC000C000
-_020B57C8: .word UNK_020FF8AC
-_020B57CC: .word 0xFE00FFFF
-_020B57D0: .word 0x000001FF
-_020B57D4: .word UNK_020FF894
-
- arm_func_start FUN_020B57D8
-FUN_020B57D8: ; 0x020B57D8
- stmdb sp!, {r4-r8,lr}
- sub sp, sp, #0x10
- ldr r4, [r1, #0x0]
- ldr r3, _020B5A9C ; =0x01FF0000
- and r3, r4, r3
- mov r3, r3, lsr #0x10
- mov r3, r3, lsl #0x10
- mov r3, r3, asr #0x10
- cmp r3, #0xff
- orrgt r3, r3, #0xff00
- movgt r3, r3, lsl #0x10
- movgt r3, r3, asr #0x10
- mov r3, r3, lsl #0xc
- str r3, [sp, #0x0]
- ldr r3, [r1, #0x0]
- and r3, r3, #0xff
- mov r3, r3, lsl #0x10
- mov r3, r3, asr #0x10
- cmp r3, #0x7f
- orrgt r3, r3, #0xff00
- movgt r3, r3, lsl #0x10
- movgt r3, r3, asr #0x10
- mov r3, r3, lsl #0xc
- str r3, [sp, #0x4]
- ldr r5, [r1, #0x0]
- and r4, r5, #0x300
- cmp r4, #0x100
- beq _020B5858
- cmp r4, #0x300
- beq _020B5858
- and r3, r5, #0x30000000
- orr r4, r4, r3
-_020B5858:
- cmp r4, #0x300
- bne _020B58AC
- ldr r3, _020B5AA0 ; =0xC000C000
- ldr r4, _020B5AA4 ; =UNK_020FF8AC
- and r3, r5, r3
- and r5, r3, #0xc0000000
- and r3, r3, #0xc000
- mov r6, r5, lsr #0x1e
- mov r5, r3, asr #0xe
- ldr r3, _020B5AA8 ; =UNK_020FF894
- mov r6, r6, lsl #0x1
- add r4, r4, r5, lsl #0x3
- add r3, r3, r5, lsl #0x3
- ldrh r5, [r6, r4]
- ldr r7, [sp, #0x0]
- ldrh r3, [r6, r3]
- ldr r4, [sp, #0x4]
- add r5, r7, r5, lsl #0xb
- add r3, r4, r3, lsl #0xb
- str r5, [sp, #0x0]
- str r3, [sp, #0x4]
-_020B58AC:
- ldr r5, [r0, #0x8]
- ldr r4, [sp, #0x4]
- add r3, sp, #0x0
- smull r8, r7, r5, r4
- cmp r3, r3
- ldr r6, [r0, #0x0]
- mov r4, #0x1000
- addeq r3, sp, #0x8
- adds r8, r8, r4
- ldr r5, [sp, #0x0]
- adc r7, r7, #0x0
- smlal r8, r7, r6, r5
- mov r5, r8, lsr #0xc
- orr r5, r5, r7, lsl #0x14
- str r5, [r3, #0x0]
- ldr r7, [r0, #0xc]
- ldr r6, [sp, #0x4]
- ldr r5, [r0, #0x4]
- smull r8, r6, r7, r6
- adds r7, r8, r4
- ldr r4, [sp, #0x0]
- adc r6, r6, #0x0
- smlal r7, r6, r5, r4
- mov r5, r7, lsr #0xc
- add r4, sp, #0x8
- orr r5, r5, r6, lsl #0x14
- str r5, [r3, #0x4]
- cmp r3, r4
- ldreq r3, [sp, #0xc]
- ldreq r4, [sp, #0x8]
- streq r3, [sp, #0x4]
- ldr r3, _020B5AAC ; =UNK_021CED14
- streq r4, [sp, #0x0]
- ldr r3, [r3, #0x0]
- ldr r3, [r3, #0x4]
- cmp r3, #0x0
- beq _020B597C
- cmp r3, #0x2
- moveq r5, #0x300
- movne r5, #0x100
- cmp r5, #0x100
- ldreq r4, [r1, #0x0]
- ldreq r3, _020B5AB0 ; =0xC1FFFCFF
- andeq r3, r4, r3
- orreq r3, r3, r5
- streq r3, [r1, #0x0]
- beq _020B597C
- ldr r4, [r1, #0x0]
- ldr r3, _020B5AB0 ; =0xC1FFFCFF
- and r3, r4, r3
- orr r3, r3, r5
- str r3, [r1, #0x0]
-_020B597C:
- ldr r6, [r1, #0x0]
- and r5, r6, #0x300
- cmp r5, #0x100
- beq _020B599C
- cmp r5, #0x300
- beq _020B599C
- and r3, r6, #0x30000000
- orr r5, r5, r3
-_020B599C:
- ldr r3, _020B5AA0 ; =0xC000C000
- ldr r4, _020B5AA4 ; =UNK_020FF8AC
- and r3, r6, r3
- and r6, r3, #0xc0000000
- and r3, r3, #0xc000
- mov lr, r3, asr #0xe
- mov r6, r6, lsr #0x1e
- mov r3, r6, lsl #0x1
- add r4, r4, lr, lsl #0x3
- ldrh r4, [r3, r4]
- ldr r6, [r0, #0x0]
- ldr r8, _020B5AA8 ; =UNK_020FF894
- mov r12, r4, asr #0x1
- mov r4, r12, lsl #0xc
- rsb r7, r4, #0x0
- mla r7, r6, r12, r7
- add lr, r8, lr, lsl #0x3
- ldrh r3, [r3, lr]
- ldr r6, [r0, #0x8]
- ldr lr, [sp, #0x0]
- mov r3, r3, asr #0x1
- mla r7, r6, r3, r7
- add r6, lr, r7
- str r6, [sp, #0x0]
- mov lr, r3, lsl #0xc
- ldr r6, [r0, #0x4]
- rsb r7, lr, #0x0
- mla r7, r6, r12, r7
- ldr r0, [r0, #0xc]
- ldr r6, [sp, #0x4]
- mla r3, r0, r3, r7
- add r0, r6, r3
- str r0, [sp, #0x4]
- cmp r5, #0x300
- moveq r0, #0x1
- movne r0, #0x0
- cmp r0, #0x0
- beq _020B5A4C
- ldr r3, [sp, #0x0]
- ldr r0, [sp, #0x4]
- sub r3, r3, r4
- sub r0, r0, lr
- str r3, [sp, #0x0]
- str r0, [sp, #0x4]
-_020B5A4C:
- ldr r4, [sp, #0x0]
- ldr r0, [r2, #0x0]
- ldr r3, [sp, #0x4]
- add r5, r4, r0
- str r5, [sp, #0x0]
- ldr r2, [r2, #0x4]
- ldr r0, _020B5AB4 ; =0x000001FF
- add r2, r3, r2
- str r2, [sp, #0x4]
- mov r3, r2, asr #0xc
- ldr r4, [r1, #0x0]
- ldr r2, _020B5AB8 ; =0xFE00FF00
- and r3, r3, #0xff
- and r2, r4, r2
- and r4, r0, r5, asr #0xc
- orr r0, r2, r3
- orr r0, r0, r4, lsl #0x10
- str r0, [r1, #0x0]
- add sp, sp, #0x10
- ldmia sp!, {r4-r8,pc}
- .balign 4
-_020B5A9C: .word 0x01FF0000
-_020B5AA0: .word 0xC000C000
-_020B5AA4: .word UNK_020FF8AC
-_020B5AA8: .word UNK_020FF894
-_020B5AAC: .word UNK_021CED14
-_020B5AB0: .word 0xC1FFFCFF
-_020B5AB4: .word 0x000001FF
-_020B5AB8: .word 0xFE00FF00
-
- arm_func_start FUN_020B5ABC
-FUN_020B5ABC: ; 0x020B5ABC
- stmdb sp!, {r4-r9,lr}
- sub sp, sp, #0xc
- add r5, sp, #0x0
- mov r4, #0x0
- str r4, [r5, #0x0]
- str r4, [r5, #0x4]
- mov r8, r2
- ldr r2, [sp, #0x28]
- mov r5, r0
- mov r9, r1
- mov r4, r3
- cmp r2, #0x0
- mov r7, #0x1
- beq _020B5B24
- add r6, sp, #0x28
-_020B5AF8:
- mov r0, r9
- mov r1, r8
- mov r3, r6
- bl FUN_020B5BC8
- ldr r1, [sp, #0x0]
- ldr r2, [sp, #0x28]
- cmp r0, r1
- strgt r0, [sp, #0x0]
- add r7, r7, #0x1
- cmp r2, #0x0
- bne _020B5AF8
-_020B5B24:
- ldr r0, [r9, #0x0]
- sub r2, r7, #0x1
- ldrsb r1, [r0, #0x1]
- ldr r0, [sp, #0x0]
- add r1, r4, r1
- mul r1, r2, r1
- sub r1, r1, r4
- str r1, [sp, #0x4]
- str r0, [r5, #0x0]
- str r1, [r5, #0x4]
- add sp, sp, #0xc
- ldmia sp!, {r4-r9,pc}
-
- arm_func_start FUN_020B5B54
-FUN_020B5B54: ; 0x020B5B54
- stmdb sp!, {r4-r8,lr}
- sub sp, sp, #0x10
- str r2, [sp, #0x0]
- add r3, sp, #0x4
- mov r2, #0x0
- str r2, [r3, #0x0]
- mov r8, r0
- str r2, [r3, #0x4]
- ldr r7, [r8, #0x4]
- add r0, sp, #0x0
- mov r5, r1
- mov r4, #0x1
- blx r7
- cmp r0, #0x0
- beq _020B5BAC
- add r6, sp, #0x0
-_020B5B94:
- cmp r0, #0xa
- mov r0, r6
- addeq r4, r4, #0x1
- blx r7
- cmp r0, #0x0
- bne _020B5B94
-_020B5BAC:
- ldr r0, [r8, #0x0]
- ldrsb r0, [r0, #0x1]
- add r0, r5, r0
- mul r0, r4, r0
- sub r0, r0, r5
- add sp, sp, #0x10
- ldmia sp!, {r4-r8,pc}
-
- arm_func_start FUN_020B5BC8
-FUN_020B5BC8:
- stmdb sp!, {r4-r10,lr}
- sub sp, sp, #0x8
- mov r8, r0
- str r2, [sp, #0x0]
- ldr r4, [r8, #0x4]
- add r0, sp, #0x0
- mov r7, r1
- mov r6, r3
- mov r5, #0x0
- blx r4
- movs r1, r0
- beq _020B5C58
- ldr sb, _020B5C84 ; =0x0000FFFF
- add r10, sp, #0x0
-_020B5C00:
- cmp r1, #0xa
- beq _020B5C58
- mov r0, r8
- bl FUN_020B5CE4
- mov r1, r0
- cmp r1, r9
- ldreq r0, [r8, #0x0]
- ldreqh r1, [r0, #0x2]
- mov r0, r8
- bl FUN_020B5C88
- ldrh r1, [r8, #0x8]
- cmp r1, #0x0
- ldrnesb r1, [r0, #0x0]
- ldrneb r0, [r0, #0x1]
- addne r0, r1, r0
- ldreqsb r0, [r0, #0x2]
- add r1, r7, r0
- mov r0, r10
- add r5, r5, r1
- blx r4
- movs r1, r0
- bne _020B5C00
-_020B5C58:
- cmp r6, #0x0
- beq _020B5C70
- cmp r1, #0xa
- ldreq r0, [sp, #0x0]
- movne r0, #0x0
- str r0, [r6, #0x0]
-_020B5C70:
- cmp r5, #0x0
- subgt r5, r5, r7
- mov r0, r5
- add sp, sp, #0x8
- ldmia sp!, {r4-r10,pc}
- .balign 4
-_020B5C84: .word 0x0000FFFF
-
- arm_func_start FUN_020B5C88
-FUN_020B5C88: ; 0x020B5C88
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r3, [r0, #0x0]
- ldr lr, [r3, #0xc]
- cmp lr, #0x0
- beq _020B5CD8
-_020B5CA0:
- ldrh r12, [lr, #0x0]
- cmp r12, r1
- bhi _020B5CCC
- ldrh r2, [lr, #0x2]
- cmp r1, r2
- ldrlsh r2, [r0, #0xa]
- addls r3, lr, #0x8
- subls r0, r1, r12
- mlals r0, r2, r0, r3
- addls sp, sp, #0x4
- ldmlsia sp!, {pc}
-_020B5CCC:
- ldr lr, [lr, #0x4]
- cmp lr, #0x0
- bne _020B5CA0
-_020B5CD8:
- add r0, r3, #0x4
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020B5CE4
-FUN_020B5CE4: ; 0x020B5CE4
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r0, [r0, #0x0]
- ldr r0, [r0, #0x10]
- cmp r0, #0x0
- beq _020B5D2C
-_020B5CFC:
- ldrh r2, [r0, #0x0]
- cmp r2, r1
- bhi _020B5D20
- ldrh r2, [r0, #0x2]
- cmp r1, r2
- bhi _020B5D20
- bl FUN_020B5D7C
- add sp, sp, #0x4
- ldmia sp!, {pc}
-_020B5D20:
- ldr r0, [r0, #0x8]
- cmp r0, #0x0
- bne _020B5CFC
-_020B5D2C:
- ldr r0, _020B5D38 ; =0x0000FFFF
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020B5D38: .word 0x0000FFFF
-
- arm_func_start FUN_020B5D3C
-FUN_020B5D3C: ; 0x020B5D3C
- stmdb sp!, {r4,lr}
- mov r4, r0
- mov r0, r1
- mov r1, r4
- bl FUN_020B7558
- sub r0, r0, #0x1
- strh r0, [r4, #0x8]
- ldrh r0, [r4, #0x8]
- cmp r0, #0x0
- movne r1, #0x2
- moveq r1, #0x3
- ldr r0, _020B5D78 ; =FUN_020B7718
- strh r1, [r4, #0xa]
- str r0, [r4, #0x4]
- ldmia sp!, {r4,pc}
- .balign 4
-_020B5D78: .word FUN_020B7718
-
- arm_func_start FUN_020B5D7C
-FUN_020B5D7C: ; 0x020B5D7C
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldrh r3, [r0, #0x4]
- ldr r2, _020B5E4C ; =0x0000FFFF
- cmp r3, #0x0
- beq _020B5DA8
- cmp r3, #0x1
- beq _020B5DC4
- cmp r3, #0x2
- beq _020B5DD8
- b _020B5E40
-_020B5DA8:
- ldrh r2, [r0, #0x0]
- ldrh r3, [r0, #0xc]
- sub r0, r1, r2
- add r0, r3, r0
- mov r0, r0, lsl #0x10
- mov r2, r0, lsr #0x10
- b _020B5E40
-_020B5DC4:
- ldrh r2, [r0, #0x0]
- sub r1, r1, r2
- add r0, r0, r1, lsl #0x1
- ldrh r2, [r0, #0xc]
- b _020B5E40
-_020B5DD8:
- ldrh r3, [r0, #0xc]
- add r0, r0, #0xc
- add r0, r0, #0x2
- sub r3, r3, #0x1
- add lr, r0, r3, lsl #0x2
- cmp r0, lr
- bhi _020B5E40
-_020B5DF4:
- sub r12, lr, r0
- mov r3, r12, asr #0x1
- add r3, r12, r3, lsr #0x1e
- mov r3, r3, asr #0x2
- add r3, r3, r3, lsr #0x1f
- mov r12, r3, asr #0x1
- mov r3, r12, lsl #0x2
- ldrh r3, [r0, r3]
- add r12, r0, r12, lsl #0x2
- cmp r3, r1
- addcc r0, r12, #0x4
- blo _020B5E38
- cmp r1, r3
- subcc lr, r12, #0x4
- blo _020B5E38
- ldrh r2, [r12, #0x2]
- b _020B5E40
-_020B5E38:
- cmp r0, lr
- bls _020B5DF4
-_020B5E40:
- mov r0, r2
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020B5E4C: .word 0x0000FFFF
-
- arm_func_start FUN_020B5E50
-FUN_020B5E50: ; 0x020B5E50
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x3c
- mov r7, r0
- mov r0, r1
- cmp r0, #0x8
- ldr r0, [sp, #0x60]
- str r1, [sp, #0x10]
- str r0, [sp, #0x60]
- ldr r0, [sp, #0x6c]
- str r2, [sp, #0x14]
- str r0, [sp, #0x6c]
- ldrlt r0, [sp, #0x10]
- mov r11, r3
- ldr r6, [sp, #0x64]
- ldr r5, [sp, #0x68]
- movge r2, #0x3
- clzlt r0, r0
- rsblt r2, r0, #0x1f
- ldr r0, [sp, #0x14]
- cmp r0, #0x8
- ldrlt r0, [sp, #0x14]
- movge r1, #0x3
- clzlt r0, r0
- rsblt r1, r0, #0x1f
- ldr r0, _020B6170 ; =UNK_020FF970
- mvn r3, #0x0
- add r1, r0, r1, lsl #0x3
- add r0, r1, r2, lsl #0x1
- ldrb r4, [r1, r2, lsl #0x1]
- ldrb r1, [r0, #0x1]
- ldr r2, [sp, #0x14]
- cmp r6, #0x0
- str r1, [sp, #0x18]
- ldr r1, [sp, #0x10]
- and r1, r1, r3, lsl r4
- str r1, [sp, #0x1c]
- ldr r1, [sp, #0x18]
- and r1, r2, r3, lsl r1
- str r1, [sp, #0x20]
- moveq r1, #0x1
- streq r1, [sp, #0x24]
- movne r1, #0x2
- strne r1, [sp, #0x24]
- mov r1, #0x0
- str r1, [sp, #0x28]
- bl FUN_020B704C
- ldr r1, [sp, #0x10]
- ldr r2, [sp, #0x14]
- mov r10, r1, asr r4
- ldr r1, [sp, #0x18]
- mov r1, r2, asr r1
- str r1, [sp, #0x2c]
- ldr r1, [sp, #0x24]
- mov r2, r1, lsl r4
- ldr r1, [sp, #0x18]
- mov r2, r2, lsl r1
- ldr r1, [sp, #0x6c]
- mov r9, r2, asr r1
- mov r1, #0x0
- str r1, [sp, #0x30]
- str r1, [sp, #0x34]
- b _020B5FE8
-_020B5F48:
- ldr r2, [sp, #0x30]
- ldr r1, [sp, #0x18]
- ldr r8, [sp, #0x34]
- mov r2, r2, lsl r1
- ldr r1, [sp, #0x60]
- add lr, r1, r2, lsl #0x3
- b _020B5FD4
-_020B5F64:
- mov r1, r8, lsl r4
- add r2, r11, r1, lsl #0x3
- ldr r1, _020B6174 ; =0x000001FF
- ldr r3, [r7, #0x0]
- and r12, r2, r1
- ldr r1, _020B6178 ; =0xFE00FF00
- and r2, lr, #0xff
- and r1, r3, r1
- orr r1, r1, r2
- orr r1, r1, r12, lsl #0x10
- str r1, [r7, #0x0]
- ldr r3, [r7, #0x0]
- ldr r1, _020B617C ; =0x3FFF3FFF
- mov r2, #0x400
- and r1, r3, r1
- orr r1, r1, r0
- str r1, [r7, #0x0]
- rsb r1, r2, #0x0
- ldrh r2, [r7, #0x4]
- add r8, r8, #0x1
- and r1, r2, r1
- orr r1, r1, r5
- strh r1, [r7, #0x4]
- ldr r1, [r7, #0x0]
- add r5, r5, r9
- bic r1, r1, #0x2000
- orr r1, r1, r6, lsl #0xd
- str r1, [r7], #0x8
-_020B5FD4:
- cmp r8, r10
- blt _020B5F64
- ldr r1, [sp, #0x30]
- add r1, r1, #0x1
- str r1, [sp, #0x30]
-_020B5FE8:
- ldr r2, [sp, #0x30]
- ldr r1, [sp, #0x2c]
- cmp r2, r1
- blt _020B5F48
- ldr r0, [sp, #0x28]
- mla r0, r10, r1, r0
- str r0, [sp, #0x28]
- ldr r1, [sp, #0x1c]
- ldr r0, [sp, #0x10]
- cmp r1, r0
- bhs _020B6078
- ldr r0, [sp, #0x60]
- ldr r1, [sp, #0x10]
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x1c]
- str r6, [sp, #0x4]
- sub r4, r1, r0
- ldr r1, [sp, #0x6c]
- str r5, [sp, #0x8]
- str r1, [sp, #0xc]
- ldr r1, [sp, #0x1c]
- ldr r2, [sp, #0x20]
- add r3, r11, r1, lsl #0x3
- mov r0, r7
- mov r1, r4
- bl FUN_020B5E50
- ldr r1, [sp, #0x24]
- add r7, r7, r0, lsl #0x3
- mul r2, r1, r4
- ldr r1, [sp, #0x20]
- mul r2, r1, r2
- ldr r1, [sp, #0x6c]
- add r5, r5, r2, lsr r1
- ldr r1, [sp, #0x28]
- add r0, r1, r0
- str r0, [sp, #0x28]
-_020B6078:
- ldr r1, [sp, #0x20]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- bhs _020B60F0
- ldr r1, [sp, #0x60]
- ldr r0, [sp, #0x20]
- mov r3, r11
- add r0, r1, r0, lsl #0x3
- str r0, [sp, #0x0]
- str r6, [sp, #0x4]
- ldr r1, [sp, #0x14]
- ldr r0, [sp, #0x20]
- str r5, [sp, #0x8]
- sub r4, r1, r0
- ldr r1, [sp, #0x6c]
- mov r0, r7
- str r1, [sp, #0xc]
- ldr r1, [sp, #0x1c]
- mov r2, r4
- bl FUN_020B5E50
- ldr r2, [sp, #0x24]
- ldr r1, [sp, #0x1c]
- add r7, r7, r0, lsl #0x3
- mul r1, r2, r1
- mul r2, r4, r1
- ldr r1, [sp, #0x6c]
- add r5, r5, r2, lsr r1
- ldr r1, [sp, #0x28]
- add r0, r1, r0
- str r0, [sp, #0x28]
-_020B60F0:
- ldr r1, [sp, #0x1c]
- ldr r0, [sp, #0x10]
- cmp r1, r0
- bhs _020B6164
- ldr r1, [sp, #0x20]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- bhs _020B6164
- ldr r1, [sp, #0x60]
- ldr r0, [sp, #0x20]
- ldr r2, [sp, #0x10]
- add r0, r1, r0, lsl #0x3
- ldr r1, [sp, #0x1c]
- ldr r3, [sp, #0x14]
- str r0, [sp, #0x0]
- sub r1, r2, r1
- ldr r2, [sp, #0x20]
- str r6, [sp, #0x4]
- sub r2, r3, r2
- ldr r3, [sp, #0x1c]
- ldr r4, [sp, #0x6c]
- str r5, [sp, #0x8]
- mov r0, r7
- add r3, r11, r3, lsl #0x3
- str r4, [sp, #0xc]
- bl FUN_020B5E50
- ldr r1, [sp, #0x28]
- add r0, r1, r0
- str r0, [sp, #0x28]
-_020B6164:
- ldr r0, [sp, #0x28]
- add sp, sp, #0x3c
- ldmia sp!, {r4-r11,pc}
- .balign 4
-_020B6170: .word UNK_020FF970
-_020B6174: .word 0x000001FF
-_020B6178: .word 0xFE00FF00
-_020B617C: .word 0x3FFF3FFF
-
- arm_func_start FUN_020B6180
-FUN_020B6180: ; 0x020B6180
- stmdb sp!, {r4-r6,lr}
- mov r3, r0, lsr #0x3
- mov r6, r1, lsr #0x3
- mul r12, r3, r6
- and r2, r0, #0x4
- and lr, r0, #0x2
- and r0, r0, #0x1
- add r4, r0, lr, lsr #0x1
- mov r5, r2, lsr #0x2
- and r0, r1, #0x4
- add lr, r12, #0x0
- add r12, r5, r4, lsl #0x1
- mla r12, r6, r12, lr
- and lr, r1, #0x2
- and r1, r1, #0x1
- add lr, r1, lr, lsr #0x1
- mov r1, r0, lsr #0x2
- add r1, r1, lr, lsl #0x1
- mla r12, r3, r1, r12
- add r1, r4, r2, lsr #0x2
- add r0, lr, r0, lsr #0x2
- mla r0, r1, r0, r12
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020B61DC
-FUN_020B61DC: ; 0x020B61DC
- stmdb sp!, {r4-r8,lr}
- ldr r12, [sp, #0x1c]
- ldr r8, [sp, #0x18]
- mov r12, r12, lsl #0x1c
- mov r4, r12, lsr #0x10
- mov r6, #0x0
- cmp r2, #0x0
- ldmleia sp!, {r4-r8,pc}
- mov lr, r3, lsl #0x1
- mov r12, r6
-_020B6204:
- mov r5, r0
- mov r7, r12
- cmp r1, #0x0
- ble _020B622C
-_020B6214:
- orr r3, r4, r8
- add r7, r7, #0x1
- cmp r7, r1
- add r8, r8, #0x1
- strh r3, [r5], #0x2
- blt _020B6214
-_020B622C:
- add r6, r6, #0x1
- cmp r6, r2
- add r0, r0, lr
- blt _020B6204
- ldmia sp!, {r4-r8,pc}
-
- arm_func_start FUN_020B6240
-FUN_020B6240: ; 0x020B6240
- stmdb sp!, {r4-r8,lr}
- sub sp, sp, #0x8
- ldr r5, [sp, #0x24]
- ldr lr, [sp, #0x20]
- cmp r5, #0x20
- ldr r12, [sp, #0x28]
- bgt _020B6280
- mla r4, r5, lr, r3
- ldr lr, [sp, #0x2c]
- str r12, [sp, #0x0]
- mov r3, r5
- add r0, r0, r4, lsl #0x1
- str lr, [sp, #0x4]
- bl FUN_020B61DC
- add sp, sp, #0x8
- ldmia sp!, {r4-r8,pc}
-_020B6280:
- ldr r4, [sp, #0x2c]
- add r7, lr, r2
- mov r2, r4, lsl #0x1c
- cmp lr, r7
- add r8, r3, r1
- mov r4, r2, lsr #0x10
- addge sp, sp, #0x8
- ldmgeia sp!, {r4-r8,pc}
-_020B62A0:
- cmp lr, #0x20
- movlt r1, lr
- addge r1, lr, #0x20
- mov r6, r3
- cmp r3, r8
- add r5, r0, r1, lsl #0x6
- bge _020B62E4
-_020B62BC:
- cmp r6, #0x20
- movlt r1, r6
- addge r1, r6, #0x3e0
- orr r2, r4, r12
- mov r1, r1, lsl #0x1
- add r6, r6, #0x1
- strh r2, [r5, r1]
- cmp r6, r8
- add r12, r12, #0x1
- blt _020B62BC
-_020B62E4:
- add lr, lr, #0x1
- cmp lr, r7
- blt _020B62A0
- add sp, sp, #0x8
- ldmia sp!, {r4-r8,pc}
-
- arm_func_start FUN_020B62F8
-FUN_020B62F8: ; 0x020B62F8
- stmdb sp!, {r4-r6,lr}
- sub sp, sp, #0x18
- cmp r2, #0x8
- movlt r4, r2
- movge r12, #0x3
- clzlt r4, r4
- rsblt r12, r4, #0x1f
- cmp r3, #0x8
- movlt r4, r3
- movge r6, #0x3
- clzlt r4, r4
- rsblt r6, r4, #0x1f
- ldr r4, _020B6378 ; =UNK_020FF970
- ldr r5, [sp, #0x28]
- add r4, r4, r6, lsl #0x3
- ldrb r6, [r4, r12, lsl #0x1]
- add r12, r4, r12, lsl #0x1
- ldr r4, _020B637C ; =FUN_020B6908
- strb r6, [sp, #0x14]
- ldrb r6, [r12, #0x1]
- ldr lr, _020B6380 ; =FUN_020B68AC
- ldr ip, _020B6384 ; =FUN_020B64C0
- strb r6, [sp, #0x15]
- str r5, [sp, #0x0]
- str r4, [sp, #0x4]
- str lr, [sp, #0x8]
- str r12, [sp, #0xc]
- ldr r12, [sp, #0x14]
- str r12, [sp, #0x10]
- bl FUN_020B6488
- add sp, sp, #0x18
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020B6378: .word UNK_020FF970
-_020B637C: .word FUN_020B6908
-_020B6380: .word FUN_020B68AC
-_020B6384: .word FUN_020B64C0
-
- arm_func_start FUN_020B6388
-FUN_020B6388: ; 0x020B6388
- stmdb sp!, {lr}
- sub sp, sp, #0x14
- ldr lr, [sp, #0x18]
- ldr ip, _020B63C0 ; =FUN_020B6B10
- str lr, [sp, #0x0]
- ldr lr, _020B63C4 ; =FUN_020B68AC
- str r12, [sp, #0x4]
- ldr ip, _020B63C8 ; =FUN_020B66D4
- str lr, [sp, #0x8]
- str r12, [sp, #0xc]
- str r2, [sp, #0x10]
- bl FUN_020B6488
- add sp, sp, #0x14
- ldmia sp!, {pc}
- .balign 4
-_020B63C0: .word FUN_020B6B10
-_020B63C4: .word FUN_020B68AC
-_020B63C8: .word FUN_020B66D4
-
- arm_func_start FUN_020B63CC
-FUN_020B63CC: ; 0x020B63CC
- stmdb sp!, {r4-r8,lr}
- sub sp, sp, #0x10
- mov r7, r1
- ldrh r1, [sp, #0x2c]
- mov r8, r0
- mov r0, r7
- mov r6, r2
- mov r5, r3
- bl FUN_020B5CE4
- ldr r1, _020B6484 ; =0x0000FFFF
- mov r4, r0
- cmp r4, r1
- ldreq r0, [r7, #0x0]
- ldreqh r4, [r0, #0x2]
- mov r0, r7
- mov r1, r4
- bl FUN_020B5C88
- str r0, [sp, #0x8]
- ldr r0, [r7, #0x0]
- ldr r2, [sp, #0x28]
- ldr r0, [r0, #0x8]
- add r1, sp, #0x8
- ldrh r3, [r0, #0x2]
- add r12, r0, #0x8
- mov r0, r8
- mla r3, r4, r3, r12
- str r3, [sp, #0xc]
- str r2, [sp, #0x0]
- str r1, [sp, #0x4]
- ldr r1, [sp, #0x8]
- ldr r4, [r8, #0x14]
- ldrsb r2, [r1, #0x0]
- mov r1, r7
- mov r3, r5
- add r2, r6, r2
- blx r4
- ldrh r0, [r7, #0x8]
- cmp r0, #0x0
- ldrne r0, [sp, #0x8]
- ldrnesb r1, [r0, #0x0]
- ldrneb r0, [r0, #0x1]
- addne r0, r1, r0
- ldreq r0, [sp, #0x8]
- ldreqsb r0, [r0, #0x2]
- add sp, sp, #0x10
- ldmia sp!, {r4-r8,pc}
- .balign 4
-_020B6484: .word 0x0000FFFF
-
- arm_func_start FUN_020B6488
-FUN_020B6488: ; 0x020B6488
- str r2, [r0, #0x4]
- ldr r2, [sp, #0x0]
- str r3, [r0, #0x8]
- strb r2, [r0, #0xc]
- ldr r2, [sp, #0x4]
- str r1, [r0, #0x0]
- ldr r1, [sp, #0x8]
- str r2, [r0, #0x14]
- ldr r2, [sp, #0xc]
- str r1, [r0, #0x18]
- ldr r1, [sp, #0x10]
- str r2, [r0, #0x1c]
- str r1, [r0, #0x10]
- bx lr
-
- arm_func_start FUN_020B64C0
-FUN_020B64C0: ; 0x020B64C0
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x54
- ldrb r4, [r0, #0xc]
- mov r10, r2
- str r1, [sp, #0xc]
- str r4, [sp, #0x44]
- ldr r1, [sp, #0x44]
- ldr r4, [sp, #0x78]
- cmp r1, #0x4
- add r1, r10, r4
- str r1, [sp, #0x1c]
- ldr r2, [sp, #0x7c]
- mov r1, r3
- add r1, r1, r2
- str r1, [sp, #0x20]
- ldrne r1, [sp, #0xc]
- str r3, [sp, #0x10]
- orrne r1, r1, r1, lsl #0x8
- orrne r1, r1, r1, lsl #0x10
- strne r1, [sp, #0xc]
- bne _020B6528
- ldr r1, [sp, #0xc]
- orr r1, r1, r1, lsl #0x4
- orr r1, r1, r1, lsl #0x8
- orr r1, r1, r1, lsl #0x10
- str r1, [sp, #0xc]
-_020B6528:
- bic r1, r10, #0x7
- str r1, [sp, #0x30]
- ldr r1, [sp, #0x10]
- ldr r2, [r0, #0x10]
- bic r1, r1, #0x7
- str r1, [sp, #0x14]
- ldr r1, [sp, #0x44]
- str r2, [sp, #0x4c]
- mov r3, r1, lsl #0x6
- mov r2, r3, asr #0x2
- ldr r1, [sp, #0x20]
- add r3, r3, r2, lsr #0x1d
- ldr r2, [sp, #0x1c]
- add r6, r1, #0x7
- add r2, r2, #0x7
- bic r5, r2, #0x7
- bic r2, r6, #0x7
- ldr r1, [sp, #0x30]
- str r2, [sp, #0x24]
- mov r2, r3, asr #0x3
- str r2, [sp, #0x48]
- mov r4, r1, asr #0x2
- ldr r2, [sp, #0x30]
- ldr r1, [sp, #0x14]
- add r2, r2, r4, lsr #0x1d
- mov r2, r2, asr #0x3
- str r2, [sp, #0x2c]
- ldr r2, [sp, #0x14]
- mov r1, r1, asr #0x2
- add r1, r2, r1, lsr #0x1d
- mov r6, r1, asr #0x3
- ldr r1, [sp, #0x24]
- cmp r2, r1
- ldr r1, [r0, #0x4]
- str r1, [sp, #0x40]
- ldr r1, [r0, #0x8]
- ldr r0, [r0, #0x0]
- str r1, [sp, #0x3c]
- str r0, [sp, #0x28]
- ldrb r0, [sp, #0x4c]
- str r0, [sp, #0x38]
- ldrb r0, [sp, #0x4d]
- str r0, [sp, #0x34]
- addge sp, sp, #0x54
- ldmgeia sp!, {r4-r11,pc}
- mov r4, #0x0
- mov r11, #0x8
-_020B65E4:
- ldr r1, [sp, #0x14]
- ldr r0, [sp, #0x10]
- ldr r7, [sp, #0x2c]
- cmp r1, r0
- movlt r1, r0
- ldrlt r0, [sp, #0x14]
- sublt r9, r1, r0
- ldr r1, [sp, #0x20]
- ldr r0, [sp, #0x14]
- movge r9, r4
- sub r0, r1, r0
- cmp r0, #0x8
- movgt r0, r11
- sub r0, r0, r9
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x30]
- cmp r0, r5
- mov r8, r0
- bge _020B66B0
-_020B6630:
- ldr r0, [sp, #0x38]
- ldr r2, [sp, #0x40]
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x34]
- ldr r3, [sp, #0x3c]
- str r0, [sp, #0x4]
- mov r0, r7
- mov r1, r6
- bl FUN_020B7068
- ldr r2, [sp, #0x1c]
- cmp r8, r10
- sublt r1, r10, r8
- sub r2, r2, r8
- movge r1, r4
- cmp r2, #0x8
- movgt r2, r11
- sub r3, r2, r1
- ldr r2, [sp, #0x18]
- ldr r12, [sp, #0x48]
- str r2, [sp, #0x0]
- ldr r2, [sp, #0xc]
- str r2, [sp, #0x4]
- ldr r2, [sp, #0x44]
- str r2, [sp, #0x8]
- ldr r2, [sp, #0x28]
- mla r0, r12, r0, r2
- mov r2, r9
- bl FUN_020B6F18
- add r8, r8, #0x8
- add r7, r7, #0x1
- cmp r8, r5
- blt _020B6630
-_020B66B0:
- ldr r0, [sp, #0x14]
- add r6, r6, #0x1
- add r1, r0, #0x8
- ldr r0, [sp, #0x24]
- str r1, [sp, #0x14]
- cmp r1, r0
- blt _020B65E4
- add sp, sp, #0x54
- ldmia sp!, {r4-r11,pc}
-
- arm_func_start FUN_020B66D4
-FUN_020B66D4: ; 0x020B66D4
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x3c
- ldrb r4, [r0, #0xc]
- mov r10, r2
- str r1, [sp, #0xc]
- str r4, [sp, #0x2c]
- ldr r1, [sp, #0x2c]
- ldr r4, [sp, #0x60]
- cmp r1, #0x4
- add r1, r10, r4
- str r1, [sp, #0x18]
- ldr r2, [sp, #0x64]
- mov r1, r3
- add r1, r1, r2
- str r1, [sp, #0x1c]
- ldrne r1, [sp, #0xc]
- str r3, [sp, #0x10]
- orrne r1, r1, r1, lsl #0x8
- orrne r1, r1, r1, lsl #0x10
- strne r1, [sp, #0xc]
- bne _020B673C
- ldr r1, [sp, #0xc]
- orr r1, r1, r1, lsl #0x4
- orr r1, r1, r1, lsl #0x8
- orr r1, r1, r1, lsl #0x10
- str r1, [sp, #0xc]
-_020B673C:
- ldr r1, [sp, #0x10]
- bic r1, r1, #0x7
- mov r2, r1, asr #0x2
- str r1, [sp, #0x14]
- add r1, r1, r2, lsr #0x1d
- ldr r2, [r0, #0x10]
- mov r3, r1, asr #0x3
- mul r1, r3, r2
- bic r3, r10, #0x7
- str r3, [sp, #0x28]
- ldr r3, [sp, #0x2c]
- mov r6, r3, lsl #0x6
- ldr r3, [sp, #0x28]
- mov r4, r6, asr #0x2
- mov r5, r3, asr #0x2
- add r5, r3, r5, lsr #0x1d
- add r4, r6, r4, lsr #0x1d
- mov r3, r4, asr #0x3
- str r3, [sp, #0x30]
- ldr r3, [sp, #0x1c]
- add r1, r1, r5, asr #0x3
- add r4, r3, #0x7
- ldr r3, [r0, #0x0]
- ldr r0, [sp, #0x18]
- add r5, r0, #0x7
- ldr r0, [sp, #0x30]
- bic r7, r5, #0x7
- mla r1, r0, r1, r3
- bic r0, r4, #0x7
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x30]
- str r1, [sp, #0x24]
- mul r0, r2, r0
- str r0, [sp, #0x34]
- ldr r1, [sp, #0x14]
- ldr r0, [sp, #0x20]
- cmp r1, r0
- addge sp, sp, #0x3c
- ldmgeia sp!, {r4-r11,pc}
- mov r5, #0x0
- mov r4, #0x8
-_020B67E0:
- ldr r1, [sp, #0x14]
- ldr r0, [sp, #0x10]
- ldr r6, [sp, #0x24]
- cmp r1, r0
- movlt r1, r0
- ldrlt r0, [sp, #0x14]
- sublt r9, r1, r0
- ldr r1, [sp, #0x1c]
- ldr r0, [sp, #0x14]
- movge r9, r5
- sub r0, r1, r0
- cmp r0, #0x8
- movgt r0, r4
- sub r11, r0, r9
- ldr r0, [sp, #0x28]
- cmp r0, r7
- mov r8, r0
- bge _020B687C
-_020B6828:
- ldr r0, [sp, #0x18]
- cmp r8, r10
- sublt r1, r10, r8
- sub r0, r0, r8
- movge r1, r5
- cmp r0, #0x8
- movgt r0, r4
- sub r3, r0, r1
- ldr r0, [sp, #0xc]
- str r11, [sp, #0x0]
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x2c]
- mov r2, r9
- str r0, [sp, #0x8]
- mov r0, r6
- bl FUN_020B6F18
- ldr r0, [sp, #0x30]
- add r8, r8, #0x8
- add r6, r6, r0
- cmp r8, r7
- blt _020B6828
-_020B687C:
- ldr r1, [sp, #0x24]
- ldr r0, [sp, #0x34]
- add r0, r1, r0
- str r0, [sp, #0x24]
- ldr r0, [sp, #0x14]
- add r1, r0, #0x8
- ldr r0, [sp, #0x20]
- str r1, [sp, #0x14]
- cmp r1, r0
- blt _020B67E0
- add sp, sp, #0x3c
- ldmia sp!, {r4-r11,pc}
-
- arm_func_start FUN_020B68AC
-FUN_020B68AC: ; 0x020B68AC
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r3, r0
- ldrb r2, [r3, #0xc]
- ldr r12, [r3, #0x4]
- cmp r2, #0x4
- orreq r0, r1, r1, lsl #0x4
- orreq r0, r0, r0, lsl #0x8
- orreq r1, r0, r0, lsl #0x10
- orrne r0, r1, r1, lsl #0x8
- orrne r1, r0, r0, lsl #0x10
- ldr r0, [r3, #0x8]
- mov r2, r2, lsl #0x6
- mul lr, r12, r0
- mov r0, r2, asr #0x2
- add r0, r2, r0, lsr #0x1d
- mov r2, r0, asr #0x3
- mov r0, r1
- mul r2, lr, r2
- ldr r1, [r3, #0x0]
- bl MIi_CpuClearFast
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020B6908
-FUN_020B6908: ; 0x020B6908
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x4c
- ldr r7, [sp, #0x74]
- ldrb r5, [r0, #0xc]
- ldr r6, [r1, #0x0]
- ldr r4, [r7, #0x0]
- ldr r9, [r6, #0x8]
- mov r8, r5, lsl #0x6
- ldrb r4, [r4, #0x1]
- mov r5, r8, asr #0x2
- add r5, r8, r5, lsr #0x1d
- ldrb r9, [r9, #0x1]
- ldr r8, [r0, #0x4]
- ldr r6, [r0, #0x8]
- str r2, [sp, #0x8]
- str r3, [sp, #0xc]
- cmp r4, #0x0
- mov r5, r5, asr #0x3
- addeq sp, sp, #0x4c
- ldmeqia sp!, {r4-r11,pc}
- adds r3, r2, r4
- addmi sp, sp, #0x4c
- ldmmiia sp!, {r4-r11,pc}
- ldr r2, [sp, #0xc]
- adds r2, r2, r9
- addmi sp, sp, #0x4c
- ldmmiia sp!, {r4-r11,pc}
- ldr r10, [sp, #0x8]
- add r3, r3, #0x7
- cmp r10, #0x0
- movle r10, #0x0
- strle r10, [sp, #0x10]
- movgt r10, r10, lsr #0x3
- strgt r10, [sp, #0x10]
- ldr r10, [sp, #0xc]
- add r2, r2, #0x7
- cmp r10, #0x0
- movle r10, #0x0
- mov r11, r2, lsr #0x3
- mov r3, r3, lsr #0x3
- movgt r10, r10, lsr #0x3
- cmp r3, r8
- movcs r3, r8
- cmp r11, r6
- ldr r2, [sp, #0x10]
- movcs r11, r6
- subs r8, r3, r2
- addmi sp, sp, #0x4c
- sub r3, r11, r10
- ldmmiia sp!, {r4-r11,pc}
- cmp r3, #0x0
- addlt sp, sp, #0x4c
- ldmltia sp!, {r4-r11,pc}
- ldr r2, [sp, #0x8]
- ldr r6, [r0, #0x0]
- cmp r2, #0x0
- andge r2, r2, #0x7
- strge r2, [sp, #0x8]
- ldr r2, [sp, #0xc]
- ldr r11, [sp, #0x8]
- cmp r2, #0x0
- andge r2, r2, #0x7
- strge r2, [sp, #0xc]
- sub r8, r11, r8, lsl #0x3
- ldr r11, [sp, #0xc]
- ldr r2, [sp, #0x70]
- sub r3, r11, r3, lsl #0x3
- str r3, [sp, #0x14]
- ldr r3, [r7, #0x4]
- sub r2, r2, #0x1
- str r3, [sp, #0x28]
- str r2, [sp, #0x48]
- str r9, [sp, #0x38]
- str r4, [sp, #0x34]
- ldr r4, [r1, #0x0]
- ldr r2, [sp, #0x14]
- mov r3, r11
- cmp r3, r2
- ldr r2, [r4, #0x8]
- ldrb r3, [r2, #0x6]
- str r3, [sp, #0x40]
- ldrb r2, [r0, #0xc]
- str r2, [sp, #0x44]
- ldr r1, [r1, #0x0]
- ldr r1, [r1, #0x8]
- ldrb r1, [r1, #0x0]
- mul r1, r3, r1
- str r1, [sp, #0x3c]
- ldr r1, [r0, #0x10]
- str r1, [sp, #0x20]
- ldr r1, [r0, #0x4]
- ldr r0, [r0, #0x8]
- ldrb r11, [sp, #0x20]
- ldrb r4, [sp, #0x21]
- str r1, [sp, #0x1c]
- str r0, [sp, #0x18]
- addle sp, sp, #0x4c
- ldmleia sp!, {r4-r11,pc}
-_020B6A90:
- ldr r0, [sp, #0xc]
- ldr r7, [sp, #0x10]
- str r0, [sp, #0x30]
- ldr r0, [sp, #0x8]
- cmp r0, r8
- mov r9, r0
- ble _020B6AEC
-_020B6AAC:
- ldr r2, [sp, #0x1c]
- str r11, [sp, #0x0]
- ldr r3, [sp, #0x18]
- mov r0, r7
- mov r1, r10
- str r4, [sp, #0x4]
- bl FUN_020B7068
- mla r1, r0, r5, r6
- add r0, sp, #0x24
- str r9, [sp, #0x2c]
- str r1, [sp, #0x24]
- bl FUN_020B6CAC
- sub r9, r9, #0x8
- add r7, r7, #0x1
- cmp r9, r8
- bgt _020B6AAC
-_020B6AEC:
- ldr r0, [sp, #0xc]
- add r10, r10, #0x1
- sub r1, r0, #0x8
- ldr r0, [sp, #0x14]
- str r1, [sp, #0xc]
- cmp r1, r0
- bgt _020B6A90
- add sp, sp, #0x4c
- ldmia sp!, {r4-r11,pc}
-
- arm_func_start FUN_020B6B10
-FUN_020B6B10: ; 0x020B6B10
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x2c
- ldr r4, [sp, #0x54]
- ldrb r5, [r0, #0xc]
- str r4, [sp, #0x54]
- ldr r4, [r4, #0x0]
- ldr r6, [r1, #0x0]
- mov r7, r5, lsl #0x6
- ldrb r4, [r4, #0x1]
- mov r5, r7, asr #0x2
- add r5, r7, r5, lsr #0x1d
- cmp r4, #0x0
- ldr r6, [r6, #0x8]
- mov r9, r3
- ldr r8, [r0, #0x4]
- ldr r7, [r0, #0x8]
- mov r10, r2
- mov r5, r5, asr #0x3
- addeq sp, sp, #0x2c
- ldr lr, [r0, #0x0]
- ldrb r3, [r6, #0x1]
- ldmeqia sp!, {r4-r11,pc}
- adds r6, r10, r4
- addmi sp, sp, #0x2c
- ldmmiia sp!, {r4-r11,pc}
- adds r2, r9, r3
- addmi sp, sp, #0x2c
- ldmmiia sp!, {r4-r11,pc}
- cmp r10, #0x0
- movle r11, #0x0
- add r6, r6, #0x7
- movgt r11, r10, lsr #0x3
- cmp r9, #0x0
- movle r12, #0x0
- add r2, r2, #0x7
- mov r6, r6, lsr #0x3
- movgt r12, r9, lsr #0x3
- cmp r6, r8
- movcs r6, r8
- mov r2, r2, lsr #0x3
- cmp r2, r7
- movcs r2, r7
- subs r7, r6, r11
- addmi sp, sp, #0x2c
- sub r2, r2, r12
- ldmmiia sp!, {r4-r11,pc}
- cmp r2, #0x0
- addlt sp, sp, #0x2c
- ldmltia sp!, {r4-r11,pc}
- ldr r6, [r0, #0x10]
- cmp r10, #0x0
- sub r8, r6, r7
- mul r8, r5, r8
- mla r11, r6, r12, r11
- andge r10, r10, #0x7
- str r8, [sp, #0x0]
- ldr r8, [sp, #0x54]
- mla r6, r5, r11, lr
- ldr r12, [r8, #0x4]
- ldr r11, [sp, #0x50]
- cmp r9, #0x0
- sub r8, r11, #0x1
- andge r9, r9, #0x7
- sub r11, r9, r2, lsl #0x3
- str r12, [sp, #0x8]
- str r4, [sp, #0x14]
- str r8, [sp, #0x28]
- str r3, [sp, #0x18]
- ldr r3, [r1, #0x0]
- cmp r9, r11
- ldr r2, [r3, #0x8]
- sub r7, r10, r7, lsl #0x3
- ldrb r2, [r2, #0x6]
- str r2, [sp, #0x20]
- ldrb r0, [r0, #0xc]
- str r0, [sp, #0x24]
- ldr r0, [r1, #0x0]
- ldr r0, [r0, #0x8]
- ldrb r0, [r0, #0x0]
- mul r0, r2, r0
- str r0, [sp, #0x1c]
- addle sp, sp, #0x2c
- ldmleia sp!, {r4-r11,pc}
- add r4, sp, #0x4
-_020B6C60:
- mov r8, r10
- str r9, [sp, #0x10]
- cmp r10, r7
- ble _020B6C90
-_020B6C70:
- mov r0, r4
- str r6, [sp, #0x4]
- str r8, [sp, #0xc]
- bl FUN_020B6CAC
- sub r8, r8, #0x8
- cmp r8, r7
- add r6, r6, r5
- bgt _020B6C70
-_020B6C90:
- ldr r0, [sp, #0x0]
- sub r9, r9, #0x8
- cmp r9, r11
- add r6, r6, r0
- bgt _020B6C60
- add sp, sp, #0x2c
- ldmia sp!, {r4-r11,pc}
-
- arm_func_start FUN_020B6CAC
-FUN_020B6CAC: ; 0x020B6CAC
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x34
- ldr r5, [r0, #0x8]
- ldr r4, [r0, #0xc]
- cmp r5, #0x0
- strge r5, [sp, #0x0]
- movlt r1, #0x0
- strlt r1, [sp, #0x0]
- ldr r1, [r0, #0x10]
- cmp r4, #0x0
- add r10, r5, r1
- ldr r1, [r0, #0x14]
- movge r2, r4
- movlt r2, #0x0
- cmp r10, #0x8
- add r3, r4, r1
- movge r10, #0x8
- cmp r3, #0x8
- movge r3, #0x8
- cmp r4, #0x0
- movgt r4, #0x0
- cmp r5, #0x0
- ldr r8, [r0, #0x20]
- movgt r5, #0x0
- rsb r1, r4, #0x0
- mul r7, r10, r8
- ldr r6, [r0, #0x1c]
- rsb r4, r5, #0x0
- mul r9, r6, r4
- ldr r4, [r0, #0x18]
- mov r10, r7
- str r4, [sp, #0x8]
- ldr r4, [sp, #0x0]
- cmp r8, #0x4
- mul r5, r4, r8
- ldr r4, [sp, #0x8]
- str r5, [sp, #0x0]
- mla r11, r1, r4, r9
- ldr r1, [r0, #0x4]
- str r1, [sp, #0x4]
- bne _020B6E24
- ldr r1, [r0, #0x0]
- ldr r7, [r0, #0x24]
- add r0, r1, r2, lsl #0x2
- str r0, [sp, #0xc]
- add r0, r1, r3, lsl #0x2
- ldr r1, [sp, #0xc]
- str r0, [sp, #0x10]
- cmp r1, r0
- addcs sp, sp, #0x34
- ldmcsia sp!, {r4-r11,pc}
- mov r0, #0x0
- add r9, sp, #0x24
- mov r4, #0xf
- str r0, [sp, #0x1c]
-_020B6D88:
- ldr r0, [sp, #0xc]
- mov r1, r11, lsr #0x1f
- ldr r5, [r0, #0x0]
- ldr r0, [sp, #0x4]
- rsb r2, r1, r11, lsl #0x1d
- add r0, r0, r11, lsr #0x3
- str r0, [sp, #0x24]
- ldr r0, [sp, #0x1c]
- add r1, r1, r2, ror #0x1d
- strb r0, [sp, #0x28]
- strb r0, [sp, #0x29]
- mov r0, r9
- bl FUN_020B76B0
- ldr r8, [sp, #0x0]
- mov r0, r8
- cmp r0, r10
- bhs _020B6DF8
-_020B6DCC:
- mov r0, r9
- mov r1, r6
- bl FUN_020B76B0
- cmp r0, #0x0
- mvnne r1, r4, lsl r8
- addne r0, r7, r0
- andne r1, r5, r1
- orrne r5, r1, r0, lsl r8
- add r8, r8, #0x4
- cmp r8, r10
- blo _020B6DCC
-_020B6DF8:
- ldr r0, [sp, #0xc]
- add r1, r0, #0x4
- str r5, [r0, #0x0]
- ldr r0, [sp, #0x10]
- str r1, [sp, #0xc]
- cmp r1, r0
- ldr r0, [sp, #0x8]
- add r11, r11, r0
- blo _020B6D88
- add sp, sp, #0x34
- ldmia sp!, {r4-r11,pc}
-_020B6E24:
- ldr r1, [r0, #0x0]
- ldr r9, [r0, #0x24]
- add r0, r1, r2, lsl #0x3
- str r0, [sp, #0x14]
- add r0, r1, r3, lsl #0x3
- ldr r1, [sp, #0x14]
- str r0, [sp, #0x18]
- cmp r1, r0
- addcs sp, sp, #0x34
- ldmcsia sp!, {r4-r11,pc}
- mov r0, #0x0
- mov r4, #0xff
- str r0, [sp, #0x20]
-_020B6E58:
- mov r1, r11, lsr #0x1f
- rsb r0, r1, r11, lsl #0x1d
- add r1, r1, r0, ror #0x1d
- ldr r0, [sp, #0x14]
- ldr r8, [r0, #0x0]
- ldr r7, [r0, #0x4]
- ldr r0, [sp, #0x4]
- add r0, r0, r11, lsr #0x3
- str r0, [sp, #0x2c]
- ldr r0, [sp, #0x20]
- strb r0, [sp, #0x30]
- strb r0, [sp, #0x31]
- add r0, sp, #0x2c
- bl FUN_020B76B0
- ldr r0, [sp, #0x0]
- cmp r0, r10
- mov r5, r0
- bhs _020B6EE8
-_020B6EA0:
- add r0, sp, #0x2c
- mov r1, r6
- bl FUN_020B76B0
- cmp r0, #0x0
- beq _020B6EDC
- cmp r5, #0x20
- mvncc r1, r4, lsl r5
- addcc r0, r9, r0
- andcc r1, r8, r1
- orrcc r8, r1, r0, lsl r5
- subcs r2, r5, #0x20
- mvncs r1, r4, lsl r2
- addcs r0, r9, r0
- andcs r1, r7, r1
- orrcs r7, r1, r0, lsl r2
-_020B6EDC:
- add r5, r5, #0x8
- cmp r5, r10
- blo _020B6EA0
-_020B6EE8:
- ldr r0, [sp, #0x14]
- str r8, [r0, #0x0]
- add r1, r0, #0x8
- str r7, [r0, #0x4]
- ldr r0, [sp, #0x18]
- str r1, [sp, #0x14]
- cmp r1, r0
- ldr r0, [sp, #0x8]
- add r11, r11, r0
- blo _020B6E58
- add sp, sp, #0x34
- ldmia sp!, {r4-r11,pc}
-
- arm_func_start FUN_020B6F18
-FUN_020B6F18: ; 0x020B6F18
- stmdb sp!, {r4-r6,lr}
- mov lr, r0
- cmp r3, #0x8
- ldr r0, [sp, #0x14]
- bne _020B6F4C
- ldr r4, [sp, #0x10]
- cmp r4, #0x8
- bne _020B6F4C
- ldr r2, [sp, #0x18]
- mov r1, lr
- mov r2, r2, lsl #0x3
- bl MIi_CpuClearFast
- ldmia sp!, {r4-r6,pc}
-_020B6F4C:
- ldr r4, [sp, #0x18]
- cmp r4, #0x4
- bne _020B6FAC
- mov r5, r1, lsl #0x2
- add r4, r5, r3, lsl #0x2
- mvn r3, #0x0
- rsb r4, r4, #0x20
- mov r3, r3, lsr r5
- add r1, r4, r1, lsl #0x2
- mov r3, r3, lsl r1
- ldr r1, [sp, #0x10]
- add r5, lr, r2, lsl #0x2
- add r2, r5, r1, lsl #0x2
- and r6, r0, r3, lsr r4
- cmp r5, r2
- mvn r1, r3, lsr r4
- ldmcsia sp!, {r4-r6,pc}
-_020B6F90:
- ldr r0, [r5, #0x0]
- and r0, r0, r1
- orr r0, r6, r0
- str r0, [r5], #0x4
- cmp r5, r2
- blo _020B6F90
- ldmia sp!, {r4-r6,pc}
-_020B6FAC:
- mov r12, r1, lsl #0x3
- add r1, r12, r3, lsl #0x3
- rsb r1, r1, #0x40
- mvn r3, #0x0
- cmp r1, #0x20
- mov r5, r3, lsr r12
- subcs r4, r1, #0x20
- addcs r3, r12, r4
- movcs r3, r5, lsl r3
- movcs r3, r3, lsr r4
- movcc r3, r5, lsl r12
- mvn r4, #0x0
- add r5, lr, r2, lsl #0x3
- cmp r12, #0x20
- mov r4, r4, lsl r1
- subcs r12, r12, #0x20
- addcs r1, r12, r1
- movcs r1, r4, lsr r1
- movcs r6, r1, lsl r12
- movcc r6, r4, lsr r1
- ldr r1, [sp, #0x10]
- and lr, r0, r3
- add r4, r5, r1, lsl #0x3
- cmp r5, r4
- and r12, r0, r6
- mvn r2, r3
- mvn r1, r6
- ldmcsia sp!, {r4-r6,pc}
-_020B701C:
- ldr r0, [r5, #0x0]
- and r0, r0, r2
- orr r0, lr, r0
- str r0, [r5, #0x0]
- ldr r0, [r5, #0x4]
- and r0, r0, r1
- orr r0, r12, r0
- str r0, [r5, #0x4]
- add r5, r5, #0x8
- cmp r5, r4
- blo _020B701C
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020B704C
-FUN_020B704C: ; 0x020B704C
- ldrb r3, [r0, #0x1]
- ldr r2, _020B7064 ; =UNK_020FF990
- ldrb r1, [r0, #0x0]
- add r0, r2, r3, lsl #0x4
- ldr r0, [r0, r1, lsl #0x2]
- bx lr
- .balign 4
-_020B7064: .word UNK_020FF990
-
- arm_func_start FUN_020B7068
-FUN_020B7068: ; 0x020B7068
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x4
- ldr fp, _020B7164 ; =UNK_020FF970
- mov r9, #0x0
- mov r10, #0x3
- mvn r7, #0x0
-_020B7080:
- ldr r4, [sp, #0x2c]
- ldr r6, [sp, #0x28]
- and r12, r3, r7, lsl r4
- cmp r12, r1
- mov r8, r7, lsl r6
- mov r5, r7, lsl r4
- and lr, r2, r7, lsl r6
- bhi _020B70D0
- mla r9, r2, r12, r9
- cmp lr, r0
- movhi r2, lr
- subhi r1, r1, r12
- subhi r3, r3, r12
- bhi _020B7118
- sub r3, r3, r12
- mla r9, lr, r3, r9
- sub r0, r0, lr
- sub r1, r1, r12
- sub r2, r2, lr
- b _020B7118
-_020B70D0:
- cmp lr, r0
- mlals r9, lr, r12, r9
- mvn r3, r5
- movls r3, r12
- subls r0, r0, lr
- subls r2, r2, lr
- bls _020B7118
- and r2, r1, r5
- mla r5, lr, r2, r9
- and r2, r0, r8
- and r1, r1, r3
- add r2, r5, r2, lsl r4
- mvn r3, r8
- add r1, r2, r1, lsl r6
- and r0, r0, r3
- add sp, sp, #0x4
- add r0, r1, r0
- ldmia sp!, {r4-r11,pc}
-_020B7118:
- cmp r2, #0x8
- movlt r4, r2
- movge r5, r10
- clzlt r4, r4
- rsblt r5, r4, #0x1f
- cmp r3, #0x8
- movge r4, r10
- movlt r4, r3
- clzlt r4, r4
- rsblt r4, r4, #0x1f
- add r4, r11, r4, lsl #0x3
- add r6, r4, r5, lsl #0x1
- ldrb r5, [r4, r5, lsl #0x1]
- ldrb r4, [r6, #0x1]
- str r5, [sp, #0x28]
- str r4, [sp, #0x2c]
- b _020B7080
- add sp, sp, #0x4
- ldmia sp!, {r4-r11,pc}
- .balign 4
-_020B7164: .word UNK_020FF970
-
- arm_func_start FUN_020B7168
-FUN_020B7168: ; 0x020B7168
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0xc
- ldr r12, [sp, #0x28]
- mov r7, r0
- mov r6, r1
- mov r5, r2
- mov r4, r3
- ands r0, r12, #0x100
- beq _020B71AC
- ldr r0, [r7, #0x4]
- ldr r1, [r7, #0xc]
- ldr r2, [sp, #0x2c]
- bl FUN_020B5B54
- ldr r1, [sp, #0x20]
- sub r0, r1, r0
- add r5, r5, r0
- b _020B71E4
-_020B71AC:
- ands r0, r12, #0x80
- beq _020B71E4
- ldr r0, [r7, #0x4]
- ldr r1, [r7, #0xc]
- ldr r2, [sp, #0x2c]
- bl FUN_020B5B54
- ldr r2, [sp, #0x20]
- add r1, r0, #0x1
- add r0, r2, #0x1
- add r0, r0, r0, lsr #0x1f
- mov r2, r0, asr #0x1
- add r0, r1, r1, lsr #0x1f
- sub r0, r2, r0, asr #0x1
- add r5, r5, r0
-_020B71E4:
- ldr r1, [sp, #0x24]
- ldr r0, [sp, #0x28]
- str r1, [sp, #0x0]
- ldr r12, [sp, #0x2c]
- str r0, [sp, #0x4]
- mov r0, r7
- mov r1, r6
- mov r2, r5
- mov r3, r4
- str r12, [sp, #0x8]
- bl FUN_020B72C4
- add sp, sp, #0xc
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020B7218
-FUN_020B7218: ; 0x020B7218
- stmdb sp!, {r4-r8,lr}
- sub sp, sp, #0x18
- ldr r4, [sp, #0x34]
- mov r8, r0
- str r4, [sp, #0x0]
- mov r7, r1
- mov r6, r2
- mov r5, r3
- ldr r4, [sp, #0x30]
- ldr r1, [r8, #0x4]
- ldr r2, [r8, #0x8]
- ldr r3, [r8, #0xc]
- add r0, sp, #0xc
- bl FUN_020B5ABC
- ands r0, r4, #0x10
- ldrne r0, [sp, #0xc]
- addne r0, r0, #0x1
- addne r0, r0, r0, lsr #0x1f
- subne r7, r7, r0, asr #0x1
- bne _020B7274
- ands r0, r4, #0x20
- ldrne r0, [sp, #0xc]
- subne r7, r7, r0
-_020B7274:
- ands r0, r4, #0x2
- ldrne r0, [sp, #0x10]
- addne r0, r0, #0x1
- addne r0, r0, r0, lsr #0x1f
- subne r6, r6, r0, asr #0x1
- bne _020B7298
- ands r0, r4, #0x4
- ldrne r0, [sp, #0x10]
- subne r6, r6, r0
-_020B7298:
- str r5, [sp, #0x0]
- ldr r0, [sp, #0x34]
- str r4, [sp, #0x4]
- str r0, [sp, #0x8]
- ldr r3, [sp, #0xc]
- mov r0, r8
- mov r1, r7
- mov r2, r6
- bl FUN_020B72C4
- add sp, sp, #0x18
- ldmia sp!, {r4-r8,pc}
-
- arm_func_start FUN_020B72C4
-FUN_020B72C4: ; 0x020B72C4
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x14
- mov r10, r0
- ldr r4, [r10, #0x4]
- ldr r0, [sp, #0x40]
- ldr r4, [r4, #0x0]
- ldr r5, [r10, #0xc]
- ldrsb r4, [r4, #0x1]
- cmp r0, #0x0
- mov r9, r1
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x38]
- mov r8, r2
- str r0, [sp, #0x38]
- mov r7, r3
- add r6, r5, r4
- addeq sp, sp, #0x14
- ldmeqia sp!, {r4-r11,pc}
- add r0, r7, #0x1
- ldr r1, [sp, #0x3c]
- add r0, r0, r0, lsr #0x1f
- mov r0, r0, asr #0x1
- and r5, r1, #0x800
- and r11, r1, #0x400
- str r0, [sp, #0x8]
- mov r4, #0x0
-_020B732C:
- mov r1, r9
- cmp r5, #0x0
- beq _020B7358
- ldr r0, [r10, #0x4]
- ldr r1, [r10, #0x8]
- ldr r2, [sp, #0xc]
- mov r3, r4
- bl FUN_020B5BC8
- sub r0, r7, r0
- add r1, r9, r0
- b _020B7388
-_020B7358:
- cmp r11, #0x0
- beq _020B7388
- ldr r0, [r10, #0x4]
- ldr r1, [r10, #0x8]
- ldr r2, [sp, #0xc]
- mov r3, r4
- bl FUN_020B5BC8
- add r0, r0, #0x1
- add r1, r0, r0, lsr #0x1f
- ldr r0, [sp, #0x8]
- sub r0, r0, r1, asr #0x1
- add r1, r9, r0
-_020B7388:
- ldr r2, [sp, #0xc]
- add r3, sp, #0xc
- str r2, [sp, #0x0]
- str r3, [sp, #0x4]
- ldr r3, [sp, #0x38]
- mov r0, r10
- mov r2, r8
- bl FUN_020B73C0
- ldr r0, [sp, #0xc]
- add r8, r8, r6
- cmp r0, #0x0
- bne _020B732C
- add sp, sp, #0x14
- ldmia sp!, {r4-r11,pc}
-
- arm_func_start FUN_020B73C0
-FUN_020B73C0: ; 0x020B73C0
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0xc
- mov r10, r0
- ldr r6, [r10, #0x8]
- ldr r5, [r10, #0x4]
- ldr r4, [sp, #0x30]
- add r0, sp, #0x8
- str r4, [sp, #0x8]
- ldr r4, [r5, #0x4]
- mov r9, r1
- mov r8, r2
- mov r7, r3
- blx r4
- cmp r0, #0x0
- beq _020B743C
- add r11, sp, #0x8
-_020B7400:
- cmp r0, #0xa
- beq _020B743C
- str r7, [sp, #0x0]
- str r0, [sp, #0x4]
- ldr r0, [r10, #0x0]
- mov r1, r5
- mov r2, r9
- mov r3, r8
- bl FUN_020B63CC
- add r1, r9, r0
- mov r0, r11
- add r9, r1, r6
- blx r4
- cmp r0, #0x0
- bne _020B7400
-_020B743C:
- ldr r1, [sp, #0x34]
- cmp r1, #0x0
- addeq sp, sp, #0xc
- ldmeqia sp!, {r4-r11,pc}
- cmp r0, #0xa
- ldreq r1, [sp, #0x8]
- ldr r0, [sp, #0x34]
- movne r1, #0x0
- str r1, [r0, #0x0]
- add sp, sp, #0xc
- ldmia sp!, {r4-r11,pc}
-
- arm_func_start FUN_020B7468
-FUN_020B7468: ; 0x020B7468
- stmdb sp!, {r4-r6,lr}
- ldrh r2, [r0, #0xc]
- ldrh r3, [r0, #0xe]
- mov r1, #0x0
- add r2, r0, r2
- cmp r3, #0x0
- ldmleia sp!, {r4-r6,pc}
- ldr r3, _020B7548 ; =0x46494E46
- ldr ip, _020B754C ; =0x43574448
- ldr r4, _020B7550 ; =0x434D4150
- ldr lr, _020B7554 ; =0x43474C50
-_020B7494:
- ldr r5, [r2, #0x0]
- cmp r5, r4
- bhi _020B74B0
- cmp r5, r4
- bhs _020B7518
- cmp r5, lr
- b _020B752C
-_020B74B0:
- cmp r5, r12
- bhi _020B74C4
- cmp r5, r12
- beq _020B7500
- b _020B752C
-_020B74C4:
- cmp r5, r3
- bne _020B752C
- add r6, r2, #0x8
- ldr r5, [r6, #0x8]
- add r5, r5, r0
- str r5, [r6, #0x8]
- ldr r5, [r6, #0xc]
- cmp r5, #0x0
- addne r5, r5, r0
- strne r5, [r6, #0xc]
- ldr r5, [r6, #0x10]
- cmp r5, #0x0
- addne r5, r5, r0
- strne r5, [r6, #0x10]
- b _020B752C
-_020B7500:
- add r6, r2, #0x8
- ldr r5, [r6, #0x4]
- cmp r5, #0x0
- addne r5, r5, r0
- strne r5, [r6, #0x4]
- b _020B752C
-_020B7518:
- add r6, r2, #0x8
- ldr r5, [r6, #0x8]
- cmp r5, #0x0
- addne r5, r5, r0
- strne r5, [r6, #0x8]
-_020B752C:
- ldrh r5, [r0, #0xe]
- ldr r6, [r2, #0x4]
- add r1, r1, #0x1
- cmp r1, r5
- add r2, r2, r6
- blt _020B7494
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020B7548: .word 0x46494E46
-_020B754C: .word 0x43574448
-_020B7550: .word 0x434D4150
-_020B7554: .word 0x43474C50
-
- arm_func_start FUN_020B7558
-FUN_020B7558: ; 0x020B7558
- stmdb sp!, {r4-r6,lr}
- movs r6, r0
- mov r5, r1
- beq _020B75C8
- cmp r6, #0x0
- beq _020B7584
- ldr r1, [r6, #0x0]
- ldr r0, _020B76A8 ; =0x4E465452
- cmp r1, r0
- moveq r0, #0x1
- beq _020B7588
-_020B7584:
- mov r0, #0x0
-_020B7588:
- cmp r0, #0x0
- movne r0, #0x1
- moveq r0, #0x0
- cmp r0, #0x0
- beq _020B75CC
- cmp r6, #0x0
- beq _020B75B4
- ldrh r0, [r6, #0x6]
- cmp r0, #0x100
- movcs r0, #0x1
- bhs _020B75B8
-_020B75B4:
- mov r0, #0x0
-_020B75B8:
- cmp r0, #0x0
- movne r0, #0x1
- moveq r0, #0x0
- b _020B75CC
-_020B75C8:
- mov r0, #0x0
-_020B75CC:
- cmp r0, #0x0
- movne r4, #0x0
- bne _020B7654
- cmp r6, #0x0
- beq _020B7640
- cmp r6, #0x0
- beq _020B75FC
- ldr r1, [r6, #0x0]
- ldr r0, _020B76A8 ; =0x4E465452
- cmp r1, r0
- moveq r0, #0x1
- beq _020B7600
-_020B75FC:
- mov r0, #0x0
-_020B7600:
- cmp r0, #0x0
- movne r0, #0x1
- moveq r0, #0x0
- cmp r0, #0x0
- beq _020B7644
- cmp r6, #0x0
- beq _020B762C
- ldrh r0, [r6, #0x6]
- cmp r0, #0x1
- movcs r0, #0x1
- bhs _020B7630
-_020B762C:
- mov r0, #0x0
-_020B7630:
- cmp r0, #0x0
- movne r0, #0x1
- moveq r0, #0x0
- b _020B7644
-_020B7640:
- mov r0, #0x0
-_020B7644:
- cmp r0, #0x0
- movne r4, #0x1
- bne _020B7654
- bl OS_Terminate
-_020B7654:
- mov r0, r6
- bl FUN_020B7468
- ldr r1, _020B76AC ; =0x46494E46
- mov r0, r6
- bl FUN_020B01F8
- cmp r0, #0x0
- moveq r0, #0x0
- streq r0, [r5, #0x0]
- ldmeqia sp!, {r4-r6,pc}
- add r0, r0, #0x8
- str r0, [r5, #0x0]
- cmp r4, #0x0
- beq _020B76A0
- ldr r2, [r5, #0x0]
- mov r1, #0x0
- ldrsb r0, [r2, #0x6]
- strb r0, [r2, #0x7]
- ldr r0, [r5, #0x0]
- strb r1, [r0, #0x6]
-_020B76A0:
- add r0, r4, #0x1
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020B76A8: .word 0x4E465452
-_020B76AC: .word 0x46494E46
-
- arm_func_start FUN_020B76B0
-FUN_020B76B0:
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- ldrsb r2, [r0, #0x4]
- ldrb r12, [r0, #0x5]
- mov r4, r1
- cmp r2, r4
- subge r1, r2, r4
- movge r5, r12, lsr r1
- strgeb r1, [r0, #0x4]
- bge _020B7704
- ldr r3, [r0, #0x0]
- sub r1, r4, r2
- add r2, r3, #0x1
- str r2, [r0, #0x0]
- ldrb r2, [r3, #0x0]
- mov r5, r12, lsl r1
- strb r2, [r0, #0x5]
- mov r2, #0x8
- strb r2, [r0, #0x4]
- bl FUN_020B76B0
- orr r5, r0, r5
-_020B7704:
- rsb r0, r4, #0x8
- mov r1, #0xff
- and r0, r5, r1, asr r0
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020B7718
-FUN_020B7718: ; 0x020B7718
- ldr r1, [r0, #0x0]
- ldrh r2, [r1], #0x2
- str r1, [r0, #0x0]
- mov r0, r2
- bx lr
-
- arm_func_start FUN_020B772C
-FUN_020B772C: ; 0x020B772C
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r6, r0
- ldrb r0, [r6, #0x9]
- mov r5, #0x0
- cmp r0, #0x0
- addls sp, sp, #0x4
- ldmlsia sp!, {r4-r7,pc}
- add r4, r6, #0x8
-_020B7750:
- ldrh r0, [r6, #0xe]
- ldrh r1, [r4, r0]
- add r0, r4, r0
- mla r0, r1, r5, r0
- ldr r0, [r0, #0x4]
- add r7, r6, r0
- mov r0, r7
- bl FUN_020B79A4
- mov r0, r7
- bl FUN_020B780C
- ldrb r0, [r6, #0x9]
- add r5, r5, #0x1
- cmp r5, r0
- blo _020B7750
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020B7790
-FUN_020B7790: ; 0x020B7790
- stmdb sp!, {r4-r9,lr}
- sub sp, sp, #0x4
- mov r8, r0
- ldrb r0, [r8, #0x9]
- mov r7, r1
- mov r5, #0x1
- cmp r0, #0x0
- mov r6, #0x0
- bls _020B7800
- add r4, r8, #0x8
-_020B77B8:
- ldrh r0, [r8, #0xe]
- mov r1, r7
- ldrh r2, [r4, r0]
- add r0, r4, r0
- mla r0, r2, r6, r0
- ldr r0, [r0, #0x4]
- add r9, r8, r0
- mov r0, r9
- bl FUN_020B7A04
- and r5, r5, r0
- mov r0, r9
- mov r1, r7
- bl FUN_020B7864
- ldrb r1, [r8, #0x9]
- add r6, r6, #0x1
- and r5, r5, r0
- cmp r6, r1
- blo _020B77B8
-_020B7800:
- mov r0, r5
- add sp, sp, #0x4
- ldmia sp!, {r4-r9,pc}
-
- arm_func_start FUN_020B780C
-FUN_020B780C: ; 0x020B780C
- ldr r2, [r0, #0x8]
- mov r1, #0x0
- add r2, r0, r2
- ldrh r0, [r2, #0x2]
- add r12, r2, r0
- ldrb r0, [r12, #0x1]
- cmp r0, #0x0
- bxls lr
-_020B782C:
- ldrh r2, [r12, #0x6]
- ldrh r0, [r12, r2]
- add r2, r12, r2
- add r2, r2, #0x4
- mla r3, r0, r1, r2
- ldrb r0, [r3, #0x3]
- add r1, r1, #0x1
- ands r2, r0, #0x1
- bicne r0, r0, #0x1
- strneb r0, [r3, #0x3]
- ldrb r0, [r12, #0x1]
- cmp r1, r0
- blo _020B782C
- bx lr
-
- arm_func_start FUN_020B7864
-FUN_020B7864: ; 0x020B7864
- stmdb sp!, {r4-r10,lr}
- ldr r2, [r0, #0x8]
- mov r10, r1
- add r9, r0, r2
- ldrh r0, [r9, #0x2]
- mov r6, #0x1
- mov r7, #0x0
- add r8, r9, r0
- ldrb r0, [r8, #0x1]
- cmp r0, #0x0
- bls _020B7908
- mov r5, r7
- mov r4, r7
-_020B7898:
- ldrh r1, [r8, #0x6]
- ldrh r0, [r10, #0x34]
- add r2, r8, r1
- ldrh r1, [r2, #0x2]
- add r0, r10, r0
- add r1, r2, r1
- add r1, r1, r5
- bl FUN_020BC2A0
- movs r3, r0
- beq _020B78F0
- ldrh r1, [r8, #0x6]
- ldrh r0, [r8, r1]
- add r1, r8, r1
- add r1, r1, #0x4
- mla r1, r0, r7, r1
- ldrb r0, [r1, #0x3]
- ands r0, r0, #0x1
- bne _020B78F4
- mov r0, r9
- mov r2, r10
- bl FUN_020B7910
- b _020B78F4
-_020B78F0:
- mov r6, r4
-_020B78F4:
- ldrb r0, [r8, #0x1]
- add r7, r7, #0x1
- add r5, r5, #0x10
- cmp r7, r0
- blo _020B7898
-_020B7908:
- mov r0, r6
- ldmia sp!, {r4-r10,pc}
-
- arm_func_start FUN_020B7910
-FUN_020B7910:
- stmdb sp!, {r4-r6,lr}
- ldrh r5, [r1, #0x0]
- ldr r2, [r2, #0x2c]
- ldrh r4, [r3, #0x2]
- mov r2, r2, lsl #0x10
- add r12, r0, r5
- mov r5, r2, lsr #0x10
- ands r2, r4, #0x1
- ldrh r4, [r3, #0x0]
- moveq r3, r5, lsl #0xf
- moveq r5, r3, lsr #0x10
- moveq r2, r4, lsl #0xf
- moveq r4, r2, lsr #0x10
- ldrb r3, [r1, #0x2]
- mov r2, #0x0
- cmp r3, #0x0
- bls _020B7994
- add r3, r4, r5
- mov r3, r3, lsl #0x10
- add r6, r0, #0x4
- mov r4, r3, lsr #0x10
-_020B7964:
- ldrh r5, [r0, #0xa]
- ldrb r3, [r12, r2]
- add r2, r2, #0x1
- ldrh lr, [r6, r5]
- add r5, r6, r5
- mla r3, lr, r3, r5
- ldr r3, [r3, #0x4]
- add r3, r0, r3
- strh r4, [r3, #0x1c]
- ldrb r3, [r1, #0x2]
- cmp r2, r3
- blo _020B7964
-_020B7994:
- ldrb r0, [r1, #0x3]
- orr r0, r0, #0x1
- strb r0, [r1, #0x3]
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020B79A4
-FUN_020B79A4: ; 0x020B79A4
- stmdb sp!, {r4-r6,lr}
- ldr r2, [r0, #0x8]
- mov r4, #0x0
- ldrh r1, [r0, r2]
- add r6, r0, r2
- add r5, r6, r1
- ldrb r0, [r5, #0x1]
- cmp r0, #0x0
- ldmlsia sp!, {r4-r6,pc}
-_020B79C8:
- ldrh r1, [r5, #0x6]
- ldrh r0, [r5, r1]
- add r1, r5, r1
- add r1, r1, #0x4
- mla r1, r0, r4, r1
- ldrb r0, [r1, #0x3]
- ands r0, r0, #0x1
- beq _020B79F0
- mov r0, r6
- bl FUN_020B7AB8
-_020B79F0:
- ldrb r0, [r5, #0x1]
- add r4, r4, #0x1
- cmp r4, r0
- blo _020B79C8
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020B7A04
-FUN_020B7A04: ; 0x020B7A04
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x4
- ldr r2, [r0, #0x8]
- mov r10, r1
- ldrh r1, [r0, r2]
- add r9, r0, r2
- mov r11, #0x1
- add r8, r9, r1
- ldrb r0, [r8, #0x1]
- mov r7, #0x0
- cmp r0, #0x0
- bls _020B7AAC
- mov r6, r7
- mov r4, r7
- add r5, r10, #0x3c
-_020B7A40:
- ldrh r1, [r8, #0x6]
- mov r0, r5
- add r2, r8, r1
- ldrh r1, [r2, #0x2]
- add r1, r2, r1
- add r1, r1, r6
- bl FUN_020BC2A0
- movs r3, r0
- beq _020B7A94
- ldrh r1, [r8, #0x6]
- ldrh r0, [r8, r1]
- add r1, r8, r1
- add r1, r1, #0x4
- mla r1, r0, r7, r1
- ldrb r0, [r1, #0x3]
- ands r0, r0, #0x1
- bne _020B7A98
- mov r0, r9
- mov r2, r10
- bl FUN_020B7B40
- b _020B7A98
-_020B7A94:
- mov r11, r4
-_020B7A98:
- ldrb r0, [r8, #0x1]
- add r7, r7, #0x1
- add r6, r6, #0x10
- cmp r7, r0
- blo _020B7A40
-_020B7AAC:
- mov r0, r11
- add sp, sp, #0x4
- ldmia sp!, {r4-r11,pc}
-
- arm_func_start FUN_020B7AB8
-FUN_020B7AB8: ; 0x020B7AB8
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- ldrh r4, [r1, #0x0]
- ldrb r2, [r1, #0x2]
- mov r3, #0x0
- add r12, r0, r4
- cmp r2, #0x0
- bls _020B7B28
- add r2, r0, #0x4
- mov r5, #0x1000
- ldr lr, _020B7B3C ; =0xC00F0000
-_020B7AE4:
- ldrh r7, [r0, #0xa]
- ldrb r4, [r12, r3]
- add r3, r3, #0x1
- ldrh r6, [r2, r7]
- add r7, r2, r7
- mla r4, r6, r4, r7
- ldr r4, [r4, #0x4]
- add r6, r0, r4
- ldr r4, [r6, #0x14]
- and r4, r4, lr
- str r4, [r6, #0x14]
- str r5, [r6, #0x24]
- ldr r4, [r6, #0x24]
- str r4, [r6, #0x28]
- ldrb r4, [r1, #0x2]
- cmp r3, r4
- blo _020B7AE4
-_020B7B28:
- ldrb r0, [r1, #0x3]
- bic r0, r0, #0x1
- strb r0, [r1, #0x3]
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020B7B3C: .word 0xC00F0000
-
- arm_func_start FUN_020B7B40
-FUN_020B7B40:
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0xc
- mov r11, r1
- mov r9, r3
- ldr r1, [r9, #0x0]
- mov r10, r0
- and r0, r1, #0x1c000000
- cmp r0, #0x14000000
- ldrh r3, [r11, #0x0]
- ldrne r1, [r2, #0x8]
- mov r8, #0x0
- add r0, r10, r3
- str r0, [sp, #0x4]
- ldrne r0, _020B7C50 ; =0x0000FFFF
- andne r0, r1, r0
- strne r0, [sp, #0x0]
- ldreq r1, [r2, #0x18]
- ldreq r0, _020B7C50 ; =0x0000FFFF
- andeq r0, r1, r0
- streq r0, [sp, #0x0]
- ldrb r0, [r11, #0x2]
- cmp r0, #0x0
- bls _020B7C3C
- mov r4, #0x1000
- add r5, r10, #0x4
-_020B7BA4:
- ldrh r6, [r10, #0xa]
- ldr r0, [sp, #0x4]
- ldr r1, [r9, #0x0]
- ldrb r2, [r0, r8]
- ldrh r3, [r5, r6]
- ldr r0, [sp, #0x0]
- add r6, r5, r6
- add r0, r1, r0
- mla r1, r3, r2, r6
- ldr r1, [r1, #0x4]
- add r6, r10, r1
- ldr r1, [r6, #0x14]
- orr r0, r1, r0
- str r0, [r6, #0x14]
- ldr r3, [r9, #0x4]
- ldr r0, _020B7C54 ; =0x000007FF
- ldrh r1, [r6, #0x20]
- and r2, r3, r0
- and r7, r0, r3, lsr #0xb
- cmp r2, r1
- moveq r0, r4
- beq _020B7C08
- mov r0, r2, lsl #0xc
- mov r1, r1, lsl #0xc
- bl FX_Div
-_020B7C08:
- str r0, [r6, #0x24]
- ldrh r1, [r6, #0x22]
- cmp r7, r1
- moveq r0, r4
- beq _020B7C28
- mov r0, r7, lsl #0xc
- mov r1, r1, lsl #0xc
- bl FX_Div
-_020B7C28:
- str r0, [r6, #0x28]
- ldrb r0, [r11, #0x2]
- add r8, r8, #0x1
- cmp r8, r0
- blo _020B7BA4
-_020B7C3C:
- ldrb r0, [r11, #0x3]
- orr r0, r0, #0x1
- strb r0, [r11, #0x3]
- add sp, sp, #0xc
- ldmia sp!, {r4-r11,pc}
- .balign 4
-_020B7C50: .word 0x0000FFFF
-_020B7C54: .word 0x000007FF
-
- arm_func_start FUN_020B7C58
-FUN_020B7C58: ; 0x020B7C58
- ldrh r2, [r0, #0x32]
- mov r1, #0x0
- bic r2, r2, #0x1
- strh r2, [r0, #0x32]
- ldr r2, [r0, #0x2c]
- str r1, [r0, #0x2c]
- mov r0, r2
- bx lr
-
- arm_func_start FUN_020B7C78
-FUN_020B7C78: ; 0x020B7C78
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- movs r4, r1
- mov r5, r0
- beq _020B7C90
- bl GX_BeginLoadTexPltt
-_020B7C90:
- ldrh r2, [r5, #0x30]
- ldr r0, [r5, #0x38]
- ldr r3, [r5, #0x2c]
- ldr r1, _020B7CD8 ; =0x0000FFFF
- add r0, r5, r0
- and r1, r3, r1
- mov r1, r1, lsl #0x3
- mov r2, r2, lsl #0x3
- bl GX_LoadTexPltt
- ldrh r0, [r5, #0x32]
- cmp r4, #0x0
- addeq sp, sp, #0x4
- orr r0, r0, #0x1
- strh r0, [r5, #0x32]
- ldmeqia sp!, {r4-r5,pc}
- bl GX_EndLoadTexPltt
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020B7CD8: .word 0x0000FFFF
-
- arm_func_start FUN_020B7CDC
-FUN_020B7CDC: ; 0x020B7CDC
- str r1, [r0, #0x2c]
- bx lr
-
- arm_func_start FUN_020B7CE4
-FUN_020B7CE4: ; 0x020B7CE4
- ldrh r0, [r0, #0x30]
- mov r0, r0, lsl #0x3
- bx lr
-
- arm_func_start FUN_020B7CF0
-FUN_020B7CF0: ; 0x020B7CF0
- ldrh r12, [r0, #0x10]
- mov r3, #0x0
- bic r12, r12, #0x1
- strh r12, [r0, #0x10]
- ldrh r12, [r0, #0x20]
- bic r12, r12, #0x1
- strh r12, [r0, #0x20]
- ldr r12, [r0, #0x8]
- str r12, [r1, #0x0]
- str r3, [r0, #0x8]
- ldr r1, [r0, #0x18]
- str r1, [r2, #0x0]
- str r3, [r0, #0x18]
- bx lr
-
- arm_func_start FUN_020B7D28
-FUN_020B7D28: ; 0x020B7D28
- stmdb sp!, {r4-r9,lr}
- sub sp, sp, #0x4
- movs r8, r1
- mov r9, r0
- beq _020B7D40
- bl GX_BeginLoadTex
-_020B7D40:
- ldrh r0, [r9, #0xc]
- movs r2, r0, lsl #0x3
- beq _020B7D74
- ldr r1, [r9, #0x8]
- ldr r0, _020B7DF4 ; =0x0000FFFF
- ldr r3, [r9, #0x14]
- and r1, r1, r0
- add r0, r9, r3
- mov r1, r1, lsl #0x3
- bl GX_LoadTex
- ldrh r0, [r9, #0x10]
- orr r0, r0, #0x1
- strh r0, [r9, #0x10]
-_020B7D74:
- ldrh r0, [r9, #0x1c]
- movs r7, r0, lsl #0x3
- beq _020B7DDC
- ldr r1, [r9, #0x18]
- ldr r0, _020B7DF4 ; =0x0000FFFF
- ldr r3, [r9, #0x24]
- and r4, r1, r0
- mov r5, r4, lsl #0x3
- ldr r6, [r9, #0x28]
- mov r1, r5
- mov r2, r7
- add r0, r9, r3
- add r6, r9, r6
- bl GX_LoadTex
- ldr r0, _020B7DF8 ; =0x0001FFFF
- and r1, r5, #0x40000
- and r0, r0, r4, lsl #0x3
- mov r0, r0, lsr #0x1
- add r2, r0, #0x20000
- mov r0, r6
- add r1, r2, r1, lsr #0x2
- mov r2, r7, lsr #0x1
- bl GX_LoadTex
- ldrh r0, [r9, #0x20]
- orr r0, r0, #0x1
- strh r0, [r9, #0x20]
-_020B7DDC:
- cmp r8, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r9,pc}
- bl GX_EndLoadTex
- add sp, sp, #0x4
- ldmia sp!, {r4-r9,pc}
- .balign 4
-_020B7DF4: .word 0x0000FFFF
-_020B7DF8: .word 0x0001FFFF
-
- arm_func_start FUN_020B7DFC
-FUN_020B7DFC: ; 0x020B7DFC
- cmp r1, #0x0
- strne r1, [r0, #0x8]
- cmp r2, #0x0
- strne r2, [r0, #0x18]
- bx lr
-
- arm_func_start FUN_020B7E10
-FUN_020B7E10: ; 0x020B7E10
- ldrh r0, [r0, #0x1c]
- mov r0, r0, lsl #0x3
- bx lr
-
- arm_func_start FUN_020B7E1C
-FUN_020B7E1C: ; 0x020B7E1C
- ldrh r0, [r0, #0xc]
- mov r0, r0, lsl #0x3
- bx lr
-
- arm_func_start FUN_020B7E28
-FUN_020B7E28: ; 0x020B7E28
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- add r0, r5, #0x8
- mov r4, r1
- bl FUN_020B7E88
- cmp r0, #0x0
- bne _020B7E74
- mov r1, r4
- add r0, r5, #0x10
- bl FUN_020B7E88
- cmp r0, #0x0
- bne _020B7E74
- mov r1, r4
- add r0, r5, #0x18
- bl FUN_020B7E88
- cmp r0, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r5,pc}
-_020B7E74:
- ldr r0, [r5, #0x0]
- orr r0, r0, #0x10
- str r0, [r5, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020B7E88
-FUN_020B7E88:
- ldr r2, [r0, #0x0]
- cmp r2, #0x0
- moveq r0, #0x0
- bxeq lr
- cmp r2, r1
- bne _020B7EB8
- ldr r3, [r2, #0x10]
- mov r2, #0x0
- str r3, [r0, #0x0]
- str r2, [r1, #0x10]
- mov r0, #0x1
- bx lr
-_020B7EB8:
- ldr r3, [r2, #0x10]
- cmp r3, #0x0
- beq _020B7EF4
-_020B7EC4:
- cmp r3, r1
- bne _020B7EE4
- ldr r1, [r3, #0x10]
- mov r0, #0x0
- str r1, [r2, #0x10]
- str r0, [r3, #0x10]
- mov r0, #0x1
- bx lr
-_020B7EE4:
- mov r2, r3
- ldr r3, [r3, #0x10]
- cmp r3, #0x0
- bne _020B7EC4
-_020B7EF4:
- mov r0, #0x0
- bx lr
-
- arm_func_start FUN_020B7EFC
-FUN_020B7EFC: ; 0x020B7EFC
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r4, r1
- ldr r2, [r4, #0x8]
- mov r5, r0
- ldrb r0, [r2, #0x0]
- cmp r0, #0x4a
- beq _020B7F50
- cmp r0, #0x4d
- beq _020B7F34
- cmp r0, #0x56
- beq _020B7F6C
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-_020B7F34:
- add r0, r5, #0x3c
- bl FUN_020B7F88
- mov r1, r4
- add r0, r5, #0x8
- bl FUN_020B7FF8
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-_020B7F50:
- add r0, r5, #0x44
- bl FUN_020B7F88
- mov r1, r4
- add r0, r5, #0x10
- bl FUN_020B7FF8
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-_020B7F6C:
- add r0, r5, #0x4c
- bl FUN_020B7F88
- mov r1, r4
- add r0, r5, #0x18
- bl FUN_020B7FF8
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020B7F88
-FUN_020B7F88: ; 0x020B7F88
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- cmp r1, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r5,pc}
- mov r3, #0x1
- mov r4, #0x0
-_020B7FA4:
- ldrb r2, [r1, #0x19]
- mov r5, r4
- cmp r2, #0x0
- ble _020B7FE4
-_020B7FB4:
- add r2, r1, r5, lsl #0x1
- ldrh r2, [r2, #0x1a]
- ands r2, r2, #0x100
- movne lr, r5, asr #0x5
- andne r2, r5, #0x1f
- ldrne r12, [r0, lr, lsl #0x2]
- add r5, r5, #0x1
- orrne r2, r12, r3, lsl r2
- strne r2, [r0, lr, lsl #0x2]
- ldrb r2, [r1, #0x19]
- cmp r5, r2
- blt _020B7FB4
-_020B7FE4:
- ldr r1, [r1, #0x10]
- cmp r1, #0x0
- bne _020B7FA4
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020B7FF8
-FUN_020B7FF8: ; 0x020B7FF8
- ldr r12, [r0, #0x0]
- cmp r12, #0x0
- streq r1, [r0, #0x0]
- bxeq lr
- ldr r3, [r12, #0x10]
- cmp r3, #0x0
- bne _020B8058
- ldrb r3, [r12, #0x18]
- ldrb r2, [r1, #0x18]
- cmp r3, r2
- bls _020B8050
- ldr r2, [r1, #0x10]
- mov r3, r1
- cmp r2, #0x0
- beq _020B8044
-_020B8034:
- ldr r3, [r3, #0x10]
- ldr r2, [r3, #0x10]
- cmp r2, #0x0
- bne _020B8034
-_020B8044:
- str r12, [r3, #0x10]
- str r1, [r0, #0x0]
- bx lr
-_020B8050:
- str r1, [r12, #0x10]
- bx lr
-_020B8058:
- cmp r3, #0x0
- beq _020B80AC
- ldrb r2, [r1, #0x18]
-_020B8064:
- ldrb r0, [r3, #0x18]
- cmp r0, r2
- blo _020B809C
- ldr r0, [r1, #0x10]
- mov r2, r1
- cmp r0, #0x0
- beq _020B8090
-_020B8080:
- ldr r2, [r2, #0x10]
- ldr r0, [r2, #0x10]
- cmp r0, #0x0
- bne _020B8080
-_020B8090:
- str r1, [r12, #0x10]
- str r3, [r2, #0x10]
- bx lr
-_020B809C:
- mov r12, r3
- ldr r3, [r3, #0x10]
- cmp r3, #0x0
- bne _020B8064
-_020B80AC:
- str r1, [r12, #0x10]
- bx lr
-
- arm_func_start FUN_020B80B4
-FUN_020B80B4: ; 0x020B80B4
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- mov r4, r1
- mov r1, r5
- mov r0, #0x0
- mov r2, #0x54
- bl MIi_CpuClear32
- ldr r0, _020B8104 ; =UNK_021065B4
- ldr r1, _020B8108 ; =UNK_021065B0
- ldr r2, [r0, #0x0]
- ldr r0, _020B810C ; =UNK_021065AC
- str r2, [r5, #0xc]
- ldr r1, [r1, #0x0]
- str r1, [r5, #0x14]
- ldr r0, [r0, #0x0]
- str r0, [r5, #0x1c]
- str r4, [r5, #0x4]
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020B8104: .word UNK_021065B4
-_020B8108: .word UNK_021065B0
-_020B810C: .word UNK_021065AC
-
- arm_func_start FUN_020B8110
-FUN_020B8110: ; 0x020B8110
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r12, #0x0
- str r12, [r0, #0x0]
- str r1, [r0, #0x8]
- str r12, [r0, #0x10]
- mov r4, #0x7f
- strb r4, [r0, #0x18]
- mov r4, #0x1000
- str r4, [r0, #0x4]
- ldr lr, _020B81A4 ; =UNK_02106594
- str r3, [r0, #0x14]
- ldr r6, [lr, #0x0]
- cmp r6, #0x0
- addls sp, sp, #0x4
- ldmlsia sp!, {r4-r7,pc}
- ldrb r7, [r1, #0x0]
- ldr r4, _020B81A8 ; =UNK_021065B8
-_020B8158:
- ldrb r3, [r4, r12, lsl #0x3]
- mov r5, r12, lsl #0x3
- cmp r7, r3
- bne _020B8190
- add r3, r4, r5
- ldrh lr, [r1, #0x2]
- ldrh r3, [r3, #0x2]
- cmp lr, r3
- bne _020B8190
- ldr r3, _020B81AC ; =UNK_021065BC
- ldr r3, [r3, r5]
- blx r3
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-_020B8190:
- add r12, r12, #0x1
- cmp r12, r6
- blo _020B8158
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020B81A4: .word UNK_02106594
-_020B81A8: .word UNK_021065B8
-_020B81AC: .word UNK_021065BC
-
- arm_func_start FUN_020B81B0
-FUN_020B81B0: ; 0x020B81B0
- ldrb r0, [r0, #0x0]
- cmp r0, #0x4a
- beq _020B81E4
- cmp r0, #0x4d
- beq _020B81D0
- cmp r0, #0x56
- beq _020B81E4
- b _020B81F8
-_020B81D0:
- ldrb r0, [r1, #0x18]
- mov r0, r0, lsl #0x1
- add r0, r0, #0x1c
- bic r0, r0, #0x3
- bx lr
-_020B81E4:
- ldrb r0, [r1, #0x17]
- mov r0, r0, lsl #0x1
- add r0, r0, #0x1c
- bic r0, r0, #0x3
- bx lr
-_020B81F8:
- mov r0, #0x0
- bx lr
-
- arm_func_start FUN_020B8200
-FUN_020B8200: ; 0x020B8200
- cmp r0, #0x0
- ldrne ip, _020B8260 ; =UNK_021CED18
- ldrne r12, [r12, #0xa0]
- andne r12, r12, #0xff
- strne r12, [r0, #0x0]
- cmp r1, #0x0
- ldrne r0, _020B8260 ; =UNK_021CED18
- ldrne r0, [r0, #0xa0]
- movne r0, r0, lsr #0x8
- andne r0, r0, #0xff
- strne r0, [r1, #0x0]
- cmp r2, #0x0
- ldrne r0, _020B8260 ; =UNK_021CED18
- ldrne r0, [r0, #0xa0]
- movne r0, r0, lsr #0x10
- andne r0, r0, #0xff
- strne r0, [r2, #0x0]
- cmp r3, #0x0
- ldrne r0, _020B8260 ; =UNK_021CED18
- ldrne r0, [r0, #0xa0]
- movne r0, r0, lsr #0x18
- andne r0, r0, #0xff
- strne r0, [r3, #0x0]
- bx lr
- .balign 4
-_020B8260: .word UNK_021CED18
-
- arm_func_start FUN_020B8264
-FUN_020B8264: ; 0x020B8264
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r0, _020B829C ; =UNK_021CED18
- ldr r0, [r0, #0xfc]
- ands r0, r0, #0x80
- bne _020B8290
- bl FUN_020B82E4
- ldr r0, _020B829C ; =UNK_021CED18
- ldr r1, [r0, #0xfc]
- orr r1, r1, #0x80
- str r1, [r0, #0xfc]
-_020B8290:
- ldr r0, _020B82A0 ; =UNK_021CEE78
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020B829C: .word UNK_021CED18
-_020B82A0: .word UNK_021CEE78
-
- arm_func_start FUN_020B82A4
-FUN_020B82A4: ; 0x020B82A4
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r0, _020B82DC ; =UNK_021CED18
- ldr r0, [r0, #0xfc]
- ands r0, r0, #0x80
- bne _020B82D0
- bl FUN_020B82E4
- ldr r0, _020B82DC ; =UNK_021CED18
- ldr r1, [r0, #0xfc]
- orr r1, r1, #0x80
- str r1, [r0, #0xfc]
-_020B82D0:
- ldr r0, _020B82E0 ; =UNK_021CEE48
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020B82DC: .word UNK_021CED18
-_020B82E0: .word UNK_021CEE48
-
- arm_func_start FUN_020B82E4
-FUN_020B82E4: ; 0x020B82E4
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r0, _020B8330 ; =UNK_021CEDD4
- ldr r1, _020B8334 ; =UNK_021CED64
- ldr r2, _020B8338 ; =UNK_021CEE48
- bl MTX_Concat43
- ldr r3, _020B833C ; =UNK_021CED18
- ldr r0, _020B8338 ; =UNK_021CEE48
- ldr r2, [r3, #0xf4]
- mov r1, r0
- str r2, [sp, #0x0]
- ldr r2, [r3, #0xec]
- ldr r3, [r3, #0xf0]
- bl MTX_ScaleApply43
- ldr r0, _020B8338 ; =UNK_021CEE48
- ldr r1, _020B8340 ; =UNK_021CEE78
- bl MTX_Inverse43
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020B8330: .word UNK_021CEDD4
-_020B8334: .word UNK_021CED64
-_020B8338: .word UNK_021CEE48
-_020B833C: .word UNK_021CED18
-_020B8340: .word UNK_021CEE78
-
- arm_func_start FUN_020B8344
-FUN_020B8344: ; 0x020B8344
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r0, _020B8384 ; =UNK_021CED18
- ldr r0, [r0, #0xfc]
- ands r0, r0, #0x8
- bne _020B8378
- ldr r0, _020B8388 ; =UNK_021CED64
- ldr r1, _020B838C ; =UNK_021CEE18
- bl MTX_Inverse43
- ldr r0, _020B8384 ; =UNK_021CED18
- ldr r1, [r0, #0xfc]
- orr r1, r1, #0x8
- str r1, [r0, #0xfc]
-_020B8378:
- ldr r0, _020B838C ; =UNK_021CEE18
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020B8384: .word UNK_021CED18
-_020B8388: .word UNK_021CED64
-_020B838C: .word UNK_021CEE18
-
- arm_func_start FUN_020B8390
-FUN_020B8390: ; 0x020B8390
- orr r0, r0, r1, lsl #0x4
-
- arm_func_start FUN_020B8394
-FUN_020B8394: ; 0x020B8394
- ldr r1, [sp, #0x4]
- orr r0, r0, r2, lsl #0x6
- orr r0, r1, r0
- ldr r2, [sp, #0x0]
- orr r1, r0, r3, lsl #0x18
- ldr r0, _020B83B8 ; =UNK_021CED18
- orr r1, r1, r2, lsl #0x10
- str r1, [r0, #0x9c]
- bx lr
- .balign 4
-_020B83B8: .word UNK_021CED18
-
- arm_func_start FUN_020B83BC
-FUN_020B83BC: ; 0x020B83BC
- cmp r2, #0x0
- movne r2, #0x1
- orr r1, r0, r1, lsl #0x10
- moveq r2, #0x0
- ldr r0, _020B83DC ; =UNK_021CED18
- orr r1, r1, r2, lsl #0xf
- str r1, [r0, #0x98]
- bx lr
- .balign 4
-_020B83DC: .word UNK_021CED18
-
- arm_func_start FUN_020B83E0
-FUN_020B83E0: ; 0x020B83E0
- cmp r2, #0x0
- movne r2, #0x1
- orr r1, r0, r1, lsl #0x10
- moveq r2, #0x0
- ldr r0, _020B8400 ; =UNK_021CED18
- orr r1, r1, r2, lsl #0xf
- str r1, [r0, #0x94]
- bx lr
- .balign 4
-_020B8400: .word UNK_021CED18
-
- arm_func_start FUN_020B8404
-FUN_020B8404: ; 0x020B8404
- ldr r2, _020B8414 ; =UNK_021CEDC0
- orr r1, r1, r0, lsl #0x1e
- str r1, [r2, r0, lsl #0x2]
- bx lr
- .balign 4
-_020B8414: .word UNK_021CEDC0
-
- arm_func_start FUN_020B8418
-FUN_020B8418: ; 0x020B8418
- stmdb sp!, {r4,lr}
- ldr ip, _020B8444 ; =0x000003FF
- ldr lr, _020B8448 ; =UNK_021CED98
- and r4, r12, r1, asr #0x3
- and r1, r12, r2, asr #0x3
- and r2, r12, r3, asr #0x3
- orr r1, r4, r1, lsl #0xa
- orr r1, r1, r2, lsl #0x14
- orr r1, r1, r0, lsl #0x1e
- str r1, [lr, r0, lsl #0x2]
- ldmia sp!, {r4,pc}
- .balign 4
-_020B8444: .word 0x000003FF
-_020B8448: .word UNK_021CED98
-
- arm_func_start FUN_020B844C
-FUN_020B844C: ; 0x020B844C
- ldr r3, _020B846C ; =UNK_021CEE04
- ldmia r0, {r0-r2}
- stmia r3, {r0-r2}
- ldr r0, _020B8470 ; =UNK_021CED18
- ldr r1, [r0, #0xfc]
- bic r1, r1, #0xa4
- str r1, [r0, #0xfc]
- bx lr
- .balign 4
-_020B846C: .word UNK_021CEE04
-_020B8470: .word UNK_021CED18
-
- arm_func_start FUN_020B8474
-FUN_020B8474: ; 0x020B8474
- ldr r3, _020B8494 ; =UNK_021CEDF8
- ldmia r0, {r0-r2}
- stmia r3, {r0-r2}
- ldr r0, _020B8498 ; =UNK_021CED18
- ldr r1, [r0, #0xfc]
- bic r1, r1, #0xa4
- str r1, [r0, #0xfc]
- bx lr
- .balign 4
-_020B8494: .word UNK_021CEDF8
-_020B8498: .word UNK_021CED18
-
- arm_func_start FUN_020B849C
-FUN_020B849C: ; 0x020B849C
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r1, _020B84D4 ; =UNK_021CED18
- mov r2, #0x3e
- ldr r0, [r1], #0x4
- bl FUN_020BB1C0
- ldr r0, _020B84D4 ; =UNK_021CED18
- ldr r1, [r0, #0xfc]
- bic r1, r1, #0x1
- str r1, [r0, #0xfc]
- bic r1, r1, #0x2
- str r1, [r0, #0xfc]
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020B84D4: .word UNK_021CED18
-
- arm_func_start FUN_020B84D8
-FUN_020B84D8: ; 0x020B84D8
- stmdb sp!, {r4-r9,lr}
- sub sp, sp, #0x4
- ldr r8, _020B85F4 ; =0x17101610
- ldr r1, _020B85F8 ; =UNK_021CED18
- ldr r5, _020B85FC ; =0x32323232
- ldr r4, _020B8600 ; =0x60293130
- ldr r3, _020B8604 ; =0x33333333
- ldr r2, _020B8608 ; =0x002A1B19
- mov r7, #0x0
- mov r6, #0x2
- ldr r0, _020B860C ; =UNK_021CED64
- str r8, [r1, #0x0]
- str r7, [r1, #0x4]
- str r6, [r1, #0x48]
- str r5, [r1, #0x7c]
- str r4, [r1, #0x90]
- str r3, [r1, #0xa4]
- str r2, [r1, #0xb8]
- bl MTX_Identity43_
- ldr r0, _020B8610 ; =UNK_021CED20
- bl MTX_Identity44_
- mov r2, r7
- ldr r1, _020B85F8 ; =UNK_021CED18
- ldr r7, _020B8614 ; =0x4210C210
- ldr r0, _020B8618 ; =0x40000200
- ldr lr, _020B861C ; =0x2D8B62D8
- ldr sb, _020B8620 ; =0x800001FF
- ldr r8, _020B8624 ; =0xC0080000
- ldr r6, _020B8628 ; =0x001F008F
- ldr r5, _020B862C ; =0xBFFF0000
- ldr r4, _020B8630 ; =0x00007FFF
- ldr ip, _020B8634 ; =0x800003E0
- ldr r3, _020B8638 ; =0xC0007C00
- str r0, [r1, #0x84]
- str lr, [r1, #0x80]
- mov lr, #0x4000001f
- ldr r0, _020B863C ; =UNK_021CEDD4
- str r9, [r1, #0x88]
- str r8, [r1, #0x8c]
- str r7, [r1, #0x94]
- str r7, [r1, #0x98]
- str r6, [r1, #0x9c]
- str r5, [r1, #0xa0]
- str r4, [r1, #0xa8]
- str lr, [r1, #0xac]
- str r12, [r1, #0xb0]
- str r3, [r1, #0xb4]
- str r2, [r1, #0xe0]
- str r2, [r1, #0xe4]
- str r2, [r1, #0xe8]
- bl MTX_Identity33_
- mov r3, #0x1000
- ldr r0, _020B85F8 ; =UNK_021CED18
- mov r2, #0x0
- rsb r1, r3, #0x0
- str r3, [r0, #0xec]
- str r3, [r0, #0xf0]
- str r3, [r0, #0xf4]
- str r2, [r0, #0xf8]
- str r2, [r0, #0xfc]
- str r2, [r0, #0x248]
- str r2, [r0, #0x244]
- str r2, [r0, #0x240]
- str r2, [r0, #0x254]
- str r2, [r0, #0x24c]
- str r3, [r0, #0x250]
- str r2, [r0, #0x25c]
- str r2, [r0, #0x258]
- str r1, [r0, #0x260]
- add sp, sp, #0x4
- ldmia sp!, {r4-r9,pc}
- .balign 4
-_020B85F4: .word 0x17101610
-_020B85F8: .word UNK_021CED18
-_020B85FC: .word 0x32323232
-_020B8600: .word 0x60293130
-_020B8604: .word 0x33333333
-_020B8608: .word 0x002A1B19
-_020B860C: .word UNK_021CED64
-_020B8610: .word UNK_021CED20
-_020B8614: .word 0x4210C210
-_020B8618: .word 0x40000200
-_020B861C: .word 0x2D8B62D8
-_020B8620: .word 0x800001FF
-_020B8624: .word 0xC0080000
-_020B8628: .word 0x001F008F
-_020B862C: .word 0xBFFF0000
-_020B8630: .word 0x00007FFF
-_020B8634: .word 0x800003E0
-_020B8638: .word 0xC0007C00
-_020B863C: .word UNK_021CEDD4
-
- arm_func_start FUN_020B8640
-FUN_020B8640: ; 0x020B8640
- stmdb sp!, {r4-r8,lr}
- sub sp, sp, #0x8
- mov r7, r0
- mov r0, #0x0
- mov r6, r1
- str r0, [r7, #0x0]
- add r4, sp, #0x0
- mov r5, r2, lsl #0x1
- mov r8, #0x1
-_020B8664:
- add r1, r5, r6
- ldrh r2, [r1, #0x1a]
- ands r1, r2, #0x100
- beq _020B869C
- ldr r3, [r6, #0xc]
- mov r0, r4
- mov r1, r6
- and r2, r2, #0xff
- blx r3
- ldr r2, [r7, #0x0]
- ldr r1, [sp, #0x0]
- mov r0, r8
- orr r1, r2, r1
- str r1, [r7, #0x0]
-_020B869C:
- ldr r6, [r6, #0x10]
- cmp r6, #0x0
- bne _020B8664
- add sp, sp, #0x8
- ldmia sp!, {r4-r8,pc}
-
- arm_func_start FUN_020B86B0
-FUN_020B86B0: ; 0x020B86B0
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x5c
- mov r9, r1
- ldr r3, [r9, #0x10]
- mov r10, r0
- mov r8, r2
- cmp r3, #0x0
- bne _020B8704
- add r2, r9, r8, lsl #0x1
- ldrh r4, [r2, #0x1a]
- and r2, r4, #0x300
- cmp r2, #0x100
- addne sp, sp, #0x5c
- movne r0, #0x0
- ldmneia sp!, {r4-r11,pc}
- ldr r3, [r9, #0xc]
- and r2, r4, #0xff
- blx r3
- add sp, sp, #0x5c
- mov r0, #0x1
- ldmia sp!, {r4-r11,pc}
-_020B8704:
- mov r7, #0x0
- mov r3, r7
- mov r4, r9
- mov r2, r8, lsl #0x1
-_020B8714:
- add r0, r2, r4
- ldrh r0, [r0, #0x1a]
- and r0, r0, #0x300
- cmp r0, #0x100
- ldreq r0, [r4, #0x4]
- moveq r1, r4
- ldr r4, [r4, #0x10]
- addeq r7, r7, r0
- addeq r3, r3, #0x1
- cmp r4, #0x0
- bne _020B8714
- cmp r7, #0x0
- addeq sp, sp, #0x5c
- moveq r0, #0x0
- ldmeqia sp!, {r4-r11,pc}
- cmp r3, #0x1
- bne _020B877C
- add r0, r1, r8, lsl #0x1
- ldrh r2, [r0, #0x1a]
- ldr r3, [r1, #0xc]
- mov r0, r10
- and r2, r2, #0xff
- blx r3
- add sp, sp, #0x5c
- mov r0, #0x1
- ldmia sp!, {r4-r11,pc}
-_020B877C:
- mov r1, r10
- mov r0, #0x0
- mov r2, #0x58
- bl MIi_CpuClearFast
- mvn r0, #0x0
- str r0, [r10, #0x0]
- add r5, sp, #0x0
- add r4, sp, #0x4
- add r11, sp, #0x10
-_020B87A0:
- add r0, r9, r8, lsl #0x1
- ldrh r2, [r0, #0x1a]
- and r0, r2, #0x300
- cmp r0, #0x100
- bne _020B8948
- ldr r0, [r9, #0x4]
- cmp r0, #0x0
- ble _020B8948
- ldr r3, [r9, #0xc]
- mov r0, r5
- mov r1, r9
- and r2, r2, #0xff
- blx r3
- cmp r7, #0x1000
- ldreq r6, [r9, #0x4]
- beq _020B87F0
- ldr r0, [r9, #0x4]
- mov r1, r7
- bl FX_Div
- mov r6, r0
-_020B87F0:
- ldr r3, [sp, #0x0]
- mov r1, r4
- mov r2, r6
- add r0, r10, #0x4
- and r3, r3, #0x1
- bl FUN_020B8998
- ldr r1, [sp, #0x0]
- add r0, r10, #0x10
- and r3, r1, #0x8
- mov r1, r11
- mov r2, r6
- bl FUN_020B8998
- ldr r3, [sp, #0x0]
- add r0, r10, #0x1c
- add r1, sp, #0x1c
- mov r2, r6
- and r3, r3, #0x10
- bl FUN_020B8998
- ldr r0, [sp, #0x0]
- ands r0, r0, #0x4
- bne _020B8898
- ldr r0, [sp, #0x4c]
- ldr r2, [r10, #0x4c]
- smull r1, r0, r6, r0
- mov r1, r1, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- add r0, r2, r1
- str r0, [r10, #0x4c]
- ldr r0, [sp, #0x50]
- ldr r2, [r10, #0x50]
- smull r1, r0, r6, r0
- mov r1, r1, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- add r0, r2, r1
- str r0, [r10, #0x50]
- ldr r0, [sp, #0x54]
- ldr r2, [r10, #0x54]
- smull r1, r0, r6, r0
- mov r1, r1, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- add r0, r2, r1
- str r0, [r10, #0x54]
-_020B8898:
- ldr r0, [sp, #0x0]
- ands r0, r0, #0x2
- bne _020B8920
- ldr r0, [sp, #0x28]
- ldr r1, [r10, #0x28]
- mul r0, r6, r0
- add r0, r1, r0, asr #0xc
- str r0, [r10, #0x28]
- ldr r0, [sp, #0x2c]
- ldr r1, [r10, #0x2c]
- mul r0, r6, r0
- add r0, r1, r0, asr #0xc
- str r0, [r10, #0x2c]
- ldr r0, [sp, #0x30]
- ldr r1, [r10, #0x30]
- mul r0, r6, r0
- add r0, r1, r0, asr #0xc
- str r0, [r10, #0x30]
- ldr r0, [sp, #0x34]
- ldr r1, [r10, #0x34]
- mul r0, r6, r0
- add r0, r1, r0, asr #0xc
- str r0, [r10, #0x34]
- ldr r0, [sp, #0x38]
- ldr r1, [r10, #0x38]
- mul r0, r6, r0
- add r0, r1, r0, asr #0xc
- str r0, [r10, #0x38]
- ldr r0, [sp, #0x3c]
- ldr r1, [r10, #0x3c]
- mul r0, r6, r0
- add r0, r1, r0, asr #0xc
- str r0, [r10, #0x3c]
- b _020B8938
-_020B8920:
- ldr r0, [r10, #0x28]
- add r0, r0, r6
- str r0, [r10, #0x28]
- ldr r0, [r10, #0x38]
- add r0, r0, r6
- str r0, [r10, #0x38]
-_020B8938:
- ldr r1, [r10, #0x0]
- ldr r0, [sp, #0x0]
- and r0, r1, r0
- str r0, [r10, #0x0]
-_020B8948:
- ldr r9, [r9, #0x10]
- cmp r9, #0x0
- bne _020B87A0
- add r0, r10, #0x28
- add r1, r10, #0x34
- add r2, r10, #0x40
- bl VEC_CrossProduct
- add r0, r10, #0x28
- mov r1, r0
- bl VEC_Normalize
- add r0, r10, #0x40
- mov r1, r0
- bl VEC_Normalize
- add r0, r10, #0x40
- add r1, r10, #0x28
- add r2, r10, #0x34
- bl VEC_CrossProduct
- mov r0, #0x1
- add sp, sp, #0x5c
- ldmia sp!, {r4-r11,pc}
-
- arm_func_start FUN_020B8998
-FUN_020B8998:
- cmp r3, #0x0
- beq _020B89C8
- ldr r1, [r0, #0x0]
- add r1, r1, r2
- str r1, [r0, #0x0]
- ldr r1, [r0, #0x4]
- add r1, r1, r2
- str r1, [r0, #0x4]
- ldr r1, [r0, #0x8]
- add r1, r1, r2
- str r1, [r0, #0x8]
- bx lr
-_020B89C8:
- ldr r3, [r1, #0x0]
- ldr r12, [r0, #0x0]
- mul r3, r2, r3
- add r3, r12, r3, asr #0xc
- str r3, [r0, #0x0]
- ldr r3, [r1, #0x4]
- ldr r12, [r0, #0x4]
- mul r3, r2, r3
- add r3, r12, r3, asr #0xc
- str r3, [r0, #0x4]
- ldr r1, [r1, #0x8]
- ldr r3, [r0, #0x8]
- mul r1, r2, r1
- add r1, r3, r1, asr #0xc
- str r1, [r0, #0x8]
- bx lr
-
- arm_func_start FUN_020B8A08
-FUN_020B8A08: ; 0x020B8A08
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r6, r0
- mov r5, r1
- mov r0, #0x0
- mov r4, r2, lsl #0x1
- mov r7, #0x1
-_020B8A24:
- add r1, r4, r5
- ldrh r2, [r1, #0x1a]
- ands r1, r2, #0x100
- beq _020B8A4C
- ldr r3, [r5, #0xc]
- mov r0, r6
- mov r1, r5
- and r2, r2, #0xff
- blx r3
- mov r0, r7
-_020B8A4C:
- ldr r5, [r5, #0x10]
- cmp r5, #0x0
- bne _020B8A24
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020B8A60
-FUN_020B8A60: ; 0x020B8A60
- stmdb sp!, {r4-r6,lr}
- sub sp, sp, #0x80
- mov r5, r0
- ldr r1, [r5, #0x8]
- ands r0, r1, #0x200
- bne _020B8DB4
- ands r0, r1, #0x1
- beq _020B8DB4
- add r0, sp, #0x10
- mov r1, #0x0
- bl FUN_020BB824
- mov r0, #0x1e
- str r0, [sp, #0x0]
- add r1, sp, #0x0
- mov r0, #0x13
- mov r2, #0x1
- bl FUN_020BB1C0
- ldr r2, [r5, #0xb0]
- ldr r0, [r2, #0x10]
- and r1, r0, #0xc0000000
- cmp r1, #0xc0000000
- beq _020B8AF0
- bic r0, r0, #0xc0000000
- str r0, [r2, #0x10]
- ldr r2, [r5, #0xb0]
- ldr r3, _020B8DC8 ; =UNK_02106630
- ldr r0, [r2, #0x10]
- ldr r1, _020B8DCC ; =UNK_02106634
- orr r0, r0, #0xc0000000
- str r0, [r2, #0x10]
- ldr r2, [r5, #0xb0]
- ldr r0, [r3, #0x0]
- ldr r4, [r2, #0x10]
- mov r2, #0x1
- str r4, [r3, #0x4]
- bl FUN_020BB1C0
-_020B8AF0:
- ldr r0, [r5, #0x40]
- cmp r0, #0x0
- ldrneb r4, [r5, #0x99]
- moveq r4, #0x0
- cmp r4, #0x1
- bne _020B8B3C
- ldr r1, [r5, #0x8]
- mov r0, r5
- bic r1, r1, #0x40
- str r1, [r5, #0x8]
- ldr r1, [r5, #0x40]
- blx r1
- ldr r0, [r5, #0x40]
- cmp r0, #0x0
- ldrneb r4, [r5, #0x99]
- ldr r0, [r5, #0x8]
- moveq r4, #0x0
- and r0, r0, #0x40
- b _020B8B40
-_020B8B3C:
- mov r0, #0x0
-_020B8B40:
- cmp r0, #0x0
- bne _020B8B84
- ldr r0, [r5, #0xb0]
- ldr r1, _020B8DD0 ; =UNK_02106660
- ldrh r6, [r0, #0x2e]
- ldrh r3, [r0, #0x2c]
- mov r0, #0x16
- rsb r2, r6, #0x0
- mov lr, r3, lsl #0xf
- mov r12, r2, lsl #0xf
- mov r3, r6, lsl #0xf
- mov r2, #0x10
- str lr, [r1, #0x0]
- str r12, [r1, #0x14]
- str lr, [r1, #0x30]
- str r3, [r1, #0x34]
- bl FUN_020BB1C0
-_020B8B84:
- cmp r4, #0x2
- bne _020B8BC0
- ldr r1, [r5, #0x8]
- mov r0, r5
- bic r1, r1, #0x40
- str r1, [r5, #0x8]
- ldr r1, [r5, #0x40]
- blx r1
- ldr r0, [r5, #0x40]
- cmp r0, #0x0
- ldrneb r4, [r5, #0x99]
- ldr r0, [r5, #0x8]
- moveq r4, #0x0
- and r0, r0, #0x40
- b _020B8BC4
-_020B8BC0:
- mov r0, #0x0
-_020B8BC4:
- cmp r0, #0x0
- bne _020B8C28
- ldr r12, [r5, #0xd8]
- ldr r0, [r5, #0x0]
- ldrh r2, [r12, #0xa]
- add r3, r12, #0x4
- ldrb r0, [r0, #0x1]
- ldrh r1, [r3, r2]
- add r2, r3, r2
- mla r0, r1, r0, r2
- ldr r0, [r0, #0x4]
- add r1, r12, r0
- ldrh r2, [r1, #0x1e]
- ands r0, r2, #0x2000
- beq _020B8C28
- add r1, r1, #0x2c
- ands r0, r2, #0x2
- addeq r1, r1, #0x8
- ands r0, r2, #0x4
- addeq r1, r1, #0x4
- ands r0, r2, #0x8
- addeq r1, r1, #0x8
- mov r0, #0x18
- mov r2, #0x10
- bl FUN_020BB1C0
-_020B8C28:
- cmp r4, #0x3
- movne r0, #0x0
- bne _020B8C54
- ldr r1, [r5, #0x8]
- mov r0, r5
- bic r1, r1, #0x40
- str r1, [r5, #0x8]
- ldr r1, [r5, #0x40]
- blx r1
- ldr r0, [r5, #0x8]
- and r0, r0, #0x40
-_020B8C54:
- cmp r0, #0x0
- bne _020B8D84
- ldr r0, _020B8DD4 ; =UNK_021CED18
- ldr r1, [r0, #0xfc]
- ands r0, r1, #0x1
- beq _020B8CA0
- ldr r1, _020B8DD8 ; =UNK_021CEDF8
- mov r0, #0x1c
- mov r2, #0x3
- bl FUN_020BB1C0
- ldr r1, _020B8DDC ; =UNK_021CEDD4
- mov r0, #0x1a
- mov r2, #0x9
- bl FUN_020BB1C0
- add r1, sp, #0x10
- mov r0, #0x19
- mov r2, #0xc
- bl FUN_020BB1C0
- b _020B8CE0
-_020B8CA0:
- ands r0, r1, #0x2
- beq _020B8CBC
- add r1, sp, #0x10
- mov r0, #0x19
- mov r2, #0xc
- bl FUN_020BB1C0
- b _020B8CE0
-_020B8CBC:
- bl FUN_020B8344
- mov r1, r0
- mov r0, #0x19
- mov r2, #0xc
- bl FUN_020BB1C0
- add r1, sp, #0x10
- mov r0, #0x19
- mov r2, #0xc
- bl FUN_020BB1C0
-_020B8CE0:
- bl FUN_020BB394
- ldr r0, _020B8DE0 ; =0x04000440
- mov r2, #0x0
- ldr r1, _020B8DE4 ; =0x04000444
- str r2, [r0, #0x0]
- ldr r0, _020B8DE8 ; =0x04000454
- str r2, [r1, #0x0]
- str r2, [r0, #0x0]
- add r4, sp, #0x40
-_020B8D04:
- mov r0, r4
- bl G3X_GetClipMtx
- cmp r0, #0x0
- bne _020B8D04
- ldr r1, _020B8DEC ; =0x04000448
- mov r2, #0x1
- str r2, [r1, #0x0]
- ldr r0, _020B8DE0 ; =0x04000440
- mov r2, #0x3
- str r2, [r0, #0x0]
- add r1, sp, #0x40
- mov r0, #0x16
- mov r2, #0x10
- bl FUN_020BB1C0
- ldr r1, [sp, #0x70]
- ldr r0, [sp, #0x74]
- mov r2, r1, asr #0x4
- mov r1, r0, asr #0x4
- mov r0, r2, lsl #0x8
- mov r1, r1, lsl #0x8
- mov r0, r0, asr #0x10
- mov r1, r1, asr #0x10
- mov r0, r0, lsl #0x10
- mov r1, r1, lsl #0x10
- mov r2, r0, lsr #0x10
- mov r0, r1, lsr #0x10
- orr r3, r2, r0, lsl #0x10
- add r1, sp, #0x4
- mov r0, #0x22
- mov r2, #0x1
- str r3, [sp, #0x4]
- bl FUN_020BB1C0
-_020B8D84:
- mov r3, #0x2
- add r1, sp, #0x8
- mov r0, #0x10
- mov r2, #0x1
- str r3, [sp, #0x8]
- bl FUN_020BB1C0
- mov r3, #0x1e
- add r1, sp, #0xc
- mov r0, #0x14
- mov r2, #0x1
- str r3, [sp, #0xc]
- bl FUN_020BB1C0
-_020B8DB4:
- ldr r0, [r5, #0x0]
- add r0, r0, #0x3
- str r0, [r5, #0x0]
- add sp, sp, #0x80
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020B8DC8: .word UNK_02106630
-_020B8DCC: .word UNK_02106634
-_020B8DD0: .word UNK_02106660
-_020B8DD4: .word UNK_021CED18
-_020B8DD8: .word UNK_021CEDF8
-_020B8DDC: .word UNK_021CEDD4
-_020B8DE0: .word 0x04000440
-_020B8DE4: .word 0x04000444
-_020B8DE8: .word 0x04000454
-_020B8DEC: .word 0x04000448
-
- arm_func_start FUN_020B8DF0
-FUN_020B8DF0: ; 0x020B8DF0
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x44
- mov r7, r0
- ldr r1, [r7, #0x8]
- ands r0, r1, #0x200
- bne _020B90E8
- ands r0, r1, #0x1
- beq _020B90E8
- ldr r2, [r7, #0xb0]
- ldr r0, [r2, #0x10]
- and r1, r0, #0xc0000000
- cmp r1, #0x80000000
- beq _020B8E5C
- bic r0, r0, #0xc0000000
- str r0, [r2, #0x10]
- ldr r2, [r7, #0xb0]
- ldr r3, _020B90FC ; =UNK_02106638
- ldr r0, [r2, #0x10]
- ldr r1, _020B9100 ; =UNK_0210663C
- orr r0, r0, #0x80000000
- str r0, [r2, #0x10]
- ldr r2, [r7, #0xb0]
- ldr r0, [r3, #0x0]
- ldr r4, [r2, #0x10]
- mov r2, #0x1
- str r4, [r3, #0x4]
- bl FUN_020BB1C0
-_020B8E5C:
- mov r0, #0x3
- str r0, [sp, #0x0]
- add r1, sp, #0x0
- mov r0, #0x10
- mov r2, #0x1
- bl FUN_020BB1C0
- ldr r0, [r7, #0x3c]
- cmp r0, #0x0
- ldrneb r6, [r7, #0x98]
- moveq r6, #0x0
- cmp r6, #0x1
- bne _020B8EC0
- ldr r1, [r7, #0x8]
- mov r0, r7
- bic r1, r1, #0x40
- str r1, [r7, #0x8]
- ldr r1, [r7, #0x3c]
- blx r1
- ldr r0, [r7, #0x3c]
- cmp r0, #0x0
- ldrneb r6, [r7, #0x98]
- ldr r0, [r7, #0x8]
- moveq r6, #0x0
- and r0, r0, #0x40
- b _020B8EC4
-_020B8EC0:
- mov r0, #0x0
-_020B8EC4:
- cmp r0, #0x0
- bne _020B8F3C
- ldr r0, [r7, #0xb0]
- add r1, sp, #0x38
- ldrh r4, [r0, #0x2e]
- ldrh r5, [r0, #0x2c]
- mov r3, #0x10000
- rsb r0, r4, #0x0
- mov r12, r0, lsl #0xf
- mov lr, r5, lsl #0xf
- mov r0, #0x1b
- mov r2, #0x3
- str lr, [sp, #0x38]
- str r12, [sp, #0x3c]
- str r3, [sp, #0x40]
- bl FUN_020BB1C0
- mov r0, r5, lsl #0x13
- mov r1, r4, lsl #0x13
- mov r0, r0, asr #0x10
- mov r1, r1, asr #0x10
- mov r0, r0, lsl #0x10
- mov r1, r1, lsl #0x10
- mov r2, r0, lsr #0x10
- mov r0, r1, lsr #0x10
- orr r3, r2, r0, lsl #0x10
- add r1, sp, #0x4
- mov r0, #0x22
- mov r2, #0x1
- str r3, [sp, #0x4]
- bl FUN_020BB1C0
-_020B8F3C:
- cmp r6, #0x2
- bne _020B8F78
- ldr r1, [r7, #0x8]
- mov r0, r7
- bic r1, r1, #0x40
- str r1, [r7, #0x8]
- ldr r1, [r7, #0x3c]
- blx r1
- ldr r0, [r7, #0x3c]
- cmp r0, #0x0
- ldrneb r6, [r7, #0x98]
- ldr r0, [r7, #0x8]
- moveq r6, #0x0
- and r0, r0, #0x40
- b _020B8F7C
-_020B8F78:
- mov r0, #0x0
-_020B8F7C:
- cmp r0, #0x0
- bne _020B8FE0
- ldr r4, [r7, #0xd8]
- ldr r0, [r7, #0x0]
- ldrh r2, [r4, #0xa]
- add r3, r4, #0x4
- ldrb r0, [r0, #0x1]
- ldrh r1, [r3, r2]
- add r2, r3, r2
- mla r0, r1, r0, r2
- ldr r0, [r0, #0x4]
- add r1, r4, r0
- ldrh r2, [r1, #0x1e]
- ands r0, r2, #0x2000
- beq _020B8FE0
- add r1, r1, #0x2c
- ands r0, r2, #0x2
- addeq r1, r1, #0x8
- ands r0, r2, #0x4
- addeq r1, r1, #0x4
- ands r0, r2, #0x8
- addeq r1, r1, #0x8
- mov r0, #0x18
- mov r2, #0x10
- bl FUN_020BB1C0
-_020B8FE0:
- cmp r6, #0x3
- movne r0, #0x0
- bne _020B900C
- ldr r1, [r7, #0x8]
- mov r0, r7
- bic r1, r1, #0x40
- str r1, [r7, #0x8]
- ldr r1, [r7, #0x3c]
- blx r1
- ldr r0, [r7, #0x8]
- and r0, r0, #0x40
-_020B900C:
- cmp r0, #0x0
- bne _020B90D0
- mov r3, #0x2
- add r1, sp, #0x8
- mov r0, #0x10
- mov r2, #0x1
- str r3, [sp, #0x8]
- bl FUN_020BB1C0
- add r1, sp, #0x14
- mov r0, #0x0
- bl FUN_020BB824
- mov r3, #0x3
- add r1, sp, #0xc
- mov r0, #0x10
- mov r2, #0x1
- str r3, [sp, #0xc]
- bl FUN_020BB1C0
- ldr r0, _020B9104 ; =UNK_021CED18
- ldr r1, [r0, #0xfc]
- ands r0, r1, #0x1
- beq _020B9094
- ldr r1, _020B9108 ; =UNK_021CED64
- mov r0, #0x1a
- mov r2, #0x9
- bl FUN_020BB1C0
- ldr r1, _020B910C ; =UNK_021CEDD4
- mov r0, #0x1a
- mov r2, #0x9
- bl FUN_020BB1C0
- add r1, sp, #0x14
- mov r0, #0x1a
- mov r2, #0x9
- bl FUN_020BB1C0
- b _020B90D0
-_020B9094:
- ands r0, r1, #0x2
- beq _020B90C0
- ldr r1, _020B9108 ; =UNK_021CED64
- mov r0, #0x1a
- mov r2, #0x9
- bl FUN_020BB1C0
- add r1, sp, #0x14
- mov r0, #0x1a
- mov r2, #0x9
- bl FUN_020BB1C0
- b _020B90D0
-_020B90C0:
- add r1, sp, #0x14
- mov r0, #0x1a
- mov r2, #0x9
- bl FUN_020BB1C0
-_020B90D0:
- mov r3, #0x2
- add r1, sp, #0x10
- mov r0, #0x10
- mov r2, #0x1
- str r3, [sp, #0x10]
- bl FUN_020BB1C0
-_020B90E8:
- ldr r0, [r7, #0x0]
- add r0, r0, #0x3
- str r0, [r7, #0x0]
- add sp, sp, #0x44
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020B90FC: .word UNK_02106638
-_020B9100: .word UNK_0210663C
-_020B9104: .word UNK_021CED18
-_020B9108: .word UNK_021CED64
-_020B910C: .word UNK_021CEDD4
-
- arm_func_start FUN_020B9110
-FUN_020B9110: ; 0x020B9110
- stmdb sp!, {r4,lr}
- sub sp, sp, #0x10
- mov r4, r0
- ldr r2, [r4, #0x8]
- ands r0, r2, #0x100
- bne _020B9164
- ands r0, r2, #0x200
- bne _020B9164
- cmp r1, #0x0
- ldreq r0, [r4, #0xe0]
- add r1, sp, #0x0
- streq r0, [sp, #0x8]
- streq r0, [sp, #0x4]
- streq r0, [sp, #0x0]
- ldrne r0, [r4, #0xe4]
- mov r2, #0x3
- strne r0, [sp, #0x8]
- strne r0, [sp, #0x4]
- strne r0, [sp, #0x0]
- mov r0, #0x1b
- bl FUN_020BB1C0
-_020B9164:
- ldr r0, [r4, #0x0]
- add r0, r0, #0x1
- str r0, [r4, #0x0]
- add sp, sp, #0x10
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020B9178
-FUN_020B9178: ; 0x020B9178
- stmdb sp!, {r4-r6,lr}
- mov r5, r0
- ldr r0, [r5, #0x34]
- cmp r0, #0x0
- ldrneb r4, [r5, #0x96]
- moveq r4, #0x0
- cmp r4, #0x1
- bne _020B91CC
- ldr r1, [r5, #0x8]
- mov r0, r5
- bic r1, r1, #0x40
- str r1, [r5, #0x8]
- ldr r1, [r5, #0x34]
- blx r1
- ldr r0, [r5, #0x34]
- cmp r0, #0x0
- ldrneb r4, [r5, #0x96]
- ldr r0, [r5, #0x8]
- moveq r4, #0x0
- and r1, r0, #0x40
- b _020B91D0
-_020B91CC:
- mov r1, #0x0
-_020B91D0:
- ldr r0, [r5, #0x8]
- ands r0, r0, #0x100
- bne _020B9228
- cmp r1, #0x0
- bne _020B9228
- ldr r0, [r5, #0x0]
- ldrb r12, [r0, #0x1]
- ldrb r3, [r0, #0x2]
- ldrb lr, [r0, #0x3]
- ldrb r2, [r0, #0x5]
- ldrb r1, [r0, #0x6]
- orr r3, r12, r3, lsl #0x8
- ldrb r6, [r0, #0x4]
- orr r12, r3, lr, lsl #0x10
- ldrb r3, [r0, #0x7]
- orr r1, r2, r1, lsl #0x8
- orr r6, r12, r6, lsl #0x18
- ldrb r2, [r0, #0x8]
- orr r1, r1, r3, lsl #0x10
- add r0, r0, r6
- orr r1, r1, r2, lsl #0x18
- bl FUN_020BB2B0
-_020B9228:
- cmp r4, #0x3
- bne _020B9248
- ldr r1, [r5, #0x8]
- mov r0, r5
- bic r1, r1, #0x40
- str r1, [r5, #0x8]
- ldr r1, [r5, #0x34]
- blx r1
-_020B9248:
- ldr r0, [r5, #0x0]
- add r0, r0, #0x9
- str r0, [r5, #0x0]
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020B9258
-FUN_020B9258: ; 0x020B9258
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x8c
- ldr r1, [r0, #0x4]
- ldr r4, [r0, #0x0]
- ldr r6, [r1, #0x4]
- ldrb r2, [r4, #0x2]
- ldr r3, [r6, #0x10]
- mov r10, #0x0
- str r0, [sp, #0x0]
- str r2, [sp, #0x8]
- add r3, r6, r3
- add r1, sp, #0x34
- mov r0, r10
- mov r2, #0x54
- mov r9, r10
- str r3, [sp, #0x4]
- add r8, r4, #0x3
- bl MIi_CpuClearFast
- bl FUN_020BB394
- ldr r0, _020B98AC ; =0x04000440
- mov r7, r10
- str r7, [r0, #0x0]
- mov r0, #0x1
- ldr r2, _020B98B0 ; =0x0400044C
- ldr r1, _020B98B4 ; =0x04000454
- str r0, [r2, #0x0]
- str r0, [sp, #0x10]
- str r7, [r1, #0x0]
- mov r1, #0x2
- ldr r0, _020B98AC ; =0x04000440
- str r1, [sp, #0x14]
- str r1, [r0, #0x0]
- ldr r0, [sp, #0x8]
- cmp r0, #0x0
- bls _020B96CC
-_020B92E4:
- ldrb r4, [r8, #0x1]
- mov r0, #0x64
- ldr r3, _020B98B8 ; =UNK_021D0380
- mul r0, r4, r0
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x0]
- mov r1, r4, lsr #0x5
- add r0, r0, r1, lsl #0x2
- ldr r1, [sp, #0x10]
- and r2, r4, #0x1f
- mov r1, r1, lsl r2
- ldr r11, [r0, #0xcc]
- ldr r2, [sp, #0xc]
- ands r11, r1, r11
- add r6, r3, r2
- bne _020B9358
- ldr r3, [r0, #0xcc]
- mov r2, #0x54
- orr r1, r3, r1
- str r1, [r0, #0xcc]
- ldr r0, [sp, #0x4]
- ldr r1, _020B98BC ; =0x04000450
- mla r0, r4, r2, r0
- ldrb r2, [r8, #0x0]
- str r2, [r1, #0x0]
- ldr r2, [sp, #0x10]
- ldr r1, _020B98AC ; =0x04000440
- str r2, [r1, #0x0]
- bl G3_MultMtx43
-_020B9358:
- cmp r7, #0x0
- beq _020B9500
- ldr r2, [sp, #0x6c]
- ldr r1, [r5, #0x0]
- str r2, [sp, #0x18]
- ldr r2, [sp, #0x70]
- mov r0, r1, asr #0x1f
- str r2, [sp, #0x1c]
- ldr r2, [sp, #0x74]
- ldr r12, [sp, #0x64]
- str r2, [sp, #0x20]
- ldr r2, [sp, #0x78]
- ldr lr, [sp, #0x68]
- str r2, [sp, #0x24]
- ldr r2, [sp, #0x7c]
- str r2, [sp, #0x28]
- ldr r2, [sp, #0x80]
- str r2, [sp, #0x2c]
- ldr r2, [sp, #0x84]
- str r2, [sp, #0x30]
- umull r3, r2, r10, r1
- mla r2, r10, r0, r2
- mla r2, r9, r1, r2
- mov r0, r3, lsr #0xc
- orr r0, r0, r2, lsl #0x14
- adds r0, r12, r0
- str r0, [sp, #0x64]
- ldr r1, [r5, #0x4]
- mov r0, r1, asr #0x1f
- umull r3, r2, r10, r1
- mla r2, r10, r0, r2
- mla r2, r9, r1, r2
- mov r0, r3, lsr #0xc
- orr r0, r0, r2, lsl #0x14
- adds r0, lr, r0
- str r0, [sp, #0x68]
- ldr r1, [r5, #0x8]
- mov r0, r1, asr #0x1f
- umull r3, r2, r10, r1
- mla r2, r10, r0, r2
- mla r2, r9, r1, r2
- mov r1, r3, lsr #0xc
- ldr r0, [sp, #0x18]
- orr r1, r1, r2, lsl #0x14
- adds r0, r0, r1
- str r0, [sp, #0x6c]
- ldr r1, [r5, #0xc]
- mov r0, r1, asr #0x1f
- umull r3, r2, r10, r1
- mla r2, r10, r0, r2
- mla r2, r9, r1, r2
- mov r1, r3, lsr #0xc
- ldr r0, [sp, #0x1c]
- orr r1, r1, r2, lsl #0x14
- adds r0, r0, r1
- str r0, [sp, #0x70]
- ldr r1, [r5, #0x10]
- mov r0, r1, asr #0x1f
- umull r3, r2, r10, r1
- mla r2, r10, r0, r2
- mla r2, r9, r1, r2
- mov r1, r3, lsr #0xc
- ldr r0, [sp, #0x20]
- orr r1, r1, r2, lsl #0x14
- adds r0, r0, r1
- str r0, [sp, #0x74]
- ldr r1, [r5, #0x14]
- mov r0, r1, asr #0x1f
- umull r3, r2, r10, r1
- mla r2, r10, r0, r2
- mla r2, r9, r1, r2
- mov r1, r3, lsr #0xc
- ldr r0, [sp, #0x24]
- orr r1, r1, r2, lsl #0x14
- adds r0, r0, r1
- str r0, [sp, #0x78]
- ldr r1, [r5, #0x18]
- mov r0, r1, asr #0x1f
- umull r3, r2, r10, r1
- mla r2, r10, r0, r2
- mla r2, r9, r1, r2
- mov r1, r3, lsr #0xc
- ldr r0, [sp, #0x28]
- orr r1, r1, r2, lsl #0x14
- adds r0, r0, r1
- str r0, [sp, #0x7c]
- ldr r1, [r5, #0x1c]
- mov r0, r1, asr #0x1f
- umull r3, r2, r10, r1
- mla r2, r10, r0, r2
- mla r2, r9, r1, r2
- mov r1, r3, lsr #0xc
- ldr r0, [sp, #0x2c]
- orr r1, r1, r2, lsl #0x14
- adds r0, r0, r1
- str r0, [sp, #0x80]
- ldr r1, [r5, #0x20]
- mov r0, r1, asr #0x1f
- umull r3, r2, r10, r1
- mla r2, r10, r0, r2
- mla r2, r9, r1, r2
- mov r1, r3, lsr #0xc
- ldr r0, [sp, #0x30]
- orr r1, r1, r2, lsl #0x14
- adds r0, r0, r1
- str r0, [sp, #0x84]
-_020B9500:
- cmp r11, #0x0
- bne _020B9538
-_020B9508:
- mov r0, r6
- bl G3X_GetClipMtx
- cmp r0, #0x0
- bne _020B9508
- ldr r1, [sp, #0x14]
- ldr r0, _020B98AC ; =0x04000440
- str r1, [r0, #0x0]
- ldr r0, [sp, #0x4]
- mov r1, #0x54
- mla r0, r4, r1, r0
- add r0, r0, #0x30
- bl G3_MultMtx33
-_020B9538:
- ldrb r1, [r8, #0x2]
- ldr r2, [sp, #0x34]
- ldr r0, [r6, #0x0]
- mov r10, r1, lsl #0x4
- smull r1, r0, r10, r0
- mov r1, r1, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- adds r0, r2, r1
- str r0, [sp, #0x34]
- mov r9, r10, asr #0x1f
- ldr r2, [sp, #0x38]
- ldr r0, [r6, #0x4]
- ldr r3, [sp, #0x3c]
- smull r1, r0, r10, r0
- mov r1, r1, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- adds r0, r2, r1
- str r0, [sp, #0x38]
- ldr r0, [r6, #0x8]
- ldr r2, [sp, #0x40]
- smull r1, r0, r10, r0
- mov r1, r1, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- adds r0, r3, r1
- str r0, [sp, #0x3c]
- ldr r0, [r6, #0x10]
- ldr r3, [sp, #0x44]
- smull r1, r0, r10, r0
- mov r1, r1, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- adds r0, r2, r1
- str r0, [sp, #0x40]
- ldr r0, [r6, #0x14]
- ldr r2, [sp, #0x48]
- smull r1, r0, r10, r0
- mov r1, r1, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- adds r0, r3, r1
- str r0, [sp, #0x44]
- ldr r0, [r6, #0x18]
- ldr r3, [sp, #0x4c]
- smull r1, r0, r10, r0
- mov r1, r1, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- adds r0, r2, r1
- str r0, [sp, #0x48]
- ldr r0, [r6, #0x20]
- ldr r2, [sp, #0x50]
- smull r1, r0, r10, r0
- mov r1, r1, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- adds r0, r3, r1
- str r0, [sp, #0x4c]
- ldr r0, [r6, #0x24]
- ldr r3, [sp, #0x54]
- smull r1, r0, r10, r0
- mov r1, r1, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- adds r0, r2, r1
- str r0, [sp, #0x50]
- ldr r0, [r6, #0x28]
- ldr r2, [sp, #0x58]
- smull r1, r0, r10, r0
- mov r1, r1, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- adds r0, r3, r1
- str r0, [sp, #0x54]
- ldr r0, [r6, #0x30]
- ldr r3, [sp, #0x5c]
- smull r1, r0, r10, r0
- mov r1, r1, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- adds r0, r2, r1
- str r0, [sp, #0x58]
- ldr r0, [r6, #0x34]
- ldr r2, [sp, #0x60]
- smull r1, r0, r10, r0
- mov r1, r1, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- adds r0, r3, r1
- str r0, [sp, #0x5c]
- ldr r0, [r6, #0x38]
- smull r1, r0, r10, r0
- mov r1, r1, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- adds r0, r2, r1
- str r0, [sp, #0x60]
- cmp r11, #0x0
- ldr r1, _020B98C0 ; =UNK_021D03C0
- ldr r0, [sp, #0xc]
- add r5, r1, r0
- add r8, r8, #0x3
- bne _020B96BC
-_020B96AC:
- mov r0, r5
- bl G3X_GetVectorMtx
- cmp r0, #0x0
- bne _020B96AC
-_020B96BC:
- ldr r0, [sp, #0x8]
- add r7, r7, #0x1
- cmp r7, r0
- blo _020B92E4
-_020B96CC:
- ldr r1, [r5, #0x0]
- ldr r4, [sp, #0x64]
- mov r0, r1, asr #0x1f
- umull r3, r2, r10, r1
- mla r2, r10, r0, r2
- mla r2, r9, r1, r2
- mov r0, r3, lsr #0xc
- orr r0, r0, r2, lsl #0x14
- adds r0, r4, r0
- str r0, [sp, #0x64]
- ldr r1, [r5, #0x4]
- ldr r4, [sp, #0x68]
- mov r0, r1, asr #0x1f
- umull r3, r2, r10, r1
- mla r2, r10, r0, r2
- mla r2, r9, r1, r2
- mov r0, r3, lsr #0xc
- orr r0, r0, r2, lsl #0x14
- adds r0, r4, r0
- str r0, [sp, #0x68]
- ldr r1, [r5, #0x8]
- ldr r4, [sp, #0x6c]
- umull r0, r2, r10, r1
- mov r3, r0, lsr #0xc
- mov r0, r1, asr #0x1f
- mla r2, r10, r0, r2
- mla r2, r9, r1, r2
- orr r3, r3, r2, lsl #0x14
- adds r0, r4, r3
- str r0, [sp, #0x6c]
- ldr r7, [r5, #0xc]
- ldr r12, [sp, #0x70]
- mov r6, r7, asr #0x1f
- umull r11, r8, r10, r7
- mla r8, r10, r6, r8
- mla r8, r9, r7, r8
- mov r6, r11, lsr #0xc
- orr r6, r6, r8, lsl #0x14
- adds r6, r12, r6
- str r6, [sp, #0x70]
- ldr r7, [r5, #0x10]
- ldr r4, [sp, #0x74]
- mov r6, r7, asr #0x1f
- umull r11, r8, r10, r7
- mla r8, r10, r6, r8
- mla r8, r9, r7, r8
- mov r6, r11, lsr #0xc
- orr r6, r6, r8, lsl #0x14
- adds r4, r4, r6
- str r4, [sp, #0x74]
- ldr r6, [r5, #0x14]
- ldr r3, [sp, #0x78]
- mov r4, r6, asr #0x1f
- umull r8, r7, r10, r6
- mla r7, r10, r4, r7
- mla r7, r9, r6, r7
- mov r4, r8, lsr #0xc
- orr r4, r4, r7, lsl #0x14
- adds r3, r3, r4
- str r3, [sp, #0x78]
- ldr r4, [r5, #0x18]
- ldr r2, [sp, #0x7c]
- mov r3, r4, asr #0x1f
- umull r7, r6, r10, r4
- mla r6, r10, r3, r6
- mla r6, r9, r4, r6
- mov r3, r7, lsr #0xc
- orr r3, r3, r6, lsl #0x14
- adds r2, r2, r3
- str r2, [sp, #0x7c]
- ldr r3, [r5, #0x1c]
- ldr r1, [sp, #0x80]
- mov r2, r3, asr #0x1f
- umull r6, r4, r10, r3
- mla r4, r10, r2, r4
- mla r4, r9, r3, r4
- mov r2, r6, lsr #0xc
- orr r2, r2, r4, lsl #0x14
- adds r1, r1, r2
- str r1, [sp, #0x80]
- ldr r2, [r5, #0x20]
- ldr lr, [sp, #0x84]
- mov r1, r2, asr #0x1f
- umull r4, r3, r10, r2
- mla r3, r10, r1, r3
- mla r3, r9, r2, r3
- mov r1, r4, lsr #0xc
- orr r1, r1, r3, lsl #0x14
- adds r1, lr, r1
- add r0, sp, #0x64
- str r1, [sp, #0x84]
- bl G3_LoadMtx43
- ldr r1, _020B98AC ; =0x04000440
- mov r2, #0x1
- add r0, sp, #0x34
- str r2, [r1, #0x0]
- bl G3_LoadMtx43
- ldr r3, _020B98AC ; =0x04000440
- mov r0, #0x0
- str r0, [r3, #0x0]
- ldr r1, _020B98BC ; =0x04000450
- mov r2, #0x1
- mov r0, #0x2
- str r2, [r1, #0x0]
- str r0, [r3, #0x0]
- ldr r0, [sp, #0x0]
- ldr r1, [r0, #0x0]
- ldr r0, _020B98B0 ; =0x0400044C
- ldrb r2, [r1, #0x1]
- mov r1, #0x3
- str r2, [r0, #0x0]
- ldr r0, [sp, #0x0]
- ldr r2, [r0, #0x0]
- ldrb r0, [r2, #0x2]
- add r0, r0, #0x1
- mla r1, r0, r1, r2
- ldr r0, [sp, #0x0]
- str r1, [r0, #0x0]
- add sp, sp, #0x8c
- ldmia sp!, {r4-r11,pc}
- .balign 4
-_020B98AC: .word 0x04000440
-_020B98B0: .word 0x0400044C
-_020B98B4: .word 0x04000454
-_020B98B8: .word UNK_021D0380
-_020B98BC: .word 0x04000450
-_020B98C0: .word UNK_021D03C0
-
- arm_func_start FUN_020B98C4
-FUN_020B98C4: ; 0x020B98C4
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0xcc
- mov r10, r0
- ldr r2, [r10, #0x8]
- mov r9, r1
- ands r0, r2, #0x200
- mov r7, #0x2
- ldr r6, _020B9C28 ; =UNK_02106718
- ldr fp, _020B9C2C ; =UNK_02106724
- ldr r5, _020B9C30 ; =UNK_021066F4
- beq _020B992C
- cmp r9, #0x40
- beq _020B9900
- cmp r9, #0x60
- bne _020B9904
-_020B9900:
- add r7, r7, #0x1
-_020B9904:
- cmp r9, #0x20
- beq _020B9914
- cmp r9, #0x60
- bne _020B9918
-_020B9914:
- add r7, r7, #0x1
-_020B9918:
- ldr r0, [r10, #0x0]
- add sp, sp, #0xcc
- add r0, r0, r7
- str r0, [r10, #0x0]
- ldmia sp!, {r4-r11,pc}
-_020B992C:
- cmp r9, #0x40
- beq _020B993C
- cmp r9, #0x60
- bne _020B9974
-_020B993C:
- add r7, r7, #0x1
- ands r0, r2, #0x100
- bne _020B9974
- cmp r9, #0x40
- ldreq r0, [r10, #0x0]
- add r1, sp, #0x0
- ldreqb r0, [r0, #0x2]
- mov r2, #0x1
- streq r0, [sp, #0x0]
- ldrne r0, [r10, #0x0]
- ldrneb r0, [r0, #0x3]
- strne r0, [sp, #0x0]
- mov r0, #0x14
- bl FUN_020BB1C0
-_020B9974:
- ldr r0, [r10, #0x2c]
- cmp r0, #0x0
- ldrneb r8, [r10, #0x94]
- moveq r8, #0x0
- cmp r8, #0x1
- bne _020B99C0
- ldr r1, [r10, #0x8]
- mov r0, r10
- bic r1, r1, #0x40
- str r1, [r10, #0x8]
- ldr r1, [r10, #0x2c]
- blx r1
- ldr r0, [r10, #0x2c]
- cmp r0, #0x0
- ldrneb r8, [r10, #0x94]
- ldr r0, [r10, #0x8]
- moveq r8, #0x0
- and r1, r0, #0x40
- b _020B99C4
-_020B99C0:
- mov r1, #0x0
-_020B99C4:
- ldr r0, [r10, #0x8]
- ands r0, r0, #0x100
- bne _020B9BA4
- cmp r1, #0x0
- bne _020B9BA4
- bl FUN_020BB394
- ldr r2, _020B9C34 ; =0x00151110
- ldr r1, _020B9C38 ; =0x04000400
- mov r0, #0x0
- str r2, [r1, #0x0]
- str r0, [r1, #0x0]
- str r0, [r1, #0x0]
- add r4, sp, #0x8
-_020B99F8:
- mov r0, r4
- bl G3X_GetClipMtx
- cmp r0, #0x0
- bne _020B99F8
- ldr r0, _020B9C3C ; =UNK_021CED18
- ldr r1, [r0, #0xfc]
- ands r0, r1, #0x1
- beq _020B9A38
- bl FUN_020B82A4
- add r1, sp, #0x48
- bl MTX_Copy43To44_
- add r0, sp, #0x8
- add r1, sp, #0x48
- mov r2, r0
- bl MTX_Concat44
- b _020B9A5C
-_020B9A38:
- ands r0, r1, #0x2
- beq _020B9A5C
- ldr r0, _020B9C40 ; =UNK_021CED64
- add r1, sp, #0x88
- bl MTX_Copy43To44_
- add r0, sp, #0x8
- add r1, sp, #0x88
- mov r2, r0
- bl MTX_Concat44
-_020B9A5C:
- ldr r1, [sp, #0x38]
- add r0, sp, #0x8
- str r1, [r6, #0x0]
- ldr r1, [sp, #0x3c]
- str r1, [r6, #0x4]
- ldr r1, [sp, #0x40]
- str r1, [r6, #0x8]
- bl VEC_Mag
- str r0, [r11, #0x0]
- add r0, sp, #0x18
- bl VEC_Mag
- str r0, [r11, #0x4]
- add r0, sp, #0x28
- bl VEC_Mag
- str r0, [r11, #0x8]
- ldr r0, [sp, #0x1c]
- cmp r0, #0x0
- bne _020B9AB0
- ldr r0, [sp, #0x20]
- cmp r0, #0x0
- beq _020B9AD4
-_020B9AB0:
- add r0, sp, #0x18
- add r1, r5, #0xc
- bl VEC_Normalize
- ldr r0, [r5, #0x14]
- rsb r0, r0, #0x0
- str r0, [r5, #0x1c]
- ldr r0, [r5, #0x10]
- str r0, [r5, #0x20]
- b _020B9AF4
-_020B9AD4:
- add r0, sp, #0x28
- add r1, r5, #0x18
- bl VEC_Normalize
- ldr r0, [r5, #0x1c]
- rsb r0, r0, #0x0
- str r0, [r5, #0x14]
- ldr r0, [r5, #0x20]
- str r0, [r5, #0x10]
-_020B9AF4:
- ldr r0, _020B9C3C ; =UNK_021CED18
- ldr r1, [r0, #0xfc]
- ands r0, r1, #0x1
- beq _020B9B48
- ldr r3, _020B9C44 ; =0x00171012
- ldr r1, _020B9C38 ; =0x04000400
- ldr r0, _020B9C48 ; =UNK_021066EC
- mov r2, #0x8
- str r3, [r1, #0x0]
- bl MIi_CpuSend32
- bl FUN_020B8264
- ldr r1, _020B9C38 ; =0x04000400
- mov r2, #0x30
- bl MIi_CpuSend32
- ldr r2, _020B9C4C ; =0x00001B19
- ldr r1, _020B9C38 ; =0x04000400
- ldr r0, _020B9C30 ; =UNK_021066F4
- str r2, [r1, #0x0]
- mov r2, #0x3c
- bl MIi_CpuSend32
- b _020B9BA4
-_020B9B48:
- ands r0, r1, #0x2
- beq _020B9B94
- ldr r3, _020B9C44 ; =0x00171012
- ldr r1, _020B9C38 ; =0x04000400
- ldr r0, _020B9C48 ; =UNK_021066EC
- mov r2, #0x8
- str r3, [r1, #0x0]
- bl MIi_CpuSend32
- bl FUN_020B8344
- ldr r1, _020B9C38 ; =0x04000400
- mov r2, #0x30
- bl MIi_CpuSend32
- ldr r2, _020B9C4C ; =0x00001B19
- ldr r1, _020B9C38 ; =0x04000400
- ldr r0, _020B9C30 ; =UNK_021066F4
- str r2, [r1, #0x0]
- mov r2, #0x3c
- bl MIi_CpuSend32
- b _020B9BA4
-_020B9B94:
- ldr r0, _020B9C50 ; =UNK_021066E8
- ldr r1, _020B9C38 ; =0x04000400
- mov r2, #0x48
- bl MIi_CpuSend32
-_020B9BA4:
- cmp r8, #0x3
- movne r0, #0x0
- bne _020B9BD0
- ldr r1, [r10, #0x8]
- mov r0, r10
- bic r1, r1, #0x40
- str r1, [r10, #0x8]
- ldr r1, [r10, #0x2c]
- blx r1
- ldr r0, [r10, #0x8]
- and r0, r0, #0x40
-_020B9BD0:
- cmp r9, #0x20
- beq _020B9BE0
- cmp r9, #0x60
- bne _020B9C14
-_020B9BE0:
- cmp r0, #0x0
- add r7, r7, #0x1
- bne _020B9C14
- ldr r0, [r10, #0x8]
- ands r0, r0, #0x100
- bne _020B9C14
- ldr r0, [r10, #0x0]
- add r1, sp, #0x4
- ldrb r3, [r0, #0x2]
- mov r0, #0x13
- mov r2, #0x1
- str r3, [sp, #0x4]
- bl FUN_020BB1C0
-_020B9C14:
- ldr r0, [r10, #0x0]
- add r0, r0, r7
- str r0, [r10, #0x0]
- add sp, sp, #0xcc
- ldmia sp!, {r4-r11,pc}
- .balign 4
-_020B9C28: .word UNK_02106718
-_020B9C2C: .word UNK_02106724
-_020B9C30: .word UNK_021066F4
-_020B9C34: .word 0x00151110
-_020B9C38: .word 0x04000400
-_020B9C3C: .word UNK_021CED18
-_020B9C40: .word UNK_021CED64
-_020B9C44: .word 0x00171012
-_020B9C48: .word UNK_021066EC
-_020B9C4C: .word 0x00001B19
-_020B9C50: .word UNK_021066E8
-
- arm_func_start FUN_020B9C54
-FUN_020B9C54: ; 0x020B9C54
- stmdb sp!, {r4-r10,lr}
- sub sp, sp, #0xc8
- mov r9, r0
- ldr r2, [r9, #0x8]
- mov r8, r1
- ands r0, r2, #0x200
- mov r6, #0x2
- ldr r5, _020B9F58 ; =UNK_021066D0
- ldr r4, _020B9F5C ; =UNK_021066DC
- beq _020B9CB8
- cmp r8, #0x40
- beq _020B9C8C
- cmp r8, #0x60
- bne _020B9C90
-_020B9C8C:
- add r6, r6, #0x1
-_020B9C90:
- cmp r8, #0x20
- beq _020B9CA0
- cmp r8, #0x60
- bne _020B9CA4
-_020B9CA0:
- add r6, r6, #0x1
-_020B9CA4:
- ldr r0, [r9, #0x0]
- add sp, sp, #0xc8
- add r0, r0, r6
- str r0, [r9, #0x0]
- ldmia sp!, {r4-r10,pc}
-_020B9CB8:
- cmp r8, #0x40
- beq _020B9CC8
- cmp r8, #0x60
- bne _020B9D00
-_020B9CC8:
- add r6, r6, #0x1
- ands r0, r2, #0x100
- bne _020B9D00
- cmp r8, #0x40
- ldreq r0, [r9, #0x0]
- add r1, sp, #0x0
- ldreqb r0, [r0, #0x2]
- mov r2, #0x1
- streq r0, [sp, #0x0]
- ldrne r0, [r9, #0x0]
- ldrneb r0, [r0, #0x3]
- strne r0, [sp, #0x0]
- mov r0, #0x14
- bl FUN_020BB1C0
-_020B9D00:
- ldr r0, [r9, #0x28]
- cmp r0, #0x0
- ldrneb r7, [r9, #0x93]
- moveq r7, #0x0
- cmp r7, #0x1
- bne _020B9D4C
- ldr r1, [r9, #0x8]
- mov r0, r9
- bic r1, r1, #0x40
- str r1, [r9, #0x8]
- ldr r1, [r9, #0x28]
- blx r1
- ldr r0, [r9, #0x28]
- cmp r0, #0x0
- ldrneb r7, [r9, #0x93]
- ldr r0, [r9, #0x8]
- moveq r7, #0x0
- and r1, r0, #0x40
- b _020B9D50
-_020B9D4C:
- mov r1, #0x0
-_020B9D50:
- ldr r0, [r9, #0x8]
- ands r0, r0, #0x100
- bne _020B9ED4
- cmp r1, #0x0
- bne _020B9ED4
- bl FUN_020BB394
- ldr r2, _020B9F60 ; =0x00151110
- ldr r1, _020B9F64 ; =0x04000400
- mov r0, #0x0
- str r2, [r1, #0x0]
- str r0, [r1, #0x0]
- str r0, [r1, #0x0]
- add r10, sp, #0x8
-_020B9D84:
- mov r0, r10
- bl G3X_GetClipMtx
- cmp r0, #0x0
- bne _020B9D84
- ldr r0, _020B9F68 ; =UNK_021CED18
- ldr r1, [r0, #0xfc]
- ands r0, r1, #0x1
- beq _020B9DC4
- bl FUN_020B82A4
- add r1, sp, #0x48
- bl MTX_Copy43To44_
- add r0, sp, #0x8
- add r1, sp, #0x48
- mov r2, r0
- bl MTX_Concat44
- b _020B9DE8
-_020B9DC4:
- ands r0, r1, #0x2
- beq _020B9DE8
- ldr r0, _020B9F6C ; =UNK_021CED64
- add r1, sp, #0x88
- bl MTX_Copy43To44_
- add r0, sp, #0x8
- add r1, sp, #0x88
- mov r2, r0
- bl MTX_Concat44
-_020B9DE8:
- ldr r1, [sp, #0x38]
- add r0, sp, #0x8
- str r1, [r5, #0x0]
- ldr r1, [sp, #0x3c]
- str r1, [r5, #0x4]
- ldr r1, [sp, #0x40]
- str r1, [r5, #0x8]
- bl VEC_Mag
- str r0, [r4, #0x0]
- add r0, sp, #0x18
- bl VEC_Mag
- str r0, [r4, #0x4]
- add r0, sp, #0x28
- bl VEC_Mag
- ldr r1, _020B9F68 ; =UNK_021CED18
- str r0, [r4, #0x8]
- ldr r1, [r1, #0xfc]
- ands r0, r1, #0x1
- beq _020B9E78
- ldr r3, _020B9F70 ; =0x00171012
- ldr r1, _020B9F64 ; =0x04000400
- ldr r0, _020B9F74 ; =UNK_021066A4
- mov r2, #0x8
- str r3, [r1, #0x0]
- bl MIi_CpuSend32
- bl FUN_020B8264
- ldr r1, _020B9F64 ; =0x04000400
- mov r2, #0x30
- bl MIi_CpuSend32
- ldr r2, _020B9F78 ; =0x00001B19
- ldr r1, _020B9F64 ; =0x04000400
- ldr r0, _020B9F7C ; =UNK_021066AC
- str r2, [r1, #0x0]
- mov r2, #0x3c
- bl MIi_CpuSend32
- b _020B9ED4
-_020B9E78:
- ands r0, r1, #0x2
- beq _020B9EC4
- ldr r3, _020B9F70 ; =0x00171012
- ldr r1, _020B9F64 ; =0x04000400
- ldr r0, _020B9F74 ; =UNK_021066A4
- mov r2, #0x8
- str r3, [r1, #0x0]
- bl MIi_CpuSend32
- bl FUN_020B8344
- ldr r1, _020B9F64 ; =0x04000400
- mov r2, #0x30
- bl MIi_CpuSend32
- ldr r2, _020B9F78 ; =0x00001B19
- ldr r1, _020B9F64 ; =0x04000400
- ldr r0, _020B9F7C ; =UNK_021066AC
- str r2, [r1, #0x0]
- mov r2, #0x3c
- bl MIi_CpuSend32
- b _020B9ED4
-_020B9EC4:
- ldr r0, _020B9F80 ; =UNK_021066A0
- ldr r1, _020B9F64 ; =0x04000400
- mov r2, #0x48
- bl MIi_CpuSend32
-_020B9ED4:
- cmp r7, #0x3
- movne r0, #0x0
- bne _020B9F00
- ldr r1, [r9, #0x8]
- mov r0, r9
- bic r1, r1, #0x40
- str r1, [r9, #0x8]
- ldr r1, [r9, #0x28]
- blx r1
- ldr r0, [r9, #0x8]
- and r0, r0, #0x40
-_020B9F00:
- cmp r8, #0x20
- beq _020B9F10
- cmp r8, #0x60
- bne _020B9F44
-_020B9F10:
- cmp r0, #0x0
- add r6, r6, #0x1
- bne _020B9F44
- ldr r0, [r9, #0x8]
- ands r0, r0, #0x100
- bne _020B9F44
- ldr r0, [r9, #0x0]
- add r1, sp, #0x4
- ldrb r3, [r0, #0x2]
- mov r0, #0x13
- mov r2, #0x1
- str r3, [sp, #0x4]
- bl FUN_020BB1C0
-_020B9F44:
- ldr r0, [r9, #0x0]
- add r0, r0, r6
- str r0, [r9, #0x0]
- add sp, sp, #0xc8
- ldmia sp!, {r4-r10,pc}
- .balign 4
-_020B9F58: .word UNK_021066D0
-_020B9F5C: .word UNK_021066DC
-_020B9F60: .word 0x00151110
-_020B9F64: .word 0x04000400
-_020B9F68: .word UNK_021CED18
-_020B9F6C: .word UNK_021CED64
-_020B9F70: .word 0x00171012
-_020B9F74: .word UNK_021066A4
-_020B9F78: .word 0x00001B19
-_020B9F7C: .word UNK_021066AC
-_020B9F80: .word UNK_021066A0
-
- arm_func_start FUN_020B9F84
-FUN_020B9F84: ; 0x020B9F84
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x14
- mov r10, r0
- ldr r0, [r10, #0x0]
- mov r9, r1
- ldrb r4, [r0, #0x1]
- mov r7, #0x4
- strb r4, [r10, #0xae]
- ldr r0, [r10, #0x8]
- orr r0, r0, #0x10
- str r0, [r10, #0x8]
- ldr r1, [r10, #0x8]
- ands r0, r1, #0x400
- beq _020BA01C
- cmp r9, #0x40
- beq _020B9FCC
- cmp r9, #0x60
- bne _020B9FD0
-_020B9FCC:
- add r7, r7, #0x1
-_020B9FD0:
- cmp r9, #0x20
- beq _020B9FE0
- cmp r9, #0x60
- bne _020BA008
-_020B9FE0:
- add r7, r7, #0x1
- ands r0, r1, #0x100
- bne _020BA008
- ldr r0, [r10, #0x0]
- add r1, sp, #0x8
- ldrb r3, [r0, #0x4]
- mov r0, #0x14
- mov r2, #0x1
- str r3, [sp, #0x8]
- bl FUN_020BB1C0
-_020BA008:
- ldr r0, [r10, #0x0]
- add sp, sp, #0x14
- add r0, r0, r7
- str r0, [r10, #0x0]
- ldmia sp!, {r4-r11,pc}
-_020BA01C:
- cmp r9, #0x40
- beq _020BA02C
- cmp r9, #0x60
- bne _020BA068
-_020BA02C:
- cmp r9, #0x40
- ldreq r0, [r10, #0x0]
- add r7, r7, #0x1
- ldreqb r0, [r0, #0x4]
- streq r0, [sp, #0xc]
- ldrne r0, [r10, #0x0]
- ldrneb r0, [r0, #0x5]
- strne r0, [sp, #0xc]
- ldr r0, [r10, #0x8]
- ands r0, r0, #0x100
- bne _020BA068
- add r1, sp, #0xc
- mov r0, #0x14
- mov r2, #0x1
- bl FUN_020BB1C0
-_020BA068:
- add r0, r10, #0x12c
- str r0, [r10, #0xb4]
- ldr r0, [r10, #0x24]
- cmp r0, #0x0
- ldrneb r8, [r10, #0x92]
- moveq r8, #0x0
- cmp r8, #0x1
- bne _020BA0BC
- ldr r1, [r10, #0x8]
- mov r0, r10
- bic r1, r1, #0x40
- str r1, [r10, #0x8]
- ldr r1, [r10, #0x24]
- blx r1
- ldr r0, [r10, #0x24]
- cmp r0, #0x0
- ldrneb r8, [r10, #0x92]
- ldr r0, [r10, #0x8]
- moveq r8, #0x0
- and r0, r0, #0x40
- b _020BA0C0
-_020BA0BC:
- mov r0, #0x0
-_020BA0C0:
- cmp r0, #0x0
- bne _020BA2CC
- ldr r0, [r10, #0x4]
- ldr r1, [r0, #0x34]
- cmp r1, #0x0
- beq _020BA0F4
- mov r0, #0x58
- mla r6, r4, r0, r1
- ldr r0, [r10, #0x8]
- ands r0, r0, #0x80
- moveq r0, #0x1
- movne r0, #0x0
- b _020BA0FC
-_020BA0F4:
- add r6, r10, #0x12c
- mov r0, #0x0
-_020BA0FC:
- cmp r0, #0x0
- bne _020BA2C8
- mov r0, #0x0
- str r0, [r6, #0x0]
- ldr r0, [r10, #0x4]
- ldr r1, [r0, #0x10]
- cmp r1, #0x0
- beq _020BA134
- ldr r3, [r0, #0x14]
- mov r0, r6
- mov r2, r4
- blx r3
- cmp r0, #0x0
- bne _020BA2C8
-_020BA134:
- ldr r2, [r10, #0xd4]
- ldrh r0, [r2, #0x6]
- ldrh r1, [r2, r0]
- add r0, r2, r0
- mla r0, r1, r4, r0
- ldr r1, [r0, #0x4]
- ldrh r0, [r2, r1]
- add r4, r2, r1
- add r5, r4, #0x4
- ands r0, r0, #0x1
- ldrne r0, [r6, #0x0]
- orrne r0, r0, #0x4
- strne r0, [r6, #0x0]
- bne _020BA188
- ldr r0, [r5, #0x0]
- str r0, [r6, #0x4c]
- ldr r0, [r5, #0x4]
- str r0, [r6, #0x50]
- ldr r0, [r5, #0x8]
- add r5, r5, #0xc
- str r0, [r6, #0x54]
-_020BA188:
- ldrh r1, [r4, #0x0]
- ands r0, r1, #0x2
- ldrne r0, [r6, #0x0]
- orrne r0, r0, #0x2
- strne r0, [r6, #0x0]
- bne _020BA2B0
- ands r0, r1, #0x8
- beq _020BA264
- and r1, r1, #0xf0
- mov r11, r1, asr #0x4
- ldrsh r1, [r5, #0x0]
- add r0, r6, #0x28
- str r1, [sp, #0x0]
- ldrsh r1, [r5, #0x2]
- str r1, [sp, #0x4]
- bl MI_Zero36B
- ldrh r0, [r4, #0x0]
- add r1, r6, r11, lsl #0x2
- add r5, r5, #0x4
- ands r0, r0, #0x100
- movne r0, #0x1000
- rsbne r2, r0, #0x0
- moveq r2, #0x1000
- str r2, [r1, #0x28]
- ldr r0, _020BA3B4 ; =UNK_020FF9F0
- ldr r1, _020BA3B8 ; =UNK_020FF9F1
- ldrb r0, [r0, r11, lsl #0x2]
- add r2, r6, r0, lsl #0x2
- ldr r0, [sp, #0x0]
- str r0, [r2, #0x28]
- ldrb r0, [r1, r11, lsl #0x2]
- add r1, r6, r0, lsl #0x2
- ldr r0, [sp, #0x4]
- str r0, [r1, #0x28]
- ldrh r0, [r4, #0x0]
- ands r0, r0, #0x200
- ldrne r0, [sp, #0x4]
- rsbne r0, r0, #0x0
- strne r0, [sp, #0x4]
- ldr r0, _020BA3BC ; =UNK_020FF9F2
- ldrb r0, [r0, r11, lsl #0x2]
- add r1, r6, r0, lsl #0x2
- ldr r0, [sp, #0x4]
- str r0, [r1, #0x28]
- ldrh r0, [r4, #0x0]
- ands r0, r0, #0x400
- ldrne r0, [sp, #0x0]
- rsbne r0, r0, #0x0
- strne r0, [sp, #0x0]
- ldr r0, _020BA3C0 ; =UNK_020FF9F3
- ldrb r0, [r0, r11, lsl #0x2]
- add r1, r6, r0, lsl #0x2
- ldr r0, [sp, #0x0]
- str r0, [r1, #0x28]
- b _020BA2B0
-_020BA264:
- ldrsh r0, [r4, #0x2]
- str r0, [r6, #0x28]
- ldrsh r0, [r5, #0x0]
- str r0, [r6, #0x2c]
- ldrsh r0, [r5, #0x2]
- str r0, [r6, #0x30]
- ldrsh r0, [r5, #0x4]
- str r0, [r6, #0x34]
- ldrsh r0, [r5, #0x6]
- str r0, [r6, #0x38]
- ldrsh r0, [r5, #0x8]
- str r0, [r6, #0x3c]
- ldrsh r0, [r5, #0xa]
- str r0, [r6, #0x40]
- ldrsh r0, [r5, #0xc]
- str r0, [r6, #0x44]
- ldrsh r0, [r5, #0xe]
- add r5, r5, #0x10
- str r0, [r6, #0x48]
-_020BA2B0:
- ldrh r3, [r4, #0x0]
- ldr r2, [r10, #0x0]
- ldr r4, [r10, #0xe8]
- mov r0, r6
- mov r1, r5
- blx r4
-_020BA2C8:
- str r6, [r10, #0xb4]
-_020BA2CC:
- cmp r8, #0x2
- bne _020BA308
- ldr r1, [r10, #0x8]
- mov r0, r10
- bic r1, r1, #0x40
- str r1, [r10, #0x8]
- ldr r1, [r10, #0x24]
- blx r1
- ldr r0, [r10, #0x24]
- cmp r0, #0x0
- ldrneb r8, [r10, #0x92]
- ldr r0, [r10, #0x8]
- moveq r8, #0x0
- and r0, r0, #0x40
- b _020BA30C
-_020BA308:
- mov r0, #0x0
-_020BA30C:
- cmp r0, #0x0
- bne _020BA32C
- ldr r0, [r10, #0x8]
- ands r0, r0, #0x100
- bne _020BA32C
- ldr r0, [r10, #0xb4]
- ldr r1, [r10, #0xec]
- blx r1
-_020BA32C:
- mov r0, #0x0
- str r0, [r10, #0xb4]
- cmp r8, #0x3
- bne _020BA35C
- ldr r1, [r10, #0x8]
- mov r0, r10
- bic r1, r1, #0x40
- str r1, [r10, #0x8]
- ldr r1, [r10, #0x24]
- blx r1
- ldr r0, [r10, #0x8]
- and r0, r0, #0x40
-_020BA35C:
- cmp r9, #0x20
- beq _020BA36C
- cmp r9, #0x60
- bne _020BA3A0
-_020BA36C:
- cmp r0, #0x0
- add r7, r7, #0x1
- bne _020BA3A0
- ldr r0, [r10, #0x8]
- ands r0, r0, #0x100
- bne _020BA3A0
- ldr r0, [r10, #0x0]
- add r1, sp, #0x10
- ldrb r3, [r0, #0x4]
- mov r0, #0x13
- mov r2, #0x1
- str r3, [sp, #0x10]
- bl FUN_020BB1C0
-_020BA3A0:
- ldr r0, [r10, #0x0]
- add r0, r0, r7
- str r0, [r10, #0x0]
- add sp, sp, #0x14
- ldmia sp!, {r4-r11,pc}
- .balign 4
-_020BA3B4: .word UNK_020FF9F0
-_020BA3B8: .word UNK_020FF9F1
-_020BA3BC: .word UNK_020FF9F2
-_020BA3C0: .word UNK_020FF9F3
-
- arm_func_start FUN_020BA3C4
-FUN_020BA3C4: ; 0x020BA3C4
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r4, r0
- ldr r3, [r4, #0x8]
- ands r2, r3, #0x200
- bne _020BA420
- ands r2, r3, #0x1
- beq _020BA420
- ands r2, r3, #0x2
- bne _020BA420
- ldr r5, [r4, #0xdc]
- ldr r3, [r4, #0x0]
- ldrh r2, [r5, #0x6]
- ldrb r3, [r3, #0x1]
- ldr ip, _020BA434 ; =UNK_02106650
- ldrh lr, [r5, r2]
- add r2, r5, r2
- mla r2, lr, r3, r2
- ldr r2, [r2, #0x4]
- ldrh lr, [r5, r2]
- add r2, r5, r2
- ldr r12, [r12, lr, lsl #0x2]
- blx r12
-_020BA420:
- ldr r0, [r4, #0x0]
- add r0, r0, #0x2
- str r0, [r4, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020BA434: .word UNK_02106650
-
- arm_func_start FUN_020BA438
-FUN_020BA438: ; 0x020BA438
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- ldr r0, [r6, #0x20]
- mov r5, r2
- cmp r0, #0x0
- ldrneb r4, [r6, #0x91]
- moveq r4, #0x0
- cmp r4, #0x1
- bne _020BA490
- ldr r1, [r6, #0x8]
- mov r0, r6
- bic r1, r1, #0x40
- str r1, [r6, #0x8]
- ldr r1, [r6, #0x20]
- blx r1
- ldr r0, [r6, #0x20]
- cmp r0, #0x0
- ldrneb r4, [r6, #0x91]
- ldr r0, [r6, #0x8]
- moveq r4, #0x0
- and r0, r0, #0x40
- b _020BA494
-_020BA490:
- mov r0, #0x0
-_020BA494:
- cmp r0, #0x0
- bne _020BA4B8
- ldr r0, [r6, #0x8]
- ands r0, r0, #0x100
- bne _020BA4B8
- ldr r0, [r5, #0x8]
- ldr r1, [r5, #0xc]
- add r0, r5, r0
- bl FUN_020BB2B0
-_020BA4B8:
- cmp r4, #0x2
- bne _020BA4E8
- ldr r1, [r6, #0x8]
- mov r0, r6
- bic r1, r1, #0x40
- str r1, [r6, #0x8]
- ldr r1, [r6, #0x20]
- blx r1
- ldr r0, [r6, #0x20]
- cmp r0, #0x0
- ldrneb r4, [r6, #0x91]
- moveq r4, #0x0
-_020BA4E8:
- cmp r4, #0x3
- ldmneia sp!, {r4-r6,pc}
- ldr r1, [r6, #0x8]
- mov r0, r6
- bic r1, r1, #0x40
- str r1, [r6, #0x8]
- ldr r1, [r6, #0x20]
- blx r1
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020BA50C
-FUN_020BA50C: ; 0x020BA50C
- stmdb sp!, {r4-r6,lr}
- mov r4, r0
- ldr r5, [r4, #0x8]
- ands r0, r5, #0x200
- bne _020BA578
- ldr r2, [r4, #0x0]
- ands r0, r5, #0x1
- ldrb r3, [r2, #0x1]
- bne _020BA544
- ands r0, r5, #0x8
- beq _020BA544
- ldrb r0, [r4, #0xad]
- cmp r3, r0
- beq _020BA578
-_020BA544:
- ldr r6, [r4, #0xd8]
- ldr ip, _020BA588 ; =UNK_02106640
- ldrh r2, [r6, #0xa]
- add r5, r6, #0x4
- mov r0, r4
- ldrh lr, [r5, r2]
- add r2, r5, r2
- mla r2, lr, r3, r2
- ldr r2, [r2, #0x4]
- ldrh lr, [r6, r2]
- add r2, r6, r2
- ldr r12, [r12, lr, lsl #0x2]
- blx r12
-_020BA578:
- ldr r0, [r4, #0x0]
- add r0, r0, #0x2
- str r0, [r4, #0x0]
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020BA588: .word UNK_02106640
-
- arm_func_start FUN_020BA58C
-FUN_020BA58C: ; 0x020BA58C
- stmdb sp!, {r4-r8,lr}
- sub sp, sp, #0x20
- mov r8, r0
- mov r6, r3
- strb r6, [r8, #0xad]
- ldr r3, [r8, #0x8]
- add r0, r8, #0xf4
- orr r3, r3, #0x8
- str r3, [r8, #0x8]
- str r0, [r8, #0xb0]
- ldr r0, [r8, #0x1c]
- mov r4, r1
- cmp r0, #0x0
- ldrneb r5, [r8, #0x90]
- mov r7, r2
- moveq r5, #0x0
- cmp r5, #0x1
- bne _020BA608
- ldr r1, [r8, #0x8]
- mov r0, r8
- bic r1, r1, #0x40
- str r1, [r8, #0x8]
- ldr r1, [r8, #0x1c]
- blx r1
- ldr r0, [r8, #0x1c]
- cmp r0, #0x0
- ldrneb r5, [r8, #0x90]
- ldr r0, [r8, #0x8]
- moveq r5, #0x0
- and r0, r0, #0x40
- b _020BA60C
-_020BA608:
- mov r0, #0x0
-_020BA60C:
- cmp r0, #0x0
- bne _020BA8C0
- ldr r0, [r8, #0x4]
- ldr r0, [r0, #0x38]
- cmp r0, #0x0
- beq _020BA638
- ldr r1, [r8, #0x8]
- ands r1, r1, #0x80
- moveq r1, #0x38
- mlaeq r4, r6, r1, r0
- beq _020BA8BC
-_020BA638:
- cmp r4, #0x20
- beq _020BA648
- cmp r4, #0x40
- bne _020BA684
-_020BA648:
- mov r1, r6, lsr #0x5
- add r1, r8, r1, lsl #0x2
- and r2, r6, #0x1f
- mov r3, #0x1
- mov r2, r3, lsl r2
- ldr r1, [r1, #0xbc]
- ands r1, r2, r1
- beq _020BA684
- cmp r0, #0x0
- movne r1, #0x38
- mlane r4, r6, r1, r0
- ldreq r1, _020BA9D8 ; =UNK_021CEF80
- moveq r0, #0x38
- mlaeq r4, r6, r0, r1
- b _020BA8BC
-_020BA684:
- cmp r0, #0x0
- beq _020BA6BC
- add r4, r8, #0xbc
- mov r3, r6, lsr #0x5
- ldr r2, [r4, r3, lsl #0x2]
- and r0, r6, #0x1f
- mov r1, #0x1
- orr r0, r2, r1, lsl r0
- str r0, [r4, r3, lsl #0x2]
- ldr r1, [r8, #0x4]
- mov r0, #0x38
- ldr r1, [r1, #0x38]
- mla r4, r6, r0, r1
- b _020BA6F0
-_020BA6BC:
- cmp r4, #0x40
- addne r4, r8, #0xf4
- bne _020BA6F0
- add lr, r8, #0xbc
- mov r12, r6, lsr #0x5
- ldr r1, _020BA9D8 ; =UNK_021CEF80
- ldr r4, [lr, r12, lsl #0x2]
- mov r0, #0x38
- and r2, r6, #0x1f
- mov r3, #0x1
- orr r2, r4, r3, lsl r2
- mla r4, r6, r0, r1
- str r2, [lr, r12, lsl #0x2]
-_020BA6F0:
- mov r0, #0x0
- str r0, [r4, #0x0]
- ldr r3, [r8, #0xd8]
- ldrh r0, [r3, #0xa]
- add r2, r3, #0x4
- ldrh r1, [r2, r0]
- add r0, r2, r0
- mla r0, r1, r6, r0
- ldr r0, [r0, #0x4]
- ldr r1, _020BA9DC ; =UNK_021CED18
- add r0, r3, r0
- ldrh r0, [r0, #0x1e]
- ands r0, r0, #0x20
- ldrne r0, [r4, #0x0]
- orrne r0, r0, #0x20
- strne r0, [r4, #0x0]
- ldrh r2, [r7, #0x1e]
- ldr r0, _020BA9E0 ; =UNK_020FF9D0
- ldr r12, [r1, #0x94]
- mov r2, r2, asr #0x6
- and r2, r2, #0x7
- ldr lr, [r0, r2, lsl #0x2]
- ldr r2, [r7, #0x4]
- mvn r3, lr
- and r3, r12, r3
- and r2, r2, lr
- orr r2, r3, r2
- str r2, [r4, #0x4]
- ldrh r12, [r7, #0x1e]
- ldr r3, [r1, #0x98]
- ldr r2, [r7, #0x8]
- mov r12, r12, asr #0x9
- and r12, r12, #0x7
- ldr r12, [r0, r12, lsl #0x2]
- mvn r0, r12
- and r3, r3, r0
- and r0, r2, r12
- orr r0, r3, r0
- str r0, [r4, #0x8]
- ldr r3, [r7, #0x10]
- ldr r0, [r7, #0xc]
- ldr r2, [r1, #0x9c]
- mvn r1, r3
- and r1, r2, r1
- and r0, r0, r3
- orr r0, r1, r0
- str r0, [r4, #0xc]
- ldr r0, [r7, #0x14]
- str r0, [r4, #0x10]
- ldrh r0, [r7, #0x1c]
- str r0, [r4, #0x14]
- ldrh r1, [r7, #0x1e]
- ands r0, r1, #0x1
- beq _020BA850
- ands r1, r1, #0x2
- ldrne r1, [r4, #0x0]
- add r0, r7, #0x2c
- orrne r1, r1, #0x1
- strne r1, [r4, #0x0]
- bne _020BA7F4
- ldr r1, [r0, #0x0]
- str r1, [r4, #0x18]
- ldr r1, [r0, #0x4]
- add r0, r0, #0x8
- str r1, [r4, #0x1c]
-_020BA7F4:
- ldrh r1, [r7, #0x1e]
- ands r1, r1, #0x4
- ldrne r1, [r4, #0x0]
- orrne r1, r1, #0x2
- strne r1, [r4, #0x0]
- bne _020BA820
- ldrsh r1, [r0, #0x0]
- strh r1, [r4, #0x20]
- ldrsh r1, [r0, #0x2]
- add r0, r0, #0x4
- strh r1, [r4, #0x22]
-_020BA820:
- ldrh r1, [r7, #0x1e]
- ands r1, r1, #0x8
- ldreq r1, [r0, #0x0]
- streq r1, [r4, #0x24]
- ldreq r0, [r0, #0x4]
- streq r0, [r4, #0x28]
- ldrne r0, [r4, #0x0]
- orrne r0, r0, #0x4
- strne r0, [r4, #0x0]
- ldr r0, [r4, #0x0]
- orr r0, r0, #0x8
- str r0, [r4, #0x0]
-_020BA850:
- ldr r0, [r8, #0x4]
- ldr r1, [r0, #0x8]
- cmp r1, #0x0
- beq _020BA890
- mov r2, r6, lsr #0x5
- add r2, r0, r2, lsl #0x2
- and r3, r6, #0x1f
- mov r12, #0x1
- mov r3, r12, lsl r3
- ldr r2, [r2, #0x3c]
- ands r2, r3, r2
- beq _020BA890
- ldr r3, [r0, #0xc]
- mov r0, r4
- mov r2, r6
- blx r3
-_020BA890:
- ldr r0, [r4, #0x0]
- ands r0, r0, #0x18
- beq _020BA8BC
- ldrh r0, [r7, #0x20]
- strh r0, [r4, #0x2c]
- ldrh r0, [r7, #0x22]
- strh r0, [r4, #0x2e]
- ldr r0, [r7, #0x24]
- str r0, [r4, #0x30]
- ldr r0, [r7, #0x28]
- str r0, [r4, #0x34]
-_020BA8BC:
- str r4, [r8, #0xb0]
-_020BA8C0:
- cmp r5, #0x2
- bne _020BA8FC
- ldr r1, [r8, #0x8]
- mov r0, r8
- bic r1, r1, #0x40
- str r1, [r8, #0x8]
- ldr r1, [r8, #0x1c]
- blx r1
- ldr r0, [r8, #0x1c]
- cmp r0, #0x0
- ldrneb r5, [r8, #0x90]
- ldr r0, [r8, #0x8]
- moveq r5, #0x0
- and r0, r0, #0x40
- b _020BA900
-_020BA8FC:
- mov r0, #0x0
-_020BA900:
- cmp r0, #0x0
- bne _020BA9AC
- ldr r4, [r8, #0xb0]
- ldr r1, [r4, #0xc]
- ands r0, r1, #0x1f0000
- beq _020BA9A0
- ldr r0, [r4, #0x0]
- ands r0, r0, #0x20
- bicne r0, r1, #0x1f0000
- strne r0, [r4, #0xc]
- ldr r0, [r8, #0x8]
- bic r0, r0, #0x2
- str r0, [r8, #0x8]
- ldr r0, [r8, #0x8]
- ands r0, r0, #0x100
- bne _020BA9AC
- ldr r0, _020BA9E4 ; =0x00293130
- ldr r3, _020BA9E8 ; =0x00002B2A
- str r0, [sp, #0x0]
- ldr r2, [r4, #0x4]
- add r1, sp, #0x4
- str r2, [sp, #0x4]
- ldr r6, [r4, #0x8]
- mov r2, #0x6
- str r6, [sp, #0x8]
- ldr r6, [r4, #0xc]
- str r6, [sp, #0xc]
- str r3, [sp, #0x10]
- ldr r3, [r4, #0x10]
- str r3, [sp, #0x14]
- ldr r3, [r4, #0x14]
- str r3, [sp, #0x18]
- bl FUN_020BB1C0
- ldr r0, [r4, #0x0]
- ands r0, r0, #0x18
- beq _020BA9AC
- ldr r1, [r8, #0xf0]
- mov r0, r4
- blx r1
- b _020BA9AC
-_020BA9A0:
- ldr r0, [r8, #0x8]
- orr r0, r0, #0x2
- str r0, [r8, #0x8]
-_020BA9AC:
- cmp r5, #0x3
- addne sp, sp, #0x20
- ldmneia sp!, {r4-r8,pc}
- ldr r1, [r8, #0x8]
- mov r0, r8
- bic r1, r1, #0x40
- str r1, [r8, #0x8]
- ldr r1, [r8, #0x1c]
- blx r1
- add sp, sp, #0x20
- ldmia sp!, {r4-r8,pc}
- .balign 4
-_020BA9D8: .word UNK_021CEF80
-_020BA9DC: .word UNK_021CED18
-_020BA9E0: .word UNK_020FF9D0
-_020BA9E4: .word 0x00293130
-_020BA9E8: .word 0x00002B2A
-
- arm_func_start FUN_020BA9EC
-FUN_020BA9EC: ; 0x020BA9EC
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- ldr r1, [r5, #0x8]
- ands r0, r1, #0x200
- bne _020BAAAC
- ands r0, r1, #0x1
- beq _020BAAAC
- ldr r0, [r5, #0x18]
- cmp r0, #0x0
- ldrneb r4, [r5, #0x8f]
- moveq r4, #0x0
- cmp r4, #0x1
- bne _020BAA58
- ldr r1, [r5, #0x8]
- mov r0, r5
- bic r1, r1, #0x40
- str r1, [r5, #0x8]
- ldr r1, [r5, #0x18]
- blx r1
- ldr r0, [r5, #0x18]
- cmp r0, #0x0
- ldrneb r4, [r5, #0x8f]
- ldr r0, [r5, #0x8]
- moveq r4, #0x0
- and r0, r0, #0x40
- b _020BAA5C
-_020BAA58:
- mov r0, #0x0
-_020BAA5C:
- cmp r0, #0x0
- bne _020BAA8C
- ldr r0, [r5, #0x0]
- ldrb r0, [r0, #0x1]
- str r0, [sp, #0x0]
- ldr r0, [r5, #0x8]
- ands r0, r0, #0x100
- bne _020BAA8C
- add r1, sp, #0x0
- mov r0, #0x14
- mov r2, #0x1
- bl FUN_020BB1C0
-_020BAA8C:
- cmp r4, #0x3
- bne _020BAAAC
- ldr r1, [r5, #0x8]
- mov r0, r5
- bic r1, r1, #0x40
- str r1, [r5, #0x8]
- ldr r1, [r5, #0x18]
- blx r1
-_020BAAAC:
- ldr r0, [r5, #0x0]
- add r0, r0, #0x2
- str r0, [r5, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020BAAC0
-FUN_020BAAC0: ; 0x020BAAC0
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- ldr r0, [r6, #0x8]
- ands r0, r0, #0x200
- bne _020BAC38
- ldr r1, [r6, #0x0]
- add r0, r6, #0x184
- ldrb r1, [r1, #0x1]
- strb r1, [r6, #0xac]
- ldr r1, [r6, #0x8]
- ldrb r4, [r6, #0xac]
- orr r1, r1, #0x4
- str r1, [r6, #0x8]
- str r0, [r6, #0xb8]
- ldr r0, [r6, #0x14]
- cmp r0, #0x0
- ldrneb r5, [r6, #0x8e]
- moveq r5, #0x0
- cmp r5, #0x1
- bne _020BAB44
- ldr r1, [r6, #0x8]
- mov r0, r6
- bic r1, r1, #0x40
- str r1, [r6, #0x8]
- ldr r1, [r6, #0x14]
- blx r1
- ldr r0, [r6, #0x14]
- cmp r0, #0x0
- ldrneb r5, [r6, #0x8e]
- ldr r0, [r6, #0x8]
- moveq r5, #0x0
- and r0, r0, #0x40
- b _020BAB48
-_020BAB44:
- mov r0, #0x0
-_020BAB48:
- cmp r0, #0x0
- bne _020BABAC
- ldr r12, [r6, #0x4]
- ldr r1, [r12, #0x18]
- cmp r1, #0x0
- beq _020BAB98
- mov r0, r4, lsr #0x5
- add r0, r12, r0, lsl #0x2
- and r2, r4, #0x1f
- mov r3, #0x1
- mov r2, r3, lsl r2
- ldr r0, [r0, #0x4c]
- ands r0, r2, r0
- beq _020BAB98
- ldr r0, [r6, #0xb8]
- ldr r3, [r12, #0x1c]
- mov r2, r4
- blx r3
- cmp r0, #0x0
- bne _020BABAC
-_020BAB98:
- ldr r1, [r6, #0x0]
- ldr r0, [r6, #0xb8]
- ldrb r1, [r1, #0x2]
- and r1, r1, #0x1
- str r1, [r0, #0x0]
-_020BABAC:
- cmp r5, #0x2
- bne _020BABE8
- ldr r1, [r6, #0x8]
- mov r0, r6
- bic r1, r1, #0x40
- str r1, [r6, #0x8]
- ldr r1, [r6, #0x14]
- blx r1
- ldr r0, [r6, #0x14]
- cmp r0, #0x0
- ldrneb r5, [r6, #0x8e]
- ldr r0, [r6, #0x8]
- moveq r5, #0x0
- and r0, r0, #0x40
- b _020BABEC
-_020BABE8:
- mov r0, #0x0
-_020BABEC:
- cmp r0, #0x0
- bne _020BAC18
- ldr r0, [r6, #0xb8]
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- ldrne r0, [r6, #0x8]
- orrne r0, r0, #0x1
- strne r0, [r6, #0x8]
- ldreq r0, [r6, #0x8]
- biceq r0, r0, #0x1
- streq r0, [r6, #0x8]
-_020BAC18:
- cmp r5, #0x3
- bne _020BAC38
- ldr r1, [r6, #0x8]
- mov r0, r6
- bic r1, r1, #0x40
- str r1, [r6, #0x8]
- ldr r1, [r6, #0x14]
- blx r1
-_020BAC38:
- ldr r0, [r6, #0x0]
- add r0, r0, #0x3
- str r0, [r6, #0x0]
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020BAC48
-FUN_020BAC48: ; 0x020BAC48
- stmdb sp!, {r4,lr}
- mov r4, r0
- ldr r1, [r4, #0x10]
- cmp r1, #0x0
- beq _020BAC60
- blx r1
-_020BAC60:
- ldr r0, [r4, #0x8]
- orr r0, r0, #0x20
- str r0, [r4, #0x8]
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020BAC70
-FUN_020BAC70: ; 0x020BAC70
- stmdb sp!, {r4,lr}
- mov r4, r0
- ldr r1, [r4, #0xc]
- cmp r1, #0x0
- beq _020BAC88
- blx r1
-_020BAC88:
- ldr r0, [r4, #0x0]
- add r0, r0, #0x1
- str r0, [r4, #0x0]
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020BAC98
-FUN_020BAC98: ; 0x020BAC98
- stmdb sp!, {r4,lr}
- sub sp, sp, #0x188
- mov r4, r0
- ldr r0, [r4, #0x0]
- and r0, r0, #0x10
- cmp r0, #0x10
- bne _020BAD2C
- add r1, r4, #0x3c
- mov r0, #0x0
- mov r2, #0x8
- bl MIi_CpuClear32
- add r1, r4, #0x44
- mov r0, #0x0
- mov r2, #0x8
- bl MIi_CpuClear32
- add r1, r4, #0x4c
- mov r0, #0x0
- mov r2, #0x8
- bl MIi_CpuClear32
- ldr r1, [r4, #0x8]
- cmp r1, #0x0
- beq _020BACF8
- add r0, r4, #0x3c
- bl FUN_020BAD74
-_020BACF8:
- ldr r1, [r4, #0x10]
- cmp r1, #0x0
- beq _020BAD0C
- add r0, r4, #0x44
- bl FUN_020BAD74
-_020BAD0C:
- ldr r1, [r4, #0x18]
- cmp r1, #0x0
- beq _020BAD20
- add r0, r4, #0x4c
- bl FUN_020BAD74
-_020BAD20:
- ldr r0, [r4, #0x0]
- bic r0, r0, #0x10
- str r0, [r4, #0x0]
-_020BAD2C:
- ldr r2, _020BAD70 ; =UNK_021CEF7C
- ldr r0, [r2, #0x0]
- cmp r0, #0x0
- beq _020BAD4C
- mov r1, r4
- bl FUN_020BADE4
- add sp, sp, #0x188
- ldmia sp!, {r4,pc}
-_020BAD4C:
- add r0, sp, #0x0
- mov r1, r4
- str r0, [r2, #0x0]
- bl FUN_020BADE4
- ldr r0, _020BAD70 ; =UNK_021CEF7C
- mov r1, #0x0
- str r1, [r0, #0x0]
- add sp, sp, #0x188
- ldmia sp!, {r4,pc}
- .balign 4
-_020BAD70: .word UNK_021CEF7C
-
- arm_func_start FUN_020BAD74
-FUN_020BAD74:
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- cmp r1, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r5,pc}
- mov r3, #0x1
- mov r4, #0x0
-_020BAD90:
- ldrb r2, [r1, #0x19]
- mov r5, r4
- cmp r2, #0x0
- ble _020BADD0
-_020BADA0:
- add r2, r1, r5, lsl #0x1
- ldrh r2, [r2, #0x1a]
- ands r2, r2, #0x100
- movne lr, r5, asr #0x5
- andne r2, r5, #0x1f
- ldrne r12, [r0, lr, lsl #0x2]
- add r5, r5, #0x1
- orrne r2, r12, r3, lsl r2
- strne r2, [r0, lr, lsl #0x2]
- ldrb r2, [r1, #0x19]
- cmp r5, r2
- blt _020BADA0
-_020BADD0:
- ldr r1, [r1, #0x10]
- cmp r1, #0x0
- bne _020BAD90
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020BADE4
-FUN_020BADE4: ; 0x020BADE4
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- mov r4, r1
- mov r1, r5
- mov r0, #0x0
- mov r2, #0x188
- bl MIi_CpuClearFast
- mov r0, #0x1
- str r0, [r5, #0xc4]
- str r0, [r5, #0x8]
- ldr r0, [r4, #0x30]
- ldr r2, _020BAF60 ; =UNK_02106614
- cmp r0, #0x0
- strne r0, [r5, #0x0]
- ldreq r1, [r4, #0x4]
- ldreq r0, [r1, #0x4]
- addeq r0, r1, r0
- streq r0, [r5, #0x0]
- str r4, [r5, #0x4]
- ldr r0, [r4, #0x4]
- ldr r1, _020BAF64 ; =UNK_02106608
- add r0, r0, #0x40
- str r0, [r5, #0xd4]
- ldr r12, [r4, #0x4]
- ldr r0, _020BAF68 ; =UNK_02106620
- ldr r3, [r12, #0x8]
- add r3, r12, r3
- str r3, [r5, #0xd8]
- ldr r12, [r4, #0x4]
- ldr r3, [r12, #0xc]
- add r3, r12, r3
- str r3, [r5, #0xdc]
- ldr r3, [r4, #0x4]
- ldrb r3, [r3, #0x15]
- ldr r2, [r2, r3, lsl #0x2]
- str r2, [r5, #0xe8]
- ldr r2, [r4, #0x4]
- ldrb r2, [r2, #0x15]
- ldr r1, [r1, r2, lsl #0x2]
- str r1, [r5, #0xec]
- ldr r1, [r4, #0x4]
- ldrb r1, [r1, #0x16]
- ldr r0, [r0, r1, lsl #0x2]
- str r0, [r5, #0xf0]
- ldr r0, [r4, #0x4]
- ldr r0, [r0, #0x1c]
- str r0, [r5, #0xe0]
- ldr r0, [r4, #0x4]
- ldr r0, [r0, #0x20]
- str r0, [r5, #0xe4]
- ldr r1, [r4, #0x20]
- cmp r1, #0x0
- beq _020BAEE0
- ldrb r0, [r4, #0x24]
- cmp r0, #0x20
- bhs _020BAEE0
- add r0, r5, r0, lsl #0x2
- str r1, [r0, #0xc]
- ldrb r0, [r4, #0x24]
- ldrb r1, [r4, #0x25]
- add r0, r5, r0
- strb r1, [r0, #0x8c]
-_020BAEE0:
- ldr r0, [r4, #0x0]
- ands r0, r0, #0x1
- ldrne r0, [r5, #0x8]
- orrne r0, r0, #0x80
- strne r0, [r5, #0x8]
- ldr r0, [r4, #0x0]
- ands r0, r0, #0x2
- ldrne r0, [r5, #0x8]
- orrne r0, r0, #0x100
- strne r0, [r5, #0x8]
- ldr r0, [r4, #0x0]
- ands r0, r0, #0x4
- ldrne r0, [r5, #0x8]
- orrne r0, r0, #0x200
- strne r0, [r5, #0x8]
- ldr r0, [r4, #0x0]
- ands r0, r0, #0x8
- ldrne r0, [r5, #0x8]
- orrne r0, r0, #0x400
- strne r0, [r5, #0x8]
- ldr r1, [r4, #0x28]
- cmp r1, #0x0
- beq _020BAF44
- mov r0, r5
- blx r1
-_020BAF44:
- mov r0, r5
- bl FUN_020BAF6C
- ldr r0, [r4, #0x0]
- bic r0, r0, #0x1
- str r0, [r4, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020BAF60: .word UNK_02106614
-_020BAF64: .word UNK_02106608
-_020BAF68: .word UNK_02106620
-
- arm_func_start FUN_020BAF6C
-FUN_020BAF6C:
- stmdb sp!, {r4-r6,lr}
- mov r5, r0
- ldr r6, _020BAFB4 ; =UNK_02106730
- add r4, r5, #0x8
-_020BAF7C:
- ldr r1, [r4, #0x0]
- mov r0, r5
- bic r1, r1, #0x40
- str r1, [r4, #0x0]
- ldr r1, [r5, #0x0]
- ldrb r3, [r1, #0x0]
- and r1, r3, #0x1f
- ldr r2, [r6, r1, lsl #0x2]
- and r1, r3, #0xe0
- blx r2
- ldr r0, [r5, #0x8]
- ands r0, r0, #0x20
- beq _020BAF7C
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020BAFB4: .word UNK_02106730
-
- arm_func_start FUN_020BAFB8
-FUN_020BAFB8: ; 0x020BAFB8
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x6c
- mov r6, r0
- ldr r12, [r6, #0x1c]
- mov r4, r1
- mov r5, r2
- mov r7, r3
- cmp r12, #0x1000
- beq _020BAFF8
- add r1, sp, #0x54
- mov r0, #0x1b
- mov r2, #0x3
- str r12, [sp, #0x54]
- str r12, [sp, #0x58]
- str r12, [sp, #0x5c]
- bl FUN_020BB1C0
-_020BAFF8:
- cmp r7, #0x0
- beq _020BB150
- ldr r0, [r6, #0x8]
- add r3, r6, r0
- ldrh r0, [r3, #0xa]
- add r2, r3, #0x4
- ldrh r1, [r2, r0]
- add r0, r2, r0
- mla r0, r1, r4, r0
- ldr r0, [r0, #0x4]
- add r4, r3, r0
- ldr r0, [r4, #0xc]
- ands r0, r0, #0x1f0000
- addeq sp, sp, #0x6c
- ldmeqia sp!, {r4-r7,pc}
- ldr r0, _020BB1B4 ; =0x00293130
- str r0, [sp, #0x0]
- ldr r0, [r4, #0x4]
- str r0, [sp, #0x4]
- ldr r0, [r4, #0x8]
- str r0, [sp, #0x8]
- ldr r1, [r4, #0xc]
- str r1, [sp, #0xc]
- ldrh r0, [r4, #0x1e]
- ands r0, r0, #0x20
- bicne r0, r1, #0x1f0000
- ldr r1, _020BB1B8 ; =0x00002B2A
- strne r0, [sp, #0xc]
- str r1, [sp, #0x10]
- ldr r2, [r4, #0x14]
- ldr r0, [sp, #0x0]
- str r2, [sp, #0x14]
- ldrh r3, [r4, #0x1c]
- add r1, sp, #0x4
- mov r2, #0x6
- str r3, [sp, #0x18]
- bl FUN_020BB1C0
- ldrh r0, [r4, #0x1e]
- ands r0, r0, #0x1
- beq _020BB150
- ldrb r12, [r6, #0x16]
- mov r3, #0x8
- ldr r1, _020BB1BC ; =UNK_02106620
- str r3, [sp, #0x1c]
- ldrh r2, [r4, #0x20]
- add r0, r4, #0x2c
- ldr r1, [r1, r12, lsl #0x2]
- strh r2, [sp, #0x48]
- ldrh r2, [r4, #0x22]
- strh r2, [sp, #0x4a]
- ldr r2, [r4, #0x24]
- str r2, [sp, #0x4c]
- ldr r2, [r4, #0x28]
- str r2, [sp, #0x50]
- ldrh r2, [r4, #0x1e]
- ands r2, r2, #0x2
- orrne r2, r3, #0x1
- strne r2, [sp, #0x1c]
- bne _020BB0F8
- ldr r2, [r0, #0x0]
- str r2, [sp, #0x34]
- ldr r2, [r0, #0x4]
- add r0, r0, #0x8
- str r2, [sp, #0x38]
-_020BB0F8:
- ldrh r2, [r4, #0x1e]
- ands r2, r2, #0x4
- ldrne r2, [sp, #0x1c]
- orrne r2, r2, #0x2
- strne r2, [sp, #0x1c]
- bne _020BB124
- ldrsh r2, [r0, #0x0]
- strh r2, [sp, #0x3c]
- ldrsh r2, [r0, #0x2]
- add r0, r0, #0x4
- strh r2, [sp, #0x3e]
-_020BB124:
- ldrh r2, [r4, #0x1e]
- ands r2, r2, #0x8
- ldreq r2, [r0, #0x0]
- streq r2, [sp, #0x40]
- ldreq r0, [r0, #0x4]
- streq r0, [sp, #0x44]
- ldrne r0, [sp, #0x1c]
- orrne r0, r0, #0x4
- strne r0, [sp, #0x1c]
- add r0, sp, #0x1c
- blx r1
-_020BB150:
- ldr r0, [r6, #0xc]
- add r2, r6, r0
- ldrh r0, [r2, #0x6]
- ldrh r1, [r2, r0]
- add r0, r2, r0
- mla r0, r1, r5, r0
- ldr r0, [r0, #0x4]
- add r2, r2, r0
- ldr r0, [r2, #0x8]
- ldr r1, [r2, #0xc]
- add r0, r2, r0
- bl FUN_020BB2B0
- ldr r3, [r6, #0x20]
- cmp r3, #0x1000
- addeq sp, sp, #0x6c
- ldmeqia sp!, {r4-r7,pc}
- add r1, sp, #0x60
- mov r0, #0x1b
- mov r2, #0x3
- str r3, [sp, #0x60]
- str r3, [sp, #0x64]
- str r3, [sp, #0x68]
- bl FUN_020BB1C0
- add sp, sp, #0x6c
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020BB1B4: .word 0x00293130
-_020BB1B8: .word 0x00002B2A
-_020BB1BC: .word UNK_02106620
-
- arm_func_start FUN_020BB1C0
-FUN_020BB1C0:
- stmdb sp!, {r4-r6,lr}
- ldr r3, _020BB2A4 ; =UNK_021D1C80
- mov r6, r0
- ldr r12, [r3, #0x0]
- mov r5, r1
- mov r4, r2
- cmp r12, #0x0
- beq _020BB278
- ldr r0, _020BB2A8 ; =UNK_021D1C84
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _020BB24C
- ldr r2, [r12, #0x0]
- add r0, r2, #0x1
- add r1, r0, r4
- cmp r1, #0xc0
- bhi _020BB24C
- str r0, [r12, #0x0]
- ldr r0, [r3, #0x0]
- cmp r4, #0x0
- add r0, r0, r2, lsl #0x2
- str r6, [r0, #0x4]
- ldmeqia sp!, {r4-r6,pc}
- ldr r2, [r3, #0x0]
- mov r0, r5
- ldr r1, [r2], #0x4
- add r1, r2, r1, lsl #0x2
- mov r2, r4, lsl #0x2
- bl MIi_CpuCopyFast
- ldr r0, _020BB2A4 ; =UNK_021D1C80
- ldr r1, [r0, #0x0]
- ldr r0, [r1, #0x0]
- add r0, r0, r4
- str r0, [r1, #0x0]
- ldmia sp!, {r4-r6,pc}
-_020BB24C:
- ldr r0, [r12, #0x0]
- cmp r0, #0x0
- beq _020BB260
- bl FUN_020BB394
- b _020BB28C
-_020BB260:
- ldr r0, _020BB2A8 ; =UNK_021D1C84
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _020BB28C
- bl FUN_020BB37C
- b _020BB28C
-_020BB278:
- ldr r0, _020BB2A8 ; =UNK_021D1C84
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _020BB28C
- bl FUN_020BB37C
-_020BB28C:
- ldr r1, _020BB2AC ; =0x04000400
- mov r0, r5
- mov r2, r4, lsl #0x2
- str r6, [r1, #0x0]
- bl MIi_CpuSend32
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020BB2A4: .word UNK_021D1C80
-_020BB2A8: .word UNK_021D1C84
-_020BB2AC: .word 0x04000400
-
- arm_func_start FUN_020BB2B0
-FUN_020BB2B0: ; 0x020BB2B0
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r4, r1
- mov r5, r0
- cmp r4, #0x100
- blo _020BB2DC
- ldr r1, _020BB360 ; =GXi_DmaId
- mvn r0, #0x0
- ldr r1, [r1, #0x0]
- cmp r1, r0
- bne _020BB2F8
-_020BB2DC:
- mov r2, r4, lsr #0x2
- ldr r0, [r5, #0x0]
- add r1, r5, #0x4
- sub r2, r2, #0x1
- bl FUN_020BB1C0
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-_020BB2F8:
- bl FUN_020BB394
- ldr r0, _020BB364 ; =UNK_021D1C88
- ldr r1, _020BB368 ; =UNK_021D1C84
- ldr r0, [r0, #0x0]
- mov r2, #0x1
- str r2, [r1, #0x0]
- cmp r0, #0x0
- beq _020BB33C
- ldr r0, _020BB360 ; =GXi_DmaId
- str r1, [sp, #0x0]
- ldr r0, [r0, #0x0]
- ldr r3, _020BB36C ; =FUN_020BB370
- mov r1, r5
- mov r2, r4
- bl MI_SendGXCommandAsyncFast
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-_020BB33C:
- ldr r0, _020BB360 ; =GXi_DmaId
- str r1, [sp, #0x0]
- ldr r0, [r0, #0x0]
- ldr r3, _020BB36C ; =FUN_020BB370
- mov r1, r5
- mov r2, r4
- bl MI_SendGXCommandAsync
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020BB360: .word GXi_DmaId
-_020BB364: .word UNK_021D1C88
-_020BB368: .word UNK_021D1C84
-_020BB36C: .word FUN_020BB370
-
- arm_func_start FUN_020BB370
-FUN_020BB370: ; 0x020BB370
- mov r1, #0x0
- str r1, [r0, #0x0]
- bx lr
-
- arm_func_start FUN_020BB37C
-FUN_020BB37C: ; 0x020BB37C
- ldr r0, _020BB390 ; =UNK_021D1C84
-_020BB380:
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- bne _020BB380
- bx lr
- .balign 4
-_020BB390: .word UNK_021D1C84
-
- arm_func_start FUN_020BB394
-FUN_020BB394: ; 0x020BB394
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r0, _020BB3FC ; =UNK_021D1C84
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _020BB3B0
- bl FUN_020BB37C
-_020BB3B0:
- ldr r0, _020BB400 ; =UNK_021D1C80
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {pc}
- ldr r2, [r0, #0x0]
- cmp r2, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {pc}
- ldr r1, _020BB404 ; =0x04000400
- add r0, r0, #0x4
- mov r2, r2, lsl #0x2
- bl MIi_CpuSend32
- ldr r0, _020BB400 ; =UNK_021D1C80
- mov r1, #0x0
- ldr r0, [r0, #0x0]
- str r1, [r0, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020BB3FC: .word UNK_021D1C84
-_020BB400: .word UNK_021D1C80
-_020BB404: .word 0x04000400
-
- arm_func_start FUN_020BB408
-FUN_020BB408: ; 0x020BB408
- stmdb sp!, {r4-r9,lr}
- sub sp, sp, #0x1c
- mov r5, r1
- mov r4, r2
- ldr r6, _020BB594 ; =UNK_021CED20
- ldr r1, _020BB598 ; =UNK_021CED64
- add r2, sp, #0x10
- bl MTX_MultVec43
- ldr r1, [sp, #0x14]
- ldr r0, [r6, #0x1c]
- ldr r2, [sp, #0x10]
- smull r8, r7, r1, r0
- ldr r0, [r6, #0xc]
- ldr r3, [sp, #0x18]
- smlal r8, r7, r2, r0
- ldr r1, [r6, #0x2c]
- ldr r0, [r6, #0x3c]
- smlal r8, r7, r3, r1
- mov r1, r8, lsr #0xc
- orr r1, r1, r7, lsl #0x14
- add r0, r1, r0
- bl FX_InvAsync
- ldr r2, [sp, #0x14]
- ldr r1, [r6, #0x10]
- ldr r0, [r6, #0x14]
- smull lr, r8, r2, r1
- smull r12, r9, r2, r0
- ldr r1, [sp, #0x10]
- ldr r3, [r6, #0x0]
- ldr r0, [sp, #0x18]
- smlal lr, r8, r1, r3
- ldr r7, [r6, #0x20]
- ldr r2, [r6, #0x30]
- smlal lr, r8, r0, r7
- mov r3, lr, lsr #0xc
- orr r3, r3, r8, lsl #0x14
- add r7, r3, r2
- ldr r3, [r6, #0x4]
- ldr r8, [r6, #0x24]
- smlal r12, r9, r1, r3
- smlal r12, r9, r0, r8
- mov r0, r12, lsr #0xc
- ldr r2, [r6, #0x34]
- orr r0, r0, r9, lsl #0x14
- add r6, r0, r2
- bl FX_GetDivResultFx64c
- mov r2, r7, asr #0x1f
- umull r9, lr, r0, r7
- mla lr, r0, r2, lr
- mov r3, #0x80000000
- mla lr, r1, r7, lr
- adds r9, r9, r3
- adc r2, lr, #0x0
- add r2, r2, #0x1000
- add r2, r2, r2, lsr #0x1f
- mov r7, r2, asr #0x1
- umull lr, r2, r0, r6
- mov r12, r6, asr #0x1f
- mla r2, r0, r12, r2
- mla r2, r1, r6, r2
- adds r3, lr, r3
- adc r0, r2, #0x0
- add r0, r0, #0x1000
- add r0, r0, r0, lsr #0x1f
- mov r8, #0x0
- mov r6, r0, asr #0x1
- cmp r7, #0x0
- blt _020BB530
- cmp r6, #0x0
- blt _020BB530
- cmp r7, #0x1000
- bgt _020BB530
- cmp r6, #0x1000
- ble _020BB534
-_020BB530:
- mvn r8, #0x0
-_020BB534:
- add r0, sp, #0x0
- add r1, sp, #0x4
- add r2, sp, #0x8
- add r3, sp, #0xc
- bl FUN_020B8200
- ldr r2, [sp, #0x0]
- ldr r0, [sp, #0x8]
- ldr r12, [sp, #0xc]
- sub r0, r0, r2
- mul r0, r7, r0
- add r1, r0, #0x800
- ldr r3, [sp, #0x4]
- add r1, r2, r1, asr #0xc
- sub r0, r12, r3
- mul r0, r6, r0
- str r1, [r5, #0x0]
- ldr r1, [sp, #0x4]
- add r0, r0, #0x800
- rsb r1, r1, #0xbf
- sub r1, r1, r0, asr #0xc
- mov r0, r8
- str r1, [r4, #0x0]
- add sp, sp, #0x1c
- ldmia sp!, {r4-r9,pc}
- .balign 4
-_020BB594: .word UNK_021CED20
-_020BB598: .word UNK_021CED64
-
- arm_func_start FUN_020BB59C
-FUN_020BB59C: ; 0x020BB59C
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x4
- mov r5, r0
- ldr r1, [r5, #0x0]
- ldr r0, _020BB7C8 ; =0x30415642
- cmp r1, r0
- bhi _020BB5F4
- cmp r1, r0
- bhs _020BB7B0
- ldr r0, _020BB7CC ; =0x30414D42
- cmp r1, r0
- bhi _020BB5E4
- cmp r1, r0
- bhs _020BB7B0
- ldr r0, _020BB7D0 ; =0x30414342
- cmp r1, r0
- beq _020BB7B0
- b _020BB7BC
-_020BB5E4:
- ldr r0, _020BB7D4 ; =0x30415442
- cmp r1, r0
- beq _020BB7B0
- b _020BB7BC
-_020BB5F4:
- ldr r0, _020BB7D8 ; =0x30505442
- cmp r1, r0
- bhi _020BB618
- cmp r1, r0
- bhs _020BB7B0
- ldr r0, _020BB7DC ; =0x30444D42
- cmp r1, r0
- beq _020BB624
- b _020BB7BC
-_020BB618:
- ldr r0, _020BB7E0 ; =0x30585442
- cmp r1, r0
- bne _020BB7BC
-_020BB624:
- mov r11, #0x1
- mov r0, r5
- mov r9, r11
- mov r8, r11
- bl FUN_020BC0FC
- movs r4, r0
- beq _020BB77C
- bl FUN_020B7E1C
- mov r7, r0
- mov r0, r4
- bl FUN_020B7E10
- mov r6, r0
- mov r0, r4
- bl FUN_020B7CE4
- mov r10, r0
- cmp r7, #0x0
- beq _020BB68C
- ldr r0, _020BB7E4 ; =UNK_021064B8
- mov r1, #0x0
- ldr r3, [r0, #0x0]
- mov r0, r7
- mov r2, r1
- blx r3
- movs r7, r0
- moveq r11, #0x0
- b _020BB690
-_020BB68C:
- mov r7, #0x0
-_020BB690:
- cmp r6, #0x0
- beq _020BB6BC
- ldr r1, _020BB7E4 ; =UNK_021064B8
- mov r0, r6
- ldr r3, [r1, #0x0]
- mov r1, #0x1
- mov r2, #0x0
- blx r3
- movs r6, r0
- moveq r9, #0x0
- b _020BB6C0
-_020BB6BC:
- mov r6, #0x0
-_020BB6C0:
- cmp r10, #0x0
- beq _020BB6F0
- ldr r1, _020BB7E8 ; =UNK_021064C0
- ldrh r2, [r4, #0x20]
- ldr r3, [r1, #0x0]
- mov r0, r10
- and r1, r2, #0x8000
- mov r2, #0x0
- blx r3
- movs r10, r0
- moveq r8, #0x0
- b _020BB6F4
-_020BB6F0:
- mov r10, #0x0
-_020BB6F4:
- cmp r11, #0x0
- beq _020BB70C
- cmp r9, #0x0
- beq _020BB70C
- cmp r8, #0x0
- bne _020BB748
-_020BB70C:
- ldr r1, _020BB7EC ; =UNK_021064C4
- mov r0, r10
- ldr r1, [r1, #0x0]
- blx r1
- ldr r1, _020BB7F0 ; =UNK_021064BC
- mov r0, r6
- ldr r1, [r1, #0x0]
- blx r1
- ldr r1, _020BB7F0 ; =UNK_021064BC
- mov r0, r7
- ldr r1, [r1, #0x0]
- blx r1
- add sp, sp, #0x4
- mov r0, #0x0
- ldmia sp!, {r4-r11,pc}
-_020BB748:
- mov r0, r4
- mov r1, r7
- mov r2, r6
- bl FUN_020B7DFC
- mov r0, r4
- mov r1, r10
- bl FUN_020B7CDC
- mov r0, r4
- mov r1, #0x1
- bl FUN_020B7D28
- mov r0, r4
- mov r1, #0x1
- bl FUN_020B7C78
-_020BB77C:
- ldr r1, [r5, #0x0]
- ldr r0, _020BB7DC ; =0x30444D42
- cmp r1, r0
- bne _020BB7A4
- mov r0, r5
- bl FUN_020BC13C
- cmp r4, #0x0
- beq _020BB7A4
- mov r1, r4
- bl FUN_020B7790
-_020BB7A4:
- add sp, sp, #0x4
- mov r0, #0x1
- ldmia sp!, {r4-r11,pc}
-_020BB7B0:
- add sp, sp, #0x4
- mov r0, #0x1
- ldmia sp!, {r4-r11,pc}
-_020BB7BC:
- mov r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {r4-r11,pc}
- .balign 4
-_020BB7C8: .word 0x30415642
-_020BB7CC: .word 0x30414D42
-_020BB7D0: .word 0x30414342
-_020BB7D4: .word 0x30415442
-_020BB7D8: .word 0x30505442
-_020BB7DC: .word 0x30444D42
-_020BB7E0: .word 0x30585442
-_020BB7E4: .word UNK_021064B8
-_020BB7E8: .word UNK_021064C0
-_020BB7EC: .word UNK_021064C4
-_020BB7F0: .word UNK_021064BC
-
- arm_func_start FUN_020BB7F4
-FUN_020BB7F4: ; 0x020BB7F4
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- bl G3X_Init
- bl FUN_020B84D8
- ldr r1, _020BB820 ; =0x04000600
- ldr r0, [r1, #0x0]
- bic r0, r0, #0xc0000000
- orr r0, r0, #0x80000000
- str r0, [r1, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020BB820: .word 0x04000600
-
- arm_func_start FUN_020BB824
-FUN_020BB824: ; 0x020BB824
- stmdb sp!, {r4-r6,lr}
- sub sp, sp, #0x40
- mov r6, r0
- mov r5, r1
- bl FUN_020BB394
- ldr r0, _020BB8B4 ; =0x04000440
- mov r2, #0x0
- ldr r1, _020BB8B8 ; =0x04000444
- str r2, [r0, #0x0]
- ldr r0, _020BB8BC ; =0x04000454
- str r2, [r1, #0x0]
- str r2, [r0, #0x0]
- cmp r6, #0x0
- beq _020BB87C
- add r4, sp, #0x0
-_020BB860:
- mov r0, r4
- bl G3X_GetClipMtx
- cmp r0, #0x0
- bne _020BB860
- add r0, sp, #0x0
- mov r1, r6
- bl MTX_Copy44To43_
-_020BB87C:
- cmp r5, #0x0
- beq _020BB894
-_020BB884:
- mov r0, r5
- bl G3X_GetVectorMtx
- cmp r0, #0x0
- bne _020BB884
-_020BB894:
- ldr r1, _020BB8C0 ; =0x04000448
- mov r2, #0x1
- ldr r0, _020BB8B4 ; =0x04000440
- str r2, [r1, #0x0]
- mov r1, #0x2
- str r1, [r0, #0x0]
- add sp, sp, #0x40
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020BB8B4: .word 0x04000440
-_020BB8B8: .word 0x04000444
-_020BB8BC: .word 0x04000454
-_020BB8C0: .word 0x04000448
-
- arm_func_start thunk_FUN_020ae84c
-thunk_FUN_020ae84c: ; 0x020BB8C4
- ldr ip, _020BB8CC ; =FUN_020AE84C
- bx r12
- .balign 4
-_020BB8CC: .word FUN_020AE84C
-
- arm_func_start FUN_020BB8D0
-FUN_020BB8D0: ; 0x020BB8D0
- stmdb sp!, {r4,lr}
- mov r4, r0
- mov r0, r1
- mov r1, r2
- bl FUN_020B81B0
- mov r1, r0
- mov r0, r4
- bl FUN_020AE868
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020BB8F4
-FUN_020BB8F4: ; 0x020BB8F4
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- ldrb r0, [r6, #0x18]
- mov r5, r1
- mov r4, #0x0
- cmp r0, #0x0
- ldmlsia sp!, {r4-r6,pc}
-_020BB910:
- mov r0, r6
- mov r1, r4
- mov r2, r5
- bl FUN_020BBC74
- ldrb r0, [r6, #0x18]
- add r4, r4, #0x1
- cmp r4, r0
- blo _020BB910
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020BB934
-FUN_020BB934: ; 0x020BB934
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- ldrb r0, [r6, #0x18]
- mov r5, r1
- mov r4, #0x0
- cmp r0, #0x0
- ldmlsia sp!, {r4-r6,pc}
-_020BB950:
- mov r0, r6
- mov r1, r4
- mov r2, r5
- bl FUN_020BBCB8
- ldrb r0, [r6, #0x18]
- add r4, r4, #0x1
- cmp r4, r0
- blo _020BB950
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020BB974
-FUN_020BB974: ; 0x020BB974
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- ldrb r0, [r6, #0x18]
- mov r5, r1
- mov r4, #0x0
- cmp r0, #0x0
- ldmlsia sp!, {r4-r6,pc}
-_020BB990:
- mov r0, r6
- mov r1, r4
- mov r2, r5
- bl FUN_020BBCFC
- ldrb r0, [r6, #0x18]
- add r4, r4, #0x1
- cmp r4, r0
- blo _020BB990
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020BB9B4
-FUN_020BB9B4: ; 0x020BB9B4
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- ldrb r0, [r6, #0x18]
- mov r5, r1
- mov r4, #0x0
- cmp r0, #0x0
- ldmlsia sp!, {r4-r6,pc}
-_020BB9D0:
- mov r0, r6
- mov r1, r4
- mov r2, r5
- bl FUN_020BBD40
- ldrb r0, [r6, #0x18]
- add r4, r4, #0x1
- cmp r4, r0
- blo _020BB9D0
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020BB9F4
-FUN_020BB9F4: ; 0x020BB9F4
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- ldrb r0, [r6, #0x18]
- mov r5, r1
- mov r4, #0x0
- cmp r0, #0x0
- ldmlsia sp!, {r4-r6,pc}
-_020BBA10:
- mov r0, r6
- mov r1, r4
- mov r2, r5
- bl FUN_020BBD84
- ldrb r0, [r6, #0x18]
- add r4, r4, #0x1
- cmp r4, r0
- blo _020BBA10
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020BBA34
-FUN_020BBA34: ; 0x020BBA34
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- ldrb r0, [r6, #0x18]
- mov r5, r1
- mov r4, #0x0
- cmp r0, #0x0
- ldmlsia sp!, {r4-r6,pc}
-_020BBA50:
- mov r0, r6
- mov r1, r4
- mov r2, r5
- bl FUN_020BBDC8
- ldrb r0, [r6, #0x18]
- add r4, r4, #0x1
- cmp r4, r0
- blo _020BBA50
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020BBA74
-FUN_020BBA74: ; 0x020BBA74
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- ldrb r0, [r6, #0x18]
- mov r5, r1
- mov r4, #0x0
- cmp r0, #0x0
- ldmlsia sp!, {r4-r6,pc}
-_020BBA90:
- mov r0, r6
- mov r1, r4
- mov r2, r5
- bl FUN_020BBE0C
- ldrb r0, [r6, #0x18]
- add r4, r4, #0x1
- cmp r4, r0
- blo _020BBA90
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020BBAB4
-FUN_020BBAB4: ; 0x020BBAB4
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- ldrb r0, [r6, #0x18]
- mov r5, r1
- mov r4, #0x0
- cmp r0, #0x0
- ldmlsia sp!, {r4-r6,pc}
-_020BBAD0:
- mov r0, r6
- mov r1, r4
- mov r2, r5
- bl FUN_020BBE50
- ldrb r0, [r6, #0x18]
- add r4, r4, #0x1
- cmp r4, r0
- blo _020BBAD0
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020BBAF4
-FUN_020BBAF4: ; 0x020BBAF4
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- ldrb r0, [r6, #0x18]
- mov r5, r1
- mov r4, #0x0
- cmp r0, #0x0
- ldmlsia sp!, {r4-r6,pc}
-_020BBB10:
- mov r0, r6
- mov r1, r4
- mov r2, r5
- bl FUN_020BBE94
- ldrb r0, [r6, #0x18]
- add r4, r4, #0x1
- cmp r4, r0
- blo _020BBB10
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020BBB34
-FUN_020BBB34: ; 0x020BBB34
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- ldrb r0, [r6, #0x18]
- mov r5, r1
- mov r4, #0x0
- cmp r0, #0x0
- ldmlsia sp!, {r4-r6,pc}
-_020BBB50:
- mov r0, r6
- mov r1, r4
- mov r2, r5
- bl FUN_020BBED8
- ldrb r0, [r6, #0x18]
- add r4, r4, #0x1
- cmp r4, r0
- blo _020BBB50
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020BBB74
-FUN_020BBB74: ; 0x020BBB74
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- ldrb r0, [r6, #0x18]
- mov r5, r1
- mov r4, #0x0
- cmp r0, #0x0
- ldmlsia sp!, {r4-r6,pc}
-_020BBB90:
- mov r0, r6
- mov r1, r4
- mov r2, r5
- bl FUN_020BBF1C
- ldrb r0, [r6, #0x18]
- add r4, r4, #0x1
- cmp r4, r0
- blo _020BBB90
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020BBBB4
-FUN_020BBBB4: ; 0x020BBBB4
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- ldrb r0, [r6, #0x18]
- mov r5, r1
- mov r4, #0x0
- cmp r0, #0x0
- ldmlsia sp!, {r4-r6,pc}
-_020BBBD0:
- mov r0, r6
- mov r1, r4
- mov r2, r5
- bl FUN_020BBF60
- ldrb r0, [r6, #0x18]
- add r4, r4, #0x1
- cmp r4, r0
- blo _020BBBD0
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020BBBF4
-FUN_020BBBF4: ; 0x020BBBF4
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- ldrb r0, [r6, #0x18]
- mov r5, r1
- mov r4, #0x0
- cmp r0, #0x0
- ldmlsia sp!, {r4-r6,pc}
-_020BBC10:
- mov r0, r6
- mov r1, r4
- mov r2, r5
- bl FUN_020BBFA4
- ldrb r0, [r6, #0x18]
- add r4, r4, #0x1
- cmp r4, r0
- blo _020BBC10
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020BBC34
-FUN_020BBC34: ; 0x020BBC34
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- ldrb r0, [r6, #0x18]
- mov r5, r1
- mov r4, #0x0
- cmp r0, #0x0
- ldmlsia sp!, {r4-r6,pc}
-_020BBC50:
- mov r0, r6
- mov r1, r4
- mov r2, r5
- bl FUN_020BBFE8
- ldrb r0, [r6, #0x18]
- add r4, r4, #0x1
- cmp r4, r0
- blo _020BBC50
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020BBC74
-FUN_020BBC74: ; 0x020BBC74
- ldr r3, [r0, #0x8]
- cmp r2, #0x0
- add r12, r0, r3
- ldrh r0, [r12, #0xa]
- add r3, r12, #0x4
- ldrh r2, [r3, r0]
- add r0, r3, r0
- mla r0, r2, r1, r0
- ldr r0, [r0, #0x4]
- add r1, r12, r0
- ldrne r0, [r1, #0xc]
- orrne r0, r0, #0x800
- strne r0, [r1, #0xc]
- ldreq r0, [r1, #0xc]
- biceq r0, r0, #0x800
- streq r0, [r1, #0xc]
- bx lr
-
- arm_func_start FUN_020BBCB8
-FUN_020BBCB8: ; 0x020BBCB8
- ldr r3, [r0, #0x8]
- cmp r2, #0x0
- add r12, r0, r3
- ldrh r0, [r12, #0xa]
- add r3, r12, #0x4
- ldrh r2, [r3, r0]
- add r0, r3, r0
- mla r0, r2, r1, r0
- ldr r0, [r0, #0x4]
- add r1, r12, r0
- ldrne r0, [r1, #0xc]
- orrne r0, r0, #0x1000
- strne r0, [r1, #0xc]
- ldreq r0, [r1, #0xc]
- biceq r0, r0, #0x1000
- streq r0, [r1, #0xc]
- bx lr
-
- arm_func_start FUN_020BBCFC
-FUN_020BBCFC: ; 0x020BBCFC
- ldr r3, [r0, #0x8]
- cmp r2, #0x0
- add r12, r0, r3
- ldrh r0, [r12, #0xa]
- add r3, r12, #0x4
- ldrh r2, [r3, r0]
- add r0, r3, r0
- mla r0, r2, r1, r0
- ldr r0, [r0, #0x4]
- add r1, r12, r0
- ldrne r0, [r1, #0xc]
- orrne r0, r0, #0x2000
- strne r0, [r1, #0xc]
- ldreq r0, [r1, #0xc]
- biceq r0, r0, #0x2000
- streq r0, [r1, #0xc]
- bx lr
-
- arm_func_start FUN_020BBD40
-FUN_020BBD40: ; 0x020BBD40
- ldr r3, [r0, #0x8]
- cmp r2, #0x0
- add r12, r0, r3
- ldrh r0, [r12, #0xa]
- add r3, r12, #0x4
- ldrh r2, [r3, r0]
- add r0, r3, r0
- mla r0, r2, r1, r0
- ldr r0, [r0, #0x4]
- add r1, r12, r0
- ldrne r0, [r1, #0xc]
- orrne r0, r0, #0x4000
- strne r0, [r1, #0xc]
- ldreq r0, [r1, #0xc]
- biceq r0, r0, #0x4000
- streq r0, [r1, #0xc]
- bx lr
-
- arm_func_start FUN_020BBD84
-FUN_020BBD84: ; 0x020BBD84
- ldr r3, [r0, #0x8]
- cmp r2, #0x0
- add r12, r0, r3
- ldrh r0, [r12, #0xa]
- add r3, r12, #0x4
- ldrh r2, [r3, r0]
- add r0, r3, r0
- mla r0, r2, r1, r0
- ldr r0, [r0, #0x4]
- add r1, r12, r0
- ldrne r0, [r1, #0xc]
- orrne r0, r0, #0x8000
- strne r0, [r1, #0xc]
- ldreq r0, [r1, #0xc]
- biceq r0, r0, #0x8000
- streq r0, [r1, #0xc]
- bx lr
-
- arm_func_start FUN_020BBDC8
-FUN_020BBDC8: ; 0x020BBDC8
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r3, [r0, #0x8]
- add lr, r0, r3
- ldrh r0, [lr, #0xa]
- add r12, lr, #0x4
- ldrh r3, [r12, r0]
- add r0, r12, r0
- mla r0, r3, r1, r0
- ldr r0, [r0, #0x4]
- add r1, lr, r0
- ldr r0, [r1, #0xc]
- bic r0, r0, #0x1f0000
- orr r0, r0, r2, lsl #0x10
- str r0, [r1, #0xc]
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020BBE0C
-FUN_020BBE0C: ; 0x020BBE0C
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r3, [r0, #0x8]
- add lr, r0, r3
- ldrh r0, [lr, #0xa]
- add r12, lr, #0x4
- ldrh r3, [r12, r0]
- add r0, r12, r0
- mla r0, r3, r1, r0
- ldr r0, [r0, #0x4]
- add r1, lr, r0
- ldr r0, [r1, #0xc]
- bic r0, r0, #0x3f000000
- orr r0, r0, r2, lsl #0x18
- str r0, [r1, #0xc]
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020BBE50
-FUN_020BBE50: ; 0x020BBE50
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r3, [r0, #0x8]
- add lr, r0, r3
- ldrh r0, [lr, #0xa]
- add r12, lr, #0x4
- ldrh r3, [r12, r0]
- add r0, r12, r0
- mla r0, r3, r1, r0
- ldr r0, [r0, #0x4]
- add r1, lr, r0
- ldr r0, [r1, #0xc]
- bic r0, r0, #0xc0
- orr r0, r0, r2, lsl #0x6
- str r0, [r1, #0xc]
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020BBE94
-FUN_020BBE94: ; 0x020BBE94
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r3, [r0, #0x8]
- add lr, r0, r3
- ldrh r0, [lr, #0xa]
- add r12, lr, #0x4
- ldrh r3, [r12, r0]
- add r0, r12, r0
- mla r0, r3, r1, r0
- ldr r0, [r0, #0x4]
- add r1, lr, r0
- ldr r0, [r1, #0xc]
- bic r0, r0, #0x30
- orr r0, r0, r2, lsl #0x4
- str r0, [r1, #0xc]
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020BBED8
-FUN_020BBED8: ; 0x020BBED8
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r3, [r0, #0x8]
- add lr, r0, r3
- ldrh r0, [lr, #0xa]
- add r12, lr, #0x4
- ldrh r3, [r12, r0]
- add r0, r12, r0
- mla r0, r3, r1, r0
- ldr r0, [r0, #0x4]
- add r1, lr, r0
- ldr r0, [r1, #0xc]
- bic r0, r0, #0xf
- orr r0, r0, r2
- str r0, [r1, #0xc]
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020BBF1C
-FUN_020BBF1C: ; 0x020BBF1C
- stmdb sp!, {r4,lr}
- ldr r12, [r0, #0x8]
- ldr r3, _020BBF5C ; =0x8000FFFF
- add r4, r0, r12
- ldrh r0, [r4, #0xa]
- add lr, r4, #0x4
- ldrh r12, [lr, r0]
- add r0, lr, r0
- mla r0, r12, r1, r0
- ldr r0, [r0, #0x4]
- add r1, r4, r0
- ldr r0, [r1, #0x8]
- and r0, r0, r3
- orr r0, r0, r2, lsl #0x10
- str r0, [r1, #0x8]
- ldmia sp!, {r4,pc}
- .balign 4
-_020BBF5C: .word 0x8000FFFF
-
- arm_func_start FUN_020BBF60
-FUN_020BBF60: ; 0x020BBF60
- stmdb sp!, {r4,lr}
- ldr r12, [r0, #0x8]
- mov r3, #0x8000
- add r4, r0, r12
- ldrh r12, [r4, #0xa]
- add lr, r4, #0x4
- rsb r0, r3, #0x0
- ldrh r3, [lr, r12]
- add r12, lr, r12
- mla r1, r3, r1, r12
- ldr r1, [r1, #0x4]
- add r3, r4, r1
- ldr r1, [r3, #0x8]
- and r0, r1, r0
- orr r0, r0, r2
- str r0, [r3, #0x8]
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020BBFA4
-FUN_020BBFA4: ; 0x020BBFA4
- stmdb sp!, {r4,lr}
- ldr r12, [r0, #0x8]
- ldr r3, _020BBFE4 ; =0x8000FFFF
- add r4, r0, r12
- ldrh r0, [r4, #0xa]
- add lr, r4, #0x4
- ldrh r12, [lr, r0]
- add r0, lr, r0
- mla r0, r12, r1, r0
- ldr r0, [r0, #0x4]
- add r1, r4, r0
- ldr r0, [r1, #0x4]
- and r0, r0, r3
- orr r0, r0, r2, lsl #0x10
- str r0, [r1, #0x4]
- ldmia sp!, {r4,pc}
- .balign 4
-_020BBFE4: .word 0x8000FFFF
-
- arm_func_start FUN_020BBFE8
-FUN_020BBFE8: ; 0x020BBFE8
- stmdb sp!, {r4,lr}
- ldr r12, [r0, #0x8]
- mov r3, #0x8000
- add r4, r0, r12
- ldrh r12, [r4, #0xa]
- add lr, r4, #0x4
- rsb r0, r3, #0x0
- ldrh r3, [lr, r12]
- add r12, lr, r12
- mla r1, r3, r1, r12
- ldr r1, [r1, #0x4]
- add r3, r4, r1
- ldr r1, [r3, #0x4]
- and r0, r1, r0
- orr r0, r0, r2
- str r0, [r3, #0x4]
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020BC02C
-FUN_020BC02C: ; 0x020BC02C
- stmdb sp!, {r4-r6,lr}
- ldrb r4, [r0, #0x18]
- ldr r3, [r0, #0x8]
- mov lr, #0x0
- cmp r4, #0x0
- add r12, r0, r3
- ldmlsia sp!, {r4-r6,pc}
- mvn r3, r2
- add r0, r12, #0x4
-_020BC050:
- ldrh r5, [r12, #0xa]
- cmp r1, #0x0
- ldrh r6, [r0, r5]
- add r5, r0, r5
- mla r5, r6, lr, r5
- ldr r5, [r5, #0x4]
- add lr, lr, #0x1
- add r6, r12, r5
- ldrne r5, [r6, #0x10]
- orrne r5, r5, r2
- strne r5, [r6, #0x10]
- ldreq r5, [r6, #0x10]
- andeq r5, r5, r3
- streq r5, [r6, #0x10]
- cmp lr, r4
- blo _020BC050
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020BC094
-FUN_020BC094: ; 0x020BC094
- stmdb sp!, {r4-r6,lr}
- ldrb r4, [r0, #0x18]
- ldr r3, [r0, #0x8]
- mov lr, #0x0
- cmp r4, #0x0
- add r12, r0, r3
- ldmlsia sp!, {r4-r6,pc}
- mvn r3, r2
- add r0, r12, #0x4
-_020BC0B8:
- ldrh r5, [r12, #0xa]
- cmp r1, #0x0
- ldrh r6, [r0, r5]
- add r5, r0, r5
- mla r5, r6, lr, r5
- ldr r5, [r5, #0x4]
- add lr, lr, #0x1
- add r6, r12, r5
- ldrneh r5, [r6, #0x1e]
- orrne r5, r5, r2
- strneh r5, [r6, #0x1e]
- ldreqh r5, [r6, #0x1e]
- andeq r5, r5, r3
- streqh r5, [r6, #0x1e]
- cmp lr, r4
- blo _020BC0B8
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020BC0FC
-FUN_020BC0FC: ; 0x020BC0FC
- ldrh r2, [r0, #0xc]
- ldrh r1, [r0, #0xe]
- add r3, r0, r2
- cmp r1, #0x1
- bne _020BC12C
- ldr r2, [r0, #0x0]
- ldr r1, _020BC138 ; =0x30585442
- cmp r2, r1
- ldreq r1, [r3, #0x0]
- addeq r0, r0, r1
- movne r0, #0x0
- bx lr
-_020BC12C:
- ldr r1, [r3, #0x4]
- add r0, r0, r1
- bx lr
- .balign 4
-_020BC138: .word 0x30585442
-
- arm_func_start FUN_020BC13C
-FUN_020BC13C:
- ldrh r1, [r0, #0xc]
- ldr r1, [r0, r1]
- add r0, r0, r1
- bx lr
-
- arm_func_start FUN_020BC14C
-FUN_020BC14C:
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- ldrb r2, [r0, #0x1]
- cmp r2, #0x10
- bhs _020BC1E4
- cmp r2, #0x0
- ldr lr, [r1, #0x0]
- ldr r12, [r1, #0x4]
- ldr r3, [r1, #0x8]
- ldr r2, [r1, #0xc]
- mov r4, #0x0
- bls _020BC294
- ldrh r5, [r0, #0x6]
- mov r1, r4
- add r6, r0, r5
- ldrh r5, [r6, #0x2]
- add r6, r6, r5
-_020BC190:
- ldr r5, [r6, r1]
- add r7, r6, r1
- cmp r5, lr
- bne _020BC1CC
- ldr r5, [r7, #0x4]
- cmp r5, r12
- bne _020BC1CC
- ldr r5, [r7, #0x8]
- cmp r5, r3
- bne _020BC1CC
- ldr r5, [r7, #0xc]
- cmp r5, r2
- addeq sp, sp, #0x4
- moveq r0, r4
- ldmeqia sp!, {r4-r7,pc}
-_020BC1CC:
- ldrb r5, [r0, #0x1]
- add r4, r4, #0x1
- add r1, r1, #0x10
- cmp r4, r5
- blo _020BC190
- b _020BC294
-_020BC1E4:
- add r3, r0, #0x8
- ldrb r2, [r3, #0x1]
- cmp r2, #0x0
- beq _020BC294
- ldrb r5, [r3, r2, lsl #0x2]
- ldrb r4, [r3, #0x0]
- add r2, r3, r2, lsl #0x2
- cmp r4, r5
- bls _020BC238
-_020BC208:
- mov r4, r5, asr #0x5
- ldr r12, [r1, r4, lsl #0x2]
- and r4, r5, #0x1f
- mov r4, r12, lsr r4
- and r4, r4, #0x1
- add r4, r2, r4
- ldrb r12, [r4, #0x1]
- ldrb r4, [r2, #0x0]
- ldrb r5, [r3, r12, lsl #0x2]
- add r2, r3, r12, lsl #0x2
- cmp r4, r5
- bhi _020BC208
-_020BC238:
- ldrh r4, [r0, #0x6]
- ldr r3, [r1, #0x0]
- add r12, r0, r4
- ldrh r4, [r12, #0x2]
- ldrb r0, [r2, #0x3]
- add r4, r12, r4
- ldr r2, [r4, r0, lsl #0x4]
- add r4, r4, r0, lsl #0x4
- cmp r2, r3
- bne _020BC294
- ldr r3, [r4, #0x4]
- ldr r2, [r1, #0x4]
- cmp r3, r2
- bne _020BC294
- ldr r3, [r4, #0x8]
- ldr r2, [r1, #0x8]
- cmp r3, r2
- bne _020BC294
- ldr r2, [r4, #0xc]
- ldr r1, [r1, #0xc]
- cmp r2, r1
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r7,pc}
-_020BC294:
- mvn r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020BC2A0
-FUN_020BC2A0: ; 0x020BC2A0
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- ldrb r2, [r0, #0x1]
- cmp r2, #0x10
- bhs _020BC34C
- cmp r2, #0x0
- ldr lr, [r1, #0x0]
- ldr r12, [r1, #0x4]
- ldr r3, [r1, #0x8]
- ldr r2, [r1, #0xc]
- mov r4, #0x0
- bls _020BC404
- ldrh r5, [r0, #0x6]
- mov r1, r4
- add r6, r0, r5
- ldrh r5, [r6, #0x2]
- add r6, r6, r5
-_020BC2E4:
- ldr r5, [r6, r1]
- add r7, r6, r1
- cmp r5, lr
- bne _020BC334
- ldr r5, [r7, #0x4]
- cmp r5, r12
- bne _020BC334
- ldr r5, [r7, #0x8]
- cmp r5, r3
- bne _020BC334
- ldr r5, [r7, #0xc]
- cmp r5, r2
- bne _020BC334
- ldrh r2, [r0, #0x6]
- add sp, sp, #0x4
- ldrh r1, [r0, r2]
- add r0, r0, r2
- add r0, r0, #0x4
- mla r0, r1, r4, r0
- ldmia sp!, {r4-r7,pc}
-_020BC334:
- ldrb r5, [r0, #0x1]
- add r4, r4, #0x1
- add r1, r1, #0x10
- cmp r4, r5
- blo _020BC2E4
- b _020BC404
-_020BC34C:
- add r3, r0, #0x8
- ldrb r2, [r3, #0x1]
- cmp r2, #0x0
- beq _020BC404
- ldrb r5, [r3, r2, lsl #0x2]
- ldrb r4, [r3, #0x0]
- add r2, r3, r2, lsl #0x2
- cmp r4, r5
- bls _020BC3A0
-_020BC370:
- mov r4, r5, asr #0x5
- ldr r12, [r1, r4, lsl #0x2]
- and r4, r5, #0x1f
- mov r4, r12, lsr r4
- and r4, r4, #0x1
- add r4, r2, r4
- ldrb r12, [r4, #0x1]
- ldrb r4, [r2, #0x0]
- ldrb r5, [r3, r12, lsl #0x2]
- add r2, r3, r12, lsl #0x2
- cmp r4, r5
- bhi _020BC370
-_020BC3A0:
- ldrh r4, [r0, #0x6]
- ldrb r2, [r2, #0x3]
- ldr r3, [r1, #0x0]
- add r0, r0, r4
- ldrh r4, [r0, #0x2]
- add r12, r0, r4
- ldr r4, [r12, r2, lsl #0x4]
- add r12, r12, r2, lsl #0x4
- cmp r4, r3
- bne _020BC404
- ldr r4, [r12, #0x4]
- ldr r3, [r1, #0x4]
- cmp r4, r3
- bne _020BC404
- ldr r4, [r12, #0x8]
- ldr r3, [r1, #0x8]
- cmp r4, r3
- bne _020BC404
- ldr r3, [r12, #0xc]
- ldr r1, [r1, #0xc]
- cmp r3, r1
- ldreqh r1, [r0], #0x4
- addeq sp, sp, #0x4
- mlaeq r0, r1, r2, r0
- ldmeqia sp!, {r4-r7,pc}
-_020BC404:
- mov r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020BC410
-FUN_020BC410: ; 0x020BC410
- ldrh r3, [r0, #0x12]
- add r0, r0, #0xc
- ldrh r2, [r0, r3]
- add r0, r0, r3
- add r0, r0, #0x4
- mla r0, r2, r1, r0
- bx lr
-
- arm_func_start FUN_020BC42C
-FUN_020BC42C: ; 0x020BC42C
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- mov r4, r2
- bl FUN_020BC410
- ldrsh r1, [r0, #0x4]
- ldrh r3, [r0, #0x6]
- mul r2, r1, r4
- add r3, r5, r3
- mov r2, r2, lsr #0xc
- b _020BC45C
-_020BC458:
- sub r2, r2, #0x1
-_020BC45C:
- cmp r2, #0x0
- beq _020BC474
- mov r1, r2, lsl #0x2
- ldrh r1, [r3, r1]
- cmp r1, r4
- bhs _020BC458
-_020BC474:
- ldrh r1, [r0, #0x0]
- b _020BC480
-_020BC47C:
- add r2, r2, #0x1
-_020BC480:
- add r0, r2, #0x1
- cmp r0, r1
- bhs _020BC49C
- add r0, r3, r2, lsl #0x2
- ldrh r0, [r0, #0x4]
- cmp r0, r4
- bls _020BC47C
-_020BC49C:
- add r0, r3, r2, lsl #0x2
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020BC4A8
-FUN_020BC4A8: ; 0x020BC4A8
- ldrh r2, [r0, #0xa]
- add r0, r0, r2
- add r0, r0, r1, lsl #0x4
- bx lr
-
- arm_func_start FUN_020BC4B8
-FUN_020BC4B8: ; 0x020BC4B8
- ldrh r2, [r0, #0x8]
- add r0, r0, r2
- add r0, r0, r1, lsl #0x4
- bx lr
-
- arm_func_start FUN_020BC4C8
-FUN_020BC4C8: ; 0x020BC4C8
- ldrh r2, [r0, #0xc]
- ldr r2, [r0, r2]
- add r12, r0, r2
- ldrh r2, [r12, #0xe]
- add r3, r12, #0x8
- ldrh r0, [r3, r2]
- add r2, r3, r2
- add r2, r2, #0x4
- mul r1, r0, r1
- adds r0, r2, r1
- ldrne r0, [r0, #0x0]
- addne r0, r12, r0
- moveq r0, #0x0
- bx lr
-
- arm_func_start FUN_020BC500
-FUN_020BC500:
- stmdb sp!, {r4,lr}
- ands r4, r3, #0x8000
- beq _020BC5E0
- mov r2, #0x0
- str r2, [r0, #0x20]
- ldr r4, [r0, #0x20]
- ldr r2, _020BC684 ; =0x00007FFF
- str r4, [r0, #0x1c]
- ldr r4, [r0, #0x1c]
- and r3, r3, r2
- str r4, [r0, #0x18]
- ldr r4, [r0, #0x18]
- mov r2, #0x3
- str r4, [r0, #0x14]
- ldr r4, [r0, #0x14]
- mul r2, r3, r2
- str r4, [r0, #0x10]
- ldr r4, [r0, #0x10]
- mov r3, r2, lsl #0x1
- str r4, [r0, #0xc]
- ldr r4, [r0, #0xc]
- add r2, r1, r2, lsl #0x1
- str r4, [r0, #0x8]
- ldr r4, [r0, #0x8]
- str r4, [r0, #0x4]
- ldr r4, [r0, #0x4]
- str r4, [r0, #0x0]
- ldrsh r4, [r1, r3]
- ldrsh r12, [r2, #0x2]
- ldrsh r3, [r2, #0x4]
- and r1, r4, #0xf
- ands r4, r4, #0x10
- movne lr, #0x1000
- rsbne lr, lr, #0x0
- moveq lr, #0x1000
- str lr, [r0, r1, lsl #0x2]
- ldr r4, _020BC688 ; =UNK_020FFA14
- ldr lr, _020BC68C ; =UNK_020FFA15
- ldrb r4, [r4, r1, lsl #0x2]
- str r12, [r0, r4, lsl #0x2]
- ldrb lr, [lr, r1, lsl #0x2]
- str r3, [r0, lr, lsl #0x2]
- ldrsh lr, [r2, #0x0]
- ands lr, lr, #0x20
- ldr lr, _020BC690 ; =UNK_020FFA16
- rsbne r3, r3, #0x0
- ldrb lr, [lr, r1, lsl #0x2]
- str r3, [r0, lr, lsl #0x2]
- ldrsh r2, [r2, #0x0]
- ands r2, r2, #0x40
- ldr r2, _020BC694 ; =UNK_020FFA17
- rsbne r12, r12, #0x0
- ldrb r1, [r2, r1, lsl #0x2]
- str r12, [r0, r1, lsl #0x2]
- mov r0, #0x0
- ldmia sp!, {r4,pc}
-_020BC5E0:
- ldr r1, _020BC684 ; =0x00007FFF
- mov r12, #0x5
- and r1, r3, r1
- mul r3, r1, r12
- add r1, r2, r3, lsl #0x1
- ldrsh lr, [r1, #0x8]
- mov r12, r3, lsl #0x1
- mov r3, lr, asr #0x3
- str r3, [r0, #0x10]
- ldrsh r12, [r2, r12]
- and r2, lr, #0x7
- mov r2, r2, lsl #0x10
- mov r3, r12, asr #0x3
- str r3, [r0, #0x0]
- ldrsh r3, [r1, #0x2]
- and r12, r12, #0x7
- orr lr, r12, r2, asr #0xd
- mov r2, r3, asr #0x3
- str r2, [r0, #0x4]
- ldrsh r12, [r1, #0x4]
- mov r2, lr, lsl #0x10
- and lr, r3, #0x7
- mov r3, r12, asr #0x3
- str r3, [r0, #0x8]
- ldrsh r3, [r1, #0x6]
- orr r1, lr, r2, asr #0xd
- mov r1, r1, lsl #0x10
- and r2, r12, #0x7
- orr r1, r2, r1, asr #0xd
- mov r1, r1, lsl #0x10
- and r2, r3, #0x7
- orr r1, r2, r1, asr #0xd
- mov r1, r1, lsl #0x10
- mov r1, r1, asr #0x10
- mov r2, r3, asr #0x3
- mov r1, r1, lsl #0x13
- str r2, [r0, #0xc]
- mov r1, r1, asr #0x13
- str r1, [r0, #0x14]
- mov r0, #0x1
- ldmia sp!, {r4,pc}
- .balign 4
-_020BC684: .word 0x00007FFF
-_020BC688: .word UNK_020FFA14
-_020BC68C: .word UNK_020FFA15
-_020BC690: .word UNK_020FFA16
-_020BC694: .word UNK_020FFA17
-
- arm_func_start FUN_020BC698
-FUN_020BC698: ; 0x020BC698
- stmdb sp!, {r4-r10,lr}
- sub sp, sp, #0x48
- ldrh r4, [r3, #0x4]
- ldr r5, [r3, #0xc]
- ldr r8, [r3, #0x10]
- ldr r7, [r2, #0x4]
- mov r12, r1, asr #0xc
- sub r4, r4, #0x1
- mov r6, r0
- cmp r12, r4
- add r5, r3, r5
- add r4, r3, r8
- add r8, r3, r7
- ldr r7, [r2, #0x0]
- bne _020BC780
- ands r0, r7, #0xc0000000
- beq _020BC6F0
- ands r0, r7, #0x40000000
- andne r0, r12, #0x1
- addne r12, r0, r12, lsr #0x1
- andeq r0, r12, #0x3
- addeq r12, r0, r12, lsr #0x2
-_020BC6F0:
- ldr r0, [r3, #0x8]
- ands r0, r0, #0x2
- movne r7, #0x0
- bne _020BC7F4
- mov r0, r12, lsl #0x1
- ldrh r3, [r8, r0]
- mov r0, r6
- mov r1, r5
- mov r2, r4
- bl FUN_020BC500
- cmp r0, #0x0
- addeq sp, sp, #0x48
- ldmeqia sp!, {r4-r10,pc}
- ldr r9, [r6, #0x14]
- ldr r5, [r6, #0x4]
- ldr r4, [r6, #0x10]
- ldr r2, [r6, #0x8]
- mul r1, r5, r9
- mul r0, r2, r4
- sub r0, r1, r0
- ldr r7, [r6, #0xc]
- ldr r8, [r6, #0x0]
- mov r3, r0, asr #0xc
- mul r1, r2, r7
- mul r0, r8, r9
- sub r2, r1, r0
- mul r1, r8, r4
- mul r0, r5, r7
- sub r0, r1, r0
- str r3, [r6, #0x18]
- mov r1, r2, asr #0xc
- str r1, [r6, #0x1c]
- mov r0, r0, asr #0xc
- add sp, sp, #0x48
- str r0, [r6, #0x20]
- ldmia sp!, {r4-r10,pc}
-_020BC780:
- ands r0, r7, #0xc0000000
- beq _020BC7F0
- ldr r0, _020BC9C4 ; =0x1FFF0000
- ands r2, r7, #0x40000000
- and r0, r7, r0
- mov r0, r0, lsr #0x10
- beq _020BC7C4
- cmp r12, r0
- movcs r12, r0, lsr #0x1
- addcs r7, r12, #0x1
- bhs _020BC7F4
- ldr r0, _020BC9C8 ; =0x00001FFF
- mov r12, r12, lsr #0x1
- add r7, r12, #0x1
- and r10, r1, r0
- mov r9, #0x2
- b _020BC800
-_020BC7C4:
- cmp r12, r0
- andcs r0, r12, #0x3
- addcs r12, r0, r12, lsr #0x2
- addcs r7, r12, #0x1
- bhs _020BC7F4
- ldr r0, _020BC9CC ; =0x00003FFF
- mov r12, r12, lsr #0x2
- add r7, r12, #0x1
- and r10, r1, r0
- mov r9, #0x4
- b _020BC800
-_020BC7F0:
- add r7, r12, #0x1
-_020BC7F4:
- ldr r0, _020BC9D0 ; =0x00000FFF
- mov r9, #0x1
- and r10, r1, r0
-_020BC800:
- mov r0, r12, lsl #0x1
- ldrh r3, [r8, r0]
- add r0, sp, #0x0
- mov r1, r5
- mov r2, r4
- bl FUN_020BC500
- mov r1, r7, lsl #0x1
- ldrh r3, [r8, r1]
- orr r7, r0, #0x0
- add r0, sp, #0x24
- mov r1, r5
- mov r2, r4
- bl FUN_020BC500
- ldr r3, [sp, #0x0]
- ldr r1, [sp, #0x24]
- mul r2, r3, r9
- sub r1, r1, r3
- mul r1, r10, r1
- add r1, r2, r1, asr #0xc
- str r1, [r6, #0x0]
- ldr r3, [sp, #0x4]
- ldr r1, [sp, #0x28]
- mul r2, r3, r9
- sub r1, r1, r3
- mul r1, r10, r1
- add r1, r2, r1, asr #0xc
- str r1, [r6, #0x4]
- ldr r3, [sp, #0x8]
- ldr r1, [sp, #0x2c]
- mul r2, r3, r9
- sub r1, r1, r3
- mul r1, r10, r1
- add r1, r2, r1, asr #0xc
- str r1, [r6, #0x8]
- ldr r3, [sp, #0xc]
- ldr r1, [sp, #0x30]
- mul r2, r3, r9
- sub r1, r1, r3
- mul r1, r10, r1
- add r1, r2, r1, asr #0xc
- str r1, [r6, #0xc]
- ldr r2, [sp, #0x10]
- ldr r1, [sp, #0x34]
- orr r7, r7, r0
- sub r0, r1, r2
- mul r1, r2, r9
- mul r0, r10, r0
- add r0, r1, r0, asr #0xc
- str r0, [r6, #0x10]
- ldr r2, [sp, #0x14]
- ldr r0, [sp, #0x38]
- mul r1, r2, r9
- sub r0, r0, r2
- mul r0, r10, r0
- add r2, r1, r0, asr #0xc
- mov r0, r6
- mov r1, r6
- str r2, [r6, #0x14]
- bl VEC_Normalize
- add r0, r6, #0xc
- mov r1, r0
- bl VEC_Normalize
- cmp r7, #0x0
- bne _020BC968
- ldr r3, [sp, #0x18]
- ldr r1, [sp, #0x3c]
- mul r2, r3, r9
- sub r1, r1, r3
- mul r1, r10, r1
- add r1, r2, r1, asr #0xc
- str r1, [r6, #0x18]
- ldr r3, [sp, #0x1c]
- ldr r1, [sp, #0x40]
- mul r2, r3, r9
- sub r1, r1, r3
- mul r1, r10, r1
- add r1, r2, r1, asr #0xc
- str r1, [r6, #0x1c]
- ldr r3, [sp, #0x20]
- ldr r1, [sp, #0x44]
- mul r2, r3, r9
- sub r1, r1, r3
- mul r1, r10, r1
- add r2, r2, r1, asr #0xc
- add r0, r6, #0x18
- mov r1, r0
- str r2, [r6, #0x20]
- bl VEC_Normalize
- add sp, sp, #0x48
- ldmia sp!, {r4-r10,pc}
-_020BC968:
- ldr r9, [r6, #0x14]
- ldr r5, [r6, #0x4]
- ldr r8, [r6, #0x0]
- ldr r4, [r6, #0x10]
- ldr r2, [r6, #0x8]
- ldr r7, [r6, #0xc]
- mul r1, r5, r9
- mul r0, r2, r4
- sub r0, r1, r0
- mov r3, r0, asr #0xc
- mul r1, r2, r7
- mul r0, r8, r9
- sub r2, r1, r0
- mul r1, r8, r4
- mul r0, r5, r7
- sub r0, r1, r0
- str r3, [r6, #0x18]
- mov r1, r2, asr #0xc
- str r1, [r6, #0x1c]
- mov r0, r0, asr #0xc
- str r0, [r6, #0x20]
- add sp, sp, #0x48
- ldmia sp!, {r4-r10,pc}
- .balign 4
-_020BC9C4: .word 0x1FFF0000
-_020BC9C8: .word 0x00001FFF
-_020BC9CC: .word 0x00003FFF
-_020BC9D0: .word 0x00000FFF
-
- arm_func_start FUN_020BC9D4
-FUN_020BC9D4: ; 0x020BC9D4
- stmdb sp!, {r4-r9,lr}
- sub sp, sp, #0x4c
- ldr r5, [r3, #0xc]
- ldr r4, [r3, #0x10]
- ldr r12, [r2, #0x0]
- ldr r2, [r2, #0x4]
- mov r6, r0
- mov r0, r1, asr #0xc
- add r5, r3, r5
- add r4, r3, r4
- add r8, r3, r2
- ands r1, r12, #0xc0000000
- beq _020BCD40
- ldr r1, _020BCDC0 ; =0x1FFF0000
- ands r2, r12, #0x40000000
- and r1, r12, r1
- mov r2, r1, lsr #0x10
- beq _020BCA44
- ands r1, r0, #0x1
- beq _020BCA3C
- cmp r0, r2
- movhi r0, r2, lsr #0x1
- addhi r0, r0, #0x1
- bhi _020BCD40
- mov r7, r0, lsr #0x1
- b _020BCBE8
-_020BCA3C:
- mov r0, r0, lsr #0x1
- b _020BCD40
-_020BCA44:
- ands r1, r0, #0x3
- beq _020BCBE0
- cmp r0, r2
- addhi r0, r1, r2, lsr #0x2
- bhi _020BCD40
- ands r1, r0, #0x1
- beq _020BCBD8
- ands r1, r0, #0x2
- movne r9, r0, lsr #0x2
- addne r0, r9, #0x1
- moveq r0, r0, lsr #0x2
- addeq r9, r0, #0x1
- mov r0, r0, lsl #0x1
- ldrh r3, [r8, r0]
- mov r0, r6
- mov r1, r5
- mov r2, r4
- mov r7, #0x0
- bl FUN_020BC500
- mov r1, r9, lsl #0x1
- ldrh r3, [r8, r1]
- orr r7, r7, r0
- add r0, sp, #0x0
- mov r1, r5
- mov r2, r4
- bl FUN_020BC500
- ldr r3, [sp, #0x0]
- ldr r1, [r6, #0x0]
- mov r2, #0x3
- mla r3, r1, r2, r3
- str r3, [r6, #0x0]
- ldr r3, [sp, #0x4]
- ldr r1, [r6, #0x4]
- orr r7, r7, r0
- mla r0, r1, r2, r3
- str r0, [r6, #0x4]
- ldr r3, [sp, #0x8]
- ldr r1, [r6, #0x8]
- mov r0, r6
- mla r3, r1, r2, r3
- str r3, [r6, #0x8]
- ldr r4, [sp, #0xc]
- ldr r3, [r6, #0xc]
- mov r1, r6
- mla r4, r3, r2, r4
- str r4, [r6, #0xc]
- ldr r4, [sp, #0x10]
- ldr r3, [r6, #0x10]
- mla r4, r3, r2, r4
- str r4, [r6, #0x10]
- ldr r4, [sp, #0x14]
- ldr r3, [r6, #0x14]
- mla r2, r3, r2, r4
- str r2, [r6, #0x14]
- bl VEC_Normalize
- add r0, r6, #0xc
- mov r1, r0
- bl VEC_Normalize
- cmp r7, #0x0
- bne _020BCB7C
- ldr r1, [sp, #0x18]
- ldr r0, [r6, #0x18]
- mov r2, #0x3
- mla r1, r0, r2, r1
- str r1, [r6, #0x18]
- ldr r3, [sp, #0x1c]
- ldr r1, [r6, #0x1c]
- add r0, r6, #0x18
- mla r3, r1, r2, r3
- str r3, [r6, #0x1c]
- ldr r4, [sp, #0x20]
- ldr r3, [r6, #0x20]
- mov r1, r0
- mla r2, r3, r2, r4
- str r2, [r6, #0x20]
- bl VEC_Normalize
- add sp, sp, #0x4c
- ldmia sp!, {r4-r9,pc}
-_020BCB7C:
- ldr r12, [r6, #0x14]
- ldr r5, [r6, #0x4]
- ldr r4, [r6, #0x10]
- ldr r2, [r6, #0x8]
- mul r1, r5, r12
- mul r0, r2, r4
- sub r0, r1, r0
- ldr r7, [r6, #0xc]
- ldr r8, [r6, #0x0]
- mov r3, r0, asr #0xc
- mul r1, r2, r7
- mul r0, r8, r12
- sub r2, r1, r0
- mul r1, r8, r4
- mul r0, r5, r7
- sub r0, r1, r0
- str r3, [r6, #0x18]
- mov r1, r2, asr #0xc
- str r1, [r6, #0x1c]
- mov r0, r0, asr #0xc
- add sp, sp, #0x4c
- str r0, [r6, #0x20]
- ldmia sp!, {r4-r9,pc}
-_020BCBD8:
- mov r7, r0, lsr #0x2
- b _020BCBE8
-_020BCBE0:
- mov r0, r0, lsr #0x2
- b _020BCD40
-_020BCBE8:
- mov r0, r7, lsl #0x1
- ldrh r3, [r8, r0]
- mov r0, r6
- mov r1, r5
- mov r2, r4
- bl FUN_020BC500
- add r1, r8, r7, lsl #0x1
- ldrh r3, [r1, #0x2]
- orr r7, r0, #0x0
- add r0, sp, #0x24
- mov r1, r5
- mov r2, r4
- bl FUN_020BC500
- ldr r2, [r6, #0x0]
- ldr r1, [sp, #0x24]
- orr r7, r7, r0
- add r0, r2, r1
- str r0, [r6, #0x0]
- ldr r2, [r6, #0x4]
- ldr r1, [sp, #0x28]
- mov r0, r6
- add r1, r2, r1
- str r1, [r6, #0x4]
- ldr r3, [r6, #0x8]
- ldr r2, [sp, #0x2c]
- mov r1, r6
- add r2, r3, r2
- str r2, [r6, #0x8]
- ldr r3, [r6, #0xc]
- ldr r2, [sp, #0x30]
- add r2, r3, r2
- str r2, [r6, #0xc]
- ldr r3, [r6, #0x10]
- ldr r2, [sp, #0x34]
- add r2, r3, r2
- str r2, [r6, #0x10]
- ldr r3, [r6, #0x14]
- ldr r2, [sp, #0x38]
- add r2, r3, r2
- str r2, [r6, #0x14]
- bl VEC_Normalize
- add r0, r6, #0xc
- mov r1, r0
- bl VEC_Normalize
- cmp r7, #0x0
- bne _020BCCE4
- ldr r2, [r6, #0x18]
- ldr r1, [sp, #0x3c]
- add r0, r6, #0x18
- add r1, r2, r1
- str r1, [r6, #0x18]
- ldr r3, [r6, #0x1c]
- ldr r2, [sp, #0x40]
- mov r1, r0
- add r2, r3, r2
- str r2, [r6, #0x1c]
- ldr r3, [r6, #0x20]
- ldr r2, [sp, #0x44]
- add r2, r3, r2
- str r2, [r6, #0x20]
- bl VEC_Normalize
- add sp, sp, #0x4c
- ldmia sp!, {r4-r9,pc}
-_020BCCE4:
- ldr r12, [r6, #0x14]
- ldr r5, [r6, #0x4]
- ldr r4, [r6, #0x10]
- ldr r2, [r6, #0x8]
- mul r1, r5, r12
- mul r0, r2, r4
- sub r0, r1, r0
- ldr r7, [r6, #0xc]
- ldr r8, [r6, #0x0]
- mov r3, r0, asr #0xc
- mul r1, r2, r7
- mul r0, r8, r12
- sub r2, r1, r0
- mul r1, r8, r4
- mul r0, r5, r7
- sub r0, r1, r0
- str r3, [r6, #0x18]
- mov r1, r2, asr #0xc
- str r1, [r6, #0x1c]
- mov r0, r0, asr #0xc
- add sp, sp, #0x4c
- str r0, [r6, #0x20]
- ldmia sp!, {r4-r9,pc}
-_020BCD40:
- mov r0, r0, lsl #0x1
- ldrh r3, [r8, r0]
- mov r0, r6
- mov r1, r5
- mov r2, r4
- bl FUN_020BC500
- cmp r0, #0x0
- addeq sp, sp, #0x4c
- ldmeqia sp!, {r4-r9,pc}
- ldr r12, [r6, #0x14]
- ldr r5, [r6, #0x4]
- ldr r8, [r6, #0x0]
- ldr r4, [r6, #0x10]
- ldr r2, [r6, #0x8]
- ldr r7, [r6, #0xc]
- mul r1, r5, r12
- mul r0, r2, r4
- sub r0, r1, r0
- mov r3, r0, asr #0xc
- mul r1, r2, r7
- mul r0, r8, r12
- sub r2, r1, r0
- mul r1, r8, r4
- mul r0, r5, r7
- sub r0, r1, r0
- str r3, [r6, #0x18]
- mov r1, r2, asr #0xc
- str r1, [r6, #0x1c]
- mov r0, r0, asr #0xc
- str r0, [r6, #0x20]
- add sp, sp, #0x4c
- ldmia sp!, {r4-r9,pc}
- .balign 4
-_020BCDC0: .word 0x1FFF0000
-
- arm_func_start FUN_020BCDC4
-FUN_020BCDC4: ; 0x020BCDC4
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- ldrh r4, [r3, #0x4]
- ldr r6, [r2, #0x4]
- mov r5, r1, asr #0xc
- sub r4, r4, #0x1
- cmp r5, r4
- add r6, r3, r6
- ldr r2, [r2, #0x0]
- bne _020BCE58
- ands r4, r2, #0xc0000000
- beq _020BCE08
- ands r4, r2, #0x40000000
- andne r4, r5, #0x1
- addne r5, r4, r5, lsr #0x1
- andeq r4, r5, #0x3
- addeq r5, r4, r5, lsr #0x2
-_020BCE08:
- ldr r3, [r3, #0x8]
- ands r3, r3, #0x2
- movne r4, #0x0
- bne _020BCED4
- ands r1, r2, #0x20000000
- ldreq r2, [r6, r5, lsl #0x3]
- addeq r1, r6, r5, lsl #0x3
- streq r2, [r0, #0x0]
- ldreq r1, [r1, #0x4]
- addeq sp, sp, #0x4
- streq r1, [r0, #0x4]
- ldmeqia sp!, {r4-r7,pc}
- mov r1, r5, lsl #0x2
- ldrsh r2, [r6, r1]
- add r1, r6, r5, lsl #0x2
- add sp, sp, #0x4
- str r2, [r0, #0x0]
- ldrsh r1, [r1, #0x2]
- str r1, [r0, #0x4]
- ldmia sp!, {r4-r7,pc}
-_020BCE58:
- ands r3, r2, #0xc0000000
- beq _020BCED0
- ldr r3, _020BCF60 ; =0x1FFF0000
- ands r4, r2, #0x40000000
- and r3, r2, r3
- mov r3, r3, lsr #0x10
- beq _020BCEA0
- cmp r5, r3
- movcs r5, r3, lsr #0x1
- addcs r4, r5, #0x1
- bhs _020BCED4
- ldr r3, _020BCF64 ; =0x00001FFF
- mov r5, r5, lsr #0x1
- add r4, r5, #0x1
- and lr, r1, r3
- mov r12, #0x2
- mov r3, #0x1
- b _020BCEE4
-_020BCEA0:
- cmp r5, r3
- andcs r3, r5, #0x3
- addcs r5, r3, r5, lsr #0x2
- addcs r4, r5, #0x1
- bhs _020BCED4
- ldr r3, _020BCF68 ; =0x00003FFF
- mov r5, r5, lsr #0x2
- add r4, r5, #0x1
- and lr, r1, r3
- mov r12, #0x4
- mov r3, #0x2
- b _020BCEE4
-_020BCED0:
- add r4, r5, #0x1
-_020BCED4:
- ldr r3, _020BCF6C ; =0x00000FFF
- mov r12, #0x1
- and lr, r1, r3
- mov r3, #0x0
-_020BCEE4:
- ands r1, r2, #0x20000000
- beq _020BCF10
- mov r2, r5, lsl #0x2
- add r1, r6, r5, lsl #0x2
- mov r5, r4, lsl #0x2
- add r4, r6, r4, lsl #0x2
- ldrsh r2, [r6, r2]
- ldrsh r1, [r1, #0x2]
- ldrsh r5, [r6, r5]
- ldrsh r4, [r4, #0x2]
- b _020BCF28
-_020BCF10:
- add r1, r6, r5, lsl #0x3
- add r7, r6, r4, lsl #0x3
- ldr r2, [r6, r5, lsl #0x3]
- ldr r1, [r1, #0x4]
- ldr r5, [r6, r4, lsl #0x3]
- ldr r4, [r7, #0x4]
-_020BCF28:
- sub r5, r5, r2
- sub r4, r4, r1
- mul r6, r2, r12
- mul r2, lr, r5
- add r2, r6, r2, asr #0xc
- mov r5, r2, asr r3
- mul r2, r1, r12
- mul r1, lr, r4
- add r1, r2, r1, asr #0xc
- mov r1, r1, asr r3
- str r5, [r0, #0x0]
- str r1, [r0, #0x4]
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020BCF60: .word 0x1FFF0000
-_020BCF64: .word 0x00001FFF
-_020BCF68: .word 0x00003FFF
-_020BCF6C: .word 0x00000FFF
-
- arm_func_start FUN_020BCF70
-FUN_020BCF70: ; 0x020BCF70
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- ldr r4, [r2, #0x4]
- ldr r12, [r2, #0x0]
- mov r1, r1, asr #0xc
- add r3, r3, r4
- ands r2, r12, #0xc0000000
- beq _020BD0D0
- ldr r2, _020BD184 ; =0x1FFF0000
- ands r4, r12, #0x40000000
- and r2, r12, r2
- mov r4, r2, lsr #0x10
- beq _020BCFCC
- ands r2, r1, #0x1
- beq _020BCFC4
- cmp r1, r4
- movhi r1, r4, lsr #0x1
- addhi r1, r1, #0x1
- bhi _020BD0D0
- mov r2, r1, lsr #0x1
- b _020BD110
-_020BCFC4:
- mov r1, r1, lsr #0x1
- b _020BD0D0
-_020BCFCC:
- ands r2, r1, #0x3
- beq _020BD0CC
- cmp r1, r4
- addhi r1, r2, r4, lsr #0x2
- bhi _020BD0D0
- ands r2, r1, #0x1
- beq _020BD0C4
- ands r2, r1, #0x2
- movne r1, r1, lsr #0x2
- addne r2, r1, #0x1
- moveq r2, r1, lsr #0x2
- addeq r1, r2, #0x1
- ands r4, r12, #0x20000000
- beq _020BD04C
- mov r5, r2, lsl #0x2
- mov r4, r1, lsl #0x2
- ldrsh r12, [r3, r5]
- ldrsh r5, [r3, r4]
- add r2, r3, r2, lsl #0x2
- add r4, r12, r12, lsl #0x1
- add r4, r5, r4
- mov r4, r4, asr #0x2
- str r4, [r0, #0x0]
- add r1, r3, r1, lsl #0x2
- ldrsh r3, [r2, #0x2]
- ldrsh r2, [r1, #0x2]
- add sp, sp, #0x4
- add r1, r3, r3, lsl #0x1
- add r1, r2, r1
- mov r1, r1, asr #0x2
- str r1, [r0, #0x4]
- ldmia sp!, {r4-r5,pc}
-_020BD04C:
- ldr r5, [r3, r2, lsl #0x3]
- ldr r4, [r3, r1, lsl #0x3]
- mov r12, r5, asr #0x1f
- mov r12, r12, lsl #0x1
- mov lr, r5, lsl #0x1
- orr r12, r12, r5, lsr #0x1f
- adds lr, lr, r5
- adc r12, r12, r5, asr #0x1f
- adds lr, lr, r4
- adc r12, r12, r4, asr #0x1f
- mov lr, lr, lsr #0x2
- orr lr, lr, r12, lsl #0x1e
- str lr, [r0, #0x0]
- add r2, r3, r2, lsl #0x3
- ldr r12, [r2, #0x4]
- add r1, r3, r1, lsl #0x3
- mov r2, r12, asr #0x1f
- mov r2, r2, lsl #0x1
- mov r3, r12, lsl #0x1
- ldr r1, [r1, #0x4]
- orr r2, r2, r12, lsr #0x1f
- adds r3, r3, r12
- adc r2, r2, r12, asr #0x1f
- adds r3, r3, r1
- adc r1, r2, r1, asr #0x1f
- mov r2, r3, lsr #0x2
- orr r2, r2, r1, lsl #0x1e
- str r2, [r0, #0x4]
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-_020BD0C4:
- mov r2, r1, lsr #0x2
- b _020BD110
-_020BD0CC:
- mov r1, r1, lsr #0x2
-_020BD0D0:
- ands r2, r12, #0x20000000
- ldreq r2, [r3, r1, lsl #0x3]
- addeq r1, r3, r1, lsl #0x3
- streq r2, [r0, #0x0]
- ldreq r1, [r1, #0x4]
- addeq sp, sp, #0x4
- streq r1, [r0, #0x4]
- ldmeqia sp!, {r4-r5,pc}
- mov r2, r1, lsl #0x2
- ldrsh r2, [r3, r2]
- add r1, r3, r1, lsl #0x2
- add sp, sp, #0x4
- str r2, [r0, #0x0]
- ldrsh r1, [r1, #0x2]
- str r1, [r0, #0x4]
- ldmia sp!, {r4-r5,pc}
-_020BD110:
- ands r1, r12, #0x20000000
- beq _020BD150
- mov r1, r2, lsl #0x2
- add r12, r3, r2, lsl #0x2
- ldrsh r2, [r3, r1]
- ldrsh r1, [r12, #0x4]
- add sp, sp, #0x4
- add r1, r2, r1
- mov r1, r1, asr #0x1
- str r1, [r0, #0x0]
- ldrsh r2, [r12, #0x2]
- ldrsh r1, [r12, #0x6]
- add r1, r2, r1
- mov r1, r1, asr #0x1
- str r1, [r0, #0x4]
- ldmia sp!, {r4-r5,pc}
-_020BD150:
- add r12, r3, r2, lsl #0x3
- ldr r2, [r3, r2, lsl #0x3]
- ldr r1, [r12, #0x8]
- add r1, r2, r1
- mov r1, r1, asr #0x1
- str r1, [r0, #0x0]
- ldr r2, [r12, #0x4]
- ldr r1, [r12, #0xc]
- add r1, r2, r1
- mov r1, r1, asr #0x1
- str r1, [r0, #0x4]
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020BD184: .word 0x1FFF0000
-
- arm_func_start FUN_020BD188
-FUN_020BD188: ; 0x020BD188
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- ldrh r4, [r3, #0x4]
- ldr lr, [r2, #0x4]
- mov r12, r1, asr #0xc
- sub r4, r4, #0x1
- cmp r12, r4
- add r4, r3, lr
- ldr lr, [r2, #0x0]
- bne _020BD230
- ands r2, lr, #0xc0000000
- beq _020BD1CC
- ands r2, lr, #0x40000000
- andne r2, r12, #0x1
- addne r12, r2, r12, lsr #0x1
- andeq r2, r12, #0x3
- addeq r12, r2, r12, lsr #0x2
-_020BD1CC:
- ldr r2, [r3, #0x8]
- ands r2, r2, #0x2
- beq _020BD210
- ldr r2, _020BD2E8 ; =0x00000FFF
- ands r3, lr, #0x20000000
- and r3, r1, r2
- movne r1, r12, lsl #0x1
- ldrnesh r2, [r4, r1]
- ldrnesh r1, [r4, #0x0]
- add sp, sp, #0x4
- ldreq r2, [r4, r12, lsl #0x2]
- ldreq r1, [r4, #0x0]
- sub r1, r1, r2
- mul r1, r3, r1
- add r1, r2, r1, asr #0xc
- str r1, [r0, #0x0]
- ldmia sp!, {r4-r5,pc}
-_020BD210:
- ands r1, lr, #0x20000000
- movne r1, r12, lsl #0x1
- ldrnesh r1, [r4, r1]
- add sp, sp, #0x4
- strne r1, [r0, #0x0]
- ldreq r1, [r4, r12, lsl #0x2]
- streq r1, [r0, #0x0]
- ldmia sp!, {r4-r5,pc}
-_020BD230:
- ands r2, lr, #0xc0000000
- beq _020BD298
- ldr r2, _020BD2EC ; =0x1FFF0000
- ands r3, lr, #0x40000000
- and r2, lr, r2
- mov r2, r2, lsr #0x10
- beq _020BD270
- cmp r12, r2
- movcs r12, r2, lsr #0x1
- bhs _020BD298
- ldr r2, _020BD2F0 ; =0x00001FFF
- mov r12, r12, lsr #0x1
- and r5, r1, r2
- mov r2, #0x2
- mov r1, #0x1
- b _020BD2A8
-_020BD270:
- cmp r12, r2
- andcs r2, r12, #0x3
- addcs r12, r2, r12, lsr #0x2
- bhs _020BD298
- ldr r2, _020BD2F4 ; =0x00003FFF
- mov r12, r12, lsr #0x2
- and r5, r1, r2
- mov r2, #0x4
- mov r1, #0x2
- b _020BD2A8
-_020BD298:
- ldr r3, _020BD2E8 ; =0x00000FFF
- mov r2, #0x1
- and r5, r1, r3
- mov r1, #0x0
-_020BD2A8:
- ands r3, lr, #0x20000000
- addne r3, r4, r12, lsl #0x1
- movne lr, r12, lsl #0x1
- ldrnesh r12, [r4, lr]
- ldrnesh r3, [r3, #0x2]
- addeq r3, r4, r12, lsl #0x2
- ldreq r12, [r4, r12, lsl #0x2]
- ldreq r3, [r3, #0x4]
- mul r4, r12, r2
- sub r3, r3, r12
- mul r2, r5, r3
- add r2, r4, r2, asr #0xc
- mov r1, r2, asr r1
- str r1, [r0, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020BD2E8: .word 0x00000FFF
-_020BD2EC: .word 0x1FFF0000
-_020BD2F0: .word 0x00001FFF
-_020BD2F4: .word 0x00003FFF
-
- arm_func_start FUN_020BD2F8
-FUN_020BD2F8: ; 0x020BD2F8
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r12, [r2, #0x4]
- ldr r2, [r2, #0x0]
- mov r1, r1, asr #0xc
- add r3, r3, r12
- ands r12, r2, #0xc0000000
- beq _020BD44C
- ldr ip, _020BD46C ; =0x1FFF0000
- ands lr, r2, #0x40000000
- and r12, r2, r12
- mov lr, r12, lsr #0x10
- beq _020BD354
- ands r12, r1, #0x1
- beq _020BD34C
- cmp r1, lr
- movhi r1, lr, lsr #0x1
- addhi r1, r1, #0x1
- bhi _020BD44C
- mov r12, r1, lsr #0x1
- b _020BD400
-_020BD34C:
- mov r1, r1, lsr #0x1
- b _020BD44C
-_020BD354:
- ands r12, r1, #0x3
- beq _020BD3F8
- cmp r1, lr
- addhi r1, r12, lr, lsr #0x2
- bhi _020BD44C
- ands r12, r1, #0x1
- beq _020BD3F0
- ands r12, r1, #0x2
- movne lr, r1, lsr #0x2
- addne r12, lr, #0x1
- moveq r12, r1, lsr #0x2
- addeq lr, r12, #0x1
- ands r1, r2, #0x20000000
- beq _020BD3B4
- mov r2, r12, lsl #0x1
- mov r1, lr, lsl #0x1
- ldrsh r12, [r3, r2]
- ldrsh r2, [r3, r1]
- mov r1, #0x3
- add sp, sp, #0x4
- smlabb r1, r12, r1, r2
- mov r1, r1, asr #0x2
- str r1, [r0, #0x0]
- ldmia sp!, {pc}
-_020BD3B4:
- ldr r12, [r3, r12, lsl #0x2]
- ldr r1, [r3, lr, lsl #0x2]
- mov r2, r12, asr #0x1f
- mov r2, r2, lsl #0x1
- mov r3, r12, lsl #0x1
- orr r2, r2, r12, lsr #0x1f
- adds r3, r3, r12
- adc r2, r2, r12, asr #0x1f
- adds r3, r3, r1
- adc r1, r2, r1, asr #0x1f
- mov r2, r3, lsr #0x2
- orr r2, r2, r1, lsl #0x1e
- str r2, [r0, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {pc}
-_020BD3F0:
- mov r12, r1, lsr #0x2
- b _020BD400
-_020BD3F8:
- mov r1, r1, lsr #0x2
- b _020BD44C
-_020BD400:
- ands r1, r2, #0x20000000
- beq _020BD42C
- mov r2, r12, lsl #0x1
- add r1, r3, r12, lsl #0x1
- ldrsh r2, [r3, r2]
- ldrsh r1, [r1, #0x2]
- add sp, sp, #0x4
- add r1, r2, r1
- mov r1, r1, asr #0x1
- str r1, [r0, #0x0]
- ldmia sp!, {pc}
-_020BD42C:
- add r1, r3, r12, lsl #0x2
- ldr r2, [r3, r12, lsl #0x2]
- ldr r1, [r1, #0x4]
- mov r2, r2, asr #0x1
- add r1, r2, r1, asr #0x1
- str r1, [r0, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {pc}
-_020BD44C:
- ands r2, r2, #0x20000000
- movne r1, r1, lsl #0x1
- ldrnesh r1, [r3, r1]
- strne r1, [r0, #0x0]
- ldreq r1, [r3, r1, lsl #0x2]
- streq r1, [r0, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020BD46C: .word 0x1FFF0000
-
- arm_func_start FUN_020BD470
-FUN_020BD470: ; 0x020BD470
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x34
- mov r9, r0
- add r0, r9, r1, lsl #0x1
- ldrh r0, [r0, #0x14]
- mov r7, r3
- mov r8, r2
- ldr r5, [r9, r0]
- add r1, r9, r0
- ands r0, r5, #0x1
- movne r0, #0x7
- strne r0, [r7, #0x0]
- bne _020BD814
- ldr r0, _020BD848 ; =0x00000FFF
- add r4, r1, #0x4
- ands r0, r8, r0
- beq _020BD4C4
- ldr r0, [r9, #0x8]
- ands r0, r0, #0x1
- movne r6, #0x1
- bne _020BD4C8
-_020BD4C4:
- mov r6, #0x0
-_020BD4C8:
- mov r0, #0x0
- str r0, [r7, #0x0]
- ands r0, r5, #0x6
- bne _020BD5C0
- ands r0, r5, #0x8
- bne _020BD51C
- cmp r6, #0x0
- beq _020BD500
- mov r1, r8
- mov r2, r4
- mov r3, r9
- add r0, r7, #0x4c
- bl FUN_020BD188
- b _020BD514
-_020BD500:
- mov r1, r8
- mov r2, r4
- mov r3, r9
- add r0, r7, #0x4c
- bl FUN_020BD2F8
-_020BD514:
- add r4, r4, #0x8
- b _020BD524
-_020BD51C:
- ldr r0, [r4], #0x4
- str r0, [r7, #0x4c]
-_020BD524:
- ands r0, r5, #0x10
- bne _020BD568
- cmp r6, #0x0
- beq _020BD54C
- mov r1, r8
- mov r2, r4
- mov r3, r9
- add r0, r7, #0x50
- bl FUN_020BD188
- b _020BD560
-_020BD54C:
- mov r1, r8
- mov r2, r4
- mov r3, r9
- add r0, r7, #0x50
- bl FUN_020BD2F8
-_020BD560:
- add r4, r4, #0x8
- b _020BD570
-_020BD568:
- ldr r0, [r4], #0x4
- str r0, [r7, #0x50]
-_020BD570:
- ands r0, r5, #0x20
- bne _020BD5B4
- cmp r6, #0x0
- beq _020BD598
- mov r1, r8
- mov r2, r4
- mov r3, r9
- add r0, r7, #0x54
- bl FUN_020BD188
- b _020BD5AC
-_020BD598:
- mov r1, r8
- mov r2, r4
- mov r3, r9
- add r0, r7, #0x54
- bl FUN_020BD2F8
-_020BD5AC:
- add r4, r4, #0x8
- b _020BD5DC
-_020BD5B4:
- ldr r0, [r4], #0x4
- str r0, [r7, #0x54]
- b _020BD5DC
-_020BD5C0:
- ands r0, r5, #0x2
- ldrne r0, [r7, #0x0]
- orrne r0, r0, #0x4
- strne r0, [r7, #0x0]
- bne _020BD5DC
- mov r0, r7
- bl FUN_020BDA08
-_020BD5DC:
- ands r0, r5, #0xc0
- bne _020BD6A8
- ands r0, r5, #0x100
- bne _020BD628
- cmp r6, #0x0
- beq _020BD60C
- mov r1, r8
- mov r2, r4
- mov r3, r9
- add r0, r7, #0x28
- bl FUN_020BC698
- b _020BD620
-_020BD60C:
- mov r1, r8
- mov r2, r4
- mov r3, r9
- add r0, r7, #0x28
- bl FUN_020BC9D4
-_020BD620:
- add r4, r4, #0x8
- b _020BD6C4
-_020BD628:
- ldr r1, [r9, #0xc]
- ldr r2, [r9, #0x10]
- ldr r3, [r4, #0x0]
- add r0, r7, #0x28
- add r1, r9, r1
- add r2, r9, r2
- bl FUN_020BC500
- cmp r0, #0x0
- beq _020BD6A0
- ldr r12, [r7, #0x3c]
- ldr r0, [r7, #0x2c]
- ldr r3, [r7, #0x28]
- ldr r11, [r7, #0x38]
- ldr r1, [r7, #0x30]
- ldr r2, [r7, #0x34]
- mul r10, r0, r12
- mul lr, r1, r11
- sub r10, r10, lr
- mov r10, r10, asr #0xc
- mul lr, r1, r2
- mul r1, r3, r12
- sub r1, lr, r1
- mul r11, r3, r11
- mul r2, r0, r2
- sub r0, r11, r2
- str r10, [r7, #0x40]
- mov r1, r1, asr #0xc
- str r1, [r7, #0x44]
- mov r0, r0, asr #0xc
- str r0, [r7, #0x48]
-_020BD6A0:
- add r4, r4, #0x4
- b _020BD6C4
-_020BD6A8:
- ands r0, r5, #0x40
- ldrne r0, [r7, #0x0]
- orrne r0, r0, #0x2
- strne r0, [r7, #0x0]
- bne _020BD6C4
- mov r0, r7
- bl FUN_020BD850
-_020BD6C4:
- ands r0, r5, #0x600
- bne _020BD7F0
- ands r0, r5, #0x800
- bne _020BD71C
- cmp r6, #0x0
- beq _020BD6F4
- add r0, sp, #0x0
- mov r1, r8
- mov r2, r4
- mov r3, r9
- bl FUN_020BCDC4
- b _020BD708
-_020BD6F4:
- add r0, sp, #0x0
- mov r1, r8
- mov r2, r4
- mov r3, r9
- bl FUN_020BCF70
-_020BD708:
- ldr r1, [sp, #0x0]
- ldr r0, [sp, #0x4]
- str r1, [sp, #0x18]
- str r0, [sp, #0x24]
- b _020BD72C
-_020BD71C:
- ldr r0, [r4, #0x0]
- str r0, [sp, #0x18]
- ldr r0, [r4, #0x4]
- str r0, [sp, #0x24]
-_020BD72C:
- ands r0, r5, #0x1000
- bne _020BD77C
- cmp r6, #0x0
- beq _020BD754
- add r0, sp, #0x8
- mov r1, r8
- mov r3, r9
- add r2, r4, #0x8
- bl FUN_020BCDC4
- b _020BD768
-_020BD754:
- add r0, sp, #0x8
- mov r1, r8
- mov r3, r9
- add r2, r4, #0x8
- bl FUN_020BCF70
-_020BD768:
- ldr r1, [sp, #0x8]
- ldr r0, [sp, #0xc]
- str r1, [sp, #0x1c]
- str r0, [sp, #0x28]
- b _020BD78C
-_020BD77C:
- ldr r0, [r4, #0x8]
- str r0, [sp, #0x1c]
- ldr r0, [r4, #0xc]
- str r0, [sp, #0x28]
-_020BD78C:
- ands r0, r5, #0x2000
- bne _020BD7DC
- cmp r6, #0x0
- beq _020BD7B4
- add r0, sp, #0x10
- mov r1, r8
- mov r3, r9
- add r2, r4, #0x10
- bl FUN_020BCDC4
- b _020BD7C8
-_020BD7B4:
- add r0, sp, #0x10
- mov r1, r8
- mov r3, r9
- add r2, r4, #0x10
- bl FUN_020BCF70
-_020BD7C8:
- ldr r1, [sp, #0x10]
- ldr r0, [sp, #0x14]
- str r1, [sp, #0x20]
- str r0, [sp, #0x2c]
- b _020BD814
-_020BD7DC:
- ldr r0, [r4, #0x10]
- str r0, [sp, #0x20]
- ldr r0, [r4, #0x14]
- str r0, [sp, #0x2c]
- b _020BD814
-_020BD7F0:
- ands r0, r5, #0x200
- ldrne r0, [r7, #0x0]
- orrne r0, r0, #0x1
- strne r0, [r7, #0x0]
- bne _020BD814
- mov r0, r7
- bl FUN_020BD9A4
- add sp, sp, #0x34
- ldmia sp!, {r4-r11,pc}
-_020BD814:
- ldr r0, [r7, #0x0]
- add r1, sp, #0x18
- ands r0, r0, #0x1
- ldr r0, _020BD84C ; =UNK_021CEF7C
- movne r3, #0x4
- ldr r4, [r0, #0x0]
- moveq r3, #0x0
- ldr r2, [r4, #0x0]
- ldr r4, [r4, #0xe8]
- mov r0, r7
- blx r4
- add sp, sp, #0x34
- ldmia sp!, {r4-r11,pc}
- .balign 4
-_020BD848: .word 0x00000FFF
-_020BD84C: .word UNK_021CEF7C
-
- arm_func_start FUN_020BD850
-FUN_020BD850: ; 0x020BD850
- stmdb sp!, {r4-r8,lr}
- ldr r1, _020BD990 ; =UNK_021CEF7C
- mov r8, r0
- ldr r0, [r1, #0x0]
- ldr r3, [r0, #0xd4]
- ldr r0, [r0, #0x0]
- ldrh r2, [r3, #0x6]
- ldrb r0, [r0, #0x1]
- ldrh r1, [r3, r2]
- add r2, r3, r2
- mla r0, r1, r0, r2
- ldr r0, [r0, #0x4]
- ldrh r2, [r3, r0]
- add r4, r3, r0
- add r1, r4, #0x4
- ands r0, r2, #0x1
- addeq r1, r1, #0xc
- ands r0, r2, #0x2
- bne _020BD980
- ands r0, r2, #0x8
- beq _020BD934
- and r2, r2, #0xf0
- add r0, r8, #0x28
- mov r5, r2, asr #0x4
- ldrsh r7, [r1, #0x0]
- ldrsh r6, [r1, #0x2]
- bl MI_Zero36B
- ldrh r0, [r4, #0x0]
- add r1, r8, r5, lsl #0x2
- ands r0, r0, #0x100
- movne r0, #0x1000
- rsbne r2, r0, #0x0
- moveq r2, #0x1000
- ldr r0, _020BD994 ; =UNK_020FFA14
- str r2, [r1, #0x28]
- ldrb r1, [r0, r5, lsl #0x2]
- ldr r0, _020BD998 ; =UNK_020FFA15
- add r1, r8, r1, lsl #0x2
- str r7, [r1, #0x28]
- ldrb r0, [r0, r5, lsl #0x2]
- add r0, r8, r0, lsl #0x2
- str r6, [r0, #0x28]
- ldrh r0, [r4, #0x0]
- ands r0, r0, #0x200
- ldr r0, _020BD99C ; =UNK_020FFA16
- rsbne r6, r6, #0x0
- ldrb r0, [r0, r5, lsl #0x2]
- add r0, r8, r0, lsl #0x2
- str r6, [r0, #0x28]
- ldrh r0, [r4, #0x0]
- ands r0, r0, #0x400
- ldr r0, _020BD9A0 ; =UNK_020FFA17
- rsbne r7, r7, #0x0
- ldrb r0, [r0, r5, lsl #0x2]
- add r0, r8, r0, lsl #0x2
- str r7, [r0, #0x28]
- ldmia sp!, {r4-r8,pc}
-_020BD934:
- ldrsh r0, [r4, #0x2]
- str r0, [r8, #0x28]
- ldrsh r0, [r1, #0x0]
- str r0, [r8, #0x2c]
- ldrsh r0, [r1, #0x2]
- str r0, [r8, #0x30]
- ldrsh r0, [r1, #0x4]
- str r0, [r8, #0x34]
- ldrsh r0, [r1, #0x6]
- str r0, [r8, #0x38]
- ldrsh r0, [r1, #0x8]
- str r0, [r8, #0x3c]
- ldrsh r0, [r1, #0xa]
- str r0, [r8, #0x40]
- ldrsh r0, [r1, #0xc]
- str r0, [r8, #0x44]
- ldrsh r0, [r1, #0xe]
- str r0, [r8, #0x48]
- ldmia sp!, {r4-r8,pc}
-_020BD980:
- ldr r0, [r8, #0x0]
- orr r0, r0, #0x2
- str r0, [r8, #0x0]
- ldmia sp!, {r4-r8,pc}
- .balign 4
-_020BD990: .word UNK_021CEF7C
-_020BD994: .word UNK_020FFA14
-_020BD998: .word UNK_020FFA15
-_020BD99C: .word UNK_020FFA16
-_020BD9A0: .word UNK_020FFA17
-
- arm_func_start FUN_020BD9A4
-FUN_020BD9A4: ; 0x020BD9A4
- stmdb sp!, {r4,lr}
- ldr r1, _020BDA04 ; =UNK_021CEF7C
- ldr r12, [r1, #0x0]
- ldr r4, [r12, #0xd4]
- ldr r2, [r12, #0x0]
- ldrh lr, [r4, #0x6]
- ldrb r1, [r2, #0x1]
- ldrh r3, [r4, lr]
- add lr, r4, lr
- mla r1, r3, r1, lr
- ldr r1, [r1, #0x4]
- ldrh r3, [r4, r1]
- add r1, r4, r1
- add r1, r1, #0x4
- ands lr, r3, #0x1
- addeq r1, r1, #0xc
- ands lr, r3, #0x2
- bne _020BD9F8
- ands lr, r3, #0x8
- addne r1, r1, #0x4
- addeq r1, r1, #0x10
-_020BD9F8:
- ldr r12, [r12, #0xe8]
- blx r12
- ldmia sp!, {r4,pc}
- .balign 4
-_020BDA04: .word UNK_021CEF7C
-
- arm_func_start FUN_020BDA08
-FUN_020BDA08: ; 0x020BDA08
- ldr r1, _020BDA6C ; =UNK_021CEF7C
- ldr r1, [r1, #0x0]
- ldr r12, [r1, #0xd4]
- ldr r1, [r1, #0x0]
- ldrh r3, [r12, #0x6]
- ldrb r1, [r1, #0x1]
- ldrh r2, [r12, r3]
- add r3, r12, r3
- mla r1, r2, r1, r3
- ldr r2, [r1, #0x4]
- ldrh r1, [r12, r2]
- add r2, r12, r2
- ands r1, r1, #0x1
- ldrne r1, [r0, #0x0]
- orrne r1, r1, #0x4
- strne r1, [r0, #0x0]
- bxne lr
- ldr r1, [r2, #0x4]
- add r2, r2, #0x4
- str r1, [r0, #0x4c]
- ldr r1, [r2, #0x4]
- str r1, [r0, #0x50]
- ldr r1, [r2, #0x8]
- str r1, [r0, #0x54]
- bx lr
- .balign 4
-_020BDA6C: .word UNK_021CEF7C
-
- arm_func_start FUN_020BDA70
-FUN_020BDA70: ; 0x020BDA70
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r3, r0
- ldr r0, [r1, #0x8]
- ldr r12, [r1, #0x0]
- ldrh r1, [r0, #0x4]
- mov r1, r1, lsl #0xc
- cmp r12, r1
- subge r12, r1, #0x1
- bge _020BDAA0
- cmp r12, #0x0
- movlt r12, #0x0
-_020BDAA0:
- mov r1, r2
- mov r2, r12
- bl FUN_020BD470
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020BDAB4
-FUN_020BDAB4: ; 0x020BDAB4
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- mov r4, r1
- ldr r0, _020BDB3C ; =UNK_0210659C
- str r4, [r5, #0x8]
- ldr r0, [r0, #0x0]
- add r1, r5, #0x1a
- str r0, [r5, #0xc]
- ldrb r2, [r2, #0x17]
- mov r0, #0x0
- strb r2, [r5, #0x19]
- ldrb r2, [r5, #0x19]
- mov r2, r2, lsl #0x1
- bl MIi_CpuClear16
- ldrh r0, [r4, #0x6]
- add r2, r4, #0x14
- mov r3, #0x0
- cmp r0, #0x0
- addls sp, sp, #0x4
- ldmlsia sp!, {r4-r5,pc}
-_020BDB08:
- mov r0, r3, lsl #0x1
- ldrh r1, [r2, r0]
- add r0, r5, r3, lsl #0x1
- add r3, r3, #0x1
- ldr r1, [r4, r1]
- mov r1, r1, lsr #0x18
- orr r1, r1, #0x100
- strh r1, [r0, #0x1a]
- ldrh r0, [r4, #0x6]
- cmp r3, r0
- blo _020BDB08
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020BDB3C: .word UNK_0210659C
-
- arm_func_start FUN_020BDB40
-FUN_020BDB40: ; 0x020BDB40
- stmdb sp!, {r4-r8,lr}
- ldr r7, [r1, #0x8]
- mov r2, r2, lsl #0x10
- ldrh r4, [r7, #0xe]
- add r5, r7, #0x8
- ldr r6, [r1, #0x0]
- ldrh r3, [r5, r4]
- mov r1, r2, lsr #0x10
- add r2, r5, r4
- mul r4, r3, r1
- add r3, r2, #0x4
- mov r6, r6, asr #0xc
- mov r8, r0
- ldr r1, [r3, r4]
- mov r0, r7
- mov r2, r6
- add r5, r3, r4
- bl FUN_020BDDAC
- mov r4, r0
- ldr r1, [r5, #0x4]
- mov r0, r7
- mov r2, r6
- bl FUN_020BDDAC
- ldr r1, [r8, #0x4]
- mov r2, r6
- and r1, r1, #0x8000
- orr r1, r1, r4
- orr r0, r1, r0, lsl #0x10
- str r0, [r8, #0x4]
- mov r0, r7
- ldr r1, [r5, #0xc]
- bl FUN_020BDDAC
- mov r4, r0
- mov r0, r7
- ldr r1, [r5, #0x8]
- mov r2, r6
- bl FUN_020BDDAC
- mov r2, r6
- ldr r1, [r8, #0x8]
- and r1, r1, #0x8000
- orr r0, r1, r0
- orr r0, r0, r4, lsl #0x10
- str r0, [r8, #0x8]
- mov r0, r7
- ldr r1, [r5, #0x10]
- bl FUN_020BDCB8
- ldr r1, [r8, #0xc]
- bic r1, r1, #0x1f0000
- orr r0, r1, r0, lsl #0x10
- str r0, [r8, #0xc]
- ldmia sp!, {r4-r8,pc}
-
- arm_func_start FUN_020BDC0C
-FUN_020BDC0C: ; 0x020BDC0C
- stmdb sp!, {r4-r9,lr}
- sub sp, sp, #0x4
- ldr r3, _020BDCB4 ; =UNK_021065A8
- ldr r4, [r2, #0x8]
- ldr r3, [r3, #0x0]
- mov r9, r0
- str r3, [r9, #0xc]
- ldrb r0, [r2, #0x18]
- mov r8, r1
- add r4, r2, r4
- strb r0, [r9, #0x19]
- ldrb r2, [r9, #0x19]
- add r1, r9, #0x1a
- mov r0, #0x0
- mov r2, r2, lsl #0x1
- bl MIi_CpuClear16
- ldrb r0, [r8, #0x9]
- mov r7, #0x0
- cmp r0, #0x0
- addls sp, sp, #0x4
- ldmlsia sp!, {r4-r9,pc}
- mov r6, r7
- add r5, r8, #0x8
- add r4, r4, #0x4
-_020BDC6C:
- ldrh r1, [r8, #0xe]
- mov r0, r4
- add r2, r5, r1
- ldrh r1, [r2, #0x2]
- add r1, r2, r1
- add r1, r1, r6
- bl FUN_020BC14C
- cmp r0, #0x0
- orrge r1, r7, #0x100
- addge r0, r9, r0, lsl #0x1
- strgeh r1, [r0, #0x1a]
- ldrb r0, [r8, #0x9]
- add r7, r7, #0x1
- add r6, r6, #0x10
- cmp r7, r0
- blo _020BDC6C
- add sp, sp, #0x4
- ldmia sp!, {r4-r9,pc}
- .balign 4
-_020BDCB4: .word UNK_021065A8
-
- arm_func_start FUN_020BDCB8
-FUN_020BDCB8: ; 0x020BDCB8
- ands r3, r1, #0x20000000
- movne r0, r1, lsl #0x10
- movne r0, r0, lsr #0x10
- bxne lr
- ldr r3, _020BDDA4 ; =0x0000FFFF
- ands r12, r1, #0xc0000000
- and r3, r1, r3
- add r0, r0, r3
- ldreqb r0, [r0, r2]
- bxeq lr
- ldr r3, _020BDDA8 ; =0x1FFF0000
- ands r12, r1, #0x40000000
- and r1, r1, r3
- mov r3, r1, lsr #0x10
- beq _020BDD30
- ands r1, r2, #0x1
- beq _020BDD28
- cmp r2, r3
- addhi r0, r0, r3, lsr #0x1
- ldrhib r0, [r0, #0x1]
- bxhi lr
- add r1, r0, r2, lsr #0x1
- ldrb r2, [r0, r2, lsr #0x1]
- ldrb r0, [r1, #0x1]
- add r0, r2, r0
- mov r0, r0, lsl #0xf
- mov r0, r0, lsr #0x10
- bx lr
-_020BDD28:
- ldrb r0, [r0, r2, lsr #0x1]
- bx lr
-_020BDD30:
- ands r1, r2, #0x3
- beq _020BDD9C
- cmp r2, r3
- addhi r0, r0, r3, lsr #0x2
- ldrhib r0, [r1, r0]
- bxhi lr
- ands r1, r2, #0x1
- beq _020BDD80
- ands r1, r2, #0x2
- movne r1, r2, lsr #0x2
- addne r2, r1, #0x1
- moveq r2, r2, lsr #0x2
- addeq r1, r2, #0x1
- ldrb r2, [r0, r2]
- ldrb r1, [r0, r1]
- mov r0, #0x3
- mla r0, r2, r0, r1
- mov r0, r0, lsl #0xe
- mov r0, r0, lsr #0x10
- bx lr
-_020BDD80:
- add r1, r0, r2, lsr #0x2
- ldrb r2, [r0, r2, lsr #0x2]
- ldrb r0, [r1, #0x1]
- add r0, r2, r0
- mov r0, r0, lsl #0xf
- mov r0, r0, lsr #0x10
- bx lr
-_020BDD9C:
- ldrb r0, [r0, r2, lsr #0x2]
- bx lr
- .balign 4
-_020BDDA4: .word 0x0000FFFF
-_020BDDA8: .word 0x1FFF0000
-
- arm_func_start FUN_020BDDAC
-FUN_020BDDAC: ; 0x020BDDAC
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ands r3, r1, #0x20000000
- movne r0, r1, lsl #0x10
- addne sp, sp, #0x4
- movne r0, r0, lsr #0x10
- ldmneia sp!, {pc}
- ldr r3, _020BDF2C ; =0x0000FFFF
- ands r12, r1, #0xc0000000
- and r3, r1, r3
- add r0, r0, r3
- moveq r1, r2, lsl #0x1
- addeq sp, sp, #0x4
- ldreqh r0, [r0, r1]
- ldmeqia sp!, {pc}
- ldr r3, _020BDF30 ; =0x1FFF0000
- ands r12, r1, #0x40000000
- and r1, r1, r3
- mov r3, r1, lsr #0x10
- beq _020BDE34
- ands r1, r2, #0x1
- beq _020BDE24
- cmp r2, r3
- bichi r1, r3, #0x1
- addhi r0, r0, r1
- addhi sp, sp, #0x4
- ldrhih r0, [r0, #0x2]
- ldmhiia sp!, {pc}
- mov r1, r2, lsr #0x1
- b _020BDEE0
-_020BDE24:
- bic r1, r2, #0x1
- add sp, sp, #0x4
- ldrh r0, [r0, r1]
- ldmia sp!, {pc}
-_020BDE34:
- ands r1, r2, #0x3
- beq _020BDECC
- cmp r2, r3
- movhi r2, r3, lsr #0x2
- movhi r1, r1, lsl #0x1
- addhi r0, r0, r2, lsl #0x1
- addhi sp, sp, #0x4
- ldrhih r0, [r1, r0]
- ldmhiia sp!, {pc}
- ands r1, r2, #0x1
- beq _020BDEC4
- ands r1, r2, #0x2
- movne r1, r2, lsr #0x2
- addne r2, r1, #0x1
- moveq r2, r2, lsr #0x2
- addeq r1, r2, #0x1
- mov r2, r2, lsl #0x1
- mov r1, r1, lsl #0x1
- ldrh r12, [r0, r2]
- ldrh lr, [r0, r1]
- ldr r0, _020BDF34 ; =0x00007C1F
- and r3, r12, #0x3e0
- and r2, lr, #0x3e0
- mov r1, #0x3
- mla r2, r3, r1, r2
- and r12, r12, r0
- and r3, lr, r0
- mla r1, r12, r1, r3
- mov r2, r2, lsr #0x2
- and r1, r0, r1, lsr #0x2
- and r0, r2, #0x3e0
- orr r0, r1, r0
- mov r0, r0, lsl #0x10
- add sp, sp, #0x4
- mov r0, r0, lsr #0x10
- ldmia sp!, {pc}
-_020BDEC4:
- mov r1, r2, lsr #0x2
- b _020BDEE0
-_020BDECC:
- mov r1, r2, lsr #0x2
- mov r1, r1, lsl #0x1
- add sp, sp, #0x4
- ldrh r0, [r0, r1]
- ldmia sp!, {pc}
-_020BDEE0:
- mov r2, r1, lsl #0x1
- add r1, r0, r1, lsl #0x1
- ldrh r3, [r0, r2]
- ldrh r12, [r1, #0x2]
- ldr r0, _020BDF34 ; =0x00007C1F
- and r2, r3, #0x3e0
- and r1, r12, #0x3e0
- add r1, r2, r1
- mov r1, r1, lsr #0x1
- and r3, r3, r0
- and r2, r12, r0
- add r2, r3, r2
- and r2, r0, r2, lsr #0x1
- and r0, r1, #0x3e0
- orr r0, r2, r0
- mov r0, r0, lsl #0x10
- mov r0, r0, lsr #0x10
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020BDF2C: .word 0x0000FFFF
-_020BDF30: .word 0x1FFF0000
-_020BDF34: .word 0x00007C1F
-
- arm_func_start FUN_020BDF38
-FUN_020BDF38: ; 0x020BDF38
- stmdb sp!, {r4,lr}
- ldr r12, [r1, #0x0]
- mov r4, r0
- mov r2, r2, lsl #0x10
- ldr r0, [r1, #0x8]
- mov r1, r2, lsr #0x10
- mov r3, r4
- mov r2, r12, asr #0xc
- bl FUN_020BE030
- ldr r0, [r4, #0x10]
- bic r0, r0, #0xc0000000
- str r0, [r4, #0x10]
- ldr r0, [r4, #0x10]
- orr r0, r0, #0x40000000
- str r0, [r4, #0x10]
- ldr r0, [r4, #0x0]
- orr r0, r0, #0x8
- str r0, [r4, #0x0]
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020BDF84
-FUN_020BDF84: ; 0x020BDF84
- stmdb sp!, {r4-r9,lr}
- sub sp, sp, #0x4
- ldr r3, _020BE02C ; =UNK_021065A0
- ldr r4, [r2, #0x8]
- ldr r3, [r3, #0x0]
- mov r9, r0
- str r3, [r9, #0xc]
- ldrb r0, [r2, #0x18]
- mov r8, r1
- add r4, r2, r4
- strb r0, [r9, #0x19]
- ldrb r2, [r9, #0x19]
- add r1, r9, #0x1a
- mov r0, #0x0
- mov r2, r2, lsl #0x1
- bl MIi_CpuClear16
- ldrb r0, [r8, #0x9]
- mov r7, #0x0
- cmp r0, #0x0
- addls sp, sp, #0x4
- ldmlsia sp!, {r4-r9,pc}
- mov r6, r7
- add r5, r8, #0x8
- add r4, r4, #0x4
-_020BDFE4:
- ldrh r1, [r8, #0xe]
- mov r0, r4
- add r2, r5, r1
- ldrh r1, [r2, #0x2]
- add r1, r2, r1
- add r1, r1, r6
- bl FUN_020BC14C
- cmp r0, #0x0
- orrge r1, r7, #0x100
- addge r0, r9, r0, lsl #0x1
- strgeh r1, [r0, #0x1a]
- ldrb r0, [r8, #0x9]
- add r7, r7, #0x1
- add r6, r6, #0x10
- cmp r7, r0
- blo _020BDFE4
- add sp, sp, #0x4
- ldmia sp!, {r4-r9,pc}
- .balign 4
-_020BE02C: .word UNK_021065A0
-
- arm_func_start FUN_020BE030
-FUN_020BE030: ; 0x020BE030
- stmdb sp!, {r4-r9,lr}
- sub sp, sp, #0x4
- mov r8, r0
- ldrh r4, [r8, #0xe]
- add r5, r8, #0x8
- mov r6, r3
- ldrh r3, [r5, r4]
- add r4, r5, r4
- add r4, r4, #0x4
- mla r5, r3, r1, r4
- mov r7, r2
- ldr r1, [r5, #0x18]
- ldr r2, [r5, #0x1c]
- mov r3, r7
- ldr r4, [r6, #0x0]
- bl FUN_020BE238
- mov r9, r0
- ldr r1, [r5, #0x20]
- mov r0, r8
- ldr r2, [r5, #0x24]
- mov r3, r7
- bl FUN_020BE238
- cmp r9, #0x0
- bne _020BE09C
- cmp r0, #0x0
- orreq r4, r4, #0x4
- beq _020BE0A8
-_020BE09C:
- str r9, [r6, #0x24]
- str r0, [r6, #0x28]
- bic r4, r4, #0x4
-_020BE0A8:
- ldr r1, [r5, #0x10]
- ldr r2, [r5, #0x14]
- mov r0, r8
- mov r3, r7
- bl FUN_020BE12C
- cmp r0, #0x10000000
- strneh r0, [r6, #0x20]
- movne r0, r0, lsr #0x10
- strneh r0, [r6, #0x22]
- orreq r4, r4, #0x2
- ldr r1, [r5, #0x0]
- ldr r2, [r5, #0x4]
- mov r0, r8
- mov r3, r7
- bicne r4, r4, #0x2
- bl FUN_020BE238
- mov r9, r0
- ldr r1, [r5, #0x8]
- ldr r2, [r5, #0xc]
- mov r0, r8
- mov r3, r7
- bl FUN_020BE238
- cmp r9, #0x1000
- bne _020BE114
- cmp r0, #0x1000
- orreq r4, r4, #0x1
- beq _020BE120
-_020BE114:
- str r9, [r6, #0x18]
- str r0, [r6, #0x1c]
- bic r4, r4, #0x1
-_020BE120:
- str r4, [r6, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {r4-r9,pc}
-
- arm_func_start FUN_020BE12C
-FUN_020BE12C: ; 0x020BE12C
- ands r12, r1, #0x20000000
- movne r0, r2
- bxne lr
- add r0, r0, r2
- ands r2, r1, #0xc0000000
- beq _020BE1F8
- ldr r2, _020BE234 ; =0x0000FFFF
- ands r12, r1, #0x40000000
- and r2, r1, r2
- beq _020BE17C
- ands r1, r3, #0x1
- beq _020BE174
- cmp r3, r2
- movhi r1, r2, lsr #0x1
- addhi r3, r1, #0x1
- bhi _020BE1F8
- mov r2, r3, lsr #0x1
- b _020BE200
-_020BE174:
- mov r3, r3, lsr #0x1
- b _020BE1F8
-_020BE17C:
- ands r1, r3, #0x3
- beq _020BE1F4
- cmp r3, r2
- addhi r3, r1, r2, lsr #0x2
- bhi _020BE1F8
- ands r1, r3, #0x1
- beq _020BE1EC
- ands r1, r3, #0x2
- movne r1, r3, lsr #0x2
- addne r2, r1, #0x1
- moveq r2, r3, lsr #0x2
- addeq r1, r2, #0x1
- mov r12, r2, lsl #0x2
- add r3, r0, r2, lsl #0x2
- mov r2, r1, lsl #0x2
- add r1, r0, r1, lsl #0x2
- ldrsh r12, [r0, r12]
- ldrsh r2, [r0, r2]
- mov r0, #0x3
- ldrsh r3, [r3, #0x2]
- ldrsh r1, [r1, #0x2]
- mla r2, r12, r0, r2
- mla r1, r3, r0, r1
- ldr r0, _020BE234 ; =0x0000FFFF
- mov r1, r1, asr #0x2
- and r0, r0, r2, asr #0x2
- orr r0, r0, r1, lsl #0x10
- bx lr
-_020BE1EC:
- mov r2, r3, lsr #0x2
- b _020BE200
-_020BE1F4:
- mov r3, r3, lsr #0x2
-_020BE1F8:
- ldr r0, [r0, r3, lsl #0x2]
- bx lr
-_020BE200:
- add r1, r0, r2, lsl #0x2
- mov r2, r2, lsl #0x2
- ldrsh r12, [r0, r2]
- ldrsh r3, [r1, #0x4]
- ldrsh r2, [r1, #0x2]
- ldrsh r1, [r1, #0x6]
- ldr r0, _020BE234 ; =0x0000FFFF
- add r3, r12, r3
- add r1, r2, r1
- and r2, r0, r3, asr #0x1
- mov r0, r1, asr #0x1
- orr r0, r2, r0, lsl #0x10
- bx lr
- .balign 4
-_020BE234: .word 0x0000FFFF
-
- arm_func_start FUN_020BE238
-FUN_020BE238:
- ands r12, r1, #0x20000000
- movne r0, r2
- bxne lr
- add r0, r0, r2
- ands r2, r1, #0xc0000000
- beq _020BE2F0
- ldr r2, _020BE330 ; =0x0000FFFF
- ands r12, r1, #0x40000000
- and r12, r1, r2
- beq _020BE288
- ands r2, r3, #0x1
- beq _020BE280
- cmp r3, r12
- movhi r2, r12, lsr #0x1
- addhi r3, r2, #0x1
- bhi _020BE2F0
- mov r3, r3, lsr #0x1
- b _020BE304
-_020BE280:
- mov r3, r3, lsr #0x1
- b _020BE2F0
-_020BE288:
- ands r2, r3, #0x3
- beq _020BE2EC
- cmp r3, r12
- addhi r3, r2, r12, lsr #0x2
- bhi _020BE2F0
- ands r2, r3, #0x1
- beq _020BE2E4
- ands r2, r3, #0x2
- movne r3, r3, lsr #0x2
- addne r2, r3, #0x1
- moveq r2, r3, lsr #0x2
- addeq r3, r2, #0x1
- ands r1, r1, #0x10000000
- movne r2, r2, lsl #0x1
- movne r1, r3, lsl #0x1
- ldrnesh r2, [r0, r2]
- ldrnesh r1, [r0, r1]
- ldreq r2, [r0, r2, lsl #0x2]
- ldreq r1, [r0, r3, lsl #0x2]
- mov r0, #0x3
- mla r0, r2, r0, r1
- mov r0, r0, asr #0x2
- bx lr
-_020BE2E4:
- mov r3, r3, lsr #0x2
- b _020BE304
-_020BE2EC:
- mov r3, r3, lsr #0x2
-_020BE2F0:
- ands r1, r1, #0x10000000
- movne r1, r3, lsl #0x1
- ldrnesh r0, [r0, r1]
- ldreq r0, [r0, r3, lsl #0x2]
- bx lr
-_020BE304:
- ands r1, r1, #0x10000000
- movne r2, r3, lsl #0x1
- addne r1, r0, r3, lsl #0x1
- ldrnesh r2, [r0, r2]
- ldrnesh r0, [r1, #0x2]
- addeq r1, r0, r3, lsl #0x2
- ldreq r2, [r0, r3, lsl #0x2]
- ldreq r0, [r1, #0x4]
- add r0, r2, r0
- mov r0, r0, asr #0x1
- bx lr
- .balign 4
-_020BE330: .word 0x0000FFFF
-
- arm_func_start FUN_020BE334
-FUN_020BE334: ; 0x020BE334
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r6, r1
- ldr r3, [r6, #0x0]
- ldr r5, [r6, #0x8]
- mov r1, r2, lsl #0x10
- mov r2, r3, lsl #0x4
- mov r7, r0
- mov r0, r5
- mov r1, r1, lsr #0x10
- mov r2, r2, lsr #0x10
- bl FUN_020BC42C
- mov r4, r0
- ldrb r1, [r4, #0x2]
- mov r0, r5
- bl FUN_020BC4B8
- mov r1, r0
- ldr r0, [r6, #0x14]
- mov r2, r7
- bl FUN_020BE408
- ldrb r1, [r4, #0x3]
- cmp r1, #0xff
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r7,pc}
- mov r0, r5
- bl FUN_020BC4A8
- mov r1, r0
- ldr r0, [r6, #0x14]
- mov r2, r7
- bl FUN_020BE3B4
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020BE3B4
-FUN_020BE3B4: ; 0x020BE3B4
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- ldrh r0, [r5, #0x34]
- mov r4, r2
- add r0, r5, r0
- bl FUN_020BC2A0
- ldr r1, [r5, #0x2c]
- ldrh r2, [r0, #0x2]
- mov r1, r1, lsl #0x10
- mov r3, r1, lsr #0x10
- ands r1, r2, #0x1
- ldrh r0, [r0, #0x0]
- moveq r1, r3, lsl #0xf
- moveq r3, r1, lsr #0x10
- moveq r0, r0, lsl #0xf
- moveq r0, r0, lsr #0x10
- add r0, r0, r3
- str r0, [r4, #0x14]
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020BE408
-FUN_020BE408: ; 0x020BE408
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- add r0, r5, #0x3c
- mov r4, r2
- bl FUN_020BC2A0
- ldr r1, [r0, #0x0]
- ldr r3, [r4, #0x10]
- and r1, r1, #0x1c000000
- cmp r1, #0x14000000
- ldrne r2, [r5, #0x8]
- ldrne r1, _020BE4E0 ; =0x0000FFFF
- andne r5, r2, r1
- ldreq r2, [r5, #0x18]
- ldreq r1, _020BE4E0 ; =0x0000FFFF
- andeq r5, r2, r1
- ldr r1, _020BE4E4 ; =0xC00F0000
- ldr r2, _020BE4E8 ; =0x000007FF
- and r1, r3, r1
- str r1, [r4, #0x10]
- ldr r1, [r0, #0x0]
- ldr r3, [r4, #0x10]
- add r1, r1, r5
- orr r1, r3, r1
- str r1, [r4, #0x10]
- ldr r3, [r0, #0x4]
- ldr r1, _020BE4EC ; =0x003FF800
- and r3, r3, r2
- strh r3, [r4, #0x2c]
- ldr r3, [r0, #0x4]
- and r1, r3, r1
- mov r1, r1, lsr #0xb
- strh r1, [r4, #0x2e]
- ldr r3, [r0, #0x4]
- ldrh r1, [r4, #0x2c]
- and r0, r3, r2
- and r5, r2, r3, lsr #0xb
- cmp r0, r1
- moveq r0, #0x1000
- beq _020BE4B4
- mov r0, r0, lsl #0xc
- mov r1, r1, lsl #0xc
- bl FX_Div
-_020BE4B4:
- str r0, [r4, #0x30]
- ldrh r1, [r4, #0x2e]
- cmp r5, r1
- moveq r0, #0x1000
- beq _020BE4D4
- mov r0, r5, lsl #0xc
- mov r1, r1, lsl #0xc
- bl FX_Div
-_020BE4D4:
- str r0, [r4, #0x34]
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020BE4E0: .word 0x0000FFFF
-_020BE4E4: .word 0xC00F0000
-_020BE4E8: .word 0x000007FF
-_020BE4EC: .word 0x003FF800
-
- arm_func_start FUN_020BE4F0
-FUN_020BE4F0: ; 0x020BE4F0
- stmdb sp!, {r4-r9,lr}
- sub sp, sp, #0x4
- ldr r3, _020BE59C ; =UNK_021065A4
- ldr r4, [r2, #0x8]
- ldr r3, [r3, #0x0]
- mov r9, r0
- str r3, [r9, #0xc]
- ldrb r0, [r2, #0x18]
- mov r8, r1
- add r4, r2, r4
- strb r0, [r9, #0x19]
- str r8, [r9, #0x8]
- ldrb r2, [r9, #0x19]
- add r1, r9, #0x1a
- mov r0, #0x0
- mov r2, r2, lsl #0x1
- bl MIi_CpuClear16
- ldrb r0, [r8, #0xd]
- mov r7, #0x0
- cmp r0, #0x0
- addls sp, sp, #0x4
- ldmlsia sp!, {r4-r9,pc}
- mov r6, r7
- add r5, r8, #0xc
- add r4, r4, #0x4
-_020BE554:
- ldrh r1, [r8, #0x12]
- mov r0, r4
- add r2, r5, r1
- ldrh r1, [r2, #0x2]
- add r1, r2, r1
- add r1, r1, r6
- bl FUN_020BC14C
- cmp r0, #0x0
- orrge r1, r7, #0x100
- addge r0, r9, r0, lsl #0x1
- strgeh r1, [r0, #0x1a]
- ldrb r0, [r8, #0xd]
- add r7, r7, #0x1
- add r6, r6, #0x10
- cmp r7, r0
- blo _020BE554
- add sp, sp, #0x4
- ldmia sp!, {r4-r9,pc}
- .balign 4
-_020BE59C: .word UNK_021065A4
-
- arm_func_start FUN_020BE5A0
-FUN_020BE5A0: ; 0x020BE5A0
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr lr, [r1, #0x8]
- ldr r3, [r1, #0x0]
- ldrh r1, [lr, #0x6]
- mov r12, r3, asr #0xc
- mov r3, #0x1
- mla r2, r12, r1, r2
- mov r1, r2, lsr #0x5
- add r1, lr, r1, lsl #0x2
- ldr r1, [r1, #0xc]
- and r2, r2, #0x1f
- and r1, r1, r3, lsl r2
- str r1, [r0, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020BE5E0
-FUN_020BE5E0: ; 0x020BE5E0
- ldr r3, _020BE628 ; =UNK_02106598
- mov r12, #0x0
- ldr r3, [r3, #0x0]
- str r3, [r0, #0xc]
- ldrb r2, [r2, #0x17]
- strb r2, [r0, #0x19]
- str r1, [r0, #0x8]
- ldrb r1, [r0, #0x19]
- cmp r1, #0x0
- bxls lr
-_020BE608:
- orr r2, r12, #0x100
- add r1, r0, r12, lsl #0x1
- strh r2, [r1, #0x1a]
- ldrb r1, [r0, #0x19]
- add r12, r12, #0x1
- cmp r12, r1
- blo _020BE608
- bx lr
- .balign 4
-_020BE628: .word UNK_02106598
-
- arm_func_start FUN_020BE62C
-FUN_020BE62C: ; 0x020BE62C
- ands r2, r3, #0x4
- ldrne r1, [r0, #0x0]
- orrne r1, r1, #0x1
- strne r1, [r0, #0x0]
- bne _020BE658
-
- arm_func_start FUN_020BE640
-FUN_020BE640: ; 0x020BE640
- ldr r2, [r1, #0x0]
- str r2, [r0, #0x4]
- ldr r2, [r1, #0x4]
- str r2, [r0, #0x8]
- ldr r1, [r1, #0x8]
- str r1, [r0, #0xc]
-_020BE658:
- ldr r1, [r0, #0x0]
- orr r1, r1, #0x18
- str r1, [r0, #0x0]
- bx lr
-
- arm_func_start FUN_020BE668
-FUN_020BE668: ; 0x020BE668
- stmdb sp!, {r4,lr}
- mov r4, r0
- ldr r1, [r4, #0x0]
- ands r0, r1, #0x4
- bne _020BE6AC
- ands r0, r1, #0x2
- bne _020BE698
- add r1, r4, #0x28
- mov r0, #0x19
- mov r2, #0xc
- bl FUN_020BB1C0
- b _020BE6C4
-_020BE698:
- add r1, r4, #0x4c
- mov r0, #0x1c
- mov r2, #0x3
- bl FUN_020BB1C0
- b _020BE6C4
-_020BE6AC:
- ands r0, r1, #0x2
- bne _020BE6C4
- add r1, r4, #0x28
- mov r0, #0x1a
- mov r2, #0x9
- bl FUN_020BB1C0
-_020BE6C4:
- ldr r0, [r4, #0x0]
- ands r0, r0, #0x1
- ldmneia sp!, {r4,pc}
- add r1, r4, #0x4
- mov r0, #0x1b
- mov r2, #0x3
- bl FUN_020BB1C0
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020BE6E4
-FUN_020BE6E4: ; 0x020BE6E4
- stmdb sp!, {r4,lr}
- sub sp, sp, #0x50
- mov r4, r0
- ldr r0, [r4, #0x0]
- mov r1, #0x0
- ands r0, r0, #0x8
- ldrne r0, _020BE820 ; =0x00101610
- mov r3, #0x3
- strne r0, [sp, #0x0]
- ldreq r0, _020BE824 ; =0x00101810
- mov r2, #0x2
- streq r0, [sp, #0x0]
- mov r0, #0x1000
- str r0, [sp, #0x44]
- str r3, [sp, #0x4]
- str r2, [sp, #0x48]
- str r1, [sp, #0x40]
- str r1, [sp, #0x34]
- str r1, [sp, #0x30]
- str r1, [sp, #0x2c]
- str r1, [sp, #0x28]
- str r1, [sp, #0x24]
- str r1, [sp, #0x20]
- str r1, [sp, #0x14]
- str r1, [sp, #0x10]
- ldr r1, [r4, #0x0]
- ldr r0, _020BE828 ; =UNK_021067B0
- and r1, r1, #0x7
- ldr r2, [r0, r1, lsl #0x2]
- add r0, sp, #0x8
- mov r1, r4
- blx r2
- ldr r3, [r4, #0x30]
- cmp r3, #0x1000
- beq _020BE7B4
- ldr r0, [sp, #0x8]
- ldr r1, [sp, #0xc]
- smull r2, r0, r3, r0
- mov r2, r2, lsr #0xc
- orr r2, r2, r0, lsl #0x14
- str r2, [sp, #0x8]
- ldr r2, [r4, #0x30]
- ldr r0, [sp, #0x38]
- smull r3, r1, r2, r1
- mov r2, r3, lsr #0xc
- orr r2, r2, r1, lsl #0x14
- str r2, [sp, #0xc]
- ldr r1, [r4, #0x30]
- smull r2, r0, r1, r0
- mov r1, r2, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- str r1, [sp, #0x38]
-_020BE7B4:
- ldr r3, [r4, #0x34]
- cmp r3, #0x1000
- beq _020BE804
- ldr r0, [sp, #0x18]
- ldr r1, [sp, #0x1c]
- smull r2, r0, r3, r0
- mov r2, r2, lsr #0xc
- orr r2, r2, r0, lsl #0x14
- str r2, [sp, #0x18]
- ldr r2, [r4, #0x34]
- ldr r0, [sp, #0x3c]
- smull r3, r1, r2, r1
- mov r2, r3, lsr #0xc
- orr r2, r2, r1, lsl #0x14
- str r2, [sp, #0x1c]
- ldr r1, [r4, #0x34]
- smull r2, r0, r1, r0
- mov r1, r2, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- str r1, [sp, #0x3c]
-_020BE804:
- add r1, sp, #0x0
- ldr r0, [sp, #0x0]
- add r1, r1, #0x4
- mov r2, #0x12
- bl FUN_020BB1C0
- add sp, sp, #0x50
- ldmia sp!, {r4,pc}
- .balign 4
-_020BE820: .word 0x00101610
-_020BE824: .word 0x00101810
-_020BE828: .word UNK_021067B0
-
- arm_func_start FUN_020BE82C
-FUN_020BE82C: ; 0x020BE82C
- mov r2, #0x1000
- str r2, [r0, #0x0]
- mov r1, #0x0
- str r1, [r0, #0x4]
- str r1, [r0, #0x10]
- str r2, [r0, #0x14]
- str r1, [r0, #0x30]
- str r1, [r0, #0x34]
- bx lr
-
- arm_func_start FUN_020BE850
-FUN_020BE850: ; 0x020BE850
- ldr r2, [r1, #0x18]
- mov r12, #0x0
- str r2, [r0, #0x0]
- ldr r2, [r1, #0x1c]
- str r2, [r0, #0x14]
- str r12, [r0, #0x4]
- str r12, [r0, #0x30]
- ldr r2, [r1, #0x1c]
- ldrh r3, [r1, #0x2e]
- mov r1, r2, lsl #0x1
- rsb r1, r1, #0x0
- add r1, r1, #0x2000
- mul r1, r3, r1
- mov r1, r1, lsl #0x3
- str r1, [r0, #0x34]
- str r12, [r0, #0x10]
- bx lr
-
- arm_func_start FUN_020BE894
-FUN_020BE894: ; 0x020BE894
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r5, r1
- ldrh r2, [r5, #0x2c]
- ldrh r1, [r5, #0x2e]
- mov r6, r0
- mov r4, r2, lsl #0xc
- mov r7, r1, lsl #0xc
- mov r0, r7
- mov r1, r4
- bl FX_DivAsync
- ldrsh r0, [r5, #0x22]
- str r0, [r6, #0x0]
- ldrsh r0, [r5, #0x22]
- str r0, [r6, #0x14]
- bl FX_GetDivResult
- ldrsh r2, [r5, #0x20]
- mov r1, r7
- rsb r2, r2, #0x0
- mul r0, r2, r0
- mov r2, r0, asr #0xc
- mov r0, r4
- str r2, [r6, #0x4]
- bl FX_DivAsync
- ldrsh r1, [r5, #0x20]
- ldrsh r0, [r5, #0x22]
- ldrh r2, [r5, #0x2c]
- add r0, r1, r0
- rsb r0, r0, #0x0
- add r0, r0, #0x1000
- mul r0, r2, r0
- mov r0, r0, lsl #0x3
- str r0, [r6, #0x30]
- ldrsh r1, [r5, #0x20]
- ldrsh r0, [r5, #0x22]
- ldrh r2, [r5, #0x2e]
- sub r0, r1, r0
- add r0, r0, #0x1000
- mul r0, r2, r0
- mov r0, r0, lsl #0x3
- str r0, [r6, #0x34]
- bl FX_GetDivResult
- ldrsh r1, [r5, #0x20]
- mul r0, r1, r0
- mov r0, r0, asr #0xc
- str r0, [r6, #0x10]
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020BE954
-FUN_020BE954: ; 0x020BE954
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x4
- mov r9, r1
- ldrh r2, [r9, #0x2c]
- ldrh r1, [r9, #0x2e]
- mov r10, r0
- mov r8, r2, lsl #0xc
- mov r11, r1, lsl #0xc
- mov r0, r11
- mov r1, r8
- bl FX_DivAsync
- ldrsh r5, [r9, #0x22]
- ldr r3, [r9, #0x18]
- ldrsh r0, [r9, #0x20]
- ldr r4, [r9, #0x1c]
- smull r2, r1, r3, r5
- mov r6, r2, lsr #0xc
- orr r6, r6, r1, lsl #0x14
- smull r2, r1, r3, r0
- mov r7, r2, lsr #0xc
- orr r7, r7, r1, lsl #0x14
- smull r3, r2, r4, r0
- smull r1, r0, r4, r5
- mov r5, r3, lsr #0xc
- orr r5, r5, r2, lsl #0x14
- mov r4, r1, lsr #0xc
- orr r4, r4, r0, lsl #0x14
- str r6, [r10, #0x0]
- str r4, [r10, #0x14]
- bl FX_GetDivResult
- mov r1, r11
- rsb r2, r5, #0x0
- mul r0, r2, r0
- mov r0, r0, asr #0xc
- str r0, [r10, #0x4]
- mov r0, r8
- bl FX_DivAsync
- sub r1, r5, r4
- add r0, r7, r6
- ldrh r3, [r9, #0x2c]
- ldr r2, [r9, #0x18]
- sub r0, r2, r0
- mul r0, r3, r0
- mov r0, r0, lsl #0x3
- str r0, [r10, #0x30]
- ldrh r2, [r9, #0x2e]
- ldr r0, [r9, #0x1c]
- sub r0, r1, r0
- add r0, r0, #0x2000
- mul r0, r2, r0
- mov r0, r0, lsl #0x3
- str r0, [r10, #0x34]
- bl FX_GetDivResult
- mul r0, r7, r0
- mov r0, r0, asr #0xc
- str r0, [r10, #0x10]
- add sp, sp, #0x4
- ldmia sp!, {r4-r11,pc}
-
- arm_func_start FUN_020BEA3C
-FUN_020BEA3C: ; 0x020BEA3C
- mov r2, #0x1000
- str r2, [r0, #0x0]
- str r2, [r0, #0x14]
- mov r12, #0x0
- str r12, [r0, #0x4]
- ldrh r2, [r1, #0x2c]
- ldr r3, [r1, #0x24]
- mul r2, r3, r2
- rsb r2, r2, #0x0
- mov r2, r2, lsl #0x4
- str r2, [r0, #0x30]
- ldrh r2, [r1, #0x2e]
- ldr r1, [r1, #0x28]
- mul r2, r1, r2
- mov r1, r2, lsl #0x4
- str r1, [r0, #0x34]
- str r12, [r0, #0x10]
- bx lr
-
- arm_func_start FUN_020BEA84
-FUN_020BEA84: ; 0x020BEA84
- stmdb sp!, {r4,lr}
- ldr r3, [r1, #0x18]
- mov r2, #0x0
- str r3, [r0, #0x0]
- ldr r3, [r1, #0x1c]
- str r3, [r0, #0x14]
- str r2, [r0, #0x4]
- ldr r4, [r1, #0x18]
- ldr r3, [r1, #0x24]
- ldrh lr, [r1, #0x2c]
- smull r12, r3, r4, r3
- mov r4, r12, lsr #0x8
- orr r4, r4, r3, lsl #0x18
- rsb r3, r4, #0x0
- mul r3, lr, r3
- str r3, [r0, #0x30]
- ldr r4, [r1, #0x1c]
- ldr r12, [r1, #0x28]
- mov r3, r4, lsl #0x1
- smull lr, r12, r4, r12
- rsb r4, r3, #0x0
- mov r3, lr, lsr #0x8
- ldrh lr, [r1, #0x2e]
- add r1, r4, #0x2000
- orr r3, r3, r12, lsl #0x18
- mul r4, lr, r1
- mul r1, lr, r3
- add r1, r1, r4, lsl #0x3
- str r1, [r0, #0x34]
- str r2, [r0, #0x10]
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020BEB00
-FUN_020BEB00: ; 0x020BEB00
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r5, r1
- ldrh r2, [r5, #0x2c]
- ldrh r1, [r5, #0x2e]
- mov r6, r0
- mov r4, r2, lsl #0xc
- mov r7, r1, lsl #0xc
- mov r0, r7
- mov r1, r4
- bl FX_DivAsync
- ldrsh r0, [r5, #0x22]
- str r0, [r6, #0x0]
- ldrsh r0, [r5, #0x22]
- str r0, [r6, #0x14]
- bl FX_GetDivResult
- ldrsh r2, [r5, #0x20]
- mov r1, r7
- rsb r2, r2, #0x0
- mul r0, r2, r0
- mov r2, r0, asr #0xc
- mov r0, r4
- str r2, [r6, #0x4]
- bl FX_DivAsync
- ldrsh r2, [r5, #0x20]
- ldrsh r1, [r5, #0x22]
- ldrh r3, [r5, #0x2c]
- ldr r0, [r5, #0x24]
- add r1, r2, r1
- rsb r1, r1, #0x0
- add r1, r1, #0x1000
- mul r2, r3, r1
- mul r1, r0, r3
- mov r0, r2, lsl #0x3
- sub r0, r0, r1, lsl #0x4
- str r0, [r6, #0x30]
- ldrsh r2, [r5, #0x20]
- ldrsh r1, [r5, #0x22]
- ldrh r3, [r5, #0x2e]
- ldr r0, [r5, #0x28]
- sub r1, r2, r1
- add r1, r1, #0x1000
- mul r2, r3, r1
- mul r1, r0, r3
- mov r0, r2, lsl #0x3
- add r0, r0, r1, lsl #0x4
- str r0, [r6, #0x34]
- bl FX_GetDivResult
- ldrsh r1, [r5, #0x20]
- mul r0, r1, r0
- mov r0, r0, asr #0xc
- str r0, [r6, #0x10]
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020BEBD8
-FUN_020BEBD8: ; 0x020BEBD8
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x4
- mov r9, r1
- ldrh r2, [r9, #0x2c]
- ldrh r1, [r9, #0x2e]
- mov r10, r0
- mov r8, r2, lsl #0xc
- mov r11, r1, lsl #0xc
- mov r0, r11
- mov r1, r8
- bl FX_DivAsync
- ldrsh r5, [r9, #0x22]
- ldr r3, [r9, #0x18]
- ldrsh r0, [r9, #0x20]
- ldr r4, [r9, #0x1c]
- smull r2, r1, r3, r5
- mov r6, r2, lsr #0xc
- orr r6, r6, r1, lsl #0x14
- smull r2, r1, r3, r0
- mov r7, r2, lsr #0xc
- orr r7, r7, r1, lsl #0x14
- smull r3, r2, r4, r0
- smull r1, r0, r4, r5
- mov r5, r3, lsr #0xc
- orr r5, r5, r2, lsl #0x14
- mov r4, r1, lsr #0xc
- orr r4, r4, r0, lsl #0x14
- str r6, [r10, #0x0]
- str r4, [r10, #0x14]
- bl FX_GetDivResult
- mov r1, r11
- rsb r2, r5, #0x0
- mul r0, r2, r0
- mov r0, r0, asr #0xc
- str r0, [r10, #0x4]
- mov r0, r8
- bl FX_DivAsync
- sub r1, r5, r4
- add r2, r7, r6
- ldr r5, [r9, #0x18]
- ldrh r0, [r9, #0x2c]
- sub r3, r5, r2
- ldr r2, [r9, #0x24]
- mul r4, r0, r3
- smull r3, r2, r5, r2
- mov r4, r4, lsl #0x3
- mov r3, r3, lsr #0x8
- orr r3, r3, r2, lsl #0x18
- mul r2, r0, r3
- sub r0, r4, r2
- str r0, [r10, #0x30]
- ldr r4, [r9, #0x1c]
- ldrh r3, [r9, #0x2e]
- sub r0, r1, r4
- add r0, r0, #0x2000
- mul r2, r3, r0
- ldr r0, [r9, #0x28]
- smull r1, r0, r4, r0
- mov r1, r1, lsr #0x8
- orr r1, r1, r0, lsl #0x18
- mul r0, r3, r1
- add r0, r0, r2, lsl #0x3
- str r0, [r10, #0x34]
- bl FX_GetDivResult
- mul r0, r7, r0
- mov r0, r0, asr #0xc
- str r0, [r10, #0x10]
- add sp, sp, #0x4
- ldmia sp!, {r4-r11,pc}
-
- arm_func_start FUN_020BECEC
-FUN_020BECEC: ; 0x020BECEC
- stmdb sp!, {r4-r8,lr}
- mov r12, r0
- ands r0, r3, #0x4
- ldrb r3, [r2, #0x3]
- beq _020BED40
- ldr r1, [r12, #0x0]
- ands r0, r3, #0x2
- orr r0, r1, #0x1
- str r0, [r12, #0x0]
- beq _020BEDB8
- ldr r0, _020BEE2C ; =UNK_021CEF7C
- ldrb r7, [r2, #0x1]
- ldr r0, [r0, #0x0]
- mov r1, #0x1
- add r6, r0, #0xc4
- mov r5, r7, lsr #0x5
- ldr r4, [r6, r5, lsl #0x2]
- and r0, r7, #0x1f
- orr r0, r4, r1, lsl r0
- str r0, [r6, r5, lsl #0x2]
- b _020BEDB8
-_020BED40:
- ldr r4, [r1, #0x0]
- ands r0, r3, #0x2
- str r4, [r12, #0x4]
- ldr r0, [r1, #0x4]
- str r0, [r12, #0x8]
- ldr r0, [r1, #0x8]
- str r0, [r12, #0xc]
- beq _020BEDB8
- ldr lr, _020BEE2C ; =UNK_021CEF7C
- ldrb r0, [r2, #0x1]
- ldr r4, [lr, #0x0]
- mov lr, #0x18
- add r8, r4, #0xc4
- mov r7, r0, lsr #0x5
- and r4, r0, #0x1f
- mov r5, #0x1
- mvn r4, r5, lsl r4
- ldr r6, [r8, r7, lsl #0x2]
- mul r5, r0, lr
- and r0, r6, r4
- str r0, [r8, r7, lsl #0x2]
- ldr r4, [r1, #0xc]
- ldr r0, _020BEE30 ; =UNK_021CFD8C
- ldr lr, _020BEE34 ; =UNK_021CFD90
- str r4, [r0, r5]
- ldr r4, [r1, #0x10]
- ldr r0, _020BEE38 ; =UNK_021CFD94
- str r4, [lr, r5]
- ldr r1, [r1, #0x14]
- str r1, [r0, r5]
-_020BEDB8:
- ands r0, r3, #0x1
- beq _020BEE1C
- ldrb r0, [r2, #0x2]
- ldr r2, [r12, #0x0]
- ldr r1, _020BEE2C ; =UNK_021CEF7C
- orr r2, r2, #0x20
- str r2, [r12, #0x0]
- ldr r2, [r1, #0x0]
- mov r1, r0, lsr #0x5
- add r1, r2, r1, lsl #0x2
- and r2, r0, #0x1f
- mov r3, #0x1
- mov r2, r3, lsl r2
- ldr r1, [r1, #0xc4]
- ands r1, r2, r1
- ldrne r0, [r12, #0x0]
- orrne r0, r0, #0x8
- strne r0, [r12, #0x0]
- bne _020BEE1C
- ldr r2, _020BEE30 ; =UNK_021CFD8C
- mov r1, #0x18
- mla r1, r0, r1, r2
- add r3, r12, #0x10
- ldmia r1, {r0-r2}
- stmia r3, {r0-r2}
-_020BEE1C:
- ldr r0, [r12, #0x0]
- orr r0, r0, #0x10
- str r0, [r12, #0x0]
- ldmia sp!, {r4-r8,pc}
- .balign 4
-_020BEE2C: .word UNK_021CEF7C
-_020BEE30: .word UNK_021CFD8C
-_020BEE34: .word UNK_021CFD90
-_020BEE38: .word UNK_021CFD94
-
- arm_func_start FUN_020BEE3C
-FUN_020BEE3C: ; 0x020BEE3C
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- ldr r1, [r5, #0x0]
- mov r4, #0x0
- ands r0, r1, #0x4
- moveq r4, #0x1
- ands r0, r1, #0x20
- beq _020BEE94
- ands r0, r1, #0x8
- bne _020BEE94
- cmp r4, #0x0
- beq _020BEE84
- add r1, r5, #0x4c
- mov r0, #0x1c
- mov r2, #0x3
- bl FUN_020BB1C0
- mov r4, #0x0
-_020BEE84:
- add r1, r5, #0x10
- mov r0, #0x1b
- mov r2, #0x3
- bl FUN_020BB1C0
-_020BEE94:
- ldr r0, [r5, #0x0]
- ands r0, r0, #0x2
- bne _020BEED0
- cmp r4, #0x0
- beq _020BEEBC
- add r1, r5, #0x28
- mov r0, #0x19
- mov r2, #0xc
- bl FUN_020BB1C0
- b _020BEEE8
-_020BEEBC:
- add r1, r5, #0x28
- mov r0, #0x1a
- mov r2, #0x9
- bl FUN_020BB1C0
- b _020BEEE8
-_020BEED0:
- cmp r4, #0x0
- beq _020BEEE8
- add r1, r5, #0x4c
- mov r0, #0x1c
- mov r2, #0x3
- bl FUN_020BB1C0
-_020BEEE8:
- ldr r0, [r5, #0x0]
- ands r0, r0, #0x1
- addne sp, sp, #0x4
- ldmneia sp!, {r4-r5,pc}
- add r1, r5, #0x4
- mov r0, #0x1b
- mov r2, #0x3
- bl FUN_020BB1C0
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020BEF10
-FUN_020BEF10: ; 0x020BEF10
- stmdb sp!, {lr}
- sub sp, sp, #0x3c
- ldr r1, [r0, #0x0]
- mov r3, #0x0
- ands r1, r1, #0x8
- ldrne r1, _020BF0CC ; =0x00101710
- mov r2, #0x3
- strne r1, [sp, #0x0]
- ldreq r1, _020BF0D0 ; =0x00101910
- str r3, [sp, #0x34]
- streq r1, [sp, #0x0]
- mov r1, #0x2
- str r1, [sp, #0x38]
- str r3, [sp, #0x28]
- str r3, [sp, #0x24]
- str r3, [sp, #0x20]
- str r3, [sp, #0x1c]
- str r3, [sp, #0x14]
- str r3, [sp, #0x10]
- str r3, [sp, #0xc]
- str r2, [sp, #0x4]
- ldr r2, [r0, #0x0]
- ands r1, r2, #0x4
- beq _020BEFA0
- str r3, [sp, #0x2c]
- str r3, [sp, #0x30]
- ldr r1, [r0, #0x0]
- ands r1, r1, #0x1
- movne r1, #0x1000
- strne r1, [sp, #0x8]
- strne r1, [sp, #0x18]
- ldreq r1, [r0, #0x18]
- streq r1, [sp, #0x8]
- ldreq r1, [r0, #0x1c]
- streq r1, [sp, #0x18]
- b _020BF040
-_020BEFA0:
- ands r1, r2, #0x1
- beq _020BEFE8
- ldr r2, [r0, #0x24]
- ldrh r1, [r0, #0x2c]
- mov r2, r2, lsl #0x4
- rsb r2, r2, #0x0
- mul r1, r2, r1
- str r1, [sp, #0x2c]
- ldr r2, [r0, #0x28]
- ldrh r1, [r0, #0x2e]
- mov r2, r2, lsl #0x4
- rsb r2, r2, #0x0
- mul r3, r2, r1
- mov r1, #0x1000
- str r3, [sp, #0x30]
- str r1, [sp, #0x8]
- str r1, [sp, #0x18]
- b _020BF040
-_020BEFE8:
- ldr r2, [r0, #0x18]
- ldr r1, [r0, #0x24]
- ldrh r12, [r0, #0x2c]
- smull r3, r1, r2, r1
- mov r2, r3, lsr #0x8
- orr r2, r2, r1, lsl #0x18
- rsb r1, r2, #0x0
- mul r1, r12, r1
- str r1, [sp, #0x2c]
- ldr r2, [r0, #0x1c]
- ldr r1, [r0, #0x28]
- ldrh r12, [r0, #0x2e]
- smull r3, r1, r2, r1
- mov r2, r3, lsr #0x8
- orr r2, r2, r1, lsl #0x18
- rsb r1, r2, #0x0
- mul r1, r12, r1
- str r1, [sp, #0x30]
- ldr r1, [r0, #0x18]
- str r1, [sp, #0x8]
- ldr r1, [r0, #0x1c]
- str r1, [sp, #0x18]
-_020BF040:
- ldr r12, [r0, #0x30]
- cmp r12, #0x1000
- beq _020BF078
- ldr r2, [sp, #0x8]
- ldr r1, [sp, #0x2c]
- smull r3, r2, r12, r2
- mov r3, r3, lsr #0xc
- orr r3, r3, r2, lsl #0x14
- str r3, [sp, #0x8]
- ldr r2, [r0, #0x30]
- smull r3, r1, r2, r1
- mov r2, r3, lsr #0xc
- orr r2, r2, r1, lsl #0x14
- str r2, [sp, #0x2c]
-_020BF078:
- ldr r12, [r0, #0x34]
- cmp r12, #0x1000
- beq _020BF0B0
- ldr r2, [sp, #0x18]
- ldr r1, [sp, #0x30]
- smull r3, r2, r12, r2
- mov r3, r3, lsr #0xc
- orr r3, r3, r2, lsl #0x14
- str r3, [sp, #0x18]
- ldr r0, [r0, #0x34]
- smull r2, r1, r0, r1
- mov r0, r2, lsr #0xc
- orr r0, r0, r1, lsl #0x14
- str r0, [sp, #0x30]
-_020BF0B0:
- add r1, sp, #0x0
- ldr r0, [sp, #0x0]
- add r1, r1, #0x4
- mov r2, #0xe
- bl FUN_020BB1C0
- add sp, sp, #0x3c
- ldmia sp!, {pc}
- .balign 4
-_020BF0CC: .word 0x00101710
-_020BF0D0: .word 0x00101910
-
- arm_func_start FUN_020BF0D4
-FUN_020BF0D4: ; 0x020BF0D4
- stmdb sp!, {r4-r8,lr}
- mov r5, r0
- ands r0, r3, #0x4
- ldrb r4, [r2, #0x1]
- ldrb r0, [r2, #0x2]
- beq _020BF174
- ldr r2, [r5, #0x0]
- ldr r1, _020BF2E0 ; =UNK_021CEF7C
- orr r2, r2, #0x1
- str r2, [r5, #0x0]
- ldr r3, [r1, #0x0]
- mov r1, r0, lsr #0x5
- add r1, r3, r1, lsl #0x2
- and r2, r0, #0x1f
- mov r6, #0x1
- mov r2, r6, lsl r2
- ldr r1, [r1, #0xc4]
- ands r1, r2, r1
- beq _020BF148
- add r3, r3, #0xc4
- mov r2, r4, lsr #0x5
- ldr r1, [r3, r2, lsl #0x2]
- and r0, r4, #0x1f
- orr r0, r1, r6, lsl r0
- str r0, [r3, r2, lsl #0x2]
- ldr r0, [r5, #0x0]
- orr r0, r0, #0x18
- str r0, [r5, #0x0]
- ldmia sp!, {r4-r8,pc}
-_020BF148:
- ldr r1, _020BF2E4 ; =UNK_021CFD80
- mov r2, #0x18
- mla r6, r0, r2, r1
- mla r1, r4, r2, r1
- mov r0, r6
- bl MIi_CpuCopy32
- mov r0, r6
- add r1, r5, #0x10
- mov r2, #0x18
- bl MIi_CpuCopy32
- ldmia sp!, {r4-r8,pc}
-_020BF174:
- ldr r3, [r1, #0x0]
- ldr r2, _020BF2E0 ; =UNK_021CEF7C
- str r3, [r5, #0x4]
- ldr r3, [r1, #0x4]
- mov r7, r0, lsr #0x5
- str r3, [r5, #0x8]
- ldr r3, [r1, #0x8]
- and r8, r0, #0x1f
- str r3, [r5, #0xc]
- ldr r6, [r2, #0x0]
- mov r3, #0x1
- add r2, r6, r7, lsl #0x2
- mov r7, r3, lsl r8
- ldr r2, [r2, #0xc4]
- ands r2, r7, r2
- beq _020BF200
- ldr r3, _020BF2E4 ; =UNK_021CFD80
- mov r2, #0x18
- mov r0, r1
- mla r1, r4, r2, r3
- bl MIi_CpuCopy32
- ldr r0, _020BF2E0 ; =UNK_021CEF7C
- mov r2, r4, lsr #0x5
- ldr r1, [r0, #0x0]
- and r0, r4, #0x1f
- add r3, r1, #0xc4
- mov r1, #0x1
- mvn r0, r1, lsl r0
- ldr r1, [r3, r2, lsl #0x2]
- and r0, r1, r0
- str r0, [r3, r2, lsl #0x2]
- ldr r0, [r5, #0x0]
- orr r0, r0, #0x18
- str r0, [r5, #0x0]
- ldmia sp!, {r4-r8,pc}
-_020BF200:
- mov r2, #0x18
- mul r12, r0, r2
- and r7, r4, #0x1f
- ldr r0, _020BF2E4 ; =UNK_021CFD80
- add r6, r6, #0xc4
- mov lr, r4, lsr #0x5
- mvn r7, r3, lsl r7
- ldr r8, [r6, lr, lsl #0x2]
- mul r3, r4, r2
- and r4, r8, r7
- str r4, [r6, lr, lsl #0x2]
- ldr r7, [r1, #0x0]
- ldr r4, [r0, r12]
- ldr r6, _020BF2E8 ; =UNK_021CFD84
- smull r8, r4, r7, r4
- mov r7, r8, lsr #0xc
- orr r7, r7, r4, lsl #0x14
- str r7, [r0, r3]
- ldr r8, [r1, #0x4]
- ldr r4, [r6, r12]
- ldr r7, _020BF2EC ; =UNK_021CFD88
- smull lr, r4, r8, r4
- mov r8, lr, lsr #0xc
- orr r8, r8, r4, lsl #0x14
- str r8, [r6, r3]
- ldr r8, [r1, #0x8]
- ldr r4, [r7, r12]
- ldr r6, _020BF2F0 ; =UNK_021CFD8C
- smull lr, r4, r8, r4
- mov r8, lr, lsr #0xc
- orr r8, r8, r4, lsl #0x14
- str r8, [r7, r3]
- ldr r7, [r1, #0xc]
- ldr r4, [r6, r12]
- ldr lr, _020BF2F4 ; =UNK_021CFD90
- smull r8, r4, r7, r4
- mov r7, r8, lsr #0xc
- orr r7, r7, r4, lsl #0x14
- str r7, [r6, r3]
- ldr r7, [r1, #0x10]
- ldr r4, [lr, r12]
- ldr r6, _020BF2F8 ; =UNK_021CFD94
- smull r8, r4, r7, r4
- add r0, r0, r12
- mov r7, r8, lsr #0xc
- orr r7, r7, r4, lsl #0x14
- str r7, [lr, r3]
- ldr lr, [r1, #0x14]
- ldr r4, [r6, r12]
- add r1, r5, #0x10
- smull r5, r4, lr, r4
- mov r5, r5, lsr #0xc
- orr r5, r5, r4, lsl #0x14
- str r5, [r6, r3]
- bl MIi_CpuCopy32
- ldmia sp!, {r4-r8,pc}
- .balign 4
-_020BF2E0: .word UNK_021CEF7C
-_020BF2E4: .word UNK_021CFD80
-_020BF2E8: .word UNK_021CFD84
-_020BF2EC: .word UNK_021CFD88
-_020BF2F0: .word UNK_021CFD8C
-_020BF2F4: .word UNK_021CFD90
-_020BF2F8: .word UNK_021CFD94
-
- arm_func_start FUN_020BF2FC
-FUN_020BF2FC: ; 0x020BF2FC
- stmdb sp!, {r4-r6,lr}
- sub sp, sp, #0x10
- mov r6, r0
- ldr r0, [r6, #0x0]
- mov r5, #0x0
- ands r4, r0, #0x18
- bne _020BF328
- add r1, r6, #0x1c
- mov r0, #0x1b
- mov r2, #0x3
- bl FUN_020BB1C0
-_020BF328:
- ldr r0, [r6, #0x0]
- ands r0, r0, #0x4
- bne _020BF398
- cmp r4, #0x0
- movne r5, #0x1
- bne _020BF398
- ldr r2, [r6, #0x4c]
- ldr r0, [r6, #0x10]
- add r1, sp, #0x0
- smull r3, r0, r2, r0
- mov r2, r3, lsr #0xc
- orr r2, r2, r0, lsl #0x14
- str r2, [sp, #0x0]
- ldr r3, [r6, #0x50]
- ldr r2, [r6, #0x14]
- mov r0, #0x1c
- smull r12, r2, r3, r2
- mov r3, r12, lsr #0xc
- orr r3, r3, r2, lsl #0x14
- str r3, [sp, #0x4]
- ldr r12, [r6, #0x54]
- ldr r3, [r6, #0x18]
- mov r2, #0x3
- smull lr, r3, r12, r3
- mov r12, lr, lsr #0xc
- orr r12, r12, r3, lsl #0x14
- str r12, [sp, #0x8]
- bl FUN_020BB1C0
-_020BF398:
- ldr r0, [r6, #0x0]
- ands r0, r0, #0x2
- bne _020BF3D4
- cmp r5, #0x0
- beq _020BF3C0
- add r1, r6, #0x28
- mov r0, #0x19
- mov r2, #0xc
- bl FUN_020BB1C0
- b _020BF3EC
-_020BF3C0:
- add r1, r6, #0x28
- mov r0, #0x1a
- mov r2, #0x9
- bl FUN_020BB1C0
- b _020BF3EC
-_020BF3D4:
- cmp r5, #0x0
- beq _020BF3EC
- add r1, r6, #0x4c
- mov r0, #0x1c
- mov r2, #0x3
- bl FUN_020BB1C0
-_020BF3EC:
- cmp r4, #0x0
- bne _020BF404
- add r1, r6, #0x10
- mov r0, #0x1b
- mov r2, #0x3
- bl FUN_020BB1C0
-_020BF404:
- ldr r0, [r6, #0x0]
- ands r0, r0, #0x1
- addne sp, sp, #0x10
- ldmneia sp!, {r4-r6,pc}
- add r1, r6, #0x4
- mov r0, #0x1b
- mov r2, #0x3
- bl FUN_020BB1C0
- add sp, sp, #0x10
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020BF42C
-FUN_020BF42C: ; 0x020BF42C
- stmdb sp!, {r4,lr}
- sub sp, sp, #0x50
- mov r4, r0
- ldr r0, [r4, #0x0]
- mov r1, #0x0
- ands r0, r0, #0x8
- ldrne r0, _020BF568 ; =0x00101610
- mov r3, #0x3
- strne r0, [sp, #0x0]
- ldreq r0, _020BF56C ; =0x00101810
- mov r2, #0x2
- streq r0, [sp, #0x0]
- mov r0, #0x1000
- str r0, [sp, #0x44]
- str r3, [sp, #0x4]
- str r2, [sp, #0x48]
- str r1, [sp, #0x40]
- str r1, [sp, #0x34]
- str r1, [sp, #0x30]
- str r1, [sp, #0x2c]
- str r1, [sp, #0x28]
- str r1, [sp, #0x24]
- str r1, [sp, #0x20]
- str r1, [sp, #0x14]
- str r1, [sp, #0x10]
- ldr r1, [r4, #0x0]
- ldr r0, _020BF570 ; =UNK_021067D0
- and r1, r1, #0x7
- ldr r2, [r0, r1, lsl #0x2]
- add r0, sp, #0x8
- mov r1, r4
- blx r2
- ldr r3, [r4, #0x30]
- cmp r3, #0x1000
- beq _020BF4FC
- ldr r0, [sp, #0x8]
- ldr r1, [sp, #0xc]
- smull r2, r0, r3, r0
- mov r2, r2, lsr #0xc
- orr r2, r2, r0, lsl #0x14
- str r2, [sp, #0x8]
- ldr r2, [r4, #0x30]
- ldr r0, [sp, #0x38]
- smull r3, r1, r2, r1
- mov r2, r3, lsr #0xc
- orr r2, r2, r1, lsl #0x14
- str r2, [sp, #0xc]
- ldr r1, [r4, #0x30]
- smull r2, r0, r1, r0
- mov r1, r2, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- str r1, [sp, #0x38]
-_020BF4FC:
- ldr r3, [r4, #0x34]
- cmp r3, #0x1000
- beq _020BF54C
- ldr r0, [sp, #0x18]
- ldr r1, [sp, #0x1c]
- smull r2, r0, r3, r0
- mov r2, r2, lsr #0xc
- orr r2, r2, r0, lsl #0x14
- str r2, [sp, #0x18]
- ldr r2, [r4, #0x34]
- ldr r0, [sp, #0x3c]
- smull r3, r1, r2, r1
- mov r2, r3, lsr #0xc
- orr r2, r2, r1, lsl #0x14
- str r2, [sp, #0x1c]
- ldr r1, [r4, #0x34]
- smull r2, r0, r1, r0
- mov r1, r2, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- str r1, [sp, #0x3c]
-_020BF54C:
- add r1, sp, #0x0
- ldr r0, [sp, #0x0]
- add r1, r1, #0x4
- mov r2, #0x12
- bl FUN_020BB1C0
- add sp, sp, #0x50
- ldmia sp!, {r4,pc}
- .balign 4
-_020BF568: .word 0x00101610
-_020BF56C: .word 0x00101810
-_020BF570: .word UNK_021067D0
-
- arm_func_start FUN_020BF574
-FUN_020BF574: ; 0x020BF574
- mov r2, #0x1000
- str r2, [r0, #0x0]
- mov r1, #0x0
- str r1, [r0, #0x4]
- str r1, [r0, #0x10]
- str r2, [r0, #0x14]
- str r1, [r0, #0x30]
- str r1, [r0, #0x34]
- bx lr
-
- arm_func_start FUN_020BF598
-FUN_020BF598: ; 0x020BF598
- ldr r2, [r1, #0x18]
- mov r12, #0x0
- str r2, [r0, #0x0]
- ldr r2, [r1, #0x1c]
- str r2, [r0, #0x14]
- str r12, [r0, #0x4]
- ldr r3, [r1, #0x18]
- ldrh r2, [r1, #0x2c]
- rsb r3, r3, #0x1000
- mul r2, r3, r2
- mov r2, r2, lsl #0x3
- str r2, [r0, #0x30]
- ldr r2, [r1, #0x1c]
- ldrh r1, [r1, #0x2e]
- rsb r2, r2, #0x1000
- mul r1, r2, r1
- mov r1, r1, lsl #0x3
- str r1, [r0, #0x34]
- str r12, [r0, #0x10]
- bx lr
-
- arm_func_start FUN_020BF5E8
-FUN_020BF5E8: ; 0x020BF5E8
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r5, r1
- ldrh r2, [r5, #0x2c]
- ldrh r1, [r5, #0x2e]
- mov r6, r0
- mov r4, r2, lsl #0xc
- mov r7, r1, lsl #0xc
- mov r0, r7
- mov r1, r4
- bl FX_DivAsync
- ldrsh r0, [r5, #0x22]
- str r0, [r6, #0x0]
- ldrsh r0, [r5, #0x22]
- str r0, [r6, #0x14]
- bl FX_GetDivResult
- ldrsh r2, [r5, #0x20]
- mov r1, r7
- mul r0, r2, r0
- mov r2, r0, asr #0xc
- mov r0, r4
- str r2, [r6, #0x4]
- bl FX_DivAsync
- ldrh r2, [r5, #0x2c]
- ldrh r1, [r5, #0x2e]
- ldrsh r4, [r5, #0x22]
- rsb r0, r2, #0x0
- rsb r1, r1, #0x0
- mov r0, r0, lsl #0xb
- ldrsh r3, [r5, #0x20]
- mov r1, r1, lsl #0xb
- smull r7, lr, r4, r0
- smull r12, r4, r3, r1
- subs r7, r7, r12
- sbc r3, lr, r4
- mov r4, r7, lsr #0x8
- orr r4, r4, r3, lsl #0x18
- add r2, r4, r2, lsl #0xf
- str r2, [r6, #0x30]
- ldrsh r2, [r5, #0x22]
- ldrsh r3, [r5, #0x20]
- ldrh r12, [r5, #0x2e]
- smull r4, r1, r2, r1
- smlal r4, r1, r3, r0
- mov r0, r4, lsr #0x8
- orr r0, r0, r1, lsl #0x18
- add r0, r0, r12, lsl #0xf
- str r0, [r6, #0x34]
- bl FX_GetDivResult
- ldrsh r1, [r5, #0x20]
- rsb r1, r1, #0x0
- mul r0, r1, r0
- mov r0, r0, asr #0xc
- str r0, [r6, #0x10]
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020BF6C8
-FUN_020BF6C8: ; 0x020BF6C8
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x4
- mov r9, r1
- ldrh r2, [r9, #0x2c]
- ldrh r1, [r9, #0x2e]
- mov r10, r0
- mov r8, r2, lsl #0xc
- mov r11, r1, lsl #0xc
- mov r0, r11
- mov r1, r8
- bl FX_DivAsync
- ldrsh r0, [r9, #0x22]
- ldr r3, [r9, #0x18]
- ldrsh r5, [r9, #0x20]
- ldr r4, [r9, #0x1c]
- smull r2, r1, r3, r0
- mov r7, r2, lsr #0xc
- orr r7, r7, r1, lsl #0x14
- smull r2, r1, r3, r5
- mov r6, r2, lsr #0xc
- orr r6, r6, r1, lsl #0x14
- smull r3, r2, r4, r0
- smull r1, r0, r4, r5
- mov r5, r3, lsr #0xc
- orr r5, r5, r2, lsl #0x14
- mov r4, r1, lsr #0xc
- orr r4, r4, r0, lsl #0x14
- str r7, [r10, #0x0]
- str r5, [r10, #0x14]
- bl FX_GetDivResult
- mov r1, r11
- mul r0, r4, r0
- mov r0, r0, asr #0xc
- str r0, [r10, #0x4]
- mov r0, r8
- bl FX_DivAsync
- ldrh r3, [r9, #0x2c]
- ldrh r1, [r9, #0x2e]
- rsb r0, r3, #0x0
- rsb r1, r1, #0x0
- mov r2, r1, lsl #0xb
- mov r11, r0, lsl #0xb
- smull r1, r0, r7, r11
- smull r8, r7, r5, r2
- smlal r8, r7, r4, r11
- mov r4, r8, lsr #0x8
- orr r4, r4, r7, lsl #0x18
- smull r5, r2, r6, r2
- subs r1, r1, r5
- sbc r0, r0, r2
- mov r1, r1, lsr #0x8
- orr r1, r1, r0, lsl #0x18
- add r0, r1, r3, lsl #0xf
- str r0, [r10, #0x30]
- ldrh r0, [r9, #0x2e]
- add r0, r4, r0, lsl #0xf
- str r0, [r10, #0x34]
- bl FX_GetDivResult
- rsb r1, r6, #0x0
- mul r0, r1, r0
- mov r0, r0, asr #0xc
- str r0, [r10, #0x10]
- add sp, sp, #0x4
- ldmia sp!, {r4-r11,pc}
-
- arm_func_start FUN_020BF7C8
-FUN_020BF7C8: ; 0x020BF7C8
- mov r2, #0x1000
- str r2, [r0, #0x0]
- str r2, [r0, #0x14]
- mov r12, #0x0
- str r12, [r0, #0x4]
- ldr r3, [r1, #0x24]
- ldrh r2, [r1, #0x2c]
- rsb r3, r3, #0x0
- mul r2, r3, r2
- mov r2, r2, lsl #0x4
- str r2, [r0, #0x30]
- ldrh r2, [r1, #0x2e]
- ldr r1, [r1, #0x28]
- mul r2, r1, r2
- mov r1, r2, lsl #0x4
- str r1, [r0, #0x34]
- str r12, [r0, #0x10]
- bx lr
-
- arm_func_start FUN_020BF810
-FUN_020BF810: ; 0x020BF810
- stmdb sp!, {r4-r6,lr}
- ldr r2, [r1, #0x18]
- mov r3, #0x0
- str r2, [r0, #0x0]
- ldr r2, [r1, #0x1c]
- str r2, [r0, #0x14]
- str r3, [r0, #0x4]
- ldrh r5, [r1, #0x2c]
- ldr r12, [r1, #0x24]
- ldrh r2, [r1, #0x2e]
- mul lr, r12, r5
- rsb r12, r5, #0x0
- mov r12, r12, lsl #0xb
- ldr r4, [r1, #0x18]
- sub r12, r12, lr
- smull lr, r12, r4, r12
- ldr r6, [r1, #0x28]
- mov r4, lr, lsr #0x8
- orr r4, r4, r12, lsl #0x18
- add r4, r4, r5, lsl #0xf
- str r4, [r0, #0x30]
- mul r4, r6, r2
- rsb r5, r2, #0x0
- ldr r2, [r1, #0x1c]
- add r4, r4, r5, lsl #0xb
- smull lr, r12, r2, r4
- mov r2, lr, lsr #0x8
- ldrh r1, [r1, #0x2e]
- orr r2, r2, r12, lsl #0x18
- add r1, r2, r1, lsl #0xf
- str r1, [r0, #0x34]
- str r3, [r0, #0x10]
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020BF894
-FUN_020BF894: ; 0x020BF894
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r5, r1
- ldrh r2, [r5, #0x2c]
- ldrh r1, [r5, #0x2e]
- mov r6, r0
- mov r4, r2, lsl #0xc
- mov r7, r1, lsl #0xc
- mov r0, r7
- mov r1, r4
- bl FX_DivAsync
- ldrsh r0, [r5, #0x22]
- str r0, [r6, #0x0]
- ldrsh r0, [r5, #0x22]
- str r0, [r6, #0x14]
- bl FX_GetDivResult
- ldrsh r2, [r5, #0x20]
- mov r1, r7
- mul r0, r2, r0
- mov r2, r0, asr #0xc
- mov r0, r4
- str r2, [r6, #0x4]
- bl FX_DivAsync
- ldrh r2, [r5, #0x2c]
- ldrh r7, [r5, #0x2e]
- ldr r1, [r5, #0x28]
- ldr r0, [r5, #0x24]
- rsb r4, r2, #0x0
- mul r3, r1, r7
- rsb r1, r7, #0x0
- add r1, r3, r1, lsl #0xb
- ldrsh r3, [r5, #0x20]
- mov r7, r4, lsl #0xb
- mul r4, r0, r2
- sub r0, r7, r4
- ldrsh lr, [r5, #0x22]
- smull r12, r4, r3, r1
- smull r7, r3, lr, r0
- subs r7, r7, r12
- sbc r3, r3, r4
- mov r4, r7, lsr #0x8
- orr r4, r4, r3, lsl #0x18
- add r2, r4, r2, lsl #0xf
- str r2, [r6, #0x30]
- ldrsh r2, [r5, #0x22]
- ldrsh r3, [r5, #0x20]
- ldrh r12, [r5, #0x2e]
- smull r4, r1, r2, r1
- smlal r4, r1, r3, r0
- mov r0, r4, lsr #0x8
- orr r0, r0, r1, lsl #0x18
- add r0, r0, r12, lsl #0xf
- str r0, [r6, #0x34]
- bl FX_GetDivResult
- ldrsh r1, [r5, #0x20]
- rsb r1, r1, #0x0
- mul r0, r1, r0
- mov r0, r0, asr #0xc
- str r0, [r6, #0x10]
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020BF988
-FUN_020BF988: ; 0x020BF988
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x4
- mov r9, r1
- ldrh r2, [r9, #0x2c]
- ldrh r1, [r9, #0x2e]
- mov r10, r0
- mov r8, r2, lsl #0xc
- mov r11, r1, lsl #0xc
- mov r0, r11
- mov r1, r8
- bl FX_DivAsync
- ldrsh r0, [r9, #0x22]
- ldr r3, [r9, #0x18]
- ldrsh r5, [r9, #0x20]
- ldr r4, [r9, #0x1c]
- smull r2, r1, r3, r0
- mov r7, r2, lsr #0xc
- orr r7, r7, r1, lsl #0x14
- smull r2, r1, r3, r5
- mov r6, r2, lsr #0xc
- orr r6, r6, r1, lsl #0x14
- smull r3, r2, r4, r0
- smull r1, r0, r4, r5
- mov r5, r3, lsr #0xc
- orr r5, r5, r2, lsl #0x14
- mov r4, r1, lsr #0xc
- orr r4, r4, r0, lsl #0x14
- str r7, [r10, #0x0]
- str r5, [r10, #0x14]
- bl FX_GetDivResult
- mov r1, r11
- mul r0, r4, r0
- mov r0, r0, asr #0xc
- str r0, [r10, #0x4]
- mov r0, r8
- bl FX_DivAsync
- ldrh r1, [r9, #0x2c]
- ldrh r8, [r9, #0x2e]
- ldr r2, [r9, #0x28]
- rsb r0, r1, #0x0
- mul r3, r2, r8
- rsb r2, r8, #0x0
- add r8, r3, r2, lsl #0xb
- mov r0, r0, lsl #0xb
- smull r3, r2, r5, r8
- smull r8, r5, r6, r8
- ldr r11, [r9, #0x24]
- mul r12, r11, r1
- sub r0, r0, r12
- smlal r3, r2, r4, r0
- smull r4, r0, r7, r0
- subs r4, r4, r8
- sbc r0, r0, r5
- mov r4, r4, lsr #0x8
- orr r4, r4, r0, lsl #0x18
- add r0, r4, r1, lsl #0xf
- str r0, [r10, #0x30]
- ldrh r1, [r9, #0x2e]
- mov r0, r3, lsr #0x8
- orr r0, r0, r2, lsl #0x18
- add r0, r0, r1, lsl #0xf
- str r0, [r10, #0x34]
- bl FX_GetDivResult
- rsb r1, r6, #0x0
- mul r0, r1, r0
- mov r0, r0, asr #0xc
- str r0, [r10, #0x10]
- add sp, sp, #0x4
- ldmia sp!, {r4-r11,pc}
-
- arm_func_start FUN_020BFA9C
-FUN_020BFA9C: ; 0x020BFA9C
- stmdb sp!, {r4,lr}
- sub sp, sp, #0x50
- mov r4, r0
- ldr r0, [r4, #0x0]
- mov r3, #0x3
- ands r0, r0, #0x8
- ldrne r0, _020BFC1C ; =0x00101610
- mov r2, #0x2
- strne r0, [sp, #0x0]
- ldreq r0, _020BFC20 ; =0x00101810
- mov r1, #0x1000
- streq r0, [sp, #0x0]
- mov r0, #0x0
- str r3, [sp, #0x4]
- str r2, [sp, #0x48]
- str r1, [sp, #0x44]
- str r0, [sp, #0x40]
- str r0, [sp, #0x34]
- str r0, [sp, #0x30]
- str r0, [sp, #0x2c]
- str r0, [sp, #0x28]
- str r0, [sp, #0x24]
- str r0, [sp, #0x20]
- str r0, [sp, #0x14]
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x0]
- ands r0, r0, #0x1
- strne r1, [r4, #0x1c]
- ldrne r0, [r4, #0x1c]
- strne r0, [r4, #0x18]
- ldr r0, [r4, #0x0]
- ands r0, r0, #0x2
- movne r0, #0x1000
- strneh r0, [r4, #0x22]
- movne r0, #0x0
- strneh r0, [r4, #0x20]
- ldr r0, [r4, #0x0]
- ands r0, r0, #0x4
- movne r0, #0x0
- strne r0, [r4, #0x28]
- ldrne r0, [r4, #0x28]
- strne r0, [r4, #0x24]
- ldr r1, [r4, #0x0]
- ldr r0, _020BFC24 ; =UNK_021067F0
- and r1, r1, #0x7
- ldr r2, [r0, r1, lsl #0x2]
- add r0, sp, #0x8
- mov r1, r4
- blx r2
- ldr r3, [r4, #0x30]
- cmp r3, #0x1000
- beq _020BFBB0
- ldr r0, [sp, #0x8]
- ldr r1, [sp, #0xc]
- smull r2, r0, r3, r0
- mov r2, r2, lsr #0xc
- orr r2, r2, r0, lsl #0x14
- str r2, [sp, #0x8]
- ldr r2, [r4, #0x30]
- ldr r0, [sp, #0x38]
- smull r3, r1, r2, r1
- mov r2, r3, lsr #0xc
- orr r2, r2, r1, lsl #0x14
- str r2, [sp, #0xc]
- ldr r1, [r4, #0x30]
- smull r2, r0, r1, r0
- mov r1, r2, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- str r1, [sp, #0x38]
-_020BFBB0:
- ldr r3, [r4, #0x34]
- cmp r3, #0x1000
- beq _020BFC00
- ldr r0, [sp, #0x18]
- ldr r1, [sp, #0x1c]
- smull r2, r0, r3, r0
- mov r2, r2, lsr #0xc
- orr r2, r2, r0, lsl #0x14
- str r2, [sp, #0x18]
- ldr r2, [r4, #0x34]
- ldr r0, [sp, #0x3c]
- smull r3, r1, r2, r1
- mov r2, r3, lsr #0xc
- orr r2, r2, r1, lsl #0x14
- str r2, [sp, #0x1c]
- ldr r1, [r4, #0x34]
- smull r2, r0, r1, r0
- mov r1, r2, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- str r1, [sp, #0x3c]
-_020BFC00:
- add r1, sp, #0x0
- ldr r0, [sp, #0x0]
- add r1, r1, #0x4
- mov r2, #0x12
- bl FUN_020BB1C0
- add sp, sp, #0x50
- ldmia sp!, {r4,pc}
- .balign 4
-_020BFC1C: .word 0x00101610
-_020BFC20: .word 0x00101810
-_020BFC24: .word UNK_021067F0
-
- arm_func_start FUN_020BFC28
-FUN_020BFC28: ; 0x020BFC28
- mov r2, #0x1000
- str r2, [r0, #0x0]
- mov r1, #0x0
- str r1, [r0, #0x4]
- str r1, [r0, #0x10]
- str r2, [r0, #0x14]
- str r1, [r0, #0x30]
- str r1, [r0, #0x34]
- bx lr
-
- arm_func_start FUN_020BFC4C
-FUN_020BFC4C: ; 0x020BFC4C
- ldr r2, [r1, #0x18]
- mov r3, #0x0
- str r2, [r0, #0x0]
- ldr r2, [r1, #0x1c]
- str r2, [r0, #0x14]
- str r3, [r0, #0x4]
- str r3, [r0, #0x30]
- ldrh r2, [r1, #0x2e]
- ldr r1, [r1, #0x1c]
- rsb r2, r2, #0x0
- sub r1, r1, #0x1000
- mul r1, r2, r1
- mov r1, r1, lsl #0x4
- str r1, [r0, #0x34]
- str r3, [r0, #0x10]
- bx lr
-
- arm_func_start FUN_020BFC8C
-FUN_020BFC8C: ; 0x020BFC8C
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r5, r1
- ldrh r2, [r5, #0x2c]
- ldrh r1, [r5, #0x2e]
- mov r6, r0
- mov r4, r2, lsl #0xc
- mov r7, r1, lsl #0xc
- mov r0, r7
- mov r1, r4
- bl FX_DivAsync
- ldrsh r0, [r5, #0x22]
- str r0, [r6, #0x0]
- ldrsh r0, [r5, #0x22]
- str r0, [r6, #0x14]
- bl FX_GetDivResult
- ldrsh r2, [r5, #0x20]
- mov r1, r7
- mul r0, r2, r0
- mov r2, r0, asr #0xc
- mov r0, r4
- str r2, [r6, #0x4]
- bl FX_DivAsync
- ldrh r1, [r5, #0x2c]
- ldrsh r0, [r5, #0x20]
- mul r0, r1, r0
- mov r0, r0, lsl #0x4
- str r0, [r6, #0x30]
- ldrh r1, [r5, #0x2e]
- ldrsh r0, [r5, #0x22]
- rsb r1, r1, #0x0
- sub r0, r0, #0x1000
- mul r0, r1, r0
- mov r0, r0, lsl #0x4
- str r0, [r6, #0x34]
- bl FX_GetDivResult
- ldrsh r1, [r5, #0x20]
- rsb r1, r1, #0x0
- mul r0, r1, r0
- mov r0, r0, asr #0xc
- str r0, [r6, #0x10]
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020BFD38
-FUN_020BFD38: ; 0x020BFD38
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x4
- mov r9, r1
- ldrh r2, [r9, #0x2c]
- ldrh r1, [r9, #0x2e]
- mov r10, r0
- mov r8, r2, lsl #0xc
- mov r11, r1, lsl #0xc
- mov r0, r11
- mov r1, r8
- bl FX_DivAsync
- ldrsh r3, [r9, #0x22]
- ldr r0, [r9, #0x18]
- ldrsh r7, [r9, #0x20]
- ldr r5, [r9, #0x1c]
- smull r2, r1, r0, r3
- mov r2, r2, lsr #0xc
- orr r2, r2, r1, lsl #0x14
- str r2, [r10, #0x0]
- smull r2, r1, r5, r3
- mov r4, r2, lsr #0xc
- orr r4, r4, r1, lsl #0x14
- smull r2, r1, r0, r7
- mov r6, r2, lsr #0xc
- orr r6, r6, r1, lsl #0x14
- str r4, [r10, #0x14]
- bl FX_GetDivResult
- smull r2, r1, r5, r7
- mov r2, r2, lsr #0xc
- orr r2, r2, r1, lsl #0x14
- mul r0, r2, r0
- mov r0, r0, asr #0xc
- str r0, [r10, #0x4]
- mov r0, r8
- mov r1, r11
- bl FX_DivAsync
- sub r0, r4, #0x1000
- ldrh r1, [r9, #0x2c]
- mul r2, r1, r6
- mov r1, r2, lsl #0x4
- str r1, [r10, #0x30]
- ldrh r1, [r9, #0x2e]
- rsb r1, r1, #0x0
- mul r0, r1, r0
- mov r0, r0, lsl #0x4
- str r0, [r10, #0x34]
- bl FX_GetDivResult
- rsb r1, r6, #0x0
- mul r0, r1, r0
- mov r0, r0, asr #0xc
- str r0, [r10, #0x10]
- add sp, sp, #0x4
- ldmia sp!, {r4-r11,pc}
-
- arm_func_start FUN_020BFE0C
-FUN_020BFE0C: ; 0x020BFE0C
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r2, #0x1000
- str r2, [r0, #0x0]
- str r2, [r0, #0x14]
- mov lr, #0x0
- str lr, [r0, #0x4]
- ldr r2, [r1, #0x24]
- ldrh r3, [r1, #0x2c]
- rsb r2, r2, #0x0
- ldr r12, [r1, #0x28]
- mul r2, r3, r2
- mov r2, r2, lsl #0x4
- str r2, [r0, #0x30]
- ldrh r1, [r1, #0x2e]
- rsb r2, r12, #0x0
- rsb r1, r1, #0x0
- mul r2, r1, r2
- mov r1, r2, lsl #0x4
- str r1, [r0, #0x34]
- str lr, [r0, #0x10]
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020BFE68
-FUN_020BFE68: ; 0x020BFE68
- stmdb sp!, {r4,lr}
- ldr r3, [r1, #0x18]
- mov r2, #0x0
- str r3, [r0, #0x0]
- ldr r3, [r1, #0x1c]
- str r3, [r0, #0x14]
- str r2, [r0, #0x4]
- ldr r12, [r1, #0x24]
- ldr r3, [r1, #0x18]
- ldr r4, [r1, #0x28]
- smull lr, r3, r12, r3
- mov r12, lr, lsr #0xc
- orr r12, r12, r3, lsl #0x14
- ldrh lr, [r1, #0x2c]
- rsb r3, r12, #0x0
- ldr r12, [r1, #0x1c]
- rsb r4, r4, #0x0
- mul r3, lr, r3
- smull lr, r12, r4, r12
- mov r3, r3, lsl #0x4
- str r3, [r0, #0x30]
- mov r4, lr, lsr #0xc
- ldrh r3, [r1, #0x2e]
- ldr r1, [r1, #0x1c]
- orr r4, r4, r12, lsl #0x14
- add r1, r1, r4
- rsb r3, r3, #0x0
- sub r1, r1, #0x1000
- mul r1, r3, r1
- mov r1, r1, lsl #0x4
- str r1, [r0, #0x34]
- str r2, [r0, #0x10]
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020BFEEC
-FUN_020BFEEC: ; 0x020BFEEC
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r5, r1
- ldrh r2, [r5, #0x2c]
- ldrh r1, [r5, #0x2e]
- mov r6, r0
- mov r4, r2, lsl #0xc
- mov r7, r1, lsl #0xc
- mov r0, r7
- mov r1, r4
- bl FX_DivAsync
- ldrsh r0, [r5, #0x22]
- str r0, [r6, #0x0]
- ldrsh r0, [r5, #0x22]
- str r0, [r6, #0x14]
- bl FX_GetDivResult
- ldrsh r2, [r5, #0x20]
- mov r1, r7
- mul r0, r2, r0
- mov r2, r0, asr #0xc
- mov r0, r4
- str r2, [r6, #0x4]
- bl FX_DivAsync
- ldrsh lr, [r5, #0x20]
- ldr r4, [r5, #0x28]
- ldrsh r0, [r5, #0x22]
- ldr r12, [r5, #0x24]
- smull r3, r2, r4, lr
- smlal r3, r2, r12, r0
- smull r1, r0, r4, r0
- mov r3, r3, lsr #0xc
- orr r3, r3, r2, lsl #0x14
- sub r4, lr, r3
- smull r3, r2, r12, lr
- subs r1, r3, r1
- sbc r0, r2, r0
- ldrh r2, [r5, #0x2c]
- mov r1, r1, lsr #0xc
- orr r1, r1, r0, lsl #0x14
- mul r0, r2, r4
- mov r0, r0, lsl #0x4
- str r0, [r6, #0x30]
- ldrsh r0, [r5, #0x22]
- ldrh r2, [r5, #0x2e]
- add r0, r0, r1
- rsb r1, r2, #0x0
- sub r0, r0, #0x1000
- mul r0, r1, r0
- mov r0, r0, lsl #0x4
- str r0, [r6, #0x34]
- bl FX_GetDivResult
- ldrsh r1, [r5, #0x20]
- rsb r1, r1, #0x0
- mul r0, r1, r0
- mov r0, r0, asr #0xc
- str r0, [r6, #0x10]
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020BFFD4
-FUN_020BFFD4: ; 0x020BFFD4
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x4
- mov r6, r1
- ldrh r2, [r6, #0x2c]
- ldrh r1, [r6, #0x2e]
- mov r7, r0
- mov r10, r2, lsl #0xc
- mov r11, r1, lsl #0xc
- mov r0, r11
- mov r1, r10
- bl FX_DivAsync
- ldrsh r3, [r6, #0x22]
- ldr r0, [r6, #0x18]
- ldrsh r9, [r6, #0x20]
- smull r2, r1, r0, r3
- mov r2, r2, lsr #0xc
- ldr r8, [r6, #0x1c]
- orr r2, r2, r1, lsl #0x14
- str r2, [r7, #0x0]
- smull r2, r1, r8, r3
- mov r4, r2, lsr #0xc
- orr r4, r4, r1, lsl #0x14
- smull r2, r1, r0, r9
- mov r5, r2, lsr #0xc
- orr r5, r5, r1, lsl #0x14
- str r4, [r7, #0x14]
- bl FX_GetDivResult
- smull r2, r1, r8, r9
- mov r2, r2, lsr #0xc
- orr r2, r2, r1, lsl #0x14
- mul r0, r2, r0
- mov r0, r0, asr #0xc
- str r0, [r7, #0x4]
- mov r0, r10
- mov r1, r11
- bl FX_DivAsync
- ldr lr, [r6, #0x1c]
- ldrsh r2, [r6, #0x20]
- ldr r8, [r6, #0x24]
- ldr r0, [r6, #0x28]
- smull r10, r9, r8, r2
- ldrh r1, [r6, #0x2c]
- smull r3, r2, r0, r2
- ldrsh r12, [r6, #0x22]
- str r1, [sp, #0x0]
- mov r11, lr, asr #0x1f
- smlal r3, r2, r8, r12
- smull r8, r12, r0, r12
- subs r8, r10, r8
- sbc r0, r9, r12
- mov r9, r8, lsr #0xc
- mov r12, r3, lsr #0xc
- orr r9, r9, r0, lsl #0x14
- mov r3, r2, asr #0xc
- orr r12, r12, r2, lsl #0x14
- umull r10, r2, r9, lr
- mla r2, r9, r11, r2
- mov r8, r0, asr #0xc
- mla r2, r8, lr, r2
- ldr r1, [r6, #0x18]
- mov r8, r10, lsr #0xc
- orr r8, r8, r2, lsl #0x14
- add r2, r4, r8
- mov r0, r1, asr #0x1f
- umull r8, r4, r12, r1
- mla r4, r12, r0, r4
- mla r4, r3, r1, r4
- mov r0, r8, lsr #0xc
- orr r0, r0, r4, lsl #0x14
- sub r1, r5, r0
- ldr r0, [sp, #0x0]
- sub r2, r2, #0x1000
- mul r1, r0, r1
- mov r0, r1, lsl #0x4
- str r0, [r7, #0x30]
- ldrh r0, [r6, #0x2e]
- rsb r0, r0, #0x0
- mul r1, r0, r2
- mov r0, r1, lsl #0x4
- str r0, [r7, #0x34]
- bl FX_GetDivResult
- rsb r1, r5, #0x0
- mul r0, r1, r0
- mov r0, r0, asr #0xc
- str r0, [r7, #0x10]
- add sp, sp, #0x4
- ldmia sp!, {r4-r11,pc}
-
- arm_func_start FUN_020C0130
-FUN_020C0130: ; 0x020C0130
- ldr ip, _020C0138 ; =FUN_020C187C
- bx r12
- .balign 4
-_020C0138: .word FUN_020C187C
-
- arm_func_start FUN_020C013C
-FUN_020C013C: ; 0x020C013C
- stmdb sp!, {r4,lr}
- bl FUN_020C18F8
- mov r0, #0x0
- mov r1, r0
- mov r2, r0
- mov r3, r0
- bl SND_StopTimer
- bl SND_GetCurrentCommandTag
- mov r4, r0
- mov r0, #0x1
- bl SND_FlushCommand
- mov r0, r4
- bl SND_WaitForCommandProc
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020C0174
-FUN_020C0174: ; 0x020C0174
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- cmp r0, #0x0
- beq _020C0194
- mov r0, #0x40
- bl SND_SetMasterPan
- add sp, sp, #0x4
- ldmia sp!, {pc}
-_020C0194:
- bl SND_ResetMasterPan
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020C01A0
-FUN_020C01A0: ; 0x020C01A0
- stmdb sp!, {r4,lr}
- mov r4, #0x0
-_020C01A8:
- mov r0, r4
- bl SND_RecvCommandReply
- cmp r0, #0x0
- bne _020C01A8
- bl FUN_020C0BA0
- bl FUN_020C1D9C
- bl FUN_020C3C88
- mov r0, #0x0
- bl SND_FlushCommand
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020C01D0
-FUN_020C01D0: ; 0x020C01D0
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r0, _020C0254 ; =UNK_021D1C94
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- addne sp, sp, #0x4
- ldmneia sp!, {pc}
- mov r1, #0x1
- str r1, [r0, #0x0]
- bl SND_Init
- ldr ip, _020C0258 ; =FUN_020C013C
- ldr r0, _020C025C ; =UNK_021D1C98
- mov r3, #0x0
- ldr r1, _020C0260 ; =UNK_021D1CA4
- ldr r2, _020C0264 ; =FUN_020C0130
- str r12, [r0, #0x0]
- str r3, [r0, #0x4]
- str r2, [r1, #0x0]
- str r3, [r1, #0x4]
- bl PM_PrependPreSleepCallback
- ldr r0, _020C0260 ; =UNK_021D1CA4
- bl PM_AppendPostSleepCallback
- bl FUN_020C0270
- bl FUN_020C1E38
- bl FUN_020C0D20
- ldr r1, _020C0268 ; =UNK_021D1C8C
- mvn r3, #0x0
- ldr r0, _020C026C ; =UNK_021D1C90
- mov r2, #0x1
- strb r3, [r1, #0x0]
- str r2, [r0, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020C0254: .word UNK_021D1C94
-_020C0258: .word FUN_020C013C
-_020C025C: .word UNK_021D1C98
-_020C0260: .word UNK_021D1CA4
-_020C0264: .word FUN_020C0130
-_020C0268: .word UNK_021D1C8C
-_020C026C: .word UNK_021D1C90
-
- arm_func_start FUN_020C0270
-FUN_020C0270: ; 0x020C0270
- ldr r2, _020C0290 ; =UNK_021D1CB8
- mov r3, #0x0
- ldr r1, _020C0294 ; =UNK_021D1CB0
- ldr r0, _020C0298 ; =UNK_021D1CB4
- str r3, [r2, #0x0]
- str r3, [r1, #0x0]
- str r3, [r0, #0x0]
- bx lr
- .balign 4
-_020C0290: .word UNK_021D1CB8
-_020C0294: .word UNK_021D1CB0
-_020C0298: .word UNK_021D1CB4
-
- arm_func_start FUN_020C029C
-FUN_020C029C: ; 0x020C029C
- ldr r1, _020C02B8 ; =UNK_021D1CB4
- mov r2, #0x1
- mvn r0, r2, lsl r0
- ldr r2, [r1, #0x0]
- and r0, r2, r0
- str r0, [r1, #0x0]
- bx lr
- .balign 4
-_020C02B8: .word UNK_021D1CB4
-
- arm_func_start FUN_020C02BC
-FUN_020C02BC: ; 0x020C02BC
- ldr r0, _020C02FC ; =UNK_021D1CB4
- mov r3, #0x1
- ldr r2, [r0, #0x0]
- mov r0, #0x0
-_020C02CC:
- ands r1, r2, r3
- ldreq r1, _020C02FC ; =UNK_021D1CB4
- ldreq r2, [r1, #0x0]
- orreq r2, r2, r3
- streq r2, [r1, #0x0]
- bxeq lr
- add r0, r0, #0x1
- cmp r0, #0x8
- mov r3, r3, lsl #0x1
- blt _020C02CC
- mvn r0, #0x0
- bx lr
- .balign 4
-_020C02FC: .word UNK_021D1CB4
-
- arm_func_start FUN_020C0300
-FUN_020C0300: ; 0x020C0300
- ldr r1, _020C0318 ; =UNK_021D1CB0
- mvn r0, r0
- ldr r2, [r1, #0x0]
- and r0, r2, r0
- str r0, [r1, #0x0]
- bx lr
- .balign 4
-_020C0318: .word UNK_021D1CB0
-
- arm_func_start FUN_020C031C
-FUN_020C031C:
- ldr r1, _020C033C ; =UNK_021D1CB0
- ldr r2, [r1, #0x0]
- ands r3, r0, r2
- movne r0, #0x0
- orreq r0, r2, r0
- streq r0, [r1, #0x0]
- moveq r0, #0x1
- bx lr
- .balign 4
-_020C033C: .word UNK_021D1CB0
-
- arm_func_start FUN_020C0340
-FUN_020C0340:
- stmdb sp!, {r4,lr}
- movs r4, r0
- ldmeqia sp!, {r4,pc}
- mov r1, #0x0
- bl SND_UnlockChannel
- ldr r0, _020C036C ; =UNK_021D1CB8
- mvn r1, r4
- ldr r2, [r0, #0x0]
- and r1, r2, r1
- str r1, [r0, #0x0]
- ldmia sp!, {r4,pc}
- .balign 4
-_020C036C: .word UNK_021D1CB8
-
- arm_func_start FUN_020C0370
-FUN_020C0370:
- stmdb sp!, {r4,lr}
- movs r4, r0
- moveq r0, #0x1
- ldmeqia sp!, {r4,pc}
- ldr r1, _020C03B4 ; =UNK_021D1CB8
- ldr r1, [r1, #0x0]
- ands r1, r4, r1
- movne r0, #0x0
- ldmneia sp!, {r4,pc}
- mov r1, #0x0
- bl SND_LockChannel
- ldr r1, _020C03B4 ; =UNK_021D1CB8
- mov r0, #0x1
- ldr r2, [r1, #0x0]
- orr r2, r2, r4
- str r2, [r1, #0x0]
- ldmia sp!, {r4,pc}
- .balign 4
-_020C03B4: .word UNK_021D1CB8
-
- arm_func_start FUN_020C03B8
-FUN_020C03B8: ; 0x020C03B8
- stmdb sp!, {r4,lr}
- mov r4, r0
- ldr r0, [r4, #0x8]
- cmp r0, #0x0
- moveq r0, #0x0
- ldmeqia sp!, {r4,pc}
- ldr r0, [r4, #0xc]
- cmp r0, #0x0
- bne _020C03F8
- ldr r0, [r4, #0x10]
- bl SND_IsFinishedCommandTag
- cmp r0, #0x0
- moveq r0, #0x1
- ldmeqia sp!, {r4,pc}
- mov r0, #0x1
- str r0, [r4, #0xc]
-_020C03F8:
- bl SND_GetChannelStatus
- ldr r1, [r4, #0x0]
- mov r2, #0x1
- mov r1, r2, lsl r1
- ands r0, r1, r0
- movne r0, r2
- moveq r0, #0x0
- streq r0, [r4, #0x8]
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020C041C
-FUN_020C041C: ; 0x020C041C
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r2, [r0, #0x8]
- cmp r2, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {pc}
- ldr r0, [r0, #0x0]
- mov r2, #0x1
- mov r0, r2, lsl r0
- bl SND_SetChannelPan
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020C044C
-FUN_020C044C: ; 0x020C044C
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- ldr r0, [r5, #0x8]
- mov r4, r1
- cmp r0, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r5,pc}
- ldr r2, [r5, #0x4]
- ldr r0, _020C04D4 ; =0xD87F8000
- mov r3, r2, asr #0x1f
- mov r1, #0x7f
- bl _ll_udiv
- mov r2, r4
- mov r3, r4, asr #0x1f
- bl _ll_udiv
- mov r2, #0x0
- mov r3, r0
- mov r0, #0x10
- cmp r1, r2
- cmpeq r3, r0
- movcc r3, r0
- blo _020C04B8
- ldr r0, _020C04D8 ; =0x0000FFFF
- cmp r1, r2
- cmpeq r3, r0
- movhi r3, r0
-_020C04B8:
- ldr r0, [r5, #0x0]
- mov r1, #0x1
- mov r0, r1, lsl r0
- mov r1, r3
- bl SND_SetChannelTimer
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020C04D4: .word 0xD87F8000
-_020C04D8: .word 0x0000FFFF
-
- arm_func_start FUN_020C04DC
-FUN_020C04DC: ; 0x020C04DC
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r2, [r0, #0x8]
- cmp r2, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {pc}
- ldr r0, [r0, #0x0]
- mov r2, #0x1
- mov r0, r2, lsl r0
- mov r2, #0x0
- bl SND_SetChannelVolume
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020C0510
-FUN_020C0510: ; 0x020C0510
- stmdb sp!, {r4,lr}
- mov r4, r0
- ldr r0, [r4, #0x8]
- cmp r0, #0x0
- ldmeqia sp!, {r4,pc}
- ldr r0, [r4, #0x0]
- mov r2, #0x1
- mov r1, #0x0
- mov r0, r2, lsl r0
- mov r2, r1
- mov r3, r1
- bl SND_StopTimer
- mov r0, #0x0
- str r0, [r4, #0x8]
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020C054C
-FUN_020C054C: ; 0x020C054C
- stmdb sp!, {r4-r9,lr}
- sub sp, sp, #0x1c
- movs r8, r1
- mov r9, r0
- mov r7, r2
- mov r6, r3
- beq _020C0584
- cmp r8, #0x1
- ldreq r0, [sp, #0x3c]
- ldreq r1, [sp, #0x38]
- moveq r0, r0, asr #0x1
- moveq r5, r1, asr #0x1
- subeq r4, r0, r1, asr #0x1
- b _020C0598
-_020C0584:
- ldr r0, [sp, #0x3c]
- ldr r1, [sp, #0x38]
- mov r0, r0, asr #0x2
- mov r5, r1, asr #0x2
- sub r4, r0, r1, asr #0x2
-_020C0598:
- ldr r2, [sp, #0x40]
- ldr r0, _020C0668 ; =0xD87F8000
- mov r3, r2, asr #0x1f
- mov r1, #0x7f
- bl _ll_udiv
- ldr r2, [sp, #0x48]
- mov r3, r2, asr #0x1f
- bl _ll_udiv
- mov r3, #0x0
- mov r2, #0x10
- cmp r1, r3
- cmpeq r0, r2
- movcc r0, r2
- blo _020C05E0
- ldr r2, _020C066C ; =0x0000FFFF
- cmp r1, r3
- cmpeq r0, r2
- movhi r0, r2
-_020C05E0:
- str r5, [sp, #0x0]
- ldr r1, [sp, #0x44]
- str r4, [sp, #0x4]
- str r1, [sp, #0x8]
- mov r1, #0x0
- str r1, [sp, #0xc]
- cmp r6, #0x0
- movne r3, #0x1
- ldr r1, [sp, #0x4c]
- str r0, [sp, #0x10]
- str r1, [sp, #0x14]
- ldr r0, [r9, #0x0]
- moveq r3, #0x2
- mov r1, r8
- mov r2, r7
- bl SND_SetupChannelPcm
- mov r1, #0x0
- ldr r0, [r9, #0x0]
- mov r2, #0x1
- mov r0, r2, lsl r0
- mov r2, r1
- mov r3, r1
- bl SND_StartTimer
- mov r0, #0x1
- str r0, [r9, #0x8]
- mov r0, #0x0
- str r0, [r9, #0xc]
- bl SND_GetCurrentCommandTag
- str r0, [r9, #0x10]
- ldr r1, [sp, #0x40]
- mov r0, #0x1
- str r1, [r9, #0x4]
- add sp, sp, #0x1c
- ldmia sp!, {r4-r9,pc}
- .balign 4
-_020C0668: .word 0xD87F8000
-_020C066C: .word 0x0000FFFF
-
- arm_func_start FUN_020C0670
-FUN_020C0670: ; 0x020C0670
- ldr r0, [r0, #0x0]
- mov r1, #0x1
- ldr ip, _020C0684 ; =FUN_020C0340
- mov r0, r1, lsl r0
- bx r12
- .balign 4
-_020C0684: .word FUN_020C0340
-
- arm_func_start FUN_020C0688
-FUN_020C0688: ; 0x020C0688
- stmdb sp!, {r4,lr}
- mov r4, r0
- mov r0, #0x1
- mov r0, r0, lsl r4
- bl FUN_020C0370
- cmp r0, #0x0
- moveq r0, #0x0
- ldmeqia sp!, {r4,pc}
- mov r0, #0x14
- mul r0, r4, r0
- ldr r2, _020C06C8 ; =UNK_021D1CBC
- mov r1, #0x0
- str r4, [r2, r0]
- add r0, r2, r0
- str r1, [r0, #0x8]
- ldmia sp!, {r4,pc}
- .balign 4
-_020C06C8: .word UNK_021D1CBC
-
- arm_func_start FUN_020C06CC
-FUN_020C06CC: ; 0x020C06CC
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- ldr r4, [r6, #0x4]
- mov r5, r1
- cmp r4, #0x0
- beq _020C06F8
- mov r0, r4
- mov r1, r6
- bl FUN_020ADAB0
- mov r0, #0x0
- str r0, [r6, #0x4]
-_020C06F8:
- ldr r0, _020C0728 ; =UNK_021D1E08
- mov r1, r6
- bl FUN_020ADAB0
- strb r5, [r6, #0x3d]
- cmp r4, #0x0
- beq _020C071C
- mov r0, r4
- mov r1, r6
- bl FUN_020C0910
-_020C071C:
- mov r0, r6
- bl FUN_020C08B4
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020C0728: .word UNK_021D1E08
-
- arm_func_start FUN_020C072C
-FUN_020C072C: ; 0x020C072C
- stmdb sp!, {r4,lr}
- mov r4, r0
- ldr r0, [r4, #0x8]
- cmp r0, #0x0
- ldmeqia sp!, {r4,pc}
- bl FUN_020C2A7C
- ldr r1, [r4, #0xc]
- cmp r1, #0x0
- movne r0, #0x0
- strne r0, [r1, #0x8]
- ldmneia sp!, {r4,pc}
- ldr r1, [r4, #0x10]
- ldr r2, _020C0778 ; =UNK_021D2254
- mov r0, #0x24
- mla r0, r1, r0, r2
- mov r1, r4
- add r0, r0, #0xc
- bl FUN_020ADAB0
- ldmia sp!, {r4,pc}
- .balign 4
-_020C0778: .word UNK_021D2254
-
- arm_func_start FUN_020C077C
-FUN_020C077C: ; 0x020C077C
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r4, r0
- ldr r1, [r4, #0x0]
- cmp r1, #0x0
- movne r0, #0x0
- strne r0, [r1, #0x0]
- strne r0, [r4, #0x0]
- ldr r5, [r4, #0x4]
- mov r1, r4
- mov r0, r5
- bl FUN_020ADAB0
- mov r0, #0x0
- str r0, [r4, #0x4]
- ldr r1, [r4, #0x8]
- cmp r1, #0x0
- beq _020C07D8
- add r0, r5, #0xc
- bl FUN_020ADBE8
- ldr r0, [r4, #0x8]
- mov r1, #0x0
- str r1, [r0, #0xc]
- str r1, [r4, #0x8]
-_020C07D8:
- ldr r0, _020C0800 ; =UNK_021D1E08
- mov r1, r4
- bl FUN_020ADAB0
- ldr r0, _020C0804 ; =UNK_021D1DFC
- mov r1, r4
- bl FUN_020ADBE8
- mov r0, #0x0
- strb r0, [r4, #0x2c]
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020C0800: .word UNK_021D1E08
-_020C0804: .word UNK_021D1DFC
-
- arm_func_start FUN_020C0808
-FUN_020C0808: ; 0x020C0808
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- ldr r0, _020C0874 ; =UNK_021D1DFC
- mov r1, #0x0
- bl FUN_020ADA98
- movs r4, r0
- bne _020C0850
- ldr r0, _020C0878 ; =UNK_021D1E08
- mov r1, #0x0
- bl FUN_020ADA98
- mov r4, r0
- ldrb r1, [r4, #0x3d]
- cmp r5, r1
- addlt sp, sp, #0x4
- movlt r0, #0x0
- ldmltia sp!, {r4-r5,pc}
- bl FUN_020C087C
-_020C0850:
- ldr r0, _020C0874 ; =UNK_021D1DFC
- mov r1, r4
- bl FUN_020ADAB0
- mov r0, r4
- strb r5, [r4, #0x3d]
- bl FUN_020C08B4
- mov r0, r4
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020C0874: .word UNK_021D1DFC
-_020C0878: .word UNK_021D1E08
-
- arm_func_start FUN_020C087C
-FUN_020C087C: ; 0x020C087C
- stmdb sp!, {r4,lr}
- mov r4, r0
- ldrb r0, [r4, #0x2c]
- cmp r0, #0x2
- bne _020C089C
- ldrb r0, [r4, #0x3c]
- ldr r1, _020C08B0 ; =0xFFFFFD2D
- bl SND_SetPlayerVolume
-_020C089C:
- ldrb r0, [r4, #0x3c]
- bl SND_StopSeq
- mov r0, r4
- bl FUN_020C077C
- ldmia sp!, {r4,pc}
- .balign 4
-_020C08B0: .word 0xFFFFFD2D
-
- arm_func_start FUN_020C08B4
-FUN_020C08B4: ; 0x020C08B4
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- ldr r0, _020C090C ; =UNK_021D1E08
- mov r1, #0x0
- bl FUN_020ADA98
- movs r1, r0
- beq _020C08F8
- ldr r4, _020C090C ; =UNK_021D1E08
-_020C08D8:
- ldrb r2, [r5, #0x3d]
- ldrb r0, [r1, #0x3d]
- cmp r2, r0
- blo _020C08F8
- mov r0, r4
- bl FUN_020ADA98
- movs r1, r0
- bne _020C08D8
-_020C08F8:
- ldr r0, _020C090C ; =UNK_021D1E08
- mov r2, r5
- bl FUN_020ADB18
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020C090C: .word UNK_021D1E08
-
- arm_func_start FUN_020C0910
-FUN_020C0910: ; 0x020C0910
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r4, r1
- mov r1, #0x0
- mov r5, r0
- bl FUN_020ADA98
- movs r1, r0
- beq _020C0950
-_020C0930:
- ldrb r2, [r4, #0x3d]
- ldrb r0, [r1, #0x3d]
- cmp r2, r0
- blo _020C0950
- mov r0, r5
- bl FUN_020ADA98
- movs r1, r0
- bne _020C0930
-_020C0950:
- mov r0, r5
- mov r2, r4
- bl FUN_020ADB18
- str r5, [r4, #0x4]
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020C0968
-FUN_020C0968: ; 0x020C0968
- stmdb sp!, {r4,lr}
- mov r4, r0
- mov r0, #0x0
- strb r0, [r4, #0x2e]
- strb r0, [r4, #0x2d]
- strb r0, [r4, #0x2f]
- strh r0, [r4, #0x34]
- strh r0, [r4, #0x3e]
- mov r1, #0x7f
- strb r1, [r4, #0x40]
- add r0, r4, #0x1c
- strb r1, [r4, #0x41]
- bl FUN_020C3E6C
- add r0, r4, #0x1c
- mov r1, #0x7f00
- mov r2, #0x1
- bl FUN_020C3E40
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020C09B0
-FUN_020C09B0: ; 0x020C09B0
- stmdb sp!, {r4-r6,lr}
- ldr r3, _020C0A00 ; =UNK_021D2254
- mov r2, #0x24
- mla r5, r0, r2, r3
- mov r6, r1
- add r0, r5, #0xc
- mov r1, #0x0
- bl FUN_020ADA98
- movs r4, r0
- moveq r0, #0x0
- ldmeqia sp!, {r4-r6,pc}
- mov r1, r4
- add r0, r5, #0xc
- bl FUN_020ADAB0
- str r6, [r4, #0xc]
- str r4, [r6, #0x8]
- ldr r0, [r4, #0x8]
- bl FUN_020C29C0
- ldr r0, [r4, #0x8]
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020C0A00: .word UNK_021D2254
-
- arm_func_start FUN_020C0A04
-FUN_020C0A04: ; 0x020C0A04
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- movs r5, r0
- mov r4, r1
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r5,pc}
- ldrb r0, [r5, #0x2e]
- cmp r4, r0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r5,pc}
- ldrb r0, [r5, #0x3c]
- bl SND_PauseSeq
- strb r4, [r5, #0x2e]
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020C0A40
-FUN_020C0A40: ; 0x020C0A40
- stmdb sp!, {r4,lr}
- movs r4, r0
- mov r2, r1
- ldmeqia sp!, {r4,pc}
- ldrb r1, [r4, #0x2c]
- cmp r1, #0x0
- ldmeqia sp!, {r4,pc}
- cmp r2, #0x0
- bne _020C0A6C
- bl FUN_020C087C
- ldmia sp!, {r4,pc}
-_020C0A6C:
- add r0, r4, #0x1c
- mov r1, #0x0
- bl FUN_020C3E40
- mov r0, r4
- mov r1, #0x0
- bl FUN_020C06CC
- mov r0, #0x2
- strb r0, [r4, #0x2c]
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020C0A90
-FUN_020C0A90: ; 0x020C0A90
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- ldrb r0, [r5, #0x3c]
- ldr r4, [r5, #0x4]
- bl SND_PrepareSeq
- ldr r2, [r4, #0x1c]
- cmp r2, #0x0
- beq _020C0AC0
- ldrb r0, [r5, #0x3c]
- ldr r1, _020C0AE4 ; =0x0000FFFF
- bl SND_SetTrackAllocatableChannel
-_020C0AC0:
- mov r0, r5
- bl FUN_020C0968
- bl SND_GetCurrentCommandTag
- str r0, [r5, #0x30]
- mov r0, #0x1
- strb r0, [r5, #0x2f]
- strb r0, [r5, #0x2c]
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020C0AE4: .word 0x0000FFFF
-
- arm_func_start thunk_FUN_020c077c
-thunk_FUN_020c077c: ; 0x020C0AE8
- ldr ip, _020C0AF0 ; =FUN_020C077C
- bx r12
- .balign 4
-_020C0AF0: .word FUN_020C077C
-
- arm_func_start FUN_020C0AF4
-FUN_020C0AF4: ; 0x020C0AF4
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- ldr ip, _020C0B9C ; =UNK_021D2254
- mov r3, #0x24
- mov r4, r0
- ldr r5, [r4, #0x0]
- mla r6, r1, r3, r12
- mov r7, r2
- cmp r5, #0x0
- beq _020C0B20
- bl FUN_020C0F68
-_020C0B20:
- ldrh r1, [r6, #0x8]
- ldr r0, [r6, #0x18]
- cmp r1, r0
- blo _020C0B64
- mov r0, r6
- mov r1, #0x0
- bl FUN_020ADA98
- cmp r0, #0x0
- addeq sp, sp, #0x4
- moveq r0, #0x0
- ldmeqia sp!, {r4-r7,pc}
- ldrb r1, [r0, #0x3d]
- cmp r7, r1
- addlt sp, sp, #0x4
- movlt r0, #0x0
- ldmltia sp!, {r4-r7,pc}
- bl FUN_020C087C
-_020C0B64:
- mov r0, r7
- bl FUN_020C0808
- movs r5, r0
- addeq sp, sp, #0x4
- moveq r0, #0x0
- ldmeqia sp!, {r4-r7,pc}
- mov r0, r6
- mov r1, r5
- bl FUN_020C0910
- str r4, [r5, #0x0]
- mov r0, r5
- str r5, [r4, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020C0B9C: .word UNK_021D2254
-
- arm_func_start FUN_020C0BA0
-FUN_020C0BA0: ; 0x020C0BA0
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0xc
- bl SND_GetPlayerStatus
- str r0, [sp, #0x0]
- ldr r0, _020C0D14 ; =UNK_021D1E08
- mov r1, #0x0
- bl FUN_020ADA98
- movs r10, r0
- addeq sp, sp, #0xc
- ldmeqia sp!, {r4-r11,pc}
- mov r0, #0x8000
- rsb r0, r0, #0x0
- ldr r4, _020C0D18 ; =UNK_02103BAC
- str r0, [sp, #0x4]
- mov r5, #0x1
- mov r11, #0x0
-_020C0BE0:
- ldr r0, _020C0D14 ; =UNK_021D1E08
- mov r1, r10
- bl FUN_020ADA98
- ldrb r1, [r10, #0x2d]
- mov r9, r0
- cmp r1, #0x0
- bne _020C0C0C
- ldr r0, [r10, #0x30]
- bl SND_IsFinishedCommandTag
- cmp r0, #0x0
- strneb r5, [r10, #0x2d]
-_020C0C0C:
- ldrb r0, [r10, #0x2d]
- cmp r0, #0x0
- beq _020C0C38
- ldrb r0, [r10, #0x3c]
- mov r1, r5, lsl r0
- ldr r0, [sp, #0x0]
- ands r0, r0, r1
- bne _020C0C38
- mov r0, r10
- bl FUN_020C077C
- b _020C0D00
-_020C0C38:
- add r0, r10, #0x1c
- bl FUN_020C3DF4
- ldr r0, [r10, #0x4]
- ldrb r2, [r10, #0x41]
- ldrb r1, [r10, #0x40]
- ldrb r0, [r0, #0x20]
- mov r3, r2, lsl #0x1
- mov r2, r1, lsl #0x1
- mov r1, r0, lsl #0x1
- add r0, r10, #0x1c
- ldrsh r8, [r4, r3]
- ldrsh r7, [r4, r2]
- ldrsh r6, [r4, r1]
- bl FUN_020C3E0C
- mov r0, r0, asr #0x8
- mov r2, r0, lsl #0x1
- add r1, r7, r8
- mov r0, #0x8000
- ldrsh r2, [r4, r2]
- add r1, r6, r1
- rsb r0, r0, #0x0
- add r6, r2, r1
- cmp r6, r0
- ldrlt r6, [sp, #0x4]
- blt _020C0CA8
- ldr r0, _020C0D1C ; =0x00007FFF
- cmp r6, r0
- movgt r6, r0
-_020C0CA8:
- ldrsh r0, [r10, #0x3e]
- cmp r6, r0
- beq _020C0CC4
- ldrb r0, [r10, #0x3c]
- mov r1, r6
- bl SND_SetPlayerVolume
- strh r6, [r10, #0x3e]
-_020C0CC4:
- ldrb r0, [r10, #0x2c]
- cmp r0, #0x2
- bne _020C0CE8
- add r0, r10, #0x1c
- bl FUN_020C3DDC
- cmp r0, #0x0
- beq _020C0CE8
- mov r0, r10
- bl FUN_020C087C
-_020C0CE8:
- ldrb r0, [r10, #0x2f]
- cmp r0, #0x0
- beq _020C0D00
- ldrb r0, [r10, #0x3c]
- bl SND_StartPreparedSeq
- strb r11, [r10, #0x2f]
-_020C0D00:
- mov r10, r9
- cmp r9, #0x0
- bne _020C0BE0
- add sp, sp, #0xc
- ldmia sp!, {r4-r11,pc}
- .balign 4
-_020C0D14: .word UNK_021D1E08
-_020C0D18: .word UNK_02103BAC
-_020C0D1C: .word 0x00007FFF
-
- arm_func_start FUN_020C0D20
-FUN_020C0D20: ; 0x020C0D20
- stmdb sp!, {r4-r10,lr}
- ldr r0, _020C0DC4 ; =UNK_021D1E08
- mov r1, #0x14
- bl FUN_020ADC74
- ldr r0, _020C0DC8 ; =UNK_021D1DFC
- mov r1, #0x14
- bl FUN_020ADC74
- ldr r6, _020C0DCC ; =UNK_021D1E14
- mov r7, #0x0
- ldr r4, _020C0DC8 ; =UNK_021D1DFC
- mov r5, r7
-_020C0D4C:
- strb r5, [r6, #0x2c]
- mov r0, r4
- mov r1, r6
- strb r7, [r6, #0x3c]
- bl FUN_020ADBE8
- add r7, r7, #0x1
- cmp r7, #0x10
- add r6, r6, #0x44
- blt _020C0D4C
- ldr sl, _020C0DD0 ; =UNK_021D2254
- mov r9, #0x0
- mov r7, r9
- mov r4, r9
- mov r8, #0xc
- mov r6, #0x7f
- mov r5, #0x1
-_020C0D8C:
- mov r0, r10
- mov r1, r8
- bl FUN_020ADC74
- mov r1, r7
- add r0, r10, #0xc
- bl FUN_020ADC74
- strb r6, [r10, #0x20]
- str r5, [r10, #0x18]
- add r9, r9, #0x1
- str r4, [r10, #0x1c]
- cmp r9, #0x20
- add r10, r10, #0x24
- blt _020C0D8C
- ldmia sp!, {r4-r10,pc}
- .balign 4
-_020C0DC4: .word UNK_021D1E08
-_020C0DC8: .word UNK_021D1DFC
-_020C0DCC: .word UNK_021D1E14
-_020C0DD0: .word UNK_021D2254
-
- arm_func_start FUN_020C0DD4
-FUN_020C0DD4: ; 0x020C0DD4
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- addeq sp, sp, #0x4
- moveq r0, #0x0
- ldmeqia sp!, {pc}
- ldrb r0, [r1, #0x2d]
- cmp r0, #0x0
- addeq sp, sp, #0x4
- moveq r0, #0x0
- ldmeqia sp!, {pc}
- ldrb r0, [r1, #0x3c]
- bl SND_GetPlayerTickCounter
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020C0E14
-FUN_020C0E14: ; 0x020C0E14
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- mvneq r0, #0x0
- bxeq lr
- ldrh r0, [r1, #0x34]
- cmp r0, #0x1
- mvnne r0, #0x0
- ldreqh r0, [r1, #0x38]
- bx lr
-
- arm_func_start FUN_020C0E38
-FUN_020C0E38: ; 0x020C0E38
- ldr r12, [r0, #0x0]
- cmp r12, #0x0
- bxeq lr
- mov r3, #0x2
- strh r3, [r12, #0x34]
- ldr r3, [r0, #0x0]
- strh r1, [r3, #0x38]
- ldr r0, [r0, #0x0]
- strh r2, [r0, #0x3a]
- bx lr
-
- arm_func_start FUN_020C0E60
-FUN_020C0E60: ; 0x020C0E60
- ldr r3, [r0, #0x0]
- cmp r3, #0x0
- movne r2, #0x1
- strneh r2, [r3, #0x34]
- ldrne r0, [r0, #0x0]
- strneh r1, [r0, #0x38]
- bx lr
-
- arm_func_start FUN_020C0E7C
-FUN_020C0E7C: ; 0x020C0E7C
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {pc}
- ldrb r0, [r0, #0x3c]
- bl SND_SetTrackPan
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020C0EA4
-FUN_020C0EA4: ; 0x020C0EA4
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {pc}
- ldrb r0, [r0, #0x3c]
- bl SND_SetTrackPitch
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020C0ECC
-FUN_020C0ECC: ; 0x020C0ECC
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {pc}
- ldrb r0, [r0, #0x3c]
- bl SND_SetPlayerChannelPriority
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020C0EF4
-FUN_020C0EF4: ; 0x020C0EF4
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r3, [r0, #0x0]
- cmp r3, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {pc}
- ldrb r0, [r3, #0x2c]
- cmp r0, #0x2
- addeq sp, sp, #0x4
- ldmeqia sp!, {pc}
- add r0, r3, #0x1c
- mov r1, r1, lsl #0x8
- bl FUN_020C3E40
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020C0F30
-FUN_020C0F30: ; 0x020C0F30
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- strneb r1, [r0, #0x40]
- bx lr
-
- arm_func_start FUN_020C0F40
-FUN_020C0F40: ; 0x020C0F40
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- strneb r1, [r0, #0x41]
- bx lr
-
- arm_func_start FUN_020C0F50
-FUN_020C0F50: ; 0x020C0F50
- mov r1, #0x24
- mul r1, r0, r1
- ldr r0, _020C0F64 ; =UNK_021D225C
- ldrh r0, [r0, r1]
- bx lr
- .balign 4
-_020C0F64: .word UNK_021D225C
-
- arm_func_start FUN_020C0F68
-FUN_020C0F68: ; 0x020C0F68
- ldr r2, [r0, #0x0]
- cmp r2, #0x0
- movne r1, #0x0
- strne r1, [r2, #0x0]
- strne r1, [r0, #0x0]
- bx lr
-
- arm_func_start FUN_020C0F80
-FUN_020C0F80: ; 0x020C0F80
- mov r1, #0x0
- str r1, [r0, #0x0]
- bx lr
-
- arm_func_start FUN_020C0F8C
-FUN_020C0F8C: ; 0x020C0F8C
- ldr ip, _020C0F98 ; =FUN_020C0A04
- ldr r0, [r0, #0x0]
- bx r12
- .balign 4
-_020C0F98: .word FUN_020C0A04
-
- arm_func_start FUN_020C0F9C
-FUN_020C0F9C: ; 0x020C0F9C
- stmdb sp!, {r4-r6,lr}
- ldr r4, _020C0FD8 ; =UNK_021D1E14
- mov r6, r0
- mov r5, #0x0
-_020C0FAC:
- ldrb r0, [r4, #0x2c]
- cmp r0, #0x0
- beq _020C0FC4
- mov r0, r4
- mov r1, r6
- bl FUN_020C0A40
-_020C0FC4:
- add r5, r5, #0x1
- cmp r5, #0x10
- add r4, r4, #0x44
- blt _020C0FAC
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020C0FD8: .word UNK_021D1E14
-
- arm_func_start FUN_020C0FDC
-FUN_020C0FDC: ; 0x020C0FDC
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- ldr r4, _020C103C ; =UNK_021D1E14
- mov r7, r0
- mov r6, r1
- mov r5, #0x0
-_020C0FF4:
- ldrb r0, [r4, #0x2c]
- cmp r0, #0x0
- beq _020C1024
- ldrh r0, [r4, #0x34]
- cmp r0, #0x1
- bne _020C1024
- ldrh r0, [r4, #0x38]
- cmp r0, r7
- bne _020C1024
- mov r0, r4
- mov r1, r6
- bl FUN_020C0A40
-_020C1024:
- add r5, r5, #0x1
- cmp r5, #0x10
- add r4, r4, #0x44
- blt _020C0FF4
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020C103C: .word UNK_021D1E14
-
- arm_func_start FUN_020C1040
-FUN_020C1040: ; 0x020C1040
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- ldr r3, _020C109C ; =UNK_021D2254
- mov r2, #0x24
- mla r4, r0, r2, r3
- ldr r5, _020C10A0 ; =UNK_021D1E14
- mov r7, r1
- mov r6, #0x0
-_020C1060:
- ldrb r0, [r5, #0x2c]
- cmp r0, #0x0
- beq _020C1084
- ldr r0, [r5, #0x4]
- cmp r0, r4
- bne _020C1084
- mov r0, r5
- mov r1, r7
- bl FUN_020C0A40
-_020C1084:
- add r6, r6, #0x1
- cmp r6, #0x10
- add r5, r5, #0x44
- blt _020C1060
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020C109C: .word UNK_021D2254
-_020C10A0: .word UNK_021D1E14
-
- arm_func_start FUN_020C10A4
-FUN_020C10A4: ; 0x020C10A4
- ldr ip, _020C10B0 ; =FUN_020C0A40
- ldr r0, [r0, #0x0]
- bx r12
- .balign 4
-_020C10B0: .word FUN_020C0A40
-
- arm_func_start FUN_020C10B4
-FUN_020C10B4:
- stmdb sp!, {r4-r6,lr}
- sub sp, sp, #0x8
- mov r5, r2
- mov r6, r0
- mov r0, r1
- mov r3, #0x0
- ldr r2, _020C1140 ; =FUN_020C072C
- add r1, r5, #0x14
- str r3, [sp, #0x0]
- bl FUN_020C2958
- movs r4, r0
- addeq sp, sp, #0x8
- moveq r0, #0x0
- ldmeqia sp!, {r4-r6,pc}
- mov r2, #0x0
- str r2, [r4, #0xc]
- str r6, [r4, #0x10]
- mov r1, r5
- add r0, r4, #0x14
- str r2, [r4, #0x8]
- bl FUN_020C2A94
- cmp r0, #0x0
- addeq sp, sp, #0x8
- moveq r0, #0x0
- ldmeqia sp!, {r4-r6,pc}
- ldr r2, _020C1144 ; =UNK_021D2254
- mov r1, #0x24
- mla r2, r6, r1, r2
- str r0, [r4, #0x8]
- mov r1, r4
- add r0, r2, #0xc
- bl FUN_020ADBE8
- mov r0, #0x1
- add sp, sp, #0x8
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020C1140: .word FUN_020C072C
-_020C1144: .word UNK_021D2254
-
- arm_func_start FUN_020C1148
-FUN_020C1148: ; 0x020C1148
- mov r2, #0x24
- mul r2, r0, r2
- ldr r0, _020C115C ; =UNK_021D2270
- str r1, [r0, r2]
- bx lr
- .balign 4
-_020C115C: .word UNK_021D2270
-
- arm_func_start FUN_020C1160
-FUN_020C1160: ; 0x020C1160
- mov r2, #0x24
- mul r2, r0, r2
- mov r0, r1, lsl #0x10
- ldr r1, _020C117C ; =UNK_021D226C
- mov r0, r0, lsr #0x10
- str r0, [r1, r2]
- bx lr
- .balign 4
-_020C117C: .word UNK_021D226C
-
- arm_func_start FUN_020C1180
-FUN_020C1180: ; 0x020C1180
- mov r2, #0x24
- mul r2, r0, r2
- ldr r0, _020C1194 ; =UNK_021D2274
- strb r1, [r0, r2]
- bx lr
- .balign 4
-_020C1194: .word UNK_021D2274
-
- arm_func_start FUN_020C1198
-FUN_020C1198: ; 0x020C1198
- stmdb sp!, {r4-r6,lr}
- mov r4, r0
- ldr r0, [r4, #0x24]
- mov r0, r0, lsl #0x1e
- movs r0, r0, asr #0x1f
- ldmeqia sp!, {r4-r6,pc}
- ldr r0, [r4, #0x38]
- cmp r0, #0x0
- beq _020C11E8
- mov r5, #0x1
-_020C11C0:
- bl OS_DisableInterrupts
- mov r6, r0
- mov r0, r4
- mov r1, r5
- bl FUN_020C1254
- mov r0, r6
- bl OS_RestoreInterrupts
- ldr r0, [r4, #0x38]
- cmp r0, #0x0
- bne _020C11C0
-_020C11E8:
- ldr r0, [r4, #0x40]
- mov r2, #0x1
- mov r1, #0x0
- mov r2, r2, lsl r0
- ldr r0, [r4, #0x44]
- mov r3, r1
- bl SND_StartTimer
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020C1208
-FUN_020C1208: ; 0x020C1208
- stmdb sp!, {r4,lr}
- ldr r1, [r0, #0x24]
- mov r1, r1, lsl #0x1e
- movs r1, r1, asr #0x1f
- ldmeqia sp!, {r4,pc}
- ldr r2, [r0, #0x40]
- mov r3, #0x1
- mov r1, #0x0
- mov r2, r3, lsl r2
- ldr r0, [r0, #0x44]
- mov r3, r1
- bl SND_StopTimer
- bl SND_GetCurrentCommandTag
- mov r4, r0
- mov r0, #0x1
- bl SND_FlushCommand
- mov r0, r4
- bl SND_WaitForCommandProc
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020C1254
-FUN_020C1254: ; 0x020C1254
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0xc
- mov r5, r0
- mov r4, r1
- ldr r0, [r5, #0x28]
- ldr r1, [r5, #0x2c]
- bl _u32_div_f
- ldr r1, [r5, #0x48]
- ldr r2, [r5, #0x38]
- mov r3, r0
- mul lr, r3, r2
- cmp r1, #0x0
- mov r12, #0x0
- ble _020C12B8
- ldr r2, _020C1300 ; =UNK_021D2724
- ldr r0, _020C1304 ; =UNK_021D26E4
-_020C1294:
- add r1, r5, r12
- ldrb r1, [r1, #0x4c]
- ldr r1, [r2, r1, lsl #0x3]
- add r1, r1, lr
- str r1, [r0, r12, lsl #0x2]
- ldr r1, [r5, #0x48]
- add r12, r12, #0x1
- cmp r12, r1
- blt _020C1294
-_020C12B8:
- ldr r0, [r5, #0x20]
- ldr r2, _020C1304 ; =UNK_021D26E4
- str r0, [sp, #0x0]
- ldr r12, [r5, #0x34]
- mov r0, r4
- str r12, [sp, #0x4]
- ldr r4, [r5, #0x30]
- blx r4
- ldr r0, [r5, #0x38]
- add r0, r0, #0x1
- str r0, [r5, #0x38]
- ldr r1, [r5, #0x38]
- ldr r0, [r5, #0x2c]
- cmp r1, r0
- movge r0, #0x0
- strge r0, [r5, #0x38]
- add sp, sp, #0xc
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020C1300: .word UNK_021D2724
-_020C1304: .word UNK_021D26E4
-
- arm_func_start FUN_020C1308
-FUN_020C1308: ; 0x020C1308
- ldr ip, _020C1314 ; =FUN_020C1254
- mov r1, #0x1
- bx r12
- .balign 4
-_020C1314: .word FUN_020C1254
-
- arm_func_start FUN_020C1318
-FUN_020C1318: ; 0x020C1318
- stmdb sp!, {r4,lr}
- mov r4, r0
- ldr r0, [r4, #0x40]
- bl FUN_020C029C
- ldr r0, _020C1344 ; =UNK_021D26D8
- mov r1, r4
- bl FUN_020ADAB0
- ldr r0, [r4, #0x24]
- bic r0, r0, #0x1
- str r0, [r4, #0x24]
- ldmia sp!, {r4,pc}
- .balign 4
-_020C1344: .word UNK_021D26D8
-
- arm_func_start FUN_020C1348
-FUN_020C1348: ; 0x020C1348
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r4, r0
- ldr r0, [r4, #0x24]
- mov r0, r0, lsl #0x1e
- movs r0, r0, asr #0x1f
- beq _020C13B4
- ldr r0, [r4, #0x40]
- mov r2, #0x1
- mov r1, #0x0
- mov r2, r2, lsl r0
- ldr r0, [r4, #0x44]
- mov r3, r1
- bl SND_StopTimer
- add r0, r4, #0x8
- bl PM_DeletePreSleepCallback
- add r0, r4, #0x14
- bl PM_DeletePostSleepCallback
- ldr r0, [r4, #0x24]
- bic r0, r0, #0x2
- str r0, [r4, #0x24]
- bl SND_GetCurrentCommandTag
- mov r5, r0
- mov r0, #0x1
- bl SND_FlushCommand
- mov r0, r5
- bl SND_WaitForCommandProc
-_020C13B4:
- mov r0, r4
- bl FUN_020C1318
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020C13C4
-FUN_020C13C4: ; 0x020C13C4
- stmdb sp!, {r4-r8,lr}
- mov r7, r0
- str r1, [r7, #0x3c]
- ldr r0, [r7, #0x48]
- mov r5, #0x0
- cmp r0, #0x0
- ldmleia sp!, {r4-r8,pc}
- ldr r4, _020C142C ; =UNK_021D2724
- mov r8, #0x1
-_020C13E8:
- add r0, r7, r5
- ldrb r6, [r0, #0x4c]
- ldr r1, [r7, #0x3c]
- add r0, r4, r6, lsl #0x3
- ldr r0, [r0, #0x4]
- add r0, r1, r0
- bl SND_CalcChannelVolume
- mov r2, r0
- mov r0, r8, lsl r6
- and r1, r2, #0xff
- mov r2, r2, asr #0x8
- bl SND_SetChannelVolume
- ldr r0, [r7, #0x48]
- add r5, r5, #0x1
- cmp r5, r0
- blt _020C13E8
- ldmia sp!, {r4-r8,pc}
- .balign 4
-_020C142C: .word UNK_021D2724
-
- arm_func_start FUN_020C1430
-FUN_020C1430: ; 0x020C1430
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r1, [r0, #0x24]
- mov r1, r1, lsl #0x1f
- movs r1, r1, asr #0x1f
- addeq sp, sp, #0x4
- ldmeqia sp!, {pc}
- bl FUN_020C1348
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020C1458
-FUN_020C1458: ; 0x020C1458
- stmdb sp!, {r4,lr}
- mov r4, r0
- ldr r0, [r4, #0x40]
- mov r2, #0x1
- mov r1, #0x0
- mov r2, r2, lsl r0
- ldr r0, [r4, #0x44]
- mov r3, r1
- bl SND_StartTimer
- ldr r0, [r4, #0x24]
- mov r0, r0, lsl #0x1e
- movs r0, r0, asr #0x1f
- ldmneia sp!, {r4,pc}
- add r0, r4, #0x8
- bl PM_PrependPreSleepCallback
- add r0, r4, #0x14
- bl PM_AppendPostSleepCallback
- ldr r0, [r4, #0x24]
- orr r0, r0, #0x2
- str r0, [r4, #0x24]
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020C14AC
-FUN_020C14AC: ; 0x020C14AC
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x24
- mov r10, r0
- ldr r4, [r10, #0x24]
- mov r9, r1
- mov r1, r4, lsl #0x1f
- movs r1, r1, asr #0x1f
- ldr r1, [sp, #0x4c]
- str r2, [sp, #0x18]
- mov r4, r3
- str r1, [sp, #0x4c]
- beq _020C14E0
- bl FUN_020C1430
-_020C14E0:
- ldr r0, [sp, #0x4c]
- ldr r2, [r10, #0x48]
- mov r0, r0, lsl #0x5
- mul r1, r2, r0
- mov r0, r4
- bl _u32_div_f
- ldr r1, [sp, #0x4c]
- ldr r2, [sp, #0x48]
- mul r1, r0, r1
- mov r0, r1, lsl #0x5
- str r0, [r10, #0x28]
- ldr r0, [r10, #0x28]
- cmp r9, #0x1
- moveq r0, r0, lsr #0x1
- mul r0, r2, r0
- ldr r1, [sp, #0x4c]
- bl _u32_div_f
- str r0, [sp, #0x1c]
- bl FUN_020C02BC
- str r0, [r10, #0x40]
- ldr r0, [r10, #0x40]
- cmp r0, #0x0
- addlt sp, sp, #0x24
- movlt r0, #0x0
- ldmltia sp!, {r4-r11,pc}
- ldr r0, [r10, #0x48]
- mov r8, #0x0
- cmp r0, #0x0
- ble _020C15D4
- ldr r0, [sp, #0x48]
- mov r7, r0, lsl #0x5
- ldr r6, _020C1668 ; =UNK_021D2724
- mov r5, r8
- mov r4, #0x7f
- mov r11, #0x40
- mov r0, #0x1
- str r0, [sp, #0x20]
-_020C1574:
- ldr r2, [r10, #0x28]
- ldr r1, [sp, #0x18]
- add r0, r10, r8
- mla r1, r2, r8, r1
- ldrb r0, [r0, #0x4c]
- ldr r3, [sp, #0x20]
- str r1, [r6, r0, lsl #0x3]
- add r1, r6, r0, lsl #0x3
- str r5, [r1, #0x4]
- str r5, [sp, #0x0]
- ldr r2, [r10, #0x28]
- mov r1, r9
- mov r2, r2, lsr #0x2
- str r2, [sp, #0x4]
- str r4, [sp, #0x8]
- str r5, [sp, #0xc]
- str r7, [sp, #0x10]
- str r11, [sp, #0x14]
- ldr r2, [r6, r0, lsl #0x3]
- bl SND_SetupChannelPcm
- ldr r0, [r10, #0x48]
- add r8, r8, #0x1
- cmp r8, r0
- blt _020C1574
-_020C15D4:
- str r10, [sp, #0x0]
- ldr r1, [sp, #0x1c]
- ldr r0, [r10, #0x40]
- ldr r3, _020C166C ; =FUN_020C1308
- mov r2, r1
- bl SND_SetupAlarm
- ldr r0, _020C1670 ; =UNK_021D26D8
- mov r1, r10
- bl FUN_020ADBE8
- ldr r0, [sp, #0x4c]
- str r9, [r10, #0x20]
- str r0, [r10, #0x2c]
- ldr r1, [sp, #0x50]
- ldr r0, [sp, #0x54]
- str r1, [r10, #0x30]
- str r0, [r10, #0x34]
- mov r0, #0x0
- str r0, [r10, #0x38]
- str r0, [r10, #0x3c]
- ldr r0, [r10, #0x24]
- bic r0, r0, #0x1
- orr r0, r0, #0x1
- str r0, [r10, #0x24]
- bl OS_DisableInterrupts
- mov r4, r0
- mov r2, #0x1
- mov r0, r10
- mov r1, #0x0
- str r2, [r10, #0x2c]
- bl FUN_020C1254
- ldr r1, [sp, #0x4c]
- mov r0, r4
- str r1, [r10, #0x2c]
- bl OS_RestoreInterrupts
- mov r0, #0x1
- add sp, sp, #0x24
- ldmia sp!, {r4-r11,pc}
- .balign 4
-_020C1668: .word UNK_021D2724
-_020C166C: .word FUN_020C1308
-_020C1670: .word UNK_021D26D8
-
- arm_func_start FUN_020C1674
-FUN_020C1674: ; 0x020C1674
- stmdb sp!, {r4,lr}
- mov r4, r0
- ldr r0, [r4, #0x44]
- cmp r0, #0x0
- ldmeqia sp!, {r4,pc}
- bl FUN_020C0340
- mov r0, #0x0
- str r0, [r4, #0x44]
- str r0, [r4, #0x48]
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020C169C
-FUN_020C169C: ; 0x020C169C
- stmdb sp!, {r4-r6,lr}
- mov r5, r1
- mov r4, #0x0
- mov r6, r0
- mov r12, r4
- cmp r5, #0x0
- ble _020C16DC
- mov r1, #0x1
-_020C16BC:
- ldrb r3, [r2, r12]
- add r0, r6, r12
- strb r3, [r0, #0x4c]
- ldrb r0, [r2, r12]
- add r12, r12, #0x1
- cmp r12, r5
- orr r4, r4, r1, lsl r0
- blt _020C16BC
-_020C16DC:
- mov r0, r4
- bl FUN_020C0370
- cmp r0, #0x0
- moveq r0, #0x0
- strne r5, [r6, #0x48]
- strne r4, [r6, #0x44]
- movne r0, #0x1
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020C16FC
-FUN_020C16FC: ; 0x020C16FC
- stmdb sp!, {r4,lr}
- ldr r1, _020C176C ; =UNK_021D26D4
- mov r4, r0
- ldr r0, [r1, #0x0]
- cmp r0, #0x0
- bne _020C172C
- ldr r0, _020C1770 ; =UNK_021D26D8
- mov r1, #0x0
- bl FUN_020ADC74
- ldr r0, _020C176C ; =UNK_021D26D4
- mov r1, #0x1
- str r1, [r0, #0x0]
-_020C172C:
- ldr r1, _020C1774 ; =FUN_020C1208
- ldr r0, _020C1778 ; =FUN_020C1198
- str r1, [r4, #0x8]
- str r4, [r4, #0xc]
- str r0, [r4, #0x14]
- str r4, [r4, #0x18]
- mov r0, #0x0
- str r0, [r4, #0x44]
- str r0, [r4, #0x48]
- ldr r0, [r4, #0x24]
- bic r0, r0, #0x1
- str r0, [r4, #0x24]
- ldr r0, [r4, #0x24]
- bic r0, r0, #0x2
- str r0, [r4, #0x24]
- ldmia sp!, {r4,pc}
- .balign 4
-_020C176C: .word UNK_021D26D4
-_020C1770: .word UNK_021D26D8
-_020C1774: .word FUN_020C1208
-_020C1778: .word FUN_020C1198
-
- arm_func_start FUN_020C177C
-FUN_020C177C: ; 0x020C177C
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r7, r0
- ldr r4, [r7, #0x18]
- ldr r0, [r7, #0x1c]
- ldr r1, _020C186C ; =UNK_021D27A4
- mul r0, r4, r0
- ldr r3, [r7, #0xc]
- ldr r2, [r7, #0x10]
- ldr r1, [r1, #0x0]
- add r6, r3, r0
- cmp r1, #0x0
- add r5, r2, r0
- beq _020C180C
- ldr r2, _020C1870 ; =UNK_021D27A8
- mov r1, #0x14
- ldr r2, [r2, #0x0]
- ldr r3, _020C1874 ; =UNK_021D2820
- mul r1, r2, r1
- str r7, [r3, r1]
- add r1, r3, r1
- str r4, [r1, #0x4]
- str r0, [r1, #0x8]
- str r6, [r1, #0xc]
- ldr r0, _020C1878 ; =UNK_021D27AC
- mov r2, #0x0
- str r5, [r1, #0x10]
- bl OS_SendMessage
- ldr r0, _020C1870 ; =UNK_021D27A8
- ldr r1, [r0, #0x0]
- add r1, r1, #0x1
- str r1, [r0, #0x0]
- cmp r1, #0x8
- movge r1, #0x0
- strge r1, [r0, #0x0]
- b _020C1844
-_020C180C:
- mov r0, r6
- mov r1, r4
- bl DC_InvalidateRange
- mov r0, r5
- mov r1, r4
- bl DC_InvalidateRange
- ldr r1, [r7, #0x38]
- mov r0, r6
- str r1, [sp, #0x0]
- ldr r3, [r7, #0x8]
- ldr r6, [r7, #0x34]
- mov r1, r5
- mov r2, r4
- blx r6
-_020C1844:
- ldr r0, [r7, #0x1c]
- add r0, r0, #0x1
- str r0, [r7, #0x1c]
- ldr r1, [r7, #0x1c]
- ldr r0, [r7, #0x30]
- cmp r1, r0
- movge r0, #0x0
- strge r0, [r7, #0x1c]
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020C186C: .word UNK_021D27A4
-_020C1870: .word UNK_021D27A8
-_020C1874: .word UNK_021D2820
-_020C1878: .word UNK_021D27AC
-
- arm_func_start FUN_020C187C
-FUN_020C187C: ; 0x020C187C
- stmdb sp!, {r4,lr}
- ldr r4, _020C18F4 ; =UNK_021D27CC
- ldr r0, [r4, #0x0]
- cmp r0, #0x0
- ldmeqia sp!, {r4,pc}
- mov r0, #0x0
- str r0, [r4, #0x1c]
- ldr r1, [r4, #0xc]
- ldr r2, [r4, #0x14]
- bl MIi_CpuClear32
- ldr r1, [r4, #0x10]
- ldr r2, [r4, #0x14]
- mov r0, #0x0
- bl MIi_CpuClear32
- ldr r0, [r4, #0xc]
- ldr r1, [r4, #0x14]
- bl DC_FlushRange
- ldr r0, [r4, #0x10]
- ldr r1, [r4, #0x14]
- bl DC_FlushRange
- ldr r1, [r4, #0x2c]
- mov r3, #0x0
- cmp r1, #0x0
- movge r0, #0x1
- movge r2, r0, lsl r1
- ldr r0, [r4, #0x24]
- ldr r1, [r4, #0x28]
- movlt r2, #0x0
- bl SND_StartTimer
- ldmia sp!, {r4,pc}
- .balign 4
-_020C18F4: .word UNK_021D27CC
-
- arm_func_start FUN_020C18F8
-FUN_020C18F8:
- stmdb sp!, {r4,lr}
- ldr r3, _020C194C ; =UNK_021D27CC
- ldr r0, [r3, #0x0]
- cmp r0, #0x0
- ldmeqia sp!, {r4,pc}
- ldr r1, [r3, #0x2c]
- cmp r1, #0x0
- movge r0, #0x1
- movge r2, r0, lsl r1
- ldr r0, [r3, #0x24]
- ldr r1, [r3, #0x28]
- movlt r2, #0x0
- mov r3, #0x0
- bl SND_StopTimer
- bl SND_GetCurrentCommandTag
- mov r4, r0
- mov r0, #0x1
- bl SND_FlushCommand
- mov r0, r4
- bl SND_WaitForCommandProc
- ldmia sp!, {r4,pc}
- .balign 4
-_020C194C: .word UNK_021D27CC
-
- arm_func_start FUN_020C1950
-FUN_020C1950: ; 0x020C1950
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- ldr r4, _020C1A3C ; =UNK_021D27CC
- ldr r0, [r4, #0x0]
- cmp r0, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r7,pc}
- ldr r1, [r4, #0x2c]
- mov r3, #0x0
- cmp r1, #0x0
- movge r7, #0x1
- movlt r7, #0x0
- cmp r7, #0x0
- movne r0, #0x1
- movne r2, r0, lsl r1
- ldr r0, [r4, #0x24]
- ldr r1, [r4, #0x28]
- moveq r2, #0x0
- bl SND_StopTimer
- cmp r7, #0x0
- beq _020C19DC
- bl SND_GetCurrentCommandTag
- mov r5, r0
- mov r0, #0x1
- bl SND_FlushCommand
- mov r0, r5
- bl SND_WaitForCommandProc
- ldr r6, _020C1A40 ; =UNK_021D27AC
- mov r5, #0x0
-_020C19C4:
- mov r0, r6
- mov r1, r5
- mov r2, r5
- bl OS_ReceiveMessage
- cmp r0, #0x0
- bne _020C19C4
-_020C19DC:
- ldr r0, [r4, #0x28]
- cmp r0, #0x0
- beq _020C19EC
- bl FUN_020C0300
-_020C19EC:
- ldr r0, [r4, #0x20]
- cmp r0, #0x0
- beq _020C19FC
- bl FUN_020C0340
-_020C19FC:
- cmp r7, #0x0
- beq _020C1A0C
- ldr r0, [r4, #0x2c]
- bl FUN_020C029C
-_020C1A0C:
- ldr r0, [r4, #0x4]
- cmp r0, #0x1
- bne _020C1A2C
- mov r0, #0x0
- mov r1, r0
- mov r2, r0
- mov r3, r0
- bl SND_SetOutputSelector
-_020C1A2C:
- mov r0, #0x0
- str r0, [r4, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020C1A3C: .word UNK_021D27CC
-_020C1A40: .word UNK_021D27AC
-
- arm_func_start FUN_020C1A44
-FUN_020C1A44: ; 0x020C1A44
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x3c
- mov r10, r3
- str r0, [sp, #0x18]
- str r2, [sp, #0x20]
- mov r2, #0x0
- str r1, [sp, #0x1c]
- mov r0, r1
- mov r1, r10
- ldr r9, [sp, #0x6c]
- ldr r8, [sp, #0x74]
- str r2, [sp, #0x2c]
- mvn r6, #0x0
- ldr r4, _020C1D90 ; =UNK_021D27CC
- bl DC_FlushRange
- ldr r0, [sp, #0x20]
- mov r1, r10
- bl DC_FlushRange
- ldr r0, [sp, #0x60]
- ldr r1, [sp, #0x70]
- cmp r0, #0x1
- moveq r7, #0x1
- ldr r0, _020C1D94 ; =0x00FFB0FF
- movne r7, #0x0
- bl _s32_div_f
- ldr r1, [sp, #0x84]
- mov r11, r0
- cmp r1, #0x0
- beq _020C1B00
- add r1, r11, #0x10
- bic r11, r1, #0x1f
- mov r2, r11, asr #0x5
- mov r0, r10
- cmp r7, #0x0
- ldr r1, [sp, #0x80]
- moveq r0, r10, lsr #0x1
- str r2, [sp, #0x34]
- bl _u32_div_f
- ldr r1, [sp, #0x34]
- mov r5, #0x20
- mul r0, r1, r0
- str r0, [sp, #0x30]
- cmp r7, #0x0
- ldr r0, [sp, #0x34]
- moveq r5, r5, lsr #0x1
- mul r0, r5, r0
- mov r5, r0
-_020C1B00:
- cmp r7, #0x0
- movne r0, #0x0
- strne r0, [sp, #0x28]
- moveq r0, #0x1
- streq r0, [sp, #0x28]
- cmp r7, #0x0
- movne r0, #0x1
- strne r0, [sp, #0x24]
- moveq r0, #0x0
- streq r0, [sp, #0x24]
- ldr r0, [sp, #0x18]
- cmp r0, #0x2
- movne r0, #0xa
- strne r0, [sp, #0x2c]
- ldr r0, [sp, #0x84]
- cmp r0, #0x0
- beq _020C1B58
- bl FUN_020C02BC
- movs r6, r0
- addmi sp, sp, #0x3c
- movmi r0, #0x0
- ldmmiia sp!, {r4-r11,pc}
-_020C1B58:
- mov r0, #0x3
- bl FUN_020C031C
- cmp r0, #0x0
- bne _020C1B84
- cmp r6, #0x0
- blt _020C1B78
- mov r0, r6
- bl FUN_020C029C
-_020C1B78:
- add sp, sp, #0x3c
- mov r0, #0x0
- ldmia sp!, {r4-r11,pc}
-_020C1B84:
- mov r0, #0xa
- bl FUN_020C0370
- cmp r0, #0x0
- bne _020C1BB8
- cmp r6, #0x0
- blt _020C1BA4
- mov r0, r6
- bl FUN_020C029C
-_020C1BA4:
- mov r0, #0x3
- bl FUN_020C0300
- add sp, sp, #0x3c
- mov r0, #0x0
- ldmia sp!, {r4-r11,pc}
-_020C1BB8:
- mov r0, #0x0
- mov r7, r10, lsr #0x2
- str r0, [sp, #0x0]
- str r7, [sp, #0x4]
- str r8, [sp, #0x8]
- str r0, [sp, #0xc]
- cmp r9, #0x0
- movne r3, #0x1
- ldr r1, [sp, #0x78]
- str r11, [sp, #0x10]
- str r1, [sp, #0x14]
- ldr r1, [sp, #0x28]
- ldr r2, [sp, #0x1c]
- moveq r3, #0x2
- mov r0, #0x1
- bl SND_SetupChannelPcm
- ldr r1, [sp, #0x64]
- str r9, [sp, #0x0]
- str r1, [sp, #0x4]
- ldr r0, [sp, #0x68]
- ldr r1, [sp, #0x24]
- str r0, [sp, #0x8]
- ldr r2, [sp, #0x1c]
- mov r0, #0x0
- mov r3, r7
- bl SND_SetupCapture
- mov r0, #0x0
- str r0, [sp, #0x0]
- str r7, [sp, #0x4]
- str r8, [sp, #0x8]
- str r0, [sp, #0xc]
- cmp r9, #0x0
- movne r3, #0x1
- ldr r2, [sp, #0x7c]
- str r11, [sp, #0x10]
- str r2, [sp, #0x14]
- ldr r1, [sp, #0x28]
- ldr r2, [sp, #0x20]
- moveq r3, #0x2
- mov r0, #0x3
- bl SND_SetupChannelPcm
- ldr r2, [sp, #0x64]
- str r9, [sp, #0x0]
- str r2, [sp, #0x4]
- ldr r0, [sp, #0x68]
- ldr r1, [sp, #0x24]
- str r0, [sp, #0x8]
- ldr r2, [sp, #0x20]
- mov r3, r7
- mov r0, #0x1
- bl SND_SetupCapture
- cmp r6, #0x0
- blt _020C1CA8
- ldr r2, [sp, #0x30]
- ldr r3, _020C1D98 ; =FUN_020C177C
- mov r1, r2
- mov r0, r6
- add r1, r1, r5
- str r4, [sp, #0x0]
- bl SND_SetupAlarm
-_020C1CA8:
- ldr r0, [sp, #0x18]
- cmp r0, #0x1
- bne _020C1CC8
- mov r0, #0x1
- mov r2, r0
- mov r3, r0
- mov r1, #0x2
- bl SND_SetOutputSelector
-_020C1CC8:
- cmp r6, #0x0
- movge r0, #0x1
- movge r2, r0, lsl r6
- ldr r0, [sp, #0x2c]
- movlt r2, #0x0
- mov r1, #0x3
- mov r3, #0x0
- bl SND_StartTimer
- mov r0, #0x1
- str r0, [r4, #0x0]
- ldr r0, [sp, #0x18]
- ldr r1, [sp, #0x80]
- str r0, [r4, #0x4]
- mov r0, #0xa
- str r0, [r4, #0x20]
- ldr r0, [sp, #0x2c]
- str r0, [r4, #0x24]
- mov r0, #0x3
- str r0, [r4, #0x28]
- ldr r0, [sp, #0x60]
- str r6, [r4, #0x2c]
- str r0, [r4, #0x8]
- ldr r0, [sp, #0x1c]
- str r0, [r4, #0xc]
- ldr r0, [sp, #0x20]
- str r0, [r4, #0x10]
- mov r0, r10
- str r10, [r4, #0x14]
- bl _u32_div_f
- str r0, [r4, #0x18]
- mov r1, #0x0
- str r1, [r4, #0x1c]
- ldr r0, [sp, #0x80]
- ldr r1, [sp, #0x84]
- str r0, [r4, #0x30]
- ldr r0, [sp, #0x88]
- str r1, [r4, #0x34]
- str r0, [r4, #0x38]
- add r0, r4, #0x3c
- str r8, [r4, #0x50]
- bl FUN_020C3E6C
- add r0, r4, #0x3c
- mov r1, r8, lsl #0x8
- mov r2, #0x1
- bl FUN_020C3E40
- mov r0, #0x0
- str r0, [r4, #0x4c]
- mov r0, #0x1
- add sp, sp, #0x3c
- ldmia sp!, {r4-r11,pc}
- .balign 4
-_020C1D90: .word UNK_021D27CC
-_020C1D94: .word 0x00FFB0FF
-_020C1D98: .word FUN_020C177C
-
- arm_func_start FUN_020C1D9C
-FUN_020C1D9C: ; 0x020C1D9C
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- ldr r5, _020C1E34 ; =UNK_021D27CC
- ldr r0, [r5, #0x0]
- cmp r0, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r5,pc}
- ldr r0, [r5, #0x4]
- cmp r0, #0x0
- addne sp, sp, #0x4
- ldmneia sp!, {r4-r5,pc}
- add r4, r5, #0x3c
- mov r0, r4
- bl FUN_020C3DF4
- ldr r0, [r5, #0x4c]
- cmp r0, #0x0
- beq _020C1DFC
- mov r0, r4
- bl FUN_020C3DDC
- cmp r0, #0x0
- beq _020C1DFC
- bl FUN_020C1950
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-_020C1DFC:
- mov r0, r4
- bl FUN_020C3E0C
- ldr r1, [r5, #0x50]
- mov r4, r0, asr #0x8
- cmp r4, r1
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r5,pc}
- ldr r0, [r5, #0x24]
- mov r1, r4
- mov r2, #0x0
- bl SND_SetChannelVolume
- str r4, [r5, #0x50]
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020C1E34: .word UNK_021D27CC
-
- arm_func_start FUN_020C1E38
-FUN_020C1E38: ; 0x020C1E38
- ldr r1, _020C1E50 ; =UNK_021D27A4
- mov r2, #0x0
- ldr r0, _020C1E54 ; =UNK_021D27CC
- str r2, [r1, #0x0]
- str r2, [r0, #0x0]
- bx lr
- .balign 4
-_020C1E50: .word UNK_021D27A4
-_020C1E54: .word UNK_021D27CC
-
- arm_func_start FUN_020C1E58
-FUN_020C1E58: ; 0x020C1E58
- ldr r0, _020C1E64 ; =UNK_021D27CC
- ldr r0, [r0, #0x0]
- bx lr
- .balign 4
-_020C1E64: .word UNK_021D27CC
-
- arm_func_start FUN_020C1E68
-FUN_020C1E68: ; 0x020C1E68
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r0, _020C1EA0 ; =UNK_021D27CC
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {pc}
- ldr r0, [r0, #0x4]
- cmp r0, #0x1
- addne sp, sp, #0x4
- ldmneia sp!, {pc}
- bl FUN_020C1950
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020C1EA0: .word UNK_021D27CC
-
- arm_func_start FUN_020C1EA4
-FUN_020C1EA4: ; 0x020C1EA4
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x2c
- mov r5, r0
- mov r4, r1
- mov r7, r2
- mov r6, r3
- bl FUN_020C1E68
- ldr r0, _020C1F50 ; =UNK_021D27CC
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- addne sp, sp, #0x2c
- movne r0, #0x0
- ldmneia sp!, {r4-r7,pc}
- mov r1, r5
- mov r2, r4
- mov r0, #0x0
- bl MIi_CpuClear32
- mov r0, r5
- mov r1, r4
- bl DC_FlushRange
- str r7, [sp, #0x0]
- mov r2, #0x0
- str r2, [sp, #0x4]
- str r2, [sp, #0x8]
- mov r0, #0x1
- str r0, [sp, #0xc]
- str r6, [sp, #0x10]
- mov r1, #0x7f
- str r1, [sp, #0x14]
- str r2, [sp, #0x18]
- ldr r2, [sp, #0x40]
- str r1, [sp, #0x1c]
- ldr r1, [sp, #0x44]
- str r2, [sp, #0x20]
- ldr r12, [sp, #0x48]
- str r1, [sp, #0x24]
- mov r1, r5
- mov r3, r4, lsr #0x1
- add r2, r5, r4, lsr #0x1
- str r12, [sp, #0x28]
- bl FUN_020C1A44
- add sp, sp, #0x2c
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020C1F50: .word UNK_021D27CC
-
- arm_func_start FUN_020C1F54
-FUN_020C1F54: ; 0x020C1F54
- stmdb sp!, {r4,lr}
- ldr r4, _020C1FA0 ; =UNK_021D27CC
- mov r2, r0
- ldr r0, [r4, #0x0]
- cmp r0, #0x0
- ldmeqia sp!, {r4,pc}
- ldr r0, [r4, #0x4]
- cmp r0, #0x0
- ldmneia sp!, {r4,pc}
- cmp r2, #0x0
- bne _020C1F88
- bl FUN_020C1950
- ldmia sp!, {r4,pc}
-_020C1F88:
- add r0, r4, #0x3c
- mov r1, #0x0
- bl FUN_020C3E40
- mov r0, #0x1
- str r0, [r4, #0x4c]
- ldmia sp!, {r4,pc}
- .balign 4
-_020C1FA0: .word UNK_021D27CC
-
- arm_func_start FUN_020C1FA4
-FUN_020C1FA4: ; 0x020C1FA4
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r3, _020C1FEC ; =UNK_021D27CC
- mov r12, r0
- ldr r0, [r3, #0x0]
- mov r2, r1
- cmp r0, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {pc}
- ldr r0, [r3, #0x4]
- cmp r0, #0x0
- addne sp, sp, #0x4
- ldmneia sp!, {pc}
- add r0, r3, #0x3c
- mov r1, r12, lsl #0x8
- bl FUN_020C3E40
- add sp, sp, #0x4
- ldmia sp!, {pc}
- .balign 4
-_020C1FEC: .word UNK_021D27CC
-
- arm_func_start FUN_020C1FF0
-FUN_020C1FF0: ; 0x020C1FF0
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x2c
- mov r5, r0
- mov r0, #0x0
- mov r4, r1
- mov r7, r2
- mov r6, r3
- bl FUN_020C1F54
- ldr r0, _020C2098 ; =UNK_021D27CC
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- addne sp, sp, #0x2c
- movne r0, #0x0
- ldmneia sp!, {r4-r7,pc}
- mov r1, r5
- mov r2, r4
- mov r0, #0x0
- bl MIi_CpuClear32
- mov r0, r5
- mov r1, r4
- bl DC_FlushRange
- str r7, [sp, #0x0]
- mov r0, #0x0
- str r0, [sp, #0x4]
- str r0, [sp, #0x8]
- mov r1, #0x1
- str r1, [sp, #0xc]
- ldr r1, [sp, #0x40]
- str r6, [sp, #0x10]
- str r1, [sp, #0x14]
- str r0, [sp, #0x18]
- mov r1, #0x7f
- str r1, [sp, #0x1c]
- str r0, [sp, #0x20]
- str r0, [sp, #0x24]
- mov r1, r5
- mov r3, r4, lsr #0x1
- add r2, r5, r4, lsr #0x1
- str r0, [sp, #0x28]
- bl FUN_020C1A44
- add sp, sp, #0x2c
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020C2098: .word UNK_021D27CC
-
- arm_func_start FUN_020C209C
-FUN_020C209C: ; 0x020C209C
- mov r0, #0x0
- str r0, [r2, #0x88]
- bx lr
-
- arm_func_start FUN_020C20A8
-FUN_020C20A8: ; 0x020C20A8
- mov r0, #0x0
- str r0, [r2, #0x84]
- bx lr
-
- arm_func_start FUN_020C20B4
-FUN_020C20B4: ; 0x020C20B4
- mov r0, #0x0
- str r0, [r2, #0x8c]
- bx lr
-
- arm_func_start FUN_020C20C0
-FUN_020C20C0: ; 0x020C20C0
- ldr r2, _020C20D8 ; =UNK_021D28C0
- ldr r2, [r2, #0x0]
- ldr r2, [r2, #0x84]
- add r0, r2, r0, lsl #0x4
- str r1, [r0, #0x14]
- bx lr
- .balign 4
-_020C20D8: .word UNK_021D28C0
-
- arm_func_start FUN_020C20DC
-FUN_020C20DC:
- ldr r1, _020C2100 ; =UNK_021D28C0
- ldr r1, [r1, #0x0]
- ldr r2, [r1, #0x84]
- ldr r1, [r2, #0x8]
- cmp r0, r1
- movcs r0, #0x0
- addcc r0, r2, r0, lsl #0x4
- ldrcc r0, [r0, #0x14]
- bx lr
- .balign 4
-_020C2100: .word UNK_021D28C0
-
- arm_func_start FUN_020C2104
-FUN_020C2104:
- stmdb sp!, {r4-r6,lr}
- ldr r4, _020C2178 ; =UNK_021D28C0
- mov r5, r2
- ldr r4, [r4, #0x0]
- mov r6, r1
- ldr r2, [r4, #0x84]
- ldr r1, [r2, #0x8]
- cmp r0, r1
- mvncs r0, #0x0
- ldmcsia sp!, {r4-r6,pc}
- add r1, r2, #0xc
- add r1, r1, r0, lsl #0x4
- ldr r0, [r1, #0x4]
- ldr r1, [r1, #0x0]
- sub r0, r0, r3
- cmp r5, r0
- movhi r5, r0
- add r0, r4, #0x34
- add r1, r1, r3
- mov r2, #0x0
- bl FS_SeekFile
- cmp r0, #0x0
- mvneq r0, #0x0
- ldmeqia sp!, {r4-r6,pc}
- mov r1, r6
- mov r2, r5
- add r0, r4, #0x34
- bl FS_ReadFile
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020C2178: .word UNK_021D28C0
-
- arm_func_start FUN_020C217C
-FUN_020C217C: ; 0x020C217C
- ldr r1, _020C21A0 ; =UNK_021D28C0
- ldr r1, [r1, #0x0]
- ldr r2, [r1, #0x84]
- ldr r1, [r2, #0x8]
- cmp r0, r1
- movcs r0, #0x0
- addcc r0, r2, r0, lsl #0x4
- ldrcc r0, [r0, #0x10]
- bx lr
- .balign 4
-_020C21A0: .word UNK_021D28C0
-
- arm_func_start FUN_020C21A4
-FUN_020C21A4: ; 0x020C21A4
- ldr r1, _020C2204 ; =UNK_021D28C0
- ldr r3, [r1, #0x0]
- ldr r2, [r3, #0x8c]
- ldr r1, [r2, #0x1c]
- cmp r1, #0x0
- moveq r2, #0x0
- addne r2, r2, r1
- cmp r2, #0x0
- moveq r0, #0x0
- bxeq lr
- cmp r0, #0x0
- movlt r0, #0x0
- bxlt lr
- ldr r1, [r2, #0x0]
- cmp r0, r1
- movcs r0, #0x0
- bxcs lr
- add r0, r2, r0, lsl #0x2
- ldr r1, [r0, #0x4]
- ldr r0, [r3, #0x8c]
- cmp r1, #0x0
- moveq r0, #0x0
- addne r0, r0, r1
- bx lr
- .balign 4
-_020C2204: .word UNK_021D28C0
-
- arm_func_start FUN_020C2208
-FUN_020C2208: ; 0x020C2208
- ldr r1, _020C2268 ; =UNK_021D28C0
- ldr r3, [r1, #0x0]
- ldr r2, [r3, #0x8c]
- ldr r1, [r2, #0x18]
- cmp r1, #0x0
- moveq r2, #0x0
- addne r2, r2, r1
- cmp r2, #0x0
- moveq r0, #0x0
- bxeq lr
- cmp r0, #0x0
- movlt r0, #0x0
- bxlt lr
- ldr r1, [r2, #0x0]
- cmp r0, r1
- movcs r0, #0x0
- bxcs lr
- add r0, r2, r0, lsl #0x2
- ldr r1, [r0, #0x4]
- ldr r0, [r3, #0x8c]
- cmp r1, #0x0
- moveq r0, #0x0
- addne r0, r0, r1
- bx lr
- .balign 4
-_020C2268: .word UNK_021D28C0
-
- arm_func_start FUN_020C226C
-FUN_020C226C:
- ldr r1, _020C22CC ; =UNK_021D28C0
- ldr r3, [r1, #0x0]
- ldr r2, [r3, #0x8c]
- ldr r1, [r2, #0x14]
- cmp r1, #0x0
- moveq r2, #0x0
- addne r2, r2, r1
- cmp r2, #0x0
- moveq r0, #0x0
- bxeq lr
- cmp r0, #0x0
- movlt r0, #0x0
- bxlt lr
- ldr r1, [r2, #0x0]
- cmp r0, r1
- movcs r0, #0x0
- bxcs lr
- add r0, r2, r0, lsl #0x2
- ldr r1, [r0, #0x4]
- ldr r0, [r3, #0x8c]
- cmp r1, #0x0
- moveq r0, #0x0
- addne r0, r0, r1
- bx lr
- .balign 4
-_020C22CC: .word UNK_021D28C0
-
- arm_func_start FUN_020C22D0
-FUN_020C22D0: ; 0x020C22D0
- ldr r1, _020C2330 ; =UNK_021D28C0
- ldr r3, [r1, #0x0]
- ldr r2, [r3, #0x8c]
- ldr r1, [r2, #0x10]
- cmp r1, #0x0
- moveq r2, #0x0
- addne r2, r2, r1
- cmp r2, #0x0
- moveq r0, #0x0
- bxeq lr
- cmp r0, #0x0
- movlt r0, #0x0
- bxlt lr
- ldr r1, [r2, #0x0]
- cmp r0, r1
- movcs r0, #0x0
- bxcs lr
- add r0, r2, r0, lsl #0x2
- ldr r1, [r0, #0x4]
- ldr r0, [r3, #0x8c]
- cmp r1, #0x0
- moveq r0, #0x0
- addne r0, r0, r1
- bx lr
- .balign 4
-_020C2330: .word UNK_021D28C0
-
- arm_func_start FUN_020C2334
-FUN_020C2334:
- ldr r1, _020C2394 ; =UNK_021D28C0
- ldr r3, [r1, #0x0]
- ldr r2, [r3, #0x8c]
- ldr r1, [r2, #0xc]
- cmp r1, #0x0
- moveq r2, #0x0
- addne r2, r2, r1
- cmp r2, #0x0
- moveq r0, #0x0
- bxeq lr
- cmp r0, #0x0
- movlt r0, #0x0
- bxlt lr
- ldr r1, [r2, #0x0]
- cmp r0, r1
- movcs r0, #0x0
- bxcs lr
- add r0, r2, r0, lsl #0x2
- ldr r1, [r0, #0x4]
- ldr r0, [r3, #0x8c]
- cmp r1, #0x0
- moveq r0, #0x0
- addne r0, r0, r1
- bx lr
- .balign 4
-_020C2394: .word UNK_021D28C0
-
- arm_func_start FUN_020C2398
-FUN_020C2398:
- ldr r1, _020C23F8 ; =UNK_021D28C0
- ldr r3, [r1, #0x0]
- ldr r2, [r3, #0x8c]
- ldr r1, [r2, #0x8]
- cmp r1, #0x0
- moveq r2, #0x0
- addne r2, r2, r1
- cmp r2, #0x0
- moveq r0, #0x0
- bxeq lr
- cmp r0, #0x0
- movlt r0, #0x0
- bxlt lr
- ldr r1, [r2, #0x0]
- cmp r0, r1
- movcs r0, #0x0
- bxcs lr
- add r0, r2, r0, lsl #0x2
- ldr r1, [r0, #0x4]
- ldr r0, [r3, #0x8c]
- cmp r1, #0x0
- moveq r0, #0x0
- addne r0, r0, r1
- bx lr
- .balign 4
-_020C23F8: .word UNK_021D28C0
-
- arm_func_start FUN_020C23FC
-FUN_020C23FC: ; 0x020C23FC
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- bl FUN_020C2398
- cmp r0, #0x0
- moveq r0, #0x0
- addne r0, r0, #0x4
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020C241C
-FUN_020C241C: ; 0x020C241C
- ldr r0, _020C2428 ; =UNK_021D28C0
- ldr r0, [r0, #0x0]
- bx lr
- .balign 4
-_020C2428: .word UNK_021D28C0
-
- arm_func_start FUN_020C242C
-FUN_020C242C: ; 0x020C242C
- ldr r1, _020C2440 ; =UNK_021D28C0
- ldr r2, [r1, #0x0]
- str r0, [r1, #0x0]
- mov r0, r2
- bx lr
- .balign 4
-_020C2440: .word UNK_021D28C0
-
- arm_func_start FUN_020C2444
-FUN_020C2444: ; 0x020C2444
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- mov r4, r1
- mov r0, r4
- mov r1, r5
- mov r2, #0x30
- bl MIi_CpuCopy32
- ldr r0, [r5, #0x18]
- mov r12, #0x0
- cmp r0, #0x0
- moveq r0, #0x0
- addne r0, r4, r0
- str r0, [r5, #0x8c]
- ldr r0, [r5, #0x20]
- cmp r0, #0x0
- moveq r0, #0x0
- addne r0, r4, r0
- str r0, [r5, #0x84]
- ldr r0, [r5, #0x10]
- cmp r0, #0x0
- moveq r0, #0x0
- addne r0, r4, r0
- str r0, [r5, #0x88]
- ldr r2, [r5, #0x84]
- ldr r0, [r2, #0x8]
- cmp r0, #0x0
- bls _020C24F0
- mov r3, r12
- mov r1, r12
-_020C24BC:
- add r2, r2, #0xc
- ldr r0, [r2, r3]
- add r2, r2, r3
- cmp r0, #0x0
- moveq r0, r1
- addne r0, r4, r0
- str r0, [r2, #0x8]
- ldr r2, [r5, #0x84]
- add r12, r12, #0x1
- ldr r0, [r2, #0x8]
- add r3, r3, #0x10
- cmp r12, r0
- blo _020C24BC
-_020C24F0:
- mov r1, #0x0
- ldr r0, _020C2508 ; =UNK_021D28C0
- str r1, [r5, #0x30]
- str r5, [r0, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020C2508: .word UNK_021D28C0
-
- arm_func_start FUN_020C250C
-FUN_020C250C:
- stmdb sp!, {r4-r6,lr}
- sub sp, sp, #0x8
- mov r6, r0
- mov r5, r1
- mov r1, #0x0
- mov r4, r2
- mov r2, r1
- add r0, r6, #0x34
- bl FS_SeekFile
- cmp r0, #0x0
- addeq sp, sp, #0x8
- moveq r0, #0x0
- ldmeqia sp!, {r4-r6,pc}
- mov r1, r6
- add r0, r6, #0x34
- mov r2, #0x30
- bl FS_ReadFile
- cmp r0, #0x30
- addne sp, sp, #0x8
- movne r0, #0x0
- ldmneia sp!, {r4-r6,pc}
- cmp r5, #0x0
- beq _020C26E0
- mov r0, #0x0
- str r0, [sp, #0x0]
- ldr r1, [r6, #0x1c]
- ldr r2, _020C26EC ; =FUN_020C20B4
- mov r0, r5
- mov r3, r6
- bl FUN_020C2958
- str r0, [r6, #0x8c]
- ldr r0, [r6, #0x8c]
- cmp r0, #0x0
- addeq sp, sp, #0x8
- moveq r0, #0x0
- ldmeqia sp!, {r4-r6,pc}
- ldr r1, [r6, #0x18]
- add r0, r6, #0x34
- mov r2, #0x0
- bl FS_SeekFile
- cmp r0, #0x0
- addeq sp, sp, #0x8
- moveq r0, #0x0
- ldmeqia sp!, {r4-r6,pc}
- ldr r1, [r6, #0x8c]
- ldr r2, [r6, #0x1c]
- add r0, r6, #0x34
- bl FS_ReadFile
- ldr r1, [r6, #0x1c]
- cmp r0, r1
- addne sp, sp, #0x8
- movne r0, #0x0
- ldmneia sp!, {r4-r6,pc}
- mov r0, #0x0
- str r0, [sp, #0x0]
- ldr r1, [r6, #0x24]
- ldr r2, _020C26F0 ; =FUN_020C20A8
- mov r0, r5
- mov r3, r6
- bl FUN_020C2958
- str r0, [r6, #0x84]
- ldr r0, [r6, #0x84]
- cmp r0, #0x0
- addeq sp, sp, #0x8
- moveq r0, #0x0
- ldmeqia sp!, {r4-r6,pc}
- ldr r1, [r6, #0x20]
- add r0, r6, #0x34
- mov r2, #0x0
- bl FS_SeekFile
- cmp r0, #0x0
- addeq sp, sp, #0x8
- moveq r0, #0x0
- ldmeqia sp!, {r4-r6,pc}
- ldr r1, [r6, #0x84]
- ldr r2, [r6, #0x24]
- add r0, r6, #0x34
- bl FS_ReadFile
- ldr r1, [r6, #0x24]
- cmp r0, r1
- addne sp, sp, #0x8
- movne r0, #0x0
- ldmneia sp!, {r4-r6,pc}
- cmp r4, #0x0
- beq _020C26E0
- ldr r1, [r6, #0x14]
- cmp r1, #0x0
- beq _020C26E0
- mov r4, #0x0
- ldr r2, _020C26F4 ; =FUN_020C209C
- mov r0, r5
- mov r3, r6
- str r4, [sp, #0x0]
- bl FUN_020C2958
- str r0, [r6, #0x88]
- ldr r0, [r6, #0x88]
- cmp r0, #0x0
- addeq sp, sp, #0x8
- moveq r0, r4
- ldmeqia sp!, {r4-r6,pc}
- ldr r1, [r6, #0x10]
- add r0, r6, #0x34
- mov r2, r4
- bl FS_SeekFile
- cmp r0, #0x0
- addeq sp, sp, #0x8
- moveq r0, r4
- ldmeqia sp!, {r4-r6,pc}
- ldr r1, [r6, #0x88]
- ldr r2, [r6, #0x14]
- add r0, r6, #0x34
- bl FS_ReadFile
- ldr r1, [r6, #0x14]
- cmp r0, r1
- addne sp, sp, #0x8
- movne r0, r4
- ldmneia sp!, {r4-r6,pc}
-_020C26E0:
- mov r0, #0x1
- add sp, sp, #0x8
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020C26EC: .word FUN_020C20B4
-_020C26F0: .word FUN_020C20A8
-_020C26F4: .word FUN_020C209C
-
- arm_func_start FUN_020C26F8
-FUN_020C26F8: ; 0x020C26F8
- ; r0: &sSoundDataBuffer
- ; r1: char* filename
- ; r2: (&sSoundDataBuffer)->unk_0090
- ; r3: 0
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- mov r12, #0x0
- str r12, [r6, #0x8c]
- str r12, [r6, #0x84]
- add r0, r6, #0x7c
- mov r5, r2
- mov r4, r3
- str r12, [r6, #0x88]
- bl FS_ConvertPathToFileID
- cmp r0, #0x0
- ldmeqia sp!, {r4-r6,pc}
- add r0, r6, #0x34
- bl FS_InitFile
- add r1, r6, #0x7c
- add r0, r6, #0x34
- ldmia r1, {r1-r2}
- bl FS_OpenFileFast
- cmp r0, #0x0
- ldmeqia sp!, {r4-r6,pc}
- mov r3, #0x1
- mov r0, r6
- mov r1, r5
- mov r2, r4
- str r3, [r6, #0x30]
- bl FUN_020C250C
- cmp r0, #0x0
- ldrne r0, _020C2770 ; =UNK_021D28C0
- strne r6, [r0, #0x0]
- ldmia sp!, {r4-r6,pc}
- .balign 4
-_020C2770: .word UNK_021D28C0
-
- arm_func_start FUN_020C2774
-FUN_020C2774: ; 0x020C2774
- stmdb sp!, {r4,lr}
- bl SND_GetCurrentCommandTag
- mov r4, r0
- mov r0, #0x1
- bl SND_FlushCommand
- mov r0, r4
- bl SND_WaitForCommandProc
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020C2794
-FUN_020C2794:
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- ldr r0, [r5, #0x0]
- mov r1, #0x14
- mov r2, #0x4
- bl FUN_020AE638
- movs r4, r0
- addeq sp, sp, #0x4
- moveq r0, #0x0
- ldmeqia sp!, {r4-r5,pc}
- bl FUN_020C2818
- mov r1, r4
- add r0, r5, #0x4
- bl FUN_020ADBE8
- mov r0, #0x1
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020C27DC
-FUN_020C27DC:
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- mov r4, r1
- add r0, r5, #0x4
- mov r1, #0xc
- bl FUN_020ADC74
- mov r0, r5
- str r4, [r5, #0x0]
- bl FUN_020C2794
- cmp r0, #0x0
- movne r0, #0x1
- moveq r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020C2818
-FUN_020C2818: ; 0x020C2818
- ldr ip, _020C2824 ; =FUN_020ADC74
- mov r1, #0x0
- bx r12
- .balign 4
-_020C2824: .word FUN_020ADC74
-
- arm_func_start FUN_020C2828
-FUN_020C2828: ; 0x020C2828
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x4
- mov r7, #0x0
- movs r9, r1
- mov r10, r0
- mov r6, r7
- bne _020C2850
- bl FUN_020C29C0
- add sp, sp, #0x4
- ldmia sp!, {r4-r11,pc}
-_020C2850:
- ldrh r0, [r10, #0xc]
- cmp r9, r0
- bge _020C28D8
- mov r11, r7
- add r5, r10, #0x4
- mov r4, #0x1
-_020C2868:
- mov r0, r5
- mov r1, r11
- bl FUN_020ADA84
- mov r1, r7
- mov r8, r0
- bl FUN_020ADA84
- movs r7, r0
- beq _020C28C0
-_020C2888:
- ldr r12, [r7, #0xc]
- cmp r12, #0x0
- beq _020C28AC
- ldr r1, [r7, #0x8]
- ldr r2, [r7, #0x10]
- ldr r3, [r7, #0x14]
- add r0, r7, #0x20
- blx r12
- mov r6, r4
-_020C28AC:
- mov r0, r8
- mov r1, r7
- bl FUN_020ADA84
- movs r7, r0
- bne _020C2888
-_020C28C0:
- mov r0, r5
- mov r1, r8
- bl FUN_020ADAB0
- ldrh r0, [r10, #0xc]
- cmp r9, r0
- blt _020C2868
-_020C28D8:
- ldr r0, [r10, #0x0]
- mov r1, r9
- bl FUN_020AE554
- cmp r6, #0x0
- beq _020C28F0
- bl FUN_020C2774
-_020C28F0:
- ldrh r1, [r10, #0xc]
- ldr r0, [r10, #0x0]
- bl FUN_020AE5B0
- mov r0, r10
- bl FUN_020C2794
- add sp, sp, #0x4
- ldmia sp!, {r4-r11,pc}
-
- arm_func_start FUN_020C290C
-FUN_020C290C: ; 0x020C290C
- stmdb sp!, {r4,lr}
- mov r4, r0
- ldrh r1, [r4, #0xc]
- ldr r0, [r4, #0x0]
- bl FUN_020AE5B0
- cmp r0, #0x0
- mvneq r0, #0x0
- ldmeqia sp!, {r4,pc}
- mov r0, r4
- bl FUN_020C2794
- cmp r0, #0x0
- ldrneh r0, [r4, #0xc]
- subne r0, r0, #0x1
- ldmneia sp!, {r4,pc}
- ldr r0, [r4, #0x0]
- mov r1, #0x0
- bl FUN_020AE554
- mvn r0, #0x0
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020C2958
-FUN_020C2958: ; 0x020C2958
- stmdb sp!, {r4-r8,lr}
- mov r7, r1
- mov r8, r0
- add r0, r7, #0x1f
- bic r1, r0, #0x1f
- mov r6, r2
- ldr r0, [r8, #0x0]
- add r1, r1, #0x20
- mov r2, #0x20
- mov r5, r3
- bl FUN_020AE638
- movs r4, r0
- moveq r0, #0x0
- ldmeqia sp!, {r4-r8,pc}
- add r0, r8, #0x4
- mov r1, #0x0
- bl FUN_020ADA84
- str r7, [r4, #0x8]
- str r6, [r4, #0xc]
- ldr r2, [sp, #0x18]
- str r5, [r4, #0x10]
- mov r1, r4
- str r2, [r4, #0x14]
- bl FUN_020ADBE8
- add r0, r4, #0x20
- ldmia sp!, {r4-r8,pc}
-
- arm_func_start FUN_020C29C0
-FUN_020C29C0:
- stmdb sp!, {r4-r10,lr}
- mov r8, r0
- mov r5, #0x0
- mov r1, r5
- add r0, r8, #0x4
- bl FUN_020ADA84
- movs r7, r0
- beq _020C2A58
- add r9, r8, #0x4
- mov r10, #0x1
- mov r4, r5
-_020C29EC:
- mov r0, r7
- mov r1, r4
- bl FUN_020ADA84
- movs r6, r0
- beq _020C2A38
-_020C2A00:
- ldr r12, [r6, #0xc]
- cmp r12, #0x0
- beq _020C2A24
- ldr r1, [r6, #0x8]
- ldr r2, [r6, #0x10]
- ldr r3, [r6, #0x14]
- add r0, r6, #0x20
- blx r12
- mov r5, r10
-_020C2A24:
- mov r0, r7
- mov r1, r6
- bl FUN_020ADA84
- movs r6, r0
- bne _020C2A00
-_020C2A38:
- mov r0, r9
- mov r1, r7
- bl FUN_020ADAB0
- mov r0, r9
- mov r1, r4
- bl FUN_020ADA84
- movs r7, r0
- bne _020C29EC
-_020C2A58:
- ldr r0, [r8, #0x0]
- mov r1, #0x3
- bl FUN_020AE600
- cmp r5, #0x0
- beq _020C2A70
- bl FUN_020C2774
-_020C2A70:
- mov r0, r8
- bl FUN_020C2794
- ldmia sp!, {r4-r10,pc}
-
- arm_func_start FUN_020C2A7C
-FUN_020C2A7C: ; 0x020C2A7C
- stmdb sp!, {r4,lr}
- mov r4, r0
- bl FUN_020C29C0
- ldr r0, [r4, #0x0]
- bl thunk_FUN_020adc8c_2
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020C2A94
-FUN_020C2A94:
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- add r2, r0, #0x3
- add r0, r0, r1
- bic r5, r2, #0x3
- cmp r5, r0
- addhi sp, sp, #0x4
- movhi r0, #0x0
- ldmhiia sp!, {r4-r5,pc}
- sub r1, r0, r5
- cmp r1, #0x10
- addcc sp, sp, #0x4
- movcc r0, #0x0
- ldmccia sp!, {r4-r5,pc}
- add r0, r5, #0x10
- sub r1, r1, #0x10
- mov r2, #0x0
- bl FUN_020AE684
- movs r4, r0
- addeq sp, sp, #0x4
- moveq r0, #0x0
- ldmeqia sp!, {r4-r5,pc}
- mov r0, r5
- mov r1, r4
- bl FUN_020C27DC
- cmp r0, #0x0
- addne sp, sp, #0x4
- movne r0, r5
- ldmneia sp!, {r4-r5,pc}
- mov r0, r4
- bl thunk_FUN_020adc8c_2
- mov r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020C2B1C
-FUN_020C2B1C:
- stmdb sp!, {r4-r10,lr}
- sub sp, sp, #0x20
- mov r8, r0
- add r0, sp, #0x8
- mov r7, r1
- mov r6, r2
- mov r5, r3
- ldr r4, [sp, #0x40]
- bl SND_GetFirstInstDataPos
- ldr r1, [sp, #0x8]
- ldr r0, [sp, #0xc]
- str r1, [sp, #0x0]
- str r0, [sp, #0x4]
- cmp r7, #0x0
- add r2, sp, #0x0
- addeq sp, sp, #0x20
- moveq r0, #0x0
- ldmeqia sp!, {r4-r10,pc}
- add r1, sp, #0x10
- mov r0, r7
- bl SND_GetNextInstData
- cmp r0, #0x0
- beq _020C2BD4
- add r10, sp, #0x10
- add r9, sp, #0x0
-_020C2B80:
- ldrb r0, [sp, #0x10]
- cmp r0, #0x1
- bne _020C2BBC
- ldrh r0, [sp, #0x14]
- cmp r6, r0
- bne _020C2BBC
- ldrh r1, [sp, #0x12]
- mov r0, r8
- mov r2, r5
- mov r3, r4
- bl FUN_020C2BE0
- cmp r0, #0x0
- addeq sp, sp, #0x20
- moveq r0, #0x0
- ldmeqia sp!, {r4-r10,pc}
-_020C2BBC:
- mov r0, r7
- mov r1, r10
- mov r2, r9
- bl SND_GetNextInstData
- cmp r0, #0x0
- bne _020C2B80
-_020C2BD4:
- mov r0, #0x1
- add sp, sp, #0x20
- ldmia sp!, {r4-r10,pc}
-
- arm_func_start FUN_020C2BE0
-FUN_020C2BE0:
- stmdb sp!, {r4-r9,lr}
- sub sp, sp, #0x4
- mov r7, r0
- mov r6, r1
- mov r5, r2
- mov r4, r3
- bl SND_GetWaveDataAddress
- cmp r0, #0x0
- addne sp, sp, #0x4
- movne r0, #0x1
- ldmneia sp!, {r4-r9,pc}
- mov r0, r7
- bl SND_GetWaveDataCount
- ldr r1, [r7, #0x38]
- sub r0, r0, #0x1
- add r1, r1, r6
- add r1, r7, r1, lsl #0x2
- cmp r6, r0
- ldrcc r0, [r1, #0x40]
- ldr r8, [r1, #0x3c]
- ldrcs r0, [r7, #0x8]
- cmp r4, #0x0
- sub r9, r0, r8
- addeq sp, sp, #0x4
- moveq r0, #0x0
- ldmeqia sp!, {r4-r9,pc}
- ldr r2, _020C2CBC ; =FUN_020C2CC0
- mov r0, r4
- mov r3, r7
- add r1, r9, #0x20
- str r6, [sp, #0x0]
- bl FUN_020C2958
- movs r4, r0
- addeq sp, sp, #0x4
- moveq r0, #0x0
- ldmeqia sp!, {r4-r9,pc}
- mov r0, r5
- mov r1, r4
- mov r2, r9
- mov r3, r8
- bl FUN_020C2104
- cmp r9, r0
- addne sp, sp, #0x4
- movne r0, #0x0
- ldmneia sp!, {r4-r9,pc}
- mov r0, r4
- mov r1, r9
- bl DC_StoreRange
- mov r0, r7
- mov r1, r6
- mov r2, r4
- bl SND_SetWaveDataAddress
- mov r0, #0x1
- add sp, sp, #0x4
- ldmia sp!, {r4-r9,pc}
- .balign 4
-_020C2CBC: .word FUN_020C2CC0
-
- arm_func_start FUN_020C2CC0
-FUN_020C2CC0: ; 0x020C2CC0
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r5, r2
- mov r7, r0
- mov r4, r3
- mov r6, r1
- mov r0, r5
- mov r1, r4
- bl SND_GetWaveDataAddress
- cmp r7, r0
- bne _020C2CFC
- mov r0, r5
- mov r1, r4
- mov r2, #0x0
- bl SND_SetWaveDataAddress
-_020C2CFC:
- mov r0, r7
- add r1, r7, r6
- bl SND_InvalidateWaveData
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020C2D10
-FUN_020C2D10: ; 0x020C2D10
- stmdb sp!, {r4,lr}
- mov r1, r2
- mov r4, r0
- mov r2, r3
- bl FUN_020C2DD0
- mov r0, r4
- bl SND_DestroyWaveArc
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020C2D30
-FUN_020C2D30: ; 0x020C2D30
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r4, r1
- mov r1, r2
- mov r5, r0
- mov r2, r3
- bl FUN_020C2DD0
- mov r0, r5
- add r1, r5, r4
- bl SND_InvalidateWaveData
- mov r0, r5
- bl SND_DestroyWaveArc
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020C2D68
-FUN_020C2D68: ; 0x020C2D68
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r4, r1
- mov r1, r2
- mov r5, r0
- mov r2, r3
- bl FUN_020C2DD0
- mov r0, r5
- add r1, r5, r4
- bl SND_InvalidateBankData
- mov r0, r5
- bl SND_DestroyBank
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020C2DA0
-FUN_020C2DA0: ; 0x020C2DA0
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r4, r1
- mov r1, r2
- mov r5, r0
- mov r2, r3
- bl FUN_020C2DD0
- mov r0, r5
- add r1, r5, r4
- bl SND_InvalidateSeqData
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020C2DD0
-FUN_020C2DD0: ; 0x020C2DD0
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- movs r5, r1
- mov r7, r0
- mov r6, r2
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r7,pc}
- bl OS_DisableInterrupts
- mov r4, r0
- mov r0, r5
- bl FUN_020C242C
- mov r5, r0
- mov r0, r6
- bl FUN_020C20DC
- cmp r7, r0
- bne _020C2E1C
- mov r0, r6
- mov r1, #0x0
- bl FUN_020C20C0
-_020C2E1C:
- mov r0, r5
- bl FUN_020C242C
- mov r0, r4
- bl OS_RestoreInterrupts
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020C2E34
-FUN_020C2E34: ; 0x020C2E34
- stmdb sp!, {r4-r9,lr}
- sub sp, sp, #0x4
- mov r9, r0
- mov r8, r1
- mov r7, r2
- bl FUN_020C20DC
- movs r6, r0
- bne _020C2F40
- ldr r1, _020C2F4C ; =UNK_021D28C4
- mov r0, r9
- mov r2, #0x3c
- mov r3, #0x0
- bl FUN_020C2104
- cmp r0, #0x3c
- addne sp, sp, #0x4
- movne r0, #0x0
- ldmneia sp!, {r4-r9,pc}
- ldr r0, _020C2F4C ; =UNK_021D28C4
- cmp r8, #0x0
- ldr r0, [r0, #0x38]
- addeq sp, sp, #0x4
- mov r4, r0, lsl #0x2
- mov r0, r4, lsl #0x1
- add r5, r0, #0x3c
- moveq r0, #0x0
- ldmeqia sp!, {r4-r9,pc}
- cmp r7, #0x0
- moveq r3, #0x0
- beq _020C2EB0
- bl FUN_020C241C
- mov r3, r0
-_020C2EB0:
- ldr r2, _020C2F50 ; =FUN_020C2D10
- mov r0, r8
- add r1, r5, #0x20
- str r9, [sp, #0x0]
- bl FUN_020C2958
- movs r6, r0
- addeq sp, sp, #0x4
- moveq r0, #0x0
- ldmeqia sp!, {r4-r9,pc}
- mov r0, r9
- mov r1, r6
- add r2, r4, #0x3c
- mov r3, #0x0
- bl FUN_020C2104
- add r1, r4, #0x3c
- cmp r0, r1
- addne sp, sp, #0x4
- movne r0, #0x0
- ldmneia sp!, {r4-r9,pc}
- ldr r1, [r6, #0x38]
- add r0, r6, #0x3c
- mov r2, r4
- add r1, r0, r1, lsl #0x2
- bl MI_CpuCopy8
- mov r2, r4
- add r0, r6, #0x3c
- mov r1, #0x0
- bl MI_CpuFill8
- mov r0, r6
- mov r1, r5
- bl DC_StoreRange
- cmp r7, #0x0
- beq _020C2F40
- mov r0, r9
- mov r1, r6
- bl FUN_020C20C0
-_020C2F40:
- mov r0, r6
- add sp, sp, #0x4
- ldmia sp!, {r4-r9,pc}
- .balign 4
-_020C2F4C: .word UNK_021D28C4
-_020C2F50: .word FUN_020C2D10
-
- arm_func_start FUN_020C2F54
-FUN_020C2F54:
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r7, r0
- mov r6, r1
- mov r5, r2
- bl FUN_020C20DC
- movs r4, r0
- bne _020C2FBC
- cmp r5, #0x0
- moveq r2, #0x0
- beq _020C2F88
- bl FUN_020C241C
- mov r2, r0
-_020C2F88:
- ldr r1, _020C2FC8 ; =FUN_020C2D30
- mov r0, r7
- mov r3, r7
- str r6, [sp, #0x0]
- bl FUN_020C3134
- mov r4, r0
- cmp r5, #0x0
- beq _020C2FBC
- cmp r4, #0x0
- beq _020C2FBC
- mov r0, r7
- mov r1, r4
- bl FUN_020C20C0
-_020C2FBC:
- mov r0, r4
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020C2FC8: .word FUN_020C2D30
-
- arm_func_start FUN_020C2FCC
-FUN_020C2FCC: ; 0x020C2FCC
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r7, r0
- mov r6, r1
- mov r5, r2
- bl FUN_020C20DC
- movs r4, r0
- bne _020C3034
- cmp r5, #0x0
- moveq r2, #0x0
- beq _020C3000
- bl FUN_020C241C
- mov r2, r0
-_020C3000:
- ldr r1, _020C3040 ; =FUN_020C2D68
- mov r0, r7
- mov r3, r7
- str r6, [sp, #0x0]
- bl FUN_020C3134
- mov r4, r0
- cmp r5, #0x0
- beq _020C3034
- cmp r4, #0x0
- beq _020C3034
- mov r0, r7
- mov r1, r4
- bl FUN_020C20C0
-_020C3034:
- mov r0, r4
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020C3040: .word FUN_020C2D68
-
- arm_func_start FUN_020C3044
-FUN_020C3044:
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r7, r0
- mov r6, r1
- mov r5, r2
- bl FUN_020C20DC
- movs r4, r0
- bne _020C30AC
- cmp r5, #0x0
- moveq r2, #0x0
- beq _020C3078
- bl FUN_020C241C
- mov r2, r0
-_020C3078:
- ldr r1, _020C30B8 ; =FUN_020C2DA0
- mov r0, r7
- mov r3, r7
- str r6, [sp, #0x0]
- bl FUN_020C3134
- mov r4, r0
- cmp r5, #0x0
- beq _020C30AC
- cmp r4, #0x0
- beq _020C30AC
- mov r0, r7
- mov r1, r4
- bl FUN_020C20C0
-_020C30AC:
- mov r0, r4
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020C30B8: .word FUN_020C2DA0
-
- arm_func_start FUN_020C30BC
-FUN_020C30BC:
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r7, r0
- mov r6, r1
- mov r5, r2
- bl FUN_020C20DC
- movs r4, r0
- bne _020C3124
- cmp r5, #0x0
- moveq r2, #0x0
- beq _020C30F0
- bl FUN_020C241C
- mov r2, r0
-_020C30F0:
- ldr r1, _020C3130 ; =FUN_020C2DA0
- mov r0, r7
- mov r3, r7
- str r6, [sp, #0x0]
- bl FUN_020C3134
- mov r4, r0
- cmp r5, #0x0
- beq _020C3124
- cmp r4, #0x0
- beq _020C3124
- mov r0, r7
- mov r1, r4
- bl FUN_020C20C0
-_020C3124:
- mov r0, r4
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020C3130: .word FUN_020C2DA0
-
- arm_func_start FUN_020C3134
-FUN_020C3134: ; 0x020C3134
- stmdb sp!, {r4-r8,lr}
- sub sp, sp, #0x8
- mov r8, r0
- mov r7, r1
- mov r6, r2
- mov r4, r3
- bl FUN_020C217C
- movs r5, r0
- addeq sp, sp, #0x8
- moveq r0, #0x0
- ldmeqia sp!, {r4-r8,pc}
- ldr r0, [sp, #0x20]
- cmp r0, #0x0
- addeq sp, sp, #0x8
- moveq r0, #0x0
- ldmeqia sp!, {r4-r8,pc}
- mov r2, r7
- mov r3, r6
- add r1, r5, #0x20
- str r4, [sp, #0x0]
- bl FUN_020C2958
- movs r4, r0
- addeq sp, sp, #0x8
- moveq r0, #0x0
- ldmeqia sp!, {r4-r8,pc}
- mov r0, r8
- mov r1, r4
- mov r2, r5
- mov r3, #0x0
- bl FUN_020C2104
- cmp r5, r0
- addne sp, sp, #0x8
- movne r0, #0x0
- ldmneia sp!, {r4-r8,pc}
- mov r0, r4
- mov r1, r5
- bl DC_StoreRange
- mov r0, r4
- add sp, sp, #0x8
- ldmia sp!, {r4-r8,pc}
-
- arm_func_start FUN_020C31D4
-FUN_020C31D4:
- stmdb sp!, {r4-r6,lr}
- mov r6, r1
- mov r5, r2
- mov r4, r3
- bl FUN_020C226C
- cmp r0, #0x0
- moveq r0, #0x5
- ldmeqia sp!, {r4-r6,pc}
- ands r1, r6, #0x4
- beq _020C324C
- ldrb r1, [r0, #0x3]
- ands r1, r1, #0x1
- beq _020C3224
- ldr r0, [r0, #0x0]
- mov r1, r5
- mov r0, r0, lsl #0x8
- mov r2, r4
- mov r0, r0, lsr #0x8
- bl FUN_020C2E34
- b _020C323C
-_020C3224:
- ldr r0, [r0, #0x0]
- mov r1, r5
- mov r0, r0, lsl #0x8
- mov r2, r4
- mov r0, r0, lsr #0x8
- bl FUN_020C2F54
-_020C323C:
- cmp r0, #0x0
- bne _020C325C
- mov r0, #0x9
- ldmia sp!, {r4-r6,pc}
-_020C324C:
- ldr r0, [r0, #0x0]
- mov r0, r0, lsl #0x8
- mov r0, r0, lsr #0x8
- bl FUN_020C20DC
-_020C325C:
- ldr r1, [sp, #0x10]
- cmp r1, #0x0
- strne r0, [r1, #0x0]
- mov r0, #0x0
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020C3270
-FUN_020C3270:
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0xc
- mov r10, r1
- mov r9, r2
- mov r11, r3
- bl FUN_020C22D0
- movs r8, r0
- addeq sp, sp, #0xc
- moveq r0, #0x4
- ldmeqia sp!, {r4-r11,pc}
- ands r0, r10, #0x2
- beq _020C32C4
- ldr r0, [r8, #0x0]
- mov r1, r9
- mov r2, r11
- bl FUN_020C2FCC
- movs r7, r0
- bne _020C32D0
- add sp, sp, #0xc
- mov r0, #0x8
- ldmia sp!, {r4-r11,pc}
-_020C32C4:
- ldr r0, [r8, #0x0]
- bl FUN_020C20DC
- mov r7, r0
-_020C32D0:
- and r5, r10, #0x4
- mov r6, #0x0
-_020C32D8:
- add r0, r8, r6, lsl #0x1
- ldrh r0, [r0, #0x4]
- ldr r1, _020C33B4 ; =0x0000FFFF
- cmp r0, r1
- beq _020C3390
- bl FUN_020C226C
- movs r4, r0
- addeq sp, sp, #0xc
- moveq r0, #0x5
- ldmeqia sp!, {r4-r11,pc}
- add r0, sp, #0x4
- str r0, [sp, #0x0]
- add r0, r8, r6, lsl #0x1
- ldrh r0, [r0, #0x4]
- mov r1, r10
- mov r2, r9
- mov r3, r11
- bl FUN_020C31D4
- cmp r0, #0x0
- addne sp, sp, #0xc
- ldmneia sp!, {r4-r11,pc}
- ldrb r0, [r4, #0x3]
- ands r0, r0, #0x1
- beq _020C3370
- cmp r5, #0x0
- beq _020C3370
- str r9, [sp, #0x0]
- ldr r1, [r4, #0x0]
- ldr r0, [sp, #0x4]
- mov r3, r1, lsl #0x8
- mov r1, r7
- mov r2, r6
- mov r3, r3, lsr #0x8
- bl FUN_020C2B1C
- cmp r0, #0x0
- addeq sp, sp, #0xc
- moveq r0, #0x9
- ldmeqia sp!, {r4-r11,pc}
-_020C3370:
- cmp r7, #0x0
- beq _020C3390
- ldr r2, [sp, #0x4]
- cmp r2, #0x0
- beq _020C3390
- mov r0, r7
- mov r1, r6
- bl SND_AssignWaveArc
-_020C3390:
- add r6, r6, #0x1
- cmp r6, #0x4
- blt _020C32D8
- ldr r0, [sp, #0x30]
- cmp r0, #0x0
- strne r7, [r0, #0x0]
- mov r0, #0x0
- add sp, sp, #0xc
- ldmia sp!, {r4-r11,pc}
- .balign 4
-_020C33B4: .word 0x0000FFFF
-
- arm_func_start FUN_020C33B8
-FUN_020C33B8:
- stmdb sp!, {r4-r6,lr}
- mov r6, r1
- mov r5, r2
- mov r4, r3
- bl FUN_020C2334
- cmp r0, #0x0
- moveq r0, #0x3
- ldmeqia sp!, {r4-r6,pc}
- ands r1, r6, #0x8
- beq _020C3400
- ldr r0, [r0, #0x0]
- mov r1, r5
- mov r2, r4
- bl FUN_020C3044
- cmp r0, #0x0
- bne _020C3408
- mov r0, #0x7
- ldmia sp!, {r4-r6,pc}
-_020C3400:
- ldr r0, [r0, #0x0]
- bl FUN_020C20DC
-_020C3408:
- ldr r1, [sp, #0x10]
- cmp r1, #0x0
- strne r0, [r1, #0x0]
- mov r0, #0x0
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020C341C
-FUN_020C341C:
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r7, r1
- mov r6, r2
- mov r5, r3
- bl FUN_020C2398
- movs r4, r0
- addeq sp, sp, #0x4
- moveq r0, #0x2
- ldmeqia sp!, {r4-r7,pc}
- mov r0, #0x0
- str r0, [sp, #0x0]
- ldrh r0, [r4, #0x4]
- mov r1, r7
- mov r2, r6
- mov r3, r5
- bl FUN_020C3270
- cmp r0, #0x0
- addne sp, sp, #0x4
- ldmneia sp!, {r4-r7,pc}
- ands r0, r7, #0x1
- beq _020C3498
- ldr r0, [r4, #0x0]
- mov r1, r6
- mov r2, r5
- bl FUN_020C30BC
- cmp r0, #0x0
- bne _020C34A0
- add sp, sp, #0x4
- mov r0, #0x6
- ldmia sp!, {r4-r7,pc}
-_020C3498:
- ldr r0, [r4, #0x0]
- bl FUN_020C20DC
-_020C34A0:
- ldr r1, [sp, #0x18]
- cmp r1, #0x0
- strne r0, [r1, #0x0]
- mov r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020C34B8
-FUN_020C34B8:
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0xc
- mov r9, r1
- bl FUN_020C21A4
- movs r8, r0
- addeq sp, sp, #0xc
- moveq r0, #0x1
- ldmeqia sp!, {r4-r11,pc}
- ldr r0, [r8, #0x0]
- mov r7, #0x0
- cmp r0, #0x0
- bls _020C35D4
- add r6, r8, #0x4
- str r7, [sp, #0x4]
- mov r11, r7
- mov r10, r7
- mov r5, r7
- mov r4, #0x1
-_020C3500:
- ldrb r0, [r6, #0x0]
- cmp r0, #0x3
- addls pc, pc, r0, lsl #0x2
- b _020C35C0
-_020C3510:
- b _020C3520
-_020C3514:
- b _020C3570
-_020C3518:
- b _020C3598
-_020C351C:
- b _020C3548
-_020C3520:
- str r5, [sp, #0x0]
- ldrb r1, [r6, #0x1]
- ldr r0, [r6, #0x4]
- mov r2, r9
- mov r3, r4
- bl FUN_020C341C
- cmp r0, #0x0
- beq _020C35C0
- add sp, sp, #0xc
- ldmia sp!, {r4-r11,pc}
-_020C3548:
- str r10, [sp, #0x0]
- ldrb r1, [r6, #0x1]
- ldr r0, [r6, #0x4]
- mov r2, r9
- mov r3, r4
- bl FUN_020C33B8
- cmp r0, #0x0
- beq _020C35C0
- add sp, sp, #0xc
- ldmia sp!, {r4-r11,pc}
-_020C3570:
- str r11, [sp, #0x0]
- ldrb r1, [r6, #0x1]
- ldr r0, [r6, #0x4]
- mov r2, r9
- mov r3, r4
- bl FUN_020C3270
- cmp r0, #0x0
- beq _020C35C0
- add sp, sp, #0xc
- ldmia sp!, {r4-r11,pc}
-_020C3598:
- ldr r0, [sp, #0x4]
- mov r2, r9
- str r0, [sp, #0x0]
- ldrb r1, [r6, #0x1]
- ldr r0, [r6, #0x4]
- mov r3, r4
- bl FUN_020C31D4
- cmp r0, #0x0
- addne sp, sp, #0xc
- ldmneia sp!, {r4-r11,pc}
-_020C35C0:
- ldr r0, [r8, #0x0]
- add r7, r7, #0x1
- cmp r7, r0
- add r6, r6, #0x8
- blo _020C3500
-_020C35D4:
- mov r0, #0x0
- add sp, sp, #0xc
- ldmia sp!, {r4-r11,pc}
-
- arm_func_start FUN_020C35E0
-FUN_020C35E0: ; 0x020C35E0
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r12, #0x0
- mov r3, #0x1
- str r12, [sp, #0x0]
- bl FUN_020C341C
- cmp r0, #0x0
- moveq r0, #0x1
- movne r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020C360C
-FUN_020C360C: ; 0x020C360C
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r2, r1
- mov r12, #0x0
- mov r1, #0xff
- mov r3, #0x1
- str r12, [sp, #0x0]
- bl FUN_020C31D4
- cmp r0, #0x0
- moveq r0, #0x1
- movne r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020C3640
-FUN_020C3640: ; 0x020C3640
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r2, r1
- mov r12, #0x0
- mov r1, #0xff
- mov r3, #0x1
- str r12, [sp, #0x0]
- bl FUN_020C3270
- cmp r0, #0x0
- moveq r0, #0x1
- movne r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020C3674
-FUN_020C3674: ; 0x020C3674
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- mov r2, r1
- mov r12, #0x0
- mov r1, #0xff
- mov r3, #0x1
- str r12, [sp, #0x0]
- bl FUN_020C341C
- cmp r0, #0x0
- moveq r0, #0x1
- movne r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020C36A8
-FUN_020C36A8: ; 0x020C36A8
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- bl FUN_020C34B8
- cmp r0, #0x0
- moveq r0, #0x1
- movne r0, #0x0
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020C36C8
-FUN_020C36C8: ; 0x020C36C8
- stmdb sp!, {r4-r8,lr}
- sub sp, sp, #0x8
- mov r7, r2
- mov r2, r3
- ldr r6, [sp, #0x20]
- mov r4, r0
- mov r8, r1
- bl FUN_020C0AF4
- movs r5, r0
- addeq sp, sp, #0x8
- moveq r0, #0x0
- ldmeqia sp!, {r4-r8,pc}
- mov r0, r8
- mov r1, r5
- bl FUN_020C09B0
- add r12, sp, #0x4
- mov r2, r0
- mov r0, r7
- mov r1, #0x6
- mov r3, #0x0
- str r12, [sp, #0x0]
- bl FUN_020C3270
- cmp r0, #0x0
- beq _020C373C
- mov r0, r5
- bl thunk_FUN_020c077c
- add sp, sp, #0x8
- mov r0, #0x0
- ldmia sp!, {r4-r8,pc}
-_020C373C:
- ldr r12, [sp, #0x24]
- ldr r2, [r6, #0x0]
- ldr r1, [r12, #0x18]
- ldr r3, [sp, #0x4]
- mov r0, r5
- add r1, r12, r1
- bl FUN_020C0A90
- ldrb r1, [r6, #0x6]
- mov r0, r4
- bl FUN_020C0F30
- ldrb r1, [r6, #0x7]
- mov r0, r4
- bl FUN_020C0ECC
- ldr r1, [sp, #0x28]
- ldr r2, [sp, #0x2c]
- mov r0, r4
- bl FUN_020C0E38
- mov r0, #0x1
- add sp, sp, #0x8
- ldmia sp!, {r4-r8,pc}
-
- arm_func_start FUN_020C378C
-FUN_020C378C: ; 0x020C378C
- stmdb sp!, {r4-r8,lr}
- sub sp, sp, #0x10
- mov r8, r2
- mov r2, r3
- ldr r5, [sp, #0x28]
- mov r6, r0
- mov r7, r1
- bl FUN_020C0AF4
- movs r4, r0
- addeq sp, sp, #0x10
- moveq r0, #0x0
- ldmeqia sp!, {r4-r8,pc}
- mov r0, r7
- mov r1, r4
- bl FUN_020C09B0
- mov r7, r0
- add r12, sp, #0x8
- mov r0, r8
- mov r2, r7
- mov r1, #0x6
- mov r3, #0x0
- str r12, [sp, #0x0]
- bl FUN_020C3270
- cmp r0, #0x0
- beq _020C3804
- mov r0, r4
- bl thunk_FUN_020c077c
- add sp, sp, #0x10
- mov r0, #0x0
- ldmia sp!, {r4-r8,pc}
-_020C3804:
- ldr r0, [sp, #0x2c]
- add r12, sp, #0x4
- mov r2, r7
- mov r1, #0x1
- mov r3, #0x0
- str r12, [sp, #0x0]
- bl FUN_020C341C
- cmp r0, #0x0
- beq _020C383C
- mov r0, r4
- bl thunk_FUN_020c077c
- add sp, sp, #0x10
- mov r0, #0x0
- ldmia sp!, {r4-r8,pc}
-_020C383C:
- ldr r2, [sp, #0x4]
- ldr r3, [sp, #0x8]
- ldr r1, [r2, #0x18]
- mov r0, r4
- add r1, r2, r1
- mov r2, #0x0
- bl FUN_020C0A90
- ldrb r1, [r5, #0x6]
- mov r0, r6
- bl FUN_020C0F30
- ldrb r1, [r5, #0x7]
- mov r0, r6
- bl FUN_020C0ECC
- ldr r1, [sp, #0x2c]
- mov r0, r6
- bl FUN_020C0E60
- mov r0, #0x1
- add sp, sp, #0x10
- ldmia sp!, {r4-r8,pc}
-
- arm_func_start FUN_020C3888
-FUN_020C3888: ; 0x020C3888
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x14
- mov r6, r1
- mov r7, r0
- mov r0, r6
- mov r5, r2
- bl FUN_020C2334
- cmp r0, #0x0
- addeq sp, sp, #0x14
- moveq r0, #0x0
- ldmeqia sp!, {r4-r7,pc}
- ldr r0, [r0, #0x0]
- bl FUN_020C20DC
- movs r4, r0
- addeq sp, sp, #0x14
- moveq r0, #0x0
- ldmeqia sp!, {r4-r7,pc}
- mov r1, r5
- bl FUN_020C3D9C
- cmp r0, #0x0
- addeq sp, sp, #0x14
- moveq r0, #0x0
- ldmeqia sp!, {r4-r7,pc}
- str r0, [sp, #0x0]
- str r4, [sp, #0x4]
- str r6, [sp, #0x8]
- str r5, [sp, #0xc]
- ldrb r1, [r0, #0x9]
- ldrh r2, [r0, #0x4]
- ldrb r3, [r0, #0x8]
- mov r0, r7
- bl FUN_020C36C8
- add sp, sp, #0x14
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020C3910
-FUN_020C3910: ; 0x020C3910
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0xc
- mov r7, r0
- ldr r0, [sp, #0x20]
- mov r6, r1
- mov r5, r2
- mov r4, r3
- bl FUN_020C2398
- cmp r0, #0x0
- addeq sp, sp, #0xc
- moveq r0, #0x0
- ldmeqia sp!, {r4-r7,pc}
- cmp r4, #0x0
- ldrltb r4, [r0, #0x8]
- cmp r5, #0x0
- ldrlth r5, [r0, #0x4]
- cmp r6, #0x0
- ldrltb r6, [r0, #0x9]
- ldr r12, [sp, #0x20]
- mov r2, r5
- str r0, [sp, #0x0]
- mov r0, r7
- mov r1, r6
- mov r3, r4
- str r12, [sp, #0x4]
- bl FUN_020C378C
- add sp, sp, #0xc
- ldmia sp!, {r4-r7,pc}
-
- arm_func_start FUN_020C3980
-FUN_020C3980: ; 0x020C3980
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0xc
- mov r4, r1
- mov r5, r0
- mov r0, r4
- bl FUN_020C2398
- cmp r0, #0x0
- addeq sp, sp, #0xc
- moveq r0, #0x0
- ldmeqia sp!, {r4-r5,pc}
- str r0, [sp, #0x0]
- str r4, [sp, #0x4]
- ldrb r1, [r0, #0x9]
- ldrh r2, [r0, #0x4]
- ldrb r3, [r0, #0x8]
- mov r0, r5
- bl FUN_020C378C
- add sp, sp, #0xc
- ldmia sp!, {r4-r5,pc}
-
- arm_func_start FUN_020C39CC
-FUN_020C39CC: ; 0x020C39CC
- stmdb sp!, {r4-r8,lr}
- mov r6, r0
- bl FUN_020C241C
- mov r5, #0x0
- mov r7, r5
-_020C39E0:
- mov r0, r5
- bl FUN_020C2208
- movs r4, r0
- beq _020C3A58
- ldrb r1, [r4, #0x0]
- mov r0, r5
- bl FUN_020C1160
- ldrh r1, [r4, #0x2]
- mov r0, r5
- bl FUN_020C1148
- ldr r0, [r4, #0x4]
- cmp r0, #0x0
- beq _020C3A58
- cmp r6, #0x0
- beq _020C3A58
- ldrb r0, [r4, #0x0]
- mov r8, r7
- cmp r0, #0x0
- ble _020C3A58
-_020C3A2C:
- ldr r2, [r4, #0x4]
- mov r0, r5
- mov r1, r6
- bl FUN_020C10B4
- cmp r0, #0x0
- moveq r0, #0x0
- ldmeqia sp!, {r4-r8,pc}
- ldrb r0, [r4, #0x0]
- add r8, r8, #0x1
- cmp r8, r0
- blt _020C3A2C
-_020C3A58:
- add r5, r5, #0x1
- cmp r5, #0x20
- blt _020C39E0
- mov r0, #0x1
- ldmia sp!, {r4-r8,pc}
-
- arm_func_start FUN_020C3A6C
-FUN_020C3A6C: ; 0x020C3A6C
- stmdb sp!, {r4-r5,lr}
- sub sp, sp, #0x4
- mov r5, r0
- bl OS_DisableInterrupts
- mov r4, r0
- ldr r0, _020C3A9C ; =UNK_021D2904
- mov r1, r5
- bl FUN_020ADBE8
- mov r0, r4
- bl OS_RestoreInterrupts
- add sp, sp, #0x4
- ldmia sp!, {r4-r5,pc}
- .balign 4
-_020C3A9C: .word UNK_021D2904
-
- arm_func_start FUN_020C3AA0
-FUN_020C3AA0: ; 0x020C3AA0
- stmdb sp!, {r4-r8,lr}
- mov r8, r0
- mov r7, r1
- bl OS_DisableInterrupts
- mov r6, r0
- mov r0, r8
- mov r1, #0x0
- bl FUN_020ADA98
- movs r5, r0
- beq _020C3B04
-_020C3AC8:
- mov r0, r8
- mov r1, r5
- bl FUN_020ADA98
- ldr r1, [r5, #0x8]
- mov r4, r0
- cmp r1, r7
- bne _020C3AF8
- mov r0, r8
- mov r1, r5
- bl FUN_020ADAB0
- mov r0, r5
- bl FUN_020C3A6C
-_020C3AF8:
- mov r5, r4
- cmp r4, #0x0
- bne _020C3AC8
-_020C3B04:
- mov r0, r6
- bl OS_RestoreInterrupts
- ldmia sp!, {r4-r8,pc}
-
- arm_func_start FUN_020C3B10
-FUN_020C3B10: ; 0x020C3B10
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r1, [r0, #0x120]
- cmp r1, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {pc}
- sub r1, r1, #0x1
- str r1, [r0, #0x120]
- ldr r1, [r0, #0x120]
- cmp r1, #0x0
- addne sp, sp, #0x4
- ldmneia sp!, {pc}
- bl FUN_020C1674
- add sp, sp, #0x4
- ldmia sp!, {pc}
-
- arm_func_start FUN_020C3B4C
-FUN_020C3B4C: ; 0x020C3B4C
- stmdb sp!, {r4,lr}
- mov r4, r0
- ldr r1, [r4, #0x110]
- mov r1, r1, lsl #0x1f
- movs r1, r1, asr #0x1f
- ldmeqia sp!, {r4,pc}
- bl FUN_020C3B10
- ldr r1, [r4, #0x164]
- mov r0, r4
- blx r1
- ldr r0, _020C3BA8 ; =UNK_021D2DF0
- mov r1, r4
- bl FUN_020C3AA0
- ldr r0, _020C3BAC ; =UNK_021D2900
- ldr r0, [r0, #0x0]
- cmp r0, #0x0
- beq _020C3B9C
- mov r1, r4
- add r0, r0, #0x4e0
- bl FUN_020C3AA0
-_020C3B9C:
- mov r0, r4
- bl FUN_020C3C4C
- ldmia sp!, {r4,pc}
- .balign 4
-_020C3BA8: .word UNK_021D2DF0
-_020C3BAC: .word UNK_021D2900
-
- arm_func_start FUN_020C3BB0
-FUN_020C3BB0: ; 0x020C3BB0
- stmdb sp!, {r4,lr}
- mov r4, r0
- ldr r0, _020C3C40 ; =UNK_021D2DD8
- bl OS_LockMutex
- ldr r0, _020C3C44 ; =UNK_021D2900
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- beq _020C3BDC
- ldr r0, _020C3C48 ; =0x000004C8
- add r0, r1, r0
- bl OS_LockMutex
-_020C3BDC:
- ldr r0, [r4, #0x110]
- mov r0, r0, lsl #0x1e
- movs r0, r0, asr #0x1f
- beq _020C3BF4
- mov r0, r4
- bl FUN_020C1430
-_020C3BF4:
- ldr r0, [r4, #0x110]
- mov r0, r0, lsl #0x1f
- movs r0, r0, asr #0x1f
- beq _020C3C10
- ldr r1, [r4, #0x16c]
- mov r0, r4
- blx r1
-_020C3C10:
- mov r0, r4
- bl FUN_020C3B4C
- ldr r0, _020C3C40 ; =UNK_021D2DD8
- bl OS_UnlockMutex
- ldr r0, _020C3C44 ; =UNK_021D2900
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- ldmeqia sp!, {r4,pc}
- ldr r0, _020C3C48 ; =0x000004C8
- add r0, r1, r0
- bl OS_UnlockMutex
- ldmia sp!, {r4,pc}
- .balign 4
-_020C3C40: .word UNK_021D2DD8
-_020C3C44: .word UNK_021D2900
-_020C3C48: .word 0x000004C8
-
- arm_func_start FUN_020C3C4C
-FUN_020C3C4C: ; 0x020C3C4C
- ldr r2, [r0, #0x14c]
- cmp r2, #0x0
- movne r1, #0x0
- strne r1, [r2, #0x0]
- strne r1, [r0, #0x14c]
- ldr r1, [r0, #0x110]
- bic r1, r1, #0x1
- str r1, [r0, #0x110]
- ldr r1, [r0, #0x110]
- bic r1, r1, #0x4
- str r1, [r0, #0x110]
- ldr r1, [r0, #0x110]
- bic r1, r1, #0x2
- str r1, [r0, #0x110]
- bx lr
-
- arm_func_start FUN_020C3C88
-FUN_020C3C88:
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- ldr r5, _020C3D94 ; =UNK_021D2DFC
- mov r7, #0x0
- ldr r4, _020C3D98 ; =UNK_02103BAC
-_020C3C9C:
- ldr r1, [r5, #0x110]
- mov r0, r1, lsl #0x1f
- movs r0, r0, asr #0x1f
- beq _020C3D7C
- ldr r0, [r5, #0x114]
- cmp r0, #0x0
- bne _020C3CC4
- mov r0, r5
- bl FUN_020C3BB0
- b _020C3D7C
-_020C3CC4:
- mov r0, r1, lsl #0x1d
- movs r0, r0, asr #0x1f
- beq _020C3CFC
- ldr r0, [r5, #0x118]
- cmp r0, #0x0
- beq _020C3CFC
- mov r0, r5
- bl FUN_020C1458
- ldr r0, [r5, #0x110]
- orr r0, r0, #0x2
- str r0, [r5, #0x110]
- ldr r0, [r5, #0x110]
- bic r0, r0, #0x4
- str r0, [r5, #0x110]
-_020C3CFC:
- ldr r0, [r5, #0x110]
- mov r0, r0, lsl #0x1e
- movs r0, r0, asr #0x1f
- beq _020C3D7C
- add r0, r5, #0xe8
- bl FUN_020C3DF4
- ldr r1, [r5, #0x154]
- add r0, r5, #0xe8
- mov r1, r1, lsl #0x1
- ldrsh r6, [r4, r1]
- bl FUN_020C3E0C
- mov r0, r0, asr #0x8
- mov r0, r0, lsl #0x1
- ldrsh r1, [r4, r0]
- ldr r0, [r5, #0x158]
- add r6, r1, r6
- cmp r6, r0
- beq _020C3D54
- mov r0, r5
- mov r1, r6
- bl FUN_020C13C4
- str r6, [r5, #0x158]
-_020C3D54:
- ldr r0, [r5, #0x110]
- mov r0, r0, lsl #0x1c
- movs r0, r0, asr #0x1f
- beq _020C3D7C
- add r0, r5, #0xe8
- bl FUN_020C3DDC
- cmp r0, #0x0
- beq _020C3D7C
- mov r0, r5
- bl FUN_020C3BB0
-_020C3D7C:
- add r7, r7, #0x1
- cmp r7, #0x4
- add r5, r5, #0x170
- blt _020C3C9C
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,pc}
- .balign 4
-_020C3D94: .word UNK_021D2DFC
-_020C3D98: .word UNK_02103BAC
-
- arm_func_start FUN_020C3D9C
-FUN_020C3D9C:
- cmp r1, #0x0
- movlt r0, #0x0
- bxlt lr
- ldr r2, [r0, #0x1c]
- cmp r1, r2
- movcs r0, #0x0
- bxcs lr
- mov r2, #0xc
- mul r2, r1, r2
- add r3, r0, #0x20
- ldr r1, [r3, r2]
- mvn r0, #0x0
- cmp r1, r0
- add r0, r3, r2
- moveq r0, #0x0
- bx lr
-
- arm_func_start FUN_020C3DDC
-FUN_020C3DDC:
- ldr r1, [r0, #0x8]
- ldr r0, [r0, #0xc]
- cmp r1, r0
- movge r0, #0x1
- movlt r0, #0x0
- bx lr
-
- arm_func_start FUN_020C3DF4
-FUN_020C3DF4: ; 0x020C3DF4
- ldr r2, [r0, #0x8]
- ldr r1, [r0, #0xc]
- cmp r2, r1
- addlt r1, r2, #0x1
- strlt r1, [r0, #0x8]
- bx lr
-
- arm_func_start FUN_020C3E0C
-FUN_020C3E0C:
- stmdb sp!, {r4,lr}
- ldr r1, [r0, #0xc]
- ldr r2, [r0, #0x8]
- cmp r2, r1
- ldrge r0, [r0, #0x4]
- ldmgeia sp!, {r4,pc}
- ldr r4, [r0, #0x0]
- ldr r0, [r0, #0x4]
- sub r0, r0, r4
- mul r0, r2, r0
- bl _s32_div_f
- add r0, r4, r0
- ldmia sp!, {r4,pc}
-
- arm_func_start FUN_020C3E40
-FUN_020C3E40:
- stmdb sp!, {r4-r6,lr}
- mov r6, r0
- mov r5, r1
- mov r4, r2
- bl FUN_020C3E0C
- str r0, [r6, #0x0]
- str r5, [r6, #0x4]
- str r4, [r6, #0xc]
- mov r0, #0x0
- str r0, [r6, #0x8]
- ldmia sp!, {r4-r6,pc}
-
- arm_func_start FUN_020C3E6C
-FUN_020C3E6C: ; 0x020C3E6C
- mov r2, #0x0
- str r2, [r0, #0x4]
- ldr r1, [r0, #0x4]
- str r1, [r0, #0x0]
- str r2, [r0, #0xc]
- ldr r1, [r0, #0xc]
- str r1, [r0, #0x8]
- bx lr